about summary refs log tree commit diff
path: root/nixpkgs
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2021-01-10 07:13:44 +0000
committerAlyssa Ross <hi@alyssa.is>2021-01-12 14:07:16 +0000
commite2698550456abba83c6dcd5d5e5a9990a0b96f8a (patch)
tree79a56f0df3fa55e470d84b4dff6059fbf487ec18 /nixpkgs
parent1cdc42df888dc98c347e03bd942ed9825a55bcb3 (diff)
parent84d74ae9c9cbed73274b8e4e00be14688ffc93fe (diff)
downloadnixlib-e2698550456abba83c6dcd5d5e5a9990a0b96f8a.tar
nixlib-e2698550456abba83c6dcd5d5e5a9990a0b96f8a.tar.gz
nixlib-e2698550456abba83c6dcd5d5e5a9990a0b96f8a.tar.bz2
nixlib-e2698550456abba83c6dcd5d5e5a9990a0b96f8a.tar.lz
nixlib-e2698550456abba83c6dcd5d5e5a9990a0b96f8a.tar.xz
nixlib-e2698550456abba83c6dcd5d5e5a9990a0b96f8a.tar.zst
nixlib-e2698550456abba83c6dcd5d5e5a9990a0b96f8a.zip
Merge commit '84d74ae9c9cbed73274b8e4e00be14688ffc93fe'
Diffstat (limited to 'nixpkgs')
-rw-r--r--nixpkgs/.editorconfig45
-rw-r--r--nixpkgs/.github/CODEOWNERS29
-rw-r--r--nixpkgs/.github/CONTRIBUTING.md2
-rw-r--r--nixpkgs/.github/stale.yml32
-rw-r--r--nixpkgs/.github/workflows/editorconfig.yml27
-rw-r--r--nixpkgs/.github/workflows/pending-clear.yml21
-rw-r--r--nixpkgs/.github/workflows/pending-set.yml20
-rw-r--r--nixpkgs/.gitignore1
-rw-r--r--nixpkgs/.version2
-rw-r--r--nixpkgs/README.md1
-rw-r--r--nixpkgs/default.nix2
-rw-r--r--nixpkgs/doc/Makefile2
-rw-r--r--nixpkgs/doc/builders/images/dockertools.xml35
-rw-r--r--nixpkgs/doc/builders/images/ocitools.xml3
-rw-r--r--nixpkgs/doc/builders/packages/cataclysm-dda.section.md94
-rw-r--r--nixpkgs/doc/builders/packages/citrix.xml30
-rw-r--r--nixpkgs/doc/builders/packages/index.xml1
-rw-r--r--nixpkgs/doc/builders/packages/steam.xml8
-rw-r--r--nixpkgs/doc/builders/packages/urxvt.xml52
-rw-r--r--nixpkgs/doc/contributing/submitting-changes.xml12
-rw-r--r--nixpkgs/doc/languages-frameworks/android.section.md2
-rw-r--r--nixpkgs/doc/languages-frameworks/beam.xml8
-rw-r--r--nixpkgs/doc/languages-frameworks/emscripten.section.md17
-rw-r--r--nixpkgs/doc/languages-frameworks/go.xml95
-rw-r--r--nixpkgs/doc/languages-frameworks/node.section.md9
-rw-r--r--nixpkgs/doc/languages-frameworks/perl.xml154
-rw-r--r--nixpkgs/doc/languages-frameworks/python.section.md128
-rw-r--r--nixpkgs/doc/languages-frameworks/qt.xml2
-rw-r--r--nixpkgs/doc/languages-frameworks/ruby.xml25
-rw-r--r--nixpkgs/doc/languages-frameworks/rust.section.md17
-rw-r--r--nixpkgs/doc/languages-frameworks/texlive.xml10
-rw-r--r--nixpkgs/doc/languages-frameworks/vim.section.md2
-rw-r--r--nixpkgs/doc/manual.xml2
-rw-r--r--nixpkgs/doc/old/cross.txt4
-rw-r--r--nixpkgs/doc/stdenv/meta.xml6
-rw-r--r--nixpkgs/doc/stdenv/multiple-output.xml74
-rw-r--r--nixpkgs/doc/stdenv/stdenv.xml201
-rw-r--r--nixpkgs/doc/using/configuration.xml18
-rw-r--r--nixpkgs/doc/using/overlays.xml53
-rw-r--r--nixpkgs/flake.nix43
-rw-r--r--nixpkgs/lib/attrsets.nix1
-rw-r--r--nixpkgs/lib/default.nix4
-rw-r--r--nixpkgs/lib/generators.nix65
-rw-r--r--nixpkgs/lib/licenses.nix80
-rw-r--r--nixpkgs/lib/modules.nix183
-rw-r--r--nixpkgs/lib/options.nix34
-rw-r--r--nixpkgs/lib/sources.nix10
-rw-r--r--nixpkgs/lib/strings.nix33
-rw-r--r--nixpkgs/lib/systems/architectures.nix52
-rw-r--r--nixpkgs/lib/systems/default.nix1
-rw-r--r--nixpkgs/lib/systems/doubles.nix55
-rw-r--r--nixpkgs/lib/systems/examples.nix8
-rw-r--r--nixpkgs/lib/tests/misc.nix108
-rwxr-xr-xnixpkgs/lib/tests/modules.sh74
-rw-r--r--nixpkgs/lib/tests/modules/define-option-dependently.nix2
-rw-r--r--nixpkgs/lib/tests/modules/define-value-string-properties.nix12
-rw-r--r--nixpkgs/lib/tests/modules/freeform-attrsOf.nix3
-rw-r--r--nixpkgs/lib/tests/modules/freeform-lazyAttrsOf.nix3
-rw-r--r--nixpkgs/lib/tests/modules/freeform-nested.nix7
-rw-r--r--nixpkgs/lib/tests/modules/freeform-str-dep-unstr.nix8
-rw-r--r--nixpkgs/lib/tests/modules/freeform-unstr-dep-str.nix8
-rw-r--r--nixpkgs/lib/tests/modules/types-anything/attrs-coercible.nix12
-rw-r--r--nixpkgs/lib/tests/modules/types-anything/equal-atoms.nix26
-rw-r--r--nixpkgs/lib/tests/modules/types-anything/functions.nix17
-rw-r--r--nixpkgs/lib/tests/modules/types-anything/lists.nix16
-rw-r--r--nixpkgs/lib/tests/modules/types-anything/mk-mods.nix44
-rw-r--r--nixpkgs/lib/tests/modules/types-anything/nested-attrs.nix22
-rw-r--r--nixpkgs/lib/tests/release.nix1
-rw-r--r--nixpkgs/lib/tests/systems.nix4
-rw-r--r--nixpkgs/lib/trivial.nix53
-rw-r--r--nixpkgs/lib/types.nix195
-rw-r--r--nixpkgs/maintainers/maintainer-list.nix823
-rw-r--r--nixpkgs/maintainers/scripts/build.nix10
-rwxr-xr-xnixpkgs/maintainers/scripts/debian-patches.sh2
-rw-r--r--nixpkgs/maintainers/scripts/luarocks-packages.csv6
-rwxr-xr-xnixpkgs/maintainers/scripts/rebuild-amount.sh3
-rwxr-xr-xnixpkgs/maintainers/scripts/update.nix8
-rw-r--r--nixpkgs/maintainers/team-list.nix19
-rw-r--r--nixpkgs/nixos/doc/manual/administration/boot-problems.xml4
-rw-r--r--nixpkgs/nixos/doc/manual/administration/imperative-containers.xml34
-rw-r--r--nixpkgs/nixos/doc/manual/administration/maintenance-mode.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/administration/network-problems.xml4
-rw-r--r--nixpkgs/nixos/doc/manual/administration/rebooting.xml6
-rw-r--r--nixpkgs/nixos/doc/manual/administration/rollback.xml6
-rw-r--r--nixpkgs/nixos/doc/manual/administration/service-mgmt.xml6
-rw-r--r--nixpkgs/nixos/doc/manual/administration/user-sessions.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/adding-custom-packages.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/configuration.xml1
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/file-systems.xml8
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/gpu-accel.xml263
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/ipv4-config.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/ipv6-config.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/linux-kernel.xml16
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/luks-file-systems.xml20
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/network-manager.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/profiles/demo.xml3
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/ssh.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/user-mgmt.xml20
-rw-r--r--nixpkgs/nixos/doc/manual/configuration/x-windows.xml48
-rw-r--r--nixpkgs/nixos/doc/manual/development/freeform-modules.xml68
-rw-r--r--nixpkgs/nixos/doc/manual/development/meta-attributes.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/development/option-types.xml79
-rwxr-xr-xnixpkgs/nixos/doc/manual/development/releases.xml265
-rw-r--r--nixpkgs/nixos/doc/manual/development/running-nixos-tests-interactively.xml9
-rw-r--r--nixpkgs/nixos/doc/manual/development/settings-options.xml216
-rw-r--r--nixpkgs/nixos/doc/manual/development/writing-documentation.xml4
-rw-r--r--nixpkgs/nixos/doc/manual/development/writing-modules.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/development/writing-nixos-tests.xml22
-rw-r--r--nixpkgs/nixos/doc/manual/installation/changing-config.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/installation/installing-behind-a-proxy.xml14
-rw-r--r--nixpkgs/nixos/doc/manual/installation/installing-from-other-distro.xml20
-rw-r--r--nixpkgs/nixos/doc/manual/installation/installing-pxe.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/installation/installing-virtualbox-guest.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/installation/installing.xml18
-rw-r--r--nixpkgs/nixos/doc/manual/installation/upgrading.xml12
-rw-r--r--nixpkgs/nixos/doc/manual/man-nixos-build-vms.xml6
-rw-r--r--nixpkgs/nixos/doc/manual/man-nixos-enter.xml14
-rw-r--r--nixpkgs/nixos/doc/manual/man-nixos-install.xml16
-rw-r--r--nixpkgs/nixos/doc/manual/man-nixos-rebuild.xml38
-rw-r--r--nixpkgs/nixos/doc/manual/man-nixos-version.xml4
-rw-r--r--nixpkgs/nixos/doc/manual/release-notes/release-notes.xml1
-rw-r--r--nixpkgs/nixos/doc/manual/release-notes/rl-1903.xml2
-rw-r--r--nixpkgs/nixos/doc/manual/release-notes/rl-2003.xml4
-rw-r--r--nixpkgs/nixos/doc/manual/release-notes/rl-2009.xml527
-rw-r--r--nixpkgs/nixos/doc/manual/release-notes/rl-2103.xml80
-rw-r--r--nixpkgs/nixos/lib/build-vms.nix8
-rw-r--r--nixpkgs/nixos/lib/eval-config.nix4
-rw-r--r--nixpkgs/nixos/lib/make-disk-image.nix82
-rw-r--r--nixpkgs/nixos/lib/make-ext4-fs.nix42
-rw-r--r--nixpkgs/nixos/lib/make-iso9660-image.nix4
-rw-r--r--nixpkgs/nixos/lib/make-iso9660-image.sh14
-rw-r--r--nixpkgs/nixos/lib/make-options-doc/default.nix6
-rw-r--r--nixpkgs/nixos/lib/make-options-doc/options-to-docbook.xsl2
-rw-r--r--nixpkgs/nixos/lib/qemu-flags.nix15
-rw-r--r--nixpkgs/nixos/lib/test-driver/Logger.pm75
-rw-r--r--nixpkgs/nixos/lib/test-driver/Machine.pm734
-rw-r--r--nixpkgs/nixos/lib/test-driver/test-driver.pl191
-rw-r--r--nixpkgs/nixos/lib/test-driver/test-driver.py68
-rw-r--r--nixpkgs/nixos/lib/testing-python.nix15
-rw-r--r--nixpkgs/nixos/lib/testing.nix258
-rw-r--r--nixpkgs/nixos/lib/utils.nix13
-rw-r--r--nixpkgs/nixos/maintainers/scripts/azure-new/.gitignore2
-rw-r--r--nixpkgs/nixos/maintainers/scripts/azure-new/README.md2
-rwxr-xr-xnixpkgs/nixos/maintainers/scripts/azure-new/upload-image.sh4
-rw-r--r--nixpkgs/nixos/maintainers/scripts/ec2/amazon-image.nix4
-rwxr-xr-xnixpkgs/nixos/maintainers/scripts/ec2/create-amis.sh2
-rw-r--r--nixpkgs/nixos/modules/config/appstream.nix8
-rw-r--r--nixpkgs/nixos/modules/config/fonts/fontconfig-penultimate.nix292
-rw-r--r--nixpkgs/nixos/modules/config/fonts/fontconfig.nix110
-rw-r--r--nixpkgs/nixos/modules/config/krb5/default.nix34
-rw-r--r--nixpkgs/nixos/modules/config/no-x-libs.nix2
-rw-r--r--nixpkgs/nixos/modules/config/system-path.nix28
-rw-r--r--nixpkgs/nixos/modules/config/update-users-groups.pl61
-rw-r--r--nixpkgs/nixos/modules/config/users-groups.nix64
-rw-r--r--nixpkgs/nixos/modules/hardware/bladeRF.nix2
-rw-r--r--nixpkgs/nixos/modules/hardware/ckb-next.nix1
-rw-r--r--nixpkgs/nixos/modules/hardware/device-tree.nix175
-rw-r--r--nixpkgs/nixos/modules/hardware/logitech.nix94
-rw-r--r--nixpkgs/nixos/modules/hardware/onlykey.nix2
-rw-r--r--nixpkgs/nixos/modules/hardware/printers.nix2
-rw-r--r--nixpkgs/nixos/modules/hardware/system-76.nix56
-rw-r--r--nixpkgs/nixos/modules/hardware/tuxedo-keyboard.nix4
-rw-r--r--nixpkgs/nixos/modules/hardware/video/hidpi.nix16
-rw-r--r--nixpkgs/nixos/modules/hardware/video/nvidia.nix2
-rw-r--r--nixpkgs/nixos/modules/hardware/video/uvcvideo/default.nix2
-rw-r--r--nixpkgs/nixos/modules/hardware/xpadneo.nix29
-rw-r--r--nixpkgs/nixos/modules/i18n/input-method/ibus.nix2
-rw-r--r--nixpkgs/nixos/modules/i18n/input-method/uim.nix2
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix20
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix4
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix9
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix8
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix8
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix8
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix7
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/sd-image.nix26
-rw-r--r--nixpkgs/nixos/modules/installer/cd-dvd/system-tarball-pc-readme.txt2
-rw-r--r--nixpkgs/nixos/modules/installer/tools/nix-fallback-paths.nix8
-rw-r--r--nixpkgs/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh2
-rw-r--r--nixpkgs/nixos/modules/installer/tools/nixos-enter.sh2
-rw-r--r--nixpkgs/nixos/modules/installer/tools/nixos-generate-config.pl5
-rw-r--r--nixpkgs/nixos/modules/installer/tools/nixos-install.sh86
-rw-r--r--nixpkgs/nixos/modules/installer/tools/nixos-option/nixos-option.cc2
-rw-r--r--nixpkgs/nixos/modules/installer/tools/nixos-rebuild.sh53
-rw-r--r--nixpkgs/nixos/modules/installer/tools/nixos-version.sh2
-rw-r--r--nixpkgs/nixos/modules/installer/tools/tools.nix11
-rw-r--r--nixpkgs/nixos/modules/misc/documentation.nix38
-rw-r--r--nixpkgs/nixos/modules/misc/ids.nix16
-rw-r--r--nixpkgs/nixos/modules/misc/locate.nix2
-rw-r--r--nixpkgs/nixos/modules/misc/nixpkgs.nix2
-rw-r--r--nixpkgs/nixos/modules/module-list.nix39
-rw-r--r--nixpkgs/nixos/modules/profiles/base.nix1
-rw-r--r--nixpkgs/nixos/modules/profiles/demo.nix10
-rw-r--r--nixpkgs/nixos/modules/profiles/hardened.nix5
-rw-r--r--nixpkgs/nixos/modules/profiles/installation-device.nix15
-rw-r--r--nixpkgs/nixos/modules/programs/autojump.nix4
-rw-r--r--nixpkgs/nixos/modules/programs/ccache.nix2
-rw-r--r--nixpkgs/nixos/modules/programs/dconf.nix37
-rw-r--r--nixpkgs/nixos/modules/programs/environment.nix1
-rw-r--r--nixpkgs/nixos/modules/programs/fish.nix3
-rw-r--r--nixpkgs/nixos/modules/programs/freetds.nix4
-rw-r--r--nixpkgs/nixos/modules/programs/gnupg.nix3
-rw-r--r--nixpkgs/nixos/modules/programs/gpaste.nix2
-rw-r--r--nixpkgs/nixos/modules/programs/nm-applet.nix15
-rw-r--r--nixpkgs/nixos/modules/programs/qt5ct.nix2
-rw-r--r--nixpkgs/nixos/modules/programs/ssh.nix2
-rw-r--r--nixpkgs/nixos/modules/programs/steam.nix25
-rw-r--r--nixpkgs/nixos/modules/programs/tsm-client.nix4
-rw-r--r--nixpkgs/nixos/modules/programs/xss-lock.nix2
-rw-r--r--nixpkgs/nixos/modules/programs/zsh/oh-my-zsh.xml2
-rw-r--r--nixpkgs/nixos/modules/rename.nix11
-rw-r--r--nixpkgs/nixos/modules/security/acme.nix676
-rw-r--r--nixpkgs/nixos/modules/security/acme.xml20
-rw-r--r--nixpkgs/nixos/modules/security/apparmor.nix6
-rw-r--r--nixpkgs/nixos/modules/security/duosec.nix2
-rw-r--r--nixpkgs/nixos/modules/security/misc.nix14
-rw-r--r--nixpkgs/nixos/modules/security/pam.nix53
-rw-r--r--nixpkgs/nixos/modules/security/rngd.nix13
-rw-r--r--nixpkgs/nixos/modules/security/systemd-confinement.nix2
-rw-r--r--nixpkgs/nixos/modules/security/tpm2.nix1
-rw-r--r--nixpkgs/nixos/modules/security/wrappers/default.nix3
-rw-r--r--nixpkgs/nixos/modules/services/audio/icecast.nix6
-rw-r--r--nixpkgs/nixos/modules/services/audio/mpd.nix45
-rw-r--r--nixpkgs/nixos/modules/services/audio/roon-server.nix6
-rw-r--r--nixpkgs/nixos/modules/services/audio/snapserver.nix166
-rw-r--r--nixpkgs/nixos/modules/services/audio/spotifyd.nix2
-rw-r--r--nixpkgs/nixos/modules/services/backup/bacula.nix36
-rw-r--r--nixpkgs/nixos/modules/services/backup/borgbackup.xml30
-rw-r--r--nixpkgs/nixos/modules/services/backup/restic.nix66
-rw-r--r--nixpkgs/nixos/modules/services/backup/zfs-replication.nix2
-rw-r--r--nixpkgs/nixos/modules/services/backup/znapzend.nix4
-rw-r--r--nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix5
-rw-r--r--nixpkgs/nixos/modules/services/computing/slurm/slurm.nix4
-rw-r--r--nixpkgs/nixos/modules/services/computing/torque/mom.nix2
-rw-r--r--nixpkgs/nixos/modules/services/computing/torque/server.nix2
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/buildbot/master.nix10
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix11
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/gitlab-runner.nix93
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix213
-rw-r--r--nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/default.nix86
-rw-r--r--nixpkgs/nixos/modules/services/databases/couchdb.nix25
-rw-r--r--nixpkgs/nixos/modules/services/databases/mysql.nix260
-rw-r--r--nixpkgs/nixos/modules/services/databases/openldap.nix30
-rw-r--r--nixpkgs/nixos/modules/services/databases/postgresql.nix143
-rw-r--r--nixpkgs/nixos/modules/services/databases/riak-cs.nix2
-rw-r--r--nixpkgs/nixos/modules/services/databases/victoriametrics.nix4
-rw-r--r--nixpkgs/nixos/modules/services/desktops/deepin/deepin.nix123
-rw-r--r--nixpkgs/nixos/modules/services/desktops/espanso.nix25
-rw-r--r--nixpkgs/nixos/modules/services/desktops/flatpak.nix1
-rw-r--r--nixpkgs/nixos/modules/services/desktops/geoclue2.nix2
-rw-r--r--nixpkgs/nixos/modules/services/desktops/malcontent.nix5
-rw-r--r--nixpkgs/nixos/modules/services/development/jupyter/default.nix28
-rw-r--r--nixpkgs/nixos/modules/services/development/jupyterhub/default.nix190
-rw-r--r--nixpkgs/nixos/modules/services/development/lorri.nix13
-rw-r--r--nixpkgs/nixos/modules/services/editors/emacs.nix47
-rw-r--r--nixpkgs/nixos/modules/services/editors/emacs.xml14
-rw-r--r--nixpkgs/nixos/modules/services/games/minetest-server.nix16
-rw-r--r--nixpkgs/nixos/modules/services/games/terraria.nix20
-rw-r--r--nixpkgs/nixos/modules/services/hardware/fancontrol.nix2
-rw-r--r--nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix2
-rw-r--r--nixpkgs/nixos/modules/services/hardware/thermald.nix10
-rw-r--r--nixpkgs/nixos/modules/services/hardware/thinkfan.nix2
-rw-r--r--nixpkgs/nixos/modules/services/hardware/tlp.nix59
-rw-r--r--nixpkgs/nixos/modules/services/hardware/trezord.nix4
-rw-r--r--nixpkgs/nixos/modules/services/hardware/undervolt.nix25
-rw-r--r--nixpkgs/nixos/modules/services/logging/logrotate.nix146
-rw-r--r--nixpkgs/nixos/modules/services/logging/logstash.nix6
-rw-r--r--nixpkgs/nixos/modules/services/mail/dovecot.nix33
-rw-r--r--nixpkgs/nixos/modules/services/mail/mailhog.nix68
-rw-r--r--nixpkgs/nixos/modules/services/mail/mailman.nix80
-rw-r--r--nixpkgs/nixos/modules/services/mail/opendkim.nix30
-rw-r--r--nixpkgs/nixos/modules/services/mail/pfix-srsd.nix2
-rw-r--r--nixpkgs/nixos/modules/services/mail/postfix.nix90
-rw-r--r--nixpkgs/nixos/modules/services/mail/roundcube.nix18
-rw-r--r--nixpkgs/nixos/modules/services/misc/beanstalkd.nix10
-rw-r--r--nixpkgs/nixos/modules/services/misc/calibre-server.nix49
-rw-r--r--nixpkgs/nixos/modules/services/misc/gammu-smsd.nix2
-rw-r--r--nixpkgs/nixos/modules/services/misc/gitea.nix144
-rw-r--r--nixpkgs/nixos/modules/services/misc/gitlab.nix85
-rw-r--r--nixpkgs/nixos/modules/services/misc/gitlab.xml6
-rw-r--r--nixpkgs/nixos/modules/services/misc/gitolite.nix33
-rw-r--r--nixpkgs/nixos/modules/services/misc/gollum.nix9
-rw-r--r--nixpkgs/nixos/modules/services/misc/home-assistant.nix1
-rw-r--r--nixpkgs/nixos/modules/services/misc/jellyfin.nix15
-rw-r--r--nixpkgs/nixos/modules/services/misc/mathics.nix54
-rw-r--r--nixpkgs/nixos/modules/services/misc/matrix-synapse.nix2
-rw-r--r--nixpkgs/nixos/modules/services/misc/matrix-synapse.xml38
-rw-r--r--nixpkgs/nixos/modules/services/misc/mautrix-telegram.nix2
-rw-r--r--nixpkgs/nixos/modules/services/misc/mesos-master.nix125
-rw-r--r--nixpkgs/nixos/modules/services/misc/mesos-slave.nix220
-rw-r--r--nixpkgs/nixos/modules/services/misc/nix-daemon.nix164
-rw-r--r--nixpkgs/nixos/modules/services/misc/octoprint.nix4
-rw-r--r--nixpkgs/nixos/modules/services/misc/pinnwand.nix78
-rw-r--r--nixpkgs/nixos/modules/services/misc/redmine.nix102
-rw-r--r--nixpkgs/nixos/modules/services/misc/siproxd.nix8
-rw-r--r--nixpkgs/nixos/modules/services/misc/ssm-agent.nix6
-rw-r--r--nixpkgs/nixos/modules/services/misc/sssd.nix4
-rw-r--r--nixpkgs/nixos/modules/services/misc/tzupdate.nix4
-rw-r--r--nixpkgs/nixos/modules/services/misc/zigbee2mqtt.nix98
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/cadvisor.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/datadog-agent.nix24
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/dd-agent/dd-agent.nix4
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/do-agent.nix17
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/monit.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/netdata.nix45
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix42
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix14
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix33
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unifi-poller.nix34
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/smartd.nix18
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/teamviewer.nix2
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/tuptime.nix9
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/unifi-poller.nix242
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/zabbix-agent.nix41
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/zabbix-proxy.nix75
-rw-r--r--nixpkgs/nixos/modules/services/monitoring/zabbix-server.nix72
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/cachefilesd.nix18
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/ipfs.nix22
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/orangefs/server.nix4
-rw-r--r--nixpkgs/nixos/modules/services/network-filesystems/samba.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/biboumi.nix269
-rw-r--r--nixpkgs/nixos/modules/services/networking/bitcoind.nix206
-rw-r--r--nixpkgs/nixos/modules/services/networking/blockbook-frontend.nix275
-rw-r--r--nixpkgs/nixos/modules/services/networking/corerad.nix3
-rw-r--r--nixpkgs/nixos/modules/services/networking/dhcpd.nix12
-rw-r--r--nixpkgs/nixos/modules/services/networking/gateone.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/heyefi.nix82
-rw-r--r--nixpkgs/nixos/modules/services/networking/hylafax/options.nix4
-rw-r--r--nixpkgs/nixos/modules/services/networking/jicofo.nix152
-rw-r--r--nixpkgs/nixos/modules/services/networking/jitsi-videobridge.nix276
-rw-r--r--nixpkgs/nixos/modules/services/networking/kresd.nix13
-rw-r--r--nixpkgs/nixos/modules/services/networking/monero.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/mstpd.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/namecoind.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/ncdns.nix278
-rw-r--r--nixpkgs/nixos/modules/services/networking/networkmanager.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/nextdns.nix44
-rw-r--r--nixpkgs/nixos/modules/services/networking/nghttpx/default.nix6
-rw-r--r--nixpkgs/nixos/modules/services/networking/nsd.nix7
-rw-r--r--nixpkgs/nixos/modules/services/networking/ntp/chrony.nix1
-rw-r--r--nixpkgs/nixos/modules/services/networking/nylon.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/onedrive.nix72
-rw-r--r--nixpkgs/nixos/modules/services/networking/onedrive.xml34
-rw-r--r--nixpkgs/nixos/modules/services/networking/openvpn.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/prosody.nix4
-rw-r--r--nixpkgs/nixos/modules/services/networking/prosody.xml13
-rw-r--r--nixpkgs/nixos/modules/services/networking/radicale.nix11
-rw-r--r--nixpkgs/nixos/modules/services/networking/resilio.nix20
-rw-r--r--nixpkgs/nixos/modules/services/networking/robustirc-bridge.nix47
-rw-r--r--nixpkgs/nixos/modules/services/networking/seeks.nix75
-rw-r--r--nixpkgs/nixos/modules/services/networking/shadowsocks.nix54
-rw-r--r--nixpkgs/nixos/modules/services/networking/skydns.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/ssh/sshd.nix12
-rw-r--r--nixpkgs/nixos/modules/services/networking/sslh.nix18
-rw-r--r--nixpkgs/nixos/modules/services/networking/supplicant.nix26
-rw-r--r--nixpkgs/nixos/modules/services/networking/syncthing.nix13
-rw-r--r--nixpkgs/nixos/modules/services/networking/tinc.nix16
-rw-r--r--nixpkgs/nixos/modules/services/networking/trickster.nix5
-rw-r--r--nixpkgs/nixos/modules/services/networking/unifi.nix2
-rw-r--r--nixpkgs/nixos/modules/services/networking/wasabibackend.nix158
-rw-r--r--nixpkgs/nixos/modules/services/networking/websockify.nix6
-rw-r--r--nixpkgs/nixos/modules/services/networking/wg-quick.nix20
-rw-r--r--nixpkgs/nixos/modules/services/networking/wireguard.nix15
-rw-r--r--nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix5
-rw-r--r--nixpkgs/nixos/modules/services/networking/xandikos.nix4
-rw-r--r--nixpkgs/nixos/modules/services/networking/yggdrasil.nix5
-rw-r--r--nixpkgs/nixos/modules/services/networking/yggdrasil.xml157
-rw-r--r--nixpkgs/nixos/modules/services/scheduling/chronos.nix54
-rw-r--r--nixpkgs/nixos/modules/services/scheduling/marathon.nix98
-rw-r--r--nixpkgs/nixos/modules/services/security/bitwarden_rs/default.nix19
-rw-r--r--nixpkgs/nixos/modules/services/security/haveged.nix18
-rw-r--r--nixpkgs/nixos/modules/services/security/nginx-sso.nix11
-rw-r--r--nixpkgs/nixos/modules/services/security/oauth2_proxy.nix12
-rw-r--r--nixpkgs/nixos/modules/services/security/physlock.nix10
-rw-r--r--nixpkgs/nixos/modules/services/security/privacyidea.nix1
-rw-r--r--nixpkgs/nixos/modules/services/security/tor.nix24
-rw-r--r--nixpkgs/nixos/modules/services/security/usbguard.nix124
-rw-r--r--nixpkgs/nixos/modules/services/security/yubikey-agent.nix60
-rw-r--r--nixpkgs/nixos/modules/services/system/earlyoom.nix1
-rw-r--r--nixpkgs/nixos/modules/services/torrent/transmission.nix451
-rw-r--r--nixpkgs/nixos/modules/services/video/epgstation/default.nix295
-rwxr-xr-xnixpkgs/nixos/modules/services/video/epgstation/generate31
-rw-r--r--nixpkgs/nixos/modules/services/video/epgstation/streaming.json119
-rw-r--r--nixpkgs/nixos/modules/services/video/mirakurun.nix183
-rw-r--r--nixpkgs/nixos/modules/services/wayland/cage.nix3
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/codimd.nix43
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/convos.nix72
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/dokuwiki.nix28
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/gerrit.nix21
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/jitsi-meet.nix334
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/jitsi-meet.xml55
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/moodle.nix14
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/nextcloud.nix277
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/nextcloud.xml67
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/pgpkeyserver-lite.nix2
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/rss-bridge.nix127
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/sogo.nix1
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/trilium.nix2
-rw-r--r--nixpkgs/nixos/modules/services/web-apps/tt-rss.nix2
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix109
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/caddy.nix66
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/jboss/builder.sh12
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/meguca.nix174
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/molly-brown.nix117
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/nginx/default.nix105
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/phpfpm/default.nix1
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/shellinabox.nix2
-rw-r--r--nixpkgs/nixos/modules/services/web-servers/unit/default.nix5
-rw-r--r--nixpkgs/nixos/modules/services/x11/colord.nix2
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix205
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix1
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix2
-rw-r--r--nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix20
-rw-r--r--nixpkgs/nixos/modules/services/x11/display-managers/default.nix64
-rw-r--r--nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix74
-rw-r--r--nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix2
-rw-r--r--nixpkgs/nixos/modules/services/x11/display-managers/lightdm.nix66
-rw-r--r--nixpkgs/nixos/modules/services/x11/display-managers/sddm.nix63
-rw-r--r--nixpkgs/nixos/modules/services/x11/imwheel.nix3
-rw-r--r--nixpkgs/nixos/modules/services/x11/picom.nix13
-rw-r--r--nixpkgs/nixos/modules/services/x11/urserver.nix38
-rw-r--r--nixpkgs/nixos/modules/services/x11/window-managers/qtile.nix2
-rw-r--r--nixpkgs/nixos/modules/services/x11/window-managers/xmonad.nix30
-rw-r--r--nixpkgs/nixos/modules/services/x11/xserver.nix20
-rw-r--r--nixpkgs/nixos/modules/system/activation/top-level.nix25
-rw-r--r--nixpkgs/nixos/modules/system/boot/emergency-mode.nix2
-rw-r--r--nixpkgs/nixos/modules/system/boot/initrd-network.nix2
-rw-r--r--nixpkgs/nixos/modules/system/boot/initrd-openvpn.nix81
-rw-r--r--nixpkgs/nixos/modules/system/boot/kernel_config.nix2
-rw-r--r--nixpkgs/nixos/modules/system/boot/loader/generations-dir/generations-dir-builder.sh2
-rw-r--r--nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix29
-rw-r--r--nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh17
-rw-r--r--nixpkgs/nixos/modules/system/boot/loader/grub/grub.nix106
-rw-r--r--nixpkgs/nixos/modules/system/boot/loader/grub/install-grub.pl163
-rw-r--r--nixpkgs/nixos/modules/system/boot/loader/init-script/init-script-builder.sh2
-rw-r--r--nixpkgs/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.nix4
-rw-r--r--nixpkgs/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.sh5
-rw-r--r--nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py8
-rw-r--r--nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix4
-rw-r--r--nixpkgs/nixos/modules/system/boot/luksroot.nix38
-rw-r--r--nixpkgs/nixos/modules/system/boot/modprobe.nix2
-rw-r--r--nixpkgs/nixos/modules/system/boot/networkd.nix1492
-rw-r--r--nixpkgs/nixos/modules/system/boot/plymouth.nix3
-rw-r--r--nixpkgs/nixos/modules/system/boot/stage-1-init.sh23
-rw-r--r--nixpkgs/nixos/modules/system/boot/stage-1.nix30
-rw-r--r--nixpkgs/nixos/modules/system/boot/stage-2-init.sh2
-rw-r--r--nixpkgs/nixos/modules/system/boot/stage-2.nix10
-rw-r--r--nixpkgs/nixos/modules/system/boot/systemd-nspawn.nix6
-rw-r--r--nixpkgs/nixos/modules/system/boot/systemd-unit-options.nix12
-rw-r--r--nixpkgs/nixos/modules/system/boot/systemd.nix157
-rw-r--r--nixpkgs/nixos/modules/system/boot/tmp.nix2
-rw-r--r--nixpkgs/nixos/modules/system/etc/etc.nix2
-rw-r--r--nixpkgs/nixos/modules/system/etc/make-etc.sh7
-rw-r--r--nixpkgs/nixos/modules/tasks/auto-upgrade.nix98
-rw-r--r--nixpkgs/nixos/modules/tasks/bcache.nix2
-rw-r--r--nixpkgs/nixos/modules/tasks/encrypted-devices.nix21
-rw-r--r--nixpkgs/nixos/modules/tasks/filesystems.nix4
-rw-r--r--nixpkgs/nixos/modules/tasks/filesystems/btrfs.nix5
-rw-r--r--nixpkgs/nixos/modules/tasks/filesystems/zfs.nix51
-rw-r--r--nixpkgs/nixos/modules/tasks/lvm.nix67
-rw-r--r--nixpkgs/nixos/modules/tasks/network-interfaces-scripted.nix4
-rw-r--r--nixpkgs/nixos/modules/tasks/network-interfaces.nix8
-rw-r--r--nixpkgs/nixos/modules/testing/test-instrumentation.nix27
-rw-r--r--nixpkgs/nixos/modules/virtualisation/azure-image.nix2
-rw-r--r--nixpkgs/nixos/modules/virtualisation/containers.nix83
-rw-r--r--nixpkgs/nixos/modules/virtualisation/cri-o.nix25
-rw-r--r--nixpkgs/nixos/modules/virtualisation/docker-preloader.nix134
-rw-r--r--nixpkgs/nixos/modules/virtualisation/docker.nix1
-rw-r--r--nixpkgs/nixos/modules/virtualisation/libvirtd.nix4
-rw-r--r--nixpkgs/nixos/modules/virtualisation/nixos-containers.nix2
-rw-r--r--nixpkgs/nixos/modules/virtualisation/parallels-guest.nix2
-rw-r--r--nixpkgs/nixos/modules/virtualisation/podman.nix37
-rw-r--r--nixpkgs/nixos/modules/virtualisation/qemu-vm.nix155
-rw-r--r--nixpkgs/nixos/modules/virtualisation/railcar.nix16
-rw-r--r--nixpkgs/nixos/modules/virtualisation/spice-usb-redirection.nix24
-rw-r--r--nixpkgs/nixos/modules/virtualisation/virtualbox-guest.nix2
-rw-r--r--nixpkgs/nixos/modules/virtualisation/virtualbox-image.nix66
-rw-r--r--nixpkgs/nixos/release-combined.nix18
-rw-r--r--nixpkgs/nixos/release.nix5
-rw-r--r--nixpkgs/nixos/tests/3proxy.nix4
-rw-r--r--nixpkgs/nixos/tests/acme.nix362
-rw-r--r--nixpkgs/nixos/tests/all-tests.nix38
-rw-r--r--nixpkgs/nixos/tests/bcachefs.nix2
-rw-r--r--nixpkgs/nixos/tests/bitcoind.nix46
-rw-r--r--nixpkgs/nixos/tests/bittorrent.nix24
-rw-r--r--nixpkgs/nixos/tests/bitwarden.nix188
-rw-r--r--nixpkgs/nixos/tests/blockbook-frontend.nix28
-rw-r--r--nixpkgs/nixos/tests/borgbackup.nix2
-rw-r--r--nixpkgs/nixos/tests/caddy.nix18
-rw-r--r--nixpkgs/nixos/tests/ceph-multi-node.nix6
-rw-r--r--nixpkgs/nixos/tests/ceph-single-node.nix6
-rw-r--r--nixpkgs/nixos/tests/charliecloud.nix43
-rw-r--r--nixpkgs/nixos/tests/codimd.nix10
-rw-r--r--nixpkgs/nixos/tests/common/acme/client/default.nix11
-rw-r--r--nixpkgs/nixos/tests/common/acme/server/default.nix72
-rw-r--r--nixpkgs/nixos/tests/common/acme/server/mkcerts.nix68
-rwxr-xr-xnixpkgs/nixos/tests/common/acme/server/mkcerts.sh6
-rw-r--r--nixpkgs/nixos/tests/common/acme/server/snakeoil-certs.nix206
-rw-r--r--nixpkgs/nixos/tests/common/auto.nix4
-rw-r--r--nixpkgs/nixos/tests/common/ec2.nix58
-rw-r--r--nixpkgs/nixos/tests/consul.nix136
-rw-r--r--nixpkgs/nixos/tests/containers-portforward.nix2
-rw-r--r--nixpkgs/nixos/tests/containers-reloadable.nix4
-rw-r--r--nixpkgs/nixos/tests/convos.nix30
-rw-r--r--nixpkgs/nixos/tests/corerad.nix2
-rw-r--r--nixpkgs/nixos/tests/couchdb.nix80
-rw-r--r--nixpkgs/nixos/tests/cri-o.nix19
-rw-r--r--nixpkgs/nixos/tests/docker-preloader.nix27
-rw-r--r--nixpkgs/nixos/tests/docker-tools.nix88
-rw-r--r--nixpkgs/nixos/tests/docker.nix4
-rw-r--r--nixpkgs/nixos/tests/dokuwiki.nix24
-rw-r--r--nixpkgs/nixos/tests/ec2.nix140
-rw-r--r--nixpkgs/nixos/tests/firejail.nix82
-rw-r--r--nixpkgs/nixos/tests/gnome3-xorg.nix6
-rw-r--r--nixpkgs/nixos/tests/gnome3.nix16
-rw-r--r--nixpkgs/nixos/tests/gotify-server.nix5
-rw-r--r--nixpkgs/nixos/tests/graphite.nix11
-rw-r--r--nixpkgs/nixos/tests/grub.nix60
-rw-r--r--nixpkgs/nixos/tests/hardened.nix114
-rw-r--r--nixpkgs/nixos/tests/hocker-fetchdocker/default.nix9
-rw-r--r--nixpkgs/nixos/tests/home-assistant.nix132
-rw-r--r--nixpkgs/nixos/tests/hydra/common.nix1
-rw-r--r--nixpkgs/nixos/tests/ihatemoney.nix13
-rw-r--r--nixpkgs/nixos/tests/initrd-network-openvpn/default.nix145
-rw-r--r--nixpkgs/nixos/tests/initrd-network-openvpn/initrd.ovpn29
-rw-r--r--nixpkgs/nixos/tests/initrd-network-openvpn/shared.key21
-rw-r--r--nixpkgs/nixos/tests/installed-tests/default.nix6
-rw-r--r--nixpkgs/nixos/tests/installed-tests/flatpak.nix9
-rw-r--r--nixpkgs/nixos/tests/installed-tests/ibus.nix14
-rw-r--r--nixpkgs/nixos/tests/installed-tests/ostree.nix11
-rw-r--r--nixpkgs/nixos/tests/installer.nix35
-rw-r--r--nixpkgs/nixos/tests/jitsi-meet.nix55
-rw-r--r--nixpkgs/nixos/tests/kafka.nix1
-rw-r--r--nixpkgs/nixos/tests/krb5/example-config.nix8
-rw-r--r--nixpkgs/nixos/tests/kubernetes/base.nix1
-rw-r--r--nixpkgs/nixos/tests/leaps.nix2
-rw-r--r--nixpkgs/nixos/tests/lorri/default.nix2
-rw-r--r--nixpkgs/nixos/tests/lxd-nftables.nix1
-rw-r--r--nixpkgs/nixos/tests/lxd.nix14
-rw-r--r--nixpkgs/nixos/tests/magnetico.nix7
-rw-r--r--nixpkgs/nixos/tests/make-test.nix9
-rw-r--r--nixpkgs/nixos/tests/mathics.nix20
-rw-r--r--nixpkgs/nixos/tests/mesos.nix92
-rw-r--r--nixpkgs/nixos/tests/mesos_test.py72
-rw-r--r--nixpkgs/nixos/tests/misc.nix32
-rw-r--r--nixpkgs/nixos/tests/molly-brown.nix71
-rw-r--r--nixpkgs/nixos/tests/mongodb.nix6
-rw-r--r--nixpkgs/nixos/tests/mysql/mysql.nix22
-rw-r--r--nixpkgs/nixos/tests/ncdns.nix96
-rw-r--r--nixpkgs/nixos/tests/networking.nix21
-rw-r--r--nixpkgs/nixos/tests/nextcloud/basic.nix9
-rw-r--r--nixpkgs/nixos/tests/nextcloud/with-mysql-and-memcached.nix1
-rw-r--r--nixpkgs/nixos/tests/nextcloud/with-postgresql-and-redis.nix1
-rw-r--r--nixpkgs/nixos/tests/nfs/kerberos.nix4
-rw-r--r--nixpkgs/nixos/tests/nginx-sandbox.nix1
-rw-r--r--nixpkgs/nixos/tests/nginx-variants.nix33
-rw-r--r--nixpkgs/nixos/tests/openstack-image.nix70
-rw-r--r--nixpkgs/nixos/tests/os-prober.nix33
-rw-r--r--nixpkgs/nixos/tests/pinnwand.nix86
-rw-r--r--nixpkgs/nixos/tests/plasma5.nix2
-rw-r--r--nixpkgs/nixos/tests/podman.nix3
-rw-r--r--nixpkgs/nixos/tests/postfix-raise-smtpd-tls-security-level.nix41
-rw-r--r--nixpkgs/nixos/tests/postfix.nix77
-rw-r--r--nixpkgs/nixos/tests/postgresql-wal-receiver.nix182
-rw-r--r--nixpkgs/nixos/tests/prometheus-exporters.nix58
-rw-r--r--nixpkgs/nixos/tests/prometheus.nix7
-rw-r--r--nixpkgs/nixos/tests/pt2-clone.nix35
-rw-r--r--nixpkgs/nixos/tests/radicale.nix28
-rw-r--r--nixpkgs/nixos/tests/restic.nix55
-rw-r--r--nixpkgs/nixos/tests/robustirc-bridge.nix29
-rw-r--r--nixpkgs/nixos/tests/sddm.nix4
-rw-r--r--nixpkgs/nixos/tests/shadowsocks/common.nix84
-rw-r--r--nixpkgs/nixos/tests/shadowsocks/default.nix16
-rw-r--r--nixpkgs/nixos/tests/shattered-pixel-dungeon.nix29
-rw-r--r--nixpkgs/nixos/tests/signal-desktop.nix9
-rw-r--r--nixpkgs/nixos/tests/slurm.nix93
-rw-r--r--nixpkgs/nixos/tests/snapcast.nix58
-rw-r--r--nixpkgs/nixos/tests/sslh.nix83
-rw-r--r--nixpkgs/nixos/tests/sssd-ldap.nix78
-rw-r--r--nixpkgs/nixos/tests/sssd.nix17
-rw-r--r--nixpkgs/nixos/tests/syncthing-init.nix3
-rw-r--r--nixpkgs/nixos/tests/syncthing.nix65
-rw-r--r--nixpkgs/nixos/tests/systemd-boot.nix32
-rw-r--r--nixpkgs/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix8
-rw-r--r--nixpkgs/nixos/tests/systemd-networkd-vrf.nix24
-rw-r--r--nixpkgs/nixos/tests/systemd-networkd.nix11
-rw-r--r--nixpkgs/nixos/tests/systemd.nix53
-rw-r--r--nixpkgs/nixos/tests/taskserver.nix310
-rw-r--r--nixpkgs/nixos/tests/tiddlywiki.nix2
-rw-r--r--nixpkgs/nixos/tests/transmission.nix2
-rw-r--r--nixpkgs/nixos/tests/trezord.nix5
-rw-r--r--nixpkgs/nixos/tests/trickster.nix6
-rw-r--r--nixpkgs/nixos/tests/v2ray.nix83
-rw-r--r--nixpkgs/nixos/tests/virtualbox.nix419
-rw-r--r--nixpkgs/nixos/tests/wasabibackend.nix38
-rw-r--r--nixpkgs/nixos/tests/xandikos.nix6
-rw-r--r--nixpkgs/nixos/tests/xfce.nix4
-rw-r--r--nixpkgs/nixos/tests/xmpp/ejabberd.nix16
-rw-r--r--nixpkgs/nixos/tests/xmpp/xmpp-sendmessage.nix6
-rw-r--r--nixpkgs/nixos/tests/yggdrasil.nix42
-rw-r--r--nixpkgs/nixos/tests/zfs.nix23
-rw-r--r--nixpkgs/nixos/tests/zigbee2mqtt.nix19
-rw-r--r--nixpkgs/pkgs/applications/audio/a2jmidid/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/audio/adlplug/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/audio/aeolus/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/ardour/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/ashuffle/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/audio/audacious/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/audio/audacious/qt-5.nix92
-rw-r--r--nixpkgs/pkgs/applications/audio/audacity/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/axoloti/libusb1.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/bambootracker/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/audio/bchoppr/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/bjumblr/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/bs1770gain/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/bschaffl/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/audio/bsequencer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/bslizr/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/cantata/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/audio/cantata/dont-check-for-perl-in-PATH.diff17
-rw-r--r--nixpkgs/pkgs/applications/audio/cava/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/csound/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/deadbeef/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/dragonfly-reverb/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/drumkv1/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2jack.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/faust/faustlive.nix22
-rw-r--r--nixpkgs/pkgs/applications/audio/fdkaac/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/flacon/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/fmit/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/foo-yc20/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/freqtweak/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/friture/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/audio/friture/unlock_constraints.patch34
-rw-r--r--nixpkgs/pkgs/applications/audio/ft2-clone/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/fverb/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/audio/geonkick/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/audio/giada/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/gpodder/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/gspeech/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/guitarix/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/audio/guitarix/fix-build.patch10
-rw-r--r--nixpkgs/pkgs/applications/audio/gwc/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/audio/gxplugins-lv2/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/helm/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/audio/hydrogen/0.nix26
-rw-r--r--nixpkgs/pkgs/applications/audio/hydrogen/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/audio/hydrogen/unstable.nix34
-rw-r--r--nixpkgs/pkgs/applications/audio/industrializer/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/audio/jackmix/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/audio/jalv/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/jamulus/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/kapitonov-plugins-pack/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/audio/kmetronome/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/audio/librespot/cargo-lock.patch137
-rw-r--r--nixpkgs/pkgs/applications/audio/librespot/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/audio/lingot/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/littlegptracker/0001-Remove-coherency-checks.patch52
-rw-r--r--nixpkgs/pkgs/applications/audio/littlegptracker/0002-Set-the-initial-directory-to-the-current-directory.patch27
-rw-r--r--nixpkgs/pkgs/applications/audio/littlegptracker/default.nix72
-rw-r--r--nixpkgs/pkgs/applications/audio/lmms/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/lollypop/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/lv2-cpp-tools/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/audio/mamba/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/audio/mellowplayer/default.nix70
-rw-r--r--nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/audio/mixxx/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/audio/molot-lite/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/audio/mooSpace/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/iris.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/tunein.nix28
-rw-r--r--nixpkgs/pkgs/applications/audio/mopidy/youtube.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/mpg123/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/muse/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/musescore/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/audio/musikcube/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/musly/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/ncmpc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/ncspot/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/netease-cloud-music/default.nix81
-rw-r--r--nixpkgs/pkgs/applications/audio/noisetorch/config.patch13
-rw-r--r--nixpkgs/pkgs/applications/audio/noisetorch/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/audio/noisetorch/embedlibrnnoise.patch13
-rw-r--r--nixpkgs/pkgs/applications/audio/noisetorch/version.patch37
-rw-r--r--nixpkgs/pkgs/applications/audio/openmpt123/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/opusfile/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/osmid/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/padthv1/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/parlatype/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/pd-plugins/gem/default.nix62
-rw-r--r--nixpkgs/pkgs/applications/audio/picard/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/audio/picoloop/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/audio/plexamp/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/audio/projectm/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/pt2-clone/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/audio/puddletag/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/pulseeffects/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/qjackctl/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/qmmp/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/qsynth/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/qtractor/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/real_time_config_quick_scan/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/audio/reaper/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/renoise/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/rhvoice/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/rosegarden/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/seq66/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/audio/sfizz/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/shortwave/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/sidplayfp/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/audio/snapcast/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/audio/snd/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/sonata/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/audio/sonic-visualiser/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/audio/sooperlooper/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/soundkonverter/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/audio/soundtracker/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify-tui/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/spotify/wrapper.nix31
-rw-r--r--nixpkgs/pkgs/applications/audio/strawberry/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/audio/sublime-music/default.nix60
-rw-r--r--nixpkgs/pkgs/applications/audio/sunvox/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/surge/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/audio/synthv1/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/talentedhack/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/audio/tamgamp.lv2/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/audio/transcribe/default.nix73
-rw-r--r--nixpkgs/pkgs/applications/audio/tuijam/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/audio/tunefish/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/audio/uhhyou.lv2/default.nix67
-rw-r--r--nixpkgs/pkgs/applications/audio/vcv-rack/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/audio/virtual-ans/default.nix89
-rw-r--r--nixpkgs/pkgs/applications/audio/vmpk/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/audio/vocal/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/audio/vocproc/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/audio/x42-plugins/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations.patch (renamed from nixpkgs/pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations)0
-rw-r--r--nixpkgs/pkgs/applications/audio/yasr/20_maxpathlen.patch (renamed from nixpkgs/pkgs/applications/audio/yasr/20_maxpathlen)0
-rw-r--r--nixpkgs/pkgs/applications/audio/yasr/30_conf.patch (renamed from nixpkgs/pkgs/applications/audio/yasr/30_conf)0
-rw-r--r--nixpkgs/pkgs/applications/audio/yasr/40_dectalk_extended_chars.patch (renamed from nixpkgs/pkgs/applications/audio/yasr/40_dectalk_extended_chars)0
-rw-r--r--nixpkgs/pkgs/applications/audio/yasr/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/backup/deja-dup/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/backup/deja-dup/hardcode-gsettings.patch16
-rw-r--r--nixpkgs/pkgs/applications/backup/vorta/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix22
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bitcoin-knots.nix41
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/bitcoin.nix12
-rw-r--r--nixpkgs/pkgs/applications/blockchains/btcdeb/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix66
-rw-r--r--nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix1937
-rwxr-xr-xnixpkgs/pkgs/applications/blockchains/btcpayserver/update.sh6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/cgminer/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/blockchains/clightning.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/dashpay.nix2
-rw-r--r--nixpkgs/pkgs/applications/blockchains/dcrd.nix34
-rw-r--r--nixpkgs/pkgs/applications/blockchains/dcrwallet.nix43
-rw-r--r--nixpkgs/pkgs/applications/blockchains/dogecoin.nix2
-rw-r--r--nixpkgs/pkgs/applications/blockchains/ergo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/exodus/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/go-ethereum.nix24
-rw-r--r--nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/blockchains/litecoin.nix2
-rw-r--r--nixpkgs/pkgs/applications/blockchains/lnd.nix26
-rw-r--r--nixpkgs/pkgs/applications/blockchains/mist.nix72
-rw-r--r--nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/blockchains/monero/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/blockchains/mycrypto/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/blockchains/namecoin.nix6
-rw-r--r--nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix1072
-rwxr-xr-xnixpkgs/pkgs/applications/blockchains/nbxplorer/update.sh6
-rwxr-xr-xnixpkgs/pkgs/applications/blockchains/nbxplorer/util/create-deps.sh45
-rwxr-xr-xnixpkgs/pkgs/applications/blockchains/nbxplorer/util/update-common.sh51
-rw-r--r--nixpkgs/pkgs/applications/blockchains/openethereum/default.nix (renamed from nixpkgs/pkgs/applications/blockchains/parity/default.nix)16
-rw-r--r--nixpkgs/pkgs/applications/blockchains/openethereum/lock.patch20
-rw-r--r--nixpkgs/pkgs/applications/blockchains/pivx.nix13
-rw-r--r--nixpkgs/pkgs/applications/blockchains/quorum.nix2
-rw-r--r--nixpkgs/pkgs/applications/blockchains/wasabibackend/create_deps.sh98
-rw-r--r--nixpkgs/pkgs/applications/blockchains/wasabibackend/default.nix100
-rw-r--r--nixpkgs/pkgs/applications/blockchains/wasabibackend/deps.nix956
-rw-r--r--nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/blockchains/whirlpool-gui/default.nix104
-rw-r--r--nixpkgs/pkgs/applications/blockchains/wownero.nix18
-rw-r--r--nixpkgs/pkgs/applications/display-managers/lightdm/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/editors/android-studio/common.nix7
-rw-r--r--nixpkgs/pkgs/applications/editors/android-studio/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/editors/atom/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/editors/bluej/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/editors/brackets/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/code-browser/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/editors/cudatext/default.nix113
-rw-r--r--nixpkgs/pkgs/applications/editors/cudatext/deps.json42
-rw-r--r--nixpkgs/pkgs/applications/editors/cudatext/dont-check-update.patch12
-rw-r--r--nixpkgs/pkgs/applications/editors/eclipse/build-eclipse.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/eclipse/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/editors/eclipse/plugins.nix11
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/26.nix8
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/27.nix8
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/clean-env-26.patch15
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/clean-env.patch15
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/generic.nix (renamed from nixpkgs/pkgs/applications/editors/emacs/default.nix)125
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/macport.nix23
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch14
-rw-r--r--nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch10
-rw-r--r--nixpkgs/pkgs/applications/editors/featherpad/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/editors/glow/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/gnome-builder/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/gophernotes/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/editors/hexdino/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/editors/jedit/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/editors/jetbrains/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile6
-rw-r--r--nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile.lock119
-rw-r--r--nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/gemset.nix429
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/case.kak.nix27
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix6
-rw-r--r--nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix25
-rw-r--r--nixpkgs/pkgs/applications/editors/kdevelop5/kdev-php.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/kibi/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/editors/lighttable/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/editors/lite/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/micro/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/editors/micro/deps.nix17
-rw-r--r--nixpkgs/pkgs/applications/editors/nano/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/qt.nix1
-rw-r--r--nixpkgs/pkgs/applications/editors/neovim/wrapper.nix118
-rw-r--r--nixpkgs/pkgs/applications/editors/netbeans/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/editors/okteta/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/quartus-prime/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/editors/quartus-prime/vsim.patch11
-rw-r--r--nixpkgs/pkgs/applications/editors/quilter/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/editors/setzer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/sigil/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/editors/texstudio/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/tiled/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/typora/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/common.nix4
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/configurable.nix11
-rw-r--r--nixpkgs/pkgs/applications/editors/vim/qvim.nix113
-rw-r--r--nixpkgs/pkgs/applications/editors/viw/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/generic.nix2
-rwxr-xr-xnixpkgs/pkgs/applications/editors/vscode/update.sh4
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/vscode.nix6
-rw-r--r--nixpkgs/pkgs/applications/editors/vscode/vscodium.nix6
-rw-r--r--nixpkgs/pkgs/applications/editors/xxe-pe/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/gis/gmt/dcw.nix32
-rw-r--r--nixpkgs/pkgs/applications/gis/gmt/default.nix73
-rw-r--r--nixpkgs/pkgs/applications/gis/gmt/gshhg.nix31
-rw-r--r--nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix4
-rw-r--r--nixpkgs/pkgs/applications/gis/saga/default.nix91
-rw-r--r--nixpkgs/pkgs/applications/gis/saga/opencv4.patch14
-rw-r--r--nixpkgs/pkgs/applications/gis/whitebox-tools/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/akira/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/graphics/akira/fix-build-with-vala-0-44-or-later.patch88
-rw-r--r--nixpkgs/pkgs/applications/graphics/avocode/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/cloudcompare/default.nix82
-rw-r--r--nixpkgs/pkgs/applications/graphics/darktable/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/graphics/digikam/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/graphics/draftsight/default.nix88
-rw-r--r--nixpkgs/pkgs/applications/graphics/drawio/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/graphics/drawpile/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/graphics/evilpixie/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/graphics/feh/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/fluxus/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/fondo/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/graphics/fontmatrix/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/graphics/freecad/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/graphics/freecad/stable.nix85
-rw-r--r--nixpkgs/pkgs/applications/graphics/gcolor3/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/graphics/gimp/default.nix64
-rw-r--r--nixpkgs/pkgs/applications/graphics/gimp/hardcode-plugin-interpreters.patch11
-rw-r--r--nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/graphics/ideogram/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/graphics/inkscape/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/graphics/inkscape/extensions.nix37
-rw-r--r--nixpkgs/pkgs/applications/graphics/inkscape/fix-python-paths.patch15
-rw-r--r--nixpkgs/pkgs/applications/graphics/inkscape/with-extensions.nix21
-rw-r--r--nixpkgs/pkgs/applications/graphics/krita/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/ktikz/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/graphics/lazpaint/default.nix72
-rw-r--r--nixpkgs/pkgs/applications/graphics/lightburn/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/meshlab/default.nix166
-rw-r--r--nixpkgs/pkgs/applications/graphics/meshlab/meshlab.desktop14
-rw-r--r--nixpkgs/pkgs/applications/graphics/mypaint/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/graphics/nomacs/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/odafileconverter/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/graphics/opentoonz/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/graphics/opentoonz/libtiff.nix21
-rw-r--r--nixpkgs/pkgs/applications/graphics/opentoonz/source.nix16
-rw-r--r--nixpkgs/pkgs/applications/graphics/paraview/default.nix74
-rw-r--r--nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/graphics/pencil/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/processing/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/graphics/qosmic/default.nix70
-rw-r--r--nixpkgs/pkgs/applications/graphics/renderdoc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/runwayml/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/graphics/sane/backends/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/shotwell/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/graphics/swingsane/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/ufraw/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/graphics/viewnior/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/graphics/write_stylus/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/graphics/xara/debian-patches.nix30
-rw-r--r--nixpkgs/pkgs/applications/graphics/xara/debian-patches.txt7
-rw-r--r--nixpkgs/pkgs/applications/graphics/xara/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/graphics/xfractint/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/yed/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/graphics/yeetgif/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch (renamed from nixpkgs/pkgs/applications/kde/akonadi/akonadi-paths.patch)98
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch26
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch (renamed from nixpkgs/pkgs/applications/kde/akonadi/0001-Revert-Make-Akonadi-installation-properly-relocatabl.patch)34
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/akonadi-timestamps.patch14
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/kde/akonadi/series3
-rw-r--r--nixpkgs/pkgs/applications/kde/bomber.nix30
-rw-r--r--nixpkgs/pkgs/applications/kde/bovo.nix28
-rw-r--r--nixpkgs/pkgs/applications/kde/calendarsupport.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/kde/elisa.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/fetch.sh2
-rw-r--r--nixpkgs/pkgs/applications/kde/granatier.nix23
-rw-r--r--nixpkgs/pkgs/applications/kde/grantleetheme/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch155
-rw-r--r--nixpkgs/pkgs/applications/kde/grantleetheme/series1
-rw-r--r--nixpkgs/pkgs/applications/kde/incidenceeditor.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/kalzium.nix26
-rw-r--r--nixpkgs/pkgs/applications/kde/kapman.nix21
-rw-r--r--nixpkgs/pkgs/applications/kde/kapptemplate.nix24
-rw-r--r--nixpkgs/pkgs/applications/kde/katomic.nix22
-rw-r--r--nixpkgs/pkgs/applications/kde/kblackbox.nix21
-rw-r--r--nixpkgs/pkgs/applications/kde/kblocks.nix21
-rw-r--r--nixpkgs/pkgs/applications/kde/kbounce.nix22
-rw-r--r--nixpkgs/pkgs/applications/kde/kdegraphics-thumbnailers.nix8
-rw-r--r--nixpkgs/pkgs/applications/kde/kdenlive.nix6
-rw-r--r--nixpkgs/pkgs/applications/kde/kdepim-apps-libs/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/kde/kdepim-apps-libs/kdepim-apps-libs-grantlee-merge-theme-dirs.patch62
-rw-r--r--nixpkgs/pkgs/applications/kde/kdepim-apps-libs/series1
-rw-r--r--nixpkgs/pkgs/applications/kde/kdepim-runtime/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/kde/kdiamond.nix23
-rw-r--r--nixpkgs/pkgs/applications/kde/kfloppy.nix20
-rw-r--r--nixpkgs/pkgs/applications/kde/kigo.nix22
-rw-r--r--nixpkgs/pkgs/applications/kde/killbots.nix21
-rw-r--r--nixpkgs/pkgs/applications/kde/kio-extras.nix12
-rw-r--r--nixpkgs/pkgs/applications/kde/klettres.nix22
-rw-r--r--nixpkgs/pkgs/applications/kde/klines.nix21
-rw-r--r--nixpkgs/pkgs/applications/kde/kmag.nix20
-rw-r--r--nixpkgs/pkgs/applications/kde/kmail.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/kmail.patch24
-rw-r--r--nixpkgs/pkgs/applications/kde/kmines.nix23
-rw-r--r--nixpkgs/pkgs/applications/kde/knavalbattle.nix22
-rw-r--r--nixpkgs/pkgs/applications/kde/knetwalk.nix21
-rw-r--r--nixpkgs/pkgs/applications/kde/knights.nix23
-rw-r--r--nixpkgs/pkgs/applications/kde/kollision.nix21
-rw-r--r--nixpkgs/pkgs/applications/kde/kontact.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/kreversi.nix19
-rw-r--r--nixpkgs/pkgs/applications/kde/kshisen.nix22
-rw-r--r--nixpkgs/pkgs/applications/kde/ksquares.nix22
-rw-r--r--nixpkgs/pkgs/applications/kde/kteatime.nix23
-rw-r--r--nixpkgs/pkgs/applications/kde/ktimer.nix20
-rw-r--r--nixpkgs/pkgs/applications/kde/kturtle.nix21
-rw-r--r--nixpkgs/pkgs/applications/kde/kwave.nix37
-rw-r--r--nixpkgs/pkgs/applications/kde/mailimporter.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/marble.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/messagelib.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/picmi.nix25
-rw-r--r--nixpkgs/pkgs/applications/kde/pimcommon.nix10
-rw-r--r--nixpkgs/pkgs/applications/kde/spectacle.nix4
-rw-r--r--nixpkgs/pkgs/applications/kde/srcs.nix1742
-rw-r--r--nixpkgs/pkgs/applications/logging/humioctl/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/1password/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/adobe-reader/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/airtame/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/alacritty/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/almanah/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/misc/appeditor/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/archiver/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/ausweisapp2/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/autospotting/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/autospotting/deps.nix75
-rw-r--r--nixpkgs/pkgs/applications/misc/batsignal/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/bemenu/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/birdtray/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/misc/birdtray/fix-qttranslations-path.diff13
-rw-r--r--nixpkgs/pkgs/applications/misc/bleachbit/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/misc/blender/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/misc/break-time/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/misc/buku/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/calibre/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/misc/cgminer/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/misc/cheat/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/cherrytree/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/chewing-editor/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/misc/cipher/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/clight/clightd.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/clight/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/clipmenu/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/misc/cointop/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/coolreader/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/misc/copyq/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/cura/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/cura/plugins.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/curaengine/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/dbeaver/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/ddcui/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/misc/ddgr/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/direwolf/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/misc/dmenu/wayland.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/dstask/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/dunst/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/effitask/cargo-lock.patch1091
-rw-r--r--nixpkgs/pkgs/applications/misc/effitask/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/misc/electron-cash/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/misc/electrum/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/misc/electrum/ltc.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/et/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/etesync-dav/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/misc/exercism/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/fbmenugen/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/fetchmail/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/firestarter/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/font-manager/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/fontpreview/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/misc/foot/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/formatter/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/fslint/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/misc/fuzzel/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/gallery-dl/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/ganttproject-bin/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/gcstar/default.nix72
-rw-r--r--nixpkgs/pkgs/applications/misc/geoipupdate/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/girara/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/glom/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/misc/gmrun/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/go-jira/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock39
-rw-r--r--nixpkgs/pkgs/applications/misc/gollum/gemset.nix69
-rw-r--r--nixpkgs/pkgs/applications/misc/gomatrix/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/googleearth/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/googler/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/misc/gopacked/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/gpsbabel/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/gpsprune/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/gpxsee/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/gramps/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/grip/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/havoc/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/heimer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/hovercraft/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/hstr/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/html5validator/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/hugo/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/imag/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/misc/inkcut/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock22
-rw-r--r--nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix44
-rw-r--r--nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock26
-rw-r--r--nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix52
-rw-r--r--nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/josm/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch49
-rw-r--r--nixpkgs/pkgs/applications/misc/k2pdfopt/default.nix150
-rw-r--r--nixpkgs/pkgs/applications/misc/k2pdfopt/k2pdfopt-mupdf-1.16.1.patch151
-rw-r--r--nixpkgs/pkgs/applications/misc/k2pdfopt/k2pdfopt.patch99
-rw-r--r--nixpkgs/pkgs/applications/misc/k2pdfopt/leptonica.patch254
-rw-r--r--nixpkgs/pkgs/applications/misc/k2pdfopt/mupdf.patch1060
-rw-r--r--nixpkgs/pkgs/applications/misc/k2pdfopt/tesseract.patch675
-rw-r--r--nixpkgs/pkgs/applications/misc/k4dirstat/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/misc/kanboard/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/keepass/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/keepassx/community.nix11
-rw-r--r--nixpkgs/pkgs/applications/misc/khal/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/misc/khal/skip-broken-test.patch12
-rw-r--r--nixpkgs/pkgs/applications/misc/khard/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/misc/kitty/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/misc/kitty/library-paths.patch38
-rw-r--r--nixpkgs/pkgs/applications/misc/kitty/no-lto.patch2
-rw-r--r--nixpkgs/pkgs/applications/misc/klayout/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/kondo/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/krename/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/lutris/default.nix81
-rw-r--r--nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix (renamed from nixpkgs/pkgs/applications/misc/lutris/chrootenv.nix)2
-rw-r--r--nixpkgs/pkgs/applications/misc/lyx/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/makeself/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/marktext/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/misc/masterpdfeditor/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/mediainfo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/megasync/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/minder/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/mlterm/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/moolticute/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/mop/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/mrxvt/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/navi/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/misc/netsurf/libnsbmp/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/nimmm/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/misc/nnn/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/notejot/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/misc/obinskit/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/misc/obsidian/default.nix74
-rw-r--r--nixpkgs/pkgs/applications/misc/octoprint/default.nix232
-rw-r--r--nixpkgs/pkgs/applications/misc/octoprint/plugins.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/ola/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/olifant/default.nix69
-rw-r--r--nixpkgs/pkgs/applications/misc/openambit/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/misc/openjump/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/misc/openrgb/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/misc/orca/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/osmium-tool/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/misc/pastel/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/pdfarranger/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/pdfpc/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/pgadmin/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/pipr/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/prusa-slicer/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix50
-rw-r--r--nixpkgs/pkgs/applications/misc/pueue/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/qcad/application-dir.patch13
-rw-r--r--nixpkgs/pkgs/applications/misc/qcad/default.nix42
-rw-r--r--nixpkgs/pkgs/applications/misc/qdirstat/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/misc/qt-video-wlr/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/misc/redshift/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/misc/rescuetime/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/misc/rofi/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/rsclock/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/rsibreak/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/sampler/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/sbagen/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/sdcv/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/sequeler/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/sidequest/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/simplenote/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/misc/sl1-to-photon/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/misc/slic3r/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/slstatus/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/misc/snowsql/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/misc/st/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/misc/stretchly/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/subsurface/0001-core-fix-libgit-ifdef-to-handle-libgit2-v1.0-and-onw.patch41
-rw-r--r--nixpkgs/pkgs/applications/misc/subsurface/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/misc/super_user_spark/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/misc/sweethome3d/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix2
-rw-r--r--nixpkgs/pkgs/applications/misc/syncthing-tray/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/syncthingtray/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/synergy/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/misc/systembus-notify/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/taskell/default.nix65
-rw-r--r--nixpkgs/pkgs/applications/misc/tdrop/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/misc/teleprompter/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/tellico/default.nix67
-rw-r--r--nixpkgs/pkgs/applications/misc/tellico/hex.patch15
-rw-r--r--nixpkgs/pkgs/applications/misc/terminal-parrot/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/thinking-rock/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/tilda/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/timewarrior/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/tint2/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/misc/tipp10/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/misc/tippecanoe/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/misc/todiff/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/misc/todoist-electron/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/todoist/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/toot/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/misc/tootle/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/misc/topydo/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/misc/tut/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/ulauncher/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/misc/urlscan/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/waybar/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/weather/default.nix83
-rw-r--r--nixpkgs/pkgs/applications/misc/wofi/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/misc/wofi/do_not_follow_symlinks.patch39
-rw-r--r--nixpkgs/pkgs/applications/misc/worker/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/misc/wtf/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/misc/x3270/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/misc/xbattbar/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/misc/xbattbar/sys-by-default.patch26
-rw-r--r--nixpkgs/pkgs/applications/misc/xdragon/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/misc/xmenu/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix11
-rw-r--r--nixpkgs/pkgs/applications/misc/zathura/core/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/misc/zathura/wrapper.nix13
-rw-r--r--nixpkgs/pkgs/applications/misc/zettlr/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/misc/zola/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/Sylk/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/arora/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/av-98/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/brave/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/castor/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix64
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix72
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/patches/enable-vdpau-support-for-nvidia.patch9
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/update.nix271
-rwxr-xr-xnixpkgs/pkgs/applications/networking/browsers/chromium/update.py77
-rwxr-xr-xnixpkgs/pkgs/applications/networking/browsers/chromium/update.sh4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json17
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/elinks/debian-patches.nix34
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/elinks/debian-patches.txt8
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/elinks/gc-init.patch17
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/elinks/openssl-1.1.patch51
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix770
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix770
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix770
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-min-65.patch25
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/links2/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/next/next-gtk-webkit.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/opera/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix63
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch2
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix72
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix84
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-vdpau-support-for-nvidia.patch9
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/update.nix271
-rwxr-xr-xnixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/update.py77
-rwxr-xr-xnixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/update.sh4
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.json17
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix108
-rw-r--r--nixpkgs/pkgs/applications/networking/c14/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/c14/deps.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cawbird/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/charles/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cloudflared/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/argo/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/chronos/chronos-deps.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/chronos/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/chronos/fetch-chronos-deps.sh1672
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/cni/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/flink/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helm/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/heptio-ark/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/jx/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kops/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubespy/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/marathon/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/mesos/default.nix263
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh1359
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/mesos/mesos-deps.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/mesos/nixos.patch731
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/mesos/rb36610.patch12
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nomad/0.11.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nomad/0.12.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/nomad/generic.nix (renamed from nixpkgs/pkgs/applications/networking/cluster/nomad/default.nix)7
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/prow/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/spark/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix47
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/stern/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-compliance/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/keycloak/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/shell/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/networking/cluster/velero/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/networking/datovka/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/dnscontrol/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix88
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/newsflash/no-post-install.patch10
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/firehol/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/firehol/iprange.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/flexget/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/gmailctl/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/gnome-network-displays/default.nix82
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/gui.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/gns3/server.nix17
-rw-r--r--nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/hydroxide/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/ids/snort/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/ids/zeek/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/ids/zeek/script.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json (renamed from nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop-package.json)38
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix (renamed from nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop-yarndeps.nix)1432
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix (renamed from nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix)55
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix (renamed from nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-web.nix)12
-rwxr-xr-xnixpkgs/pkgs/applications/networking/instant-messengers/element/update-element-desktop.sh17
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix90
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/gomod.patch12
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch2
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/mirage/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/undefined-macros.patch40
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/rambox/pro.nix9
-rwxr-xr-xnixpkgs/pkgs/applications/networking/instant-messengers/riot/update-riot-desktop.sh17
-rwxr-xr-xnixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix86
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/deps.nix84
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/ytalk/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix13
-rwxr-xr-xnixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh15
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix46
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch13
-rw-r--r--nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/insync/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/ipfs/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/ipget/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/convos/default.nix77
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/quassel/0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch37
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/quassel/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/tiny/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/networking/maestral-qt/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/networking/maestral/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix18
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix104
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix31
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix85
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix41
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix183
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68_sources.nix615
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix540
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix32
-rw-r--r--nixpkgs/pkgs/applications/networking/mailreaders/trojita/fix-qttranslations-path.patch13
-rw-r--r--nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/msmtp/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/mumble/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/ncgopher/default.nix37
-rw-r--r--nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/nextdns/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/offrss/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/openbazaar/client.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/owncloud-client/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/gnunet/git.nix92
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix43
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/stig/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/torrential/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/ping/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/networking/protonvpn-cli-ng/default.nix35
-rw-r--r--nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix86
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix266
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix207
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix58
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/citrix-workspace/wrapper.nix19
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/putty/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/remmina/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/wayvnc/add-missing-librt.patch20
-rw-r--r--nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/networking/resilio-sync/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/networking/scaleft/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/seafile-client/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/networking/sync/rclone/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/networking/syncplay/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/syncthing/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/networking/termius/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/networking/utahfs/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/networking/weather/meteo/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/networking/websocketd/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/networking/wg-bond/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/office/aesop/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/agenda/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/office/atlassian-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/beamerpresenter/default.nix40
-rw-r--r--nixpkgs/pkgs/applications/office/calligra/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/office/elementary-planner/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/envelope/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/office/espanso/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/office/fava/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/office/flexibee/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/gnumeric/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/office/gtg/default.nix75
-rw-r--r--nixpkgs/pkgs/applications/office/homebank/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/jabref/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/office/khronos/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/office/ledger/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix178
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix14
-rw-r--r--nixpkgs/pkgs/applications/office/libreoffice/src-still/override.nix9
-rw-r--r--nixpkgs/pkgs/applications/office/notes-up/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/office/osmo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/p3x-onenote/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/office/paperless/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/office/paperless/python-modules/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/office/portfolio/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/office/skrooge/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/softmaker/freeoffice.nix20
-rw-r--r--nixpkgs/pkgs/applications/office/softmaker/generic.nix35
-rw-r--r--nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix21
-rw-r--r--nixpkgs/pkgs/applications/office/spice-up/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/office/timetable/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/office/timeular/default.nix45
-rw-r--r--nixpkgs/pkgs/applications/office/todo.txt-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/todoman/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/trilium/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/office/watson/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/office/wordgrinder/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/office/wpsoffice/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/office/zim/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/office/zotero/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/qubes/qubes-core-vchan-xen/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/radio/chirp/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/cubicsdr/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/radio/direwolf/default.nix57
-rw-r--r--nixpkgs/pkgs/applications/radio/dsd/default.nix44
-rw-r--r--nixpkgs/pkgs/applications/radio/fldigi/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/flrig/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/gnss-sdr/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/inspectrum/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/radio/limesuite/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/noaa-apt/default.nix64
-rw-r--r--nixpkgs/pkgs/applications/radio/soapyremote/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/welle-io/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/radio/wsjtx/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/radio/wsjtx/super.patch4
-rw-r--r--nixpkgs/pkgs/applications/radio/wsjtx/wsjtx.patch13
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/gildas/wrapper.patch3
-rw-r--r--nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/aragorn/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/biology/bwa/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/science/biology/emboss/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/hisat2/default.nix20
-rw-r--r--nixpkgs/pkgs/applications/science/biology/hmmer/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/biology/igv/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/science/biology/itsx/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/biology/kssd/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/last/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/minc-tools/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/science/biology/mosdepth/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix38
-rw-r--r--nixpkgs/pkgs/applications/science/biology/octopus/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/seaview/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/sortmerna/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/science/biology/star/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/tebreak/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/biology/truvari/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/science/biology/whisper/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/d-seams/default.nix34
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/chemistry/octopus/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/adms/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/appcsxcad/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/csxcad/default.nix49
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/csxcad/searchPath.patch11
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/eagle/eagle7.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/flatcam/default.nix56
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/flatcam/release.patch13
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/fritzing/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix52
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/hyp2mat/default.nix53
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/kicad/base.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/kicad/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/kicad/libraries.nix9
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix28
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/magic-vlsi/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/openhantek6022/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/qcsxcad/default.nix50
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/verilator/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/verilog/default.nix48
-rw-r--r--nixpkgs/pkgs/applications/science/electronics/vhd2vl/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/science/geometry/gama/default.nix24
-rw-r--r--nixpkgs/pkgs/applications/science/logic/abc/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/logic/alt-ergo/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/science/logic/avy/0001-no-static-boost-libs.patch12
-rw-r--r--nixpkgs/pkgs/applications/science/logic/avy/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cadical/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/logic/coq/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cvc3/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/science/logic/cvc4/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/science/logic/drat-trim/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/science/logic/eprover/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/logic/fast-downward/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/science/logic/isabelle/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/science/logic/lean/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/logic/leo3/binary.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/logic/ltl2ba/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/logic/mcy/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/science/logic/ott/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/science/logic/proverif/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/logic/sad/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/science/logic/symbiyosys/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/science/logic/tlaplus/tlaps.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/logic/vampire/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/logic/why3/configure.patch11
-rw-r--r--nixpkgs/pkgs/applications/science/logic/why3/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/science/logic/workcraft/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/logic/z3/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/finalfrontier/default.nix51
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix55
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/science/machine-learning/streamlit/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/R/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/calculix/calculix.patch27
-rw-r--r--nixpkgs/pkgs/applications/science/math/calculix/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/geogebra/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix46
-rw-r--r--nixpkgs/pkgs/applications/science/math/gfan/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/science/math/gmsh/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/lp_solve/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/mathematica/l10ns.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/math/nasc/default.nix61
-rw-r--r--nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/science/math/rofi-calc/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/sage/sage-env.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/math/yacas/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/medicine/aliza/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/misc/gplates/boostfix.patch612
-rw-r--r--nixpkgs/pkgs/applications/science/misc/gplates/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/science/misc/openmvg/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/science/misc/rink/default.nix17
-rw-r--r--nixpkgs/pkgs/applications/science/misc/root/5.nix15
-rw-r--r--nixpkgs/pkgs/applications/science/misc/root/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/science/misc/snakemake/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/apmplanner2/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/search/recoll/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/system/glances/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/system/monitor/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/version-management/bcompare/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/commitizen/default.nix17
-rwxr-xr-xnixpkgs/pkgs/applications/version-management/commitizen/generate-dependencies.sh9
-rw-r--r--nixpkgs/pkgs/applications/version-management/commitizen/node-composition.nix17
-rw-r--r--nixpkgs/pkgs/applications/version-management/commitizen/node-env.nix542
-rw-r--r--nixpkgs/pkgs/applications/version-management/commitizen/node-packages.nix9071
-rw-r--r--nixpkgs/pkgs/applications/version-management/commitizen/package.json3
-rw-r--r--nixpkgs/pkgs/applications/version-management/fossil/default.nix43
-rw-r--r--nixpkgs/pkgs/applications/version-management/gerrit/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-imerge/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-subtrac/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/gita/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/gitin/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix58
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/lefthook/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/rs-git-fsmonitor/default.nix33
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix25
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-lfs/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-repo/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/git-sizer/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitea/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch14
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitkraken/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/data.json8
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/deps.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock18
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix16
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix16
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitolite/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/gitoxide/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/version-management/gomp/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/version-management/meld/default.nix75
-rw-r--r--nixpkgs/pkgs/applications/version-management/mercurial/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/p4/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/version-management/p4v/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/version-management/pijul/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch275
-rw-r--r--nixpkgs/pkgs/applications/version-management/redmine/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/sit/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix14
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/core.nix10
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix9
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/git.nix34
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix9
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix31
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix9
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/man.nix9
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix26
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix9
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/scm.nix4
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix9
-rwxr-xr-xnixpkgs/pkgs/applications/version-management/sourcehut/update.sh4
-rw-r--r--nixpkgs/pkgs/applications/version-management/sourcehut/use-srht-path.patch43
-rw-r--r--nixpkgs/pkgs/applications/version-management/sparkleshare/default.nix89
-rw-r--r--nixpkgs/pkgs/applications/version-management/sublime-merge/common.nix10
-rw-r--r--nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/version-management/yadm/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/aegisub/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/video/avidemux/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/catt/default.nix23
-rw-r--r--nixpkgs/pkgs/applications/video/celluloid/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/video/clipgrab/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/dvdbackup/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/video/electronplayer/electronplayer.nix33
-rw-r--r--nixpkgs/pkgs/applications/video/epgstation/default.nix85
-rw-r--r--nixpkgs/pkgs/applications/video/epgstation/epgstation.152
-rwxr-xr-xnixpkgs/pkgs/applications/video/epgstation/generate.sh34
-rw-r--r--nixpkgs/pkgs/applications/video/epgstation/package.json101
-rw-r--r--nixpkgs/pkgs/applications/video/epgstation/use-mysql-over-domain-socket.patch17
-rw-r--r--nixpkgs/pkgs/applications/video/filebot/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/video/gpac/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/video/hdhomerun-config-gui/default.nix29
-rw-r--r--nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/default.nix21
-rw-r--r--nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch12
-rw-r--r--nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch15
-rw-r--r--nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix25
-rw-r--r--nixpkgs/pkgs/applications/video/kodi/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/video/lightworks/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/video/makemkv/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/video/mapmap/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/video/molotov/default.nix31
-rw-r--r--nixpkgs/pkgs/applications/video/motion/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/scripts/autoload.nix20
-rw-r--r--nixpkgs/pkgs/applications/video/mpv/scripts/sponsorblock.nix51
-rw-r--r--nixpkgs/pkgs/applications/video/mythtv/default.nix16
-rw-r--r--nixpkgs/pkgs/applications/video/mythtv/disable-os-detection.patch80
-rw-r--r--nixpkgs/pkgs/applications/video/mythtv/exiv2.patch19
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/v4l2sink.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/obs-studio/wlrobs.nix6
-rw-r--r--nixpkgs/pkgs/applications/video/peek/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/video/pitivi/default.nix140
-rw-r--r--nixpkgs/pkgs/applications/video/screenkey/default.nix69
-rw-r--r--nixpkgs/pkgs/applications/video/screenkey/paths.patch20
-rw-r--r--nixpkgs/pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch33
-rw-r--r--nixpkgs/pkgs/applications/video/shotcut/default.nix19
-rw-r--r--nixpkgs/pkgs/applications/video/smplayer/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/smtube/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/streamlink-twitch-gui/bin.nix100
-rw-r--r--nixpkgs/pkgs/applications/video/streamlink/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/vcs/default.nix39
-rw-r--r--nixpkgs/pkgs/applications/video/vcs/fonts.patch23
-rw-r--r--nixpkgs/pkgs/applications/video/vdr/default.nix11
-rw-r--r--nixpkgs/pkgs/applications/video/vdr/plugins.nix18
-rw-r--r--nixpkgs/pkgs/applications/video/vlc/default.nix5
-rw-r--r--nixpkgs/pkgs/applications/video/vokoscreen-ng/default.nix71
-rw-r--r--nixpkgs/pkgs/applications/video/vokoscreen/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/webcamoid/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix54
-rw-r--r--nixpkgs/pkgs/applications/virtualization/OVMF/default.nix13
-rw-r--r--nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix30
-rw-r--r--nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch53
-rw-r--r--nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix28
-rw-r--r--nixpkgs/pkgs/applications/virtualization/conmon/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/virtualization/containerd/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/cri-o/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/virtualization/cri-o/wrapper.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/crun/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix9
-rw-r--r--nixpkgs/pkgs/applications/virtualization/docker/default.nix59
-rw-r--r--nixpkgs/pkgs/applications/virtualization/firecracker/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/virtualization/firectl/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/gvisor/containerd-shim.nix3
-rw-r--r--nixpkgs/pkgs/applications/virtualization/gvisor/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/virtualization/hercules/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/virtualization/nvidia-docker/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix15
-rw-r--r--nixpkgs/pkgs/applications/virtualization/open-vm-tools/find_gdk_pixbuf_xlib.patch12
-rw-r--r--nixpkgs/pkgs/applications/virtualization/podman/default.nix22
-rw-r--r--nixpkgs/pkgs/applications/virtualization/qemu/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/virtualization/qemu/utils.nix6
-rw-r--r--nixpkgs/pkgs/applications/virtualization/railcar/default.nix1
-rw-r--r--nixpkgs/pkgs/applications/virtualization/runc/default.nix7
-rw-r--r--nixpkgs/pkgs/applications/virtualization/singularity/default.nix38
-rw-r--r--nixpkgs/pkgs/applications/virtualization/singularity/deps.nix1
-rw-r--r--nixpkgs/pkgs/applications/virtualization/tini/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/virtualization/umoci/default.nix12
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virt-manager/qt.nix4
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix10
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix2
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/extra_symbols.patch22
-rw-r--r--nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix3
-rw-r--r--nixpkgs/pkgs/applications/window-managers/bspwm/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/cage/default.nix36
-rw-r--r--nixpkgs/pkgs/applications/window-managers/cwm/default.nix2
-rw-r--r--nixpkgs/pkgs/applications/window-managers/dwm/default.nix8
-rw-r--r--nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix6
-rw-r--r--nixpkgs/pkgs/applications/window-managers/hikari/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/gaps.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/i3ipc-glib.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix32
-rw-r--r--nixpkgs/pkgs/applications/window-managers/icewm/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/leftwm/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/window-managers/notion/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch39
-rw-r--r--nixpkgs/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch31
-rw-r--r--nixpkgs/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch12
-rw-r--r--nixpkgs/pkgs/applications/window-managers/qtile/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/window-managers/spectrwm/default.nix6
-rw-r--r--nixpkgs/pkgs/applications/window-managers/sway/contrib.nix20
-rw-r--r--nixpkgs/pkgs/applications/window-managers/sway/lock-effects.nix7
-rw-r--r--nixpkgs/pkgs/applications/window-managers/sxhkd/default.nix4
-rw-r--r--nixpkgs/pkgs/applications/window-managers/weston/default.nix26
-rw-r--r--nixpkgs/pkgs/applications/window-managers/windowchef/default.nix27
-rw-r--r--nixpkgs/pkgs/applications/window-managers/windowmaker/default.nix9
-rw-r--r--nixpkgs/pkgs/build-support/alternatives/blas/default.nix4
-rw-r--r--nixpkgs/pkgs/build-support/appimage/default.nix3
-rw-r--r--nixpkgs/pkgs/build-support/build-bazel-package/default.nix46
-rw-r--r--nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix123
-rw-r--r--nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix167
-rwxr-xr-xnixpkgs/pkgs/build-support/buildenv/builder.pl9
-rw-r--r--nixpkgs/pkgs/build-support/docker/default.nix421
-rw-r--r--nixpkgs/pkgs/build-support/docker/examples.nix110
-rwxr-xr-xnixpkgs/pkgs/build-support/docker/store-path-to-layer.sh50
-rw-r--r--nixpkgs/pkgs/build-support/docker/stream_layered_image.py303
-rw-r--r--nixpkgs/pkgs/build-support/dotnetenv/build-solution.nix30
-rw-r--r--nixpkgs/pkgs/build-support/dotnetenv/default.nix2
-rw-r--r--nixpkgs/pkgs/build-support/dotnetenv/wrapper.nix10
-rw-r--r--nixpkgs/pkgs/build-support/emacs/generic.nix10
-rw-r--r--nixpkgs/pkgs/build-support/fetchgitlab/default.nix2
-rw-r--r--nixpkgs/pkgs/build-support/fetchrepoproject/default.nix3
-rw-r--r--nixpkgs/pkgs/build-support/fetchurl/builder.sh8
-rw-r--r--nixpkgs/pkgs/build-support/fetchurl/default.nix9
-rw-r--r--nixpkgs/pkgs/build-support/kernel/modules-closure.sh79
-rw-r--r--nixpkgs/pkgs/build-support/ocaml/oasis.nix6
-rw-r--r--nixpkgs/pkgs/build-support/release/default.nix4
-rw-r--r--nixpkgs/pkgs/build-support/release/gcov-report.nix49
-rw-r--r--nixpkgs/pkgs/build-support/rust/build-rust-crate/build-crate.nix2
-rw-r--r--nixpkgs/pkgs/build-support/rust/build-rust-crate/configure-crate.nix4
-rw-r--r--nixpkgs/pkgs/build-support/rust/build-rust-crate/lib.sh6
-rw-r--r--nixpkgs/pkgs/build-support/rust/build-rust-crate/log.nix14
-rw-r--r--nixpkgs/pkgs/build-support/rust/default.nix26
-rw-r--r--nixpkgs/pkgs/build-support/rust/fetchcrate.nix7
-rw-r--r--nixpkgs/pkgs/build-support/setup-hooks/auto-patchelf.sh2
-rw-r--r--nixpkgs/pkgs/build-support/setup-hooks/multiple-outputs.sh2
-rw-r--r--nixpkgs/pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix175
-rw-r--r--nixpkgs/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/lib.nix30
-rw-r--r--nixpkgs/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/sample-project/Makefile30
-rw-r--r--nixpkgs/pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh (renamed from nixpkgs/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh)0
-rw-r--r--nixpkgs/pkgs/build-support/singularity-tools/default.nix5
-rw-r--r--nixpkgs/pkgs/build-support/trivial-builders.nix2
-rw-r--r--nixpkgs/pkgs/build-support/writers/default.nix72
-rw-r--r--nixpkgs/pkgs/build-support/writers/test.nix8
-rw-r--r--nixpkgs/pkgs/common-updater/nix-update.nix5
-rw-r--r--nixpkgs/pkgs/data/documentation/anarchism/default.nix45
-rw-r--r--nixpkgs/pkgs/data/documentation/bgnet/default.nix27
-rw-r--r--nixpkgs/pkgs/data/documentation/man-pages/default.nix4
-rw-r--r--nixpkgs/pkgs/data/documentation/scheme-manpages/default.nix12
-rw-r--r--nixpkgs/pkgs/data/documentation/zeal/default.nix34
-rw-r--r--nixpkgs/pkgs/data/documentation/zeal/remove_ads.patch23
-rw-r--r--nixpkgs/pkgs/data/fonts/3270font/default.nix26
-rw-r--r--nixpkgs/pkgs/data/fonts/agave/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/alegreya-sans/default.nix37
-rw-r--r--nixpkgs/pkgs/data/fonts/alegreya/default.nix43
-rw-r--r--nixpkgs/pkgs/data/fonts/barlow/default.nix28
-rw-r--r--nixpkgs/pkgs/data/fonts/caladea/cambria-alias.conf2
-rw-r--r--nixpkgs/pkgs/data/fonts/carlito/calibri-alias.conf2
-rw-r--r--nixpkgs/pkgs/data/fonts/cascadia-code/default.nix49
-rw-r--r--nixpkgs/pkgs/data/fonts/clearlyU/default.nix11
-rw-r--r--nixpkgs/pkgs/data/fonts/comic-neue/default.nix54
-rw-r--r--nixpkgs/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf2
-rw-r--r--nixpkgs/pkgs/data/fonts/corefonts/default.nix2
-rw-r--r--nixpkgs/pkgs/data/fonts/corefonts/no-op.conf2
-rw-r--r--nixpkgs/pkgs/data/fonts/cozette/default.nix57
-rw-r--r--nixpkgs/pkgs/data/fonts/creep/default.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/dina/default.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/edukai/default.nix33
-rw-r--r--nixpkgs/pkgs/data/fonts/eduli/default.nix36
-rw-r--r--nixpkgs/pkgs/data/fonts/edusong/default.nix32
-rw-r--r--nixpkgs/pkgs/data/fonts/emojione/default.nix18
-rw-r--r--nixpkgs/pkgs/data/fonts/envypn-font/default.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/fontconfig-penultimate/default.nix24
-rw-r--r--nixpkgs/pkgs/data/fonts/gohufont/default.nix11
-rw-r--r--nixpkgs/pkgs/data/fonts/ibm-plex/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/bin.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/default.nix8
-rw-r--r--nixpkgs/pkgs/data/fonts/iosevka/package.json30
-rw-r--r--nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix8
-rw-r--r--nixpkgs/pkgs/data/fonts/joypixels/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/kanji-stroke-order-font/default.nix20
-rw-r--r--nixpkgs/pkgs/data/fonts/liberation-fonts/default.nix5
-rw-r--r--nixpkgs/pkgs/data/fonts/material-design-icons/default.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/nerdfonts/default.nix7
-rw-r--r--nixpkgs/pkgs/data/fonts/noto-fonts/default.nix38
-rw-r--r--nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix62
-rw-r--r--nixpkgs/pkgs/data/fonts/profont/default.nix7
-rw-r--r--nixpkgs/pkgs/data/fonts/recursive/default.nix9
-rw-r--r--nixpkgs/pkgs/data/fonts/redhat-official/default.nix21
-rw-r--r--nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/siji/default.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/source-han/default.nix3
-rw-r--r--nixpkgs/pkgs/data/fonts/spleen/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/sudo/default.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/tamsyn/default.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/tamzen/default.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/terminus-font/default.nix7
-rw-r--r--nixpkgs/pkgs/data/fonts/tewi/default.nix8
-rw-r--r--nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix15
-rw-r--r--nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix25
-rw-r--r--nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix8
-rw-r--r--nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/uni-vga/default.nix9
-rw-r--r--nixpkgs/pkgs/data/fonts/unifont/default.nix6
-rw-r--r--nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/victor-mono/default.nix4
-rw-r--r--nixpkgs/pkgs/data/fonts/vista-fonts-chs/no-op.conf2
-rw-r--r--nixpkgs/pkgs/data/fonts/vista-fonts/no-op.conf2
-rw-r--r--nixpkgs/pkgs/data/fonts/xits-math/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/bibata-cursors/translucent.nix2
-rw-r--r--nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/iconpack-jade/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/iconpack-obsidian/default.nix10
-rw-r--r--nixpkgs/pkgs/data/icons/iso-flags/default.nix47
-rw-r--r--nixpkgs/pkgs/data/icons/luna-icons/default.nix52
-rw-r--r--nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix4
-rw-r--r--nixpkgs/pkgs/data/icons/vanilla-dmz/default.nix26
-rw-r--r--nixpkgs/pkgs/data/misc/cacert/default.nix1
-rw-r--r--nixpkgs/pkgs/data/misc/cldr-emoji-annotation/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/dns-root-data/default.nix2
-rw-r--r--nixpkgs/pkgs/data/misc/hackage/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/iana-etc/default.nix4
-rw-r--r--nixpkgs/pkgs/data/misc/nixos-artwork/wallpapers.nix27
-rw-r--r--nixpkgs/pkgs/data/misc/osinfo-db/default.nix8
-rw-r--r--nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/adwaita-qt/default.nix8
-rw-r--r--nixpkgs/pkgs/data/themes/arc/default.nix7
-rw-r--r--nixpkgs/pkgs/data/themes/cdetheme/default.nix (renamed from nixpkgs/pkgs/data/themes/cde-motif-theme/default.nix)3
-rw-r--r--nixpkgs/pkgs/data/themes/jade1/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/marwaita-manjaro/default.nix46
-rw-r--r--nixpkgs/pkgs/data/themes/marwaita-peppermint/default.nix46
-rw-r--r--nixpkgs/pkgs/data/themes/marwaita/default.nix46
-rw-r--r--nixpkgs/pkgs/data/themes/matcha/default.nix4
-rw-r--r--nixpkgs/pkgs/data/themes/obsidian2/default.nix18
-rw-r--r--nixpkgs/pkgs/data/themes/pop-gtk/default.nix10
-rw-r--r--nixpkgs/pkgs/data/themes/ubuntu-themes/default.nix8
-rw-r--r--nixpkgs/pkgs/data/themes/venta/default.nix47
-rw-r--r--nixpkgs/pkgs/data/themes/yaru/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix166
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/libcroco.nix33
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix15
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix57
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix116
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/0001-Add-dbus_glib-dependency.patch38
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/0001-Use-dbus_glib-instead-of-elogind.patch38
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/default.nix18
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/mint-artwork/default.nix39
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/mint-themes/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/mint-x-icons/default.nix (renamed from nixpkgs/pkgs/data/icons/mint-x-icons/default.nix)37
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/mint-y-icons/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix21
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix13
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/warpinator/default.nix79
-rw-r--r--nixpkgs/pkgs/desktops/cinnamon/xapps/default.nix31
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-api/default.nix127
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-api/deps.nix102
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-calendar/default.nix57
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-control-center/default.nix150
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-control-center/fix-paths.patch65
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-daemon/default.nix159
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-daemon/deps.nix111
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-dock/dde-dock.plugins-dir.patch39
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-dock/default.nix116
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-dock/wrapper.nix25
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-mime-cache-paths.patch323
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-paths.patch89
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.pixmaps-paths.patch38
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-file-manager/default.nix298
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-kwin/0001-dde-kwin.pc-make-paths-relative.patch56
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-kwin/default.nix142
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-kwin/fix-paths.patch16
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-launcher/default.nix101
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-network-utils/default.nix63
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-network-utils/fix-paths.patch23
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-polkit-agent/dde-polkit-agent.plugins-dir.patch42
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-polkit-agent/default.nix60
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix43
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dde-session-ui/default.nix157
-rw-r--r--nixpkgs/pkgs/desktops/deepin/deepin-anything/default.nix82
-rw-r--r--nixpkgs/pkgs/desktops/deepin/deepin-calculator/default.nix57
-rw-r--r--nixpkgs/pkgs/desktops/deepin/deepin-desktop-base/default.nix68
-rw-r--r--nixpkgs/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix79
-rw-r--r--nixpkgs/pkgs/desktops/deepin/deepin-editor/default.nix72
-rw-r--r--nixpkgs/pkgs/desktops/deepin/deepin-gettext-tools/default.nix55
-rw-r--r--nixpkgs/pkgs/desktops/deepin/deepin-gtk-theme/default.nix35
-rw-r--r--nixpkgs/pkgs/desktops/deepin/deepin-icon-theme/default.nix67
-rw-r--r--nixpkgs/pkgs/desktops/deepin/deepin-image-viewer/default.nix66
-rw-r--r--nixpkgs/pkgs/desktops/deepin/deepin-menu/default.nix54
-rw-r--r--nixpkgs/pkgs/desktops/deepin/deepin-movie-reborn/default.nix85
-rw-r--r--nixpkgs/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix45
-rw-r--r--nixpkgs/pkgs/desktops/deepin/deepin-sound-theme/default.nix30
-rw-r--r--nixpkgs/pkgs/desktops/deepin/deepin-terminal/default.nix117
-rw-r--r--nixpkgs/pkgs/desktops/deepin/deepin-turbo/default.nix50
-rw-r--r--nixpkgs/pkgs/desktops/deepin/deepin-wallpapers/default.nix52
-rw-r--r--nixpkgs/pkgs/desktops/deepin/default.nix62
-rw-r--r--nixpkgs/pkgs/desktops/deepin/disomaster/default.nix50
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix49
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dtkcore/default.nix63
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dtkwidget/default.nix65
-rw-r--r--nixpkgs/pkgs/desktops/deepin/dtkwm/default.nix58
-rw-r--r--nixpkgs/pkgs/desktops/deepin/go-dbus-factory/default.nix34
-rw-r--r--nixpkgs/pkgs/desktops/deepin/go-gir-generator/default.nix59
-rw-r--r--nixpkgs/pkgs/desktops/deepin/go-lib/default.nix46
-rw-r--r--nixpkgs/pkgs/desktops/deepin/qcef/default.nix127
-rw-r--r--nixpkgs/pkgs/desktops/deepin/qt5integration/default.nix65
-rw-r--r--nixpkgs/pkgs/desktops/deepin/qt5platform-plugins/default.nix63
-rwxr-xr-xnixpkgs/pkgs/desktops/deepin/setup-hook.sh64
-rw-r--r--nixpkgs/pkgs/desktops/deepin/startdde/default.nix161
-rw-r--r--nixpkgs/pkgs/desktops/deepin/startdde/deps.nix30
-rw-r--r--nixpkgs/pkgs/desktops/deepin/udisks2-qt5/default.nix50
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/default.nix15
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/econnman/default.nix (renamed from nixpkgs/pkgs/desktops/enlightenment/econnman.nix)0
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/efl/0002-efreet-more-stat-info-changes.patch623
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/efl/default.nix (renamed from nixpkgs/pkgs/desktops/enlightenment/efl.nix)15
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/efl/efl-elua.patch (renamed from nixpkgs/pkgs/desktops/enlightenment/efl-elua.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/enlightenment/0001-wrapped-setuid-executables.patch (renamed from nixpkgs/pkgs/desktops/enlightenment/0001-wrapped-setuid-executables.patch)0
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/enlightenment/0003-setuid-missing-path.patch25
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/enlightenment/default.nix (renamed from nixpkgs/pkgs/desktops/enlightenment/enlightenment.nix)5
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/ephoto/default.nix (renamed from nixpkgs/pkgs/desktops/enlightenment/ephoto.nix)0
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/evisum/default.nix29
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/rage/default.nix (renamed from nixpkgs/pkgs/desktops/enlightenment/rage.nix)0
-rw-r--r--nixpkgs/pkgs/desktops/enlightenment/terminology/default.nix (renamed from nixpkgs/pkgs/desktops/enlightenment/terminology.nix)13
-rw-r--r--nixpkgs/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/accerciser/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/evolution/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/file-roller/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gnome-music/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/baobab/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix66
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/epiphany/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/evince/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix186
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix56
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/nautilus/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/rygel/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/appindicator/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch17
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/battery-status/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/caffeine/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/emoji-selector/default.nix38
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch20
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/impatience/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/paperwm/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix16
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/paths_and_nonexisting_dirs.patch22
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/timepp/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/window-is-ready-remover/default.nix2
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/aisleriot/default.nix65
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/gnome-mines/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/iagno/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/quadrapassel/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/games/tali/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/lxde/core/lxpanel/default.nix19
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/lxqt/pcmanfm-qt/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/atril/default.nix37
-rw-r--r--nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/engrampa/default.nix12
-rw-r--r--nixpkgs/pkgs/desktops/mate/eom/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/libmateweather/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/marco/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-applets/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-backgrounds/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-calc/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-common/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-media/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-menus/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-panel/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/mate/pluma/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix13
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-camera/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-dock/default.nix15
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch35
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix13
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch22
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/sideload/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch700
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix13
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix14
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/apps/switchboard/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix11
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.allowed (renamed from nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.whitelist)0
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix54
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix19
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix19
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/granite/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/.envrc1
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/.formatter.exs4
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/.gitignore32
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/default.nix53
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/cli.ex71
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex42
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/nix.ex85
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/mix.exs28
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/shell.nix19
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/test/nix_test.exs49
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/test/test_helper.exs1
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/services/contractor/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix5
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix7
-rw-r--r--nixpkgs/pkgs/desktops/pantheon/update.nix6
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/3rdparty/addons/caffeine-plus.nix32
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/dynamic-workspaces.nix39
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/krohnkite.nix (renamed from nixpkgs/pkgs/desktops/plasma-5/kwin/scripts/krohnkite.nix)2
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/tiling.nix (renamed from nixpkgs/pkgs/desktops/plasma-5/kwin/scripts/tiling.nix)6
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/breeze-plymouth/default.nix11
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/breeze-plymouth/series1
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/fetch.sh2
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kde-cli-tools.nix16
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/0001-gsettings-schemas-path.patch21
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/default.nix8
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/patches/follow-symlinks.patch49
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/patches/gsettings.patch21
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/patches/series2
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kdeplasma-addons.nix13
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/khotkeys.nix5
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kinfocenter.nix9
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kscreen-417316.patch76
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kscreen.nix5
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/ksysguard.nix4
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix10
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/libkscreen/default.nix6
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/libkscreen/series1
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/patches/0001-Add-a-logging-category-config-file.patch210
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix11
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch2
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/series2
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-pa.nix13
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch39
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch13
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/default.nix9
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/powerdevil.nix17
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/srcs.nix386
-rw-r--r--nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix9
-rw-r--r--nixpkgs/pkgs/desktops/xfce/applications/xfce4-volumed/default.nix52
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/core/xfwm4/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/default.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix4
-rw-r--r--nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix4
-rw-r--r--nixpkgs/pkgs/development/androidndk-pkgs/default.nix30
-rw-r--r--nixpkgs/pkgs/development/arduino/arduino-cli/default.nix46
-rw-r--r--nixpkgs/pkgs/development/arduino/arduino-core/default.nix44
-rw-r--r--nixpkgs/pkgs/development/arduino/platformio/chrootenv.nix13
-rw-r--r--nixpkgs/pkgs/development/arduino/platformio/core.nix57
-rw-r--r--nixpkgs/pkgs/development/arduino/platformio/missing-udev-rules-nixos.patch12
-rw-r--r--nixpkgs/pkgs/development/arduino/platformio/use-local-spdx-license-list.patch13
-rw-r--r--nixpkgs/pkgs/development/beam-modules/default.nix13
-rw-r--r--nixpkgs/pkgs/development/chez-modules/chez-mit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/chez-modules/chez-scmutils/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/abcl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/sources.json318
-rw-r--r--nixpkgs/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/aspectj/default.nix11
-rw-r--r--nixpkgs/pkgs/development/compilers/bigloo/default.nix20
-rw-r--r--nixpkgs/pkgs/development/compilers/binaryen/0001-Get-rid-of-git-dependency.patch38
-rw-r--r--nixpkgs/pkgs/development/compilers/binaryen/default.nix41
-rw-r--r--nixpkgs/pkgs/development/compilers/bluespec/default.nix7
-rw-r--r--nixpkgs/pkgs/development/compilers/bs-platform/build-bs-platform.nix7
-rw-r--r--nixpkgs/pkgs/development/compilers/bs-platform/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/bs-platform/jscomp-release-ninja.patch16
-rw-r--r--nixpkgs/pkgs/development/compilers/ccl/default.nix32
-rw-r--r--nixpkgs/pkgs/development/compilers/chez/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/chez/setup-hook.sh5
-rw-r--r--nixpkgs/pkgs/development/compilers/closure/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/copper/default.nix32
-rw-r--r--nixpkgs/pkgs/development/compilers/cudatoolkit/common.nix30
-rw-r--r--nixpkgs/pkgs/development/compilers/cudatoolkit/default.nix11
-rw-r--r--nixpkgs/pkgs/development/compilers/dasm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/dmd/default.nix14
-rw-r--r--nixpkgs/pkgs/development/compilers/dotnet/build-dotnet.nix92
-rw-r--r--nixpkgs/pkgs/development/compilers/dotnet/buildDotnet.nix74
-rw-r--r--nixpkgs/pkgs/development/compilers/dotnet/combine-packages.nix (renamed from nixpkgs/pkgs/development/compilers/dotnet/combinePackages.nix)0
-rw-r--r--nixpkgs/pkgs/development/compilers/dotnet/default.nix63
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/default.nix79
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/packages/elm-format.nix16
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/packages/elm-json.nix29
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/packages/elm-json.patch48
-rwxr-xr-xnixpkgs/pkgs/development/compilers/elm/packages/generate-node-packages.sh2
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/packages/lib.nix43
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/packages/node-composition.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/packages/node-packages.json3
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/packages/node-packages.nix5690
-rw-r--r--nixpkgs/pkgs/development/compilers/elm/packages/patch-binwrap.nix30
-rw-r--r--nixpkgs/pkgs/development/compilers/fasm/bin.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/default.nix19
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/patches/beta/disable-auto-update.patch28
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/patches/beta/move-cache.patch23
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/patches/stable/disable-auto-update.patch18
-rw-r--r--nixpkgs/pkgs/development/compilers/flutter/patches/stable/move-cache.patch45
-rw-r--r--nixpkgs/pkgs/development/compilers/fpc/binary.nix20
-rw-r--r--nixpkgs/pkgs/development/compilers/fpc/default.nix19
-rw-r--r--nixpkgs/pkgs/development/compilers/fpc/libqt5pas.nix24
-rw-r--r--nixpkgs/pkgs/development/compilers/fpc/mark-paths.patch109
-rw-r--r--nixpkgs/pkgs/development/compilers/gambit/unstable.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/gerbil/gerbil-crypto.nix27
-rw-r--r--nixpkgs/pkgs/development/compilers/gerbil/gerbil-ethereum.nix28
-rw-r--r--nixpkgs/pkgs/development/compilers/gerbil/gerbil-persist.nix27
-rw-r--r--nixpkgs/pkgs/development/compilers/gerbil/gerbil-poo.nix27
-rw-r--r--nixpkgs/pkgs/development/compilers/gerbil/gerbil-support.nix19
-rw-r--r--nixpkgs/pkgs/development/compilers/gerbil/gerbil-utils.nix13
-rw-r--r--nixpkgs/pkgs/development/compilers/gerbil/unstable.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.10.1.nix29
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.10.2-binary.nix174
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.10.2.nix (renamed from nixpkgs/pkgs/development/compilers/ghc/8.4.4.nix)74
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.6.5-binary.nix18
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.6.5.nix11
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.8.2.nix24
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.8.3.nix27
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/8.8.4.nix257
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/head.nix38
-rw-r--r--nixpkgs/pkgs/development/compilers/ghc/issue-18549.patch296
-rw-r--r--nixpkgs/pkgs/development/compilers/ghcjs-ng/8.6/dep-overrides.nix7
-rw-r--r--nixpkgs/pkgs/development/compilers/ghcjs-ng/default.nix3
-rw-r--r--nixpkgs/pkgs/development/compilers/gleam/default.nix13
-rw-r--r--nixpkgs/pkgs/development/compilers/go-jsonnet/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/go/1.14.nix14
-rw-r--r--nixpkgs/pkgs/development/compilers/go/1.15.nix (renamed from nixpkgs/pkgs/development/compilers/go/1.13.nix)29
-rw-r--r--nixpkgs/pkgs/development/compilers/go/remove-test-pie-1.15.patch (renamed from nixpkgs/pkgs/development/compilers/go/remove-test-pie-1.13.patch)8
-rw-r--r--nixpkgs/pkgs/development/compilers/go/skip-cgo-tests-1.15.patch13
-rw-r--r--nixpkgs/pkgs/development/compilers/go/skip-external-network-tests-1.15.patch13
-rw-r--r--nixpkgs/pkgs/development/compilers/go/skip-test-extra-files-on-386.patch15
-rw-r--r--nixpkgs/pkgs/development/compilers/go/skip-test-extra-files-on-aarch32.patch15
-rw-r--r--nixpkgs/pkgs/development/compilers/go/ssl-cert-file-1.15.patch76
-rw-r--r--nixpkgs/pkgs/development/compilers/hop/default.nix20
-rw-r--r--nixpkgs/pkgs/development/compilers/idris2/default.nix45
-rw-r--r--nixpkgs/pkgs/development/compilers/inform6/default.nix28
-rw-r--r--nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/jasmin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/jetbrains-jdk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/kotlin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/lobster/default.nix66
-rw-r--r--nixpkgs/pkgs/development/compilers/lobster/test-can-run-hello-world.nix13
-rw-r--r--nixpkgs/pkgs/development/compilers/mcpp/default.nix10
-rw-r--r--nixpkgs/pkgs/development/compilers/mercury/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/mit-scheme/default.nix15
-rw-r--r--nixpkgs/pkgs/development/compilers/mlkit/default.nix24
-rw-r--r--nixpkgs/pkgs/development/compilers/mlton/default.nix17
-rw-r--r--nixpkgs/pkgs/development/compilers/mlton/from-git-source.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/mono/generic.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/mozart/default.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/mruby/default.nix10
-rw-r--r--nixpkgs/pkgs/development/compilers/nextpnr/default.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/nim/NIM_CONFIG_DIR.patch23
-rw-r--r--nixpkgs/pkgs/development/compilers/nim/default.nix288
-rw-r--r--nixpkgs/pkgs/development/compilers/nim/nixbuild.patch51
-rw-r--r--nixpkgs/pkgs/development/compilers/ocaml/4.11.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/ocaml/generic.nix8
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/11.nix12
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/12.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/13.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/8.nix36
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/openjdk/openjfx/14.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/oraclejdk/jdk11-linux.nix54
-rw-r--r--nixpkgs/pkgs/development/compilers/oraclejdk/jdk14-linux.nix54
-rw-r--r--nixpkgs/pkgs/development/compilers/oraclejdk/jdk8-linux.nix12
-rw-r--r--nixpkgs/pkgs/development/compilers/pforth/default.nix10
-rw-r--r--nixpkgs/pkgs/development/compilers/polyml/default.nix12
-rw-r--r--nixpkgs/pkgs/development/compilers/reason/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/rust/1_45.nix2
-rw-r--r--nixpkgs/pkgs/development/compilers/rust/rls/default.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/rust/rustfmt.nix1
-rw-r--r--nixpkgs/pkgs/development/compilers/sagittarius-scheme/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/scala/2.13.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/souffle/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/swift/default.nix7
-rw-r--r--nixpkgs/pkgs/development/compilers/swift/patches/swift-llvm.patch48
-rw-r--r--nixpkgs/pkgs/development/compilers/tinygo/default.nix7
-rw-r--r--nixpkgs/pkgs/development/compilers/vala/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/wla-dx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/compilers/yosys/default.nix6
-rw-r--r--nixpkgs/pkgs/development/compilers/zig/default.nix7
-rw-r--r--nixpkgs/pkgs/development/compilers/zig/llvm10_polly.patch10
-rw-r--r--nixpkgs/pkgs/development/compilers/zulu/8.nix10
-rw-r--r--nixpkgs/pkgs/development/compilers/zulu/default.nix10
-rw-r--r--nixpkgs/pkgs/development/coq-modules/Cheerios/default.nix2
-rw-r--r--nixpkgs/pkgs/development/coq-modules/InfSeqExt/default.nix2
-rw-r--r--nixpkgs/pkgs/development/coq-modules/QuickChick/default.nix34
-rw-r--r--nixpkgs/pkgs/development/coq-modules/Verdi/default.nix2
-rw-r--r--nixpkgs/pkgs/development/coq-modules/bignums/default.nix4
-rw-r--r--nixpkgs/pkgs/development/coq-modules/coq-bits/default.nix4
-rw-r--r--nixpkgs/pkgs/development/coq-modules/coq-elpi/default.nix9
-rw-r--r--nixpkgs/pkgs/development/coq-modules/coq-ext-lib/default.nix9
-rw-r--r--nixpkgs/pkgs/development/coq-modules/coq-extensible-records/default.nix58
-rw-r--r--nixpkgs/pkgs/development/coq-modules/coqhammer/default.nix12
-rw-r--r--nixpkgs/pkgs/development/coq-modules/coqprime/default.nix14
-rw-r--r--nixpkgs/pkgs/development/coq-modules/coquelicot/default.nix8
-rw-r--r--nixpkgs/pkgs/development/coq-modules/dpdgraph/default.nix4
-rw-r--r--nixpkgs/pkgs/development/coq-modules/equations/default.nix12
-rw-r--r--nixpkgs/pkgs/development/coq-modules/gappalib/default.nix8
-rw-r--r--nixpkgs/pkgs/development/coq-modules/hierarchy-builder/default.nix9
-rw-r--r--nixpkgs/pkgs/development/coq-modules/interval/default.nix41
-rw-r--r--nixpkgs/pkgs/development/coq-modules/iris/default.nix6
-rw-r--r--nixpkgs/pkgs/development/coq-modules/math-classes/default.nix6
-rw-r--r--nixpkgs/pkgs/development/coq-modules/mathcomp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/coq-modules/metalib/default.nix49
-rw-r--r--nixpkgs/pkgs/development/coq-modules/paco/default.nix1
-rw-r--r--nixpkgs/pkgs/development/coq-modules/paramcoq/default.nix3
-rw-r--r--nixpkgs/pkgs/development/coq-modules/simple-io/default.nix6
-rw-r--r--nixpkgs/pkgs/development/coq-modules/stdpp/default.nix6
-rw-r--r--nixpkgs/pkgs/development/coq-modules/tlc/default.nix32
-rw-r--r--nixpkgs/pkgs/development/dotnet-modules/python-language-server/default.nix6
-rw-r--r--nixpkgs/pkgs/development/dotnet-modules/python-language-server/deps.nix798
-rw-r--r--nixpkgs/pkgs/development/go-modules/generic/default.nix263
-rw-r--r--nixpkgs/pkgs/development/go-modules/generic/old.nix229
-rw-r--r--nixpkgs/pkgs/development/go-packages/generic/default.nix17
-rw-r--r--nixpkgs/pkgs/development/guile-modules/guile-sdl2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-common.nix710
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix58
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix1
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix21
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-ghc-head.nix2
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml1293
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix73
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/generic-builder.nix79
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix21054
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix17
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/patches/hasura-884-compat.patch26
-rw-r--r--nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix9
-rw-r--r--nixpkgs/pkgs/development/interpreters/acl2/0001-Fix-some-paths-for-Nix-build.patch190
-rw-r--r--nixpkgs/pkgs/development/interpreters/acl2/0002-Restrict-RDTSC-to-x86.patch29
-rw-r--r--nixpkgs/pkgs/development/interpreters/acl2/default.nix159
-rw-r--r--nixpkgs/pkgs/development/interpreters/acl2/libipasirglucose4/0001-Support-shared-library-build.patch46
-rw-r--r--nixpkgs/pkgs/development/interpreters/acl2/libipasirglucose4/default.nix36
-rw-r--r--nixpkgs/pkgs/development/interpreters/alda/default.nix27
-rw-r--r--nixpkgs/pkgs/development/interpreters/chibi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/clojure/TDEPS-150.patch23
-rw-r--r--nixpkgs/pkgs/development/interpreters/clojure/default.nix38
-rw-r--r--nixpkgs/pkgs/development/interpreters/eff/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/elixir/1.10.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/elixir/1.6.nix7
-rw-r--r--nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix8
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/R23.nix13
-rw-r--r--nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix14
-rw-r--r--nixpkgs/pkgs/development/interpreters/evcxr/default.nix10
-rw-r--r--nixpkgs/pkgs/development/interpreters/gauche/default.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/groovy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/guile/2.0.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/hy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/j/default.nix7
-rw-r--r--nixpkgs/pkgs/development/interpreters/janet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/joker/default.nix9
-rw-r--r--nixpkgs/pkgs/development/interpreters/jruby/default.nix17
-rw-r--r--nixpkgs/pkgs/development/interpreters/luajit/2.0.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/luajit/2.1.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/luajit/default.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/octave/default.nix5
-rw-r--r--nixpkgs/pkgs/development/interpreters/perl/default.nix42
-rw-r--r--nixpkgs/pkgs/development/interpreters/perl/setup-hook-cross.sh2
-rw-r--r--nixpkgs/pkgs/development/interpreters/php/default.nix33
-rw-r--r--nixpkgs/pkgs/development/interpreters/php/php72-darwin-isfinite.patch62
-rw-r--r--nixpkgs/pkgs/development/interpreters/php/zlib-darwin-tests.patch44
-rw-r--r--nixpkgs/pkgs/development/interpreters/picolisp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/2.7/CVE-2019-20907.patch24
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix3
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/3.8/0001-On-all-posix-systems-not-just-Darwin-set-LDSHARED-if.patch33
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/cpython/default.nix19
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/default.nix49
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/default.nix11
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/pip-install-hook.sh4
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/python-recompile-bytecode-hook.sh24
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/hooks/python-remove-bin-bytecode-hook.sh8
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix153
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/pypy/default.nix11
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/pypy/prebuilt.nix19
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/tests.nix145
-rw-r--r--nixpkgs/pkgs/development/interpreters/python/tests/test_environments/test_python.py (renamed from nixpkgs/pkgs/development/interpreters/python/tests/test_python.py)0
-rw-r--r--nixpkgs/pkgs/development/interpreters/racket/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/racket/minimal.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/rakudo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix6
-rw-r--r--nixpkgs/pkgs/development/interpreters/rakudo/zef.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/red/default.nix8
-rw-r--r--nixpkgs/pkgs/development/interpreters/ruby/default.nix2
-rw-r--r--nixpkgs/pkgs/development/interpreters/shen-sbcl/default.nix32
-rw-r--r--nixpkgs/pkgs/development/interpreters/shen-sources/default.nix28
-rw-r--r--nixpkgs/pkgs/development/interpreters/spidermonkey/68.nix4
-rw-r--r--nixpkgs/pkgs/development/interpreters/wasmer/default.nix1
-rw-r--r--nixpkgs/pkgs/development/interpreters/wasmtime/default.nix6
-rw-r--r--nixpkgs/pkgs/development/java-modules/jogl/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/CGAL/cgal_path.patch15
-rw-r--r--nixpkgs/pkgs/development/libraries/CGAL/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/LASzip/LASzip2.nix21
-rw-r--r--nixpkgs/pkgs/development/libraries/LASzip/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/SDL2/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/adns/default.nix38
-rw-r--r--nixpkgs/pkgs/development/libraries/afflib/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/agda/agda-categories/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/agda/agda-prelude/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/agda/generic/default.nix31
-rw-r--r--nixpkgs/pkgs/development/libraries/alembic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/allegro/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/allegro/encoding.patch10
-rw-r--r--nixpkgs/pkgs/development/libraries/amdvlk/default.nix99
-rw-r--r--nixpkgs/pkgs/development/libraries/aml/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/apache-activemq/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/appindicator-sharp/default.nix43
-rw-r--r--nixpkgs/pkgs/development/libraries/appstream/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/appstream/qt.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/argp-standalone/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/armadillo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/arrow-cpp/default.nix60
-rw-r--r--nixpkgs/pkgs/development/libraries/arrow-cpp/jemalloc-disable-shared.patch11
-rw-r--r--nixpkgs/pkgs/development/libraries/asio/1.12.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/asio/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/asio/generic.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/aspell/dictionaries.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/assimp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/attr/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/attr/syscall.patch120
-rw-r--r--nixpkgs/pkgs/development/libraries/audiality2/default.nix39
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/libmysofa/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/lv2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/audio/mbelib/default.nix31
-rw-r--r--nixpkgs/pkgs/development/libraries/avahi/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/ayatana-ido/default.nix29
-rw-r--r--nixpkgs/pkgs/development/libraries/babl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/bctoolbox/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/bzrtp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/c-blosc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/caf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/cairo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/capnproto/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/catch2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/cddlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/cgui/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/check/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/chromaprint/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/cimg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/cm256cc/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/coin3d/default.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/console-bridge/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/cpp-hocon/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/cpp-utilities/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/crc32c/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/crcpp/default.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/curlcpp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/cutelyst/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/dav1d/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/dbus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/dbxml/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/dclib/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/dlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/docopt_cpp/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/doctest/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/dqlite/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/draco/default.nix34
-rw-r--r--nixpkgs/pkgs/development/libraries/duckdb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/dxflib/default.nix37
-rw-r--r--nixpkgs/pkgs/development/libraries/embree/default.nix37
-rw-r--r--nixpkgs/pkgs/development/libraries/enchant/2.x.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/ethash/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/exiv2/default.nix56
-rw-r--r--nixpkgs/pkgs/development/libraries/faac/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/faad2/default.nix39
-rw-r--r--nixpkgs/pkgs/development/libraries/farstream/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/faudio/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/fcft/default.nix29
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg-full/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg-full/prefer-libdav1d-over-libaom.patch19
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/2.8.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/3.4.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/4.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/flatbuffers/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/flatpak/default.nix54
-rw-r--r--nixpkgs/pkgs/development/libraries/flatpak/fix-test-paths.patch31
-rw-r--r--nixpkgs/pkgs/development/libraries/fontconfig/2.10.nix47
-rw-r--r--nixpkgs/pkgs/development/libraries/fontconfig/config-compat.patch28
-rw-r--r--nixpkgs/pkgs/development/libraries/fontconfig/default.nix104
-rw-r--r--nixpkgs/pkgs/development/libraries/fontconfig/fix-joypixels.patch23
-rw-r--r--nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-cache.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-conf.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl13
-rw-r--r--nixpkgs/pkgs/development/libraries/freeimage/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/gbenchmark/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gdal/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/gdcm/default.nix29
-rw-r--r--nixpkgs/pkgs/development/libraries/gdk-pixbuf/xlib.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/gdl/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gegl/4.0.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gensio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/geos/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/gettext/default.nix19
-rw-r--r--nixpkgs/pkgs/development/libraries/gettext/gettext.git-2336451ed68d91ff4b5ae1acbc1eca30e47a86a9.patch82
-rw-r--r--nixpkgs/pkgs/development/libraries/gfbgraph/default.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/gjs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gl2ps/default.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/glib/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/glibc/2.27-CVE-2019-19126.patch18
-rw-r--r--nixpkgs/pkgs/development/libraries/glibc/2.31-cve-2020-10029.patch79
-rw-r--r--nixpkgs/pkgs/development/libraries/glibc/common.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/glibmm/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/gloox/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gnu-config/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/goffice/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gperftools/default.nix25
-rw-r--r--nixpkgs/pkgs/development/libraries/gpgme/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/grantlee/5/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/grantlee/5/series2
-rw-r--r--nixpkgs/pkgs/development/libraries/graphene/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/grpc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gssdp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-bad/default.nix36
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix60
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch38
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix52
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/linux-headers-3.9.patch27
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/v4l.patch11
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-ugly/default.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-python/default.nix37
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-python/disable-testFake.patch56
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/darwin.patch14
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix89
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/setup-hook.sh8
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamermm/default.nix31
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/fix_pkgconfig_includedir.patch15
-rw-r--r--nixpkgs/pkgs/development/libraries/gthree/default.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk-layer-shell/default.nix26
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk-sharp/3.0.nix32
-rw-r--r--nixpkgs/pkgs/development/libraries/gtk/3.x.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/gtksourceview/4.x.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/harfbuzz/default.nix56
-rw-r--r--nixpkgs/pkgs/development/libraries/herqq/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/hiredis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/hivex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/hpx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix29
-rw-r--r--nixpkgs/pkgs/development/libraries/igraph/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/ilmbase/cross.patch35
-rw-r--r--nixpkgs/pkgs/development/libraries/ilmbase/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/imlib2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/impy/default.nix44
-rw-r--r--nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/intel-media-driver/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/intel-media-sdk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/itk/4.x.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/itk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/jabcode/default.nix46
-rw-r--r--nixpkgs/pkgs/development/libraries/jasper/default.nix51
-rw-r--r--nixpkgs/pkgs/development/libraries/java/commons/lang/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/java/dbus-java/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/java/hsqldb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/java/jzmq/default.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/java/lombok/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/jbig2dec/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/json-c/default.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/jsoncpp/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/jxrlib/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/series1
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kauth/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kauth/series1
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/0001-kcmutils-follow-symlinks.patch (renamed from nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/kcmutils-follow-symlinks.patch)16
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/kcmutils-debug-module-loader.patch13
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/series2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kdav.nix (renamed from nixpkgs/pkgs/applications/kde/kdav.nix)3
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kdelibs4support/series1
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kdesu/default.nix (renamed from nixpkgs/pkgs/development/libraries/kde-frameworks/kdesu.nix)1
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kdesu/kdesu-search-for-wrapped-daemon-first.patch38
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/series1
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kiconthemes/series1
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/series3
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kio/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch36
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kio/series2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/knewstuff.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kpackage/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kpackage/series2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kquickcharts.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/krunner.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kservice/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kservice/series2
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kwayland.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/kwindowsystem/series1
-rw-r--r--nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix664
-rw-r--r--nixpkgs/pkgs/development/libraries/kdsoap/default.nix39
-rw-r--r--nixpkgs/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/kmsxx/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/kpmcore/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/lcms2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/ldb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/leatherman/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/leptonica/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libLAS/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libaacs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libappindicator/default.nix28
-rw-r--r--nixpkgs/pkgs/development/libraries/libayatana-appindicator/default.nix49
-rw-r--r--nixpkgs/pkgs/development/libraries/libayatana-indicator/default.nix36
-rw-r--r--nixpkgs/pkgs/development/libraries/libbacktrace/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/libbap/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libblockdev/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libblocksruntime/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libbytesize/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libcint/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libcrafter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libcryptui/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/libcryptui/fix-gnupg-2.2.patch26
-rw-r--r--nixpkgs/pkgs/development/libraries/libde265/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libdigidoc/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libdrm/cross-build-nm-path.patch23
-rw-r--r--nixpkgs/pkgs/development/libraries/libdrm/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/libe57format/default.nix55
-rw-r--r--nixpkgs/pkgs/development/libraries/libebml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libevdev/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/libevent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libfilezilla/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/libgaminggear/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libgcrypt/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libgdiplus/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libglvnd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libgpg-error/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/libgpiod/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libguestfs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libgumath/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libgweather/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libhdhomerun/default.nix25
-rw-r--r--nixpkgs/pkgs/development/libraries/libheif/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libidn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libiio/default.nix66
-rw-r--r--nixpkgs/pkgs/development/libraries/libiio/hardcode-library-path.patch38
-rw-r--r--nixpkgs/pkgs/development/libraries/libinput/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libinsane/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libipt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/libkml/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/libksba/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/liblinear/default.nix42
-rw-r--r--nixpkgs/pkgs/development/libraries/liblouis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libmatroska/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libmaxminddb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libmbim/default.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/libmediainfo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libmicrohttpd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libmodulemd/1.nix21
-rw-r--r--nixpkgs/pkgs/development/libraries/libmodulemd/dont-check-docs.patch29
-rw-r--r--nixpkgs/pkgs/development/libraries/libmpc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libmysqlconnectorcpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libndctl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libndtypes/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libnftnl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libngspice/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libnsl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/liboping/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libosmium/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libpcap/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libpfm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libpipeline/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libplacebo/default.nix38
-rw-r--r--nixpkgs/pkgs/development/libraries/libpqxx/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/libpwquality/default.nix19
-rw-r--r--nixpkgs/pkgs/development/libraries/libqalculate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libqmi/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/libqtav/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/libraw/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/librealsense/default.nix34
-rw-r--r--nixpkgs/pkgs/development/libraries/librealsense/py_sitepackage_dir.patch15
-rw-r--r--nixpkgs/pkgs/development/libraries/libredwg/default.nix43
-rw-r--r--nixpkgs/pkgs/development/libraries/libressl/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/librseq/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/librsvg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libseccomp/default.nix20
-rw-r--r--nixpkgs/pkgs/development/libraries/libsidplayfp/default.nix35
-rw-r--r--nixpkgs/pkgs/development/libraries/libsignon-glib/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libslirp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libsvm/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/libthreadar/default.nix35
-rw-r--r--nixpkgs/pkgs/development/libraries/libtomcrypt/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/libtsm/darwin.patch37
-rw-r--r--nixpkgs/pkgs/development/libraries/libtsm/default.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/libu2f-host/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/libu2f-server/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/libunibreak/default.nix20
-rw-r--r--nixpkgs/pkgs/development/libraries/liburing/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libusb-compat/fix-headers.patch (renamed from nixpkgs/pkgs/development/libraries/libusb/fix-headers.patch)0
-rw-r--r--nixpkgs/pkgs/development/libraries/libusb1/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libuv/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libva/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/libva/utils.nix (renamed from nixpkgs/pkgs/development/libraries/libva-utils/default.nix)2
-rw-r--r--nixpkgs/pkgs/development/libraries/libversion/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/libvirt/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libvmaf/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/libvncserver/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/libwacom/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libwebsockets/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/libwhereami/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/libxls/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libxml2/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/libxmlb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/libxnd/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/libxsmm/default.nix33
-rw-r--r--nixpkgs/pkgs/development/libraries/libyaml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/lime/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/lyra/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/mailcore2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/malcontent/better-separation.patch45
-rw-r--r--nixpkgs/pkgs/development/libraries/malcontent/default.nix29
-rw-r--r--nixpkgs/pkgs/development/libraries/malcontent/ui.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/marisa/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/medfile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/mesa/default.nix31
-rw-r--r--nixpkgs/pkgs/development/libraries/mesa/link-radv-with-ld_args_build_id.patch25
-rw-r--r--nixpkgs/pkgs/development/libraries/mimalloc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/mimetic/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/mimetic/narrowing.patch32
-rw-r--r--nixpkgs/pkgs/development/libraries/mlt/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/mlt/qt-5.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/mp4v2/default.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/mpfr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/mtxclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/muparserx/default.nix42
-rw-r--r--nixpkgs/pkgs/development/libraries/nanomsg/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/nanopb/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/ndi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/neatvnc/default.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/neatvnc/disable-cpu-acceleration.patch17
-rw-r--r--nixpkgs/pkgs/development/libraries/netcdf/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/nghttp2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/notify-sharp/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/ntirpc/default.nix38
-rw-r--r--nixpkgs/pkgs/development/libraries/nuspell/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/nv-codec-headers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/olm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/oneDNN/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/onnxruntime/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/opencascade-occt/7.3.nix28
-rw-r--r--nixpkgs/pkgs/development/libraries/opencascade-occt/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/opencascade/default.nix25
-rw-r--r--nixpkgs/pkgs/development/libraries/opencl-clhpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/opencl-headers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/opencv/3.x.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/opencv/4.x.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/opencv/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/opendht/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/opendmarc/default.nix40
-rw-r--r--nixpkgs/pkgs/development/libraries/openexr/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/openfst/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/opengrm-ngram/default.nix25
-rw-r--r--nixpkgs/pkgs/development/libraries/openimagedenoise/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/openldap/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/openmpi/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/openscenegraph/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/openxr-loader/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/orcania/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/orocos-kdl/default.nix26
-rw-r--r--nixpkgs/pkgs/development/libraries/p11-kit/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/packr/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/pango/default.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/pc-ble-driver/default.nix36
-rw-r--r--nixpkgs/pkgs/development/libraries/pcl/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/pcre2/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/pdal/default.nix98
-rw-r--r--nixpkgs/pkgs/development/libraries/pdf2xml/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/phonetisaurus/default.nix32
-rw-r--r--nixpkgs/pkgs/development/libraries/phonon/backends/vlc.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/hepmc2/default.nix17
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/hepmc2/in_source.patch25
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/hepmc3/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/lhapdf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/rivet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/physics/yoda/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/pipewire/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/pkger/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/plasma-wayland-protocols/default.nix25
-rw-r--r--nixpkgs/pkgs/development/libraries/pmix/default.nix48
-rw-r--r--nixpkgs/pkgs/development/libraries/poppler/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/prometheus-client-c/default.nix71
-rw-r--r--nixpkgs/pkgs/development/libraries/protobuf/3.12.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/protobuf/3.13.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/protolock/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qca-qt5/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qgnomeplatform/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/qoauth/default.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/qpdf/default.nix18
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix9
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix35
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-fix-failed-static-assertion.patch31
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch44
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix182
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/fetch.sh1
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch411
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0002-qtbase-mac.patch116
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0003-qtbase-mkspecs.patch464
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0004-qtbase-replace-libdir.patch68
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0005-qtbase-cmake.patch194
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0006-qtbase-gtk3.patch48
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0007-qtbase-xcursor.patch29
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0008-qtbase-tzdir.patch64
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0009-qtbase-qtpluginpath.patch19
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0010-qtbase-assert.patch32
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0011-fix-header_module.patch25
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtdeclarative.patch33
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtscript.patch13
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtserialport.patch22
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qttools.patch15
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebengine-darwin-no-platform-check.patch33
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-qos-classes.patch11
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-readline.patch45
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit.patch12
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.14/srcs.nix342
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix176
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/fetch.sh1
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch411
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0002-qtbase-mac.patch118
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0003-qtbase-mkspecs.patch464
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0004-qtbase-replace-libdir.patch68
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0005-qtbase-cmake.patch194
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0006-qtbase-gtk3.patch48
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0007-qtbase-xcursor.patch29
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0008-qtbase-tzdir.patch64
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0009-qtbase-qtpluginpath.patch33
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0010-qtbase-assert.patch32
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0011-fix-header_module.patch25
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtdeclarative.patch114
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtscript.patch13
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtserialport.patch22
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qttools.patch15
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebengine-darwin-no-platform-check.patch33
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebkit-darwin-no-qos-classes.patch11
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebkit-darwin-no-readline.patch45
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebkit.patch12
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/5.15/srcs.nix342
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix15
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtimageformats.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialbus.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qttools.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix67
-rw-r--r--nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/qtstyleplugins/fix-build-against-Qt-5.15.patch44
-rw-r--r--nixpkgs/pkgs/development/libraries/quazip/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qwt/6.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/qwt/6_qt4.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/raft-canonical/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/randomx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/rang/default.nix19
-rw-r--r--nixpkgs/pkgs/development/libraries/range-v3/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/rdkafka/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/readosm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/redkite/default.nix25
-rw-r--r--nixpkgs/pkgs/development/libraries/relibc/default.nix79
-rw-r--r--nixpkgs/pkgs/development/libraries/rlottie/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/rnnoise-plugin/default.nix25
-rw-r--r--nixpkgs/pkgs/development/libraries/robin-map/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/rocclr/default.nix64
-rw-r--r--nixpkgs/pkgs/development/libraries/rocksdb/default.nix33
-rw-r--r--nixpkgs/pkgs/development/libraries/rocm-comgr/default.nix46
-rw-r--r--nixpkgs/pkgs/development/libraries/rocm-device-libs/default.nix40
-rw-r--r--nixpkgs/pkgs/development/libraries/rocm-opencl-icd/default.nix20
-rw-r--r--nixpkgs/pkgs/development/libraries/rocm-opencl-runtime/default.nix83
-rw-r--r--nixpkgs/pkgs/development/libraries/rocm-runtime/default.nix48
-rw-r--r--nixpkgs/pkgs/development/libraries/rocm-thunk/default.nix37
-rw-r--r--nixpkgs/pkgs/development/libraries/science/biology/nifticlib/default.nix26
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/amd-blis/default.nix67
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/amd-libflame/add-lapacke.diff34
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/amd-libflame/default.nix72
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/arpack/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/blis/default.nix64
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/cliquer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/cudnn/default.nix11
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/cudnn/generic.nix10
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/itpp/default.nix55
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/libtorch/bin.nix111
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/libtorch/test/CMakeLists.txt4
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/libtorch/test/default.nix26
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/libtorch/test/test.cpp7
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/magma/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/mkl/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/nccl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/openblas/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/openlibm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/or-tools/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/osqp/default.nix27
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/petsc/default.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/science/math/suitesparse/default.nix23
-rw-r--r--nixpkgs/pkgs/development/libraries/seasocks/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/serd/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/serf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/serialdv/default.nix1
-rw-r--r--nixpkgs/pkgs/development/libraries/simgear/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/snap7/default.nix38
-rw-r--r--nixpkgs/pkgs/development/libraries/soil/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/sope/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/soqt/default.nix27
-rw-r--r--nixpkgs/pkgs/development/libraries/sord/default.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/sparsehash/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/spdk/default.nix44
-rw-r--r--nixpkgs/pkgs/development/libraries/spdlog/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/speechd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/sqlite/analyzer.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/sqlite/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/sqlite/tools.nix43
-rw-r--r--nixpkgs/pkgs/development/libraries/strigi/default.nix43
-rw-r--r--nixpkgs/pkgs/development/libraries/strigi/export_bufferedstream.patch12
-rw-r--r--nixpkgs/pkgs/development/libraries/strigi/gcc6.patch45
-rw-r--r--nixpkgs/pkgs/development/libraries/sundials/2.x.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/sundials/default.nix29
-rw-r--r--nixpkgs/pkgs/development/libraries/swiften/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/swiftshader/default.nix63
-rw-r--r--nixpkgs/pkgs/development/libraries/tbb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/telepathy/qt/default.nix16
-rw-r--r--nixpkgs/pkgs/development/libraries/tiledb/default.nix19
-rw-r--r--nixpkgs/pkgs/development/libraries/timezonemap/default.nix65
-rw-r--r--nixpkgs/pkgs/development/libraries/tinycbor/default.nix22
-rw-r--r--nixpkgs/pkgs/development/libraries/tk/generic.nix2
-rw-r--r--nixpkgs/pkgs/development/libraries/tllist/default.nix24
-rw-r--r--nixpkgs/pkgs/development/libraries/tremor/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/tweeny/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/uci/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/ucx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/unicorn-emu/default.nix20
-rw-r--r--nixpkgs/pkgs/development/libraries/urdfdom-headers/default.nix31
-rw-r--r--nixpkgs/pkgs/development/libraries/urdfdom/default.nix39
-rw-r--r--nixpkgs/pkgs/development/libraries/utf8cpp/default.nix32
-rw-r--r--nixpkgs/pkgs/development/libraries/utf8proc/default.nix14
-rw-r--r--nixpkgs/pkgs/development/libraries/vaapi-intel/default.nix34
-rw-r--r--nixpkgs/pkgs/development/libraries/vid-stab/default.nix27
-rw-r--r--nixpkgs/pkgs/development/libraries/vmmlib/default.nix13
-rw-r--r--nixpkgs/pkgs/development/libraries/vtk/9.x.nix95
-rw-r--r--nixpkgs/pkgs/development/libraries/vulkan-loader/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/wasilibc/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/waylandpp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/wcslib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/webkit2-sharp/default.nix49
-rw-r--r--nixpkgs/pkgs/development/libraries/webkitgtk/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/wiiuse/default.nix33
-rw-r--r--nixpkgs/pkgs/development/libraries/wlroots/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/wolfssl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/wxsqlite3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/wxwidgets/2.8/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/wxwidgets/2.9/default.nix7
-rw-r--r--nixpkgs/pkgs/development/libraries/wxwidgets/3.0/default.nix8
-rw-r--r--nixpkgs/pkgs/development/libraries/wxwidgets/3.1/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/x265/default.nix68
-rw-r--r--nixpkgs/pkgs/development/libraries/xapian/default.nix3
-rw-r--r--nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix5
-rw-r--r--nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix12
-rw-r--r--nixpkgs/pkgs/development/libraries/xmlsec/default.nix35
-rw-r--r--nixpkgs/pkgs/development/libraries/xmlsec/lt_dladdsearchdir.patch16
-rw-r--r--nixpkgs/pkgs/development/libraries/xxHash/default.nix6
-rw-r--r--nixpkgs/pkgs/development/libraries/yder/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/zeromq/3.x.nix22
-rw-r--r--nixpkgs/pkgs/development/libraries/zimg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/libraries/zlog/default.nix30
-rw-r--r--nixpkgs/pkgs/development/libraries/zziplib/default.nix16
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/asdf/3.1.nix2
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/asdf/default.nix2
-rw-r--r--nixpkgs/pkgs/development/lisp-modules/iterate.darcs-context116
-rw-r--r--nixpkgs/pkgs/development/lua-modules/generated-packages.nix116
-rw-r--r--nixpkgs/pkgs/development/lua-modules/luaexpat.patch36
-rw-r--r--nixpkgs/pkgs/development/lua-modules/overrides.nix25
-rw-r--r--nixpkgs/pkgs/development/misc/h3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/misc/haskell/hasura/ci-info/default.nix (renamed from nixpkgs/pkgs/servers/hasura/ci-info.nix)0
-rw-r--r--nixpkgs/pkgs/development/misc/haskell/hasura/graphql-engine/default.nix (renamed from nixpkgs/pkgs/servers/hasura/graphql-engine.nix)10
-rw-r--r--nixpkgs/pkgs/development/misc/haskell/hasura/graphql-parser/default.nix (renamed from nixpkgs/pkgs/servers/hasura/graphql-parser.nix)7
-rw-r--r--nixpkgs/pkgs/development/misc/haskell/hasura/pg-client/default.nix (renamed from nixpkgs/pkgs/servers/hasura/pg-client.nix)0
-rw-r--r--nixpkgs/pkgs/development/misc/msp430/mspdebug.nix51
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/build-tools.nix2
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/compose-android-packages.nix6
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/convertaddons.xsl12
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/convertpackages.xsl4
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/convertsystemimages.xsl2
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/default.nix6
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/deploy-androidpackage.nix3
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/emulate-app.nix4
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/generated/addons.nix128
-rw-r--r--nixpkgs/pkgs/development/mobile/androidenv/ndk-bundle/default.nix14
-rw-r--r--nixpkgs/pkgs/development/mobile/cocoapods/Gemfile-beta.lock45
-rw-r--r--nixpkgs/pkgs/development/mobile/cocoapods/gemset-beta.nix81
-rw-r--r--nixpkgs/pkgs/development/node-packages/default.nix87
-rw-r--r--nixpkgs/pkgs/development/node-packages/node-packages.json19
-rw-r--r--nixpkgs/pkgs/development/node-packages/node-packages.nix29110
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/angstrom/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/apron/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/bap/default.nix8
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/bap/dont-add-curses.patch32
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/base64/2.0.nix25
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/batteries/default.nix18
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/bigarray-overlap/default.nix28
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/camlpdf/default.nix12
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/cohttp/async.nix22
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/cohttp/default.nix22
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/conduit/async.nix19
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/conduit/default.nix24
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/conduit/lwt-unix.nix20
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/conduit/lwt.nix14
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/containers/data.nix18
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/containers/default.nix14
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/cpdf/default.nix8
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/csexp/default.nix24
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/curly/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/dns/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/dune-action-plugin/default.nix19
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/dune-build-info/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/dune-configurator/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/dune-glob/default.nix19
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/dune-private-libs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/eliom/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/elpi/default.nix12
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/encore/default.nix18
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/fdkaac/default.nix27
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/fpath/default.nix10
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/genspio/default.nix32
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/git-http/default.nix10
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/git-unix/default.nix14
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/git/default.nix27
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/gmetadom/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/gmetadom/gcc-4.3.patch (renamed from nixpkgs/pkgs/development/ocaml-modules/gmetadom/gcc-4.3.dpatch)0
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/graphql/cohttp.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/graphql_ppx/default.nix12
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/hacl_x25519/default.nix9
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/hidapi/default.nix27
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/index/default.nix8
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/inotify/default.nix18
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ipaddr/cstruct.nix17
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ipaddr/default.nix16
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ipaddr/sexp.nix18
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/1.4.nix26
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/default.nix23
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/fs.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/git.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/graphql.nix5
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/http.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/mem.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/pack.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/ppx.nix23
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/test.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/irmin/unix.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/janestreet/0.13.nix13
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/janestreet/default.nix1
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/janestreet/email-message-angstrom-0.14.patch22
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/jwto/default.nix30
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/lablgtk3/default.nix7
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/labltk/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/lambdasoup/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/lua-ml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/lwt/default.nix (renamed from nixpkgs/pkgs/development/ocaml-modules/lwt/4.x.nix)4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/lwt/legacy.nix58
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/lwt/ppx.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/lwt_ssl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/macaddr/cstruct.nix17
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/macaddr/default.nix11
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/macaddr/sexp.nix18
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/markup/default.nix20
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mdx/default.nix11
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/merlin-extend/default.nix14
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/default.nix8
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix18
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/rng.nix7
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mirage-stack/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mirage/runtime.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/mustache/default.nix25
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/nonstd/default.nix24
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/default.nix10
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocamlgraph/default.nix28
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocamlgraph/destdir.patch13
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocamlnet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocplib-json-typed/browser.nix1
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ocsigen-server/default.nix14
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/odoc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/opam-core/default.nix20
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/opam-format/default.nix21
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/opam-repository/default.nix24
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/opam-repository/download-tool.patch29
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/opam-state/default.nix19
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/opium/default.nix2
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ounit2/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/piqi-ocaml/default.nix20
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/piqi/default.nix17
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/posix/base.nix26
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/posix/socket.nix16
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/posix/types.nix15
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ppx_deriving/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ppx_tools/default.nix20
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix24
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/prof_spacetime/default.nix43
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ptmap/default.nix46
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/ptset/default.nix26
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/qcheck/alcotest.nix13
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/qcheck/core.nix23
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/qcheck/default.nix31
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/qcheck/ounit.nix14
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/qtest/default.nix34
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/re/default.nix10
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/sosa/default.nix30
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/spacetime_lib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/srt/default.nix30
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/tls/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/torch/default.nix15
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/tsort/default.nix21
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/tuntap/default.nix28
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/uucd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/uunf/default.nix42
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/webbrowser/default.nix26
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/webmachine/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/xtmpl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/zarith/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ocaml-modules/zed/default.nix4
-rw-r--r--nixpkgs/pkgs/development/perl-modules/Percona-Toolkit/default.nix30
-rw-r--r--nixpkgs/pkgs/development/perl-modules/WWW-Curl-4.17-Skip-preprocessor-symbol-only-CURL_STRICTER.patch34
-rw-r--r--nixpkgs/pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/perl-modules/crypt-openpgp-remove-impure-keygen-tests.patch30
-rw-r--r--nixpkgs/pkgs/development/perl-modules/generic/default.nix2
-rw-r--r--nixpkgs/pkgs/development/perl-modules/perl-POE-1.367-pod_linkcheck.patch40
-rw-r--r--nixpkgs/pkgs/development/perl-modules/perl-POE-1.367-pod_no404s.patch46
-rw-r--r--nixpkgs/pkgs/development/perl-modules/strip-nondeterminism/default.nix9
-rw-r--r--nixpkgs/pkgs/development/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch40
-rw-r--r--nixpkgs/pkgs/development/python-modules/3to2/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/Cython/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/Fabric/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/GitPython/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/HAP-python/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/HTSeq/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/JPype1/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/JayDeBeApi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/Nikola/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/PyRMVtransport/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/Pygments/2_5.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/Pygments/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/Theano/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/WSME/default.nix71
-rw-r--r--nixpkgs/pkgs/development/python-modules/Wand/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/XlsxWriter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aadict/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/accupy/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/acebinf/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/adal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aenum/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/afdko/default.nix56
-rw-r--r--nixpkgs/pkgs/development/python-modules/agate-dbf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/agate-sql/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioconsole/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioftp/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioharmony/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiohttp-jinja2/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiohttp/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiohue/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiojobs/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/aioresponses/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiorun/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/aiounifi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/alembic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/alerta-server/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/alerta/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/alot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/amply/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/amqp/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansible/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ansiconv/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/anytree/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/apache-airflow/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/apispec/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/apprise/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/apsw/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aresponses/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/argcomplete/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aria2p/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/arrow/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/asdf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ase/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asgi-csrf/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/asgiref/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asn1crypto/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/astor/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/astral/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/astroid/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/astroquery/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/asyncpg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asyncssh/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/asynctest/default.nix3
-rwxr-xr-xnixpkgs/pkgs/development/python-modules/atlassian-python-api/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/atom/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/atomicwrites/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/atpublic/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/audio-metadata/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/audiotools/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/auth0-python/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/authheaders/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/autobahn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/automat/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/autopep8/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/av/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/avro-python3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/avro/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/awkward/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/awkward1/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aws-lambda-builders/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/aws-sam-translator/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/aws-xray-sdk/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-core/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-datalake-store/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-identity/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-keyvault-certificates/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-keyvault-keys/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-keyvault-secrets/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-authorization/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-cdn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-media/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-monitor/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-network/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-reservations/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-resource/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-security/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-sql/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-subscription/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-synapse/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-mgmt-web/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-multiapi-storage/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-storage-file-share/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/azure-synapse-spark/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/b2sdk/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/backcall/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/backoff/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/base58/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/bash_kernel/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/batchgenerators/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/batchspawner/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/batinfo/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/bayesian-optimization/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/bcrypt/3_1.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/bcrypt/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/beancount/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/beancount_docverif/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/beautifulsoup4/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/behave/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/bellows/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/bespon/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/bidict/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/bids-validator/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/binwalk/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/biopython/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/bip_utils/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/biplist/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/bitarray/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bitcoinlib/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/bitstruct/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/black-macchiato/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/blaze/default.nix71
-rw-r--r--nixpkgs/pkgs/development/python-modules/bleak/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/blis/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/blivet/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/block-io/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bokeh/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/boltons/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/boltztrap2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/boolean-py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/booleanoperations/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/boto3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/botocore/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/braintree/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bravia-tv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/breathe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/broadlink/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/brother/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/brotlipy/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/browser-cookie3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bsdiff4/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/btchip/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/btrees/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/btrfs/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/bugsnag/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/build/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildbot/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/buildbot/worker.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/bumps/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/bwapy/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/bytecode/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/cachelib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cachetools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/caldav/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/caldavclientlibrary-asynk/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/canmatrix/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/canonicaljson/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/canopen/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/capturer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cartopy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cassandra-driver/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/catalogue/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/cbor/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/cbor2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/celery/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/certbot-dns-cloudflare/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/certbot-dns-rfc2136/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/certbot-dns-route53/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/certbot/default.nix (renamed from nixpkgs/pkgs/tools/admin/certbot/default.nix)48
-rw-r--r--nixpkgs/pkgs/development/python-modules/certifi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/certipy/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/cffi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cfgv/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix57
-rw-r--r--nixpkgs/pkgs/development/python-modules/cftime/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/cgen/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/chalice/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/chameleon/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/channels-redis/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/chart-studio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/check-manifest/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/cheetah3/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/cheroot/default.nix63
-rw-r--r--nixpkgs/pkgs/development/python-modules/cherrypy/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/ci-info/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/ci-py/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/cirq/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cleo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cli-helpers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/click-datetime/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/cliff/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/clifford/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/clikit/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/clldutils/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/cloudflare/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/cloudpickle/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/cmd2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cnvkit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/codecov/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/colander/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/colorful/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/colorlog/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/configparser/4.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/configparser/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/confluent-kafka/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/construct/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/cornice/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cot/default.nix56
-rw-r--r--nixpkgs/pkgs/development/python-modules/coverage/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/coveralls/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/cozy/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/cppy/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/crashtest/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/crate/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/crayons/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/crc32c/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/credstash/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/croniter/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptography/2.9.nix74
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptography/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptography/vectors-2.9.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/cssselect2/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/csvs-to-sqlite/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/csvw/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/cucumber-tag-expressions/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/cupy/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/curio/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/cvxpy/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/cx_oracle/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/daphne/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/dash-core-components/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dash-renderer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dash-table/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dash/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-gateway-server/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-gateway/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-image/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-ml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dask/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/databricks-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/dataclasses-json/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/datadog/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/datasets/default.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/datasette/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/datashader/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/datatable/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dateparser/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/dbf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dbus-next/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/dbus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ddt/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/debts/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/debugpy/default.nix68
-rw-r--r--nixpkgs/pkgs/development/python-modules/debugpy/fix-test-pythonpath.patch12
-rw-r--r--nixpkgs/pkgs/development/python-modules/debugpy/hardcode-gdb.patch13
-rw-r--r--nixpkgs/pkgs/development/python-modules/decorator/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/deepdiff/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/deepmerge/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/defcon/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/deform/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/deluge-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/denonavr/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/dependency-injector/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/detox/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/devpi-common/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/diceware/default.nix (renamed from nixpkgs/pkgs/tools/security/diceware/default.nix)10
-rw-r--r--nixpkgs/pkgs/development/python-modules/diff-match-patch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/diff_cover/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dipy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/discogs_client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/discordpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/distlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/distributed/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/distro/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/distro/nixos.patch31
-rw-r--r--nixpkgs/pkgs/development/python-modules/dj-email-url/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-auth-ldap/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-cache-url/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-cleanup/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-cors-headers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-dynamic-preferences/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-extensions/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-filter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-ipware/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-jinja2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-maintenance-mode/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-multiselectfield/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-picklefield/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-q/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-raster/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-sampledatahelper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-versatileimagefield/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django-widget-tweaks/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/django/1_11.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/django/2_2.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_evolution/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_guardian/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_nose/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_redis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_silk/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_tagging/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/django_taggit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/djangoql/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/djangorestframework/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/djmail/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dkimpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dm-sonnet/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/dnslib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dnspython/1.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/dnspython/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/docker/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dockerfile-parse/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dockerspawner/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/docplex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dogpile.cache/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/dogtail/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/dominate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dpath/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/dpkt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/dropbox/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/duckdb/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/dulwich/0_19.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/dulwich/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ecdsa/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/ecpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/elementpath/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/eliot/default.nix56
-rw-r--r--nixpkgs/pkgs/development/python-modules/email-validator/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/emoji/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/enaml/default.nix58
-rw-r--r--nixpkgs/pkgs/development/python-modules/enamlx/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/entrance/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/entrypoint2/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/etelemetry/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/etesync/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/eve/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/eventlet/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/exchangelib/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/executing/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/executor/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/exifread/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/extension-helpers/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/eyed3/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/face/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/factory_boy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/faker/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastparquet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fastrlock/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/filemagic/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/finalfusion/default.nix56
-rw-r--r--nixpkgs/pkgs/development/python-modules/fixtures/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/flake8-debugger/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/flake8-future-import/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/flake8/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/flaky/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-admin/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-api/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-appbuilder/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-assets/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-caching/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-compress/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-httpauth/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-login/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-marshmallow/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-restful/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-restx/default.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-socketio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-sqlalchemy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-swagger-ui/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flask-testing/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/flit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/flower/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/flowlogs_reader/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fluent-logger/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/flufl/bounce.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fontmath/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/fontparts/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/fontpens/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/fonttools/default.nix62
-rw-r--r--nixpkgs/pkgs/development/python-modules/foxdot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/fpdf/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/freetype-py/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/freetype-py/library-paths.patch37
-rw-r--r--nixpkgs/pkgs/development/python-modules/freezegun/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/fsspec/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/ftfy/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/ftputil/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/fuse-python/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/fx2/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/gast/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gdown/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/genzshcomp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/geoip2/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/geojson/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/geopandas/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/gevent/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gidgethub/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/gin-config/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gipc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/git-annex-adapter/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/git-revise/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/glasgow/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/globre/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/globus-sdk/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/glom/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/goobook/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/goobook/fix-build.patch32
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-crc32c/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-music-proto/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/google-music/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_api_core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_auth/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_asset/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_automl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_bigquery/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_bigquery_datatransfer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_bigtable/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_container/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_dataproc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_datastore/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_dlp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_error_reporting/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_firestore/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_iot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_kms/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_logging/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_monitoring/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_pubsub/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_redis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_secret_manager/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_securitycenter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_spanner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_storage/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_tasks/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_texttospeech/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_trace/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_translate/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_videointelligence/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_vision/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/google_resumable_media/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/googleapis_common_protos/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gpxpy/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/graph-tool/2.x.x.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/graph_nets/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphite-web/update-django-tagging.patch15
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphite_beacon/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphql-core/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphql-server-core/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphviz/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch73
-rw-r--r--nixpkgs/pkgs/development/python-modules/graspy/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/green/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/grpcio/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/gsd/1.7.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/gspread/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/gssapi/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/gtimelog/default.nix61
-rw-r--r--nixpkgs/pkgs/development/python-modules/gumath/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/gym/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/h3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/h5netcdf/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/hcloud/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/hdlparse/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/helpdev/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hglib/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/hickle/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/hidapi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hieroglyph/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/hiredis/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/holidays/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/holoviews/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/howdoi/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/hstspreload/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/html-sanitizer/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/html5lib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/htmllaundry/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/http-ece/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/http-parser/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpcore/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/httplib2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpretty/0.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpretty/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/httptools/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/httpx/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/humanfriendly/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/humanize/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/hupper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hvac/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hwi/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/hwi/relax-deps.patch16
-rw-r--r--nixpkgs/pkgs/development/python-modules/hyperlink/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/hypothesis-auto/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/hypothesis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/hyppo/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/i3ipc/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/iapws/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/icecream/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/ics/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/identify/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/idna/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/ifaddr/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ihatemoney/default.nix66
-rw-r--r--nixpkgs/pkgs/development/python-modules/ijson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imagecorruptions/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imageio/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/imagesize/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/img2pdf/default.nix (renamed from nixpkgs/pkgs/applications/misc/img2pdf/default.nix)14
-rw-r--r--nixpkgs/pkgs/development/python-modules/imgsize/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/importlib-metadata/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/inflect/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/inflection/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/influxdb/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/iniconfig/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/iniparse/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/inquirer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/intake/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/internetarchive/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/intervaltree/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/invoke/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipdb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipykernel/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipympl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipython/7.16.nix (renamed from nixpkgs/pkgs/development/python-modules/ipython/7.9.nix)7
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipython/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipyvue/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ipyvuetify/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/irc/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/islpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/itemadapter/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/itemloaders/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/iterm2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/janus/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_collections/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_functools/2.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_functools/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_itertools/0001-Don-t-run-flake8-checks-during-the-build.patch37
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_itertools/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_logging/0001-Don-t-run-flake8-checks-during-the-build.patch38
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_logging/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/jaraco_stream/2.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/javaobj-py3/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/jc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jdcal/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/jedi/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jenkins-job-builder/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jenkinsapi/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/jinja2/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/jmespath/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/joblib/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/josepy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jq/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/jq/jq-py-setup.patch111
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsbeautifier/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonpatch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/jug/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/junit-xml/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/junos-eznc/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter-c-kernel/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter-repo2docker/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter-sphinx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter-telemetry/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter_client/5.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyter_client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterhub-tmpauthenticator/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterhub/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterlab-git/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jupytext/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/jwcrypto/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/kaggle/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/kazoo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/keep/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/keras/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/keyring/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/kinparse/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/kiwisolver/1_1.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/knack/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/kombu/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/korean-lunar-calendar/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/kubernetes/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/labelbox/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/lark-parser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/latexcodec/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lazr-uri/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lazy/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/ldap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ldap3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libagent/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/libarcus/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libcloud/2.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/libcloud/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/liblarch/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/librosa/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/libsavitar/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libthumbor/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libtmux/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libusb1/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libversion/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/libvirt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lightparam/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/limits/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/limnoria/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/line_profiler/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/linecache2/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/llvmlite/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lmdb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/lml/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/lmtpd/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/logfury/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/loguru/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/ludios_wpull/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/lxml/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/m2crypto/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mac_alias/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/maestral/default.nix59
-rw-r--r--nixpkgs/pkgs/development/python-modules/mahotas/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/maildir-deduplicate/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/mapsplotlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/marionette-harness/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/marionette-harness/marionette_driver.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/marionette-harness/mozfile.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/marionette-harness/mozhttpd.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/marionette-harness/moznetwork.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/markdown/3_1.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/markdown/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/marshmallow-polyfield/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/marshmallow/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mask-rcnn/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/mathics/default.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/mathlibtools/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/matplotlib/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/matplotlib/setup-darwin.cfg7
-rw-r--r--nixpkgs/pkgs/development/python-modules/matplotlib/setup.cfg3
-rw-r--r--nixpkgs/pkgs/development/python-modules/matrix-nio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mautrix/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/maxminddb/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/mdp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mecab-python3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mergedeep/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/meshlabxml/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/mido/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/mido/libportmidi-cdll.patch19
-rw-r--r--nixpkgs/pkgs/development/python-modules/minio/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/mistletoe/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix121
-rw-r--r--nixpkgs/pkgs/development/python-modules/mlflow/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/mmh3/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/mock-open/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/mock/2.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/mocket/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/mohawk/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/more-itertools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/morphys/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/moto/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/mox3/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/mpv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/msal-extensions/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/msal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/msgpack-numpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/msrest/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/msrestazure/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mss/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/mt-940/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/multitasking/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/mutagen/1.43.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/mutagen/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/mutatormath/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/mwclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mwoauth/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/myfitnesspal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mypy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mysql-connector/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/mysqlclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nassl/default.nix120
-rw-r--r--nixpkgs/pkgs/development/python-modules/nassl/nix-ssl-cert-file.patch14
-rw-r--r--nixpkgs/pkgs/development/python-modules/natsort/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbclient/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbconflux/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbformat/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbsphinx/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbval/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nbxmpp/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/ncclient/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ndtypes/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/nest-asyncio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/netaddr/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/netcdf4/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/netdisco/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nibabel/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/nine/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nipype/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nix-kernel/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/nix-prefetch-github/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/nltk/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/nmigen/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/nodeenv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/notebook/2.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/notebook/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/notify2/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/nplusone/default.nix49
-rw-r--r--nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/ntlm-auth/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/nuitka/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/numba/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/numcodecs/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/numexpr/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/numpy/1.16.nix97
-rw-r--r--nixpkgs/pkgs/development/python-modules/numpy/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/numpy/numpy-distutils-C++.patch9
-rw-r--r--nixpkgs/pkgs/development/python-modules/numpy/numpy-distutils-C++_1.16.patch30
-rw-r--r--nixpkgs/pkgs/development/python-modules/numpydoc/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/nunavut/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/nvchecker/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/odo/default.nix59
-rw-r--r--nixpkgs/pkgs/development/python-modules/openapi-spec-validator/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/openpyxl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/openrazer/common.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentimestamps/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/opentracing/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/openwebifpy/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/openwrt-luci-rpc/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/opt-einsum/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ordered-set/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/orderedmultidict/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/osc/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/osqp/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/ovito/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/owslib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pa-ringbuffer/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/packaging/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/packet-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/palettable/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/pam/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/pandas/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/panel/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/papermill/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/papis/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/paramiko/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/parfive/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/parse/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/parsedatetime/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/parso/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/paste/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pastedeploy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/patator/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pathspec/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pc-ble-driver-py/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/pcpp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pdfminer_six/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pdftotext/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pecan/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/peewee/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pelican/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/pendulum/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/pep517/default.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/pep8-naming/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/persim/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/persistent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pexpect/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/pg8000/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pglast/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/phik/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/phonopy/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/picos/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pikepdf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pillow/6.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pillow/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pims/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pint/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/pip-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pip/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pip/reproducible.patch13
-rw-r--r--nixpkgs/pkgs/development/python-modules/pip2nix/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/pipdate/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/pipx/default.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/pivy/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/pkuseg/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/pkutils/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/plac/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/plaid-python/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/plone-testing/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/plotly/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/plumbum/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/poetry-core/default.nix63
-rw-r--r--nixpkgs/pkgs/development/python-modules/poetry/default.nix110
-rw-r--r--nixpkgs/pkgs/development/python-modules/poetry/glob2.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/pooch/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/powerline/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/pq/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/prance/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/praw/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/prawcore/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/pre-commit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/premailer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/preshed/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/process-tests/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/progressbar2/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/prometheus_client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/prompt_toolkit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/property-manager/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/psautohint/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/psd-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/psutil/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/ptpython/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/pulp/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/pulsectl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pure-eval/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/pure-pcapy3/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/pvlib/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/pwntools/default.nix66
-rw-r--r--nixpkgs/pkgs/development/python-modules/pxml/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-multibase/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-multihash/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/py-vapid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/py/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/py3status/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyTelegramBotAPI/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/py_stringmatching/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyaml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyatmo/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyatv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybfd/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybids/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybind11/0001-Find-include-directory.patch53
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybind11/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybindgen/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pybullet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pychromecast/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyclipper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycodestyle/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycognito/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycoin/default.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycountry/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycparser/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycryptodome/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pycryptodomex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydicom/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydocstyle/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydsdl/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/pydub/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyexcel-io/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyexcel-ods/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyexcel-xls/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyexcel/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyface/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfaidx/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyflakes/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfritzhome/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyfxa/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygls/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygobject/3.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygogo/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygraphviz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pygrok/default.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyhamcrest/1.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyhamcrest/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyhs100/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyicloud/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyipp/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyjet/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyjks/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykdl/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykeepass/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/pykwalify/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylast/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylatexenc/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylibftdi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylibgen/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylint-django/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylint-plugin-utils/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylint/1.9.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pylint/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyls-black/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyls-mypy/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymatgen/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymavlink/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymbolic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymc3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymetno/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymongo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymupdf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymysql/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pymystem3/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynamodb/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pynmea2/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyobjc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyopencl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyopengl-accelerate/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyotp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyowm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypcap/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyperclip/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyperf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyphotonfile/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/pypubsub/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyqtwebengine/fix-build-with-qt-514.patch31
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyro-ppl/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyro4/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyro5/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyroute2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyrsistent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyscard/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyscard/ignore-macos-bug.patch22
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyscreenshot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyscss/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysdl2/PySDL2-dll.patch113
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysdl2/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyside2-tools/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyside2-tools/remove_hacky_binary_copying.patch50
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyside2/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyside2/dont_ignore_optional_modules.patch6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysingleton/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyslurm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysnow/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysonos/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyspark/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyspice/default.nix51
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyspinel/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyspread/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pysqueezebox/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/pystemmer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pystray/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytabix/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytesseract/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-astropy-header/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-astropy/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-asyncio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-black/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-check/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-cov/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-django/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-filter-subpackage/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-flakes/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-freezegun/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-isort/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-localserver/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-mock/2.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-mock/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-mypy/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-openfiles/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-pylint/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-pythonpath/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-quickcheck/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-randomly/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-rerunfailures/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-sanic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-services/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-sugar/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-testmon/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-tornado/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-tornasync/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-trio/default.nix43
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-xdist/2.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest-xvfb/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest/4.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest/5.nix80
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytest/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-didl-lite/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-docx/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-engineio/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-hosts/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-igraph/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-jose/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-jsonrpc-server/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-language-server/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-libarchive/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-markdown-math/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-miio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-mnist/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-mpv-jsonipc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-packer/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-pam/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-periphery/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-ptrace/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-redis-lock/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-slugify/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-snap7/default.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-socketio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-stdnum/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-vipaccess/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python-vlc/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/python3-openid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/python_fedora/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytimeparse/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytmx/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytools/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch-lightning/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch/bin.nix68
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch/default.nix83
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytorch/pthreadpool-disable-gcd.diff45
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytrends/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pytzdata/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyuavcan/default.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyudev/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyunifi/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvcd/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyvcf/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyviz-comms/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywbem/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywebpush/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pywebview/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyx/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyxdg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyxl3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyxnat/default.nix34
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyyaml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyzmq/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/qasm2image/default.nix1
-rw-r--r--nixpkgs/pkgs/development/python-modules/qds_sdk/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-aer/remove-conan-install.patch63
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-aqua/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-ignis/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit-terra/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/qiskit/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/qreactor/default.nix41
-rw-r--r--nixpkgs/pkgs/development/python-modules/qscintilla-qt5/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/qtconsole/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/quandl/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/qutip/default.nix45
-rw-r--r--nixpkgs/pkgs/development/python-modules/rabbitpy/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/radish-bdd/default.nix52
-rw-r--r--nixpkgs/pkgs/development/python-modules/rasterio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rdflib-jsonld/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/readme_renderer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/recommonmark/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/redis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rednose/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/regex/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/relatorio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/reportlab/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/repoze_who/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/reproject/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests-aws4auth/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests-file/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests-hawk/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests-mock/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/requests/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/responses/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/restview/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/rethinkdb/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/retworkx/default.nix76
-rw-r--r--nixpkgs/pkgs/development/python-modules/rhpl/builder.sh2
-rw-r--r--nixpkgs/pkgs/development/python-modules/ripser/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/rising/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/roboschool/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/robotframework-requests/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/robotframework/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/robotsuite/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rope/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/rq/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/rsa/4_0.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/rsa/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/rtmidi-python/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/rtmixer/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/rubymarshal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/runway-python/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/rx/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/sabyenc3/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/sacremoses/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/samsungctl/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/samsungtvws/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/sanic/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sapi-python-client/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/sarge/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sasmodels/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scapy/default.nix50
-rw-r--r--nixpkgs/pkgs/development/python-modules/scapy/fix-version.patch13
-rw-r--r--nixpkgs/pkgs/development/python-modules/schema/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-build/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-image/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikit-optimize/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikitlearn/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/scikits-odes/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/scipy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scour/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scrapy-fake-useragent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/scrapy/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/scrapy/permissions-fix.patch23
-rw-r--r--nixpkgs/pkgs/development/python-modules/seekpath/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/segments/default.nix47
-rw-r--r--nixpkgs/pkgs/development/python-modules/selectors2/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/semver/default.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/serpent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/setuptools_scm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sh/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/sh/disable-broken-tests-darwin.patch60
-rw-r--r--nixpkgs/pkgs/development/python-modules/shamir-mnemonic/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/shiboken2/nix_compile_cflags.patch13
-rw-r--r--nixpkgs/pkgs/development/python-modules/shortuuid/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/shouldbe/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/sievelib/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/simpleparse/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/simpy/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/six/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/skein/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/skein/skeinjar.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/skein/skeinrepo.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/smart_open/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/snscrape/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/soco/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/solo-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/somajo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sopel/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/sorl_thumbnail/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/sortedcollections/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sortedcontainers/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sounddevice/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/soupsieve/1.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/soupsieve/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/annotation-test/annotate.py69
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/annotation-test/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/models.json182
-rw-r--r--nixpkgs/pkgs/development/python-modules/spacy/models.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/sparse/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/spectral-cube/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/spglib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-websupport/1_1.nix25
-rw-r--r--nixpkgs/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/spidev/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/splinter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/spotipy/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/spyder-kernels/0.x.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/spyder/3.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/spyder/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlalchemy-citext/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlalchemy-continuum/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlalchemy-i18n/default.nix32
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlalchemy-utils/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlitedict/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/sqlmap/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/srsly/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/srvlookup/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/sseclient/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/sslyze/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/starfish/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/starlette/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/statsmodels/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/stevedore/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/streamz/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/strictyaml/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/stripe/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/structlog/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/stumpy/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/stytra/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sunpy/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/supervisor/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/suseapi/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/svglib/default.nix48
-rw-r--r--nixpkgs/pkgs/development/python-modules/sybil/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/sympy/1_5.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/sympy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tag-expressions/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/tasklib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tblib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tbm-utils/default.nix11
-rw-r--r--nixpkgs/pkgs/development/python-modules/tempora/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorboardx/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow-estimator/2/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow-probability/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/tensorflow/1/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/test-tube/default.nix46
-rw-r--r--nixpkgs/pkgs/development/python-modules/testfixtures/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/testtools/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/textacy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/textfsm/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/thespian/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/thinc/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/tifffile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tiledb/default.nix21
-rw-r--r--nixpkgs/pkgs/development/python-modules/timelib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/timezonefinder/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/tinycss2/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/tinycss2/remove-redundant-dependency.patch12
-rw-r--r--nixpkgs/pkgs/development/python-modules/tinydb/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/titlecase/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tld/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tldextract/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/tls-parser/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/todoist/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/tokenizers/default.nix129
-rw-r--r--nixpkgs/pkgs/development/python-modules/tokenizers/update-parking-lot.diff63
-rw-r--r--nixpkgs/pkgs/development/python-modules/tomlkit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/torchgpipe/default.nix39
-rw-r--r--nixpkgs/pkgs/development/python-modules/tornado/4.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/tornado/5.nix37
-rw-r--r--nixpkgs/pkgs/development/python-modules/tornado/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/towncrier/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/tox/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tqdm/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/traits/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/traitsui/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/transformers/default.nix85
-rw-r--r--nixpkgs/pkgs/development/python-modules/transip/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/transitions/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/translationstring/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/trezor/default.nix61
-rw-r--r--nixpkgs/pkgs/development/python-modules/trezor_agent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/trimesh/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/trio/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/trytond/default.nix (renamed from nixpkgs/pkgs/applications/office/trytond/default.nix)54
-rw-r--r--nixpkgs/pkgs/development/python-modules/tvdb_api/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tvnamer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tweepy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/twiggy/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/twilio/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/twill/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/twine/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/txaio/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/txdbus/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/typed-ast/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/typeguard/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/typing-extensions/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/typing-inspect/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/typing/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/tzlocal/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/u-msgpack-python/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/uamqp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/uarray/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ueberzug/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ufonormalizer/default.nix19
-rw-r--r--nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix35
-rw-r--r--nixpkgs/pkgs/development/python-modules/ujson/2.nix28
-rw-r--r--nixpkgs/pkgs/development/python-modules/ujson/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/uncertainties/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/uncompyle6/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/unicodedata2/default.nix23
-rw-r--r--nixpkgs/pkgs/development/python-modules/unittest-xml-reporting/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/untangle/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/update_checker/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/uproot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/uranium/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/urllib3/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/urwid-readline/default.nix33
-rw-r--r--nixpkgs/pkgs/development/python-modules/urwid/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/us/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/userpath/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/uvcclient/default.nix29
-rw-r--r--nixpkgs/pkgs/development/python-modules/uvicorn/default.nix16
-rw-r--r--nixpkgs/pkgs/development/python-modules/uvloop/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/validators/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/varint/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/vcrpy/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vcver/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/vdirsyncer/stable.nix42
-rw-r--r--nixpkgs/pkgs/development/python-modules/vega/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/venusian/default.nix2
-rw-r--r--nixpkgs/pkgs/development/python-modules/vertica-python/default.nix14
-rw-r--r--nixpkgs/pkgs/development/python-modules/virtual-display/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/virtualenv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vispy/default.nix40
-rw-r--r--nixpkgs/pkgs/development/python-modules/vispy/library-paths.patch39
-rw-r--r--nixpkgs/pkgs/development/python-modules/vmprof/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/voluptuous-serialize/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/vulture/default.nix22
-rw-r--r--nixpkgs/pkgs/development/python-modules/waitress/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wasabi/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/watchdog/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wcwidth/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/web/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/webcolors/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/webdavclient3/default.nix30
-rw-r--r--nixpkgs/pkgs/development/python-modules/websocket_client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/websockets/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/werkzeug/default.nix18
-rw-r--r--nixpkgs/pkgs/development/python-modules/west/default.nix53
-rw-r--r--nixpkgs/pkgs/development/python-modules/wheel/default.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/whitenoise/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/willow/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/word2vec/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/wordcloud/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/wptserve/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wrapt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wsproto/0.14.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wtf-peewee/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wtforms/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wurlitzer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/wxPython/4.0.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/xarray/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/xcffib/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/xdis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xlib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/xmlschema/default.nix9
-rw-r--r--nixpkgs/pkgs/development/python-modules/xnd/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/xpybutil/default.nix26
-rw-r--r--nixpkgs/pkgs/development/python-modules/xxhash/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/yamllint/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/yamlordereddictloader/default.nix31
-rw-r--r--nixpkgs/pkgs/development/python-modules/yapf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/yappi/default.nix3
-rw-r--r--nixpkgs/pkgs/development/python-modules/yarl/default.nix12
-rw-r--r--nixpkgs/pkgs/development/python-modules/yattag/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/ydiff/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/yeelight/default.nix20
-rw-r--r--nixpkgs/pkgs/development/python-modules/yfinance/default.nix36
-rw-r--r--nixpkgs/pkgs/development/python-modules/yq/default.nix54
-rw-r--r--nixpkgs/pkgs/development/python-modules/yt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/yubico-client/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zarr/default.nix6
-rw-r--r--nixpkgs/pkgs/development/python-modules/zconfig/default.nix10
-rw-r--r--nixpkgs/pkgs/development/python-modules/zeroconf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zict/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/zigpy-cc/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix13
-rw-r--r--nixpkgs/pkgs/development/python-modules/zigpy-xbee/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/zigpy-zigate/default.nix24
-rw-r--r--nixpkgs/pkgs/development/python-modules/zigpy/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/zimports/default.nix8
-rw-r--r--nixpkgs/pkgs/development/python-modules/zipp/1.nix38
-rw-r--r--nixpkgs/pkgs/development/python-modules/zipp/default.nix7
-rw-r--r--nixpkgs/pkgs/development/python-modules/zodb/default.nix17
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_component/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_configuration/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_contenttype/default.nix5
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_exceptions/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_filerepresentation/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_i18n/default.nix27
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_schema/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zope_testrunner/default.nix4
-rw-r--r--nixpkgs/pkgs/development/python-modules/zopfli/default.nix21
-rwxr-xr-xnixpkgs/pkgs/development/python-modules/zstandard/default.nix15
-rw-r--r--nixpkgs/pkgs/development/python-modules/zulip/default.nix41
-rw-r--r--nixpkgs/pkgs/development/r-modules/default.nix6
-rw-r--r--nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix15
-rw-r--r--nixpkgs/pkgs/development/ruby-modules/solargraph/Gemfile.lock26
-rw-r--r--nixpkgs/pkgs/development/ruby-modules/solargraph/gemset.nix56
-rw-r--r--nixpkgs/pkgs/development/tools/alloy/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/ameba/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/ammonite/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/codeql/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/eresi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/flow/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/hopper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/hotspot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/include-what-you-use/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/pmd/default.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/radare2/cutter.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/radare2/default.nix32
-rwxr-xr-xnixpkgs/pkgs/development/tools/analysis/radare2/update.py20
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/randoop/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/svlint/default.nix25
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/tflint/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/analysis/valgrind/default.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/async/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/avro-tools/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix21
-rw-r--r--nixpkgs/pkgs/development/tools/azcopy/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/bazel-gazelle/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/bazel-kazel/default.nix26
-rw-r--r--nixpkgs/pkgs/development/tools/bazel-watcher/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/bazelisk/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/bazelisk/gomod.patch2
-rw-r--r--nixpkgs/pkgs/development/tools/bloaty/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/apache-ant/1.9.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix33
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/src-deps.json90
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/default.nix5
-rwxr-xr-xnixpkgs/pkgs/development/tools/build-managers/bazel/update-srcDeps.py1
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix118
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/cmake/application-services.patch36
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix17
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/cmake/libuv-application-services.patch26
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/cmake/search-path.patch33
-rwxr-xr-xnixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh20
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/conan/default.nix23
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/fac/cargo-lock.patch802
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/fac/default.nix50
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/gnumake/default.nix59
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/gnumake/impure-dirs.patch25
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix16
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/mage/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch20
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/meson/default.nix50
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/meson/fix-rpath.patch76
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch6
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/mill/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/ninja/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/redo-apenwarr/default.nix16
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/redo-c/Makefile10
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/redo-c/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/redo-sh/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix23
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/scons/common.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/build-managers/scons/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/buildah/default.nix15
-rw-r--r--nixpkgs/pkgs/development/tools/buildkit/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/buildpack/default.nix21
-rw-r--r--nixpkgs/pkgs/development/tools/cargo-flamegraph/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/cargo-web/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/castxml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/chit/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/cloudfoundry-cli/default.nix15
-rw-r--r--nixpkgs/pkgs/development/tools/cmake-format/default.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/cmake-language-server/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/conftest/default.nix15
-rw-r--r--nixpkgs/pkgs/development/tools/container-linux-config-transpiler/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/drone-cli/default.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix21
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/laminar/default.nix80
-rw-r--r--nixpkgs/pkgs/development/tools/continuous-integration/laminar/patches/no-network.patch26
-rw-r--r--nixpkgs/pkgs/development/tools/corgi/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/coursier/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/cue/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/dapper/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/dapr/cli/default.nix31
-rw-r--r--nixpkgs/pkgs/development/tools/database/dbmate/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/database/liquibase/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/database/sqldeveloper/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/database/timescaledb-parallel-copy/default.nix28
-rw-r--r--nixpkgs/pkgs/development/tools/database/timescaledb-parallel-copy/deps.nix21
-rw-r--r--nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix20
-rw-r--r--nixpkgs/pkgs/development/tools/database/timescaledb-tune/deps.nix21
-rw-r--r--nixpkgs/pkgs/development/tools/database/webdis/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/delve/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/dep/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/dep2nix/deps.nix272
-rw-r--r--nixpkgs/pkgs/development/tools/devd/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/devd/deps.nix201
-rw-r--r--nixpkgs/pkgs/development/tools/diesel-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/dive/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/doctl/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/documentation/doxygen/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/dot-http/default.nix28
-rw-r--r--nixpkgs/pkgs/development/tools/drip/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/dt-schema/default.nix37
-rw-r--r--nixpkgs/pkgs/development/tools/easyjson/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/easyjson/deps.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/eclipse-mat/default.nix119
-rw-r--r--nixpkgs/pkgs/development/tools/ejson/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/ejson/deps.nix48
-rw-r--r--nixpkgs/pkgs/development/tools/electron/default.nix49
-rw-r--r--nixpkgs/pkgs/development/tools/electron/generic.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/eliot-tree/default.nix38
-rw-r--r--nixpkgs/pkgs/development/tools/fdroidserver/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/fedora-coreos-config-transpiler/default.nix37
-rw-r--r--nixpkgs/pkgs/development/tools/flatpak-builder/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/flatpak-builder/fix-paths.patch31
-rw-r--r--nixpkgs/pkgs/development/tools/flyway/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/gauge/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/gdm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/ginkgo/default.nix22
-rw-r--r--nixpkgs/pkgs/development/tools/gir/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/git-quick-stats/default.nix40
-rw-r--r--nixpkgs/pkgs/development/tools/gllvm/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/global-platform-pro/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/go-bindata-assetfs/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/go-bindata/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/go-junit-report/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/go-migrate/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/go-protobuf/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/go-repo-root/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/go-swag/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/go-swagger/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/go-task/default.nix34
-rw-r--r--nixpkgs/pkgs/development/tools/go-toml/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/go-tools/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/gocode-gomod/default.nix19
-rw-r--r--nixpkgs/pkgs/development/tools/gocode-gomod/deps.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/gocode/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/godef/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/godot/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/godot/dont_clobber_environment.patch20
-rw-r--r--nixpkgs/pkgs/development/tools/godot/headless.nix18
-rw-r--r--nixpkgs/pkgs/development/tools/godot/pkg_config_additions.patch31
-rw-r--r--nixpkgs/pkgs/development/tools/godot/server.nix18
-rw-r--r--nixpkgs/pkgs/development/tools/gofumpt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/gogetdoc/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/golangci-lint/default.nix29
-rw-r--r--nixpkgs/pkgs/development/tools/golint/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/gomodifytags/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/gopkgs/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/gopls/default.nix14
-rw-r--r--nixpkgs/pkgs/development/tools/gore/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/gosec/default.nix33
-rw-r--r--nixpkgs/pkgs/development/tools/gosec/deps.nix193
-rw-r--r--nixpkgs/pkgs/development/tools/gotags/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/gotestsum/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/gotools/default.nix20
-rw-r--r--nixpkgs/pkgs/development/tools/gox/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/haskell/dconf2nix/default.nix32
-rwxr-xr-xnixpkgs/pkgs/development/tools/haskell/dconf2nix/update.sh26
-rw-r--r--nixpkgs/pkgs/development/tools/haskell/haskell-language-server/default.nix48
-rw-r--r--nixpkgs/pkgs/development/tools/haskell/haskell-language-server/hls-brittany.nix36
-rw-r--r--nixpkgs/pkgs/development/tools/haskell/haskell-language-server/hls-ghcide.nix57
-rwxr-xr-xnixpkgs/pkgs/development/tools/haskell/haskell-language-server/update.sh71
-rw-r--r--nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/haskell/ihaskell/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/hcloud/default.nix31
-rw-r--r--nixpkgs/pkgs/development/tools/heroku/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/icestorm/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/java/visualvm/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/jazzy/Gemfile.lock34
-rw-r--r--nixpkgs/pkgs/development/tools/jazzy/gemset.nix60
-rw-r--r--nixpkgs/pkgs/development/tools/jid/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/jo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/jp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/just/default.nix23
-rw-r--r--nixpkgs/pkgs/development/tools/k6/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/kafkacat/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/kcli/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/kexpand/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/kexpand/deps.nix63
-rw-r--r--nixpkgs/pkgs/development/tools/kind/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/kcc/default.nix25
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/kimg/default.nix26
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/kpack/default.nix27
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix27
-rw-r--r--nixpkgs/pkgs/development/tools/knightos/scas/default.nix26
-rw-r--r--nixpkgs/pkgs/development/tools/ktlint/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/kubectx/default.nix42
-rw-r--r--nixpkgs/pkgs/development/tools/kubeprompt/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/kustomize/default.nix28
-rw-r--r--nixpkgs/pkgs/development/tools/lattice-diamond/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/lazygit/default.nix17
-rw-r--r--nixpkgs/pkgs/development/tools/leaps/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/leaps/deps.nix350
-rw-r--r--nixpkgs/pkgs/development/tools/manul/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/metals/default.nix14
-rw-r--r--nixpkgs/pkgs/development/tools/micronaut/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/minizinc/default.nix17
-rw-r--r--nixpkgs/pkgs/development/tools/misc/act/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/misc/arcanist/default.nix73
-rw-r--r--nixpkgs/pkgs/development/tools/misc/argbash/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/asls/default.nix25
-rw-r--r--nixpkgs/pkgs/development/tools/misc/blackmagic/default.nix8
-rwxr-xr-xnixpkgs/pkgs/development/tools/misc/blackmagic/helper.sh10
-rw-r--r--nixpkgs/pkgs/development/tools/misc/cc-tool/default.nix42
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ccache/default.nix28
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ccache/fix-debug-prefix-map-suite.patch42
-rw-r--r--nixpkgs/pkgs/development/tools/misc/ccache/skip-fs-dependent-test.patch26
-rw-r--r--nixpkgs/pkgs/development/tools/misc/circleci-cli/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/misc/cli11/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/cproto/cproto.patch (renamed from nixpkgs/pkgs/development/tools/misc/cproto/cproto_patch)0
-rw-r--r--nixpkgs/pkgs/development/tools/misc/cproto/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/misc/easypdkprog/default.nix27
-rw-r--r--nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/elfinfo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/elfutils/default.nix14
-rw-r--r--nixpkgs/pkgs/development/tools/misc/fswatch/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/fujprog/default.nix37
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gdb/default.nix13
-rw-r--r--nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/misc/global/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/go-license-detector/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/help2man/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/hound/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/hound/deps.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/hydra/default.nix15
-rw-r--r--nixpkgs/pkgs/development/tools/misc/intltool/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/misc/itm-tools/cargo-lock.patch321
-rw-r--r--nixpkgs/pkgs/development/tools/misc/itm-tools/default.nix28
-rw-r--r--nixpkgs/pkgs/development/tools/misc/linuxkit/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/misc/lit/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/mkcert/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/misc/nix-build-uncached/default.nix14
-rw-r--r--nixpkgs/pkgs/development/tools/misc/nrfutil/default.nix13
-rw-r--r--nixpkgs/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix46
-rw-r--r--nixpkgs/pkgs/development/tools/misc/objconv/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/openocd/default.nix34
-rw-r--r--nixpkgs/pkgs/development/tools/misc/pahole/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/patchelf/0.9.nix16
-rw-r--r--nixpkgs/pkgs/development/tools/misc/patchelf/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/replacement/default.nix46
-rw-r--r--nixpkgs/pkgs/development/tools/misc/reviewdog/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/misc/scc/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/misc/stm32cubemx/default.nix36
-rw-r--r--nixpkgs/pkgs/development/tools/misc/strace/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/misc/svls/default.nix25
-rw-r--r--nixpkgs/pkgs/development/tools/misc/swig/4.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/terracognita/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/terraformer/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/misc/texinfo/6.7.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/texinfo/common.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/misc/texinfo/cross-tools-flags.patch3
-rw-r--r--nixpkgs/pkgs/development/tools/misc/texinfo/perl.patch43
-rw-r--r--nixpkgs/pkgs/development/tools/misc/texlab/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/misc/tockloader/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/misc/tokei/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/misc/travis/Gemfile.lock50
-rw-r--r--nixpkgs/pkgs/development/tools/misc/travis/gemset.nix114
-rw-r--r--nixpkgs/pkgs/development/tools/mockgen/default.nix23
-rw-r--r--nixpkgs/pkgs/development/tools/mod/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/modd/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/modd/deps.nix138
-rw-r--r--nixpkgs/pkgs/development/tools/mustache-go/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/node-webkit/nw12.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/nsis/default.nix15
-rw-r--r--nixpkgs/pkgs/development/tools/nwjs/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/camlp4/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/camlp5/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/dune-release/default.nix54
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/dune/2.nix16
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix20
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/merlin/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/ocamlformat/default.nix113
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/ocp-indent/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/ocaml/ocp-index/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/open-policy-agent/default.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/open-policy-agent/deps.nix408
-rw-r--r--nixpkgs/pkgs/development/tools/operator-sdk/default.nix35
-rw-r--r--nixpkgs/pkgs/development/tools/osslsigncode/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/out-of-tree/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/packer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/packet-cli/default.nix15
-rw-r--r--nixpkgs/pkgs/development/tools/parinfer-rust/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/bison/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/pet/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/pgformatter/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/pipenv/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix103
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/wheel-unpack-hook.sh18
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix16
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix166
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock311
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml2
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json4
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/plugins.nix70
-rw-r--r--nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/shell-scripts.nix41
-rw-r--r--nixpkgs/pkgs/development/tools/profiling/heaptrack/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/profiling/oprofile/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/profiling/sysprof/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/proto-contrib/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/protoc-gen-doc/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/prototool/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/purescript/spago/spago.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/quicktemplate/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/react-native-debugger/default.nix25
-rw-r--r--nixpkgs/pkgs/development/tools/rebazel/default.nix21
-rw-r--r--nixpkgs/pkgs/development/tools/reftools/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/renderizer/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/reno/default.nix61
-rw-r--r--nixpkgs/pkgs/development/tools/rgp/default.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/richgo/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/rq/default.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/run/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-asm/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix50
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-cache/default.nix26
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix19
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-embed/default.nix27
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-flash/default.nix27
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-fund/default.nix29
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-make/Cargo.lock1109
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix29
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-raze/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-sync-readme/default.nix22
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix13
-rw-r--r--nixpkgs/pkgs/development/tools/rust/cargo-xbuild/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/rust/maturin/Cargo.lock.patch13
-rw-r--r--nixpkgs/pkgs/development/tools/rust/maturin/default.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/rust/racer/default.nix15
-rw-r--r--nixpkgs/pkgs/development/tools/rust/racerd/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rust-analyzer/generic.nix35
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-loop-in-const-fn.patch223
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-option-zip.patch72
-rwxr-xr-xnixpkgs/pkgs/development/tools/rust/rust-analyzer/update.sh19
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rustup/0001-dynamically-patchelf-binaries.patch27
-rw-r--r--nixpkgs/pkgs/development/tools/rust/rustup/default.nix34
-rw-r--r--nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/scalafmt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/selenium/chromedriver/default.nix10
-rw-r--r--nixpkgs/pkgs/development/tools/skaffold/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/skopeo/default.nix20
-rw-r--r--nixpkgs/pkgs/development/tools/so/default.nix27
-rw-r--r--nixpkgs/pkgs/development/tools/spring-boot-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/statik/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/statik/deps.nix3
-rw-r--r--nixpkgs/pkgs/development/tools/summon/default.nix35
-rw-r--r--nixpkgs/pkgs/development/tools/summon/resolve-paths.patch39
-rw-r--r--nixpkgs/pkgs/development/tools/swiftformat/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/the-way/default.nix36
-rw-r--r--nixpkgs/pkgs/development/tools/tracy/default.nix24
-rw-r--r--nixpkgs/pkgs/development/tools/trellis/default.nix8
-rw-r--r--nixpkgs/pkgs/development/tools/tychus/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/unity3d/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/unityhub/default.nix9
-rw-r--r--nixpkgs/pkgs/development/tools/vagrant/0004-Support-system-installed-plugins.patch10
-rw-r--r--nixpkgs/pkgs/development/tools/vagrant/default.nix11
-rw-r--r--nixpkgs/pkgs/development/tools/vagrant/gemset.nix44
-rw-r--r--nixpkgs/pkgs/development/tools/vagrant/use-system-bundler-version.patch10
-rw-r--r--nixpkgs/pkgs/development/tools/vcstool/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/vend/default.nix37
-rw-r--r--nixpkgs/pkgs/development/tools/vend/remove_tidy.patch13
-rw-r--r--nixpkgs/pkgs/development/tools/vultr-cli/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/vultr/default.nix5
-rw-r--r--nixpkgs/pkgs/development/tools/wabt/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/wasm-bindgen-cli/0001-Add-cargo.lock.patch2546
-rw-r--r--nixpkgs/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock2557
-rw-r--r--nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix28
-rw-r--r--nixpkgs/pkgs/development/tools/wasm-pack/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/winpdb/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/wrangler/default.nix7
-rw-r--r--nixpkgs/pkgs/development/tools/ws/default.nix2
-rw-r--r--nixpkgs/pkgs/development/tools/ws/deps.nix12
-rw-r--r--nixpkgs/pkgs/development/tools/wxformbuilder/default.nix35
-rw-r--r--nixpkgs/pkgs/development/tools/yarn/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/ydiff/default.nix4
-rw-r--r--nixpkgs/pkgs/development/tools/yj/default.nix1
-rw-r--r--nixpkgs/pkgs/development/tools/yq-go/default.nix6
-rw-r--r--nixpkgs/pkgs/development/tools/yq/default.nix23
-rw-r--r--nixpkgs/pkgs/development/web/cypress/default.nix8
-rw-r--r--nixpkgs/pkgs/development/web/deno/default.nix9
-rw-r--r--nixpkgs/pkgs/development/web/deno/deps.nix8
-rw-r--r--nixpkgs/pkgs/development/web/deno/update/common.ts15
-rw-r--r--nixpkgs/pkgs/development/web/flyctl/default.nix10
-rw-r--r--nixpkgs/pkgs/development/web/grails/default.nix4
-rw-r--r--nixpkgs/pkgs/development/web/lucky-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/development/web/minify/default.nix4
-rw-r--r--nixpkgs/pkgs/development/web/newman/default.nix19
-rwxr-xr-xnixpkgs/pkgs/development/web/newman/generate-dependencies.sh9
-rw-r--r--nixpkgs/pkgs/development/web/newman/node-composition.nix17
-rw-r--r--nixpkgs/pkgs/development/web/newman/node-env.nix542
-rw-r--r--nixpkgs/pkgs/development/web/newman/node-packages.nix5957
-rw-r--r--nixpkgs/pkgs/development/web/newman/package.json3
-rw-r--r--nixpkgs/pkgs/development/web/nodejs/nodejs.nix2
-rw-r--r--nixpkgs/pkgs/development/web/nodejs/v10.nix4
-rw-r--r--nixpkgs/pkgs/development/web/nodejs/v12.nix4
-rw-r--r--nixpkgs/pkgs/development/web/nodejs/v13.nix13
-rw-r--r--nixpkgs/pkgs/development/web/nodejs/v14.nix7
-rw-r--r--nixpkgs/pkgs/development/web/postman/default.nix12
-rw-r--r--nixpkgs/pkgs/development/web/shopify-themekit/default.nix5
-rw-r--r--nixpkgs/pkgs/development/web/twitter-bootstrap/default.nix4
-rw-r--r--nixpkgs/pkgs/games/anki/default.nix25
-rw-r--r--nixpkgs/pkgs/games/arena/default.nix8
-rw-r--r--nixpkgs/pkgs/games/assaultcube/default.nix2
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/builder.nix49
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/common.nix187
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/default.nix51
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/git.nix54
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/lib.nix17
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir.patch18
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir_git.patch20
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/pkgs/default.nix27
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/pkgs/tilesets/UndeadPeople/default.nix23
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/stable.nix34
-rw-r--r--nixpkgs/pkgs/games/cataclysm-dda/wrapper.nix47
-rw-r--r--nixpkgs/pkgs/games/chiaki/default.nix8
-rw-r--r--nixpkgs/pkgs/games/chocolate-doom/default.nix4
-rw-r--r--nixpkgs/pkgs/games/cockatrice/default.nix4
-rw-r--r--nixpkgs/pkgs/games/crawl/crawl_purify.patch43
-rw-r--r--nixpkgs/pkgs/games/crawl/default.nix4
-rw-r--r--nixpkgs/pkgs/games/crispy-doom/default.nix14
-rw-r--r--nixpkgs/pkgs/games/curseofwar/default.nix18
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/default.nix6
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/dfhack/default.nix29
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/themes/themes.json54
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/twbt/default.nix13
-rw-r--r--nixpkgs/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in2
-rw-r--r--nixpkgs/pkgs/games/eduke32/default.nix2
-rw-r--r--nixpkgs/pkgs/games/eidolon/default.nix2
-rw-r--r--nixpkgs/pkgs/games/empty-epsilon/default.nix8
-rw-r--r--nixpkgs/pkgs/games/endgame-singularity/default.nix58
-rw-r--r--nixpkgs/pkgs/games/exult/arch.patch123
-rw-r--r--nixpkgs/pkgs/games/exult/default.nix15
-rw-r--r--nixpkgs/pkgs/games/factorio/default.nix29
-rw-r--r--nixpkgs/pkgs/games/flightgear/default.nix8
-rw-r--r--nixpkgs/pkgs/games/frogatto/default.nix2
-rw-r--r--nixpkgs/pkgs/games/frotz/default.nix33
-rw-r--r--nixpkgs/pkgs/games/gambatte/default.nix10
-rw-r--r--nixpkgs/pkgs/games/gargoyle/default.nix9
-rw-r--r--nixpkgs/pkgs/games/gemrb/default.nix19
-rw-r--r--nixpkgs/pkgs/games/gnome-hexgl/default.nix10
-rw-r--r--nixpkgs/pkgs/games/gzdoom/default.nix130
-rw-r--r--nixpkgs/pkgs/games/hedgewars/default.nix9
-rw-r--r--nixpkgs/pkgs/games/hyperrogue/default.nix4
-rw-r--r--nixpkgs/pkgs/games/instead/default.nix9
-rw-r--r--nixpkgs/pkgs/games/katago/default.nix70
-rw-r--r--nixpkgs/pkgs/games/klavaro/default.nix5
-rw-r--r--nixpkgs/pkgs/games/koboredux/default.nix87
-rw-r--r--nixpkgs/pkgs/games/left4gore/default.nix48
-rw-r--r--nixpkgs/pkgs/games/legendary-gl/default.nix30
-rw-r--r--nixpkgs/pkgs/games/megaglest/default.nix4
-rw-r--r--nixpkgs/pkgs/games/minecraft-server/default.nix6
-rw-r--r--nixpkgs/pkgs/games/minecraft/default.nix8
-rw-r--r--nixpkgs/pkgs/games/minetest/default.nix10
-rw-r--r--nixpkgs/pkgs/games/mnemosyne/default.nix4
-rw-r--r--nixpkgs/pkgs/games/mudlet/default.nix4
-rw-r--r--nixpkgs/pkgs/games/multimc/default.nix3
-rw-r--r--nixpkgs/pkgs/games/ninvaders/default.nix2
-rw-r--r--nixpkgs/pkgs/games/openjk/default.nix6
-rw-r--r--nixpkgs/pkgs/games/openmw/tes3mp.nix17
-rw-r--r--nixpkgs/pkgs/games/openrct2/default.nix21
-rw-r--r--nixpkgs/pkgs/games/openttd/default.nix4
-rw-r--r--nixpkgs/pkgs/games/openttd/jgrpp.nix13
-rw-r--r--nixpkgs/pkgs/games/openxray/default.nix10
-rw-r--r--nixpkgs/pkgs/games/osu-lazer/bypass-tamper-detection.patch23
-rw-r--r--nixpkgs/pkgs/games/osu-lazer/default.nix111
-rw-r--r--nixpkgs/pkgs/games/osu-lazer/deps.nix1517
-rwxr-xr-xnixpkgs/pkgs/games/osu-lazer/update.sh58
-rw-r--r--nixpkgs/pkgs/games/papermc/default.nix29
-rw-r--r--nixpkgs/pkgs/games/pentobi/default.nix4
-rw-r--r--nixpkgs/pkgs/games/runelite/default.nix2
-rw-r--r--nixpkgs/pkgs/games/sfrotz/default.nix69
-rw-r--r--nixpkgs/pkgs/games/shattered-pixel-dungeon/default.nix29
-rw-r--r--nixpkgs/pkgs/games/sm64ex/default.nix69
-rw-r--r--nixpkgs/pkgs/games/spring/springlobby.nix4
-rw-r--r--nixpkgs/pkgs/games/steam/default.nix5
-rw-r--r--nixpkgs/pkgs/games/steam/fhsenv.nix (renamed from nixpkgs/pkgs/games/steam/chrootenv.nix)15
-rw-r--r--nixpkgs/pkgs/games/steam/runtime.nix4
-rw-r--r--nixpkgs/pkgs/games/stockfish/default.nix19
-rw-r--r--nixpkgs/pkgs/games/super-tux-kart/default.nix67
-rw-r--r--nixpkgs/pkgs/games/tdm/default.nix14
-rw-r--r--nixpkgs/pkgs/games/the-powder-toy/default.nix17
-rw-r--r--nixpkgs/pkgs/games/tome2/default.nix2
-rw-r--r--nixpkgs/pkgs/games/tuxpaint/default.nix6
-rw-r--r--nixpkgs/pkgs/games/ultrastardx/default.nix41
-rw-r--r--nixpkgs/pkgs/games/unnethack/default.nix24
-rw-r--r--nixpkgs/pkgs/games/uqm/default.nix4
-rw-r--r--nixpkgs/pkgs/games/ut2004/wrapper.nix2
-rw-r--r--nixpkgs/pkgs/games/vassal/default.nix4
-rw-r--r--nixpkgs/pkgs/games/vdrift/default.nix4
-rw-r--r--nixpkgs/pkgs/games/wesnoth/default.nix4
-rw-r--r--nixpkgs/pkgs/games/wyvern/cargo-lock.patch (renamed from nixpkgs/pkgs/applications/science/misc/rink/cargo-lock.patch)2243
-rw-r--r--nixpkgs/pkgs/games/wyvern/default.nix36
-rw-r--r--nixpkgs/pkgs/games/xcowsay/default.nix40
-rw-r--r--nixpkgs/pkgs/games/zandronum/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/autotiling/default.nix23
-rw-r--r--nixpkgs/pkgs/misc/cbeams/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/cups/drivers/cups-bjnp/default.nix6
-rw-r--r--nixpkgs/pkgs/misc/cups/drivers/hl1210w/default.nix62
-rw-r--r--nixpkgs/pkgs/misc/drivers/epkowa/default.nix12
-rw-r--r--nixpkgs/pkgs/misc/drivers/epson-escpr2/default.nix10
-rw-r--r--nixpkgs/pkgs/misc/drivers/hplip/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/drivers/sc-controller/default.nix3
-rw-r--r--nixpkgs/pkgs/misc/drivers/xboxdrv/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/drivers/xow/default.nix18
-rw-r--r--nixpkgs/pkgs/misc/emulators/ccemux/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/emulators/dosbox/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/emulators/emu2/default.nix23
-rw-r--r--nixpkgs/pkgs/misc/emulators/gxemul/default.nix22
-rw-r--r--nixpkgs/pkgs/misc/emulators/mame/default.nix16
-rw-r--r--nixpkgs/pkgs/misc/emulators/mgba/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/openmsx/custom-nix.mk (renamed from nixpkgs/pkgs/misc/emulators/openmsx/custom-nixos.mk)0
-rw-r--r--nixpkgs/pkgs/misc/emulators/openmsx/default.nix19
-rw-r--r--nixpkgs/pkgs/misc/emulators/pcsx2/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/resim/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/emulators/retroarch/default.nix3
-rw-r--r--nixpkgs/pkgs/misc/emulators/rpcs3/default.nix8
-rw-r--r--nixpkgs/pkgs/misc/emulators/ryujinx/default.nix106
-rw-r--r--nixpkgs/pkgs/misc/emulators/ryujinx/deps.nix1062
-rwxr-xr-xnixpkgs/pkgs/misc/emulators/ryujinx/fetch-deps.sh41
-rw-r--r--nixpkgs/pkgs/misc/emulators/ryujinx/log.patch13
-rw-r--r--nixpkgs/pkgs/misc/emulators/sameboy/default.nix53
-rw-r--r--nixpkgs/pkgs/misc/emulators/simplenes/default.nix33
-rw-r--r--nixpkgs/pkgs/misc/emulators/snes9x-gtk/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/stella/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/emulators/vice/default.nix2
-rw-r--r--nixpkgs/pkgs/misc/emulators/wine/sources.nix9
-rw-r--r--nixpkgs/pkgs/misc/emulators/wine/staging.nix4
-rw-r--r--nixpkgs/pkgs/misc/flashfocus/default.nix28
-rw-r--r--nixpkgs/pkgs/misc/ghostscript/default.nix8
-rw-r--r--nixpkgs/pkgs/misc/hdt/default.nix27
-rw-r--r--nixpkgs/pkgs/misc/logging/beats/6.x.nix4
-rw-r--r--nixpkgs/pkgs/misc/logging/beats/7.x.nix4
-rw-r--r--nixpkgs/pkgs/misc/scrcpy/default.nix10
-rw-r--r--nixpkgs/pkgs/misc/screensavers/light-locker/default.nix3
-rw-r--r--nixpkgs/pkgs/misc/screensavers/pipes/default.nix7
-rw-r--r--nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/screensavers/xscreensaver/default.nix5
-rw-r--r--nixpkgs/pkgs/misc/seafile-shared/default.nix4
-rw-r--r--nixpkgs/pkgs/misc/sndio/default.nix16
-rw-r--r--nixpkgs/pkgs/misc/solfege/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/solfege/texinfo.patch20
-rw-r--r--nixpkgs/pkgs/misc/stabber/default.nix8
-rw-r--r--nixpkgs/pkgs/misc/tmux-plugins/default.nix31
-rw-r--r--nixpkgs/pkgs/misc/uboot/default.nix13
-rwxr-xr-xnixpkgs/pkgs/misc/uq/default.nix1
-rw-r--r--nixpkgs/pkgs/misc/vim-plugins/deprecated.json4
-rw-r--r--nixpkgs/pkgs/misc/vim-plugins/generated.nix2255
-rw-r--r--nixpkgs/pkgs/misc/vim-plugins/overrides.nix308
-rwxr-xr-xnixpkgs/pkgs/misc/vim-plugins/update.py15
-rw-r--r--nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names107
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/cpptools/default.nix10
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/default.nix35
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/python/default.nix15
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json32
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/updateSettings.nix6
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/build-deps/package.json24
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/cmake-build-extension-only.patch45
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/default.nix106
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/reset-cargo-config.patch11
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/vscodeEnv.nix14
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/vscodeEnvTest.nix3
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/vscodeExts2nix.nix12
-rw-r--r--nixpkgs/pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix26
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/discrete-scroll/default.nix35
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/ios-deploy/default.nix35
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/smimesign/default.nix23
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/spacebar/default.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/darwin/yabai/default.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-lib/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-topology-conf/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-ucm-conf/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/alsa-utils/default.nix13
-rw-r--r--nixpkgs/pkgs/os-specific/linux/apparmor/default.nix17
-rw-r--r--nixpkgs/pkgs/os-specific/linux/batman-adv/version.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/bcc/default.nix13
-rw-r--r--nixpkgs/pkgs/os-specific/linux/bpftrace/default.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/btfs/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/busybox/0001-Fix-build-with-glibc-2.31.patch71
-rw-r--r--nixpkgs/pkgs/os-specific/linux/busybox/0001-wget-implement-TLS-verification-with-ENABLE_FEATURE_.patch94
-rw-r--r--nixpkgs/pkgs/os-specific/linux/busybox/default.nix35
-rw-r--r--nixpkgs/pkgs/os-specific/linux/can-isotp/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/checksec/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/conky/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/conspy/default.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/cpuid/default.nix50
-rw-r--r--nixpkgs/pkgs/os-specific/linux/cramfsprogs/default.nix32
-rw-r--r--nixpkgs/pkgs/os-specific/linux/cramfsprogs/include-sysmacros.patch12
-rw-r--r--nixpkgs/pkgs/os-specific/linux/cramfsswap/builder.sh6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/cramfsswap/default.nix15
-rw-r--r--nixpkgs/pkgs/os-specific/linux/crda/default.nix9
-rw-r--r--nixpkgs/pkgs/os-specific/linux/cryptodev/default.nix15
-rw-r--r--nixpkgs/pkgs/os-specific/linux/cryptsetup/default.nix20
-rw-r--r--nixpkgs/pkgs/os-specific/linux/deepin-anything/default.nix22
-rw-r--r--nixpkgs/pkgs/os-specific/linux/device-tree/default.nix27
-rw-r--r--nixpkgs/pkgs/os-specific/linux/device-tree/raspberrypi.nix3
-rw-r--r--nixpkgs/pkgs/os-specific/linux/displaylink/default.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/dmidecode/default.nix46
-rw-r--r--nixpkgs/pkgs/os-specific/linux/dpdk/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/e1000e/default.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/earlyoom/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ell/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/evdi/default.nix9
-rw-r--r--nixpkgs/pkgs/os-specific/linux/eventstat/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/exfat/default.nix13
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ffado/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firejail/default.nix17
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/firmware-manager/default.nix38
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/fwupd/default.nix141
-rw-r--r--nixpkgs/pkgs/os-specific/linux/firmware/system76-firmware/default.nix39
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fnotifystat/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/forkstat/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fscrypt/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fswebcam/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fuse/common.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fuse/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/fwts/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/gobi_loader/default.nix28
-rw-r--r--nixpkgs/pkgs/os-specific/linux/guvcview/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/hwdata/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/ifmetric/default.nix36
-rw-r--r--nixpkgs/pkgs/os-specific/linux/intel-compute-runtime/default.nix11
-rw-r--r--nixpkgs/pkgs/os-specific/linux/intel-compute-runtime/etc-dir.patch15
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iproute/default.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iproute/mptcp.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iptables/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iptstate/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iputils/default.nix27
-rw-r--r--nixpkgs/pkgs/os-specific/linux/irqbalance/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iw/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/iwd/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/jool/source.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/gpio-utils.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix41
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix41
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix15
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kernel/linux-zen.nix23
-rwxr-xr-xnixpkgs/pkgs/os-specific/linux/kernel/update-rt.sh77
-rwxr-xr-xnixpkgs/pkgs/os-specific/linux/kernel/update.sh3
-rw-r--r--nixpkgs/pkgs/os-specific/linux/klibc/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/klibc/shrunk.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kmod-blacklist-ubuntu/default.nix1
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kmod-debian-aliases/default.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kmod/default.nix16
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kmod/no-name-field.patch24
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kmscon/default.nix43
-rw-r--r--nixpkgs/pkgs/os-specific/linux/kmscon/kmscon-8-glibc-2.26.patch25
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libaio/default.nix11
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libbpf/default.nix33
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libfabric/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/libvolume_id/default.nix9
-rw-r--r--nixpkgs/pkgs/os-specific/linux/linuxptp/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/lockdep/default.nix43
-rw-r--r--nixpkgs/pkgs/os-specific/linux/lvm2/default.nix125
-rw-r--r--nixpkgs/pkgs/os-specific/linux/lvm2/default.upstream4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/lxc/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/microcode/amd.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/mmc-utils/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/multipath-tools/default.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/multipath-tools/json-c-0.14.patch21
-rw-r--r--nixpkgs/pkgs/os-specific/linux/musl/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/mwprocapture/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/netatop/default.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nftables/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/numworks-udev-rules/50-numworks-calculator.rules2
-rw-r--r--nixpkgs/pkgs/os-specific/linux/numworks-udev-rules/default.nix21
-rwxr-xr-xnixpkgs/pkgs/os-specific/linux/numworks-udev-rules/update.sh3
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix39
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nvidia-x11/generic.nix17
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nvidia-x11/persistenced.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/nvidia-x11/settings.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix58
-rw-r--r--nixpkgs/pkgs/os-specific/linux/open-iscsi/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/openvswitch/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pam_gnupg/default.nix32
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pam_p11/default.nix24
-rw-r--r--nixpkgs/pkgs/os-specific/linux/pcm/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/piper/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/powerstat/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/powertop/default.nix11
-rw-r--r--nixpkgs/pkgs/os-specific/linux/powertop/fix-vertical-scrolling.patch13
-rw-r--r--nixpkgs/pkgs/os-specific/linux/r8125/default.nix6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rdma-core/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rfkill/default.nix20
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rfkill/udev.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/linux/roccat-tools/default.nix3
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rtl8192eu/default.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rtl8821ce/default.nix8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rtl8821cu/default.nix37
-rw-r--r--nixpkgs/pkgs/os-specific/linux/rtlwifi_new/default.nix3
-rw-r--r--nixpkgs/pkgs/os-specific/linux/sd-switch/default.nix26
-rw-r--r--nixpkgs/pkgs/os-specific/linux/smemstat/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/sysdig/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/sysklogd/default.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/linux/syslinux/default.nix13
-rw-r--r--nixpkgs/pkgs/os-specific/linux/system76-acpi/default.nix43
-rw-r--r--nixpkgs/pkgs/os-specific/linux/system76-io/default.nix38
-rw-r--r--nixpkgs/pkgs/os-specific/linux/system76/default.nix44
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch6
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch24
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch107
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch48
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch28
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0012-Install-default-configuration-into-out-share-factory.patch71
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0013-inherit-systemd-environment-when-calling-generators.patch8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0014-add-rootprefix-to-lookup-dir-paths.patch4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0015-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0016-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch8
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0017-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/0018-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/cryptsetup-generator.nix34
-rw-r--r--nixpkgs/pkgs/os-specific/linux/systemd/default.nix92
-rw-r--r--nixpkgs/pkgs/os-specific/linux/sysvinit/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/targetcli/default.nix10
-rw-r--r--nixpkgs/pkgs/os-specific/linux/tiscamera/default.nix42
-rw-r--r--nixpkgs/pkgs/os-specific/linux/turbostat/default.nix3
-rw-r--r--nixpkgs/pkgs/os-specific/linux/undervolt/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/util-linux/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/v4l-utils/default.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/linux/wireguard/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/xf86-video-nested/default.nix7
-rw-r--r--nixpkgs/pkgs/os-specific/linux/xpadneo/default.nix43
-rw-r--r--nixpkgs/pkgs/os-specific/linux/zenmonitor/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/zenpower/default.nix4
-rw-r--r--nixpkgs/pkgs/os-specific/linux/zfs/default.nix24
-rw-r--r--nixpkgs/pkgs/os-specific/windows/mingw-w64/default.nix5
-rw-r--r--nixpkgs/pkgs/os-specific/windows/mingw-w64/headers.nix2
-rw-r--r--nixpkgs/pkgs/os-specific/windows/mingw-w64/osvi.patch14
-rw-r--r--nixpkgs/pkgs/pkgs-lib/default.nix11
-rw-r--r--nixpkgs/pkgs/pkgs-lib/formats.nix109
-rw-r--r--nixpkgs/pkgs/pkgs-lib/tests/default.nix7
-rw-r--r--nixpkgs/pkgs/pkgs-lib/tests/formats.nix157
-rw-r--r--nixpkgs/pkgs/servers/adguardhome/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/apache-kafka/default.nix13
-rw-r--r--nixpkgs/pkgs/servers/atlassian/confluence.nix4
-rw-r--r--nixpkgs/pkgs/servers/atlassian/jira.nix4
-rw-r--r--nixpkgs/pkgs/servers/bazarr/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/blockbook/default.nix51
-rw-r--r--nixpkgs/pkgs/servers/caddy/default.nix28
-rw-r--r--nixpkgs/pkgs/servers/caddy/v1.nix38
-rw-r--r--nixpkgs/pkgs/servers/caddy/v2.nix23
-rw-r--r--nixpkgs/pkgs/servers/cayley/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/clickhouse/default.nix46
-rw-r--r--nixpkgs/pkgs/servers/code-server/default.nix187
-rw-r--r--nixpkgs/pkgs/servers/computing/slurm/common-env-echo.patch13
-rw-r--r--nixpkgs/pkgs/servers/computing/slurm/default.nix27
-rw-r--r--nixpkgs/pkgs/servers/computing/slurm/pmix-configure.patch13
-rw-r--r--nixpkgs/pkgs/servers/computing/storm/default.nix32
-rw-r--r--nixpkgs/pkgs/servers/consul/default.nix9
-rw-r--r--nixpkgs/pkgs/servers/coturn/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/demoit/default.nix12
-rw-r--r--nixpkgs/pkgs/servers/dex/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/dgraph/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/dico/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/dict/default.nix18
-rw-r--r--nixpkgs/pkgs/servers/dns/bind/default.nix23
-rw-r--r--nixpkgs/pkgs/servers/dns/bind/dont-keep-configure-flags.patch47
-rw-r--r--nixpkgs/pkgs/servers/dns/coredns/default.nix12
-rw-r--r--nixpkgs/pkgs/servers/dns/dnsdist/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/dns/knot-dns/default.nix16
-rw-r--r--nixpkgs/pkgs/servers/dns/knot-dns/runtime-deps.patch14
-rw-r--r--nixpkgs/pkgs/servers/dns/knot-resolver/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/dns/ncdns/default.nix40
-rw-r--r--nixpkgs/pkgs/servers/dns/ncdns/deps.nix309
-rw-r--r--nixpkgs/pkgs/servers/dns/ncdns/fix-tpl-path.patch27
-rw-r--r--nixpkgs/pkgs/servers/dns/nsd/default.nix12
-rw-r--r--nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/documize-community/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/echoip/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/etcd/3.4.nix10
-rw-r--r--nixpkgs/pkgs/servers/etcd/default.nix9
-rw-r--r--nixpkgs/pkgs/servers/fcgiwrap/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/freeradius/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/ftp/bftpd/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/ftp/pure-ftpd/default.nix15
-rw-r--r--nixpkgs/pkgs/servers/gemini/molly-brown/default.nix26
-rw-r--r--nixpkgs/pkgs/servers/gemini/molly-brown/deps.nix12
-rw-r--r--nixpkgs/pkgs/servers/gobetween/default.nix27
-rw-r--r--nixpkgs/pkgs/servers/gobetween/gomod.patch30
-rw-r--r--nixpkgs/pkgs/servers/gonic/default.nix59
-rw-r--r--nixpkgs/pkgs/servers/gonic/deps.nix795
-rw-r--r--nixpkgs/pkgs/servers/gortr/default.nix9
-rw-r--r--nixpkgs/pkgs/servers/gotify/default.nix13
-rw-r--r--nixpkgs/pkgs/servers/gotify/package.json63
-rw-r--r--nixpkgs/pkgs/servers/gotify/source-sha.nix2
-rwxr-xr-xnixpkgs/pkgs/servers/gotify/update.sh6
-rw-r--r--nixpkgs/pkgs/servers/gotify/vendor-sha.nix2
-rw-r--r--nixpkgs/pkgs/servers/gotify/version.nix2
-rw-r--r--nixpkgs/pkgs/servers/gotify/yarndeps.nix2928
-rw-r--r--nixpkgs/pkgs/servers/gpsd/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/hashi-ui/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/hasura/cli.nix7
-rw-r--r--nixpkgs/pkgs/servers/hasura/default.nix63
-rw-r--r--nixpkgs/pkgs/servers/hasura/dependent-map.nix13
-rw-r--r--nixpkgs/pkgs/servers/hasura/dependent-sum.nix10
-rw-r--r--nixpkgs/pkgs/servers/hasura/ghc-heap-view.nix18
-rw-r--r--nixpkgs/pkgs/servers/hasura/immortal.nix17
-rw-r--r--nixpkgs/pkgs/servers/hasura/network-uri.nix18
-rw-r--r--nixpkgs/pkgs/servers/hasura/these.nix25
-rw-r--r--nixpkgs/pkgs/servers/hitch/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch48
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/component-packages.nix578
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/default.nix46
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/frontend.nix4
-rwxr-xr-xnixpkgs/pkgs/servers/home-assistant/parse-requirements.py22
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/relax-dependencies.patch21
-rw-r--r--nixpkgs/pkgs/servers/home-assistant/test-timeout.patch13
-rwxr-xr-xnixpkgs/pkgs/servers/home-assistant/update.sh34
-rw-r--r--nixpkgs/pkgs/servers/http/apache-httpd/2.4.nix5
-rw-r--r--nixpkgs/pkgs/servers/http/couchdb/3.nix38
-rw-r--r--nixpkgs/pkgs/servers/http/hiawatha/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/http/jetty/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/http/nginx/generic.nix3
-rw-r--r--nixpkgs/pkgs/servers/http/nginx/mainline.nix4
-rw-r--r--nixpkgs/pkgs/servers/http/nginx/modules.nix139
-rw-r--r--nixpkgs/pkgs/servers/http/openresty/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/http/pshs/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/http/tomcat/tomcat-native.nix4
-rw-r--r--nixpkgs/pkgs/servers/http/unit/default.nix19
-rw-r--r--nixpkgs/pkgs/servers/hydron/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/hylafaxplus/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/icingaweb2/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/imgproxy/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/irc/ngircd/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/irc/robustirc-bridge/default.nix29
-rw-r--r--nixpkgs/pkgs/servers/isso/default.nix26
-rw-r--r--nixpkgs/pkgs/servers/jackett/default.nix44
-rw-r--r--nixpkgs/pkgs/servers/jellyfin/10.5.x.nix61
-rw-r--r--nixpkgs/pkgs/servers/jellyfin/default.nix11
-rw-r--r--nixpkgs/pkgs/servers/jicofo/default.nix43
-rw-r--r--nixpkgs/pkgs/servers/jicofo/logging.properties-journal10
-rw-r--r--nixpkgs/pkgs/servers/jitsi-videobridge/default.nix47
-rw-r--r--nixpkgs/pkgs/servers/jitsi-videobridge/logging.properties-journal7
-rw-r--r--nixpkgs/pkgs/servers/kapow/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/keycloak/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/limesurvey/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/livepeer/default.nix24
-rw-r--r--nixpkgs/pkgs/servers/livepeer/deps.nix20
-rw-r--r--nixpkgs/pkgs/servers/mail/dovecot/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/mail/exim/default.nix22
-rw-r--r--nixpkgs/pkgs/servers/mail/mailman/default.nix15
-rw-r--r--nixpkgs/pkgs/servers/mail/mailman/log-stderr.patch13
-rw-r--r--nixpkgs/pkgs/servers/mail/opensmtpd/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/mail/postfix/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/martin/default.nix27
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix1034
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/package.json2
-rw-r--r--nixpkgs/pkgs/servers/matterbridge/default.nix9
-rw-r--r--nixpkgs/pkgs/servers/mattermost/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/mautrix-telegram/default.nix25
-rw-r--r--nixpkgs/pkgs/servers/mautrix-whatsapp/default.nix20
-rw-r--r--nixpkgs/pkgs/servers/mbtileserver/default.nix23
-rw-r--r--nixpkgs/pkgs/servers/meguca/default.nix52
-rw-r--r--nixpkgs/pkgs/servers/meguca/server_deps.nix390
-rw-r--r--nixpkgs/pkgs/servers/mesos-dns/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/metabase/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/microserver/default.nix22
-rw-r--r--nixpkgs/pkgs/servers/miniflux/default.nix18
-rw-r--r--nixpkgs/pkgs/servers/minio/default.nix27
-rw-r--r--nixpkgs/pkgs/servers/mirrorbits/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/misc/navidrome/default.nix37
-rw-r--r--nixpkgs/pkgs/servers/misc/oven-media-engine/default.nix69
-rw-r--r--nixpkgs/pkgs/servers/monitoring/alertmanager-bot/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/do-agent/default.nix12
-rw-r--r--nixpkgs/pkgs/servers/monitoring/grafana/default.nix12
-rw-r--r--nixpkgs/pkgs/servers/monitoring/kapacitor/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/loki/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/monitoring/mtail/default.nix11
-rw-r--r--nixpkgs/pkgs/servers/monitoring/munin/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/nagios/default.nix3
-rw-r--r--nixpkgs/pkgs/servers/monitoring/plugins/wmiplus/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix9
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix3
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter_deps.nix336
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/bind-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix10
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/collectd-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/consul-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/cups-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix8
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/fritzbox-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/json-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/keylight-exporter.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/lnd-exporter.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/mail-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix8
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/modemmanager-exporter.nix26
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/nextcloud-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/nginx-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix1
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/node-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/postfix-exporter.nix8
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/postgres-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/process-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/process-exporter_deps.nix156
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/snmp-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/tor-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/varnish-exporter.nix6
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/webui-package.json2
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix24
-rw-r--r--nixpkgs/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix4
-rw-r--r--nixpkgs/pkgs/servers/monitoring/sensu-go/default.nix12
-rw-r--r--nixpkgs/pkgs/servers/monitoring/telegraf/default.nix21
-rw-r--r--nixpkgs/pkgs/servers/monitoring/thanos/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/monitoring/timescale-prometheus/default.nix30
-rw-r--r--nixpkgs/pkgs/servers/monitoring/unifi-poller/default.nix31
-rw-r--r--nixpkgs/pkgs/servers/monitoring/zabbix/server.nix11
-rw-r--r--nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix10
-rw-r--r--nixpkgs/pkgs/servers/monitoring/zabbix/web.nix2
-rw-r--r--nixpkgs/pkgs/servers/mpd/clientlib.nix4
-rw-r--r--nixpkgs/pkgs/servers/mpd/default.nix22
-rw-r--r--nixpkgs/pkgs/servers/mqtt/mosquitto/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/nats-server/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/nats-streaming-server/default.nix1
-rw-r--r--nixpkgs/pkgs/servers/nextcloud/default.nix9
-rw-r--r--nixpkgs/pkgs/servers/nfs-ganesha/default.nix48
-rw-r--r--nixpkgs/pkgs/servers/nfs-ganesha/sysstatedir.patch15
-rw-r--r--nixpkgs/pkgs/servers/nginx-sso/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/nosql/influxdb/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/nosql/mongodb/asio-no-experimental-string-view-4-2.patch22
-rw-r--r--nixpkgs/pkgs/servers/nosql/mongodb/forget-build-dependencies-4-2.patch36
-rw-r--r--nixpkgs/pkgs/servers/nosql/mongodb/forget-build-dependencies.patch3
-rw-r--r--nixpkgs/pkgs/servers/nosql/mongodb/mongodb.nix30
-rw-r--r--nixpkgs/pkgs/servers/nosql/mongodb/v4_2.nix17
-rw-r--r--nixpkgs/pkgs/servers/nosql/redis/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix18
-rw-r--r--nixpkgs/pkgs/servers/nosql/victoriametrics/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/oauth2_proxy/default.nix20
-rw-r--r--nixpkgs/pkgs/servers/oauth2_proxy/deps.nix615
-rw-r--r--nixpkgs/pkgs/servers/openafs/1.6/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/openafs/1.6/module.nix4
-rw-r--r--nixpkgs/pkgs/servers/openafs/1.6/srcs.nix6
-rw-r--r--nixpkgs/pkgs/servers/openafs/1.8/module.nix16
-rw-r--r--nixpkgs/pkgs/servers/openafs/1.8/srcs.nix10
-rw-r--r--nixpkgs/pkgs/servers/openbgpd/default.nix45
-rw-r--r--nixpkgs/pkgs/servers/pinnwand/default.nix24
-rw-r--r--nixpkgs/pkgs/servers/pinnwand/steck.nix31
-rw-r--r--nixpkgs/pkgs/servers/plex/raw.nix4
-rw-r--r--nixpkgs/pkgs/servers/pounce/default.nix9
-rw-r--r--nixpkgs/pkgs/servers/pulseaudio/default.nix5
-rw-r--r--nixpkgs/pkgs/servers/radarr/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/radicale/2.x.nix (renamed from nixpkgs/pkgs/servers/radicale/default.nix)6
-rw-r--r--nixpkgs/pkgs/servers/radicale/3.x.nix38
-rw-r--r--nixpkgs/pkgs/servers/rippled/default.nix116
-rw-r--r--nixpkgs/pkgs/servers/roon-server/default.nix101
-rw-r--r--nixpkgs/pkgs/servers/roundcube/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/roundcube/plugins/carddav/default.nix11
-rw-r--r--nixpkgs/pkgs/servers/roundcube/plugins/plugins.nix1
-rw-r--r--nixpkgs/pkgs/servers/routinator/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/sabnzbd/default.nix24
-rw-r--r--nixpkgs/pkgs/servers/samba/4.x.nix16
-rw-r--r--nixpkgs/pkgs/servers/search/elasticsearch/plugins.nix17
-rw-r--r--nixpkgs/pkgs/servers/search/groonga/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/search/solr/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/ser2net/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sickbeard/sickgear.nix4
-rw-r--r--nixpkgs/pkgs/servers/skydns/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/sonarr/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/sozu/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/sql/cockroachdb/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/dolt/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/sql/mariadb/cmake-without-plugin-auth-pam.patch12
-rw-r--r--nixpkgs/pkgs/servers/sql/mariadb/default.nix13
-rw-r--r--nixpkgs/pkgs/servers/sql/monetdb/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/percona/5.6.x.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/pgbouncer/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/default.nix32
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/age.nix65
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pgroonga.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/pgrouting.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix29
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/plv8.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/postgis.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/smlar.nix30
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix4
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/packages.nix8
-rw-r--r--nixpkgs/pkgs/servers/sql/postgresql/patches/socketdir-in-run-13.patch13
-rw-r--r--nixpkgs/pkgs/servers/squid/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/sslh/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/tacacsplus/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/tailscale/default.nix15
-rw-r--r--nixpkgs/pkgs/servers/tegola/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/teleport/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/traefik/default.nix17
-rw-r--r--nixpkgs/pkgs/servers/trezord/default.nix2
-rw-r--r--nixpkgs/pkgs/servers/trickster/trickster.nix5
-rw-r--r--nixpkgs/pkgs/servers/tt-rss/theme-feedly/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/ttyd/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/tvheadend/default.nix19
-rw-r--r--nixpkgs/pkgs/servers/udpt/default.nix41
-rw-r--r--nixpkgs/pkgs/servers/unifi/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/urserver/default.nix45
-rw-r--r--nixpkgs/pkgs/servers/uwsgi/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/codimd/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/cryptpad/bower-packages.nix22
-rw-r--r--nixpkgs/pkgs/servers/web-apps/cryptpad/default.nix3
-rwxr-xr-xnixpkgs/pkgs/servers/web-apps/cryptpad/generate.sh2
-rw-r--r--nixpkgs/pkgs/servers/web-apps/cryptpad/node-packages-generated.nix124
-rw-r--r--nixpkgs/pkgs/servers/web-apps/cryptpad/node-packages.json2
-rw-r--r--nixpkgs/pkgs/servers/web-apps/cryptpad/node-packages.nix2
-rw-r--r--nixpkgs/pkgs/servers/web-apps/dokuwiki/default.nix6
-rw-r--r--nixpkgs/pkgs/servers/web-apps/jitsi-meet/default.nix34
-rw-r--r--nixpkgs/pkgs/servers/web-apps/matomo/default.nix8
-rw-r--r--nixpkgs/pkgs/servers/web-apps/mediawiki/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/moodle/default.nix45
-rw-r--r--nixpkgs/pkgs/servers/web-apps/moodle/moodle-utils.nix32
-rw-r--r--nixpkgs/pkgs/servers/web-apps/rss-bridge/default.nix33
-rw-r--r--nixpkgs/pkgs/servers/web-apps/searx/default.nix24
-rw-r--r--nixpkgs/pkgs/servers/web-apps/shiori/default.nix4
-rw-r--r--nixpkgs/pkgs/servers/web-apps/sogo/default.nix13
-rw-r--r--nixpkgs/pkgs/servers/web-apps/wallabag/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/web-apps/wordpress/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/webmetro/default.nix1
-rwxr-xr-xnixpkgs/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl2
-rw-r--r--nixpkgs/pkgs/servers/x11/xorg/overrides.nix47
-rw-r--r--nixpkgs/pkgs/servers/xandikos/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/xmpp/biboumi/default.nix7
-rw-r--r--nixpkgs/pkgs/servers/xmpp/prosody/default.nix10
-rw-r--r--nixpkgs/pkgs/servers/zigbee2mqtt/default.nix35
-rw-r--r--nixpkgs/pkgs/servers/zigbee2mqtt/node-packages.nix9625
-rw-r--r--nixpkgs/pkgs/servers/zigbee2mqtt/node.nix17
-rwxr-xr-xnixpkgs/pkgs/servers/zigbee2mqtt/update.sh30
-rw-r--r--nixpkgs/pkgs/servers/zoneminder/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/bash/bash-5.0-patches.nix1
-rw-r--r--nixpkgs/pkgs/shells/bash/bash-completion/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/dash/0001-fix-dirent64-et-al-on-darwin.patch41
-rw-r--r--nixpkgs/pkgs/shells/dash/default.nix11
-rw-r--r--nixpkgs/pkgs/shells/elvish/default.nix17
-rw-r--r--nixpkgs/pkgs/shells/fish/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/ion/default.nix1
-rw-r--r--nixpkgs/pkgs/shells/liquidprompt/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/nushell/default.nix17
-rw-r--r--nixpkgs/pkgs/shells/oil/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/rssh/default.nix97
-rw-r--r--nixpkgs/pkgs/shells/rssh/fix-config-path.patch12
-rw-r--r--nixpkgs/pkgs/shells/xonsh/default.nix5
-rw-r--r--nixpkgs/pkgs/shells/zsh/antibody/default.nix10
-rw-r--r--nixpkgs/pkgs/shells/zsh/grml-zsh-config/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix99
-rwxr-xr-xnixpkgs/pkgs/shells/zsh/oh-my-zsh/update.sh1
-rw-r--r--nixpkgs/pkgs/shells/zsh/pure-prompt/default.nix6
-rw-r--r--nixpkgs/pkgs/shells/zsh/spaceship-prompt/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-completions/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-history/default.nix5
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-nix-shell/default.nix8
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/default.nix4
-rw-r--r--nixpkgs/pkgs/shells/zsh/zsh-you-should-use/default.nix4
-rw-r--r--nixpkgs/pkgs/stdenv/cross/default.nix3
-rw-r--r--nixpkgs/pkgs/stdenv/generic/default.nix7
-rw-r--r--nixpkgs/pkgs/stdenv/generic/make-derivation.nix37
-rw-r--r--nixpkgs/pkgs/stdenv/generic/setup.sh11
-rw-r--r--nixpkgs/pkgs/test/haskell-shellFor/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/X11/alttab/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/X11/ckbcomp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/X11/dex/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/X11/grobi/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/X11/nx-libs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/X11/wmutils-libwm/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/X11/xidlehook/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/X11/xpra/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/X11/xpra/libfakeXinerama.nix3
-rw-r--r--nixpkgs/pkgs/tools/X11/xsecurelock/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/X11/xwallpaper/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/admin/acme.sh/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/ansible/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/admin/aws-vault/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/admin/aws_shell/default.nix44
-rw-r--r--nixpkgs/pkgs/tools/admin/awscli/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/awscli2/default.nix86
-rw-r--r--nixpkgs/pkgs/tools/admin/awsweeper/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/admin/azure-cli/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix166
-rw-r--r--nixpkgs/pkgs/tools/admin/berglas/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/certbot/0001-Don-t-use-distutils.StrictVersion-that-cannot-handle.patch58
-rw-r--r--nixpkgs/pkgs/tools/admin/certigo/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/chamber/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/admin/clair/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/cli53/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/admin/cli53/deps.nix93
-rw-r--r--nixpkgs/pkgs/tools/admin/docker-credential-gcr/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/eksctl/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/admin/exoscale-cli/deps.nix876
-rw-r--r--nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/admin/iamy/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/lego/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/admin/lexicon/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/lxd/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/admin/mycli/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/admin/nomachine-client/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/admin/procs/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/admin/pulumi/data.nix170
-rw-r--r--nixpkgs/pkgs/tools/admin/pulumi/default.nix1
-rwxr-xr-x[-rw-r--r--]nixpkgs/pkgs/tools/admin/pulumi/update.sh60
-rw-r--r--nixpkgs/pkgs/tools/admin/salt/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/admin/salt/fix-libcrypto-loading.patch15
-rw-r--r--nixpkgs/pkgs/tools/admin/salt/pepper/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/admin/scaleway-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/archivers/bomutils/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/archivers/innoextract/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/archivers/maxcso/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/archivers/p7zip/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/archivers/undmg/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/archivers/undmg/setup-hook.sh2
-rw-r--r--nixpkgs/pkgs/tools/archivers/wimlib/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/abcm2ps/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/abcmidi/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/compatibility-with-breaking-changes-to-the-ast-module.patch55
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/extrafiles-plugin.nix30
-rw-r--r--nixpkgs/pkgs/tools/audio/beets/mutagen-1.43.patch17
-rw-r--r--nixpkgs/pkgs/tools/audio/bpm-tools/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/audio/google-music-scripts/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/audio/liquidsoap/full.nix24
-rw-r--r--nixpkgs/pkgs/tools/audio/mpd-mpris/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/opl3bankeditor/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/opl3bankeditor/opn2bankeditor.nix11
-rw-r--r--nixpkgs/pkgs/tools/audio/playerctl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/audio/qastools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/bup/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/backup/dar/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/backup/diskrsync/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/dump/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/backup/duplicity/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/backup/grab-site/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/backup/kopia/default.nix43
-rw-r--r--nixpkgs/pkgs/tools/backup/monolith/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/backup/percona-xtrabackup/2_4.nix6
-rw-r--r--nixpkgs/pkgs/tools/backup/percona-xtrabackup/8_0.nix14
-rw-r--r--nixpkgs/pkgs/tools/backup/percona-xtrabackup/default.nix45
-rw-r--r--nixpkgs/pkgs/tools/backup/percona-xtrabackup/generic.nix58
-rw-r--r--nixpkgs/pkgs/tools/backup/rdedup/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/backup/restic/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/backup/wal-g/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/backup/zfs-prune-snapshots/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix96
-rw-r--r--nixpkgs/pkgs/tools/cd-dvd/isolyzer/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/compression/brotli/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/compression/bzip2/1_1.nix45
-rw-r--r--nixpkgs/pkgs/tools/compression/lzfse/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/compression/pixz/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/compression/zstd/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/filesystems/avfs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/bashmount/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/bcache-tools/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/filesystems/btrfs-heatmap/default.nix46
-rw-r--r--nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/filesystems/ceph/0000-fix-SPDK-build-env.patch12
-rw-r--r--nixpkgs/pkgs/tools/filesystems/ceph/default.nix59
-rw-r--r--nixpkgs/pkgs/tools/filesystems/f2fs-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/f3/default.nix53
-rw-r--r--nixpkgs/pkgs/tools/filesystems/fatsort/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/file-rename/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix43
-rw-r--r--nixpkgs/pkgs/tools/filesystems/gocryptfs/deps.nix75
-rw-r--r--nixpkgs/pkgs/tools/filesystems/idsk/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/lizardfs/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/filesystems/moosefs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/nixpart/0.4/blivet.nix2
-rw-r--r--nixpkgs/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/orangefs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/rar2fs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/reiser4progs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/s3fs/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/securefs/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/filesystems/squashfs-tools-ng/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/filesystems/ubidump/default.nix40
-rw-r--r--nixpkgs/pkgs/tools/filesystems/wiimms-iso-tools/default.nix37
-rw-r--r--nixpkgs/pkgs/tools/filesystems/wiimms-iso-tools/fix-paths.diff12
-rw-r--r--nixpkgs/pkgs/tools/graphics/amber/default.nix95
-rw-r--r--nixpkgs/pkgs/tools/graphics/asymptote/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/dcraw/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/graphics/dpic/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/graphics/flam3/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/graphics/gifski/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/glxinfo/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/graphics/gmic/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/gnuplot/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/grim/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/gromit-mpx/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/graphics/jhead/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/graphics/lepton/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/graphics/lprof/keep-environment.patch2
-rw-r--r--nixpkgs/pkgs/tools/graphics/netpbm/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/graphics/oxipng/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/graphics/scrot/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/graphics/spirv-cross/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/svgbob/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/graphics/svgcleaner/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/graphics/swfdec/default.nix37
-rw-r--r--nixpkgs/pkgs/tools/graphics/vips/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/graphics/viu/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/graphics/wdisplays/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/graphics/yafaray-core/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix55
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/ibus/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/interception-tools/caps2esc.nix20
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/skk/skk-dicts/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/inputmethods/skk/skktools/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/3mux/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/antimicro/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/misc/antimicroX/default.nix44
-rw-r--r--nixpkgs/pkgs/tools/misc/asciinema-scenario/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/misc/barman/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/misc/bashcards/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/bat/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/bdf2psf/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/bdf2sfd/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/misc/birdfont/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/misc/birdfont/xmlbird.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/bmap-tools/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/broot/default.nix63
-rw-r--r--nixpkgs/pkgs/tools/misc/catimg/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/chezmoi/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/misc/cht.sh/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/clipman/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/cloc/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/cloud-sql-proxy/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/cloud-utils/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/clpeak/clpeak-clhpp2.diff72
-rw-r--r--nixpkgs/pkgs/tools/misc/clpeak/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/misc/cod/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/misc/codebraid/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/colorpicker/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/misc/cpuminer/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/misc/dashing/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/misc/dashing/deps.nix112
-rw-r--r--nixpkgs/pkgs/tools/misc/ddcutil/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/debianutils/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/diffoscope/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/dijo/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/misc/direnv/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/misc/discocss/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/misc/diskonaut/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/misc/docui/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/dua/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/misc/duf/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/misc/dust/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/misc/entr/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/envsubst/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/misc/esphome/default.nix (renamed from nixpkgs/pkgs/servers/home-assistant/esphome.nix)17
-rw-r--r--nixpkgs/pkgs/tools/misc/etcher/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/eva/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/exa/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/fd/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/fdupes/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/misc/fet-sh/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/misc/file/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/file/webassembly-format-fix.patch13
-rw-r--r--nixpkgs/pkgs/tools/misc/findutils/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/flashrom/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/fluent-bit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/fontforge/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/misc/fpp/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/fselect/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/fsmon/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/fx_cast/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/fzf/default.nix15
-rw-r--r--nixpkgs/pkgs/tools/misc/g933-utils/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/misc/gammy/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/misc/gawp/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/geekbench/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/misc/git-town/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/misc/go.rice/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/misc/godu/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/misc/godu/go-mod.patch33
-rw-r--r--nixpkgs/pkgs/tools/misc/gotify-cli/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/misc/graylog/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/graylog/plugins.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/gringo/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/grub/2.0x.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/hacksaw/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/misc/hakuneko/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/hashit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/heatseeker/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/hebcal/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/html-proofer/Gemfile.lock12
-rw-r--r--nixpkgs/pkgs/tools/misc/html-proofer/gemset.nix24
-rw-r--r--nixpkgs/pkgs/tools/misc/hyperfine/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/ical2org/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/ili2c/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/intermodal/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/jdiskreport/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/jdupes/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/misc/kak-lsp/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/kargo/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/misc/kdecoration-viewer/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/misc/kepubify/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/latex2html/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/lesspipe/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/lf/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/misc/libgen-cli/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/misc/licensor/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/lnav/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/lnch/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/lokalise2-cli/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/misc/lolcat/Gemfile.lock10
-rw-r--r--nixpkgs/pkgs/tools/misc/lolcat/gemset.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/loop/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/misc/lorri/default.nix38
-rw-r--r--nixpkgs/pkgs/tools/misc/lottieconverter/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/misc/lsd/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/man-db/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/man-db/systemwide-man-db-conf.patch39
-rw-r--r--nixpkgs/pkgs/tools/misc/mbuffer/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/mc/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/mcfly/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/misc/mdbtools/default.nix42
-rw-r--r--nixpkgs/pkgs/tools/misc/miniserve/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/mmake/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/misc/mpdscribble/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/misc/mprime/default.nix47
-rw-r--r--nixpkgs/pkgs/tools/misc/mprime/makefile.patch41
-rw-r--r--nixpkgs/pkgs/tools/misc/mstflint/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/multitail/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/mutagen/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/neofetch/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/nix-direnv/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/nncp/default.nix61
-rw-r--r--nixpkgs/pkgs/tools/misc/noti/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/misc/ntfy/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/opentsdb/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/oppai-ng/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/osm2pgsql/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/misc/ostree/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/misc/ostree/fix-test-paths.patch29
-rw-r--r--nixpkgs/pkgs/tools/misc/otfcc/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/misc/otfcc/fix-aarch64.patch22
-rw-r--r--nixpkgs/pkgs/tools/misc/otfcc/move-makefiles.patch13
-rw-r--r--nixpkgs/pkgs/tools/misc/page/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/pandoc-plantuml-filter/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/misc/parallel/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pg_flame/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pgcenter/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pgmetrics/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/phraseapp-client/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/pistol/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/plantuml/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/powerline-go/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/progress/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pspg/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/psrecord/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/pubs/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/misc/qt5ct/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/rargs/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/misc/remind/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/misc/rmlint/default.nix53
-rw-r--r--nixpkgs/pkgs/tools/misc/rockbox-utility/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/misc/routino/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/sd-mux-ctrl/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/misc/shell-hist/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/silicon/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/skim/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/misc/snapper/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/misc/somafm-cli/default.nix33
-rw-r--r--nixpkgs/pkgs/tools/misc/spigot/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/misc/starship/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/misc/staruml/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/systrayhelper/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/misc/systrayhelper/deps.nix102
-rw-r--r--nixpkgs/pkgs/tools/misc/tealdeer/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/misc/teleconsole/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/misc/teleconsole/deps.nix13
-rw-r--r--nixpkgs/pkgs/tools/misc/tewisay/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/thin-provisioning-tools/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/misc/tmuxp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/topgrade/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/misc/txt2man/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/umlet/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/unicode/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/misc/up/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/upower-notify/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/vector/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/void/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/vttest/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/watchexec/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/websocat/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/misc/wlr-randr/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/misc/wob/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/wootility/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/misc/xvfb-run/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/misc/xxv/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/you-get/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/ytree/default.nix39
-rw-r--r--nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/yubikey-personalization/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/misc/z-lua/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/misc/zabbixctl/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/misc/zoxide/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/networking/amass/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/assh/default.nix31
-rw-r--r--nixpkgs/pkgs/tools/networking/asynk/default.nix47
-rw-r--r--nixpkgs/pkgs/tools/networking/bandwhich/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/networking/bgpq4/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/networking/bukubrow/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/bully/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/networking/cassowary/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/chrony/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/circus/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/networking/cjdns/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/clash/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/networking/connman/connman-ncurses/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/networking/connman/connmanui/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/networking/corerad/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/networking/croc/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/curl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/curlie/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/networking/dd-agent/datadog-agent.nix3
-rw-r--r--nixpkgs/pkgs/tools/networking/dd-agent/datadog-process-agent.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/dnscrypt-proxy2/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsmasq/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsperf/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsproxy/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/networking/dropbear/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/dsniff/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/eternal-terminal/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/findomain/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/networking/fping/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/frp/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/networking/go-shadowsocks2/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/goreplay/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/networking/grpcui/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/networking/guardian-agent/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/haproxy/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/hey/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/hping/default.nix55
-rw-r--r--nixpkgs/pkgs/tools/networking/httpie/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/networking/httplab/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/i2p/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/networking/i2p/i2p.patch2
-rw-r--r--nixpkgs/pkgs/tools/networking/i2pd/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/ipgrep/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/networking/isync/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/kail/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/keepalived/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/lftp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/libreswan/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/networking/linkchecker/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/networking/mailutils/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/minio-client/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/networking/mitmproxy/default.nix55
-rw-r--r--nixpkgs/pkgs/tools/networking/mozwire/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/networking/mtr/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/networking/mu/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/ncftp/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/nebula/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/networking/netifd/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/network-manager/applet/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/network-manager/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/networking/network-manager/dmenu/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/network-manager/fix-install-paths.patch4
-rw-r--r--nixpkgs/pkgs/tools/networking/network-manager/fix-paths.patch55
-rw-r--r--nixpkgs/pkgs/tools/networking/network-manager/iodine/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/network-manager/libnma/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/network-manager/vpnc/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/nfdump/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/ngrok-2/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/ntp/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/obfs4/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/oneshot/default.nix26
-rw-r--r--nixpkgs/pkgs/tools/networking/openfortivpn/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/openresolv/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/openssh/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/networking/p2p/gtk-gnutella/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/p2p/seeks/default.nix69
-rw-r--r--nixpkgs/pkgs/tools/networking/persepolis/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/networking/phodav/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/pixiecore/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/pmacct/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/radsecproxy/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/s3gof3r/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/shadowfox/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/networking/shadowsocks-libev/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/shadowsocks-v2ray-plugin/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/networking/siege/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/slack-cli/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/slirp4netns/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/sniffglue/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/ssh-ident/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/tayga/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/tcpreplay/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/tdns-cli/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/telepresence/default.nix35
-rw-r--r--nixpkgs/pkgs/tools/networking/tendermint/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/networking/termshark/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/toss/default.nix20
-rw-r--r--nixpkgs/pkgs/tools/networking/tridactyl-native/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/tunnelto/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/unbound/default.nix13
-rw-r--r--nixpkgs/pkgs/tools/networking/urlwatch/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/v2ray/default.nix73
-rw-r--r--nixpkgs/pkgs/tools/networking/v2ray/generic.nix50
-rwxr-xr-xnixpkgs/pkgs/tools/networking/v2ray/update.sh28
-rw-r--r--nixpkgs/pkgs/tools/networking/vpn-slice/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/wormhole-william/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/networking/wstunnel/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/networking/yggdrasil/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/ytcc/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/zap/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/networking/zssh/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/nix/manix/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/nix/nixpkgs-fmt/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/nix/rnix-hashes/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/package-management/apk-tools/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-about/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-deb/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-deps/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-edit/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-graph/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-kcov/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-license/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-release/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-tree/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-update/0001-Generate-lockfile-for-cargo-update-v4.1.1.patch (renamed from nixpkgs/pkgs/tools/package-management/cargo-update/0001-Generate-lockfile-for-cargo-update-v3.0.0.patch)130
-rw-r--r--nixpkgs/pkgs/tools/package-management/cargo-update/default.nix35
-rw-r--r--nixpkgs/pkgs/tools/package-management/clib/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/dpkg/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/emplace/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/home-manager/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/package-management/librepo/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/licensee/Gemfile2
-rw-r--r--nixpkgs/pkgs/tools/package-management/licensee/Gemfile.lock38
-rw-r--r--nixpkgs/pkgs/tools/package-management/licensee/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/package-management/licensee/gemset.nix139
-rw-r--r--nixpkgs/pkgs/tools/package-management/mynewt-newt/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/nfpm/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-doc/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-du/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-index/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-prefetch/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-simple-deploy/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix-template/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/package-management/nix/default.nix52
-rw-r--r--nixpkgs/pkgs/tools/package-management/nixpkgs-review/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/opkg/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/pacman/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/protontricks/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/package-management/reuse/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/package-management/rpm/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/1password-gui/default.nix75
-rwxr-xr-xnixpkgs/pkgs/tools/security/1password-gui/update.sh5
-rw-r--r--nixpkgs/pkgs/tools/security/2fa/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/afl/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/age/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/security/aws-okta/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/security/aws-okta/deps.nix29
-rw-r--r--nixpkgs/pkgs/tools/security/b3sum/add-cargo-lock.patch534
-rw-r--r--nixpkgs/pkgs/tools/security/b3sum/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/bettercap/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/security/bitwarden/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/security/bitwarden_rs/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/security/bitwarden_rs/vault.nix8
-rw-r--r--nixpkgs/pkgs/tools/security/browserpass/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/ccid/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/certstrap/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/security/cfssl/default.nix49
-rw-r--r--nixpkgs/pkgs/tools/security/clamav/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/security/clevis/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/creddump/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/security/doona/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/security/doppler/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/security/eid-mw/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/security/encryptr/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/fail2ban/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/fierce/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/security/gen-oath-safe/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/security/genpass/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/gnupg/20.nix66
-rw-r--r--nixpkgs/pkgs/tools/security/gnupg/22.nix10
-rw-r--r--nixpkgs/pkgs/tools/security/gobuster/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/gopass/default.nix45
-rw-r--r--nixpkgs/pkgs/tools/security/hash_extender/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/security/hashcat/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/security/hcxdumptool/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/hcxtools/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/hologram/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/security/hologram/deps.nix110
-rw-r--r--nixpkgs/pkgs/tools/security/honggfuzz/default.nix51
-rw-r--r--nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/jd-gui/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/john/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/jwt-cli/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/security/kbs2/default.nix44
-rw-r--r--nixpkgs/pkgs/tools/security/keybase/gui.nix11
-rw-r--r--nixpkgs/pkgs/tools/security/lesspass-cli/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/lynis/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/security/minica/default.nix34
-rw-r--r--nixpkgs/pkgs/tools/security/minisign/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/security/nsjail/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/security/pcsclite/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/security/pcsctools/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/security/rbw/default.nix76
-rw-r--r--nixpkgs/pkgs/tools/security/rhash/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/rustscan/default.nix37
-rw-r--r--nixpkgs/pkgs/tools/security/saml2aws/default.nix22
-rw-r--r--nixpkgs/pkgs/tools/security/sequoia/default.nix52
-rw-r--r--nixpkgs/pkgs/tools/security/signing-party/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/security/sn0int/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/security/softhsm/default.nix21
-rw-r--r--nixpkgs/pkgs/tools/security/sops/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/security/ssh-audit/default.nix69
-rw-r--r--nixpkgs/pkgs/tools/security/sshguard/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/sshuttle/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/security/thc-hydra/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/security/tor/default.nix35
-rw-r--r--nixpkgs/pkgs/tools/security/tor/torsocks.nix11
-rw-r--r--nixpkgs/pkgs/tools/security/vault/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/security/vault/vault-bin.nix12
-rw-r--r--nixpkgs/pkgs/tools/security/verifpal/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/security/verifpal/deps.nix12
-rw-r--r--nixpkgs/pkgs/tools/security/vulnix/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/security/yubikey-agent/default.nix56
-rw-r--r--nixpkgs/pkgs/tools/security/yubikey-agent/use-piv-go-75.patch22
-rw-r--r--nixpkgs/pkgs/tools/security/yubikey-agent/yubikey-agent.service35
-rw-r--r--nixpkgs/pkgs/tools/security/zmap/cmake-json-0.14-fix.patch13
-rw-r--r--nixpkgs/pkgs/tools/security/zmap/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/system/bpytop/default.nix46
-rw-r--r--nixpkgs/pkgs/tools/system/cm-rgb/default.nix63
-rw-r--r--nixpkgs/pkgs/tools/system/collectd/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/colorls/Gemfile.lock2
-rw-r--r--nixpkgs/pkgs/tools/system/colorls/gemset.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/ctop/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/datefudge/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/system/ddrescueview/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/system/disk-filltest/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/efibootmgr/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/system/facter/default.nix14
-rw-r--r--nixpkgs/pkgs/tools/system/fio/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/freeipmi/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/gotop/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/system/htop/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/system/inxi/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/jump/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/system/kmon/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/system/logrotate/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/monit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/netdata/default.nix10
-rw-r--r--nixpkgs/pkgs/tools/system/netdata/go.d.plugin.nix10
-rw-r--r--nixpkgs/pkgs/tools/system/nvtop/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/system/pciutils/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/system/plan9port/builder.sh1
-rw-r--r--nixpkgs/pkgs/tools/system/plan9port/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/system/psensor/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/rocm-smi/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/system/rsyslog/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/s-tui/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/smartmontools/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/system/storebrowse/default.nix44
-rw-r--r--nixpkgs/pkgs/tools/system/stress-ng/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/syslog-ng/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/system/thermald/default.nix57
-rw-r--r--nixpkgs/pkgs/tools/system/tre-command/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/system/tuptime/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/system/zenith/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/text/aha/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/amber/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/ansifilter/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/choose/default.nix25
-rw-r--r--nixpkgs/pkgs/tools/text/chroma/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/text/cmigemo/default.nix35
-rw-r--r--nixpkgs/pkgs/tools/text/cmigemo/no-http-tool-check.patch23
-rw-r--r--nixpkgs/pkgs/tools/text/codesearch/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/codesearch/deps.nix3
-rw-r--r--nixpkgs/pkgs/tools/text/coloursum/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/csvkit/default.nix29
-rw-r--r--nixpkgs/pkgs/tools/text/diffr/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/discount/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/epubcheck/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/fanficfare/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/fastmod/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/text/gist/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/gjo/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/glogg/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/text/hyx/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/text/hyx/memstream.patch31
-rw-r--r--nixpkgs/pkgs/tools/text/hyx/no-wall-by-default.patch11
-rw-r--r--nixpkgs/pkgs/tools/text/kdiff3/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/languagetool/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/mdbook/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/text/mdcat/default.nix16
-rw-r--r--nixpkgs/pkgs/tools/text/miller/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/ocrmypdf/0001-Make-compatible-with-pdfminer.six-version-20200720.patch52
-rw-r--r--nixpkgs/pkgs/tools/text/ocrmypdf/default.nix27
-rw-r--r--nixpkgs/pkgs/tools/text/platinum-searcher/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/podiff/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/text/poedit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/recode/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/ripgrep-all/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/ripgrep/default.nix3
-rw-r--r--nixpkgs/pkgs/tools/text/ruplacer/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/sd/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/text/shfmt/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/text/sift/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/text/smu/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/text/snippetpixie/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/text/tab/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/text/ugrep/default.nix23
-rw-r--r--nixpkgs/pkgs/tools/text/vale/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/text/vgrep/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/text/wgetpaste/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/xml/html-xml-utils/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/text/xsv/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/typesetting/asciidoctorj/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/typesetting/lowdown/default.nix30
-rw-r--r--nixpkgs/pkgs/tools/typesetting/pdf2djvu/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/typesetting/satysfi/default.nix32
-rw-r--r--nixpkgs/pkgs/tools/typesetting/sile/default.nix95
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tectonic/default.nix9
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix4
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix4
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tex/texlive/fixedHashes.nix2
-rw-r--r--nixpkgs/pkgs/tools/typesetting/tikzit/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/video/rav1e/default.nix19
-rw-r--r--nixpkgs/pkgs/tools/video/untrunc-anthwlock/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/video/untrunc/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/video/vcsi/default.nix28
-rw-r--r--nixpkgs/pkgs/tools/virtualization/alpine-make-vm-image/default.nix36
-rw-r--r--nixpkgs/pkgs/tools/virtualization/cri-tools/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/virtualization/govc/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/virtualization/linode-cli/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/virtualization/marathonctl/default.nix1
-rwxr-xr-xnixpkgs/pkgs/tools/virtualization/nixos-container/nixos-container.pl38
-rw-r--r--nixpkgs/pkgs/tools/virtualization/rootlesskit/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/virtualization/xva-img/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/wayland/wayland-utils/default.nix30
-rw-r--r--nixpkgs/pkgs/top-level/agda-packages.nix2
-rw-r--r--nixpkgs/pkgs/top-level/aliases.nix87
-rw-r--r--nixpkgs/pkgs/top-level/all-packages.nix2798
-rw-r--r--nixpkgs/pkgs/top-level/beam-packages.nix83
-rw-r--r--nixpkgs/pkgs/top-level/coq-packages.nix7
-rw-r--r--nixpkgs/pkgs/top-level/darwin-packages.nix6
-rw-r--r--nixpkgs/pkgs/top-level/haskell-packages.nix68
-rw-r--r--nixpkgs/pkgs/top-level/impure.nix2
-rw-r--r--nixpkgs/pkgs/top-level/make-tarball.nix2
-rw-r--r--nixpkgs/pkgs/top-level/metrics.nix1
-rw-r--r--nixpkgs/pkgs/top-level/ocaml-packages.nix142
-rw-r--r--nixpkgs/pkgs/top-level/perl-packages.nix2050
-rw-r--r--nixpkgs/pkgs/top-level/php-packages.nix33
-rw-r--r--nixpkgs/pkgs/top-level/python-packages.nix8058
-rw-r--r--nixpkgs/pkgs/top-level/release-cross.nix8
-rw-r--r--nixpkgs/pkgs/top-level/release-python.nix4
-rw-r--r--nixpkgs/pkgs/top-level/release-small.nix4
-rw-r--r--nixpkgs/pkgs/top-level/release.nix3
-rw-r--r--nixpkgs/pkgs/top-level/stage.nix1
-rw-r--r--nixpkgs/pkgs/top-level/static.nix34
6576 files changed, 190446 insertions, 91377 deletions
diff --git a/nixpkgs/.editorconfig b/nixpkgs/.editorconfig
index a4a872ed5c85..129ef84df806 100644
--- a/nixpkgs/.editorconfig
+++ b/nixpkgs/.editorconfig
@@ -43,15 +43,50 @@ indent_style = space
 # Disable file types or individual files
 # some of these files may be auto-generated and/or require significant changes
 
+[*.{c,h}]
+insert_final_newline = unset
+trim_trailing_whitespace = unset
+
+[*.{key,ovpn}]
+insert_final_newline = unset
+end_of_line = unset
+
 [*.lock]
 indent_size = unset
 
+[deps.nix]
+insert_final_newline = unset
+
+[eggs.nix]
+trim_trailing_whitespace = unset
+
 [gemset.nix]
 insert_final_newline = unset
 
+[node-{composition,packages}.nix]
+insert_final_newline = unset
+
+[nixos/modules/services/networking/ircd-hybrid/*.{conf,in}]
+trim_trailing_whitespace = unset
+
+[nixos/tests/systemd-networkd-vrf.nix]
+trim_trailing_whitespace = unset
+
 [pkgs/applications/editors/emacs-modes/recipes-archive-melpa.json]
 indent_size = unset
 
+[pkgs/build-support/dotnetenv/Wrapper/**]
+end_of_line = unset
+insert_final_newline = unset
+trim_trailing_whitespace = unset
+
+[pkgs/build-support/upstream-updater/**]
+trim_trailing_whitespace = unset
+
+[pkgs/development/compilers/elm/registry.dat]
+end_of_line = unset
+insert_final_newline = unset
+
 [pkgs/development/lisp-modules/quicklisp-to-nix.nix]
 indent_size = unset
 
@@ -70,5 +105,15 @@ insert_final_newline = unset
 indent_size = unset
 trim_trailing_whitespace = unset
 
+[pkgs/tools/misc/timidity/timidity.cfg]
+trim_trailing_whitespace = unset
+
+[pkgs/tools/security/enpass/data.json]
+insert_final_newline = unset
+trim_trailing_whitespace = unset
+
+[pkgs/top-level/emscripten-packages.nix]
+trim_trailing_whitespace = unset
+
 [pkgs/top-level/perl-packages.nix]
 indent_size = unset
diff --git a/nixpkgs/.github/CODEOWNERS b/nixpkgs/.github/CODEOWNERS
index 5376d51a6178..556dcd770ca6 100644
--- a/nixpkgs/.github/CODEOWNERS
+++ b/nixpkgs/.github/CODEOWNERS
@@ -10,6 +10,12 @@
 # This file
 /.github/CODEOWNERS @edolstra
 
+# GitHub actions
+/.github/workflows @Mic92 @zowoq
+
+# EditorConfig
+/.editorconfig @Mic92 @zowoq
+
 # Libraries
 /lib                        @edolstra @nbp @infinisil
 /lib/systems                @nbp @ericson2314 @matthewbauer
@@ -77,9 +83,9 @@
 /pkgs/development/haskell-modules/hoogle.nix	      @cdepillabout
 
 # Perl
-/pkgs/development/interpreters/perl @volth
-/pkgs/top-level/perl-packages.nix   @volth
-/pkgs/development/perl-modules      @volth
+/pkgs/development/interpreters/perl @volth @stigtsp
+/pkgs/top-level/perl-packages.nix   @volth @stigtsp
+/pkgs/development/perl-modules      @volth @stigtsp
 
 # R
 /pkgs/applications/science/math/R   @peti
@@ -189,7 +195,16 @@
 /pkgs/top-level/php-packages.nix         @NixOS/php
 
 # Podman, CRI-O modules and related
-/nixos/modules/virtualisation/containers.nix @NixOS/podman
-/nixos/modules/virtualisation/cri-o.nix      @NixOS/podman
-/nixos/modules/virtualisation/podman.nix     @NixOS/podman
-/nixos/tests/podman.nix                      @NixOS/podman
+/nixos/modules/virtualisation/containers.nix @NixOS/podman @zowoq
+/nixos/modules/virtualisation/cri-o.nix      @NixOS/podman @zowoq
+/nixos/modules/virtualisation/podman.nix     @NixOS/podman @zowoq
+/nixos/tests/cri-o.nix                       @NixOS/podman @zowoq
+/nixos/tests/podman.nix                      @NixOS/podman @zowoq
+
+# Blockchains
+/pkgs/applications/blockchains  @mmahut
+
+# Go
+/pkgs/development/compilers/go @kalbasit @Mic92 @zowoq
+/pkgs/development/go-modules   @kalbasit @Mic92 @zowoq
+/pkgs/development/go-packages  @kalbasit @Mic92 @zowoq
diff --git a/nixpkgs/.github/CONTRIBUTING.md b/nixpkgs/.github/CONTRIBUTING.md
index cb0264b0167f..fd2a6073df6a 100644
--- a/nixpkgs/.github/CONTRIBUTING.md
+++ b/nixpkgs/.github/CONTRIBUTING.md
@@ -55,7 +55,7 @@ Follow these steps to backport a change into a release branch in compliance with
 1. Take note of the commits in which the change was introduced into `master` branch.
 2. Check out the target _release branch_, e.g. `release-20.03`. Do not use a _channel branch_ like `nixos-20.03` or `nixpkgs-20.03`.
 3. Create a branch for your change, e.g. `git checkout -b backport`.
-4. When the reason to backport is not obvious from the original commit message, use `git cherry-pick -xe <original commit>` and add a reason. Otherwise use `git cherry-pick -x <original commit>`. That's fine for minor version updates that only include security and bug fixes, commits that fixes an otherwise broken package or similar.
+4. When the reason to backport is not obvious from the original commit message, use `git cherry-pick -xe <original commit>` and add a reason. Otherwise use `git cherry-pick -x <original commit>`. That's fine for minor version updates that only include security and bug fixes, commits that fixes an otherwise broken package or similar. Please also ensure the commits exists on the master branch; in the case of squashed or rebased merges, the commit hash will change and the new commits can be found in the merge message at the bottom of the master pull request.
 5. Push to GitHub and open a backport pull request. Make sure to select the release branch (e.g. `release-20.03`) as the target branch of the pull request, and link to the pull request in which the original change was comitted to `master`. The pull request title should be the commit title with the release version as prefix, e.g. `[20.03]`.
 
 ## Reviewing contributions
diff --git a/nixpkgs/.github/stale.yml b/nixpkgs/.github/stale.yml
index 1cf5014cfb37..606d5637cc57 100644
--- a/nixpkgs/.github/stale.yml
+++ b/nixpkgs/.github/stale.yml
@@ -9,17 +9,33 @@ exemptLabels:
 # Label to use when marking an issue as stale
 staleLabel: "2.status: stale"
 # Comment to post when marking an issue as stale. Set to `false` to disable
-markComment: |
-  Thank you for your contributions.
+pulls:
+  markComment: |
+    Hello, I'm a bot and I thank you in the name of the community for your contributions.
 
-  This has been automatically marked as stale because it has had no activity for 180 days.
+    Nixpkgs is a busy repository, and unfortunately sometimes PRs get left behind for too long. Nevertheless, we'd like to help committers reach the PRs that are still important. This PR has had no activity for 180 days, and so I marked it as stale, but you can rest assured it will never be closed by a non-human.
 
-  If this is still important to you, we ask that you leave a comment below. Your comment can be as simple as "still important to me". This lets people see that at least one person still cares about this. Someone will have to do this at most twice a year if there is no other activity.
+    If this is still important to you and you'd like to remove the stale label, we ask that you leave a comment. Your comment can be as simple as "still important to me".  But there's a bit more you can do:
 
-  Here are suggestions that might help resolve this more quickly:
+    If you received an approval by an unprivileged maintainer and you are just waiting for a merge, you can @ mention someone with merge permissions and ask them to help. You might be able to find someone relevant by using [Git blame](https://git-scm.com/docs/git-blame) on the relevant files, or via [GitHub's web interface](https://docs.github.com/en/github/managing-files-in-a-repository/tracking-changes-in-a-file). You can see if someone's a member of the [nixpkgs-committers](https://github.com/orgs/NixOS/teams/nixpkgs-committers) team, by hovering with the mouse over their username on the web interface, or by searching them directly on [the list](https://github.com/orgs/NixOS/teams/nixpkgs-committers).
+
+    If your PR wasn't reviewed at all, it might help to find someone who's perhaps a user of the package or module you are changing, or alternatively, ask once more for a review by the maintainer of the package/module this is about. If you don't know any, you can use [Git blame](https://git-scm.com/docs/git-blame) on the relevant files, or [GitHub's web interface](https://docs.github.com/en/github/managing-files-in-a-repository/tracking-changes-in-a-file) to find someone who touched the relevant files in the past.
+
+    If your PR has had reviews and nevertheless got stale, make sure you've responded to all of the reviewer's requests / questions. Usually when PR authors show responsibility and dedication, reviewers (privileged or not) show dedication as well. If you've pushed a change, it's possible the reviewer wasn't notified about your push via email, so you can always [officially request them for a review](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/requesting-a-pull-request-review), or just @ mention them and say you've addressed their comments.
+
+    Lastly, you can always ask for help at [our Discourse Forum](https://discourse.nixos.org/), or more specifically, [at this thread](https://discourse.nixos.org/t/prs-in-distress/3604) or at [#nixos' IRC channel](https://webchat.freenode.net/#nixos).
+
+issues:
+  markComment: |
+    Hello, I'm a bot and I thank you in the name of the community for opening this issue.
+
+    To help our human contributors focus on the most-relevant reports, I check up on old issues to see if they're still relevant. This issue has had no activity for 180 days, and so I marked it as stale, but you can rest assured it will never be closed by a non-human.
+
+    The community would appreciate your effort in checking if the issue is still valid. If it isn't, please close it.
+
+    If the issue persists, and you'd like to remove the stale label, you simply need to leave a comment. Your comment can be as simple as "still important to me". If you'd like it to get more attention, you can ask for help by searching for maintainers and people that previously touched related code and @ mention them in a comment. You can use [Git blame](https://git-scm.com/docs/git-blame) or [GitHub's web interface](https://docs.github.com/en/github/managing-files-in-a-repository/tracking-changes-in-a-file) on the relevant files to find them.
+
+    Lastly, you can always ask for help at [our Discourse Forum](https://discourse.nixos.org/) or at [#nixos' IRC channel](https://webchat.freenode.net/#nixos).
 
-  1. Search for maintainers and people that previously touched the related code and @ mention them in a comment.
-  2. Ask on the [NixOS Discourse](https://discourse.nixos.org/).
-  3. Ask on the [#nixos channel](irc://irc.freenode.net/#nixos) on [irc.freenode.net](https://freenode.net).
 # Comment to post when closing a stale issue. Set to `false` to disable
 closeComment: false
diff --git a/nixpkgs/.github/workflows/editorconfig.yml b/nixpkgs/.github/workflows/editorconfig.yml
new file mode 100644
index 000000000000..98c7afbab780
--- /dev/null
+++ b/nixpkgs/.github/workflows/editorconfig.yml
@@ -0,0 +1,27 @@
+name: "Checking EditorConfig"
+
+on:
+  pull_request:
+
+jobs:
+  tests:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v2
+      with:
+        fetch-depth: 0
+    - uses: technote-space/get-diff-action@v3.1.0
+    - name: Fetch editorconfig-checker
+      if: env.GIT_DIFF
+      env:
+        ECC_VERSION: "2.1.0"
+        ECC_URL: "https://github.com/editorconfig-checker/editorconfig-checker/releases/download"
+      run: |
+        curl -sSf -O -L -C - "$ECC_URL/$ECC_VERSION/ec-linux-amd64.tar.gz" && \
+        tar xzf ec-linux-amd64.tar.gz && \
+        mv ./bin/ec-linux-amd64 ./bin/editorconfig-checker
+    - name: Checking EditorConfig
+      if: env.GIT_DIFF
+      run: |
+        ./bin/editorconfig-checker -disable-indentation \
+        ${{ env.GIT_DIFF }}
diff --git a/nixpkgs/.github/workflows/pending-clear.yml b/nixpkgs/.github/workflows/pending-clear.yml
new file mode 100644
index 000000000000..d06b1e2143f1
--- /dev/null
+++ b/nixpkgs/.github/workflows/pending-clear.yml
@@ -0,0 +1,21 @@
+name: "clear pending status"
+
+on:
+  check_suite:
+    types: [ completed ]
+
+jobs:
+  action:
+    runs-on: ubuntu-latest
+    steps:
+    - name: clear pending status
+      if: github.repository_owner == 'NixOS' && github.event.check_suite.app.name == 'OfBorg'
+      env:
+        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+      run: |
+        curl \
+          -X POST \
+          -H "Accept: application/vnd.github.v3+json" \
+          -H "Authorization: token $GITHUB_TOKEN" \
+          -d '{"state": "success", "target_url": " ", "description": " ", "context": "Wait for ofborg"}' \
+          "https://api.github.com/repos/NixOS/nixpkgs/statuses/${{ github.event.check_suite.head_sha }}"
diff --git a/nixpkgs/.github/workflows/pending-set.yml b/nixpkgs/.github/workflows/pending-set.yml
new file mode 100644
index 000000000000..f59ac9439eac
--- /dev/null
+++ b/nixpkgs/.github/workflows/pending-set.yml
@@ -0,0 +1,20 @@
+name: "set pending status"
+
+on:
+  pull_request_target:
+
+jobs:
+  action:
+    runs-on: ubuntu-latest
+    steps:
+    - name: set pending status
+      if: github.repository_owner == 'NixOS'
+      env:
+        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+      run: |
+        curl \
+          -X POST \
+          -H "Accept: application/vnd.github.v3+json" \
+          -H "Authorization: token $GITHUB_TOKEN" \
+          -d '{"state": "failure", "target_url": " ", "description": "This failed status will be cleared when ofborg finishes eval.", "context": "Wait for ofborg"}' \
+          "https://api.github.com/repos/NixOS/nixpkgs/statuses/${{ github.event.pull_request.head.sha }}"
diff --git a/nixpkgs/.gitignore b/nixpkgs/.gitignore
index 05ada15f43a0..b166a78d7d70 100644
--- a/nixpkgs/.gitignore
+++ b/nixpkgs/.gitignore
@@ -12,6 +12,7 @@ result-*
 
 .DS_Store
 .mypy_cache
+__pycache__
 
 /pkgs/development/libraries/qt-5/*/tmp/
 /pkgs/desktops/kde-5/*/tmp/
diff --git a/nixpkgs/.version b/nixpkgs/.version
index 3eea3c4c0e93..62c36bbb17f3 100644
--- a/nixpkgs/.version
+++ b/nixpkgs/.version
@@ -1 +1 @@
-20.09
+21.03
diff --git a/nixpkgs/README.md b/nixpkgs/README.md
index da38b227b56e..d1187b372805 100644
--- a/nixpkgs/README.md
+++ b/nixpkgs/README.md
@@ -34,6 +34,7 @@ the main ones:
 
 * [Nix](https://github.com/NixOS/nix) - the purely functional package manager
 * [NixOps](https://github.com/NixOS/nixops) - the tool to remotely deploy NixOS machines
+* [nixos-hardware](https://github.com/NixOS/nixos-hardware) - NixOS profiles to optimize settings for different hardware
 * [Nix RFCs](https://github.com/NixOS/rfcs) - the formal process for making substantial changes to the community
 * [NixOS homepage](https://github.com/NixOS/nixos-homepage) - the [NixOS.org](https://nixos.org) website
 * [hydra](https://github.com/NixOS/hydra) - our continuous integration system
diff --git a/nixpkgs/default.nix b/nixpkgs/default.nix
index a74a01719c73..faed7e263540 100644
--- a/nixpkgs/default.nix
+++ b/nixpkgs/default.nix
@@ -14,7 +14,7 @@ if ! builtins ? nixVersion || builtins.compareVersions requiredVersion builtins.
     - If you installed Nix using the install script (https://nixos.org/nix/install),
       it is safe to upgrade by running it again:
 
-          curl https://nixos.org/nix/install | sh
+          curl -L https://nixos.org/nix/install | sh
 
     For more information, please see the NixOS release notes at
     https://nixos.org/nixos/manual or locally at
diff --git a/nixpkgs/doc/Makefile b/nixpkgs/doc/Makefile
index cdef493502bf..49f361ebb60b 100644
--- a/nixpkgs/doc/Makefile
+++ b/nixpkgs/doc/Makefile
@@ -1,4 +1,4 @@
-MD_TARGETS=$(addsuffix .xml, $(basename $(wildcard ./*.md ./**/*.md)))
+MD_TARGETS=$(addsuffix .xml, $(basename $(shell find . -type f -regex '.*\.md$$')))
 
 .PHONY: all
 all: validate format out/html/index.html out/epub/manual.epub
diff --git a/nixpkgs/doc/builders/images/dockertools.xml b/nixpkgs/doc/builders/images/dockertools.xml
index e7f37fdaaf00..d881e712a041 100644
--- a/nixpkgs/doc/builders/images/dockertools.xml
+++ b/nixpkgs/doc/builders/images/dockertools.xml
@@ -132,11 +132,11 @@ buildImage {
    <para>
     By default <function>buildImage</function> will use a static date of one second past the UNIX Epoch. This allows <function>buildImage</function> to produce binary reproducible images. When listing images with <command>docker images</command>, the newly created images will be listed like this:
    </para>
-<screen><![CDATA[
-$ docker images
+<screen>
+<prompt>$ </prompt>docker images
 REPOSITORY   TAG      IMAGE ID       CREATED        SIZE
 hello        latest   08c791c7846e   48 years ago   25.2MB
-]]></screen>
+</screen>
    <para>
     You can break binary reproducibility but have a sorted, meaningful <literal>CREATED</literal> column by setting <literal>created</literal> to <literal>now</literal>.
    </para>
@@ -152,11 +152,11 @@ pkgs.dockerTools.buildImage {
 ]]></programlisting>
    <para>
     and now the Docker CLI will display a reasonable date and sort the images as expected:
-<screen><![CDATA[
-$ docker images
+<screen>
+<prompt>$ </prompt>docker images
 REPOSITORY   TAG      IMAGE ID       CREATED              SIZE
 hello        latest   de2bf4786de6   About a minute ago   25.2MB
-]]></screen>
+</screen>
     however, the produced images will not be binary reproducible.
    </para>
   </example>
@@ -166,7 +166,7 @@ hello        latest   de2bf4786de6   About a minute ago   25.2MB
   <title>buildLayeredImage</title>
 
   <para>
-   Create a Docker image with many of the store paths being on their own layer to improve sharing between images.
+   Create a Docker image with many of the store paths being on their own layer to improve sharing between images. The image is realized into the Nix store as a gzipped tarball. Depending on the intended usage, many users might prefer to use <function>streamLayeredImage</function> instead, which this function uses internally.
   </para>
 
   <variablelist>
@@ -327,6 +327,27 @@ pkgs.dockerTools.buildLayeredImage {
   </section>
  </section>
 
+ <section xml:id="ssec-pkgs-dockerTools-streamLayeredImage">
+  <title>streamLayeredImage</title>
+
+  <para>
+   Builds a script which, when run, will stream an uncompressed tarball of a Docker image to stdout. The arguments to this function are as for <function>buildLayeredImage</function>. This method of constructing an image does not realize the image into the Nix store, so it saves on IO and disk/cache space, particularly with large images.
+  </para>
+
+  <para>
+    The image produced by running the output script can be piped directly into <command>docker load</command>, to load it into the local docker daemon:
+    <screen><![CDATA[
+$(nix-build) | docker load
+    ]]></screen>
+  </para>
+  <para>
+    Alternatively, the image be piped via <command>gzip</command> into <command>skopeo</command>, e.g. to copy it into a registry:
+    <screen><![CDATA[
+$(nix-build) | gzip --fast | skopeo copy docker-archive:/dev/stdin docker://some_docker_registry/myimage:tag
+    ]]></screen>
+  </para>
+ </section>
+
  <section xml:id="ssec-pkgs-dockerTools-fetchFromRegistry">
   <title>pullImage</title>
 
diff --git a/nixpkgs/doc/builders/images/ocitools.xml b/nixpkgs/doc/builders/images/ocitools.xml
index e8cd3472f54d..f26ed8644276 100644
--- a/nixpkgs/doc/builders/images/ocitools.xml
+++ b/nixpkgs/doc/builders/images/ocitools.xml
@@ -38,8 +38,7 @@ buildContainer {
 
   readonly = false; <co xml:id='ex-ociTools-buildContainer-3' />
 }
-
-    </programlisting>
+</programlisting>
    <calloutlist>
     <callout arearefs='ex-ociTools-buildContainer-1'>
      <para>
diff --git a/nixpkgs/doc/builders/packages/cataclysm-dda.section.md b/nixpkgs/doc/builders/packages/cataclysm-dda.section.md
new file mode 100644
index 000000000000..ae2ee56a010e
--- /dev/null
+++ b/nixpkgs/doc/builders/packages/cataclysm-dda.section.md
@@ -0,0 +1,94 @@
+# Cataclysm: Dark Days Ahead
+
+## How to install Cataclysm DDA
+
+To install the latest stable release of Cataclysm DDA to your profile, execute
+`nix-env -f "<nixpkgs>" -iA cataclysm-dda`. For the curses build (build
+without tiles), install `cataclysmDDA.stable.curses`. Note: `cataclysm-dda` is
+an alias to `cataclysmDDA.stable.tiles`.
+
+If you like access to a development build of your favorite git revision,
+override `cataclysm-dda-git` (or `cataclysmDDA.git.curses` if you like curses
+build):
+
+```nix
+cataclysm-dda-git.override {
+  version = "YYYY-MM-DD";
+  rev = "YOUR_FAVORITE_REVISION";
+  sha256 = "CHECKSUM_OF_THE_REVISION";
+}
+```
+
+The sha256 checksum can be obtained by
+
+```sh
+nix-prefetch-url --unpack "https://github.com/CleverRaven/Cataclysm-DDA/archive/${YOUR_FAVORITE_REVISION}.tar.gz"
+```
+
+The default configuration directory is `~/.cataclysm-dda`. If you prefer
+`$XDG_CONFIG_HOME/cataclysm-dda`, override the derivation:
+
+```nix
+cataclysm-dda.override {
+  useXdgDir = true;
+}
+```
+
+## Customizing with mods
+
+To install Cataclysm DDA with mods of your choice, you can use `withMods`
+attribute:
+
+```nix
+cataclysm-dda.withMods (mods: with mods; [
+  tileset.UndeadPeople
+])
+```
+
+All mods, soundpacks, and tilesets available in nixpkgs are found in
+`cataclysmDDA.pkgs`.
+
+Here is an example to modify existing mods and/or add more mods not available
+in nixpkgs:
+
+```nix
+let
+  customMods = self: super: lib.recursiveUpdate super {
+    # Modify existing mod
+    tileset.UndeadPeople = super.tileset.UndeadPeople.overrideAttrs (old: {
+      # If you like to apply a patch to the tileset for example
+      patches = [ ./path/to/your.patch ];
+    });
+
+    # Add another mod
+    mod.Awesome = cataclysmDDA.buildMod {
+      modName = "Awesome";
+      version = "0.x";
+      src = fetchFromGitHub {
+        owner = "Someone";
+        repo = "AwesomeMod";
+        rev = "...";
+        sha256 = "...";
+      };
+      # Path to be installed in the unpacked source (default: ".")
+      modRoot = "contents/under/this/path/will/be/installed";
+    };
+
+    # Add another soundpack
+    soundpack.Fantastic = cataclysmDDA.buildSoundPack {
+      # ditto
+    };
+
+    # Add another tileset
+    tileset.SuperDuper = cataclysmDDA.buildTileSet {
+      # ditto
+    };
+  };
+in
+cataclysm-dda.withMods (mods: with mods.extend customMods; [
+  tileset.UndeadPeople
+  mod.Awesome
+  soundpack.Fantastic
+  tileset.SuperDuper
+])
+```
diff --git a/nixpkgs/doc/builders/packages/citrix.xml b/nixpkgs/doc/builders/packages/citrix.xml
index c629dc9ee503..803eb2e4fc40 100644
--- a/nixpkgs/doc/builders/packages/citrix.xml
+++ b/nixpkgs/doc/builders/packages/citrix.xml
@@ -4,34 +4,36 @@
  <title>Citrix Workspace</title>
 
  <para>
-  <note>
-   <para>
-    Please note that the <literal>citrix_receiver</literal> package has been deprecated since its development was <link xlink:href="https://docs.citrix.com/en-us/citrix-workspace-app.html">discontinued by upstream</link> and has been replaced by <link xlink:href="https://www.citrix.com/products/workspace-app/">the citrix workspace app</link>.
-   </para>
-  </note>
-  <link xlink:href="https://www.citrix.com/products/receiver/">Citrix Receiver</link> and <link xlink:href="https://www.citrix.com/products/workspace-app/">Citrix Workspace App</link> are a remote desktop viewers which provide access to <link xlink:href="https://www.citrix.com/products/xenapp-xendesktop/">XenDesktop</link> installations.
+  The <link xlink:href="https://www.citrix.com/products/workspace-app/">Citrix Workspace App</link> is a remote desktop viewer which provides access to <link xlink:href="https://www.citrix.com/products/xenapp-xendesktop/">XenDesktop</link> installations.
  </para>
 
  <section xml:id="sec-citrix-base">
   <title>Basic usage</title>
 
   <para>
-   The tarball archive needs to be downloaded manually as the license agreements of the vendor for <link xlink:href="https://www.citrix.com/downloads/citrix-receiver/">Citrix Receiver</link> or <link xlink:href="https://www.citrix.de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html">Citrix Workspace</link> need to be accepted first. Then run <command>nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz</command>. With the archive available in the store the package can be built and installed with Nix.
+   The tarball archive needs to be downloaded manually as the license agreements of the vendor for <link xlink:href="https://www.citrix.de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html">Citrix Workspace</link> needs to be accepted first. Then run <command>nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz</command>. With the archive available in the store the package can be built and installed with Nix.
   </para>
+ </section>
 
-  <warning>
-   <title>Caution with <command>nix-shell</command> installs</title>
-   <para>
-    It's recommended to install <literal>Citrix Receiver</literal> and/or <literal>Citrix Workspace</literal> using <literal>nix-env -i</literal> or globally to ensure that the <literal>.desktop</literal> files are installed properly into <literal>$XDG_CONFIG_DIRS</literal>. Otherwise it won't be possible to open <literal>.ica</literal> files automatically from the browser to start a Citrix connection.
-   </para>
-  </warning>
+ <section xml:id="sec-citrix-selfservice">
+  <title>Citrix Selfservice</title>
+  <para>
+   The <link xlink:href="https://support.citrix.com/article/CTX200337">selfservice</link> is an application managing Citrix desktops and applications. Please note that this feature only works with at least <package>citrix_workspace_20_06_0</package> and later versions.
+  </para>
+  <para>
+   In order to set this up, you first have to <link xlink:href="https://its.uiowa.edu/support/article/102186">download the <literal>.cr</literal> file from the Netscaler Gateway</link>. After that you can configure the <command>selfservice</command> like this:
+<screen>
+<prompt>$ </prompt>storebrowse -C ~/Downloads/receiverconfig.cr
+<prompt>$ </prompt>selfservice
+</screen>
+  </para>
  </section>
 
  <section xml:id="sec-citrix-custom-certs">
   <title>Custom certificates</title>
 
   <para>
-   The <literal>Citrix Workspace App</literal> in <literal>nixpkgs</literal> trust several certificates <link xlink:href="https://curl.haxx.se/docs/caextract.html">from the Mozilla database</link> by default. However several companies using Citrix might require their own corporate certificate. On distros with imperative packaging these certs can be stored easily in <link xlink:href="https://developer-docs.citrix.com/projects/receiver-for-linux-command-reference/en/13.7/"><literal>$ICAROOT</literal></link>, however this directory is a store path in <literal>nixpkgs</literal>. In order to work around this issue the package provides a simple mechanism to add custom certificates without rebuilding the entire package using <literal>symlinkJoin</literal>:
+   The <literal>Citrix Workspace App</literal> in <literal>nixpkgs</literal> trusts several certificates <link xlink:href="https://curl.haxx.se/docs/caextract.html">from the Mozilla database</link> by default. However several companies using Citrix might require their own corporate certificate. On distros with imperative packaging these certs can be stored easily in <link xlink:href="https://developer-docs.citrix.com/projects/receiver-for-linux-command-reference/en/13.7/"><literal>$ICAROOT</literal></link>, however this directory is a store path in <literal>nixpkgs</literal>. In order to work around this issue the package provides a simple mechanism to add custom certificates without rebuilding the entire package using <literal>symlinkJoin</literal>:
 <programlisting>
 <![CDATA[with import <nixpkgs> { config.allowUnfree = true; };
 let extraCerts = [ ./custom-cert-1.pem ./custom-cert-2.pem /* ... */ ]; in
diff --git a/nixpkgs/doc/builders/packages/index.xml b/nixpkgs/doc/builders/packages/index.xml
index 4e109bd1c599..e20b0c689a80 100644
--- a/nixpkgs/doc/builders/packages/index.xml
+++ b/nixpkgs/doc/builders/packages/index.xml
@@ -18,6 +18,7 @@
  <xi:include href="opengl.xml" />
  <xi:include href="shell-helpers.xml" />
  <xi:include href="steam.xml" />
+ <xi:include href="cataclysm-dda.section.xml" />
  <xi:include href="urxvt.xml" />
  <xi:include href="weechat.xml" />
  <xi:include href="xorg.xml" />
diff --git a/nixpkgs/doc/builders/packages/steam.xml b/nixpkgs/doc/builders/packages/steam.xml
index 8dfede59ac1b..59673328bace 100644
--- a/nixpkgs/doc/builders/packages/steam.xml
+++ b/nixpkgs/doc/builders/packages/steam.xml
@@ -45,13 +45,7 @@
   <title>How to play</title>
 
   <para>
-   For 64-bit systems it's important to have
-<programlisting>hardware.opengl.driSupport32Bit = true;</programlisting>
-   in your <filename>/etc/nixos/configuration.nix</filename>. You'll also need
-<programlisting>hardware.pulseaudio.support32Bit = true;</programlisting>
-   if you are using PulseAudio - this will enable 32bit ALSA apps integration. To use the Steam controller or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pro, you need to add
-<programlisting>hardware.steam-hardware.enable = true;</programlisting>
-   to your configuration.
+   Use <programlisting>programs.steam.enable = true;</programlisting> if you want to add steam to systemPackages and also enable a few workarrounds aswell as Steam controller support or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pr.
   </para>
  </section>
 
diff --git a/nixpkgs/doc/builders/packages/urxvt.xml b/nixpkgs/doc/builders/packages/urxvt.xml
index f85680cecc40..330e056b6560 100644
--- a/nixpkgs/doc/builders/packages/urxvt.xml
+++ b/nixpkgs/doc/builders/packages/urxvt.xml
@@ -18,10 +18,13 @@
    includes all available plugins. To make use of this functionality, use an
    overlay or directly install an expression that overrides its configuration,
    such as
-   <programlisting>rxvt-unicode.override { configure = { availablePlugins, ... }: {
+<programlisting>
+rxvt-unicode.override {
+  configure = { availablePlugins, ... }: {
     plugins = with availablePlugins; [ perls resize-font vtwheel ];
-  }
-}</programlisting>
+  };
+}
+</programlisting>
    If the <literal>configure</literal> function returns an attrset without the
    <literal>plugins</literal> attribute, <literal>availablePlugins</literal>
    will be used automatically.
@@ -30,18 +33,22 @@
   <para>
    In order to add plugins but also keep all default plugins installed, it is
    possible to use the following method:
-   <programlisting>rxvt-unicode.override { configure = { availablePlugins, ... }: {
-     plugins = (builtins.attrValues availablePlugins) ++ [ custom-plugin ];
-   };
-}</programlisting>
+<programlisting>
+rxvt-unicode.override {
+  configure = { availablePlugins, ... }: {
+    plugins = (builtins.attrValues availablePlugins) ++ [ custom-plugin ];
+  };
+}
+</programlisting>
   </para>
 
   <para>
    To get a list of all the plugins available, open the Nix REPL and run
-   <programlisting>$ nix repl
+<screen>
+<prompt>$ </prompt>nix repl
 :l &lt;nixpkgs&gt;
 map (p: p.name) pkgs.rxvt-unicode.plugins
-   </programlisting>
+</screen>
    Alternatively, if your shell is bash or zsh and have completion enabled,
    simply type <literal>nixpkgs.rxvt-unicode.plugins.&lt;tab&gt;</literal>.
   </para>
@@ -50,21 +57,27 @@ map (p: p.name) pkgs.rxvt-unicode.plugins
     In addition to <literal>plugins</literal> the options
     <literal>extraDeps</literal> and <literal>perlDeps</literal> can be used
     to install extra packages.
-    <literal>extraDeps</literal> can be used, for example, to provide 
+    <literal>extraDeps</literal> can be used, for example, to provide
     <literal>xsel</literal> (a clipboard manager) to the clipboard plugin,
     without installing it globally:
-    <programlisting>rxvt-unicode.override { configure = { availablePlugins, ... }: {
-     pluginsDeps = [ xsel ];
-   }
-}</programlisting>
+<programlisting>
+rxvt-unicode.override {
+  configure = { availablePlugins, ... }: {
+    pluginsDeps = [ xsel ];
+  };
+}
+</programlisting>
 
     <literal>perlDeps</literal> is a handy way to provide Perl packages to
     your custom plugins (in <literal>$HOME/.urxvt/ext</literal>). For example,
     if you need <literal>AnyEvent</literal> you can do:
-    <programlisting>rxvt-unicode.override { configure = { availablePlugins, ... }: {
-     perlDeps = with perlPackages; [ AnyEvent ];
-   }
-}</programlisting>
+<programlisting>
+rxvt-unicode.override {
+  configure = { availablePlugins, ... }: {
+    perlDeps = with perlPackages; [ AnyEvent ];
+  };
+}
+</programlisting>
   </para>
 
  </section>
@@ -90,7 +103,8 @@ map (p: p.name) pkgs.rxvt-unicode.plugins
   <para>
    If the plugin is itself a perl package that needs to be imported from
    other plugins or scripts, add the following passthrough:
-   <programlisting>passthru.perlPackages = [ "self" ];
+<programlisting>
+passthru.perlPackages = [ "self" ];
 </programlisting>
    This will make the urxvt wrapper pick up the dependency and set up the perl
    path accordingly.
diff --git a/nixpkgs/doc/contributing/submitting-changes.xml b/nixpkgs/doc/contributing/submitting-changes.xml
index a88965f5cc60..22389c24ea26 100644
--- a/nixpkgs/doc/contributing/submitting-changes.xml
+++ b/nixpkgs/doc/contributing/submitting-changes.xml
@@ -209,12 +209,12 @@ Additional information.
   </para>
 
 <programlisting>
-   (fetchpatch {
-     name = "CVE-2019-11068.patch";
-     url = "https://gitlab.gnome.org/GNOME/libxslt/commit/e03553605b45c88f0b4b2980adfbbb8f6fca2fd6.patch";
-     sha256 = "0pkpb4837km15zgg6h57bncp66d5lwrlvkr73h0lanywq7zrwhj8";
-   })
-  </programlisting>
+(fetchpatch {
+  name = "CVE-2019-11068.patch";
+  url = "https://gitlab.gnome.org/GNOME/libxslt/commit/e03553605b45c88f0b4b2980adfbbb8f6fca2fd6.patch";
+  sha256 = "0pkpb4837km15zgg6h57bncp66d5lwrlvkr73h0lanywq7zrwhj8";
+})
+</programlisting>
 
   <para>
    If a security fix applies to both master and a stable release then, similar to regular changes, they are preferably delivered via master first and cherry-picked to the release branch.
diff --git a/nixpkgs/doc/languages-frameworks/android.section.md b/nixpkgs/doc/languages-frameworks/android.section.md
index 1a8924082bfb..f4f6c086a805 100644
--- a/nixpkgs/doc/languages-frameworks/android.section.md
+++ b/nixpkgs/doc/languages-frameworks/android.section.md
@@ -191,6 +191,8 @@ androidenv.emulateApp {
 }
 ```
 
+Additional flags may be applied to the Android SDK's emulator through the runtime environment variable `$NIX_ANDROID_EMULATOR_FLAGS`.
+
 It is also possible to specify an APK to deploy inside the emulator
 and the package and activity names to launch it:
 
diff --git a/nixpkgs/doc/languages-frameworks/beam.xml b/nixpkgs/doc/languages-frameworks/beam.xml
index 278535237c2c..addab24f7f6d 100644
--- a/nixpkgs/doc/languages-frameworks/beam.xml
+++ b/nixpkgs/doc/languages-frameworks/beam.xml
@@ -68,13 +68,13 @@
   <title>How to Install BEAM Packages</title>
 
   <para>
-   BEAM builders are not registered at the top level, simply because they are not relevant to the vast majority of Nix users. 
+   BEAM builders are not registered at the top level, simply because they are not relevant to the vast majority of Nix users.
    To install any of those builders into your profile, refer to them by their attribute path <literal>beamPackages.rebar3</literal>:
   </para>
 
-  <screen>
-  <prompt>$ </prompt>nix-env -f &quot;&lt;nixpkgs&gt;&quot; -iA beamPackages.rebar3
-  </screen>
+<screen>
+<prompt>$ </prompt>nix-env -f &quot;&lt;nixpkgs&gt;&quot; -iA beamPackages.rebar3
+</screen>
 </section>
 
  <section xml:id="packaging-beam-applications">
diff --git a/nixpkgs/doc/languages-frameworks/emscripten.section.md b/nixpkgs/doc/languages-frameworks/emscripten.section.md
index 80e1094809ad..3663f962d5f2 100644
--- a/nixpkgs/doc/languages-frameworks/emscripten.section.md
+++ b/nixpkgs/doc/languages-frameworks/emscripten.section.md
@@ -21,11 +21,11 @@ Modes of use of `emscripten`:
 * **Declarative usage**:
 
     This mode is far more power full since this makes use of `nix` for dependency management of emscripten libraries and targets by using the `mkDerivation` which is implemented by `pkgs.emscriptenStdenv` and `pkgs.buildEmscriptenPackage`. The source for the packages is in `pkgs/top-level/emscripten-packages.nix` and the abstraction behind it in `pkgs/development/em-modules/generic/default.nix`.
-    * build and install all packages: 
-        * `nix-env -iA emscriptenPackages` 
-          
-    * dev-shell for zlib implementation hacking: 
-        * `nix-shell -A emscriptenPackages.zlib` 
+    * build and install all packages:
+        * `nix-env -iA emscriptenPackages`
+
+    * dev-shell for zlib implementation hacking:
+        * `nix-shell -A emscriptenPackages.zlib`
 
 
 ## Imperative usage
@@ -90,7 +90,7 @@ See the `zlib` example:
         libz.so.${old.version} -I . -o example.js
 
         echo "Using node to execute the test"
-        ${pkgs.nodejs}/bin/node ./example.js 
+        ${pkgs.nodejs}/bin/node ./example.js
 
         set +x
         if [ $? -ne 0 ]; then
@@ -112,7 +112,7 @@ See the `zlib` example:
 
 ### Usage 2: pkgs.buildEmscriptenPackage
 
-This `xmlmirror` example features a emscriptenPackage which is defined completely from this context and no `pkgs.zlib.override` is used. 
+This `xmlmirror` example features a emscriptenPackage which is defined completely from this context and no `pkgs.zlib.override` is used.
 
     xmlmirror = pkgs.buildEmscriptenPackage rec {
       name = "xmlmirror";
@@ -163,7 +163,7 @@ This `xmlmirror` example features a emscriptenPackage which is defined completel
       checkPhase = ''
 
       '';
-    }; 
+    };
 
 ### Declarative debugging
 
@@ -182,4 +182,3 @@ Use `nix-shell -I nixpkgs=/some/dir/nixpkgs -A emscriptenPackages.libz` and from
 Using this toolchain makes it easy to leverage `nix` from NixOS, MacOSX or even Windows (WSL+ubuntu+nix). This toolchain is reproducible, behaves like the rest of the packages from nixpkgs and contains a set of well working examples to learn and adapt from.
 
 If in trouble, ask the maintainers.
-
diff --git a/nixpkgs/doc/languages-frameworks/go.xml b/nixpkgs/doc/languages-frameworks/go.xml
index ff39276f640e..ebdcf616054c 100644
--- a/nixpkgs/doc/languages-frameworks/go.xml
+++ b/nixpkgs/doc/languages-frameworks/go.xml
@@ -38,7 +38,7 @@ pet = buildGoModule rec {
 
   vendorSha256 = "1879j77k96684wi554rkjxydrj8g3hpp0kvxz03sd8dmwr3lh83j"; <co xml:id='ex-buildGoModule-1' />
 
-  subPackages = [ "." ]; <co xml:id='ex-buildGoModule-2' />
+  runVend = true; <co xml:id='ex-buildGoModule-2' />
 
   meta = with lib; {
     description = "Simple command-line snippet manager, written in Go";
@@ -61,19 +61,14 @@ pet = buildGoModule rec {
     </callout>
     <callout arearefs='ex-buildGoModule-2'>
      <para>
-      <varname>subPackages</varname> limits the builder from building child packages that have not been listed. If <varname>subPackages</varname> is not specified, all child packages will be built.
+      <varname>runVend</varname> runs the vend command to generate the vendor directory. This is useful if your code depends on c code and go mod tidy does not include the needed sources to build.
      </para>
     </callout>
    </calloutlist>
   </para>
 
   <para>
-    <varname>vendorSha256</varname> can also take <varname>null</varname> as an input.
-
-    When `null` is used as a value, rather than fetching the dependencies
-    and vendoring them, we use the vendoring included within the source repo.
-    If you'd like to not have to update this field on dependency changes, 
-    run `go mod vendor` in your source repo and set 'vendorSha256 = null;'
+   <varname>vendorSha256</varname> can also take <varname>null</varname> as an input. When `null` is used as a value, rather than fetching the dependencies and vendoring them, we use the vendoring included within the source repo. If you'd like to not have to update this field on dependency changes, run `go mod vendor` in your source repo and set 'vendorSha256 = null;'
   </para>
  </section>
 
@@ -92,7 +87,6 @@ deis = buildGoPackage rec {
   version = "1.13.0";
 
   goPackagePath = "github.com/deis/deis"; <co xml:id='ex-buildGoPackage-1' />
-  subPackages = [ "client" ]; <co xml:id='ex-buildGoPackage-2' />
 
   src = fetchFromGitHub {
     owner = "deis";
@@ -101,9 +95,7 @@ deis = buildGoPackage rec {
     sha256 = "1qv9lxqx7m18029lj8cw3k7jngvxs4iciwrypdy0gd2nnghc68sw";
   };
 
-  goDeps = ./deps.nix; <co xml:id='ex-buildGoPackage-3' />
-
-  buildFlags = [ "--tags" "release" ]; <co xml:id='ex-buildGoPackage-4' />
+  goDeps = ./deps.nix; <co xml:id='ex-buildGoPackage-2' />
 }
 </programlisting>
   </example>
@@ -118,22 +110,9 @@ deis = buildGoPackage rec {
     </callout>
     <callout arearefs='ex-buildGoPackage-2'>
      <para>
-      <varname>subPackages</varname> limits the builder from building child packages that have not been listed. If <varname>subPackages</varname> is not specified, all child packages will be built.
-     </para>
-     <para>
-      In this example only <literal>github.com/deis/deis/client</literal> will be built.
-     </para>
-    </callout>
-    <callout arearefs='ex-buildGoPackage-3'>
-     <para>
       <varname>goDeps</varname> is where the Go dependencies of a Go program are listed as a list of package source identified by Go import path. It could be imported as a separate <varname>deps.nix</varname> file for readability. The dependency data structure is described below.
      </para>
     </callout>
-    <callout arearefs='ex-buildGoPackage-4'>
-     <para>
-      <varname>buildFlags</varname> is a list of flags passed to the go build command.
-     </para>
-    </callout>
    </calloutlist>
   </para>
 
@@ -200,4 +179,70 @@ done
 </screen>
   </para>
  </section>
+
+ <section xml:id="ssec-go-common-attributes">
+  <title>Attributes used by the builders</title>
+
+  <para>
+   Both <link xlink:href="#ssec-go-modules"><varname>buildGoModule</varname></link> and <link xlink:href="#ssec-go-modules"><varname>buildGoPackage</varname></link> can be tweaked to behave slightly differently, if the following attributes are used:
+  </para>
+
+  <variablelist>
+   <varlistentry xml:id="var-go-buildFlagsArray">
+    <term>
+     <varname>buildFlagsArray</varname> and <varname>buildFlags</varname>
+    </term>
+    <listitem>
+     <para>
+      These attributes set build flags supported by <varname>go build</varname>. We recommend using <varname>buildFlagsArray</varname>. The most common use case of these attributes is to make the resulting executable aware of its own version. For example:
+     </para>
+     <example xml:id='ex-goBuildFlags-nospaces'>
+      <title>buildFlagsArray</title>
+<programlisting>
+  buildFlagsArray = [
+    "-ldflags=-X main.Version=${version} -X main.Commit=${version}" <co xml:id='ex-goBuildFlags-1' />
+  ];
+</programlisting>
+     </example>
+     <calloutlist>
+      <callout arearefs='ex-goBuildFlags-1'>
+       <para>
+        Note: single quotes are not needed.
+       </para>
+      </callout>
+     </calloutlist>
+     <example xml:id='ex-goBuildFlags-noarray'>
+      <title>buildFlagsArray</title>
+<programlisting>
+  buildFlagsArray = ''
+    -ldflags=
+    -X main.Version=${version}
+    -X main.Commit=${version}
+  '';
+</programlisting>
+     </example>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="var-go-deleteVendor">
+    <term>
+     <varname>deleteVendor</varname>
+    </term>
+    <listitem>
+     <para>
+      Removes the pre-existing vendor directory. This should only be used if the dependencies included in the vendor folder are broken or incomplete.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry xml:id="var-go-subPackages">
+    <term>
+     <varname>subPackages</varname>
+    </term>
+    <listitem>
+     <para>
+      Limits the builder from building child packages that have not been listed. If <varname>subPackages</varname> is not specified, all child packages will be built.
+     </para>
+    </listitem>
+   </varlistentry>
+  </variablelist>
+ </section>
 </section>
diff --git a/nixpkgs/doc/languages-frameworks/node.section.md b/nixpkgs/doc/languages-frameworks/node.section.md
index c1f4294711a1..2120adfc0b49 100644
--- a/nixpkgs/doc/languages-frameworks/node.section.md
+++ b/nixpkgs/doc/languages-frameworks/node.section.md
@@ -25,12 +25,13 @@ build system it uses. Here are some examples:
 
 After you have identified the correct system, you need to override your package
 expression while adding in build system as a build input. For example, `dat`
-requires `node-gyp-build`, so we override its expression in `default.nix`:
+requires `node-gyp-build`, so [we override](https://github.com/NixOS/nixpkgs/blob/32f5e5da4a1b3f0595527f5195ac3a91451e9b56/pkgs/development/node-packages/default.nix#L37-L40) its expression in [`default.nix`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/node-packages/default.nix):
 
 ```nix
-dat = nodePackages.dat.override (oldAttrs: {
-  buildInputs = oldAttrs.buildInputs ++ [ nodePackages.node-gyp-build ];
-});
+    dat = super.dat.override {
+      buildInputs = [ self.node-gyp-build pkgs.libtool pkgs.autoconf pkgs.automake ];
+      meta.broken = since "12";
+    };
 ```
 
 To add a package from NPM to nixpkgs:
diff --git a/nixpkgs/doc/languages-frameworks/perl.xml b/nixpkgs/doc/languages-frameworks/perl.xml
index d9b6b2721c67..b017c028f64c 100644
--- a/nixpkgs/doc/languages-frameworks/perl.xml
+++ b/nixpkgs/doc/languages-frameworks/perl.xml
@@ -3,14 +3,47 @@
          xml:id="sec-language-perl">
  <title>Perl</title>
 
- <para>
-  Nixpkgs provides a function <varname>buildPerlPackage</varname>, a generic package builder function for any Perl package that has a standard <varname>Makefile.PL</varname>. It’s implemented in <link
-xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/perl-modules/generic"><filename>pkgs/development/perl-modules/generic</filename></link>.
- </para>
-
- <para>
-  Perl packages from CPAN are defined in <link
-xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/perl-packages.nix"><filename>pkgs/top-level/perl-packages.nix</filename></link>, rather than <filename>pkgs/all-packages.nix</filename>. Most Perl packages are so straight-forward to build that they are defined here directly, rather than having a separate function for each package called from <filename>perl-packages.nix</filename>. However, more complicated packages should be put in a separate file, typically in <filename>pkgs/development/perl-modules</filename>. Here is an example of the former:
+ <section xml:id="ssec-perl-running">
+  <title>Running perl programs on the shell</title>
+
+  <para>
+   When executing a Perl script, it is possible you get an error such as <literal>./myscript.pl: bad interpreter: /usr/bin/perl: no such file or directory</literal>. This happens when the script expects Perl to be installed at <filename>/usr/bin/perl</filename>, which is not the case when using Perl from nixpkgs. You can fix the script by changing the first line to:
+<programlisting>
+#!/usr/bin/env perl
+</programlisting>
+  to take the Perl installation from the <literal>PATH</literal> environment variable, or invoke Perl directly with:
+<screen>
+<prompt>$ </prompt>perl ./myscript.pl
+</screen>
+  </para>
+
+  <para>
+   When the script is using a Perl library that is not installed globally, you might get an error such as <literal>Can't locate DB_File.pm in @INC (you may need to install the DB_File module)</literal>. In that case, you can use <command>nix-shell</command> to start an ad-hoc shell with that library installed, for instance:
+<screen>
+<prompt>$ </prompt>nix-shell -p perl perlPackages.DBFile --run ./myscript.pl
+</screen>
+  </para>
+
+  <para>
+  If you are always using the script in places where <command>nix-shell</command> is available, you can embed the <command>nix-shell</command> invocation in the shebang like this:
+<programlisting>
+#!/usr/bin/env nix-shell
+#! nix-shell -i perl -p perl perlPackages.DBFile
+</programlisting>
+  </para>
+ </section>
+
+ <section xml:id="ssec-perl-packaging">
+  <title>Packaging Perl programs</title>
+
+  <para>
+   Nixpkgs provides a function <varname>buildPerlPackage</varname>, a generic package builder function for any Perl package that has a standard <varname>Makefile.PL</varname>. It’s implemented in <link
+ xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/perl-modules/generic"><filename>pkgs/development/perl-modules/generic</filename></link>.
+  </para>
+
+  <para>
+   Perl packages from CPAN are defined in <link
+ xlink:href="https://github.com/NixOS/nixpkgs/blob/master/pkgs/top-level/perl-packages.nix"><filename>pkgs/top-level/perl-packages.nix</filename></link>, rather than <filename>pkgs/all-packages.nix</filename>. Most Perl packages are so straight-forward to build that they are defined here directly, rather than having a separate function for each package called from <filename>perl-packages.nix</filename>. However, more complicated packages should be put in a separate file, typically in <filename>pkgs/development/perl-modules</filename>. Here is an example of the former:
 <programlisting>
 ClassC3 = buildPerlPackage rec {
   name = "Class-C3-0.21";
@@ -20,47 +53,47 @@ ClassC3 = buildPerlPackage rec {
   };
 };
 </programlisting>
-  Note the use of <literal>mirror://cpan/</literal>, and the <literal>${name}</literal> in the URL definition to ensure that the name attribute is consistent with the source that we’re actually downloading. Perl packages are made available in <filename>all-packages.nix</filename> through the variable <varname>perlPackages</varname>. For instance, if you have a package that needs <varname>ClassC3</varname>, you would typically write
+   Note the use of <literal>mirror://cpan/</literal>, and the <literal>${name}</literal> in the URL definition to ensure that the name attribute is consistent with the source that we’re actually downloading. Perl packages are made available in <filename>all-packages.nix</filename> through the variable <varname>perlPackages</varname>. For instance, if you have a package that needs <varname>ClassC3</varname>, you would typically write
 <programlisting>
 foo = import ../path/to/foo.nix {
   inherit stdenv fetchurl ...;
   inherit (perlPackages) ClassC3;
 };
 </programlisting>
-  in <filename>all-packages.nix</filename>. You can test building a Perl package as follows:
+   in <filename>all-packages.nix</filename>. You can test building a Perl package as follows:
 <screen>
 <prompt>$ </prompt>nix-build -A perlPackages.ClassC3
 </screen>
-  <varname>buildPerlPackage</varname> adds <literal>perl-</literal> to the start of the name attribute, so the package above is actually called <literal>perl-Class-C3-0.21</literal>. So to install it, you can say:
+   <varname>buildPerlPackage</varname> adds <literal>perl-</literal> to the start of the name attribute, so the package above is actually called <literal>perl-Class-C3-0.21</literal>. So to install it, you can say:
 <screen>
 <prompt>$ </prompt>nix-env -i perl-Class-C3
 </screen>
-  (Of course you can also install using the attribute name: <literal>nix-env -i -A perlPackages.ClassC3</literal>.)
- </para>
-
- <para>
-  So what does <varname>buildPerlPackage</varname> do? It does the following:
-  <orderedlist>
-   <listitem>
-    <para>
-     In the configure phase, it calls <literal>perl Makefile.PL</literal> to generate a Makefile. You can set the variable <varname>makeMakerFlags</varname> to pass flags to <filename>Makefile.PL</filename>
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     It adds the contents of the <envar>PERL5LIB</envar> environment variable to <literal>#! .../bin/perl</literal> line of Perl scripts as <literal>-I<replaceable>dir</replaceable></literal> flags. This ensures that a script can find its dependencies. (This can cause this shebang line to become too long for Darwin to handle; see the note below.)
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     In the fixup phase, it writes the propagated build inputs (<varname>propagatedBuildInputs</varname>) to the file <filename>$out/nix-support/propagated-user-env-packages</filename>. <command>nix-env</command> recursively installs all packages listed in this file when you install a package that has it. This ensures that a Perl package can find its dependencies.
-    </para>
-   </listitem>
-  </orderedlist>
- </para>
-
- <para>
-  <varname>buildPerlPackage</varname> is built on top of <varname>stdenv</varname>, so everything can be customised in the usual way. For instance, the <literal>BerkeleyDB</literal> module has a <varname>preConfigure</varname> hook to generate a configuration file used by <filename>Makefile.PL</filename>:
+   (Of course you can also install using the attribute name: <literal>nix-env -i -A perlPackages.ClassC3</literal>.)
+  </para>
+
+  <para>
+   So what does <varname>buildPerlPackage</varname> do? It does the following:
+   <orderedlist>
+    <listitem>
+     <para>
+      In the configure phase, it calls <literal>perl Makefile.PL</literal> to generate a Makefile. You can set the variable <varname>makeMakerFlags</varname> to pass flags to <filename>Makefile.PL</filename>
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      It adds the contents of the <envar>PERL5LIB</envar> environment variable to <literal>#! .../bin/perl</literal> line of Perl scripts as <literal>-I<replaceable>dir</replaceable></literal> flags. This ensures that a script can find its dependencies. (This can cause this shebang line to become too long for Darwin to handle; see the note below.)
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      In the fixup phase, it writes the propagated build inputs (<varname>propagatedBuildInputs</varname>) to the file <filename>$out/nix-support/propagated-user-env-packages</filename>. <command>nix-env</command> recursively installs all packages listed in this file when you install a package that has it. This ensures that a Perl package can find its dependencies.
+     </para>
+    </listitem>
+   </orderedlist>
+  </para>
+
+  <para>
+   <varname>buildPerlPackage</varname> is built on top of <varname>stdenv</varname>, so everything can be customised in the usual way. For instance, the <literal>BerkeleyDB</literal> module has a <varname>preConfigure</varname> hook to generate a configuration file used by <filename>Makefile.PL</filename>:
 <programlisting>
 { buildPerlPackage, fetchurl, db }:
 
@@ -78,10 +111,10 @@ buildPerlPackage rec {
   '';
 }
 </programlisting>
- </para>
+  </para>
 
- <para>
-  Dependencies on other Perl packages can be specified in the <varname>buildInputs</varname> and <varname>propagatedBuildInputs</varname> attributes. If something is exclusively a build-time dependency, use <varname>buildInputs</varname>; if it’s (also) a runtime dependency, use <varname>propagatedBuildInputs</varname>. For instance, this builds a Perl module that has runtime dependencies on a bunch of other modules:
+  <para>
+   Dependencies on other Perl packages can be specified in the <varname>buildInputs</varname> and <varname>propagatedBuildInputs</varname> attributes. If something is exclusively a build-time dependency, use <varname>buildInputs</varname>; if it’s (also) a runtime dependency, use <varname>propagatedBuildInputs</varname>. For instance, this builds a Perl module that has runtime dependencies on a bunch of other modules:
 <programlisting>
 ClassC3Componentised = buildPerlPackage rec {
   name = "Class-C3-Componentised-1.0004";
@@ -94,10 +127,10 @@ ClassC3Componentised = buildPerlPackage rec {
   ];
 };
 </programlisting>
- </para>
+  </para>
 
- <para>
-  On Darwin, if a script has too many <literal>-I<replaceable>dir</replaceable></literal> flags in its first line (its “shebang line”), it will not run. This can be worked around by calling the <literal>shortenPerlShebang</literal> function from the <literal>postInstall</literal> phase:
+  <para>
+   On Darwin, if a script has too many <literal>-I<replaceable>dir</replaceable></literal> flags in its first line (its “shebang line”), it will not run. This can be worked around by calling the <literal>shortenPerlShebang</literal> function from the <literal>postInstall</literal> phase:
 <programlisting>
 { stdenv, buildPerlPackage, fetchurl, shortenPerlShebang }:
 
@@ -116,22 +149,22 @@ ImageExifTool = buildPerlPackage {
   '';
 };
 </programlisting>
-  This will remove the <literal>-I</literal> flags from the shebang line, rewrite them in the <literal>use lib</literal> form, and put them on the next line instead. This function can be given any number of Perl scripts as arguments; it will modify them in-place.
- </para>
+   This will remove the <literal>-I</literal> flags from the shebang line, rewrite them in the <literal>use lib</literal> form, and put them on the next line instead. This function can be given any number of Perl scripts as arguments; it will modify them in-place.
+  </para>
 
- <section xml:id="ssec-generation-from-CPAN">
-  <title>Generation from CPAN</title>
+  <section xml:id="ssec-generation-from-CPAN">
+   <title>Generation from CPAN</title>
 
-  <para>
-   Nix expressions for Perl packages can be generated (almost) automatically from CPAN. This is done by the program <command>nix-generate-from-cpan</command>, which can be installed as follows:
-  </para>
+   <para>
+    Nix expressions for Perl packages can be generated (almost) automatically from CPAN. This is done by the program <command>nix-generate-from-cpan</command>, which can be installed as follows:
+   </para>
 
 <screen>
 <prompt>$ </prompt>nix-env -i nix-generate-from-cpan
 </screen>
 
-  <para>
-   This program takes a Perl module name, looks it up on CPAN, fetches and unpacks the corresponding package, and prints a Nix expression on standard output. For example:
+   <para>
+    This program takes a Perl module name, looks it up on CPAN, fetches and unpacks the corresponding package, and prints a Nix expression on standard output. For example:
 <screen>
 <prompt>$ </prompt>nix-generate-from-cpan XML::Simple
   XMLSimple = buildPerlPackage rec {
@@ -147,15 +180,16 @@ ImageExifTool = buildPerlPackage {
     };
   };
 </screen>
-   The output can be pasted into <filename>pkgs/top-level/perl-packages.nix</filename> or wherever else you need it.
-  </para>
- </section>
+    The output can be pasted into <filename>pkgs/top-level/perl-packages.nix</filename> or wherever else you need it.
+   </para>
+  </section>
 
- <section xml:id="ssec-perl-cross-compilation">
-  <title>Cross-compiling modules</title>
+  <section xml:id="ssec-perl-cross-compilation">
+   <title>Cross-compiling modules</title>
 
-  <para>
-   Nixpkgs has experimental support for cross-compiling Perl modules. In many cases, it will just work out of the box, even for modules with native extensions. Sometimes, however, the Makefile.PL for a module may (indirectly) import a native module. In that case, you will need to make a stub for that module that will satisfy the Makefile.PL and install it into <filename>lib/perl5/site_perl/cross_perl/${perl.version}</filename>. See the <varname>postInstall</varname> for <varname>DBI</varname> for an example.
-  </para>
+   <para>
+    Nixpkgs has experimental support for cross-compiling Perl modules. In many cases, it will just work out of the box, even for modules with native extensions. Sometimes, however, the Makefile.PL for a module may (indirectly) import a native module. In that case, you will need to make a stub for that module that will satisfy the Makefile.PL and install it into <filename>lib/perl5/site_perl/cross_perl/${perl.version}</filename>. See the <varname>postInstall</varname> for <varname>DBI</varname> for an example.
+   </para>
+  </section>
  </section>
 </section>
diff --git a/nixpkgs/doc/languages-frameworks/python.section.md b/nixpkgs/doc/languages-frameworks/python.section.md
index dc10483ce694..e2d9172919ef 100644
--- a/nixpkgs/doc/languages-frameworks/python.section.md
+++ b/nixpkgs/doc/languages-frameworks/python.section.md
@@ -538,8 +538,123 @@ buildPythonPackage rec {
 ```
 Note also the line `doCheck = false;`, we explicitly disabled running the test-suite.
 
+#### Testing Python Packages
+
+It is highly encouraged to have testing as part of the package build. This
+helps to avoid situations where the package was able to build and install,
+but is not usable at runtime. Currently, all packages will use the `test`
+command provided by the setup.py (i.e. `python setup.py test`). However,
+this is currently deprecated https://github.com/pypa/setuptools/pull/1878
+and your package should provide its own checkPhase.
+
+*NOTE:* The `checkPhase` for python maps to the `installCheckPhase` on a
+normal derivation. This is due to many python packages not behaving well
+to the pre-installed version of the package. Version info, and natively
+compiled extensions generally only exist in the install directory, and
+thus can cause issues when a test suite asserts on that behavior.
+
+*NOTE:* Tests should only be disabled if they don't agree with nix
+(e.g. external dependencies, network access, flakey tests), however,
+as many tests should be enabled as possible. Failing tests can still be
+a good indication that the package is not in a valid state.
+
+#### Using pytest
+
+Pytest is the most common test runner for python repositories. A trivial
+test run would be:
+```
+  checkInputs = [ pytest ];
+  checkPhase = "pytest";
+```
+
+However, many repositories' test suites do not translate well to nix's build
+sandbox, and will generally need many tests to be disabled.
+
+To filter tests using pytest, one can do the following:
+```
+  checkInputs = [ pytest ];
+  # avoid tests which need additional data or touch network
+  checkPhase = ''
+    pytest tests/ --ignore=tests/integration -k 'not download and not update'
+  '';
+```
+
+`--ignore` will tell pytest to ignore that file or directory from being
+collected as part of a test run. This is useful is a file uses a package
+which is not available in nixpkgs, thus skipping that test file is much
+easier than having to create a new package.
+
+`-k` is used to define a predicate for test names. In this example, we are
+filtering out tests which contain `download` or `update` in their test case name.
+Only one `-k` argument is allows, and thus a long predicate should be concatenated
+with "\" and wrapped to the next line.
+
+*NOTE:* In pytest==6.0.1, the use of "\" to continue a line (e.g. `-k 'not download \'`) has
+been removed, in this case, it's recommended to use `pytestCheckHook`.
+
+#### Using pytestCheckHook
+
+`pytestCheckHook` is a convenient hook which will substitute the setuptools
+`test` command for a checkPhase which runs `pytest`. This is also beneficial
+when a package may need many items disabled to run the test suite.
+
+Using the example above, the analagous pytestCheckHook usage would be:
+```
+  checkInputs = [ pytestCheckHook ];
+
+  # requires additional data
+  pytestFlagsArray = [ "tests/" "--ignore=tests/integration" ];
+
+  disabledTests = [
+    # touches network
+    "download"
+    "update"
+  ];
+```
+
+This is expecially useful when tests need to be conditionallydisabled,
+for example:
+
+```
+  disabledTests = [
+    # touches network
+    "download"
+    "update"
+  ] ++ lib.optionals (pythonAtLeast "3.8") [
+    # broken due to python3.8 async changes
+    "async"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # can fail when building with other packages
+    "socket"
+  ];
+```
+Trying to concatenate the related strings to disable tests in a regular checkPhase
+would be much harder to read. This also enables us to comment on why specific tests
+are disabled.
+
+#### Using pythonImportsCheck
+
+Although unit tests are highly prefered to valid correctness of a package. Not
+all packages have test suites that can be ran easily, and some have none at all.
+To help ensure the package still works, `pythonImportsCheck` can attempt to import
+the listed modules.
+
+```
+  pythonImportsCheck = [ "requests" "urllib" ];
+```
+roughly translates to:
+```
+  postCheck = ''
+    PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
+    python -c "import requests; import urllib"
+  '';
+```
+However, this is done in it's own phase, and not dependent on whether `doCheck = true;`
+
+This can also be useful in verifying that the package doesn't assume commonly
+present packages (e.g. `setuptools`)
 
-#### Develop local package
+### Develop local package
 
 As a Python developer you're likely aware of [development mode](http://setuptools.readthedocs.io/en/latest/setuptools.html#development-mode)
 (`python setup.py develop`); instead of installing the package this command
@@ -640,8 +755,8 @@ and in this case the `python38` interpreter is automatically used.
 
 ### Interpreters
 
-Versions 2.7, 3.5, 3.6, 3.7 and 3.8 of the CPython interpreter are available as
-respectively `python27`, `python35`, `python36`, `python37` and `python38`. The
+Versions 2.7, 3.6, 3.7 and 3.8 of the CPython interpreter are available as
+respectively `python27`, `python36`, `python37` and `python38`. The
 aliases `python2` and `python3` correspond to respectively `python27` and
 `python38`. The default interpreter, `python`, maps to `python2`. The PyPy
 interpreters compatible with Python 2.7 and 3 are available as `pypy27` and
@@ -689,15 +804,16 @@ attribute set is created for each available Python interpreter. The available
 sets are
 
 * `pkgs.python27Packages`
-* `pkgs.python35Packages`
 * `pkgs.python36Packages`
 * `pkgs.python37Packages`
+* `pkgs.python38Packages`
+* `pkgs.python39Packages`
 * `pkgs.pypyPackages`
 
 and the aliases
 
 * `pkgs.python2Packages` pointing to `pkgs.python27Packages`
-* `pkgs.python3Packages` pointing to `pkgs.python37Packages`
+* `pkgs.python3Packages` pointing to `pkgs.python38Packages`
 * `pkgs.pythonPackages` pointing to `pkgs.python2Packages`
 
 #### `buildPythonPackage` function
@@ -1016,7 +1132,7 @@ are used in `buildPythonPackage`.
 - `pipBuildHook` to build a wheel using `pip` and PEP 517. Note a build system
   (e.g. `setuptools` or `flit`) should still be added as `nativeBuildInput`.
 - `pipInstallHook` to install wheels.
-- `pytestCheckHook` to run tests with `pytest`.
+- `pytestCheckHook` to run tests with `pytest`. See [example usage](#using-pytestcheckhook).
 - `pythonCatchConflictsHook` to check whether a Python package is not already existing.
 - `pythonImportsCheckHook` to check whether importing the listed modules works.
 - `pythonRemoveBinBytecode` to remove bytecode from the `/bin` folder.
diff --git a/nixpkgs/doc/languages-frameworks/qt.xml b/nixpkgs/doc/languages-frameworks/qt.xml
index 8d97de504ad3..ec95621d8ff2 100644
--- a/nixpkgs/doc/languages-frameworks/qt.xml
+++ b/nixpkgs/doc/languages-frameworks/qt.xml
@@ -18,7 +18,7 @@ mkDerivation { <co xml:id='qt-default-nix-co-2' />
 
   buildInputs = [ qtbase ]; <co xml:id='qt-default-nix-co-3' />
 }
-   </programlisting>
+</programlisting>
  </example>
 
  <calloutlist>
diff --git a/nixpkgs/doc/languages-frameworks/ruby.xml b/nixpkgs/doc/languages-frameworks/ruby.xml
index 9b36801fb966..9b579d6804f4 100644
--- a/nixpkgs/doc/languages-frameworks/ruby.xml
+++ b/nixpkgs/doc/languages-frameworks/ruby.xml
@@ -12,14 +12,14 @@
  </para>
 
 <screen>
-<![CDATA[$ cd pkgs/servers/monitoring
-$ mkdir sensu
-$ cd sensu
-$ cat > Gemfile
+<prompt>$ </prompt>cd pkgs/servers/monitoring
+<prompt>$ </prompt>mkdir sensu
+<prompt>$ </prompt>cd sensu
+<prompt>$ </prompt>cat > Gemfile
 source 'https://rubygems.org'
 gem 'sensu'
-$ $(nix-build '<nixpkgs>' -A bundix --no-out-link)/bin/bundix --magic
-$ cat > default.nix
+<prompt>$ </prompt>$(nix-build '&lt;nixpkgs>' -A bundix --no-out-link)/bin/bundix --magic
+<prompt>$ </prompt>cat > default.nix
 { lib, bundlerEnv, ruby }:
 
 bundlerEnv rec {
@@ -37,7 +37,7 @@ bundlerEnv rec {
     maintainers = with maintainers; [ theuni ];
     platforms   = platforms.unix;
   };
-}]]>
+}
 </screen>
 
  <para>
@@ -49,17 +49,16 @@ bundlerEnv rec {
  </para>
 
 <screen>
-<![CDATA[$ cd pkgs/servers/monitoring/sensu
-$ nix-shell -p bundler --run 'bundle lock --update'
-$ nix-shell -p bundix --run 'bundix'
-]]>
+<prompt>$ </prompt>cd pkgs/servers/monitoring/sensu
+<prompt>$ </prompt>nix-shell -p bundler --run 'bundle lock --update'
+<prompt>$ </prompt>nix-shell -p bundix --run 'bundix'
 </screen>
 
  <para>
   For tools written in Ruby - i.e. where the desire is to install a package and then execute e.g. <command>rake</command> at the command line, there is an alternative builder called <literal>bundlerApp</literal>. Set up the <filename>gemset.nix</filename> the same way, and then, for example:
  </para>
 
-<screen>
+<programlisting>
 <![CDATA[{ lib, bundlerApp }:
 
 bundlerApp {
@@ -75,7 +74,7 @@ bundlerApp {
     platforms   = platforms.unix;
   };
 }]]>
-</screen>
+</programlisting>
 
  <para>
   The chief advantage of <literal>bundlerApp</literal> over <literal>bundlerEnv</literal> is the executables introduced in the environment are precisely those selected in the <literal>exes</literal> list, as opposed to <literal>bundlerEnv</literal> which adds all the executables made available by gems in the gemset, which can mean e.g. <command>rspec</command> or <command>rake</command> in unpredictable versions available from various packages.
diff --git a/nixpkgs/doc/languages-frameworks/rust.section.md b/nixpkgs/doc/languages-frameworks/rust.section.md
index ec418c563359..0e1d59e1a952 100644
--- a/nixpkgs/doc/languages-frameworks/rust.section.md
+++ b/nixpkgs/doc/languages-frameworks/rust.section.md
@@ -43,7 +43,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/BurntSushi/ripgrep";
     license = licenses.unlicense;
     maintainers = [ maintainers.tailhook ];
-    platforms = platforms.all;
   };
 }
 ```
@@ -51,7 +50,7 @@ rustPlatform.buildRustPackage rec {
 `buildRustPackage` requires a `cargoSha256` attribute which is computed over
 all crate sources of this package. Currently it is obtained by inserting a
 fake checksum into the expression and building the package once. The correct
-checksum can be then take from the failed build.
+checksum can then be taken from the failed build.
 
 Per the instructions in the [Cargo Book](https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html)
 best practices guide, Rust applications should always commit the `Cargo.lock`
@@ -79,7 +78,7 @@ pkgs.rustPlatform.buildRustPackage {
 
 When using `buildRustPackage`, the `checkPhase` is enabled by default and runs
 `cargo test` on the package to build. To make sure that we don't compile the
-sources twice and to actually test the artifacts that will be used at runtime, 
+sources twice and to actually test the artifacts that will be used at runtime,
 the tests will be ran in the `release` mode by default.
 
 However, in some cases the test-suite of a package doesn't work properly in the
@@ -120,6 +119,18 @@ The above are just guidelines, and exceptions may be granted on a case-by-case b
 However, please check if it's possible to disable a problematic subset of the
 test suite and leave a comment explaining your reasoning.
 
+#### Setting `test-threads`
+
+`buildRustPackage` will use parallel test threads by default,
+sometimes it may be necessary to disable this so the tests run consecutively.
+
+```nix
+rustPlatform.buildRustPackage {
+  /* ... */
+  cargoParallelTestThreads = false;
+}
+```
+
 ### Building a package in `debug` mode
 
 By default, `buildRustPackage` will use `release` mode for builds. If a package
diff --git a/nixpkgs/doc/languages-frameworks/texlive.xml b/nixpkgs/doc/languages-frameworks/texlive.xml
index a581ec5911cb..141c46e5a623 100644
--- a/nixpkgs/doc/languages-frameworks/texlive.xml
+++ b/nixpkgs/doc/languages-frameworks/texlive.xml
@@ -44,11 +44,11 @@ texlive.combine {
    <listitem>
     <para>
      You can list packages e.g. by <command>nix repl</command>.
-<programlisting><![CDATA[
-$ nix repl
-nix-repl> :l <nixpkgs>
-nix-repl> texlive.collection-<TAB>
-]]></programlisting>
+<programlisting>
+<prompt>$ </prompt>nix repl
+<prompt>nix-repl> </prompt>:l &lt;nixpkgs>
+<prompt>nix-repl> </prompt>texlive.collection-<keycap function="tab" />
+</programlisting>
     </para>
    </listitem>
    <listitem>
diff --git a/nixpkgs/doc/languages-frameworks/vim.section.md b/nixpkgs/doc/languages-frameworks/vim.section.md
index 4911509212e6..8e4826232e1a 100644
--- a/nixpkgs/doc/languages-frameworks/vim.section.md
+++ b/nixpkgs/doc/languages-frameworks/vim.section.md
@@ -263,6 +263,8 @@ Sometimes plugins require an override that must be changed when the plugin is up
 
 To add a new plugin, run `./update.py --add "[owner]/[name]"`. **NOTE**: This script automatically commits to your git repository. Be sure to check out a fresh branch before running.
 
+Finally, there are some plugins that are also packaged in nodePackages because they have Javascript-related build steps, such as running webpack. Those plugins are not listed in `vim-plugin-names` or managed by `update.py` at all, and are included separately in `overrides.nix`. Currently, all these plugins are related to the `coc.nvim` ecosystem of Language Server Protocol integration with vim/neovim.
+
 ## Important repositories
 
 - [vim-pi](https://bitbucket.org/vimcommunity/vim-pi) is a plugin repository
diff --git a/nixpkgs/doc/manual.xml b/nixpkgs/doc/manual.xml
index 1f69872d2a72..4ca497e234ea 100644
--- a/nixpkgs/doc/manual.xml
+++ b/nixpkgs/doc/manual.xml
@@ -1,7 +1,7 @@
 <book xmlns="http://docbook.org/ns/docbook"
       xmlns:xi="http://www.w3.org/2001/XInclude">
  <info>
-  <title>Nixpkgs Users and Contributors Guide</title>
+  <title>Nixpkgs Manual</title>
   <subtitle>Version <xi:include href=".version" parse="text" />
   </subtitle>
  </info>
diff --git a/nixpkgs/doc/old/cross.txt b/nixpkgs/doc/old/cross.txt
index 9dd5b4c9993b..064ca8d37b01 100644
--- a/nixpkgs/doc/old/cross.txt
+++ b/nixpkgs/doc/old/cross.txt
@@ -220,7 +220,7 @@ fi
 
 preConfigure=preConfigure
 preConfigure() {
-    
+
     # Determine the frontends to build.
     langs="c"
     if test -n "$langCC"; then
@@ -262,7 +262,7 @@ postInstall() {
 
 #if test -z "$profiledCompiler"; then
     #makeFlags="bootstrap"
-#else    
+#else
     #makeFlags="profiledbootstrap"
 #fi
 
diff --git a/nixpkgs/doc/stdenv/meta.xml b/nixpkgs/doc/stdenv/meta.xml
index 45f7834eb2cc..9cef9360002c 100644
--- a/nixpkgs/doc/stdenv/meta.xml
+++ b/nixpkgs/doc/stdenv/meta.xml
@@ -155,17 +155,17 @@ hello-2.3  A program that produces a familiar, friendly greeting
       <itemizedlist>
        <listitem>
         <para>
-         Single license referenced by attribute (preferred) <literal>stdenv.lib.licenses.gpl3</literal>.
+         Single license referenced by attribute (preferred) <literal>stdenv.lib.licenses.gpl3Only</literal>.
         </para>
        </listitem>
        <listitem>
         <para>
-         Single license referenced by its attribute shortName (frowned upon) <literal>"gpl3"</literal>.
+         Single license referenced by its attribute shortName (frowned upon) <literal>"gpl3Only"</literal>.
         </para>
        </listitem>
        <listitem>
         <para>
-         Single license referenced by its attribute spdxId (frowned upon) <literal>"GPL-3.0"</literal>.
+         Single license referenced by its attribute spdxId (frowned upon) <literal>"GPL-3.0-only"</literal>.
         </para>
        </listitem>
        <listitem>
diff --git a/nixpkgs/doc/stdenv/multiple-output.xml b/nixpkgs/doc/stdenv/multiple-output.xml
index 51e1cc2e024a..20658918db72 100644
--- a/nixpkgs/doc/stdenv/multiple-output.xml
+++ b/nixpkgs/doc/stdenv/multiple-output.xml
@@ -22,39 +22,69 @@
     The reduction effects could be instead achieved by building the parts in completely separate derivations. That would often additionally reduce build-time closures, but it tends to be much harder to write such derivations, as build systems typically assume all parts are being built at once. This compromise approach of single source package producing multiple binary packages is also utilized often by rpm and deb.
    </para>
   </note>
+
+  <para>
+   A number of attributes can be used to work with a derivation with multiple outputs. The attribute <varname>outputs</varname> is a list of strings, which are the names of the outputs. For each of these names, an identically named attribute is created, corresponding to that output. The attribute <varname>meta.outputsToInstall</varname> is used to determine the default set of outputs to install when using the derivation name unqualified.
+  </para>
+
  </section>
  <section xml:id="sec-multiple-outputs-installing">
   <title>Installing a split package</title>
 
   <para>
-   When installing a package via <varname>systemPackages</varname> or <command>nix-env</command> you have several options:
+   When installing a package with multiple outputs, the package's <varname>meta.outputsToInstall</varname> attribute determines which outputs are actually installed. <varname>meta.outputsToInstall</varname> is a list whose <link xlink:href="https://github.com/NixOS/nixpkgs/blob/f1680774340d5443a1409c3421ced84ac1163ba9/pkgs/stdenv/generic/make-derivation.nix#L310-L320">default installs binaries and the associated man pages</link>. The following sections describe ways to install different outputs.
   </para>
 
-  <itemizedlist>
-   <listitem>
-    <para>
-     You can install particular outputs explicitly, as each is available in the Nix language as an attribute of the package. The <varname>outputs</varname> attribute contains a list of output names.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     You can let it use the default outputs. These are handled by <varname>meta.outputsToInstall</varname> attribute that contains a list of output names.
-    </para>
+  <section xml:id="sec-multiple-outputs-installing-nixos">
+   <title>Selecting outputs to install via NixOS</title>
+
+   <para>
+    NixOS provides two ways to select the outputs to install for packages listed in <varname>environment.systemPackages</varname>:
+   </para>
+
+   <itemizedlist>
+    <listitem>
+     <para>
+      The configuration option <varname>environment.extraOutputsToInstall</varname> is appended to each package's <varname>meta.outputsToInstall</varname> attribute to determine the outputs to install. It can for example be used to install <literal>info</literal> documentation or debug symbols for all packages.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      The outputs can be listed as packages in <varname>environment.systemPackages</varname>. For example, the <literal>"out"</literal> and <literal>"info"</literal> outputs for the <varname>coreutils</varname> package can be installed by including <varname>coreutils</varname> and <varname>coreutils.info</varname> in <varname>environment.systemPackages</varname>.
+     </para>
+    </listitem>
+   </itemizedlist>
+  </section>
+
+  <section xml:id="sec-multiple-outputs-installing-nix-env">
+   <title>Selecting outputs to install via <command>nix-env</command></title>
+
+   <para>
+    <command>nix-env</command> lacks an easy way to select the outputs to install. When installing a package, <command>nix-env</command> always installs the outputs listed in <varname>meta.outputsToInstall</varname>, even when the user explicitly selects an output.
+   </para>
+
+   <warning>
     <para>
-     TODO: more about tweaking the attribute, etc.
+     <command>nix-env</command> silenty disregards the outputs selected by the user, and instead installs the outputs from <varname>meta.outputsToInstall</varname>. For example,
     </para>
-   </listitem>
-   <listitem>
+<screen><prompt>$ </prompt>nix-env -iA nixpkgs.coreutils.info</screen>
     <para>
-     NixOS provides configuration option <varname>environment.extraOutputsToInstall</varname> that allows adding extra outputs of <varname>environment.systemPackages</varname> atop the default ones. It's mainly meant for documentation and debug symbols, and it's also modified by specific options.
+     installs the <literal>"out"</literal> output (<varname>coreutils.meta.outputsToInstall</varname> is <literal>[ "out" ]</literal>) instead of the requested <literal>"info"</literal>.
     </para>
-    <note>
-     <para>
-      At this moment there is no similar configurability for packages installed by <command>nix-env</command>. You can still use approach from <xref linkend="sec-modify-via-packageOverrides" /> to override <varname>meta.outputsToInstall</varname> attributes, but that's a rather inconvenient way.
-     </para>
-    </note>
-   </listitem>
-  </itemizedlist>
+   </warning>
+
+   <para>
+    The only recourse to select an output with <command>nix-env</command> is to override the package's <varname>meta.outputsToInstall</varname>, using the functions described in <xref linkend="chap-overrides" />. For example, the following overlay adds the <literal>"info"</literal> output for the <varname>coreutils</varname> package:
+   </para>
+
+<programlisting>self: super:
+{
+  coreutils = super.coreutils.overrideAttrs (oldAttrs: {
+    meta = oldAttrs.meta // { outputsToInstall = oldAttrs.meta.outputsToInstall or [ "out" ] ++ [ "info" ]; };
+  });
+}
+</programlisting>
+  </section>
  </section>
  <section xml:id="sec-multiple-outputs-using-split-packages">
   <title>Using a split package</title>
diff --git a/nixpkgs/doc/stdenv/stdenv.xml b/nixpkgs/doc/stdenv/stdenv.xml
index ee93f39318b8..42fae73e8816 100644
--- a/nixpkgs/doc/stdenv/stdenv.xml
+++ b/nixpkgs/doc/stdenv/stdenv.xml
@@ -254,7 +254,7 @@ let f(h, h + 1, i) = i + h
 
   <variablelist>
    <title>Variables specifying dependencies</title>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-depsBuildBuild">
     <term>
      <varname>depsBuildBuild</varname>
     </term>
@@ -267,7 +267,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-nativeBuildInputs">
     <term>
      <varname>nativeBuildInputs</varname>
     </term>
@@ -280,7 +280,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-depsBuildTarget">
     <term>
      <varname>depsBuildTarget</varname>
     </term>
@@ -296,7 +296,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-depsHostHost">
     <term>
      <varname>depsHostHost</varname>
     </term>
@@ -306,7 +306,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-buildInputs">
     <term>
      <varname>buildInputs</varname>
     </term>
@@ -319,7 +319,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-depsTargetTarget">
     <term>
      <varname>depsTargetTarget</varname>
     </term>
@@ -329,7 +329,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-depsBuildBuildPropagated">
     <term>
      <varname>depsBuildBuildPropagated</varname>
     </term>
@@ -339,7 +339,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-propagatedNativeBuildInputs">
     <term>
      <varname>propagatedNativeBuildInputs</varname>
     </term>
@@ -349,7 +349,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-depsBuildTargetPropagated">
     <term>
      <varname>depsBuildTargetPropagated</varname>
     </term>
@@ -359,7 +359,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-depsHostHostPropagated">
     <term>
      <varname>depsHostHostPropagated</varname>
     </term>
@@ -369,7 +369,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-propagatedBuildInputs">
     <term>
      <varname>propagatedBuildInputs</varname>
     </term>
@@ -379,7 +379,7 @@ let f(h, h + 1, i) = i + h
      </para>
     </listitem>
    </varlistentry>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-depsTargetTargetPropagated">
     <term>
      <varname>depsTargetTargetPropagated</varname>
     </term>
@@ -396,7 +396,7 @@ let f(h, h + 1, i) = i + h
 
   <variablelist>
    <title>Variables affecting <literal>stdenv</literal> initialisation</title>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-NIX_DEBUG">
     <term>
      <varname>NIX_DEBUG</varname>
     </term>
@@ -410,7 +410,7 @@ let f(h, h + 1, i) = i + h
 
   <variablelist>
    <title>Attributes affecting build properties</title>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-enableParallelBuilding">
     <term>
      <varname>enableParallelBuilding</varname>
     </term>
@@ -427,7 +427,7 @@ let f(h, h + 1, i) = i + h
 
   <variablelist>
    <title>Special variables</title>
-   <varlistentry>
+   <varlistentry xml:id="var-stdenv-passthru">
     <term>
      <varname>passthru</varname>
     </term>
@@ -504,7 +504,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
     There are a number of variables that control what phases are executed and in what order:
     <variablelist>
      <title>Variables affecting phase control</title>
-     <varlistentry>
+     <varlistentry xml:id="var-stdenv-phases">
       <term>
        <varname>phases</varname>
       </term>
@@ -517,7 +517,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
        </para>
       </listitem>
      </varlistentry>
-     <varlistentry>
+     <varlistentry xml:id="var-stdenv-prePhases">
       <term>
        <varname>prePhases</varname>
       </term>
@@ -527,7 +527,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
        </para>
       </listitem>
      </varlistentry>
-     <varlistentry>
+     <varlistentry xml:id="var-stdenv-preConfigurePhases">
       <term>
        <varname>preConfigurePhases</varname>
       </term>
@@ -537,7 +537,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
        </para>
       </listitem>
      </varlistentry>
-     <varlistentry>
+     <varlistentry xml:id="var-stdenv-preBuildPhases">
       <term>
        <varname>preBuildPhases</varname>
       </term>
@@ -547,7 +547,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
        </para>
       </listitem>
      </varlistentry>
-     <varlistentry>
+     <varlistentry xml:id="var-stdenv-preInstallPhases">
       <term>
        <varname>preInstallPhases</varname>
       </term>
@@ -557,7 +557,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
        </para>
       </listitem>
      </varlistentry>
-     <varlistentry>
+     <varlistentry xml:id="var-stdenv-preFixupPhases">
       <term>
        <varname>preFixupPhases</varname>
       </term>
@@ -567,7 +567,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
        </para>
       </listitem>
      </varlistentry>
-     <varlistentry>
+     <varlistentry xml:id="var-stdenv-preDistPhases">
       <term>
        <varname>preDistPhases</varname>
       </term>
@@ -577,7 +577,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
        </para>
       </listitem>
      </varlistentry>
-     <varlistentry>
+     <varlistentry xml:id="var-stdenv-postPhases">
       <term>
        <varname>postPhases</varname>
       </term>
@@ -635,7 +635,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
 
    <variablelist>
     <title>Variables controlling the unpack phase</title>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-src">
      <term>
       <varname>srcs</varname> / <varname>src</varname>
      </term>
@@ -645,7 +645,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-sourceRoot">
      <term>
       <varname>sourceRoot</varname>
      </term>
@@ -655,7 +655,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-setSourceRoot">
      <term>
       <varname>setSourceRoot</varname>
      </term>
@@ -665,7 +665,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-preUnpack">
      <term>
       <varname>preUnpack</varname>
      </term>
@@ -675,7 +675,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-postUnpack">
      <term>
       <varname>postUnpack</varname>
      </term>
@@ -685,7 +685,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontUnpack">
      <term>
       <varname>dontUnpack</varname>
      </term>
@@ -695,7 +695,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontMakeSourcesWritable">
      <term>
       <varname>dontMakeSourcesWritable</varname>
      </term>
@@ -705,7 +705,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-unpackCmd">
      <term>
       <varname>unpackCmd</varname>
      </term>
@@ -727,7 +727,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
 
    <variablelist>
     <title>Variables controlling the patch phase</title>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontPatch">
      <term>
       <varname>dontPatch</varname>
      </term>
@@ -737,7 +737,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-patches">
      <term>
       <varname>patches</varname>
      </term>
@@ -747,7 +747,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-patchFlags">
      <term>
       <varname>patchFlags</varname>
      </term>
@@ -757,7 +757,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-prePatch">
      <term>
       <varname>prePatch</varname>
      </term>
@@ -767,7 +767,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-postPatch">
      <term>
       <varname>postPatch</varname>
      </term>
@@ -789,7 +789,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
 
    <variablelist>
     <title>Variables controlling the configure phase</title>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-configureScript">
      <term>
       <varname>configureScript</varname>
      </term>
@@ -799,7 +799,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-configureFlags">
      <term>
       <varname>configureFlags</varname>
      </term>
@@ -809,7 +809,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontConfigure">
      <term>
       <varname>dontConfigure</varname>
      </term>
@@ -819,7 +819,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-configureFlagsArray">
      <term>
       <varname>configureFlagsArray</varname>
      </term>
@@ -829,7 +829,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontAddPrefix">
      <term>
       <varname>dontAddPrefix</varname>
      </term>
@@ -839,7 +839,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-prefix">
      <term>
       <varname>prefix</varname>
      </term>
@@ -849,7 +849,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-prefixKey">
      <term>
       <varname>prefixKey</varname>
      </term>
@@ -859,7 +859,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontAddDisableDepTrack">
      <term>
       <varname>dontAddDisableDepTrack</varname>
      </term>
@@ -869,7 +869,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontFixLibtool">
      <term>
       <varname>dontFixLibtool</varname>
      </term>
@@ -885,7 +885,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontDisableStatic">
      <term>
       <varname>dontDisableStatic</varname>
      </term>
@@ -898,7 +898,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-configurePlatforms">
      <term>
       <varname>configurePlatforms</varname>
      </term>
@@ -913,7 +913,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-preConfigure">
      <term>
       <varname>preConfigure</varname>
      </term>
@@ -923,7 +923,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-postConfigure">
      <term>
       <varname>postConfigure</varname>
      </term>
@@ -945,7 +945,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
 
    <variablelist>
     <title>Variables controlling the build phase</title>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontBuild">
      <term>
       <varname>dontBuild</varname>
      </term>
@@ -955,7 +955,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-makefile">
      <term>
       <varname>makefile</varname>
      </term>
@@ -965,7 +965,7 @@ passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ]
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-makeFlags">
      <term>
       <varname>makeFlags</varname>
      </term>
@@ -983,7 +983,7 @@ makeFlags = [ "PREFIX=$(out)" ];
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-makeFlagsArray">
      <term>
       <varname>makeFlagsArray</varname>
      </term>
@@ -999,7 +999,7 @@ preBuild = ''
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-buildFlags">
      <term>
       <varname>buildFlags</varname> / <varname>buildFlagsArray</varname>
      </term>
@@ -1009,7 +1009,7 @@ preBuild = ''
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-preBuild">
      <term>
       <varname>preBuild</varname>
      </term>
@@ -1019,7 +1019,7 @@ preBuild = ''
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-postBuild">
      <term>
       <varname>postBuild</varname>
      </term>
@@ -1049,7 +1049,7 @@ preBuild = ''
 
    <variablelist>
     <title>Variables controlling the check phase</title>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-doCheck">
      <term>
       <varname>doCheck</varname>
      </term>
@@ -1067,11 +1067,11 @@ preBuild = ''
      </term>
      <listitem>
       <para>
-       See the build phase for details.
+       See the <link xlink:href="#var-stdenv-makeFlags">build phase</link> for details.
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-checkTarget">
      <term>
       <varname>checkTarget</varname>
      </term>
@@ -1081,7 +1081,7 @@ preBuild = ''
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-checkFlags">
      <term>
       <varname>checkFlags</varname> / <varname>checkFlagsArray</varname>
      </term>
@@ -1091,7 +1091,7 @@ preBuild = ''
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-checkInputs">
      <term>
       <varname>checkInputs</varname>
      </term>
@@ -1101,7 +1101,7 @@ preBuild = ''
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-preCheck">
      <term>
       <varname>preCheck</varname>
      </term>
@@ -1111,7 +1111,7 @@ preBuild = ''
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-postCheck">
      <term>
       <varname>postCheck</varname>
      </term>
@@ -1133,7 +1133,7 @@ preBuild = ''
 
    <variablelist>
     <title>Variables controlling the install phase</title>
-     <varlistentry>
+     <varlistentry xml:id="var-stdenv-dontInstall">
      <term>
        <varname>dontInstall</varname>
      </term>
@@ -1149,11 +1149,11 @@ preBuild = ''
      </term>
      <listitem>
       <para>
-       See the build phase for details.
+       See the <link xlink:href="#var-stdenv-makeFlags">build phase</link> for details.
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-installTargets">
      <term>
       <varname>installTargets</varname>
      </term>
@@ -1165,7 +1165,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-installFlags">
      <term>
       <varname>installFlags</varname> / <varname>installFlagsArray</varname>
      </term>
@@ -1175,7 +1175,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-preInstall">
      <term>
       <varname>preInstall</varname>
      </term>
@@ -1185,7 +1185,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-postInstall">
      <term>
       <varname>postInstall</varname>
      </term>
@@ -1229,7 +1229,7 @@ installTargets = "install-bin install-doc";</programlisting>
 
    <variablelist>
     <title>Variables controlling the fixup phase</title>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontFixup">
      <term>
       <varname>dontFixup</varname>
      </term>
@@ -1239,7 +1239,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontStrip">
      <term>
       <varname>dontStrip</varname>
      </term>
@@ -1249,7 +1249,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontStripHost">
      <term>
       <varname>dontStripHost</varname>
      </term>
@@ -1259,7 +1259,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontStripTarget">
      <term>
       <varname>dontStripTarget</varname>
      </term>
@@ -1269,7 +1269,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontMoveSbin">
      <term>
       <varname>dontMoveSbin</varname>
      </term>
@@ -1279,7 +1279,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-stripAllList">
      <term>
       <varname>stripAllList</varname>
      </term>
@@ -1289,7 +1289,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-stripAllFlags">
      <term>
       <varname>stripAllFlags</varname>
      </term>
@@ -1299,7 +1299,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-stripDebugList">
      <term>
       <varname>stripDebugList</varname>
      </term>
@@ -1309,7 +1309,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-stripDebugFlags">
      <term>
       <varname>stripDebugFlags</varname>
      </term>
@@ -1319,7 +1319,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontPatchELF">
      <term>
       <varname>dontPatchELF</varname>
      </term>
@@ -1329,7 +1329,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontPatchShebangs">
      <term>
       <varname>dontPatchShebangs</varname>
      </term>
@@ -1339,7 +1339,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontPruneLibtoolFiles">
      <term>
       <varname>dontPruneLibtoolFiles</varname>
      </term>
@@ -1349,7 +1349,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-forceShare">
      <term>
       <varname>forceShare</varname>
      </term>
@@ -1359,7 +1359,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-setupHook">
      <term>
       <varname>setupHook</varname>
      </term>
@@ -1370,7 +1370,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-preFixup">
      <term>
       <varname>preFixup</varname>
      </term>
@@ -1380,7 +1380,7 @@ installTargets = "install-bin install-doc";</programlisting>
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-postFixup">
      <term>
       <varname>postFixup</varname>
      </term>
@@ -1419,7 +1419,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
 
    <variablelist>
     <title>Variables controlling the installCheck phase</title>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-doInstallCheck">
      <term>
       <varname>doInstallCheck</varname>
      </term>
@@ -1431,7 +1431,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-installCheckTarget">
      <term>
       <varname>installCheckTarget</varname>
      </term>
@@ -1441,7 +1441,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-installCheckFlags">
      <term>
       <varname>installCheckFlags</varname> / <varname>installCheckFlagsArray</varname>
      </term>
@@ -1451,7 +1451,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-installCheckInputs">
      <term>
       <varname>installCheckInputs</varname>
      </term>
@@ -1461,7 +1461,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-preInstallCheck">
      <term>
       <varname>preInstallCheck</varname>
      </term>
@@ -1471,7 +1471,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-postInstallCheck">
      <term>
       <varname>postInstallCheck</varname>
      </term>
@@ -1493,7 +1493,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
 
    <variablelist>
     <title>Variables controlling the distribution phase</title>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-distTarget">
      <term>
       <varname>distTarget</varname>
      </term>
@@ -1503,7 +1503,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-distFlags">
      <term>
       <varname>distFlags</varname> / <varname>distFlagsArray</varname>
      </term>
@@ -1513,7 +1513,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-tarballs">
      <term>
       <varname>tarballs</varname>
      </term>
@@ -1523,7 +1523,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-dontCopyDist">
      <term>
       <varname>dontCopyDist</varname>
      </term>
@@ -1533,7 +1533,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-preDist">
      <term>
       <varname>preDist</varname>
      </term>
@@ -1543,7 +1543,7 @@ set debug-file-directory ~/.nix-profile/lib/debug
       </para>
      </listitem>
     </varlistentry>
-    <varlistentry>
+    <varlistentry xml:id="var-stdenv-postDist">
      <term>
       <varname>postDist</varname>
      </term>
@@ -1636,10 +1636,6 @@ substitute ./foo.in ./foo.out \
     --subst-var someVar
 </programlisting>
      </para>
-     <para>
-      <function>substitute</function> is implemented using the <command
-      xlink:href="http://replace.richardlloyd.org.uk/">replace</command> command. Unlike with the <command>sed</command> command, you don’t have to worry about escaping special characters. It supports performing substitutions on binary files (such as executables), though there you’ll probably want to make sure that the replacement string is as long as the replaced string.
-     </para>
     </listitem>
    </varlistentry>
    <varlistentry xml:id='fun-substituteInPlace'>
@@ -2019,6 +2015,9 @@ addEnvHooks "$hostOffset" myBashFunction
        In certain situations you may want to run the main command (<command>autoPatchelf</command>) of the setup hook on a file or a set of directories instead of unconditionally patching all outputs. This can be done by setting the <varname>dontAutoPatchelf</varname> environment variable to a non-empty value.
       </para>
       <para>
+       By default <command>autoPatchelf</command> will fail as soon as any ELF file requires a dependency which cannot be resolved via the given build inputs. In some situations you might prefer to just leave missing dependencies unpatched and continue to patch the rest. This can be achieved by setting the <envar>autoPatchelfIgnoreMissingDeps</envar> environment variable to a non-empty value.
+      </para>
+      <para>
        The <command>autoPatchelf</command> command also recognizes a <parameter class="command">--no-recurse</parameter> command line flag, which prevents it from recursing into subdirectories.
       </para>
      </listitem>
diff --git a/nixpkgs/doc/using/configuration.xml b/nixpkgs/doc/using/configuration.xml
index f19eddb58686..3e21b0e22843 100644
--- a/nixpkgs/doc/using/configuration.xml
+++ b/nixpkgs/doc/using/configuration.xml
@@ -66,7 +66,7 @@
    <listitem>
     <para>
      For allowing the build of a broken package once, you can use an environment variable for a single invocation of the nix tools:
-<programlisting>$ export NIXPKGS_ALLOW_BROKEN=1</programlisting>
+<screen><prompt>$ </prompt>export NIXPKGS_ALLOW_BROKEN=1</screen>
     </para>
    </listitem>
    <listitem>
@@ -85,19 +85,19 @@
   <title>Installing packages on unsupported systems</title>
 
   <para>
-   There are also two ways to try compiling a package which has been marked as unsuported for the given system.
+   There are also two ways to try compiling a package which has been marked as unsupported for the given system.
   </para>
 
   <itemizedlist>
    <listitem>
     <para>
-     For allowing the build of a broken package once, you can use an environment variable for a single invocation of the nix tools:
-<programlisting>$ export NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1</programlisting>
+     For allowing the build of an unsupported package once, you can use an environment variable for a single invocation of the nix tools:
+<screen><prompt>$ </prompt>export NIXPKGS_ALLOW_UNSUPPORTED_SYSTEM=1</screen>
     </para>
    </listitem>
    <listitem>
     <para>
-     For permanently allowing broken packages to be built, you may add <literal>allowUnsupportedSystem = true;</literal> to your user's configuration file, like this:
+     For permanently allowing unsupported packages to be built, you may add <literal>allowUnsupportedSystem = true;</literal> to your user's configuration file, like this:
 <programlisting>
 {
   allowUnsupportedSystem = true;
@@ -122,7 +122,7 @@
    <listitem>
     <para>
      To temporarily allow all unfree packages, you can use an environment variable for a single invocation of the nix tools:
-<programlisting>$ export NIXPKGS_ALLOW_UNFREE=1</programlisting>
+<screen><prompt>$ </prompt>export NIXPKGS_ALLOW_UNFREE=1</screen>
     </para>
    </listitem>
    <listitem>
@@ -162,10 +162,10 @@
 </programlisting>
     </para>
     <para>
-     The following example configuration blacklists the <literal>gpl3</literal> and <literal>agpl3</literal> licenses:
+     The following example configuration blacklists the <literal>gpl3Only</literal> and <literal>agpl3Only</literal> licenses:
 <programlisting>
 {
-  blacklistedLicenses = with stdenv.lib.licenses; [ agpl3 gpl3 ];
+  blacklistedLicenses = with stdenv.lib.licenses; [ agpl3Only gpl3Only ];
 }
 </programlisting>
     </para>
@@ -187,7 +187,7 @@
    <listitem>
     <para>
      To temporarily allow all insecure packages, you can use an environment variable for a single invocation of the nix tools:
-<programlisting>$ export NIXPKGS_ALLOW_INSECURE=1</programlisting>
+<screen><prompt>$ </prompt>export NIXPKGS_ALLOW_INSECURE=1</screen>
     </para>
    </listitem>
    <listitem>
diff --git a/nixpkgs/doc/using/overlays.xml b/nixpkgs/doc/using/overlays.xml
index 3fa68e32a3c5..4937e9508857 100644
--- a/nixpkgs/doc/using/overlays.xml
+++ b/nixpkgs/doc/using/overlays.xml
@@ -178,26 +178,54 @@ self: super:
          <para>
            <link
            xlink:href="https://software.intel.com/en-us/mkl">Intel
-           MKL</link> (only works on x86 architecture, unfree)
+           MKL</link> (only works on the x86_64 architecture, unfree)
          </para>
          <para>
            The Nixpkgs attribute is <literal>mkl</literal>.
          </para>
        </listitem>
+       <listitem>
+         <para>
+           <link
+           xlink:href="https://github.com/flame/blis">BLIS</link>
+         </para>
+         <para>
+          BLIS, available through the attribute
+          <literal>blis</literal>, is a framework for linear algebra kernels. In
+          addition, it implements the BLAS interface.
+         </para>
+       </listitem>
+       <listitem>
+         <para>
+          <link
+           xlink:href="https://developer.amd.com/amd-aocl/blas-library/">AMD
+          BLIS/LIBFLAME</link> (optimized for modern AMD x86_64 CPUs)
+         </para>
+         <para>
+          The AMD fork of the BLIS library, with attribute
+          <literal>amd-blis</literal>, extends BLIS with optimizations for
+          modern AMD CPUs. The changes are usually submitted to
+          the upstream BLIS project after some time. However, AMD BLIS
+          typically provides some performance improvements on AMD Zen CPUs.
+          The complementary AMD LIBFLAME library, with attribute
+          <literal>amd-libflame</literal>, provides a LAPACK implementation.
+         </para>
+       </listitem>
      </itemizedlist>
      <para>
        Introduced in <link
        xlink:href="https://github.com/NixOS/nixpkgs/pull/83888">PR
-       #83888</link>, we are able to override the ‘blas’ and ‘lapack’
-       packages to use different implementations, through the
-       ‘blasProvider’ and ‘lapackProvider’ argument. This can be used
+       #83888</link>, we are able to override the <literal>blas</literal>
+       and <literal>lapack</literal> packages to use different implementations,
+       through the <literal>blasProvider</literal> and
+       <literal>lapackProvider</literal> argument. This can be used
        to select a different provider. BLAS providers will have
        symlinks in <literal>$out/lib/libblas.so.3</literal> and
        <literal>$out/lib/libcblas.so.3</literal> to their respective
        BLAS libraries. Likewise, LAPACK providers will have symlinks
        in <literal>$out/lib/liblapack.so.3</literal> and
        <literal>$out/lib/liblapacke.so.3</literal> to their respective
-       LAPCK libraries. For example, Intel MKL is both a BLAS and
+       LAPACK libraries. For example, Intel MKL is both a BLAS and
        LAPACK provider. An overlay can be created to use Intel MKL
        that looks like:
      </para>
@@ -212,16 +240,17 @@ self: super:
     lapackProvider = self.mkl;
   }
 }
-     </programlisting>
+</programlisting>
      <para>
        This overlay uses Intel’s MKL library for both BLAS and LAPACK
        interfaces. Note that the same can be accomplished at runtime
-       using <literal>LD_LIBRARY_PATH</literal> of libblas.so.3 and
-       liblapack.so.3. For instance:
+       using <literal>LD_LIBRARY_PATH</literal> of
+       <literal>libblas.so.3</literal> and
+       <literal>liblapack.so.3</literal>. For instance:
      </para>
-     <programlisting>
-$ LD_LIBRARY_PATH=$(nix-build -A mkl)/lib:$LD_LIBRARY_PATH nix-shell -p octave --run octave
-     </programlisting>
+<screen>
+<prompt>$ </prompt>LD_LIBRARY_PATH=$(nix-build -A mkl)/lib:$LD_LIBRARY_PATH nix-shell -p octave --run octave
+</screen>
      <para>
        Intel MKL requires an <literal>openmp</literal> implementation
        when running with multiple processors. By default,
@@ -259,7 +288,7 @@ assert (!blas.isILP64) &amp;&amp; (!lapack.isILP64);
 stdenv.mkDerivation {
   ...
 }
-     </programlisting>
+</programlisting>
    </section>
  </section>
 </chapter>
diff --git a/nixpkgs/flake.nix b/nixpkgs/flake.nix
index e37621c6fc1c..8440c460b16c 100644
--- a/nixpkgs/flake.nix
+++ b/nixpkgs/flake.nix
@@ -5,30 +5,57 @@
 
   outputs = { self }:
     let
-
       jobs = import ./pkgs/top-level/release.nix {
         nixpkgs = self;
       };
 
       lib = import ./lib;
 
-      systems = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" ];
+      systems = [
+        "x86_64-linux"
+        "i686-linux"
+        "x86_64-darwin"
+        "aarch64-linux"
+        "armv6l-linux"
+        "armv7l-linux"
+      ];
 
       forAllSystems = f: lib.genAttrs systems (system: f system);
 
     in
     {
-      lib = lib // {
+      lib = lib.extend (final: prev: {
         nixosSystem = { modules, ... } @ args:
           import ./nixos/lib/eval-config.nix (args // {
-            modules = modules ++
-              [ { system.nixos.versionSuffix =
-                    ".${lib.substring 0 8 (self.lastModifiedDate or self.lastModified)}.${self.shortRev or "dirty"}";
-                  system.nixos.revision = lib.mkIf (self ? rev) self.rev;
+            modules =
+              let
+                vmConfig = (import ./nixos/lib/eval-config.nix
+                  (args // {
+                    modules = modules ++ [ ./nixos/modules/virtualisation/qemu-vm.nix ];
+                  })).config;
+
+                vmWithBootLoaderConfig = (import ./nixos/lib/eval-config.nix
+                  (args // {
+                    modules = modules ++ [
+                      ./nixos/modules/virtualisation/qemu-vm.nix
+                      { virtualisation.useBootLoader = true; }
+                    ];
+                  })).config;
+              in
+              modules ++ [
+                {
+                  system.nixos.versionSuffix =
+                    ".${final.substring 0 8 (self.lastModifiedDate or self.lastModified)}.${self.shortRev or "dirty"}";
+                  system.nixos.revision = final.mkIf (self ? rev) self.rev;
+
+                  system.build = {
+                    vm = vmConfig.system.build.vm;
+                    vmWithBootLoader = vmWithBootLoaderConfig.system.build.vm;
+                  };
                 }
               ];
           });
-      };
+      });
 
       checks.x86_64-linux.tarball = jobs.tarball;
 
diff --git a/nixpkgs/lib/attrsets.nix b/nixpkgs/lib/attrsets.nix
index 82bea7af31fc..d91d7a0cd47e 100644
--- a/nixpkgs/lib/attrsets.nix
+++ b/nixpkgs/lib/attrsets.nix
@@ -469,6 +469,7 @@ rec {
   getBin = getOutput "bin";
   getLib = getOutput "lib";
   getDev = getOutput "dev";
+  getMan = getOutput "man";
 
   /* Pick the outputs of packages to place in buildInputs */
   chooseDevOutputs = drvs: builtins.map getDev drvs;
diff --git a/nixpkgs/lib/default.nix b/nixpkgs/lib/default.nix
index e7f59a67abbd..43b9ab5930c4 100644
--- a/nixpkgs/lib/default.nix
+++ b/nixpkgs/lib/default.nix
@@ -67,7 +67,7 @@ let
     inherit (trivial) id const pipe concat or and bitAnd bitOr bitXor
       bitNot boolToString mergeAttrs flip mapNullable inNixShell min max
       importJSON warn info showWarnings nixpkgsVersion version mod compare
-      splitByAndCompare functionArgs setFunctionArgs isFunction;
+      splitByAndCompare functionArgs setFunctionArgs isFunction toHexString toBaseDigits;
     inherit (fixedPoints) fix fix' converge extends composeExtensions
       makeExtensible makeExtensibleWithCustomName;
     inherit (attrsets) attrByPath hasAttrByPath setAttrByPath
@@ -77,7 +77,7 @@ let
       genAttrs isDerivation toDerivation optionalAttrs
       zipAttrsWithNames zipAttrsWith zipAttrs recursiveUpdateUntil
       recursiveUpdate matchAttrs overrideExisting getOutput getBin
-      getLib getDev chooseDevOutputs zipWithNames zip
+      getLib getDev getMan chooseDevOutputs zipWithNames zip
       recurseIntoAttrs dontRecurseIntoAttrs;
     inherit (lists) singleton forEach foldr fold foldl foldl' imap0 imap1
       concatMap flatten remove findSingle findFirst any all count
diff --git a/nixpkgs/lib/generators.nix b/nixpkgs/lib/generators.nix
index efe6ea6031d3..501a23599f45 100644
--- a/nixpkgs/lib/generators.nix
+++ b/nixpkgs/lib/generators.nix
@@ -48,8 +48,10 @@ rec {
     else if isAttrs    v then err "attrsets" v
     # functions can’t be printed of course
     else if isFunction v then err "functions" v
-    # let’s not talk about floats. There is no sensible `toString` for them.
-    else if isFloat    v then err "floats" v
+    # Floats currently can't be converted to precise strings,
+    # condition warning on nix version once this isn't a problem anymore
+    # See https://github.com/NixOS/nix/pull/3480
+    else if isFloat    v then libStr.floatToString v
     else err "this value is" (toString v);
 
 
@@ -201,40 +203,59 @@ rec {
     /* If this option is true, attrsets like { __pretty = fn; val = …; }
        will use fn to convert val to a pretty printed representation.
        (This means fn is type Val -> String.) */
-    allowPrettyValues ? false
-  }@args: v: with builtins;
+    allowPrettyValues ? false,
+    /* If this option is true, the output is indented with newlines for attribute sets and lists */
+    multiline ? true
+  }@args: let
+    go = indent: v: with builtins;
     let     isPath   = v: typeOf v == "path";
+            introSpace = if multiline then "\n${indent}  " else " ";
+            outroSpace = if multiline then "\n${indent}" else " ";
     in if   isInt      v then toString v
     else if isFloat    v then "~${toString v}"
-    else if isString   v then ''"${libStr.escape [''"''] v}"''
+    else if isString   v then
+      let
+        # Separate a string into its lines
+        newlineSplits = filter (v: ! isList v) (builtins.split "\n" v);
+        # For a '' string terminated by a \n, which happens when the closing '' is on a new line
+        multilineResult = "''" + introSpace + concatStringsSep introSpace (lib.init newlineSplits) + outroSpace + "''";
+        # For a '' string not terminated by a \n, which happens when the closing '' is not on a new line
+        multilineResult' = "''" + introSpace + concatStringsSep introSpace newlineSplits + "''";
+        # For single lines, replace all newlines with their escaped representation
+        singlelineResult = "\"" + libStr.escape [ "\"" ] (concatStringsSep "\\n" newlineSplits) + "\"";
+      in if multiline && length newlineSplits > 1 then
+        if lib.last newlineSplits == "" then multilineResult else multilineResult'
+      else singlelineResult
     else if true  ==   v then "true"
     else if false ==   v then "false"
     else if null  ==   v then "null"
     else if isPath     v then toString v
-    else if isList     v then "[ "
-        + libStr.concatMapStringsSep " " (toPretty args) v
-      + " ]"
+    else if isList     v then
+      if v == [] then "[ ]"
+      else "[" + introSpace
+        + libStr.concatMapStringsSep introSpace (go (indent + "  ")) v
+        + outroSpace + "]"
+    else if isFunction v then
+      let fna = lib.functionArgs v;
+          showFnas = concatStringsSep ", " (libAttr.mapAttrsToList
+                       (name: hasDefVal: if hasDefVal then name + "?" else name)
+                       fna);
+      in if fna == {}    then "<function>"
+                         else "<function, args: {${showFnas}}>"
     else if isAttrs    v then
       # apply pretty values if allowed
       if attrNames v == [ "__pretty" "val" ] && allowPrettyValues
          then v.__pretty v.val
-      # TODO: there is probably a better representation?
+      else if v == {} then "{ }"
       else if v ? type && v.type == "derivation" then
-        "<δ:${v.name}>"
-        # "<δ:${concatStringsSep "," (builtins.attrNames v)}>"
-      else "{ "
-          + libStr.concatStringsSep " " (libAttr.mapAttrsToList
+        "<derivation ${v.drvPath}>"
+      else "{" + introSpace
+          + libStr.concatStringsSep introSpace (libAttr.mapAttrsToList
               (name: value:
-                "${toPretty args name} = ${toPretty args value};") v)
-        + " }"
-    else if isFunction v then
-      let fna = lib.functionArgs v;
-          showFnas = concatStringsSep "," (libAttr.mapAttrsToList
-                       (name: hasDefVal: if hasDefVal then "(${name})" else name)
-                       fna);
-      in if fna == {}    then "<λ>"
-                         else "<λ:{${showFnas}}>"
+                "${libStr.escapeNixIdentifier name} = ${go (indent + "  ") value};") v)
+        + outroSpace + "}"
     else abort "generators.toPretty: should never happen (v = ${v})";
+  in go "";
 
   # PLIST handling
   toPlist = {}: v: let
diff --git a/nixpkgs/lib/licenses.nix b/nixpkgs/lib/licenses.nix
index b799a6ae8a43..a704a6884c7d 100644
--- a/nixpkgs/lib/licenses.nix
+++ b/nixpkgs/lib/licenses.nix
@@ -28,7 +28,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "Academic Free License v3.0";
   };
 
-  agpl3 = spdx {
+  agpl3Only = spdx {
     spdxId = "AGPL-3.0-only";
     fullName = "GNU Affero General Public License v3.0 only";
   };
@@ -85,6 +85,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = ''Beerware License'';
   };
 
+  blueOak100 = spdx {
+    spdxId = "BlueOak-1.0.0";
+    fullName = "Blue Oak Model License 1.0.0";
+  };
+
   bsd0 = spdx {
     spdxId = "0BSD";
     fullName = "BSD Zero Clause License";
@@ -95,6 +100,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = ''BSD 2-clause "Simplified" License'';
   };
 
+  bsd2Patent = spdx {
+    spdxId = "BSD-2-Clause-Patent";
+    fullName = ''BSD-2-Clause Plus Patent License'';
+  };
+
   bsd3 = spdx {
     spdxId = "BSD-3-Clause";
     fullName = ''BSD 3-clause "New" or "Revised" License'';
@@ -105,6 +115,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = ''BSD 4-clause "Original" or "Old" License'';
   };
 
+  bsdProtection = spdx {
+    spdxId = "BSD-Protection";
+    fullName = "BSD Protection License";
+  };
+
   bsl11 = {
     fullName = "Business Source License 1.1";
     url = "https://mariadb.com/bsl11";
@@ -276,12 +291,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "European Union Public License 1.2";
   };
 
-  fdl11 = spdx {
+  fdl11Only = spdx {
     spdxId = "GFDL-1.1-only";
     fullName = "GNU Free Documentation License v1.1 only";
   };
 
-  fdl12 = spdx {
+  fdl12Only = spdx {
     spdxId = "GFDL-1.2-only";
     fullName = "GNU Free Documentation License v1.2 only";
   };
@@ -291,7 +306,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "GNU Free Documentation License v1.2 or later";
   };
 
-  fdl13 = spdx {
+  fdl13Only = spdx {
     spdxId = "GFDL-1.3-only";
     fullName = "GNU Free Documentation License v1.3 only";
   };
@@ -322,7 +337,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     free = false;
   };
 
-  gpl1 = spdx {
+  gpl1Only = spdx {
     spdxId = "GPL-1.0-only";
     fullName = "GNU General Public License v1.0 only";
   };
@@ -332,7 +347,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "GNU General Public License v1.0 or later";
   };
 
-  gpl2 = spdx {
+  gpl2Only = spdx {
     spdxId = "GPL-2.0-only";
     fullName = "GNU General Public License v2.0 only";
   };
@@ -357,7 +372,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "GNU General Public License v2.0 or later";
   };
 
-  gpl3 = spdx {
+  gpl3Only = spdx {
     spdxId = "GPL-3.0-only";
     fullName = "GNU General Public License v3.0 only";
   };
@@ -421,18 +436,19 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
   };
 
   # Proprietary binaries; free to redistribute without modification.
+  databricks = {
+    fullName = "Databricks Proprietary License";
+    url = "https://pypi.org/project/databricks-connect";
+    free = false;
+  };
+
   issl = {
     fullName = "Intel Simplified Software License";
     url = "https://software.intel.com/en-us/license/intel-simplified-software-license";
     free = false;
   };
 
-  jasper = spdx {
-    spdxId = "JasPer-2.0";
-    fullName = "JasPer License";
-  };
-
-  lgpl2 = spdx {
+  lgpl2Only = spdx {
     spdxId = "LGPL-2.0-only";
     fullName = "GNU Library General Public License v2 only";
   };
@@ -442,7 +458,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "GNU Library General Public License v2 or later";
   };
 
-  lgpl21 = spdx {
+  lgpl21Only = spdx {
     spdxId = "LGPL-2.1-only";
     fullName = "GNU Lesser General Public License v2.1 only";
   };
@@ -452,7 +468,7 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "GNU Lesser General Public License v2.1 or later";
   };
 
-  lgpl3 = spdx {
+  lgpl3Only = spdx {
     spdxId = "LGPL-3.0-only";
     fullName = "GNU Lesser General Public License v3.0 only";
   };
@@ -462,6 +478,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "GNU Lesser General Public License v3.0 or later";
   };
 
+  lgpllr = spdx {
+    spdxId = "LGPLLR";
+    fullName = "Lesser General Public License For Linguistic Resources";
+  };
+
   libpng = spdx {
     spdxId = "Libpng";
     fullName = "libpng License";
@@ -482,6 +503,11 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     url = "https://opensource.franz.com/preamble.html";
   };
 
+  llvm-exception = spdx {
+    spdxId = "LLVM-exception";
+    fullName = "LLVM Exception"; # LLVM exceptions to the Apache 2.0 License
+  };
+
   lppl12 = spdx {
     spdxId = "LPPL-1.2";
     fullName = "LaTeX Project Public License v1.2";
@@ -545,6 +571,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     fullName = "Non-Profit Open Software License 3.0";
   };
 
+  obsidian = {
+    fullName = "Obsidian End User Agreement";
+    url = "https://obsidian.md/eula";
+    free = false;
+  };
+
   ocamlpro_nc = {
     fullName = "OCamlPro Non Commercial license version 1";
     url = "https://alt-ergo.ocamlpro.com/http/alt-ergo-2.2.0/OCamlPro-Non-Commercial-License.pdf";
@@ -612,6 +644,12 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     url = "https://enterprise.dejacode.com/licenses/public/purdue-bsd";
   };
 
+  prosperity30 = {
+    fullName = "Prosperity-3.0.0";
+    free = false;
+    url = "https://prosperitylicense.com/versions/3.0.0.html";
+  };
+
   qhull = spdx {
     spdxId = "Qhull";
     fullName = "Qhull License";
@@ -761,4 +799,16 @@ lib.mapAttrs (n: v: v // { shortName = n; }) {
     spdxId = "ZPL-2.1";
     fullName = "Zope Public License 2.1";
   };
+} // {
+  # TODO: remove legacy aliases
+  agpl3 = lib.licenses.agpl3Only;
+  fdl11 = lib.licenses.fdl11Only;
+  fdl12 = lib.licenses.fdl12Only;
+  fdl13 = lib.licenses.fdl13Only;
+  gpl1 = lib.licenses.gpl1Only;
+  gpl2 = lib.licenses.gpl2Only;
+  gpl3 = lib.licenses.gpl3Only;
+  lgpl2 = lib.licenses.lgpl2Only;
+  lgpl21 = lib.licenses.lgpl21Only;
+  lgpl3 = lib.licenses.lgpl3Only;
 }
diff --git a/nixpkgs/lib/modules.nix b/nixpkgs/lib/modules.nix
index c18fec66c705..02a669df6593 100644
--- a/nixpkgs/lib/modules.nix
+++ b/nixpkgs/lib/modules.nix
@@ -58,6 +58,23 @@ rec {
             default = check;
             description = "Whether to check whether all option definitions have matching declarations.";
           };
+
+          _module.freeformType = mkOption {
+            # Disallow merging for now, but could be implemented nicely with a `types.optionType`
+            type = types.nullOr (types.uniq types.attrs);
+            internal = true;
+            default = null;
+            description = ''
+              If set, merge all definitions that don't have an associated option
+              together using this type. The result then gets combined with the
+              values of all declared options to produce the final <literal>
+              config</literal> value.
+
+              If this is <literal>null</literal>, definitions without an option
+              will throw an error unless <option>_module.check</option> is
+              turned off.
+            '';
+          };
         };
 
         config = {
@@ -65,35 +82,55 @@ rec {
         };
       };
 
-      collected = collectModules
-        (specialArgs.modulesPath or "")
-        (modules ++ [ internalModule ])
-        ({ inherit config options lib; } // specialArgs);
-
-      options = mergeModules prefix (reverseList collected);
-
-      # Traverse options and extract the option values into the final
-      # config set.  At the same time, check whether all option
-      # definitions have matching declarations.
-      # !!! _module.check's value can't depend on any other config values
-      # without an infinite recursion. One way around this is to make the
-      # 'config' passed around to the modules be unconditionally unchecked,
-      # and only do the check in 'result'.
-      config = yieldConfig prefix options;
-      yieldConfig = prefix: set:
-        let res = removeAttrs (mapAttrs (n: v:
-          if isOption v then v.value
-          else yieldConfig (prefix ++ [n]) v) set) ["_definedNames"];
-        in
-        if options._module.check.value && set ? _definedNames then
-          foldl' (res: m:
-            foldl' (res: name:
-              if set ? ${name} then res else throw "The option `${showOption (prefix ++ [name])}' defined in `${m.file}' does not exist.")
-              res m.names)
-            res set._definedNames
-        else
-          res;
-      result = {
+      merged =
+        let collected = collectModules
+          (specialArgs.modulesPath or "")
+          (modules ++ [ internalModule ])
+          ({ inherit lib options config; } // specialArgs);
+        in mergeModules prefix (reverseList collected);
+
+      options = merged.matchedOptions;
+
+      config =
+        let
+
+          # For definitions that have an associated option
+          declaredConfig = mapAttrsRecursiveCond (v: ! isOption v) (_: v: v.value) options;
+
+          # If freeformType is set, this is for definitions that don't have an associated option
+          freeformConfig =
+            let
+              defs = map (def: {
+                file = def.file;
+                value = setAttrByPath def.prefix def.value;
+              }) merged.unmatchedDefns;
+            in if defs == [] then {}
+            else declaredConfig._module.freeformType.merge prefix defs;
+
+        in if declaredConfig._module.freeformType == null then declaredConfig
+          # Because all definitions that had an associated option ended in
+          # declaredConfig, freeformConfig can only contain the non-option
+          # paths, meaning recursiveUpdate will never override any value
+          else recursiveUpdate freeformConfig declaredConfig;
+
+      checkUnmatched =
+        if config._module.check && config._module.freeformType == null && merged.unmatchedDefns != [] then
+          let
+            firstDef = head merged.unmatchedDefns;
+            baseMsg = "The option `${showOption (prefix ++ firstDef.prefix)}' does not exist. Definition values:${showDefs [ firstDef ]}";
+          in
+            if attrNames options == [ "_module" ]
+              then throw ''
+                ${baseMsg}
+
+                However there are no options defined in `${showOption prefix}'. Are you sure you've
+                declared your options properly? This can happen if you e.g. declared your options in `types.submodule'
+                under `config' rather than `options'.
+              ''
+            else throw baseMsg
+        else null;
+
+      result = builtins.seq checkUnmatched {
         inherit options;
         config = removeAttrs config [ "_module" ];
         inherit (config) _module;
@@ -174,12 +211,16 @@ rec {
   /* Massage a module into canonical form, that is, a set consisting
      of ‘options’, ‘config’ and ‘imports’ attributes. */
   unifyModuleSyntax = file: key: m:
-    let addMeta = config: if m ? meta
-      then mkMerge [ config { meta = m.meta; } ]
-      else config;
+    let
+      addMeta = config: if m ? meta
+        then mkMerge [ config { meta = m.meta; } ]
+        else config;
+      addFreeformType = config: if m ? freeformType
+        then mkMerge [ config { _module.freeformType = m.freeformType; } ]
+        else config;
     in
     if m ? config || m ? options then
-      let badAttrs = removeAttrs m ["_file" "key" "disabledModules" "imports" "options" "config" "meta"]; in
+      let badAttrs = removeAttrs m ["_file" "key" "disabledModules" "imports" "options" "config" "meta" "freeformType"]; in
       if badAttrs != {} then
         throw "Module `${key}' has an unsupported attribute `${head (attrNames badAttrs)}'. This is caused by introducing a top-level `config' or `options' attribute. Add configuration attributes immediately on the top level instead, or move all of them (namely: ${toString (attrNames badAttrs)}) into the explicit `config' attribute."
       else
@@ -188,7 +229,7 @@ rec {
           disabledModules = m.disabledModules or [];
           imports = m.imports or [];
           options = m.options or {};
-          config = addMeta (m.config or {});
+          config = addFreeformType (addMeta (m.config or {}));
         }
     else
       { _file = m._file or file;
@@ -196,7 +237,7 @@ rec {
         disabledModules = m.disabledModules or [];
         imports = m.require or [] ++ m.imports or [];
         options = {};
-        config = addMeta (removeAttrs m ["_file" "key" "disabledModules" "require" "imports"]);
+        config = addFreeformType (addMeta (removeAttrs m ["_file" "key" "disabledModules" "require" "imports" "freeformType"]));
       };
 
   applyIfFunction = key: f: args@{ config, options, lib, ... }: if isFunction f then
@@ -233,7 +274,23 @@ rec {
      declarations in all modules, combining them into a single set.
      At the same time, for each option declaration, it will merge the
      corresponding option definitions in all machines, returning them
-     in the ‘value’ attribute of each option. */
+     in the ‘value’ attribute of each option.
+
+     This returns a set like
+       {
+         # A recursive set of options along with their final values
+         matchedOptions = {
+           foo = { _type = "option"; value = "option value of foo"; ... };
+           bar.baz = { _type = "option"; value = "option value of bar.baz"; ... };
+           ...
+         };
+         # A list of definitions that weren't matched by any option
+         unmatchedDefns = [
+           { file = "file.nix"; prefix = [ "qux" ]; value = "qux"; }
+           ...
+         ];
+       }
+  */
   mergeModules = prefix: modules:
     mergeModules' prefix modules
       (concatMap (m: map (config: { file = m._file; inherit config; }) (pushDownProperties m.config)) modules);
@@ -280,9 +337,9 @@ rec {
       defnsByName' = byName "config" (module: value:
           [{ inherit (module) file; inherit value; }]
         ) configs;
-    in
-    (flip mapAttrs declsByName (name: decls:
-      # We're descending into attribute ‘name’.
+
+      resultsByName = flip mapAttrs declsByName (name: decls:
+        # We're descending into attribute ‘name’.
         let
           loc = prefix ++ [name];
           defns = defnsByName.${name} or [];
@@ -291,7 +348,10 @@ rec {
         in
           if nrOptions == length decls then
             let opt = fixupOptionType loc (mergeOptionDecls loc decls);
-            in evalOptionValue loc opt defns'
+            in {
+              matchedOptions = evalOptionValue loc opt defns';
+              unmatchedDefns = [];
+            }
           else if nrOptions != 0 then
             let
               firstOption = findFirst (m: isOption m.options) "" decls;
@@ -299,9 +359,27 @@ rec {
             in
               throw "The option `${showOption loc}' in `${firstOption._file}' is a prefix of options in `${firstNonOption._file}'."
           else
-            mergeModules' loc decls defns
-      ))
-    // { _definedNames = map (m: { inherit (m) file; names = attrNames m.config; }) configs; };
+            mergeModules' loc decls defns);
+
+      matchedOptions = mapAttrs (n: v: v.matchedOptions) resultsByName;
+
+      # an attrset 'name' => list of unmatched definitions for 'name'
+      unmatchedDefnsByName =
+        # Propagate all unmatched definitions from nested option sets
+        mapAttrs (n: v: v.unmatchedDefns) resultsByName
+        # Plus the definitions for the current prefix that don't have a matching option
+        // removeAttrs defnsByName' (attrNames matchedOptions);
+    in {
+      inherit matchedOptions;
+
+      # Transforms unmatchedDefnsByName into a list of definitions
+      unmatchedDefns = concatLists (mapAttrsToList (name: defs:
+        map (def: def // {
+          # Set this so we know when the definition first left unmatched territory
+          prefix = [name] ++ (def.prefix or []);
+        }) defs
+      ) unmatchedDefnsByName);
+    };
 
   /* Merge multiple option declarations into a single declaration.  In
      general, there should be only one declaration of each option.
@@ -371,7 +449,13 @@ rec {
       # Handle properties, check types, and merge everything together.
       res =
         if opt.readOnly or false && length defs' > 1 then
-          throw "The option `${showOption loc}' is read-only, but it's set multiple times."
+          let
+            # For a better error message, evaluate all readOnly definitions as
+            # if they were the only definition.
+            separateDefs = map (def: def // {
+              value = (mergeDefinitions loc opt.type [ def ]).mergedValue;
+            }) defs';
+          in throw "The option `${showOption loc}' is read-only, but it's set multiple times. Definition values:${showDefs separateDefs}"
         else
           mergeDefinitions loc opt.type defs';
 
@@ -379,7 +463,11 @@ rec {
       # yield a value computed from the definitions
       value = if opt ? apply then opt.apply res.mergedValue else res.mergedValue;
 
-    in opt //
+      warnDeprecation =
+        if opt.type.deprecationMessage == null then id
+        else warn "The type `types.${opt.type.name}' of option `${showOption loc}' defined in ${showFiles opt.declarations} is deprecated. ${opt.type.deprecationMessage}";
+
+    in warnDeprecation opt //
       { value = builtins.addErrorContext "while evaluating the option `${showOption loc}':" value;
         inherit (res.defsFinal') highestPrio;
         definitions = map (def: def.value) res.defsFinal;
@@ -415,8 +503,8 @@ rec {
     mergedValue =
       if isDefined then
         if all (def: type.check def.value) defsFinal then type.merge loc defsFinal
-        else let firstInvalid = findFirst (def: ! type.check def.value) null defsFinal;
-        in throw "The option value `${showOption loc}' in `${firstInvalid.file}' is not of type `${type.description}'."
+        else let allInvalid = filter (def: ! type.check def.value) defsFinal;
+        in throw "A definition for option `${showOption loc}' is not of type `${type.description}'. Definition values:${showDefs allInvalid}"
       else
         # (nixos-option detects this specific error message and gives it special
         # handling.  If changed here, please change it there too.)
@@ -535,7 +623,6 @@ rec {
         if tp.name == "option set" || tp.name == "submodule" then
           throw "The option ${showOption loc} uses submodules without a wrapping type, in ${showFiles opt.declarations}."
         else if optionSetIn "attrsOf" then types.attrsOf (types.submodule options)
-        else if optionSetIn "loaOf"   then types.loaOf   (types.submodule options)
         else if optionSetIn "listOf"  then types.listOf  (types.submodule options)
         else if optionSetIn "nullOr"  then types.nullOr  (types.submodule options)
         else tp;
diff --git a/nixpkgs/lib/options.nix b/nixpkgs/lib/options.nix
index 38f4f1329f21..5b7482c80937 100644
--- a/nixpkgs/lib/options.nix
+++ b/nixpkgs/lib/options.nix
@@ -96,22 +96,26 @@ rec {
     else if all isBool list then foldl' lib.or false list
     else if all isString list then lib.concatStrings list
     else if all isInt list && all (x: x == head list) list then head list
-    else throw "Cannot merge definitions of `${showOption loc}' given in ${showFiles (getFiles defs)}.";
+    else throw "Cannot merge definitions of `${showOption loc}'. Definition values:${showDefs defs}";
 
   mergeOneOption = loc: defs:
     if defs == [] then abort "This case should never happen."
     else if length defs != 1 then
-      throw "The unique option `${showOption loc}' is defined multiple times, in:\n - ${concatStringsSep "\n - " (getFiles defs)}."
+      throw "The unique option `${showOption loc}' is defined multiple times. Definition values:${showDefs defs}"
     else (head defs).value;
 
   /* "Merge" option definitions by checking that they all have the same value. */
   mergeEqualOption = loc: defs:
     if defs == [] then abort "This case should never happen."
-    else foldl' (val: def:
-      if def.value != val then
-        throw "The option `${showOption loc}' has conflicting definitions, in ${showFiles (getFiles defs)}."
+    # Return early if we only have one element
+    # This also makes it work for functions, because the foldl' below would try
+    # to compare the first element with itself, which is false for functions
+    else if length defs == 1 then (elemAt defs 0).value
+    else (foldl' (first: def:
+      if def.value != first.value then
+        throw "The option `${showOption loc}' has conflicting definition values:${showDefs [ first def ]}"
       else
-        val) (head defs).value defs;
+        first) (head defs) defs).value;
 
   /* Extracts values of all "value" keys of the given list.
 
@@ -209,6 +213,24 @@ rec {
          else escaped;
     in (concatStringsSep ".") (map escapeOptionPart parts);
   showFiles = files: concatStringsSep " and " (map (f: "`${f}'") files);
+
+  showDefs = defs: concatMapStrings (def:
+    let
+      # Pretty print the value for display, if successful
+      prettyEval = builtins.tryEval (lib.generators.toPretty {} def.value);
+      # Split it into its lines
+      lines = filter (v: ! isList v) (builtins.split "\n" prettyEval.value);
+      # Only display the first 5 lines, and indent them for better visibility
+      value = concatStringsSep "\n    " (take 5 lines ++ optional (length lines > 5) "...");
+      result =
+        # Don't print any value if evaluating the value strictly fails
+        if ! prettyEval.success then ""
+        # Put it on a new line if it consists of multiple
+        else if length lines > 1 then ":\n    " + value
+        else ": " + value;
+    in "\n- In `${def.file}'${result}"
+  ) defs;
+
   unknownModule = "<unknown-file>";
 
 }
diff --git a/nixpkgs/lib/sources.nix b/nixpkgs/lib/sources.nix
index ed9bce485300..776fcc32052b 100644
--- a/nixpkgs/lib/sources.nix
+++ b/nixpkgs/lib/sources.nix
@@ -145,10 +145,14 @@ rec {
            # packed-refs file, so we have to grep through it:
            then
              let fileContent = readFile packedRefsName;
-                 matchRef    = match (".*\n([^\n ]*) " + file + "\n.*") fileContent;
-             in if  matchRef == null
+                 matchRef = builtins.match "([a-z0-9]+) ${file}";
+                 isRef = s: builtins.isString s && (matchRef s) != null;
+                 # there is a bug in libstdc++ leading to stackoverflow for long strings:
+                 # https://github.com/NixOS/nix/issues/2147#issuecomment-659868795
+                 refs = builtins.filter isRef (builtins.split "\n" fileContent);
+             in if refs == []
                 then throw ("Could not find " + file + " in " + packedRefsName)
-                else lib.head matchRef
+                else lib.head (matchRef (lib.head refs))
 
            else throw ("Not a .git directory: " + path);
     in readCommitFromFile "HEAD";
diff --git a/nixpkgs/lib/strings.nix b/nixpkgs/lib/strings.nix
index 74e3eaa0722d..9fa9f023561e 100644
--- a/nixpkgs/lib/strings.nix
+++ b/nixpkgs/lib/strings.nix
@@ -612,6 +612,22 @@ rec {
   */
   fixedWidthNumber = width: n: fixedWidthString width "0" (toString n);
 
+  /* Convert a float to a string, but emit a warning when precision is lost
+     during the conversion
+
+     Example:
+       floatToString 0.000001
+       => "0.000001"
+       floatToString 0.0000001
+       => trace: warning: Imprecise conversion from float to string 0.000000
+          "0.000000"
+  */
+  floatToString = float: let
+    result = toString float;
+    precise = float == builtins.fromJSON result;
+  in if precise then result
+    else lib.warn "Imprecise conversion from float to string ${result}" result;
+
   /* Check whether a value can be coerced to a string */
   isCoercibleToString = x:
     builtins.elem (builtins.typeOf x) [ "path" "string" "null" "int" "float" "bool" ] ||
@@ -673,14 +689,15 @@ rec {
             "/prefix/nix-profiles-library-paths.patch"
             "/prefix/compose-search-path.patch" ]
   */
-  readPathsFromFile = rootPath: file:
-    let
-      lines = lib.splitString "\n" (builtins.readFile file);
-      removeComments = lib.filter (line: line != "" && !(lib.hasPrefix "#" line));
-      relativePaths = removeComments lines;
-      absolutePaths = builtins.map (path: rootPath + "/${path}") relativePaths;
-    in
-      absolutePaths;
+  readPathsFromFile = lib.warn "lib.readPathsFromFile is deprecated, use a list instead"
+    (rootPath: file:
+      let
+        lines = lib.splitString "\n" (builtins.readFile file);
+        removeComments = lib.filter (line: line != "" && !(lib.hasPrefix "#" line));
+        relativePaths = removeComments lines;
+        absolutePaths = builtins.map (path: rootPath + "/${path}") relativePaths;
+      in
+        absolutePaths);
 
   /* Read the contents of a file removing the trailing \n
 
diff --git a/nixpkgs/lib/systems/architectures.nix b/nixpkgs/lib/systems/architectures.nix
index 287f5be03c45..bfecaec1ae88 100644
--- a/nixpkgs/lib/systems/architectures.nix
+++ b/nixpkgs/lib/systems/architectures.nix
@@ -35,21 +35,21 @@ rec {
     # x86_64 Intel
     default        = [ ];
     westmere       = [ ];
-    sandybridge    = [ "westmere" ];
-    ivybridge      = [ "westmere" "sandybridge" ];
-    haswell        = [ "westmere" "sandybridge" "ivybridge" ];
-    broadwell      = [ "westmere" "sandybridge" "ivybridge" "haswell" ];
-    skylake        = [ "westmere" "sandybridge" "ivybridge" "haswell" "broadwell" ];
-    skylake-avx512 = [ "westmere" "sandybridge" "ivybridge" "haswell" "broadwell" "skylake" ];
+    sandybridge    = [ "westmere"    ] ++ inferiors.westmere;
+    ivybridge      = [ "sandybridge" ] ++ inferiors.sandybridge;
+    haswell        = [ "ivybridge"   ] ++ inferiors.ivybridge;
+    broadwell      = [ "haswell"     ] ++ inferiors.haswell;
+    skylake        = [ "broadwell"   ] ++ inferiors.broadwell;
+    skylake-avx512 = [ "skylake"     ] ++ inferiors.skylake;
     # x86_64 AMD
     btver1         = [ ];
-    btver2         = [ ];
-    bdver1         = [ ];
-    bdver2         = [ ];
-    bdver3         = [ ];
-    bdver4         = [ ];
-    znver1         = [ ];
-    znver2         = [ ];
+    btver2         = [ ]; # TODO: fill this (need testing)
+    bdver1         = [ ]; # TODO: fill this (need testing)
+    bdver2         = [ ]; # TODO: fill this (need testing)
+    bdver3         = [ ]; # TODO: fill this (need testing)
+    bdver4         = [ ]; # TODO: fill this (need testing)
+    znver1         = [ ]; # TODO: fill this (need testing)
+    znver2         = [ ]; # TODO: fill this (need testing)
     # other
     armv5te        = [ ];
     armv6          = [ ];
@@ -59,17 +59,19 @@ rec {
     loongson2f     = [ ];
   };
 
-  predicates = {
-    sse3Support    = x: builtins.elem "sse3"   features.${x};
-    ssse3Support   = x: builtins.elem "ssse3"  features.${x};
-    sse4_1Support  = x: builtins.elem "sse4_1" features.${x};
-    sse4_2Support  = x: builtins.elem "sse4_2" features.${x};
-    sse4_aSupport  = x: builtins.elem "sse4a"  features.${x};
-    avxSupport     = x: builtins.elem "avx"    features.${x};
-    avx2Support    = x: builtins.elem "avx2"   features.${x};
-    avx512Support  = x: builtins.elem "avx512" features.${x};
-    aesSupport     = x: builtins.elem "aes"    features.${x};
-    fmaSupport     = x: builtins.elem "fma"    features.${x};
-    fma4Support    = x: builtins.elem "fma4"   features.${x};
+  predicates = let
+    featureSupport = feature: x: builtins.elem feature features.${x} or [];
+  in {
+    sse3Support    = featureSupport "sse3";
+    ssse3Support   = featureSupport "ssse3";
+    sse4_1Support  = featureSupport "sse4_1";
+    sse4_2Support  = featureSupport "sse4_2";
+    sse4_aSupport  = featureSupport "sse4a";
+    avxSupport     = featureSupport "avx";
+    avx2Support    = featureSupport "avx2";
+    avx512Support  = featureSupport "avx512";
+    aesSupport     = featureSupport "aes";
+    fmaSupport     = featureSupport "fma";
+    fma4Support    = featureSupport "fma4";
   };
 }
diff --git a/nixpkgs/lib/systems/default.nix b/nixpkgs/lib/systems/default.nix
index 02d58592b325..9939743157e7 100644
--- a/nixpkgs/lib/systems/default.nix
+++ b/nixpkgs/lib/systems/default.nix
@@ -77,6 +77,7 @@ rec {
          # uname -r
          release = null;
       };
+      isStatic = final.isWasm || final.isRedox;
 
       kernelArch =
         if final.isAarch32 then "arm"
diff --git a/nixpkgs/lib/systems/doubles.nix b/nixpkgs/lib/systems/doubles.nix
index c0e78595d85d..517a7296afd2 100644
--- a/nixpkgs/lib/systems/doubles.nix
+++ b/nixpkgs/lib/systems/doubles.nix
@@ -38,7 +38,7 @@ let
 
     "js-ghcjs"
 
-    "aarch64-genode" "x86_64-genode"
+    "aarch64-genode" "i686-genode" "x86_64-genode"
   ];
 
   allParsed = map parse.mkSystemFromString all;
@@ -50,32 +50,35 @@ in {
 
   none = [];
 
-  arm     = filterDoubles predicates.isAarch32;
-  aarch64 = filterDoubles predicates.isAarch64;
-  x86     = filterDoubles predicates.isx86;
-  i686    = filterDoubles predicates.isi686;
-  x86_64  = filterDoubles predicates.isx86_64;
-  mips    = filterDoubles predicates.isMips;
-  riscv   = filterDoubles predicates.isRiscV;
-  vc4     = filterDoubles predicates.isVc4;
-  js      = filterDoubles predicates.isJavaScript;
-
-  cygwin  = filterDoubles predicates.isCygwin;
-  darwin  = filterDoubles predicates.isDarwin;
-  freebsd = filterDoubles predicates.isFreeBSD;
+  arm           = filterDoubles predicates.isAarch32;
+  aarch64       = filterDoubles predicates.isAarch64;
+  x86           = filterDoubles predicates.isx86;
+  i686          = filterDoubles predicates.isi686;
+  x86_64        = filterDoubles predicates.isx86_64;
+  mips          = filterDoubles predicates.isMips;
+  riscv         = filterDoubles predicates.isRiscV;
+  vc4           = filterDoubles predicates.isVc4;
+  js            = filterDoubles predicates.isJavaScript;
+
+  bigEndian     = filterDoubles predicates.isBigEndian;
+  littleEndian  = filterDoubles predicates.isLittleEndian;
+
+  cygwin        = filterDoubles predicates.isCygwin;
+  darwin        = filterDoubles predicates.isDarwin;
+  freebsd       = filterDoubles predicates.isFreeBSD;
   # Should be better, but MinGW is unclear.
-  gnu     = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; }) ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabi; }) ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabihf; });
-  illumos = filterDoubles predicates.isSunOS;
-  linux   = filterDoubles predicates.isLinux;
-  netbsd  = filterDoubles predicates.isNetBSD;
-  openbsd = filterDoubles predicates.isOpenBSD;
-  unix    = filterDoubles predicates.isUnix;
-  wasi    = filterDoubles predicates.isWasi;
-  redox   = filterDoubles predicates.isRedox;
-  windows = filterDoubles predicates.isWindows;
-  genode  = filterDoubles predicates.isGenode;
-
-  embedded = filterDoubles predicates.isNone;
+  gnu           = filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnu; }) ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabi; }) ++ filterDoubles (matchAttrs { kernel = parse.kernels.linux; abi = parse.abis.gnueabihf; });
+  illumos       = filterDoubles predicates.isSunOS;
+  linux         = filterDoubles predicates.isLinux;
+  netbsd        = filterDoubles predicates.isNetBSD;
+  openbsd       = filterDoubles predicates.isOpenBSD;
+  unix          = filterDoubles predicates.isUnix;
+  wasi          = filterDoubles predicates.isWasi;
+  redox         = filterDoubles predicates.isRedox;
+  windows       = filterDoubles predicates.isWindows;
+  genode        = filterDoubles predicates.isGenode;
+
+  embedded      = filterDoubles predicates.isNone;
 
   mesaPlatforms = ["i686-linux" "x86_64-linux" "x86_64-darwin" "armv5tel-linux" "armv6l-linux" "armv7l-linux" "armv7a-linux" "aarch64-linux" "powerpc64le-linux"];
 }
diff --git a/nixpkgs/lib/systems/examples.nix b/nixpkgs/lib/systems/examples.nix
index ca562d2e4565..5403f73405c2 100644
--- a/nixpkgs/lib/systems/examples.nix
+++ b/nixpkgs/lib/systems/examples.nix
@@ -46,16 +46,16 @@ rec {
 
   armv7a-android-prebuilt = {
     config = "armv7a-unknown-linux-androideabi";
-    sdkVer = "24";
-    ndkVer = "18b";
+    sdkVer = "29";
+    ndkVer = "21";
     platform = platforms.armv7a-android;
     useAndroidPrebuilt = true;
   };
 
   aarch64-android-prebuilt = {
     config = "aarch64-unknown-linux-android";
-    sdkVer = "24";
-    ndkVer = "18b";
+    sdkVer = "29";
+    ndkVer = "21";
     platform = platforms.aarch64-multiplatform;
     useAndroidPrebuilt = true;
   };
diff --git a/nixpkgs/lib/tests/misc.nix b/nixpkgs/lib/tests/misc.nix
index 36ddd186d7b7..3a6db53c276d 100644
--- a/nixpkgs/lib/tests/misc.nix
+++ b/nixpkgs/lib/tests/misc.nix
@@ -102,6 +102,16 @@ runTests {
     expected = 9;
   };
 
+  testToHexString = {
+    expr = toHexString 250;
+    expected = "FA";
+  };
+
+  testToBaseDigits = {
+    expr = toBaseDigits 2 6;
+    expected = [ 1 1 0 ];
+  };
+
 # STRINGS
 
   testConcatMapStrings = {
@@ -435,32 +445,90 @@ runTests {
       expected = builtins.toJSON val;
   };
 
-  testToPretty = {
-    expr = mapAttrs (const (generators.toPretty {})) rec {
+  testToPretty =
+    let
+      deriv = derivation { name = "test"; builder = "/bin/sh"; system = builtins.currentSystem; };
+    in {
+    expr = mapAttrs (const (generators.toPretty { multiline = false; })) rec {
       int = 42;
       float = 0.1337;
       bool = true;
+      emptystring = "";
       string = ''fno"rd'';
+      newlinestring = "\n";
       path = /. + "/foo";
       null_ = null;
       function = x: x;
       functionArgs = { arg ? 4, foo }: arg;
       list = [ 3 4 function [ false ] ];
+      emptylist = [];
       attrs = { foo = null; "foo bar" = "baz"; };
-      drv = derivation { name = "test"; system = builtins.currentSystem; };
+      emptyattrs = {};
+      drv = deriv;
     };
     expected = rec {
       int = "42";
       float = "~0.133700";
       bool = "true";
+      emptystring = ''""'';
       string = ''"fno\"rd"'';
+      newlinestring = "\"\\n\"";
       path = "/foo";
       null_ = "null";
-      function = "<λ>";
-      functionArgs = "<λ:{(arg),foo}>";
+      function = "<function>";
+      functionArgs = "<function, args: {arg?, foo}>";
       list = "[ 3 4 ${function} [ false ] ]";
-      attrs = "{ \"foo\" = null; \"foo bar\" = \"baz\"; }";
-      drv = "<δ:test>";
+      emptylist = "[ ]";
+      attrs = "{ foo = null; \"foo bar\" = \"baz\"; }";
+      emptyattrs = "{ }";
+      drv = "<derivation ${deriv.drvPath}>";
+    };
+  };
+
+  testToPrettyMultiline = {
+    expr = mapAttrs (const (generators.toPretty { })) rec {
+      list = [ 3 4 [ false ] ];
+      attrs = { foo = null; bar.foo = "baz"; };
+      newlinestring = "\n";
+      multilinestring = ''
+        hello
+        there
+        test
+      '';
+      multilinestring' = ''
+        hello
+        there
+        test'';
+    };
+    expected = rec {
+      list = ''
+        [
+          3
+          4
+          [
+            false
+          ]
+        ]'';
+      attrs = ''
+        {
+          bar = {
+            foo = "baz";
+          };
+          foo = null;
+        }'';
+      newlinestring = "''\n  \n''";
+      multilinestring = ''
+        '''
+          hello
+          there
+          test
+        ''''';
+      multilinestring' = ''
+        '''
+          hello
+          there
+          test''''';
+
     };
   };
 
@@ -532,4 +600,30 @@ runTests {
     name = "";
     expected = "unknown";
   };
+
+  testFreeformOptions = {
+    expr =
+      let
+        submodule = { lib, ... }: {
+          freeformType = lib.types.attrsOf (lib.types.submodule {
+            options.bar = lib.mkOption {};
+          });
+          options.bar = lib.mkOption {};
+        };
+
+        module = { lib, ... }: {
+          options.foo = lib.mkOption {
+            type = lib.types.submodule submodule;
+          };
+        };
+
+        options = (evalModules {
+          modules = [ module ];
+        }).options;
+
+        locs = filter (o: ! o.internal) (optionAttrSetToDocList options);
+      in map (o: o.loc) locs;
+    expected = [ [ "foo" ] [ "foo" "<name>" "bar" ] [ "foo" "bar" ] ];
+  };
+
 }
diff --git a/nixpkgs/lib/tests/modules.sh b/nixpkgs/lib/tests/modules.sh
index 6258244457aa..309c5311361c 100755
--- a/nixpkgs/lib/tests/modules.sh
+++ b/nixpkgs/lib/tests/modules.sh
@@ -49,7 +49,7 @@ checkConfigError() {
         reportFailure "$@"
         return 1
     else
-        if echo "$err" | grep --silent "$errorContains" ; then
+        if echo "$err" | grep -zP --silent "$errorContains" ; then
             pass=$((pass + 1))
             return 0;
         else
@@ -62,17 +62,17 @@ checkConfigError() {
 
 # Check boolean option.
 checkConfigOutput "false" config.enable ./declare-enable.nix
-checkConfigError 'The option .* defined in .* does not exist.' config.enable ./define-enable.nix
+checkConfigError 'The option .* does not exist. Definition values:\n- In .*: true' config.enable ./define-enable.nix
 
 # Check integer types.
 # unsigned
 checkConfigOutput "42" config.value ./declare-int-unsigned-value.nix ./define-value-int-positive.nix
-checkConfigError 'The option value .* in .* is not of type.*unsigned integer.*' config.value ./declare-int-unsigned-value.nix ./define-value-int-negative.nix
+checkConfigError 'A definition for option .* is not of type.*unsigned integer.*. Definition values:\n- In .*: -23' config.value ./declare-int-unsigned-value.nix ./define-value-int-negative.nix
 # positive
-checkConfigError 'The option value .* in .* is not of type.*positive integer.*' config.value ./declare-int-positive-value.nix ./define-value-int-zero.nix
+checkConfigError 'A definition for option .* is not of type.*positive integer.*. Definition values:\n- In .*: 0' config.value ./declare-int-positive-value.nix ./define-value-int-zero.nix
 # between
 checkConfigOutput "42" config.value ./declare-int-between-value.nix ./define-value-int-positive.nix
-checkConfigError 'The option value .* in .* is not of type.*between.*-21 and 43.*inclusive.*' config.value ./declare-int-between-value.nix ./define-value-int-negative.nix
+checkConfigError 'A definition for option .* is not of type.*between.*-21 and 43.*inclusive.*. Definition values:\n- In .*: -23' config.value ./declare-int-between-value.nix ./define-value-int-negative.nix
 
 # Check either types
 # types.either
@@ -125,7 +125,7 @@ checkConfigOutput 'true' "$@" ./define-enable.nix ./define-attrsOfSub-foo-enable
 set -- config.enable ./define-enable.nix ./declare-enable.nix
 checkConfigOutput "true" "$@"
 checkConfigOutput "false" "$@" ./disable-define-enable.nix
-checkConfigError "The option .*enable.* defined in .* does not exist" "$@" ./disable-declare-enable.nix
+checkConfigError "The option .*enable.* does not exist. Definition values:\n- In .*: true" "$@" ./disable-declare-enable.nix
 checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-define-enable.nix ./disable-declare-enable.nix
 checkConfigError "attribute .*enable.* in selection path .*config.enable.* not found" "$@" ./disable-enable-modules.nix
 
@@ -142,17 +142,17 @@ checkConfigError 'infinite recursion encountered' "$@"
 
 # Check _module.check.
 set -- config.enable ./declare-enable.nix ./define-enable.nix ./define-attrsOfSub-foo.nix
-checkConfigError 'The option .* defined in .* does not exist.' "$@"
+checkConfigError 'The option .* does not exist. Definition values:\n- In .*' "$@"
 checkConfigOutput "true" "$@" ./define-module-check.nix
 
 # Check coerced value.
 checkConfigOutput "\"42\"" config.value ./declare-coerced-value.nix
 checkConfigOutput "\"24\"" config.value ./declare-coerced-value.nix ./define-value-string.nix
-checkConfigError 'The option value .* in .* is not.*string or signed integer convertible to it' config.value ./declare-coerced-value.nix ./define-value-list.nix
+checkConfigError 'A definition for option .* is not.*string or signed integer convertible to it.*. Definition values:\n- In .*: \[ \]' config.value ./declare-coerced-value.nix ./define-value-list.nix
 
 # Check coerced value with unsound coercion
 checkConfigOutput "12" config.value ./declare-coerced-value-unsound.nix
-checkConfigError 'The option value .* in .* is not.*8 bit signed integer.* or string convertible to it' config.value ./declare-coerced-value-unsound.nix ./define-value-string-bigint.nix
+checkConfigError 'A definition for option .* is not of type .*. Definition values:\n- In .*: "1000"' config.value ./declare-coerced-value-unsound.nix ./define-value-string-bigint.nix
 checkConfigError 'unrecognised JSON value' config.value ./declare-coerced-value-unsound.nix ./define-value-string-arbitrary.nix
 
 # Check mkAliasOptionModule.
@@ -183,7 +183,7 @@ checkConfigOutput "true" config.submodule.enable ./declare-submoduleWith-path.ni
 checkConfigOutput "true" config.enable ./disable-recursive/main.nix
 checkConfigOutput "true" config.enable ./disable-recursive/{main.nix,disable-foo.nix}
 checkConfigOutput "true" config.enable ./disable-recursive/{main.nix,disable-bar.nix}
-checkConfigError 'The option .* defined in .* does not exist' config.enable ./disable-recursive/{main.nix,disable-foo.nix,disable-bar.nix}
+checkConfigError 'The option .* does not exist. Definition values:\n- In .*: true' config.enable ./disable-recursive/{main.nix,disable-foo.nix,disable-bar.nix}
 
 # Check that imports can depend on derivations
 checkConfigOutput "true" config.enable ./import-from-store.nix
@@ -207,9 +207,61 @@ checkConfigOutput "empty" config.value.foo ./declare-lazyAttrsOf.nix ./attrsOf-c
 
 
 # Even with multiple assignments, a type error should be thrown if any of them aren't valid
-checkConfigError 'The option value .* in .* is not of type .*' \
+checkConfigError 'A definition for option .* is not of type .*' \
   config.value ./declare-int-unsigned-value.nix ./define-value-list.nix ./define-value-int-positive.nix
 
+## Freeform modules
+# Assigning without a declared option should work
+checkConfigOutput 24 config.value ./freeform-attrsOf.nix ./define-value-string.nix
+# No freeform assigments shouldn't make it error
+checkConfigOutput '{ }' config ./freeform-attrsOf.nix
+# but only if the type matches
+checkConfigError 'A definition for option .* is not of type .*' config.value ./freeform-attrsOf.nix ./define-value-list.nix
+# and properties should be applied
+checkConfigOutput yes config.value ./freeform-attrsOf.nix ./define-value-string-properties.nix
+# Options should still be declarable, and be able to have a type that doesn't match the freeform type
+checkConfigOutput false config.enable ./freeform-attrsOf.nix ./define-value-string.nix ./declare-enable.nix
+checkConfigOutput 24 config.value ./freeform-attrsOf.nix ./define-value-string.nix ./declare-enable.nix
+# and this should work too with nested values
+checkConfigOutput false config.nest.foo ./freeform-attrsOf.nix ./freeform-nested.nix
+checkConfigOutput bar config.nest.bar ./freeform-attrsOf.nix ./freeform-nested.nix
+# Check whether a declared option can depend on an freeform-typed one
+checkConfigOutput null config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix
+checkConfigOutput 24 config.foo ./freeform-attrsOf.nix ./freeform-str-dep-unstr.nix ./define-value-string.nix
+# Check whether an freeform-typed value can depend on a declared option, this can only work with lazyAttrsOf
+checkConfigError 'infinite recursion encountered' config.foo ./freeform-attrsOf.nix ./freeform-unstr-dep-str.nix
+checkConfigError 'The option .* is used but not defined' config.foo ./freeform-lazyAttrsOf.nix ./freeform-unstr-dep-str.nix
+checkConfigOutput 24 config.foo ./freeform-lazyAttrsOf.nix ./freeform-unstr-dep-str.nix ./define-value-string.nix
+
+## types.anything
+# Check that attribute sets are merged recursively
+checkConfigOutput null config.value.foo ./types-anything/nested-attrs.nix
+checkConfigOutput null config.value.l1.foo ./types-anything/nested-attrs.nix
+checkConfigOutput null config.value.l1.l2.foo ./types-anything/nested-attrs.nix
+checkConfigOutput null config.value.l1.l2.l3.foo ./types-anything/nested-attrs.nix
+# Attribute sets that are coercible to strings shouldn't be recursed into
+checkConfigOutput foo config.value.outPath ./types-anything/attrs-coercible.nix
+# Multiple lists aren't concatenated together
+checkConfigError 'The option .* has conflicting definitions' config.value ./types-anything/lists.nix
+# Check that all equalizable atoms can be used as long as all definitions are equal
+checkConfigOutput 0 config.value.int ./types-anything/equal-atoms.nix
+checkConfigOutput false config.value.bool ./types-anything/equal-atoms.nix
+checkConfigOutput '""' config.value.string ./types-anything/equal-atoms.nix
+checkConfigOutput / config.value.path ./types-anything/equal-atoms.nix
+checkConfigOutput null config.value.null ./types-anything/equal-atoms.nix
+checkConfigOutput 0.1 config.value.float ./types-anything/equal-atoms.nix
+# Functions can't be merged together
+checkConfigError "The option .* has conflicting definition values" config.value.multiple-lambdas ./types-anything/functions.nix
+checkConfigOutput '<LAMBDA>' config.value.single-lambda ./types-anything/functions.nix
+# Check that all mk* modifiers are applied
+checkConfigError 'attribute .* not found' config.value.mkiffalse ./types-anything/mk-mods.nix
+checkConfigOutput '{ }' config.value.mkiftrue ./types-anything/mk-mods.nix
+checkConfigOutput 1 config.value.mkdefault ./types-anything/mk-mods.nix
+checkConfigOutput '{ }' config.value.mkmerge ./types-anything/mk-mods.nix
+checkConfigOutput true config.value.mkbefore ./types-anything/mk-mods.nix
+checkConfigOutput 1 config.value.nested.foo ./types-anything/mk-mods.nix
+checkConfigOutput baz config.value.nested.bar.baz ./types-anything/mk-mods.nix
+
 cat <<EOF
 ====== module tests ======
 $pass Pass
diff --git a/nixpkgs/lib/tests/modules/define-option-dependently.nix b/nixpkgs/lib/tests/modules/define-option-dependently.nix
index 6abce29366ae..ad85f99a919f 100644
--- a/nixpkgs/lib/tests/modules/define-option-dependently.nix
+++ b/nixpkgs/lib/tests/modules/define-option-dependently.nix
@@ -7,7 +7,7 @@
   # Always defined, but the value depends on the presence of an option.
   config = {
     value = if options ? enable then 360 else 7;
-  } 
+  }
   # Only define if possible.
   // lib.optionalAttrs (options ? enable) {
     enable = true;
diff --git a/nixpkgs/lib/tests/modules/define-value-string-properties.nix b/nixpkgs/lib/tests/modules/define-value-string-properties.nix
new file mode 100644
index 000000000000..972304c01128
--- /dev/null
+++ b/nixpkgs/lib/tests/modules/define-value-string-properties.nix
@@ -0,0 +1,12 @@
+{ lib, ... }: {
+
+  imports = [{
+    value = lib.mkDefault "def";
+  }];
+
+  value = lib.mkMerge [
+    (lib.mkIf false "nope")
+    "yes"
+  ];
+
+}
diff --git a/nixpkgs/lib/tests/modules/freeform-attrsOf.nix b/nixpkgs/lib/tests/modules/freeform-attrsOf.nix
new file mode 100644
index 000000000000..8cc577f38a6c
--- /dev/null
+++ b/nixpkgs/lib/tests/modules/freeform-attrsOf.nix
@@ -0,0 +1,3 @@
+{ lib, ... }: {
+  freeformType = with lib.types; attrsOf (either str (attrsOf str));
+}
diff --git a/nixpkgs/lib/tests/modules/freeform-lazyAttrsOf.nix b/nixpkgs/lib/tests/modules/freeform-lazyAttrsOf.nix
new file mode 100644
index 000000000000..36d6c0b13fca
--- /dev/null
+++ b/nixpkgs/lib/tests/modules/freeform-lazyAttrsOf.nix
@@ -0,0 +1,3 @@
+{ lib, ... }: {
+  freeformType = with lib.types; lazyAttrsOf (either str (lazyAttrsOf str));
+}
diff --git a/nixpkgs/lib/tests/modules/freeform-nested.nix b/nixpkgs/lib/tests/modules/freeform-nested.nix
new file mode 100644
index 000000000000..5da27f5a8b4f
--- /dev/null
+++ b/nixpkgs/lib/tests/modules/freeform-nested.nix
@@ -0,0 +1,7 @@
+{ lib, ... }: {
+  options.nest.foo = lib.mkOption {
+    type = lib.types.bool;
+    default = false;
+  };
+  config.nest.bar = "bar";
+}
diff --git a/nixpkgs/lib/tests/modules/freeform-str-dep-unstr.nix b/nixpkgs/lib/tests/modules/freeform-str-dep-unstr.nix
new file mode 100644
index 000000000000..a2dfbc80cfa6
--- /dev/null
+++ b/nixpkgs/lib/tests/modules/freeform-str-dep-unstr.nix
@@ -0,0 +1,8 @@
+{ lib, config, ... }: {
+  options.foo = lib.mkOption {
+    type = lib.types.nullOr lib.types.str;
+    default = null;
+  };
+
+  config.foo = lib.mkIf (config ? value) config.value;
+}
diff --git a/nixpkgs/lib/tests/modules/freeform-unstr-dep-str.nix b/nixpkgs/lib/tests/modules/freeform-unstr-dep-str.nix
new file mode 100644
index 000000000000..549d89afecac
--- /dev/null
+++ b/nixpkgs/lib/tests/modules/freeform-unstr-dep-str.nix
@@ -0,0 +1,8 @@
+{ lib, config, ... }: {
+  options.value = lib.mkOption {
+    type = lib.types.nullOr lib.types.str;
+    default = null;
+  };
+
+  config.foo = lib.mkIf (config.value != null) config.value;
+}
diff --git a/nixpkgs/lib/tests/modules/types-anything/attrs-coercible.nix b/nixpkgs/lib/tests/modules/types-anything/attrs-coercible.nix
new file mode 100644
index 000000000000..085cbd638f17
--- /dev/null
+++ b/nixpkgs/lib/tests/modules/types-anything/attrs-coercible.nix
@@ -0,0 +1,12 @@
+{ lib, ... }: {
+
+  options.value = lib.mkOption {
+    type = lib.types.anything;
+  };
+
+  config.value = {
+    outPath = "foo";
+    err = throw "err";
+  };
+
+}
diff --git a/nixpkgs/lib/tests/modules/types-anything/equal-atoms.nix b/nixpkgs/lib/tests/modules/types-anything/equal-atoms.nix
new file mode 100644
index 000000000000..972711201a09
--- /dev/null
+++ b/nixpkgs/lib/tests/modules/types-anything/equal-atoms.nix
@@ -0,0 +1,26 @@
+{ lib, ... }: {
+
+  options.value = lib.mkOption {
+    type = lib.types.anything;
+  };
+
+  config = lib.mkMerge [
+    {
+      value.int = 0;
+      value.bool = false;
+      value.string = "";
+      value.path = /.;
+      value.null = null;
+      value.float = 0.1;
+    }
+    {
+      value.int = 0;
+      value.bool = false;
+      value.string = "";
+      value.path = /.;
+      value.null = null;
+      value.float = 0.1;
+    }
+  ];
+
+}
diff --git a/nixpkgs/lib/tests/modules/types-anything/functions.nix b/nixpkgs/lib/tests/modules/types-anything/functions.nix
new file mode 100644
index 000000000000..079518913918
--- /dev/null
+++ b/nixpkgs/lib/tests/modules/types-anything/functions.nix
@@ -0,0 +1,17 @@
+{ lib, ... }: {
+
+  options.value = lib.mkOption {
+    type = lib.types.anything;
+  };
+
+  config = lib.mkMerge [
+    {
+      value.single-lambda = x: x;
+      value.multiple-lambdas = x: x;
+    }
+    {
+      value.multiple-lambdas = x: x;
+    }
+  ];
+
+}
diff --git a/nixpkgs/lib/tests/modules/types-anything/lists.nix b/nixpkgs/lib/tests/modules/types-anything/lists.nix
new file mode 100644
index 000000000000..bd846afd3d18
--- /dev/null
+++ b/nixpkgs/lib/tests/modules/types-anything/lists.nix
@@ -0,0 +1,16 @@
+{ lib, ... }: {
+
+  options.value = lib.mkOption {
+    type = lib.types.anything;
+  };
+
+  config = lib.mkMerge [
+    {
+      value = [ null ];
+    }
+    {
+      value = [ null ];
+    }
+  ];
+
+}
diff --git a/nixpkgs/lib/tests/modules/types-anything/mk-mods.nix b/nixpkgs/lib/tests/modules/types-anything/mk-mods.nix
new file mode 100644
index 000000000000..f84ad01df017
--- /dev/null
+++ b/nixpkgs/lib/tests/modules/types-anything/mk-mods.nix
@@ -0,0 +1,44 @@
+{ lib, ... }: {
+
+  options.value = lib.mkOption {
+    type = lib.types.anything;
+  };
+
+  config = lib.mkMerge [
+    {
+      value.mkiffalse = lib.mkIf false {};
+    }
+    {
+      value.mkiftrue = lib.mkIf true {};
+    }
+    {
+      value.mkdefault = lib.mkDefault 0;
+    }
+    {
+      value.mkdefault = 1;
+    }
+    {
+      value.mkmerge = lib.mkMerge [
+        {}
+      ];
+    }
+    {
+      value.mkbefore = lib.mkBefore true;
+    }
+    {
+      value.nested = lib.mkMerge [
+        {
+          foo = lib.mkDefault 0;
+          bar = lib.mkIf false 0;
+        }
+        (lib.mkIf true {
+          foo = lib.mkIf true (lib.mkForce 1);
+          bar = {
+            baz = lib.mkDefault "baz";
+          };
+        })
+      ];
+    }
+  ];
+
+}
diff --git a/nixpkgs/lib/tests/modules/types-anything/nested-attrs.nix b/nixpkgs/lib/tests/modules/types-anything/nested-attrs.nix
new file mode 100644
index 000000000000..e57d33ef8717
--- /dev/null
+++ b/nixpkgs/lib/tests/modules/types-anything/nested-attrs.nix
@@ -0,0 +1,22 @@
+{ lib, ... }: {
+
+  options.value = lib.mkOption {
+    type = lib.types.anything;
+  };
+
+  config = lib.mkMerge [
+    {
+      value.foo = null;
+    }
+    {
+      value.l1.foo = null;
+    }
+    {
+      value.l1.l2.foo = null;
+    }
+    {
+      value.l1.l2.l3.foo = null;
+    }
+  ];
+
+}
diff --git a/nixpkgs/lib/tests/release.nix b/nixpkgs/lib/tests/release.nix
index eebee1b49bc8..800d8a65c14f 100644
--- a/nixpkgs/lib/tests/release.nix
+++ b/nixpkgs/lib/tests/release.nix
@@ -17,7 +17,6 @@ pkgs.runCommandNoCC "nixpkgs-lib-tests" {
     export TEST_ROOT=$(pwd)/test-tmp
     export NIX_BUILD_HOOK=
     export NIX_CONF_DIR=$TEST_ROOT/etc
-    export NIX_DB_DIR=$TEST_ROOT/db
     export NIX_LOCALSTATE_DIR=$TEST_ROOT/var
     export NIX_LOG_DIR=$TEST_ROOT/var/log/nix
     export NIX_STATE_DIR=$TEST_ROOT/var/nix
diff --git a/nixpkgs/lib/tests/systems.nix b/nixpkgs/lib/tests/systems.nix
index ea8ceedd43f7..f691b2da3165 100644
--- a/nixpkgs/lib/tests/systems.nix
+++ b/nixpkgs/lib/tests/systems.nix
@@ -15,14 +15,14 @@ in with lib.systems.doubles; lib.runTests {
   testall = mseteq all (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ wasi ++ windows ++ embedded ++ js ++ genode ++ redox);
 
   testarm = mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv6l-none" "armv7a-linux" "armv7l-linux" "arm-none" "armv7a-darwin" ];
-  testi686 = mseteq i686 [ "i686-linux" "i686-freebsd" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" "i686-darwin" ];
+  testi686 = mseteq i686 [ "i686-linux" "i686-freebsd" "i686-genode" "i686-netbsd" "i686-openbsd" "i686-cygwin" "i686-windows" "i686-none" "i686-darwin" ];
   testmips = mseteq mips [ "mipsel-linux" ];
   testx86_64 = mseteq x86_64 [ "x86_64-linux" "x86_64-darwin" "x86_64-freebsd" "x86_64-genode" "x86_64-redox" "x86_64-openbsd" "x86_64-netbsd" "x86_64-cygwin" "x86_64-solaris" "x86_64-windows" "x86_64-none" ];
 
   testcygwin = mseteq cygwin [ "i686-cygwin" "x86_64-cygwin" ];
   testdarwin = mseteq darwin [ "x86_64-darwin" "i686-darwin" "aarch64-darwin" "armv7a-darwin" ];
   testfreebsd = mseteq freebsd [ "i686-freebsd" "x86_64-freebsd" ];
-  testgenode = mseteq genode [ "aarch64-genode" "x86_64-genode" ];
+  testgenode = mseteq genode [ "aarch64-genode" "i686-genode" "x86_64-genode" ];
   testredox = mseteq redox [ "x86_64-redox" ];
   testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */);
   testillumos = mseteq illumos [ "x86_64-solaris" ];
diff --git a/nixpkgs/lib/trivial.nix b/nixpkgs/lib/trivial.nix
index 5788dd435e59..9501a2906cae 100644
--- a/nixpkgs/lib/trivial.nix
+++ b/nixpkgs/lib/trivial.nix
@@ -171,7 +171,7 @@ rec {
      On each release the first letter is bumped and a new animal is chosen
      starting with that new letter.
   */
-  codeName = "Nightingale";
+  codeName = "Okapi";
 
   /* Returns the current nixpkgs version suffix as string. */
   versionSuffix =
@@ -332,4 +332,55 @@ rec {
   */
   isFunction = f: builtins.isFunction f ||
     (f ? __functor && isFunction (f.__functor f));
+
+  /* Convert the given positive integer to a string of its hexadecimal
+     representation. For example:
+
+     toHexString 0 => "0"
+
+     toHexString 16 => "10"
+
+     toHexString 250 => "FA"
+  */
+  toHexString = i:
+    let
+      toHexDigit = d:
+        if d < 10
+        then toString d
+        else
+          {
+            "10" = "A";
+            "11" = "B";
+            "12" = "C";
+            "13" = "D";
+            "14" = "E";
+            "15" = "F";
+          }.${toString d};
+    in
+      lib.concatMapStrings toHexDigit (toBaseDigits 16 i);
+
+  /* `toBaseDigits base i` converts the positive integer i to a list of its
+     digits in the given base. For example:
+
+     toBaseDigits 10 123 => [ 1 2 3 ]
+
+     toBaseDigits 2 6 => [ 1 1 0 ]
+
+     toBaseDigits 16 250 => [ 15 10 ]
+  */
+  toBaseDigits = base: i:
+    let
+      go = i:
+        if i < base
+        then [i]
+        else
+          let
+            r = i - ((i / base) * base);
+            q = (i - r) / base;
+          in
+            [r] ++ go q;
+    in
+      assert (base >= 2);
+      assert (i >= 0);
+      lib.reverseList (go i);
 }
diff --git a/nixpkgs/lib/types.nix b/nixpkgs/lib/types.nix
index 6fd6de7e1fd9..77105740bc23 100644
--- a/nixpkgs/lib/types.nix
+++ b/nixpkgs/lib/types.nix
@@ -91,9 +91,12 @@ rec {
       #            combinable with the binOp binary operation.
       #   binOp: binary operation that merge two payloads of the same type.
       functor ? defaultFunctor name
+    , # The deprecation message to display when this type is used by an option
+      # If null, the type isn't deprecated
+      deprecationMessage ? null
     }:
     { _type = "option-type";
-      inherit name check merge emptyValue getSubOptions getSubModules substSubModules typeMerge functor;
+      inherit name check merge emptyValue getSubOptions getSubModules substSubModules typeMerge functor deprecationMessage;
       description = if description == null then name else description;
     };
 
@@ -101,6 +104,42 @@ rec {
   # When adding new types don't forget to document them in
   # nixos/doc/manual/development/option-types.xml!
   types = rec {
+
+    anything = mkOptionType {
+      name = "anything";
+      description = "anything";
+      check = value: true;
+      merge = loc: defs:
+        let
+          getType = value:
+            if isAttrs value && isCoercibleToString value
+            then "stringCoercibleSet"
+            else builtins.typeOf value;
+
+          # Returns the common type of all definitions, throws an error if they
+          # don't have the same type
+          commonType = foldl' (type: def:
+            if getType def.value == type
+            then type
+            else throw "The option `${showOption loc}' has conflicting option types in ${showFiles (getFiles defs)}"
+          ) (getType (head defs).value) defs;
+
+          mergeFunction = {
+            # Recursively merge attribute sets
+            set = (attrsOf anything).merge;
+            # Safe and deterministic behavior for lists is to only accept one definition
+            # listOf only used to apply mkIf and co.
+            list =
+              if length defs > 1
+              then throw "The option `${showOption loc}' has conflicting definitions, in ${showFiles (getFiles defs)}."
+              else (listOf anything).merge;
+            # This is the type of packages, only accept a single definition
+            stringCoercibleSet = mergeOneOption;
+            # Otherwise fall back to only allowing all equal definitions
+          }.${commonType} or mergeEqualOption;
+        in mergeFunction loc defs;
+    };
+
     unspecified = mkOptionType {
       name = "unspecified";
     };
@@ -222,8 +261,10 @@ rec {
 
     # Deprecated; should not be used because it quietly concatenates
     # strings, which is usually not what you want.
-    string = warn "types.string is deprecated because it quietly concatenates strings"
-      (separatedString "");
+    string = separatedString "" // {
+      name = "string";
+      deprecationMessage = "See https://github.com/NixOS/nixpkgs/pull/66346 for better alternative types.";
+    };
 
     attrs = mkOptionType {
       name = "attrs";
@@ -252,25 +293,20 @@ rec {
       merge = mergeEqualOption;
     };
 
-    # drop this in the future:
-    list = builtins.trace "`types.list` is deprecated; use `types.listOf` instead" types.listOf;
-
     listOf = elemType: mkOptionType rec {
       name = "listOf";
       description = "list of ${elemType.description}s";
       check = isList;
       merge = loc: defs:
         map (x: x.value) (filter (x: x ? value) (concatLists (imap1 (n: def:
-          if isList def.value then
-            imap1 (m: def':
-              (mergeDefinitions
-                (loc ++ ["[definition ${toString n}-entry ${toString m}]"])
-                elemType
-                [{ inherit (def) file; value = def'; }]
-              ).optionalValue
-            ) def.value
-          else
-            throw "The option value `${showOption loc}` in `${def.file}` is not a list.") defs)));
+          imap1 (m: def':
+            (mergeDefinitions
+              (loc ++ ["[definition ${toString n}-entry ${toString m}]"])
+              elemType
+              [{ inherit (def) file; value = def'; }]
+            ).optionalValue
+          ) def.value
+        ) defs)));
       emptyValue = { value = {}; };
       getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["*"]);
       getSubModules = elemType.getSubModules;
@@ -326,110 +362,13 @@ rec {
       functor = (defaultFunctor name) // { wrapped = elemType; };
     };
 
-    # List or attribute set of ...
-    loaOf = elemType:
-      let
-        convertAllLists = loc: defs:
-          let
-            padWidth = stringLength (toString (length defs));
-            unnamedPrefix = i: "unnamed-" + fixedWidthNumber padWidth i + ".";
-          in
-            imap1 (i: convertIfList loc (unnamedPrefix i)) defs;
-        convertIfList = loc: unnamedPrefix: def:
-          if isList def.value then
-            let
-              padWidth = stringLength (toString (length def.value));
-              unnamed = i: unnamedPrefix + fixedWidthNumber padWidth i;
-              anyString = placeholder "name";
-              nameAttrs = [
-                { path = [ "environment" "etc" ];
-                  name = "target";
-                }
-                { path = [ "containers" anyString "bindMounts" ];
-                  name = "mountPoint";
-                }
-                { path = [ "programs" "ssh" "knownHosts" ];
-                  # hostNames is actually a list so we would need to handle it only when singleton
-                  name = "hostNames";
-                }
-                { path = [ "fileSystems" ];
-                  name = "mountPoint";
-                }
-                { path = [ "boot" "specialFileSystems" ];
-                  name = "mountPoint";
-                }
-                { path = [ "services" "znapzend" "zetup" ];
-                  name = "dataset";
-                }
-                { path = [ "services" "znapzend" "zetup" anyString "destinations" ];
-                  name = "label";
-                }
-                { path = [ "services" "geoclue2" "appConfig" ];
-                  name = "desktopID";
-                }
-              ];
-              matched = let
-                equals = a: b: b == anyString || a == b;
-                fallback = { name = "name"; };
-              in findFirst ({ path, ... }: all (v: v == true) (zipListsWith equals loc path)) fallback nameAttrs;
-              nameAttr = matched.name;
-              nameValueOld = value:
-                if isList value then
-                  if length value > 0 then
-                    "[ " + concatMapStringsSep " " escapeNixString value + " ]"
-                  else
-                    "[ ]"
-                else
-                  escapeNixString value;
-              nameValueNew = value: unnamed:
-                if isList value then
-                  if length value > 0 then
-                    head value
-                  else
-                    unnamed
-                else
-                  value;
-              res =
-                { inherit (def) file;
-                  value = listToAttrs (
-                    imap1 (elemIdx: elem:
-                      { name  = nameValueNew (elem.${nameAttr} or (unnamed elemIdx)) (unnamed elemIdx);
-                        value = elem;
-                      }) def.value);
-                };
-              option = concatStringsSep "." loc;
-              sample = take 3 def.value;
-              more = lib.optionalString (length def.value > 3) "... ";
-              list = concatMapStrings (x: ''{ ${nameAttr} = ${nameValueOld (x.${nameAttr} or "unnamed")}; ...} '') sample;
-              set = concatMapStrings (x: ''${nameValueNew (x.${nameAttr} or "unnamed") "unnamed"} = {...}; '') sample;
-              msg = ''
-                In file ${def.file}
-                a list is being assigned to the option config.${option}.
-                This will soon be an error as type loaOf is deprecated.
-                See https://github.com/NixOS/nixpkgs/pull/63103 for more information.
-                Do
-                  ${option} =
-                    { ${set}${more}}
-                instead of
-                  ${option} =
-                    [ ${list}${more}]
-              '';
-            in
-              lib.warn msg res
-          else
-            def;
-        attrOnly = attrsOf elemType;
-      in mkOptionType rec {
-        name = "loaOf";
-        description = "list or attribute set of ${elemType.description}s";
-        check = x: isList x || isAttrs x;
-        merge = loc: defs: attrOnly.merge loc (convertAllLists loc defs);
-        emptyValue = { value = {}; };
-        getSubOptions = prefix: elemType.getSubOptions (prefix ++ ["<name?>"]);
-        getSubModules = elemType.getSubModules;
-        substSubModules = m: loaOf (elemType.substSubModules m);
-        functor = (defaultFunctor name) // { wrapped = elemType; };
-      };
+    # TODO: drop this in the future:
+    loaOf = elemType: types.attrsOf elemType // {
+      name = "loaOf";
+      deprecationMessage = "Mixing lists with attribute values is no longer"
+        + " possible; please use `types.attrsOf` instead. See"
+        + " https://github.com/NixOS/nixpkgs/issues/1800 for the motivation.";
+    };
 
     # Value of given type but with no merging (i.e. `uniq list`s are not concatenated).
     uniq = elemType: mkOptionType rec {
@@ -486,9 +425,15 @@ rec {
           else value
         ) defs;
 
+        freeformType = (evalModules {
+          inherit modules specialArgs;
+          args.name = "‹name›";
+        })._module.freeformType;
+
       in
       mkOptionType rec {
         name = "submodule";
+        description = freeformType.description or name;
         check = x: isAttrs x || isFunction x || path.check x;
         merge = loc: defs:
           (evalModules {
@@ -516,7 +461,12 @@ rec {
             # would be used, and use of `<` and `>` would break the XML document.
             # It shouldn't cause an issue since this is cosmetic for the manual.
             args.name = "‹name›";
-          }).options;
+          }).options // optionalAttrs (freeformType != null) {
+            # Expose the sub options of the freeform type. Note that the option
+            # discovery doesn't care about the attribute name used here, so this
+            # is just to avoid conflicts with potential options from the submodule
+            _freeformOptions = freeformType.getSubOptions prefix;
+          };
         getSubModules = modules;
         substSubModules = m: submoduleWith (attrs // {
           modules = m;
@@ -618,8 +568,9 @@ rec {
     # declarations from the ‘options’ attribute of containing option
     # declaration.
     optionSet = mkOptionType {
-      name = builtins.trace "types.optionSet is deprecated; use types.submodule instead" "optionSet";
+      name = "optionSet";
       description = "option set";
+      deprecationMessage = "Use `types.submodule' instead";
     };
     # Augment the given type with an additional type check function.
     addCheck = elemType: check: elemType // { check = x: elemType.check x && check x; };
diff --git a/nixpkgs/maintainers/maintainer-list.nix b/nixpkgs/maintainers/maintainer-list.nix
index 47ef2cc1f6ce..6f48c87a0046 100644
--- a/nixpkgs/maintainers/maintainer-list.nix
+++ b/nixpkgs/maintainers/maintainer-list.nix
@@ -26,6 +26,13 @@
 
     `handle == github` is strongly preferred whenever `github` is an acceptable attribute name and is short and convenient.
 
+    If `github` begins with a numeral, `handle` should be prefixed with an underscore.
+    ```nix
+    _1example = {
+      github = "1example";
+    };
+    ```
+
     Add PGP/GPG keys only if you actually use them to sign commits and/or mail.
 
     To get the required PGP/GPG values for a key run
@@ -35,14 +42,14 @@
 
     !!! Note that PGP/GPG values stored here are for informational purposes only, don't use this file as a source of truth.
 
-    More fields may be added in the future.
+    More fields may be added in the future, however, in order to comply with GDPR this file should stay as minimal as possible.
 
     Please keep the list alphabetically sorted.
     See `./scripts/check-maintainer-github-handles.sh` for an example on how to work with this data.
 */
 {
-  "0x4A6F" = {
-    email = "0x4A6F@shackspace.de";
+  _0x4A6F = {
+    email = "mail-maintainer@0x4A6F.dev";
     name = "Joachim Ernst";
     github = "0x4A6F";
     githubId = 9675338;
@@ -51,7 +58,7 @@
       fingerprint = "F466 A548 AD3F C1F1 8C88  4576 8702 7528 B006 D66D";
     }];
   };
-  "1000101" = {
+  _1000101 = {
     email = "b1000101@pm.me";
     github = "1000101";
     githubId = 791309;
@@ -139,6 +146,12 @@
     githubId = 1517066;
     name = "Aiken Cairncross";
   };
+  aciceri = {
+    name = "Andrea Ciceri";
+    email = "andrea.ciceri@autistici.org";
+    github = "aciceri";
+    githubId = 2318843;
+  };
   acowley = {
     email = "acowley@gmail.com";
     github = "acowley";
@@ -241,6 +254,12 @@
     githubId = 732652;
     name = "Andreas Herrmann";
   };
+  ahrzb = {
+    email = "ahrzb5@gmail.com";
+    github = "ahrzb";
+    githubId = 5220438;
+    name = "AmirHossein Roozbahani";
+  };
   ahuzik = {
     email = "ales.guzik@gmail.com";
     github = "alesguzik";
@@ -277,6 +296,12 @@
     githubId = 273837;
     name = "Mateusz Czapliński";
   };
+  akamaus = {
+    email = "dmitryvyal@gmail.com";
+    github = "akamaus";
+    githubId = 58955;
+    name = "Dmitry Vyal";
+  };
   akaWolf = {
     email = "akawolf0@gmail.com";
     github = "akaWolf";
@@ -301,6 +326,12 @@
     githubId = 43479487;
     name = "Titouan Biteau";
   };
+  alerque = {
+    email = "caleb@alerque.com";
+    github = "alerque";
+    githubId = 173595;
+    name = "Caleb Maclennan";
+  };
   alexarice = {
     email = "alexrice999@hotmail.co.uk";
     github = "alexarice";
@@ -313,6 +344,12 @@
     githubId = 2387841;
     name = "Alexander Bakker";
   };
+  alexbiehl = {
+    email = "alexbiehl@gmail.com";
+    github = "alexbiehl";
+    githubId = 1876617;
+    name = "Alex Biehl";
+  };
   alexchapman = {
     email = "alex@farfromthere.net";
     github = "AJChapman";
@@ -435,6 +472,12 @@
     githubId = 858965;
     name = "Andrew Morsillo";
   };
+  andehen = {
+    email = "git@andehen.net";
+    github = "andehen";
+    githubId = 754494;
+    name = "Anders Asheim Hennum";
+  };
   andersk = {
     email = "andersk@mit.edu";
     github = "andersk";
@@ -525,6 +568,12 @@
     githubId = 750786;
     name = "Justin Wood";
   };
+  anna328p = {
+    email = "anna328p@gmail.com";
+    github = "anna328p";
+    githubId = 9790772;
+    name = "Anna";
+  };
   anmonteiro = {
     email = "anmonteiro@gmail.com";
     github = "anmonteiro";
@@ -621,6 +670,12 @@
     githubId = 1296771;
     name = "Anders Riutta";
   };
+  arnarg = {
+    email = "arnarg@fastmail.com";
+    github = "arnarg";
+    githubId = 1291396;
+    name = "Arnar Ingason";
+  };
   arnoldfarkas = {
     email = "arnold.farkas@gmail.com";
     github = "arnoldfarkas";
@@ -649,6 +704,12 @@
     githubId = 3965744;
     name = "Arthur Lee";
   };
+  arturcygan = {
+    email = "arczicygan@gmail.com";
+    github = "arcz";
+    githubId = 4679721;
+    name = "Artur Cygan";
+  };
   artuuge = {
     email = "artuuge@gmail.com";
     github = "artuuge";
@@ -745,6 +806,12 @@
     githubId = 574938;
     name = "Jonathan Glines";
   };
+  austinbutler = {
+    email = "austinabutler@gmail.com";
+    github = "austinbutler";
+    githubId = 354741;
+    name = "Austin Butler";
+  };
   avaq = {
     email = "nixpkgs@account.avaq.it";
     github = "avaq";
@@ -791,6 +858,12 @@
     githubId = 135230;
     name = "Aycan iRiCAN";
   };
+  artturin = {
+    email = "artturin@artturin.com";
+    github = "artturin";
+    githubId = 56650223;
+    name = "Artturi N";
+  };
   b4dm4n = {
     email = "fabianm88@gmail.com";
     github = "B4dM4n";
@@ -819,9 +892,9 @@
     githubId = 1017537;
     name = "Bruno Bieth";
   };
-  badi = {
-    email = "abdulwahidc@gmail.com";
-    github = "badi";
+  badmutex = {
+    email = "github@badi.sh";
+    github = "badmutex";
     githubId = 35324;
     name = "Badi' Abdul-Wahid";
   };
@@ -1013,6 +1086,12 @@
     githubId = 5718007;
     name = "Bastian Köcher";
   };
+  blaggacao = {
+    name = "David Arnold";
+    email = "dar@xoe.solutions";
+    github = "blaggacao";
+    githubId = 7548295;
+  };
   blanky0230 = {
     email = "blanky0230@gmail.com";
     github = "blanky0230";
@@ -1031,6 +1110,12 @@
     githubId = 16330;
     name = "Mathijs Kwik";
   };
+  bmilanov = {
+    name = "Biser Milanov";
+    email = "bmilanov11+nixpkgs@gmail.com";
+    github = "bmilanov";
+    githubId = 30090366;
+  };
   bobakker = {
     email = "bobakk3r@gmail.com";
     github = "bobakker";
@@ -1073,6 +1158,12 @@
     githubId = 3465841;
     name = "Boris Sukholitko";
   };
+  bouk = {
+    name = "Bouke van der Bijl";
+    email = "i@bou.ke";
+    github = "bouk";
+    githubId = 97820;
+  };
   bradediger = {
     email = "brad@bradediger.com";
     github = "bradediger";
@@ -1115,18 +1206,36 @@
     githubId = 5525646;
     name = "Brice Waegeneire";
   };
+  bsima = {
+    email = "ben@bsima.me";
+    github = "bsima";
+    githubId = 200617;
+    name = "Ben Sima";
+  };
   bstrik = {
     email = "dutchman55@gmx.com";
     github = "bstrik";
     githubId = 7716744;
     name = "Berno Strik";
   };
+  breakds = {
+    email = "breakds@gmail.com";
+    github = "breakds";
+    githubId = 1111035;
+    name = "Break Yang";
+  };
   brettlyons = {
     email = "blyons@fastmail.com";
     github = "brettlyons";
     githubId = 3043718;
     name = "Brett Lyons";
   };
+  bryanasdev000 = {
+    email = "bryanasdev000@gmail.com";
+    github = "bryanasdev000";
+    githubId = 53131727;
+    name = "Bryan Albuquerque";
+  };
   btlvr = {
     email = "btlvr@protonmail.com";
     github = "btlvr";
@@ -1342,6 +1451,12 @@
     githubId = 89596;
     name = "Florian Friesdorf";
   };
+  charvp = {
+    email = "nixpkgs@cvpetegem.be";
+    github = "charvp";
+    githubId = 42220376;
+    name = "Charlotte Van Petegem";
+  };
   chattered = {
     email = "me@philscotted.com";
     name = "Phil Scott";
@@ -1364,6 +1479,22 @@
     githubId = 30435868;
     name = "Okina Matara";
   };
+  Chili-Man = {
+    email = "dr.elhombrechile@gmail.com";
+    name = "Diego Rodriguez";
+    github = "Chili-Man";
+    githubId = 631802;
+    keys = [{
+      longkeyid = "rsa4096/0xE0EBAD78F0190BD9";
+      fingerprint = "099E 3F97 FA08 3D47 8C75  EBEC E0EB AD78 F019 0BD9";
+    }];
+  };
+  chiroptical = {
+    email = "chiroptical@gmail.com";
+    github = "chiroptical";
+    githubId = 3086255;
+    name = "Barry Moore II";
+  };
   chkno = {
     email = "chuck@intelligence.org";
     github = "chkno";
@@ -1528,6 +1659,12 @@
     githubId = 5561189;
     name = "Cody Opel";
   };
+  cohei = {
+    email = "a.d.xvii.kal.mai@gmail.com";
+    github = "cohei";
+    githubId = 3477497;
+    name = "TANIGUCHI Kohei";
+  };
   cohencyril = {
     email = "cyril.cohen@inria.fr";
     github = "CohenCyril";
@@ -1586,6 +1723,12 @@
     githubId = 32609395;
     name = "B YI";
   };
+  conradmearns = {
+    email = "conradmearns+github@pm.me";
+    github = "ConradMearns";
+    githubId = 5510514;
+    name = "Conrad Mearns";
+  };
   couchemar = {
     email = "couchemar@yandex.ru";
     github = "couchemar";
@@ -1598,6 +1741,16 @@
     githubId = 411324;
     name = "Carles Pagès";
   };
+  cpu = {
+    email = "daniel@binaryparadox.net";
+    github = "cpu";
+    githubId = 292650;
+    name = "Daniel McCarney";
+    keys = [{
+      longkeyid = "rsa2048/0x08FB2BFC470E75B4";
+      fingerprint = "8026 D24A A966 BF9C D3CD  CB3C 08FB 2BFC 470E 75B4";
+    }];
+  };
   craigem = {
     email = "craige@mcwhirter.io";
     github = "craigem";
@@ -1622,6 +1775,16 @@
     githubId = 1222362;
     name = "Matías Lang";
   };
+  CRTified = {
+    email = "carl.schneider+nixos@rub.de";
+    github = "CRTified";
+    githubId = 2440581;
+    name = "Carl Richard Theodor Schneider";
+    keys = [{
+      longkeyid = "rsa4096/0x45BCC1E2709B1788";
+      fingerprint = "2017 E152 BB81 5C16 955C  E612 45BC C1E2 709B 1788";
+    }];
+  };
   cryptix = {
     email = "cryptix@riseup.net";
     github = "cryptix";
@@ -1652,6 +1815,16 @@
     githubId = 490965;
     name = "Craig Swank";
   };
+  cust0dian = {
+    email = "serg@effectful.software";
+    github = "cust0dian";
+    githubId = 389387;
+    name = "Serg Nesterov";
+    keys = [{
+      longkeyid = "rsa4096/0x1512F6EB84AECC8C";
+      fingerprint = "6E7D BA30 DB5D BA60 693C  3BE3 1512 F6EB 84AE CC8C";
+    }];
+  };
   cwoac = {
     email = "oliver@codersoffortune.net";
     github = "cwoac";
@@ -1730,6 +1903,12 @@
     githubId = 1918;
     name = "David Anderson";
   };
+  dandellion = {
+    email = "daniel@dodsorf.as";
+    github = "dali99";
+    githubId = 990767;
+    name = "Daniel Olsen";
+  };
   danharaj = {
     email = "dan@obsidian.systems";
     github = "danharaj";
@@ -1760,10 +1939,22 @@
     githubId = 4971975;
     name = "Janne Heß";
   };
+  dasj19 = {
+    email = "daniel@serbanescu.dk";
+    github = "dasj19";
+    githubId = 7589338;
+    name = "Daniel Șerbănescu";
+  };
   dasuxullebt = {
     email = "christoph.senjak@googlemail.com";
     name = "Christoph-Simon Senjak";
   };
+  david-sawatzke = {
+    email = "d-nix@sawatzke.dev";
+    github = "david-sawatzke";
+    githubId = 11035569;
+    name = "David Sawatzke";
+  };
   david50407 = {
     email = "me@davy.tw";
     github = "david50407";
@@ -1816,6 +2007,12 @@
     githubId = 14032;
     name = "Daniel Brockman";
   };
+  ddelabru = {
+    email = "ddelabru@redhat.com";
+    github = "ddelabru";
+    githubId = 39909293;
+    name = "Dominic Delabruere";
+  };
   dduan = {
     email = "daniel@duan.ca";
     github = "dduan";
@@ -1972,12 +2169,6 @@
     githubId = 1316469;
     name = "Naomi Morse";
   };
-  dkudriavtsev = {
-    email = "dkudriavtsev@gmail.com";
-    github = "dkudriavtsev";
-    githubId = 9790772;
-    name = "Dmitry Kudriavtsev";
-  };
   dmalikov = {
     email = "malikov.d.y@gmail.com";
     github = "dmalikov";
@@ -2050,6 +2241,22 @@
     githubId = 974130;
     name = "David Pätzel";
   };
+  dpausp = {
+    email = "dpausp@posteo.de";
+    github = "dpausp";
+    githubId = 1965950;
+    name = "Tobias Stenzel";
+    keys = [{
+      longkeyid = "rsa2048/0x78C7DD40DF23FB16";
+      fingerprint = "4749 0887 CF3B 85A1 6355  C671 78C7 DD40 DF23 FB16";
+    }];
+  };
+  dpercy = {
+    email = "dpercy@dpercy.dev";
+    github = "dpercy";
+    githubId = 349909;
+    name = "David Percy";
+  };
   dpflug = {
     email = "david@pflug.email";
     github = "dpflug";
@@ -2284,6 +2491,12 @@
     githubId = 1753498;
     name = "Dejan Lukan";
   };
+  elliottvillars = {
+    email = "elliottvillars@gmail.com";
+    github = "elliottvillars";
+    githubId = 48104179;
+    name = "Elliott Villars";
+  };
   eliasp = {
     email = "mail@eliasprobst.eu";
     github = "eliasp";
@@ -2308,6 +2521,12 @@
     githubId = 97852;
     name = "Ellis Whitehead";
   };
+  elkowar = {
+    email = "thereal.elkowar@gmail.com";
+    github = "elkowar";
+    githubId = 5300871;
+    name = "Leon Kowarschick";
+  };
   elohmeier = {
     email = "elo-nixos@nerdworks.de";
     github = "elohmeier";
@@ -2540,6 +2759,12 @@
     githubId = 857308;
     name = "Joe Hermaszewski";
   };
+  extends = {
+    email = "sharosari@gmail.com";
+    github = "ImExtends";
+    githubId = 55919390;
+    name = "Vincent VILLIAUMEY";
+  };
   eyjhb = {
     email = "eyjhbb@gmail.com";
     github = "eyJhb";
@@ -2598,6 +2823,16 @@
     githubId = 541748;
     name = "Felipe Espinoza";
   };
+  felschr = {
+    email = "dev@felschr.com";
+    github = "felschr";
+    githubId = 3314323;
+    name = "Felix Tenley";
+    keys = [{
+      longkeyid = "ed25519/0x910ACB9F6BD26F58";
+      fingerprint = "6AB3 7A28 5420 9A41 82D9  0068 910A CB9F 6BD2 6F58";
+    }];
+  };
   ffinkdevs = {
     email = "fink@h0st.space";
     github = "ffinkdevs";
@@ -2620,6 +2855,12 @@
       fingerprint = "F549 3B7F 9372 5578 FDD3  D0B8 A1BC 8428 323E CFE8";
     }];
   };
+  fionera = {
+    email = "nix@fionera.de";
+    github = "fionera";
+    githubId = 5741401;
+    name = "Tim Windelschmidt";
+  };
   FireyFly = {
     email = "nix@firefly.nu";
     github = "FireyFly";
@@ -2690,6 +2931,12 @@
     githubId = 5918766;
     name = "Franz Thoma";
   };
+  fooker = {
+    email = "fooker@lab.sh";
+    github = "fooker";
+    githubId = 405105;
+    name = "Dustin Frisch";
+  };
   forkk = {
     email = "forkk@forkk.net";
     github = "forkk";
@@ -2842,6 +3089,12 @@
     githubId = 7047019;
     name = "Florent Becker";
   };
+  galagora = {
+    email = "lightningstrikeiv@gmail.com";
+    github = "galagora";
+    githubId = 45048741;
+    name = "Alwanga Oyango";
+  };
   gamb = {
     email = "adam.gamble@pm.me";
     github = "gamb";
@@ -2878,12 +3131,6 @@
     githubId = 313929;
     name = "Gabriel Ebner";
   };
-  geistesk = {
-    email = "post@0x21.biz";
-    github = "geistesk";
-    githubId = 8402811;
-    name = "Alvar Penning";
-  };
   genesis = {
     email = "ronan@aimao.org";
     github = "bignaux";
@@ -2908,6 +3155,12 @@
     githubId = 3217744;
     name = "Peter Ferenczy";
   };
+  ghuntley = {
+    email = "ghuntley@ghuntley.com";
+    github = "ghuntley";
+    githubId = 127353;
+    name = "Geoffrey Huntley";
+  };
   gila = {
     email = "jeffry.molanus@gmail.com";
     github = "gila";
@@ -2938,6 +3191,16 @@
     githubId = 615606;
     name = "Glenn Searby";
   };
+  glittershark = {
+    name = "Griffin Smith";
+    email = "root@gws.fyi";
+    github = "glittershark";
+    githubId = 1481027;
+    keys = [{
+      longkeyid = "rsa2048/0x44EF5B5E861C09A7";
+      fingerprint = "0F11 A989 879E 8BBB FDC1  E236 44EF 5B5E 861C 09A7";
+    }];
+  };
   gloaming = {
     email = "ch9871@gmail.com";
     github = "gloaming";
@@ -2962,6 +3225,12 @@
     githubId = 25820499;
     name = "Roman Kretschmer";
   };
+  goertzenator = {
+    email = "daniel.goertzen@gmail.com";
+    github = "goertzenator";
+    githubId = 605072;
+    name = "Daniel Goertzen";
+  };
   goibhniu = {
     email = "cillian.deroiste@gmail.com";
     github = "cillianderoiste";
@@ -3050,6 +3319,12 @@
     githubId = 6768842;
     name = "Joris Guyonvarch";
   };
+  gvolpe = {
+    email = "volpegabriel@gmail.com";
+    github = "gvolpe";
+    githubId = 443978;
+    name = "Gabriel Volpe";
+  };
   hakuch = {
     email = "hakuch@gmail.com";
     github = "hakuch";
@@ -3073,6 +3348,10 @@
     github = "haozeke";
     githubId = 4336207;
     name = "Rohit Goswami";
+    keys = [{
+      longkeyid = "rsa4096/0x9CCCE36402CB49A6";
+      fingerprint = "74B1 F67D 8E43 A94A 7554  0768 9CCC E364 02CB 49A6";
+    }];
   };
   haslersn = {
     email = "haslersn@fius.informatik.uni-stuttgart.de";
@@ -3146,6 +3425,12 @@
     githubId = 131599;
     name = "Martin Weinelt";
   };
+  hh = {
+    email = "hh@m-labs.hk";
+    github = "HarryMakes";
+    githubId = 66358631;
+    name = "Harry Ho";
+  };
   hhm = {
     email = "heehooman+nixpkgs@gmail.com";
     github = "hhm0";
@@ -3173,10 +3458,14 @@
     name = "Hlodver Sigurdsson";
   };
   hugoreeves = {
-    email = "hugolreeves@gmail.com";
+    email = "hugo@hugoreeves.com";
     github = "hugoreeves";
     githubId = 20039091;
     name = "Hugo Reeves";
+    keys = [{
+      longkeyid = "rsa4096/0x49FA39F8A7F735F9";
+      fingerprint = "78C2 E81C 828A 420B 269A  EBC1 49FA 39F8 A7F7 35F9";
+    }];
   };
   hodapp = {
     email = "hodapp87@gmail.com";
@@ -3184,6 +3473,12 @@
     githubId = 896431;
     name = "Chris Hodapp";
   };
+  hongchangwu = {
+    email = "wuhc85@gmail.com";
+    github = "hongchangwu";
+    githubId = 362833;
+    name = "Hongchang Wu";
+  };
   hrdinka = {
     email = "c.nix@hrdinka.at";
     github = "hrdinka";
@@ -3202,6 +3497,12 @@
     githubId = 39689;
     name = "Hugo Tavares Reis";
   };
+  hugolgst = {
+    email = "hugo.lageneste@pm.me";
+    github = "hugolgst";
+    githubId = 15371828;
+    name = "Hugo Lageneste";
+  };
   hyphon81 = {
     email = "zero812n@gmail.com";
     github = "hyphon81";
@@ -3304,6 +3605,12 @@
     githubId = 993484;
     name = "Greg Hale";
   };
+  immae = {
+    email = "ismael@bouya.org";
+    github = "immae";
+    githubId = 510202;
+    name = "Ismaël Bouya";
+  };
   imuli = {
     email = "i@imu.li";
     github = "imuli";
@@ -3402,6 +3709,12 @@
     githubId = 26877687;
     name = "Yurii Izorkin";
   };
+  j0hax = {
+    name = "Johannes Arnold";
+    email = "johannes.arnold@stud.uni-hannover.de";
+    github = "j0hax";
+    githubId = 3802620;
+  };
   jacg = {
     name = "Jacek Generowicz";
     email = "jacg@my-post-office.net";
@@ -3450,6 +3763,12 @@
     githubId = 5283991;
     name = "Jake Waksbaum";
   };
+  jamiemagee = {
+    email = "jamie.magee@gmail.com";
+    github = "JamieMagee";
+    githubId = 1358764;
+    name = "Jamie Magee";
+  };
   jammerful = {
     email = "jammerful@gmail.com";
     github = "jammerful";
@@ -3518,12 +3837,24 @@
     }];
     name = "Jiri Daněk";
   };
+  jdbaldry = {
+    email = "jack.baldry@grafana.com";
+    github = "jdbaldry";
+    githubId = 4599384;
+    name = "Jack Baldry";
+  };
   jdehaas = {
     email = "qqlq@nullptr.club";
     github = "jeroendehaas";
     githubId = 117874;
     name = "Jeroen de Haas";
   };
+  jduan = {
+    name = "Jingjing Duan";
+    email = "duanjingjing@gmail.com";
+    github = "jduan";
+    githubId = 452450;
+  };
   jefdaj = {
     email = "jefdaj@gmail.com";
     github = "jefdaj";
@@ -3632,6 +3963,12 @@
     githubId = 51518420;
     name = "jitwit";
   };
+  jjjollyjim = {
+    email = "jamie@kwiius.com";
+    github = "JJJollyjim";
+    githubId = 691552;
+    name = "Jamie McClymont";
+  };
   jk = {
     email = "hello+nixpkgs@j-k.io";
     github = "06kellyjac";
@@ -3680,12 +4017,24 @@
     githubId = 41977;
     name = "Joachim Fasting";
   };
+  joachimschmidt557 = {
+    email = "joachim.schmidt557@outlook.com";
+    github = "joachimschmidt557";
+    githubId = 28556218;
+    name = "Joachim Schmidt";
+  };
   joamaki = {
     email = "joamaki@gmail.com";
     github = "joamaki";
     githubId = 1102396;
     name = "Jussi Maki";
   };
+  jobojeha = {
+    email = "jobojeha@jeppener.de";
+    github = "jobojeha";
+    githubId = 60272884;
+    name = "Jonathan Jeppener-Haltenhoff";
+  };
   joelburget = {
     email = "joelburget@gmail.com";
     github = "joelburget";
@@ -3750,6 +4099,12 @@
     githubId = 8735102;
     name = "John Ramsden";
   };
+  johntitor = {
+    email = "huyuumi.dev@gmail.com";
+    github = "JohnTitor";
+    githubId = 25030997;
+    name = "Yuki Okushi";
+  };
   jojosch = {
     name = "Johannes Schleifenbaum";
     email = "johannes@js-webcoding.de";
@@ -3789,12 +4144,6 @@
     githubId = 1843676;
     name = "Jonathan Reeve";
   };
-  joncojonathan = {
-    email = "joncojonathan@gmail.com";
-    github = "joncojonathan";
-    githubId = 11414454;
-    name = "Jonathan Haddock";
-  };
   jonringer = {
     email = "jonringer117@gmail.com";
     github = "jonringer";
@@ -3831,6 +4180,12 @@
     githubId = 1918771;
     name = "Joe Doyle";
   };
+  jperras = {
+    email = "joel@nerderati.com";
+    github = "jperras";
+    githubId = 20675;
+    name = "Joël Perras";
+  };
   jpierre03 = {
     email = "nix@prunetwork.fr";
     github = "jpierre03";
@@ -3855,6 +4210,12 @@
     githubId = 4611077;
     name = "Raymond Gauthier";
   };
+  jschievink = {
+    email = "jonasschievink@gmail.com";
+    github = "jonas-schievink";
+    githubId = 1786438;
+    name = "Jonas Schievink";
+  };
   jtcoolen = {
     email = "jtcoolen@pm.me";
     name = "Julien Coolen";
@@ -3963,6 +4324,12 @@
     githubId = 87115;
     name = "Wael Nasreddine";
   };
+  kalekseev = {
+    email = "mail@kalekseev.com";
+    github = "kalekseev";
+    githubId = 367259;
+    name = "Konstantin Alekseev";
+  };
   kamadorueda = {
     name = "Kevin Amado";
     email = "kamadorueda@gmail.com";
@@ -3991,6 +4358,12 @@
     github = "karantan";
     githubId = 7062631;
   };
+  KarlJoad = {
+    email = "karl@hallsby.com";
+    github = "KarlJoad";
+    githubId = 34152449;
+    name = "Karl Hallsby";
+  };
   karolchmist = {
     email = "info+nix@chmist.com";
     name = "karolchmist";
@@ -4025,6 +4398,12 @@
     githubId = 494012;
     name = "Kevin Cox";
   };
+  kfollesdal = {
+    email = "kfollesdal@gmail.com";
+    github = "kfollesdal";
+    githubId = 546087;
+    name = "Kristoffer K. Føllesdal";
+  };
   khumba = {
     email = "bog@khumba.net";
     github = "khumba";
@@ -4194,6 +4573,12 @@
     githubId = 524268;
     name = "Koral";
   };
+  koslambrou = {
+    email = "koslambrou@gmail.com";
+    github = "koslambrou";
+    githubId = 2037002;
+    name = "Konstantinos";
+  };
   kovirobi = {
     email = "kovirobi@gmail.com";
     github = "kovirobi";
@@ -4445,6 +4830,12 @@
       fingerprint = "7FE2 113A A08B 695A C8B8  DDE6 AE53 B4C2 E58E DD45";
     }];
   };
+  lf- = {
+    email = "nix-maint@lfcode.ca";
+    github = "lf-";
+    githubId = 6652840;
+    name = "Jade";
+  };
   lheckemann = {
     email = "git@sphalerite.org";
     github = "lheckemann";
@@ -4585,6 +4976,18 @@
     githubId = 1202012;
     name = "Ignat Loskutov";
   };
+  lostnet = {
+    email = "lost.networking@gmail.com";
+    github = "lostnet";
+    githubId = 1422781;
+    name = "Will Young";
+  };
+  louisdk1 = {
+    email = "louis@louis.dk";
+    github = "louisdk1";
+    githubId = 4969294;
+    name = "Louis Tim Larsen";
+  };
   lovek323 = {
     email = "jason@oconal.id.au";
     github = "lovek323";
@@ -4637,6 +5040,12 @@
     githubId = 59375051;
     name = "Lucas Ransan";
   };
+  lucperkins = {
+    email = "lucperkins@gmail.com";
+    github = "lucperkins";
+    githubId = 1523104;
+    name = "Luc Perkins";
+  };
   lucus16 = {
     email = "lars.jellema@gmail.com";
     github = "Lucus16";
@@ -4683,6 +5092,12 @@
     githubId = 34683288;
     name = "Luke Bentley-Fox";
   };
+  lukegb = {
+    email = "nix@lukegb.com";
+    github = "lukegb";
+    githubId = 246745;
+    name = "Luke Granger-Brown";
+  };
   lukego = {
     email = "luke@snabb.co";
     github = "lukego";
@@ -4937,6 +5352,12 @@
     githubId = 35892750;
     name = "Maxine Aubrey";
   };
+  maxxk = {
+    email = "maxim.krivchikov@gmail.com";
+    github = "maxxk";
+    githubId = 1191859;
+    name = "Maxim Krivchikov";
+  };
   mbakke = {
     email = "mbakke@fastmail.com";
     github = "mbakke";
@@ -4979,6 +5400,12 @@
     githubId = 2971615;
     name = "Marius Bergmann";
   };
+  mcbeth = {
+    email = "mcbeth@broggs.org";
+    github = "mcbeth";
+    githubId = 683809;
+    name = "Jeffrey Brent McBeth";
+  };
   mcmtroffaes = {
     email = "matthias.troffaes@gmail.com";
     github = "mcmtroffaes";
@@ -4991,6 +5418,12 @@
     githubId = 13689192;
     name = "Nguyễn Gia Phong";
   };
+  mcwitt = {
+    email = "mcwitt@gmail.com";
+    github = "mcwitt";
+    githubId = 319411;
+    name = "Matt Wittmann";
+  };
   mdaiter = {
     email = "mdaiter8121@gmail.com";
     github = "mdaiter";
@@ -5008,6 +5441,10 @@
     github = "mdlayher";
     githubId = 1926905;
     name = "Matt Layher";
+    keys = [{
+      longkeyid = "rsa2048/0x77BFE531397EDE94";
+      fingerprint = "D709 03C8 0BE9 ACDC 14F0  3BFB 77BF E531 397E DE94";
+    }];
   };
   meditans = {
     email = "meditans@gmail.com";
@@ -5061,6 +5498,12 @@
     github = "metadark";
     githubId = 382041;
   };
+  meutraa = {
+    email = "paul+nixpkgs@lost.host";
+    name = "Paul Meredith";
+    github = "meutraa";
+    githubId = 68550871;
+  };
   mfossen = {
     email = "msfossen@gmail.com";
     github = "mfossen";
@@ -5145,10 +5588,14 @@
     name = "Michael Mercier";
   };
   midchildan = {
-    email = "midchildan+nix@gmail.com";
+    email = "git@midchildan.org";
     github = "midchildan";
     githubId = 7343721;
     name = "midchildan";
+    keys = [{
+      longkeyid = "rsa4096/0x186A1EDAC5C63F83";
+      fingerprint = "FEF0 AE2D 5449 3482 5F06  40AA 186A 1EDA C5C6 3F83";
+    }];
   };
   mikefaille = {
     email = "michael@faille.io";
@@ -5280,6 +5727,12 @@
     githubId = 622577;
     name = "Michael Lieberman";
   };
+  mlvzk = {
+    name = "mlvzk";
+    email = "mlvzk@users.noreply.github.com";
+    github = "mlvzk";
+    githubId = 44906333;
+  };
   mmahut = {
     email = "marek.mahut@gmail.com";
     github = "mmahut";
@@ -5292,6 +5745,12 @@
     githubId = 117842;
     name = "Henri Bourcereau";
   };
+  mmesch = {
+    email = "mmesch@noreply.github.com";
+    github = "mmesch";
+    githubId = 2597803;
+    name = "Matthias Meschede";
+  };
   mmilata = {
     email = "martin@martinmilata.cz";
     github = "mmilata";
@@ -5508,6 +5967,12 @@
     githubId = 2176611;
     name = "Marko Poikonen";
   };
+  mtreca = {
+    email = "maxime@treca.dev";
+    name = "Maxime Tréca";
+    github = "mtreca";
+    githubId = 16440823;
+  };
   mtreskin = {
     email = "zerthurd@gmail.com";
     github = "Zert";
@@ -5532,6 +5997,12 @@
     githubId = 5047140;
     name = "Victor Collod";
   };
+  mupdt = {
+    email = "nix@pdtpartners.com";
+    github = "mupdt";
+    githubId = 25388474;
+    name = "Matej Urbas";
+  };
   mvnetbiz = {
     email = "mvnetbiz@gmail.com";
     github = "mvnetbiz";
@@ -5660,6 +6131,16 @@
     githubId = 8214542;
     name = "Nicolò Balzarotti";
   };
+  NieDzejkob = {
+    email = "kuba@kadziolka.net";
+    github = "NieDzejkob";
+    githubId = 23580910;
+    name = "Jakub Kądziołka";
+    keys = [{
+      longkeyid = "rsa4096/0xE315A75846131564";
+      fingerprint = "E576 BFB2 CF6E B13D F571  33B9 E315 A758 4613 1564";
+    }];
+  };
   NikolaMandic = {
     email = "nikola@mandic.email";
     github = "NikolaMandic";
@@ -5672,6 +6153,12 @@
     githubId = 1224006;
     name = "Roberto Abdelkader Martínez Pérez";
   };
+  nilsirl = {
+    email = "nils@nilsand.re";
+    github = "NilsIrl";
+    githubId = 26231126;
+    name = "Nils ANDRÉ-CHANG";
+  };
   ninjatrappeur = {
     email = "felix@alternativebit.fr";
     github = "ninjatrappeur";
@@ -5708,6 +6195,12 @@
     githubId = 6930756;
     name = "Nicolas Mattia";
   };
+  nobbz = {
+    name = "Norbert Melzer";
+    email = "timmelzer+nixpkgs@gmail.com";
+    github = "NobbZ";
+    githubId = 58951;
+  };
   nocent = {
     email = "nocent@protonmail.ch";
     github = "nocent";
@@ -5928,6 +6421,16 @@
       fingerprint = "514B B966 B46E 3565 0508  86E8 0E6C A66E 5C55 7AA8";
     }];
   };
+  oxzi = {
+    email = "post@0x21.biz";
+    github = "oxzi";
+    githubId = 8402811;
+    name = "Alvar Penning";
+    keys = [{
+      longkeyid = "rsa4096/0xF32A45637FA25E31";
+      fingerprint = "EB14 4E67 E57D 27E2 B5A4  CD8C F32A 4563 7FA2 5E31";
+    }];
+  };
   oyren = {
     email = "m.scheuren@oyra.eu";
     github = "oyren";
@@ -6000,6 +6503,12 @@
     githubId = 20792;
     name = "Sebastian Galkin";
   };
+  parasrah = {
+    email = "nixos@parasrah.com";
+    github = "parasrah";
+    githubId = 14935550;
+    name = "Brad Pfannmuller";
+  };
   pashashocky = {
     email = "pashashocky@gmail.com";
     github = "pashashocky";
@@ -6040,6 +6549,12 @@
     githubId = 157610;
     name = "Piotr Bogdan";
   };
+  pblkt = {
+    email = "pebblekite@gmail.com";
+    github = "pblkt";
+    githubId = 6498458;
+    name = "pebble kite";
+  };
   pcarrier = {
     email = "pc@rrier.ca";
     github = "pcarrier";
@@ -6174,6 +6689,12 @@
     githubId = 119460;
     name = "Perry Barnoy";
   };
+  pjjw = {
+    email = "peter@shortbus.org";
+    github = "pjjw";
+    githubId = 638;
+    name = "Peter Woodman";
+  };
   pjones = {
     email = "pjones@devalot.com";
     github = "pjones";
@@ -6268,6 +6789,12 @@
       fingerprint = "240B 57DE 4271 2480 7CE3  EAC8 4F74 D536 1C4C A31E";
     }];
   };
+  priegger = {
+    email = "philipp@riegger.name";
+    github = "priegger";
+    githubId = 228931;
+    name = "Philipp Riegger";
+  };
   prikhi = {
     email = "pavan.rikhi@gmail.com";
     github = "prikhi";
@@ -6318,6 +6845,12 @@
       fingerprint = "86E6 792F C27B FD47 8860  C110 91F3 B339 B9A0 2A3D";
     }];
   };
+  psanford = {
+    email = "psanford@sanford.io";
+    github = "psanford";
+    githubId = 33375;
+    name = "Peter Sanford";
+  };
   pshendry = {
     email = "paul@pshendry.com";
     github = "pshendry";
@@ -6370,6 +6903,12 @@
     githubId = 37715;
     name = "Brian McKenna";
   };
+  purcell = {
+    email = "steve@sanityinc.com";
+    github = "purcell";
+    githubId =	5636;
+    name = "Steve Purcell";
+  };
   puzzlewolf = {
     email = "nixos@nora.pink";
     github = "puzzlewolf";
@@ -6406,6 +6945,12 @@
     githubId = 115877;
     name = "Kenny Shen";
   };
+  quentini = {
+    email = "quentini@airmail.cc";
+    github = "QuentinI";
+    githubId = 18196237;
+    name = "Quentin Inkling";
+  };
   qyliss = {
     email = "hi@alyssa.is";
     github = "alyssais";
@@ -6422,6 +6967,12 @@
     githubId = 131856;
     name = "Arnout Engelen";
   };
+  RaghavSood = {
+    email = "r@raghavsood.com";
+    github = "RaghavSood";
+    githubId = 903072;
+    name = "Raghav Sood";
+  };
   rafaelgg = {
     email = "rafael.garcia.gallego@gmail.com";
     github = "rafaelgg";
@@ -6650,6 +7201,12 @@
     githubId = 2507744;
     name = "Roland Koebler";
   };
+  rizary = {
+    email = "andika@numtide.com";
+    github = "Rizary";
+    githubId = 7221768;
+    name = "Andika Demas Riyandi";
+  };
   rkrzr = {
     email = "ops+nixpkgs@channable.com";
     github = "rkrzr";
@@ -6756,6 +7313,16 @@
     githubId = 3621083;
     name = "Roosembert (Roosemberth) Palacios";
   };
+  rople380 = {
+    name = "rople380";
+    email = "55679162+rople380@users.noreply.github.com";
+    github = "rople380";
+    githubId = 55679162;
+    keys = [{
+      longkeyid = "rsa2048/0x8526B7574A536236";
+      fingerprint = "1401 1B63 393D 16C1 AA9C  C521 8526 B757 4A53 6236";
+    }];
+  };
   royneary = {
     email = "christian@ulrich.earth";
     github = "royneary";
@@ -6920,6 +7487,16 @@
     githubId = 132835;
     name = "Samuel Dionne-Riel";
   };
+  samuelgrf = {
+    email = "git@samuelgrf.com";
+    github = "samuelgrf";
+    githubId = 67663538;
+    name = "Samuel Gräfenstein";
+    keys = [{
+      longkeyid = "rsa4096/0xEF76A063F15C63C8";
+      fingerprint = "FF24 5832 8FAF 4660 18C6  186E EF76 A063 F15C 63C8";
+    }];
+  };
   samuelrivas = {
     email = "samuelrivas@gmail.com";
     github = "samuelrivas";
@@ -6932,6 +7509,12 @@
     githubId = 1153271;
     name = "Sander van der Burg";
   };
+  sarcasticadmin = {
+    email = "rob@sarcasticadmin.com";
+    github = "sarcasticadmin";
+    githubId = 30531572;
+    name = "Robert James Hernandez";
+  };
   sargon = {
     email = "danielehlers@mindeye.net";
     github = "sargon";
@@ -7126,6 +7709,12 @@
     githubId = 24496705;
     name = "Scott Hamilton";
   };
+  ShamrockLee = {
+    name = "Shamrock Lee";
+    email = "44064051+ShamrockLee@users.noreply.github.com";
+    github = "ShamrockLee";
+    githubId = 44064051;
+  };
   shanemikel = {
     email = "shanepearlman@pm.me";
     github = "shanemikel";
@@ -7238,6 +7827,22 @@
     githubId = 2770647;
     name = "Simon Vandel Sillesen";
   };
+  siraben = {
+    email = "bensiraphob@gmail.com";
+    github = "siraben";
+    githubId = 8219659;
+    name = "Siraphob Phipathananunth";
+  };
+  siriobalmelli = {
+    email = "sirio@b-ad.ch";
+    github = "siriobalmelli";
+    githubId = 23038812;
+    name = "Sirio Balmelli";
+    keys = [{
+      longkeyid = "ed25519/0xF72C4A887F9A24CA";
+      fingerprint = "B234 EFD4 2B42 FE81 EE4D  7627 F72C 4A88 7F9A 24CA";
+    }];
+  };
   sivteck = {
     email = "sivaram1992@gmail.com";
     github = "sivteck";
@@ -7356,6 +7961,12 @@
     githubId = 3371635;
     name = "Salar Rahmanian";
   };
+  sohalt = {
+    email = "nixos@sohalt.net";
+    github = "sohalt";
+    githubId = 2157287;
+    name = "sohalt";
+  };
   solson = {
     email = "scott@solson.me";
     github = "solson";
@@ -7468,6 +8079,12 @@
     githubId = 231788;
     name = "Stephen Weinberg";
   };
+  stephenwithph = {
+    name = "StephenWithPH";
+    email = "StephenWithPH@users.noreply.github.com";
+    github = "StephenWithPH";
+    githubId = 2990492;
+  };
   sterfield = {
     email = "sterfield@gmail.com";
     github = "sterfield";
@@ -7544,6 +8161,18 @@
     githubId = 65870;
     name = "Сухарик";
   };
+  superbo = {
+    email = "supernbo@gmail.com";
+    github = "SuperBo";
+    githubId = 2666479;
+    name = "Y Nguyen";
+  };
+  SuperSandro2000 = {
+    email = "sandro.jaeckel@gmail.com";
+    github = "SuperSandro2000";
+    githubId = 7258858;
+    name = "Sandro Jäckel";
+  };
   SuprDewd = {
     email = "suprdewd@gmail.com";
     github = "SuprDewd";
@@ -7598,6 +8227,12 @@
     githubId = 332289;
     name = "Rafał Łasocha";
   };
+  syberant = {
+    email = "sybrand@neuralcoding.com";
+    github = "syberant";
+    githubId = 20063502;
+    name = "Sybrand Aarnoutse";
+  };
   symphorien = {
     email = "symphorien_nixpkgs@xlumurb.eu";
     github = "symphorien";
@@ -7734,6 +8369,12 @@
     githubId = 863327;
     name = "Tyler Benster";
   };
+  tcbravo = {
+    email = "tomas.bravo@protonmail.ch";
+    github = "tcbravo";
+    githubId = 66133083;
+    name = "Tomas Bravo";
+  };
   tckmn = {
     email = "andy@tck.mn";
     github = "tckmn";
@@ -7770,6 +8411,12 @@
     githubId = 26417242;
     name = "Mikolaj Galkowski";
   };
+  TethysSvensson = {
+    email = "freaken@freaken.dk";
+    github = "TethysSvensson";
+    githubId = 4294434;
+    name = "Tethys Svensson";
+  };
   teto = {
     email = "mcoudron@hotmail.com";
     github = "teto";
@@ -7812,6 +8459,12 @@
     githubId = 1141680;
     name = "Thane Gill";
   };
+  TheBrainScrambler = {
+    email = "esthromeris@riseup.net";
+    github = "TheBrainScrambler";
+    githubId = 34945377;
+    name = "John Smith";
+  };
   thedavidmeister = {
     email = "thedavidmeister@gmail.com";
     github = "thedavidmeister";
@@ -7830,7 +8483,7 @@
     githubId = 8547242;
     name = "Stefan Rohrbacher";
   };
-  "thelegy" = {
+  thelegy = {
     email = "mail+nixos@0jb.de";
     github = "thelegy";
     githubId = 3105057;
@@ -7900,6 +8553,12 @@
     githubId = 1391883;
     name = "Tom Hall";
   };
+  tiagolobocastro = {
+    email = "tiagolobocastro@gmail.com";
+    github = "tiagolobocastro";
+    githubId = 1618946;
+    name = "Tiago Castro";
+  };
   tilpner = {
     email = "till@hoeppner.ws";
     github = "tilpner";
@@ -8030,6 +8689,12 @@
     githubId = 1486805;
     name = "Toon Nolten";
   };
+  toschmidt = {
+    email = "tobias.schmidt@in.tum.de";
+    github = "toschmidt";
+    githubId = 27586264;
+    name = "Tobias Schmidt";
+  };
   travisbhartwell = {
     email = "nafai@travishartwell.net";
     github = "travisbhartwell";
@@ -8042,6 +8707,12 @@
     githubId = 207457;
     name = "Matthieu Chevrier";
   };
+  trepetti = {
+    email = "trepetti@cs.columbia.edu";
+    github = "trepetti";
+    githubId = 25440339;
+    name = "Tom Repetti";
+  };
   trevorj = {
     email = "nix@trevor.joynson.io";
     github = "akatrevorjay";
@@ -8100,6 +8771,12 @@
     githubId = 699403;
     name = "Tomas Vestelind";
   };
+  tviti = {
+    email = "tviti@hawaii.edu";
+    github = "tviti";
+    githubId = 2251912;
+    name = "Taylor Viti";
+  };
   tvorog = {
     email = "marszaripov@gmail.com";
     github = "tvorog";
@@ -8315,6 +8992,16 @@
       fingerprint = "B3C0 DA1A C18B 82E8 CA8B  B1D1 4F62 CD07 CE64 796A";
     }];
   };
+  vincentbernat = {
+    email = "vincent@bernat.ch";
+    github = "vincentbernat";
+    githubId = 631446;
+    name = "Vincent Bernat";
+    keys = [{
+      longkeyid = "rsa4096/0x95A42FE8353525F9";
+      fingerprint = "AEF2 3487 66F3 71C6 89A7  3600 95A4 2FE8 3535 25F9";
+    }];
+  };
   vinymeuh = {
     email = "vinymeuh@gmail.com";
     github = "vinymeuh";
@@ -8369,6 +9056,14 @@
     githubId = 13259982;
     name = "Vanessa McHale";
   };
+
+  voidless = {
+    email = "julius.schmitt@yahoo.de";
+    github = "voidIess";
+    githubId = 45292658;
+    name = "Julius Schmitt";
+  };
+
   volhovm = {
     email = "volhovm.cs@gmail.com";
     github = "volhovm";
@@ -8701,6 +9396,16 @@
       fingerprint = "85F8 E850 F8F2 F823 F934  535B EC50 6589 9AEA AF4C";
     }];
   };
+  yusdacra = {
+    email = "y.bera003.06@protonmail.com";
+    github = "yusdacra";
+    githubId = 19897088;
+    name = "Yusuf Bera Ertan";
+    keys = [{
+      longkeyid = "rsa2048/0x61807181F60EFCB2";
+      fingerprint = "9270 66BD 8125 A45B 4AC4 0326 6180 7181 F60E FCB2";
+    }];
+  };
   yvesf = {
     email = "yvesf+nix@xapek.org";
     github = "yvesf";
@@ -8765,6 +9470,16 @@
     email = "zef@zef.me";
     name = "Zef Hemel";
   };
+  zeratax = {
+    email = "mail@zera.tax";
+    github = "ZerataX";
+    githubId = 5024958;
+    name = "Jona Abdinghoff";
+    keys = [{
+      longkeyid = "rsa4096/0x8333735E784DF9D4";
+      fingerprint = "44F7 B797 9D3A 27B1 89E0  841E 8333 735E 784D F9D4";
+    }];
+  };
   zfnmxt = {
     name = "zfnmxt";
     email = "zfnmxt@zfnmxt.com";
@@ -8933,4 +9648,56 @@
     github = "cpcloud";
     githubId = 417981;
   };
+  davegallant = {
+    name = "Dave Gallant";
+    email = "davegallant@gmail.com";
+    github = "davegallant";
+    githubId = 4519234;
+  };
+  saulecabrera = {
+    name = "Saúl Cabrera";
+    email = "saulecabrera@gmail.com";
+    github = "saulecabrera";
+    githubId = 1423601;
+  };
+  tfmoraes = {
+    name = "Thiago Franco de Moraes";
+    email = "351108+tfmoraes@users.noreply.github.com";
+    github = "tfmoraes";
+    githubId = 351108;
+  };
+  deifactor = {
+    name = "Ash Zahlen";
+    email = "ext0l@riseup.net";
+    github = "deifactor";
+    githubId = 30192992;
+  };
+  fzakaria = {
+    name = "Farid Zakaria";
+    email = "farid.m.zakaria@gmail.com";
+    github = "fzakaria";
+    githubId = 605070;
+  };
+  nagisa = {
+    name = "Simonas Kazlauskas";
+    email = "nixpkgs@kazlauskas.me";
+    github = "nagisa";
+    githubId = 679122;
+  };
+  yevhenshymotiuk = {
+    name = "Yevhen Shymotiuk";
+    email = "yevhenshymotiuk@gmail.com";
+    github = "yevhenshymotiuk";
+    githubId = 44244245;
+  };
+  hmenke = {
+    name = "Henri Menke";
+    email = "henri@henrimenke.de";
+    github = "hmenke";
+    githubId = 1903556;
+    keys = [{
+      longkeyid = "rsa4096/0xD65C9AFB4C224DA3";
+      fingerprint = "F1C5 760E 45B9 9A44 72E9  6BFB D65C 9AFB 4C22 4DA3";
+    }];
+  };
 }
diff --git a/nixpkgs/maintainers/scripts/build.nix b/nixpkgs/maintainers/scripts/build.nix
index c70993cf138c..bc4355d0aa8e 100644
--- a/nixpkgs/maintainers/scripts/build.nix
+++ b/nixpkgs/maintainers/scripts/build.nix
@@ -13,8 +13,12 @@ let
           let
             result = builtins.tryEval
               (
-                if pkgs.lib.isDerivation pkg && cond name pkg
-                then [ (return name pkg) ]
+                if pkgs.lib.isDerivation pkg && cond name pkg then
+                  # Skip packages whose closure fails on evaluation.
+                  # This happens for pkgs like `python27Packages.djangoql`
+                  # that have disabled Python pkgs as dependencies.
+                  builtins.seq pkg.outPath
+                    [ (return name pkg) ]
                 else if pkg.recurseForDerivations or false || pkg.recurseForRelease or false
                 then packagesWith cond return pkg
                 else [ ]
@@ -30,7 +34,7 @@ in
 packagesWith
   (name: pkg:
     (
-      if builtins.hasAttr "maintainers" pkg.meta
+      if builtins.hasAttr "meta" pkg && builtins.hasAttr "maintainers" pkg.meta
       then (
         if builtins.isList pkg.meta.maintainers
         then builtins.elem maintainer_ pkg.meta.maintainers
diff --git a/nixpkgs/maintainers/scripts/debian-patches.sh b/nixpkgs/maintainers/scripts/debian-patches.sh
index b4923fb537e9..de6be136ca77 100755
--- a/nixpkgs/maintainers/scripts/debian-patches.sh
+++ b/nixpkgs/maintainers/scripts/debian-patches.sh
@@ -2,7 +2,7 @@
 
 # Download patches from debian project
 # Usage $0 debian-patches.txt debian-patches.nix
-# An example input and output files can be found in applications/graphics/xara/
+# An example input and output files can be found in tools/graphics/plotutils
 
 DEB_URL=https://sources.debian.org/data/main
 declare -a deb_patches
diff --git a/nixpkgs/maintainers/scripts/luarocks-packages.csv b/nixpkgs/maintainers/scripts/luarocks-packages.csv
index 8cc63963370d..fb90e62769f8 100644
--- a/nixpkgs/maintainers/scripts/luarocks-packages.csv
+++ b/nixpkgs/maintainers/scripts/luarocks-packages.csv
@@ -35,6 +35,10 @@ lua-cmsgpack,,,,,
 lua-iconv,,,,,
 lua-lsp,,http://luarocks.org/dev,,,
 lua-messagepack,,,,,
+lua-resty-http,,,,,
+lua-resty-jwt,,,,,
+lua-resty-openidc,,,,,
+lua-resty-session,,,,,
 lua-term,,,,,
 lua-toml,,,,,
 lua-zlib,,,,,koral
@@ -74,9 +78,9 @@ moonscript,,,,,arobyn
 nvim-client,,,,,
 penlight,,,,,
 rapidjson,,,,,
+readline,,,,,
 say,,,,,
 std__debug,std._debug,,,,
 std_normalize,std.normalize,,,,
 stdlib,,,,,vyp
-pulseaudio,,,,,doronbehar
 vstruct,,,,,
diff --git a/nixpkgs/maintainers/scripts/rebuild-amount.sh b/nixpkgs/maintainers/scripts/rebuild-amount.sh
index 1a54cada8af6..ca89e08073e8 100755
--- a/nixpkgs/maintainers/scripts/rebuild-amount.sh
+++ b/nixpkgs/maintainers/scripts/rebuild-amount.sh
@@ -60,7 +60,7 @@ nixexpr() {
 		    "darwin-tested" "unstable" "stdenvBootstrapTools"
 		    "moduleSystem" "lib-tests" # these just confuse the output
 		  ];
-		
+
 		in
 		  tweak (builtins.removeAttrs hydraJobs blacklist)
 	EONIX
@@ -124,4 +124,3 @@ if [ -n "$optPrint" ]; then
 	echo
 	cat "$newlist"
 fi
-
diff --git a/nixpkgs/maintainers/scripts/update.nix b/nixpkgs/maintainers/scripts/update.nix
index 66ea18ddf62e..9568c6cbbccd 100755
--- a/nixpkgs/maintainers/scripts/update.nix
+++ b/nixpkgs/maintainers/scripts/update.nix
@@ -9,7 +9,13 @@
 # TODO: add assert statements
 
 let
-  pkgs = import ./../../default.nix (if include-overlays then { } else { overlays = []; });
+  pkgs = import ./../../default.nix (
+    if include-overlays == false then
+      { overlays = []; }
+    else if include-overlays == true then
+      { } # Let Nixpkgs include overlays impurely.
+    else { overlays = include-overlays; }
+  );
 
   inherit (pkgs) lib;
 
diff --git a/nixpkgs/maintainers/team-list.nix b/nixpkgs/maintainers/team-list.nix
index 703a6a031d6f..9763c78789aa 100644
--- a/nixpkgs/maintainers/team-list.nix
+++ b/nixpkgs/maintainers/team-list.nix
@@ -29,6 +29,13 @@ with lib.maintainers; {
     scope = "Maintain ACME-related packages and modules.";
   };
 
+  cinnamon = {
+    members = [
+      mkg20001
+    ];
+    scope = "Maintain Cinnamon desktop environment and applications made by the LinuxMint team.";
+  };
+
   freedesktop = {
     members = [ jtojnar worldofpeace ];
     scope = "Maintain Freedesktop.org packages for graphical desktop.";
@@ -40,6 +47,7 @@ with lib.maintainers; {
       cstrahan
       Frostman
       kalbasit
+      mdlayher
       mic92
       orivej
       rvolosatovs
@@ -53,10 +61,21 @@ with lib.maintainers; {
       hedning
       jtojnar
       worldofpeace
+      dasj19
     ];
     scope = "Maintain GNOME desktop environment and platform.";
   };
 
+  jitsi = {
+    members = [
+      mmilata
+      petabyteboy
+      prusnak
+      ryantm
+    ];
+    scope = "Maintain Jitsi.";
+  };
+
   matrix = {
     members = [
       ma27
diff --git a/nixpkgs/nixos/doc/manual/administration/boot-problems.xml b/nixpkgs/nixos/doc/manual/administration/boot-problems.xml
index badc374ebcfd..e0f662840101 100644
--- a/nixpkgs/nixos/doc/manual/administration/boot-problems.xml
+++ b/nixpkgs/nixos/doc/manual/administration/boot-problems.xml
@@ -58,9 +58,9 @@
       Like <literal>boot.debug1</literal> or
       <literal>boot.debug1devices</literal>, but runs stage1 until all
       filesystems that are mounted during initrd are mounted (see
-      <option><link linkend="opt-fileSystems._name__.neededForBoot">neededForBoot</link></option>
+      <option><link linkend="opt-fileSystems._name_.neededForBoot">neededForBoot</link></option>
       ). As a motivating example, this could be useful if you've forgotten to set
-      <option><link linkend="opt-fileSystems._name__.neededForBoot">neededForBoot</link></option>
+      <option><link linkend="opt-fileSystems._name_.neededForBoot">neededForBoot</link></option>
       on a file system.
      </para>
     </listitem>
diff --git a/nixpkgs/nixos/doc/manual/administration/imperative-containers.xml b/nixpkgs/nixos/doc/manual/administration/imperative-containers.xml
index 7ded0c11786e..bc19acf9f690 100644
--- a/nixpkgs/nixos/doc/manual/administration/imperative-containers.xml
+++ b/nixpkgs/nixos/doc/manual/administration/imperative-containers.xml
@@ -14,27 +14,27 @@
  <para>
   You create a container with identifier <literal>foo</literal> as follows:
 <screen>
-# nixos-container create foo
+<prompt># </prompt>nixos-container create <replaceable>foo</replaceable>
 </screen>
   This creates the container’s root directory in
-  <filename>/var/lib/containers/foo</filename> and a small configuration file
-  in <filename>/etc/containers/foo.conf</filename>. It also builds the
+  <filename>/var/lib/containers/<replaceable>foo</replaceable></filename> and a small configuration file
+  in <filename>/etc/containers/<replaceable>foo</replaceable>.conf</filename>. It also builds the
   container’s initial system configuration and stores it in
-  <filename>/nix/var/nix/profiles/per-container/foo/system</filename>. You can
+  <filename>/nix/var/nix/profiles/per-container/<replaceable>foo</replaceable>/system</filename>. You can
   modify the initial configuration of the container on the command line. For
   instance, to create a container that has <command>sshd</command> running,
   with the given public key for <literal>root</literal>:
 <screen>
-# nixos-container create foo --config '
+<prompt># </prompt>nixos-container create <replaceable>foo</replaceable> --config '
   <xref linkend="opt-services.openssh.enable"/> = true;
-  <link linkend="opt-users.users._name__.openssh.authorizedKeys.keys">users.users.root.openssh.authorizedKeys.keys</link> = ["ssh-dss AAAAB3N…"];
+  <link linkend="opt-users.users._name_.openssh.authorizedKeys.keys">users.users.root.openssh.authorizedKeys.keys</link> = ["ssh-dss AAAAB3N…"];
 '
 </screen>
   By default the next free address in the <literal>10.233.0.0/16</literal> subnet will be chosen
   as container IP. This behavior can be altered by setting <literal>--host-address</literal> and
   <literal>--local-address</literal>:
 <screen>
-# nixos-container create test --config-file test-container.nix \
+<prompt># </prompt>nixos-container create test --config-file test-container.nix \
     --local-address 10.235.1.2 --host-address 10.235.1.1
 </screen>
  </para>
@@ -42,7 +42,7 @@
  <para>
   Creating a container does not start it. To start the container, run:
 <screen>
-# nixos-container start foo
+<prompt># </prompt>nixos-container start <replaceable>foo</replaceable>
 </screen>
   This command will return as soon as the container has booted and has reached
   <literal>multi-user.target</literal>. On the host, the container runs within
@@ -51,7 +51,7 @@
   Thus, if something went wrong, you can get status info using
   <command>systemctl</command>:
 <screen>
-# systemctl status container@foo
+<prompt># </prompt>systemctl status container@<replaceable>foo</replaceable>
 </screen>
  </para>
 
@@ -59,22 +59,22 @@
   If the container has started successfully, you can log in as root using the
   <command>root-login</command> operation:
 <screen>
-# nixos-container root-login foo
-[root@foo:~]#
+<prompt># </prompt>nixos-container root-login <replaceable>foo</replaceable>
+<prompt>[root@foo:~]#</prompt>
 </screen>
   Note that only root on the host can do this (since there is no
   authentication). You can also get a regular login prompt using the
   <command>login</command> operation, which is available to all users on the
   host:
 <screen>
-# nixos-container login foo
+<prompt># </prompt>nixos-container login <replaceable>foo</replaceable>
 foo login: alice
 Password: ***
 </screen>
   With <command>nixos-container run</command>, you can execute arbitrary
   commands in the container:
 <screen>
-# nixos-container run foo -- uname -a
+<prompt># </prompt>nixos-container run <replaceable>foo</replaceable> -- uname -a
 Linux foo 3.4.82 #1-NixOS SMP Thu Mar 20 14:44:05 UTC 2014 x86_64 GNU/Linux
 </screen>
  </para>
@@ -85,18 +85,18 @@ Linux foo 3.4.82 #1-NixOS SMP Thu Mar 20 14:44:05 UTC 2014 x86_64 GNU/Linux
   <literal>/var/lib/container/<replaceable>name</replaceable>/etc/nixos/configuration.nix</literal>,
   and run
 <screen>
-# nixos-container update foo
+<prompt># </prompt>nixos-container update <replaceable>foo</replaceable>
 </screen>
   This will build and activate the new configuration. You can also specify a
   new configuration on the command line:
 <screen>
-# nixos-container update foo --config '
+<prompt># </prompt>nixos-container update <replaceable>foo</replaceable> --config '
   <xref linkend="opt-services.httpd.enable"/> = true;
   <xref linkend="opt-services.httpd.adminAddr"/> = "foo@example.org";
   <xref linkend="opt-networking.firewall.allowedTCPPorts"/> = [ 80 ];
 '
 
-# curl http://$(nixos-container show-ip foo)/
+<prompt># </prompt>curl http://$(nixos-container show-ip <replaceable>foo</replaceable>)/
 &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">…
 </screen>
   However, note that this will overwrite the container’s
@@ -117,7 +117,7 @@ Linux foo 3.4.82 #1-NixOS SMP Thu Mar 20 14:44:05 UTC 2014 x86_64 GNU/Linux
   by using <command>systemctl</command> on the container’s service unit. To
   destroy a container, including its file system, do
 <screen>
-# nixos-container destroy foo
+<prompt># </prompt>nixos-container destroy <replaceable>foo</replaceable>
 </screen>
  </para>
 </section>
diff --git a/nixpkgs/nixos/doc/manual/administration/maintenance-mode.xml b/nixpkgs/nixos/doc/manual/administration/maintenance-mode.xml
index 71e3f9ea665d..74abfdd7c663 100644
--- a/nixpkgs/nixos/doc/manual/administration/maintenance-mode.xml
+++ b/nixpkgs/nixos/doc/manual/administration/maintenance-mode.xml
@@ -8,7 +8,7 @@
  <para>
   You can enter rescue mode by running:
 <screen>
-# systemctl rescue</screen>
+<prompt># </prompt>systemctl rescue</screen>
   This will eventually give you a single-user root shell. Systemd will stop
   (almost) all system services. To get out of maintenance mode, just exit from
   the rescue shell.
diff --git a/nixpkgs/nixos/doc/manual/administration/network-problems.xml b/nixpkgs/nixos/doc/manual/administration/network-problems.xml
index 570f58358845..1035e4e056a9 100644
--- a/nixpkgs/nixos/doc/manual/administration/network-problems.xml
+++ b/nixpkgs/nixos/doc/manual/administration/network-problems.xml
@@ -16,12 +16,12 @@
   disable the use of the binary cache by adding <option>--option
   use-binary-caches false</option>, e.g.
 <screen>
-# nixos-rebuild switch --option use-binary-caches false
+<prompt># </prompt>nixos-rebuild switch --option use-binary-caches false
 </screen>
   If you have an alternative binary cache at your disposal, you can use it
   instead:
 <screen>
-# nixos-rebuild switch --option binary-caches http://my-cache.example.org/
+<prompt># </prompt>nixos-rebuild switch --option binary-caches <replaceable>http://my-cache.example.org/</replaceable>
 </screen>
  </para>
 </section>
diff --git a/nixpkgs/nixos/doc/manual/administration/rebooting.xml b/nixpkgs/nixos/doc/manual/administration/rebooting.xml
index a5abd6f02588..c57d885c5f3c 100644
--- a/nixpkgs/nixos/doc/manual/administration/rebooting.xml
+++ b/nixpkgs/nixos/doc/manual/administration/rebooting.xml
@@ -7,20 +7,20 @@
  <para>
   The system can be shut down (and automatically powered off) by doing:
 <screen>
-# shutdown
+<prompt># </prompt>shutdown
 </screen>
   This is equivalent to running <command>systemctl poweroff</command>.
  </para>
  <para>
   To reboot the system, run
 <screen>
-# reboot
+<prompt># </prompt>reboot
 </screen>
   which is equivalent to <command>systemctl reboot</command>. Alternatively,
   you can quickly reboot the system using <literal>kexec</literal>, which
   bypasses the BIOS by directly loading the new kernel into memory:
 <screen>
-# systemctl kexec
+<prompt># </prompt>systemctl kexec
 </screen>
  </para>
  <para>
diff --git a/nixpkgs/nixos/doc/manual/administration/rollback.xml b/nixpkgs/nixos/doc/manual/administration/rollback.xml
index fb87810ba461..80d79e1a53f1 100644
--- a/nixpkgs/nixos/doc/manual/administration/rollback.xml
+++ b/nixpkgs/nixos/doc/manual/administration/rollback.xml
@@ -20,16 +20,16 @@
   has booted, you can make the selected configuration the default for
   subsequent boots:
 <screen>
-# /run/current-system/bin/switch-to-configuration boot</screen>
+<prompt># </prompt>/run/current-system/bin/switch-to-configuration boot</screen>
  </para>
 
  <para>
   Second, you can switch to the previous configuration in a running system:
 <screen>
-# nixos-rebuild switch --rollback</screen>
+<prompt># </prompt>nixos-rebuild switch --rollback</screen>
   This is equivalent to running:
 <screen>
-# /nix/var/nix/profiles/system-<replaceable>N</replaceable>-link/bin/switch-to-configuration switch</screen>
+<prompt># </prompt>/nix/var/nix/profiles/system-<replaceable>N</replaceable>-link/bin/switch-to-configuration switch</screen>
   where <replaceable>N</replaceable> is the number of the NixOS system
   configuration. To get a list of the available configurations, do:
 <screen>
diff --git a/nixpkgs/nixos/doc/manual/administration/service-mgmt.xml b/nixpkgs/nixos/doc/manual/administration/service-mgmt.xml
index 1b9c745eb59f..1c5d48a5bcf0 100644
--- a/nixpkgs/nixos/doc/manual/administration/service-mgmt.xml
+++ b/nixpkgs/nixos/doc/manual/administration/service-mgmt.xml
@@ -58,9 +58,9 @@ Jan 07 15:55:57 hagbard systemd[1]: Started PostgreSQL Server.
  <para>
   Units can be stopped, started or restarted:
 <screen>
-# systemctl stop postgresql.service
-# systemctl start postgresql.service
-# systemctl restart postgresql.service
+<prompt># </prompt>systemctl stop postgresql.service
+<prompt># </prompt>systemctl start postgresql.service
+<prompt># </prompt>systemctl restart postgresql.service
 </screen>
   These operations are synchronous: they wait until the service has finished
   starting or stopping (or has failed). Starting a unit will cause the
diff --git a/nixpkgs/nixos/doc/manual/administration/user-sessions.xml b/nixpkgs/nixos/doc/manual/administration/user-sessions.xml
index 80daf6bdbff0..9acb147ac1a6 100644
--- a/nixpkgs/nixos/doc/manual/administration/user-sessions.xml
+++ b/nixpkgs/nixos/doc/manual/administration/user-sessions.xml
@@ -39,7 +39,7 @@ c3 - root (0)
   can terminate a session in a way that ensures that all the session’s
   processes are gone:
 <screen>
-# loginctl terminate-session c3
+<prompt># </prompt>loginctl terminate-session c3
 </screen>
  </para>
 </chapter>
diff --git a/nixpkgs/nixos/doc/manual/configuration/adding-custom-packages.xml b/nixpkgs/nixos/doc/manual/configuration/adding-custom-packages.xml
index 02cb78f47e8b..19eb2429d0a0 100644
--- a/nixpkgs/nixos/doc/manual/configuration/adding-custom-packages.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/adding-custom-packages.xml
@@ -25,7 +25,7 @@ xlink:href="https://nixos.org/nixpkgs/manual">Nixpkgs
   and you run <command>nixos-rebuild</command>, specifying your own Nixpkgs
   tree:
 <screen>
-# nixos-rebuild switch -I nixpkgs=/path/to/my/nixpkgs</screen>
+<prompt># </prompt>nixos-rebuild switch -I nixpkgs=/path/to/my/nixpkgs</screen>
  </para>
 
  <para>
diff --git a/nixpkgs/nixos/doc/manual/configuration/configuration.xml b/nixpkgs/nixos/doc/manual/configuration/configuration.xml
index 507d28814ead..6eb8f50bacac 100644
--- a/nixpkgs/nixos/doc/manual/configuration/configuration.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/configuration.xml
@@ -18,6 +18,7 @@
  <xi:include href="user-mgmt.xml" />
  <xi:include href="file-systems.xml" />
  <xi:include href="x-windows.xml" />
+ <xi:include href="gpu-accel.xml" />
  <xi:include href="xfce.xml" />
  <xi:include href="networking.xml" />
  <xi:include href="linux-kernel.xml" />
diff --git a/nixpkgs/nixos/doc/manual/configuration/file-systems.xml b/nixpkgs/nixos/doc/manual/configuration/file-systems.xml
index 3ac02a975ebf..9747433375fc 100644
--- a/nixpkgs/nixos/doc/manual/configuration/file-systems.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/file-systems.xml
@@ -23,12 +23,12 @@
   <link xlink:href="https://www.freedesktop.org/software/systemd/man/systemd-fstab-generator.html">systemd-fstab-generator</link>.
   The filesystem will be mounted automatically unless
   <literal>"noauto"</literal> is present in <link
-  linkend="opt-fileSystems._name__.options">options</link>.
+  linkend="opt-fileSystems._name_.options">options</link>.
   <literal>"noauto"</literal> filesystems can be mounted explicitly using
   <command>systemctl</command> e.g. <command>systemctl start
   data.mount</command>.
   Mount points are created automatically if they don’t already exist. For
-  <option><link linkend="opt-fileSystems._name__.device">device</link></option>,
+  <option><link linkend="opt-fileSystems._name_.device">device</link></option>,
   it’s best to use the topology-independent device aliases in
   <filename>/dev/disk/by-label</filename> and
   <filename>/dev/disk/by-uuid</filename>, as these don’t change if the
@@ -36,7 +36,7 @@
  </para>
  <para>
   You can usually omit the file system type
-  (<option><link linkend="opt-fileSystems._name__.fsType">fsType</link></option>),
+  (<option><link linkend="opt-fileSystems._name_.fsType">fsType</link></option>),
   since <command>mount</command> can usually detect the type and load the
   necessary kernel module automatically. However, if the file system is needed
   at early boot (in the initial ramdisk) and is not <literal>ext2</literal>,
@@ -49,7 +49,7 @@
    System startup will fail if any of the filesystems fails to mount, dropping
    you to the emergency shell. You can make a mount asynchronous and
    non-critical by adding
-   <literal><link linkend="opt-fileSystems._name__.options">options</link> = [
+   <literal><link linkend="opt-fileSystems._name_.options">options</link> = [
    "nofail" ];</literal>.
   </para>
  </note>
diff --git a/nixpkgs/nixos/doc/manual/configuration/gpu-accel.xml b/nixpkgs/nixos/doc/manual/configuration/gpu-accel.xml
new file mode 100644
index 000000000000..95ee13f4796e
--- /dev/null
+++ b/nixpkgs/nixos/doc/manual/configuration/gpu-accel.xml
@@ -0,0 +1,263 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-gpu-accel">
+  <title>GPU acceleration</title>
+
+  <para>
+    NixOS provides various APIs that benefit from GPU hardware
+    acceleration, such as VA-API and VDPAU for video playback; OpenGL and
+    Vulkan for 3D graphics; and OpenCL for general-purpose computing.
+    This chapter describes how to set up GPU hardware acceleration (as far
+    as this is not done automatically) and how to verify that hardware
+    acceleration is indeed used.
+  </para>
+
+  <para>
+    Most of the aforementioned APIs are agnostic with regards to which
+    display server is used. Consequently, these instructions should apply
+    both to the X Window System and Wayland compositors.
+  </para>
+
+  <section xml:id="sec-gpu-accel-opencl">
+    <title>OpenCL</title>
+
+    <para>
+      <link xlink:href="https://en.wikipedia.org/wiki/OpenCL">OpenCL</link> is a
+      general compute API. It is used by various applications such as
+      Blender and Darktable to accelerate certain operations.
+    </para>
+
+    <para>
+      OpenCL applications load drivers through the <emphasis>Installable Client
+      Driver</emphasis> (ICD) mechanism. In this mechanism, an ICD file
+      specifies the path to the OpenCL driver for a particular GPU family.
+      In NixOS, there are two ways to make ICD files visible to the ICD
+      loader. The first is through the <varname>OCL_ICD_VENDORS</varname>
+      environment variable. This variable can contain a directory which
+      is scanned by the ICL loader for ICD files. For example:
+
+      <screen><prompt>$</prompt> export \
+  OCL_ICD_VENDORS=`nix-build '&lt;nixpkgs&gt;' --no-out-link -A rocm-opencl-icd`/etc/OpenCL/vendors/</screen>
+    </para>
+
+    <para>
+      The second mechanism is to add the OpenCL driver package to
+      <xref linkend="opt-hardware.opengl.extraPackages"/>. This links the
+      ICD file under <filename>/run/opengl-driver</filename>, where it will
+      be visible to the ICD loader.
+    </para>
+
+    <para>
+      The proper installation of OpenCL drivers can be verified through
+      the <command>clinfo</command> command of the <package>clinfo</package>
+      package. This command will report the number of hardware devices
+      that is found and give detailed information for each device:
+    </para>
+
+    <screen><prompt>$</prompt> clinfo | head -n3
+Number of platforms  1
+Platform Name        AMD Accelerated Parallel Processing
+Platform Vendor      Advanced Micro Devices, Inc.</screen>
+
+    <section xml:id="sec-gpu-accel-opencl-amd">
+      <title>AMD</title>
+
+      <para>
+	Modern AMD <link
+	xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics
+	Core Next</link> (GCN) GPUs are supported through the
+	<package>rocm-opencl-icd</package> package. Adding this package to
+	<xref linkend="opt-hardware.opengl.extraPackages"/> enables OpenCL
+	support:
+
+	<programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [
+  rocm-opencl-icd
+];</programlisting>
+      </para>
+    </section>
+
+    <section xml:id="sec-gpu-accel-opencl-intel">
+      <title>Intel</title>
+
+      <para>
+       <link
+         xlink:href="https://en.wikipedia.org/wiki/List_of_Intel_graphics_processing_units#Gen8">Intel
+       Gen8 and later GPUs</link> are supported by the Intel NEO OpenCL
+       runtime that is provided by the
+       <package>intel-compute-runtime</package> package. For Gen7 GPUs,
+       the deprecated Beignet runtime can be used, which is provided
+       by the <package>beignet</package> package. The proprietary Intel
+       OpenCL runtime, in the <package>intel-ocl</package> package, is
+       an alternative for Gen7 GPUs.
+      </para>
+
+      <para>
+       The <package>intel-compute-runtime</package>, <package>beignet</package>,
+       or <package>intel-ocl</package> package can be added to
+       <xref linkend="opt-hardware.opengl.extraPackages"/> to enable OpenCL
+       support. For example, for Gen8 and later GPUs, the following
+       configuration can be used:
+
+	      <programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [
+  intel-compute-runtime
+];</programlisting>
+
+      </para>
+    </section>
+  </section>
+
+  <section xml:id="sec-gpu-accel-vulkan">
+    <title>Vulkan</title>
+
+    <para>
+      <link xlink:href="https://en.wikipedia.org/wiki/Vulkan_(API)">Vulkan</link> is a
+      graphics and compute API for GPUs. It is used directly by games or indirectly though
+      compatibility layers like <link xlink:href="https://github.com/doitsujin/dxvk/wiki">DXVK</link>.
+    </para>
+
+    <para>
+     By default, if <xref linkend="opt-hardware.opengl.driSupport"/> is enabled,
+     <package>mesa</package> is installed and provides Vulkan for supported hardware.
+    </para>
+
+    <para>
+      Similar to OpenCL, Vulkan drivers are loaded through the <emphasis>Installable Client
+      Driver</emphasis> (ICD) mechanism. ICD files for Vulkan are JSON files that specify
+      the path to the driver library and the supported Vulkan version. All successfully
+      loaded drivers are exposed to the application as different GPUs.
+      In NixOS, there are two ways to make ICD files visible to Vulkan applications: an
+      environment variable and a module option.
+    </para>
+
+    <para>
+      The first option is through the <varname>VK_ICD_FILENAMES</varname>
+      environment variable. This variable can contain multiple JSON files, separated by
+      <literal>:</literal>. For example:
+
+      <screen><prompt>$</prompt> export \
+  VK_ICD_FILENAMES=`nix-build '&lt;nixpkgs&gt;' --no-out-link -A amdvlk`/share/vulkan/icd.d/amd_icd64.json</screen>
+    </para>
+
+    <para>
+      The second mechanism is to add the Vulkan driver package to
+      <xref linkend="opt-hardware.opengl.extraPackages"/>. This links the
+      ICD file under <filename>/run/opengl-driver</filename>, where it will
+      be visible to the ICD loader.
+    </para>
+
+    <para>
+      The proper installation of Vulkan drivers can be verified through
+      the <command>vulkaninfo</command> command of the <package>vulkan-tools</package>
+      package. This command will report the hardware devices and drivers found,
+      in this example output amdvlk and radv:
+    </para>
+
+    <screen><prompt>$</prompt> vulkaninfo | grep GPU
+                GPU id  : 0 (Unknown AMD GPU)
+                GPU id  : 1 (AMD RADV NAVI10 (LLVM 9.0.1))
+     ...
+GPU0:
+        deviceType     = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU
+        deviceName     = Unknown AMD GPU
+GPU1:
+        deviceType     = PHYSICAL_DEVICE_TYPE_DISCRETE_GPU</screen>
+
+    <para>
+      A simple graphical application that uses Vulkan is <command>vkcube</command>
+      from the <package>vulkan-tools</package> package.
+    </para>
+
+    <section xml:id="sec-gpu-accel-vulkan-amd">
+      <title>AMD</title>
+
+      <para>
+	Modern AMD <link
+	xlink:href="https://en.wikipedia.org/wiki/Graphics_Core_Next">Graphics
+	Core Next</link> (GCN) GPUs are supported through either radv, which is
+	part of <package>mesa</package>, or the <package>amdvlk</package> package.
+	Adding the <package>amdvlk</package> package to
+	<xref linkend="opt-hardware.opengl.extraPackages"/> makes both drivers
+	available for applications and lets them choose. A specific driver can
+	be forced as follows:
+
+	<programlisting><xref linkend="opt-hardware.opengl.extraPackages"/> = [
+  pkgs.<package>amdvlk</package>
+];
+
+# To enable Vulkan support for 32-bit applications, also add:
+<xref linkend="opt-hardware.opengl.extraPackages32"/> = [
+  pkgs.driversi686Linux.<package>amdvlk</package>
+];
+
+# For amdvlk
+<xref linkend="opt-environment.variables"/>.VK_ICD_FILENAMES =
+   "/run/opengl-driver/share/vulkan/icd.d/amd_icd64.json";
+# For radv
+<xref linkend="opt-environment.variables"/>.VK_ICD_FILENAMES =
+  "/run/opengl-driver/share/vulkan/icd.d/radeon_icd.x86_64.json";
+</programlisting>
+      </para>
+    </section>
+  </section>
+
+  <section xml:id="sec-gpu-accel-common-issues">
+   <title>Common issues</title>
+
+   <section xml:id="sec-gpu-accel-common-issues-permissions">
+    <title>User permissions</title>
+
+    <para>
+     Except where noted explicitly, it should not be necessary to
+     adjust user permissions to use these acceleration APIs. In the default
+     configuration, GPU devices have world-read/write permissions
+     (<filename>/dev/dri/renderD*</filename>) or are tagged as
+     <code>uaccess</code> (<filename>/dev/dri/card*</filename>).  The
+     access control lists of devices with the <varname>uaccess</varname>
+     tag will be updated automatically when a user logs in through
+     <command>systemd-logind</command>. For example, if the user
+     <emphasis>jane</emphasis> is logged in, the access control list
+     should look as follows:
+
+     <screen><prompt>$</prompt> getfacl /dev/dri/card0
+# file: dev/dri/card0
+# owner: root
+# group: video
+user::rw-
+user:jane:rw-
+group::rw-
+mask::rw-
+other::---</screen>
+
+     If you disabled (this functionality of) <command>systemd-logind</command>,
+     you may need to add the user to the <code>video</code> group and
+     log in again.
+    </para>
+   </section>
+
+   <section xml:id="sec-gpu-accel-common-issues-mixing-nixpkgs">
+    <title>Mixing different versions of nixpkgs</title>
+
+    <para>
+     The <emphasis>Installable Client Driver</emphasis> (ICD)
+     mechanism used by OpenCL and Vulkan loads runtimes into its address
+     space using <code>dlopen</code>. Mixing an ICD loader mechanism and
+     runtimes from different version of nixpkgs may not work. For example,
+     if the ICD loader uses an older version of <package>glibc</package>
+     than the runtime, the runtime may not be loadable due to
+     missing symbols. Unfortunately, the loader will generally be quiet
+     about such issues.
+    </para>
+
+    <para>
+     If you suspect that you are running into library version mismatches
+     between an ICL loader and a runtime, you could run an application with
+     the <code>LD_DEBUG</code> variable set to get more diagnostic
+     information. For example, OpenCL can be tested with
+     <code>LD_DEBUG=files clinfo</code>, which should report missing
+     symbols.
+    </para>
+   </section>
+  </section>
+</chapter>
diff --git a/nixpkgs/nixos/doc/manual/configuration/ipv4-config.xml b/nixpkgs/nixos/doc/manual/configuration/ipv4-config.xml
index 71ddf41491ba..884becf0979a 100644
--- a/nixpkgs/nixos/doc/manual/configuration/ipv4-config.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/ipv4-config.xml
@@ -10,7 +10,7 @@
   automatically configure network interfaces. However, you can configure an
   interface manually as follows:
 <programlisting>
-<link linkend="opt-networking.interfaces._name__.ipv4.addresses">networking.interfaces.eth0.ipv4.addresses</link> = [ {
+<link linkend="opt-networking.interfaces._name_.ipv4.addresses">networking.interfaces.eth0.ipv4.addresses</link> = [ {
   address = "192.168.1.2";
   prefixLength = 24;
 } ];
diff --git a/nixpkgs/nixos/doc/manual/configuration/ipv6-config.xml b/nixpkgs/nixos/doc/manual/configuration/ipv6-config.xml
index 675a5d9a260d..7b89b4092be7 100644
--- a/nixpkgs/nixos/doc/manual/configuration/ipv6-config.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/ipv6-config.xml
@@ -26,7 +26,7 @@
   As with IPv4 networking interfaces are automatically configured via DHCPv6.
   You can configure an interface manually:
 <programlisting>
-<link linkend="opt-networking.interfaces._name__.ipv6.addresses">networking.interfaces.eth0.ipv6.addresses</link> = [ {
+<link linkend="opt-networking.interfaces._name_.ipv6.addresses">networking.interfaces.eth0.ipv6.addresses</link> = [ {
   address = "fe00:aa:bb:cc::2";
   prefixLength = 64;
 } ];
diff --git a/nixpkgs/nixos/doc/manual/configuration/linux-kernel.xml b/nixpkgs/nixos/doc/manual/configuration/linux-kernel.xml
index 644d3a33ffd2..dbdcc9414954 100644
--- a/nixpkgs/nixos/doc/manual/configuration/linux-kernel.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/linux-kernel.xml
@@ -126,13 +126,13 @@ nixpkgs.config.packageOverrides = pkgs:
    <literal>mellanox</literal> drivers.
   </para>
 
-<screen><![CDATA[
-$ nix-build '<nixpkgs>' -A linuxPackages.kernel.dev
-$ nix-shell '<nixpkgs>' -A linuxPackages.kernel
-$ unpackPhase
-$ cd linux-*
-$ make -C $dev/lib/modules/*/build M=$(pwd)/drivers/net/ethernet/mellanox modules
-# insmod ./drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko
-]]></screen>
+<screen>
+<prompt>$ </prompt>nix-build '&lt;nixpkgs>' -A linuxPackages.kernel.dev
+<prompt>$ </prompt>nix-shell '&lt;nixpkgs>' -A linuxPackages.kernel
+<prompt>$ </prompt>unpackPhase
+<prompt>$ </prompt>cd linux-*
+<prompt>$ </prompt>make -C $dev/lib/modules/*/build M=$(pwd)/drivers/net/ethernet/mellanox modules
+<prompt># </prompt>insmod ./drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.ko
+</screen>
  </section>
 </chapter>
diff --git a/nixpkgs/nixos/doc/manual/configuration/luks-file-systems.xml b/nixpkgs/nixos/doc/manual/configuration/luks-file-systems.xml
index d3007843d68b..405a50a9e430 100644
--- a/nixpkgs/nixos/doc/manual/configuration/luks-file-systems.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/luks-file-systems.xml
@@ -11,7 +11,7 @@
   you create an encrypted Ext4 file system on the device
   <filename>/dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d</filename>:
 <screen>
-# cryptsetup luksFormat /dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d
+<prompt># </prompt>cryptsetup luksFormat <replaceable>/dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d</replaceable>
 
 WARNING!
 ========
@@ -21,17 +21,17 @@ Are you sure? (Type uppercase yes): YES
 Enter LUKS passphrase: ***
 Verify passphrase: ***
 
-# cryptsetup luksOpen /dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d crypted
+<prompt># </prompt>cryptsetup luksOpen <replaceable>/dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d</replaceable> <replaceable>crypted</replaceable>
 Enter passphrase for /dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d: ***
 
-# mkfs.ext4 /dev/mapper/crypted
+<prompt># </prompt>mkfs.ext4 /dev/mapper/<replaceable>crypted</replaceable>
 </screen>
   To ensure that this file system is automatically mounted at boot time as
   <filename>/</filename>, add the following to
   <filename>configuration.nix</filename>:
 <programlisting>
-<link linkend="opt-boot.initrd.luks.devices._name__.device">boot.initrd.luks.devices.crypted.device</link> = "/dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d";
-<xref linkend="opt-fileSystems"/>."/".device = "/dev/mapper/crypted";
+<link linkend="opt-boot.initrd.luks.devices._name_.device">boot.initrd.luks.devices.crypted.device</link> = "<replaceable>/dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d</replaceable>";
+<xref linkend="opt-fileSystems"/>."/".device = "/dev/mapper/<replaceable>crypted</replaceable>";
 </programlisting>
   Should grub be used as bootloader, and <filename>/boot</filename> is located
   on an encrypted partition, it is necessary to add the following grub option:
@@ -45,11 +45,11 @@ Enter passphrase for /dev/disk/by-uuid/3f6b0024-3a44-4fde-a43a-767b872abe5d: ***
    and add it as a new key to our existing device <filename>/dev/sda2</filename>:
 
    <screen>
-# export FIDO2_LABEL="/dev/sda2 @ $HOSTNAME"
-# fido2luks credential "$FIDO2_LABEL"
+<prompt># </prompt>export FIDO2_LABEL="<replaceable>/dev/sda2</replaceable> @ $HOSTNAME"
+<prompt># </prompt>fido2luks credential "$FIDO2_LABEL"
 f1d00200108b9d6e849a8b388da457688e3dd653b4e53770012d8f28e5d3b269865038c346802f36f3da7278b13ad6a3bb6a1452e24ebeeaa24ba40eef559b1b287d2a2f80b7
 
-# fido2luks -i add-key /dev/sda2 f1d00200108b9d6e849a8b388da457688e3dd653b4e53770012d8f28e5d3b269865038c346802f36f3da7278b13ad6a3bb6a1452e24ebeeaa24ba40eef559b1b287d2a2f80b7
+<prompt># </prompt>fido2luks -i add-key <replaceable>/dev/sda2</replaceable> <replaceable>f1d00200108b9d6e849a8b388da457688e3dd653b4e53770012d8f28e5d3b269865038c346802f36f3da7278b13ad6a3bb6a1452e24ebeeaa24ba40eef559b1b287d2a2f80b7</replaceable>
 Password:
 Password (again):
 Old password:
@@ -60,13 +60,13 @@ Added to key to device /dev/sda2, slot: 2
   To ensure that this file system is decrypted using the FIDO2 compatible key, add the following to <filename>configuration.nix</filename>:
 <programlisting>
 <link linkend="opt-boot.initrd.luks.fido2Support">boot.initrd.luks.fido2Support</link> = true;
-<link linkend="opt-boot.initrd.luks.devices._name__.fido2.credential">boot.initrd.luks.devices."/dev/sda2".fido2.credential</link> = "f1d00200108b9d6e849a8b388da457688e3dd653b4e53770012d8f28e5d3b269865038c346802f36f3da7278b13ad6a3bb6a1452e24ebeeaa24ba40eef559b1b287d2a2f80b7";
+<link linkend="opt-boot.initrd.luks.devices._name_.fido2.credential">boot.initrd.luks.devices."<replaceable>/dev/sda2</replaceable>".fido2.credential</link> = "<replaceable>f1d00200108b9d6e849a8b388da457688e3dd653b4e53770012d8f28e5d3b269865038c346802f36f3da7278b13ad6a3bb6a1452e24ebeeaa24ba40eef559b1b287d2a2f80b7</replaceable>";
 </programlisting>
 
   You can also use the FIDO2 passwordless setup, but for security reasons, you might want to enable it only when your device is PIN protected, such as <link xlink:href="https://trezor.io/">Trezor</link>.
 
 <programlisting>
-<link linkend="opt-boot.initrd.luks.devices._name__.fido2.passwordLess">boot.initrd.luks.devices."/dev/sda2".fido2.passwordLess</link> = true;
+<link linkend="opt-boot.initrd.luks.devices._name_.fido2.passwordLess">boot.initrd.luks.devices."<replaceable>/dev/sda2</replaceable>".fido2.passwordLess</link> = true;
 </programlisting>
   </para>
  </section>
diff --git a/nixpkgs/nixos/doc/manual/configuration/network-manager.xml b/nixpkgs/nixos/doc/manual/configuration/network-manager.xml
index 3953e0ffe851..94d229fd803f 100644
--- a/nixpkgs/nixos/doc/manual/configuration/network-manager.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/network-manager.xml
@@ -19,7 +19,7 @@
   All users that should have permission to change network settings must belong
   to the <code>networkmanager</code> group:
 <programlisting>
-<link linkend="opt-users.users._name__.extraGroups">users.users.alice.extraGroups</link> = [ "networkmanager" ];
+<link linkend="opt-users.users._name_.extraGroups">users.users.alice.extraGroups</link> = [ "networkmanager" ];
 </programlisting>
  </para>
 
diff --git a/nixpkgs/nixos/doc/manual/configuration/profiles/demo.xml b/nixpkgs/nixos/doc/manual/configuration/profiles/demo.xml
index 395a5ec357c9..bc801bb3dc5b 100644
--- a/nixpkgs/nixos/doc/manual/configuration/profiles/demo.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/profiles/demo.xml
@@ -9,7 +9,6 @@
   This profile just enables a <systemitem class="username">demo</systemitem>
   user, with password <literal>demo</literal>, uid <literal>1000</literal>,
   <systemitem class="groupname">wheel</systemitem> group and
-  <link linkend="opt-services.xserver.displayManager.sddm.autoLogin"> autologin
-  in the SDDM display manager</link>.
+  <link linkend="opt-services.xserver.displayManager.autoLogin">autologin in the SDDM display manager</link>.
  </para>
 </section>
diff --git a/nixpkgs/nixos/doc/manual/configuration/ssh.xml b/nixpkgs/nixos/doc/manual/configuration/ssh.xml
index a4af1b96583d..95ad3edff935 100644
--- a/nixpkgs/nixos/doc/manual/configuration/ssh.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/ssh.xml
@@ -20,7 +20,7 @@
   follows:
 <!-- FIXME: this might not work if the user is unmanaged. -->
 <programlisting>
-<link linkend="opt-users.users._name__.openssh.authorizedKeys.keys">users.users.alice.openssh.authorizedKeys.keys</link> =
+<link linkend="opt-users.users._name_.openssh.authorizedKeys.keys">users.users.alice.openssh.authorizedKeys.keys</link> =
   [ "ssh-dss AAAAB3NzaC1kc3MAAACBAPIkGWVEt4..." ];
 </programlisting>
  </para>
diff --git a/nixpkgs/nixos/doc/manual/configuration/user-mgmt.xml b/nixpkgs/nixos/doc/manual/configuration/user-mgmt.xml
index 4b1710f3a2b1..cbec83814c9a 100644
--- a/nixpkgs/nixos/doc/manual/configuration/user-mgmt.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/user-mgmt.xml
@@ -11,11 +11,11 @@
   that a user account named <literal>alice</literal> shall exist:
 <programlisting>
 <xref linkend="opt-users.users"/>.alice = {
-  <link linkend="opt-users.users._name__.isNormalUser">isNormalUser</link> = true;
-  <link linkend="opt-users.users._name__.home">home</link> = "/home/alice";
-  <link linkend="opt-users.users._name__.description">description</link> = "Alice Foobar";
-  <link linkend="opt-users.users._name__.extraGroups">extraGroups</link> = [ "wheel" "networkmanager" ];
-  <link linkend="opt-users.users._name__.openssh.authorizedKeys.keys">openssh.authorizedKeys.keys</link> = [ "ssh-dss AAAAB3Nza... alice@foobar" ];
+  <link linkend="opt-users.users._name_.isNormalUser">isNormalUser</link> = true;
+  <link linkend="opt-users.users._name_.home">home</link> = "/home/alice";
+  <link linkend="opt-users.users._name_.description">description</link> = "Alice Foobar";
+  <link linkend="opt-users.users._name_.extraGroups">extraGroups</link> = [ "wheel" "networkmanager" ];
+  <link linkend="opt-users.users._name_.openssh.authorizedKeys.keys">openssh.authorizedKeys.keys</link> = [ "ssh-dss AAAAB3Nza... alice@foobar" ];
 };
 </programlisting>
   Note that <literal>alice</literal> is a member of the
@@ -36,7 +36,7 @@
   account will cease to exist. Also, imperative commands for managing users and
   groups, such as useradd, are no longer available. Passwords may still be
   assigned by setting the user's
-  <link linkend="opt-users.users._name__.hashedPassword">hashedPassword</link>
+  <link linkend="opt-users.users._name_.hashedPassword">hashedPassword</link>
   option. A hashed password can be generated using <command>mkpasswd -m
   sha-512</command> after installing the <literal>mkpasswd</literal> package.
  </para>
@@ -62,24 +62,24 @@ uid = 1000;
   <command>useradd</command>, <command>groupmod</command> and so on. For
   instance, to create a user account named <literal>alice</literal>:
 <screen>
-# useradd -m alice</screen>
+<prompt># </prompt>useradd -m <replaceable>alice</replaceable></screen>
   To make all nix tools available to this new user use `su - USER` which opens
   a login shell (==shell that loads the profile) for given user. This will
   create the ~/.nix-defexpr symlink. So run:
 <screen>
-# su - alice -c "true"</screen>
+<prompt># </prompt>su - <replaceable>alice</replaceable> -c "true"</screen>
   The flag <option>-m</option> causes the creation of a home directory for the
   new user, which is generally what you want. The user does not have an initial
   password and therefore cannot log in. A password can be set using the
   <command>passwd</command> utility:
 <screen>
-# passwd alice
+<prompt># </prompt>passwd <replaceable>alice</replaceable>
 Enter new UNIX password: ***
 Retype new UNIX password: ***
 </screen>
   A user can be deleted using <command>userdel</command>:
 <screen>
-# userdel -r alice</screen>
+<prompt># </prompt>userdel -r <replaceable>alice</replaceable></screen>
   The flag <option>-r</option> deletes the user’s home directory. Accounts
   can be modified using <command>usermod</command>. Unix groups can be managed
   using <command>groupadd</command>, <command>groupmod</command> and
diff --git a/nixpkgs/nixos/doc/manual/configuration/x-windows.xml b/nixpkgs/nixos/doc/manual/configuration/x-windows.xml
index 110712baf5f1..b33f6cf82b52 100644
--- a/nixpkgs/nixos/doc/manual/configuration/x-windows.xml
+++ b/nixpkgs/nixos/doc/manual/configuration/x-windows.xml
@@ -58,7 +58,7 @@
 </programlisting>
   The X server can then be started manually:
 <screen>
-# systemctl start display-manager.service
+<prompt># </prompt>systemctl start display-manager.service
 </screen>
  </para>
  <para>
@@ -90,10 +90,50 @@
   using lightdm for a user <literal>alice</literal>:
 <programlisting>
 <xref linkend="opt-services.xserver.displayManager.lightdm.enable"/> = true;
-<xref linkend="opt-services.xserver.displayManager.lightdm.autoLogin.enable"/> = true;
-<xref linkend="opt-services.xserver.displayManager.lightdm.autoLogin.user"/> = "alice";
+<xref linkend="opt-services.xserver.displayManager.autoLogin.enable"/> = true;
+<xref linkend="opt-services.xserver.displayManager.autoLogin.user"/> = "alice";
 </programlisting>
-  The options are named identically for all other display managers.
+  </para>
+ </simplesect>
+ <simplesect xml:id="sec-x11--graphics-cards-intel">
+  <title>Intel Graphics drivers</title>
+  <para>
+   There are two choices for Intel Graphics drivers in X.org:
+   <literal>modesetting</literal> (included in the <package>xorg-server</package> itself)
+   and <literal>intel</literal> (provided by the package <package>xf86-video-intel</package>).
+  </para>
+  <para>
+   The default and recommended is <literal>modesetting</literal>.
+   It is a generic driver which uses the kernel
+   <link xlink:href="https://en.wikipedia.org/wiki/Mode_setting">mode setting</link>
+   (KMS) mechanism. It supports Glamor (2D graphics acceleration via OpenGL)
+   and is actively maintained but may perform worse in some cases (like in old chipsets).
+  </para>
+  <para>
+   The second driver, <literal>intel</literal>, is specific to Intel GPUs,
+   but not recommended by most distributions: it lacks several modern features
+   (for example, it doesn't support Glamor) and the package hasn't been officially
+   updated since 2015.
+  </para>
+  <para>
+   The results vary depending on the hardware, so you may have to try both drivers.
+   Use the option <xref linkend="opt-services.xserver.videoDrivers"/> to set one.
+   The recommended configuration for modern systems is:
+<programlisting>
+  <xref linkend="opt-services.xserver.videoDrivers"/> = [ "modesetting" ];
+  <xref linkend="opt-services.xserver.useGlamor"/> = true;
+</programlisting>
+   If you experience screen tearing no matter what, this configuration was
+   reported to resolve the issue:
+<programlisting>
+  <xref linkend="opt-services.xserver.videoDrivers"/> = [ "intel" ];
+  <xref linkend="opt-services.xserver.deviceSection"/> = ''
+    Option "DRI" "2"
+    Option "TearFree" "true"
+  '';
+</programlisting>
+   Note that this will likely downgrade the performance compared to
+  <literal>modesetting</literal> or <literal>intel</literal> with DRI 3 (default).
   </para>
  </simplesect>
  <simplesect xml:id="sec-x11-graphics-cards-nvidia">
diff --git a/nixpkgs/nixos/doc/manual/development/freeform-modules.xml b/nixpkgs/nixos/doc/manual/development/freeform-modules.xml
new file mode 100644
index 000000000000..257e6b11bf01
--- /dev/null
+++ b/nixpkgs/nixos/doc/manual/development/freeform-modules.xml
@@ -0,0 +1,68 @@
+<section xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-freeform-modules">
+ <title>Freeform modules</title>
+ <para>
+  Freeform modules allow you to define values for option paths that have not been declared explicitly. This can be used to add attribute-specific types to what would otherwise have to be <literal>attrsOf</literal> options in order to accept all attribute names.
+ </para>
+ <para>
+  This feature can be enabled by using the attribute <literal>freeformType</literal> to define a freeform type. By doing this, all assignments without an associated option will be merged using the freeform type and combined into the resulting <literal>config</literal> set. Since this feature nullifies name checking for entire option trees, it is only recommended for use in submodules.
+ </para>
+ <example xml:id="ex-freeform-module">
+  <title>Freeform submodule</title>
+  <para>
+   The following shows a submodule assigning a freeform type that allows arbitrary attributes with <literal>str</literal> values below <literal>settings</literal>, but also declares an option for the <literal>settings.port</literal> attribute to have it type-checked and assign a default value. See <xref linkend="ex-settings-typed-attrs"/> for a more complete example.
+  </para>
+ <programlisting>
+{ lib, config, ... }: {
+
+  options.settings = lib.mkOption {
+    type = lib.types.submodule {
+
+      freeformType = with lib.types; attrsOf str;
+
+      # We want this attribute to be checked for the correct type
+      options.port = lib.mkOption {
+        type = lib.types.port;
+        # Declaring the option also allows defining a default value
+        default = 8080;
+      };
+
+    };
+  };
+}
+ </programlisting>
+ <para>
+  And the following shows what such a module then allows
+ </para>
+ <programlisting>
+{
+  # Not a declared option, but the freeform type allows this
+  settings.logLevel = "debug";
+
+  # Not allowed because the the freeform type only allows strings
+  # settings.enable = true;
+
+  # Allowed because there is a port option declared
+  settings.port = 80;
+
+  # Not allowed because the port option doesn't allow strings
+  # settings.port = "443";
+}
+ </programlisting>
+ </example>
+ <note>
+  <para>
+   Freeform attributes cannot depend on other attributes of the same set without infinite recursion:
+<programlisting>
+{
+  # This throws infinite recursion encountered
+  settings.logLevel = lib.mkIf (config.settings.port == 80) "debug";
+}
+</programlisting>
+   To prevent this, declare options for all attributes that need to depend on others. For above example this means to declare <literal>logLevel</literal> to be an option.
+  </para>
+ </note>
+</section>
diff --git a/nixpkgs/nixos/doc/manual/development/meta-attributes.xml b/nixpkgs/nixos/doc/manual/development/meta-attributes.xml
index 3d019a4987e1..c626ef30e9d5 100644
--- a/nixpkgs/nixos/doc/manual/development/meta-attributes.xml
+++ b/nixpkgs/nixos/doc/manual/development/meta-attributes.xml
@@ -57,7 +57,7 @@
       linkend="ch-configuration"/>. Changes to a module documentation
     have to be checked to not break building the NixOS manual:
    </para>
-<programlisting>$ nix-build nixos/release.nix -A manual</programlisting>
+<screen><prompt>$ </prompt>nix-build nixos/release.nix -A manual</screen>
   </callout>
  </calloutlist>
 </section>
diff --git a/nixpkgs/nixos/doc/manual/development/option-types.xml b/nixpkgs/nixos/doc/manual/development/option-types.xml
index 957349ad1811..3d2191e2f3f3 100644
--- a/nixpkgs/nixos/doc/manual/development/option-types.xml
+++ b/nixpkgs/nixos/doc/manual/development/option-types.xml
@@ -23,16 +23,6 @@
   <variablelist>
    <varlistentry>
     <term>
-     <varname>types.attrs</varname>
-    </term>
-    <listitem>
-     <para>
-      A free-form attribute set.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
      <varname>types.bool</varname>
     </term>
     <listitem>
@@ -64,6 +54,64 @@
      </para>
     </listitem>
    </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>types.anything</varname>
+    </term>
+    <listitem>
+     <para>
+      A type that accepts any value and recursively merges attribute sets together.
+      This type is recommended when the option type is unknown.
+      <example xml:id="ex-types-anything">
+       <title><literal>types.anything</literal> Example</title>
+       <para>
+        Two definitions of this type like
+<programlisting>
+{
+  str = lib.mkDefault "foo";
+  pkg.hello = pkgs.hello;
+  fun.fun = x: x + 1;
+}
+</programlisting>
+<programlisting>
+{
+  str = lib.mkIf true "bar";
+  pkg.gcc = pkgs.gcc;
+  fun.fun = lib.mkForce (x: x + 2);
+}
+</programlisting>
+        will get merged to
+<programlisting>
+{
+  str = "bar";
+  pkg.gcc = pkgs.gcc;
+  pkg.hello = pkgs.hello;
+  fun.fun = x: x + 2;
+}
+</programlisting>
+       </para>
+      </example>
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
+     <varname>types.attrs</varname>
+    </term>
+    <listitem>
+     <para>
+      A free-form attribute set.
+      <warning><para>
+       This type will be deprecated in the future because it doesn't recurse
+       into attribute sets, silently drops earlier attribute definitions, and
+       doesn't discharge <literal>lib.mkDefault</literal>, <literal>lib.mkIf
+       </literal> and co. For allowing arbitrary attribute sets, prefer
+       <literal>types.attrsOf types.anything</literal> instead which doesn't
+       have these problems.
+      </para></warning>
+     </para>
+    </listitem>
+   </varlistentry>
   </variablelist>
 
   <para>
@@ -387,17 +435,6 @@
    </varlistentry>
    <varlistentry>
     <term>
-     <varname>types.loaOf</varname> <replaceable>t</replaceable>
-    </term>
-    <listitem>
-     <para>
-      An attribute set or a list of <replaceable>t</replaceable> type. Multiple
-      definitions are merged according to the value.
-     </para>
-    </listitem>
-   </varlistentry>
-   <varlistentry>
-    <term>
      <varname>types.nullOr</varname> <replaceable>t</replaceable>
     </term>
     <listitem>
diff --git a/nixpkgs/nixos/doc/manual/development/releases.xml b/nixpkgs/nixos/doc/manual/development/releases.xml
index 8abc66dfec19..cd68a428a6fb 100755
--- a/nixpkgs/nixos/doc/manual/development/releases.xml
+++ b/nixpkgs/nixos/doc/manual/development/releases.xml
@@ -8,24 +8,26 @@
   <title>Release process</title>
 
   <para>
-   Going through an example of releasing NixOS 17.09:
+   Going through an example of releasing NixOS 19.09:
   </para>
 
   <section xml:id="one-month-before-the-beta">
    <title>One month before the beta</title>
 
-   <itemizedlist spacing="compact">
+   <itemizedlist>
     <listitem>
      <para>
-      Send an email to the nix-devel mailinglist as a warning about upcoming
-      beta "feature freeze" in a month.
+      Create an announcement on <link xlink:href="https://discourse.nixos.org">Discourse</link> as a warning about upcoming beta <quote>feature freeze</quote> in a month. <link xlink:href="https://discourse.nixos.org/t/nixos-19-09-feature-freeze/3707">See this post as an example</link>.
      </para>
     </listitem>
     <listitem>
      <para>
-      Discuss with Eelco Dolstra and the community (via IRC, ML) about what
-      will reach the deadline. Any issue or Pull Request targeting the release
-      should be included in the release milestone.
+      Discuss with Eelco Dolstra and the community (via IRC, ML) about what will reach the deadline. Any issue or Pull Request targeting the release should be included in the release milestone.
+     </para>
+    </listitem>
+    <listitem>
+     <para>
+      Remove attributes that we know we will not be able to support, especially if there is a stable alternative. E.g. Check that our Linux kernels’ <link xlink:href="https://www.kernel.org/category/releases.html">projected end-of-life</link> are after our release projected end-of-life.
      </para>
     </listitem>
    </itemizedlist>
@@ -34,113 +36,113 @@
   <section xml:id="at-beta-release-time">
    <title>At beta release time</title>
 
-   <itemizedlist spacing="compact">
+   <orderedlist>
     <listitem>
      <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/issues/13559">Create
-      an issue for tracking Zero Hydra Failures progress. ZHF is an effort to
-      get build failures down to zero.</link>
+      From the master branch run:
      </para>
+<programlisting>
+git checkout -b release-19.09
+</programlisting>
     </listitem>
     <listitem>
      <para>
-      <literal>git tag -a -s -m &quot;Release 17.09-beta&quot; 17.09-beta
-      &amp;&amp; git push origin 17.09-beta</literal>
+      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/10e61bf5be57736035ec7a804cb0bf3d083bf2cf#diff-9c798092bac0caeb5c52d509be0ca263R69">Bump the <literal>system.defaultChannel</literal> attribute in <literal>nixos/modules/misc/version.nix</literal></link>
      </para>
     </listitem>
     <listitem>
      <para>
-      From the master branch run <literal>git checkout -b
-      release-17.09</literal>.
+      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/10e61bf5be57736035ec7a804cb0bf3d083bf2cf#diff-831e8d9748240fb23e6734fdc2a6d16eR15">Update <literal>versionSuffix</literal> in <literal>nixos/release.nix</literal></link>
      </para>
     </listitem>
+   </orderedlist>
+
+   <para>
+    To get the commit count, use the following command:
+   </para>
+
+<programlisting>
+git rev-list --count release-19.09
+</programlisting>
+
+   <orderedlist>
     <listitem>
      <para>
-      <link xlink:href="https://github.com/NixOS/nixos-org-configurations/pull/18">
-      Make sure a channel is created at https://nixos.org/channels/. </link>
+      Edit changelog at <literal>nixos/doc/manual/release-notes/rl-1909.xml</literal>.
      </para>
+     <itemizedlist>
+      <listitem>
+       <para>
+        Get all new NixOS modules:
+       </para>
+<programlisting>
+git diff release-19.03..release-19.09 nixos/modules/module-list.nix | grep ^+
+</programlisting>
+      </listitem>
+      <listitem>
+       <para>
+        Note systemd, kernel, glibc, desktop environment, and Nix upgrades.
+       </para>
+      </listitem>
+     </itemizedlist>
     </listitem>
     <listitem>
      <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/compare/bdf161ed8d21...6b63c4616790">
-      Bump the <literal>system.defaultChannel</literal> attribute in
-      <literal>nixos/modules/misc/version.nix</literal> </link>
+      Tag the release:
      </para>
+<programlisting>
+git tag --annotate --message="Release 19.09-beta" 19.09-beta
+git push upstream 19.09-beta
+</programlisting>
     </listitem>
     <listitem>
      <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/d6b08acd1ccac0d9d502c4b635e00b04d3387f06">
-      Update <literal>versionSuffix</literal> in
-      <literal>nixos/release.nix</literal></link>, use
-      <literal>git rev-list --count 17.09-beta</literal>
-      to get the commit count.
+      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/01268fda85b7eee4e462c873d8654f975067731f#diff-2bc0e46110b507d6d5a344264ef15adaR1">On the <literal>master</literal> branch, increment the <literal>.version</literal> file</link>
      </para>
+<programlisting>
+echo -n "20.03" > .version
+</programlisting>
     </listitem>
     <listitem>
      <para>
-      <literal>echo -n &quot;18.03&quot; &gt; .version</literal> on master.
+      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/01268fda85b7eee4e462c873d8654f975067731f#diff-03f3d41b68f62079c55001f1a1c55c1dR137">Update <literal>codeName</literal> in <literal>lib/trivial.nix</literal></link> This will be the name for the next release.
      </para>
     </listitem>
     <listitem>
      <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/b8a4095003e27659092892a4708bb3698231a842">
-      Pick a new name for the unstable branch. </link>
+      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/01268fda85b7eee4e462c873d8654f975067731f#diff-e7ee5ff686cdcc513ca089d6e5682587R11">Create a new release notes file for the upcoming release + 1</link>, in our case this is <literal>rl-2003.xml</literal>.
      </para>
     </listitem>
     <listitem>
      <para>
-      Create a new release notes file for the upcoming release + 1, in this
-      case <literal>rl-1803.xml</literal>.
+      Contact the infrastructure team to create the necessary Hydra Jobsets.
      </para>
     </listitem>
     <listitem>
      <para>
-      Create two Hydra jobsets: release-17.09 and release-17.09-small with
-      <literal>stableBranch</literal> set to false.
+      <link xlink:href="https://github.com/NixOS/nixos-org-configurations/blob/master/channels.nix">Create a channel at https://nixos.org/channels by creating a PR to nixos-org-configurations, changing <literal>channels.nix</literal></link>
      </para>
     </listitem>
     <listitem>
      <para>
-      Remove attributes that we know we will not be able to support,
-      especially if there is a stable alternative. E.g. Check that our
-      Linux kernels'
-      <link xlink:href="https://www.kernel.org/category/releases.html">
-      projected end-of-life</link> are after our release projected
-      end-of-life
+      Get all Hydra jobsets for the release to have their first evaluation.
      </para>
     </listitem>
     <listitem>
      <para>
-      Edit changelog at
-      <literal>nixos/doc/manual/release-notes/rl-1709.xml</literal> (double
-      check desktop versions are noted)
+      <link xlink:href="https://github.com/NixOS/nixpkgs/issues/13559">Create an issue for tracking Zero Hydra Failures progress. ZHF is an effort to get build failures down to zero.</link>
      </para>
-     <itemizedlist spacing="compact">
-      <listitem>
-       <para>
-        Get all new NixOS modules <literal>git diff
-        release-17.03..release-17.09 nixos/modules/module-list.nix|grep
-        ^+</literal>
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        Note systemd, kernel, glibc and Nix upgrades.
-       </para>
-      </listitem>
-     </itemizedlist>
     </listitem>
-   </itemizedlist>
+   </orderedlist>
   </section>
 
   <section xml:id="during-beta">
    <title>During Beta</title>
 
-   <itemizedlist spacing="compact">
+   <itemizedlist>
     <listitem>
      <para>
-      Monitor the master branch for bugfixes and minor updates and cherry-pick
-      them to the release branch.
+      Monitor the master branch for bugfixes and minor updates and cherry-pick them to the release branch.
      </para>
     </listitem>
    </itemizedlist>
@@ -149,7 +151,7 @@
   <section xml:id="before-the-final-release">
    <title>Before the final release</title>
 
-   <itemizedlist spacing="compact">
+   <itemizedlist>
     <listitem>
      <para>
       Re-check that the release notes are complete.
@@ -157,21 +159,17 @@
     </listitem>
     <listitem>
      <para>
-      Release Nix (currently only Eelco Dolstra can do that).
-      <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/tools/nix-fallback-paths.nix">
-      Make sure fallback is updated. </link>
+      Release Nix (currently only Eelco Dolstra can do that). <link xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/installer/tools/nix-fallback-paths.nix">Make sure fallback is updated.</link>
      </para>
     </listitem>
     <listitem>
      <para>
-      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/40fd9ae3ac8048758abdcfc7d28a78b5f22fe97e">
-      Update README.md with new stable NixOS version information. </link>
+      <link xlink:href="https://github.com/NixOS/nixpkgs/commit/40fd9ae3ac8048758abdcfc7d28a78b5f22fe97e">Update README.md with new stable NixOS version information.</link>
      </para>
     </listitem>
     <listitem>
      <para>
-      Change <literal>stableBranch</literal> to <literal>true</literal> in Hydra and wait for
-      the channel to update.
+      Change <literal>stableBranch</literal> to <literal>true</literal> in Hydra and wait for the channel to update.
      </para>
     </listitem>
    </itemizedlist>
@@ -180,76 +178,143 @@
   <section xml:id="at-final-release-time">
    <title>At final release time</title>
 
-   <itemizedlist spacing="compact">
+   <orderedlist>
     <listitem>
      <para>
-      <literal>git tag -s -a -m &quot;Release 15.09&quot; 15.09</literal>
+      Update <xref linkend="sec-upgrading" /> section of the manual to match new stable release version.
      </para>
     </listitem>
     <listitem>
      <para>
-      Update "Chapter 4. Upgrading NixOS" section of the manual to match
-      new stable release version.
+      Update <literal>rl-1909.xml</literal> with the release date.
      </para>
     </listitem>
     <listitem>
      <para>
-      Update the
-      <link xlink:href="https://github.com/NixOS/nixos-homepage/commit/2a37975d5a617ecdfca94696242b6f32ffcba9f1"><code>NIXOS_SERIES</code></link>
-      in the
-      <link xlink:href="https://github.com/NixOS/nixos-homepage">nixos-homepage</link>
-      repository.
+      Tag the final release
      </para>
+<programlisting>
+git tag --annotate --message="Release 19.09" 19.09
+git push upstream 19.09
+</programlisting>
+    </listitem>
+    <listitem>
+     <para>
+      Update <link xlink:href="https://github.com/NixOS/nixos-homepage">nixos-homepage</link> for the release.
+     </para>
+     <orderedlist>
+      <listitem>
+       <para>
+        <link xlink:href="https://github.com/NixOS/nixos-homepage/blob/47ac3571c4d71e841fd4e6c6e1872e762b9c4942/Makefile#L1">Update <literal>NIXOS_SERIES</literal> in the <literal>Makefile</literal></link>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <link xlink:href="https://github.com/NixOS/nixos-homepage/blob/47ac3571c4d71e841fd4e6c6e1872e762b9c4942/nixos-release.tt#L1">Update <literal>nixos-release.tt</literal> with the new NixOS version</link>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <link xlink:href="https://github.com/NixOS/nixos-homepage/blob/47ac3571c4d71e841fd4e6c6e1872e762b9c4942/flake.nix#L10">Update the <literal>flake.nix</literal> input <literal>released-nixpkgs</literal> to 19.09</link>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        Run <literal>./update.sh</literal> (this updates flake.lock to updated channel).
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <link xlink:href="https://github.com/NixOS/nixos-homepage/blob/a5626c71c03a2dd69086564e56f1a230a2bb177a/logo/nixos-logo-19.09-loris-lores.png">Add a compressed version of the NixOS logo for 19.09</link>.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <link xlink:href="https://github.com/NixOS/nixos-homepage/commit/a5626c71c03a2dd69086564e56f1a230a2bb177a#diff-9cdc6434d3e4fd93a6e5bb0a531a7c71R5">Compose a news item for the website RSS feed</link>.
+       </para>
+      </listitem>
+     </orderedlist>
     </listitem>
     <listitem>
      <para>
-      Get number of commits for the release: <literal>git log
-      release-14.04..release-14.12 --format=%an|wc -l</literal>
+      Create a new topic on <link xlink:href="https://discourse.nixos.org/">the Discourse instance</link> to announce the release.
      </para>
     </listitem>
+   </orderedlist>
+
+   <para>
+    You should include the following information:
+   </para>
+
+   <itemizedlist>
     <listitem>
      <para>
-      Commits by contributor: <literal>git log release-14.04..release-14.12
-      --format=%an|sort|uniq -c|sort -rn</literal>
+      Number of commits for the release:
      </para>
+<programlisting>
+bash git log release-19.03..release-19.09 --format=%an | wc -l
+</programlisting>
     </listitem>
     <listitem>
      <para>
-      Create a new topic on <link xlink:href="https://discourse.nixos.org/">the
-      Discourse instance</link> to announce the release with the above information.
-      Best to check how previous email was formulated to see what needs to be
-      included.
+      Commits by contributor:
      </para>
+<programlisting>
+git shortlog --summary --numbered release-19.03..release-19.09
+</programlisting>
     </listitem>
    </itemizedlist>
+
+   <para>
+    Best to check how the previous post was formulated to see what needs to be included.
+   </para>
   </section>
  </section>
- <section xml:id="release-managers">
+ <section xml:id="release-management-team">
   <title>Release Management Team</title>
+
   <para>
-   For each release there are two release managers. After each release the
-   release manager having managed two releases steps down and the release
-   management team of the last release appoints a new release manager.
+   For each release there are two release managers. After each release the release manager having managed two releases steps down and the release management team of the last release appoints a new release manager.
   </para>
+
   <para>
-   This makes sure a release management team always consists of one release
-   manager who already has managed one release and one release manager being
-   introduced to their role, making it easier to pass on knowledge and
-   experience.
+   This makes sure a release management team always consists of one release manager who already has managed one release and one release manager being introduced to their role, making it easier to pass on knowledge and experience.
   </para>
+
   <para>
-   Release managers for the current NixOS release are tracked by GitHub team
-   <link xlink:href="https://github.com/orgs/NixOS/teams/nixos-release-managers/members"><literal>@NixOS/nixos-release-managers</literal></link>.
+   Release managers for the current NixOS release are tracked by GitHub team <link xlink:href="https://github.com/orgs/NixOS/teams/nixos-release-managers/members"><literal>@NixOS/nixos-release-managers</literal></link>.
   </para>
+
   <para>
-   A release manager's role and responsibilities are:
+   A release manager’s role and responsibilities are:
   </para>
+
   <itemizedlist>
-   <listitem><para>manage the release process</para></listitem>
-   <listitem><para>start discussions about features and changes for a given release</para></listitem>
-   <listitem><para>create a roadmap</para></listitem>
-   <listitem><para>release in cooperation with Eelco Dolstra</para></listitem>
-   <listitem><para>decide which bug fixes, features, etc... get backported after a release</para></listitem>
+   <listitem>
+    <para>
+     manage the release process
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     start discussions about features and changes for a given release
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     create a roadmap
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     release in cooperation with Eelco Dolstra
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     decide which bug fixes, features, etc… get backported after a release
+    </para>
+   </listitem>
   </itemizedlist>
  </section>
  <section xml:id="release-schedule">
diff --git a/nixpkgs/nixos/doc/manual/development/running-nixos-tests-interactively.xml b/nixpkgs/nixos/doc/manual/development/running-nixos-tests-interactively.xml
index 31216874c706..a11a9382764d 100644
--- a/nixpkgs/nixos/doc/manual/development/running-nixos-tests-interactively.xml
+++ b/nixpkgs/nixos/doc/manual/development/running-nixos-tests-interactively.xml
@@ -38,7 +38,12 @@ starting VDE switch for network 1
  </para>
 
  <para>
-  The machine state is kept across VM restarts in
-  <filename>/tmp/vm-state-</filename><varname>machinename</varname>.
+   You can re-use the VM states coming from a previous run
+   by setting the <command>--keep-vm-state</command> flag.
+<screen>
+<prompt>$ </prompt>./result/bin/nixos-run-vms --keep-vm-state
+</screen>
+  The machine state is stored in the
+  <filename>$TMPDIR/vm-state-</filename><varname>machinename</varname> directory.
  </para>
 </section>
diff --git a/nixpkgs/nixos/doc/manual/development/settings-options.xml b/nixpkgs/nixos/doc/manual/development/settings-options.xml
new file mode 100644
index 000000000000..c99c3af92f89
--- /dev/null
+++ b/nixpkgs/nixos/doc/manual/development/settings-options.xml
@@ -0,0 +1,216 @@
+<section xmlns="http://docbook.org/ns/docbook"
+        xmlns:xlink="http://www.w3.org/1999/xlink"
+        xmlns:xi="http://www.w3.org/2001/XInclude"
+        version="5.0"
+        xml:id="sec-settings-options">
+ <title>Options for Program Settings</title>
+
+ <para>
+   Many programs have configuration files where program-specific settings can be declared. File formats can be separated into two categories:
+   <itemizedlist>
+     <listitem>
+       <para>
+         Nix-representable ones: These can trivially be mapped to a subset of Nix syntax. E.g. JSON is an example, since its values like <literal>{"foo":{"bar":10}}</literal> can be mapped directly to Nix: <literal>{ foo = { bar = 10; }; }</literal>. Other examples are INI, YAML and TOML. The following section explains the convention for these settings.
+       </para>
+     </listitem>
+     <listitem>
+       <para>
+         Non-nix-representable ones: These can't be trivially mapped to a subset of Nix syntax. Most generic programming languages are in this group, e.g. bash, since the statement <literal>if true; then echo hi; fi</literal> doesn't have a trivial representation in Nix.
+       </para>
+       <para>
+         Currently there are no fixed conventions for these, but it is common to have a <literal>configFile</literal> option for setting the configuration file path directly. The default value of <literal>configFile</literal> can be an auto-generated file, with convenient options for controlling the contents. For example an option of type <literal>attrsOf str</literal> can be used for representing environment variables which generates a section like <literal>export FOO="foo"</literal>. Often it can also be useful to also include an <literal>extraConfig</literal> option of type <literal>lines</literal> to allow arbitrary text after the autogenerated part of the file.
+       </para>
+     </listitem>
+   </itemizedlist>
+ </para>
+ <section xml:id="sec-settings-nix-representable">
+   <title>Nix-representable Formats (JSON, YAML, TOML, INI, ...)</title>
+   <para>
+     By convention, formats like this are handled with a generic <literal>settings</literal> option, representing the full program configuration as a Nix value. The type of this option should represent the format. The most common formats have a predefined type and string generator already declared under <literal>pkgs.formats</literal>:
+     <variablelist>
+       <varlistentry>
+         <term>
+           <varname>pkgs.formats.json</varname> { }
+         </term>
+         <listitem>
+           <para>
+             A function taking an empty attribute set (for future extensibility) and returning a set with JSON-specific attributes <varname>type</varname> and <varname>generate</varname> as specified <link linkend='pkgs-formats-result'>below</link>.
+           </para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term>
+           <varname>pkgs.formats.yaml</varname> { }
+         </term>
+         <listitem>
+           <para>
+             A function taking an empty attribute set (for future extensibility) and returning a set with YAML-specific attributes <varname>type</varname> and <varname>generate</varname> as specified <link linkend='pkgs-formats-result'>below</link>.
+           </para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term>
+           <varname>pkgs.formats.ini</varname> { <replaceable>listsAsDuplicateKeys</replaceable> ? false, ... }
+         </term>
+         <listitem>
+           <para>
+             A function taking an attribute set with values
+             <variablelist>
+               <varlistentry>
+                 <term>
+                   <varname>listsAsDuplicateKeys</varname>
+                 </term>
+                 <listitem>
+                   <para>
+                     A boolean for controlling whether list values can be used to represent duplicate INI keys
+                   </para>
+                 </listitem>
+               </varlistentry>
+             </variablelist>
+            It returns a set with INI-specific attributes <varname>type</varname> and <varname>generate</varname> as specified <link linkend='pkgs-formats-result'>below</link>.
+           </para>
+         </listitem>
+       </varlistentry>
+       <varlistentry>
+         <term>
+           <varname>pkgs.formats.toml</varname> { }
+         </term>
+         <listitem>
+           <para>
+             A function taking an empty attribute set (for future extensibility) and returning a set with TOML-specific attributes <varname>type</varname> and <varname>generate</varname> as specified <link linkend='pkgs-formats-result'>below</link>.
+           </para>
+         </listitem>
+       </varlistentry>
+     </variablelist>
+
+   </para>
+   <para xml:id="pkgs-formats-result">
+     These functions all return an attribute set with these values:
+    <variablelist>
+      <varlistentry>
+        <term>
+          <varname>type</varname>
+        </term>
+        <listitem>
+          <para>
+            A module system type representing a value of the format
+          </para>
+        </listitem>
+      </varlistentry>
+      <varlistentry>
+        <term>
+          <varname>generate</varname> <replaceable>filename</replaceable> <replaceable>jsonValue</replaceable>
+        </term>
+        <listitem>
+          <para>
+           A function that can render a value of the format to a file. Returns a file path.
+           <note>
+            <para>
+             This function puts the value contents in the Nix store. So this should be avoided for secrets.
+            </para>
+           </note>
+          </para>
+        </listitem>
+      </varlistentry>
+    </variablelist>
+   </para>
+   <example xml:id="ex-settings-nix-representable">
+     <title>Module with conventional <literal>settings</literal> option</title>
+     <para>
+       The following shows a module for an example program that uses a JSON configuration file. It demonstrates how above values can be used, along with some other related best practices. See the comments for explanations.
+     </para>
+<programlisting>
+{ options, config, lib, pkgs, ... }:
+let
+  cfg = config.services.foo;
+  # Define the settings format used for this program
+  settingsFormat = pkgs.formats.json {};
+in {
+
+  options.services.foo = {
+    enable = lib.mkEnableOption "foo service";
+
+    settings = lib.mkOption {
+      # Setting this type allows for correct merging behavior
+      type = settingsFormat.type;
+      default = {};
+      description = ''
+        Configuration for foo, see
+        &lt;link xlink:href="https://example.com/docs/foo"/&gt;
+        for supported settings.
+      '';
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    # We can assign some default settings here to make the service work by just
+    # enabling it. We use `mkDefault` for values that can be changed without
+    # problems
+    services.foo.settings = {
+      # Fails at runtime without any value set
+      log_level = lib.mkDefault "WARN";
+
+      # We assume systemd's `StateDirectory` is used, so we require this value,
+      # therefore no mkDefault
+      data_path = "/var/lib/foo";
+
+      # Since we use this to create a user we need to know the default value at
+      # eval time
+      user = lib.mkDefault "foo";
+    };
+
+    environment.etc."foo.json".source =
+      # The formats generator function takes a filename and the Nix value
+      # representing the format value and produces a filepath with that value
+      # rendered in the format
+      settingsFormat.generate "foo-config.json" cfg.settings;
+
+    # We know that the `user` attribute exists because we set a default value
+    # for it above, allowing us to use it without worries here
+    users.users.${cfg.settings.user} = {};
+
+    # ...
+  };
+}
+</programlisting>
+   </example>
+   <section xml:id="sec-settings-attrs-options">
+    <title>Option declarations for attributes</title>
+    <para>
+     Some <literal>settings</literal> attributes may deserve some extra care. They may need a different type, default or merging behavior, or they are essential options that should show their documentation in the manual. This can be done using <xref linkend='sec-freeform-modules'/>.
+     <example xml:id="ex-settings-typed-attrs">
+      <title>Declaring a type-checked <literal>settings</literal> attribute</title>
+      <para>
+       We extend above example using freeform modules to declare an option for the port, which will enforce it to be a valid integer and make it show up in the manual.
+      </para>
+<programlisting>
+settings = lib.mkOption {
+  type = lib.types.submodule {
+
+    freeformType = settingsFormat.type;
+
+    # Declare an option for the port such that the type is checked and this option
+    # is shown in the manual.
+    options.port = lib.mkOption {
+      type = lib.types.port;
+      default = 8080;
+      description = ''
+        Which port this service should listen on.
+      '';
+    };
+
+  };
+  default = {};
+  description = ''
+    Configuration for Foo, see
+    &lt;link xlink:href="https://example.com/docs/foo"/&gt;
+    for supported values.
+  '';
+};
+</programlisting>
+     </example>
+    </para>
+   </section>
+ </section>
+
+</section>
diff --git a/nixpkgs/nixos/doc/manual/development/writing-documentation.xml b/nixpkgs/nixos/doc/manual/development/writing-documentation.xml
index 2183937ad0da..32e00544ceff 100644
--- a/nixpkgs/nixos/doc/manual/development/writing-documentation.xml
+++ b/nixpkgs/nixos/doc/manual/development/writing-documentation.xml
@@ -24,8 +24,8 @@
   </para>
 
 <screen>
-  $ cd /path/to/nixpkgs/nixos/doc/manual
-  $ make
+<prompt>$ </prompt>cd /path/to/nixpkgs/nixos/doc/manual
+<prompt>$ </prompt>make
 </screen>
 
   <para>
diff --git a/nixpkgs/nixos/doc/manual/development/writing-modules.xml b/nixpkgs/nixos/doc/manual/development/writing-modules.xml
index bbf793bb0be9..d244356dbed1 100644
--- a/nixpkgs/nixos/doc/manual/development/writing-modules.xml
+++ b/nixpkgs/nixos/doc/manual/development/writing-modules.xml
@@ -183,4 +183,6 @@ in {
  <xi:include href="meta-attributes.xml" />
  <xi:include href="importing-modules.xml" />
  <xi:include href="replace-modules.xml" />
+ <xi:include href="freeform-modules.xml" />
+ <xi:include href="settings-options.xml" />
 </chapter>
diff --git a/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.xml b/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.xml
index 150bea8c2d86..cab4c067e0d3 100644
--- a/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.xml
+++ b/nixpkgs/nixos/doc/manual/development/writing-nixos-tests.xml
@@ -43,7 +43,7 @@ xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/login.nix">
   console, whether device ownership is correctly maintained when switching
   between consoles, and so on. On the other hand,
   <filename
-xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/nfs.nix">nfs.nix</filename>,
+xlink:href="https://github.com/NixOS/nixpkgs/blob/master/nixos/tests/nfs/simple.nix">nfs/simple.nix</filename>,
   which tests NFS client and server functionality in the Linux kernel
   (including whether locks are maintained across server crashes), requires
   three machines: a server and two clients.
@@ -216,12 +216,12 @@ start_all()
    </varlistentry>
    <varlistentry>
     <term>
-     <methodname>send_keys</methodname>
+     <methodname>send_key</methodname>
     </term>
     <listitem>
      <para>
       Simulate pressing keys on the virtual keyboard, e.g.,
-      <literal>send_keys("ctrl-alt-delete")</literal>.
+      <literal>send_key("ctrl-alt-delete")</literal>.
      </para>
     </listitem>
    </varlistentry>
@@ -232,7 +232,7 @@ start_all()
     <listitem>
      <para>
       Simulate typing a sequence of characters on the virtual keyboard, e.g.,
-      <literal>send_keys("foobar\n")</literal> will type the string
+      <literal>send_chars("foobar\n")</literal> will type the string
       <literal>foobar</literal> followed by the Enter key.
      </para>
     </listitem>
@@ -362,6 +362,18 @@ start_all()
    </varlistentry>
    <varlistentry>
     <term>
+     <methodname>wait_for_console_text</methodname>
+    </term>
+    <listitem>
+     <para>
+      Wait until the supplied regular expressions match a line of the serial
+      console output. This method is useful when OCR is not possibile or
+      accurate enough.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
+    <term>
      <methodname>wait_for_window</methodname>
     </term>
     <listitem>
@@ -378,7 +390,7 @@ start_all()
     <listitem>
      <para>
       Copies a file from host to machine, e.g.,
-      <literal>copy_file_from_host("myfile", "/etc/my/important/file")</literal>.
+      <literal>copy_from_host("myfile", "/etc/my/important/file")</literal>.
      </para>
      <para>
       The first argument is the file on the host. The file needs to be
diff --git a/nixpkgs/nixos/doc/manual/installation/changing-config.xml b/nixpkgs/nixos/doc/manual/installation/changing-config.xml
index 48193d986ab7..4288806d5eb2 100644
--- a/nixpkgs/nixos/doc/manual/installation/changing-config.xml
+++ b/nixpkgs/nixos/doc/manual/installation/changing-config.xml
@@ -78,7 +78,7 @@
   <literal>mutableUsers = false</literal>. Another way is to temporarily add
   the following to your configuration:
 <screen>
-<link linkend="opt-users.users._name__.initialHashedPassword">users.users.your-user.initialHashedPassword</link> = "test";
+<link linkend="opt-users.users._name_.initialHashedPassword">users.users.your-user.initialHashedPassword</link> = "test";
 </screen>
   <emphasis>Important:</emphasis> delete the $hostname.qcow2 file if you have
   started the virtual machine at least once without the right users, otherwise
diff --git a/nixpkgs/nixos/doc/manual/installation/installing-behind-a-proxy.xml b/nixpkgs/nixos/doc/manual/installation/installing-behind-a-proxy.xml
index c1ef638e876e..6788882aa8c0 100644
--- a/nixpkgs/nixos/doc/manual/installation/installing-behind-a-proxy.xml
+++ b/nixpkgs/nixos/doc/manual/installation/installing-behind-a-proxy.xml
@@ -27,13 +27,13 @@ networking.proxy.noProxy = &quot;127.0.0.1,localhost,internal.domain&quot;;
     Setup the proxy environment variables in the shell where you are running
     <literal>nixos-install</literal>.
    </para>
-<programlisting>
-# proxy_url=&quot;http://user:password@proxy:port/&quot;
-# export http_proxy=&quot;$proxy_url&quot;
-# export HTTP_PROXY=&quot;$proxy_url&quot;
-# export https_proxy=&quot;$proxy_url&quot;
-# export HTTPS_PROXY=&quot;$proxy_url&quot;
-</programlisting>
+<screen>
+<prompt># </prompt>proxy_url=&quot;http://user:password@proxy:port/&quot;
+<prompt># </prompt>export http_proxy=&quot;$proxy_url&quot;
+<prompt># </prompt>export HTTP_PROXY=&quot;$proxy_url&quot;
+<prompt># </prompt>export https_proxy=&quot;$proxy_url&quot;
+<prompt># </prompt>export HTTPS_PROXY=&quot;$proxy_url&quot;
+</screen>
   </listitem>
  </orderedlist>
 
diff --git a/nixpkgs/nixos/doc/manual/installation/installing-from-other-distro.xml b/nixpkgs/nixos/doc/manual/installation/installing-from-other-distro.xml
index 45d68f8787f1..f10a7d658879 100644
--- a/nixpkgs/nixos/doc/manual/installation/installing-from-other-distro.xml
+++ b/nixpkgs/nixos/doc/manual/installation/installing-from-other-distro.xml
@@ -47,7 +47,7 @@
     Short version:
    </para>
 <screen>
-<prompt>$ </prompt>curl https://nixos.org/nix/install | sh
+<prompt>$ </prompt>curl -L https://nixos.org/nix/install | sh
 <prompt>$ </prompt>. $HOME/.nix-profile/etc/profile.d/nix.sh # …or open a fresh shell</screen>
    <para>
     More details in the
@@ -211,7 +211,7 @@ nixpkgs https://nixos.org/channels/nixpkgs-unstable</screen>
     use <literal>sudo</literal>)
    </para>
 <programlisting>
-<link linkend="opt-users.users._name__.initialHashedPassword">users.users.root.initialHashedPassword</link> = "";
+<link linkend="opt-users.users._name_.initialHashedPassword">users.users.root.initialHashedPassword</link> = "";
 </programlisting>
   </listitem>
   <listitem>
@@ -325,14 +325,14 @@ sudo /nix/var/nix/profiles/system/bin/switch-to-configuration boot
     to boot on a USB rescue disk and do something along these lines:
    </para>
 <screen>
-# mkdir root
-# mount /dev/sdaX root
-# mkdir root/nixos-root
-# mv -v root/* root/nixos-root/
-# mv -v root/nixos-root/old-root/* root/
-# mv -v root/boot.bak root/boot  # We had renamed this by hand earlier
-# umount root
-# reboot</screen>
+<prompt># </prompt>mkdir root
+<prompt># </prompt>mount /dev/sdaX root
+<prompt># </prompt>mkdir root/nixos-root
+<prompt># </prompt>mv -v root/* root/nixos-root/
+<prompt># </prompt>mv -v root/nixos-root/old-root/* root/
+<prompt># </prompt>mv -v root/boot.bak root/boot  # We had renamed this by hand earlier
+<prompt># </prompt>umount root
+<prompt># </prompt>reboot</screen>
    <para>
     This may work as is or you might also need to reinstall the boot loader
    </para>
diff --git a/nixpkgs/nixos/doc/manual/installation/installing-pxe.xml b/nixpkgs/nixos/doc/manual/installation/installing-pxe.xml
index 94199e5e028d..ea88fbdad7e2 100644
--- a/nixpkgs/nixos/doc/manual/installation/installing-pxe.xml
+++ b/nixpkgs/nixos/doc/manual/installation/installing-pxe.xml
@@ -16,7 +16,7 @@
  </para>
 
 <programlisting>
-nix-build -A netboot nixos/release.nix
+nix-build -A netboot.x86_64-linux nixos/release.nix
 </programlisting>
 
  <para>
diff --git a/nixpkgs/nixos/doc/manual/installation/installing-virtualbox-guest.xml b/nixpkgs/nixos/doc/manual/installation/installing-virtualbox-guest.xml
index 0ba909fa953f..1cffeed48079 100644
--- a/nixpkgs/nixos/doc/manual/installation/installing-virtualbox-guest.xml
+++ b/nixpkgs/nixos/doc/manual/installation/installing-virtualbox-guest.xml
@@ -49,7 +49,7 @@
   </listitem>
   <listitem>
    <para>
-    Click on Settings / Display / Screen and select VBoxVGA as Graphics Controller
+    Click on Settings / Display / Screen and select VMSVGA as Graphics Controller
    </para>
   </listitem>
   <listitem>
diff --git a/nixpkgs/nixos/doc/manual/installation/installing.xml b/nixpkgs/nixos/doc/manual/installation/installing.xml
index 673df8f2e4c4..6df1d8303483 100644
--- a/nixpkgs/nixos/doc/manual/installation/installing.xml
+++ b/nixpkgs/nixos/doc/manual/installation/installing.xml
@@ -42,7 +42,7 @@
   </para>
 
   <para>
-   If the text is too small to be legible, try <command>setfont ter-132n</command>
+   If the text is too small to be legible, try <command>setfont ter-v32n</command>
    to increase the font size.
   </para>
 
@@ -70,9 +70,13 @@
 
    <para>
     If you would like to continue the installation from a different machine you
-    need to activate the SSH daemon via <command>systemctl start
-    sshd</command>. You then must set a password for either <literal>root</literal> or
-    <literal>nixos</literal> with <command>passwd</command> to be able to login.
+    can use activated SSH daemon. You need to copy your ssh key to either
+    <literal>/home/nixos/.ssh/authorized_keys</literal> or
+    <literal>/root/.ssh/authorized_keys</literal> (Tip: For installers with a
+    modifiable filesystem such as the sd-card installer image a key can be manually
+    placed by mounting the image on a different machine). Alternatively you must set
+    a password for either <literal>root</literal> or <literal>nixos</literal> with
+    <command>passwd</command> to be able to login.
    </para>
   </section>
  </section>
@@ -146,7 +150,7 @@
        partition. It uses the initially reserved 512MiB at the start of the
        disk.
 <screen language="commands"><prompt># </prompt>parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB
-<prompt># </prompt>parted /dev/sda -- set 3 boot on</screen>
+<prompt># </prompt>parted /dev/sda -- set 3 esp on</screen>
       </para>
      </listitem>
     </orderedlist>
@@ -513,7 +517,7 @@ Retype new UNIX password: ***</screen>
 <prompt># </prompt>parted /dev/sda -- mkpart primary 512MiB -8GiB
 <prompt># </prompt>parted /dev/sda -- mkpart primary linux-swap -8GiB 100%
 <prompt># </prompt>parted /dev/sda -- mkpart ESP fat32 1MiB 512MiB
-<prompt># </prompt>parted /dev/sda -- set 3 boot on</screen>
+<prompt># </prompt>parted /dev/sda -- set 3 esp on</screen>
   </example>
 
   <example xml:id="ex-install-sequence">
@@ -550,7 +554,7 @@ Retype new UNIX password: ***</screen>
   # Note: setting fileSystems is generally not
   # necessary, since nixos-generate-config figures them out
   # automatically in hardware-configuration.nix.
-  #<link linkend="opt-fileSystems._name__.device">fileSystems."/".device</link> = "/dev/disk/by-label/nixos";
+  #<link linkend="opt-fileSystems._name_.device">fileSystems."/".device</link> = "/dev/disk/by-label/nixos";
 
   # Enable the OpenSSH server.
   services.sshd.enable = true;
diff --git a/nixpkgs/nixos/doc/manual/installation/upgrading.xml b/nixpkgs/nixos/doc/manual/installation/upgrading.xml
index e5e02aa07526..08780051d5f6 100644
--- a/nixpkgs/nixos/doc/manual/installation/upgrading.xml
+++ b/nixpkgs/nixos/doc/manual/installation/upgrading.xml
@@ -67,32 +67,32 @@
   <literal>nixos-20.03</literal> channel. To see which NixOS channel you’re
   subscribed to, run the following as root:
 <screen>
-# nix-channel --list | grep nixos
+<prompt># </prompt>nix-channel --list | grep nixos
 nixos https://nixos.org/channels/nixos-unstable
 </screen>
   To switch to a different NixOS channel, do
 <screen>
-# nix-channel --add https://nixos.org/channels/<replaceable>channel-name</replaceable> nixos
+<prompt># </prompt>nix-channel --add https://nixos.org/channels/<replaceable>channel-name</replaceable> nixos
 </screen>
   (Be sure to include the <literal>nixos</literal> parameter at the end.) For
   instance, to use the NixOS 20.03 stable channel:
 <screen>
-# nix-channel --add https://nixos.org/channels/nixos-20.03 nixos
+<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-20.03 nixos
 </screen>
   If you have a server, you may want to use the “small” channel instead:
 <screen>
-# nix-channel --add https://nixos.org/channels/nixos-20.03-small nixos
+<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-20.03-small nixos
 </screen>
   And if you want to live on the bleeding edge:
 <screen>
-# nix-channel --add https://nixos.org/channels/nixos-unstable nixos
+<prompt># </prompt>nix-channel --add https://nixos.org/channels/nixos-unstable nixos
 </screen>
  </para>
  <para>
   You can then upgrade NixOS to the latest version in your chosen channel by
   running
 <screen>
-# nixos-rebuild switch --upgrade
+<prompt># </prompt>nixos-rebuild switch --upgrade
 </screen>
   which is equivalent to the more verbose <literal>nix-channel --update nixos;
   nixos-rebuild switch</literal>.
diff --git a/nixpkgs/nixos/doc/manual/man-nixos-build-vms.xml b/nixpkgs/nixos/doc/manual/man-nixos-build-vms.xml
index d114261f53be..fa7c8c0c6d79 100644
--- a/nixpkgs/nixos/doc/manual/man-nixos-build-vms.xml
+++ b/nixpkgs/nixos/doc/manual/man-nixos-build-vms.xml
@@ -13,15 +13,15 @@
  </refnamediv>
  <refsynopsisdiv>
   <cmdsynopsis>
-   <command>nixos-build-vms</command> 
+   <command>nixos-build-vms</command>
    <arg>
     <option>--show-trace</option>
    </arg>
-    
+
    <arg>
     <option>--no-out-link</option>
    </arg>
-    
+
    <arg>
     <option>--help</option>
   </arg>
diff --git a/nixpkgs/nixos/doc/manual/man-nixos-enter.xml b/nixpkgs/nixos/doc/manual/man-nixos-enter.xml
index fe560d3efdd8..41f0e6b97515 100644
--- a/nixpkgs/nixos/doc/manual/man-nixos-enter.xml
+++ b/nixpkgs/nixos/doc/manual/man-nixos-enter.xml
@@ -13,21 +13,21 @@
  </refnamediv>
  <refsynopsisdiv>
   <cmdsynopsis>
-   <command>nixos-enter</command> 
+   <command>nixos-enter</command>
    <arg>
     <arg choice='plain'>
      <option>--root</option>
     </arg>
      <replaceable>root</replaceable>
    </arg>
-    
+
    <arg>
     <arg choice='plain'>
      <option>--system</option>
     </arg>
      <replaceable>system</replaceable>
    </arg>
-    
+
    <arg>
     <arg choice='plain'>
      <option>-c</option>
@@ -40,13 +40,13 @@
      <option>--silent</option>
     </arg>
    </arg>
-    
+
    <arg>
     <arg choice='plain'>
      <option>--help</option>
     </arg>
    </arg>
-    
+
    <arg>
     <arg choice='plain'>
      <option>--</option>
@@ -136,13 +136,13 @@
    <filename>/mnt</filename>:
   </para>
 <screen>
-# nixos-enter /mnt
+<prompt># </prompt>nixos-enter --root /mnt
 </screen>
   <para>
    Run a shell command:
   </para>
 <screen>
-# nixos-enter -c 'ls -l /; cat /proc/mounts'
+<prompt># </prompt>nixos-enter -c 'ls -l /; cat /proc/mounts'
 </screen>
   <para>
    Run a non-shell command:
diff --git a/nixpkgs/nixos/doc/manual/man-nixos-install.xml b/nixpkgs/nixos/doc/manual/man-nixos-install.xml
index 84849282e9ab..b205e2309687 100644
--- a/nixpkgs/nixos/doc/manual/man-nixos-install.xml
+++ b/nixpkgs/nixos/doc/manual/man-nixos-install.xml
@@ -46,6 +46,10 @@
    </arg>
 
    <arg>
+    <option>--flake</option> <replaceable>flake-uri</replaceable>
+   </arg>
+
+   <arg>
      <arg choice='plain'>
        <option>--channel</option>
      </arg>
@@ -200,6 +204,18 @@
     </listitem>
    </varlistentry>
    <varlistentry>
+    <term>
+     <option>--flake</option> <replaceable>flake-uri</replaceable>#<replaceable>name</replaceable>
+    </term>
+    <listitem>
+     <para>
+      Build the NixOS system from the specified flake.
+      The flake must contain an output named
+      <literal>nixosConfigurations.<replaceable>name</replaceable></literal>.
+     </para>
+    </listitem>
+   </varlistentry>
+   <varlistentry>
      <term>
        <option>--channel</option>
      </term>
diff --git a/nixpkgs/nixos/doc/manual/man-nixos-rebuild.xml b/nixpkgs/nixos/doc/manual/man-nixos-rebuild.xml
index f4f663b84f05..1fd3a1c56648 100644
--- a/nixpkgs/nixos/doc/manual/man-nixos-rebuild.xml
+++ b/nixpkgs/nixos/doc/manual/man-nixos-rebuild.xml
@@ -52,10 +52,18 @@
     <option>build-vm-with-bootloader</option>
    </arg>
     </group>
-   <sbr />
-   <arg>
-    <option>--upgrade</option>
-   </arg>
+    <sbr />
+
+    <arg>
+      <group choice='req'>
+        <arg choice='plain'>
+          <option>--upgrade</option>
+        </arg>
+        <arg choice='plain'>
+          <option>--upgrade-all</option>
+        </arg>
+      </group>
+    </arg>
 
    <arg>
     <option>--install-bootloader</option>
@@ -315,7 +323,7 @@
        switch</command>), because the hardware and boot loader configuration in
        the VM are different. The boot loader is installed on an automatically
        generated virtual disk containing a <filename>/boot</filename>
-       partition, which is mounted read-only in the VM.
+       partition.
       </para>
      </listitem>
     </varlistentry>
@@ -334,9 +342,23 @@
     <term>
      <option>--upgrade</option>
     </term>
+    <term>
+     <option>--upgrade-all</option>
+    </term>
     <listitem>
-     <para>
-      Fetch the latest version of NixOS from the NixOS channel.
+      <para>
+        Update the root user's channel named <literal>nixos</literal>
+        before rebuilding the system.
+      </para>
+      <para>
+        In addition to the <literal>nixos</literal> channel, the root
+        user's channels which have a file named
+        <literal>.update-on-nixos-rebuild</literal> in their base
+        directory will also be updated.
+      </para>
+      <para>
+        Passing <option>--upgrade-all</option> updates all of the root
+        user's channels.
      </para>
     </listitem>
    </varlistentry>
@@ -521,7 +543,7 @@
 
    <varlistentry>
     <term>
-     <option>--flake</option> <replaceable>flake-uri</replaceable>[<replaceable>name</replaceable>]
+     <option>--flake</option> <replaceable>flake-uri</replaceable><optional>#<replaceable>name</replaceable></optional>
     </term>
     <listitem>
      <para>
diff --git a/nixpkgs/nixos/doc/manual/man-nixos-version.xml b/nixpkgs/nixos/doc/manual/man-nixos-version.xml
index aada08c5b4a9..fae25721e394 100644
--- a/nixpkgs/nixos/doc/manual/man-nixos-version.xml
+++ b/nixpkgs/nixos/doc/manual/man-nixos-version.xml
@@ -33,7 +33,7 @@
   <para>
    This command shows the version of the currently active NixOS configuration.
    For example:
-<screen>$ nixos-version
+<screen><prompt>$ </prompt>nixos-version
 16.03.1011.6317da4 (Emu)
 </screen>
    The version consists of the following elements:
@@ -111,7 +111,7 @@
      <para>
       Show the full SHA1 hash of the Git commit from which this configuration
       was built, e.g.
-<screen>$ nixos-version --hash
+<screen><prompt>$ </prompt>nixos-version --hash
 6317da40006f6bc2480c6781999c52d88dde2acf
 </screen>
      </para>
diff --git a/nixpkgs/nixos/doc/manual/release-notes/release-notes.xml b/nixpkgs/nixos/doc/manual/release-notes/release-notes.xml
index e2913b8a5353..bf18457c2b38 100644
--- a/nixpkgs/nixos/doc/manual/release-notes/release-notes.xml
+++ b/nixpkgs/nixos/doc/manual/release-notes/release-notes.xml
@@ -8,6 +8,7 @@
   This section lists the release notes for each stable version of NixOS and
   current unstable revision.
  </para>
+ <xi:include href="rl-2103.xml" />
  <xi:include href="rl-2009.xml" />
  <xi:include href="rl-2003.xml" />
  <xi:include href="rl-1909.xml" />
diff --git a/nixpkgs/nixos/doc/manual/release-notes/rl-1903.xml b/nixpkgs/nixos/doc/manual/release-notes/rl-1903.xml
index 8ff1681d3b4a..5593cb3e5dff 100644
--- a/nixpkgs/nixos/doc/manual/release-notes/rl-1903.xml
+++ b/nixpkgs/nixos/doc/manual/release-notes/rl-1903.xml
@@ -173,7 +173,7 @@
      <listitem>
       <para>
        For users of a daemon-less Nix installation on Linux or macOS, you can
-       upgrade Nix by running <command>curl https://nixos.org/nix/install |
+       upgrade Nix by running <command>curl -L https://nixos.org/nix/install |
        sh</command>, or prior to doing a channel update, running
        <command>nix-env -iA nix</command>.
       </para>
diff --git a/nixpkgs/nixos/doc/manual/release-notes/rl-2003.xml b/nixpkgs/nixos/doc/manual/release-notes/rl-2003.xml
index 393a9286ca4f..87f122856194 100644
--- a/nixpkgs/nixos/doc/manual/release-notes/rl-2003.xml
+++ b/nixpkgs/nixos/doc/manual/release-notes/rl-2003.xml
@@ -792,11 +792,11 @@ users.users.me =
      The <option>services.xserver.displayManager.auto</option> module has been removed.
      It was only intended for use in internal NixOS tests, and gave the false impression
      of it being a special display manager when it's actually LightDM.
-     Please use the <xref linkend="opt-services.xserver.displayManager.lightdm.autoLogin"/> options instead,
+     Please use the <option>services.xserver.displayManager.lightdm.autoLogin</option> options instead,
      or any other display manager in NixOS as they all support auto-login. If you used this module specifically
      because it permitted root auto-login you can override the lightdm-autologin pam module like:
 <programlisting>
-<link xlink:href="#opt-security.pam.services._name__.text">security.pam.services.lightdm-autologin.text</link> = lib.mkForce ''
+<link xlink:href="#opt-security.pam.services._name_.text">security.pam.services.lightdm-autologin.text</link> = lib.mkForce ''
     auth     requisite pam_nologin.so
     auth     required  pam_succeed_if.so quiet
     auth     required  pam_permit.so
diff --git a/nixpkgs/nixos/doc/manual/release-notes/rl-2009.xml b/nixpkgs/nixos/doc/manual/release-notes/rl-2009.xml
index 9bbbecc05692..511276bcaab3 100644
--- a/nixpkgs/nixos/doc/manual/release-notes/rl-2009.xml
+++ b/nixpkgs/nixos/doc/manual/release-notes/rl-2009.xml
@@ -27,6 +27,18 @@
     <para>GNOME desktop environment was upgraded to 3.36, see its <link xlink:href="https://help.gnome.org/misc/release-notes/3.36/">release notes</link>.</para>
    </listitem>
    <listitem>
+     <para>
+     The Cinnamon desktop environment (v4.6) has been added. <varname>services.xserver.desktopManager.cinnamon.enable = true;</varname> to try it out!
+     Remember that, with any new feature it's possible you could run into issues, so please send all support requests to <link xlink:href="https://github.com/NixOS/nixpkgs/issues">github.com/NixOS/nixpkgs</link> to notify the maintainers.
+     </para>
+   </listitem>
+   <listitem>
+    <para>
+      Quickly configure a complete, private, self-hosted video
+      conferencing solution with the new Jitsi Meet module.
+    </para>
+   </listitem>
+   <listitem>
     <para>
     <package>maxx</package> package removed along with <varname>services.xserver.desktopManager.maxx</varname> module.
     Please migrate to <package>cdesktopenv</package> and <varname>services.xserver.desktopManager.cde</varname> module.
@@ -44,6 +56,11 @@
    </listitem>
    <listitem>
     <para>
+     PHP 7.2 is no longer supported due to upstream not supporting this version for the entire lifecycle of the 20.09 release.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
      Python 3 now defaults to Python 3.8 instead of 3.7.
     </para>
    </listitem>
@@ -109,6 +126,105 @@ systemd.services.mysql.serviceConfig.ProtectHome = lib.mkForce "read-only";
 systemd.services.mysql.serviceConfig.ReadWritePaths = [ "/var/data" ];
 </programlisting>
     </para>
+    <para>
+      The MySQL service no longer runs its <literal>systemd</literal> service startup script as <literal>root</literal> anymore. A dedicated non <literal>root</literal>
+      super user account is required for operation. This means users with an existing MySQL or MariaDB database server are required to run the following SQL statements
+      as a super admin user before upgrading:
+<programlisting>
+CREATE USER IF NOT EXISTS 'mysql'@'localhost' identified with unix_socket;
+GRANT ALL PRIVILEGES ON *.* TO 'mysql'@'localhost' WITH GRANT OPTION;
+</programlisting>
+      If you use MySQL instead of MariaDB please replace <literal>unix_socket</literal> with <literal>auth_socket</literal>. If you have changed the value of <xref linkend="opt-services.mysql.user"/>
+      from the default of <literal>mysql</literal> to a different user please change <literal>'mysql'@'localhost'</literal> to the corresponding user instead.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      The new option <link linkend="opt-documentation.man.generateCaches">documentation.man.generateCaches</link>
+      has been added to automatically generate the <literal>man-db</literal> caches, which are needed by utilities
+      like <command>whatis</command> and <command>apropos</command>. The caches are generated during the build of
+      the NixOS configuration: since this can be expensive when a large number of packages are installed, the
+      feature is disabled by default.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     <varname>services.postfix.sslCACert</varname> was replaced by <varname>services.postfix.tlsTrustedAuthorities</varname> which now defaults to system certificate authorities.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      Subordinate GID and UID mappings are now set up automatically for all normal users.
+      This will make container tools like Podman work as non-root users out of the box.
+    </para>
+   </listitem>
+   <listitem>
+     <para>
+       The various documented workarounds to use steam have been converted to a module. <varname>programs.steam.enable</varname> enables steam, controller support and the workarounds.
+     </para>
+   </listitem>
+   <listitem>
+     <para>
+       Support for built-in LCDs in various pieces of Logitech hardware (keyboards and USB speakers). <varname>hardware.logitech.lcd.enable</varname> enables support for all hardware supported by the g15daemon project.
+     </para>
+   </listitem>
+   <listitem>
+    <para>
+      Zabbix now defaults to 5.0, updated from 4.4. Please carefully read through
+      <link xlink:href="https://www.zabbix.com/documentation/current/manual/installation/upgrade/sources">the upgrade guide</link>
+      and apply any changes required. Be sure to take special note of the section on
+      <link xlink:href="https://www.zabbix.com/documentation/current/manual/installation/upgrade_notes_500#enabling_extended_range_of_numeric_float_values">enabling extended range of numeric (float) values</link>
+      as you will need to apply this database migration manually.
+    </para>
+    <para>
+      If you are using Zabbix Server with a MySQL or MariaDB database you should note that using a character set of <literal>utf8</literal> and a collate of <literal>utf8_bin</literal> has become mandatory with
+      this release. See the upstream <link xlink:href="https://support.zabbix.com/browse/ZBX-17357">issue</link> for further discussion. Before upgrading you should check the character set and collation used by
+      your database and ensure they are correct:
+<programlisting>
+  SELECT
+    default_character_set_name,
+    default_collation_name
+  FROM
+    information_schema.schemata
+  WHERE
+    schema_name = 'zabbix';
+</programlisting>
+      If these values are not correct you should take a backup of your database and convert the character set and collation as required. Here is an
+      <link xlink:href="https://www.zabbix.com/forum/zabbix-help/396573-reinstall-after-upgrade?p=396891#post396891">example</link> of how to do so, taken from
+      the Zabbix forums:
+<programlisting>
+  ALTER DATABASE `zabbix` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
+
+  -- the following will produce a list of SQL commands you should subsequently execute
+  SELECT CONCAT("ALTER TABLE ", TABLE_NAME," CONVERT TO CHARACTER SET utf8 COLLATE utf8_bin;") AS ExecuteTheString
+  FROM information_schema.`COLUMNS`
+  WHERE table_schema = "zabbix" AND COLLATION_NAME = "utf8_general_ci";
+</programlisting>
+    </para>
+   </listitem>
+   <listitem>
+     <para>
+      The NixOS module system now supports freeform modules as a mix between <literal>types.attrsOf</literal> and <literal>types.submodule</literal>. These allow you to explicitly declare a subset of options while still permitting definitions without an associated option. See <xref linkend='sec-freeform-modules'/> for how to use them.
+     </para>
+   </listitem>
+   <listitem>
+     <para>
+       The GRUB module gained support for basic password protection, which
+       allows to restrict non-default entries in the boot menu to one or more
+       users. The users and passwords are defined via the option
+       <option>boot.loader.grub.users</option>.
+       Note: Password support is only avaiable in GRUB version 2.
+     </para>
+   </listitem>
+   <listitem>
+     <para>
+       Following its deprecation in 20.03, the Perl NixOS test driver has been removed.
+       All remaining tests have been ported to the Python test framework.
+       Code outside nixpkgs using <filename>make-test.nix</filename> or
+       <filename>testing.nix</filename> needs to be ported to
+       <filename>make-test-python.nix</filename> and
+       <filename>testing-python.nix</filename> respectively.
+     </para>
    </listitem>
   </itemizedlist>
  </section>
@@ -129,6 +245,11 @@ systemd.services.mysql.serviceConfig.ReadWritePaths = [ "/var/data" ];
     <para>
       There is a new <xref linkend="opt-security.doas.enable"/> module that provides <command>doas</command>, a lighter alternative to <command>sudo</command> with many of the same features.
     </para>
+  </listitem>
+  <listitem>
+    <para>
+      <link xlink:href="https://hercules-ci.com">Hercules CI</link> Agent is a specialized build agent for projects built with Nix. See the <link xlink:href="https://nixos.org/nixos/options.html#services.hercules-ci-agent">options</link> and <link xlink:href="https://docs.hercules-ci.com/hercules-ci/getting-started/#deploy-agent">setup</link>.
+    </para>
    </listitem>
   </itemizedlist>
 
@@ -153,12 +274,10 @@ systemd.services.mysql.serviceConfig.ReadWritePaths = [ "/var/data" ];
      in the source tree for downloaded modules instead of using go's <link
      xlink:href="https://golang.org/cmd/go/#hdr-Module_proxy_protocol">module
      proxy protocol</link>. This storage format is simpler and therefore less
-     likekly to break with future versions of go. As a result
+     likely to break with future versions of go. As a result
      <literal>buildGoModule</literal> switched from
      <literal>modSha256</literal> to the <literal>vendorSha256</literal>
-     attribute to pin fetched version data. <literal>buildGoModule</literal>
-     still accepts <literal>modSha256</literal> with a warning, but support will
-     be removed in the next release.
+     attribute to pin fetched version data.
     </para>
    </listitem>
    <listitem>
@@ -167,7 +286,7 @@ systemd.services.mysql.serviceConfig.ReadWritePaths = [ "/var/data" ];
      <link xlink:href="https://grafana.com/docs/grafana/latest/guides/whats-new-in-v6-4/">deprecated in Grafana</link>
      and the <package>phantomjs</package> project is
      <link xlink:href="https://github.com/ariya/phantomjs/issues/15344#issue-302015362">currently unmaintained</link>.
-     It can still be enabled by providing <literal>phantomJsSupport = true</literal> to the package instanciation:
+     It can still be enabled by providing <literal>phantomJsSupport = true</literal> to the package instantiation:
 <programlisting>{
   services.grafana.package = pkgs.grafana.overrideAttrs (oldAttrs: rec {
     phantomJsSupport = false;
@@ -179,7 +298,7 @@ systemd.services.mysql.serviceConfig.ReadWritePaths = [ "/var/data" ];
     <para>
       The <link linkend="opt-services.supybot.enable">supybot</link> module now uses <literal>/var/lib/supybot</literal>
       as its default <link linkend="opt-services.supybot.stateDir">stateDir</link> path if <literal>stateVersion</literal>
-      is 20.09 or higher. It also enables number of
+      is 20.09 or higher. It also enables a number of
       <link xlink:href="https://www.freedesktop.org/software/systemd/man/systemd.exec.html#Sandboxing">systemd sandboxing options</link>
       which may possibly interfere with some plugins. If this is the case you can disable the options through attributes in
       <option>systemd.services.supybot.serviceConfig</option>.
@@ -288,6 +407,20 @@ php.override {
      </para>
    </listitem>
    <listitem>
+    <para>
+     The ACME module has been overhauled for simplicity and maintainability.
+     Cert generation now implicitly uses the <literal>acme</literal>
+     user, and the <literal>security.acme.certs._name_.user</literal> option
+     has been removed. Instead, certificate access from other services is now
+     managed through group permissions. The module no longer runs lego
+     twice under certain conditions, and will correctly renew certificates if
+     their configuration is changed. Services which reload nginx and httpd after
+     certificate renewal are now properly configured too so you no longer have
+     to do this manually if you are using HTTPS enabled virtual hosts. A mechanism
+     for regenerating certs on demand has also been added and documented.
+    </para>
+   </listitem>
+   <listitem>
      <para>
       Gollum received a major update to version 5.x and you may have to change
       some links in your wiki when migrating from gollum 4.x. More information
@@ -306,8 +439,8 @@ php.override {
    </listitem>
    <listitem>
      <para>
-       Add option <literal>services.nginx.enableSandbox</literal> to starting Nginx web server with additional sandbox/hardening options.
-       By default, write access to <literal>services.nginx.stateDir</literal> is allowed. To allow writing to other folders,
+       Nginx web server now starting with additional sandbox/hardening options. By default, write access
+       to <literal>services.nginx.stateDir</literal> is allowed. To allow writing to other folders,
        use <literal>systemd.services.nginx.serviceConfig.ReadWritePaths</literal>
        <programlisting>
 systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
@@ -490,6 +623,217 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
      <link xlink:href="https://github.com/NixOS/nixpkgs/issues/89205">#89205</link>.
     </para>
    </listitem>
+   <listitem>
+    <para>
+     In the <literal>resilio</literal> module, <xref linkend="opt-services.resilio.httpListenAddr"/> has been changed to listen to <literal>[::1]</literal> instead of <literal>0.0.0.0</literal>.
+     </para>
+   </listitem>
+   <listitem>
+    <para>
+     Users of <link xlink:href="http://openafs.org">OpenAFS 1.6</link> must
+     upgrade their services to OpenAFS 1.8! In this release, the OpenAFS package
+     version 1.6.24 is marked broken but can be used during transition to
+     OpenAFS 1.8.x. Use the options
+     <option>services.openafsClient.packages.module</option>,
+     <option>services.openafsClient.packages.programs</option> and
+     <option>services.openafsServer.package</option> to select a different
+     OpenAFS package. OpenAFS 1.6 will be removed in the next release. The
+     package <literal>openafs</literal> and the service options will then
+     silently point to the OpenAFS 1.8 release.
+    </para>
+    <para>
+     See also the OpenAFS <link
+     xlink:href="http://docs.openafs.org/AdminGuide/index.html">Administrator
+     Guide</link> for instructions. Beware of the following when updating
+     servers:
+     <itemizedlist>
+      <listitem>
+       <para>
+       The storage format of the server key has changed and the key must be converted before running the new release.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+       When updating multiple database servers, turn off the database servers
+       from the highest IP down to the lowest with resting periods in
+       between. Start up in reverse order. Do not concurrently run database
+       servers working with different OpenAFS releases!
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+       Update servers first, then clients.
+       </para>
+      </listitem>
+     </itemizedlist>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Radicale's default package has changed from 2.x to 3.x. An upgrade
+     checklist can be found
+     <link xlink:href="https://github.com/Kozea/Radicale/blob/3.0.x/NEWS.md#upgrade-checklist">here</link>.
+     You can use the newer version in the NixOS service by setting the
+     <literal>package</literal> to <literal>radicale3</literal>, which is done
+     automatically if <literal>stateVersion</literal> is 20.09 or higher.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      <literal>udpt</literal> experienced a complete rewrite from C++ to rust. The configuration format changed from ini to toml.
+      The new configuration documentation can be found at
+      <link xlink:href="https://naim94a.github.io/udpt/config.html">the official website</link> and example
+      configuration is packaged in <literal>${udpt}/share/udpt/udpt.toml</literal>.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     We now have a unified <xref linkend="opt-services.xserver.displayManager.autoLogin"/> option interface
+     to be used for every display-manager in NixOS.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The <literal>bitcoind</literal> module has changed to multi-instance, using submodules.
+     Therefore, it is now mandatory to name each instance.
+     To use this new multi-instance config with an existing bitcoind data directory and user,
+     you have to adjust the original config, e.g.:
+<programlisting>
+  services.bitcoind = {
+    enable = true;
+    extraConfig = "...";
+    ...
+  };
+</programlisting>
+     To something similar:
+<programlisting>
+  services.bitcoind.mainnet = {
+    enable = true;
+    dataDir = "/var/lib/bitcoind";
+    user = "bitcoin";
+    extraConfig = "...";
+    ...
+  };
+</programlisting>
+     The key settings are:
+     <itemizedlist>
+      <listitem>
+       <para>
+        <literal>dataDir</literal> - to continue using the same data directory.
+       </para>
+      </listitem>
+      <listitem>
+       <para>
+        <literal>user</literal> - to continue using the same user so that bitcoind maintains access to its files.
+       </para>
+      </listitem>
+     </itemizedlist>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      Graylog introduced a change in the LDAP server certificate validation behaviour for version 3.3.3 which might break existing setups.
+      When updating Graylog from a version before 3.3.3 make sure to check the Graylog <link xlink:href="https://www.graylog.org/post/announcing-graylog-v3-3-3">release info</link> for information on how to avoid the issue.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The <literal>dokuwiki</literal> module has changed to multi-instance, using submodules.
+     Therefore, it is now mandatory to name each instance. Moreover, forcing SSL by default has been dropped, so
+     <literal>nginx.forceSSL</literal> and <literal>nginx.enableACME</literal> are no longer set to <literal>true</literal>.
+     To continue using your service with the original SSL settings, you have to adjust the original config, e.g.:
+<programlisting>
+services.dokuwiki = {
+  enable = true;
+  ...
+};
+</programlisting>
+     To something similar:
+<programlisting>
+services.dokuwiki."mywiki" = {
+  enable = true;
+  nginx = {
+    forceSSL = true;
+    enableACME = true;
+  };
+  ...
+};
+</programlisting>
+     The base package has also been upgraded to the 2020-07-29 "Hogfather" release. Plugins might be incompatible or require upgrading.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      The <xref linkend="opt-services.postgresql.dataDir"/> option is now set to <literal>"/var/lib/postgresql/${cfg.package.psqlSchema}"</literal> regardless of your
+      <xref linkend="opt-system.stateVersion"/>. Users with an existing postgresql install that have a <xref linkend="opt-system.stateVersion"/> of <literal>17.03</literal> or below
+      should double check what the value of their <xref linkend="opt-services.postgresql.dataDir"/> option is (<literal>/var/db/postgresql</literal>) and then explicitly
+      set this value to maintain compatibility:
+<programlisting>
+services.postgresql.dataDir = "/var/db/postgresql";
+</programlisting>
+    </para>
+    <para>
+     The postgresql module now expects there to be a database super user account called <literal>postgres</literal> regardless of your <xref linkend="opt-system.stateVersion"/>. Users
+     with an existing postgresql install that have a <xref linkend="opt-system.stateVersion"/> of <literal>17.03</literal> or below should run the following SQL statements as a
+     database super admin user before upgrading:
+<programlisting>
+CREATE ROLE postgres LOGIN SUPERUSER;
+</programlisting>
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The USBGuard module now removes options and instead hardcodes values for <literal>IPCAccessControlFiles</literal>, <literal>ruleFiles</literal>, and <literal>auditFilePath</literal>. Audit logs can be found in the journal.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The NixOS module system now evaluates option definitions more strictly, allowing it to detect a larger set of problems.
+     As a result, what previously evaluated may not do so anymore.
+     See <link xlink:href="https://github.com/NixOS/nixpkgs/pull/82743#issuecomment-674520472">the PR that changed this</link> for more info.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     For NixOS configuration options, the type <literal>loaOf</literal>, after
+     its initial deprecation in release 20.03, has been removed. In NixOS and
+     Nixpkgs options using this type have been converted to <literal>attrsOf</literal>.
+     For more information on this change have look at these links:
+     <link xlink:href="https://github.com/NixOS/nixpkgs/issues/1800">issue #1800</link>,
+     <link xlink:href="https://github.com/NixOS/nixpkgs/pull/63103">PR #63103</link>.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      <literal>config.systemd.services.${name}.path</literal> now returns a list of paths instead of a colon-separated string.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Caddy module now uses Caddy v2 by default. Caddy v1 can still be used by setting
+     <xref linkend="opt-services.caddy.package"/> to <literal>pkgs.caddy1</literal>.
+    </para>
+    <para>
+     New option <xref linkend="opt-services.caddy.adapter"/> has been added.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The <link linkend="opt-services.jellyfin.enable">jellyfin</link> module will use and stay on the Jellyfin version <literal>10.5.5</literal>
+     if <literal>stateVersion</literal> is lower than <literal>20.09</literal>. This is because significant changes were made to the database schema,
+     and it is highly recommended to backup your instance before upgrading. After making your backup, you can upgrade to the latest version either by
+     setting your <literal>stateVersion</literal> to <literal>20.09</literal> or higher, or set the <option>services.jellyfin.package</option> to
+     <literal>pkgs.jellyfin</literal>. If you do not wish to upgrade Jellyfin, but want to change your <literal>stateVersion</literal>, you can set
+     the value of <option>services.jellyfin.package</option> to <literal>pkgs.jellyfin_10_5</literal>.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The <literal>security.rngd</literal> service is now disabled by default.
+     This choice was made because there's krngd in the linux kernel space making it (for most usecases)
+     functionally redundent.
+    </para>
+   </listitem>
   </itemizedlist>
  </section>
 
@@ -518,6 +862,17 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
      of the default <literal>out</literal> output anymore - if you relied on the
      <literal>notmuch-emacs-mua</literal> binary or the emacs lisp files, access them via
      the <literal>notmuch.emacs</literal> output.
+
+     Device tree overlay support was improved in
+     <link xlink:href="https://github.com/NixOS/nixpkgs/pull/79370">#79370</link>
+     and now uses <xref linkend="opt-hardware.deviceTree.kernelPackage"/>
+     instead of <option>hardware.deviceTree.base</option>.
+
+     <xref linkend="opt-hardware.deviceTree.overlays"/> configuration was
+     extended to support <literal>.dts</literal> files with symbols.
+
+     Device trees can now be filtered by setting
+     <xref linkend="opt-hardware.deviceTree.filter"/> option.
     </para>
    </listitem>
    <listitem>
@@ -527,6 +882,11 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
    </listitem>
    <listitem>
     <para>
+     <literal>buildGoModule</literal> <literal>doCheck</literal> now defaults to <literal>true</literal>.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
      Packages built using <literal>buildRustPackage</literal> now use <literal>release</literal>
      mode for the <literal>checkPhase</literal> by default.
     </para>
@@ -555,6 +915,12 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
    </listitem>
    <listitem>
     <para>
+    The installer now enables sshd by default. This improves installation on headless machines especially ARM single-board-computer.
+    To login through ssh, either a password or an ssh key must be set for the root user or the nixos user.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
      The scripted networking system now uses <literal>.link</literal> files in
      <literal>/etc/systemd/network</literal> to configure mac address and link MTU,
      instead of the sometimes buggy <literal>network-link-*</literal> units, which
@@ -584,6 +950,37 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
    </listitem>
    <listitem>
     <para>
+     The <literal>services.transmission</literal> module
+     was enhanced with the new options:
+     <xref linkend="opt-services.transmission.credentialsFile"/>,
+     <xref linkend="opt-services.transmission.openFirewall"/>,
+     and <xref linkend="opt-services.transmission.performanceNetParameters"/>.
+    </para>
+    <para>
+     <literal>transmission-daemon</literal> is now started with additional systemd sandbox/hardening options for better security.
+     Please <link xlink:href="https://github.com/NixOS/nixpkgs/issues">report</link>
+     any use case where this is not working well.
+     In particular, the <literal>RootDirectory</literal> option newly set
+     forbids uploading or downloading a torrent outside of the default directory
+     configured at <link linkend="opt-services.transmission.settings">settings.download-dir</link>.
+     If you really need Transmission to access other directories,
+     you must include those directories into the <literal>BindPaths</literal> of the service:
+<programlisting>
+systemd.services.transmission.serviceConfig.BindPaths = [ "/path/to/alternative/download-dir" ];
+</programlisting>
+    </para>
+    <para>
+     Also, connection to the RPC (Remote Procedure Call) of <literal>transmission-daemon</literal>
+     is now only available on the local network interface by default.
+     Use:
+<programlisting>
+services.transmission.settings.rpc-bind-address = "0.0.0.0";
+</programlisting>
+     to get the previous behavior of listening on all network interfaces.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
      With this release <literal>systemd-networkd</literal> (when enabled through <xref linkend="opt-networking.useNetworkd"/>)
      has it's netlink socket created through a <literal>systemd.socket</literal> unit. This gives us control over
      socket buffer sizes and other parameters. For larger setups where networkd has to create a lot of (virtual)
@@ -642,6 +1039,120 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
       <package>netbeans</package> was upgraded to 12.0 and now defaults to OpenJDK 11. This might cause problems if your projects depend on packages that were removed in Java 11.
     </para>
    </listitem>
+   <listitem>
+    <para>
+     <package>nextcloud</package> has been updated to <link xlink:href="https://nextcloud.com/blog/nextcloud-hub-brings-productivity-to-home-office/">v19</link>.
+    </para>
+    <para>
+     If you have an existing installation, please make sure that you're on
+     <package>nextcloud18</package> before upgrading to <package>nextcloud19</package>
+     since Nextcloud doesn't support upgrades across multiple major versions.
+    </para>
+     <para>
+       The <literal>nixos-run-vms</literal> script now deletes the
+       previous run machines states on test startup. You can use the
+       <literal>--keep-vm-state</literal> flag to match the previous
+       behaviour and keep the same VM state between different test runs.
+     </para>
+   </listitem>
+   <listitem>
+    <para>
+     The <link linkend="opt-nix.buildMachines">nix.buildMachines</link> option is now type-checked.
+     There are no functional changes, however this may require updating some configurations to use correct types for all attributes.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     The <literal>fontconfig</literal> module stopped generating fontconfig 2.10.x config and cache.
+     Fontconfig 2.10.x was removed from Nixpkgs - it hasn't been used in any nixpkgs package anymore.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+     Nginx module <literal>nginxModules.fastcgi-cache-purge</literal> renamed to official name <literal>nginxModules.cache-purge</literal>.
+     Nginx module <literal>nginxModules.ngx_aws_auth</literal> renamed to official name <literal>nginxModules.aws-auth</literal>.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      The option <option>defaultPackages</option> was added. It installs the packages <package>perl</package>, <package>rsync</package> and <package>strace</package> for now. They were added unconditionally to <option>systemPackages</option> before, but are not strictly necessary for a minimal NixOS install. You can set it to an empty list to have a more minimal system. Be aware that some functionality might still have an impure dependency on those packages, so things might break.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      The <literal>undervolt</literal> option no longer needs to apply its
+      settings every 30s. If they still become undone, open an issue and restore
+      the previous behaviour using <literal>undervolt.useTimer</literal>.
+    </para>
+   </listitem>
+   <listitem>
+     <para>
+      Agda has been heavily reworked.
+      <itemizedlist>
+	<listitem>
+	  <para>
+	    <literal>agda.mkDerivation</literal> has been heavily changed and
+	    is now located at <package>agdaPackages.mkDerivation</package>.
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    New top-level packages <package>agda</package> and
+	    <literal>agda.withPackages</literal> have been added, the second
+	    of which sets up agda with access to chosen libraries.
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    All agda libraries now live under
+	    <literal>agdaPackages</literal>.
+	  </para>
+	</listitem>
+	<listitem>
+	  <para>
+	    Many broken libraries have been removed.
+	  </para>
+	</listitem>
+      </itemizedlist>
+      See the <link
+      xlink:href="https://nixos.org/nixpkgs/manual/#agda">new
+      documentation</link> for more information.
+    </para>
+   </listitem>
+   <listitem>
+    <para>
+      The <literal>deepin</literal> package set has been removed from
+      nixpkgs. It was a work in progress to package the
+      <link xlink:href="https://www.deepin.org/en/dde/">Deepin Desktop Environment (DDE)</link>,
+      including libraries, tools and applications, and it was still
+      missing a service to lauch the desktop environment. It has shown
+      to no longer be a feasible goal due to reasons discussed in
+      <link xlink:href="https://github.com/NixOS/nixpkgs/issues/94870">issue #94870</link>.
+      The package <literal>netease-cloud-music</literal> has also been
+      removed, as it depends on libraries from deepin.
+    </para>
+   </listitem>
+   <listitem>
+     <para>
+       The <literal>opendkim</literal> module now uses systemd sandboxing features
+       to limit the exposure of the system towards the opendkim service.
+     </para>
+   </listitem>
+  </itemizedlist>
+  <itemizedlist>
+   <listitem>
+    <para />
+    <para>
+        Kubernetes has been upgraded to 1.19.1, which also means that the
+        golang version to build it has been bumped to 1.15. This may have
+        consequences for your existing clusters and their certificates. Please
+        consider
+        <link xlink:href="https://relnotes.k8s.io/?markdown=93264">
+            the release notes for Kubernetes 1.19 carefully
+        </link>
+        before upgrading.
+    </para>
+   </listitem>
   </itemizedlist>
  </section>
 </section>
diff --git a/nixpkgs/nixos/doc/manual/release-notes/rl-2103.xml b/nixpkgs/nixos/doc/manual/release-notes/rl-2103.xml
new file mode 100644
index 000000000000..eccf2b69dad9
--- /dev/null
+++ b/nixpkgs/nixos/doc/manual/release-notes/rl-2103.xml
@@ -0,0 +1,80 @@
+<section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-release-21.03">
+ <title>Release 21.03 (“Okapi”, 2021.03/??)</title>
+
+ <section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-release-21.03-highlights">
+  <title>Highlights</title>
+
+  <para>
+   In addition to numerous new and upgraded packages, this release has the
+   following highlights:
+  </para>
+
+  <itemizedlist>
+   <listitem>
+    <para>
+     Support is planned until the end of October 2021, handing over to 21.09.
+    </para>
+   </listitem>
+  </itemizedlist>
+ </section>
+
+ <section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-release-21.03-new-services">
+  <title>New Services</title>
+
+  <para>
+   The following new services were added since the last release:
+  </para>
+
+  <itemizedlist>
+   <listitem>
+    <para />
+   </listitem>
+  </itemizedlist>
+
+ </section>
+
+ <section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-release-21.03-incompatibilities">
+  <title>Backward Incompatibilities</title>
+
+  <para>
+   When upgrading from a previous release, please be aware of the following
+   incompatible changes:
+  </para>
+
+  <itemizedlist>
+   <listitem>
+    <para />
+   </listitem>
+  </itemizedlist>
+ </section>
+
+ <section xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="sec-release-21.03-notable-changes">
+  <title>Other Notable Changes</title>
+
+  <itemizedlist>
+   <listitem>
+    <para />
+   </listitem>
+  </itemizedlist>
+ </section>
+</section>
diff --git a/nixpkgs/nixos/lib/build-vms.nix b/nixpkgs/nixos/lib/build-vms.nix
index 1bad63b9194c..b1575fc13bbd 100644
--- a/nixpkgs/nixos/lib/build-vms.nix
+++ b/nixpkgs/nixos/lib/build-vms.nix
@@ -3,8 +3,10 @@
   minimal ? false
 , # Ignored
   config ? null
-  # Nixpkgs, for qemu, lib and more
-, pkgs
+, # Nixpkgs, for qemu, lib and more
+  pkgs
+, # !!! See comment about args in lib/modules.nix
+  specialArgs ? {}
 , # NixOS configuration to add to the VMs
   extraConfigurations ? []
 }:
@@ -31,7 +33,7 @@ rec {
     nodes: configurations:
 
     import ./eval-config.nix {
-      inherit system;
+      inherit system specialArgs;
       modules = configurations ++ extraConfigurations;
       baseModules =  (import ../modules/module-list.nix) ++
         [ ../modules/virtualisation/qemu-vm.nix
diff --git a/nixpkgs/nixos/lib/eval-config.nix b/nixpkgs/nixos/lib/eval-config.nix
index c8824c2690d3..15429a7160c5 100644
--- a/nixpkgs/nixos/lib/eval-config.nix
+++ b/nixpkgs/nixos/lib/eval-config.nix
@@ -24,11 +24,11 @@
   check ? true
 , prefix ? []
 , lib ? import ../../lib
+, extraModules ? let e = builtins.getEnv "NIXOS_EXTRA_MODULE_PATH";
+                 in if e == "" then [] else [(import e)]
 }:
 
 let extraArgs_ = extraArgs; pkgs_ = pkgs;
-    extraModules = let e = builtins.getEnv "NIXOS_EXTRA_MODULE_PATH";
-                   in if e == "" then [] else [(import e)];
 in
 
 let
diff --git a/nixpkgs/nixos/lib/make-disk-image.nix b/nixpkgs/nixos/lib/make-disk-image.nix
index 9364aab32770..8aa606a56af8 100644
--- a/nixpkgs/nixos/lib/make-disk-image.nix
+++ b/nixpkgs/nixos/lib/make-disk-image.nix
@@ -5,21 +5,32 @@
   config
 
 , # The size of the disk, in megabytes.
-  diskSize
+  # if "auto" size is calculated based on the contents copied to it and
+  #   additionalSpace is taken into account.
+  diskSize ? "auto"
 
-  # The files and directories to be placed in the target file system.
+, # additional disk space to be added to the image if diskSize "auto"
+  # is used
+  additionalSpace ? "512M"
+
+, # size of the boot partition, is only used if partitionTableType is
+  # either "efi" or "hybrid"
+  bootSize ? "256M"
+
+, # The files and directories to be placed in the target file system.
   # This is a list of attribute sets {source, target} where `source'
   # is the file system object (regular file or directory) to be
   # grafted in the file system at path `target'.
-, contents ? []
+  contents ? []
 
 , # Type of partition table to use; either "legacy", "efi", or "none".
   # For "efi" images, the GPT partition table is used and a mandatory ESP
   #   partition of reasonable size is created in addition to the root partition.
-  #   If `installBootLoader` is true, GRUB will be installed in EFI mode.
   # For "legacy", the msdos partition table is used and a single large root
-  #   partition is created. If `installBootLoader` is true, GRUB will be
-  #   installed in legacy mode.
+  #   partition is created.
+  # For "hybrid", the GPT partition table is used and a mandatory ESP
+  #   partition of reasonable size is created in addition to the root partition.
+  #   Also a legacy MBR will be present.
   # For "none", no partition table is created. Enabling `installBootLoader`
   #   most likely fails as GRUB will probably refuse to install.
   partitionTableType ? "legacy"
@@ -43,7 +54,7 @@
   format ? "raw"
 }:
 
-assert partitionTableType == "legacy" || partitionTableType == "efi" || partitionTableType == "none";
+assert partitionTableType == "legacy" || partitionTableType == "efi" || partitionTableType == "hybrid" || partitionTableType == "none";
 # We use -E offset=X below, which is only supported by e2fsprogs
 assert partitionTableType != "none" -> fsType == "ext4";
 
@@ -60,11 +71,12 @@ let format' = format; in let
     vdi   = "vdi";
     vpc   = "vhd";
     raw   = "img";
-  }.${format};
+  }.${format} or format;
 
   rootPartition = { # switch-case
     legacy = "1";
     efi = "2";
+    hybrid = "3";
   }.${partitionTableType};
 
   partitionDiskScript = { # switch-case
@@ -76,9 +88,18 @@ let format' = format; in let
     efi = ''
       parted --script $diskImage -- \
         mklabel gpt \
-        mkpart ESP fat32 8MiB 256MiB \
+        mkpart ESP fat32 8MiB ${bootSize} \
         set 1 boot on \
-        mkpart primary ext4 256MiB -1
+        mkpart primary ext4 ${bootSize} -1
+    '';
+    hybrid = ''
+      parted --script $diskImage -- \
+        mklabel gpt \
+        mkpart ESP fat32 8MiB ${bootSize} \
+        set 1 boot on \
+        mkpart no-fs 0 1024KiB \
+        set 2 bios_grub on \
+        mkpart primary ext4 ${bootSize} -1
     '';
     none = "";
   }.${partitionTableType};
@@ -129,19 +150,6 @@ let format' = format; in let
     }
 
     mkdir $out
-    diskImage=nixos.raw
-    truncate -s ${toString diskSize}M $diskImage
-
-    ${partitionDiskScript}
-
-    ${if partitionTableType != "none" then ''
-      # Get start & length of the root partition in sectors to $START and $SECTORS.
-      eval $(partx $diskImage -o START,SECTORS --nr ${rootPartition} --pairs)
-
-      mkfs.${fsType} -F -L ${label} $diskImage -E offset=$(sectorsToBytes $START) $(sectorsToKilobytes $SECTORS)K
-    '' else ''
-      mkfs.${fsType} -F -L ${label} $diskImage
-    ''}
 
     root="$PWD/root"
     mkdir -p $root
@@ -181,10 +189,36 @@ let format' = format; in let
     export NIX_STATE_DIR=$TMPDIR/state
     nix-store --load-db < ${closureInfo}/registration
 
+    chmod 755 "$TMPDIR"
     echo "running nixos-install..."
     nixos-install --root $root --no-bootloader --no-root-passwd \
       --system ${config.system.build.toplevel} --channel ${channelSources} --substituters ""
 
+    diskImage=nixos.raw
+
+    ${if diskSize == "auto" then ''
+      ${if partitionTableType == "efi" || partitionTableType == "hybrid" then ''
+        additionalSpace=$(( ($(numfmt --from=iec '${additionalSpace}') + $(numfmt --from=iec '${bootSize}')) / 1000 ))
+      '' else ''
+        additionalSpace=$(( $(numfmt --from=iec '${additionalSpace}') / 1000 ))
+      ''}
+      diskSize=$(( $(set -- $(du -d0 $root); echo "$1") + $additionalSpace ))
+      truncate -s "$diskSize"K $diskImage
+    '' else ''
+      truncate -s ${toString diskSize}M $diskImage
+    ''}
+
+    ${partitionDiskScript}
+
+    ${if partitionTableType != "none" then ''
+      # Get start & length of the root partition in sectors to $START and $SECTORS.
+      eval $(partx $diskImage -o START,SECTORS --nr ${rootPartition} --pairs)
+
+      mkfs.${fsType} -F -L ${label} $diskImage -E offset=$(sectorsToBytes $START) $(sectorsToKilobytes $SECTORS)K
+    '' else ''
+      mkfs.${fsType} -F -L ${label} $diskImage
+    ''}
+
     echo "copying staging root to image..."
     cptofs -p ${optionalString (partitionTableType != "none") "-P ${rootPartition}"} -t ${fsType} -i $diskImage $root/* /
   '';
@@ -218,7 +252,7 @@ in pkgs.vmTools.runInLinuxVM (
 
       # Create the ESP and mount it. Unlike e2fsprogs, mkfs.vfat doesn't support an
       # '-E offset=X' option, so we can't do this outside the VM.
-      ${optionalString (partitionTableType == "efi") ''
+      ${optionalString (partitionTableType == "efi" || partitionTableType == "hybrid") ''
         mkdir -p /mnt/boot
         mkfs.vfat -n ESP /dev/vda1
         mount /dev/vda1 /mnt/boot
diff --git a/nixpkgs/nixos/lib/make-ext4-fs.nix b/nixpkgs/nixos/lib/make-ext4-fs.nix
index 627ac324cf57..33dbc8f5ec46 100644
--- a/nixpkgs/nixos/lib/make-ext4-fs.nix
+++ b/nixpkgs/nixos/lib/make-ext4-fs.nix
@@ -17,7 +17,7 @@
 , e2fsprogs
 , libfaketime
 , perl
-, lkl
+, fakeroot
 }:
 
 let
@@ -26,7 +26,7 @@ in
 pkgs.stdenv.mkDerivation {
   name = "ext4-fs.img${lib.optionalString compressImage ".zst"}";
 
-  nativeBuildInputs = [ e2fsprogs.bin libfaketime perl lkl ]
+  nativeBuildInputs = [ e2fsprogs.bin libfaketime perl fakeroot ]
   ++ lib.optional compressImage zstd;
 
   buildCommand =
@@ -37,32 +37,34 @@ pkgs.stdenv.mkDerivation {
       ${populateImageCommands}
       )
 
-      # Add the closures of the top-level store objects.
-      storePaths=$(cat ${sdClosureInfo}/store-paths)
+      echo "Preparing store paths for image..."
+
+      # Create nix/store before copying path
+      mkdir -p ./rootImage/nix/store
+
+      xargs -I % cp -a --reflink=auto % -t ./rootImage/nix/store/ < ${sdClosureInfo}/store-paths
+      (
+        GLOBIGNORE=".:.."
+        shopt -u dotglob
+
+        for f in ./files/*; do
+            cp -a --reflink=auto -t ./rootImage/ "$f"
+        done
+      )
+
+      # Also include a manifest of the closures in a format suitable for nix-store --load-db
+      cp ${sdClosureInfo}/registration ./rootImage/nix-path-registration
 
       # Make a crude approximation of the size of the target image.
       # If the script starts failing, increase the fudge factors here.
-      numInodes=$(find $storePaths ./files | wc -l)
-      numDataBlocks=$(du -s -c -B 4096 --apparent-size $storePaths ./files | tail -1 | awk '{ print int($1 * 1.03) }')
+      numInodes=$(find ./rootImage | wc -l)
+      numDataBlocks=$(du -s -c -B 4096 --apparent-size ./rootImage | tail -1 | awk '{ print int($1 * 1.10) }')
       bytes=$((2 * 4096 * $numInodes + 4096 * $numDataBlocks))
       echo "Creating an EXT4 image of $bytes bytes (numInodes=$numInodes, numDataBlocks=$numDataBlocks)"
 
       truncate -s $bytes $img
-      faketime -f "1970-01-01 00:00:01" mkfs.ext4 -L ${volumeLabel} -U ${uuid} $img
-
-      # Also include a manifest of the closures in a format suitable for nix-store --load-db.
-      cp ${sdClosureInfo}/registration nix-path-registration
-      cptofs -t ext4 -i $img nix-path-registration /
-
-      # Create nix/store before copying paths
-      faketime -f "1970-01-01 00:00:01" mkdir -p nix/store
-      cptofs -t ext4 -i $img nix /
-
-      echo "copying store paths to image..."
-      cptofs -t ext4 -i $img $storePaths /nix/store/
 
-      echo "copying files to image..."
-      cptofs -t ext4 -i $img ./files/* /
+      faketime -f "1970-01-01 00:00:01" fakeroot mkfs.ext4 -L ${volumeLabel} -U ${uuid} -d ./rootImage $img
 
       export EXT2FS_NO_MTAB_OK=yes
       # I have ended up with corrupted images sometimes, I suspect that happens when the build machine's disk gets full during the build.
diff --git a/nixpkgs/nixos/lib/make-iso9660-image.nix b/nixpkgs/nixos/lib/make-iso9660-image.nix
index 12a6cf649966..6a0e0e7c635a 100644
--- a/nixpkgs/nixos/lib/make-iso9660-image.nix
+++ b/nixpkgs/nixos/lib/make-iso9660-image.nix
@@ -1,4 +1,4 @@
-{ stdenv, closureInfo, xorriso, syslinux
+{ stdenv, closureInfo, xorriso, syslinux, libossp_uuid
 
 , # The file name of the resulting ISO image.
   isoName ? "cd.iso"
@@ -48,7 +48,7 @@ assert usbBootable -> isohybridMbrImage != "";
 stdenv.mkDerivation {
   name = isoName;
   builder = ./make-iso9660-image.sh;
-  buildInputs = [ xorriso syslinux zstd ];
+  buildInputs = [ xorriso syslinux zstd libossp_uuid ];
 
   inherit isoName bootable bootImage compressImage volumeID efiBootImage efiBootable isohybridMbrImage usbBootable;
 
diff --git a/nixpkgs/nixos/lib/make-iso9660-image.sh b/nixpkgs/nixos/lib/make-iso9660-image.sh
index d64fe9a365e7..4740b05f9557 100644
--- a/nixpkgs/nixos/lib/make-iso9660-image.sh
+++ b/nixpkgs/nixos/lib/make-iso9660-image.sh
@@ -99,7 +99,12 @@ done
 
 mkdir -p $out/iso
 
+# daed2280-b91e-42c0-aed6-82c825ca41f3 is an arbitrary namespace, to prevent
+# independent applications from generating the same UUID for the same value.
+# (the chance of that being problematic seem pretty slim here, but that's how
+# version-5 UUID's work)
 xorriso="xorriso
+ -boot_image any gpt_disk_guid=$(uuid -v 5 daed2280-b91e-42c0-aed6-82c825ca41f3 $out | tr -d -)
  -as mkisofs
  -iso-level 3
  -volid ${volumeID}
@@ -118,15 +123,6 @@ xorriso="xorriso
 
 $xorriso -output $out/iso/$isoName
 
-if test -n "$usbBootable"; then
-    echo "Making image hybrid..."
-    if test -n "$efiBootable"; then
-        isohybrid --uefi $out/iso/$isoName
-    else
-        isohybrid $out/iso/$isoName
-    fi
-fi
-
 if test -n "$compressImage"; then
     echo "Compressing image..."
     zstd -T$NIX_BUILD_CORES --rm $out/iso/$isoName
diff --git a/nixpkgs/nixos/lib/make-options-doc/default.nix b/nixpkgs/nixos/lib/make-options-doc/default.nix
index 772b7d3add95..a1161621f0d4 100644
--- a/nixpkgs/nixos/lib/make-options-doc/default.nix
+++ b/nixpkgs/nixos/lib/make-options-doc/default.nix
@@ -36,7 +36,7 @@ let
     // lib.optionalAttrs (opt ? example) { example = substFunction opt.example; }
     // lib.optionalAttrs (opt ? default) { default = substFunction opt.default; }
     // lib.optionalAttrs (opt ? type) { type = substFunction opt.type; }
-    // lib.optionalAttrs (opt ? relatedPackages && opt.relatedPackages != []) { relatedPackages = genRelatedPackages opt.relatedPackages; }
+    // lib.optionalAttrs (opt ? relatedPackages && opt.relatedPackages != []) { relatedPackages = genRelatedPackages opt.relatedPackages opt.name; }
    );
 
   # Generate DocBook documentation for a list of packages. This is
@@ -48,7 +48,7 @@ let
   # - a list:    that will be interpreted as an attribute path from `pkgs`,
   # - an attrset: that can specify `name`, `path`, `package`, `comment`
   #   (either of `name`, `path` is required, the rest are optional).
-  genRelatedPackages = packages:
+  genRelatedPackages = packages: optName:
     let
       unpack = p: if lib.isString p then { name = p; }
                   else if lib.isList p then { path = p; }
@@ -58,7 +58,7 @@ let
           title = args.title or null;
           name = args.name or (lib.concatStringsSep "." args.path);
           path = args.path or [ args.name ];
-          package = args.package or (lib.attrByPath path (throw "Invalid package attribute path `${toString path}'") pkgs);
+          package = args.package or (lib.attrByPath path (throw "Invalid package attribute path `${toString path}' found while evaluating `relatedPackages' of option `${optName}'") pkgs);
         in "<listitem>"
         + "<para><literal>${lib.optionalString (title != null) "${title} aka "}pkgs.${name} (${package.meta.name})</literal>"
         + lib.optionalString (!package.meta.available) " <emphasis>[UNAVAILABLE]</emphasis>"
diff --git a/nixpkgs/nixos/lib/make-options-doc/options-to-docbook.xsl b/nixpkgs/nixos/lib/make-options-doc/options-to-docbook.xsl
index 72ac89d4ff62..18d19fddaca2 100644
--- a/nixpkgs/nixos/lib/make-options-doc/options-to-docbook.xsl
+++ b/nixpkgs/nixos/lib/make-options-doc/options-to-docbook.xsl
@@ -20,7 +20,7 @@
       <title>Configuration Options</title>
       <variablelist xml:id="configuration-variable-list">
         <xsl:for-each select="attrs">
-          <xsl:variable name="id" select="concat('opt-', str:replace(str:replace(str:replace(str:replace(attr[@name = 'name']/string/@value, '*', '_'), '&lt;', '_'), '>', '_'), '?', '_'))" />
+          <xsl:variable name="id" select="concat('opt-', str:replace(str:replace(str:replace(attr[@name = 'name']/string/@value, '*', '_'), '&lt;', '_'), '>', '_'))" />
           <varlistentry>
             <term xlink:href="#{$id}">
               <xsl:attribute name="xml:id"><xsl:value-of select="$id"/></xsl:attribute>
diff --git a/nixpkgs/nixos/lib/qemu-flags.nix b/nixpkgs/nixos/lib/qemu-flags.nix
index 859d9e975fec..0f0662458935 100644
--- a/nixpkgs/nixos/lib/qemu-flags.nix
+++ b/nixpkgs/nixos/lib/qemu-flags.nix
@@ -2,13 +2,18 @@
 { pkgs }:
 
 let
-  zeroPad = n: if n < 10 then "0${toString n}" else toString n;
+  zeroPad = n:
+    pkgs.lib.optionalString (n < 16) "0" +
+      (if n > 255
+       then throw "Can't have more than 255 nets or nodes!"
+       else pkgs.lib.toHexString n);
 in
 
-{
+rec {
+  qemuNicMac = net: machine: "52:54:00:12:${zeroPad net}:${zeroPad machine}";
 
   qemuNICFlags = nic: net: machine:
-    [ "-device virtio-net-pci,netdev=vlan${toString nic},mac=52:54:00:12:${zeroPad net}:${zeroPad machine}"
+    [ "-device virtio-net-pci,netdev=vlan${toString nic},mac=${qemuNicMac net machine}"
       "-netdev vde,id=vlan${toString nic},sock=$QEMU_VDE_SOCKET_${toString net}"
     ];
 
@@ -17,9 +22,9 @@ in
         else throw "Unknown QEMU serial device for system '${pkgs.stdenv.hostPlatform.system}'";
 
   qemuBinary = qemuPkg: {
-    x86_64-linux = "${qemuPkg}/bin/qemu-kvm -cpu host";
+    x86_64-linux = "${qemuPkg}/bin/qemu-kvm -cpu max";
     armv7l-linux = "${qemuPkg}/bin/qemu-system-arm -enable-kvm -machine virt -cpu host";
     aarch64-linux = "${qemuPkg}/bin/qemu-system-aarch64 -enable-kvm -machine virt,gic-version=host -cpu host";
-    x86_64-darwin = "${qemuPkg}/bin/qemu-kvm -cpu host";
+    x86_64-darwin = "${qemuPkg}/bin/qemu-kvm -cpu max";
   }.${pkgs.stdenv.hostPlatform.system} or "${qemuPkg}/bin/qemu-kvm";
 }
diff --git a/nixpkgs/nixos/lib/test-driver/Logger.pm b/nixpkgs/nixos/lib/test-driver/Logger.pm
deleted file mode 100644
index 080310ea34e0..000000000000
--- a/nixpkgs/nixos/lib/test-driver/Logger.pm
+++ /dev/null
@@ -1,75 +0,0 @@
-package Logger;
-
-use strict;
-use Thread::Queue;
-use XML::Writer;
-use Encode qw(decode encode);
-use Time::HiRes qw(clock_gettime CLOCK_MONOTONIC);
-
-sub new {
-    my ($class) = @_;
-    
-    my $logFile = defined $ENV{LOGFILE} ? "$ENV{LOGFILE}" : "/dev/null";
-    my $log = new XML::Writer(OUTPUT => new IO::File(">$logFile"));
-    
-    my $self = {
-        log => $log,
-        logQueue => Thread::Queue->new()
-    };
-    
-    $self->{log}->startTag("logfile");
-    
-    bless $self, $class;
-    return $self;
-}
-
-sub close {
-    my ($self) = @_;
-    $self->{log}->endTag("logfile");
-    $self->{log}->end;
-}
-
-sub drainLogQueue {
-    my ($self) = @_;
-    while (defined (my $item = $self->{logQueue}->dequeue_nb())) {
-        $self->{log}->dataElement("line", sanitise($item->{msg}), 'machine' => $item->{machine}, 'type' => 'serial');
-    }
-}
-
-sub maybePrefix {
-    my ($msg, $attrs) = @_;
-    $msg = $attrs->{machine} . ": " . $msg if defined $attrs->{machine};
-    return $msg;
-}
-
-sub nest {
-    my ($self, $msg, $coderef, $attrs) = @_;
-    print STDERR maybePrefix("$msg\n", $attrs);
-    $self->{log}->startTag("nest");
-    $self->{log}->dataElement("head", $msg, %{$attrs});
-    my $now = clock_gettime(CLOCK_MONOTONIC);
-    $self->drainLogQueue();
-    eval { &$coderef };
-    my $res = $@;
-    $self->drainLogQueue();
-    $self->log(sprintf("(%.2f seconds)", clock_gettime(CLOCK_MONOTONIC) - $now));
-    $self->{log}->endTag("nest");
-    die $@ if $@;
-}
-
-sub sanitise {
-    my ($s) = @_;
-    $s =~ s/[[:cntrl:]\xff]//g;
-    $s = decode('UTF-8', $s, Encode::FB_DEFAULT);
-    return encode('UTF-8', $s, Encode::FB_CROAK);
-}
-
-sub log {
-    my ($self, $msg, $attrs) = @_;
-    chomp $msg;
-    print STDERR maybePrefix("$msg\n", $attrs);
-    $self->drainLogQueue();
-    $self->{log}->dataElement("line", $msg, %{$attrs});
-}
-
-1;
diff --git a/nixpkgs/nixos/lib/test-driver/Machine.pm b/nixpkgs/nixos/lib/test-driver/Machine.pm
deleted file mode 100644
index 4d3d63cd2dbf..000000000000
--- a/nixpkgs/nixos/lib/test-driver/Machine.pm
+++ /dev/null
@@ -1,734 +0,0 @@
-package Machine;
-
-use strict;
-use threads;
-use Socket;
-use IO::Handle;
-use POSIX qw(dup2);
-use FileHandle;
-use Cwd;
-use File::Basename;
-use File::Path qw(make_path);
-use File::Slurp;
-use Time::HiRes qw(clock_gettime CLOCK_MONOTONIC);
-
-
-my $showGraphics = defined $ENV{'DISPLAY'};
-
-my $sharedDir;
-
-
-sub new {
-    my ($class, $args) = @_;
-
-    my $startCommand = $args->{startCommand};
-
-    my $name = $args->{name};
-    if (!$name) {
-        $startCommand =~ /run-(.*)-vm$/ if defined $startCommand;
-        $name = $1 || "machine";
-    }
-
-    if (!$startCommand) {
-        # !!! merge with qemu-vm.nix.
-        my $netBackend = "-netdev user,id=net0";
-        my $netFrontend = "-device virtio-net-pci,netdev=net0";
-
-        $netBackend .= "," . $args->{netBackendArgs}
-            if defined $args->{netBackendArgs};
-
-        $netFrontend .= "," . $args->{netFrontendArgs}
-            if defined $args->{netFrontendArgs};
-
-        $startCommand =
-            "qemu-kvm -m 384 $netBackend $netFrontend \$QEMU_OPTS ";
-
-        if (defined $args->{hda}) {
-            if ($args->{hdaInterface} eq "scsi") {
-                $startCommand .= "-drive id=hda,file="
-                               . Cwd::abs_path($args->{hda})
-                               . ",werror=report,if=none "
-                               . "-device scsi-hd,drive=hda ";
-            } else {
-                $startCommand .= "-drive file=" . Cwd::abs_path($args->{hda})
-                               . ",if=" . $args->{hdaInterface}
-                               . ",werror=report ";
-            }
-        }
-
-        $startCommand .= "-cdrom $args->{cdrom} "
-            if defined $args->{cdrom};
-        $startCommand .= "-device piix3-usb-uhci -drive id=usbdisk,file=$args->{usb},if=none,readonly -device usb-storage,drive=usbdisk "
-            if defined $args->{usb};
-        $startCommand .= "-bios $args->{bios} "
-            if defined $args->{bios};
-        $startCommand .= $args->{qemuFlags} || "";
-    }
-
-    my $tmpDir = $ENV{'TMPDIR'} || "/tmp";
-    unless (defined $sharedDir) {
-        $sharedDir = $tmpDir . "/xchg-shared";
-        make_path($sharedDir, { mode => 0700, owner => $< });
-    }
-
-    my $allowReboot = 0;
-    $allowReboot = $args->{allowReboot} if defined $args->{allowReboot};
-
-    my $self = {
-        startCommand => $startCommand,
-        name => $name,
-        allowReboot => $allowReboot,
-        booted => 0,
-        pid => 0,
-        connected => 0,
-        socket => undef,
-        stateDir => "$tmpDir/vm-state-$name",
-        monitor => undef,
-        log => $args->{log},
-        redirectSerial => $args->{redirectSerial} // 1,
-    };
-
-    mkdir $self->{stateDir}, 0700;
-
-    bless $self, $class;
-    return $self;
-}
-
-
-sub log {
-    my ($self, $msg) = @_;
-    $self->{log}->log($msg, { machine => $self->{name} });
-}
-
-
-sub nest {
-    my ($self, $msg, $coderef, $attrs) = @_;
-    $self->{log}->nest($msg, $coderef, { %{$attrs || {}}, machine => $self->{name} });
-}
-
-
-sub name {
-    my ($self) = @_;
-    return $self->{name};
-}
-
-
-sub stateDir {
-    my ($self) = @_;
-    return $self->{stateDir};
-}
-
-
-sub start {
-    my ($self) = @_;
-    return if $self->{booted};
-
-    $self->log("starting vm");
-
-    # Create a socket pair for the serial line input/output of the VM.
-    my ($serialP, $serialC);
-    socketpair($serialP, $serialC, PF_UNIX, SOCK_STREAM, 0) or die;
-
-    # Create a Unix domain socket to which QEMU's monitor will connect.
-    my $monitorPath = $self->{stateDir} . "/monitor";
-    unlink $monitorPath;
-    my $monitorS;
-    socket($monitorS, PF_UNIX, SOCK_STREAM, 0) or die;
-    bind($monitorS, sockaddr_un($monitorPath)) or die "cannot bind monitor socket: $!";
-    listen($monitorS, 1) or die;
-
-    # Create a Unix domain socket to which the root shell in the guest will connect.
-    my $shellPath = $self->{stateDir} . "/shell";
-    unlink $shellPath;
-    my $shellS;
-    socket($shellS, PF_UNIX, SOCK_STREAM, 0) or die;
-    bind($shellS, sockaddr_un($shellPath)) or die "cannot bind shell socket: $!";
-    listen($shellS, 1) or die;
-
-    # Start the VM.
-    my $pid = fork();
-    die if $pid == -1;
-
-    if ($pid == 0) {
-        close $serialP;
-        close $monitorS;
-        close $shellS;
-        if ($self->{redirectSerial}) {
-            open NUL, "</dev/null" or die;
-            dup2(fileno(NUL), fileno(STDIN));
-            dup2(fileno($serialC), fileno(STDOUT));
-            dup2(fileno($serialC), fileno(STDERR));
-        }
-        $ENV{TMPDIR} = $self->{stateDir};
-        $ENV{SHARED_DIR} = $sharedDir;
-        $ENV{USE_TMPDIR} = 1;
-        $ENV{QEMU_OPTS} =
-            ($self->{allowReboot} ? "" : "-no-reboot ") .
-            "-monitor unix:./monitor -chardev socket,id=shell,path=./shell " .
-            "-device virtio-serial -device virtconsole,chardev=shell " .
-            "-device virtio-rng-pci " .
-            ($showGraphics ? "-serial stdio" : "-nographic") . " " . ($ENV{QEMU_OPTS} || "");
-        chdir $self->{stateDir} or die;
-        exec $self->{startCommand};
-        die "running VM script: $!";
-    }
-
-    # Process serial line output.
-    close $serialC;
-
-    threads->create(\&processSerialOutput, $self, $serialP)->detach;
-
-    sub processSerialOutput {
-        my ($self, $serialP) = @_;
-        while (<$serialP>) {
-            chomp;
-            s/\r$//;
-            print STDERR $self->{name}, "# $_\n";
-            $self->{log}->{logQueue}->enqueue({msg => $_, machine => $self->{name}}); # !!!
-        }
-    }
-
-    eval {
-        local $SIG{CHLD} = sub { die "QEMU died prematurely\n"; };
-
-        # Wait until QEMU connects to the monitor.
-        accept($self->{monitor}, $monitorS) or die;
-
-        # Wait until QEMU connects to the root shell socket.  QEMU
-        # does so immediately; this doesn't mean that the root shell
-        # has connected yet inside the guest.
-        accept($self->{socket}, $shellS) or die;
-        $self->{socket}->autoflush(1);
-    };
-    die "$@" if $@;
-
-    $self->waitForMonitorPrompt;
-
-    $self->log("QEMU running (pid $pid)");
-
-    $self->{pid} = $pid;
-    $self->{booted} = 1;
-}
-
-
-# Send a command to the monitor and wait for it to finish.  TODO: QEMU
-# also has a JSON-based monitor interface now, but it doesn't support
-# all commands yet.  We should use it once it does.
-sub sendMonitorCommand {
-    my ($self, $command) = @_;
-    $self->log("sending monitor command: $command");
-    syswrite $self->{monitor}, "$command\n";
-    return $self->waitForMonitorPrompt;
-}
-
-
-# Wait until the monitor sends "(qemu) ".
-sub waitForMonitorPrompt {
-    my ($self) = @_;
-    my $res = "";
-    my $s;
-    while (sysread($self->{monitor}, $s, 1024)) {
-        $res .= $s;
-        last if $res =~ s/\(qemu\) $//;
-    }
-    return $res;
-}
-
-
-# Call the given code reference repeatedly, with 1 second intervals,
-# until it returns 1 or a timeout is reached.
-sub retry {
-    my ($coderef) = @_;
-    my $n;
-    for ($n = 899; $n >=0; $n--) {
-        return if &$coderef($n);
-        sleep 1;
-    }
-    die "action timed out after $n seconds";
-}
-
-
-sub connect {
-    my ($self) = @_;
-    return if $self->{connected};
-
-    $self->nest("waiting for the VM to finish booting", sub {
-
-        $self->start;
-
-        my $now = clock_gettime(CLOCK_MONOTONIC);
-        local $SIG{ALRM} = sub { die "timed out waiting for the VM to connect\n"; };
-        alarm 600;
-        readline $self->{socket} or die "the VM quit before connecting\n";
-        alarm 0;
-
-        $self->log("connected to guest root shell");
-        # We're interested in tracking how close we are to `alarm`.
-        $self->log(sprintf("(connecting took %.2f seconds)", clock_gettime(CLOCK_MONOTONIC) - $now));
-        $self->{connected} = 1;
-
-    });
-}
-
-
-sub waitForShutdown {
-    my ($self) = @_;
-    return unless $self->{booted};
-
-    $self->nest("waiting for the VM to power off", sub {
-        waitpid $self->{pid}, 0;
-        $self->{pid} = 0;
-        $self->{booted} = 0;
-        $self->{connected} = 0;
-    });
-}
-
-
-sub isUp {
-    my ($self) = @_;
-    return $self->{booted} && $self->{connected};
-}
-
-
-sub execute_ {
-    my ($self, $command) = @_;
-
-    $self->connect;
-
-    print { $self->{socket} } ("( $command ); echo '|!=EOF' \$?\n");
-
-    my $out = "";
-
-    while (1) {
-        my $line = readline($self->{socket});
-        die "connection to VM lost unexpectedly" unless defined $line;
-        #$self->log("got line: $line");
-        if ($line =~ /^(.*)\|\!\=EOF\s+(\d+)$/) {
-            $out .= $1;
-            $self->log("exit status $2");
-            return ($2, $out);
-        }
-        $out .= $line;
-    }
-}
-
-
-sub execute {
-    my ($self, $command) = @_;
-    my @res;
-    $self->nest("running command: $command", sub {
-        @res = $self->execute_($command);
-    });
-    return @res;
-}
-
-
-sub succeed {
-    my ($self, @commands) = @_;
-
-    my $res;
-    foreach my $command (@commands) {
-        $self->nest("must succeed: $command", sub {
-            my ($status, $out) = $self->execute_($command);
-            if ($status != 0) {
-                $self->log("output: $out");
-                die "command `$command' did not succeed (exit code $status)\n";
-            }
-            $res .= $out;
-        });
-    }
-
-    return $res;
-}
-
-
-sub mustSucceed {
-    succeed @_;
-}
-
-
-sub waitUntilSucceeds {
-    my ($self, $command) = @_;
-    $self->nest("waiting for success: $command", sub {
-        retry sub {
-            my ($status, $out) = $self->execute($command);
-            return 1 if $status == 0;
-        };
-    });
-}
-
-
-sub waitUntilFails {
-    my ($self, $command) = @_;
-    $self->nest("waiting for failure: $command", sub {
-        retry sub {
-            my ($status, $out) = $self->execute($command);
-            return 1 if $status != 0;
-        };
-    });
-}
-
-
-sub fail {
-    my ($self, $command) = @_;
-    $self->nest("must fail: $command", sub {
-        my ($status, $out) = $self->execute_($command);
-        die "command `$command' unexpectedly succeeded"
-            if $status == 0;
-    });
-}
-
-
-sub mustFail {
-    fail @_;
-}
-
-
-sub getUnitInfo {
-    my ($self, $unit, $user) = @_;
-    my ($status, $lines) = $self->systemctl("--no-pager show \"$unit\"", $user);
-    return undef if $status != 0;
-    my $info = {};
-    foreach my $line (split '\n', $lines) {
-        $line =~ /^([^=]+)=(.*)$/ or next;
-        $info->{$1} = $2;
-    }
-    return $info;
-}
-
-sub systemctl {
-    my ($self, $q, $user) = @_;
-    if ($user) {
-        $q =~ s/'/\\'/g;
-        return $self->execute("su -l $user -c \$'XDG_RUNTIME_DIR=/run/user/`id -u` systemctl --user $q'");
-    }
-
-    return $self->execute("systemctl $q");
-}
-
-# Fail if the given systemd unit is not in the "active" state.
-sub requireActiveUnit {
-    my ($self, $unit) = @_;
-    $self->nest("checking if unit ‘$unit’ has reached state 'active'", sub {
-        my $info = $self->getUnitInfo($unit);
-        my $state = $info->{ActiveState};
-        if ($state ne "active") {
-            die "Expected unit ‘$unit’ to to be in state 'active' but it is in state ‘$state’\n";
-        };
-    });
-}
-
-# Wait for a systemd unit to reach the "active" state.
-sub waitForUnit {
-    my ($self, $unit, $user) = @_;
-    $self->nest("waiting for unit ‘$unit’", sub {
-        retry sub {
-            my $info = $self->getUnitInfo($unit, $user);
-            my $state = $info->{ActiveState};
-            die "unit ‘$unit’ reached state ‘$state’\n" if $state eq "failed";
-            if ($state eq "inactive") {
-                # If there are no pending jobs, then assume this unit
-                # will never reach active state.
-                my ($status, $jobs) = $self->systemctl("list-jobs --full 2>&1", $user);
-                if ($jobs =~ /No jobs/) {  # FIXME: fragile
-                    # Handle the case where the unit may have started
-                    # between the previous getUnitInfo() and
-                    # list-jobs.
-                    my $info2 = $self->getUnitInfo($unit);
-                    die "unit ‘$unit’ is inactive and there are no pending jobs\n"
-                        if $info2->{ActiveState} eq $state;
-                }
-            }
-            return 1 if $state eq "active";
-        };
-    });
-}
-
-
-sub waitForJob {
-    my ($self, $jobName) = @_;
-    return $self->waitForUnit($jobName);
-}
-
-
-# Wait until the specified file exists.
-sub waitForFile {
-    my ($self, $fileName) = @_;
-    $self->nest("waiting for file ‘$fileName’", sub {
-        retry sub {
-            my ($status, $out) = $self->execute("test -e $fileName");
-            return 1 if $status == 0;
-        }
-    });
-}
-
-sub startJob {
-    my ($self, $jobName, $user) = @_;
-    $self->systemctl("start $jobName", $user);
-    # FIXME: check result
-}
-
-sub stopJob {
-    my ($self, $jobName, $user) = @_;
-    $self->systemctl("stop $jobName", $user);
-}
-
-
-# Wait until the machine is listening on the given TCP port.
-sub waitForOpenPort {
-    my ($self, $port) = @_;
-    $self->nest("waiting for TCP port $port", sub {
-        retry sub {
-            my ($status, $out) = $self->execute("nc -z localhost $port");
-            return 1 if $status == 0;
-        }
-    });
-}
-
-
-# Wait until the machine is not listening on the given TCP port.
-sub waitForClosedPort {
-    my ($self, $port) = @_;
-    retry sub {
-        my ($status, $out) = $self->execute("nc -z localhost $port");
-        return 1 if $status != 0;
-    }
-}
-
-
-sub shutdown {
-    my ($self) = @_;
-    return unless $self->{booted};
-
-    print { $self->{socket} } ("poweroff\n");
-
-    $self->waitForShutdown;
-}
-
-
-sub crash {
-    my ($self) = @_;
-    return unless $self->{booted};
-
-    $self->log("forced crash");
-
-    $self->sendMonitorCommand("quit");
-
-    $self->waitForShutdown;
-}
-
-
-# Make the machine unreachable by shutting down eth1 (the multicast
-# interface used to talk to the other VMs).  We keep eth0 up so that
-# the test driver can continue to talk to the machine.
-sub block {
-    my ($self) = @_;
-    $self->sendMonitorCommand("set_link virtio-net-pci.1 off");
-}
-
-
-# Make the machine reachable.
-sub unblock {
-    my ($self) = @_;
-    $self->sendMonitorCommand("set_link virtio-net-pci.1 on");
-}
-
-
-# Take a screenshot of the X server on :0.0.
-sub screenshot {
-    my ($self, $filename) = @_;
-    my $dir = $ENV{'out'} || Cwd::abs_path(".");
-    $filename = "$dir/${filename}.png" if $filename =~ /^\w+$/;
-    my $tmp = "${filename}.ppm";
-    my $name = basename($filename);
-    $self->nest("making screenshot ‘$name’", sub {
-        $self->sendMonitorCommand("screendump $tmp");
-        system("pnmtopng $tmp > ${filename}") == 0
-            or die "cannot convert screenshot";
-        unlink $tmp;
-    }, { image => $name } );
-}
-
-# Get the text of TTY<n>
-sub getTTYText {
-    my ($self, $tty) = @_;
-
-    my ($status, $out) = $self->execute("fold -w\$(stty -F /dev/tty${tty} size | awk '{print \$2}') /dev/vcs${tty}");
-    return $out;
-}
-
-# Wait until TTY<n>'s text matches a particular regular expression
-sub waitUntilTTYMatches {
-    my ($self, $tty, $regexp) = @_;
-
-    $self->nest("waiting for $regexp to appear on tty $tty", sub {
-        retry sub {
-            my ($retries_remaining) = @_;
-            if ($retries_remaining == 0) {
-                $self->log("Last chance to match /$regexp/ on TTY$tty, which currently contains:");
-                $self->log($self->getTTYText($tty));
-            }
-
-            return 1 if $self->getTTYText($tty) =~ /$regexp/;
-        }
-    });
-}
-
-# Debugging: Dump the contents of the TTY<n>
-sub dumpTTYContents {
-    my ($self, $tty) = @_;
-
-    $self->execute("fold -w 80 /dev/vcs${tty} | systemd-cat");
-}
-
-# Take a screenshot and return the result as text using optical character
-# recognition.
-sub getScreenText {
-    my ($self) = @_;
-
-    system("command -v tesseract &> /dev/null") == 0
-        or die "getScreenText used but enableOCR is false";
-
-    my $text;
-    $self->nest("performing optical character recognition", sub {
-        my $tmpbase = Cwd::abs_path(".")."/ocr";
-        my $tmpin = $tmpbase."in.ppm";
-
-        $self->sendMonitorCommand("screendump $tmpin");
-
-        my $magickArgs = "-filter Catrom -density 72 -resample 300 "
-                       . "-contrast -normalize -despeckle -type grayscale "
-                       . "-sharpen 1 -posterize 3 -negate -gamma 100 "
-                       . "-blur 1x65535";
-        my $tessArgs = "-c debug_file=/dev/null --psm 11 --oem 2";
-
-        $text = `convert $magickArgs $tmpin tiff:- | tesseract - - $tessArgs`;
-        my $status = $? >> 8;
-        unlink $tmpin;
-
-        die "OCR failed with exit code $status" if $status != 0;
-    });
-    return $text;
-}
-
-
-# Wait until a specific regexp matches the textual contents of the screen.
-sub waitForText {
-    my ($self, $regexp) = @_;
-    $self->nest("waiting for $regexp to appear on the screen", sub {
-        retry sub {
-            my ($retries_remaining) = @_;
-            if ($retries_remaining == 0) {
-                $self->log("Last chance to match /$regexp/ on the screen, which currently contains:");
-                $self->log($self->getScreenText);
-            }
-
-            return 1 if $self->getScreenText =~ /$regexp/;
-        }
-    });
-}
-
-
-# Wait until it is possible to connect to the X server.  Note that
-# testing the existence of /tmp/.X11-unix/X0 is insufficient.
-sub waitForX {
-    my ($self, $regexp) = @_;
-    $self->nest("waiting for the X11 server", sub {
-        retry sub {
-            my ($status, $out) = $self->execute("journalctl -b SYSLOG_IDENTIFIER=systemd | grep 'Reached target Current graphical'");
-            return 0 if $status != 0;
-            ($status, $out) = $self->execute("[ -e /tmp/.X11-unix/X0 ]");
-            return 1 if $status == 0;
-        }
-    });
-}
-
-
-sub getWindowNames {
-    my ($self) = @_;
-    my $res = $self->mustSucceed(
-        q{xwininfo -root -tree | sed 's/.*0x[0-9a-f]* \"\([^\"]*\)\".*/\1/; t; d'});
-    return split /\n/, $res;
-}
-
-
-sub waitForWindow {
-    my ($self, $regexp) = @_;
-    $self->nest("waiting for a window to appear", sub {
-        retry sub {
-            my @names = $self->getWindowNames;
-
-            my ($retries_remaining) = @_;
-            if ($retries_remaining == 0) {
-                $self->log("Last chance to match /$regexp/ on the the window list, which currently contains:");
-                $self->log(join(", ", @names));
-            }
-
-            foreach my $n (@names) {
-                return 1 if $n =~ /$regexp/;
-            }
-        }
-    });
-}
-
-
-sub copyFileFromHost {
-    my ($self, $from, $to) = @_;
-    my $s = `cat $from` or die;
-    $s =~ s/'/'\\''/g;
-    $self->mustSucceed("echo '$s' > $to");
-}
-
-
-my %charToKey = (
-    'A' => "shift-a", 'N' => "shift-n",  '-' => "0x0C", '_' => "shift-0x0C", '!' => "shift-0x02",
-    'B' => "shift-b", 'O' => "shift-o",  '=' => "0x0D", '+' => "shift-0x0D", '@' => "shift-0x03",
-    'C' => "shift-c", 'P' => "shift-p",  '[' => "0x1A", '{' => "shift-0x1A", '#' => "shift-0x04",
-    'D' => "shift-d", 'Q' => "shift-q",  ']' => "0x1B", '}' => "shift-0x1B", '$' => "shift-0x05",
-    'E' => "shift-e", 'R' => "shift-r",  ';' => "0x27", ':' => "shift-0x27", '%' => "shift-0x06",
-    'F' => "shift-f", 'S' => "shift-s", '\'' => "0x28", '"' => "shift-0x28", '^' => "shift-0x07",
-    'G' => "shift-g", 'T' => "shift-t",  '`' => "0x29", '~' => "shift-0x29", '&' => "shift-0x08",
-    'H' => "shift-h", 'U' => "shift-u", '\\' => "0x2B", '|' => "shift-0x2B", '*' => "shift-0x09",
-    'I' => "shift-i", 'V' => "shift-v",  ',' => "0x33", '<' => "shift-0x33", '(' => "shift-0x0A",
-    'J' => "shift-j", 'W' => "shift-w",  '.' => "0x34", '>' => "shift-0x34", ')' => "shift-0x0B",
-    'K' => "shift-k", 'X' => "shift-x",  '/' => "0x35", '?' => "shift-0x35",
-    'L' => "shift-l", 'Y' => "shift-y",  ' ' => "spc",
-    'M' => "shift-m", 'Z' => "shift-z", "\n" => "ret",
-);
-
-
-sub sendKeys {
-    my ($self, @keys) = @_;
-    foreach my $key (@keys) {
-        $key = $charToKey{$key} if exists $charToKey{$key};
-        $self->sendMonitorCommand("sendkey $key");
-    }
-}
-
-
-sub sendChars {
-    my ($self, $chars) = @_;
-    $self->nest("sending keys ‘$chars’", sub {
-        $self->sendKeys(split //, $chars);
-    });
-}
-
-
-# Sleep N seconds (in virtual guest time, not real time).
-sub sleep {
-    my ($self, $time) = @_;
-    $self->succeed("sleep $time");
-}
-
-
-# Forward a TCP port on the host to a TCP port on the guest.  Useful
-# during interactive testing.
-sub forwardPort {
-    my ($self, $hostPort, $guestPort) = @_;
-    $hostPort = 8080 unless defined $hostPort;
-    $guestPort = 80 unless defined $guestPort;
-    $self->sendMonitorCommand("hostfwd_add tcp::$hostPort-:$guestPort");
-}
-
-
-1;
diff --git a/nixpkgs/nixos/lib/test-driver/test-driver.pl b/nixpkgs/nixos/lib/test-driver/test-driver.pl
deleted file mode 100644
index a3354fb0e1eb..000000000000
--- a/nixpkgs/nixos/lib/test-driver/test-driver.pl
+++ /dev/null
@@ -1,191 +0,0 @@
-#! /somewhere/perl -w
-
-use strict;
-use Machine;
-use Term::ReadLine;
-use IO::File;
-use IO::Pty;
-use Logger;
-use Cwd;
-use POSIX qw(_exit dup2);
-use Time::HiRes qw(clock_gettime CLOCK_MONOTONIC);
-
-$SIG{PIPE} = 'IGNORE'; # because Unix domain sockets may die unexpectedly
-
-STDERR->autoflush(1);
-
-my $log = new Logger;
-
-
-# Start vde_switch for each network required by the test.
-my %vlans;
-foreach my $vlan (split / /, $ENV{VLANS} || "") {
-    next if defined $vlans{$vlan};
-    # Start vde_switch as a child process.  We don't run it in daemon
-    # mode because we want the child process to be cleaned up when we
-    # die.  Since we have to make sure that the control socket is
-    # ready, we send a dummy command to vde_switch (via stdin) and
-    # wait for a reply.  Note that vde_switch requires stdin to be a
-    # TTY, so we create one.
-    $log->log("starting VDE switch for network $vlan");
-    my $socket = Cwd::abs_path "./vde$vlan.ctl";
-    my $pty = new IO::Pty;
-    my ($stdoutR, $stdoutW); pipe $stdoutR, $stdoutW;
-    my $pid = fork(); die "cannot fork" unless defined $pid;
-    if ($pid == 0) {
-        dup2(fileno($pty->slave), 0);
-        dup2(fileno($stdoutW), 1);
-        exec "vde_switch -s $socket --dirmode 0700" or _exit(1);
-    }
-    close $stdoutW;
-    print $pty "version\n";
-    readline $stdoutR or die "cannot start vde_switch";
-    $ENV{"QEMU_VDE_SOCKET_$vlan"} = $socket;
-    $vlans{$vlan} = $pty;
-    die unless -e "$socket/ctl";
-}
-
-
-my %vms;
-my $context = "";
-
-sub createMachine {
-    my ($args) = @_;
-    my $vm = Machine->new({%{$args}, log => $log, redirectSerial => ($ENV{USE_SERIAL} // "0") ne "1"});
-    $vms{$vm->name} = $vm;
-    $context .= "my \$" . $vm->name . " = \$vms{'" . $vm->name . "'}; ";
-    return $vm;
-}
-
-foreach my $vmScript (@ARGV) {
-    my $vm = createMachine({startCommand => $vmScript});
-}
-
-
-sub startAll {
-    $log->nest("starting all VMs", sub {
-        $_->start foreach values %vms;
-    });
-}
-
-
-# Wait until all VMs have terminated.
-sub joinAll {
-    $log->nest("waiting for all VMs to finish", sub {
-        $_->waitForShutdown foreach values %vms;
-    });
-}
-
-
-# In interactive tests, this allows the non-interactive test script to
-# be executed conveniently.
-sub testScript {
-    eval "$context $ENV{testScript};\n";
-    warn $@ if $@;
-}
-
-
-my $nrTests = 0;
-my $nrSucceeded = 0;
-
-
-sub subtest {
-    my ($name, $coderef) = @_;
-    $log->nest("subtest: $name", sub {
-        $nrTests++;
-        eval { &$coderef };
-        if ($@) {
-            $log->log("error: $@", { error => 1 });
-        } else {
-            $nrSucceeded++;
-        }
-    });
-}
-
-
-sub runTests {
-    if (defined $ENV{tests}) {
-        $log->nest("running the VM test script", sub {
-            eval "$context $ENV{tests}";
-            if ($@) {
-                $log->log("error: $@", { error => 1 });
-                die $@;
-            }
-        }, { expanded => 1 });
-    } else {
-        my $term = Term::ReadLine->new('nixos-vm-test');
-        $term->ReadHistory;
-        while (defined ($_ = $term->readline("> "))) {
-            eval "$context $_\n";
-            warn $@ if $@;
-        }
-        $term->WriteHistory;
-    }
-
-    # Copy the kernel coverage data for each machine, if the kernel
-    # has been compiled with coverage instrumentation.
-    $log->nest("collecting coverage data", sub {
-        foreach my $vm (values %vms) {
-            my $gcovDir = "/sys/kernel/debug/gcov";
-
-            next unless $vm->isUp();
-
-            my ($status, $out) = $vm->execute("test -e $gcovDir");
-            next if $status != 0;
-
-            # Figure out where to put the *.gcda files so that the
-            # report generator can find the corresponding kernel
-            # sources.
-            my $kernelDir = $vm->mustSucceed("echo \$(dirname \$(readlink -f /run/current-system/kernel))/.build/linux-*");
-            chomp $kernelDir;
-            my $coverageDir = "/tmp/xchg/coverage-data/$kernelDir";
-
-            # Copy all the *.gcda files.
-            $vm->execute("for d in $gcovDir/nix/store/*/.build/linux-*; do for i in \$(cd \$d && find -name '*.gcda'); do echo \$i; mkdir -p $coverageDir/\$(dirname \$i); cp -v \$d/\$i $coverageDir/\$i; done; done");
-        }
-    });
-
-    $log->nest("syncing", sub {
-        foreach my $vm (values %vms) {
-            next unless $vm->isUp();
-            $vm->execute("sync");
-        }
-    });
-
-    if ($nrTests != 0) {
-        $log->log("$nrSucceeded out of $nrTests tests succeeded",
-            ($nrSucceeded < $nrTests ? { error => 1 } : { }));
-    }
-}
-
-
-# Create an empty raw virtual disk with the given name and size (in
-# MiB).
-sub createDisk {
-    my ($name, $size) = @_;
-    system("qemu-img create -f raw $name ${size}M") == 0
-        or die "cannot create image of size $size";
-}
-
-
-END {
-    $log->nest("cleaning up", sub {
-        foreach my $vm (values %vms) {
-            if ($vm->{pid}) {
-                $log->log("killing " . $vm->{name} . " (pid " . $vm->{pid} . ")");
-                kill 9, $vm->{pid};
-            }
-        }
-    });
-    $log->close();
-}
-
-my $now1 = clock_gettime(CLOCK_MONOTONIC);
-
-runTests;
-
-my $now2 = clock_gettime(CLOCK_MONOTONIC);
-
-printf STDERR "test script finished in %.2fs\n", $now2 - $now1;
-
-exit ($nrSucceeded < $nrTests ? 1 : 0);
diff --git a/nixpkgs/nixos/lib/test-driver/test-driver.py b/nixpkgs/nixos/lib/test-driver/test-driver.py
index e7b05968b079..156392ad1e32 100644
--- a/nixpkgs/nixos/lib/test-driver/test-driver.py
+++ b/nixpkgs/nixos/lib/test-driver/test-driver.py
@@ -3,7 +3,10 @@ from contextlib import contextmanager, _GeneratorContextManager
 from queue import Queue, Empty
 from typing import Tuple, Any, Callable, Dict, Iterator, Optional, List
 from xml.sax.saxutils import XMLGenerator
+import queue
+import io
 import _thread
+import argparse
 import atexit
 import base64
 import codecs
@@ -19,6 +22,7 @@ import subprocess
 import sys
 import tempfile
 import time
+import traceback
 import unicodedata
 
 CHAR_TO_KEY = {
@@ -213,7 +217,7 @@ class Machine:
                 match = re.search("run-(.+)-vm$", cmd)
                 if match:
                     self.name = match.group(1)
-
+        self.logger = args["log"]
         self.script = args.get("startCommand", self.create_startcommand(args))
 
         tmp_dir = os.environ.get("TMPDIR", tempfile.gettempdir())
@@ -223,7 +227,10 @@ class Machine:
             os.makedirs(path, mode=0o700, exist_ok=True)
             return path
 
-        self.state_dir = create_dir("vm-state-{}".format(self.name))
+        self.state_dir = os.path.join(tmp_dir, f"vm-state-{self.name}")
+        if not args.get("keepVmState", False):
+            self.cleanup_statedir()
+        os.makedirs(self.state_dir, mode=0o700, exist_ok=True)
         self.shared_dir = create_dir("shared-xchg")
 
         self.booted = False
@@ -231,7 +238,6 @@ class Machine:
         self.pid: Optional[int] = None
         self.socket = None
         self.monitor: Optional[socket.socket] = None
-        self.logger: Logger = args["log"]
         self.allow_reboot = args.get("allowReboot", False)
 
     @staticmethod
@@ -420,15 +426,18 @@ class Machine:
                 output += out
         return output
 
-    def fail(self, *commands: str) -> None:
+    def fail(self, *commands: str) -> str:
         """Execute each command and check that it fails."""
+        output = ""
         for command in commands:
             with self.nested("must fail: {}".format(command)):
-                status, output = self.execute(command)
+                (status, out) = self.execute(command)
                 if status == 0:
                     raise Exception(
                         "command `{}` unexpectedly succeeded".format(command)
                     )
+                output += out
+        return output
 
     def wait_until_succeeds(self, command: str) -> str:
         """Wait until a command returns success and return its output.
@@ -671,6 +680,22 @@ class Machine:
         with self.nested("waiting for {} to appear on screen".format(regex)):
             retry(screen_matches)
 
+    def wait_for_console_text(self, regex: str) -> None:
+        self.log("waiting for {} to appear on console".format(regex))
+        # Buffer the console output, this is needed
+        # to match multiline regexes.
+        console = io.StringIO()
+        while True:
+            try:
+                console.write(self.last_lines.get())
+            except queue.Empty:
+                self.sleep(1)
+                continue
+            console.seek(0)
+            matches = re.search(regex, console.read())
+            if matches is not None:
+                return
+
     def send_key(self, key: str) -> None:
         key = CHAR_TO_KEY.get(key, key)
         self.send_monitor_command("sendkey {}".format(key))
@@ -734,11 +759,16 @@ class Machine:
         self.monitor, _ = self.monitor_socket.accept()
         self.shell, _ = self.shell_socket.accept()
 
+        # Store last serial console lines for use
+        # of wait_for_console_text
+        self.last_lines: Queue = Queue()
+
         def process_serial_output() -> None:
             assert self.process.stdout is not None
             for _line in self.process.stdout:
                 # Ignore undecodable bytes that may occur in boot menus
                 line = _line.decode(errors="ignore").replace("\r", "").rstrip()
+                self.last_lines.put(line)
                 eprint("{} # {}".format(self.name, line))
                 self.logger.enqueue({"msg": line, "machine": self.name})
 
@@ -751,6 +781,12 @@ class Machine:
 
         self.log("QEMU running (pid {})".format(self.pid))
 
+    def cleanup_statedir(self) -> None:
+        if os.path.isdir(self.state_dir):
+            shutil.rmtree(self.state_dir)
+            self.logger.log(f"deleting VM state directory {self.state_dir}")
+            self.logger.log("if you want to keep the VM state, pass --keep-vm-state")
+
     def shutdown(self) -> None:
         if not self.booted:
             return
@@ -807,7 +843,8 @@ class Machine:
             retry(window_is_visible)
 
     def sleep(self, secs: int) -> None:
-        time.sleep(secs)
+        # We want to sleep in *guest* time, not *host* time.
+        self.succeed(f"sleep {secs}")
 
     def forward_port(self, host_port: int = 8080, guest_port: int = 80) -> None:
         """Forward a TCP port on the host to a TCP port on the guest.
@@ -863,7 +900,8 @@ def run_tests() -> None:
             try:
                 exec(tests, globals())
             except Exception as e:
-                eprint("error: {}".format(str(e)))
+                eprint("error: ")
+                traceback.print_exc()
                 sys.exit(1)
     else:
         ptpython.repl.embed(locals(), globals())
@@ -889,6 +927,15 @@ def subtest(name: str) -> Iterator[None]:
 
 
 if __name__ == "__main__":
+    arg_parser = argparse.ArgumentParser()
+    arg_parser.add_argument(
+        "-K",
+        "--keep-vm-state",
+        help="re-use a VM state coming from a previous run",
+        action="store_true",
+    )
+    (cli_args, vm_scripts) = arg_parser.parse_known_args()
+
     log = Logger()
 
     vlan_nrs = list(dict.fromkeys(os.environ.get("VLANS", "").split()))
@@ -896,8 +943,10 @@ if __name__ == "__main__":
     for nr, vde_socket, _, _ in vde_sockets:
         os.environ["QEMU_VDE_SOCKET_{}".format(nr)] = vde_socket
 
-    vm_scripts = sys.argv[1:]
-    machines = [create_machine({"startCommand": s}) for s in vm_scripts]
+    machines = [
+        create_machine({"startCommand": s, "keepVmState": cli_args.keep_vm_state})
+        for s in vm_scripts
+    ]
     machine_eval = [
         "{0} = machines[{1}]".format(m.name, idx) for idx, m in enumerate(machines)
     ]
@@ -911,7 +960,6 @@ if __name__ == "__main__":
                     continue
                 log.log("killing {} (pid {})".format(machine.name, machine.pid))
                 machine.process.kill()
-
             for _, _, process, _ in vde_sockets:
                 process.terminate()
         log.close()
diff --git a/nixpkgs/nixos/lib/testing-python.nix b/nixpkgs/nixos/lib/testing-python.nix
index 123323711a7c..498f97336c02 100644
--- a/nixpkgs/nixos/lib/testing-python.nix
+++ b/nixpkgs/nixos/lib/testing-python.nix
@@ -4,10 +4,12 @@
 , minimal ? false
   # Ignored
 , config ? {}
+  # !!! See comment about args in lib/modules.nix
+, specialArgs ? {}
   # Modules to add to each VM
 , extraConfigurations ? [] }:
 
-with import ./build-vms.nix { inherit system pkgs minimal extraConfigurations; };
+with import ./build-vms.nix { inherit system pkgs minimal specialArgs extraConfigurations; };
 with pkgs;
 
 rec {
@@ -63,18 +65,12 @@ rec {
           mkdir -p $out
 
           LOGFILE=/dev/null tests='exec(os.environ["testScript"])' ${driver}/bin/nixos-test-driver
-
-          for i in */xchg/coverage-data; do
-            mkdir -p $out/coverage-data
-            mv $i $out/coverage-data/$(dirname $(dirname $i))
-          done
         '';
     };
 
 
   makeTest =
     { testScript
-    , makeCoverageReport ? false
     , enableOCR ? false
     , name ? "unnamed"
     # Skip linting (mainly intended for faster dev cycles)
@@ -114,7 +110,7 @@ rec {
 
       imagemagick_tiff = imagemagick_light.override { inherit libtiff; };
 
-      # Generate onvenience wrappers for running the test driver
+      # Generate convenience wrappers for running the test driver
       # interactively with the specified network, and for starting the
       # VMs from the command line.
       driver = let warn = if skipLint then lib.warn "Linting is disabled!" else lib.id; in warn (runCommand testDriverName
@@ -153,7 +149,6 @@ rec {
       };
 
       test = passMeta (runTests driver);
-      report = passMeta (releaseTools.gcovReport { coverageRuns = [ test ]; });
 
       nodeNames = builtins.attrNames nodes;
       invalidNodeNames = lib.filter
@@ -169,7 +164,7 @@ rec {
           Please stick to alphanumeric chars and underscores as separation.
         ''
       else
-        (if makeCoverageReport then report else test) // {
+        test // {
           inherit nodes driver test;
         };
 
diff --git a/nixpkgs/nixos/lib/testing.nix b/nixpkgs/nixos/lib/testing.nix
deleted file mode 100644
index 5c784c2f0abe..000000000000
--- a/nixpkgs/nixos/lib/testing.nix
+++ /dev/null
@@ -1,258 +0,0 @@
-{ system
-, pkgs ? import ../.. { inherit system config; }
-  # Use a minimal kernel?
-, minimal ? false
-  # Ignored
-, config ? {}
-  # Modules to add to each VM
-, extraConfigurations ? [] }:
-
-with import ./build-vms.nix { inherit system pkgs minimal extraConfigurations; };
-with pkgs;
-
-rec {
-
-  inherit pkgs;
-
-
-  testDriver = lib.warn ''
-    Perl VM tests are deprecated and will be removed for 20.09.
-    Please update your tests to use the python test driver.
-    See https://github.com/NixOS/nixpkgs/pull/71684 for details.
-  '' stdenv.mkDerivation {
-    name = "nixos-test-driver";
-
-    buildInputs = [ makeWrapper perl ];
-
-    dontUnpack = true;
-
-    preferLocalBuild = true;
-
-    installPhase =
-      ''
-        mkdir -p $out/bin
-        cp ${./test-driver/test-driver.pl} $out/bin/nixos-test-driver
-        chmod u+x $out/bin/nixos-test-driver
-
-        libDir=$out/${perl.libPrefix}
-        mkdir -p $libDir
-        cp ${./test-driver/Machine.pm} $libDir/Machine.pm
-        cp ${./test-driver/Logger.pm} $libDir/Logger.pm
-
-        wrapProgram $out/bin/nixos-test-driver \
-          --prefix PATH : "${lib.makeBinPath [ qemu_test vde2 netpbm coreutils ]}" \
-          --prefix PERL5LIB : "${with perlPackages; makePerlPath [ TermReadLineGnu XMLWriter IOTty FileSlurp ]}:$out/${perl.libPrefix}"
-      '';
-  };
-
-
-  # Run an automated test suite in the given virtual network.
-  # `driver' is the script that runs the network.
-  runTests = driver:
-    stdenv.mkDerivation {
-      name = "vm-test-run-${driver.testName}";
-
-      requiredSystemFeatures = [ "kvm" "nixos-test" ];
-
-      buildCommand =
-        ''
-          mkdir -p $out
-
-          LOGFILE=/dev/null tests='eval $ENV{testScript}; die $@ if $@;' ${driver}/bin/nixos-test-driver
-
-          for i in */xchg/coverage-data; do
-            mkdir -p $out/coverage-data
-            mv $i $out/coverage-data/$(dirname $(dirname $i))
-          done
-        '';
-    };
-
-
-  makeTest =
-    { testScript
-    , makeCoverageReport ? false
-    , enableOCR ? false
-    , name ? "unnamed"
-    , ...
-    } @ t:
-
-    let
-      # A standard store path to the vm monitor is built like this:
-      #   /tmp/nix-build-vm-test-run-$name.drv-0/vm-state-machine/monitor
-      # The max filename length of a unix domain socket is 108 bytes.
-      # This means $name can at most be 50 bytes long.
-      maxTestNameLen = 50;
-      testNameLen = builtins.stringLength name;
-
-      testDriverName = with builtins;
-        if testNameLen > maxTestNameLen then
-          abort ("The name of the test '${name}' must not be longer than ${toString maxTestNameLen} " +
-            "it's currently ${toString testNameLen} characters long.")
-        else
-          "nixos-test-driver-${name}";
-
-      nodes = buildVirtualNetwork (
-        t.nodes or (if t ? machine then { machine = t.machine; } else { }));
-
-      testScript' =
-        # Call the test script with the computed nodes.
-        if lib.isFunction testScript
-        then testScript { inherit nodes; }
-        else testScript;
-
-      vlans = map (m: m.config.virtualisation.vlans) (lib.attrValues nodes);
-
-      vms = map (m: m.config.system.build.vm) (lib.attrValues nodes);
-
-      ocrProg = tesseract4.override { enableLanguages = [ "eng" ]; };
-
-      imagemagick_tiff = imagemagick_light.override { inherit libtiff; };
-
-      # Generate onvenience wrappers for running the test driver
-      # interactively with the specified network, and for starting the
-      # VMs from the command line.
-      driver = runCommand testDriverName
-        { buildInputs = [ makeWrapper];
-          testScript = testScript';
-          preferLocalBuild = true;
-          testName = name;
-        }
-        ''
-          mkdir -p $out/bin
-          echo "$testScript" > $out/test-script
-          ln -s ${testDriver}/bin/nixos-test-driver $out/bin/
-          vms=($(for i in ${toString vms}; do echo $i/bin/run-*-vm; done))
-          wrapProgram $out/bin/nixos-test-driver \
-            --add-flags "''${vms[*]}" \
-            ${lib.optionalString enableOCR
-              "--prefix PATH : '${ocrProg}/bin:${imagemagick_tiff}/bin'"} \
-            --run "export testScript=\"\$(cat $out/test-script)\"" \
-            --set VLANS '${toString vlans}'
-          ln -s ${testDriver}/bin/nixos-test-driver $out/bin/nixos-run-vms
-          wrapProgram $out/bin/nixos-run-vms \
-            --add-flags "''${vms[*]}" \
-            ${lib.optionalString enableOCR "--prefix PATH : '${ocrProg}/bin'"} \
-            --set tests 'startAll; joinAll;' \
-            --set VLANS '${toString vlans}' \
-            ${lib.optionalString (builtins.length vms == 1) "--set USE_SERIAL 1"}
-        ''; # "
-
-      passMeta = drv: drv // lib.optionalAttrs (t ? meta) {
-        meta = (drv.meta or {}) // t.meta;
-      };
-
-      test = passMeta (runTests driver);
-      report = passMeta (releaseTools.gcovReport { coverageRuns = [ test ]; });
-
-      nodeNames = builtins.attrNames nodes;
-      invalidNodeNames = lib.filter
-        (node: builtins.match "^[A-z_][A-z0-9_]+$" node == null) nodeNames;
-
-    in
-      if lib.length invalidNodeNames > 0 then
-        throw ''
-          Cannot create machines out of (${lib.concatStringsSep ", " invalidNodeNames})!
-          All machines are referenced as perl variables in the testing framework which will break the
-          script when special characters are used.
-
-          Please stick to alphanumeric chars and underscores as separation.
-        ''
-      else
-        (if makeCoverageReport then report else test) // {
-          inherit nodes driver test;
-        };
-
-  runInMachine =
-    { drv
-    , machine
-    , preBuild ? ""
-    , postBuild ? ""
-    , ... # ???
-    }:
-    let
-      vm = buildVM { }
-        [ machine
-          { key = "run-in-machine";
-            networking.hostName = "client";
-            nix.readOnlyStore = false;
-            virtualisation.writableStore = false;
-          }
-        ];
-
-      buildrunner = writeText "vm-build" ''
-        source $1
-
-        ${coreutils}/bin/mkdir -p $TMPDIR
-        cd $TMPDIR
-
-        exec $origBuilder $origArgs
-      '';
-
-      testScript = ''
-        startAll;
-        $client->waitForUnit("multi-user.target");
-        ${preBuild}
-        $client->succeed("env -i ${bash}/bin/bash ${buildrunner} /tmp/xchg/saved-env >&2");
-        ${postBuild}
-        $client->succeed("sync"); # flush all data before pulling the plug
-      '';
-
-      vmRunCommand = writeText "vm-run" ''
-        xchg=vm-state-client/xchg
-        ${coreutils}/bin/mkdir $out
-        ${coreutils}/bin/mkdir -p $xchg
-
-        for i in $passAsFile; do
-          i2=''${i}Path
-          _basename=$(${coreutils}/bin/basename ''${!i2})
-          ${coreutils}/bin/cp ''${!i2} $xchg/$_basename
-          eval $i2=/tmp/xchg/$_basename
-          ${coreutils}/bin/ls -la $xchg
-        done
-
-        unset i i2 _basename
-        export | ${gnugrep}/bin/grep -v '^xchg=' > $xchg/saved-env
-        unset xchg
-
-        export tests='${testScript}'
-        ${testDriver}/bin/nixos-test-driver ${vm.config.system.build.vm}/bin/run-*-vm
-      ''; # */
-
-    in
-      lib.overrideDerivation drv (attrs: {
-        requiredSystemFeatures = [ "kvm" ];
-        builder = "${bash}/bin/sh";
-        args = ["-e" vmRunCommand];
-        origArgs = attrs.args;
-        origBuilder = attrs.builder;
-      });
-
-
-  runInMachineWithX = { require ? [], ... } @ args:
-    let
-      client =
-        { ... }:
-        {
-          inherit require;
-          imports = [
-            ../tests/common/auto.nix
-          ];
-          virtualisation.memorySize = 1024;
-          services.xserver.enable = true;
-          test-support.displayManager.auto.enable = true;
-          services.xserver.displayManager.defaultSession = "none+icewm";
-          services.xserver.windowManager.icewm.enable = true;
-        };
-    in
-      runInMachine ({
-        machine = client;
-        preBuild =
-          ''
-            $client->waitForX;
-          '';
-      } // args);
-
-
-  simpleTest = as: (makeTest as).test;
-
-}
diff --git a/nixpkgs/nixos/lib/utils.nix b/nixpkgs/nixos/lib/utils.nix
index 21f4c7c6988f..c9dfdbed99a3 100644
--- a/nixpkgs/nixos/lib/utils.nix
+++ b/nixpkgs/nixos/lib/utils.nix
@@ -2,9 +2,16 @@ pkgs: with pkgs.lib;
 
 rec {
 
-  # Check whenever fileSystem is needed for boot
-  fsNeededForBoot = fs: fs.neededForBoot
-                     || elem fs.mountPoint [ "/" "/nix" "/nix/store" "/var" "/var/log" "/var/lib" "/etc" ];
+  # Copy configuration files to avoid having the entire sources in the system closure
+  copyFile = filePath: pkgs.runCommandNoCC (builtins.unsafeDiscardStringContext (builtins.baseNameOf filePath)) {} ''
+    cp ${filePath} $out
+  '';
+
+  # Check whenever fileSystem is needed for boot.  NOTE: Make sure
+  # pathsNeededForBoot is closed under the parent relationship, i.e. if /a/b/c
+  # is in the list, put /a and /a/b in as well.
+  pathsNeededForBoot = [ "/" "/nix" "/nix/store" "/var" "/var/log" "/var/lib" "/etc" ];
+  fsNeededForBoot = fs: fs.neededForBoot || elem fs.mountPoint pathsNeededForBoot;
 
   # Check whenever `b` depends on `a` as a fileSystem
   fsBefore = a: b: a.mountPoint == b.device
diff --git a/nixpkgs/nixos/maintainers/scripts/azure-new/.gitignore b/nixpkgs/nixos/maintainers/scripts/azure-new/.gitignore
index 26905a862347..9271abf14a0f 100644
--- a/nixpkgs/nixos/maintainers/scripts/azure-new/.gitignore
+++ b/nixpkgs/nixos/maintainers/scripts/azure-new/.gitignore
@@ -1 +1 @@
-azure
\ No newline at end of file
+azure
diff --git a/nixpkgs/nixos/maintainers/scripts/azure-new/README.md b/nixpkgs/nixos/maintainers/scripts/azure-new/README.md
index 20e81c44ce5d..e5b69dacec08 100644
--- a/nixpkgs/nixos/maintainers/scripts/azure-new/README.md
+++ b/nixpkgs/nixos/maintainers/scripts/azure-new/README.md
@@ -20,7 +20,7 @@ $ ./upload-image.sh ./examples/basic/image.nix
 + nix-build ./examples/basic/image.nix --out-link azure
 /nix/store/qdpzknpskzw30vba92mb24xzll1dqsmd-azure-image
 ...
-95.5 %, 0 Done, 0 Failed, 1 Pending, 0 Skipped, 1 Total, 2-sec Throughput (Mb/s): 932.9565 
+95.5 %, 0 Done, 0 Failed, 1 Pending, 0 Skipped, 1 Total, 2-sec Throughput (Mb/s): 932.9565
 ...
 /subscriptions/aff271ee-e9be-4441-b9bb-42f5af4cbaeb/resourceGroups/nixos-images/providers/Microsoft.Compute/images/azure-image-todo-makethisbetter
 ```
diff --git a/nixpkgs/nixos/maintainers/scripts/azure-new/upload-image.sh b/nixpkgs/nixos/maintainers/scripts/azure-new/upload-image.sh
index 1466dcd1f0a2..143afbd7f962 100755
--- a/nixpkgs/nixos/maintainers/scripts/azure-new/upload-image.sh
+++ b/nixpkgs/nixos/maintainers/scripts/azure-new/upload-image.sh
@@ -37,8 +37,8 @@ if ! az disk show -g "${group}" -n "${img_name}" &>/dev/null; then
   )"
 
   azcopy copy "${img_file}" "${sasurl}" \
-    --blob-type PageBlob 
-    
+    --blob-type PageBlob
+
   az disk revoke-access \
     --resource-group "${group}" \
     --name "${img_name}"
diff --git a/nixpkgs/nixos/maintainers/scripts/ec2/amazon-image.nix b/nixpkgs/nixos/maintainers/scripts/ec2/amazon-image.nix
index 36f3e7af873d..b09f4ca47a3f 100644
--- a/nixpkgs/nixos/maintainers/scripts/ec2/amazon-image.nix
+++ b/nixpkgs/nixos/maintainers/scripts/ec2/amazon-image.nix
@@ -63,8 +63,8 @@ in {
     fsType = "ext4";
     configFile = pkgs.writeText "configuration.nix"
       ''
-        {
-          imports = [ <nixpkgs/nixos/modules/virtualisation/amazon-image.nix> ];
+        { modulesPath, ... }: {
+          imports = [ "''${modulesPath}/virtualisation/amazon-image.nix" ];
           ${optionalString config.ec2.hvm ''
             ec2.hvm = true;
           ''}
diff --git a/nixpkgs/nixos/maintainers/scripts/ec2/create-amis.sh b/nixpkgs/nixos/maintainers/scripts/ec2/create-amis.sh
index 145eb49ced7a..89e24f2ccfd9 100755
--- a/nixpkgs/nixos/maintainers/scripts/ec2/create-amis.sh
+++ b/nixpkgs/nixos/maintainers/scripts/ec2/create-amis.sh
@@ -29,7 +29,7 @@ log() {
     echo "$@" >&2
 }
 
-if [ -z "$1" ]; then
+if [ "$#" -ne 1 ]; then
     log "Usage: ./upload-amazon-image.sh IMAGE_OUTPUT"
     exit 1
 fi
diff --git a/nixpkgs/nixos/modules/config/appstream.nix b/nixpkgs/nixos/modules/config/appstream.nix
index 483ac9c3cd76..a72215c2f561 100644
--- a/nixpkgs/nixos/modules/config/appstream.nix
+++ b/nixpkgs/nixos/modules/config/appstream.nix
@@ -7,18 +7,18 @@ with lib;
       type = types.bool;
       default = true;
       description = ''
-        Whether to install files to support the 
+        Whether to install files to support the
         <link xlink:href="https://www.freedesktop.org/software/appstream/docs/index.html">AppStream metadata specification</link>.
       '';
     };
   };
 
   config = mkIf config.appstream.enable {
-    environment.pathsToLink = [ 
+    environment.pathsToLink = [
       # per component metadata
-      "/share/metainfo" 
+      "/share/metainfo"
       # legacy path for above
-      "/share/appdata" 
+      "/share/appdata"
     ];
   };
 
diff --git a/nixpkgs/nixos/modules/config/fonts/fontconfig-penultimate.nix b/nixpkgs/nixos/modules/config/fonts/fontconfig-penultimate.nix
deleted file mode 100644
index 7e311a21acf6..000000000000
--- a/nixpkgs/nixos/modules/config/fonts/fontconfig-penultimate.nix
+++ /dev/null
@@ -1,292 +0,0 @@
-{ config, pkgs, lib, ... }:
-
-with lib;
-
-let
-  cfg = config.fonts.fontconfig;
-
-  fcBool = x: "<bool>" + (boolToString x) + "</bool>";
-
-  # back-supported fontconfig version and package
-  # version is used for font cache generation
-  supportVersion = "210";
-  supportPkg     = pkgs."fontconfig_${supportVersion}";
-
-  # latest fontconfig version and package
-  # version is used for configuration folder name, /etc/fonts/VERSION/
-  # note: format differs from supportVersion and can not be used with makeCacheConf
-  latestVersion  = pkgs.fontconfig.configVersion;
-  latestPkg      = pkgs.fontconfig;
-
-  # supported version fonts.conf
-  supportFontsConf = pkgs.makeFontsConf { fontconfig = supportPkg; fontDirectories = config.fonts.fonts; };
-
-  # configuration file to read fontconfig cache
-  # version dependent
-  # priority 0
-  cacheConfSupport = makeCacheConf { version = supportVersion; };
-  cacheConfLatest  = makeCacheConf {};
-
-  # generate the font cache setting file for a fontconfig version
-  # use latest when no version is passed
-  makeCacheConf = { version ? null }:
-    let
-      fcPackage = if version == null
-                  then "fontconfig"
-                  else "fontconfig_${version}";
-      makeCache = fontconfig: pkgs.makeFontsCache { inherit fontconfig; fontDirectories = config.fonts.fonts; };
-      cache     = makeCache pkgs.${fcPackage};
-      cache32   = makeCache pkgs.pkgsi686Linux.${fcPackage};
-    in
-    pkgs.writeText "fc-00-nixos-cache.conf" ''
-      <?xml version='1.0'?>
-      <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
-      <fontconfig>
-        <!-- Font directories -->
-        ${concatStringsSep "\n" (map (font: "<dir>${font}</dir>") config.fonts.fonts)}
-        <!-- Pre-generated font caches -->
-        <cachedir>${cache}</cachedir>
-        ${optionalString (pkgs.stdenv.isx86_64 && cfg.cache32Bit) ''
-          <cachedir>${cache32}</cachedir>
-        ''}
-      </fontconfig>
-    '';
-
-  # local configuration file
-  localConf = pkgs.writeText "fc-local.conf" cfg.localConf;
-
-  # rendering settings configuration files
-  # priority 10
-  hintingConf = pkgs.writeText "fc-10-hinting.conf" ''
-    <?xml version='1.0'?>
-    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
-    <fontconfig>
-
-      <!-- Default rendering settings -->
-      <match target="pattern">
-        <edit mode="append" name="hinting">
-          ${fcBool cfg.hinting.enable}
-        </edit>
-        <edit mode="append" name="autohint">
-          ${fcBool cfg.hinting.autohint}
-        </edit>
-        <edit mode="append" name="hintstyle">
-          <const>hintslight</const>
-        </edit>
-      </match>
-
-    </fontconfig>
-  '';
-
-  antialiasConf = pkgs.writeText "fc-10-antialias.conf" ''
-    <?xml version='1.0'?>
-    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
-    <fontconfig>
-
-      <!-- Default rendering settings -->
-      <match target="pattern">
-        <edit mode="append" name="antialias">
-          ${fcBool cfg.antialias}
-        </edit>
-      </match>
-
-    </fontconfig>
-  '';
-
-  subpixelConf = pkgs.writeText "fc-10-subpixel.conf" ''
-    <?xml version='1.0'?>
-    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
-    <fontconfig>
-
-      <!-- Default rendering settings -->
-      <match target="pattern">
-        <edit mode="append" name="rgba">
-          <const>${cfg.subpixel.rgba}</const>
-        </edit>
-        <edit mode="append" name="lcdfilter">
-          <const>lcd${cfg.subpixel.lcdfilter}</const>
-        </edit>
-      </match>
-
-    </fontconfig>
-  '';
-
-  dpiConf = pkgs.writeText "fc-11-dpi.conf" ''
-    <?xml version='1.0'?>
-    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
-    <fontconfig>
-
-      <match target="pattern">
-        <edit name="dpi" mode="assign">
-          <double>${toString cfg.dpi}</double>
-        </edit>
-      </match>
-
-    </fontconfig>
-  '';
-
-  # default fonts configuration file
-  # priority 52
-  defaultFontsConf =
-    let genDefault = fonts: name:
-      optionalString (fonts != []) ''
-        <alias>
-          <family>${name}</family>
-          <prefer>
-          ${concatStringsSep ""
-          (map (font: ''
-            <family>${font}</family>
-          '') fonts)}
-          </prefer>
-        </alias>
-      '';
-    in
-    pkgs.writeText "fc-52-nixos-default-fonts.conf" ''
-    <?xml version='1.0'?>
-    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
-    <fontconfig>
-
-      <!-- Default fonts -->
-      ${genDefault cfg.defaultFonts.sansSerif "sans-serif"}
-
-      ${genDefault cfg.defaultFonts.serif     "serif"}
-
-      ${genDefault cfg.defaultFonts.monospace "monospace"}
-
-    </fontconfig>
-  '';
-
-  # reject Type 1 fonts
-  # priority 53
-  rejectType1 = pkgs.writeText "fc-53-nixos-reject-type1.conf" ''
-    <?xml version="1.0"?>
-    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
-    <fontconfig>
-
-    <!-- Reject Type 1 fonts -->
-    <selectfont>
-      <rejectfont>
-        <pattern>
-          <patelt name="fontformat"><string>Type 1</string></patelt>
-        </pattern>
-      </rejectfont>
-    </selectfont>
-
-    </fontconfig>
-  '';
-
-  # The configuration to be included in /etc/font/
-  penultimateConf = pkgs.runCommand "fontconfig-penultimate-conf" {
-    preferLocalBuild = true;
-  } ''
-    support_folder=$out/etc/fonts/conf.d
-    latest_folder=$out/etc/fonts/${latestVersion}/conf.d
-
-    mkdir -p $support_folder
-    mkdir -p $latest_folder
-
-    # fonts.conf
-    ln -s ${supportFontsConf} $support_folder/../fonts.conf
-    ln -s ${latestPkg.out}/etc/fonts/fonts.conf \
-          $latest_folder/../fonts.conf
-
-    # fontconfig-penultimate various configuration files
-    ln -s ${pkgs.fontconfig-penultimate}/etc/fonts/conf.d/*.conf \
-          $support_folder
-    ln -s ${pkgs.fontconfig-penultimate}/etc/fonts/conf.d/*.conf \
-          $latest_folder
-
-    ln -s ${cacheConfSupport} $support_folder/00-nixos-cache.conf
-    ln -s ${cacheConfLatest}  $latest_folder/00-nixos-cache.conf
-
-    rm $support_folder/10-antialias.conf $latest_folder/10-antialias.conf
-    ln -s ${antialiasConf} $support_folder/10-antialias.conf
-    ln -s ${antialiasConf} $latest_folder/10-antialias.conf
-
-    rm $support_folder/10-hinting.conf $latest_folder/10-hinting.conf
-    ln -s ${hintingConf} $support_folder/10-hinting.conf
-    ln -s ${hintingConf} $latest_folder/10-hinting.conf
-
-    ${optionalString cfg.useEmbeddedBitmaps ''
-    rm $support_folder/10-no-embedded-bitmaps.conf
-    rm $latest_folder/10-no-embedded-bitmaps.conf
-    ''}
-
-    rm $support_folder/10-subpixel.conf $latest_folder/10-subpixel.conf
-    ln -s ${subpixelConf} $support_folder/10-subpixel.conf
-    ln -s ${subpixelConf} $latest_folder/10-subpixel.conf
-
-    ${optionalString (cfg.dpi != 0) ''
-    ln -s ${dpiConf} $support_folder/11-dpi.conf
-    ln -s ${dpiConf} $latest_folder/11-dpi.conf
-    ''}
-
-    # 50-user.conf
-    ${optionalString (!cfg.includeUserConf) ''
-    rm $support_folder/50-user.conf
-    rm $latest_folder/50-user.conf
-    ''}
-
-    # 51-local.conf
-    rm $latest_folder/51-local.conf
-    substitute \
-      ${pkgs.fontconfig-penultimate}/etc/fonts/conf.d/51-local.conf \
-      $latest_folder/51-local.conf \
-      --replace local.conf /etc/fonts/${latestVersion}/local.conf
-
-    # local.conf (indirect priority 51)
-    ${optionalString (cfg.localConf != "") ''
-    ln -s ${localConf}        $support_folder/../local.conf
-    ln -s ${localConf}        $latest_folder/../local.conf
-    ''}
-
-    # 52-nixos-default-fonts.conf
-    ln -s ${defaultFontsConf} $support_folder/52-nixos-default-fonts.conf
-    ln -s ${defaultFontsConf} $latest_folder/52-nixos-default-fonts.conf
-
-    # 53-no-bitmaps.conf
-    ${optionalString cfg.allowBitmaps ''
-    rm $support_folder/53-no-bitmaps.conf
-    rm $latest_folder/53-no-bitmaps.conf
-    ''}
-
-    ${optionalString (!cfg.allowType1) ''
-    # 53-nixos-reject-type1.conf
-    ln -s ${rejectType1} $support_folder/53-nixos-reject-type1.conf
-    ln -s ${rejectType1} $latest_folder/53-nixos-reject-type1.conf
-    ''}
-  '';
-
-in
-{
-
-  options = {
-
-    fonts = {
-
-      fontconfig = {
-
-        penultimate = {
-          enable = mkOption {
-            type = types.bool;
-            default = false;
-            description = ''
-              Enable fontconfig-penultimate settings to supplement the
-              NixOS defaults by providing per-font rendering defaults and
-              metric aliases.
-            '';
-          };
-        };
-
-      };
-    };
-
-  };
-
-  config = mkIf (config.fonts.fontconfig.enable && config.fonts.fontconfig.penultimate.enable) {
-
-    fonts.fontconfig.confPackages = [ penultimateConf ];
-
-  };
-
-}
diff --git a/nixpkgs/nixos/modules/config/fonts/fontconfig.nix b/nixpkgs/nixos/modules/config/fonts/fontconfig.nix
index 6ac64b0ec9c6..5b681ca59464 100644
--- a/nixpkgs/nixos/modules/config/fonts/fontconfig.nix
+++ b/nixpkgs/nixos/modules/config/fonts/fontconfig.nix
@@ -1,11 +1,6 @@
 /*
 
-NixOS support 2 fontconfig versions, "support" and "latest".
-
-- "latest" refers to default fontconfig package (pkgs.fontconfig).
-  configuration files are linked to /etc/fonts/VERSION/conf.d/
-- "support" refers to supportPkg (pkgs."fontconfig_${supportVersion}").
-  configuration files are linked to /etc/fonts/conf.d/
+Configuration files are linked to /etc/fonts/conf.d/
 
 This module generates a package containing configuration files and link it in /etc/fonts.
 
@@ -22,44 +17,25 @@ let
   cfg = config.fonts.fontconfig;
 
   fcBool = x: "<bool>" + (boolToString x) + "</bool>";
-
-  # back-supported fontconfig version and package
-  # version is used for font cache generation
-  supportVersion = "210";
-  supportPkg     = pkgs."fontconfig_${supportVersion}";
-
-  # latest fontconfig version and package
-  # version is used for configuration folder name, /etc/fonts/VERSION/
-  # note: format differs from supportVersion and can not be used with makeCacheConf
-  latestVersion  = pkgs.fontconfig.configVersion;
-  latestPkg      = pkgs.fontconfig;
-
-  # supported version fonts.conf
-  supportFontsConf = pkgs.makeFontsConf { fontconfig = supportPkg; fontDirectories = config.fonts.fonts; };
+  pkg = pkgs.fontconfig;
 
   # configuration file to read fontconfig cache
-  # version dependent
   # priority 0
-  cacheConfSupport = makeCacheConf { version = supportVersion; };
-  cacheConfLatest  = makeCacheConf {};
+  cacheConf  = makeCacheConf {};
 
-  # generate the font cache setting file for a fontconfig version
-  # use latest when no version is passed
+  # generate the font cache setting file
   # When cross-compiling, we can’t generate the cache, so we skip the
   # <cachedir> part. fontconfig still works but is a little slower in
   # looking things up.
-  makeCacheConf = { version ? null }:
+  makeCacheConf = { }:
     let
-      fcPackage = if version == null
-                  then "fontconfig"
-                  else "fontconfig_${version}";
       makeCache = fontconfig: pkgs.makeFontsCache { inherit fontconfig; fontDirectories = config.fonts.fonts; };
-      cache     = makeCache pkgs.${fcPackage};
-      cache32   = makeCache pkgs.pkgsi686Linux.${fcPackage};
+      cache     = makeCache pkgs.fontconfig;
+      cache32   = makeCache pkgs.pkgsi686Linux.fontconfig;
     in
     pkgs.writeText "fc-00-nixos-cache.conf" ''
       <?xml version='1.0'?>
-      <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
+      <!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
       <fontconfig>
         <!-- Font directories -->
         ${concatStringsSep "\n" (map (font: "<dir>${font}</dir>") config.fonts.fonts)}
@@ -77,7 +53,7 @@ let
   # priority 10
   renderConf = pkgs.writeText "fc-10-nixos-rendering.conf" ''
     <?xml version='1.0'?>
-    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
+    <!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
     <fontconfig>
 
       <!-- Default rendering settings -->
@@ -134,7 +110,7 @@ let
     in
     pkgs.writeText "fc-52-nixos-default-fonts.conf" ''
     <?xml version='1.0'?>
-    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
+    <!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
     <fontconfig>
 
       <!-- Default fonts -->
@@ -153,7 +129,7 @@ let
   # priority 53
   rejectBitmaps = pkgs.writeText "fc-53-no-bitmaps.conf" ''
     <?xml version="1.0"?>
-    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+    <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
     <fontconfig>
 
     ${optionalString (!cfg.allowBitmaps) ''
@@ -181,7 +157,7 @@ let
   # priority 53
   rejectType1 = pkgs.writeText "fc-53-nixos-reject-type1.conf" ''
     <?xml version="1.0"?>
-    <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+    <!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
     <fontconfig>
 
     <!-- Reject Type 1 fonts -->
@@ -200,63 +176,46 @@ let
   confPkg = pkgs.runCommand "fontconfig-conf" {
     preferLocalBuild = true;
   } ''
-    support_folder=$out/etc/fonts/conf.d
-    latest_folder=$out/etc/fonts/${latestVersion}/conf.d
-
-    mkdir -p $support_folder
-    mkdir -p $latest_folder
+    dst=$out/etc/fonts/conf.d
+    mkdir -p $dst
 
     # fonts.conf
-    ln -s ${supportFontsConf} $support_folder/../fonts.conf
-    ln -s ${latestPkg.out}/etc/fonts/fonts.conf \
-          $latest_folder/../fonts.conf
+    ln -s ${pkg.out}/etc/fonts/fonts.conf \
+          $dst/../fonts.conf
+    # TODO: remove this legacy symlink once people stop using packages built before #95358 was merged
+    mkdir -p $out/etc/fonts/2.11
+    ln -s /etc/fonts/fonts.conf \
+          $out/etc/fonts/2.11/fonts.conf
 
     # fontconfig default config files
-    ln -s ${supportPkg.out}/etc/fonts/conf.d/*.conf \
-          $support_folder/
-    ln -s ${latestPkg.out}/etc/fonts/conf.d/*.conf \
-          $latest_folder/
-
-    # update latest 51-local.conf path to look at the latest local.conf
-    rm    $latest_folder/51-local.conf
-
-    substitute ${latestPkg.out}/etc/fonts/conf.d/51-local.conf \
-               $latest_folder/51-local.conf \
-               --replace local.conf /etc/fonts/${latestVersion}/local.conf
+    ln -s ${pkg.out}/etc/fonts/conf.d/*.conf \
+          $dst/
 
     # 00-nixos-cache.conf
-    ln -s ${cacheConfSupport} \
-          $support_folder/00-nixos-cache.conf
-    ln -s ${cacheConfLatest}  $latest_folder/00-nixos-cache.conf
+    ln -s ${cacheConf}  $dst/00-nixos-cache.conf
 
     # 10-nixos-rendering.conf
-    ln -s ${renderConf}       $support_folder/10-nixos-rendering.conf
-    ln -s ${renderConf}       $latest_folder/10-nixos-rendering.conf
+    ln -s ${renderConf}       $dst/10-nixos-rendering.conf
 
     # 50-user.conf
     ${optionalString (!cfg.includeUserConf) ''
-    rm $support_folder/50-user.conf
-    rm $latest_folder/50-user.conf
+    rm $dst/50-user.conf
     ''}
 
     # local.conf (indirect priority 51)
     ${optionalString (cfg.localConf != "") ''
-    ln -s ${localConf}        $support_folder/../local.conf
-    ln -s ${localConf}        $latest_folder/../local.conf
+    ln -s ${localConf}        $dst/../local.conf
     ''}
 
     # 52-nixos-default-fonts.conf
-    ln -s ${defaultFontsConf} $support_folder/52-nixos-default-fonts.conf
-    ln -s ${defaultFontsConf} $latest_folder/52-nixos-default-fonts.conf
+    ln -s ${defaultFontsConf} $dst/52-nixos-default-fonts.conf
 
     # 53-no-bitmaps.conf
-    ln -s ${rejectBitmaps} $support_folder/53-no-bitmaps.conf
-    ln -s ${rejectBitmaps} $latest_folder/53-no-bitmaps.conf
+    ln -s ${rejectBitmaps} $dst/53-no-bitmaps.conf
 
     ${optionalString (!cfg.allowType1) ''
     # 53-nixos-reject-type1.conf
-    ln -s ${rejectType1} $support_folder/53-nixos-reject-type1.conf
-    ln -s ${rejectType1} $latest_folder/53-nixos-reject-type1.conf
+    ln -s ${rejectType1} $dst/53-nixos-reject-type1.conf
     ''}
   '';
 
@@ -278,7 +237,14 @@ in
     (mkRemovedOptionModule [ "fonts" "fontconfig" "hinting" "style" ] "")
     (mkRemovedOptionModule [ "fonts" "fontconfig" "forceAutohint" ] "")
     (mkRemovedOptionModule [ "fonts" "fontconfig" "renderMonoTTFAsBitmap" ] "")
-  ];
+  ] ++ lib.forEach [ "enable" "substitutions" "preset" ]
+     (opt: lib.mkRemovedOptionModule [ "fonts" "fontconfig" "ultimate" "${opt}" ] ''
+       The fonts.fontconfig.ultimate module and configuration is obsolete.
+       The repository has since been archived and activity has ceased.
+       https://github.com/bohoomil/fontconfig-ultimate/issues/171.
+       No action should be needed for font configuration, as the fonts.fontconfig
+       module is already used by default.
+     '');
 
   options = {
 
@@ -483,7 +449,7 @@ in
       environment.systemPackages    = [ pkgs.fontconfig ];
       environment.etc.fonts.source  = "${fontconfigEtc}/etc/fonts/";
     })
-    (mkIf (cfg.enable && !cfg.penultimate.enable) {
+    (mkIf cfg.enable {
       fonts.fontconfig.confPackages = [ confPkg ];
     })
   ];
diff --git a/nixpkgs/nixos/modules/config/krb5/default.nix b/nixpkgs/nixos/modules/config/krb5/default.nix
index ff16ffcf9c65..c2302451d702 100644
--- a/nixpkgs/nixos/modules/config/krb5/default.nix
+++ b/nixpkgs/nixos/modules/config/krb5/default.nix
@@ -41,31 +41,30 @@ let
         value)
     else value;
 
-  mkIndent = depth: concatStrings (builtins.genList (_:  " ") (2 * depth));
+  indent = "  ";
 
-  mkRelation = name: value: "${name} = ${mkVal { inherit value; }}";
+  mkRelation = name: value:
+    if (isList value) then
+      concatMapStringsSep "\n" (mkRelation name) value
+    else "${name} = ${mkVal value}";
 
-  mkVal = { value, depth ? 0 }:
+  mkVal = value:
     if (value == true) then "true"
     else if (value == false) then "false"
     else if (isInt value) then (toString value)
-    else if (isList value) then
-      concatMapStringsSep " " mkVal { inherit value depth; }
     else if (isAttrs value) then
-      (concatStringsSep "\n${mkIndent (depth + 1)}"
-        ([ "{" ] ++ (mapAttrsToList
-          (attrName: attrValue: let
-            mappedAttrValue = mkVal {
-              value = attrValue;
-              depth = depth + 1;
-            };
-          in "${attrName} = ${mappedAttrValue}")
-        value))) + "\n${mkIndent depth}}"
+      let configLines = concatLists
+        (map (splitString "\n")
+          (mapAttrsToList mkRelation value));
+      in
+      (concatStringsSep "\n${indent}"
+        ([ "{" ] ++ configLines))
+      + "\n}"
     else value;
 
   mkMappedAttrsOrString = value: concatMapStringsSep "\n"
     (line: if builtins.stringLength line > 0
-      then "${mkIndent 1}${line}"
+      then "${indent}${line}"
       else line)
     (splitString "\n"
       (if isAttrs value then
@@ -114,7 +113,10 @@ in {
           {
             "ATHENA.MIT.EDU" = {
               admin_server = "athena.mit.edu";
-              kdc = "athena.mit.edu";
+              kdc = [
+                "athena01.mit.edu"
+                "athena02.mit.edu"
+              ];
             };
           };
         '';
diff --git a/nixpkgs/nixos/modules/config/no-x-libs.nix b/nixpkgs/nixos/modules/config/no-x-libs.nix
index 873b8073fed9..941ab78f8632 100644
--- a/nixpkgs/nixos/modules/config/no-x-libs.nix
+++ b/nixpkgs/nixos/modules/config/no-x-libs.nix
@@ -27,6 +27,7 @@ with lib;
     fonts.fontconfig.enable = false;
 
     nixpkgs.overlays = singleton (const (super: {
+      cairo = super.cairo.override { x11Support = false; };
       dbus = super.dbus.override { x11Support = false; };
       networkmanager-fortisslvpn = super.networkmanager-fortisslvpn.override { withGnome = false; };
       networkmanager-l2tp = super.networkmanager-l2tp.override { withGnome = false; };
@@ -35,6 +36,7 @@ with lib;
       networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; };
       networkmanager-iodine = super.networkmanager-iodine.override { withGnome = false; };
       gobject-introspection = super.gobject-introspection.override { x11Support = false; };
+      qemu = super.qemu.override { gtkSupport = false; spiceSupport = false; sdlSupport = false; };
     }));
   };
 }
diff --git a/nixpkgs/nixos/modules/config/system-path.nix b/nixpkgs/nixos/modules/config/system-path.nix
index ae9710e3518b..67305e8499cb 100644
--- a/nixpkgs/nixos/modules/config/system-path.nix
+++ b/nixpkgs/nixos/modules/config/system-path.nix
@@ -33,17 +33,20 @@ let
       pkgs.ncurses
       pkgs.netcat
       config.programs.ssh.package
-      pkgs.perl
       pkgs.procps
-      pkgs.rsync
-      pkgs.strace
       pkgs.su
       pkgs.time
       pkgs.utillinux
-      pkgs.which # 88K size
+      pkgs.which
       pkgs.zstd
     ];
 
+    defaultPackages = map (pkg: setPrio ((pkg.meta.priority or 5) + 3) pkg)
+      [ pkgs.perl
+        pkgs.rsync
+        pkgs.strace
+      ];
+
 in
 
 {
@@ -66,6 +69,21 @@ in
         '';
       };
 
+      defaultPackages = mkOption {
+        type = types.listOf types.package;
+        default = defaultPackages;
+        example = literalExample "[]";
+        description = ''
+          Set of packages users expect from a minimal linux istall.
+          Like systemPackages, they appear in
+          /run/current-system/sw.  These packages are
+          automatically available to all users, and are
+          automatically updated every time you rebuild the system
+          configuration.
+          If you want a more minimal system, set it to an empty list.
+        '';
+      };
+
       pathsToLink = mkOption {
         type = types.listOf types.str;
         # Note: We need `/lib' to be among `pathsToLink' for NSS modules
@@ -105,7 +123,7 @@ in
 
   config = {
 
-    environment.systemPackages = requiredPackages;
+    environment.systemPackages = requiredPackages ++ config.environment.defaultPackages;
 
     environment.pathsToLink =
       [ "/bin"
diff --git a/nixpkgs/nixos/modules/config/update-users-groups.pl b/nixpkgs/nixos/modules/config/update-users-groups.pl
index e97d46ccf7f7..42f82e431954 100644
--- a/nixpkgs/nixos/modules/config/update-users-groups.pl
+++ b/nixpkgs/nixos/modules/config/update-users-groups.pl
@@ -283,3 +283,64 @@ foreach my $u (values %usersOut) {
 }
 
 updateFile("/etc/shadow", \@shadowNew, 0600);
+{
+    my $uid = getpwnam "root";
+    my $gid = getgrnam "shadow";
+    my $path = "/etc/shadow";
+    chown($uid, $gid, $path) || die "Failed to change ownership of $path: $!";
+}
+
+# Rewrite /etc/subuid & /etc/subgid to include default container mappings
+
+my $subUidMapFile = "/var/lib/nixos/auto-subuid-map";
+my $subUidMap = -e $subUidMapFile ? decode_json(read_file($subUidMapFile)) : {};
+
+my (%subUidsUsed, %subUidsPrevUsed);
+
+$subUidsPrevUsed{$_} = 1 foreach values %{$subUidMap};
+
+sub allocSubUid {
+    my ($name, @rest) = @_;
+
+    # TODO: No upper bounds?
+    my ($min, $max, $up) = (100000, 100000 * 100, 1);
+    my $prevId = $subUidMap->{$name};
+    if (defined $prevId && !defined $subUidsUsed{$prevId}) {
+        $subUidsUsed{$prevId} = 1;
+        return $prevId;
+    }
+
+    my $id = allocId(\%subUidsUsed, \%subUidsPrevUsed, $min, $max, $up, sub { my ($uid) = @_; getpwuid($uid) });
+    my $offset = $id - 100000;
+    my $count = $offset * 65536;
+    my $subordinate = 100000 + $count;
+    return $subordinate;
+}
+
+my @subGids;
+my @subUids;
+foreach my $u (values %usersOut) {
+    my $name = $u->{name};
+
+    foreach my $range (@{$u->{subUidRanges}}) {
+        my $value = join(":", ($name, $range->{startUid}, $range->{count}));
+        push @subUids, $value;
+    }
+
+    foreach my $range (@{$u->{subGidRanges}}) {
+        my $value = join(":", ($name, $range->{startGid}, $range->{count}));
+        push @subGids, $value;
+    }
+
+    if($u->{isNormalUser}) {
+        my $subordinate = allocSubUid($name);
+        $subUidMap->{$name} = $subordinate;
+        my $value = join(":", ($name, $subordinate, 65536));
+        push @subUids, $value;
+        push @subGids, $value;
+    }
+}
+
+updateFile("/etc/subuid", join("\n", @subUids) . "\n");
+updateFile("/etc/subgid", join("\n", @subGids) . "\n");
+updateFile($subUidMapFile, encode_json($subUidMap) . "\n");
diff --git a/nixpkgs/nixos/modules/config/users-groups.nix b/nixpkgs/nixos/modules/config/users-groups.nix
index e0a77b08b7e9..1bb1317a8e85 100644
--- a/nixpkgs/nixos/modules/config/users-groups.nix
+++ b/nixpkgs/nixos/modules/config/users-groups.nix
@@ -35,8 +35,19 @@ let
   '';
 
   hashedPasswordDescription = ''
-    To generate hashed password install <literal>mkpasswd</literal>
+    To generate a hashed password install the <literal>mkpasswd</literal>
     package and run <literal>mkpasswd -m sha-512</literal>.
+
+    If set to an empty string (<literal>""</literal>), this user will
+    be able to log in without being asked for a password (but not via remote
+    services such as SSH, or indirectly via <command>su</command> or
+    <command>sudo</command>). This should only be used for e.g. bootable
+    live systems. Note: this is different from setting an empty password,
+    which ca be achieved using <option>users.users.&lt;name?&gt;.password</option>.
+
+    If set to <literal>null</literal> (default) this user will not
+    be able to log in using a password (i.e. via <command>login</command>
+    command).
   '';
 
   userOpts = { name, config, ... }: {
@@ -364,18 +375,6 @@ let
     };
   };
 
-  mkSubuidEntry = user: concatStrings (
-    map (range: "${user.name}:${toString range.startUid}:${toString range.count}\n")
-      user.subUidRanges);
-
-  subuidFile = concatStrings (map mkSubuidEntry (attrValues cfg.users));
-
-  mkSubgidEntry = user: concatStrings (
-    map (range: "${user.name}:${toString range.startGid}:${toString range.count}\n")
-        user.subGidRanges);
-
-  subgidFile = concatStrings (map mkSubgidEntry (attrValues cfg.users));
-
   idsAreUnique = set: idAttr: !(fold (name: args@{ dup, acc }:
     let
       id = builtins.toString (builtins.getAttr idAttr (builtins.getAttr name set));
@@ -395,6 +394,7 @@ let
       { inherit (u)
           name uid group description home createHome isSystemUser
           password passwordFile hashedPassword
+          isNormalUser subUidRanges subGidRanges
           initialPassword initialHashedPassword;
         shell = utils.toShellPath u.shell;
       }) cfg.users;
@@ -419,9 +419,9 @@ in {
     (mkChangedOptionModule
       [ "security" "initialRootPassword" ]
       [ "users" "users" "root" "initialHashedPassword" ]
-      (cfg: if cfg.security.initialHashedPassword == "!"
+      (cfg: if cfg.security.initialRootPassword == "!"
             then null
-            else cfg.security.initialHashedPassword))
+            else cfg.security.initialRootPassword))
   ];
 
   ###### interface
@@ -463,7 +463,7 @@ in {
 
     users.users = mkOption {
       default = {};
-      type = with types; loaOf (submodule userOpts);
+      type = with types; attrsOf (submodule userOpts);
       example = {
         alice = {
           uid = 1234;
@@ -487,7 +487,7 @@ in {
         { students.gid = 1001;
           hackers = { };
         };
-      type = with types; loaOf (submodule groupOpts);
+      type = with types; attrsOf (submodule groupOpts);
       description = ''
         Additional groups to be created automatically by the system.
       '';
@@ -537,6 +537,7 @@ in {
       input.gid = ids.gids.input;
       kvm.gid = ids.gids.kvm;
       render.gid = ids.gids.render;
+      shadow.gid = ids.gids.shadow;
     };
 
     system.activationScripts.users = stringAfter [ "stdio" ]
@@ -556,16 +557,7 @@ in {
     # Install all the user shells
     environment.systemPackages = systemShells;
 
-    environment.etc = {
-      subuid = {
-        text = subuidFile;
-        mode = "0644";
-      };
-      subgid = {
-        text = subgidFile;
-        mode = "0644";
-      };
-    } // (mapAttrs' (name: { packages, ... }: {
+    environment.etc = (mapAttrs' (name: { packages, ... }: {
       name = "profiles/per-user/${name}";
       value.source = pkgs.buildEnv {
         name = "user-environment";
@@ -590,7 +582,7 @@ in {
         # password or an SSH authorized key. Privileged accounts are
         # root and users in the wheel group.
         assertion = !cfg.mutableUsers ->
-          any id (mapAttrsToList (name: cfg:
+          any id ((mapAttrsToList (name: cfg:
             (name == "root"
              || cfg.group == "wheel"
              || elem "wheel" cfg.extraGroups)
@@ -600,12 +592,24 @@ in {
              || cfg.passwordFile != null
              || cfg.openssh.authorizedKeys.keys != []
              || cfg.openssh.authorizedKeys.keyFiles != [])
-          ) cfg.users);
+          ) cfg.users) ++ [
+            config.security.googleOsLogin.enable
+          ]);
         message = ''
           Neither the root account nor any wheel user has a password or SSH authorized key.
           You must set one to prevent being locked out of your system.'';
       }
-    ];
+    ] ++ flip mapAttrsToList cfg.users (name: user:
+      {
+        assertion = (user.hashedPassword != null)
+                    -> (builtins.match ".*:.*" user.hashedPassword == null);
+        message = ''
+          The password hash of user "${name}" contains a ":" character.
+          This is invalid and would break the login system because the fields
+          of /etc/shadow (file where hashes are stored) are colon-separated.
+          Please check the value of option `users.users."${name}".hashedPassword`.'';
+      }
+    );
 
     warnings =
       builtins.filter (x: x != null) (
diff --git a/nixpkgs/nixos/modules/hardware/bladeRF.nix b/nixpkgs/nixos/modules/hardware/bladeRF.nix
index 925443477143..35b74b8382e3 100644
--- a/nixpkgs/nixos/modules/hardware/bladeRF.nix
+++ b/nixpkgs/nixos/modules/hardware/bladeRF.nix
@@ -25,4 +25,4 @@ in
     services.udev.packages = [ pkgs.libbladeRF ];
     users.groups.bladerf = {};
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/nixos/modules/hardware/ckb-next.nix b/nixpkgs/nixos/modules/hardware/ckb-next.nix
index fe0ca9f26d54..6932be1c54ca 100644
--- a/nixpkgs/nixos/modules/hardware/ckb-next.nix
+++ b/nixpkgs/nixos/modules/hardware/ckb-next.nix
@@ -43,7 +43,6 @@ in
         serviceConfig = {
           ExecStart = "${cfg.package}/bin/ckb-next-daemon ${optionalString (cfg.gid != null) "--gid=${builtins.toString cfg.gid}"}";
           Restart = "on-failure";
-          StandardOutput = "syslog";
         };
       };
     };
diff --git a/nixpkgs/nixos/modules/hardware/device-tree.nix b/nixpkgs/nixos/modules/hardware/device-tree.nix
index cf553497c89b..e0ab37bca63a 100644
--- a/nixpkgs/nixos/modules/hardware/device-tree.nix
+++ b/nixpkgs/nixos/modules/hardware/device-tree.nix
@@ -4,7 +4,114 @@ with lib;
 
 let
   cfg = config.hardware.deviceTree;
-in {
+
+  overlayType = types.submodule {
+    options = {
+      name = mkOption {
+        type = types.str;
+        description = ''
+          Name of this overlay
+        '';
+      };
+
+      dtsFile = mkOption {
+        type = types.nullOr types.path;
+        description = ''
+          Path to .dts overlay file, overlay is applied to
+          each .dtb file matching "compatible" of the overlay.
+        '';
+        default = null;
+        example = literalExample "./dts/overlays.dts";
+      };
+
+      dtsText = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          Literal DTS contents, overlay is applied to
+          each .dtb file matching "compatible" of the overlay.
+        '';
+        example = literalExample ''
+          /dts-v1/;
+          /plugin/;
+          / {
+                  compatible = "raspberrypi";
+                  fragment@0 {
+                          target-path = "/soc";
+                          __overlay__ {
+                                  pps {
+                                          compatible = "pps-gpio";
+                                          status = "okay";
+                                  };
+                          };
+                  };
+          };
+        '';
+      };
+
+      dtboFile = mkOption {
+        type = types.nullOr types.path;
+        default = null;
+        description = ''
+          Path to .dtbo compiled overlay file.
+        '';
+      };
+    };
+  };
+
+  # this requires kernel package
+  dtbsWithSymbols = pkgs.stdenv.mkDerivation {
+    name = "dtbs-with-symbols";
+    inherit (cfg.kernelPackage) src nativeBuildInputs depsBuildBuild;
+    patches = map (patch: patch.patch) cfg.kernelPackage.kernelPatches;
+    buildPhase = ''
+      patchShebangs scripts/*
+      substituteInPlace scripts/Makefile.lib \
+        --replace 'DTC_FLAGS += $(DTC_FLAGS_$(basetarget))' 'DTC_FLAGS += $(DTC_FLAGS_$(basetarget)) -@'
+      make ${pkgs.stdenv.hostPlatform.platform.kernelBaseConfig} ARCH="${pkgs.stdenv.hostPlatform.platform.kernelArch}"
+      make dtbs ARCH="${pkgs.stdenv.hostPlatform.platform.kernelArch}"
+    '';
+    installPhase = ''
+      make dtbs_install INSTALL_DTBS_PATH=$out/dtbs  ARCH="${pkgs.stdenv.hostPlatform.platform.kernelArch}"
+    '';
+  };
+
+  filterDTBs = src: if isNull cfg.filter
+    then "${src}/dtbs"
+    else
+      pkgs.runCommand "dtbs-filtered" {} ''
+        mkdir -p $out
+        cd ${src}/dtbs
+        find . -type f -name '${cfg.filter}' -print0 \
+          | xargs -0 cp -v --no-preserve=mode --target-directory $out --parents
+      '';
+
+  # Compile single Device Tree overlay source
+  # file (.dts) into its compiled variant (.dtbo)
+  compileDTS = name: f: pkgs.callPackage({ dtc }: pkgs.stdenv.mkDerivation {
+    name = "${name}-dtbo";
+
+    nativeBuildInputs = [ dtc ];
+
+    buildCommand = ''
+      dtc -I dts ${f} -O dtb -@ -o $out
+    '';
+  }) {};
+
+  # Fill in `dtboFile` for each overlay if not set already.
+  # Existence of one of these is guarded by assertion below
+  withDTBOs = xs: flip map xs (o: o // { dtboFile =
+    if isNull o.dtboFile then
+      if !isNull o.dtsFile then compileDTS o.name o.dtsFile
+      else compileDTS o.name (pkgs.writeText "dts" o.dtsText)
+    else o.dtboFile; } );
+
+in
+{
+  imports = [
+    (mkRemovedOptionModule [ "hardware" "deviceTree" "base" ] "Use hardware.deviceTree.kernelPackage instead")
+  ];
+
   options = {
       hardware.deviceTree = {
         enable = mkOption {
@@ -16,25 +123,54 @@ in {
           '';
         };
 
-        base = mkOption {
-          default = "${config.boot.kernelPackages.kernel}/dtbs";
-          defaultText = "\${config.boot.kernelPackages.kernel}/dtbs";
-          example = literalExample "pkgs.device-tree_rpi";
+        kernelPackage = mkOption {
+          default = config.boot.kernelPackages.kernel;
+          defaultText = "config.boot.kernelPackages.kernel";
+          example = literalExample "pkgs.linux_latest";
           type = types.path;
           description = ''
-            The package containing the base device-tree (.dtb) to boot. Contains
+            Kernel package containing the base device-tree (.dtb) to boot. Uses
             device trees bundled with the Linux kernel by default.
           '';
         };
 
+        name = mkOption {
+          default = null;
+          example = "some-dtb.dtb";
+          type = types.nullOr types.str;
+          description = ''
+            The name of an explicit dtb to be loaded, relative to the dtb base.
+            Useful in extlinux scenarios if the bootloader doesn't pick the
+            right .dtb file from FDTDIR.
+          '';
+        };
+
+        filter = mkOption {
+          type = types.nullOr types.str;
+          default = null;
+          example = "*rpi*.dtb";
+          description = ''
+            Only include .dtb files matching glob expression.
+          '';
+        };
+
         overlays = mkOption {
           default = [];
-          example = literalExample
-            "[\"\${pkgs.device-tree_rpi.overlays}/w1-gpio.dtbo\"]";
-          type = types.listOf types.path;
+          example = literalExample ''
+            [
+              { name = "pps"; dtsFile = ./dts/pps.dts; }
+              { name = "spi";
+                dtsText = "...";
+              }
+              { name = "precompiled"; dtboFile = ./dtbos/example.dtbo; }
+            ]
+          '';
+          type = types.listOf (types.coercedTo types.path (path: {
+            name = baseNameOf path;
+            dtboFile = path;
+          }) overlayType);
           description = ''
-            A path containing device tree overlays (.dtbo) to be applied to all
-            base device-trees.
+            List of overlays to apply to base device-tree (.dtb) files.
           '';
         };
 
@@ -43,14 +179,27 @@ in {
           type = types.nullOr types.path;
           internal = true;
           description = ''
-            A path containing the result of applying `overlays` to `base`.
+            A path containing the result of applying `overlays` to `kernelPackage`.
           '';
         };
       };
   };
 
   config = mkIf (cfg.enable) {
+
+    assertions = let
+      invalidOverlay = o: isNull o.dtsFile && isNull o.dtsText && isNull o.dtboFile;
+    in lib.singleton {
+      assertion = lib.all (o: !invalidOverlay o) cfg.overlays;
+      message = ''
+        deviceTree overlay needs one of dtsFile, dtsText or dtboFile set.
+        Offending overlay(s):
+        ${toString (map (o: o.name) (builtins.filter invalidOverlay cfg.overlays))}
+      '';
+    };
+
     hardware.deviceTree.package = if (cfg.overlays != [])
-      then pkgs.deviceTree.applyOverlays cfg.base cfg.overlays else cfg.base;
+      then pkgs.deviceTree.applyOverlays (filterDTBs dtbsWithSymbols) (withDTBOs cfg.overlays)
+      else (filterDTBs cfg.kernelPackage);
   };
 }
diff --git a/nixpkgs/nixos/modules/hardware/logitech.nix b/nixpkgs/nixos/modules/hardware/logitech.nix
index d6f43bdddcc8..3ebe6aacf5d6 100644
--- a/nixpkgs/nixos/modules/hardware/logitech.nix
+++ b/nixpkgs/nixos/modules/hardware/logitech.nix
@@ -5,24 +5,92 @@ with lib;
 let
   cfg = config.hardware.logitech;
 
-in {
+  vendor = "046d";
+
+  daemon = "g15daemon";
+
+in
+{
+  imports = [
+    (mkRenamedOptionModule [ "hardware" "logitech" "enable" ] [ "hardware" "logitech" "wireless" "enable" ])
+    (mkRenamedOptionModule [ "hardware" "logitech" "enableGraphical" ] [ "hardware" "logitech" "wireless" "enableGraphical" ])
+  ];
+
   options.hardware.logitech = {
-    enable = mkEnableOption "Logitech Devices";
 
-    enableGraphical = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Enable graphical support applications.";
+    lcd = {
+      enable = mkEnableOption "Logitech LCD Devices";
+
+      startWhenNeeded = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Only run the service when an actual supported device is plugged.
+        '';
+      };
+
+      devices = mkOption {
+        type = types.listOf types.str;
+        default = [ "0a07" "c222" "c225" "c227" "c251" ];
+        description = ''
+          List of USB device ids supported by g15daemon.
+          </para>
+          <para>
+          You most likely do not need to change this.
+        '';
+      };
+    };
+
+    wireless = {
+      enable = mkEnableOption "Logitech Wireless Devices";
+
+      enableGraphical = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Enable graphical support applications.";
+      };
     };
   };
 
-  config = lib.mkIf cfg.enable {
-    environment.systemPackages = [
-      pkgs.ltunify
-    ] ++ lib.optional cfg.enableGraphical pkgs.solaar;
+  config = lib.mkIf (cfg.wireless.enable || cfg.lcd.enable) {
+    environment.systemPackages = []
+      ++ lib.optional cfg.wireless.enable pkgs.ltunify
+      ++ lib.optional cfg.wireless.enableGraphical pkgs.solaar;
+
+    services.udev = {
+      # ltunifi and solaar both provide udev rules but the most up-to-date have been split
+      # out into a dedicated derivation
 
-    # ltunifi and solaar both provide udev rules but the most up-to-date have been split
-    # out into a dedicated derivation
-    services.udev.packages = with pkgs; [ logitech-udev-rules ];
+      packages = []
+      ++ lib.optional cfg.wireless.enable pkgs.logitech-udev-rules
+      ++ lib.optional cfg.lcd.enable pkgs.g15daemon;
+
+      extraRules = ''
+        # nixos: hardware.logitech.lcd
+      '' + lib.concatMapStringsSep "\n" (
+        dev:
+          ''ACTION=="add", SUBSYSTEMS=="usb", ATTRS{idVendor}=="${vendor}", ATTRS{idProduct}=="${dev}", TAG+="systemd", ENV{SYSTEMD_WANTS}+="${daemon}.service"''
+      ) cfg.lcd.devices;
+    };
+
+    systemd.services."${daemon}" = lib.mkIf cfg.lcd.enable {
+      description = "Logitech LCD Support Daemon";
+      documentation = [ "man:g15daemon(1)" ];
+      wantedBy = lib.mkIf (! cfg.lcd.startWhenNeeded) "multi-user.target";
+
+      serviceConfig = {
+        Type = "forking";
+        ExecStart = "${pkgs.g15daemon}/bin/g15daemon";
+        # we patch it to write to /run/g15daemon/g15daemon.pid instead of
+        # /run/g15daemon.pid so systemd will do the cleanup for us.
+        PIDFile = "/run/${daemon}/g15daemon.pid";
+        PrivateTmp = true;
+        PrivateNetwork = true;
+        ProtectHome = "tmpfs";
+        ProtectSystem = "full"; # strict doesn't work
+        RuntimeDirectory = daemon;
+        Restart = "on-failure";
+      };
+    };
   };
 }
diff --git a/nixpkgs/nixos/modules/hardware/onlykey.nix b/nixpkgs/nixos/modules/hardware/onlykey.nix
index b6820fe01911..07358c8a8782 100644
--- a/nixpkgs/nixos/modules/hardware/onlykey.nix
+++ b/nixpkgs/nixos/modules/hardware/onlykey.nix
@@ -26,7 +26,7 @@ with lib;
   ####### implementation
 
   config = mkIf config.hardware.onlykey.enable {
-    services.udev.extraRules = builtin.readFile ./onlykey.udev;
+    services.udev.extraRules = builtins.readFile ./onlykey.udev;
   };
 
 
diff --git a/nixpkgs/nixos/modules/hardware/printers.nix b/nixpkgs/nixos/modules/hardware/printers.nix
index 56b91933477d..752de41f26de 100644
--- a/nixpkgs/nixos/modules/hardware/printers.nix
+++ b/nixpkgs/nixos/modules/hardware/printers.nix
@@ -84,7 +84,7 @@ in {
             model = mkOption {
               type = types.str;
               example = literalExample ''
-                gutenprint.''${lib.version.majorMinor (lib.getVersion pkgs.cups)}://brother-hl-5140/expert
+                gutenprint.''${lib.versions.majorMinor (lib.getVersion pkgs.gutenprint)}://brother-hl-5140/expert
               '';
               description = ''
                 Location of the ppd driver file for the printer.
diff --git a/nixpkgs/nixos/modules/hardware/system-76.nix b/nixpkgs/nixos/modules/hardware/system-76.nix
new file mode 100644
index 000000000000..48eb63f4f22d
--- /dev/null
+++ b/nixpkgs/nixos/modules/hardware/system-76.nix
@@ -0,0 +1,56 @@
+{ config, lib, pkgs, ... }:
+
+let
+  inherit (lib) mkOption mkEnableOption types mkIf mkMerge optional versionOlder;
+  cfg = config.hardware.system76;
+
+  kpkgs = config.boot.kernelPackages;
+  modules = [ "system76" "system76-io" ] ++ (optional (versionOlder kpkgs.kernel.version "5.5") "system76-acpi");
+  modulePackages = map (m: kpkgs.${m}) modules;
+  moduleConfig = mkIf cfg.kernel-modules.enable {
+    boot.extraModulePackages = modulePackages;
+
+    boot.kernelModules = modules;
+
+    services.udev.packages = modulePackages;
+  };
+
+  firmware-pkg = pkgs.system76-firmware;
+  firmwareConfig = mkIf cfg.firmware-daemon.enable {
+    services.dbus.packages = [ firmware-pkg ];
+
+    systemd.services.system76-firmware-daemon = {
+      description = "The System76 Firmware Daemon";
+
+      serviceConfig = {
+        ExecStart = "${firmware-pkg}/bin/system76-firmware-daemon";
+
+        Restart = "on-failure";
+      };
+
+      wantedBy = [ "multi-user.target" ];
+    };
+  };
+in {
+  options = {
+    hardware.system76 = {
+      enableAll = mkEnableOption "all recommended configuration for system76 systems";
+
+      firmware-daemon.enable = mkOption {
+        default = cfg.enableAll;
+        example = true;
+        description = "Whether to enable the system76 firmware daemon";
+        type = types.bool;
+      };
+
+      kernel-modules.enable = mkOption {
+        default = cfg.enableAll;
+        example = true;
+        description = "Whether to make the system76 out-of-tree kernel modules available";
+        type = types.bool;
+      };
+    };
+  };
+
+  config = mkMerge [ moduleConfig firmwareConfig ];
+}
diff --git a/nixpkgs/nixos/modules/hardware/tuxedo-keyboard.nix b/nixpkgs/nixos/modules/hardware/tuxedo-keyboard.nix
index 898eed244935..97af7c61f3c9 100644
--- a/nixpkgs/nixos/modules/hardware/tuxedo-keyboard.nix
+++ b/nixpkgs/nixos/modules/hardware/tuxedo-keyboard.nix
@@ -2,7 +2,7 @@
 
 with lib;
 
-let 
+let
   cfg = config.hardware.tuxedo-keyboard;
   tuxedo-keyboard = config.boot.kernelPackages.tuxedo-keyboard;
 in
@@ -27,7 +27,7 @@ in
       '';
     };
 
-    config = mkIf cfg.enable 
+    config = mkIf cfg.enable
     {
       boot.kernelModules = ["tuxedo_keyboard"];
       boot.extraModulePackages = [ tuxedo-keyboard ];
diff --git a/nixpkgs/nixos/modules/hardware/video/hidpi.nix b/nixpkgs/nixos/modules/hardware/video/hidpi.nix
new file mode 100644
index 000000000000..ac72b652504e
--- /dev/null
+++ b/nixpkgs/nixos/modules/hardware/video/hidpi.nix
@@ -0,0 +1,16 @@
+{ lib, pkgs, config, ...}:
+with lib;
+
+{
+  options.hardware.video.hidpi.enable = mkEnableOption "Font/DPI configuration optimized for HiDPI displays";
+
+  config = mkIf config.hardware.video.hidpi.enable {
+    console.font = lib.mkDefault "${pkgs.terminus_font}/share/consolefonts/ter-v32n.psf.gz";
+
+    # Needed when typing in passwords for full disk encryption
+    console.earlySetup = mkDefault true;
+    boot.loader.systemd-boot.consoleMode = mkDefault "1";
+
+    # TODO Find reasonable defaults X11 & wayland
+  };
+}
diff --git a/nixpkgs/nixos/modules/hardware/video/nvidia.nix b/nixpkgs/nixos/modules/hardware/video/nvidia.nix
index 6328971492c5..2acb891f1a9a 100644
--- a/nixpkgs/nixos/modules/hardware/video/nvidia.nix
+++ b/nixpkgs/nixos/modules/hardware/video/nvidia.nix
@@ -16,6 +16,8 @@ let
         kernelPackages.nvidia_x11
     else if elem "nvidiaBeta" drivers then
         kernelPackages.nvidia_x11_beta
+    else if elem "nvidiaVulkanBeta" drivers then
+        kernelPackages.nvidia_x11_vulkan_beta
     else if elem "nvidiaLegacy304" drivers then
       kernelPackages.nvidia_x11_legacy304
     else if elem "nvidiaLegacy340" drivers then
diff --git a/nixpkgs/nixos/modules/hardware/video/uvcvideo/default.nix b/nixpkgs/nixos/modules/hardware/video/uvcvideo/default.nix
index 7e3e94fdf2bd..cf6aa052abb0 100644
--- a/nixpkgs/nixos/modules/hardware/video/uvcvideo/default.nix
+++ b/nixpkgs/nixos/modules/hardware/video/uvcvideo/default.nix
@@ -26,7 +26,7 @@ in
           Whether to enable <command>uvcvideo</command> dynamic controls.
 
           Note that enabling this brings the <command>uvcdynctrl</command> tool
-          into your environement and register all dynamic controls from
+          into your environment and register all dynamic controls from
           specified <command>packages</command> to the <command>uvcvideo</command> driver.
         '';
       };
diff --git a/nixpkgs/nixos/modules/hardware/xpadneo.nix b/nixpkgs/nixos/modules/hardware/xpadneo.nix
new file mode 100644
index 000000000000..d504697e61fd
--- /dev/null
+++ b/nixpkgs/nixos/modules/hardware/xpadneo.nix
@@ -0,0 +1,29 @@
+{ config, lib, ... }:
+
+with lib;
+let
+  cfg = config.hardware.xpadneo;
+in
+{
+  options.hardware.xpadneo = {
+    enable = mkEnableOption "the xpadneo driver for Xbox One wireless controllers";
+  };
+
+  config = mkIf cfg.enable {
+    boot = {
+      # Must disable Enhanced Retransmission Mode to support bluetooth pairing
+      # https://wiki.archlinux.org/index.php/Gamepad#Connect_Xbox_Wireless_Controller_with_Bluetooth
+      extraModprobeConfig =
+        mkIf
+          config.hardware.bluetooth.enable
+          "options bluetooth disable_ertm=1";
+
+      extraModulePackages = with config.boot.kernelPackages; [ xpadneo ];
+      kernelModules = [ "hid_xpadneo" ];
+    };
+  };
+
+  meta = {
+    maintainers = with maintainers; [ metadark ];
+  };
+}
diff --git a/nixpkgs/nixos/modules/i18n/input-method/ibus.nix b/nixpkgs/nixos/modules/i18n/input-method/ibus.nix
index b4746b21b653..cf24ecf58631 100644
--- a/nixpkgs/nixos/modules/i18n/input-method/ibus.nix
+++ b/nixpkgs/nixos/modules/i18n/input-method/ibus.nix
@@ -64,7 +64,7 @@ in
     # Without dconf enabled it is impossible to use IBus
     programs.dconf.enable = true;
 
-    programs.dconf.profiles.ibus = "${ibusPackage}/etc/dconf/profile/ibus";
+    programs.dconf.packages = [ ibusPackage ];
 
     services.dbus.packages = [
       ibusAutostart
diff --git a/nixpkgs/nixos/modules/i18n/input-method/uim.nix b/nixpkgs/nixos/modules/i18n/input-method/uim.nix
index 7ad68bf851fe..459294657e0a 100644
--- a/nixpkgs/nixos/modules/i18n/input-method/uim.nix
+++ b/nixpkgs/nixos/modules/i18n/input-method/uim.nix
@@ -2,7 +2,7 @@
 
 with lib;
 
-let 
+let
   cfg = config.i18n.inputMethod.uim;
 in
 {
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix b/nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix
index 3707c4b7ec62..8c98691116dc 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-graphical-gnome.nix
@@ -11,15 +11,17 @@ with lib;
 
   services.xserver.desktopManager.gnome3.enable = true;
 
-  services.xserver.displayManager.gdm = {
-    enable = true;
-    # autoSuspend makes the machine automatically suspend after inactivity.
-    # It's possible someone could/try to ssh'd into the machine and obviously
-    # have issues because it's inactive.
-    # See:
-    # * https://github.com/NixOS/nixpkgs/pull/63790
-    # * https://gitlab.gnome.org/GNOME/gnome-control-center/issues/22
-    autoSuspend = false;
+  services.xserver.displayManager = {
+    gdm = {
+      enable = true;
+      # autoSuspend makes the machine automatically suspend after inactivity.
+      # It's possible someone could/try to ssh'd into the machine and obviously
+      # have issues because it's inactive.
+      # See:
+      # * https://github.com/NixOS/nixpkgs/pull/63790
+      # * https://gitlab.gnome.org/GNOME/gnome-control-center/issues/22
+      autoSuspend = false;
+    };
     autoLogin = {
       enable = true;
       user = "nixos";
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix b/nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix
index e76e06654aca..098c2b2870b0 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/installation-cd-graphical-plasma5.nix
@@ -16,8 +16,8 @@ with lib;
     };
 
     # Automatically login as nixos.
-    displayManager.sddm = {
-      enable = true;
+    displayManager = {
+      sddm.enable = true;
       autoLogin = {
         enable = true;
         user = "nixos";
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix b/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix
index 1cd2252ecf24..405fbfa10dbf 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -417,6 +417,14 @@ in
       '';
     };
 
+    isoImage.squashfsCompression = mkOption {
+      default = "xz -Xdict-size 100%";
+      description = ''
+        Compression settings to use for the squashfs nix store.
+      '';
+      example = "zstd -Xcompression-level 6";
+    };
+
     isoImage.edition = mkOption {
       default = "";
       description = ''
@@ -614,6 +622,7 @@ in
     # Create the squashfs image that contains the Nix store.
     system.build.squashfsStore = pkgs.callPackage ../../../lib/make-squashfs.nix {
       storeContents = config.isoImage.storeContents;
+      comp = config.isoImage.squashfsCompression;
     };
 
     # Individual files to be included on the CD, outside of the Nix
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix
index 2d34406a0320..bef6cd2fb5a2 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-aarch64.nix
@@ -2,12 +2,6 @@
 # nix-build nixos -I nixos-config=nixos/modules/installer/cd-dvd/sd-image-aarch64.nix -A config.system.build.sdImage
 { config, lib, pkgs, ... }:
 
-let
-  extlinux-conf-builder =
-    import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix {
-      pkgs = pkgs.buildPackages;
-    };
-in
 {
   imports = [
     ../../profiles/base.nix
@@ -56,7 +50,7 @@ in
       '';
     populateRootCommands = ''
       mkdir -p ./files/boot
-      ${extlinux-conf-builder} -t 3 -c ${config.system.build.toplevel} -d ./files/boot
+      ${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
     '';
   };
 
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix
index 651d1a36dc11..d2ba611532e0 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix
@@ -2,12 +2,6 @@
 # nix-build nixos -I nixos-config=nixos/modules/installer/cd-dvd/sd-image-armv7l-multiplatform.nix -A config.system.build.sdImage
 { config, lib, pkgs, ... }:
 
-let
-  extlinux-conf-builder =
-    import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix {
-      pkgs = pkgs.buildPackages;
-    };
-in
 {
   imports = [
     ../../profiles/base.nix
@@ -53,7 +47,7 @@ in
       '';
     populateRootCommands = ''
       mkdir -p ./files/boot
-      ${extlinux-conf-builder} -t 3 -c ${config.system.build.toplevel} -d ./files/boot
+      ${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
     '';
   };
 
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix
index ba4127eaa0e8..40a01f961771 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix
@@ -2,12 +2,6 @@
 # nix-build nixos -I nixos-config=nixos/modules/installer/cd-dvd/sd-image-raspberrypi.nix -A config.system.build.sdImage
 { config, lib, pkgs, ... }:
 
-let
-  extlinux-conf-builder =
-    import ../../system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.nix {
-      pkgs = pkgs.buildPackages;
-    };
-in
 {
   imports = [
     ../../profiles/base.nix
@@ -42,7 +36,7 @@ in
       '';
     populateRootCommands = ''
       mkdir -p ./files/boot
-      ${extlinux-conf-builder} -t 3 -c ${config.system.build.toplevel} -d ./files/boot
+      ${config.boot.loader.generic-extlinux-compatible.populateCmd} -c ${config.system.build.toplevel} -d ./files/boot
     '';
   };
 
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
index c545a1e7e242..87545e842030 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image-raspberrypi4.nix
@@ -18,6 +18,7 @@
 
   sdImage = {
     firmwareSize = 128;
+    firmwarePartitionName = "NIXOS_BOOT";
     # This is a hack to avoid replicating config.txt from boot.loader.raspberryPi
     populateFirmwareCommands =
       "${config.system.build.installBootLoader} ${config.system.build.toplevel} -d ./firmware";
@@ -25,6 +26,12 @@
     populateRootCommands = "";
   };
 
+  fileSystems."/boot/firmware" = {
+    # This effectively "renames" the attrsOf entry set in sd-image.nix
+    mountPoint = "/boot";
+    neededForBoot = true;
+  };
+
   # the installation media is also the installation target,
   # so we don't want to provide the installation configuration.nix.
   installer.cloneConfig = false;
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image.nix b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image.nix
index 98c12e30633c..231c7bf0a6c2 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/sd-image.nix
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/sd-image.nix
@@ -63,6 +63,14 @@ in
       '';
     };
 
+    firmwarePartitionName = mkOption {
+      type = types.str;
+      default = "FIRMWARE";
+      description = ''
+        Name of the filesystem which holds the boot firmware.
+      '';
+    };
+
     rootPartitionUUID = mkOption {
       type = types.nullOr types.str;
       default = null;
@@ -91,7 +99,7 @@ in
     };
 
     populateRootCommands = mkOption {
-      example = literalExample "''\${extlinux-conf-builder} -t 3 -c \${config.system.build.toplevel} -d ./files/boot''";
+      example = literalExample "''\${config.boot.loader.generic-extlinux-compatible.populateCmd} -c \${config.system.build.toplevel} -d ./files/boot''";
       description = ''
         Shell commands to populate the ./files directory.
         All files in that directory are copied to the
@@ -100,6 +108,15 @@ in
       '';
     };
 
+    postBuildCommands = mkOption {
+      example = literalExample "'' dd if=\${pkgs.myBootLoader}/SPL of=$img bs=1024 seek=1 conv=notrunc ''";
+      default = "";
+      description = ''
+        Shell commands to run after the image is built.
+        Can be used for boards requiring to dd u-boot SPL before actual partitions.
+      '';
+    };
+
     compressImage = mkOption {
       type = types.bool;
       default = true;
@@ -114,7 +131,7 @@ in
   config = {
     fileSystems = {
       "/boot/firmware" = {
-        device = "/dev/disk/by-label/FIRMWARE";
+        device = "/dev/disk/by-label/${config.sdImage.firmwarePartitionName}";
         fsType = "vfat";
         # Alternatively, this could be removed from the configuration.
         # The filesystem is not needed at runtime, it could be treated
@@ -178,7 +195,7 @@ in
         # Create a FAT32 /boot/firmware partition of suitable size into firmware_part.img
         eval $(partx $img -o START,SECTORS --nr 1 --pairs)
         truncate -s $((SECTORS * 512)) firmware_part.img
-        faketime "1970-01-01 00:00:00" mkfs.vfat -i ${config.sdImage.firmwarePartitionID} -n FIRMWARE firmware_part.img
+        faketime "1970-01-01 00:00:00" mkfs.vfat -i ${config.sdImage.firmwarePartitionID} -n ${config.sdImage.firmwarePartitionName} firmware_part.img
 
         # Populate the files intended for /boot/firmware
         mkdir firmware
@@ -189,6 +206,9 @@ in
         # Verify the FAT partition before copying it.
         fsck.vfat -vn firmware_part.img
         dd conv=notrunc if=firmware_part.img of=$img seek=$START count=$SECTORS
+
+        ${config.sdImage.postBuildCommands}
+
         if test -n "$compressImage"; then
             zstd -T$NIX_BUILD_CORES --rm $img
         fi
diff --git a/nixpkgs/nixos/modules/installer/cd-dvd/system-tarball-pc-readme.txt b/nixpkgs/nixos/modules/installer/cd-dvd/system-tarball-pc-readme.txt
index 84252f292c54..887bf60d0fbe 100644
--- a/nixpkgs/nixos/modules/installer/cd-dvd/system-tarball-pc-readme.txt
+++ b/nixpkgs/nixos/modules/installer/cd-dvd/system-tarball-pc-readme.txt
@@ -63,7 +63,7 @@ Activate the system: look for a directory in nix/store similar to:
 Having found it, activate that nixos system *twice*:
   chroot . /nix/store/SOMETHING-nixos-SOMETHING/activate
   chroot . /nix/store/SOMETHING-nixos-SOMETHING/activate
-  
+
 This runs a 'hostname' command. Restore your old hostname with:
   hostname OLDHOSTNAME
 
diff --git a/nixpkgs/nixos/modules/installer/tools/nix-fallback-paths.nix b/nixpkgs/nixos/modules/installer/tools/nix-fallback-paths.nix
index 35a7b382b7cf..a15a2dbadb8c 100644
--- a/nixpkgs/nixos/modules/installer/tools/nix-fallback-paths.nix
+++ b/nixpkgs/nixos/modules/installer/tools/nix-fallback-paths.nix
@@ -1,6 +1,6 @@
 {
-  x86_64-linux = "/nix/store/j8dbv5w6jl34caywh2ygdy88knx1mdf7-nix-2.3.6";
-  i686-linux = "/nix/store/9fqvbdisahqp0238vrs7wn5anpri0a65-nix-2.3.6";
-  aarch64-linux = "/nix/store/72pwn0nm9bjqx9vpi8sgh4bl6g5wh814-nix-2.3.6";
-  x86_64-darwin = "/nix/store/g37vk77m90p5zcl5nixjlzp3vqpisfn5-nix-2.3.6";
+  x86_64-linux = "/nix/store/4vz8sh9ngx34ivi0bw5hlycxdhvy5hvz-nix-2.3.7";
+  i686-linux = "/nix/store/dzxkg9lpp60bjmzvagns42vqlz3yq5kx-nix-2.3.7";
+  aarch64-linux = "/nix/store/cfvf8nl8mwyw817by5y8zd3s8pnf5m9f-nix-2.3.7";
+  x86_64-darwin = "/nix/store/5ira7xgs92inqz1x8l0n1wci4r79hnd0-nix-2.3.7";
 }
diff --git a/nixpkgs/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh b/nixpkgs/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh
index 25106733087e..2a6c3ab11497 100644
--- a/nixpkgs/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh
+++ b/nixpkgs/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh
@@ -1,4 +1,4 @@
-#! @shell@ -e
+#! @runtimeShell@ -e
 
 # Shows the usage of this command to the user
 
diff --git a/nixpkgs/nixos/modules/installer/tools/nixos-enter.sh b/nixpkgs/nixos/modules/installer/tools/nixos-enter.sh
index 1fdd4627a902..c72ef6e9c28b 100644
--- a/nixpkgs/nixos/modules/installer/tools/nixos-enter.sh
+++ b/nixpkgs/nixos/modules/installer/tools/nixos-enter.sh
@@ -1,4 +1,4 @@
-#! @shell@
+#! @runtimeShell@
 
 set -e
 
diff --git a/nixpkgs/nixos/modules/installer/tools/nixos-generate-config.pl b/nixpkgs/nixos/modules/installer/tools/nixos-generate-config.pl
index 422c405054d5..c8303a6eb602 100644
--- a/nixpkgs/nixos/modules/installer/tools/nixos-generate-config.pl
+++ b/nixpkgs/nixos/modules/installer/tools/nixos-generate-config.pl
@@ -497,8 +497,8 @@ if (-f $fb_modes_file && -r $fb_modes_file) {
     $modes =~ m/([0-9]+)x([0-9]+)/;
     my $console_width = $1, my $console_height = $2;
     if ($console_width > 1920) {
-        push @attrs, "# High-DPI console";
-        push @attrs, 'console.font = lib.mkDefault "${pkgs.terminus_font}/share/consolefonts/ter-u28n.psf.gz";';
+        push @attrs, "# high-resolution display";
+        push @attrs, 'hardware.video.hidpi.enable = lib.mkDefault true;';
     }
 }
 
@@ -628,6 +628,7 @@ EOF
         write_file($fn, <<EOF);
 @configuration@
 EOF
+        print STDERR "For more hardware-specific settings, see https://github.com/NixOS/nixos-hardware"
     } else {
         print STDERR "warning: not overwriting existing $fn\n";
     }
diff --git a/nixpkgs/nixos/modules/installer/tools/nixos-install.sh b/nixpkgs/nixos/modules/installer/tools/nixos-install.sh
index 1bccbbfaf245..a180d1bc4c19 100644
--- a/nixpkgs/nixos/modules/installer/tools/nixos-install.sh
+++ b/nixpkgs/nixos/modules/installer/tools/nixos-install.sh
@@ -1,4 +1,4 @@
-#! @shell@
+#! @runtimeShell@
 
 set -e
 shopt -s nullglob
@@ -10,6 +10,7 @@ umask 0022
 
 # Parse the command line for the -I flag
 extraBuildFlags=()
+flakeFlags=()
 
 mountPoint=/mnt
 channelPath=
@@ -34,6 +35,23 @@ while [ "$#" -gt 0 ]; do
         --system|--closure)
             system="$1"; shift 1
             ;;
+        --flake)
+          flake="$1"
+          flakeFlags=(--experimental-features 'nix-command flakes')
+          shift 1
+          ;;
+        --recreate-lock-file|--no-update-lock-file|--no-write-lock-file|--no-registries|--commit-lock-file)
+          lockFlags+=("$i")
+          ;;
+        --update-input)
+          j="$1"; shift 1
+          lockFlags+=("$i" "$j")
+          ;;
+        --override-input)
+          j="$1"; shift 1
+          k="$1"; shift 1
+          lockFlags+=("$i" "$j" "$k")
+          ;;
         --channel)
             channelPath="$1"; shift 1
             ;;
@@ -71,6 +89,17 @@ if ! test -e "$mountPoint"; then
     exit 1
 fi
 
+# Verify permissions are okay-enough
+checkPath="$(realpath "$mountPoint")"
+while [[ "$checkPath" != "/" ]]; do
+    mode="$(stat -c '%a' "$checkPath")"
+    if [[ "${mode: -1}" -lt "5" ]]; then
+        echo "path $checkPath should have permissions 755, but had permissions $mode. Consider running 'chmod o+rx $checkPath'."
+        exit 1
+    fi
+    checkPath="$(dirname "$checkPath")"
+done
+
 # Get the path of the NixOS configuration file.
 if [[ -z $NIXOS_CONFIG ]]; then
     NIXOS_CONFIG=$mountPoint/etc/nixos/configuration.nix
@@ -81,14 +110,32 @@ if [[ ${NIXOS_CONFIG:0:1} != / ]]; then
     exit 1
 fi
 
-if [[ ! -e $NIXOS_CONFIG && -z $system ]]; then
+if [[ -n $flake ]]; then
+    if [[ $flake =~ ^(.*)\#([^\#\"]*)$ ]]; then
+       flake="${BASH_REMATCH[1]}"
+       flakeAttr="${BASH_REMATCH[2]}"
+    fi
+    if [[ -z "$flakeAttr" ]]; then
+        echo "Please specify the name of the NixOS configuration to be installed, as a URI fragment in the flake-uri."
+        echo "For example, to use the output nixosConfigurations.foo from the flake.nix, append \"#foo\" to the flake-uri."
+        exit 1
+    fi
+    flakeAttr="nixosConfigurations.\"$flakeAttr\""
+fi
+
+# Resolve the flake.
+if [[ -n $flake ]]; then
+    flake=$(nix "${flakeFlags[@]}" flake info --json "${extraBuildFlags[@]}" "${lockFlags[@]}" -- "$flake" | jq -r .url)
+fi
+
+if [[ ! -e $NIXOS_CONFIG && -z $system && -z $flake ]]; then
     echo "configuration file $NIXOS_CONFIG doesn't exist"
     exit 1
 fi
 
 # A place to drop temporary stuff.
-tmpdir="$(mktemp -d -p $mountPoint)"
-trap "rm -rf $tmpdir" EXIT
+tmpdir="$(mktemp -d -p "$mountPoint")"
+trap 'rm -rf $tmpdir' EXIT
 
 # store temporary files on target filesystem by default
 export TMPDIR=${TMPDIR:-$tmpdir}
@@ -97,12 +144,19 @@ sub="auto?trusted=1"
 
 # Build the system configuration in the target filesystem.
 if [[ -z $system ]]; then
-    echo "building the configuration in $NIXOS_CONFIG..."
     outLink="$tmpdir/system"
-    nix-build --out-link "$outLink" --store "$mountPoint" "${extraBuildFlags[@]}" \
-        --extra-substituters "$sub" \
-        '<nixpkgs/nixos>' -A system -I "nixos-config=$NIXOS_CONFIG" ${verbosity[@]}
-    system=$(readlink -f $outLink)
+    if [[ -z $flake ]]; then
+        echo "building the configuration in $NIXOS_CONFIG..."
+        nix-build --out-link "$outLink" --store "$mountPoint" "${extraBuildFlags[@]}" \
+            --extra-substituters "$sub" \
+            '<nixpkgs/nixos>' -A system -I "nixos-config=$NIXOS_CONFIG" "${verbosity[@]}"
+    else
+        echo "building the flake in $flake..."
+        nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.toplevel" \
+            --extra-substituters "$sub" "${verbosity[@]}" \
+            "${extraBuildFlags[@]}" "${lockFlags[@]}" --out-link "$outLink"
+    fi
+    system=$(readlink -f "$outLink")
 fi
 
 # Set the system profile to point to the configuration. TODO: combine
@@ -110,7 +164,7 @@ fi
 # a progress bar.
 nix-env --store "$mountPoint" "${extraBuildFlags[@]}" \
         --extra-substituters "$sub" \
-        -p $mountPoint/nix/var/nix/profiles/system --set "$system" ${verbosity[@]}
+        -p "$mountPoint"/nix/var/nix/profiles/system --set "$system" "${verbosity[@]}"
 
 # Copy the NixOS/Nixpkgs sources to the target as the initial contents
 # of the NixOS channel.
@@ -120,12 +174,12 @@ if [[ -z $noChannelCopy ]]; then
     fi
     if [[ -n $channelPath ]]; then
         echo "copying channel..."
-        mkdir -p $mountPoint/nix/var/nix/profiles/per-user/root
+        mkdir -p "$mountPoint"/nix/var/nix/profiles/per-user/root
         nix-env --store "$mountPoint" "${extraBuildFlags[@]}" --extra-substituters "$sub" \
-                -p $mountPoint/nix/var/nix/profiles/per-user/root/channels --set "$channelPath" --quiet \
-                ${verbosity[@]}
-        install -m 0700 -d $mountPoint/root/.nix-defexpr
-        ln -sfn /nix/var/nix/profiles/per-user/root/channels $mountPoint/root/.nix-defexpr/channels
+                -p "$mountPoint"/nix/var/nix/profiles/per-user/root/channels --set "$channelPath" --quiet \
+                "${verbosity[@]}"
+        install -m 0700 -d "$mountPoint"/root/.nix-defexpr
+        ln -sfn /nix/var/nix/profiles/per-user/root/channels "$mountPoint"/root/.nix-defexpr/channels
     fi
 fi
 
@@ -139,7 +193,7 @@ touch "$mountPoint/etc/NIXOS"
 if [[ -z $noBootLoader ]]; then
     echo "installing the boot loader..."
     # Grub needs an mtab.
-    ln -sfn /proc/mounts $mountPoint/etc/mtab
+    ln -sfn /proc/mounts "$mountPoint"/etc/mtab
     NIXOS_INSTALL_BOOTLOADER=1 nixos-enter --root "$mountPoint" -- /run/current-system/bin/switch-to-configuration boot
 fi
 
diff --git a/nixpkgs/nixos/modules/installer/tools/nixos-option/nixos-option.cc b/nixpkgs/nixos/modules/installer/tools/nixos-option/nixos-option.cc
index 1a7b07a74f8a..f779d82edbd6 100644
--- a/nixpkgs/nixos/modules/installer/tools/nixos-option/nixos-option.cc
+++ b/nixpkgs/nixos/modules/installer/tools/nixos-option/nixos-option.cc
@@ -224,7 +224,7 @@ bool optionTypeIs(Context & ctx, Value & v, const std::string & soughtType)
 
 bool isAggregateOptionType(Context & ctx, Value & v)
 {
-    return optionTypeIs(ctx, v, "attrsOf") || optionTypeIs(ctx, v, "listOf") || optionTypeIs(ctx, v, "loaOf");
+    return optionTypeIs(ctx, v, "attrsOf") || optionTypeIs(ctx, v, "listOf");
 }
 
 MakeError(OptionPathError, EvalError);
diff --git a/nixpkgs/nixos/modules/installer/tools/nixos-rebuild.sh b/nixpkgs/nixos/modules/installer/tools/nixos-rebuild.sh
index 354274478a38..08813d17ff99 100644
--- a/nixpkgs/nixos/modules/installer/tools/nixos-rebuild.sh
+++ b/nixpkgs/nixos/modules/installer/tools/nixos-rebuild.sh
@@ -1,6 +1,6 @@
-#! @shell@
+#! @runtimeShell@
 
-if [ -x "@shell@" ]; then export SHELL="@shell@"; fi;
+if [ -x "@runtimeShell@" ]; then export SHELL="@runtimeShell@"; fi;
 
 set -e
 set -o pipefail
@@ -17,11 +17,13 @@ showSyntax() {
 origArgs=("$@")
 extraBuildFlags=()
 lockFlags=()
+flakeFlags=()
 action=
 buildNix=1
 fast=
 rollback=
 upgrade=
+upgrade_all=
 repair=
 profile=/nix/var/nix/profiles/system
 buildHost=
@@ -54,6 +56,10 @@ while [ "$#" -gt 0 ]; do
       --upgrade)
         upgrade=1
         ;;
+      --upgrade-all)
+        upgrade=1
+        upgrade_all=1
+        ;;
       --repair)
         repair=1
         extraBuildFlags+=("$i")
@@ -99,6 +105,7 @@ while [ "$#" -gt 0 ]; do
         ;;
       --flake)
         flake="$1"
+        flakeFlags=(--experimental-features 'nix-command flakes')
         shift 1
         ;;
       --recreate-lock-file|--no-update-lock-file|--no-write-lock-file|--no-registries|--commit-lock-file)
@@ -221,15 +228,22 @@ if [ "$action" = switch -o "$action" = boot -o "$action" = test ]; then
 fi
 
 
-# If ‘--upgrade’ is given, run ‘nix-channel --update nixos’.
+# If ‘--upgrade’ or `--upgrade-all` is given,
+# run ‘nix-channel --update nixos’.
 if [[ -n $upgrade && -z $_NIXOS_REBUILD_REEXEC && -z $flake ]]; then
-    nix-channel --update nixos
+    # If --upgrade-all is passed, or there are other channels that
+    # contain a file called ".update-on-nixos-rebuild", update them as
+    # well. Also upgrade the nixos channel.
 
-    # If there are other channels that contain a file called
-    # ".update-on-nixos-rebuild", update them as well.
     for channelpath in /nix/var/nix/profiles/per-user/root/channels/*; do
-        if [ -e "$channelpath/.update-on-nixos-rebuild" ]; then
-            nix-channel --update "$(basename "$channelpath")"
+        channel_name=$(basename "$channelpath")
+
+        if [[ "$channel_name" == "nixos" ]]; then
+            nix-channel --update "$channel_name"
+        elif [ -e "$channelpath/.update-on-nixos-rebuild" ]; then
+            nix-channel --update "$channel_name"
+        elif [[ -n $upgrade_all ]] ; then
+            nix-channel --update "$channel_name"
         fi
     done
 fi
@@ -281,16 +295,19 @@ fi
 
 # Resolve the flake.
 if [[ -n $flake ]]; then
-    flake=$(nix flake info --json "${extraBuildFlags[@]}" "${lockFlags[@]}" -- "$flake" | jq -r .url)
+    flake=$(nix "${flakeFlags[@]}" flake info --json "${extraBuildFlags[@]}" "${lockFlags[@]}" -- "$flake" | jq -r .url)
 fi
 
 # Find configuration.nix and open editor instead of building.
 if [ "$action" = edit ]; then
     if [[ -z $flake ]]; then
         NIXOS_CONFIG=${NIXOS_CONFIG:-$(nix-instantiate --find-file nixos-config)}
-        exec "${EDITOR:-nano}" "$NIXOS_CONFIG"
+        if [[ -d $NIXOS_CONFIG ]]; then
+            NIXOS_CONFIG=$NIXOS_CONFIG/default.nix
+        fi
+        exec ${EDITOR:-nano} "$NIXOS_CONFIG"
     else
-        exec nix edit "${lockFlags[@]}" -- "$flake#$flakeAttr"
+        exec nix "${flakeFlags[@]}" edit "${lockFlags[@]}" -- "$flake#$flakeAttr"
     fi
     exit 1
 fi
@@ -416,7 +433,7 @@ if [ -z "$rollback" ]; then
             pathToConfig="$(nixBuild '<nixpkgs/nixos>' --no-out-link -A system "${extraBuildFlags[@]}")"
         else
             outLink=$tmpDir/result
-            nix build "$flake#$flakeAttr.config.system.build.toplevel" \
+            nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.toplevel" \
               "${extraBuildFlags[@]}" "${lockFlags[@]}" --out-link $outLink
             pathToConfig="$(readlink -f $outLink)"
         fi
@@ -426,22 +443,24 @@ if [ -z "$rollback" ]; then
         if [[ -z $flake ]]; then
             pathToConfig="$(nixBuild '<nixpkgs/nixos>' -A system -k "${extraBuildFlags[@]}")"
         else
-            nix build "$flake#$flakeAttr.config.system.build.toplevel" "${extraBuildFlags[@]}" "${lockFlags[@]}"
+            nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.toplevel" "${extraBuildFlags[@]}" "${lockFlags[@]}"
             pathToConfig="$(readlink -f ./result)"
         fi
     elif [ "$action" = build-vm ]; then
         if [[ -z $flake ]]; then
             pathToConfig="$(nixBuild '<nixpkgs/nixos>' -A vm -k "${extraBuildFlags[@]}")"
         else
-            echo "$0: 'build-vm' is not supported with '--flake'" >&2
-            exit 1
+            nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.vm" \
+              "${extraBuildFlags[@]}" "${lockFlags[@]}"
+            pathToConfig="$(readlink -f ./result)"
         fi
     elif [ "$action" = build-vm-with-bootloader ]; then
         if [[ -z $flake ]]; then
             pathToConfig="$(nixBuild '<nixpkgs/nixos>' -A vmWithBootLoader -k "${extraBuildFlags[@]}")"
         else
-            echo "$0: 'build-vm-with-bootloader' is not supported with '--flake'" >&2
-            exit 1
+            nix "${flakeFlags[@]}" build "$flake#$flakeAttr.config.system.build.vmWithBootLoader" \
+              "${extraBuildFlags[@]}" "${lockFlags[@]}"
+            pathToConfig="$(readlink -f ./result)"
         fi
     else
         showSyntax
diff --git a/nixpkgs/nixos/modules/installer/tools/nixos-version.sh b/nixpkgs/nixos/modules/installer/tools/nixos-version.sh
index fb0fe26116a6..f5e3f32b3c63 100644
--- a/nixpkgs/nixos/modules/installer/tools/nixos-version.sh
+++ b/nixpkgs/nixos/modules/installer/tools/nixos-version.sh
@@ -1,4 +1,4 @@
-#! @shell@
+#! @runtimeShell@
 
 case "$1" in
   -h|--help)
diff --git a/nixpkgs/nixos/modules/installer/tools/tools.nix b/nixpkgs/nixos/modules/installer/tools/tools.nix
index 111286214248..e1e1b47aafcb 100644
--- a/nixpkgs/nixos/modules/installer/tools/tools.nix
+++ b/nixpkgs/nixos/modules/installer/tools/tools.nix
@@ -14,13 +14,19 @@ let
   nixos-build-vms = makeProg {
     name = "nixos-build-vms";
     src = ./nixos-build-vms/nixos-build-vms.sh;
+    inherit (pkgs) runtimeShell;
   };
 
   nixos-install = makeProg {
     name = "nixos-install";
     src = ./nixos-install.sh;
+    inherit (pkgs) runtimeShell;
     nix = config.nix.package.out;
-    path = makeBinPath [ nixos-enter ];
+    path = makeBinPath [
+      pkgs.nixUnstable
+      pkgs.jq
+      nixos-enter
+    ];
   };
 
   nixos-rebuild =
@@ -28,6 +34,7 @@ let
     makeProg {
       name = "nixos-rebuild";
       src = ./nixos-rebuild.sh;
+      inherit (pkgs) runtimeShell;
       nix = config.nix.package.out;
       nix_x86_64_linux = fallback.x86_64-linux;
       nix_i686_linux = fallback.i686-linux;
@@ -50,6 +57,7 @@ let
   nixos-version = makeProg {
     name = "nixos-version";
     src = ./nixos-version.sh;
+    inherit (pkgs) runtimeShell;
     inherit (config.system.nixos) version codeName revision;
     inherit (config.system) configurationRevision;
     json = builtins.toJSON ({
@@ -64,6 +72,7 @@ let
   nixos-enter = makeProg {
     name = "nixos-enter";
     src = ./nixos-enter.sh;
+    inherit (pkgs) runtimeShell;
   };
 
 in
diff --git a/nixpkgs/nixos/modules/misc/documentation.nix b/nixpkgs/nixos/modules/misc/documentation.nix
index 7ad4be9a02e6..71a40b4f4d6e 100644
--- a/nixpkgs/nixos/modules/misc/documentation.nix
+++ b/nixpkgs/nixos/modules/misc/documentation.nix
@@ -102,6 +102,16 @@ in
         '';
       };
 
+      man.generateCaches = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to generate the manual page index caches using
+          <literal>mandb(8)</literal>. This allows searching for a page or
+          keyword using utilities like <literal>apropos(1)</literal>.
+        '';
+      };
+
       info.enable = mkOption {
         type = types.bool;
         default = true;
@@ -187,7 +197,33 @@ in
       environment.systemPackages = [ pkgs.man-db ];
       environment.pathsToLink = [ "/share/man" ];
       environment.extraOutputsToInstall = [ "man" ] ++ optional cfg.dev.enable "devman";
-      environment.etc."man.conf".source = "${pkgs.man-db}/etc/man_db.conf";
+      environment.etc."man_db.conf".text =
+        let
+          manualPages = pkgs.buildEnv {
+            name = "man-paths";
+            paths = config.environment.systemPackages;
+            pathsToLink = [ "/share/man" ];
+            extraOutputsToInstall = ["man"];
+            ignoreCollisions = true;
+          };
+          manualCache = pkgs.runCommandLocal "man-cache" { }
+          ''
+            echo "MANDB_MAP ${manualPages}/share/man $out" > man.conf
+            ${pkgs.man-db}/bin/mandb -C man.conf -psc
+          '';
+        in
+        ''
+          # Manual pages paths for NixOS
+          MANPATH_MAP /run/current-system/sw/bin /run/current-system/sw/share/man
+          MANPATH_MAP /run/wrappers/bin          /run/current-system/sw/share/man
+
+          ${optionalString cfg.man.generateCaches ''
+          # Generated manual pages cache for NixOS (immutable)
+          MANDB_MAP /run/current-system/sw/share/man ${manualCache}
+          ''}
+          # Manual pages caches for NixOS
+          MANDB_MAP /run/current-system/sw/share/man /var/cache/man/nixos
+        '';
     })
 
     (mkIf cfg.info.enable {
diff --git a/nixpkgs/nixos/modules/misc/ids.nix b/nixpkgs/nixos/modules/misc/ids.nix
index 4af62b49c917..ac9782906e1f 100644
--- a/nixpkgs/nixos/modules/misc/ids.nix
+++ b/nixpkgs/nixos/modules/misc/ids.nix
@@ -184,7 +184,7 @@ in
       consul = 145;
       mailpile = 146;
       redmine = 147;
-      seeks = 148;
+      #seeks = 148; # removed 2020-06-21
       prosody = 149;
       i2pd = 150;
       systemd-network = 152;
@@ -198,7 +198,7 @@ in
       bosun = 161;
       kubernetes = 162;
       peerflix = 163;
-      chronos = 164;
+      #chronos = 164; # removed 2020-08-15
       gitlab = 165;
       tox-bootstrapd = 166;
       cadvisor = 167;
@@ -247,7 +247,7 @@ in
       bepasty = 215;
       # pumpio = 216; # unused, removed 2018-02-24
       nm-openvpn = 217;
-      mathics = 218;
+      # mathics = 218; # unused, removed 2020-08-15
       ejabberd = 219;
       postsrsd = 220;
       opendkim = 221;
@@ -321,7 +321,7 @@ in
       monetdb = 290;
       restic = 291;
       openvpn = 292;
-      meguca = 293;
+      # meguca = 293; # removed 2020-08-21
       yarn = 294;
       hdfs = 295;
       mapred = 296;
@@ -345,6 +345,8 @@ in
       zoneminder = 314;
       paperless = 315;
       #mailman = 316;  # removed 2019-08-30
+      zigbee2mqtt = 317;
+      # shadow = 318; # unused
 
       # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399!
 
@@ -496,7 +498,7 @@ in
       #consul = 145; # unused
       mailpile = 146;
       redmine = 147;
-      seeks = 148;
+      #seeks = 148; # removed 2020-06-21
       prosody = 149;
       i2pd = 150;
       systemd-network = 152;
@@ -621,7 +623,7 @@ in
       monetdb = 290;
       restic = 291;
       openvpn = 292;
-      meguca = 293;
+      # meguca = 293; # removed 2020-08-21
       yarn = 294;
       hdfs = 295;
       mapred = 296;
@@ -645,6 +647,8 @@ in
       zoneminder = 314;
       paperless = 315;
       #mailman = 316;  # removed 2019-08-30
+      zigbee2mqtt = 317;
+      shadow = 318;
 
       # When adding a gid, make sure it doesn't match an existing
       # uid. Users and groups with the same name should have equal
diff --git a/nixpkgs/nixos/modules/misc/locate.nix b/nixpkgs/nixos/modules/misc/locate.nix
index dc668796c788..92aa3be0a366 100644
--- a/nixpkgs/nixos/modules/misc/locate.nix
+++ b/nixpkgs/nixos/modules/misc/locate.nix
@@ -127,7 +127,7 @@ in {
       { LOCATE_PATH = cfg.output;
       };
 
-    warnings = optional (isMLocate && cfg.localuser != null) "mlocate does not support searching as user other than root"
+    warnings = optional (isMLocate && cfg.localuser != null) "mlocate does not support the services.locate.localuser option; updatedb will run as root. (Silence with services.locate.localuser = null.)"
             ++ optional (isFindutils && cfg.pruneNames != []) "findutils locate does not support pruning by directory component"
             ++ optional (isFindutils && cfg.pruneBindMounts) "findutils locate does not support skipping bind mounts";
 
diff --git a/nixpkgs/nixos/modules/misc/nixpkgs.nix b/nixpkgs/nixos/modules/misc/nixpkgs.nix
index 4f5a9250eaae..25ac94b8e0f6 100644
--- a/nixpkgs/nixos/modules/misc/nixpkgs.nix
+++ b/nixpkgs/nixos/modules/misc/nixpkgs.nix
@@ -178,8 +178,6 @@ in
       type = types.nullOr types.attrs; # TODO utilize lib.systems.parsedPlatform
       default = null;
       example = { system = "aarch64-linux"; config = "aarch64-unknown-linux-gnu"; };
-      defaultText = literalExample
-        ''(import "''${nixos}/../lib").lib.systems.examples.aarch64-multiplatform'';
       description = ''
         Specifies the platform for which NixOS should be
         built. Specify this only if it is different from
diff --git a/nixpkgs/nixos/modules/module-list.nix b/nixpkgs/nixos/modules/module-list.nix
index a9560291f2c1..e7a375d69b09 100644
--- a/nixpkgs/nixos/modules/module-list.nix
+++ b/nixpkgs/nixos/modules/module-list.nix
@@ -1,7 +1,6 @@
 [
   ./config/debug-info.nix
   ./config/fonts/fontconfig.nix
-  ./config/fonts/fontconfig-penultimate.nix
   ./config/fonts/fontdir.nix
   ./config/fonts/fonts.nix
   ./config/fonts/ghostscript.nix
@@ -61,6 +60,7 @@
   ./hardware/printers.nix
   ./hardware/raid/hpsa.nix
   ./hardware/steam-hardware.nix
+  ./hardware/system-76.nix
   ./hardware/tuxedo-keyboard.nix
   ./hardware/usb-wwan.nix
   ./hardware/onlykey.nix
@@ -72,9 +72,11 @@
   ./hardware/video/capture/mwprocapture.nix
   ./hardware/video/bumblebee.nix
   ./hardware/video/displaylink.nix
+  ./hardware/video/hidpi.nix
   ./hardware/video/nvidia.nix
   ./hardware/video/uvcvideo/default.nix
   ./hardware/video/webcam/facetimehd.nix
+  ./hardware/xpadneo.nix
   ./i18n/input-method/default.nix
   ./i18n/input-method/fcitx.nix
   ./i18n/input-method/ibus.nix
@@ -154,6 +156,7 @@
   ./programs/ssmtp.nix
   ./programs/sysdig.nix
   ./programs/systemtap.nix
+  ./programs/steam.nix
   ./programs/sway.nix
   ./programs/system-config-printer.nix
   ./programs/thefuck.nix
@@ -260,6 +263,7 @@
   ./services/continuous-integration/buildbot/worker.nix
   ./services/continuous-integration/buildkite-agents.nix
   ./services/continuous-integration/hail.nix
+  ./services/continuous-integration/hercules-ci-agent/default.nix
   ./services/continuous-integration/hydra/default.nix
   ./services/continuous-integration/gitlab-runner.nix
   ./services/continuous-integration/gocd-agent/default.nix
@@ -294,10 +298,10 @@
   ./services/desktops/accountsservice.nix
   ./services/desktops/bamf.nix
   ./services/desktops/blueman.nix
-  ./services/desktops/deepin/deepin.nix
   ./services/desktops/dleyna-renderer.nix
   ./services/desktops/dleyna-server.nix
   ./services/desktops/pantheon/files.nix
+  ./services/desktops/espanso.nix
   ./services/desktops/flatpak.nix
   ./services/desktops/geoclue2.nix
   ./services/desktops/gsignond.nix
@@ -328,6 +332,7 @@
   ./services/development/bloop.nix
   ./services/development/hoogle.nix
   ./services/development/jupyter/default.nix
+  ./services/development/jupyterhub/default.nix
   ./services/development/lorri.nix
   ./services/editors/emacs.nix
   ./services/editors/infinoted.nix
@@ -464,14 +469,11 @@
   ./services/misc/leaps.nix
   ./services/misc/lidarr.nix
   ./services/misc/mame.nix
-  ./services/misc/mathics.nix
   ./services/misc/matrix-appservice-discord.nix
   ./services/misc/matrix-synapse.nix
   ./services/misc/mautrix-telegram.nix
   ./services/misc/mbpfan.nix
   ./services/misc/mediatomb.nix
-  ./services/misc/mesos-master.nix
-  ./services/misc/mesos-slave.nix
   ./services/misc/metabase.nix
   ./services/misc/mwlib.nix
   ./services/misc/nix-daemon.nix
@@ -487,6 +489,7 @@
   ./services/misc/parsoid.nix
   ./services/misc/plex.nix
   ./services/misc/tautulli.nix
+  ./services/misc/pinnwand.nix
   ./services/misc/pykms.nix
   ./services/misc/radarr.nix
   ./services/misc/redmine.nix
@@ -512,6 +515,7 @@
   ./services/misc/uhub.nix
   ./services/misc/weechat.nix
   ./services/misc/xmr-stak.nix
+  ./services/misc/zigbee2mqtt.nix
   ./services/misc/zoneminder.nix
   ./services/misc/zookeeper.nix
   ./services/monitoring/alerta.nix
@@ -553,6 +557,7 @@
   ./services/monitoring/telegraf.nix
   ./services/monitoring/thanos.nix
   ./services/monitoring/tuptime.nix
+  ./services/monitoring/unifi-poller.nix
   ./services/monitoring/ups.nix
   ./services/monitoring/uptime.nix
   ./services/monitoring/vnstat.nix
@@ -586,11 +591,13 @@
   ./services/networking/atftpd.nix
   ./services/networking/avahi-daemon.nix
   ./services/networking/babeld.nix
+  ./services/networking/biboumi.nix
   ./services/networking/bind.nix
   ./services/networking/bitcoind.nix
   ./services/networking/autossh.nix
   ./services/networking/bird.nix
   ./services/networking/bitlbee.nix
+  ./services/networking/blockbook-frontend.nix
   ./services/networking/charybdis.nix
   ./services/networking/cjdns.nix
   ./services/networking/cntlm.nix
@@ -608,6 +615,7 @@
   ./services/networking/dnscrypt-wrapper.nix
   ./services/networking/dnsdist.nix
   ./services/networking/dnsmasq.nix
+  ./services/networking/ncdns.nix
   ./services/networking/ejabberd.nix
   ./services/networking/epmd.nix
   ./services/networking/ergo.nix
@@ -632,7 +640,6 @@
   ./services/networking/gvpe.nix
   ./services/networking/hans.nix
   ./services/networking/haproxy.nix
-  ./services/networking/heyefi.nix
   ./services/networking/hostapd.nix
   ./services/networking/htpdate.nix
   ./services/networking/hylafax/default.nix
@@ -642,6 +649,8 @@
   ./services/networking/iperf3.nix
   ./services/networking/ircd-hybrid/default.nix
   ./services/networking/iwd.nix
+  ./services/networking/jicofo.nix
+  ./services/networking/jitsi-videobridge.nix
   ./services/networking/keepalived/default.nix
   ./services/networking/keybase.nix
   ./services/networking/kippo.nix
@@ -670,6 +679,7 @@
   ./services/networking/nat.nix
   ./services/networking/ndppd.nix
   ./services/networking/networkmanager.nix
+  ./services/networking/nextdns.nix
   ./services/networking/nftables.nix
   ./services/networking/ngircd.nix
   ./services/networking/nghttpx/default.nix
@@ -687,6 +697,7 @@
   ./services/networking/ocserv.nix
   ./services/networking/ofono.nix
   ./services/networking/oidentd.nix
+  ./services/networking/onedrive.nix
   ./services/networking/openfire.nix
   ./services/networking/openvpn.nix
   ./services/networking/ostinato.nix
@@ -711,11 +722,11 @@
   ./services/networking/rdnssd.nix
   ./services/networking/redsocks.nix
   ./services/networking/resilio.nix
+  ./services/networking/robustirc-bridge.nix
   ./services/networking/rpcbind.nix
   ./services/networking/rxe.nix
   ./services/networking/sabnzbd.nix
   ./services/networking/searx.nix
-  ./services/networking/seeks.nix
   ./services/networking/skydns.nix
   ./services/networking/shadowsocks.nix
   ./services/networking/shairport-sync.nix
@@ -759,6 +770,7 @@
   ./services/networking/v2ray.nix
   ./services/networking/vsftpd.nix
   ./services/networking/wakeonlan.nix
+  ./services/networking/wasabibackend.nix
   ./services/networking/websockify.nix
   ./services/networking/wg-quick.nix
   ./services/networking/wicd.nix
@@ -775,10 +787,8 @@
   ./services/networking/znc/default.nix
   ./services/printing/cupsd.nix
   ./services/scheduling/atd.nix
-  ./services/scheduling/chronos.nix
   ./services/scheduling/cron.nix
   ./services/scheduling/fcron.nix
-  ./services/scheduling/marathon.nix
   ./services/search/elasticsearch.nix
   ./services/search/elasticsearch-curator.nix
   ./services/search/hound.nix
@@ -809,6 +819,7 @@
   ./services/security/torsocks.nix
   ./services/security/usbguard.nix
   ./services/security/vault.nix
+  ./services/security/yubikey-agent.nix
   ./services/system/cloud-init.nix
   ./services/system/dbus.nix
   ./services/system/earlyoom.nix
@@ -828,10 +839,13 @@
   ./services/ttys/gpm.nix
   ./services/ttys/kmscon.nix
   ./services/wayland/cage.nix
+  ./services/video/epgstation/default.nix
+  ./services/video/mirakurun.nix
   ./services/web-apps/atlassian/confluence.nix
   ./services/web-apps/atlassian/crowd.nix
   ./services/web-apps/atlassian/jira.nix
   ./services/web-apps/codimd.nix
+  ./services/web-apps/convos.nix
   ./services/web-apps/cryptpad.nix
   ./services/web-apps/documize.nix
   ./services/web-apps/dokuwiki.nix
@@ -844,6 +858,7 @@
   ./services/web-apps/icingaweb2/module-monitoring.nix
   ./services/web-apps/ihatemoney
   ./services/web-apps/jirafeau.nix
+  ./services/web-apps/jitsi-meet.nix
   ./services/web-apps/limesurvey.nix
   ./services/web-apps/mattermost.nix
   ./services/web-apps/mediawiki.nix
@@ -856,6 +871,7 @@
   ./services/web-apps/moinmoin.nix
   ./services/web-apps/restya-board.nix
   ./services/web-apps/sogo.nix
+  ./services/web-apps/rss-bridge.nix
   ./services/web-apps/tt-rss.nix
   ./services/web-apps/trac.nix
   ./services/web-apps/trilium.nix
@@ -876,9 +892,9 @@
   ./services/web-servers/lighttpd/collectd.nix
   ./services/web-servers/lighttpd/default.nix
   ./services/web-servers/lighttpd/gitweb.nix
-  ./services/web-servers/meguca.nix
   ./services/web-servers/mighttpd2.nix
   ./services/web-servers/minio.nix
+  ./services/web-servers/molly-brown.nix
   ./services/web-servers/nginx/default.nix
   ./services/web-servers/nginx/gitweb.nix
   ./services/web-servers/phpfpm/default.nix
@@ -913,6 +929,7 @@
   ./services/x11/gdk-pixbuf.nix
   ./services/x11/imwheel.nix
   ./services/x11/redshift.nix
+  ./services/x11/urserver.nix
   ./services/x11/urxvtd.nix
   ./services/x11/window-managers/awesome.nix
   ./services/x11/window-managers/default.nix
@@ -936,6 +953,7 @@
   ./system/boot/grow-partition.nix
   ./system/boot/initrd-network.nix
   ./system/boot/initrd-ssh.nix
+  ./system/boot/initrd-openvpn.nix
   ./system/boot/kernel.nix
   ./system/boot/kexec.nix
   ./system/boot/loader/efi.nix
@@ -1011,6 +1029,7 @@
   ./virtualisation/podman.nix
   ./virtualisation/qemu-guest-agent.nix
   ./virtualisation/railcar.nix
+  ./virtualisation/spice-usb-redirection.nix
   ./virtualisation/virtualbox-guest.nix
   ./virtualisation/virtualbox-host.nix
   ./virtualisation/vmware-guest.nix
diff --git a/nixpkgs/nixos/modules/profiles/base.nix b/nixpkgs/nixos/modules/profiles/base.nix
index 2a2fe119d30c..3b67d628f9fd 100644
--- a/nixpkgs/nixos/modules/profiles/base.nix
+++ b/nixpkgs/nixos/modules/profiles/base.nix
@@ -26,6 +26,7 @@
     pkgs.fuse
     pkgs.fuse3
     pkgs.sshfs-fuse
+    pkgs.rsync
     pkgs.socat
     pkgs.screen
 
diff --git a/nixpkgs/nixos/modules/profiles/demo.nix b/nixpkgs/nixos/modules/profiles/demo.nix
index 18f190071bad..4e8c74deedba 100644
--- a/nixpkgs/nixos/modules/profiles/demo.nix
+++ b/nixpkgs/nixos/modules/profiles/demo.nix
@@ -11,9 +11,11 @@
       uid = 1000;
     };
 
-  services.xserver.displayManager.sddm.autoLogin = {
-    enable = true;
-    relogin = true;
-    user = "demo";
+  services.xserver.displayManager = {
+    autoLogin = {
+      enable = true;
+      user = "demo";
+    };
+    sddm.autoLogin.relogin = true;
   };
 }
diff --git a/nixpkgs/nixos/modules/profiles/hardened.nix b/nixpkgs/nixos/modules/profiles/hardened.nix
index ef8c0d74f062..7bff79e82730 100644
--- a/nixpkgs/nixos/modules/profiles/hardened.nix
+++ b/nixpkgs/nixos/modules/profiles/hardened.nix
@@ -1,7 +1,7 @@
 # A profile with most (vanilla) hardening options enabled by default,
 # potentially at the cost of features and performance.
 
-{ lib, pkgs, ... }:
+{ config, lib, pkgs, ... }:
 
 with lib;
 
@@ -27,6 +27,9 @@ with lib;
 
   security.forcePageTableIsolation = mkDefault true;
 
+  # This is required by podman to run containers in rootless mode.
+  security.unprivilegedUsernsClone = mkDefault config.virtualisation.containers.enable;
+
   security.virtualisation.flushL1DataCache = mkDefault "always";
 
   security.apparmor.enable = mkDefault true;
diff --git a/nixpkgs/nixos/modules/profiles/installation-device.nix b/nixpkgs/nixos/modules/profiles/installation-device.nix
index d05c0c50e82c..e68ea1b08776 100644
--- a/nixpkgs/nixos/modules/profiles/installation-device.nix
+++ b/nixpkgs/nixos/modules/profiles/installation-device.nix
@@ -51,22 +51,23 @@ with lib;
     services.mingetty.helpLine = ''
       The "nixos" and "root" accounts have empty passwords.
 
-      Type `sudo systemctl start sshd` to start the SSH daemon.
-      You then must set a password for either "root" or "nixos"
-      with `passwd` to be able to login.
+      An ssh daemon is running. You then must set a password
+      for either "root" or "nixos" with `passwd` or add an ssh key
+      to /home/nixos/.ssh/authorized_keys be able to login.
     '' + optionalString config.services.xserver.enable ''
       Type `sudo systemctl start display-manager' to
       start the graphical user interface.
     '';
 
-    # Allow sshd to be started manually through "systemctl start sshd".
+    # We run sshd by default. Login via root is only possible after adding a
+    # password via "passwd" or by adding a ssh key to /home/nixos/.ssh/authorized_keys.
+    # The latter one is particular useful if keys are manually added to
+    # installation device for head-less systems i.e. arm boards by manually
+    # mounting the storage in a different system.
     services.openssh = {
       enable = true;
-      # Allow password login to the installation, if the user sets a password via "passwd"
-      # It is safe as root doesn't have a password by default and SSH is disabled by default
       permitRootLogin = "yes";
     };
-    systemd.services.sshd.wantedBy = mkOverride 50 [];
 
     # Enable wpa_supplicant, but don't start it by default.
     networking.wireless.enable = mkDefault true;
diff --git a/nixpkgs/nixos/modules/programs/autojump.nix b/nixpkgs/nixos/modules/programs/autojump.nix
index 3a8feec4bb45..ecfc2f658079 100644
--- a/nixpkgs/nixos/modules/programs/autojump.nix
+++ b/nixpkgs/nixos/modules/programs/autojump.nix
@@ -18,7 +18,7 @@ in
         '';
       };
     };
-  }; 
+  };
 
   ###### implementation
 
@@ -26,7 +26,7 @@ in
     environment.pathsToLink = [ "/share/autojump" ];
     environment.systemPackages = [ pkgs.autojump ];
 
-    programs.bash.interactiveShellInit = "source ${pkgs.autojump}/share/autojump/autojump.bash"; 
+    programs.bash.interactiveShellInit = "source ${pkgs.autojump}/share/autojump/autojump.bash";
     programs.zsh.interactiveShellInit = mkIf prg.zsh.enable "source ${pkgs.autojump}/share/autojump/autojump.zsh";
     programs.fish.interactiveShellInit = mkIf prg.fish.enable "source ${pkgs.autojump}/share/autojump/autojump.fish";
   };
diff --git a/nixpkgs/nixos/modules/programs/ccache.nix b/nixpkgs/nixos/modules/programs/ccache.nix
index 874774c72b47..3c9e64932f16 100644
--- a/nixpkgs/nixos/modules/programs/ccache.nix
+++ b/nixpkgs/nixos/modules/programs/ccache.nix
@@ -80,4 +80,4 @@ in {
       ];
     })
   ];
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/nixos/modules/programs/dconf.nix b/nixpkgs/nixos/modules/programs/dconf.nix
index 6702e8efd1cb..ec85cb9d18c9 100644
--- a/nixpkgs/nixos/modules/programs/dconf.nix
+++ b/nixpkgs/nixos/modules/programs/dconf.nix
@@ -4,13 +4,24 @@ with lib;
 
 let
   cfg = config.programs.dconf;
-
-  mkDconfProfile = name: path:
-    {
-      name = "dconf/profile/${name}";
-      value.source = path; 
-    };
-
+  cfgDir = pkgs.symlinkJoin {
+    name = "dconf-system-config";
+    paths = map (x: "${x}/etc/dconf") cfg.packages;
+    postBuild = ''
+      mkdir -p $out/profile
+      mkdir -p $out/db
+    '' + (
+      concatStringsSep "\n" (
+        mapAttrsToList (
+          name: path: ''
+            ln -s ${path} $out/profile/${name}
+          ''
+        ) cfg.profiles
+      )
+    ) + ''
+      ${pkgs.dconf}/bin/dconf update $out/db
+    '';
+  };
 in
 {
   ###### interface
@@ -22,18 +33,24 @@ in
       profiles = mkOption {
         type = types.attrsOf types.path;
         default = {};
-        description = "Set of dconf profile files.";
+        description = "Set of dconf profile files, installed at <filename>/etc/dconf/profiles/<replaceable>name</replaceable></filename>.";
         internal = true;
       };
 
+      packages = mkOption {
+        type = types.listOf types.package;
+        default = [];
+        description = "A list of packages which provide dconf profiles and databases in <filename>/etc/dconf</filename>.";
+      };
     };
   };
 
   ###### implementation
 
   config = mkIf (cfg.profiles != {} || cfg.enable) {
-    environment.etc = optionalAttrs (cfg.profiles != {})
-      (mapAttrs' mkDconfProfile cfg.profiles);
+    environment.etc.dconf = mkIf (cfg.profiles != {} || cfg.packages != []) {
+      source = cfgDir;
+    };
 
     services.dbus.packages = [ pkgs.dconf ];
 
diff --git a/nixpkgs/nixos/modules/programs/environment.nix b/nixpkgs/nixos/modules/programs/environment.nix
index 38bdabb4fa81..8877356360a5 100644
--- a/nixpkgs/nixos/modules/programs/environment.nix
+++ b/nixpkgs/nixos/modules/programs/environment.nix
@@ -33,7 +33,6 @@ in
       { PATH = [ "/bin" ];
         INFOPATH = [ "/info" "/share/info" ];
         KDEDIRS = [ "" ];
-        STRIGI_PLUGIN_PATH = [ "/lib/strigi/" ];
         QT_PLUGIN_PATH = [ "/lib/qt4/plugins" "/lib/kde4/plugins" ];
         QTWEBKIT_PLUGIN_PATH = [ "/lib/mozilla/plugins/" ];
         GTK_PATH = [ "/lib/gtk-2.0" "/lib/gtk-3.0" ];
diff --git a/nixpkgs/nixos/modules/programs/fish.nix b/nixpkgs/nixos/modules/programs/fish.nix
index 48b324a0fe83..39b92edf2ac2 100644
--- a/nixpkgs/nixos/modules/programs/fish.nix
+++ b/nixpkgs/nixos/modules/programs/fish.nix
@@ -102,6 +102,9 @@ in
 
     programs.fish.shellAliases = mapAttrs (name: mkDefault) cfge.shellAliases;
 
+    # Required for man completions
+    documentation.man.generateCaches = true;
+
     environment.etc."fish/foreign-env/shellInit".text = cfge.shellInit;
     environment.etc."fish/foreign-env/loginShellInit".text = cfge.loginShellInit;
     environment.etc."fish/foreign-env/interactiveShellInit".text = cfge.interactiveShellInit;
diff --git a/nixpkgs/nixos/modules/programs/freetds.nix b/nixpkgs/nixos/modules/programs/freetds.nix
index e0860a242b74..b4b657e391bf 100644
--- a/nixpkgs/nixos/modules/programs/freetds.nix
+++ b/nixpkgs/nixos/modules/programs/freetds.nix
@@ -25,7 +25,7 @@ in
           ''';
         }
       '';
-      description = 
+      description =
         ''
         Configure freetds database entries. Each attribute denotes
         a section within freetds.conf, and the value (a string) is the config
@@ -47,7 +47,7 @@ in
     environment.variables.FREETDS = "/etc/freetds.conf";
     environment.variables.SYBASE = "${pkgs.freetds}";
 
-    environment.etc."freetds.conf" = { text = 
+    environment.etc."freetds.conf" = { text =
       (concatStrings (mapAttrsToList (name: value:
         ''
         [${name}]
diff --git a/nixpkgs/nixos/modules/programs/gnupg.nix b/nixpkgs/nixos/modules/programs/gnupg.nix
index 7a3cb588ee71..ce8799b21d69 100644
--- a/nixpkgs/nixos/modules/programs/gnupg.nix
+++ b/nixpkgs/nixos/modules/programs/gnupg.nix
@@ -70,6 +70,7 @@ in
     agent.pinentryFlavor = mkOption {
       type = types.nullOr (types.enum pkgs.pinentry.flavors);
       example = "gnome3";
+      default = defaultPinentryFlavor;
       description = ''
         Which pinentry interface to use. If not null, the path to the
         pinentry binary will be passed to gpg-agent via commandline and
@@ -91,8 +92,6 @@ in
   };
 
   config = mkIf cfg.agent.enable {
-    programs.gnupg.agent.pinentryFlavor = mkDefault defaultPinentryFlavor;
-
     # This overrides the systemd user unit shipped with the gnupg package
     systemd.user.services.gpg-agent = mkIf (cfg.agent.pinentryFlavor != null) {
       serviceConfig.ExecStart = [ "" ''
diff --git a/nixpkgs/nixos/modules/programs/gpaste.nix b/nixpkgs/nixos/modules/programs/gpaste.nix
index 4f6deb77e5eb..8bc52c28d814 100644
--- a/nixpkgs/nixos/modules/programs/gpaste.nix
+++ b/nixpkgs/nixos/modules/programs/gpaste.nix
@@ -30,5 +30,7 @@ with lib;
     environment.systemPackages = [ pkgs.gnome3.gpaste ];
     services.dbus.packages = [ pkgs.gnome3.gpaste ];
     systemd.packages = [ pkgs.gnome3.gpaste ];
+    # gnome-control-center crashes in Keyboard Shortcuts pane without the GSettings schemas.
+    services.xserver.desktopManager.gnome3.sessionPath = [ pkgs.gnome3.gpaste ];
   };
 }
diff --git a/nixpkgs/nixos/modules/programs/nm-applet.nix b/nixpkgs/nixos/modules/programs/nm-applet.nix
index 273a6dec59a5..5bcee30125bb 100644
--- a/nixpkgs/nixos/modules/programs/nm-applet.nix
+++ b/nixpkgs/nixos/modules/programs/nm-applet.nix
@@ -5,14 +5,25 @@
     maintainers = lib.teams.freedesktop.members;
   };
 
-  options.programs.nm-applet.enable = lib.mkEnableOption "nm-applet";
+  options.programs.nm-applet = {
+    enable = lib.mkEnableOption "nm-applet";
+
+    indicator = lib.mkOption {
+      type = lib.types.bool;
+      default = true;
+      description = ''
+        Whether to use indicator instead of status icon.
+        It is needed for Appindicator environments, like Enlightenment.
+      '';
+    };
+  };
 
   config = lib.mkIf config.programs.nm-applet.enable {
     systemd.user.services.nm-applet = {
       description = "Network manager applet";
       wantedBy = [ "graphical-session.target" ];
       partOf = [ "graphical-session.target" ];
-      serviceConfig.ExecStart = "${pkgs.networkmanagerapplet}/bin/nm-applet";
+      serviceConfig.ExecStart = "${pkgs.networkmanagerapplet}/bin/nm-applet ${lib.optionalString config.programs.nm-applet.indicator "--indicator"}";
     };
 
     services.dbus.packages = [ pkgs.gcr ];
diff --git a/nixpkgs/nixos/modules/programs/qt5ct.nix b/nixpkgs/nixos/modules/programs/qt5ct.nix
index aeb7fc508495..3f2bcf622836 100644
--- a/nixpkgs/nixos/modules/programs/qt5ct.nix
+++ b/nixpkgs/nixos/modules/programs/qt5ct.nix
@@ -26,6 +26,6 @@ with lib;
   ###### implementation
   config = mkIf config.programs.qt5ct.enable {
     environment.variables.QT_QPA_PLATFORMTHEME = "qt5ct";
-    environment.systemPackages = with pkgs; [ qt5ct libsForQt5.qtstyleplugins ];
+    environment.systemPackages = with pkgs; [ qt5ct ];
   };
 }
diff --git a/nixpkgs/nixos/modules/programs/ssh.nix b/nixpkgs/nixos/modules/programs/ssh.nix
index a983ffa4b890..40af4d0ff5ae 100644
--- a/nixpkgs/nixos/modules/programs/ssh.nix
+++ b/nixpkgs/nixos/modules/programs/ssh.nix
@@ -131,7 +131,7 @@ in
 
       knownHosts = mkOption {
         default = {};
-        type = types.loaOf (types.submodule ({ name, ... }: {
+        type = types.attrsOf (types.submodule ({ name, ... }: {
           options = {
             certAuthority = mkOption {
               type = types.bool;
diff --git a/nixpkgs/nixos/modules/programs/steam.nix b/nixpkgs/nixos/modules/programs/steam.nix
new file mode 100644
index 000000000000..3c919c47a0c6
--- /dev/null
+++ b/nixpkgs/nixos/modules/programs/steam.nix
@@ -0,0 +1,25 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.programs.steam;
+in {
+  options.programs.steam.enable = mkEnableOption "steam";
+
+  config = mkIf cfg.enable {
+    hardware.opengl = { # this fixes the "glXChooseVisual failed" bug, context: https://github.com/NixOS/nixpkgs/issues/47932
+      enable = true;
+      driSupport32Bit = true;
+    };
+
+    # optionally enable 32bit pulseaudio support if pulseaudio is enabled
+    hardware.pulseaudio.support32Bit = config.hardware.pulseaudio.enable;
+
+    hardware.steam-hardware.enable = true;
+
+    environment.systemPackages = [ pkgs.steam ];
+  };
+
+  meta.maintainers = with maintainers; [ mkg20001 ];
+}
diff --git a/nixpkgs/nixos/modules/programs/tsm-client.nix b/nixpkgs/nixos/modules/programs/tsm-client.nix
index eb6f12475286..7ac4086d5f09 100644
--- a/nixpkgs/nixos/modules/programs/tsm-client.nix
+++ b/nixpkgs/nixos/modules/programs/tsm-client.nix
@@ -7,7 +7,7 @@ let
   inherit (lib.modules) mkDefault mkIf;
   inherit (lib.options) literalExample mkEnableOption mkOption;
   inherit (lib.strings) concatStringsSep optionalString toLower;
-  inherit (lib.types) addCheck attrsOf lines loaOf nullOr package path port str strMatching submodule;
+  inherit (lib.types) addCheck attrsOf lines nullOr package path port str strMatching submodule;
 
   # Checks if given list of strings contains unique
   # elements when compared without considering case.
@@ -178,7 +178,7 @@ let
       client system-options file "dsm.sys"
     '';
     servers = mkOption {
-      type = loaOf (submodule [ serverOptions ]);
+      type = attrsOf (submodule [ serverOptions ]);
       default = {};
       example.mainTsmServer = {
         server = "tsmserver.company.com";
diff --git a/nixpkgs/nixos/modules/programs/xss-lock.nix b/nixpkgs/nixos/modules/programs/xss-lock.nix
index a7ad9b89db4d..83ed71386407 100644
--- a/nixpkgs/nixos/modules/programs/xss-lock.nix
+++ b/nixpkgs/nixos/modules/programs/xss-lock.nix
@@ -34,7 +34,7 @@ in
       partOf = [ "graphical-session.target" ];
       serviceConfig.ExecStart = with lib;
         strings.concatStringsSep " " ([
-            "${pkgs.xss-lock}/bin/xss-lock"
+            "${pkgs.xss-lock}/bin/xss-lock" "--session \${XDG_SESSION_ID}"
           ] ++ (map escapeShellArg cfg.extraOptions) ++ [
             "--"
             cfg.lockerCommand
diff --git a/nixpkgs/nixos/modules/programs/zsh/oh-my-zsh.xml b/nixpkgs/nixos/modules/programs/zsh/oh-my-zsh.xml
index 568c2de65576..14a7228ad9b0 100644
--- a/nixpkgs/nixos/modules/programs/zsh/oh-my-zsh.xml
+++ b/nixpkgs/nixos/modules/programs/zsh/oh-my-zsh.xml
@@ -73,7 +73,7 @@
 <programlisting>
 { pkgs, ... }:
 {
-  programs.zsh.ohMyZsh.customPkgs = with pkgs; [
+  programs.zsh.ohMyZsh.customPkgs = [
     pkgs.nix-zsh-completions
     # and even more...
   ];
diff --git a/nixpkgs/nixos/modules/rename.nix b/nixpkgs/nixos/modules/rename.nix
index 1dc7f8533176..a87db475e012 100644
--- a/nixpkgs/nixos/modules/rename.nix
+++ b/nixpkgs/nixos/modules/rename.nix
@@ -17,8 +17,13 @@ with lib;
     (mkAliasOptionModule [ "environment" "checkConfigurationOptions" ] [ "_module" "check" ])
 
     # Completely removed modules
+    (mkRemovedOptionModule [ "fonts" "fontconfig" "penultimate" ] "The corresponding package has removed from nixpkgs.")
+    (mkRemovedOptionModule [ "services" "chronos" ] "The corresponding package was removed from nixpkgs.")
+    (mkRemovedOptionModule [ "services" "deepin" ] "The corresponding packages were removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "firefox" "syncserver" "user" ] "")
     (mkRemovedOptionModule [ "services" "firefox" "syncserver" "group" ] "")
+    (mkRemovedOptionModule [ "services" "marathon" ] "The corresponding package was removed from nixpkgs.")
+    (mkRemovedOptionModule [ "services" "mesos" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "winstone" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "networking" "vpnc" ] "Use environment.etc.\"vpnc/service.conf\" instead.")
     (mkRemovedOptionModule [ "environment" "blcr" "enable" ] "The BLCR module has been removed")
@@ -28,6 +33,7 @@ with lib;
     (mkRemovedOptionModule [ "services" "osquery" ] "The osquery module has been removed")
     (mkRemovedOptionModule [ "services" "fourStore" ] "The fourStore module has been removed")
     (mkRemovedOptionModule [ "services" "fourStoreEndpoint" ] "The fourStoreEndpoint module has been removed")
+    (mkRemovedOptionModule [ "services" "mathics" ] "The Mathics module has been removed")
     (mkRemovedOptionModule [ "programs" "way-cooler" ] ("way-cooler is abandoned by its author: " +
       "https://way-cooler.org/blog/2020/01/09/way-cooler-post-mortem.html"))
     (mkRemovedOptionModule [ "services" "xserver" "multitouch" ] ''
@@ -39,10 +45,11 @@ with lib;
       The services.xserver.displayManager.auto module has been removed
       because it was only intended for use in internal NixOS tests, and gave the
       false impression of it being a special display manager when it's actually
-      LightDM. Please use the services.xserver.displayManager.lightdm.autoLogin options
+      LightDM. Please use the services.xserver.displayManager.autoLogin options
       instead, or any other display manager in NixOS as they all support auto-login.
     '')
     (mkRemovedOptionModule [ "services" "dnscrypt-proxy" ] "Use services.dnscrypt-proxy2 instead")
+    (mkRemovedOptionModule [ "services" "meguca" ] "Use meguca has been removed from nixpkgs")
     (mkRemovedOptionModule ["hardware" "brightnessctl" ] ''
       The brightnessctl module was removed because newer versions of
       brightnessctl don't require the udev rules anymore (they can use the
@@ -61,6 +68,8 @@ with lib;
       to handle FIDO security tokens, so this isn't necessary anymore.
     '')
 
+    (mkRemovedOptionModule [ "services" "seeks" ] "")
+
     # Do NOT add any option renames here, see top of the file
   ];
 }
diff --git a/nixpkgs/nixos/modules/security/acme.nix b/nixpkgs/nixos/modules/security/acme.nix
index 06e5c0ede297..8e67d4ff8716 100644
--- a/nixpkgs/nixos/modules/security/acme.nix
+++ b/nixpkgs/nixos/modules/security/acme.nix
@@ -1,11 +1,314 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, options, ... }:
 with lib;
 let
-
   cfg = config.security.acme;
 
+  # Used to calculate timer accuracy for coalescing
+  numCerts = length (builtins.attrNames cfg.certs);
+  _24hSecs = 60 * 60 * 24;
+
+  # There are many services required to make cert renewals work.
+  # They all follow a common structure:
+  #   - They inherit this commonServiceConfig
+  #   - They all run as the acme user
+  #   - They all use BindPath and StateDirectory where possible
+  #     to set up a sort of build environment in /tmp
+  # The Group can vary depending on what the user has specified in
+  # security.acme.certs.<cert>.group on some of the services.
+  commonServiceConfig = {
+      Type = "oneshot";
+      User = "acme";
+      Group = mkDefault "acme";
+      UMask = 0027;
+      StateDirectoryMode = 750;
+      ProtectSystem = "full";
+      PrivateTmp = true;
+
+      WorkingDirectory = "/tmp";
+  };
+
+  # In order to avoid race conditions creating the CA for selfsigned certs,
+  # we have a separate service which will create the necessary files.
+  selfsignCAService = {
+    description = "Generate self-signed certificate authority";
+
+    path = with pkgs; [ minica ];
+
+    unitConfig = {
+      ConditionPathExists = "!/var/lib/acme/.minica/key.pem";
+    };
+
+    serviceConfig = commonServiceConfig // {
+      StateDirectory = "acme/.minica";
+      BindPaths = "/var/lib/acme/.minica:/tmp/ca";
+    };
+
+    # Working directory will be /tmp
+    script = ''
+      minica \
+        --ca-key ca/key.pem \
+        --ca-cert ca/cert.pem \
+        --domains selfsigned.local
+
+      chmod 600 ca/*
+    '';
+  };
+
+  # Previously, all certs were owned by whatever user was configured in
+  # config.security.acme.certs.<cert>.user. Now everything is owned by and
+  # run by the acme user.
+  userMigrationService = {
+    description = "Fix owner and group of all ACME certificates";
+
+    script = with builtins; concatStringsSep "\n" (mapAttrsToList (cert: data: ''
+      for fixpath in /var/lib/acme/${escapeShellArg cert} /var/lib/acme/.lego/${escapeShellArg cert}; do
+        if [ -d "$fixpath" ]; then
+          chmod -R 750 "$fixpath"
+          chown -R acme:${data.group} "$fixpath"
+        fi
+      done
+    '') certConfigs);
+
+    # We don't want this to run every time a renewal happens
+    serviceConfig.RemainAfterExit = true;
+  };
+
+  certToConfig = cert: data: let
+    acmeServer = if data.server != null then data.server else cfg.server;
+    useDns = data.dnsProvider != null;
+    destPath = "/var/lib/acme/${cert}";
+    selfsignedDeps = optionals (cfg.preliminarySelfsigned) [ "acme-selfsigned-${cert}.service" ];
+
+    # Minica and lego have a "feature" which replaces * with _. We need
+    # to make this substitution to reference the output files from both programs.
+    # End users never see this since we rename the certs.
+    keyName = builtins.replaceStrings ["*"] ["_"] data.domain;
+
+    # FIXME when mkChangedOptionModule supports submodules, change to that.
+    # This is a workaround
+    extraDomains = data.extraDomainNames ++ (
+      optionals
+      (data.extraDomains != "_mkMergedOptionModule")
+      (builtins.attrNames data.extraDomains)
+    );
+
+    # Create hashes for cert data directories based on configuration
+    # Flags are separated to avoid collisions
+    hashData = with builtins; ''
+      ${concatStringsSep " " data.extraLegoFlags} -
+      ${concatStringsSep " " data.extraLegoRunFlags} -
+      ${concatStringsSep " " data.extraLegoRenewFlags} -
+      ${toString acmeServer} ${toString data.dnsProvider}
+      ${toString data.ocspMustStaple} ${data.keyType}
+    '';
+    mkHash = with builtins; val: substring 0 20 (hashString "sha256" val);
+    certDir = mkHash hashData;
+    domainHash = mkHash "${concatStringsSep " " extraDomains} ${data.domain}";
+    othersHash = mkHash "${toString acmeServer} ${data.keyType}";
+    accountDir = "/var/lib/acme/.lego/accounts/" + othersHash;
+
+    protocolOpts = if useDns then (
+      [ "--dns" data.dnsProvider ]
+      ++ optionals (!data.dnsPropagationCheck) [ "--dns.disable-cp" ]
+    ) else (
+      [ "--http" "--http.webroot" data.webroot ]
+    );
+
+    commonOpts = [
+      "--accept-tos" # Checking the option is covered by the assertions
+      "--path" "."
+      "-d" data.domain
+      "--email" data.email
+      "--key-type" data.keyType
+    ] ++ protocolOpts
+      ++ optionals data.ocspMustStaple [ "--must-staple" ]
+      ++ optionals (acmeServer != null) [ "--server" acmeServer ]
+      ++ concatMap (name: [ "-d" name ]) extraDomains
+      ++ data.extraLegoFlags;
+
+    runOpts = escapeShellArgs (
+      commonOpts
+      ++ [ "run" ]
+      ++ data.extraLegoRunFlags
+    );
+    renewOpts = escapeShellArgs (
+      commonOpts
+      ++ [ "renew" "--reuse-key" ]
+      ++ data.extraLegoRenewFlags
+    );
+
+  in {
+    inherit accountDir selfsignedDeps;
+
+    webroot = data.webroot;
+    group = data.group;
+
+    renewTimer = {
+      description = "Renew ACME Certificate for ${cert}";
+      wantedBy = [ "timers.target" ];
+      timerConfig = {
+        OnCalendar = cfg.renewInterval;
+        Unit = "acme-${cert}.service";
+        Persistent = "yes";
+
+        # Allow systemd to pick a convenient time within the day
+        # to run the check.
+        # This allows the coalescing of multiple timer jobs.
+        # We divide by the number of certificates so that if you
+        # have many certificates, the renewals are distributed over
+        # the course of the day to avoid rate limits.
+        AccuracySec = "${toString (_24hSecs / numCerts)}s";
+
+        # Skew randomly within the day, per https://letsencrypt.org/docs/integration-guide/.
+        RandomizedDelaySec = "24h";
+      };
+    };
+
+    selfsignService = {
+      description = "Generate self-signed certificate for ${cert}";
+      after = [ "acme-selfsigned-ca.service" "acme-fixperms.service" ];
+      requires = [ "acme-selfsigned-ca.service" "acme-fixperms.service" ];
+
+      path = with pkgs; [ minica ];
+
+      unitConfig = {
+        ConditionPathExists = "!/var/lib/acme/${cert}/key.pem";
+      };
+
+      serviceConfig = commonServiceConfig // {
+        Group = data.group;
+
+        StateDirectory = "acme/${cert}";
+
+        BindPaths = "/var/lib/acme/.minica:/tmp/ca /var/lib/acme/${cert}:/tmp/${keyName}";
+      };
+
+      # Working directory will be /tmp
+      # minica will output to a folder sharing the name of the first domain
+      # in the list, which will be ${data.domain}
+      script = ''
+        minica \
+          --ca-key ca/key.pem \
+          --ca-cert ca/cert.pem \
+          --domains ${escapeShellArg (builtins.concatStringsSep "," ([ data.domain ] ++ extraDomains))}
+
+        # Create files to match directory layout for real certificates
+        cd '${keyName}'
+        cp ../ca/cert.pem chain.pem
+        cat cert.pem chain.pem > fullchain.pem
+        cat key.pem fullchain.pem > full.pem
+
+        chmod 640 *
+
+        # Group might change between runs, re-apply it
+        chown 'acme:${data.group}' *
+      '';
+    };
+
+    renewService = {
+      description = "Renew ACME certificate for ${cert}";
+      after = [ "network.target" "network-online.target" "acme-fixperms.service" ] ++ selfsignedDeps;
+      wants = [ "network-online.target" "acme-fixperms.service" ] ++ selfsignedDeps;
+
+      # https://github.com/NixOS/nixpkgs/pull/81371#issuecomment-605526099
+      wantedBy = optionals (!config.boot.isContainer) [ "multi-user.target" ];
+
+      path = with pkgs; [ lego coreutils diffutils ];
+
+      serviceConfig = commonServiceConfig // {
+        Group = data.group;
+
+        # AccountDir dir will be created by tmpfiles to ensure correct permissions
+        # And to avoid deletion during systemctl clean
+        # acme/.lego/${cert} is listed so that it is deleted during systemctl clean
+        StateDirectory = "acme/${cert} acme/.lego/${cert} acme/.lego/${cert}/${certDir}";
+
+        # Needs to be space separated, but can't use a multiline string because that'll include newlines
+        BindPaths =
+          "${accountDir}:/tmp/accounts " +
+          "/var/lib/acme/${cert}:/tmp/out " +
+          "/var/lib/acme/.lego/${cert}/${certDir}:/tmp/certificates ";
+
+        # Only try loading the credentialsFile if the dns challenge is enabled
+        EnvironmentFile = mkIf useDns data.credentialsFile;
+
+        # Run as root (Prefixed with +)
+        ExecStartPost = "+" + (pkgs.writeShellScript "acme-postrun" ''
+          cd /var/lib/acme/${escapeShellArg cert}
+          if [ -e renewed ]; then
+            rm renewed
+            ${data.postRun}
+          fi
+        '');
+      };
+
+      # Working directory will be /tmp
+      script = ''
+        set -euo pipefail
+
+        echo '${domainHash}' > domainhash.txt
+
+        # Check if we can renew
+        if [ -e 'certificates/${keyName}.key' -a -e 'certificates/${keyName}.crt' ]; then
+
+          # When domains are updated, there's no need to do a full
+          # Lego run, but it's likely renew won't work if days is too low.
+          if [ -e certificates/domainhash.txt ] && cmp -s domainhash.txt certificates/domainhash.txt; then
+            lego ${renewOpts} --days ${toString cfg.validMinDays}
+          else
+            # Any number > 90 works, but this one is over 9000 ;-)
+            lego ${renewOpts} --days 9001
+          fi
+
+        # Otherwise do a full run
+        else
+          lego ${runOpts}
+        fi
+
+        mv domainhash.txt certificates/
+        chmod 640 certificates/*
+        chmod -R 700 accounts/*
+
+        # Group might change between runs, re-apply it
+        chown 'acme:${data.group}' certificates/*
+
+        # Copy all certs to the "real" certs directory
+        CERT='certificates/${keyName}.crt'
+        if [ -e "$CERT" ] && ! cmp -s "$CERT" out/fullchain.pem; then
+          touch out/renewed
+          echo Installing new certificate
+          cp -vp 'certificates/${keyName}.crt' out/fullchain.pem
+          cp -vp 'certificates/${keyName}.key' out/key.pem
+          cp -vp 'certificates/${keyName}.issuer.crt' out/chain.pem
+          ln -sf fullchain.pem out/cert.pem
+          cat out/key.pem out/fullchain.pem > out/full.pem
+        fi
+      '';
+    };
+  };
+
+  certConfigs = mapAttrs certToConfig cfg.certs;
+
   certOpts = { name, ... }: {
     options = {
+      # user option has been removed
+      user = mkOption {
+        visible = false;
+        default = "_mkRemovedOptionModule";
+      };
+
+      # allowKeysForGroup option has been removed
+      allowKeysForGroup = mkOption {
+        visible = false;
+        default = "_mkRemovedOptionModule";
+      };
+
+      # extraDomains was replaced with extraDomainNames
+      extraDomains = mkOption {
+        visible = false;
+        default = "_mkMergedOptionModule";
+      };
+
       webroot = mkOption {
         type = types.nullOr types.str;
         default = null;
@@ -23,16 +326,16 @@ let
         type = types.nullOr types.str;
         default = null;
         description = ''
-          ACME Directory Resource URI. Defaults to let's encrypt
+          ACME Directory Resource URI. Defaults to Let's Encrypt's
           production endpoint,
-          https://acme-v02.api.letsencrypt.org/directory, if unset.
+          <link xlink:href="https://acme-v02.api.letsencrypt.org/directory"/>, if unset.
         '';
       };
 
       domain = mkOption {
         type = types.str;
         default = name;
-        description = "Domain to fetch certificate for (defaults to the entry name)";
+        description = "Domain to fetch certificate for (defaults to the entry name).";
       };
 
       email = mkOption {
@@ -41,35 +344,19 @@ let
         description = "Contact email address for the CA to be able to reach you.";
       };
 
-      user = mkOption {
-        type = types.str;
-        default = "root";
-        description = "User running the ACME client.";
-      };
-
       group = mkOption {
         type = types.str;
-        default = "root";
+        default = "acme";
         description = "Group running the ACME client.";
       };
 
-      allowKeysForGroup = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Give read permissions to the specified group
-          (<option>security.acme.cert.&lt;name&gt;.group</option>) to read SSL private certificates.
-        '';
-      };
-
       postRun = mkOption {
         type = types.lines;
         default = "";
-        example = "systemctl reload nginx.service";
+        example = "cp full.pem backup.pem";
         description = ''
-          Commands to run after new certificates go live. Typically
-          the web server and other servers using certificates need to
-          be reloaded.
+          Commands to run after new certificates go live. Note that
+          these commands run as the root user.
 
           Executed in the same directory with the new certificate.
         '';
@@ -82,18 +369,17 @@ let
         description = "Directory where certificate and other state is stored.";
       };
 
-      extraDomains = mkOption {
-        type = types.attrsOf (types.nullOr types.str);
-        default = {};
+      extraDomainNames = mkOption {
+        type = types.listOf types.str;
+        default = [];
         example = literalExample ''
-          {
-            "example.org" = null;
-            "mydomain.org" = null;
-          }
+          [
+            "example.org"
+            "mydomain.org"
+          ]
         '';
         description = ''
           A list of extra domain names, which are included in the one certificate to be issued.
-          Setting a distinct server root is deprecated and not functional in 20.03+
         '';
       };
 
@@ -103,7 +389,7 @@ let
         description = ''
           Key type to use for private keys.
           For an up to date list of supported values check the --key-type option
-          at https://go-acme.github.io/lego/usage/cli/#usage.
+          at <link xlink:href="https://go-acme.github.io/lego/usage/cli/#usage"/>.
         '';
       };
 
@@ -113,7 +399,7 @@ let
         example = "route53";
         description = ''
           DNS Challenge provider. For a list of supported providers, see the "code"
-          field of the DNS providers listed at https://go-acme.github.io/lego/dns/.
+          field of the DNS providers listed at <link xlink:href="https://go-acme.github.io/lego/dns/"/>.
         '';
       };
 
@@ -123,7 +409,7 @@ let
           Path to an EnvironmentFile for the cert's service containing any required and
           optional environment variables for your selected dnsProvider.
           To find out what values you need to set, consult the documentation at
-          https://go-acme.github.io/lego/dns/ for the corresponding dnsProvider.
+          <link xlink:href="https://go-acme.github.io/lego/dns/"/> for the corresponding dnsProvider.
         '';
         example = "/var/src/secrets/example.org-route53-api-token";
       };
@@ -150,6 +436,14 @@ let
         '';
       };
 
+      extraLegoFlags = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''
+          Additional global flags to pass to all lego commands.
+        '';
+      };
+
       extraLegoRenewFlags = mkOption {
         type = types.listOf types.str;
         default = [];
@@ -157,27 +451,19 @@ let
           Additional flags to pass to lego renew.
         '';
       };
+
+      extraLegoRunFlags = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''
+          Additional flags to pass to lego run.
+        '';
+      };
     };
   };
 
-in
+in {
 
-{
-
-  ###### interface
-  imports = [
-    (mkRemovedOptionModule [ "security" "acme" "production" ] ''
-      Use security.acme.server to define your staging ACME server URL instead.
-
-      To use the let's encrypt staging server, use security.acme.server =
-      "https://acme-staging-v02.api.letsencrypt.org/directory".
-    ''
-    )
-    (mkRemovedOptionModule [ "security" "acme" "directory"] "ACME Directory is now hardcoded to /var/lib/acme and its permisisons are managed by systemd. See https://github.com/NixOS/nixpkgs/issues/53852 for more info.")
-    (mkRemovedOptionModule [ "security" "acme" "preDelay"] "This option has been removed. If you want to make sure that something executes before certificates are provisioned, add a RequiredBy=acme-\${cert}.service to the service you want to execute before the cert renewal")
-    (mkRemovedOptionModule [ "security" "acme" "activationDelay"] "This option has been removed. If you want to make sure that something executes before certificates are provisioned, add a RequiredBy=acme-\${cert}.service to the service you want to execute before the cert renewal")
-    (mkChangedOptionModule [ "security" "acme" "validMin"] [ "security" "acme" "validMinDays"] (config: config.security.acme.validMin / (24 * 3600)))
-  ];
   options = {
     security.acme = {
 
@@ -207,9 +493,9 @@ in
         type = types.nullOr types.str;
         default = null;
         description = ''
-          ACME Directory Resource URI. Defaults to let's encrypt
+          ACME Directory Resource URI. Defaults to Let's Encrypt's
           production endpoint,
-          <literal>https://acme-v02.api.letsencrypt.org/directory</literal>, if unset.
+          <link xlink:href="https://acme-v02.api.letsencrypt.org/directory"/>, if unset.
         '';
       };
 
@@ -230,8 +516,8 @@ in
         type = types.bool;
         default = false;
         description = ''
-          Accept the CA's terms of service. The default provier is Let's Encrypt,
-          you can find their ToS at https://letsencrypt.org/repository/
+          Accept the CA's terms of service. The default provider is Let's Encrypt,
+          you can find their ToS at <link xlink:href="https://letsencrypt.org/repository/"/>.
         '';
       };
 
@@ -250,7 +536,7 @@ in
             "example.com" = {
               webroot = "/var/www/challenges/";
               email = "foo@example.com";
-              extraDomains = { "www.example.com" = null; "foo.example.com" = null; };
+              extraDomainNames = [ "www.example.com" "foo.example.com" ];
             };
             "bar.example.com" = {
               webroot = "/var/www/challenges/";
@@ -262,25 +548,40 @@ in
     };
   };
 
-  ###### implementation
+  imports = [
+    (mkRemovedOptionModule [ "security" "acme" "production" ] ''
+      Use security.acme.server to define your staging ACME server URL instead.
+
+      To use the let's encrypt staging server, use security.acme.server =
+      "https://acme-staging-v02.api.letsencrypt.org/directory".
+    ''
+    )
+    (mkRemovedOptionModule [ "security" "acme" "directory" ] "ACME Directory is now hardcoded to /var/lib/acme and its permisisons are managed by systemd. See https://github.com/NixOS/nixpkgs/issues/53852 for more info.")
+    (mkRemovedOptionModule [ "security" "acme" "preDelay" ] "This option has been removed. If you want to make sure that something executes before certificates are provisioned, add a RequiredBy=acme-\${cert}.service to the service you want to execute before the cert renewal")
+    (mkRemovedOptionModule [ "security" "acme" "activationDelay" ] "This option has been removed. If you want to make sure that something executes before certificates are provisioned, add a RequiredBy=acme-\${cert}.service to the service you want to execute before the cert renewal")
+    (mkChangedOptionModule [ "security" "acme" "validMin" ] [ "security" "acme" "validMinDays" ] (config: config.security.acme.validMin / (24 * 3600)))
+  ];
+
   config = mkMerge [
     (mkIf (cfg.certs != { }) {
 
+      # FIXME Most of these custom warnings and filters for security.acme.certs.* are required
+      # because using mkRemovedOptionModule/mkChangedOptionModule with attrsets isn't possible.
+      warnings = filter (w: w != "") (mapAttrsToList (cert: data: if data.extraDomains != "_mkMergedOptionModule" then ''
+        The option definition `security.acme.certs.${cert}.extraDomains` has changed
+        to `security.acme.certs.${cert}.extraDomainNames` and is now a list of strings.
+        Setting a custom webroot for extra domains is not possible, instead use separate certs.
+      '' else "") cfg.certs);
+
       assertions = let
-        certs = (mapAttrsToList (k: v: v) cfg.certs);
+        certs = attrValues cfg.certs;
       in [
         {
-          assertion = all (certOpts: certOpts.dnsProvider == null || certOpts.webroot == null) certs;
-          message = ''
-            Options `security.acme.certs.<name>.dnsProvider` and
-            `security.acme.certs.<name>.webroot` are mutually exclusive.
-          '';
-        }
-        {
           assertion = cfg.email != null || all (certOpts: certOpts.email != null) certs;
           message = ''
             You must define `security.acme.certs.<name>.email` or
-            `security.acme.email` to register with the CA.
+            `security.acme.email` to register with the CA. Note that using
+            many different addresses for certs may trigger account rate limits.
           '';
         }
         {
@@ -291,175 +592,78 @@ in
             to `true`. For Let's Encrypt's ToS see https://letsencrypt.org/repository/
           '';
         }
-      ];
-
-      systemd.services = let
-          services = concatLists servicesLists;
-          servicesLists = mapAttrsToList certToServices cfg.certs;
-          certToServices = cert: data:
-              let
-                # StateDirectory must be relative, and will be created under /var/lib by systemd
-                lpath = "acme/${cert}";
-                apath = "/var/lib/${lpath}";
-                spath = "/var/lib/acme/.lego/${cert}";
-                fileMode = if data.allowKeysForGroup then "640" else "600";
-                globalOpts = [ "-d" data.domain "--email" data.email "--path" "." "--key-type" data.keyType ]
-                          ++ optionals (cfg.acceptTerms) [ "--accept-tos" ]
-                          ++ optionals (data.dnsProvider != null && !data.dnsPropagationCheck) [ "--dns.disable-cp" ]
-                          ++ concatLists (mapAttrsToList (name: root: [ "-d" name ]) data.extraDomains)
-                          ++ (if data.dnsProvider != null then [ "--dns" data.dnsProvider ] else [ "--http" "--http.webroot" data.webroot ])
-                          ++ optionals (cfg.server != null || data.server != null) ["--server" (if data.server == null then cfg.server else data.server)];
-                certOpts = optionals data.ocspMustStaple [ "--must-staple" ];
-                runOpts = escapeShellArgs (globalOpts ++ [ "run" ] ++ certOpts);
-                renewOpts = escapeShellArgs (globalOpts ++
-                  [ "renew" "--days" (toString cfg.validMinDays) ] ++
-                  certOpts ++ data.extraLegoRenewFlags);
-                acmeService = {
-                  description = "Renew ACME Certificate for ${cert}";
-                  after = [ "network.target" "network-online.target" ];
-                  wants = [ "network-online.target" ];
-                  wantedBy = mkIf (!config.boot.isContainer) [ "multi-user.target" ];
-                  preStart = optionalString data.allowKeysForGroup ''
-                    exec find ${spath}/accounts \
-                        -type f \! -perm 640 -exec chmod 640 '{}' \; , \
-                        -type d \! -perm 750 -exec chmod 750 '{}' \;
-                  '';
-                  serviceConfig = {
-                    Type = "oneshot";
-                    User = data.user;
-                    Group = data.group;
-                    PrivateTmp = true;
-                    StateDirectory = "acme/.lego/${cert} acme/.lego/accounts ${lpath}";
-                    StateDirectoryMode = if data.allowKeysForGroup then "750" else "700";
-                    WorkingDirectory = spath;
-                    # Only try loading the credentialsFile if the dns challenge is enabled
-                    EnvironmentFile = if data.dnsProvider != null then data.credentialsFile else null;
-                    ExecStart = pkgs.writeScript "acme-start" ''
-                      #!${pkgs.runtimeShell} -e
-                      test -L ${spath}/accounts -o -d ${spath}/accounts || ln -s ../accounts ${spath}/accounts
-                      ${pkgs.lego}/bin/lego ${renewOpts} || ${pkgs.lego}/bin/lego ${runOpts}
-                    '';
-                    ExecStartPost =
-                      let
-                        keyName = builtins.replaceStrings ["*"] ["_"] data.domain;
-                        script = pkgs.writeScript "acme-post-start" ''
-                          #!${pkgs.runtimeShell} -e
-                          cd ${apath}
-
-                          # Test that existing cert is older than new cert
-                          KEY=${spath}/certificates/${keyName}.key
-                          KEY_CHANGED=no
-                          if [ -e $KEY -a $KEY -nt key.pem ]; then
-                            KEY_CHANGED=yes
-                            cp -p ${spath}/certificates/${keyName}.key key.pem
-                            cp -p ${spath}/certificates/${keyName}.crt fullchain.pem
-                            cp -p ${spath}/certificates/${keyName}.issuer.crt chain.pem
-                            ln -sf fullchain.pem cert.pem
-                            cat key.pem fullchain.pem > full.pem
-                          fi
-
-                          chmod ${fileMode} *.pem
-                          chown '${data.user}:${data.group}' *.pem
-
-                          if [ "$KEY_CHANGED" = "yes" ]; then
-                            : # noop in case postRun is empty
-                            ${data.postRun}
-                          fi
-                        '';
-                      in
-                        "+${script}";
-                  };
-
-                };
-                selfsignedService = {
-                  description = "Create preliminary self-signed certificate for ${cert}";
-                  path = [ pkgs.openssl ];
-                  script =
-                    ''
-                      workdir="$(mktemp -d)"
-
-                      # Create CA
-                      openssl genrsa -des3 -passout pass:xxxx -out $workdir/ca.pass.key 2048
-                      openssl rsa -passin pass:xxxx -in $workdir/ca.pass.key -out $workdir/ca.key
-                      openssl req -new -key $workdir/ca.key -out $workdir/ca.csr \
-                        -subj "/C=UK/ST=Warwickshire/L=Leamington/O=OrgName/OU=Security Department/CN=example.com"
-                      openssl x509 -req -days 1 -in $workdir/ca.csr -signkey $workdir/ca.key -out $workdir/ca.crt
-
-                      # Create key
-                      openssl genrsa -des3 -passout pass:xxxx -out $workdir/server.pass.key 2048
-                      openssl rsa -passin pass:xxxx -in $workdir/server.pass.key -out $workdir/server.key
-                      openssl req -new -key $workdir/server.key -out $workdir/server.csr \
-                        -subj "/C=UK/ST=Warwickshire/L=Leamington/O=OrgName/OU=IT Department/CN=example.com"
-                      openssl x509 -req -days 1 -in $workdir/server.csr -CA $workdir/ca.crt \
-                        -CAkey $workdir/ca.key -CAserial $workdir/ca.srl -CAcreateserial \
-                        -out $workdir/server.crt
-
-                      # Copy key to destination
-                      cp $workdir/server.key ${apath}/key.pem
-
-                      # Create fullchain.pem (same format as "simp_le ... -f fullchain.pem" creates)
-                      cat $workdir/{server.crt,ca.crt} > "${apath}/fullchain.pem"
-
-                      # Create full.pem for e.g. lighttpd
-                      cat $workdir/{server.key,server.crt,ca.crt} > "${apath}/full.pem"
-
-                      # Give key acme permissions
-                      chown '${data.user}:${data.group}' "${apath}/"{key,fullchain,full}.pem
-                      chmod ${fileMode} "${apath}/"{key,fullchain,full}.pem
-                    '';
-                  serviceConfig = {
-                    Type = "oneshot";
-                    PrivateTmp = true;
-                    StateDirectory = lpath;
-                    User = data.user;
-                    Group = data.group;
-                  };
-                  unitConfig = {
-                    # Do not create self-signed key when key already exists
-                    ConditionPathExists = "!${apath}/key.pem";
-                  };
-                };
-              in (
-                [ { name = "acme-${cert}"; value = acmeService; } ]
-                ++ optional cfg.preliminarySelfsigned { name = "acme-selfsigned-${cert}"; value = selfsignedService; }
-              );
-          servicesAttr = listToAttrs services;
-        in
-          servicesAttr;
-
-      systemd.tmpfiles.rules =
-        map (data: "d ${data.webroot}/.well-known/acme-challenge - ${data.user} ${data.group}") (filter (data: data.webroot != null) (attrValues cfg.certs));
-
-      systemd.timers = let
-        # Allow systemd to pick a convenient time within the day
-        # to run the check.
-        # This allows the coalescing of multiple timer jobs.
-        # We divide by the number of certificates so that if you
-        # have many certificates, the renewals are distributed over
-        # the course of the day to avoid rate limits.
-        numCerts = length (attrNames cfg.certs);
-        _24hSecs = 60 * 60 * 24;
-        AccuracySec = "${toString (_24hSecs / numCerts)}s";
-      in flip mapAttrs' cfg.certs (cert: data: nameValuePair
-        ("acme-${cert}")
-        ({
-          description = "Renew ACME Certificate for ${cert}";
-          wantedBy = [ "timers.target" ];
-          timerConfig = {
-            OnCalendar = cfg.renewInterval;
-            Unit = "acme-${cert}.service";
-            Persistent = "yes";
-            inherit AccuracySec;
-            # Skew randomly within the day, per https://letsencrypt.org/docs/integration-guide/.
-            RandomizedDelaySec = "24h";
-          };
-        })
-      );
-
-      systemd.targets.acme-selfsigned-certificates = mkIf cfg.preliminarySelfsigned {};
-      systemd.targets.acme-certificates = {};
-    })
+      ] ++ (builtins.concatLists (mapAttrsToList (cert: data: [
+        {
+          assertion = data.user == "_mkRemovedOptionModule";
+          message = ''
+            The option definition `security.acme.certs.${cert}.user' no longer has any effect; Please remove it.
+            Certificate user is now hard coded to the "acme" user. If you would
+            like another user to have access, consider adding them to the
+            "acme" group or changing security.acme.certs.${cert}.group.
+          '';
+        }
+        {
+          assertion = data.allowKeysForGroup == "_mkRemovedOptionModule";
+          message = ''
+            The option definition `security.acme.certs.${cert}.allowKeysForGroup' no longer has any effect; Please remove it.
+            All certs are readable by the configured group. If this is undesired,
+            consider changing security.acme.certs.${cert}.group to an unused group.
+          '';
+        }
+        # * in the cert value breaks building of systemd services, and makes
+        # referencing them as a user quite weird too. Best practice is to use
+        # the domain option.
+        {
+          assertion = ! hasInfix "*" cert;
+          message = ''
+            The cert option path `security.acme.certs.${cert}.dnsProvider`
+            cannot contain a * character.
+            Instead, set `security.acme.certs.${cert}.domain = "${cert}";`
+            and remove the wildcard from the path.
+          '';
+        }
+        {
+          assertion = data.dnsProvider == null || data.webroot == null;
+          message = ''
+            Options `security.acme.certs.${cert}.dnsProvider` and
+            `security.acme.certs.${cert}.webroot` are mutually exclusive.
+          '';
+        }
+      ]) cfg.certs));
+
+      users.users.acme = {
+        home = "/var/lib/acme";
+        group = "acme";
+        isSystemUser = true;
+      };
 
+      users.groups.acme = {};
+
+      systemd.services = {
+        "acme-fixperms" = userMigrationService;
+      } // (mapAttrs' (cert: conf: nameValuePair "acme-${cert}" conf.renewService) certConfigs)
+        // (optionalAttrs (cfg.preliminarySelfsigned) ({
+        "acme-selfsigned-ca" = selfsignCAService;
+      } // (mapAttrs' (cert: conf: nameValuePair "acme-selfsigned-${cert}" conf.selfsignService) certConfigs)));
+
+      systemd.timers = mapAttrs' (cert: conf: nameValuePair "acme-${cert}" conf.renewTimer) certConfigs;
+
+      # .lego and .lego/accounts specified to fix any incorrect permissions
+      systemd.tmpfiles.rules = [
+        "d /var/lib/acme/.lego - acme acme"
+        "d /var/lib/acme/.lego/accounts - acme acme"
+      ] ++ (unique (concatMap (conf: [
+          "d ${conf.accountDir} - acme acme"
+        ] ++ (optional (conf.webroot != null) "d ${conf.webroot}/.well-known/acme-challenge - acme ${conf.group}")
+      ) (attrValues certConfigs)));
+
+      # Create some targets which can be depended on to be "active" after cert renewals
+      systemd.targets = mapAttrs' (cert: conf: nameValuePair "acme-finished-${cert}" {
+        wantedBy = [ "default.target" ];
+        requires = [ "acme-${cert}.service" ] ++ conf.selfsignedDeps;
+        after = [ "acme-${cert}.service" ] ++ conf.selfsignedDeps;
+      }) certConfigs;
+    })
   ];
 
   meta = {
diff --git a/nixpkgs/nixos/modules/security/acme.xml b/nixpkgs/nixos/modules/security/acme.xml
index f802faee9749..17e94bc12fb2 100644
--- a/nixpkgs/nixos/modules/security/acme.xml
+++ b/nixpkgs/nixos/modules/security/acme.xml
@@ -72,7 +72,7 @@ services.nginx = {
     "foo.example.com" = {
       <link linkend="opt-services.nginx.virtualHosts._name_.forceSSL">forceSSL</link> = true;
       <link linkend="opt-services.nginx.virtualHosts._name_.enableACME">enableACME</link> = true;
-      # All serverAliases will be added as <link linkend="opt-security.acme.certs._name_.extraDomains">extra domains</link> on the certificate.
+      # All serverAliases will be added as <link linkend="opt-security.acme.certs._name_.extraDomainNames">extra domain names</link> on the certificate.
       <link linkend="opt-services.nginx.virtualHosts._name_.serverAliases">serverAliases</link> = [ "bar.example.com" ];
       locations."/" = {
         <link linkend="opt-services.nginx.virtualHosts._name_.locations._name_.root">root</link> = "/var/www";
@@ -80,8 +80,8 @@ services.nginx = {
     };
 
     # We can also add a different vhost and reuse the same certificate
-    # but we have to append extraDomains manually.
-    <link linkend="opt-security.acme.certs._name_.extraDomains">security.acme.certs."foo.example.com".extraDomains."baz.example.com"</link> = null;
+    # but we have to append extraDomainNames manually.
+    <link linkend="opt-security.acme.certs._name_.extraDomainNames">security.acme.certs."foo.example.com".extraDomainNames</link> = [ "baz.example.com" ];
     "baz.example.com" = {
       <link linkend="opt-services.nginx.virtualHosts._name_.forceSSL">forceSSL</link> = true;
       <link linkend="opt-services.nginx.virtualHosts._name_.useACMEHost">useACMEHost</link> = "foo.example.com";
@@ -165,7 +165,7 @@ services.httpd = {
   # Since we have a wildcard vhost to handle port 80,
   # we can generate certs for anything!
   # Just make sure your DNS resolves them.
-  <link linkend="opt-security.acme.certs._name_.extraDomains">extraDomains</link> = [ "mail.example.com" ];
+  <link linkend="opt-security.acme.certs._name_.extraDomainNames">extraDomainNames</link> = [ "mail.example.com" ];
 };
 </programlisting>
 
@@ -251,4 +251,16 @@ chmod 400 /var/lib/secrets/certs.secret
    journalctl -fu acme-example.com.service</literal> and watching its log output.
   </para>
  </section>
+ <section xml:id="module-security-acme-regenerate">
+  <title>Regenerating certificates</title>
+
+  <para>
+   Should you need to regenerate a particular certificate in a hurry, such
+   as when a vulnerability is found in Let's Encrypt, there is now a convenient
+   mechanism for doing so. Running <literal>systemctl clean acme-example.com.service</literal>
+   will remove all certificate files for the given domain, allowing you to then
+   <literal>systemctl start acme-example.com.service</literal> to generate fresh
+   ones.
+  </para>
+ </section>
 </chapter>
diff --git a/nixpkgs/nixos/modules/security/apparmor.nix b/nixpkgs/nixos/modules/security/apparmor.nix
index cfc65b347bc6..2ee10454fd26 100644
--- a/nixpkgs/nixos/modules/security/apparmor.nix
+++ b/nixpkgs/nixos/modules/security/apparmor.nix
@@ -23,11 +23,17 @@ in
          default = [];
          description = "List of packages to be added to apparmor's include path";
        };
+       parserConfig = mkOption {
+         type = types.str;
+         default = "";
+         description = "AppArmor parser configuration file content";
+       };
      };
    };
 
    config = mkIf cfg.enable {
      environment.systemPackages = [ pkgs.apparmor-utils ];
+     environment.etc."apparmor/parser.conf".text = cfg.parserConfig;
 
      boot.kernelParams = [ "apparmor=1" "security=apparmor" ];
 
diff --git a/nixpkgs/nixos/modules/security/duosec.nix b/nixpkgs/nixos/modules/security/duosec.nix
index 71428b82f5da..c47be80b9dc3 100644
--- a/nixpkgs/nixos/modules/security/duosec.nix
+++ b/nixpkgs/nixos/modules/security/duosec.nix
@@ -51,7 +51,7 @@ in
       };
 
       secretKeyFile = mkOption {
-        type = types.path;
+        type = types.nullOr types.path;
         default = null;
         description = ''
           A file containing your secret key. The security of your Duo application is tied to the security of your secret key.
diff --git a/nixpkgs/nixos/modules/security/misc.nix b/nixpkgs/nixos/modules/security/misc.nix
index 16e3bfb14199..d51dbbb77f71 100644
--- a/nixpkgs/nixos/modules/security/misc.nix
+++ b/nixpkgs/nixos/modules/security/misc.nix
@@ -27,6 +27,16 @@ with lib;
       '';
     };
 
+    security.unprivilegedUsernsClone = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        When disabled, unprivileged users will not be able to create new namespaces.
+        By default unprivileged user namespaces are disabled.
+        This option only works in a hardened profile.
+      '';
+    };
+
     security.protectKernelImage = mkOption {
       type = types.bool;
       default = false;
@@ -115,6 +125,10 @@ with lib;
       ];
     })
 
+    (mkIf config.security.unprivilegedUsernsClone {
+      boot.kernel.sysctl."kernel.unprivileged_userns_clone" = mkDefault true;
+    })
+
     (mkIf config.security.protectKernelImage {
       # Disable hibernation (allows replacing the running kernel)
       boot.kernelParams = [ "nohibernate" ];
diff --git a/nixpkgs/nixos/modules/security/pam.nix b/nixpkgs/nixos/modules/security/pam.nix
index 688344852aeb..4141a17c5072 100644
--- a/nixpkgs/nixos/modules/security/pam.nix
+++ b/nixpkgs/nixos/modules/security/pam.nix
@@ -36,6 +36,17 @@ let
         '';
       };
 
+      p11Auth = mkOption {
+        default = config.security.pam.p11.enable;
+        type = types.bool;
+        description = ''
+          If set, keys listed in
+          <filename>~/.ssh/authorized_keys</filename> and
+          <filename>~/.eid/authorized_certificates</filename>
+          can be used to log in with the associated PKCS#11 tokens.
+        '';
+      };
+
       u2fAuth = mkOption {
         default = config.security.pam.u2f.enable;
         type = types.bool;
@@ -352,6 +363,8 @@ let
               "auth sufficient ${pkgs.pam_ssh_agent_auth}/libexec/pam_ssh_agent_auth.so file=~/.ssh/authorized_keys:~/.ssh/authorized_keys2:/etc/ssh/authorized_keys.d/%u"}
           ${optionalString cfg.fprintAuth
               "auth sufficient ${pkgs.fprintd}/lib/security/pam_fprintd.so"}
+          ${let p11 = config.security.pam.p11; in optionalString cfg.p11Auth
+              "auth ${p11.control} ${pkgs.pam_p11}/lib/security/pam_p11.so ${pkgs.opensc}/lib/opensc-pkcs11.so"}
           ${let u2f = config.security.pam.u2f; in optionalString cfg.u2fAuth
               "auth ${u2f.control} ${pkgs.pam_u2f}/lib/security/pam_u2f.so ${optionalString u2f.debug "debug"} ${optionalString (u2f.authFile != null) "authfile=${u2f.authFile}"} ${optionalString u2f.interactive "interactive"} ${optionalString u2f.cue "cue"}"}
           ${optionalString cfg.usbAuth
@@ -381,7 +394,7 @@ let
                 "auth optional ${pkgs.pam_mount}/lib/security/pam_mount.so"}
               ${optionalString cfg.enableKwallet
                 ("auth optional ${pkgs.plasma5.kwallet-pam}/lib/security/pam_kwallet5.so" +
-                 " kwalletd=${pkgs.libsForQt5.kwallet.bin}/bin/kwalletd5")}
+                 " kwalletd=${pkgs.kdeFrameworks.kwallet.bin}/bin/kwalletd5")}
               ${optionalString cfg.enableGnomeKeyring
                 "auth optional ${pkgs.gnome3.gnome-keyring}/lib/security/pam_gnome_keyring.so"}
               ${optionalString cfg.googleAuthenticator.enable
@@ -458,7 +471,7 @@ let
               "session optional ${pkgs.apparmor-pam}/lib/security/pam_apparmor.so order=user,group,default debug"}
           ${optionalString (cfg.enableKwallet)
               ("session optional ${pkgs.plasma5.kwallet-pam}/lib/security/pam_kwallet5.so" +
-               " kwalletd=${pkgs.libsForQt5.kwallet.bin}/bin/kwalletd5")}
+               " kwalletd=${pkgs.kdeFrameworks.kwallet.bin}/bin/kwalletd5")}
           ${optionalString (cfg.enableGnomeKeyring)
               "session optional ${pkgs.gnome3.gnome-keyring}/lib/security/pam_gnome_keyring.so auto_start"}
           ${optionalString (config.virtualisation.lxc.lxcfs.enable)
@@ -531,7 +544,7 @@ in
 
     security.pam.services = mkOption {
       default = [];
-      type = with types; loaOf (submodule pamOpts);
+      type = with types; attrsOf (submodule pamOpts);
       description =
         ''
           This option defines the PAM services.  A service typically
@@ -566,6 +579,39 @@ in
 
     security.pam.enableOTPW = mkEnableOption "the OTPW (one-time password) PAM module";
 
+    security.pam.p11 = {
+      enable = mkOption {
+        default = false;
+        type = types.bool;
+        description = ''
+          Enables P11 PAM (<literal>pam_p11</literal>) module.
+
+          If set, users can log in with SSH keys and PKCS#11 tokens.
+
+          More information can be found <link
+          xlink:href="https://github.com/OpenSC/pam_p11">here</link>.
+        '';
+      };
+
+      control = mkOption {
+        default = "sufficient";
+        type = types.enum [ "required" "requisite" "sufficient" "optional" ];
+        description = ''
+          This option sets pam "control".
+          If you want to have multi factor authentication, use "required".
+          If you want to use the PKCS#11 device instead of the regular password,
+          use "sufficient".
+
+          Read
+          <citerefentry>
+            <refentrytitle>pam.conf</refentrytitle>
+            <manvolnum>5</manvolnum>
+          </citerefentry>
+          for better understanding of this option.
+        '';
+      };
+    };
+
     security.pam.u2f = {
       enable = mkOption {
         default = false;
@@ -747,6 +793,7 @@ in
       ++ optionals config.krb5.enable [pam_krb5 pam_ccreds]
       ++ optionals config.security.pam.enableOTPW [ pkgs.otpw ]
       ++ optionals config.security.pam.oath.enable [ pkgs.oathToolkit ]
+      ++ optionals config.security.pam.p11.enable [ pkgs.pam_p11 ]
       ++ optionals config.security.pam.u2f.enable [ pkgs.pam_u2f ];
 
     boot.supportedFilesystems = optionals config.security.pam.enableEcryptfs [ "ecryptfs" ];
diff --git a/nixpkgs/nixos/modules/security/rngd.nix b/nixpkgs/nixos/modules/security/rngd.nix
index cffa1a5849f9..cb885c4762d0 100644
--- a/nixpkgs/nixos/modules/security/rngd.nix
+++ b/nixpkgs/nixos/modules/security/rngd.nix
@@ -10,11 +10,10 @@ in
     security.rngd = {
       enable = mkOption {
         type = types.bool;
-        default = true;
+        default = false;
         description = ''
-          Whether to enable the rng daemon, which adds entropy from
-          hardware sources of randomness to the kernel entropy pool when
-          available.
+          Whether to enable the rng daemon.  Devices that the kernel recognises
+          as entropy sources are handled automatically by krngd.
         '';
       };
       debug = mkOption {
@@ -26,12 +25,6 @@ in
   };
 
   config = mkIf cfg.enable {
-    services.udev.extraRules = ''
-      KERNEL=="random", TAG+="systemd"
-      SUBSYSTEM=="cpu", ENV{MODALIAS}=="cpu:type:x86,*feature:*009E*", TAG+="systemd", ENV{SYSTEMD_WANTS}+="rngd.service"
-      KERNEL=="hw_random", TAG+="systemd", ENV{SYSTEMD_WANTS}+="rngd.service"
-    '';
-
     systemd.services.rngd = {
       bindsTo = [ "dev-random.device" ];
 
diff --git a/nixpkgs/nixos/modules/security/systemd-confinement.nix b/nixpkgs/nixos/modules/security/systemd-confinement.nix
index 0a400f1d535b..2927d424a8a2 100644
--- a/nixpkgs/nixos/modules/security/systemd-confinement.nix
+++ b/nixpkgs/nixos/modules/security/systemd-confinement.nix
@@ -135,7 +135,7 @@ in {
           ];
           execPkgs = lib.concatMap (opt: let
             isSet = config.serviceConfig ? ${opt};
-          in lib.optional isSet config.serviceConfig.${opt}) execOpts;
+          in lib.flatten (lib.optional isSet config.serviceConfig.${opt})) execOpts;
           unitAttrs = toplevelConfig.systemd.units."${name}.service";
           allPkgs = lib.singleton (builtins.toJSON unitAttrs);
           unitPkgs = if fullUnit then allPkgs else execPkgs;
diff --git a/nixpkgs/nixos/modules/security/tpm2.nix b/nixpkgs/nixos/modules/security/tpm2.nix
index 13804fb82cba..27f9b58c9755 100644
--- a/nixpkgs/nixos/modules/security/tpm2.nix
+++ b/nixpkgs/nixos/modules/security/tpm2.nix
@@ -170,7 +170,6 @@ in {
           Restart = "always";
           RestartSec = 30;
           BusName = "com.intel.tss2.Tabrmd";
-          StandardOutput = "syslog";
           ExecStart = "${cfg.abrmd.package}/bin/tpm2-abrmd";
           User = "tss";
           Group = "nogroup";
diff --git a/nixpkgs/nixos/modules/security/wrappers/default.nix b/nixpkgs/nixos/modules/security/wrappers/default.nix
index a0fadb018eca..2def74f85353 100644
--- a/nixpkgs/nixos/modules/security/wrappers/default.nix
+++ b/nixpkgs/nixos/modules/security/wrappers/default.nix
@@ -160,8 +160,11 @@ in
   config = {
 
     security.wrappers = {
+      # These are mount related wrappers that require the +s permission.
       fusermount.source = "${pkgs.fuse}/bin/fusermount";
       fusermount3.source = "${pkgs.fuse3}/bin/fusermount3";
+      mount.source = "${lib.getBin pkgs.utillinux}/bin/mount";
+      umount.source = "${lib.getBin pkgs.utillinux}/bin/umount";
     };
 
     boot.specialFileSystems.${parentWrapperDir} = {
diff --git a/nixpkgs/nixos/modules/services/audio/icecast.nix b/nixpkgs/nixos/modules/services/audio/icecast.nix
index 6a8a0f9975b3..6ca20a7a1086 100644
--- a/nixpkgs/nixos/modules/services/audio/icecast.nix
+++ b/nixpkgs/nixos/modules/services/audio/icecast.nix
@@ -23,7 +23,7 @@ let
       <listen-socket>
         <port>${toString cfg.listen.port}</port>
         <bind-address>${cfg.listen.address}</bind-address>
-      </listen-socket>   
+      </listen-socket>
 
       <security>
         <chroot>0</chroot>
@@ -47,7 +47,7 @@ in {
       enable = mkEnableOption "Icecast server";
 
       hostname = mkOption {
-        type = types.str;
+        type = types.nullOr types.str;
         description = "DNS name or IP address that will be used for the stream directory lookups or possibily the playlist generation if a Host header is not provided.";
         default = config.networking.domain;
       };
@@ -70,7 +70,7 @@ in {
         description = "Base directory used for logging.";
         default = "/var/log/icecast";
       };
-      
+
       listen = {
         port = mkOption {
           type = types.int;
diff --git a/nixpkgs/nixos/modules/services/audio/mpd.nix b/nixpkgs/nixos/modules/services/audio/mpd.nix
index f4eb4a265a46..ba20b1b98d97 100644
--- a/nixpkgs/nixos/modules/services/audio/mpd.nix
+++ b/nixpkgs/nixos/modules/services/audio/mpd.nix
@@ -11,6 +11,10 @@ let
   cfg = config.services.mpd;
 
   mpdConf = pkgs.writeText "mpd.conf" ''
+    # This file was automatically generated by NixOS. Edit mpd's configuration
+    # via NixOS' configuration.nix, as this file will be rewritten upon mpd's
+    # restart.
+
     music_directory     "${cfg.musicDirectory}"
     playlist_directory  "${cfg.playlistDirectory}"
     ${lib.optionalString (cfg.dbFile != null) ''
@@ -21,6 +25,12 @@ let
 
     ${optionalString (cfg.network.listenAddress != "any") ''bind_to_address "${cfg.network.listenAddress}"''}
     ${optionalString (cfg.network.port != 6600)  ''port "${toString cfg.network.port}"''}
+    ${optionalString (cfg.fluidsynth) ''
+      decoder {
+              plugin "fluidsynth"
+              soundfont "${pkgs.soundfont-fluid}/share/soundfonts/FluidR3_GM2-2.sf2"
+      }
+    ''}
 
     ${cfg.extraConfig}
   '';
@@ -133,6 +143,26 @@ in {
           parameter is omitted from the configuration.
         '';
       };
+
+      credentialsFile = mkOption {
+        type = types.path;
+        description = ''
+          Path to a file to be merged with the settings during the service startup.
+          Useful to merge a file which is better kept out of the Nix store
+          because it contains sensible data like MPD's password. Example may look like this:
+          <literal>password "myMpdPassword@read,add,control,admin"</literal>
+        '';
+        default = "/dev/null";
+        example = "/var/lib/secrets/mpd.conf";
+      };
+
+      fluidsynth = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          If set, add fluidsynth soundfont and configure the plugin.
+        '';
+      };
     };
 
   };
@@ -167,7 +197,12 @@ in {
 
       serviceConfig = {
         User = "${cfg.user}";
-        ExecStart = "${pkgs.mpd}/bin/mpd --no-daemon ${mpdConf}";
+        ExecStart = "${pkgs.mpd}/bin/mpd --no-daemon /etc/mpd.conf";
+        ExecStartPre = pkgs.writeScript "mpd-start-pre" ''
+          #!${pkgs.runtimeShell}
+          set -euo pipefail
+          cat ${mpdConf} ${cfg.credentialsFile} > /etc/mpd.conf
+        '';
         Type = "notify";
         LimitRTPRIO = 50;
         LimitRTTIME = "infinity";
@@ -181,6 +216,14 @@ in {
         Restart = "always";
       };
     };
+    environment.etc."mpd.conf" = {
+      mode = "0640";
+      group = cfg.group;
+      user = cfg.user;
+      # To be modified by the service' ExecStartPre
+      text = ''
+      '';
+    };
 
     users.users = optionalAttrs (cfg.user == name) {
       ${name} = {
diff --git a/nixpkgs/nixos/modules/services/audio/roon-server.nix b/nixpkgs/nixos/modules/services/audio/roon-server.nix
index 6aed485638cc..eceb65044c5b 100644
--- a/nixpkgs/nixos/modules/services/audio/roon-server.nix
+++ b/nixpkgs/nixos/modules/services/audio/roon-server.nix
@@ -45,14 +45,14 @@ in {
       environment.ROON_DATAROOT = "/var/lib/${name}";
 
       serviceConfig = {
-        ExecStart = "${pkgs.roon-server}/opt/start.sh";
+        ExecStart = "${pkgs.roon-server}/start.sh";
         LimitNOFILE = 8192;
         User = cfg.user;
         Group = cfg.group;
         StateDirectory = name;
       };
     };
-    
+
     networking.firewall = mkIf cfg.openFirewall {
       allowedTCPPortRanges = [
         { from = 9100; to = 9200; }
@@ -60,7 +60,7 @@ in {
       allowedUDPPorts = [ 9003 ];
     };
 
-    
+
     users.groups.${cfg.group} = {};
     users.users.${cfg.user} =
       if cfg.user == "roon-server" then {
diff --git a/nixpkgs/nixos/modules/services/audio/snapserver.nix b/nixpkgs/nixos/modules/services/audio/snapserver.nix
index b0b9264e8166..f614f0ba3e10 100644
--- a/nixpkgs/nixos/modules/services/audio/snapserver.nix
+++ b/nixpkgs/nixos/modules/services/audio/snapserver.nix
@@ -31,27 +31,42 @@ let
     let
       os = val:
         optionalString (val != null) "${val}";
-      os' = prefixx: val:
-        optionalString (val != null) (prefixx + "${val}");
+      os' = prefix: val:
+        optionalString (val != null) (prefix + "${val}");
       flatten = key: value:
         "&${key}=${value}";
     in
-      "-s ${opt.type}://" + os opt.location + "?" + os' "name=" name
-        + concatStrings (mapAttrsToList flatten opt.query);
+      "--stream.stream=\"${opt.type}://" + os opt.location + "?" + os' "name=" name
+        + concatStrings (mapAttrsToList flatten opt.query) + "\"";
 
   optionalNull = val: ret:
     optional (val != null) ret;
 
   optionString = concatStringsSep " " (mapAttrsToList streamToOption cfg.streams
-             ++ ["-p ${toString cfg.port}"]
-             ++ ["--controlPort ${toString cfg.controlPort}"]
-             ++ optionalNull cfg.sampleFormat "--sampleFormat ${cfg.sampleFormat}"
-             ++ optionalNull cfg.codec "-c ${cfg.codec}"
-             ++ optionalNull cfg.streamBuffer "--streamBuffer ${cfg.streamBuffer}"
-             ++ optionalNull cfg.buffer "-b ${cfg.buffer}"
-             ++ optional cfg.sendToMuted "--sendToMuted");
+    # global options
+    ++ [ "--stream.bind_to_address ${cfg.listenAddress}" ]
+    ++ [ "--stream.port ${toString cfg.port}" ]
+    ++ optionalNull cfg.sampleFormat "--stream.sampleformat ${cfg.sampleFormat}"
+    ++ optionalNull cfg.codec "--stream.codec ${cfg.codec}"
+    ++ optionalNull cfg.streamBuffer "--stream.stream_buffer ${cfg.streamBuffer}"
+    ++ optionalNull cfg.buffer "--stream.buffer ${cfg.buffer}"
+    ++ optional cfg.sendToMuted "--stream.send_to_muted"
+    # tcp json rpc
+    ++ [ "--tcp.enabled ${toString cfg.tcp.enable}" ]
+    ++ optionals cfg.tcp.enable [
+      "--tcp.address ${cfg.tcp.listenAddress}"
+      "--tcp.port ${toString cfg.tcp.port}" ]
+     # http json rpc
+    ++ [ "--http.enabled ${toString cfg.http.enable}" ]
+    ++ optionals cfg.http.enable [
+      "--http.address ${cfg.http.listenAddress}"
+      "--http.port ${toString cfg.http.port}"
+    ] ++ optional (cfg.http.docRoot != null) "--http.doc_root \"${toString cfg.http.docRoot}\"");
 
 in {
+  imports = [
+    (mkRenamedOptionModule [ "services" "snapserver" "controlPort"] [ "services" "snapserver" "tcp" "port" ])
+  ];
 
   ###### interface
 
@@ -67,6 +82,15 @@ in {
         '';
       };
 
+      listenAddress = mkOption {
+        type = types.str;
+        default = "::";
+        example = "0.0.0.0";
+        description = ''
+          The address where snapclients can connect.
+        '';
+      };
+
       port = mkOption {
         type = types.port;
         default = 1704;
@@ -75,24 +99,100 @@ in {
         '';
       };
 
-      controlPort = mkOption {
+      openFirewall = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to automatically open the specified ports in the firewall.
+        '';
+      };
+
+      inherit sampleFormat;
+      inherit codec;
+
+      streamBuffer = mkOption {
+        type = with types; nullOr int;
+        default = null;
+        description = ''
+          Stream read (input) buffer in ms.
+        '';
+        example = 20;
+      };
+
+      buffer = mkOption {
+        type = with types; nullOr int;
+        default = null;
+        description = ''
+          Network buffer in ms.
+        '';
+        example = 1000;
+      };
+
+      sendToMuted = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Send audio to muted clients.
+        '';
+      };
+
+      tcp.enable = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to enable the JSON-RPC via TCP.
+        '';
+      };
+
+      tcp.listenAddress = mkOption {
+        type = types.str;
+        default = "::";
+        example = "0.0.0.0";
+        description = ''
+          The address where the TCP JSON-RPC listens on.
+        '';
+      };
+
+      tcp.port = mkOption {
         type = types.port;
         default = 1705;
         description = ''
-          The port for control connections (JSON-RPC).
+          The port where the TCP JSON-RPC listens on.
         '';
       };
 
-      openFirewall = mkOption {
+      http.enable = mkOption {
         type = types.bool;
         default = true;
         description = ''
-          Whether to automatically open the specified ports in the firewall.
+          Whether to enable the JSON-RPC via HTTP.
         '';
       };
 
-      inherit sampleFormat;
-      inherit codec;
+      http.listenAddress = mkOption {
+        type = types.str;
+        default = "::";
+        example = "0.0.0.0";
+        description = ''
+          The address where the HTTP JSON-RPC listens on.
+        '';
+      };
+
+      http.port = mkOption {
+        type = types.port;
+        default = 1780;
+        description = ''
+          The port where the HTTP JSON-RPC listens on.
+        '';
+      };
+
+      http.docRoot = mkOption {
+        type = with types; nullOr path;
+        default = null;
+        description = ''
+          Path to serve from the HTTP servers root.
+        '';
+      };
 
       streams = mkOption {
         type = with types; attrsOf (submodule {
@@ -147,34 +247,7 @@ in {
           };
         '';
       };
-
-      streamBuffer = mkOption {
-        type = with types; nullOr int;
-        default = null;
-        description = ''
-          Stream read (input) buffer in ms.
-        '';
-        example = 20;
-      };
-
-      buffer = mkOption {
-        type = with types; nullOr int;
-        default = null;
-        description = ''
-          Network buffer in ms.
-        '';
-        example = 1000;
-      };
-
-      sendToMuted = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Send audio to muted clients.
-        '';
-      };
     };
-
   };
 
 
@@ -206,7 +279,10 @@ in {
       };
     };
 
-    networking.firewall.allowedTCPPorts = optionals cfg.openFirewall [ cfg.port cfg.controlPort ];
+    networking.firewall.allowedTCPPorts =
+      optionals cfg.openFirewall [ cfg.port ]
+      ++ optional cfg.tcp.enable cfg.tcp.port
+      ++ optional cfg.http.enable cfg.http.port;
   };
 
   meta = {
diff --git a/nixpkgs/nixos/modules/services/audio/spotifyd.nix b/nixpkgs/nixos/modules/services/audio/spotifyd.nix
index 4b74e7532795..a589153248fe 100644
--- a/nixpkgs/nixos/modules/services/audio/spotifyd.nix
+++ b/nixpkgs/nixos/modules/services/audio/spotifyd.nix
@@ -16,7 +16,7 @@ in
         type = types.lines;
         description = ''
           Configuration for Spotifyd. For syntax and directives, see
-          https://github.com/Spotifyd/spotifyd#Configuration.
+          <link xlink:href="https://github.com/Spotifyd/spotifyd#Configuration"/>.
         '';
       };
     };
diff --git a/nixpkgs/nixos/modules/services/backup/bacula.nix b/nixpkgs/nixos/modules/services/backup/bacula.nix
index cef304734aee..3d69a69038a3 100644
--- a/nixpkgs/nixos/modules/services/backup/bacula.nix
+++ b/nixpkgs/nixos/modules/services/backup/bacula.nix
@@ -18,7 +18,7 @@ let
         Pid Directory = "/run";
         ${fd_cfg.extraClientConfig}
       }
-     
+
       ${concatStringsSep "\n" (mapAttrsToList (name: value: ''
       Director {
         Name = "${name}";
@@ -26,7 +26,7 @@ let
         Monitor = "${value.monitor}";
       }
       '') fd_cfg.director)}
-     
+
       Messages {
         Name = Standard;
         syslog = all, !skipped, !restored
@@ -35,7 +35,7 @@ let
     '';
 
   sd_cfg = config.services.bacula-sd;
-  sd_conf = pkgs.writeText "bacula-sd.conf" 
+  sd_conf = pkgs.writeText "bacula-sd.conf"
     ''
       Storage {
         Name = "${sd_cfg.name}";
@@ -80,7 +80,7 @@ let
     '';
 
   dir_cfg = config.services.bacula-dir;
-  dir_conf = pkgs.writeText "bacula-dir.conf" 
+  dir_conf = pkgs.writeText "bacula-dir.conf"
     ''
     Director {
       Name = "${dir_cfg.name}";
@@ -125,10 +125,10 @@ let
 
           The password is plain text. It is not generated through any special
           process but as noted above, it is better to use random text for
-          security reasons. 
+          security reasons.
         '';
       };
-      
+
       monitor = mkOption {
         default = "no";
         example = "yes";
@@ -140,7 +140,7 @@ let
 
           Please note that if this director is being used by a Monitor, we
           highly recommend to set this directive to yes to avoid serious
-          security problems. 
+          security problems.
         '';
       };
     };
@@ -163,7 +163,7 @@ let
           type of autochanger, what you specify here can vary. This directive
           is optional. See the Using AutochangersAutochangersChapter chapter of
           this manual for more details of using this and the following
-          autochanger directives.         
+          autochanger directives.
           '';
       };
 
@@ -200,7 +200,7 @@ let
           Extra configuration to be passed in Autochanger directive.
         '';
         example = ''
-   
+
         '';
       };
     };
@@ -222,7 +222,7 @@ let
           if you are archiving to disk storage. In this case, you must supply
           the full absolute path to the directory. When specifying a tape
           device, it is preferable that the "non-rewind" variant of the device
-          file name be given. 
+          file name be given.
         '';
       };
 
@@ -290,7 +290,7 @@ in {
           Whether to enable the Bacula File Daemon.
         '';
       };
- 
+
       name = mkOption {
         default = "${config.networking.hostName}-fd";
         description = ''
@@ -300,7 +300,7 @@ in {
           Clients. This directive is required.
         '';
       };
- 
+
       port = mkOption {
         default = 9102;
         type = types.int;
@@ -310,7 +310,7 @@ in {
           the Client resource of the Director's configuration file.
         '';
       };
- 
+
       director = mkOption {
         default = {};
         description = ''
@@ -349,14 +349,14 @@ in {
           Whether to enable Bacula Storage Daemon.
         '';
       };
- 
+
       name = mkOption {
         default = "${config.networking.hostName}-sd";
         description = ''
           Specifies the Name of the Storage daemon.
         '';
       };
- 
+
       port = mkOption {
         default = 9103;
         type = types.int;
@@ -410,7 +410,7 @@ in {
           console = all
         '';
       };
- 
+
     };
 
     services.bacula-dir = {
@@ -429,7 +429,7 @@ in {
           required.
         '';
       };
- 
+
       port = mkOption {
         default = 9101;
         type = types.int;
@@ -442,7 +442,7 @@ in {
           specify DirAddresses (N.B plural) directive.
         '';
       };
- 
+
       password = mkOption {
         # TODO: required?
         description = ''
diff --git a/nixpkgs/nixos/modules/services/backup/borgbackup.xml b/nixpkgs/nixos/modules/services/backup/borgbackup.xml
index bef7db608f82..8f623c936568 100644
--- a/nixpkgs/nixos/modules/services/backup/borgbackup.xml
+++ b/nixpkgs/nixos/modules/services/backup/borgbackup.xml
@@ -69,10 +69,10 @@
     access this single repository. You need the output of the generate pub file.
   </para>
     <para>
-        <programlisting>
-# sudo ssh-keygen -N '' -t ed25519 -f /run/keys/id_ed25519_my_borg_repo
-# cat /run/keys/id_ed25519_my_borg_repo
-ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID78zmOyA+5uPG4Ot0hfAy+sLDPU1L4AiIoRYEIVbbQ/ root@nixos</programlisting>
+<screen>
+<prompt># </prompt>sudo ssh-keygen -N '' -t ed25519 -f /run/keys/id_ed25519_my_borg_repo
+<prompt># </prompt>cat /run/keys/id_ed25519_my_borg_repo
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAID78zmOyA+5uPG4Ot0hfAy+sLDPU1L4AiIoRYEIVbbQ/ root@nixos</screen>
     </para>
     <para>
       Add the following snippet to your NixOS configuration:
@@ -197,26 +197,8 @@ sudo borg init --encryption=repokey-blake2  \
     disk failure, ransomware and theft.
   </para>
   <para>
-    It is available as a flatpak package. To enable it you must set the
-    following two configuration items.
-  </para>
-  <para>
-    <programlisting>
-services.flatpak.enable = true ;
-# next line is needed to avoid the Error
-# Error deploying: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown:
-services.accounts-daemon.enable = true;
-    </programlisting>
-  </para>
-  <para>As a normal user you must first install, then run vorta using the
-    following commands:
-    <programlisting>
-flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
-flatpak install flathub com.borgbase.Vorta
-flatpak run --branch=stable --arch=x86_64 --command=vorta com.borgbase.Vorta
-</programlisting>
-    After running <code>flatpak install</code> you can start Vorta also via
-        the KDE application menu.
+   It can be installed in NixOS e.g. by adding <package>pkgs.vorta</package>
+   to <xref linkend="opt-environment.systemPackages" />.
   </para>
   <para>
     Details about using Vorta can be found under <link
diff --git a/nixpkgs/nixos/modules/services/backup/restic.nix b/nixpkgs/nixos/modules/services/backup/restic.nix
index 2388f1d6ca13..d869835bf07e 100644
--- a/nixpkgs/nixos/modules/services/backup/restic.nix
+++ b/nixpkgs/nixos/modules/services/backup/restic.nix
@@ -31,6 +31,59 @@ in
           '';
         };
 
+        rcloneOptions = mkOption {
+          type = with types; nullOr (attrsOf (oneOf [ str bool ]));
+          default = null;
+          description = ''
+            Options to pass to rclone to control its behavior.
+            See <link xlink:href="https://rclone.org/docs/#options"/> for
+            available options. When specifying option names, strip the
+            leading <literal>--</literal>. To set a flag such as
+            <literal>--drive-use-trash</literal>, which does not take a value,
+            set the value to the Boolean <literal>true</literal>.
+          '';
+          example = {
+            bwlimit = "10M";
+            drive-use-trash = "true";
+          };
+        };
+
+        rcloneConfig = mkOption {
+          type = with types; nullOr (attrsOf (oneOf [ str bool ]));
+          default = null;
+          description = ''
+            Configuration for the rclone remote being used for backup.
+            See the remote's specific options under rclone's docs at
+            <link xlink:href="https://rclone.org/docs/"/>. When specifying
+            option names, use the "config" name specified in the docs.
+            For example, to set <literal>--b2-hard-delete</literal> for a B2
+            remote, use <literal>hard_delete = true</literal> in the
+            attribute set.
+            Warning: Secrets set in here will be world-readable in the Nix
+            store! Consider using the <literal>rcloneConfigFile</literal>
+            option instead to specify secret values separately. Note that
+            options set here will override those set in the config file.
+          '';
+          example = {
+            type = "b2";
+            account = "xxx";
+            key = "xxx";
+            hard_delete = true;
+          };
+        };
+
+        rcloneConfigFile = mkOption {
+          type = with types; nullOr path;
+          default = null;
+          description = ''
+            Path to the file containing rclone configuration. This file
+            must contain configuration for the remote specified in this backup
+            set and also must be readable by root. Options set in
+            <literal>rcloneConfig</literal> will override those set in this
+            file.
+          '';
+        };
+
         repository = mkOption {
           type = types.str;
           description = ''
@@ -170,11 +223,22 @@ in
             ( resticCmd + " forget --prune " + (concatStringsSep " " backup.pruneOpts) )
             ( resticCmd + " check" )
           ];
+          # Helper functions for rclone remotes
+          rcloneRemoteName = builtins.elemAt (splitString ":" backup.repository) 1;
+          rcloneAttrToOpt = v: "RCLONE_" + toUpper (builtins.replaceStrings [ "-" ] [ "_" ] v);
+          rcloneAttrToConf = v: "RCLONE_CONFIG_" + toUpper (rcloneRemoteName + "_" + v);
+          toRcloneVal = v: if lib.isBool v then lib.boolToString v else v;
         in nameValuePair "restic-backups-${name}" ({
           environment = {
             RESTIC_PASSWORD_FILE = backup.passwordFile;
             RESTIC_REPOSITORY = backup.repository;
-          };
+          } // optionalAttrs (backup.rcloneOptions != null) (mapAttrs' (name: value:
+            nameValuePair (rcloneAttrToOpt name) (toRcloneVal value)
+          ) backup.rcloneOptions) // optionalAttrs (backup.rcloneConfigFile != null) {
+            RCLONE_CONFIG = backup.rcloneConfigFile;
+          } // optionalAttrs (backup.rcloneConfig != null) (mapAttrs' (name: value:
+            nameValuePair (rcloneAttrToConf name) (toRcloneVal value)
+          ) backup.rcloneConfig);
           path = [ pkgs.openssh ];
           restartIfChanged = false;
           serviceConfig = {
diff --git a/nixpkgs/nixos/modules/services/backup/zfs-replication.nix b/nixpkgs/nixos/modules/services/backup/zfs-replication.nix
index 5a64304275d5..6d75774c78f9 100644
--- a/nixpkgs/nixos/modules/services/backup/zfs-replication.nix
+++ b/nixpkgs/nixos/modules/services/backup/zfs-replication.nix
@@ -18,7 +18,7 @@ in {
       };
 
       host = mkOption {
-        description = "Remote host where snapshots should be sent.";
+        description = "Remote host where snapshots should be sent. <literal>lz4</literal> is expected to be installed on this host.";
         example = "example.com";
         type = types.str;
       };
diff --git a/nixpkgs/nixos/modules/services/backup/znapzend.nix b/nixpkgs/nixos/modules/services/backup/znapzend.nix
index 8098617d11f3..0ca71b413cee 100644
--- a/nixpkgs/nixos/modules/services/backup/znapzend.nix
+++ b/nixpkgs/nixos/modules/services/backup/znapzend.nix
@@ -220,7 +220,7 @@ let
       };
 
       destinations = mkOption {
-        type = loaOf (destType config);
+        type = attrsOf (destType config);
         description = "Additional destinations.";
         default = {};
         example = literalExample ''
@@ -328,7 +328,7 @@ in
       };
 
       zetup = mkOption {
-        type = loaOf srcType;
+        type = attrsOf srcType;
         description = "Znapzend configuration.";
         default = {};
         example = literalExample ''
diff --git a/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix b/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix
index 4275563f1a36..933ae481e968 100644
--- a/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix
+++ b/nixpkgs/nixos/modules/services/cluster/kubernetes/pki.nix
@@ -20,7 +20,7 @@ let
         size = 2048;
     };
     CN = top.masterAddress;
-    hosts = cfg.cfsslAPIExtraSANs;
+    hosts = [top.masterAddress] ++ cfg.cfsslAPIExtraSANs;
   });
 
   cfsslAPITokenBaseName = "apitoken.secret";
@@ -228,7 +228,8 @@ in
             };
             private_key = cert.privateKeyOptions;
             request = {
-              inherit (cert) CN hosts;
+              hosts = [cert.CN] ++ cert.hosts;
+              inherit (cert) CN;
               key = {
                 algo = "rsa";
                 size = 2048;
diff --git a/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix b/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix
index 050872e933fb..705390a21d4e 100644
--- a/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix
+++ b/nixpkgs/nixos/modules/services/computing/slurm/slurm.nix
@@ -67,7 +67,7 @@ in
           type = types.bool;
           default = false;
           description = ''
-            Wether to enable the slurm control daemon.
+            Whether to enable the slurm control daemon.
             Note that the standard authentication method is "munge".
             The "munge" service needs to be provided with a password file in order for
             slurm to work properly (see <literal>services.munge.password</literal>).
@@ -135,7 +135,7 @@ in
         type = types.bool;
         default = false;
         description = ''
-          Wether to provide a slurm.conf file.
+          Whether to provide a slurm.conf file.
           Enable this option if you do not run a slurm daemon on this host
           (i.e. <literal>server.enable</literal> and <literal>client.enable</literal> are <literal>false</literal>)
           but you still want to run slurm commands from this host.
diff --git a/nixpkgs/nixos/modules/services/computing/torque/mom.nix b/nixpkgs/nixos/modules/services/computing/torque/mom.nix
index 83772539a7ab..0c5f43cf3e6a 100644
--- a/nixpkgs/nixos/modules/services/computing/torque/mom.nix
+++ b/nixpkgs/nixos/modules/services/computing/torque/mom.nix
@@ -60,4 +60,4 @@ in
     };
 
   };
-}      
+}
diff --git a/nixpkgs/nixos/modules/services/computing/torque/server.nix b/nixpkgs/nixos/modules/services/computing/torque/server.nix
index 655d1500497e..21c5a4f46724 100644
--- a/nixpkgs/nixos/modules/services/computing/torque/server.nix
+++ b/nixpkgs/nixos/modules/services/computing/torque/server.nix
@@ -93,4 +93,4 @@ in
     };
 
   };
-}      
+}
diff --git a/nixpkgs/nixos/modules/services/continuous-integration/buildbot/master.nix b/nixpkgs/nixos/modules/services/continuous-integration/buildbot/master.nix
index 0185f490b0c2..e1950b91382b 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/buildbot/master.nix
+++ b/nixpkgs/nixos/modules/services/continuous-integration/buildbot/master.nix
@@ -25,7 +25,7 @@ let
      change_source = [ ${concatStringsSep "," cfg.changeSource} ],
      schedulers    = [ ${concatStringsSep "," cfg.schedulers} ],
      builders      = [ ${concatStringsSep "," cfg.builders} ],
-     status        = [ ${concatStringsSep "," cfg.status} ],
+     services      = [ ${concatStringsSep "," cfg.reporters} ],
     )
     for step in [ ${concatStringsSep "," cfg.factorySteps} ]:
       factory.addStep(step)
@@ -119,10 +119,10 @@ in {
         default = [ "worker.Worker('example-worker', 'pass')" ];
       };
 
-      status = mkOption {
+      reporters = mkOption {
         default = [];
         type = types.listOf types.str;
-        description = "List of status notification endpoints.";
+        description = "List of reporter objects used to present build status to various users.";
       };
 
       user = mkOption {
@@ -276,6 +276,10 @@ in {
 
   imports = [
     (mkRenamedOptionModule [ "services" "buildbot-master" "bpPort" ] [ "services" "buildbot-master" "pbPort" ])
+    (mkRemovedOptionModule [ "services" "buildbot-master" "status" ] ''
+      Since Buildbot 0.9.0, status targets are deprecated and ignored.
+      Review your configuration and migrate to reporters (available at services.buildbot-master.reporters).
+    '')
   ];
 
   meta.maintainers = with lib.maintainers; [ nand0p mic92 ];
diff --git a/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix b/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix
index 52f24b8cee3c..7b8a35f54bfa 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix
+++ b/nixpkgs/nixos/modules/services/continuous-integration/buildbot/worker.nix
@@ -29,7 +29,7 @@ let
 
     with open('${cfg.workerPassFile}', 'r', encoding='utf-8') as passwd_file:
         passwd = passwd_file.read().strip('\r\n')
-    keepalive = 600
+    keepalive = ${toString cfg.keepalive}
     umask = None
     maxdelay = 300
     numcpus = None
@@ -116,6 +116,15 @@ in {
         description = "Specifies the Buildbot Worker connection string.";
       };
 
+      keepalive = mkOption {
+        default = 600;
+        type = types.int;
+        description = "
+          This is a number that indicates how frequently keepalive messages should be sent
+          from the worker to the buildmaster, expressed in seconds.
+        ";
+      };
+
       package = mkOption {
         type = types.package;
         default = pkgs.python3Packages.buildbot-worker;
diff --git a/nixpkgs/nixos/modules/services/continuous-integration/gitlab-runner.nix b/nixpkgs/nixos/modules/services/continuous-integration/gitlab-runner.nix
index eacfed85ddff..431555309cc9 100644
--- a/nixpkgs/nixos/modules/services/continuous-integration/gitlab-runner.nix
+++ b/nixpkgs/nixos/modules/services/continuous-integration/gitlab-runner.nix
@@ -1,14 +1,16 @@
 { config, lib, pkgs, ... }:
+with builtins;
 with lib;
 let
   cfg = config.services.gitlab-runner;
   hasDocker = config.virtualisation.docker.enable;
-  hashedServices = with builtins; (mapAttrs' (name: service: nameValuePair
-    "${name}_${config.networking.hostName}_${
+  hashedServices = mapAttrs'
+    (name: service: nameValuePair
+      "${name}_${config.networking.hostName}_${
         substring 0 12
         (hashString "md5" (unsafeDiscardStringContext (toJSON service)))}"
       service)
-    cfg.services);
+    cfg.services;
   configPath = "$HOME/.gitlab-runner/config.toml";
   configureScript = pkgs.writeShellScriptBin "gitlab-runner-configure" (
     if (cfg.configFile != null) then ''
@@ -47,6 +49,8 @@ let
           ] ++ service.registrationFlags
             ++ optional (service.buildsDir != null)
             "--builds-dir ${service.buildsDir}"
+            ++ optional (service.cloneUrl != null)
+            "--clone-url ${service.cloneUrl}"
             ++ optional (service.preCloneScript != null)
             "--pre-clone-script ${service.preCloneScript}"
             ++ optional (service.preBuildScript != null)
@@ -76,7 +80,7 @@ let
               ++ map (v: "--docker-allowed-images ${escapeShellArg v}") service.dockerAllowedImages
               ++ map (v: "--docker-allowed-services ${escapeShellArg v}") service.dockerAllowedServices
             )
-          ))} && sleep 1
+          ))} && sleep 1 || exit 1
         fi
       '') hashedServices)}
 
@@ -89,8 +93,17 @@ let
 
       # update global options
       remarshal --if toml --of json ${configPath} \
-        | jq -cM '.check_interval = ${toString cfg.checkInterval} |
-                  .concurrent = ${toString cfg.concurrent}' \
+        | jq -cM ${escapeShellArg (concatStringsSep " | " [
+            ".check_interval = ${toJSON cfg.checkInterval}"
+            ".concurrent = ${toJSON cfg.concurrent}"
+            ".sentry_dsn = ${toJSON cfg.sentryDSN}"
+            ".listen_address = ${toJSON cfg.prometheusListenAddress}"
+            ".session_server.listen_address = ${toJSON cfg.sessionServer.listenAddress}"
+            ".session_server.advertise_address = ${toJSON cfg.sessionServer.advertiseAddress}"
+            ".session_server.session_timeout = ${toJSON cfg.sessionServer.sessionTimeout}"
+            "del(.[] | nulls)"
+            "del(.session_server[] | nulls)"
+          ])} \
         | remarshal --if json --of toml \
         | sponge ${configPath}
 
@@ -141,6 +154,66 @@ in
         0 does not mean unlimited.
       '';
     };
+    sentryDSN = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      example = "https://public:private@host:port/1";
+      description = ''
+        Data Source Name for tracking of all system level errors to Sentry.
+      '';
+    };
+    prometheusListenAddress = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      example = "localhost:8080";
+      description = ''
+        Address (&lt;host&gt;:&lt;port&gt;) on which the Prometheus metrics HTTP server
+        should be listening.
+      '';
+    };
+    sessionServer = mkOption {
+      type = types.submodule {
+        options = {
+          listenAddress = mkOption {
+            type = types.nullOr types.str;
+            default = null;
+            example = "0.0.0.0:8093";
+            description = ''
+              An internal URL to be used for the session server.
+            '';
+          };
+          advertiseAddress = mkOption {
+            type = types.nullOr types.str;
+            default = null;
+            example = "runner-host-name.tld:8093";
+            description = ''
+              The URL that the Runner will expose to GitLab to be used
+              to access the session server.
+              Fallbacks to <option>listenAddress</option> if not defined.
+            '';
+          };
+          sessionTimeout = mkOption {
+            type = types.int;
+            default = 1800;
+            description = ''
+              How long in seconds the session can stay active after
+              the job completes (which will block the job from finishing).
+            '';
+          };
+        };
+      };
+      default = { };
+      example = literalExample ''
+        {
+          listenAddress = "0.0.0.0:8093";
+        }
+      '';
+      description = ''
+        The session server allows the user to interact with jobs
+        that the Runner is responsible for. A good example of this is the
+        <link xlink:href="https://docs.gitlab.com/ee/ci/interactive_web_terminal/index.html">interactive web terminal</link>.
+      '';
+    };
     gracefulTermination = mkOption {
       type = types.bool;
       default = false;
@@ -306,6 +379,14 @@ in
               in context of selected executor (Locally, Docker, SSH).
             '';
           };
+          cloneUrl = mkOption {
+            type = types.nullOr types.str;
+            default = null;
+            example = "http://gitlab.example.local";
+            description = ''
+              Overwrite the URL for the GitLab instance. Used if the Runner can’t connect to GitLab on the URL GitLab exposes itself.
+            '';
+          };
           dockerImage = mkOption {
             type = types.nullOr types.str;
             default = null;
diff --git a/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix b/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
new file mode 100644
index 000000000000..4aed493c0fb0
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/common.nix
@@ -0,0 +1,213 @@
+/*
+
+This file is for options that NixOS and nix-darwin have in common.
+
+Platform-specific code is in the respective default.nix files.
+
+ */
+
+{ config, lib, options, pkgs, ... }:
+
+let
+  inherit (lib) mkOption mkIf types filterAttrs literalExample mkRenamedOptionModule;
+
+  cfg =
+    config.services.hercules-ci-agent;
+
+  format = pkgs.formats.toml {};
+
+  settingsModule = { config, ... }: {
+    freeformType = format.type;
+    options = {
+      baseDirectory = mkOption {
+        type = types.path;
+        default = "/var/lib/hercules-ci-agent";
+        description = ''
+          State directory (secrets, work directory, etc) for agent
+        '';
+      };
+      concurrentTasks = mkOption {
+        description = ''
+          Number of tasks to perform simultaneously, such as evaluations, derivations.
+
+          You must have a total capacity across agents of at least 2 concurrent tasks on <literal>x86_64-linux</literal>
+          to allow for import from derivation.
+        '';
+        type = types.int;
+        default = 4;
+      };
+      workDirectory = mkOption {
+        description = ''
+          The directory in which temporary subdirectories are created for task state. This includes sources for Nix evaluation.
+        '';
+        type = types.path;
+        default = config.baseDirectory + "/work";
+        defaultText = literalExample ''baseDirectory + "/work"'';
+      };
+      staticSecretsDirectory = mkOption {
+        description = ''
+          This is the default directory to look for statically configured secrets like <literal>cluster-join-token.key</literal>.
+        '';
+        type = types.path;
+        default = config.baseDirectory + "/secrets";
+        defaultText = literalExample ''baseDirectory + "/secrets"'';
+      };
+      clusterJoinTokenPath = mkOption {
+        description = ''
+          Location of the cluster-join-token.key file.
+        '';
+        type = types.path;
+        default = config.staticSecretsDirectory + "/cluster-join-token.key";
+        defaultText = literalExample ''staticSecretsDirectory + "/cluster-join-token.key"'';
+        # internal: It's a bit too detailed to show by default in the docs,
+        # but useful to define explicitly to allow reuse by other modules.
+        internal = true;
+      };
+      binaryCachesPath = mkOption {
+        description = ''
+          Location of the binary-caches.json file.
+        '';
+        type = types.path;
+        default = config.staticSecretsDirectory + "/binary-caches.json";
+        defaultText = literalExample ''staticSecretsDirectory + "/binary-caches.json"'';
+        # internal: It's a bit too detailed to show by default in the docs,
+        # but useful to define explicitly to allow reuse by other modules.
+        internal = true;
+      };
+    };
+  };
+
+  checkNix =
+    if !cfg.checkNix
+    then ""
+    else if lib.versionAtLeast config.nix.package.version "2.4.0"
+    then ""
+    else pkgs.stdenv.mkDerivation {
+      name = "hercules-ci-check-system-nix-src";
+      inherit (config.nix.package) src patches;
+      configurePhase = ":";
+      buildPhase = ''
+        echo "Checking in-memory pathInfoCache expiry"
+        if ! grep 'struct PathInfoCacheValue' src/libstore/store-api.hh >/dev/null; then
+          cat 1>&2 <<EOF
+
+          You are deploying Hercules CI Agent on a system with an incompatible
+          nix-daemon. Please
+           - either upgrade Nix to version 2.4.0 (when released),
+           - or set option services.hercules-ci-agent.patchNix = true;
+           - or set option nix.package to a build of Nix 2.3 with this patch applied:
+               https://github.com/NixOS/nix/pull/3405
+
+          The patch is required for Nix-daemon clients that expect a change in binary
+          cache contents while running, like the agent's evaluator. Without it, import
+          from derivation will fail if your cluster has more than one machine.
+          We are conservative with changes to the overall system, which is why we
+          keep changes to a minimum and why we ask for confirmation in the form of
+          services.hercules-ci-agent.patchNix = true before applying.
+
+        EOF
+          exit 1
+        fi
+      '';
+      installPhase = "touch $out";
+    };
+
+  patchedNix = lib.mkIf (!lib.versionAtLeast pkgs.nix.version "2.4.0") (
+    if lib.versionAtLeast pkgs.nix.version "2.4pre"
+    then lib.warn "Hercules CI Agent module will not patch 2.4 pre-release. Make sure it includes (equivalently) PR #3043, commit d048577909 or is no older than 2020-03-13." pkgs.nix
+    else pkgs.nix.overrideAttrs (
+      o: {
+        patches = (o.patches or []) ++ [ backportNix3398 ];
+      }
+    )
+  );
+
+  backportNix3398 = pkgs.fetchurl {
+    url = "https://raw.githubusercontent.com/hercules-ci/hercules-ci-agent/hercules-ci-agent-0.7.3/for-upstream/issue-3398-path-info-cache-ttls-backport-2.3.patch";
+    sha256 = "0jfckqjir9il2il7904yc1qyadw366y7xqzg81sp9sl3f1pw70ib";
+  };
+in
+{
+  imports = [
+    (mkRenamedOptionModule ["services" "hercules-ci-agent" "extraOptions"] ["services" "hercules-ci-agent" "settings"])
+    (mkRenamedOptionModule ["services" "hercules-ci-agent" "baseDirectory"] ["services" "hercules-ci-agent" "settings" "baseDirectory"])
+    (mkRenamedOptionModule ["services" "hercules-ci-agent" "concurrentTasks"] ["services" "hercules-ci-agent" "settings" "concurrentTasks"])
+  ];
+
+  options.services.hercules-ci-agent = {
+    enable = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Enable to run Hercules CI Agent as a system service.
+
+        <link xlink:href="https://hercules-ci.com">Hercules CI</link> is a
+        continuous integation service that is centered around Nix.
+
+        Support is available at <link xlink:href="mailto:help@hercules-ci.com">help@hercules-ci.com</link>.
+      '';
+    };
+    patchNix = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Fix Nix 2.3 cache path metadata caching behavior. Has the effect of <literal>nix.package = patch pkgs.nix;</literal>
+
+        This option will be removed when Hercules CI Agent moves to Nix 2.4 (upcoming Nix release).
+      '';
+    };
+    checkNix = mkOption {
+      type = types.bool;
+      default = true;
+      description = ''
+        Whether to make sure that the system's Nix (nix-daemon) is compatible.
+
+        If you set this to false, please keep up with the change log.
+      '';
+    };
+    package = mkOption {
+      description = ''
+        Package containing the bin/hercules-ci-agent executable.
+      '';
+      type = types.package;
+      default = pkgs.hercules-ci-agent;
+      defaultText = literalExample "pkgs.hercules-ci-agent";
+    };
+    settings = mkOption {
+      description = ''
+        These settings are written to the <literal>agent.toml</literal> file.
+
+        Not all settings are listed as options, can be set nonetheless.
+
+        For the exhaustive list of settings, see <link xlink:href="https://docs.hercules-ci.com/hercules-ci/reference/agent-config/"/>.
+      '';
+      type = types.submoduleWith { modules = [ settingsModule ]; };
+    };
+
+    /*
+      Internal and/or computed values.
+
+      These are written as options instead of let binding to allow sharing with
+      default.nix on both NixOS and nix-darwin.
+     */
+    tomlFile = mkOption {
+      type = types.path;
+      internal = true;
+      defaultText = "generated hercules-ci-agent.toml";
+      description = ''
+        The fully assembled config file.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    nix.extraOptions = lib.addContextFrom checkNix ''
+      # A store path that was missing at first may well have finished building,
+      # even shortly after the previous lookup. This *also* applies to the daemon.
+      narinfo-cache-negative-ttl = 0
+    '';
+    nix.package = mkIf cfg.patchNix patchedNix;
+    services.hercules-ci-agent.tomlFile =
+      format.generate "hercules-ci-agent.toml" cfg.settings;
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/default.nix b/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/default.nix
new file mode 100644
index 000000000000..d2e7e8e18f94
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/continuous-integration/hercules-ci-agent/default.nix
@@ -0,0 +1,86 @@
+/*
+
+This file is for NixOS-specific options and configs.
+
+Code that is shared with nix-darwin goes in common.nix.
+
+ */
+
+{ pkgs, config, lib, ... }:
+
+let
+
+  inherit (lib) mkIf mkDefault;
+
+  cfg = config.services.hercules-ci-agent;
+
+  command = "${cfg.package}/bin/hercules-ci-agent --config ${cfg.tomlFile}";
+  testCommand = "${command} --test-configuration";
+
+in
+{
+  imports = [
+    ./common.nix
+    (lib.mkRenamedOptionModule ["services" "hercules-ci-agent" "user"] ["systemd" "services" "hercules-ci-agent" "serviceConfig" "User"])
+  ];
+
+  config = mkIf cfg.enable {
+
+    systemd.services.hercules-ci-agent = {
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network-online.target" ];
+      wants = [ "network-online.target" ];
+      path = [ config.nix.package ];
+      serviceConfig = {
+        User = "hercules-ci-agent";
+        ExecStart = command;
+        ExecStartPre = testCommand;
+        Restart = "on-failure";
+        RestartSec = 120;
+        StartLimitBurst = 30 * 1000000; # practically infinite
+      };
+    };
+
+    # Changes in the secrets do not affect the unit in any way that would cause
+    # a restart, which is currently necessary to reload the secrets.
+    systemd.paths.hercules-ci-agent-restart-files = {
+      wantedBy = [ "hercules-ci-agent.service" ];
+      pathConfig = {
+        Unit = "hercules-ci-agent-restarter.service";
+        PathChanged = [ cfg.settings.clusterJoinTokenPath cfg.settings.binaryCachesPath ];
+      };
+    };
+    systemd.services.hercules-ci-agent-restarter = {
+      serviceConfig.Type = "oneshot";
+      script = ''
+        # Wait a bit, with the effect of bundling up file changes into a single
+        # run of this script and hopefully a single restart.
+        sleep 10
+        if systemctl is-active --quiet hercules-ci-agent.service; then
+          if ${testCommand}; then
+            systemctl restart hercules-ci-agent.service
+          else
+            echo 1>&2 "WARNING: Not restarting agent because config is not valid at this time."
+          fi
+        else
+          echo 1>&2 "Not restarting hercules-ci-agent despite config file update, because it is not already active."
+        fi
+      '';
+    };
+
+    # Trusted user allows simplified configuration and better performance
+    # when operating in a cluster.
+    nix.trustedUsers = [ config.systemd.services.hercules-ci-agent.serviceConfig.User ];
+    services.hercules-ci-agent.settings.nixUserIsTrusted = true;
+
+    users.users.hercules-ci-agent = {
+      home = cfg.settings.baseDirectory;
+      createHome = true;
+      group = "hercules-ci-agent";
+      description = "Hercules CI Agent system user";
+      isSystemUser = true;
+    };
+
+    users.groups.hercules-ci-agent = {};
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/databases/couchdb.nix b/nixpkgs/nixos/modules/services/databases/couchdb.nix
index 53224db1d896..f385331e8782 100644
--- a/nixpkgs/nixos/modules/services/databases/couchdb.nix
+++ b/nixpkgs/nixos/modules/services/databases/couchdb.nix
@@ -11,7 +11,13 @@ let
       database_dir = ${cfg.databaseDir}
       uri_file = ${cfg.uriFile}
       view_index_dir = ${cfg.viewIndexDir}
-    '' + (if useVersion2 then
+    '' + (if cfg.adminPass != null then
+    ''
+      [admins]
+      ${cfg.adminUser} = ${cfg.adminPass}
+    '' else
+    ''
+    '') + (if useVersion2 then
     ''
       [chttpd]
     '' else
@@ -54,6 +60,23 @@ in {
         '';
       };
 
+      adminUser = mkOption {
+        type = types.str;
+        default = "admin";
+        description = ''
+          Couchdb (i.e. fauxton) account with permission for all dbs and
+          tasks.
+        '';
+      };
+
+      adminPass = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description = ''
+          Couchdb (i.e. fauxton) account with permission for all dbs and
+          tasks.
+        '';
+      };
 
       user = mkOption {
         type = types.str;
diff --git a/nixpkgs/nixos/modules/services/databases/mysql.nix b/nixpkgs/nixos/modules/services/databases/mysql.nix
index 2e8c5b7640b2..7d0a3f9afc48 100644
--- a/nixpkgs/nixos/modules/services/databases/mysql.nix
+++ b/nixpkgs/nixos/modules/services/databases/mysql.nix
@@ -6,12 +6,10 @@ let
 
   cfg = config.services.mysql;
 
-  mysql = cfg.package;
-
-  isMariaDB = lib.getName mysql == lib.getName pkgs.mariadb;
+  isMariaDB = lib.getName cfg.package == lib.getName pkgs.mariadb;
 
   mysqldOptions =
-    "--user=${cfg.user} --datadir=${cfg.dataDir} --basedir=${mysql}";
+    "--user=${cfg.user} --datadir=${cfg.dataDir} --basedir=${cfg.package}";
 
   settingsFile = pkgs.writeText "my.cnf" (
     generators.toINI { listsAsDuplicateKeys = true; } cfg.settings +
@@ -22,7 +20,7 @@ in
 
 {
   imports = [
-    (mkRemovedOptionModule [ "services" "mysql" "pidDir" ] "Don't wait for pidfiles, describe dependencies through systemd")
+    (mkRemovedOptionModule [ "services" "mysql" "pidDir" ] "Don't wait for pidfiles, describe dependencies through systemd.")
     (mkRemovedOptionModule [ "services" "mysql" "rootPassword" ] "Use socket authentication or set the password outside of the nix store.")
   ];
 
@@ -46,25 +44,31 @@ in
         type = types.nullOr types.str;
         default = null;
         example = literalExample "0.0.0.0";
-        description = "Address to bind to. The default is to bind to all addresses";
+        description = "Address to bind to. The default is to bind to all addresses.";
       };
 
       port = mkOption {
         type = types.int;
         default = 3306;
-        description = "Port of MySQL";
+        description = "Port of MySQL.";
       };
 
       user = mkOption {
         type = types.str;
         default = "mysql";
-        description = "User account under which MySQL runs";
+        description = "User account under which MySQL runs.";
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = "mysql";
+        description = "Group under which MySQL runs.";
       };
 
       dataDir = mkOption {
         type = types.path;
         example = "/var/lib/mysql";
-        description = "Location where MySQL stores its table files";
+        description = "Location where MySQL stores its table files.";
       };
 
       configFile = mkOption {
@@ -171,7 +175,7 @@ in
       initialScript = mkOption {
         type = types.nullOr types.path;
         default = null;
-        description = "A file containing SQL statements to be executed on the first startup. Can be used for granting certain permissions on the database";
+        description = "A file containing SQL statements to be executed on the first startup. Can be used for granting certain permissions on the database.";
       };
 
       ensureDatabases = mkOption {
@@ -259,33 +263,33 @@ in
         serverId = mkOption {
           type = types.int;
           default = 1;
-          description = "Id of the MySQL server instance. This number must be unique for each instance";
+          description = "Id of the MySQL server instance. This number must be unique for each instance.";
         };
 
         masterHost = mkOption {
           type = types.str;
-          description = "Hostname of the MySQL master server";
+          description = "Hostname of the MySQL master server.";
         };
 
         slaveHost = mkOption {
           type = types.str;
-          description = "Hostname of the MySQL slave server";
+          description = "Hostname of the MySQL slave server.";
         };
 
         masterUser = mkOption {
           type = types.str;
-          description = "Username of the MySQL replication user";
+          description = "Username of the MySQL replication user.";
         };
 
         masterPassword = mkOption {
           type = types.str;
-          description = "Password of the MySQL replication user";
+          description = "Password of the MySQL replication user.";
         };
 
         masterPort = mkOption {
           type = types.int;
           default = 3306;
-          description = "Port number on which the MySQL master server runs";
+          description = "Port number on which the MySQL master server runs.";
         };
       };
     };
@@ -317,29 +321,33 @@ in
         binlog-ignore-db = [ "information_schema" "performance_schema" "mysql" ];
       })
       (mkIf (!isMariaDB) {
-        plugin-load-add = optional (cfg.ensureUsers != []) "auth_socket.so";
+        plugin-load-add = "auth_socket.so";
       })
     ];
 
-    users.users.mysql = {
-      description = "MySQL server user";
-      group = "mysql";
-      uid = config.ids.uids.mysql;
+    users.users = optionalAttrs (cfg.user == "mysql") {
+      mysql = {
+        description = "MySQL server user";
+        group = cfg.group;
+        uid = config.ids.uids.mysql;
+      };
     };
 
-    users.groups.mysql.gid = config.ids.gids.mysql;
+    users.groups = optionalAttrs (cfg.group == "mysql") {
+      mysql.gid = config.ids.gids.mysql;
+    };
 
-    environment.systemPackages = [mysql];
+    environment.systemPackages = [ cfg.package ];
 
     environment.etc."my.cnf".source = cfg.configFile;
 
     systemd.tmpfiles.rules = [
-      "d '${cfg.dataDir}' 0700 ${cfg.user} mysql - -"
-      "z '${cfg.dataDir}' 0700 ${cfg.user} mysql - -"
+      "d '${cfg.dataDir}' 0700 '${cfg.user}' '${cfg.group}' - -"
+      "z '${cfg.dataDir}' 0700 '${cfg.user}' '${cfg.group}' - -"
     ];
 
     systemd.services.mysql = let
-      hasNotify = (cfg.package == pkgs.mariadb);
+      hasNotify = isMariaDB;
     in {
         description = "MySQL Server";
 
@@ -357,125 +365,127 @@ in
 
         preStart = if isMariaDB then ''
           if ! test -e ${cfg.dataDir}/mysql; then
-            ${mysql}/bin/mysql_install_db --defaults-file=/etc/my.cnf ${mysqldOptions}
+            ${cfg.package}/bin/mysql_install_db --defaults-file=/etc/my.cnf ${mysqldOptions}
             touch ${cfg.dataDir}/mysql_init
           fi
         '' else ''
           if ! test -e ${cfg.dataDir}/mysql; then
-            ${mysql}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} --initialize-insecure
+            ${cfg.package}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} --initialize-insecure
             touch ${cfg.dataDir}/mysql_init
           fi
         '';
 
-        serviceConfig = {
-          Type = if hasNotify then "notify" else "simple";
-          Restart = "on-abort";
-          RestartSec = "5s";
-          # The last two environment variables are used for starting Galera clusters
-          ExecStart = "${mysql}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION";
-          ExecStartPost =
-            let
-              setupScript = pkgs.writeScript "mysql-setup" ''
-                #!${pkgs.runtimeShell} -e
-
-                ${optionalString (!hasNotify) ''
-                  # Wait until the MySQL server is available for use
-                  count=0
-                  while [ ! -e /run/mysqld/mysqld.sock ]
-                  do
-                      if [ $count -eq 30 ]
-                      then
-                          echo "Tried 30 times, giving up..."
-                          exit 1
-                      fi
-
-                      echo "MySQL daemon not yet started. Waiting for 1 second..."
-                      count=$((count++))
-                      sleep 1
-                  done
-                ''}
-
-                if [ -f ${cfg.dataDir}/mysql_init ]
+        postStart = let
+          # The super user account to use on *first* run of MySQL server
+          superUser = if isMariaDB then cfg.user else "root";
+        in ''
+          ${optionalString (!hasNotify) ''
+            # Wait until the MySQL server is available for use
+            count=0
+            while [ ! -e /run/mysqld/mysqld.sock ]
+            do
+                if [ $count -eq 30 ]
                 then
-                    ${concatMapStrings (database: ''
-                      # Create initial databases
-                      if ! test -e "${cfg.dataDir}/${database.name}"; then
-                          echo "Creating initial database: ${database.name}"
-                          ( echo 'create database `${database.name}`;'
-
-                            ${optionalString (database.schema != null) ''
-                            echo 'use `${database.name}`;'
-
-                            # TODO: this silently falls through if database.schema does not exist,
-                            # we should catch this somehow and exit, but can't do it here because we're in a subshell.
-                            if [ -f "${database.schema}" ]
-                            then
-                                cat ${database.schema}
-                            elif [ -d "${database.schema}" ]
-                            then
-                                cat ${database.schema}/mysql-databases/*.sql
-                            fi
-                            ''}
-                          ) | ${mysql}/bin/mysql -u root -N
-                      fi
-                    '') cfg.initialDatabases}
-
-                    ${optionalString (cfg.replication.role == "master")
-                      ''
-                        # Set up the replication master
+                    echo "Tried 30 times, giving up..."
+                    exit 1
+                fi
 
-                        ( echo "use mysql;"
-                          echo "CREATE USER '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}' IDENTIFIED WITH mysql_native_password;"
-                          echo "SET PASSWORD FOR '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}' = PASSWORD('${cfg.replication.masterPassword}');"
-                          echo "GRANT REPLICATION SLAVE ON *.* TO '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}';"
-                        ) | ${mysql}/bin/mysql -u root -N
+                echo "MySQL daemon not yet started. Waiting for 1 second..."
+                count=$((count++))
+                sleep 1
+            done
+          ''}
+
+          if [ -f ${cfg.dataDir}/mysql_init ]
+          then
+              # While MariaDB comes with a 'mysql' super user account since 10.4.x, MySQL does not
+              # Since we don't want to run this service as 'root' we need to ensure the account exists on first run
+              ( echo "CREATE USER IF NOT EXISTS '${cfg.user}'@'localhost' IDENTIFIED WITH ${if isMariaDB then "unix_socket" else "auth_socket"};"
+                echo "GRANT ALL PRIVILEGES ON *.* TO '${cfg.user}'@'localhost' WITH GRANT OPTION;"
+              ) | ${cfg.package}/bin/mysql -u ${superUser} -N
+
+              ${concatMapStrings (database: ''
+                # Create initial databases
+                if ! test -e "${cfg.dataDir}/${database.name}"; then
+                    echo "Creating initial database: ${database.name}"
+                    ( echo 'create database `${database.name}`;'
+
+                      ${optionalString (database.schema != null) ''
+                      echo 'use `${database.name}`;'
+
+                      # TODO: this silently falls through if database.schema does not exist,
+                      # we should catch this somehow and exit, but can't do it here because we're in a subshell.
+                      if [ -f "${database.schema}" ]
+                      then
+                          cat ${database.schema}
+                      elif [ -d "${database.schema}" ]
+                      then
+                          cat ${database.schema}/mysql-databases/*.sql
+                      fi
                       ''}
+                    ) | ${cfg.package}/bin/mysql -u ${superUser} -N
+                fi
+              '') cfg.initialDatabases}
 
-                    ${optionalString (cfg.replication.role == "slave")
-                      ''
-                        # Set up the replication slave
+              ${optionalString (cfg.replication.role == "master")
+                ''
+                  # Set up the replication master
 
-                        ( echo "stop slave;"
-                          echo "change master to master_host='${cfg.replication.masterHost}', master_user='${cfg.replication.masterUser}', master_password='${cfg.replication.masterPassword}';"
-                          echo "start slave;"
-                        ) | ${mysql}/bin/mysql -u root -N
-                      ''}
+                  ( echo "use mysql;"
+                    echo "CREATE USER '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}' IDENTIFIED WITH mysql_native_password;"
+                    echo "SET PASSWORD FOR '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}' = PASSWORD('${cfg.replication.masterPassword}');"
+                    echo "GRANT REPLICATION SLAVE ON *.* TO '${cfg.replication.masterUser}'@'${cfg.replication.slaveHost}';"
+                  ) | ${cfg.package}/bin/mysql -u ${superUser} -N
+                ''}
 
-                    ${optionalString (cfg.initialScript != null)
-                      ''
-                        # Execute initial script
-                        # using toString to avoid copying the file to nix store if given as path instead of string,
-                        # as it might contain credentials
-                        cat ${toString cfg.initialScript} | ${mysql}/bin/mysql -u root -N
-                      ''}
+              ${optionalString (cfg.replication.role == "slave")
+                ''
+                  # Set up the replication slave
 
-                    rm ${cfg.dataDir}/mysql_init
-                fi
+                  ( echo "stop slave;"
+                    echo "change master to master_host='${cfg.replication.masterHost}', master_user='${cfg.replication.masterUser}', master_password='${cfg.replication.masterPassword}';"
+                    echo "start slave;"
+                  ) | ${cfg.package}/bin/mysql -u ${superUser} -N
+                ''}
 
-                ${optionalString (cfg.ensureDatabases != []) ''
-                  (
-                  ${concatMapStrings (database: ''
-                    echo "CREATE DATABASE IF NOT EXISTS \`${database}\`;"
-                  '') cfg.ensureDatabases}
-                  ) | ${mysql}/bin/mysql -u root -N
+              ${optionalString (cfg.initialScript != null)
+                ''
+                  # Execute initial script
+                  # using toString to avoid copying the file to nix store if given as path instead of string,
+                  # as it might contain credentials
+                  cat ${toString cfg.initialScript} | ${cfg.package}/bin/mysql -u ${superUser} -N
                 ''}
 
-                ${concatMapStrings (user:
-                  ''
-                    ( echo "CREATE USER IF NOT EXISTS '${user.name}'@'localhost' IDENTIFIED WITH ${if isMariaDB then "unix_socket" else "auth_socket"};"
-                      ${concatStringsSep "\n" (mapAttrsToList (database: permission: ''
-                        echo "GRANT ${permission} ON ${database} TO '${user.name}'@'localhost';"
-                      '') user.ensurePermissions)}
-                    ) | ${mysql}/bin/mysql -u root -N
-                  '') cfg.ensureUsers}
-              '';
-            in
-              # ensureDatbases & ensureUsers depends on this script being run as root
-              # when the user has secured their mysql install
-              "+${setupScript}";
+              rm ${cfg.dataDir}/mysql_init
+          fi
+
+          ${optionalString (cfg.ensureDatabases != []) ''
+            (
+            ${concatMapStrings (database: ''
+              echo "CREATE DATABASE IF NOT EXISTS \`${database}\`;"
+            '') cfg.ensureDatabases}
+            ) | ${cfg.package}/bin/mysql -N
+          ''}
+
+          ${concatMapStrings (user:
+            ''
+              ( echo "CREATE USER IF NOT EXISTS '${user.name}'@'localhost' IDENTIFIED WITH ${if isMariaDB then "unix_socket" else "auth_socket"};"
+                ${concatStringsSep "\n" (mapAttrsToList (database: permission: ''
+                  echo "GRANT ${permission} ON ${database} TO '${user.name}'@'localhost';"
+                '') user.ensurePermissions)}
+              ) | ${cfg.package}/bin/mysql -N
+            '') cfg.ensureUsers}
+        '';
+
+        serviceConfig = {
+          Type = if hasNotify then "notify" else "simple";
+          Restart = "on-abort";
+          RestartSec = "5s";
+          # The last two environment variables are used for starting Galera clusters
+          ExecStart = "${cfg.package}/bin/mysqld --defaults-file=/etc/my.cnf ${mysqldOptions} $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION";
           # User and group
           User = cfg.user;
-          Group = "mysql";
+          Group = cfg.group;
           # Runtime directory and mode
           RuntimeDirectory = "mysqld";
           RuntimeDirectoryMode = "0755";
diff --git a/nixpkgs/nixos/modules/services/databases/openldap.nix b/nixpkgs/nixos/modules/services/databases/openldap.nix
index 9b4d9a98b745..7472538b887e 100644
--- a/nixpkgs/nixos/modules/services/databases/openldap.nix
+++ b/nixpkgs/nixos/modules/services/databases/openldap.nix
@@ -5,14 +5,14 @@ with lib;
 let
 
   cfg = config.services.openldap;
-  openldap = pkgs.openldap;
+  openldap = cfg.package;
 
   dataFile = pkgs.writeText "ldap-contents.ldif" cfg.declarativeContents;
   configFile = pkgs.writeText "slapd.conf" ((optionalString cfg.defaultSchemas ''
-    include ${pkgs.openldap.out}/etc/schema/core.schema
-    include ${pkgs.openldap.out}/etc/schema/cosine.schema
-    include ${pkgs.openldap.out}/etc/schema/inetorgperson.schema
-    include ${pkgs.openldap.out}/etc/schema/nis.schema
+    include ${openldap.out}/etc/schema/core.schema
+    include ${openldap.out}/etc/schema/cosine.schema
+    include ${openldap.out}/etc/schema/inetorgperson.schema
+    include ${openldap.out}/etc/schema/nis.schema
   '') + ''
     ${cfg.extraConfig}
     database ${cfg.database}
@@ -46,6 +46,18 @@ in
         ";
       };
 
+      package = mkOption {
+        type = types.package;
+        default = pkgs.openldap;
+        description = ''
+          OpenLDAP package to use.
+
+          This can be used to, for example, set an OpenLDAP package
+          with custom overrides to enable modules or other
+          functionality.
+        '';
+      };
+
       user = mkOption {
         type = types.str;
         default = "openldap";
@@ -152,10 +164,10 @@ in
         ";
         example = literalExample ''
             '''
-            include ${pkgs.openldap.out}/etc/schema/core.schema
-            include ${pkgs.openldap.out}/etc/schema/cosine.schema
-            include ${pkgs.openldap.out}/etc/schema/inetorgperson.schema
-            include ${pkgs.openldap.out}/etc/schema/nis.schema
+            include ${openldap.out}/etc/schema/core.schema
+            include ${openldap.out}/etc/schema/cosine.schema
+            include ${openldap.out}/etc/schema/inetorgperson.schema
+            include ${openldap.out}/etc/schema/nis.schema
 
             database bdb
             suffix dc=example,dc=org
diff --git a/nixpkgs/nixos/modules/services/databases/postgresql.nix b/nixpkgs/nixos/modules/services/databases/postgresql.nix
index 579b6a4d9c67..5056d50153f6 100644
--- a/nixpkgs/nixos/modules/services/databases/postgresql.nix
+++ b/nixpkgs/nixos/modules/services/databases/postgresql.nix
@@ -11,23 +11,23 @@ let
       then cfg.package
       else cfg.package.withPackages (_: cfg.extraPlugins);
 
+  toStr = value:
+    if true == value then "yes"
+    else if false == value then "no"
+    else if isString value then "'${lib.replaceStrings ["'"] ["''"] value}'"
+    else toString value;
+
   # The main PostgreSQL configuration file.
-  configFile = pkgs.writeText "postgresql.conf"
-    ''
-      hba_file = '${pkgs.writeText "pg_hba.conf" cfg.authentication}'
-      ident_file = '${pkgs.writeText "pg_ident.conf" cfg.identMap}'
-      log_destination = 'stderr'
-      log_line_prefix = '${cfg.logLinePrefix}'
-      listen_addresses = '${if cfg.enableTCPIP then "*" else "localhost"}'
-      port = ${toString cfg.port}
-      ${cfg.extraConfig}
-    ''; 
+  configFile = pkgs.writeText "postgresql.conf" (concatStringsSep "\n" (mapAttrsToList (n: v: "${n} = ${toStr v}") cfg.settings));
 
   groupAccessAvailable = versionAtLeast postgresql.version "11.0";
 
 in
 
 {
+  imports = [
+    (mkRemovedOptionModule [ "services" "postgresql" "extraConfig" ] "Use services.postgresql.settings instead.")
+  ];
 
   ###### interface
 
@@ -55,9 +55,13 @@ in
 
       dataDir = mkOption {
         type = types.path;
+        defaultText = "/var/lib/postgresql/\${config.services.postgresql.package.psqlSchema}";
         example = "/var/lib/postgresql/11";
         description = ''
-          Data directory for PostgreSQL.
+          The data directory for PostgreSQL. If left as the default value
+          this directory will automatically be created before the PostgreSQL server starts, otherwise
+          the sysadmin is responsible for ensuring the directory exists with appropriate ownership
+          and permissions.
         '';
       };
 
@@ -208,10 +212,28 @@ in
         '';
       };
 
-      extraConfig = mkOption {
-        type = types.lines;
-        default = "";
-        description = "Additional text to be appended to <filename>postgresql.conf</filename>.";
+      settings = mkOption {
+        type = with types; attrsOf (oneOf [ bool float int str ]);
+        default = {};
+        description = ''
+          PostgreSQL configuration. Refer to
+          <link xlink:href="https://www.postgresql.org/docs/11/config-setting.html#CONFIG-SETTING-CONFIGURATION-FILE"/>
+          for an overview of <literal>postgresql.conf</literal>.
+
+          <note><para>
+            String values will automatically be enclosed in single quotes. Single quotes will be
+            escaped with two single quotes as described by the upstream documentation linked above.
+          </para></note>
+        '';
+        example = literalExample ''
+          {
+            log_connections = true;
+            log_statement = "all";
+            logging_collector = true
+            log_disconnections = true
+            log_destination = lib.mkForce "syslog";
+          }
+        '';
       };
 
       recoveryConfig = mkOption {
@@ -221,14 +243,15 @@ in
           Contents of the <filename>recovery.conf</filename> file.
         '';
       };
+
       superUser = mkOption {
         type = types.str;
-        default= if versionAtLeast config.system.stateVersion "17.09" then "postgres" else "root";
+        default = "postgres";
         internal = true;
+        readOnly = true;
         description = ''
-          NixOS traditionally used 'root' as superuser, most other distros use 'postgres'.
-          From 17.09 we also try to follow this standard. Internal since changing this value
-          would lead to breakage while setting up databases.
+          PostgreSQL superuser account to use for various operations. Internal since changing
+          this value would lead to breakage while setting up databases.
         '';
         };
     };
@@ -240,6 +263,16 @@ in
 
   config = mkIf cfg.enable {
 
+    services.postgresql.settings =
+      {
+        hba_file = "${pkgs.writeText "pg_hba.conf" cfg.authentication}";
+        ident_file = "${pkgs.writeText "pg_ident.conf" cfg.identMap}";
+        log_destination = "stderr";
+        log_line_prefix = cfg.logLinePrefix;
+        listen_addresses = if cfg.enableTCPIP then "*" else "localhost";
+        port = cfg.port;
+      };
+
     services.postgresql.package =
       # Note: when changing the default, make it conditional on
       # ‘system.stateVersion’ to maintain compatibility with existing
@@ -249,10 +282,7 @@ in
             else if versionAtLeast config.system.stateVersion "16.03" then pkgs.postgresql_9_5
             else throw "postgresql_9_4 was removed, please upgrade your postgresql version.");
 
-    services.postgresql.dataDir =
-      mkDefault (if versionAtLeast config.system.stateVersion "17.09"
-                  then "/var/lib/postgresql/${cfg.package.psqlSchema}"
-                  else "/var/db/postgresql");
+    services.postgresql.dataDir = mkDefault "/var/lib/postgresql/${cfg.package.psqlSchema}";
 
     services.postgresql.authentication = mkAfter
       ''
@@ -291,59 +321,28 @@ in
 
         preStart =
           ''
-            # Create data directory.
             if ! test -e ${cfg.dataDir}/PG_VERSION; then
-              mkdir -m 0700 -p ${cfg.dataDir}
+              # Cleanup the data directory.
               rm -f ${cfg.dataDir}/*.conf
-              chown -R postgres:postgres ${cfg.dataDir}
-            fi
-          ''; # */
 
-        script =
-          ''
-            # Initialise the database.
-            if ! test -e ${cfg.dataDir}/PG_VERSION; then
+              # Initialise the database.
               initdb -U ${cfg.superUser} ${concatStringsSep " " cfg.initdbArgs}
+
               # See postStart!
               touch "${cfg.dataDir}/.first_startup"
             fi
+
             ln -sfn "${configFile}" "${cfg.dataDir}/postgresql.conf"
             ${optionalString (cfg.recoveryConfig != null) ''
               ln -sfn "${pkgs.writeText "recovery.conf" cfg.recoveryConfig}" \
                 "${cfg.dataDir}/recovery.conf"
             ''}
-            ${optionalString (!groupAccessAvailable) ''
-              # postgresql pre 11.0 doesn't start if state directory mode is group accessible
-              chmod 0700 "${cfg.dataDir}"
-            ''}
-
-            exec postgres
           '';
 
-        serviceConfig =
-          { ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
-            User = "postgres";
-            Group = "postgres";
-            PermissionsStartOnly = true;
-            RuntimeDirectory = "postgresql";
-            Type = if versionAtLeast cfg.package.version "9.6"
-                   then "notify"
-                   else "simple";
-
-            # Shut down Postgres using SIGINT ("Fast Shutdown mode").  See
-            # http://www.postgresql.org/docs/current/static/server-shutdown.html
-            KillSignal = "SIGINT";
-            KillMode = "mixed";
-
-            # Give Postgres a decent amount of time to clean up after
-            # receiving systemd's SIGINT.
-            TimeoutSec = 120;
-          };
-
         # Wait for PostgreSQL to be ready to accept connections.
         postStart =
           ''
-            PSQL="${pkgs.utillinux}/bin/runuser -u ${cfg.superUser} -- psql --port=${toString cfg.port}"
+            PSQL="psql --port=${toString cfg.port}"
 
             while ! $PSQL -d postgres -c "" 2> /dev/null; do
                 if ! kill -0 "$MAINPID"; then exit 1; fi
@@ -369,6 +368,32 @@ in
             '') cfg.ensureUsers}
           '';
 
+        serviceConfig = mkMerge [
+          { ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+            User = "postgres";
+            Group = "postgres";
+            RuntimeDirectory = "postgresql";
+            Type = if versionAtLeast cfg.package.version "9.6"
+                   then "notify"
+                   else "simple";
+
+            # Shut down Postgres using SIGINT ("Fast Shutdown mode").  See
+            # http://www.postgresql.org/docs/current/static/server-shutdown.html
+            KillSignal = "SIGINT";
+            KillMode = "mixed";
+
+            # Give Postgres a decent amount of time to clean up after
+            # receiving systemd's SIGINT.
+            TimeoutSec = 120;
+
+            ExecStart = "${postgresql}/bin/postgres";
+          }
+          (mkIf (cfg.dataDir == "/var/lib/postgresql/${cfg.package.psqlSchema}") {
+            StateDirectory = "postgresql postgresql/${cfg.package.psqlSchema}";
+            StateDirectoryMode = if groupAccessAvailable then "0750" else "0700";
+          })
+        ];
+
         unitConfig.RequiresMountsFor = "${cfg.dataDir}";
       };
 
diff --git a/nixpkgs/nixos/modules/services/databases/riak-cs.nix b/nixpkgs/nixos/modules/services/databases/riak-cs.nix
index 2cb204f729a7..fa6ac8863318 100644
--- a/nixpkgs/nixos/modules/services/databases/riak-cs.nix
+++ b/nixpkgs/nixos/modules/services/databases/riak-cs.nix
@@ -35,7 +35,7 @@ in
           Name of the Erlang node.
         '';
       };
-      
+
       anonymousUserCreation = mkOption {
         type = types.bool;
         default = false;
diff --git a/nixpkgs/nixos/modules/services/databases/victoriametrics.nix b/nixpkgs/nixos/modules/services/databases/victoriametrics.nix
index cb6bf8508fb6..0af5d2adf372 100644
--- a/nixpkgs/nixos/modules/services/databases/victoriametrics.nix
+++ b/nixpkgs/nixos/modules/services/databases/victoriametrics.nix
@@ -49,8 +49,8 @@ let cfg = config.services.victoriametrics; in
         ExecStart = ''
           ${cfg.package}/bin/victoria-metrics \
               -storageDataPath=/var/lib/victoriametrics \
-              -httpListenAddr ${cfg.listenAddress}
-              -retentionPeriod ${toString cfg.retentionPeriod}
+              -httpListenAddr ${cfg.listenAddress} \
+              -retentionPeriod ${toString cfg.retentionPeriod} \
               ${lib.escapeShellArgs cfg.extraOptions}
         '';
       };
diff --git a/nixpkgs/nixos/modules/services/desktops/deepin/deepin.nix b/nixpkgs/nixos/modules/services/desktops/deepin/deepin.nix
deleted file mode 100644
index f8fb73701af6..000000000000
--- a/nixpkgs/nixos/modules/services/desktops/deepin/deepin.nix
+++ /dev/null
@@ -1,123 +0,0 @@
-# deepin
-
-{ config, pkgs, lib, ... }:
-
-{
-
-  ###### interface
-
-  options = {
-
-    services.deepin.core.enable = lib.mkEnableOption "
-      Basic dbus and systemd services, groups and users needed by the
-      Deepin Desktop Environment.
-    ";
-
-    services.deepin.deepin-menu.enable = lib.mkEnableOption "
-      DBus service for unified menus in Deepin Desktop Environment.
-    ";
-
-    services.deepin.deepin-turbo.enable = lib.mkEnableOption "
-      Turbo service for the Deepin Desktop Environment. It is a daemon
-      that helps to launch applications faster.
-    ";
-
-  };
-
-
-  ###### implementation
-
-  config = lib.mkMerge [
-
-    (lib.mkIf config.services.deepin.core.enable {
-      environment.systemPackages = [
-        pkgs.deepin.dde-api
-        pkgs.deepin.dde-calendar
-        pkgs.deepin.dde-control-center
-        pkgs.deepin.dde-daemon
-        pkgs.deepin.dde-dock
-        pkgs.deepin.dde-launcher
-        pkgs.deepin.dde-file-manager
-        pkgs.deepin.dde-session-ui
-        pkgs.deepin.deepin-anything
-        pkgs.deepin.deepin-image-viewer
-      ];
-
-      services.dbus.packages = [
-        pkgs.deepin.dde-api
-        pkgs.deepin.dde-calendar
-        pkgs.deepin.dde-control-center
-        pkgs.deepin.dde-daemon
-        pkgs.deepin.dde-dock
-        pkgs.deepin.dde-launcher
-        pkgs.deepin.dde-file-manager
-        pkgs.deepin.dde-session-ui
-        pkgs.deepin.deepin-anything
-        pkgs.deepin.deepin-image-viewer
-      ];
-
-      systemd.packages = [
-        pkgs.deepin.dde-api
-        pkgs.deepin.dde-daemon
-        pkgs.deepin.dde-file-manager
-        pkgs.deepin.deepin-anything
-      ];
-
-      boot.extraModulePackages = [ config.boot.kernelPackages.deepin-anything ];
-
-      boot.kernelModules = [ "vfs_monitor" ];
-
-      users.groups.deepin-sound-player = { };
-
-      users.users.deepin-sound-player = {
-        description = "Deepin sound player";
-        group = "deepin-sound-player";
-        isSystemUser = true;
-      };
-
-      users.groups.deepin-daemon = { };
-
-      users.users.deepin-daemon = {
-        description = "Deepin daemon user";
-        group = "deepin-daemon";
-        isSystemUser = true;
-      };
-
-      users.groups.deepin_anything_server = { };
-
-      users.users.deepin_anything_server = {
-        description = "Deepin Anything Server";
-        group = "deepin_anything_server";
-        isSystemUser = true;
-      };
-
-      security.pam.services.deepin-auth-keyboard.text = ''
-        # original at ${pkgs.deepin.dde-daemon}/etc/pam.d/deepin-auth-keyboard
-        auth	[success=2 default=ignore]	pam_lsass.so
-        auth	[success=1 default=ignore]	pam_unix.so nullok_secure try_first_pass
-        auth	requisite	pam_deny.so
-        auth	required	pam_permit.so
-      '';
-
-      environment.etc = {
-        "polkit-1/localauthority/10-vendor.d/com.deepin.api.device.pkla".source = "${pkgs.deepin.dde-api}/etc/polkit-1/localauthority/10-vendor.d/com.deepin.api.device.pkla";
-        "polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Accounts.pkla".source = "${pkgs.deepin.dde-daemon}/etc/polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Accounts.pkla";
-        "polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Grub2.pkla".source = "${pkgs.deepin.dde-daemon}/etc/polkit-1/localauthority/10-vendor.d/com.deepin.daemon.Grub2.pkla";
-      };
-
-      services.deepin.deepin-menu.enable = true;
-      services.deepin.deepin-turbo.enable = true;
-    })
-
-    (lib.mkIf config.services.deepin.deepin-menu.enable {
-      services.dbus.packages = [ pkgs.deepin.deepin-menu ];
-    })
-
-    (lib.mkIf config.services.deepin.deepin-turbo.enable {
-      environment.systemPackages = [ pkgs.deepin.deepin-turbo ];
-      systemd.packages = [ pkgs.deepin.deepin-turbo ];
-    })
-
-  ];
-
-}
diff --git a/nixpkgs/nixos/modules/services/desktops/espanso.nix b/nixpkgs/nixos/modules/services/desktops/espanso.nix
new file mode 100644
index 000000000000..cd2eadf88168
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/desktops/espanso.nix
@@ -0,0 +1,25 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let cfg = config.services.espanso;
+in {
+  meta = { maintainers = with lib.maintainers; [ numkem ]; };
+
+  options = {
+    services.espanso = { enable = options.mkEnableOption "Espanso"; };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.user.services.espanso = {
+      description = "Espanso daemon";
+      path = with pkgs; [ espanso libnotify xclip ];
+      serviceConfig = {
+        ExecStart = "${pkgs.espanso}/bin/espanso daemon";
+        Restart = "on-failure";
+      };
+      wantedBy = [ "default.target" ];
+    };
+
+    environment.systemPackages = [ pkgs.espanso ];
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/desktops/flatpak.nix b/nixpkgs/nixos/modules/services/desktops/flatpak.nix
index 7fb0024f37dc..7da92cc9f264 100644
--- a/nixpkgs/nixos/modules/services/desktops/flatpak.nix
+++ b/nixpkgs/nixos/modules/services/desktops/flatpak.nix
@@ -42,6 +42,7 @@ in {
     # It has been possible since https://github.com/flatpak/flatpak/releases/tag/1.3.2
     # to build a SELinux policy module.
 
+    # TODO: use sysusers.d
     users.users.flatpak = {
       description = "Flatpak system helper";
       group = "flatpak";
diff --git a/nixpkgs/nixos/modules/services/desktops/geoclue2.nix b/nixpkgs/nixos/modules/services/desktops/geoclue2.nix
index 542b2ead4104..6702bd395a03 100644
--- a/nixpkgs/nixos/modules/services/desktops/geoclue2.nix
+++ b/nixpkgs/nixos/modules/services/desktops/geoclue2.nix
@@ -160,7 +160,7 @@ in
       };
 
       appConfig = mkOption {
-        type = types.loaOf appConfigModule;
+        type = types.attrsOf appConfigModule;
         default = {};
         example = literalExample ''
           "com.github.app" = {
diff --git a/nixpkgs/nixos/modules/services/desktops/malcontent.nix b/nixpkgs/nixos/modules/services/desktops/malcontent.nix
index 5d6912595b52..1fbeb17e6aeb 100644
--- a/nixpkgs/nixos/modules/services/desktops/malcontent.nix
+++ b/nixpkgs/nixos/modules/services/desktops/malcontent.nix
@@ -28,7 +28,10 @@ with lib;
       malcontent-ui
     ];
 
-    services.dbus.packages = [ pkgs.malcontent ];
+    services.dbus.packages = [
+      # D-Bus services are in `out`, not the default `bin` output that would be picked up by `makeDbusConf`.
+      pkgs.malcontent.out
+    ];
 
     services.accounts-daemon.enable = true;
 
diff --git a/nixpkgs/nixos/modules/services/development/jupyter/default.nix b/nixpkgs/nixos/modules/services/development/jupyter/default.nix
index e598b0186450..6a5fd6b2940e 100644
--- a/nixpkgs/nixos/modules/services/development/jupyter/default.nix
+++ b/nixpkgs/nixos/modules/services/development/jupyter/default.nix
@@ -6,10 +6,7 @@ let
 
   cfg = config.services.jupyter;
 
-  # NOTE: We don't use top-level jupyter because we don't
-  # want to pass in JUPYTER_PATH but use .environment instead,
-  # saving a rebuild.
-  package = pkgs.python3.pkgs.notebook;
+  package = cfg.package;
 
   kernels = (pkgs.jupyter-kernel.create  {
     definitions = if cfg.kernels != null
@@ -37,6 +34,27 @@ in {
       '';
     };
 
+    package = mkOption {
+      type = types.package;
+      # NOTE: We don't use top-level jupyter because we don't
+      # want to pass in JUPYTER_PATH but use .environment instead,
+      # saving a rebuild.
+      default = pkgs.python3.pkgs.notebook;
+      description = ''
+        Jupyter package to use.
+      '';
+    };
+
+    command = mkOption {
+      type = types.str;
+      default = "jupyter-notebook";
+      example = "jupyter-lab";
+      description = ''
+        Which command the service runs. Note that not all jupyter packages
+        have all commands, e.g. jupyter-lab isn't present in the default package.
+       '';
+    };
+
     port = mkOption {
       type = types.int;
       default = 8888;
@@ -157,7 +175,7 @@ in {
 
         serviceConfig = {
           Restart = "always";
-          ExecStart = ''${package}/bin/jupyter-notebook \
+          ExecStart = ''${package}/bin/${cfg.command} \
             --no-browser \
             --ip=${cfg.ip} \
             --port=${toString cfg.port} --port-retries 0 \
diff --git a/nixpkgs/nixos/modules/services/development/jupyterhub/default.nix b/nixpkgs/nixos/modules/services/development/jupyterhub/default.nix
new file mode 100644
index 000000000000..f1dcab68b000
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/development/jupyterhub/default.nix
@@ -0,0 +1,190 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  cfg = config.services.jupyterhub;
+
+  kernels = (pkgs.jupyter-kernel.create  {
+    definitions = if cfg.kernels != null
+      then cfg.kernels
+      else  pkgs.jupyter-kernel.default;
+  });
+
+  jupyterhubConfig = pkgs.writeText "jupyterhub_config.py" ''
+    c.JupyterHub.bind_url = "http://${cfg.host}:${toString cfg.port}"
+
+    c.JupyterHub.authenticator_class = "${cfg.authentication}"
+    c.JupyterHub.spawner_class = "${cfg.spawner}"
+
+    c.SystemdSpawner.default_url = '/lab'
+    c.SystemdSpawner.cmd = "${cfg.jupyterlabEnv}/bin/jupyterhub-singleuser"
+    c.SystemdSpawner.environment = {
+      'JUPYTER_PATH': '${kernels}'
+    }
+
+    ${cfg.extraConfig}
+  '';
+in {
+  meta.maintainers = with maintainers; [ costrouc ];
+
+  options.services.jupyterhub = {
+    enable = mkEnableOption "Jupyterhub development server";
+
+    authentication = mkOption {
+      type = types.str;
+      default = "jupyterhub.auth.PAMAuthenticator";
+      description = ''
+        Jupyterhub authentication to use
+
+        There are many authenticators available including: oauth, pam,
+        ldap, kerberos, etc.
+      '';
+    };
+
+    spawner = mkOption {
+      type = types.str;
+      default = "systemdspawner.SystemdSpawner";
+      description = ''
+        Jupyterhub spawner to use
+
+        There are many spawners available including: local process,
+        systemd, docker, kubernetes, yarn, batch, etc.
+      '';
+    };
+
+    extraConfig = mkOption {
+      type = types.lines;
+      default = "";
+      description = ''
+        Extra contents appended to the jupyterhub configuration
+
+        Jupyterhub configuration is a normal python file using
+        Traitlets. https://jupyterhub.readthedocs.io/en/stable/getting-started/config-basics.html. The
+        base configuration of this module was designed to have sane
+        defaults for configuration but you can override anything since
+        this is a python file.
+      '';
+      example = literalExample ''
+         c.SystemdSpawner.mem_limit = '8G'
+         c.SystemdSpawner.cpu_limit = 2.0
+      '';
+    };
+
+    jupyterhubEnv = mkOption {
+      type = types.package;
+      default = (pkgs.python3.withPackages (p: with p; [
+        jupyterhub
+        jupyterhub-systemdspawner
+      ]));
+      description = ''
+        Python environment to run jupyterhub
+
+        Customizing will affect the packages available in the hub and
+        proxy. This will allow packages to be available for the
+        extraConfig that you may need. This will not normally need to
+        be changed.
+      '';
+    };
+
+    jupyterlabEnv = mkOption {
+      type = types.package;
+      default = (pkgs.python3.withPackages (p: with p; [
+        jupyterhub
+        jupyterlab
+      ]));
+      description = ''
+        Python environment to run jupyterlab
+
+        Customizing will affect the packages available in the
+        jupyterlab server and the default kernel provided. This is the
+        way to customize the jupyterlab extensions and jupyter
+        notebook extensions. This will not normally need to
+        be changed.
+      '';
+    };
+
+    kernels = mkOption {
+      type = types.nullOr (types.attrsOf(types.submodule (import ../jupyter/kernel-options.nix {
+        inherit lib;
+      })));
+
+      default = null;
+      example = literalExample ''
+        {
+          python3 = let
+            env = (pkgs.python3.withPackages (pythonPackages: with pythonPackages; [
+                    ipykernel
+                    pandas
+                    scikitlearn
+                  ]));
+          in {
+            displayName = "Python 3 for machine learning";
+            argv = [
+              "''${env.interpreter}"
+              "-m"
+              "ipykernel_launcher"
+              "-f"
+              "{connection_file}"
+            ];
+            language = "python";
+            logo32 = "''${env}/''${env.sitePackages}/ipykernel/resources/logo-32x32.png";
+            logo64 = "''${env}/''${env.sitePackages}/ipykernel/resources/logo-64x64.png";
+          };
+        }
+      '';
+      description = ''
+        Declarative kernel config
+
+        Kernels can be declared in any language that supports and has
+        the required dependencies to communicate with a jupyter server.
+        In python's case, it means that ipykernel package must always be
+        included in the list of packages of the targeted environment.
+      '';
+    };
+
+    port = mkOption {
+      type = types.port;
+      default = 8000;
+      description = ''
+        Port number Jupyterhub will be listening on
+      '';
+    };
+
+    host = mkOption {
+      type = types.str;
+      default = "0.0.0.0";
+      description = ''
+        Bind IP JupyterHub will be listening on
+      '';
+    };
+
+    stateDirectory = mkOption {
+      type = types.str;
+      default = "jupyterhub";
+      description = ''
+        Directory for jupyterhub state (token + database)
+      '';
+    };
+  };
+
+  config = mkMerge [
+    (mkIf cfg.enable  {
+      systemd.services.jupyterhub = {
+        description = "Jupyterhub development server";
+
+        after = [ "network.target" ];
+        wantedBy = [ "multi-user.target" ];
+
+        serviceConfig = {
+          Restart = "always";
+          ExecStart = "${cfg.jupyterhubEnv}/bin/jupyterhub --config ${jupyterhubConfig}";
+          User = "root";
+          StateDirectory = cfg.stateDirectory;
+          WorkingDirectory = "/var/lib/${cfg.stateDirectory}";
+        };
+      };
+    })
+  ];
+}
diff --git a/nixpkgs/nixos/modules/services/development/lorri.nix b/nixpkgs/nixos/modules/services/development/lorri.nix
index c843aa56d133..fc576e4c18ba 100644
--- a/nixpkgs/nixos/modules/services/development/lorri.nix
+++ b/nixpkgs/nixos/modules/services/development/lorri.nix
@@ -15,6 +15,15 @@ in {
           issued by the `lorri` command.
         '';
       };
+      package = lib.mkOption {
+        default = pkgs.lorri;
+        type = lib.types.package;
+        description = ''
+          The lorri package to use.
+        '';
+        defaultText = lib.literalExample "pkgs.lorri";
+        example = lib.literalExample "pkgs.lorri";
+      };
     };
   };
 
@@ -34,7 +43,7 @@ in {
       after = [ "lorri.socket" ];
       path = with pkgs; [ config.nix.package git gnutar gzip ];
       serviceConfig = {
-        ExecStart = "${pkgs.lorri}/bin/lorri daemon";
+        ExecStart = "${cfg.package}/bin/lorri daemon";
         PrivateTmp = true;
         ProtectSystem = "strict";
         ProtectHome = "read-only";
@@ -42,6 +51,6 @@ in {
       };
     };
 
-    environment.systemPackages = [ pkgs.lorri ];
+    environment.systemPackages = [ cfg.package ];
   };
 }
diff --git a/nixpkgs/nixos/modules/services/editors/emacs.nix b/nixpkgs/nixos/modules/services/editors/emacs.nix
index d791b387665f..00d9eaad9eb9 100644
--- a/nixpkgs/nixos/modules/services/editors/emacs.nix
+++ b/nixpkgs/nixos/modules/services/editors/emacs.nix
@@ -15,26 +15,27 @@ let
     fi
   '';
 
-desktopApplicationFile = pkgs.writeTextFile {
-  name = "emacsclient.desktop";
-  destination = "/share/applications/emacsclient.desktop";
-  text = ''
-[Desktop Entry]
-Name=Emacsclient
-GenericName=Text Editor
-Comment=Edit text
-MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
-Exec=emacseditor %F
-Icon=emacs
-Type=Application
-Terminal=false
-Categories=Development;TextEditor;
-StartupWMClass=Emacs
-Keywords=Text;Editor;
-'';
-};
-
-in {
+  desktopApplicationFile = pkgs.writeTextFile {
+    name = "emacsclient.desktop";
+    destination = "/share/applications/emacsclient.desktop";
+    text = ''
+      [Desktop Entry]
+      Name=Emacsclient
+      GenericName=Text Editor
+      Comment=Edit text
+      MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++;
+      Exec=emacseditor %F
+      Icon=emacs
+      Type=Application
+      Terminal=false
+      Categories=Development;TextEditor;
+      StartupWMClass=Emacs
+      Keywords=Text;Editor;
+    '';
+  };
+
+in
+{
 
   options.services.emacs = {
     enable = mkOption {
@@ -86,10 +87,10 @@ in {
       description = "Emacs: the extensible, self-documenting text editor";
 
       serviceConfig = {
-        Type      = "forking";
+        Type = "forking";
         ExecStart = "${pkgs.bash}/bin/bash -c 'source ${config.system.build.setEnvironment}; exec ${cfg.package}/bin/emacs --daemon'";
-        ExecStop  = "${cfg.package}/bin/emacsclient --eval (kill-emacs)";
-        Restart   = "always";
+        ExecStop = "${cfg.package}/bin/emacsclient --eval (kill-emacs)";
+        Restart = "always";
       };
     } // optionalAttrs cfg.enable { wantedBy = [ "default.target" ]; };
 
diff --git a/nixpkgs/nixos/modules/services/editors/emacs.xml b/nixpkgs/nixos/modules/services/editors/emacs.xml
index 74c60014dcea..302aa1ed7c48 100644
--- a/nixpkgs/nixos/modules/services/editors/emacs.xml
+++ b/nixpkgs/nixos/modules/services/editors/emacs.xml
@@ -53,11 +53,11 @@
        <varname>emacs</varname>
       </term>
       <term>
-       <varname>emacs25</varname>
+       <varname>emacs</varname>
       </term>
       <listitem>
        <para>
-        The latest stable version of Emacs 25 using the
+        The latest stable version of Emacs using the
         <link
                 xlink:href="http://www.gtk.org">GTK 2</link>
         widget toolkit.
@@ -66,11 +66,11 @@
      </varlistentry>
      <varlistentry>
       <term>
-       <varname>emacs25-nox</varname>
+       <varname>emacs-nox</varname>
       </term>
       <listitem>
        <para>
-        Emacs 25 built without any dependency on X11 libraries.
+        Emacs built without any dependency on X11 libraries.
        </para>
       </listitem>
      </varlistentry>
@@ -79,11 +79,11 @@
        <varname>emacsMacport</varname>
       </term>
       <term>
-       <varname>emacs25Macport</varname>
+       <varname>emacsMacport</varname>
       </term>
       <listitem>
        <para>
-        Emacs 25 with the "Mac port" patches, providing a more native look and
+        Emacs with the "Mac port" patches, providing a more native look and
         feel under macOS.
        </para>
       </listitem>
@@ -322,7 +322,7 @@ https://nixos.org/nixpkgs/manual/#sec-modify-via-packageOverrides
     If you want, you can tweak the Emacs package itself from your
     <filename>emacs.nix</filename>. For example, if you want to have a
     GTK 3-based Emacs instead of the default GTK 2-based binary and remove the
-    automatically generated <filename>emacs.desktop</filename> (useful is you
+    automatically generated <filename>emacs.desktop</filename> (useful if you
     only use <command>emacsclient</command>), you can change your file
     <filename>emacs.nix</filename> in this way:
    </para>
diff --git a/nixpkgs/nixos/modules/services/games/minetest-server.nix b/nixpkgs/nixos/modules/services/games/minetest-server.nix
index 98e69c6dc0ea..f52079fc1ef6 100644
--- a/nixpkgs/nixos/modules/services/games/minetest-server.nix
+++ b/nixpkgs/nixos/modules/services/games/minetest-server.nix
@@ -5,12 +5,12 @@ with lib;
 let
   cfg   = config.services.minetest-server;
   flag  = val: name: if val != null then "--${name} ${val} " else "";
-  flags = [ 
-    (flag cfg.gameId "gameid") 
-    (flag cfg.world "world") 
-    (flag cfg.configPath "config") 
-    (flag cfg.logPath "logfile") 
-    (flag cfg.port "port") 
+  flags = [
+    (flag cfg.gameId "gameid")
+    (flag cfg.world "world")
+    (flag cfg.configPath "config")
+    (flag cfg.logPath "logfile")
+    (flag cfg.port "port")
   ];
 in
 {
@@ -26,7 +26,7 @@ in
         type        = types.nullOr types.str;
         default     = null;
         description = ''
-          Id of the game to use. To list available games run 
+          Id of the game to use. To list available games run
           `minetestserver --gameid list`.
 
           If only one game exists, this option can be null.
@@ -59,7 +59,7 @@ in
         type        = types.nullOr types.path;
         default     = null;
         description = ''
-          Path to logfile for logging. 
+          Path to logfile for logging.
 
           If set to null, logging will be output to stdout which means
           all output will be catched by systemd.
diff --git a/nixpkgs/nixos/modules/services/games/terraria.nix b/nixpkgs/nixos/modules/services/games/terraria.nix
index a59b74c0b4c4..34c8ff137d6a 100644
--- a/nixpkgs/nixos/modules/services/games/terraria.nix
+++ b/nixpkgs/nixos/modules/services/games/terraria.nix
@@ -7,7 +7,7 @@ let
   worldSizeMap = { small = 1; medium = 2; large = 3; };
   valFlag = name: val: optionalString (val != null) "-${name} \"${escape ["\\" "\""] (toString val)}\"";
   boolFlag = name: val: optionalString val "-${name}";
-  flags = [ 
+  flags = [
     (valFlag "port" cfg.port)
     (valFlag "maxPlayers" cfg.maxPlayers)
     (valFlag "password" cfg.password)
@@ -25,7 +25,7 @@ let
       exit 0
     fi
 
-    ${getBin pkgs.tmux}/bin/tmux -S /var/lib/terraria/terraria.sock send-keys Enter exit Enter
+    ${getBin pkgs.tmux}/bin/tmux -S ${cfg.dataDir}/terraria.sock send-keys Enter exit Enter
     ${getBin pkgs.coreutils}/bin/tail --pid="$1" -f /dev/null
   '';
 in
@@ -36,7 +36,7 @@ in
         type        = types.bool;
         default     = false;
         description = ''
-          If enabled, starts a Terraria server. The server can be connected to via <literal>tmux -S /var/lib/terraria/terraria.sock attach</literal>
+          If enabled, starts a Terraria server. The server can be connected to via <literal>tmux -S ${cfg.dataDir}/terraria.sock attach</literal>
           for administration by users who are a part of the <literal>terraria</literal> group (use <literal>C-b d</literal> shortcut to detach again).
         '';
       };
@@ -111,13 +111,19 @@ in
         default     = false;
         description = "Disables automatic Universal Plug and Play.";
       };
+      dataDir = mkOption {
+        type        = types.str;
+        default     = "/var/lib/terraria";
+        example     = "/srv/terraria";
+        description = "Path to variable state data directory for terraria.";
+      };
     };
   };
 
   config = mkIf cfg.enable {
     users.users.terraria = {
       description = "Terraria server service user";
-      home        = "/var/lib/terraria";
+      home        = cfg.dataDir;
       createHome  = true;
       uid         = config.ids.uids.terraria;
     };
@@ -136,13 +142,13 @@ in
         User    = "terraria";
         Type = "forking";
         GuessMainPID = true;
-        ExecStart = "${getBin pkgs.tmux}/bin/tmux -S /var/lib/terraria/terraria.sock new -d ${pkgs.terraria-server}/bin/TerrariaServer ${concatStringsSep " " flags}";
+        ExecStart = "${getBin pkgs.tmux}/bin/tmux -S ${cfg.dataDir}/terraria.sock new -d ${pkgs.terraria-server}/bin/TerrariaServer ${concatStringsSep " " flags}";
         ExecStop = "${stopScript} $MAINPID";
       };
 
       postStart = ''
-        ${pkgs.coreutils}/bin/chmod 660 /var/lib/terraria/terraria.sock
-        ${pkgs.coreutils}/bin/chgrp terraria /var/lib/terraria/terraria.sock
+        ${pkgs.coreutils}/bin/chmod 660 ${cfg.dataDir}/terraria.sock
+        ${pkgs.coreutils}/bin/chgrp terraria ${cfg.dataDir}/terraria.sock
       '';
     };
   };
diff --git a/nixpkgs/nixos/modules/services/hardware/fancontrol.nix b/nixpkgs/nixos/modules/services/hardware/fancontrol.nix
index bb4541a784da..e1ce11a5aef6 100644
--- a/nixpkgs/nixos/modules/services/hardware/fancontrol.nix
+++ b/nixpkgs/nixos/modules/services/hardware/fancontrol.nix
@@ -12,7 +12,7 @@ in{
 
     config = mkOption {
       default = null;
-      type = types.lines;
+      type = types.nullOr types.lines;
       description = "Fancontrol configuration file content. See <citerefentry><refentrytitle>pwmconfig</refentrytitle><manvolnum>8</manvolnum></citerefentry> from the lm_sensors package.";
       example = ''
         # Configuration file generated by pwmconfig
diff --git a/nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix b/nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix
index 6f49a1ab6d40..a6afa01dd812 100644
--- a/nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix
+++ b/nixpkgs/nixos/modules/services/hardware/sane_extra_backends/brscan4.nix
@@ -81,7 +81,7 @@ in
         { office1 = { model = "MFC-7860DW"; ip = "192.168.1.2"; };
           office2 = { model = "MFC-7860DW"; nodename = "BRW0080927AFBCE"; };
         };
-      type = with types; loaOf (submodule netDeviceOpts);
+      type = with types; attrsOf (submodule netDeviceOpts);
       description = ''
         The list of network devices that will be registered against the brscan4
         sane backend.
diff --git a/nixpkgs/nixos/modules/services/hardware/thermald.nix b/nixpkgs/nixos/modules/services/hardware/thermald.nix
index ecb529e9bf01..b7be0e89d0c6 100644
--- a/nixpkgs/nixos/modules/services/hardware/thermald.nix
+++ b/nixpkgs/nixos/modules/services/hardware/thermald.nix
@@ -23,6 +23,15 @@ in {
         default = null;
         description = "the thermald manual configuration file.";
       };
+
+      adaptive = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to enable adaptive mode, only working on kernel versions greater than 5.8.
+          Thermald will detect this itself, safe to enable on kernel versions below 5.8.
+        '';
+      };
     };
   };
 
@@ -39,6 +48,7 @@ in {
             --no-daemon \
             ${optionalString cfg.debug "--loglevel=debug"} \
             ${optionalString (cfg.configFile != null) "--config-file ${cfg.configFile}"} \
+            ${optionalString cfg.adaptive "--adaptive"} \
             --dbus-enable
         '';
       };
diff --git a/nixpkgs/nixos/modules/services/hardware/thinkfan.nix b/nixpkgs/nixos/modules/services/hardware/thinkfan.nix
index 7c105e99ca54..3bda61ed1a93 100644
--- a/nixpkgs/nixos/modules/services/hardware/thinkfan.nix
+++ b/nixpkgs/nixos/modules/services/hardware/thinkfan.nix
@@ -67,7 +67,7 @@ in {
         type = types.bool;
         default = false;
         description = ''
-          Whether to build thinkfan with SMART support to read temperatures 
+          Whether to build thinkfan with SMART support to read temperatures
           directly from hard disks.
         '';
       };
diff --git a/nixpkgs/nixos/modules/services/hardware/tlp.nix b/nixpkgs/nixos/modules/services/hardware/tlp.nix
index 3962d7b15989..4230f2edd279 100644
--- a/nixpkgs/nixos/modules/services/hardware/tlp.nix
+++ b/nixpkgs/nixos/modules/services/hardware/tlp.nix
@@ -8,12 +8,8 @@ let
   mkTlpConfig = tlpConfig: generators.toKeyValue {
     mkKeyValue = generators.mkKeyValueDefault {
       mkValueString = val:
-        if isInt val then toString val
-        else if isString val then val
-        else if true == val then "1"
-        else if false == val then "0"
-        else if isList val then "\"" + (concatStringsSep " " val) + "\""
-        else err "invalid value provided to mkTlpConfig:" (toString val);
+        if isList val then "\"" + (toString val) + "\""
+        else toString val;
     } "=";
   } tlpConfig;
 in
@@ -27,10 +23,24 @@ in
         description = "Whether to enable the TLP power management daemon.";
       };
 
+      settings = mkOption {type = with types; attrsOf (oneOf [bool int float str (listOf str)]);
+        default = {};
+        example = {
+          SATA_LINKPWR_ON_BAT = "med_power_with_dipm";
+          USB_BLACKLIST_PHONE = 1;
+        };
+        description = ''
+          Options passed to TLP. See https://linrunner.de/tlp for all supported options..
+        '';
+      };
+
       extraConfig = mkOption {
         type = types.lines;
         default = "";
-        description = "Additional configuration variables for TLP";
+        description = ''
+          Verbatim additional configuration variables for TLP.
+          DEPRECATED: use services.tlp.config instead.
+        '';
       };
     };
   };
@@ -39,8 +49,20 @@ in
   config = mkIf cfg.enable {
     boot.kernelModules = [ "msr" ];
 
+    warnings = optional (cfg.extraConfig != "") ''
+      Using config.services.tlp.extraConfig is deprecated and will become unsupported in a future release. Use config.services.tlp.settings instead.
+    '';
+
+    assertions = [{
+      assertion = cfg.enable -> config.powerManagement.scsiLinkPolicy == null;
+      message = ''
+        `services.tlp.enable` and `config.powerManagement.scsiLinkPolicy` cannot be set both.
+        Set `services.tlp.settings.SATA_LINKPWR_ON_AC` and `services.tlp.settings.SATA_LINKPWR_ON_BAT` instead.
+      '';
+    }];
+
     environment.etc = {
-      "tlp.conf".text = cfg.extraConfig;
+      "tlp.conf".text = (mkTlpConfig cfg.settings) + cfg.extraConfig;
     } // optionalAttrs enableRDW {
       "NetworkManager/dispatcher.d/99tlp-rdw-nm".source =
         "${tlp}/etc/NetworkManager/dispatcher.d/99tlp-rdw-nm";
@@ -48,18 +70,25 @@ in
 
     environment.systemPackages = [ tlp ];
 
-    # FIXME: When the config is parametrized we need to move these into a
-    # conditional on the relevant options being enabled.
-    powerManagement = {
-      scsiLinkPolicy = null;
-      cpuFreqGovernor = null;
-      cpufreq.max = null;
-      cpufreq.min = null;
+
+    services.tlp.settings = let
+      cfg = config.powerManagement;
+      maybeDefault = val: lib.mkIf (val != null) (lib.mkDefault val);
+    in {
+      CPU_SCALING_GOVERNOR_ON_AC = maybeDefault cfg.cpuFreqGovernor;
+      CPU_SCALING_GOVERNOR_ON_BAT = maybeDefault cfg.cpuFreqGovernor;
+      CPU_SCALING_MIN_FREQ_ON_AC = maybeDefault cfg.cpufreq.min;
+      CPU_SCALING_MAX_FREQ_ON_AC = maybeDefault cfg.cpufreq.max;
+      CPU_SCALING_MIN_FREQ_ON_BAT = maybeDefault cfg.cpufreq.min;
+      CPU_SCALING_MAX_FREQ_ON_BAT = maybeDefault cfg.cpufreq.max;
     };
 
     services.udev.packages = [ tlp ];
 
     systemd = {
+      # use native tlp instead because it can also differentiate between AC/BAT
+      services.cpufreq.enable = false;
+
       packages = [ tlp ];
       # XXX: These must always be disabled/masked according to [1].
       #
diff --git a/nixpkgs/nixos/modules/services/hardware/trezord.nix b/nixpkgs/nixos/modules/services/hardware/trezord.nix
index c517e9fbb2bd..2594ac743710 100644
--- a/nixpkgs/nixos/modules/services/hardware/trezord.nix
+++ b/nixpkgs/nixos/modules/services/hardware/trezord.nix
@@ -10,7 +10,7 @@ in {
   meta = {
     doc = ./trezord.xml;
   };
-  
+
   ### interface
 
   options = {
@@ -40,7 +40,7 @@ in {
       };
     };
   };
-  
+
   ### implementation
 
   config = mkIf cfg.enable {
diff --git a/nixpkgs/nixos/modules/services/hardware/undervolt.nix b/nixpkgs/nixos/modules/services/hardware/undervolt.nix
index da627af73bc6..054ffa35050a 100644
--- a/nixpkgs/nixos/modules/services/hardware/undervolt.nix
+++ b/nixpkgs/nixos/modules/services/hardware/undervolt.nix
@@ -25,8 +25,11 @@ let
 in
 {
   options.services.undervolt = {
-    enable = mkEnableOption
-      "Intel CPU undervolting service (WARNING: may permanently damage your hardware!)";
+    enable = mkEnableOption ''
+       Undervolting service for Intel CPUs.
+
+       Warning: This service is not endorsed by Intel and may permanently damage your hardware. Use at your own risk!
+    '';
 
     verbose = mkOption {
       type = types.bool;
@@ -100,6 +103,17 @@ in
         The temperature target on battery power in Celsius degrees.
       '';
     };
+
+    useTimer = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Whether to set a timer that applies the undervolt settings every 30s.
+        This will cause spam in the journal but might be required for some
+        hardware under specific conditions.
+        Enable this if your undervolt settings don't hold.
+      '';
+    };
   };
 
   config = mkIf cfg.enable {
@@ -111,6 +125,11 @@ in
       path = [ pkgs.undervolt ];
 
       description = "Intel Undervolting Service";
+
+      # Apply undervolt on boot, nixos generation switch and resume
+      wantedBy = [ "multi-user.target" "post-resume.target" ];
+      after = [ "post-resume.target" ]; # Not sure why but it won't work without this
+
       serviceConfig = {
         Type = "oneshot";
         Restart = "no";
@@ -118,7 +137,7 @@ in
       };
     };
 
-    systemd.timers.undervolt = {
+    systemd.timers.undervolt = mkIf cfg.useTimer {
       description = "Undervolt timer to ensure voltage settings are always applied";
       partOf = [ "undervolt.service" ];
       wantedBy = [ "multi-user.target" ];
diff --git a/nixpkgs/nixos/modules/services/logging/logrotate.nix b/nixpkgs/nixos/modules/services/logging/logrotate.nix
index 565618b27a87..7d6102b82557 100644
--- a/nixpkgs/nixos/modules/services/logging/logrotate.nix
+++ b/nixpkgs/nixos/modules/services/logging/logrotate.nix
@@ -5,54 +5,93 @@ with lib;
 let
   cfg = config.services.logrotate;
 
-  pathOptions = {
+  pathOpts = {
     options = {
+      enable = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Whether to enable log rotation for this path. This can be used to explicitly disable
+          logging that has been configured by NixOS.
+        '';
+      };
+
       path = mkOption {
         type = types.str;
-        description = "The path to log files to be rotated";
+        description = ''
+          The path to log files to be rotated.
+        '';
       };
+
       user = mkOption {
-        type = types.str;
-        description = "The user account to use for rotation";
+        type = with types; nullOr str;
+        default = null;
+        description = ''
+          The user account to use for rotation.
+        '';
       };
+
       group = mkOption {
-        type = types.str;
-        description = "The group to use for rotation";
+        type = with types; nullOr str;
+        default = null;
+        description = ''
+          The group to use for rotation.
+        '';
       };
+
       frequency = mkOption {
-        type = types.enum [
-          "daily" "weekly" "monthly" "yearly"
-        ];
+        type = types.enum [ "daily" "weekly" "monthly" "yearly" ];
         default = "daily";
-        description = "How often to rotate the logs";
+        description = ''
+          How often to rotate the logs.
+        '';
       };
+
       keep = mkOption {
         type = types.int;
         default = 20;
-        description = "How many rotations to keep";
+        description = ''
+          How many rotations to keep.
+        '';
       };
+
       extraConfig = mkOption {
         type = types.lines;
         default = "";
-        description = "Extra logrotate config options for this path";
+        description = ''
+          Extra logrotate config options for this path. Refer to
+          <link xlink:href="https://linux.die.net/man/8/logrotate"/> for details.
+        '';
+      };
+
+      priority = mkOption {
+        type = types.int;
+        default = 1000;
+        description = ''
+          Order of this logrotate block in relation to the others. The semantics are
+          the same as with `lib.mkOrder`. Smaller values have a greater priority.
+        '';
       };
     };
-  };
 
-  pathConfig = options: ''
-    "${options.path}" {
-      su ${options.user} ${options.group}
-      ${options.frequency}
+    config.extraConfig = ''
       missingok
       notifempty
-      rotate ${toString options.keep}
-      ${options.extraConfig}
+    '';
+  };
+
+  mkConf = pathOpts: ''
+    # generated by NixOS using the `services.logrotate.paths.${pathOpts.name}` attribute set
+    "${pathOpts.path}" {
+      ${optionalString (pathOpts.user != null || pathOpts.group != null) "su ${pathOpts.user} ${pathOpts.group}"}
+      ${pathOpts.frequency}
+      rotate ${toString pathOpts.keep}
+      ${pathOpts.extraConfig}
     }
   '';
 
-  configFile = pkgs.writeText "logrotate.conf" (
-    (concatStringsSep "\n" ((map pathConfig cfg.paths) ++ [cfg.extraConfig]))
-  );
+  paths = sortProperties (mapAttrsToList (name: pathOpts: pathOpts // { name = name; }) (filterAttrs (_: pathOpts: pathOpts.enable) cfg.paths));
+  configFile = pkgs.writeText "logrotate.conf" (concatStringsSep "\n" ((map mkConf paths) ++ [ cfg.extraConfig ]));
 
 in
 {
@@ -65,41 +104,66 @@ in
       enable = mkEnableOption "the logrotate systemd service";
 
       paths = mkOption {
-        type = types.listOf (types.submodule pathOptions);
-        default = [];
-        description = "List of attribute sets with paths to rotate";
-        example = {
-          "/var/log/myapp/*.log" = {
-            user = "myuser";
-            group = "mygroup";
-            rotate = "weekly";
-            keep = 5;
-          };
-        };
+        type = with types; attrsOf (submodule pathOpts);
+        default = {};
+        description = ''
+          Attribute set of paths to rotate. The order each block appears in the generated configuration file
+          can be controlled by the <link linkend="opt-services.logrotate.paths._name_.priority">priority</link> option
+          using the same semantics as `lib.mkOrder`. Smaller values have a greater priority.
+        '';
+        example = literalExample ''
+          {
+            httpd = {
+              path = "/var/log/httpd/*.log";
+              user = config.services.httpd.user;
+              group = config.services.httpd.group;
+              keep = 7;
+            };
+
+            myapp = {
+              path = "/var/log/myapp/*.log";
+              user = "myuser";
+              group = "mygroup";
+              frequency = "weekly";
+              keep = 5;
+              priority = 1;
+            };
+          }
+        '';
       };
 
       extraConfig = mkOption {
         default = "";
         type = types.lines;
         description = ''
-          Extra contents to add to the logrotate config file.
-          See https://linux.die.net/man/8/logrotate
+          Extra contents to append to the logrotate configuration file. Refer to
+          <link xlink:href="https://linux.die.net/man/8/logrotate"/> for details.
         '';
       };
     };
   };
 
   config = mkIf cfg.enable {
-    systemd.services.logrotate = {
-      description   = "Logrotate Service";
-      wantedBy      = [ "multi-user.target" ];
-      startAt       = "*-*-* *:05:00";
+    assertions = mapAttrsToList (name: pathOpts:
+      { assertion = (pathOpts.user != null) == (pathOpts.group != null);
+        message = ''
+          If either of `services.logrotate.paths.${name}.user` or `services.logrotate.paths.${name}.group` are specified then *both* must be specified.
+        '';
+      }
+    ) cfg.paths;
 
-      serviceConfig.Restart = "no";
-      serviceConfig.User    = "root";
+    systemd.services.logrotate = {
+      description = "Logrotate Service";
+      wantedBy = [ "multi-user.target" ];
+      startAt = "*-*-* *:05:00";
       script = ''
         exec ${pkgs.logrotate}/sbin/logrotate ${configFile}
       '';
+
+      serviceConfig = {
+        Restart = "no";
+        User = "root";
+      };
     };
   };
 }
diff --git a/nixpkgs/nixos/modules/services/logging/logstash.nix b/nixpkgs/nixos/modules/services/logging/logstash.nix
index 21a83803fd8c..bf92425f998b 100644
--- a/nixpkgs/nixos/modules/services/logging/logstash.nix
+++ b/nixpkgs/nixos/modules/services/logging/logstash.nix
@@ -4,13 +4,9 @@ with lib;
 
 let
   cfg = config.services.logstash;
-  pluginPath = lib.concatStringsSep ":" cfg.plugins;
-  havePluginPath = lib.length cfg.plugins > 0;
   ops = lib.optionalString;
   verbosityFlag = "--log.level " + cfg.logLevel;
 
-  pluginsPath = "--path.plugins ${pluginPath}";
-
   logstashConf = pkgs.writeText "logstash.conf" ''
     input {
       ${cfg.inputConfig}
@@ -173,7 +169,7 @@ in
         ExecStart = concatStringsSep " " (filter (s: stringLength s != 0) [
           "${cfg.package}/bin/logstash"
           "-w ${toString cfg.filterWorkers}"
-          (ops havePluginPath pluginsPath)
+          (concatMapStringsSep " " (x: "--path.plugins ${x}") cfg.plugins)
           "${verbosityFlag}"
           "-f ${logstashConf}"
           "--path.settings ${logstashSettingsDir}"
diff --git a/nixpkgs/nixos/modules/services/mail/dovecot.nix b/nixpkgs/nixos/modules/services/mail/dovecot.nix
index 51cbcbf1cbc8..c166ef68f292 100644
--- a/nixpkgs/nixos/modules/services/mail/dovecot.nix
+++ b/nixpkgs/nixos/modules/services/mail/dovecot.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ options, config, lib, pkgs, ... }:
 
 with lib;
 
@@ -83,11 +83,11 @@ let
     )
 
     (
-      optionalString (cfg.mailboxes != []) ''
+      optionalString (cfg.mailboxes != {}) ''
         protocol imap {
           namespace inbox {
             inbox=yes
-            ${concatStringsSep "\n" (map mailboxConfig cfg.mailboxes)}
+            ${concatStringsSep "\n" (map mailboxConfig (attrValues cfg.mailboxes))}
           }
         }
       ''
@@ -131,12 +131,13 @@ let
     special_use = \${toString mailbox.specialUse}
   '' + "}";
 
-  mailboxes = { ... }: {
+  mailboxes = { name, ... }: {
     options = {
       name = mkOption {
-        type = types.nullOr (types.strMatching ''[^"]+'');
+        type = types.strMatching ''[^"]+'';
         example = "Spam";
-        default = null;
+        default = name;
+        readOnly = true;
         description = "The name of the mailbox.";
       };
       auto = mkOption {
@@ -335,19 +336,11 @@ in
     };
 
     mailboxes = mkOption {
-      type = with types; let m = submodule mailboxes; in either (listOf m) (attrsOf m);
+      type = with types; coercedTo
+        (listOf unspecified)
+        (list: listToAttrs (map (entry: { name = entry.name; value = removeAttrs entry ["name"]; }) list))
+        (attrsOf (submodule mailboxes));
       default = {};
-      apply = x:
-        if isList x then warn "Declaring `services.dovecot2.mailboxes' as a list is deprecated and will break eval in 21.03!" x
-        else mapAttrsToList (name: value:
-          if value.name != null
-            then throw ''
-              When specifying dovecot2 mailboxes as attributes, declaring
-              a `name'-attribute is prohibited! The name ${value.name} should
-              be the attribute key!
-            ''
-          else value // { inherit name; }
-        ) x;
       example = literalExample ''
         {
           Spam = { specialUse = "Junk"; auto = "create"; };
@@ -471,6 +464,10 @@ in
 
     environment.systemPackages = [ dovecotPkg ];
 
+    warnings = mkIf (any isList options.services.dovecot2.mailboxes.definitions) [
+      "Declaring `services.dovecot2.mailboxes' as a list is deprecated and will break eval in 21.03! See the release notes for more info for migration."
+    ];
+
     assertions = [
       {
         assertion = intersectLists cfg.protocols [ "pop3" "imap" ] != [];
diff --git a/nixpkgs/nixos/modules/services/mail/mailhog.nix b/nixpkgs/nixos/modules/services/mail/mailhog.nix
index 0f998c6d0ea6..b113f4ff3dec 100644
--- a/nixpkgs/nixos/modules/services/mail/mailhog.nix
+++ b/nixpkgs/nixos/modules/services/mail/mailhog.nix
@@ -4,17 +4,59 @@ with lib;
 
 let
   cfg = config.services.mailhog;
-in {
+
+  args = lib.concatStringsSep " " (
+    [
+      "-api-bind-addr :${toString cfg.apiPort}"
+      "-smtp-bind-addr :${toString cfg.smtpPort}"
+      "-ui-bind-addr :${toString cfg.uiPort}"
+      "-storage ${cfg.storage}"
+    ] ++ lib.optional (cfg.storage == "maildir")
+      "-maildir-path $STATE_DIRECTORY"
+    ++ cfg.extraArgs
+  );
+
+in
+{
   ###### interface
 
+  imports = [
+    (mkRemovedOptionModule [ "services" "mailhog" "user" ] "")
+  ];
+
   options = {
 
     services.mailhog = {
       enable = mkEnableOption "MailHog";
-      user = mkOption {
-        type = types.str;
-        default = "mailhog";
-        description = "User account under which mailhog runs.";
+
+      storage = mkOption {
+        type = types.enum [ "maildir" "memory" ];
+        default = "memory";
+        description = "Store mails on disk or in memory.";
+      };
+
+      apiPort = mkOption {
+        type = types.port;
+        default = 8025;
+        description = "Port on which the API endpoint will listen.";
+      };
+
+      smtpPort = mkOption {
+        type = types.port;
+        default = 1025;
+        description = "Port on which the SMTP endpoint will listen.";
+      };
+
+      uiPort = mkOption {
+        type = types.port;
+        default = 8025;
+        description = "Port on which the HTTP UI will listen.";
+      };
+
+      extraArgs = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = "List of additional arguments to pass to the MailHog process.";
       };
     };
   };
@@ -24,20 +66,16 @@ in {
 
   config = mkIf cfg.enable {
 
-    users.users.mailhog = {
-      name = cfg.user;
-      description = "MailHog service user";
-      isSystemUser = true;
-    };
-
     systemd.services.mailhog = {
-      description = "MailHog service";
+      description = "MailHog - Web and API based SMTP testing";
       after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
       serviceConfig = {
-        Type = "simple";
-        ExecStart = "${pkgs.mailhog}/bin/MailHog";
-        User = cfg.user;
+        Type = "exec";
+        ExecStart = "${pkgs.mailhog}/bin/MailHog ${args}";
+        DynamicUser = true;
+        Restart = "on-failure";
+        StateDirectory = "mailhog";
       };
     };
   };
diff --git a/nixpkgs/nixos/modules/services/mail/mailman.nix b/nixpkgs/nixos/modules/services/mail/mailman.nix
index 81108327d3c7..115730e29d5e 100644
--- a/nixpkgs/nixos/modules/services/mail/mailman.nix
+++ b/nixpkgs/nixos/modules/services/mail/mailman.nix
@@ -6,14 +6,9 @@ let
 
   cfg = config.services.mailman;
 
-  pythonEnv = pkgs.python3.withPackages (ps:
-    [ps.mailman ps.mailman-web]
-    ++ lib.optional cfg.hyperkitty.enable ps.mailman-hyperkitty
-    ++ cfg.extraPythonPackages);
-
   # This deliberately doesn't use recursiveUpdate so users can
   # override the defaults.
-  settings = {
+  webSettings = {
     DEFAULT_FROM_EMAIL = cfg.siteOwner;
     SERVER_EMAIL = cfg.siteOwner;
     ALLOWED_HOSTS = [ "localhost" "127.0.0.1" ] ++ cfg.webHosts;
@@ -29,9 +24,13 @@ let
         level = "INFO";
       };
     };
+    HAYSTACK_CONNECTIONS.default = {
+      ENGINE = "haystack.backends.whoosh_backend.WhooshEngine";
+      PATH = "/var/lib/mailman-web/fulltext-index";
+    };
   } // cfg.webSettings;
 
-  settingsJSON = pkgs.writeText "settings.json" (builtins.toJSON settings);
+  webSettingsJSON = pkgs.writeText "settings.json" (builtins.toJSON webSettings);
 
   # TODO: Should this be RFC42-ised so that users can set additional options without modifying the module?
   mtaConfig = pkgs.writeText "mailman-postfix.cfg" ''
@@ -40,31 +39,7 @@ let
     transport_file_type: hash
   '';
 
-  mailmanCfg = ''
-    [mailman]
-    site_owner: ${cfg.siteOwner}
-    layout: fhs
-
-    [paths.fhs]
-    bin_dir: ${pkgs.python3Packages.mailman}/bin
-    var_dir: /var/lib/mailman
-    queue_dir: $var_dir/queue
-    template_dir: $var_dir/templates
-    log_dir: /var/log/mailman
-    lock_dir: $var_dir/lock
-    etc_dir: /etc
-    ext_dir: $etc_dir/mailman.d
-    pid_file: /run/mailman/master.pid
-
-    [mta]
-    configuration: ${mtaConfig}
-  '' + optionalString cfg.hyperkitty.enable ''
-
-    [archiver.hyperkitty]
-    class: mailman_hyperkitty.Archiver
-    enable: yes
-    configuration: /var/lib/mailman/mailman-hyperkitty.cfg
-  '' + cfg.extraConfig;
+  mailmanCfg = (lib.generators.toINI {} cfg.settings) + cfg.extraConfig;
 
   mailmanHyperkittyCfg = pkgs.writeText "mailman-hyperkitty.cfg" ''
     [general]
@@ -154,6 +129,12 @@ in {
         enable = mkEnableOption "Automatic nginx and uwsgi setup for mailman-web";
       };
 
+      settings = mkOption {
+        description = "Settings for mailman.cfg";
+        type = types.attrsOf (types.attrsOf types.str);
+        default = {};
+      };
+
       hyperkitty = {
         enable = mkEnableOption "the Hyperkitty archiver for Mailman";
 
@@ -180,6 +161,35 @@ in {
 
   config = mkIf cfg.enable {
 
+    services.mailman.settings = {
+      mailman.site_owner = lib.mkDefault cfg.siteOwner;
+      mailman.layout = "fhs";
+
+      "paths.fhs" = {
+        bin_dir = "${pkgs.python3Packages.mailman}/bin";
+        var_dir = "/var/lib/mailman";
+        queue_dir = "$var_dir/queue";
+        template_dir = "$var_dir/templates";
+        log_dir = "/var/log/mailman";
+        lock_dir = "$var_dir/lock";
+        etc_dir = "/etc";
+        ext_dir = "$etc_dir/mailman.d";
+        pid_file = "/run/mailman/master.pid";
+      };
+
+      mta.configuration = lib.mkDefault "${mtaConfig}";
+
+      "archiver.hyperkitty" = lib.mkIf cfg.hyperkitty.enable {
+        class = "mailman_hyperkitty.Archiver";
+        enable = "yes";
+        configuration = "/var/lib/mailman/mailman-hyperkitty.cfg";
+      };
+    } // (let
+      loggerNames = ["root" "archiver" "bounce" "config" "database" "debug" "error" "fromusenet" "http" "locks" "mischief" "plugins" "runner" "smtp"];
+      loggerSectionNames = map (n: "logging.${n}") loggerNames;
+      in lib.genAttrs loggerSectionNames(name: { handler = "stderr"; })
+    );
+
     assertions = let
       inherit (config.services) postfix;
 
@@ -230,7 +240,7 @@ in {
 
       import json
 
-      with open('${settingsJSON}') as f:
+      with open('${webSettingsJSON}') as f:
           globals().update(json.load(f))
 
       with open('/var/lib/mailman-web/settings_local.json') as f:
@@ -243,7 +253,7 @@ in {
         serverAliases = cfg.webHosts;
         locations = {
           "/".extraConfig = "uwsgi_pass unix:/run/mailman-web.socket;";
-          "/static/".alias = settings.STATIC_ROOT + "/";
+          "/static/".alias = webSettings.STATIC_ROOT + "/";
         };
       };
     };
@@ -332,7 +342,7 @@ in {
         requiredBy = [ "mailman-uwsgi.service" ];
         restartTriggers = [ config.environment.etc."mailman3/settings.py".source ];
         script = ''
-          [[ -e "${settings.STATIC_ROOT}" ]] && find "${settings.STATIC_ROOT}/" -mindepth 1 -delete
+          [[ -e "${webSettings.STATIC_ROOT}" ]] && find "${webSettings.STATIC_ROOT}/" -mindepth 1 -delete
           ${pkgs.mailman-web}/bin/mailman-web migrate
           ${pkgs.mailman-web}/bin/mailman-web collectstatic
           ${pkgs.mailman-web}/bin/mailman-web compress
diff --git a/nixpkgs/nixos/modules/services/mail/opendkim.nix b/nixpkgs/nixos/modules/services/mail/opendkim.nix
index eb6a426684d4..9bf6f338d93e 100644
--- a/nixpkgs/nixos/modules/services/mail/opendkim.nix
+++ b/nixpkgs/nixos/modules/services/mail/opendkim.nix
@@ -129,6 +129,36 @@ in {
         User = cfg.user;
         Group = cfg.group;
         RuntimeDirectory = optional (cfg.socket == defaultSock) "opendkim";
+        StateDirectory = "opendkim";
+        StateDirectoryMode = "0700";
+        ReadWritePaths = [ cfg.keyPath ];
+
+        AmbientCapabilities = [];
+        CapabilityBoundingSet = [];
+        DevicePolicy = "closed";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateMounts = true;
+        PrivateTmp = true;
+        PrivateUsers = true;
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectSystem = "strict";
+        RemoveIPC = true;
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6 AF_UNIX" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SystemCallArchitectures = "native";
+        SystemCallFilter = [ "@system-service" "~@privileged @resources" ];
+        UMask = "0077";
       };
     };
 
diff --git a/nixpkgs/nixos/modules/services/mail/pfix-srsd.nix b/nixpkgs/nixos/modules/services/mail/pfix-srsd.nix
index 38984f896d6a..e3dbf2a014f0 100644
--- a/nixpkgs/nixos/modules/services/mail/pfix-srsd.nix
+++ b/nixpkgs/nixos/modules/services/mail/pfix-srsd.nix
@@ -53,4 +53,4 @@ with lib;
       };
     };
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/nixos/modules/services/mail/postfix.nix b/nixpkgs/nixos/modules/services/mail/postfix.nix
index 608f64a68fb0..fd4d16cdc37b 100644
--- a/nixpkgs/nixos/modules/services/mail/postfix.nix
+++ b/nixpkgs/nixos/modules/services/mail/postfix.nix
@@ -25,6 +25,8 @@ let
 
   clientRestrictions = concatStringsSep ", " (clientAccess ++ dnsBl);
 
+  smtpTlsSecurityLevel = if cfg.useDane then "dane" else "may";
+
   mainCf = let
     escape = replaceStrings ["$"] ["$$"];
     mkList = items: "\n  " + concatStringsSep ",\n  " items;
@@ -280,6 +282,17 @@ in
         description = "Whether to enable smtp submission.";
       };
 
+      enableSubmissions = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to enable smtp submission via smtps.
+
+          According to RFC 8314 this should be preferred
+          over STARTTLS for submission of messages by end user clients.
+        '';
+      };
+
       submissionOptions = mkOption {
         type = types.attrs;
         default = {
@@ -298,6 +311,29 @@ in
         description = "Options for the submission config in master.cf";
       };
 
+      submissionsOptions = mkOption {
+        type = types.attrs;
+        default = {
+          smtpd_sasl_auth_enable = "yes";
+          smtpd_client_restrictions = "permit_sasl_authenticated,reject";
+          milter_macro_daemon_name = "ORIGINATING";
+        };
+        example = {
+          smtpd_sasl_auth_enable = "yes";
+          smtpd_sasl_type = "dovecot";
+          smtpd_client_restrictions = "permit_sasl_authenticated,reject";
+          milter_macro_daemon_name = "ORIGINATING";
+        };
+        description = ''
+          Options for the submission config via smtps in master.cf.
+
+          smtpd_tls_security_level will be set to encrypt, if it is missing
+          or has one of the values "may" or "none".
+
+          smtpd_tls_wrappermode with value "yes" will be added automatically.
+        '';
+      };
+
       setSendmail = mkOption {
         type = types.bool;
         default = true;
@@ -454,7 +490,7 @@ in
         '';
         example = {
           mail_owner = "postfix";
-          smtp_use_tls = true;
+          smtp_tls_security_level = "may";
         };
       };
 
@@ -466,16 +502,26 @@ in
         ";
       };
 
-      sslCert = mkOption {
+      tlsTrustedAuthorities = mkOption {
         type = types.str;
-        default = "";
-        description = "SSL certificate to use.";
+        default = "${pkgs.cacert}/etc/ssl/certs/ca-bundle.crt";
+        description = ''
+          File containing trusted certification authorities (CA) to verify certificates of mailservers contacted for mail delivery. This basically sets smtp_tls_CAfile and enables opportunistic tls. Defaults to NixOS trusted certification authorities.
+        '';
+      };
+
+      useDane = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Sets smtp_tls_security_level to "dane" rather than "may". See postconf(5) for details.
+        '';
       };
 
-      sslCACert = mkOption {
+      sslCert = mkOption {
         type = types.str;
         default = "";
-        description = "SSL certificate of CA.";
+        description = "SSL certificate to use.";
       };
 
       sslKey = mkOption {
@@ -771,18 +817,20 @@ in
         recipient_canonical_classes = [ "envelope_recipient" ];
       }
       // optionalAttrs cfg.enableHeaderChecks { header_checks = [ "regexp:/etc/postfix/header_checks" ]; }
+      // optionalAttrs (cfg.tlsTrustedAuthorities != "") {
+        smtp_tls_CAfile = cfg.tlsTrustedAuthorities;
+        smtp_tls_security_level = smtpTlsSecurityLevel;
+      }
       // optionalAttrs (cfg.sslCert != "") {
-        smtp_tls_CAfile = cfg.sslCACert;
         smtp_tls_cert_file = cfg.sslCert;
         smtp_tls_key_file = cfg.sslKey;
 
-        smtp_use_tls = true;
+        smtp_tls_security_level = smtpTlsSecurityLevel;
 
-        smtpd_tls_CAfile = cfg.sslCACert;
         smtpd_tls_cert_file = cfg.sslCert;
         smtpd_tls_key_file = cfg.sslKey;
 
-        smtpd_use_tls = true;
+        smtpd_tls_security_level = "may";
       };
 
       services.postfix.masterConfig = {
@@ -878,6 +926,23 @@ in
           command = "smtp";
           args = [ "-o" "smtp_fallback_relay=" ];
         };
+      } // optionalAttrs cfg.enableSubmissions {
+        submissions = {
+          type = "inet";
+          private = false;
+          command = "smtpd";
+          args = let
+            mkKeyVal = opt: val: [ "-o" (opt + "=" + val) ];
+            adjustSmtpTlsSecurityLevel = !(cfg.submissionsOptions ? smtpd_tls_security_level) ||
+                                      cfg.submissionsOptions.smtpd_tls_security_level == "none" ||
+                                      cfg.submissionsOptions.smtpd_tls_security_level == "may";
+            submissionsOptions = cfg.submissionsOptions // {
+              smtpd_tls_wrappermode = "yes";
+            } // optionalAttrs adjustSmtpTlsSecurityLevel {
+              smtpd_tls_security_level = "encrypt";
+            };
+          in concatLists (mapAttrsToList mkKeyVal submissionsOptions);
+        };
       };
     }
 
@@ -900,4 +965,9 @@ in
       services.postfix.mapFiles.client_access = checkClientAccessFile;
     })
   ]);
+
+  imports = [
+   (mkRemovedOptionModule [ "services" "postfix" "sslCACert" ]
+     "services.postfix.sslCACert was replaced by services.postfix.tlsTrustedAuthorities. In case you intend that your server should validate requested client certificates use services.postfix.extraConfig.")
+  ];
 }
diff --git a/nixpkgs/nixos/modules/services/mail/roundcube.nix b/nixpkgs/nixos/modules/services/mail/roundcube.nix
index ed1439745ac9..a0bbab64985b 100644
--- a/nixpkgs/nixos/modules/services/mail/roundcube.nix
+++ b/nixpkgs/nixos/modules/services/mail/roundcube.nix
@@ -95,6 +95,18 @@ in
       '';
     };
 
+    maxAttachmentSize = mkOption {
+      type = types.int;
+      default = 18;
+      description = ''
+        The maximum attachment size in MB.
+
+        Note: Since roundcube only uses 70% of max upload values configured in php
+        30% is added automatically to <xref linkend="opt-services.roundcube.maxAttachmentSize"/>.
+      '';
+      apply = configuredMaxAttachmentSize: "${toString (configuredMaxAttachmentSize * 1.3)}M";
+    };
+
     extraConfig = mkOption {
       type = types.lines;
       default = "";
@@ -115,7 +127,7 @@ in
       $config = array();
       $config['db_dsnw'] = 'pgsql://${cfg.database.username}${lib.optionalString (!localDB) ":' . $password . '"}@${if localDB then "unix(/run/postgresql)" else cfg.database.host}/${cfg.database.dbname}';
       $config['log_driver'] = 'syslog';
-      $config['max_message_size'] = '25M';
+      $config['max_message_size'] =  '${cfg.maxAttachmentSize}';
       $config['plugins'] = [${concatMapStringsSep "," (p: "'${p}'") cfg.plugins}];
       $config['des_key'] = file_get_contents('/var/lib/roundcube/des_key');
       $config['mime_types'] = '${pkgs.nginx}/conf/mime.types';
@@ -172,8 +184,8 @@ in
       phpOptions = ''
         error_log = 'stderr'
         log_errors = on
-        post_max_size = 25M
-        upload_max_filesize = 25M
+        post_max_size = ${cfg.maxAttachmentSize}
+        upload_max_filesize = ${cfg.maxAttachmentSize}
       '';
       settings = mapAttrs (name: mkDefault) {
         "listen.owner" = "nginx";
diff --git a/nixpkgs/nixos/modules/services/misc/beanstalkd.nix b/nixpkgs/nixos/modules/services/misc/beanstalkd.nix
index bcd133c97411..1c674a5b23bf 100644
--- a/nixpkgs/nixos/modules/services/misc/beanstalkd.nix
+++ b/nixpkgs/nixos/modules/services/misc/beanstalkd.nix
@@ -28,6 +28,12 @@ in
           example = "0.0.0.0";
         };
       };
+
+      openFirewall = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Whether to open ports in the firewall for the server.";
+      };
     };
   };
 
@@ -35,6 +41,10 @@ in
 
   config = mkIf cfg.enable {
 
+    networking.firewall = mkIf cfg.openFirewall {
+      allowedTCPPorts = [ cfg.listen.port ];
+    };
+
     environment.systemPackages = [ pkg ];
 
     systemd.services.beanstalkd = {
diff --git a/nixpkgs/nixos/modules/services/misc/calibre-server.nix b/nixpkgs/nixos/modules/services/misc/calibre-server.nix
index 84c04f403d3a..2467d34b524a 100644
--- a/nixpkgs/nixos/modules/services/misc/calibre-server.nix
+++ b/nixpkgs/nixos/modules/services/misc/calibre-server.nix
@@ -9,24 +9,42 @@ let
 in
 
 {
+  imports = [
+    (mkChangedOptionModule [ "services" "calibre-server" "libraryDir" ] [ "services" "calibre-server" "libraries" ]
+      (config:
+        let libraryDir = getAttrFromPath [ "services" "calibre-server" "libraryDir" ] config;
+        in [ libraryDir ]
+      )
+    )
+  ];
 
   ###### interface
 
   options = {
-
     services.calibre-server = {
 
       enable = mkEnableOption "calibre-server";
 
-      libraryDir = mkOption {
+      libraries = mkOption {
         description = ''
-          The directory where the Calibre library to serve is.
-          '';
-          type = types.path;
+          The directories of the libraries to serve. They must be readable for the user under which the server runs.
+        '';
+        type = types.listOf types.path;
       };
 
-    };
+      user = mkOption {
+        description = "The user under which calibre-server runs.";
+        type = types.str;
+        default = "calibre-server";
+      };
+
+      group = mkOption {
+        description = "The group under which calibre-server runs.";
+        type = types.str;
+        default = "calibre-server";
+      };
 
+    };
   };
 
 
@@ -34,29 +52,34 @@ in
 
   config = mkIf cfg.enable {
 
-    systemd.services.calibre-server =
-      {
+    systemd.services.calibre-server = {
         description = "Calibre Server";
         after = [ "network.target" ];
         wantedBy = [ "multi-user.target" ];
         serviceConfig = {
-          User = "calibre-server";
+          User = cfg.user;
           Restart = "always";
-          ExecStart = "${pkgs.calibre}/bin/calibre-server ${cfg.libraryDir}";
+          ExecStart = "${pkgs.calibre}/bin/calibre-server ${lib.concatStringsSep " " cfg.libraries}";
         };
 
       };
 
     environment.systemPackages = [ pkgs.calibre ];
 
-    users.users.calibre-server = {
+    users.users = optionalAttrs (cfg.user == "calibre-server") {
+      calibre-server = {
+        home = "/var/lib/calibre-server";
+        createHome = true;
         uid = config.ids.uids.calibre-server;
-        group = "calibre-server";
+        group = cfg.group;
       };
+    };
 
-    users.groups.calibre-server = {
+    users.groups = optionalAttrs (cfg.group == "calibre-server") {
+      calibre-server = {
         gid = config.ids.gids.calibre-server;
       };
+    };
 
   };
 
diff --git a/nixpkgs/nixos/modules/services/misc/gammu-smsd.nix b/nixpkgs/nixos/modules/services/misc/gammu-smsd.nix
index 3057d7fd1a09..552725f1384d 100644
--- a/nixpkgs/nixos/modules/services/misc/gammu-smsd.nix
+++ b/nixpkgs/nixos/modules/services/misc/gammu-smsd.nix
@@ -172,7 +172,7 @@ in {
           };
 
           database = mkOption {
-            type = types.str;
+            type = types.nullOr types.str;
             default = null;
             description = "Database name to store sms data";
           };
diff --git a/nixpkgs/nixos/modules/services/misc/gitea.nix b/nixpkgs/nixos/modules/services/misc/gitea.nix
index f8bcedc94fe2..af80e99746be 100644
--- a/nixpkgs/nixos/modules/services/misc/gitea.nix
+++ b/nixpkgs/nixos/modules/services/misc/gitea.nix
@@ -162,6 +162,45 @@ in
             <manvolnum>7</manvolnum></citerefentry>.
           '';
         };
+
+        backupDir = mkOption {
+          type = types.str;
+          default = "${cfg.stateDir}/dump";
+          description = "Path to the dump files.";
+        };
+      };
+
+      ssh = {
+        enable = mkOption {
+          type = types.bool;
+          default = true;
+          description = "Enable external SSH feature.";
+        };
+
+        clonePort = mkOption {
+          type = types.int;
+          default = 22;
+          example = 2222;
+          description = ''
+            SSH port displayed in clone URL.
+            The option is required to configure a service when the external visible port
+            differs from the local listening port i.e. if port forwarding is used.
+          '';
+        };
+      };
+
+      lfs = {
+        enable = mkOption {
+          type = types.bool;
+          default = false;
+          description = "Enables git-lfs support.";
+        };
+
+        contentDir = mkOption {
+          type = types.str;
+          default = "${cfg.stateDir}/data/lfs";
+          description = "Where to store LFS files.";
+        };
       };
 
       appName = mkOption {
@@ -200,6 +239,12 @@ in
         description = "HTTP listen port.";
       };
 
+      enableUnixSocket = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Configure Gitea to listen on a unix socket instead of the default TCP port.";
+      };
+
       cookieSecure = mkOption {
         type = types.bool;
         default = false;
@@ -300,14 +345,34 @@ in
         ROOT = cfg.repositoryRoot;
       };
 
-      server = {
-        DOMAIN = cfg.domain;
-        HTTP_ADDR = cfg.httpAddress;
-        HTTP_PORT = cfg.httpPort;
-        ROOT_URL = cfg.rootUrl;
-        STATIC_ROOT_PATH = cfg.staticRootPath;
-        LFS_JWT_SECRET = "#jwtsecret#";
-      };
+      server = mkMerge [
+        {
+          DOMAIN = cfg.domain;
+          STATIC_ROOT_PATH = cfg.staticRootPath;
+          LFS_JWT_SECRET = "#jwtsecret#";
+          ROOT_URL = cfg.rootUrl;
+        }
+        (mkIf cfg.enableUnixSocket {
+          PROTOCOL = "unix";
+          HTTP_ADDR = "/run/gitea/gitea.sock";
+        })
+        (mkIf (!cfg.enableUnixSocket) {
+          HTTP_ADDR = cfg.httpAddress;
+          HTTP_PORT = cfg.httpPort;
+        })
+        (mkIf cfg.ssh.enable {
+          DISABLE_SSH = false;
+          SSH_PORT = cfg.ssh.clonePort;
+        })
+        (mkIf (!cfg.ssh.enable) {
+          DISABLE_SSH = true;
+        })
+        (mkIf cfg.lfs.enable {
+          LFS_START_SERVER = true;
+          LFS_CONTENT_PATH = cfg.lfs.contentDir;
+        })
+
+      ];
 
       session = {
         COOKIE_NAME = "session";
@@ -357,12 +422,26 @@ in
     };
 
     systemd.tmpfiles.rules = [
-      "d '${cfg.stateDir}' - ${cfg.user} gitea - -"
-      "d '${cfg.stateDir}/conf' - ${cfg.user} gitea - -"
-      "d '${cfg.stateDir}/custom' - ${cfg.user} gitea - -"
-      "d '${cfg.stateDir}/custom/conf' - ${cfg.user} gitea - -"
-      "d '${cfg.stateDir}/log' - ${cfg.user} gitea - -"
-      "d '${cfg.repositoryRoot}' - ${cfg.user} gitea - -"
+      "d '${cfg.dump.backupDir}' 0750 ${cfg.user} gitea - -"
+      "z '${cfg.dump.backupDir}' 0750 ${cfg.user} gitea - -"
+      "Z '${cfg.dump.backupDir}' - ${cfg.user} gitea - -"
+      "d '${cfg.lfs.contentDir}' 0750 ${cfg.user} gitea - -"
+      "z '${cfg.lfs.contentDir}' 0750 ${cfg.user} gitea - -"
+      "Z '${cfg.lfs.contentDir}' - ${cfg.user} gitea - -"
+      "d '${cfg.repositoryRoot}' 0750 ${cfg.user} gitea - -"
+      "z '${cfg.repositoryRoot}' 0750 ${cfg.user} gitea - -"
+      "Z '${cfg.repositoryRoot}' - ${cfg.user} gitea - -"
+      "d '${cfg.stateDir}' 0750 ${cfg.user} gitea - -"
+      "d '${cfg.stateDir}/conf' 0750 ${cfg.user} gitea - -"
+      "d '${cfg.stateDir}/custom' 0750 ${cfg.user} gitea - -"
+      "d '${cfg.stateDir}/custom/conf' 0750 ${cfg.user} gitea - -"
+      "d '${cfg.stateDir}/log' 0750 ${cfg.user} gitea - -"
+      "z '${cfg.stateDir}' 0750 ${cfg.user} gitea - -"
+      "z '${cfg.stateDir}/.ssh' 0700 ${cfg.user} gitea - -"
+      "z '${cfg.stateDir}/conf' 0750 ${cfg.user} gitea - -"
+      "z '${cfg.stateDir}/custom' 0750 ${cfg.user} gitea - -"
+      "z '${cfg.stateDir}/custom/conf' 0750 ${cfg.user} gitea - -"
+      "z '${cfg.stateDir}/log' 0750 ${cfg.user} gitea - -"
       "Z '${cfg.stateDir}' - ${cfg.user} gitea - -"
 
       # If we have a folder or symlink with gitea locales, remove it
@@ -431,28 +510,39 @@ in
         User = cfg.user;
         Group = "gitea";
         WorkingDirectory = cfg.stateDir;
-        ExecStart = "${gitea}/bin/gitea web";
+        ExecStart = "${gitea}/bin/gitea web --pid /run/gitea/gitea.pid";
         Restart = "always";
-
-        # Filesystem
+        # Runtime directory and mode
+        RuntimeDirectory = "gitea";
+        RuntimeDirectoryMode = "0755";
+        # Access write directories
+        ReadWritePaths = [ cfg.dump.backupDir cfg.repositoryRoot cfg.stateDir cfg.lfs.contentDir ];
+        UMask = "0027";
+        # Capabilities
+        CapabilityBoundingSet = "";
+        # Security
+        NoNewPrivileges = true;
+        # Sandboxing
+        ProtectSystem = "strict";
         ProtectHome = true;
+        PrivateTmp = true;
         PrivateDevices = true;
+        PrivateUsers = true;
+        ProtectHostname = true;
+        ProtectClock = true;
         ProtectKernelTunables = true;
         ProtectKernelModules = true;
+        ProtectKernelLogs = true;
         ProtectControlGroups = true;
-        ReadWritePaths = cfg.stateDir;
-        # Caps
-        CapabilityBoundingSet = "";
-        NoNewPrivileges = true;
-        # Misc.
+        RestrictAddressFamilies = [ "AF_UNIX AF_INET AF_INET6" ];
         LockPersonality = true;
+        MemoryDenyWriteExecute = true;
         RestrictRealtime = true;
+        RestrictSUIDSGID = true;
         PrivateMounts = true;
-        PrivateUsers = true;
-        MemoryDenyWriteExecute = true;
-        SystemCallFilter = "~@clock @cpu-emulation @debug @keyring @memlock @module @mount @obsolete @raw-io @reboot @resources @setuid @swap";
+        # System Call Filtering
         SystemCallArchitectures = "native";
-        RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6";
+        SystemCallFilter = "~@clock @cpu-emulation @debug @keyring @memlock @module @mount @obsolete @raw-io @reboot @resources @setuid @swap";
       };
 
       environment = {
@@ -504,7 +594,7 @@ in
          Type = "oneshot";
          User = cfg.user;
          ExecStart = "${gitea}/bin/gitea dump";
-         WorkingDirectory = cfg.stateDir;
+         WorkingDirectory = cfg.dump.backupDir;
        };
     };
 
diff --git a/nixpkgs/nixos/modules/services/misc/gitlab.nix b/nixpkgs/nixos/modules/services/misc/gitlab.nix
index 1ada131bd7ba..9896b8023e44 100644
--- a/nixpkgs/nixos/modules/services/misc/gitlab.nix
+++ b/nixpkgs/nixos/modules/services/misc/gitlab.nix
@@ -54,7 +54,7 @@ let
     '') gitlabConfig.production.repositories.storages))}
   '';
 
-  gitlabShellConfig = {
+  gitlabShellConfig = flip recursiveUpdate cfg.extraShellConfig {
     user = cfg.user;
     gitlab_url = "http+unix://${pathUrlQuote gitlabSocket}";
     http_settings.self_signed_cert = false;
@@ -71,7 +71,7 @@ let
     };
   };
 
-  redisConfig.production.url = "redis://localhost:6379/";
+  redisConfig.production.url = cfg.redisUrl;
 
   gitlabConfig = {
     # These are the default settings from config/gitlab.example.yml
@@ -311,6 +311,12 @@ in {
         description = "Extra configuration in config/database.yml.";
       };
 
+      redisUrl = mkOption {
+        type = types.str;
+        default = "redis://localhost:6379/";
+        description = "Redis URL for all GitLab services except gitlab-shell";
+      };
+
       extraGitlabRb = mkOption {
         type = types.str;
         default = "";
@@ -511,6 +517,12 @@ in {
         '';
       };
 
+      extraShellConfig = mkOption {
+        type = types.attrs;
+        default = {};
+        description = "Extra configuration to merge into shell-config.yml";
+      };
+
       extraConfig = mkOption {
         type = types.attrs;
         default = {};
@@ -612,26 +624,38 @@ in {
       enable = true;
       ensureUsers = singleton { name = cfg.databaseUsername; };
     };
+
     # The postgresql module doesn't currently support concepts like
     # objects owners and extensions; for now we tack on what's needed
     # here.
-    systemd.services.postgresql.postStart = mkAfter (optionalString databaseActuallyCreateLocally ''
-      set -eu
-
-      $PSQL -tAc "SELECT 1 FROM pg_database WHERE datname = '${cfg.databaseName}'" | grep -q 1 || $PSQL -tAc 'CREATE DATABASE "${cfg.databaseName}" OWNER "${cfg.databaseUsername}"'
-      current_owner=$($PSQL -tAc "SELECT pg_catalog.pg_get_userbyid(datdba) FROM pg_catalog.pg_database WHERE datname = '${cfg.databaseName}'")
-      if [[ "$current_owner" != "${cfg.databaseUsername}" ]]; then
-          $PSQL -tAc 'ALTER DATABASE "${cfg.databaseName}" OWNER TO "${cfg.databaseUsername}"'
-          if [[ -e "${config.services.postgresql.dataDir}/.reassigning_${cfg.databaseName}" ]]; then
-              echo "Reassigning ownership of database ${cfg.databaseName} to user ${cfg.databaseUsername} failed on last boot. Failing..."
-              exit 1
-          fi
-          touch "${config.services.postgresql.dataDir}/.reassigning_${cfg.databaseName}"
-          $PSQL "${cfg.databaseName}" -tAc "REASSIGN OWNED BY \"$current_owner\" TO \"${cfg.databaseUsername}\""
-          rm "${config.services.postgresql.dataDir}/.reassigning_${cfg.databaseName}"
-      fi
-      $PSQL '${cfg.databaseName}' -tAc "CREATE EXTENSION IF NOT EXISTS pg_trgm"
-    '');
+    systemd.services.gitlab-postgresql = let pgsql = config.services.postgresql; in mkIf databaseActuallyCreateLocally {
+      after = [ "postgresql.service" ];
+      wantedBy = [ "multi-user.target" ];
+      path = [ pgsql.package ];
+      script = ''
+        set -eu
+
+        PSQL="${pkgs.utillinux}/bin/runuser -u ${pgsql.superUser} -- psql --port=${toString pgsql.port}"
+
+        $PSQL -tAc "SELECT 1 FROM pg_database WHERE datname = '${cfg.databaseName}'" | grep -q 1 || $PSQL -tAc 'CREATE DATABASE "${cfg.databaseName}" OWNER "${cfg.databaseUsername}"'
+        current_owner=$($PSQL -tAc "SELECT pg_catalog.pg_get_userbyid(datdba) FROM pg_catalog.pg_database WHERE datname = '${cfg.databaseName}'")
+        if [[ "$current_owner" != "${cfg.databaseUsername}" ]]; then
+            $PSQL -tAc 'ALTER DATABASE "${cfg.databaseName}" OWNER TO "${cfg.databaseUsername}"'
+            if [[ -e "${config.services.postgresql.dataDir}/.reassigning_${cfg.databaseName}" ]]; then
+                echo "Reassigning ownership of database ${cfg.databaseName} to user ${cfg.databaseUsername} failed on last boot. Failing..."
+                exit 1
+            fi
+            touch "${config.services.postgresql.dataDir}/.reassigning_${cfg.databaseName}"
+            $PSQL "${cfg.databaseName}" -tAc "REASSIGN OWNED BY \"$current_owner\" TO \"${cfg.databaseUsername}\""
+            rm "${config.services.postgresql.dataDir}/.reassigning_${cfg.databaseName}"
+        fi
+        $PSQL '${cfg.databaseName}' -tAc "CREATE EXTENSION IF NOT EXISTS pg_trgm"
+      '';
+
+      serviceConfig = {
+        Type = "oneshot";
+      };
+    };
 
     # Use postfix to send out mails.
     services.postfix.enable = mkDefault true;
@@ -678,7 +702,6 @@ in {
       "L+ /run/gitlab/shell-config.yml - - - - ${pkgs.writeText "config.yml" (builtins.toJSON gitlabShellConfig)}"
 
       "L+ ${cfg.statePath}/config/unicorn.rb - - - - ${./defaultUnicornConfig.rb}"
-      "L+ ${cfg.statePath}/config/initializers/extra-gitlab.rb - - - - ${extraGitlabRb}"
     ];
 
     systemd.services.gitlab-sidekiq = {
@@ -704,7 +727,7 @@ in {
         TimeoutSec = "infinity";
         Restart = "on-failure";
         WorkingDirectory = "${cfg.packages.gitlab}/share/gitlab";
-        ExecStart="${cfg.packages.gitlab.rubyEnv}/bin/sidekiq -C \"${cfg.packages.gitlab}/share/gitlab/config/sidekiq_queues.yml\" -e production -P ${cfg.statePath}/tmp/sidekiq.pid";
+        ExecStart="${cfg.packages.gitlab.rubyEnv}/bin/sidekiq -C \"${cfg.packages.gitlab}/share/gitlab/config/sidekiq_queues.yml\" -e production";
       };
     };
 
@@ -760,8 +783,25 @@ in {
       };
     };
 
+    systemd.services.gitlab-mailroom = mkIf (gitlabConfig.production.incoming_email.enabled or false) {
+      description = "GitLab incoming mail daemon";
+      after = [ "network.target" "redis.service" "gitlab.service" ]; # gitlab.service creates configs
+      wantedBy = [ "multi-user.target" ];
+      environment = gitlabEnv;
+      serviceConfig = {
+        Type = "simple";
+        TimeoutSec = "infinity";
+        Restart = "on-failure";
+
+        User = cfg.user;
+        Group = cfg.group;
+        ExecStart = "${cfg.packages.gitlab.rubyEnv}/bin/bundle exec mail_room -c ${cfg.packages.gitlab}/share/gitlab/config.dist/mail_room.yml";
+        WorkingDirectory = gitlabEnv.HOME;
+      };
+    };
+
     systemd.services.gitlab = {
-      after = [ "gitlab-workhorse.service" "gitaly.service" "network.target" "postgresql.service" "redis.service" ];
+      after = [ "gitlab-workhorse.service" "gitaly.service" "network.target" "gitlab-postgresql.service" "redis.service" ];
       requires = [ "gitlab-sidekiq.service" ];
       wantedBy = [ "multi-user.target" ];
       environment = gitlabEnv;
@@ -798,6 +838,7 @@ in {
             rm -f ${cfg.statePath}/lib
             cp -rf --no-preserve=mode ${cfg.packages.gitlab}/share/gitlab/config.dist/* ${cfg.statePath}/config
             cp -rf --no-preserve=mode ${cfg.packages.gitlab}/share/gitlab/db/* ${cfg.statePath}/db
+            ln -sf ${extraGitlabRb} ${cfg.statePath}/config/initializers/extra-gitlab.rb
 
             ${cfg.packages.gitlab-shell}/bin/install
 
diff --git a/nixpkgs/nixos/modules/services/misc/gitlab.xml b/nixpkgs/nixos/modules/services/misc/gitlab.xml
index b6171a9a194c..19a3df0a5f66 100644
--- a/nixpkgs/nixos/modules/services/misc/gitlab.xml
+++ b/nixpkgs/nixos/modules/services/misc/gitlab.xml
@@ -98,6 +98,12 @@ services.gitlab = {
   </para>
 
   <para>
+    When <literal>icoming_mail.enabled</literal> is set to <literal>true</literal>
+    in <link linkend="opt-services.gitlab.extraConfig">extraConfig</link> an additional
+    service called <literal>gitlab-mailroom</literal> is enabled for fetching incoming mail.
+  </para>
+
+  <para>
    Refer to <xref linkend="ch-options" /> for all available configuration
    options for the
    <link linkend="opt-services.gitlab.enable">services.gitlab</link> module.
diff --git a/nixpkgs/nixos/modules/services/misc/gitolite.nix b/nixpkgs/nixos/modules/services/misc/gitolite.nix
index cc69f81bbcc4..59cbdac319c8 100644
--- a/nixpkgs/nixos/modules/services/misc/gitolite.nix
+++ b/nixpkgs/nixos/modules/services/misc/gitolite.nix
@@ -27,7 +27,10 @@ in
         type = types.str;
         default = "/var/lib/gitolite";
         description = ''
-          Gitolite home directory (used to store all the repositories).
+          The gitolite home directory used to store all repositories. If left as the default value
+          this directory will automatically be created before the gitolite server starts, otherwise
+          the sysadmin is responsible for ensuring the directory exists with appropriate ownership
+          and permissions.
         '';
       };
 
@@ -149,14 +152,6 @@ in
     };
     users.groups.${cfg.group}.gid = config.ids.gids.gitolite;
 
-    systemd.tmpfiles.rules = [
-      "d '${cfg.dataDir}' 0750 ${cfg.user} ${cfg.group} - -"
-      "d '${cfg.dataDir}'/.gitolite - ${cfg.user} ${cfg.group} - -"
-      "d '${cfg.dataDir}'/.gitolite/logs - ${cfg.user} ${cfg.group} - -"
-
-      "Z ${cfg.dataDir} 0750 ${cfg.user} ${cfg.group} - -"
-    ];
-
     systemd.services.gitolite-init = {
       description = "Gitolite initialization";
       wantedBy    = [ "multi-user.target" ];
@@ -167,13 +162,19 @@ in
         GITOLITE_RC_DEFAULT = "${rcDir}/gitolite.rc.default";
       };
 
-      serviceConfig = {
-        Type = "oneshot";
-        User = cfg.user;
-        Group = cfg.group;
-        WorkingDirectory = "~";
-        RemainAfterExit = true;
-      };
+      serviceConfig = mkMerge [
+        (mkIf (cfg.dataDir == "/var/lib/gitolite") {
+          StateDirectory = "gitolite gitolite/.gitolite gitolite/.gitolite/logs";
+          StateDirectoryMode = "0750";
+        })
+        {
+          Type = "oneshot";
+          User = cfg.user;
+          Group = cfg.group;
+          WorkingDirectory = "~";
+          RemainAfterExit = true;
+        }
+      ];
 
       path = [ pkgs.gitolite pkgs.git pkgs.perl pkgs.bash pkgs.diffutils config.programs.ssh.package ];
       script =
diff --git a/nixpkgs/nixos/modules/services/misc/gollum.nix b/nixpkgs/nixos/modules/services/misc/gollum.nix
index f4a9c72b1545..0c9c7548305b 100644
--- a/nixpkgs/nixos/modules/services/misc/gollum.nix
+++ b/nixpkgs/nixos/modules/services/misc/gollum.nix
@@ -50,6 +50,12 @@ in
       description = "Parse and interpret emoji tags";
     };
 
+    h1-title = mkOption {
+      type = types.bool;
+      default = false;
+      description = "Use the first h1 as page title";
+    };
+
     branch = mkOption {
       type = types.str;
       default = "master";
@@ -98,10 +104,11 @@ in
           ${pkgs.gollum}/bin/gollum \
             --port ${toString cfg.port} \
             --host ${cfg.address} \
-            --config ${builtins.toFile "gollum-config.rb" cfg.extraConfig} \
+            --config ${pkgs.writeText "gollum-config.rb" cfg.extraConfig} \
             --ref ${cfg.branch} \
             ${optionalString cfg.mathjax "--mathjax"} \
             ${optionalString cfg.emoji "--emoji"} \
+            ${optionalString cfg.h1-title "--h1-title"} \
             ${optionalString (cfg.allowUploads != null) "--allow-uploads ${cfg.allowUploads}"} \
             ${cfg.stateDir}
         '';
diff --git a/nixpkgs/nixos/modules/services/misc/home-assistant.nix b/nixpkgs/nixos/modules/services/misc/home-assistant.nix
index 8ce2437841b0..0477254e7c18 100644
--- a/nixpkgs/nixos/modules/services/misc/home-assistant.nix
+++ b/nixpkgs/nixos/modules/services/misc/home-assistant.nix
@@ -240,6 +240,7 @@ in {
       '');
       serviceConfig = {
         ExecStart = "${package}/bin/hass --config '${cfg.configDir}'";
+        ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
         User = "hass";
         Group = "hass";
         Restart = "on-failure";
diff --git a/nixpkgs/nixos/modules/services/misc/jellyfin.nix b/nixpkgs/nixos/modules/services/misc/jellyfin.nix
index 6ecdfb57dc35..0493dadea94e 100644
--- a/nixpkgs/nixos/modules/services/misc/jellyfin.nix
+++ b/nixpkgs/nixos/modules/services/misc/jellyfin.nix
@@ -16,6 +16,14 @@ in
         description = "User account under which Jellyfin runs.";
       };
 
+      package = mkOption {
+        type = types.package;
+        example = literalExample "pkgs.jellyfin";
+        description = ''
+          Jellyfin package to use.
+        '';
+      };
+
       group = mkOption {
         type = types.str;
         default = "jellyfin";
@@ -35,11 +43,16 @@ in
         Group = cfg.group;
         StateDirectory = "jellyfin";
         CacheDirectory = "jellyfin";
-        ExecStart = "${pkgs.jellyfin}/bin/jellyfin --datadir '/var/lib/${StateDirectory}' --cachedir '/var/cache/${CacheDirectory}'";
+        ExecStart = "${cfg.package}/bin/jellyfin --datadir '/var/lib/${StateDirectory}' --cachedir '/var/cache/${CacheDirectory}'";
         Restart = "on-failure";
       };
     };
 
+    services.jellyfin.package = mkDefault (
+      if versionAtLeast config.system.stateVersion "20.09" then pkgs.jellyfin
+        else pkgs.jellyfin_10_5
+    );
+
     users.users = mkIf (cfg.user == "jellyfin") {
       jellyfin = {
         group = cfg.group;
diff --git a/nixpkgs/nixos/modules/services/misc/mathics.nix b/nixpkgs/nixos/modules/services/misc/mathics.nix
deleted file mode 100644
index c588a30d76cd..000000000000
--- a/nixpkgs/nixos/modules/services/misc/mathics.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-{ pkgs, lib, config, ... }:
-
-with lib;
-
-let
-  cfg = config.services.mathics;
-
-in {
-  options = {
-    services.mathics = {
-      enable = mkEnableOption "Mathics notebook service";
-
-      external = mkOption {
-        type = types.bool;
-        default = false;
-        description = "Listen on all interfaces, rather than just localhost?";
-      };
-
-      port = mkOption {
-        type = types.int;
-        default = 8000;
-        description = "TCP port to listen on.";
-      };
-    };
-  };
-
-  config = mkIf cfg.enable {
-
-    users.users.mathics = {
-      group = config.users.groups.mathics.name;
-      description = "Mathics user";
-      home = "/var/lib/mathics";
-      createHome = true;
-      uid = config.ids.uids.mathics;
-    };
-
-    users.groups.mathics.gid = config.ids.gids.mathics;
-
-    systemd.services.mathics = {
-      description = "Mathics notebook server";
-      wantedBy = [ "multi-user.target" ];
-      after = [ "network.target" ];
-      serviceConfig = {
-        User = config.users.users.mathics.name;
-        Group = config.users.groups.mathics.name;
-        ExecStart = concatStringsSep " " [
-          "${pkgs.mathics}/bin/mathicsserver"
-          "--port" (toString cfg.port)
-          (if cfg.external then "--external" else "")
-        ];
-      };
-    };
-  };
-}
diff --git a/nixpkgs/nixos/modules/services/misc/matrix-synapse.nix b/nixpkgs/nixos/modules/services/misc/matrix-synapse.nix
index e982eb16fa70..3eb1073387fe 100644
--- a/nixpkgs/nixos/modules/services/misc/matrix-synapse.nix
+++ b/nixpkgs/nixos/modules/services/misc/matrix-synapse.nix
@@ -675,7 +675,7 @@ in {
       }
     ];
 
-    users.users.matrix-synapse = { 
+    users.users.matrix-synapse = {
         group = "matrix-synapse";
         home = cfg.dataDir;
         createHome = true;
diff --git a/nixpkgs/nixos/modules/services/misc/matrix-synapse.xml b/nixpkgs/nixos/modules/services/misc/matrix-synapse.xml
index 2f2ac27eeb9d..fbfa838b168b 100644
--- a/nixpkgs/nixos/modules/services/misc/matrix-synapse.xml
+++ b/nixpkgs/nixos/modules/services/misc/matrix-synapse.xml
@@ -14,9 +14,9 @@
  <para>
   This chapter will show you how to set up your own, self-hosted Matrix
   homeserver using the Synapse reference homeserver, and how to serve your own
-  copy of the Riot web client. See the
+  copy of the Element web client. See the
   <link xlink:href="https://matrix.org/docs/projects/try-matrix-now.html">Try
-  Matrix Now!</link> overview page for links to Riot Apps for Android and iOS,
+  Matrix Now!</link> overview page for links to Element Apps for Android and iOS,
   desktop clients, as well as bridges to other networks and other projects
   around Matrix.
  </para>
@@ -84,7 +84,7 @@ in {
               "m.homeserver" =  { "base_url" = "https://${fqdn}"; };
               "m.identity_server" =  { "base_url" = "https://vector.im"; };
             };
-          # ACAO required to allow riot-web on any URL to request this json file
+          # ACAO required to allow element-web on any URL to request this json file
           in ''
             add_header Content-Type application/json;
             add_header Access-Control-Allow-Origin *;
@@ -98,7 +98,7 @@ in {
         <link linkend="opt-services.nginx.virtualHosts._name_.forceSSL">forceSSL</link> = true;
 
         # Or do a redirect instead of the 404, or whatever is appropriate for you.
-        # But do not put a Matrix Web client here! See the Riot Web section below.
+        # But do not put a Matrix Web client here! See the Element web section below.
         <link linkend="opt-services.nginx.virtualHosts._name_.locations._name_.extraConfig">locations."/".extraConfig</link> = ''
           return 404;
         '';
@@ -171,17 +171,19 @@ Success!
    option until a better solution for NixOS is in place.
   </para>
  </section>
- <section xml:id="module-services-matrix-riot-web">
-  <title>Riot Web Client</title>
+ <section xml:id="module-services-matrix-element-web">
+  <title>Element (formerly known as Riot) Web Client</title>
 
   <para>
-   <link xlink:href="https://github.com/vector-im/riot-web/">Riot Web</link> is
+   <link xlink:href="https://github.com/vector-im/riot-web/">Element Web</link> is
    the reference web client for Matrix and developed by the core team at
-   matrix.org. The following snippet can be optionally added to the code before
+   matrix.org. Element was formerly known as Riot.im, see the
+   <link xlink:href="https://element.io/blog/welcome-to-element/">Element introductory blog post</link>
+   for more information. The following snippet can be optionally added to the code before
    to complete the synapse installation with a web client served at
-   <code>https://riot.myhostname.example.org</code> and
-   <code>https://riot.example.org</code>. Alternatively, you can use the hosted
-   copy at <link xlink:href="https://riot.im/app">https://riot.im/app</link>,
+   <code>https://element.myhostname.example.org</code> and
+   <code>https://element.example.org</code>. Alternatively, you can use the hosted
+   copy at <link xlink:href="https://app.element.io/">https://app.element.io/</link>,
    or use other web clients or native client applications. Due to the
    <literal>/.well-known</literal> urls set up done above, many clients should
    fill in the required connection details automatically when you enter your
@@ -191,14 +193,14 @@ Success!
    featureset.
 <programlisting>
 {
-  services.nginx.virtualHosts."riot.${fqdn}" = {
+  services.nginx.virtualHosts."element.${fqdn}" = {
     <link linkend="opt-services.nginx.virtualHosts._name_.enableACME">enableACME</link> = true;
     <link linkend="opt-services.nginx.virtualHosts._name_.forceSSL">forceSSL</link> = true;
     <link linkend="opt-services.nginx.virtualHosts._name_.serverAliases">serverAliases</link> = [
-      "riot.${config.networking.domain}"
+      "element.${config.networking.domain}"
     ];
 
-    <link linkend="opt-services.nginx.virtualHosts._name_.root">root</link> = pkgs.riot-web.override {
+    <link linkend="opt-services.nginx.virtualHosts._name_.root">root</link> = pkgs.element-web.override {
       conf = {
         default_server_config."m.homeserver" = {
           "base_url" = "${config.networking.domain}";
@@ -212,13 +214,13 @@ Success!
   </para>
 
   <para>
-   Note that the Riot developers do not recommend running Riot and your Matrix
+   Note that the Element developers do not recommend running Element and your Matrix
    homeserver on the same fully-qualified domain name for security reasons. In
    the example, this means that you should not reuse the
-   <literal>myhostname.example.org</literal> virtualHost to also serve Riot,
+   <literal>myhostname.example.org</literal> virtualHost to also serve Element,
    but instead serve it on a different subdomain, like
-   <literal>riot.example.org</literal> in the example. See the
-   <link xlink:href="https://github.com/vector-im/riot-web#important-security-note">Riot
+   <literal>element.example.org</literal> in the example. See the
+   <link xlink:href="https://github.com/vector-im/riot-web#important-security-note">Element
    Important Security Notes</link> for more information on this subject.
   </para>
  </section>
diff --git a/nixpkgs/nixos/modules/services/misc/mautrix-telegram.nix b/nixpkgs/nixos/modules/services/misc/mautrix-telegram.nix
index 78a42fbb574b..c5e8a5b85ec2 100644
--- a/nixpkgs/nixos/modules/services/misc/mautrix-telegram.nix
+++ b/nixpkgs/nixos/modules/services/misc/mautrix-telegram.nix
@@ -125,7 +125,7 @@ in {
         if [ ! -f '${registrationFile}' ]; then
           ${pkgs.mautrix-telegram}/bin/mautrix-telegram \
             --generate-registration \
-            --base-config='${pkgs.mautrix-telegram}/example-config.yaml' \
+            --base-config='${pkgs.mautrix-telegram}/${pkgs.mautrix-telegram.pythonModule.sitePackages}/mautrix_telegram/example-config.yaml' \
             --config='${settingsFile}' \
             --registration='${registrationFile}'
         fi
diff --git a/nixpkgs/nixos/modules/services/misc/mesos-master.nix b/nixpkgs/nixos/modules/services/misc/mesos-master.nix
deleted file mode 100644
index 572a9847e46c..000000000000
--- a/nixpkgs/nixos/modules/services/misc/mesos-master.nix
+++ /dev/null
@@ -1,125 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-  cfg = config.services.mesos.master;
-
-in {
-
-  options.services.mesos = {
-
-    master = {
-      enable = mkOption {
-        description = "Whether to enable the Mesos Master.";
-        default = false;
-        type = types.bool;
-      };
-
-      ip = mkOption {
-        description = "IP address to listen on.";
-        default = "0.0.0.0";
-        type = types.str;
-      };
-
-      port = mkOption {
-        description = "Mesos Master port";
-        default = 5050;
-        type = types.int;
-      };
-
-      advertiseIp = mkOption {
-        description = "IP address advertised to reach this master.";
-        default = null;
-        type = types.nullOr types.str;
-      };
-
-      advertisePort = mkOption {
-        description = "Port advertised to reach this Mesos master.";
-        default = null;
-        type = types.nullOr types.int;
-      };
-
-      zk = mkOption {
-        description = ''
-          ZooKeeper URL (used for leader election amongst masters).
-          May be one of:
-            zk://host1:port1,host2:port2,.../mesos
-            zk://username:password@host1:port1,host2:port2,.../mesos
-        '';
-        type = types.str;
-      };
-
-      workDir = mkOption {
-        description = "The Mesos work directory.";
-        default = "/var/lib/mesos/master";
-        type = types.str;
-      };
-
-      extraCmdLineOptions = mkOption {
-        description = ''
-          Extra command line options for Mesos Master.
-
-          See https://mesos.apache.org/documentation/latest/configuration/
-        '';
-        default = [ "" ];
-        type = types.listOf types.str;
-        example = [ "--credentials=VALUE" ];
-      };
-
-      quorum = mkOption {
-        description = ''
-          The size of the quorum of replicas when using 'replicated_log' based
-          registry. It is imperative to set this value to be a majority of
-          masters i.e., quorum > (number of masters)/2.
-
-          If 0 will fall back to --registry=in_memory.
-        '';
-        default = 0;
-        type = types.int;
-      };
-
-      logLevel = mkOption {
-        description = ''
-          The logging level used. Possible values:
-            'INFO', 'WARNING', 'ERROR'
-        '';
-        default = "INFO";
-        type = types.str;
-      };
-
-    };
-
-
-  };
-
-
-  config = mkIf cfg.enable {
-    systemd.tmpfiles.rules = [
-      "d '${cfg.workDir}' 0700 - - - -"
-    ];
-    systemd.services.mesos-master = {
-      description = "Mesos Master";
-      wantedBy = [ "multi-user.target" ];
-      after = [ "network.target" ];
-      serviceConfig = {
-        ExecStart = ''
-          ${pkgs.mesos}/bin/mesos-master \
-            --ip=${cfg.ip} \
-            --port=${toString cfg.port} \
-            ${optionalString (cfg.advertiseIp != null) "--advertise_ip=${cfg.advertiseIp}"} \
-            ${optionalString (cfg.advertisePort  != null) "--advertise_port=${toString cfg.advertisePort}"} \
-            ${if cfg.quorum == 0
-              then "--registry=in_memory"
-              else "--zk=${cfg.zk} --registry=replicated_log --quorum=${toString cfg.quorum}"} \
-            --work_dir=${cfg.workDir} \
-            --logging_level=${cfg.logLevel} \
-            ${toString cfg.extraCmdLineOptions}
-        '';
-        Restart = "on-failure";
-      };
-    };
-  };
-
-}
-
diff --git a/nixpkgs/nixos/modules/services/misc/mesos-slave.nix b/nixpkgs/nixos/modules/services/misc/mesos-slave.nix
deleted file mode 100644
index 170065d0065e..000000000000
--- a/nixpkgs/nixos/modules/services/misc/mesos-slave.nix
+++ /dev/null
@@ -1,220 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-  cfg = config.services.mesos.slave;
-
-  mkAttributes =
-    attrs: concatStringsSep ";" (mapAttrsToList
-                                   (k: v: "${k}:${v}")
-                                   (filterAttrs (k: v: v != null) attrs));
-  attribsArg = optionalString (cfg.attributes != {})
-                              "--attributes=${mkAttributes cfg.attributes}";
-
-  containerizersArg = concatStringsSep "," (
-    lib.unique (
-      cfg.containerizers ++ (optional cfg.withDocker "docker")
-    )
-  );
-
-  imageProvidersArg = concatStringsSep "," (
-    lib.unique (
-      cfg.imageProviders ++ (optional cfg.withDocker "docker")
-    )
-  );
-
-  isolationArg = concatStringsSep "," (
-    lib.unique (
-      cfg.isolation ++ (optionals cfg.withDocker [ "filesystem/linux" "docker/runtime"])
-    )
-  );
-
-in {
-
-  options.services.mesos = {
-    slave = {
-      enable = mkOption {
-        description = "Whether to enable the Mesos Slave.";
-        default = false;
-        type = types.bool;
-      };
-
-      ip = mkOption {
-        description = "IP address to listen on.";
-        default = "0.0.0.0";
-        type = types.str;
-      };
-
-      port = mkOption {
-        description = "Port to listen on.";
-        default = 5051;
-        type = types.int;
-      };
-
-      advertiseIp = mkOption {
-        description = "IP address advertised to reach this agent.";
-        default = null;
-        type = types.nullOr types.str;
-      };
-
-      advertisePort = mkOption {
-        description = "Port advertised to reach this agent.";
-        default = null;
-        type = types.nullOr types.int;
-      };
-
-      containerizers = mkOption {
-        description = ''
-          List of containerizer implementations to compose in order to provide
-          containerization. Available options are mesos and docker.
-          The order the containerizers are specified is the order they are tried.
-        '';
-        default = [ "mesos" ];
-        type = types.listOf types.str;
-      };
-
-      imageProviders = mkOption {
-        description = "List of supported image providers, e.g., APPC,DOCKER.";
-        default = [ ];
-        type = types.listOf types.str;
-      };
-
-      imageProvisionerBackend = mkOption {
-        description = ''
-          Strategy for provisioning container rootfs from images,
-          e.g., aufs, bind, copy, overlay.
-        '';
-        default = "copy";
-        type = types.str;
-      };
-
-      isolation = mkOption {
-        description = ''
-          Isolation mechanisms to use, e.g., posix/cpu,posix/mem, or
-          cgroups/cpu,cgroups/mem, or network/port_mapping, or `gpu/nvidia` for nvidia
-          specific gpu isolation.
-        '';
-        default = [ "posix/cpu" "posix/mem" ];
-        type = types.listOf types.str;
-      };
-
-      master = mkOption {
-        description = ''
-          May be one of:
-            zk://host1:port1,host2:port2,.../path
-            zk://username:password@host1:port1,host2:port2,.../path
-        '';
-        type = types.str;
-      };
-
-      withHadoop = mkOption {
-        description = "Add the HADOOP_HOME to the slave.";
-        default = false;
-        type = types.bool;
-      };
-
-      withDocker = mkOption {
-        description = "Enable the docker containerizer.";
-        default = config.virtualisation.docker.enable;
-        type = types.bool;
-      };
-
-      dockerRegistry = mkOption {
-        description = ''
-          The default url for pulling Docker images.
-          It could either be a Docker registry server url,
-          or a local path in which Docker image archives are stored.
-        '';
-        default = null;
-        type = types.nullOr (types.either types.str types.path);
-      };
-
-      workDir = mkOption {
-        description = "The Mesos work directory.";
-        default = "/var/lib/mesos/slave";
-        type = types.str;
-      };
-
-      extraCmdLineOptions = mkOption {
-        description = ''
-          Extra command line options for Mesos Slave.
-
-          See https://mesos.apache.org/documentation/latest/configuration/
-        '';
-        default = [ "" ];
-        type = types.listOf types.str;
-        example = [ "--gc_delay=3days" ];
-      };
-
-      logLevel = mkOption {
-        description = ''
-          The logging level used. Possible values:
-            'INFO', 'WARNING', 'ERROR'
-        '';
-        default = "INFO";
-        type = types.str;
-      };
-
-      attributes = mkOption {
-        description = ''
-          Machine attributes for the slave instance.
-
-          Use caution when changing this; you may need to manually reset slave
-          metadata before the slave can re-register.
-        '';
-        default = {};
-        type = types.attrsOf types.str;
-        example = { rack = "aa";
-                    host = "aabc123";
-                    os = "nixos"; };
-      };
-
-      executorEnvironmentVariables = mkOption {
-        description = ''
-          The environment variables that should be passed to the executor, and thus subsequently task(s).
-        '';
-        default = {
-          PATH = "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin";
-        };
-        type = types.attrsOf types.str;
-      };
-    };
-
-  };
-
-  config = mkIf cfg.enable {
-    systemd.tmpfiles.rules = [
-      "d '${cfg.workDir}' 0701 - - - -"
-    ];
-    systemd.services.mesos-slave = {
-      description = "Mesos Slave";
-      wantedBy = [ "multi-user.target" ];
-      after = [ "network.target" ] ++ optionals cfg.withDocker [ "docker.service" ] ;
-      path = [ pkgs.runtimeShellPackage ];
-      serviceConfig = {
-        ExecStart = ''
-          ${pkgs.mesos}/bin/mesos-slave \
-            --containerizers=${containerizersArg} \
-            --image_providers=${imageProvidersArg} \
-            --image_provisioner_backend=${cfg.imageProvisionerBackend} \
-            --isolation=${isolationArg} \
-            --ip=${cfg.ip} \
-            --port=${toString cfg.port} \
-            ${optionalString (cfg.advertiseIp != null) "--advertise_ip=${cfg.advertiseIp}"} \
-            ${optionalString (cfg.advertisePort  != null) "--advertise_port=${toString cfg.advertisePort}"} \
-            --master=${cfg.master} \
-            --work_dir=${cfg.workDir} \
-            --logging_level=${cfg.logLevel} \
-            ${attribsArg} \
-            ${optionalString cfg.withHadoop "--hadoop-home=${pkgs.hadoop}"} \
-            ${optionalString cfg.withDocker "--docker=${pkgs.docker}/libexec/docker/docker"} \
-            ${optionalString (cfg.dockerRegistry != null) "--docker_registry=${cfg.dockerRegistry}"} \
-            --executor_environment_variables=${lib.escapeShellArg (builtins.toJSON cfg.executorEnvironmentVariables)} \
-            ${toString cfg.extraCmdLineOptions}
-        '';
-      };
-    };
-  };
-
-}
diff --git a/nixpkgs/nixos/modules/services/misc/nix-daemon.nix b/nixpkgs/nixos/modules/services/misc/nix-daemon.nix
index 5727e8e95730..2680b1cc0d3b 100644
--- a/nixpkgs/nixos/modules/services/misc/nix-daemon.nix
+++ b/nixpkgs/nixos/modules/services/misc/nix-daemon.nix
@@ -193,50 +193,111 @@ in
       };
 
       buildMachines = mkOption {
-        type = types.listOf types.attrs;
+        type = types.listOf (types.submodule ({
+          options = {
+            hostName = mkOption {
+              type = types.str;
+              example = "nixbuilder.example.org";
+              description = ''
+                The hostname of the build machine.
+              '';
+            };
+            system = mkOption {
+              type = types.nullOr types.str;
+              default = null;
+              example = "x86_64-linux";
+              description = ''
+                The system type the build machine can execute derivations on.
+                Either this attribute or <varname>systems</varname> must be
+                present, where <varname>system</varname> takes precedence if
+                both are set.
+              '';
+            };
+            systems = mkOption {
+              type = types.listOf types.str;
+              default = [];
+              example = [ "x86_64-linux" "aarch64-linux" ];
+              description = ''
+                The system types the build machine can execute derivations on.
+                Either this attribute or <varname>system</varname> must be
+                present, where <varname>system</varname> takes precedence if
+                both are set.
+              '';
+            };
+            sshUser = mkOption {
+              type = types.nullOr types.str;
+              default = null;
+              example = "builder";
+              description = ''
+                The username to log in as on the remote host. This user must be
+                able to log in and run nix commands non-interactively. It must
+                also be privileged to build derivations, so must be included in
+                <option>nix.trustedUsers</option>.
+              '';
+            };
+            sshKey = mkOption {
+              type = types.nullOr types.str;
+              default = null;
+              example = "/root/.ssh/id_buildhost_builduser";
+              description = ''
+                The path to the SSH private key with which to authenticate on
+                the build machine. The private key must not have a passphrase.
+                If null, the building user (root on NixOS machines) must have an
+                appropriate ssh configuration to log in non-interactively.
+
+                Note that for security reasons, this path must point to a file
+                in the local filesystem, *not* to the nix store.
+              '';
+            };
+            maxJobs = mkOption {
+              type = types.int;
+              default = 1;
+              description = ''
+                The number of concurrent jobs the build machine supports. The
+                build machine will enforce its own limits, but this allows hydra
+                to schedule better since there is no work-stealing between build
+                machines.
+              '';
+            };
+            speedFactor = mkOption {
+              type = types.int;
+              default = 1;
+              description = ''
+                The relative speed of this builder. This is an arbitrary integer
+                that indicates the speed of this builder, relative to other
+                builders. Higher is faster.
+              '';
+            };
+            mandatoryFeatures = mkOption {
+              type = types.listOf types.str;
+              default = [];
+              example = [ "big-parallel" ];
+              description = ''
+                A list of features mandatory for this builder. The builder will
+                be ignored for derivations that don't require all features in
+                this list. All mandatory features are automatically included in
+                <varname>supportedFeatures</varname>.
+              '';
+            };
+            supportedFeatures = mkOption {
+              type = types.listOf types.str;
+              default = [];
+              example = [ "kvm" "big-parallel" ];
+              description = ''
+                A list of features supported by this builder. The builder will
+                be ignored for derivations that require features not in this
+                list.
+              '';
+            };
+          };
+        }));
         default = [];
-        example = literalExample ''
-          [ { hostName = "voila.labs.cs.uu.nl";
-              sshUser = "nix";
-              sshKey = "/root/.ssh/id_buildfarm";
-              system = "powerpc-darwin";
-              maxJobs = 1;
-            }
-            { hostName = "linux64.example.org";
-              sshUser = "buildfarm";
-              sshKey = "/root/.ssh/id_buildfarm";
-              system = "x86_64-linux";
-              maxJobs = 2;
-              speedFactor = 2;
-              supportedFeatures = [ "kvm" ];
-              mandatoryFeatures = [ "perf" ];
-            }
-          ]
-        '';
         description = ''
-          This option lists the machines to be used if distributed
-          builds are enabled (see
-          <option>nix.distributedBuilds</option>).  Nix will perform
-          derivations on those machines via SSH by copying the inputs
-          to the Nix store on the remote machine, starting the build,
-          then copying the output back to the local Nix store.  Each
-          element of the list should be an attribute set containing
-          the machine's host name (<varname>hostname</varname>), the
-          user name to be used for the SSH connection
-          (<varname>sshUser</varname>), the Nix system type
-          (<varname>system</varname>, e.g.,
-          <literal>"i686-linux"</literal>), the maximum number of
-          jobs to be run in parallel on that machine
-          (<varname>maxJobs</varname>), the path to the SSH private
-          key to be used to connect (<varname>sshKey</varname>), a
-          list of supported features of the machine
-          (<varname>supportedFeatures</varname>) and a list of
-          mandatory features of the machine
-          (<varname>mandatoryFeatures</varname>). The SSH private key
-          should not have a passphrase, and the corresponding public
-          key should be added to
-          <filename>~<replaceable>sshUser</replaceable>/authorized_keys</filename>
-          on the remote machine.
+          This option lists the machines to be used if distributed builds are
+          enabled (see <option>nix.distributedBuilds</option>).
+          Nix will perform derivations on those machines via SSH by copying the
+          inputs to the Nix store on the remote machine, starting the build,
+          then copying the output back to the local Nix store.
         '';
       };
 
@@ -461,14 +522,14 @@ in
       { enable = cfg.buildMachines != [];
         text =
           concatMapStrings (machine:
-            "${if machine ? sshUser then "${machine.sshUser}@" else ""}${machine.hostName} "
-            + machine.system or (concatStringsSep "," machine.systems)
-            + " ${machine.sshKey or "-"} ${toString machine.maxJobs or 1} "
-            + toString (machine.speedFactor or 1)
+            "${if machine.sshUser != null then "${machine.sshUser}@" else ""}${machine.hostName} "
+            + (if machine.system != null then machine.system else concatStringsSep "," machine.systems)
+            + " ${if machine.sshKey != null then machine.sshKey else "-"} ${toString machine.maxJobs} "
+            + toString (machine.speedFactor)
             + " "
-            + concatStringsSep "," (machine.mandatoryFeatures or [] ++ machine.supportedFeatures or [])
+            + concatStringsSep "," (machine.mandatoryFeatures ++ machine.supportedFeatures)
             + " "
-            + concatStringsSep "," machine.mandatoryFeatures or []
+            + concatStringsSep "," machine.mandatoryFeatures
             + "\n"
           ) cfg.buildMachines;
       };
@@ -526,9 +587,10 @@ in
 
     nix.systemFeatures = mkDefault (
       [ "nixos-test" "benchmark" "big-parallel" "kvm" ] ++
-      optionals (pkgs.stdenv.isx86_64 && pkgs.hostPlatform.platform ? gcc.arch) (
-        # a x86_64 builder can run code for `platform.gcc.arch` and inferior architectures:
-        [ "gccarch-${pkgs.hostPlatform.platform.gcc.arch}" ] ++ map (x: "gccarch-${x}") lib.systems.architectures.inferiors.${pkgs.hostPlatform.platform.gcc.arch}
+      optionals (pkgs.hostPlatform.platform ? gcc.arch) (
+        # a builder can run code for `platform.gcc.arch` and inferior architectures
+        [ "gccarch-${pkgs.hostPlatform.platform.gcc.arch}" ] ++
+        map (x: "gccarch-${x}") lib.systems.architectures.inferiors.${pkgs.hostPlatform.platform.gcc.arch}
       )
     );
 
diff --git a/nixpkgs/nixos/modules/services/misc/octoprint.nix b/nixpkgs/nixos/modules/services/misc/octoprint.nix
index 7a71d2c8c6aa..e2fbd3b401cc 100644
--- a/nixpkgs/nixos/modules/services/misc/octoprint.nix
+++ b/nixpkgs/nixos/modules/services/misc/octoprint.nix
@@ -68,8 +68,8 @@ in
       plugins = mkOption {
         default = plugins: [];
         defaultText = "plugins: []";
-        example = literalExample "plugins: [ m3d-fio ]";
-        description = "Additional plugins.";
+        example = literalExample "plugins: with plugins; [ m33-fio stlviewer ]";
+        description = "Additional plugins to be used. Available plugins are passed through the plugins input.";
       };
 
       extraConfig = mkOption {
diff --git a/nixpkgs/nixos/modules/services/misc/pinnwand.nix b/nixpkgs/nixos/modules/services/misc/pinnwand.nix
new file mode 100644
index 000000000000..aa1ee5cfaa77
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/pinnwand.nix
@@ -0,0 +1,78 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.pinnwand;
+
+  format = pkgs.formats.toml {};
+  configFile = format.generate "pinnwand.toml" cfg.settings;
+in
+{
+  options.services.pinnwand = {
+    enable = mkEnableOption "Pinnwand";
+
+    port = mkOption {
+      type = types.port;
+      description = "The port to listen on.";
+      default = 8000;
+    };
+
+    settings = mkOption {
+      type = format.type;
+      description = ''
+        Your <filename>pinnwand.toml</filename> as a Nix attribute set. Look up
+        possible options in the <link xlink:href="https://github.com/supakeen/pinnwand/blob/master/pinnwand.toml-example">pinnwand.toml-example</link>.
+      '';
+      default = {
+        # https://github.com/supakeen/pinnwand/blob/master/pinnwand.toml-example
+        database_uri = "sqlite:///var/lib/pinnwand/pinnwand.db";
+        preferred_lexeres = [];
+        paste_size = 262144;
+        paste_help = ''
+          <p>Welcome to pinnwand, this site is a pastebin. It allows you to share code with others. If you write code in the text area below and press the paste button you will be given a link you can share with others so they can view your code as well.</p><p>People with the link can view your pasted code, only you can remove your paste and it expires automatically. Note that anyone could guess the URI to your paste so don't rely on it being private.</p>
+        '';
+        footer = ''
+          View <a href="//github.com/supakeen/pinnwand" target="_BLANK">source code</a>, the <a href="/removal">removal</a> or <a href="/expiry">expiry</a> stories, or read the <a href="/about">about</a> page.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.pinnwand = {
+      description = "Pinnwannd HTTP Server";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+
+      unitConfig.Documentation = "https://pinnwand.readthedocs.io/en/latest/";
+      serviceConfig = {
+        ExecStart = "${pkgs.pinnwand}/bin/pinnwand --configuration-path ${configFile} http --port ${toString(cfg.port)}";
+        StateDirectory = "pinnwand";
+        StateDirectoryMode = "0700";
+
+        AmbientCapabilities = [];
+        CapabilityBoundingSet = "";
+        DevicePolicy = "closed";
+        DynamicUser = true;
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        PrivateDevices = true;
+        PrivateUsers = true;
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectKernelLogs = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        SystemCallArchitectures = "native";
+        SystemCallFilter = "@system-service";
+        UMask = "0077";
+      };
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/misc/redmine.nix b/nixpkgs/nixos/modules/services/misc/redmine.nix
index 0e71cf925692..1313bdaccc49 100644
--- a/nixpkgs/nixos/modules/services/misc/redmine.nix
+++ b/nixpkgs/nixos/modules/services/misc/redmine.nix
@@ -1,12 +1,12 @@
 { config, lib, pkgs, ... }:
 
 let
-  inherit (lib) mkDefault mkEnableOption mkIf mkOption types;
+  inherit (lib) mkBefore mkDefault mkEnableOption mkIf mkOption mkRemovedOptionModule types;
   inherit (lib) concatStringsSep literalExample mapAttrsToList;
-  inherit (lib) optional optionalAttrs optionalString singleton versionAtLeast;
+  inherit (lib) optional optionalAttrs optionalString;
 
   cfg = config.services.redmine;
-
+  format = pkgs.formats.yaml {};
   bundle = "${cfg.package}/share/redmine/bin/bundle";
 
   databaseYml = pkgs.writeText "database.yml" ''
@@ -20,24 +20,8 @@ let
       ${optionalString (cfg.database.type == "mysql2" && cfg.database.socket != null) "socket: ${cfg.database.socket}"}
   '';
 
-  configurationYml = pkgs.writeText "configuration.yml" ''
-    default:
-      scm_subversion_command: ${pkgs.subversion}/bin/svn
-      scm_mercurial_command: ${pkgs.mercurial}/bin/hg
-      scm_git_command: ${pkgs.gitAndTools.git}/bin/git
-      scm_cvs_command: ${pkgs.cvs}/bin/cvs
-      scm_bazaar_command: ${pkgs.breezy}/bin/bzr
-      scm_darcs_command: ${pkgs.darcs}/bin/darcs
-
-    ${cfg.extraConfig}
-  '';
-
-  additionalEnvironment = pkgs.writeText "additional_environment.rb" ''
-    config.logger = Logger.new("${cfg.stateDir}/log/production.log", 14, 1048576)
-    config.logger.level = Logger::INFO
-
-    ${cfg.extraEnv}
-  '';
+  configurationYml = format.generate "configuration.yml" cfg.settings;
+  additionalEnvironment = pkgs.writeText "additional_environment.rb" cfg.extraEnv;
 
   unpackTheme = unpack "theme";
   unpackPlugin = unpack "plugin";
@@ -56,8 +40,13 @@ let
   pgsqlLocal = cfg.database.createLocally && cfg.database.type == "postgresql";
 
 in
-
 {
+  imports = [
+    (mkRemovedOptionModule [ "services" "redmine" "extraConfig" ] "Use services.redmine.settings instead.")
+    (mkRemovedOptionModule [ "services" "redmine" "database" "password" ] "Use services.redmine.database.passwordFile instead.")
+  ];
+
+  # interface
   options = {
     services.redmine = {
       enable = mkEnableOption "Redmine";
@@ -93,21 +82,24 @@ in
         description = "The state directory, logs and plugins are stored here.";
       };
 
-      extraConfig = mkOption {
-        type = types.lines;
-        default = "";
+      settings = mkOption {
+        type = format.type;
+        default = {};
         description = ''
-          Extra configuration in configuration.yml.
-
-          See <link xlink:href="https://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration"/>
+          Redmine configuration (<filename>configuration.yml</filename>). Refer to
+          <link xlink:href="https://guides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration"/>
           for details.
         '';
         example = literalExample ''
-          email_delivery:
-            delivery_method: smtp
-            smtp_settings:
-              address: mail.example.com
-              port: 25
+          {
+            email_delivery = {
+              delivery_method = "smtp";
+              smtp_settings = {
+                address = "mail.example.com";
+                port = 25;
+              };
+            };
+          }
         '';
       };
 
@@ -186,16 +178,6 @@ in
           description = "Database user.";
         };
 
-        password = mkOption {
-          type = types.str;
-          default = "";
-          description = ''
-            The password corresponding to <option>database.user</option>.
-            Warning: this is stored in cleartext in the Nix store!
-            Use <option>database.passwordFile</option> instead.
-          '';
-        };
-
         passwordFile = mkOption {
           type = types.nullOr types.path;
           default = null;
@@ -226,11 +208,12 @@ in
     };
   };
 
+  # implementation
   config = mkIf cfg.enable {
 
     assertions = [
-      { assertion = cfg.database.passwordFile != null || cfg.database.password != "" || cfg.database.socket != null;
-        message = "one of services.redmine.database.socket, services.redmine.database.passwordFile, or services.redmine.database.password must be set";
+      { assertion = cfg.database.passwordFile != null || cfg.database.socket != null;
+        message = "one of services.redmine.database.socket or services.redmine.database.passwordFile must be set";
       }
       { assertion = cfg.database.createLocally -> cfg.database.user == cfg.user;
         message = "services.redmine.database.user must be set to ${cfg.user} if services.redmine.database.createLocally is set true";
@@ -243,6 +226,22 @@ in
       }
     ];
 
+    services.redmine.settings = {
+      production = {
+        scm_subversion_command = "${pkgs.subversion}/bin/svn";
+        scm_mercurial_command = "${pkgs.mercurial}/bin/hg";
+        scm_git_command = "${pkgs.gitAndTools.git}/bin/git";
+        scm_cvs_command = "${pkgs.cvs}/bin/cvs";
+        scm_bazaar_command = "${pkgs.breezy}/bin/bzr";
+        scm_darcs_command = "${pkgs.darcs}/bin/darcs";
+      };
+    };
+
+    services.redmine.extraEnv = mkBefore ''
+      config.logger = Logger.new("${cfg.stateDir}/log/production.log", 14, 1048576)
+      config.logger.level = Logger::INFO
+    '';
+
     services.mysql = mkIf mysqlLocal {
       enable = true;
       package = mkDefault pkgs.mariadb;
@@ -338,7 +337,7 @@ in
 
 
         # handle database.passwordFile & permissions
-        DBPASS=$(head -n1 ${cfg.database.passwordFile})
+        DBPASS=${optionalString (cfg.database.passwordFile != null) "$(head -n1 ${cfg.database.passwordFile})"}
         cp -f ${databaseYml} "${cfg.stateDir}/config/database.yml"
         sed -e "s,#dbpass#,$DBPASS,g" -i "${cfg.stateDir}/config/database.yml"
         chmod 440 "${cfg.stateDir}/config/database.yml"
@@ -379,17 +378,6 @@ in
       redmine.gid = config.ids.gids.redmine;
     };
 
-    warnings = optional (cfg.database.password != "")
-      ''config.services.redmine.database.password will be stored as plaintext
-      in the Nix store. Use database.passwordFile instead.'';
-
-    # Create database passwordFile default when password is configured.
-    services.redmine.database.passwordFile =
-      (mkDefault (toString (pkgs.writeTextFile {
-        name = "redmine-database-password";
-        text = cfg.database.password;
-      })));
-
   };
 
 }
diff --git a/nixpkgs/nixos/modules/services/misc/siproxd.nix b/nixpkgs/nixos/modules/services/misc/siproxd.nix
index ae7b27de8e70..0e87fc461d3f 100644
--- a/nixpkgs/nixos/modules/services/misc/siproxd.nix
+++ b/nixpkgs/nixos/modules/services/misc/siproxd.nix
@@ -38,7 +38,7 @@ in
         type = types.bool;
         default = false;
         description = ''
-          Whether to enable the Siproxd SIP 
+          Whether to enable the Siproxd SIP
 	  proxy/masquerading daemon.
         '';
       };
@@ -111,7 +111,7 @@ in
         type = types.int;
         default = 300;
         description = ''
-          Timeout for an RTP stream. If for the specified 
+          Timeout for an RTP stream. If for the specified
           number of seconds no data is relayed on an active
           stream, it is considered dead and will be killed.
         '';
@@ -122,7 +122,7 @@ in
         default = 46;
         description = ''
           DSCP (differentiated services) value to be assigned
-          to RTP packets. Allows QOS aware routers to handle 
+          to RTP packets. Allows QOS aware routers to handle
           different types traffic with different priorities.
         '';
       };
@@ -132,7 +132,7 @@ in
         default = 0;
         description = ''
           DSCP (differentiated services) value to be assigned
-          to SIP packets. Allows QOS aware routers to handle 
+          to SIP packets. Allows QOS aware routers to handle
           different types traffic with different priorities.
         '';
       };
diff --git a/nixpkgs/nixos/modules/services/misc/ssm-agent.nix b/nixpkgs/nixos/modules/services/misc/ssm-agent.nix
index f7c05deeecb5..00e806695fd5 100644
--- a/nixpkgs/nixos/modules/services/misc/ssm-agent.nix
+++ b/nixpkgs/nixos/modules/services/misc/ssm-agent.nix
@@ -29,13 +29,15 @@ in {
 
   config = mkIf cfg.enable {
     systemd.services.ssm-agent = {
+      users.extraUsers.ssm-user = {};
+
       inherit (cfg.package.meta) description;
       after    = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
 
-      path = [ fake-lsb-release ];
+      path = [ fake-lsb-release pkgs.coreutils ];
       serviceConfig = {
-        ExecStart = "${cfg.package}/bin/agent";
+        ExecStart = "${cfg.package}/bin/amazon-ssm-agent";
         KillMode = "process";
         Restart = "on-failure";
         RestartSec = "15min";
diff --git a/nixpkgs/nixos/modules/services/misc/sssd.nix b/nixpkgs/nixos/modules/services/misc/sssd.nix
index 3da99a3b38c1..386281e2b7cc 100644
--- a/nixpkgs/nixos/modules/services/misc/sssd.nix
+++ b/nixpkgs/nixos/modules/services/misc/sssd.nix
@@ -69,7 +69,7 @@ in {
         mode = "0400";
       };
 
-      system.nssModules = pkgs.sssd;
+      system.nssModules = [ pkgs.sssd ];
       system.nssDatabases = {
         group = [ "sss" ];
         passwd = [ "sss" ];
@@ -92,4 +92,6 @@ in {
     services.openssh.authorizedKeysCommand = "/etc/ssh/authorized_keys_command";
     services.openssh.authorizedKeysCommandUser = "nobody";
   })];
+
+  meta.maintainers = with maintainers; [ bbigras ];
 }
diff --git a/nixpkgs/nixos/modules/services/misc/tzupdate.nix b/nixpkgs/nixos/modules/services/misc/tzupdate.nix
index 570982ced29a..eac1e1112a5a 100644
--- a/nixpkgs/nixos/modules/services/misc/tzupdate.nix
+++ b/nixpkgs/nixos/modules/services/misc/tzupdate.nix
@@ -11,7 +11,7 @@ in {
       default = false;
       description = ''
         Enable the tzupdate timezone updating service. This provides
-        a one-shot service which can be activated with systemctl to 
+        a one-shot service which can be activated with systemctl to
         update the timezone.
       '';
     };
@@ -21,7 +21,7 @@ in {
     # We need to have imperative time zone management for this to work.
     # This will give users an error if they have set an explicit time
     # zone, which is better than silently overriding it.
-    time.timeZone = null; 
+    time.timeZone = null;
 
     # We provide a one-shot service which can be manually run. We could
     # provide a service that runs on startup, but it's tricky to get
diff --git a/nixpkgs/nixos/modules/services/misc/zigbee2mqtt.nix b/nixpkgs/nixos/modules/services/misc/zigbee2mqtt.nix
new file mode 100644
index 000000000000..0957920f1a09
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/misc/zigbee2mqtt.nix
@@ -0,0 +1,98 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.zigbee2mqtt;
+
+  configJSON = pkgs.writeText "configuration.json"
+    (builtins.toJSON (recursiveUpdate defaultConfig cfg.config));
+  configFile = pkgs.runCommand "configuration.yaml" { preferLocalBuild = true; } ''
+    ${pkgs.remarshal}/bin/json2yaml -i ${configJSON} -o $out
+  '';
+
+  # the default config contains all required settings,
+  # so the service starts up without crashing.
+  defaultConfig = {
+    homeassistant = false;
+    permit_join = false;
+    mqtt = {
+      base_topic = "zigbee2mqtt";
+      server = "mqtt://localhost:1883";
+    };
+    serial.port = "/dev/ttyACM0";
+    # put device configuration into separate file because configuration.yaml
+    # is copied from the store on startup
+    devices = "devices.yaml";
+  };
+in
+{
+  meta.maintainers = with maintainers; [ sweber ];
+
+  options.services.zigbee2mqtt = {
+    enable = mkEnableOption "enable zigbee2mqtt service";
+
+    package = mkOption {
+      description = "Zigbee2mqtt package to use";
+      default = pkgs.zigbee2mqtt.override {
+        dataDir = cfg.dataDir;
+      };
+      defaultText = "pkgs.zigbee2mqtt";
+      type = types.package;
+    };
+
+    dataDir = mkOption {
+      description = "Zigbee2mqtt data directory";
+      default = "/var/lib/zigbee2mqtt";
+      type = types.path;
+    };
+
+    config = mkOption {
+      default = {};
+      type = with types; nullOr attrs;
+      example = literalExample ''
+        {
+          homeassistant = config.services.home-assistant.enable;
+          permit_join = true;
+          serial = {
+            port = "/dev/ttyACM1";
+          };
+        }
+      '';
+      description = ''
+        Your <filename>configuration.yaml</filename> as a Nix attribute set.
+      '';
+    };
+  };
+
+  config = mkIf (cfg.enable) {
+    systemd.services.zigbee2mqtt = {
+      description = "Zigbee2mqtt Service";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+      serviceConfig = {
+        ExecStart = "${cfg.package}/bin/zigbee2mqtt";
+        User = "zigbee2mqtt";
+        WorkingDirectory = cfg.dataDir;
+        Restart = "on-failure";
+        ProtectSystem = "strict";
+        ReadWritePaths = cfg.dataDir;
+        PrivateTmp = true;
+        RemoveIPC = true;
+      };
+      preStart = ''
+        cp --no-preserve=mode ${configFile} "${cfg.dataDir}/configuration.yaml"
+      '';
+    };
+
+    users.users.zigbee2mqtt = {
+      home = cfg.dataDir;
+      createHome = true;
+      group = "zigbee2mqtt";
+      extraGroups = [ "dialout" ];
+      uid = config.ids.uids.zigbee2mqtt;
+    };
+
+    users.groups.zigbee2mqtt.gid = config.ids.gids.zigbee2mqtt;
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/monitoring/cadvisor.nix b/nixpkgs/nixos/modules/services/monitoring/cadvisor.nix
index 655a6934a266..da051dbe4655 100644
--- a/nixpkgs/nixos/modules/services/monitoring/cadvisor.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/cadvisor.nix
@@ -90,7 +90,7 @@ in {
         default = [];
         description = ''
           Additional cadvisor options.
-          
+
           See <link xlink:href='https://github.com/google/cadvisor/blob/master/docs/runtime_options.md'/> for available options.
         '';
       };
diff --git a/nixpkgs/nixos/modules/services/monitoring/datadog-agent.nix b/nixpkgs/nixos/modules/services/monitoring/datadog-agent.nix
index f1cb890794e1..d97565f15d6c 100644
--- a/nixpkgs/nixos/modules/services/monitoring/datadog-agent.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/datadog-agent.nix
@@ -6,7 +6,6 @@ let
   cfg = config.services.datadog-agent;
 
   ddConf = {
-    dd_url              = "https://app.datadoghq.com";
     skip_ssl_validation = false;
     confd_path          = "/etc/datadog-agent/conf.d";
     additional_checksd  = "/etc/datadog-agent/checks.d";
@@ -14,6 +13,8 @@ let
   }
   // optionalAttrs (cfg.logLevel != null) { log_level = cfg.logLevel; }
   // optionalAttrs (cfg.hostname != null) { inherit (cfg) hostname; }
+  // optionalAttrs (cfg.ddUrl != null) { dd_url = cfg.ddUrl; }
+  // optionalAttrs (cfg.site != null) { site = cfg.site; }
   // optionalAttrs (cfg.tags != null ) { tags = concatStringsSep ", " cfg.tags; }
   // optionalAttrs (cfg.enableLiveProcessCollection) { process_config = { enabled = "true"; }; }
   // optionalAttrs (cfg.enableTraceAgent) { apm_config = { enabled = true; }; }
@@ -77,6 +78,27 @@ in {
       type = types.path;
     };
 
+    ddUrl = mkOption {
+      description = ''
+        Custom dd_url to configure the agent with. Useful if traffic to datadog
+        needs to go through a proxy.
+        Don't use this to point to another datadog site (EU) - use site instead.
+      '';
+      default = null;
+      example = "http://haproxy.example.com:3834";
+      type = types.nullOr types.str;
+    };
+
+    site = mkOption {
+      description = ''
+        The datadog site to point the agent towards.
+        Set to datadoghq.eu to point it to their EU site.
+      '';
+      default = null;
+      example = "datadoghq.eu";
+      type = types.nullOr types.str;
+    };
+
     tags = mkOption {
       description = "The tags to mark this Datadog agent";
       example = [ "test" "service" ];
diff --git a/nixpkgs/nixos/modules/services/monitoring/dd-agent/dd-agent.nix b/nixpkgs/nixos/modules/services/monitoring/dd-agent/dd-agent.nix
index e91717fb2054..a290dae8d4b9 100644
--- a/nixpkgs/nixos/modules/services/monitoring/dd-agent/dd-agent.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/dd-agent/dd-agent.nix
@@ -97,11 +97,11 @@ let
         "dd-agent/conf.d/nginx.yaml".source = nginxConfig;
       }) //
       (optionalAttrs (cfg.mongoConfig != null)
-      { 
+      {
         "dd-agent/conf.d/mongo.yaml".source = mongoConfig;
       }) //
       (optionalAttrs (cfg.processConfig != null)
-      { 
+      {
         "dd-agent/conf.d/process.yaml".source = processConfig;
       }) //
       (optionalAttrs (cfg.jmxConfig != null)
diff --git a/nixpkgs/nixos/modules/services/monitoring/do-agent.nix b/nixpkgs/nixos/modules/services/monitoring/do-agent.nix
index 2d3fe2f79768..4dfb6236727b 100644
--- a/nixpkgs/nixos/modules/services/monitoring/do-agent.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/do-agent.nix
@@ -4,6 +4,7 @@ with lib;
 
 let
   cfg = config.services.do-agent;
+
 in
 {
   options.services.do-agent = {
@@ -11,23 +12,13 @@ in
   };
 
   config = mkIf cfg.enable {
-    environment.systemPackages = [ pkgs.do-agent ];
+    systemd.packages = [ pkgs.do-agent ];
 
     systemd.services.do-agent = {
-      description = "DigitalOcean Droplet Metrics Agent";
       wantedBy = [ "multi-user.target" ];
-      after = [ "network-online.target" ];
-      wants = [ "network-online.target" ];
       serviceConfig = {
-        ExecStart = "${pkgs.do-agent}/bin/do-agent --syslog";
-        Restart = "always";
-        OOMScoreAdjust = -900;
-        SyslogIdentifier = "DigitalOceanAgent";
-        PrivateTmp = "yes";
-        ProtectSystem = "full";
-        ProtectHome = "yes";
-        NoNewPrivileges = "yes";
-        DynamicUser = "yes";
+        ExecStart = [ "" "${pkgs.do-agent}/bin/do-agent --syslog" ];
+        DynamicUser = true;
       };
     };
   };
diff --git a/nixpkgs/nixos/modules/services/monitoring/monit.nix b/nixpkgs/nixos/modules/services/monitoring/monit.nix
index ca9352272174..379ee967620e 100644
--- a/nixpkgs/nixos/modules/services/monitoring/monit.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/monit.nix
@@ -43,4 +43,6 @@ in
     };
 
   };
+
+  meta.maintainers = with maintainers; [ ryantm ];
 }
diff --git a/nixpkgs/nixos/modules/services/monitoring/netdata.nix b/nixpkgs/nixos/modules/services/monitoring/netdata.nix
index a5233a46e341..2e73e15d3a86 100644
--- a/nixpkgs/nixos/modules/services/monitoring/netdata.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/netdata.nix
@@ -133,16 +133,6 @@ in {
         }
       ];
 
-    systemd.tmpfiles.rules = [
-      "d /var/cache/netdata 0755 ${cfg.user} ${cfg.group} -"
-      "Z /var/cache/netdata - ${cfg.user} ${cfg.group} -"
-      "d /var/log/netdata 0755 ${cfg.user} ${cfg.group} -"
-      "Z /var/log/netdata - ${cfg.user} ${cfg.group} -"
-      "d /var/lib/netdata 0755 ${cfg.user} ${cfg.group} -"
-      "Z /var/lib/netdata - ${cfg.user} ${cfg.group} -"
-      "d /etc/netdata 0755 ${cfg.user} ${cfg.group} -"
-      "Z /etc/netdata - ${cfg.user} ${cfg.group} -"
-    ];
     systemd.services.netdata = {
       description = "Real time performance monitoring";
       after = [ "network.target" ];
@@ -158,11 +148,40 @@ in {
         # User and group
         User = cfg.user;
         Group = cfg.group;
-        # Runtime directory and mode
-        RuntimeDirectory = "netdata";
-        RuntimeDirectoryMode = "0755";
         # Performance
         LimitNOFILE = "30000";
+        # Runtime directory and mode
+        RuntimeDirectory = "netdata";
+        RuntimeDirectoryMode = "0750";
+        # State directory and mode
+        StateDirectory = "netdata";
+        StateDirectoryMode = "0750";
+        # Cache directory and mode
+        CacheDirectory = "netdata";
+        CacheDirectoryMode = "0750";
+        # Logs directory and mode
+        LogsDirectory = "netdata";
+        LogsDirectoryMode = "0750";
+        # Configuration directory and mode
+        ConfigurationDirectory = "netdata";
+        ConfigurationDirectoryMode = "0755";
+        # Capabilities
+        CapabilityBoundingSet = [
+          "CAP_DAC_OVERRIDE"      # is required for freeipmi and slabinfo plugins
+          "CAP_DAC_READ_SEARCH"   # is required for apps plugin
+          "CAP_FOWNER"            # is required for freeipmi plugin
+          "CAP_SETPCAP"           # is required for apps, perf and slabinfo plugins
+          "CAP_SYS_ADMIN"         # is required for perf plugin
+          "CAP_SYS_PTRACE"        # is required for apps plugin
+          "CAP_SYS_RESOURCE"      # is required for ebpf plugin
+          "CAP_NET_RAW"           # is required for fping app
+        ];
+        # Sandboxing
+        ProtectSystem = "full";
+        ProtectHome = "read-only";
+        PrivateTmp = true;
+        ProtectControlGroups = true;
+        PrivateMounts = true;
       };
     };
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix
index 84a72afac2f7..98aaa9c0f030 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/default.nix
@@ -46,11 +46,11 @@ let
   cmdlineArgs = cfg.extraFlags ++ [
     "--storage.tsdb.path=${workingDir}/data/"
     "--config.file=${prometheusYml}"
-    "--web.listen-address=${cfg.listenAddress}"
+    "--web.listen-address=${cfg.listenAddress}:${builtins.toString cfg.port}"
     "--alertmanager.notification-queue-capacity=${toString cfg.alertmanagerNotificationQueueCapacity}"
     "--alertmanager.timeout=${toString cfg.alertmanagerTimeout}s"
-  ] ++
-  optional (cfg.webExternalUrl != null) "--web.external-url=${cfg.webExternalUrl}";
+  ] ++ optional (cfg.webExternalUrl != null) "--web.external-url=${cfg.webExternalUrl}"
+    ++ optional (cfg.retentionTime != null)  "--storage.tsdb.retention.time=${cfg.retentionTime}";
 
   filterValidPrometheus = filterAttrsListRecursive (n: v: !(n == "_module" || v == null));
   filterAttrsListRecursive = pred: x:
@@ -489,9 +489,17 @@ in {
       '';
     };
 
+    port = mkOption {
+      type = types.port;
+      default = 9090;
+      description = ''
+        Port to listen on.
+      '';
+    };
+
     listenAddress = mkOption {
       type = types.str;
-      default = "0.0.0.0:9090";
+      default = "0.0.0.0";
       description = ''
         Address to listen on for the web interface, API, and telemetry.
       '';
@@ -616,9 +624,35 @@ in {
         errors, despite a correct configuration.
       '';
     };
+
+    retentionTime = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      example = "15d";
+      description = ''
+        How long to retain samples in storage.
+      '';
+    };
   };
 
   config = mkIf cfg.enable {
+    assertions = [
+      ( let
+          # Match something with dots (an IPv4 address) or something ending in
+          # a square bracket (an IPv6 addresses) followed by a port number.
+          legacy = builtins.match "(.*\\..*|.*]):([[:digit:]]+)" cfg.listenAddress;
+        in {
+          assertion = legacy == null;
+          message = ''
+            Do not specify the port for Prometheus to listen on in the
+            listenAddress option; use the port option instead:
+              services.prometheus.listenAddress = ${builtins.elemAt legacy 0};
+              services.prometheus.port = ${builtins.elemAt legacy 1};
+          '';
+        }
+      )
+    ];
+
     users.groups.prometheus.gid = config.ids.gids.prometheus;
     users.users.prometheus = {
       description = "Prometheus daemon user";
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
index 29f402b212fe..cc71451bf206 100644
--- a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters.nix
@@ -34,6 +34,7 @@ let
     "mail"
     "mikrotik"
     "minio"
+    "modemmanager"
     "nextcloud"
     "nginx"
     "node"
@@ -45,6 +46,7 @@ let
     "surfboard"
     "tor"
     "unifi"
+    "unifi-poller"
     "varnish"
     "wireguard"
   ] (name:
@@ -83,7 +85,8 @@ let
     };
     firewallFilter = mkOption {
       type = types.str;
-      default = "-p tcp -m tcp --dport ${toString port}";
+      default = "-p tcp -m tcp --dport ${toString cfg.${name}.port}";
+      defaultText = "-p tcp -m tcp --dport ${toString port}";
       example = literalExample ''
         "-i eth0 -p tcp -m tcp --dport ${toString port}"
       '';
@@ -172,15 +175,6 @@ in
        (opt: lib.mkRemovedOptionModule [ "services" "prometheus" "${opt}" ] ''
          The prometheus exporters are now configured using `services.prometheus.exporters'.
          See the 18.03 release notes for more information.
-       '' ))
-
-    ++ (lib.forEach [ "enable" "substitutions" "preset" ]
-       (opt: lib.mkRemovedOptionModule [ "fonts" "fontconfig" "ultimate" "${opt}" ] ''
-         The fonts.fontconfig.ultimate module and configuration is obsolete.
-         The repository has since been archived and activity has ceased.
-         https://github.com/bohoomil/fontconfig-ultimate/issues/171.
-         No action should be needed for font configuration, as the fonts.fontconfig
-         module is already used by default.
        '' ));
 
   options.services.prometheus.exporters = mkOption {
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix
new file mode 100644
index 000000000000..86ea98b94e4c
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/modemmanager.nix
@@ -0,0 +1,33 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.modemmanager;
+in
+{
+  port = 9539;
+  extraOpts = {
+    refreshRate = mkOption {
+      type = types.str;
+      default = "5s";
+      description = ''
+        How frequently ModemManager will refresh the extended signal quality
+        information for each modem. The duration should be specified in seconds
+        ("5s"), minutes ("1m"), or hours ("1h").
+      '';
+    };
+  };
+  serviceOpts = {
+    serviceConfig = {
+      # Required in order to authenticate with ModemManager via D-Bus.
+      SupplementaryGroups = "networkmanager";
+      ExecStart = ''
+        ${pkgs.prometheus-modemmanager-exporter}/bin/modemmanager_exporter \
+          -addr ${cfg.listenAddress}:${toString cfg.port} \
+          -rate ${cfg.refreshRate} \
+          ${concatStringsSep " \\\n  " cfg.extraFlags}
+      '';
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unifi-poller.nix b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unifi-poller.nix
new file mode 100644
index 000000000000..394e6e201f03
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/monitoring/prometheus/exporters/unifi-poller.nix
@@ -0,0 +1,34 @@
+{ config, lib, pkgs, options }:
+
+with lib;
+
+let
+  cfg = config.services.prometheus.exporters.unifi-poller;
+
+  configFile = pkgs.writeText "prometheus-unifi-poller-exporter.json" (generators.toJSON {} {
+    poller = { inherit (cfg.log) debug quiet; };
+    unifi = { inherit (cfg) controllers; };
+    influxdb.disable = true;
+    prometheus = {
+      http_listen = "${cfg.listenAddress}:${toString cfg.port}";
+      report_errors = cfg.log.prometheusErrors;
+    };
+  });
+
+in {
+  port = 9130;
+
+  extraOpts = {
+    inherit (options.services.unifi-poller.unifi) controllers;
+    log = {
+      debug = mkEnableOption "debug logging including line numbers, high resolution timestamps, per-device logs.";
+      quiet = mkEnableOption "startup and error logs only.";
+      prometheusErrors = mkEnableOption "emitting errors to prometheus.";
+    };
+  };
+
+  serviceOpts.serviceConfig = {
+    ExecStart = "${pkgs.unifi-poller}/bin/unifi-poller --config ${configFile}";
+    DynamicUser = false;
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/monitoring/smartd.nix b/nixpkgs/nixos/modules/services/monitoring/smartd.nix
index c345ec48a018..c72b4abfcdce 100644
--- a/nixpkgs/nixos/modules/services/monitoring/smartd.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/smartd.nix
@@ -18,9 +18,9 @@ let
     ${optionalString nm.enable ''
       {
       ${pkgs.coreutils}/bin/cat << EOF
-      From: smartd on ${host} <root>
+      From: smartd on ${host} <${nm.sender}>
       To: undisclosed-recipients:;
-      Subject: SMART error on $SMARTD_DEVICESTRING: $SMARTD_FAILTYPE
+      Subject: $SMARTD_SUBJECT
 
       $SMARTD_FULLMESSAGE
       EOF
@@ -129,6 +129,16 @@ in
             description = "Whenever to send e-mail notifications.";
           };
 
+          sender = mkOption {
+            default = "root";
+            example = "example@domain.tld";
+            type = types.str;
+            description = ''
+              Sender of the notification messages.
+              Acts as the value of <literal>email</literal> in the emails' <literal>From: ... </literal> field.
+            '';
+          };
+
           recipient = mkOption {
             default = "root";
             type = types.str;
@@ -229,11 +239,7 @@ in
 
     systemd.services.smartd = {
       description = "S.M.A.R.T. Daemon";
-
       wantedBy = [ "multi-user.target" ];
-
-      path = [ pkgs.nettools ]; # for hostname and dnsdomanname calls in smartd
-
       serviceConfig.ExecStart = "${pkgs.smartmontools}/sbin/smartd ${lib.concatStringsSep " " cfg.extraOptions} --no-fork --configfile=${smartdConf}";
     };
 
diff --git a/nixpkgs/nixos/modules/services/monitoring/teamviewer.nix b/nixpkgs/nixos/modules/services/monitoring/teamviewer.nix
index dd98ecab828d..8d781d82d086 100644
--- a/nixpkgs/nixos/modules/services/monitoring/teamviewer.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/teamviewer.nix
@@ -15,7 +15,7 @@ in
   options = {
 
     services.teamviewer.enable = mkEnableOption "TeamViewer daemon";
-      
+
   };
 
   ###### implementation
diff --git a/nixpkgs/nixos/modules/services/monitoring/tuptime.nix b/nixpkgs/nixos/modules/services/monitoring/tuptime.nix
index 731260a5c20a..8f79d9165990 100644
--- a/nixpkgs/nixos/modules/services/monitoring/tuptime.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/tuptime.nix
@@ -32,7 +32,10 @@ in {
 
     environment.systemPackages = [ pkgs.tuptime ];
 
-    users.users.tuptime.description = "tuptime database owner";
+    users = {
+      groups._tuptime.members = [ "_tuptime" ];
+      users._tuptime.description = "tuptime database owner";
+    };
 
     systemd = {
       services = {
@@ -45,7 +48,7 @@ in {
           serviceConfig = {
             StateDirectory = "tuptime";
             Type = "oneshot";
-            User = "tuptime";
+            User = "_tuptime";
             RemainAfterExit = true;
             ExecStart = "${pkgs.tuptime}/bin/tuptime -x";
             ExecStop = "${pkgs.tuptime}/bin/tuptime -xg";
@@ -57,7 +60,7 @@ in {
           serviceConfig = {
             StateDirectory = "tuptime";
             Type = "oneshot";
-            User = "tuptime";
+            User = "_tuptime";
             ExecStart = "${pkgs.tuptime}/bin/tuptime -x";
           };
         };
diff --git a/nixpkgs/nixos/modules/services/monitoring/unifi-poller.nix b/nixpkgs/nixos/modules/services/monitoring/unifi-poller.nix
new file mode 100644
index 000000000000..208f5e4875b4
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/monitoring/unifi-poller.nix
@@ -0,0 +1,242 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.unifi-poller;
+
+  configFile = pkgs.writeText "unifi-poller.json" (generators.toJSON {} {
+    inherit (cfg) poller influxdb prometheus unifi;
+  });
+
+in {
+  options.services.unifi-poller = {
+    enable = mkEnableOption "unifi-poller";
+
+    poller = {
+      debug = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Turns on line numbers, microsecond logging, and a per-device log.
+          This may be noisy if you have a lot of devices. It adds one line per device.
+        '';
+      };
+      quiet = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Turns off per-interval logs. Only startup and error logs will be emitted.
+        '';
+      };
+      plugins = mkOption {
+        type = with types; listOf str;
+        default = [];
+        description = ''
+          Load additional plugins.
+        '';
+      };
+    };
+
+    prometheus = {
+      disable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to disable the prometheus ouput plugin.
+        '';
+      };
+      http_listen = mkOption {
+        type = types.str;
+        default = "[::]:9130";
+        description = ''
+          Bind the prometheus exporter to this IP or hostname.
+        '';
+      };
+      report_errors = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to report errors.
+        '';
+      };
+    };
+
+    influxdb = {
+      disable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to disable the influxdb ouput plugin.
+        '';
+      };
+      url = mkOption {
+        type = types.str;
+        default = "http://127.0.0.1:8086";
+        description = ''
+          URL of the influxdb host.
+        '';
+      };
+      user = mkOption {
+        type = types.str;
+        default = "unifipoller";
+        description = ''
+          Username for the influxdb.
+        '';
+      };
+      pass = mkOption {
+        type = types.path;
+        default = pkgs.writeText "unifi-poller-influxdb-default.password" "unifipoller";
+        defaultText = "unifi-poller-influxdb-default.password";
+        description = ''
+          Path of a file containing the password for influxdb.
+          This file needs to be readable by the unifi-poller user.
+        '';
+        apply = v: "file://${v}";
+      };
+      db = mkOption {
+        type = types.str;
+        default = "unifi";
+        description = ''
+          Database name. Database should exist.
+        '';
+      };
+      verify_ssl = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          Verify the influxdb's certificate.
+        '';
+      };
+      interval = mkOption {
+        type = types.str;
+        default = "30s";
+        description = ''
+          Setting this lower than the Unifi controller's refresh
+          interval may lead to zeroes in your database.
+        '';
+      };
+    };
+
+    unifi = let
+      controllerOptions = {
+        user = mkOption {
+          type = types.str;
+          default = "unifi";
+          description = ''
+            Unifi service user name.
+          '';
+        };
+        pass = mkOption {
+          type = types.path;
+          default = pkgs.writeText "unifi-poller-unifi-default.password" "unifi";
+          defaultText = "unifi-poller-unifi-default.password";
+          description = ''
+            Path of a file containing the password for the unifi service user.
+            This file needs to be readable by the unifi-poller user.
+          '';
+          apply = v: "file://${v}";
+        };
+        url = mkOption {
+          type = types.str;
+          default = "https://unifi:8443";
+          description = ''
+            URL of the Unifi controller.
+          '';
+        };
+        sites = mkOption {
+          type = with types; either (enum [ "default" "all" ]) (listOf str);
+          default = "all";
+          description = ''
+            List of site names for which statistics should be exported.
+            Or the string "default" for the default site or the string "all" for all sites.
+          '';
+          apply = toList;
+        };
+        save_ids = mkOption {
+          type = types.bool;
+          default = false;
+          description = ''
+            Collect and save data from the intrusion detection system to influxdb.
+          '';
+        };
+        save_dpi = mkOption {
+          type = types.bool;
+          default = false;
+          description = ''
+            Collect and save data from deep packet inspection.
+            Adds around 150 data points and impacts performance.
+          '';
+        };
+        save_sites = mkOption {
+          type = types.bool;
+          default = true;
+          description = ''
+            Collect and save site data.
+          '';
+        };
+        hash_pii = mkOption {
+          type = types.bool;
+          default = false;
+          description = ''
+            Hash, with md5, client names and MAC addresses. This attempts
+            to protect personally identifiable information.
+          '';
+        };
+        verify_ssl = mkOption {
+          type = types.bool;
+          default = true;
+          description = ''
+            Verify the Unifi controller's certificate.
+          '';
+        };
+      };
+
+    in {
+      dynamic = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Let prometheus select which controller to poll when scraping.
+          Use with default credentials. See unifi-poller wiki for more.
+        '';
+      };
+
+      defaults = controllerOptions;
+
+      controllers = mkOption {
+        type = with types; listOf (submodule { options = controllerOptions; });
+        default = [];
+        description = ''
+          List of Unifi controllers to poll. Use defaults if empty.
+        '';
+        apply = map (flip removeAttrs [ "_module" ]);
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    users.groups.unifi-poller = { };
+    users.users.unifi-poller = {
+      description = "unifi-poller Service User";
+      group = "unifi-poller";
+      isSystemUser = true;
+    };
+
+    systemd.services.unifi-poller = {
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+      serviceConfig = {
+        ExecStart = "${pkgs.unifi-poller}/bin/unifi-poller --config ${configFile}";
+        Restart = "always";
+        PrivateTmp = true;
+        ProtectHome = true;
+        ProtectSystem = "full";
+        DevicePolicy = "closed";
+        NoNewPrivileges = true;
+        User = "unifi-poller";
+        WorkingDirectory = "/tmp";
+      };
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/monitoring/zabbix-agent.nix b/nixpkgs/nixos/modules/services/monitoring/zabbix-agent.nix
index b3383ed628b2..73eed7aa66af 100644
--- a/nixpkgs/nixos/modules/services/monitoring/zabbix-agent.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/zabbix-agent.nix
@@ -3,8 +3,9 @@
 let
   cfg = config.services.zabbixAgent;
 
-  inherit (lib) mkDefault mkEnableOption mkIf mkOption;
+  inherit (lib) mkDefault mkEnableOption mkIf mkMerge mkOption;
   inherit (lib) attrValues concatMapStringsSep literalExample optionalString types;
+  inherit (lib.generators) toKeyValue;
 
   user = "zabbix-agent";
   group = "zabbix-agent";
@@ -14,19 +15,15 @@ let
     paths = attrValues cfg.modules;
   };
 
-  configFile = pkgs.writeText "zabbix_agent.conf" ''
-    LogType = console
-    Server = ${cfg.server}
-    ListenIP = ${cfg.listen.ip}
-    ListenPort = ${toString cfg.listen.port}
-    ${optionalString (cfg.modules != {}) "LoadModulePath = ${moduleEnv}/lib"}
-    ${concatMapStringsSep "\n" (name: "LoadModule = ${name}") (builtins.attrNames cfg.modules)}
-    ${cfg.extraConfig}
-  '';
+  configFile = pkgs.writeText "zabbix_agent.conf" (toKeyValue { listsAsDuplicateKeys = true; } cfg.settings);
 
 in
 
 {
+  imports = [
+    (lib.mkRemovedOptionModule [ "services" "zabbixAgent" "extraConfig" ] "Use services.zabbixAgent.settings instead.")
+  ];
+
   # interface
 
   options = {
@@ -105,15 +102,18 @@ in
         '';
       };
 
-      # TODO: for bonus points migrate this to https://github.com/NixOS/rfcs/pull/42
-      extraConfig = mkOption {
-        default = "";
-        type = types.lines;
+      settings = mkOption {
+        type = with types; attrsOf (oneOf [ int str (listOf str) ]);
+        default = {};
         description = ''
-          Configuration that is injected verbatim into the configuration file. Refer to
+          Zabbix Agent configuration. Refer to
           <link xlink:href="https://www.zabbix.com/documentation/current/manual/appendix/config/zabbix_agentd"/>
           for details on supported values.
         '';
+        example = {
+          Hostname = "example.org";
+          DebugLevel = 4;
+        };
       };
 
     };
@@ -124,6 +124,17 @@ in
 
   config = mkIf cfg.enable {
 
+    services.zabbixAgent.settings = mkMerge [
+      {
+        LogType = "console";
+        Server = cfg.server;
+        ListenIP = cfg.listen.ip;
+        ListenPort = cfg.listen.port;
+        LoadModule = builtins.attrNames cfg.modules;
+      }
+      (mkIf (cfg.modules != {}) { LoadModulePath = "${moduleEnv}/lib"; })
+    ];
+
     networking.firewall = mkIf cfg.openFirewall {
       allowedTCPPorts = [ cfg.listen.port ];
     };
diff --git a/nixpkgs/nixos/modules/services/monitoring/zabbix-proxy.nix b/nixpkgs/nixos/modules/services/monitoring/zabbix-proxy.nix
index 9d214469c3b3..2c8b8b92cb38 100644
--- a/nixpkgs/nixos/modules/services/monitoring/zabbix-proxy.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/zabbix-proxy.nix
@@ -5,8 +5,9 @@ let
   pgsql = config.services.postgresql;
   mysql = config.services.mysql;
 
-  inherit (lib) mkDefault mkEnableOption mkIf mkOption;
-  inherit (lib) attrValues concatMapStringsSep literalExample optional optionalAttrs optionalString types;
+  inherit (lib) mkAfter mkDefault mkEnableOption mkIf mkMerge mkOption;
+  inherit (lib) attrValues concatMapStringsSep getName literalExample optional optionalAttrs optionalString types;
+  inherit (lib.generators) toKeyValue;
 
   user = "zabbix";
   group = "zabbix";
@@ -19,24 +20,7 @@ let
     paths = attrValues cfg.modules;
   };
 
-  configFile = pkgs.writeText "zabbix_proxy.conf" ''
-    LogType = console
-    ListenIP = ${cfg.listen.ip}
-    ListenPort = ${toString cfg.listen.port}
-    Server = ${cfg.server}
-    # TODO: set to cfg.database.socket if database type is pgsql?
-    DBHost = ${optionalString (cfg.database.createLocally != true) cfg.database.host}
-    ${optionalString (cfg.database.createLocally != true) "DBPort = ${cfg.database.port}"}
-    DBName = ${cfg.database.name}
-    DBUser = ${cfg.database.user}
-    ${optionalString (cfg.database.passwordFile != null) "Include ${passwordFile}"}
-    ${optionalString (mysqlLocal && cfg.database.socket != null) "DBSocket = ${cfg.database.socket}"}
-    SocketDir = ${runtimeDir}
-    FpingLocation = /run/wrappers/bin/fping
-    ${optionalString (cfg.modules != {}) "LoadModulePath = ${moduleEnv}/lib"}
-    ${concatMapStringsSep "\n" (name: "LoadModule = ${name}") (builtins.attrNames cfg.modules)}
-    ${cfg.extraConfig}
-  '';
+  configFile = pkgs.writeText "zabbix_proxy.conf" (toKeyValue { listsAsDuplicateKeys = true; } cfg.settings);
 
   mysqlLocal = cfg.database.createLocally && cfg.database.type == "mysql";
   pgsqlLocal = cfg.database.createLocally && cfg.database.type == "pgsql";
@@ -44,6 +28,10 @@ let
 in
 
 {
+  imports = [
+    (lib.mkRemovedOptionModule [ "services" "zabbixProxy" "extraConfig" ] "Use services.zabbixProxy.settings instead.")
+  ];
+
   # interface
 
   options = {
@@ -182,15 +170,19 @@ in
         '';
       };
 
-      # TODO: for bonus points migrate this to https://github.com/NixOS/rfcs/pull/42
-      extraConfig = mkOption {
-        default = "";
-        type = types.lines;
+      settings = mkOption {
+        type = with types; attrsOf (oneOf [ int str (listOf str) ]);
+        default = {};
         description = ''
-          Configuration that is injected verbatim into the configuration file. Refer to
+          Zabbix Proxy configuration. Refer to
           <link xlink:href="https://www.zabbix.com/documentation/current/manual/appendix/config/zabbix_proxy"/>
           for details on supported values.
         '';
+        example = {
+          CacheSize = "1G";
+          SSHKeyLocation = "/var/lib/zabbix/.ssh";
+          StartPingers = 32;
+        };
       };
 
     };
@@ -213,6 +205,26 @@ in
       }
     ];
 
+    services.zabbixProxy.settings = mkMerge [
+      {
+        LogType = "console";
+        ListenIP = cfg.listen.ip;
+        ListenPort = cfg.listen.port;
+        Server = cfg.server;
+        # TODO: set to cfg.database.socket if database type is pgsql?
+        DBHost = optionalString (cfg.database.createLocally != true) cfg.database.host;
+        DBName = cfg.database.name;
+        DBUser = cfg.database.user;
+        SocketDir = runtimeDir;
+        FpingLocation = "/run/wrappers/bin/fping";
+        LoadModule = builtins.attrNames cfg.modules;
+      }
+      (mkIf (cfg.database.createLocally != true) { DBPort = cfg.database.port; })
+      (mkIf (cfg.database.passwordFile != null) { Include = [ "${passwordFile}" ]; })
+      (mkIf (mysqlLocal && cfg.database.socket != null) { DBSocket = cfg.database.socket; })
+      (mkIf (cfg.modules != {}) { LoadModulePath = "${moduleEnv}/lib"; })
+    ];
+
     networking.firewall = mkIf cfg.openFirewall {
       allowedTCPPorts = [ cfg.listen.port ];
     };
@@ -220,14 +232,15 @@ in
     services.mysql = optionalAttrs mysqlLocal {
       enable = true;
       package = mkDefault pkgs.mariadb;
-      ensureDatabases = [ cfg.database.name ];
-      ensureUsers = [
-        { name = cfg.database.user;
-          ensurePermissions = { "${cfg.database.name}.*" = "ALL PRIVILEGES"; };
-        }
-      ];
     };
 
+    systemd.services.mysql.postStart = mkAfter (optionalString mysqlLocal ''
+      ( echo "CREATE DATABASE IF NOT EXISTS \`${cfg.database.name}\` CHARACTER SET utf8 COLLATE utf8_bin;"
+        echo "CREATE USER IF NOT EXISTS '${cfg.database.user}'@'localhost' IDENTIFIED WITH ${if (getName config.services.mysql.package == getName pkgs.mariadb) then "unix_socket" else "auth_socket"};"
+        echo "GRANT ALL PRIVILEGES ON \`${cfg.database.name}\`.* TO '${cfg.database.user}'@'localhost';"
+      ) | ${config.services.mysql.package}/bin/mysql -N
+    '');
+
     services.postgresql = optionalAttrs pgsqlLocal {
       enable = true;
       ensureDatabases = [ cfg.database.name ];
diff --git a/nixpkgs/nixos/modules/services/monitoring/zabbix-server.nix b/nixpkgs/nixos/modules/services/monitoring/zabbix-server.nix
index b4e4378ce1e7..c8658634ecb6 100644
--- a/nixpkgs/nixos/modules/services/monitoring/zabbix-server.nix
+++ b/nixpkgs/nixos/modules/services/monitoring/zabbix-server.nix
@@ -5,8 +5,9 @@ let
   pgsql = config.services.postgresql;
   mysql = config.services.mysql;
 
-  inherit (lib) mkDefault mkEnableOption mkIf mkOption;
-  inherit (lib) attrValues concatMapStringsSep literalExample optional optionalAttrs optionalString types;
+  inherit (lib) mkAfter mkDefault mkEnableOption mkIf mkMerge mkOption;
+  inherit (lib) attrValues concatMapStringsSep getName literalExample optional optionalAttrs optionalString types;
+  inherit (lib.generators) toKeyValue;
 
   user = "zabbix";
   group = "zabbix";
@@ -19,24 +20,7 @@ let
     paths = attrValues cfg.modules;
   };
 
-  configFile = pkgs.writeText "zabbix_server.conf" ''
-    LogType = console
-    ListenIP = ${cfg.listen.ip}
-    ListenPort = ${toString cfg.listen.port}
-    # TODO: set to cfg.database.socket if database type is pgsql?
-    DBHost = ${optionalString (cfg.database.createLocally != true) cfg.database.host}
-    ${optionalString (cfg.database.createLocally != true) "DBPort = ${cfg.database.port}"}
-    DBName = ${cfg.database.name}
-    DBUser = ${cfg.database.user}
-    ${optionalString (cfg.database.passwordFile != null) "Include ${passwordFile}"}
-    ${optionalString (mysqlLocal && cfg.database.socket != null) "DBSocket = ${cfg.database.socket}"}
-    PidFile = ${runtimeDir}/zabbix_server.pid
-    SocketDir = ${runtimeDir}
-    FpingLocation = /run/wrappers/bin/fping
-    ${optionalString (cfg.modules != {}) "LoadModulePath = ${moduleEnv}/lib"}
-    ${concatMapStringsSep "\n" (name: "LoadModule = ${name}") (builtins.attrNames cfg.modules)}
-    ${cfg.extraConfig}
-  '';
+  configFile = pkgs.writeText "zabbix_server.conf" (toKeyValue { listsAsDuplicateKeys = true; } cfg.settings);
 
   mysqlLocal = cfg.database.createLocally && cfg.database.type == "mysql";
   pgsqlLocal = cfg.database.createLocally && cfg.database.type == "pgsql";
@@ -47,6 +31,7 @@ in
   imports = [
     (lib.mkRenamedOptionModule [ "services" "zabbixServer" "dbServer" ] [ "services" "zabbixServer" "database" "host" ])
     (lib.mkRemovedOptionModule [ "services" "zabbixServer" "dbPassword" ] "Use services.zabbixServer.database.passwordFile instead.")
+    (lib.mkRemovedOptionModule [ "services" "zabbixServer" "extraConfig" ] "Use services.zabbixServer.settings instead.")
   ];
 
   # interface
@@ -176,15 +161,19 @@ in
         '';
       };
 
-      # TODO: for bonus points migrate this to https://github.com/NixOS/rfcs/pull/42
-      extraConfig = mkOption {
-        default = "";
-        type = types.lines;
+      settings = mkOption {
+        type = with types; attrsOf (oneOf [ int str (listOf str) ]);
+        default = {};
         description = ''
-          Configuration that is injected verbatim into the configuration file. Refer to
+          Zabbix Server configuration. Refer to
           <link xlink:href="https://www.zabbix.com/documentation/current/manual/appendix/config/zabbix_server"/>
           for details on supported values.
         '';
+        example = {
+          CacheSize = "1G";
+          SSHKeyLocation = "/var/lib/zabbix/.ssh";
+          StartPingers = 32;
+        };
       };
 
     };
@@ -204,6 +193,26 @@ in
       }
     ];
 
+    services.zabbixServer.settings = mkMerge [
+      {
+        LogType = "console";
+        ListenIP = cfg.listen.ip;
+        ListenPort = cfg.listen.port;
+        # TODO: set to cfg.database.socket if database type is pgsql?
+        DBHost = optionalString (cfg.database.createLocally != true) cfg.database.host;
+        DBName = cfg.database.name;
+        DBUser = cfg.database.user;
+        PidFile = "${runtimeDir}/zabbix_server.pid";
+        SocketDir = runtimeDir;
+        FpingLocation = "/run/wrappers/bin/fping";
+        LoadModule = builtins.attrNames cfg.modules;
+      }
+      (mkIf (cfg.database.createLocally != true) { DBPort = cfg.database.port; })
+      (mkIf (cfg.database.passwordFile != null) { Include = [ "${passwordFile}" ]; })
+      (mkIf (mysqlLocal && cfg.database.socket != null) { DBSocket = cfg.database.socket; })
+      (mkIf (cfg.modules != {}) { LoadModulePath = "${moduleEnv}/lib"; })
+    ];
+
     networking.firewall = mkIf cfg.openFirewall {
       allowedTCPPorts = [ cfg.listen.port ];
     };
@@ -211,14 +220,15 @@ in
     services.mysql = optionalAttrs mysqlLocal {
       enable = true;
       package = mkDefault pkgs.mariadb;
-      ensureDatabases = [ cfg.database.name ];
-      ensureUsers = [
-        { name = cfg.database.user;
-          ensurePermissions = { "${cfg.database.name}.*" = "ALL PRIVILEGES"; };
-        }
-      ];
     };
 
+    systemd.services.mysql.postStart = mkAfter (optionalString mysqlLocal ''
+      ( echo "CREATE DATABASE IF NOT EXISTS \`${cfg.database.name}\` CHARACTER SET utf8 COLLATE utf8_bin;"
+        echo "CREATE USER IF NOT EXISTS '${cfg.database.user}'@'localhost' IDENTIFIED WITH ${if (getName config.services.mysql.package == getName pkgs.mariadb) then "unix_socket" else "auth_socket"};"
+        echo "GRANT ALL PRIVILEGES ON \`${cfg.database.name}\`.* TO '${cfg.database.user}'@'localhost';"
+      ) | ${config.services.mysql.package}/bin/mysql -N
+    '');
+
     services.postgresql = optionalAttrs pgsqlLocal {
       enable = true;
       ensureDatabases = [ cfg.database.name ];
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/cachefilesd.nix b/nixpkgs/nixos/modules/services/network-filesystems/cachefilesd.nix
index 619813408405..229c9665419f 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/cachefilesd.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/cachefilesd.nix
@@ -43,17 +43,21 @@ in
 
   config = mkIf cfg.enable {
 
+    boot.kernelModules = [ "cachefiles" ];
+
     systemd.services.cachefilesd = {
       description = "Local network file caching management daemon";
       wantedBy = [ "multi-user.target" ];
-      path = [ pkgs.kmod pkgs.cachefilesd ];
-      script = ''
-        modprobe -qab cachefiles
-        mkdir -p ${cfg.cacheDir}
-        chmod 700 ${cfg.cacheDir}
-        exec cachefilesd -n -f ${cfgFile}
-      '';
+      serviceConfig = {
+        Type = "exec";
+        ExecStart = "${pkgs.cachefilesd}/bin/cachefilesd -n -f ${cfgFile}";
+        Restart = "on-failure";
+        PrivateTmp = true;
+      };
     };
 
+    systemd.tmpfiles.rules = [
+      "d ${cfg.cacheDir} 0700 root root - -"
+    ];
   };
 }
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/ipfs.nix b/nixpkgs/nixos/modules/services/network-filesystems/ipfs.nix
index 7d18410ff0a4..f298f831fa7b 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/ipfs.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/ipfs.nix
@@ -25,6 +25,15 @@ let
       then "/${lib.concatStringsSep "/" (lib.tail addr)}"
     else null; # not valid for listen stream, skip
 
+  multiaddrToListenDatagram = addrRaw: let
+      addr = splitMulitaddr addrRaw;
+      s = builtins.elemAt addr;
+    in if s 0 == "ip4" && s 2 == "udp"
+      then "${s 1}:${s 3}"
+    else if s 0 == "ip6" && s 2 == "udp"
+      then "[${s 1}]:${s 3}"
+    else null; # not valid for listen datagram, skip
+
 in {
 
   ###### interface
@@ -96,6 +105,8 @@ in {
         default = [
           "/ip4/0.0.0.0/tcp/4001"
           "/ip6/::/tcp/4001"
+          "/ip4/0.0.0.0/udp/4001/quic"
+          "/ip6/::/udp/4001/quic"
         ];
         description = "Where IPFS listens for incoming p2p connections";
       };
@@ -266,9 +277,14 @@ in {
 
     systemd.sockets.ipfs-gateway = {
       wantedBy = [ "sockets.target" ];
-      socketConfig.ListenStream = let
-          fromCfg = multiaddrToListenStream cfg.gatewayAddress;
-        in [ "" ] ++ lib.optional (fromCfg != null) fromCfg;
+      socketConfig = {
+        ListenStream = let
+            fromCfg = multiaddrToListenStream cfg.gatewayAddress;
+          in [ "" ] ++ lib.optional (fromCfg != null) fromCfg;
+        ListenDatagram = let
+            fromCfg = multiaddrToListenDatagram cfg.gatewayAddress;
+          in [ "" ] ++ lib.optional (fromCfg != null) fromCfg;
+      };
     };
 
     systemd.sockets.ipfs-api = {
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/orangefs/server.nix b/nixpkgs/nixos/modules/services/network-filesystems/orangefs/server.nix
index 74ebdc134024..8eb754fe6110 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/orangefs/server.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/orangefs/server.nix
@@ -83,14 +83,14 @@ in {
       };
 
       dataStorageSpace = mkOption {
-        type = types.str;
+        type = types.nullOr types.str;
         default = null;
         example = "/data/storage";
         description = "Directory for data storage.";
       };
 
       metadataStorageSpace = mkOption {
-        type = types.str;
+        type = types.nullOr types.str;
         default = null;
         example = "/data/meta";
         description = "Directory for meta data storage.";
diff --git a/nixpkgs/nixos/modules/services/network-filesystems/samba.nix b/nixpkgs/nixos/modules/services/network-filesystems/samba.nix
index 08c912e0fcd4..7d3c601d6cd5 100644
--- a/nixpkgs/nixos/modules/services/network-filesystems/samba.nix
+++ b/nixpkgs/nixos/modules/services/network-filesystems/samba.nix
@@ -248,7 +248,7 @@ in
         };
 
         security.pam.services.samba = {};
-
+        environment.systemPackages = [ config.services.samba.package ];
       })
     ];
 
diff --git a/nixpkgs/nixos/modules/services/networking/biboumi.nix b/nixpkgs/nixos/modules/services/networking/biboumi.nix
new file mode 100644
index 000000000000..66ddca93d818
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/biboumi.nix
@@ -0,0 +1,269 @@
+{ config, lib, pkgs, options, ... }:
+with lib;
+let
+  cfg = config.services.biboumi;
+  inherit (config.environment) etc;
+  rootDir = "/run/biboumi/mnt-root";
+  stateDir = "/var/lib/biboumi";
+  settingsFile = pkgs.writeText "biboumi.cfg" (
+    generators.toKeyValue {
+      mkKeyValue = k: v:
+        if v == null then ""
+        else generators.mkKeyValueDefault {} "=" k v;
+    } cfg.settings);
+  need_CAP_NET_BIND_SERVICE = cfg.settings.identd_port != 0 && cfg.settings.identd_port < 1024;
+in
+{
+  options = {
+    services.biboumi = {
+      enable = mkEnableOption "the Biboumi XMPP gateway to IRC";
+
+      settings = mkOption {
+        description = ''
+          See <link xlink:href="https://lab.louiz.org/louiz/biboumi/blob/8.5/doc/biboumi.1.rst">biboumi 8.5</link>
+          for documentation.
+        '';
+        default = {};
+        type = types.submodule {
+          freeformType = with types;
+            (attrsOf (nullOr (oneOf [str int bool]))) // {
+              description = "settings option";
+            };
+          options.admin = mkOption {
+            type = with types; listOf str;
+            default = [];
+            example = ["admin@example.org"];
+            apply = concatStringsSep ":";
+            description = ''
+              The bare JID of the gateway administrator. This JID will have more
+              privileges than other standard users, for example some administration
+              ad-hoc commands will only be available to that JID.
+            '';
+          };
+          options.ca_file = mkOption {
+            type = types.path;
+            default = "/etc/ssl/certs/ca-certificates.crt";
+            description = ''
+              Specifies which file should be used as the list of trusted CA
+              when negociating a TLS session.
+            '';
+          };
+          options.db_name = mkOption {
+            type = with types; either path str;
+            default = "${stateDir}/biboumi.sqlite";
+            description = ''
+              The name of the database to use.
+            '';
+            example = "postgresql://user:secret@localhost";
+          };
+          options.hostname = mkOption {
+            type = types.str;
+            example = "biboumi.example.org";
+            description = ''
+              The hostname served by the XMPP gateway.
+              This domain must be configured in the XMPP server
+              as an external component.
+            '';
+          };
+          options.identd_port = mkOption {
+            type = types.port;
+            default = 113;
+            example = 0;
+            description = ''
+              The TCP port on which to listen for identd queries.
+            '';
+          };
+          options.log_level = mkOption {
+            type = types.ints.between 0 3;
+            default = 1;
+            description = ''
+              Indicate what type of log messages to write in the logs.
+              0 is debug, 1 is info, 2 is warning, 3 is error.
+            '';
+          };
+          options.password = mkOption {
+            type = with types; nullOr str;
+            description = ''
+              The password used to authenticate the XMPP component to your XMPP server.
+              This password must be configured in the XMPP server,
+              associated with the external component on
+              <link linkend="opt-services.biboumi.settings.hostname">hostname</link>.
+
+              Set it to null and use <link linkend="opt-services.biboumi.credentialsFile">credentialsFile</link>
+              if you do not want this password to go into the Nix store.
+            '';
+          };
+          options.persistent_by_default = mkOption {
+            type = types.bool;
+            default = false;
+            description = ''
+              Whether all rooms will be persistent by default:
+              the value of the “persistent” option in the global configuration of each
+              user will be “true”, but the value of each individual room will still
+              default to false. This means that a user just needs to change the global
+              “persistent” configuration option to false in order to override this.
+            '';
+          };
+          options.policy_directory = mkOption {
+            type = types.path;
+            default = "${pkgs.biboumi}/etc/biboumi";
+            description = ''
+              A directory that should contain the policy files,
+              used to customize Botan’s behaviour
+              when negociating the TLS connections with the IRC servers.
+            '';
+          };
+          options.port = mkOption {
+            type = types.port;
+            default = 5347;
+            description = ''
+              The TCP port to use to connect to the local XMPP component.
+            '';
+          };
+          options.realname_customization = mkOption {
+            type = types.bool;
+            default = true;
+            description = ''
+              Whether the users will be able to use
+              the ad-hoc commands that lets them configure
+              their realname and username.
+            '';
+          };
+          options.realname_from_jid = mkOption {
+            type = types.bool;
+            default = false;
+            description = ''
+              Whether the realname and username of each biboumi
+              user will be extracted from their JID.
+              Otherwise they will be set to the nick
+              they used to connect to the IRC server.
+            '';
+          };
+          options.xmpp_server_ip = mkOption {
+            type = types.str;
+            default = "127.0.0.1";
+            description = ''
+              The IP address to connect to the XMPP server on.
+              The connection to the XMPP server is unencrypted,
+              so the biboumi instance and the server should
+              normally be on the same host.
+            '';
+          };
+        };
+      };
+
+      credentialsFile = mkOption {
+        type = types.path;
+        description = ''
+          Path to a configuration file to be merged with the settings.
+          Beware not to surround "=" with spaces when setting biboumi's options in this file.
+          Useful to merge a file which is better kept out of the Nix store
+          because it contains sensible data like
+          <link linkend="opt-services.biboumi.settings.password">password</link>.
+        '';
+        default = "/dev/null";
+        example = "/run/keys/biboumi.cfg";
+      };
+
+      openFirewall = mkEnableOption "opening of the identd port in the firewall";
+    };
+  };
+
+  config = mkIf cfg.enable {
+    networking.firewall = mkIf (cfg.openFirewall && cfg.settings.identd_port != 0)
+      { allowedTCPPorts = [ cfg.settings.identd_port ]; };
+
+    systemd.services.biboumi = {
+      description = "Biboumi, XMPP to IRC gateway";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+
+      serviceConfig = {
+        Type = "notify";
+        # Biboumi supports systemd's watchdog.
+        WatchdogSec = 20;
+        Restart = "always";
+        # Use "+" because credentialsFile may not be accessible to User= or Group=.
+        ExecStartPre = [("+" + pkgs.writeShellScript "biboumi-prestart" ''
+          set -eux
+          cat ${settingsFile} '${cfg.credentialsFile}' |
+          install -m 644 /dev/stdin /run/biboumi/biboumi.cfg
+        '')];
+        ExecStart = "${pkgs.biboumi}/bin/biboumi /run/biboumi/biboumi.cfg";
+        ExecReload = "${pkgs.coreutils}/bin/kill -USR1 $MAINPID";
+        # Firewalls needing opening for output connections can still do that
+        # selectively for biboumi with:
+        # users.users.biboumi.isSystemUser = true;
+        # and, for example:
+        # networking.nftables.ruleset = ''
+        #   add rule inet filter output meta skuid biboumi tcp accept
+        # '';
+        DynamicUser = true;
+        RootDirectory = rootDir;
+        RootDirectoryStartOnly = true;
+        InaccessiblePaths = [ "-+${rootDir}" ];
+        RuntimeDirectory = [ "biboumi" (removePrefix "/run/" rootDir) ];
+        RuntimeDirectoryMode = "700";
+        StateDirectory = "biboumi";
+        StateDirectoryMode = "700";
+        MountAPIVFS = true;
+        UMask = "0066";
+        BindPaths = [
+          stateDir
+          # This is for Type="notify"
+          # See https://github.com/systemd/systemd/issues/3544
+          "/run/systemd/notify"
+          "/run/systemd/journal/socket"
+        ];
+        BindReadOnlyPaths = [
+          builtins.storeDir
+          "/etc"
+        ];
+        # The following options are only for optimizing:
+        # systemd-analyze security biboumi
+        AmbientCapabilities = [ (optionalString need_CAP_NET_BIND_SERVICE "CAP_NET_BIND_SERVICE") ];
+        CapabilityBoundingSet = [ (optionalString need_CAP_NET_BIND_SERVICE "CAP_NET_BIND_SERVICE") ];
+        # ProtectClock= adds DeviceAllow=char-rtc r
+        DeviceAllow = "";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateMounts = true;
+        PrivateNetwork = mkDefault false;
+        PrivateTmp = true;
+        # PrivateUsers=true breaks AmbientCapabilities=CAP_NET_BIND_SERVICE
+        # See https://bugs.archlinux.org/task/65921
+        PrivateUsers = !need_CAP_NET_BIND_SERVICE;
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        ProtectHome = true;
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectSystem = "strict";
+        RemoveIPC = true;
+        # AF_UNIX is for /run/systemd/notify
+        RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SystemCallFilter = [
+          "@system-service"
+          # Groups in @system-service which do not contain a syscall
+          # listed by perf stat -e 'syscalls:sys_enter_*' biboumi biboumi.cfg
+          # in tests, and seem likely not necessary for biboumi.
+          # To run such a perf in ExecStart=, you have to:
+          # - AmbientCapabilities="CAP_SYS_ADMIN"
+          # - mount -o remount,mode=755 /sys/kernel/debug/{,tracing}
+          "~@aio" "~@chown" "~@ipc" "~@keyring" "~@resources" "~@setuid" "~@timer"
+        ];
+        SystemCallArchitectures = "native";
+        SystemCallErrorNumber = "EPERM";
+      };
+    };
+  };
+
+  meta.maintainers = with maintainers; [ julm ];
+}
diff --git a/nixpkgs/nixos/modules/services/networking/bitcoind.nix b/nixpkgs/nixos/modules/services/networking/bitcoind.nix
index 4e00a8865474..bc9aa53f49aa 100644
--- a/nixpkgs/nixos/modules/services/networking/bitcoind.nix
+++ b/nixpkgs/nixos/modules/services/networking/bitcoind.nix
@@ -3,31 +3,8 @@
 with lib;
 
 let
-  cfg = config.services.bitcoind;
-  pidFile = "${cfg.dataDir}/bitcoind.pid";
-  configFile = pkgs.writeText "bitcoin.conf" ''
-    ${optionalString cfg.testnet "testnet=1"}
-    ${optionalString (cfg.dbCache != null) "dbcache=${toString cfg.dbCache}"}
-    ${optionalString (cfg.prune != null) "prune=${toString cfg.prune}"}
-
-    # Connection options
-    ${optionalString (cfg.port != null) "port=${toString cfg.port}"}
-
-    # RPC server options
-    ${optionalString (cfg.rpc.port != null) "rpcport=${toString cfg.rpc.port}"}
-    ${concatMapStringsSep  "\n"
-      (rpcUser: "rpcauth=${rpcUser.name}:${rpcUser.passwordHMAC}")
-      (attrValues cfg.rpc.users)
-    }
 
-    # Extra config options (from bitcoind nixos service)
-    ${cfg.extraConfig}
-  '';
-  cmdlineOptions = escapeShellArgs [
-    "-conf=${cfg.configFile}"
-    "-datadir=${cfg.dataDir}"
-    "-pid=${pidFile}"
-  ];
+  eachBitcoind = config.services.bitcoind;
 
   rpcUserOpts = { name, ... }: {
     options = {
@@ -39,11 +16,14 @@ let
         '';
       };
       passwordHMAC = mkOption {
-        type = with types; uniq (strMatching "[0-9a-f]+\\$[0-9a-f]{64}");
+        type = types.uniq (types.strMatching "[0-9a-f]+\\$[0-9a-f]{64}");
         example = "f7efda5c189b999524f151318c0c86$d5b51b3beffbc02b724e5d095828e0bc8b2456e9ac8757ae3211a5d9b16a22ae";
         description = ''
           Password HMAC-SHA-256 for JSON-RPC connections. Must be a string of the
           format &lt;SALT-HEX&gt;$&lt;HMAC-HEX&gt;.
+
+          Tool (Python script) for HMAC generation is available here:
+          <link xlink:href="https://github.com/bitcoin/bitcoin/blob/master/share/rpcauth/rpcauth.py"/>
         '';
       };
     };
@@ -51,10 +31,10 @@ let
       name = mkDefault name;
     };
   };
-in {
-  options = {
 
-    services.bitcoind = {
+  bitcoindOpts = { config, lib, name, ...}: {
+    options = {
+
       enable = mkEnableOption "Bitcoin daemon";
 
       package = mkOption {
@@ -63,12 +43,14 @@ in {
         defaultText = "pkgs.bitcoind";
         description = "The package providing bitcoin binaries.";
       };
+
       configFile = mkOption {
-        type = types.path;
-        default = configFile;
-        example = "/etc/bitcoind.conf";
+        type = types.nullOr types.path;
+        default = null;
+        example = "/var/lib/${name}/bitcoin.conf";
         description = "The configuration file path to supply bitcoind.";
       };
+
       extraConfig = mkOption {
         type = types.lines;
         default = "";
@@ -79,20 +61,22 @@ in {
         '';
         description = "Additional configurations to be appended to <filename>bitcoin.conf</filename>.";
       };
+
       dataDir = mkOption {
         type = types.path;
-        default = "/var/lib/bitcoind";
+        default = "/var/lib/bitcoind-${name}";
         description = "The data directory for bitcoind.";
       };
 
       user = mkOption {
         type = types.str;
-        default = "bitcoin";
+        default = "bitcoind-${name}";
         description = "The user as which to run bitcoind.";
       };
+
       group = mkOption {
         type = types.str;
-        default = cfg.user;
+        default = config.user;
         description = "The group as which to run bitcoind.";
       };
 
@@ -110,29 +94,36 @@ in {
               bob.passwordHMAC = "b2dd077cb54591a2f3139e69a897ac$4e71f08d48b4347cf8eff3815c0e25ae2e9a4340474079f55705f40574f4ec99";
             }
           '';
-          type = with types; loaOf (submodule rpcUserOpts);
-          description = ''
-            RPC user information for JSON-RPC connnections.
-          '';
+          type = types.attrsOf (types.submodule rpcUserOpts);
+          description = "RPC user information for JSON-RPC connnections.";
         };
       };
 
+      pidFile = mkOption {
+        type = types.path;
+        default = "${config.dataDir}/bitcoind.pid";
+        description = "Location of bitcoind pid file.";
+      };
+
       testnet = mkOption {
         type = types.bool;
         default = false;
-        description = "Whether to use the test chain.";
+        description = "Whether to use the testnet instead of mainnet.";
       };
+
       port = mkOption {
         type = types.nullOr types.port;
         default = null;
         description = "Override the default port on which to listen for connections.";
       };
+
       dbCache = mkOption {
         type = types.nullOr (types.ints.between 4 16384);
         default = null;
         example = 4000;
-        description = "Override the default database cache size in megabytes.";
+        description = "Override the default database cache size in MiB.";
       };
+
       prune = mkOption {
         type = types.nullOr (types.coercedTo
           (types.enum [ "disable" "manual" ])
@@ -149,45 +140,122 @@ in {
           and -rescan. Warning: Reverting this setting requires re-downloading
           the entire blockchain. ("disable" = disable pruning blocks, "manual"
           = allow manual pruning via RPC, >=550 = automatically prune block files
-          to stay under the specified target size in MiB)
+          to stay under the specified target size in MiB).
+        '';
+      };
+
+      extraCmdlineOptions = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''
+          Extra command line options to pass to bitcoind.
+          Run bitcoind --help to list all available options.
         '';
       };
     };
   };
+in
+{
 
-  config = mkIf cfg.enable {
-    environment.systemPackages = [ cfg.package ];
-    systemd.tmpfiles.rules = [
-      "d '${cfg.dataDir}' 0770 '${cfg.user}' '${cfg.group}' - -"
-      "L '${cfg.dataDir}/bitcoin.conf' - - - - '${cfg.configFile}'"
-    ];
-    systemd.services.bitcoind = {
-      description = "Bitcoin daemon";
-      after = [ "network.target" ];
-      wantedBy = [ "multi-user.target" ];
-      serviceConfig = {
-        User = cfg.user;
-        Group = cfg.group;
-        ExecStart = "${cfg.package}/bin/bitcoind ${cmdlineOptions}";
-        Restart = "on-failure";
-
-        # Hardening measures
-        PrivateTmp = "true";
-        ProtectSystem = "full";
-        NoNewPrivileges = "true";
-        PrivateDevices = "true";
-        MemoryDenyWriteExecute = "true";
-      };
+  options = {
+    services.bitcoind = mkOption {
+      type = types.attrsOf (types.submodule bitcoindOpts);
+      default = {};
+      description = "Specification of one or more bitcoind instances.";
     };
-    users.users.${cfg.user} = {
+  };
+
+  config = mkIf (eachBitcoind != {}) {
+
+    assertions = flatten (mapAttrsToList (bitcoindName: cfg: [
+    {
+      assertion = (cfg.prune != null) -> (builtins.elem cfg.prune [ "disable" "manual" 0 1 ] || (builtins.isInt cfg.prune && cfg.prune >= 550));
+      message = ''
+        If set, services.bitcoind.${bitcoindName}.prune has to be "disable", "manual", 0 , 1 or >= 550.
+      '';
+    }
+    {
+      assertion = (cfg.rpc.users != {}) -> (cfg.configFile == null);
+      message = ''
+        You cannot set both services.bitcoind.${bitcoindName}.rpc.users and services.bitcoind.${bitcoindName}.configFile
+        as they are exclusive. RPC user setting would have no effect if custom configFile would be used.
+      '';
+    }
+    ]) eachBitcoind);
+
+    environment.systemPackages = flatten (mapAttrsToList (bitcoindName: cfg: [
+      cfg.package
+    ]) eachBitcoind);
+
+    systemd.services = mapAttrs' (bitcoindName: cfg: (
+      nameValuePair "bitcoind-${bitcoindName}" (
+      let
+        configFile = pkgs.writeText "bitcoin.conf" ''
+          # If Testnet is enabled, we need to add [test] section
+          # otherwise, some options (e.g.: custom RPC port) will not work
+          ${optionalString cfg.testnet "[test]"}
+          # RPC users
+          ${concatMapStringsSep  "\n"
+            (rpcUser: "rpcauth=${rpcUser.name}:${rpcUser.passwordHMAC}")
+            (attrValues cfg.rpc.users)
+          }
+          # Extra config options (from bitcoind nixos service)
+          ${cfg.extraConfig}
+        '';
+      in {
+        description = "Bitcoin daemon";
+        after = [ "network.target" ];
+        wantedBy = [ "multi-user.target" ];
+        serviceConfig = {
+          User = cfg.user;
+          Group = cfg.group;
+          ExecStart = ''
+            ${cfg.package}/bin/bitcoind \
+            ${if (cfg.configFile != null) then
+              "-conf=${cfg.configFile}"
+            else
+              "-conf=${configFile}"
+            } \
+            -datadir=${cfg.dataDir} \
+            -pid=${cfg.pidFile} \
+            ${optionalString cfg.testnet "-testnet"}\
+            ${optionalString (cfg.port != null) "-port=${toString cfg.port}"}\
+            ${optionalString (cfg.prune != null) "-prune=${toString cfg.prune}"}\
+            ${optionalString (cfg.dbCache != null) "-dbcache=${toString cfg.dbCache}"}\
+            ${optionalString (cfg.rpc.port != null) "-rpcport=${toString cfg.rpc.port}"}\
+            ${toString cfg.extraCmdlineOptions}
+          '';
+          Restart = "on-failure";
+
+          # Hardening measures
+          PrivateTmp = "true";
+          ProtectSystem = "full";
+          NoNewPrivileges = "true";
+          PrivateDevices = "true";
+          MemoryDenyWriteExecute = "true";
+        };
+      }
+    ))) eachBitcoind;
+
+    systemd.tmpfiles.rules = flatten (mapAttrsToList (bitcoindName: cfg: [
+      "d '${cfg.dataDir}' 0770 '${cfg.user}' '${cfg.group}' - -"
+    ]) eachBitcoind);
+
+    users.users = mapAttrs' (bitcoindName: cfg: (
+      nameValuePair "bitcoind-${bitcoindName}" {
       name = cfg.user;
       group = cfg.group;
       description = "Bitcoin daemon user";
       home = cfg.dataDir;
       isSystemUser = true;
-    };
-    users.groups.${cfg.group} = {
-      name = cfg.group;
-    };
+    })) eachBitcoind;
+
+    users.groups = mapAttrs' (bitcoindName: cfg: (
+      nameValuePair "${cfg.group}" { }
+    )) eachBitcoind;
+
   };
+
+  meta.maintainers = with maintainers; [ _1000101 ];
+
 }
diff --git a/nixpkgs/nixos/modules/services/networking/blockbook-frontend.nix b/nixpkgs/nixos/modules/services/networking/blockbook-frontend.nix
new file mode 100644
index 000000000000..dde24522756a
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/blockbook-frontend.nix
@@ -0,0 +1,275 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  eachBlockbook = config.services.blockbook-frontend;
+
+  blockbookOpts = { config, lib, name, ...}: {
+
+    options = {
+
+      enable = mkEnableOption "blockbook-frontend application.";
+
+      package = mkOption {
+        type = types.package;
+        default = pkgs.blockbook;
+        description = "Which blockbook package to use.";
+      };
+
+      user = mkOption {
+        type = types.str;
+        default = "blockbook-frontend-${name}";
+        description = "The user as which to run blockbook-frontend-${name}.";
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = "${config.user}";
+        description = "The group as which to run blockbook-frontend-${name}.";
+      };
+
+      certFile = mkOption {
+        type = types.nullOr types.path;
+        default = null;
+        example = "/etc/secrets/blockbook-frontend-${name}/certFile";
+        description = ''
+          To enable SSL, specify path to the name of certificate files without extension.
+          Expecting <filename>certFile.crt</filename> and <filename>certFile.key</filename>.
+        '';
+      };
+
+      configFile = mkOption {
+        type = with types; nullOr path;
+        default = null;
+        example = "${config.dataDir}/config.json";
+        description = "Location of the blockbook configuration file.";
+      };
+
+      coinName = mkOption {
+        type = types.str;
+        default = "Bitcoin";
+        example = "Bitcoin";
+        description = ''
+          See <link xlink:href="https://github.com/trezor/blockbook/blob/master/bchain/coins/blockchain.go#L61"/>
+          for current of coins supported in master (Note: may differ from release).
+        '';
+      };
+
+      cssDir = mkOption {
+        type = types.path;
+        default = "${config.package}/share/css/";
+        example = "${config.dataDir}/static/css/";
+        description = ''
+          Location of the dir with <filename>main.css</filename> CSS file.
+          By default, the one shipped with the package is used.
+        '';
+      };
+
+      dataDir = mkOption {
+        type = types.path;
+        default = "/var/lib/blockbook-frontend-${name}";
+        description = "Location of blockbook-frontend-${name} data directory.";
+      };
+
+      debug = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Debug mode, return more verbose errors, reload templates on each request.";
+      };
+
+      internal = mkOption {
+        type = types.nullOr types.str;
+        default = ":9030";
+        example = ":9030";
+        description = "Internal http server binding <literal>[address]:port</literal>.";
+      };
+
+      messageQueueBinding = mkOption {
+        type = types.str;
+        default = "tcp://127.0.0.1:38330";
+        example = "tcp://127.0.0.1:38330";
+        description = "Message Queue Binding <literal>address:port</literal>.";
+      };
+
+      public = mkOption {
+        type = types.nullOr types.str;
+        default = ":9130";
+        example = ":9130";
+        description = "Public http server binding <literal>[address]:port</literal>.";
+      };
+
+      rpc = {
+        url = mkOption {
+          type = types.str;
+          default = "http://127.0.0.1";
+          description = "URL for JSON-RPC connections.";
+        };
+
+        port = mkOption {
+          type = types.port;
+          default = 8030;
+          description = "Port for JSON-RPC connections.";
+        };
+
+        user = mkOption {
+          type = types.str;
+          default = "rpc";
+          example = "rpc";
+          description = "Username for JSON-RPC connections.";
+        };
+
+        password = mkOption {
+          type = types.str;
+          default = "rpc";
+          example = "rpc";
+          description = ''
+            RPC password for JSON-RPC connections.
+            Warning: this is stored in cleartext in the Nix store!!!
+            Use <literal>configFile</literal> or <literal>passwordFile</literal> if needed.
+          '';
+        };
+
+        passwordFile = mkOption {
+          type = types.nullOr types.path;
+          default = null;
+          description = ''
+            File containing password of the RPC user.
+            Note: This options is ignored when <literal>configFile</literal> is used.
+          '';
+        };
+      };
+
+      sync = mkOption {
+        type = types.bool;
+        default = true;
+        description = "Synchronizes until tip, if together with zeromq, keeps index synchronized.";
+      };
+
+      templateDir = mkOption {
+        type = types.path;
+        default = "${config.package}/share/templates/";
+        example = "${config.dataDir}/templates/static/";
+        description = "Location of the HTML templates. By default, ones shipped with the package are used.";
+      };
+
+      extraConfig = mkOption {
+        type = types.attrs;
+        default = {};
+        example = literalExample '' {
+          alternative_estimate_fee = "whatthefee-disabled";
+          alternative_estimate_fee_params = "{\"url\": \"https://whatthefee.io/data.json\", \"periodSeconds\": 60}";
+          fiat_rates = "coingecko";
+          fiat_rates_params = "{\"url\": \"https://api.coingecko.com/api/v3\", \"coin\": \"bitcoin\", \"periodSeconds\": 60}";
+          coin_shortcut = "BTC";
+          coin_label = "Bitcoin";
+          xpub_magic = 76067358;
+          xpub_magic_segwit_p2sh = 77429938;
+          xpub_magic_segwit_native = 78792518;
+        }'';
+        description = ''
+          Additional configurations to be appended to <filename>coin.conf</filename>.
+          Overrides any already defined configuration options.
+          See <link xlink:href="https://github.com/trezor/blockbook/tree/master/configs/coins"/>
+          for current configuration options supported in master (Note: may differ from release).
+        '';
+      };
+
+      extraCmdLineOptions = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        example = [ "-workers=1" "-dbcache=0" "-logtosderr" ];
+        description = ''
+          Extra command line options to pass to Blockbook.
+          Run blockbook --help to list all available options.
+        '';
+      };
+    };
+  };
+in
+{
+  # interface
+
+  options = {
+    services.blockbook-frontend = mkOption {
+      type = types.attrsOf (types.submodule blockbookOpts);
+      default = {};
+      description = "Specification of one or more blockbook-frontend instances.";
+    };
+  };
+
+  # implementation
+
+  config = mkIf (eachBlockbook != {}) {
+
+    systemd.services = mapAttrs' (blockbookName: cfg: (
+      nameValuePair "blockbook-frontend-${blockbookName}" (
+        let
+          configFile = if cfg.configFile != null then cfg.configFile else
+            pkgs.writeText "config.conf" (builtins.toJSON ( {
+                coin_name = "${cfg.coinName}";
+                rpc_user = "${cfg.rpc.user}";
+                rpc_pass = "${cfg.rpc.password}";
+                rpc_url = "${cfg.rpc.url}:${toString cfg.rpc.port}";
+                message_queue_binding = "${cfg.messageQueueBinding}";
+              } // cfg.extraConfig)
+            );
+        in {
+          description = "blockbook-frontend-${blockbookName} daemon";
+          after = [ "network.target" ];
+          wantedBy = [ "multi-user.target" ];
+          preStart = ''
+            ln -sf ${cfg.templateDir} ${cfg.dataDir}/static/
+            ln -sf ${cfg.cssDir} ${cfg.dataDir}/static/
+            ${optionalString (cfg.rpc.passwordFile != null && cfg.configFile == null) ''
+              CONFIGTMP=$(mktemp)
+              ${pkgs.jq}/bin/jq ".rpc_pass = \"$(cat ${cfg.rpc.passwordFile})\"" ${configFile} > $CONFIGTMP
+              mv $CONFIGTMP ${cfg.dataDir}/${blockbookName}-config.json
+            ''}
+          '';
+          serviceConfig = {
+            User = cfg.user;
+            Group = cfg.group;
+            ExecStart = ''
+               ${cfg.package}/bin/blockbook \
+               ${if (cfg.rpc.passwordFile != null && cfg.configFile == null) then
+               "-blockchaincfg=${cfg.dataDir}/${blockbookName}-config.json"
+               else
+               "-blockchaincfg=${configFile}"
+               } \
+               -datadir=${cfg.dataDir} \
+               ${optionalString (cfg.sync != false) "-sync"} \
+               ${optionalString (cfg.certFile != null) "-certfile=${toString cfg.certFile}"} \
+               ${optionalString (cfg.debug != false) "-debug"} \
+               ${optionalString (cfg.internal != null) "-internal=${toString cfg.internal}"} \
+               ${optionalString (cfg.public != null) "-public=${toString cfg.public}"} \
+               ${toString cfg.extraCmdLineOptions}
+            '';
+            Restart = "on-failure";
+            WorkingDirectory = cfg.dataDir;
+            LimitNOFILE = 65536;
+          };
+        }
+    ) )) eachBlockbook;
+
+    systemd.tmpfiles.rules = flatten (mapAttrsToList (blockbookName: cfg: [
+      "d ${cfg.dataDir} 0750 ${cfg.user} ${cfg.group} - -"
+      "d ${cfg.dataDir}/static 0750 ${cfg.user} ${cfg.group} - -"
+    ]) eachBlockbook);
+
+    users.users = mapAttrs' (blockbookName: cfg: (
+      nameValuePair "blockbook-frontend-${blockbookName}" {
+      name = cfg.user;
+      group = cfg.group;
+      home = cfg.dataDir;
+      isSystemUser = true;
+    })) eachBlockbook;
+
+    users.groups = mapAttrs' (instanceName: cfg: (
+      nameValuePair "${cfg.group}" { })) eachBlockbook;
+  };
+
+  meta.maintainers = with maintainers; [ _1000101 ];
+
+}
diff --git a/nixpkgs/nixos/modules/services/networking/corerad.nix b/nixpkgs/nixos/modules/services/networking/corerad.nix
index 5d73c0a0d779..d90a5923bc62 100644
--- a/nixpkgs/nixos/modules/services/networking/corerad.nix
+++ b/nixpkgs/nixos/modules/services/networking/corerad.nix
@@ -77,8 +77,11 @@ in {
         AmbientCapabilities = "CAP_NET_ADMIN CAP_NET_RAW";
         NoNewPrivileges = true;
         DynamicUser = true;
+        Type = "notify";
+        NotifyAccess = "main";
         ExecStart = "${getBin cfg.package}/bin/corerad -c=${cfg.configFile}";
         Restart = "on-failure";
+        RestartKillSignal = "SIGHUP";
       };
     };
   };
diff --git a/nixpkgs/nixos/modules/services/networking/dhcpd.nix b/nixpkgs/nixos/modules/services/networking/dhcpd.nix
index 67f7d8118870..8966deac76cb 100644
--- a/nixpkgs/nixos/modules/services/networking/dhcpd.nix
+++ b/nixpkgs/nixos/modules/services/networking/dhcpd.nix
@@ -11,7 +11,7 @@ let
     ''
       default-lease-time 600;
       max-lease-time 7200;
-      authoritative;
+      ${optionalString (!cfg.authoritative) "not "}authoritative;
       ddns-update-style interim;
       log-facility local1; # see dhcpd.nix
 
@@ -176,6 +176,16 @@ let
       '';
     };
 
+    authoritative = mkOption {
+      type = types.bool;
+      default = true;
+      description = ''
+        Whether the DHCP server shall send DHCPNAK messages to misconfigured
+        clients. If this is not done, clients may be unable to get a correct
+        IP address after changing subnets until their old lease has expired.
+      '';
+    };
+
   };
 
 in
diff --git a/nixpkgs/nixos/modules/services/networking/gateone.nix b/nixpkgs/nixos/modules/services/networking/gateone.nix
index 4456a95402ed..56f2ba21a125 100644
--- a/nixpkgs/nixos/modules/services/networking/gateone.nix
+++ b/nixpkgs/nixos/modules/services/networking/gateone.nix
@@ -56,4 +56,4 @@ config = mkIf cfg.enable {
   };
 };
 }
-  
+
diff --git a/nixpkgs/nixos/modules/services/networking/heyefi.nix b/nixpkgs/nixos/modules/services/networking/heyefi.nix
deleted file mode 100644
index fc2b5a848578..000000000000
--- a/nixpkgs/nixos/modules/services/networking/heyefi.nix
+++ /dev/null
@@ -1,82 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-
-  cfg = config.services.heyefi;
-in
-
-{
-
-  ###### interface
-
-  options = {
-
-    services.heyefi = {
-
-      enable = mkEnableOption "heyefi";
-
-      cardMacaddress = mkOption {
-        default = "";
-        description = ''
-          An Eye-Fi card MAC address.
-          '';
-      };
-
-      uploadKey = mkOption {
-        default = "";
-        description = ''
-          An Eye-Fi card's upload key.
-          '';
-      };
-
-      uploadDir = mkOption {
-        example = "/home/username/pictures";
-        description = ''
-          The directory to upload the files to.
-          '';
-      };
-
-      user = mkOption {
-        default = "root";
-        description = ''
-          heyefi will be run under this user (user must exist,
-          this can be your user name).
-        '';
-      };
-
-    };
-
-  };
-
-
-  ###### implementation
-
-  config = mkIf cfg.enable {
-
-    systemd.services.heyefi =
-      {
-        description = "heyefi service";
-        after = [ "network.target" ];
-        wantedBy = [ "multi-user.target" ];
-        serviceConfig = {
-          User = "${cfg.user}";
-          Restart = "always";
-          ExecStart = "${pkgs.heyefi}/bin/heyefi";
-        };
-
-      };
-
-    environment.etc."heyefi/heyefi.config".text =
-      ''
-        # /etc/heyefi/heyefi.conf: DO NOT EDIT -- this file has been generated automatically.
-        cards = [["${config.services.heyefi.cardMacaddress}","${config.services.heyefi.uploadKey}"]]
-        upload_dir = "${toString config.services.heyefi.uploadDir}"
-      '';
-
-    environment.systemPackages = [ pkgs.heyefi ];
-
-  };
-
-}
diff --git a/nixpkgs/nixos/modules/services/networking/hylafax/options.nix b/nixpkgs/nixos/modules/services/networking/hylafax/options.nix
index 4ac6d3fa8432..9e28d09dffca 100644
--- a/nixpkgs/nixos/modules/services/networking/hylafax/options.nix
+++ b/nixpkgs/nixos/modules/services/networking/hylafax/options.nix
@@ -3,7 +3,7 @@
 let
 
   inherit (lib.options) literalExample mkEnableOption mkOption;
-  inherit (lib.types) bool enum int lines loaOf nullOr path str submodule;
+  inherit (lib.types) bool enum int lines attrsOf nullOr path str submodule;
   inherit (lib.modules) mkDefault mkIf mkMerge;
 
   commonDescr = ''
@@ -248,7 +248,7 @@ in
     };
 
     modems = mkOption {
-      type = loaOf (submodule [ modemConfigOptions ]);
+      type = attrsOf (submodule [ modemConfigOptions ]);
       default = {};
       example.ttyS1 = {
         type = "cirrus";
diff --git a/nixpkgs/nixos/modules/services/networking/jicofo.nix b/nixpkgs/nixos/modules/services/networking/jicofo.nix
new file mode 100644
index 000000000000..160a5fea91a0
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/jicofo.nix
@@ -0,0 +1,152 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.jicofo;
+in
+{
+  options.services.jicofo = with types; {
+    enable = mkEnableOption "Jitsi Conference Focus - component of Jitsi Meet";
+
+    xmppHost = mkOption {
+      type = str;
+      example = "localhost";
+      description = ''
+        Hostname of the XMPP server to connect to.
+      '';
+    };
+
+    xmppDomain = mkOption {
+      type = nullOr str;
+      example = "meet.example.org";
+      description = ''
+        Domain name of the XMMP server to which to connect as a component.
+
+        If null, <option>xmppHost</option> is used.
+      '';
+    };
+
+    componentPasswordFile = mkOption {
+      type = str;
+      example = "/run/keys/jicofo-component";
+      description = ''
+        Path to file containing component secret.
+      '';
+    };
+
+    userName = mkOption {
+      type = str;
+      default = "focus";
+      description = ''
+        User part of the JID for XMPP user connection.
+      '';
+    };
+
+    userDomain = mkOption {
+      type = str;
+      example = "auth.meet.example.org";
+      description = ''
+        Domain part of the JID for XMPP user connection.
+      '';
+    };
+
+    userPasswordFile = mkOption {
+      type = str;
+      example = "/run/keys/jicofo-user";
+      description = ''
+        Path to file containing password for XMPP user connection.
+      '';
+    };
+
+    bridgeMuc = mkOption {
+      type = str;
+      example = "jvbbrewery@internal.meet.example.org";
+      description = ''
+        JID of the internal MUC used to communicate with Videobridges.
+      '';
+    };
+
+    config = mkOption {
+      type = attrsOf str;
+      default = { };
+      example = literalExample ''
+        {
+          "org.jitsi.jicofo.auth.URL" = "XMPP:jitsi-meet.example.com";
+        }
+      '';
+      description = ''
+        Contents of the <filename>sip-communicator.properties</filename> configuration file for jicofo.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    services.jicofo.config = mapAttrs (_: v: mkDefault v) {
+      "org.jitsi.jicofo.BRIDGE_MUC" = cfg.bridgeMuc;
+    };
+
+    users.groups.jitsi-meet = {};
+
+    systemd.services.jicofo = let
+      jicofoProps = {
+        "-Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION" = "/etc/jitsi";
+        "-Dnet.java.sip.communicator.SC_HOME_DIR_NAME" = "jicofo";
+        "-Djava.util.logging.config.file" = "/etc/jitsi/jicofo/logging.properties";
+      };
+    in
+    {
+      description = "JItsi COnference FOcus";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+
+      restartTriggers = [
+        config.environment.etc."jitsi/jicofo/sip-communicator.properties".source
+      ];
+      environment.JAVA_SYS_PROPS = concatStringsSep " " (mapAttrsToList (k: v: "${k}=${toString v}") jicofoProps);
+
+      script = ''
+        ${pkgs.jicofo}/bin/jicofo \
+          --host=${cfg.xmppHost} \
+          --domain=${if cfg.xmppDomain == null then cfg.xmppHost else cfg.xmppDomain} \
+          --secret=$(cat ${cfg.componentPasswordFile}) \
+          --user_name=${cfg.userName} \
+          --user_domain=${cfg.userDomain} \
+          --user_password=$(cat ${cfg.userPasswordFile})
+      '';
+
+      serviceConfig = {
+        Type = "exec";
+
+        DynamicUser = true;
+        User = "jicofo";
+        Group = "jitsi-meet";
+
+        CapabilityBoundingSet = "";
+        NoNewPrivileges = true;
+        ProtectSystem = "strict";
+        ProtectHome = true;
+        PrivateTmp = true;
+        PrivateDevices = true;
+        ProtectHostname = true;
+        ProtectKernelTunables = true;
+        ProtectKernelModules = true;
+        ProtectControlGroups = true;
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ];
+        RestrictNamespaces = true;
+        LockPersonality = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+      };
+    };
+
+    environment.etc."jitsi/jicofo/sip-communicator.properties".source =
+      pkgs.writeText "sip-communicator.properties" (
+        generators.toKeyValue {} cfg.config
+      );
+    environment.etc."jitsi/jicofo/logging.properties".source =
+      mkDefault "${pkgs.jicofo}/etc/jitsi/jicofo/logging.properties-journal";
+  };
+
+  meta.maintainers = lib.teams.jitsi.members;
+}
diff --git a/nixpkgs/nixos/modules/services/networking/jitsi-videobridge.nix b/nixpkgs/nixos/modules/services/networking/jitsi-videobridge.nix
new file mode 100644
index 000000000000..5482e997a401
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/jitsi-videobridge.nix
@@ -0,0 +1,276 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.jitsi-videobridge;
+  attrsToArgs = a: concatStringsSep " " (mapAttrsToList (k: v: "${k}=${toString v}") a);
+
+  # HOCON is a JSON superset that videobridge2 uses for configuration.
+  # It can substitute environment variables which we use for passwords here.
+  # https://github.com/lightbend/config/blob/master/README.md
+  #
+  # Substitution for environment variable FOO is represented as attribute set
+  # { __hocon_envvar = "FOO"; }
+  toHOCON = x: if isAttrs x && x ? __hocon_envvar then ("\${" + x.__hocon_envvar + "}")
+    else if isAttrs x then "{${ concatStringsSep "," (mapAttrsToList (k: v: ''"${k}":${toHOCON v}'') x) }}"
+    else if isList x then "[${ concatMapStringsSep "," toHOCON x }]"
+    else builtins.toJSON x;
+
+  # We're passing passwords in environment variables that have names generated
+  # from an attribute name, which may not be a valid bash identifier.
+  toVarName = s: "XMPP_PASSWORD_" + stringAsChars (c: if builtins.match "[A-Za-z0-9]" c != null then c else "_") s;
+
+  defaultJvbConfig = {
+    videobridge = {
+      ice = {
+        tcp = {
+          enabled = true;
+          port = 4443;
+        };
+        udp.port = 10000;
+      };
+      stats = {
+        enabled = true;
+        transports = [ { type = "muc"; } ];
+      };
+      apis.xmpp-client.configs = flip mapAttrs cfg.xmppConfigs (name: xmppConfig: {
+        hostname = xmppConfig.hostName;
+        domain = xmppConfig.domain;
+        username = xmppConfig.userName;
+        password = { __hocon_envvar = toVarName name; };
+        muc_jids = xmppConfig.mucJids;
+        muc_nickname = xmppConfig.mucNickname;
+        disable_certificate_verification = xmppConfig.disableCertificateVerification;
+      });
+    };
+  };
+
+  # Allow overriding leaves of the default config despite types.attrs not doing any merging.
+  jvbConfig = recursiveUpdate defaultJvbConfig cfg.config;
+in
+{
+  options.services.jitsi-videobridge = with types; {
+    enable = mkEnableOption "Jitsi Videobridge, a WebRTC compatible video router";
+
+    config = mkOption {
+      type = attrs;
+      default = { };
+      example = literalExample ''
+        {
+          videobridge = {
+            ice.udp.port = 5000;
+            websockets = {
+              enabled = true;
+              server-id = "jvb1";
+            };
+          };
+        }
+      '';
+      description = ''
+        Videobridge configuration.
+
+        See <link xlink:href="https://github.com/jitsi/jitsi-videobridge/blob/master/src/main/resources/reference.conf" />
+        for default configuration with comments.
+      '';
+    };
+
+    xmppConfigs = mkOption {
+      description = ''
+        XMPP servers to connect to.
+
+        See <link xlink:href="https://github.com/jitsi/jitsi-videobridge/blob/master/doc/muc.md" /> for more information.
+      '';
+      default = { };
+      example = literalExample ''
+        {
+          "localhost" = {
+            hostName = "localhost";
+            userName = "jvb";
+            domain = "auth.xmpp.example.org";
+            passwordFile = "/var/lib/jitsi-meet/videobridge-secret";
+            mucJids = "jvbbrewery@internal.xmpp.example.org";
+          };
+        }
+      '';
+      type = attrsOf (submodule ({ name, ... }: {
+        options = {
+          hostName = mkOption {
+            type = str;
+            example = "xmpp.example.org";
+            description = ''
+              Hostname of the XMPP server to connect to. Name of the attribute set is used by default.
+            '';
+          };
+          domain = mkOption {
+            type = nullOr str;
+            default = null;
+            example = "auth.xmpp.example.org";
+            description = ''
+              Domain part of JID of the XMPP user, if it is different from hostName.
+            '';
+          };
+          userName = mkOption {
+            type = str;
+            default = "jvb";
+            description = ''
+              User part of the JID.
+            '';
+          };
+          passwordFile = mkOption {
+            type = str;
+            example = "/run/keys/jitsi-videobridge-xmpp1";
+            description = ''
+              File containing the password for the user.
+            '';
+          };
+          mucJids = mkOption {
+            type = str;
+            example = "jvbbrewery@internal.xmpp.example.org";
+            description = ''
+              JID of the MUC to join. JiCoFo needs to be configured to join the same MUC.
+            '';
+          };
+          mucNickname = mkOption {
+            # Upstream DEBs use UUID, let's use hostname instead.
+            type = str;
+            description = ''
+              Videobridges use the same XMPP account and need to be distinguished by the
+              nickname (aka resource part of the JID). By default, system hostname is used.
+            '';
+          };
+          disableCertificateVerification = mkOption {
+            type = bool;
+            default = false;
+            description = ''
+              Whether to skip validation of the server's certificate.
+            '';
+          };
+        };
+        config = {
+          hostName = mkDefault name;
+          mucNickname = mkDefault (builtins.replaceStrings [ "." ] [ "-" ] (
+            config.networking.hostName + optionalString (config.networking.domain != null) ".${config.networking.domain}"
+          ));
+        };
+      }));
+    };
+
+    nat = {
+      localAddress = mkOption {
+        type = nullOr str;
+        default = null;
+        example = "192.168.1.42";
+        description = ''
+          Local address when running behind NAT.
+        '';
+      };
+
+      publicAddress = mkOption {
+        type = nullOr str;
+        default = null;
+        example = "1.2.3.4";
+        description = ''
+          Public address when running behind NAT.
+        '';
+      };
+    };
+
+    extraProperties = mkOption {
+      type = attrsOf str;
+      default = { };
+      description = ''
+        Additional Java properties passed to jitsi-videobridge.
+      '';
+    };
+
+    openFirewall = mkOption {
+      type = bool;
+      default = false;
+      description = ''
+        Whether to open ports in the firewall for the videobridge.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    users.groups.jitsi-meet = {};
+
+    services.jitsi-videobridge.extraProperties = optionalAttrs (cfg.nat.localAddress != null) {
+      "org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS" = cfg.nat.localAddress;
+      "org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS" = cfg.nat.publicAddress;
+    };
+
+    systemd.services.jitsi-videobridge2 = let
+      jvbProps = {
+        "-Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION" = "/etc/jitsi";
+        "-Dnet.java.sip.communicator.SC_HOME_DIR_NAME" = "videobridge";
+        "-Djava.util.logging.config.file" = "/etc/jitsi/videobridge/logging.properties";
+        "-Dconfig.file" = pkgs.writeText "jvb.conf" (toHOCON jvbConfig);
+      } // (mapAttrs' (k: v: nameValuePair "-D${k}" v) cfg.extraProperties);
+    in
+    {
+      aliases = [ "jitsi-videobridge.service" ];
+      description = "Jitsi Videobridge";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+
+      environment.JAVA_SYS_PROPS = attrsToArgs jvbProps;
+
+      script = (concatStrings (mapAttrsToList (name: xmppConfig:
+        "export ${toVarName name}=$(cat ${xmppConfig.passwordFile})\n"
+      ) cfg.xmppConfigs))
+      + ''
+        ${pkgs.jitsi-videobridge}/bin/jitsi-videobridge --apis=none
+      '';
+
+      serviceConfig = {
+        Type = "exec";
+
+        DynamicUser = true;
+        User = "jitsi-videobridge";
+        Group = "jitsi-meet";
+
+        CapabilityBoundingSet = "";
+        NoNewPrivileges = true;
+        ProtectSystem = "strict";
+        ProtectHome = true;
+        PrivateTmp = true;
+        PrivateDevices = true;
+        ProtectHostname = true;
+        ProtectKernelTunables = true;
+        ProtectKernelModules = true;
+        ProtectControlGroups = true;
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6" "AF_UNIX" ];
+        RestrictNamespaces = true;
+        LockPersonality = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+
+        TasksMax = 65000;
+        LimitNPROC = 65000;
+        LimitNOFILE = 65000;
+      };
+    };
+
+    environment.etc."jitsi/videobridge/logging.properties".source =
+      mkDefault "${pkgs.jitsi-videobridge}/etc/jitsi/videobridge/logging.properties-journal";
+
+    # (from videobridge2 .deb)
+    # this sets the max, so that we can bump the JVB UDP single port buffer size.
+    boot.kernel.sysctl."net.core.rmem_max" = mkDefault 10485760;
+    boot.kernel.sysctl."net.core.netdev_max_backlog" = mkDefault 100000;
+
+    networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall
+      [ jvbConfig.videobridge.ice.tcp.port ];
+    networking.firewall.allowedUDPPorts = mkIf cfg.openFirewall
+      [ jvbConfig.videobridge.ice.udp.port ];
+
+    assertions = [{
+      message = "publicAddress must be set if and only if localAddress is set";
+      assertion = (cfg.nat.publicAddress == null) == (cfg.nat.localAddress == null);
+    }];
+  };
+
+  meta.maintainers = lib.teams.jitsi.members;
+}
diff --git a/nixpkgs/nixos/modules/services/networking/kresd.nix b/nixpkgs/nixos/modules/services/networking/kresd.nix
index c5a84eebd46f..ccb34163d5f3 100644
--- a/nixpkgs/nixos/modules/services/networking/kresd.nix
+++ b/nixpkgs/nixos/modules/services/networking/kresd.nix
@@ -129,14 +129,17 @@ in {
     systemd.services."kresd@".serviceConfig = {
       ExecStart = "${package}/bin/kresd --noninteractive "
         + "-c ${package}/lib/knot-resolver/distro-preconfig.lua -c ${configFile}";
-      # Ensure correct ownership in case UID or GID changes.
+      # Ensure /run/knot-resolver exists
+      RuntimeDirectory = "knot-resolver";
+      RuntimeDirectoryMode = "0770";
+      # Ensure /var/lib/knot-resolver exists
+      StateDirectory = "knot-resolver";
+      StateDirectoryMode = "0770";
+      # Ensure /var/cache/knot-resolver exists
       CacheDirectory = "knot-resolver";
-      CacheDirectoryMode = "0750";
+      CacheDirectoryMode = "0770";
     };
 
-    environment.etc."tmpfiles.d/knot-resolver.conf".source =
-      "${package}/lib/tmpfiles.d/knot-resolver.conf";
-
     # Try cleaning up the previously default location of cache file.
     # Note that /var/cache/* should always be safe to remove.
     # TODO: remove later, probably between 20.09 and 21.03
diff --git a/nixpkgs/nixos/modules/services/networking/monero.nix b/nixpkgs/nixos/modules/services/networking/monero.nix
index 97af29978397..fde3293fc131 100644
--- a/nixpkgs/nixos/modules/services/networking/monero.nix
+++ b/nixpkgs/nixos/modules/services/networking/monero.nix
@@ -87,7 +87,7 @@ in
       };
 
       rpc.password = mkOption {
-        type = types.str;
+        type = types.nullOr types.str;
         default = null;
         description = ''
           Password for RPC connections.
diff --git a/nixpkgs/nixos/modules/services/networking/mstpd.nix b/nixpkgs/nixos/modules/services/networking/mstpd.nix
index 5d1fc4a65427..bd71010ce549 100644
--- a/nixpkgs/nixos/modules/services/networking/mstpd.nix
+++ b/nixpkgs/nixos/modules/services/networking/mstpd.nix
@@ -5,7 +5,7 @@ in
 with lib;
 {
   options.services.mstpd = {
-    
+
     enable = mkOption {
       default = false;
       type = types.bool;
diff --git a/nixpkgs/nixos/modules/services/networking/namecoind.nix b/nixpkgs/nixos/modules/services/networking/namecoind.nix
index 6ca99e1321bd..16f85df2e77c 100644
--- a/nixpkgs/nixos/modules/services/networking/namecoind.nix
+++ b/nixpkgs/nixos/modules/services/networking/namecoind.nix
@@ -89,7 +89,7 @@ in
       };
 
       rpc.password = mkOption {
-        type = types.str;
+        type = types.nullOr types.str;
         default = null;
         description = ''
           Password for RPC connections.
diff --git a/nixpkgs/nixos/modules/services/networking/ncdns.nix b/nixpkgs/nixos/modules/services/networking/ncdns.nix
new file mode 100644
index 000000000000..c1832ad17520
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/ncdns.nix
@@ -0,0 +1,278 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfgs = config.services;
+  cfg  = cfgs.ncdns;
+
+  dataDir  = "/var/lib/ncdns";
+  username = "ncdns";
+
+  valueType = with types; oneOf [ int str bool path ]
+    // { description = "setting type (integer, string, bool or path)"; };
+
+  configType = with types; attrsOf (nullOr (either valueType configType))
+    // { description = ''
+          ncdns.conf configuration type. The format consists of an
+          attribute set of settings. Each setting can be either `null`,
+          a value or an attribute set. The allowed values are integers,
+          strings, booleans or paths.
+         '';
+       };
+
+  configFile = pkgs.runCommand "ncdns.conf"
+    { json = builtins.toJSON cfg.settings;
+      passAsFile = [ "json" ];
+    }
+    "${pkgs.remarshal}/bin/json2toml < $jsonPath > $out";
+
+  defaultFiles = {
+    public  = "${dataDir}/bit.key";
+    private = "${dataDir}/bit.private";
+    zonePublic  = "${dataDir}/bit-zone.key";
+    zonePrivate = "${dataDir}/bit-zone.private";
+  };
+
+  # if all keys are the default value
+  needsKeygen = all id (flip mapAttrsToList cfg.dnssec.keys
+    (n: v: v == getAttr n defaultFiles));
+
+  mkDefaultAttrs = mapAttrs (n: v: mkDefault v);
+
+in
+
+{
+
+  ###### interface
+
+  options = {
+
+    services.ncdns = {
+
+      enable = mkEnableOption ''
+        ncdns, a Go daemon to bridge Namecoin to DNS.
+        To resolve .bit domains set <literal>services.namecoind.enable = true;</literal>
+        and an RPC username/password
+      '';
+
+      address = mkOption {
+        type = types.str;
+        default = "127.0.0.1";
+        description = ''
+          The IP address the ncdns resolver will bind to.  Leave this unchanged
+          if you do not wish to directly expose the resolver.
+        '';
+      };
+
+      port = mkOption {
+        type = types.port;
+        default = 5333;
+        description = ''
+          The port the ncdns resolver will bind to.
+        '';
+      };
+
+      identity.hostname = mkOption {
+        type = types.str;
+        default = config.networking.hostName;
+        example = "example.com";
+        description = ''
+          The hostname of this ncdns instance, which defaults to the machine
+          hostname. If specified, ncdns lists the hostname as an NS record at
+          the zone apex:
+          <programlisting>
+          bit. IN NS ns1.example.com.
+          </programlisting>
+          If unset ncdns will generate an internal psuedo-hostname under the
+          zone, which will resolve to the value of
+          <option>services.ncdns.identity.address</option>.
+          If you are only using ncdns locally you can ignore this.
+        '';
+      };
+
+      identity.hostmaster = mkOption {
+        type = types.str;
+        default = "";
+        example = "root@example.com";
+        description = ''
+          An email address for the SOA record at the bit zone.
+          If you are only using ncdns locally you can ignore this.
+        '';
+      };
+
+      identity.address = mkOption {
+        type = types.str;
+        default = "127.127.127.127";
+        description = ''
+          The IP address the hostname specified in
+          <option>services.ncdns.identity.hostname</option> should resolve to.
+          If you are only using ncdns locally you can ignore this.
+        '';
+      };
+
+      dnssec.enable = mkEnableOption ''
+        DNSSEC support in ncdns. This will generate KSK and ZSK keypairs
+        (unless provided via the options
+        <option>services.ncdns.dnssec.publicKey</option>,
+        <option>services.ncdns.dnssec.privateKey</option> etc.) and add a trust
+        anchor to recursive resolvers
+      '';
+
+      dnssec.keys.public = mkOption {
+        type = types.path;
+        default = defaultFiles.public;
+        description = ''
+          Path to the file containing the KSK public key.
+          The key can be generated using the <literal>dnssec-keygen</literal>
+          command, provided by the package <package>bind</package> as follows:
+          <programlisting>
+          $ dnssec-keygen -a RSASHA256 -3 -b 2048 -f KSK bit
+          </programlisting>
+        '';
+      };
+
+      dnssec.keys.private = mkOption {
+        type = types.path;
+        default = defaultFiles.private;
+        description = ''
+          Path to the file containing the KSK private key.
+        '';
+      };
+
+      dnssec.keys.zonePublic = mkOption {
+        type = types.path;
+        default = defaultFiles.zonePublic;
+        description = ''
+          Path to the file containing the ZSK public key.
+          The key can be generated using the <literal>dnssec-keygen</literal>
+          command, provided by the package <package>bind</package> as follows:
+          <programlisting>
+          $ dnssec-keygen -a RSASHA256 -3 -b 2048 bit
+          </programlisting>
+        '';
+      };
+
+      dnssec.keys.zonePrivate = mkOption {
+        type = types.path;
+        default = defaultFiles.zonePrivate;
+        description = ''
+          Path to the file containing the ZSK private key.
+        '';
+      };
+
+      settings = mkOption {
+        type = configType;
+        default = { };
+        example = literalExample ''
+          { # enable webserver
+            ncdns.httplistenaddr = ":8202";
+
+            # synchronize TLS certs
+            certstore.nss = true;
+            # note: all paths are relative to the config file
+            certstore.nsscertdir =  "../../var/lib/ncdns";
+            certstore.nssdbdir = "../../home/alice/.pki/nssdb";
+          }
+        '';
+        description = ''
+          ncdns settings. Use this option to configure ncds
+          settings not exposed in a NixOS option or to bypass one.
+          See the example ncdns.conf file at <link xlink:href="
+          https://git.io/JfX7g"/> for the available options.
+        '';
+      };
+
+    };
+
+    services.pdns-recursor.resolveNamecoin = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Resolve <literal>.bit</literal> top-level domains using ncdns and namecoin.
+      '';
+    };
+
+  };
+
+
+  ###### implementation
+
+  config = mkIf cfg.enable {
+
+    services.pdns-recursor = mkIf cfgs.pdns-recursor.resolveNamecoin {
+      forwardZonesRecurse.bit = "127.0.0.1:${toString cfg.port}";
+      luaConfig =
+        if cfg.dnssec.enable
+          then ''readTrustAnchorsFromFile("${cfg.dnssec.keys.public}")''
+          else ''addNTA("bit", "namecoin DNSSEC disabled")'';
+    };
+
+    # Avoid pdns-recursor not finding the DNSSEC keys
+    systemd.services.pdns-recursor = mkIf cfgs.pdns-recursor.resolveNamecoin {
+      after = [ "ncdns.service" ];
+      wants = [ "ncdns.service" ];
+    };
+
+    services.ncdns.settings = mkDefaultAttrs {
+      ncdns =
+        { # Namecoin RPC
+          namecoinrpcaddress =
+            "${cfgs.namecoind.rpc.address}:${toString cfgs.namecoind.rpc.port}";
+          namecoinrpcusername = cfgs.namecoind.rpc.user;
+          namecoinrpcpassword = cfgs.namecoind.rpc.password;
+
+          # Identity
+          selfname = cfg.identity.hostname;
+          hostmaster = cfg.identity.hostmaster;
+          selfip = cfg.identity.address;
+
+          # Other
+          bind = "${cfg.address}:${toString cfg.port}";
+        }
+        // optionalAttrs cfg.dnssec.enable
+        { # DNSSEC
+          publickey  = "../.." + cfg.dnssec.keys.public;
+          privatekey = "../.." + cfg.dnssec.keys.private;
+          zonepublickey  = "../.." + cfg.dnssec.keys.zonePublic;
+          zoneprivatekey = "../.." + cfg.dnssec.keys.zonePrivate;
+        };
+
+        # Daemon
+        service.daemon = true;
+        xlog.journal = true;
+    };
+
+    users.users.ncdns =
+      { description = "ncdns daemon user"; };
+
+    systemd.services.ncdns = {
+      description = "ncdns daemon";
+      after    = [ "namecoind.service" ];
+      wantedBy = [ "multi-user.target" ];
+
+      serviceConfig = {
+        User = "ncdns";
+        StateDirectory = "ncdns";
+        Restart = "on-failure";
+        ExecStart = "${pkgs.ncdns}/bin/ncdns -conf=${configFile}";
+      };
+
+      preStart = optionalString (cfg.dnssec.enable && needsKeygen) ''
+        cd ${dataDir}
+        if [ ! -e bit.key ]; then
+          ${pkgs.bind}/bin/dnssec-keygen -a RSASHA256 -3 -b 2048 bit
+          mv Kbit.*.key bit-zone.key
+          mv Kbit.*.private bit-zone.private
+          ${pkgs.bind}/bin/dnssec-keygen -a RSASHA256 -3 -b 2048 -f KSK bit
+          mv Kbit.*.key bit.key
+          mv Kbit.*.private bit.private
+        fi
+      '';
+    };
+
+  };
+
+  meta.maintainers = with lib.maintainers; [ rnhmjoj ];
+
+}
diff --git a/nixpkgs/nixos/modules/services/networking/networkmanager.nix b/nixpkgs/nixos/modules/services/networking/networkmanager.nix
index cc789897b29f..17c549d42c32 100644
--- a/nixpkgs/nixos/modules/services/networking/networkmanager.nix
+++ b/nixpkgs/nixos/modules/services/networking/networkmanager.nix
@@ -458,7 +458,7 @@ in {
 
     systemd.services.NetworkManager-dispatcher = {
       wantedBy = [ "network.target" ];
-      restartTriggers = [ configFile ];
+      restartTriggers = [ configFile overrideNameserversScript ];
 
       # useful binaries for user-specified hooks
       path = [ pkgs.iproute pkgs.utillinux pkgs.coreutils ];
diff --git a/nixpkgs/nixos/modules/services/networking/nextdns.nix b/nixpkgs/nixos/modules/services/networking/nextdns.nix
new file mode 100644
index 000000000000..a633bff62ec7
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/nextdns.nix
@@ -0,0 +1,44 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.nextdns;
+in {
+  options = {
+    services.nextdns = {
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = "Whether to enable the NextDNS DNS/53 to DoH Proxy service.";
+      };
+      arguments = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        example = [ "-config" "10.0.3.0/24=abcdef" ];
+        description = "Additional arguments to be passed to nextdns run.";
+      };
+    };
+  };
+
+  # https://github.com/nextdns/nextdns/blob/628ea509eaaccd27adb66337db03e5b56f6f38a8/host/service/systemd/service.go
+  config = mkIf cfg.enable {
+    systemd.services.nextdns = {
+      description = "NextDNS DNS/53 to DoH Proxy";
+      environment = {
+        SERVICE_RUN_MODE = "1";
+      };
+      serviceConfig = {
+        StartLimitInterval = 5;
+        StartLimitBurst = 10;
+        ExecStart = "${pkgs.nextdns}/bin/nextdns run ${escapeShellArgs config.services.nextdns.arguments}";
+        RestartSec = 120;
+        LimitMEMLOCK = "infinity";
+      };
+      after = [ "network.target" ];
+      before = [ "nss-lookup.target" ];
+      wants = [ "nss-lookup.target" ];
+      wantedBy = [ "multi-user.target" ];
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/networking/nghttpx/default.nix b/nixpkgs/nixos/modules/services/networking/nghttpx/default.nix
index 881a2670f5db..b8a0a24e3aad 100644
--- a/nixpkgs/nixos/modules/services/networking/nghttpx/default.nix
+++ b/nixpkgs/nixos/modules/services/networking/nghttpx/default.nix
@@ -60,7 +60,7 @@ let
       # NB: nghttpx doesn't accept "tls", you must omit "no-tls" for
       # the default behavior of turning on TLS.
       params1 = lib.remove "tls" params0;
-          
+
       sections          = [ host] ++ params1;
       formattedSections = lib.concatStringsSep ";" sections;
     in
@@ -90,7 +90,7 @@ in
 { imports = [
     ./nghttpx-options.nix
   ];
-  
+
   config = lib.mkIf cfg.enable {
 
     users.groups.nghttpx = { };
@@ -98,7 +98,7 @@ in
       group = config.users.groups.nghttpx.name;
       isSystemUser = true;
     };
-      
+
 
     systemd.services = {
       nghttpx = {
diff --git a/nixpkgs/nixos/modules/services/networking/nsd.nix b/nixpkgs/nixos/modules/services/networking/nsd.nix
index 6e3eed0c5570..3ecbd06ee416 100644
--- a/nixpkgs/nixos/modules/services/networking/nsd.nix
+++ b/nixpkgs/nixos/modules/services/networking/nsd.nix
@@ -11,8 +11,6 @@ let
 
   # build nsd with the options needed for the given config
   nsdPkg = pkgs.nsd.override {
-    configFile = "${configFile}/nsd.conf";
-
     bind8Stats = cfg.bind8Stats;
     ipv6 = cfg.ipv6;
     ratelimit = cfg.ratelimit.enable;
@@ -897,7 +895,10 @@ in
               + "want, please enable 'services.nsd.rootServer'.";
     };
 
-    environment.systemPackages = [ nsdPkg ];
+    environment = {
+      systemPackages = [ nsdPkg ];
+      etc."nsd/nsd.conf".source = "${configFile}/nsd.conf";
+    };
 
     users.groups.${username}.gid = config.ids.gids.nsd;
 
diff --git a/nixpkgs/nixos/modules/services/networking/ntp/chrony.nix b/nixpkgs/nixos/modules/services/networking/ntp/chrony.nix
index b7e4c89a155c..78de50583f34 100644
--- a/nixpkgs/nixos/modules/services/networking/ntp/chrony.nix
+++ b/nixpkgs/nixos/modules/services/networking/ntp/chrony.nix
@@ -117,7 +117,6 @@ in
             ProtectHome = "yes";
             ProtectSystem = "full";
             PrivateTmp = "yes";
-            StateDirectory = "chrony";
           };
 
       };
diff --git a/nixpkgs/nixos/modules/services/networking/nylon.nix b/nixpkgs/nixos/modules/services/networking/nylon.nix
index 7c171281a926..bfc358cb12fb 100644
--- a/nixpkgs/nixos/modules/services/networking/nylon.nix
+++ b/nixpkgs/nixos/modules/services/networking/nylon.nix
@@ -140,7 +140,7 @@ in
     services.nylon = mkOption {
       default = {};
       description = "Collection of named nylon instances";
-      type = with types; loaOf (submodule nylonOpts);
+      type = with types; attrsOf (submodule nylonOpts);
       internal = true;
     };
 
diff --git a/nixpkgs/nixos/modules/services/networking/onedrive.nix b/nixpkgs/nixos/modules/services/networking/onedrive.nix
new file mode 100644
index 000000000000..c52f920bae25
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/onedrive.nix
@@ -0,0 +1,72 @@
+{ config, lib, pkgs, ... }:
+let
+  cfg = config.services.onedrive;
+
+  onedriveLauncher =  pkgs.writeShellScriptBin
+    "onedrive-launcher"
+    ''
+      # XDG_CONFIG_HOME is not recognized in the environment here.
+      if [ -f $HOME/.config/onedrive-launcher ]
+      then
+        # Hopefully using underscore boundary helps locate variables
+        for _onedrive_config_dirname_ in $(cat $HOME/.config/onedrive-launcher | grep -v '[ \t]*#' )
+        do
+          systemctl --user start onedrive@$_onedrive_config_dirname_
+        done
+      else
+        systemctl --user start onedrive@onedrive
+      fi
+    ''
+  ;
+
+in {
+  ### Documentation
+  # meta.doc = ./onedrive.xml;
+
+  ### Interface
+
+  options.services.onedrive = {
+    enable = lib.mkOption {
+      type = lib.types.bool;
+      default = false;
+      description = "Enable OneDrive service";
+    };
+
+     package = lib.mkOption {
+       type = lib.types.package;
+       default = pkgs.onedrive;
+       defaultText = "pkgs.onedrive";
+       example = lib.literalExample "pkgs.onedrive";
+       description = ''
+         OneDrive package to use.
+       '';
+     };
+  };
+### Implementation
+
+  config = lib.mkIf cfg.enable {
+    environment.systemPackages = [ cfg.package ];
+
+    systemd.user.services."onedrive@" = {
+      description = "Onedrive sync service";
+
+      serviceConfig = {
+        Type = "simple";
+        ExecStart = ''
+          ${cfg.package}/bin/onedrive --monitor --confdir=%h/.config/%i
+        '';
+        Restart="on-failure";
+        RestartSec=3;
+        RestartPreventExitStatus=3;
+      };
+    };
+
+    systemd.user.services.onedrive-launcher = {
+      wantedBy = [ "default.target" ];
+      serviceConfig = {
+        Type = "oneshot";
+        ExecStart = "${onedriveLauncher}/bin/onedrive-launcher";
+      };
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/networking/onedrive.xml b/nixpkgs/nixos/modules/services/networking/onedrive.xml
new file mode 100644
index 000000000000..5a9dcf01aeee
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/onedrive.xml
@@ -0,0 +1,34 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="onedrive">
+ <title>Microsoft OneDrive</title>
+ <para>
+  Microsoft Onedrive is a popular cloud file-hosting service, used by 85% of Fortune 500 companies. NixOS uses a popular OneDrive client for Linux maintained by github user abraunegg. The Linux client is excellent and allows customization of which files or paths to download, not much unlike the default Windows OneDrive client by Microsoft itself. The client allows syncing with multiple onedrive accounts at the same time, of any type- OneDrive personal, OneDrive business, Office365 and Sharepoint libraries, without any additional charge.
+ </para>
+ <para>
+  For more information, guides and documentation, see <link xlink:href="https://abraunegg.github.io/"/>.
+ </para>
+ <para>
+  To enable OneDrive support, add the following to your <filename>configuration.nix</filename>:
+<programlisting>
+<xref linkend="opt-services.onedrive.enable"/> = true;
+</programlisting>
+  This installs the <literal>onedrive</literal> package and a service <literal>onedriveLauncher</literal> which will instantiate a <literal>onedrive</literal> service for all your OneDrive accounts. Follow the steps in documentation of the onedrive client to setup your accounts. To use the service with multiple accounts, create a file named <filename>onedrive-launcher</filename> in <filename>~/.config</filename> and add the filename of the config directory, relative to <filename>~/.config</filename>. For example, if you have two OneDrive accounts with configs in <filename>~/.config/onedrive_bob_work</filename> and <filename>~/.config/onedrive_bob_personal</filename>, add the following lines:
+<programlisting>
+onedrive_bob_work
+# Not in use:
+# onedrive_bob_office365
+onedrive_bob_personal
+</programlisting>
+  No such file needs to be created if you are using only a single OneDrive account with config in the default location <filename>~/.config/onedrive</filename>, in the absence of <filename>~/.config/onedrive-launcher</filename>, only a single service is instantiated, with default config path.
+</para>
+
+  <para>
+  If you wish to use a custom OneDrive package, say from another channel, add the following line:
+<programlisting>
+<xref linkend="opt-services.onedrive.package"/> = pkgs.unstable.onedrive;
+</programlisting>
+ </para>
+</chapter>
diff --git a/nixpkgs/nixos/modules/services/networking/openvpn.nix b/nixpkgs/nixos/modules/services/networking/openvpn.nix
index dcd7e9e5fa4c..650f9c84ac72 100644
--- a/nixpkgs/nixos/modules/services/networking/openvpn.nix
+++ b/nixpkgs/nixos/modules/services/networking/openvpn.nix
@@ -11,7 +11,7 @@ let
   makeOpenVPNJob = cfg: name:
     let
 
-      path = (getAttr "openvpn-${name}" config.systemd.services).path;
+      path = makeBinPath (getAttr "openvpn-${name}" config.systemd.services).path;
 
       upScript = ''
         #! /bin/sh
diff --git a/nixpkgs/nixos/modules/services/networking/prosody.nix b/nixpkgs/nixos/modules/services/networking/prosody.nix
index cdd341c9fb62..a6c1cb0f4797 100644
--- a/nixpkgs/nixos/modules/services/networking/prosody.nix
+++ b/nixpkgs/nixos/modules/services/networking/prosody.nix
@@ -655,7 +655,7 @@ in
 
         description = "Define the virtual hosts";
 
-        type = with types; loaOf (submodule vHostOpts);
+        type = with types; attrsOf (submodule vHostOpts);
 
         example = {
           myhost = {
@@ -772,7 +772,7 @@ in
       };
 
       disco_items = {
-      ${ lib.concatStringsSep "\n" (builtins.map (x: ''{ "${x.url}", "${x.description}"};'') discoItems)} 
+      ${ lib.concatStringsSep "\n" (builtins.map (x: ''{ "${x.url}", "${x.description}"};'') discoItems)}
       };
 
       allow_registration = ${toLua cfg.allowRegistration}
diff --git a/nixpkgs/nixos/modules/services/networking/prosody.xml b/nixpkgs/nixos/modules/services/networking/prosody.xml
index 7859cb1578b7..471240cd1475 100644
--- a/nixpkgs/nixos/modules/services/networking/prosody.xml
+++ b/nixpkgs/nixos/modules/services/networking/prosody.xml
@@ -43,10 +43,10 @@ services.prosody = {
   <link linkend="opt-services.prosody.ssl.cert">ssl.cert</link> = "/var/lib/acme/example.org/fullchain.pem";
   <link linkend="opt-services.prosody.ssl.key">ssl.key</link> = "/var/lib/acme/example.org/key.pem";
   <link linkend="opt-services.prosody.virtualHosts">virtualHosts</link>."example.org" = {
-      <link linkend="opt-services.prosody.virtualHosts._name__.enabled">enabled</link> = true;
-      <link linkend="opt-services.prosody.virtualHosts._name__.domain">domain</link> = "example.org";
-      <link linkend="opt-services.prosody.virtualHosts._name__.ssl.cert">ssl.cert</link> = "/var/lib/acme/example.org/fullchain.pem";
-      <link linkend="opt-services.prosody.virtualHosts._name__.ssl.key">ssl.key</link> = "/var/lib/acme/example.org/key.pem";
+      <link linkend="opt-services.prosody.virtualHosts._name_.enabled">enabled</link> = true;
+      <link linkend="opt-services.prosody.virtualHosts._name_.domain">domain</link> = "example.org";
+      <link linkend="opt-services.prosody.virtualHosts._name_.ssl.cert">ssl.cert</link> = "/var/lib/acme/example.org/fullchain.pem";
+      <link linkend="opt-services.prosody.virtualHosts._name_.ssl.key">ssl.key</link> = "/var/lib/acme/example.org/key.pem";
   };
   <link linkend="opt-services.prosody.muc">muc</link> = [ {
       <link linkend="opt-services.prosody.muc">domain</link> = "conference.example.org";
@@ -65,7 +65,7 @@ services.prosody = {
    you'll need a single TLS certificate covering your main endpoint,
    the MUC one as well as the HTTP Upload one. We can generate such a
    certificate by leveraging the ACME
-   <link linkend="opt-security.acme.certs._name_.extraDomains">extraDomains</link> module option.
+   <link linkend="opt-security.acme.certs._name_.extraDomainNames">extraDomainNames</link> module option.
  </para>
  <para>
    Provided the setup detailed in the previous section, you'll need the following acme configuration to generate
@@ -78,8 +78,7 @@ security.acme = {
     "example.org" = {
       <link linkend="opt-security.acme.certs._name_.webroot">webroot</link> = "/var/www/example.org";
       <link linkend="opt-security.acme.certs._name_.email">email</link> = "root@example.org";
-      <link linkend="opt-security.acme.certs._name_.extraDomains">extraDomains."conference.example.org"</link> = null;
-      <link linkend="opt-security.acme.certs._name_.extraDomains">extraDomains."upload.example.org"</link> = null;
+      <link linkend="opt-security.acme.certs._name_.extraDomainNames">extraDomainNames</link> = [ "conference.example.org" "upload.example.org" ];
     };
   };
 };</programlisting>
diff --git a/nixpkgs/nixos/modules/services/networking/radicale.nix b/nixpkgs/nixos/modules/services/networking/radicale.nix
index 30bf22586f86..5af035fd59e0 100644
--- a/nixpkgs/nixos/modules/services/networking/radicale.nix
+++ b/nixpkgs/nixos/modules/services/networking/radicale.nix
@@ -8,8 +8,10 @@ let
 
   confFile = pkgs.writeText "radicale.conf" cfg.config;
 
-  # This enables us to default to version 2 while still not breaking configurations of people with version 1
-  defaultPackage = if versionAtLeast config.system.stateVersion "17.09" then {
+  defaultPackage = if versionAtLeast config.system.stateVersion "20.09" then {
+    pkg = pkgs.radicale3;
+    text = "pkgs.radicale3";
+  } else if versionAtLeast config.system.stateVersion "17.09" then {
     pkg = pkgs.radicale2;
     text = "pkgs.radicale2";
   } else {
@@ -35,8 +37,9 @@ in
       defaultText = defaultPackage.text;
       description = ''
         Radicale package to use. This defaults to version 1.x if
-        <literal>system.stateVersion &lt; 17.09</literal> and version 2.x
-        otherwise.
+        <literal>system.stateVersion &lt; 17.09</literal>, version 2.x if
+        <literal>17.09 ≤ system.stateVersion &lt; 20.09</literal>, and
+        version 3.x otherwise.
       '';
     };
 
diff --git a/nixpkgs/nixos/modules/services/networking/resilio.nix b/nixpkgs/nixos/modules/services/networking/resilio.nix
index e74e03fc0b07..6193d7340fc4 100644
--- a/nixpkgs/nixos/modules/services/networking/resilio.nix
+++ b/nixpkgs/nixos/modules/services/networking/resilio.nix
@@ -30,12 +30,12 @@ let
     download_limit = cfg.downloadLimit;
     upload_limit = cfg.uploadLimit;
     lan_encrypt_data = cfg.encryptLAN;
-  } // optionalAttrs cfg.enableWebUI {
+  } // optionalAttrs (cfg.directoryRoot != "") { directory_root = cfg.directoryRoot; }
+    // optionalAttrs cfg.enableWebUI {
     webui = { listen = "${cfg.httpListenAddr}:${toString cfg.httpListenPort}"; } //
       (optionalAttrs (cfg.httpLogin != "") { login = cfg.httpLogin; }) //
       (optionalAttrs (cfg.httpPass != "") { password = cfg.httpPass; }) //
-      (optionalAttrs (cfg.apiKey != "") { api_key = cfg.apiKey; }) //
-      (optionalAttrs (cfg.directoryRoot != "") { directory_root = cfg.directoryRoot; });
+      (optionalAttrs (cfg.apiKey != "") { api_key = cfg.apiKey; });
   } // optionalAttrs (sharedFoldersRecord != []) {
     shared_folders = sharedFoldersRecord;
   }));
@@ -109,8 +109,8 @@ in
 
       httpListenAddr = mkOption {
         type = types.str;
-        default = "0.0.0.0";
-        example = "1.2.3.4";
+        default = "[::1]";
+        example = "0.0.0.0";
         description = ''
           HTTP address to bind to.
         '';
@@ -206,16 +206,16 @@ in
 
           If you would like to be able to modify the contents of this
           directories, it is recommended that you make your user a
-          member of the <literal>resilio</literal> group.
+          member of the <literal>rslsync</literal> group.
 
           Directories in this list should be in the
-          <literal>resilio</literal> group, and that group must have
+          <literal>rslsync</literal> group, and that group must have
           write access to the directory. It is also recommended that
           <literal>chmod g+s</literal> is applied to the directory
           so that any sub directories created will also belong to
-          the <literal>resilio</literal> group. Also,
-          <literal>setfacl -d -m group:resilio:rwx</literal> and
-          <literal>setfacl -m group:resilio:rwx</literal> should also
+          the <literal>rslsync</literal> group. Also,
+          <literal>setfacl -d -m group:rslsync:rwx</literal> and
+          <literal>setfacl -m group:rslsync:rwx</literal> should also
           be applied so that the sub directories are writable by
           the group.
         '';
diff --git a/nixpkgs/nixos/modules/services/networking/robustirc-bridge.nix b/nixpkgs/nixos/modules/services/networking/robustirc-bridge.nix
new file mode 100644
index 000000000000..255af79ec04b
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/robustirc-bridge.nix
@@ -0,0 +1,47 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.robustirc-bridge;
+in
+{
+  options = {
+    services.robustirc-bridge = {
+      enable = mkEnableOption "RobustIRC bridge";
+
+      extraFlags = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        description = ''Extra flags passed to the <command>robustirc-bridge</command> command. See <link xlink:href="https://robustirc.net/docs/adminguide.html#_bridge">RobustIRC Documentation</link> or robustirc-bridge(1) for details.'';
+        example = [
+          "-network robustirc.net"
+        ];
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.robustirc-bridge = {
+      description = "RobustIRC bridge";
+      documentation = [
+        "man:robustirc-bridge(1)"
+        "https://robustirc.net/"
+      ];
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+
+      serviceConfig = {
+        DynamicUser = true;
+        ExecStart = "${pkgs.robustirc-bridge}/bin/robustirc-bridge ${concatStringsSep " " cfg.extraFlags}";
+        Restart = "on-failure";
+
+        # Hardening
+        PrivateDevices = true;
+        ProtectSystem = true;
+        ProtectHome = true;
+        PrivateTmp = true;
+      };
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/networking/seeks.nix b/nixpkgs/nixos/modules/services/networking/seeks.nix
deleted file mode 100644
index 40729225b6d0..000000000000
--- a/nixpkgs/nixos/modules/services/networking/seeks.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-
-  cfg = config.services.seeks;
-
-  confDir = cfg.confDir;
-
-  seeks = pkgs.seeks.override { seeks_confDir = confDir; };
-
-in
-
-{
-
-  ###### interface
-
-  options = {
-
-    services.seeks = {
-
-      enable = mkOption {
-        default = false;
-        type = types.bool;
-        description = "
-          Whether to enable the Seeks server.
-        ";
-      };
-
-      confDir = mkOption {
-        default = "";
-        type = types.str;
-        description = "
-          The Seeks server configuration. If it is not specified,
-          a default configuration is used.
-        ";
-      };
-
-    };
-
-  };
-
-
-  ###### implementation
-
-  config = mkIf config.services.seeks.enable {
-
-    users.users.seeks =
-      { uid = config.ids.uids.seeks;
-        description = "Seeks user";
-        createHome = true;
-        home = "/var/lib/seeks";
-      };
-
-    users.groups.seeks =
-      { gid = config.ids.gids.seeks;
-      };
-
-    systemd.services.seeks =
-      {
-        description = "Seeks server, the p2p search engine.";
-        after = [ "network.target" ];
-        wantedBy = [ "multi-user.target" ];
-        serviceConfig = {
-          User = "seeks";
-          ExecStart = "${seeks}/bin/seeks";
-        };
-      };
-
-    environment.systemPackages = [ seeks ];
-
-  };
-
-}
diff --git a/nixpkgs/nixos/modules/services/networking/shadowsocks.nix b/nixpkgs/nixos/modules/services/networking/shadowsocks.nix
index af12db590f00..d2541f9a6dff 100644
--- a/nixpkgs/nixos/modules/services/networking/shadowsocks.nix
+++ b/nixpkgs/nixos/modules/services/networking/shadowsocks.nix
@@ -11,8 +11,13 @@ let
     method = cfg.encryptionMethod;
     mode = cfg.mode;
     user = "nobody";
-    fast_open = true;
-  } // optionalAttrs (cfg.password != null) { password = cfg.password; };
+    fast_open = cfg.fastOpen;
+  } // optionalAttrs (cfg.plugin != null) {
+    plugin = cfg.plugin;
+    plugin_opts = cfg.pluginOpts;
+  } // optionalAttrs (cfg.password != null) {
+    password = cfg.password;
+  } // cfg.extraConfig;
 
   configFile = pkgs.writeText "shadowsocks.json" (builtins.toJSON opts);
 
@@ -74,6 +79,14 @@ in
         '';
       };
 
+      fastOpen = mkOption {
+        type = types.bool;
+        default = true;
+        description = ''
+          use TCP fast-open
+        '';
+      };
+
       encryptionMethod = mkOption {
         type = types.str;
         default = "chacha20-ietf-poly1305";
@@ -82,6 +95,41 @@ in
         '';
       };
 
+      plugin = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        example = "\${pkgs.shadowsocks-v2ray-plugin}/bin/v2ray-plugin";
+        description = ''
+          SIP003 plugin for shadowsocks
+        '';
+      };
+
+      pluginOpts = mkOption {
+        type = types.str;
+        default = "";
+        example = "server;host=example.com";
+        description = ''
+          Options to pass to the plugin if one was specified
+        '';
+      };
+
+      extraConfig = mkOption {
+        type = types.attrs;
+        default = {};
+        example = ''
+          {
+            nameserver = "8.8.8.8";
+          }
+        '';
+        description = ''
+          Additional configuration for shadowsocks that is not covered by the
+          provided options. The provided attrset will be serialized to JSON and
+          has to contain valid shadowsocks options. Unfortunately most
+          additional options are undocumented but it's easy to find out what is
+          available by looking into the source code of
+          <link xlink:href="https://github.com/shadowsocks/shadowsocks-libev/blob/master/src/jconf.c"/>
+        '';
+      };
     };
 
   };
@@ -99,7 +147,7 @@ in
       description = "shadowsocks-libev Daemon";
       after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
-      path = [ pkgs.shadowsocks-libev ] ++ optional (cfg.passwordFile != null) pkgs.jq;
+      path = [ pkgs.shadowsocks-libev ] ++ optional (cfg.plugin != null) cfg.plugin ++ optional (cfg.passwordFile != null) pkgs.jq;
       serviceConfig.PrivateTmp = true;
       script = ''
         ${optionalString (cfg.passwordFile != null) ''
diff --git a/nixpkgs/nixos/modules/services/networking/skydns.nix b/nixpkgs/nixos/modules/services/networking/skydns.nix
index e79d6de92644..ea466de93275 100644
--- a/nixpkgs/nixos/modules/services/networking/skydns.nix
+++ b/nixpkgs/nixos/modules/services/networking/skydns.nix
@@ -64,7 +64,7 @@ in {
     extraConfig = mkOption {
       default = {};
       type = types.attrsOf types.str;
-      description = "Skydns attribute set of extra config options passed as environemnt variables.";
+      description = "Skydns attribute set of extra config options passed as environment variables.";
     };
   };
 
diff --git a/nixpkgs/nixos/modules/services/networking/ssh/sshd.nix b/nixpkgs/nixos/modules/services/networking/ssh/sshd.nix
index a294bbfba0aa..d0251277e9e8 100644
--- a/nixpkgs/nixos/modules/services/networking/ssh/sshd.nix
+++ b/nixpkgs/nixos/modules/services/networking/ssh/sshd.nix
@@ -232,6 +232,14 @@ in
         '';
       };
 
+      banner = mkOption {
+        type = types.nullOr types.lines;
+        default = null;
+        description = ''
+          Message to display to the remote user before authentication is allowed.
+        '';
+      };
+
       authorizedKeysFiles = mkOption {
         type = types.listOf types.str;
         default = [];
@@ -368,7 +376,7 @@ in
     };
 
     users.users = mkOption {
-      type = with types; loaOf (submodule userOptions);
+      type = with types; attrsOf (submodule userOptions);
     };
 
   };
@@ -485,6 +493,8 @@ in
       ''
         UsePAM yes
 
+        Banner ${if cfg.banner == null then "none" else pkgs.writeText "ssh_banner" cfg.banner}
+
         AddressFamily ${if config.networking.enableIPv6 then "any" else "inet"}
         ${concatMapStrings (port: ''
           Port ${toString port}
diff --git a/nixpkgs/nixos/modules/services/networking/sslh.nix b/nixpkgs/nixos/modules/services/networking/sslh.nix
index c4fa370a5fef..0921febba668 100644
--- a/nixpkgs/nixos/modules/services/networking/sslh.nix
+++ b/nixpkgs/nixos/modules/services/networking/sslh.nix
@@ -15,7 +15,11 @@ let
 
     listen:
     (
-      { host: "${cfg.listenAddress}"; port: "${toString cfg.port}"; }
+      ${
+        concatMapStringsSep ",\n"
+        (addr: ''{ host: "${addr}"; port: "${toString cfg.port}"; }'')
+        cfg.listenAddresses
+      }
     );
 
     ${cfg.appendConfig}
@@ -33,6 +37,10 @@ let
   '';
 in
 {
+  imports = [
+    (mkRenamedOptionModule [ "services" "sslh" "listenAddress" ] [ "services" "sslh" "listenAddresses" ])
+  ];
+
   options = {
     services.sslh = {
       enable = mkEnableOption "sslh";
@@ -55,10 +63,10 @@ in
         description = "Will the services behind sslh (Apache, sshd and so on) see the external IP and ports as if the external world connected directly to them";
       };
 
-      listenAddress = mkOption {
-        type = types.str;
-        default = "0.0.0.0";
-        description = "Listening address or hostname.";
+      listenAddresses = mkOption {
+        type = types.coercedTo types.str singleton (types.listOf types.str);
+        default = [ "0.0.0.0" "[::]" ];
+        description = "Listening addresses or hostnames.";
       };
 
       port = mkOption {
diff --git a/nixpkgs/nixos/modules/services/networking/supplicant.nix b/nixpkgs/nixos/modules/services/networking/supplicant.nix
index b5b9989ce186..20704be9b36f 100644
--- a/nixpkgs/nixos/modules/services/networking/supplicant.nix
+++ b/nixpkgs/nixos/modules/services/networking/supplicant.nix
@@ -76,9 +76,9 @@ in
     networking.supplicant = mkOption {
       type = with types; attrsOf (submodule {
         options = {
-  
+
           configFile = {
-  
+
             path = mkOption {
               type = types.nullOr types.path;
               default = null;
@@ -89,7 +89,7 @@ in
                 precedence over options defined in <literal>configFile</literal>.
               '';
             };
-  
+
             writable = mkOption {
               type = types.bool;
               default = false;
@@ -98,9 +98,9 @@ in
                 <literal>wpa_supplicant</literal>.
               '';
             };
-  
+
           };
-  
+
           extraConf = mkOption {
             type = types.lines;
             default = "";
@@ -126,7 +126,7 @@ in
               use the <literal>configFile</literal> instead.
             '';
           };
-  
+
           extraCmdArgs = mkOption {
             type = types.str;
             default = "";
@@ -134,21 +134,21 @@ in
             description =
               "Command line arguments to add when executing <literal>wpa_supplicant</literal>.";
           };
-  
+
           driver = mkOption {
             type = types.nullOr types.str;
             default = "nl80211,wext";
             description = "Force a specific wpa_supplicant driver.";
           };
-  
+
           bridge = mkOption {
             type = types.str;
             default = "";
             description = "Name of the bridge interface that wpa_supplicant should listen at.";
           };
-  
+
           userControlled = {
-  
+
             enable = mkOption {
               type = types.bool;
               default = false;
@@ -159,20 +159,20 @@ in
                 access points.
               '';
             };
-  
+
             socketDir = mkOption {
               type = types.str;
               default = "/run/wpa_supplicant";
               description = "Directory of sockets for controlling wpa_supplicant.";
             };
-  
+
             group = mkOption {
               type = types.str;
               default = "wheel";
               example = "network";
               description = "Members of this group can control wpa_supplicant.";
             };
-  
+
           };
         };
       });
diff --git a/nixpkgs/nixos/modules/services/networking/syncthing.nix b/nixpkgs/nixos/modules/services/networking/syncthing.nix
index e717d78feed5..28348c7893a0 100644
--- a/nixpkgs/nixos/modules/services/networking/syncthing.nix
+++ b/nixpkgs/nixos/modules/services/networking/syncthing.nix
@@ -18,6 +18,7 @@ let
     fsWatcherEnabled = folder.watch;
     fsWatcherDelayS = folder.watchDelay;
     ignorePerms = folder.ignorePerms;
+    ignoreDelete = folder.ignoreDelete;
     versioning = folder.versioning;
   }) (filterAttrs (
     _: folder:
@@ -284,8 +285,6 @@ in {
                 });
               };
 
-
-
               rescanInterval = mkOption {
                 type = types.int;
                 default = 3600;
@@ -327,6 +326,16 @@ in {
                 '';
               };
 
+              ignoreDelete = mkOption {
+                type = types.bool;
+                default = false;
+                description = ''
+                  Whether to delete files in destination. See <link
+                  xlink:href="https://docs.syncthing.net/advanced/folder-ignoredelete.html">
+                  upstream's docs</link>.
+                '';
+              };
+
             };
           }));
         };
diff --git a/nixpkgs/nixos/modules/services/networking/tinc.nix b/nixpkgs/nixos/modules/services/networking/tinc.nix
index e98aafc20937..725bd9bf9403 100644
--- a/nixpkgs/nixos/modules/services/networking/tinc.nix
+++ b/nixpkgs/nixos/modules/services/networking/tinc.nix
@@ -48,6 +48,14 @@ in
               '';
             };
 
+            rsaPrivateKeyFile = mkOption {
+              default = null;
+              type = types.nullOr types.path;
+              description = ''
+                Path of the private RSA keyfile.
+              '';
+            };
+
             debugLevel = mkOption {
               default = 0;
               type = types.addCheck types.int (l: l >= 0 && l <= 5);
@@ -139,6 +147,7 @@ in
               Name = ${if data.name == null then "$HOST" else data.name}
               DeviceType = ${data.interfaceType}
               ${optionalString (data.ed25519PrivateKeyFile != null) "Ed25519PrivateKeyFile = ${data.ed25519PrivateKeyFile}"}
+              ${optionalString (data.rsaPrivateKeyFile != null) "PrivateKeyFile = ${data.rsaPrivateKeyFile}"}
               ${optionalString (data.listenAddress != null) "ListenAddress = ${data.listenAddress}"}
               ${optionalString (data.bindToAddress != null) "BindToAddress = ${data.bindToAddress}"}
               Interface = tinc.${network}
@@ -170,12 +179,15 @@ in
           # Determine how we should generate our keys
           if type tinc >/dev/null 2>&1; then
             # Tinc 1.1+ uses the tinc helper application for key generation
-          ${if data.ed25519PrivateKeyFile != null then "  # Keyfile managed by nix" else ''
+          ${if data.ed25519PrivateKeyFile != null then "  # ed25519 Keyfile managed by nix" else ''
             # Prefer ED25519 keys (only in 1.1+)
             [ -f "/etc/tinc/${network}/ed25519_key.priv" ] || tinc -n ${network} generate-ed25519-keys
           ''}
-            # Otherwise use RSA keys
+          ${if data.rsaPrivateKeyFile != null then "  # RSA Keyfile managed by nix" else ''
             [ -f "/etc/tinc/${network}/rsa_key.priv" ] || tinc -n ${network} generate-rsa-keys 4096
+          ''}
+            # In case there isn't anything to do
+            true
           else
             # Tinc 1.0 uses the tincd application
             [ -f "/etc/tinc/${network}/rsa_key.priv" ] || tincd -n ${network} -K 4096
diff --git a/nixpkgs/nixos/modules/services/networking/trickster.nix b/nixpkgs/nixos/modules/services/networking/trickster.nix
index 8760dd5a9382..49c945adb80f 100644
--- a/nixpkgs/nixos/modules/services/networking/trickster.nix
+++ b/nixpkgs/nixos/modules/services/networking/trickster.nix
@@ -106,7 +106,8 @@ in
         Restart = "always";
       };
     };
+  };
 
-  };  
-}
+  meta.maintainers = with maintainers; [ _1000101 ];
 
+}
diff --git a/nixpkgs/nixos/modules/services/networking/unifi.nix b/nixpkgs/nixos/modules/services/networking/unifi.nix
index 4bdfa8143dce..62bcf7a14972 100644
--- a/nixpkgs/nixos/modules/services/networking/unifi.nix
+++ b/nixpkgs/nixos/modules/services/networking/unifi.nix
@@ -162,6 +162,8 @@ in
       unitConfig.RequiresMountsFor = stateDir;
       # This a HACK to fix missing dependencies of dynamic libs extracted from jars
       environment.LD_LIBRARY_PATH = with pkgs.stdenv; "${cc.cc.lib}/lib";
+      # Make sure package upgrades trigger a service restart
+      restartTriggers = [ cfg.unifiPackage cfg.mongodbPackage ];
 
       serviceConfig = {
         Type = "simple";
diff --git a/nixpkgs/nixos/modules/services/networking/wasabibackend.nix b/nixpkgs/nixos/modules/services/networking/wasabibackend.nix
new file mode 100644
index 000000000000..6eacffe709b0
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/wasabibackend.nix
@@ -0,0 +1,158 @@
+{ config, lib, pkgs, ... }:
+
+let
+  cfg = config.services.wasabibackend;
+
+  inherit (lib) mkEnableOption mkIf mkOption optionalAttrs optionalString types;
+
+  confOptions = {
+      BitcoinRpcConnectionString = "${cfg.rpc.user}:${cfg.rpc.password}";
+  } // optionalAttrs (cfg.network == "mainnet") {
+      Network = "Main";
+      MainNetBitcoinP2pEndPoint = "${cfg.endpoint.ip}:${toString cfg.endpoint.port}";
+      MainNetBitcoinCoreRpcEndPoint = "${cfg.rpc.ip}:${toString cfg.rpc.port}";
+  } // optionalAttrs (cfg.network == "testnet") {
+      Network = "TestNet";
+      TestNetBitcoinP2pEndPoint = "${cfg.endpoint.ip}:${toString cfg.endpoint.port}";
+      TestNetBitcoinCoreRpcEndPoint = "${cfg.rpc.ip}:${toString cfg.rpc.port}";
+  } // optionalAttrs (cfg.network == "regtest") {
+      Network = "RegTest";
+      RegTestBitcoinP2pEndPoint = "${cfg.endpoint.ip}:${toString cfg.endpoint.port}";
+      RegTestBitcoinCoreRpcEndPoint = "${cfg.rpc.ip}:${toString cfg.rpc.port}";
+  };
+
+	configFile = pkgs.writeText "wasabibackend.conf" (builtins.toJSON confOptions);
+
+in {
+
+  options = {
+
+    services.wasabibackend = {
+      enable = mkEnableOption "Wasabi backend service";
+
+      dataDir = mkOption {
+        type = types.path;
+        default = "/var/lib/wasabibackend";
+        description = "The data directory for the Wasabi backend node.";
+      };
+
+      customConfigFile = mkOption {
+        type = types.nullOr types.path;
+        default = null;
+        description = "Defines the path to a custom configuration file that is copied to the user's directory. Overrides any config options.";
+      };
+
+      network = mkOption {
+        type = types.enum [ "mainnet" "testnet" "regtest" ];
+        default = "mainnet";
+        description = "The network to use for the Wasabi backend service.";
+      };
+
+      endpoint = {
+        ip = mkOption {
+          type = types.str;
+          default = "127.0.0.1";
+          description = "IP address for P2P connection to bitcoind.";
+        };
+
+        port = mkOption {
+          type = types.port;
+          default = 8333;
+          description = "Port for P2P connection to bitcoind.";
+        };
+      };
+
+      rpc = {
+        ip = mkOption {
+          type = types.str;
+          default = "127.0.0.1";
+          description = "IP address for RPC connection to bitcoind.";
+        };
+
+        port = mkOption {
+          type = types.port;
+          default = 8332;
+          description = "Port for RPC connection to bitcoind.";
+        };
+
+        user = mkOption {
+          type = types.str;
+          default = "bitcoin";
+          description = "RPC user for the bitcoin endpoint.";
+        };
+
+        password = mkOption {
+          type = types.str;
+          default = "password";
+          description = "RPC password for the bitcoin endpoint. Warning: this is stored in cleartext in the Nix store! Use <literal>configFile</literal> or <literal>passwordFile</literal> if needed.";
+        };
+
+        passwordFile = mkOption {
+          type = types.nullOr types.path;
+          default = null;
+          description = "File that contains the password of the RPC user.";
+        };
+      };
+
+      user = mkOption {
+        type = types.str;
+        default = "wasabibackend";
+        description = "The user as which to run the wasabibackend node.";
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = cfg.user;
+        description = "The group as which to run the wasabibackend node.";
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+
+    systemd.tmpfiles.rules = [
+      "d '${cfg.dataDir}' 0770 '${cfg.user}' '${cfg.group}' - -"
+    ];
+
+    systemd.services.wasabibackend = {
+      description = "wasabibackend server";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network-online.target" ];
+      environment = {
+        DOTNET_PRINT_TELEMETRY_MESSAGE = "false";
+        DOTNET_CLI_TELEMETRY_OPTOUT = "true";
+      };
+      preStart = ''
+        mkdir -p ${cfg.dataDir}/.walletwasabi/backend
+        ${if cfg.customConfigFile != null then ''
+          cp -v ${cfg.customConfigFile} ${cfg.dataDir}/.walletwasabi/backend/Config.json
+        '' else ''
+          cp -v ${configFile} ${cfg.dataDir}/.walletwasabi/backend/Config.json
+          ${optionalString (cfg.rpc.passwordFile != null) ''
+            CONFIGTMP=$(mktemp)
+            cat ${cfg.dataDir}/.walletwasabi/backend/Config.json | ${pkgs.jq}/bin/jq --arg rpconnection "${cfg.rpc.user}:$(cat "${cfg.rpc.passwordFile}")" '. + { BitcoinRpcConnectionString: $rpconnection }' > $CONFIGTMP
+            mv $CONFIGTMP ${cfg.dataDir}/.walletwasabi/backend/Config.json
+          ''}
+        ''}
+        chmod ug+w ${cfg.dataDir}/.walletwasabi/backend/Config.json
+      '';
+      serviceConfig = {
+        User = cfg.user;
+        Group = cfg.group;
+        ExecStart = "${pkgs.wasabibackend}/bin/WasabiBackend";
+        ProtectSystem = "full";
+      };
+    };
+
+    users.users.${cfg.user} = {
+      name = cfg.user;
+      group = cfg.group;
+      description = "wasabibackend daemon user";
+      home = cfg.dataDir;
+      isSystemUser = true;
+    };
+
+    users.groups.${cfg.group} = {};
+
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/networking/websockify.nix b/nixpkgs/nixos/modules/services/networking/websockify.nix
index d9177df65bd6..27cb47be12f7 100644
--- a/nixpkgs/nixos/modules/services/networking/websockify.nix
+++ b/nixpkgs/nixos/modules/services/networking/websockify.nix
@@ -5,12 +5,12 @@ with lib;
 let cfg = config.services.networking.websockify; in {
   options = {
     services.networking.websockify = {
-      enable = mkOption {  
+      enable = mkOption {
         description = "Whether to enable websockify to forward websocket connections to TCP connections.";
 
-        default = false;   
+        default = false;
 
-        type = types.bool; 
+        type = types.bool;
       };
 
       sslCert = mkOption {
diff --git a/nixpkgs/nixos/modules/services/networking/wg-quick.nix b/nixpkgs/nixos/modules/services/networking/wg-quick.nix
index ff1bdeed9f48..02fe40a22a10 100644
--- a/nixpkgs/nixos/modules/services/networking/wg-quick.nix
+++ b/nixpkgs/nixos/modules/services/networking/wg-quick.nix
@@ -29,7 +29,7 @@ let
         type = with types; nullOr str;
         default = null;
         description = ''
-          Base64 private key generated by wg genkey.
+          Base64 private key generated by <command>wg genkey</command>.
 
           Warning: Consider using privateKeyFile instead if you do not
           want to store the key in the world-readable Nix store.
@@ -41,7 +41,7 @@ let
         type = with types; nullOr str;
         default = null;
         description = ''
-          Private key file as generated by wg genkey.
+          Private key file as generated by <command>wg genkey</command>.
         '';
       };
 
@@ -106,9 +106,9 @@ let
         description = ''
           The kernel routing table to add this interface's
           associated routes to. Setting this is useful for e.g. policy routing
-          ("ip rule") or virtual routing and forwarding ("ip vrf"). Both numeric
-          table IDs and table names (/etc/rt_tables) can be used. Defaults to
-          "main".
+          ("ip rule") or virtual routing and forwarding ("ip vrf"). Both
+          numeric table IDs and table names (/etc/rt_tables) can be used.
+          Defaults to "main".
         '';
       };
 
@@ -139,7 +139,7 @@ let
       publicKey = mkOption {
         example = "xTIBA5rboUvnH4htodjb6e697QjLERt1NAB4mZqp8Dg=";
         type = types.str;
-        description = "The base64 public key the peer.";
+        description = "The base64 public key to the peer.";
       };
 
       presharedKey = mkOption {
@@ -147,8 +147,8 @@ let
         example = "rVXs/Ni9tu3oDBLS4hOyAUAa1qTWVA3loR8eL20os3I=";
         type = with types; nullOr str;
         description = ''
-          Base64 preshared key generated by wg genpsk. Optional,
-          and may be omitted. This option adds an additional layer of
+          Base64 preshared key generated by <command>wg genpsk</command>.
+          Optional, and may be omitted. This option adds an additional layer of
           symmetric-key cryptography to be mixed into the already existing
           public-key cryptography, for post-quantum resistance.
 
@@ -162,8 +162,8 @@ let
         example = "/private/wireguard_psk";
         type = with types; nullOr str;
         description = ''
-          File pointing to preshared key as generated by wg pensk. Optional,
-          and may be omitted. This option adds an additional layer of
+          File pointing to preshared key as generated by <command>wg genpsk</command>.
+          Optional, and may be omitted. This option adds an additional layer of
           symmetric-key cryptography to be mixed into the already existing
           public-key cryptography, for post-quantum resistance.
         '';
diff --git a/nixpkgs/nixos/modules/services/networking/wireguard.nix b/nixpkgs/nixos/modules/services/networking/wireguard.nix
index e8f83f6dd8bf..e07020349cf4 100644
--- a/nixpkgs/nixos/modules/services/networking/wireguard.nix
+++ b/nixpkgs/nixos/modules/services/networking/wireguard.nix
@@ -91,11 +91,13 @@ let
       table = mkOption {
         default = "main";
         type = types.str;
-        description = ''The kernel routing table to add this interface's
-        associated routes to. Setting this is useful for e.g. policy routing
-        ("ip rule") or virtual routing and forwarding ("ip vrf"). Both numeric
-        table IDs and table names (/etc/rt_tables) can be used. Defaults to
-        "main".'';
+        description = ''
+          The kernel routing table to add this interface's
+          associated routes to. Setting this is useful for e.g. policy routing
+          ("ip rule") or virtual routing and forwarding ("ip vrf"). Both
+          numeric table IDs and table names (/etc/rt_tables) can be used.
+          Defaults to "main".
+        '';
       };
 
       peers = mkOption {
@@ -174,7 +176,7 @@ let
         example = "/private/wireguard_psk";
         type = with types; nullOr str;
         description = ''
-          File pointing to preshared key as generated by <command>wg pensk</command>.
+          File pointing to preshared key as generated by <command>wg genpsk</command>.
           Optional, and may be omitted. This option adds an additional layer of
           symmetric-key cryptography to be mixed into the already existing
           public-key cryptography, for post-quantum resistance.
@@ -217,7 +219,6 @@ let
 
   };
 
-
   generatePathUnit = name: values:
     assert (values.privateKey == null);
     assert (values.privateKeyFile != null);
diff --git a/nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix b/nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix
index a7dea95056a0..395139879036 100644
--- a/nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix
+++ b/nixpkgs/nixos/modules/services/networking/wpa_supplicant.nix
@@ -4,7 +4,7 @@ with lib;
 
 let
   cfg = config.networking.wireless;
-  configFile = if cfg.networks != {} then pkgs.writeText "wpa_supplicant.conf" ''
+  configFile = if cfg.networks != {} || cfg.extraConfig != "" || cfg.userControlled.enable then pkgs.writeText "wpa_supplicant.conf" ''
     ${optionalString cfg.userControlled.enable ''
       ctrl_interface=DIR=/run/wpa_supplicant GROUP=${cfg.userControlled.group}
       update_config=1''}
@@ -233,6 +233,9 @@ in {
       path = [ pkgs.wpa_supplicant ];
 
       script = ''
+        if [ -f /etc/wpa_supplicant.conf -a "/etc/wpa_supplicant.conf" != "${configFile}" ]
+        then echo >&2 "<3>/etc/wpa_supplicant.conf present but ignored. Generated ${configFile} is used instead."
+        fi
         iface_args="-s -u -D${cfg.driver} -c ${configFile}"
         ${if ifaces == [] then ''
           for i in $(cd /sys/class/net && echo *); do
diff --git a/nixpkgs/nixos/modules/services/networking/xandikos.nix b/nixpkgs/nixos/modules/services/networking/xandikos.nix
index 87c029156b9e..3c40bb956f57 100644
--- a/nixpkgs/nixos/modules/services/networking/xandikos.nix
+++ b/nixpkgs/nixos/modules/services/networking/xandikos.nix
@@ -90,7 +90,7 @@ in
   config = mkIf cfg.enable (
     mkMerge [
       {
-        meta.maintainers = [ lib.maintainers."0x4A6F" ];
+        meta.maintainers = with lib.maintainers; [ _0x4A6F ];
 
         systemd.services.xandikos = {
           description = "A Simple Calendar and Contact Server";
@@ -122,7 +122,7 @@ in
             ExecStart = ''
               ${cfg.package}/bin/xandikos \
                 --directory /var/lib/xandikos \
-                --listen_address ${cfg.address} \
+                --listen-address ${cfg.address} \
                 --port ${toString cfg.port} \
                 --route-prefix ${cfg.routePrefix} \
                 ${lib.concatStringsSep " " cfg.extraOptions}
diff --git a/nixpkgs/nixos/modules/services/networking/yggdrasil.nix b/nixpkgs/nixos/modules/services/networking/yggdrasil.nix
index 0fe9a200a1b6..a71c635c9f6e 100644
--- a/nixpkgs/nixos/modules/services/networking/yggdrasil.nix
+++ b/nixpkgs/nixos/modules/services/networking/yggdrasil.nix
@@ -195,5 +195,8 @@ in {
     # Make yggdrasilctl available on the command line.
     environment.systemPackages = [ cfg.package ];
   });
-  meta.maintainers = with lib.maintainers; [ gazally ehmry ];
+  meta = {
+    doc = ./yggdrasil.xml;
+    maintainers = with lib.maintainers; [ gazally ehmry ];
+  };
 }
diff --git a/nixpkgs/nixos/modules/services/networking/yggdrasil.xml b/nixpkgs/nixos/modules/services/networking/yggdrasil.xml
new file mode 100644
index 000000000000..c012cd4a9294
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/networking/yggdrasil.xml
@@ -0,0 +1,157 @@
+<?xml version="1.0"?>
+<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" version="5.0" xml:id="module-services-networking-yggdrasil">
+  <title>Yggdrasil</title>
+  <para>
+    <emphasis>Source:</emphasis>
+    <filename>modules/services/networking/yggdrasil/default.nix</filename>
+  </para>
+  <para>
+    <emphasis>Upstream documentation:</emphasis>
+    <link xlink:href="https://yggdrasil-network.github.io/"/>
+  </para>
+  <para>
+Yggdrasil is an early-stage implementation of a fully end-to-end encrypted,
+self-arranging IPv6 network.
+</para>
+  <section xml:id="module-services-networking-yggdrasil-configuration">
+    <title>Configuration</title>
+    <section xml:id="module-services-networking-yggdrasil-configuration-simple">
+      <title>Simple ephemeral node</title>
+      <para>
+An annotated example of a simple configuration:
+<programlisting>
+{
+  services.yggdrasil = {
+    enable = true;
+    persistentKeys = false;
+      # The NixOS module will generate new keys and a new IPv6 address each time
+      # it is started if persistentKeys is not enabled.
+
+    config = {
+      Peers = [
+        # Yggdrasil will automatically connect and "peer" with other nodes it
+        # discovers via link-local multicast annoucements. Unless this is the
+        # case (it probably isn't) a node needs peers within the existing
+        # network that it can tunnel to.
+        "tcp://1.2.3.4:1024"
+        "tcp://1.2.3.5:1024"
+        # Public peers can be found at
+        # https://github.com/yggdrasil-network/public-peers
+      ];
+    };
+  };
+}
+</programlisting>
+   </para>
+    </section>
+    <section xml:id="module-services-networking-yggdrasil-configuration-prefix">
+      <title>Persistent node with prefix</title>
+      <para>
+A node with a fixed address that announces a prefix:
+<programlisting>
+let
+  address = "210:5217:69c0:9afc:1b95:b9f:8718:c3d2";
+  prefix = "310:5217:69c0:9afc";
+  # taken from the output of "yggdrasilctl getself".
+in {
+
+  services.yggdrasil = {
+    enable = true;
+    persistentKeys = true; # Maintain a fixed public key and IPv6 address.
+    config = {
+      Peers = [ "tcp://1.2.3.4:1024" "tcp://1.2.3.5:1024" ];
+      NodeInfo = {
+        # This information is visible to the network.
+        name = config.networking.hostName;
+        location = "The North Pole";
+      };
+    };
+  };
+
+  boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = 1;
+    # Forward traffic under the prefix.
+
+  networking.interfaces.${eth0}.ipv6.addresses = [{
+    # Set a 300::/8 address on the local physical device.
+    address = prefix + "::1";
+    prefixLength = 64;
+  }];
+
+  services.radvd = {
+    # Annouce the 300::/8 prefix to eth0.
+    enable = true;
+    config = ''
+      interface eth0
+      {
+        AdvSendAdvert on;
+        AdvDefaultLifetime 0;
+        prefix ${prefix}::/64 {
+          AdvOnLink on;
+          AdvAutonomous on;
+        };
+        route 200::/8 {};
+      };
+    '';
+  };
+}
+</programlisting>
+  </para>
+    </section>
+    <section xml:id="module-services-networking-yggdrasil-configuration-container">
+      <title>Yggdrasil attached Container</title>
+      <para>
+A NixOS container attached to the Yggdrasil network via a node running on the
+host:
+        <programlisting>
+let
+  yggPrefix64 = "310:5217:69c0:9afc";
+    # Again, taken from the output of "yggdrasilctl getself".
+in
+{
+  boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = 1;
+  # Enable IPv6 forwarding.
+
+  networking = {
+    bridges.br0.interfaces = [ ];
+    # A bridge only to containers&#x2026;
+
+    interfaces.br0 = {
+      # &#x2026; configured with a prefix address.
+      ipv6.addresses = [{
+        address = "${yggPrefix64}::1";
+        prefixLength = 64;
+      }];
+    };
+  };
+
+  containers.foo = {
+    autoStart = true;
+    privateNetwork = true;
+    hostBridge = "br0";
+    # Attach the container to the bridge only.
+    config = { config, pkgs, ... }: {
+      networking.interfaces.eth0.ipv6 = {
+        addresses = [{
+          # Configure a prefix address.
+          address = "${yggPrefix64}::2";
+          prefixLength = 64;
+        }];
+        routes = [{
+          # Configure the prefix route.
+          address = "200::";
+          prefixLength = 7;
+          via = "${yggPrefix64}::1";
+        }];
+      };
+
+      services.httpd.enable = true;
+      networking.firewall.allowedTCPPorts = [ 80 ];
+    };
+  };
+
+}
+</programlisting>
+      </para>
+    </section>
+  </section>
+</chapter>
diff --git a/nixpkgs/nixos/modules/services/scheduling/chronos.nix b/nixpkgs/nixos/modules/services/scheduling/chronos.nix
deleted file mode 100644
index 9a8ed4c09ac1..000000000000
--- a/nixpkgs/nixos/modules/services/scheduling/chronos.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-  cfg = config.services.chronos;
-
-in {
-
-  ###### interface
-
-  options.services.chronos = {
-    enable = mkOption {
-      description = "Whether to enable graphite web frontend.";
-      default = false;
-      type = types.bool;
-    };
-
-    httpPort = mkOption {
-      description = "Chronos listening port";
-      default = 4400;
-      type = types.int;
-    };
-
-    master = mkOption {
-      description = "Chronos mesos master zookeeper address";
-      default = "zk://${head cfg.zookeeperHosts}/mesos";
-      type = types.str;
-    };
-
-    zookeeperHosts = mkOption {
-      description = "Chronos mesos zookepper addresses";
-      default = [ "localhost:2181" ];
-      type = types.listOf types.str;
-    };
-  };
-
-  ###### implementation
-
-  config = mkIf cfg.enable {
-    systemd.services.chronos = {
-      description = "Chronos Service";
-      wantedBy = [ "multi-user.target" ];
-      after = [ "network.target" "zookeeper.service" ];
-
-      serviceConfig = {
-        ExecStart = "${pkgs.chronos}/bin/chronos --master ${cfg.master} --zk_hosts ${concatStringsSep "," cfg.zookeeperHosts} --http_port ${toString cfg.httpPort}";
-        User = "chronos";
-      };
-    };
-
-    users.users.chronos.uid = config.ids.uids.chronos;
-  };
-}
diff --git a/nixpkgs/nixos/modules/services/scheduling/marathon.nix b/nixpkgs/nixos/modules/services/scheduling/marathon.nix
deleted file mode 100644
index 2e0d20c64b23..000000000000
--- a/nixpkgs/nixos/modules/services/scheduling/marathon.nix
+++ /dev/null
@@ -1,98 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-
-  cfg = config.services.marathon;
-
-in {
-
-  ###### interface
-
-  options.services.marathon = {
-    enable = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-	Whether to enable the marathon mesos framework.
-      '';
-    };
-
-    master = mkOption {
-      type = types.str;
-      default = "zk://${concatStringsSep "," cfg.zookeeperHosts}/mesos";
-      example = "zk://1.2.3.4:2181,2.3.4.5:2181,3.4.5.6:2181/mesos";
-      description = ''
-	Mesos master address. See <link xlink:href="https://mesosphere.github.io/marathon/docs/"/> for details.
-      '';
-    };
-
-    zookeeperHosts = mkOption {
-      type = types.listOf types.str;
-      default = [ "localhost:2181" ];
-      example = [ "1.2.3.4:2181" "2.3.4.5:2181" "3.4.5.6:2181" ];
-      description = ''
-	ZooKeeper hosts' addresses.
-      '';
-    };
-
-    user = mkOption {
-      type = types.str;
-      default = "marathon";
-      example = "root";
-      description = ''
-	The user that the Marathon framework will be launched as. If the user doesn't exist it will be created.
-	If you want to run apps that require root access or you want to launch apps using arbitrary users, that
-	is using the `--mesos_user` flag then you need to change this to `root`.
-      '';
-    };
-
-    httpPort = mkOption {
-      type = types.int;
-      default = 8080;
-      description = ''
-	Marathon listening port for HTTP connections.
-      '';
-    };
-
-    extraCmdLineOptions = mkOption {
-      type = types.listOf types.str;
-      default = [ ];
-      example = [ "--https_port=8443" "--zk_timeout=10000" "--marathon_store_timeout=2000" ];
-      description = ''
-	Extra command line options to pass to Marathon.
-	See <link xlink:href="https://mesosphere.github.io/marathon/docs/command-line-flags.html"/> for all possible flags.
-      '';
-    };
-
-    environment = mkOption {
-      default = { };
-      type = types.attrs;
-      example = { JAVA_OPTS = "-Xmx512m"; MESOSPHERE_HTTP_CREDENTIALS = "username:password"; };
-      description = ''
-	Environment variables passed to Marathon.
-      '';
-    };
-  };
-
-  ###### implementation
-
-  config = mkIf cfg.enable {
-    systemd.services.marathon = {
-      description = "Marathon Service";
-      environment = cfg.environment;
-      wantedBy = [ "multi-user.target" ];
-      after = [ "network.target" "zookeeper.service" "mesos-master.service" "mesos-slave.service" ];
-
-      serviceConfig = {
-        ExecStart = "${pkgs.marathon}/bin/marathon --master ${cfg.master} --zk zk://${concatStringsSep "," cfg.zookeeperHosts}/marathon --http_port ${toString cfg.httpPort} ${concatStringsSep " " cfg.extraCmdLineOptions}";
-        User = cfg.user;
-        Restart = "always";
-        RestartSec = "2";
-      };
-    };
-
-    users.users.${cfg.user}.isSystemUser = true;
-  };
-}
diff --git a/nixpkgs/nixos/modules/services/security/bitwarden_rs/default.nix b/nixpkgs/nixos/modules/services/security/bitwarden_rs/default.nix
index 903a53270377..a04bc883bf0f 100644
--- a/nixpkgs/nixos/modules/services/security/bitwarden_rs/default.nix
+++ b/nixpkgs/nixos/modules/services/security/bitwarden_rs/default.nix
@@ -81,6 +81,23 @@ in {
         <link xlink:href="https://github.com/dani-garcia/bitwarden_rs/blob/${bitwarden_rs.version}/.env.template">the environment template file</link>.
       '';
     };
+
+    environmentFile = mkOption {
+      type = with types; nullOr path;
+      default = null;
+      example = "/root/bitwarden_rs.env";
+      description = ''
+        Additional environment file as defined in <citerefentry>
+        <refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
+        </citerefentry>.
+
+        Secrets like <envar>ADMIN_TOKEN</envar> and <envar>SMTP_PASSWORD</envar>
+        may be passed to the service without adding them to the world-readable Nix store.
+
+        Note that this file needs to be available on the host on which
+        <literal>bitwarden_rs</literal> is running.
+      '';
+    };
   };
 
   config = mkIf cfg.enable {
@@ -101,7 +118,7 @@ in {
       serviceConfig = {
         User = user;
         Group = group;
-        EnvironmentFile = configFile;
+        EnvironmentFile = [ configFile ] ++ optional (cfg.environmentFile != null) cfg.environmentFile;
         ExecStart = "${bitwarden_rs}/bin/bitwarden_rs";
         LimitNOFILE = "1048576";
         LimitNPROC = "64";
diff --git a/nixpkgs/nixos/modules/services/security/haveged.nix b/nixpkgs/nixos/modules/services/security/haveged.nix
index eca529188810..22ece1883446 100644
--- a/nixpkgs/nixos/modules/services/security/haveged.nix
+++ b/nixpkgs/nixos/modules/services/security/haveged.nix
@@ -21,11 +21,11 @@ in
         type = types.bool;
         default = false;
         description = ''
-          Whether to enable to haveged entropy daemon, which refills 
+          Whether to enable to haveged entropy daemon, which refills
           /dev/random when low.
         '';
       };
-      
+
       refill_threshold = mkOption {
         type = types.int;
         default = 1024;
@@ -34,16 +34,16 @@ in
           haveged should refill the entropy pool.
         '';
       };
-      
+
     };
-    
+
   };
-  
-  
+
+
   ###### implementation
-  
+
   config = mkIf cfg.enable {
-  
+
     systemd.services.haveged =
       { description = "Entropy Harvesting Daemon";
         unitConfig.Documentation = "man:haveged(8)";
@@ -63,5 +63,5 @@ in
       };
 
   };
-  
+
 }
diff --git a/nixpkgs/nixos/modules/services/security/nginx-sso.nix b/nixpkgs/nixos/modules/services/security/nginx-sso.nix
index d792f90abe64..50d250fc4d76 100644
--- a/nixpkgs/nixos/modules/services/security/nginx-sso.nix
+++ b/nixpkgs/nixos/modules/services/security/nginx-sso.nix
@@ -4,12 +4,21 @@ with lib;
 
 let
   cfg = config.services.nginx.sso;
-  pkg = getBin pkgs.nginx-sso;
+  pkg = getBin cfg.package;
   configYml = pkgs.writeText "nginx-sso.yml" (builtins.toJSON cfg.configuration);
 in {
   options.services.nginx.sso = {
     enable = mkEnableOption "nginx-sso service";
 
+    package = mkOption {
+      type = types.package;
+      default = pkgs.nginx-sso;
+      defaultText = "pkgs.nginx-sso";
+      description = ''
+        The nginx-sso package that should be used.
+      '';
+    };
+
     configuration = mkOption {
       type = types.attrsOf types.unspecified;
       default = {};
diff --git a/nixpkgs/nixos/modules/services/security/oauth2_proxy.nix b/nixpkgs/nixos/modules/services/security/oauth2_proxy.nix
index d5c5437329ea..2f9e94bd77ba 100644
--- a/nixpkgs/nixos/modules/services/security/oauth2_proxy.nix
+++ b/nixpkgs/nixos/modules/services/security/oauth2_proxy.nix
@@ -99,7 +99,7 @@ in
 
     ##############################################
     # PROVIDER configuration
-    # Taken from: https://github.com/pusher/oauth2_proxy/blob/master/providers/providers.go
+    # Taken from: https://github.com/oauth2-proxy/oauth2-proxy/blob/master/providers/providers.go
     provider = mkOption {
       type = types.enum [
         "google"
@@ -346,7 +346,9 @@ in
         type = types.nullOr types.str;
         default = null;
         description = ''
-          An optional cookie domain to force cookies to.
+          Optional cookie domains to force cookies to (ie: `.yourcompany.com`).
+          The longest domain matching the request's host will be used (or the shortest
+          cookie domain if there is no match).
         '';
         example = ".yourcompany.com";
       };
@@ -537,7 +539,7 @@ in
     extraConfig = mkOption {
       default = {};
       description = ''
-        Extra config to pass to oauth2_proxy.
+        Extra config to pass to oauth2-proxy.
       '';
     };
 
@@ -545,7 +547,7 @@ in
       type = types.nullOr types.path;
       default = null;
       description = ''
-        oauth2_proxy allows passing sensitive configuration via environment variables.
+        oauth2-proxy allows passing sensitive configuration via environment variables.
         Make a file that contains lines like
         OAUTH2_PROXY_CLIENT_SECRET=asdfasdfasdf.apps.googleuserscontent.com
         and specify the path here.
@@ -577,7 +579,7 @@ in
       serviceConfig = {
         User = "oauth2_proxy";
         Restart = "always";
-        ExecStart = "${cfg.package}/bin/oauth2_proxy ${configString}";
+        ExecStart = "${cfg.package}/bin/oauth2-proxy ${configString}";
         EnvironmentFile = mkIf (cfg.keyFile != null) cfg.keyFile;
       };
     };
diff --git a/nixpkgs/nixos/modules/services/security/physlock.nix b/nixpkgs/nixos/modules/services/security/physlock.nix
index 690eb70079d8..da5c22a90a09 100644
--- a/nixpkgs/nixos/modules/services/security/physlock.nix
+++ b/nixpkgs/nixos/modules/services/security/physlock.nix
@@ -52,6 +52,14 @@ in
         '';
       };
 
+      lockMessage = mkOption {
+        type = types.str;
+        default = "";
+        description = ''
+          Message to show on physlock login terminal.
+        '';
+      };
+
       lockOn = {
 
         suspend = mkOption {
@@ -111,7 +119,7 @@ in
                 ++ cfg.lockOn.extraTargets;
         serviceConfig = {
           Type = "forking";
-          ExecStart = "${pkgs.physlock}/bin/physlock -d${optionalString cfg.disableSysRq "s"}";
+          ExecStart = "${pkgs.physlock}/bin/physlock -d${optionalString cfg.disableSysRq "s"}${optionalString (cfg.lockMessage != "") " -p \"${cfg.lockMessage}\""}";
         };
       };
 
diff --git a/nixpkgs/nixos/modules/services/security/privacyidea.nix b/nixpkgs/nixos/modules/services/security/privacyidea.nix
index d6abfd0e2718..c2988858e56c 100644
--- a/nixpkgs/nixos/modules/services/security/privacyidea.nix
+++ b/nixpkgs/nixos/modules/services/security/privacyidea.nix
@@ -234,7 +234,6 @@ in
           ExecStop = "${pkgs.coreutils}/bin/kill -INT $MAINPID";
           NotifyAccess = "main";
           KillSignal = "SIGQUIT";
-          StandardError = "syslog";
         };
       };
 
diff --git a/nixpkgs/nixos/modules/services/security/tor.nix b/nixpkgs/nixos/modules/services/security/tor.nix
index 18c105b2f576..38dc378887a8 100644
--- a/nixpkgs/nixos/modules/services/security/tor.nix
+++ b/nixpkgs/nixos/modules/services/security/tor.nix
@@ -34,8 +34,8 @@ let
     User tor
     DataDirectory ${torDirectory}
     ${optionalString cfg.enableGeoIP ''
-      GeoIPFile ${pkgs.tor.geoip}/share/tor/geoip
-      GeoIPv6File ${pkgs.tor.geoip}/share/tor/geoip6
+      GeoIPFile ${cfg.package.geoip}/share/tor/geoip
+      GeoIPv6File ${cfg.package.geoip}/share/tor/geoip6
     ''}
 
     ${optint "ControlPort" cfg.controlPort}
@@ -123,6 +123,16 @@ in
         '';
       };
 
+      package = mkOption {
+        type = types.package;
+        default = pkgs.tor;
+        defaultText = "pkgs.tor";
+        example = literalExample "pkgs.tor";
+        description = ''
+          Tor package to use
+        '';
+      };
+
       enableGeoIP = mkOption {
         type = types.bool;
         default = true;
@@ -159,7 +169,7 @@ in
           type = types.bool;
           default = false;
           description = ''
-            Wheter to enable Tor control socket. Control socket is created
+            Whether to enable Tor control socket. Control socket is created
             in <literal>${torRunDirectory}/control</literal>
           '';
         };
@@ -597,7 +607,7 @@ in
             ];
           }
         '';
-        type = types.loaOf (types.submodule ({name, ...}: {
+        type = types.attrsOf (types.submodule ({name, ...}: {
           options = {
 
              name = mkOption {
@@ -749,8 +759,8 @@ in
         serviceConfig =
           { Type         = "simple";
             # Translated from the upstream contrib/dist/tor.service.in
-            ExecStartPre = "${pkgs.tor}/bin/tor -f ${torRcFile} --verify-config";
-            ExecStart    = "${pkgs.tor}/bin/tor -f ${torRcFile}";
+            ExecStartPre = "${cfg.package}/bin/tor -f ${torRcFile} --verify-config";
+            ExecStart    = "${cfg.package}/bin/tor -f ${torRcFile}";
             ExecReload   = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
             KillSignal   = "SIGINT";
             TimeoutSec   = 30;
@@ -773,7 +783,7 @@ in
           };
       };
 
-    environment.systemPackages = [ pkgs.tor ];
+    environment.systemPackages = [ cfg.package ];
 
     services.privoxy = mkIf (cfg.client.enable && cfg.client.privoxy.enable) {
       enable = true;
diff --git a/nixpkgs/nixos/modules/services/security/usbguard.nix b/nixpkgs/nixos/modules/services/security/usbguard.nix
index f4118eb87fc7..16a90da52314 100644
--- a/nixpkgs/nixos/modules/services/security/usbguard.nix
+++ b/nixpkgs/nixos/modules/services/security/usbguard.nix
@@ -1,37 +1,39 @@
-{config, lib, pkgs, ... }:
+{ config, lib, pkgs, ... }:
 
 with lib;
-
 let
-
   cfg = config.services.usbguard;
 
   # valid policy options
   policy = (types.enum [ "allow" "block" "reject" "keep" "apply-policy" ]);
 
+  defaultRuleFile = "/var/lib/usbguard/rules.conf";
+
   # decide what file to use for rules
-  ruleFile = if cfg.rules != null then pkgs.writeText "usbguard-rules" cfg.rules else cfg.ruleFile;
+  ruleFile = if cfg.rules != null then pkgs.writeText "usbguard-rules" cfg.rules else defaultRuleFile;
 
   daemonConf = ''
-      # generated by nixos/modules/services/security/usbguard.nix
-      RuleFile=${ruleFile}
-      ImplicitPolicyTarget=${cfg.implictPolicyTarget}
-      PresentDevicePolicy=${cfg.presentDevicePolicy}
-      PresentControllerPolicy=${cfg.presentControllerPolicy}
-      InsertedDevicePolicy=${cfg.insertedDevicePolicy}
-      RestoreControllerDeviceState=${if cfg.restoreControllerDeviceState then "true" else "false"}
-      # this does not seem useful for endusers to change
-      DeviceManagerBackend=uevent
-      IPCAllowedUsers=${concatStringsSep " " cfg.IPCAllowedUsers}
-      IPCAllowedGroups=${concatStringsSep " " cfg.IPCAllowedGroups}
-      IPCAccessControlFiles=${cfg.IPCAccessControlFiles}
-      DeviceRulesWithPort=${if cfg.deviceRulesWithPort then "true" else "false"}
-      AuditFilePath=${cfg.auditFilePath}
-    '';
-
-    daemonConfFile = pkgs.writeText "usbguard-daemon-conf" daemonConf;
-
-in {
+    # generated by nixos/modules/services/security/usbguard.nix
+    RuleFile=${ruleFile}
+    ImplicitPolicyTarget=${cfg.implictPolicyTarget}
+    PresentDevicePolicy=${cfg.presentDevicePolicy}
+    PresentControllerPolicy=${cfg.presentControllerPolicy}
+    InsertedDevicePolicy=${cfg.insertedDevicePolicy}
+    RestoreControllerDeviceState=${if cfg.restoreControllerDeviceState then "true" else "false"}
+    # this does not seem useful for endusers to change
+    DeviceManagerBackend=uevent
+    IPCAllowedUsers=${concatStringsSep " " cfg.IPCAllowedUsers}
+    IPCAllowedGroups=${concatStringsSep " " cfg.IPCAllowedGroups}
+    IPCAccessControlFiles=/var/lib/usbguard/IPCAccessControl.d/
+    DeviceRulesWithPort=${if cfg.deviceRulesWithPort then "true" else "false"}
+    # HACK: that way audit logs still land in the journal
+    AuditFilePath=/dev/null
+  '';
+
+  daemonConfFile = pkgs.writeText "usbguard-daemon-conf" daemonConf;
+
+in
+{
 
   ###### interface
 
@@ -49,22 +51,6 @@ in {
         '';
       };
 
-      ruleFile = mkOption {
-        type = types.path;
-        default = "/var/lib/usbguard/rules.conf";
-        description = ''
-          The USBGuard daemon will use this file to load the policy rule set
-          from it and to write new rules received via the IPC interface.
-
-          Running the command <literal>usbguard generate-policy</literal> as
-          root will generate a config for your currently plugged in devices.
-          For a in depth guide consult the official documentation.
-
-          Setting the <literal>rules</literal> option will ignore the
-          <literal>ruleFile</literal> option.
-        '';
-      };
-
       rules = mkOption {
         type = types.nullOr types.lines;
         default = null;
@@ -72,16 +58,20 @@ in {
           allow with-interface equals { 08:*:* }
         '';
         description = ''
-          The USBGuard daemon will load this policy rule set. Modifying it via
-          the IPC interface won't work if you use this option, since the
-          contents of this option will be written into the nix-store it will be
-          read-only.
+          The USBGuard daemon will load this as the policy rule set.
+          As these rules are NixOS managed they are immutable and can't
+          be changed by the IPC interface.
+
+          If you do not set this option, the USBGuard daemon will load
+          it's policy rule set from <literal>${defaultRuleFile}</literal>.
+          This file can be changed manually or via the IPC interface.
 
-          You can still use <literal> usbguard generate-policy</literal> to
-          generate rules, but you would have to insert them here.
+          Running <literal>usbguard generate-policy</literal> as root will
+          generate a config for your currently plugged in devices.
 
-          Setting the <literal>rules</literal> option will ignore the
-          <literal>ruleFile</literal> option.
+          For more details see <citerefentry>
+          <refentrytitle>usbguard-rules.conf</refentrytitle>
+          <manvolnum>5</manvolnum></citerefentry>.
         '';
       };
 
@@ -155,17 +145,6 @@ in {
         '';
       };
 
-      IPCAccessControlFiles = mkOption {
-        type = types.path;
-        default = "/var/lib/usbguard/IPCAccessControl.d/";
-        description = ''
-          The files at this location will be interpreted by the daemon as IPC
-          access control definition files. See the IPC ACCESS CONTROL section
-          in <citerefentry><refentrytitle>usbguard-daemon.conf</refentrytitle>
-          <manvolnum>5</manvolnum></citerefentry> for more details.
-        '';
-      };
-
       deviceRulesWithPort = mkOption {
         type = types.bool;
         default = false;
@@ -173,14 +152,6 @@ in {
           Generate device specific rules including the "via-port" attribute.
         '';
       };
-
-      auditFilePath = mkOption {
-        type = types.path;
-        default = "/var/log/usbguard/usbguard-audit.log";
-        description = ''
-          USBGuard audit events log file path.
-        '';
-      };
     };
   };
 
@@ -197,17 +168,19 @@ in {
       wantedBy = [ "basic.target" ];
       wants = [ "systemd-udevd.service" ];
 
-      # make sure an empty rule file and required directories exist
-      preStart = ''
-        mkdir -p $(dirname "${cfg.ruleFile}") $(dirname "${cfg.auditFilePath}") "${cfg.IPCAccessControlFiles}" \
-          && ([ -f "${cfg.ruleFile}" ] || touch ${cfg.ruleFile})
-      '';
+      # make sure an empty rule file exists
+      preStart = ''[ -f "${ruleFile}" ] || touch ${ruleFile}'';
 
       serviceConfig = {
         Type = "simple";
         ExecStart = ''${cfg.package}/bin/usbguard-daemon -P -k -c ${daemonConfFile}'';
         Restart = "on-failure";
 
+        StateDirectory = [
+          "usbguard"
+          "usbguard/IPCAccessControl.d"
+        ];
+
         AmbientCapabilities = "";
         CapabilityBoundingSet = "CAP_CHOWN CAP_FOWNER";
         DeviceAllow = "/dev/null rw";
@@ -223,8 +196,8 @@ in {
         ProtectKernelModules = true;
         ProtectSystem = true;
         ReadOnlyPaths = "-/";
-        ReadWritePaths = "-/dev/shm -${dirOf cfg.auditFilePath} -/tmp -${dirOf cfg.ruleFile}";
-        RestrictAddressFamilies = "AF_UNIX AF_NETLINK";
+        ReadWritePaths = "-/dev/shm -/tmp";
+        RestrictAddressFamilies = [ "AF_UNIX" "AF_NETLINK" ];
         RestrictNamespaces = true;
         RestrictRealtime = true;
         SystemCallArchitectures = "native";
@@ -233,4 +206,9 @@ in {
       };
     };
   };
+  imports = [
+    (mkRemovedOptionModule [ "services" "usbguard" "ruleFile" ] "The usbguard module now uses ${defaultRuleFile} as ruleFile. Alternatively, use services.usbguard.rules to configure rules.")
+    (mkRemovedOptionModule [ "services" "usbguard" "IPCAccessControlFiles" ] "The usbguard module now hardcodes IPCAccessControlFiles to /var/lib/usbguard/IPCAccessControl.d.")
+    (mkRemovedOptionModule [ "services" "usbguard" "auditFilePath" ] "Removed usbguard module audit log files. Audit logs can be found in the systemd journal.")
+  ];
 }
diff --git a/nixpkgs/nixos/modules/services/security/yubikey-agent.nix b/nixpkgs/nixos/modules/services/security/yubikey-agent.nix
new file mode 100644
index 000000000000..2972c64a3641
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/security/yubikey-agent.nix
@@ -0,0 +1,60 @@
+# Global configuration for yubikey-agent.
+
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.yubikey-agent;
+
+  # reuse the pinentryFlavor option from the gnupg module
+  pinentryFlavor = config.programs.gnupg.agent.pinentryFlavor;
+in
+{
+  ###### interface
+
+  meta.maintainers = with maintainers; [ philandstuff rawkode ];
+
+  options = {
+
+    services.yubikey-agent = {
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to start yubikey-agent when you log in.  Also sets
+          SSH_AUTH_SOCK to point at yubikey-agent.
+
+          Note that yubikey-agent will use whatever pinentry is
+          specified in programs.gnupg.agent.pinentryFlavor.
+        '';
+      };
+
+      package = mkOption {
+        type = types.package;
+        default = pkgs.yubikey-agent;
+        defaultText = "pkgs.yubikey-agent";
+        description = ''
+          The package used for the yubikey-agent daemon.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment.systemPackages = [ cfg.package ];
+    systemd.packages = [ cfg.package ];
+
+    # This overrides the systemd user unit shipped with the
+    # yubikey-agent package
+    systemd.user.services.yubikey-agent = mkIf (pinentryFlavor != null) {
+      path = [ pkgs.pinentry.${pinentryFlavor} ];
+    };
+
+    environment.extraInit = ''
+      if [ -z "$SSH_AUTH_SOCK" -a -n "$XDG_RUNTIME_DIR" ]; then
+        export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/yubikey-agent/yubikey-agent.sock"
+      fi
+    '';
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/system/earlyoom.nix b/nixpkgs/nixos/modules/services/system/earlyoom.nix
index c6a001d30eeb..e29bdbe264cc 100644
--- a/nixpkgs/nixos/modules/services/system/earlyoom.nix
+++ b/nixpkgs/nixos/modules/services/system/earlyoom.nix
@@ -106,7 +106,6 @@ in
       path = optional ecfg.enableNotifications pkgs.dbus;
       serviceConfig = {
         StandardOutput = "null";
-        StandardError = "syslog";
         ExecStart = ''
           ${pkgs.earlyoom}/bin/earlyoom \
           -m ${toString ecfg.freeMemThreshold} \
diff --git a/nixpkgs/nixos/modules/services/torrent/transmission.nix b/nixpkgs/nixos/modules/services/torrent/transmission.nix
index 1bfcf2de82f8..014a22bb5a8d 100644
--- a/nixpkgs/nixos/modules/services/torrent/transmission.nix
+++ b/nixpkgs/nixos/modules/services/torrent/transmission.nix
@@ -1,52 +1,54 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, options, ... }:
 
 with lib;
 
 let
   cfg = config.services.transmission;
+  inherit (config.environment) etc;
   apparmor = config.security.apparmor.enable;
-
-  homeDir = cfg.home;
-  downloadDirPermissions = cfg.downloadDirPermissions;
-  downloadDir = "${homeDir}/Downloads";
-  incompleteDir = "${homeDir}/.incomplete";
-
-  settingsDir = "${homeDir}/config";
-  settingsFile = pkgs.writeText "settings.json" (builtins.toJSON fullSettings);
-
-  # for users in group "transmission" to have access to torrents
-  fullSettings = { umask = 2; download-dir = downloadDir; incomplete-dir = incompleteDir; } // cfg.settings;
-
-  preStart = pkgs.writeScript "transmission-pre-start" ''
-    #!${pkgs.runtimeShell}
-    set -ex
-    cp -f ${settingsFile} ${settingsDir}/settings.json
-  '';
+  rootDir = "/run/transmission";
+  homeDir = "/var/lib/transmission";
+  settingsDir = ".config/transmission-daemon";
+  downloadsDir = "Downloads";
+  incompleteDir = ".incomplete";
+  watchDir = "watchdir";
+  # TODO: switch to configGen.json once RFC0042 is implemented
+  settingsFile = pkgs.writeText "settings.json" (builtins.toJSON cfg.settings);
 in
 {
   options = {
     services.transmission = {
-      enable = mkOption {
-        type = types.bool;
-        default = false;
-        description = ''
-          Whether or not to enable the headless Transmission BitTorrent daemon.
+      enable = mkEnableOption ''the headless Transmission BitTorrent daemon.
 
-          Transmission daemon can be controlled via the RPC interface using
-          transmission-remote or the WebUI (http://localhost:9091/ by default).
+        Transmission daemon can be controlled via the RPC interface using
+        transmission-remote, the WebUI (http://127.0.0.1:9091/ by default),
+        or other clients like stig or tremc.
 
-          Torrents are downloaded to ${downloadDir} by default and are
-          accessible to users in the "transmission" group.
-        '';
-      };
+        Torrents are downloaded to ${homeDir}/${downloadsDir} by default and are
+        accessible to users in the "transmission" group'';
 
-      settings = mkOption {
+      settings = mkOption rec {
+        # TODO: switch to types.config.json as prescribed by RFC0042 once it's implemented
         type = types.attrs;
+        apply = recursiveUpdate default;
         default =
           {
-            download-dir = downloadDir;
-            incomplete-dir = incompleteDir;
+            download-dir = "${cfg.home}/${downloadsDir}";
+            incomplete-dir = "${cfg.home}/${incompleteDir}";
             incomplete-dir-enabled = true;
+            watch-dir = "${cfg.home}/${watchDir}";
+            watch-dir-enabled = false;
+            message-level = 1;
+            peer-port = 51413;
+            peer-port-random-high = 65535;
+            peer-port-random-low = 49152;
+            peer-port-random-on-start = false;
+            rpc-bind-address = "127.0.0.1";
+            rpc-port = 9091;
+            script-torrent-done-enabled = false;
+            script-torrent-done-filename = "";
+            umask = 2; # 0o002 in decimal as expected by Transmission
+            utp-enabled = true;
           };
         example =
           {
@@ -56,11 +58,12 @@ in
             rpc-whitelist = "127.0.0.1,192.168.*.*";
           };
         description = ''
-          Attribute set whos fields overwrites fields in settings.json (each
-          time the service starts). String values must be quoted, integer and
+          Attribute set whose fields overwrites fields in
+          <literal>.config/transmission-daemon/settings.json</literal>
+          (each time the service starts). String values must be quoted, integer and
           boolean values must not.
 
-          See https://github.com/transmission/transmission/wiki/Editing-Configuration-Files
+          See <link xlink:href="https://github.com/transmission/transmission/wiki/Editing-Configuration-Files">Transmission's Wiki</link>
           for documentation.
         '';
       };
@@ -70,22 +73,32 @@ in
         default = "770";
         example = "775";
         description = ''
-          The permissions to set for download-dir and incomplete-dir.
-          They will be applied on every service start.
+          The permissions set by <literal>systemd.activationScripts.transmission-daemon</literal>
+          on the directories <link linkend="opt-services.transmission.settings">settings.download-dir</link>
+          and <link linkend="opt-services.transmission.settings">settings.incomplete-dir</link>.
+          Note that you may also want to change
+          <link linkend="opt-services.transmission.settings">settings.umask</link>.
         '';
       };
 
       port = mkOption {
-        type = types.int;
-        default = 9091;
-        description = "TCP port number to run the RPC/web interface.";
+        type = types.port;
+        description = ''
+          TCP port number to run the RPC/web interface.
+
+          If instead you want to change the peer port,
+          use <link linkend="opt-services.transmission.settings">settings.peer-port</link>
+          or <link linkend="opt-services.transmission.settings">settings.peer-port-random-on-start</link>.
+        '';
       };
 
       home = mkOption {
         type = types.path;
-        default = "/var/lib/transmission";
+        default = homeDir;
         description = ''
-          The directory where transmission will create files.
+          The directory where Transmission will create <literal>${settingsDir}</literal>.
+          as well as <literal>${downloadsDir}/</literal> unless <link linkend="opt-services.transmission.settings">settings.download-dir</link> is changed,
+          and <literal>${incompleteDir}/</literal> unless <link linkend="opt-services.transmission.settings">settings.incomplete-dir</link> is changed.
         '';
       };
 
@@ -100,32 +113,179 @@ in
         default = "transmission";
         description = "Group account under which Transmission runs.";
       };
+
+      credentialsFile = mkOption {
+        type = types.path;
+        description = ''
+          Path to a JSON file to be merged with the settings.
+          Useful to merge a file which is better kept out of the Nix store
+          because it contains sensible data like <link linkend="opt-services.transmission.settings">settings.rpc-password</link>.
+        '';
+        default = "/dev/null";
+        example = "/var/lib/secrets/transmission/settings.json";
+      };
+
+      openFirewall = mkEnableOption "opening of the peer port(s) in the firewall";
+
+      performanceNetParameters = mkEnableOption ''tweaking of kernel parameters
+        to open many more connections at the same time.
+
+        Note that you may also want to increase
+        <link linkend="opt-services.transmission.settings">settings.peer-limit-global</link>.
+        And be aware that these settings are quite aggressive
+        and might not suite your regular desktop use.
+        For instance, SSH sessions may time out more easily'';
     };
   };
 
   config = mkIf cfg.enable {
-    systemd.tmpfiles.rules = [
-      "d '${homeDir}' 0770 '${cfg.user}' '${cfg.group}' - -"
-      "d '${settingsDir}' 0700 '${cfg.user}' '${cfg.group}' - -"
-      "d '${fullSettings.download-dir}' '${downloadDirPermissions}' '${cfg.user}' '${cfg.group}' - -"
-      "d '${fullSettings.incomplete-dir}' '${downloadDirPermissions}' '${cfg.user}' '${cfg.group}' - -"
+    # Note that using systemd.tmpfiles would not work here
+    # because it would fail when creating a directory
+    # with a different owner than its parent directory, by saying:
+    # Detected unsafe path transition /home/foo → /home/foo/Downloads during canonicalization of /home/foo/Downloads
+    # when /home/foo is not owned by cfg.user.
+    # Note also that using an ExecStartPre= wouldn't work either
+    # because BindPaths= needs these directories before.
+    system.activationScripts.transmission-daemon = ''
+      install -d -m 700 '${cfg.home}/${settingsDir}'
+      chown -R '${cfg.user}:${cfg.group}' ${cfg.home}/${settingsDir}
+      install -d -m '${cfg.downloadDirPermissions}' -o '${cfg.user}' -g '${cfg.group}' '${cfg.settings.download-dir}'
+      '' + optionalString cfg.settings.incomplete-dir-enabled ''
+      install -d -m '${cfg.downloadDirPermissions}' -o '${cfg.user}' -g '${cfg.group}' '${cfg.settings.incomplete-dir}'
+      '';
+
+    assertions = [
+      { assertion = builtins.match "^/.*" cfg.home != null;
+        message = "`services.transmission.home' must be an absolute path.";
+      }
+      { assertion = types.path.check cfg.settings.download-dir;
+        message = "`services.transmission.settings.download-dir' must be an absolute path.";
+      }
+      { assertion = types.path.check cfg.settings.incomplete-dir;
+        message = "`services.transmission.settings.incomplete-dir' must be an absolute path.";
+      }
+      { assertion = types.path.check cfg.settings.watch-dir;
+        message = "`services.transmission.settings.watch-dir' must be an absolute path.";
+      }
+      { assertion = cfg.settings.script-torrent-done-filename == "" || types.path.check cfg.settings.script-torrent-done-filename;
+        message = "`services.transmission.settings.script-torrent-done-filename' must be an absolute path.";
+      }
+      { assertion = types.port.check cfg.settings.rpc-port;
+        message = "${toString cfg.settings.rpc-port} is not a valid port number for `services.transmission.settings.rpc-port`.";
+      }
+      # In case both port and settings.rpc-port are explicitely defined: they must be the same.
+      { assertion = !options.services.transmission.port.isDefined || cfg.port == cfg.settings.rpc-port;
+        message = "`services.transmission.port' is not equal to `services.transmission.settings.rpc-port'";
+      }
     ];
 
+    services.transmission.settings =
+      optionalAttrs options.services.transmission.port.isDefined { rpc-port = cfg.port; };
+
     systemd.services.transmission = {
       description = "Transmission BitTorrent Service";
       after = [ "network.target" ] ++ optional apparmor "apparmor.service";
-      requires = mkIf apparmor [ "apparmor.service" ];
+      requires = optional apparmor "apparmor.service";
       wantedBy = [ "multi-user.target" ];
+      environment.CURL_CA_BUNDLE = etc."ssl/certs/ca-certificates.crt".source;
 
-      # 1) Only the "transmission" user and group have access to torrents.
-      # 2) Optionally update/force specific fields into the configuration file.
-      serviceConfig.ExecStartPre = preStart;
-      serviceConfig.ExecStart = "${pkgs.transmission}/bin/transmission-daemon -f --port ${toString config.services.transmission.port} --config-dir ${settingsDir}";
-      serviceConfig.ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
-      serviceConfig.User = cfg.user;
-      serviceConfig.Group = cfg.group;
-      # NOTE: transmission has an internal umask that also must be set (in settings.json)
-      serviceConfig.UMask = "0002";
+      serviceConfig = {
+        # Use "+" because credentialsFile may not be accessible to User= or Group=.
+        ExecStartPre = [("+" + pkgs.writeShellScript "transmission-prestart" ''
+          set -eu${lib.optionalString (cfg.settings.message-level >= 3) "x"}
+          ${pkgs.jq}/bin/jq --slurp add ${settingsFile} '${cfg.credentialsFile}' |
+          install -D -m 600 -o '${cfg.user}' -g '${cfg.group}' /dev/stdin \
+           '${cfg.home}/${settingsDir}/settings.json'
+        '')];
+        ExecStart="${pkgs.transmission}/bin/transmission-daemon -f";
+        ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+        User = cfg.user;
+        Group = cfg.group;
+        # Create rootDir in the host's mount namespace.
+        RuntimeDirectory = [(baseNameOf rootDir)];
+        RuntimeDirectoryMode = "755";
+        # Avoid mounting rootDir in the own rootDir of ExecStart='s mount namespace.
+        InaccessiblePaths = ["-+${rootDir}"];
+        # This is for BindPaths= and BindReadOnlyPaths=
+        # to allow traversal of directories they create in RootDirectory=.
+        UMask = "0066";
+        # Using RootDirectory= makes it possible
+        # to use the same paths download-dir/incomplete-dir
+        # (which appear in user's interfaces) without requiring cfg.user
+        # to have access to their parent directories,
+        # by using BindPaths=/BindReadOnlyPaths=.
+        # Note that TemporaryFileSystem= could have been used instead
+        # but not without adding some BindPaths=/BindReadOnlyPaths=
+        # that would only be needed for ExecStartPre=,
+        # because RootDirectoryStartOnly=true would not help.
+        RootDirectory = rootDir;
+        RootDirectoryStartOnly = true;
+        MountAPIVFS = true;
+        BindPaths =
+          [ "${cfg.home}/${settingsDir}"
+            cfg.settings.download-dir
+          ] ++
+          optional cfg.settings.incomplete-dir-enabled
+            cfg.settings.incomplete-dir
+          ++
+          optional cfg.settings.watch-dir-enabled
+            cfg.settings.watch-dir
+          ;
+        BindReadOnlyPaths = [
+          # No confinement done of /nix/store here like in systemd-confinement.nix,
+          # an AppArmor profile is provided to get a confinement based upon paths and rights.
+          builtins.storeDir
+          "/etc"
+          ] ++
+          optional (cfg.settings.script-torrent-done-enabled &&
+                    cfg.settings.script-torrent-done-filename != "")
+            cfg.settings.script-torrent-done-filename;
+        # The following options are only for optimizing:
+        # systemd-analyze security transmission
+        AmbientCapabilities = "";
+        CapabilityBoundingSet = "";
+        # ProtectClock= adds DeviceAllow=char-rtc r
+        DeviceAllow = "";
+        LockPersonality = true;
+        MemoryDenyWriteExecute = true;
+        NoNewPrivileges = true;
+        PrivateDevices = true;
+        PrivateMounts = true;
+        PrivateNetwork = mkDefault false;
+        PrivateTmp = true;
+        PrivateUsers = true;
+        ProtectClock = true;
+        ProtectControlGroups = true;
+        # ProtectHome=true would not allow BindPaths= to work accross /home,
+        # and ProtectHome=tmpfs would break statfs(),
+        # preventing transmission-daemon to report the available free space.
+        # However, RootDirectory= is used, so this is not a security concern
+        # since there would be nothing in /home but any BindPaths= wanted by the user.
+        ProtectHome = "read-only";
+        ProtectHostname = true;
+        ProtectKernelLogs = true;
+        ProtectKernelModules = true;
+        ProtectKernelTunables = true;
+        ProtectSystem = "strict";
+        RemoveIPC = true;
+        # AF_UNIX may become usable one day:
+        # https://github.com/transmission/transmission/issues/441
+        RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
+        RestrictNamespaces = true;
+        RestrictRealtime = true;
+        RestrictSUIDSGID = true;
+        SystemCallFilter = [
+          "@system-service"
+          # Groups in @system-service which do not contain a syscall
+          # listed by perf stat -e 'syscalls:sys_enter_*' transmission-daemon -f
+          # in tests, and seem likely not necessary for transmission-daemon.
+          "~@aio" "~@chown" "~@keyring" "~@memlock" "~@resources" "~@setuid" "~@timer"
+          # In the @privileged group, but reached when querying infos through RPC (eg. with stig).
+          "quotactl"
+        ];
+        SystemCallArchitectures = "native";
+        SystemCallErrorNumber = "EPERM";
+      };
     };
 
     # It's useful to have transmission in path, e.g. for remote control
@@ -133,70 +293,159 @@ in
 
     users.users = optionalAttrs (cfg.user == "transmission") ({
       transmission = {
-        name = "transmission";
         group = cfg.group;
         uid = config.ids.uids.transmission;
         description = "Transmission BitTorrent user";
-        home = homeDir;
-        createHome = true;
+        home = cfg.home;
       };
     });
 
     users.groups = optionalAttrs (cfg.group == "transmission") ({
       transmission = {
-        name = "transmission";
         gid = config.ids.gids.transmission;
       };
     });
 
-    # AppArmor profile
+    networking.firewall = mkIf cfg.openFirewall (
+      if cfg.settings.peer-port-random-on-start
+      then
+        { allowedTCPPortRanges =
+            [ { from = cfg.settings.peer-port-random-low;
+                to   = cfg.settings.peer-port-random-high;
+              }
+            ];
+          allowedUDPPortRanges =
+            [ { from = cfg.settings.peer-port-random-low;
+                to   = cfg.settings.peer-port-random-high;
+              }
+            ];
+        }
+      else
+        { allowedTCPPorts = [ cfg.settings.peer-port ];
+          allowedUDPPorts = [ cfg.settings.peer-port ];
+        }
+    );
+
+    boot.kernel.sysctl = mkMerge [
+      # Transmission uses a single UDP socket in order to implement multiple uTP sockets,
+      # and thus expects large kernel buffers for the UDP socket,
+      # https://trac.transmissionbt.com/browser/trunk/libtransmission/tr-udp.c?rev=11956.
+      # at least up to the values hardcoded here:
+      (mkIf cfg.settings.utp-enabled {
+        "net.core.rmem_max" = mkDefault "4194304"; # 4MB
+        "net.core.wmem_max" = mkDefault "1048576"; # 1MB
+      })
+      (mkIf cfg.performanceNetParameters {
+        # Increase the number of available source (local) TCP and UDP ports to 49151.
+        # Usual default is 32768 60999, ie. 28231 ports.
+        # Find out your current usage with: ss -s
+        "net.ipv4.ip_local_port_range" = "16384 65535";
+        # Timeout faster generic TCP states.
+        # Usual default is 600.
+        # Find out your current usage with: watch -n 1 netstat -nptuo
+        "net.netfilter.nf_conntrack_generic_timeout" = 60;
+        # Timeout faster established but inactive connections.
+        # Usual default is 432000.
+        "net.netfilter.nf_conntrack_tcp_timeout_established" = 600;
+        # Clear immediately TCP states after timeout.
+        # Usual default is 120.
+        "net.netfilter.nf_conntrack_tcp_timeout_time_wait" = 1;
+        # Increase the number of trackable connections.
+        # Usual default is 262144.
+        # Find out your current usage with: conntrack -C
+        "net.netfilter.nf_conntrack_max" = 1048576;
+      })
+    ];
+
     security.apparmor.profiles = mkIf apparmor [
       (pkgs.writeText "apparmor-transmission-daemon" ''
-        #include <tunables/global>
+        include <tunables/global>
 
         ${pkgs.transmission}/bin/transmission-daemon {
-          #include <abstractions/base>
-          #include <abstractions/nameservice>
-
-          ${getLib pkgs.glibc}/lib/*.so                    mr,
-          ${getLib pkgs.libevent}/lib/libevent*.so*        mr,
-          ${getLib pkgs.curl}/lib/libcurl*.so*             mr,
-          ${getLib pkgs.openssl}/lib/libssl*.so*           mr,
-          ${getLib pkgs.openssl}/lib/libcrypto*.so*        mr,
-          ${getLib pkgs.zlib}/lib/libz*.so*                mr,
-          ${getLib pkgs.libssh2}/lib/libssh2*.so*          mr,
-          ${getLib pkgs.systemd}/lib/libsystemd*.so*       mr,
-          ${getLib pkgs.xz}/lib/liblzma*.so*               mr,
-          ${getLib pkgs.libgcrypt}/lib/libgcrypt*.so*      mr,
-          ${getLib pkgs.libgpgerror}/lib/libgpg-error*.so* mr,
-          ${getLib pkgs.nghttp2}/lib/libnghttp2*.so*       mr,
-          ${getLib pkgs.c-ares}/lib/libcares*.so*          mr,
-          ${getLib pkgs.libcap}/lib/libcap*.so*            mr,
-          ${getLib pkgs.attr}/lib/libattr*.so*             mr,
-          ${getLib pkgs.lz4}/lib/liblz4*.so*               mr,
-          ${getLib pkgs.libkrb5}/lib/lib*.so*              mr,
-          ${getLib pkgs.keyutils}/lib/libkeyutils*.so*     mr,
-          ${getLib pkgs.utillinuxMinimal.out}/lib/libblkid.so.* mr,
-          ${getLib pkgs.utillinuxMinimal.out}/lib/libmount.so.* mr,
-          ${getLib pkgs.utillinuxMinimal.out}/lib/libuuid.so.* mr,
-          ${getLib pkgs.gcc.cc.lib}/lib/libstdc++.so.* mr,
-          ${getLib pkgs.gcc.cc.lib}/lib/libgcc_s.so.* mr,
-
-          @{PROC}/sys/kernel/random/uuid   r,
-          @{PROC}/sys/vm/overcommit_memory r,
-
-          ${pkgs.openssl.out}/etc/**                     r,
-          ${pkgs.transmission}/share/transmission/** r,
-
-          owner ${settingsDir}/** rw,
-
-          ${fullSettings.download-dir}/** rw,
-          ${optionalString fullSettings.incomplete-dir-enabled ''
-            ${fullSettings.incomplete-dir}/** rw,
+          include <abstractions/base>
+          include <abstractions/nameservice>
+
+          # NOTE: https://github.com/NixOS/nixpkgs/pull/93457
+          # will remove the need for these by fixing <abstractions/base>
+          r ${etc."hosts".source},
+          r /etc/ld-nix.so.preload,
+          ${lib.optionalString (builtins.hasAttr "ld-nix.so.preload" etc) ''
+            r ${etc."ld-nix.so.preload".source},
+            ${concatMapStrings (p: optionalString (p != "") ("mr ${p},\n"))
+              (splitString "\n" config.environment.etc."ld-nix.so.preload".text)}
           ''}
+          r ${etc."ssl/certs/ca-certificates.crt".source},
+          r ${pkgs.tzdata}/share/zoneinfo/**,
+          r ${pkgs.stdenv.cc.libc}/share/i18n/**,
+          r ${pkgs.stdenv.cc.libc}/share/locale/**,
+
+          mr ${getLib pkgs.stdenv.cc.cc}/lib/*.so*,
+          mr ${getLib pkgs.stdenv.cc.libc}/lib/*.so*,
+          mr ${getLib pkgs.attr}/lib/libattr*.so*,
+          mr ${getLib pkgs.c-ares}/lib/libcares*.so*,
+          mr ${getLib pkgs.curl}/lib/libcurl*.so*,
+          mr ${getLib pkgs.keyutils}/lib/libkeyutils*.so*,
+          mr ${getLib pkgs.libcap}/lib/libcap*.so*,
+          mr ${getLib pkgs.libevent}/lib/libevent*.so*,
+          mr ${getLib pkgs.libgcrypt}/lib/libgcrypt*.so*,
+          mr ${getLib pkgs.libgpgerror}/lib/libgpg-error*.so*,
+          mr ${getLib pkgs.libkrb5}/lib/lib*.so*,
+          mr ${getLib pkgs.libssh2}/lib/libssh2*.so*,
+          mr ${getLib pkgs.lz4}/lib/liblz4*.so*,
+          mr ${getLib pkgs.nghttp2}/lib/libnghttp2*.so*,
+          mr ${getLib pkgs.openssl}/lib/libcrypto*.so*,
+          mr ${getLib pkgs.openssl}/lib/libssl*.so*,
+          mr ${getLib pkgs.systemd}/lib/libsystemd*.so*,
+          mr ${getLib pkgs.utillinuxMinimal.out}/lib/libblkid.so*,
+          mr ${getLib pkgs.utillinuxMinimal.out}/lib/libmount.so*,
+          mr ${getLib pkgs.utillinuxMinimal.out}/lib/libuuid.so*,
+          mr ${getLib pkgs.xz}/lib/liblzma*.so*,
+          mr ${getLib pkgs.zlib}/lib/libz*.so*,
+
+          r @{PROC}/sys/kernel/random/uuid,
+          r @{PROC}/sys/vm/overcommit_memory,
+          # @{pid} is not a kernel variable yet but a regexp
+          #r @{PROC}/@{pid}/environ,
+          r @{PROC}/@{pid}/mounts,
+          rwk /tmp/tr_session_id_*,
+
+          r ${pkgs.openssl.out}/etc/**,
+          r ${config.systemd.services.transmission.environment.CURL_CA_BUNDLE},
+          r ${pkgs.transmission}/share/transmission/**,
+
+          owner rw ${cfg.home}/${settingsDir}/**,
+          rw ${cfg.settings.download-dir}/**,
+          ${optionalString cfg.settings.incomplete-dir-enabled ''
+            rw ${cfg.settings.incomplete-dir}/**,
+          ''}
+          ${optionalString cfg.settings.watch-dir-enabled ''
+            rw ${cfg.settings.watch-dir}/**,
+          ''}
+          profile dirs {
+            rw ${cfg.settings.download-dir}/**,
+            ${optionalString cfg.settings.incomplete-dir-enabled ''
+              rw ${cfg.settings.incomplete-dir}/**,
+            ''}
+            ${optionalString cfg.settings.watch-dir-enabled ''
+              rw ${cfg.settings.watch-dir}/**,
+            ''}
+          }
+
+          ${optionalString (cfg.settings.script-torrent-done-enabled &&
+                            cfg.settings.script-torrent-done-filename != "") ''
+            # Stack transmission_directories profile on top of
+            # any existing profile for script-torrent-done-filename
+            # FIXME: to be tested as I'm not sure it works well with NoNewPrivileges=
+            # https://gitlab.com/apparmor/apparmor/-/wikis/AppArmorStacking#seccomp-and-no_new_privs
+            px ${cfg.settings.script-torrent-done-filename} -> &@{dirs},
+          ''}
+
+          # FIXME: enable customizing using https://github.com/NixOS/nixpkgs/pull/93457
+          # include <local/transmission-daemon>
         }
       '')
     ];
   };
 
+  meta.maintainers = with lib.maintainers; [ julm ];
 }
diff --git a/nixpkgs/nixos/modules/services/video/epgstation/default.nix b/nixpkgs/nixos/modules/services/video/epgstation/default.nix
new file mode 100644
index 000000000000..8d6d431fa55a
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/video/epgstation/default.nix
@@ -0,0 +1,295 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.epgstation;
+
+  username = config.users.users.epgstation.name;
+  groupname = config.users.users.epgstation.group;
+
+  settingsFmt = pkgs.formats.json {};
+  settingsTemplate = settingsFmt.generate "config.json" cfg.settings;
+  preStartScript = pkgs.writeScript "epgstation-prestart" ''
+    #!${pkgs.runtimeShell}
+
+    PASSWORD="$(head -n1 "${cfg.basicAuth.passwordFile}")"
+    DB_PASSWORD="$(head -n1 "${cfg.database.passwordFile}")"
+
+    # setup configuration
+    touch /etc/epgstation/config.json
+    chmod 640 /etc/epgstation/config.json
+    sed \
+      -e "s,@password@,$PASSWORD,g" \
+      -e "s,@dbPassword@,$DB_PASSWORD,g" \
+      ${settingsTemplate} > /etc/epgstation/config.json
+    chown "${username}:${groupname}" /etc/epgstation/config.json
+
+    # NOTE: Use password authentication, since mysqljs does not yet support auth_socket
+    if [ ! -e /var/lib/epgstation/db-created ]; then
+      ${pkgs.mysql}/bin/mysql -e \
+        "GRANT ALL ON \`${cfg.database.name}\`.* TO '${username}'@'localhost' IDENTIFIED by '$DB_PASSWORD';"
+      touch /var/lib/epgstation/db-created
+    fi
+  '';
+
+  streamingConfig = builtins.fromJSON (builtins.readFile ./streaming.json);
+  logConfig = {
+    appenders.stdout.type = "stdout";
+    categories = {
+      default = { appenders = [ "stdout" ]; level = "info"; };
+      system = { appenders = [ "stdout" ]; level = "info"; };
+      access = { appenders = [ "stdout" ]; level = "info"; };
+      stream = { appenders = [ "stdout" ]; level = "info"; };
+    };
+  };
+
+  defaultPassword = "INSECURE_GO_CHECK_CONFIGURATION_NIX\n";
+in
+{
+  options.services.epgstation = {
+    enable = mkEnableOption pkgs.epgstation.meta.description;
+
+    usePreconfiguredStreaming = mkOption {
+      type = types.bool;
+      default = true;
+      description = ''
+        Use preconfigured default streaming options.
+
+        Upstream defaults:
+        <link xlink:href="https://github.com/l3tnun/EPGStation/blob/master/config/config.sample.json"/>
+      '';
+    };
+
+    port = mkOption {
+      type = types.port;
+      default = 20772;
+      description = ''
+        HTTP port for EPGStation to listen on.
+      '';
+    };
+
+    socketioPort = mkOption {
+      type = types.port;
+      default = cfg.port + 1;
+      description = ''
+        Socket.io port for EPGStation to listen on.
+      '';
+    };
+
+    clientSocketioPort = mkOption {
+      type = types.port;
+      default = cfg.socketioPort;
+      description = ''
+        Socket.io port that the web client is going to connect to. This may be
+        different from <option>socketioPort</option> if EPGStation is hidden
+        behind a reverse proxy.
+      '';
+    };
+
+    openFirewall = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Open ports in the firewall for the EPGStation web interface.
+
+        <warning>
+          <para>
+            Exposing EPGStation to the open internet is generally advised
+            against. Only use it inside a trusted local network, or consider
+            putting it behind a VPN if you want remote access.
+          </para>
+        </warning>
+      '';
+    };
+
+    basicAuth = {
+      user = mkOption {
+        type = with types; nullOr str;
+        default = null;
+        example = "epgstation";
+        description = ''
+          Basic auth username for EPGStation. If <literal>null</literal>, basic
+          auth will be disabled.
+
+          <warning>
+            <para>
+              Basic authentication has known weaknesses, the most critical being
+              that it sends passwords over the network in clear text. Use this
+              feature to control access to EPGStation within your family and
+              friends, but don't rely on it for security.
+            </para>
+          </warning>
+        '';
+      };
+
+      passwordFile = mkOption {
+        type = types.path;
+        default = pkgs.writeText "epgstation-password" defaultPassword;
+        example = "/run/keys/epgstation-password";
+        description = ''
+          A file containing the password for <option>basicAuth.user</option>.
+        '';
+      };
+    };
+
+    database =  {
+      name = mkOption {
+        type = types.str;
+        default = "epgstation";
+        description = ''
+          Name of the MySQL database that holds EPGStation's data.
+        '';
+      };
+
+      passwordFile = mkOption {
+        type = types.path;
+        default = pkgs.writeText "epgstation-db-password" defaultPassword;
+        example = "/run/keys/epgstation-db-password";
+        description = ''
+          A file containing the password for the database named
+          <option>database.name</option>.
+        '';
+      };
+    };
+
+    settings = mkOption {
+      description = ''
+        Options to add to config.json.
+
+        Documentation:
+        <link xlink:href="https://github.com/l3tnun/EPGStation/blob/master/doc/conf-manual.md"/>
+      '';
+
+      default = {};
+      example = {
+        recPriority = 20;
+        conflictPriority = 10;
+      };
+
+      type = types.submodule {
+        freeformType = settingsFmt.type;
+
+        options.readOnlyOnce = mkOption {
+          type = types.bool;
+          default = false;
+          description = "Don't reload configuration files at runtime.";
+        };
+
+        options.mirakurunPath = mkOption (let
+          sockPath = config.services.mirakurun.unixSocket;
+        in {
+          type = types.str;
+          default = "http+unix://${replaceStrings ["/"] ["%2F"] sockPath}";
+          example = "http://localhost:40772";
+          description = "URL to connect to Mirakurun.";
+        });
+
+        options.encode = mkOption {
+          type = with types; listOf attrs;
+          description = "Encoding presets for recorded videos.";
+          default = [
+            { name = "H264";
+              cmd = "${pkgs.epgstation}/libexec/enc.sh main";
+              suffix = ".mp4";
+              default = true; }
+            { name = "H264-sub";
+              cmd = "${pkgs.epgstation}/libexec/enc.sh sub";
+              suffix = "-sub.mp4"; }
+          ];
+        };
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    environment.etc = {
+      "epgstation/operatorLogConfig.json".text = builtins.toJSON logConfig;
+      "epgstation/serviceLogConfig.json".text = builtins.toJSON logConfig;
+    };
+
+    networking.firewall = mkIf cfg.openFirewall {
+      allowedTCPPorts = with cfg; [ port socketioPort ];
+    };
+
+    users.users.epgstation = {
+      description = "EPGStation user";
+      group = config.users.groups.epgstation.name;
+      isSystemUser = true;
+    };
+
+    users.groups.epgstation = {};
+
+    services.mirakurun.enable = mkDefault true;
+
+    services.mysql = {
+      enable = mkDefault true;
+      package = mkDefault pkgs.mysql;
+      ensureDatabases = [ cfg.database.name ];
+      # FIXME: enable once mysqljs supports auth_socket
+      # ensureUsers = [ {
+      #   name = username;
+      #   ensurePermissions = { "${cfg.database.name}.*" = "ALL PRIVILEGES"; };
+      # } ];
+    };
+
+    services.epgstation.settings = let
+      defaultSettings = {
+        serverPort = cfg.port;
+        socketioPort = cfg.socketioPort;
+        clientSocketioPort = cfg.clientSocketioPort;
+
+        dbType = mkDefault "mysql";
+        mysql = {
+          user = username;
+          database = cfg.database.name;
+          socketPath = mkDefault "/run/mysqld/mysqld.sock";
+          password = mkDefault "@dbPassword@";
+          connectTimeout = mkDefault 1000;
+          connectionLimit = mkDefault 10;
+        };
+
+        basicAuth = mkIf (cfg.basicAuth.user != null) {
+          user = mkDefault cfg.basicAuth.user;
+          password = mkDefault "@password@";
+        };
+
+        ffmpeg = mkDefault "${pkgs.ffmpeg-full}/bin/ffmpeg";
+        ffprobe = mkDefault "${pkgs.ffmpeg-full}/bin/ffprobe";
+
+        fileExtension = mkDefault ".m2ts";
+        maxEncode = mkDefault 2;
+        maxStreaming = mkDefault 2;
+      };
+    in
+    mkMerge [
+      defaultSettings
+      (mkIf cfg.usePreconfiguredStreaming streamingConfig)
+    ];
+
+    systemd.tmpfiles.rules = [
+      "d '/var/lib/epgstation/streamfiles' - ${username} ${groupname} - -"
+      "d '/var/lib/epgstation/recorded' - ${username} ${groupname} - -"
+      "d '/var/lib/epgstation/thumbnail' - ${username} ${groupname} - -"
+    ];
+
+    systemd.services.epgstation = {
+      description = pkgs.epgstation.meta.description;
+      wantedBy = [ "multi-user.target" ];
+      after = [
+        "network.target"
+      ] ++ optional config.services.mirakurun.enable "mirakurun.service"
+        ++ optional config.services.mysql.enable "mysql.service";
+
+      serviceConfig = {
+        ExecStart = "${pkgs.epgstation}/bin/epgstation start";
+        ExecStartPre = "+${preStartScript}";
+        User = username;
+        Group = groupname;
+        StateDirectory = "epgstation";
+        LogsDirectory = "epgstation";
+        ConfigurationDirectory = "epgstation";
+      };
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/video/epgstation/generate b/nixpkgs/nixos/modules/services/video/epgstation/generate
new file mode 100755
index 000000000000..2940768b6d2c
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/video/epgstation/generate
@@ -0,0 +1,31 @@
+#!/usr/bin/env -S nix-build --no-out-link
+
+# Script to generate default streaming configurations for EPGStation. There's
+# no need to run this script directly since generate.sh in the EPGStation
+# package directory would run this script for you.
+#
+# Usage: ./generate | xargs cat > streaming.json
+
+{ pkgs ? (import ../../../../.. {}) }:
+
+let
+  sampleConfigPath = "${pkgs.epgstation.src}/config/config.sample.json";
+  sampleConfig = builtins.fromJSON (builtins.readFile sampleConfigPath);
+  streamingConfig = {
+    inherit (sampleConfig)
+      mpegTsStreaming
+      mpegTsViewer
+      liveHLS
+      liveMP4
+      liveWebM
+      recordedDownloader
+      recordedStreaming
+      recordedViewer
+      recordedHLS;
+  };
+in
+pkgs.runCommand "streaming.json" { nativeBuildInputs = [ pkgs.jq ]; } ''
+  jq . <<<'${builtins.toJSON streamingConfig}' > $out
+''
+
+# vim:set ft=nix:
diff --git a/nixpkgs/nixos/modules/services/video/epgstation/streaming.json b/nixpkgs/nixos/modules/services/video/epgstation/streaming.json
new file mode 100644
index 000000000000..37957f6cb6a2
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/video/epgstation/streaming.json
@@ -0,0 +1,119 @@
+{
+  "liveHLS": [
+    {
+      "cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 0 -map 0 -ignore_unknown -max_muxing_queue_size 1024 -f hls -hls_time 3 -hls_list_size 17 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -c:a aac -ar 48000 -b:a 192k -ac 2 -c:v libx264 -vf yadif,scale=-2:720 -b:v 3000k -preset veryfast -flags +loop-global_header %OUTPUT%",
+      "name": "720p"
+    },
+    {
+      "cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 0 -map 0 -ignore_unknown -max_muxing_queue_size 1024 -f hls -hls_time 3 -hls_list_size 17 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -c:a aac -ar 48000 -b:a 128k -ac 2 -c:v libx264 -vf yadif,scale=-2:480 -b:v 1500k -preset veryfast -flags +loop-global_header %OUTPUT%",
+      "name": "480p"
+    },
+    {
+      "cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 0 -map 0 -ignore_unknown -max_muxing_queue_size 1024 -f hls -hls_time 3 -hls_list_size 17 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -c:a aac -ar 48000 -b:a 48k -ac 2 -c:v libx264 -vf yadif,scale=-2:180 -b:v 100k -preset veryfast -maxrate 110k -bufsize 1000k -flags +loop-global_header %OUTPUT%",
+      "name": "180p"
+    }
+  ],
+  "liveMP4": [
+    {
+      "cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -b:a 192k -ac 2 -c:v libx264 -vf yadif,scale=-2:720 -b:v 3000k -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 pipe:1",
+      "name": "720p"
+    },
+    {
+      "cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -b:a 128k -ac 2 -c:v libx264 -vf yadif,scale=-2:480 -b:v 1500k -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 pipe:1",
+      "name": "480p"
+    }
+  ],
+  "liveWebM": [
+    {
+      "cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 3 -c:a libvorbis -ar 48000 -b:a 192k -ac 2 -c:v libvpx-vp9 -vf yadif,scale=-2:720 -b:v 3000k -deadline realtime -speed 4 -cpu-used -8 -y -f webm pipe:1",
+      "name": "720p"
+    },
+    {
+      "cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 2 -c:a libvorbis -ar 48000 -b:a 128k -ac 2 -c:v libvpx-vp9 -vf yadif,scale=-2:480 -b:v 1500k -deadline realtime -speed 4 -cpu-used -8 -y -f webm pipe:1",
+      "name": "480p"
+    }
+  ],
+  "mpegTsStreaming": [
+    {
+      "cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -b:a 192k -ac 2 -c:v libx264 -vf yadif,scale=-2:720 -b:v 3000k -preset veryfast -y -f mpegts pipe:1",
+      "name": "720p"
+    },
+    {
+      "cmd": "%FFMPEG% -re -dual_mono_mode main -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -b:a 128k -ac 2 -c:v libx264 -vf yadif,scale=-2:480 -b:v 1500k -preset veryfast -y -f mpegts pipe:1",
+      "name": "480p"
+    },
+    {
+      "name": "Original"
+    }
+  ],
+  "mpegTsViewer": {
+    "android": "intent://ADDRESS#Intent;package=com.mxtech.videoplayer.ad;type=video;scheme=http;end",
+    "ios": "vlc-x-callback://x-callback-url/stream?url=http://ADDRESS"
+  },
+  "recordedDownloader": {
+    "android": "intent://ADDRESS#Intent;package=com.dv.adm;type=video;scheme=http;end",
+    "ios": "vlc-x-callback://x-callback-url/download?url=http://ADDRESS&filename=FILENAME"
+  },
+  "recordedHLS": [
+    {
+      "cmd": "%FFMPEG% -dual_mono_mode main -i %INPUT% -sn -threads 0 -map 0 -ignore_unknown -max_muxing_queue_size 1024 -f hls -hls_time 3 -hls_list_size 0 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -c:a aac -ar 48000 -b:a 192k -ac 2 -c:v libx264 -vf yadif,scale=-2:720 -b:v 3000k -preset veryfast -flags +loop-global_header %OUTPUT%",
+      "name": "720p"
+    },
+    {
+      "cmd": "%FFMPEG% -dual_mono_mode main -i %INPUT% -sn -threads 0 -map 0 -ignore_unknown -max_muxing_queue_size 1024 -f hls -hls_time 3 -hls_list_size 0 -hls_allow_cache 1 -hls_segment_filename %streamFileDir%/stream%streamNum%-%09d.ts -c:a aac -ar 48000 -b:a 128k -ac 2 -c:v libx264 -vf yadif,scale=-2:480 -b:v 1500k -preset veryfast -flags +loop-global_header %OUTPUT%",
+      "name": "480p"
+    },
+    {
+      "cmd": "%FFMPEG% -dual_mono_mode main -i %INPUT% -sn -map 0 -ignore_unknown -max_muxing_queue_size 1024 -f hls -hls_time 3 -hls_list_size 0 -hls_allow_cache 1 -hls_segment_type fmp4 -hls_fmp4_init_filename stream%streamNum%-init.mp4 -hls_segment_filename stream%streamNum%-%09d.m4s -c:a aac -ar 48000 -b:a 128k -ac 2 -c:v libx265 -vf yadif,scale=-2:480 -b:v 350k -preset veryfast -tag:v hvc1 %OUTPUT%",
+      "name": "480p(h265)"
+    }
+  ],
+  "recordedStreaming": {
+    "mp4": [
+      {
+        "ab": "192k",
+        "cmd": "%FFMPEG% -dual_mono_mode main %RE% -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -ac 2 -c:v libx264 -vf yadif,scale=-2:720 %VB% %VBUFFER% %AB% %ABUFFER% -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 pipe:1",
+        "name": "720p",
+        "vb": "3000k"
+      },
+      {
+        "ab": "128k",
+        "cmd": "%FFMPEG% -dual_mono_mode main %RE% -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -ac 2 -c:v libx264 -vf yadif,scale=-2:360 %VB% %VBUFFER% %AB% %ABUFFER% -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -movflags frag_keyframe+empty_moov+faststart+default_base_moof -y -f mp4 pipe:1",
+        "name": "360p",
+        "vb": "1500k"
+      }
+    ],
+    "mpegTs": [
+      {
+        "ab": "192k",
+        "cmd": "%FFMPEG% -dual_mono_mode main %RE% -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -ac 2 -c:v libx264 -vf yadif,scale=-2:720 %VB% %VBUFFER% %AB% %ABUFFER% -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -y -f mpegts pipe:1",
+        "name": "720p (H.264)",
+        "vb": "3000k"
+      },
+      {
+        "ab": "128k",
+        "cmd": "%FFMPEG% -dual_mono_mode main %RE% -i pipe:0 -sn -threads 0 -c:a aac -ar 48000 -ac 2 -c:v libx264 -vf yadif,scale=-2:360 %VB% %VBUFFER% %AB% %ABUFFER% -profile:v baseline -preset veryfast -tune fastdecode,zerolatency -y -f mpegts pipe:1",
+        "name": "360p (H.264)",
+        "vb": "1500k"
+      }
+    ],
+    "webm": [
+      {
+        "ab": "192k",
+        "cmd": "%FFMPEG% -dual_mono_mode main %RE% -i pipe:0 -sn -threads 3 -c:a libvorbis -ar 48000 -ac 2 -c:v libvpx-vp9 -vf yadif,scale=-2:720 %VB% %VBUFFER% %AB% %ABUFFER% -deadline realtime -speed 4 -cpu-used -8 -y -f webm pipe:1",
+        "name": "720p",
+        "vb": "3000k"
+      },
+      {
+        "ab": "128k",
+        "cmd": "%FFMPEG% -dual_mono_mode main %RE% -i pipe:0 -sn -threads 2 -c:a libvorbis -ar 48000 -ac 2 -c:v libvpx-vp9 -vf yadif,scale=-2:360 %VB% %VBUFFER% %AB% %ABUFFER% -deadline realtime -speed 4 -cpu-used -8 -y -f webm pipe:1",
+        "name": "360p",
+        "vb": "1500k"
+      }
+    ]
+  },
+  "recordedViewer": {
+    "android": "intent://ADDRESS#Intent;package=com.mxtech.videoplayer.ad;type=video;scheme=http;end",
+    "ios": "infuse://x-callback-url/play?url=http://ADDRESS"
+  }
+}
diff --git a/nixpkgs/nixos/modules/services/video/mirakurun.nix b/nixpkgs/nixos/modules/services/video/mirakurun.nix
new file mode 100644
index 000000000000..ce1dabe6bfa1
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/video/mirakurun.nix
@@ -0,0 +1,183 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.mirakurun;
+  mirakurun = pkgs.mirakurun;
+  username = config.users.users.mirakurun.name;
+  groupname = config.users.users.mirakurun.group;
+  settingsFmt = pkgs.formats.yaml {};
+in
+  {
+    options = {
+      services.mirakurun = {
+        enable = mkEnableOption mirakurun.meta.description;
+
+        port = mkOption {
+          type = with types; nullOr port;
+          default = 40772;
+          description = ''
+            Port to listen on. If <literal>null</literal>, it won't listen on
+            any port.
+          '';
+        };
+
+        openFirewall = mkOption {
+          type = types.bool;
+          default = false;
+          description = ''
+            Open ports in the firewall for Mirakurun.
+
+            <warning>
+              <para>
+                Exposing Mirakurun to the open internet is generally advised
+                against. Only use it inside a trusted local network, or
+                consider putting it behind a VPN if you want remote access.
+              </para>
+            </warning>
+          '';
+        };
+
+        unixSocket = mkOption {
+          type = with types; nullOr path;
+          default = "/var/run/mirakurun/mirakurun.sock";
+          description = ''
+            Path to unix socket to listen on. If <literal>null</literal>, it
+            won't listen on any unix sockets.
+          '';
+        };
+
+        serverSettings = mkOption {
+          type = settingsFmt.type;
+          default = {};
+          example = literalExample ''
+            {
+              highWaterMark = 25165824;
+              overflowTimeLimit = 30000;
+            };
+          '';
+          description = ''
+            Options for server.yml.
+
+            Documentation:
+            <link xlink:href="https://github.com/Chinachu/Mirakurun/blob/master/doc/Configuration.md"/>
+          '';
+        };
+
+        tunerSettings = mkOption {
+          type = with types; nullOr settingsFmt.type;
+          default = null;
+          example = literalExample ''
+            [
+              {
+                name = "tuner-name";
+                types = [ "GR" "BS" "CS" "SKY" ];
+                dvbDevicePath = "/dev/dvb/adapterX/dvrX";
+              }
+            ];
+          '';
+          description = ''
+            Options which are added to tuners.yml. If none is specified, it will
+            automatically be generated at runtime.
+
+            Documentation:
+            <link xlink:href="https://github.com/Chinachu/Mirakurun/blob/master/doc/Configuration.md"/>
+          '';
+        };
+
+        channelSettings = mkOption {
+          type = with types; nullOr settingsFmt.type;
+          default = null;
+          example = literalExample ''
+            [
+              {
+                name = "channel";
+                types = "GR";
+                channel = "0";
+              }
+            ];
+          '';
+          description = ''
+            Options which are added to channels.yml. If none is specified, it
+            will automatically be generated at runtime.
+
+            Documentation:
+            <link xlink:href="https://github.com/Chinachu/Mirakurun/blob/master/doc/Configuration.md"/>
+          '';
+        };
+      };
+    };
+
+    config = mkIf cfg.enable {
+      environment.systemPackages = [ mirakurun ];
+      environment.etc = {
+        "mirakurun/server.yml".source = settingsFmt.generate "server.yml" cfg.serverSettings;
+        "mirakurun/tuners.yml" = mkIf (cfg.tunerSettings != null) {
+          source = settingsFmt.generate "tuners.yml" cfg.tunerSettings;
+          mode = "0644";
+          user = username;
+          group = groupname;
+        };
+        "mirakurun/channels.yml" = mkIf (cfg.channelSettings != null) {
+          source = settingsFmt.generate "channels.yml" cfg.channelSettings;
+          mode = "0644";
+          user = username;
+          group = groupname;
+        };
+      };
+
+      networking.firewall = mkIf cfg.openFirewall {
+        allowedTCPPorts = mkIf (cfg.port != null) [ cfg.port ];
+      };
+
+      users.users.mirakurun = {
+        description = "Mirakurun user";
+        group = "video";
+        isSystemUser = true;
+      };
+
+      services.mirakurun.serverSettings = {
+        logLevel = mkDefault 2;
+        path = mkIf (cfg.unixSocket != null) cfg.unixSocket;
+        port = mkIf (cfg.port != null) cfg.port;
+      };
+
+      systemd.tmpfiles.rules = [
+        "d '/etc/mirakurun' - ${username} ${groupname} - -"
+      ];
+
+      systemd.services.mirakurun = {
+        description = mirakurun.meta.description;
+        wantedBy = [ "multi-user.target" ];
+        after = [ "network.target" ];
+        serviceConfig = {
+          ExecStart = "${mirakurun}/bin/mirakurun";
+          User = username;
+          Group = groupname;
+          RuntimeDirectory="mirakurun";
+          StateDirectory="mirakurun";
+          Nice = -10;
+          IOSchedulingClass = "realtime";
+          IOSchedulingPriority = 7;
+        };
+
+        environment = {
+          SERVER_CONFIG_PATH = "/etc/mirakurun/server.yml";
+          TUNERS_CONFIG_PATH = "/etc/mirakurun/tuners.yml";
+          CHANNELS_CONFIG_PATH = "/etc/mirakurun/channels.yml";
+          SERVICES_DB_PATH = "/var/lib/mirakurun/services.json";
+          PROGRAMS_DB_PATH = "/var/lib/mirakurun/programs.json";
+          NODE_ENV = "production";
+        };
+
+        restartTriggers = let
+          getconf = target: config.environment.etc."mirakurun/${target}.yml".source;
+          targets = [
+            "server"
+          ] ++ optional (cfg.tunerSettings != null) "tuners"
+            ++ optional (cfg.channelSettings != null) "channels";
+        in (map getconf targets);
+      };
+    };
+  }
diff --git a/nixpkgs/nixos/modules/services/wayland/cage.nix b/nixpkgs/nixos/modules/services/wayland/cage.nix
index c59ca9983a6c..14d84c4ce0f9 100644
--- a/nixpkgs/nixos/modules/services/wayland/cage.nix
+++ b/nixpkgs/nixos/modules/services/wayland/cage.nix
@@ -73,8 +73,6 @@ in {
         TTYVTDisallocate = "yes";
         # Fail to start if not controlling the virtual terminal.
         StandardInput = "tty-fail";
-        StandardOutput = "syslog";
-        StandardError = "syslog";
         # Set up a full (custom) user session for the user, required by Cage.
         PAMName = "cage";
       };
@@ -84,6 +82,7 @@ in {
       auth    required pam_unix.so nullok
       account required pam_unix.so
       session required pam_unix.so
+      session required pam_env.so conffile=${config.system.build.pamEnvironment} readenv=0
       session required ${pkgs.systemd}/lib/security/pam_systemd.so
     '';
 
diff --git a/nixpkgs/nixos/modules/services/web-apps/codimd.nix b/nixpkgs/nixos/modules/services/web-apps/codimd.nix
index 751f81649ddb..c787c36b877c 100644
--- a/nixpkgs/nixos/modules/services/web-apps/codimd.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/codimd.nix
@@ -93,7 +93,7 @@ in
           type = types.bool;
           default = true;
           description = ''
-            Wheter to enable HSTS if HTTPS is also enabled.
+            Whether to enable HSTS if HTTPS is also enabled.
           '';
         };
         maxAgeSeconds = mkOption {
@@ -385,7 +385,7 @@ in
         type = types.bool;
         default = true;
         description = ''
-          Wether to enable email registration.
+          Whether to enable email registration.
         '';
       };
       allowGravatar = mkOption {
@@ -877,6 +877,37 @@ in
         description = "Configure the SAML integration.";
       };
     };
+
+
+    environmentFile = mkOption {
+      type = with types; nullOr path;
+      default = null;
+      example = "/var/lib/codimd/codimd.env";
+      description = ''
+        Environment file as defined in <citerefentry>
+        <refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
+        </citerefentry>.
+
+        Secrets may be passed to the service without adding them to the world-readable
+        Nix store, by specifying placeholder variables as the option value in Nix and
+        setting these variables accordingly in the environment file.
+
+        <programlisting>
+          # snippet of CodiMD-related config
+          services.codimd.configuration.dbURL = "postgres://codimd:\''${DB_PASSWORD}@db-host:5432/codimddb";
+          services.codimd.configuration.minio.secretKey = "$MINIO_SECRET_KEY";
+        </programlisting>
+
+        <programlisting>
+          # content of the environment file
+          DB_PASSWORD=verysecretdbpassword
+          MINIO_SECRET_KEY=verysecretminiokey
+        </programlisting>
+
+        Note that this file needs to be available on the host on which
+        <literal>CodiMD</literal> is running.
+      '';
+    };
   };
 
   config = mkIf cfg.enable {
@@ -900,11 +931,17 @@ in
       description = "CodiMD Service";
       wantedBy = [ "multi-user.target" ];
       after = [ "networking.target" ];
+      preStart = ''
+        ${pkgs.envsubst}/bin/envsubst \
+          -o ${cfg.workDir}/config.json \
+          -i ${prettyJSON cfg.configuration}
+      '';
       serviceConfig = {
         WorkingDirectory = cfg.workDir;
         ExecStart = "${pkgs.codimd}/bin/codimd";
+        EnvironmentFile = mkIf (cfg.environmentFile != null) [ cfg.environmentFile ];
         Environment = [
-          "CMD_CONFIG_FILE=${prettyJSON cfg.configuration}"
+          "CMD_CONFIG_FILE=${cfg.workDir}/config.json"
           "NODE_ENV=production"
         ];
         Restart = "always";
diff --git a/nixpkgs/nixos/modules/services/web-apps/convos.nix b/nixpkgs/nixos/modules/services/web-apps/convos.nix
new file mode 100644
index 000000000000..8be11eec9f31
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/web-apps/convos.nix
@@ -0,0 +1,72 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.convos;
+in
+{
+  options.services.convos = {
+    enable = mkEnableOption "Convos";
+    listenPort = mkOption {
+      type = types.port;
+      default = 3000;
+      example = 8080;
+      description = "Port the web interface should listen on";
+    };
+    listenAddress = mkOption {
+      type = types.str;
+      default = "*";
+      example = "127.0.0.1";
+      description = "Address or host the web interface should listen on";
+    };
+    reverseProxy = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Enables reverse proxy support. This will allow Convos to automatically
+        pick up the <literal>X-Forwarded-For</literal> and
+        <literal>X-Request-Base</literal> HTTP headers set in your reverse proxy
+        web server. Note that enabling this option without a reverse proxy in
+        front will be a security issue.
+      '';
+    };
+  };
+  config = mkIf cfg.enable {
+    systemd.services.convos = {
+      description = "Convos Service";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "networking.target" ];
+      environment = {
+        CONVOS_HOME = "%S/convos";
+        CONVOS_REVERSE_PROXY = if cfg.reverseProxy then "1" else "0";
+        MOJO_LISTEN = "http://${toString cfg.listenAddress}:${toString cfg.listenPort}";
+      };
+      serviceConfig = {
+        ExecStart = "${pkgs.convos}/bin/convos daemon";
+        Restart = "on-failure";
+        StateDirectory = "convos";
+        WorkingDirectory = "%S/convos";
+        DynamicUser = true;
+        MemoryDenyWriteExecute = true;
+        ProtectHome = true;
+        ProtectClock = true;
+        ProtectHostname = true;
+        ProtectKernelTunables = true;
+        ProtectKernelModules = true;
+        ProtectKernelLogs = true;
+        ProtectControlGroups = true;
+        PrivateDevices = true;
+        PrivateMounts = true;
+        PrivateUsers = true;
+        LockPersonality = true;
+        RestrictRealtime = true;
+        RestrictNamespaces = true;
+        RestrictAddressFamilies = [ "AF_INET" "AF_INET6"];
+        SystemCallFilter = "@system-service";
+        SystemCallArchitectures = "native";
+        CapabilityBoundingSet = "";
+      };
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/web-apps/dokuwiki.nix b/nixpkgs/nixos/modules/services/web-apps/dokuwiki.nix
index 33a828fa2cb3..d9ebb3a98808 100644
--- a/nixpkgs/nixos/modules/services/web-apps/dokuwiki.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/dokuwiki.nix
@@ -2,7 +2,7 @@
 
 let
 
-  inherit (lib) mkEnableOption mkForce mkIf mkMerge mkOption optionalAttrs recursiveUpdate types;
+  inherit (lib) mkEnableOption mkForce mkIf mkMerge mkOption optionalAttrs recursiveUpdate types maintainers;
   inherit (lib) concatMapStringsSep flatten mapAttrs mapAttrs' mapAttrsToList nameValuePair concatMapStringSep;
 
   eachSite = config.services.dokuwiki;
@@ -95,7 +95,7 @@ let
 
       aclFile = mkOption {
         type = with types; nullOr str;
-        default = if (config.aclUse && config.acl == null) then "/var/lib/dokuwiki/${name}/users.auth.php" else null;
+        default = if (config.aclUse && config.acl == null) then "/var/lib/dokuwiki/${name}/acl.auth.php" else null;
         description = ''
           Location of the dokuwiki acl rules. Mutually exclusive with services.dokuwiki.acl
           Mutually exclusive with services.dokuwiki.acl which is preferred.
@@ -249,22 +249,19 @@ let
       nginx = mkOption {
         type = types.submodule (
           recursiveUpdate
-            (import ../web-servers/nginx/vhost-options.nix { inherit config lib; })
-            {
-              # Enable encryption by default,
-              options.forceSSL.default = true;
-              options.enableACME.default = true;
-            }
+            (import ../web-servers/nginx/vhost-options.nix { inherit config lib; }) {}
         );
-        default = {forceSSL = true; enableACME = true;};
+        default = {};
         example = {
           serverAliases = [
             "wiki.\${config.networking.domain}"
           ];
-          enableACME = false;
+          # To enable encryption and let let's encrypt take care of certificate
+          forceSSL = true;
+          enableACME = true;
         };
         description = ''
-          With this option, you can customize the nginx virtualHost which already has sensible defaults for DokuWiki.
+          With this option, you can customize the nginx virtualHost settings.
         '';
       };
     };
@@ -276,7 +273,7 @@ in
     services.dokuwiki = mkOption {
       type = types.attrsOf (types.submodule siteOpts);
       default = {};
-      description = "Sepcification of one or more dokuwiki sites to service.";
+      description = "Sepcification of one or more dokuwiki sites to serve.";
     };
   };
 
@@ -321,7 +318,7 @@ in
       enable = true;
       virtualHosts = mapAttrs (hostName: cfg:  mkMerge [ cfg.nginx {
         root = mkForce "${pkg hostName cfg}/share/dokuwiki";
-        extraConfig = "fastcgi_param HTTPS on;";
+        extraConfig = lib.optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "fastcgi_param HTTPS on;";
 
         locations."~ /(conf/|bin/|inc/|install.php)" = {
           extraConfig = "deny all;";
@@ -359,7 +356,7 @@ in
               fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
               fastcgi_param REDIRECT_STATUS 200;
               fastcgi_pass unix:${config.services.phpfpm.pools."dokuwiki-${hostName}".socket};
-              fastcgi_param HTTPS on;
+              ${lib.optionalString (cfg.nginx.addSSL || cfg.nginx.forceSSL || cfg.nginx.onlySSL || cfg.nginx.enableACME) "fastcgi_param HTTPS on;"}
           '';
         };
       }]) eachSite;
@@ -385,4 +382,7 @@ in
       isSystemUser = true;
     };
   };
+
+  meta.maintainers = with maintainers; [ _1000101 ];
+
 }
diff --git a/nixpkgs/nixos/modules/services/web-apps/gerrit.nix b/nixpkgs/nixos/modules/services/web-apps/gerrit.nix
index b184c0754d45..657b1a4fc5ba 100644
--- a/nixpkgs/nixos/modules/services/web-apps/gerrit.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/gerrit.nix
@@ -17,6 +17,10 @@ let
     lib.generators.toGitINI cfg.settings
   );
 
+  replicationConfig = pkgs.writeText "replication.conf" (
+    lib.generators.toGitINI cfg.replicationSettings
+  );
+
   # Wrap the gerrit java with all the java options so it can be called
   # like a normal CLI app
   gerrit-cli = pkgs.writeShellScriptBin "gerrit" ''
@@ -106,6 +110,15 @@ in
         '';
       };
 
+      replicationSettings = mkOption {
+        type = gitIniType;
+        default = {};
+        description = ''
+          Replication configuration. This will be generated to the
+          <literal>etc/replication.config</literal> file.
+        '';
+      };
+
       plugins = mkOption {
         type = types.listOf types.package;
         default = [];
@@ -138,6 +151,13 @@ in
 
   config = mkIf cfg.enable {
 
+    assertions = [
+      {
+        assertion = cfg.replicationSettings != {} -> elem "replication" cfg.builtinPlugins;
+        message = "Gerrit replicationSettings require enabling the replication plugin";
+      }
+    ];
+
     services.gerrit.settings = {
       cache.directory = "/var/cache/gerrit";
       container.heapLimit = cfg.jvmHeapLimit;
@@ -194,6 +214,7 @@ in
 
         # copy the config, keep it mutable because Gerrit
         ln -sfv ${gerritConfig} etc/gerrit.config
+        ln -sfv ${replicationConfig} etc/replication.config
 
         # install the plugins
         rm -rf plugins
diff --git a/nixpkgs/nixos/modules/services/web-apps/jitsi-meet.nix b/nixpkgs/nixos/modules/services/web-apps/jitsi-meet.nix
new file mode 100644
index 000000000000..2df762882fae
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/web-apps/jitsi-meet.nix
@@ -0,0 +1,334 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.jitsi-meet;
+
+  # The configuration files are JS of format "var <<string>> = <<JSON>>;". In order to
+  # override only some settings, we need to extract the JSON, use jq to merge it with
+  # the config provided by user, and then reconstruct the file.
+  overrideJs =
+    source: varName: userCfg: appendExtra:
+    let
+      extractor = pkgs.writeText "extractor.js" ''
+        var fs = require("fs");
+        eval(fs.readFileSync(process.argv[2], 'utf8'));
+        process.stdout.write(JSON.stringify(eval(process.argv[3])));
+      '';
+      userJson = pkgs.writeText "user.json" (builtins.toJSON userCfg);
+    in (pkgs.runCommand "${varName}.js" { } ''
+      ${pkgs.nodejs}/bin/node ${extractor} ${source} ${varName} > default.json
+      (
+        echo "var ${varName} = "
+        ${pkgs.jq}/bin/jq -s '.[0] * .[1]' default.json ${userJson}
+        echo ";"
+        echo ${escapeShellArg appendExtra}
+      ) > $out
+    '');
+
+  # Essential config - it's probably not good to have these as option default because
+  # types.attrs doesn't do merging. Let's merge explicitly, can still be overriden if
+  # user desires.
+  defaultCfg = {
+    hosts = {
+      domain = cfg.hostName;
+      muc = "conference.${cfg.hostName}";
+      focus = "focus.${cfg.hostName}";
+    };
+    bosh = "//${cfg.hostName}/http-bind";
+  };
+in
+{
+  options.services.jitsi-meet = with types; {
+    enable = mkEnableOption "Jitsi Meet - Secure, Simple and Scalable Video Conferences";
+
+    hostName = mkOption {
+      type = str;
+      example = "meet.example.org";
+      description = ''
+        Hostname of the Jitsi Meet instance.
+      '';
+    };
+
+    config = mkOption {
+      type = attrs;
+      default = { };
+      example = literalExample ''
+        {
+          enableWelcomePage = false;
+          defaultLang = "fi";
+        }
+      '';
+      description = ''
+        Client-side web application settings that override the defaults in <filename>config.js</filename>.
+
+        See <link xlink:href="https://github.com/jitsi/jitsi-meet/blob/master/config.js" /> for default
+        configuration with comments.
+      '';
+    };
+
+    extraConfig = mkOption {
+      type = lines;
+      default = "";
+      description = ''
+        Text to append to <filename>config.js</filename> web application config file.
+
+        Can be used to insert JavaScript logic to determine user's region in cascading bridges setup.
+      '';
+    };
+
+    interfaceConfig = mkOption {
+      type = attrs;
+      default = { };
+      example = literalExample ''
+        {
+          SHOW_JITSI_WATERMARK = false;
+          SHOW_WATERMARK_FOR_GUESTS = false;
+        }
+      '';
+      description = ''
+        Client-side web-app interface settings that override the defaults in <filename>interface_config.js</filename>.
+
+        See <link xlink:href="https://github.com/jitsi/jitsi-meet/blob/master/interface_config.js" /> for
+        default configuration with comments.
+      '';
+    };
+
+    videobridge = {
+      enable = mkOption {
+        type = bool;
+        default = true;
+        description = ''
+          Whether to enable Jitsi Videobridge instance and configure it to connect to Prosody.
+
+          Additional configuration is possible with <option>services.jitsi-videobridge</option>.
+        '';
+      };
+
+      passwordFile = mkOption {
+        type = nullOr str;
+        default = null;
+        example = "/run/keys/videobridge";
+        description = ''
+          File containing password to the Prosody account for videobridge.
+
+          If <literal>null</literal>, a file with password will be generated automatically. Setting
+          this option is useful if you plan to connect additional videobridges to the XMPP server.
+        '';
+      };
+    };
+
+    jicofo.enable = mkOption {
+      type = bool;
+      default = true;
+      description = ''
+        Whether to enable JiCoFo instance and configure it to connect to Prosody.
+
+        Additional configuration is possible with <option>services.jicofo</option>.
+      '';
+    };
+
+    nginx.enable = mkOption {
+      type = bool;
+      default = true;
+      description = ''
+        Whether to enable nginx virtual host that will serve the javascript application and act as
+        a proxy for the XMPP server. Further nginx configuration can be done by adapting
+        <option>services.nginx.virtualHosts.&lt;hostName&gt;</option>.
+        When this is enabled, ACME will be used to retrieve a TLS certificate by default. To disable
+        this, set the <option>services.nginx.virtualHosts.&lt;hostName&gt;.enableACME</option> to
+        <literal>false</literal> and if appropriate do the same for
+        <option>services.nginx.virtualHosts.&lt;hostName&gt;.forceSSL</option>.
+      '';
+    };
+
+    prosody.enable = mkOption {
+      type = bool;
+      default = true;
+      description = ''
+        Whether to configure Prosody to relay XMPP messages between Jitsi Meet components. Turn this
+        off if you want to configure it manually.
+      '';
+    };
+  };
+
+  config = mkIf cfg.enable {
+    services.prosody = mkIf cfg.prosody.enable {
+      enable = mkDefault true;
+      xmppComplianceSuite = mkDefault false;
+      modules = {
+        admin_adhoc = mkDefault false;
+        bosh = mkDefault true;
+        ping = mkDefault true;
+        roster = mkDefault true;
+        saslauth = mkDefault true;
+        tls = mkDefault true;
+      };
+      muc = [
+        {
+          domain = "conference.${cfg.hostName}";
+          name = "Jitsi Meet MUC";
+          roomLocking = false;
+          roomDefaultPublicJids = true;
+          extraConfig = ''
+            storage = "memory"
+          '';
+        }
+        {
+          domain = "internal.${cfg.hostName}";
+          name = "Jitsi Meet Videobridge MUC";
+          extraConfig = ''
+            storage = "memory"
+            admins = { "focus@auth.${cfg.hostName}", "jvb@auth.${cfg.hostName}" }
+          '';
+          #-- muc_room_cache_size = 1000
+        }
+      ];
+      extraModules = [ "pubsub" ];
+      extraConfig = mkAfter ''
+        Component "focus.${cfg.hostName}"
+          component_secret = os.getenv("JICOFO_COMPONENT_SECRET")
+      '';
+      virtualHosts.${cfg.hostName} = {
+        enabled = true;
+        domain = cfg.hostName;
+        extraConfig = ''
+          authentication = "anonymous"
+          c2s_require_encryption = false
+          admins = { "focus@auth.${cfg.hostName}" }
+        '';
+        ssl = {
+          cert = "/var/lib/jitsi-meet/jitsi-meet.crt";
+          key = "/var/lib/jitsi-meet/jitsi-meet.key";
+        };
+      };
+      virtualHosts."auth.${cfg.hostName}" = {
+        enabled = true;
+        domain = "auth.${cfg.hostName}";
+        extraConfig = ''
+          authentication = "internal_plain"
+        '';
+        ssl = {
+          cert = "/var/lib/jitsi-meet/jitsi-meet.crt";
+          key = "/var/lib/jitsi-meet/jitsi-meet.key";
+        };
+      };
+    };
+    systemd.services.prosody.serviceConfig = mkIf cfg.prosody.enable {
+      EnvironmentFile = [ "/var/lib/jitsi-meet/secrets-env" ];
+      SupplementaryGroups = [ "jitsi-meet" ];
+    };
+
+    users.groups.jitsi-meet = {};
+    systemd.tmpfiles.rules = [
+      "d '/var/lib/jitsi-meet' 0750 root jitsi-meet - -"
+    ];
+
+    systemd.services.jitsi-meet-init-secrets = {
+      wantedBy = [ "multi-user.target" ];
+      before = [ "jicofo.service" "jitsi-videobridge2.service" ] ++ (optional cfg.prosody.enable "prosody.service");
+      serviceConfig = {
+        Type = "oneshot";
+      };
+
+      script = let
+        secrets = [ "jicofo-component-secret" "jicofo-user-secret" ] ++ (optional (cfg.videobridge.passwordFile == null) "videobridge-secret");
+        videobridgeSecret = if cfg.videobridge.passwordFile != null then cfg.videobridge.passwordFile else "/var/lib/jitsi-meet/videobridge-secret";
+      in
+      ''
+        cd /var/lib/jitsi-meet
+        ${concatMapStringsSep "\n" (s: ''
+          if [ ! -f ${s} ]; then
+            tr -dc a-zA-Z0-9 </dev/urandom | head -c 64 > ${s}
+            chown root:jitsi-meet ${s}
+            chmod 640 ${s}
+          fi
+        '') secrets}
+
+        # for easy access in prosody
+        echo "JICOFO_COMPONENT_SECRET=$(cat jicofo-component-secret)" > secrets-env
+        chown root:jitsi-meet secrets-env
+        chmod 640 secrets-env
+      ''
+      + optionalString cfg.prosody.enable ''
+        ${config.services.prosody.package}/bin/prosodyctl register focus auth.${cfg.hostName} "$(cat /var/lib/jitsi-meet/jicofo-user-secret)"
+        ${config.services.prosody.package}/bin/prosodyctl register jvb auth.${cfg.hostName} "$(cat ${videobridgeSecret})"
+
+        # generate self-signed certificates
+        if [ ! -f /var/lib/jitsi-meet.crt ]; then
+          ${getBin pkgs.openssl}/bin/openssl req \
+            -x509 \
+            -newkey rsa:4096 \
+            -keyout /var/lib/jitsi-meet/jitsi-meet.key \
+            -out /var/lib/jitsi-meet/jitsi-meet.crt \
+            -days 36500 \
+            -nodes \
+            -subj '/CN=${cfg.hostName}/CN=auth.${cfg.hostName}'
+          chmod 640 /var/lib/jitsi-meet/jitsi-meet.{crt,key}
+          chown root:jitsi-meet /var/lib/jitsi-meet/jitsi-meet.{crt,key}
+        fi
+      '';
+    };
+
+    services.nginx = mkIf cfg.nginx.enable {
+      enable = mkDefault true;
+      virtualHosts.${cfg.hostName} = {
+        enableACME = mkDefault true;
+        forceSSL = mkDefault true;
+        root = pkgs.jitsi-meet;
+        extraConfig = ''
+          ssi on;
+        '';
+        locations."@root_path".extraConfig = ''
+          rewrite ^/(.*)$ / break;
+        '';
+        locations."~ ^/([^/\\?&:'\"]+)$".tryFiles = "$uri @root_path";
+        locations."=/http-bind" = {
+          proxyPass = "http://localhost:5280/http-bind";
+          extraConfig = ''
+            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+            proxy_set_header Host $host;
+          '';
+        };
+        locations."=/external_api.js" = mkDefault {
+          alias = "${pkgs.jitsi-meet}/libs/external_api.min.js";
+        };
+        locations."=/config.js" = mkDefault {
+          alias = overrideJs "${pkgs.jitsi-meet}/config.js" "config" (recursiveUpdate defaultCfg cfg.config) cfg.extraConfig;
+        };
+        locations."=/interface_config.js" = mkDefault {
+          alias = overrideJs "${pkgs.jitsi-meet}/interface_config.js" "interfaceConfig" cfg.interfaceConfig "";
+        };
+      };
+    };
+
+    services.jitsi-videobridge = mkIf cfg.videobridge.enable {
+      enable = true;
+      xmppConfigs."localhost" = {
+        userName = "jvb";
+        domain = "auth.${cfg.hostName}";
+        passwordFile = "/var/lib/jitsi-meet/videobridge-secret";
+        mucJids = "jvbbrewery@internal.${cfg.hostName}";
+        disableCertificateVerification = true;
+      };
+    };
+
+    services.jicofo = mkIf cfg.jicofo.enable {
+      enable = true;
+      xmppHost = "localhost";
+      xmppDomain = cfg.hostName;
+      userDomain = "auth.${cfg.hostName}";
+      userName = "focus";
+      userPasswordFile = "/var/lib/jitsi-meet/jicofo-user-secret";
+      componentPasswordFile = "/var/lib/jitsi-meet/jicofo-component-secret";
+      bridgeMuc = "jvbbrewery@internal.${cfg.hostName}";
+      config = {
+        "org.jitsi.jicofo.ALWAYS_TRUST_MODE_ENABLED" = "true";
+      };
+    };
+  };
+
+  meta.doc = ./jitsi-meet.xml;
+  meta.maintainers = lib.teams.jitsi.members;
+}
diff --git a/nixpkgs/nixos/modules/services/web-apps/jitsi-meet.xml b/nixpkgs/nixos/modules/services/web-apps/jitsi-meet.xml
new file mode 100644
index 000000000000..97373bc6d9a8
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/web-apps/jitsi-meet.xml
@@ -0,0 +1,55 @@
+<chapter xmlns="http://docbook.org/ns/docbook"
+         xmlns:xlink="http://www.w3.org/1999/xlink"
+         xmlns:xi="http://www.w3.org/2001/XInclude"
+         version="5.0"
+         xml:id="module-services-jitsi-meet">
+ <title>Jitsi Meet</title>
+ <para>
+   With Jitsi Meet on NixOS you can quickly configure a complete,
+   private, self-hosted video conferencing solution.
+ </para>
+
+ <section xml:id="module-services-jitsi-basic-usage">
+ <title>Basic usage</title>
+   <para>
+     A minimal configuration using Let's Encrypt for TLS certificates looks like this:
+<programlisting>{
+  services.jitsi-meet = {
+    <link linkend="opt-services.jitsi-meet.enable">enable</link> = true;
+    <link linkend="opt-services.jitsi-meet.enable">hostName</link> = "jitsi.example.com";
+  };
+  <link linkend="opt-services.jitsi-videobridge.openFirewall">services.jitsi-videobridge.openFirewall</link> = true;
+  <link linkend="opt-networking.firewall.allowedTCPPorts">networking.firewall.allowedTCPPorts</link> = [ 80 443 ];
+  <link linkend="opt-security.acme.email">security.acme.email</link> = "me@example.com";
+  <link linkend="opt-security.acme.acceptTerms">security.acme.acceptTerms</link> = true;
+}</programlisting>
+   </para>
+ </section>
+
+ <section xml:id="module-services-jitsi-configuration">
+ <title>Configuration</title>
+   <para>
+     Here is the minimal configuration with additional configurations:
+<programlisting>{
+  services.jitsi-meet = {
+    <link linkend="opt-services.jitsi-meet.enable">enable</link> = true;
+    <link linkend="opt-services.jitsi-meet.enable">hostName</link> = "jitsi.example.com";
+    <link linkend="opt-services.jitsi-meet.config">config</link> = {
+      enableWelcomePage = false;
+      prejoinPageEnabled = true;
+      defaultLang = "fi";
+    };
+    <link linkend="opt-services.jitsi-meet.interfaceConfig">interfaceConfig</link> = {
+      SHOW_JITSI_WATERMARK = false;
+      SHOW_WATERMARK_FOR_GUESTS = false;
+    };
+  };
+  <link linkend="opt-services.jitsi-videobridge.openFirewall">services.jitsi-videobridge.openFirewall</link> = true;
+  <link linkend="opt-networking.firewall.allowedTCPPorts">networking.firewall.allowedTCPPorts</link> = [ 80 443 ];
+  <link linkend="opt-security.acme.email">security.acme.email</link> = "me@example.com";
+  <link linkend="opt-security.acme.acceptTerms">security.acme.acceptTerms</link> = true;
+}</programlisting>
+   </para>
+ </section>
+
+</chapter>
diff --git a/nixpkgs/nixos/modules/services/web-apps/moodle.nix b/nixpkgs/nixos/modules/services/web-apps/moodle.nix
index 1196780cf6ef..f45eaa24d544 100644
--- a/nixpkgs/nixos/modules/services/web-apps/moodle.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/moodle.nix
@@ -40,7 +40,7 @@ let
   $CFG->disableupdateautodeploy = true;
 
   $CFG->pathtogs = '${pkgs.ghostscript}/bin/gs';
-  $CFG->pathtophp = '${pkgs.php}/bin/php';
+  $CFG->pathtophp = '${phpExt}/bin/php';
   $CFG->pathtodu = '${pkgs.coreutils}/bin/du';
   $CFG->aspellpath = '${pkgs.aspell}/bin/aspell';
   $CFG->pathtodot = '${pkgs.graphviz}/bin/dot';
@@ -55,6 +55,9 @@ let
 
   mysqlLocal = cfg.database.createLocally && cfg.database.type == "mysql";
   pgsqlLocal = cfg.database.createLocally && cfg.database.type == "pgsql";
+
+  phpExt = pkgs.php.withExtensions
+        ({ enabled, all }: with all; [ iconv mbstring curl openssl tokenizer xmlrpc soap ctype zip gd simplexml dom  intl json sqlite3 pgsql pdo_sqlite pdo_pgsql pdo_odbc pdo_mysql pdo mysqli session zlib xmlreader fileinfo ]);
 in
 {
   # interface
@@ -222,6 +225,7 @@ in
 
     services.phpfpm.pools.moodle = {
       inherit user group;
+      phpPackage = phpExt;
       phpEnv.MOODLE_CONFIG = "${moodleConfig}";
       phpOptions = ''
         zend_extension = opcache.so
@@ -263,13 +267,13 @@ in
       after = optional mysqlLocal "mysql.service" ++ optional pgsqlLocal "postgresql.service";
       environment.MOODLE_CONFIG = moodleConfig;
       script = ''
-        ${pkgs.php}/bin/php ${cfg.package}/share/moodle/admin/cli/check_database_schema.php && rc=$? || rc=$?
+        ${phpExt}/bin/php ${cfg.package}/share/moodle/admin/cli/check_database_schema.php && rc=$? || rc=$?
 
-        [ "$rc" == 1 ] && ${pkgs.php}/bin/php ${cfg.package}/share/moodle/admin/cli/upgrade.php \
+        [ "$rc" == 1 ] && ${phpExt}/bin/php ${cfg.package}/share/moodle/admin/cli/upgrade.php \
           --non-interactive \
           --allow-unstable
 
-        [ "$rc" == 2 ] && ${pkgs.php}/bin/php ${cfg.package}/share/moodle/admin/cli/install_database.php \
+        [ "$rc" == 2 ] && ${phpExt}/bin/php ${cfg.package}/share/moodle/admin/cli/install_database.php \
           --agree-license \
           --adminpass=${cfg.initialPassword}
 
@@ -289,7 +293,7 @@ in
       serviceConfig = {
         User = user;
         Group = group;
-        ExecStart = "${pkgs.php}/bin/php ${cfg.package}/share/moodle/admin/cli/cron.php";
+        ExecStart = "${phpExt}/bin/php ${cfg.package}/share/moodle/admin/cli/cron.php";
       };
     };
 
diff --git a/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix b/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix
index 5b9065dec3c5..7da119758fc9 100644
--- a/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/nextcloud.nix
@@ -45,6 +45,22 @@ let
   inherit (config.system) stateVersion;
 
 in {
+
+  imports = [
+    (mkRemovedOptionModule [ "services" "nextcloud" "nginx" "enable" ] ''
+      The nextcloud module supports `nginx` as reverse-proxy by default and doesn't
+      support other reverse-proxies officially.
+
+      However it's possible to use an alternative reverse-proxy by
+
+        * disabling nginx
+        * setting `listen.owner` & `listen.group` in the phpfpm-pool to a different value
+
+      Further details about this can be found in the `Nextcloud`-section of the NixOS-manual
+      (which can be openend e.g. by running `nixos-help`).
+    '')
+  ];
+
   options.services.nextcloud = {
     enable = mkEnableOption "nextcloud";
     hostName = mkOption {
@@ -69,7 +85,7 @@ in {
     package = mkOption {
       type = types.package;
       description = "Which package to use for the Nextcloud instance.";
-      relatedPackages = [ "nextcloud17" "nextcloud18" ];
+      relatedPackages = [ "nextcloud17" "nextcloud18" "nextcloud19" ];
     };
 
     maxUploadSize = mkOption {
@@ -91,16 +107,6 @@ in {
       '';
     };
 
-    nginx.enable = mkOption {
-      type = types.bool;
-      default = false;
-      description = ''
-        Whether to enable nginx virtual host management.
-        Further nginx configuration can be done by adapting <literal>services.nginx.virtualHosts.&lt;name&gt;</literal>.
-        See <xref linkend="opt-services.nginx.virtualHosts"/> for further information.
-      '';
-    };
-
     webfinger = mkOption {
       type = types.bool;
       default = false;
@@ -303,6 +309,14 @@ in {
         '';
       };
     };
+    occ = mkOption {
+      type = types.package;
+      default = occ;
+      internal = true;
+      description = ''
+        The nextcloud-occ program preconfigured to target this Nextcloud instance.
+      '';
+    };
   };
 
   config = mkIf cfg.enable (mkMerge [
@@ -336,7 +350,16 @@ in {
              server, and wait until the upgrade to 17 is finished.
 
           Then, set `services.nextcloud.package` to `pkgs.nextcloud18` to upgrade to
-          Nextcloud version 18.
+          Nextcloud version 18. Please note that Nextcloud 19 is already out and it's
+          recommended to upgrade to nextcloud19 after that.
+        '')
+        ++ (optional (versionOlder cfg.package.version "19") ''
+          A legacy Nextcloud install (from before NixOS 20.09/unstable) may be installed.
+
+          If/After nextcloud18 is installed successfully, you can safely upgrade to
+          nextcloud19. If not, please upgrade to nextcloud18 first since Nextcloud doesn't
+          support upgrades that skip multiple versions (i.e. an upgrade from 17 to 19 isn't
+          possible, but an upgrade from 18 to 19).
         '');
 
       services.nextcloud.package = with pkgs;
@@ -348,7 +371,8 @@ in {
               `pkgs.nextcloud`.
             ''
           else if versionOlder stateVersion "20.03" then nextcloud17
-          else nextcloud18
+          else if versionOlder stateVersion "20.09" then nextcloud18
+          else nextcloud19
         );
     }
 
@@ -360,6 +384,11 @@ in {
       };
 
       systemd.services = {
+        # When upgrading the Nextcloud package, Nextcloud can report errors such as
+        # "The files of the app [all apps in /var/lib/nextcloud/apps] were not replaced correctly"
+        # Restarting phpfpm on Nextcloud package update fixes these issues (but this is a workaround).
+        phpfpm-nextcloud.restartTriggers = [ cfg.package ];
+
         nextcloud-setup = let
           c = cfg.config;
           writePhpArrary = a: "[${concatMapStringsSep "," (val: ''"${toString val}"'') a}]";
@@ -445,10 +474,18 @@ in {
           script = ''
             chmod og+x ${cfg.home}
             ln -sf ${cfg.package}/apps ${cfg.home}/
-            mkdir -p ${cfg.home}/config ${cfg.home}/data ${cfg.home}/store-apps
-            ln -sf ${overrideConfig} ${cfg.home}/config/override.config.php
 
-            chown -R nextcloud:nginx ${cfg.home}/config ${cfg.home}/data ${cfg.home}/store-apps
+            # create nextcloud directories.
+            # if the directories exist already with wrong permissions, we fix that
+            for dir in ${cfg.home}/config ${cfg.home}/data ${cfg.home}/store-apps; do
+              if [ ! -e $dir ]; then
+                install -o nextcloud -g nextcloud -d $dir
+              elif [ $(stat -c "%G" $dir) != "nextcloud" ]; then
+                chgrp -R nextcloud $dir
+              fi
+            done
+
+            ln -sf ${overrideConfig} ${cfg.home}/config/override.config.php
 
             # Do not install if already installed
             if [[ ! -e ${cfg.home}/config/config.php ]]; then
@@ -461,6 +498,7 @@ in {
             ${occSetTrustedDomainsCmd}
           '';
           serviceConfig.Type = "oneshot";
+          serviceConfig.User = "nextcloud";
         };
         nextcloud-cron = {
           environment.NEXTCLOUD_CONFIG_DIR = "${cfg.home}/config";
@@ -479,7 +517,7 @@ in {
       services.phpfpm = {
         pools.nextcloud = {
           user = "nextcloud";
-          group = "nginx";
+          group = "nextcloud";
           phpOptions = phpOptionsStr;
           phpPackage = phpPackage;
           phpEnv = {
@@ -487,128 +525,121 @@ in {
             PATH = "/run/wrappers/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/usr/bin:/bin";
           };
           settings = mapAttrs (name: mkDefault) {
-            "listen.owner" = "nginx";
-            "listen.group" = "nginx";
+            "listen.owner" = config.services.nginx.user;
+            "listen.group" = config.services.nginx.group;
           } // cfg.poolSettings;
           extraConfig = cfg.poolConfig;
         };
       };
 
-      users.extraUsers.nextcloud = {
+      users.users.nextcloud = {
         home = "${cfg.home}";
-        group = "nginx";
+        group = "nextcloud";
         createHome = true;
       };
+      users.groups.nextcloud.members = [ "nextcloud" config.services.nginx.user ];
 
       environment.systemPackages = [ occ ];
-    }
 
-    (mkIf cfg.nginx.enable {
-      services.nginx = {
-        enable = true;
-        virtualHosts = {
-          ${cfg.hostName} = {
-            root = cfg.package;
-            locations = {
-              "= /robots.txt" = {
-                priority = 100;
-                extraConfig = ''
-                  allow all;
-                  log_not_found off;
-                  access_log off;
-                '';
-              };
-              "/" = {
-                priority = 200;
-                extraConfig = "rewrite ^ /index.php;";
-              };
-              "~ ^/store-apps" = {
-                priority = 201;
-                extraConfig = "root ${cfg.home};";
-              };
-              "= /.well-known/carddav" = {
-                priority = 210;
-                extraConfig = "return 301 $scheme://$host/remote.php/dav;";
-              };
-              "= /.well-known/caldav" = {
-                priority = 210;
-                extraConfig = "return 301 $scheme://$host/remote.php/dav;";
-              };
-              "~ ^\\/(?:build|tests|config|lib|3rdparty|templates|data)\\/" = {
-                priority = 300;
-                extraConfig = "deny all;";
-              };
-              "~ ^\\/(?:\\.|autotest|occ|issue|indie|db_|console)" = {
-                priority = 300;
-                extraConfig = "deny all;";
-              };
-              "~ ^\\/(?:index|remote|public|cron|core/ajax\\/update|status|ocs\\/v[12]|updater\\/.+|ocs-provider\\/.+|ocm-provider\\/.+)\\.php(?:$|\\/)" = {
-                priority = 500;
-                extraConfig = ''
-                  include ${config.services.nginx.package}/conf/fastcgi.conf;
-                  fastcgi_split_path_info ^(.+\.php)(\\/.*)$;
-                  try_files $fastcgi_script_name =404;
-                  fastcgi_param PATH_INFO $fastcgi_path_info;
-                  fastcgi_param HTTPS ${if cfg.https then "on" else "off"};
-                  fastcgi_param modHeadersAvailable true;
-                  fastcgi_param front_controller_active true;
-                  fastcgi_pass unix:${fpm.socket};
-                  fastcgi_intercept_errors on;
-                  fastcgi_request_buffering off;
-                  fastcgi_read_timeout 120s;
-                '';
-              };
-              "~ ^\\/(?:updater|ocs-provider|ocm-provider)(?:$|\\/)".extraConfig = ''
-                try_files $uri/ =404;
-                index index.php;
-              '';
-              "~ \\.(?:css|js|woff2?|svg|gif)$".extraConfig = ''
-                try_files $uri /index.php$request_uri;
-                add_header Cache-Control "public, max-age=15778463";
-                add_header X-Content-Type-Options nosniff;
-                add_header X-XSS-Protection "1; mode=block";
-                add_header X-Robots-Tag none;
-                add_header X-Download-Options noopen;
-                add_header X-Permitted-Cross-Domain-Policies none;
-                add_header X-Frame-Options sameorigin;
-                add_header Referrer-Policy no-referrer;
-                access_log off;
-              '';
-              "~ \\.(?:png|html|ttf|ico|jpg|jpeg|bcmap|mp4|webm)$".extraConfig = ''
-                try_files $uri /index.php$request_uri;
-                access_log off;
-              '';
-            };
+      services.nginx.enable = mkDefault true;
+      services.nginx.virtualHosts.${cfg.hostName} = {
+        root = cfg.package;
+        locations = {
+          "= /robots.txt" = {
+            priority = 100;
+            extraConfig = ''
+              allow all;
+              log_not_found off;
+              access_log off;
+            '';
+          };
+          "/" = {
+            priority = 900;
+            extraConfig = "try_files $uri $uri/ /index.php$request_uri;";
+          };
+          "~ ^/store-apps" = {
+            priority = 201;
+            extraConfig = "root ${cfg.home};";
+          };
+          "^~ /.well-known" = {
+            priority = 210;
+            extraConfig = ''
+              location = /.well-known/carddav {
+                return 301 $scheme://$host/remote.php/dav;
+              }
+              location = /.well-known/caldav {
+                return 301 $scheme://$host/remote.php/dav;
+              }
+              try_files $uri $uri/ =404;
+            '';
+          };
+          "~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/)".extraConfig = ''
+            return 404;
+          '';
+          "~ ^/(?:\\.|autotest|occ|issue|indie|db_|console)".extraConfig = ''
+            return 404;
+          '';
+          "~ \\.php(?:$|/)" = {
+            priority = 500;
             extraConfig = ''
-              add_header X-Content-Type-Options nosniff;
-              add_header X-XSS-Protection "1; mode=block";
-              add_header X-Robots-Tag none;
-              add_header X-Download-Options noopen;
-              add_header X-Permitted-Cross-Domain-Policies none;
-              add_header X-Frame-Options sameorigin;
-              add_header Referrer-Policy no-referrer;
-              add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
-              error_page 403 /core/templates/403.php;
-              error_page 404 /core/templates/404.php;
-              client_max_body_size ${cfg.maxUploadSize};
-              fastcgi_buffers 64 4K;
-              fastcgi_hide_header X-Powered-By;
-              gzip on;
-              gzip_vary on;
-              gzip_comp_level 4;
-              gzip_min_length 256;
-              gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
-              gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
-
-              ${optionalString cfg.webfinger ''
-                rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
-                rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
-              ''}
+              include ${config.services.nginx.package}/conf/fastcgi.conf;
+              fastcgi_split_path_info ^(.+?\.php)(\\/.*)$;
+              set $path_info $fastcgi_path_info;
+              try_files $fastcgi_script_name =404;
+              fastcgi_param PATH_INFO $path_info;
+              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+              fastcgi_param HTTPS ${if cfg.https then "on" else "off"};
+              fastcgi_param modHeadersAvailable true;
+              fastcgi_param front_controller_active true;
+              fastcgi_pass unix:${fpm.socket};
+              fastcgi_intercept_errors on;
+              fastcgi_request_buffering off;
+              fastcgi_read_timeout 120s;
             '';
           };
+          "~ \\.(?:css|js|svg|gif|map)$".extraConfig = ''
+            try_files $uri /index.php$request_uri;
+            expires 6M;
+            access_log off;
+          '';
+          "~ \\.woff2?$".extraConfig = ''
+            try_files $uri /index.php$request_uri;
+            expires 7d;
+            access_log off;
+          '';
+          "~ ^\\/(?:updater|ocs-provider|ocm-provider)(?:$|\\/)".extraConfig = ''
+            try_files $uri/ =404;
+            index index.php;
+          '';
         };
+        extraConfig = ''
+          index index.php index.html /index.php$request_uri;
+          expires 1m;
+          add_header X-Content-Type-Options nosniff;
+          add_header X-XSS-Protection "1; mode=block";
+          add_header X-Robots-Tag none;
+          add_header X-Download-Options noopen;
+          add_header X-Permitted-Cross-Domain-Policies none;
+          add_header X-Frame-Options sameorigin;
+          add_header Referrer-Policy no-referrer;
+          add_header Strict-Transport-Security "max-age=15552000; includeSubDomains" always;
+          client_max_body_size ${cfg.maxUploadSize};
+          fastcgi_buffers 64 4K;
+          fastcgi_hide_header X-Powered-By;
+          gzip on;
+          gzip_vary on;
+          gzip_comp_level 4;
+          gzip_min_length 256;
+          gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
+          gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
+
+          ${optionalString cfg.webfinger ''
+            rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
+            rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
+          ''}
+        '';
       };
-    })
+    }
   ]);
 
   meta.doc = ./nextcloud.xml;
diff --git a/nixpkgs/nixos/modules/services/web-apps/nextcloud.xml b/nixpkgs/nixos/modules/services/web-apps/nextcloud.xml
index fc454f8ba254..02e4dba28610 100644
--- a/nixpkgs/nixos/modules/services/web-apps/nextcloud.xml
+++ b/nixpkgs/nixos/modules/services/web-apps/nextcloud.xml
@@ -29,7 +29,6 @@
   services.nextcloud = {
     <link linkend="opt-services.nextcloud.enable">enable</link> = true;
     <link linkend="opt-services.nextcloud.hostName">hostName</link> = "nextcloud.tld";
-    <link linkend="opt-services.nextcloud.nginx.enable">nginx.enable</link> = true;
     config = {
       <link linkend="opt-services.nextcloud.config.dbtype">dbtype</link> = "pgsql";
       <link linkend="opt-services.nextcloud.config.dbuser">dbuser</link> = "nextcloud";
@@ -61,9 +60,8 @@
   </para>
 
   <para>
-   The options <literal>hostName</literal> and <literal>nginx.enable</literal>
-   are used internally to configure an HTTP server using
-   <literal><link xlink:href="https://php-fpm.org/">PHP-FPM</link></literal>
+   The <literal>hostName</literal> option is used internally to configure an HTTP
+   server using <literal><link xlink:href="https://php-fpm.org/">PHP-FPM</link></literal>
    and <literal>nginx</literal>. The <literal>config</literal> attribute set is
    used by the imperative installer and all values are written to an additional file
    to ensure that changes can be applied by changing the module's options.
@@ -125,6 +123,61 @@
   </para>
  </section>
 
+ <section xml:id="module-services-nextcloud-httpd">
+  <title>Using an alternative webserver as reverse-proxy (e.g. <literal>httpd</literal>)</title>
+  <para>
+   By default, <package>nginx</package> is used as reverse-proxy for <package>nextcloud</package>.
+   However, it's possible to use e.g. <package>httpd</package> by explicitly disabling
+   <package>nginx</package> using <xref linkend="opt-services.nginx.enable" /> and fixing the
+   settings <literal>listen.owner</literal> &amp; <literal>listen.group</literal> in the
+   <link linkend="opt-services.phpfpm.pools">corresponding <literal>phpfpm</literal> pool</link>.
+  </para>
+  <para>
+   An exemplary configuration may look like this:
+<programlisting>{ config, lib, pkgs, ... }: {
+  <link linkend="opt-services.nginx.enable">services.nginx.enable</link> = false;
+  services.nextcloud = {
+    <link linkend="opt-services.nextcloud.enable">enable</link> = true;
+    <link linkend="opt-services.nextcloud.hostName">hostName</link> = "localhost";
+
+    /* further, required options */
+  };
+  <link linkend="opt-services.phpfpm.pools._name_.settings">services.phpfpm.pools.nextcloud.settings</link> = {
+    "listen.owner" = config.services.httpd.user;
+    "listen.group" = config.services.httpd.group;
+  };
+  services.httpd = {
+    <link linkend="opt-services.httpd.enable">enable</link> = true;
+    <link linkend="opt-services.httpd.adminAddr">adminAddr</link> = "webmaster@localhost";
+    <link linkend="opt-services.httpd.extraModules">extraModules</link> = [ "proxy_fcgi" ];
+    virtualHosts."localhost" = {
+      <link linkend="opt-services.httpd.virtualHosts._name_.documentRoot">documentRoot</link> = config.services.nextcloud.package;
+      <link linkend="opt-services.httpd.virtualHosts._name_.extraConfig">extraConfig</link> = ''
+        &lt;Directory "${config.services.nextcloud.package}"&gt;
+          &lt;FilesMatch "\.php$"&gt;
+            &lt;If "-f %{REQUEST_FILENAME}"&gt;
+              SetHandler "proxy:unix:${config.services.phpfpm.pools.nextcloud.socket}|fcgi://localhost/"
+            &lt;/If&gt;
+          &lt;/FilesMatch&gt;
+          &lt;IfModule mod_rewrite.c&gt;
+            RewriteEngine On
+            RewriteBase /
+            RewriteRule ^index\.php$ - [L]
+            RewriteCond %{REQUEST_FILENAME} !-f
+            RewriteCond %{REQUEST_FILENAME} !-d
+            RewriteRule . /index.php [L]
+          &lt;/IfModule&gt;
+          DirectoryIndex index.php
+          Require all granted
+          Options +FollowSymLinks
+        &lt;/Directory&gt;
+      '';
+    };
+  };
+}</programlisting>
+  </para>
+ </section>
+
  <section xml:id="module-services-nextcloud-maintainer-info">
   <title>Maintainer information</title>
 
@@ -161,5 +214,11 @@
   };
 }</programlisting>
   </para>
+
+  <para>
+   Ideally we should make sure that it's possible to jump two NixOS versions forward:
+   i.e. the warnings and the logic in the module should guard a user to upgrade from a
+   Nextcloud on e.g. 19.09 to a Nextcloud on 20.09.
+  </para>
  </section>
 </chapter>
diff --git a/nixpkgs/nixos/modules/services/web-apps/pgpkeyserver-lite.nix b/nixpkgs/nixos/modules/services/web-apps/pgpkeyserver-lite.nix
index ad70ba70bbef..838fd19ad294 100644
--- a/nixpkgs/nixos/modules/services/web-apps/pgpkeyserver-lite.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/pgpkeyserver-lite.nix
@@ -33,7 +33,7 @@ in
         description = "
           Which hostname to set the vHost to that is proxying to sks.
         ";
-      };     
+      };
 
       hkpAddress = mkOption {
         default = builtins.head sksCfg.hkpAddress;
diff --git a/nixpkgs/nixos/modules/services/web-apps/rss-bridge.nix b/nixpkgs/nixos/modules/services/web-apps/rss-bridge.nix
new file mode 100644
index 000000000000..f1d5b7660f32
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/web-apps/rss-bridge.nix
@@ -0,0 +1,127 @@
+{ config, lib, pkgs, ... }:
+with lib;
+let
+  cfg = config.services.rss-bridge;
+
+  poolName = "rss-bridge";
+
+  whitelist = pkgs.writeText "rss-bridge_whitelist.txt"
+    (concatStringsSep "\n" cfg.whitelist);
+in
+{
+  options = {
+    services.rss-bridge = {
+      enable = mkEnableOption "rss-bridge";
+
+      user = mkOption {
+        type = types.str;
+        default = "nginx";
+        example = "nginx";
+        description = ''
+          User account under which both the service and the web-application run.
+        '';
+      };
+
+      group = mkOption {
+        type = types.str;
+        default = "nginx";
+        example = "nginx";
+        description = ''
+          Group under which the web-application run.
+        '';
+      };
+
+      pool = mkOption {
+        type = types.str;
+        default = poolName;
+        description = ''
+          Name of existing phpfpm pool that is used to run web-application.
+          If not specified a pool will be created automatically with
+          default values.
+        '';
+      };
+
+      dataDir = mkOption {
+        type = types.str;
+        default = "/var/lib/rss-bridge";
+        description = ''
+          Location in which cache directory will be created.
+          You can put <literal>config.ini.php</literal> in here.
+        '';
+      };
+
+      virtualHost = mkOption {
+        type = types.nullOr types.str;
+        default = "rss-bridge";
+        description = ''
+          Name of the nginx virtualhost to use and setup. If null, do not setup any virtualhost.
+        '';
+      };
+
+      whitelist = mkOption {
+        type = types.listOf types.str;
+        default = [];
+        example = options.literalExample ''
+          [
+            "Facebook"
+            "Instagram"
+            "Twitter"
+          ]
+        '';
+        description = ''
+          List of bridges to be whitelisted.
+          If the list is empty, rss-bridge will use whitelist.default.txt.
+          Use <literal>[ "*" ]</literal> to whitelist all.
+        '';
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    services.phpfpm.pools = mkIf (cfg.pool == poolName) {
+      ${poolName} = {
+        user = cfg.user;
+        settings = mapAttrs (name: mkDefault) {
+          "listen.owner" = cfg.user;
+          "listen.group" = cfg.user;
+          "listen.mode" = "0600";
+          "pm" = "dynamic";
+          "pm.max_children" = 75;
+          "pm.start_servers" = 10;
+          "pm.min_spare_servers" = 5;
+          "pm.max_spare_servers" = 20;
+          "pm.max_requests" = 500;
+          "catch_workers_output" = 1;
+        };
+      };
+    };
+    systemd.tmpfiles.rules = [
+      "d '${cfg.dataDir}/cache' 0750 ${cfg.user} ${cfg.group} - -"
+      (mkIf (cfg.whitelist != []) "L+ ${cfg.dataDir}/whitelist.txt - - - - ${whitelist}")
+      "z '${cfg.dataDir}/config.ini.php' 0750 ${cfg.user} ${cfg.group} - -"
+    ];
+
+    services.nginx = mkIf (cfg.virtualHost != null) {
+      enable = true;
+      virtualHosts = {
+        ${cfg.virtualHost} = {
+          root = "${pkgs.rss-bridge}";
+
+          locations."/" = {
+            tryFiles = "$uri /index.php$is_args$args";
+          };
+
+          locations."~ ^/index.php(/|$)" = {
+            extraConfig = ''
+              include ${pkgs.nginx}/conf/fastcgi_params;
+              fastcgi_split_path_info ^(.+\.php)(/.+)$;
+              fastcgi_pass unix:${config.services.phpfpm.pools.${cfg.pool}.socket};
+              fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
+              fastcgi_param RSSBRIDGE_DATA ${cfg.dataDir};
+            '';
+          };
+        };
+      };
+    };
+  };
+}
diff --git a/nixpkgs/nixos/modules/services/web-apps/sogo.nix b/nixpkgs/nixos/modules/services/web-apps/sogo.nix
index 5f30124dd68a..4610bb96cb5e 100644
--- a/nixpkgs/nixos/modules/services/web-apps/sogo.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/sogo.nix
@@ -77,7 +77,6 @@ in {
         // Paths
         WOSendMail = "/run/wrappers/bin/sendmail";
         SOGoMailSpoolPath = "/var/lib/sogo/spool";
-        SOGoZipPath = "${pkgs.zip}/bin/zip";
         // Enable CSRF protection
         SOGoXSRFValidationEnabled = YES;
         // Remove dates from log (jornald does that)
diff --git a/nixpkgs/nixos/modules/services/web-apps/trilium.nix b/nixpkgs/nixos/modules/services/web-apps/trilium.nix
index 6f47193c62b9..3fa8dad04908 100644
--- a/nixpkgs/nixos/modules/services/web-apps/trilium.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/trilium.nix
@@ -83,7 +83,7 @@ in
     };
   };
 
-  config = lib.mkIf cfg.enable (lib.mkMerge [ 
+  config = lib.mkIf cfg.enable (lib.mkMerge [
   {
     meta.maintainers = with lib.maintainers; [ kampka ];
 
diff --git a/nixpkgs/nixos/modules/services/web-apps/tt-rss.nix b/nixpkgs/nixos/modules/services/web-apps/tt-rss.nix
index 2ea9537b93de..6a29f10d1195 100644
--- a/nixpkgs/nixos/modules/services/web-apps/tt-rss.nix
+++ b/nixpkgs/nixos/modules/services/web-apps/tt-rss.nix
@@ -632,8 +632,6 @@ let
           User = "${cfg.user}";
           Group = "tt_rss";
           ExecStart = "${pkgs.php}/bin/php ${cfg.root}/update.php --daemon --quiet";
-          StandardOutput = "syslog";
-          StandardError = "syslog";
           Restart = "on-failure";
           RestartSec = "60";
           SyslogIdentifier = "tt-rss";
diff --git a/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix b/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
index 8abee7130d7c..6dd1c85132c9 100644
--- a/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
+++ b/nixpkgs/nixos/modules/services/web-servers/apache-httpd/default.nix
@@ -6,10 +6,18 @@ let
 
   cfg = config.services.httpd;
 
+  certs = config.security.acme.certs;
+
   runtimeDir = "/run/httpd";
 
   pkg = cfg.package.out;
 
+  apachectl = pkgs.runCommand "apachectl" { meta.priority = -1; } ''
+    mkdir -p $out/bin
+    cp ${pkg}/bin/apachectl $out/bin/apachectl
+    sed -i $out/bin/apachectl -e 's|$HTTPD -t|$HTTPD -t -f ${httpdConf}|'
+  '';
+
   httpdConf = cfg.configFile;
 
   php = cfg.phpPackage.override { apacheHttpd = pkg; };
@@ -20,6 +28,13 @@ let
 
   vhosts = attrValues cfg.virtualHosts;
 
+  # certName is used later on to determine systemd service names.
+  acmeEnabledVhosts = map (hostOpts: hostOpts // {
+    certName = if hostOpts.useACMEHost != null then hostOpts.useACMEHost else hostOpts.hostName;
+  }) (filter (hostOpts: hostOpts.enableACME || hostOpts.useACMEHost != null) vhosts);
+
+  dependentCertNames = unique (map (hostOpts: hostOpts.certName) acmeEnabledVhosts);
+
   mkListenInfo = hostOpts:
     if hostOpts.listen != [] then hostOpts.listen
     else (
@@ -119,13 +134,13 @@ let
 
       useACME = hostOpts.enableACME || hostOpts.useACMEHost != null;
       sslCertDir =
-        if hostOpts.enableACME then config.security.acme.certs.${hostOpts.hostName}.directory
-        else if hostOpts.useACMEHost != null then config.security.acme.certs.${hostOpts.useACMEHost}.directory
+        if hostOpts.enableACME then certs.${hostOpts.hostName}.directory
+        else if hostOpts.useACMEHost != null then certs.${hostOpts.useACMEHost}.directory
         else abort "This case should never happen.";
 
-      sslServerCert = if useACME then "${sslCertDir}/full.pem" else hostOpts.sslServerCert;
+      sslServerCert = if useACME then "${sslCertDir}/fullchain.pem" else hostOpts.sslServerCert;
       sslServerKey = if useACME then "${sslCertDir}/key.pem" else hostOpts.sslServerKey;
-      sslServerChain = if useACME then "${sslCertDir}/fullchain.pem" else hostOpts.sslServerChain;
+      sslServerChain = if useACME then "${sslCertDir}/chain.pem" else hostOpts.sslServerChain;
 
       acmeChallenge = optionalString useACME ''
         Alias /.well-known/acme-challenge/ "${hostOpts.acmeRoot}/.well-known/acme-challenge/"
@@ -341,7 +356,6 @@ let
       cat ${php.phpIni} > $out
       echo "$options" >> $out
     '';
-
 in
 
 
@@ -641,19 +655,41 @@ in
       wwwrun.gid = config.ids.gids.wwwrun;
     };
 
-    security.acme.certs = mapAttrs (name: hostOpts: {
-      user = cfg.user;
-      group = mkDefault cfg.group;
-      email = if hostOpts.adminAddr != null then hostOpts.adminAddr else cfg.adminAddr;
-      webroot = hostOpts.acmeRoot;
-      extraDomains = genAttrs hostOpts.serverAliases (alias: null);
-      postRun = "systemctl reload httpd.service";
-    }) (filterAttrs (name: hostOpts: hostOpts.enableACME) cfg.virtualHosts);
-
-    environment.systemPackages = [ pkg ];
+    security.acme.certs = let
+      acmePairs = map (hostOpts: nameValuePair hostOpts.hostName {
+        group = mkDefault cfg.group;
+        webroot = hostOpts.acmeRoot;
+        extraDomainNames = hostOpts.serverAliases;
+        # Use the vhost-specific email address if provided, otherwise let
+        # security.acme.email or security.acme.certs.<cert>.email be used.
+        email = mkOverride 2000 (if hostOpts.adminAddr != null then hostOpts.adminAddr else cfg.adminAddr);
+      # Filter for enableACME-only vhosts. Don't want to create dud certs
+      }) (filter (hostOpts: hostOpts.useACMEHost == null) acmeEnabledVhosts);
+    in listToAttrs acmePairs;
+
+    environment.systemPackages = [
+      apachectl
+      pkg
+    ];
 
-    # required for "apachectl configtest"
-    environment.etc."httpd/httpd.conf".source = httpdConf;
+    services.logrotate = optionalAttrs (cfg.logFormat != "none") {
+      enable = mkDefault true;
+      paths.httpd = {
+        path = "${cfg.logDir}/*.log";
+        user = cfg.user;
+        group = cfg.group;
+        frequency = "daily";
+        keep = 28;
+        extraConfig = ''
+          sharedscripts
+          compress
+          delaycompress
+          postrotate
+            systemctl reload httpd.service > /dev/null 2>/dev/null || true
+          endscript
+        '';
+      };
+    };
 
     services.httpd.phpOptions =
       ''
@@ -699,15 +735,12 @@ in
           "Z '${cfg.logDir}' - ${svc.User} ${svc.Group}"
         ];
 
-    systemd.services.httpd =
-      let
-        vhostsACME = filter (hostOpts: hostOpts.enableACME) vhosts;
-      in
-      { description = "Apache HTTPD";
-
+    systemd.services.httpd = {
+        description = "Apache HTTPD";
         wantedBy = [ "multi-user.target" ];
-        wants = concatLists (map (hostOpts: [ "acme-${hostOpts.hostName}.service" "acme-selfsigned-${hostOpts.hostName}.service" ]) vhostsACME);
-        after = [ "network.target" "fs.target" ] ++ map (hostOpts: "acme-selfsigned-${hostOpts.hostName}.service") vhostsACME;
+        wants = concatLists (map (certName: [ "acme-finished-${certName}.target" ]) dependentCertNames);
+        after = [ "network.target" ] ++ map (certName: "acme-selfsigned-${certName}.service") dependentCertNames;
+        before = map (certName: "acme-${certName}.service") dependentCertNames;
 
         path = [ pkg pkgs.coreutils pkgs.gnugrep ];
 
@@ -741,5 +774,31 @@ in
         };
       };
 
+    # postRun hooks on cert renew can't be used to restart Apache since renewal
+    # runs as the unprivileged acme user. sslTargets are added to wantedBy + before
+    # which allows the acme-finished-$cert.target to signify the successful updating
+    # of certs end-to-end.
+    systemd.services.httpd-config-reload = let
+      sslServices = map (certName: "acme-${certName}.service") dependentCertNames;
+      sslTargets = map (certName: "acme-finished-${certName}.target") dependentCertNames;
+    in mkIf (sslServices != []) {
+      wantedBy = sslServices ++ [ "multi-user.target" ];
+      # Before the finished targets, after the renew services.
+      # This service might be needed for HTTP-01 challenges, but we only want to confirm
+      # certs are updated _after_ config has been reloaded.
+      before = sslTargets;
+      after = sslServices;
+      # Block reloading if not all certs exist yet.
+      # Happens when config changes add new vhosts/certs.
+      unitConfig.ConditionPathExists = map (certName: certs.${certName}.directory + "/fullchain.pem") dependentCertNames;
+      serviceConfig = {
+        Type = "oneshot";
+        TimeoutSec = 60;
+        ExecCondition = "/run/current-system/systemd/bin/systemctl -q is-active httpd.service";
+        ExecStartPre = "${pkg}/bin/httpd -f ${httpdConf} -t";
+        ExecStart = "/run/current-system/systemd/bin/systemctl reload httpd.service";
+      };
+    };
+
   };
 }
diff --git a/nixpkgs/nixos/modules/services/web-servers/caddy.nix b/nixpkgs/nixos/modules/services/web-servers/caddy.nix
index 0e6e10a5f47d..dda26fe491a1 100644
--- a/nixpkgs/nixos/modules/services/web-servers/caddy.nix
+++ b/nixpkgs/nixos/modules/services/web-servers/caddy.nix
@@ -5,6 +5,26 @@ with lib;
 let
   cfg = config.services.caddy;
   configFile = pkgs.writeText "Caddyfile" cfg.config;
+
+  # v2-specific options
+  isCaddy2 = versionAtLeast cfg.package.version "2.0";
+  tlsConfig = {
+    apps.tls.automation.policies = [{
+      issuer = {
+        inherit (cfg) ca email;
+        module = "acme";
+      };
+    }];
+  };
+
+  adaptedConfig = pkgs.runCommand "caddy-config-adapted.json" { } ''
+    ${cfg.package}/bin/caddy adapt \
+      --config ${configFile} --adapter ${cfg.adapter} > $out
+  '';
+  tlsJSON = pkgs.writeText "tls.json" (builtins.toJSON tlsConfig);
+  configJSON = pkgs.runCommand "caddy-config.json" { } ''
+    ${pkgs.jq}/bin/jq -s '.[0] * .[1]' ${adaptedConfig} ${tlsJSON} > $out
+  '';
 in {
   options.services.caddy = {
     enable = mkEnableOption "Caddy web server";
@@ -13,15 +33,26 @@ in {
       default = "";
       example = ''
         example.com {
-        gzip
-        minify
-        log syslog
-
-        root /srv/http
+          encode gzip
+          log
+          root /srv/http
         }
       '';
       type = types.lines;
-      description = "Verbatim Caddyfile to use";
+      description = ''
+        Verbatim Caddyfile to use.
+        Caddy v2 supports multiple config formats via adapters (see <option>services.caddy.adapter</option>).
+      '';
+    };
+
+    adapter = mkOption {
+      default = "caddyfile";
+      example = "nginx";
+      type = types.str;
+      description = ''
+        Name of the config adapter to use. Not applicable to Caddy v1.
+        See https://caddyserver.com/docs/config-adapters for the full list.
+      '';
     };
 
     ca = mkOption {
@@ -50,33 +81,46 @@ in {
         The data directory, for storing certificates. Before 17.09, this
         would create a .caddy directory. With 17.09 the contents of the
         .caddy directory are in the specified data directory instead.
+
+        Caddy v2 replaced CADDYPATH with XDG directories.
+        See https://caddyserver.com/docs/conventions#file-locations.
       '';
     };
 
     package = mkOption {
       default = pkgs.caddy;
       defaultText = "pkgs.caddy";
+      example = "pkgs.caddy1";
       type = types.package;
-      description = "Caddy package to use.";
+      description = ''
+        Caddy package to use.
+        To use Caddy v1 (obsolete), set this to <literal>pkgs.caddy1</literal>.
+      '';
     };
   };
 
   config = mkIf cfg.enable {
     systemd.services.caddy = {
       description = "Caddy web server";
-      # upstream unit: https://github.com/caddyserver/caddy/blob/master/dist/init/linux-systemd/caddy.service
+      # upstream unit: https://github.com/caddyserver/dist/blob/master/init/caddy.service
       after = [ "network-online.target" ];
       wants = [ "network-online.target" ]; # systemd-networkd-wait-online.service
       wantedBy = [ "multi-user.target" ];
-      environment = mkIf (versionAtLeast config.system.stateVersion "17.09")
+      environment = mkIf (versionAtLeast config.system.stateVersion "17.09" && !isCaddy2)
         { CADDYPATH = cfg.dataDir; };
       serviceConfig = {
-        ExecStart = ''
+        ExecStart = if isCaddy2 then ''
+          ${cfg.package}/bin/caddy run --config ${configJSON}
+        '' else ''
           ${cfg.package}/bin/caddy -log stdout -log-timestamps=false \
             -root=/var/tmp -conf=${configFile} \
             -ca=${cfg.ca} -email=${cfg.email} ${optionalString cfg.agree "-agree"}
         '';
-        ExecReload = "${pkgs.coreutils}/bin/kill -USR1 $MAINPID";
+        ExecReload =
+          if isCaddy2 then
+            "${cfg.package}/bin/caddy reload --config ${configJSON}"
+          else
+            "${pkgs.coreutils}/bin/kill -USR1 $MAINPID";
         Type = "simple";
         User = "caddy";
         Group = "caddy";
diff --git a/nixpkgs/nixos/modules/services/web-servers/jboss/builder.sh b/nixpkgs/nixos/modules/services/web-servers/jboss/builder.sh
index 2eb89a90f67d..0e5af324c13f 100644
--- a/nixpkgs/nixos/modules/services/web-servers/jboss/builder.sh
+++ b/nixpkgs/nixos/modules/services/web-servers/jboss/builder.sh
@@ -28,11 +28,11 @@ stop()
 if test "\$1" = start
 then
   trap stop 15
-  
+
   start
 elif test "\$1" = stop
 then
-  stop  
+  stop
 elif test "\$1" = init
 then
   echo "Are you sure you want to create a new server instance (old server instance will be lost!)?"
@@ -42,21 +42,21 @@ then
   then
     exit 1
   fi
-  
+
   rm -rf $serverDir
   mkdir -p $serverDir
   cd $serverDir
   cp -av $jboss/server/default .
   sed -i -e "s|deploy/|$deployDir|" default/conf/jboss-service.xml
-  
+
   if ! test "$useJK" = ""
   then
     sed -i -e 's|<attribute name="UseJK">false</attribute>|<attribute name="UseJK">true</attribute>|' default/deploy/jboss-web.deployer/META-INF/jboss-service.xml
     sed -i -e 's|<Engine name="jboss.web" defaultHost="localhost">|<Engine name="jboss.web" defaultHost="localhost" jvmRoute="node1">|' default/deploy/jboss-web.deployer/server.xml
   fi
-  
+
   # Make files accessible for the server user
-  
+
   chown -R $user $serverDir
   for i in \`find $serverDir -type d\`
   do
diff --git a/nixpkgs/nixos/modules/services/web-servers/meguca.nix b/nixpkgs/nixos/modules/services/web-servers/meguca.nix
deleted file mode 100644
index 5a00070dc941..000000000000
--- a/nixpkgs/nixos/modules/services/web-servers/meguca.nix
+++ /dev/null
@@ -1,174 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-let
-  cfg = config.services.meguca;
-  postgres = config.services.postgresql;
-in with lib; {
-  options.services.meguca = {
-    enable = mkEnableOption "meguca";
-
-    dataDir = mkOption {
-      type = types.path;
-      default = "/var/lib/meguca";
-      example = "/home/okina/meguca";
-      description = "Location where meguca stores it's database and links.";
-    };
-
-    password = mkOption {
-      type = types.str;
-      default = "meguca";
-      example = "dumbpass";
-      description = "Password for the meguca database.";
-    };
-
-    passwordFile = mkOption {
-      type = types.path;
-      default = "/run/keys/meguca-password-file";
-      example = "/home/okina/meguca/keys/pass";
-      description = "Password file for the meguca database.";
-    };
-
-    reverseProxy = mkOption {
-      type = types.nullOr types.str;
-      default = null;
-      example = "192.168.1.5";
-      description = "Reverse proxy IP.";
-    };
-
-    sslCertificate = mkOption {
-      type = types.nullOr types.str;
-      default = null;
-      example = "/home/okina/meguca/ssl.cert";
-      description = "Path to the SSL certificate.";
-    };
-
-    listenAddress = mkOption {
-      type = types.nullOr types.str;
-      default = null;
-      example = "127.0.0.1:8000";
-      description = "Listen on a specific IP address and port.";
-    };
-
-    cacheSize = mkOption {
-      type = types.nullOr types.int;
-      default = null;
-      example = 256;
-      description = "Cache size in MB.";
-    };
-
-    postgresArgs = mkOption {
-      type = types.str;
-      example = "user=meguca password=dumbpass dbname=meguca sslmode=disable";
-      description = "Postgresql connection arguments.";
-    };
-
-    postgresArgsFile = mkOption {
-      type = types.path;
-      default = "/run/keys/meguca-postgres-args";
-      example = "/home/okina/meguca/keys/postgres";
-      description = "Postgresql connection arguments file.";
-    };
-
-    compressTraffic = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Compress all traffic with gzip.";
-    };
-
-    assumeReverseProxy = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Assume the server is behind a reverse proxy, when resolving client IPs.";
-    };
-
-    httpsOnly = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Serve and listen only through HTTPS.";
-    };
-
-    videoPaths = mkOption {
-      type = types.listOf types.path;
-      default = [];
-      example = [ "/home/okina/Videos/tehe_pero.webm" ];
-      description = "Videos that will be symlinked into www/videos.";
-    };
-  };
-
-  config = mkIf cfg.enable {
-    security.sudo.enable = cfg.enable;
-    services.postgresql.enable = cfg.enable;
-    services.postgresql.package = pkgs.postgresql_11;
-    services.meguca.passwordFile = mkDefault (pkgs.writeText "meguca-password-file" cfg.password);
-    services.meguca.postgresArgsFile = mkDefault (pkgs.writeText "meguca-postgres-args" cfg.postgresArgs);
-    services.meguca.postgresArgs = mkDefault "user=meguca password=${cfg.password} dbname=meguca sslmode=disable";
-
-    systemd.services.meguca = {
-      description = "meguca";
-      after = [ "network.target" "postgresql.service" ];
-      wantedBy = [ "multi-user.target" ];
-
-      preStart = ''
-        # Ensure folder exists or create it and links and permissions are correct
-        mkdir -p ${escapeShellArg cfg.dataDir}/www
-        rm -rf ${escapeShellArg cfg.dataDir}/www/videos
-        ln -sf ${pkgs.meguca}/share/meguca/www/* ${escapeShellArg cfg.dataDir}/www
-        unlink ${escapeShellArg cfg.dataDir}/www/videos
-        mkdir -p ${escapeShellArg cfg.dataDir}/www/videos
-
-        for vid in ${escapeShellArg cfg.videoPaths}; do
-          ln -sf $vid ${escapeShellArg cfg.dataDir}/www/videos
-        done
-
-        chmod 750 ${escapeShellArg cfg.dataDir}
-        chown -R meguca:meguca ${escapeShellArg cfg.dataDir}
-
-        # Ensure the database is correct or create it
-        ${pkgs.sudo}/bin/sudo -u ${postgres.superUser} ${postgres.package}/bin/createuser \
-          -SDR meguca || true
-        ${pkgs.sudo}/bin/sudo -u ${postgres.superUser} ${postgres.package}/bin/createdb \
-          -T template0 -E UTF8 -O meguca meguca || true
-        ${pkgs.sudo}/bin/sudo -u meguca ${postgres.package}/bin/psql \
-          -c "ALTER ROLE meguca WITH PASSWORD '$(cat ${escapeShellArg cfg.passwordFile})';" || true
-      '';
-
-    script = ''
-      cd ${escapeShellArg cfg.dataDir}
-
-      ${pkgs.meguca}/bin/meguca -d "$(cat ${escapeShellArg cfg.postgresArgsFile})"''
-      + optionalString (cfg.reverseProxy != null) " -R ${cfg.reverseProxy}"
-      + optionalString (cfg.sslCertificate != null) " -S ${cfg.sslCertificate}"
-      + optionalString (cfg.listenAddress != null) " -a ${cfg.listenAddress}"
-      + optionalString (cfg.cacheSize != null) " -c ${toString cfg.cacheSize}"
-      + optionalString (cfg.compressTraffic) " -g"
-      + optionalString (cfg.assumeReverseProxy) " -r"
-      + optionalString (cfg.httpsOnly) " -s" + " start";
-
-      serviceConfig = {
-        PermissionsStartOnly = true;
-        Type = "forking";
-        User = "meguca";
-        Group = "meguca";
-        ExecStop = "${pkgs.meguca}/bin/meguca stop";
-      };
-    };
-
-    users = {
-      groups.meguca.gid = config.ids.gids.meguca;
-
-      users.meguca = {
-        description = "meguca server service user";
-        home = cfg.dataDir;
-        createHome = true;
-        group = "meguca";
-        uid = config.ids.uids.meguca;
-      };
-    };
-  };
-
-  imports = [
-    (mkRenamedOptionModule [ "services" "meguca" "baseDir" ] [ "services" "meguca" "dataDir" ])
-  ];
-
-  meta.maintainers = with maintainers; [ chiiruno ];
-}
diff --git a/nixpkgs/nixos/modules/services/web-servers/molly-brown.nix b/nixpkgs/nixos/modules/services/web-servers/molly-brown.nix
new file mode 100644
index 000000000000..e9052a184b2d
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/web-servers/molly-brown.nix
@@ -0,0 +1,117 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+  cfg = config.services.molly-brown;
+
+  settingsType = with types;
+    attrsOf (oneOf [
+      int
+      str
+      (listOf str)
+      (attrsOf (oneOf [ int str (listOf str) (attrsOf str) ]))
+    ]) // {
+      description = "primitive expression convertable to TOML";
+    };
+
+  configFile = pkgs.runCommand "molly-brown.toml" {
+    buildInputs = [ pkgs.remarshal ];
+    preferLocalBuild = true;
+    passAsFile = [ "settings" ];
+    settings = builtins.toJSON cfg.settings;
+  } "remarshal -if json -of toml < $settingsPath > $out";
+in {
+
+  options.services.molly-brown = {
+
+    enable = mkEnableOption "Molly-Brown Gemini server";
+
+    port = mkOption {
+      default = 1965;
+      type = types.port;
+      description = ''
+        TCP port for molly-brown to bind to.
+      '';
+    };
+
+    hostName = mkOption {
+      type = types.str;
+      example = literalExample "config.networking.hostName";
+      default = config.networking.hostName;
+      description = ''
+        The hostname to respond to requests for. Requests for URLs with
+        other hosts will result in a status 53 (PROXY REQUEST REFUSED)
+        response.
+      '';
+    };
+
+    certPath = mkOption {
+      type = types.path;
+      example = "/var/lib/acme/example.com/cert.pem";
+      description = ''
+        Path to TLS certificate. An ACME certificate and key may be
+        shared with an HTTP server, but only if molly-brown has
+        permissions allowing it to read such keys.
+
+        As an example:
+        <programlisting>
+        security.acme.certs."example.com".allowKeysForGroup = true;
+        systemd.services.molly-brown.serviceConfig.SupplementaryGroups =
+          [ config.security.acme.certs."example.com".group ];
+        </programlisting>
+      '';
+    };
+
+    keyPath = mkOption {
+      type = types.path;
+      example = "/var/lib/acme/example.com/key.pem";
+      description = "Path to TLS key. See <option>CertPath</option>.";
+    };
+
+    docBase = mkOption {
+      type = types.path;
+      example = "/var/lib/molly-brown";
+      description = "Base directory for Gemini content.";
+    };
+
+    settings = mkOption {
+      type = settingsType;
+      default = { };
+      description = ''
+        molly-brown configuration. Refer to
+        <link xlink:href="https://tildegit.org/solderpunk/molly-brown/src/branch/master/example.conf"/>
+        for details on supported values.
+      '';
+    };
+
+  };
+
+  config = mkIf cfg.enable {
+
+    services.molly-brown.settings = let logDir = "/var/log/molly-brown";
+    in {
+      Port = cfg.port;
+      Hostname = cfg.hostName;
+      CertPath = cfg.certPath;
+      KeyPath = cfg.keyPath;
+      DocBase = cfg.docBase;
+      AccessLog = "${logDir}/access.log";
+      ErrorLog = "${logDir}/error.log";
+    };
+
+    systemd.services.molly-brown = {
+      description = "Molly Brown gemini server";
+      after = [ "network.target" ];
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        DynamicUser = true;
+        LogsDirectory = "molly-brown";
+        ExecStart = "${pkgs.molly-brown}/bin/molly-brown -c ${configFile}";
+        Restart = "always";
+      };
+    };
+
+  };
+
+}
diff --git a/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix b/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
index 04d66ffd25c6..0cb84de793e0 100644
--- a/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
+++ b/nixpkgs/nixos/modules/services/web-servers/nginx/default.nix
@@ -6,23 +6,23 @@ let
   cfg = config.services.nginx;
   certs = config.security.acme.certs;
   vhostsConfigs = mapAttrsToList (vhostName: vhostConfig: vhostConfig) virtualHosts;
-  acmeEnabledVhosts = filter (vhostConfig: vhostConfig.enableACME && vhostConfig.useACMEHost == null) vhostsConfigs;
+  acmeEnabledVhosts = filter (vhostConfig: vhostConfig.enableACME || vhostConfig.useACMEHost != null) vhostsConfigs;
+  dependentCertNames = unique (map (hostOpts: hostOpts.certName) acmeEnabledVhosts);
   virtualHosts = mapAttrs (vhostName: vhostConfig:
     let
       serverName = if vhostConfig.serverName != null
         then vhostConfig.serverName
         else vhostName;
+      certName = if vhostConfig.useACMEHost != null
+        then vhostConfig.useACMEHost
+        else serverName;
     in
     vhostConfig // {
-      inherit serverName;
-    } // (optionalAttrs vhostConfig.enableACME {
-      sslCertificate = "${certs.${serverName}.directory}/fullchain.pem";
-      sslCertificateKey = "${certs.${serverName}.directory}/key.pem";
-      sslTrustedCertificate = "${certs.${serverName}.directory}/full.pem";
-    }) // (optionalAttrs (vhostConfig.useACMEHost != null) {
-      sslCertificate = "${certs.${vhostConfig.useACMEHost}.directory}/fullchain.pem";
-      sslCertificateKey = "${certs.${vhostConfig.useACMEHost}.directory}/key.pem";
-      sslTrustedCertificate = "${certs.${vhostConfig.useACMEHost}.directory}/fullchain.pem";
+      inherit serverName certName;
+    } // (optionalAttrs (vhostConfig.enableACME || vhostConfig.useACMEHost != null) {
+      sslCertificate = "${certs.${certName}.directory}/fullchain.pem";
+      sslCertificateKey = "${certs.${certName}.directory}/key.pem";
+      sslTrustedCertificate = "${certs.${certName}.directory}/chain.pem";
     })
   ) cfg.virtualHosts;
   enableIPv6 = config.networking.enableIPv6;
@@ -494,14 +494,6 @@ in
         '';
       };
 
-      enableSandbox = mkOption {
-        default = false;
-        type = types.bool;
-        description = ''
-          Starting Nginx web server with additional sandbox/hardening options.
-        '';
-      };
-
       user = mkOption {
         type = types.str;
         default = "nginx";
@@ -722,8 +714,12 @@ in
     systemd.services.nginx = {
       description = "Nginx Web Server";
       wantedBy = [ "multi-user.target" ];
-      wants = concatLists (map (vhostConfig: ["acme-${vhostConfig.serverName}.service" "acme-selfsigned-${vhostConfig.serverName}.service"]) acmeEnabledVhosts);
-      after = [ "network.target" ] ++ map (vhostConfig: "acme-selfsigned-${vhostConfig.serverName}.service") acmeEnabledVhosts;
+      wants = concatLists (map (certName: [ "acme-finished-${certName}.target" ]) dependentCertNames);
+      after = [ "network.target" ] ++ map (certName: "acme-selfsigned-${certName}.service") dependentCertNames;
+      # Nginx needs to be started in order to be able to request certificates
+      # (it's hosting the acme challenge after all)
+      # This fixes https://github.com/NixOS/nixpkgs/issues/81842
+      before = map (certName: "acme-${certName}.service") dependentCertNames;
       stopIfChanged = false;
       preStart = ''
         ${cfg.preStart}
@@ -731,7 +727,10 @@ in
       '';
       serviceConfig = {
         ExecStart = execCommand;
-        ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+        ExecReload = [
+          "${execCommand} -t"
+          "${pkgs.coreutils}/bin/kill -HUP $MAINPID"
+        ];
         Restart = "always";
         RestartSec = "10s";
         StartLimitInterval = "1min";
@@ -752,7 +751,6 @@ in
         CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" "CAP_SYS_RESOURCE" ];
         # Security
         NoNewPrivileges = true;
-      } // optionalAttrs cfg.enableSandbox {
         # Sandboxing
         ProtectSystem = "strict";
         ProtectHome = mkDefault true;
@@ -777,38 +775,41 @@ in
       source = configFile;
     };
 
-    systemd.services.nginx-config-reload = mkIf cfg.enableReload {
-      wants = [ "nginx.service" ];
-      wantedBy = [ "multi-user.target" ];
-      restartTriggers = [ configFile ];
-      # commented, because can cause extra delays during activate for this config:
-      #      services.nginx.virtualHosts."_".locations."/".proxyPass = "http://blabla:3000";
-      # stopIfChanged = false;
-      serviceConfig.Type = "oneshot";
-      serviceConfig.TimeoutSec = 60;
-      script = ''
-        if /run/current-system/systemd/bin/systemctl -q is-active nginx.service ; then
-          ${execCommand} -t && \
-            /run/current-system/systemd/bin/systemctl reload nginx.service
-        fi
-      '';
-      serviceConfig.RemainAfterExit = true;
+    # postRun hooks on cert renew can't be used to restart Nginx since renewal
+    # runs as the unprivileged acme user. sslTargets are added to wantedBy + before
+    # which allows the acme-finished-$cert.target to signify the successful updating
+    # of certs end-to-end.
+    systemd.services.nginx-config-reload = let
+      sslServices = map (certName: "acme-${certName}.service") dependentCertNames;
+      sslTargets = map (certName: "acme-finished-${certName}.target") dependentCertNames;
+    in mkIf (cfg.enableReload || sslServices != []) {
+      wants = optionals (cfg.enableReload) [ "nginx.service" ];
+      wantedBy = sslServices ++ [ "multi-user.target" ];
+      # Before the finished targets, after the renew services.
+      # This service might be needed for HTTP-01 challenges, but we only want to confirm
+      # certs are updated _after_ config has been reloaded.
+      before = sslTargets;
+      after = sslServices;
+      restartTriggers = optionals (cfg.enableReload) [ configFile ];
+      # Block reloading if not all certs exist yet.
+      # Happens when config changes add new vhosts/certs.
+      unitConfig.ConditionPathExists = optionals (sslServices != []) (map (certName: certs.${certName}.directory + "/fullchain.pem") dependentCertNames);
+      serviceConfig = {
+        Type = "oneshot";
+        TimeoutSec = 60;
+        ExecCondition = "/run/current-system/systemd/bin/systemctl -q is-active nginx.service";
+        ExecStart = "/run/current-system/systemd/bin/systemctl reload nginx.service";
+      };
     };
 
-    security.acme.certs = filterAttrs (n: v: v != {}) (
-      let
-        acmePairs = map (vhostConfig: { name = vhostConfig.serverName; value = {
-            user = cfg.user;
-            group = lib.mkDefault cfg.group;
-            webroot = vhostConfig.acmeRoot;
-            extraDomains = genAttrs vhostConfig.serverAliases (alias: null);
-            postRun = ''
-              /run/current-system/systemd/bin/systemctl reload nginx
-            '';
-          }; }) acmeEnabledVhosts;
-      in
-        listToAttrs acmePairs
-    );
+    security.acme.certs = let
+      acmePairs = map (vhostConfig: nameValuePair vhostConfig.serverName {
+        group = mkDefault cfg.group;
+        webroot = vhostConfig.acmeRoot;
+        extraDomainNames = vhostConfig.serverAliases;
+      # Filter for enableACME-only vhosts. Don't want to create dud certs
+      }) (filter (vhostConfig: vhostConfig.useACMEHost == null) acmeEnabledVhosts);
+    in listToAttrs acmePairs;
 
     users.users = optionalAttrs (cfg.user == "nginx") {
       nginx = {
diff --git a/nixpkgs/nixos/modules/services/web-servers/phpfpm/default.nix b/nixpkgs/nixos/modules/services/web-servers/phpfpm/default.nix
index d090885a8ca5..759eebf768db 100644
--- a/nixpkgs/nixos/modules/services/web-servers/phpfpm/default.nix
+++ b/nixpkgs/nixos/modules/services/web-servers/phpfpm/default.nix
@@ -277,6 +277,7 @@ in {
           ExecReload = "${pkgs.coreutils}/bin/kill -USR2 $MAINPID";
           RuntimeDirectory = "phpfpm";
           RuntimeDirectoryPreserve = true; # Relevant when multiple processes are running
+          Restart = "always";
         };
       }
     ) cfg.pools;
diff --git a/nixpkgs/nixos/modules/services/web-servers/shellinabox.nix b/nixpkgs/nixos/modules/services/web-servers/shellinabox.nix
index 58a02ac59c35..c7c51f873eba 100644
--- a/nixpkgs/nixos/modules/services/web-servers/shellinabox.nix
+++ b/nixpkgs/nixos/modules/services/web-servers/shellinabox.nix
@@ -51,7 +51,7 @@ in
           Whether or not to enable SSL (https) support.
         '';
       };
-        
+
       certDirectory = mkOption {
         type = types.nullOr types.path;
         default = null;
diff --git a/nixpkgs/nixos/modules/services/web-servers/unit/default.nix b/nixpkgs/nixos/modules/services/web-servers/unit/default.nix
index 989866144e1e..894271d1e55e 100644
--- a/nixpkgs/nixos/modules/services/web-servers/unit/default.nix
+++ b/nixpkgs/nixos/modules/services/web-servers/unit/default.nix
@@ -102,7 +102,7 @@ in {
         PIDFile = "/run/unit/unit.pid";
         ExecStart = ''
           ${cfg.package}/bin/unitd --control 'unix:/run/unit/control.unit.sock' --pid '/run/unit/unit.pid' \
-                                   --log '${cfg.logDir}/unit.log' --state '${cfg.stateDir}' \
+                                   --log '${cfg.logDir}/unit.log' --state '${cfg.stateDir}' --tmp '/tmp' \
                                    --user ${cfg.user} --group ${cfg.group}
         '';
         ExecStop = ''
@@ -120,9 +120,12 @@ in {
         ProtectHome = true;
         PrivateTmp = true;
         PrivateDevices = true;
+        PrivateUsers = false;
         ProtectHostname = true;
+        ProtectClock = true;
         ProtectKernelTunables = true;
         ProtectKernelModules = true;
+        ProtectKernelLogs = true;
         ProtectControlGroups = true;
         RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
         LockPersonality = true;
diff --git a/nixpkgs/nixos/modules/services/x11/colord.nix b/nixpkgs/nixos/modules/services/x11/colord.nix
index cf113ad2af8c..31ccee6aa33f 100644
--- a/nixpkgs/nixos/modules/services/x11/colord.nix
+++ b/nixpkgs/nixos/modules/services/x11/colord.nix
@@ -26,7 +26,7 @@ in {
 
     systemd.packages = [ pkgs.colord ];
 
-    environment.etc."tmpfiles.d/colord.conf".source = "${pkgs.colord}/lib/tmpfiles.d/colord.conf";
+    systemd.tmpfiles.packages = [ pkgs.colord ];
 
     users.users.colord = {
       isSystemUser = true;
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix
new file mode 100644
index 000000000000..a404143a03d4
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/cinnamon.nix
@@ -0,0 +1,205 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  cfg = config.services.xserver.desktopManager.cinnamon;
+  serviceCfg = config.services.cinnamon;
+
+  nixos-gsettings-overrides = pkgs.cinnamon.cinnamon-gsettings-overrides.override {
+    extraGSettingsOverridePackages = cfg.extraGSettingsOverridePackages;
+    extraGSettingsOverrides = cfg.extraGSettingsOverrides;
+  };
+
+in
+
+{
+  options = {
+    services.cinnamon = {
+      apps.enable = mkEnableOption "Cinnamon default applications";
+    };
+
+    services.xserver.desktopManager.cinnamon = {
+      enable = mkEnableOption "the cinnamon desktop manager";
+
+      sessionPath = mkOption {
+        default = [];
+        example = literalExample "[ pkgs.gnome3.gpaste ]";
+        description = ''
+          Additional list of packages to be added to the session search path.
+          Useful for GSettings-conditional autostart.
+
+          Note that this should be a last resort; patching the package is preferred (see GPaste).
+        '';
+      };
+
+      extraGSettingsOverrides = mkOption {
+        default = "";
+        type = types.lines;
+        description = "Additional gsettings overrides.";
+      };
+
+      extraGSettingsOverridePackages = mkOption {
+        default = [];
+        type = types.listOf types.path;
+        description = "List of packages for which gsettings are overridden.";
+      };
+    };
+
+    environment.cinnamon.excludePackages = mkOption {
+      default = [];
+      example = literalExample "[ pkgs.cinnamon.blueberry ]";
+      type = types.listOf types.package;
+      description = "Which packages cinnamon should exclude from the default environment";
+    };
+
+  };
+
+  config = mkMerge [
+    (mkIf (cfg.enable && config.services.xserver.displayManager.lightdm.enable && config.services.xserver.displayManager.lightdm.greeters.gtk.enable) {
+      services.xserver.displayManager.lightdm.greeters.gtk.extraConfig = mkDefault (builtins.readFile "${pkgs.cinnamon.mint-artwork}/etc/lightdm/lightdm-gtk-greeter.conf.d/99_linuxmint.conf");
+      })
+
+    (mkIf cfg.enable {
+      services.xserver.displayManager.sessionPackages = [ pkgs.cinnamon.cinnamon-common ];
+
+      services.xserver.displayManager.sessionCommands = ''
+        if test "$XDG_CURRENT_DESKTOP" = "Cinnamon"; then
+            true
+            ${concatMapStrings (p: ''
+              if [ -d "${p}/share/gsettings-schemas/${p.name}" ]; then
+                export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}${p}/share/gsettings-schemas/${p.name}
+              fi
+
+              if [ -d "${p}/lib/girepository-1.0" ]; then
+                export GI_TYPELIB_PATH=$GI_TYPELIB_PATH''${GI_TYPELIB_PATH:+:}${p}/lib/girepository-1.0
+                export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${p}/lib
+              fi
+            '') cfg.sessionPath}
+        fi
+      '';
+
+      # Default services
+      hardware.bluetooth.enable = mkDefault true;
+      hardware.pulseaudio.enable = mkDefault true;
+      security.polkit.enable = true;
+      services.accounts-daemon.enable = true;
+      services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true));
+      services.dbus.packages = with pkgs.cinnamon; [
+        cinnamon-common
+        cinnamon-screensaver
+        nemo
+        xapps
+      ];
+      services.cinnamon.apps.enable = mkDefault true;
+      services.gnome3.glib-networking.enable = true;
+      services.gnome3.gnome-keyring.enable = true;
+      services.gvfs.enable = true;
+      services.udisks2.enable = true;
+      services.upower.enable = mkDefault config.powerManagement.enable;
+      services.xserver.libinput.enable = mkDefault true;
+      services.xserver.updateDbusEnvironment = true;
+      networking.networkmanager.enable = mkDefault true;
+
+      # Enable colord server
+      services.colord.enable = true;
+
+      # Enable dconf
+      programs.dconf.enable = true;
+
+      # Enable org.a11y.Bus
+      services.gnome3.at-spi2-core.enable = true;
+
+      # Fix lockscreen
+      security.pam.services = {
+        cinnamon-screensaver = {};
+      };
+
+      environment.systemPackages = with pkgs.cinnamon // pkgs; [
+        desktop-file-utils
+        nixos-artwork.wallpapers.simple-dark-gray
+        onboard
+        sound-theme-freedesktop
+
+        # common-files
+        cinnamon-common
+        cinnamon-session
+        cinnamon-desktop
+        cinnamon-menus
+
+        # utils needed by some scripts
+        killall
+
+        # session requirements
+        cinnamon-screensaver
+        # cinnamon-killer-daemon: provided by cinnamon-common
+        gnome3.networkmanagerapplet # session requirement - also nm-applet not needed
+
+        # packages
+        nemo
+        cinnamon-control-center
+        cinnamon-settings-daemon
+        gnome3.libgnomekbd
+        orca
+
+        # theme
+        gnome3.adwaita-icon-theme
+        hicolor-icon-theme
+        gnome3.gnome-themes-extra
+        gtk3.out
+        mint-artwork
+        mint-themes
+        mint-x-icons
+        mint-y-icons
+        vanilla-dmz
+
+        # other
+        glib # for gsettings
+        shared-mime-info # for update-mime-database
+        xdg-user-dirs
+      ];
+
+      # Override GSettings schemas
+      environment.sessionVariables.NIX_GSETTINGS_OVERRIDES_DIR = "${nixos-gsettings-overrides}/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas";
+
+      environment.pathsToLink = [
+        # FIXME: modules should link subdirs of `/share` rather than relying on this
+        "/share" # TODO: https://github.com/NixOS/nixpkgs/issues/47173
+      ];
+
+      # Shell integration for VTE terminals
+      programs.bash.vteIntegration = mkDefault true;
+      programs.zsh.vteIntegration = mkDefault true;
+
+      # Harmonize Qt5 applications under Pantheon
+      qt5.enable = true;
+      qt5.platformTheme = "gnome";
+      qt5.style = "adwaita";
+
+      # Default Fonts
+      fonts.fonts = with pkgs; [
+        source-code-pro # Default monospace font in 3.32
+        ubuntu_font_family # required for default theme
+      ];
+    })
+
+    (mkIf serviceCfg.apps.enable {
+      programs.geary.enable = mkDefault true;
+      programs.gnome-disks.enable = mkDefault true;
+      programs.gnome-terminal.enable = mkDefault true;
+      programs.evince.enable = mkDefault true;
+      programs.file-roller.enable = mkDefault true;
+
+      environment.systemPackages = (with pkgs // pkgs.gnome3 // pkgs.cinnamon; pkgs.gnome3.removePackagesByName [
+        # cinnamon team apps
+        blueberry
+        warpinator
+
+        # external apps shipped with linux-mint
+        hexchat
+        gnome-calculator
+      ] config.environment.cinnamon.excludePackages);
+    })
+  ];
+}
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix
index 5d3a84d71399..f5559eb53541 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/default.nix
@@ -21,6 +21,7 @@ in
     ./none.nix ./xterm.nix ./xfce.nix ./plasma5.nix ./lumina.nix
     ./lxqt.nix ./enlightenment.nix ./gnome3.nix ./kodi.nix
     ./mate.nix ./pantheon.nix ./surf-display.nix ./cde.nix
+    ./cinnamon.nix
   ];
 
   options = {
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix
index 6dabca6bf096..e67e216f90d9 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/pantheon.nix
@@ -240,6 +240,8 @@ in
       # Otherwise you can't store NetworkManager Secrets with
       # "Store the password only for this user"
       programs.nm-applet.enable = true;
+      # Pantheon has its own network indicator
+      programs.nm-applet.indicator = false;
 
       # Shell integration for VTE terminals
       programs.bash.vteIntegration = mkDefault true;
diff --git a/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix
index 6d48b899d231..149f6cbb7628 100644
--- a/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixpkgs/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -7,7 +7,9 @@ let
   xcfg = config.services.xserver;
   cfg = xcfg.desktopManager.plasma5;
 
-  inherit (pkgs) kdeApplications plasma5 libsForQt5 qt5;
+  inherit (pkgs) kdeApplications kdeFrameworks plasma5;
+  libsForQt5 = pkgs.libsForQt514;
+  qt5 = pkgs.qt514;
   inherit (pkgs) writeText;
 
   pulseaudio = config.hardware.pulseaudio;
@@ -83,7 +85,7 @@ let
     # recognize that software that has been removed.
     rm -fv $HOME/.cache/ksycoca*
 
-    ${pkgs.libsForQt5.kservice}/bin/kbuildsycoca5
+    ${libsForQt5.kservice}/bin/kbuildsycoca5
   '';
 
   set_XDG_CONFIG_HOME = ''
@@ -203,7 +205,9 @@ in
         KERNEL=="i2c-[0-9]*", TAG+="uaccess"
       '';
 
-      environment.systemPackages = with pkgs; with qt5; with libsForQt5; with plasma5; with kdeApplications;
+      environment.systemPackages =
+        with qt5; with libsForQt5;
+        with plasma5; with kdeApplications; with kdeFrameworks;
         [
           frameworkintegration
           kactivities
@@ -293,7 +297,7 @@ in
 
           qtvirtualkeyboard
 
-          xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
+          pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
         ]
 
         # Phonon audio backend
@@ -301,13 +305,13 @@ in
         ++ lib.optional (cfg.phononBackend == "vlc") libsForQt5.phonon-backend-vlc
 
         # Optional hardware support features
-        ++ lib.optionals config.hardware.bluetooth.enable [ bluedevil bluez-qt openobex obexftp ]
+        ++ lib.optionals config.hardware.bluetooth.enable [ bluedevil bluez-qt pkgs.openobex pkgs.obexftp ]
         ++ lib.optional config.networking.networkmanager.enable plasma-nm
         ++ lib.optional config.hardware.pulseaudio.enable plasma-pa
         ++ lib.optional config.powerManagement.enable powerdevil
-        ++ lib.optional config.services.colord.enable colord-kde
+        ++ lib.optional config.services.colord.enable pkgs.colord-kde
         ++ lib.optionals config.services.samba.enable [ kdenetwork-filesharing pkgs.samba ]
-        ++ lib.optional config.services.xserver.wacom.enable wacomtablet;
+        ++ lib.optional config.services.xserver.wacom.enable pkgs.wacomtablet;
 
       environment.pathsToLink = [
         # FIXME: modules should link subdirs of `/share` rather than relying on this
@@ -321,7 +325,7 @@ in
 
       fonts.fonts = with pkgs; [ noto-fonts hack-font ];
       fonts.fontconfig.defaultFonts = {
-        monospace = [ "Hack" "Noto Mono" ];
+        monospace = [ "Hack" "Noto Sans Mono" ];
         sansSerif = [ "Noto Sans" ];
         serif = [ "Noto Serif" ];
       };
diff --git a/nixpkgs/nixos/modules/services/x11/display-managers/default.nix b/nixpkgs/nixos/modules/services/x11/display-managers/default.nix
index aa6a5ec42be8..08ce8edd6612 100644
--- a/nixpkgs/nixos/modules/services/x11/display-managers/default.nix
+++ b/nixpkgs/nixos/modules/services/x11/display-managers/default.nix
@@ -55,13 +55,6 @@ let
         exec &> >(tee ~/.xsession-errors)
       ''}
 
-      # Tell systemd about our $DISPLAY and $XAUTHORITY.
-      # This is needed by the ssh-agent unit.
-      #
-      # Also tell systemd about the dbus session bus address.
-      # This is required by user units using the session bus.
-      /run/current-system/systemd/bin/systemctl --user import-environment DISPLAY XAUTHORITY DBUS_SESSION_BUS_ADDRESS
-
       # Load X defaults. This should probably be safe on wayland too.
       ${xorg.xrdb}/bin/xrdb -merge ${xresourcesXft}
       if test -e ~/.Xresources; then
@@ -70,6 +63,12 @@ let
           ${xorg.xrdb}/bin/xrdb -merge ~/.Xdefaults
       fi
 
+      # Import environment variables into the systemd user environment.
+      ${optionalString (cfg.displayManager.importedVariables != []) (
+        "/run/current-system/systemd/bin/systemctl --user import-environment "
+          + toString (unique cfg.displayManager.importedVariables)
+      )}
+
       # Speed up application start by 50-150ms according to
       # http://kdemonkey.blogspot.nl/2008/04/magic-trick.html
       rm -rf "$HOME/.compose-cache"
@@ -289,6 +288,14 @@ in
         '';
       };
 
+      importedVariables = mkOption {
+        type = types.listOf (types.strMatching "[a-zA-Z_][a-zA-Z0-9_]*");
+        visible = false;
+        description = ''
+          Environment variables to import into the systemd user environment.
+        '';
+      };
+
       job = {
 
         preStart = mkOption {
@@ -332,12 +339,45 @@ in
 
       };
 
+      # Configuration for automatic login. Common for all DM.
+      autoLogin = mkOption {
+        type = types.submodule {
+          options = {
+            enable = mkOption {
+              type = types.bool;
+              default = cfg.displayManager.autoLogin.user != null;
+              description = ''
+                Automatically log in as <option>autoLogin.user</option>.
+              '';
+            };
+
+            user = mkOption {
+              type = types.nullOr types.str;
+              default = null;
+              description = ''
+                User to be used for the automatic login.
+              '';
+            };
+          };
+        };
+
+        default = {};
+        description = ''
+          Auto login configuration attrset.
+        '';
+      };
+
     };
 
   };
 
   config = {
     assertions = [
+      { assertion = cfg.displayManager.autoLogin.enable -> cfg.displayManager.autoLogin.user != null;
+        message = ''
+          services.xserver.displayManager.autoLogin.enable requires services.xserver.displayManager.autoLogin.user to be set
+        '';
+      }
       {
         assertion = cfg.desktopManager.default != null || cfg.windowManager.default != null -> cfg.displayManager.defaultSession == defaultSessionFromLegacyOptions;
         message = "You cannot use both services.xserver.displayManager.defaultSession option and legacy options (services.xserver.desktopManager.default and services.xserver.windowManager.default).";
@@ -360,6 +400,16 @@ in
 
     services.xserver.displayManager.xserverBin = "${xorg.xorgserver.out}/bin/X";
 
+    services.xserver.displayManager.importedVariables = [
+      # This is required by user units using the session bus.
+      "DBUS_SESSION_BUS_ADDRESS"
+      # These are needed by the ssh-agent unit.
+      "DISPLAY"
+      "XAUTHORITY"
+      # This is required to specify session within user units (e.g. loginctl lock-session).
+      "XDG_SESSION_ID"
+    ];
+
     systemd.user.targets.graphical-session = {
       unitConfig = {
         RefuseManualStart = false;
diff --git a/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix b/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix
index 622ea62f3a91..eae70a57c781 100644
--- a/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix
+++ b/nixpkgs/nixos/modules/services/x11/display-managers/gdm.nix
@@ -37,6 +37,22 @@ let
 in
 
 {
+  imports = [
+    (mkRenamedOptionModule [ "services" "xserver" "displayManager" "gdm" "autoLogin" "enable" ] [
+      "services"
+      "xserver"
+      "displayManager"
+      "autoLogin"
+      "enable"
+    ])
+    (mkRenamedOptionModule [ "services" "xserver" "displayManager" "gdm" "autoLogin" "user" ] [
+      "services"
+      "xserver"
+      "displayManager"
+      "autoLogin"
+      "user"
+    ])
+  ];
 
   meta = {
     maintainers = teams.gnome.members;
@@ -48,48 +64,17 @@ in
 
     services.xserver.displayManager.gdm = {
 
-      enable = mkEnableOption ''
-        GDM, the GNOME Display Manager
-      '';
+      enable = mkEnableOption "GDM, the GNOME Display Manager";
 
-      debug = mkEnableOption ''
-        debugging messages in GDM
-      '';
+      debug = mkEnableOption "debugging messages in GDM";
 
-      autoLogin = mkOption {
-        default = {};
+      # Auto login options specific to GDM
+      autoLogin.delay = mkOption {
+        type = types.int;
+        default = 0;
         description = ''
-          Auto login configuration attrset.
+          Seconds of inactivity after which the autologin will be performed.
         '';
-
-        type = types.submodule {
-          options = {
-            enable = mkOption {
-              type = types.bool;
-              default = false;
-              description = ''
-                Automatically log in as the sepecified <option>autoLogin.user</option>.
-              '';
-            };
-
-            user = mkOption {
-              type = types.nullOr types.str;
-              default = null;
-              description = ''
-                User to be used for the autologin.
-              '';
-            };
-
-            delay = mkOption {
-              type = types.int;
-              default = 0;
-              description = ''
-                Seconds of inactivity after which the autologin will be performed.
-              '';
-            };
-
-          };
-        };
       };
 
       wayland = mkOption {
@@ -128,12 +113,6 @@ in
 
   config = mkIf cfg.gdm.enable {
 
-    assertions = [
-      { assertion = cfg.gdm.autoLogin.enable -> cfg.gdm.autoLogin.user != null;
-        message = "GDM auto-login requires services.xserver.displayManager.gdm.autoLogin.user to be set";
-      }
-    ];
-
     services.xserver.displayManager.lightdm.enable = false;
 
     users.users.gdm =
@@ -217,7 +196,6 @@ in
       KillMode = "mixed";
       IgnoreSIGPIPE = "no";
       BusName = "org.gnome.DisplayManager";
-      StandardOutput = "syslog";
       StandardError = "inherit";
       ExecReload = "${pkgs.coreutils}/bin/kill -SIGHUP $MAINPID";
       KeyringMode = "shared";
@@ -287,14 +265,14 @@ in
     environment.etc."gdm/custom.conf".text = ''
       [daemon]
       WaylandEnable=${if cfg.gdm.wayland then "true" else "false"}
-      ${optionalString cfg.gdm.autoLogin.enable (
+      ${optionalString cfg.autoLogin.enable (
         if cfg.gdm.autoLogin.delay > 0 then ''
           TimedLoginEnable=true
-          TimedLogin=${cfg.gdm.autoLogin.user}
+          TimedLogin=${cfg.autoLogin.user}
           TimedLoginDelay=${toString cfg.gdm.autoLogin.delay}
         '' else ''
           AutomaticLoginEnable=true
-          AutomaticLogin=${cfg.gdm.autoLogin.user}
+          AutomaticLogin=${cfg.autoLogin.user}
         '')
       }
 
diff --git a/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix b/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix
index 087c6b9c38ac..9bc9e2bf6162 100644
--- a/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix
+++ b/nixpkgs/nixos/modules/services/x11/display-managers/lightdm-greeters/pantheon.nix
@@ -43,7 +43,7 @@ in
     services.xserver.displayManager.lightdm.extraSeatDefaults = "greeter-show-manual-login=true";
 
     environment.etc."lightdm/io.elementary.greeter.conf".source = "${pkgs.pantheon.elementary-greeter}/etc/lightdm/io.elementary.greeter.conf";
-    environment.etc."wingpanel.d/io.elementary.greeter.whitelist".source = "${pkgs.pantheon.elementary-default-settings}/etc/wingpanel.d/io.elementary.greeter.whitelist";
+    environment.etc."wingpanel.d/io.elementary.greeter.allowed".source = "${pkgs.pantheon.elementary-default-settings}/etc/wingpanel.d/io.elementary.greeter.allowed";
 
   };
 }
diff --git a/nixpkgs/nixos/modules/services/x11/display-managers/lightdm.nix b/nixpkgs/nixos/modules/services/x11/display-managers/lightdm.nix
index 678cade44427..143785db0b4f 100644
--- a/nixpkgs/nixos/modules/services/x11/display-managers/lightdm.nix
+++ b/nixpkgs/nixos/modules/services/x11/display-managers/lightdm.nix
@@ -53,8 +53,8 @@ let
       ${optionalString cfg.greeter.enable ''
         greeter-session = ${cfg.greeter.name}
       ''}
-      ${optionalString cfg.autoLogin.enable ''
-        autologin-user = ${cfg.autoLogin.user}
+      ${optionalString dmcfg.autoLogin.enable ''
+        autologin-user = ${dmcfg.autoLogin.user}
         autologin-user-timeout = ${toString cfg.autoLogin.timeout}
         autologin-session = ${sessionData.autologinSession}
       ''}
@@ -82,6 +82,20 @@ in
     ./lightdm-greeters/enso-os.nix
     ./lightdm-greeters/pantheon.nix
     ./lightdm-greeters/tiny.nix
+    (mkRenamedOptionModule [ "services" "xserver" "displayManager" "lightdm" "autoLogin" "enable" ] [
+      "services"
+      "xserver"
+      "displayManager"
+      "autoLogin"
+      "enable"
+    ])
+    (mkRenamedOptionModule [ "services" "xserver" "displayManager" "lightdm" "autoLogin" "user" ] [
+     "services"
+     "xserver"
+     "displayManager"
+     "autoLogin"
+     "user"
+    ])
   ];
 
   options = {
@@ -149,39 +163,13 @@ in
         description = "Extra lines to append to SeatDefaults section.";
       };
 
-      autoLogin = mkOption {
-        default = {};
+      # Configuration for automatic login specific to LightDM
+      autoLogin.timeout = mkOption {
+        type = types.int;
+        default = 0;
         description = ''
-          Configuration for automatic login.
+          Show the greeter for this many seconds before automatic login occurs.
         '';
-
-        type = types.submodule {
-          options = {
-            enable = mkOption {
-              type = types.bool;
-              default = false;
-              description = ''
-                Automatically log in as the specified <option>autoLogin.user</option>.
-              '';
-            };
-
-            user = mkOption {
-              type = types.nullOr types.str;
-              default = null;
-              description = ''
-                User to be used for the automatic login.
-              '';
-            };
-
-            timeout = mkOption {
-              type = types.int;
-              default = 0;
-              description = ''
-                Show the greeter for this many seconds before automatic login occurs.
-              '';
-            };
-          };
-        };
       };
 
     };
@@ -195,17 +183,12 @@ in
           LightDM requires services.xserver.enable to be true
         '';
       }
-      { assertion = cfg.autoLogin.enable -> cfg.autoLogin.user != null;
-        message = ''
-          LightDM auto-login requires services.xserver.displayManager.lightdm.autoLogin.user to be set
-        '';
-      }
-      { assertion = cfg.autoLogin.enable -> sessionData.autologinSession != null;
+      { assertion = dmcfg.autoLogin.enable -> sessionData.autologinSession != null;
         message = ''
           LightDM auto-login requires that services.xserver.displayManager.defaultSession is set.
         '';
       }
-      { assertion = !cfg.greeter.enable -> (cfg.autoLogin.enable && cfg.autoLogin.timeout == 0);
+      { assertion = !cfg.greeter.enable -> (dmcfg.autoLogin.enable && cfg.autoLogin.timeout == 0);
         message = ''
           LightDM can only run without greeter if automatic login is enabled and the timeout for it
           is set to zero.
@@ -218,7 +201,7 @@ in
 
     # Set default session in session chooser to a specified values – basically ignore session history.
     # Auto-login is already covered by a config value.
-    services.xserver.displayManager.job.preStart = optionalString (!cfg.autoLogin.enable && dmcfg.defaultSession != null) ''
+    services.xserver.displayManager.job.preStart = optionalString (!dmcfg.autoLogin.enable && dmcfg.defaultSession != null) ''
       ${setSessionScript}/bin/set-session ${dmcfg.defaultSession}
     '';
 
@@ -270,7 +253,6 @@ in
       KeyringMode = "shared";
       KillMode = "mixed";
       StandardError = "inherit";
-      StandardOutput = "syslog";
     };
 
     environment.etc."lightdm/lightdm.conf".source = lightdmConf;
diff --git a/nixpkgs/nixos/modules/services/x11/display-managers/sddm.nix b/nixpkgs/nixos/modules/services/x11/display-managers/sddm.nix
index 2f42271da872..e63bb2e44539 100644
--- a/nixpkgs/nixos/modules/services/x11/display-managers/sddm.nix
+++ b/nixpkgs/nixos/modules/services/x11/display-managers/sddm.nix
@@ -61,9 +61,9 @@ let
     EnableHidpi=${if cfg.enableHidpi then "true" else "false"}
     SessionDir=${dmcfg.sessionData.desktops}/share/wayland-sessions
 
-    ${optionalString cfg.autoLogin.enable ''
+    ${optionalString dmcfg.autoLogin.enable ''
     [Autologin]
-    User=${cfg.autoLogin.user}
+    User=${dmcfg.autoLogin.user}
     Session=${autoLoginSessionName}.desktop
     Relogin=${boolToString cfg.autoLogin.relogin}
     ''}
@@ -78,6 +78,20 @@ in
   imports = [
     (mkRemovedOptionModule [ "services" "xserver" "displayManager" "sddm" "themes" ]
       "Set the option `services.xserver.displayManager.sddm.package' instead.")
+    (mkRenamedOptionModule [ "services" "xserver" "displayManager" "sddm" "autoLogin" "enable" ] [
+      "services"
+      "xserver"
+      "displayManager"
+      "autoLogin"
+      "enable"
+    ])
+    (mkRenamedOptionModule [ "services" "xserver" "displayManager" "sddm" "autoLogin" "user" ] [
+      "services"
+      "xserver"
+      "displayManager"
+      "autoLogin"
+      "user"
+    ])
   ];
 
   options = {
@@ -153,40 +167,14 @@ in
         '';
       };
 
-      autoLogin = mkOption {
-        default = {};
+      # Configuration for automatic login specific to SDDM
+      autoLogin.relogin = mkOption {
+        type = types.bool;
+        default = false;
         description = ''
-          Configuration for automatic login.
+          If true automatic login will kick in again on session exit (logout), otherwise it
+          will only log in automatically when the display-manager is started.
         '';
-
-        type = types.submodule {
-          options = {
-            enable = mkOption {
-              type = types.bool;
-              default = false;
-              description = ''
-                Automatically log in as <option>autoLogin.user</option>.
-              '';
-            };
-
-            user = mkOption {
-              type = types.nullOr types.str;
-              default = null;
-              description = ''
-                User to be used for the automatic login.
-              '';
-            };
-
-            relogin = mkOption {
-              type = types.bool;
-              default = false;
-              description = ''
-                If true automatic login will kick in again on session exit (logout), otherwise it
-                will only log in automatically when the display-manager is started.
-              '';
-            };
-          };
-        };
       };
 
     };
@@ -201,12 +189,7 @@ in
           SDDM requires services.xserver.enable to be true
         '';
       }
-      { assertion = cfg.autoLogin.enable -> cfg.autoLogin.user != null;
-        message = ''
-          SDDM auto-login requires services.xserver.displayManager.sddm.autoLogin.user to be set
-        '';
-      }
-      { assertion = cfg.autoLogin.enable -> autoLoginSessionName != null;
+      { assertion = dmcfg.autoLogin.enable -> autoLoginSessionName != null;
         message = ''
           SDDM auto-login requires that services.xserver.displayManager.defaultSession is set.
         '';
diff --git a/nixpkgs/nixos/modules/services/x11/imwheel.nix b/nixpkgs/nixos/modules/services/x11/imwheel.nix
index 3923df498e79..51f72dadbd43 100644
--- a/nixpkgs/nixos/modules/services/x11/imwheel.nix
+++ b/nixpkgs/nixos/modules/services/x11/imwheel.nix
@@ -61,7 +61,8 @@ in
             "--kill"
           ] ++ cfg.extraOptions);
           ExecStop = "${pkgs.procps}/bin/pkill imwheel";
-          Restart = "on-failure";
+          RestartSec = 3;
+          Restart = "always";
         };
       };
     };
diff --git a/nixpkgs/nixos/modules/services/x11/picom.nix b/nixpkgs/nixos/modules/services/x11/picom.nix
index 1289edd2904a..977d0fea2192 100644
--- a/nixpkgs/nixos/modules/services/x11/picom.nix
+++ b/nixpkgs/nixos/modules/services/x11/picom.nix
@@ -57,7 +57,15 @@ in {
       type = types.bool;
       default = false;
       description = ''
-        Whether of not to enable Picom as the X.org composite manager.
+        Whether or not to enable Picom as the X.org composite manager.
+      '';
+    };
+
+    experimentalBackends = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Whether to use the unstable new reimplementation of the backends.
       '';
     };
 
@@ -302,7 +310,8 @@ in {
       };
 
       serviceConfig = {
-        ExecStart = "${pkgs.picom}/bin/picom --config ${configFile}";
+        ExecStart = "${pkgs.picom}/bin/picom --config ${configFile}"
+          + (optionalString cfg.experimentalBackends " --experimental-backends");
         RestartSec = 3;
         Restart = "always";
       };
diff --git a/nixpkgs/nixos/modules/services/x11/urserver.nix b/nixpkgs/nixos/modules/services/x11/urserver.nix
new file mode 100644
index 000000000000..0beb62eb766a
--- /dev/null
+++ b/nixpkgs/nixos/modules/services/x11/urserver.nix
@@ -0,0 +1,38 @@
+# urserver service
+{ config, lib, pkgs, ... }:
+
+let
+  cfg = config.services.urserver;
+in {
+
+  options.services.urserver.enable = lib.mkEnableOption "urserver";
+
+  config = lib.mkIf cfg.enable {
+
+    networking.firewall = {
+      allowedTCPPorts = [ 9510 9512 ];
+      allowedUDPPorts = [ 9511 9512 ];
+    };
+
+    systemd.user.services.urserver =  {
+      description = ''
+        Server for Unified Remote: The one-and-only remote for your computer.
+      '';
+      wantedBy = [ "graphical-session.target" ];
+      partOf = [ "graphical-session.target" ];
+      after = [ "network.target" ];
+      serviceConfig = {
+        Type = "forking";
+        ExecStart = ''
+          ${pkgs.urserver}/bin/urserver --daemon
+        '';
+        ExecStop = ''
+          ${pkgs.procps}/bin/pkill urserver
+        '';
+        RestartSec = 3;
+        Restart = "on-failure";
+      };
+    };
+  };
+
+}
diff --git a/nixpkgs/nixos/modules/services/x11/window-managers/qtile.nix b/nixpkgs/nixos/modules/services/x11/window-managers/qtile.nix
index ad3b65150b01..cadc316bbc4f 100644
--- a/nixpkgs/nixos/modules/services/x11/window-managers/qtile.nix
+++ b/nixpkgs/nixos/modules/services/x11/window-managers/qtile.nix
@@ -19,7 +19,7 @@ in
         waitPID=$!
       '';
     }];
-    
+
     environment.systemPackages = [ pkgs.qtile ];
   };
 }
diff --git a/nixpkgs/nixos/modules/services/x11/window-managers/xmonad.nix b/nixpkgs/nixos/modules/services/x11/window-managers/xmonad.nix
index 30c59b88f82f..dba25da8260c 100644
--- a/nixpkgs/nixos/modules/services/x11/window-managers/xmonad.nix
+++ b/nixpkgs/nixos/modules/services/x11/window-managers/xmonad.nix
@@ -16,6 +16,7 @@ let
                 cfg.extraPackages cfg.haskellPackages ++
                 optionals cfg.enableContribAndExtras
                 (with cfg.haskellPackages; [ xmonad-contrib xmonad-extras ]);
+    inherit (cfg) ghcArgs;
   } cfg.config;
 
 in
@@ -76,18 +77,35 @@ in
                  }
         '';
       };
+
+      xmonadCliArgs = mkOption {
+        default = [];
+        type = with lib.types; listOf str;
+        description = ''
+          Command line arguments passed to the xmonad binary.
+        '';
+      };
+
+      ghcArgs = mkOption {
+        default = [];
+        type = with lib.types; listOf str;
+        description = ''
+          Command line arguments passed to the compiler (ghc)
+          invocation when xmonad.config is set.
+        '';
+      };
+
     };
   };
   config = mkIf cfg.enable {
     services.xserver.windowManager = {
       session = [{
         name = "xmonad";
-        start = if (cfg.config != null) then ''
-          ${xmonadBin}
-          waitPID=$!
-        '' else ''
-          systemd-cat -t xmonad ${xmonad}/bin/xmonad &
-          waitPID=$!
+        start = let
+          xmonadCommand = if (cfg.config != null) then xmonadBin else "${xmonad}/bin/xmonad";
+        in ''
+           systemd-cat -t xmonad -- ${xmonadCommand} ${lib.escapeShellArgs cfg.xmonadCliArgs} &
+           waitPID=$!
         '';
       }];
     };
diff --git a/nixpkgs/nixos/modules/services/x11/xserver.nix b/nixpkgs/nixos/modules/services/x11/xserver.nix
index 400173745d3f..0552095ba955 100644
--- a/nixpkgs/nixos/modules/services/x11/xserver.nix
+++ b/nixpkgs/nixos/modules/services/x11/xserver.nix
@@ -113,14 +113,14 @@ let
   in concatMapStrings (getAttr "value") monitors;
 
   configFile = pkgs.runCommand "xserver.conf"
-    { xfs = optionalString (cfg.useXFS != false)
-        ''FontPath "${toString cfg.useXFS}"'';
+    { fontpath = optionalString (cfg.fontPath != null)
+        ''FontPath "${cfg.fontPath}"'';
       inherit (cfg) config;
       preferLocalBuild = true;
     }
       ''
         echo 'Section "Files"' >> $out
-        echo $xfs >> $out
+        echo $fontpath >> $out
 
         for i in ${toString fontsForXServer}; do
           if test "''${i:0:''${#NIX_STORE}}" == "$NIX_STORE"; then
@@ -151,6 +151,8 @@ in
       ./desktop-managers/default.nix
       (mkRemovedOptionModule [ "services" "xserver" "startGnuPGAgent" ]
         "See the 16.09 release notes for more information.")
+      (mkRemovedOptionModule ["services" "xserver" "useXFS" ]
+        "Use services.xserver.fontPath instead of useXFS")
     ];
 
 
@@ -481,11 +483,15 @@ in
         description = "Default colour depth.";
       };
 
-      useXFS = mkOption {
-        # FIXME: what's the type of this option?
-        default = false;
+      fontPath = mkOption {
+        type = types.nullOr types.str;
+        default = null;
         example = "unix/:7100";
-        description = "Determines how to connect to the X Font Server.";
+        description = ''
+          Set the X server FontPath. Defaults to null, which
+          means the compiled in defaults will be used. See
+          man xorg.conf for details.
+        '';
       };
 
       tty = mkOption {
diff --git a/nixpkgs/nixos/modules/system/activation/top-level.nix b/nixpkgs/nixos/modules/system/activation/top-level.nix
index f6739977fa4f..2724d9f9cb6f 100644
--- a/nixpkgs/nixos/modules/system/activation/top-level.nix
+++ b/nixpkgs/nixos/modules/system/activation/top-level.nix
@@ -92,9 +92,7 @@ let
   # `switch-to-configuration' that activates the configuration and
   # makes it bootable.
   baseSystem = pkgs.stdenvNoCC.mkDerivation {
-    name = let hn = config.networking.hostName;
-               nn = if (hn != "") then hn else "unnamed";
-        in "nixos-system-${nn}-${config.system.nixos.label}";
+    name = "nixos-system-${config.system.name}-${config.system.nixos.label}";
     preferLocalBuild = true;
     allowSubstitutes = false;
     buildCommand = systemBuilder;
@@ -161,9 +159,9 @@ in
         To switch to a specialised configuration
         (e.g. <literal>fewJobsManyCores</literal>) at runtime, run:
 
-        <programlisting>
-        # sudo /run/current-system/specialisation/fewJobsManyCores/bin/switch-to-configuration test
-        </programlisting>
+        <screen>
+        <prompt># </prompt>sudo /run/current-system/specialisation/fewJobsManyCores/bin/switch-to-configuration test
+        </screen>
       '';
       type = types.attrsOf (types.submodule (
         { ... }: {
@@ -265,6 +263,21 @@ in
       '';
     };
 
+    system.name = mkOption {
+      type = types.str;
+      default =
+        if config.networking.hostName == ""
+        then "unnamed"
+        else config.networking.hostName;
+      defaultText = '''networking.hostName' if non empty else "unnamed"'';
+      description = ''
+        The name of the system used in the <option>system.build.toplevel</option> derivation.
+        </para><para>
+        That derivation has the following name:
+        <literal>"nixos-system-''${config.system.name}-''${config.system.nixos.label}"</literal>
+      '';
+    };
+
   };
 
 
diff --git a/nixpkgs/nixos/modules/system/boot/emergency-mode.nix b/nixpkgs/nixos/modules/system/boot/emergency-mode.nix
index 9cdab8416192..ec697bcee268 100644
--- a/nixpkgs/nixos/modules/system/boot/emergency-mode.nix
+++ b/nixpkgs/nixos/modules/system/boot/emergency-mode.nix
@@ -34,4 +34,4 @@ with lib;
 
   };
 
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/nixos/modules/system/boot/initrd-network.nix b/nixpkgs/nixos/modules/system/boot/initrd-network.nix
index 0ab6e626b340..ec794d6eb014 100644
--- a/nixpkgs/nixos/modules/system/boot/initrd-network.nix
+++ b/nixpkgs/nixos/modules/system/boot/initrd-network.nix
@@ -139,7 +139,7 @@ in
     boot.initrd.postMountCommands = mkIf cfg.flushBeforeStage2 ''
       for iface in $ifaces; do
         ip address flush "$iface"
-        ip link down "$iface"
+        ip link set "$iface" down
       done
     '';
 
diff --git a/nixpkgs/nixos/modules/system/boot/initrd-openvpn.nix b/nixpkgs/nixos/modules/system/boot/initrd-openvpn.nix
new file mode 100644
index 000000000000..e59bc7b6678f
--- /dev/null
+++ b/nixpkgs/nixos/modules/system/boot/initrd-openvpn.nix
@@ -0,0 +1,81 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+
+  cfg = config.boot.initrd.network.openvpn;
+
+in
+
+{
+
+  options = {
+
+    boot.initrd.network.openvpn.enable = mkOption {
+      type = types.bool;
+      default = false;
+      description = ''
+        Starts an OpenVPN client during initrd boot. It can be used to e.g.
+        remotely accessing the SSH service controlled by
+        <option>boot.initrd.network.ssh</option> or other network services
+        included. Service is killed when stage-1 boot is finished.
+      '';
+    };
+
+    boot.initrd.network.openvpn.configuration = mkOption {
+      type = types.path; # Same type as boot.initrd.secrets
+      description = ''
+        The configuration file for OpenVPN.
+
+        <warning>
+          <para>
+            Unless your bootloader supports initrd secrets, this configuration
+            is stored insecurely in the global Nix store.
+          </para>
+        </warning>
+      '';
+      example = "./configuration.ovpn";
+    };
+
+  };
+
+  config = mkIf (config.boot.initrd.network.enable && cfg.enable) {
+    assertions = [
+      {
+        assertion = cfg.configuration != null;
+        message = "You should specify a configuration for initrd OpenVPN";
+      }
+    ];
+
+    # Add kernel modules needed for OpenVPN
+    boot.initrd.kernelModules = [ "tun" "tap" ];
+
+    # Add openvpn and ip binaries to the initrd
+    # The shared libraries are required for DNS resolution
+    boot.initrd.extraUtilsCommands = ''
+      copy_bin_and_libs ${pkgs.openvpn}/bin/openvpn
+      copy_bin_and_libs ${pkgs.iproute}/bin/ip
+
+      cp -pv ${pkgs.glibc}/lib/libresolv.so.2 $out/lib
+      cp -pv ${pkgs.glibc}/lib/libnss_dns.so.2 $out/lib
+    '';
+
+    boot.initrd.secrets = {
+      "/etc/initrd.ovpn" = cfg.configuration;
+    };
+
+    # openvpn --version would exit with 1 instead of 0
+    boot.initrd.extraUtilsCommandsTest = ''
+      $out/bin/openvpn --show-gateway
+    '';
+
+    # Add `iproute /bin/ip` to the config, to ensure that openvpn
+    # is able to set the routes
+    boot.initrd.network.postCommands = ''
+      (cat /etc/initrd.ovpn; echo -e '\niproute /bin/ip') | \
+        openvpn /dev/stdin &
+    '';
+  };
+
+}
diff --git a/nixpkgs/nixos/modules/system/boot/kernel_config.nix b/nixpkgs/nixos/modules/system/boot/kernel_config.nix
index 85bd420e3044..783685c9dfe4 100644
--- a/nixpkgs/nixos/modules/system/boot/kernel_config.nix
+++ b/nixpkgs/nixos/modules/system/boot/kernel_config.nix
@@ -54,7 +54,7 @@ let
         type = types.bool // { merge = mergeFalseByDefault; };
         default = false;
         description = ''
-          Wether option should generate a failure when unused.
+          Whether option should generate a failure when unused.
           Upon merging values, mandatory wins over optional.
         '';
       };
diff --git a/nixpkgs/nixos/modules/system/boot/loader/generations-dir/generations-dir-builder.sh b/nixpkgs/nixos/modules/system/boot/loader/generations-dir/generations-dir-builder.sh
index e723b9eb7cb3..8ae23dc988c2 100644
--- a/nixpkgs/nixos/modules/system/boot/loader/generations-dir/generations-dir-builder.sh
+++ b/nixpkgs/nixos/modules/system/boot/loader/generations-dir/generations-dir-builder.sh
@@ -63,7 +63,7 @@ addEntry() {
         copyToKernelsDir $kernel; kernel=$result
         copyToKernelsDir $initrd; initrd=$result
     fi
-    
+
     mkdir -p $outdir
     ln -sf $(readlink -f $path) $outdir/system
     ln -sf $(readlink -f $path/init) $outdir/init
diff --git a/nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix b/nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix
index af39c7bb6841..bd508bbe8eaa 100644
--- a/nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix
+++ b/nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix
@@ -4,11 +4,15 @@ with lib;
 
 let
   blCfg = config.boot.loader;
+  dtCfg = config.hardware.deviceTree;
   cfg = blCfg.generic-extlinux-compatible;
 
   timeoutStr = if blCfg.timeout == null then "-1" else toString blCfg.timeout;
 
+  # The builder used to write during system activation
   builder = import ./extlinux-conf-builder.nix { inherit pkgs; };
+  # The builder exposed in populateCmd, which runs on the build architecture
+  populateBuilder = import ./extlinux-conf-builder.nix { pkgs = pkgs.buildPackages; };
 in
 {
   options = {
@@ -34,11 +38,28 @@ in
           Maximum number of configurations in the boot menu.
         '';
       };
+
+      populateCmd = mkOption {
+        type = types.str;
+        readOnly = true;
+        description = ''
+          Contains the builder command used to populate an image,
+          honoring all options except the <literal>-c &lt;path-to-default-configuration&gt;</literal>
+          argument.
+          Useful to have for sdImage.populateRootCommands
+        '';
+      };
+
     };
   };
 
-  config = mkIf cfg.enable {
-    system.build.installBootLoader = "${builder} -g ${toString cfg.configurationLimit} -t ${timeoutStr} -c";
-    system.boot.loader.id = "generic-extlinux-compatible";
-  };
+  config = let
+    builderArgs = "-g ${toString cfg.configurationLimit} -t ${timeoutStr}" + lib.optionalString (dtCfg.name != null) " -n ${dtCfg.name}";
+  in
+    mkIf cfg.enable {
+      system.build.installBootLoader = "${builder} ${builderArgs} -c";
+      system.boot.loader.id = "generic-extlinux-compatible";
+
+      boot.loader.generic-extlinux-compatible.populateCmd = "${populateBuilder} ${builderArgs}";
+    };
 }
diff --git a/nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh b/nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh
index 0092ee92b62f..854684b87fac 100644
--- a/nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh
+++ b/nixpkgs/nixos/modules/system/boot/loader/generic-extlinux-compatible/extlinux-conf-builder.sh
@@ -6,7 +6,7 @@ export PATH=/empty
 for i in @path@; do PATH=$PATH:$i/bin; done
 
 usage() {
-    echo "usage: $0 -t <timeout> -c <path-to-default-configuration> [-d <boot-dir>] [-g <num-generations>]" >&2
+    echo "usage: $0 -t <timeout> -c <path-to-default-configuration> [-d <boot-dir>] [-g <num-generations>] [-n <dtbName>]" >&2
     exit 1
 }
 
@@ -15,7 +15,7 @@ default=                # Default configuration
 target=/boot            # Target directory
 numGenerations=0        # Number of other generations to include in the menu
 
-while getopts "t:c:d:g:" opt; do
+while getopts "t:c:d:g:n:" opt; do
     case "$opt" in
         t) # U-Boot interprets '0' as infinite and negative as instant boot
             if [ "$OPTARG" -lt 0 ]; then
@@ -29,6 +29,7 @@ while getopts "t:c:d:g:" opt; do
         c) default="$OPTARG" ;;
         d) target="$OPTARG" ;;
         g) numGenerations="$OPTARG" ;;
+        n) dtbName="$OPTARG" ;;
         \?) usage ;;
     esac
 done
@@ -96,7 +97,17 @@ addEntry() {
     echo "  LINUX ../nixos/$(basename $kernel)"
     echo "  INITRD ../nixos/$(basename $initrd)"
     if [ -d "$dtbDir" ]; then
-        echo "  FDTDIR ../nixos/$(basename $dtbs)"
+        # if a dtbName was specified explicitly, use that, else use FDTDIR
+        if [ -n "$dtbName" ]; then
+            echo "  FDT ../nixos/$(basename $dtbs)/${dtbName}"
+        else
+            echo "  FDTDIR ../nixos/$(basename $dtbs)"
+        fi
+    else
+        if [ -n "$dtbName" ]; then
+            echo "Explicitly requested dtbName $dtbName, but there's no FDTDIR - bailing out." >&2
+            exit 1
+        fi
     fi
     echo "  APPEND systemConfig=$path init=$path/init $extraParams"
 }
diff --git a/nixpkgs/nixos/modules/system/boot/loader/grub/grub.nix b/nixpkgs/nixos/modules/system/boot/loader/grub/grub.nix
index 3975372e15ec..20e39628eabb 100644
--- a/nixpkgs/nixos/modules/system/boot/loader/grub/grub.nix
+++ b/nixpkgs/nixos/modules/system/boot/loader/grub/grub.nix
@@ -55,11 +55,14 @@ let
       storePath = config.boot.loader.grub.storePath;
       bootloaderId = if args.efiBootloaderId == null then "NixOS${efiSysMountPoint'}" else args.efiBootloaderId;
       timeout = if config.boot.loader.timeout == null then -1 else config.boot.loader.timeout;
+      users = if cfg.users == {} || cfg.version != 1 then cfg.users else throw "GRUB version 1 does not support user accounts.";
+      theme = f cfg.theme;
       inherit efiSysMountPoint;
       inherit (args) devices;
       inherit (efi) canTouchEfiVariables;
       inherit (cfg)
         version extraConfig extraPerEntryConfig extraEntries forceInstall useOSProber
+        extraGrubInstallArgs
         extraEntriesBeforeNixOS extraPrepareConfig configurationLimit copyKernels
         default fsIdentifier efiSupport efiInstallAsRemovable gfxmodeEfi gfxmodeBios gfxpayloadEfi gfxpayloadBios;
       path = with pkgs; makeBinPath (
@@ -137,6 +140,67 @@ in
         '';
       };
 
+      users = mkOption {
+        default = {};
+        example = {
+          root = { hashedPasswordFile = "/path/to/file"; };
+        };
+        description = ''
+          User accounts for GRUB. When specified, the GRUB command line and
+          all boot options except the default are password-protected.
+          All passwords and hashes provided will be stored in /boot/grub/grub.cfg,
+          and will be visible to any local user who can read this file. Additionally,
+          any passwords and hashes provided directly in a Nix configuration
+          (as opposed to external files) will be copied into the Nix store, and
+          will be visible to all local users.
+        '';
+        type = with types; attrsOf (submodule {
+          options = {
+            hashedPasswordFile = mkOption {
+              example = "/path/to/file";
+              default = null;
+              type = with types; uniq (nullOr str);
+              description = ''
+                Specifies the path to a file containing the password hash
+                for the account, generated with grub-mkpasswd-pbkdf2.
+                This hash will be stored in /boot/grub/grub.cfg, and will
+                be visible to any local user who can read this file.
+              '';
+            };
+            hashedPassword = mkOption {
+              example = "grub.pbkdf2.sha512.10000.674DFFDEF76E13EA...2CC972B102CF4355";
+              default = null;
+              type = with types; uniq (nullOr str);
+              description = ''
+                Specifies the password hash for the account,
+                generated with grub-mkpasswd-pbkdf2.
+                This hash will be copied to the Nix store, and will be visible to all local users.
+              '';
+            };
+            passwordFile = mkOption {
+              example = "/path/to/file";
+              default = null;
+              type = with types; uniq (nullOr str);
+              description = ''
+                Specifies the path to a file containing the
+                clear text password for the account.
+                This password will be stored in /boot/grub/grub.cfg, and will
+                be visible to any local user who can read this file.
+              '';
+            };
+            password = mkOption {
+              example = "Pa$$w0rd!";
+              default = null;
+              type = with types; uniq (nullOr str);
+              description = ''
+                Specifies the clear text password for the account.
+                This password will be copied to the Nix store, and will be visible to all local users.
+              '';
+            };
+          };
+        });
+      };
+
       mirroredBoots = mkOption {
         default = [ ];
         example = [
@@ -236,6 +300,33 @@ in
         '';
       };
 
+      extraGrubInstallArgs = mkOption {
+        default = [ ];
+        example = [ "--modules=nativedisk ahci pata part_gpt part_msdos diskfilter mdraid1x lvm ext2" ];
+        type = types.listOf types.str;
+        description = ''
+          Additional arguments passed to <literal>grub-install</literal>.
+
+          A use case for this is to build specific GRUB2 modules
+          directly into the GRUB2 kernel image, so that they are available
+          and activated even in the <literal>grub rescue</literal> shell.
+
+          They are also necessary when the BIOS/UEFI is bugged and cannot
+          correctly read large disks (e.g. above 2 TB), so GRUB2's own
+          <literal>nativedisk</literal> and related modules can be used
+          to use its own disk drivers. The example shows one such case.
+          This is also useful for booting from USB.
+          See the
+          <link xlink:href="http://git.savannah.gnu.org/cgit/grub.git/tree/grub-core/commands/nativedisk.c?h=grub-2.04#n326">
+          GRUB source code
+          </link>
+          for which disk modules are available.
+
+          The list elements are passed directly as <literal>argv</literal>
+          arguments to the <literal>grub-install</literal> program, in order.
+        '';
+      };
+
       extraPerEntryConfig = mkOption {
         default = "";
         example = "root (hd0)";
@@ -336,6 +427,19 @@ in
         '';
       };
 
+      theme = mkOption {
+        type = types.nullOr types.path;
+        example = literalExample "pkgs.nixos-grub2-theme";
+        default = null;
+        description = ''
+          Grub theme to be used.
+
+          <note><para>
+          This options has no effect for GRUB 1.
+          </para></note>
+        '';
+      };
+
       splashMode = mkOption {
         type = types.enum [ "normal" "stretch" ];
         default = "stretch";
@@ -607,7 +711,7 @@ in
         in pkgs.writeScript "install-grub.sh" (''
         #!${pkgs.runtimeShell}
         set -e
-        export PERL5LIB=${with pkgs.perlPackages; makePerlPath [ FileSlurp XMLLibXML XMLSAX XMLSAXBase ListCompare ]}
+        export PERL5LIB=${with pkgs.perlPackages; makePerlPath [ FileSlurp FileCopyRecursive XMLLibXML XMLSAX XMLSAXBase ListCompare JSON ]}
         ${optionalString cfg.enableCryptodisk "export GRUB_ENABLE_CRYPTODISK=y"}
       '' + flip concatMapStrings cfg.mirroredBoots (args: ''
         ${pkgs.perl}/bin/perl ${install-grub-pl} ${grubConfig args} $@
diff --git a/nixpkgs/nixos/modules/system/boot/loader/grub/install-grub.pl b/nixpkgs/nixos/modules/system/boot/loader/grub/install-grub.pl
index e469b18abd09..59f5638044fe 100644
--- a/nixpkgs/nixos/modules/system/boot/loader/grub/install-grub.pl
+++ b/nixpkgs/nixos/modules/system/boot/loader/grub/install-grub.pl
@@ -6,8 +6,11 @@ use File::Basename;
 use File::Path;
 use File::stat;
 use File::Copy;
+use File::Copy::Recursive qw(rcopy pathrm);
 use File::Slurp;
 use File::Temp;
+use JSON;
+use File::Find;
 require List::Compare;
 use POSIX;
 use Cwd;
@@ -20,6 +23,16 @@ my $dom = XML::LibXML->load_xml(location => $ARGV[0]);
 
 sub get { my ($name) = @_; return $dom->findvalue("/expr/attrs/attr[\@name = '$name']/*/\@value"); }
 
+sub getList {
+    my ($name) = @_;
+    my @list = ();
+    foreach my $entry ($dom->findnodes("/expr/attrs/attr[\@name = '$name']/list/string/\@value")) {
+        $entry = $entry->findvalue(".") or die;
+        push(@list, $entry);
+    }
+    return @list;
+}
+
 sub readFile {
     my ($fn) = @_; local $/ = undef;
     open FILE, "<$fn" or return undef; my $s = <FILE>; close FILE;
@@ -71,6 +84,7 @@ my $gfxpayloadBios = get("gfxpayloadBios");
 my $bootloaderId = get("bootloaderId");
 my $forceInstall = get("forceInstall");
 my $font = get("font");
+my $theme = get("theme");
 $ENV{'PATH'} = get("path");
 
 die "unsupported GRUB version\n" if $grubVersion != 1 && $grubVersion != 2;
@@ -241,12 +255,51 @@ if ($grubVersion == 1) {
         timeout $timeout
     ";
     if ($splashImage) {
-        copy $splashImage, "$bootPath/background.xpm.gz" or die "cannot copy $splashImage to $bootPath\n";
+        copy $splashImage, "$bootPath/background.xpm.gz" or die "cannot copy $splashImage to $bootPath: $!\n";
         $conf .= "splashimage " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/background.xpm.gz\n";
     }
 }
 
 else {
+    my @users = ();
+    foreach my $user ($dom->findnodes('/expr/attrs/attr[@name = "users"]/attrs/attr')) {
+        my $name = $user->findvalue('@name') or die;
+        my $hashedPassword = $user->findvalue('./attrs/attr[@name = "hashedPassword"]/string/@value');
+        my $hashedPasswordFile = $user->findvalue('./attrs/attr[@name = "hashedPasswordFile"]/string/@value');
+        my $password = $user->findvalue('./attrs/attr[@name = "password"]/string/@value');
+        my $passwordFile = $user->findvalue('./attrs/attr[@name = "passwordFile"]/string/@value');
+
+        if ($hashedPasswordFile) {
+            open(my $f, '<', $hashedPasswordFile) or die "Can't read file '$hashedPasswordFile'!";
+            $hashedPassword = <$f>;
+            chomp $hashedPassword;
+        }
+        if ($passwordFile) {
+            open(my $f, '<', $passwordFile) or die "Can't read file '$passwordFile'!";
+            $password = <$f>;
+            chomp $password;
+        }
+
+        if ($hashedPassword) {
+            if (index($hashedPassword, "grub.pbkdf2.") == 0) {
+                $conf .= "\npassword_pbkdf2 $name $hashedPassword";
+            }
+            else {
+                die "Password hash for GRUB user '$name' is not valid!";
+            }
+        }
+        elsif ($password) {
+            $conf .= "\npassword $name $password";
+        }
+        else {
+            die "GRUB user '$name' has no password!";
+        }
+        push(@users, $name);
+    }
+    if (@users) {
+        $conf .= "\nset superusers=\"" . join(' ',@users) . "\"\n";
+    }
+
     if ($copyKernels == 0) {
         $conf .= "
             " . $grubStore->search;
@@ -280,7 +333,7 @@ else {
     ";
 
     if ($font) {
-        copy $font, "$bootPath/converted-font.pf2" or die "cannot copy $font to $bootPath\n";
+        copy $font, "$bootPath/converted-font.pf2" or die "cannot copy $font to $bootPath: $!\n";
         $conf .= "
             insmod font
             if loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/converted-font.pf2; then
@@ -308,7 +361,7 @@ else {
 		    background_color '$backgroundColor'
 		    ";
 		}
-        copy $splashImage, "$bootPath/background$suffix" or die "cannot copy $splashImage to $bootPath\n";
+        copy $splashImage, "$bootPath/background$suffix" or die "cannot copy $splashImage to $bootPath: $!\n";
         $conf .= "
             insmod " . substr($suffix, 1) . "
             if background_image --mode '$splashMode' " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/background$suffix; then
@@ -320,6 +373,28 @@ else {
             fi
         ";
     }
+
+    rmtree("$bootPath/theme") or die "cannot clean up theme folder in $bootPath\n" if -e "$bootPath/theme";
+
+    if ($theme) {
+        # Copy theme
+        rcopy($theme, "$bootPath/theme") or die "cannot copy $theme to $bootPath\n";
+        $conf .= "
+            # Sets theme.
+            set theme=" . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/theme.txt
+            export theme
+            # Load theme fonts, if any
+         ";
+
+         find( { wanted => sub {
+             if ($_ =~ /\.pf2$/i) {
+                 $font = File::Spec->abs2rel($File::Find::name, $theme);
+                 $conf .= "
+                     loadfont " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/theme/$font
+                 ";
+             }
+         }, no_chdir => 1 }, $theme );
+     }
 }
 
 $conf .= "$extraConfig\n";
@@ -342,15 +417,15 @@ sub copyToKernelsDir {
     # kernels or initrd if this script is ever interrupted.
     if (! -e $dst) {
         my $tmp = "$dst.tmp";
-        copy $path, $tmp or die "cannot copy $path to $tmp\n";
-        rename $tmp, $dst or die "cannot rename $tmp to $dst\n";
+        copy $path, $tmp or die "cannot copy $path to $tmp: $!\n";
+        rename $tmp, $dst or die "cannot rename $tmp to $dst: $!\n";
     }
     $copied{$dst} = 1;
     return ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/kernels/$name";
 }
 
 sub addEntry {
-    my ($name, $path) = @_;
+    my ($name, $path, $options) = @_;
     return unless -e "$path/kernel" && -e "$path/initrd";
 
     my $kernel = copyToKernelsDir(Cwd::abs_path("$path/kernel"));
@@ -366,10 +441,10 @@ sub addEntry {
       # Make sure initrd is not world readable (won't work if /boot is FAT)
       umask 0137;
       my $initrdSecretsPathTemp = File::Temp::mktemp("$initrdSecretsPath.XXXXXXXX");
-      system("$path/append-initrd-secrets", $initrdSecretsPathTemp) == 0 or die "failed to create initrd secrets\n";
+      system("$path/append-initrd-secrets", $initrdSecretsPathTemp) == 0 or die "failed to create initrd secrets: $!\n";
       # Check whether any secrets were actually added
       if (-e $initrdSecretsPathTemp && ! -z _) {
-        rename $initrdSecretsPathTemp, $initrdSecretsPath or die "failed to move initrd secrets into place\n";
+        rename $initrdSecretsPathTemp, $initrdSecretsPath or die "failed to move initrd secrets into place: $!\n";
         $copied{$initrdSecretsPath} = 1;
         $initrd .= " " . ($grubBoot->path eq "/" ? "" : $grubBoot->path) . "/kernels/$initrdName-secrets";
       } else {
@@ -396,7 +471,7 @@ sub addEntry {
         $conf .= "  " . ($xen ? "module" : "kernel") . " $kernel $kernelParams\n";
         $conf .= "  " . ($xen ? "module" : "initrd") . " $initrd\n\n";
     } else {
-        $conf .= "menuentry \"$name\" {\n";
+        $conf .= "menuentry \"$name\" " . ($options||"") . " {\n";
         $conf .= $grubBoot->search . "\n";
         if ($copyKernels == 0) {
             $conf .= $grubStore->search . "\n";
@@ -413,7 +488,7 @@ sub addEntry {
 # Add default entries.
 $conf .= "$extraEntries\n" if $extraEntriesBeforeNixOS;
 
-addEntry("NixOS - Default", $defaultConfig);
+addEntry("NixOS - Default", $defaultConfig, "--unrestricted");
 
 $conf .= "$extraEntries\n" unless $extraEntriesBeforeNixOS;
 
@@ -536,7 +611,7 @@ if (get("useOSProber") eq "true") {
 }
 
 # Atomically switch to the new config
-rename $tmpFile, $confFile or die "cannot rename $tmpFile to $confFile\n";
+rename $tmpFile, $confFile or die "cannot rename $tmpFile to $confFile: $!\n";
 
 
 # Remove obsolete files from $bootPath/kernels.
@@ -557,9 +632,12 @@ struct(GrubState => {
     efi => '$',
     devices => '$',
     efiMountPoint => '$',
+    extraGrubInstallArgs => '@',
 });
+# If you add something to the state file, only add it to the end
+# because it is read line-by-line.
 sub readGrubState {
-    my $defaultGrubState = GrubState->new(name => "", version => "", efi => "", devices => "", efiMountPoint => "" );
+    my $defaultGrubState = GrubState->new(name => "", version => "", efi => "", devices => "", efiMountPoint => "", extraGrubInstallArgs => () );
     open FILE, "<$bootPath/grub/state" or return $defaultGrubState;
     local $/ = "\n";
     my $name = <FILE>;
@@ -572,24 +650,37 @@ sub readGrubState {
     chomp($devices);
     my $efiMountPoint = <FILE>;
     chomp($efiMountPoint);
+    # Historically, arguments in the state file were one per each line, but that
+    # gets really messy when newlines are involved, structured arguments
+    # like lists are needed (they have to have a separator encoding), or even worse,
+    # when we need to remove a setting in the future. Thus, the 6th line is a JSON
+    # object that can store structured data, with named keys, and all new state
+    # should go in there.
+    my $jsonStateLine = <FILE>;
+    # For historical reasons we do not check the values above for un-definedness
+    # (that is, when the state file has too few lines and EOF is reached),
+    # because the above come from the first version of this logic and are thus
+    # guaranteed to be present.
+    $jsonStateLine = defined $jsonStateLine ? $jsonStateLine : '{}'; # empty JSON object
+    chomp($jsonStateLine);
+    if ($jsonStateLine eq "") {
+        $jsonStateLine = '{}'; # empty JSON object
+    }
+    my %jsonState = %{decode_json($jsonStateLine)};
+    my @extraGrubInstallArgs = exists($jsonState{'extraGrubInstallArgs'}) ? @{$jsonState{'extraGrubInstallArgs'}} : ();
     close FILE;
-    my $grubState = GrubState->new(name => $name, version => $version, efi => $efi, devices => $devices, efiMountPoint => $efiMountPoint );
+    my $grubState = GrubState->new(name => $name, version => $version, efi => $efi, devices => $devices, efiMountPoint => $efiMountPoint, extraGrubInstallArgs => \@extraGrubInstallArgs );
     return $grubState
 }
 
-sub getDeviceTargets {
-    my @devices = ();
-    foreach my $dev ($dom->findnodes('/expr/attrs/attr[@name = "devices"]/list/string/@value')) {
-        $dev = $dev->findvalue(".") or die;
-        push(@devices, $dev);
-    }
-    return @devices;
-}
-my @deviceTargets = getDeviceTargets();
+my @deviceTargets = getList('devices');
 my $prevGrubState = readGrubState();
 my @prevDeviceTargets = split/,/, $prevGrubState->devices;
+my @extraGrubInstallArgs = getList('extraGrubInstallArgs');
+my @prevExtraGrubInstallArgs = @{$prevGrubState->extraGrubInstallArgs};
 
 my $devicesDiffer = scalar (List::Compare->new( '-u', '-a', \@deviceTargets, \@prevDeviceTargets)->get_symmetric_difference());
+my $extraGrubInstallArgsDiffer = scalar (List::Compare->new( '-u', '-a', \@extraGrubInstallArgs, \@prevExtraGrubInstallArgs)->get_symmetric_difference());
 my $nameDiffer = get("fullName") ne $prevGrubState->name;
 my $versionDiffer = get("fullVersion") ne $prevGrubState->version;
 my $efiDiffer = $efiTarget ne $prevGrubState->efi;
@@ -598,25 +689,25 @@ if (($ENV{'NIXOS_INSTALL_GRUB'} // "") eq "1") {
     warn "NIXOS_INSTALL_GRUB env var deprecated, use NIXOS_INSTALL_BOOTLOADER";
     $ENV{'NIXOS_INSTALL_BOOTLOADER'} = "1";
 }
-my $requireNewInstall = $devicesDiffer || $nameDiffer || $versionDiffer || $efiDiffer || $efiMountPointDiffer || (($ENV{'NIXOS_INSTALL_BOOTLOADER'} // "") eq "1");
+my $requireNewInstall = $devicesDiffer || $extraGrubInstallArgsDiffer || $nameDiffer || $versionDiffer || $efiDiffer || $efiMountPointDiffer || (($ENV{'NIXOS_INSTALL_BOOTLOADER'} // "") eq "1");
 
 # install a symlink so that grub can detect the boot drive
-my $tmpDir = File::Temp::tempdir(CLEANUP => 1) or die "Failed to create temporary space";
-symlink "$bootPath", "$tmpDir/boot" or die "Failed to symlink $tmpDir/boot";
+my $tmpDir = File::Temp::tempdir(CLEANUP => 1) or die "Failed to create temporary space: $!";
+symlink "$bootPath", "$tmpDir/boot" or die "Failed to symlink $tmpDir/boot: $!";
 
 # install non-EFI GRUB
 if (($requireNewInstall != 0) && ($efiTarget eq "no" || $efiTarget eq "both")) {
     foreach my $dev (@deviceTargets) {
         next if $dev eq "nodev";
         print STDERR "installing the GRUB $grubVersion boot loader on $dev...\n";
-        my @command = ("$grub/sbin/grub-install", "--recheck", "--root-directory=$tmpDir", Cwd::abs_path($dev));
+        my @command = ("$grub/sbin/grub-install", "--recheck", "--root-directory=$tmpDir", Cwd::abs_path($dev), @extraGrubInstallArgs);
         if ($forceInstall eq "true") {
             push @command, "--force";
         }
         if ($grubTarget ne "") {
             push @command, "--target=$grubTarget";
         }
-        (system @command) == 0 or die "$0: installation of GRUB on $dev failed\n";
+        (system @command) == 0 or die "$0: installation of GRUB on $dev failed: $!\n";
     }
 }
 
@@ -624,7 +715,7 @@ if (($requireNewInstall != 0) && ($efiTarget eq "no" || $efiTarget eq "both")) {
 # install EFI GRUB
 if (($requireNewInstall != 0) && ($efiTarget eq "only" || $efiTarget eq "both")) {
     print STDERR "installing the GRUB $grubVersion EFI boot loader into $efiSysMountPoint...\n";
-    my @command = ("$grubEfi/sbin/grub-install", "--recheck", "--target=$grubTargetEfi", "--boot-directory=$bootPath", "--efi-directory=$efiSysMountPoint");
+    my @command = ("$grubEfi/sbin/grub-install", "--recheck", "--target=$grubTargetEfi", "--boot-directory=$bootPath", "--efi-directory=$efiSysMountPoint", @extraGrubInstallArgs);
     if ($forceInstall eq "true") {
         push @command, "--force";
     }
@@ -635,17 +726,29 @@ if (($requireNewInstall != 0) && ($efiTarget eq "only" || $efiTarget eq "both"))
         push @command, "--removable" if $efiInstallAsRemovable eq "true";
     }
 
-    (system @command) == 0 or die "$0: installation of GRUB EFI into $efiSysMountPoint failed\n";
+    (system @command) == 0 or die "$0: installation of GRUB EFI into $efiSysMountPoint failed: $!\n";
 }
 
 
 # update GRUB state file
 if ($requireNewInstall != 0) {
-    open FILE, ">$bootPath/grub/state" or die "cannot create $bootPath/grub/state: $!\n";
+    # Temp file for atomic rename.
+    my $stateFile = "$bootPath/grub/state";
+    my $stateFileTmp = $stateFile . ".tmp";
+
+    open FILE, ">$stateFileTmp" or die "cannot create $stateFileTmp: $!\n";
     print FILE get("fullName"), "\n" or die;
     print FILE get("fullVersion"), "\n" or die;
     print FILE $efiTarget, "\n" or die;
     print FILE join( ",", @deviceTargets ), "\n" or die;
     print FILE $efiSysMountPoint, "\n" or die;
+    my %jsonState = (
+        extraGrubInstallArgs => \@extraGrubInstallArgs
+    );
+    my $jsonStateLine = encode_json(\%jsonState);
+    print FILE $jsonStateLine, "\n" or die;
     close FILE or die;
+
+    # Atomically switch to the new state file
+    rename $stateFileTmp, $stateFile or die "cannot rename $stateFileTmp to $stateFile: $!\n";
 }
diff --git a/nixpkgs/nixos/modules/system/boot/loader/init-script/init-script-builder.sh b/nixpkgs/nixos/modules/system/boot/loader/init-script/init-script-builder.sh
index 6f48d2539ace..2a1ec479fea0 100644
--- a/nixpkgs/nixos/modules/system/boot/loader/init-script/init-script-builder.sh
+++ b/nixpkgs/nixos/modules/system/boot/loader/init-script/init-script-builder.sh
@@ -53,7 +53,7 @@ addEntry() {
       echo "exec $stage2"
     )"
 
-    [ "$path" != "$defaultConfig" ] || { 
+    [ "$path" != "$defaultConfig" ] || {
       echo "$content" > $tmp
       echo "# older configurations: $targetOther" >> $tmp
       chmod +x $tmp
diff --git a/nixpkgs/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.nix b/nixpkgs/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.nix
index e75aa9d13875..7eb52e3d021f 100644
--- a/nixpkgs/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.nix
+++ b/nixpkgs/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.nix
@@ -3,8 +3,8 @@
 pkgs.substituteAll {
   src = ./raspberrypi-builder.sh;
   isExecutable = true;
-  inherit (pkgs.buildPackages) bash;
-  path = with pkgs.buildPackages; [coreutils gnused gnugrep];
+  inherit (pkgs) bash;
+  path = [pkgs.coreutils pkgs.gnused pkgs.gnugrep];
   firmware = pkgs.raspberrypifw;
   inherit configTxt;
 }
diff --git a/nixpkgs/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.sh b/nixpkgs/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.sh
index c8b5bf2e61af..0541ca1ba622 100644
--- a/nixpkgs/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.sh
+++ b/nixpkgs/nixos/modules/system/boot/loader/raspberrypi/raspberrypi-builder.sh
@@ -1,4 +1,7 @@
-#! @bash@/bin/sh -e
+#! @bash@/bin/sh
+
+# This can end up being called disregarding the shebang.
+set -e
 
 shopt -s nullglob
 
diff --git a/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py b/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
index d8baed65c6df..65c7b825f855 100644
--- a/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
+++ b/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot-builder.py
@@ -47,9 +47,9 @@ def write_loader_conf(profile, generation):
         if "@timeout@" != "":
             f.write("timeout @timeout@\n")
         if profile:
-            f.write("default nixos-%s-generation-%d.conf\n".format(profile, generation))
+            f.write("default nixos-%s-generation-%d.conf\n" % (profile, generation))
         else:
-            f.write("default nixos-generation-%d.conf\n".format(generation))
+            f.write("default nixos-generation-%d.conf\n" % (generation))
         if not @editor@:
             f.write("editor 0\n");
         f.write("console-mode @consoleMode@\n");
@@ -200,7 +200,9 @@ def main():
     else:
         # Update bootloader to latest if needed
         systemd_version = subprocess.check_output(["@systemd@/bin/bootctl", "--version"], universal_newlines=True).split()[1]
-        sdboot_status = subprocess.check_output(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "status"], universal_newlines=True)
+        # Ideally this should use check_output as well, but as a temporary
+        # work-around for #97433 we ignore any errors.
+        sdboot_status = subprocess.run(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "status"], universal_newlines=True, stdout=subprocess.PIPE).stdout
 
         # See status_binaries() in systemd bootctl.c for code which generates this
         m = re.search("^\W+File:.*/EFI/(BOOT|systemd)/.*\.efi \(systemd-boot (\d+)\)$",
diff --git a/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix b/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
index 22d459ceb04f..f0bd76a3c1d2 100644
--- a/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
+++ b/nixpkgs/nixos/modules/system/boot/loader/systemd-boot/systemd-boot.nix
@@ -64,10 +64,10 @@ in {
       example = 120;
       type = types.nullOr types.int;
       description = ''
-        Maximum number of latest generations in the boot menu. 
+        Maximum number of latest generations in the boot menu.
         Useful to prevent boot partition running out of disk space.
 
-        <literal>null</literal> means no limit i.e. all generations 
+        <literal>null</literal> means no limit i.e. all generations
         that were not garbage collected yet.
       '';
     };
diff --git a/nixpkgs/nixos/modules/system/boot/luksroot.nix b/nixpkgs/nixos/modules/system/boot/luksroot.nix
index 31f1e22cda32..88190e8200b1 100644
--- a/nixpkgs/nixos/modules/system/boot/luksroot.nix
+++ b/nixpkgs/nixos/modules/system/boot/luksroot.nix
@@ -140,7 +140,7 @@ let
     umount /crypt-ramfs 2>/dev/null
   '';
 
-  openCommand = name': { name, device, header, keyFile, keyFileSize, keyFileOffset, allowDiscards, yubikey, gpgCard, fido2, fallbackToPassword, ... }: assert name' == name;
+  openCommand = name': { name, device, header, keyFile, keyFileSize, keyFileOffset, allowDiscards, yubikey, gpgCard, fido2, fallbackToPassword, preOpenCommands, postOpenCommands,... }: assert name' == name;
   let
     csopen   = "cryptsetup luksOpen ${device} ${name} ${optionalString allowDiscards "--allow-discards"} ${optionalString (header != null) "--header=${header}"}";
     cschange = "cryptsetup luksChangeKey ${device} ${optionalString (header != null) "--header=${header}"}";
@@ -412,11 +412,17 @@ let
     }
     ''}
 
+    # commands to run right before we mount our device
+    ${preOpenCommands}
+
     ${if (luks.yubikeySupport && (yubikey != null)) || (luks.gpgSupport && (gpgCard != null)) || (luks.fido2Support && (fido2.credential != null)) then ''
     open_with_hardware
     '' else ''
     open_normally
     ''}
+
+    # commands to run right after we mounted our device
+    ${postOpenCommands}
   '';
 
   askPass = pkgs.writeScriptBin "cryptsetup-askpass" ''
@@ -467,8 +473,6 @@ in
         [ "aes" "aes_generic" "blowfish" "twofish"
           "serpent" "cbc" "xts" "lrw" "sha1" "sha256" "sha512"
           "af_alg" "algif_skcipher"
-
-          (if pkgs.stdenv.hostPlatform.system == "x86_64-linux" then "aes_x86_64" else "aes_i586")
         ];
       description = ''
         A list of cryptographic kernel modules needed to decrypt the root device(s).
@@ -512,7 +516,7 @@ in
         <filename>/dev/mapper/<replaceable>name</replaceable></filename>.
       '';
 
-      type = with types; loaOf (submodule (
+      type = with types; attrsOf (submodule (
         { name, ... }: { options = {
 
           name = mkOption {
@@ -637,7 +641,7 @@ in
             credential = mkOption {
               default = null;
               example = "f1d00200d8dc783f7fb1e10ace8da27f8312d72692abfca2f7e4960a73f48e82e1f7571f6ebfcee9fb434f9886ccc8fcc52a6614d8d2";
-              type = types.str;
+              type = types.nullOr types.str;
               description = "The FIDO2 credential ID.";
             };
 
@@ -735,6 +739,30 @@ in
               };
             });
           };
+
+          preOpenCommands = mkOption {
+            type = types.lines;
+            default = "";
+            example = ''
+              mkdir -p /tmp/persistent
+              mount -t zfs rpool/safe/persistent /tmp/persistent
+            '';
+            description = ''
+              Commands that should be run right before we try to mount our LUKS device.
+              This can be useful, if the keys needed to open the drive is on another partion.
+            '';
+          };
+
+          postOpenCommands = mkOption {
+            type = types.lines;
+            default = "";
+            example = ''
+              umount /tmp/persistent
+            '';
+            description = ''
+              Commands that should be run right after we have mounted our LUKS device.
+            '';
+          };
         };
       }));
     };
diff --git a/nixpkgs/nixos/modules/system/boot/modprobe.nix b/nixpkgs/nixos/modules/system/boot/modprobe.nix
index dee0ab470c99..c75f32c4d99a 100644
--- a/nixpkgs/nixos/modules/system/boot/modprobe.nix
+++ b/nixpkgs/nixos/modules/system/boot/modprobe.nix
@@ -28,7 +28,7 @@ with lib;
         Any additional configuration to be appended to the generated
         <filename>modprobe.conf</filename>.  This is typically used to
         specify module options.  See
-        <citerefentry><refentrytitle>modprobe.conf</refentrytitle>
+        <citerefentry><refentrytitle>modprobe.d</refentrytitle>
         <manvolnum>5</manvolnum></citerefentry> for details.
       '';
       type = types.lines;
diff --git a/nixpkgs/nixos/modules/system/boot/networkd.nix b/nixpkgs/nixos/modules/system/boot/networkd.nix
index b0545363b330..47689b2a4700 100644
--- a/nixpkgs/nixos/modules/system/boot/networkd.nix
+++ b/nixpkgs/nixos/modules/system/boot/networkd.nix
@@ -8,359 +8,714 @@ let
 
   cfg = config.systemd.network;
 
-  checkLink = checkUnitConfig "Link" [
-    (assertOnlyFields [
-      "Description" "Alias" "MACAddressPolicy" "MACAddress" "NamePolicy" "Name" "OriginalName"
-      "MTUBytes" "BitsPerSecond" "Duplex" "AutoNegotiation" "WakeOnLan" "Port" "Advertise"
-      "TCPSegmentationOffload" "TCP6SegmentationOffload" "GenericSegmentationOffload"
-      "GenericReceiveOffload" "LargeReceiveOffload" "RxChannels" "TxChannels"
-      "OtherChannels" "CombinedChannels"
-    ])
-    (assertValueOneOf "MACAddressPolicy" ["persistent" "random" "none"])
-    (assertMacAddress "MACAddress")
-    (assertByteFormat "MTUBytes")
-    (assertByteFormat "BitsPerSecond")
-    (assertValueOneOf "Duplex" ["half" "full"])
-    (assertValueOneOf "AutoNegotiation" boolValues)
-    (assertValueOneOf "WakeOnLan" ["phy" "unicast" "multicast" "broadcast" "arp" "magic" "secureon" "off"])
-    (assertValueOneOf "Port" ["tp" "aui" "bnc" "mii" "fibre"])
-    (assertValueOneOf "TCPSegmentationOffload" boolValues)
-    (assertValueOneOf "TCP6SegmentationOffload" boolValues)
-    (assertValueOneOf "GenericSegmentationOffload" boolValues)
-    (assertValueOneOf "UDPSegmentationOffload" boolValues)
-    (assertValueOneOf "GenericReceiveOffload" boolValues)
-    (assertValueOneOf "LargeReceiveOffload" boolValues)
-    (assertInt "RxChannels")
-    (assertMinimum "RxChannels" 1)
-    (assertInt "TxChannels")
-    (assertMinimum "TxChannels" 1)
-    (assertInt "OtherChannels")
-    (assertMinimum "OtherChannels" 1)
-    (assertInt "CombinedChannels")
-    (assertMinimum "CombinedChannels" 1)
-  ];
-
-  checkNetdev = checkUnitConfig "Netdev" [
-    (assertOnlyFields [
-      "Description" "Name" "Kind" "MTUBytes" "MACAddress"
-    ])
-    (assertHasField "Name")
-    (assertHasField "Kind")
-    (assertValueOneOf "Kind" [
-      "bond" "bridge" "dummy" "gre" "gretap" "ip6gre" "ip6tnl" "ip6gretap" "ipip"
-      "ipvlan" "macvlan" "macvtap" "sit" "tap" "tun" "veth" "vlan" "vti" "vti6"
-      "vxlan" "geneve" "vrf" "vcan" "vxcan" "wireguard" "netdevsim" "xfrm"
-    ])
-    (assertByteFormat "MTUBytes")
-    (assertMacAddress "MACAddress")
-  ];
-
-  checkVRF = checkUnitConfig "VRF" [
-    (assertOnlyFields [ "Table" ])
-    (assertMinimum "Table" 0)
-  ];
+  check = {
+
+    link = {
+
+      sectionLink = checkUnitConfig "Link" [
+        (assertOnlyFields [
+          "Description"
+          "Alias"
+          "MACAddressPolicy"
+          "MACAddress"
+          "NamePolicy"
+          "Name"
+          "AlternativeNamesPolicy"
+          "AlternativeName"
+          "MTUBytes"
+          "BitsPerSecond"
+          "Duplex"
+          "AutoNegotiation"
+          "WakeOnLan"
+          "Port"
+          "Advertise"
+          "ReceiveChecksumOffload"
+          "TransmitChecksumOffload"
+          "TCPSegmentationOffload"
+          "TCP6SegmentationOffload"
+          "GenericSegmentationOffload"
+          "GenericReceiveOffload"
+          "LargeReceiveOffload"
+          "RxChannels"
+          "TxChannels"
+          "OtherChannels"
+          "CombinedChannels"
+          "RxBufferSize"
+          "TxBufferSize"
+        ])
+        (assertValueOneOf "MACAddressPolicy" ["persistent" "random" "none"])
+        (assertMacAddress "MACAddress")
+        (assertByteFormat "MTUBytes")
+        (assertByteFormat "BitsPerSecond")
+        (assertValueOneOf "Duplex" ["half" "full"])
+        (assertValueOneOf "AutoNegotiation" boolValues)
+        (assertValueOneOf "WakeOnLan" ["phy" "unicast" "multicast" "broadcast" "arp" "magic" "secureon" "off"])
+        (assertValueOneOf "Port" ["tp" "aui" "bnc" "mii" "fibre"])
+        (assertValueOneOf "ReceiveChecksumOffload" boolValues)
+        (assertValueOneOf "TransmitChecksumOffload" boolValues)
+        (assertValueOneOf "TCPSegmentationOffload" boolValues)
+        (assertValueOneOf "TCP6SegmentationOffload" boolValues)
+        (assertValueOneOf "GenericSegmentationOffload" boolValues)
+        (assertValueOneOf "GenericReceiveOffload" boolValues)
+        (assertValueOneOf "LargeReceiveOffload" boolValues)
+        (assertInt "RxChannels")
+        (assertRange "RxChannels" 1 4294967295)
+        (assertInt "TxChannels")
+        (assertRange "TxChannels" 1 4294967295)
+        (assertInt "OtherChannels")
+        (assertRange "OtherChannels" 1 4294967295)
+        (assertInt "CombinedChannels")
+        (assertRange "CombinedChannels" 1 4294967295)
+        (assertInt "RxBufferSize")
+        (assertInt "TxBufferSize")
+      ];
+    };
 
-  # NOTE The PrivateKey directive is missing on purpose here, please
-  # do not add it to this list. The nix store is world-readable let's
-  # refrain ourselves from providing a footgun.
-  checkWireGuard = checkUnitConfig "WireGuard" [
-    (assertOnlyFields [
-      "PrivateKeyFile" "ListenPort" "FwMark"
-    ])
-    # The following check won't work on nix <= 2.2
-    # see https://github.com/NixOS/nix/pull/2378
-    #
-    # Add this again when we'll have drop the
-    # nix < 2.2 support.
-    # (assertRange "FwMark" 1 4294967295)
-  ];
+    netdev = let
+
+      tunChecks = [
+        (assertOnlyFields [
+          "MultiQueue"
+          "PacketInfo"
+          "VNetHeader"
+          "User"
+          "Group"
+        ])
+        (assertValueOneOf "MultiQueue" boolValues)
+        (assertValueOneOf "PacketInfo" boolValues)
+        (assertValueOneOf "VNetHeader" boolValues)
+      ];
+    in {
+
+      sectionNetdev = checkUnitConfig "Netdev" [
+        (assertOnlyFields [
+          "Description"
+          "Name"
+          "Kind"
+          "MTUBytes"
+          "MACAddress"
+        ])
+        (assertHasField "Name")
+        (assertHasField "Kind")
+        (assertValueOneOf "Kind" [
+          "bond"
+          "bridge"
+          "dummy"
+          "gre"
+          "gretap"
+          "erspan"
+          "ip6gre"
+          "ip6tnl"
+          "ip6gretap"
+          "ipip"
+          "ipvlan"
+          "macvlan"
+          "macvtap"
+          "sit"
+          "tap"
+          "tun"
+          "veth"
+          "vlan"
+          "vti"
+          "vti6"
+          "vxlan"
+          "geneve"
+          "l2tp"
+          "macsec"
+          "vrf"
+          "vcan"
+          "vxcan"
+          "wireguard"
+          "netdevsim"
+          "nlmon"
+          "fou"
+          "xfrm"
+          "ifb"
+        ])
+        (assertByteFormat "MTUBytes")
+        (assertMacAddress "MACAddress")
+      ];
 
-  # NOTE The PresharedKey directive is missing on purpose here, please
-  # do not add it to this list. The nix store is world-readable,let's
-  # refrain ourselves from providing a footgun.
-  checkWireGuardPeer = checkUnitConfig "WireGuardPeer" [
-    (assertOnlyFields [
-      "PublicKey" "PresharedKeyFile" "AllowedIPs"
-      "Endpoint" "PersistentKeepalive"
-    ])
-    (assertRange "PersistentKeepalive" 1 65535)
-  ];
+      sectionVLAN = checkUnitConfig "VLAN" [
+        (assertOnlyFields [
+          "Id"
+          "GVRP"
+          "MVRP"
+          "LooseBinding"
+          "ReorderHeader"
+        ])
+        (assertInt "Id")
+        (assertRange "Id" 0 4094)
+        (assertValueOneOf "GVRP" boolValues)
+        (assertValueOneOf "MVRP" boolValues)
+        (assertValueOneOf "LooseBinding" boolValues)
+        (assertValueOneOf "ReorderHeader" boolValues)
+      ];
 
-  checkVlan = checkUnitConfig "VLAN" [
-    (assertOnlyFields ["Id" "GVRP" "MVRP" "LooseBinding" "ReorderHeader"])
-    (assertRange "Id" 0 4094)
-    (assertValueOneOf "GVRP" boolValues)
-    (assertValueOneOf "MVRP" boolValues)
-    (assertValueOneOf "LooseBinding" boolValues)
-    (assertValueOneOf "ReorderHeader" boolValues)
-  ];
+      sectionMACVLAN = checkUnitConfig "MACVLAN" [
+        (assertOnlyFields [
+          "Mode"
+        ])
+        (assertValueOneOf "Mode" ["private" "vepa" "bridge" "passthru"])
+      ];
 
-  checkMacvlan = checkUnitConfig "MACVLAN" [
-    (assertOnlyFields ["Mode"])
-    (assertValueOneOf "Mode" ["private" "vepa" "bridge" "passthru"])
-  ];
+      sectionVXLAN = checkUnitConfig "VXLAN" [
+        (assertOnlyFields [
+          "VNI"
+          "Remote"
+          "Local"
+          "Group"
+          "TOS"
+          "TTL"
+          "MacLearning"
+          "FDBAgeingSec"
+          "MaximumFDBEntries"
+          "ReduceARPProxy"
+          "L2MissNotification"
+          "L3MissNotification"
+          "RouteShortCircuit"
+          "UDPChecksum"
+          "UDP6ZeroChecksumTx"
+          "UDP6ZeroChecksumRx"
+          "RemoteChecksumTx"
+          "RemoteChecksumRx"
+          "GroupPolicyExtension"
+          "GenericProtocolExtension"
+          "DestinationPort"
+          "PortRange"
+          "FlowLabel"
+          "IPDoNotFragment"
+        ])
+        (assertInt "VNI")
+        (assertRange "VNI" 1 16777215)
+        (assertValueOneOf "MacLearning" boolValues)
+        (assertInt "MaximumFDBEntries")
+        (assertValueOneOf "ReduceARPProxy" boolValues)
+        (assertValueOneOf "L2MissNotification" boolValues)
+        (assertValueOneOf "L3MissNotification" boolValues)
+        (assertValueOneOf "RouteShortCircuit" boolValues)
+        (assertValueOneOf "UDPChecksum" boolValues)
+        (assertValueOneOf "UDP6ZeroChecksumTx" boolValues)
+        (assertValueOneOf "UDP6ZeroChecksumRx" boolValues)
+        (assertValueOneOf "RemoteChecksumTx" boolValues)
+        (assertValueOneOf "RemoteChecksumRx" boolValues)
+        (assertValueOneOf "GroupPolicyExtension" boolValues)
+        (assertValueOneOf "GenericProtocolExtension" boolValues)
+        (assertInt "FlowLabel")
+        (assertRange "FlowLabel" 0 1048575)
+        (assertValueOneOf "IPDoNotFragment" (boolValues + ["inherit"]))
+      ];
 
-  checkVxlan = checkUnitConfig "VXLAN" [
-    (assertOnlyFields [
-      "Id" "Remote" "Local" "TOS" "TTL" "MacLearning" "FDBAgeingSec"
-      "MaximumFDBEntries" "ReduceARPProxy" "L2MissNotification"
-      "L3MissNotification" "RouteShortCircuit" "UDPChecksum"
-      "UDP6ZeroChecksumTx" "UDP6ZeroChecksumRx" "RemoteChecksumTx"
-      "RemoteChecksumRx" "GroupPolicyExtension" "DestinationPort" "PortRange"
-      "FlowLabel"
-    ])
-    (assertRange "TTL" 0 255)
-    (assertValueOneOf "MacLearning" boolValues)
-    (assertValueOneOf "ReduceARPProxy" boolValues)
-    (assertValueOneOf "L2MissNotification" boolValues)
-    (assertValueOneOf "L3MissNotification" boolValues)
-    (assertValueOneOf "RouteShortCircuit" boolValues)
-    (assertValueOneOf "UDPChecksum" boolValues)
-    (assertValueOneOf "UDP6ZeroChecksumTx" boolValues)
-    (assertValueOneOf "UDP6ZeroChecksumRx" boolValues)
-    (assertValueOneOf "RemoteChecksumTx" boolValues)
-    (assertValueOneOf "RemoteChecksumRx" boolValues)
-    (assertValueOneOf "GroupPolicyExtension" boolValues)
-    (assertRange "FlowLabel" 0 1048575)
-  ];
+      sectionTunnel = checkUnitConfig "Tunnel" [
+        (assertOnlyFields [
+          "Local"
+          "Remote"
+          "TOS"
+          "TTL"
+          "DiscoverPathMTU"
+          "IPv6FlowLabel"
+          "CopyDSCP"
+          "EncapsulationLimit"
+          "Key"
+          "InputKey"
+          "OutputKey"
+          "Mode"
+          "Independent"
+          "AssignToLoopback"
+          "AllowLocalRemote"
+          "FooOverUDP"
+          "FOUDestinationPort"
+          "FOUSourcePort"
+          "Encapsulation"
+          "IPv6RapidDeploymentPrefix"
+          "ISATAP"
+          "SerializeTunneledPackets"
+          "ERSPANIndex"
+        ])
+        (assertInt "TTL")
+        (assertRange "TTL" 0 255)
+        (assertValueOneOf "DiscoverPathMTU" boolValues)
+        (assertValueOneOf "CopyDSCP" boolValues)
+        (assertValueOneOf "Mode" ["ip6ip6" "ipip6" "any"])
+        (assertValueOneOf "Independent" boolValues)
+        (assertValueOneOf "AssignToLoopback" boolValues)
+        (assertValueOneOf "AllowLocalRemote" boolValues)
+        (assertValueOneOf "FooOverUDP" boolValues)
+        (assertPort "FOUDestinationPort")
+        (assertPort "FOUSourcePort")
+        (assertValueOneOf "Encapsulation" ["FooOverUDP" "GenericUDPEncapsulation"])
+        (assertValueOneOf "ISATAP" boolValues)
+        (assertValueOneOf "SerializeTunneledPackets" boolValues)
+        (assertInt "ERSPANIndex")
+        (assertRange "ERSPANIndex" 1 1048575)
+      ];
 
-  checkTunnel = checkUnitConfig "Tunnel" [
-    (assertOnlyFields [
-      "Local" "Remote" "TOS" "TTL" "DiscoverPathMTU" "IPv6FlowLabel" "CopyDSCP"
-      "EncapsulationLimit" "Key" "InputKey" "OutputKey" "Mode" "Independent"
-      "AllowLocalRemote"
-    ])
-    (assertRange "TTL" 0 255)
-    (assertValueOneOf "DiscoverPathMTU" boolValues)
-    (assertValueOneOf "CopyDSCP" boolValues)
-    (assertValueOneOf "Mode" ["ip6ip6" "ipip6" "any"])
-    (assertValueOneOf "Independent" boolValues)
-    (assertValueOneOf "AllowLocalRemote" boolValues)
-  ];
+      sectionPeer = checkUnitConfig "Peer" [
+        (assertOnlyFields [
+          "Name"
+          "MACAddress"
+        ])
+        (assertMacAddress "MACAddress")
+      ];
 
-  checkPeer = checkUnitConfig "Peer" [
-    (assertOnlyFields ["Name" "MACAddress"])
-    (assertMacAddress "MACAddress")
-  ];
+      sectionTun = checkUnitConfig "Tun" tunChecks;
+
+      sectionTap = checkUnitConfig "Tap" tunChecks;
+
+      # NOTE The PrivateKey directive is missing on purpose here, please
+      # do not add it to this list. The nix store is world-readable let's
+      # refrain ourselves from providing a footgun.
+      sectionWireGuard = checkUnitConfig "WireGuard" [
+        (assertOnlyFields [
+          "PrivateKeyFile"
+          "ListenPort"
+          "FirewallMark"
+        ])
+        (assertInt "FirewallMark")
+        (assertRange "FirewallMark" 1 4294967295)
+      ];
 
-  tunTapChecks = [
-    (assertOnlyFields ["OneQueue" "MultiQueue" "PacketInfo" "VNetHeader" "User" "Group"])
-    (assertValueOneOf "OneQueue" boolValues)
-    (assertValueOneOf "MultiQueue" boolValues)
-    (assertValueOneOf "PacketInfo" boolValues)
-    (assertValueOneOf "VNetHeader" boolValues)
-  ];
+      # NOTE The PresharedKey directive is missing on purpose here, please
+      # do not add it to this list. The nix store is world-readable,let's
+      # refrain ourselves from providing a footgun.
+      sectionWireGuardPeer = checkUnitConfig "WireGuardPeer" [
+        (assertOnlyFields [
+          "PublicKey"
+          "PresharedKeyFile"
+          "AllowedIPs"
+          "Endpoint"
+          "PersistentKeepalive"
+        ])
+        (assertInt "PersistentKeepalive")
+        (assertRange "PersistentKeepalive" 0 65535)
+      ];
 
-  checkTun = checkUnitConfig "Tun" tunTapChecks;
-
-  checkTap = checkUnitConfig "Tap" tunTapChecks;
-
-  checkBond = checkUnitConfig "Bond" [
-    (assertOnlyFields [
-      "Mode" "TransmitHashPolicy" "LACPTransmitRate" "MIIMonitorSec"
-      "UpDelaySec" "DownDelaySec" "LearnPacketIntervalSec" "AdSelect"
-      "FailOverMACPolicy" "ARPValidate" "ARPIntervalSec" "ARPIPTargets"
-      "ARPAllTargets" "PrimaryReselectPolicy" "ResendIGMP" "PacketsPerSlave"
-      "GratuitousARP" "AllSlavesActive" "MinLinks"
-    ])
-    (assertValueOneOf "Mode" [
-      "balance-rr" "active-backup" "balance-xor"
-      "broadcast" "802.3ad" "balance-tlb" "balance-alb"
-    ])
-    (assertValueOneOf "TransmitHashPolicy" [
-      "layer2" "layer3+4" "layer2+3" "encap2+3" "encap3+4"
-    ])
-    (assertValueOneOf "LACPTransmitRate" ["slow" "fast"])
-    (assertValueOneOf "AdSelect" ["stable" "bandwidth" "count"])
-    (assertValueOneOf "FailOverMACPolicy" ["none" "active" "follow"])
-    (assertValueOneOf "ARPValidate" ["none" "active" "backup" "all"])
-    (assertValueOneOf "ARPAllTargets" ["any" "all"])
-    (assertValueOneOf "PrimaryReselectPolicy" ["always" "better" "failure"])
-    (assertRange "ResendIGMP" 0 255)
-    (assertRange "PacketsPerSlave" 0 65535)
-    (assertRange "GratuitousARP" 0 255)
-    (assertValueOneOf "AllSlavesActive" boolValues)
-  ];
+      sectionBond = checkUnitConfig "Bond" [
+        (assertOnlyFields [
+          "Mode"
+          "TransmitHashPolicy"
+          "LACPTransmitRate"
+          "MIIMonitorSec"
+          "UpDelaySec"
+          "DownDelaySec"
+          "LearnPacketIntervalSec"
+          "AdSelect"
+          "AdActorSystemPriority"
+          "AdUserPortKey"
+          "AdActorSystem"
+          "FailOverMACPolicy"
+          "ARPValidate"
+          "ARPIntervalSec"
+          "ARPIPTargets"
+          "ARPAllTargets"
+          "PrimaryReselectPolicy"
+          "ResendIGMP"
+          "PacketsPerSlave"
+          "GratuitousARP"
+          "AllSlavesActive"
+          "DynamicTransmitLoadBalancing"
+          "MinLinks"
+        ])
+        (assertValueOneOf "Mode" [
+          "balance-rr"
+          "active-backup"
+          "balance-xor"
+          "broadcast"
+          "802.3ad"
+          "balance-tlb"
+          "balance-alb"
+        ])
+        (assertValueOneOf "TransmitHashPolicy" [
+          "layer2"
+          "layer3+4"
+          "layer2+3"
+          "encap2+3"
+          "encap3+4"
+        ])
+        (assertValueOneOf "LACPTransmitRate" ["slow" "fast"])
+        (assertValueOneOf "AdSelect" ["stable" "bandwidth" "count"])
+        (assertInt "AdActorSystemPriority")
+        (assertRange "AdActorSystemPriority" 1 65535)
+        (assertInt "AdUserPortKey")
+        (assertRange "AdUserPortKey" 0 1023)
+        (assertValueOneOf "FailOverMACPolicy" ["none" "active" "follow"])
+        (assertValueOneOf "ARPValidate" ["none" "active" "backup" "all"])
+        (assertValueOneOf "ARPAllTargets" ["any" "all"])
+        (assertValueOneOf "PrimaryReselectPolicy" ["always" "better" "failure"])
+        (assertInt "ResendIGMP")
+        (assertRange "ResendIGMP" 0 255)
+        (assertInt "PacketsPerSlave")
+        (assertRange "PacketsPerSlave" 0 65535)
+        (assertInt "GratuitousARP")
+        (assertRange "GratuitousARP" 0 255)
+        (assertValueOneOf "AllSlavesActive" boolValues)
+        (assertValueOneOf "DynamicTransmitLoadBalancing" boolValues)
+        (assertInt "MinLinks")
+        (assertMinimum "MinLinks" 0)
+      ];
 
-  checkXfrm = checkUnitConfig "Xfrm" [
-    (assertOnlyFields [
-      "InterfaceId" "Independent"
-    ])
-    # The following check won't work on nix <= 2.2
-    # see https://github.com/NixOS/nix/pull/2378
-    #
-    # Add this again when we'll have drop the
-    # nix < 2.2 support.
-    # (assertRange "InterfaceId" 1 4294967295)
-    (assertValueOneOf "Independent" boolValues)
-  ];
+      sectionXfrm = checkUnitConfig "Xfrm" [
+        (assertOnlyFields [
+          "InterfaceId"
+          "Independent"
+        ])
+        (assertInt "InterfaceId")
+        (assertRange "InterfaceId" 1 4294967295)
+        (assertValueOneOf "Independent" boolValues)
+      ];
 
-  checkNetwork = checkUnitConfig "Network" [
-    (assertOnlyFields [
-      "Description" "DHCP" "DHCPServer" "LinkLocalAddressing" "IPv4LLRoute"
-      "IPv6Token" "LLMNR" "MulticastDNS" "DNSOverTLS" "DNSSEC"
-      "DNSSECNegativeTrustAnchors" "LLDP" "EmitLLDP" "BindCarrier" "Address"
-      "Gateway" "DNS" "Domains" "NTP" "IPForward" "IPMasquerade"
-      "IPv6PrivacyExtensions" "IPv6AcceptRA" "IPv6DuplicateAddressDetection"
-      "IPv6HopLimit" "IPv4ProxyARP" "IPv6ProxyNDP" "IPv6ProxyNDPAddress"
-      "IPv6PrefixDelegation" "IPv6MTUBytes" "Bridge" "Bond" "VRF" "VLAN"
-      "IPVLAN" "MACVLAN" "VXLAN" "Tunnel" "ActiveSlave" "PrimarySlave"
-      "ConfigureWithoutCarrier" "Xfrm" "KeepConfiguration"
-    ])
-    # Note: For DHCP the values both, none, v4, v6 are deprecated
-    (assertValueOneOf "DHCP" ["yes" "no" "ipv4" "ipv6" "both" "none" "v4" "v6"])
-    (assertValueOneOf "DHCPServer" boolValues)
-    (assertValueOneOf "LinkLocalAddressing" ["yes" "no" "ipv4" "ipv6" "ipv4-fallback" "fallback"])
-    (assertValueOneOf "IPv4LLRoute" boolValues)
-    (assertValueOneOf "LLMNR" ["yes" "resolve" "no"])
-    (assertValueOneOf "MulticastDNS" ["yes" "resolve" "no"])
-    (assertValueOneOf "DNSOverTLS" ["opportunistic" "no"])
-    (assertValueOneOf "DNSSEC" ["yes" "allow-downgrade" "no"])
-    (assertValueOneOf "LLDP" ["yes" "routers-only" "no"])
-    (assertValueOneOf "EmitLLDP" ["yes" "no" "nearest-bridge" "non-tpmr-bridge" "customer-bridge"])
-    (assertValueOneOf "IPForward" ["yes" "no" "ipv4" "ipv6"])
-    (assertValueOneOf "IPMasquerade" boolValues)
-    (assertValueOneOf "IPv6PrivacyExtensions" ["yes" "no" "prefer-public" "kernel"])
-    (assertValueOneOf "IPv6AcceptRA" boolValues)
-    (assertValueOneOf "IPv4ProxyARP" boolValues)
-    (assertValueOneOf "IPv6ProxyNDP" boolValues)
-    (assertValueOneOf "IPv6PrefixDelegation" (boolValues ++ [ "dhcpv6" "static" ]))
-    (assertValueOneOf "ActiveSlave" boolValues)
-    (assertValueOneOf "PrimarySlave" boolValues)
-    (assertValueOneOf "ConfigureWithoutCarrier" boolValues)
-    (assertValueOneOf "KeepConfiguration" (boolValues ++ ["static" "dhcp-on-stop" "dhcp"]))
-  ];
+      sectionVRF = checkUnitConfig "VRF" [
+        (assertOnlyFields [
+          "Table"
+        ])
+        (assertInt "Table")
+        (assertMinimum "Table" 0)
+      ];
+    };
 
-  checkAddress = checkUnitConfig "Address" [
-    (assertOnlyFields [
-      "Address" "Peer" "Broadcast" "Label" "PreferredLifetime" "Scope"
-      "HomeAddress" "DuplicateAddressDetection" "ManageTemporaryAddress"
-      "PrefixRoute" "AutoJoin"
-    ])
-    (assertHasField "Address")
-    (assertValueOneOf "PreferredLifetime" ["forever" "infinity" "0" 0])
-    (assertValueOneOf "HomeAddress" boolValues)
-    (assertValueOneOf "DuplicateAddressDetection" boolValues)
-    (assertValueOneOf "ManageTemporaryAddress" boolValues)
-    (assertValueOneOf "PrefixRoute" boolValues)
-    (assertValueOneOf "AutoJoin" boolValues)
-  ];
+    network = {
+
+      sectionLink = checkUnitConfig "Link" [
+        (assertOnlyFields [
+          "MACAddress"
+          "MTUBytes"
+          "ARP"
+          "Multicast"
+          "AllMulticast"
+          "Unmanaged"
+          "RequiredForOnline"
+        ])
+        (assertMacAddress "MACAddress")
+        (assertByteFormat "MTUBytes")
+        (assertValueOneOf "ARP" boolValues)
+        (assertValueOneOf "Multicast" boolValues)
+        (assertValueOneOf "AllMulticast" boolValues)
+        (assertValueOneOf "Unmanaged" boolValues)
+        (assertValueOneOf "RequiredForOnline" (boolValues ++ [
+          "missing"
+          "off"
+          "no-carrier"
+          "dormant"
+          "degraded-carrier"
+          "carrier"
+          "degraded"
+          "enslaved"
+          "routable"
+        ]))
+      ];
 
-  checkRoutingPolicyRule = checkUnitConfig "RoutingPolicyRule" [
-    (assertOnlyFields [
-      "TypeOfService" "From" "To" "FirewallMark" "Table" "Priority"
-      "IncomingInterface" "OutgoingInterface" "SourcePort" "DestinationPort"
-      "IPProtocol" "InvertRule" "Family"
-    ])
-    (assertRange "TypeOfService" 0 255)
-    # The following check won't work on nix <= 2.2
-    # see https://github.com/NixOS/nix/pull/2378
-    #
-    # Add this again when we'll have drop the
-    # nix < 2.2 support.
-    #  (assertRange "FirewallMark" 1 4294967295)
-    (assertInt "Priority")
-    (assertPort "SourcePort")
-    (assertPort "DestinationPort")
-    (assertValueOneOf "InvertRule" boolValues)
-    (assertValueOneOf "Family" ["ipv4" "ipv6" "both"])
-  ];
+      sectionNetwork = checkUnitConfig "Network" [
+        (assertOnlyFields [
+          "Description"
+          "DHCP"
+          "DHCPServer"
+          "LinkLocalAddressing"
+          "IPv4LLRoute"
+          "DefaultRouteOnDevice"
+          "IPv6Token"
+          "LLMNR"
+          "MulticastDNS"
+          "DNSOverTLS"
+          "DNSSEC"
+          "DNSSECNegativeTrustAnchors"
+          "LLDP"
+          "EmitLLDP"
+          "BindCarrier"
+          "Address"
+          "Gateway"
+          "DNS"
+          "Domains"
+          "DNSDefaultRoute"
+          "NTP"
+          "IPForward"
+          "IPMasquerade"
+          "IPv6PrivacyExtensions"
+          "IPv6AcceptRA"
+          "IPv6DuplicateAddressDetection"
+          "IPv6HopLimit"
+          "IPv4ProxyARP"
+          "IPv6ProxyNDP"
+          "IPv6ProxyNDPAddress"
+          "IPv6PrefixDelegation"
+          "IPv6MTUBytes"
+          "Bridge"
+          "Bond"
+          "VRF"
+          "VLAN"
+          "IPVLAN"
+          "MACVLAN"
+          "VXLAN"
+          "Tunnel"
+          "MACsec"
+          "ActiveSlave"
+          "PrimarySlave"
+          "ConfigureWithoutCarrier"
+          "IgnoreCarrierLoss"
+          "Xfrm"
+          "KeepConfiguration"
+        ])
+        # Note: For DHCP the values both, none, v4, v6 are deprecated
+        (assertValueOneOf "DHCP" ["yes" "no" "ipv4" "ipv6"])
+        (assertValueOneOf "DHCPServer" boolValues)
+        (assertValueOneOf "LinkLocalAddressing" ["yes" "no" "ipv4" "ipv6" "fallback" "ipv4-fallback"])
+        (assertValueOneOf "IPv4LLRoute" boolValues)
+        (assertValueOneOf "DefaultRouteOnDevice" boolValues)
+        (assertValueOneOf "LLMNR" (boolValues ++ ["resolve"]))
+        (assertValueOneOf "MulticastDNS" (boolValues ++ ["resolve"]))
+        (assertValueOneOf "DNSOverTLS" (boolValues ++ ["opportunistic"]))
+        (assertValueOneOf "DNSSEC" (boolValues ++ ["allow-downgrade"]))
+        (assertValueOneOf "LLDP" (boolValues ++ ["routers-only"]))
+        (assertValueOneOf "EmitLLDP" (boolValues ++ ["nearest-bridge" "non-tpmr-bridge" "customer-bridge"]))
+        (assertValueOneOf "DNSDefaultRoute" boolValues)
+        (assertValueOneOf "IPForward" (boolValues ++ ["ipv4" "ipv6"]))
+        (assertValueOneOf "IPMasquerade" boolValues)
+        (assertValueOneOf "IPv6PrivacyExtensions" (boolValues ++ ["prefer-public" "kernel"]))
+        (assertValueOneOf "IPv6AcceptRA" boolValues)
+        (assertInt "IPv6DuplicateAddressDetection")
+        (assertMinimum "IPv6DuplicateAddressDetection" 0)
+        (assertInt "IPv6HopLimit")
+        (assertMinimum "IPv6HopLimit" 0)
+        (assertValueOneOf "IPv4ProxyARP" boolValues)
+        (assertValueOneOf "IPv6ProxyNDP" boolValues)
+        (assertValueOneOf "IPv6PrefixDelegation" ["static" "dhcpv6" "yes" "false"])
+        (assertByteFormat "IPv6MTUBytes")
+        (assertValueOneOf "ActiveSlave" boolValues)
+        (assertValueOneOf "PrimarySlave" boolValues)
+        (assertValueOneOf "ConfigureWithoutCarrier" boolValues)
+        (assertValueOneOf "IgnoreCarrierLoss" boolValues)
+        (assertValueOneOf "KeepConfiguration" (boolValues ++ ["static" "dhcp-on-stop" "dhcp"]))
+      ];
 
-  checkRoute = checkUnitConfig "Route" [
-    (assertOnlyFields [
-      "Gateway" "GatewayOnLink" "Destination" "Source" "Metric"
-      "IPv6Preference" "Scope" "PreferredSource" "Table" "Protocol" "Type"
-      "InitialCongestionWindow" "InitialAdvertisedReceiveWindow" "QuickAck"
-      "MTUBytes"
-    ])
-  ];
+      sectionAddress = checkUnitConfig "Address" [
+        (assertOnlyFields [
+          "Address"
+          "Peer"
+          "Broadcast"
+          "Label"
+          "PreferredLifetime"
+          "Scope"
+          "HomeAddress"
+          "DuplicateAddressDetection"
+          "ManageTemporaryAddress"
+          "AddPrefixRoute"
+          "AutoJoin"
+        ])
+        (assertHasField "Address")
+        (assertValueOneOf "PreferredLifetime" ["forever" "infinity" "0" 0])
+        (assertValueOneOf "HomeAddress" boolValues)
+        (assertValueOneOf "DuplicateAddressDetection" ["ipv4" "ipv6" "both" "none"])
+        (assertValueOneOf "ManageTemporaryAddress" boolValues)
+        (assertValueOneOf "AddPrefixRoute" boolValues)
+        (assertValueOneOf "AutoJoin" boolValues)
+      ];
 
-  checkDhcpV4 = checkUnitConfig "DHCPv4" [
-    (assertOnlyFields [
-      "UseDNS" "RoutesToDNS" "UseNTP" "UseMTU" "Anonymize" "SendHostname" "UseHostname"
-      "Hostname" "UseDomains" "UseRoutes" "UseTimezone"
-      "ClientIdentifier" "VendorClassIdentifier" "UserClass" "MaxAttempts"
-      "DUIDType" "DUIDRawData" "IAID" "RequestBroadcast" "RouteMetric" "RouteTable"
-      "ListenPort" "SendRelease"
-    ])
-    (assertValueOneOf "UseDNS" boolValues)
-    (assertValueOneOf "RoutesToDNS" boolValues)
-    (assertValueOneOf "UseNTP" boolValues)
-    (assertValueOneOf "UseMTU" boolValues)
-    (assertValueOneOf "Anonymize" boolValues)
-    (assertValueOneOf "SendHostname" boolValues)
-    (assertValueOneOf "UseHostname" boolValues)
-    (assertValueOneOf "UseDomains" ["yes" "no" "route"])
-    (assertValueOneOf "UseRoutes" boolValues)
-    (assertValueOneOf "UseTimezone" boolValues)
-    (assertMinimum "MaxAttempts" 0)
-    (assertValueOneOf "RequestBroadcast" boolValues)
-    (assertInt "RouteTable")
-    (assertMinimum "RouteTable" 0)
-    (assertValueOneOf "SendRelease" boolValues)
-  ];
+      sectionRoutingPolicyRule = checkUnitConfig "RoutingPolicyRule" [
+        (assertOnlyFields [
+          "TypeOfService"
+          "From"
+          "To"
+          "FirewallMark"
+          "Table"
+          "Priority"
+          "IncomingInterface"
+          "OutgoingInterface"
+          "SourcePort"
+          "DestinationPort"
+          "IPProtocol"
+          "InvertRule"
+          "Family"
+          "User"
+          "SuppressPrefixLength"
+        ])
+        (assertInt "TypeOfService")
+        (assertRange "TypeOfService" 0 255)
+        (assertInt "FirewallMark")
+        (assertRange "FirewallMark" 1 4294967295)
+        (assertInt "Priority")
+        (assertPort "SourcePort")
+        (assertPort "DestinationPort")
+        (assertValueOneOf "InvertRule" boolValues)
+        (assertValueOneOf "Family" ["ipv4" "ipv6" "both"])
+        (assertInt "SuppressPrefixLength")
+        (assertRange "SuppressPrefixLength" 0 128)
+      ];
 
-  checkDhcpV6 = checkUnitConfig "DHCPv6" [
-    (assertOnlyFields [
-      "UseDns" "UseNTP" "RapidCommit" "ForceDHCPv6PDOtherInformation"
-      "PrefixDelegationHint"
-    ])
-    (assertValueOneOf "UseDNS" boolValues)
-    (assertValueOneOf "UseNTP" boolValues)
-    (assertValueOneOf "RapidCommit" boolValues)
-    (assertValueOneOf "ForceDHCPv6PDOtherInformation" boolValues)
-  ];
+      sectionRoute = checkUnitConfig "Route" [
+        (assertOnlyFields [
+          "Gateway"
+          "GatewayOnLink"
+          "Destination"
+          "Source"
+          "Metric"
+          "IPv6Preference"
+          "Scope"
+          "PreferredSource"
+          "Table"
+          "Protocol"
+          "Type"
+          "InitialCongestionWindow"
+          "InitialAdvertisedReceiveWindow"
+          "QuickAck"
+          "FastOpenNoCookie"
+          "TTLPropagate"
+          "MTUBytes"
+          "IPServiceType"
+          "MultiPathRoute"
+        ])
+        (assertValueOneOf "GatewayOnLink" boolValues)
+        (assertInt "Metric")
+        (assertValueOneOf "IPv6Preference" ["low" "medium" "high"])
+        (assertValueOneOf "Scope" ["global" "site" "link" "host" "nowhere"])
+        (assertValueOneOf "Type" [
+          "unicast"
+          "local"
+          "broadcast"
+          "anycast"
+          "multicast"
+          "blackhole"
+          "unreachable"
+          "prohibit"
+          "throw"
+          "nat"
+          "xresolve"
+        ])
+        (assertValueOneOf "QuickAck" boolValues)
+        (assertValueOneOf "FastOpenNoCookie" boolValues)
+        (assertValueOneOf "TTLPropagate" boolValues)
+        (assertByteFormat "MTUBytes")
+        (assertValueOneOf "IPServiceType" ["CS6" "CS4"])
+      ];
 
-  checkIpv6PrefixDelegation = checkUnitConfig "IPv6PrefixDelegation" [
-    (assertOnlyFields [
-      "Managed"  "OtherInformation"  "RouterLifetimeSec"
-      "RouterPreference"  "EmitDNS"  "DNS"  "EmitDomains"  "Domains"
-      "DNSLifetimeSec"
-    ])
-    (assertValueOneOf "Managed" boolValues)
-    (assertValueOneOf "OtherInformation" boolValues)
-    (assertValueOneOf "RouterPreference" ["high" "medium" "low" "normal" "default"])
-    (assertValueOneOf "EmitDNS" boolValues)
-    (assertValueOneOf "EmitDomains" boolValues)
-    (assertMinimum "DNSLifetimeSec" 0)
-  ];
+      sectionDHCPv4 = checkUnitConfig "DHCPv4" [
+        (assertOnlyFields [
+          "UseDNS"
+          "RoutesToDNS"
+          "UseNTP"
+          "UseSIP"
+          "UseMTU"
+          "Anonymize"
+          "SendHostname"
+          "UseHostname"
+          "Hostname"
+          "UseDomains"
+          "UseRoutes"
+          "UseTimezone"
+          "ClientIdentifier"
+          "VendorClassIdentifier"
+          "UserClass"
+          "MaxAttempts"
+          "DUIDType"
+          "DUIDRawData"
+          "IAID"
+          "RequestBroadcast"
+          "RouteMetric"
+          "RouteTable"
+          "RouteMTUBytes"
+          "ListenPort"
+          "SendRelease"
+          "SendDecline"
+          "BlackList"
+          "RequestOptions"
+          "SendOption"
+        ])
+        (assertValueOneOf "UseDNS" boolValues)
+        (assertValueOneOf "RoutesToDNS" boolValues)
+        (assertValueOneOf "UseNTP" boolValues)
+        (assertValueOneOf "UseSIP" boolValues)
+        (assertValueOneOf "UseMTU" boolValues)
+        (assertValueOneOf "Anonymize" boolValues)
+        (assertValueOneOf "SendHostname" boolValues)
+        (assertValueOneOf "UseHostname" boolValues)
+        (assertValueOneOf "UseDomains" (boolValues ++ ["route"]))
+        (assertValueOneOf "UseRoutes" boolValues)
+        (assertValueOneOf "UseTimezone" boolValues)
+        (assertValueOneOf "ClientIdentifier" ["mac" "duid" "duid-only"])
+        (assertInt "IAID")
+        (assertValueOneOf "RequestBroadcast" boolValues)
+        (assertInt "RouteMetric")
+        (assertInt "RouteTable")
+        (assertRange "RouteTable" 0 4294967295)
+        (assertByteFormat "RouteMTUBytes")
+        (assertPort "ListenPort")
+        (assertValueOneOf "SendRelease" boolValues)
+        (assertValueOneOf "SendDecline" boolValues)
+      ];
 
-  checkIpv6Prefix = checkUnitConfig "IPv6Prefix" [
-    (assertOnlyFields [
-      "AddressAutoconfiguration"  "OnLink"  "Prefix"
-      "PreferredLifetimeSec" "ValidLifetimeSec"
-    ])
-    (assertValueOneOf "AddressAutoconfiguration" boolValues)
-    (assertValueOneOf "OnLink" boolValues)
-    (assertMinimum "PreferredLifetimeSec" 0)
-    (assertMinimum "ValidLifetimeSec" 0)
-  ];
+      sectionDHCPv6 = checkUnitConfig "DHCPv6" [
+        (assertOnlyFields [
+          "UseDNS"
+          "UseNTP"
+          "RapidCommit"
+          "ForceDHCPv6PDOtherInformation"
+          "PrefixDelegationHint"
+        ])
+        (assertValueOneOf "UseDNS" boolValues)
+        (assertValueOneOf "UseNTP" boolValues)
+        (assertValueOneOf "RapidCommit" boolValues)
+        (assertValueOneOf "ForceDHCPv6PDOtherInformation" boolValues)
+      ];
 
+      sectionDHCPServer = checkUnitConfig "DHCPServer" [
+        (assertOnlyFields [
+          "PoolOffset"
+          "PoolSize"
+          "DefaultLeaseTimeSec"
+          "MaxLeaseTimeSec"
+          "EmitDNS"
+          "DNS"
+          "EmitNTP"
+          "NTP"
+          "EmitSIP"
+          "SIP"
+          "EmitRouter"
+          "EmitTimezone"
+          "Timezone"
+          "SendOption"
+        ])
+        (assertInt "PoolOffset")
+        (assertMinimum "PoolOffset" 0)
+        (assertInt "PoolSize")
+        (assertMinimum "PoolSize" 0)
+        (assertValueOneOf "EmitDNS" boolValues)
+        (assertValueOneOf "EmitNTP" boolValues)
+        (assertValueOneOf "EmitSIP" boolValues)
+        (assertValueOneOf "EmitRouter" boolValues)
+        (assertValueOneOf "EmitTimezone" boolValues)
+      ];
 
-  checkDhcpServer = checkUnitConfig "DHCPServer" [
-    (assertOnlyFields [
-      "PoolOffset" "PoolSize" "DefaultLeaseTimeSec" "MaxLeaseTimeSec"
-      "EmitDNS" "DNS" "EmitNTP" "NTP" "EmitRouter" "EmitTimezone" "Timezone"
-    ])
-    (assertValueOneOf "EmitDNS" boolValues)
-    (assertValueOneOf "EmitNTP" boolValues)
-    (assertValueOneOf "EmitRouter" boolValues)
-    (assertValueOneOf "EmitTimezone" boolValues)
-  ];
+      sectionIPv6PrefixDelegation = checkUnitConfig "IPv6PrefixDelegation" [
+        (assertOnlyFields [
+          "Managed"
+          "OtherInformation"
+          "RouterLifetimeSec"
+          "RouterPreference"
+          "EmitDNS"
+          "DNS"
+          "EmitDomains"
+          "Domains"
+          "DNSLifetimeSec"
+        ])
+        (assertValueOneOf "Managed" boolValues)
+        (assertValueOneOf "OtherInformation" boolValues)
+        (assertValueOneOf "RouterPreference" ["high" "medium" "low" "normal" "default"])
+        (assertValueOneOf "EmitDNS" boolValues)
+        (assertValueOneOf "EmitDomains" boolValues)
+      ];
 
-  # .network files have a [Link] section with different options than in .netlink files
-  checkNetworkLink = checkUnitConfig "Link" [
-    (assertOnlyFields [
-      "MACAddress" "MTUBytes" "ARP" "Multicast" "Unmanaged" "RequiredForOnline"
-    ])
-    (assertMacAddress "MACAddress")
-    (assertByteFormat "MTUBytes")
-    (assertValueOneOf "ARP" boolValues)
-    (assertValueOneOf "Multicast" boolValues)
-    (assertValueOneOf "Unmanaged" boolValues)
-    (assertValueOneOf "RequiredForOnline" (boolValues ++ ["off" "no-carrier" "dormant" "degraded-carrier" "carrier" "degraded" "enslaved" "routable"]))
-  ];
+      sectionIPv6Prefix = checkUnitConfig "IPv6Prefix" [
+        (assertOnlyFields [
+          "AddressAutoconfiguration"
+          "OnLink"
+          "Prefix"
+          "PreferredLifetimeSec"
+          "ValidLifetimeSec"
+        ])
+        (assertValueOneOf "AddressAutoconfiguration" boolValues)
+        (assertValueOneOf "OnLink" boolValues)
+      ];
 
+    };
+  };
 
   commonNetworkOptions = {
 
@@ -406,7 +761,7 @@ let
     linkConfig = mkOption {
       default = {};
       example = { MACAddress = "00:ff:ee:aa:cc:dd"; };
-      type = types.addCheck (types.attrsOf unitOption) checkLink;
+      type = types.addCheck (types.attrsOf unitOption) check.link.sectionLink;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[Link]</literal> section of the unit.  See
@@ -417,12 +772,28 @@ let
 
   };
 
+  wireguardPeerOptions = {
+    options = {
+      wireguardPeerConfig = mkOption {
+        default = {};
+        example = { };
+        type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionWireGuardPeer;
+        description = ''
+          Each attribute in this set specifies an option in the
+          <literal>[WireGuardPeer]</literal> section of the unit.  See
+          <citerefentry><refentrytitle>systemd.network</refentrytitle>
+          <manvolnum>5</manvolnum></citerefentry> for details.
+        '';
+      };
+    };
+  };
+
   netdevOptions = commonNetworkOptions // {
 
     netdevConfig = mkOption {
       default = {};
       example = { Name = "mybridge"; Kind = "bridge"; };
-      type = types.addCheck (types.attrsOf unitOption) checkNetdev;
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionNetdev;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[Netdev]</literal> section of the unit.  See
@@ -431,65 +802,10 @@ let
       '';
     };
 
-    vrfConfig = mkOption {
-      default = {};
-      example = { Table = 2342; };
-      type = types.addCheck (types.attrsOf unitOption) checkVRF;
-      description = ''
-        Each attribute in this set specifies an option in the
-        <literal>[VRF]</literal> section of the unit. See
-        <citerefentry><refentrytitle>systemd.netdev</refentrytitle>
-        <manvolnum>5</manvolnum></citerefentry> for details.
-        A detailed explanation about how VRFs work can be found in the
-        <link xlink:href="https://www.kernel.org/doc/Documentation/networking/vrf.txt">kernel
-        docs</link>.
-      '';
-    };
-
-    wireguardConfig = mkOption {
-      default = {};
-      example = {
-        PrivateKeyFile = "/etc/wireguard/secret.key";
-        ListenPort = 51820;
-        FwMark = 42;
-      };
-      type = types.addCheck (types.attrsOf unitOption) checkWireGuard;
-      description = ''
-        Each attribute in this set specifies an option in the
-        <literal>[WireGuard]</literal> section of the unit. See
-        <citerefentry><refentrytitle>systemd.netdev</refentrytitle>
-        <manvolnum>5</manvolnum></citerefentry> for details.
-        Use <literal>PrivateKeyFile</literal> instead of
-        <literal>PrivateKey</literal>: the nix store is
-        world-readable.
-      '';
-    };
-
-    wireguardPeers = mkOption {
-      default = [];
-      example = [ { wireguardPeerConfig={
-        Endpoint = "192.168.1.1:51820";
-        PublicKey = "27s0OvaBBdHoJYkH9osZpjpgSOVNw+RaKfboT/Sfq0g=";
-        PresharedKeyFile = "/etc/wireguard/psk.key";
-        AllowedIPs = [ "10.0.0.1/32" ];
-        PersistentKeepalive = 15;
-      };}];
-      type = with types; listOf (submodule wireguardPeerOptions);
-      description = ''
-        Each item in this array specifies an option in the
-        <literal>[WireGuardPeer]</literal> section of the unit. See
-        <citerefentry><refentrytitle>systemd.netdev</refentrytitle>
-        <manvolnum>5</manvolnum></citerefentry> for details.
-        Use <literal>PresharedKeyFile</literal> instead of
-        <literal>PresharedKey</literal>: the nix store is
-        world-readable.
-      '';
-    };
-
     vlanConfig = mkOption {
       default = {};
-      example = { Id = "4"; };
-      type = types.addCheck (types.attrsOf unitOption) checkVlan;
+      example = { Id = 4; };
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionVLAN;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[VLAN]</literal> section of the unit.  See
@@ -501,7 +817,7 @@ let
     macvlanConfig = mkOption {
       default = {};
       example = { Mode = "private"; };
-      type = types.addCheck (types.attrsOf unitOption) checkMacvlan;
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionMACVLAN;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[MACVLAN]</literal> section of the unit.  See
@@ -513,7 +829,7 @@ let
     vxlanConfig = mkOption {
       default = {};
       example = { Id = "4"; };
-      type = types.addCheck (types.attrsOf unitOption) checkVxlan;
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionVXLAN;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[VXLAN]</literal> section of the unit.  See
@@ -525,7 +841,7 @@ let
     tunnelConfig = mkOption {
       default = {};
       example = { Remote = "192.168.1.1"; };
-      type = types.addCheck (types.attrsOf unitOption) checkTunnel;
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionTunnel;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[Tunnel]</literal> section of the unit.  See
@@ -537,7 +853,7 @@ let
     peerConfig = mkOption {
       default = {};
       example = { Name = "veth2"; };
-      type = types.addCheck (types.attrsOf unitOption) checkPeer;
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionPeer;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[Peer]</literal> section of the unit.  See
@@ -549,7 +865,7 @@ let
     tunConfig = mkOption {
       default = {};
       example = { User = "openvpn"; };
-      type = types.addCheck (types.attrsOf unitOption) checkTun;
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionTun;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[Tun]</literal> section of the unit.  See
@@ -561,7 +877,7 @@ let
     tapConfig = mkOption {
       default = {};
       example = { User = "openvpn"; };
-      type = types.addCheck (types.attrsOf unitOption) checkTap;
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionTap;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[Tap]</literal> section of the unit.  See
@@ -570,10 +886,50 @@ let
       '';
     };
 
+    wireguardConfig = mkOption {
+      default = {};
+      example = {
+        PrivateKeyFile = "/etc/wireguard/secret.key";
+        ListenPort = 51820;
+        FwMark = 42;
+      };
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionWireGuard;
+      description = ''
+        Each attribute in this set specifies an option in the
+        <literal>[WireGuard]</literal> section of the unit. See
+        <citerefentry><refentrytitle>systemd.netdev</refentrytitle>
+        <manvolnum>5</manvolnum></citerefentry> for details.
+        Use <literal>PrivateKeyFile</literal> instead of
+        <literal>PrivateKey</literal>: the nix store is
+        world-readable.
+      '';
+    };
+
+    wireguardPeers = mkOption {
+      default = [];
+      example = [ { wireguardPeerConfig={
+        Endpoint = "192.168.1.1:51820";
+        PublicKey = "27s0OvaBBdHoJYkH9osZpjpgSOVNw+RaKfboT/Sfq0g=";
+        PresharedKeyFile = "/etc/wireguard/psk.key";
+        AllowedIPs = [ "10.0.0.1/32" ];
+        PersistentKeepalive = 15;
+      };}];
+      type = with types; listOf (submodule wireguardPeerOptions);
+      description = ''
+        Each item in this array specifies an option in the
+        <literal>[WireGuardPeer]</literal> section of the unit. See
+        <citerefentry><refentrytitle>systemd.netdev</refentrytitle>
+        <manvolnum>5</manvolnum></citerefentry> for details.
+        Use <literal>PresharedKeyFile</literal> instead of
+        <literal>PresharedKey</literal>: the nix store is
+        world-readable.
+      '';
+    };
+
     bondConfig = mkOption {
       default = {};
       example = { Mode = "802.3ad"; };
-      type = types.addCheck (types.attrsOf unitOption) checkBond;
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionBond;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[Bond]</literal> section of the unit.  See
@@ -585,7 +941,7 @@ let
     xfrmConfig = mkOption {
       default = {};
       example = { InterfaceId = 1; };
-      type = types.addCheck (types.attrsOf unitOption) checkXfrm;
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionXfrm;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[Xfrm]</literal> section of the unit.  See
@@ -594,6 +950,21 @@ let
       '';
     };
 
+    vrfConfig = mkOption {
+      default = {};
+      example = { Table = 2342; };
+      type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionVRF;
+      description = ''
+        Each attribute in this set specifies an option in the
+        <literal>[VRF]</literal> section of the unit. See
+        <citerefentry><refentrytitle>systemd.netdev</refentrytitle>
+        <manvolnum>5</manvolnum></citerefentry> for details.
+        A detailed explanation about how VRFs work can be found in the
+        <link xlink:href="https://www.kernel.org/doc/Documentation/networking/vrf.txt">kernel
+        docs</link>.
+      '';
+    };
+
   };
 
   addressOptions = {
@@ -601,7 +972,7 @@ let
       addressConfig = mkOption {
         default = {};
         example = { Address = "192.168.0.100/24"; };
-        type = types.addCheck (types.attrsOf unitOption) checkAddress;
+        type = types.addCheck (types.attrsOf unitOption) check.network.sectionAddress;
         description = ''
           Each attribute in this set specifies an option in the
           <literal>[Address]</literal> section of the unit.  See
@@ -617,7 +988,7 @@ let
       routingPolicyRuleConfig = mkOption {
         default = { };
         example = { routingPolicyRuleConfig = { Table = 10; IncomingInterface = "eth1"; Family = "both"; } ;};
-        type = types.addCheck (types.attrsOf unitOption) checkRoutingPolicyRule;
+        type = types.addCheck (types.attrsOf unitOption) check.network.sectionRoutingPolicyRule;
         description = ''
           Each attribute in this set specifies an option in the
           <literal>[RoutingPolicyRule]</literal> section of the unit.  See
@@ -633,7 +1004,7 @@ let
       routeConfig = mkOption {
         default = {};
         example = { Gateway = "192.168.0.1"; };
-        type = types.addCheck (types.attrsOf unitOption) checkRoute;
+        type = types.addCheck (types.attrsOf unitOption) check.network.sectionRoute;
         description = ''
           Each attribute in this set specifies an option in the
           <literal>[Route]</literal> section of the unit.  See
@@ -644,28 +1015,12 @@ let
     };
   };
 
-  wireguardPeerOptions = {
-    options = {
-      wireguardPeerConfig = mkOption {
-        default = {};
-        example = { };
-        type = types.addCheck (types.attrsOf unitOption) checkWireGuardPeer;
-        description = ''
-          Each attribute in this set specifies an option in the
-          <literal>[WireGuardPeer]</literal> section of the unit.  See
-          <citerefentry><refentrytitle>systemd.network</refentrytitle>
-          <manvolnum>5</manvolnum></citerefentry> for details.
-        '';
-      };
-    };
-  };
-
   ipv6PrefixOptions = {
     options = {
       ipv6PrefixConfig = mkOption {
         default = {};
         example = { Prefix = "fd00::/64"; };
-        type = types.addCheck (types.attrsOf unitOption) checkIpv6Prefix;
+        type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6Prefix;
         description = ''
           Each attribute in this set specifies an option in the
           <literal>[IPv6Prefix]</literal> section of the unit.  See
@@ -676,13 +1031,24 @@ let
     };
   };
 
-
   networkOptions = commonNetworkOptions // {
 
+    linkConfig = mkOption {
+      default = {};
+      example = { Unmanaged = true; };
+      type = types.addCheck (types.attrsOf unitOption) check.network.sectionLink;
+      description = ''
+        Each attribute in this set specifies an option in the
+        <literal>[Link]</literal> section of the unit.  See
+        <citerefentry><refentrytitle>systemd.network</refentrytitle>
+        <manvolnum>5</manvolnum></citerefentry> for details.
+      '';
+    };
+
     networkConfig = mkOption {
       default = {};
       example = { Description = "My Network"; };
-      type = types.addCheck (types.attrsOf unitOption) checkNetwork;
+      type = types.addCheck (types.attrsOf unitOption) check.network.sectionNetwork;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[Network]</literal> section of the unit.  See
@@ -701,7 +1067,7 @@ let
     dhcpV4Config = mkOption {
       default = {};
       example = { UseDNS = true; UseRoutes = true; };
-      type = types.addCheck (types.attrsOf unitOption) checkDhcpV4;
+      type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPv4;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[DHCPv4]</literal> section of the unit.  See
@@ -713,7 +1079,7 @@ let
     dhcpV6Config = mkOption {
       default = {};
       example = { UseDNS = true; UseRoutes = true; };
-      type = types.addCheck (types.attrsOf unitOption) checkDhcpV6;
+      type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPv6;
       description = ''
         Each attribute in this set specifies an option in the
         <literal>[DHCPv6]</literal> section of the unit.  See
@@ -722,48 +1088,36 @@ let
       '';
     };
 
-    ipv6PrefixDelegationConfig = mkOption {
+    dhcpServerConfig = mkOption {
       default = {};
-      example = { EmitDNS = true; Managed = true; OtherInformation = true; };
-      type = types.addCheck (types.attrsOf unitOption) checkIpv6PrefixDelegation;
+      example = { PoolOffset = 50; EmitDNS = false; };
+      type = types.addCheck (types.attrsOf unitOption) check.network.sectionDHCPServer;
       description = ''
         Each attribute in this set specifies an option in the
-        <literal>[IPv6PrefixDelegation]</literal> section of the unit.  See
-        <citerefentry><refentrytitle>systemd.network</refentrytitle>
-        <manvolnum>5</manvolnum></citerefentry> for details.
-      '';
-    };
-
-    ipv6Prefixes = mkOption {
-      default = [];
-      example = { AddressAutoconfiguration = true; OnLink = true; };
-      type = with types; listOf (submodule ipv6PrefixOptions);
-      description = ''
-        A list of ipv6Prefix sections to be added to the unit.  See
+        <literal>[DHCPServer]</literal> section of the unit.  See
         <citerefentry><refentrytitle>systemd.network</refentrytitle>
         <manvolnum>5</manvolnum></citerefentry> for details.
       '';
     };
 
-    dhcpServerConfig = mkOption {
+    ipv6PrefixDelegationConfig = mkOption {
       default = {};
-      example = { PoolOffset = 50; EmitDNS = false; };
-      type = types.addCheck (types.attrsOf unitOption) checkDhcpServer;
+      example = { EmitDNS = true; Managed = true; OtherInformation = true; };
+      type = types.addCheck (types.attrsOf unitOption) check.network.sectionIPv6PrefixDelegation;
       description = ''
         Each attribute in this set specifies an option in the
-        <literal>[DHCPServer]</literal> section of the unit.  See
+        <literal>[IPv6PrefixDelegation]</literal> section of the unit.  See
         <citerefentry><refentrytitle>systemd.network</refentrytitle>
         <manvolnum>5</manvolnum></citerefentry> for details.
       '';
     };
 
-    linkConfig = mkOption {
-      default = {};
-      example = { Unmanaged = true; };
-      type = types.addCheck (types.attrsOf unitOption) checkNetworkLink;
+    ipv6Prefixes = mkOption {
+      default = [];
+      example = { AddressAutoconfiguration = true; OnLink = true; };
+      type = with types; listOf (submodule ipv6PrefixOptions);
       description = ''
-        Each attribute in this set specifies an option in the
-        <literal>[Link]</literal> section of the unit.  See
+        A list of ipv6Prefix sections to be added to the unit.  See
         <citerefentry><refentrytitle>systemd.network</refentrytitle>
         <manvolnum>5</manvolnum></citerefentry> for details.
       '';
@@ -958,160 +1312,162 @@ let
     };
   };
 
-  commonMatchText = def: optionalString (def.matchConfig != {}) ''
+  commonMatchText = def: optionalString (def.matchConfig != { }) ''
     [Match]
     ${attrsToSection def.matchConfig}
   '';
 
   linkToUnit = name: def:
     { inherit (def) enable;
-      text = commonMatchText def +
-        ''
+      text = commonMatchText def
+        + ''
           [Link]
           ${attrsToSection def.linkConfig}
-
-          ${def.extraConfig}
-        '';
+        ''
+        + def.extraConfig;
     };
 
   netdevToUnit = name: def:
     { inherit (def) enable;
-      text = commonMatchText def +
-        ''
+      text = commonMatchText def
+        + ''
           [NetDev]
           ${attrsToSection def.netdevConfig}
-
-          ${optionalString (def.vlanConfig != { }) ''
-            [VLAN]
-            ${attrsToSection def.vlanConfig}
-
-          ''}
-          ${optionalString (def.macvlanConfig != { }) ''
-            [MACVLAN]
-            ${attrsToSection def.macvlanConfig}
-
-          ''}
-          ${optionalString (def.vxlanConfig != { }) ''
-            [VXLAN]
-            ${attrsToSection def.vxlanConfig}
-
-          ''}
-          ${optionalString (def.tunnelConfig != { }) ''
-            [Tunnel]
-            ${attrsToSection def.tunnelConfig}
-
-          ''}
-          ${optionalString (def.peerConfig != { }) ''
-            [Peer]
-            ${attrsToSection def.peerConfig}
-
-          ''}
-          ${optionalString (def.tunConfig != { }) ''
-            [Tun]
-            ${attrsToSection def.tunConfig}
-
-          ''}
-          ${optionalString (def.tapConfig != { }) ''
-            [Tap]
-            ${attrsToSection def.tapConfig}
-
-          ''}
-          ${optionalString (def.bondConfig != { }) ''
-            [Bond]
-            ${attrsToSection def.bondConfig}
-
-          ''}
-          ${optionalString (def.xfrmConfig != { }) ''
-            [Xfrm]
-            ${attrsToSection def.xfrmConfig}
-
-          ''}
-          ${optionalString (def.vrfConfig != { }) ''
-            [VRF]
-            ${attrsToSection def.vrfConfig}
-
-          ''}
-          ${optionalString (def.wireguardConfig != { }) ''
-            [WireGuard]
-            ${attrsToSection def.wireguardConfig}
-
-          ''}
-          ${flip concatMapStrings def.wireguardPeers (x: ''
-            [WireGuardPeer]
-            ${attrsToSection x.wireguardPeerConfig}
-
-          '')}
-          ${def.extraConfig}
-        '';
+        ''
+        + optionalString (def.vlanConfig != { }) ''
+          [VLAN]
+          ${attrsToSection def.vlanConfig}
+        ''
+        + optionalString (def.macvlanConfig != { }) ''
+          [MACVLAN]
+          ${attrsToSection def.macvlanConfig}
+        ''
+        + optionalString (def.vxlanConfig != { }) ''
+          [VXLAN]
+          ${attrsToSection def.vxlanConfig}
+        ''
+        + optionalString (def.tunnelConfig != { }) ''
+          [Tunnel]
+          ${attrsToSection def.tunnelConfig}
+        ''
+        + optionalString (def.peerConfig != { }) ''
+          [Peer]
+          ${attrsToSection def.peerConfig}
+        ''
+        + optionalString (def.tunConfig != { }) ''
+          [Tun]
+          ${attrsToSection def.tunConfig}
+        ''
+        + optionalString (def.tapConfig != { }) ''
+          [Tap]
+          ${attrsToSection def.tapConfig}
+        ''
+        + optionalString (def.wireguardConfig != { }) ''
+          [WireGuard]
+          ${attrsToSection def.wireguardConfig}
+        ''
+        + flip concatMapStrings def.wireguardPeers (x: ''
+          [WireGuardPeer]
+          ${attrsToSection x.wireguardPeerConfig}
+        '')
+        + optionalString (def.bondConfig != { }) ''
+          [Bond]
+          ${attrsToSection def.bondConfig}
+        ''
+        + optionalString (def.xfrmConfig != { }) ''
+          [Xfrm]
+          ${attrsToSection def.xfrmConfig}
+        ''
+        + optionalString (def.vrfConfig != { }) ''
+          [VRF]
+          ${attrsToSection def.vrfConfig}
+        ''
+        + def.extraConfig;
     };
 
   networkToUnit = name: def:
     { inherit (def) enable;
-      text = commonMatchText def +
+      text = commonMatchText def
+        + optionalString (def.linkConfig != { }) ''
+          [Link]
+          ${attrsToSection def.linkConfig}
         ''
-          ${optionalString (def.linkConfig != { }) ''
-            [Link]
-            ${attrsToSection def.linkConfig}
-
-          ''}
-
+        + ''
           [Network]
-          ${attrsToSection def.networkConfig}
+        ''
+        + attrsToSection def.networkConfig
+        + optionalString (def.address != [ ]) ''
           ${concatStringsSep "\n" (map (s: "Address=${s}") def.address)}
+        ''
+        + optionalString (def.gateway != [ ]) ''
           ${concatStringsSep "\n" (map (s: "Gateway=${s}") def.gateway)}
+        ''
+        + optionalString (def.dns != [ ]) ''
           ${concatStringsSep "\n" (map (s: "DNS=${s}") def.dns)}
+        ''
+        + optionalString (def.ntp != [ ]) ''
           ${concatStringsSep "\n" (map (s: "NTP=${s}") def.ntp)}
+        ''
+        + optionalString (def.bridge != [ ]) ''
           ${concatStringsSep "\n" (map (s: "Bridge=${s}") def.bridge)}
+        ''
+        + optionalString (def.bond != [ ]) ''
           ${concatStringsSep "\n" (map (s: "Bond=${s}") def.bond)}
+        ''
+        + optionalString (def.vrf != [ ]) ''
           ${concatStringsSep "\n" (map (s: "VRF=${s}") def.vrf)}
+        ''
+        + optionalString (def.vlan != [ ]) ''
           ${concatStringsSep "\n" (map (s: "VLAN=${s}") def.vlan)}
+        ''
+        + optionalString (def.macvlan != [ ]) ''
           ${concatStringsSep "\n" (map (s: "MACVLAN=${s}") def.macvlan)}
+        ''
+        + optionalString (def.vxlan != [ ]) ''
           ${concatStringsSep "\n" (map (s: "VXLAN=${s}") def.vxlan)}
+        ''
+        + optionalString (def.tunnel != [ ]) ''
           ${concatStringsSep "\n" (map (s: "Tunnel=${s}") def.tunnel)}
+        ''
+        + optionalString (def.xfrm != [ ]) ''
           ${concatStringsSep "\n" (map (s: "Xfrm=${s}") def.xfrm)}
+        ''
+        + ''
 
-          ${optionalString (def.dhcpV4Config != { }) ''
-            [DHCPv4]
-            ${attrsToSection def.dhcpV4Config}
-
-          ''}
-          ${optionalString (def.dhcpV6Config != {}) ''
-            [DHCPv6]
-            ${attrsToSection def.dhcpV6Config}
-
-          ''}
-          ${optionalString (def.ipv6PrefixDelegationConfig != {}) ''
-            [IPv6PrefixDelegation]
-            ${attrsToSection def.ipv6PrefixDelegationConfig}
-
-          ''}
-          ${flip concatMapStrings def.ipv6Prefixes (x: ''
-            [IPv6Prefix]
-            ${attrsToSection x.ipv6PrefixConfig}
-
-          '')}
-          ${optionalString (def.dhcpServerConfig != { }) ''
-            [DHCPServer]
-            ${attrsToSection def.dhcpServerConfig}
-
-          ''}
-          ${flip concatMapStrings def.addresses (x: ''
-            [Address]
-            ${attrsToSection x.addressConfig}
-
-          '')}
-          ${flip concatMapStrings def.routes (x: ''
-            [Route]
-            ${attrsToSection x.routeConfig}
-
-          '')}
-          ${flip concatMapStrings def.routingPolicyRules (x: ''
-            [RoutingPolicyRule]
-            ${attrsToSection x.routingPolicyRuleConfig}
-
-          '')}
-          ${def.extraConfig}
-        '';
+        ''
+        + flip concatMapStrings def.addresses (x: ''
+          [Address]
+          ${attrsToSection x.addressConfig}
+        '')
+        + flip concatMapStrings def.routingPolicyRules (x: ''
+          [RoutingPolicyRule]
+          ${attrsToSection x.routingPolicyRuleConfig}
+        '')
+        + flip concatMapStrings def.routes (x: ''
+          [Route]
+          ${attrsToSection x.routeConfig}
+        '')
+        + optionalString (def.dhcpV4Config != { }) ''
+          [DHCPv4]
+          ${attrsToSection def.dhcpV4Config}
+        ''
+        + optionalString (def.dhcpV6Config != { }) ''
+          [DHCPv6]
+          ${attrsToSection def.dhcpV6Config}
+        ''
+        + optionalString (def.dhcpServerConfig != { }) ''
+          [DHCPServer]
+          ${attrsToSection def.dhcpServerConfig}
+        ''
+        + optionalString (def.ipv6PrefixDelegationConfig != { }) ''
+          [IPv6PrefixDelegation]
+          ${attrsToSection def.ipv6PrefixDelegationConfig}
+        ''
+        + flip concatMapStrings def.ipv6Prefixes (x: ''
+          [IPv6Prefix]
+          ${attrsToSection x.ipv6PrefixConfig}
+        '')
+        + def.extraConfig;
     };
 
   unitFiles = listToAttrs (map (name: {
diff --git a/nixpkgs/nixos/modules/system/boot/plymouth.nix b/nixpkgs/nixos/modules/system/boot/plymouth.nix
index 23fce22366d8..55e5b07ed615 100644
--- a/nixpkgs/nixos/modules/system/boot/plymouth.nix
+++ b/nixpkgs/nixos/modules/system/boot/plymouth.nix
@@ -102,6 +102,8 @@ in
     systemd.services.plymouth-poweroff.wantedBy = [ "poweroff.target" ];
     systemd.services.plymouth-reboot.wantedBy = [ "reboot.target" ];
     systemd.services.plymouth-read-write.wantedBy = [ "sysinit.target" ];
+    systemd.services.systemd-ask-password-plymouth.wantedBy = ["multi-user.target"];
+    systemd.paths.systemd-ask-password-plymouth.wantedBy = ["multi-user.target"];
 
     boot.initrd.extraUtilsCommands = ''
       copy_bin_and_libs ${pkgs.plymouth}/bin/plymouthd
@@ -146,6 +148,7 @@ in
     # We use `mkAfter` to ensure that LUKS password prompt would be shown earlier than the splash screen.
     boot.initrd.preLVMCommands = mkAfter ''
       mkdir -p /etc/plymouth
+      mkdir -p /run/plymouth
       ln -s ${configFile} /etc/plymouth/plymouthd.conf
       ln -s $extraUtils/share/plymouth/plymouthd.defaults /etc/plymouth/plymouthd.defaults
       ln -s $extraUtils/share/plymouth/logo.png /etc/plymouth/logo.png
diff --git a/nixpkgs/nixos/modules/system/boot/stage-1-init.sh b/nixpkgs/nixos/modules/system/boot/stage-1-init.sh
index 607aec87f01e..f7c2940049e5 100644
--- a/nixpkgs/nixos/modules/system/boot/stage-1-init.sh
+++ b/nixpkgs/nixos/modules/system/boot/stage-1-init.sh
@@ -144,6 +144,14 @@ for o in $(cat /proc/cmdline); do
             set -- $(IFS==; echo $o)
             stage2Init=$2
             ;;
+        boot.persistence=*)
+            set -- $(IFS==; echo $o)
+            persistence=$2
+            ;;
+        boot.persistence.opt=*)
+            set -- $(IFS==; echo $o)
+            persistence_opt=$2
+            ;;
         boot.trace|debugtrace)
             # Show each command.
             set -x
@@ -210,6 +218,7 @@ done
 # Create device nodes in /dev.
 @preDeviceCommands@
 echo "running udev..."
+ln -sfn /proc/self/fd /dev/fd
 mkdir -p /etc/systemd
 ln -sfn @linkUnits@ /etc/systemd/network
 mkdir -p /etc/udev
@@ -370,12 +379,14 @@ mountFS() {
 
     mkdir -p "/mnt-root$mountPoint"
 
-    # For CIFS mounts, retry a few times before giving up.
+    # For ZFS and CIFS mounts, retry a few times before giving up.
+    # We do this for ZFS as a workaround for issue NixOS/nixpkgs#25383.
     local n=0
     while true; do
         mount "/mnt-root$mountPoint" && break
-        if [ "$fsType" != cifs -o "$n" -ge 10 ]; then fail; break; fi
+        if [ \( "$fsType" != cifs -a "$fsType" != zfs \) -o "$n" -ge 10 ]; then fail; break; fi
         echo "retrying..."
+        sleep 1
         n=$((n + 1))
     done
 
@@ -534,6 +545,14 @@ while read -u 3 mountPoint; do
       continue
     fi
 
+    if [ "$mountPoint" = / ] && [ "$device" = tmpfs ] && [ ! -z "$persistence" ]; then
+        echo persistence...
+        waitDevice "$persistence"
+        echo enabling persistence...
+        mountFS "$persistence" "$mountPoint" "$persistence_opt" "auto"
+        continue
+    fi
+
     mountFS "$device" "$mountPoint" "$options" "$fsType"
 done
 
diff --git a/nixpkgs/nixos/modules/system/boot/stage-1.nix b/nixpkgs/nixos/modules/system/boot/stage-1.nix
index d551466f52eb..6823e12847c2 100644
--- a/nixpkgs/nixos/modules/system/boot/stage-1.nix
+++ b/nixpkgs/nixos/modules/system/boot/stage-1.nix
@@ -36,7 +36,7 @@ let
     set -euo pipefail
 
     declare -A seen
-    declare -a left
+    left=()
 
     patchelf="${pkgs.buildPackages.patchelf}/bin/patchelf"
 
@@ -48,7 +48,7 @@ let
       done
     }
 
-    add_needed $1
+    add_needed "$1"
 
     while [ ''${#left[@]} -ne 0 ]; do
       next=''${left[0]}
@@ -111,20 +111,21 @@ let
       copy_bin_and_libs ${pkgs.utillinux}/sbin/blkid
 
       # Copy dmsetup and lvm.
-      copy_bin_and_libs ${pkgs.lvm2}/sbin/dmsetup
-      copy_bin_and_libs ${pkgs.lvm2}/sbin/lvm
+      copy_bin_and_libs ${getBin pkgs.lvm2}/bin/dmsetup
+      copy_bin_and_libs ${getBin pkgs.lvm2}/bin/lvm
 
       # Add RAID mdadm tool.
       copy_bin_and_libs ${pkgs.mdadm}/sbin/mdadm
       copy_bin_and_libs ${pkgs.mdadm}/sbin/mdmon
 
       # Copy udev.
-      copy_bin_and_libs ${udev}/lib/systemd/systemd-udevd
-      copy_bin_and_libs ${udev}/lib/systemd/systemd-sysctl
       copy_bin_and_libs ${udev}/bin/udevadm
+      copy_bin_and_libs ${udev}/lib/systemd/systemd-sysctl
       for BIN in ${udev}/lib/udev/*_id; do
         copy_bin_and_libs $BIN
       done
+      # systemd-udevd is only a symlink to udevadm these days
+      ln -sf udevadm $out/bin/systemd-udevd
 
       # Copy modprobe.
       copy_bin_and_libs ${pkgs.kmod}/bin/kmod
@@ -235,7 +236,7 @@ let
             --replace cdrom_id ${extraUtils}/bin/cdrom_id \
             --replace ${pkgs.coreutils}/bin/basename ${extraUtils}/bin/basename \
             --replace ${pkgs.utillinux}/bin/blkid ${extraUtils}/bin/blkid \
-            --replace ${pkgs.lvm2}/sbin ${extraUtils}/bin \
+            --replace ${getBin pkgs.lvm2}/bin ${extraUtils}/bin \
             --replace ${pkgs.mdadm}/sbin ${extraUtils}/sbin \
             --replace ${pkgs.bash}/bin/sh ${extraUtils}/bin/sh \
             --replace ${udev} ${extraUtils}
@@ -374,7 +375,8 @@ let
           ) config.boot.initrd.secrets)
          }
 
-        (cd "$tmp" && find . | cpio -H newc -o) | gzip >>"$1"
+        (cd "$tmp" && find . -print0 | sort -z | cpio -o -H newc -R +0:+0 --reproducible --null) | \
+          ${config.boot.initrd.compressor} >> "$1"
       '';
 
 in
@@ -554,15 +556,17 @@ in
       };
 
     fileSystems = mkOption {
-      type = with lib.types; loaOf (submodule {
+      type = with lib.types; attrsOf (submodule {
         options.neededForBoot = mkOption {
           default = false;
           type = types.bool;
           description = ''
-            If set, this file system will be mounted in the initial
-            ramdisk.  By default, this applies to the root file system
-            and to the file system containing
-            <filename>/nix/store</filename>.
+            If set, this file system will be mounted in the initial ramdisk.
+            Note that the file system will always be mounted in the initial
+            ramdisk if its mount point is one of the following:
+            ${concatStringsSep ", " (
+              forEach utils.pathsNeededForBoot (i: "<filename>${i}</filename>")
+            )}.
           '';
         };
       });
diff --git a/nixpkgs/nixos/modules/system/boot/stage-2-init.sh b/nixpkgs/nixos/modules/system/boot/stage-2-init.sh
index d1de7920df98..936077b9df1e 100644
--- a/nixpkgs/nixos/modules/system/boot/stage-2-init.sh
+++ b/nixpkgs/nixos/modules/system/boot/stage-2-init.sh
@@ -169,4 +169,4 @@ exec {logOutFd}>&- {logErrFd}>&-
 echo "starting systemd..."
 PATH=/run/current-system/systemd/lib/systemd:@fsPackagesPath@ \
     LOCALE_ARCHIVE=/run/current-system/sw/lib/locale/locale-archive \
-    exec systemd
+    exec @systemdExecutable@
diff --git a/nixpkgs/nixos/modules/system/boot/stage-2.nix b/nixpkgs/nixos/modules/system/boot/stage-2.nix
index 6b0b47227301..dd6d83ee0094 100644
--- a/nixpkgs/nixos/modules/system/boot/stage-2.nix
+++ b/nixpkgs/nixos/modules/system/boot/stage-2.nix
@@ -10,6 +10,7 @@ let
     src = ./stage-2-init.sh;
     shellDebug = "${pkgs.bashInteractive}/bin/bash";
     shell = "${pkgs.bash}/bin/bash";
+    inherit (config.boot) systemdExecutable;
     isExecutable = true;
     inherit (config.nix) readOnlyStore;
     inherit useHostResolvConf;
@@ -72,6 +73,15 @@ in
         '';
       };
 
+      systemdExecutable = mkOption {
+        default = "systemd";
+        type = types.str;
+        description = ''
+          The program to execute to start systemd. Typically
+          <literal>systemd</literal>, which will find systemd in the
+          PATH.
+        '';
+      };
     };
 
   };
diff --git a/nixpkgs/nixos/modules/system/boot/systemd-nspawn.nix b/nixpkgs/nixos/modules/system/boot/systemd-nspawn.nix
index 06ea5ee49f72..b450d77429b2 100644
--- a/nixpkgs/nixos/modules/system/boot/systemd-nspawn.nix
+++ b/nixpkgs/nixos/modules/system/boot/systemd-nspawn.nix
@@ -113,9 +113,9 @@ in {
   config =
     let
       units = mapAttrs' (n: v: let nspawnFile = "${n}.nspawn"; in nameValuePair nspawnFile (instanceToUnit nspawnFile v)) cfg;
-    in 
+    in
       mkMerge [
-        (mkIf (cfg != {}) { 
+        (mkIf (cfg != {}) {
           environment.etc."systemd/nspawn".source = mkIf (cfg != {}) (generateUnits' false "nspawn" units [] []);
         })
         {
@@ -123,7 +123,7 @@ in {
 
           # Workaround for https://github.com/NixOS/nixpkgs/pull/67232#issuecomment-531315437 and https://github.com/systemd/systemd/issues/13622
           # Once systemd fixes this upstream, we can re-enable -U
-          systemd.services."systemd-nspawn@".serviceConfig.ExecStart = [ 
+          systemd.services."systemd-nspawn@".serviceConfig.ExecStart = [
             ""  # deliberately empty. signals systemd to override the ExecStart
             # Only difference between upstream is that we do not pass the -U flag
             "${config.systemd.package}/bin/systemd-nspawn --quiet --keep-unit --boot --link-journal=try-guest --network-veth --settings=override --machine=%i"
diff --git a/nixpkgs/nixos/modules/system/boot/systemd-unit-options.nix b/nixpkgs/nixos/modules/system/boot/systemd-unit-options.nix
index bee21f1a8f36..5addc6f9ca44 100644
--- a/nixpkgs/nixos/modules/system/boot/systemd-unit-options.nix
+++ b/nixpkgs/nixos/modules/system/boot/systemd-unit-options.nix
@@ -233,7 +233,7 @@ in rec {
 
     path = mkOption {
       default = [];
-      apply = ps: "${makeBinPath ps}:${makeSearchPathOutput "bin" "sbin" ps}";
+      type = with types; listOf (oneOf [ package str ]);
       description = ''
         Packages added to the service's <envar>PATH</envar>
         environment variable.  Both the <filename>bin</filename>
@@ -378,6 +378,16 @@ in rec {
       '';
     };
 
+    listenDatagrams = mkOption {
+      default = [];
+      type = types.listOf types.str;
+      example = [ "0.0.0.0:993" "/run/my-socket" ];
+      description = ''
+        For each item in this list, a <literal>ListenDatagram</literal>
+        option in the <literal>[Socket]</literal> section will be created.
+      '';
+    };
+
     socketConfig = mkOption {
       default = {};
       example = { ListenStream = "/run/my-socket"; };
diff --git a/nixpkgs/nixos/modules/system/boot/systemd.nix b/nixpkgs/nixos/modules/system/boot/systemd.nix
index f613edde0217..12a4e996fcae 100644
--- a/nixpkgs/nixos/modules/system/boot/systemd.nix
+++ b/nixpkgs/nixos/modules/system/boot/systemd.nix
@@ -25,7 +25,7 @@ let
       "nss-lookup.target"
       "nss-user-lookup.target"
       "time-sync.target"
-      #"cryptsetup.target"
+      "cryptsetup.target"
       "sigpwr.target"
       "timers.target"
       "paths.target"
@@ -73,7 +73,7 @@ let
       "systemd-journald.service"
       "systemd-journal-flush.service"
       "systemd-journal-catalog-update.service"
-      "systemd-journald-audit.socket"
+      ] ++ (optional (!config.boot.isContainer) "systemd-journald-audit.socket") ++ [
       "systemd-journald-dev-log.socket"
       "syslog.socket"
 
@@ -81,10 +81,6 @@ let
       "systemd-coredump.socket"
       "systemd-coredump@.service"
 
-      # SysV init compatibility.
-      "systemd-initctl.socket"
-      "systemd-initctl.service"
-
       # Kernel module loading.
       "systemd-modules-load.service"
       "kmod-static-nodes.service"
@@ -101,7 +97,7 @@ let
       "dev-hugepages.mount"
       "dev-mqueue.mount"
       "sys-fs-fuse-connections.mount"
-      "sys-kernel-config.mount"
+      ] ++ (optional (!config.boot.isContainer) "sys-kernel-config.mount") ++ [
       "sys-kernel-debug.mount"
 
       # Maintaining state across reboots.
@@ -261,7 +257,7 @@ let
               pkgs.gnused
               systemd
             ];
-          environment.PATH = config.path;
+          environment.PATH = "${makeBinPath config.path}:${makeSearchPathOutput "bin" "sbin" config.path}";
         }
         (mkIf (config.preStart != "")
           { serviceConfig.ExecStartPre =
@@ -354,6 +350,7 @@ let
           [Socket]
           ${attrsToSection def.socketConfig}
           ${concatStringsSep "\n" (map (s: "ListenStream=${s}") def.listenStreams)}
+          ${concatStringsSep "\n" (map (s: "ListenDatagram=${s}") def.listenDatagrams)}
         '';
     };
 
@@ -749,6 +746,25 @@ in
       '';
     };
 
+    systemd.tmpfiles.packages = mkOption {
+      type = types.listOf types.package;
+      default = [];
+      example = literalExample "[ pkgs.lvm2 ]";
+      apply = map getLib;
+      description = ''
+        List of packages containing <command>systemd-tmpfiles</command> rules.
+
+        All files ending in .conf found in
+        <filename><replaceable>pkg</replaceable>/lib/tmpfiles.d</filename>
+        will be included.
+        If this folder does not exist or does not contain any files an error will be returned instead.
+
+        If a <filename>lib</filename> output is available, rules are searched there and only there.
+        If there is no <filename>lib</filename> output it will fall back to <filename>out</filename>
+        and if that does not exist either, the default output will be used.
+      '';
+    };
+
     systemd.user.units = mkOption {
       description = "Definition of systemd per-user units.";
       default = {};
@@ -818,6 +834,49 @@ in
       '';
     };
 
+    systemd.watchdog.device = mkOption {
+      type = types.nullOr types.path;
+      default = null;
+      example = "/dev/watchdog";
+      description = ''
+        The path to a hardware watchdog device which will be managed by systemd.
+        If not specified, systemd will default to /dev/watchdog.
+      '';
+    };
+
+    systemd.watchdog.runtimeTime = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      example = "30s";
+      description = ''
+        The amount of time which can elapse before a watchdog hardware device
+        will automatically reboot the system. Valid time units include "ms",
+        "s", "min", "h", "d", and "w".
+      '';
+    };
+
+    systemd.watchdog.rebootTime = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      example = "10m";
+      description = ''
+        The amount of time which can elapse after a reboot has been triggered
+        before a watchdog hardware device will automatically reboot the system.
+        Valid time units include "ms", "s", "min", "h", "d", and "w".
+      '';
+    };
+
+    systemd.watchdog.kexecTime = mkOption {
+      type = types.nullOr types.str;
+      default = null;
+      example = "10m";
+      description = ''
+        The amount of time which can elapse when kexec is being executed before
+        a watchdog hardware device will automatically reboot the system. This
+        option should only be enabled if reloadTime is also enabled. Valid
+        time units include "ms", "s", "min", "h", "d", and "w".
+      '';
+    };
   };
 
 
@@ -844,11 +903,9 @@ in
       )
       ]);
       passwd = (mkMerge [
-        [ "mymachines" ]
         (mkAfter [ "systemd" ])
       ]);
       group = (mkMerge [
-        [ "mymachines" ]
         (mkAfter [ "systemd" ])
       ]);
     };
@@ -889,6 +946,19 @@ in
           DefaultIPAccounting=yes
         ''}
         DefaultLimitCORE=infinity
+        ${optionalString (config.systemd.watchdog.device != null) ''
+          WatchdogDevice=${config.systemd.watchdog.device}
+        ''}
+        ${optionalString (config.systemd.watchdog.runtimeTime != null) ''
+          RuntimeWatchdogSec=${config.systemd.watchdog.runtimeTime}
+        ''}
+        ${optionalString (config.systemd.watchdog.rebootTime != null) ''
+          RebootWatchdogSec=${config.systemd.watchdog.rebootTime}
+        ''}
+        ${optionalString (config.systemd.watchdog.kexecTime != null) ''
+          KExecWatchdogSec=${config.systemd.watchdog.kexecTime}
+        ''}
+
         ${config.systemd.extraConfig}
       '';
 
@@ -936,27 +1006,20 @@ in
       "sysctl.d/50-coredump.conf".source = "${systemd}/example/sysctl.d/50-coredump.conf";
       "sysctl.d/50-default.conf".source = "${systemd}/example/sysctl.d/50-default.conf";
 
-      "tmpfiles.d/00-nixos.conf".text = ''
-        # This file is created automatically and should not be modified.
-        # Please change the option ‘systemd.tmpfiles.rules’ instead.
-
-        ${concatStringsSep "\n" cfg.tmpfiles.rules}
-      '';
-
-      # home.conf creates /srv (which we don't want), and /home, which
-      # is handled by NixOS anyway.
-      # "tmpfiles.d/home.conf".source = "${systemd}/example/tmpfiles.d/home.conf";
-
-      "tmpfiles.d/journal-nocow.conf".source = "${systemd}/example/tmpfiles.d/journal-nocow.conf";
-      "tmpfiles.d/portables.conf".source = "${systemd}/example/tmpfiles.d/portables.conf";
-      "tmpfiles.d/static-nodes-permissions.conf".source = "${systemd}/example/tmpfiles.d/static-nodes-permissions.conf";
-      "tmpfiles.d/systemd.conf".source = "${systemd}/example/tmpfiles.d/systemd.conf";
-      "tmpfiles.d/systemd-nologin.conf".source = "${systemd}/example/tmpfiles.d/systemd-nologin.conf";
-      "tmpfiles.d/systemd-nspawn.conf".source = "${systemd}/example/tmpfiles.d/systemd-nspawn.conf";
-      "tmpfiles.d/systemd-tmp.conf".source = "${systemd}/example/tmpfiles.d/systemd-tmp.conf";
-      "tmpfiles.d/tmp.conf".source = "${systemd}/example/tmpfiles.d/tmp.conf";
-      "tmpfiles.d/var.conf".source = "${systemd}/example/tmpfiles.d/var.conf";
-      "tmpfiles.d/x11.conf".source = "${systemd}/example/tmpfiles.d/x11.conf";
+      "tmpfiles.d".source = (pkgs.symlinkJoin {
+        name = "tmpfiles.d";
+        paths = map (p: p + "/lib/tmpfiles.d") cfg.tmpfiles.packages;
+        postBuild = ''
+          for i in $(cat $pathsPath); do
+            (test -d "$i" && test $(ls "$i"/*.conf | wc -l) -ge 1) || (
+              echo "ERROR: The path '$i' from systemd.tmpfiles.packages contains no *.conf files."
+              exit 1
+            )
+          done
+        '' + concatMapStrings (name: optionalString (hasPrefix "tmpfiles.d/" name) ''
+          rm -f $out/${removePrefix "tmpfiles.d/" name}
+        '') config.system.build.etc.targets;
+      }) + "/*";
 
       "systemd/system-generators" = { source = hooks "generators" cfg.generators; };
       "systemd/system-shutdown" = { source = hooks "shutdown" cfg.shutdown; };
@@ -977,6 +1040,38 @@ in
         unitConfig.X-StopOnReconfiguration = true;
       };
 
+    systemd.tmpfiles.packages = [
+      # Default tmpfiles rules provided by systemd
+      (pkgs.runCommand "systemd-default-tmpfiles" {} ''
+        mkdir -p $out/lib/tmpfiles.d
+        cd $out/lib/tmpfiles.d
+
+        # home.conf creates /srv (which we don't want), and /home, which
+        # is handled by NixOS anyway.
+        # ln -s "${systemd}/example/tmpfiles.d/home.conf"
+        ln -s "${systemd}/example/tmpfiles.d/journal-nocow.conf"
+        ln -s "${systemd}/example/tmpfiles.d/static-nodes-permissions.conf"
+        ln -s "${systemd}/example/tmpfiles.d/systemd.conf"
+        ln -s "${systemd}/example/tmpfiles.d/systemd-nologin.conf"
+        ln -s "${systemd}/example/tmpfiles.d/systemd-nspawn.conf"
+        ln -s "${systemd}/example/tmpfiles.d/systemd-tmp.conf"
+        ln -s "${systemd}/example/tmpfiles.d/tmp.conf"
+        ln -s "${systemd}/example/tmpfiles.d/var.conf"
+        ln -s "${systemd}/example/tmpfiles.d/x11.conf"
+      '')
+      # User-specified tmpfiles rules
+      (pkgs.writeTextFile {
+        name = "nixos-tmpfiles.d";
+        destination = "/lib/tmpfiles.d/00-nixos.conf";
+        text = ''
+          # This file is created automatically and should not be modified.
+          # Please change the option ‘systemd.tmpfiles.rules’ instead.
+
+          ${concatStringsSep "\n" cfg.tmpfiles.rules}
+        '';
+      })
+    ];
+
     systemd.units =
          mapAttrs' (n: v: nameValuePair "${n}.path"    (pathToUnit    n v)) cfg.paths
       // mapAttrs' (n: v: nameValuePair "${n}.service" (serviceToUnit n v)) cfg.services
diff --git a/nixpkgs/nixos/modules/system/boot/tmp.nix b/nixpkgs/nixos/modules/system/boot/tmp.nix
index 5bf5e2eb2ec5..26eb172210e7 100644
--- a/nixpkgs/nixos/modules/system/boot/tmp.nix
+++ b/nixpkgs/nixos/modules/system/boot/tmp.nix
@@ -36,4 +36,4 @@ with lib;
 
   };
 
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/nixos/modules/system/etc/etc.nix b/nixpkgs/nixos/modules/system/etc/etc.nix
index 1f4d54a1ae20..7478e3e80717 100644
--- a/nixpkgs/nixos/modules/system/etc/etc.nix
+++ b/nixpkgs/nixos/modules/system/etc/etc.nix
@@ -46,7 +46,7 @@ in
         Set of files that have to be linked in <filename>/etc</filename>.
       '';
 
-      type = with types; loaOf (submodule (
+      type = with types; attrsOf (submodule (
         { name, config, ... }:
         { options = {
 
diff --git a/nixpkgs/nixos/modules/system/etc/make-etc.sh b/nixpkgs/nixos/modules/system/etc/make-etc.sh
index 1ca4c3046f0e..aabfb5e88a65 100644
--- a/nixpkgs/nixos/modules/system/etc/make-etc.sh
+++ b/nixpkgs/nixos/modules/system/etc/make-etc.sh
@@ -23,7 +23,7 @@ for ((i = 0; i < ${#targets_[@]}; i++)); do
         done
 
     else
-        
+
         mkdir -p $out/etc/$(dirname $target)
         if ! [ -e $out/etc/$target ]; then
             ln -s $source $out/etc/$target
@@ -34,13 +34,12 @@ for ((i = 0; i < ${#targets_[@]}; i++)); do
                 exit 1
             fi
         fi
-        
+
         if test "${modes_[$i]}" != symlink; then
             echo "${modes_[$i]}"  > $out/etc/$target.mode
             echo "${users_[$i]}"  > $out/etc/$target.uid
             echo "${groups_[$i]}" > $out/etc/$target.gid
         fi
-        
+
     fi
 done
-
diff --git a/nixpkgs/nixos/modules/tasks/auto-upgrade.nix b/nixpkgs/nixos/modules/tasks/auto-upgrade.nix
index e70004e643e1..69385e5f2fe0 100644
--- a/nixpkgs/nixos/modules/tasks/auto-upgrade.nix
+++ b/nixpkgs/nixos/modules/tasks/auto-upgrade.nix
@@ -2,9 +2,9 @@
 
 with lib;
 
-let cfg = config.system.autoUpgrade; in
+let cfg = config.system.autoUpgrade;
 
-{
+in {
 
   options = {
 
@@ -21,6 +21,16 @@ let cfg = config.system.autoUpgrade; in
         '';
       };
 
+      flake = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        example = "github:kloenk/nix";
+        description = ''
+          The Flake URI of the NixOS configuration to build.
+          Disables the option <option>system.autoUpgrade.channel</option>.
+        '';
+      };
+
       channel = mkOption {
         type = types.nullOr types.str;
         default = null;
@@ -35,10 +45,20 @@ let cfg = config.system.autoUpgrade; in
 
       flags = mkOption {
         type = types.listOf types.str;
-        default = [];
-        example = [ "-I" "stuff=/home/alice/nixos-stuff" "--option" "extra-binary-caches" "http://my-cache.example.org/" ];
+        default = [ ];
+        example = [
+          "-I"
+          "stuff=/home/alice/nixos-stuff"
+          "--option"
+          "extra-binary-caches"
+          "http://my-cache.example.org/"
+        ];
         description = ''
           Any additional flags passed to <command>nixos-rebuild</command>.
+
+          If you are using flakes and use a local repo you can add
+          <command>[ "--update-input" "nixpkgs" "--commit-lock-file" ]</command>
+          to update nixpkgs.
         '';
       };
 
@@ -82,11 +102,23 @@ let cfg = config.system.autoUpgrade; in
 
   config = lib.mkIf cfg.enable {
 
-    system.autoUpgrade.flags =
-      [ "--no-build-output" ]
-      ++ (if cfg.channel == null
-          then [ "--upgrade" ]
-          else [ "-I" "nixpkgs=${cfg.channel}/nixexprs.tar.xz" ]);
+    assertions = [{
+      assertion = !((cfg.channel != null) && (cfg.flake != null));
+      message = ''
+        The options 'system.autoUpgrade.channels' and 'system.autoUpgrade.flake' cannot both be set.
+      '';
+    }];
+
+    system.autoUpgrade.flags = [ "--no-build-output" ]
+      ++ (if cfg.flake == null then
+        (if cfg.channel == null then
+          [ "--upgrade" ]
+        else [
+          "-I"
+          "nixpkgs=${cfg.channel}/nixexprs.tar.xz"
+        ])
+      else
+        [ "--flake ${cfg.flake}" ]);
 
     systemd.services.nixos-upgrade = {
       description = "NixOS Upgrade";
@@ -96,33 +128,41 @@ let cfg = config.system.autoUpgrade; in
 
       serviceConfig.Type = "oneshot";
 
-      environment = config.nix.envVars //
-        { inherit (config.environment.sessionVariables) NIX_PATH;
-          HOME = "/root";
-        } // config.networking.proxy.envVars;
+      environment = config.nix.envVars // {
+        inherit (config.environment.sessionVariables) NIX_PATH;
+        HOME = "/root";
+      } // config.networking.proxy.envVars;
 
-      path = with pkgs; [ coreutils gnutar xz.bin gzip gitMinimal config.nix.package.out ];
+      path = with pkgs; [
+        coreutils
+        gnutar
+        xz.bin
+        gzip
+        gitMinimal
+        config.nix.package.out
+      ];
 
       script = let
-          nixos-rebuild = "${config.system.build.nixos-rebuild}/bin/nixos-rebuild";
-        in
-        if cfg.allowReboot then ''
-            ${nixos-rebuild} boot ${toString cfg.flags}
-            booted="$(readlink /run/booted-system/{initrd,kernel,kernel-modules})"
-            built="$(readlink /nix/var/nix/profiles/system/{initrd,kernel,kernel-modules})"
-            if [ "$booted" = "$built" ]; then
-              ${nixos-rebuild} switch ${toString cfg.flags}
-            else
-              /run/current-system/sw/bin/shutdown -r +1
-            fi
-          '' else ''
-            ${nixos-rebuild} switch ${toString cfg.flags}
-        '';
+        nixos-rebuild =
+          "${config.system.build.nixos-rebuild}/bin/nixos-rebuild";
+      in if cfg.allowReboot then ''
+        ${nixos-rebuild} boot ${toString cfg.flags}
+        booted="$(readlink /run/booted-system/{initrd,kernel,kernel-modules})"
+        built="$(readlink /nix/var/nix/profiles/system/{initrd,kernel,kernel-modules})"
+        if [ "$booted" = "$built" ]; then
+          ${nixos-rebuild} switch ${toString cfg.flags}
+        else
+          /run/current-system/sw/bin/shutdown -r +1
+        fi
+      '' else ''
+        ${nixos-rebuild} switch ${toString cfg.flags}
+      '';
 
       startAt = cfg.dates;
     };
 
-    systemd.timers.nixos-upgrade.timerConfig.RandomizedDelaySec = cfg.randomizedDelaySec;
+    systemd.timers.nixos-upgrade.timerConfig.RandomizedDelaySec =
+      cfg.randomizedDelaySec;
 
   };
 
diff --git a/nixpkgs/nixos/modules/tasks/bcache.nix b/nixpkgs/nixos/modules/tasks/bcache.nix
index 8bab91c721fd..41fb7664f3d1 100644
--- a/nixpkgs/nixos/modules/tasks/bcache.nix
+++ b/nixpkgs/nixos/modules/tasks/bcache.nix
@@ -8,6 +8,6 @@
 
   boot.initrd.extraUdevRulesCommands = ''
     cp -v ${pkgs.bcache-tools}/lib/udev/rules.d/*.rules $out/
-  ''; 
+  '';
 
 }
diff --git a/nixpkgs/nixos/modules/tasks/encrypted-devices.nix b/nixpkgs/nixos/modules/tasks/encrypted-devices.nix
index bc0933f16fec..dd337de98698 100644
--- a/nixpkgs/nixos/modules/tasks/encrypted-devices.nix
+++ b/nixpkgs/nixos/modules/tasks/encrypted-devices.nix
@@ -37,7 +37,14 @@ let
         default = null;
         example = "/mnt-root/root/.swapkey";
         type = types.nullOr types.str;
-        description = "File system location of keyfile. This unlocks the drive after the root has been mounted to <literal>/mnt-root</literal>.";
+        description = ''
+          Path to a keyfile used to unlock the backing encrypted
+          device. At the time this keyfile is accessed, the
+          <literal>neededForBoot</literal> filesystems (see
+          <literal>fileSystems.&lt;name?&gt;.neededForBoot</literal>)
+          will have been mounted under <literal>/mnt-root</literal>,
+          so the keyfile path should usually start with "/mnt-root/".
+        '';
       };
     };
   };
@@ -47,7 +54,7 @@ in
 
   options = {
     fileSystems = mkOption {
-      type = with lib.types; loaOf (submodule encryptedFSOptions);
+      type = with lib.types; attrsOf (submodule encryptedFSOptions);
     };
     swapDevices = mkOption {
       type = with lib.types; listOf (submodule encryptedFSOptions);
@@ -65,12 +72,16 @@ in
     boot.initrd = {
       luks = {
         devices =
-          builtins.listToAttrs (map (dev: { name = dev.encrypted.label; value = { device = dev.encrypted.blkDev; }; }) keylessEncDevs);
+          builtins.listToAttrs (map (dev: {
+            name = dev.encrypted.label;
+            value = { device = dev.encrypted.blkDev; };
+          }) keylessEncDevs);
         forceLuksSupportInInitrd = true;
       };
       postMountCommands =
-        concatMapStrings (dev: "cryptsetup luksOpen --key-file ${dev.encrypted.keyFile} ${dev.encrypted.blkDev} ${dev.encrypted.label};\n") keyedEncDevs;
+        concatMapStrings (dev:
+          "cryptsetup luksOpen --key-file ${dev.encrypted.keyFile} ${dev.encrypted.blkDev} ${dev.encrypted.label};\n"
+        ) keyedEncDevs;
     };
   };
 }
-
diff --git a/nixpkgs/nixos/modules/tasks/filesystems.nix b/nixpkgs/nixos/modules/tasks/filesystems.nix
index 0ade74b957a0..3ea67dac7146 100644
--- a/nixpkgs/nixos/modules/tasks/filesystems.nix
+++ b/nixpkgs/nixos/modules/tasks/filesystems.nix
@@ -159,7 +159,7 @@ in
           "/bigdisk".label = "bigdisk";
         }
       '';
-      type = types.loaOf (types.submodule [coreFileSystemOpts fileSystemOpts]);
+      type = types.attrsOf (types.submodule [coreFileSystemOpts fileSystemOpts]);
       description = ''
         The file systems to be mounted.  It must include an entry for
         the root directory (<literal>mountPoint = "/"</literal>).  Each
@@ -193,7 +193,7 @@ in
 
     boot.specialFileSystems = mkOption {
       default = {};
-      type = types.loaOf (types.submodule coreFileSystemOpts);
+      type = types.attrsOf (types.submodule coreFileSystemOpts);
       internal = true;
       description = ''
         Special filesystems that are mounted very early during boot.
diff --git a/nixpkgs/nixos/modules/tasks/filesystems/btrfs.nix b/nixpkgs/nixos/modules/tasks/filesystems/btrfs.nix
index f64493e1a3c7..c0ff28039b16 100644
--- a/nixpkgs/nixos/modules/tasks/filesystems/btrfs.nix
+++ b/nixpkgs/nixos/modules/tasks/filesystems/btrfs.nix
@@ -128,7 +128,10 @@ in
             Nice = 19;
             IOSchedulingClass = "idle";
             ExecStart = "${pkgs.btrfs-progs}/bin/btrfs scrub start -B ${fs}";
-            ExecStop  = "${pkgs.btrfs-progs}/bin/btrfs scrub cancel ${fs}";
+            # if the service is stopped before scrub end, cancel it
+            ExecStop  = pkgs.writeShellScript "btrfs-scrub-maybe-cancel" ''
+              (${pkgs.btrfs-progs}/bin/btrfs scrub status ${fs} | ${pkgs.gnugrep}/bin/grep finished) || ${pkgs.btrfs-progs}/bin/btrfs scrub cancel ${fs}
+            '';
           };
         };
       in listToAttrs (map scrubService cfgScrub.fileSystems);
diff --git a/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix b/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
index 71eed4d6f1a4..9ca7c6fb3431 100644
--- a/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
+++ b/nixpkgs/nixos/modules/tasks/filesystems/zfs.nix
@@ -191,15 +191,14 @@ in
       };
 
       requestEncryptionCredentials = mkOption {
-        type = types.bool;
+        type = types.either types.bool (types.listOf types.str);
         default = true;
+        example = [ "tank" "data" ];
         description = ''
-          Request encryption keys or passwords for all encrypted datasets on import.
-          For root pools the encryption key can be supplied via both an
-          interactive prompt (keylocation=prompt) and from a file
-          (keylocation=file://). Note that for data pools the encryption key can
-          be only loaded from a file and not via interactive prompt since the
-          import is processed in a background systemd service.
+          If true on import encryption keys or passwords for all encrypted datasets
+          are requested. To only decrypt selected datasets supply a list of dataset
+          names instead. For root pools the encryption key can be supplied via both
+          an interactive prompt (keylocation=prompt) and from a file (keylocation=file://).
         '';
       };
 
@@ -421,9 +420,13 @@ in
               fi
               poolImported "${pool}" || poolImport "${pool}"  # Try one last time, e.g. to import a degraded pool.
             fi
-            ${lib.optionalString cfgZfs.requestEncryptionCredentials ''
-              zfs load-key -a
-            ''}
+            ${if isBool cfgZfs.requestEncryptionCredentials
+              then optionalString cfgZfs.requestEncryptionCredentials ''
+                zfs load-key -a
+              ''
+              else concatMapStrings (fs: ''
+                zfs load-key ${fs}
+              '') cfgZfs.requestEncryptionCredentials}
         '') rootPools));
       };
 
@@ -490,7 +493,11 @@ in
             description = "Import ZFS pool \"${pool}\"";
             # we need systemd-udev-settle until https://github.com/zfsonlinux/zfs/pull/4943 is merged
             requires = [ "systemd-udev-settle.service" ];
-            after = [ "systemd-udev-settle.service" "systemd-modules-load.service" ];
+            after = [
+              "systemd-udev-settle.service"
+              "systemd-modules-load.service"
+              "systemd-ask-password-console.service"
+            ];
             wantedBy = (getPoolMounts pool) ++ [ "local-fs.target" ];
             before = (getPoolMounts pool) ++ [ "local-fs.target" ];
             unitConfig = {
@@ -515,7 +522,27 @@ in
               done
               poolImported "${pool}" || poolImport "${pool}"  # Try one last time, e.g. to import a degraded pool.
               if poolImported "${pool}"; then
-                ${optionalString cfgZfs.requestEncryptionCredentials "\"${packages.zfsUser}/sbin/zfs\" load-key -r \"${pool}\""}
+                ${optionalString (if isBool cfgZfs.requestEncryptionCredentials
+                                  then cfgZfs.requestEncryptionCredentials
+                                  else cfgZfs.requestEncryptionCredentials != []) ''
+                  ${packages.zfsUser}/sbin/zfs list -rHo name,keylocation ${pool} | while IFS=$'\t' read ds kl; do
+                    (${optionalString (!isBool cfgZfs.requestEncryptionCredentials) ''
+                         if ! echo '${concatStringsSep "\n" cfgZfs.requestEncryptionCredentials}' | grep -qFx "$ds"; then
+                           continue
+                         fi
+                       ''}
+                    case "$kl" in
+                      none )
+                        ;;
+                      prompt )
+                        ${config.systemd.package}/bin/systemd-ask-password "Enter key for $ds:" | ${packages.zfsUser}/sbin/zfs load-key "$ds"
+                        ;;
+                      * )
+                        ${packages.zfsUser}/sbin/zfs load-key "$ds"
+                        ;;
+                    esac) < /dev/null # To protect while read ds kl in case anything reads stdin
+                  done
+                ''}
                 echo "Successfully imported ${pool}"
               else
                 exit 1
diff --git a/nixpkgs/nixos/modules/tasks/lvm.nix b/nixpkgs/nixos/modules/tasks/lvm.nix
index d56a8a2f63a8..2c3cc4c5467d 100644
--- a/nixpkgs/nixos/modules/tasks/lvm.nix
+++ b/nixpkgs/nixos/modules/tasks/lvm.nix
@@ -1,17 +1,70 @@
 { config, lib, pkgs, ... }:
 
 with lib;
+let
+  cfg = config.services.lvm;
+in {
+  options.services.lvm = {
+    package = mkOption {
+      type = types.package;
+      default = if cfg.dmeventd.enable then pkgs.lvm2_dmeventd else pkgs.lvm2;
+      internal = true;
+      defaultText = "pkgs.lvm2";
+      description = ''
+        This option allows you to override the LVM package that's used on the system
+        (udev rules, tmpfiles, systemd services).
+        Defaults to pkgs.lvm2, or pkgs.lvm2_dmeventd if dmeventd is enabled.
+      '';
+    };
+    dmeventd.enable = mkEnableOption "the LVM dmevent daemon";
+    boot.thin.enable = mkEnableOption "support for booting from ThinLVs";
+  };
 
-{
-
-  ###### implementation
+  config = mkMerge [
+    (mkIf (!config.boot.isContainer) {
+      systemd.tmpfiles.packages = [ cfg.package.out ];
+      environment.systemPackages = [ cfg.package ];
+      systemd.packages = [ cfg.package ];
 
-  config = mkIf (!config.boot.isContainer) {
+      # TODO: update once https://github.com/NixOS/nixpkgs/pull/93006 was merged
+      services.udev.packages = [ cfg.package.out ];
+    })
+    (mkIf cfg.dmeventd.enable {
+      systemd.sockets."dm-event".wantedBy = [ "sockets.target" ];
+      systemd.services."lvm2-monitor".wantedBy = [ "sysinit.target" ];
 
-    environment.systemPackages = [ pkgs.lvm2 ];
+      environment.etc."lvm/lvm.conf".text = ''
+        dmeventd/executable = "${cfg.package}/bin/dmeventd"
+      '';
+    })
+    (mkIf cfg.boot.thin.enable {
+      boot.initrd = {
+        kernelModules = [ "dm-snapshot" "dm-thin-pool" ];
 
-    services.udev.packages = [ pkgs.lvm2 ];
+        extraUtilsCommands = ''
+          copy_bin_and_libs ${pkgs.thin-provisioning-tools}/bin/pdata_tools
+          copy_bin_and_libs ${pkgs.thin-provisioning-tools}/bin/thin_check
+        '';
+      };
 
-  };
+      environment.etc."lvm/lvm.conf".text = ''
+        global/thin_check_executable = "${pkgs.thin-provisioning-tools}/bin/thin_check"
+      '';
+    })
+    (mkIf (cfg.dmeventd.enable || cfg.boot.thin.enable) {
+      boot.initrd.preLVMCommands = ''
+          mkdir -p /etc/lvm
+          cat << EOF >> /etc/lvm/lvm.conf
+          ${optionalString cfg.boot.thin.enable ''
+            global/thin_check_executable = "$(command -v thin_check)"
+          ''}
+          ${optionalString cfg.dmeventd.enable ''
+            dmeventd/executable = "$(command -v false)"
+            activation/monitoring = 0
+          ''}
+          EOF
+      '';
+    })
+  ];
 
 }
diff --git a/nixpkgs/nixos/modules/tasks/network-interfaces-scripted.nix b/nixpkgs/nixos/modules/tasks/network-interfaces-scripted.nix
index 2e87197176b6..9ba6ccfbe716 100644
--- a/nixpkgs/nixos/modules/tasks/network-interfaces-scripted.nix
+++ b/nixpkgs/nixos/modules/tasks/network-interfaces-scripted.nix
@@ -253,8 +253,8 @@ let
 
         createTunDevice = i: nameValuePair "${i.name}-netdev"
           { description = "Virtual Network Interface ${i.name}";
-            bindsTo = [ "dev-net-tun.device" ];
-            after = [ "dev-net-tun.device" "network-pre.target" ];
+            bindsTo = optional (!config.boot.isContainer) "dev-net-tun.device";
+            after = optional (!config.boot.isContainer) "dev-net-tun.device" ++ [ "network-pre.target" ];
             wantedBy = [ "network-setup.service" (subsystemDevice i.name) ];
             partOf = [ "network-setup.service" ];
             before = [ "network-setup.service" ];
diff --git a/nixpkgs/nixos/modules/tasks/network-interfaces.nix b/nixpkgs/nixos/modules/tasks/network-interfaces.nix
index 78d669669499..c0e4d3979fda 100644
--- a/nixpkgs/nixos/modules/tasks/network-interfaces.nix
+++ b/nixpkgs/nixos/modules/tasks/network-interfaces.nix
@@ -408,6 +408,9 @@ in
         (this derives it from the machine-id that systemd generates) or
 
         <literal>head -c4 /dev/urandom | od -A none -t x4</literal>
+
+        The primary use case is to ensure when using ZFS that a pool isn't imported
+        accidentally on a wrong machine.
       '';
     };
 
@@ -516,7 +519,7 @@ in
         <option>networking.useDHCP</option> is true, then every
         interface not listed here will be configured using DHCP.
       '';
-      type = with types; loaOf (submodule interfaceOpts);
+      type = with types; attrsOf (submodule interfaceOpts);
     };
 
     networking.vswitches = mkOption {
@@ -541,7 +544,7 @@ in
           interfaces = mkOption {
             example = [ "eth0" "eth1" ];
             description = "The physical network interfaces connected by the vSwitch.";
-            type = with types; loaOf (submodule vswitchInterfaceOpts);
+            type = with types; attrsOf (submodule vswitchInterfaceOpts);
           };
 
           controllers = mkOption {
@@ -1126,7 +1129,6 @@ in
       ++ optionals config.networking.wireless.enable [
         pkgs.wirelesstools # FIXME: obsolete?
         pkgs.iw
-        pkgs.rfkill
       ]
       ++ bridgeStp;
 
diff --git a/nixpkgs/nixos/modules/testing/test-instrumentation.nix b/nixpkgs/nixos/modules/testing/test-instrumentation.nix
index 1baeab53b0c2..c0ec76e8a3a3 100644
--- a/nixpkgs/nixos/modules/testing/test-instrumentation.nix
+++ b/nixpkgs/nixos/modules/testing/test-instrumentation.nix
@@ -1,22 +1,13 @@
 # This module allows the test driver to connect to the virtual machine
 # via a root shell attached to port 514.
 
-{ config, lib, pkgs, ... }:
+{ options, config, lib, pkgs, ... }:
 
 with lib;
 with import ../../lib/qemu-flags.nix { inherit pkgs; };
 
 {
 
-  # This option is a dummy that if used in conjunction with
-  # modules/virtualisation/qemu-vm.nix gets merged with the same option defined
-  # there and only is declared here because some modules use
-  # test-instrumentation.nix but not qemu-vm.nix.
-  #
-  # One particular example are the boot tests where we want instrumentation
-  # within the images but not other stuff like setting up 9p filesystems.
-  options.virtualisation.qemu = { };
-
   config = {
 
     systemd.services.backdoor =
@@ -55,7 +46,12 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
     systemd.services."serial-getty@hvc0".enable = false;
 
     # Only use a serial console, no TTY.
-    virtualisation.qemu.consoles = [ qemuSerialDevice ];
+    # NOTE: optionalAttrs
+    #       test-instrumentation.nix appears to be used without qemu-vm.nix, so
+    #       we avoid defining consoles if not possible.
+    # TODO: refactor such that test-instrumentation can import qemu-vm
+    #       or declare virtualisation.qemu.console option in a module that's always imported
+    virtualisation = lib.optionalAttrs (options ? virtualisation.qemu.consoles) { qemu.consoles = [ qemuSerialDevice ]; };
 
     boot.initrd.preDeviceCommands =
       ''
@@ -78,15 +74,8 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
         # OOM killer randomly get rid of processes, since this leads
         # to failures that are hard to diagnose.
         echo 2 > /proc/sys/vm/panic_on_oom
-
-        # Coverage data is written into /tmp/coverage-data.
-        mkdir -p /tmp/xchg/coverage-data
       '';
 
-    # If the kernel has been built with coverage instrumentation, make
-    # it available under /proc/gcov.
-    boot.kernelModules = [ "gcov-proc" ];
-
     # Panic if an error occurs in stage 1 (rather than waiting for
     # user intervention).
     boot.kernelParams =
@@ -115,8 +104,6 @@ with import ../../lib/qemu-flags.nix { inherit pkgs; };
     networking.defaultGateway = mkOverride 150 "";
     networking.nameservers = mkOverride 150 [ ];
 
-    systemd.globalEnvironment.GCOV_PREFIX = "/tmp/xchg/coverage-data";
-
     system.requiredKernelConfig = with config.lib.kernelConfig; [
       (isYes "SERIAL_8250_CONSOLE")
       (isYes "SERIAL_8250")
diff --git a/nixpkgs/nixos/modules/virtualisation/azure-image.nix b/nixpkgs/nixos/modules/virtualisation/azure-image.nix
index 21fd58e5c902..60fed3222ef3 100644
--- a/nixpkgs/nixos/modules/virtualisation/azure-image.nix
+++ b/nixpkgs/nixos/modules/virtualisation/azure-image.nix
@@ -6,7 +6,7 @@ let
 in
 {
   imports = [ ./azure-common.nix ];
-  
+
   options = {
     virtualisation.azureImage.diskSize = mkOption {
       type = with types; int;
diff --git a/nixpkgs/nixos/modules/virtualisation/containers.nix b/nixpkgs/nixos/modules/virtualisation/containers.nix
index 7d184575640b..997edf77ba99 100644
--- a/nixpkgs/nixos/modules/virtualisation/containers.nix
+++ b/nixpkgs/nixos/modules/virtualisation/containers.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, utils, ... }:
 let
   cfg = config.virtualisation.containers;
 
@@ -13,16 +13,21 @@ let
     json2toml "$valuePath" "$out"
   '';
 
-  # Copy configuration files to avoid having the entire sources in the system closure
-  copyFile = filePath: pkgs.runCommandNoCC (builtins.unsafeDiscardStringContext (builtins.baseNameOf filePath)) {} ''
-    cp ${filePath} $out
-  '';
 in
 {
   meta = {
     maintainers = [] ++ lib.teams.podman.members;
   };
 
+
+  imports = [
+    (
+      lib.mkRemovedOptionModule
+      [ "virtualisation" "containers" "users" ]
+      "All users with `isNormalUser = true` set now get appropriate subuid/subgid mappings."
+    )
+  ];
+
   options.virtualisation.containers = {
 
     enable =
@@ -34,6 +39,31 @@ in
         '';
       };
 
+    ociSeccompBpfHook.enable = mkOption {
+      type = types.bool;
+      default = false;
+      description = "Enable the OCI seccomp BPF hook";
+    };
+
+    containersConf = mkOption {
+      default = {};
+      description = "containers.conf configuration";
+      type = types.submodule {
+        options = {
+
+          extraConfig = mkOption {
+            type = types.lines;
+            default = "";
+            description = ''
+              Extra configuration that should be put in the containers.conf
+              configuration file
+            '';
+
+          };
+        };
+      };
+    };
+
     registries = {
       search = mkOption {
         type = types.listOf types.str;
@@ -80,46 +110,29 @@ in
       '';
     };
 
-    users = mkOption {
-      default = [];
-      type = types.listOf types.str;
-      description = ''
-        List of users to set up subuid/subgid mappings for.
-        This is a requirement for running rootless containers.
-      '';
-    };
-
   };
 
   config = lib.mkIf cfg.enable {
 
+    environment.etc."containers/containers.conf".text = ''
+      [network]
+      cni_plugin_dirs = ["${pkgs.cni-plugins}/bin/"]
+
+      ${lib.optionalString (cfg.ociSeccompBpfHook.enable == true) ''
+      [engine]
+      hooks_dir = [
+        "${config.boot.kernelPackages.oci-seccomp-bpf-hook}",
+      ]
+      ''}
+    '' + cfg.containersConf.extraConfig;
+
     environment.etc."containers/registries.conf".source = toTOML "registries.conf" {
       registries = lib.mapAttrs (n: v: { registries = v; }) cfg.registries;
     };
 
-    users.extraUsers = builtins.listToAttrs (
-      (
-        builtins.foldl' (
-          acc: user: {
-            values = acc.values ++ [
-              {
-                name = user;
-                value = {
-                  subUidRanges = [ { startUid = acc.offset; count = 65536; } ];
-                  subGidRanges = [ { startGid = acc.offset; count = 65536; } ];
-                };
-              }
-            ];
-            offset = acc.offset + 65536;
-          }
-        )
-        { values = []; offset = 100000; } (lib.unique cfg.users)
-      ).values
-    );
-
     environment.etc."containers/policy.json".source =
       if cfg.policy != {} then pkgs.writeText "policy.json" (builtins.toJSON cfg.policy)
-      else copyFile "${pkgs.skopeo.src}/default-policy.json";
+      else utils.copyFile "${pkgs.skopeo.src}/default-policy.json";
   };
 
 }
diff --git a/nixpkgs/nixos/modules/virtualisation/cri-o.nix b/nixpkgs/nixos/modules/virtualisation/cri-o.nix
index f267c97b1788..aa416e7990a8 100644
--- a/nixpkgs/nixos/modules/virtualisation/cri-o.nix
+++ b/nixpkgs/nixos/modules/virtualisation/cri-o.nix
@@ -1,16 +1,11 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, utils, ... }:
 
 with lib;
-
 let
   cfg = config.virtualisation.cri-o;
 
   crioPackage = (pkgs.cri-o.override { inherit (cfg) extraPackages; });
 
-  # Copy configuration files to avoid having the entire sources in the system closure
-  copyFile = filePath: pkgs.runCommandNoCC (builtins.unsafeDiscardStringContext (builtins.baseNameOf filePath)) {} ''
-    cp ${filePath} $out
-  '';
 in
 {
   imports = [
@@ -78,14 +73,21 @@ in
         The final CRI-O package (including extra packages).
       '';
     };
+
+    networkDir = mkOption {
+      type = types.nullOr types.path;
+      default = null;
+      description = "Override the network_dir option.";
+      internal = true;
+    };
   };
 
   config = mkIf cfg.enable {
     environment.systemPackages = [ cfg.package pkgs.cri-tools ];
 
-    environment.etc."crictl.yaml".source = copyFile "${pkgs.cri-o-unwrapped.src}/crictl.yaml";
+    environment.etc."crictl.yaml".source = utils.copyFile "${pkgs.cri-o-unwrapped.src}/crictl.yaml";
 
-    environment.etc."crio/crio.conf".text = ''
+    environment.etc."crio/crio.conf.d/00-default.conf".text = ''
       [crio]
       storage_driver = "${cfg.storageDriver}"
 
@@ -95,11 +97,13 @@ in
 
       [crio.network]
       plugin_dirs = ["${pkgs.cni-plugins}/bin/"]
+      ${optionalString (cfg.networkDir != null) ''network_dir = "${cfg.networkDir}"''}
 
       [crio.runtime]
       cgroup_manager = "systemd"
       log_level = "${cfg.logLevel}"
-      manage_ns_lifecycle = true
+      pinns_path = "${cfg.package}/bin/pinns"
+      hooks_dir = []
 
       ${optionalString (cfg.runtime != null) ''
       default_runtime = "${cfg.runtime}"
@@ -108,7 +112,8 @@ in
       ''}
     '';
 
-    environment.etc."cni/net.d/10-crio-bridge.conf".source = copyFile "${pkgs.cri-o-unwrapped.src}/contrib/cni/10-crio-bridge.conf";
+    environment.etc."cni/net.d/10-crio-bridge.conf".source = utils.copyFile "${pkgs.cri-o-unwrapped.src}/contrib/cni/10-crio-bridge.conf";
+    environment.etc."cni/net.d/99-loopback.conf".source = utils.copyFile "${pkgs.cri-o-unwrapped.src}/contrib/cni/99-loopback.conf";
 
     # Enable common /etc/containers configuration
     virtualisation.containers.enable = true;
diff --git a/nixpkgs/nixos/modules/virtualisation/docker-preloader.nix b/nixpkgs/nixos/modules/virtualisation/docker-preloader.nix
deleted file mode 100644
index 6ab83058dee1..000000000000
--- a/nixpkgs/nixos/modules/virtualisation/docker-preloader.nix
+++ /dev/null
@@ -1,134 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-with builtins;
-
-let
-  cfg = config.virtualisation;
-
-  sanitizeImageName = image: replaceStrings ["/"] ["-"] image.imageName;
-  hash = drv: head (split "-" (baseNameOf drv.outPath));
-  # The label of an ext4 FS is limited to 16 bytes
-  labelFromImage = image: substring 0 16 (hash image);
-
-  # The Docker image is loaded and some files from /var/lib/docker/
-  # are written into a qcow image.
-  preload = image: pkgs.vmTools.runInLinuxVM (
-    pkgs.runCommand "docker-preload-image-${sanitizeImageName image}" {
-      buildInputs = with pkgs; [ docker e2fsprogs utillinux curl kmod ];
-      preVM = pkgs.vmTools.createEmptyImage {
-        size = cfg.dockerPreloader.qcowSize;
-        fullName = "docker-deamon-image.qcow2";
-      };
-    }
-    ''
-      mkfs.ext4 /dev/vda
-      e2label /dev/vda ${labelFromImage image}
-      mkdir -p /var/lib/docker
-      mount -t ext4 /dev/vda /var/lib/docker
-
-      modprobe overlay
-
-      # from https://github.com/tianon/cgroupfs-mount/blob/master/cgroupfs-mount
-      mount -t tmpfs -o uid=0,gid=0,mode=0755 cgroup /sys/fs/cgroup
-      cd /sys/fs/cgroup
-      for sys in $(awk '!/^#/ { if ($4 == 1) print $1 }' /proc/cgroups); do
-        mkdir -p $sys
-        if ! mountpoint -q $sys; then
-          if ! mount -n -t cgroup -o $sys cgroup $sys; then
-            rmdir $sys || true
-          fi
-        fi
-      done
-
-      dockerd -H tcp://127.0.0.1:5555 -H unix:///var/run/docker.sock &
-
-      until $(curl --output /dev/null --silent --connect-timeout 2 http://127.0.0.1:5555); do
-        printf '.'
-        sleep 1
-      done
-
-      docker load -i ${image}
-
-      kill %1
-      find /var/lib/docker/ -maxdepth 1 -mindepth 1 -not -name "image" -not -name "overlay2" | xargs rm -rf
-    '');
-
-  preloadedImages = map preload cfg.dockerPreloader.images;
-
-in
-
-{
-  options.virtualisation.dockerPreloader = {
-    images = mkOption {
-      default = [ ];
-      type = types.listOf types.package;
-      description =
-      ''
-        A list of Docker images to preload (in the /var/lib/docker directory).
-      '';
-    };
-    qcowSize = mkOption {
-      default = 1024;
-      type = types.int;
-      description =
-      ''
-        The size (MB) of qcow files.
-      '';
-    };
-  };
-
-  config = mkIf (cfg.dockerPreloader.images != []) {
-    assertions = [{
-      # If docker.storageDriver is null, Docker choose the storage
-      # driver. So, in this case, we cannot be sure overlay2 is used.
-      assertion = cfg.docker.storageDriver == "overlay2"
-        || cfg.docker.storageDriver == "overlay"
-        || cfg.docker.storageDriver == null;
-      message = "The Docker image Preloader only works with overlay2 storage driver!";
-    }];
-
-    virtualisation.qemu.options =
-      map (path: "-drive if=virtio,file=${path}/disk-image.qcow2,readonly,media=cdrom,format=qcow2")
-      preloadedImages;
-
-
-    # All attached QCOW files are mounted and their contents are linked
-    # to /var/lib/docker/ in order to make image available.
-    systemd.services.docker-preloader = {
-      description = "Preloaded Docker images";
-      wantedBy = ["docker.service"];
-      after = ["network.target"];
-      path = with pkgs; [ mount rsync jq ];
-      script = ''
-        mkdir -p /var/lib/docker/overlay2/l /var/lib/docker/image/overlay2
-        echo '{}' > /tmp/repositories.json
-
-        for i in ${concatStringsSep " " (map labelFromImage cfg.dockerPreloader.images)}; do
-          mkdir -p /mnt/docker-images/$i
-
-          # The ext4 label is limited to 16 bytes
-          mount /dev/disk/by-label/$(echo $i | cut -c1-16) -o ro,noload /mnt/docker-images/$i
-
-          find /mnt/docker-images/$i/overlay2/ -maxdepth 1 -mindepth 1 -not -name l\
-             -exec ln -s '{}' /var/lib/docker/overlay2/ \;
-          cp -P /mnt/docker-images/$i/overlay2/l/* /var/lib/docker/overlay2/l/
-
-          rsync -a /mnt/docker-images/$i/image/ /var/lib/docker/image/
-
-          # Accumulate image definitions
-          cp /tmp/repositories.json /tmp/repositories.json.tmp
-          jq -s '.[0] * .[1]' \
-            /tmp/repositories.json.tmp \
-            /mnt/docker-images/$i/image/overlay2/repositories.json \
-            > /tmp/repositories.json
-        done
-
-        mv /tmp/repositories.json /var/lib/docker/image/overlay2/repositories.json
-      '';
-      serviceConfig = {
-        Type = "oneshot";
-      };
-    };
-  };
-}
diff --git a/nixpkgs/nixos/modules/virtualisation/docker.nix b/nixpkgs/nixos/modules/virtualisation/docker.nix
index 7d196a46276a..d87ada35a0ae 100644
--- a/nixpkgs/nixos/modules/virtualisation/docker.nix
+++ b/nixpkgs/nixos/modules/virtualisation/docker.nix
@@ -149,6 +149,7 @@ in
   ###### implementation
 
   config = mkIf cfg.enable (mkMerge [{
+      boot.kernelModules = [ "bridge" "veth" ];
       environment.systemPackages = [ cfg.package ]
         ++ optional cfg.enableNvidia pkgs.nvidia-docker;
       users.groups.docker.gid = config.ids.gids.docker;
diff --git a/nixpkgs/nixos/modules/virtualisation/libvirtd.nix b/nixpkgs/nixos/modules/virtualisation/libvirtd.nix
index 43b5fcfa8fae..1d6a9457dde4 100644
--- a/nixpkgs/nixos/modules/virtualisation/libvirtd.nix
+++ b/nixpkgs/nixos/modules/virtualisation/libvirtd.nix
@@ -265,8 +265,8 @@ in {
       restartIfChanged = false;
     };
 
-    systemd.sockets.libvirtd    .wantedBy = [ "sockets.target" ];
-    systemd.sockets.libvirtd-tcp.wantedBy = [ "sockets.target" ];
+    # https://libvirt.org/daemons.html#monolithic-systemd-integration
+    systemd.sockets.libvirtd.wantedBy = [ "sockets.target" ];
 
     security.polkit.extraConfig = ''
       polkit.addRule(function(action, subject) {
diff --git a/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix b/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix
index b0fa03917c82..8fbb4efd2019 100644
--- a/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix
+++ b/nixpkgs/nixos/modules/virtualisation/nixos-containers.nix
@@ -627,7 +627,7 @@ in
 		    };
 
             bindMounts = mkOption {
-              type = with types; loaOf (submodule bindMountOpts);
+              type = with types; attrsOf (submodule bindMountOpts);
               default = {};
               example = literalExample ''
                 { "/home" = { hostPath = "/home/alice";
diff --git a/nixpkgs/nixos/modules/virtualisation/parallels-guest.nix b/nixpkgs/nixos/modules/virtualisation/parallels-guest.nix
index 828419fb4b9d..55605b388b7c 100644
--- a/nixpkgs/nixos/modules/virtualisation/parallels-guest.nix
+++ b/nixpkgs/nixos/modules/virtualisation/parallels-guest.nix
@@ -32,7 +32,7 @@ in
       };
 
       package = mkOption {
-        type = types.package;
+        type = types.nullOr types.package;
         default = config.boot.kernelPackages.prl-tools;
         defaultText = "config.boot.kernelPackages.prl-tools";
         example = literalExample "config.boot.kernelPackages.prl-tools";
diff --git a/nixpkgs/nixos/modules/virtualisation/podman.nix b/nixpkgs/nixos/modules/virtualisation/podman.nix
index 652850bf5006..f554aeffb451 100644
--- a/nixpkgs/nixos/modules/virtualisation/podman.nix
+++ b/nixpkgs/nixos/modules/virtualisation/podman.nix
@@ -1,4 +1,4 @@
-{ config, lib, pkgs, ... }:
+{ config, lib, pkgs, utils, ... }:
 let
   cfg = config.virtualisation.podman;
 
@@ -21,13 +21,12 @@ let
     done
   '';
 
-  # Copy configuration files to avoid having the entire sources in the system closure
-  copyFile = filePath: pkgs.runCommandNoCC (builtins.unsafeDiscardStringContext (builtins.baseNameOf filePath)) {} ''
-    cp ${filePath} $out
-  '';
-
 in
 {
+  imports = [
+    (lib.mkRenamedOptionModule [ "virtualisation" "podman" "libpod" ] [ "virtualisation" "containers" "containersConf" ])
+  ];
+
   meta = {
     maintainers = lib.teams.podman.members;
   };
@@ -67,25 +66,6 @@ in
       '';
     };
 
-    libpod = mkOption {
-      default = {};
-      description = "Libpod configuration";
-      type = types.submodule {
-        options = {
-
-          extraConfig = mkOption {
-            type = types.lines;
-            default = "";
-            description = ''
-              Extra configuration that should be put in the libpod.conf
-              configuration file
-            '';
-
-          };
-        };
-      };
-    };
-
     package = lib.mkOption {
       type = types.package;
       default = podmanPackage;
@@ -103,12 +83,7 @@ in
     environment.systemPackages = [ cfg.package ]
       ++ lib.optional cfg.dockerCompat dockerCompat;
 
-    environment.etc."containers/libpod.conf".text = ''
-      cni_plugin_dir = ["${pkgs.cni-plugins}/bin/"]
-
-    '' + cfg.libpod.extraConfig;
-
-    environment.etc."cni/net.d/87-podman-bridge.conflist".source = copyFile "${pkgs.podman-unwrapped.src}/cni/87-podman-bridge.conflist";
+    environment.etc."cni/net.d/87-podman-bridge.conflist".source = utils.copyFile "${pkgs.podman-unwrapped.src}/cni/87-podman-bridge.conflist";
 
     # Enable common /etc/containers configuration
     virtualisation.containers.enable = true;
diff --git a/nixpkgs/nixos/modules/virtualisation/qemu-vm.nix b/nixpkgs/nixos/modules/virtualisation/qemu-vm.nix
index be06d6feb11f..42e43f5ee023 100644
--- a/nixpkgs/nixos/modules/virtualisation/qemu-vm.nix
+++ b/nixpkgs/nixos/modules/virtualisation/qemu-vm.nix
@@ -16,11 +16,6 @@ let
 
   qemu = config.system.build.qemu or pkgs.qemu_test;
 
-  vmName =
-    if config.networking.hostName == ""
-    then "noname"
-    else config.networking.hostName;
-
   cfg = config.virtualisation;
 
   consoles = lib.concatMapStringsSep " " (c: "console=${c}") cfg.qemu.consoles;
@@ -46,6 +41,13 @@ let
         description = "Extra options passed to device flag.";
       };
 
+      name = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        description =
+          "A name for the drive. Must be unique in the drives list. Not passed to qemu.";
+      };
+
     };
 
   };
@@ -74,6 +76,32 @@ let
 
   drivesCmdLine = drives: concatStringsSep " " (imap1 driveCmdline drives);
 
+
+  # Creates a device name from a 1-based a numerical index, e.g.
+  # * `driveDeviceName 1` -> `/dev/vda`
+  # * `driveDeviceName 2` -> `/dev/vdb`
+  driveDeviceName = idx:
+    let letter = elemAt lowerChars (idx - 1);
+    in if cfg.qemu.diskInterface == "scsi" then
+      "/dev/sd${letter}"
+    else
+      "/dev/vd${letter}";
+
+  lookupDriveDeviceName = driveName: driveList:
+    (findSingle (drive: drive.name == driveName)
+      (throw "Drive ${driveName} not found")
+      (throw "Multiple drives named ${driveName}") driveList).device;
+
+  addDeviceNames =
+    imap1 (idx: drive: drive // { device = driveDeviceName idx; });
+
+  efiPrefix =
+    if (pkgs.stdenv.isi686 || pkgs.stdenv.isx86_64) then "${pkgs.OVMF.fd}/FV/OVMF"
+    else if pkgs.stdenv.isAarch64 then "${pkgs.OVMF.fd}/FV/AAVMF"
+    else throw "No EFI firmware available for platform";
+  efiFirmware = "${efiPrefix}_CODE.fd";
+  efiVarsDefault = "${efiPrefix}_VARS.fd";
+
   # Shell script to start the VM.
   startVM =
     ''
@@ -99,10 +127,14 @@ let
         # A writable boot disk can be booted from automatically.
         ${qemu}/bin/qemu-img create -f qcow2 -b ${bootDisk}/disk.img $TMPDIR/disk.img || exit 1
 
+        NIX_EFI_VARS=$(readlink -f ''${NIX_EFI_VARS:-${cfg.efiVars}})
+
         ${if cfg.useEFIBoot then ''
-          # VM needs a writable flash BIOS.
-          cp ${bootDisk}/bios.bin $TMPDIR || exit 1
-          chmod 0644 $TMPDIR/bios.bin || exit 1
+          # VM needs writable EFI vars
+          if ! test -e "$NIX_EFI_VARS"; then
+            cp ${bootDisk}/efi-vars.fd "$NIX_EFI_VARS" || exit 1
+            chmod 0644 "$NIX_EFI_VARS" || exit 1
+          fi
         '' else ''
         ''}
       '' else ''
@@ -119,7 +151,7 @@ let
 
       # Start QEMU.
       exec ${qemuBinary qemu} \
-          -name ${vmName} \
+          -name ${config.system.name} \
           -m ${toString config.virtualisation.memorySize} \
           -smp ${toString config.virtualisation.cores} \
           -device virtio-rng-pci \
@@ -139,6 +171,8 @@ let
 
   # Generate a hard disk image containing a /boot partition and GRUB
   # in the MBR.  Used when the `useBootLoader' option is set.
+  # Uses `runInLinuxVM` to create the image in a throwaway VM.
+  # See note [Disk layout with `useBootLoader`].
   # FIXME: use nixos/lib/make-disk-image.nix.
   bootDisk =
     pkgs.vmTools.runInLinuxVM (
@@ -147,21 +181,22 @@ let
             ''
               mkdir $out
               diskImage=$out/disk.img
-              bootFlash=$out/bios.bin
-              ${qemu}/bin/qemu-img create -f qcow2 $diskImage "40M"
+              ${qemu}/bin/qemu-img create -f qcow2 $diskImage "60M"
               ${if cfg.useEFIBoot then ''
-                cp ${pkgs.OVMF-CSM.fd}/FV/OVMF.fd $bootFlash
-                chmod 0644 $bootFlash
+                efiVars=$out/efi-vars.fd
+                cp ${efiVarsDefault} $efiVars
+                chmod 0644 $efiVars
               '' else ''
               ''}
             '';
           buildInputs = [ pkgs.utillinux ];
-          QEMU_OPTS = if cfg.useEFIBoot
-                      then "-pflash $out/bios.bin -nographic -serial pty"
-                      else "-nographic -serial pty";
+          QEMU_OPTS = "-nographic -serial stdio -monitor none"
+                      + lib.optionalString cfg.useEFIBoot (
+                        " -drive if=pflash,format=raw,unit=0,readonly=on,file=${efiFirmware}"
+                      + " -drive if=pflash,format=raw,unit=1,file=$efiVars");
         }
         ''
-          # Create a /boot EFI partition with 40M and arbitrary but fixed GUIDs for reproducibility
+          # Create a /boot EFI partition with 60M and arbitrary but fixed GUIDs for reproducibility
           ${pkgs.gptfdisk}/bin/sgdisk \
             --set-alignment=1 --new=1:34:2047 --change-name=1:BIOSBootPartition --typecode=1:ef02 \
             --set-alignment=512 --largest-new=2 --change-name=2:EFISystem --typecode=2:ef00 \
@@ -172,6 +207,19 @@ let
             --partition-guid=2:970C694F-AFD0-4B99-B750-CDB7A329AB6F \
             --hybrid 2 \
             --recompute-chs /dev/vda
+
+          ${optionalString (config.boot.loader.grub.device != "/dev/vda")
+            # In this throwaway VM, we only have the /dev/vda disk, but the
+            # actual VM described by `config` (used by `switch-to-configuration`
+            # below) may set `boot.loader.grub.device` to a different device
+            # that's nonexistent in the throwaway VM.
+            # Create a symlink for that device, so that the `grub-install`
+            # by `switch-to-configuration` will hit /dev/vda anyway.
+            ''
+              ln -s /dev/vda ${config.boot.loader.grub.device}
+            ''
+          }
+
           ${pkgs.dosfstools}/bin/mkfs.fat -F16 /dev/vda2
           export MTOOLS_SKIP_CHECK=1
           ${pkgs.mtools}/bin/mlabel -i /dev/vda2 ::boot
@@ -185,6 +233,10 @@ let
           mkdir /boot
           mount /dev/vda2 /boot
 
+          ${optionalString config.boot.loader.efi.canTouchEfiVariables ''
+            mount -t efivarfs efivarfs /sys/firmware/efi/efivars
+          ''}
+
           # This is needed for GRUB 0.97, which doesn't know about virtio devices.
           mkdir /boot/grub
           echo '(hd0) /dev/vda' > /boot/grub/device.map
@@ -212,7 +264,6 @@ in
 {
   imports = [
     ../profiles/qemu-guest.nix
-   ./docker-preloader.nix
   ];
 
   options = {
@@ -237,7 +288,7 @@ in
 
     virtualisation.diskImage =
       mkOption {
-        default = "./${vmName}.qcow2";
+        default = "./${config.system.name}.qcow2";
         description =
           ''
             Path to the disk image containing the root filesystem.
@@ -396,6 +447,7 @@ in
         mkOption {
           type = types.listOf (types.submodule driveOpts);
           description = "Drives passed to qemu.";
+          apply = addDeviceNames;
         };
 
       diskInterface =
@@ -441,6 +493,16 @@ in
           '';
       };
 
+    virtualisation.efiVars =
+      mkOption {
+        default = "./${config.system.name}-efi-vars.fd";
+        description =
+          ''
+            Path to nvram image containing UEFI variables.  The will be created
+            on startup if it does not exist.
+          '';
+      };
+
     virtualisation.bios =
       mkOption {
         default = null;
@@ -457,7 +519,27 @@ in
 
   config = {
 
-    boot.loader.grub.device = mkVMOverride cfg.bootDevice;
+    # Note [Disk layout with `useBootLoader`]
+    #
+    # If `useBootLoader = true`, we configure 2 drives:
+    # `/dev/?da` for the root disk, and `/dev/?db` for the boot disk
+    # which has the `/boot` partition and the boot loader.
+    # Concretely:
+    #
+    # * The second drive's image `disk.img` is created in `bootDisk = ...`
+    #   using a throwaway VM. Note that there the disk is always `/dev/vda`,
+    #   even though in the final VM it will be at `/dev/*b`.
+    # * The disks are attached in `virtualisation.qemu.drives`.
+    #   Their order makes them appear as devices `a`, `b`, etc.
+    # * `fileSystems."/boot"` is adjusted to be on device `b`.
+
+    # If `useBootLoader`, GRUB goes to the second disk, see
+    # note [Disk layout with `useBootLoader`].
+    boot.loader.grub.device = mkVMOverride (
+      if cfg.useBootLoader
+        then driveDeviceName 2 # second disk
+        else cfg.bootDevice
+    );
 
     boot.initrd.extraUtilsCommands =
       ''
@@ -512,8 +594,7 @@ in
       optional cfg.writableStore "overlay"
       ++ optional (cfg.qemu.diskInterface == "scsi") "sym53c8xx";
 
-    virtualisation.bootDevice =
-      mkDefault (if cfg.qemu.diskInterface == "scsi" then "/dev/sda" else "/dev/vda");
+    virtualisation.bootDevice = mkDefault (driveDeviceName 1);
 
     virtualisation.pathsInNixDB = [ config.system.build.toplevel ];
 
@@ -531,7 +612,8 @@ in
         ''-append "$(cat ${config.system.build.toplevel}/kernel-params) init=${config.system.build.toplevel}/init regInfo=${regInfo}/registration ${consoles} $QEMU_KERNEL_PARAMS"''
       ])
       (mkIf cfg.useEFIBoot [
-        "-pflash $TMPDIR/bios.bin"
+        "-drive if=pflash,format=raw,unit=0,readonly,file=${efiFirmware}"
+        "-drive if=pflash,format=raw,unit=1,file=$NIX_EFI_VARS"
       ])
       (mkIf (cfg.bios != null) [
         "-bios ${cfg.bios}/bios.bin"
@@ -542,25 +624,22 @@ in
     ];
 
     virtualisation.qemu.drives = mkMerge [
+      [{
+        name = "root";
+        file = "$NIX_DISK_IMAGE";
+        driveExtraOpts.cache = "writeback";
+        driveExtraOpts.werror = "report";
+      }]
       (mkIf cfg.useBootLoader [
+        # The order of this list determines the device names, see
+        # note [Disk layout with `useBootLoader`].
         {
-          file = "$NIX_DISK_IMAGE";
-          driveExtraOpts.cache = "writeback";
-          driveExtraOpts.werror = "report";
-        }
-        {
+          name = "boot";
           file = "$TMPDIR/disk.img";
           driveExtraOpts.media = "disk";
           deviceExtraOpts.bootindex = "1";
         }
       ])
-      (mkIf (!cfg.useBootLoader) [
-        {
-          file = "$NIX_DISK_IMAGE";
-          driveExtraOpts.cache = "writeback";
-          driveExtraOpts.werror = "report";
-        }
-      ])
       (imap0 (idx: _: {
         file = "$(pwd)/empty${toString idx}.qcow2";
         driveExtraOpts.werror = "report";
@@ -608,9 +687,9 @@ in
           };
       } // optionalAttrs cfg.useBootLoader
       { "/boot" =
-          { device = "/dev/vdb2";
+          # see note [Disk layout with `useBootLoader`]
+          { device = "${lookupDriveDeviceName "boot" cfg.qemu.drives}2"; # 2 for e.g. `vdb2`, as created in `bootDisk`
             fsType = "vfat";
-            options = [ "ro" ];
             noCheck = true; # fsck fails on a r/o filesystem
           };
       });
@@ -627,7 +706,7 @@ in
       ''
         mkdir -p $out/bin
         ln -s ${config.system.build.toplevel} $out/system
-        ln -s ${pkgs.writeScript "run-nixos-vm" startVM} $out/bin/run-${vmName}-vm
+        ln -s ${pkgs.writeScript "run-nixos-vm" startVM} $out/bin/run-${config.system.name}-vm
       '';
 
     # When building a regular system configuration, override whatever
diff --git a/nixpkgs/nixos/modules/virtualisation/railcar.nix b/nixpkgs/nixos/modules/virtualisation/railcar.nix
index 12da1c75fc38..10464f628984 100644
--- a/nixpkgs/nixos/modules/virtualisation/railcar.nix
+++ b/nixpkgs/nixos/modules/virtualisation/railcar.nix
@@ -29,9 +29,9 @@ let
         default = "none";
         description = ''
           The type of the filesystem to be mounted.
-          Linux: filesystem types supported by the kernel as listed in 
-          `/proc/filesystems` (e.g., "minix", "ext2", "ext3", "jfs", "xfs", 
-          "reiserfs", "msdos", "proc", "nfs", "iso9660"). For bind mounts 
+          Linux: filesystem types supported by the kernel as listed in
+          `/proc/filesystems` (e.g., "minix", "ext2", "ext3", "jfs", "xfs",
+          "reiserfs", "msdos", "proc", "nfs", "iso9660"). For bind mounts
           (when options include either bind or rbind), the type is a dummy,
           often "none" (not listed in /proc/filesystems).
         '';
@@ -41,13 +41,13 @@ let
         description = "Source for the in-container mount";
       };
       options = mkOption {
-        type = loaOf (str);
+        type = attrsOf (str);
         default = [ "bind" ];
         description = ''
           Mount options of the filesystem to be used.
-        
-          Support optoions are listed in the mount(8) man page. Note that 
-          both filesystem-independent and filesystem-specific options 
+
+          Support options are listed in the mount(8) man page. Note that
+          both filesystem-independent and filesystem-specific options
           are listed.
         '';
       };
@@ -61,7 +61,7 @@ in
     containers = mkOption {
       default = {};
       description = "Declarative container configuration";
-      type = with types; loaOf (submodule ({ name, config, ... }: {
+      type = with types; attrsOf (submodule ({ name, config, ... }: {
         options = {
           cmd = mkOption {
             type = types.lines;
diff --git a/nixpkgs/nixos/modules/virtualisation/spice-usb-redirection.nix b/nixpkgs/nixos/modules/virtualisation/spice-usb-redirection.nix
new file mode 100644
index 000000000000..4168cebe79b1
--- /dev/null
+++ b/nixpkgs/nixos/modules/virtualisation/spice-usb-redirection.nix
@@ -0,0 +1,24 @@
+{ config, pkgs, lib, ... }:
+{
+  options.virtualisation.spiceUSBRedirection.enable = lib.mkOption {
+    type = lib.types.bool;
+    default = false;
+    description = ''
+      Install the SPICE USB redirection helper with setuid
+      privileges. This allows unprivileged users to pass USB devices
+      connected to this machine to libvirt VMs, both local and
+      remote. Note that this allows users arbitrary access to USB
+      devices.
+    '';
+  };
+
+  config = lib.mkIf config.virtualisation.spiceUSBRedirection.enable {
+    environment.systemPackages = [ pkgs.spice-gtk ]; # For polkit actions
+    security.wrappers.spice-client-glib-usb-acl-helper ={
+      source = "${pkgs.spice-gtk}/bin/spice-client-glib-usb-acl-helper";
+      capabilities = "cap_fowner+ep";
+    };
+  };
+
+  meta.maintainers = [ lib.maintainers.lheckemann ];
+}
diff --git a/nixpkgs/nixos/modules/virtualisation/virtualbox-guest.nix b/nixpkgs/nixos/modules/virtualisation/virtualbox-guest.nix
index 834b994e92d2..486951983d30 100644
--- a/nixpkgs/nixos/modules/virtualisation/virtualbox-guest.nix
+++ b/nixpkgs/nixos/modules/virtualisation/virtualbox-guest.nix
@@ -68,7 +68,7 @@ in
         SUBSYSTEM=="misc", KERNEL=="vboxguest", TAG+="systemd"
       '';
   } (mkIf cfg.x11 {
-    services.xserver.videoDrivers = mkOverride 50 [ "virtualbox" "modesetting" ];
+    services.xserver.videoDrivers = mkOverride 50 [ "vmware" "virtualbox" "modesetting" ];
 
     services.xserver.config =
       ''
diff --git a/nixpkgs/nixos/modules/virtualisation/virtualbox-image.nix b/nixpkgs/nixos/modules/virtualisation/virtualbox-image.nix
index 788b4d9d9761..fa580e8b42d6 100644
--- a/nixpkgs/nixos/modules/virtualisation/virtualbox-image.nix
+++ b/nixpkgs/nixos/modules/virtualisation/virtualbox-image.nix
@@ -58,6 +58,35 @@ in {
           Run <literal>VBoxManage modifyvm --help</literal> to see more options.
         '';
      };
+      extraDisk = mkOption {
+        description = ''
+          Optional extra disk/hdd configuration.
+          The disk will be an 'ext4' partition on a separate VMDK file.
+        '';
+        default = null;
+        example = {
+          label = "storage";
+          mountPoint = "/home/demo/storage";
+          size = 100 * 1024;
+        };
+        type = types.nullOr (types.submodule {
+          options = {
+            size = mkOption {
+              type = types.int;
+              description = "Size in MiB";
+            };
+            label = mkOption {
+              type = types.str;
+              default = "vm-extra-storage";
+              description = "Label for the disk partition";
+            };
+            mountPoint = mkOption {
+              type = types.str;
+              description = "Path where to mount this disk.";
+            };
+          };
+        });
+      };
     };
   };
 
@@ -72,6 +101,7 @@ in {
         audiocontroller = "ac97";
         audio = "alsa";
         audioout = "on";
+        graphicscontroller = "vmsvga";
         rtcuseutc = "on";
         usb = "on";
         usbehci = "on";
@@ -95,6 +125,20 @@ in {
           echo "creating VirtualBox pass-through disk wrapper (no copying involved)..."
           VBoxManage internalcommands createrawvmdk -filename disk.vmdk -rawdisk $diskImage
 
+          ${optionalString (cfg.extraDisk != null) ''
+            echo "creating extra disk: data-disk.raw"
+            dataDiskImage=data-disk.raw
+            truncate -s ${toString cfg.extraDisk.size}M $dataDiskImage
+
+            parted --script $dataDiskImage -- \
+              mklabel msdos \
+              mkpart primary ext4 1MiB -1
+            eval $(partx $dataDiskImage -o START,SECTORS --nr 1 --pairs)
+            mkfs.ext4 -F -L ${cfg.extraDisk.label} $dataDiskImage -E offset=$(sectorsToBytes $START) $(sectorsToKilobytes $SECTORS)K
+            echo "creating extra disk: data-disk.vmdk"
+            VBoxManage internalcommands createrawvmdk -filename data-disk.vmdk -rawdisk $dataDiskImage
+          ''}
+
           echo "creating VirtualBox VM..."
           vmName="${cfg.vmName}";
           VBoxManage createvm --name "$vmName" --register \
@@ -105,6 +149,10 @@ in {
           VBoxManage storagectl "$vmName" --name SATA --add sata --portcount 4 --bootable on --hostiocache on
           VBoxManage storageattach "$vmName" --storagectl SATA --port 0 --device 0 --type hdd \
             --medium disk.vmdk
+          ${optionalString (cfg.extraDisk != null) ''
+            VBoxManage storageattach "$vmName" --storagectl SATA --port 1 --device 0 --type hdd \
+            --medium data-disk.vmdk
+          ''}
 
           echo "exporting VirtualBox VM..."
           mkdir -p $out
@@ -118,11 +166,19 @@ in {
         '';
     };
 
-    fileSystems."/" = {
-      device = "/dev/disk/by-label/nixos";
-      autoResize = true;
-      fsType = "ext4";
-    };
+    fileSystems = {
+      "/" = {
+        device = "/dev/disk/by-label/nixos";
+        autoResize = true;
+        fsType = "ext4";
+      };
+    } // (lib.optionalAttrs (cfg.extraDisk != null) {
+      ${cfg.extraDisk.mountPoint} = {
+        device = "/dev/disk/by-label/" + cfg.extraDisk.label;
+        autoResize = true;
+        fsType = "ext4";
+      };
+    });
 
     boot.growPartition = true;
     boot.loader.grub.device = "/dev/sda";
diff --git a/nixpkgs/nixos/release-combined.nix b/nixpkgs/nixos/release-combined.nix
index ece2d091f5ad..945ba90e3454 100644
--- a/nixpkgs/nixos/release-combined.nix
+++ b/nixpkgs/nixos/release-combined.nix
@@ -106,11 +106,29 @@ in rec {
         (onFullSupported "nixos.tests.networking.scripted.bridge")
         (onFullSupported "nixos.tests.networking.scripted.dhcpOneIf")
         (onFullSupported "nixos.tests.networking.scripted.dhcpSimple")
+        (onFullSupported "nixos.tests.networking.scripted.link")
         (onFullSupported "nixos.tests.networking.scripted.loopback")
         (onFullSupported "nixos.tests.networking.scripted.macvlan")
+        (onFullSupported "nixos.tests.networking.scripted.privacy")
+        (onFullSupported "nixos.tests.networking.scripted.routes")
         (onFullSupported "nixos.tests.networking.scripted.sit")
         (onFullSupported "nixos.tests.networking.scripted.static")
+        (onFullSupported "nixos.tests.networking.scripted.virtual")
         (onFullSupported "nixos.tests.networking.scripted.vlan")
+        (onFullSupported "nixos.tests.networking.networkd.bond")
+        (onFullSupported "nixos.tests.networking.networkd.bridge")
+        (onFullSupported "nixos.tests.networking.networkd.dhcpOneIf")
+        (onFullSupported "nixos.tests.networking.networkd.dhcpSimple")
+        (onFullSupported "nixos.tests.networking.networkd.link")
+        (onFullSupported "nixos.tests.networking.networkd.loopback")
+        # Fails nondeterministically (https://github.com/NixOS/nixpkgs/issues/96709)
+        #(onFullSupported "nixos.tests.networking.networkd.macvlan")
+        (onFullSupported "nixos.tests.networking.networkd.privacy")
+        (onFullSupported "nixos.tests.networking.networkd.routes")
+        (onFullSupported "nixos.tests.networking.networkd.sit")
+        (onFullSupported "nixos.tests.networking.networkd.static")
+        (onFullSupported "nixos.tests.networking.networkd.virtual")
+        (onFullSupported "nixos.tests.networking.networkd.vlan")
         (onFullSupported "nixos.tests.systemd-networkd-ipv6-prefix-delegation")
         (onFullSupported "nixos.tests.nfs3.simple")
         (onFullSupported "nixos.tests.nfs4.simple")
diff --git a/nixpkgs/nixos/release.nix b/nixpkgs/nixos/release.nix
index cf16986b2136..1f5c15812695 100644
--- a/nixpkgs/nixos/release.nix
+++ b/nixpkgs/nixos/release.nix
@@ -310,6 +310,11 @@ in rec {
         services.xserver.desktopManager.gnome3.enable = true;
       });
 
+    pantheon = makeClosure ({ ... }:
+      { services.xserver.enable = true;
+        services.xserver.desktopManager.pantheon.enable = true;
+      });
+
     # Linux/Apache/PostgreSQL/PHP stack.
     lapp = makeClosure ({ pkgs, ... }:
       { services.httpd.enable = true;
diff --git a/nixpkgs/nixos/tests/3proxy.nix b/nixpkgs/nixos/tests/3proxy.nix
index 3e2061d7e42f..de3056f6710f 100644
--- a/nixpkgs/nixos/tests/3proxy.nix
+++ b/nixpkgs/nixos/tests/3proxy.nix
@@ -134,6 +134,10 @@ import ./make-test-python.nix ({ pkgs, ...} : {
   };
 
   testScript = ''
+    start_all()
+
+    peer0.wait_for_unit("network-online.target")
+
     peer1.wait_for_unit("3proxy.service")
     peer1.wait_for_open_port("9999")
 
diff --git a/nixpkgs/nixos/tests/acme.nix b/nixpkgs/nixos/tests/acme.nix
index fc41dc1eb5ff..64193ed8498c 100644
--- a/nixpkgs/nixos/tests/acme.nix
+++ b/nixpkgs/nixos/tests/acme.nix
@@ -1,29 +1,43 @@
 let
   commonConfig = ./common/acme/client;
 
-  dnsScript = {writeScript, dnsAddress, bash, curl}: writeScript "dns-hook.sh" ''
-    #!${bash}/bin/bash
+  dnsServerIP = nodes: nodes.dnsserver.config.networking.primaryIPAddress;
+
+  dnsScript = {pkgs, nodes}: let
+    dnsAddress = dnsServerIP nodes;
+  in pkgs.writeShellScript "dns-hook.sh" ''
     set -euo pipefail
     echo '[INFO]' "[$2]" 'dns-hook.sh' $*
     if [ "$1" = "present" ]; then
-      ${curl}/bin/curl --data '{"host": "'"$2"'", "value": "'"$3"'"}' http://${dnsAddress}:8055/set-txt
+      ${pkgs.curl}/bin/curl --data '{"host": "'"$2"'", "value": "'"$3"'"}' http://${dnsAddress}:8055/set-txt
     else
-      ${curl}/bin/curl --data '{"host": "'"$2"'"}' http://${dnsAddress}:8055/clear-txt
+      ${pkgs.curl}/bin/curl --data '{"host": "'"$2"'"}' http://${dnsAddress}:8055/clear-txt
     fi
   '';
 
+  documentRoot = pkgs: pkgs.runCommand "docroot" {} ''
+    mkdir -p "$out"
+    echo hello world > "$out/index.html"
+  '';
+
+  vhostBase = pkgs: {
+    forceSSL = true;
+    locations."/".root = documentRoot pkgs;
+  };
+
 in import ./make-test-python.nix ({ lib, ... }: {
   name = "acme";
   meta.maintainers = lib.teams.acme.members;
 
-  nodes = rec {
+  nodes = {
+    # The fake ACME server which will respond to client requests
     acme = { nodes, lib, ... }: {
       imports = [ ./common/acme/server ];
-      networking.nameservers = lib.mkForce [
-        nodes.dnsserver.config.networking.primaryIPAddress
-      ];
+      networking.nameservers = lib.mkForce [ (dnsServerIP nodes) ];
     };
 
+    # A fake DNS server which can be configured with records as desired
+    # Used to test DNS-01 challenge
     dnsserver = { nodes, pkgs, ... }: {
       networking.firewall.allowedTCPPorts = [ 8055 53 ];
       networking.firewall.allowedUDPPorts = [ 53 ];
@@ -39,106 +53,111 @@ in import ./make-test-python.nix ({ lib, ... }: {
       };
     };
 
-    acmeStandalone = { nodes, lib, config, pkgs, ... }: {
-      imports = [ commonConfig ];
-      networking.nameservers = lib.mkForce [
-        nodes.dnsserver.config.networking.primaryIPAddress
-      ];
-      networking.firewall.allowedTCPPorts = [ 80 ];
-      security.acme.certs."standalone.test" = {
-        webroot = "/var/lib/acme/acme-challenges";
-      };
-      systemd.targets."acme-finished-standalone.test" = {};
-      systemd.services."acme-standalone.test" = {
-        wants = [ "acme-finished-standalone.test.target" ];
-        before = [ "acme-finished-standalone.test.target" ];
-      };
-      services.nginx.enable = true;
-      services.nginx.virtualHosts."standalone.test" = {
-        locations."/.well-known/acme-challenge".root = "/var/lib/acme/acme-challenges";
-      };
-    };
-
-    webserver = { nodes, config, pkgs, lib, ... }: {
+    # A web server which will be the node requesting certs
+    webserver = { pkgs, nodes, lib, config, ... }: {
       imports = [ commonConfig ];
+      networking.nameservers = lib.mkForce [ (dnsServerIP nodes) ];
       networking.firewall.allowedTCPPorts = [ 80 443 ];
-      networking.nameservers = lib.mkForce [
-        nodes.dnsserver.config.networking.primaryIPAddress
-      ];
-
-      # A target remains active. Use this to probe the fact that
-      # a service fired eventhough it is not RemainAfterExit
-      systemd.targets."acme-finished-a.example.test" = {};
-      systemd.services."acme-a.example.test" = {
-        wants = [ "acme-finished-a.example.test.target" ];
-        before = [ "acme-finished-a.example.test.target" ];
-        after = [ "nginx.service" ];
-      };
 
+      # OpenSSL will be used for more thorough certificate validation
+      environment.systemPackages = [ pkgs.openssl ];
+
+      # Set log level to info so that we can see when the service is reloaded
       services.nginx.enable = true;
+      services.nginx.logError = "stderr info";
 
-      services.nginx.virtualHosts."a.example.test" = {
+      # First tests configure a basic cert and run a bunch of openssl checks
+      services.nginx.virtualHosts."a.example.test" = (vhostBase pkgs) // {
         enableACME = true;
-        forceSSL = true;
-        locations."/".root = pkgs.runCommand "docroot" {} ''
-          mkdir -p "$out"
-          echo hello world > "$out/index.html"
-        '';
       };
 
-      security.acme.server = "https://acme.test/dir";
+      # Used to determine if service reload was triggered
+      systemd.targets.test-renew-nginx = {
+        wants = [ "acme-a.example.test.service" ];
+        after = [ "acme-a.example.test.service" "nginx-config-reload.service" ];
+      };
+
+      # Cert config changes will not cause the nginx configuration to change.
+      # This tests that the reload service is correctly triggered.
+      # It also tests that postRun is exec'd as root
+      specialisation.cert-change.configuration = { pkgs, ... }: {
+        security.acme.certs."a.example.test".keyType = "ec384";
+        security.acme.certs."a.example.test".postRun = ''
+          set -euo pipefail
+          touch test
+          chown root:root test
+          echo testing > test
+        '';
+      };
 
-      specialisation.second-cert.configuration = {pkgs, ...}: {
-        systemd.targets."acme-finished-b.example.test" = {};
-        systemd.services."acme-b.example.test" = {
-          wants = [ "acme-finished-b.example.test.target" ];
-          before = [ "acme-finished-b.example.test.target" ];
-          after = [ "nginx.service" ];
+      # Now adding an alias to ensure that the certs are updated
+      specialisation.nginx-aliases.configuration = { pkgs, ... }: {
+        services.nginx.virtualHosts."a.example.test" = {
+          serverAliases = [ "b.example.test" ];
         };
-        services.nginx.virtualHosts."b.example.test" = {
-          enableACME = true;
+      };
+
+      # Test using Apache HTTPD
+      specialisation.httpd-aliases.configuration = { pkgs, config, lib, ... }: {
+        services.nginx.enable = lib.mkForce false;
+        services.httpd.enable = true;
+        services.httpd.adminAddr = config.security.acme.email;
+        services.httpd.virtualHosts."c.example.test" = {
+          serverAliases = [ "d.example.test" ];
           forceSSL = true;
-          locations."/".root = pkgs.runCommand "docroot" {} ''
-            mkdir -p "$out"
-            echo hello world > "$out/index.html"
-          '';
+          enableACME = true;
+          documentRoot = documentRoot pkgs;
+        };
+
+        # Used to determine if service reload was triggered
+        systemd.targets.test-renew-httpd = {
+          wants = [ "acme-c.example.test.service" ];
+          after = [ "acme-c.example.test.service" "httpd-config-reload.service" ];
         };
       };
-      specialisation.dns-01.configuration = {pkgs, config, nodes, lib, ...}: {
+
+      # Validation via DNS-01 challenge
+      specialisation.dns-01.configuration = { pkgs, config, nodes, ... }: {
         security.acme.certs."example.test" = {
           domain = "*.example.test";
+          group = config.services.nginx.group;
           dnsProvider = "exec";
           dnsPropagationCheck = false;
-          credentialsFile = with pkgs; writeText "wildcard.env" ''
-            EXEC_PATH=${dnsScript { inherit writeScript bash curl; dnsAddress = nodes.dnsserver.config.networking.primaryIPAddress; }}
+          credentialsFile = pkgs.writeText "wildcard.env" ''
+            EXEC_PATH=${dnsScript { inherit pkgs nodes; }}
           '';
-          user = config.services.nginx.user;
-          group = config.services.nginx.group;
         };
-        systemd.targets."acme-finished-example.test" = {};
-        systemd.services."acme-example.test" = {
-          wants = [ "acme-finished-example.test.target" ];
-          before = [ "acme-finished-example.test.target" "nginx.service" ];
-          wantedBy = [ "nginx.service" ];
+
+        services.nginx.virtualHosts."dns.example.test" = (vhostBase pkgs) // {
+          useACMEHost = "example.test";
         };
-        services.nginx.virtualHosts."c.example.test" = {
+      };
+
+      # Validate service relationships by adding a slow start service to nginx' wants.
+      # Reproducer for https://github.com/NixOS/nixpkgs/issues/81842
+      specialisation.slow-startup.configuration = { pkgs, config, nodes, lib, ... }: {
+        systemd.services.my-slow-service = {
+          wantedBy = [ "multi-user.target" "nginx.service" ];
+          before = [ "nginx.service" ];
+          preStart = "sleep 5";
+          script = "${pkgs.python3}/bin/python -m http.server";
+        };
+
+        services.nginx.virtualHosts."slow.example.com" = {
           forceSSL = true;
-          sslCertificate = config.security.acme.certs."example.test".directory + "/cert.pem";
-          sslTrustedCertificate = config.security.acme.certs."example.test".directory + "/full.pem";
-          sslCertificateKey = config.security.acme.certs."example.test".directory + "/key.pem";
-          locations."/".root = pkgs.runCommand "docroot" {} ''
-            mkdir -p "$out"
-            echo hello world > "$out/index.html"
-          '';
+          enableACME = true;
+          locations."/".proxyPass = "http://localhost:8000";
         };
       };
     };
 
-    client = {nodes, lib, ...}: {
+    # The client will be used to curl the webserver to validate configuration
+    client = {nodes, lib, pkgs, ...}: {
       imports = [ commonConfig ];
-      networking.nameservers = lib.mkForce [
-        nodes.dnsserver.config.networking.primaryIPAddress
-      ];
+      networking.nameservers = lib.mkForce [ (dnsServerIP nodes) ];
+
+      # OpenSSL will be used for more thorough certificate validation
+      environment.systemPackages = [ pkgs.openssl ];
     };
   };
 
@@ -149,63 +168,168 @@ in import ./make-test-python.nix ({ lib, ... }: {
     in
     # Note, wait_for_unit does not work for oneshot services that do not have RemainAfterExit=true,
     # this is because a oneshot goes from inactive => activating => inactive, and never
-    # reaches the active state. To work around this, we create some mock target units which
-    # get pulled in by the oneshot units. The target units linger after activation, and hence we
-    # can use them to probe that a oneshot fired. It is a bit ugly, but it is the best we can do
+    # reaches the active state. Targets do not have this issue.
+
     ''
+      import time
+
+
+      has_switched = False
+
+
+      def switch_to(node, name):
+          global has_switched
+          if has_switched:
+              node.succeed(
+                  "${switchToNewServer}"
+              )
+          has_switched = True
+          node.succeed(
+              f"/run/current-system/specialisation/{name}/bin/switch-to-configuration test"
+          )
+
+
+      # Ensures the issuer of our cert matches the chain
+      # and matches the issuer we expect it to be.
+      # It's a good validation to ensure the cert.pem and fullchain.pem
+      # are not still selfsigned afer verification
+      def check_issuer(node, cert_name, issuer):
+          for fname in ("cert.pem", "fullchain.pem"):
+              actual_issuer = node.succeed(
+                  f"openssl x509 -noout -issuer -in /var/lib/acme/{cert_name}/{fname}"
+              ).partition("=")[2]
+              print(f"{fname} issuer: {actual_issuer}")
+              assert issuer.lower() in actual_issuer.lower()
+
+
+      # Ensure cert comes before chain in fullchain.pem
+      def check_fullchain(node, cert_name):
+          subject_data = node.succeed(
+              f"openssl crl2pkcs7 -nocrl -certfile /var/lib/acme/{cert_name}/fullchain.pem"
+              " | openssl pkcs7 -print_certs -noout"
+          )
+          for line in subject_data.lower().split("\n"):
+              if "subject" in line:
+                  print(f"First subject in fullchain.pem: ", line)
+                  assert cert_name.lower() in line
+                  return
+
+          assert False
+
+
+      def check_connection(node, domain, retries=3):
+          assert retries >= 0
+
+          result = node.succeed(
+              "openssl s_client -brief -verify 2 -CAfile /tmp/ca.crt"
+              f" -servername {domain} -connect {domain}:443 < /dev/null 2>&1"
+          )
+
+          for line in result.lower().split("\n"):
+              if "verification" in line and "error" in line:
+                  time.sleep(1)
+                  return check_connection(node, domain, retries - 1)
+
+
+      def check_connection_key_bits(node, domain, bits, retries=3):
+          assert retries >= 0
+
+          result = node.succeed(
+              "openssl s_client -CAfile /tmp/ca.crt"
+              f" -servername {domain} -connect {domain}:443 < /dev/null"
+              " | openssl x509 -noout -text | grep -i Public-Key"
+          )
+          print("Key type:", result)
+
+          if bits not in result:
+              time.sleep(1)
+              return check_connection_key_bits(node, domain, bits, retries - 1)
+
+
       client.start()
       dnsserver.start()
 
-      acme.wait_for_unit("default.target")
       dnsserver.wait_for_unit("pebble-challtestsrv.service")
+      client.wait_for_unit("default.target")
+
       client.succeed(
-          'curl --data \'{"host": "acme.test", "addresses": ["${nodes.acme.config.networking.primaryIPAddress}"]}\' http://${nodes.dnsserver.config.networking.primaryIPAddress}:8055/add-a'
-      )
-      client.succeed(
-          'curl --data \'{"host": "standalone.test", "addresses": ["${nodes.acmeStandalone.config.networking.primaryIPAddress}"]}\' http://${nodes.dnsserver.config.networking.primaryIPAddress}:8055/add-a'
+          'curl --data \'{"host": "acme.test", "addresses": ["${nodes.acme.config.networking.primaryIPAddress}"]}\' http://${dnsServerIP nodes}:8055/add-a'
       )
 
       acme.start()
-      acmeStandalone.start()
+      webserver.start()
 
       acme.wait_for_unit("default.target")
       acme.wait_for_unit("pebble.service")
 
-      with subtest("can request certificate with HTTPS-01 challenge"):
-          acmeStandalone.wait_for_unit("default.target")
-          acmeStandalone.succeed("systemctl start acme-standalone.test.service")
-          acmeStandalone.wait_for_unit("acme-finished-standalone.test.target")
-
-      client.wait_for_unit("default.target")
-
       client.succeed("curl https://acme.test:15000/roots/0 > /tmp/ca.crt")
       client.succeed("curl https://acme.test:15000/intermediate-keys/0 >> /tmp/ca.crt")
 
-      with subtest("Can request certificate for nginx service"):
+      with subtest("Can request certificate with HTTPS-01 challenge"):
           webserver.wait_for_unit("acme-finished-a.example.test.target")
-          client.succeed(
-              "curl --cacert /tmp/ca.crt https://a.example.test/ | grep -qF 'hello world'"
-          )
+          check_fullchain(webserver, "a.example.test")
+          check_issuer(webserver, "a.example.test", "pebble")
+          check_connection(client, "a.example.test")
 
-      with subtest("Can add another certificate for nginx service"):
-          webserver.succeed(
-              "/run/current-system/specialisation/second-cert/bin/switch-to-configuration test"
-          )
-          webserver.wait_for_unit("acme-finished-b.example.test.target")
-          client.succeed(
-              "curl --cacert /tmp/ca.crt https://b.example.test/ | grep -qF 'hello world'"
-          )
+      with subtest("Can generate valid selfsigned certs"):
+          webserver.succeed("systemctl clean acme-a.example.test.service --what=state")
+          webserver.succeed("systemctl start acme-selfsigned-a.example.test.service")
+          check_fullchain(webserver, "a.example.test")
+          check_issuer(webserver, "a.example.test", "minica")
+          # Will succeed if nginx can load the certs
+          webserver.succeed("systemctl start nginx-config-reload.service")
+
+      with subtest("Can reload nginx when timer triggers renewal"):
+          webserver.succeed("systemctl start test-renew-nginx.target")
+          check_issuer(webserver, "a.example.test", "pebble")
+          check_connection(client, "a.example.test")
+
+      with subtest("Can reload web server when cert configuration changes"):
+          switch_to(webserver, "cert-change")
+          webserver.wait_for_unit("acme-finished-a.example.test.target")
+          check_connection_key_bits(client, "a.example.test", "384")
+          webserver.succeed("grep testing /var/lib/acme/a.example.test/test")
+
+      with subtest("Can request certificate with HTTPS-01 when nginx startup is delayed"):
+          switch_to(webserver, "slow-startup")
+          webserver.wait_for_unit("acme-finished-slow.example.com.target")
+          check_issuer(webserver, "slow.example.com", "pebble")
+          check_connection(client, "slow.example.com")
+
+      with subtest("Can request certificate for vhost + aliases (nginx)"):
+          # Check the key hash before and after adding an alias. It should not change.
+          # The previous test reverts the ed384 change
+          webserver.wait_for_unit("acme-finished-a.example.test.target")
+          keyhash_old = webserver.succeed("md5sum /var/lib/acme/a.example.test/key.pem")
+          switch_to(webserver, "nginx-aliases")
+          webserver.wait_for_unit("acme-finished-a.example.test.target")
+          check_issuer(webserver, "a.example.test", "pebble")
+          check_connection(client, "a.example.test")
+          check_connection(client, "b.example.test")
+          keyhash_new = webserver.succeed("md5sum /var/lib/acme/a.example.test/key.pem")
+          assert keyhash_old == keyhash_new
+
+      with subtest("Can request certificates for vhost + aliases (apache-httpd)"):
+          switch_to(webserver, "httpd-aliases")
+          webserver.wait_for_unit("acme-finished-c.example.test.target")
+          check_issuer(webserver, "c.example.test", "pebble")
+          check_connection(client, "c.example.test")
+          check_connection(client, "d.example.test")
+
+      with subtest("Can reload httpd when timer triggers renewal"):
+          # Switch to selfsigned first
+          webserver.succeed("systemctl clean acme-c.example.test.service --what=state")
+          webserver.succeed("systemctl start acme-selfsigned-c.example.test.service")
+          check_issuer(webserver, "c.example.test", "minica")
+          webserver.succeed("systemctl start httpd-config-reload.service")
+          webserver.succeed("systemctl start test-renew-httpd.target")
+          check_issuer(webserver, "c.example.test", "pebble")
+          check_connection(client, "c.example.test")
 
       with subtest("Can request wildcard certificates using DNS-01 challenge"):
-          webserver.succeed(
-              "${switchToNewServer}"
-          )
-          webserver.succeed(
-              "/run/current-system/specialisation/dns-01/bin/switch-to-configuration test"
-          )
+          switch_to(webserver, "dns-01")
           webserver.wait_for_unit("acme-finished-example.test.target")
-          client.succeed(
-              "curl --cacert /tmp/ca.crt https://c.example.test/ | grep -qF 'hello world'"
-          )
+          check_issuer(webserver, "example.test", "pebble")
+          check_connection(client, "dns.example.test")
     '';
 })
diff --git a/nixpkgs/nixos/tests/all-tests.nix b/nixpkgs/nixos/tests/all-tests.nix
index bd26fc906aaa..8048c885e15c 100644
--- a/nixpkgs/nixos/tests/all-tests.nix
+++ b/nixpkgs/nixos/tests/all-tests.nix
@@ -32,7 +32,10 @@ in
   beanstalkd = handleTest ./beanstalkd.nix {};
   bees = handleTest ./bees.nix {};
   bind = handleTest ./bind.nix {};
+  bitcoind = handleTest ./bitcoind.nix {};
   bittorrent = handleTest ./bittorrent.nix {};
+  bitwarden = handleTest ./bitwarden.nix {};
+  blockbook-frontend = handleTest ./blockbook-frontend.nix {};
   buildkite-agents = handleTest ./buildkite-agents.nix {};
   boot = handleTestOn ["x86_64-linux"] ./boot.nix {}; # syslinux is unsupported on aarch64
   boot-stage1 = handleTest ./boot-stage1.nix {};
@@ -46,6 +49,7 @@ in
   ceph-multi-node = handleTestOn ["x86_64-linux"] ./ceph-multi-node.nix {};
   certmgr = handleTest ./certmgr.nix {};
   cfssl = handleTestOn ["x86_64-linux"] ./cfssl.nix {};
+  charliecloud = handleTest ./charliecloud.nix {};
   chromium = (handleTestOn ["x86_64-linux"] ./chromium.nix {}).stable or {};
   cjdns = handleTest ./cjdns.nix {};
   clickhouse = handleTest ./clickhouse.nix {};
@@ -63,10 +67,13 @@ in
   containers-macvlans = handleTest ./containers-macvlans.nix {};
   containers-physical_interfaces = handleTest ./containers-physical_interfaces.nix {};
   containers-portforward = handleTest ./containers-portforward.nix {};
+  containers-reloadable = handleTest ./containers-reloadable.nix {};
   containers-restart_networking = handleTest ./containers-restart_networking.nix {};
   containers-tmpfs = handleTest ./containers-tmpfs.nix {};
+  convos = handleTest ./convos.nix {};
   corerad = handleTest ./corerad.nix {};
   couchdb = handleTest ./couchdb.nix {};
+  cri-o = handleTestOn ["x86_64-linux"] ./cri-o.nix {};
   deluge = handleTest ./deluge.nix {};
   dhparams = handleTest ./dhparams.nix {};
   dnscrypt-proxy2 = handleTestOn ["x86_64-linux"] ./dnscrypt-proxy2.nix {};
@@ -75,15 +82,13 @@ in
   docker = handleTestOn ["x86_64-linux"] ./docker.nix {};
   oci-containers = handleTestOn ["x86_64-linux"] ./oci-containers.nix {};
   docker-edge = handleTestOn ["x86_64-linux"] ./docker-edge.nix {};
-  docker-preloader = handleTestOn ["x86_64-linux"] ./docker-preloader.nix {};
   docker-registry = handleTest ./docker-registry.nix {};
   docker-tools = handleTestOn ["x86_64-linux"] ./docker-tools.nix {};
   docker-tools-overlay = handleTestOn ["x86_64-linux"] ./docker-tools-overlay.nix {};
   documize = handleTest ./documize.nix {};
   dokuwiki = handleTest ./dokuwiki.nix {};
   dovecot = handleTest ./dovecot.nix {};
-  # ec2-config doesn't work in a sandbox as the simulated ec2 instance needs network access
-  #ec2-config = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-config or {};
+  ec2-config = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-config or {};
   ec2-nixops = (handleTestOn ["x86_64-linux"] ./ec2.nix {}).boot-ec2-nixops or {};
   ecryptfs = handleTest ./ecryptfs.nix {};
   ejabberd = handleTest ./xmpp/ejabberd.nix {};
@@ -98,6 +103,7 @@ in
   ferm = handleTest ./ferm.nix {};
   firefox = handleTest ./firefox.nix {};
   firefox-esr = handleTest ./firefox.nix { esr = true; };
+  firejail = handleTest ./firejail.nix {};
   firewall = handleTest ./firewall.nix {};
   fish = handleTest ./fish.nix {};
   flannel = handleTestOn ["x86_64-linux"] ./flannel.nix {};
@@ -124,6 +130,7 @@ in
   grafana = handleTest ./grafana.nix {};
   graphite = handleTest ./graphite.nix {};
   graylog = handleTest ./graylog.nix {};
+  grub = handleTest ./grub.nix {};
   gvisor = handleTest ./gvisor.nix {};
   hadoop.hdfs = handleTestOn [ "x86_64-linux" ] ./hadoop/hdfs.nix {};
   hadoop.yarn = handleTestOn [ "x86_64-linux" ] ./hadoop/yarn.nix {};
@@ -148,6 +155,7 @@ in
   incron = handleTest ./incron.nix {};
   influxdb = handleTest ./influxdb.nix {};
   initrd-network-ssh = handleTest ./initrd-network-ssh {};
+  initrd-network-openvpn = handleTest ./initrd-network-openvpn {};
   initrdNetwork = handleTest ./initrd-network.nix {};
   installer = handleTest ./installer.nix {};
   iodine = handleTest ./iodine.nix {};
@@ -157,6 +165,7 @@ in
   jellyfin = handleTest ./jellyfin.nix {};
   jenkins = handleTest ./jenkins.nix {};
   jirafeau = handleTest ./jirafeau.nix {};
+  jitsi-meet = handleTest ./jitsi-meet.nix {};
   k3s = handleTest ./k3s.nix {};
   kafka = handleTest ./kafka.nix {};
   keepalived = handleTest ./keepalived.nix {};
@@ -188,12 +197,10 @@ in
   mailcatcher = handleTest ./mailcatcher.nix {};
   mariadb-galera-mariabackup = handleTest ./mysql/mariadb-galera-mariabackup.nix {};
   mariadb-galera-rsync = handleTest ./mysql/mariadb-galera-rsync.nix {};
-  mathics = handleTest ./mathics.nix {};
   matomo = handleTest ./matomo.nix {};
   matrix-synapse = handleTest ./matrix-synapse.nix {};
   mediawiki = handleTest ./mediawiki.nix {};
   memcached = handleTest ./memcached.nix {};
-  mesos = handleTest ./mesos.nix {};
   metabase = handleTest ./metabase.nix {};
   miniflux = handleTest ./miniflux.nix {};
   minio = handleTest ./minio.nix {};
@@ -217,6 +224,7 @@ in
   nat.firewall = handleTest ./nat.nix { withFirewall = true; };
   nat.firewall-conntrack = handleTest ./nat.nix { withFirewall = true; withConntrackHelpers = true; };
   nat.standalone = handleTest ./nat.nix { withFirewall = false; };
+  ncdns = handleTest ./ncdns.nix {};
   ndppd = handleTest ./ndppd.nix {};
   neo4j = handleTest ./neo4j.nix {};
   specialisation = handleTest ./specialisation.nix {};
@@ -236,6 +244,7 @@ in
   nginx-pubhtml = handleTest ./nginx-pubhtml.nix {};
   nginx-sandbox = handleTestOn ["x86_64-linux"] ./nginx-sandbox.nix {};
   nginx-sso = handleTest ./nginx-sso.nix {};
+  nginx-variants = handleTest ./nginx-variants.nix {};
   nix-ssh-serve = handleTest ./nix-ssh-serve.nix {};
   nixos-generate-config = handleTest ./nixos-generate-config.nix {};
   novacomd = handleTestOn ["x86_64-linux"] ./novacomd.nix {};
@@ -260,9 +269,12 @@ in
   pgjwt = handleTest ./pgjwt.nix {};
   pgmanage = handleTest ./pgmanage.nix {};
   php = handleTest ./php {};
+  pinnwand = handleTest ./pinnwand.nix {};
   plasma5 = handleTest ./plasma5.nix {};
   plotinus = handleTest ./plotinus.nix {};
-  podman = handleTest ./podman.nix {};
+  podman = handleTestOn ["x86_64-linux"] ./podman.nix {};
+  postfix = handleTest ./postfix.nix {};
+  postfix-raise-smtpd-tls-security-level = handleTest ./postfix-raise-smtpd-tls-security-level.nix {};
   postgis = handleTest ./postgis.nix {};
   postgresql = handleTest ./postgresql.nix {};
   postgresql-wal-receiver = handleTest ./postgresql-wal-receiver.nix {};
@@ -276,6 +288,7 @@ in
   prosody = handleTest ./xmpp/prosody.nix {};
   prosodyMysql = handleTest ./xmpp/prosody-mysql.nix {};
   proxy = handleTest ./proxy.nix {};
+  pt2-clone = handleTest ./pt2-clone.nix {};
   qboot = handleTestOn ["x86_64-linux" "i686-linux"] ./qboot.nix {};
   quagga = handleTest ./quagga.nix {};
   quorum = handleTest ./quorum.nix {};
@@ -285,6 +298,7 @@ in
   redis = handleTest ./redis.nix {};
   redmine = handleTest ./redmine.nix {};
   restic = handleTest ./restic.nix {};
+  robustirc-bridge = handleTest ./robustirc-bridge.nix {};
   roundcube = handleTest ./roundcube.nix {};
   rspamd = handleTest ./rspamd.nix {};
   rss2email = handleTest ./rss2email.nix {};
@@ -295,27 +309,34 @@ in
   sanoid = handleTest ./sanoid.nix {};
   sddm = handleTest ./sddm.nix {};
   service-runner = handleTest ./service-runner.nix {};
+  shadowsocks = handleTest ./shadowsocks {};
+  shattered-pixel-dungeon = handleTest ./shattered-pixel-dungeon.nix {};
   shiori = handleTest ./shiori.nix {};
   signal-desktop = handleTest ./signal-desktop.nix {};
   simple = handleTest ./simple.nix {};
   slurm = handleTest ./slurm.nix {};
   smokeping = handleTest ./smokeping.nix {};
+  snapcast = handleTest ./snapcast.nix {};
   snapper = handleTest ./snapper.nix {};
   sogo = handleTest ./sogo.nix {};
   solr = handleTest ./solr.nix {};
   spacecookie = handleTest ./spacecookie.nix {};
   spike = handleTest ./spike.nix {};
   sonarr = handleTest ./sonarr.nix {};
+  sslh = handleTest ./sslh.nix {};
+  sssd = handleTestOn ["x86_64-linux"] ./sssd.nix {};
+  sssd-ldap = handleTestOn ["x86_64-linux"] ./sssd-ldap.nix {};
   strongswan-swanctl = handleTest ./strongswan-swanctl.nix {};
   sudo = handleTest ./sudo.nix {};
   switchTest = handleTest ./switch-test.nix {};
   sympa = handleTest ./sympa.nix {};
+  syncthing = handleTest ./syncthing.nix {};
   syncthing-init = handleTest ./syncthing-init.nix {};
   syncthing-relay = handleTest ./syncthing-relay.nix {};
   systemd = handleTest ./systemd.nix {};
   systemd-analyze = handleTest ./systemd-analyze.nix {};
   systemd-binfmt = handleTestOn ["x86_64-linux"] ./systemd-binfmt.nix {};
-  systemd-boot = handleTestOn ["x86_64-linux"] ./systemd-boot.nix {};
+  systemd-boot = handleTest ./systemd-boot.nix {};
   systemd-confinement = handleTest ./systemd-confinement.nix {};
   systemd-timesyncd = handleTest ./systemd-timesyncd.nix {};
   systemd-networkd-vrf = handleTest ./systemd-networkd-vrf.nix {};
@@ -342,9 +363,11 @@ in
   unit-php = handleTest ./web-servers/unit-php.nix {};
   upnp = handleTest ./upnp.nix {};
   uwsgi = handleTest ./uwsgi.nix {};
+  v2ray = handleTest ./v2ray.nix {};
   vault = handleTest ./vault.nix {};
   victoriametrics = handleTest ./victoriametrics.nix {};
   virtualbox = handleTestOn ["x86_64-linux"] ./virtualbox.nix {};
+  wasabibackend = handleTest ./wasabibackend.nix {};
   wireguard = handleTest ./wireguard {};
   wordpress = handleTest ./wordpress.nix {};
   xandikos = handleTest ./xandikos.nix {};
@@ -356,6 +379,7 @@ in
   yabar = handleTest ./yabar.nix {};
   yggdrasil = handleTest ./yggdrasil.nix {};
   zfs = handleTest ./zfs.nix {};
+  zigbee2mqtt = handleTest ./zigbee2mqtt.nix {};
   zoneminder = handleTest ./zoneminder.nix {};
   zookeeper = handleTest ./zookeeper.nix {};
   zsh-history = handleTest ./zsh-history.nix {};
diff --git a/nixpkgs/nixos/tests/bcachefs.nix b/nixpkgs/nixos/tests/bcachefs.nix
index 0541e5803225..3f116d7df92a 100644
--- a/nixpkgs/nixos/tests/bcachefs.nix
+++ b/nixpkgs/nixos/tests/bcachefs.nix
@@ -13,7 +13,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
     machine.succeed("modprobe bcachefs")
     machine.succeed("bcachefs version")
     machine.succeed("ls /dev")
-    
+
     machine.succeed(
         "mkdir /tmp/mnt",
         "udevadm settle",
diff --git a/nixpkgs/nixos/tests/bitcoind.nix b/nixpkgs/nixos/tests/bitcoind.nix
new file mode 100644
index 000000000000..09f3e4a6ec07
--- /dev/null
+++ b/nixpkgs/nixos/tests/bitcoind.nix
@@ -0,0 +1,46 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "bitcoind";
+  meta = with pkgs.stdenv.lib; {
+    maintainers = with maintainers; [ _1000101 ];
+  };
+
+  machine = { ... }: {
+    services.bitcoind."mainnet" = {
+      enable = true;
+      rpc = {
+        port = 8332;
+        users.rpc.passwordHMAC = "acc2374e5f9ba9e62a5204d3686616cf$53abdba5e67a9005be6a27ca03a93ce09e58854bc2b871523a0d239a72968033";
+        users.rpc2.passwordHMAC = "1495e4a3ad108187576c68f7f9b5ddc5$accce0881c74aa01bb8960ff3bdbd39f607fd33178147679e055a4ac35f53225";
+      };
+    };
+    services.bitcoind."testnet" = {
+      enable = true;
+      configFile = "/test.blank";
+      testnet = true;
+      rpc = {
+        port = 18332;
+      };
+      extraCmdlineOptions = [ "-rpcuser=rpc" "-rpcpassword=rpc" "-rpcauth=rpc2:1495e4a3ad108187576c68f7f9b5ddc5$accce0881c74aa01bb8960ff3bdbd39f607fd33178147679e055a4ac35f53225" ];
+    };
+  };
+
+  testScript = ''
+    start_all()
+
+    machine.wait_for_unit("bitcoind-mainnet.service")
+    machine.wait_for_unit("bitcoind-testnet.service")
+
+    machine.wait_until_succeeds(
+        'curl --user rpc:rpc --data-binary \'{"jsonrpc": "1.0", "id":"curltest", "method": "getblockchaininfo", "params": [] }\' -H \'content-type: text/plain;\' localhost:8332 |  grep \'"chain":"main"\' '
+    )
+    machine.wait_until_succeeds(
+        'curl --user rpc2:rpc2 --data-binary \'{"jsonrpc": "1.0", "id":"curltest", "method": "getblockchaininfo", "params": [] }\' -H \'content-type: text/plain;\' localhost:8332 |  grep \'"chain":"main"\' '
+    )
+    machine.wait_until_succeeds(
+        'curl --user rpc:rpc --data-binary \'{"jsonrpc": "1.0", "id":"curltest", "method": "getblockchaininfo", "params": [] }\' -H \'content-type: text/plain;\' localhost:18332 |  grep \'"chain":"test"\' '
+    )
+    machine.wait_until_succeeds(
+        'curl --user rpc2:rpc2 --data-binary \'{"jsonrpc": "1.0", "id":"curltest", "method": "getblockchaininfo", "params": [] }\' -H \'content-type: text/plain;\' localhost:18332 |  grep \'"chain":"test"\' '
+    )
+  '';
+})
diff --git a/nixpkgs/nixos/tests/bittorrent.nix b/nixpkgs/nixos/tests/bittorrent.nix
index 0a97d5556a26..c195b60cd569 100644
--- a/nixpkgs/nixos/tests/bittorrent.nix
+++ b/nixpkgs/nixos/tests/bittorrent.nix
@@ -19,6 +19,7 @@ let
   externalClient2Address = "80.100.100.2";
   externalTrackerAddress = "80.100.100.3";
 
+  download-dir = "/var/lib/transmission/Downloads";
   transmissionConfig = { ... }: {
     environment.systemPackages = [ pkgs.transmission ];
     services.transmission = {
@@ -26,6 +27,7 @@ let
       settings = {
         dht-enabled = false;
         message-level = 3;
+        inherit download-dir;
       };
     };
   };
@@ -117,12 +119,12 @@ in
       router.wait_for_unit("miniupnpd")
 
       # Create the torrent.
-      tracker.succeed("mkdir /tmp/data")
+      tracker.succeed("mkdir ${download-dir}/data")
       tracker.succeed(
-          "cp ${file} /tmp/data/test.tar.bz2"
+          "cp ${file} ${download-dir}/data/test.tar.bz2"
       )
       tracker.succeed(
-          "transmission-create /tmp/data/test.tar.bz2 --private --tracker http://${externalTrackerAddress}:6969/announce --outfile /tmp/test.torrent"
+          "transmission-create ${download-dir}/data/test.tar.bz2 --private --tracker http://${externalTrackerAddress}:6969/announce --outfile /tmp/test.torrent"
       )
       tracker.succeed("chmod 644 /tmp/test.torrent")
 
@@ -133,18 +135,16 @@ in
 
       # Start the initial seeder.
       tracker.succeed(
-          "transmission-remote --add /tmp/test.torrent --no-portmap --no-dht --download-dir /tmp/data"
+          "transmission-remote --add /tmp/test.torrent --no-portmap --no-dht --download-dir ${download-dir}/data"
       )
 
       # Now we should be able to download from the client behind the NAT.
       tracker.wait_for_unit("httpd")
       client1.wait_for_unit("network-online.target")
+      client1.succeed("transmission-remote --add http://${externalTrackerAddress}/test.torrent >&2 &")
+      client1.wait_for_file("${download-dir}/test.tar.bz2")
       client1.succeed(
-          "transmission-remote --add http://${externalTrackerAddress}/test.torrent --download-dir /tmp >&2 &"
-      )
-      client1.wait_for_file("/tmp/test.tar.bz2")
-      client1.succeed(
-          "cmp /tmp/test.tar.bz2 ${file}"
+          "cmp ${download-dir}/test.tar.bz2 ${file}"
       )
 
       # Bring down the initial seeder.
@@ -154,11 +154,11 @@ in
       # the first client created a NAT hole in the router.
       client2.wait_for_unit("network-online.target")
       client2.succeed(
-          "transmission-remote --add http://${externalTrackerAddress}/test.torrent --no-portmap --no-dht --download-dir /tmp >&2 &"
+          "transmission-remote --add http://${externalTrackerAddress}/test.torrent --no-portmap --no-dht >&2 &"
       )
-      client2.wait_for_file("/tmp/test.tar.bz2")
+      client2.wait_for_file("${download-dir}/test.tar.bz2")
       client2.succeed(
-          "cmp /tmp/test.tar.bz2 ${file}"
+          "cmp ${download-dir}/test.tar.bz2 ${file}"
       )
     '';
 })
diff --git a/nixpkgs/nixos/tests/bitwarden.nix b/nixpkgs/nixos/tests/bitwarden.nix
new file mode 100644
index 000000000000..a47c77cec213
--- /dev/null
+++ b/nixpkgs/nixos/tests/bitwarden.nix
@@ -0,0 +1,188 @@
+{ system ? builtins.currentSystem
+, config ? { }
+, pkgs ? import ../.. { inherit system config; }
+}:
+
+# These tests will:
+#  * Set up a bitwarden-rs server
+#  * Have Firefox use the web vault to create an account, log in, and save a password to the valut
+#  * Have the bw cli log in and read that password from the vault
+#
+# Note that Firefox must be on the same machine as the server for WebCrypto APIs to be available (or HTTPS must be configured)
+#
+# The same tests should work without modification on the official bitwarden server, if we ever package that.
+
+with import ../lib/testing-python.nix { inherit system pkgs; };
+with pkgs.lib;
+let
+  backends = [ "sqlite" "mysql" "postgresql" ];
+
+  dbPassword = "please_dont_hack";
+
+  userEmail = "meow@example.com";
+  userPassword = "also_super_secret_ZJWpBKZi668QGt"; # Must be complex to avoid interstitial warning on the signup page
+
+  storedPassword = "seeeecret";
+
+  makeBitwardenTest = backend: makeTest {
+    name = "bitwarden_rs-${backend}";
+    meta = {
+      maintainers = with pkgs.stdenv.lib.maintainers; [ jjjollyjim ];
+    };
+
+    nodes = {
+      server = { pkgs, ... }:
+        let backendConfig = {
+          mysql = {
+            services.mysql = {
+              enable = true;
+              initialScript = pkgs.writeText "mysql-init.sql" ''
+                CREATE DATABASE bitwarden;
+                CREATE USER 'bitwardenuser'@'localhost' IDENTIFIED BY '${dbPassword}';
+                GRANT ALL ON `bitwarden`.* TO 'bitwardenuser'@'localhost';
+                FLUSH PRIVILEGES;
+              '';
+              package = pkgs.mysql;
+            };
+
+            services.bitwarden_rs.config.databaseUrl = "mysql://bitwardenuser:${dbPassword}@localhost/bitwarden";
+
+            systemd.services.bitwarden_rs.after = [ "mysql.service" ];
+          };
+
+          postgresql = {
+            services.postgresql = {
+              enable = true;
+              initialScript = pkgs.writeText "postgresql-init.sql" ''
+                CREATE DATABASE bitwarden;
+                CREATE USER bitwardenuser WITH PASSWORD '${dbPassword}';
+                GRANT ALL PRIVILEGES ON DATABASE bitwarden TO bitwardenuser;
+              '';
+            };
+
+            services.bitwarden_rs.config.databaseUrl = "postgresql://bitwardenuser:${dbPassword}@localhost/bitwarden";
+
+            systemd.services.bitwarden_rs.after = [ "postgresql.service" ];
+          };
+
+          sqlite = { };
+        };
+        in
+        mkMerge [
+          backendConfig.${backend}
+          {
+            services.bitwarden_rs = {
+              enable = true;
+              dbBackend = backend;
+              config.rocketPort = 80;
+            };
+
+            networking.firewall.allowedTCPPorts = [ 80 ];
+
+            environment.systemPackages =
+              let
+                testRunner = pkgs.writers.writePython3Bin "test-runner"
+                  {
+                    libraries = [ pkgs.python3Packages.selenium ];
+                  } ''
+                  from selenium.webdriver import Firefox
+                  from selenium.webdriver.firefox.options import Options
+                  from selenium.webdriver.support.ui import WebDriverWait
+                  from selenium.webdriver.support import expected_conditions as EC
+
+                  options = Options()
+                  options.add_argument('--headless')
+                  driver = Firefox(options=options)
+
+                  driver.implicitly_wait(20)
+                  driver.get('http://localhost/#/register')
+
+                  wait = WebDriverWait(driver, 10)
+
+                  wait.until(EC.title_contains("Create Account"))
+
+                  driver.find_element_by_css_selector('input#email').send_keys(
+                    '${userEmail}'
+                  )
+                  driver.find_element_by_css_selector('input#name').send_keys(
+                    'A Cat'
+                  )
+                  driver.find_element_by_css_selector('input#masterPassword').send_keys(
+                    '${userPassword}'
+                  )
+                  driver.find_element_by_css_selector('input#masterPasswordRetype').send_keys(
+                    '${userPassword}'
+                  )
+
+                  driver.find_element_by_xpath("//button[contains(., 'Submit')]").click()
+
+                  wait.until_not(EC.title_contains("Create Account"))
+
+                  driver.find_element_by_css_selector('input#masterPassword').send_keys(
+                    '${userPassword}'
+                  )
+                  driver.find_element_by_xpath("//button[contains(., 'Log In')]").click()
+
+                  wait.until(EC.title_contains("My Vault"))
+
+                  driver.find_element_by_xpath("//button[contains(., 'Add Item')]").click()
+
+                  driver.find_element_by_css_selector('input#name').send_keys(
+                    'secrets'
+                  )
+                  driver.find_element_by_css_selector('input#loginPassword').send_keys(
+                    '${storedPassword}'
+                  )
+
+                  driver.find_element_by_xpath("//button[contains(., 'Save')]").click()
+                '';
+              in
+              [ pkgs.firefox-unwrapped pkgs.geckodriver testRunner ];
+
+            virtualisation.memorySize = 768;
+          }
+        ];
+
+      client = { pkgs, ... }:
+        {
+          environment.systemPackages = [ pkgs.bitwarden-cli ];
+        };
+    };
+
+    testScript = ''
+      start_all()
+      server.wait_for_unit("bitwarden_rs.service")
+      server.wait_for_open_port(80)
+
+      with subtest("configure the cli"):
+          client.succeed("bw --nointeraction config server http://server")
+
+      with subtest("can't login to nonexistant account"):
+          client.fail(
+              "bw --nointeraction --raw login ${userEmail} ${userPassword}"
+          )
+
+      with subtest("use the web interface to sign up, log in, and save a password"):
+          server.succeed("PYTHONUNBUFFERED=1 test-runner | systemd-cat -t test-runner")
+
+      with subtest("log in with the cli"):
+          key = client.succeed(
+              "bw --nointeraction --raw login ${userEmail} ${userPassword}"
+          ).strip()
+
+      with subtest("sync with the cli"):
+          client.succeed(f"bw --nointeraction --raw --session {key} sync -f")
+
+      with subtest("get the password with the cli"):
+          password = client.succeed(
+              f"bw --nointeraction --raw --session {key} list items | ${pkgs.jq}/bin/jq -r .[].login.password"
+          )
+          assert password.strip() == "${storedPassword}"
+    '';
+  };
+in
+builtins.listToAttrs (
+  map
+    (backend: { name = backend; value = makeBitwardenTest backend; })
+    backends
+)
diff --git a/nixpkgs/nixos/tests/blockbook-frontend.nix b/nixpkgs/nixos/tests/blockbook-frontend.nix
new file mode 100644
index 000000000000..742a02999e74
--- /dev/null
+++ b/nixpkgs/nixos/tests/blockbook-frontend.nix
@@ -0,0 +1,28 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "blockbook-frontend";
+  meta = with pkgs.stdenv.lib; {
+    maintainers = with maintainers; [ _1000101 ];
+  };
+
+  machine = { ... }: {
+    services.blockbook-frontend."test" = {
+      enable = true;
+    };
+    services.bitcoind.mainnet = {
+      enable = true;
+      rpc = {
+        port = 8030;
+        users.rpc.passwordHMAC = "acc2374e5f9ba9e62a5204d3686616cf$53abdba5e67a9005be6a27ca03a93ce09e58854bc2b871523a0d239a72968033";
+      };
+    };
+  };
+
+  testScript = ''
+    start_all()
+    machine.wait_for_unit("blockbook-frontend-test.service")
+
+    machine.wait_for_open_port(9030)
+
+    machine.succeed("curl -sSfL http://localhost:9030 | grep 'Blockbook'")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/borgbackup.nix b/nixpkgs/nixos/tests/borgbackup.nix
index d97471e293e8..bf37eb8607b2 100644
--- a/nixpkgs/nixos/tests/borgbackup.nix
+++ b/nixpkgs/nixos/tests/borgbackup.nix
@@ -43,7 +43,7 @@ in {
   nodes = {
     client = { ... }: {
       services.borgbackup.jobs = {
-        
+
         local = {
           paths = dataDir;
           repo = localRepo;
diff --git a/nixpkgs/nixos/tests/caddy.nix b/nixpkgs/nixos/tests/caddy.nix
index 144d83179a16..445a7fa6b0b4 100644
--- a/nixpkgs/nixos/tests/caddy.nix
+++ b/nixpkgs/nixos/tests/caddy.nix
@@ -1,7 +1,7 @@
 import ./make-test-python.nix ({ pkgs, ... }: {
   name = "caddy";
   meta = with pkgs.stdenv.lib.maintainers; {
-    maintainers = [ xfix ];
+    maintainers = [ xfix filalex77 ];
   };
 
   nodes = {
@@ -9,9 +9,10 @@ import ./make-test-python.nix ({ pkgs, ... }: {
       services.caddy.enable = true;
       services.caddy.config = ''
         http://localhost {
-          gzip
+          encode gzip
 
-          root ${
+          file_server
+          root * ${
             pkgs.runCommand "testdir" {} ''
               mkdir "$out"
               echo hello world > "$out/example.html"
@@ -23,9 +24,10 @@ import ./make-test-python.nix ({ pkgs, ... }: {
       specialisation.etag.configuration = {
         services.caddy.config = lib.mkForce ''
           http://localhost {
-            gzip
+            encode gzip
 
-            root ${
+            file_server
+            root * ${
               pkgs.runCommand "testdir2" {} ''
                 mkdir "$out"
                 echo changed > "$out/example.html"
@@ -59,9 +61,11 @@ import ./make-test-python.nix ({ pkgs, ... }: {
         )
         etag = etag.replace("\r\n", " ")
         http_code = webserver.succeed(
-            "curl -w \"%{{http_code}}\" -X HEAD -H 'If-None-Match: {}' {}".format(etag, url)
+            "curl --silent --show-error -o /dev/null -w \"%{{http_code}}\" --head -H 'If-None-Match: {}' {}".format(
+                etag, url
+            )
         )
-        assert int(http_code) == 304, "HTTP code is not 304"
+        assert int(http_code) == 304, "HTTP code is {}, expected 304".format(http_code)
         return etag
 
 
diff --git a/nixpkgs/nixos/tests/ceph-multi-node.nix b/nixpkgs/nixos/tests/ceph-multi-node.nix
index 22fe5cada480..e26c6d5d670c 100644
--- a/nixpkgs/nixos/tests/ceph-multi-node.nix
+++ b/nixpkgs/nixos/tests/ceph-multi-node.nix
@@ -183,15 +183,15 @@ let
     monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'")
 
     monA.succeed(
-        "ceph osd pool create multi-node-test 128 128",
+        "ceph osd pool create multi-node-test 32 32",
         "ceph osd pool ls | grep 'multi-node-test'",
         "ceph osd pool rename multi-node-test multi-node-other-test",
         "ceph osd pool ls | grep 'multi-node-other-test'",
     )
-    monA.wait_until_succeeds("ceph -s | grep '1 pools, 128 pgs'")
+    monA.wait_until_succeeds("ceph -s | grep '2 pools, 33 pgs'")
     monA.succeed("ceph osd pool set multi-node-other-test size 2")
     monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'")
-    monA.wait_until_succeeds("ceph -s | grep '128 active+clean'")
+    monA.wait_until_succeeds("ceph -s | grep '33 active+clean'")
     monA.fail(
         "ceph osd pool ls | grep 'multi-node-test'",
         "ceph osd pool delete multi-node-other-test multi-node-other-test --yes-i-really-really-mean-it",
diff --git a/nixpkgs/nixos/tests/ceph-single-node.nix b/nixpkgs/nixos/tests/ceph-single-node.nix
index 01c4b4138451..98528f6317bc 100644
--- a/nixpkgs/nixos/tests/ceph-single-node.nix
+++ b/nixpkgs/nixos/tests/ceph-single-node.nix
@@ -143,12 +143,12 @@ let
     monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'")
 
     monA.succeed(
-        "ceph osd pool create single-node-test 128 128",
+        "ceph osd pool create single-node-test 32 32",
         "ceph osd pool ls | grep 'single-node-test'",
         "ceph osd pool rename single-node-test single-node-other-test",
         "ceph osd pool ls | grep 'single-node-other-test'",
     )
-    monA.wait_until_succeeds("ceph -s | grep '1 pools, 128 pgs'")
+    monA.wait_until_succeeds("ceph -s | grep '2 pools, 33 pgs'")
     monA.succeed(
         "ceph osd getcrushmap -o crush",
         "crushtool -d crush -o decrushed",
@@ -158,7 +158,7 @@ let
         "ceph osd pool set single-node-other-test size 2",
     )
     monA.wait_until_succeeds("ceph -s | grep 'HEALTH_OK'")
-    monA.wait_until_succeeds("ceph -s | grep '128 active+clean'")
+    monA.wait_until_succeeds("ceph -s | grep '33 active+clean'")
     monA.fail(
         "ceph osd pool ls | grep 'multi-node-test'",
         "ceph osd pool delete single-node-other-test single-node-other-test --yes-i-really-really-mean-it",
diff --git a/nixpkgs/nixos/tests/charliecloud.nix b/nixpkgs/nixos/tests/charliecloud.nix
new file mode 100644
index 000000000000..acba41e228a6
--- /dev/null
+++ b/nixpkgs/nixos/tests/charliecloud.nix
@@ -0,0 +1,43 @@
+# This test checks charliecloud image construction and run
+
+import ./make-test-python.nix ({ pkgs, ...} : let
+
+  dockerfile = pkgs.writeText "Dockerfile" ''
+    FROM nix
+    RUN mkdir /home /tmp
+    RUN touch /etc/passwd /etc/group
+    CMD ["true"]
+  '';
+
+in {
+  name = "charliecloud";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ bzizou ];
+  };
+
+  nodes = {
+    host = { ... }: {
+      environment.systemPackages = [ pkgs.charliecloud ];
+      virtualisation.docker.enable = true;
+      users.users.alice = {
+        isNormalUser = true;
+        extraGroups = [ "docker" ];
+      };
+    };
+  };
+
+  testScript = ''
+    host.start()
+    host.wait_for_unit("docker.service")
+    host.succeed(
+        'su - alice -c "docker load --input=${pkgs.dockerTools.examples.nix}"'
+    )
+    host.succeed(
+        "cp ${dockerfile} /home/alice/Dockerfile"
+    )
+    host.succeed('su - alice -c "ch-build -t hello ."')
+    host.succeed('su - alice -c "ch-builder2tar hello /var/tmp"')
+    host.succeed('su - alice -c "ch-tar2dir /var/tmp/hello.tar.gz /var/tmp"')
+    host.succeed('su - alice -c "ch-run /var/tmp/hello -- echo Running_From_Container_OK"')
+  '';
+})
diff --git a/nixpkgs/nixos/tests/codimd.nix b/nixpkgs/nixos/tests/codimd.nix
index b1acbf4a8322..aa581dfeb584 100644
--- a/nixpkgs/nixos/tests/codimd.nix
+++ b/nixpkgs/nixos/tests/codimd.nix
@@ -21,7 +21,15 @@ import ./make-test-python.nix ({ pkgs, lib, ... }:
       services = {
         codimd = {
           enable = true;
-          configuration.dbURL = "postgres://codimd:snakeoilpassword@localhost:5432/codimddb";
+          configuration.dbURL = "postgres://codimd:\${DB_PASSWORD}@localhost:5432/codimddb";
+
+          /*
+           * Do not use pkgs.writeText for secrets as
+           * they will end up in the world-readable Nix store.
+           */
+          environmentFile = pkgs.writeText "codimd-env" ''
+            DB_PASSWORD=snakeoilpassword
+          '';
         };
         postgresql = {
           enable = true;
diff --git a/nixpkgs/nixos/tests/common/acme/client/default.nix b/nixpkgs/nixos/tests/common/acme/client/default.nix
index 80893da02524..1e9885e375c7 100644
--- a/nixpkgs/nixos/tests/common/acme/client/default.nix
+++ b/nixpkgs/nixos/tests/common/acme/client/default.nix
@@ -1,15 +1,14 @@
 { lib, nodes, pkgs, ... }:
-
 let
-  acme-ca = nodes.acme.config.test-support.acme.caCert;
-in
+  caCert = nodes.acme.config.test-support.acme.caCert;
+  caDomain = nodes.acme.config.test-support.acme.caDomain;
 
-{
+in {
   security.acme = {
-    server = "https://acme.test/dir";
+    server = "https://${caDomain}/dir";
     email = "hostmaster@example.test";
     acceptTerms = true;
   };
 
-  security.pki.certificateFiles = [ acme-ca ];
+  security.pki.certificateFiles = [ caCert ];
 }
diff --git a/nixpkgs/nixos/tests/common/acme/server/default.nix b/nixpkgs/nixos/tests/common/acme/server/default.nix
index 1a0ee882572c..4d8e664c4e17 100644
--- a/nixpkgs/nixos/tests/common/acme/server/default.nix
+++ b/nixpkgs/nixos/tests/common/acme/server/default.nix
@@ -3,7 +3,7 @@
 #   config.test-support.acme.caCert
 #
 # This value can be used inside the configuration of other test nodes to inject
-# the snakeoil certificate into security.pki.certificateFiles or into package
+# the test certificate into security.pki.certificateFiles or into package
 # overlays.
 #
 # Another value that's needed if you don't use a custom resolver (see below for
@@ -50,19 +50,13 @@
 # Also make sure that whenever you use a resolver from a different test node
 # that it has to be started _before_ the ACME service.
 { config, pkgs, lib, ... }:
-
-
 let
-  snakeOilCerts = import ./snakeoil-certs.nix;
-
-  wfeDomain = "acme.test";
-  wfeCertFile = snakeOilCerts.${wfeDomain}.cert;
-  wfeKeyFile = snakeOilCerts.${wfeDomain}.key;
+  testCerts = import ./snakeoil-certs.nix {
+    minica = pkgs.minica;
+    mkDerivation = pkgs.stdenv.mkDerivation;
+  };
+  domain = testCerts.domain;
 
-  siteDomain = "acme.test";
-  siteCertFile = snakeOilCerts.${siteDomain}.cert;
-  siteKeyFile = snakeOilCerts.${siteDomain}.key;
-  pebble = pkgs.pebble;
   resolver = let
     message = "You need to define a resolver for the acme test module.";
     firstNS = lib.head config.networking.nameservers;
@@ -71,8 +65,9 @@ let
   pebbleConf.pebble = {
     listenAddress = "0.0.0.0:443";
     managementListenAddress = "0.0.0.0:15000";
-    certificate = snakeOilCerts.${wfeDomain}.cert;
-    privateKey = snakeOilCerts.${wfeDomain}.key;
+    # These certs and keys are used for the Web Front End (WFE)
+    certificate = testCerts.${domain}.cert;
+    privateKey = testCerts.${domain}.key;
     httpPort = 80;
     tlsPort = 443;
     ocspResponderURL = "http://0.0.0.0:4002";
@@ -80,18 +75,30 @@ let
   };
 
   pebbleConfFile = pkgs.writeText "pebble.conf" (builtins.toJSON pebbleConf);
-  pebbleDataDir = "/root/pebble";
 
 in {
   imports = [ ../../resolver.nix ];
 
-  options.test-support.acme.caCert = lib.mkOption {
-    type = lib.types.path;
-    description = ''
-      A certificate file to use with the <literal>nodes</literal> attribute to
-      inject the snakeoil CA certificate used in the ACME server into
-      <option>security.pki.certificateFiles</option>.
-    '';
+  options.test-support.acme = with lib; {
+    caDomain = mkOption {
+      type = types.str;
+      readOnly = true;
+      default = domain;
+      description = ''
+        A domain name to use with the <literal>nodes</literal> attribute to
+        identify the CA server.
+      '';
+    };
+    caCert = mkOption {
+      type = types.path;
+      readOnly = true;
+      default = testCerts.ca.cert;
+      description = ''
+        A certificate file to use with the <literal>nodes</literal> attribute to
+        inject the test CA certificate used in the ACME server into
+        <option>security.pki.certificateFiles</option>.
+      '';
+    };
   };
 
   config = {
@@ -99,35 +106,32 @@ in {
       resolver.enable = let
         isLocalResolver = config.networking.nameservers == [ "127.0.0.1" ];
       in lib.mkOverride 900 isLocalResolver;
-      acme.caCert = snakeOilCerts.ca.cert;
     };
 
     # This has priority 140, because modules/testing/test-instrumentation.nix
     # already overrides this with priority 150.
     networking.nameservers = lib.mkOverride 140 [ "127.0.0.1" ];
-    networking.firewall.enable = false;
+    networking.firewall.allowedTCPPorts = [ 80 443 15000 4002 ];
 
     networking.extraHosts = ''
-      127.0.0.1 ${wfeDomain}
-      ${config.networking.primaryIPAddress} ${wfeDomain} ${siteDomain}
+      127.0.0.1 ${domain}
+      ${config.networking.primaryIPAddress} ${domain}
     '';
 
     systemd.services = {
       pebble = {
         enable = true;
         description = "Pebble ACME server";
-        requires = [ ];
         wantedBy = [ "network.target" ];
-        preStart = ''
-          mkdir ${pebbleDataDir}
-        '';
-        script = ''
-          cd ${pebbleDataDir}
-          ${pebble}/bin/pebble -config ${pebbleConfFile}
-        '';
+
         serviceConfig = {
+          RuntimeDirectory = "pebble";
+          WorkingDirectory = "/run/pebble";
+
           # Required to bind on privileged ports.
           AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
+
+          ExecStart = "${pkgs.pebble}/bin/pebble -config ${pebbleConfFile}";
         };
       };
     };
diff --git a/nixpkgs/nixos/tests/common/acme/server/mkcerts.nix b/nixpkgs/nixos/tests/common/acme/server/mkcerts.nix
deleted file mode 100644
index 2474019cbac3..000000000000
--- a/nixpkgs/nixos/tests/common/acme/server/mkcerts.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-{ pkgs ? import <nixpkgs> {}
-, lib ? pkgs.lib
-, domains ? [ "acme.test" ]
-}:
-
-pkgs.runCommand "acme-snakeoil-ca" {
-  nativeBuildInputs = [ pkgs.openssl ];
-} ''
-  addpem() {
-    local file="$1"; shift
-    local storeFileName="$(IFS=.; echo "$*")"
-
-    echo -n "  " >> "$out"
-
-    # Every following argument is an attribute, so let's recurse and check
-    # every attribute whether it must be quoted and write it into $out.
-    while [ -n "$1" ]; do
-      if expr match "$1" '^[a-zA-Z][a-zA-Z0-9]*$' > /dev/null; then
-        echo -n "$1" >> "$out"
-      else
-        echo -n '"' >> "$out"
-        echo -n "$1" | sed -e 's/["$]/\\&/g' >> "$out"
-        echo -n '"' >> "$out"
-      fi
-      shift
-      [ -z "$1" ] || echo -n . >> "$out"
-    done
-
-    echo " = builtins.toFile \"$storeFileName\" '''" >> "$out"
-    sed -e 's/^/    /' "$file" >> "$out"
-
-    echo "  ''';" >> "$out"
-  }
-
-  echo '# Generated via mkcert.sh in the same directory.' > "$out"
-  echo '{' >> "$out"
-
-  openssl req -newkey rsa:4096 -x509 -sha256 -days 36500 \
-    -subj '/CN=Snakeoil CA' -nodes -out ca.pem -keyout ca.key
-
-  addpem ca.key ca key
-  addpem ca.pem ca cert
-
-  ${lib.concatMapStrings (fqdn: let
-    opensslConfig = pkgs.writeText "snakeoil.cnf" ''
-      [req]
-      default_bits = 4096
-      prompt = no
-      default_md = sha256
-      req_extensions = req_ext
-      distinguished_name = dn
-      [dn]
-      CN = ${fqdn}
-      [req_ext]
-      subjectAltName = DNS:${fqdn}
-    '';
-  in ''
-    export OPENSSL_CONF=${lib.escapeShellArg opensslConfig}
-    openssl genrsa -out snakeoil.key 4096
-    openssl req -new -key snakeoil.key -out snakeoil.csr
-    openssl x509 -req -in snakeoil.csr -sha256 -set_serial 666 \
-      -CA ca.pem -CAkey ca.key -out snakeoil.pem -days 36500
-    addpem snakeoil.key ${lib.escapeShellArg fqdn} key
-    addpem snakeoil.pem ${lib.escapeShellArg fqdn} cert
-  '') domains}
-
-  echo '}' >> "$out"
-''
diff --git a/nixpkgs/nixos/tests/common/acme/server/mkcerts.sh b/nixpkgs/nixos/tests/common/acme/server/mkcerts.sh
deleted file mode 100755
index cc7f8ca650dd..000000000000
--- a/nixpkgs/nixos/tests/common/acme/server/mkcerts.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -p nix bash -i bash
-set -e
-cd "$(dirname "$0")"
-storepath="$(nix-build --no-out-link mkcerts.nix)"
-cat "$storepath" > snakeoil-certs.nix
diff --git a/nixpkgs/nixos/tests/common/acme/server/snakeoil-certs.nix b/nixpkgs/nixos/tests/common/acme/server/snakeoil-certs.nix
index fd537c3260f1..4b6a38b8fa30 100644
--- a/nixpkgs/nixos/tests/common/acme/server/snakeoil-certs.nix
+++ b/nixpkgs/nixos/tests/common/acme/server/snakeoil-certs.nix
@@ -1,171 +1,37 @@
-# Generated via mkcert.sh in the same directory.
-{
-  ca.key = builtins.toFile "ca.key" ''
-    -----BEGIN PRIVATE KEY-----
-    MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQDCnVZGEn68ezXl
-    DWE5gjsCPqutR4nxw/wvIbAxB2Vk2WeQ6HGvt2Jdrz5qer2IXd76YtpQeqd+ffet
-    aLtMeFTr+Xy9yqEpx2AfvmEEcLnuiWbsUGZzsHwW7/4kPgAFBy9TwJn/k892lR6u
-    QYa0QS39CX85kLMZ/LZXUyClIBa+IxT1OovmGqMOr4nGASRQP6d/nnyn41Knat/d
-    tpyaa5zgfYwA6YW6UxcywvBSpMOXM0/82BFZGyALt3nQ+ffmrtKcvMjsNLBFaslV
-    +zYO1PMbLbTCW8SmJTjhzuapXtBHruvoe24133XWlvcP1ylaTx0alwiQWJr1XEOU
-    WLEFTgOTeRyiVDxDunpz+7oGcwzcdOG8nCgd6w0aYaECz1zvS3FYTQz+MiqmEkx6
-    s4bj1U90I0kwUJbeWjjrGO7Y9Qq4i19GafDg7cAMn9eHCiNbNrPj6t/gfaVbCrbk
-    m3ZVjkvLTQ2mb2lv7+tVii45227iNPuNS6lx2FVlr/DXiRrOVfghPvoOxUfXzogJ
-    hZLV4Zki+ycbGQa5w8YMDYCv4c08dKA7AatVhNS60c1zgQNjuWF3BvocSySyGUon
-    VT6h1DYlJ9YAqgqNpedgNR9kpp034SMhB7dj9leB6LRMA+c1fG/T+1lDbkA+vope
-    pt4+30oDcCTYfEifl1HwqNw/bXDm1wIDAQABAoICABPbd/UYaAQVUk93yQbUKe81
-    s9CvbvzTMYUhm9e02Hyszitz/D2gqZHDksvMkFA8u8aylXIGwdZfRglUmV/ZG1kk
-    kLzQ0xbvN/ilNUL9uYsETBMqtPly9YZloHnUNa5NqF+UVGJGk7GWz5WaLANybx3V
-    fTzDbfLl3TkVy0vt9UQbUkUfXyzwZNjXwmgIr8rcY9vasP90a3eXqRX3Tw1Wk6A4
-    TzO8oB994O0WBO150Fc6Lhwvc72yzddENlLDXq8UAXtqq9mmGqJKnhZ+1mo3AkMw
-    q7P1JyCIxcAMm26GtRvLVljXV0x5640kxDrCin6jeeW/qWkJEW6dpmuZjR5scmLI
-    /9n8H+fGzdZH8bOPPotMy12doj3vJqvew3p0eIkmVctYMJKD0j/CWjvKJNE3Yx4O
-    Ls47X/dEypX6anR1HQUXcpd6JfRWdIJANo2Duaz+HYbyA88bHcJL9shFYcjLs3sX
-    R/TvnnKHvw/ud7XBgvLGwGAf/cDEuLI2tv+V7tkMGrMUv+gUJNZaJaCpdt+1iUwO
-    QFq8APyBNn6FFw54TwXWfSjfSNh3geIMLHuErYVu9MIXvB7Yhh+ZvLcfLbmckhAX
-    wb39RRHnCWvnw5Bm9hnsDhqfDsIoP+2wvUkViyHOmrKi8nSJhSk19C8AuQtSVcJg
-    5op+epEmjt70GHt52nuBAoIBAQD2a4Ftp4QxWE2d6oAFI6WPrX7nAwI5/ezCbO/h
-    yoYAn6ucTVnn5/5ITJ8V4WTWZ4lkoZP3YSJiCyBhs8fN63J+RaJ/bFRblHDns1HA
-    2nlMVdNLg6uOfjgUJ8Y6xVM0J2dcFtwIFyK5pfZ7loxMZfvuovg74vDOi2vnO3dO
-    16DP3zUx6B/yIt57CYn8NWTq+MO2bzKUnczUQRx0yEzPOfOmVbcqGP8f7WEdDWXm
-    7scjjN53OPyKzLOVEhOMsUhIMBMO25I9ZpcVkyj3/nj+fFLf/XjOTM00M/S/KnOj
-    RwaWffx6mSYS66qNc5JSsojhIiYyiGVEWIznBpNWDU35y/uXAoIBAQDKLj0dyig2
-    kj1r3HvdgK4sRULqBQFMqE9ylxDmpJxAj6/A8hJ0RCBR57vnIIZMzK4+6K0l3VBJ
-    ukzXJHJLPkZ0Uuo2zLuRLkyjBECH6KYznyTkUVRn50Oq6IoP6WTCfd3Eg+7AKYY1
-    VFo2iR8sxeSQQ+AylFy6QcQ1xPIW30Jj1/LFjrRdRggapPEekpJec0pEqhasT8rR
-    UFhRL2NdZnL5b7ZlsJc7gZKEJgNfxgzaCzloqLcjCgGpOhLKx0fFsNOqHcbIGMwG
-    6wQCOyNghQJ6AZtRD5TYCJow92FchWjoTIaMJ8RjMKQmxpiwM6wQG4J78Hd3mbhf
-    q0hiQhPHaNbBAoIBAFeIeMFq8BpXM7sUwcURlI4lIx8Mgo33FVM7PzsFpfQyw9MR
-    5w3p6vnjvd8X4aoHvVZxzw3hA0WwjiAmrKMJL/KK6d45rP2bDUBBAplvAgeLtTLt
-    4tMLIwCF4HSgA55TIPQlaqO1FDC+M4BTSiMZVxS970/WnZPBEuNgzFDFZ+pvb4X6
-    3t40ZLNwAAQHM4IEPAFiHqWMKGZ9eo5BWIeEHnjHmfjqSDYfLJAVYk1WJIcMUzom
-    lA76CBC8CxW/I94AtcRhWuFUv/Z5/+OYEYLUxtuqPm+J+JrCmf4OJmWppT1wI2+p
-    V00BSeRVWXTm1piieM8ahF5y1hp6y3uV3k0NmKECggEBAMC42Ms3s6NpPSE+99eJ
-    3P0YPJOkl7uByNGbTKH+kW89SDRsy8iGVCSe9892gm5cwU/4LWyljO3qp2qBNG2i
-    /DfP/bCk8bqPXsAZwoWK8DrO3bTCDepJWYhlx40pVkHLBwVXGdOVAXh+YswPY2cj
-    cB9QhDrSj52AKU9z36yLvtY7uBA3Wph6tCjpx2n0H4/m6AmR9LDmEpf5tWYV/OrA
-    SKKaqUw/y7kOZyKOtbKqr/98qYmpIYFF/ZVZZSZkVXcNeoZzgdOlR37ksVqLEsrj
-    nxu7wli/uItBj/FTLjyqcvjUUYDyO1KtwBuyPUPgzYhBIN2Rt9+K6WRQelwnToFL
-    30ECggEBALzozykZj2sr3z8tQQRZuXLGotUFGsQCB8ikeqoeB8FbNNkC+qgflQGv
-    zLRB2KWOvnboc94wVgBJH43xG0HBibZnBhUO8/HBI/WlmyEj9KQ/ZskUK4GVZkB6
-    r/81ASLwH+P/rqrLEjcp1SIPPevjzCWD9VYR5m/qPHLNxStwGSrPjtPzgaFxhq84
-    Jl+YVmNqVlrOKYYfIPh8exPLiTti3wfM61pVYFv56PI2gd5ysMWYnuN+vK0sbmZh
-    cIWwykcKlODIngI7IzYqt8NuIJI0jrYyHgtUw4jaJzdF4mEOplGONxdz15jAGHtg
-    JUsBXFNz132nP4iIr3UKrPedQZijSi4=
-    -----END PRIVATE KEY-----
-  '';
-  ca.cert = builtins.toFile "ca.cert" ''
-    -----BEGIN CERTIFICATE-----
-    MIIFDzCCAvegAwIBAgIUTRDYSWJvmlhwIR3pzVrIQfnboLEwDQYJKoZIhvcNAQEL
-    BQAwFjEUMBIGA1UEAwwLU25ha2VvaWwgQ0EwIBcNMjAwMzIyMjI1NjE3WhgPMjEy
-    MDAyMjcyMjU2MTdaMBYxFDASBgNVBAMMC1NuYWtlb2lsIENBMIICIjANBgkqhkiG
-    9w0BAQEFAAOCAg8AMIICCgKCAgEAwp1WRhJ+vHs15Q1hOYI7Aj6rrUeJ8cP8LyGw
-    MQdlZNlnkOhxr7diXa8+anq9iF3e+mLaUHqnfn33rWi7THhU6/l8vcqhKcdgH75h
-    BHC57olm7FBmc7B8Fu/+JD4ABQcvU8CZ/5PPdpUerkGGtEEt/Ql/OZCzGfy2V1Mg
-    pSAWviMU9TqL5hqjDq+JxgEkUD+nf558p+NSp2rf3bacmmuc4H2MAOmFulMXMsLw
-    UqTDlzNP/NgRWRsgC7d50Pn35q7SnLzI7DSwRWrJVfs2DtTzGy20wlvEpiU44c7m
-    qV7QR67r6HtuNd911pb3D9cpWk8dGpcIkFia9VxDlFixBU4Dk3kcolQ8Q7p6c/u6
-    BnMM3HThvJwoHesNGmGhAs9c70txWE0M/jIqphJMerOG49VPdCNJMFCW3lo46xju
-    2PUKuItfRmnw4O3ADJ/XhwojWzaz4+rf4H2lWwq25Jt2VY5Ly00Npm9pb+/rVYou
-    Odtu4jT7jUupcdhVZa/w14kazlX4IT76DsVH186ICYWS1eGZIvsnGxkGucPGDA2A
-    r+HNPHSgOwGrVYTUutHNc4EDY7lhdwb6HEskshlKJ1U+odQ2JSfWAKoKjaXnYDUf
-    ZKadN+EjIQe3Y/ZXgei0TAPnNXxv0/tZQ25APr6KXqbePt9KA3Ak2HxIn5dR8Kjc
-    P21w5tcCAwEAAaNTMFEwHQYDVR0OBBYEFCIoeYSYjtMiPrmxfHmcrsZkyTpvMB8G
-    A1UdIwQYMBaAFCIoeYSYjtMiPrmxfHmcrsZkyTpvMA8GA1UdEwEB/wQFMAMBAf8w
-    DQYJKoZIhvcNAQELBQADggIBAHPdwOgAxyhIhbqFObNftW8K3sptorB/Fj6jwYCm
-    mHleFueqQnjTHMWsflOjREvQp1M307FWooGj+KQkjwvAyDc/Hmy7WgJxBg9p3vc+
-    /Xf/e7ZfBl8rv7vH8VXW/BC1vVsILdFncrgTrP8/4psV50/cl1F4+nPBiekvvxwZ
-    k+R7SgeSvcWT7YlOG8tm1M3al4F4mWzSRkYjkrXmwRCKAiya9xcGSt0Bob+LoM/O
-    mpDGV/PMC1WAoDc1mMuXN2hSc0n68xMcuFs+dj/nQYn8uL5pzOxpX9560ynKyLDv
-    yOzQlM2VuZ7H2hSIeYOFgrtHJJwhDtzjmUNDQpQdp9Fx+LONQTS1VLCTXND2i/3F
-    10X6PkdnLEn09RiPt5qy20pQkICxoEydmlwpFs32musYfJPdBPkZqZWrwINBv2Wb
-    HfOmEB4xUvXufZ5Ju5icgggBkyNA3PCLo0GZFRrMtvA7i9IXOcXNR+njhKa9246V
-    QQfeWiz05RmIvgShJYVsnZWtael8ni366d+UXypBYncohimyNlAD1n+Bh3z0PvBB
-    +FK4JgOSeouM4SuBHdwmlZ/H0mvfUG81Y8Jbrw0yuRHtuCtX5HpN5GKpZPHDE7aQ
-    fEShVB/GElC3n3DvgK9OJBeVVhYQgUEfJi4rsSxt3cdEI0NrdckUoZbApWVJ3CBc
-    F8Y7
-    -----END CERTIFICATE-----
-  '';
-  "acme.test".key = builtins.toFile "acme.test.key" ''
-    -----BEGIN RSA PRIVATE KEY-----
-    MIIJKAIBAAKCAgEAlgQTZjKfs3aHw0J993k7jFAs+hVRPf//zHMAiUkPKUYPTSl1
-    TxS/bPbhWzSoom00j4SLhGGGhbd+lnvTg0uvKbxskgATfw5clbm1ZN+gx4DuxwjL
-    V3xIxpeSY+PKzs5z8w/k+AJh+zOPyXwH3ut3C+ogp1S/5IhmzV3a/yU/6k0zpGxj
-    N6ZPRTXFrz93I1pPeCkJz90l7tj+2uFc9xtM20NQX52f0Y2oShcG8fKdNZVzuHHk
-    ZXkrZIhou55/nRy2jKgFeD3GQQfa9rwPWrVybQ6tKMMkoazB/Unky9xcTI2LJarf
-    xgHDO9v9yFBvmR4UM8B3kM82NHoENtHaZ2mmiMGZzTEQlf8xwYyHFrqBFIVRWEUr
-    7rr/O5Qr9gIN0T4u367HCexVYAKzbO2P9h75czzjMMoGkbXze9SMQ/ikrxEmwAHg
-    r1Xxh6iQYmgPNk8AR3d9+o2I7WJZMUYZARLnuhVr9BNXv510iqZTqX8lcyL5fEj3
-    ST4Ab+H7rfevZt6NU26iJLBYAjrA2mSvH+wvkboxrgSS8xYPkOW8NLNEbbodzofI
-    pB+SaK53OIk0bj9c1YAgrSNER/TDTgDXrWUNrlfVZ/M7+AEdeU06wi7sVhVif6OB
-    D3OpgKSNjeE6TuJH80Pi5MWugSFBr792Xb6uhVoPiVOFN+qiGB6UkwBgSKkCAwEA
-    AQKCAgAmN7OZfZwh5DiCDhZ5TXFWNba/n16rJOTN+R5R20L5iNetGLrCAs8hu2N+
-    ENRFTPzu8x14BEB5IF4niDRCZq2hPFeMemh9HfOIUV9c63vSV459NkhXaVpA/axV
-    tlqchQwVCB+U70Z28JPZCLgYmnQhnOvktTqNxhIqj5aTGbJGxpQ5d0Nvkfbv8tsB
-    4nE/mGpWel39jqFzT+Tdbjx414Ok+GkpcsacZDJTbbpfOSfD1uc8PgepskzTt8y2
-    v5JTPFVlUAjUsSgouQ+XfCGNQlx8XBjRIaXbal+hX4niRald91FTr0yC7UAHp+vn
-    dFZ586fB526OfbuZctxP+vZhEhFSseQKxHQ0tB8me81xH44daVNr9PPUM69FDT3j
-    ygJaUJjNEG3vVzePCDzhmxTmz2/rAClp77WTWziBWDoA6YWDDzhgNPrXWzLIbZIx
-    ue9ZbGEOh/u5ZzrEXxKCz9FjDe9wQu3TeYUe0M+ejzwWgn7zdWDvjjmtLUUuun2Y
-    wW7WANpu32qvB/V+qssw4O63tbRiwneRCnb8AF2ixgyWr6xyZwch4kacv1KMiixf
-    gO/5GTj7ba5GcdGoktJb29cUEgz13yPd106RsHK4vcggFxfMbOVauNRIo6ddLwyS
-    8UMxLf2i2cToOLkHZrIb8FgimmzRoBd3yYzwVJBydiVcsrHQAQKCAQEAxlzFYCiQ
-    hjEtblGnrkOC7Hx6HvqMelViOkGN8Y9VczG4GhwntmSE2nbpaAKhFBGdLfuSI3tJ
-    Lf24f0IGgAhzPmpo2TjbxPO3YSKFTH71fznVBhtQ1iSxwZ1InXktnuhot6VSDx6A
-    sbHSy1hMFy3nj+Zj5+fQ89tclzBzG9bCShaauO39KrPMwKi6CYoYdGhXBC3+OpHY
-    zBNvmDTxG2kW8L42rlf14EH4pAlgKs4eeZbpcbZ6fXURP2hToHJ8swyKw/1p12WA
-    cc19BKFJXL8nNP4uCf/fI0mVYpytz5KwUzG+z+umDqk+RRCH4mNB28xvEEuEyp/e
-    /C5Is+WrlDAA6QKCAQEAwZsK4AJ/w4Xf4Q/SsnZJO9bfP1ejJjzKElt8rG28JXeb
-    +FjykZZ6vw2gt2Boest2n9N4fBwaRkaHVtVS4iAmaDXozTlcvCLs2rVjPSguuQtW
-    80CKg6+dux+6gFN8IGzDCiX3pWUnhhiXvCcRYEcvgpH6GA5vuCNrXrjH0JFC0kef
-    aaDMGMTbzhc2IIRztmWU4v8YJSSy5KOkIQLWO+7u9aGx9IqT5/z3gx3XrItyl0Bk
-    aQmZEh7JOSyhmGhhf5LdeTLu2YgRw3/tzS+lPMX3+UPw99k9MdTOFn2pww5AdRmg
-    aBIzV+/LBYG0pPRl0D8/6yzGVBPuUDQpmK9Z3gsxwQKCAQEAnNkMZN2Ocd1+6+V7
-    LmtJog9HTSmWXMEZG7FsOJ661Yxx44txx2IyPsCaDNlPXxwSaiKrSo0Yr1oZQd8G
-    XsTPw4HGiETSWijQTulJ99PH8SLck6iTwdBgEhV5LrN75FQnQVdizHu1DUzrvkiC
-    Wi29FWb6howiCEDjNNVln5SwKn83NpVQgyyK8ag4+oQMlDdQ3wgzJ0Ld53hS3Eq4
-    f5EYR6JQgIki7YGcxrB3L0GujTxMONMuhfdEfRvUTGFawwVe0FyYDW7AIrx2Z2vV
-    I5YuvVNjOhrt6OwtSD1VnnWCITaLh8LwmlUu3NOWbudHUzKSe5MLXGEPo95BNKad
-    hl5yyQKCAQBNo0gMJtRnawMpdLfwewDJL1SdSR6S0ePS0r8/Qk4l1D5GrByyB183
-    yFY/0zhyra7nTt1NH9PlhJj3WFqBdZURSzUNP0iR5YuH9R9Twg5ihEqdB6/EOSOO
-    i521okTvl83q/ui9ecAMxUXr3NrZ+hHyUWmyRe/FLub6uCzg1a+vNauWpzXRZPgk
-    QCijh5oDdd7r3JIpKvtWNs01s7aHmDxZYjtDrmK7sDTtboUzm0QbpWXevUuV+aSF
-    +gDfZlRa3WFVHfisYSWGeYG6O7YOlfDoE7fJHGOu3QC8Ai6Wmtt8Wgd6VHokdHO8
-    xJPVZnCBvyt5up3Zz5hMr25S3VazdVfBAoIBAHVteqTGqWpKFxekGwR0RqE30wmN
-    iIEwFhgOZ8sQ+6ViZJZUR4Nn2fchn2jVwF8V8J1GrJbTknqzAwdXtO3FbgfmmyF2
-    9VbS/GgomXhA9vJkM4KK3Iwo/y/nE9hRhtzuVE0QPudz2fyfaDgnWjcNM59064tH
-    88361LVJm3ixyWSBD41UZ7NgWWJX1y2f073vErsfcPpavF5lhn1oSkQnOlgMJsnl
-    24qeuzAgTWu/2rFpIA2EK30Bgvsl3pjJxHwyNDAgklV7C783LIoAHi7VO7tzZ6iF
-    dmD5XLfcUZc3eaB7XehNQKBXDGLJeI5AFmjsHka5GUoitkU2PFrg/3+nJmg=
-    -----END RSA PRIVATE KEY-----
-  '';
-  "acme.test".cert = builtins.toFile "acme.test.cert" ''
-    -----BEGIN CERTIFICATE-----
-    MIIEoTCCAokCAgKaMA0GCSqGSIb3DQEBCwUAMBYxFDASBgNVBAMMC1NuYWtlb2ls
-    IENBMCAXDTIwMDMyMjIyNTYxOFoYDzIxMjAwMjI3MjI1NjE4WjAUMRIwEAYDVQQD
-    DAlhY21lLnRlc3QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCWBBNm
-    Mp+zdofDQn33eTuMUCz6FVE9///McwCJSQ8pRg9NKXVPFL9s9uFbNKiibTSPhIuE
-    YYaFt36We9ODS68pvGySABN/DlyVubVk36DHgO7HCMtXfEjGl5Jj48rOznPzD+T4
-    AmH7M4/JfAfe63cL6iCnVL/kiGbNXdr/JT/qTTOkbGM3pk9FNcWvP3cjWk94KQnP
-    3SXu2P7a4Vz3G0zbQ1BfnZ/RjahKFwbx8p01lXO4ceRleStkiGi7nn+dHLaMqAV4
-    PcZBB9r2vA9atXJtDq0owyShrMH9SeTL3FxMjYslqt/GAcM72/3IUG+ZHhQzwHeQ
-    zzY0egQ20dpnaaaIwZnNMRCV/zHBjIcWuoEUhVFYRSvuuv87lCv2Ag3RPi7frscJ
-    7FVgArNs7Y/2HvlzPOMwygaRtfN71IxD+KSvESbAAeCvVfGHqJBiaA82TwBHd336
-    jYjtYlkxRhkBEue6FWv0E1e/nXSKplOpfyVzIvl8SPdJPgBv4fut969m3o1TbqIk
-    sFgCOsDaZK8f7C+RujGuBJLzFg+Q5bw0s0Rtuh3Oh8ikH5Jornc4iTRuP1zVgCCt
-    I0RH9MNOANetZQ2uV9Vn8zv4AR15TTrCLuxWFWJ/o4EPc6mApI2N4TpO4kfzQ+Lk
-    xa6BIUGvv3Zdvq6FWg+JU4U36qIYHpSTAGBIqQIDAQABMA0GCSqGSIb3DQEBCwUA
-    A4ICAQBCDs0V4z00Ze6Ask3qDOLAPo4k85QCfItlRZmwl2XbPZq7kbe13MqF2wxx
-    yiLalm6veK+ehU9MYN104hJZnuce5iEcZurk+8A+Pwn1Ifz+oWKVbUtUP3uV8Sm3
-    chktJ2H1bebXtNJE5TwvdHiUkXU9ywQt2FkxiTSl6+eac7JKEQ8lVN/o6uYxF5ds
-    +oIZplb7bv2XxsRCzq55F2tJX7fIzqXrSa+lQTnfLGmDVMAQX4TRB/lx0Gqd1a9y
-    qGfFnZ7xVyW97f6PiL8MoxPfd2I2JzrzGyP/igNbFOW0ho1OwfxVmvZeS7fQSc5e
-    +qu+nwnFfl0S4cHRif3G3zmz8Ryx9LM5TYkH41qePIHxoEO2sV0DgWJvbSjysV2S
-    EU2a31dJ0aZ+z6YtZVpHlujKMVzxVTrqj74trS4LvU5h/9hv7e1gjYdox1TO0HMK
-    mtDfgBevB21Tvxpz67Ijf31HvfTmCerKJEOjGnbYmyYpMeMNSONRDcToWk8sUwvi
-    OWa5jlUFRAxgXNM09vCTPi9aRUhcFqACqfAd6I1NqGVlfplLWrc7SWaSa+PsLfBf
-    4EOZfk8iEKBVeYXNjg+CcD8j8yk/oEs816/jpihIk8haCDRWYWGKyyGnwn6OQb8d
-    MdRO2b7Oi/AAmEF3jMlICqv286GIYK5qTKk2/CKHlOLPnsWEuA==
-    -----END CERTIFICATE-----
-  '';
+# Minica can provide a CA key and cert, plus a key
+# and cert for our fake CA server's Web Front End (WFE).
+{ minica, mkDerivation }:
+let
+  domain = "acme.test";
+
+  selfSignedCertData = mkDerivation {
+    name = "test-certs";
+    buildInputs = [ minica ];
+    phases = [ "buildPhase" "installPhase" ];
+
+    buildPhase = ''
+      mkdir ca
+      minica \
+        --ca-key ca/key.pem \
+        --ca-cert ca/cert.pem \
+        --domains ${domain}
+      chmod 600 ca/*
+      chmod 640 ${domain}/*.pem
+    '';
+
+    installPhase = ''
+      mkdir -p $out
+      mv ${domain} ca $out/
+    '';
+  };
+in {
+  inherit domain;
+  ca = {
+    cert = "${selfSignedCertData}/ca/cert.pem";
+    key = "${selfSignedCertData}/ca/key.pem";
+  };
+  "${domain}" = {
+    cert = "${selfSignedCertData}/${domain}/cert.pem";
+    key = "${selfSignedCertData}/${domain}/key.pem";
+  };
 }
diff --git a/nixpkgs/nixos/tests/common/auto.nix b/nixpkgs/nixos/tests/common/auto.nix
index 2c21a8d51673..da6b14e9f160 100644
--- a/nixpkgs/nixos/tests/common/auto.nix
+++ b/nixpkgs/nixos/tests/common/auto.nix
@@ -41,8 +41,8 @@ in
 
   config = mkIf cfg.enable {
 
-    services.xserver.displayManager.lightdm = {
-      enable = true;
+    services.xserver.displayManager = {
+      lightdm.enable = true;
       autoLogin = {
         enable = true;
         user = cfg.user;
diff --git a/nixpkgs/nixos/tests/common/ec2.nix b/nixpkgs/nixos/tests/common/ec2.nix
index ba087bb60090..502fe96231f2 100644
--- a/nixpkgs/nixos/tests/common/ec2.nix
+++ b/nixpkgs/nixos/tests/common/ec2.nix
@@ -20,30 +20,44 @@ with pkgs.lib;
     in makeTest {
       name = "ec2-" + name;
       nodes = {};
-      testScript =
-        ''
-          my $imageDir = ($ENV{'TMPDIR'} // "/tmp") . "/vm-state-machine";
-          mkdir $imageDir, 0700;
-          my $diskImage = "$imageDir/machine.qcow2";
-          system("qemu-img create -f qcow2 -o backing_file=${image} $diskImage") == 0 or die;
-          system("qemu-img resize $diskImage 10G") == 0 or die;
+      testScript = ''
+        import os
+        import subprocess
 
-          # Note: we use net=169.0.0.0/8 rather than
-          # net=169.254.0.0/16 to prevent dhcpcd from getting horribly
-          # confused. (It would get a DHCP lease in the 169.254.*
-          # range, which it would then configure and prompty delete
-          # again when it deletes link-local addresses.) Ideally we'd
-          # turn off the DHCP server, but qemu does not have an option
-          # to do that.
-          my $startCommand = "qemu-kvm -m 1024";
-          $startCommand .= " -device virtio-net-pci,netdev=vlan0";
-          $startCommand .= " -netdev 'user,id=vlan0,net=169.0.0.0/8,guestfwd=tcp:169.254.169.254:80-cmd:${pkgs.micro-httpd}/bin/micro_httpd ${metaData}'";
-          $startCommand .= " -drive file=$diskImage,if=virtio,werror=report";
-          $startCommand .= " \$QEMU_OPTS";
+        image_dir = os.path.join(
+            os.environ.get("TMPDIR", tempfile.gettempdir()), "tmp", "vm-state-machine"
+        )
+        os.makedirs(image_dir, mode=0o700, exist_ok=True)
+        disk_image = os.path.join(image_dir, "machine.qcow2")
+        subprocess.check_call(
+            [
+                "qemu-img",
+                "create",
+                "-f",
+                "qcow2",
+                "-o",
+                "backing_file=${image}",
+                disk_image,
+            ]
+        )
+        subprocess.check_call(["qemu-img", "resize", disk_image, "10G"])
 
-          my $machine = createMachine({ startCommand => $startCommand });
+        # Note: we use net=169.0.0.0/8 rather than
+        # net=169.254.0.0/16 to prevent dhcpcd from getting horribly
+        # confused. (It would get a DHCP lease in the 169.254.*
+        # range, which it would then configure and prompty delete
+        # again when it deletes link-local addresses.) Ideally we'd
+        # turn off the DHCP server, but qemu does not have an option
+        # to do that.
+        start_command = (
+            "qemu-kvm -m 1024"
+            + " -device virtio-net-pci,netdev=vlan0"
+            + " -netdev 'user,id=vlan0,net=169.0.0.0/8,guestfwd=tcp:169.254.169.254:80-cmd:${pkgs.micro-httpd}/bin/micro_httpd ${metaData}'"
+            + f" -drive file={disk_image},if=virtio,werror=report"
+            + " $QEMU_OPTS"
+        )
 
-          ${script}
-        '';
+        machine = create_machine({"startCommand": start_command})
+      '' + script;
     };
 }
diff --git a/nixpkgs/nixos/tests/consul.nix b/nixpkgs/nixos/tests/consul.nix
index 6600dae4770b..ee85f1d0b917 100644
--- a/nixpkgs/nixos/tests/consul.nix
+++ b/nixpkgs/nixos/tests/consul.nix
@@ -55,30 +55,33 @@ let
 
   server = index: { pkgs, ... }:
     let
-      ip = builtins.elemAt allConsensusServerHosts index;
+      numConsensusServers = builtins.length allConsensusServerHosts;
+      thisConsensusServerHost = builtins.elemAt allConsensusServerHosts index;
+      ip = thisConsensusServerHost; # since we already use IPs to identify servers
     in
       {
         networking.interfaces.eth1.ipv4.addresses = pkgs.lib.mkOverride 0 [
-          { address = builtins.elemAt allConsensusServerHosts index; prefixLength = 16; }
+          { address = ip; prefixLength = 16; }
         ];
         networking.firewall = firewallSettings;
 
         services.consul =
-          let
-            thisConsensusServerHost = builtins.elemAt allConsensusServerHosts index;
-          in
           assert builtins.elem thisConsensusServerHost allConsensusServerHosts;
           {
             enable = true;
             inherit webUi;
             extraConfig = defaultExtraConfig // {
               server = true;
-              bootstrap_expect = builtins.length allConsensusServerHosts;
+              bootstrap_expect = numConsensusServers;
+              # Tell Consul that we never intend to drop below this many servers.
+              # Ensures to not permanently lose consensus after temporary loss.
+              # See https://github.com/hashicorp/consul/issues/8118#issuecomment-645330040
+              autopilot.min_quorum = numConsensusServers;
               retry_join =
                 # If there's only 1 node in the network, we allow self-join;
                 # otherwise, the node must not try to join itself, and join only the other servers.
                 # See https://github.com/hashicorp/consul/issues/2868
-                if builtins.length allConsensusServerHosts == 1
+                if numConsensusServers == 1
                   then allConsensusServerHosts
                   else builtins.filter (h: h != thisConsensusServerHost) allConsensusServerHosts;
               bind_addr = ip;
@@ -104,40 +107,123 @@ in {
     for m in machines:
         m.wait_for_unit("consul.service")
 
-    for m in machines:
-        m.wait_until_succeeds("[ $(consul members | grep -o alive | wc -l) == 5 ]")
+
+    def wait_for_healthy_servers():
+        # See https://github.com/hashicorp/consul/issues/8118#issuecomment-645330040
+        # for why the `Voter` column of `list-peers` has that info.
+        # TODO: The `grep true` relies on the fact that currently in
+        #       the output like
+        #           # consul operator raft list-peers
+        #           Node     ID   Address           State     Voter  RaftProtocol
+        #           server3  ...  192.168.1.3:8300  leader    true   3
+        #           server2  ...  192.168.1.2:8300  follower  true   3
+        #           server1  ...  192.168.1.1:8300  follower  false  3
+        #       `Voter`is the only boolean column.
+        #       Change this to the more reliable way to be defined by
+        #       https://github.com/hashicorp/consul/issues/8118
+        #       once that ticket is closed.
+        for m in machines:
+            m.wait_until_succeeds(
+                "[ $(consul operator raft list-peers | grep true | wc -l) == 3 ]"
+            )
+
+
+    def wait_for_all_machines_alive():
+        """
+        Note that Serf-"alive" does not mean "Raft"-healthy;
+        see `wait_for_healthy_servers()` for that instead.
+        """
+        for m in machines:
+            m.wait_until_succeeds("[ $(consul members | grep -o alive | wc -l) == 5 ]")
+
+
+    wait_for_healthy_servers()
+    # Also wait for clients to be alive.
+    wait_for_all_machines_alive()
 
     client1.succeed("consul kv put testkey 42")
     client2.succeed("[ $(consul kv get testkey) == 42 ]")
 
-    # Test that the cluster can tolearate failures of any single server:
-    for server in servers:
-        server.crash()
 
-        # For each client, wait until they have connection again
-        # using `kv get -recurse` before issuing commands.
-        client1.wait_until_succeeds("consul kv get -recurse")
-        client2.wait_until_succeeds("consul kv get -recurse")
+    def rolling_reboot_test(proper_rolling_procedure=True):
+        """
+        Tests that the cluster can tolearate failures of any single server,
+        following the recommended rolling upgrade procedure from
+        https://www.consul.io/docs/upgrading#standard-upgrades.
 
-        # Do some consul actions while one server is down.
-        client1.succeed("consul kv put testkey 43")
-        client2.succeed("[ $(consul kv get testkey) == 43 ]")
-        client2.succeed("consul kv delete testkey")
+        Optionally, `proper_rolling_procedure=False` can be given
+        to wait only for each server to be back `Healthy`, not `Stable`
+        in the Raft consensus, see Consul setting `ServerStabilizationTime` and
+        https://github.com/hashicorp/consul/issues/8118#issuecomment-645330040.
+        """
+
+        for server in servers:
+            server.crash()
+
+            # For each client, wait until they have connection again
+            # using `kv get -recurse` before issuing commands.
+            client1.wait_until_succeeds("consul kv get -recurse")
+            client2.wait_until_succeeds("consul kv get -recurse")
 
-        # Restart crashed machine.
-        server.start()
+            # Do some consul actions while one server is down.
+            client1.succeed("consul kv put testkey 43")
+            client2.succeed("[ $(consul kv get testkey) == 43 ]")
+            client2.succeed("consul kv delete testkey")
+
+            # Restart crashed machine.
+            server.start()
+
+            if proper_rolling_procedure:
+                # Wait for recovery.
+                wait_for_healthy_servers()
+            else:
+                # NOT proper rolling upgrade procedure, see above.
+                wait_for_all_machines_alive()
+
+            # Wait for client connections.
+            client1.wait_until_succeeds("consul kv get -recurse")
+            client2.wait_until_succeeds("consul kv get -recurse")
+
+            # Do some consul actions with server back up.
+            client1.succeed("consul kv put testkey 44")
+            client2.succeed("[ $(consul kv get testkey) == 44 ]")
+            client2.succeed("consul kv delete testkey")
+
+
+    def all_servers_crash_simultaneously_test():
+        """
+        Tests that the cluster will eventually come back after all
+        servers crash simultaneously.
+        """
+
+        for server in servers:
+            server.crash()
+
+        for server in servers:
+            server.start()
 
         # Wait for recovery.
-        for m in machines:
-            m.wait_until_succeeds("[ $(consul members | grep -o alive | wc -l) == 5 ]")
+        wait_for_healthy_servers()
 
         # Wait for client connections.
         client1.wait_until_succeeds("consul kv get -recurse")
         client2.wait_until_succeeds("consul kv get -recurse")
 
-        # Do some consul actions with server back up.
+        # Do some consul actions with servers back up.
         client1.succeed("consul kv put testkey 44")
         client2.succeed("[ $(consul kv get testkey) == 44 ]")
         client2.succeed("consul kv delete testkey")
+
+
+    # Run the tests.
+
+    print("rolling_reboot_test()")
+    rolling_reboot_test()
+
+    print("all_servers_crash_simultaneously_test()")
+    all_servers_crash_simultaneously_test()
+
+    print("rolling_reboot_test(proper_rolling_procedure=False)")
+    rolling_reboot_test(proper_rolling_procedure=False)
   '';
 })
diff --git a/nixpkgs/nixos/tests/containers-portforward.nix b/nixpkgs/nixos/tests/containers-portforward.nix
index fc90e151bd9e..1e2c2c6c374f 100644
--- a/nixpkgs/nixos/tests/containers-portforward.nix
+++ b/nixpkgs/nixos/tests/containers-portforward.nix
@@ -5,7 +5,7 @@ let
   hostPort = 10080;
   containerIp = "192.168.0.100";
   containerPort = 80;
-in 
+in
 
 import ./make-test-python.nix ({ pkgs, ...} : {
   name = "containers-portforward";
diff --git a/nixpkgs/nixos/tests/containers-reloadable.nix b/nixpkgs/nixos/tests/containers-reloadable.nix
index 35aff91e85b5..2d81f1639387 100644
--- a/nixpkgs/nixos/tests/containers-reloadable.nix
+++ b/nixpkgs/nixos/tests/containers-reloadable.nix
@@ -9,13 +9,13 @@ let
       };
     };
 
-    # prevent make-test.nix to change IP
+    # prevent make-test-python.nix to change IP
     networking.interfaces = {
       eth1.ipv4.addresses = lib.mkOverride 0 [ ];
     };
   };
 in {
-  name = "cotnainers-reloadable";
+  name = "containers-reloadable";
   meta = with pkgs.stdenv.lib.maintainers; {
     maintainers = [ danbst ];
   };
diff --git a/nixpkgs/nixos/tests/convos.nix b/nixpkgs/nixos/tests/convos.nix
new file mode 100644
index 000000000000..b4ff1188fd8b
--- /dev/null
+++ b/nixpkgs/nixos/tests/convos.nix
@@ -0,0 +1,30 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }:
+
+with lib;
+let
+  port = 3333;
+in
+{
+  name = "convos";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ sgo ];
+  };
+
+  nodes = {
+    machine =
+      { pkgs, ... }:
+      {
+        services.convos = {
+          enable = true;
+          listenPort = port;
+        };
+      };
+  };
+
+  testScript = ''
+    machine.wait_for_unit("convos")
+    machine.wait_for_open_port("${toString port}")
+    machine.succeed("journalctl -u convos | grep -q 'Listening at.*${toString port}'")
+    machine.succeed("curl http://localhost:${toString port}/")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/corerad.nix b/nixpkgs/nixos/tests/corerad.nix
index 72ab255b1916..37a1e90477a8 100644
--- a/nixpkgs/nixos/tests/corerad.nix
+++ b/nixpkgs/nixos/tests/corerad.nix
@@ -1,7 +1,7 @@
 import ./make-test-python.nix (
   {
     nodes = {
-      router = {config, pkgs, ...}: { 
+      router = {config, pkgs, ...}: {
         config = {
           # This machine simulates a router with IPv6 forwarding and a static IPv6 address.
           boot.kernel.sysctl = {
diff --git a/nixpkgs/nixos/tests/couchdb.nix b/nixpkgs/nixos/tests/couchdb.nix
index 10e95701acdb..57b79e29b433 100644
--- a/nixpkgs/nixos/tests/couchdb.nix
+++ b/nixpkgs/nixos/tests/couchdb.nix
@@ -1,4 +1,19 @@
-import ./make-test-python.nix ({ pkgs, lib, ...}:
+let
+
+  makeNode = couchpkg: user: passwd:
+    { pkgs, ... } :
+
+      { environment.systemPackages = with pkgs; [ jq ];
+        services.couchdb.enable = true;
+        services.couchdb.package = couchpkg;
+        services.couchdb.adminUser = user;
+        services.couchdb.adminPass = passwd;
+      };
+  testuser = "testadmin";
+  testpass = "cowabunga";
+  testlogin = "${testuser}:${testpass}@";
+
+in import ./make-test-python.nix ({ pkgs, lib, ...}:
 
 with lib;
 
@@ -9,26 +24,15 @@ with lib;
   };
 
   nodes = {
-    couchdb1 =
-      { pkgs, ... }:
-
-      { environment.systemPackages = with pkgs; [ jq ];
-        services.couchdb.enable = true;
-      };
-
-    couchdb2 =
-      { pkgs, ... }:
-
-      { environment.systemPackages = with pkgs; [ jq ];
-        services.couchdb.enable = true;
-        services.couchdb.package = pkgs.couchdb2;
-      };
+    couchdb1 = makeNode pkgs.couchdb testuser testpass;
+    couchdb2 = makeNode pkgs.couchdb2 testuser testpass;
+    couchdb3 = makeNode pkgs.couchdb3 testuser testpass;
   };
 
   testScript = let
-    curlJqCheck = action: path: jqexpr: result:
+    curlJqCheck = login: action: path: jqexpr: result:
       pkgs.writeScript "curl-jq-check-${action}-${path}.sh" ''
-        RESULT=$(curl -X ${action} http://127.0.0.1:5984/${path} | jq -r '${jqexpr}')
+        RESULT=$(curl -X ${action} http://${login}127.0.0.1:5984/${path} | jq -r '${jqexpr}')
         echo $RESULT >&2
         if [ "$RESULT" != "${result}" ]; then
           exit 1
@@ -39,38 +43,56 @@ with lib;
 
     couchdb1.wait_for_unit("couchdb.service")
     couchdb1.wait_until_succeeds(
-        "${curlJqCheck "GET" "" ".couchdb" "Welcome"}"
+        "${curlJqCheck "" "GET" "" ".couchdb" "Welcome"}"
     )
     couchdb1.wait_until_succeeds(
-        "${curlJqCheck "GET" "_all_dbs" ". | length" "2"}"
+        "${curlJqCheck "" "GET" "_all_dbs" ". | length" "2"}"
     )
-    couchdb1.succeed("${curlJqCheck "PUT" "foo" ".ok" "true"}")
+    couchdb1.succeed("${curlJqCheck testlogin "PUT" "foo" ".ok" "true"}")
     couchdb1.succeed(
-        "${curlJqCheck "GET" "_all_dbs" ". | length" "3"}"
+        "${curlJqCheck "" "GET" "_all_dbs" ". | length" "3"}"
     )
     couchdb1.succeed(
-        "${curlJqCheck "DELETE" "foo" ".ok" "true"}"
+        "${curlJqCheck testlogin "DELETE" "foo" ".ok" "true"}"
     )
     couchdb1.succeed(
-        "${curlJqCheck "GET" "_all_dbs" ". | length" "2"}"
+        "${curlJqCheck "" "GET" "_all_dbs" ". | length" "2"}"
     )
 
     couchdb2.wait_for_unit("couchdb.service")
     couchdb2.wait_until_succeeds(
-        "${curlJqCheck "GET" "" ".couchdb" "Welcome"}"
+        "${curlJqCheck "" "GET" "" ".couchdb" "Welcome"}"
     )
     couchdb2.wait_until_succeeds(
-        "${curlJqCheck "GET" "_all_dbs" ". | length" "0"}"
+        "${curlJqCheck "" "GET" "_all_dbs" ". | length" "0"}"
     )
-    couchdb2.succeed("${curlJqCheck "PUT" "foo" ".ok" "true"}")
+    couchdb2.succeed("${curlJqCheck testlogin "PUT" "foo" ".ok" "true"}")
     couchdb2.succeed(
-        "${curlJqCheck "GET" "_all_dbs" ". | length" "1"}"
+        "${curlJqCheck "" "GET" "_all_dbs" ". | length" "1"}"
     )
     couchdb2.succeed(
-        "${curlJqCheck "DELETE" "foo" ".ok" "true"}"
+        "${curlJqCheck testlogin "DELETE" "foo" ".ok" "true"}"
     )
     couchdb2.succeed(
-        "${curlJqCheck "GET" "_all_dbs" ". | length" "0"}"
+        "${curlJqCheck "" "GET" "_all_dbs" ". | length" "0"}"
+    )
+
+    couchdb3.wait_for_unit("couchdb.service")
+    couchdb3.wait_until_succeeds(
+        "${curlJqCheck testlogin "GET" "" ".couchdb" "Welcome"}"
+    )
+    couchdb3.wait_until_succeeds(
+        "${curlJqCheck testlogin "GET" "_all_dbs" ". | length" "0"}"
+    )
+    couchdb3.succeed("${curlJqCheck testlogin "PUT" "foo" ".ok" "true"}")
+    couchdb3.succeed(
+        "${curlJqCheck testlogin "GET" "_all_dbs" ". | length" "1"}"
+    )
+    couchdb3.succeed(
+        "${curlJqCheck testlogin "DELETE" "foo" ".ok" "true"}"
+    )
+    couchdb3.succeed(
+        "${curlJqCheck testlogin "GET" "_all_dbs" ". | length" "0"}"
     )
   '';
 })
diff --git a/nixpkgs/nixos/tests/cri-o.nix b/nixpkgs/nixos/tests/cri-o.nix
new file mode 100644
index 000000000000..f13f1bdacb6a
--- /dev/null
+++ b/nixpkgs/nixos/tests/cri-o.nix
@@ -0,0 +1,19 @@
+# This test runs CRI-O and verifies via critest
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "cri-o";
+  maintainers = with pkgs.stdenv.lib.maintainers; teams.podman.members;
+
+  nodes = {
+    crio = {
+      virtualisation.cri-o.enable = true;
+    };
+  };
+
+  testScript = ''
+    start_all()
+    crio.wait_for_unit("crio.service")
+    crio.succeed(
+        "critest --ginkgo.focus='Runtime info' --runtime-endpoint unix:///var/run/crio/crio.sock"
+    )
+  '';
+})
diff --git a/nixpkgs/nixos/tests/docker-preloader.nix b/nixpkgs/nixos/tests/docker-preloader.nix
deleted file mode 100644
index eeedec9a392e..000000000000
--- a/nixpkgs/nixos/tests/docker-preloader.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-import ./make-test.nix ({ pkgs, ...} : {
-  name = "docker-preloader";
-  meta = with pkgs.stdenv.lib.maintainers; {
-    maintainers = [ lewo ];
-  };
-
-  nodes = {
-    docker =
-      { pkgs, ... }:
-        {
-          virtualisation.docker.enable = true;
-          virtualisation.dockerPreloader.images = [ pkgs.dockerTools.examples.nix pkgs.dockerTools.examples.bash ];
-
-          services.openssh.enable = true;
-          services.openssh.permitRootLogin = "yes";
-          services.openssh.extraConfig = "PermitEmptyPasswords yes";
-          users.extraUsers.root.password = "";
-        };
-  };    
-  testScript = ''
-    startAll;
-    
-    $docker->waitForUnit("sockets.target");
-    $docker->succeed("docker run nix nix-store --version");
-    $docker->succeed("docker run bash bash --version");
-  '';
-})
diff --git a/nixpkgs/nixos/tests/docker-tools.nix b/nixpkgs/nixos/tests/docker-tools.nix
index 2375d15b3813..edb9aec62db3 100644
--- a/nixpkgs/nixos/tests/docker-tools.nix
+++ b/nixpkgs/nixos/tests/docker-tools.nix
@@ -30,8 +30,45 @@ import ./make-test-python.nix ({ pkgs, ... }: {
         )
 
     docker.succeed("docker run --rm ${examples.bash.imageName} bash --version")
+    # Check imageTag attribute matches image
+    docker.succeed("docker images --format '{{.Tag}}' | grep -F '${examples.bash.imageTag}'")
     docker.succeed("docker rmi ${examples.bash.imageName}")
 
+    # The remaining combinations
+    with subtest("Ensure imageTag attribute matches image"):
+        docker.succeed(
+            "docker load --input='${examples.bashNoTag}'"
+        )
+        docker.succeed(
+            "docker images --format '{{.Tag}}' | grep -F '${examples.bashNoTag.imageTag}'"
+        )
+        docker.succeed("docker rmi ${examples.bashNoTag.imageName}:${examples.bashNoTag.imageTag}")
+
+        docker.succeed(
+            "docker load --input='${examples.bashNoTagLayered}'"
+        )
+        docker.succeed(
+            "docker images --format '{{.Tag}}' | grep -F '${examples.bashNoTagLayered.imageTag}'"
+        )
+        docker.succeed("docker rmi ${examples.bashNoTagLayered.imageName}:${examples.bashNoTagLayered.imageTag}")
+
+        docker.succeed(
+            "${examples.bashNoTagStreamLayered} | docker load"
+        )
+        docker.succeed(
+            "docker images --format '{{.Tag}}' | grep -F '${examples.bashNoTagStreamLayered.imageTag}'"
+        )
+        docker.succeed(
+            "docker rmi ${examples.bashNoTagStreamLayered.imageName}:${examples.bashNoTagStreamLayered.imageTag}"
+        )
+
+        docker.succeed(
+            "docker load --input='${examples.nixLayered}'"
+        )
+        docker.succeed("docker images --format '{{.Tag}}' | grep -F '${examples.nixLayered.imageTag}'")
+        docker.succeed("docker rmi ${examples.nixLayered.imageName}")
+
+
     with subtest(
         "Check if the nix store is correctly initialized by listing "
         "dependencies of the installed Nix binary"
@@ -42,6 +79,30 @@ import ./make-test-python.nix ({ pkgs, ... }: {
             "docker rmi ${examples.nix.imageName}",
         )
 
+    with subtest(
+        "Ensure (layered) nix store has correct permissions "
+        "and that the container starts when its process does not have uid 0"
+    ):
+        docker.succeed(
+            "docker load --input='${examples.bashLayeredWithUser}'",
+            "docker run -u somebody --rm ${examples.bashLayeredWithUser.imageName} ${pkgs.bash}/bin/bash -c 'test 555 == $(stat --format=%a /nix) && test 555 == $(stat --format=%a /nix/store)'",
+            "docker rmi ${examples.bashLayeredWithUser.imageName}",
+        )
+
+    with subtest("The nix binary symlinks are intact"):
+        docker.succeed(
+            "docker load --input='${examples.nix}'",
+            "docker run --rm ${examples.nix.imageName} ${pkgs.bash}/bin/bash -c 'test nix == $(readlink ${pkgs.nix}/bin/nix-daemon)'",
+            "docker rmi ${examples.nix.imageName}",
+        )
+
+    with subtest("The nix binary symlinks are intact when the image is layered"):
+        docker.succeed(
+            "docker load --input='${examples.nixLayered}'",
+            "docker run --rm ${examples.nixLayered.imageName} ${pkgs.bash}/bin/bash -c 'test nix == $(readlink ${pkgs.nix}/bin/nix-daemon)'",
+            "docker rmi ${examples.nixLayered.imageName}",
+        )
+
     with subtest("The pullImage tool works"):
         docker.succeed(
             "docker load --input='${examples.nixFromDockerHub}'",
@@ -76,13 +137,22 @@ import ./make-test-python.nix ({ pkgs, ... }: {
 
     with subtest("Ensure Docker images can use an unstable date"):
         docker.succeed(
-            "docker load --input='${examples.bash}'"
+            "docker load --input='${examples.unstableDate}'"
         )
         assert unix_time_second1 not in docker.succeed(
             "docker inspect ${examples.unstableDate.imageName} "
             + "| ${pkgs.jq}/bin/jq -r .[].Created"
         )
 
+    with subtest("Ensure Layered Docker images can use an unstable date"):
+        docker.succeed(
+            "docker load --input='${examples.unstableDateLayered}'"
+        )
+        assert unix_time_second1 not in docker.succeed(
+            "docker inspect ${examples.unstableDateLayered.imageName} "
+            + "| ${pkgs.jq}/bin/jq -r .[].Created"
+        )
+
     with subtest("Ensure Layered Docker images work"):
         docker.succeed(
             "docker load --input='${examples.layered-image}'",
@@ -149,20 +219,20 @@ import ./make-test-python.nix ({ pkgs, ... }: {
         )
 
     with subtest("Ensure correct behavior when no store is needed"):
-        # This check tests two requirements simultaneously
-        #  1. buildLayeredImage can build images that don't need a store.
-        #  2. Layers of symlinks are eliminated by the customization layer.
-        #
+        # This check tests that buildLayeredImage can build images that don't need a store.
         docker.succeed(
             "docker load --input='${pkgs.dockerTools.examples.no-store-paths}'"
         )
 
-        # Busybox will not recognize argv[0] and print an error message with argv[0],
-        # but it confirms that the custom-true symlink is present.
-        docker.succeed("docker run --rm no-store-paths custom-true |& grep custom-true")
-
         # This check may be loosened to allow an *empty* store rather than *no* store.
         docker.succeed("docker run --rm no-store-paths ls /")
         docker.fail("docker run --rm no-store-paths ls /nix/store")
+
+    with subtest("Ensure buildLayeredImage does not change store path contents."):
+        docker.succeed(
+            "docker load --input='${pkgs.dockerTools.examples.filesInStore}'",
+            "docker run --rm file-in-store nix-store --verify --check-contents",
+            "docker run --rm file-in-store |& grep 'some data'",
+        )
   '';
 })
diff --git a/nixpkgs/nixos/tests/docker.nix b/nixpkgs/nixos/tests/docker.nix
index 8fda7c1395ef..a4a61468f33d 100644
--- a/nixpkgs/nixos/tests/docker.nix
+++ b/nixpkgs/nixos/tests/docker.nix
@@ -43,7 +43,7 @@ import ./make-test-python.nix ({ pkgs, ...} : {
     docker.fail("sudo -u noprivs docker ps")
     docker.succeed("docker stop sleeping")
 
-    # Must match version twice to ensure client and server versions are correct
-    docker.succeed('[ $(docker version | grep ${pkgs.docker.version} | wc -l) = "2" ]')
+    # Must match version 4 times to ensure client and server git commits and versions are correct
+    docker.succeed('[ $(docker version | grep ${pkgs.docker.version} | wc -l) = "4" ]')
   '';
 })
diff --git a/nixpkgs/nixos/tests/dokuwiki.nix b/nixpkgs/nixos/tests/dokuwiki.nix
index 05271919effe..58069366ca36 100644
--- a/nixpkgs/nixos/tests/dokuwiki.nix
+++ b/nixpkgs/nixos/tests/dokuwiki.nix
@@ -32,24 +32,17 @@ let
 
 in {
   name = "dokuwiki";
-  meta.maintainers = with pkgs.lib.maintainers; [ "1000101" ];
-
+  meta = with pkgs.stdenv.lib; {
+    maintainers = with maintainers; [ _1000101 ];
+  };
   machine = { ... }: {
     services.dokuwiki."site1.local" = {
       aclUse = false;
       superUser = "admin";
-      nginx = {
-        forceSSL = false;
-        enableACME = false;
-      };
     };
     services.dokuwiki."site2.local" = {
-      aclUse = true;
+      usersFile = "/var/lib/dokuwiki/site2.local/users.auth.php";
       superUser = "admin";
-      nginx = {
-        forceSSL = false;
-        enableACME = false;
-      };
       templates = [ template-bootstrap3 ];
       plugins = [ plugin-icalevents ];
     };
@@ -69,6 +62,15 @@ in {
     machine.wait_for_open_port(80)
 
     machine.succeed("curl -sSfL http://site1.local/ | grep 'DokuWiki'")
+    machine.fail("curl -sSfL 'http://site1.local/doku.php?do=login' | grep 'Login'")
+
     machine.succeed("curl -sSfL http://site2.local/ | grep 'DokuWiki'")
+    machine.succeed("curl -sSfL 'http://site2.local/doku.php?do=login' | grep 'Login'")
+
+    machine.succeed(
+        "echo 'admin:$2y$10$ijdBQMzSVV20SrKtCna8gue36vnsbVm2wItAXvdm876sshI4uwy6S:Admin:admin@example.test:user' >> /var/lib/dokuwiki/site2.local/users.auth.php",
+        "curl -sSfL -d 'u=admin&p=password' --cookie-jar cjar 'http://site2.local/doku.php?do=login'",
+        "curl -sSfL --cookie cjar --cookie-jar cjar 'http://site2.local/doku.php?do=login' | grep 'Logged in as: <bdi>Admin</bdi>'",
+    )
   '';
 })
diff --git a/nixpkgs/nixos/tests/ec2.nix b/nixpkgs/nixos/tests/ec2.nix
index 5a59d65e6026..df0672480168 100644
--- a/nixpkgs/nixos/tests/ec2.nix
+++ b/nixpkgs/nixos/tests/ec2.nix
@@ -3,58 +3,58 @@
   pkgs ? import ../.. { inherit system config; }
 }:
 
-with import ../lib/testing.nix { inherit system pkgs; };
+with import ../lib/testing-python.nix { inherit system pkgs; };
 with pkgs.lib;
 
 with import common/ec2.nix { inherit makeTest pkgs; };
 
 let
-  imageCfg =
-    (import ../lib/eval-config.nix {
-      inherit system;
-      modules = [
-        ../maintainers/scripts/ec2/amazon-image.nix
-        ../modules/testing/test-instrumentation.nix
-        ../modules/profiles/qemu-guest.nix
-        { ec2.hvm = true;
-
-          # Hack to make the partition resizing work in QEMU.
-          boot.initrd.postDeviceCommands = mkBefore
-            ''
-              ln -s vda /dev/xvda
-              ln -s vda1 /dev/xvda1
-            '';
-
-          # Needed by nixos-rebuild due to the lack of network
-          # access. Determined by trial and error.
-          system.extraDependencies =
-            with pkgs; (
-              [
-                # Needed for a nixos-rebuild.
-                busybox
-                stdenv
-                stdenvNoCC
-                mkinitcpio-nfs-utils
-                unionfs-fuse
-                cloud-utils
-                desktop-file-utils
-                texinfo
-                libxslt.bin
-                xorg.lndir
-
-                # These are used in the configure-from-userdata tests
-                # for EC2. Httpd and valgrind are requested by the
-                # configuration.
-                apacheHttpd apacheHttpd.doc apacheHttpd.man valgrind.doc
-              ]
-            );
-        }
-      ];
-    }).config;
+  imageCfg = (import ../lib/eval-config.nix {
+    inherit system;
+    modules = [
+      ../maintainers/scripts/ec2/amazon-image.nix
+      ../modules/testing/test-instrumentation.nix
+      ../modules/profiles/qemu-guest.nix
+      {
+        ec2.hvm = true;
+
+        # Hack to make the partition resizing work in QEMU.
+        boot.initrd.postDeviceCommands = mkBefore ''
+          ln -s vda /dev/xvda
+          ln -s vda1 /dev/xvda1
+        '';
+
+        # Needed by nixos-rebuild due to the lack of network
+        # access. Determined by trial and error.
+        system.extraDependencies = with pkgs; ( [
+          # Needed for a nixos-rebuild.
+          busybox
+          cloud-utils
+          desktop-file-utils
+          libxslt.bin
+          mkinitcpio-nfs-utils
+          stdenv
+          stdenvNoCC
+          texinfo
+          unionfs-fuse
+          xorg.lndir
+
+          # These are used in the configure-from-userdata tests
+          # for EC2. Httpd and valgrind are requested by the
+          # configuration.
+          apacheHttpd
+          apacheHttpd.doc
+          apacheHttpd.man
+          valgrind.doc
+        ]);
+      }
+    ];
+  }).config;
   image = "${imageCfg.system.build.amazonImage}/${imageCfg.amazonImage.name}.vhd";
 
   sshKeys = import ./ssh-keys.nix pkgs;
   snakeOilPrivateKey = sshKeys.snakeOilPrivateKey.text;
+  snakeOilPrivateKeyFile = pkgs.writeText "private-key" snakeOilPrivateKey;
   snakeOilPublicKey = sshKeys.snakeOilPublicKey;
 
 in {
@@ -68,43 +68,47 @@ in {
       SSH_HOST_ED25519_KEY:${replaceStrings ["\n"] ["|"] snakeOilPrivateKey}
     '';
     script = ''
-      $machine->start;
-      $machine->waitForFile("/etc/ec2-metadata/user-data");
-      $machine->waitForUnit("sshd.service");
+      machine.start()
+      machine.wait_for_file("/etc/ec2-metadata/user-data")
+      machine.wait_for_unit("sshd.service")
 
-      $machine->succeed("grep unknown /etc/ec2-metadata/ami-manifest-path");
+      machine.succeed("grep unknown /etc/ec2-metadata/ami-manifest-path")
 
       # We have no keys configured on the client side yet, so this should fail
-      $machine->fail("ssh -o BatchMode=yes localhost exit");
+      machine.fail("ssh -o BatchMode=yes localhost exit")
 
       # Let's install our client private key
-      $machine->succeed("mkdir -p ~/.ssh");
+      machine.succeed("mkdir -p ~/.ssh")
 
-      $machine->succeed("echo '${snakeOilPrivateKey}' > ~/.ssh/id_ed25519");
-      $machine->succeed("chmod 600 ~/.ssh/id_ed25519");
+      machine.copy_from_host_via_shell(
+          "${snakeOilPrivateKeyFile}", "~/.ssh/id_ed25519"
+      )
+      machine.succeed("chmod 600 ~/.ssh/id_ed25519")
 
       # We haven't configured the host key yet, so this should still fail
-      $machine->fail("ssh -o BatchMode=yes localhost exit");
+      machine.fail("ssh -o BatchMode=yes localhost exit")
 
       # Add the host key; ssh should finally succeed
-      $machine->succeed("echo localhost,127.0.0.1 ${snakeOilPublicKey} > ~/.ssh/known_hosts");
-      $machine->succeed("ssh -o BatchMode=yes localhost exit");
+      machine.succeed(
+          "echo localhost,127.0.0.1 ${snakeOilPublicKey} > ~/.ssh/known_hosts"
+      )
+      machine.succeed("ssh -o BatchMode=yes localhost exit")
 
       # Test whether the root disk was resized.
-      my $blocks = $machine->succeed("stat -c %b -f /");
-      my $bsize = $machine->succeed("stat -c %S -f /");
-      my $size = $blocks * $bsize;
-      die "wrong free space $size" if $size < 9.7 * 1024 * 1024 * 1024 || $size > 10 * 1024 * 1024 * 1024;
+      blocks, block_size = map(int, machine.succeed("stat -c %b:%S -f /").split(":"))
+      GB = 1024 ** 3
+      assert 9.7 * GB <= blocks * block_size <= 10 * GB
 
       # Just to make sure resizing is idempotent.
-      $machine->shutdown;
-      $machine->start;
-      $machine->waitForFile("/etc/ec2-metadata/user-data");
+      machine.shutdown()
+      machine.start()
+      machine.wait_for_file("/etc/ec2-metadata/user-data")
     '';
   };
 
   boot-ec2-config = makeEc2Test {
     name         = "config-userdata";
+    meta.broken = true; # amazon-init wants to download from the internet while building the system
     inherit image;
     sshPublicKey = snakeOilPublicKey;
 
@@ -133,17 +137,17 @@ in {
       }
     '';
     script = ''
-      $machine->start;
+      machine.start()
 
       # amazon-init must succeed. if it fails, make the test fail
-      # immediately instead of timing out in waitForFile.
-      $machine->waitForUnit('amazon-init.service');
+      # immediately instead of timing out in wait_for_file.
+      machine.wait_for_unit("amazon-init.service")
 
-      $machine->waitForFile("/etc/testFile");
-      $machine->succeed("cat /etc/testFile | grep -q 'whoa'");
+      machine.wait_for_file("/etc/testFile")
+      assert "whoa" in machine.succeed("cat /etc/testFile")
 
-      $machine->waitForUnit("httpd.service");
-      $machine->succeed("curl http://localhost | grep Valgrind");
+      machine.wait_for_unit("httpd.service")
+      assert "Valgrind" in machine.succeed("curl http://localhost")
     '';
   };
 }
diff --git a/nixpkgs/nixos/tests/firejail.nix b/nixpkgs/nixos/tests/firejail.nix
new file mode 100644
index 000000000000..a723cb01664f
--- /dev/null
+++ b/nixpkgs/nixos/tests/firejail.nix
@@ -0,0 +1,82 @@
+import ./make-test-python.nix ({ pkgs, ...} : {
+  name = "firejail";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ sgo ];
+  };
+
+  nodes.machine = { ... }: {
+    imports = [ ./common/user-account.nix ];
+
+    programs.firejail = {
+      enable = true;
+      wrappedBinaries = {
+        bash-jailed  = "${pkgs.bash}/bin/bash";
+      };
+    };
+
+    systemd.services.setupFirejailTest = {
+      wantedBy = [ "multi-user.target" ];
+      before = [ "multi-user.target" ];
+
+      environment = {
+        HOME = "/home/alice";
+      };
+
+      unitConfig = {
+        type = "oneshot";
+        RemainAfterExit = true;
+        user = "alice";
+      };
+
+      script = ''
+        cd $HOME
+
+        mkdir .password-store && echo s3cret > .password-store/secret
+        mkdir my-secrets && echo s3cret > my-secrets/secret
+
+        echo publ1c > public
+
+        mkdir -p .config/firejail
+        echo 'blacklist ''${HOME}/my-secrets' > .config/firejail/globals.local
+      '';
+    };
+  };
+
+  testScript = ''
+    start_all()
+    machine.wait_for_unit("multi-user.target")
+
+    # Test path acl with wrapper
+    machine.succeed("sudo -u alice bash-jailed -c 'cat ~/public' | grep -q publ1c")
+    machine.fail(
+        "sudo -u alice bash-jailed -c 'cat ~/.password-store/secret' | grep -q s3cret"
+    )
+    machine.fail("sudo -u alice bash-jailed -c 'cat ~/my-secrets/secret' | grep -q s3cret")
+
+
+    # Test path acl with firejail executable
+    machine.succeed("sudo -u alice firejail -- bash -c 'cat ~/public' | grep -q publ1c")
+    machine.fail(
+        "sudo -u alice firejail -- bash -c 'cat ~/.password-store/secret' | grep -q s3cret"
+    )
+    machine.fail(
+        "sudo -u alice firejail -- bash -c 'cat ~/my-secrets/secret' | grep -q s3cret"
+    )
+
+    # Disabling profiles
+    machine.succeed(
+        "sudo -u alice bash -c 'firejail --noprofile -- cat ~/.password-store/secret' | grep -q s3cret"
+    )
+
+    # CVE-2020-17367
+    machine.fail(
+        "sudo -u alice firejail --private-tmp id --output=/tmp/vuln1 && cat /tmp/vuln1"
+    )
+
+    # CVE-2020-17368
+    machine.fail(
+        "sudo -u alice firejail --private-tmp --output=/tmp/foo 'bash -c $(id>/tmp/vuln2;echo id)' && cat /tmp/vuln2"
+    )
+  '';
+})
+
diff --git a/nixpkgs/nixos/tests/gnome3-xorg.nix b/nixpkgs/nixos/tests/gnome3-xorg.nix
index b59badcd5de4..0d05c12384f3 100644
--- a/nixpkgs/nixos/tests/gnome3-xorg.nix
+++ b/nixpkgs/nixos/tests/gnome3-xorg.nix
@@ -12,8 +12,9 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
 
       services.xserver.enable = true;
 
-      services.xserver.displayManager.gdm = {
-        enable = true;
+      services.xserver.displayManager = {
+        gdm.enable = true;
+        gdm.debug = true;
         autoLogin = {
           enable = true;
           user = user.name;
@@ -21,6 +22,7 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
       };
 
       services.xserver.desktopManager.gnome3.enable = true;
+      services.xserver.desktopManager.gnome3.debug = true;
       services.xserver.displayManager.defaultSession = "gnome-xorg";
 
       virtualisation.memorySize = 1024;
diff --git a/nixpkgs/nixos/tests/gnome3.nix b/nixpkgs/nixos/tests/gnome3.nix
index 17e72c5f6510..7e301be49d10 100644
--- a/nixpkgs/nixos/tests/gnome3.nix
+++ b/nixpkgs/nixos/tests/gnome3.nix
@@ -11,8 +11,9 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
 
       services.xserver.enable = true;
 
-      services.xserver.displayManager.gdm = {
-        enable = true;
+      services.xserver.displayManager = {
+        gdm.enable = true;
+        gdm.debug = true;
         autoLogin = {
           enable = true;
           user = "alice";
@@ -20,6 +21,14 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
       };
 
       services.xserver.desktopManager.gnome3.enable = true;
+      services.xserver.desktopManager.gnome3.debug = true;
+
+      environment.systemPackages = [
+        (pkgs.makeAutostartItem {
+          name = "org.gnome.Terminal";
+          package = pkgs.gnome3.gnome-terminal;
+        })
+      ];
 
       virtualisation.memorySize = 1024;
     };
@@ -63,9 +72,6 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
           )
 
       with subtest("Open Gnome Terminal"):
-          machine.succeed(
-              "${gnomeTerminalCommand}"
-          )
           # correct output should be (true, '"gnome-terminal-server"')
           machine.wait_until_succeeds(
               "${wmClass} | grep -q 'gnome-terminal-server'"
diff --git a/nixpkgs/nixos/tests/gotify-server.nix b/nixpkgs/nixos/tests/gotify-server.nix
index c6e00686aed9..c0b8ba43548a 100644
--- a/nixpkgs/nixos/tests/gotify-server.nix
+++ b/nixpkgs/nixos/tests/gotify-server.nix
@@ -41,5 +41,10 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
     )
 
     assert title == "Gotify"
+
+    # Ensure that the UI responds with a successfuly code and that the
+    # response is not empty
+    result = machine.succeed("curl -fsS localhost:3000")
+    assert result, "HTTP response from localhost:3000 must not be empty!"
   '';
 })
diff --git a/nixpkgs/nixos/tests/graphite.nix b/nixpkgs/nixos/tests/graphite.nix
index 71776a94cbd6..137be2d89c8b 100644
--- a/nixpkgs/nixos/tests/graphite.nix
+++ b/nixpkgs/nixos/tests/graphite.nix
@@ -1,11 +1,6 @@
 import ./make-test-python.nix ({ pkgs, ... } :
 {
   name = "graphite";
-  meta = {
-    # Fails on dependency `python-2.7-Twisted`'s test suite
-    # complaining `ImportError: No module named zope.interface`.
-    broken = true;
-  };
   nodes = {
     one =
       { ... }: {
@@ -21,7 +16,7 @@ import ./make-test-python.nix ({ pkgs, ... } :
           api = {
             enable = true;
             port = 8082;
-            finders = [ pkgs.python3Packages.influxgraph ];
+            finders = [ ];
           };
           carbon.enableCache = true;
           seyren.enable = false;  # Implicitely requires openssl-1.0.2u which is marked insecure
@@ -41,10 +36,14 @@ import ./make-test-python.nix ({ pkgs, ... } :
     # even if they're still in preStart (which takes quite long for graphiteWeb).
     # Wait for ports to open so we're sure the services are up and listening.
     one.wait_for_open_port(8080)
+    one.wait_for_open_port(8082)
     one.wait_for_open_port(2003)
     one.succeed('echo "foo 1 `date +%s`" | nc -N localhost 2003')
     one.wait_until_succeeds(
         "curl 'http://localhost:8080/metrics/find/?query=foo&format=treejson' --silent | grep foo >&2"
     )
+    one.wait_until_succeeds(
+        "curl 'http://localhost:8082/metrics/find/?query=foo&format=treejson' --silent | grep foo >&2"
+    )
   '';
 })
diff --git a/nixpkgs/nixos/tests/grub.nix b/nixpkgs/nixos/tests/grub.nix
new file mode 100644
index 000000000000..84bfc90955b5
--- /dev/null
+++ b/nixpkgs/nixos/tests/grub.nix
@@ -0,0 +1,60 @@
+import ./make-test-python.nix ({ lib, ... }: {
+  name = "grub";
+
+  meta = with lib.maintainers; {
+    maintainers = [ rnhmjoj ];
+  };
+
+  machine = { ... }: {
+    virtualisation.useBootLoader = true;
+
+    boot.loader.timeout = null;
+    boot.loader.grub = {
+      enable = true;
+      users.alice.password = "supersecret";
+
+      # OCR is not accurate enough
+      extraConfig = "serial; terminal_output serial";
+    };
+  };
+
+  testScript = ''
+    def grub_login_as(user, password):
+        """
+        Enters user and password to log into GRUB
+        """
+        machine.wait_for_console_text("Enter username:")
+        machine.send_chars(user + "\n")
+        machine.wait_for_console_text("Enter password:")
+        machine.send_chars(password + "\n")
+
+
+    def grub_select_all_configurations():
+        """
+        Selects "All configurations" from the GRUB menu
+        to trigger a login request.
+        """
+        machine.send_monitor_command("sendkey down")
+        machine.send_monitor_command("sendkey ret")
+
+
+    machine.start()
+
+    # wait for grub screen
+    machine.wait_for_console_text("GNU GRUB")
+
+    grub_select_all_configurations()
+    with subtest("Invalid credentials are rejected"):
+        grub_login_as("wronguser", "wrongsecret")
+        machine.wait_for_console_text("error: access denied.")
+
+    grub_select_all_configurations()
+    with subtest("Valid credentials are accepted"):
+        grub_login_as("alice", "supersecret")
+        machine.send_chars("\n")  # press enter to boot
+        machine.wait_for_console_text("Linux version")
+
+    with subtest("Machine boots correctly"):
+        machine.wait_for_unit("multi-user.target")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/hardened.nix b/nixpkgs/nixos/tests/hardened.nix
index 5ed0dfcf9ab8..8d845de70e24 100644
--- a/nixpkgs/nixos/tests/hardened.nix
+++ b/nixpkgs/nixos/tests/hardened.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, latestKernel ? false, ... } : {
+import ./make-test-python.nix ({ pkgs, latestKernel ? false, ... } : {
   name = "hardened";
   meta = with pkgs.stdenv.lib.maintainers; {
     maintainers = [ joachifm ];
@@ -47,84 +47,88 @@ import ./make-test.nix ({ pkgs, latestKernel ? false, ... } : {
       };
     in
     ''
-      $machine->waitForUnit("multi-user.target");
+      machine.wait_for_unit("multi-user.target")
+
+
+      with subtest("AppArmor profiles are loaded"):
+          machine.succeed("systemctl status apparmor.service")
 
-      subtest "apparmor-loaded", sub {
-          $machine->succeed("systemctl status apparmor.service");
-      };
 
       # AppArmor securityfs
-      subtest "apparmor-securityfs", sub {
-          $machine->succeed("mountpoint -q /sys/kernel/security");
-          $machine->succeed("cat /sys/kernel/security/apparmor/profiles");
-      };
+      with subtest("AppArmor securityfs is mounted"):
+          machine.succeed("mountpoint -q /sys/kernel/security")
+          machine.succeed("cat /sys/kernel/security/apparmor/profiles")
+
 
       # Test loading out-of-tree modules
-      subtest "extra-module-packages", sub {
-          $machine->succeed("grep -Fq wireguard /proc/modules");
-      };
+      with subtest("Out-of-tree modules can be loaded"):
+          machine.succeed("grep -Fq wireguard /proc/modules")
+
 
       # Test hidepid
-      subtest "hidepid", sub {
-          $machine->succeed("grep -Fq hidepid=2 /proc/mounts");
+      with subtest("hidepid=2 option is applied and works"):
+          machine.succeed("grep -Fq hidepid=2 /proc/mounts")
           # cannot use pgrep -u here, it segfaults when access to process info is denied
-          $machine->succeed("[ `su - sybil -c 'ps --no-headers --user root | wc -l'` = 0 ]");
-          $machine->succeed("[ `su - alice -c 'ps --no-headers --user root | wc -l'` != 0 ]");
-      };
+          machine.succeed("[ `su - sybil -c 'ps --no-headers --user root | wc -l'` = 0 ]")
+          machine.succeed("[ `su - alice -c 'ps --no-headers --user root | wc -l'` != 0 ]")
+
 
       # Test kernel module hardening
-      subtest "lock-modules", sub {
+      with subtest("No more kernel modules can be loaded"):
           # note: this better a be module we normally wouldn't load ...
-          $machine->fail("modprobe dccp");
-      };
+          machine.fail("modprobe dccp")
+
 
       # Test userns
-      subtest "userns", sub {
-          $machine->succeed("unshare --user true");
-          $machine->fail("su -l alice -c 'unshare --user true'");
-      };
+      with subtest("User namespaces are restricted"):
+          machine.succeed("unshare --user true")
+          machine.fail("su -l alice -c 'unshare --user true'")
+
 
       # Test dmesg restriction
-      subtest "dmesg", sub {
-          $machine->fail("su -l alice -c dmesg");
-      };
+      with subtest("Regular users cannot access dmesg"):
+          machine.fail("su -l alice -c dmesg")
+
 
       # Test access to kcore
-      subtest "kcore", sub {
-          $machine->fail("cat /proc/kcore");
-      };
+      with subtest("Kcore is inaccessible as root"):
+          machine.fail("cat /proc/kcore")
+
 
       # Test deferred mount
-      subtest "mount", sub {
-        $machine->fail("mountpoint -q /efi"); # was deferred
-        $machine->execute("mkdir -p /efi");
-        $machine->succeed("mount /dev/disk/by-label/EFISYS /efi");
-        $machine->succeed("mountpoint -q /efi"); # now mounted
-      };
+      with subtest("Deferred mounts work"):
+          machine.fail("mountpoint -q /efi")  # was deferred
+          machine.execute("mkdir -p /efi")
+          machine.succeed("mount /dev/disk/by-label/EFISYS /efi")
+          machine.succeed("mountpoint -q /efi")  # now mounted
+
 
       # Test Nix dæmon usage
-      subtest "nix-daemon", sub {
-        $machine->fail("su -l nobody -s /bin/sh -c 'nix ping-store'");
-        $machine->succeed("su -l alice -c 'nix ping-store'") =~ "OK";
-      };
+      with subtest("nix-daemon cannot be used by all users"):
+          machine.fail("su -l nobody -s /bin/sh -c 'nix ping-store'")
+          machine.succeed("su -l alice -c 'nix ping-store'")
+
 
       # Test kernel image protection
-      subtest "kernelimage", sub {
-        $machine->fail("systemctl hibernate");
-        $machine->fail("systemctl kexec");
-      };
+      with subtest("The kernel image is protected"):
+          machine.fail("systemctl hibernate")
+          machine.fail("systemctl kexec")
 
-      # Test hardened memory allocator
-      sub runMallocTestProg {
-          my ($progName, $errorText) = @_;
-          my $text = "fatal allocator error: " . $errorText;
-          $machine->fail("${hardened-malloc-tests}/bin/" . $progName) =~ $text;
-      };
 
-      subtest "hardenedmalloc", sub {
-        runMallocTestProg("double_free_large", "invalid free");
-        runMallocTestProg("unaligned_free_small", "invalid unaligned free");
-        runMallocTestProg("write_after_free_small", "detected write after free");
-      };
+      # Test hardened memory allocator
+      def runMallocTestProg(prog_name, error_text):
+          text = "fatal allocator error: " + error_text
+          if not text in machine.fail(
+              "${hardened-malloc-tests}/bin/"
+              + prog_name
+              + " 2>&1"
+          ):
+              raise Exception("Hardened malloc does not work for {}".format(error_text))
+
+
+      with subtest("The hardened memory allocator works"):
+          runMallocTestProg("double_free_large", "invalid free")
+          runMallocTestProg("unaligned_free_small", "invalid unaligned free")
+          runMallocTestProg("write_after_free_small", "detected write after free")
     '';
 })
diff --git a/nixpkgs/nixos/tests/hocker-fetchdocker/default.nix b/nixpkgs/nixos/tests/hocker-fetchdocker/default.nix
index 4f30f01e4032..978dbf310b12 100644
--- a/nixpkgs/nixos/tests/hocker-fetchdocker/default.nix
+++ b/nixpkgs/nixos/tests/hocker-fetchdocker/default.nix
@@ -1,15 +1,16 @@
-import ../make-test.nix ({ pkgs, ...} : {
+import ../make-test-python.nix ({ pkgs, ...} : {
   name = "test-hocker-fetchdocker";
   meta = with pkgs.stdenv.lib.maintainers; {
     maintainers = [ ixmatus ];
+    broken = true; # tries to download from registry-1.docker.io - how did this ever work?
   };
 
   machine = import ./machine.nix;
 
   testScript = ''
-    startAll;
+    start_all()
 
-    $machine->waitForUnit("sockets.target");
-    $machine->waitUntilSucceeds("docker run registry-1.docker.io/v2/library/hello-world:latest");
+    machine.wait_for_unit("sockets.target")
+    machine.wait_until_succeeds("docker run registry-1.docker.io/v2/library/hello-world:latest")
   '';
 })
diff --git a/nixpkgs/nixos/tests/home-assistant.nix b/nixpkgs/nixos/tests/home-assistant.nix
index 3365e74ba838..a93a28d877a3 100644
--- a/nixpkgs/nixos/tests/home-assistant.nix
+++ b/nixpkgs/nixos/tests/home-assistant.nix
@@ -2,69 +2,66 @@ import ./make-test-python.nix ({ pkgs, ... }:
 
 let
   configDir = "/var/lib/foobar";
-  apiPassword = "some_secret";
-  mqttPassword = "another_secret";
-  hassCli = "hass-cli --server http://hass:8123 --password '${apiPassword}'";
+  mqttUsername = "homeassistant";
+  mqttPassword = "secret";
 in {
   name = "home-assistant";
   meta = with pkgs.stdenv.lib; {
     maintainers = with maintainers; [ dotlambda ];
   };
 
-  nodes = {
-    hass =
-      { pkgs, ... }:
-      {
-        environment.systemPackages = with pkgs; [
-          mosquitto home-assistant-cli
-        ];
-        services.home-assistant = {
-          inherit configDir;
-          enable = true;
-          package = pkgs.home-assistant.override {
-            extraPackages = ps: with ps; [ hbmqtt ];
-          };
-          config = {
-            homeassistant = {
-              name = "Home";
-              time_zone = "UTC";
-              latitude = "0.0";
-              longitude = "0.0";
-              elevation = 0;
-              auth_providers = [
-                {
-                  type = "legacy_api_password";
-                  api_password = apiPassword;
-                }
-              ];
-            };
-            frontend = { };
-            mqtt = { # Use hbmqtt as broker
-              password = mqttPassword;
-            };
-            binary_sensor = [
-              {
-                platform = "mqtt";
-                state_topic = "home-assistant/test";
-                payload_on = "let_there_be_light";
-                payload_off = "off";
-              }
-            ];
-          };
-          lovelaceConfig = {
-            title = "My Awesome Home";
-            views = [ {
-              title = "Example";
-              cards = [ {
-                type = "markdown";
-                title = "Lovelace";
-                content = "Welcome to your **Lovelace UI**.";
-              } ];
-            } ];
-          };
-          lovelaceConfigWritable = true;
+  nodes.hass = { pkgs, ... }: {
+    environment.systemPackages = with pkgs; [ mosquitto ];
+    services.mosquitto = {
+      enable = true;
+      users = {
+        "${mqttUsername}" = {
+          acl = [ "pattern readwrite #" ];
+          password = mqttPassword;
         };
       };
+    };
+    services.home-assistant = {
+      inherit configDir;
+      enable = true;
+      config = {
+        homeassistant = {
+          name = "Home";
+          time_zone = "UTC";
+          latitude = "0.0";
+          longitude = "0.0";
+          elevation = 0;
+        };
+        frontend = {};
+        mqtt = {
+          broker = "127.0.0.1";
+          username = mqttUsername;
+          password = mqttPassword;
+        };
+        binary_sensor = [{
+          platform = "mqtt";
+          state_topic = "home-assistant/test";
+          payload_on = "let_there_be_light";
+          payload_off = "off";
+        }];
+        logger = {
+          default = "info";
+          logs."homeassistant.components.mqtt" = "debug";
+        };
+      };
+      lovelaceConfig = {
+        title = "My Awesome Home";
+        views = [{
+          title = "Example";
+          cards = [{
+            type = "markdown";
+            title = "Lovelace";
+            content = "Welcome to your **Lovelace UI**.";
+          }];
+        }];
+      };
+      lovelaceConfigWritable = true;
+    };
   };
 
   testScript = ''
@@ -77,28 +74,13 @@ in {
     with subtest("Check that Home Assistant's web interface and API can be reached"):
         hass.wait_for_open_port(8123)
         hass.succeed("curl --fail http://localhost:8123/lovelace")
-        assert "API running" in hass.succeed(
-            "curl --fail -H 'x-ha-access: ${apiPassword}' http://localhost:8123/api/"
-        )
     with subtest("Toggle a binary sensor using MQTT"):
-        assert '"state": "off"' in hass.succeed(
-            "curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}'"
-        )
+        # wait for broker to become available
         hass.wait_until_succeeds(
-            "mosquitto_pub -V mqttv311 -t home-assistant/test -u homeassistant -P '${mqttPassword}' -m let_there_be_light"
-        )
-        assert '"state": "on"' in hass.succeed(
-            "curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}'"
-        )
-    with subtest("Toggle a binary sensor using hass-cli"):
-        assert '"state": "on"' in hass.succeed(
-            "${hassCli} --output json state get binary_sensor.mqtt_binary_sensor"
+            "mosquitto_sub -V mqttv311 -t home-assistant/test -u ${mqttUsername} -P '${mqttPassword}' -W 1 -t '*'"
         )
         hass.succeed(
-            "${hassCli} state edit binary_sensor.mqtt_binary_sensor --json='{\"state\": \"off\"}'"
-        )
-        assert '"state": "off"' in hass.succeed(
-            "curl http://localhost:8123/api/states/binary_sensor.mqtt_binary_sensor -H 'x-ha-access: ${apiPassword}'"
+            "mosquitto_pub -V mqttv311 -t home-assistant/test -u ${mqttUsername} -P '${mqttPassword}' -m let_there_be_light"
         )
     with subtest("Print log to ease debugging"):
         output_log = hass.succeed("cat ${configDir}/home-assistant.log")
@@ -107,5 +89,9 @@ in {
 
     with subtest("Check that no errors were logged"):
         assert "ERROR" not in output_log
+
+    # example line: 2020-06-20 10:01:32 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home-assistant/test: b'let_there_be_light'
+    with subtest("Check we received the mosquitto message"):
+        assert "let_there_be_light" in output_log
   '';
 })
diff --git a/nixpkgs/nixos/tests/hydra/common.nix b/nixpkgs/nixos/tests/hydra/common.nix
index f612717dc968..312c52e889a9 100644
--- a/nixpkgs/nixos/tests/hydra/common.nix
+++ b/nixpkgs/nixos/tests/hydra/common.nix
@@ -37,6 +37,7 @@
     };
     services.postfix.enable = true;
     nix = {
+      distributedBuilds = true;
       buildMachines = [{
         hostName = "localhost";
         systems = [ system ];
diff --git a/nixpkgs/nixos/tests/ihatemoney.nix b/nixpkgs/nixos/tests/ihatemoney.nix
index 7df0ea0b691f..0451a4505808 100644
--- a/nixpkgs/nixos/tests/ihatemoney.nix
+++ b/nixpkgs/nixos/tests/ihatemoney.nix
@@ -1,5 +1,11 @@
+{ system ? builtins.currentSystem,
+  config ? {},
+  pkgs ? import ../.. { inherit system config; }
+}:
+
 let
-  f = backend: import ./make-test-python.nix ({ pkgs, ... }: {
+  inherit (import ../lib/testing-python.nix { inherit system pkgs; }) makeTest;
+  f = backend: makeTest {
     name = "ihatemoney-${backend}";
     machine = { lib, ... }: {
       services.ihatemoney = {
@@ -24,9 +30,10 @@ let
     testScript = ''
       machine.wait_for_open_port(8000)
       machine.wait_for_unit("uwsgi.service")
+      machine.wait_until_succeeds("curl http://localhost:8000")
 
       assert '"yay"' in machine.succeed(
-          "curl -X POST http://localhost:8000/api/projects -d 'name=yay&id=yay&password=yay&contact_email=yay\@example.com'"
+          "curl -X POST http://localhost:8000/api/projects -d 'name=yay&id=yay&password=yay&contact_email=yay@example.com'"
       )
       owner, timestamp = machine.succeed(
           "stat --printf %U:%G___%Y /var/lib/ihatemoney/secret_key"
@@ -48,7 +55,7 @@ let
 
       assert "ihatemoney" in machine.succeed("curl http://localhost:8000")
     '';
-  });
+  };
 in {
   ihatemoney-sqlite = f "sqlite";
   ihatemoney-postgresql = f "postgresql";
diff --git a/nixpkgs/nixos/tests/initrd-network-openvpn/default.nix b/nixpkgs/nixos/tests/initrd-network-openvpn/default.nix
new file mode 100644
index 000000000000..bb4c41e6d709
--- /dev/null
+++ b/nixpkgs/nixos/tests/initrd-network-openvpn/default.nix
@@ -0,0 +1,145 @@
+import ../make-test-python.nix ({ lib, ...}:
+
+{
+  name = "initrd-network-openvpn";
+
+  nodes =
+    let
+
+      # Inlining of the shared secret for the
+      # OpenVPN server and client
+      secretblock = ''
+        secret [inline]
+        <secret>
+        ${lib.readFile ./shared.key}
+        </secret>
+        '';
+
+    in
+    {
+
+      # Minimal test case to check a successful boot, even with invalid config
+      minimalboot =
+        { ... }:
+        {
+          boot.initrd.network = {
+            enable = true;
+            openvpn = {
+              enable = true;
+              configuration = "/dev/null";
+            };
+          };
+        };
+
+      # initrd VPN client
+      ovpnclient =
+        { ... }:
+        {
+          virtualisation.useBootLoader = true;
+          virtualisation.vlans = [ 1 ];
+
+          boot.initrd = {
+            # This command does not fork to keep the VM in the state where
+            # only the initramfs is loaded
+            preLVMCommands =
+            ''
+              /bin/nc -p 1234 -lke /bin/echo TESTVALUE
+            '';
+
+            network = {
+              enable = true;
+
+              # Work around udhcpc only getting a lease on eth0
+              postCommands = ''
+                /bin/ip addr add 192.168.1.2/24 dev eth1
+              '';
+
+              # Example configuration for OpenVPN
+              # This is the main reason for this test
+              openvpn = {
+                enable = true;
+                configuration = "${./initrd.ovpn}";
+              };
+            };
+          };
+        };
+
+      # VPN server and gateway for ovpnclient between vlan 1 and 2
+      ovpnserver =
+        { ... }:
+        {
+          virtualisation.vlans = [ 1 2 ];
+
+          # Enable NAT and forward port 12345 to port 1234
+          networking.nat = {
+            enable = true;
+            internalInterfaces = [ "tun0" ];
+            externalInterface = "eth2";
+            forwardPorts = [ { destination = "10.8.0.2:1234";
+                               sourcePort = 12345; } ];
+          };
+
+          # Trust tun0 and allow the VPN Server to be reached
+          networking.firewall = {
+            trustedInterfaces = [ "tun0" ];
+            allowedUDPPorts = [ 1194 ];
+          };
+
+          # Minimal OpenVPN server configuration
+          services.openvpn.servers.testserver =
+          {
+            config = ''
+              dev tun0
+              ifconfig 10.8.0.1 10.8.0.2
+              ${secretblock}
+            '';
+          };
+        };
+
+      # Client that resides in the "external" VLAN
+      testclient =
+        { ... }:
+        {
+          virtualisation.vlans = [ 2 ];
+        };
+  };
+
+
+  testScript =
+    ''
+      # Minimal test case, checks whether enabling (with invalid config) harms
+      # the boot process
+      with subtest("Check for successful boot with broken openvpn config"):
+          minimalboot.start()
+          # If we get to multi-user.target, we booted successfully
+          minimalboot.wait_for_unit("multi-user.target")
+          minimalboot.shutdown()
+
+      # Elaborated test case where the ovpnclient (where this module is used)
+      # can be reached by testclient only over ovpnserver.
+      # This is an indirect test for success.
+      with subtest("Check for connection from initrd VPN client, config as file"):
+          ovpnserver.start()
+          testclient.start()
+          ovpnclient.start()
+
+          # Wait until the OpenVPN Server is available
+          ovpnserver.wait_for_unit("openvpn-testserver.service")
+          ovpnserver.succeed("ping -c 1 10.8.0.1")
+
+          # Wait for the client to connect
+          ovpnserver.wait_until_succeeds("ping -c 1 10.8.0.2")
+
+          # Wait until the testclient has network
+          testclient.wait_for_unit("network.target")
+
+          # Check that ovpnclient is reachable over vlan 1
+          ovpnserver.succeed("nc -w 2 192.168.1.2 1234 | grep -q TESTVALUE")
+
+          # Check that ovpnclient is reachable over tun0
+          ovpnserver.succeed("nc -w 2 10.8.0.2 1234 | grep -q TESTVALUE")
+
+          # Check that ovpnclient is reachable from testclient over the gateway
+          testclient.succeed("nc -w 2 192.168.2.3 12345 | grep -q TESTVALUE")
+    '';
+})
diff --git a/nixpkgs/nixos/tests/initrd-network-openvpn/initrd.ovpn b/nixpkgs/nixos/tests/initrd-network-openvpn/initrd.ovpn
new file mode 100644
index 000000000000..5926a48af00f
--- /dev/null
+++ b/nixpkgs/nixos/tests/initrd-network-openvpn/initrd.ovpn
@@ -0,0 +1,29 @@
+remote 192.168.1.3
+dev tun
+ifconfig 10.8.0.2 10.8.0.1
+# Only force VLAN 2 through the VPN
+route 192.168.2.0 255.255.255.0 10.8.0.1
+secret [inline]
+<secret>
+#
+# 2048 bit OpenVPN static key
+#
+-----BEGIN OpenVPN Static key V1-----
+553aabe853acdfe51cd6fcfea93dcbb0
+c8797deadd1187606b1ea8f2315eb5e6
+67c0d7e830f50df45686063b189d6c6b
+aab8bb3430cc78f7bb1f78628d5c3742
+0cef4f53a5acab2894905f4499f95d8e
+e69b7b6748b17016f89e19e91481a9fd
+bf8c10651f41a1d4fdf5f438925a6733
+13cec8f04701eb47b8f7ffc48bc3d7af
+65f07bce766015b87c3db4d668c655ff
+be5a69522a8e60ccb217f8521681b45d
+27c0b70bdfbfbb426c7646d80adf7482
+3ddac58b25cb1c1bb100de974478b4c6
+8b45a94261a2405e99810cb2b3abd49f
+21b3198ada87ff3c4e656a008e540a8d
+e7811584363597599cce2040a68ac00e
+f2125540e0f7f4adc37cb3f0d922eeb7
+-----END OpenVPN Static key V1-----
+</secret>
\ No newline at end of file
diff --git a/nixpkgs/nixos/tests/initrd-network-openvpn/shared.key b/nixpkgs/nixos/tests/initrd-network-openvpn/shared.key
new file mode 100644
index 000000000000..248a91a3e3d5
--- /dev/null
+++ b/nixpkgs/nixos/tests/initrd-network-openvpn/shared.key
@@ -0,0 +1,21 @@
+#
+# 2048 bit OpenVPN static key
+#
+-----BEGIN OpenVPN Static key V1-----
+553aabe853acdfe51cd6fcfea93dcbb0
+c8797deadd1187606b1ea8f2315eb5e6
+67c0d7e830f50df45686063b189d6c6b
+aab8bb3430cc78f7bb1f78628d5c3742
+0cef4f53a5acab2894905f4499f95d8e
+e69b7b6748b17016f89e19e91481a9fd
+bf8c10651f41a1d4fdf5f438925a6733
+13cec8f04701eb47b8f7ffc48bc3d7af
+65f07bce766015b87c3db4d668c655ff
+be5a69522a8e60ccb217f8521681b45d
+27c0b70bdfbfbb426c7646d80adf7482
+3ddac58b25cb1c1bb100de974478b4c6
+8b45a94261a2405e99810cb2b3abd49f
+21b3198ada87ff3c4e656a008e540a8d
+e7811584363597599cce2040a68ac00e
+f2125540e0f7f4adc37cb3f0d922eeb7
+-----END OpenVPN Static key V1-----
diff --git a/nixpkgs/nixos/tests/installed-tests/default.nix b/nixpkgs/nixos/tests/installed-tests/default.nix
index b6bdfea22770..889a00d4b568 100644
--- a/nixpkgs/nixos/tests/installed-tests/default.nix
+++ b/nixpkgs/nixos/tests/installed-tests/default.nix
@@ -50,6 +50,12 @@ let
 
             environment.systemPackages = with pkgs; [ gnome-desktop-testing ];
 
+            # The installed tests need to be added to the test VM’s closure.
+            # Otherwise, their dependencies might not actually be registered
+            # as valid paths in the VM’s Nix store database,
+            # and `nix-store --query` commands run as part of the tests
+            # (for example when building Flatpak runtimes) will fail.
+            environment.variables.TESTED_PACKAGE_INSTALLED_TESTS = "${tested.installedTests}/share";
           };
 
           testScript =
diff --git a/nixpkgs/nixos/tests/installed-tests/flatpak.nix b/nixpkgs/nixos/tests/installed-tests/flatpak.nix
index 091c99326629..8aeeaca90f61 100644
--- a/nixpkgs/nixos/tests/installed-tests/flatpak.nix
+++ b/nixpkgs/nixos/tests/installed-tests/flatpak.nix
@@ -5,14 +5,11 @@ makeInstalledTest {
   withX11 = true;
 
   testConfig = {
-    services.xserver.desktopManager.gnome3.enable = true; # TODO: figure out minimal environment where the tests work
-    # common/x11.nix enables the auto display manager (lightdm)
-    services.xserver.displayManager.gdm.enable = false;
-    services.gnome3.core-utilities.enable = false;
+    xdg.portal.enable = true;
     services.flatpak.enable = true;
-    environment.systemPackages = with pkgs; [ gnupg ostree python2 ];
+    environment.systemPackages = with pkgs; [ gnupg ostree python3 ];
     virtualisation.memorySize = 2047;
-    virtualisation.diskSize = 1024;
+    virtualisation.diskSize = 3072;
   };
 
   testRunnerFlags = "--timeout 3600";
diff --git a/nixpkgs/nixos/tests/installed-tests/ibus.nix b/nixpkgs/nixos/tests/installed-tests/ibus.nix
index af54b612b507..a4bc2a7d7de0 100644
--- a/nixpkgs/nixos/tests/installed-tests/ibus.nix
+++ b/nixpkgs/nixos/tests/installed-tests/ibus.nix
@@ -5,16 +5,12 @@ makeInstalledTest {
 
   testConfig = {
     i18n.inputMethod.enabled = "ibus";
+    systemd.user.services.ibus-daemon = {
+      serviceConfig.ExecStart = "${pkgs.ibus}/bin/ibus-daemon --xim --verbose";
+      wantedBy = [ "graphical-session.target" ];
+      partOf = [ "graphical-session.target" ];
+    };
   };
 
-  preTestScript = ''
-    # ibus has ibus-desktop-testing-runner but it tries to manage desktop session so we just spawn ibus-daemon ourselves
-    machine.succeed("ibus-daemon --daemonize --verbose")
-  '';
-
   withX11 = true;
-
-  # TODO: ibus-daemon is currently crashing or something
-  # maybe make ibus systemd service that auto-restarts?
-  meta.broken = true;
 }
diff --git a/nixpkgs/nixos/tests/installed-tests/ostree.nix b/nixpkgs/nixos/tests/installed-tests/ostree.nix
index eef7cace54cc..90e09ad4ddf4 100644
--- a/nixpkgs/nixos/tests/installed-tests/ostree.nix
+++ b/nixpkgs/nixos/tests/installed-tests/ostree.nix
@@ -3,21 +3,10 @@
 makeInstalledTest {
   tested = pkgs.ostree;
 
-  # TODO: Wrap/patch the tests directly in the package
   testConfig = {
     environment.systemPackages = with pkgs; [
-      (python3.withPackages (p: with p; [ pyyaml ]))
       gnupg
       ostree
     ];
-
-    # for GJS tests
-    environment.variables.GI_TYPELIB_PATH = lib.makeSearchPath "lib/girepository-1.0" (with pkgs; [
-      gtk3
-      pango.out
-      ostree
-      gdk-pixbuf
-      atk
-    ]);
   };
 }
diff --git a/nixpkgs/nixos/tests/installer.nix b/nixpkgs/nixos/tests/installer.nix
index eef9abebf9f2..d80cfb4bd83f 100644
--- a/nixpkgs/nixos/tests/installer.nix
+++ b/nixpkgs/nixos/tests/installer.nix
@@ -64,7 +64,7 @@ let
   # a test script fragment `createPartitions', which must create
   # partitions and filesystems.
   testScriptFun = { bootLoader, createPartitions, grubVersion, grubDevice, grubUseEfi
-                  , grubIdentifier, preBootCommands, extraConfig
+                  , grubIdentifier, preBootCommands, postBootCommands, extraConfig
                   , testSpecialisationConfig
                   }:
     let iface = if grubVersion == 1 then "ide" else "virtio";
@@ -74,7 +74,7 @@ let
       throw "Non-EFI boot methods are only supported on i686 / x86_64"
     else ''
       def assemble_qemu_flags():
-          flags = "-cpu host"
+          flags = "-cpu max"
           ${if system == "x86_64-linux"
             then ''flags += " -m 768"''
             else ''flags += " -m 512 -enable-kvm -machine virt,gic-version=host"''
@@ -216,6 +216,7 @@ let
       machine = create_machine_named("boot-after-rebuild-switch")
       ${preBootCommands}
       machine.wait_for_unit("network.target")
+      ${postBootCommands}
       machine.shutdown()
 
       # Tests for validating clone configuration entries in grub menu
@@ -238,6 +239,7 @@ let
       with subtest("Set grub to boot the second configuration"):
           machine.succeed("grub-reboot 1")
 
+      ${postBootCommands}
       machine.shutdown()
 
       # Reboot Machine
@@ -252,12 +254,13 @@ let
       with subtest("We should find a file named /etc/gitconfig"):
           machine.succeed("test -e /etc/gitconfig")
 
+      ${postBootCommands}
       machine.shutdown()
     '';
 
 
   makeInstallerTest = name:
-    { createPartitions, preBootCommands ? "", extraConfig ? ""
+    { createPartitions, preBootCommands ? "", postBootCommands ? "", extraConfig ? ""
     , extraInstallerConfig ? {}
     , bootLoader ? "grub" # either "grub" or "systemd-boot"
     , grubVersion ? 2, grubDevice ? "/dev/vda", grubIdentifier ? "uuid", grubUseEfi ? false
@@ -282,7 +285,7 @@ let
           ];
 
           virtualisation.diskSize = 8 * 1024;
-          virtualisation.memorySize = 1024;
+          virtualisation.memorySize = 1536;
 
           # Use a small /dev/vdb as the root disk for the
           # installer. This ensures the target disk (/dev/vda) is
@@ -335,7 +338,7 @@ let
       };
 
       testScript = testScriptFun {
-        inherit bootLoader createPartitions preBootCommands
+        inherit bootLoader createPartitions preBootCommands postBootCommands
                 grubVersion grubDevice grubIdentifier grubUseEfi extraConfig
                 testSpecialisationConfig;
       };
@@ -552,16 +555,26 @@ in {
           + " mkpart primary 2048M -1s"  # PV2
           + " set 2 lvm on",
           "udevadm settle",
+          "sleep 1",
           "pvcreate /dev/vda1 /dev/vda2",
+          "sleep 1",
           "vgcreate MyVolGroup /dev/vda1 /dev/vda2",
+          "sleep 1",
           "lvcreate --size 1G --name swap MyVolGroup",
-          "lvcreate --size 2G --name nixos MyVolGroup",
+          "sleep 1",
+          "lvcreate --size 3G --name nixos MyVolGroup",
+          "sleep 1",
           "mkswap -f /dev/MyVolGroup/swap -L swap",
           "swapon -L swap",
           "mkfs.xfs -L nixos /dev/MyVolGroup/nixos",
           "mount LABEL=nixos /mnt",
       )
     '';
+    postBootCommands = ''
+      assert "loaded active" in machine.succeed(
+          "systemctl list-units 'lvm2-pvscan@*' -ql --no-legend | tee /dev/stderr"
+      )
+    '';
   };
 
   # Boot off an encrypted root partition with the default LUKS header format
@@ -620,10 +633,10 @@ in {
           + " mklabel msdos"
           + " mkpart primary ext2 1M 100MB"  # /boot
           + " mkpart extended 100M -1s"
-          + " mkpart logical 102M 2102M"  # md0 (root), first device
-          + " mkpart logical 2103M 4103M"  # md0 (root), second device
-          + " mkpart logical 4104M 4360M"  # md1 (swap), first device
-          + " mkpart logical 4361M 4617M",  # md1 (swap), second device
+          + " mkpart logical 102M 3102M"  # md0 (root), first device
+          + " mkpart logical 3103M 6103M"  # md0 (root), second device
+          + " mkpart logical 6104M 6360M"  # md1 (swap), first device
+          + " mkpart logical 6361M 6617M",  # md1 (swap), second device
           "udevadm settle",
           "ls -l /dev/vda* >&2",
           "cat /proc/partitions >&2",
@@ -786,7 +799,7 @@ in {
           "btrfs subvol create /mnt/badpath/boot",
           "btrfs subvol create /mnt/nixos",
           "btrfs subvol set-default "
-          + "$(btrfs subvol list /mnt | grep 'nixos' | awk '{print \$2}') /mnt",
+          + "$(btrfs subvol list /mnt | grep 'nixos' | awk '{print $2}') /mnt",
           "umount /mnt",
           "mount -o defaults LABEL=root /mnt",
           "mkdir -p /mnt/badpath/boot",  # Help ensure the detection mechanism
diff --git a/nixpkgs/nixos/tests/jitsi-meet.nix b/nixpkgs/nixos/tests/jitsi-meet.nix
new file mode 100644
index 000000000000..42762dfdad8e
--- /dev/null
+++ b/nixpkgs/nixos/tests/jitsi-meet.nix
@@ -0,0 +1,55 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "jitsi-meet";
+  meta = with pkgs.stdenv.lib; {
+    maintainers = teams.jitsi.members;
+  };
+
+  nodes = {
+    client = { nodes, pkgs, ... }: {
+    };
+    server = { config, pkgs, ... }: {
+      services.jitsi-meet = {
+        enable = true;
+        hostName = "server";
+      };
+      services.jitsi-videobridge.openFirewall = true;
+
+      networking.firewall.allowedTCPPorts = [ 80 443 ];
+
+      services.nginx.virtualHosts.server = {
+        enableACME = true;
+        forceSSL = true;
+      };
+
+      security.acme.email = "me@example.org";
+      security.acme.acceptTerms = true;
+      security.acme.server = "https://example.com"; # self-signed only
+    };
+  };
+
+  testScript = ''
+    server.wait_for_unit("jitsi-videobridge2.service")
+    server.wait_for_unit("jicofo.service")
+    server.wait_for_unit("nginx.service")
+    server.wait_for_unit("prosody.service")
+
+    server.wait_until_succeeds(
+        "journalctl -b -u jitsi-videobridge2 -o cat | grep -q 'Performed a successful health check'"
+    )
+    server.wait_until_succeeds(
+        "journalctl -b -u jicofo -o cat | grep -q 'connected .JID: focus@auth.server'"
+    )
+    server.wait_until_succeeds(
+        "journalctl -b -u prosody -o cat | grep -q 'Authenticated as focus@auth.server'"
+    )
+    server.wait_until_succeeds(
+        "journalctl -b -u prosody -o cat | grep -q 'focus.server:component: External component successfully authenticated'"
+    )
+    server.wait_until_succeeds(
+        "journalctl -b -u prosody -o cat | grep -q 'Authenticated as jvb@auth.server'"
+    )
+
+    client.wait_for_unit("network.target")
+    assert "<title>Jitsi Meet</title>" in client.succeed("curl -sSfkL http://server/")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/kafka.nix b/nixpkgs/nixos/tests/kafka.nix
index d29c802b47b4..88e30b62baa2 100644
--- a/nixpkgs/nixos/tests/kafka.nix
+++ b/nixpkgs/nixos/tests/kafka.nix
@@ -90,4 +90,5 @@ in with pkgs; {
   kafka_2_2  = makeKafkaTest "kafka_2_2"  apacheKafka_2_2;
   kafka_2_3  = makeKafkaTest "kafka_2_3"  apacheKafka_2_3;
   kafka_2_4  = makeKafkaTest "kafka_2_4"  apacheKafka_2_4;
+  kafka_2_5  = makeKafkaTest "kafka_2_5"  apacheKafka_2_5;
 }
diff --git a/nixpkgs/nixos/tests/krb5/example-config.nix b/nixpkgs/nixos/tests/krb5/example-config.nix
index be195b513935..e2e10a9fda89 100644
--- a/nixpkgs/nixos/tests/krb5/example-config.nix
+++ b/nixpkgs/nixos/tests/krb5/example-config.nix
@@ -18,7 +18,10 @@ import ../make-test-python.nix ({ pkgs, ...} : {
         realms = {
           "ATHENA.MIT.EDU" = {
             admin_server = "athena.mit.edu";
-            kdc = "athena.mit.edu";
+            kdc = [
+              "athena01.mit.edu"
+              "athena02.mit.edu"
+            ];
           };
         };
         domain_realm = {
@@ -65,7 +68,8 @@ import ../make-test-python.nix ({ pkgs, ...} : {
       [realms]
         ATHENA.MIT.EDU = {
           admin_server = athena.mit.edu
-          kdc = athena.mit.edu
+          kdc = athena01.mit.edu
+          kdc = athena02.mit.edu
         }
 
       [domain_realm]
diff --git a/nixpkgs/nixos/tests/kubernetes/base.nix b/nixpkgs/nixos/tests/kubernetes/base.nix
index 86de9455e737..8cfac10b6dc4 100644
--- a/nixpkgs/nixos/tests/kubernetes/base.nix
+++ b/nixpkgs/nixos/tests/kubernetes/base.nix
@@ -9,7 +9,6 @@ with pkgs.lib;
 let
   mkKubernetesBaseTest =
     { name, domain ? "my.zyx", test, machines
-    , pkgs ? import <nixpkgs> { inherit system; }
     , extraConfiguration ? null }:
     let
       masterName = head (filter (machineName: any (role: role == "master") machines.${machineName}.roles) (attrNames machines));
diff --git a/nixpkgs/nixos/tests/leaps.nix b/nixpkgs/nixos/tests/leaps.nix
index 65b475d734ec..ac0c602d4450 100644
--- a/nixpkgs/nixos/tests/leaps.nix
+++ b/nixpkgs/nixos/tests/leaps.nix
@@ -7,7 +7,7 @@ import ./make-test-python.nix ({ pkgs,  ... }:
   };
 
   nodes =
-    { 
+    {
       client = { };
 
       server =
diff --git a/nixpkgs/nixos/tests/lorri/default.nix b/nixpkgs/nixos/tests/lorri/default.nix
index 198171082d88..c33c7503993d 100644
--- a/nixpkgs/nixos/tests/lorri/default.nix
+++ b/nixpkgs/nixos/tests/lorri/default.nix
@@ -18,7 +18,7 @@ import ../make-test-python.nix {
     machine.wait_until_succeeds("grep --fixed-strings 'ready' lorri.stdout")
 
     # Ping the daemon
-    machine.succeed("lorri internal__ping shell.nix")
+    machine.succeed("lorri internal ping shell.nix")
 
     # Wait for the daemon to finish the build
     machine.wait_until_succeeds("grep --fixed-strings 'Completed' lorri.stdout")
diff --git a/nixpkgs/nixos/tests/lxd-nftables.nix b/nixpkgs/nixos/tests/lxd-nftables.nix
index 25517914db85..4ca02067a0ae 100644
--- a/nixpkgs/nixos/tests/lxd-nftables.nix
+++ b/nixpkgs/nixos/tests/lxd-nftables.nix
@@ -7,6 +7,7 @@
 
 import ./make-test-python.nix ({ pkgs, ...} : {
   name = "lxd-nftables";
+
   meta = with pkgs.stdenv.lib.maintainers; {
     maintainers = [ patryk27 ];
   };
diff --git a/nixpkgs/nixos/tests/lxd.nix b/nixpkgs/nixos/tests/lxd.nix
index db2d44dff557..d1e642383cf8 100644
--- a/nixpkgs/nixos/tests/lxd.nix
+++ b/nixpkgs/nixos/tests/lxd.nix
@@ -6,15 +6,14 @@ let
   #
   # I've chosen to import Alpine Linux, because its image is turbo-tiny and,
   # generally, sufficient for our tests.
-
   alpine-meta = pkgs.fetchurl {
-    url = "https://uk.images.linuxcontainers.org/images/alpine/3.11/i386/default/20200608_13:00/lxd.tar.xz";
-    sha256 = "1hkvaj3rr333zmx1759njy435lps33gl4ks8zfm7m4nqvipm26a0";
+    url = "https://tarballs.nixos.org/alpine/3.12/lxd.tar.xz";
+    hash = "sha256-1tcKaO9lOkvqfmG/7FMbfAEToAuFy2YMewS8ysBKuLA=";
   };
 
   alpine-rootfs = pkgs.fetchurl {
-    url = "https://uk.images.linuxcontainers.org/images/alpine/3.11/i386/default/20200608_13:00/rootfs.tar.xz";
-    sha256 = "1v82zdra4j5xwsff09qlp7h5vbsg54s0j7rdg4rynichfid3r347";
+    url = "https://tarballs.nixos.org/alpine/3.12/rootfs.tar.xz";
+    hash = "sha256-Tba9sSoaiMtQLY45u7p5DMqXTSDgs/763L/SQp0bkCA=";
   };
 
   lxd-config = pkgs.writeText "config.yaml" ''
@@ -44,8 +43,10 @@ let
             type: disk
   '';
 
+
 in {
   name = "lxd";
+
   meta = with pkgs.stdenv.lib.maintainers; {
     maintainers = [ patryk27 ];
   };
@@ -53,7 +54,7 @@ in {
   machine = { lib, ... }: {
     virtualisation = {
       # Since we're testing `limits.cpu`, we've gotta have a known number of
-      # cores to lay on
+      # cores to lean on
       cores = 2;
 
       # Ditto, for `limits.memory`
@@ -67,6 +68,7 @@ in {
   testScript = ''
     machine.wait_for_unit("sockets.target")
     machine.wait_for_unit("lxd.service")
+    machine.wait_for_file("/var/lib/lxd/unix.socket")
 
     # It takes additional second for lxd to settle
     machine.sleep(1)
diff --git a/nixpkgs/nixos/tests/magnetico.nix b/nixpkgs/nixos/tests/magnetico.nix
index 6770d32358e8..e79a728b2ac8 100644
--- a/nixpkgs/nixos/tests/magnetico.nix
+++ b/nixpkgs/nixos/tests/magnetico.nix
@@ -27,12 +27,13 @@ in
       start_all()
       machine.wait_for_unit("magneticod")
       machine.wait_for_unit("magneticow")
+      machine.wait_for_open_port(${toString port})
       machine.succeed(
-          "${pkgs.curl}/bin/curl "
+          "${pkgs.curl}/bin/curl --fail "
           + "-u user:password http://localhost:${toString port}"
       )
-      assert "Unauthorised." in machine.succeed(
-          "${pkgs.curl}/bin/curl "
+      machine.fail(
+          "${pkgs.curl}/bin/curl --fail "
           + "-u user:wrongpwd http://localhost:${toString port}"
       )
       machine.shutdown()
diff --git a/nixpkgs/nixos/tests/make-test.nix b/nixpkgs/nixos/tests/make-test.nix
deleted file mode 100644
index cee5da93454a..000000000000
--- a/nixpkgs/nixos/tests/make-test.nix
+++ /dev/null
@@ -1,9 +0,0 @@
-f: {
-  system ? builtins.currentSystem,
-  pkgs ? import ../.. { inherit system; config = {}; },
-  ...
-} @ args:
-
-with import ../lib/testing.nix { inherit system pkgs; };
-
-makeTest (if pkgs.lib.isFunction f then f (args // { inherit pkgs; inherit (pkgs) lib; }) else f)
diff --git a/nixpkgs/nixos/tests/mathics.nix b/nixpkgs/nixos/tests/mathics.nix
deleted file mode 100644
index fcbeeb18a727..000000000000
--- a/nixpkgs/nixos/tests/mathics.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-import ./make-test.nix ({ pkgs, ... }: {
-  name = "mathics";
-  meta = with pkgs.stdenv.lib.maintainers; {
-    maintainers = [ benley ];
-  };
-
-  nodes = {
-    machine = { ... }: {
-      services.mathics.enable = true;
-      services.mathics.port = 8888;
-    };
-  };
-
-  testScript = ''
-    startAll;
-    $machine->waitForUnit("mathics.service");
-    $machine->waitForOpenPort(8888);
-    $machine->succeed("curl http://localhost:8888/");
-  '';
-})
diff --git a/nixpkgs/nixos/tests/mesos.nix b/nixpkgs/nixos/tests/mesos.nix
deleted file mode 100644
index 2e6dc0eda063..000000000000
--- a/nixpkgs/nixos/tests/mesos.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-import ./make-test.nix ({ pkgs, ...} : rec {
-  name = "mesos";
-  meta = with pkgs.stdenv.lib.maintainers; {
-    maintainers = [ offline kamilchm cstrahan ];
-  };
-
-  nodes = {
-    master = { ... }: {
-      networking.firewall.enable = false;
-      services.zookeeper.enable = true;
-      services.mesos.master = {
-          enable = true;
-          zk = "zk://master:2181/mesos";
-      };
-    };
-
-    slave = { ... }: {
-      networking.firewall.enable = false;
-      networking.nat.enable = true;
-      virtualisation.docker.enable = true;
-      services.mesos = {
-        slave = {
-          enable = true;
-          master = "master:5050";
-          dockerRegistry = registry;
-          executorEnvironmentVariables = {
-            PATH = "/run/current-system/sw/bin";
-          };
-        };
-      };
-    };
-  };
-
-  simpleDocker = pkgs.dockerTools.buildImage {
-    name = "echo";
-    tag = "latest";
-    contents = [ pkgs.stdenv.shellPackage pkgs.coreutils ];
-    config = {
-      Env = [
-        # When shell=true, mesos invokes "sh -c '<cmd>'", so make sure "sh" is
-        # on the PATH.
-        "PATH=${pkgs.stdenv.shellPackage}/bin:${pkgs.coreutils}/bin"
-      ];
-      Entrypoint = [ "echo" ];
-    };
-  };
-
-  registry = pkgs.runCommand "registry" { } ''
-    mkdir -p $out
-    cp ${simpleDocker} $out/echo:latest.tar
-  '';
-
-  testFramework = pkgs.pythonPackages.buildPythonPackage {
-    name = "mesos-tests";
-    propagatedBuildInputs = [ pkgs.mesos ];
-    catchConflicts = false;
-    src = ./mesos_test.py;
-    phases = [ "installPhase" "fixupPhase" ];
-    installPhase = ''
-      install -Dvm 0755 $src $out/bin/mesos_test.py
-
-      echo "done" > test.result
-      tar czf $out/test.tar.gz test.result
-    '';
-  };
-
-  testScript =
-    ''
-      startAll;
-      $master->waitForUnit("zookeeper.service");
-      $master->waitForUnit("mesos-master.service");
-      $slave->waitForUnit("docker.service");
-      $slave->waitForUnit("mesos-slave.service");
-      $master->waitForOpenPort(2181);
-      $master->waitForOpenPort(5050);
-      $slave->waitForOpenPort(5051);
-
-      # is slave registered?
-      $master->waitUntilSucceeds("curl -s --fail http://master:5050/master/slaves".
-                                 " | grep -q \"\\\"hostname\\\":\\\"slave\\\"\"");
-
-      # try to run docker image
-      $master->succeed("${pkgs.mesos}/bin/mesos-execute --master=master:5050".
-                       " --resources=\"cpus:0.1;mem:32\" --name=simple-docker".
-                       " --containerizer=mesos --docker_image=echo:latest".
-                       " --shell=true --command=\"echo done\" | grep -q TASK_FINISHED");
-
-      # simple command with .tar.gz uri
-      $master->succeed("${testFramework}/bin/mesos_test.py master ".
-                       "${testFramework}/test.tar.gz");
-    '';
-})
diff --git a/nixpkgs/nixos/tests/mesos_test.py b/nixpkgs/nixos/tests/mesos_test.py
deleted file mode 100644
index be8bb32e49a7..000000000000
--- a/nixpkgs/nixos/tests/mesos_test.py
+++ /dev/null
@@ -1,72 +0,0 @@
-#!/usr/bin/env python
-import uuid
-import time
-import subprocess
-import os
-
-import sys
-
-from mesos.interface import Scheduler
-from mesos.native import MesosSchedulerDriver
-from mesos.interface import mesos_pb2
-
-def log(msg):
-    process = subprocess.Popen("systemd-cat", stdin=subprocess.PIPE)
-    (out,err) = process.communicate(msg)
-
-class NixosTestScheduler(Scheduler):
-    def __init__(self):
-        self.master_ip = sys.argv[1]
-        self.download_uri = sys.argv[2]
-
-    def resourceOffers(self, driver, offers):
-        log("XXX got resource offer")
-
-        offer = offers[0]
-        task = self.new_task(offer)
-        uri = task.command.uris.add()
-        uri.value = self.download_uri
-        task.command.value = "cat test.result"
-        driver.launchTasks(offer.id, [task])
-
-    def statusUpdate(self, driver, update):
-        log("XXX status update")
-        if update.state == mesos_pb2.TASK_FAILED:
-            log("XXX test task failed with message: " + update.message)
-            driver.stop()
-            sys.exit(1)
-        elif update.state == mesos_pb2.TASK_FINISHED:
-            driver.stop()
-            sys.exit(0)
-
-    def new_task(self, offer):
-        task = mesos_pb2.TaskInfo()
-        id = uuid.uuid4()
-        task.task_id.value = str(id)
-        task.slave_id.value = offer.slave_id.value
-        task.name = "task {}".format(str(id))
-
-        cpus = task.resources.add()
-        cpus.name = "cpus"
-        cpus.type = mesos_pb2.Value.SCALAR
-        cpus.scalar.value = 0.1
-
-        mem = task.resources.add()
-        mem.name = "mem"
-        mem.type = mesos_pb2.Value.SCALAR
-        mem.scalar.value = 32
-
-        return task
-
-if __name__ == '__main__':
-    log("XXX framework started")
-
-    framework = mesos_pb2.FrameworkInfo()
-    framework.user = "root"
-    framework.name = "nixos-test-framework"
-    driver = MesosSchedulerDriver(
-        NixosTestScheduler(),
-        framework,
-        sys.argv[1] + ":5050"
-    )
-    driver.run()
diff --git a/nixpkgs/nixos/tests/misc.nix b/nixpkgs/nixos/tests/misc.nix
index 17260ce64067..ae1505532734 100644
--- a/nixpkgs/nixos/tests/misc.nix
+++ b/nixpkgs/nixos/tests/misc.nix
@@ -20,12 +20,24 @@ import ./make-test-python.nix ({ pkgs, ...} : rec {
         { fsType = "tmpfs";
           options = [ "mode=1777" "noauto" ];
         };
+        # Tests https://discourse.nixos.org/t/how-to-make-a-derivations-executables-have-the-s-permission/8555
+        "/user-mount/point" = {
+          device = "/user-mount/source";
+          fsType = "none";
+          options = [ "bind" "rw" "user" "noauto" ];
+        };
+        "/user-mount/denied-point" = {
+          device = "/user-mount/denied-source";
+          fsType = "none";
+          options = [ "bind" "rw" "noauto" ];
+        };
       };
       systemd.automounts = singleton
         { wantedBy = [ "multi-user.target" ];
           where = "/tmp2";
         };
       users.users.sybil = { isNormalUser = true; group = "wheel"; };
+      users.users.alice = { isNormalUser = true; };
       security.sudo = { enable = true; wheelNeedsPassword = false; };
       boot.kernel.sysctl."vm.swappiness" = 1;
       boot.kernelParams = [ "vsyscall=emulate" ];
@@ -112,6 +124,26 @@ import ./make-test-python.nix ({ pkgs, ...} : rec {
           machine.succeed("touch /tmp2/x")
           machine.succeed("grep '/tmp2 tmpfs' /proc/mounts")
 
+      with subtest(
+          "Whether mounting by a user is possible with the `user` option in fstab (#95444)"
+      ):
+          machine.succeed("mkdir -p /user-mount/source")
+          machine.succeed("touch /user-mount/source/file")
+          machine.succeed("chmod -R a+Xr /user-mount/source")
+          machine.succeed("mkdir /user-mount/point")
+          machine.succeed("chown alice:users /user-mount/point")
+          machine.succeed("su - alice -c 'mount /user-mount/point'")
+          machine.succeed("su - alice -c 'ls /user-mount/point/file'")
+      with subtest(
+          "Whether mounting by a user is denied without the `user` option in  fstab"
+      ):
+          machine.succeed("mkdir -p /user-mount/denied-source")
+          machine.succeed("touch /user-mount/denied-source/file")
+          machine.succeed("chmod -R a+Xr /user-mount/denied-source")
+          machine.succeed("mkdir /user-mount/denied-point")
+          machine.succeed("chown alice:users /user-mount/denied-point")
+          machine.fail("su - alice -c 'mount /user-mount/denied-point'")
+
       with subtest("shell-vars"):
           machine.succeed('[ -n "$NIX_PATH" ]')
 
diff --git a/nixpkgs/nixos/tests/molly-brown.nix b/nixpkgs/nixos/tests/molly-brown.nix
new file mode 100644
index 000000000000..09ce42726ca9
--- /dev/null
+++ b/nixpkgs/nixos/tests/molly-brown.nix
@@ -0,0 +1,71 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+  let testString = "NixOS Gemini test successful";
+  in {
+
+    name = "molly-brown";
+    meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ ehmry ]; };
+
+    nodes = {
+
+      geminiServer = { config, pkgs, ... }:
+        let
+          inherit (config.networking) hostName;
+          cfg = config.services.molly-brown;
+        in {
+
+          environment.systemPackages = [
+            (pkgs.writeScriptBin "test-gemini" ''
+              #!${pkgs.python3}/bin/python
+
+              import socket
+              import ssl
+              import tempfile
+              import textwrap
+              import urllib.parse
+
+              url = "gemini://geminiServer/init.gmi"
+              parsed_url = urllib.parse.urlparse(url)
+
+              s = socket.create_connection((parsed_url.netloc, 1965))
+              context = ssl.SSLContext()
+              context.check_hostname = False
+              context.verify_mode = ssl.CERT_NONE
+              s = context.wrap_socket(s, server_hostname=parsed_url.netloc)
+              s.sendall((url + "\r\n").encode("UTF-8"))
+              fp = s.makefile("rb")
+              print(fp.readline().strip())
+              print(fp.readline().strip())
+              print(fp.readline().strip())
+            '')
+          ];
+
+          networking.firewall.allowedTCPPorts = [ cfg.settings.Port ];
+
+          services.molly-brown = {
+            enable = true;
+            docBase = "/tmp/docs";
+            certPath = "/tmp/cert.pem";
+            keyPath = "/tmp/key.pem";
+          };
+
+          systemd.services.molly-brown.preStart = ''
+            ${pkgs.openssl}/bin/openssl genrsa -out "/tmp/key.pem"
+            ${pkgs.openssl}/bin/openssl req -new \
+              -subj "/CN=${config.networking.hostName}" \
+              -key "/tmp/key.pem" -out /tmp/request.pem
+            ${pkgs.openssl}/bin/openssl x509 -req -days 3650 \
+              -in /tmp/request.pem -signkey "/tmp/key.pem" -out "/tmp/cert.pem"
+
+            mkdir -p "${cfg.settings.DocBase}"
+            echo "${testString}" > "${cfg.settings.DocBase}/test.gmi"
+          '';
+        };
+    };
+    testScript = ''
+      geminiServer.wait_for_unit("molly-brown")
+      geminiServer.wait_for_open_port(1965)
+      geminiServer.succeed("test-gemini")
+    '';
+
+  })
diff --git a/nixpkgs/nixos/tests/mongodb.nix b/nixpkgs/nixos/tests/mongodb.nix
index a637ec4bfc00..1a7123883018 100644
--- a/nixpkgs/nixos/tests/mongodb.nix
+++ b/nixpkgs/nixos/tests/mongodb.nix
@@ -15,7 +15,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
       node.wait_for_open_port(27017)
 
       assert "hello" in node.succeed(
-          "mongo ${testQuery}"
+          "${pkg}/bin/mongo ${testQuery}"
       )
 
       node.execute(
@@ -36,6 +36,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
           mongodb-3_4
           mongodb-3_6
           mongodb-4_0
+          mongodb-4_2
         ];
       };
     };
@@ -44,8 +45,9 @@ import ./make-test-python.nix ({ pkgs, ... }:
       node.start()
     ''
       + runMongoDBTest pkgs.mongodb-3_4
-      + runMongoDBTest pkgs.mongodb-3_6 
+      + runMongoDBTest pkgs.mongodb-3_6
       + runMongoDBTest pkgs.mongodb-4_0
+      + runMongoDBTest pkgs.mongodb-4_2
       + ''
         node.shutdown()
       '';
diff --git a/nixpkgs/nixos/tests/mysql/mysql.nix b/nixpkgs/nixos/tests/mysql/mysql.nix
index 50e1c76e9fd0..5437a2860437 100644
--- a/nixpkgs/nixos/tests/mysql/mysql.nix
+++ b/nixpkgs/nixos/tests/mysql/mysql.nix
@@ -172,32 +172,32 @@ import ./../make-test-python.nix ({ pkgs, ...} : {
         "echo 'use testdb; select test_id from tests;' | sudo -u testuser mysql -u testuser -N | grep 42"
     )
 
-    # Check if TokuDB plugin works
+    # Check if RocksDB plugin works
     mariadb.succeed(
-        "echo 'use testdb; create table tokudb (test_id INT, PRIMARY KEY (test_id)) ENGINE = TokuDB;' | sudo -u testuser mysql -u testuser"
+        "echo 'use testdb; create table rocksdb (test_id INT, PRIMARY KEY (test_id)) ENGINE = RocksDB;' | sudo -u testuser mysql -u testuser"
     )
     mariadb.succeed(
-        "echo 'use testdb; insert into tokudb values (25);' | sudo -u testuser mysql -u testuser"
+        "echo 'use testdb; insert into rocksdb values (28);' | sudo -u testuser mysql -u testuser"
     )
     mariadb.succeed(
-        "echo 'use testdb; select test_id from tokudb;' | sudo -u testuser mysql -u testuser -N | grep 25"
+        "echo 'use testdb; select test_id from rocksdb;' | sudo -u testuser mysql -u testuser -N | grep 28"
     )
     mariadb.succeed(
-        "echo 'use testdb; drop table tokudb;' | sudo -u testuser mysql -u testuser"
+        "echo 'use testdb; drop table rocksdb;' | sudo -u testuser mysql -u testuser"
     )
-
-    # Check if RocksDB plugin works
+  '' + pkgs.stdenv.lib.optionalString pkgs.stdenv.isx86_64 ''
+    # Check if TokuDB plugin works
     mariadb.succeed(
-        "echo 'use testdb; create table rocksdb (test_id INT, PRIMARY KEY (test_id)) ENGINE = RocksDB;' | sudo -u testuser mysql -u testuser"
+        "echo 'use testdb; create table tokudb (test_id INT, PRIMARY KEY (test_id)) ENGINE = TokuDB;' | sudo -u testuser mysql -u testuser"
     )
     mariadb.succeed(
-        "echo 'use testdb; insert into rocksdb values (28);' | sudo -u testuser mysql -u testuser"
+        "echo 'use testdb; insert into tokudb values (25);' | sudo -u testuser mysql -u testuser"
     )
     mariadb.succeed(
-        "echo 'use testdb; select test_id from rocksdb;' | sudo -u testuser mysql -u testuser -N | grep 28"
+        "echo 'use testdb; select test_id from tokudb;' | sudo -u testuser mysql -u testuser -N | grep 25"
     )
     mariadb.succeed(
-        "echo 'use testdb; drop table rocksdb;' | sudo -u testuser mysql -u testuser"
+        "echo 'use testdb; drop table tokudb;' | sudo -u testuser mysql -u testuser"
     )
   '';
 })
diff --git a/nixpkgs/nixos/tests/ncdns.nix b/nixpkgs/nixos/tests/ncdns.nix
new file mode 100644
index 000000000000..9960ac63e26b
--- /dev/null
+++ b/nixpkgs/nixos/tests/ncdns.nix
@@ -0,0 +1,96 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }:
+let
+  fakeReply = pkgs.writeText "namecoin-reply.json" ''
+  { "error": null,
+    "id": 1,
+    "result": {
+      "address": "T31q8ucJ4dI1xzhxQ5QispfECld5c7Xw",
+      "expired": false,
+      "expires_in": 2248,
+      "height": 438155,
+      "name": "d/test",
+      "txid": "db61c0b2540ba0c1a2c8cc92af703a37002e7566ecea4dbf8727c7191421edfb",
+      "value": "{\"ip\": \"1.2.3.4\", \"email\": \"root@test.bit\",\"info\": \"Fake record\"}",
+      "vout": 0
+    }
+  }
+  '';
+
+  # Disabled because DNSSEC does not currently validate,
+  # see https://github.com/namecoin/ncdns/issues/127
+  dnssec = false;
+
+in
+
+{
+  name = "ncdns";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ rnhmjoj ];
+  };
+
+  nodes.server = { ... }: {
+    networking.nameservers = [ "127.0.0.1" ];
+
+    services.namecoind.rpc = {
+      address = "127.0.0.1";
+      user = "namecoin";
+      password = "secret";
+      port = 8332;
+    };
+
+    # Fake namecoin RPC server because we can't
+    # run a full node in a test.
+    systemd.services.namecoind = {
+      wantedBy = [ "multi-user.target" ];
+      script = ''
+        while true; do
+          echo -e "HTTP/1.1 200 OK\n\n $(<${fakeReply})\n" \
+            | ${pkgs.netcat}/bin/nc -N -l 127.0.0.1 8332
+        done
+      '';
+    };
+
+    services.ncdns = {
+      enable = true;
+      dnssec.enable = dnssec;
+      identity.hostname   = "example.com";
+      identity.hostmaster = "root@example.com";
+      identity.address    = "1.0.0.1";
+    };
+
+    services.pdns-recursor = {
+      enable = true;
+      dns.allowFrom = [ "127.0.0.0/8" ];
+      resolveNamecoin = true;
+    };
+
+    environment.systemPackages = [ pkgs.dnsutils ];
+
+  };
+
+  testScript =
+    (lib.optionalString dnssec ''
+      with subtest("DNSSEC keys have been generated"):
+          server.wait_for_unit("ncdns")
+          server.wait_for_file("/var/lib/ncdns/bit.key")
+          server.wait_for_file("/var/lib/ncdns/bit-zone.key")
+
+      with subtest("DNSKEY bit record is present"):
+          server.wait_for_unit("pdns-recursor")
+          server.wait_for_open_port("53")
+          server.succeed("host -t DNSKEY bit")
+    '') +
+    ''
+      with subtest("can resolve a .bit name"):
+          server.wait_for_unit("namecoind")
+          server.wait_for_unit("ncdns")
+          server.wait_for_open_port("8332")
+          assert "1.2.3.4" in server.succeed("dig @localhost -p 5333 test.bit")
+
+      with subtest("SOA record has identity information"):
+          assert "example.com" in server.succeed("dig SOA @localhost -p 5333 bit")
+
+      with subtest("bit. zone forwarding works"):
+          assert "1.2.3.4" in server.succeed("host test.bit")
+    '';
+})
diff --git a/nixpkgs/nixos/tests/networking.nix b/nixpkgs/nixos/tests/networking.nix
index 3d8ab761a446..83d4f6465b68 100644
--- a/nixpkgs/nixos/tests/networking.nix
+++ b/nixpkgs/nixos/tests/networking.nix
@@ -8,7 +8,9 @@ with import ../lib/testing-python.nix { inherit system pkgs; };
 with pkgs.lib;
 
 let
-  router = { config, pkgs, ... }:
+  qemu-flags = import ../lib/qemu-flags.nix { inherit pkgs; };
+
+  router = { config, pkgs, lib, ... }:
     with pkgs.lib;
     let
       vlanIfs = range 1 (length config.virtualisation.vlans);
@@ -30,17 +32,20 @@ let
       services.dhcpd4 = {
         enable = true;
         interfaces = map (n: "eth${toString n}") vlanIfs;
-        extraConfig = ''
-          authoritative;
-        '' + flip concatMapStrings vlanIfs (n: ''
+        extraConfig = flip concatMapStrings vlanIfs (n: ''
           subnet 192.168.${toString n}.0 netmask 255.255.255.0 {
             option routers 192.168.${toString n}.1;
-            # XXX: technically it's _not guaranteed_ that IP addresses will be
-            # issued from the first item in range onwards! We assume that in
-            # our tests however.
             range 192.168.${toString n}.2 192.168.${toString n}.254;
           }
-        '');
+        '')
+        ;
+        machines = flip map vlanIfs (vlan:
+          {
+            hostName = "client${toString vlan}";
+            ethernetAddress = qemu-flags.qemuNicMac vlan 1;
+            ipAddress = "192.168.${toString vlan}.2";
+          }
+        );
       };
       services.radvd = {
         enable = true;
diff --git a/nixpkgs/nixos/tests/nextcloud/basic.nix b/nixpkgs/nixos/tests/nextcloud/basic.nix
index 9cbecf01f57b..72fb020dca70 100644
--- a/nixpkgs/nixos/tests/nextcloud/basic.nix
+++ b/nixpkgs/nixos/tests/nextcloud/basic.nix
@@ -26,12 +26,13 @@ in {
       };
     };
 
-    nextcloud = { config, pkgs, ... }: {
+    nextcloud = { config, pkgs, ... }: let
+      cfg = config;
+    in {
       networking.firewall.allowedTCPPorts = [ 80 ];
 
       services.nextcloud = {
         enable = true;
-        nginx.enable = true;
         hostName = "nextcloud";
         config = {
           # Don't inherit adminuser since "root" is supposed to be the default
@@ -42,6 +43,8 @@ in {
           startAt = "20:00";
         };
       };
+
+      environment.systemPackages = [ cfg.services.nextcloud.occ ];
     };
   };
 
@@ -67,6 +70,8 @@ in {
   in ''
     start_all()
     nextcloud.wait_for_unit("multi-user.target")
+    # This is just to ensure the nextcloud-occ program is working
+    nextcloud.succeed("nextcloud-occ status")
     nextcloud.succeed("curl -sSf http://nextcloud/login")
     nextcloud.succeed(
         "${withRcloneEnv} ${copySharedFile}"
diff --git a/nixpkgs/nixos/tests/nextcloud/with-mysql-and-memcached.nix b/nixpkgs/nixos/tests/nextcloud/with-mysql-and-memcached.nix
index 8db630be893a..bec3815a3e14 100644
--- a/nixpkgs/nixos/tests/nextcloud/with-mysql-and-memcached.nix
+++ b/nixpkgs/nixos/tests/nextcloud/with-mysql-and-memcached.nix
@@ -17,7 +17,6 @@ in {
       services.nextcloud = {
         enable = true;
         hostName = "nextcloud";
-        nginx.enable = true;
         https = true;
         caching = {
           apcu = true;
diff --git a/nixpkgs/nixos/tests/nextcloud/with-postgresql-and-redis.nix b/nixpkgs/nixos/tests/nextcloud/with-postgresql-and-redis.nix
index 95219cac9be8..40a208115c32 100644
--- a/nixpkgs/nixos/tests/nextcloud/with-postgresql-and-redis.nix
+++ b/nixpkgs/nixos/tests/nextcloud/with-postgresql-and-redis.nix
@@ -17,7 +17,6 @@ in {
       services.nextcloud = {
         enable = true;
         hostName = "nextcloud";
-        nginx.enable = true;
         caching = {
           apcu = false;
           redis = true;
diff --git a/nixpkgs/nixos/tests/nfs/kerberos.nix b/nixpkgs/nixos/tests/nfs/kerberos.nix
index 1f2d0d453ea0..078f0b7814ce 100644
--- a/nixpkgs/nixos/tests/nfs/kerberos.nix
+++ b/nixpkgs/nixos/tests/nfs/kerberos.nix
@@ -3,7 +3,7 @@ import ../make-test-python.nix ({ pkgs, lib, ... }:
 with lib;
 
 let
-  krb5 = 
+  krb5 =
     { enable = true;
       domain_realm."nfs.test"   = "NFS.TEST";
       libdefaults.default_realm = "NFS.TEST";
@@ -31,7 +31,7 @@ in
 
 {
   name = "nfsv4-with-kerberos";
- 
+
   nodes = {
     client = { lib, ... }:
       { inherit krb5 users;
diff --git a/nixpkgs/nixos/tests/nginx-sandbox.nix b/nixpkgs/nixos/tests/nginx-sandbox.nix
index bc9d3ba8add7..514318c9456c 100644
--- a/nixpkgs/nixos/tests/nginx-sandbox.nix
+++ b/nixpkgs/nixos/tests/nginx-sandbox.nix
@@ -18,7 +18,6 @@ import ./make-test-python.nix ({ pkgs, ... }: {
     ];
     services.nginx.enable = true;
     services.nginx.package = pkgs.nginx-lua;
-    services.nginx.enableSandbox = true;
     services.nginx.virtualHosts.localhost = {
       extraConfig = ''
         location /test1-write {
diff --git a/nixpkgs/nixos/tests/nginx-variants.nix b/nixpkgs/nixos/tests/nginx-variants.nix
new file mode 100644
index 000000000000..ca4655391bc5
--- /dev/null
+++ b/nixpkgs/nixos/tests/nginx-variants.nix
@@ -0,0 +1,33 @@
+{ system ? builtins.currentSystem,
+  config ? {},
+  pkgs ? import ../.. { inherit system config; }
+}:
+
+with import ../lib/testing-python.nix { inherit system pkgs; };
+
+builtins.listToAttrs (
+  builtins.map
+    (nginxName:
+      {
+        name = nginxName;
+        value = makeTest {
+          name = "nginx-variant-${nginxName}";
+
+          machine = { pkgs, ... }: {
+            services.nginx = {
+              enable = true;
+              virtualHosts.localhost.locations."/".return = "200 'foo'";
+              package = pkgs."${nginxName}";
+            };
+          };
+
+          testScript = ''
+            machine.wait_for_unit("nginx")
+            machine.wait_for_open_port(80)
+            machine.succeed('test "$(curl -fvvv http://localhost/)" = foo')
+          '';
+        };
+      }
+    )
+    [ "nginxStable" "nginxUnstable" "nginxShibboleth" "openresty" "tengine" ]
+)
diff --git a/nixpkgs/nixos/tests/openstack-image.nix b/nixpkgs/nixos/tests/openstack-image.nix
index 97c9137fe1d6..0b57dfb8e7eb 100644
--- a/nixpkgs/nixos/tests/openstack-image.nix
+++ b/nixpkgs/nixos/tests/openstack-image.nix
@@ -3,30 +3,30 @@
   pkgs ? import ../.. { inherit system config; }
 }:
 
-with import ../lib/testing.nix { inherit system pkgs; };
+with import ../lib/testing-python.nix { inherit system pkgs; };
 with pkgs.lib;
 
 with import common/ec2.nix { inherit makeTest pkgs; };
 
 let
-  image =
-    (import ../lib/eval-config.nix {
-      inherit system;
-      modules = [
-        ../maintainers/scripts/openstack/openstack-image.nix
-        ../modules/testing/test-instrumentation.nix
-        ../modules/profiles/qemu-guest.nix
-        {
-          # Needed by nixos-rebuild due to lack of network access.
-          system.extraDependencies = with pkgs; [
-            stdenv
-          ];
-        }
-      ];
-    }).config.system.build.openstackImage + "/nixos.qcow2";
+  image = (import ../lib/eval-config.nix {
+    inherit system;
+    modules = [
+      ../maintainers/scripts/openstack/openstack-image.nix
+      ../modules/testing/test-instrumentation.nix
+      ../modules/profiles/qemu-guest.nix
+      {
+        # Needed by nixos-rebuild due to lack of network access.
+        system.extraDependencies = with pkgs; [
+          stdenv
+        ];
+      }
+    ];
+  }).config.system.build.openstackImage + "/nixos.qcow2";
 
   sshKeys = import ./ssh-keys.nix pkgs;
   snakeOilPrivateKey = sshKeys.snakeOilPrivateKey.text;
+  snakeOilPrivateKeyFile = pkgs.writeText "private-key" snakeOilPrivateKey;
   snakeOilPublicKey = sshKeys.snakeOilPublicKey;
 
 in {
@@ -39,32 +39,36 @@ in {
       SSH_HOST_ED25519_KEY:${replaceStrings ["\n"] ["|"] snakeOilPrivateKey}
     '';
     script = ''
-      $machine->start;
-      $machine->waitForFile("/etc/ec2-metadata/user-data");
-      $machine->waitForUnit("sshd.service");
+      machine.start()
+      machine.wait_for_file("/etc/ec2-metadata/user-data")
+      machine.wait_for_unit("sshd.service")
 
-      $machine->succeed("grep unknown /etc/ec2-metadata/ami-manifest-path");
+      machine.succeed("grep unknown /etc/ec2-metadata/ami-manifest-path")
 
       # We have no keys configured on the client side yet, so this should fail
-      $machine->fail("ssh -o BatchMode=yes localhost exit");
+      machine.fail("ssh -o BatchMode=yes localhost exit")
 
       # Let's install our client private key
-      $machine->succeed("mkdir -p ~/.ssh");
+      machine.succeed("mkdir -p ~/.ssh")
 
-      $machine->succeed("echo '${snakeOilPrivateKey}' > ~/.ssh/id_ed25519");
-      $machine->succeed("chmod 600 ~/.ssh/id_ed25519");
+      machine.copy_from_host_via_shell(
+          "${snakeOilPrivateKeyFile}", "~/.ssh/id_ed25519"
+      )
+      machine.succeed("chmod 600 ~/.ssh/id_ed25519")
 
       # We haven't configured the host key yet, so this should still fail
-      $machine->fail("ssh -o BatchMode=yes localhost exit");
+      machine.fail("ssh -o BatchMode=yes localhost exit")
 
       # Add the host key; ssh should finally succeed
-      $machine->succeed("echo localhost,127.0.0.1 ${snakeOilPublicKey} > ~/.ssh/known_hosts");
-      $machine->succeed("ssh -o BatchMode=yes localhost exit");
+      machine.succeed(
+          "echo localhost,127.0.0.1 ${snakeOilPublicKey} > ~/.ssh/known_hosts"
+      )
+      machine.succeed("ssh -o BatchMode=yes localhost exit")
 
       # Just to make sure resizing is idempotent.
-      $machine->shutdown;
-      $machine->start;
-      $machine->waitForFile("/etc/ec2-metadata/user-data");
+      machine.shutdown()
+      machine.start()
+      machine.wait_for_file("/etc/ec2-metadata/user-data")
     '';
   };
 
@@ -86,9 +90,9 @@ in {
       }
     '';
     script = ''
-      $machine->start;
-      $machine->waitForFile("/etc/testFile");
-      $machine->succeed("cat /etc/testFile | grep -q 'whoa'");
+      machine.start()
+      machine.wait_for_file("/etc/testFile")
+      assert "whoa" in machine.succeed("cat /etc/testFile")
     '';
   };
 }
diff --git a/nixpkgs/nixos/tests/os-prober.nix b/nixpkgs/nixos/tests/os-prober.nix
index 6a38f5ca531c..be0235a41753 100644
--- a/nixpkgs/nixos/tests/os-prober.nix
+++ b/nixpkgs/nixos/tests/os-prober.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({pkgs, lib, ...}:
+import ./make-test-python.nix ({pkgs, lib, ...}:
 let
   # A filesystem image with a (presumably) bootable debian
   debianImage = pkgs.vmTools.diskImageFuns.debian9i386 {
@@ -34,9 +34,6 @@ let
     '';
   };
 
-  # options to add the disk to the test vm
-  QEMU_OPTS = "-drive index=2,file=${debianImage}/disk-image.qcow2,read-only,if=virtio";
-
   # a part of the configuration of the test vm
   simpleConfig = {
     boot.loader.grub = {
@@ -71,7 +68,7 @@ in {
   machine = { config, pkgs, ... }: (simpleConfig // {
       imports = [ ../modules/profiles/installation-device.nix
                   ../modules/profiles/base.nix ];
-      virtualisation.memorySize = 1024;
+      virtualisation.memorySize = 1300;
       # The test cannot access the network, so any packages
       # nixos-rebuild needs must be included in the VM.
       system.extraDependencies = with pkgs;
@@ -99,22 +96,28 @@ in {
 
   testScript = ''
     # hack to add the secondary disk
-    $machine->{startCommand} = "QEMU_OPTS=\"\$QEMU_OPTS \"${lib.escapeShellArg QEMU_OPTS} ".$machine->{startCommand};
+    os.environ[
+        "QEMU_OPTS"
+    ] = "-drive index=2,file=${debianImage}/disk-image.qcow2,read-only,if=virtio"
 
-    $machine->start;
-    $machine->succeed("udevadm settle");
-    $machine->waitForUnit("multi-user.target");
+    machine.start()
+    machine.succeed("udevadm settle")
+    machine.wait_for_unit("multi-user.target")
+    print(machine.succeed("lsblk"))
 
     # check that os-prober works standalone
-    $machine->succeed("${pkgs.os-prober}/bin/os-prober | grep /dev/vdb1");
+    machine.succeed(
+        "${pkgs.os-prober}/bin/os-prober | grep /dev/vdb1"
+    )
 
     # rebuild and test that debian is available in the grub menu
-    $machine->succeed("nixos-generate-config");
-    $machine->copyFileFromHost(
+    machine.succeed("nixos-generate-config")
+    machine.copy_from_host(
         "${configFile}",
-        "/etc/nixos/configuration.nix");
-    $machine->succeed("nixos-rebuild boot >&2");
+        "/etc/nixos/configuration.nix",
+    )
+    machine.succeed("nixos-rebuild boot >&2")
 
-    $machine->succeed("egrep 'menuentry.*debian' /boot/grub/grub.cfg");
+    machine.succeed("egrep 'menuentry.*debian' /boot/grub/grub.cfg")
   '';
 })
diff --git a/nixpkgs/nixos/tests/pinnwand.nix b/nixpkgs/nixos/tests/pinnwand.nix
new file mode 100644
index 000000000000..2204e74b2c28
--- /dev/null
+++ b/nixpkgs/nixos/tests/pinnwand.nix
@@ -0,0 +1,86 @@
+import ./make-test-python.nix ({ pkgs, ...}:
+let
+  pythonEnv = pkgs.python3.withPackages (py: with py; [ appdirs toml ]);
+
+  port = 8000;
+  baseUrl = "http://server:${toString port}";
+
+  configureSteck = pkgs.writeScript "configure.py" ''
+    #!${pythonEnv.interpreter}
+    import appdirs
+    import toml
+    import os
+
+    CONFIG = {
+      "base": "${baseUrl}/",
+      "confirm": False,
+      "magic": True,
+      "ignore": True
+    }
+
+    os.makedirs(appdirs.user_config_dir('steck'))
+    with open(os.path.join(appdirs.user_config_dir('steck'), 'steck.toml'), "w") as fd:
+        toml.dump(CONFIG, fd)
+    '';
+in
+{
+  name = "pinnwand";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers =[ hexa ];
+  };
+
+  nodes = {
+    server = { config, ... }:
+    {
+      networking.firewall.allowedTCPPorts = [
+        port
+      ];
+
+      services.pinnwand = {
+        enable = true;
+        port = port;
+      };
+    };
+
+    client = { pkgs, ... }:
+    {
+      environment.systemPackages = [ pkgs.steck ];
+    };
+  };
+
+  testScript = ''
+    start_all()
+
+    server.wait_for_unit("pinnwand.service")
+    client.wait_for_unit("network.target")
+
+    # create steck.toml config file
+    client.succeed("${configureSteck}")
+
+    # wait until the server running pinnwand is reachable
+    client.wait_until_succeeds("ping -c1 server")
+
+    # make sure pinnwand is listening
+    server.wait_until_succeeds("ss -lnp | grep ${toString port}")
+
+    # send the contents of /etc/machine-id
+    response = client.succeed("steck paste /etc/machine-id")
+
+    # parse the steck response
+    raw_url = None
+    removal_link = None
+    for line in response.split("\n"):
+        if line.startswith("View link:"):
+            raw_url = f"${baseUrl}/raw/{line.split('/')[-1]}"
+        if line.startswith("Removal link:"):
+            removal_link = line.split(":", 1)[1]
+
+    # check whether paste matches what we sent
+    client.succeed(f"curl {raw_url} > /tmp/machine-id")
+    client.succeed("diff /tmp/machine-id /etc/machine-id")
+
+    # remove paste and check that it's not available any more
+    client.succeed(f"curl {removal_link}")
+    client.fail(f"curl --fail {raw_url}")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/plasma5.nix b/nixpkgs/nixos/tests/plasma5.nix
index 2eccfdf47f59..5a603f8cbfb5 100644
--- a/nixpkgs/nixos/tests/plasma5.nix
+++ b/nixpkgs/nixos/tests/plasma5.nix
@@ -14,7 +14,7 @@ import ./make-test-python.nix ({ pkgs, ...} :
     services.xserver.displayManager.sddm.enable = true;
     services.xserver.displayManager.defaultSession = "plasma5";
     services.xserver.desktopManager.plasma5.enable = true;
-    services.xserver.displayManager.sddm.autoLogin = {
+    services.xserver.displayManager.autoLogin = {
       enable = true;
       user = "alice";
     };
diff --git a/nixpkgs/nixos/tests/podman.nix b/nixpkgs/nixos/tests/podman.nix
index 9134a68ff386..cd8c2b4308c8 100644
--- a/nixpkgs/nixos/tests/podman.nix
+++ b/nixpkgs/nixos/tests/podman.nix
@@ -12,9 +12,6 @@ import ./make-test-python.nix (
         { pkgs, ... }:
         {
           virtualisation.podman.enable = true;
-          virtualisation.containers.users = [
-            "alice"
-          ];
 
           users.users.alice = {
             isNormalUser = true;
diff --git a/nixpkgs/nixos/tests/postfix-raise-smtpd-tls-security-level.nix b/nixpkgs/nixos/tests/postfix-raise-smtpd-tls-security-level.nix
new file mode 100644
index 000000000000..5fad1fed75b2
--- /dev/null
+++ b/nixpkgs/nixos/tests/postfix-raise-smtpd-tls-security-level.nix
@@ -0,0 +1,41 @@
+import ./make-test-python.nix {
+  name = "postfix";
+
+  machine = { pkgs, ... }: {
+    imports = [ common/user-account.nix ];
+    services.postfix = {
+      enable = true;
+      enableSubmissions = true;
+      submissionsOptions = {
+        smtpd_tls_security_level = "none";
+      };
+    };
+
+    environment.systemPackages = let
+      checkConfig = pkgs.writeScriptBin "check-config" ''
+        #!${pkgs.python3.interpreter}
+        import sys
+
+        state = 1
+        success = False
+
+        with open("/etc/postfix/master.cf") as masterCf:
+          for line in masterCf:
+            if state == 1 and line.startswith("submissions"):
+              state = 2
+            elif state == 2 and line.startswith(" ") and "smtpd_tls_security_level=encrypt" in line:
+              success = True
+            elif state == 2 and not line.startswith(" "):
+              state == 3
+        if not success:
+          sys.exit(1)
+      '';
+
+    in [ checkConfig ];
+  };
+
+  testScript = ''
+    machine.wait_for_unit("postfix.service")
+    machine.succeed("check-config")
+  '';
+}
diff --git a/nixpkgs/nixos/tests/postfix.nix b/nixpkgs/nixos/tests/postfix.nix
new file mode 100644
index 000000000000..37ae76afec10
--- /dev/null
+++ b/nixpkgs/nixos/tests/postfix.nix
@@ -0,0 +1,77 @@
+let
+  certs = import ./common/acme/server/snakeoil-certs.nix;
+  domain = certs.domain;
+in
+import ./make-test-python.nix {
+  name = "postfix";
+
+  machine = { pkgs, ... }: {
+    imports = [ common/user-account.nix ];
+    services.postfix = {
+      enable = true;
+      enableSubmission = true;
+      enableSubmissions = true;
+      sslCACert = certs.ca.cert;
+      sslCert = certs.${domain}.cert;
+      sslKey = certs.${domain}.key;
+      submissionsOptions = {
+          smtpd_sasl_auth_enable = "yes";
+          smtpd_client_restrictions = "permit";
+          milter_macro_daemon_name = "ORIGINATING";
+      };
+    };
+
+    security.pki.certificateFiles = [
+      certs.ca.cert
+    ];
+
+    networking.extraHosts = ''
+      127.0.0.1 ${domain}
+    '';
+
+    environment.systemPackages = let
+      sendTestMail = pkgs.writeScriptBin "send-testmail" ''
+        #!${pkgs.python3.interpreter}
+        import smtplib
+
+        with smtplib.SMTP('${domain}') as smtp:
+          smtp.sendmail('root@localhost', 'alice@localhost', 'Subject: Test\n\nTest data.')
+          smtp.quit()
+      '';
+
+      sendTestMailStarttls = pkgs.writeScriptBin "send-testmail-starttls" ''
+        #!${pkgs.python3.interpreter}
+        import smtplib
+        import ssl
+
+        ctx = ssl.create_default_context()
+
+        with smtplib.SMTP('${domain}') as smtp:
+          smtp.ehlo()
+          smtp.starttls(context=ctx)
+          smtp.ehlo()
+          smtp.sendmail('root@localhost', 'alice@localhost', 'Subject: Test STARTTLS\n\nTest data.')
+          smtp.quit()
+      '';
+
+      sendTestMailSmtps = pkgs.writeScriptBin "send-testmail-smtps" ''
+        #!${pkgs.python3.interpreter}
+        import smtplib
+        import ssl
+
+        ctx = ssl.create_default_context()
+
+        with smtplib.SMTP_SSL(host='${domain}', context=ctx) as smtp:
+          smtp.sendmail('root@localhost', 'alice@localhost', 'Subject: Test SMTPS\n\nTest data.')
+          smtp.quit()
+      '';
+    in [ sendTestMail sendTestMailStarttls sendTestMailSmtps ];
+  };
+
+  testScript = ''
+    machine.wait_for_unit("postfix.service")
+    machine.succeed("send-testmail")
+    machine.succeed("send-testmail-starttls")
+    machine.succeed("send-testmail-smtps")
+  '';
+}
diff --git a/nixpkgs/nixos/tests/postgresql-wal-receiver.nix b/nixpkgs/nixos/tests/postgresql-wal-receiver.nix
index 372dd9d8c1c1..432b46234f9c 100644
--- a/nixpkgs/nixos/tests/postgresql-wal-receiver.nix
+++ b/nixpkgs/nixos/tests/postgresql-wal-receiver.nix
@@ -1,99 +1,111 @@
-{ system ? builtins.currentSystem
-, config ? { }
-, pkgs ? import ../.. { inherit system config; } }:
-
-with import ../lib/testing.nix { inherit system pkgs; };
-with pkgs.lib;
-
 let
-  makePostgresqlWalReceiverTest = subTestName: postgresqlPackage: let
+  # Makes a test for a PostgreSQL package, given by name and looked up from `pkgs`.
+  makePostgresqlWalReceiverTest = postgresqlPackage:
+  {
+    name = postgresqlPackage;
+    value =
+      import ./make-test-python.nix ({ pkgs, lib, ... }: let
 
-  postgresqlDataDir = "/var/db/postgresql/test";
-  replicationUser = "wal_receiver_user";
-  replicationSlot = "wal_receiver_slot";
-  replicationConn = "postgresql://${replicationUser}@localhost";
-  baseBackupDir = "/tmp/pg_basebackup";
-  walBackupDir = "/tmp/pg_wal";
-  atLeast12 = versionAtLeast postgresqlPackage.version "12.0";
-  restoreCommand = ''
-    restore_command = 'cp ${walBackupDir}/%f %p'
-  '';
+        pkg = pkgs."${postgresqlPackage}";
+        postgresqlDataDir = "/var/lib/postgresql/${pkg.psqlSchema}";
+        replicationUser = "wal_receiver_user";
+        replicationSlot = "wal_receiver_slot";
+        replicationConn = "postgresql://${replicationUser}@localhost";
+        baseBackupDir = "/tmp/pg_basebackup";
+        walBackupDir = "/tmp/pg_wal";
+        atLeast12 = lib.versionAtLeast pkg.version "12.0";
 
-  recoveryFile = if atLeast12
-      then pkgs.writeTextDir "recovery.signal" ""
-      else pkgs.writeTextDir "recovery.conf" "${restoreCommand}";
+        recoveryFile = if atLeast12
+            then pkgs.writeTextDir "recovery.signal" ""
+            else pkgs.writeTextDir "recovery.conf" "restore_command = 'cp ${walBackupDir}/%f %p'";
 
-  in makeTest {
-    name = "postgresql-wal-receiver-${subTestName}";
-    meta.maintainers = with maintainers; [ pacien ];
+      in {
+        name = "postgresql-wal-receiver-${postgresqlPackage}";
+        meta.maintainers = with lib.maintainers; [ pacien ];
 
-    machine = { ... }: {
-      services.postgresql = {
-        package = postgresqlPackage;
-        enable = true;
-        dataDir = postgresqlDataDir;
-        extraConfig = ''
-          wal_level = archive # alias for replica on pg >= 9.6
-          max_wal_senders = 10
-          max_replication_slots = 10
-        '' + optionalString atLeast12 ''
-          ${restoreCommand}
-          recovery_end_command = 'touch recovery.done'
-        '';
-        authentication = ''
-          host replication ${replicationUser} all trust
-        '';
-        initialScript = pkgs.writeText "init.sql" ''
-          create user ${replicationUser} replication;
-          select * from pg_create_physical_replication_slot('${replicationSlot}');
-        '';
-      };
+        machine = { ... }: {
+          services.postgresql = {
+            package = pkg;
+            enable = true;
+            settings = lib.mkMerge [
+              {
+                wal_level = "archive"; # alias for replica on pg >= 9.6
+                max_wal_senders = 10;
+                max_replication_slots = 10;
+              }
+              (lib.mkIf atLeast12 {
+                restore_command = "cp ${walBackupDir}/%f %p";
+                recovery_end_command = "touch recovery.done";
+              })
+            ];
+            authentication = ''
+              host replication ${replicationUser} all trust
+            '';
+            initialScript = pkgs.writeText "init.sql" ''
+              create user ${replicationUser} replication;
+              select * from pg_create_physical_replication_slot('${replicationSlot}');
+            '';
+          };
 
-      services.postgresqlWalReceiver.receivers.main = {
-        inherit postgresqlPackage;
-        connection = replicationConn;
-        slot = replicationSlot;
-        directory = walBackupDir;
-      };
-      # This is only to speedup test, it isn't time racing. Service is set to autorestart always,
-      # default 60sec is fine for real system, but is too much for a test
-      systemd.services.postgresql-wal-receiver-main.serviceConfig.RestartSec = mkForce 5;
-    };
+          services.postgresqlWalReceiver.receivers.main = {
+            postgresqlPackage = pkg;
+            connection = replicationConn;
+            slot = replicationSlot;
+            directory = walBackupDir;
+          };
+          # This is only to speedup test, it isn't time racing. Service is set to autorestart always,
+          # default 60sec is fine for real system, but is too much for a test
+          systemd.services.postgresql-wal-receiver-main.serviceConfig.RestartSec = lib.mkForce 5;
+        };
 
-    testScript = ''
-      # make an initial base backup
-      $machine->waitForUnit('postgresql');
-      $machine->waitForUnit('postgresql-wal-receiver-main');
-      # WAL receiver healthchecks PG every 5 seconds, so let's be sure they have connected each other
-      # required only for 9.4
-      $machine->sleep(5);
-      $machine->succeed('${postgresqlPackage}/bin/pg_basebackup --dbname=${replicationConn} --pgdata=${baseBackupDir}');
+        testScript = ''
+          # make an initial base backup
+          machine.wait_for_unit("postgresql")
+          machine.wait_for_unit("postgresql-wal-receiver-main")
+          # WAL receiver healthchecks PG every 5 seconds, so let's be sure they have connected each other
+          # required only for 9.4
+          machine.sleep(5)
+          machine.succeed(
+              "${pkg}/bin/pg_basebackup --dbname=${replicationConn} --pgdata=${baseBackupDir}"
+          )
 
-      # create a dummy table with 100 records
-      $machine->succeed('sudo -u postgres psql --command="create table dummy as select * from generate_series(1, 100) as val;"');
+          # create a dummy table with 100 records
+          machine.succeed(
+              "sudo -u postgres psql --command='create table dummy as select * from generate_series(1, 100) as val;'"
+          )
 
-      # stop postgres and destroy data
-      $machine->systemctl('stop postgresql');
-      $machine->systemctl('stop postgresql-wal-receiver-main');
-      $machine->succeed('rm -r ${postgresqlDataDir}/{base,global,pg_*}');
+          # stop postgres and destroy data
+          machine.systemctl("stop postgresql")
+          machine.systemctl("stop postgresql-wal-receiver-main")
+          machine.succeed("rm -r ${postgresqlDataDir}/{base,global,pg_*}")
 
-      # restore the base backup
-      $machine->succeed('cp -r ${baseBackupDir}/* ${postgresqlDataDir} && chown postgres:postgres -R ${postgresqlDataDir}');
+          # restore the base backup
+          machine.succeed(
+              "cp -r ${baseBackupDir}/* ${postgresqlDataDir} && chown postgres:postgres -R ${postgresqlDataDir}"
+          )
 
-      # prepare WAL and recovery
-      $machine->succeed('chmod a+rX -R ${walBackupDir}');
-      $machine->execute('for part in ${walBackupDir}/*.partial; do mv $part ''${part%%.*}; done'); # make use of partial segments too
-      $machine->succeed('cp ${recoveryFile}/* ${postgresqlDataDir}/ && chmod 666 ${postgresqlDataDir}/recovery*');
+          # prepare WAL and recovery
+          machine.succeed("chmod a+rX -R ${walBackupDir}")
+          machine.execute(
+              "for part in ${walBackupDir}/*.partial; do mv $part ''${part%%.*}; done"
+          )  # make use of partial segments too
+          machine.succeed(
+              "cp ${recoveryFile}/* ${postgresqlDataDir}/ && chmod 666 ${postgresqlDataDir}/recovery*"
+          )
 
-      # replay WAL
-      $machine->systemctl('start postgresql');
-      $machine->waitForFile('${postgresqlDataDir}/recovery.done');
-      $machine->systemctl('restart postgresql');
-      $machine->waitForUnit('postgresql');
+          # replay WAL
+          machine.systemctl("start postgresql")
+          machine.wait_for_file("${postgresqlDataDir}/recovery.done")
+          machine.systemctl("restart postgresql")
+          machine.wait_for_unit("postgresql")
 
-      # check that our records have been restored
-      $machine->succeed('test $(sudo -u postgres psql --pset="pager=off" --tuples-only --command="select count(distinct val) from dummy;") -eq 100');
-    '';
-  };
+          # check that our records have been restored
+          machine.succeed(
+              "test $(sudo -u postgres psql --pset='pager=off' --tuples-only --command='select count(distinct val) from dummy;') -eq 100"
+          )
+        '';
+      });
+    };
 
-in mapAttrs makePostgresqlWalReceiverTest (import ../../pkgs/servers/sql/postgresql pkgs)
+# Maps the generic function over all attributes of PostgreSQL packages
+in builtins.listToAttrs (map makePostgresqlWalReceiverTest (builtins.attrNames (import ../../pkgs/servers/sql/postgresql { })))
diff --git a/nixpkgs/nixos/tests/prometheus-exporters.nix b/nixpkgs/nixos/tests/prometheus-exporters.nix
index 75c4ca12db24..fdcc40721324 100644
--- a/nixpkgs/nixos/tests/prometheus-exporters.nix
+++ b/nixpkgs/nixos/tests/prometheus-exporters.nix
@@ -22,6 +22,9 @@ let
  *  `metricProvider` (optional)
  *    this attribute contains additional machine config
  *
+ *  `nodeName` (optional)
+ *    override an incompatible testnode name
+ *
  *  Example:
  *    exporterTests.<exporterName> = {
  *      exporterConfig = {
@@ -363,6 +366,31 @@ let
       '';
     };
 
+    modemmanager = {
+      exporterConfig = {
+        enable = true;
+        refreshRate = "10s";
+      };
+      metricProvider = {
+        # ModemManager is installed when NetworkManager is enabled. Ensure it is
+        # started and is wanted by NM and the exporter to start everything up
+        # in the right order.
+        networking.networkmanager.enable = true;
+        systemd.services.ModemManager = {
+          enable = true;
+          wantedBy = [ "NetworkManager.service" "prometheus-modemmanager-exporter.service" ];
+        };
+      };
+      exporterTest = ''
+        wait_for_unit("ModemManager.service")
+        wait_for_unit("prometheus-modemmanager-exporter.service")
+        wait_for_open_port(9539)
+        succeed(
+            "curl -sSf http://localhost:9539/metrics | grep -q 'modemmanager_info'"
+        )
+      '';
+    };
+
     nextcloud = {
       exporterConfig = {
         enable = true;
@@ -565,6 +593,19 @@ let
       '';
     };
 
+    unifi-poller = {
+      nodeName = "unifi_poller";
+      exporterConfig.enable = true;
+      exporterConfig.controllers = [ { } ];
+      exporterTest = ''
+        wait_for_unit("prometheus-unifi-poller-exporter.service")
+        wait_for_open_port(9130)
+        succeed(
+            "curl -sSf localhost:9130/metrics | grep -q 'unifipoller_build_info{.\\+} 1'"
+        )
+      '';
+    };
+
     varnish = {
       exporterConfig = {
         enable = true;
@@ -621,24 +662,27 @@ let
     };
   };
 in
-mapAttrs (exporter: testConfig: (makeTest {
+mapAttrs (exporter: testConfig: (makeTest (let
+  nodeName = testConfig.nodeName or exporter;
+
+in {
   name = "prometheus-${exporter}-exporter";
 
-  nodes.${exporter} = mkMerge [{
+  nodes.${nodeName} = mkMerge [{
     services.prometheus.exporters.${exporter} = testConfig.exporterConfig;
   } testConfig.metricProvider or {}];
 
   testScript = ''
-    ${exporter}.start()
+    ${nodeName}.start()
     ${concatStringsSep "\n" (map (line:
       if (builtins.substring 0 1 line == " " || builtins.substring 0 1 line == ")")
       then line
-      else "${exporter}.${line}"
+      else "${nodeName}.${line}"
     ) (splitString "\n" (removeSuffix "\n" testConfig.exporterTest)))}
-    ${exporter}.shutdown()
+    ${nodeName}.shutdown()
   '';
 
   meta = with maintainers; {
-    maintainers = [ willibutz ];
+    maintainers = [ willibutz elseym ];
   };
-})) exporterTests
+}))) exporterTests
diff --git a/nixpkgs/nixos/tests/prometheus.nix b/nixpkgs/nixos/tests/prometheus.nix
index bce489168f9f..af2aa66a5526 100644
--- a/nixpkgs/nixos/tests/prometheus.nix
+++ b/nixpkgs/nixos/tests/prometheus.nix
@@ -158,7 +158,10 @@ in import ./make-test-python.nix {
 
     s3 = { pkgs, ... } : {
       # Minio requires at least 1GiB of free disk space to run.
-      virtualisation.diskSize = 2 * 1024;
+      virtualisation = {
+        diskSize = 2 * 1024;
+        memorySize = 1024;
+      };
       networking.firewall.allowedTCPPorts = [ minioPort ];
 
       services.minio = {
@@ -235,7 +238,7 @@ in import ./make-test-python.nix {
     # Test if the Thanos bucket command is able to retrieve blocks from the S3 bucket
     # and check if the blocks have the correct labels:
     store.succeed(
-        "thanos bucket ls "
+        "thanos tools bucket ls "
         + "--objstore.config-file=${nodes.store.config.services.thanos.store.objstore.config-file} "
         + "--output=json | "
         + "jq .thanos.labels.some_label | "
diff --git a/nixpkgs/nixos/tests/pt2-clone.nix b/nixpkgs/nixos/tests/pt2-clone.nix
new file mode 100644
index 000000000000..b502172e2ee5
--- /dev/null
+++ b/nixpkgs/nixos/tests/pt2-clone.nix
@@ -0,0 +1,35 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "pt2-clone";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ fgaz ];
+  };
+
+  machine = { config, pkgs, ... }: {
+    imports = [
+      ./common/x11.nix
+    ];
+
+    services.xserver.enable = true;
+    sound.enable = true;
+    environment.systemPackages = [ pkgs.pt2-clone ];
+  };
+
+  enableOCR = true;
+
+  testScript =
+    ''
+      machine.wait_for_x()
+      # Add a dummy sound card, or the program won't start
+      machine.execute("modprobe snd-dummy")
+
+      machine.execute("pt2-clone &")
+
+      machine.wait_for_window(r"ProTracker")
+      machine.sleep(5)
+      # One of the few words that actually get recognized
+      if "LENGTH" not in machine.get_screen_text():
+          raise Exception("Program did not start successfully")
+      machine.screenshot("screen")
+    '';
+})
+
diff --git a/nixpkgs/nixos/tests/radicale.nix b/nixpkgs/nixos/tests/radicale.nix
index c81e78a8f994..1d3679c82a20 100644
--- a/nixpkgs/nixos/tests/radicale.nix
+++ b/nixpkgs/nixos/tests/radicale.nix
@@ -14,9 +14,6 @@ let
 
         [storage]
         filesystem_folder = /tmp/collections
-
-        [logging]
-        debug = True
       '';
     };
     # WARNING: DON'T DO THIS IN PRODUCTION!
@@ -49,13 +46,18 @@ in
         services.radicale.extraArgs = [
           "--export-storage" "/tmp/collections-new"
         ];
+        system.stateVersion = "17.03";
       };
       radicale2_verify = lib.recursiveUpdate radicale2 {
-        services.radicale.extraArgs = [ "--verify-storage" ];
+        services.radicale.extraArgs = [ "--debug" "--verify-storage" ];
+        system.stateVersion = "17.09";
       };
       radicale2 = lib.recursiveUpdate (common args) {
         system.stateVersion = "17.09";
       };
+      radicale3 = lib.recursiveUpdate (common args) {
+        system.stateVersion = "20.09";
+      };
     };
 
     # This tests whether the web interface is accessible to an authenticated user
@@ -117,6 +119,22 @@ in
               retcode == 0 and "VCALENDAR" in output
           ), "Could not read calendar from Radicale 2"
 
-      radicale.succeed("curl --fail http://${user}:${password}@localhost:${port}/.web/")
+          radicale.succeed("curl --fail http://${user}:${password}@localhost:${port}/.web/")
+
+      with subtest("Check Radicale 3 functionality"):
+          radicale.succeed(
+              "${switchToConfig "radicale3"} >&2"
+          )
+          radicale.wait_for_unit("radicale.service")
+          radicale.wait_for_open_port(${port})
+
+          (retcode, output) = radicale.execute(
+              "curl --fail http://${user}:${password}@localhost:${port}/someuser/calendar.ics/"
+          )
+          assert (
+              retcode == 0 and "VCALENDAR" in output
+          ), "Could not read calendar from Radicale 3"
+
+          radicale.succeed("curl --fail http://${user}:${password}@localhost:${port}/.web/")
     '';
 })
diff --git a/nixpkgs/nixos/tests/restic.nix b/nixpkgs/nixos/tests/restic.nix
index 67bb7f1933d6..dad5bdfff27d 100644
--- a/nixpkgs/nixos/tests/restic.nix
+++ b/nixpkgs/nixos/tests/restic.nix
@@ -4,33 +4,50 @@ import ./make-test-python.nix (
     let
       password = "some_password";
       repository = "/tmp/restic-backup";
-      passwordFile = pkgs.writeText "password" "correcthorsebatterystaple";
+      rcloneRepository = "rclone:local:/tmp/restic-rclone-backup";
+
+      passwordFile = "${pkgs.writeText "password" "correcthorsebatterystaple"}";
+      initialize = true;
+      paths = [ "/opt" ];
+      pruneOpts = [
+        "--keep-daily 2"
+        "--keep-weekly 1"
+        "--keep-monthly 1"
+        "--keep-yearly 99"
+      ];
     in
       {
         name = "restic";
 
         meta = with pkgs.stdenv.lib.maintainers; {
-          maintainers = [ bbigras ];
+          maintainers = [ bbigras i077 ];
         };
 
         nodes = {
           server =
-            { ... }:
+            { pkgs, ... }:
               {
                 services.restic.backups = {
                   remotebackup = {
-                    inherit repository;
-                    passwordFile = "${passwordFile}";
-                    initialize = true;
-                    paths = [ "/opt" ];
-                    pruneOpts = [
-                      "--keep-daily 2"
-                      "--keep-weekly 1"
-                      "--keep-monthly 1"
-                      "--keep-yearly 99"
-                    ];
+                    inherit repository passwordFile initialize paths pruneOpts;
+                  };
+                  rclonebackup = {
+                    repository = rcloneRepository;
+                    rcloneConfig = {
+                      type = "local";
+                      one_file_system = true;
+                    };
+
+                    # This gets overridden by rcloneConfig.type
+                    rcloneConfigFile = pkgs.writeText "rclone.conf" ''
+                      [local]
+                      type=ftp
+                    '';
+                    inherit passwordFile initialize paths pruneOpts;
                   };
                 };
+
+                environment.sessionVariables.RCLONE_CONFIG_LOCAL_TYPE = "local";
               };
         };
 
@@ -38,25 +55,35 @@ import ./make-test-python.nix (
           server.start()
           server.wait_for_unit("dbus.socket")
           server.fail(
-              "${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots"
+              "${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots",
+              "${pkgs.restic}/bin/restic -r ${rcloneRepository} -p ${passwordFile} snapshots",
           )
           server.succeed(
               "mkdir -p /opt",
               "touch /opt/some_file",
+              "mkdir -p /tmp/restic-rclone-backup",
               "timedatectl set-time '2016-12-13 13:45'",
               "systemctl start restic-backups-remotebackup.service",
+              "systemctl start restic-backups-rclonebackup.service",
               '${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots -c | grep -e "^1 snapshot"',
+              '${pkgs.restic}/bin/restic -r ${rcloneRepository} -p ${passwordFile} snapshots -c | grep -e "^1 snapshot"',
               "timedatectl set-time '2017-12-13 13:45'",
               "systemctl start restic-backups-remotebackup.service",
+              "systemctl start restic-backups-rclonebackup.service",
               "timedatectl set-time '2018-12-13 13:45'",
               "systemctl start restic-backups-remotebackup.service",
+              "systemctl start restic-backups-rclonebackup.service",
               "timedatectl set-time '2018-12-14 13:45'",
               "systemctl start restic-backups-remotebackup.service",
+              "systemctl start restic-backups-rclonebackup.service",
               "timedatectl set-time '2018-12-15 13:45'",
               "systemctl start restic-backups-remotebackup.service",
+              "systemctl start restic-backups-rclonebackup.service",
               "timedatectl set-time '2018-12-16 13:45'",
               "systemctl start restic-backups-remotebackup.service",
+              "systemctl start restic-backups-rclonebackup.service",
               '${pkgs.restic}/bin/restic -r ${repository} -p ${passwordFile} snapshots -c | grep -e "^4 snapshot"',
+              '${pkgs.restic}/bin/restic -r ${rcloneRepository} -p ${passwordFile} snapshots -c | grep -e "^4 snapshot"',
           )
         '';
       }
diff --git a/nixpkgs/nixos/tests/robustirc-bridge.nix b/nixpkgs/nixos/tests/robustirc-bridge.nix
new file mode 100644
index 000000000000..a5c22d73a34f
--- /dev/null
+++ b/nixpkgs/nixos/tests/robustirc-bridge.nix
@@ -0,0 +1,29 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+{
+  name = "robustirc-bridge";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ hax404 ];
+  };
+
+  nodes =
+    { bridge =
+      { services.robustirc-bridge = {
+          enable = true;
+          extraFlags = [
+            "-listen localhost:6667"
+            "-network example.com"
+          ];
+        };
+      };
+    };
+
+    testScript =
+    ''
+      start_all()
+
+      bridge.wait_for_unit("robustirc-bridge.service")
+      bridge.wait_for_open_port(1080)
+      bridge.wait_for_open_port(6667)
+    '';
+})
diff --git a/nixpkgs/nixos/tests/sddm.nix b/nixpkgs/nixos/tests/sddm.nix
index a145705250f7..f9b961163c3c 100644
--- a/nixpkgs/nixos/tests/sddm.nix
+++ b/nixpkgs/nixos/tests/sddm.nix
@@ -44,8 +44,8 @@ let
       machine = { ... }: {
         imports = [ ./common/user-account.nix ];
         services.xserver.enable = true;
-        services.xserver.displayManager.sddm = {
-          enable = true;
+        services.xserver.displayManager = {
+          sddm.enable = true;
           autoLogin = {
             enable = true;
             user = "alice";
diff --git a/nixpkgs/nixos/tests/shadowsocks/common.nix b/nixpkgs/nixos/tests/shadowsocks/common.nix
new file mode 100644
index 000000000000..8cbbc3f20684
--- /dev/null
+++ b/nixpkgs/nixos/tests/shadowsocks/common.nix
@@ -0,0 +1,84 @@
+{ name
+, plugin ? null
+, pluginOpts ? ""
+}:
+
+import ../make-test-python.nix ({ pkgs, lib, ... }: {
+    inherit name;
+    meta = {
+      maintainers = with lib.maintainers; [ hmenke ];
+    };
+
+    nodes = {
+      server = {
+        boot.kernel.sysctl."net.ipv4.ip_forward" = "1";
+        networking.useDHCP = false;
+        networking.interfaces.eth1.ipv4.addresses = [
+          { address = "192.168.0.1"; prefixLength = 24; }
+        ];
+        networking.firewall.rejectPackets = true;
+        networking.firewall.allowedTCPPorts = [ 8488 ];
+        networking.firewall.allowedUDPPorts = [ 8488 ];
+        services.shadowsocks = {
+          enable = true;
+          encryptionMethod = "chacha20-ietf-poly1305";
+          password = "pa$$w0rd";
+          localAddress = [ "0.0.0.0" ];
+          port = 8488;
+          fastOpen = false;
+          mode = "tcp_and_udp";
+        } // lib.optionalAttrs (plugin != null) {
+          inherit plugin;
+          pluginOpts = "server;${pluginOpts}";
+        };
+        services.nginx = {
+          enable = true;
+          virtualHosts.server = {
+            locations."/".root = pkgs.writeTextDir "index.html" "It works!";
+          };
+        };
+      };
+
+      client = {
+        networking.useDHCP = false;
+        networking.interfaces.eth1.ipv4.addresses = [
+          { address = "192.168.0.2"; prefixLength = 24; }
+        ];
+        systemd.services.shadowsocks-client = {
+          description = "connect to shadowsocks";
+          after = [ "network.target" ];
+          wantedBy = [ "multi-user.target" ];
+          path = with pkgs; [ shadowsocks-libev ];
+          script = ''
+            exec ss-local \
+                -s 192.168.0.1 \
+                -p 8488 \
+                -l 1080 \
+                -k 'pa$$w0rd' \
+                -m chacha20-ietf-poly1305 \
+                -a nobody \
+                ${lib.optionalString (plugin != null) ''
+                  --plugin "${plugin}" --plugin-opts "${pluginOpts}"
+                ''}
+          '';
+        };
+      };
+    };
+
+    testScript = ''
+      start_all()
+
+      server.wait_for_unit("shadowsocks-libev.service")
+      client.wait_for_unit("shadowsocks-client.service")
+
+      client.fail(
+          "${pkgs.curl}/bin/curl 192.168.0.1:80"
+      )
+
+      msg = client.succeed(
+          "${pkgs.curl}/bin/curl --socks5 localhost:1080 192.168.0.1:80"
+      )
+      assert msg == "It works!", "Could not connect through shadowsocks"
+    '';
+  }
+)
diff --git a/nixpkgs/nixos/tests/shadowsocks/default.nix b/nixpkgs/nixos/tests/shadowsocks/default.nix
new file mode 100644
index 000000000000..37a8c3c9d0d3
--- /dev/null
+++ b/nixpkgs/nixos/tests/shadowsocks/default.nix
@@ -0,0 +1,16 @@
+{ system ? builtins.currentSystem
+, config ? { }
+, pkgs ? import ../../.. { inherit system config; }
+}:
+
+{
+  "basic" = import ./common.nix {
+    name = "basic";
+  };
+
+  "v2ray-plugin" = import ./common.nix {
+    name = "v2ray-plugin";
+    plugin = "${pkgs.shadowsocks-v2ray-plugin}/bin/v2ray-plugin";
+    pluginOpts = "host=nixos.org";
+  };
+}
diff --git a/nixpkgs/nixos/tests/shattered-pixel-dungeon.nix b/nixpkgs/nixos/tests/shattered-pixel-dungeon.nix
new file mode 100644
index 000000000000..cf6ee8db80b2
--- /dev/null
+++ b/nixpkgs/nixos/tests/shattered-pixel-dungeon.nix
@@ -0,0 +1,29 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "shattered-pixel-dungeon";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ fgaz ];
+  };
+
+  machine = { config, pkgs, ... }: {
+    imports = [
+      ./common/x11.nix
+    ];
+
+    services.xserver.enable = true;
+    environment.systemPackages = [ pkgs.shattered-pixel-dungeon ];
+  };
+
+  enableOCR = true;
+
+  testScript =
+    ''
+      machine.wait_for_x()
+      machine.execute("shattered-pixel-dungeon &")
+      machine.wait_for_window(r"Shattered Pixel Dungeon")
+      machine.sleep(5)
+      if "Enter" not in machine.get_screen_text():
+          raise Exception("Program did not start successfully")
+      machine.screenshot("screen")
+    '';
+})
+
diff --git a/nixpkgs/nixos/tests/signal-desktop.nix b/nixpkgs/nixos/tests/signal-desktop.nix
index e4b830e9e237..65ae49a267d9 100644
--- a/nixpkgs/nixos/tests/signal-desktop.nix
+++ b/nixpkgs/nixos/tests/signal-desktop.nix
@@ -31,8 +31,13 @@ import ./make-test-python.nix ({ pkgs, ...} :
     # start signal desktop
     machine.execute("su - alice -c signal-desktop &")
 
-    # wait for the "Link your phone to Signal Desktop" message
-    machine.wait_for_text("Link your phone to Signal Desktop")
+    # Wait for the Signal window to appear. Since usually the tests
+    # are run sandboxed and therfore with no internet, we can not wait
+    # for the message "Link your phone ...". Nor should we wait for
+    # the "Failed to connect to server" message, because when manually
+    # running this test it will be not sandboxed.
+    machine.wait_for_text("Signal")
+    machine.wait_for_text("File Edit View Window Help")
     machine.screenshot("signal_desktop")
   '';
 })
diff --git a/nixpkgs/nixos/tests/slurm.nix b/nixpkgs/nixos/tests/slurm.nix
index d0e62d15437c..a54c5d9db482 100644
--- a/nixpkgs/nixos/tests/slurm.nix
+++ b/nixpkgs/nixos/tests/slurm.nix
@@ -1,16 +1,52 @@
-import ./make-test-python.nix ({ lib, ... }:
+import ./make-test-python.nix ({ lib, pkgs, ... }:
 let
-    mungekey = "mungeverryweakkeybuteasytointegratoinatest";
-
     slurmconfig = {
-      controlMachine = "control";
-      nodeName = [ "node[1-3] CPUs=1 State=UNKNOWN" ];
-      partitionName = [ "debug Nodes=node[1-3] Default=YES MaxTime=INFINITE State=UP" ];
-      extraConfig = ''
-        AccountingStorageHost=dbd
-        AccountingStorageType=accounting_storage/slurmdbd
-      '';
+      services.slurm = {
+        controlMachine = "control";
+        nodeName = [ "node[1-3] CPUs=1 State=UNKNOWN" ];
+        partitionName = [ "debug Nodes=node[1-3] Default=YES MaxTime=INFINITE State=UP" ];
+        extraConfig = ''
+          AccountingStorageHost=dbd
+          AccountingStorageType=accounting_storage/slurmdbd
+        '';
+      };
+      environment.systemPackages = [ mpitest ];
+      networking.firewall.enable = false;
+      systemd.tmpfiles.rules = [
+        "f /etc/munge/munge.key 0400 munge munge - mungeverryweakkeybuteasytointegratoinatest"
+      ];
     };
+
+    mpitest = let
+      mpitestC = pkgs.writeText "mpitest.c" ''
+        #include <stdio.h>
+        #include <stdlib.h>
+        #include <mpi.h>
+
+        int
+        main (int argc, char *argv[])
+        {
+          int rank, size, length;
+          char name[512];
+
+          MPI_Init (&argc, &argv);
+          MPI_Comm_rank (MPI_COMM_WORLD, &rank);
+          MPI_Comm_size (MPI_COMM_WORLD, &size);
+          MPI_Get_processor_name (name, &length);
+
+          if ( rank == 0 ) printf("size=%d\n", size);
+
+          printf ("%s: hello world from process %d of %d\n", name, rank, size);
+
+          MPI_Finalize ();
+
+          return EXIT_SUCCESS;
+        }
+      '';
+    in pkgs.runCommandNoCC "mpitest" {} ''
+      mkdir -p $out/bin
+      ${pkgs.openmpi}/bin/mpicc ${mpitestC} -o $out/bin/mpitest
+    '';
 in {
   name = "slurm";
 
@@ -21,37 +57,40 @@ in {
     computeNode =
       { ...}:
       {
+        imports = [ slurmconfig ];
         # TODO slurmd port and slurmctld port should be configurations and
         # automatically allowed by the  firewall.
-        networking.firewall.enable = false;
         services.slurm = {
           client.enable = true;
-        } // slurmconfig;
+        };
       };
     in {
 
     control =
       { ...}:
       {
-        networking.firewall.enable = false;
+        imports = [ slurmconfig ];
         services.slurm = {
           server.enable = true;
-        } // slurmconfig;
+        };
       };
 
     submit =
       { ...}:
       {
-        networking.firewall.enable = false;
+        imports = [ slurmconfig ];
         services.slurm = {
           enableStools = true;
-        } // slurmconfig;
+        };
       };
 
     dbd =
       { pkgs, ... } :
       {
         networking.firewall.enable = false;
+        systemd.tmpfiles.rules = [
+          "f /etc/munge/munge.key 0400 munge munge - mungeverryweakkeybuteasytointegratoinatest"
+        ];
         services.slurm.dbdserver = {
           enable = true;
           storagePass = "password123";
@@ -87,24 +126,7 @@ in {
   ''
   start_all()
 
-  # Set up authentification across the cluster
-  for node in [submit, control, dbd, node1, node2, node3]:
-
-      node.wait_for_unit("default.target")
-
-      node.succeed("mkdir /etc/munge")
-      node.succeed(
-          "echo '${mungekey}' > /etc/munge/munge.key"
-      )
-      node.succeed("chmod 0400 /etc/munge/munge.key")
-      node.succeed("chown munge:munge /etc/munge/munge.key")
-      node.succeed("systemctl restart munged")
-
-      node.wait_for_unit("munged")
-
-
-  # Restart the services since they have probably failed due to the munge init
-  # failure
+  # Make sure DBD is up after DB initialzation
   with subtest("can_start_slurmdbd"):
       dbd.succeed("systemctl restart slurmdbd")
       dbd.wait_for_unit("slurmdbd.service")
@@ -137,5 +159,8 @@ in {
           # find the srun job from above in the database
           control.succeed("sleep 5")
           control.succeed("sacct | grep hostname")
+
+  with subtest("run_PMIx_mpitest"):
+      submit.succeed("srun -N 3 --mpi=pmix mpitest | grep size=3")
   '';
 })
diff --git a/nixpkgs/nixos/tests/snapcast.nix b/nixpkgs/nixos/tests/snapcast.nix
new file mode 100644
index 000000000000..92534f102819
--- /dev/null
+++ b/nixpkgs/nixos/tests/snapcast.nix
@@ -0,0 +1,58 @@
+import ./make-test-python.nix ({ pkgs, ...} :
+
+let
+  port = 10004;
+  tcpPort = 10005;
+  httpPort = 10080;
+in {
+  name = "snapcast";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ hexa ];
+  };
+
+  nodes = {
+    server = {
+      services.snapserver = {
+        enable = true;
+        port = port;
+        tcp.port = tcpPort;
+        http.port = httpPort;
+        streams = {
+          mpd = {
+            type = "pipe";
+            location = "/run/snapserver/mpd";
+          };
+          bluetooth = {
+            type = "pipe";
+            location = "/run/snapserver/bluetooth";
+          };
+        };
+      };
+    };
+  };
+
+  testScript = ''
+    import json
+
+    get_rpc_version = {"id": "1", "jsonrpc": "2.0", "method": "Server.GetRPCVersion"}
+
+    start_all()
+
+    server.wait_for_unit("snapserver.service")
+    server.wait_until_succeeds("ss -ntl | grep -q ${toString port}")
+    server.wait_until_succeeds("ss -ntl | grep -q ${toString tcpPort}")
+    server.wait_until_succeeds("ss -ntl | grep -q ${toString httpPort}")
+
+    with subtest("check that pipes are created"):
+        server.succeed("test -p /run/snapserver/mpd")
+        server.succeed("test -p /run/snapserver/bluetooth")
+
+    with subtest("test tcp json-rpc"):
+        server.succeed(f"echo '{json.dumps(get_rpc_version)}' | nc -w 1 localhost ${toString tcpPort}")
+
+    with subtest("test http json-rpc"):
+        server.succeed(
+            "curl --fail http://localhost:${toString httpPort}/jsonrpc -d '{json.dumps(get_rpc_version)}'"
+        )
+  '';
+})
diff --git a/nixpkgs/nixos/tests/sslh.nix b/nixpkgs/nixos/tests/sslh.nix
new file mode 100644
index 000000000000..2a800aa52d0a
--- /dev/null
+++ b/nixpkgs/nixos/tests/sslh.nix
@@ -0,0 +1,83 @@
+import ./make-test-python.nix {
+  name = "sslh";
+
+  nodes = {
+    server = { pkgs, lib, ... }: {
+      networking.firewall.allowedTCPPorts = [ 443 ];
+      networking.interfaces.eth1.ipv6.addresses = [
+        {
+          address = "fe00:aa:bb:cc::2";
+          prefixLength = 64;
+        }
+      ];
+      # sslh is really slow when reverse dns does not work
+      networking.hosts = {
+        "fe00:aa:bb:cc::2" = [ "server" ];
+        "fe00:aa:bb:cc::1" = [ "client" ];
+      };
+      services.sslh = {
+        enable = true;
+        transparent = true;
+        appendConfig = ''
+          protocols:
+          (
+            { name: "ssh"; service: "ssh"; host: "localhost"; port: "22"; probe: "builtin"; },
+            { name: "http"; host: "localhost"; port: "80"; probe: "builtin"; },
+          );
+        '';
+      };
+      services.openssh.enable = true;
+      users.users.root.openssh.authorizedKeys.keyFiles = [ ./initrd-network-ssh/id_ed25519.pub ];
+      services.nginx = {
+        enable = true;
+        virtualHosts."localhost" = {
+          addSSL = false;
+          default = true;
+          root = pkgs.runCommand "testdir" {} ''
+            mkdir "$out"
+            echo hello world > "$out/index.html"
+          '';
+        };
+      };
+    };
+    client = { ... }: {
+      networking.interfaces.eth1.ipv6.addresses = [
+        {
+          address = "fe00:aa:bb:cc::1";
+          prefixLength = 64;
+        }
+      ];
+      networking.hosts."fe00:aa:bb:cc::2" = [ "server" ];
+      environment.etc.sshKey = {
+        source = ./initrd-network-ssh/id_ed25519; # dont use this anywhere else
+        mode = "0600";
+      };
+    };
+  };
+
+  testScript = ''
+    start_all()
+
+    server.wait_for_unit("sslh.service")
+    server.wait_for_unit("nginx.service")
+    server.wait_for_unit("sshd.service")
+    server.wait_for_open_port(80)
+    server.wait_for_open_port(443)
+    server.wait_for_open_port(22)
+
+    for arg in ["-6", "-4"]:
+        client.wait_until_succeeds(f"ping {arg} -c1 server")
+
+        # check that ssh through sslh works
+        client.succeed(
+            f"ssh {arg} -p 443 -i /etc/sshKey -o StrictHostKeyChecking=accept-new server 'echo $SSH_CONNECTION > /tmp/foo{arg}'"
+        )
+
+        # check that 1/ the above ssh command had an effect 2/ transparent proxying really works
+        ip = "fe00:aa:bb:cc::1" if arg == "-6" else "192.168.1."
+        server.succeed(f"grep '{ip}' /tmp/foo{arg}")
+
+        # check that http through sslh works
+        assert client.succeed(f"curl {arg} http://server:443").strip() == "hello world"
+  '';
+}
diff --git a/nixpkgs/nixos/tests/sssd-ldap.nix b/nixpkgs/nixos/tests/sssd-ldap.nix
new file mode 100644
index 000000000000..b68403a0102a
--- /dev/null
+++ b/nixpkgs/nixos/tests/sssd-ldap.nix
@@ -0,0 +1,78 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+  let
+    dbDomain = "example.org";
+    dbSuffix = "dc=example,dc=org";
+
+    ldapRootUser = "admin";
+    ldapRootPassword = "foobar";
+
+    testUser = "alice";
+  in
+  {
+    name = "sssd-ldap";
+
+    meta = with pkgs.stdenv.lib.maintainers; {
+      maintainers = [ bbigras ];
+    };
+
+    machine = { pkgs, ... }: {
+      services.openldap = {
+        enable = true;
+        rootdn = "cn=${ldapRootUser},${dbSuffix}";
+        rootpw = ldapRootPassword;
+        suffix = dbSuffix;
+        declarativeContents = ''
+          dn: ${dbSuffix}
+          objectClass: top
+          objectClass: dcObject
+          objectClass: organization
+          o: ${dbDomain}
+
+          dn: ou=posix,${dbSuffix}
+          objectClass: top
+          objectClass: organizationalUnit
+
+          dn: ou=accounts,ou=posix,${dbSuffix}
+          objectClass: top
+          objectClass: organizationalUnit
+
+          dn: uid=${testUser},ou=accounts,ou=posix,${dbSuffix}
+          objectClass: person
+          objectClass: posixAccount
+          # userPassword: somePasswordHash
+          homeDirectory: /home/${testUser}
+          uidNumber: 1234
+          gidNumber: 1234
+          cn: ""
+          sn: ""
+        '';
+      };
+
+      services.sssd = {
+        enable = true;
+        config = ''
+          [sssd]
+          config_file_version = 2
+          services = nss, pam, sudo
+          domains = ${dbDomain}
+
+          [domain/${dbDomain}]
+          auth_provider = ldap
+          id_provider = ldap
+          ldap_uri = ldap://127.0.0.1:389
+          ldap_search_base = ${dbSuffix}
+          ldap_default_bind_dn = cn=${ldapRootUser},${dbSuffix}
+          ldap_default_authtok_type = password
+          ldap_default_authtok = ${ldapRootPassword}
+        '';
+      };
+    };
+
+    testScript = ''
+      machine.start()
+      machine.wait_for_unit("openldap.service")
+      machine.wait_for_unit("sssd.service")
+      machine.succeed("getent passwd ${testUser}")
+    '';
+  }
+)
diff --git a/nixpkgs/nixos/tests/sssd.nix b/nixpkgs/nixos/tests/sssd.nix
new file mode 100644
index 000000000000..4c6ca86c74c8
--- /dev/null
+++ b/nixpkgs/nixos/tests/sssd.nix
@@ -0,0 +1,17 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+{
+  name = "sssd";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ bbigras ];
+  };
+  machine = { pkgs, ... }: {
+    services.sssd.enable = true;
+  };
+
+  testScript = ''
+      start_all()
+      machine.wait_for_unit("multi-user.target")
+      machine.wait_for_unit("sssd.service")
+    '';
+})
diff --git a/nixpkgs/nixos/tests/syncthing-init.nix b/nixpkgs/nixos/tests/syncthing-init.nix
index 9c8e0a3d087e..0a01da52b68b 100644
--- a/nixpkgs/nixos/tests/syncthing-init.nix
+++ b/nixpkgs/nixos/tests/syncthing-init.nix
@@ -24,9 +24,8 @@ in {
   testScript = ''
     machine.wait_for_unit("syncthing-init.service")
     config = machine.succeed("cat /var/lib/syncthing/.config/syncthing/config.xml")
-   
+
     assert "testFolder" in config
     assert "${testId}" in config
   '';
 })
-
diff --git a/nixpkgs/nixos/tests/syncthing.nix b/nixpkgs/nixos/tests/syncthing.nix
new file mode 100644
index 000000000000..9e2a8e01e3fb
--- /dev/null
+++ b/nixpkgs/nixos/tests/syncthing.nix
@@ -0,0 +1,65 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }: {
+  name = "syncthing";
+  meta.maintainers = with pkgs.stdenv.lib.maintainers; [ chkno ];
+
+  nodes = rec {
+    a = {
+      environment.systemPackages = with pkgs; [ curl libxml2 syncthing ];
+      services.syncthing = {
+        enable = true;
+        openDefaultPorts = true;
+      };
+    };
+    b = a;
+  };
+
+  testScript = ''
+    import json
+    import shlex
+
+    confdir = "/var/lib/syncthing/.config/syncthing"
+
+
+    def addPeer(host, name, deviceID):
+        APIKey = host.succeed(
+            "xmllint --xpath 'string(configuration/gui/apikey)' %s/config.xml" % confdir
+        ).strip()
+        oldConf = host.succeed(
+            "curl -Ss -H 'X-API-Key: %s' 127.0.0.1:8384/rest/system/config" % APIKey
+        )
+        conf = json.loads(oldConf)
+        conf["devices"].append({"deviceID": deviceID, "id": name})
+        conf["folders"].append(
+            {
+                "devices": [{"deviceID": deviceID}],
+                "id": "foo",
+                "path": "/var/lib/syncthing/foo",
+                "rescanIntervalS": 1,
+            }
+        )
+        newConf = json.dumps(conf)
+        host.succeed(
+            "curl -Ss -H 'X-API-Key: %s' 127.0.0.1:8384/rest/system/config -d %s"
+            % (APIKey, shlex.quote(newConf))
+        )
+
+
+    start_all()
+    a.wait_for_unit("syncthing.service")
+    b.wait_for_unit("syncthing.service")
+    a.wait_for_open_port(22000)
+    b.wait_for_open_port(22000)
+
+    aDeviceID = a.succeed("syncthing -home=%s -device-id" % confdir).strip()
+    bDeviceID = b.succeed("syncthing -home=%s -device-id" % confdir).strip()
+    addPeer(a, "b", bDeviceID)
+    addPeer(b, "a", aDeviceID)
+
+    a.wait_for_file("/var/lib/syncthing/foo")
+    b.wait_for_file("/var/lib/syncthing/foo")
+    a.succeed("echo a2b > /var/lib/syncthing/foo/a2b")
+    b.succeed("echo b2a > /var/lib/syncthing/foo/b2a")
+    a.wait_for_file("/var/lib/syncthing/foo/b2a")
+    b.wait_for_file("/var/lib/syncthing/foo/a2b")
+  '';
+})
diff --git a/nixpkgs/nixos/tests/systemd-boot.nix b/nixpkgs/nixos/tests/systemd-boot.nix
index eba4729d6de8..7a663dd9b428 100644
--- a/nixpkgs/nixos/tests/systemd-boot.nix
+++ b/nixpkgs/nixos/tests/systemd-boot.nix
@@ -11,6 +11,8 @@ let
     virtualisation.useBootLoader = true;
     virtualisation.useEFIBoot = true;
     boot.loader.systemd-boot.enable = true;
+    boot.loader.efi.canTouchEfiVariables = true;
+    environment.systemPackages = [ pkgs.efibootmgr ];
   };
 in
 {
@@ -31,6 +33,36 @@ in
       machine.succeed(
           "test -e /sys/firmware/efi/efivars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f"
       )
+
+      # "bootctl install" should have created an EFI entry
+      machine.succeed('efibootmgr | grep "Linux Boot Manager"')
+    '';
+  };
+
+  # Boot without having created an EFI entry--instead using default "/EFI/BOOT/BOOTX64.EFI"
+  fallback = makeTest {
+    name = "systemd-boot-fallback";
+    meta.maintainers = with pkgs.stdenv.lib.maintainers; [ danielfullmer ];
+
+    machine = { pkgs, lib, ... }: {
+      imports = [ common ];
+      boot.loader.efi.canTouchEfiVariables = mkForce false;
+    };
+
+    testScript = ''
+      machine.start()
+      machine.wait_for_unit("multi-user.target")
+
+      machine.succeed("test -e /boot/loader/entries/nixos-generation-1.conf")
+
+      # Ensure we actually booted using systemd-boot
+      # Magic number is the vendor UUID used by systemd-boot.
+      machine.succeed(
+          "test -e /sys/firmware/efi/efivars/LoaderEntrySelected-4a67b082-0a4c-41cf-b6c7-440b29bb8c4f"
+      )
+
+      # "bootctl install" should _not_ have created an EFI entry
+      machine.fail('efibootmgr | grep "Linux Boot Manager"')
     '';
   };
 
diff --git a/nixpkgs/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix b/nixpkgs/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
index 99cd341eec15..99395fe3023f 100644
--- a/nixpkgs/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
+++ b/nixpkgs/nixos/tests/systemd-networkd-ipv6-prefix-delegation.nix
@@ -31,7 +31,7 @@ import ./make-test-python.nix ({pkgs, ...}: {
         firewall.enable = false;
         interfaces.eth1.ipv4.addresses = lib.mkForce []; # no need for legacy IP
         interfaces.eth1.ipv6.addresses = lib.mkForce [
-          { address = "2001:DB8::"; prefixLength = 64; }
+          { address = "2001:DB8::1"; prefixLength = 64; }
         ];
       };
 
@@ -260,7 +260,7 @@ import ./make-test-python.nix ({pkgs, ...}: {
     client.wait_until_succeeds("ping -6 -c 1 FD42::1")
 
     # the global IP of the ISP router should still not be a reachable
-    router.fail("ping -6 -c 1 2001:DB8::")
+    router.fail("ping -6 -c 1 2001:DB8::1")
 
     # Once we have internal connectivity boot up the ISP
     isp.start()
@@ -273,11 +273,11 @@ import ./make-test-python.nix ({pkgs, ...}: {
 
     # wait until the uplink interface has a good status
     router.wait_for_unit("network-online.target")
-    router.wait_until_succeeds("ping -6 -c1 2001:DB8::")
+    router.wait_until_succeeds("ping -6 -c1 2001:DB8::1")
 
     # shortly after that the client should have received it's global IPv6
     # address and thus be able to ping the ISP
-    client.wait_until_succeeds("ping -6 -c1 2001:DB8::")
+    client.wait_until_succeeds("ping -6 -c1 2001:DB8::1")
 
     # verify that we got a globally scoped address in eth1 from the
     # documentation prefix
diff --git a/nixpkgs/nixos/tests/systemd-networkd-vrf.nix b/nixpkgs/nixos/tests/systemd-networkd-vrf.nix
index af7813a2e604..bd4751f8e435 100644
--- a/nixpkgs/nixos/tests/systemd-networkd-vrf.nix
+++ b/nixpkgs/nixos/tests/systemd-networkd-vrf.nix
@@ -159,6 +159,8 @@ in {
     node2.wait_for_unit("network.target")
     node3.wait_for_unit("network.target")
 
+    # NOTE: please keep in mind that the trailing whitespaces in the following strings
+    # are intentional as the output is compared against the raw `iproute2`-output.
     client_ipv4_table = """
     192.168.1.2 dev vrf1 proto static metric 100 
     192.168.2.3 dev vrf2 proto static metric 100
@@ -194,18 +196,16 @@ in {
         client.succeed("ping -c5 192.168.1.2")
         client.succeed("ping -c5 192.168.2.3")
 
-    # Test whether SSH through a VRF IP is possible.
-    # (Note: this seems to be an issue on Linux 5.x, so I decided to add this to
-    # ensure that we catch this when updating the default kernel).
-    # with subtest("tcp traffic through vrf works"):
-    #     node1.wait_for_open_port(22)
-    #     client.succeed(
-    #         "cat ${snakeOilPrivateKey} > privkey.snakeoil"
-    #     )
-    #     client.succeed("chmod 600 privkey.snakeoil")
-    #     client.succeed(
-    #         "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil root@192.168.1.2 true"
-    #     )
+    # Test whether TCP through a VRF IP is possible.
+    with subtest("tcp traffic through vrf works"):
+        node1.wait_for_open_port(22)
+        client.succeed(
+            "cat ${snakeOilPrivateKey} > privkey.snakeoil"
+        )
+        client.succeed("chmod 600 privkey.snakeoil")
+        client.succeed(
+            "ulimit -l 2048; ip vrf exec vrf1 ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -i privkey.snakeoil root@192.168.1.2 true"
+        )
 
     # Only configured routes through the VRF from the main routing table should
     # work. Additional IPs are only reachable when binding to the vrf interface.
diff --git a/nixpkgs/nixos/tests/systemd-networkd.nix b/nixpkgs/nixos/tests/systemd-networkd.nix
index 319e5e94eceb..d5fb2431dbad 100644
--- a/nixpkgs/nixos/tests/systemd-networkd.nix
+++ b/nixpkgs/nixos/tests/systemd-networkd.nix
@@ -7,18 +7,19 @@ let generateNodeConf = { lib, pkgs, config, privk, pubk, peerId, nodeId, ...}: {
       virtualisation.vlans = [ 1 ];
       environment.systemPackages = with pkgs; [ wireguard-tools ];
       boot.extraModulePackages = [ config.boot.kernelPackages.wireguard ];
-      systemd.tmpfiles.rules = [
-        "f /run/wg_priv 0640 root systemd-network - ${privk}"
-      ];
       systemd.network = {
         enable = true;
         netdevs = {
           "90-wg0" = {
             netdevConfig = { Kind = "wireguard"; Name = "wg0"; };
             wireguardConfig = {
-              PrivateKeyFile = "/run/wg_priv";
+              # NOTE: we're storing the wireguard private key in the
+              #       store for this test. Do not do this in the real
+              #       world. Keep in mind the nix store is
+              #       world-readable.
+              PrivateKeyFile = pkgs.writeText "wg0-priv" privk;
               ListenPort = 51820;
-              FwMark = 42;
+              FirewallMark = 42;
             };
             wireguardPeers = [ {wireguardPeerConfig={
               Endpoint = "192.168.1.${peerId}:51820";
diff --git a/nixpkgs/nixos/tests/systemd.nix b/nixpkgs/nixos/tests/systemd.nix
index ca2e36a443e9..dfa16eecfad2 100644
--- a/nixpkgs/nixos/tests/systemd.nix
+++ b/nixpkgs/nixos/tests/systemd.nix
@@ -4,7 +4,10 @@ import ./make-test-python.nix ({ pkgs, ... }: {
   machine = { lib, ... }: {
     imports = [ common/user-account.nix common/x11.nix ];
 
-    virtualisation.emptyDiskImages = [ 512 ];
+    virtualisation.emptyDiskImages = [ 512 512 ];
+    virtualisation.memorySize = 1024;
+
+    environment.systemPackages = [ pkgs.cryptsetup ];
 
     fileSystems = lib.mkVMOverride {
       "/test-x-initrd-mount" = {
@@ -50,6 +53,13 @@ import ./make-test-python.nix ({ pkgs, ... }: {
         fi
       '';
     };
+
+    systemd.watchdog = {
+      device = "/dev/watchdog";
+      runtimeTime = "30s";
+      rebootTime = "10min";
+      kexecTime = "5min";
+    };
   };
 
   testScript = ''
@@ -97,6 +107,11 @@ import ./make-test-python.nix ({ pkgs, ... }: {
             re.search(r"^Filesystem state: *clean$", extinfo, re.MULTILINE) is not None
         ), ("File system was not cleanly unmounted: " + extinfo)
 
+    # Regression test for https://github.com/NixOS/nixpkgs/pull/91232
+    with subtest("setting transient hostnames works"):
+        machine.succeed("hostnamectl set-hostname --transient machine-transient")
+        machine.fail("hostnamectl set-hostname machine-all")
+
     with subtest("systemd-shutdown works"):
         machine.shutdown()
         machine.wait_for_unit("multi-user.target")
@@ -117,5 +132,41 @@ import ./make-test-python.nix ({ pkgs, ... }: {
         retcode, output = machine.execute("systemctl status testservice1.service")
         assert retcode in [0, 3]  # https://bugs.freedesktop.org/show_bug.cgi?id=77507
         assert "CPU:" in output
+
+    # Test systemd is configured to manage a watchdog
+    with subtest("systemd manages hardware watchdog"):
+        machine.wait_for_unit("multi-user.target")
+
+        # It seems that the device's path doesn't appear in 'systemctl show' so
+        # check it separately.
+        assert "WatchdogDevice=/dev/watchdog" in machine.succeed(
+            "cat /etc/systemd/system.conf"
+        )
+
+        output = machine.succeed("systemctl show | grep Watchdog")
+        # assert "RuntimeWatchdogUSec=30s" in output
+        # for some reason RuntimeWatchdogUSec, doesn't seem to be updated in here.
+        assert "RebootWatchdogUSec=10min" in output
+        assert "KExecWatchdogUSec=5min" in output
+
+    # Test systemd cryptsetup support
+    with subtest("systemd successfully reads /etc/crypttab and unlocks volumes"):
+        # create a luks volume and put a filesystem on it
+        machine.succeed(
+            "echo -n supersecret | cryptsetup luksFormat -q /dev/vdc -",
+            "echo -n supersecret | cryptsetup luksOpen --key-file - /dev/vdc foo",
+            "mkfs.ext3 /dev/mapper/foo",
+        )
+
+        # create a keyfile and /etc/crypttab
+        machine.succeed("echo -n supersecret > /var/lib/luks-keyfile")
+        machine.succeed("chmod 600 /var/lib/luks-keyfile")
+        machine.succeed("echo 'luks1 /dev/vdc /var/lib/luks-keyfile luks' > /etc/crypttab")
+
+        # after a reboot, systemd should unlock the volume and we should be able to mount it
+        machine.shutdown()
+        machine.succeed("systemctl status systemd-cryptsetup@luks1.service")
+        machine.succeed("mkdir -p /tmp/luks1")
+        machine.succeed("mount /dev/mapper/luks1 /tmp/luks1")
   '';
 })
diff --git a/nixpkgs/nixos/tests/taskserver.nix b/nixpkgs/nixos/tests/taskserver.nix
index ab9b589f8593..f34782c7059a 100644
--- a/nixpkgs/nixos/tests/taskserver.nix
+++ b/nixpkgs/nixos/tests/taskserver.nix
@@ -1,4 +1,4 @@
-import ./make-test.nix ({ pkgs, ... }: let
+import ./make-test-python.nix ({ pkgs, ... }: let
   snakeOil = pkgs.runCommand "snakeoil-certs" {
     outputs = [ "out" "cacert" "cert" "key" "crl" ];
     buildInputs = [ pkgs.gnutls.bin ];
@@ -105,186 +105,178 @@ in {
     newServerSystem = nodes.newServer.config.system.build.toplevel;
     switchToNewServer = "${newServerSystem}/bin/switch-to-configuration test";
   in ''
-    sub su ($$) {
-      my ($user, $cmd) = @_;
-      my $esc = $cmd =~ s/'/'\\${"'"}'/gr;
-      return "su - $user -c '$esc'";
-    }
-
-    sub setupClientsFor ($$;$) {
-      my ($org, $user, $extraInit) = @_;
-
-      for my $client ($client1, $client2) {
-        $client->nest("initialize client for user $user", sub {
-          $client->succeed(
-            (su $user, "rm -rf /home/$user/.task"),
-            (su $user, "task rc.confirmation=no config confirmation no")
-          );
-
-          my $exportinfo = $server->succeed(
-            "nixos-taskserver user export $org $user"
-          );
-
-          $exportinfo =~ s/'/'\\'''/g;
-
-          $client->nest("importing taskwarrior configuration", sub {
-            my $cmd = su $user, "eval '$exportinfo' >&2";
-            my ($status, $out) = $client->execute_($cmd);
-            if ($status != 0) {
-              $client->log("output: $out");
-              die "command `$cmd' did not succeed (exit code $status)\n";
-            }
-          });
-
-          eval { &$extraInit($client, $org, $user) };
-
-          $client->succeed(su $user,
-            "task config taskd.server server:${portStr} >&2"
-          );
-
-          $client->succeed(su $user, "task sync init >&2");
-        });
-      }
-    }
-
-    sub restartServer {
-      $server->succeed("systemctl restart taskserver.service");
-      $server->waitForOpenPort(${portStr});
-    }
-
-    sub readdImperativeUser {
-      $server->nest("(re-)add imperative user bar", sub {
-        $server->execute("nixos-taskserver org remove imperativeOrg");
-        $server->succeed(
-          "nixos-taskserver org add imperativeOrg",
-          "nixos-taskserver user add imperativeOrg bar"
-        );
-        setupClientsFor "imperativeOrg", "bar";
-      });
-    }
-
-    sub testSync ($) {
-      my $user = $_[0];
-      subtest "sync for user $user", sub {
-        $client1->succeed(su $user, "task add foo >&2");
-        $client1->succeed(su $user, "task sync >&2");
-        $client2->fail(su $user, "task list >&2");
-        $client2->succeed(su $user, "task sync >&2");
-        $client2->succeed(su $user, "task list >&2");
-      };
-    }
-
-    sub checkClientCert ($) {
-      my $user = $_[0];
-      my $cmd = "gnutls-cli".
-        " --x509cafile=/home/$user/.task/keys/ca.cert".
-        " --x509keyfile=/home/$user/.task/keys/private.key".
-        " --x509certfile=/home/$user/.task/keys/public.cert".
-        " --port=${portStr} server < /dev/null";
-      return su $user, $cmd;
-    }
+    from shlex import quote
+
+
+    def su(user, cmd):
+        return f"su - {user} -c {quote(cmd)}"
+
+
+    def no_extra_init(client, org, user):
+        pass
+
+
+    def setup_clients_for(org, user, extra_init=no_extra_init):
+        for client in [client1, client2]:
+            with client.nested(f"initialize client for user {user}"):
+                client.succeed(
+                    su(user, f"rm -rf /home/{user}/.task"),
+                    su(user, "task rc.confirmation=no config confirmation no"),
+                )
+
+                exportinfo = server.succeed(f"nixos-taskserver user export {org} {user}")
+
+                with client.nested("importing taskwarrior configuration"):
+                    client.succeed(su(user, f"eval {quote(exportinfo)} >&2"))
+
+                extra_init(client, org, user)
+
+                client.succeed(su(user, "task config taskd.server server:${portStr} >&2"))
+
+                client.succeed(su(user, "task sync init >&2"))
+
+
+    def restart_server():
+        server.systemctl("restart taskserver.service")
+        server.wait_for_open_port(${portStr})
+
+
+    def re_add_imperative_user():
+        with server.nested("(re-)add imperative user bar"):
+            server.execute("nixos-taskserver org remove imperativeOrg")
+            server.succeed(
+                "nixos-taskserver org add imperativeOrg",
+                "nixos-taskserver user add imperativeOrg bar",
+            )
+            setup_clients_for("imperativeOrg", "bar")
+
+
+    def test_sync(user):
+        with subtest(f"sync for user {user}"):
+            client1.succeed(su(user, "task add foo >&2"))
+            client1.succeed(su(user, "task sync >&2"))
+            client2.fail(su(user, "task list >&2"))
+            client2.succeed(su(user, "task sync >&2"))
+            client2.succeed(su(user, "task list >&2"))
+
+
+    def check_client_cert(user):
+        # debug level 3 is a workaround for gnutls issue https://gitlab.com/gnutls/gnutls/-/issues/1040
+        cmd = (
+            f"gnutls-cli -d 3"
+            f" --x509cafile=/home/{user}/.task/keys/ca.cert"
+            f" --x509keyfile=/home/{user}/.task/keys/private.key"
+            f" --x509certfile=/home/{user}/.task/keys/public.cert"
+            f" --port=${portStr} server < /dev/null"
+        )
+        return su(user, cmd)
+
 
     # Explicitly start the VMs so that we don't accidentally start newServer
-    $server->start;
-    $client1->start;
-    $client2->start;
+    server.start()
+    client1.start()
+    client2.start()
 
-    $server->waitForUnit("taskserver.service");
+    server.wait_for_unit("taskserver.service")
 
-    $server->succeed(
-      "nixos-taskserver user list testOrganisation | grep -qxF alice",
-      "nixos-taskserver user list testOrganisation | grep -qxF foo",
-      "nixos-taskserver user list anotherOrganisation | grep -qxF bob"
-    );
+    server.succeed(
+        "nixos-taskserver user list testOrganisation | grep -qxF alice",
+        "nixos-taskserver user list testOrganisation | grep -qxF foo",
+        "nixos-taskserver user list anotherOrganisation | grep -qxF bob",
+    )
 
-    $server->waitForOpenPort(${portStr});
+    server.wait_for_open_port(${portStr})
 
-    $client1->waitForUnit("multi-user.target");
-    $client2->waitForUnit("multi-user.target");
+    client1.wait_for_unit("multi-user.target")
+    client2.wait_for_unit("multi-user.target")
 
-    setupClientsFor "testOrganisation", "alice";
-    setupClientsFor "testOrganisation", "foo";
-    setupClientsFor "anotherOrganisation", "bob";
+    setup_clients_for("testOrganisation", "alice")
+    setup_clients_for("testOrganisation", "foo")
+    setup_clients_for("anotherOrganisation", "bob")
 
-    testSync $_ for ("alice", "bob", "foo");
+    for user in ["alice", "bob", "foo"]:
+        test_sync(user)
 
-    $server->fail("nixos-taskserver user add imperativeOrg bar");
-    readdImperativeUser;
+    server.fail("nixos-taskserver user add imperativeOrg bar")
+    re_add_imperative_user()
 
-    testSync "bar";
+    test_sync("bar")
 
-    subtest "checking certificate revocation of user bar", sub {
-      $client1->succeed(checkClientCert "bar");
+    with subtest("checking certificate revocation of user bar"):
+        client1.succeed(check_client_cert("bar"))
 
-      $server->succeed("nixos-taskserver user remove imperativeOrg bar");
-      restartServer;
+        server.succeed("nixos-taskserver user remove imperativeOrg bar")
+        restart_server()
 
-      $client1->fail(checkClientCert "bar");
+        client1.fail(check_client_cert("bar"))
 
-      $client1->succeed(su "bar", "task add destroy everything >&2");
-      $client1->fail(su "bar", "task sync >&2");
-    };
+        client1.succeed(su("bar", "task add destroy everything >&2"))
+        client1.fail(su("bar", "task sync >&2"))
 
-    readdImperativeUser;
+    re_add_imperative_user()
 
-    subtest "checking certificate revocation of org imperativeOrg", sub {
-      $client1->succeed(checkClientCert "bar");
+    with subtest("checking certificate revocation of org imperativeOrg"):
+        client1.succeed(check_client_cert("bar"))
 
-      $server->succeed("nixos-taskserver org remove imperativeOrg");
-      restartServer;
+        server.succeed("nixos-taskserver org remove imperativeOrg")
+        restart_server()
 
-      $client1->fail(checkClientCert "bar");
+        client1.fail(check_client_cert("bar"))
 
-      $client1->succeed(su "bar", "task add destroy even more >&2");
-      $client1->fail(su "bar", "task sync >&2");
-    };
+        client1.succeed(su("bar", "task add destroy even more >&2"))
+        client1.fail(su("bar", "task sync >&2"))
 
-    readdImperativeUser;
+    re_add_imperative_user()
 
-    subtest "check whether declarative config overrides user bar", sub {
-      restartServer;
-      testSync "bar";
-    };
+    with subtest("check whether declarative config overrides user bar"):
+        restart_server()
+        test_sync("bar")
 
-    subtest "check manual configuration", sub {
-      # Remove the keys from automatic CA creation, to make sure the new
-      # generation doesn't use keys from before.
-      $server->succeed('rm -rf ${cfg.dataDir}/keys/* >&2');
-
-      $server->succeed('${switchToNewServer} >&2');
-      $server->waitForUnit("taskserver.service");
-      $server->waitForOpenPort(${portStr});
-
-      $server->succeed(
-        "nixos-taskserver org add manualOrg",
-        "nixos-taskserver user add manualOrg alice"
-      );
-
-      setupClientsFor "manualOrg", "alice", sub {
-        my ($client, $org, $user) = @_;
-        my $cfgpath = "/home/$user/.task";
-
-        $client->copyFileFromHost("${snakeOil.cacert}", "$cfgpath/ca.cert");
-        for my $file ('alice.key', 'alice.cert') {
-          $client->copyFileFromHost("${snakeOil}/$file", "$cfgpath/$file");
-        }
-
-        for my $file ("$user.key", "$user.cert") {
-          $client->copyFileFromHost(
-            "${snakeOil}/$file", "$cfgpath/$file"
-          );
-        }
-        $client->copyFileFromHost(
-          "${snakeOil.cacert}", "$cfgpath/ca.cert"
-        );
-        $client->succeed(
-          (su "alice", "task config taskd.ca $cfgpath/ca.cert"),
-          (su "alice", "task config taskd.key $cfgpath/$user.key"),
-          (su $user, "task config taskd.certificate $cfgpath/$user.cert")
-        );
-      };
 
-      testSync "alice";
-    };
+    def init_manual_config(client, org, user):
+        cfgpath = f"/home/{user}/.task"
+
+        client.copy_from_host(
+            "${snakeOil.cacert}",
+            f"{cfgpath}/ca.cert",
+        )
+        for file in ["alice.key", "alice.cert"]:
+            client.copy_from_host(
+                f"${snakeOil}/{file}",
+                f"{cfgpath}/{file}",
+            )
+
+        for file in [f"{user}.key", f"{user}.cert"]:
+            client.copy_from_host(
+                f"${snakeOil}/{file}",
+                f"{cfgpath}/{file}",
+            )
+
+        client.succeed(
+            su("alice", f"task config taskd.ca {cfgpath}/ca.cert"),
+            su("alice", f"task config taskd.key {cfgpath}/{user}.key"),
+            su(user, f"task config taskd.certificate {cfgpath}/{user}.cert"),
+        )
+
+
+    with subtest("check manual configuration"):
+        # Remove the keys from automatic CA creation, to make sure the new
+        # generation doesn't use keys from before.
+        server.succeed("rm -rf ${cfg.dataDir}/keys/* >&2")
+
+        server.succeed(
+            "${switchToNewServer} >&2"
+        )
+        server.wait_for_unit("taskserver.service")
+        server.wait_for_open_port(${portStr})
+
+        server.succeed(
+            "nixos-taskserver org add manualOrg",
+            "nixos-taskserver user add manualOrg alice",
+        )
+
+        setup_clients_for("manualOrg", "alice", init_manual_config)
+
+        test_sync("alice")
   '';
 })
diff --git a/nixpkgs/nixos/tests/tiddlywiki.nix b/nixpkgs/nixos/tests/tiddlywiki.nix
index cf45578b0f98..822711b8939c 100644
--- a/nixpkgs/nixos/tests/tiddlywiki.nix
+++ b/nixpkgs/nixos/tests/tiddlywiki.nix
@@ -44,7 +44,7 @@ import ./make-test-python.nix ({ ... }: {
           configured.succeed(
               "curl --fail -o /dev/null 127.0.0.1:3000 --user somelogin:somesecret"
           )
-      
+
       with subtest("restart preserves changes"):
           # given running wiki
           default.wait_for_unit("tiddlywiki.service")
diff --git a/nixpkgs/nixos/tests/transmission.nix b/nixpkgs/nixos/tests/transmission.nix
index f4f2186be1ff..37c0352dcfb8 100644
--- a/nixpkgs/nixos/tests/transmission.nix
+++ b/nixpkgs/nixos/tests/transmission.nix
@@ -9,6 +9,8 @@ import ./make-test-python.nix ({ pkgs, ...} : {
 
     networking.firewall.allowedTCPPorts = [ 9091 ];
 
+    security.apparmor.enable = true;
+
     services.transmission.enable = true;
   };
 
diff --git a/nixpkgs/nixos/tests/trezord.nix b/nixpkgs/nixos/tests/trezord.nix
index 8d908a522492..b7b3dd31942b 100644
--- a/nixpkgs/nixos/tests/trezord.nix
+++ b/nixpkgs/nixos/tests/trezord.nix
@@ -1,9 +1,8 @@
 import ./make-test-python.nix ({ pkgs, ... }: {
   name = "trezord";
-  meta = with pkgs.stdenv.lib.maintainers; {
-    maintainers = [ mmahut "1000101" ];
+  meta = with pkgs.stdenv.lib; {
+    maintainers = with maintainers; [ mmahut _1000101 ];
   };
-
   nodes = {
     machine = { ... }: {
       services.trezord.enable = true;
diff --git a/nixpkgs/nixos/tests/trickster.nix b/nixpkgs/nixos/tests/trickster.nix
index e2ca00980d53..713ac8f0b2fa 100644
--- a/nixpkgs/nixos/tests/trickster.nix
+++ b/nixpkgs/nixos/tests/trickster.nix
@@ -1,7 +1,7 @@
 import ./make-test-python.nix ({ pkgs, ... }: {
   name = "trickster";
-  meta = with pkgs.stdenv.lib.maintainers; {
-    maintainers = [ "1000101" ];
+  meta = with pkgs.stdenv.lib; {
+    maintainers = with maintainers; [ _1000101 ];
   };
 
   nodes = {
@@ -34,4 +34,4 @@ import ./make-test-python.nix ({ pkgs, ... }: {
         "curl -L http://localhost:9090/metrics | grep 'promhttp_metric_handler_requests_total{code=\"500\"} 0'"
     )
   '';
-})
\ No newline at end of file
+})
diff --git a/nixpkgs/nixos/tests/v2ray.nix b/nixpkgs/nixos/tests/v2ray.nix
new file mode 100644
index 000000000000..f1b2570cc860
--- /dev/null
+++ b/nixpkgs/nixos/tests/v2ray.nix
@@ -0,0 +1,83 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }: let
+
+  v2rayUser = {
+    # A random UUID.
+    id = "a6a46834-2150-45f8-8364-0f6f6ab32384";
+    alterId = 4;
+  };
+
+  # 1080 [http proxy] -> 1081 [vmess] -> direct
+  v2rayConfig = {
+    inbounds = [
+      {
+        tag = "http_in";
+        port = 1080;
+        listen = "127.0.0.1";
+        protocol = "http";
+      }
+      {
+        tag = "vmess_in";
+        port = 1081;
+        listen = "127.0.0.1";
+        protocol = "vmess";
+        settings.clients = [v2rayUser];
+      }
+    ];
+    outbounds = [
+      {
+        tag = "vmess_out";
+        protocol = "vmess";
+        settings.vnext = [{
+          address = "127.0.0.1";
+          port = 1081;
+          users = [v2rayUser];
+        }];
+      }
+      {
+        tag = "direct";
+        protocol = "freedom";
+      }
+    ];
+    routing.rules = [
+      {
+        type = "field";
+        inboundTag = "http_in";
+        outboundTag = "vmess_out";
+      }
+      {
+        type = "field";
+        inboundTag = "vmess_in";
+        outboundTag = "direct";
+      }
+    ];
+  };
+
+in {
+  name = "v2ray";
+  meta = with lib.maintainers; {
+    maintainers = [ servalcatty ];
+  };
+  machine = { pkgs, ... }: {
+    environment.systemPackages = [ pkgs.curl ];
+    services.v2ray = {
+      enable = true;
+      config = v2rayConfig;
+    };
+    services.httpd = {
+      enable = true;
+      adminAddr = "foo@example.org";
+    };
+  };
+
+  testScript = ''
+    start_all()
+
+    machine.wait_for_unit("httpd.service")
+    machine.wait_for_unit("v2ray.service")
+    machine.wait_for_open_port(80)
+    machine.wait_for_open_port(1080)
+    machine.succeed(
+        "curl --fail --max-time 10 --proxy http://localhost:1080 http://localhost"
+    )
+  '';
+})
diff --git a/nixpkgs/nixos/tests/virtualbox.nix b/nixpkgs/nixos/tests/virtualbox.nix
index aec8da6a2af3..0d9eafa4a20f 100644
--- a/nixpkgs/nixos/tests/virtualbox.nix
+++ b/nixpkgs/nixos/tests/virtualbox.nix
@@ -15,7 +15,7 @@
 
 assert use64bitGuest -> useKvmNestedVirt;
 
-with import ../lib/testing.nix { inherit system pkgs; };
+with import ../lib/testing-python.nix { inherit system pkgs; };
 with pkgs.lib;
 
 let
@@ -91,13 +91,15 @@ let
       (isYes "SERIAL_8250_CONSOLE")
       (isYes "SERIAL_8250")
     ];
+
+    networking.usePredictableInterfaceNames = false;
   };
 
   mkLog = logfile: tag: let
     rotated = map (i: "${logfile}.${toString i}") (range 1 9);
     all = concatMapStringsSep " " (f: "\"${f}\"") ([logfile] ++ rotated);
     logcmd = "tail -F ${all} 2> /dev/null | logger -t \"${tag}\"";
-  in optionalString debug "$machine->execute(ru '${logcmd} & disown');";
+  in if debug then "machine.execute(ru('${logcmd} & disown'))" else "pass";
 
   testVM = vmName: vmScript: let
     cfg = (import ../lib/eval-config.nix {
@@ -198,103 +200,111 @@ let
       systemd.services."vboxtestlog-${name}@" = {
         description = "VirtualBox Test Machine Log For ${name}";
         serviceConfig.StandardInput = "socket";
-        serviceConfig.StandardOutput = "syslog";
         serviceConfig.SyslogIdentifier = "GUEST-${name}";
         serviceConfig.ExecStart = "${pkgs.coreutils}/bin/cat";
       };
     };
 
     testSubs = ''
-      my ${"$" + name}_sharepath = '${sharePath}';
-
-      sub checkRunning_${name} {
-        my $cmd = 'VBoxManage list runningvms | grep -q "^\"${name}\""';
-        my ($status, $out) = $machine->execute(ru $cmd);
-        return $status == 0;
-      }
-
-      sub cleanup_${name} {
-        $machine->execute(ru "VBoxManage controlvm ${name} poweroff")
-          if checkRunning_${name};
-        $machine->succeed("rm -rf ${sharePath}");
-        $machine->succeed("mkdir -p ${sharePath}");
-        $machine->succeed("chown alice.users ${sharePath}");
-      }
-
-      sub createVM_${name} {
-        vbm("createvm --name ${name} ${createFlags}");
-        vbm("modifyvm ${name} ${vmFlags}");
-        vbm("setextradata ${name} VBoxInternal/PDM/HaltOnReset 1");
-        vbm("storagectl ${name} ${controllerFlags}");
-        vbm("storageattach ${name} ${diskFlags}");
-        vbm("sharedfolder add ${name} ${sharedFlags}");
-        vbm("sharedfolder add ${name} ${nixstoreFlags}");
-        cleanup_${name};
-
-        ${mkLog "$HOME/VirtualBox VMs/${name}/Logs/VBox.log" "HOST-${name}"}
-      }
-
-      sub destroyVM_${name} {
-        cleanup_${name};
-        vbm("unregistervm ${name} --delete");
-      }
-
-      sub waitForVMBoot_${name} {
-        $machine->execute(ru(
-          'set -e; i=0; '.
-          'while ! test -e ${sharePath}/boot-done; do '.
-          'sleep 10; i=$(($i + 10)); [ $i -le 3600 ]; '.
-          'VBoxManage list runningvms | grep -q "^\"${name}\""; '.
-          'done'
-        ));
-      }
-
-      sub waitForIP_${name} ($) {
-        my $property = "/VirtualBox/GuestInfo/Net/$_[0]/V4/IP";
-        my $getip = "VBoxManage guestproperty get ${name} $property | ".
-                    "sed -n -e 's/^Value: //p'";
-        my $ip = $machine->succeed(ru(
-          'for i in $(seq 1000); do '.
-          'if ipaddr="$('.$getip.')" && [ -n "$ipaddr" ]; then '.
-          'echo "$ipaddr"; exit 0; '.
-          'fi; '.
-          'sleep 1; '.
-          'done; '.
-          'echo "Could not get IPv4 address for ${name}!" >&2; '.
-          'exit 1'
-        ));
-        chomp $ip;
-        return $ip;
-      }
-
-      sub waitForStartup_${name} {
-        for (my $i = 0; $i <= 120; $i += 10) {
-          $machine->sleep(10);
-          return if checkRunning_${name};
-          eval { $_[0]->() } if defined $_[0];
-        }
-        die "VirtualBox VM didn't start up within 2 minutes";
-      }
-
-      sub waitForShutdown_${name} {
-        for (my $i = 0; $i <= 120; $i += 10) {
-          $machine->sleep(10);
-          return unless checkRunning_${name};
-        }
-        die "VirtualBox VM didn't shut down within 2 minutes";
-      }
-
-      sub shutdownVM_${name} {
-        $machine->succeed(ru "touch ${sharePath}/shutdown");
-        $machine->execute(
-          'set -e; i=0; '.
-          'while test -e ${sharePath}/shutdown '.
-          '        -o -e ${sharePath}/boot-done; do '.
-          'sleep 1; i=$(($i + 1)); [ $i -le 3600 ]; '.
-          'done'
-        );
-        waitForShutdown_${name};
-      }
+
+
+      ${name}_sharepath = "${sharePath}"
+
+
+      def check_running_${name}():
+          cmd = "VBoxManage list runningvms | grep -q '^\"${name}\"'"
+          (status, _) = machine.execute(ru(cmd))
+          return status == 0
+
+
+      def cleanup_${name}():
+          if check_running_${name}():
+              machine.execute(ru("VBoxManage controlvm ${name} poweroff"))
+          machine.succeed("rm -rf ${sharePath}")
+          machine.succeed("mkdir -p ${sharePath}")
+          machine.succeed("chown alice.users ${sharePath}")
+
+
+      def create_vm_${name}():
+          # fmt: off
+          vbm(f"createvm --name ${name} ${createFlags}")
+          vbm(f"modifyvm ${name} ${vmFlags}")
+          vbm(f"setextradata ${name} VBoxInternal/PDM/HaltOnReset 1")
+          vbm(f"storagectl ${name} ${controllerFlags}")
+          vbm(f"storageattach ${name} ${diskFlags}")
+          vbm(f"sharedfolder add ${name} ${sharedFlags}")
+          vbm(f"sharedfolder add ${name} ${nixstoreFlags}")
+          cleanup_${name}()
+
+          ${mkLog "$HOME/VirtualBox VMs/${name}/Logs/VBox.log" "HOST-${name}"}
+          # fmt: on
+
+
+      def destroy_vm_${name}():
+          cleanup_${name}()
+          vbm("unregistervm ${name} --delete")
+
+
+      def wait_for_vm_boot_${name}():
+          machine.execute(
+              ru(
+                  "set -e; i=0; "
+                  "while ! test -e ${sharePath}/boot-done; do "
+                  "sleep 10; i=$(($i + 10)); [ $i -le 3600 ]; "
+                  "VBoxManage list runningvms | grep -q '^\"${name}\"'; "
+                  "done"
+              )
+          )
+
+
+      def wait_for_ip_${name}(interface):
+          property = f"/VirtualBox/GuestInfo/Net/{interface}/V4/IP"
+          # fmt: off
+          getip = f"VBoxManage guestproperty get ${name} {property} | sed -n -e 's/^Value: //p'"
+          # fmt: on
+
+          ip = machine.succeed(
+              ru(
+                  "for i in $(seq 1000); do "
+                  f'if ipaddr="$({getip})" && [ -n "$ipaddr" ]; then '
+                  'echo "$ipaddr"; exit 0; '
+                  "fi; "
+                  "sleep 1; "
+                  "done; "
+                  "echo 'Could not get IPv4 address for ${name}!' >&2; "
+                  "exit 1"
+              )
+          ).strip()
+          return ip
+
+
+      def wait_for_startup_${name}(nudge=lambda: None):
+          for _ in range(0, 130, 10):
+              machine.sleep(10)
+              if check_running_${name}():
+                  return
+              nudge()
+          raise Exception("VirtualBox VM didn't start up within 2 minutes")
+
+
+      def wait_for_shutdown_${name}():
+          for _ in range(0, 130, 10):
+              machine.sleep(10)
+              if not check_running_${name}():
+                  return
+          raise Exception("VirtualBox VM didn't shut down within 2 minutes")
+
+
+      def shutdown_vm_${name}():
+          machine.succeed(ru("touch ${sharePath}/shutdown"))
+          machine.execute(
+              "set -e; i=0; "
+              "while test -e ${sharePath}/shutdown "
+              "        -o -e ${sharePath}/boot-done; do "
+              "sleep 1; i=$(($i + 1)); [ $i -le 3600 ]; "
+              "done"
+          )
+          wait_for_shutdown_${name}()
     '';
   };
 
@@ -365,26 +375,31 @@ let
     };
 
     testScript = ''
-      sub ru ($) {
-        my $esc = $_[0] =~ s/'/'\\${"'"}'/gr;
-        return "su - alice -c '$esc'";
-      }
+      from shlex import quote
+      ${concatStrings (mapAttrsToList (_: getAttr "testSubs") vms)}
 
-      sub vbm {
-        $machine->succeed(ru("VBoxManage ".$_[0]));
-      };
+      def ru(cmd: str) -> str:
+          return f"su - alice -c {quote(cmd)}"
 
-      sub removeUUIDs {
-        return join("\n", grep { $_ !~ /^UUID:/ } split(/\n/, $_[0]))."\n";
-      }
 
-      ${concatStrings (mapAttrsToList (_: getAttr "testSubs") vms)}
+      def vbm(cmd: str) -> str:
+          return machine.succeed(ru(f"VBoxManage {cmd}"))
+
+
+      def remove_uuids(output: str) -> str:
+          return "\n".join(
+              [line for line in (output or "").splitlines() if not line.startswith("UUID:")]
+          )
+
 
-      $machine->waitForX;
+      machine.wait_for_x()
 
+      # fmt: off
       ${mkLog "$HOME/.config/VirtualBox/VBoxSVC.log" "HOST-SVC"}
+      # fmt: on
 
       ${testScript}
+      # (keep black happy)
     '';
 
     meta = with pkgs.stdenv.lib.maintainers; {
@@ -394,133 +409,129 @@ let
 
   unfreeTests = mapAttrs (mkVBoxTest true vboxVMsWithExtpack) {
     enable-extension-pack = ''
-      createVM_testExtensionPack;
-      vbm("startvm testExtensionPack");
-      waitForStartup_testExtensionPack;
-      $machine->screenshot("cli_started");
-      waitForVMBoot_testExtensionPack;
-      $machine->screenshot("cli_booted");
-
-      $machine->nest("Checking for privilege escalation", sub {
-        $machine->fail("test -e '/root/VirtualBox VMs'");
-        $machine->fail("test -e '/root/.config/VirtualBox'");
-        $machine->succeed("test -e '/home/alice/VirtualBox VMs'");
-      });
-
-      shutdownVM_testExtensionPack;
-      destroyVM_testExtensionPack;
+      create_vm_testExtensionPack()
+      vbm("startvm testExtensionPack")
+      wait_for_startup_testExtensionPack()
+      machine.screenshot("cli_started")
+      wait_for_vm_boot_testExtensionPack()
+      machine.screenshot("cli_booted")
+
+      with machine.nested("Checking for privilege escalation"):
+          machine.fail("test -e '/root/VirtualBox VMs'")
+          machine.fail("test -e '/root/.config/VirtualBox'")
+          machine.succeed("test -e '/home/alice/VirtualBox VMs'")
+
+      shutdown_vm_testExtensionPack()
+      destroy_vm_testExtensionPack()
     '';
   };
 
 in mapAttrs (mkVBoxTest false vboxVMs) {
   simple-gui = ''
-    createVM_simple;
-    $machine->succeed(ru "VirtualBox &");
-    $machine->waitUntilSucceeds(
-      ru "xprop -name 'Oracle VM VirtualBox Manager'"
-    );
-    $machine->sleep(5);
-    $machine->screenshot("gui_manager_started");
     # Home to select Tools, down to move to the VM, enter to start it.
-    $machine->sendKeys("home");
-    $machine->sendKeys("down");
-    $machine->sendKeys("ret");
-    $machine->screenshot("gui_manager_sent_startup");
-    waitForStartup_simple (sub {
-      $machine->sendKeys("home");
-      $machine->sendKeys("down");
-      $machine->sendKeys("ret");
-    });
-    $machine->screenshot("gui_started");
-    waitForVMBoot_simple;
-    $machine->screenshot("gui_booted");
-    shutdownVM_simple;
-    $machine->sleep(5);
-    $machine->screenshot("gui_stopped");
-    $machine->sendKeys("ctrl-q");
-    $machine->sleep(5);
-    $machine->screenshot("gui_manager_stopped");
-    destroyVM_simple;
+    def send_vm_startup():
+        machine.send_key("home")
+        machine.send_key("down")
+        machine.send_key("ret")
+
+
+    create_vm_simple()
+    machine.succeed(ru("VirtualBox &"))
+    machine.wait_until_succeeds(ru("xprop -name 'Oracle VM VirtualBox Manager'"))
+    machine.sleep(5)
+    machine.screenshot("gui_manager_started")
+    send_vm_startup()
+    machine.screenshot("gui_manager_sent_startup")
+    wait_for_startup_simple(send_vm_startup)
+    machine.screenshot("gui_started")
+    wait_for_vm_boot_simple()
+    machine.screenshot("gui_booted")
+    shutdown_vm_simple()
+    machine.sleep(5)
+    machine.screenshot("gui_stopped")
+    machine.send_key("ctrl-q")
+    machine.sleep(5)
+    machine.screenshot("gui_manager_stopped")
+    destroy_vm_simple()
   '';
 
   simple-cli = ''
-    createVM_simple;
-    vbm("startvm simple");
-    waitForStartup_simple;
-    $machine->screenshot("cli_started");
-    waitForVMBoot_simple;
-    $machine->screenshot("cli_booted");
-
-    $machine->nest("Checking for privilege escalation", sub {
-      $machine->fail("test -e '/root/VirtualBox VMs'");
-      $machine->fail("test -e '/root/.config/VirtualBox'");
-      $machine->succeed("test -e '/home/alice/VirtualBox VMs'");
-    });
-
-    shutdownVM_simple;
-    destroyVM_simple;
+    create_vm_simple()
+    vbm("startvm simple")
+    wait_for_startup_simple()
+    machine.screenshot("cli_started")
+    wait_for_vm_boot_simple()
+    machine.screenshot("cli_booted")
+
+    with machine.nested("Checking for privilege escalation"):
+        machine.fail("test -e '/root/VirtualBox VMs'")
+        machine.fail("test -e '/root/.config/VirtualBox'")
+        machine.succeed("test -e '/home/alice/VirtualBox VMs'")
+
+    shutdown_vm_simple()
+    destroy_vm_simple()
   '';
 
   headless = ''
-    createVM_headless;
-    $machine->succeed(ru("VBoxHeadless --startvm headless & disown %1"));
-    waitForStartup_headless;
-    waitForVMBoot_headless;
-    shutdownVM_headless;
-    destroyVM_headless;
+    create_vm_headless()
+    machine.succeed(ru("VBoxHeadless --startvm headless & disown %1"))
+    wait_for_startup_headless()
+    wait_for_vm_boot_headless()
+    shutdown_vm_headless()
+    destroy_vm_headless()
   '';
 
   host-usb-permissions = ''
-    my $userUSB = removeUUIDs vbm("list usbhost");
-    print STDERR $userUSB;
-    my $rootUSB = removeUUIDs $machine->succeed("VBoxManage list usbhost");
-    print STDERR $rootUSB;
-
-    die "USB host devices differ for root and normal user"
-      if $userUSB ne $rootUSB;
-    die "No USB host devices found" if $userUSB =~ /<none>/;
+    user_usb = remove_uuids(vbm("list usbhost"))
+    print(user_usb, file=sys.stderr)
+    root_usb = remove_uuids(machine.succeed("VBoxManage list usbhost"))
+    print(root_usb, file=sys.stderr)
+
+    if user_usb != root_usb:
+        raise Exception("USB host devices differ for root and normal user")
+    if "<none>" in user_usb:
+        raise Exception("No USB host devices found")
   '';
 
   systemd-detect-virt = ''
-    createVM_detectvirt;
-    vbm("startvm detectvirt");
-    waitForStartup_detectvirt;
-    waitForVMBoot_detectvirt;
-    shutdownVM_detectvirt;
-    my $result = $machine->succeed("cat '$detectvirt_sharepath/result'");
-    chomp $result;
-    destroyVM_detectvirt;
-    die "systemd-detect-virt returned \"$result\" instead of \"oracle\""
-      if $result ne "oracle";
+    create_vm_detectvirt()
+    vbm("startvm detectvirt")
+    wait_for_startup_detectvirt()
+    wait_for_vm_boot_detectvirt()
+    shutdown_vm_detectvirt()
+    result = machine.succeed(f"cat '{detectvirt_sharepath}/result'").strip()
+    destroy_vm_detectvirt()
+    if result != "oracle":
+        raise Exception(f'systemd-detect-virt returned "{result}" instead of "oracle"')
   '';
 
   net-hostonlyif = ''
-    createVM_test1;
-    createVM_test2;
+    create_vm_test1()
+    create_vm_test2()
 
-    vbm("startvm test1");
-    waitForStartup_test1;
-    waitForVMBoot_test1;
+    vbm("startvm test1")
+    wait_for_startup_test1()
+    wait_for_vm_boot_test1()
 
-    vbm("startvm test2");
-    waitForStartup_test2;
-    waitForVMBoot_test2;
+    vbm("startvm test2")
+    wait_for_startup_test2()
+    wait_for_vm_boot_test2()
 
-    $machine->screenshot("net_booted");
+    machine.screenshot("net_booted")
 
-    my $test1IP = waitForIP_test1 1;
-    my $test2IP = waitForIP_test2 1;
+    test1_ip = wait_for_ip_test1(1)
+    test2_ip = wait_for_ip_test2(1)
 
-    $machine->succeed("echo '$test2IP' | nc -N '$test1IP' 1234");
-    $machine->succeed("echo '$test1IP' | nc -N '$test2IP' 1234");
+    machine.succeed(f"echo '{test2_ip}' | nc -N '{test1_ip}' 1234")
+    machine.succeed(f"echo '{test1_ip}' | nc -N '{test2_ip}' 1234")
 
-    $machine->waitUntilSucceeds("nc -N '$test1IP' 5678 < /dev/null >&2");
-    $machine->waitUntilSucceeds("nc -N '$test2IP' 5678 < /dev/null >&2");
+    machine.wait_until_succeeds(f"nc -N '{test1_ip}' 5678 < /dev/null >&2")
+    machine.wait_until_succeeds(f"nc -N '{test2_ip}' 5678 < /dev/null >&2")
 
-    shutdownVM_test1;
-    shutdownVM_test2;
+    shutdown_vm_test1()
+    shutdown_vm_test2()
 
-    destroyVM_test1;
-    destroyVM_test2;
+    destroy_vm_test1()
+    destroy_vm_test2()
   '';
 } // (if enableUnfree then unfreeTests else {})
diff --git a/nixpkgs/nixos/tests/wasabibackend.nix b/nixpkgs/nixos/tests/wasabibackend.nix
new file mode 100644
index 000000000000..d169ad152722
--- /dev/null
+++ b/nixpkgs/nixos/tests/wasabibackend.nix
@@ -0,0 +1,38 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "wasabibackend";
+  meta = with pkgs.stdenv.lib.maintainers; {
+    maintainers = [ mmahut ];
+  };
+
+  nodes = {
+    machine = { ... }: {
+      services.wasabibackend = {
+        enable = true;
+        network = "testnet";
+        rpc = {
+          user = "alice";
+          port = 18332;
+        };
+      };
+      services.bitcoind = {
+        enable = true;
+        testnet = true;
+        rpc.users = {
+          alice.passwordHMAC = "e7096bc21da60b29ecdbfcdb2c3acc62$f948e61cb587c399358ed99c6ed245a41460b4bf75125d8330c9f6fcc13d7ae7";
+        };
+      };
+    };
+  };
+
+  testScript = ''
+    start_all()
+    machine.wait_for_unit("wasabibackend.service")
+    machine.wait_until_succeeds(
+        "grep 'Wasabi Backend started' /var/lib/wasabibackend/.walletwasabi/backend/Logs.txt"
+    )
+    machine.sleep(5)
+    machine.succeed(
+        "grep 'Config is successfully initialized' /var/lib/wasabibackend/.walletwasabi/backend/Logs.txt"
+    )
+  '';
+})
diff --git a/nixpkgs/nixos/tests/xandikos.nix b/nixpkgs/nixos/tests/xandikos.nix
index 0fded20ff1a9..48c770a3d168 100644
--- a/nixpkgs/nixos/tests/xandikos.nix
+++ b/nixpkgs/nixos/tests/xandikos.nix
@@ -4,7 +4,7 @@ import ./make-test-python.nix (
     {
       name = "xandikos";
 
-      meta.maintainers = [ lib.maintainers."0x4A6F" ];
+      meta.maintainers = with lib.maintainers; [ _0x4A6F ];
 
       nodes = {
         xandikos_client = {};
@@ -17,7 +17,7 @@ import ./make-test-python.nix (
           services.xandikos.enable = true;
           services.xandikos.address = "localhost";
           services.xandikos.port = 8080;
-          services.xandikos.routePrefix = "/xandikos/";
+          services.xandikos.routePrefix = "/xandikos-prefix/";
           services.xandikos.extraOptions = [
             "--defaults"
           ];
@@ -28,7 +28,7 @@ import ./make-test-python.nix (
               serverName = "xandikos.local";
               basicAuth.xandikos = "snakeOilPassword";
               locations."/xandikos/" = {
-                proxyPass = "http://localhost:8080/";
+                proxyPass = "http://localhost:8080/xandikos-prefix/";
               };
             };
           };
diff --git a/nixpkgs/nixos/tests/xfce.nix b/nixpkgs/nixos/tests/xfce.nix
index 99065669661a..99e30342e593 100644
--- a/nixpkgs/nixos/tests/xfce.nix
+++ b/nixpkgs/nixos/tests/xfce.nix
@@ -11,8 +11,8 @@ import ./make-test-python.nix ({ pkgs, ...} : {
 
       services.xserver.enable = true;
 
-      services.xserver.displayManager.lightdm = {
-        enable = true;
+      services.xserver.displayManager = {
+        lightdm.enable = true;
         autoLogin = {
           enable = true;
           user = "alice";
diff --git a/nixpkgs/nixos/tests/xmpp/ejabberd.nix b/nixpkgs/nixos/tests/xmpp/ejabberd.nix
index 1518aaacc8ab..2b09f99f5fd9 100644
--- a/nixpkgs/nixos/tests/xmpp/ejabberd.nix
+++ b/nixpkgs/nixos/tests/xmpp/ejabberd.nix
@@ -5,6 +5,10 @@ import ../make-test-python.nix ({ pkgs, ... }: {
   };
   nodes = {
     client = { nodes, pkgs, ... }: {
+      networking.extraHosts = ''
+        ${nodes.server.config.networking.primaryIPAddress} example.com
+      '';
+
       environment.systemPackages = [
         (pkgs.callPackage ./xmpp-sendmessage.nix { connectTo = nodes.server.config.networking.primaryIPAddress; })
       ];
@@ -46,6 +50,11 @@ import ../make-test-python.nix ({ pkgs, ... }: {
               module: ejabberd_service
               access: local
               shaper: fast
+            -
+              port: 5444
+              module: ejabberd_http
+              request_handlers:
+                "/upload": mod_http_upload
 
           ## Disabling digest-md5 SASL authentication. digest-md5 requires plain-text
           ## password storage (see auth_password_format option).
@@ -180,6 +189,7 @@ import ../make-test-python.nix ({ pkgs, ... }: {
             mod_client_state: {}
             mod_configure: {} # requires mod_adhoc
             ## mod_delegation: {} # for xep0356
+            mod_disco: {}
             #mod_irc:
             #  host: "irc.@HOST@"
             #  default_encoding: "utf-8"
@@ -187,9 +197,9 @@ import ../make-test-python.nix ({ pkgs, ... }: {
             ## mod_http_fileserver:
             ##   docroot: "/var/www"
             ##   accesslog: "/var/log/ejabberd/access.log"
-            #mod_http_upload:
-            #  thumbnail: false # otherwise needs the identify command from ImageMagick installed
-            #  put_url: "https://@HOST@:5444"
+            mod_http_upload:
+              thumbnail: false # otherwise needs the identify command from ImageMagick installed
+              put_url: "http://@HOST@:5444/upload"
             ##   # docroot: "@HOME@/upload"
             #mod_http_upload_quota:
             #  max_days: 14
diff --git a/nixpkgs/nixos/tests/xmpp/xmpp-sendmessage.nix b/nixpkgs/nixos/tests/xmpp/xmpp-sendmessage.nix
index 349b9c6f38e4..30945e68300a 100644
--- a/nixpkgs/nixos/tests/xmpp/xmpp-sendmessage.nix
+++ b/nixpkgs/nixos/tests/xmpp/xmpp-sendmessage.nix
@@ -36,7 +36,11 @@ class CthonTest(ClientXMPP):
         def timeout_callback(arg):
             log.error("ERROR: Cannot upload file. XEP_0363 seems broken")
             sys.exit(1)
-        url = await self['xep_0363'].upload_file("${dummyFile}",timeout=10, timeout_callback=timeout_callback)
+        try:
+            url = await self['xep_0363'].upload_file("${dummyFile}",timeout=10, timeout_callback=timeout_callback)
+        except:
+            log.error("ERROR: Cannot run upload command. XEP_0363 seems broken")
+            sys.exit(1)
         log.info('Upload success!')
         # Test MUC
         self.plugin['xep_0045'].join_muc('testMucRoom', 'cthon98', wait=True)
diff --git a/nixpkgs/nixos/tests/yggdrasil.nix b/nixpkgs/nixos/tests/yggdrasil.nix
index 9ceb79747339..1d7541308b48 100644
--- a/nixpkgs/nixos/tests/yggdrasil.nix
+++ b/nixpkgs/nixos/tests/yggdrasil.nix
@@ -7,6 +7,7 @@ let
     SigningPrivateKey = "fe3add8da35316c05f6d90d3ca79bd2801e6ccab6d37e5339fef4152589398abe2c43349083bc1e998e4ec4535b4c6a8f44ca9a5a8e07336561267253b2be5f4";
   };
   bobIp6 = "201:ebbd:bde9:f138:c302:4afa:1fb6:a19a";
+  bobPrefix = "301:ebbd:bde9:f138";
   bobConfig = {
     InterfacePeers = {
       eth1 = [ "tcp://192.168.1.200:12345" ];
@@ -18,6 +19,7 @@ let
     SigningPublicKey = "de111da0ec781e45bf6c63ecb45a78c24d7d4655abfaeea83b26c36eb5c0fd5b";
     SigningPrivateKey = "2a6c21550f3fca0331df50668ffab66b6dce8237bcd5728e571e8033b363e247de111da0ec781e45bf6c63ecb45a78c24d7d4655abfaeea83b26c36eb5c0fd5b";
   };
+  danIp6 = bobPrefix + "::2";
 
 in import ./make-test-python.nix ({ pkgs, ...} : {
   name = "yggdrasil";
@@ -69,6 +71,41 @@ in import ./make-test-python.nix ({ pkgs, ...} : {
                          text = builtins.toJSON bobConfig;
                        });
         };
+
+        boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = 1;
+
+        networking = {
+          bridges.br0.interfaces = [ ];
+          interfaces.br0 = {
+            ipv6.addresses = [{
+              address = bobPrefix + "::1";
+              prefixLength = 64;
+            }];
+          };
+        };
+
+        # dan is a node inside a container running on bob's host.
+        containers.dan = {
+          autoStart = true;
+          privateNetwork = true;
+          hostBridge = "br0";
+          config = { config, pkgs, ... }: {
+            networking.interfaces.eth0.ipv6 = {
+              addresses = [{
+                address = bobPrefix + "::2";
+                prefixLength = 64;
+              }];
+              routes = [{
+                address = "200::";
+                prefixLength = 7;
+                via = bobPrefix + "::1";
+              }];
+            };
+            services.httpd.enable = true;
+            services.httpd.adminAddr = "foo@example.org";
+            networking.firewall.allowedTCPPorts = [ 80 ];
+          };
+        };
       };
 
     # Carol only does local peering.  Carol's yggdrasil config is all Nix.
@@ -100,7 +137,7 @@ in import ./make-test-python.nix ({ pkgs, ...} : {
 
       bob.start()
       carol.start()
-      bob.wait_for_unit("yggdrasil.service")
+      bob.wait_for_unit("default.target")
       carol.wait_for_unit("yggdrasil.service")
 
       ip_addr_show = "ip -o -6 addr show dev ygg0 scope global"
@@ -117,10 +154,13 @@ in import ./make-test-python.nix ({ pkgs, ...} : {
 
       carol.succeed("ping -c 1 ${aliceIp6}")
       carol.succeed("ping -c 1 ${bobIp6}")
+      carol.succeed("ping -c 1 ${bobPrefix}::1")
+      carol.succeed("ping -c 8 ${danIp6}")
 
       carol.fail("journalctl -u dhcpcd | grep ygg0")
 
       alice.wait_for_unit("httpd.service")
       carol.succeed("curl --fail -g http://[${aliceIp6}]")
+      carol.succeed("curl --fail -g http://[${danIp6}]")
     '';
 })
diff --git a/nixpkgs/nixos/tests/zfs.nix b/nixpkgs/nixos/tests/zfs.nix
index 7ba60ee9806c..87e6c900c98e 100644
--- a/nixpkgs/nixos/tests/zfs.nix
+++ b/nixpkgs/nixos/tests/zfs.nix
@@ -46,6 +46,17 @@ let
             "zpool destroy rpool",
             "udevadm settle",
         )
+
+        machine.succeed(
+            'echo password | zpool create -o altroot="/tmp/mnt" '
+            + "-O encryption=aes-256-gcm -O keyformat=passphrase rpool /dev/vdb1",
+            "zfs create -o mountpoint=legacy rpool/root",
+            "mount -t zfs rpool/root /tmp/mnt",
+            "udevadm settle",
+            "umount /tmp/mnt",
+            "zpool destroy rpool",
+            "udevadm settle",
+        )
       '' + extraTest;
 
     };
@@ -57,18 +68,6 @@ in {
 
   unstable = makeZfsTest "unstable" {
     enableUnstable = true;
-    extraTest = ''
-      machine.succeed(
-          'echo password | zpool create -o altroot="/tmp/mnt" '
-          + "-O encryption=aes-256-gcm -O keyformat=passphrase rpool /dev/vdb1",
-          "zfs create -o mountpoint=legacy rpool/root",
-          "mount -t zfs rpool/root /tmp/mnt",
-          "udevadm settle",
-          "umount /tmp/mnt",
-          "zpool destroy rpool",
-          "udevadm settle",
-      )
-    '';
   };
 
   installer = (import ./installer.nix { }).zfsroot;
diff --git a/nixpkgs/nixos/tests/zigbee2mqtt.nix b/nixpkgs/nixos/tests/zigbee2mqtt.nix
new file mode 100644
index 000000000000..b7bb21f9227a
--- /dev/null
+++ b/nixpkgs/nixos/tests/zigbee2mqtt.nix
@@ -0,0 +1,19 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+  {
+    machine = { pkgs, ... }:
+      {
+        services.zigbee2mqtt = {
+          enable = true;
+        };
+      };
+
+    testScript = ''
+      machine.wait_for_unit("zigbee2mqtt.service")
+      machine.wait_until_fails("systemctl status zigbee2mqtt.service")
+      machine.succeed(
+          "journalctl -eu zigbee2mqtt | grep \"Error: Error while opening serialport 'Error: Error: No such file or directory, cannot open /dev/ttyACM0'\""
+      )
+    '';
+  }
+)
diff --git a/nixpkgs/pkgs/applications/audio/a2jmidid/default.nix b/nixpkgs/pkgs/applications/audio/a2jmidid/default.nix
index 64468bddc852..f4a9383c29c1 100644
--- a/nixpkgs/pkgs/applications/audio/a2jmidid/default.nix
+++ b/nixpkgs/pkgs/applications/audio/a2jmidid/default.nix
@@ -9,7 +9,7 @@ in stdenv.mkDerivation {
   version = "8";
 
   src = fetchurl {
-    url = "https://repo.or.cz/a2jmidid.git/snapshot/7383d268c4bfe85df9f10df6351677659211d1ca.tar.gz";
+    url = "https://github.com/linuxaudio/a2jmidid/archive/7383d268c4bfe85df9f10df6351677659211d1ca.tar.gz";
     sha256 = "06dgf5655znbvrd7fhrv8msv6zw8vk0hjqglcqkh90960mnnmwz7";
   };
 
@@ -18,13 +18,17 @@ in stdenv.mkDerivation {
 
   patches = [
     (fetchpatch {
-      url = "https://repo.or.cz/a2jmidid.git/patch/24e3b8e543256ae8fdfb4b75eb9fd775f07c46e2";
+      url = "https://github.com/linuxaudio/a2jmidid/commit/24e3b8e543256ae8fdfb4b75eb9fd775f07c46e2.diff";
       sha256 = "1nxrvnhxlgqc9wbxnp1gnpw4wjyzxvymwcg1gh2nqzmssgfykfkc";
     })
     (fetchpatch {
-      url = "https://repo.or.cz/a2jmidid.git/patch/7f82da7eb2f540a94db23331be98d42a58ddc269";
+      url = "https://github.com/linuxaudio/a2jmidid/commit/7f82da7eb2f540a94db23331be98d42a58ddc269.diff";
       sha256 = "1nab9zf0agbcj5pvhl90pz0cx1d204d4janqflc5ymjhy8jyrsdv";
     })
+    (fetchpatch {
+      url = "https://github.com/linuxaudio/a2jmidid/commit/c07775d021a71cb91bf64ce1391cf525415cb060.diff";
+      sha256 = "172v9hri03qdqi8a3zsg227k5qxldd8v5bj4jk7fyk5jf50fcxga";
+    })
   ];
 
   postInstall = ''
@@ -35,6 +39,6 @@ in stdenv.mkDerivation {
     description = "Daemon for exposing legacy ALSA sequencer applications in JACK MIDI system";
     license = licenses.gpl2;
     maintainers = [ maintainers.goibhniu ];
-    platforms = [ "i686-linux" "x86_64-linux" ];
+    platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/adlplug/default.nix b/nixpkgs/pkgs/applications/audio/adlplug/default.nix
index bc626cbad114..7dcc13eb96d5 100644
--- a/nixpkgs/pkgs/applications/audio/adlplug/default.nix
+++ b/nixpkgs/pkgs/applications/audio/adlplug/default.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchFromGitHub, cmake, pkgconfig, libjack2, alsaLib
 , freetype, libX11, libXrandr, libXinerama, libXext, libXcursor
-, fetchpatch
+, fetchpatch, fmt
 , adlplugChip ? "-DADLplug_CHIP=OPL3"
 , pname ? "ADLplug" }:
 
 stdenv.mkDerivation rec {
   inherit pname;
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "jpcima";
     repo = "ADLplug";
     rev = "v${version}";
-    sha256 = "0n9srdlgl1j528ap5xmllrqs1w6ibc5yf9sphvl1q9kjnizxrs2c";
+    sha256 = "0mqx4bzri8s880v7jwd24nb93m5i3aklqld0b3h0hjnz0lh2qz0f";
     fetchSubmodules = true;
   };
 
@@ -25,13 +25,13 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  cmakeFlags = [ adlplugChip ];
+  cmakeFlags = [ adlplugChip "-DADLplug_USE_SYSTEM_FMT=ON" ];
 
   buildInputs = [
     libjack2 alsaLib freetype libX11 libXrandr libXinerama libXext
     libXcursor
   ];
-  nativeBuildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig fmt ];
 
   meta = with stdenv.lib; {
     description = "OPL3 and OPN2 FM Chip Synthesizer";
diff --git a/nixpkgs/pkgs/applications/audio/aeolus/default.nix b/nixpkgs/pkgs/applications/audio/aeolus/default.nix
index bfd75b4e75cf..c4982025999f 100644
--- a/nixpkgs/pkgs/applications/audio/aeolus/default.nix
+++ b/nixpkgs/pkgs/applications/audio/aeolus/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "aeolus";
-  version = "0.9.8";
+  version = "0.9.9";
 
   src = fetchurl {
     url = "https://kokkinizita.linuxaudio.org/linuxaudio/downloads/${pname}-${version}.tar.bz2";
-    sha256 = "1zfr3567mwbqsfybkhg03n5dvmhllk88c9ayb10qzz2nh6d7g2qn";
+    sha256 = "04y1j36y7vc93bv299vfiawbww4ym6q7avfx8vw6rmxr817zrch3";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/ardour/default.nix b/nixpkgs/pkgs/applications/audio/ardour/default.nix
index 5090ef6a2ec8..0c38057d56f8 100644
--- a/nixpkgs/pkgs/applications/audio/ardour/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ardour/default.nix
@@ -55,13 +55,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "ardour";
-  version = "6.0";
+  version = "6.2";
 
   # don't fetch releases from the GitHub mirror, they are broken
   src = fetchgit {
     url = "git://git.ardour.org/ardour/ardour.git";
     rev = version;
-    sha256 = "162jd96zahl05fdmjwvpdfjxbhd6ifbav6xqa0vv6rsdl4zk395q";
+    sha256 = "17jxbqavricy01x4ymq6d302djsqfnv84m7dm4fd8cpka0dqjp1y";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/audio/ashuffle/default.nix b/nixpkgs/pkgs/applications/audio/ashuffle/default.nix
new file mode 100644
index 000000000000..6bb21b5edaab
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/ashuffle/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, pkg-config, mpd_clientlib, meson, ninja }:
+
+stdenv.mkDerivation rec {
+  pname = "ashuffle";
+  version = "3.4.0";
+
+  src = fetchFromGitHub {
+    owner = "joshkunz";
+    repo = "ashuffle";
+    rev = "v${version}";
+    sha256 = "09q6lwgc1dc8bg1mb9js9qz3xcsxph3548nxzvyb4v8111gixrp7";
+    fetchSubmodules = true;
+  };
+
+  dontUseCmakeConfigure = true;
+  nativeBuildInputs = [ cmake pkg-config meson ninja ];
+  buildInputs = [ mpd_clientlib ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/joshkunz/ashuffle";
+    description = "Automatic library-wide shuffle for mpd";
+    maintainers = [ maintainers.tcbravo ];
+    platforms = platforms.unix;
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/audacious/default.nix b/nixpkgs/pkgs/applications/audio/audacious/default.nix
index ba000d1ffb48..c441a2f9f3f1 100644
--- a/nixpkgs/pkgs/applications/audio/audacious/default.nix
+++ b/nixpkgs/pkgs/applications/audio/audacious/default.nix
@@ -1,39 +1,40 @@
-{ stdenv, fetchurl, pkgconfig, wrapGAppsHook, gettext, glib, gtk3
-, libmowgli, dbus-glib, libxml2, xorg, gnome3, alsaLib
-, libpulseaudio, libjack2, fluidsynth, libmad, libogg, libvorbis
-, libcdio, libcddb, flac, ffmpeg_3, mpg123, libcue, libmms, libbs2b
-, libsndfile, libmodplug, libsamplerate, soxr, lirc, curl, wavpack
-, neon, faad2, lame, libnotify, libsidplayfp
+{
+  mkDerivation, lib, fetchurl, fetchpatch,
+  gettext, pkgconfig,
+  qtbase,
+  alsaLib, curl, faad2, ffmpeg, flac, fluidsynth, gdk-pixbuf, lame, libbs2b,
+  libcddb, libcdio, libcdio-paranoia, libcue, libjack2, libmad, libmms, libmodplug,
+  libmowgli, libnotify, libogg, libpulseaudio, libsamplerate, libsidplayfp,
+  libsndfile, libvorbis, libxml2, lirc, mpg123, neon, qtmultimedia, soxr,
+  wavpack, openmpt123
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "audacious";
-  version = "3.9";
+  version = "4.0.5";
 
   src = fetchurl {
-    url = "https://distfiles.audacious-media-player.org/audacious-${version}-gtk3.tar.bz2";
-    sha256 = "0dc7fg0v2l2j4h9cz1baz7rf4n0a5jgk09qvsj806sh6jp7w6ipm";
+    url = "http://distfiles.audacious-media-player.org/audacious-${version}.tar.bz2";
+    sha256 = "028zjgz0p7ys15lk2a30m5zcv9xrx3ga50wjsh4m4zxilgkakbji";
   };
-
   pluginsSrc = fetchurl {
-    url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}-gtk3.tar.bz2";
-    sha256 = "1gck37c5pnzxdhrnb1g75b5hi31s2dc952wifxns45pkdlayrmra";
+    url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}.tar.bz2";
+    sha256 = "0ny5w1agr9jaz5w3wyyxf1ygmzmd1sivaf97lcm4z4w6529520lz";
   };
 
-  nativeBuildInputs = [
-    pkgconfig wrapGAppsHook
-  ];
+  nativeBuildInputs = [ gettext pkgconfig ];
 
   buildInputs = [
-    gettext glib gtk3 libmowgli dbus-glib libxml2
-    xorg.libXcomposite gnome3.adwaita-icon-theme alsaLib libjack2
-    libpulseaudio fluidsynth libmad libogg libvorbis libcdio
-    libcddb flac ffmpeg_3 mpg123 libcue libmms libbs2b libsndfile
-    libmodplug libsamplerate soxr lirc curl wavpack neon faad2
-    lame libnotify libsidplayfp
-  ];
+    # Core dependencies
+    qtbase
 
-  configureFlags = [ "--enable-statusicon" ];
+    # Plugin dependencies
+    alsaLib curl faad2 ffmpeg flac fluidsynth gdk-pixbuf lame libbs2b libcddb
+    libcdio libcdio-paranoia libcue libjack2 libmad libmms libmodplug libmowgli
+    libnotify libogg libpulseaudio libsamplerate libsidplayfp libsndfile
+    libvorbis libxml2 lirc mpg123 neon qtmultimedia soxr wavpack
+    openmpt123
+  ];
 
   # Here we build both audacious and audacious-plugins in one
   # derivations, since they really expect to be in the same prefix.
@@ -44,10 +45,8 @@ stdenv.mkDerivation rec {
       source $stdenv/setup
       genericBuild
     )
-
     # Then build the plugins.
     (
-      dontWrapGApps=true
       nativeBuildInputs="$out $nativeBuildInputs" # to find audacious
       source $stdenv/setup
       rm -rfv audacious-*
@@ -56,12 +55,10 @@ stdenv.mkDerivation rec {
     )
   '';
 
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Audio player";
     homepage = "https://audacious-media-player.org/";
-    maintainers = with maintainers; [ eelco ramkromberg ];
+    maintainers = with maintainers; [ eelco ramkromberg ttuegel ];
     platforms = with platforms; linux;
     license = with licenses; [
       bsd2 bsd3 #https://github.com/audacious-media-player/audacious/blob/master/COPYING
diff --git a/nixpkgs/pkgs/applications/audio/audacious/qt-5.nix b/nixpkgs/pkgs/applications/audio/audacious/qt-5.nix
deleted file mode 100644
index 5c5cd65b4121..000000000000
--- a/nixpkgs/pkgs/applications/audio/audacious/qt-5.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-{
-  mkDerivation, lib, fetchurl, fetchpatch,
-  gettext, pkgconfig,
-  qtbase,
-  alsaLib, curl, faad2, ffmpeg_3, flac, fluidsynth, gdk-pixbuf, lame, libbs2b,
-  libcddb, libcdio, libcue, libjack2, libmad, libmms, libmodplug,
-  libmowgli, libnotify, libogg, libpulseaudio, libsamplerate, libsidplayfp,
-  libsndfile, libvorbis, libxml2, lirc, mpg123, neon, qtmultimedia, soxr,
-  wavpack
-}:
-
-let
-  version = "3.9";
-  sources = {
-    "audacious-${version}" = fetchurl {
-      url = "http://distfiles.audacious-media-player.org/audacious-${version}.tar.bz2";
-      sha256 = "0pmhrhsjhqnrq3zh4rhfys5jas53ph5ijkq010dxg1n779kl901d";
-    };
-
-    "audacious-plugins-${version}" = fetchurl {
-      url = "http://distfiles.audacious-media-player.org/audacious-plugins-${version}.tar.bz2";
-      sha256 = "1f17r7ar0mngcf7z41s6xh073vjafw3i7iy9ijb0cd6bi48g5xwb";
-    };
-  };
-
-  qt510_plugins_patch = fetchpatch {
-    url = "https://github.com/audacious-media-player/audacious-plugins/commit/971f7ff7c3d8a0b9b420bf4fd19ab97755607637.patch";
-    sha256 = "15fy37syj9ygl2ibkkz3g3b9wd22vk9bjfmvqhhkpxphry2zwb17";
-  };
-in
-
-mkDerivation {
-  inherit version;
-  name = "audacious-qt5-${version}";
-
-  sourceFiles = lib.attrValues sources;
-  sourceRoots = lib.attrNames sources;
-
-  nativeBuildInputs = [ gettext pkgconfig ];
-
-  inherit qt510_plugins_patch;
-
-  buildInputs = [
-    # Core dependencies
-    qtbase
-
-    # Plugin dependencies
-    alsaLib curl faad2 ffmpeg_3 flac fluidsynth gdk-pixbuf lame libbs2b libcddb
-    libcdio libcue libjack2 libmad libmms libmodplug libmowgli
-    libnotify libogg libpulseaudio libsamplerate libsidplayfp libsndfile
-    libvorbis libxml2 lirc mpg123 neon qtmultimedia soxr wavpack
-  ];
-
-  configureFlags = [ "--enable-qt" "--disable-gtk" ];
-
-  # Here we build both audacious and audacious-plugins in one
-  # derivations, since they really expect to be in the same prefix.
-  # This is slighly tricky.
-  builder = builtins.toFile "builder.sh" ''
-    sourceFiles=( $sourceFiles )
-    sourceRoots=( $sourceRoots )
-    for (( i=0 ; i < ''${#sourceFiles[*]} ; i++ )); do
-
-      (
-        # only patch the plugins
-        if [ "$i" -eq "1" ]; then
-          patches=( $qt510_plugins_patch )
-        fi
-        src=''${sourceFiles[$i]}
-        sourceRoot=''${sourceRoots[$i]}
-        source $stdenv/setup
-        genericBuild
-      )
-
-      if [ $i == 0 ]; then
-        nativeBuildInputs="$out $nativeBuildInputs"
-      fi
-
-    done
-  '';
-
-  meta = with lib; {
-    description = "Audio player";
-    homepage = "https://audacious-media-player.org/";
-    maintainers = with maintainers; [ ttuegel ];
-    platforms = with platforms; linux;
-    license = with licenses; [
-      bsd2 bsd3 #https://github.com/audacious-media-player/audacious/blob/master/COPYING
-      gpl2 gpl3 lgpl2Plus #http://redmine.audacious-media-player.org/issues/46
-    ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/audio/audacity/default.nix b/nixpkgs/pkgs/applications/audio/audacity/default.nix
index 18f2b4f67cdb..20526c8c6c56 100644
--- a/nixpkgs/pkgs/applications/audio/audacity/default.nix
+++ b/nixpkgs/pkgs/applications/audio/audacity/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Sound editor with graphical UI";
-    homepage = "http://audacityteam.org/";
+    homepage = "https://www.audacityteam.org/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ lheckemann ];
     platforms = intersectLists platforms.linux platforms.x86; # fails on ARM
diff --git a/nixpkgs/pkgs/applications/audio/axoloti/libusb1.nix b/nixpkgs/pkgs/applications/audio/axoloti/libusb1.nix
index 49b788f66537..255cf3f5e3bf 100644
--- a/nixpkgs/pkgs/applications/audio/axoloti/libusb1.nix
+++ b/nixpkgs/pkgs/applications/audio/axoloti/libusb1.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, systemd ? null, libobjc, IOKit, fetchpatch }:
+{ stdenv, lib, fetchurl, pkgconfig, systemd ? null, libobjc, IOKit, fetchpatch }:
 
 stdenv.mkDerivation rec {
   name = "libusb-1.0.19";
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
 
   preFixup = stdenv.lib.optionalString stdenv.isLinux ''
-    sed 's,-ludev,-L${systemd.lib}/lib -ludev,' -i $out/lib/libusb-1.0.la
+    sed 's,-ludev,-L${lib.getLib systemd}/lib -ludev,' -i $out/lib/libusb-1.0.la
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/audio/bambootracker/default.nix b/nixpkgs/pkgs/applications/audio/bambootracker/default.nix
new file mode 100644
index 000000000000..a26431a82edf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/bambootracker/default.nix
@@ -0,0 +1,51 @@
+{ mkDerivation
+, stdenv
+, fetchFromGitHub
+, qmake
+, qtbase
+, qtmultimedia
+, qttools
+, alsaSupport ? stdenv.hostPlatform.isLinux
+, alsaLib
+, pulseSupport ? stdenv.hostPlatform.isLinux
+, libpulseaudio
+, jackSupport ? stdenv.hostPlatform.isUnix
+, libjack2
+}:
+let
+
+  inherit (stdenv.lib) optional optionals;
+
+in
+mkDerivation rec {
+  pname = "bambootracker";
+  version = "0.4.4";
+
+  src = fetchFromGitHub {
+    owner = "rerrahkr";
+    repo = "BambooTracker";
+    rev = "v${version}";
+    sha256 = "0d0f4jqzknsiq725pvfndarfjg183f92rb0lim3wzshnsixr5vdc";
+  };
+
+  sourceRoot = "source/BambooTracker";
+
+  nativeBuildInputs = [ qmake qttools ];
+
+  buildInputs = [ qtbase qtmultimedia ]
+    ++ optional alsaSupport alsaLib
+    ++ optional pulseSupport libpulseaudio
+    ++ optional jackSupport libjack2;
+
+  qmakeFlags = [ "CONFIG+=release" "CONFIG-=debug" ]
+    ++ optional pulseSupport "CONFIG+=use_pulse"
+    ++ optionals jackSupport [ "CONFIG+=use_jack" "CONFIG+=jack_has_rename" ];
+
+  meta = with stdenv.lib; {
+    description = "A tracker for YM2608 (OPNA) which was used in NEC PC-8801/9801 series computers";
+    homepage = "https://github.com/rerrahkr/BambooTracker";
+    license = licenses.gpl2Only;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ OPNA2608 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/bchoppr/default.nix b/nixpkgs/pkgs/applications/audio/bchoppr/default.nix
new file mode 100644
index 000000000000..7d4d53408d28
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/bchoppr/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, pkg-config, cairo, libX11, lv2 }:
+
+stdenv.mkDerivation rec {
+  pname = "bchoppr";
+  version = "1.8.0";
+
+  src = fetchFromGitHub {
+    owner = "sjaehn";
+    repo = pname;
+    rev = "${version}";
+    sha256 = "1nd6byy75f0rbz9dm9drhxmpsfhxhg0y7q3v2m3098llynhy9k2j";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ cairo libX11 lv2 ];
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/sjaehn/BChoppr;
+    description = "An audio stream chopping LV2 plugin";
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.linux;
+    license = licenses.gpl3Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix b/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
index 59136596b0e1..7e5099f3c318 100644
--- a/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
+++ b/nixpkgs/pkgs/applications/audio/bitwig-studio/bitwig-studio3.nix
@@ -2,11 +2,11 @@
 
 bitwig-studio1.overrideAttrs (oldAttrs: rec {
   name = "bitwig-studio-${version}";
-  version = "3.1.3";
+  version = "3.2.7";
 
   src = fetchurl {
     url = "https://downloads.bitwig.com/stable/${version}/bitwig-studio-${version}.deb";
-    sha256 = "11z5flmp55ywgxyccj3pzhijhaggi42i2pvacg88kcpj0cin57vl";
+    sha256 = "1mj9kii4bnk5w2p18hypwy8swkpzkaqw98q5fsjq362x4qm0b3py";
   };
 
   buildInputs = oldAttrs.buildInputs ++ [ xorg.libXtst ];
diff --git a/nixpkgs/pkgs/applications/audio/bjumblr/default.nix b/nixpkgs/pkgs/applications/audio/bjumblr/default.nix
index de0cae7a21a3..e1a5bee64b30 100644
--- a/nixpkgs/pkgs/applications/audio/bjumblr/default.nix
+++ b/nixpkgs/pkgs/applications/audio/bjumblr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "BJumblr";
-  version = "0.2";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "14z8113zkwykbhm1a8h2xs972dgifvlfij92b08jckyc7cbz84ys";
+    rev = version;
+    sha256 = "0kl6hrxmqrdf0195bfnzsa2h1073fgiqrfhg2276fm1954sm994v";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/audio/bs1770gain/default.nix b/nixpkgs/pkgs/applications/audio/bs1770gain/default.nix
index 47de14ecb25c..76a789356193 100644
--- a/nixpkgs/pkgs/applications/audio/bs1770gain/default.nix
+++ b/nixpkgs/pkgs/applications/audio/bs1770gain/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ffmpeg_3, sox }:
+{ stdenv, fetchurl, ffmpeg, sox }:
 
 stdenv.mkDerivation rec {
   pname = "bs1770gain";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1p6yz5q7czyf9ard65sp4kawdlkg40cfscr3b24znymmhs3p7rbk";
   };
 
-  buildInputs = [ ffmpeg_3 sox ];
+  buildInputs = [ ffmpeg sox ];
 
   NIX_CFLAGS_COMPILE = "-Wno-error";
 
diff --git a/nixpkgs/pkgs/applications/audio/bschaffl/default.nix b/nixpkgs/pkgs/applications/audio/bschaffl/default.nix
new file mode 100644
index 000000000000..c0d11e1fe5ac
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/bschaffl/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, pkg-config, cairo, libX11, lv2 }:
+
+stdenv.mkDerivation rec {
+  pname = "bschaffl";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "sjaehn";
+    repo = pname;
+    rev = version;
+    sha256 = "1c09acqrbd387ba41f8ch1qykdap5h6cg9if5pgd16i4dmjnpghj";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ cairo libX11 lv2 ];
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/sjaehn/BSchaffl";
+    description = "Pattern-controlled MIDI amp & time stretch LV2 plugin";
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.linux;
+    license = licenses.gpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/bsequencer/default.nix b/nixpkgs/pkgs/applications/audio/bsequencer/default.nix
index bb45a846b1b8..37dcada961de 100644
--- a/nixpkgs/pkgs/applications/audio/bsequencer/default.nix
+++ b/nixpkgs/pkgs/applications/audio/bsequencer/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "BSEQuencer";
-  version = "1.4.2";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = "${version}";
-    sha256 = "1fz0p0ba00b7k7a8q9mxwj01jwl8xwh9a2npn00pbbdrg9zv4fdr";
+    sha256 = "0w21kzq695xy4i1r6xvvh7sad5m0rlmdgc7ykmrlzfsm1252dz80";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/audio/bslizr/default.nix b/nixpkgs/pkgs/applications/audio/bslizr/default.nix
index bae2407ec7b9..5a2675187c02 100644
--- a/nixpkgs/pkgs/applications/audio/bslizr/default.nix
+++ b/nixpkgs/pkgs/applications/audio/bslizr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "BSlizr";
-  version = "1.2.6";
+  version = "1.2.8";
 
   src = fetchFromGitHub {
     owner = "sjaehn";
     repo = pname;
     rev = "${version}";
-    sha256 = "1l0znwvvqd2s24c652q54pkizlh86mvmr8h0qqp9xma0i575fcrh";
+    sha256 = "1f7xrljvsy7a1p8c7wln2zhwarl3ara7gbjxkpyh47wfdpigpdb0";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/audio/cantata/default.nix b/nixpkgs/pkgs/applications/audio/cantata/default.nix
index e5d62b15f450..df19ac942288 100644
--- a/nixpkgs/pkgs/applications/audio/cantata/default.nix
+++ b/nixpkgs/pkgs/applications/audio/cantata/default.nix
@@ -1,5 +1,5 @@
 { mkDerivation, lib, fetchFromGitHub, cmake, pkgconfig
-, qtbase, qtsvg, qttools
+, qtbase, qtsvg, qttools, perl
 
 # Cantata doesn't build with cdparanoia enabled so we disable that
 # default for now until I (or someone else) figure it out.
@@ -16,7 +16,7 @@
 , withDevices ? true, udisks2
 , withDynamic ? true
 , withHttpServer ? true
-, withLibVlc ? false, vlc
+, withLibVlc ? false, libvlc
 , withStreams ? true
 }:
 
@@ -38,6 +38,8 @@ let
 
   withUdisks = (withTaglib && withDevices);
 
+  perl' = perl.withPackages (ppkgs: [ ppkgs.URI ]);
+
 in mkDerivation {
   name = "${pname}-${version}";
 
@@ -48,7 +50,18 @@ in mkDerivation {
     sha256 = "0ix7xp352bziwz31mw79y7wxxmdn6060p8ry2px243ni1lz1qx1c";
   };
 
-  buildInputs = [ qtbase qtsvg ]
+  patches = [
+    # Cantata wants to check if perl is in the PATH at runtime, but we
+    # patchShebangs the playlists scripts, making that unnecessary (perl will
+    # always be available because it's a dependency)
+    ./dont-check-for-perl-in-PATH.diff
+  ];
+
+  postPatch = ''
+    patchShebangs playlists
+  '';
+
+  buildInputs = [ qtbase qtsvg perl' ]
     ++ lib.optionals withTaglib [ taglib taglib_extras ]
     ++ lib.optionals withReplaygain [ ffmpeg_3 speex mpg123 ]
     ++ lib.optional  withHttpStream qtmultimedia
@@ -58,7 +71,7 @@ in mkDerivation {
     ++ lib.optional  withMtp libmtp
     ++ lib.optional  withMusicbrainz libmusicbrainz5
     ++ lib.optional  withUdisks udisks2
-    ++ lib.optional  withLibVlc vlc;
+    ++ lib.optional  withLibVlc libvlc;
 
   nativeBuildInputs = [ cmake pkgconfig qttools ];
 
diff --git a/nixpkgs/pkgs/applications/audio/cantata/dont-check-for-perl-in-PATH.diff b/nixpkgs/pkgs/applications/audio/cantata/dont-check-for-perl-in-PATH.diff
new file mode 100644
index 000000000000..effb0f3b502c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/cantata/dont-check-for-perl-in-PATH.diff
@@ -0,0 +1,17 @@
+diff --git a/playlists/dynamicplaylists.cpp b/playlists/dynamicplaylists.cpp
+index 07b6dce3..6a3f97c9 100644
+--- a/playlists/dynamicplaylists.cpp
++++ b/playlists/dynamicplaylists.cpp
+@@ -211,11 +211,6 @@ void DynamicPlaylists::start(const QString &name)
+         return;
+     }
+ 
+-    if (Utils::findExe("perl").isEmpty()) {
+-        emit error(tr("You need to install \"perl\" on your system in order for Cantata's dynamic mode to function."));
+-        return;
+-    }
+-
+     QString fName(Utils::dataDir(rulesDir, false)+name+constExtension);
+ 
+     if (!QFile::exists(fName)) {
+
diff --git a/nixpkgs/pkgs/applications/audio/cava/default.nix b/nixpkgs/pkgs/applications/audio/cava/default.nix
index 2bdca386bf45..26cc8cd78da3 100644
--- a/nixpkgs/pkgs/applications/audio/cava/default.nix
+++ b/nixpkgs/pkgs/applications/audio/cava/default.nix
@@ -3,7 +3,7 @@
 
 stdenv.mkDerivation rec {
   pname = "cava";
-  version = "0.6.1";
+  version = "0.7.2";
 
   buildInputs = [
     alsaLib
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     owner = "karlstav";
     repo = "cava";
     rev = version;
-    sha256 = "1kvhqgijs29909w3sq9m0bslx2zxxn4b3i07kdz4hb0dqkppxpjy";
+    sha256 = "1chc08spjf5i17n8y48aqzdxsj8vvf0r2l62ldw2pqgw60dacvs1";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/applications/audio/csound/default.nix b/nixpkgs/pkgs/applications/audio/csound/default.nix
index 4b426609fea4..d91e550334b6 100644
--- a/nixpkgs/pkgs/applications/audio/csound/default.nix
+++ b/nixpkgs/pkgs/applications/audio/csound/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   # When updating, please check if https://github.com/csound/csound/issues/1078
   # has been fixed in the new version so we can use the normal fluidsynth
   # version and remove fluidsynth 1.x from nixpkgs again.
-  version = "6.13.0";
+  version = "6.15.0";
 
   enableParallelBuilding = true;
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     owner = "csound";
     repo = "csound";
     rev = version;
-    sha256 = "14822ybqyp31z18gky2y9zadr9dkbhabg97y139py73w7v3af1bh";
+    sha256 = "1vld6v55jxvv3ddr21kh41s4cdkhnm5wpffvd097zqrqh1aq08r0";
   };
 
   cmakeFlags = [ "-DBUILD_CSOUND_AC=0" ] # fails to find Score.hpp
diff --git a/nixpkgs/pkgs/applications/audio/deadbeef/default.nix b/nixpkgs/pkgs/applications/audio/deadbeef/default.nix
index c88b884444ef..6b92d1263e33 100644
--- a/nixpkgs/pkgs/applications/audio/deadbeef/default.nix
+++ b/nixpkgs/pkgs/applications/audio/deadbeef/default.nix
@@ -59,13 +59,13 @@ assert remoteSupport -> curl != null;
 
 stdenv.mkDerivation rec {
   pname = "deadbeef";
-  version = "1.8.3";
+  version = "1.8.4";
 
   src = fetchFromGitHub {
     owner = "DeaDBeeF-Player";
     repo = "deadbeef";
     rev = version;
-    sha256 = "0n0q7zfl56gnadcqqp5rg7sbh1xvfcmp7cvmh2ax07037b346qig";
+    sha256 = "161b0ll8v4cjgwwmk137hzvh0jidlkx56vjkpnr70f0x4jzv2nll";
   };
 
   buildInputs = with stdenv.lib; [ jansson ]
diff --git a/nixpkgs/pkgs/applications/audio/dragonfly-reverb/default.nix b/nixpkgs/pkgs/applications/audio/dragonfly-reverb/default.nix
index b42929ff2040..e5cbcd4a2e20 100644
--- a/nixpkgs/pkgs/applications/audio/dragonfly-reverb/default.nix
+++ b/nixpkgs/pkgs/applications/audio/dragonfly-reverb/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dragonfly-reverb";
-  version = "3.1.1";
+  version = "3.2.1";
 
   src = fetchFromGitHub {
     owner = "michaelwillis";
     repo = "dragonfly-reverb";
     rev = version;
-    sha256 = "188cm45hr0i33m4h2irql1wrsmsfis65s706wjiid0z59q47rf9p";
+    sha256 = "0vfm2510shah67k87mdyar4wr4vqwii59y9lqfhwm6blxparkrqa";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/audio/drumkv1/default.nix b/nixpkgs/pkgs/applications/audio/drumkv1/default.nix
index 04277badfbe9..7a6acb25e802 100644
--- a/nixpkgs/pkgs/applications/audio/drumkv1/default.nix
+++ b/nixpkgs/pkgs/applications/audio/drumkv1/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "drumkv1";
-  version = "0.9.14";
+  version = "0.9.16";
 
   src = fetchurl {
     url = "mirror://sourceforge/drumkv1/${pname}-${version}.tar.gz";
-    sha256 = "0fr7pkp55zvjxf7p22drs93fsjgvqhbd55vxi0srhp2s2wzz5qak";
+    sha256 = "1r55575w9r0ifysw9mgxjvv0fszvx8ykjgim3zczf3mb5s9ngavv";
   };
 
   buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools ];
diff --git a/nixpkgs/pkgs/applications/audio/faust/faust2.nix b/nixpkgs/pkgs/applications/audio/faust/faust2.nix
index e65414b2bcab..515f8a6f9af2 100644
--- a/nixpkgs/pkgs/applications/audio/faust/faust2.nix
+++ b/nixpkgs/pkgs/applications/audio/faust/faust2.nix
@@ -20,13 +20,13 @@ with stdenv.lib.strings;
 
 let
 
-  version = "unstable-2020-06-08";
+  version = "unstable-2020-08-27";
 
   src = fetchFromGitHub {
     owner = "grame-cncm";
     repo = "faust";
-    rev = "f0037e289987818b65d3f6fb1ad943aaad2a2b28";
-    sha256 = "0h08902rgx7rhzpng4h1qw8i2nzv50f79vrlbzdk5d35wa4zibh4";
+    rev = "c10f316fa90f338e248787ebf55e3795c3a0d70e";
+    sha256 = "068pm04ddafbsj2r8akdpqyzb0m8mp9ql0rgi83hcqs4ndr8v7sb";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix b/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix
index 370c25ecd749..0f703704961a 100644
--- a/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix
+++ b/nixpkgs/pkgs/applications/audio/faust/faust2jack.nix
@@ -4,6 +4,7 @@
 , alsaLib
 , opencv2
 , libsndfile
+, which
 }:
 
 faust.wrapWithBuildEnv {
@@ -21,6 +22,7 @@ faust.wrapWithBuildEnv {
     alsaLib
     opencv2
     libsndfile
+    which
   ];
 
 }
diff --git a/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix b/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix
index a2f1c2139a1a..753208c54c25 100644
--- a/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix
+++ b/nixpkgs/pkgs/applications/audio/faust/faust2jaqt.nix
@@ -3,6 +3,7 @@
 , opencv2
 , qt4
 , libsndfile
+, alsaLib
 , which
 }:
 
@@ -20,6 +21,7 @@ faust.wrapWithBuildEnv {
     opencv2
     qt4
     libsndfile
+    alsaLib
     which
   ];
 
diff --git a/nixpkgs/pkgs/applications/audio/faust/faustlive.nix b/nixpkgs/pkgs/applications/audio/faust/faustlive.nix
index 90bd8bc60ad0..03ca4ce8eb0c 100644
--- a/nixpkgs/pkgs/applications/audio/faust/faustlive.nix
+++ b/nixpkgs/pkgs/applications/audio/faust/faustlive.nix
@@ -1,26 +1,34 @@
 { stdenv, fetchFromGitHub
 , llvm, qt48Full, qrencode, libmicrohttpd, libjack2, alsaLib, faust, curl
-, bc, coreutils, which
+, bc, coreutils, which, libsndfile, pkg-config
 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "faustlive";
-  version = "2017-12-05";
+  version = "2.5.4";
   src = fetchFromGitHub {
     owner = "grame-cncm";
     repo = "faustlive";
-    rev = "281fcb852dcd94f8c57ade1b2a7a3937542e1b2d";
-    sha256 = "0sw44yd9928rid9ib0b5mx2x129m7zljrayfm6jz6hrwdc5q3k9a";
+    rev = version;
+    sha256 = "0npn8fvq8iafyamq4wrj1k1bmk4xd0my2sp3gi5jdjfx6hc1sm3n";
+    fetchSubmodules = true;
   };
 
   buildInputs = [
     llvm qt48Full qrencode libmicrohttpd libjack2 alsaLib faust curl
-    bc coreutils which
+    bc coreutils which libsndfile pkg-config
   ];
 
   makeFlags = [ "PREFIX=$(out)" ];
 
-  preBuild = "patchShebangs Build/Linux/buildversion";
+  postPatch = "cd Build";
+
+  installPhase = ''
+    install -d "$out/bin"
+    install -d "$out/share/applications"
+    install FaustLive/FaustLive "$out/bin"
+    install rsrc/FaustLive.desktop "$out/share/applications"
+  '';
 
   meta = with stdenv.lib; {
     description = "A standalone just-in-time Faust compiler";
diff --git a/nixpkgs/pkgs/applications/audio/fdkaac/default.nix b/nixpkgs/pkgs/applications/audio/fdkaac/default.nix
index 55c0d7c597c2..8969f3a47b23 100644
--- a/nixpkgs/pkgs/applications/audio/fdkaac/default.nix
+++ b/nixpkgs/pkgs/applications/audio/fdkaac/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fdkaac";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "nu774";
     repo = pname;
-    rev = version;
-    sha256 = "16iwqmwagnb929byz8kj79pmmr0anbyv26drbavhppmxhk7rrpgh";
+    rev = "v${version}";
+    sha256 = "02mzx4bird2q5chzpavfc9pg259hwfvq6px85xarm59vmj9nryb6";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/applications/audio/flacon/default.nix b/nixpkgs/pkgs/applications/audio/flacon/default.nix
index df563bc38406..aaa0712c42fd 100644
--- a/nixpkgs/pkgs/applications/audio/flacon/default.nix
+++ b/nixpkgs/pkgs/applications/audio/flacon/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flacon";
-  version = "6.0.0";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner = "flacon";
     repo = "flacon";
     rev = "v${version}";
-    sha256 = "0p5z6rwckda0lkljrrvx6i90fazj53cxg9pasfmi8154j1z72dj2";
+    sha256 = "04yp3aym7h70xjni9ancqv5lc4zds5a8dgw3fzgqs8k5nmh074gv";
   };
 
   nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
diff --git a/nixpkgs/pkgs/applications/audio/fmit/default.nix b/nixpkgs/pkgs/applications/audio/fmit/default.nix
index 114cf5e192ff..f173d2fe02b9 100644
--- a/nixpkgs/pkgs/applications/audio/fmit/default.nix
+++ b/nixpkgs/pkgs/applications/audio/fmit/default.nix
@@ -11,13 +11,13 @@ with stdenv.lib;
 
 mkDerivation rec {
   pname = "fmit";
-  version = "1.2.13";
+  version = "1.2.14";
 
   src = fetchFromGitHub {
     owner = "gillesdegottex";
     repo = "fmit";
     rev = "v${version}";
-    sha256 = "1qyskam053pvlap1av80rgp12pzhr92rs88vqs6s0ia3ypnixcc6";
+    sha256 = "1q062pfwz2vr9hbfn29fv54ip3jqfd9r99nhpr8w7mn1csy38azx";
   };
 
   nativeBuildInputs = [ qmake itstool wrapQtAppsHook ];
diff --git a/nixpkgs/pkgs/applications/audio/foo-yc20/default.nix b/nixpkgs/pkgs/applications/audio/foo-yc20/default.nix
index 643b648fa88d..4ec69c62b1ae 100644
--- a/nixpkgs/pkgs/applications/audio/foo-yc20/default.nix
+++ b/nixpkgs/pkgs/applications/audio/foo-yc20/default.nix
@@ -18,12 +18,12 @@ stdenv.mkDerivation {
   # remove lv2 until https://github.com/sampov2/foo-yc20/issues/6 is resolved
   postInstallFixup = "rm -rf $out/lib/lv2";
 
-  meta = {
+  meta = with stdenv.lib; {
     broken = true; # see: https://github.com/sampov2/foo-yc20/issues/7
     description = "A Faust implementation of a 1969 designed Yamaha combo organ, the YC-20";
     homepage = "https://github.com/sampov2/foo-yc20";
-    license     = "BSD";
-    maintainers = [ stdenv.lib.maintainers.magnetophon ];
-    platforms = stdenv.lib.platforms.linux;
+    license     = with licenses; [ bsd3 lgpl21 mpl11 ] ;
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/freqtweak/default.nix b/nixpkgs/pkgs/applications/audio/freqtweak/default.nix
new file mode 100644
index 000000000000..046c8c8aac8a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/freqtweak/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, autoconf, automake, pkg-config, fftwFloat, libjack2, libsigcxx, libxml2, wxGTK }:
+
+stdenv.mkDerivation rec {
+  pname = "freqtweak";
+  version = "unstable-2019-08-03";
+
+  src = fetchFromGitHub {
+    owner = "essej";
+    repo = pname;
+    rev = "d4205337558d36657a4ee6b3afb29358aa18c0fd";
+    sha256 = "10cq27mdgrrc54a40al9ahi0wqd0p2c1wxbdg518q8pzfxaxs5fi";
+  };
+
+  nativeBuildInputs = [ autoconf automake pkg-config ];
+  buildInputs = [ fftwFloat libjack2 libsigcxx libxml2 wxGTK ];
+
+  preConfigure = ''
+    sh autogen.sh
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = http://essej.net/freqtweak/;
+    description = "Realtime audio frequency spectral manipulation";
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.linux;
+    license = licenses.gpl2Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/friture/default.nix b/nixpkgs/pkgs/applications/audio/friture/default.nix
index eae4b6516858..b93ad14f55ee 100644
--- a/nixpkgs/pkgs/applications/audio/friture/default.nix
+++ b/nixpkgs/pkgs/applications/audio/friture/default.nix
@@ -4,30 +4,32 @@ let
   py = python3Packages;
 in py.buildPythonApplication rec {
   pname = "friture";
-  version = "0.37";
+  version = "unstable-2020-02-16";
 
   src = fetchFromGitHub {
     owner = "tlecomte";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "1ivy5qfd90w1s1icsphvvdnnqz563v3fhg5pws2zn4483cgnzc2y";
+    rev = "4460b4e72a9c55310d6438f294424b5be74fc0aa";
+    sha256 = "1pmxzq78ibifby3gbir1ah30mgsqv0y7zladf5qf3sl5r1as0yym";
   };
 
-  # module imports scipy.misc.factorial, but it has been removed since scipy
-  # 1.3.0; use scipy.special.factorial instead
-  patches = [ ./factorial.patch ];
-
   nativeBuildInputs = (with py; [ numpy cython scipy ]) ++
     [ wrapQtAppsHook ];
 
   propagatedBuildInputs = with py; [
     sounddevice
     pyopengl
+    pyopengl-accelerate
     docutils
     numpy
     pyqt5
     appdirs
     pyrr
+    rtmixer
+  ];
+
+  patches = [
+    ./unlock_constraints.patch
   ];
 
   postFixup = ''
diff --git a/nixpkgs/pkgs/applications/audio/friture/unlock_constraints.patch b/nixpkgs/pkgs/applications/audio/friture/unlock_constraints.patch
new file mode 100644
index 000000000000..ab53f948a485
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/friture/unlock_constraints.patch
@@ -0,0 +1,34 @@
+diff --git a/setup.py b/setup.py
+index f31eeec..ac0927b 100644
+--- a/setup.py
++++ b/setup.py
+@@ -50,19 +50,19 @@ ext_modules = [LateIncludeExtension("friture_extensions.exp_smoothing_conv",
+ # these will be installed when calling 'pip install friture'
+ # they are also retrieved by 'requirements.txt'
+ install_requires = [
+-    "sounddevice==0.3.14",
+-    "rtmixer==0.1.0",
+-    "PyOpenGL==3.1.4",
+-    "PyOpenGL-accelerate==3.1.4",
+-    "docutils==0.15.2",
+-    "numpy==1.17.4",
+-    "PyQt5==5.13.2",
+-    "appdirs==1.4.3",
+-    "pyrr==0.10.3",
++    "sounddevice>=0.3.14",
++    "rtmixer>=0.1.0",
++    "PyOpenGL>=3.1.4",
++    "PyOpenGL-accelerate>=3.1.4",
++    "docutils>=0.15.2",
++    "numpy>=1.17.4",
++    "PyQt5>=5.13.2",
++    "appdirs>=1.4.3",
++    "pyrr>=0.10.3",
+ ]
+ 
+ # Cython and numpy are needed when running setup.py, to build extensions
+-setup_requires=["numpy==1.17.4", "Cython==0.29.14"]
++setup_requires=["numpy>=1.17.4", "Cython>=0.29.14"]
+ 
+ with open(join(dirname(__file__), 'README.rst')) as f:
+     long_description = f.read()
diff --git a/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix b/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix
index acf373fc41af..aa4f12268916 100644
--- a/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ft2-clone/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ft2-clone";
-  version = "1.25_fix";
+  version = "1.31";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "ft2-clone";
     rev = "v${version}";
-    sha256 = "0q2mcp3xpgwilmiwzr9nnxlyg9c1kynh6cxzlyd95n520j00s6i7";
+    sha256 = "02j876d4xmbdmqairrs5190dzdm3k4s5hi3g9wvx62cxnnw7igha";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/audio/fverb/default.nix b/nixpkgs/pkgs/applications/audio/fverb/default.nix
new file mode 100644
index 000000000000..289553795743
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/fverb/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "fverb";
+  # no release yet: https://github.com/jpcima/fverb/issues/2
+  version = "unstable-2020-06-09";
+
+  src = fetchFromGitHub {
+    owner = "jpcima";
+    repo = pname;
+    rev = "462020e33e24c0204a375dc95e2c28654cc917b8";
+    sha256 = "12nl7qn7mnykk7v8q0j2n8kfq0xc46n0i45z6qcywspadwnncmd4";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  postPatch = ''
+    patchShebangs ./dpf/utils/generate-ttl.sh
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A stereo variant of the reverberator by Jon Dattorro, for lv2";
+    homepage = "https://github.com/jpcima/fverb";
+    license = licenses.bsd2;
+    maintainers = [ maintainers.magnetophon ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/geonkick/default.nix b/nixpkgs/pkgs/applications/audio/geonkick/default.nix
new file mode 100644
index 000000000000..e32bef008d99
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/geonkick/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitLab, cmake, pkg-config, redkite, libsndfile, rapidjson, libjack2, lv2, libX11, cairo }:
+
+stdenv.mkDerivation rec {
+  pname = "geonkick";
+  version = "2.3.8";
+
+  src = fetchFromGitLab {
+    owner = "iurie-sw";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "07809yy2q7dd6fcp0yndlg1vw2ca2zisnsplb3xrxvzdvrqlw910";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [ redkite libsndfile rapidjson libjack2 lv2 libX11 cairo ];
+
+  # https://github.com/iurie-sw/geonkick/issues/120
+  cmakeFlags = [ "-DGKICK_REDKITE_SDK_PATH=${redkite}" "-DCMAKE_INSTALL_LIBDIR=lib" ];
+
+  meta = {
+    homepage = "https://gitlab.com/iurie-sw/geonkick";
+    description = "A free software percussion synthesizer";
+    license = stdenv.lib.licenses.gpl3Plus;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/giada/default.nix b/nixpkgs/pkgs/applications/audio/giada/default.nix
index fcf4d0b86520..1408deba97d3 100644
--- a/nixpkgs/pkgs/applications/audio/giada/default.nix
+++ b/nixpkgs/pkgs/applications/audio/giada/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "giada";
-  version = "0.16.2.2";
+  version = "0.16.4";
 
   src = fetchFromGitHub {
     owner = "monocasual";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0rpg5qmw3b76xcra869shb8fwk5wfzpzw216n96hxa5s6k69cm0p";
+    sha256 = "0qyx0bvivlvly0vj5nnnbiks22xh13sqlw4mfgplq2lbbpgisigp";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix b/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
index d5bec0c09e5f..c7df55118c7a 100644
--- a/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
+++ b/nixpkgs/pkgs/applications/audio/gnome-podcasts/default.nix
@@ -20,7 +20,7 @@
 }:
 
 rustPlatform.buildRustPackage rec {
-  version = "0.4.7";
+  version = "0.4.8";
   pname = "gnome-podcasts";
 
   src = fetchFromGitLab {
@@ -28,10 +28,10 @@ rustPlatform.buildRustPackage rec {
     owner = "World";
     repo = "podcasts";
     rev = version;
-    sha256 = "0vy5i77bv8c22ldhrnr4z6kx22zqnb1lg3s7y8673bqjgd7dppi0";
+    sha256 = "0y2332zjq7vf1v38wzwz98fs19vpzy9kl7y0xbdzqr303l59hjb1";
   };
 
-  cargoSha256 = "1dlbdxsf9p2jzrsclm43k95y8m3zcd41qd9ajg1ii3fpnahi58kd";
+  cargoSha256 = "1jbii9k4bkrivdk1ffr6556q1sgk9j4jbzwnn8vbxmksyl1x328q";
 
   nativeBuildInputs = [
     meson
diff --git a/nixpkgs/pkgs/applications/audio/gpodder/default.nix b/nixpkgs/pkgs/applications/audio/gpodder/default.nix
index 933c9ac02035..4a21868f0972 100644
--- a/nixpkgs/pkgs/applications/audio/gpodder/default.nix
+++ b/nixpkgs/pkgs/applications/audio/gpodder/default.nix
@@ -5,14 +5,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "gpodder";
-  version = "3.10.15";
+  version = "3.10.16";
   format = "other";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "0ghbanj142n0hgydzfjmnkdgri2kswsjal3mn10c723kih4ir4yr";
+    sha256 = "0pbpaasd7kj6y25nm45y1qyb9sxd4570f7g6zkfcpf6pa3nx7qkq";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/audio/gspeech/default.nix b/nixpkgs/pkgs/applications/audio/gspeech/default.nix
index f51eb338d286..920c06038fe3 100644
--- a/nixpkgs/pkgs/applications/audio/gspeech/default.nix
+++ b/nixpkgs/pkgs/applications/audio/gspeech/default.nix
@@ -20,13 +20,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gSpeech";
-  version = "0.9.2";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "mothsart";
     repo = pname;
     rev = version;
-    sha256 = "11pvdpb9jjssp8nmlj21gs7ncgfm89kw26mfc8c2x8w2q4h92ja3";
+    sha256 = "1i0jwgxcn94nsi7c0ad0w77y04g04ka2szijzfqzqfnacdmdyrfc";
   };
 
   nativeBuildInputs = [
@@ -56,8 +56,8 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   postFixup = ''
-    wrapProgram $out/bin/gspeech --prefix PATH : ${lib.makeBinPath [ picotts ]}
-    wrapProgram $out/bin/gspeech-cli --prefix PATH : ${lib.makeBinPath [ picotts ]}
+    wrapProgram $out/bin/gspeech --prefix PATH : ${lib.makeBinPath [ picotts sox ]}
+    wrapProgram $out/bin/gspeech-cli --prefix PATH : ${lib.makeBinPath [ picotts sox ]}
   '';
 
   strictDeps = false;
diff --git a/nixpkgs/pkgs/applications/audio/guitarix/default.nix b/nixpkgs/pkgs/applications/audio/guitarix/default.nix
index 9b8475006ccf..d74f1c8728f5 100644
--- a/nixpkgs/pkgs/applications/audio/guitarix/default.nix
+++ b/nixpkgs/pkgs/applications/audio/guitarix/default.nix
@@ -42,16 +42,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "guitarix";
-  version = "0.40.0";
+  version = "0.41.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/guitarix/guitarix2-${version}.tar.xz";
-    sha256 = "0q9050499hcj19hvbxb069vxh5yclawjg04vryh46lxm4sfy9g57";
+    sha256 = "0qsfbyrrpb3bbdyq68k28mjql7kglxh8nqcw9jvja28x6x9ik5a0";
   };
 
-  # see: https://sourceforge.net/p/guitarix/bugs/105
-  patches = [ ./fix-build.patch ];
-
   nativeBuildInputs = [
     gettext
     hicolor-icon-theme
@@ -101,8 +98,6 @@ stdenv.mkDerivation rec {
     "--no-desktop-update"
     "--enable-nls"
     "--install-roboto-font"
-    "--includeresampler"
-    "--includeconvolver"
   ] ++ optional optimizationSupport "--optimization";
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/audio/guitarix/fix-build.patch b/nixpkgs/pkgs/applications/audio/guitarix/fix-build.patch
deleted file mode 100644
index 4a0e42677765..000000000000
--- a/nixpkgs/pkgs/applications/audio/guitarix/fix-build.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/LV2/xputty/xfilepicker.cpp
-+++ b/src/LV2/xputty/xfilepicker.cpp
-@@ -191,6 +191,6 @@
-     filepicker->selected_file = NULL;
-     filepicker->path = NULL;
-     filepicker->filter = NULL;
--    asprintf(&filepicker->path, path);
-+    asprintf(&filepicker->path, "%s", path);
-     assert(filepicker->path != NULL);
- }
diff --git a/nixpkgs/pkgs/applications/audio/gwc/default.nix b/nixpkgs/pkgs/applications/audio/gwc/default.nix
new file mode 100644
index 000000000000..d9631ac45e6b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/gwc/default.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, pkg-config
+, alsaLib
+, libpulseaudio
+, gtk2
+, hicolor-icon-theme
+, libsndfile
+, fftw
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gwc";
+  version = "0.22-04";
+
+  src = fetchFromGitHub {
+    owner = "AlisterH";
+    repo = pname;
+    rev = version;
+    sha256 = "0xvfra32dchnnyf9kj5s5xmqhln8jdrc9f0040hjr2dsb58y206p";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    alsaLib
+    libpulseaudio
+    gtk2
+    hicolor-icon-theme
+    libsndfile
+    fftw
+  ];
+
+  enableParallelBuilding = false; # Fails to generate machine.h in time.
+
+  meta = with stdenv.lib; {
+    description = "GUI application for removing noise (hiss, pops and clicks) from audio files";
+    homepage = "https://github.com/AlisterH/gwc/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ magnetophon ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/gxplugins-lv2/default.nix b/nixpkgs/pkgs/applications/audio/gxplugins-lv2/default.nix
index 077bb407020e..fa80611fc280 100644
--- a/nixpkgs/pkgs/applications/audio/gxplugins-lv2/default.nix
+++ b/nixpkgs/pkgs/applications/audio/gxplugins-lv2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "GxPlugins.lv2";
-  version = "0.7";
+  version = "0.8";
 
   src = fetchFromGitHub {
     owner = "brummer10";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0jqdqnkg7pg9plcbxy49p7gcs1aj6h0xf7y9gndmjmkw5yjn2940";
+    sha256 = "11iv7bwvvspm74pisqvcpsxpg9xi6b08hq4i8q67mri4mvy9hmal";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/audio/helm/default.nix b/nixpkgs/pkgs/applications/audio/helm/default.nix
index 8459967a363c..145ba68b08b1 100644
--- a/nixpkgs/pkgs/applications/audio/helm/default.nix
+++ b/nixpkgs/pkgs/applications/audio/helm/default.nix
@@ -1,5 +1,16 @@
-{ stdenv, fetchFromGitHub , xorg, freetype, alsaLib, curl, libjack2
-, lv2, pkgconfig, libGLU, libGL }:
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, xorg
+, freetype
+, alsaLib
+, curl
+, libjack2
+, lv2
+, pkgconfig
+, libGLU
+, libGL
+}:
 
   stdenv.mkDerivation {
   version = "0.9.0";
@@ -20,7 +31,15 @@
 
   CXXFLAGS = "-DHAVE_LROUND";
 
-  patchPhase = ''
+  patches = [
+    # gcc9 compatibility https://github.com/mtytel/helm/pull/233
+    (fetchpatch {
+      url = "https://github.com/mtytel/helm/commit/cb611a80bd5a36d31bfc31212ebbf79aa86c6f08.patch";
+      sha256 = "1i2289srcfz17c3zzab6f51aznzdj62kk53l4afr32bkjh9s4ixk";
+    })
+  ];
+
+  prePatch = ''
     sed -i 's|usr/||g' Makefile
   '';
 
diff --git a/nixpkgs/pkgs/applications/audio/hydrogen/0.nix b/nixpkgs/pkgs/applications/audio/hydrogen/0.nix
new file mode 100644
index 000000000000..b3aff4e4c509
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/hydrogen/0.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, pkgconfig, cmake
+, alsaLib, boost, glib, lash, libjack2, libarchive, libsndfile, lrdf, qt4
+}:
+
+stdenv.mkDerivation rec {
+  version = "0.9.7";
+  pname = "hydrogen";
+
+  src = fetchurl {
+    url = "https://github.com/hydrogen-music/hydrogen/archive/${version}.tar.gz";
+    sha256 = "1dy2jfkdw0nchars4xi4isrz66fqn53a9qk13bqza7lhmsg3s3qy";
+  };
+
+  nativeBuildInputs = [ pkgconfig cmake ];
+  buildInputs = [
+    alsaLib boost glib lash libjack2 libarchive libsndfile lrdf qt4
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Advanced drum machine";
+    homepage = "http://www.hydrogen-music.org";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/hydrogen/default.nix b/nixpkgs/pkgs/applications/audio/hydrogen/default.nix
index b3aff4e4c509..c6d307e2c163 100644
--- a/nixpkgs/pkgs/applications/audio/hydrogen/default.nix
+++ b/nixpkgs/pkgs/applications/audio/hydrogen/default.nix
@@ -1,19 +1,27 @@
-{ stdenv, fetchurl, pkgconfig, cmake
-, alsaLib, boost, glib, lash, libjack2, libarchive, libsndfile, lrdf, qt4
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, wrapQtAppsHook
+, alsaLib, ladspa-sdk, lash, libarchive, libjack2, liblo, libpulseaudio, libsndfile, lrdf
+, qtbase, qttools, qtxmlpatterns
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.7";
   pname = "hydrogen";
+  version = "1.0.1";
 
-  src = fetchurl {
-    url = "https://github.com/hydrogen-music/hydrogen/archive/${version}.tar.gz";
-    sha256 = "1dy2jfkdw0nchars4xi4isrz66fqn53a9qk13bqza7lhmsg3s3qy";
+  src = fetchFromGitHub {
+    owner = "hydrogen-music";
+    repo = pname;
+    rev = version;
+    sha256 = "0snljpvbcgikhz610c325dgvayi0k512p3bglck9vvi90wsqx7l1";
   };
 
-  nativeBuildInputs = [ pkgconfig cmake ];
+  nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
   buildInputs = [
-    alsaLib boost glib lash libjack2 libarchive libsndfile lrdf qt4
+    alsaLib ladspa-sdk lash libarchive libjack2 liblo libpulseaudio libsndfile lrdf
+    qtbase qttools qtxmlpatterns
+  ];
+
+  cmakeFlags = [
+    "-DWANT_DEBUG=OFF"
   ];
 
   meta = with stdenv.lib; {
@@ -21,6 +29,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.hydrogen-music.org";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = [ maintainers.goibhniu ];
+    maintainers = with maintainers; [ goibhniu orivej ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/hydrogen/unstable.nix b/nixpkgs/pkgs/applications/audio/hydrogen/unstable.nix
deleted file mode 100644
index 2f220f8d31aa..000000000000
--- a/nixpkgs/pkgs/applications/audio/hydrogen/unstable.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig, wrapQtAppsHook
-, alsaLib, ladspa-sdk, lash, libarchive, libjack2, liblo, libpulseaudio, libsndfile, lrdf
-, qtbase, qttools, qtxmlpatterns
-}:
-
-stdenv.mkDerivation rec {
-  pname = "hydrogen";
-  version = "1.0.0-beta2";
-
-  src = fetchFromGitHub {
-    owner = "hydrogen-music";
-    repo = pname;
-    rev = version;
-    sha256 = "1s3jrdyjpm92flw9mkkxchnj0wz8nn1y1kifii8ws252iiqjya4a";
-  };
-
-  nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
-  buildInputs = [
-    alsaLib ladspa-sdk lash libarchive libjack2 liblo libpulseaudio libsndfile lrdf
-    qtbase qttools qtxmlpatterns
-  ];
-
-  cmakeFlags = [
-    "-DWANT_DEBUG=OFF"
-  ];
-
-  meta = with stdenv.lib; {
-    description = "Advanced drum machine";
-    homepage = "http://www.hydrogen-music.org";
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ goibhniu orivej ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/audio/industrializer/default.nix b/nixpkgs/pkgs/applications/audio/industrializer/default.nix
new file mode 100644
index 000000000000..593458506d8c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/industrializer/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, fetchurl
+, alsaLib
+, audiofile
+, autoconf
+, automake
+, gnome2
+, gtk2
+, libjack2
+, libtool
+, libxml2
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "industrializer";
+  version = "0.2.6";
+  src = fetchurl {
+    url = "mirror://sourceforge/project/${pname}/ps${pname}-${version}.tar.bz2";
+    sha256 = "0vls94hqpkk8h17da6fddgqbl5dgm6250av3raimhhzwvm5r1gfi";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [
+    alsaLib
+    audiofile
+    autoconf
+    automake
+    gnome2.gtkglext
+    gtk2
+    libjack2
+    libtool
+    libxml2
+  ];
+
+  preConfigure = "./autogen.sh";
+
+  meta = {
+    description = "This program generates synthesized percussion sounds using physical modelling";
+    longDescription = ''
+      The range of sounds possible include but is not limited to cymbal sounds, metallic noises, bubbly sounds, and chimes.
+      After a sound is rendered, it can be played and then saved to a .WAV file.
+    '';
+    homepage = "https://sourceforge.net/projects/industrializer/";
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/jackmix/default.nix b/nixpkgs/pkgs/applications/audio/jackmix/default.nix
index c3a46439ba70..405217675a3e 100644
--- a/nixpkgs/pkgs/applications/audio/jackmix/default.nix
+++ b/nixpkgs/pkgs/applications/audio/jackmix/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, scons, qt4, lash, libjack2, jack ? libjack2 }:
+{ stdenv, fetchurl, pkgconfig, sconsPackages, qt4, lash, libjack2, jack ? libjack2, alsaLib }:
 
 stdenv.mkDerivation {
   name = "jackmix-0.5.2";
@@ -9,11 +9,12 @@ stdenv.mkDerivation {
 
   patches = [ ./no_error.patch ];
 
-  nativeBuildInputs = [ scons.py2 pkgconfig ];
+  nativeBuildInputs = [ sconsPackages.scons_3_1_2 pkgconfig ];
   buildInputs = [
     qt4
     lash
     jack
+    alsaLib
   ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/audio/jalv/default.nix b/nixpkgs/pkgs/applications/audio/jalv/default.nix
index bbf66a74bc50..39f1467138db 100644
--- a/nixpkgs/pkgs/applications/audio/jalv/default.nix
+++ b/nixpkgs/pkgs/applications/audio/jalv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gtk3, libjack2, lilv, lv2, pkgconfig, python
+{ stdenv, fetchurl, gtk2, libjack2, lilv, lv2, pkgconfig, python
 , serd, sord , sratom, suil, wafHook }:
 
 stdenv.mkDerivation  rec {
@@ -12,7 +12,7 @@ stdenv.mkDerivation  rec {
 
   nativeBuildInputs = [ pkgconfig wafHook ];
   buildInputs = [
-    gtk3 libjack2 lilv lv2 python serd sord sratom suil
+    gtk2 libjack2 lilv lv2 python serd sord sratom suil
   ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/audio/jamulus/default.nix b/nixpkgs/pkgs/applications/audio/jamulus/default.nix
index 498d980676d7..7a5887d4f92b 100644
--- a/nixpkgs/pkgs/applications/audio/jamulus/default.nix
+++ b/nixpkgs/pkgs/applications/audio/jamulus/default.nix
@@ -3,12 +3,12 @@
 
 mkDerivation rec {
   pname = "jamulus";
-  version = "3.5.6";
+  version = "3.5.10";
   src = fetchFromGitHub {
     owner = "corrados";
     repo = "jamulus";
     rev = "r${stdenv.lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "00vd6kffsf3vqfwaxjvln63x3n0q32f385qc51fn5iyj54410x0f";
+    sha256 = "0bw2v40csjmlkvkhr3dh0g1a7mfqrs1xkqjsii61yfzy2ckbsi82";
   };
 
   nativeBuildInputs = [ pkg-config qmake ];
diff --git a/nixpkgs/pkgs/applications/audio/kapitonov-plugins-pack/default.nix b/nixpkgs/pkgs/applications/audio/kapitonov-plugins-pack/default.nix
new file mode 100644
index 000000000000..53b55332f5d9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/kapitonov-plugins-pack/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, faust, meson, ninja, pkg-config
+, boost, cairo, fftw, gnome3, ladspa-sdk, libxcb, lv2, xcbutilwm
+, zita-convolver, zita-resampler
+ }:
+
+stdenv.mkDerivation rec {
+  pname = "kapitonov-plugins-pack";
+  version = "1.2.1";
+
+  src = fetchFromGitHub {
+    owner = "olegkapitonov";
+    repo = pname;
+    rev = version;
+    sha256 = "1mxi7b1vrzg25x85lqk8c77iziqrqyz18mqkfjlz09sxp5wfs9w4";
+  };
+
+  nativeBuildInputs = [
+    faust
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    boost
+    cairo
+    fftw
+    ladspa-sdk
+    libxcb
+    lv2
+    xcbutilwm
+    zita-convolver
+    zita-resampler
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Set of LADSPA and LV2 plugins for guitar sound processing";
+    homepage = https://github.com/olegkapitonov/Kapitonov-Plugins-Pack;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ magnetophon ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/kmetronome/default.nix b/nixpkgs/pkgs/applications/audio/kmetronome/default.nix
new file mode 100644
index 000000000000..30a4d5f3684a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/kmetronome/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchurl, cmake, pkgconfig, qttools, alsaLib, drumstick, qtbase, qtsvg }:
+
+stdenv.mkDerivation rec {
+  pname = "kmetronome";
+  version = "1.0.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}.tar.bz2";
+    sha256 = "0bzm6vzlm32kjrgn1nvp096b2d41ybys2sk145nhy992wg56v32s";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig qttools ];
+
+  buildInputs = [ alsaLib drumstick qtbase qtsvg ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://kmetronome.sourceforge.io/";
+    description = "ALSA MIDI metronome with Qt interface";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ orivej ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/librespot/cargo-lock.patch b/nixpkgs/pkgs/applications/audio/librespot/cargo-lock.patch
new file mode 100644
index 000000000000..129ba96987ab
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/librespot/cargo-lock.patch
@@ -0,0 +1,137 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index 533b47d..9c9c2f6 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -932,7 +932,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "librespot"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+  "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+  "env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -940,12 +940,12 @@ dependencies = [
+  "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
+  "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+  "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-audio 0.1.2",
+- "librespot-connect 0.1.2",
+- "librespot-core 0.1.2",
+- "librespot-metadata 0.1.2",
+- "librespot-playback 0.1.2",
+- "librespot-protocol 0.1.2",
++ "librespot-audio 0.1.3",
++ "librespot-connect 0.1.3",
++ "librespot-core 0.1.3",
++ "librespot-metadata 0.1.3",
++ "librespot-playback 0.1.3",
++ "librespot-protocol 0.1.3",
+  "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+  "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+  "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -961,7 +961,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "librespot-audio"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+  "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+  "bit-set 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -969,7 +969,7 @@ dependencies = [
+  "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
+  "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+  "lewton 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-core 0.1.2",
++ "librespot-core 0.1.3",
+  "librespot-tremor 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+  "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+  "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -980,7 +980,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "librespot-connect"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+  "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+  "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -990,9 +990,9 @@ dependencies = [
+  "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
+  "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
+  "libmdns 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-core 0.1.2",
+- "librespot-playback 0.1.2",
+- "librespot-protocol 0.1.2",
++ "librespot-core 0.1.3",
++ "librespot-playback 0.1.3",
++ "librespot-protocol 0.1.3",
+  "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+  "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+  "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1007,7 +1007,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "librespot-core"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+  "aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+  "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1020,7 +1020,7 @@ dependencies = [
+  "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)",
+  "hyper-proxy 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
+  "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-protocol 0.1.2",
++ "librespot-protocol 0.1.3",
+  "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+  "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
+  "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1043,12 +1043,12 @@ dependencies = [
+ 
+ [[package]]
+ name = "librespot-metadata"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+  "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+  "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-core 0.1.2",
+- "librespot-protocol 0.1.2",
++ "librespot-core 0.1.3",
++ "librespot-protocol 0.1.3",
+  "linear-map 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
+  "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+  "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1056,7 +1056,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "librespot-playback"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+  "alsa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
+  "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1068,9 +1068,9 @@ dependencies = [
+  "jack 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)",
+  "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)",
+  "libpulse-sys 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+- "librespot-audio 0.1.2",
+- "librespot-core 0.1.2",
+- "librespot-metadata 0.1.2",
++ "librespot-audio 0.1.3",
++ "librespot-core 0.1.3",
++ "librespot-metadata 0.1.3",
+  "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
+  "portaudio-rs 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
+  "rodio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -1081,7 +1081,7 @@ dependencies = [
+ 
+ [[package]]
+ name = "librespot-protocol"
+-version = "0.1.2"
++version = "0.1.3"
+ dependencies = [
+  "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
+  "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/nixpkgs/pkgs/applications/audio/librespot/default.nix b/nixpkgs/pkgs/applications/audio/librespot/default.nix
new file mode 100644
index 000000000000..6061edac0250
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/librespot/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchFromGitHub, rustPlatform, pkgconfig, openssl, withRodio ? true
+, withALSA ? true, alsaLib ? null, withPulseAudio ? false, libpulseaudio ? null
+, withPortAudio ? false, portaudio ? null }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "librespot";
+  version = "0.1.3";
+
+  src = fetchFromGitHub {
+    owner = "librespot-org";
+    repo = "librespot";
+    rev = "v${version}";
+    sha256 = "1ixh47yvaamrpzagqsiimc3y6bi4nbym95843d23am55zkrgnmy5";
+  };
+
+  cargoSha256 = "1csls8kzzx28ng6w9vdwhnnav5sqp2m5fj430db5z306xh5acg3d";
+
+  cargoPatches = [ ./cargo-lock.patch ];
+
+  cargoBuildFlags = with stdenv.lib; [
+    "--no-default-features"
+    "--features"
+    (concatStringsSep "," (filter (x: x != "") [
+      (optionalString withRodio "rodio-backend")
+      (optionalString withALSA "alsa-backend")
+      (optionalString withPulseAudio "pulseaudio-backend")
+      (optionalString withPortAudio "portaudio-backend")
+
+    ]))
+  ];
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ openssl ] ++ stdenv.lib.optional withALSA alsaLib
+    ++ stdenv.lib.optional withPulseAudio libpulseaudio
+    ++ stdenv.lib.optional withPortAudio portaudio;
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Open Source Spotify client library and playback daemon";
+    homepage = "https://github.com/librespot-org/librespot";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ bennofs ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/lingot/default.nix b/nixpkgs/pkgs/applications/audio/lingot/default.nix
index 256f5766c410..f229e15871e6 100644
--- a/nixpkgs/pkgs/applications/audio/lingot/default.nix
+++ b/nixpkgs/pkgs/applications/audio/lingot/default.nix
@@ -5,8 +5,10 @@
 , gtk3
 , wrapGAppsHook
 , alsaLib
+, libjack2
 , libpulseaudio
 , fftw
+, jackSupport ? true
 }:
 
 stdenv.mkDerivation rec {
@@ -29,11 +31,9 @@ stdenv.mkDerivation rec {
     alsaLib
     libpulseaudio
     fftw
-  ];
+  ] ++ stdenv.lib.optional jackSupport libjack2;
 
-  configureFlags = [
-    "--disable-jack"
-  ];
+  configureFlags = stdenv.lib.optional (!jackSupport) "--disable-jack";
 
   meta = {
     description = "Not a Guitar-Only tuner";
diff --git a/nixpkgs/pkgs/applications/audio/littlegptracker/0001-Remove-coherency-checks.patch b/nixpkgs/pkgs/applications/audio/littlegptracker/0001-Remove-coherency-checks.patch
new file mode 100644
index 000000000000..3cabd2a2c56c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/littlegptracker/0001-Remove-coherency-checks.patch
@@ -0,0 +1,52 @@
+From 2e1e9b3ffce9d1069fca0b27b8011f85c7547c3b Mon Sep 17 00:00:00 2001
+From: Francesco Gazzetta <fgaz@fgaz.me>
+Date: Wed, 19 Aug 2020 15:06:19 +0200
+Subject: [PATCH 1/2] Remove coherency checks >:)
+
+As far as I can see, they are just to make sure that the types can fit
+in the word length, but this check was written when 64 bits weren't a
+possibility and didn't take that into account,
+so although the types do fit, the checks fail.
+Indeed, the program seems to work well on 64 bits.
+More info here:
+https://github.com/Mdashdotdashn/LittleGPTracker/issues/4
+---
+ sources/Externals/Soundfont/DATATYPE.H | 22 ----------------------
+ 1 file changed, 22 deletions(-)
+
+diff --git a/sources/Externals/Soundfont/DATATYPE.H b/sources/Externals/Soundfont/DATATYPE.H
+index 762a724..f6b031f 100644
+--- a/sources/Externals/Soundfont/DATATYPE.H
++++ b/sources/Externals/Soundfont/DATATYPE.H
+@@ -123,28 +123,6 @@ typedef short               SHORT;     /* 16 bit signed value was: INT */
+ ********************************************************************/
+ typedef unsigned short        EMUSTAT;
+ 
+-/********************************************************************
+-* Compare <limits.h> values with SoundFont Enabler limits.  Fail compile
+-* if discrepency. If compile fails due to one of these errors, then
+-* the SoundFont enabler will not work with your system or the state of your
+-* development environment.
+-********************************************************************/
+-#if (SCHAR_MAX != CHAR_MAXVAL) || (UCHAR_MAX != BYTE_MAXVAL)
+-  #error <datatype.h>: char is out of range!
+-#endif
+-
+-#if (SHRT_MAX != SHRT_MAXVAL)
+-  #error <datatype.h>: short is out of range!
+-#endif
+-
+-#if (LONG_MAX != LONG_MAXVAL)
+-  #error <datatype.h>: long is out of range!
+-#endif
+-
+-#if (ULONG_MAX != DWORD_MAXVAL)
+-  #error <datatype.h>: unsigned long is out of range!
+-#endif
+-
+ #ifdef __BYTE_COHERENT
+ 
+ /********************************************************************
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/applications/audio/littlegptracker/0002-Set-the-initial-directory-to-the-current-directory.patch b/nixpkgs/pkgs/applications/audio/littlegptracker/0002-Set-the-initial-directory-to-the-current-directory.patch
new file mode 100644
index 000000000000..3e1c822be2ae
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/littlegptracker/0002-Set-the-initial-directory-to-the-current-directory.patch
@@ -0,0 +1,27 @@
+From c3865405ca707e3284a81709577d85ce2b3db72c Mon Sep 17 00:00:00 2001
+From: Francesco Gazzetta <fgaz@fgaz.me>
+Date: Wed, 19 Aug 2020 15:06:58 +0200
+Subject: [PATCH 2/2] Set the initial directory to the current directory
+
+otherwise the user has to navigate from the nix store, which makes the program
+crash due to its size
+---
+ sources/Adapters/DEB/System/DEBSystem.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sources/Adapters/DEB/System/DEBSystem.cpp b/sources/Adapters/DEB/System/DEBSystem.cpp
+index 6e86693..65d2cdd 100644
+--- a/sources/Adapters/DEB/System/DEBSystem.cpp
++++ b/sources/Adapters/DEB/System/DEBSystem.cpp
+@@ -54,7 +54,7 @@ void DEBSystem::Boot(int argc,char **argv) {
+ 	}
+ 	Path::SetAlias("bin",dirname(buff)) ;
+ 
+-	Path::SetAlias("root","bin:..") ;
++	Path::SetAlias("root",".") ;
+ 
+ #ifdef _DEBUG
+   Trace::GetInstance()->SetLogger(*(new StdOutLogger()));
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/applications/audio/littlegptracker/default.nix b/nixpkgs/pkgs/applications/audio/littlegptracker/default.nix
new file mode 100644
index 000000000000..91d709687949
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/littlegptracker/default.nix
@@ -0,0 +1,72 @@
+{ stdenv
+, fetchFromGitHub
+, SDL
+, jack2
+, Foundation
+}:
+
+stdenv.mkDerivation rec {
+  pname = "littlegptracker";
+  version = "unstable-2019-04-14";
+
+  src = fetchFromGitHub {
+    owner = "Mdashdotdashn";
+    repo = "littlegptracker";
+    rev = "0ed729b46739e3df5e111c6fa4d548fde2d3b891";
+    sha256 = "1pc6lg2qp6xh7ahs5d5pb63ms4h2dz7ryp3c7mci4g37gbwbsj5b";
+  };
+
+  buildInputs = [
+    SDL
+  ]
+  ++ stdenv.lib.optional stdenv.isDarwin Foundation
+  ++ stdenv.lib.optional stdenv.isLinux jack2;
+
+  patches = [
+    # Remove outdated (pre-64bit) checks that would fail on modern platforms
+    # (see description in patch file)
+    ./0001-Remove-coherency-checks.patch
+    # Set starting directory to cwd, default is in /nix/store and causes a crash
+    # (see description in patch file)
+    ./0002-Set-the-initial-directory-to-the-current-directory.patch
+  ];
+
+  preBuild = "cd projects";
+
+  makeFlags = [ "CXX=${stdenv.cc.targetPrefix}c++" ]
+    ++ stdenv.lib.optionals stdenv.isLinux  [ "PLATFORM=DEB" ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ "PLATFORM=OSX" ];
+
+  NIX_CFLAGS_COMPILE = [ "-fpermissive" ] ++
+    stdenv.lib.optional stdenv.hostPlatform.isAarch64 "-Wno-error=narrowing";
+
+  NIX_LDFLAGS = stdenv.lib.optional stdenv.isDarwin "-framework Foundation";
+
+  installPhase = let extension = if stdenv.isDarwin then "app" else "deb-exe";
+    in "install -Dm555 lgpt.${extension} $out/bin/lgpt";
+
+  meta = with stdenv.lib; {
+    description = "A music tracker similar to lsdj optimised to run on portable game consoles";
+    longDescription = ''
+      LittleGPTracker (a.k.a 'The piggy', 'lgpt') is a music tracker optimised
+      to run on portable game consoles. It is currently running on Game Park's
+      GP2x & Caanoo, PSP, Dingoo, Windows, Mac OSX (intel/ppc) & Linux (Debian).
+
+      It implements the user interface of littlesounddj, a very famous tracker
+      for the Gameboy platform that has been tried and tested by many users over
+      the years, leading to a little complex but yet extremely efficent way of
+      working.
+
+      Piggy currently supports 8 monophonic 16Bit/44.1Khz stereo sample playback
+      channels. Additionally, the program can drive MIDI instruments (with the
+      gp32 and gp2x a custom MIDI interface is required).
+    '';
+    homepage = "http://www.littlegptracker.com/";
+    downloadPage = "http://www.littlegptracker.com/download.php";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+    # https://github.com/NixOS/nixpkgs/pull/91766#issuecomment-688751821
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/lmms/default.nix b/nixpkgs/pkgs/applications/audio/lmms/default.nix
index c243e9beb233..b01c4055e406 100644
--- a/nixpkgs/pkgs/applications/audio/lmms/default.nix
+++ b/nixpkgs/pkgs/applications/audio/lmms/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "lmms";
-  version = "1.2.1";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "LMMS";
     repo = "lmms";
     rev = "v${version}";
-    sha256 = "08k2nfj0rw9mahr7pr90n79wviqmjmflrgcljc6y3x30v84wbp26";
+    sha256 = "006hwv1pbh3y5whsxkjk20hsbgwkzr4dawz43afq1gil69y7xpda";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/audio/lollypop/default.nix b/nixpkgs/pkgs/applications/audio/lollypop/default.nix
index e4b8b906fa64..f325185920d7 100644
--- a/nixpkgs/pkgs/applications/audio/lollypop/default.nix
+++ b/nixpkgs/pkgs/applications/audio/lollypop/default.nix
@@ -1,5 +1,6 @@
 { lib
 , fetchgit
+, nix-update-script
 , meson
 , ninja
 , pkgconfig
@@ -23,7 +24,7 @@
 
 python3.pkgs.buildPythonApplication rec  {
   pname = "lollypop";
-  version = "1.2.35";
+  version = "1.3.2";
 
   format = "other";
   doCheck = false;
@@ -32,7 +33,7 @@ python3.pkgs.buildPythonApplication rec  {
     url = "https://gitlab.gnome.org/World/lollypop";
     rev = "refs/tags/${version}";
     fetchSubmodules = true;
-    sha256 = "19nw9qh17yyi9ih1nwngbbwjx1vr26haqhmzsdqf0yjgsgf9vldx";
+    sha256 = "14854j1dhq67s1vzs0lqy345vbl6f5w8nb36n4i33fmpva2flsk3";
   };
 
   nativeBuildInputs = [
@@ -91,6 +92,13 @@ python3.pkgs.buildPythonApplication rec  {
     makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+
   meta = with lib; {
     changelog = "https://gitlab.gnome.org/World/lollypop/tags/${version}";
     description = "A modern music player for GNOME";
diff --git a/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix b/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix
index 435da6440736..fadc7e8f184b 100644
--- a/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix
+++ b/nixpkgs/pkgs/applications/audio/lsp-plugins/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lsp-plugins";
-  version = "1.1.22";
+  version = "1.1.24";
 
   src = fetchFromGitHub {
     owner = "sadko4u";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "0s0i0kf5nqxxywckg03fds1w7696ly60rnlljzqvp7qfgzps1r6c";
+    sha256 = "0rzgzkg6wvhjcf664i16nz4v30drgv80s34bhdflcjzx2x7ix5zk";
   };
 
   nativeBuildInputs = [ pkgconfig php makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/audio/lv2-cpp-tools/default.nix b/nixpkgs/pkgs/applications/audio/lv2-cpp-tools/default.nix
new file mode 100644
index 000000000000..d98135fb0149
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/lv2-cpp-tools/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchzip, pkgconfig, lv2, gtkmm2, boost }:
+
+stdenv.mkDerivation rec {
+  pname = "lv2-cpp-tools";
+  version = "1.0.5";
+
+  src = fetchzip {
+    url = "http://deb.debian.org/debian/pool/main/l/lv2-c++-tools/lv2-c++-tools_${version}.orig.tar.bz2";
+    sha256 = "039bq7d7s2bhfcnlsfq0mqxr9a9iqwg5bwcpxfi24c6yl6krydsi";
+  };
+
+  preConfigure = ''
+    sed -r 's,/bin/bash,${stdenv.shell},g' -i ./configure
+    sed -r 's,/sbin/ldconfig,ldconfig,g' -i ./Makefile.template
+  '';
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ lv2 gtkmm2 boost ];
+
+  meta = with stdenv.lib; {
+    homepage = "http://ll-plugins.nongnu.org/hacking.html";
+    description = "Tools and libraries that may come in handy when writing LV2 plugins in C++";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.michalrus ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/mamba/default.nix b/nixpkgs/pkgs/applications/audio/mamba/default.nix
new file mode 100644
index 000000000000..6229cb3a80dd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mamba/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+, cairo
+, fluidsynth
+, libX11
+, libjack2
+, liblo
+, libsigcxx
+, libsmf
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mamba";
+  version = "1.5";
+
+  src = fetchFromGitHub {
+    owner = "brummer10";
+    repo = "Mamba";
+    rev = "v${version}";
+    sha256 = "1l74ckqqrccgsdy430pfsbv4fbzny7zivx399bi2jk1lv06p4h9a";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ cairo fluidsynth libX11 libjack2 liblo libsigcxx libsmf ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/brummer10/Mamba";
+    description = "Virtual MIDI keyboard for Jack Audio Connection Kit";
+    license = licenses.bsd0;
+    maintainers = with maintainers; [ magnetophon orivej ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/mellowplayer/default.nix b/nixpkgs/pkgs/applications/audio/mellowplayer/default.nix
new file mode 100644
index 000000000000..93c0b36bbb09
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mellowplayer/default.nix
@@ -0,0 +1,70 @@
+{ cmake
+, fetchFromGitLab
+, lib
+, libnotify
+, mkDerivation
+, pkgconfig
+, qtbase
+, qtdeclarative
+, qtgraphicaleffects
+, qtquickcontrols2
+, qttools
+, qtwebengine
+}:
+
+mkDerivation rec {
+  pname = "MellowPlayer";
+  version = "3.6.5";
+
+  src = fetchFromGitLab {
+    owner = "ColinDuquesnoy";
+    repo = "MellowPlayer";
+    rev = version;
+    sha256 = "1fnfqyy52hnh9vwq4rcndcqwh0zsm1sd3vi4h5gzaj4zbniq5v2f";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [
+    libnotify
+    qtbase
+    qtdeclarative
+    qtgraphicaleffects
+    qtquickcontrols2
+    qttools
+    qtwebengine
+  ];
+
+  doCheck = true;
+
+  cmakeFlags = [ "-DBUILD_TESTS=ON" ];
+
+  preCheck = ''
+    # Running the tests requires a location at the home directory for logging.
+    export HOME="$NIX_BUILD_TOP/home"
+    mkdir -p "$HOME/.local/share/MellowPlayer.Tests/MellowPlayer.Tests/Logs"
+
+    # Without this, the tests fail because they cannot create the QT Window
+    export QT_QPA_PLATFORM=offscreen
+  ''
+  # TODO: The tests are failing because it can't locate QT plugins. Is there a better way to do this?
+  + (builtins.concatStringsSep "\n" (lib.lists.flatten (builtins.map
+      (pkg: [
+        (lib.optionalString (pkg ? qtPluginPrefix) ''
+          export QT_PLUGIN_PATH="${pkg}/${pkg.qtPluginPrefix}"''${QT_PLUGIN_PATH:+':'}$QT_PLUGIN_PATH
+        '')
+
+        (lib.optionalString (pkg ? qtQmlPrefix) ''
+          export QML2_IMPORT_PATH="${pkg}/${pkg.qtQmlPrefix}"''${QML2_IMPORT_PATH:+':'}$QML2_IMPORT_PATH
+        '')
+      ]) buildInputs)));
+
+  meta = with lib; {
+    inherit (qtbase.meta) platforms;
+
+    description = "Cloud music integration for your desktop.";
+    homepage = "https://gitlab.com/ColinDuquesnoy/MellowPlayer";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix b/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix
new file mode 100644
index 000000000000..c66771be1c9d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/midi-visualizer/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, fetchFromGitHub, cmake, pkg-config, libX11, glfw, makeWrapper,
+  libXrandr, libXinerama, libXcursor, gtk3, ffmpeg-full, ...}:
+
+stdenv.mkDerivation rec {
+  pname = "MIDIVisualizer";
+  version = "5.1";
+
+  src = fetchFromGitHub {
+    owner = "kosua20";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1fjlfa0qjpnjxl3bx5cq3dkswv9wihxmgfpkjijqp7kvf3q127rq";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config makeWrapper];
+
+  buildInputs = [
+    libX11
+    glfw
+    libXrandr
+    libXinerama
+    libXcursor
+    gtk3
+    ffmpeg-full
+  ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp MIDIVisualizer $out/bin
+
+    wrapProgram $out/bin/MIDIVisualizer \
+      --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A small MIDI visualizer tool, using OpenGL";
+    homepage = "https://github.com/kosua20/MIDIVisualizer";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.ericdallo ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/mixxx/default.nix b/nixpkgs/pkgs/applications/audio/mixxx/default.nix
index f889d9e1e8d2..576dd4d97b35 100644
--- a/nixpkgs/pkgs/applications/audio/mixxx/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mixxx/default.nix
@@ -3,7 +3,7 @@
 , libid3tag, libmad, libopus, libshout, libsndfile, libusb1, libvorbis
 , libGLU, libxcb, lilv, lv2, opusfile
 , pkgconfig, portaudio, portmidi, protobuf, qtbase, qtscript, qtsvg
-, qtx11extras, rubberband, scons, sqlite, taglib, upower, vamp-plugin-sdk
+, qtx11extras, rubberband, sconsPackages, sqlite, taglib, upower, vamp-plugin-sdk
 }:
 
 let
@@ -19,16 +19,16 @@ let
 in
 mkDerivation rec {
   pname = "mixxx";
-  version = "2.2.3";
+  version = "2.2.4";
 
   src = fetchFromGitHub {
     owner = "mixxxdj";
     repo = "mixxx";
     rev = "release-${version}";
-    sha256 = "1h7q25fv62c5m74d4cn1m6mpanmqpbl2wqbch4qvn488jb2jw1dv";
+    sha256 = "1dj9li8av9b2kbm76jvvbdmihy1pyrw0s4xd7dd524wfhwr1llxr";
   };
 
-  nativeBuildInputs = [ scons.py2 ];
+  nativeBuildInputs = [ sconsPackages.scons_3_1_2 ];
   buildInputs = [
     chromaprint fftw flac faad2 glibcLocales mp4v2 libid3tag libmad libopus libshout241 libsndfile
     libusb1 libvorbis libxcb libGLU lilv lv2 opusfile pkgconfig portaudio portmidi protobuf qtbase qtscript qtsvg
@@ -52,7 +52,7 @@ mkDerivation rec {
     homepage = "https://mixxx.org";
     description = "Digital DJ mixing software";
     license = licenses.gpl2Plus;
-    maintainers = [ maintainers.aszlig maintainers.goibhniu maintainers.bfortz ];
+    maintainers = [ maintainers.goibhniu maintainers.bfortz ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/molot-lite/default.nix b/nixpkgs/pkgs/applications/audio/molot-lite/default.nix
new file mode 100644
index 000000000000..5c5aa5055370
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/molot-lite/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, unzip, lv2 }:
+
+stdenv.mkDerivation {
+  pname = "molot-lite";
+  version = "unstable-2014-04-23";
+
+  src = fetchurl {
+    # fetchzip does not accept urls that do not end with .zip.
+    url = "https://sourceforge.net/p/molot/code/ci/c4eddc426f8d5821e8ebcf1d67265365e4c8c52a/tree/molot_src.zip?format=raw";
+    sha256 = "1c47dwfgrmn9459px8s5zikcqyr0777v226qzcxlr6azlcjwr51b";
+  };
+
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ lv2 ];
+
+  unpackPhase = ''
+    unzip $src
+  '';
+
+  buildPhase = ''
+    make -C Molot_Mono_Lite
+    make -C Molot_Stereo_Lite
+  '';
+
+  installPhase = ''
+    make install INSTALL_DIR=$out/lib/lv2 -C Molot_Mono_Lite
+    make install INSTALL_DIR=$out/lib/lv2 -C Molot_Stereo_Lite
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Stereo and mono audio signal dynamic range compressor in LV2 format";
+    homepage = "https://sourceforge.net/projects/molot/";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/mooSpace/default.nix b/nixpkgs/pkgs/applications/audio/mooSpace/default.nix
new file mode 100644
index 000000000000..f6958c5e974a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mooSpace/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, faust2jaqt, faust2lv2 }:
+stdenv.mkDerivation rec {
+  pname = "mooSpace";
+  version = "unstable-2020-06-10";
+
+  src = fetchFromGitHub {
+    owner = "modularev";
+    repo = pname;
+    rev = "e5440407ea6ef9f7fcca838383b2b9a388c22874";
+    sha256 = "10vsbddf6d7i06040850v8xkmqh3bqawczs29kfgakair809wqxl";
+  };
+
+  buildInputs = [ faust2jaqt faust2lv2 ];
+
+  patchPhase = "mv ${pname}_faust.dsp ${pname}.dsp";
+
+  buildPhase = ''
+    faust2jaqt -time -vec -t 0 ${pname}.dsp
+    faust2lv2  -time -vec -t 0 -gui ${pname}.dsp
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ${pname} $out/bin/
+      mkdir -p $out/lib/lv2
+      cp -r ${pname}.lv2 $out/lib/lv2
+  '';
+
+  meta = {
+    description = "Variable reverb audio effect, jack and lv2";
+    homepage = "https://github.com/modularev/mooSpace";
+    license = stdenv.lib.licenses.gpl3;
+    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/default.nix b/nixpkgs/pkgs/applications/audio/mopidy/default.nix
index 6c2a7d9fe334..23322ca5663e 100644
--- a/nixpkgs/pkgs/applications/audio/mopidy/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mopidy/default.nix
@@ -40,6 +40,8 @@ let
 
     mopidy-iris = callPackage ./iris.nix { };
 
+    mopidy-tunein = callPackage ./tunein.nix { };
+
   };
 
 in self
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/iris.nix b/nixpkgs/pkgs/applications/audio/mopidy/iris.nix
index 5cc3a957d260..467ba6fe3f70 100644
--- a/nixpkgs/pkgs/applications/audio/mopidy/iris.nix
+++ b/nixpkgs/pkgs/applications/audio/mopidy/iris.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "Mopidy-Iris";
-  version = "3.49.0";
+  version = "3.50.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0zddm7286iwx437gjz47m4g28s8gdcxnm2hmly9w1dzi08aa4fas";
+    sha256 = "04miwf0dqb8jir9g7xkfnn3l62bdn74ap03kqzz2v3byg64f1p0g";
   };
 
   propagatedBuildInputs = [
@@ -14,7 +14,7 @@ python3Packages.buildPythonApplication rec {
   ] ++ (with python3Packages; [
     configobj
     requests
-    tornado_4
+    tornado
   ]);
 
   # no tests implemented
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix b/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix
index ae65d9b2f6ed..28216020b78a 100644
--- a/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix
+++ b/nixpkgs/pkgs/applications/audio/mopidy/mopidy.nix
@@ -21,7 +21,7 @@ pythonPackages.buildPythonApplication rec {
   ];
 
   propagatedBuildInputs = with pythonPackages; [
-    gst-python pygobject3 pykka tornado_4 requests setuptools
+    gst-python pygobject3 pykka tornado requests setuptools
   ] ++ stdenv.lib.optional (!stdenv.isDarwin) dbus-python;
 
   # There are no tests
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/tunein.nix b/nixpkgs/pkgs/applications/audio/mopidy/tunein.nix
new file mode 100644
index 000000000000..569d08fb4a03
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/mopidy/tunein.nix
@@ -0,0 +1,28 @@
+{ stdenv, python3Packages, mopidy }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "mopidy-tunein";
+  version = "1.0.0";
+
+  src = python3Packages.fetchPypi {
+    inherit version;
+    pname = "Mopidy-TuneIn";
+    sha256 = "0insasf4w8ajsqjh5zmax7pkzmrk1p245vh4y8ddicldj45p6qfj";
+  };
+
+  propagatedBuildInputs = [
+    mopidy
+  ];
+
+  # tests fail with "ValueError: Namespace Gst not available" in mopidy itself
+  doCheck = false;
+
+  pythonImportsCheck = [ "mopidy_tunein.tunein" ];
+
+  meta = with stdenv.lib; {
+    description = "Mopidy extension for playing music from tunein.";
+    homepage = "https://github.com/kingosticks/mopidy-tunein";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/mopidy/youtube.nix b/nixpkgs/pkgs/applications/audio/mopidy/youtube.nix
index ac16c182a50e..a115812b86a6 100644
--- a/nixpkgs/pkgs/applications/audio/mopidy/youtube.nix
+++ b/nixpkgs/pkgs/applications/audio/mopidy/youtube.nix
@@ -2,12 +2,12 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "mopidy-youtube";
-  version = "3.0";
+  version = "3.1";
 
   src = python3Packages.fetchPypi {
     inherit version;
     pname = "Mopidy-YouTube";
-    sha256 = "0x1q9rfnjx65n6hi8s5rw5ff4xv55h63zy52fwm8aksdnzppr7gd";
+    sha256 = "1bn3nxianbal9f81z9wf2cxi893hndvrz2zdqvh1zpxrhs0cr038";
   };
 
   patchPhase = "sed s/bs4/beautifulsoup4/ -i setup.cfg";
diff --git a/nixpkgs/pkgs/applications/audio/mpg123/default.nix b/nixpkgs/pkgs/applications/audio/mpg123/default.nix
index 53e66e580da8..f3203566a134 100644
--- a/nixpkgs/pkgs/applications/audio/mpg123/default.nix
+++ b/nixpkgs/pkgs/applications/audio/mpg123/default.nix
@@ -1,21 +1,43 @@
 { stdenv
-, fetchurl, alsaLib
+, fetchurl
+, makeWrapper
+
+, alsaLib
+, perl
 }:
 
 stdenv.mkDerivation rec {
-  name = "mpg123-1.25.13";
+  name = "mpg123-1.26.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/mpg123/${name}.tar.bz2";
-    sha256 = "02l915jq0ymndb082g6w89bpf66z04ifa1lr7ga3yycw6m46hc4h";
+    sha256 = "0vkcfdx0mqq6lmpczsmpa2jsb0s6dryx3i7gvr32i3w9b9w9ij9h";
   };
 
-  buildInputs = stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
+  outputs = [ "out" "conplay" ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildInputs = [ perl ] ++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib;
 
   configureFlags = stdenv.lib.optional
     (stdenv.hostPlatform ? mpg123)
     "--with-cpu=${stdenv.hostPlatform.mpg123.cpu}";
 
+  postInstall = ''
+    mkdir -p $conplay/bin
+    mv scripts/conplay $conplay/bin/
+  '';
+
+  preFixup = ''
+    patchShebangs $conplay/bin/conplay
+  '';
+
+  postFixup = ''
+    wrapProgram $conplay/bin/conplay \
+      --prefix PATH : $out/bin
+  '';
+
   meta = {
     description = "Fast console MPEG Audio Player and decoder library";
     homepage = "http://mpg123.org";
diff --git a/nixpkgs/pkgs/applications/audio/muse/default.nix b/nixpkgs/pkgs/applications/audio/muse/default.nix
index 87f86306b482..6ba29226b585 100644
--- a/nixpkgs/pkgs/applications/audio/muse/default.nix
+++ b/nixpkgs/pkgs/applications/audio/muse/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "muse-sequencer";
-  version = "3.1.0";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "muse-sequencer";
     repo = "muse";
     rev = "muse_${builtins.replaceStrings ["."] ["_"] version}";
-    sha256 = "08k25652w88xf2i79lw305x1phpk7idrww9jkqwcs8q6wzgmz8aq";
+    sha256 = "1rasp2v1ds2aw296lbf27rzw0l9fjl0cvbvw85d5ycvh6wkm301p";
   };
 
   sourceRoot = "source/muse3";
diff --git a/nixpkgs/pkgs/applications/audio/musescore/default.nix b/nixpkgs/pkgs/applications/audio/musescore/default.nix
index 063a05a72f3a..71c639ca4068 100644
--- a/nixpkgs/pkgs/applications/audio/musescore/default.nix
+++ b/nixpkgs/pkgs/applications/audio/musescore/default.nix
@@ -1,16 +1,17 @@
 { stdenv, mkDerivation, lib, fetchzip, cmake, pkgconfig
 , alsaLib, freetype, libjack2, lame, libogg, libpulseaudio, libsndfile, libvorbis
-, portaudio, portmidi, qtbase, qtdeclarative, qtscript, qtsvg, qttools
+, portaudio, portmidi, qtbase, qtdeclarative, qtgraphicaleffects
+, qtquickcontrols2, qtscript, qtsvg, qttools
 , qtwebengine, qtxmlpatterns
 }:
 
 mkDerivation rec {
   pname = "musescore";
-  version = "3.4.2";
+  version = "3.5.0";
 
   src = fetchzip {
-    url = "https://github.com/musescore/MuseScore/releases/download/v${version}/MuseScore-${version}.zip";
-    sha256 = "1laskvp40dncs12brkgvk7wl0qrvzy52rn7nf3b67ps1vmd130gp";
+    url = "https://github.com/musescore/MuseScore/releases/download/v3.5/MuseScore-${version}.zip";
+    sha256 = "0m598xh0s4f5m4l2ymy7g44bbvc14bcfi4gifhjnrg091rsk57c9";
     stripRoot = false;
   };
 
@@ -19,14 +20,22 @@ mkDerivation rec {
   ];
 
   cmakeFlags = [
-  ] ++ lib.optional (lib.versionAtLeast freetype.version "2.5.2") "-DUSE_SYSTEM_FREETYPE=ON";
+    "-DUSE_SYSTEM_FREETYPE=ON"
+  ];
+
+  qtWrapperArgs = [
+    # Work around crash on update from 3.4.2 to 3.5.0
+    # https://bugreports.qt.io/browse/QTBUG-85967
+    "--set QML_DISABLE_DISK_CACHE 1"
+  ];
 
   nativeBuildInputs = [ cmake pkgconfig ];
 
   buildInputs = [
     alsaLib libjack2 freetype lame libogg libpulseaudio libsndfile libvorbis
     portaudio portmidi # tesseract
-    qtbase qtdeclarative qtscript qtsvg qttools qtwebengine qtxmlpatterns
+    qtbase qtdeclarative qtgraphicaleffects qtquickcontrols2
+    qtscript qtsvg qttools qtwebengine qtxmlpatterns
   ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/audio/musikcube/default.nix b/nixpkgs/pkgs/applications/audio/musikcube/default.nix
index 0c4e2c71dd95..8fc0616ff73b 100644
--- a/nixpkgs/pkgs/applications/audio/musikcube/default.nix
+++ b/nixpkgs/pkgs/applications/audio/musikcube/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "musikcube";
-  version = "0.92.1";
+  version = "0.93.1";
 
   src = fetchFromGitHub {
     owner = "clangen";
     repo = pname;
     rev = version;
-    sha256 = "0l4ncxqxvp5m014j7vlglhzxhhrxl0c2m71xn0i0a27hn4nc72mr";
+    sha256 = "05qsxyr7x8l0vlmn4yjg4gglxvcw9raf6vfzvblsl2ngsdsrnizy";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/musly/default.nix b/nixpkgs/pkgs/applications/audio/musly/default.nix
index b1e8822cdcf8..7ef2b400b769 100644
--- a/nixpkgs/pkgs/applications/audio/musly/default.nix
+++ b/nixpkgs/pkgs/applications/audio/musly/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, eigen, libav_all }:
+{ stdenv, fetchFromGitHub, cmake, eigen, libav }:
 stdenv.mkDerivation {
   pname = "musly";
   version = "unstable-2017-04-26";
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
     sha256 = "1q42wvdwy2pac7bhfraqqj2czw7w2m33ms3ifjl8phm7d87i8825";
   };
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ eigen (libav_all.override { vaapiSupport = stdenv.isLinux; }).libav_11 ];
+  buildInputs = [ eigen (libav.override { vaapiSupport = stdenv.isLinux; }) ];
   fixupPhase = if stdenv.isDarwin then ''
     install_name_tool -change libmusly.dylib $out/lib/libmusly.dylib $out/bin/musly
     install_name_tool -change libmusly_resample.dylib $out/lib/libmusly_resample.dylib $out/bin/musly
diff --git a/nixpkgs/pkgs/applications/audio/ncmpc/default.nix b/nixpkgs/pkgs/applications/audio/ncmpc/default.nix
index aea50d71d75d..ca61aa0cd6f0 100644
--- a/nixpkgs/pkgs/applications/audio/ncmpc/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ncmpc/default.nix
@@ -10,13 +10,13 @@ assert pcreSupport -> pcre != null;
 
 stdenv.mkDerivation rec {
   pname = "ncmpc";
-  version = "0.38";
+  version = "0.39";
 
   src = fetchFromGitHub {
     owner  = "MusicPlayerDaemon";
     repo   = "ncmpc";
     rev    = "v${version}";
-    sha256 = "1kidpd1xrfax3v31q93r9g9b7jd841476q47wgd94h1a86b70gs9";
+    sha256 = "08xrcinfm1a7hjycf8la7gnsxbp3six70ks987dr7j42kd42irfq";
   };
 
   buildInputs = [ glib ncurses mpd_clientlib boost ]
diff --git a/nixpkgs/pkgs/applications/audio/ncspot/default.nix b/nixpkgs/pkgs/applications/audio/ncspot/default.nix
index bee1065328a7..2fcbf82107d6 100644
--- a/nixpkgs/pkgs/applications/audio/ncspot/default.nix
+++ b/nixpkgs/pkgs/applications/audio/ncspot/default.nix
@@ -14,16 +14,16 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "ncspot";
-  version = "0.1.3";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "hrkfdn";
     repo = "ncspot";
     rev = "v${version}";
-    sha256 = "144a7wn5l64fhvj8vgwl7z4bp8lbq0pb0dl38x9y4wkqmdh6wrli";
+    sha256 = "1i17pidw2hylijwfn96f2bnswfxxwdln2ydsq8b1q4hfzfbxlfk2";
   };
 
-  cargoSha256 = "19gn0v7j1ly3ywgflfj27pnrwjiiy17m3g1z0kzagxpjy2xi2qxy";
+  cargoSha256 = "1cpy4wrj9dz2crva4p18f8hzym73x4m2mcfds4ppri4ir7qg29dr";
 
   cargoBuildFlags = [ "--no-default-features" "--features" "${lib.concatStringsSep "," features}" ];
 
diff --git a/nixpkgs/pkgs/applications/audio/netease-cloud-music/default.nix b/nixpkgs/pkgs/applications/audio/netease-cloud-music/default.nix
deleted file mode 100644
index c4cc291d026c..000000000000
--- a/nixpkgs/pkgs/applications/audio/netease-cloud-music/default.nix
+++ /dev/null
@@ -1,81 +0,0 @@
-{ stdenv, lib, fontconfig, zlib, libGL, glib, pango
-, gdk-pixbuf, freetype, atk, cairo, libsForQt5, xorg
-, sqlite, taglib, nss, nspr, cups, dbus, alsaLib
-, libpulseaudio, deepin, qt5, harfbuzz, p11-kit
-, libgpgerror, libudev0-shim, makeWrapper, dpkg, fetchurl }:
-let
-  rpath = lib.makeLibraryPath [
-    fontconfig.lib
-    zlib
-    stdenv.cc.cc.lib
-    libGL
-    glib
-    pango
-    gdk-pixbuf
-    freetype
-    atk
-    cairo
-    libsForQt5.vlc
-    sqlite
-    taglib
-    nss
-    nspr
-    cups.lib
-    dbus.lib
-    alsaLib
-    libpulseaudio
-    xorg.libX11
-    xorg.libXext
-    xorg.libXtst
-    xorg.libXdamage
-    xorg.libXScrnSaver
-    xorg.libxcb
-    xorg.libXi
-    deepin.qcef
-    qt5.qtwebchannel
-    qt5.qtbase
-    qt5.qtx11extras
-    qt5.qtdeclarative
-    harfbuzz
-    p11-kit
-    libgpgerror
-  ];   
-
-  runtimeLibs = lib.makeLibraryPath [ libudev0-shim ];
-
-in stdenv.mkDerivation rec {
-  pname = "netease-cloud-music";
-  version = "1.2.0";
-  src = fetchurl {
-    url    = "http://d1.music.126.net/dmusic/netease-cloud-music_1.2.0_amd64_deepin_stable_20190424.deb";
-    sha256 = "0hg8jqim77vd0fmk8gfbz2fmlj99byxcm9jn70xf7vk1sy7wp6h1";
-    curlOpts = "-A 'Mozilla/5.0'";
-  };
-  unpackCmd = "${dpkg}/bin/dpkg -x $src .";
-  sourceRoot = ".";
-
-  nativeBuildInputs = [ qt5.wrapQtAppsHook makeWrapper ];
-
-  installPhase = ''
-    mkdir -p $out
-    cp -r usr/* $out
-  '';
-
-  preFixup = ''
-    local exefile="$out/bin/netease-cloud-music"
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$exefile"
-    patchelf --set-rpath "$out/libs:$(patchelf --print-rpath "$exefile"):${rpath}" "$exefile"
-
-    wrapProgram $out/bin/netease-cloud-music \
-      --prefix LD_LIBRARY_PATH : "${runtimeLibs}" \
-      --set QCEF_INSTALL_PATH "${deepin.qcef}/lib/qcef"
-  '';
-
-  meta = {
-    description = "Client for Netease Cloud Music service";
-    homepage = "https://music.163.com";
-    platforms = [ "i686-linux" "x86_64-linux" ];
-    maintainers = [ stdenv.lib.maintainers.mlatus ];
-    license = stdenv.lib.licenses.unfreeRedistributable;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/audio/noisetorch/config.patch b/nixpkgs/pkgs/applications/audio/noisetorch/config.patch
new file mode 100644
index 000000000000..f6e258862db6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/noisetorch/config.patch
@@ -0,0 +1,13 @@
+diff --git a/config.go b/config.go
+index de16249..fb91ec0 100644
+--- a/config.go
++++ b/config.go
+@@ -20,7 +20,7 @@ const configFile = "config.toml"
+ 
+ func initializeConfigIfNot() {
+ 	log.Println("Checking if config needs to be initialized")
+-	conf := config{Threshold: 95, DisplayMonitorSources: false, EnableUpdates: true}
++	conf := config{Threshold: 95, DisplayMonitorSources: false, EnableUpdates: false}
+ 	configdir := configDir()
+ 	ok, err := exists(configdir)
+ 	if err != nil {
diff --git a/nixpkgs/pkgs/applications/audio/noisetorch/default.nix b/nixpkgs/pkgs/applications/audio/noisetorch/default.nix
new file mode 100644
index 000000000000..1739d27870a0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/noisetorch/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, buildGoModule, fetchFromGitHub, rnnoise-plugin }:
+
+buildGoModule rec {
+  pname = "NoiseTorch";
+  version = "0.5.2-beta";
+
+  src = fetchFromGitHub {
+    owner = "lawl";
+    repo = "NoiseTorch";
+    rev = version;
+    sha256 = "1q0gfpqczlpybxcjjkiybcy6yc0gnrq8x27r0mpg4pvgwy7mps47";
+  };
+
+  patches = [ ./version.patch ./config.patch ./embedlibrnnoise.patch ];
+
+  vendorSha256 = null;
+
+  doCheck = false;
+
+  subPackages = [ "." ];
+
+  buildInputs = [ rnnoise-plugin ];
+
+  preBuild = ''
+    export RNNOISE_LADSPA_PLUGIN="${rnnoise-plugin}/lib/ladspa/librnnoise_ladspa.so";
+    go generate;
+    rm  ./scripts/*
+  '';
+
+  postInstall = ''
+    mkdir -p $out/share/icons/hicolor/256x256/apps/
+    cp assets/icon/noisetorch.png $out/share/icons/hicolor/256x256/apps/
+    mkdir -p $out/share/applications/
+    cp assets/noisetorch.desktop $out/share/applications/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Virtual microphone device with noise supression for PulseAudio";
+    homepage = "https://github.com/lawl/NoiseTorch";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ panaeon ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/noisetorch/embedlibrnnoise.patch b/nixpkgs/pkgs/applications/audio/noisetorch/embedlibrnnoise.patch
new file mode 100644
index 000000000000..b1782efb8b35
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/noisetorch/embedlibrnnoise.patch
@@ -0,0 +1,13 @@
+diff --git a/scripts/embedlibrnnoise.go b/scripts/embedlibrnnoise.go
+index 43daf80..0b3004b 100644
+--- a/scripts/embedlibrnnoise.go
++++ b/scripts/embedlibrnnoise.go
+@@ -8,7 +8,7 @@ import (
+ )
+ 
+ func main() {
+-	b, err := ioutil.ReadFile("librnnoise_ladspa/bin/ladspa/librnnoise_ladspa.so")
++	b, err := ioutil.ReadFile(os.Getenv("RNNOISE_LADSPA_PLUGIN"))
+ 	if err != nil {
+ 		fmt.Printf("Couldn't read librnnoise_ladspa.so: %v\n", err)
+ 		os.Exit(1)
diff --git a/nixpkgs/pkgs/applications/audio/noisetorch/version.patch b/nixpkgs/pkgs/applications/audio/noisetorch/version.patch
new file mode 100644
index 000000000000..20c51863744a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/noisetorch/version.patch
@@ -0,0 +1,37 @@
+diff --git a/scripts/embedversion.go b/scripts/embedversion.go
+index ce0a756..60e7a5e 100644
+--- a/scripts/embedversion.go
++++ b/scripts/embedversion.go
+@@ -1,24 +1,18 @@
+ package main
+ 
+ import (
+-	"os"
+-	"os/exec"
+-	"strings"
++        "os"
++        "strings"
+ )
+ 
+ func main() {
+-	cmd := exec.Command("git", "describe", "--tags")
+-	ret, err := cmd.Output()
+ 
+-	if err != nil {
+-		panic("Couldn't read git tags to embed version number")
+-	}
+-	version := strings.TrimSpace(string(ret))
++        version := strings.TrimSpace(string(os.Getenv("version")))
+ 
+-	out, _ := os.Create("version.go")
+-	defer out.Close()
++        out, _ := os.Create("version.go")
++        defer out.Close()
+ 
+-	out.Write([]byte("package main\n\n//THIS FILE IS AUTOMATICALLY GENERATED BY `go generate` DO NOT EDIT!\n\nvar version=\""))
+-	out.Write([]byte(version))
+-	out.Write([]byte("\"\n"))
++        out.Write([]byte("package main\n\n//THIS FILE IS AUTOMATICALLY GENERATED BY `go generate` DO NOT EDIT!\n\nvar version=\""))
++        out.Write([]byte(version))
++        out.Write([]byte("\"\n"))
+ }
diff --git a/nixpkgs/pkgs/applications/audio/openmpt123/default.nix b/nixpkgs/pkgs/applications/audio/openmpt123/default.nix
index 6fec4df060d9..0646407582ed 100644
--- a/nixpkgs/pkgs/applications/audio/openmpt123/default.nix
+++ b/nixpkgs/pkgs/applications/audio/openmpt123/default.nix
@@ -2,14 +2,14 @@
 , usePulseAudio ? config.pulseaudio or false, libpulseaudio }:
 
 let
-  version = "0.5.0";
+  version = "0.5.2";
 in stdenv.mkDerivation {
   pname = "openmpt123";
   inherit version;
 
   src = fetchurl {
     url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
-    sha256 = "0zl3djy9z7cpqk8g8pxrzmmikxsskb0y5qdabg6c683j7x5abjs3";
+    sha256 = "1cwpc4j90dpxa2siia68rg9qwwm2xk6bhxnslfjj364507jy6s4l";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/audio/opusfile/default.nix b/nixpkgs/pkgs/applications/audio/opusfile/default.nix
index c09b3f415d86..df3bf7c215b4 100644
--- a/nixpkgs/pkgs/applications/audio/opusfile/default.nix
+++ b/nixpkgs/pkgs/applications/audio/opusfile/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, pkgconfig, openssl, libogg, libopus }:
 
 stdenv.mkDerivation rec {
-  name = "opusfile-0.11";
+  name = "opusfile-0.12";
   src = fetchurl {
     url = "http://downloads.xiph.org/releases/opus/${name}.tar.gz";
-    sha256 = "1gq3aszzl5glgbajw5p1f5a1kdyf23w5vjdmwwrk246syin9pkkl";
+    sha256 = "02smwc5ah8nb3a67mnkjzqmrzk43j356hgj2a97s9midq40qd38i";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/audio/osmid/default.nix b/nixpkgs/pkgs/applications/audio/osmid/default.nix
index 7e49b872a6a5..2e31efd8172c 100644
--- a/nixpkgs/pkgs/applications/audio/osmid/default.nix
+++ b/nixpkgs/pkgs/applications/audio/osmid/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "osmid";
-  version = "0.6.8";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "llloret";
     repo = "osmid";
     rev = "v${version}";
-    sha256 = "1yl25abf343yvd49nfsgxsz7jf956zrsi5n4xyqb5ldlp2hifk15";
+    sha256 = "1s1wsrp6g6wb0y61xzxvaj59mwycrgy52r4h456086zkz10ls6hw";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/audio/padthv1/default.nix b/nixpkgs/pkgs/applications/audio/padthv1/default.nix
index 19bd6ecc0c8a..c5d20d965b9f 100644
--- a/nixpkgs/pkgs/applications/audio/padthv1/default.nix
+++ b/nixpkgs/pkgs/applications/audio/padthv1/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "padthv1";
-  version = "0.9.14";
+  version = "0.9.16";
 
   src = fetchurl {
     url = "mirror://sourceforge/padthv1/${pname}-${version}.tar.gz";
-    sha256 = "079iwwlkl1gscyv70v9ambad8shxbs0ixdfp0vsl6dbh87b09qzh";
+    sha256 = "1f2v60dpja0rnml60g463fjiz0f84v32yjwpvr56z79h1i6fssmv";
   };
 
   buildInputs = [ libjack2 alsaLib libsndfile liblo lv2 qt5.qtbase qt5.qttools fftw ];
diff --git a/nixpkgs/pkgs/applications/audio/parlatype/default.nix b/nixpkgs/pkgs/applications/audio/parlatype/default.nix
index e4728b9b9c45..b9babddb800f 100644
--- a/nixpkgs/pkgs/applications/audio/parlatype/default.nix
+++ b/nixpkgs/pkgs/applications/audio/parlatype/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "parlatype";
-  version = "2.0";
+  version = "2.1";
 
   src = fetchFromGitHub {
     owner  = "gkarsay";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "026i19vkdq35rldbjp1wglamr22a1330iv736mmgbd8fs7vz22nx";
+    sha256 = "1k53q0kbwpnbgyr0lmfzf5sm4f93d8nbjrzdz9pdhzpxgihndg25";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/pd-plugins/gem/default.nix b/nixpkgs/pkgs/applications/audio/pd-plugins/gem/default.nix
new file mode 100644
index 000000000000..2c0d0a24c573
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/pd-plugins/gem/default.nix
@@ -0,0 +1,62 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, autoreconfHook
+, pkg-config
+, puredata
+, libGL
+, libGLU
+, glew
+, freeglut
+, libv4l
+, libX11
+, file
+ }:
+
+stdenv.mkDerivation rec {
+  pname = "gem-unstable";
+  # The patch below applies to the latest release (v0.94), but then the build
+  # fails. I didn't track down what changed between that version and the
+  # current master that fixes the build on Nix
+  version = "2020-03-26";
+
+  src = fetchFromGitHub {
+    owner = "umlaeute";
+    repo = "Gem";
+    rev = "f38748d71bfca00e4d2b2f31d6c4e3759c03d599";
+    sha256 = "0bkky5fk0a836bapslrgzil272iq9y704y7hw254cfq5ffjd4qjy";
+  };
+
+  patches = [
+    # Update autoconf OpenGL/GLU/GLUT detection scripts
+    # https://github.com/umlaeute/Gem/pull/251
+    (fetchpatch {
+      url = "https://github.com/umlaeute/Gem/commit/343a486c2b5c3427696f77aeabdff440e6590fc7.diff";
+      sha256 = "0gkzxv80rgg8lgp9av5qp6xng3ldhnbjz9d6r7ym784fw8yx41yj";
+    })
+  ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    file
+    pkg-config
+  ];
+
+  buildInputs = [
+    puredata
+    libGL
+    libGLU
+    glew
+    freeglut
+    libv4l
+    libX11
+  ];
+
+  meta = {
+    description = "Graphics Environment for Multimedia";
+    homepage = "http://puredata.info/downloads/gem";
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = [ stdenv.lib.maintainers.raboof ];
+    platforms = stdenv.lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/picard/default.nix b/nixpkgs/pkgs/applications/audio/picard/default.nix
index c080d0a95f3b..9274044090b0 100644
--- a/nixpkgs/pkgs/applications/audio/picard/default.nix
+++ b/nixpkgs/pkgs/applications/audio/picard/default.nix
@@ -12,13 +12,13 @@ let
   ;
 in pythonPackages.buildPythonApplication rec {
   pname = "picard";
-  version = "2.3.2";
+  version = "2.4.4";
 
   src = fetchFromGitHub {
     owner = "metabrainz";
     repo = pname;
     rev = "release-${version}";
-    sha256 = "1785wnxhasp4j8w2a8bgbfp3gyhc7zac18r5fqw5qcndz2hfk5mc";
+    sha256 = "0iw2v37j70881v0a2rjp2miq97nscq04x1ysk1dqmi1b9hi0y17q";
   };
 
   nativeBuildInputs = [ gettext qt5.wrapQtAppsHook qt5.qtbase ]
@@ -37,6 +37,7 @@ in pythonPackages.buildPythonApplication rec {
     mutagen
     chromaprint
     discid
+    dateutil
   ];
 
   prePatch = ''
diff --git a/nixpkgs/pkgs/applications/audio/picoloop/default.nix b/nixpkgs/pkgs/applications/audio/picoloop/default.nix
new file mode 100644
index 000000000000..1dc9c70af87b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/picoloop/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, libpulseaudio, SDL2, SDL2_image, SDL2_ttf, alsaLib, libjack2 }:
+
+stdenv.mkDerivation rec {
+  pname = "picoloop";
+  version = "0.77e";
+
+  src = fetchFromGitHub {
+    repo = pname;
+    owner = "yoyz";
+    rev = "${pname}-${version}";
+    sha256 = "0i8j8rgyha3ara6d4iis3wcimszf2csxdwrm5yq0wyhg74g7cvjd";
+  };
+
+  buildInputs = [
+    libpulseaudio
+    SDL2
+    SDL2.dev
+    SDL2_image
+    SDL2_ttf
+    alsaLib
+    libjack2 
+  ];
+
+  sourceRoot = "source/picoloop";
+
+  makeFlags = [ "-f Makefile.PatternPlayer_debian_RtAudio_sdl20" ];
+
+  NIX_CFLAGS_COMPILE = [ "-I${SDL2.dev}/include/SDL2" ];
+
+  hardeningDisable = [ "format" ];
+
+  patchPhase = ''
+    substituteInPlace SDL_GUI.cpp \
+    --replace "\"font.ttf\"" "\"$out/share/font.ttf\"" \
+    --replace "\"font.bmp\"" "\"$out/share/font.bmp\""
+  '';
+
+  installPhase = ''
+    mkdir -p $out/{bin,share}
+    cp PatternPlayer_debian_RtAudio_sdl20 $out/bin/picoloop
+    cp {font.*,LICENSE} $out/share
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Picoloop is a synth and a stepsequencer (a clone of the famous nanoloop).";
+    homepage = "https://github.com/yoyz/picoloop";
+    platforms = platforms.linux;
+    license = licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/plexamp/default.nix b/nixpkgs/pkgs/applications/audio/plexamp/default.nix
new file mode 100644
index 000000000000..36462aa28bcb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/plexamp/default.nix
@@ -0,0 +1,39 @@
+{ lib, fetchurl, appimageTools, pkgs }:
+
+let
+  pname = "plexamp";
+  version = "3.2.0";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://plexamp.plex.tv/plexamp.plex.tv/desktop/Plexamp-${version}.AppImage";
+    sha256 = "R1BhobnwoU7oJ7bNes8kH2neXqHlMPbRCNjcHyzUPqo=";
+    name="${pname}-${version}.AppImage";
+  };
+
+  appimageContents = appimageTools.extractType2 {
+    inherit name src;
+  };
+in appimageTools.wrapType2 {
+  inherit name src;
+
+  multiPkgs = null; # no 32bit needed
+  extraPkgs = pkgs: appimageTools.defaultFhsEnvArgs.multiPkgs pkgs ++ [ pkgs.bash ];
+
+  extraInstallCommands = ''
+    ln -s $out/bin/${name} $out/bin/${pname}
+    install -m 444 -D ${appimageContents}/plexamp.desktop $out/share/applications/plexamp.desktop
+    install -m 444 -D ${appimageContents}/plexamp.png \
+      $out/share/icons/hicolor/512x512/apps/plexamp.png
+    substituteInPlace $out/share/applications/plexamp.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
+  '';
+
+  meta = with lib; {
+    description = "A beautiful Plex music player for audiophiles, curators, and hipsters.";
+    homepage = "https://plexamp.com/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ killercup ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/projectm/default.nix b/nixpkgs/pkgs/applications/audio/projectm/default.nix
index 57d27ee272c6..83952c271bec 100644
--- a/nixpkgs/pkgs/applications/audio/projectm/default.nix
+++ b/nixpkgs/pkgs/applications/audio/projectm/default.nix
@@ -12,13 +12,13 @@
 
 mkDerivation rec {
   pname = "projectm";
-  version = "3.1.3";
+  version = "3.1.7";
 
   src = fetchFromGitHub {
     owner = "projectM-visualizer";
     repo = "projectM";
     rev = "v${version}";
-    sha256 = "1mjnahr694phksmvc069y89rv85s4l2z9fixkc3l1f5qj2vgn4sy";
+    sha256 = "1wm5fym6c1yb972pmil7j9axinqqwrj68cwd2sc7ky8c5z2fsdna";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix b/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
index 8121c0caeec8..eaabcf4bef7d 100644
--- a/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pt2-clone/default.nix
@@ -1,24 +1,29 @@
 { stdenv
 , fetchFromGitHub
 , cmake
+, nixosTests
 , alsaLib
 , SDL2
 }:
 
 stdenv.mkDerivation rec {
   pname = "pt2-clone";
-  version = "1.19";
+  version = "1.23";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "pt2-clone";
     rev = "v${version}";
-    sha256 = "0lr8gq4immc5cx1wr5ng6ccxs9afbd2dk6i0n5np25z14dvbvk3k";
+    sha256 = "1vixpp0vqpawqviwl44wn8zf602zyyrgqnjzrlwjrmdzydx9c93y";
   };
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ SDL2 ] ++ stdenv.lib.optional stdenv.isLinux alsaLib;
 
+  passthru.tests = {
+    pt2-clone-opens = nixosTests.pt2-clone;
+  };
+
   meta = with stdenv.lib; {
     description = "A highly accurate clone of the classic ProTracker 2.3D software for Amiga";
     homepage = "https://16-bits.org/pt2.php";
diff --git a/nixpkgs/pkgs/applications/audio/puddletag/default.nix b/nixpkgs/pkgs/applications/audio/puddletag/default.nix
index a0813fa0c801..47ea078c4b2d 100644
--- a/nixpkgs/pkgs/applications/audio/puddletag/default.nix
+++ b/nixpkgs/pkgs/applications/audio/puddletag/default.nix
@@ -1,37 +1,34 @@
-{ stdenv, fetchFromGitHub, python2Packages, chromaprint }:
+{ stdenv, fetchFromGitHub, python3Packages, chromaprint }:
 
-python2Packages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "puddletag";
-  version = "1.2.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
-    owner  = "keithgg";
-    repo   = "puddletag";
-    rev    = "v${version}";
-    sha256 = "1g6wa91awy17z5b704yi9kfynnvfm9lkrvpfvwccscr1h8s3qmiz";
+    owner = "keithgg";
+    repo = "puddletag";
+    rev = version;
+    sha256 = "sha256-9l8Pc77MX5zFkOqU00HFS8//3Bzd2OMnVV1brmWsNAQ=";
   };
 
-  setSourceRoot = ''
-    sourceRoot=$(echo */source)
-  '';
+  sourceRoot = "source/source";
 
-  disabled = python2Packages.isPy3k; # work to support python 3 has not begun
-
-  propagatedBuildInputs = [ chromaprint ] ++ (with python2Packages; [
+  propagatedBuildInputs = [ chromaprint ] ++ (with python3Packages; [
     configobj
     mutagen
     pyparsing
-    pyqt4
+    pyqt5
   ]);
 
   doCheck = false;   # there are no tests
+
   dontStrip = true;  # we are not generating any binaries
 
   meta = with stdenv.lib; {
     description = "An audio tag editor similar to the Windows program, Mp3tag";
-    homepage    = "https://docs.puddletag.net";
-    license     = licenses.gpl3;
+    homepage = "https://docs.puddletag.net";
+    license = licenses.gpl3;
     maintainers = with maintainers; [ peterhoeg ];
-    platforms   = platforms.linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix b/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix
index 75990d593dfe..c0986880c094 100644
--- a/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pulseaudio-dlna/default.nix
@@ -4,7 +4,7 @@
 , faacSupport ? false, faac ? null
 , flacSupport ? true, flac ? null
 , soxSupport ? true, sox ? null
-, vorbisSupport ? true, vorbisTools ? null
+, vorbisSupport ? true, vorbis-tools ? null
 }:
 
 assert mp3Support -> lame != null;
@@ -12,7 +12,7 @@ assert opusSupport -> opusTools != null;
 assert faacSupport -> faac != null;
 assert flacSupport -> flac != null;
 assert soxSupport -> sox != null;
-assert vorbisSupport -> vorbisTools != null;
+assert vorbisSupport -> vorbis-tools != null;
 
 let
   zeroconf = pythonPackages.callPackage ./zeroconf.nix { };
@@ -37,7 +37,7 @@ pythonPackages.buildPythonApplication {
     ++ stdenv.lib.optional faacSupport faac
     ++ stdenv.lib.optional flacSupport flac
     ++ stdenv.lib.optional soxSupport sox
-    ++ stdenv.lib.optional vorbisSupport vorbisTools;
+    ++ stdenv.lib.optional vorbisSupport vorbis-tools;
 
   # upstream has no tests
   checkPhase = ''
diff --git a/nixpkgs/pkgs/applications/audio/pulseeffects/default.nix b/nixpkgs/pkgs/applications/audio/pulseeffects/default.nix
index eaedcb426b81..a7b97e9daaf8 100644
--- a/nixpkgs/pkgs/applications/audio/pulseeffects/default.nix
+++ b/nixpkgs/pkgs/applications/audio/pulseeffects/default.nix
@@ -30,14 +30,12 @@
 , zita-convolver
 , zam-plugins
 , rubberband
-, mda_lv2
 , lsp-plugins
 }:
 
 let
   lv2Plugins = [
     calf # limiter, compressor exciter, bass enhancer and others
-    mda_lv2 # loudness
     lsp-plugins # delay
   ];
   ladspaPlugins = [
@@ -46,13 +44,13 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "pulseeffects";
-  version = "4.7.2";
+  version = "4.8.1";
 
   src = fetchFromGitHub {
     owner = "wwmm";
     repo = "pulseeffects";
     rev = "v${version}";
-    sha256 = "1yga25da5bpg12zkikp6dn4wqhn9f7r10awvjzfcz8s6w9xlz6rx";
+    sha256 = "17yfs3ja7vflywhxbn3n3r8n6hl829x257kzplg2vpppppg6ylj6";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/qjackctl/default.nix b/nixpkgs/pkgs/applications/audio/qjackctl/default.nix
index 87666940c151..8cb28dcfd5af 100644
--- a/nixpkgs/pkgs/applications/audio/qjackctl/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qjackctl/default.nix
@@ -1,14 +1,14 @@
 { stdenv, mkDerivation, fetchurl, pkgconfig, alsaLib, libjack2, dbus, qtbase, qttools, qtx11extras }:
 
 mkDerivation rec {
-  version = "0.6.2";
+  version = "0.6.3";
   pname = "qjackctl";
 
   # some dependencies such as killall have to be installed additionally
 
   src = fetchurl {
     url = "mirror://sourceforge/qjackctl/${pname}-${version}.tar.gz";
-    sha256 = "1rjhdyp0wzhlqr4cn80rh1qhby998cpqv81j1bbb9hfsiq77viqy";
+    sha256 = "0zbb4jlx56qvcqyhx34mbagkqf3wbxgj84hk0ppf5cmcrxv67d4x";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/qmmp/default.nix b/nixpkgs/pkgs/applications/audio/qmmp/default.nix
index 7b4d823006de..84ff9f787d53 100644
--- a/nixpkgs/pkgs/applications/audio/qmmp/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qmmp/default.nix
@@ -29,11 +29,11 @@
 # handle that.
 
 mkDerivation rec {
-  name = "qmmp-1.4.0";
+  name = "qmmp-1.4.1";
 
   src = fetchurl {
     url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2";
-    sha256 = "13rhnk55d44svksl13w23w2qkfpkq4mc0jy5mi89nzqkzshwvfd8";
+    sha256 = "0p18r2ri75vbyjzfa7bcl1dm372m6jvn9zj2p5ia2rh1g77fbm9a";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/audio/qsynth/default.nix b/nixpkgs/pkgs/applications/audio/qsynth/default.nix
index 5da8f4cd4626..af59bb56eb9a 100644
--- a/nixpkgs/pkgs/applications/audio/qsynth/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qsynth/default.nix
@@ -4,11 +4,11 @@
 
 mkDerivation  rec {
   pname = "qsynth";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/qsynth/${pname}-${version}.tar.gz";
-    sha256 = "0cp6vrqrj37rv3a7qfvqrg64j7zwpfj60y5b83mlkzvmg1sgjnlv";
+    sha256 = "0xiqmpzpxjvh32vivfj6h33w0ahmyfjzjb41b6fnf92bbg9k6mqv";
   };
 
   nativeBuildInputs = [ autoconf pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/audio/qtractor/default.nix b/nixpkgs/pkgs/applications/audio/qtractor/default.nix
index f2ee5eac70fa..2975e6464e1c 100644
--- a/nixpkgs/pkgs/applications/audio/qtractor/default.nix
+++ b/nixpkgs/pkgs/applications/audio/qtractor/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "qtractor";
-  version = "0.9.14";
+  version = "0.9.15";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "1gh268gdpj7nw19xfh7k2l3aban4yrs1lmx33qswrnngs2izj1fk";
+    sha256 = "0k7a6llwrzs07flr9mvzvay9ygc2x64syg8npyabsw5a4d85fwsx";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/real_time_config_quick_scan/default.nix b/nixpkgs/pkgs/applications/audio/real_time_config_quick_scan/default.nix
new file mode 100644
index 000000000000..5193d2899d30
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/real_time_config_quick_scan/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub, perlPackages, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "realTimeConfigQuickScan";
+  version = "unstable-2020-07-23";
+
+  src = fetchFromGitHub {
+    owner  = "raboof";
+    repo   = pname;
+    rev    = "4697ba093d43d512b74a73b89531cb8c5adaa274";
+    sha256 = "16kanzp5i353x972zjkwgi3m8z90wc58613mlfzb0n01djdnm6k5";
+  };
+
+  buildInputs = [ perlPackages.perl makeWrapper ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    mkdir -p $out/share/$pname
+    mkdir -p $out/share/doc/$pname
+    # Install Script Files:
+    # *.pm files
+    for i in *.pm; do
+    install -Dm 755 "$i" "$out/share/$pname/$i"
+    done
+    # Install doc files:
+    install -D COPYING  "$out/share/doc/$pname/COPYING"
+    install -D README.md  "$out/share/doc/$pname/README.md"
+    # Install Executable scripts:
+    install -Dm 755 realTimeConfigQuickScan.pl "$out/bin/realTimeConfigQuickScan"
+    install -Dm 755 QuickScan.pl "$out/bin/QuickScan"
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    wrapProgram $out/bin/realTimeConfigQuickScan \
+      --set PERL5LIB "$out/share/$pname"
+    wrapProgram $out/bin/QuickScan \
+      --set PERL5LIB "$out/share/$pname:${with perlPackages; makePerlPath [ Tk ]}"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Linux configuration checker for systems to be used for real-time audio";
+    homepage = "https://github.com/raboof/realtimeconfigquickscan";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ magnetophon ];
+    platforms = platforms.linux ;
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/audio/reaper/default.nix b/nixpkgs/pkgs/applications/audio/reaper/default.nix
index 9de70d83ee5e..e15addd78b1e 100644
--- a/nixpkgs/pkgs/applications/audio/reaper/default.nix
+++ b/nixpkgs/pkgs/applications/audio/reaper/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "reaper";
-  version = "6.10";
+  version = "6.12c";
 
   src = fetchurl {
     url = "https://www.reaper.fm/files/${stdenv.lib.versions.major version}.x/reaper${builtins.replaceStrings ["."] [""] version}_linux_x86_64.tar.xz";
-    sha256 = "1p54phmsa6xbqxb5cpgwnz7ny4famb8zi25y3cmxwgr4pfy94b2p";
+    sha256 = "1xnd4qvgwsz1dmgb656i611776dqcb84m1gh30i8jhpwcr9ym46w";
   };
 
   nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/audio/renoise/default.nix b/nixpkgs/pkgs/applications/audio/renoise/default.nix
index 1cbd5b3afa28..0ae65cb8c373 100644
--- a/nixpkgs/pkgs/applications/audio/renoise/default.nix
+++ b/nixpkgs/pkgs/applications/audio/renoise/default.nix
@@ -14,7 +14,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "renoise";
-  version = "3.2.1";
+  version = "3.2.2";
 
   src =
     if stdenv.hostPlatform.system == "x86_64-linux" then
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 		          "https://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_Linux.tar.gz"
 		          "https://web.archive.org/web/https://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_Linux.tar.gz"
 		      ];
-		      sha256 = "0dhcidgnjzd4abw0xw1waj9mazp03nbvjcr2xx09l8gnfrkvny46";
+		      sha256 = "1v249kmyidx55kppk3sry7yg6hl1a91ixhnwz36h4y134fs7bkrl";
 		    }
         else
         	releasePath
diff --git a/nixpkgs/pkgs/applications/audio/rhvoice/default.nix b/nixpkgs/pkgs/applications/audio/rhvoice/default.nix
index 7a0a8a59a084..a29fcf383b8e 100644
--- a/nixpkgs/pkgs/applications/audio/rhvoice/default.nix
+++ b/nixpkgs/pkgs/applications/audio/rhvoice/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, pkgconfig, fetchFromGitHub, scons
+{ stdenv, lib, pkgconfig, fetchFromGitHub, sconsPackages
 , python, glibmm, libpulseaudio, libao }:
 
 let
@@ -15,7 +15,7 @@ in stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [
-    scons.py2 pkgconfig
+    sconsPackages.scons_3_1_2 pkgconfig
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/audio/rosegarden/default.nix b/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
index 921c8fff67a1..8bda179df149 100644
--- a/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
+++ b/nixpkgs/pkgs/applications/audio/rosegarden/default.nix
@@ -3,12 +3,12 @@
 , liblo, libsamplerate, libsndfile, lirc ? null, lrdf, qtbase }:
 
 stdenv.mkDerivation (rec {
-  version = "19.12";
+  version = "20.06";
   pname = "rosegarden";
 
   src = fetchurl {
     url = "mirror://sourceforge/rosegarden/${pname}-${version}.tar.bz2";
-    sha256 = "1qcaxc6hdzva7kwxxhgl95437fagjbxzv4mihsgpr7y9qk08ppw1";
+    sha256 = "1i9x9rkqwwdrk77xl5ra8i48cjirbc7fbisnj0nnclccwaq0wk6r";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/applications/audio/seq66/default.nix b/nixpkgs/pkgs/applications/audio/seq66/default.nix
new file mode 100644
index 000000000000..6b3a3939b43f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/seq66/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkg-config, qttools, which
+, alsaLib, libjack2, liblo, qtbase
+}:
+
+stdenv.mkDerivation rec {
+  pname = "seq66";
+  version = "0.90.5";
+
+  src = fetchFromGitHub {
+    owner = "ahlstromcj";
+    repo = pname;
+    rev = version;
+    sha256 = "1jvra1wzlycfpvffnqidk264zw6fyl4fsghkw5256ldk22aalmq9";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config qttools which ];
+
+  buildInputs = [ alsaLib libjack2 liblo qtbase ];
+
+  postPatch = ''
+    for d in libseq66/include libseq66/src libsessions/include libsessions/src seq_qt5/src seq_rtmidi/include seq_rtmidi/src Seqtool/src; do
+      substituteInPlace "$d/Makefile.am" --replace '$(git_info)' '${version}'
+    done
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/ahlstromcj/seq66";
+    description = "Loop based midi sequencer with Qt GUI derived from seq24 and sequencer64";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ orivej ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/sfizz/default.nix b/nixpkgs/pkgs/applications/audio/sfizz/default.nix
index acec8c54e53c..b4ff5fc56d56 100644
--- a/nixpkgs/pkgs/applications/audio/sfizz/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sfizz/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sfizz";
-  version = "0.3.2";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "sfztools";
     repo = pname;
     rev = version;
-    sha256 = "1px22x9lb6wyqfbv1jg1sbl1rsnwrzs8sm4dnas1w4ifchiv3ymd";
+    sha256 = "0zpmvmh7n0064rxfqxb7z9rnz493k7yq7nl0vxppqnasg97jn5f3";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/audio/shortwave/default.nix b/nixpkgs/pkgs/applications/audio/shortwave/default.nix
index d26d314cd3e4..055694fb40f5 100644
--- a/nixpkgs/pkgs/applications/audio/shortwave/default.nix
+++ b/nixpkgs/pkgs/applications/audio/shortwave/default.nix
@@ -23,17 +23,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shortwave";
-  version = "1.0.1";
+  version = "1.1.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "Shortwave";
     rev = version;
-    sha256 = "13lhlh75vw02vkcknl4nvy0yvpdf0qx811mmyja8bzs4rj1j9kr8";
+    sha256 = "1vlhp2ss06j41simjrrjg38alp85jddhqyvccy6bhfzm0gzynwld";
   };
 
-  cargoSha256 = "0aph5z54a6i5p8ga5ghhx1c9hjc8zdw5pkv9inmanca0bq3hkdlh";
+  cargoSha256 = "181699rlpr5dszc18wg0kbss3gfskxaz9lpxpgsc4yfb6ip89qnk";
 
   nativeBuildInputs = [
     cargo
diff --git a/nixpkgs/pkgs/applications/audio/sidplayfp/default.nix b/nixpkgs/pkgs/applications/audio/sidplayfp/default.nix
index b0a50bbf128e..2ebf56fee521 100644
--- a/nixpkgs/pkgs/applications/audio/sidplayfp/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sidplayfp/default.nix
@@ -1,18 +1,36 @@
-{ stdenv, fetchurl, pkgconfig, libsidplayfp }:
+{ stdenv
+, lib
+, fetchurl
+, pkgconfig
+, libsidplayfp
+, alsaSupport ? stdenv.hostPlatform.isLinux
+, alsaLib
+, pulseSupport ? stdenv.hostPlatform.isLinux
+, libpulseaudio
+}:
 
+assert alsaSupport -> alsaLib != null;
+assert pulseSupport -> libpulseaudio != null;
+let
+  inherit (lib) optional;
+  inherit (lib.versions) majorMinor;
+in
 stdenv.mkDerivation rec {
-  version = "1.4.4";
   pname = "sidplayfp";
+  version = "2.0.2";
 
   src = fetchurl {
-    url = "mirror://sourceforge/sidplay-residfp/sidplayfp/1.4/${pname}-${version}.tar.gz";
-    sha256 = "0arsrg3f0fsinal22qjmj3r6500bcbgqnx26fsz049ldl716kz1m";
+    url = "mirror://sourceforge/sidplay-residfp/sidplayfp/${majorMinor version}/${pname}-${version}.tar.gz";
+    sha256 = "1s2dfs9z1hwarpfzawg11wax9nh0zcqx4cafwq7iysckyg4scz4k";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ]
+    ++ optional alsaSupport alsaLib
+    ++ optional pulseSupport libpulseaudio;
+
   buildInputs = [ libsidplayfp ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A SID player using libsidplayfp";
     homepage = "https://sourceforge.net/projects/sidplay-residfp/";
     license = with licenses; [ gpl2Plus ];
diff --git a/nixpkgs/pkgs/applications/audio/snapcast/default.nix b/nixpkgs/pkgs/applications/audio/snapcast/default.nix
index 531a633f05da..5eff8f82e89d 100644
--- a/nixpkgs/pkgs/applications/audio/snapcast/default.nix
+++ b/nixpkgs/pkgs/applications/audio/snapcast/default.nix
@@ -1,5 +1,6 @@
 { stdenv, lib, fetchFromGitHub, cmake, pkgconfig
-, alsaLib, asio, avahi, flac, libogg, libvorbis }:
+, alsaLib, asio, avahi, boost170, flac, libogg, libvorbis, soxr
+, nixosTests }:
 
 let
 
@@ -33,21 +34,21 @@ in
 
 stdenv.mkDerivation rec {
   pname = "snapcast";
-  version = "0.15.0";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner  = "badaix";
     repo   = "snapcast";
     rev    = "v${version}";
-    sha256 = "11rnpy6w3wm240qgmkp74k5w8wh5b7hzfx05qrnh6l7ng7m25ky2";
+    sha256 = "152ic8hlyawcmj9pykb33xc6yx7il6yb9ilmsy6m9nlh40m8yxls";
   };
 
-  nativeBuildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig boost170.dev ];
   # snapcast also supports building against tremor but as we have libogg, that's
   # not needed
   buildInputs = [
     alsaLib asio avahi flac libogg libvorbis
-    aixlog popl
+    aixlog popl soxr
   ];
 
   # Upstream systemd unit files are pretty awful, so we provide our own in a
@@ -57,6 +58,8 @@ stdenv.mkDerivation rec {
     cp -r ../doc/* ../*.md $out/share/doc/snapcast
   '';
 
+  passthru.tests.snapcast = nixosTests.snapcast;
+
   meta = with lib; {
     description = "Synchronous multi-room audio player";
     homepage = "https://github.com/badaix/snapcast";
diff --git a/nixpkgs/pkgs/applications/audio/snd/default.nix b/nixpkgs/pkgs/applications/audio/snd/default.nix
index 9bc8fcb66946..76ea4efeace8 100644
--- a/nixpkgs/pkgs/applications/audio/snd/default.nix
+++ b/nixpkgs/pkgs/applications/audio/snd/default.nix
@@ -4,11 +4,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "snd-20.2";
+  name = "snd-20.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/snd/${name}.tar.gz";
-    sha256 = "0ip4sfyxqlbghlggipmvvqjqs1a7qas0zcmzw8d1nwg6krjkfj0r";
+    sha256 = "016slh34gb6qqb38m8k9yg48rbhc5p12084szcwvanhh5v7fc7mk";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/audio/sonata/default.nix b/nixpkgs/pkgs/applications/audio/sonata/default.nix
index 68eefadf4110..cf3f173a096e 100644
--- a/nixpkgs/pkgs/applications/audio/sonata/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sonata/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, pkgconfig, gettext, intltool, wrapGAppsHook
-, python3Packages, gnome3, gtk3, gsettings-desktop-schemas, gobject-introspection }:
+{ stdenv, fetchFromGitHub, wrapGAppsHook, gettext
+, python3Packages, gnome3, gtk3, glib, gdk-pixbuf, gsettings-desktop-schemas, gobject-introspection }:
 
 let
   inherit (python3Packages) buildPythonApplication isPy3k dbus-python pygobject3 mpd2 setuptools;
@@ -16,26 +16,38 @@ in buildPythonApplication rec {
 
   disabled = !isPy3k;
 
-  nativeBuildInputs = [ pkgconfig gettext ];
+  nativeBuildInputs = [
+    gettext
+    gobject-introspection
+    wrapGAppsHook
+  ];
+
   buildInputs = [
-    intltool wrapGAppsHook
+    glib
     gnome3.adwaita-icon-theme
     gsettings-desktop-schemas
+    gtk3
+    gdk-pixbuf
+  ];
+
+  # The optional tagpy dependency (for editing metadata) is not yet
+  # included because it's difficult to build.
+  pythonPath = [
+    dbus-python
+    mpd2
+    pygobject3
+    setuptools
   ];
 
+  # Otherwise the setup hook for gobject-introspection is not run:
+  # https://github.com/NixOS/nixpkgs/issues/56943
+  strictDeps = false;
+
   postPatch = ''
     # Remove "Local MPD" tab which is not suitable for NixOS.
     sed -i '/localmpd/d' sonata/consts.py
   '';
 
-  propagatedBuildInputs = [
-    gobject-introspection gtk3 pygobject3 setuptools
-  ];
-
-  # The optional tagpy dependency (for editing metadata) is not yet
-  # included because it's difficult to build.
-  pythonPath = [ dbus-python pygobject3 mpd2 ];
-
   meta = {
     description = "An elegant client for the Music Player Daemon";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix b/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix
index b837eb07cf1b..526dd245691b 100644
--- a/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sonic-lineup/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sonic-lineup";
-  version = "1.0.1";
+  version = "1.1";
 
   src = fetchurl {
-    url = "https://code.soundsoftware.ac.uk/attachments/download/2610/${pname}-${version}.tar.gz";
-    sha256 = "0w4v5zr81d8fh97y820r0vj1rrbl0kwgvhfkdnyl4hiabs97b1i7";
+    url = "https://code.soundsoftware.ac.uk/attachments/download/2765/${pname}-${version}.tar.gz";
+    sha256 = "0k45k9fawcm4s5yy05x00pgww7j8m7k2cxcc7g0fn9vqy7vcbq9h";
   };
 
   buildInputs =
diff --git a/nixpkgs/pkgs/applications/audio/sonic-visualiser/default.nix b/nixpkgs/pkgs/applications/audio/sonic-visualiser/default.nix
index e8b6a4d4313b..2593bf38d194 100644
--- a/nixpkgs/pkgs/applications/audio/sonic-visualiser/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sonic-visualiser/default.nix
@@ -1,8 +1,8 @@
 # TODO add plugins having various licenses, see http://www.vamp-plugins.org/download.html
 
 { stdenv, fetchurl, alsaLib, bzip2, fftw, libjack2, libX11, liblo
-, libmad, libogg, lrdf, librdf_raptor, librdf_rasqal, libsamplerate
-, libsndfile, pkgconfig, libpulseaudio, qtbase, qtsvg, redland
+, libmad, lrdf, librdf_raptor, librdf_rasqal, libsamplerate
+, libsndfile, pkg-config, libpulseaudio, qtbase, qtsvg, redland
 , rubberband, serd, sord, vamp-plugin-sdk, fftwFloat
 , capnproto, liboggz, libfishsound, libid3tag, opusfile
 , wrapQtAppsHook
@@ -10,13 +10,14 @@
 
 stdenv.mkDerivation rec {
   pname = "sonic-visualiser";
-  version = "4.0.1";
+  version = "4.2";
 
   src = fetchurl {
-    url = "https://code.soundsoftware.ac.uk/attachments/download/2607/${pname}-${version}.tar.gz";
-    sha256 = "14674adzp3chilymna236qyvci3b1zmi3wyz696wk7bcd3ndpsg6";
+    url = "https://code.soundsoftware.ac.uk/attachments/download/2755/${pname}-${version}.tar.gz";
+    sha256 = "1wsvranhvdl21ksbinbgb55qvs3g2d4i57ssj1vx2aln6m01ms9q";
   };
 
+  nativeBuildInputs = [ pkg-config wrapQtAppsHook ];
   buildInputs =
     [ libsndfile qtbase qtsvg fftw fftwFloat bzip2 lrdf rubberband
       libsamplerate vamp-plugin-sdk alsaLib librdf_raptor librdf_rasqal redland
@@ -27,7 +28,6 @@ stdenv.mkDerivation rec {
       # portaudio
       libpulseaudio
       libmad
-      libogg # ?
       libfishsound
       liblo
       libX11
@@ -37,15 +37,13 @@ stdenv.mkDerivation rec {
       opusfile
     ];
 
-  nativeBuildInputs = [ pkgconfig wrapQtAppsHook ];
-
-  enableParallelBuilding = true;
-
   # comment out the tests
   preConfigure = ''
     sed -i 's/sub_test_svcore_/#sub_test_svcore_/' sonic-visualiser.pro
   '';
 
+  enableParallelBuilding = true;
+
   meta = with stdenv.lib; {
     description = "View and analyse contents of music audio files";
     homepage = "https://www.sonicvisualiser.org/";
diff --git a/nixpkgs/pkgs/applications/audio/sooperlooper/default.nix b/nixpkgs/pkgs/applications/audio/sooperlooper/default.nix
index e7a43ad8a595..f1c76bf0d33c 100644
--- a/nixpkgs/pkgs/applications/audio/sooperlooper/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sooperlooper/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sooperlooper";
-  version = "unstable-2019-09-30";
+  version = "1.7.4";
 
   src = fetchFromGitHub {
     owner = "essej";
     repo = "sooperlooper";
-    rev = "4d1da14176e16b0f56b727bb1e6c2e8957515625";
-    sha256 = "1gsgqa7hdymzw2al1ymzv0f33y161dyhh3fmy88lpjwv3bfchamg";
+    rev = "v${builtins.replaceStrings [ "." ] [ "_" ] version}";
+    sha256 = "1jng9bkb7iikad0dy1fkiq9wjjdhh1xi1p0cp2lvnz1dsc4yk6iw";
   };
 
   autoreconfPhase = ''
@@ -51,6 +51,8 @@ stdenv.mkDerivation rec {
     fftw
   ];
 
+  enableParallelBuilding = true;
+
   meta = with stdenv.lib; {
     description = "A live looping sampler capable of immediate loop recording, overdubbing, multiplying, reversing and more";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/audio/soundkonverter/default.nix b/nixpkgs/pkgs/applications/audio/soundkonverter/default.nix
index df5806b50b9e..3e133a0caa15 100644
--- a/nixpkgs/pkgs/applications/audio/soundkonverter/default.nix
+++ b/nixpkgs/pkgs/applications/audio/soundkonverter/default.nix
@@ -1,6 +1,6 @@
 # currently needs to be installed into an environment and needs a `kbuildsycoca5` run afterwards for plugin discovery
 {
-  mkDerivation, fetchFromGitHub, lib, makeWrapper,
+  mkDerivation, fetchFromGitHub, fetchpatch, lib, makeWrapper,
   cmake, extra-cmake-modules, pkgconfig,
   libkcddb, kconfig, kconfigwidgets, ki18n, kdelibs4support, kio, solid, kwidgetsaddons, kxmlgui,
   qtbase, phonon, 
@@ -53,6 +53,15 @@ mkDerivation rec {
     rev = "v" + version;
     sha256 = "1g2khdsjmsi4zzynkq8chd11cbdhjzmi37r9jhpal0b730nq9x7l";
   };
+  patches = [
+    # already merged into master, so it can go during the next release
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/dfaust/soundkonverter/pull/87.patch";
+      sha256 = "sha256-XIpD4ZMTZVcu+F27OtpRy51H+uQgpd5l22IZ6XsD64w=";
+      name = "soundkonverter_taglib.patch";
+      stripLen = 1;
+    })
+  ];
   enableParallelBuilding = true;
   nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig kdelibs4support makeWrapper ];
   propagatedBuildInputs = [ libkcddb kconfig kconfigwidgets ki18n kdelibs4support kio solid kwidgetsaddons kxmlgui qtbase phonon];
diff --git a/nixpkgs/pkgs/applications/audio/soundtracker/default.nix b/nixpkgs/pkgs/applications/audio/soundtracker/default.nix
index ce73203c9590..1fd341765b09 100644
--- a/nixpkgs/pkgs/applications/audio/soundtracker/default.nix
+++ b/nixpkgs/pkgs/applications/audio/soundtracker/default.nix
@@ -6,18 +6,21 @@
 , alsaLib
 , SDL
 , jack2
+, audiofile
 , goocanvas # graphical envelope editing
 }:
 
 stdenv.mkDerivation rec {
   pname = "soundtracker";
-  version = "1.0.0.1";
+  version = "1.0.1";
 
   src = fetchurl {
     # Past releases get moved to the "old releases" directory.
-    # Only the latest release (currently a prerelease) is at the top level.
-    url = "mirror://sourceforge/soundtracker/old%20releases/soundtracker-${version}.tar.bz2";
-    sha256 = "1ggliswz5ngmlnrnyhv3x1arh5w77an0ww9p53cddp9aas5q11jm";
+    # Only the latest release is at the top level.
+    # Nonetheless, only the name of the file seems to affect which file is
+    # downloaded, so this path should be fine both for old and current releases.
+    url = "mirror://sourceforge/soundtracker/soundtracker-${version}.tar.bz2";
+    sha256 = "0m5iiqccch6w53khpvdldz59zymw13vmwqc5ggx3sn41riwbd6ks";
   };
 
   nativeBuildInputs = [
@@ -28,9 +31,12 @@ stdenv.mkDerivation rec {
     gtk2
     SDL
     jack2
+    audiofile
     goocanvas
   ] ++ stdenv.lib.optional stdenv.isLinux alsaLib;
 
+  hardeningDisable = [ "format" ];
+
   meta = with stdenv.lib; {
     description = "A music tracking tool similar in design to the DOS program FastTracker and the Amiga legend ProTracker";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/audio/spotify-tui/default.nix b/nixpkgs/pkgs/applications/audio/spotify-tui/default.nix
index 693de28bf472..dd063b2d039c 100644
--- a/nixpkgs/pkgs/applications/audio/spotify-tui/default.nix
+++ b/nixpkgs/pkgs/applications/audio/spotify-tui/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "spotify-tui";
-  version = "0.20.0";
+  version = "0.21.0";
 
   src = fetchFromGitHub {
     owner = "Rigellute";
     repo = "spotify-tui";
     rev = "v${version}";
-    sha256 = "1gdsk620md5nv1r05jysmfhpbcidh15wzyiklkazsb6cppm6qsiy";
+    sha256 = "0pvgq8r1bb7bdxm50hxl0n7ajplpzp1gnf6j55dn6xwck0syml9y";
   };
 
-  cargoSha256 = "0irfdmik6nrpfs9yzva5q351cfyf1cijxa2a08prwdccrivdk98a";
+  cargoSha256 = "07v1qm5ky99j2lwbl00g80z0f8hfrpwgyqsm8fnda6y9s3vzzdgz";
 
   nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkgconfig python3 ];
   buildInputs = [ ]
@@ -24,6 +24,5 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Rigellute/spotify-tui/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ jwijenbergh ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/audio/spotify/default.nix b/nixpkgs/pkgs/applications/audio/spotify/default.nix
index 245d96dee018..13edd8ea3830 100644
--- a/nixpkgs/pkgs/applications/audio/spotify/default.nix
+++ b/nixpkgs/pkgs/applications/audio/spotify/default.nix
@@ -64,7 +64,7 @@ let
 in
 
 stdenv.mkDerivation {
-  pname = "spotify";
+  pname = "spotify-unwrapped";
   inherit version;
 
   # fetch from snapcraft instead of the debian repository most repos fetch from.
diff --git a/nixpkgs/pkgs/applications/audio/spotify/wrapper.nix b/nixpkgs/pkgs/applications/audio/spotify/wrapper.nix
new file mode 100644
index 000000000000..418ef3cbc03e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/spotify/wrapper.nix
@@ -0,0 +1,31 @@
+{ symlinkJoin
+, lib
+, spotify-unwrapped
+, makeWrapper
+
+  # High-DPI support: Spotify's --force-device-scale-factor argument; not added
+  # if `null`, otherwise, should be a number.
+, deviceScaleFactor ? null
+}:
+
+symlinkJoin {
+  name = "spotify-${spotify-unwrapped.version}";
+
+  paths = [ spotify-unwrapped.out ];
+
+  nativeBuildInputs = [ makeWrapper ];
+  preferLocalBuild = true;
+  passthru.unwrapped = spotify-unwrapped;
+  postBuild = ''
+    wrapProgram $out/bin/spotify \
+        ${lib.optionalString (deviceScaleFactor != null) ''
+            --add-flags ${lib.escapeShellArg "--force-device-scale-factor=${
+                builtins.toString deviceScaleFactor
+              }"}
+        ''}
+  '';
+
+  meta = spotify-unwrapped.meta // {
+    priority = (spotify-unwrapped.meta.priority or 0) - 1;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/strawberry/default.nix b/nixpkgs/pkgs/applications/audio/strawberry/default.nix
index 4a195b4c3456..d6428e40312b 100644
--- a/nixpkgs/pkgs/applications/audio/strawberry/default.nix
+++ b/nixpkgs/pkgs/applications/audio/strawberry/default.nix
@@ -30,18 +30,18 @@
 , withGstreamer ? true
 , gst_all_1 ? null
 , withVlc ? true
-, vlc ? null
+, libvlc ? null
 }:
 
 mkDerivation rec {
   pname = "strawberry";
-  version = "0.6.12";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "jonaski";
     repo = pname;
     rev = version;
-    sha256 = "0p09xp7andfg0gvarzc979pwglr0xjj1c0cziqj0c9z7p1v0fkws";
+    sha256 = "sha256-YUR9SDiRV/gJKx4H1cgdDnKGulTQPVP7MpHyihUEgqg=";
   };
 
   buildInputs = [
@@ -75,7 +75,7 @@ mkDerivation rec {
     gst-plugins-good
     gst-plugins-ugly
   ])
-  ++ lib.optional withVlc vlc;
+  ++ lib.optional withVlc libvlc;
 
   nativeBuildInputs = [ cmake ninja pkgconfig qttools ];
 
diff --git a/nixpkgs/pkgs/applications/audio/sublime-music/default.nix b/nixpkgs/pkgs/applications/audio/sublime-music/default.nix
new file mode 100644
index 000000000000..7e3c1b9164f1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/sublime-music/default.nix
@@ -0,0 +1,60 @@
+{ lib, python3Packages, gobject-introspection, gtk3, pango, wrapGAppsHook
+
+, chromecastSupport ? false
+, serverSupport ? false
+, keyringSupport ? true
+, notifySupport ? true, libnotify
+, networkSupport ? true, networkmanager
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "sublime-music";
+  version = "0.11.7";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "1x6b02gw46gp6qcgv67j7k3gr1dpfczbyma6dxanag8pnpqrj8qi";
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    python3Packages.setuptools
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gtk3
+    pango
+  ]
+   ++ lib.optional notifySupport libnotify
+   ++ lib.optional networkSupport networkmanager
+  ;
+
+  propagatedBuildInputs = with python3Packages; [
+    dataclasses-json
+    deepdiff
+    fuzzywuzzy
+    mpv
+    peewee
+    pygobject3
+    python-Levenshtein
+    python-dateutil
+    requests
+    semver
+  ]
+   ++ lib.optional chromecastSupport PyChromecast
+   ++ lib.optional keyringSupport keyring
+   ++ lib.optional serverSupport bottle
+  ;
+
+  # hook for gobject-introspection doesn't like strictDeps
+  # https://github.com/NixOS/nixpkgs/issues/56943
+  strictDeps = false;
+
+  meta = with lib; {
+    description = "GTK3 Subsonic/Airsonic client";
+    homepage = "https://sublimemusic.app/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ albakham ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/sunvox/default.nix b/nixpkgs/pkgs/applications/audio/sunvox/default.nix
index 48ad9bc971c2..2cd48806f7d0 100644
--- a/nixpkgs/pkgs/applications/audio/sunvox/default.nix
+++ b/nixpkgs/pkgs/applications/audio/sunvox/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://www.warmplace.ru/soft/sunvox/sunvox-${version}.zip";
-    sha256 = "15pyc3dk4dqlivgzki8sv7xpwg3bbn5xv9338g16a0dbn7s3kich";
+    sha256 = "04f7psm0lvc09nw7d2wp0sncf37bym2v7hhxp4v8c8gdgayj7k8m";
   };
 
   buildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/applications/audio/surge/default.nix b/nixpkgs/pkgs/applications/audio/surge/default.nix
new file mode 100644
index 000000000000..1614bbfae667
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/surge/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, cmake, git, pkg-config, python3
+, cairo, libsndfile, libxcb, libxkbcommon, xcbutil, xcbutilcursor, xcbutilkeysyms, zenity
+}:
+
+stdenv.mkDerivation rec {
+  pname = "surge";
+  version = "1.7.1";
+
+  src = fetchFromGitHub {
+    owner = "surge-synthesizer";
+    repo = pname;
+    rev = "release_${version}";
+    sha256 = "1b3ccc78vrpzy18w7070zfa250dnd1bww147xxcnj457vd6n065s";
+    leaveDotGit = true; # for SURGE_VERSION
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake git pkg-config python3 ];
+  buildInputs = [ cairo libsndfile libxcb libxkbcommon xcbutil xcbutilcursor xcbutilkeysyms zenity ];
+
+  postPatch = ''
+    substituteInPlace src/common/SurgeStorage.cpp --replace "/usr/share/Surge" "$out/share/surge"
+    substituteInPlace src/common/gui/PopupEditorDialog.cpp --replace '"zenity' '"${zenity}/bin/zenity'
+    substituteInPlace src/linux/UserInteractionsLinux.cpp --replace '"zenity' '"${zenity}/bin/zenity'
+    substituteInPlace vstgui.surge/vstgui/lib/platform/linux/x11fileselector.cpp --replace /usr/bin/zenity ${zenity}/bin/zenity
+  '';
+
+  installPhase = ''
+    mkdir -p $out/lib/lv2 $out/lib/vst3 $out/share/surge
+    cp -r surge_products/Surge.lv2 $out/lib/lv2/
+    cp -r surge_products/Surge.vst3 $out/lib/vst3/
+    cp -r ../resources/data/* $out/share/surge/
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    cd ..
+    build/surge-headless
+  '';
+
+  meta = with stdenv.lib; {
+    description = "LV2 & VST3 synthesizer plug-in (previously released as Vember Audio Surge)";
+    homepage = "https://surge-synthesizer.github.io";
+    license = licenses.gpl3;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ magnetophon orivej ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/synthv1/default.nix b/nixpkgs/pkgs/applications/audio/synthv1/default.nix
index c7e936d28e50..74f68283fd60 100644
--- a/nixpkgs/pkgs/applications/audio/synthv1/default.nix
+++ b/nixpkgs/pkgs/applications/audio/synthv1/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "synthv1";
-  version = "0.9.14";
+  version = "0.9.15";
 
   src = fetchurl {
     url = "mirror://sourceforge/synthv1/${pname}-${version}.tar.gz";
-    sha256 = "08n83krkak20924flb9azhm9hn40lyfvn29m63zs3lw3wajf0b40";
+    sha256 = "047y2l7ipzv00ly54f074v6p043xjml7vz0svc7z81bhx74vs0ix";
   };
 
   buildInputs = [ qtbase qttools libjack2 alsaLib liblo lv2 ];
diff --git a/nixpkgs/pkgs/applications/audio/talentedhack/default.nix b/nixpkgs/pkgs/applications/audio/talentedhack/default.nix
new file mode 100644
index 000000000000..b30cf59f7b30
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/talentedhack/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, lv2, fftwFloat, pkgconfig }:
+
+stdenv.mkDerivation rec {
+  pname = "talentedhack";
+  version = "1.86";
+
+  src = fetchFromGitHub {
+    owner = "jeremysalwen";
+    repo = "talentedhack";
+    rev = "v${version}";
+    sha256 = "0kwvayalysmk7y49jq0k16al252md8d45z58hphzsksmyz6148bx";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ lv2 fftwFloat ];
+
+  # To avoid name clashes, plugins should be compiled with symbols hidden, except for `lv2_descriptor`:
+  preConfigure = ''
+    sed -r 's/^CFLAGS.*$/\0 -fvisibility=hidden/' -i Makefile
+  '';
+
+  installPhase = ''
+    d=$out/lib/lv2/talentedhack.lv2
+    mkdir -p $d
+    cp *.so *.ttl $d
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/jeremysalwen/TalentedHack";
+    description = "LV2 port of Autotalent pitch correction plugin";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.michalrus ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/tamgamp.lv2/default.nix b/nixpkgs/pkgs/applications/audio/tamgamp.lv2/default.nix
new file mode 100644
index 000000000000..9f51f9d022d8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/tamgamp.lv2/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitHub, pkg-config, lv2, zita-resampler }:
+
+stdenv.mkDerivation rec {
+  pname = "tamgamp.lv2";
+  version = "unstable-2020-06-14";
+
+  src = fetchFromGitHub {
+    owner = "sadko4u";
+    repo = pname;
+    rev = "426da74142fcb6b7687a35b2b1dda3392e171b92";
+    sha256 = "0dqsnim7v79rx13bkkh143gqz0xg26cpf6ya3mrwwprpf5hns2bp";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ lv2 zita-resampler ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/sadko4u/tamgamp.lv2";
+    description = "Guitar amplifier simulator";
+    longDescription = ''
+       Tamgamp (Pronouncement: "Damage Amp") is an LV2 guitar amp simulator that provides two plugins:
+
+        - Tamgamp - a plugin based on Guitarix DK Builder simulated chains.
+        - TamgampGX - a plugin based on tuned Guitarix internal amplifiers implementation.
+
+       The reference to the original Guitarix project: https://guitarix.org/
+
+       It simulates the set of the following guitar amplifiers:
+
+       - Fender Princeton Reverb-amp AA1164 (without reverb module)
+       - Fender Twin Reverb-Amp AA769 (Normal channel, bright off)
+       - Fender Twin Reverb-Amp AA769 (Vibrato channel, bright on)
+       - Marshall JCM-800 High-gain input
+       - Marshall JCM-800 Low-gain input
+       - Mesa/Boogie DC3 preamplifier (lead channel)
+       - Mesa/Boogie DC3 preamplifier (rhythm channel)
+       - Mesa Dual Rectifier preamplifier (orange channel, less gain)
+       - Mesa Dual Rectifier preamplifier (red channel, more gain)
+       - Peavey 5150II crunch channel
+       - Peavey 5150II lead channel
+       - VOX AC-30 Brilliant channel
+       - VOX AC-30 normal channel
+     '';
+    maintainers = [ maintainers.magnetophon ];
+    platforms = platforms.linux;
+    license = licenses.lgpl3Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/transcribe/default.nix b/nixpkgs/pkgs/applications/audio/transcribe/default.nix
deleted file mode 100644
index d9469fa4b7ae..000000000000
--- a/nixpkgs/pkgs/applications/audio/transcribe/default.nix
+++ /dev/null
@@ -1,73 +0,0 @@
-{ stdenv, fetchzip, wrapGAppsHook, alsaLib, atk, cairo, gdk-pixbuf
-, glib, gst_all_1,  gtk3, libSM, libX11, libpng12, pango, zlib }:
-
-stdenv.mkDerivation rec {
-  pname = "transcribe";
-  version = "8.72";
-
-  src = if stdenv.hostPlatform.system == "i686-linux" then
-    fetchzip {
-      url = "https://www.seventhstring.com/xscribe/downlinux32/xscsetup.tar.gz";
-      sha256 = "1h5l7ry9c9awpxfnd29b0wm973ifrhj17xl5d2fdsclw2swsickb";
-    }
-  else if stdenv.hostPlatform.system == "x86_64-linux" then
-    fetchzip {
-      url = "https://www.seventhstring.com/xscribe/downlinux64/xsc64setup.tar.gz";
-      sha256 = "1rpd3ppnx5i5yrnfbjrx7h7dk48kwl99i9lnpa75ap7nxvbiznm0";
-    }
-  else throw "Platform not supported";
-
-  nativeBuildInputs = [ wrapGAppsHook ];
-
-  buildInputs = with gst_all_1; [ gst-plugins-base gst-plugins-good
-    gst-plugins-bad gst-plugins-ugly ];
-
-  dontPatchELF = true;
-
-  libPath = with gst_all_1; stdenv.lib.makeLibraryPath [
-    stdenv.cc.cc glib gtk3 atk pango cairo gdk-pixbuf alsaLib
-    libX11 libSM libpng12 gstreamer gst-plugins-base zlib
-  ];
-
-  installPhase = ''
-    mkdir -p $out/bin $out/libexec $out/share/doc
-    cp transcribe $out/libexec
-    cp xschelp.htb readme_gtk.html $out/share/doc
-    cp -r gtkicons $out/share/icons
-
-    ln -s $out/share/doc/xschelp.htb $out/libexec
-
-    patchelf \
-      --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
-      $out/libexec/transcribe
-  '';
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH_1_0"
-      --prefix LD_LIBRARY_PATH : "${libPath}"
-    )
-  '';
-
-  postFixup = ''
-    ln -s $out/libexec/transcribe $out/bin/
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Software to help transcribe recorded music";
-    longDescription = ''
-      The Transcribe! application is an assistant for people who want
-      to work out a piece of music from a recording, in order to write
-      it out, or play it themselves, or both. It doesn't do the
-      transcribing for you, but it is essentially a specialised player
-      program which is optimised for the purpose of transcription. It
-      has many transcription-specific features not found on
-      conventional music players.
-    '';
-    homepage = "https://www.seventhstring.com/xscribe/";
-    license = licenses.unfree;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ michalrus ];
-    broken = true;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/audio/tuijam/default.nix b/nixpkgs/pkgs/applications/audio/tuijam/default.nix
new file mode 100644
index 000000000000..8a08b64508d7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/tuijam/default.nix
@@ -0,0 +1,46 @@
+{ buildPythonApplication
+, fetchFromGitHub
+, lib
+, python3Packages
+, youtube-dl
+}:
+
+buildPythonApplication rec {
+  pname = "tuijam";
+  version = "unstable-2020-06-05";
+
+  src = fetchFromGitHub {
+    owner = "cfangmeier";
+    repo = pname;
+    rev = "7baec6f6e80ee90da0d0363b430dd7d5695ff03b";
+    sha256 = "1l0s88jvj99jkxnczw5nfj78m8vihh29g815n4mg9jblad23mgx5";
+  };
+
+  buildInputs = [ python3Packages.Babel ];
+
+  # the package has no tests
+  doCheck = false;
+
+  propagatedBuildInputs = with python3Packages; [
+    gmusicapi
+    google_api_python_client
+    mpv
+    pydbus
+    pygobject3
+    pyyaml
+    requests
+    rsa
+    urwid
+  ];
+
+  meta = with lib; {
+    description = "A fancy TUI client for Google Play Music";
+    longDescription = ''
+      TUIJam seeks to make a simple, attractive, terminal-based interface to
+      listening to music for Google Play Music All-Access subscribers.
+    '';
+    homepage    = "https://github.com/cfangmeier/tuijam";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/tunefish/default.nix b/nixpkgs/pkgs/applications/audio/tunefish/default.nix
new file mode 100644
index 000000000000..72802c4f8784
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/tunefish/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, pkg-config, python3
+, alsaLib, curl, freetype, gtk3, libGL, libX11, libXext, libXinerama, webkitgtk
+}:
+
+stdenv.mkDerivation {
+  pname = "tunefish";
+  version = "unstable-2020-08-13";
+
+  src = fetchFromGitHub {
+    owner = "jpcima";
+    repo = "tunefish";
+    rev = "b3d83cc66201619f6399500f6897fbeb1786d9ed";
+    fetchSubmodules = true;
+    sha256 = "0rjpq3s609fblzkvnc9729glcnfinmxljh0z8ldpzr245h367zxh";
+  };
+
+  nativeBuildInputs = [ pkg-config python3 ];
+  buildInputs = [ alsaLib curl freetype gtk3 libGL libX11 libXext libXinerama webkitgtk ];
+
+  postPatch = ''
+    patchShebangs src/tunefish4/generate-lv2-ttl.py
+  '';
+
+  makeFlags = [
+    "-C" "src/tunefish4/Builds/LinuxMakefile"
+    "CONFIG=Release"
+  ];
+
+  installPhase = ''
+    mkdir -p $out/lib/lv2
+    cp -r src/tunefish4/Builds/LinuxMakefile/build/Tunefish4.lv2 $out/lib/lv2
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = "https://tunefish-synth.com/";
+    description = "Virtual analog synthesizer LV2 plugin";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ orivej ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/uhhyou.lv2/default.nix b/nixpkgs/pkgs/applications/audio/uhhyou.lv2/default.nix
new file mode 100644
index 000000000000..732e9d8433f6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/uhhyou.lv2/default.nix
@@ -0,0 +1,67 @@
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+, python3
+, fftw
+, libGL
+, libX11
+, libjack2
+, liblo
+, lv2
+}:
+
+stdenv.mkDerivation rec {
+  # this is what upstream calls the package, see:
+  # https://github.com/ryukau/LV2Plugins#uhhyou-plugins-lv2
+  pname = "uhhyou.lv2";
+  version = "unstable-2020-07-31";
+
+  src = fetchFromGitHub {
+    owner = "ryukau";
+    repo =  "LV2Plugins";
+    rev = "6189be67acaeb95452f8adab73a731d94a7b6f47";
+    fetchSubmodules = true;
+    sha256 = "049gigx2s89z8vf17gscs00c150lmcdwya311nbrwa18fz4bx242";
+  };
+
+  nativeBuildInputs = [ pkg-config python3 ];
+
+  buildInputs = [ fftw libGL libX11 libjack2 liblo lv2 ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  prePatch = ''
+    patchShebangs generate-ttl.sh
+    cp patch/NanoVG.cpp lib/DPF/dgl/src/NanoVG.cpp
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Audio plugins for Linux";
+    longDescription = ''
+      Plugin List:
+      - CubicPadSynth
+      - EnvelopedSine
+      - EsPhaser
+      - FDNCymbal
+      - FoldShaper
+      - IterativeSinCluster
+      - L3Reverb
+      - L4Reverb
+      - LatticeReverb
+      - LightPadSynth
+      - ModuloShaper
+      - OddPowShaper
+      - SevenDelay
+      - SoftClipper
+      - SyncSawSynth
+      - TrapezoidSynth
+      - WaveCymbal
+    '';
+    homepage = "https://github.com/ryukau/LV2Plugins/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.magnetophon ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix b/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix
index 2aa09ec0be81..18d8f7415b56 100644
--- a/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix
+++ b/nixpkgs/pkgs/applications/audio/vcv-rack/default.nix
@@ -10,7 +10,7 @@ let
   pfft-source = fetchFromBitbucket {
     owner = "jpommier";
     repo = "pffft";
-    rev = "29e4f76ac53bef048938754f32231d7836401f79";
+    rev = "74d7261be17cf659d5930d4830609406bd7553e3";
     sha256 = "084csgqa6f1a270bhybjayrh3mpyi2jimc87qkdgsqcp8ycsx1l1";
   };
   nanovg-source = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/applications/audio/virtual-ans/default.nix b/nixpkgs/pkgs/applications/audio/virtual-ans/default.nix
new file mode 100644
index 000000000000..24e112aff2b4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/virtual-ans/default.nix
@@ -0,0 +1,89 @@
+{ stdenv
+, fetchzip
+, libX11
+, libXi
+, libGL
+, alsaLib
+, SDL2
+, autoPatchelfHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "virtual-ans";
+  version = "3.0.2c";
+
+  src = fetchzip {
+    url = "https://warmplace.ru/soft/ans/virtual_ans-${version}.zip";
+    sha256 = "03r1v3l7rd59dakr7ndvgsqchv00ppkvi6sslgf1ng07r3rsvb1n";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+  ];
+
+  buildInputs = [
+    stdenv.cc.cc.lib
+    libX11
+    libXi
+    libGL
+    alsaLib
+    SDL2
+  ];
+
+  installPhase = ''
+    mkdir -p $out
+    cp -R ./* $out/
+
+    # Remove all executables except for current architecture
+    ls -1d $out/START*              | grep -v ${startScript}     | xargs rm -rf
+    ls -1d $out/bin/pixilang_linux* | grep -v ${linuxExecutable} | xargs rm -rf
+
+    # Start script performs relative search for resources, so it cannot be moved
+    # to bin directory
+    ln -s $out/${startScript} $out/bin/virtual-ans
+  '';
+
+  startScript = if stdenv.isx86_32 then "START_LINUX_X86"
+    else        if stdenv.isx86_64 then "START_LINUX_X86_64"
+    #else        if stdenv.isDarwin then "START_MACOS.app" # disabled because I cannot test on Darwin
+    else abort "Unsupported platform: ${stdenv.platform.kernelArch}.";
+
+  linuxExecutable = if stdenv.isx86_32 then "pixilang_linux_x86"
+    else            if stdenv.isx86_64 then "pixilang_linux_x86_64"
+    else                                    "";
+
+  meta = with stdenv.lib; {
+    description = "Photoelectronic microtonal/spectral musical instrument";
+    longDescription = ''
+      Virtual ANS is a software simulator of the unique Russian synthesizer ANS
+      - photoelectronic musical instrument created by Evgeny Murzin from 1938 to
+      1958. The ANS made it possible to draw music in the form of a spectrogram
+      (sonogram), without live instruments and performers. It was used by
+      Stanislav Kreichi, Alfred Schnittke, Edward Artemiev and other Soviet
+      composers in their experimental works. You can also hear the sound of the
+      ANS in Andrei Tarkovsky's movies Solaris, The Mirror, Stalker.
+
+      The simulator extends the capabilities of the original instrument. Now
+      it's a full-featured graphics editor where you can convert sound into an
+      image, load and play pictures, draw microtonal/spectral music and create
+      some unusual deep atmospheric sounds. This app is for everyone who loves
+      experiments and is looking for something new.
+
+      Key features:
+
+      + unlimited number of pure tone generators;
+      + powerful sonogram editor - you can draw the spectrum and play it at the same time;
+      + any sound (from a WAV file or a Microphone/Line-in) can be converted to image (sonogram) and vice versa;
+      + support for MIDI devices;
+      + polyphonic synth mode with MIDI mapping;
+      + supported file formats: WAV, AIFF, PNG, JPEG, GIF;
+      + supported sound systems: ASIO, DirectSound, MME, ALSA, OSS, JACK, Audiobus, IAA.
+      '';
+    homepage = "https://warmplace.ru/soft/ans/";
+    license = licenses.free;
+    # I cannot test the Darwin version, so I'll leave it disabled
+    platforms = [ "x86_64-linux" "i686-linux" ];
+    maintainers = with maintainers; [ jacg ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/audio/vmpk/default.nix b/nixpkgs/pkgs/applications/audio/vmpk/default.nix
index 2bc40a78af48..62ae1d2c049f 100644
--- a/nixpkgs/pkgs/applications/audio/vmpk/default.nix
+++ b/nixpkgs/pkgs/applications/audio/vmpk/default.nix
@@ -1,26 +1,23 @@
-{ stdenv, fetchurl, cmake, pkgconfig
-, qt4, libjack2
-}:
+{ stdenv, fetchurl, cmake, pkgconfig, alsaLib, libjack2, qt4 }:
 
-let
-  version = "0.5.1";
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "vmpk";
-  inherit version;
-
-  meta = with stdenv.lib; {
-    description = "Virtual MIDI Piano Keyboard";
-    homepage    = "http://vmpk.sourceforge.net/";
-    license     = licenses.gpl3Plus;
-    platforms   = platforms.linux;
-  };
+  version = "0.5.1";
 
   src = fetchurl {
-    url = "mirror://sourceforge/vmpk/${version}/${pname}-${version}.tar.bz2";
+    url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}.tar.bz2";
     sha256 = "11fqnxgs9hr9255d93n7lazxzjwn8jpmn23nywdksh0pb1ffvfrc";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
 
-  buildInputs = [ qt4 libjack2 ];
+  buildInputs = [ alsaLib libjack2 qt4 ];
+
+  meta = with stdenv.lib; {
+    description = "Virtual MIDI Piano Keyboard";
+    homepage = "http://vmpk.sourceforge.net/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ orivej ];
+    platforms = platforms.linux;
+  };
 }
diff --git a/nixpkgs/pkgs/applications/audio/vocal/default.nix b/nixpkgs/pkgs/applications/audio/vocal/default.nix
index 6ef992ffff67..b519003a9ec9 100644
--- a/nixpkgs/pkgs/applications/audio/vocal/default.nix
+++ b/nixpkgs/pkgs/applications/audio/vocal/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , cmake
 , ninja
 , vala
@@ -61,7 +62,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/audio/vocproc/default.nix b/nixpkgs/pkgs/applications/audio/vocproc/default.nix
new file mode 100644
index 000000000000..ddaa5b790e27
--- /dev/null
+++ b/nixpkgs/pkgs/applications/audio/vocproc/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchzip, pkgconfig, lvtk, lv2, fftw, lv2-cpp-tools, gtkmm2 }:
+
+stdenv.mkDerivation rec {
+  pname = "vocproc";
+  version = "0.2.1";
+
+  src = fetchzip {
+    url = "https://hyperglitch.com/files/vocproc/${pname}-${version}.default.tar.gz";
+    sha256 = "07a1scyz14mg2jdbw6fpv4qg91zsw61qqii64n9qbnny9d5pn8n2";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ lv2 fftw lv2-cpp-tools gtkmm2 ];
+
+  makeFlags = [
+    "INSTALL_DIR=$(out)/lib/lv2"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://hyperglitch.com/dev/VocProc";
+    description = "An LV2 plugin for pitch shifting (with or without formant correction), vocoding, automatic pitch correction and harmonizing of singing voice (harmonizer)";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.michalrus ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/audio/x42-plugins/default.nix b/nixpkgs/pkgs/applications/audio/x42-plugins/default.nix
index 20f87725f991..d3726eab7ffc 100644
--- a/nixpkgs/pkgs/applications/audio/x42-plugins/default.nix
+++ b/nixpkgs/pkgs/applications/audio/x42-plugins/default.nix
@@ -3,12 +3,12 @@
 , libGLU, lv2, gtk2, cairo, pango, fftwFloat, zita-convolver }:
 
 stdenv.mkDerivation rec {
-  version = "20200411";
+  version = "20200714";
   pname = "x42-plugins";
 
   src = fetchurl {
     url = "https://gareus.org/misc/x42-plugins/${pname}-${version}.tar.xz";
-    sha256 = "0y6778l2zc80kvp31mqw3vkcyi7g613jxn3g3lxqfa31i617gh6j";
+    sha256 = "1av05ykph8x67018hm9zfgh1vk0zi39mvrsxkj6bm4hkarxf0vvl";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations b/nixpkgs/pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations.patch
index f575af5ecd31..f575af5ecd31 100644
--- a/nixpkgs/pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations
+++ b/nixpkgs/pkgs/applications/audio/yasr/10_fix_openpty_forkpty_declarations.patch
diff --git a/nixpkgs/pkgs/applications/audio/yasr/20_maxpathlen b/nixpkgs/pkgs/applications/audio/yasr/20_maxpathlen.patch
index 386c6cbf22bd..386c6cbf22bd 100644
--- a/nixpkgs/pkgs/applications/audio/yasr/20_maxpathlen
+++ b/nixpkgs/pkgs/applications/audio/yasr/20_maxpathlen.patch
diff --git a/nixpkgs/pkgs/applications/audio/yasr/30_conf b/nixpkgs/pkgs/applications/audio/yasr/30_conf.patch
index 98e959f55f31..98e959f55f31 100644
--- a/nixpkgs/pkgs/applications/audio/yasr/30_conf
+++ b/nixpkgs/pkgs/applications/audio/yasr/30_conf.patch
diff --git a/nixpkgs/pkgs/applications/audio/yasr/40_dectalk_extended_chars b/nixpkgs/pkgs/applications/audio/yasr/40_dectalk_extended_chars.patch
index cc1f0af86065..cc1f0af86065 100644
--- a/nixpkgs/pkgs/applications/audio/yasr/40_dectalk_extended_chars
+++ b/nixpkgs/pkgs/applications/audio/yasr/40_dectalk_extended_chars.patch
diff --git a/nixpkgs/pkgs/applications/audio/yasr/default.nix b/nixpkgs/pkgs/applications/audio/yasr/default.nix
index 68423197f3c8..fed2ee0d8f75 100644
--- a/nixpkgs/pkgs/applications/audio/yasr/default.nix
+++ b/nixpkgs/pkgs/applications/audio/yasr/default.nix
@@ -11,10 +11,10 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
-    ./10_fix_openpty_forkpty_declarations
-    ./20_maxpathlen
-    ./30_conf
-    ./40_dectalk_extended_chars
+    ./10_fix_openpty_forkpty_declarations.patch
+    ./20_maxpathlen.patch
+    ./30_conf.patch
+    ./40_dectalk_extended_chars.patch
   ]; # taken from the debian yasr package
 
   meta = {
diff --git a/nixpkgs/pkgs/applications/backup/deja-dup/default.nix b/nixpkgs/pkgs/applications/backup/deja-dup/default.nix
index d283dc7107d7..ad4fc9728be2 100644
--- a/nixpkgs/pkgs/applications/backup/deja-dup/default.nix
+++ b/nixpkgs/pkgs/applications/backup/deja-dup/default.nix
@@ -3,44 +3,32 @@
 , substituteAll
 , meson
 , ninja
-, pkgconfig
+, pkg-config
 , vala
 , gettext
-, gnome3
-, libnotify
 , itstool
 , glib
 , gtk3
-, libxml2
-, gnome-online-accounts
 , coreutils
 , libsoup
 , libsecret
-, pcre
-, libxkbcommon
+, libhandy
 , wrapGAppsHook
-, libpthreadstubs
-, libXdmcp
-, epoxy
-, at-spi2-core
-, dbus
 , libgpgerror
 , json-glib
-, appstream-glib
-, desktop-file-utils
 , duplicity
 }:
 
 stdenv.mkDerivation rec {
   pname = "deja-dup";
-  version = "40.6";
+  version = "42.4";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = pname;
     rev = version;
-    sha256 = "1d4g34g660wv42a4k2511bxrh90z0vdl3v7ahg0m45phijg9n2n1";
+    sha256 = "c4E6mHYVb8TWVTVlmHidcLa9ebHJ27iStsNNLJhY8vY=";
   };
 
   patches = [
@@ -48,54 +36,31 @@ stdenv.mkDerivation rec {
       src = ./fix-paths.patch;
       inherit coreutils;
     })
-
-    # Hardcode GSettings path for Nautilus extension to avoid crashes from missing schemas
-    ./hardcode-gsettings.patch
   ];
 
-  postPatch = ''
-    # substitute variable from hardcode-gsettings.patch
-    substituteInPlace deja-dup/nautilus/NautilusExtension.c --subst-var-by DEJA_DUP_GSETTINGS_PATH "${glib.makeSchemaPath (placeholder "out") "${pname}-${version}"}"
-  '';
-
   nativeBuildInputs = [
     meson
     ninja
-    pkgconfig
+    pkg-config
     vala
     gettext
     itstool
-    appstream-glib
-    desktop-file-utils
-    libxml2
     wrapGAppsHook
   ];
 
   buildInputs = [
-    libnotify
     libsoup
     glib
     gtk3
     libsecret
-    pcre
-    libxkbcommon
-    libpthreadstubs
-    libXdmcp
-    epoxy
-    gnome3.nautilus
-    at-spi2-core
-    dbus
-    gnome-online-accounts # GOA not used any more, only for transferring legacy keys
+    libhandy
     libgpgerror
     json-glib
   ];
 
-  # TODO: hard code the path
-  # https://gitlab.gnome.org/World/deja-dup/merge_requests/32
-  propagatedUserEnvPkgs = [ duplicity ];
-
-  # install nautilus plug-in to correct path
-  PKG_CONFIG_LIBNAUTILUS_EXTENSION_EXTENSIONDIR = "${placeholder "out"}/lib/nautilus/extensions-3.0";
+  mesonFlags = [
+    "-Dduplicity_command=${duplicity}/bin/duplicity"
+  ];
 
   meta = with stdenv.lib; {
     description = "A simple backup tool";
@@ -106,7 +71,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://wiki.gnome.org/Apps/DejaDup";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ jtojnar joncojonathan ];
+    maintainers = with maintainers; [ jtojnar ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/backup/deja-dup/hardcode-gsettings.patch b/nixpkgs/pkgs/applications/backup/deja-dup/hardcode-gsettings.patch
deleted file mode 100644
index f74dbf73543e..000000000000
--- a/nixpkgs/pkgs/applications/backup/deja-dup/hardcode-gsettings.patch
+++ /dev/null
@@ -1,16 +0,0 @@
---- a/deja-dup/nautilus/NautilusExtension.c
-+++ b/deja-dup/nautilus/NautilusExtension.c
-@@ -313,7 +313,12 @@
-   bindtextdomain(GETTEXT_PACKAGE, LOCALE_DIR);
-   bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
- 
--  settings = g_settings_new(APPLICATION_ID);
-+  g_autoptr (GSettingsSchemaSource) schema_source = g_settings_schema_source_new_from_directory ("@DEJA_DUP_GSETTINGS_PATH@",
-+    g_settings_schema_source_get_default (), TRUE, NULL);
-+
-+  g_autoptr (GSettingsSchema) schema = g_settings_schema_source_lookup (schema_source, APPLICATION_ID, FALSE);
-+
-+  settings = g_settings_new_full (schema, NULL, NULL);
-   g_signal_connect(settings, "changed::include-list",
-                    update_include_excludes, NULL);
-   g_signal_connect(settings, "changed::exclude-list",
diff --git a/nixpkgs/pkgs/applications/backup/vorta/default.nix b/nixpkgs/pkgs/applications/backup/vorta/default.nix
index f1c0b056c820..3c6a9587a656 100644
--- a/nixpkgs/pkgs/applications/backup/vorta/default.nix
+++ b/nixpkgs/pkgs/applications/backup/vorta/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonApplication rec {
   pname = "vorta";
-  version = "0.6.26";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "borgbase";
     repo = "vorta";
     rev = "v${version}";
-    sha256 = "189kzwdmissg9142cd7wvxa1rvc2y7lysgr7if99zc7ks59mv6dq";
+    sha256 = "069fq5gv324l2ap3g6m6i12lhq1iqm27dsmaagyc3sva945j0gxw";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix
index aee73cecdfc7..1596ed2d3572 100644
--- a/nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix
+++ b/nixpkgs/pkgs/applications/blockchains/bitcoin-abc.nix
@@ -1,30 +1,36 @@
-{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, autoreconfHook, openssl, db53, boost
+{ stdenv, mkDerivation, fetchFromGitHub, pkgconfig, cmake, openssl, db53, boost
 , zlib, miniupnpc, qtbase ? null , qttools ? null, utillinux, protobuf, qrencode, libevent
-, withGui }:
+, withGui, python3, jemalloc, zeromq4 }:
 
 with stdenv.lib;
 
 mkDerivation rec {
 
   name = "bitcoin" + (toString (optional (!withGui) "d")) + "-abc-" + version;
-  version = "0.21.5";
+  version = "0.21.13";
 
   src = fetchFromGitHub {
     owner = "bitcoin-ABC";
     repo = "bitcoin-abc";
     rev = "v${version}";
-    sha256 = "1jx33n8dhn16iaxvmc56cxw0i5qk0ga5nf7qf9frwwq6zkglknga";
+    sha256 = "1x8xcdi1vcskggk9bqkwr3ah4vi9b7sj2h8hf7spac6dvz8lmzav";
   };
 
   patches = [ ./fix-bitcoin-qt-build.patch ];
 
-  nativeBuildInputs = [ pkgconfig autoreconfHook ];
-  buildInputs = [ openssl db53 boost zlib
+  nativeBuildInputs = [ pkgconfig cmake ];
+  buildInputs = [ openssl db53 boost zlib python3 jemalloc zeromq4
                   miniupnpc utillinux protobuf libevent ]
                   ++ optionals withGui [ qtbase qttools qrencode ];
 
-  configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
-                     ++ optionals withGui [ "--with-gui=qt5" ];
+  cmakeFlags = optionals (!withGui) [
+    "-DBUILD_BITCOIN_QT=OFF"
+  ];
+
+  # many of the generated scripts lack execute permissions
+  postConfigure = ''
+    find ./. -type f -iname "*.sh" -exec chmod +x {} \;
+  '';
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/applications/blockchains/bitcoin-knots.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin-knots.nix
new file mode 100644
index 000000000000..384ac880fe14
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/bitcoin-knots.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, autoreconfHook
+, db5
+, openssl
+, boost
+, zlib
+, miniupnpc
+, libevent
+, protobuf
+, utillinux
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bitcoind-knots";
+  version = "0.20.0";
+  versionDate = "20200614";
+
+  src = fetchFromGitHub {
+    owner = "bitcoinknots";
+    repo = "bitcoin";
+    rev = "v${version}.knots${versionDate}";
+    sha256 = "0c8k1154kcwz6q2803wx0zigvqaij1fi5akgfqlj3yl57jjw48jj";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+  buildInputs = [ openssl db5 openssl utillinux
+                  protobuf boost zlib miniupnpc libevent ];
+
+  configureFlags = [ "--with-incompatible-bdb"
+                     "--with-boost-libdir=${boost.out}/lib" ];
+
+  meta = with stdenv.lib; {
+    description = "An enhanced Bitcoin node software";
+    homepage = "https://bitcoinknots.org/";
+    license = licenses.mit;
+    maintainers = [ maintainers.mmahut ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix
index f755efaa0e12..fe39b955a281 100644
--- a/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix
+++ b/nixpkgs/pkgs/applications/blockchains/bitcoin-unlimited.nix
@@ -7,13 +7,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "bitcoin" + (toString (optional (!withGui) "d")) + "-unlimited-" + version;
-  version = "1.7.0.0";
+  version = "1.8.0.0";
 
   src = fetchFromGitHub {
     owner = "bitcoinunlimited";
     repo = "bitcoinunlimited";
-    rev = "bucash${version}";
-    sha256 = "0lil6rivrj4cnr8a7n8zn9rp9f4h2nk88jjxc29m6dwqn5gk6f1i";
+    rev = "BCHunlimited${version}";
+    sha256 = "01qi15li5x9fvhsmvx7ai5fz6yzqqd3r9yv7081h75jn0nxai49q";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook python3 ]
diff --git a/nixpkgs/pkgs/applications/blockchains/bitcoin.nix b/nixpkgs/pkgs/applications/blockchains/bitcoin.nix
index 7a4386d23866..09dc59a051ad 100644
--- a/nixpkgs/pkgs/applications/blockchains/bitcoin.nix
+++ b/nixpkgs/pkgs/applications/blockchains/bitcoin.nix
@@ -20,16 +20,12 @@
 
 with stdenv.lib;
 let
-  version = "0.20.0";
+  version = "0.20.1";
   majorMinorVersion = versions.majorMinor version;
   desktop = fetchurl {
     url = "https://raw.githubusercontent.com/bitcoin-core/packaging/${majorMinorVersion}/debian/bitcoin-qt.desktop";
     sha256 = "0cpna0nxcd1dw3nnzli36nf9zj28d2g9jf5y0zl9j18lvanvniha";
   };
-  pixmap = fetchurl {
-    url = "https://raw.githubusercontent.com/bitcoin/bitcoin/v${version}/share/pixmaps/bitcoin128.png";
-    sha256 = "08p7j7dg50jlj783kkgdw037klmx0spqjikaprmbkzgcb620r25d";
-  };
 in
 stdenv.mkDerivation rec {
   pname = if withGui then "bitcoin" else "bitcoind";
@@ -40,7 +36,7 @@ stdenv.mkDerivation rec {
       "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
       "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz"
     ];
-    sha256 = "ec5a2358ee868d845115dc4fc3ed631ff063c57d5e0a713562d083c5c45efb28";
+    sha256 = "4bbd62fd6acfa5e9864ebf37a24a04bc2dcfe3e3222f056056288d854c53b978";
   };
 
   nativeBuildInputs =
@@ -53,7 +49,7 @@ stdenv.mkDerivation rec {
 
   postInstall = optional withGui ''
     install -Dm644 ${desktop} $out/share/applications/bitcoin-qt.desktop
-    install -Dm644 ${pixmap} $out/share/pixmaps/bitcoin128.png
+    install -Dm644 share/pixmaps/bitcoin128.png $out/share/pixmaps/bitcoin128.png
   '';
 
   configureFlags = [
@@ -91,7 +87,7 @@ stdenv.mkDerivation rec {
     homepage = "https://bitcoin.org/";
     downloadPage = "https://bitcoincore.org/bin/bitcoin-core-${version}/";
     changelog = "https://bitcoincore.org/en/releases/${version}/";
-    maintainers = with maintainers; [ roconnor AndersonTorres ];
+    maintainers = with maintainers; [ roconnor ];
     license = licenses.mit;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/applications/blockchains/btcdeb/default.nix b/nixpkgs/pkgs/applications/blockchains/btcdeb/default.nix
index 9a8db94401cd..39d2197626a1 100644
--- a/nixpkgs/pkgs/applications/blockchains/btcdeb/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/btcdeb/default.nix
@@ -7,14 +7,14 @@
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
-  pname = "btcdeb";
-  version = "0.2.19";
+  pname = "btcdeb-unstable";
+  version = "200806";
 
   src = fetchFromGitHub {
-    owner = "kallewoof";
-    repo = pname;
-    rev = "fb2dace4cd115dc9529a81515cee855b8ce94784";
-    sha256 = "0l0niamcjxmgyvc6w0wiygfgwsjam3ypv8mvjglgsj50gyv1vnb3";
+    owner = "bitcoin-core";
+    repo = "btcdeb";
+    rev = "f6708c397c64894c9f9e31bea2d22285d9462de7";
+    sha256 = "0qkmf89z2n7s95vhw3n9vh9dbi14zy4vqw3ffdh1w911jwm5ry3z";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
diff --git a/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix b/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
new file mode 100644
index 000000000000..eec39e691a88
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/btcpayserver/default.nix
@@ -0,0 +1,66 @@
+{ lib, stdenv, fetchFromGitHub, fetchurl, linkFarmFromDrvs, makeWrapper,
+  dotnetPackages, dotnetCorePackages, writeScript, bash
+}:
+
+let
+  deps = import ./deps.nix {
+    fetchNuGet = { name, version, sha256 }: fetchurl {
+      name = "nuget-${name}-${version}.nupkg";
+      url = "https://www.nuget.org/api/v2/package/${name}/${version}";
+      inherit sha256;
+    };
+  };
+  dotnetSdk = dotnetCorePackages.sdk_3_1;
+in
+
+stdenv.mkDerivation rec {
+  pname = "btcpayserver";
+  version = "1.0.5.5";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "11h1nrmb7f44msbhhiz9ddqh5ss2kz6d8ysnvd070x3xj5krgnxz";
+  };
+
+  nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget ];
+
+  # Due to a bug in btcpayserver, we can't just `dotnet publish` to create a binary.
+  # Build with `dotnet build` instead and add a custom `dotnet run` script.
+  buildPhase = ''
+    export HOME=$TMP/home
+    export DOTNET_CLI_TELEMETRY_OPTOUT=1
+    export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+
+    nuget sources Add -Name tmpsrc -Source $TMP/nuget
+    nuget init ${linkFarmFromDrvs "deps" deps} $TMP/nuget
+
+    dotnet restore --source $TMP/nuget BTCPayServer/BTCPayServer.csproj
+    dotnet build -c Release BTCPayServer/BTCPayServer.csproj
+  '';
+
+  runScript =  ''
+    #!${bash}/bin/bash
+    DOTNET_CLI_TELEMETRY_OPTOUT=1 exec ${dotnetSdk}/bin/dotnet run --no-launch-profile --no-build \
+      -c Release -p @@SHARE@@/BTCPayServer/BTCPayServer.csproj -- "$@"
+  '';
+
+  installPhase = ''
+    cd ..
+    share=$out/share/$pname
+    mkdir -p $share
+    mv -T source $share
+    install -D -m500 <(echo "$runScript" | sed "s|@@SHARE@@|$share|") $out/bin/$pname
+  '';
+
+  dontStrip = true;
+
+  meta = with lib; {
+    description = "Self-hosted, open-source cryptocurrency payment processor";
+    homepage = "https://btcpayserver.org";
+    maintainers = with maintainers; [ kcalvinalvin earvstedt ];
+    license = lib.licenses.mit;
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix b/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
new file mode 100644
index 000000000000..cb0641b8c852
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/btcpayserver/deps.nix
@@ -0,0 +1,1937 @@
+{ fetchNuGet }: [
+  (fetchNuGet {
+    name = "AngleSharp";
+    version = "0.9.11";
+    sha256 = "17vf1bizskkxr8pf547lk2b48m12wv3si83gxk145i73bf9gi64a";
+  })
+  (fetchNuGet {
+    name = "AWSSDK.Core";
+    version = "3.3.104.14";
+    sha256 = "157694kb63z1szbsv861515fvjv7amrjrfmgbm3idpyw31afk650";
+  })
+  (fetchNuGet {
+    name = "AWSSDK.S3";
+    version = "3.3.110.10";
+    sha256 = "1lf1hfbx792dpa1hxgn0a0jrrvldd16hgbxx229dk2qcz5qlnc38";
+  })
+  (fetchNuGet {
+    name = "BTCPayServer.Hwi";
+    version = "1.1.3";
+    sha256 = "1c8hfnrjh2ad8qh75d63gsl170q8czf3j1hk8sv8fnbgnxdnkm7a";
+  })
+  (fetchNuGet {
+    name = "BTCPayServer.Lightning.All";
+    version = "1.2.3";
+    sha256 = "1vx47rb505904pz30n5jzc9x42pcfln695l31q4dv5p4fbf10g4q";
+  })
+  (fetchNuGet {
+    name = "BTCPayServer.Lightning.Charge";
+    version = "1.2.1";
+    sha256 = "0iv9frbr6xfxif3pnfd7c87y8mv31nqkdrnhvnaswrx43nv6s272";
+  })
+  (fetchNuGet {
+    name = "BTCPayServer.Lightning.CLightning";
+    version = "1.2.0";
+    sha256 = "0a47fz20ngcz90h2y01isi2h940jljcmnfy6wyknj029sii7i1zs";
+  })
+  (fetchNuGet {
+    name = "BTCPayServer.Lightning.Common";
+    version = "1.2.0";
+    sha256 = "17di8ndkw8z0ci0zk15mcrqpmganwkz9ys2snr2rqpw5mrlhpwa0";
+  })
+  (fetchNuGet {
+    name = "BTCPayServer.Lightning.Eclair";
+    version = "1.2.0";
+    sha256 = "0w7nwsr0n2hrqak023xa294palsk3r96wlgw2ks8d3p5kxm8kskp";
+  })
+  (fetchNuGet {
+    name = "BTCPayServer.Lightning.LND";
+    version = "1.2.1";
+    sha256 = "0ql4qyvz0rms6ls46pi3bgak3r6hj2c5ivnzahiq6cb84pbl61cr";
+  })
+  (fetchNuGet {
+    name = "BTCPayServer.Lightning.Ptarmigan";
+    version = "1.2.0";
+    sha256 = "1yd6nhlssb9k08p5491knlwwjij9324ildir99sa9cp24rlq5nis";
+  })
+  (fetchNuGet {
+    name = "BuildBundlerMinifier";
+    version = "3.2.435";
+    sha256 = "0y1p226dbvs7q2ngm9w4mpkhfrhw2y122plv1yff7lx5m84ia02l";
+  })
+  (fetchNuGet {
+    name = "BundlerMinifier.Core";
+    version = "3.2.435";
+    sha256 = "17338x8ycr7hjzq16kr0ri30k19802hsn1sy259k3v694mxk59vd";
+  })
+  (fetchNuGet {
+    name = "BundlerMinifier.TagHelpers";
+    version = "3.2.435";
+    sha256 = "0ksmby0lzgsxkv0xfzr840262kcqra9vds91mcx0rf20blksfvsk";
+  })
+  (fetchNuGet {
+    name = "CsvHelper";
+    version = "15.0.5";
+    sha256 = "01y8bhsnxghn3flz0pr11vj6wjrpmia8rpdrsp7kjfc1zmhqlgma";
+  })
+  (fetchNuGet {
+    name = "DBriize";
+    version = "1.0.1.3";
+    sha256 = "0rsm68hwq2ky8i6mv3ckdjkj4vjygnkgk3disva0skl3apk833dc";
+  })
+  (fetchNuGet {
+    name = "DigitalRuby.ExchangeSharp";
+    version = "0.6.3";
+    sha256 = "1vb7ahafcd3lcbiiz552aisilwm1yq3j600gkf1wik8vhvsk02fs";
+  })
+  (fetchNuGet {
+    name = "Google.Api.Gax.Rest";
+    version = "2.5.0";
+    sha256 = "1zkjl5zh6qwdz4qmnxnk5877pas638i2qi25znilhqqf3mrkp0rp";
+  })
+  (fetchNuGet {
+    name = "Google.Api.Gax";
+    version = "2.5.0";
+    sha256 = "0q6pi53px998i3gdndla8v0zqdpyi9gnsy9mdcfpkrg09vfbdsl9";
+  })
+  (fetchNuGet {
+    name = "Google.Apis.Auth";
+    version = "1.35.1";
+    sha256 = "1qdnd1nq9bfgyljmiww91pfi0iz1n29rz2dlizhxcijqya2ldha3";
+  })
+  (fetchNuGet {
+    name = "Google.Apis.Auth";
+    version = "1.38.0";
+    sha256 = "0x3bdwiyqjxw5df99bfasmsv09kb47wzisag938631cijl0g277y";
+  })
+  (fetchNuGet {
+    name = "Google.Apis.Core";
+    version = "1.35.1";
+    sha256 = "01dfw2kxknlc5pm7x1q88lv9j979509lkkgvlffjry5bawsxsja4";
+  })
+  (fetchNuGet {
+    name = "Google.Apis.Core";
+    version = "1.38.0";
+    sha256 = "012gslhnx65vqfyzjnqx4bqk9kb8bwbx966q2f9fdgrfcn26gj9j";
+  })
+  (fetchNuGet {
+    name = "Google.Apis.Storage.v1";
+    version = "1.38.0.1470";
+    sha256 = "0mfrz7fmpfbjvp4zfpjasmnfbgxgxrrjkf8xgp9p6h9g8qh2f2h2";
+  })
+  (fetchNuGet {
+    name = "Google.Apis";
+    version = "1.35.1";
+    sha256 = "1022l8m7v9f3rkjc9l11mkzwsbmqx9sk5f4aym035vn9hdr16d49";
+  })
+  (fetchNuGet {
+    name = "Google.Apis";
+    version = "1.38.0";
+    sha256 = "01j3d1lv106cqw9n0lwgclrxghy852fsibv6av4xr03ivrkm8g40";
+  })
+  (fetchNuGet {
+    name = "Google.Cloud.Storage.V1";
+    version = "2.3.0";
+    sha256 = "01jhrd6m6md8m28chzg2dkdfd4yris79j1xi7r1ydm1cfjhmlj64";
+  })
+  (fetchNuGet {
+    name = "HtmlSanitizer";
+    version = "4.0.217";
+    sha256 = "0szay9mf5mmrp1hx0yc175aaalv76qg0j515lfs133j1d95lj26d";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNet.SignalR.Client";
+    version = "2.3.0";
+    sha256 = "1xyj8b88bc6sc7fxgqyalzfmlfgbagfk7adyk29if9hr8ki9bic4";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNet.WebApi.Client";
+    version = "5.2.7";
+    sha256 = "1j0wbdmycj5xbk06p32f7xrddc40sbj3yca4d7ywg611yk26mvi1";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Cryptography.Internal";
+    version = "3.1.4";
+    sha256 = "0d4djj073bl9kps5jkcpydh92lcp6kpa7njhypjw3myaa987dcsh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Cryptography.KeyDerivation";
+    version = "3.1.4";
+    sha256 = "1rya2775prm8ss0rz6izsqqcz96gcf1rh0bpcvnfy1mwi04rx8bl";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Hosting.Abstractions";
+    version = "2.0.0";
+    sha256 = "0x6vw7kiy9z7cdmgbqav0d9wq66032wg39l2c9cv6xvxxvdpbkz7";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Hosting.Server.Abstractions";
+    version = "2.0.0";
+    sha256 = "1k4dr6l32swi8zasfvzxixnjvgbrra7v6lgpri0929vb3r5lagjb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Http.Abstractions";
+    version = "2.0.0";
+    sha256 = "1hgmnd5mj35g8cqq3mdhjf9cmi3wm5lqiyrj5mgfscnig6i686xr";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Http.Features";
+    version = "2.0.0";
+    sha256 = "1zk5ad3laa7ma83md8r80kijqzps6dcrvv0k1015nddfk1qd74s6";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Identity.EntityFrameworkCore";
+    version = "3.1.4";
+    sha256 = "0smcpaqm7d95flr0k7i2psrsfvs48lv28kzqgnllv5229hhb670d";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.JsonPatch";
+    version = "3.1.1";
+    sha256 = "0c0aaz9rlh9chc53dnv5jryp0x0415hipaizrmih3kzwd3fmqpml";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
+    version = "3.1.1";
+    sha256 = "1c2lrlp64kkacnjgdyygr6fqdawk10l8j4qgppii6rq61yjwhcig";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.Razor.Extensions";
+    version = "3.1.1";
+    sha256 = "1iydcr7rfzg3kqky0x70853g6lbzsl9ja9cv8ph6iwpqxnswgdkh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation";
+    version = "3.1.1";
+    sha256 = "1q1bblcj9l2dnz46frygsfq7w4v08l96clgryh78wyws83xjm43y";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Razor.Language";
+    version = "3.1.1";
+    sha256 = "0arqmy04dd0r4wm2fin66gxxwj2kirbgxyf3w7kq6f73lrnazhq0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Bcl.AsyncInterfaces";
+    version = "1.1.0";
+    sha256 = "1dq5yw7cy6s42193yl4iqscfw5vzkjkgv0zyy32scr4jza6ni1a1";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Bcl.AsyncInterfaces";
+    version = "1.1.1";
+    sha256 = "0a1ahssqds2ympr7s4xcxv5y8jgxs7ahd6ah6fbgglj4rki1f1vw";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Bcl.HashCode";
+    version = "1.1.0";
+    sha256 = "1ggsadahlp76zcn1plapszd5v5ja8rh479fwrahqd3knql4dfnr0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.Analyzers";
+    version = "2.9.3";
+    sha256 = "1kskwc9gyd2sx3zwx52qwfsl7s0xhaclmlnxvjsb4jgvpydv3xii";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.Analyzers";
+    version = "3.0.0";
+    sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.Common";
+    version = "3.3.0";
+    sha256 = "1vwhsp3pjgcfnpapkps9a3z9n2ryiv5bbhzycfljngj5grj63rg2";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.Common";
+    version = "3.6.0";
+    sha256 = "0i8x90700jr30j580mpawj6d90fngrb2zpkjjbn7f8r2p1mz75y7";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.CSharp";
+    version = "3.3.0";
+    sha256 = "09nmd5h1r2q0dwp1dfpn4anvs8sfi3rwcgpcv28lrhky8vc51424";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.CSharp";
+    version = "3.6.0";
+    sha256 = "0c44qp7lfpja6cq5nk7851qrswm2z1k2pnvsw43j9ybf10a27jrn";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.Razor";
+    version = "3.1.1";
+    sha256 = "03n5rli6v1kvghha82zar3dvvkbc2vb9g8zp5fjrzhvp4l74ingn";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeCoverage";
+    version = "16.6.1";
+    sha256 = "01ffm4nflqdb93vq4xl0j3377x360fgx6c6h12mpkcy85ixbv3rl";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.0.1";
+    sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.3.0";
+    sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.5.0";
+    sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.7.0";
+    sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Data.Sqlite.Core";
+    version = "3.1.4";
+    sha256 = "1pahyqjs4l9g1wg9hvxf68kgzzf72ny2i7n7ai97a389p2c86xvh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.DotNet.PlatformAbstractions";
+    version = "2.0.4";
+    sha256 = "1fdzln4im9hb55agzwchbfgm3vmngigmbpci5j89b0gqcxixmv8j";
+  })
+  (fetchNuGet {
+    name = "Microsoft.DotNet.PlatformAbstractions";
+    version = "3.1.4";
+    sha256 = "1s5h96zdc3vh1v03gizmqfw5hmksajw10bdrj79pm8brbyzipxia";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Abstractions";
+    version = "3.1.0";
+    sha256 = "1bd6hilnwp47z3l14qspdxi5f5nhv6rivarc6w8wil425bq0h3pd";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Abstractions";
+    version = "3.1.4";
+    sha256 = "07l7137pzwh0k4m53ji5j6a2zmbbzrl164p18wxcri77ds5is4g7";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Analyzers";
+    version = "3.1.0";
+    sha256 = "1pjn4wwhxgsiap7byld114kx6m0nm6696r8drspqic7lskm4y305";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Analyzers";
+    version = "3.1.4";
+    sha256 = "1zaqn9z7ns6p6jgnffzkgpziqr2wqs68g2sa0c11kaclhlhgvvbv";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Design";
+    version = "3.1.4";
+    sha256 = "10mxnbiw23ia4sln86sd3gn84yhmrb6r2kipzid4h1g15paal9gi";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Relational";
+    version = "3.1.0";
+    sha256 = "0javqw6c27ppcysigjvcjcw3mk0gg1pv2pmwfpvvryr1pb4a9n55";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Relational";
+    version = "3.1.4";
+    sha256 = "1344rsavawwg69dx8xsl08hcs43lc6h7z4mn461dcx85rirlwd0v";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Sqlite.Core";
+    version = "3.1.4";
+    sha256 = "080qz0b52i7v5c1sgnqlh9px9881cfr1x06np66hdgmh0ni5c1lw";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Sqlite";
+    version = "3.1.4";
+    sha256 = "009mcmakw0p7k8xrz920a8qc0rjv361awiz8jia5i5a8p5ihgkbx";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore";
+    version = "3.1.0";
+    sha256 = "1l12lsk1xfrv5pjnm0b9w9kncgdh0pcjcbxl4zrsg82s7bs7dhda";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore";
+    version = "3.1.4";
+    sha256 = "11w63yp7fk9qwmnq3lmpf1h30mlbzfx4zpm89vrs0lprj86g0742";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Caching.Abstractions";
+    version = "3.1.0";
+    sha256 = "0j5m2a48rwyzzvbz0hpr2md35iv78b86zyqjnrjq0y4vb7sairc0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Caching.Abstractions";
+    version = "3.1.4";
+    sha256 = "09f96pvpyzylpdaiw3lsvr7p6rs4i21mmhsxl6pkivg5lpfb79sk";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Caching.Memory";
+    version = "3.1.0";
+    sha256 = "1hi61647apn25kqjcb37nqafp8fikymdrk43j3kxjbwwwx507jy1";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Caching.Memory";
+    version = "3.1.4";
+    sha256 = "0b8ijxjd8lgq8mgnvh3wl4y4wbjj3v5b763y6gslm75fn43iyad8";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Abstractions";
+    version = "1.1.2";
+    sha256 = "0z83kxfzsgqlshg4x1mhdnhlrprrwsgnnibvwk257drzy9079994";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Abstractions";
+    version = "2.0.0";
+    sha256 = "1ilz2yrgg9rbjyhn6a5zh9pr51nmh11z7sixb4p7vivgydj9gxwf";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Abstractions";
+    version = "2.1.0";
+    sha256 = "03gzlr3z9j1xnr1k6y91zgxpz3pj27i3zsvjwj7i8jqnlqmk7pxd";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Abstractions";
+    version = "3.1.0";
+    sha256 = "1f7h52kamljglx5k08ccryilvk6d6cvr9c26lcb6b2c091znzk0q";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Abstractions";
+    version = "3.1.4";
+    sha256 = "0r33m68y1vgpmqams4sgciizl0w6y97qkp93m0hyn0nlkxqf72l6";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Binder";
+    version = "2.0.0";
+    sha256 = "1prvdbma6r18n5agbhhabv6g357p1j70gq4m9g0vs859kf44nrgc";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Binder";
+    version = "3.1.0";
+    sha256 = "13jj7jxihiswmhmql7r5jydbca4x5qj6h7zq10z17gagys6dc7pw";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Binder";
+    version = "3.1.4";
+    sha256 = "1bnf213zlrh0m3sbhsv601yx21l5xp254jiy2g4hm7zpm8vsz1hz";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.EnvironmentVariables";
+    version = "2.1.0";
+    sha256 = "0xx3idb1l5y1da5zynlys5gyarijmw5pc9hgci8xdxbrcv6rzbjb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.FileExtensions";
+    version = "2.1.0";
+    sha256 = "1lz2xwm63clbh9dfhmygbqvcp4dsrwh5jihv82dmqd5h7lqngl40";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Ini";
+    version = "2.1.0";
+    sha256 = "0bchsljywcq36si4zs2dcx2gj8x98ww93dh2bx2z6x5ilxyjnfip";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration";
+    version = "2.0.0";
+    sha256 = "0yssxq9di5h6xw2cayp5hj3l9b2p0jw9wcjz73rwk4586spac9s9";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration";
+    version = "2.1.0";
+    sha256 = "04rjl38wlr1jjjpbzgf64jp0ql6sbzbil0brwq9mgr3hdgwd7vx2";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration";
+    version = "3.1.0";
+    sha256 = "1rszgz0rd5kvib5fscz6ss3pkxyjwqy0xpd4f2ypgzf5z5g5d398";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration";
+    version = "3.1.4";
+    sha256 = "0npc18pjl86d06czb0fy6ln3prfpwfb16p6709xx2jrsl96dp9bp";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+    version = "2.0.0";
+    sha256 = "1pwrfh9b72k9rq6mb2jab5qhhi225d5rjalzkapiayggmygc8nhz";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+    version = "2.1.0";
+    sha256 = "0c0cx8r5xkjpxmcfp51959jnp55qjvq28d9vaslk08avvi1by12s";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+    version = "3.1.0";
+    sha256 = "1pvms778xkyv1a3gfwrxnh8ja769cxi416n7pcidn9wvg15ifvbh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+    version = "3.1.4";
+    sha256 = "03ys96pqca93zwxvh0vprzms09i9y0lmq32w98m6klbizq01fc06";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection";
+    version = "2.0.0";
+    sha256 = "018izzgykaqcliwarijapgki9kp2c560qv8qsxdjywr7byws5apq";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection";
+    version = "3.1.0";
+    sha256 = "1xc61dy07bn2q73mx1z3ylrw80xpa682qjby13gklnqq636a3gab";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection";
+    version = "3.1.4";
+    sha256 = "0rhyjgdpjm56drvrvqd9v1xq1qhyrpwwn2pjsz17g2s462rwliqx";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyModel";
+    version = "2.0.4";
+    sha256 = "041i1vlcibpzgalxxzdk81g5pgmqvmz2g61k0rqa2sky0wpvijx9";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyModel";
+    version = "3.1.1";
+    sha256 = "0qa04dspjl4qk7l8d66wqyrvhp5dxcfn2j4r8mmj362xyrp3r8sh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyModel";
+    version = "3.1.4";
+    sha256 = "0r0wv4k0ig6mrl6fr184zqbf5f010d6i2an2ws23g2bjvk8jh1bk";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileProviders.Abstractions";
+    version = "2.0.0";
+    sha256 = "0d6y5isjy6jpf4w3f3w89cwh9p40glzhwvm7cwhx05wkqd8bk9w4";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileProviders.Abstractions";
+    version = "2.1.0";
+    sha256 = "1sxls5f5cgb0wr8cwb05skqmz074683hrhmd3hhq6m5dasnzb8n3";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileProviders.Physical";
+    version = "2.1.0";
+    sha256 = "1firpsl5bk219i9gdfgiqw1zm68146h1dzx9hvawfpw9slfaa56w";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileSystemGlobbing";
+    version = "2.1.0";
+    sha256 = "1d2622qp22x1cnlwycnzjbc3sgi9jria26fk78zwzsa08npa3avv";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Hosting.Abstractions";
+    version = "2.0.0";
+    sha256 = "056wgjcdzvz1qwb26xv6hgxq4xya56qiimhk30v8an8cgsrjk3mc";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Hosting.Abstractions";
+    version = "2.1.0";
+    sha256 = "04vm9mdjjzg3lpp2rzpgkpn8h5bzdl3bwcr22lshd3kp602ws4k9";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Identity.Core";
+    version = "3.1.4";
+    sha256 = "0kyi03l9d7pnsvrcylc86fcxwnj59mhvmbz4c1d142f8djdrqfid";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Identity.Stores";
+    version = "3.1.4";
+    sha256 = "0jb3syy0glyn4nnd7lb7aj412xnqyrwhfavh98rbc5adq9v09nbw";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Abstractions";
+    version = "1.0.0";
+    sha256 = "1sh9bidmhy32gkz6fkli79mxv06546ybrzppfw5v2aq0bda1ghka";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Abstractions";
+    version = "1.1.2";
+    sha256 = "0j9b4z3pf8a5xphx3ksn6jm01rf4z001vfll5kcbxw995xcidjw1";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Abstractions";
+    version = "2.0.0";
+    sha256 = "1x5isi71z02khikzvm7vaschb006pqqrsv86ky1x08a4hir4s43h";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Abstractions";
+    version = "2.1.0";
+    sha256 = "1gvgif1wcx4k6pv7gc00qv1hid945jdywy1s50s33q0hfd91hbnj";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Abstractions";
+    version = "3.1.0";
+    sha256 = "1zyalrcksszmn9r5xjnirfh7847axncgzxkk3k5srbvlcch8fw8g";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Abstractions";
+    version = "3.1.4";
+    sha256 = "1rkl0yqmi5vfivn641866v2mdsgdy8amym546y6lzbab39g24b5n";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Filter";
+    version = "1.1.2";
+    sha256 = "1pip87q89376xxpi3r5pf9vxhqxx21qrp179fbldbkr2m1577k9m";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging";
+    version = "2.0.0";
+    sha256 = "1jkwjcq1ld9znz1haazk8ili2g4pzfdp6i7r7rki4hg3jcadn386";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging";
+    version = "3.1.0";
+    sha256 = "1d3yhqj1rav7vswm747j7w8fh8paybji4rz941hhlq4b12mfqfh4";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging";
+    version = "3.1.4";
+    sha256 = "04asfrhfrcl3ijilry2pr28ql5m6pgrwapadikgcg66jjxbx75zq";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Options.ConfigurationExtensions";
+    version = "2.0.0";
+    sha256 = "1isc3rjbzz60f7wbmgcwslx5d10hm5hisnk7v54vfi2bz7132gll";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Options";
+    version = "2.0.0";
+    sha256 = "0g4zadlg73f507krilhaaa7h0jdga216syrzjlyf5fdk25gxmjqh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Options";
+    version = "3.1.0";
+    sha256 = "0akccwhpn93a4qrssyb3rszdsp3j4p9hlxbsb7yhqb78xydaqhyh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Options";
+    version = "3.1.4";
+    sha256 = "0jphncx82l7jm5xi49dfxhbh24wv86sy44022chd7bkizllsypp4";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.PlatformAbstractions";
+    version = "1.1.0";
+    sha256 = "0r4j8v2vvp3kalvb11ny9cvpls3nrvqj0c81rxbkh99ynd2dbscp";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
+    version = "1.1.1";
+    sha256 = "0rcwxz1r89y96s8k3bmg0v6zdqanqfp09khy5l99wnl777y15g7x";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
+    version = "2.0.0";
+    sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
+    version = "2.1.0";
+    sha256 = "1r9gzwdfmb8ysnc4nzmyz5cyar1lw0qmizsvrsh252nhlyg06nmb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
+    version = "3.1.0";
+    sha256 = "1w1y22njywwysi8qjnj4m83qhbq0jr4mmjib0hfawz6cwamh7xrb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
+    version = "3.1.4";
+    sha256 = "12xvysk024aghrcwzv4525vznnk8lqmknl2vqqxhq4k5hjxpsysp";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NET.Test.Sdk";
+    version = "16.6.1";
+    sha256 = "0jjdg468jc6pv2z764f3xc19lcr772nzjm9cjfqq3bqw8vkpzmhv";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NetCore.Analyzers";
+    version = "2.9.8";
+    sha256 = "1klybsdy9yw49zlpmix4vjdhmfaibg5h9yx03vszdnijzap7vpsx";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.0.1";
+    sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.1.0";
+    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "2.0.0";
+    sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "2.1.2";
+    sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.0.1";
+    sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.1.0";
+    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.TestPlatform.ObjectModel";
+    version = "16.6.1";
+    sha256 = "0q98q1nw6jl4bajm66z4a9vvh928w8ffsd3k6fpsps23ykpsky7h";
+  })
+  (fetchNuGet {
+    name = "Microsoft.TestPlatform.TestHost";
+    version = "16.6.1";
+    sha256 = "0anzvb2mda548swb2ll1hv65knb8gwjm01hwbl0pzzr607my3lix";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Primitives";
+    version = "4.0.1";
+    sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Primitives";
+    version = "4.3.0";
+    sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq";
+  })
+  (fetchNuGet {
+    name = "MySqlConnector";
+    version = "0.61.0";
+    sha256 = "0b0mc41dsih4p1ky3kcmibsz4bw14w439nraq5732wjfkq2sqdxg";
+  })
+  (fetchNuGet {
+    name = "NBitcoin.Altcoins";
+    version = "2.0.16";
+    sha256 = "0fsdb96k5lwyq4d7h7yg91qghima08yk0bsw5cvr4h2jsfphk423";
+  })
+  (fetchNuGet {
+    name = "NBitcoin";
+    version = "5.0.33";
+    sha256 = "030q609b9lhapq4wfl1w3impjw5m40kz2rg1s9jn3bn8yjfmsi4a";
+  })
+  (fetchNuGet {
+    name = "NBitcoin";
+    version = "5.0.4";
+    sha256 = "04iafda61izzxb691brk72qs01m5dadqb4970nw5ayck6275s71i";
+  })
+  (fetchNuGet {
+    name = "NBitcoin";
+    version = "5.0.40";
+    sha256 = "1rqzn84yaww4afagwg8jg1l5qdkvqyjdfcyd5widddqwxabbsjvh";
+  })
+  (fetchNuGet {
+    name = "NBitcoin";
+    version = "5.0.45";
+    sha256 = "102vwxwkg367yxv26hycnc7hjxlv2zvsgr8g6adw8dmzsxck5fwk";
+  })
+  (fetchNuGet {
+    name = "NBitcoin";
+    version = "5.0.51";
+    sha256 = "0rg014sl7rqscnranwyfk41xfr5ccjqyx7aidfl5mh0znz44db2g";
+  })
+  (fetchNuGet {
+    name = "NBitpayClient";
+    version = "1.0.0.39";
+    sha256 = "1sgwradg7jnb4n3chwqfkximj1qhgl3r23p0sifmaa0kql2hlira";
+  })
+  (fetchNuGet {
+    name = "NBXplorer.Client";
+    version = "3.0.17";
+    sha256 = "0xx2xshgpci9l9883zpqnmgchpizygy0hcq2wp2ch6yf3hbrj9qq";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "1.6.1";
+    sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json.Bson";
+    version = "1.0.1";
+    sha256 = "1r1hvj5gjl466bya2bfl5aaj8rbwyf5x1msg710wf3k2llbci1xa";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json.Bson";
+    version = "1.0.2";
+    sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json.Schema";
+    version = "3.0.13";
+    sha256 = "04vzjz5fb588rh6ji5a0svfzjsdcfpr1qrz9hxpc64z5zhnh6sf4";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "10.0.3";
+    sha256 = "06vy67bkshclpz69kps4vgzc9h2cgg41c8vlqmdbwclfky7c4haq";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "11.0.1";
+    sha256 = "1z68j07if1xf71lbsrgbia52r812i2dv541sy44ph4dzjjp7pd4m";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "11.0.2";
+    sha256 = "1784xi44f4k8v1fr696hsccmwpy94bz7kixxqlri98zhcxn406b2";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "12.0.2";
+    sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "12.0.3";
+    sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "9.0.1";
+    sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r";
+  })
+  (fetchNuGet {
+    name = "NicolasDorier.CommandLine.Configuration";
+    version = "1.0.0.3";
+    sha256 = "0al0pd4zhjpmn8m208xjmy17cbyab68grzdvzr2lhsckwkl6b1jg";
+  })
+  (fetchNuGet {
+    name = "NicolasDorier.CommandLine";
+    version = "1.0.0.2";
+    sha256 = "08a9l18zkhcfa6f56xqylzvmqjzgxsmgkpm2r3ckvxfyml6w0qyy";
+  })
+  (fetchNuGet {
+    name = "NicolasDorier.RateLimits";
+    version = "1.1.0";
+    sha256 = "06cajxi8wnrxfwqfnk98avphwiyvg1fw428bd42lqjgq9k414rk9";
+  })
+  (fetchNuGet {
+    name = "NicolasDorier.StandardConfiguration";
+    version = "1.0.0.18";
+    sha256 = "0lgssxafv6cqlw21fb79fm0fcln0clgsk6zadcwrnjv9vampfw7b";
+  })
+  (fetchNuGet {
+    name = "NLog";
+    version = "4.5.10";
+    sha256 = "0d4yqxrhqn2k36h3v1f5pn6qqlagbzg67v6gvxqhz3s4zyc3b8rg";
+  })
+  (fetchNuGet {
+    name = "Npgsql.EntityFrameworkCore.PostgreSQL";
+    version = "3.1.4";
+    sha256 = "1ng9pbamh93g0fbnjq8ygaf40d6rs0fy4s08bjmxpa69k3s8c7a4";
+  })
+  (fetchNuGet {
+    name = "Npgsql";
+    version = "4.1.3.1";
+    sha256 = "0qk3hb8s521c2gy4k3m1i6fhpr133mnw9w85cwsy9j7ghxyca1nv";
+  })
+  (fetchNuGet {
+    name = "NuGet.Frameworks";
+    version = "5.0.0";
+    sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr";
+  })
+  (fetchNuGet {
+    name = "NUglify";
+    version = "1.5.12";
+    sha256 = "0f4gs31z8dwfvd246nrv3m0qkxzav37hxynx2maykza017khynyf";
+  })
+  (fetchNuGet {
+    name = "Pomelo.EntityFrameworkCore.MySql";
+    version = "3.1.1";
+    sha256 = "1jvv2q7pmh5wzsfjim7iby4r1scb30kgj9w6sbm2dp60i6vm32dx";
+  })
+  (fetchNuGet {
+    name = "Pomelo.JsonObject";
+    version = "2.2.1";
+    sha256 = "1w6s9wjbsyvq8cnqknkdzm9chnv0g5gcsrq5i94zp6br9vg7c627";
+  })
+  (fetchNuGet {
+    name = "Portable.BouncyCastle";
+    version = "1.8.1.3";
+    sha256 = "1lv1ljaz8df835jgmp3ny1xgqqjf1s9f25baw7bf8d24qlf25i2g";
+  })
+  (fetchNuGet {
+    name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
+  })
+  (fetchNuGet {
+    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
+  })
+  (fetchNuGet {
+    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.IO.Compression";
+    version = "4.3.0";
+    sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Net.Http";
+    version = "4.0.1";
+    sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Net.Http";
+    version = "4.3.0";
+    sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Net.Security";
+    version = "4.3.0";
+    sha256 = "0dnqjhw445ay3chpia9p6vy4w2j6s9vy3hxszqvdanpvvyaxijr3";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography.Apple";
+    version = "4.3.0";
+    sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography";
+    version = "4.0.0";
+    sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System";
+    version = "4.0.0";
+    sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System";
+    version = "4.3.0";
+    sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
+  })
+  (fetchNuGet {
+    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
+  })
+  (fetchNuGet {
+    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
+  })
+  (fetchNuGet {
+    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple";
+    version = "4.3.0";
+    sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi";
+  })
+  (fetchNuGet {
+    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3";
+  })
+  (fetchNuGet {
+    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
+  })
+  (fetchNuGet {
+    name = "Selenium.WebDriver.ChromeDriver";
+    version = "83.0.4103.3900";
+    sha256 = "17j9b637209nm5cs5sgr3vflphkhaxpm8bcjizhgj65r52gn17as";
+  })
+  (fetchNuGet {
+    name = "Selenium.WebDriver";
+    version = "3.141.0";
+    sha256 = "09g0zhz6n7yhxmxlrpzjdykfavr3m4z1gb4cmq304dw0gr8s89mq";
+  })
+  (fetchNuGet {
+    name = "Serilog.AspNetCore";
+    version = "3.2.0";
+    sha256 = "14d1lsw1djsshlkxbn5lkmdvj4372hnddb6788m6ix0mv4mhj3bj";
+  })
+  (fetchNuGet {
+    name = "Serilog.Extensions.Hosting";
+    version = "3.0.0";
+    sha256 = "1r01lsy4rp0wj7ffbjcf9dcg3aipdhy7066yjicja45m0z2y42w6";
+  })
+  (fetchNuGet {
+    name = "Serilog.Extensions.Logging";
+    version = "3.0.1";
+    sha256 = "069qy7dm5nxb372ij112ppa6m99b4iaimj3sji74m659fwrcrl9a";
+  })
+  (fetchNuGet {
+    name = "Serilog.Formatting.Compact";
+    version = "1.0.0";
+    sha256 = "0mi1yzzj33v4nkyspyshhc6nn2mx3y07z5dvv26hl7hw6kb6yazw";
+  })
+  (fetchNuGet {
+    name = "Serilog.Settings.Configuration";
+    version = "3.1.0";
+    sha256 = "1cj5am4n073331gbfm2ylqb9cadl4q3ppzgwmm5c8m1drxpiwkb5";
+  })
+  (fetchNuGet {
+    name = "Serilog.Sinks.Console";
+    version = "3.1.1";
+    sha256 = "0j99as641y1k6havwwkhyr0n08vibiblmfjj6nz051mz8g3864fn";
+  })
+  (fetchNuGet {
+    name = "Serilog.Sinks.Debug";
+    version = "1.0.1";
+    sha256 = "0969mb254kr59bgkq01ybyzca89z3f4n9ng5mdj8m53d5653zf22";
+  })
+  (fetchNuGet {
+    name = "Serilog.Sinks.File";
+    version = "4.1.0";
+    sha256 = "1ry7p9hf1zlnai1j5zjhjp4dqm2agsbpq6cvxgpf5l8m26x6mgca";
+  })
+  (fetchNuGet {
+    name = "Serilog";
+    version = "2.9.0";
+    sha256 = "0z0ib82w9b229a728bbyhzc2hnlbl0ki7nnvmgnv3l741f2vr4i6";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.bundle_e_sqlite3";
+    version = "2.0.2";
+    sha256 = "00p7n7ndmmh45fhhd3clb11igpzklm1n7r50sdrgnbi5yifv1lxl";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.core";
+    version = "2.0.2";
+    sha256 = "11mnbnsiirpgmilskqh1issvgzgg08ndq3p3nkrw73hyqr7kl958";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.lib.e_sqlite3";
+    version = "2.0.2";
+    sha256 = "0967w6r6n94hj0fma3kidb9fx1m2p3fgrw6gpsy6q6jbb33qw6vj";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.provider.dynamic_cdecl";
+    version = "2.0.2";
+    sha256 = "1lzs8yfjygrwfm3hjmkhnbnpsjzq53ijwx9whmii2r9kjg2a46if";
+  })
+  (fetchNuGet {
+    name = "SSH.NET";
+    version = "2016.1.0";
+    sha256 = "0q08bf9sdf1rf9763z4bk2mr6z381iybm73823scmq9qcpr2jk4d";
+  })
+  (fetchNuGet {
+    name = "SshNet.Security.Cryptography";
+    version = "1.2.0";
+    sha256 = "1xlj8bjavpjk6lrkypk66cxpf2xa31wv73ymrk34d72f05z0xrg0";
+  })
+  (fetchNuGet {
+    name = "System.AppContext";
+    version = "4.1.0";
+    sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
+  })
+  (fetchNuGet {
+    name = "System.AppContext";
+    version = "4.3.0";
+    sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.3.0";
+    sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Concurrent";
+    version = "4.0.12";
+    sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Concurrent";
+    version = "4.3.0";
+    sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Immutable";
+    version = "1.5.0";
+    sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Immutable";
+    version = "1.7.0";
+    sha256 = "1gik4sn9jsi1wcy1pyyp0r4sn2g17cwrsh24b2d52vif8p2h24zx";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Immutable";
+    version = "1.7.1";
+    sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq";
+  })
+  (fetchNuGet {
+    name = "System.Collections.NonGeneric";
+    version = "4.3.0";
+    sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Specialized";
+    version = "4.3.0";
+    sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
+    version = "4.0.11";
+    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
+    version = "4.3.0";
+    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.Annotations";
+    version = "4.7.0";
+    sha256 = "06x1m46ddxj0ng28d7gry9gjkqdg2kp89jyf480g5gznyybbs49z";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.Primitives";
+    version = "4.3.0";
+    sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.TypeConverter";
+    version = "4.3.0";
+    sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel";
+    version = "4.3.0";
+    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+  })
+  (fetchNuGet {
+    name = "System.Configuration.ConfigurationManager";
+    version = "4.5.0";
+    sha256 = "1frpy24mn6q7hgwayj98kkx89z861f5dmia4j6zc0a2ydgx8x02c";
+  })
+  (fetchNuGet {
+    name = "System.Console";
+    version = "4.3.0";
+    sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "4.0.0";
+    sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "4.3.0";
+    sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "4.7.0";
+    sha256 = "0cr0v5dz8l5ackxv6b772fjcyj2nimqmrmzanjs4cw2668v568n1";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "4.7.1";
+    sha256 = "1mivaifniyrqwlnvzsfaxzrh2sd981bwzs3cbvs5wi7jjzbcqr4p";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tools";
+    version = "4.0.1";
+    sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tools";
+    version = "4.3.0";
+    sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.TraceSource";
+    version = "4.0.0";
+    sha256 = "1mc7r72xznczzf6mz62dm8xhdi14if1h8qgx353xvhz89qyxsa3h";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tracing";
+    version = "4.1.0";
+    sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tracing";
+    version = "4.3.0";
+    sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4";
+  })
+  (fetchNuGet {
+    name = "System.Dynamic.Runtime";
+    version = "4.0.11";
+    sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
+  })
+  (fetchNuGet {
+    name = "System.Dynamic.Runtime";
+    version = "4.3.0";
+    sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Calendars";
+    version = "4.0.1";
+    sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Calendars";
+    version = "4.3.0";
+    sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.0.1";
+    sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.3.0";
+    sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.0.11";
+    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.3.0";
+    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+  })
+  (fetchNuGet {
+    name = "System.Interactive.Async";
+    version = "3.1.1";
+    sha256 = "03iq20gq0n2b2sdzs5jhxf46nzkfgvzip6q5248vka2rcvn1yanh";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression.ZipFile";
+    version = "4.3.0";
+    sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression";
+    version = "4.3.0";
+    sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.0.1";
+    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.3.0";
+    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.0.1";
+    sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+  })
+  (fetchNuGet {
+    name = "System.IO.Pipelines";
+    version = "4.7.2";
+    sha256 = "16v4qaypm72cfsfqr8z3k6yrpzn0m3apgkh6aljfwpycdk150sf9";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.1.0";
+    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.3.0";
+    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Expressions";
+    version = "4.1.0";
+    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Expressions";
+    version = "4.3.0";
+    sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.1.0";
+    sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.3.0";
+    sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+  })
+  (fetchNuGet {
+    name = "System.Memory";
+    version = "4.5.0";
+    sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30";
+  })
+  (fetchNuGet {
+    name = "System.Memory";
+    version = "4.5.3";
+    sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a";
+  })
+  (fetchNuGet {
+    name = "System.Net.Http";
+    version = "4.1.0";
+    sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb";
+  })
+  (fetchNuGet {
+    name = "System.Net.Http";
+    version = "4.3.0";
+    sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j";
+  })
+  (fetchNuGet {
+    name = "System.Net.NameResolution";
+    version = "4.0.0";
+    sha256 = "0dj3pvpv069nyia28gkl4a0fb7q33hbxz2dg25qvpah3l7pbl0qh";
+  })
+  (fetchNuGet {
+    name = "System.Net.NameResolution";
+    version = "4.3.0";
+    sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq";
+  })
+  (fetchNuGet {
+    name = "System.Net.Primitives";
+    version = "4.0.11";
+    sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
+  })
+  (fetchNuGet {
+    name = "System.Net.Primitives";
+    version = "4.3.0";
+    sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii";
+  })
+  (fetchNuGet {
+    name = "System.Net.Requests";
+    version = "4.0.11";
+    sha256 = "13mka55sa6dg6nw4zdrih44gnp8hnj5azynz47ljsh2791lz3d9h";
+  })
+  (fetchNuGet {
+    name = "System.Net.Security";
+    version = "4.3.0";
+    sha256 = "1aa5igz31ivk6kpgsrwck3jccab7wd88wr52lddmgypmbh9mmf87";
+  })
+  (fetchNuGet {
+    name = "System.Net.Sockets";
+    version = "4.1.0";
+    sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls";
+  })
+  (fetchNuGet {
+    name = "System.Net.Sockets";
+    version = "4.3.0";
+    sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla";
+  })
+  (fetchNuGet {
+    name = "System.Net.WebHeaderCollection";
+    version = "4.0.1";
+    sha256 = "10bxpxj80c4z00z3ksrfswspq9qqsw8jwxcbzvymzycb97m9b55q";
+  })
+  (fetchNuGet {
+    name = "System.Net.WebHeaderCollection";
+    version = "4.3.0";
+    sha256 = "0ms3ddjv1wn8sqa5qchm245f3vzzif6l6fx5k92klqpn7zf4z562";
+  })
+  (fetchNuGet {
+    name = "System.Net.WebSockets.Client";
+    version = "4.3.2";
+    sha256 = "103y8lfsfa5xd1sqmq9sml4qyp4rij2i3fnnw119h119hb04l0rk";
+  })
+  (fetchNuGet {
+    name = "System.Net.WebSockets";
+    version = "4.3.0";
+    sha256 = "1gfj800078kggcgl0xyl00a6y5k4wwh2k2qm69rjy22wbmq7fy4p";
+  })
+  (fetchNuGet {
+    name = "System.ObjectModel";
+    version = "4.0.12";
+    sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
+  })
+  (fetchNuGet {
+    name = "System.ObjectModel";
+    version = "4.3.0";
+    sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.ILGeneration";
+    version = "4.0.1";
+    sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.ILGeneration";
+    version = "4.3.0";
+    sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.0.1";
+    sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.3.0";
+    sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.0.1";
+    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.3.0";
+    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Extensions";
+    version = "4.0.1";
+    sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Extensions";
+    version = "4.3.0";
+    sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Metadata";
+    version = "1.6.0";
+    sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.0.1";
+    sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.3.0";
+    sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.TypeExtensions";
+    version = "4.1.0";
+    sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.TypeExtensions";
+    version = "4.3.0";
+    sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
+  })
+  (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.1.0";
+    sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
+  })
+  (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.3.0";
+    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.3.0";
+    sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.3.0";
+    sha256 = "149xcsa1pphlrc2zfmca9n822g4mxk7s2a44phvf34r0fajm3hk8";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.4.0";
+    sha256 = "0a6ahgi5b148sl5qyfpyw383p3cb4yrkm802k29fsi4mxkiwir29";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.5.0";
+    sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.5.2";
+    sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.6.0";
+    sha256 = "0xmzi2gpbmgyfr75p24rqqsba3cmrqgmcv45lsqp5amgrdwd0f0m";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.7.0";
+    sha256 = "16r6sn4czfjk8qhnz7bnqlyiaaszr0ihinb7mq9zzr1wba257r54";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.1.0";
+    sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.0.1";
+    sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.3.0";
+    sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices.RuntimeInformation";
+    version = "4.0.0";
+    sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices.RuntimeInformation";
+    version = "4.3.0";
+    sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.1.0";
+    sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Numerics";
+    version = "4.0.1";
+    sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Numerics";
+    version = "4.3.0";
+    sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Formatters";
+    version = "4.3.0";
+    sha256 = "114j35n8gcvn3sqv9ar36r1jjq0y1yws9r0yk8i6wm4aq7n9rs0m";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Primitives";
+    version = "4.1.1";
+    sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Primitives";
+    version = "4.3.0";
+    sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.1.0";
+    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.3.0";
+    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+  })
+  (fetchNuGet {
+    name = "System.Security.AccessControl";
+    version = "4.5.0";
+    sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0";
+  })
+  (fetchNuGet {
+    name = "System.Security.Claims";
+    version = "4.0.1";
+    sha256 = "03dw0ls49bvsrffgwycyifjgz0qzr9r85skqhdyhfd51fqf398n6";
+  })
+  (fetchNuGet {
+    name = "System.Security.Claims";
+    version = "4.3.0";
+    sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Algorithms";
+    version = "4.2.0";
+    sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Algorithms";
+    version = "4.3.0";
+    sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Cng";
+    version = "4.2.0";
+    sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Cng";
+    version = "4.3.0";
+    sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Csp";
+    version = "4.0.0";
+    sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Csp";
+    version = "4.3.0";
+    sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Encoding";
+    version = "4.0.0";
+    sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Encoding";
+    version = "4.3.0";
+    sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.OpenSsl";
+    version = "4.0.0";
+    sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Primitives";
+    version = "4.0.0";
+    sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Primitives";
+    version = "4.3.0";
+    sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.ProtectedData";
+    version = "4.5.0";
+    sha256 = "11qlc8q6b7xlspayv07718ibzvlj6ddqqxkvcbxv5b24d5kzbrb7";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.X509Certificates";
+    version = "4.1.0";
+    sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.X509Certificates";
+    version = "4.3.0";
+    sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h";
+  })
+  (fetchNuGet {
+    name = "System.Security.Permissions";
+    version = "4.5.0";
+    sha256 = "192ww5rm3c9mirxgl1nzyrwd18am3izqls0hzm0fvcdjl5grvbhm";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal.Windows";
+    version = "4.0.0";
+    sha256 = "1d3vc8i0zss9z8p4qprls4gbh7q4218l9845kclx7wvw41809k6z";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal.Windows";
+    version = "4.3.0";
+    sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal.Windows";
+    version = "4.5.0";
+    sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal";
+    version = "4.0.1";
+    sha256 = "1nbzdfqvzzbgsfdd5qsh94d7dbg2v4sw0yx6himyn52zf8z6007p";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal";
+    version = "4.3.0";
+    sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.CodePages";
+    version = "4.5.1";
+    sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.Extensions";
+    version = "4.0.11";
+    sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.Extensions";
+    version = "4.3.0";
+    sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.0.11";
+    sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encodings.Web";
+    version = "4.4.0";
+    sha256 = "05qp3yivh6gz0vva0v3wjlj3g1b45d5jmz362f2y8ah6yb3rx088";
+  })
+  (fetchNuGet {
+    name = "System.Text.Json";
+    version = "4.7.0";
+    sha256 = "0fp3xrysccm5dkaac4yb51d793vywxks978kkl5x4db9gw29rfdr";
+  })
+  (fetchNuGet {
+    name = "System.Text.Json";
+    version = "4.7.2";
+    sha256 = "10xj1pw2dgd42anikvj9qm23ccssrcp7dpznpj4j7xjp1ikhy3y4";
+  })
+  (fetchNuGet {
+    name = "System.Text.RegularExpressions";
+    version = "4.1.0";
+    sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
+  })
+  (fetchNuGet {
+    name = "System.Text.RegularExpressions";
+    version = "4.3.0";
+    sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Channels";
+    version = "4.5.0";
+    sha256 = "0n6z3wjia7h2a5vl727p97riydnb6jhhkb1pdcnizza02dwkz0nz";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.0.0";
+    sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.3.0";
+    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.5.3";
+    sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.0.11";
+    sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.3.0";
+    sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Thread";
+    version = "4.0.0";
+    sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc";
+  })
+  (fetchNuGet {
+    name = "System.Threading.ThreadPool";
+    version = "4.0.10";
+    sha256 = "0fdr61yjcxh5imvyf93n2m3n5g9pp54bnw2l1d2rdl9z6dd31ypx";
+  })
+  (fetchNuGet {
+    name = "System.Threading.ThreadPool";
+    version = "4.3.0";
+    sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Timer";
+    version = "4.0.1";
+    sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Timer";
+    version = "4.3.0";
+    sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.0.11";
+    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.3.0";
+    sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+  })
+  (fetchNuGet {
+    name = "System.Xml.ReaderWriter";
+    version = "4.0.11";
+    sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
+  })
+  (fetchNuGet {
+    name = "System.Xml.ReaderWriter";
+    version = "4.3.0";
+    sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XDocument";
+    version = "4.0.11";
+    sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XDocument";
+    version = "4.3.0";
+    sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XmlDocument";
+    version = "4.0.1";
+    sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XmlDocument";
+    version = "4.3.0";
+    sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XPath.XmlDocument";
+    version = "4.0.1";
+    sha256 = "0l7yljgif41iv5g56l3nxy97hzzgck2a7rhnfnljhx9b0ry41bvc";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XPath";
+    version = "4.0.1";
+    sha256 = "0fjqgb6y66d72d5n8qq1h213d9nv2vi8mpv8p28j3m9rccmsh04m";
+  })
+  (fetchNuGet {
+    name = "Text.Analyzers";
+    version = "2.6.4";
+    sha256 = "1fm3gjnbfnjap3wphx5x48awriy14a2g3s9c1nc4m8w85k8mqdsl";
+  })
+  (fetchNuGet {
+    name = "TwentyTwenty.Storage.Amazon";
+    version = "2.12.1";
+    sha256 = "03nrkvhki35w1rqx94s97rwxl0qwqlczyiimhrkc72vjppn5p6ph";
+  })
+  (fetchNuGet {
+    name = "TwentyTwenty.Storage.Azure";
+    version = "2.12.1";
+    sha256 = "10q7gpr8kmgzmxrzj3paqlnw4d8li8scwpxkzs11ildscfp6hvlv";
+  })
+  (fetchNuGet {
+    name = "TwentyTwenty.Storage.Google";
+    version = "2.12.1";
+    sha256 = "0d8s7p9brp03h9dpv3wxnqg0xsm7d9p4k6dpxpb9jak535khxzhp";
+  })
+  (fetchNuGet {
+    name = "TwentyTwenty.Storage.Local";
+    version = "2.12.1";
+    sha256 = "1zmjqwd1v3z78ab4vdmaadh94465k1qgpv7ylv8x3sdx4z78yjm8";
+  })
+  (fetchNuGet {
+    name = "TwentyTwenty.Storage";
+    version = "2.12.1";
+    sha256 = "0m41dxzc3hh0f4j1k4q915pvcq6zr0hv1pj6b3sayrn8vjhk64qb";
+  })
+  (fetchNuGet {
+    name = "U2F.Core";
+    version = "1.0.4";
+    sha256 = "0mk32yyihigp9njs54z411fswgzr6x3kw134c7ylwy2d2wmq2n9b";
+  })
+  (fetchNuGet {
+    name = "WindowsAzure.Storage";
+    version = "9.3.3";
+    sha256 = "14b0b0nj85yvyn0h8ghr3kj6di2nkbzjxc2q98f1wcr0151xvdfx";
+  })
+  (fetchNuGet {
+    name = "xunit.abstractions";
+    version = "2.0.3";
+    sha256 = "00wl8qksgkxld76fgir3ycc5rjqv1sqds6x8yx40927q5py74gfh";
+  })
+  (fetchNuGet {
+    name = "xunit.analyzers";
+    version = "0.10.0";
+    sha256 = "15n02q3akyqbvkp8nq75a8rd66d4ax0rx8fhdcn8j78pi235jm7j";
+  })
+  (fetchNuGet {
+    name = "xunit.assert";
+    version = "2.4.1";
+    sha256 = "1imynzh80wxq2rp9sc4gxs4x1nriil88f72ilhj5q0m44qqmqpc6";
+  })
+  (fetchNuGet {
+    name = "xunit.core";
+    version = "2.4.1";
+    sha256 = "1nnb3j4kzmycaw1g76ii4rfqkvg6l8gqh18falwp8g28h802019a";
+  })
+  (fetchNuGet {
+    name = "xunit.extensibility.core";
+    version = "2.4.1";
+    sha256 = "103qsijmnip2pnbhciqyk2jyhdm6snindg5z2s57kqf5pcx9a050";
+  })
+  (fetchNuGet {
+    name = "xunit.extensibility.execution";
+    version = "2.4.1";
+    sha256 = "1pbilxh1gp2ywm5idfl0klhl4gb16j86ib4x83p8raql1dv88qia";
+  })
+  (fetchNuGet {
+    name = "xunit.runner.visualstudio";
+    version = "2.4.2";
+    sha256 = "0fi85h43nyrhfc5jzg07znh01r7cpb7bpjdc6mzb9z1pm14ppfm6";
+  })
+  (fetchNuGet {
+    name = "xunit";
+    version = "2.4.1";
+    sha256 = "0xf3kaywpg15flqaqfgywqyychzk15kz0kz34j21rcv78q9ywq20";
+  })
+  (fetchNuGet {
+    name = "YamlDotNet";
+    version = "8.0.0";
+    sha256 = "09hr1jimmfhcpk97p963y94h2k5p7wzcj4mpwqpdnwzbyrp2flpm";
+  })
+]
diff --git a/nixpkgs/pkgs/applications/blockchains/btcpayserver/update.sh b/nixpkgs/pkgs/applications/blockchains/btcpayserver/update.sh
new file mode 100755
index 000000000000..1f7dbedd0204
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/btcpayserver/update.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd)
+
+"$scriptDir"/../nbxplorer/util/update-common.sh btcpayserver "$scriptDir"/deps.nix
diff --git a/nixpkgs/pkgs/applications/blockchains/cgminer/default.nix b/nixpkgs/pkgs/applications/blockchains/cgminer/default.nix
new file mode 100644
index 000000000000..966303ec5a65
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/cgminer/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, libtool
+, autoconf
+, automake
+, curl
+, ncurses
+, ocl-icd
+, opencl-headers
+, libusb1
+, xorg
+, jansson }:
+
+stdenv.mkDerivation rec {
+  pname = "cgminer";
+  version = "4.11.1";
+
+  src = fetchFromGitHub {
+    owner = "ckolivas";
+    repo = "cgminer";
+    rev = "v${version}";
+    sha256 = "0l1ms3nxnjzh4mpiadikvngcr9k3jnjqy3yna207za0va0c28dj5";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ autoconf automake libtool curl ncurses ocl-icd opencl-headers
+    xorg.libX11 xorg.libXext xorg.libXinerama jansson libusb1 ];
+
+  configureScript = "./autogen.sh";
+  configureFlags = [ "--enable-scrypt"
+                     "--enable-opencl"
+                     "--enable-bitforce"
+                     "--enable-icarus"
+                     "--enable-modminer"
+                     "--enable-ztex"
+                     "--enable-avalon"
+                     "--enable-klondike"
+                     "--enable-keccak"
+                     "--enable-bflsc"];
+
+  meta = with stdenv.lib; {
+    description = "CPU/GPU miner in c for bitcoin";
+    homepage = "https://github.com/ckolivas/cgminer";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ offline mmahut ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/clightning.nix b/nixpkgs/pkgs/applications/blockchains/clightning.nix
index 6777e5998cef..2467d3099220 100644
--- a/nixpkgs/pkgs/applications/blockchains/clightning.nix
+++ b/nixpkgs/pkgs/applications/blockchains/clightning.nix
@@ -4,11 +4,11 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "clightning";
-  version = "0.8.2.1";
+  version = "0.9.1";
 
   src = fetchurl {
     url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
-    sha256 = "02incjr59fv75q6hlrln9h4b5gq7ipd778scbz8b8dahj7x1a6i5";
+    sha256 = "4923e2fa001cfc2403d1bed368710499d5def322e6384b8eea2bd39d3351a417";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/blockchains/dashpay.nix b/nixpkgs/pkgs/applications/blockchains/dashpay.nix
index b88aa3af19e3..7bdf93b2dacc 100644
--- a/nixpkgs/pkgs/applications/blockchains/dashpay.nix
+++ b/nixpkgs/pkgs/applications/blockchains/dashpay.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
       private as you make transactions without waits, similar to cash.
     '';
     homepage = "https://www.dash.org";
-    maintainers = with maintainers; [ AndersonTorres ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.unix;
     license = licenses.mit;
   };
diff --git a/nixpkgs/pkgs/applications/blockchains/dcrd.nix b/nixpkgs/pkgs/applications/blockchains/dcrd.nix
index 16d39e85da15..e959eca48aeb 100644
--- a/nixpkgs/pkgs/applications/blockchains/dcrd.nix
+++ b/nixpkgs/pkgs/applications/blockchains/dcrd.nix
@@ -1,34 +1,26 @@
-{ stdenv, lib, go, buildGoPackage, dep, fetchgit, git, cacert }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "dcrd";
-  version = "1.1.2";
-  rev = "refs/tags/v${version}";
-  goPackagePath = "github.com/decred/dcrd";
+  version = "1.5.2";
 
-  buildInputs = [ go git dep cacert ];
+  src = fetchFromGitHub {
+    owner = "decred";
+    repo = "dcrd";
+    rev = "refs/tags/release-v${version}";
+    sha256 = "14pxajc8si90hnddilfm09kmljwxq6i6p53fk0g09jp000cbklkl";
+  };
 
-  GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
-  NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
+  vendorSha256 = "03aw6mcvp1vr01ppxy673jf5hdryd5032cxndlkaiwg005mxp1dy";
 
-  src = fetchgit {
-    inherit rev;
-    url = "https://${goPackagePath}";
-    sha256 = "0xcynipdn9zmmralxj0hjrwyanvhkwfj2b1vvjk5zfc95s2xc1q9";
-  };
+  doCheck = false;
 
-  preBuild = ''
-    export CWD=$(pwd)
-    cd go/src/github.com/decred/dcrd
-    dep ensure
-    go install . ./cmd/...
-    cd $CWD
-  '';
+  subPackages = [ "." "cmd/dcrctl" "cmd/promptsecret" ];
 
   meta = {
     homepage = "https://decred.org";
     description = "Decred daemon in Go (golang)";
     license = with lib.licenses; [ isc ];
-    broken = stdenv.isLinux; # 2018-04-10
+    maintainers = with lib.maintainers; [ juaningan ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/dcrwallet.nix b/nixpkgs/pkgs/applications/blockchains/dcrwallet.nix
index 258aad8e1bd9..779e7135618a 100644
--- a/nixpkgs/pkgs/applications/blockchains/dcrwallet.nix
+++ b/nixpkgs/pkgs/applications/blockchains/dcrwallet.nix
@@ -1,43 +1,26 @@
-{ stdenv, lib, go, buildGoPackage, dep, fetchgit, git, cacert }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "dcrwallet";
-  version = "1.1.2";
-  rev = "refs/tags/v${version}";
-  goPackagePath = "github.com/decred/dcrwallet";
+  version = "1.5.1";
 
-  buildInputs = [ go git dep cacert ];
-
-  GIT_SSL_CAINFO = "${cacert}/etc/ssl/certs/ca-bundle.crt";
-  NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
-
-  src = fetchgit {
-    inherit rev;
-    url = "https://${goPackagePath}";
-    sha256 = "058im4vmcmxcl5ir14h17wik5lagp2ay0p8qc3r99qmpfwvvz39x";
+  src = fetchFromGitHub {
+    owner = "decred";
+    repo = "dcrwallet";
+    rev = "refs/tags/v${version}";
+    sha256 = "0ij2mwvdxg78p9qbdf9wm7aaphfg4j8lqgrjyjsj3kyi1l458ds9";
   };
 
-  preBuild = ''
-    export CWD=$(pwd)
-    cd go/src/github.com/decred/dcrwallet
-    dep ensure
-  '';
-
-  buildPhase = ''
-    runHook preBuild
-    go build
-  '';
+  vendorSha256 = "0qrrr92cad399xwr64qa9h41wqqaj0dy5mw248g5v53zars541w7";
 
-  installPhase = ''
-    mkdir -pv $out/bin
-    cp -v dcrwallet $out/bin
-  '';
+  doCheck = false;
 
+  subPackages = [ "." ];
 
   meta = {
     homepage = "https://decred.org";
-    description = "Decred daemon in Go (golang)";
+    description = "A secure Decred wallet daemon written in Go (golang)";
     license = with lib.licenses; [ isc ];
-    broken = stdenv.isLinux; # 2018-04-10
+    maintainers = with lib.maintainers; [ juaningan ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/dogecoin.nix b/nixpkgs/pkgs/applications/blockchains/dogecoin.nix
index b1ebebdd213a..27a1f6132f05 100644
--- a/nixpkgs/pkgs/applications/blockchains/dogecoin.nix
+++ b/nixpkgs/pkgs/applications/blockchains/dogecoin.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://www.dogecoin.com/";
     license = licenses.mit;
-    maintainers = with maintainers; [ edwtjo offline AndersonTorres ];
+    maintainers = with maintainers; [ edwtjo offline ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/ergo/default.nix b/nixpkgs/pkgs/applications/blockchains/ergo/default.nix
index 29990dae4049..a61df3e91bd1 100644
--- a/nixpkgs/pkgs/applications/blockchains/ergo/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/ergo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ergo";
-  version = "3.2.6";
+  version = "3.3.3";
 
   src = fetchurl {
     url = "https://github.com/ergoplatform/ergo/releases/download/v${version}/ergo-${version}.jar";
-    sha256 = "1a38j7dy6ax9xvcjbdkiz0z33ln4rlmgrxznvqhdf11j70g1sr6x";
+    sha256 = "1lsqshpbc5p5qm8kic8a90xmvd2zx2s7jf613j9ng4h3hh75wbff";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/blockchains/exodus/default.nix b/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
index 758673229afa..af49bb9121f6 100644
--- a/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/exodus/default.nix
@@ -4,11 +4,11 @@ cups, vivaldi-ffmpeg-codecs, libpulseaudio, at-spi2-core }:
 
 stdenv.mkDerivation rec {
   pname = "exodus";
-  version = "20.1.30";
+  version = "20.8.28";
 
   src = fetchurl {
     url = "https://downloads.exodus.io/releases/${pname}-linux-x64-${version}.zip";
-    sha256 = "0jns5zqjm0gqn18ypghbgk6gb713mh7p44ax1r8y4vcwijlp5nql";
+    sha256 = "fde9165f71f0d641f6892ddce3ec26d200e8095a383f2b4c8f924de4041d65ef";
   };
 
   sourceRoot = ".";
@@ -75,6 +75,6 @@ stdenv.mkDerivation rec {
     description = "Top-rated cryptocurrency wallet with Trezor integration and built-in Exchange";
     license = licenses.unfree;
     platforms = platforms.linux;
-    maintainers = [ maintainers.mmahut ];
+    maintainers = with maintainers; [ mmahut rople380 ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix b/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix
index d29292439c0e..6952d469adbd 100644
--- a/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix
+++ b/nixpkgs/pkgs/applications/blockchains/go-ethereum.nix
@@ -2,30 +2,19 @@
 
 buildGoModule rec {
   pname = "go-ethereum";
-  version = "1.9.15";
+  version = "1.9.21";
 
   src = fetchFromGitHub {
     owner = "ethereum";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1c69rfnx9130b87pw9lnaxyrbzwfhqb2dxyl7qyiscq85hqs16f9";
+    sha256 = "0mr5pw08jka11lzgl28555nb90cqxx9vlqd1plfmyic6rb5z11df";
   };
 
-  usb = fetchFromGitHub {
-    owner = "karalabe";
-    repo = "usb";
-    rev = "911d15fe12a9c411cf5d0dd5635231c759399bed";
-    sha256 = "0asd5fz2rhzkjmd8wjgmla5qmqyz4jaa6qf0n2ycia16jsck6wc2";
-  };
-
-  vendorSha256 = "1pjgcx6sydfipsx8s0kl7n6r3lk61klsfrkd7cg4l934k590q2n7";
+  runVend = true;
+  vendorSha256 = "155hmny3543h02ryn1nnlpmvs0qvhd0lb66vmkhw5351m6gkbx7x";
 
-  overrideModAttrs = (_: {
-      postBuild = ''
-      cp -r --reflink=auto ${usb}/libusb vendor/github.com/karalabe/usb
-      cp -r --reflink=auto ${usb}/hidapi vendor/github.com/karalabe/usb
-      '';
-    });
+  doCheck = false;
 
   subPackages = [
     "cmd/abidump"
@@ -42,7 +31,6 @@ buildGoModule rec {
     "cmd/puppeth"
     "cmd/rlpdump"
     "cmd/utils"
-    "cmd/wnode"
   ];
 
   # Fix for usb-related segmentation faults on darwin
@@ -53,6 +41,6 @@ buildGoModule rec {
     homepage = "https://geth.ethereum.org/";
     description = "Official golang implementation of the Ethereum protocol";
     license = with licenses; [ lgpl3 gpl3 ];
-    maintainers = with maintainers; [ adisbladis lionello xrelkd ];
+    maintainers = with maintainers; [ adisbladis lionello xrelkd RaghavSood ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index 1c76ef8df284..323b9936af56 100644
--- a/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/ledger-live-desktop/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "ledger-live-desktop";
-  version = "2.3.2";
+  version = "2.9.0";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
-    sha256 = "0xd3w564zij614ajg57n1qlvz0hd9l7219qxx81ai6b02b9a5g9h";
+    sha256 = "1ajpmsq4h37w3jzcxijg3myp3mvgbrjis6jrz1cl79m78ripb6cy";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/nixpkgs/pkgs/applications/blockchains/litecoin.nix b/nixpkgs/pkgs/applications/blockchains/litecoin.nix
index 22cfa3dbb91e..fa352652dbf9 100644
--- a/nixpkgs/pkgs/applications/blockchains/litecoin.nix
+++ b/nixpkgs/pkgs/applications/blockchains/litecoin.nix
@@ -50,6 +50,6 @@ mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.mit;
     broken = stdenv.isDarwin;
-    maintainers = with maintainers; [ offline AndersonTorres ];
+    maintainers = with maintainers; [ offline ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/lnd.nix b/nixpkgs/pkgs/applications/blockchains/lnd.nix
index 1f249223df58..831195f06f0d 100644
--- a/nixpkgs/pkgs/applications/blockchains/lnd.nix
+++ b/nixpkgs/pkgs/applications/blockchains/lnd.nix
@@ -1,24 +1,40 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ buildGoModule, fetchFromGitHub, lib
+, tags ? [ "autopilotrpc" "signrpc" "walletrpc" "chainrpc" "invoicesrpc" "watchtowerrpc" ]
+}:
 
 buildGoModule rec {
   pname = "lnd";
-  version = "0.10.0-beta";
+  version = "0.11.0-beta";
 
   src = fetchFromGitHub {
     owner = "lightningnetwork";
     repo = "lnd";
     rev = "v${version}";
-    sha256 = "1amciz924s2h6qhy7w34jpv1jc25p5ayfxzvjph6hhx0bccrm88w";
+    sha256 = "1r1hwz8ka5mnmrvj9zcd78kn68g8fg3d4bdx9i0xy4sc2hh1dcpj";
   };
 
-  vendorSha256 = "1iyghg11cxvbzi0gl40fvv8pl3d3k52j179w3x5m1f09r5ji223y";
+  vendorSha256 = "090b9sxvdwh787w0rhrcbky9pbx64qgqx1pvk9ysk3886nxdhf7k";
+
+  doCheck = false;
 
   subPackages = ["cmd/lncli" "cmd/lnd"];
 
+  preBuild = let
+    buildVars = {
+      RawTags = lib.concatStringsSep "," tags;
+      GoVersion = "$(go version | egrep -o 'go[0-9]+[.][^ ]*')";
+    };
+    buildVarsFlags = lib.concatStringsSep " " (lib.mapAttrsToList (k: v: "-X github.com/lightningnetwork/lnd/build.${k}=${v}") buildVars);
+  in
+  lib.optionalString (tags != []) ''
+    buildFlagsArray+=("-tags=${lib.concatStringsSep " " tags}")
+    buildFlagsArray+=("-ldflags=${buildVarsFlags}")
+  '';
+
   meta = with lib; {
     description = "Lightning Network Daemon";
     homepage = "https://github.com/lightningnetwork/lnd";
     license = lib.licenses.mit;
     maintainers = with maintainers; [ cypherpunk2140 ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/mist.nix b/nixpkgs/pkgs/applications/blockchains/mist.nix
deleted file mode 100644
index 9dd564d715cc..000000000000
--- a/nixpkgs/pkgs/applications/blockchains/mist.nix
+++ /dev/null
@@ -1,72 +0,0 @@
-{ stdenv, makeWrapper, fetchurl, unzip, atomEnv, makeDesktopItem, buildFHSUserEnv, gtk2 }:
-
-let
-  version = "0.11.1";
-  pname = "mist";
-
-  throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
-
-  meta = with stdenv.lib; {
-    description = "Browse and use Ðapps on the Ethereum network";
-    homepage = "https://github.com/ethereum/mist";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [];
-    platforms = [ "x86_64-linux" "i686-linux" ];
-  };
-
-  urlVersion = builtins.replaceStrings ["."] ["-"] version;
-
-  desktopItem = makeDesktopItem rec {
-    name = "Mist";
-    exec = "mist";
-    icon = "mist";
-    desktopName = name;
-    genericName = "Mist Browser";
-    categories = "Network;";
-  };
-
-  mist = stdenv.lib.appendToName "unwrapped" (stdenv.mkDerivation {
-    inherit pname version meta;
-
-    src = {
-      i686-linux = fetchurl {
-        url = "https://github.com/ethereum/mist/releases/download/v${version}/Mist-linux32-${urlVersion}.zip";
-        sha256 = "1ffzp9aa0g6w3d5pzp69fljk3sd51cbqdgxa1x16vj106sqm0gj7";
-      };
-      x86_64-linux = fetchurl {
-        url = "https://github.com/ethereum/mist/releases/download/v${version}/Mist-linux64-${urlVersion}.zip";
-        sha256 = "0yx4x72l8gk68yh9saki48zgqx8k92xnkm79dc651wdpd5c25cz3";
-      };
-    }.${stdenv.hostPlatform.system} or throwSystem;
-
-    buildInputs = [ unzip makeWrapper ];
-
-    buildCommand = ''
-      mkdir -p $out/lib/mist $out/bin
-      unzip -d $out/lib/mist $src
-      ln -s $out/lib/mist/mist $out/bin
-      fixupPhase
-      mkdir -p $out/share/applications
-      ln -s ${desktopItem}/share/applications/* $out/share/applications
-      patchelf \
-        --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-        --set-rpath "${atomEnv.libPath}:${gtk2}/lib:$out/lib/mist" \
-        $out/lib/mist/mist
-    '';
-  });
-in
-buildFHSUserEnv {
-  name = "mist";
-  inherit meta;
-
-  targetPkgs = pkgs: with pkgs; [
-     mist
-  ];
-
-  extraInstallCommands = ''
-    mkdir -p "$out/share/applications"
-    cp "${desktopItem}/share/applications/"* $out/share/applications
-  '';
-
-  runScript = "mist";
-}
diff --git a/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix b/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
index cfd3998ee368..6ea075e2a369 100644
--- a/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/monero-gui/default.nix
@@ -4,7 +4,7 @@
 , qtmultimedia, qtxmlpatterns
 , qtquickcontrols, qtquickcontrols2
 , monero, unbound, readline, boost, libunwind
-, libsodium, pcsclite, zeromq, cppzmq
+, libsodium, pcsclite, zeromq, libgcrypt, libgpgerror
 , hidapi, libusb-compat-0_1, protobuf, randomx
 }:
 
@@ -12,13 +12,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "monero-gui";
-  version = "0.15.0.4";
+  version = "0.16.0.3";
 
   src = fetchFromGitHub {
     owner  = "monero-project";
     repo   = "monero-gui";
     rev    = "v${version}";
-    sha256 = "12m5fgnxkr11q2arx1m5ccpxqm5ljcvm6l547dwqn297zs5jim4z";
+    sha256 = "0iwjp8x5swy8i8pzrlm5v55awhm54cf48pm1vz98lcq361lhfzk6";
   };
 
   nativeBuildInputs = [ qmake pkgconfig wrapQtAppsHook ];
@@ -27,9 +27,9 @@ stdenv.mkDerivation rec {
     qtbase qtdeclarative qtgraphicaleffects
     qtmultimedia qtquickcontrols qtquickcontrols2
     qtxmlpatterns
-    monero unbound readline
+    monero unbound readline libgcrypt libgpgerror
     boost libunwind libsodium pcsclite zeromq
-    cppzmq hidapi libusb-compat-0_1 protobuf randomx
+    hidapi libusb-compat-0_1 protobuf randomx
   ];
 
   NIX_CFLAGS_COMPILE = [ "-Wno-error=format-security" ];
@@ -52,6 +52,10 @@ stdenv.mkDerivation rec {
   preBuild = ''
     sed -i s#/opt/monero-wallet-gui##g Makefile
     make -C src/zxcvbn-c
+
+    # use nixpkgs monero sources
+    rmdir monero
+    ln -s "${monero.src}" monero
   '';
 
   desktopItem = makeDesktopItem {
@@ -60,7 +64,7 @@ stdenv.mkDerivation rec {
     icon = "monero";
     desktopName = "Monero";
     genericName = "Wallet";
-    categories  = "Application;Network;Utility;";
+    categories  = "Network;Utility;";
   };
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/applications/blockchains/monero/default.nix b/nixpkgs/pkgs/applications/blockchains/monero/default.nix
index d1abd3956570..f1186564119f 100644
--- a/nixpkgs/pkgs/applications/blockchains/monero/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/monero/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub
 , cmake, pkgconfig
-, boost, miniupnpc, openssl, unbound, cppzmq
+, boost, miniupnpc, openssl, unbound
 , zeromq, pcsclite, readline, libsodium, hidapi
-, pythonProtobuf, randomx, rapidjson, libusb-compat-0_1
+, protobuf, randomx, rapidjson, libusb-compat-0_1
 , CoreData, IOKit, PCSC
 }:
 
@@ -10,13 +10,13 @@ assert stdenv.isDarwin -> IOKit != null;
 
 stdenv.mkDerivation rec {
   pname = "monero";
-  version = "0.15.0.1";
+  version = "0.16.0.3";
 
   src = fetchFromGitHub {
     owner = "monero-project";
     repo = "monero";
     rev = "v${version}";
-    sha256 = "0sypa235lf2bbib4b71xpaw39h9304slgsvnsz8wmy9fq1zx009m";
+    sha256 = "1r9x3712vhb24dxxirfiwj5f9x0h4m7x0ngiiavf5983dfdlgz33";
     fetchSubmodules = true;
   };
 
@@ -24,13 +24,14 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     boost miniupnpc openssl unbound
-    cppzmq zeromq pcsclite readline
+    zeromq pcsclite readline
     libsodium hidapi randomx rapidjson
-    pythonProtobuf libusb-compat-0_1
+    protobuf libusb-compat-0_1
   ] ++ stdenv.lib.optionals stdenv.isDarwin [ IOKit CoreData PCSC ];
 
   cmakeFlags = [
     "-DCMAKE_BUILD_TYPE=Release"
+    "-DUSE_DEVICE_TREZOR=ON"
     "-DBUILD_GUI_DEPS=ON"
     "-DReadline_ROOT_DIR=${readline.dev}"
   ] ++ stdenv.lib.optional stdenv.isDarwin "-DBoost_USE_MULTITHREADED=OFF";
diff --git a/nixpkgs/pkgs/applications/blockchains/mycrypto/default.nix b/nixpkgs/pkgs/applications/blockchains/mycrypto/default.nix
new file mode 100644
index 000000000000..77e603e8380b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/mycrypto/default.nix
@@ -0,0 +1,59 @@
+{ lib, appimageTools, fetchurl, makeDesktopItem
+, gsettings-desktop-schemas, gtk2
+}:
+
+let
+  pname = "MyCrypto";
+  version = "1.7.12";
+  sha256 = "0zmdmkli9zxygrcvrd4lbi0xqyq32dqlkxby8lsjknj1nd6l26n3";
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "https://github.com/mycryptohq/mycrypto/releases/download/${version}/linux-x86-64_${version}_MyCrypto.AppImage";
+    inherit sha256;
+  };
+
+  appimageContents = appimageTools.extractType2 {
+    inherit name src;
+  };
+
+  desktopItem = makeDesktopItem {
+    name = pname;
+    desktopName = pname;
+    comment = "MyCrypto is a free, open-source interface for interacting with the blockchain";
+    exec = pname;
+    icon = "mycrypto";
+    categories = "Finance;";
+  };
+
+in appimageTools.wrapType2 rec {
+  inherit name src;
+
+  profile = ''
+    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk2}/share/gsettings-schemas/${gtk2.name}:$XDG_DATA_DIRS
+  '';
+
+  multiPkgs = null; # no p32bit needed
+  extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
+
+  extraInstallCommands = ''
+    mv $out/bin/{${name},${pname}}
+
+    mkdir -p $out/share
+    cp -rt $out/share ${desktopItem}/share/applications ${appimageContents}/usr/share/icons
+    chmod -R +w $out/share
+    mv $out/share/icons/hicolor/{0x0,256x256}
+  '';
+
+  meta = with lib; {
+    description = "A free, open-source interface for interacting with the blockchain";
+    longDescription = ''
+      MyCrypto is an open-source, client-side tool for generating ether wallets,
+      handling ERC-20 tokens, and interacting with the blockchain more easily.
+    '';
+    homepage = "https://mycrypto.com";
+    license = licenses.mit;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ oxalica ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/namecoin.nix b/nixpkgs/pkgs/applications/blockchains/namecoin.nix
index d52d87b9571c..936eaa2505e1 100644
--- a/nixpkgs/pkgs/applications/blockchains/namecoin.nix
+++ b/nixpkgs/pkgs/applications/blockchains/namecoin.nix
@@ -3,14 +3,14 @@
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
-  version = "nc0.20.0";
+  version = "nc0.20.1";
   name = "namecoin" + toString (optional (!withGui) "d") + "-" + version;
 
   src = fetchFromGitHub {
     owner = "namecoin";
     repo = "namecoin-core";
     rev = version;
-    sha256 = "115nlsq5g169mj4qjmkhxx1bnx740871zqyng9zbm2y4i0xf71c4";
+    sha256 = "1wpfp9y95lmfg2nk1xqzchwck1wk6gwkya1rj07mf5in9jngxk9z";
   };
 
   nativeBuildInputs = [
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
     description = "Decentralized open source information registration and transfer system based on the Bitcoin cryptocurrency";
     homepage = "https://namecoin.org";
     license = licenses.mit;
-    maintainers = with maintainers; [ doublec AndersonTorres infinisil ];
+    maintainers = with maintainers; [ doublec infinisil ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix b/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix
new file mode 100644
index 000000000000..76ca21ef9aaf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/nbxplorer/default.nix
@@ -0,0 +1,54 @@
+{ lib, stdenv, fetchFromGitHub, fetchurl, linkFarmFromDrvs, makeWrapper,
+  dotnetPackages, dotnetCorePackages
+}:
+
+let
+  deps = import ./deps.nix {
+    fetchNuGet = { name, version, sha256 }: fetchurl {
+      name = "nuget-${name}-${version}.nupkg";
+      url = "https://www.nuget.org/api/v2/package/${name}/${version}";
+      inherit sha256;
+    };
+  };
+  dotnetSdk = dotnetCorePackages.sdk_3_1;
+in
+
+stdenv.mkDerivation rec {
+  pname = "nbxplorer";
+  version = "2.1.42";
+
+  src = fetchFromGitHub {
+    owner = "dgarage";
+    repo = "NBXplorer";
+    rev = "v${version}";
+    sha256 = "01q6n7095rrha00xs3l7igzfb9rd743z8crxa2dcz4q5srapfzpi";
+  };
+
+  nativeBuildInputs = [ dotnetSdk dotnetPackages.Nuget makeWrapper ];
+
+  buildPhase = ''
+    export HOME=$TMP/home
+    export DOTNET_CLI_TELEMETRY_OPTOUT=1
+    export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+
+    nuget sources Add -Name tmpsrc -Source $TMP/nuget
+    nuget init ${linkFarmFromDrvs "deps" deps} $TMP/nuget
+
+    dotnet restore --source $TMP/nuget NBXplorer/NBXplorer.csproj
+    dotnet publish --no-restore --output $out/share/$pname -c Release NBXplorer/NBXplorer.csproj
+  '';
+
+  installPhase = ''
+    makeWrapper $out/share/$pname/NBXplorer $out/bin/$pname \
+      --set DOTNET_ROOT "${dotnetSdk}"
+  '';
+
+  dontStrip = true;
+
+  meta = with lib; {
+    description = "Minimalist UTXO tracker for HD Cryptocurrency Wallets";
+    maintainers = with maintainers; [ kcalvinalvin earvstedt ];
+    license = lib.licenses.mit;
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix b/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix
new file mode 100644
index 000000000000..65afa6b72c48
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/nbxplorer/deps.nix
@@ -0,0 +1,1072 @@
+{ fetchNuGet }: [
+  (fetchNuGet {
+    name = "DBTrie";
+    version = "1.0.38";
+    sha256 = "09n9f2j0pha2np9cpbgjfs19jwvfmrglws89izarq71gl8jia6d9";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.JsonPatch";
+    version = "3.1.5";
+    sha256 = "0agcp9c8zf59bliybjfg5whby7k1i1xc4sccyyyj3qcx1snf6lfx";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
+    version = "3.1.5";
+    sha256 = "1n76xr3jn4bcxm9f3lk8k76zn39mhyqcj5b0dqhi2xykyvvrqjgc";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Azure.Amqp";
+    version = "2.4.2";
+    sha256 = "0pfgl6fnw3apwasfg1dp5pvi5h0z0vmznhn2bfsgwndn1xlfw1g9";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Azure.ServiceBus";
+    version = "4.1.3";
+    sha256 = "1mj21nal3hv8b5678rah808521c5rkb0yh6hrlqirsdgxwnl6z6g";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Azure.Services.AppAuthentication";
+    version = "1.0.3";
+    sha256 = "0as64agcsilwgbvwx7iw3abdxyp9cbfpczbagjz49mqmmgnqp899";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeCoverage";
+    version = "16.6.1";
+    sha256 = "01ffm4nflqdb93vq4xl0j3377x360fgx6c6h12mpkcy85ixbv3rl";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.0.1";
+    sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.3.0";
+    sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.7.0";
+    sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Abstractions";
+    version = "2.1.0";
+    sha256 = "03gzlr3z9j1xnr1k6y91zgxpz3pj27i3zsvjwj7i8jqnlqmk7pxd";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.EnvironmentVariables";
+    version = "2.1.0";
+    sha256 = "0xx3idb1l5y1da5zynlys5gyarijmw5pc9hgci8xdxbrcv6rzbjb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.FileExtensions";
+    version = "2.1.0";
+    sha256 = "1lz2xwm63clbh9dfhmygbqvcp4dsrwh5jihv82dmqd5h7lqngl40";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Ini";
+    version = "2.1.0";
+    sha256 = "0bchsljywcq36si4zs2dcx2gj8x98ww93dh2bx2z6x5ilxyjnfip";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration";
+    version = "2.1.0";
+    sha256 = "04rjl38wlr1jjjpbzgf64jp0ql6sbzbil0brwq9mgr3hdgwd7vx2";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileProviders.Abstractions";
+    version = "2.1.0";
+    sha256 = "1sxls5f5cgb0wr8cwb05skqmz074683hrhmd3hhq6m5dasnzb8n3";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileProviders.Physical";
+    version = "2.1.0";
+    sha256 = "1firpsl5bk219i9gdfgiqw1zm68146h1dzx9hvawfpw9slfaa56w";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileSystemGlobbing";
+    version = "2.1.0";
+    sha256 = "1d2622qp22x1cnlwycnzjbc3sgi9jria26fk78zwzsa08npa3avv";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Abstractions";
+    version = "1.0.0";
+    sha256 = "1sh9bidmhy32gkz6fkli79mxv06546ybrzppfw5v2aq0bda1ghka";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Abstractions";
+    version = "2.1.0";
+    sha256 = "1gvgif1wcx4k6pv7gc00qv1hid945jdywy1s50s33q0hfd91hbnj";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
+    version = "2.1.0";
+    sha256 = "1r9gzwdfmb8ysnc4nzmyz5cyar1lw0qmizsvrsh252nhlyg06nmb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.IdentityModel.Clients.ActiveDirectory";
+    version = "3.14.2";
+    sha256 = "0g9a2z1qjxd71lqqghp0a542xk9jkvz951bbnnnw43is4hlnqncq";
+  })
+  (fetchNuGet {
+    name = "Microsoft.IdentityModel.JsonWebTokens";
+    version = "5.4.0";
+    sha256 = "0a5fn0p10dmkwa7vvbq28xw78aq33xm7c82l7vhla95n0lr178n8";
+  })
+  (fetchNuGet {
+    name = "Microsoft.IdentityModel.Logging";
+    version = "5.4.0";
+    sha256 = "1idlpyg3q3syam6aflfbnsa7iql685mjralr1cnfpryf00lm59v0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.IdentityModel.Tokens";
+    version = "5.4.0";
+    sha256 = "0gpdh5rs0p97zm41pphha8n3ccd50b1iszikj3917f111khpw8l0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NET.Test.Sdk";
+    version = "16.6.1";
+    sha256 = "0jjdg468jc6pv2z764f3xc19lcr772nzjm9cjfqq3bqw8vkpzmhv";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.0.1";
+    sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.0.2";
+    sha256 = "17rrj0awknxx6rpdxr7yijdxqdmbbpdlcf2nsadjbd4d2gw7dck0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.1.0";
+    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.0.1";
+    sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.1.0";
+    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.TestPlatform.ObjectModel";
+    version = "16.6.1";
+    sha256 = "0q98q1nw6jl4bajm66z4a9vvh928w8ffsd3k6fpsps23ykpsky7h";
+  })
+  (fetchNuGet {
+    name = "Microsoft.TestPlatform.TestHost";
+    version = "16.6.1";
+    sha256 = "0anzvb2mda548swb2ll1hv65knb8gwjm01hwbl0pzzr607my3lix";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Primitives";
+    version = "4.0.1";
+    sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Primitives";
+    version = "4.3.0";
+    sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Registry";
+    version = "4.3.0";
+    sha256 = "1gxyzxam8163vk1kb6xzxjj4iwspjsz9zhgn1w9rjzciphaz0ig7";
+  })
+  (fetchNuGet {
+    name = "NBitcoin.Altcoins";
+    version = "2.0.19";
+    sha256 = "12a3bf1pi6sq78z6h3clyczvycx7cjry8fby4fyi748wjwljjizz";
+  })
+  (fetchNuGet {
+    name = "NBitcoin.TestFramework";
+    version = "2.0.11";
+    sha256 = "09jrbq9p5k67kdic2038s7q299y2nc8ij6m55m3m8hys7jdrrv05";
+  })
+  (fetchNuGet {
+    name = "NBitcoin";
+    version = "5.0.54";
+    sha256 = "0mx2gr8j8bc4mf1vi1fvqj3672qalxvzvincc61if79p46cik24b";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "1.6.1";
+    sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "2.0.3";
+    sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json.Bson";
+    version = "1.0.2";
+    sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "10.0.3";
+    sha256 = "06vy67bkshclpz69kps4vgzc9h2cgg41c8vlqmdbwclfky7c4haq";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "11.0.1";
+    sha256 = "1z68j07if1xf71lbsrgbia52r812i2dv541sy44ph4dzjjp7pd4m";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "12.0.2";
+    sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "9.0.1";
+    sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r";
+  })
+  (fetchNuGet {
+    name = "NicolasDorier.CommandLine.Configuration";
+    version = "1.0.0.3";
+    sha256 = "0al0pd4zhjpmn8m208xjmy17cbyab68grzdvzr2lhsckwkl6b1jg";
+  })
+  (fetchNuGet {
+    name = "NicolasDorier.CommandLine";
+    version = "1.0.0.2";
+    sha256 = "08a9l18zkhcfa6f56xqylzvmqjzgxsmgkpm2r3ckvxfyml6w0qyy";
+  })
+  (fetchNuGet {
+    name = "NicolasDorier.StandardConfiguration";
+    version = "1.0.0.18";
+    sha256 = "0lgssxafv6cqlw21fb79fm0fcln0clgsk6zadcwrnjv9vampfw7b";
+  })
+  (fetchNuGet {
+    name = "NuGet.Frameworks";
+    version = "5.0.0";
+    sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr";
+  })
+  (fetchNuGet {
+    name = "RabbitMQ.Client";
+    version = "5.1.2";
+    sha256 = "195nxmnva1z2p0ahvn0kswv4d39f5bdy2sl3cxcvfziamc21xrmd";
+  })
+  (fetchNuGet {
+    name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
+  })
+  (fetchNuGet {
+    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
+  })
+  (fetchNuGet {
+    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.IO.Compression";
+    version = "4.3.0";
+    sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Net.Http";
+    version = "4.0.1";
+    sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Net.Http";
+    version = "4.3.0";
+    sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Net.Security";
+    version = "4.3.0";
+    sha256 = "0dnqjhw445ay3chpia9p6vy4w2j6s9vy3hxszqvdanpvvyaxijr3";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography.Apple";
+    version = "4.3.0";
+    sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography";
+    version = "4.0.0";
+    sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System";
+    version = "4.0.0";
+    sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System";
+    version = "4.3.0";
+    sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
+  })
+  (fetchNuGet {
+    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
+  })
+  (fetchNuGet {
+    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
+  })
+  (fetchNuGet {
+    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple";
+    version = "4.3.0";
+    sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi";
+  })
+  (fetchNuGet {
+    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3";
+  })
+  (fetchNuGet {
+    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
+  })
+  (fetchNuGet {
+    name = "System.AppContext";
+    version = "4.3.0";
+    sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.3.0";
+    sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.4.0";
+    sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.5.0";
+    sha256 = "1ywfqn4md6g3iilpxjn5dsr0f5lx6z0yvhqp4pgjcamygg73cz2c";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Concurrent";
+    version = "4.0.12";
+    sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Concurrent";
+    version = "4.3.0";
+    sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8";
+  })
+  (fetchNuGet {
+    name = "System.Collections.NonGeneric";
+    version = "4.3.0";
+    sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Specialized";
+    version = "4.3.0";
+    sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
+    version = "4.0.11";
+    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
+    version = "4.3.0";
+    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.Primitives";
+    version = "4.3.0";
+    sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.TypeConverter";
+    version = "4.3.0";
+    sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel";
+    version = "4.3.0";
+    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+  })
+  (fetchNuGet {
+    name = "System.Console";
+    version = "4.3.0";
+    sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "4.3.0";
+    sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "4.5.1";
+    sha256 = "1j8dgilsgd0n7y87wq1cdlnwck96wijhbyhdp4d01l1gzm3074c1";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Process";
+    version = "4.3.0";
+    sha256 = "0g4prsbkygq8m21naqmcp70f24a1ksyix3dihb1r1f71lpi3cfj7";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tools";
+    version = "4.0.1";
+    sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tools";
+    version = "4.3.0";
+    sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tracing";
+    version = "4.1.0";
+    sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tracing";
+    version = "4.3.0";
+    sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4";
+  })
+  (fetchNuGet {
+    name = "System.Dynamic.Runtime";
+    version = "4.0.11";
+    sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
+  })
+  (fetchNuGet {
+    name = "System.Dynamic.Runtime";
+    version = "4.3.0";
+    sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Calendars";
+    version = "4.0.1";
+    sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Calendars";
+    version = "4.3.0";
+    sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.3.0";
+    sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.0.11";
+    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.3.0";
+    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+  })
+  (fetchNuGet {
+    name = "System.IdentityModel.Tokens.Jwt";
+    version = "5.4.0";
+    sha256 = "05f91fjn054bwphmbbg7c38ipl4i81v73j232jgcq6y16dx6ifyc";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression.ZipFile";
+    version = "4.3.0";
+    sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression";
+    version = "4.3.0";
+    sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.0.1";
+    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.3.0";
+    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.0.1";
+    sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.1.0";
+    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.3.0";
+    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Expressions";
+    version = "4.1.0";
+    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Expressions";
+    version = "4.3.0";
+    sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.1.0";
+    sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.3.0";
+    sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+  })
+  (fetchNuGet {
+    name = "System.Memory";
+    version = "4.5.0";
+    sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30";
+  })
+  (fetchNuGet {
+    name = "System.Net.Http";
+    version = "4.3.0";
+    sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j";
+  })
+  (fetchNuGet {
+    name = "System.Net.NameResolution";
+    version = "4.3.0";
+    sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq";
+  })
+  (fetchNuGet {
+    name = "System.Net.Primitives";
+    version = "4.0.11";
+    sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
+  })
+  (fetchNuGet {
+    name = "System.Net.Primitives";
+    version = "4.3.0";
+    sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii";
+  })
+  (fetchNuGet {
+    name = "System.Net.Security";
+    version = "4.3.0";
+    sha256 = "1aa5igz31ivk6kpgsrwck3jccab7wd88wr52lddmgypmbh9mmf87";
+  })
+  (fetchNuGet {
+    name = "System.Net.Sockets";
+    version = "4.3.0";
+    sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla";
+  })
+  (fetchNuGet {
+    name = "System.Net.WebHeaderCollection";
+    version = "4.0.1";
+    sha256 = "10bxpxj80c4z00z3ksrfswspq9qqsw8jwxcbzvymzycb97m9b55q";
+  })
+  (fetchNuGet {
+    name = "System.Net.WebHeaderCollection";
+    version = "4.3.0";
+    sha256 = "0ms3ddjv1wn8sqa5qchm245f3vzzif6l6fx5k92klqpn7zf4z562";
+  })
+  (fetchNuGet {
+    name = "System.Net.WebSockets.Client";
+    version = "4.0.2";
+    sha256 = "0p8m9h94h9za8281hngpi6awka6v26s1gkk0npmxzqq4ilas6b4s";
+  })
+  (fetchNuGet {
+    name = "System.Net.WebSockets.Client";
+    version = "4.3.2";
+    sha256 = "103y8lfsfa5xd1sqmq9sml4qyp4rij2i3fnnw119h119hb04l0rk";
+  })
+  (fetchNuGet {
+    name = "System.Net.WebSockets";
+    version = "4.0.0";
+    sha256 = "04jdhq9dp43x1m6hddn06sq74skc50i1yk6hip0224pj6fwxa4k2";
+  })
+  (fetchNuGet {
+    name = "System.Net.WebSockets";
+    version = "4.3.0";
+    sha256 = "1gfj800078kggcgl0xyl00a6y5k4wwh2k2qm69rjy22wbmq7fy4p";
+  })
+  (fetchNuGet {
+    name = "System.Numerics.Vectors";
+    version = "4.4.0";
+    sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba";
+  })
+  (fetchNuGet {
+    name = "System.ObjectModel";
+    version = "4.0.12";
+    sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
+  })
+  (fetchNuGet {
+    name = "System.ObjectModel";
+    version = "4.3.0";
+    sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
+  })
+  (fetchNuGet {
+    name = "System.Private.DataContractSerialization";
+    version = "4.1.1";
+    sha256 = "1xk9wvgzipssp1393nsg4n16zbr5481k03nkdlj954hzq5jkx89r";
+  })
+  (fetchNuGet {
+    name = "System.Private.DataContractSerialization";
+    version = "4.3.0";
+    sha256 = "06fjipqvjp559rrm825x6pll8gimdj9x1n3larigh5hsm584gndw";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.ILGeneration";
+    version = "4.0.1";
+    sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.ILGeneration";
+    version = "4.3.0";
+    sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.0.1";
+    sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.3.0";
+    sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.0.1";
+    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.3.0";
+    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Extensions";
+    version = "4.0.1";
+    sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Extensions";
+    version = "4.3.0";
+    sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.0.1";
+    sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.3.0";
+    sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.TypeExtensions";
+    version = "4.1.0";
+    sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.TypeExtensions";
+    version = "4.3.0";
+    sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
+  })
+  (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.1.0";
+    sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
+  })
+  (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.3.0";
+    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.3.0";
+    sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.5.0";
+    sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.1.0";
+    sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.0.1";
+    sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.3.0";
+    sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices.RuntimeInformation";
+    version = "4.3.0";
+    sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.1.0";
+    sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Numerics";
+    version = "4.0.1";
+    sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Numerics";
+    version = "4.3.0";
+    sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Formatters";
+    version = "4.3.0";
+    sha256 = "114j35n8gcvn3sqv9ar36r1jjq0y1yws9r0yk8i6wm4aq7n9rs0m";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Json";
+    version = "4.0.2";
+    sha256 = "08ypbzs0sb302ga04ds5b2wxa2gg0q50zpa0nvc87ipjhs0v66dn";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Primitives";
+    version = "4.1.1";
+    sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Primitives";
+    version = "4.3.0";
+    sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Xml";
+    version = "4.3.0";
+    sha256 = "1b2cxl2h7s8cydbhbmxhvvq071n9ck61g08npg4gyw7nvg37rfni";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.1.0";
+    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.3.0";
+    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+  })
+  (fetchNuGet {
+    name = "System.Security.Claims";
+    version = "4.3.0";
+    sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Algorithms";
+    version = "4.2.0";
+    sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Algorithms";
+    version = "4.3.0";
+    sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Cng";
+    version = "4.2.0";
+    sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Cng";
+    version = "4.3.0";
+    sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Csp";
+    version = "4.0.0";
+    sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Csp";
+    version = "4.3.0";
+    sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Encoding";
+    version = "4.0.0";
+    sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Encoding";
+    version = "4.3.0";
+    sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.OpenSsl";
+    version = "4.0.0";
+    sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Primitives";
+    version = "4.0.0";
+    sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Primitives";
+    version = "4.3.0";
+    sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.X509Certificates";
+    version = "4.1.0";
+    sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.X509Certificates";
+    version = "4.3.0";
+    sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal.Windows";
+    version = "4.3.0";
+    sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal";
+    version = "4.3.0";
+    sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.Extensions";
+    version = "4.0.11";
+    sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.Extensions";
+    version = "4.3.0";
+    sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.0.11";
+    sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+  })
+  (fetchNuGet {
+    name = "System.Text.RegularExpressions";
+    version = "4.1.0";
+    sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
+  })
+  (fetchNuGet {
+    name = "System.Text.RegularExpressions";
+    version = "4.3.0";
+    sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Channels";
+    version = "4.7.1";
+    sha256 = "038fyrriypwzsj5fwgnkw79hm5ya0x63r724yizgahbxf512chr2";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.0.0";
+    sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.3.0";
+    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.0.11";
+    sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.3.0";
+    sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Thread";
+    version = "4.3.0";
+    sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4";
+  })
+  (fetchNuGet {
+    name = "System.Threading.ThreadPool";
+    version = "4.3.0";
+    sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Timer";
+    version = "4.3.0";
+    sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.0.11";
+    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.3.0";
+    sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+  })
+  (fetchNuGet {
+    name = "System.Xml.ReaderWriter";
+    version = "4.0.11";
+    sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
+  })
+  (fetchNuGet {
+    name = "System.Xml.ReaderWriter";
+    version = "4.3.0";
+    sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XDocument";
+    version = "4.0.11";
+    sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XDocument";
+    version = "4.3.0";
+    sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XmlDocument";
+    version = "4.0.1";
+    sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XmlDocument";
+    version = "4.3.0";
+    sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XmlSerializer";
+    version = "4.0.11";
+    sha256 = "01nzc3gdslw90qfykq4qzr2mdnqxjl4sj0wp3fixiwdmlmvpib5z";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XmlSerializer";
+    version = "4.3.0";
+    sha256 = "07pa4sx196vxkgl3csvdmw94nydlsm9ir38xxcs84qjn8cycd912";
+  })
+  (fetchNuGet {
+    name = "xunit.abstractions";
+    version = "2.0.3";
+    sha256 = "00wl8qksgkxld76fgir3ycc5rjqv1sqds6x8yx40927q5py74gfh";
+  })
+  (fetchNuGet {
+    name = "xunit.analyzers";
+    version = "0.10.0";
+    sha256 = "15n02q3akyqbvkp8nq75a8rd66d4ax0rx8fhdcn8j78pi235jm7j";
+  })
+  (fetchNuGet {
+    name = "xunit.assert";
+    version = "2.4.1";
+    sha256 = "1imynzh80wxq2rp9sc4gxs4x1nriil88f72ilhj5q0m44qqmqpc6";
+  })
+  (fetchNuGet {
+    name = "xunit.core";
+    version = "2.4.1";
+    sha256 = "1nnb3j4kzmycaw1g76ii4rfqkvg6l8gqh18falwp8g28h802019a";
+  })
+  (fetchNuGet {
+    name = "xunit.extensibility.core";
+    version = "2.4.1";
+    sha256 = "103qsijmnip2pnbhciqyk2jyhdm6snindg5z2s57kqf5pcx9a050";
+  })
+  (fetchNuGet {
+    name = "xunit.extensibility.execution";
+    version = "2.4.1";
+    sha256 = "1pbilxh1gp2ywm5idfl0klhl4gb16j86ib4x83p8raql1dv88qia";
+  })
+  (fetchNuGet {
+    name = "xunit.runner.visualstudio";
+    version = "2.4.2";
+    sha256 = "0fi85h43nyrhfc5jzg07znh01r7cpb7bpjdc6mzb9z1pm14ppfm6";
+  })
+  (fetchNuGet {
+    name = "xunit";
+    version = "2.4.1";
+    sha256 = "0xf3kaywpg15flqaqfgywqyychzk15kz0kz34j21rcv78q9ywq20";
+  })
+]
diff --git a/nixpkgs/pkgs/applications/blockchains/nbxplorer/update.sh b/nixpkgs/pkgs/applications/blockchains/nbxplorer/update.sh
new file mode 100755
index 000000000000..5db2723ef8e9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/nbxplorer/update.sh
@@ -0,0 +1,6 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd)
+
+getVersionFromTags=1 "$scriptDir"/util/update-common.sh nbxplorer "$scriptDir"/deps.nix
diff --git a/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/create-deps.sh b/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/create-deps.sh
new file mode 100755
index 000000000000..1402d1cd1eb8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/create-deps.sh
@@ -0,0 +1,45 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p dotnet-sdk_3
+set -euo pipefail
+
+# Writes deps for dotnet package in $pkgSrc to $depsFile.
+# Expects $pkgSrc to contain a single .sln file.
+
+pkgSrc=$1
+depsFile=$2
+
+sln=$(cd "$pkgSrc"; find * -maxdepth 0 -name '*.sln' | head -1)
+[[ $sln ]] || { echo "No .sln file in $pkgSrc" ; exit 1; }
+
+tmpdir=$(mktemp -d /tmp/$pkgName-src.XXX)
+echo "Using tmp dir: $tmpdir"
+cp -rT "$pkgSrc" "$tmpdir"
+chmod -R +w "$tmpdir"
+
+pushd "$tmpdir" > /dev/null
+mkdir home
+echo "Running dotnet restore for $sln"
+HOME=home DOTNET_CLI_TELEMETRY_OPTOUT=1 \
+  dotnet restore -v normal --no-cache "$sln" > restore_log
+
+echo "{ fetchNuGet }: [" > "$depsFile"
+while read pkgSpec; do
+  { read name; read version; } < <(
+    # Ignore build version part: 1.0.0-beta2+77df2220 -> 1.0.0-beta2
+    sed -nE 's/.*<id>([^<]*).*/\1/p; s/.*<version>([^<+]*).*/\1/p' "$pkgSpec"
+  )
+  sha256=$(nix-hash --type sha256 --flat --base32 "$(dirname "$pkgSpec")"/*.nupkg)
+  cat >> "$depsFile" <<EOF
+  (fetchNuGet {
+    name = "$name";
+    version = "$version";
+    sha256 = "$sha256";
+  })
+EOF
+done < <(find home/.nuget/packages -name '*.nuspec' | LC_ALL=C sort)
+echo "]" >> "$depsFile"
+
+echo "Created $depsFile"
+
+popd > /dev/null
+rm -r $tmpdir
diff --git a/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/update-common.sh b/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/update-common.sh
new file mode 100755
index 000000000000..c69168ccbbb1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/nbxplorer/util/update-common.sh
@@ -0,0 +1,51 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p coreutils curl jq common-updater-scripts dotnet-sdk_3
+set -euo pipefail
+
+# This script uses the following env vars:
+# getVersionFromTags
+# onlyCreateDeps
+
+pkgName=$1
+depsFile=$2
+
+: ${getVersionFromTags:=}
+: ${onlyCreateDeps:=}
+
+scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd)
+nixpkgs=$(realpath "$scriptDir"/../../../../..)
+
+evalNixpkgs() {
+  nix eval --raw "(with import \"$nixpkgs\" {}; $1)"
+}
+
+getRepo() {
+  url=$(evalNixpkgs $pkgName.src.meta.homepage)
+  echo $(basename $(dirname $url))/$(basename $url)
+}
+
+getLatestVersionTag() {
+  "$nixpkgs"/pkgs/common-updater/scripts/list-git-tags https://github.com/$(getRepo) 2>/dev/null \
+    | sort -V | tail -1 | sed 's|^v||'
+}
+
+if [[ ! $onlyCreateDeps ]]; then
+  oldVersion=$(evalNixpkgs "$pkgName.version")
+  if [[ $getVersionFromTags ]]; then
+    newVersion=$(getLatestVersionTag)
+  else
+    newVersion=$(curl -s "https://api.github.com/repos/$(getRepo)/releases" | jq -r '.[0].name')
+  fi
+
+  if [[ $newVersion == $oldVersion ]]; then
+    echo "nixpkgs already has the latest version $newVersion"
+    echo "Run this script with env var onlyCreateDeps=1 to recreate "$(basename "$depsFile")
+    exit 0
+  else
+    echo "Updating $pkgName: $oldVersion -> $newVersion"
+    (cd "$nixpkgs" && update-source-version "$pkgName" "$newVersion")
+  fi
+fi
+
+storeSrc="$(nix-build "$nixpkgs" -A $pkgName.src --no-out-link)"
+. "$scriptDir"/create-deps.sh "$storeSrc" "$depsFile"
diff --git a/nixpkgs/pkgs/applications/blockchains/parity/default.nix b/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix
index a2428ed01ed5..7d5acc62050d 100644
--- a/nixpkgs/pkgs/applications/blockchains/parity/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/openethereum/default.nix
@@ -9,17 +9,19 @@
 }:
 
 rustPlatform.buildRustPackage rec {
-  pname = "parity";
-  version = "3.0.0";
+  pname = "openethereum";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
-    owner = "paritytech";
-    repo = "parity-ethereum";
+    owner = "openethereum";
+    repo = "openethereum";
     rev = "v${version}";
-    sha256 = "124km8c2d7877yzd885wzlcl3gky15isx0z2l1qg1q3cqdsb5mjf";
+    sha256 = "08dkcrga1x18csh6pw6f54x5xwijppyjhg46cf4p452xc1l3a6ir";
   };
 
-  cargoSha256 = "0m4pms7agfyqk6gz6fwxdl8jmcyhphhzh3x4vykbi6186y7a8ihq";
+  cargoSha256 = "1xliragihwjfc5qmfm0ng519bw8a28m1w1yqcl9mpk8zywiybaah";
+
+  cargoPatches = [ ./lock.patch ];
 
   LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
   nativeBuildInputs = [
@@ -38,7 +40,7 @@ rustPlatform.buildRustPackage rec {
 
   meta = with lib; {
     description = "Fast, light, robust Ethereum implementation";
-    homepage = "http://parity.io";
+    homepage = "http://parity.io/ethereum";
     license = licenses.gpl3;
     maintainers = with maintainers; [ akru xrelkd ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/blockchains/openethereum/lock.patch b/nixpkgs/pkgs/applications/blockchains/openethereum/lock.patch
new file mode 100644
index 000000000000..66709480bb72
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/openethereum/lock.patch
@@ -0,0 +1,20 @@
+--- /nix/store/hv764a65zmfzw5scjhz5839agv10da6x-source/Cargo.lock	1969-12-31 16:00:01.000000000 -0800
++++ ./Cargo.lock	2020-07-31 21:30:31.146750066 -0700
+@@ -3113,7 +3113,7 @@
+ 
+ [[package]]
+ name = "openethereum"
+-version = "3.0.0"
++version = "3.0.1"
+ dependencies = [
+  "ansi_term",
+  "atty",
+@@ -3562,7 +3562,7 @@
+ 
+ [[package]]
+ name = "parity-version"
+-version = "3.0.0"
++version = "3.0.1"
+ dependencies = [
+  "parity-bytes",
+  "rlp",
diff --git a/nixpkgs/pkgs/applications/blockchains/pivx.nix b/nixpkgs/pkgs/applications/blockchains/pivx.nix
index 600e462b390e..16ea2dc43e74 100644
--- a/nixpkgs/pkgs/applications/blockchains/pivx.nix
+++ b/nixpkgs/pkgs/applications/blockchains/pivx.nix
@@ -1,5 +1,5 @@
 { fetchFromGitHub, stdenv, pkgconfig, autoreconfHook, wrapQtAppsHook ? null
-, openssl_1_0_2, db48, boost, zlib, miniupnpc, gmp
+, openssl, db48, boost, zlib, miniupnpc, gmp
 , qrencode, glib, protobuf, yasm, libevent
 , utillinux, qtbase ? null, qttools ? null
 , enableUpnp ? false
@@ -10,17 +10,17 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "pivx-${version}";
-  version = "4.0.2";
+  version = "4.1.1";
 
   src = fetchFromGitHub {
     owner = "PIVX-Project";
     repo= "PIVX";
     rev = "v${version}";
-    sha256 = "12lnp318k8dx1sar24zfmv2imnzs30srssnlpb31y7hcxhz0wpc5";
+    sha256 = "03ndk46h6093v8s18d5iffz48zhlshq7jrk6vgpjfs6z2iqgd2sy";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ] ++ optionals withGui [ wrapQtAppsHook ];
-  buildInputs = [ glib gmp openssl_1_0_2 db48 yasm boost zlib libevent miniupnpc protobuf utillinux ]
+  buildInputs = [ glib gmp openssl db48 yasm boost zlib libevent miniupnpc protobuf utillinux ]
                   ++ optionals withGui [ qtbase qttools qrencode ];
 
   configureFlags = [ "--with-boost-libdir=${boost.out}/lib" ]
@@ -28,7 +28,6 @@ stdenv.mkDerivation rec {
                     ++ optional disableWallet "--disable-wallet"
                     ++ optional disableDaemon "--disable-daemon"
                     ++ optionals withGui [ "--with-gui=yes"
-                                           "--with-unsupported-ssl" # TODO remove this ASAP
                                            "--with-qt-bindir=${qtbase.dev}/bin:${qttools.dev}/bin"
                                          ];
   
@@ -56,9 +55,5 @@ stdenv.mkDerivation rec {
     homepage = "https://www.dash.org";
     maintainers = with maintainers; [ wucke13 ];
     platforms = platforms.unix;
-    # TODO
-    # upstream doesn't support newer openssl versions
-    # https://github.com/PIVX-Project/PIVX/issues/748
-    # openssl_1_0_2 should be replaced with openssl ASAP
   };
 }
diff --git a/nixpkgs/pkgs/applications/blockchains/quorum.nix b/nixpkgs/pkgs/applications/blockchains/quorum.nix
index f745860f6612..5a525dec9995 100644
--- a/nixpkgs/pkgs/applications/blockchains/quorum.nix
+++ b/nixpkgs/pkgs/applications/blockchains/quorum.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, buildGoPackage, git, which }:
-  
+
 buildGoPackage rec {
   pname = "quorum";
   version = "2.5.0";
diff --git a/nixpkgs/pkgs/applications/blockchains/wasabibackend/create_deps.sh b/nixpkgs/pkgs/applications/blockchains/wasabibackend/create_deps.sh
new file mode 100644
index 000000000000..814f92a341a6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/wasabibackend/create_deps.sh
@@ -0,0 +1,98 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i bash -p dotnet-sdk_3 nixfmt
+
+# Run this script to generate deps.nix
+# ./create_deps.sh /path/to/package/source/checkout > deps.nix
+
+# TODO: consolidate with other dotnet deps generation scripts by which
+#       this script is inspired:
+#       - pkgs/servers/nosql/eventstore/create-deps.sh
+#       - pkgs/development/dotnet-modules/python-language-server/create_deps.sh
+
+URLBASE="https://www.nuget.org/api/v2/package"
+
+DEPS_HEADER="
+{ fetchurl }:
+let
+  nugetUrlBase = \"$URLBASE\";
+  fetchNuGet = { name, version, sha256 }: fetchurl {
+    inherit sha256;
+    url = \"\${nugetUrlBase}/\${name}/\${version}\";
+  };
+in ["
+
+DEPS_FOOTER="]"
+
+DEPS_TEMPLATE="
+(fetchNuGet {
+  name = \"%s\";
+  version = \"%s\";
+  sha256 = \"%s\";
+})"
+
+
+function generate_restore_log() {
+  checkout_path=$1
+  >&2 echo "generating restore log for $checkout_path..."
+  cd $checkout_path
+  dotnet nuget locals all --clear
+  dotnet restore -v normal --no-cache WalletWasabi.Backend -r linux-x64
+  cd -
+}
+
+function process_restore_log() {
+  restore_log=$1
+  >&2 echo "processing restore log..."
+  while read line; do
+    if echo $line | grep -q "^[[:space:]]*Installing"; then
+      l=$(echo $line | xargs)
+      l=${l#Installing }
+      l=${l%.}
+      echo $l
+    fi
+  done < $restore_log
+}
+
+function prefetch_deps() {
+  processed_log=$1
+  >&2 echo "prefetching deps..."
+  while read line; do
+    name=$(echo $line | cut -d' ' -f1)
+    >&2 echo "prefetching '$name' version: $version"
+    version=$(echo $line | cut -d' ' -f2)
+    hash=$(nix-prefetch-url "$URLBASE/$name/$version" 2>/dev/null)
+    echo "$name $version $hash"
+  done < $processed_log
+}
+
+function generate_deps_expression() {
+  packages=$1
+  >&2 echo "generating deps nix-expression..."
+  echo $DEPS_HEADER
+  while read line; do
+    name=$(echo $line | cut -d' ' -f1)
+    version=$(echo $line | cut -d' ' -f2)
+    hash=$(echo $line | cut -d' ' -f3)
+    printf "$DEPS_TEMPLATE" $name $version $hash
+  done < $packages
+  echo $DEPS_FOOTER
+}
+
+function main() {
+  checkout_path=$1
+  tmpdir=$(mktemp -d)
+  generate_restore_log $checkout_path > $tmpdir/restore.log
+  process_restore_log $tmpdir/restore.log > $tmpdir/processed.log
+  prefetch_deps $tmpdir/processed.log > $tmpdir/prefetched.log
+  generate_deps_expression $tmpdir/prefetched.log > $tmpdir/deps.nix
+  nixfmt $tmpdir/deps.nix
+  cat $tmpdir/deps.nix
+  rm -rf $tmpdir
+}
+
+if [ ! -d "$1" ]; then
+    >&2 echo "First argument must be a directory, the path to the package source checkout"
+    exit 1
+fi
+
+main $@
diff --git a/nixpkgs/pkgs/applications/blockchains/wasabibackend/default.nix b/nixpkgs/pkgs/applications/blockchains/wasabibackend/default.nix
new file mode 100644
index 000000000000..6b5358c9cf93
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/wasabibackend/default.nix
@@ -0,0 +1,100 @@
+{ stdenv
+, fetchFromGitHub
+, fetchurl
+, makeWrapper
+, Nuget
+, dotnetCorePackages
+, openssl
+, zlib
+}:
+
+let
+  deps = import ./deps.nix { inherit fetchurl; };
+
+  dotnet-sdk = dotnetCorePackages.sdk_3_1;
+  dotnet-aspnetcore = dotnetCorePackages.aspnetcore_3_1;
+
+  nugetSource = stdenv.mkDerivation {
+    pname = "${pname}-nuget-deps";
+    inherit version;
+
+    dontUnpack = true;
+    dontInstall = true;
+
+    nativeBuildInputs = [ Nuget ];
+
+    buildPhase = ''
+      export HOME=$(mktemp -d)
+      mkdir -p $out/lib
+
+      nuget sources Disable -Name "nuget.org"
+      for package in ${toString deps}; do
+        nuget add $package -Source $out/lib
+      done
+    '';
+  };
+
+  pname = "WasabiBackend";
+  version = "1.1.12";
+
+  projectName = "WalletWasabi.Backend";
+  projectConfiguration = "Release";
+  projectRuntime = "linux-x64";
+in
+
+stdenv.mkDerivation rec {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "zkSNACKs";
+    repo = "WalletWasabi";
+    rev = "v${version}";
+    sha256 = "001k43z2jxvs03csyzndlzlk034aclzc4n8ddrqxykgrq508xk1d";
+  };
+
+  buildInputs = [
+    Nuget
+    dotnet-sdk
+    makeWrapper
+  ];
+
+  buildPhase = ''
+    export HOME=$(mktemp -d)
+    export DOTNET_CLI_TELEMETRY_OPTOUT=1
+    export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+    export DOTNET_ROOT="${dotnet-sdk}/bin"
+
+    nuget sources Disable -Name "nuget.org"
+
+    dotnet restore \
+      --source ${nugetSource}/lib \
+      --runtime ${projectRuntime} \
+      ${projectName}
+
+    dotnet publish \
+      --no-restore \
+      --runtime ${projectRuntime} \
+      --configuration ${projectConfiguration} \
+      ${projectName}
+  '';
+
+  installPhase = ''
+    mkdir -p $out
+    cp -r ${projectName}/bin/${projectConfiguration}/netcoreapp3.1/${projectRuntime}/publish $out/lib
+    mkdir -p $out/bin
+    makeWrapper $out/lib/WalletWasabi.Backend $out/bin/${pname} \
+      --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ openssl zlib ]} \
+      --run "cd $out/lib"
+  '';
+
+  # If we don't disable stripping the executable fails to start with segfault
+  dontStrip = true;
+
+  meta = with stdenv.lib; {
+    description = "Backend for the Wasabi Wallet";
+    homepage = "https://wasabiwallet.io/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mmahut ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/wasabibackend/deps.nix b/nixpkgs/pkgs/applications/blockchains/wasabibackend/deps.nix
new file mode 100644
index 000000000000..4d4489efa3cb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/wasabibackend/deps.nix
@@ -0,0 +1,956 @@
+{ fetchurl }:
+let
+  nugetUrlBase = "https://www.nuget.org/api/v2/package";
+  fetchNuGet = { name, version, sha256 }:
+    fetchurl {
+      inherit sha256;
+      url = "${nugetUrlBase}/${name}/${version}";
+    };
+in [
+
+  (fetchNuGet {
+    name = "System.Xml.XmlSerializer";
+    version = "4.0.11";
+    sha256 = "01nzc3gdslw90qfykq4qzr2mdnqxjl4sj0wp3fixiwdmlmvpib5z";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.3.0";
+    sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.3.0";
+    sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
+  })
+  (fetchNuGet {
+    name = "System.Dynamic.Runtime";
+    version = "4.0.11";
+    sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Overlapped";
+    version = "4.0.1";
+    sha256 = "0fi79az3vmqdp9mv3wh2phblfjls89zlj6p9nc3i9f6wmfarj188";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal";
+    version = "4.0.1";
+    sha256 = "1nbzdfqvzzbgsfdd5qsh94d7dbg2v4sw0yx6himyn52zf8z6007p";
+  })
+  (fetchNuGet {
+    name = "System.Private.DataContractSerialization";
+    version = "4.1.1";
+    sha256 = "1xk9wvgzipssp1393nsg4n16zbr5481k03nkdlj954hzq5jkx89r";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Registry";
+    version = "4.0.0";
+    sha256 = "1spf4m9pikkc19544p29a47qnhcd885klncahz133hbnyqbkmz9k";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.0.1";
+    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.0.1";
+    sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.ILGeneration";
+    version = "4.0.1";
+    sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.0.1";
+    sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "4.0.0";
+    sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.0.0";
+    sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Cng";
+    version = "4.2.0";
+    sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Csp";
+    version = "4.0.0";
+    sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q";
+  })
+  (fetchNuGet {
+    name = "Microsoft.VisualStudio.Web.CodeGeneration.Tools";
+    version = "2.0.2";
+    sha256 = "0fkjm06irs53d77z29i6dwj5pjhgj9ivhad8v39ghnrwasc0ivq6";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.OpenSsl";
+    version = "4.0.0";
+    sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q";
+  })
+  (fetchNuGet {
+    name = "Microsoft.VisualStudio.Web.CodeGeneration.Contracts";
+    version = "2.0.2";
+    sha256 = "1fs6sbjn0chx6rv38d61zgk8mhyyxz44xp4wsfya0lvkckyszyn1";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Net.Http";
+    version = "4.0.1";
+    sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileProviders.Physical";
+    version = "2.0.0";
+    sha256 = "0l0l92g7sq4122n139av1pn1jl6wlw92hjmdnr47xdss0ndmwrs3";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.IO.Compression";
+    version = "4.1.0";
+    sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.App";
+    version = "2.0.5";
+    sha256 = "0qb7k624w7l0zhapdp519ymqg84a67r8zyd8cpj42hywsgb0dqv6";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography";
+    version = "4.0.0";
+    sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
+  })
+  (fetchNuGet {
+    name = "NuGet.Frameworks";
+    version = "4.0.0";
+    sha256 = "0nar684cm53cvzx28gzl6kmpg9mrfr1yv29323din7xqal4pscgq";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build.Runtime";
+    version = "15.3.409";
+    sha256 = "135ycnqz5jfg61y5zaapgc7xdpjx2aq4icmxb9ph7h5inl445q7q";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System";
+    version = "4.0.0";
+    sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.0.0";
+    sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.0.1";
+    sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "10.0.1";
+    sha256 = "15ncqic3p2rzs8q8ppi0irl2miq75kilw4lh8yfgjq96id0ds3hv";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.DotNetAppHost";
+    version = "2.0.5";
+    sha256 = "00bsxdg9c8msjxyffvfi8siqk8v2m7ca8fqy1npv7b2pzg3byjws";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.4.0";
+    sha256 = "0a6ahgi5b148sl5qyfpyw383p3cb4yrkm802k29fsi4mxkiwir29";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.3.0";
+    sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileSystemGlobbing";
+    version = "2.0.0";
+    sha256 = "02lzy6r14ghwfwm384xajq08vv3pl3ww0mi5isrr10vivhijhgg4";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.FileProviders.Abstractions";
+    version = "2.0.0";
+    sha256 = "0d6y5isjy6jpf4w3f3w89cwh9p40glzhwvm7cwhx05wkqd8bk9w4";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "2.0.1";
+    sha256 = "1j2hmnivgb4plni2dd205kafzg6mkg7r4knrd3s7mg75wn2l25np";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.DotNetHostPolicy";
+    version = "2.0.5";
+    sha256 = "0v5csskiwpk8kz8wclqad8kcjmxr7ik4w99wl05740qvaag3qysk";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.3.0";
+    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "2.0.1";
+    sha256 = "0d44wjxphs1ck838v7dapm0ag0b91zpiy33cr5vflsrwrqgj51dk";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.3.0";
+    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Specialized";
+    version = "4.3.0";
+    sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel";
+    version = "4.3.0";
+    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+  })
+  (fetchNuGet {
+    name = "System.Collections.NonGeneric";
+    version = "4.3.0";
+    sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.Primitives";
+    version = "4.3.0";
+    sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "1.6.0";
+    sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build.Framework";
+    version = "15.3.409";
+    sha256 = "1dhanwb9ihbfay85xj7cwn0byzmmdz94hqfi3q6r1ncwdjd8y1s2";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build.Tasks.Core";
+    version = "15.3.409";
+    sha256 = "135swyygp7cz2civwsz6a7dj7h8bzp7yrybmgxjanxwrw66hm933";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.CodePages";
+    version = "4.0.1";
+    sha256 = "00wpm3b9y0k996rm9whxprngm8l500ajmzgy2ip9pgwk0icp06y3";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build.Utilities.Core";
+    version = "15.3.409";
+    sha256 = "1p8a0l9sxmjj86qha748qjw2s2n07q8mn41mj5r6apjnwl27ywnf";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build";
+    version = "15.3.409";
+    sha256 = "0vzq6csp2yys9s96c7i37bjml439rdi47g8f5rzqdr7xf5a1jk81";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Formatters";
+    version = "4.3.0";
+    sha256 = "114j35n8gcvn3sqv9ar36r1jjq0y1yws9r0yk8i6wm4aq7n9rs0m";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Primitives";
+    version = "4.3.0";
+    sha256 = "01vv2p8h4hsz217xxs0rixvb7f2xzbh6wv1gzbfykcbfrza6dvnf";
+  })
+  (fetchNuGet {
+    name = "System.ObjectModel";
+    version = "4.3.0";
+    sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.3.0";
+    sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Extensions";
+    version = "4.3.0";
+    sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.3.0";
+    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.Extensions";
+    version = "4.3.0";
+    sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XmlDocument";
+    version = "4.3.0";
+    sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.ILGeneration";
+    version = "4.3.0";
+    sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Numerics";
+    version = "4.3.0";
+    sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.3.0";
+    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.TypeExtensions";
+    version = "4.3.0";
+    sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.3.0";
+    sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.3.0";
+    sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.3.0";
+    sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tools";
+    version = "4.3.0";
+    sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.1.0";
+    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
+    version = "4.3.0";
+    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.1.0";
+    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.3.0";
+    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Dataflow";
+    version = "4.6.0";
+    sha256 = "0a1davr71wssyn4z1hr75lk82wqa0daz0vfwkmg1fm3kckfd72k1";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XDocument";
+    version = "4.3.0";
+    sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
+  })
+  (fetchNuGet {
+    name = "System.IO.Pipes";
+    version = "4.0.0";
+    sha256 = "0fxfvcf55s9q8zsykwh8dkq2xb5jcqnml2ycq8srfry2l07h18za";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.FileVersionInfo";
+    version = "4.0.0";
+    sha256 = "1s5vxhy7i09bmw51kxqaiz9zaj9am8wsjyz13j85sp23z267hbv3";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.3.0";
+    sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Contracts";
+    version = "4.0.1";
+    sha256 = "0y6dkd9n5k98vzhc3w14r2pbhf10qjn2axpghpmfr6rlxx9qrb9j";
+  })
+  (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.3.0";
+    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
+  })
+  (fetchNuGet {
+    name = "System.Dynamic.Runtime";
+    version = "4.3.0";
+    sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Loader";
+    version = "4.0.0";
+    sha256 = "0lpfi3psqcp6zxsjk2qyahal7zaawviimc8lhrlswhip2mx7ykl0";
+  })
+  (fetchNuGet {
+    name = "System.Threading.ThreadPool";
+    version = "4.0.10";
+    sha256 = "0fdr61yjcxh5imvyf93n2m3n5g9pp54bnw2l1d2rdl9z6dd31ypx";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Xml";
+    version = "4.1.1";
+    sha256 = "11747an5gbz821pwahaim3v82gghshnj9b5c4cw539xg5a3gq7rk";
+  })
+  (fetchNuGet {
+    name = "System.Text.RegularExpressions";
+    version = "4.3.0";
+    sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Immutable";
+    version = "1.2.0";
+    sha256 = "1jm4pc666yiy7af1mcf7766v710gp0h40p228ghj6bavx7xfa38m";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.3.0";
+    sha256 = "0gw297dgkh0al1zxvgvncqs0j15lsna9l1wpqas4rflmys440xvb";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.TypeConverter";
+    version = "4.3.0";
+    sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Metadata";
+    version = "1.3.0";
+    sha256 = "1y5m6kryhjpqqm2g3h3b6bzig13wkiw954x3b7icqjm6xypm1x3b";
+  })
+  (fetchNuGet {
+    name = "System.Xml.ReaderWriter";
+    version = "4.3.0";
+    sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Parallel";
+    version = "4.0.1";
+    sha256 = "0i33x9f4h3yq26yvv6xnq4b0v51rl5z8v1bm7vk972h5lvf4apad";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Expressions";
+    version = "4.3.0";
+    sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Process";
+    version = "4.1.0";
+    sha256 = "061lrcs7xribrmq7kab908lww6kn2xn1w3rdc41q189y0jibl19s";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.3.0";
+    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XmlDocument";
+    version = "4.0.1";
+    sha256 = "0ihsnkvyc76r4dcky7v3ansnbyqjzkbyyia0ir5zvqirzan0bnl1";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
+    version = "2.0.0";
+    sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.DotNetHostResolver";
+    version = "2.0.5";
+    sha256 = "1sz2fdp8fdwz21x3lr2m1zhhrbix6iz699fjkwiryqdjl4ygd3hw";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Primitives";
+    version = "4.1.1";
+    sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.0.1";
+    sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
+  })
+  (fetchNuGet {
+    name = "System.AppContext";
+    version = "4.1.0";
+    sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.TraceSource";
+    version = "4.0.0";
+    sha256 = "1mc7r72xznczzf6mz62dm8xhdi14if1h8qgx353xvhz89qyxsa3h";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Calendars";
+    version = "4.0.1";
+    sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XPath";
+    version = "4.0.1";
+    sha256 = "0fjqgb6y66d72d5n8qq1h213d9nv2vi8mpv8p28j3m9rccmsh04m";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tools";
+    version = "4.0.1";
+    sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.Extensions";
+    version = "4.0.11";
+    sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tracing";
+    version = "4.1.0";
+    sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
+  })
+  (fetchNuGet {
+    name = "System.Resources.Writer";
+    version = "4.0.0";
+    sha256 = "07hp218kjdcvpl27djspnixgnacbp9apma61zz3wsca9fx5g3lmv";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.TypeExtensions";
+    version = "4.1.0";
+    sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
+  })
+  (fetchNuGet {
+    name = "System.Collections.NonGeneric";
+    version = "4.0.1";
+    sha256 = "19994r5y5bpdhj7di6w047apvil8lh06lh2c2yv9zc4fc5g9bl4d";
+  })
+  (fetchNuGet {
+    name = "System.Console";
+    version = "4.0.0";
+    sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Primitives";
+    version = "4.0.0";
+    sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Numerics";
+    version = "4.0.1";
+    sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Primitives";
+    version = "4.0.1";
+    sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression.ZipFile";
+    version = "4.0.1";
+    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XPath.XmlDocument";
+    version = "4.0.1";
+    sha256 = "0l7yljgif41iv5g56l3nxy97hzzgck2a7rhnfnljhx9b0ry41bvc";
+  })
+  (fetchNuGet {
+    name = "System.Net.Sockets";
+    version = "4.1.0";
+    sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XDocument";
+    version = "4.0.11";
+    sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Extensions";
+    version = "4.0.1";
+    sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices.RuntimeInformation";
+    version = "4.0.0";
+    sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
+  })
+  (fetchNuGet {
+    name = "System.Resources.Reader";
+    version = "4.0.0";
+    sha256 = "1jafi73dcf1lalrir46manq3iy6xnxk2z7gpdpwg4wqql7dv3ril";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Thread";
+    version = "4.0.0";
+    sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Timer";
+    version = "4.0.1";
+    sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.0.1";
+    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.0.1";
+    sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Encoding";
+    version = "4.0.0";
+    sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.1.0";
+    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Algorithms";
+    version = "4.2.0";
+    sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.0.1";
+    sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.0.1";
+    sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
+  })
+  (fetchNuGet {
+    name = "System.ObjectModel";
+    version = "4.0.12";
+    sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
+  })
+  (fetchNuGet {
+    name = "System.Net.Primitives";
+    version = "4.0.11";
+    sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.0.11";
+    sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Concurrent";
+    version = "4.0.12";
+    sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression";
+    version = "4.1.0";
+    sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.1.0";
+    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+  })
+  (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.1.0";
+    sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
+    version = "4.0.11";
+    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.1.0";
+    sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.0.11";
+    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.0.11";
+    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+  })
+  (fetchNuGet {
+    name = "System.Text.RegularExpressions";
+    version = "4.1.0";
+    sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.X509Certificates";
+    version = "4.1.0";
+    sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh";
+  })
+  (fetchNuGet {
+    name = "System.Xml.ReaderWriter";
+    version = "4.0.11";
+    sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
+  })
+  (fetchNuGet {
+    name = "System.Net.Http";
+    version = "4.1.0";
+    sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.1.0";
+    sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.0.11";
+    sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Expressions";
+    version = "4.1.0";
+    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.1.0";
+    sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
+    version = "3.1.8";
+    sha256 = "140zr3nwkmf6xc52gq4iz6ycyh95fxy0jpgn637pkd9z423z8135";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.App.Runtime.linux-x64";
+    version = "3.1.8";
+    sha256 = "1bv9n9wzsqf9g8h6z10p61xkcx8ad4nnip83qv8yyfvhr4kdmbsa";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.7.0";
+    sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "3.1.0";
+    sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "11.0.1";
+    sha256 = "1z68j07if1xf71lbsrgbia52r812i2dv541sy44ph4dzjjp7pd4m";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Abstractions";
+    version = "1.0.0";
+    sha256 = "1sh9bidmhy32gkz6fkli79mxv06546ybrzppfw5v2aq0bda1ghka";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json.Bson";
+    version = "1.0.2";
+    sha256 = "0c27bhy9x3c2n26inq32kmp6drpm71n6mqnmcr19wrlcaihglj35";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.JsonPatch";
+    version = "3.1.1";
+    sha256 = "0c0aaz9rlh9chc53dnv5jryp0x0415hipaizrmih3kzwd3fmqpml";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "12.0.2";
+    sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal.Windows";
+    version = "4.7.0";
+    sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d";
+  })
+  (fetchNuGet {
+    name = "System.Security.AccessControl";
+    version = "4.7.0";
+    sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz";
+  })
+  (fetchNuGet {
+    name = "NBitcoin";
+    version = "5.0.47";
+    sha256 = "1plri6q83jn80m95np0zxdg3nk2f36z8v42j4sg5wjv8qppp866d";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.Mvc.NewtonsoftJson";
+    version = "3.1.1";
+    sha256 = "1c2lrlp64kkacnjgdyygr6fqdawk10l8j4qgppii6rq61yjwhcig";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Registry";
+    version = "4.7.0";
+    sha256 = "0bx21jjbs7l5ydyw4p6cn07chryxpmchq2nl5pirzz4l3b0q4dgs";
+  })
+  (fetchNuGet {
+    name = "NBitcoin.Secp256k1";
+    version = "1.0.3";
+    sha256 = "08d4db64j1qz8ax9fg8zi6n7g1n53clnkajbbvv2hgaqyfrsnqxj";
+  })
+  (fetchNuGet {
+    name = "Microsoft.OpenApi";
+    version = "1.1.4";
+    sha256 = "1sn79829nhx6chi2qxsza1801di7zdl5fd983m0jakawzbjhjcb3";
+  })
+  (fetchNuGet {
+    name = "Swashbuckle.AspNetCore.SwaggerUI";
+    version = "5.0.0";
+    sha256 = "0d7vjq489rz208j6k3rb7vq6mzxzff3mqg83yk2rqy25vklrsbjd";
+  })
+  (fetchNuGet {
+    name = "Swashbuckle.AspNetCore";
+    version = "5.0.0";
+    sha256 = "0rn2awmzrsrppk97xbbwk4kq1mys9bygb5xhl6mphbk0hchrvh09";
+  })
+  (fetchNuGet {
+    name = "Swashbuckle.AspNetCore.SwaggerGen";
+    version = "5.0.0";
+    sha256 = "00swg2avqnb38q2bsxljd34n8rpknp74h9vbn0fdnfds3a32cqr4";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.ApiDescription.Server";
+    version = "3.0.0";
+    sha256 = "13a47xcqyi5gz85swxd4mgp7ndgl4kknrvv3xwmbn71hsh953hsh";
+  })
+  (fetchNuGet {
+    name = "Swashbuckle.AspNetCore.Swagger";
+    version = "5.0.0";
+    sha256 = "1341nv8nmh6avs3y7w2szzir5qd0bndxwrkdmvvj3hcxj1126w2f";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Private.Uri";
+    version = "4.0.1";
+    sha256 = "0ic5dgc45jkhcr1g9xmmzjm7ffiw4cymm0fprczlx4fnww4783nm";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding";
+    version = "4.0.11";
+    sha256 = "0m4vgmzi1ky8xlj0r7xcyazxln3j9dlialnk6d2gmgrfnzf8f9m7";
+  })
+  (fetchNuGet {
+    name = "System.Private.Uri";
+    version = "4.0.1";
+    sha256 = "0k57qhawjysm4cpbfpc49kl4av7lji310kjcamkl23bwgij5ld9j";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime.Handles";
+    version = "4.0.1";
+    sha256 = "1kswgqhy34qvc49i981fk711s7knd6z13bp0rin8ms6axkh98nas";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection.Primitives";
+    version = "4.0.1";
+    sha256 = "1zxrpvixr5fqzkxpnin6g6gjq6xajy1snghz99ds2dwbhm276rhz";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.IO";
+    version = "4.1.0";
+    sha256 = "0kasfkjiml2kk8prnyn1990nhsahnjggvqwszqjdsfwfl43vpcb5";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime";
+    version = "4.1.0";
+    sha256 = "0mjr2bi7wvnkphfjqgkyf8vfyvy15a829jz6mivl6jmksh2bx40m";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Threading.Tasks";
+    version = "4.0.11";
+    sha256 = "1qzdp09qs8br5qxzlm1lgbjn4n57fk8vr1lzrmli2ysdg6x1xzvk";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Diagnostics.Tracing";
+    version = "4.1.0";
+    sha256 = "041im8hmp1zdgrx6jzyrdch6kshvbddmkar7r2mlm1ksb5c5kwpq";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Runtime.Extensions";
+    version = "4.1.0";
+    sha256 = "0x1cwd7cvifzmn5x1wafvj75zdxlk3mxy860igh3x1wx0s8167y4";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime.InteropServices";
+    version = "4.1.0";
+    sha256 = "0gm8if0hcmp1qys1wmx4970k2x62pqvldgljsyzbjhiy5644vl8z";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection";
+    version = "4.1.0";
+    sha256 = "06kcs059d5czyakx75rvlwa2mr86156w18fs7chd03f7084l7mq6";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Collections";
+    version = "4.0.11";
+    sha256 = "1x44bm1cgv28zmrp095wf9mn8a6a0ivnzp9v14dcbhx06igxzgg0";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Globalization";
+    version = "4.0.11";
+    sha256 = "0240rp66pi5bw1xklmh421hj7arwcdmjmgfkiq1cbc6nrm8ah286";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "1jmgs7hynb2rff48623wnyb37558bbh1q28k9c249j5r5sgsr5kr";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "05ndbai4vpqrry0ghbfgqc8xblmplwjgndxmdn1zklqimczwjg2d";
+  })
+]
diff --git a/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix b/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix
index db3eb37f0ae8..3b4ec1c49c4c 100644
--- a/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix
+++ b/nixpkgs/pkgs/applications/blockchains/wasabiwallet/default.nix
@@ -24,11 +24,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "wasabiwallet";
-  version = "1.1.11.1";
+  version = "1.1.12";
 
   src = fetchurl {
-    url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/WasabiLinux-${version}.tar.gz";
-    sha256 = "04v8f2h67aqvcb5a8vmzbp2sqnq7g4m0v1ng52ccb4ii668ya8hy";
+    url = "https://github.com/zkSNACKs/WalletWasabi/releases/download/v${version}/Wasabi-${version}.tar.gz";
+    sha256 = "0nfd0pwsgrkaxcxfs8wb3i8kslfcqnc91iahw3rmlcxdzb81kjs4";
   };
 
   dontBuild = true;
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
     desktopName = "Wasabi";
     genericName = "Bitcoin wallet";
     comment = meta.description;
-    categories = "Application;Network;Utility;";
+    categories = "Network;Utility;";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/blockchains/whirlpool-gui/default.nix b/nixpkgs/pkgs/applications/blockchains/whirlpool-gui/default.nix
new file mode 100644
index 000000000000..9a660bb8bffb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/blockchains/whirlpool-gui/default.nix
@@ -0,0 +1,104 @@
+{ stdenv, fetchFromGitHub, callPackage, makeWrapper, makeDesktopItem
+, nodejs, yarn, electron_7, jre8, tor }:
+
+let
+  system = stdenv.hostPlatform.system;
+  electron = electron_7;
+
+in stdenv.mkDerivation rec {
+  pname = "whirlpool-gui";
+  version = "0.10.1";
+
+  src = fetchFromGitHub {
+    owner = "Samourai-Wallet";
+    repo = pname;
+    rev = version;
+    sha256 = "ru6WJQRulhnQCPY2E0x9M6xXtFdj/pg2fu4HpQxhImU=";
+  };
+
+  yarnCache = stdenv.mkDerivation {
+    name = "${pname}-${version}-${system}-yarn-cache";
+    inherit src;
+    phases = [ "unpackPhase" "buildPhase" ];
+    nativeBuildInputs = [ yarn ];
+    buildPhase = ''
+      export HOME=$NIX_BUILD_ROOT
+
+      yarn config set yarn-offline-mirror $out
+      yarn --frozen-lockfile --ignore-scripts --ignore-platform \
+        --ignore-engines --no-progress --non-interactive
+    '';
+
+    outputHashMode = "recursive";
+    outputHashAlgo = "sha256";
+    outputHash = {
+      x86_64-linux = "6fl4cSwHXWgQcYlqxCae0p1Ppcb9fI5fFrxm7y6wxTo=";
+    }.${system} or (throw "Unsupported platform ${system}");
+  };
+
+  nativeBuildInputs = [ makeWrapper nodejs yarn ];
+
+  configurePhase = ''
+    # Yarn and bundler wants a real home directory to write cache, config, etc to
+    export HOME=$NIX_BUILD_ROOT
+
+    # Make yarn install packages from our offline cache, not the registry
+    yarn config --offline set yarn-offline-mirror ${yarnCache}
+  '';
+
+  buildPhase = ''
+    yarn install --offline --ignore-scripts --frozen-lockfile --no-progress --non-interactive
+
+    patchShebangs node_modules/
+
+    yarn build
+  '';
+
+  installPhase = ''
+    mkdir -p $out/{bin,share,libexec/whirlpool-gui/app}
+
+    # install production dependencies
+    yarn install \
+      --offline --frozen-lockfile --ignore-scripts \
+      --no-progress --non-interactive \
+      --production --no-bin-links \
+      --modules-folder $out/libexec/whirlpool-gui/node_modules
+
+    # copy application
+    cp -r app/{dist,app.html,main.prod.js,main.prod.js.map,img} $out/libexec/whirlpool-gui/app
+    cp -r package.json resources $out/libexec/whirlpool-gui
+
+    # make desktop item
+    ln -s "${desktopItem}/share/applications" "$out/share/applications"
+
+    # wrap electron
+    makeWrapper '${electron}/bin/electron' "$out/bin/whirlpool-gui" \
+      --add-flags "$out/libexec/whirlpool-gui" \
+      --prefix PATH : "${jre8}/bin:${tor}/bin"
+  '';
+
+  desktopItem = makeDesktopItem {
+    name = "whirlpool-gui";
+    exec = "whirlpool-gui";
+    icon = "whirlpool-gui";
+    desktopName = "Whirlpool";
+    genericName = "Whirlpool";
+    comment = meta.description;
+    categories = "Network;";
+    extraEntries = ''
+      StartupWMClass=whrilpool-gui
+    '';
+  };
+
+  passthru.prefetchYarnCache = stdenv.lib.overrideDerivation yarnCache (d: {
+    outputHash = stdenv.lib.fakeSha256;
+  });
+
+  meta = with stdenv.lib; {
+    description = "Desktop GUI for Whirlpool by Samourai-Wallet";
+    homepage = https://www.samouraiwallet.com/whirlpool;
+    license = licenses.unlicense;
+    maintainers = [ maintainers.offline ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/blockchains/wownero.nix b/nixpkgs/pkgs/applications/blockchains/wownero.nix
index e0d124918160..8d45e1a96b57 100644
--- a/nixpkgs/pkgs/applications/blockchains/wownero.nix
+++ b/nixpkgs/pkgs/applications/blockchains/wownero.nix
@@ -1,26 +1,26 @@
-{ stdenv, fetchFromGitHub, cmake, boost, miniupnpc_2, openssl, unbound
+{ stdenv, fetchgit, cmake, boost, miniupnpc_2, openssl, unbound
 , readline, libsodium, rapidjson, fetchurl
 }:
 
 with stdenv.lib;
 
 let
-  randomwowVersion = "1.1.6";
+  randomwowVersion = "1.1.7";
   randomwow = fetchurl {
     url = "https://github.com/wownero/RandomWOW/archive/${randomwowVersion}.tar.gz";
-    sha256 = "1c55y2dwrayh6k1avpchs89gq1mvy5c305h92jm2k48kzhw6a792";
+    sha256 = "1xp76zf01hnhnk6rjvqjav9n9pnvxzxlzqa5rc574d1c2qczfy3q";
   };
 in
 
 stdenv.mkDerivation rec {
   pname = "wownero";
-  version = "0.8.0.0";
+  version = "0.8.0.1";
 
-  src = fetchFromGitHub {
-    owner = "wownero";
-    repo = "wownero";
-    rev    = "v${version}";
-    sha256 = "14nggivilgzaqhjd4ng3g2p884yp2hc322hpcpwjdnz2zfc3qq6c";
+  src = fetchgit {
+    url = "https://git.wownero.com/wownero/wownero.git";
+    rev = "v${version}";
+    sha256 = "15443xv6q1nw4627ajk6k4ghhahvh82lb4gyb8nvq753p2v838g3";
+    fetchSubmodules = false;
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix b/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix
index 1a65ebd33577..19ebedf1ea33 100644
--- a/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix
+++ b/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , substituteAll
 , plymouth
 , pam
@@ -127,6 +128,13 @@ stdenv.mkDerivation rec {
     rm -rf $out/etc/apparmor.d $out/etc/init $out/etc/pam.d
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+
   meta = {
     homepage = "https://github.com/CanonicalLtd/lightdm";
     description = "A cross-desktop display manager";
diff --git a/nixpkgs/pkgs/applications/editors/android-studio/common.nix b/nixpkgs/pkgs/applications/editors/android-studio/common.nix
index 1a6904b21768..605d810b3d9c 100644
--- a/nixpkgs/pkgs/applications/editors/android-studio/common.nix
+++ b/nixpkgs/pkgs/applications/editors/android-studio/common.nix
@@ -198,7 +198,12 @@ in runCommand
       # binaries are also distributed as proprietary software (unlike the
       # source-code itself).
       platforms = [ "x86_64-linux" ];
-      maintainers = with maintainers; [ primeos ];
+      maintainers = with maintainers; rec {
+        stable = [ meutraa ];
+        beta = [ meutraa ];
+        canary = [ meutraa ];
+        dev = canary;
+      }."${channel}";
     };
   }
   ''
diff --git a/nixpkgs/pkgs/applications/editors/android-studio/default.nix b/nixpkgs/pkgs/applications/editors/android-studio/default.nix
index a64b361f8a77..648b45631e10 100644
--- a/nixpkgs/pkgs/applications/editors/android-studio/default.nix
+++ b/nixpkgs/pkgs/applications/editors/android-studio/default.nix
@@ -1,4 +1,4 @@
-{ callPackage, makeFontsConf, gnome2 }:
+{ callPackage, makeFontsConf, gnome2, buildFHSUserEnv }:
 
 let
   mkStudio = opts: callPackage (import ./common.nix opts) {
@@ -6,21 +6,22 @@ let
       fontDirectories = [];
     };
     inherit (gnome2) GConf gnome_vfs;
+    inherit buildFHSUserEnv;
   };
   stableVersion = {
-    version = "4.0.0.16"; # "Android Studio 4.0"
-    build = "193.6514223";
-    sha256Hash = "1sqj64vddwfrr9821habfz7dms9csvbp7b8gf1d027188b2lvh3h";
+    version = "4.0.1.0"; # "Android Studio 4.0.1"
+    build = "193.6626763";
+    sha256Hash = "15vm7fvi8c286wx9f28z6ysvm8wqqda759qql0zy9simwx22gy7j";
   };
   betaVersion = {
-    version = "4.0.0.16"; # "Android Studio 4.0"
-    build = "193.6514223";
-    sha256Hash = "1sqj64vddwfrr9821habfz7dms9csvbp7b8gf1d027188b2lvh3h";
+    version = "4.1.0.18"; # "Android Studio 4.1 RC 3"
+    build = "201.6823847";
+    sha256Hash = "sha256-qbxmR9g8DSKzcP09bJuc+am79BSXWG39UQxFEb1bZ88=";
   };
   latestVersion = { # canary & dev
-    version = "4.1.0.10"; # "Android Studio 4.1 Canary 10"
-    build = "201.6507185";
-    sha256Hash = "19yawwsjsdqc0brr0ahviljv4v4p085k3izdpmm915c0bjm89y72";
+    version = "4.2.0.12"; # "Android Studio 4.2 Canary 12"
+    build = "202.6847140";
+    sha256Hash = "sha256-lt2069uAJdVlKg3fC2NmFFPoMmG5cAUnH9V4WRAawxk=";
   };
 in {
   # Attributes are named by their corresponding release channels
diff --git a/nixpkgs/pkgs/applications/editors/atom/default.nix b/nixpkgs/pkgs/applications/editors/atom/default.nix
index dec3c7955011..5f26fa23bc2e 100644
--- a/nixpkgs/pkgs/applications/editors/atom/default.nix
+++ b/nixpkgs/pkgs/applications/editors/atom/default.nix
@@ -35,23 +35,30 @@ let
       gtk3  # Fix error: GLib-GIO-ERROR **: Settings schema 'org.gtk.Settings.FileChooser' is not installed
     ];
 
+    dontBuild = true;
+    dontConfigure = true;
+
+    unpackPhase = ''
+      ar p $src data.tar.xz | tar xJ ./usr/
+    '';
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p $out
+      mv usr/bin usr/share $out
+      rm -rf $out/share/lintian
+
+      runHook postInstall
+    '';
+
     preFixup = ''
       gappsWrapperArgs+=(
-        --prefix "PATH" : "${gvfs}/bin" \
+        --prefix "PATH" : "${gvfs}/bin"
       )
     '';
 
-    buildCommand = ''
-      mkdir -p $out/usr/
-      ar p $src data.tar.xz | tar -C $out -xJ ./usr
-      sed -i -e "s|Exec=.*$|Exec=$out/bin/${pname}|" $out/usr/share/applications/${pname}.desktop
-      mv $out/usr/* $out/
-      rm -r $out/share/lintian
-      rm -r $out/usr/
-      sed -i "s/${pname})/.${pname}-wrapped)/" $out/bin/${pname}
-
-      fixupPhase
-
+    postFixup = ''
       share=$out/share/${pname}
 
       patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
@@ -70,6 +77,8 @@ let
       ln -s ${pkgs.git}/bin/git $dugite/git/libexec/git-core/git
 
       find $share -name "*.node" -exec patchelf --set-rpath "${atomEnv.libPath}:$share" {} \;
+
+      sed -i -e "s|Exec=.*$|Exec=$out/bin/${pname}|" $out/share/applications/${pname}.desktop
     '';
 
     meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/editors/bluej/default.nix b/nixpkgs/pkgs/applications/editors/bluej/default.nix
new file mode 100644
index 000000000000..25caf4b7ac7f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/bluej/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, makeWrapper, jdk }:
+
+stdenv.mkDerivation rec {
+  pname = "bluej";
+  version = "4.2.2";
+  src = fetchurl {
+    # We use the deb here. First instinct might be to go for the "generic" JAR
+    # download, but that is actually a graphical installer that is much harder
+    # to unpack than the deb.
+    url = "https://www.bluej.org/download/files/BlueJ-linux-${builtins.replaceStrings ["."] [""] version}.deb";
+    sha256 = "5c2241f2208e98fcf9aad7c7a282bcf16e6fd543faa5fdb0b99b34d1023113c3";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  unpackPhase = ''
+    ar xf $src
+    tar xf data.tar.xz
+  '';
+
+  installPhase = ''
+    mkdir -p $out
+    cp -r usr/* $out
+
+    makeWrapper ${jdk}/bin/java $out/bin/bluej \
+      --add-flags "-Djavafx.embed.singleThread=true -Dawt.useSystemAAFontSettings=on -Xmx512M -cp \"$out/share/bluej/bluej.jar\" bluej.Boot"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A simple integrated development environment for Java";
+    homepage = "https://www.bluej.org/";
+    license = licenses.gpl2ClasspathPlus;
+    maintainers = [ maintainers.charvp ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/brackets/default.nix b/nixpkgs/pkgs/applications/editors/brackets/default.nix
index 3e01bcdb0f9d..9d5978e605ae 100644
--- a/nixpkgs/pkgs/applications/editors/brackets/default.nix
+++ b/nixpkgs/pkgs/applications/editors/brackets/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, gtk2, glib, gdk-pixbuf, alsaLib, nss, nspr, gconf
+{ stdenv, lib, fetchurl, gtk2, glib, gdk-pixbuf, alsaLib, nss, nspr, gconf
 , cups, libgcrypt_1_5, systemd, dbus, libXdamage, expat }:
 with stdenv.lib;
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     rmdir $out/usr
     ln -sf $out/opt/brackets/brackets $out/bin/brackets
 
-    ln -s ${systemd.lib}/lib/libudev.so.1 $out/opt/brackets/lib/libudev.so.0
+    ln -s ${lib.getLib systemd}/lib/libudev.so.1 $out/opt/brackets/lib/libudev.so.0
 
     substituteInPlace $out/opt/brackets/brackets.desktop \
       --replace "Exec=/opt/brackets/brackets" "Exec=brackets"
diff --git a/nixpkgs/pkgs/applications/editors/code-browser/default.nix b/nixpkgs/pkgs/applications/editors/code-browser/default.nix
new file mode 100644
index 000000000000..11476cae702e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/code-browser/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, fetchurl
+, copper
+, ruby
+, python3
+, qtbase
+, gtk3
+, pkg-config
+, withQt ? false
+, withGtk ? false, wrapQtAppsHook ? null
+}:
+stdenv.mkDerivation rec {
+  pname = "code-browser";
+  version = "7.1.20";
+  src = fetchurl {
+    url = "https://tibleiz.net/download/code-browser-${version}-src.tar.gz";
+    sha256 = "1svi0v3h42h2lrb8c7pjvqc8019v1p20ibsnl48pfhl8d96mmdnz";
+  };
+  postPatch = ''
+    substituteInPlace Makefile --replace "LFLAGS=-no-pie" "LFLAGS=-no-pie -L."
+    substituteInPlace libs/copper-ui/Makefile --replace "moc -o" "${qtbase.dev}/bin/moc -o"
+    patchShebangs .
+  '';
+  nativeBuildInputs = [ copper
+                        python3
+                        ruby
+                        qtbase
+                        gtk3
+                        pkg-config
+                      ]
+  ++ stdenv.lib.optionals withQt [ wrapQtAppsHook ];
+  buildInputs = stdenv.lib.optionals withQt [ qtbase ]
+                ++ stdenv.lib.optionals withGtk [ gtk3 ];
+  makeFlags = [
+    "prefix=$(out)"
+    "COPPER=${copper}/bin/copper-elf64"
+    "with-local-libs"
+    "QINC=${qtbase.dev}/include"
+  ]
+  ++ stdenv.lib.optionals withQt [ "UI=qt" ]
+  ++ stdenv.lib.optionals withGtk [ "UI=gtk" ];
+  meta = with stdenv.lib; {
+    description = "Folding text editor, designed to hierarchically structure any kind of text file and especially source code.";
+    homepage = "https://tibleiz.net/code-browser/";
+    license = licenses.gpl2;
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/cudatext/default.nix b/nixpkgs/pkgs/applications/editors/cudatext/default.nix
new file mode 100644
index 000000000000..a1af859af819
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/cudatext/default.nix
@@ -0,0 +1,113 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, lazarus
+, fpc
+, libX11
+
+# GTK2/3
+, pango
+, cairo
+, glib
+, atk
+, gtk2
+, gtk3
+, gdk-pixbuf
+, python3
+
+# Qt5
+, libqt5pas
+, qt5
+
+, widgetset ? "qt5"
+# See https://github.com/Alexey-T/CudaText-lexers
+, additionalLexers ? [ "Nix" ]
+}:
+
+assert builtins.elem widgetset [ "gtk2" "gtk3" "qt5" ];
+
+let
+  deps = lib.mapAttrs
+    (name: spec:
+      fetchFromGitHub {
+        owner = "Alexey-T";
+        repo = name;
+        inherit (spec) rev sha256;
+      }
+    )
+    (builtins.fromJSON (builtins.readFile ./deps.json));
+in
+stdenv.mkDerivation rec {
+  pname = "cudatext";
+  version = "1.111.0";
+
+  src = fetchFromGitHub {
+    owner = "Alexey-T";
+    repo = "CudaText";
+    rev = version;
+    sha256 = "1ai0g8fmw4m237dqh5dkr8w9qqricyvp49ijz2ivvmg9dsdfzjfp";
+  };
+
+  patches = [
+    # Don't check for update
+    ./dont-check-update.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace app/proc_globdata.pas \
+      --replace "/usr/share/cudatext" "$out/share/cudatext" \
+      --replace "libpython3.so" "${python3}/lib/libpython3.so"
+  '';
+
+  nativeBuildInputs = [ lazarus fpc ]
+    ++ lib.optional (widgetset == "qt5") qt5.wrapQtAppsHook;
+
+  buildInputs = [ libX11 ]
+    ++ lib.optionals (lib.hasPrefix "gtk" widgetset) [ pango cairo glib atk gdk-pixbuf ]
+    ++ lib.optional (widgetset == "gtk2") gtk2
+    ++ lib.optional (widgetset == "gtk3") gtk3
+    ++ lib.optional (widgetset == "qt5") libqt5pas;
+
+  NIX_LDFLAGS = "--as-needed -rpath ${lib.makeLibraryPath buildInputs}";
+
+  buildPhase = lib.concatStringsSep "\n" (lib.mapAttrsToList (name: dep: ''
+    cp -r --no-preserve=mode ${dep} ${name}
+  '') deps) + ''
+    lazbuild --lazarusdir=${lazarus}/share/lazarus --pcp=./lazarus --ws=${widgetset} \
+      EncConv/encconv/encconv_package.lpk \
+      ATBinHex-Lazarus/atbinhex/atbinhex_package.lpk \
+      ATFlatControls/atflatcontrols/atflatcontrols_package.lpk \
+      ATSynEdit/atsynedit/atsynedit_package.lpk \
+      ATSynEdit_Cmp/atsynedit_cmp/atsynedit_cmp_package.lpk \
+      EControl/econtrol/econtrol_package.lpk \
+      ATSynEdit_Ex/atsynedit_ex/atsynedit_ex_package.lpk \
+      Python-for-Lazarus/python4lazarus/python4lazarus_package.lpk \
+      Emmet-Pascal/emmet/emmet_package.lpk \
+      app/cudatext.lpi
+  '';
+
+  installPhase = ''
+    install -Dm755 app/cudatext $out/bin/cudatext
+
+    install -dm755 $out/share/cudatext
+    cp -r app/{data,py,settings_default} $out/share/cudatext
+
+    install -Dm644 setup/debfiles/cudatext-512.png -t $out/share/pixmaps
+    install -Dm644 setup/debfiles/cudatext.desktop -t $out/share/applications
+  '' + lib.concatMapStringsSep "\n" (lexer: ''
+    install -Dm644 CudaText-lexers/${lexer}/*.{cuda-lexmap,lcf} $out/share/cudatext/data/lexlib
+  '') additionalLexers;
+
+  meta = with lib; {
+    description = "Cross-platform code editor";
+    longDescription = ''
+      Text/code editor with lite UI. Syntax highlighting for 200+ languages.
+      Config system in JSON files. Multi-carets and multi-selections.
+      Search and replace with RegEx. Extendable by Python plugins and themes.
+    '';
+    homepage = "http://www.uvviewsoft.com/cudatext/";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ sikmir ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/cudatext/deps.json b/nixpkgs/pkgs/applications/editors/cudatext/deps.json
new file mode 100644
index 000000000000..9c3270bb28a2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/cudatext/deps.json
@@ -0,0 +1,42 @@
+{
+  "EncConv": {
+    "rev": "2020.06.15",
+    "sha256": "07dpvq3ppfq3b70i1smkf7vwdlzq8qnxs3fk94hi9h1z36bz2rw3"
+  },
+  "ATBinHex-Lazarus": {
+    "rev": "2020.09.05",
+    "sha256": "022yx5vic4hnc9lz53wvr4h7hf0h71801dzlilj55x5mf8p59072"
+  },
+  "ATFlatControls": {
+    "rev": "2020.08.23",
+    "sha256": "1axzwiz5h62v11ncynxcg431dfbky9pwyha7cd6kpizjdjagfklw"
+  },
+  "ATSynEdit": {
+    "rev": "2020.09.05",
+    "sha256": "0qn0fp7rbi48f3nrysb0knkd7a3a6pl5w72yf95g5iibal4zrib2"
+  },
+  "ATSynEdit_Cmp": {
+    "rev": "2020.09.05",
+    "sha256": "1bd25zc97001b7lg0bvi8va9mazkr6jih6d2ddkabcxcnsj0dxnq"
+  },
+  "EControl": {
+    "rev": "2020.09.05",
+    "sha256": "1n7s1zkhrr216gqdqvq6wq0n3jq7s78mwpi5s5j8054p0fak1ywi"
+  },
+  "ATSynEdit_Ex": {
+    "rev": "2020.09.05",
+    "sha256": "17y2cx5syj3jvrszjgdyf1p6vilp2qgaggz4y8yqnz99cvd0shs7"
+  },
+  "Python-for-Lazarus": {
+    "rev": "2020.07.31",
+    "sha256": "0qbs51h6gw8qd3h06kwy1j7db35shbg7r2rayrhvvw0vzr9n330j"
+  },
+  "Emmet-Pascal": {
+    "rev": "2020.09.05",
+    "sha256": "0qfiirxnk5g3whx8y8hp54ch3h6gkkd01yf79m95bwar5qvdfybg"
+  },
+  "CudaText-lexers": {
+    "rev": "2020.08.10",
+    "sha256": "1gzs2psyfhb9si1qyacxzfjb3dz2v255hv7y4jlkbxdxv0kckqr6"
+  }
+}
diff --git a/nixpkgs/pkgs/applications/editors/cudatext/dont-check-update.patch b/nixpkgs/pkgs/applications/editors/cudatext/dont-check-update.patch
new file mode 100644
index 000000000000..44912160b268
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/cudatext/dont-check-update.patch
@@ -0,0 +1,12 @@
+diff --git i/app/formmain.pas w/app/formmain.pas
+index 8c1131680..6c6c0043f 100644
+--- i/app/formmain.pas
++++ w/app/formmain.pas
+@@ -2135,6 +2135,7 @@ begin
+     false
+     {$endif};
+     *)
++  mnuHelpCheckUpd.Enabled:=false;
+ 
+   with AppPanels[cPaneSide] do
+   begin
diff --git a/nixpkgs/pkgs/applications/editors/eclipse/build-eclipse.nix b/nixpkgs/pkgs/applications/editors/eclipse/build-eclipse.nix
index 8b6a0c164e90..218fbe8fc1fc 100644
--- a/nixpkgs/pkgs/applications/editors/eclipse/build-eclipse.nix
+++ b/nixpkgs/pkgs/applications/editors/eclipse/build-eclipse.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     comment = "Integrated Development Environment";
     desktopName = "Eclipse IDE";
     genericName = "Integrated Development Environment";
-    categories = "Application;Development;";
+    categories = "Development;";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/editors/eclipse/default.nix b/nixpkgs/pkgs/applications/editors/eclipse/default.nix
index 66bdfb15c69b..87ac29b58e94 100644
--- a/nixpkgs/pkgs/applications/editors/eclipse/default.nix
+++ b/nixpkgs/pkgs/applications/editors/eclipse/default.nix
@@ -8,15 +8,15 @@
 
 assert stdenv ? glibc;
 
-# http://download.eclipse.org/eclipse/downloads/ is the main place to
+# https://download.eclipse.org/eclipse/downloads/ is the main place to
 # find the downloads needed for new versions
 
 let
   platform_major = "4";
-  platform_minor = "15";
+  platform_minor = "16";
   year = "2020";
-  month = "03";
-  timestamp = "${year}${month}050155";
+  month = "06";
+  timestamp = "${year}${month}040540";
   gtk = gtk3;
 in rec {
 
@@ -33,8 +33,8 @@ in rec {
     description = "Eclipse IDE for C/C++ Developers";
     src =
       fetchurl {
-        url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-cpp-${year}-${month}-R-incubation-linux-gtk-x86_64.tar.gz";
-        sha512 = "2wy4a3p347fajr9zsfz1zlvz6jpy3vficdry27m5fs0azfmxmy2cfns5hh18sin4xqq3jvqppfqxh41rzcpcmiq12zhc6cz42brqgxw";
+        url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-cpp-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
+        sha512 = "0vfxzsvfv9zmd0ckrdpziijzskh13g8kgk8ibkwmhmqmj14a3visk6yvn5q2s0knkswl1zy9arinw0mxvqh72dfj63vwc01vhp06lyr";
       };
   };
 
@@ -46,7 +46,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-modeling-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "0qccsclay9000sqrymm8hkg70a4jcvd70vymw1kkxsklcs7dnrhch55an98gbzf9r0jgd1ap62a4hyxlnm6hdqqniwcgdza0i4nwwgj";
+        sha512 = "29nr1x3fgdw5ygrppfma6yi1iaqvad24jyb58sag735z1nz4ymajcwakg52mlv3s19d4w8cxpskh1r459mwz7j769qplymspqifvlkd";
       };
   };
 
@@ -58,7 +58,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-platform-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz";
-        sha512 = "01rv5x7qqm0a2p30828z2snms3nb2kjx9si63sr5rdkdgr3vbh6xq8n8fn757dqazmpz9zskmwxxmbxnwycfllhgb8msb77pcy3fpg7";
+        sha512 = "2pm4xam0jn9x34k1hr5rn67fpvc6snlkpcfn4bzdcf2xjv9f3dr2039mkcrhri5nv2bj6fkbai6aga6fmmrb3na33b7ir7sqlqqn61b";
       };
   };
 
@@ -83,7 +83,7 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops${platform_major}/R-${platform_major}.${platform_minor}-${timestamp}/eclipse-SDK-${platform_major}.${platform_minor}-linux-gtk-x86_64.tar.gz";
-        sha512 = "33ra8qslwz73240xzjvr751lpl94drlcf425a7kxngq1qla2cda7gxr71bxlr9fm2hrqq0h097ihmg0ix9hv2dmwnc76gp4hwwrlk41";
+        sha512 = "195c07yabmi2a42qxfmpbv6ychpj15bbpgyp40s1pcdb3p875vcqjinq9dqy2sixzwjhfdrggpvwihav87rkih9arzmk2s4cm31mjqd";
       };
   };
 
@@ -95,7 +95,19 @@ in rec {
     src =
       fetchurl {
         url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-java-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
-        sha512 = "0ffa1q19z31j8i552mp9zg4v0p4iv002cvlzh49ia8hi0hgk75pbkp6vxlr75jz0as03n71f0ww8xbflji31qgwfmy6rs1rzqihfff9";
+        sha512 = "3n8jllgxarrxgz16n7zb4bgaqxk0m9frcxrgdxvy25ar2iw8js4q4ir3cc20y4ri3ii74rf3jy6n4ndhm57miwqh4p2wqzhfjlinirb";
+      };
+  };
+
+  ### Eclipse Committers
+
+  eclipse-committers = buildEclipse {
+    name = "eclipse-committers-${platform_major}.${platform_minor}";
+    description = "Eclipse IDE for Eclipse Committers and Eclipse Platform Plugin Developers";
+    src =
+      fetchurl {
+        url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/technology/epp/downloads/release/${year}-${month}/R/eclipse-committers-${year}-${month}-R-linux-gtk-x86_64.tar.gz";
+        sha512 = "1l0gc7srpvn3r0yrbrp1pjv1a3n1y7q5fqww5fmzyw1d6j3hjkqj74c9bff16579cpf7z6d4wmj6kr7z89p0ignrx319gc8p0hivi1y";
       };
   };
 
diff --git a/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix b/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix
index fab7317868a9..4edb7a7ebc4f 100644
--- a/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix
+++ b/nixpkgs/pkgs/applications/editors/eclipse/plugins.nix
@@ -254,12 +254,13 @@ rec {
 
   cdt = buildEclipseUpdateSite rec {
     name = "cdt-${version}";
-    version = "9.11.0";
+    # find current version at https://www.eclipse.org/cdt/downloads.php
+    version = "9.11.1";
 
     src = fetchzip {
       stripRoot = false;
       url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/tools/cdt/releases/9.11/${name}/${name}.zip";
-      sha256 = "1730w6rbv649nzfalfd10p2ph0z9rbrrcflga0n1dpmg181xh9lk";
+      sha256 = "00cpaal6jm9xb4nbkljrf381r3lf1rb1p06vrbn4l0lxnbckb9df";
     };
 
     meta = with stdenv.lib; {
@@ -474,12 +475,12 @@ rec {
 
   jdt = buildEclipseUpdateSite rec {
     name = "jdt-${version}";
-    version = "4.15";
+    version = "4.16";
 
     src = fetchzip {
       stripRoot = false;
-      url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-${version}-202003050155/org.eclipse.jdt-${version}.zip";
-      sha256 = "1dm4qgfb6rm7w0dk8br071c7wy0ybp7zrwvr3i02c2bxzy2psz7q";
+      url = "https://www.eclipse.org/downloads/download.php?r=1&nf=1&file=/eclipse/downloads/drops4/R-${version}-202006040540/org.eclipse.jdt-${version}.zip";
+      sha256 = "0g349hg2nv1y628daxf84396wpf33z52wxv0gawlgrirbbizaznd";
     };
 
     meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/editors/emacs/26.nix b/nixpkgs/pkgs/applications/editors/emacs/26.nix
new file mode 100644
index 000000000000..a151006a995d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/26.nix
@@ -0,0 +1,8 @@
+import ./generic.nix (rec {
+  version = "26.3";
+  sha256 = "119ldpk7sgn9jlpyngv5y4z3i7bb8q3xp4p0qqi7i5nq39syd42d";
+  patches = [
+    ./clean-env-26.patch
+    ./tramp-detect-wrapped-gvfsd-26.patch
+  ];
+})
diff --git a/nixpkgs/pkgs/applications/editors/emacs/27.nix b/nixpkgs/pkgs/applications/editors/emacs/27.nix
new file mode 100644
index 000000000000..1037c0cd91dc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/27.nix
@@ -0,0 +1,8 @@
+import ./generic.nix (rec {
+  version = "27.1";
+  sha256 = "0h9f2wpmp6rb5rfwvqwv1ia1nw86h74p7hnz3vb3gjazj67i4k2a";
+  patches = [
+    ./clean-env.patch
+    ./tramp-detect-wrapped-gvfsd.patch
+  ];
+})
diff --git a/nixpkgs/pkgs/applications/editors/emacs/clean-env-26.patch b/nixpkgs/pkgs/applications/editors/emacs/clean-env-26.patch
new file mode 100644
index 000000000000..88befda899a7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/clean-env-26.patch
@@ -0,0 +1,15 @@
+Dump temacs in an empty environment to prevent -dev paths from ending
+up in the dumped image.
+
+diff --git a/src/Makefile.in b/src/Makefile.in
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -535,7 +535,7 @@ ifeq ($(CANNOT_DUMP),yes)
+ 	ln -f temacs$(EXEEXT) $@
+ else
+ 	unset EMACS_HEAP_EXEC; \
+-	LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup dump
++	env -i LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup dump
+   ifneq ($(PAXCTL_dumped),)
+ 	$(PAXCTL_dumped) $@
+   endif
diff --git a/nixpkgs/pkgs/applications/editors/emacs/clean-env.patch b/nixpkgs/pkgs/applications/editors/emacs/clean-env.patch
index 88befda899a7..2ffe8b777a00 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/clean-env.patch
+++ b/nixpkgs/pkgs/applications/editors/emacs/clean-env.patch
@@ -2,14 +2,15 @@ Dump temacs in an empty environment to prevent -dev paths from ending
 up in the dumped image.
 
 diff --git a/src/Makefile.in b/src/Makefile.in
+index fd05a45df5..13f529c253 100644
 --- a/src/Makefile.in
 +++ b/src/Makefile.in
-@@ -535,7 +535,7 @@ ifeq ($(CANNOT_DUMP),yes)
- 	ln -f temacs$(EXEEXT) $@
- else
- 	unset EMACS_HEAP_EXEC; \
--	LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup dump
-+	env -i LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup dump
+@@ -570,7 +570,7 @@ emacs$(EXEEXT): temacs$(EXEEXT) \
+                 lisp.mk $(etc)/DOC $(lisp) \
+                 $(lispsource)/international/charprop.el ${charsets}
+ ifeq ($(DUMPING),unexec)
+-	LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup --temacs=dump
++	env -i LC_ALL=C $(RUN_TEMACS) -batch $(BUILD_DETAILS) -l loadup --temacs=dump
    ifneq ($(PAXCTL_dumped),)
- 	$(PAXCTL_dumped) $@
+ 	      $(PAXCTL_dumped) emacs$(EXEEXT)
    endif
diff --git a/nixpkgs/pkgs/applications/editors/emacs/default.nix b/nixpkgs/pkgs/applications/editors/emacs/generic.nix
index 570dc28c684f..f2904f3e012b 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/default.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/generic.nix
@@ -1,7 +1,17 @@
+{
+  version
+  , sha256
+  , versionModifier ? ""
+  , pname ? "emacs"
+  , name ? "emacs-${version}${versionModifier}"
+  , patches ? [ ]
+}:
 { stdenv, lib, fetchurl, fetchpatch, ncurses, xlibsWrapper, libXaw, libXpm
 , Xaw3d, libXcursor,  pkgconfig, gettext, libXft, dbus, libpng, libjpeg, libungif
 , libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux
 , alsaLib, cairo, acl, gpm, AppKit, GSS, ImageIO, m17n_lib, libotf
+, jansson, harfbuzz
+, libgccjit, targetPlatform, makeWrapper # native-comp params
 , systemd ? null
 , withX ? !stdenv.isDarwin
 , withNS ? stdenv.isDarwin
@@ -9,8 +19,9 @@
 , withGTK3 ? true, gtk3-x11 ? null, gsettings-desktop-schemas ? null
 , withXwidgets ? false, webkitgtk ? null, wrapGAppsHook ? null, glib-networking ? null
 , withCsrc ? true
-, srcRepo ? false, autoconf ? null, automake ? null, texinfo ? null
+, srcRepo ? false, autoreconfHook ? null, texinfo ? null
 , siteStart ? ./site-start.el
+, nativeComp ? false
 , toolkit ? (
   if withGTK2 then "gtk2"
   else if withGTK3 then "gtk3"
@@ -28,51 +39,76 @@ assert withGTK3 -> !withGTK2 && gtk3-x11 != null;
 assert withXwidgets -> withGTK3 && webkitgtk != null;
 
 
-stdenv.mkDerivation rec {
-  name = "emacs-${version}${versionModifier}";
-  version = "26.3";
-  versionModifier = "";
+let
+
+in stdenv.mkDerivation {
+  inherit pname version patches;
 
   src = fetchurl {
     url = "mirror://gnu/emacs/${name}.tar.xz";
-    sha256 = "119ldpk7sgn9jlpyngv5y4z3i7bb8q3xp4p0qqi7i5nq39syd42d";
+    inherit sha256;
   };
 
   enableParallelBuilding = true;
 
-  patches = [
-    ./clean-env.patch
-    ./tramp-detect-wrapped-gvfsd.patch
-    # unbreak macOS unexec
-    (fetchpatch {
-      url = "https://github.com/emacs-mirror/emacs/commit/888ffd960c06d56a409a7ff15b1d930d25c56089.patch";
-      sha256 = "08q3ygdigqwky70r47rcgzlkc5jy82xiq8am5kwwy891wlpl7frw";
-    })
-  ];
+  postPatch = lib.concatStringsSep "\n" [
+    (lib.optionalString srcRepo ''
+      rm -fr .git
+    '')
 
-  postPatch = lib.optionalString srcRepo ''
-    rm -fr .git
-  '';
+    ''
+    substituteInPlace lisp/international/mule-cmds.el \
+      --replace /usr/share/locale ${gettext}/share/locale
+
+    for makefile_in in $(find . -name Makefile.in -print); do
+      substituteInPlace $makefile_in --replace /bin/pwd pwd
+    done
+    ''
+
+    # Make native compilation work both inside and outside of nix build
+    (lib.optionalString nativeComp (let
+      backendPath = (lib.concatStringsSep " "
+        (builtins.map (x: ''\"-B${x}\"'') [
+          # Paths necessary so the JIT compiler finds its libraries:
+          "${lib.getLib libgccjit}/lib"
+          "${lib.getLib libgccjit}/lib/gcc"
+          "${lib.getLib stdenv.cc.libc}/lib"
+
+          # Executable paths necessary for compilation (ld, as):
+          "${lib.getBin stdenv.cc.cc}/bin"
+          "${lib.getBin stdenv.cc.bintools}/bin"
+          "${lib.getBin stdenv.cc.bintools.bintools}/bin"
+        ]));
+    in ''
+      substituteInPlace lisp/emacs-lisp/comp.el --replace \
+        "(defcustom comp-native-driver-options nil" \
+        "(defcustom comp-native-driver-options '(${backendPath})"
+    ''))
+    ""
+  ];
 
   CFLAGS = "-DMAC_OS_X_VERSION_MAX_ALLOWED=101200";
 
-  nativeBuildInputs = [ pkgconfig ]
-    ++ lib.optionals srcRepo [ autoconf automake texinfo ]
+  LIBRARY_PATH = if nativeComp then "${lib.getLib stdenv.cc.libc}/lib" else "";
+
+  nativeBuildInputs = [ pkgconfig makeWrapper ]
+    ++ lib.optionals srcRepo [ autoreconfHook texinfo ]
     ++ lib.optional (withX && (withGTK3 || withXwidgets)) wrapGAppsHook;
 
   buildInputs =
-    [ ncurses gconf libxml2 gnutls alsaLib acl gpm gettext ]
+    [ ncurses gconf libxml2 gnutls alsaLib acl gpm gettext jansson harfbuzz.dev ]
     ++ lib.optionals stdenv.isLinux [ dbus libselinux systemd ]
     ++ lib.optionals withX
       [ xlibsWrapper libXaw Xaw3d libXpm libpng libjpeg libungif libtiff libXft
-        gconf ]
+        gconf cairo ]
     ++ lib.optionals (withX || withNS) [ imagemagick librsvg ]
     ++ lib.optionals (stdenv.isLinux && withX) [ m17n_lib libotf ]
     ++ lib.optional (withX && withGTK2) gtk2-x11
     ++ lib.optionals (withX && withGTK3) [ gtk3-x11 gsettings-desktop-schemas ]
-    ++ lib.optional (stdenv.isDarwin && withX) cairo
     ++ lib.optionals (withX && withXwidgets) [ webkitgtk glib-networking ]
-    ++ lib.optionals withNS [ AppKit GSS ImageIO ];
+    ++ lib.optionals withNS [ AppKit GSS ImageIO ]
+    ++ lib.optionals nativeComp [ libgccjit ]
+    ;
 
   hardeningDisable = [ "format" ];
 
@@ -85,34 +121,28 @@ stdenv.mkDerivation rec {
     (if withNS
       then [ "--disable-ns-self-contained" ]
     else if withX
-      then [ "--with-x-toolkit=${toolkit}" "--with-xft" ]
+      then [ "--with-x-toolkit=${toolkit}" "--with-xft" "--with-cairo" ]
       else [ "--with-x=no" "--with-xpm=no" "--with-jpeg=no" "--with-png=no"
              "--with-gif=no" "--with-tiff=no" ])
-    ++ lib.optional withXwidgets "--with-xwidgets";
-
-  preConfigure = lib.optionalString srcRepo ''
-    ./autogen.sh
-  '' + ''
-    substituteInPlace lisp/international/mule-cmds.el \
-      --replace /usr/share/locale ${gettext}/share/locale
-
-    for makefile_in in $(find . -name Makefile.in -print); do
-        substituteInPlace $makefile_in --replace /bin/pwd pwd
-    done
-  '';
+    ++ lib.optional withXwidgets "--with-xwidgets"
+    ++ lib.optional nativeComp "--with-nativecomp"
+    ;
 
   installTargets = [ "tags" "install" ];
 
   postInstall = ''
     mkdir -p $out/share/emacs/site-lisp
     cp ${siteStart} $out/share/emacs/site-lisp/site-start.el
+
     $out/bin/emacs --batch -f batch-byte-compile $out/share/emacs/site-lisp/site-start.el
 
+    siteVersionDir=`ls $out/share/emacs | grep -v site-lisp | head -n 1`
+
     rm -rf $out/var
-    rm -rf $out/share/emacs/${version}/site-lisp
+    rm -rf $siteVersionDir
   '' + lib.optionalString withCsrc ''
     for srcdir in src lisp lwlib ; do
-      dstdir=$out/share/emacs/${version}/$srcdir
+      dstdir=$siteVersionDir/$srcdir
       mkdir -p $dstdir
       find $srcdir -name "*.[chm]" -exec cp {} $dstdir \;
       cp $srcdir/TAGS $dstdir
@@ -123,16 +153,19 @@ stdenv.mkDerivation rec {
     mv nextstep/Emacs.app $out/Applications
   '';
 
-  postFixup =
-    let libPath = lib.makeLibraryPath [
-      libXcursor
-    ];
-    in lib.optionalString (stdenv.isLinux && withX && toolkit == "lucid") ''
+  postFixup = lib.concatStringsSep "\n" [
+
+    (lib.optionalString (stdenv.isLinux && withX && toolkit == "lucid") ''
       patchelf --set-rpath \
-        "$(patchelf --print-rpath "$out/bin/emacs"):${libPath}" \
+        "$(patchelf --print-rpath "$out/bin/emacs"):${lib.makeLibraryPath [ libXcursor ]}" \
         "$out/bin/emacs"
       patchelf --add-needed "libXcursor.so.1" "$out/bin/emacs"
-    '';
+    '')
+  ];
+
+  passthru = {
+    inherit nativeComp;
+  };
 
   meta = with stdenv.lib; {
     description = "The extensible, customizable GNU text editor";
diff --git a/nixpkgs/pkgs/applications/editors/emacs/macport.nix b/nixpkgs/pkgs/applications/editors/emacs/macport.nix
index 1624e62026af..f991fe7ea666 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/macport.nix
+++ b/nixpkgs/pkgs/applications/editors/emacs/macport.nix
@@ -1,24 +1,24 @@
-{ stdenv, fetchurl, ncurses, pkgconfig, texinfo, libxml2, gnutls, gettext, autoconf, automake
+{ stdenv, fetchurl, ncurses, pkgconfig, texinfo, libxml2, gnutls, gettext, autoconf, automake, jansson
 , AppKit, Carbon, Cocoa, IOKit, OSAKit, Quartz, QuartzCore, WebKit
 , ImageCaptureCore, GSS, ImageIO # These may be optional
 }:
 
 stdenv.mkDerivation rec {
   pname = "emacs";
-  version = "26.3";
+  version = "27.1";
 
   emacsName = "emacs-${version}";
-  macportVersion = "7.7";
+  macportVersion = "8.0";
   name = "emacs-mac-${version}-${macportVersion}";
 
   src = fetchurl {
     url = "mirror://gnu/emacs/${emacsName}.tar.xz";
-    sha256 = "119ldpk7sgn9jlpyngv5y4z3i7bb8q3xp4p0qqi7i5nq39syd42d";
+    sha256 = "0h9f2wpmp6rb5rfwvqwv1ia1nw86h74p7hnz3vb3gjazj67i4k2a";
   };
 
   macportSrc = fetchurl {
     url = "ftp://ftp.math.s.chiba-u.ac.jp/emacs/${emacsName}-mac-${macportVersion}.tar.gz";
-    sha256 = "18jadknm47ymbl7skrgc7y8xsdldcbgnlfl7qpgzm1ym8d92as6j";
+    sha256 = "0rjk82k9qp1g701pfd4f0q2myzvsnp9q8xzphlxwi5yzwbs91kjq";
   };
 
   hiresSrc = fetchurl {
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig autoconf automake ];
 
-  buildInputs = [ ncurses libxml2 gnutls texinfo gettext
+  buildInputs = [ ncurses libxml2 gnutls texinfo gettext jansson
     AppKit Carbon Cocoa IOKit OSAKit Quartz QuartzCore WebKit
     ImageCaptureCore GSS ImageIO   # may be optional
   ];
@@ -76,7 +76,16 @@ stdenv.mkDerivation rec {
     cp ${./site-start.el} $out/share/emacs/site-lisp/site-start.el
   '';
 
-  doCheck = true;
+  # fails with:
+
+  # Ran 3870 tests, 3759 results as expected, 6 unexpected, 105 skipped
+  # 5 files contained unexpected results:
+  #   lisp/url/url-handlers-test.log
+  #   lisp/simple-tests.log
+  #   lisp/files-x-tests.log
+  #   lisp/cedet/srecode-utest-template.log
+  #   lisp/net/tramp-tests.log
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "The extensible, customizable text editor";
diff --git a/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch b/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch
new file mode 100644
index 000000000000..5d16194fd202
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd-26.patch
@@ -0,0 +1,14 @@
+diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
+index f370abba31..f2806263a9 100644
+--- a/lisp/net/tramp-gvfs.el
++++ b/lisp/net/tramp-gvfs.el
+@@ -164,7 +164,8 @@ tramp-gvfs-enabled
+     (and (featurep 'dbusbind)
+ 	 (tramp-compat-funcall 'dbus-get-unique-name :system)
+ 	 (tramp-compat-funcall 'dbus-get-unique-name :session)
+-	 (or (tramp-compat-process-running-p "gvfs-fuse-daemon")
++	 (or (tramp-compat-process-running-p ".gvfsd-fuse-wrapped")
++             (tramp-compat-process-running-p "gvfs-fuse-daemon")
+ 	     (tramp-compat-process-running-p "gvfsd-fuse"))))
+   "Non-nil when GVFS is available.")
+ 
diff --git a/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch b/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch
index 5d16194fd202..5af6fcaba8c0 100644
--- a/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch
+++ b/nixpkgs/pkgs/applications/editors/emacs/tramp-detect-wrapped-gvfsd.patch
@@ -1,14 +1,12 @@
 diff --git a/lisp/net/tramp-gvfs.el b/lisp/net/tramp-gvfs.el
-index f370abba31..f2806263a9 100644
+index 34a234c..b5a471c 100644
 --- a/lisp/net/tramp-gvfs.el
 +++ b/lisp/net/tramp-gvfs.el
-@@ -164,7 +164,8 @@ tramp-gvfs-enabled
-     (and (featurep 'dbusbind)
+@@ -122,6 +122,7 @@
  	 (tramp-compat-funcall 'dbus-get-unique-name :system)
  	 (tramp-compat-funcall 'dbus-get-unique-name :session)
--	 (or (tramp-compat-process-running-p "gvfs-fuse-daemon")
-+	 (or (tramp-compat-process-running-p ".gvfsd-fuse-wrapped")
-+             (tramp-compat-process-running-p "gvfs-fuse-daemon")
+ 	 (or (tramp-compat-process-running-p "gvfs-fuse-daemon")
++	     (tramp-compat-process-running-p ".gvfsd-fuse-wrapped")
  	     (tramp-compat-process-running-p "gvfsd-fuse"))))
    "Non-nil when GVFS is available.")
  
diff --git a/nixpkgs/pkgs/applications/editors/featherpad/default.nix b/nixpkgs/pkgs/applications/editors/featherpad/default.nix
index c6089fd5308c..8343472fa70a 100644
--- a/nixpkgs/pkgs/applications/editors/featherpad/default.nix
+++ b/nixpkgs/pkgs/applications/editors/featherpad/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, pkgconfig, qt5, fetchFromGitHub }:
-
-with qt5;
-
-stdenv.mkDerivation rec {
-  version = "0.10.0";
+{ stdenv, mkDerivation, pkgconfig, qmake, qttools, qtbase, qtsvg, qtx11extras, fetchFromGitHub }:
+mkDerivation rec {
   pname = "featherpad";
+  version = "0.10.0";
+
   src = fetchFromGitHub {
     owner = "tsujan";
     repo = "FeatherPad";
     rev = "V${version}";
     sha256 = "1wrbs6kni9s3x39cckm9kzpglryxn5vyarilvh9pafbzpc6rc57p";
   };
+
   nativeBuildInputs = [ qmake pkgconfig qttools ];
   buildInputs = [ qtbase qtsvg qtx11extras ];
+
   meta = with stdenv.lib; {
     description = "Lightweight Qt5 Plain-Text Editor for Linux";
     homepage = "https://github.com/tsujan/FeatherPad";
diff --git a/nixpkgs/pkgs/applications/editors/glow/default.nix b/nixpkgs/pkgs/applications/editors/glow/default.nix
index fd1e61463f8b..347c5970cae6 100644
--- a/nixpkgs/pkgs/applications/editors/glow/default.nix
+++ b/nixpkgs/pkgs/applications/editors/glow/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1c16s5xiqr36azh2w90wg14jlw67ca2flbgjijpz7qd0ypxyfqlk";
 
+  doCheck = false;
+
   buildFlagsArray = [ "-ldflags=" "-X=main.Version=${version}" ];
 
   meta = with lib; {
@@ -21,4 +23,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ehmry filalex77 ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix b/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix
index d41746a16ee3..a94ab58a78fe 100644
--- a/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix
+++ b/nixpkgs/pkgs/applications/editors/gnome-builder/default.nix
@@ -40,11 +40,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-builder";
-  version = "3.36.0";
+  version = "3.36.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "02ni81jyncycgfwslvaav0a62wzx3r9bi86xf0x7jvvk6plfaj8v";
+    sha256 = "17pvmd5jypar8dkr6w56hvf7jnq4l1wih2wwgkrv7sblr7rkkar2";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/editors/gophernotes/default.nix b/nixpkgs/pkgs/applications/editors/gophernotes/default.nix
new file mode 100644
index 000000000000..e48ee4dd13c7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/gophernotes/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "gophernotes";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "gopherdata";
+    repo = "gophernotes";
+    rev = "v${version}";
+    sha256 = "0hs92bdrsjqafdkhg2fk3z16h307i32mvbm9f6bb80bgsciysh27";
+  };
+
+  vendorSha256 = "1ylqf1sx0h2kixnq9f3prn3sha43q3ybd5ay57yy5z79qr8zqvxs";
+
+  meta = with lib; {
+    description = "Go kernel for Jupyter notebooks";
+    homepage = "https://github.com/gopherdata/gophernotes";
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/hexdino/default.nix b/nixpkgs/pkgs/applications/editors/hexdino/default.nix
index 79e0027d5096..9722854b9804 100644
--- a/nixpkgs/pkgs/applications/editors/hexdino/default.nix
+++ b/nixpkgs/pkgs/applications/editors/hexdino/default.nix
@@ -20,6 +20,5 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/Luz/hexdino";
     license = licenses.mit;
     maintainers = [ maintainers.luz ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/editors/jedit/default.nix b/nixpkgs/pkgs/applications/editors/jedit/default.nix
index 178494b04981..18fe236983ac 100644
--- a/nixpkgs/pkgs/applications/editors/jedit/default.nix
+++ b/nixpkgs/pkgs/applications/editors/jedit/default.nix
@@ -44,12 +44,8 @@ stdenv.mkDerivation {
     mkdir -p $out/share/applications
     mv package-files/linux/deb/jedit.desktop $out/share/applications/jedit.desktop
 
-    patch package-files/linux/jedit << EOF
-    5a6,8
-    > # specify the correct JAVA_HOME
-    > JAVA_HOME=${jdk.jre.home}/jre
-    > 
-    EOF
+    # specify the correct JAVA_HOME
+    sed -i '1a JAVA_HOME=${jdk}' package-files/linux/jedit
     sed -i "s|/usr/share/jEdit/@jar.filename@|$out/share/jEdit/jedit.jar|g" package-files/linux/jedit
     mkdir -p $out/bin
     cp package-files/linux/jedit $out/bin/jedit
diff --git a/nixpkgs/pkgs/applications/editors/jetbrains/default.nix b/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
index a2bf2cbf1de6..2747176e01b3 100644
--- a/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
+++ b/nixpkgs/pkgs/applications/editors/jetbrains/default.nix
@@ -1,13 +1,13 @@
 { lib, stdenv, callPackage, fetchurl
 , python
 , jdk, cmake, libxml2, zlib, python3, ncurses5
+, dotnet-sdk_3
 }:
 
 with stdenv.lib;
 
 let
   mkJetBrainsProduct = callPackage ./common.nix { };
-
   # Sorted alphabetically
 
   buildClion = { name, version, src, license, description, wmClass, ... }:
@@ -220,9 +220,9 @@ let
       };
     }) (attrs: {
       patchPhase = lib.optionalString (!stdenv.isDarwin) (attrs.patchPhase + ''
-        # Patch built-in mono for ReSharperHost to start successfully
-        interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2)
-        patchelf --set-interpreter "$interpreter" lib/ReSharperHost/linux-x64/mono/bin/mono-sgen
+        rm -rf lib/ReSharperHost/linux-x64/dotnet
+        mkdir -p lib/ReSharperHost/linux-x64/dotnet/
+        ln -s ${dotnet-sdk_3}/bin/dotnet lib/ReSharperHost/linux-x64/dotnet/dotnet
       '');
     });
 
@@ -268,12 +268,12 @@ in
 
   clion = buildClion rec {
     name = "clion-${version}";
-    version = "2020.1.1"; /* updated by script */
+    version = "2020.2.3"; /* updated by script */
     description  = "C/C++ IDE. New. Intelligent. Cross-platform";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz";
-      sha256 = "0136hmknkxrsgbygxqzrq1836kg02p14hmv5mzbpp79yglhv2xml"; /* updated by script */
+      sha256 = "1kdlmdsfxmwks3rk2dzm5q30vwzpxcwzpyjsir122k36xnqvaqxq"; /* updated by script */
     };
     wmClass = "jetbrains-clion";
     update-channel = "CLion RELEASE"; # channel's id as in http://www.jetbrains.com/updates/updates.xml
@@ -281,12 +281,12 @@ in
 
   datagrip = buildDataGrip rec {
     name = "datagrip-${version}";
-    version = "2020.1.3"; /* updated by script */
+    version = "2020.2.3"; /* updated by script */
     description = "Your Swiss Army Knife for Databases and SQL";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/datagrip/${name}.tar.gz";
-      sha256 = "0ivnicpn67mfyhmiwbx80pq5l2xa4g1cpp79mh7rgm2c5klmf201"; /* updated by script */
+      sha256 = "0iv1zmdpbqk8f4cjd6dhgj9mrvxli4dg83jzkhv566sy8wrrx7kb"; /* updated by script */
     };
     wmClass = "jetbrains-datagrip";
     update-channel = "DataGrip RELEASE";
@@ -294,12 +294,12 @@ in
 
   goland = buildGoland rec {
     name = "goland-${version}";
-    version = "2020.1.2"; /* updated by script */
+    version = "2020.2.3"; /* updated by script */
     description = "Up and Coming Go IDE";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/go/${name}.tar.gz";
-      sha256 = "0v6vi6m94fwzsg5s357ymh8604zkv6q0zhyqfh9sj4ynzi7l4fyv"; /* updated by script */
+      sha256 = "18mzlqibgc6lzwhbmyrni56464qhzla9mss27d45hv0mbv087jn0"; /* updated by script */
     };
     wmClass = "jetbrains-goland";
     update-channel = "GoLand RELEASE";
@@ -307,12 +307,12 @@ in
 
   idea-community = buildIdea rec {
     name = "idea-community-${version}";
-    version = "2020.1.1"; /* updated by script */
+    version = "2020.2.2"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, community edition";
     license = stdenv.lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz";
-      sha256 = "0q848swfg9mjiini5bbjdj1f0qpd1n4glxdpncjj7mbpvp7s2h5k"; /* updated by script */
+      sha256 = "0kbn9q7fvhrzb1w6l8i2nv4cx8qrj74jp7fidj9yk8vkv9lfijg6"; /* updated by script */
     };
     wmClass = "jetbrains-idea-ce";
     update-channel = "IntelliJ IDEA RELEASE";
@@ -320,12 +320,12 @@ in
 
   idea-ultimate = buildIdea rec {
     name = "idea-ultimate-${version}";
-    version = "2020.1.1"; /* updated by script */
+    version = "2020.2.2"; /* updated by script */
     description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jbr.tar.gz";
-      sha256 = "13khjc7fp28mpcdn74msdw57nzhicg32xrrvj7s7na2qd9gqz0hf"; /* updated by script */
+      sha256 = "1196zrcbgrr9271kjrzd2mzvhvxd7hkr1d2a4ij4h8f97qmsd6r6"; /* updated by script */
     };
     wmClass = "jetbrains-idea";
     update-channel = "IntelliJ IDEA RELEASE";
@@ -333,12 +333,12 @@ in
 
   mps = buildMps rec {
     name = "mps-${version}";
-    version = "2019.2";
+    version = "2020.2"; /* updated by script */
     description = "Create your own domain-specific language";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
-      url = "https://download.jetbrains.com/mps/2019.2/MPS-${version}.tar.gz";
-      sha256 = "0rph3bibj74ddbyrn0az1npn4san4g1alci8nlq4gaqdlcz6zx22";
+      url = "https://download.jetbrains.com/mps/2020.2/MPS-${version}.tar.gz";
+      sha256 = "06c0yv9vvz0y5njh1sghn7ijpn1d81mxsyk5xjpj29bvvg511pjs"; /* updated by script */
     };
     wmClass = "jetbrains-mps";
     update-channel = "MPS RELEASE";
@@ -346,12 +346,12 @@ in
 
   phpstorm = buildPhpStorm rec {
     name = "phpstorm-${version}";
-    version = "2020.1.1"; /* updated by script */
+    version = "2020.2.1"; /* updated by script */
     description = "Professional IDE for Web and PHP developers";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz";
-      sha256 = "16gclbczd9czqhply0xb2ykv0bw4bgv85fihy1n2szc4rp643qdw"; /* updated by script */
+      sha256 = "14hz6w5lgn8ddscicm4s9xhi07j5adsq0bmyr8amzmj5q6jgw4p9"; /* updated by script */
     };
     wmClass = "jetbrains-phpstorm";
     update-channel = "PhpStorm RELEASE";
@@ -359,12 +359,12 @@ in
 
   pycharm-community = buildPycharm rec {
     name = "pycharm-community-${version}";
-    version = "2020.1.1"; /* updated by script */
+    version = "2020.2.2"; /* updated by script */
     description = "PyCharm Community Edition";
     license = stdenv.lib.licenses.asl20;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "0p2q01yragab7c15aicpmaby075y7mpf6iavdfipi033q4gnlnki"; /* updated by script */
+      sha256 = "1a1vhlc2q5n3dxli0x6ppxx3mgary4gpakcxdp9nylmixjzjph6v"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm-ce";
     update-channel = "PyCharm RELEASE";
@@ -372,12 +372,12 @@ in
 
   pycharm-professional = buildPycharm rec {
     name = "pycharm-professional-${version}";
-    version = "2020.1.1"; /* updated by script */
+    version = "2020.2.2"; /* updated by script */
     description = "PyCharm Professional Edition";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/python/${name}.tar.gz";
-      sha256 = "1lq97aqnibvg483ww7wi8slh302gydd2kdkw6p2516rjcmm6n324"; /* updated by script */
+      sha256 = "0v64f5sbv1639d6fjg0shfgdy40f1xc2zbn0jqfrx6xmkg7wgsz9"; /* updated by script */
     };
     wmClass = "jetbrains-pycharm";
     update-channel = "PyCharm RELEASE";
@@ -385,12 +385,12 @@ in
 
   rider = buildRider rec {
     name = "rider-${version}";
-    version = "2020.1.2"; /* updated by script */
+    version = "2020.2.2"; /* updated by script */
     description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz";
-      sha256 = "0flwq61p7827f8nmldqgfpxbfl422imclksw6w97mgzqqhcbgksd"; /* updated by script */
+      sha256 = "1v3n4mg8b55ni72bdgsgiwyqcvp9zhqlkqshscwfjggv0iai9r6p"; /* updated by script */
     };
     wmClass = "jetbrains-rider";
     update-channel = "Rider RELEASE";
@@ -398,12 +398,12 @@ in
 
   ruby-mine = buildRubyMine rec {
     name = "ruby-mine-${version}";
-    version = "2020.1.1"; /* updated by script */
+    version = "2020.2.2"; /* updated by script */
     description = "The Most Intelligent Ruby and Rails IDE";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz";
-      sha256 = "0xhx3n2xdk0k0qx7hdiyfga16hjf2j95k219wh7mh0cys20hkrg8"; /* updated by script */
+      sha256 = "11v26hpf891nq5vj8i0ad4shhzpy8b7rvyrkr3l29dwfnd83lgpz"; /* updated by script */
     };
     wmClass = "jetbrains-rubymine";
     update-channel = "RubyMine RELEASE";
@@ -411,12 +411,12 @@ in
 
   webstorm = buildWebStorm rec {
     name = "webstorm-${version}";
-    version = "2020.1.1"; /* updated by script */
+    version = "2020.2.2"; /* updated by script */
     description = "Professional IDE for Web and JavaScript development";
     license = stdenv.lib.licenses.unfree;
     src = fetchurl {
       url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz";
-      sha256 = "0d543g06bxpw4q2p19vmvrxpbhqsvspjbs3sqnw6hxni7wcflhkg"; /* updated by script */
+      sha256 = "1w17cf0qj0vyizkzj1frcmi52q5qxbf31msg8df38wy2l8r0b928"; /* updated by script */
     };
     wmClass = "jetbrains-webstorm";
     update-channel = "WebStorm RELEASE";
diff --git a/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile b/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile
new file mode 100644
index 000000000000..c3f096edcad1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile
@@ -0,0 +1,6 @@
+source 'https://rubygems.org'
+gem 'sensu'
+gem 'iruby'
+gem 'cztop'
+gem 'ffi-rzmq'
+gem 'rbczmq'
diff --git a/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile.lock b/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile.lock
new file mode 100644
index 000000000000..89f60a6dbdce
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/Gemfile.lock
@@ -0,0 +1,119 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    addressable (2.6.0)
+      public_suffix (>= 2.0.2, < 4.0)
+    amq-protocol (2.0.1)
+    amqp (1.6.0)
+      amq-protocol (>= 2.0.1)
+      eventmachine
+    bond (0.5.1)
+    childprocess (0.5.8)
+      ffi (~> 1.0, >= 1.0.11)
+    cookiejar (0.3.3)
+    czmq-ffi-gen (0.15.0)
+      ffi (~> 1.9.10)
+    cztop (0.13.1)
+      czmq-ffi-gen (~> 0.15.0)
+    data_uri (0.1.0)
+    em-http-request (1.1.5)
+      addressable (>= 2.3.4)
+      cookiejar (!= 0.3.1)
+      em-socksify (>= 0.3)
+      eventmachine (>= 1.0.3)
+      http_parser.rb (>= 0.6.0)
+    em-http-server (0.1.8)
+      eventmachine
+    em-socksify (0.3.2)
+      eventmachine (>= 1.0.0.beta.4)
+    em-worker (0.0.2)
+      eventmachine
+    eventmachine (1.2.7)
+    ffi (1.9.21)
+    ffi-rzmq (2.0.7)
+      ffi-rzmq-core (>= 1.0.7)
+    ffi-rzmq-core (1.0.7)
+      ffi
+    http_parser.rb (0.6.0)
+    iruby (0.3)
+      bond (~> 0.5)
+      data_uri (~> 0.1)
+      mimemagic (~> 0.3)
+      multi_json (~> 1.11)
+    mimemagic (0.3.3)
+    multi_json (1.13.1)
+    oj (2.18.1)
+    parse-cron (0.1.4)
+    public_suffix (3.0.3)
+    rbczmq (1.7.9)
+    sensu (1.6.2)
+      em-http-request (= 1.1.5)
+      em-http-server (= 0.1.8)
+      eventmachine (= 1.2.7)
+      parse-cron (= 0.1.4)
+      sensu-extension (= 1.5.2)
+      sensu-extensions (= 1.10.0)
+      sensu-json (= 2.1.1)
+      sensu-logger (= 1.2.2)
+      sensu-redis (= 2.4.0)
+      sensu-settings (= 10.14.0)
+      sensu-spawn (= 2.5.0)
+      sensu-transport (= 8.2.0)
+    sensu-extension (1.5.2)
+      eventmachine
+    sensu-extensions (1.10.0)
+      sensu-extension
+      sensu-extensions-check-dependencies (= 1.1.0)
+      sensu-extensions-debug (= 1.0.0)
+      sensu-extensions-json (= 1.0.0)
+      sensu-extensions-occurrences (= 1.2.0)
+      sensu-extensions-only-check-output (= 1.0.0)
+      sensu-extensions-ruby-hash (= 1.0.0)
+      sensu-json (>= 1.1.0)
+      sensu-logger
+      sensu-settings
+    sensu-extensions-check-dependencies (1.1.0)
+      sensu-extension
+    sensu-extensions-debug (1.0.0)
+      sensu-extension
+    sensu-extensions-json (1.0.0)
+      sensu-extension
+    sensu-extensions-occurrences (1.2.0)
+      sensu-extension
+    sensu-extensions-only-check-output (1.0.0)
+      sensu-extension
+    sensu-extensions-ruby-hash (1.0.0)
+      sensu-extension
+    sensu-json (2.1.1)
+      oj (= 2.18.1)
+    sensu-logger (1.2.2)
+      eventmachine
+      sensu-json
+    sensu-redis (2.4.0)
+      eventmachine
+    sensu-settings (10.14.0)
+      parse-cron
+      sensu-json (>= 1.1.0)
+    sensu-spawn (2.5.0)
+      childprocess (= 0.5.8)
+      em-worker (= 0.0.2)
+      eventmachine
+      ffi (= 1.9.21)
+    sensu-transport (8.2.0)
+      amq-protocol (= 2.0.1)
+      amqp (= 1.6.0)
+      eventmachine
+      sensu-redis (>= 1.0.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  cztop
+  ffi-rzmq
+  iruby
+  rbczmq
+  sensu
+
+BUNDLED WITH
+   1.17.2
diff --git a/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/default.nix b/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/default.nix
new file mode 100644
index 000000000000..260a614fe5c0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/default.nix
@@ -0,0 +1,17 @@
+{ lib
+, bundlerApp
+}:
+
+bundlerApp {
+  pname = "iruby";
+  gemdir = ./.;
+  exes = [ "iruby" ];
+
+  meta = with lib; {
+    description = "Ruby kernel for Jupyter";
+    homepage    = "https://github.com/SciRuby/iruby";
+    license     = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/gemset.nix b/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/gemset.nix
new file mode 100644
index 000000000000..1ba77a058ea2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/jupyter-kernels/iruby/gemset.nix
@@ -0,0 +1,429 @@
+{
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bcm2hchn897xjhqj9zzsxf3n9xhddymj4lsclz508f4vw3av46l";
+      type = "gem";
+    };
+    version = "2.6.0";
+  };
+  amq-protocol = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rpn9vgh7y037aqhhp04smihzr73vp5i5g6xlqlha10wy3q0wp7x";
+      type = "gem";
+    };
+    version = "2.0.1";
+  };
+  amqp = {
+    dependencies = ["amq-protocol" "eventmachine"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0kbrqnpjgj9v0722p3n5rw589l4g26ry8mcghwc5yr20ggkpdaz9";
+      type = "gem";
+    };
+    version = "1.6.0";
+  };
+  bond = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1r19ifc4skyl2gxnifrxa5jvbbay9fb2in79ppgv02b6n4bhsw90";
+      type = "gem";
+    };
+    version = "0.5.1";
+  };
+  childprocess = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1lv7axi1fhascm9njxh3lx1rbrnsm8wgvib0g7j26v4h1fcphqg0";
+      type = "gem";
+    };
+    version = "0.5.8";
+  };
+  cookiejar = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0q0kmbks9l3hl0wdq744hzy97ssq9dvlzywyqv9k9y1p3qc9va2a";
+      type = "gem";
+    };
+    version = "0.3.3";
+  };
+  czmq-ffi-gen = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1ngsd1yxiayd50v402vwhmq7ma9ang6pcba5kqiwq7smpdvfmbmp";
+      type = "gem";
+    };
+    version = "0.15.0";
+  };
+  cztop = {
+    dependencies = ["czmq-ffi-gen"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "12xcz7g42dbp2ryhcwdm2ykj7bmwfhjhla296hy18g7a09zlfnz7";
+      type = "gem";
+    };
+    version = "0.13.1";
+  };
+  data_uri = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0fzkxgdxrlbfl4537y3n9mjxbm28kir639gcw3x47ffchwsgdcky";
+      type = "gem";
+    };
+    version = "0.1.0";
+  };
+  em-http-request = {
+    dependencies = ["addressable" "cookiejar" "em-socksify" "eventmachine" "http_parser.rb"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "13rxmbi0fv91n4sg300v3i9iiwd0jxv0i6xd0sp81dx3jlx7kasx";
+      type = "gem";
+    };
+    version = "1.1.5";
+  };
+  em-http-server = {
+    dependencies = ["eventmachine"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0y8l4gymy9dzjjchjav90ck6has2i2zdjihlhcyrg3jgq6kjzyq5";
+      type = "gem";
+    };
+    version = "0.1.8";
+  };
+  em-socksify = {
+    dependencies = ["eventmachine"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rk43ywaanfrd8180d98287xv2pxyl7llj291cwy87g1s735d5nk";
+      type = "gem";
+    };
+    version = "0.3.2";
+  };
+  em-worker = {
+    dependencies = ["eventmachine"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0z4jx9z2q5hxvdvik4yp0ahwfk69qsmdnyp72ln22p3qlkq2z5wk";
+      type = "gem";
+    };
+    version = "0.0.2";
+  };
+  eventmachine = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  ffi = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0c2dl10pi6a30kcvx2s6p2v1wb4kbm48iv38kmz2ff600nirhpb8";
+      type = "gem";
+    };
+    version = "1.9.21";
+  };
+  ffi-rzmq = {
+    dependencies = ["ffi-rzmq-core"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "14a5kxfnf8l3ngyk8hgmk30z07aj1324ll8i48z67ps6pz2kpsrg";
+      type = "gem";
+    };
+    version = "2.0.7";
+  };
+  ffi-rzmq-core = {
+    dependencies = ["ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0amkbvljpjfnv0jpdmz71p1i3mqbhyrnhamjn566w0c01xd64hb5";
+      type = "gem";
+    };
+    version = "1.0.7";
+  };
+  "http_parser.rb" = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
+      type = "gem";
+    };
+    version = "0.6.0";
+  };
+  iruby = {
+    dependencies = ["bond" "data_uri" "mimemagic" "multi_json"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wdf2c0x8y6cya0n3y0p3p7b1sxkb2fdavdn2k58rf4rs37s7rzn";
+      type = "gem";
+    };
+    version = "0.3";
+  };
+  mimemagic = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04cp5sfbh1qx82yqxn0q75c7hlcx8y1dr5g3kyzwm4mx6wi2gifw";
+      type = "gem";
+    };
+    version = "0.3.3";
+  };
+  multi_json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
+      type = "gem";
+    };
+    version = "1.13.1";
+  };
+  oj = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "147whmq8h2n04chskl3v4a132xhz5i6kk6vhnz83jwng4vihin5f";
+      type = "gem";
+    };
+    version = "2.18.1";
+  };
+  parse-cron = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02fj9i21brm88nb91ikxwxbwv9y7mb7jsz6yydh82rifwq7357hg";
+      type = "gem";
+    };
+    version = "0.1.4";
+  };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
+      type = "gem";
+    };
+    version = "3.0.3";
+  };
+  rbczmq = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bqr44m2nb61smza6y5cahp09hk16lsn0z3wpq9g5zpr9nhp50fx";
+      type = "gem";
+    };
+    version = "1.7.9";
+  };
+  sensu = {
+    dependencies = ["em-http-request" "em-http-server" "eventmachine" "parse-cron" "sensu-extension" "sensu-extensions" "sensu-json" "sensu-logger" "sensu-redis" "sensu-settings" "sensu-spawn" "sensu-transport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rxv6yj63nkxlzmmqk6qpfpcvrbar9s4sd4kgfb5zsv9bw7236cr";
+      type = "gem";
+    };
+    version = "1.6.2";
+  };
+  sensu-extension = {
+    dependencies = ["eventmachine"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0bpizp4n01rv72cryjjlrbfxxj3csish3mkxjzdy4inpi5j5h1dw";
+      type = "gem";
+    };
+    version = "1.5.2";
+  };
+  sensu-extensions = {
+    dependencies = ["sensu-extension" "sensu-extensions-check-dependencies" "sensu-extensions-debug" "sensu-extensions-json" "sensu-extensions-occurrences" "sensu-extensions-only-check-output" "sensu-extensions-ruby-hash" "sensu-json" "sensu-logger" "sensu-settings"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04v221qjv8qy3jci40i66p63ig5vrrh0dpgmf1l8229x5m7bxrsg";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
+  sensu-extensions-check-dependencies = {
+    dependencies = ["sensu-extension"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1hc4kz7k983f6fk27ikg5drvxm4a85qf1k07hqssfyk3k75jyj1r";
+      type = "gem";
+    };
+    version = "1.1.0";
+  };
+  sensu-extensions-debug = {
+    dependencies = ["sensu-extension"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11abdgn2kkkbvxq4692yg6a27qnxz4349gfiq7d35biy7vrw34lp";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  sensu-extensions-json = {
+    dependencies = ["sensu-extension"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1wnbn9sycdqdh9m0fhszaqkv0jijs3fkdbvcv8kdspx6irbv3m6g";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  sensu-extensions-occurrences = {
+    dependencies = ["sensu-extension"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lx5wsbblfs0rvkxfg09bsz0g2mwmckrhga7idnarsnm8m565v1v";
+      type = "gem";
+    };
+    version = "1.2.0";
+  };
+  sensu-extensions-only-check-output = {
+    dependencies = ["sensu-extension"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ds2i8wd4ji9ifig2zzr4jpxinvk5dm7j10pvaqy4snykxa3rqh3";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  sensu-extensions-ruby-hash = {
+    dependencies = ["sensu-extension"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xyrj3gbmslbivcd5qcmyclgapn7qf7f5jwfvfpw53bxzib0h7s3";
+      type = "gem";
+    };
+    version = "1.0.0";
+  };
+  sensu-json = {
+    dependencies = ["oj"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "08zlxg5j3bhs72cc7wcllp026jbif0xiw6ib1cgawndlpsfl9fgx";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
+  sensu-logger = {
+    dependencies = ["eventmachine" "sensu-json"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0jpw4kz36ilaknrzb3rbkhpbgv93w2d668z2cv395dq30d4d3iwm";
+      type = "gem";
+    };
+    version = "1.2.2";
+  };
+  sensu-redis = {
+    dependencies = ["eventmachine"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0widfmmj1h9ca2kk14wy1sqmlkq40linp89a73s3ghngnzri0xyk";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  sensu-settings = {
+    dependencies = ["parse-cron" "sensu-json"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "152n4hazv2l4vbzrgd316rpj135jmz042fyh6k2yv2kw0x29pi0f";
+      type = "gem";
+    };
+    version = "10.14.0";
+  };
+  sensu-spawn = {
+    dependencies = ["childprocess" "em-worker" "eventmachine" "ffi"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "17yc8ivjpjbvig9r7yl6991d6ma0kcq75fbpz6i856ljvcr3lmd5";
+      type = "gem";
+    };
+    version = "2.5.0";
+  };
+  sensu-transport = {
+    dependencies = ["amq-protocol" "amqp" "eventmachine" "sensu-redis"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0x6vyfmg1jm1srf7xa5aka73by7qwcmry2rx8kq8phwa4g0v4mzr";
+      type = "gem";
+    };
+    version = "8.2.0";
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/default.nix b/nixpkgs/pkgs/applications/editors/kakoune/default.nix
index 6a468bd67eb5..eec14f286ba7 100644
--- a/nixpkgs/pkgs/applications/editors/kakoune/default.nix
+++ b/nixpkgs/pkgs/applications/editors/kakoune/default.nix
@@ -4,12 +4,12 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "kakoune-unwrapped";
-  version = "2020.01.16";
+  version = "2020.09.01";
   src = fetchFromGitHub {
     repo = "kakoune";
     owner = "mawww";
     rev = "v${version}";
-    sha256 = "16v6z1nzj54j19fraxhb18jdby4zfs1br91gxpg9s2s4nsk0km0b";
+    sha256 = "091qzk0qs7hql0q51hix99srgma35mhdnjfd5ncfba1bmc1h8x5i";
   };
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ ncurses asciidoc docbook_xsl libxslt ];
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/case.kak.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/case.kak.nix
new file mode 100644
index 000000000000..20df2872628f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/kakoune/plugins/case.kak.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitLab }:
+
+stdenv.mkDerivation {
+  name = "case.kak";
+  version = "unstable-2020-04-06";
+
+  src = fetchFromGitLab {
+    owner = "FlyingWombat";
+    repo = "case.kak";
+    rev = "6f1511820aa3abfa118e0f856118adc8113e2185";
+    sha256 = "002njrlwgakqgp74wivbppr9qyn57dn4n5bxkr6k6nglk9qndwdp";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/kak/autoload/plugins
+    cp -r rc/case.kak $out/share/kak/autoload/plugins
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Ease navigation between opened buffers in Kakoune";
+    homepage = "https://gitlab.com/FlyingWombat/case.kak";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ eraserhd ];
+    platform = platforms.all;
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/default.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/default.nix
index 4e92887bccb3..3926973f7ead 100644
--- a/nixpkgs/pkgs/applications/editors/kakoune/plugins/default.nix
+++ b/nixpkgs/pkgs/applications/editors/kakoune/plugins/default.nix
@@ -3,11 +3,13 @@
 {
   inherit parinfer-rust;
 
+  case-kak = pkgs.callPackage ./case.kak.nix { };
   kak-ansi = pkgs.callPackage ./kak-ansi.nix { };
   kak-auto-pairs = pkgs.callPackage ./kak-auto-pairs.nix { };
   kak-buffers = pkgs.callPackage ./kak-buffers.nix { };
   kak-fzf = pkgs.callPackage ./kak-fzf.nix { };
   kak-plumb = pkgs.callPackage ./kak-plumb.nix { };
   kak-powerline = pkgs.callPackage ./kak-powerline.nix { };
+  kak-prelude = pkgs.callPackage ./kak-prelude.nix { };
   kak-vertical-selection = pkgs.callPackage ./kak-vertical-selection.nix { };
 }
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
index dd0faf63453b..657f4a19bbfc 100644
--- a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
+++ b/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-fzf.nix
@@ -4,12 +4,12 @@ assert stdenv.lib.asserts.assertOneOf "fzf" fzf.pname [ "fzf" "skim" ];
 
 stdenv.mkDerivation {
   name = "kak-fzf";
-  version = "2019-07-16";
+  version = "2020-05-24";
   src = fetchFromGitHub {
     owner = "andreyorst";
     repo = "fzf.kak";
-    rev = "ede90d3e02bceb714f997adfcbab8260b42e0a19";
-    sha256 = "18w90j3fpk2ddn68497s33n66aap8phw5636y1r7pqsa641zdxcv";
+    rev = "b2aeb26473962ab0bf3b51ba5c81c50c1d8253d3";
+    sha256 = "0bg845i814xh4y688p2zx726rsg0pd6nb4a7qv2fckmk639f4wzc";
   };
 
   configurePhase = ''
diff --git a/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix b/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix
new file mode 100644
index 000000000000..ee9c125827c8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/kakoune/plugins/kak-prelude.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation {
+  name = "kak-prelude";
+  version = "2020-03-15";
+
+  src = fetchFromGitHub {
+    owner = "alexherbo2";
+    repo = "prelude.kak";
+    rev = "05b2642b1e014bd46423f9d738cc38a624947b63";
+    sha256 = "180p8hq8z7mznzd9w9ma5as3ijs7zbzcj96prcpswqg263a0b329";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/kak/autoload/plugins
+    cp -r rc $out/share/kak/autoload/plugins/auto-pairs
+  '';
+
+  meta = with stdenv.lib;
+  { description = "Prelude of shell blocks for Kakoune.";
+    homepage = "https://github.com/alexherbo2/prelude.kak";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ buffet ];
+    platform = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-php.nix b/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-php.nix
index 4bd6e34b4fcb..b4e4044bea6a 100644
--- a/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-php.nix
+++ b/nixpkgs/pkgs/applications/editors/kdevelop5/kdev-php.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kdev-php";
-  version = "5.5.1";
+  version = "5.5.2";
 
   src = fetchurl {
     url = "https://github.com/KDE/${pname}/archive/v${version}.tar.gz";
-    sha256 = "1z3mmlg5srzff0y1pjd4wfdf9k4rzk7gfdvbvzizkiy395qw1phv";
+    sha256 = "0z32x0297g078jk3jhzb4vrf8jhw0qprvqzm9p097h8x0026w42l";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules ];
diff --git a/nixpkgs/pkgs/applications/editors/kibi/default.nix b/nixpkgs/pkgs/applications/editors/kibi/default.nix
new file mode 100644
index 000000000000..85ad49a01d67
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/kibi/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "kibi";
+  version = "0.2.0";
+
+  cargoSha256 = "0zyqzb3k4ak7h58zjbg9b32hz1vgbbn9i9l85j4vd4aw8mhsz0n9";
+
+  src = fetchFromGitHub {
+    owner = "ilai-deutel";
+    repo = "kibi";
+    rev = "v${version}";
+    sha256 = "1cqnzw6gpsmrqcz82zn1x5i6najcr3i7shj0wnqzpwppff9a6yac";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A text editor in ≤1024 lines of code, written in Rust";
+    homepage = "https://github.com/ilai-deutel/kibi";
+    license = licenses.mit;
+    maintainers = with maintainers; [ robertodr ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/lighttable/default.nix b/nixpkgs/pkgs/applications/editors/lighttable/default.nix
index 26c5ee421527..abf55b42c551 100644
--- a/nixpkgs/pkgs/applications/editors/lighttable/default.nix
+++ b/nixpkgs/pkgs/applications/editors/lighttable/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, zlib, glib, alsaLib, makeDesktopItem
+{ stdenv, lib, fetchurl, zlib, glib, alsaLib, makeDesktopItem
 , dbus, gtk2, atk, pango, freetype, fontconfig, libgnome-keyring3, gdk-pixbuf
 , cairo, cups, expat, libgpgerror, nspr, gnome2, nss, xorg, systemd, libnotify
 }:
@@ -45,9 +45,9 @@ stdenv.mkDerivation rec {
 
     mv $out/share/LightTable/light $out/bin/light
 
-    ln -sf ${systemd.lib}/lib/libudev.so.1 $out/share/LightTable/libudev.so.0
+    ln -sf ${lib.getLib systemd}/lib/libudev.so.1 $out/share/LightTable/libudev.so.0
     substituteInPlace $out/bin/light \
-        --replace "/usr/lib/x86_64-linux-gnu" "${systemd.lib}/lib" \
+        --replace "/usr/lib/x86_64-linux-gnu" "${lib.getLib systemd}/lib" \
         --replace "/lib/x86_64-linux-gnu" "$out/share/LightTable" \
         --replace 'HERE=`dirname $(readlink -f $0)`' "HERE=$out/share/LightTable"
 
diff --git a/nixpkgs/pkgs/applications/editors/lite/default.nix b/nixpkgs/pkgs/applications/editors/lite/default.nix
index 34800d7f0235..908ecf2bdd71 100644
--- a/nixpkgs/pkgs/applications/editors/lite/default.nix
+++ b/nixpkgs/pkgs/applications/editors/lite/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lite";
-  version = "1.05";
+  version = "1.11";
 
   src = fetchFromGitHub {
     owner = "rxi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0xh29ddl5h92n1c4nlh4kx9mchwkzn4r3l16kklix3a1jm1c878a";
+    sha256 = "0wxqfb4ly8g7w5qph76xys95b55ackkags8jgd1nasmiyi8gcd5a";
   };
 
   nativeBuildInputs = [ makeWrapper pkg-config ];
diff --git a/nixpkgs/pkgs/applications/editors/micro/default.nix b/nixpkgs/pkgs/applications/editors/micro/default.nix
index 6a1ee5d196ee..ffef5d5fdde2 100644
--- a/nixpkgs/pkgs/applications/editors/micro/default.nix
+++ b/nixpkgs/pkgs/applications/editors/micro/default.nix
@@ -1,25 +1,35 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles }:
 
-buildGoPackage  rec {
+buildGoPackage rec {
   pname = "micro";
-  version = "2.0.3";
+  version = "2.0.7";
 
   goPackagePath = "github.com/zyedidia/micro";
 
   src = fetchFromGitHub {
     owner = "zyedidia";
-    repo = "micro";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "017m9kb3gfrgzd06f1nma1i3m5rb0hzpgdikb86lsyv8ik18y12z";
+    sha256 = "07ck1a9arklic3p0z50wcg608cvpba1kljvlfb4fljr6jhv5cmkb";
     fetchSubmodules = true;
   };
 
+  nativeBuildInputs = [ installShellFiles ];
+
   subPackages = [ "cmd/micro" ];
 
-  buildFlagsArray = [ "-ldflags=" "-X ${goPackagePath}/internal/util.Version=${version}" ];
+  buildFlagsArray = let t = "${goPackagePath}/internal/util"; in ''
+    -ldflags=
+      -X ${t}.Version=${version}
+      -X ${t}.CommitHash=${src.rev}
+  '';
 
   goDeps = ./deps.nix;
 
+  postInstall = ''
+    installManPage $src/assets/packaging/micro.1
+  '';
+
   meta = with stdenv.lib; {
     homepage = "https://micro-editor.github.io";
     description = "Modern and intuitive terminal-based text editor";
diff --git a/nixpkgs/pkgs/applications/editors/micro/deps.nix b/nixpkgs/pkgs/applications/editors/micro/deps.nix
index e8ed69a9088b..d1cb91c29590 100644
--- a/nixpkgs/pkgs/applications/editors/micro/deps.nix
+++ b/nixpkgs/pkgs/applications/editors/micro/deps.nix
@@ -190,6 +190,15 @@
     };
   }
   {
+    goPackagePath = "github.com/xo/terminfo";
+    fetch = {
+      type = "git";
+      url = "https://github.com/xo/terminfo";
+      rev = "454e5b68f9e8";
+      sha256 = "0xvjb09nwbanp7ja4560pwb6b2xr9h0axyr7f5clgncca2k4f1pd";
+    };
+  }
+  {
     goPackagePath = "github.com/yuin/gopher-lua";
     fetch = {
       type = "git";
@@ -203,8 +212,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/zyedidia/clipboard";
-      rev = "241f98e9b197";
-      sha256 = "1glc8w30sijpbppcvaf3503rmx5nxqkcgw87dr2pr3q3vv1bg3zi";
+      rev = "v1.0.3";
+      sha256 = "134vnx0r51f08b37yaymlxlfl14qv6r8yzgqz7dxxn1zw9197b3q";
     };
   }
   {
@@ -257,8 +266,8 @@
     fetch = {
       type = "git";
       url = "https://github.com/zyedidia/tcell";
-      rev = "v1.4.4";
-      sha256 = "0d62a9csab15b64y09jcbvq71065wliw4bd5m7lfpl5k8rmrrdyi";
+      rev = "v2.0.2";
+      sha256 = "0fr7zm6zcir2bjll5ycdxy9m98gjr3ins7mzmqpd46b3njzbl75z";
     };
   }
   {
diff --git a/nixpkgs/pkgs/applications/editors/nano/default.nix b/nixpkgs/pkgs/applications/editors/nano/default.nix
index e2f041d0fd56..244649f8663e 100644
--- a/nixpkgs/pkgs/applications/editors/nano/default.nix
+++ b/nixpkgs/pkgs/applications/editors/nano/default.nix
@@ -20,11 +20,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "nano";
-  version = "4.9.3";
+  version = "5.2";
 
   src = fetchurl {
     url = "mirror://gnu/nano/${pname}-${version}.tar.xz";
-    sha256 = "1d2i3wvsq5lvpxxinq51dcvd58xx7j0d0c2csz9hgvd06gq3hd3f";
+    sha256 = "1qd7pn9g5dgzbfg4fb3nqxqgi2iqq0g6x33x8d1mx6mfw51xmhij";
   };
 
   nativeBuildInputs = [ texinfo ] ++ optional enableNls gettext;
diff --git a/nixpkgs/pkgs/applications/editors/neovim/default.nix b/nixpkgs/pkgs/applications/editors/neovim/default.nix
index 0d54817c5340..b546aae790a7 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/default.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/default.nix
@@ -20,16 +20,24 @@ let
     ));
 
   pyEnv = python.withPackages(ps: [ ps.pynvim ps.msgpack ]);
+
+  # FIXME: this is verry messy and strange.
+  # see https://github.com/NixOS/nixpkgs/pull/80528
+  luv = lua.pkgs.luv;
+  luvpath = with builtins ; if stdenv.isDarwin
+    then "${luv.libluv}/lib/lua/${lua.luaversion}/libluv.${head (match "([0-9.]+).*" luv.version)}.dylib"
+    else "${luv}/lib/lua/${lua.luaversion}/luv.so";
+
 in
   stdenv.mkDerivation rec {
     pname = "neovim-unwrapped";
-    version = "0.4.3";
+    version = "0.4.4";
 
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "neovim";
       rev = "v${version}";
-      sha256 = "03p7pic7hw9yxxv7fbgls1f42apx3lik2k6mpaz1a109ngyc5kaj";
+      sha256 = "11zyj6jvkwas3n6w1ckj3pk6jf81z1g7ngg4smmwm7c27y2a6f2m";
     };
 
     patches = [
@@ -47,7 +55,7 @@ in
       libtermkey
       libuv
       libvterm-neovim
-      lua.pkgs.luv.libluv
+      luv.libluv
       msgpack
       ncurses
       neovimLuaEnv
@@ -88,10 +96,8 @@ in
     cmakeFlags = [
       "-DGPERF_PRG=${gperf}/bin/gperf"
       "-DLUA_PRG=${neovimLuaEnv.interpreter}"
+      "-DLIBLUV_LIBRARY=${luvpath}"
     ]
-    # FIXME: this is verry messy and strange.
-    ++ optional (!stdenv.isDarwin) "-DLIBLUV_LIBRARY=${lua.pkgs.luv}/lib/lua/${lua.luaversion}/luv.so"
-    ++ optional (stdenv.isDarwin) "-DLIBLUV_LIBRARY=${lua.pkgs.luv.libluv}/lib/lua/${lua.luaversion}/libluv.dylib"
     ++ optional doCheck "-DBUSTED_PRG=${neovimLuaEnv}/bin/busted"
     ++ optional (!lua.pkgs.isLuaJIT) "-DPREFER_LUA=ON"
     ;
diff --git a/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix b/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix
index 3693ff322338..e6166dd14b19 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/gnvim/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gnvim-unwrapped";
-  version = "0.1.5";
+  version = "0.1.6";
 
   src = fetchFromGitHub {
     owner = "vhakulinen";
     repo = "gnvim";
-    rev = version;
-    sha256 = "11gb59lhc1sp5dxj2fdm6072f4nxxay0war3kmchdwsk41nvxlrh";
+    rev = "v${version}";
+    sha256 = "1cc3yk04v9icdjr5cn58mqc3ba1wqmlzhf9ly7biy9m8yk30w9y0";
   };
 
-  cargoSha256 = "0ay7hx5bzchp772ywgxzia12c44kbyarrshl689cmqh59wphsrx5";
+  cargoSha256 = "1fyn8nsabzrfl9ykf2gk2p8if0yjp6k0ybrmp0pw67pbwaxpb9ym";
 
   buildInputs = [ gtk webkitgtk ];
 
diff --git a/nixpkgs/pkgs/applications/editors/neovim/qt.nix b/nixpkgs/pkgs/applications/editors/neovim/qt.nix
index 8fe93d37c7e8..b04c575dded7 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/qt.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/qt.nix
@@ -38,6 +38,7 @@ let
 
     meta = with stdenv.lib; {
       description = "Neovim client library and GUI, in Qt5";
+      homepage = "https://github.com/equalsraf/neovim-qt";
       license     = licenses.isc;
       maintainers = with maintainers; [ peterhoeg ];
       inherit (neovim.meta) platforms;
diff --git a/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix b/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
index c7d5f7649783..e3c03c92e58c 100644
--- a/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
+++ b/nixpkgs/pkgs/applications/editors/neovim/wrapper.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, makeWrapper
+{ stdenv, symlinkJoin, lib, makeWrapper
 , vimUtils
 , bundlerEnv, ruby
 , nodejs
@@ -55,44 +55,98 @@ let
 
   binPath = makeBinPath (optionals withRuby [rubyEnv] ++ optionals withNodeJs [nodejs]);
 
+  # Mapping a boolean argument to a key that tells us whether to add or not to
+  # add to nvim's 'embedded rc' this:
+  #
+  #    let g:<key>_host_prog=$out/bin/nvim-<key>
+  #
+  # Or this:
+  #
+  #    let g:loaded_${prog}_provider=1
+  #
+  # While the later tells nvim that this provider is not available
+  #
+  hostprog_check_table = {
+    node = withNodeJs;
+    python = withPython;
+    python3 = withPython3;
+    ruby = withRuby;
+  };
+  ## Here we calculate all of the arguments to the 1st call of `makeWrapper`
+  # We start with the executable itself NOTE we call this variable "initial"
+  # because if configure != {} we need to call makeWrapper twice, in order to
+  # avoid double wrapping, see comment near finalMakeWrapperArgs
+  initialMakeWrapperArgs =
+    let
+      flags = lib.concatLists (lib.mapAttrsToList (
+        prog:
+        withProg:
+        [
+          "--cmd"
+          (if withProg then
+            "let g:${prog}_host_prog='${placeholder "out"}/bin/nvim-${prog}'"
+          else
+            "let g:loaded_${prog}_provider=1"
+            )
+        ]
+      ) hostprog_check_table);
+    in [
+      "${neovim}/bin/nvim" "${placeholder "out"}/bin/nvim"
+      "--argv0" "$0"
+      "--add-flags" (lib.escapeShellArgs flags)
+    ] ++ lib.optionals withRuby [
+      "--set" "GEM_HOME" "${rubyEnv}/${rubyEnv.ruby.gemPath}"
+    ] ++ lib.optionals (binPath != "") [
+      "--suffix" "PATH" ":" binPath
+    ];
+  # If configure != {}, we can't generate the rplugin.vim file with e.g
+  # NVIM_SYSTEM_RPLUGIN_MANIFEST *and* NVIM_RPLUGIN_MANIFEST env vars set in
+  # the wrapper. That's why only when configure != {} (tested both here and
+  # when postBuild is evaluated), we call makeWrapper once to generate a
+  # wrapper with most arguments we need, excluding those that cause problems to
+  # generate rplugin.vim, but still required for the final wrapper.
+  finalMakeWrapperArgs = initialMakeWrapperArgs
+    # this relies on a patched neovim, see
+    # https://github.com/neovim/neovim/issues/9413
+    ++ lib.optionals (configure != {}) [
+      "--set" "NVIM_SYSTEM_RPLUGIN_MANIFEST" "${placeholder "out"}/rplugin.vim"
+      "--add-flags" "-u ${vimUtils.vimrcFile configure}"
+    ]
+  ;
   in
-  stdenv.mkDerivation {
+  symlinkJoin {
       name = "neovim-${stdenv.lib.getVersion neovim}";
-      buildCommand = let bin="${neovim}/bin/nvim"; in ''
-        if [ ! -x "${bin}" ]
-        then
-            echo "cannot find executable file \`${bin}'"
-            exit 1
-        fi
-
-        makeWrapper "$(readlink -v --canonicalize-existing "${bin}")" \
-          "$out/bin/nvim" --add-flags " \
-        --cmd \"${if withNodeJs then "let g:node_host_prog='${nodePackages.neovim}/bin/neovim-node-host'" else "let g:loaded_node_provider=1"}\" \
-        --cmd \"${if withPython then "let g:python_host_prog='$out/bin/nvim-python'" else "let g:loaded_python_provider = 1"}\" \
-        --cmd \"${if withPython3 then "let g:python3_host_prog='$out/bin/nvim-python3'" else "let g:loaded_python3_provider = 1"}\" \
-        --cmd \"${if withRuby then "let g:ruby_host_prog='$out/bin/nvim-ruby'" else "let g:loaded_ruby_provider=1"}\" " \
-        --suffix PATH : ${binPath} \
-        ${optionalString withRuby '' --set GEM_HOME ${rubyEnv}/${rubyEnv.ruby.gemPath}'' }
+      # Remove the symlinks created by symlinkJoin which we need to perform
+      # extra actions upon
+      postBuild = ''
+        rm $out/bin/nvim
+        makeWrapper ${lib.escapeShellArgs initialMakeWrapperArgs} ${extraMakeWrapperArgs}
       ''
-      + optionalString (!stdenv.isDarwin) ''
-        # copy icon and patch the original neovim.desktop file
-        mkdir -p $out/share/{applications,pixmaps}
-        ln -s ${neovim}/share/pixmaps/nvim.png $out/share/pixmaps/nvim.png
+      + lib.optionalString stdenv.isLinux ''
+        rm $out/share/applications/nvim.desktop
         substitute ${neovim}/share/applications/nvim.desktop $out/share/applications/nvim.desktop \
           --replace 'TryExec=nvim' "TryExec=$out/bin/nvim" \
           --replace 'Name=Neovim' 'Name=WrappedNeovim'
       ''
       + optionalString withPython ''
         makeWrapper ${pythonEnv}/bin/python $out/bin/nvim-python --unset PYTHONPATH
-      '' + optionalString withPython3 ''
+      ''
+      + optionalString withPython3 ''
         makeWrapper ${python3Env}/bin/python3 $out/bin/nvim-python3 --unset PYTHONPATH
-      '' + optionalString withRuby ''
+      ''
+      + optionalString withRuby ''
         ln -s ${rubyEnv}/bin/neovim-ruby-host $out/bin/nvim-ruby
-      '' + optionalString vimAlias ''
+      ''
+      + optionalString withNodeJs ''
+        ln -s ${nodePackages.neovim}/bin/neovim-node-host $out/bin/nvim-node
+      ''
+      + optionalString vimAlias ''
         ln -s $out/bin/nvim $out/bin/vim
-      '' + optionalString viAlias ''
+      ''
+      + optionalString viAlias ''
         ln -s $out/bin/nvim $out/bin/vi
-      '' + optionalString (configure != {}) ''
+      ''
+      + optionalString (configure != {}) ''
         echo "Generating remote plugin manifest"
         export NVIM_RPLUGIN_MANIFEST=$out/rplugin.vim
         # Some plugins assume that the home directory is accessible for
@@ -119,22 +173,18 @@ let
           echo -e "\nGenerating rplugin.vim failed!"
           exit 1
         fi
-        unset NVIM_RPLUGIN_MANIFEST
-
-        # this relies on a patched neovim, see
-        # https://github.com/neovim/neovim/issues/9413
-        wrapProgram $out/bin/nvim \
-          --set NVIM_SYSTEM_RPLUGIN_MANIFEST $out/rplugin.vim \
-          --add-flags "-u ${vimUtils.vimrcFile configure}" ${extraMakeWrapperArgs}
+        makeWrapper ${lib.escapeShellArgs finalMakeWrapperArgs} ${extraMakeWrapperArgs}
       '';
 
+    paths = [ neovim ];
+
     preferLocalBuild = true;
 
     buildInputs = [makeWrapper];
     passthru = { unwrapped = neovim; };
 
     meta = neovim.meta // {
-      description = neovim.meta.description;
+      # To prevent builds on hydra
       hydraPlatforms = [];
       # prefer wrapper over the package
       priority = (neovim.meta.priority or 0) - 1;
diff --git a/nixpkgs/pkgs/applications/editors/netbeans/default.nix b/nixpkgs/pkgs/applications/editors/netbeans/default.nix
index ecc3c058f702..718b1b8dcb61 100644
--- a/nixpkgs/pkgs/applications/editors/netbeans/default.nix
+++ b/nixpkgs/pkgs/applications/editors/netbeans/default.nix
@@ -3,14 +3,14 @@
 }:
 
 let
-  version = "12.0";
+  version = "12.1";
   desktopItem = makeDesktopItem {
     name = "netbeans";
     exec = "netbeans";
     comment = "Integrated Development Environment";
     desktopName = "Apache NetBeans IDE";
     genericName = "Integrated Development Environment";
-    categories = "Application;Development;";
+    categories = "Development;";
     icon = "netbeans";
   };
 in
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   inherit version;
   src = fetchurl {
     url = "mirror://apache/netbeans/netbeans/${version}/netbeans-${version}-bin.zip";
-    sha512 = "91030c9628a08acd85f1a58a7f71eec2e57dc85841c1c475cc6311335b5d8cdc10c1198274b9668b7f61a28d04b07661247dc1c3e36b8e29214aec3748e499e4";
+    sha512 = "ad4bb5b191c784ed144b0b4831a8b95e0707c362917833c279d3f6fad11d7b3fb1f004f30121a941b694fc2ce323974b15072aa31cb5449111bc5d33d0d77103";
   };
 
   buildCommand = ''
diff --git a/nixpkgs/pkgs/applications/editors/okteta/default.nix b/nixpkgs/pkgs/applications/editors/okteta/default.nix
index b9d92409198b..382fcd44257e 100644
--- a/nixpkgs/pkgs/applications/editors/okteta/default.nix
+++ b/nixpkgs/pkgs/applications/editors/okteta/default.nix
@@ -4,11 +4,11 @@
 
 mkDerivation rec {
   pname = "okteta";
-  version = "0.26.3";
+  version = "0.26.4";
 
   src = fetchurl {
     url = "mirror://kde/stable/okteta/${version}/src/${pname}-${version}.tar.xz";
-    sha256 = "1454844s76skk18gpcf56y9pkmffs7p4z09ggmy37ifzf7yk1p19";
+    sha256 = "00qgzm5mqx0j8f0fznhnw76l9pjyw3lxirvy8ssq59nqqjbb08pg";
   };
 
   nativeBuildInputs = [ qtscript extra-cmake-modules kdoctools ];
diff --git a/nixpkgs/pkgs/applications/editors/quartus-prime/default.nix b/nixpkgs/pkgs/applications/editors/quartus-prime/default.nix
index 093635b10e42..7ad2a3247df2 100644
--- a/nixpkgs/pkgs/applications/editors/quartus-prime/default.nix
+++ b/nixpkgs/pkgs/applications/editors/quartus-prime/default.nix
@@ -24,7 +24,7 @@ let
   ) deviceIds;
 
   quartus = stdenv.mkDerivation rec {
-    version = "19.1.0.670";
+    version = "20.1.0.711";
     pname = "quartus-prime-lite-unwrapped";
 
     src = let
@@ -34,12 +34,12 @@ let
       };
 
       hashes = {
-        "arria_lite" = "1flj9w0vb2p9f9zll136izr6qvmxn0lg72bvaqxs3sxc9vj06wm1";
-        "cyclonev" = "0bqxpvjgph0y6slk0jq75mcqzglmqkm0jsx10y9xz5llm6zxzqab";
-        "cyclone" = "0pzs8y4s3snxg4g6lrb21qi88abm48g279xzd98qv17qxb2z82rr";
-        "cyclone10lp" = "1ccxq8n20y40y47zddkijcv41w3cddvydddr3m4844q31in3nxha";
-        "max" = "1cxzbqscxvlcy74dpqmvlnxjyyxfwcx3spygpvpwi6dfj3ipgm2z";
-        "max10" = "14k83javivbk65mpb17wdwsyb8xk7x9gzj9x0wnd24mmijrvdy9s";
+        "arria_lite" = "09g2knq23h3vj0s5y7hsdnqbbkr3pnv53dzpqcw2lq9mb5zfs9r0";
+        "cyclonev" = "05hrpysasyfb7xhxg68spdffxyvxcx0iagibd5jz643b7n6aalpa";
+        "cyclone" = "1x3rnwsvzrb5kwdz35sbcabxmcvj8xxpnjlpcjwfc69ybiyr6sgz";
+        "cyclone10lp" = "1x6d4hm697mjgzaxixrw5va8anr6ihhx96x2524r6axpwqf6wcja";
+        "max" = "060b7v0xh86kkjyiix7akfkzhx2kl1b3q117kp7xibnz6yrzwmy3";
+        "max10" = "05840l9pmqa4i1b3ajfaxkqz1hppls556vbq16a42acz2qs2g578";
       };
 
       devicePackages = map (id: {
@@ -48,10 +48,10 @@ let
       }) (lib.attrValues supportedDeviceIds);
     in map require ([{
       name = "QuartusLiteSetup-${version}-linux.run";
-      sha256 = "15vxvqxqdk29ahlw3lkm1nzxyhzy4626wb9s5f2h6sjgq64r8m7f";
+      sha256 = "07ssrv8p8kacal6xd80n4h7l5xz13aw1m1gfqqaxig0ivsj971z5";
     } {
       name = "ModelSimSetup-${version}-linux.run";
-      sha256 = "0j1vfr91jclv88nam2plx68arxmz4g50sqb840i60wqd5b0l3y6r";
+      sha256 = "0smxasrmr1c8k6hy378knskpjmz4cgpgb35v5jclns0kx68y3c42";
     }] ++ devicePackages);
 
     nativeBuildInputs = [ unstick ];
@@ -81,9 +81,6 @@ let
         --disable-components ${lib.concatStringsSep "," disabledComponents} \
         --mode unattended --installdir $out --accept_eula 1
 
-      # This patch is from https://wiki.archlinux.org/index.php/Altera_Design_Software
-      patch --force --strip 0 --directory $out < ${./vsim.patch}
-
       rm -r $out/uninstall $out/logs
     '';
 
diff --git a/nixpkgs/pkgs/applications/editors/quartus-prime/vsim.patch b/nixpkgs/pkgs/applications/editors/quartus-prime/vsim.patch
deleted file mode 100644
index 36dc41b7ef14..000000000000
--- a/nixpkgs/pkgs/applications/editors/quartus-prime/vsim.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- modelsim_ase/vco     	1970-01-01 01:00:01.000000000 +0100
-+++ modelsim_ase/vco      	1970-01-01 01:00:01.000000000 +0100
-@@ -207,7 +207,7 @@
-           2.[5-9]*)         vco="linux" ;;
-           2.[1-9][0-9]*)    vco="linux" ;;
-           3.[0-9]*)    		vco="linux" ;;
--          *)                vco="linux_rh60" ;;
-+          *)                vco="linux" ;;
-         esac
-         if [ ! -x "$dir/$vco/vsim" ]; then
-           if [ -x "$dir/linuxle/vsim" ]; then
diff --git a/nixpkgs/pkgs/applications/editors/quilter/default.nix b/nixpkgs/pkgs/applications/editors/quilter/default.nix
index 8fa85ab75570..4d1cf5dafb76 100644
--- a/nixpkgs/pkgs/applications/editors/quilter/default.nix
+++ b/nixpkgs/pkgs/applications/editors/quilter/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchFromGitHub, pkgconfig, meson, ninja, python3, vala
+{ stdenv, fetchFromGitHub, nix-update-script, pkgconfig, meson, ninja, python3, vala
 , gtk3, desktop-file-utils, gtksourceview, webkitgtk, gtkspell3, pantheon
 , libgee, discount, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "quilter";
-  version = "2.2.4";
+  version = "2.5.0";
 
   src = fetchFromGitHub {
     owner = "lainsce";
     repo = pname;
     rev = version;
-    sha256 = "0xmnfqqdn7p84aksb8yzs14ikgy5driylr6m4p5ffsb6i9aa0i9h";
+    sha256 = "0622mh46z3fi6zvipmgj8k4d4gj1c2781l10frk7wqq1sysjrxps";
   };
 
   nativeBuildInputs = [
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/editors/setzer/default.nix b/nixpkgs/pkgs/applications/editors/setzer/default.nix
index 5a0ef754db16..46dc413971d9 100644
--- a/nixpkgs/pkgs/applications/editors/setzer/default.nix
+++ b/nixpkgs/pkgs/applications/editors/setzer/default.nix
@@ -17,13 +17,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "setzer";
-  version = "0.2.8";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "cvfosammmm";
     repo = "Setzer";
     rev = "v${version}";
-    sha256 = "1llxxjj038nd2p857bjdyyhzskn56826qi259v47vaqlv9hkifil";
+    sha256 = "1c7jrq20m53y2k8lmh37zldgc3bndldxipx4xq0lz3qq2fv1gg07";
   };
 
   format = "other";
diff --git a/nixpkgs/pkgs/applications/editors/sigil/default.nix b/nixpkgs/pkgs/applications/editors/sigil/default.nix
index cbb9f7bd5b87..869c20c1d6c4 100644
--- a/nixpkgs/pkgs/applications/editors/sigil/default.nix
+++ b/nixpkgs/pkgs/applications/editors/sigil/default.nix
@@ -1,18 +1,18 @@
 { stdenv, mkDerivation, fetchFromGitHub, cmake, pkgconfig, makeWrapper
-, boost, xercesc
-, qtbase, qttools, qtwebkit, qtxmlpatterns
-, python3, python3Packages
+, boost, xercesc, hunspell, zlib, pcre16
+, qtbase, qttools, qtwebengine, qtxmlpatterns
+, python3Packages
 }:
 
 mkDerivation rec {
   pname = "sigil";
-  version = "0.9.14";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
-    sha256 = "0fmfbfpnmhclbbv9cbr1xnv97si6ls7331kk3ix114iqkngqwgl1";
-    rev = version;
     repo = "Sigil";
     owner = "Sigil-Ebook";
+    rev = version;
+    sha256 = "02bkyi9xpaxdcivm075y3praxgvfay9z0189gvr6g8yc3ml1miyr";
   };
 
   pythonPath = with python3Packages; [ lxml ];
@@ -20,8 +20,9 @@ mkDerivation rec {
   nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
 
   buildInputs = [
-    boost xercesc qtbase qttools qtwebkit qtxmlpatterns
-    python3Packages.lxml ];
+    boost xercesc qtbase qttools qtwebengine qtxmlpatterns
+    python3Packages.lxml
+  ];
 
   dontWrapQtApps = true;
 
diff --git a/nixpkgs/pkgs/applications/editors/texstudio/default.nix b/nixpkgs/pkgs/applications/editors/texstudio/default.nix
index 94837023ca0d..7f92c4d492cb 100644
--- a/nixpkgs/pkgs/applications/editors/texstudio/default.nix
+++ b/nixpkgs/pkgs/applications/editors/texstudio/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "texstudio";
-  version = "2.12.22";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     owner = "${pname}-org";
     repo = pname;
     rev = version;
-    sha256 = "037jvsfln8wav17qj9anxz2a7p51v7ky85wmhdj2hgwp40al651g";
+    sha256 = "18ad85y4hrsvp7gs50dfg08cz40vbakb9hs8gw4cvi7r17vds5ar";
   };
 
   nativeBuildInputs = [ qmake wrapQtAppsHook pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/editors/tiled/default.nix b/nixpkgs/pkgs/applications/editors/tiled/default.nix
index 07a8e7619b1a..4b032d48ebf4 100644
--- a/nixpkgs/pkgs/applications/editors/tiled/default.nix
+++ b/nixpkgs/pkgs/applications/editors/tiled/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "tiled";
-  version = "1.3.5";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "bjorn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0d1bs909vga1k494xnggq1mcjfxjrwa4acc0mj5rv73xqkc9mb2s";
+    sha256 = "0b3xjcc86vs9lfxr7xann9d43dz3v3x1g7j1mcn31sy2n68a1wx3";
   };
 
   nativeBuildInputs = [ pkgconfig qmake ];
diff --git a/nixpkgs/pkgs/applications/editors/typora/default.nix b/nixpkgs/pkgs/applications/editors/typora/default.nix
index 583229eb8684..3c55cffdcf12 100644
--- a/nixpkgs/pkgs/applications/editors/typora/default.nix
+++ b/nixpkgs/pkgs/applications/editors/typora/default.nix
@@ -2,7 +2,7 @@
 , lib
 , fetchurl
 , makeWrapper
-, electron_5
+, electron_9
 , dpkg
 , gtk3
 , glib
@@ -12,13 +12,16 @@
 , pandoc
 }:
 
+let
+  electron = electron_9;
+in
 stdenv.mkDerivation rec {
   pname = "typora";
-  version = "0.9.73";
+  version = "0.9.95";
 
   src = fetchurl {
     url = "https://www.typora.io/linux/typora_${version}_amd64.deb";
-    sha256 = "1fgcb4bx5pw8ah5j30d38gw7qi1cmqarfhvgdns9f2n0d57bvvw3";
+    sha256 = "0kgzk7z707vlbjrvykrnw2h6wscmc3h5hxycyz1z1j2cz26fns4p";
   };
 
   nativeBuildInputs = [
@@ -33,7 +36,8 @@ stdenv.mkDerivation rec {
     gtk3
   ];
 
-  unpackPhase = "dpkg-deb -x $src .";
+  # The deb contains setuid permission on `chrome-sandbox`, which will actually not get installed.
+  unpackPhase = "dpkg-deb --fsys-tarfile $src | tar -x --no-same-permissions --no-same-owner";
 
   dontWrapGApps = true;
 
@@ -51,7 +55,7 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    makeWrapper ${electron_5}/bin/electron $out/bin/typora \
+    makeWrapper ${electron}/bin/electron $out/bin/typora \
       --add-flags $out/share/typora \
       "''${gappsWrapperArgs[@]}" \
       ${lib.optionalString withPandoc ''--prefix PATH : "${lib.makeBinPath [ pandoc ]}"''} \
diff --git a/nixpkgs/pkgs/applications/editors/vim/common.nix b/nixpkgs/pkgs/applications/editors/vim/common.nix
index 47e71e2da4d1..4ae7600f4a1d 100644
--- a/nixpkgs/pkgs/applications/editors/vim/common.nix
+++ b/nixpkgs/pkgs/applications/editors/vim/common.nix
@@ -1,12 +1,12 @@
 { lib, fetchFromGitHub }:
 rec {
-  version = "8.2.0701";
+  version = "8.2.1522";
 
   src = fetchFromGitHub {
     owner = "vim";
     repo = "vim";
     rev = "v${version}";
-    sha256 = "1cbh2nhbvhp4kclc9fd8gqij2vi11c5zwdwn1nzg805k06hwmsrp";
+    sha256 = "0dah3392cq06pagik5y7kcq61mslqvfsh7vqldv3kvhr5ilqb8qy";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/editors/vim/configurable.nix b/nixpkgs/pkgs/applications/editors/vim/configurable.nix
index 3b37c805cdd7..77d7ca983cdd 100644
--- a/nixpkgs/pkgs/applications/editors/vim/configurable.nix
+++ b/nixpkgs/pkgs/applications/editors/vim/configurable.nix
@@ -1,5 +1,3 @@
-# TODO tidy up eg The patchelf code is patching gvim even if you don't build it..
-# but I have gvim with python support now :) - Marc
 { source ? "default", callPackage, stdenv, ncurses, pkgconfig, gettext
 , writeText, config, glib, gtk2-x11, gtk3-x11, lua, python, perl, tcl, ruby
 , libX11, libXext, libSM, libXpm, libXt, libXaw, libXau, libXmu
@@ -104,6 +102,8 @@ in stdenv.mkDerivation rec {
   ++ stdenv.lib.optionals luaSupport [
     "--with-lua-prefix=${lua}"
     "--enable-luainterp"
+  ] ++ stdenv.lib.optional lua.pkgs.isLuaJIT [
+    "--with-luajit"
   ]
   ++ stdenv.lib.optionals pythonSupport [
     "--enable-python${if isPython3 then "3" else ""}interp=yes"
@@ -154,7 +154,12 @@ in stdenv.mkDerivation rec {
   '' + stdenv.lib.optionalString stdenv.isLinux ''
     patchelf --set-rpath \
       "$(patchelf --print-rpath $out/bin/vim):${stdenv.lib.makeLibraryPath buildInputs}" \
-      "$out"/bin/{vim,gvim}
+      "$out"/bin/vim
+    if [[ -e "$out"/bin/gvim ]]; then
+      patchelf --set-rpath \
+        "$(patchelf --print-rpath $out/bin/vim):${stdenv.lib.makeLibraryPath buildInputs}" \
+        "$out"/bin/gvim
+    fi
 
     ln -sfn '${nixosRuntimepath}' "$out"/share/vim/vimrc
   '' + stdenv.lib.optionalString wrapPythonDrv ''
diff --git a/nixpkgs/pkgs/applications/editors/vim/qvim.nix b/nixpkgs/pkgs/applications/editors/vim/qvim.nix
deleted file mode 100644
index 0e3a4a150526..000000000000
--- a/nixpkgs/pkgs/applications/editors/vim/qvim.nix
+++ /dev/null
@@ -1,113 +0,0 @@
-args@{ fetchgit, stdenv, ncurses, pkgconfig, gettext
-, lib, config, python, perl, tcl, ruby, qt4
-, libX11, libXext, libSM, libXpm, libXt, libXaw, libXau, libXmu
-, libICE
-, lua
-, features
-, luaSupport       ? config.vim.lua or true
-, perlSupport      ? config.vim.perl or false      # Perl interpreter
-, pythonSupport    ? config.vim.python or true
-, rubySupport      ? config.vim.ruby or true
-, nlsSupport       ? config.vim.nls or false
-, tclSupport       ? config.vim.tcl or false
-, multibyteSupport ? config.vim.multibyte or false
-, cscopeSupport    ? config.vim.cscope or false
-, netbeansSupport  ? config.netbeans or true # eg envim is using it
-
-# by default, compile with darwin support if we're compiling on darwin, but
-# allow this to be disabled by setting config.vim.darwin to false
-, darwinSupport    ? stdenv.isDarwin && (config.vim.darwin or true)
-
-# add .nix filetype detection and minimal syntax highlighting support
-, ftNixSupport     ? config.vim.ftNix or true
-
-, ... }: with args;
-
-let tag = "20140827";
-    sha256 = "0ncgbcm23z25naicxqkblz0mcl1zar2qwgi37y5ar8q8884w9ml2";
-in {
-
-  name = "qvim-7.4." + tag;
-
-  enableParallelBuilding = true; # test this
-
-  src = fetchgit {
-    url = "https://bitbucket.org/equalsraf/vim-qt.git";
-    rev = "refs/tags/package-" + tag;
-    inherit sha256;
-  };
-
-  # FIXME: adopt Darwin fixes from vim/default.nix, then chage meta.platforms.linux
-  # to meta.platforms.unix
-  preConfigure = assert (! stdenv.isDarwin); "";
-
-  configureFlags = [
-    "--with-vim-name=qvim"
-    "--enable-gui=qt"
-    "--with-features=${features}"
-    "--disable-xsmp"
-    "--disable-xsmp_interact"
-    "--disable-workshop"          # Sun Visual Workshop support
-    "--disable-sniff"             # Sniff interface
-    "--disable-hangulinput"       # Hangul input support
-    "--disable-fontset"           # X fontset output support
-    "--disable-acl"               # ACL support
-    "--disable-gpm"               # GPM (Linux mouse daemon)
-    "--disable-mzscheme"
-  ]
-  ++ stdenv.lib.optionals luaSupport [
-    "--with-lua-prefix=${lua}"
-    "--enable-luainterp"
-  ]
-  ++ stdenv.lib.optional pythonSupport      "--enable-pythoninterp"
-  ++ stdenv.lib.optional (pythonSupport && stdenv.isDarwin) "--with-python-config-dir=${python}/lib"
-  ++ stdenv.lib.optional nlsSupport         "--enable-nls"
-  ++ stdenv.lib.optional perlSupport        "--enable-perlinterp"
-  ++ stdenv.lib.optional rubySupport        "--enable-rubyinterp"
-  ++ stdenv.lib.optional tclSupport         "--enable-tcl"
-  ++ stdenv.lib.optional multibyteSupport   "--enable-multibyte"
-  ++ stdenv.lib.optional darwinSupport      "--enable-darwin"
-  ++ stdenv.lib.optional cscopeSupport      "--enable-cscope";
-
-  nativeBuildInputs = [ ncurses pkgconfig libX11 libXext libSM libXpm libXt libXaw
-    libXau libXmu libICE qt4
-  ]
-  ++ stdenv.lib.optional nlsSupport gettext
-  ++ stdenv.lib.optional perlSupport perl
-  ++ stdenv.lib.optional pythonSupport python
-  ++ stdenv.lib.optional tclSupport tcl
-  ++ stdenv.lib.optional rubySupport ruby
-  ++ stdenv.lib.optional luaSupport lua
-  ;
-
-  postPatch = ''
-  '' + stdenv.lib.optionalString ftNixSupport ''
-    # because we cd to src in the main patch phase, we can't just add this
-    # patch to the list, we have to apply it manually
-    cd runtime
-    patch -p2 < ${./ft-nix-support.patch}
-    cd ..
-  '';
-
-  postInstall = stdenv.lib.optionalString stdenv.isLinux ''
-    rpath=`patchelf --print-rpath $out/bin/qvim`;
-    for i in $nativeBuildInputs; do
-      echo adding $i/lib
-      rpath=$rpath:$i/lib
-    done
-    echo $nativeBuildInputs
-    echo $rpath
-    patchelf --set-rpath $rpath $out/bin/qvim
-  '';
-
-  dontStrip = 1;
-
-  meta = with stdenv.lib; {
-    description = "The most popular clone of the VI editor (Qt GUI fork)";
-    homepage    = "https://bitbucket.org/equalsraf/vim-qt/wiki/Home";
-    license = licenses.vim;
-    maintainers = with maintainers; [ smironov ttuegel ];
-    platforms   = platforms.linux;
-  };
-}
-
diff --git a/nixpkgs/pkgs/applications/editors/viw/default.nix b/nixpkgs/pkgs/applications/editors/viw/default.nix
new file mode 100644
index 000000000000..4025bf252b30
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/viw/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+  pname = "viw";
+  version = "unstable-20171029";
+
+  src = fetchFromGitHub {
+    owner = "lpan";
+    repo = pname;
+    rev = "2cf317f6d82a6fa58f284074400297b6dc0f44c2";
+    sha256 = "0bnkh57v01zay6ggk0rbddaf75i48h8z06xsv33wfbjldclaljp1";
+  };
+
+  buildInputs = [ ncurses ];
+
+  makeFlags = [ "CC=cc" ];
+  checkFlags = [ "test-command" "test-buffer" "test-state" ];
+
+  installPhase = ''
+    install -Dm 755 -t $out/bin viw
+    install -Dm 644 -t $out/share/doc/${pname} README.md
+  '';
+
+  meta = with stdenv.lib; {
+    description = "VI Worsened, a fun and light clone of VI";
+    homepage = "https://github.com/lpan/viw";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/editors/vscode/generic.nix b/nixpkgs/pkgs/applications/editors/vscode/generic.nix
index 38d695bd74ac..57bd73d60192 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/generic.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/generic.nix
@@ -62,7 +62,7 @@ in
       else [ gtk2 at-spi2-atk wrapGAppsHook ] ++ atomEnv.packages)
         ++ [ libsecret libXScrnSaver ];
 
-    runtimeDependencies = lib.optional (stdenv.isLinux) [ systemd.lib fontconfig.lib ];
+    runtimeDependencies = lib.optional (stdenv.isLinux) [ (lib.getLib systemd) fontconfig.lib ];
 
     nativeBuildInputs = lib.optional (!stdenv.isDarwin) autoPatchelfHook;
 
diff --git a/nixpkgs/pkgs/applications/editors/vscode/update.sh b/nixpkgs/pkgs/applications/editors/vscode/update.sh
index d573fdf04aaf..c030e38a70a0 100755
--- a/nixpkgs/pkgs/applications/editors/vscode/update.sh
+++ b/nixpkgs/pkgs/applications/editors/vscode/update.sh
@@ -1,6 +1,8 @@
 #!/usr/bin/env nix-shell
 #!nix-shell -i bash -p curl gnugrep gnused gawk
 
+set -eou pipefail
+
 ROOT="$(dirname "$(readlink -f "$0")")"
 if [ ! -f "$ROOT/vscode.nix" ]; then
   echo "ERROR: cannot find vscode.nix in $ROOT"
@@ -36,4 +38,4 @@ sed -i "s/x86_64-linux = \".\{52\}\"/x86_64-linux = \"${VSCODIUM_LINUX_SHA256}\"
 
 VSCODIUM_DARWIN_URL="https://github.com/VSCodium/vscodium/releases/download/${VSCODIUM_VER}/VSCodium-darwin-${VSCODIUM_VER}.zip"
 VSCODIUM_DARWIN_SHA256=$(nix-prefetch-url ${VSCODIUM_DARWIN_URL})
-sed -i "s/x86_64-darwin = \".\{52\}\"/x86_64-darwin = \"${VSCODIUM_DARWIN_SHA256}\"/" "$ROOT/vscodium.nix"
\ No newline at end of file
+sed -i "s/x86_64-darwin = \".\{52\}\"/x86_64-darwin = \"${VSCODIUM_DARWIN_SHA256}\"/" "$ROOT/vscodium.nix"
diff --git a/nixpkgs/pkgs/applications/editors/vscode/vscode.nix b/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
index 7ca981b2958d..a99cba67d3cf 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/vscode.nix
@@ -11,8 +11,8 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "0hmmqdamsjhjy1q8m85bs081cwmskpsp57rkj7vc2wj918wgissm";
-    x86_64-darwin = "00xwvi53h9rnwyba12jmsp6grkymmn6vjibypaxb96q7q7p894gh";
+    x86_64-linux = "1kgvwcwkdvywsiyg86srfzcq6jcas6hyi9ds4qvndsnd64j0fgkn";
+    x86_64-darwin = "03jci05psxkknpjrrgjpdxsii2xyf5cfpkhrp5nnfafb5acfvs1x";
   }.${system};
 in
   callPackage ./generic.nix rec {
@@ -21,7 +21,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.46.0";
+    version = "1.49.1";
     pname = "vscode";
 
     executableName = "code" + lib.optionalString isInsiders "-insiders";
diff --git a/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix b/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
index fd48a4b1084e..d311e644a293 100644
--- a/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
+++ b/nixpkgs/pkgs/applications/editors/vscode/vscodium.nix
@@ -11,8 +11,8 @@ let
   archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "088nsflscak315704vqnh8m4q7601fczglbhdz5i70kfyg89ar4w";
-    x86_64-darwin = "0fxpx1ydsag4gyn2kq5ddq55lpw15w176p3fypk80fyfix4kziqf";
+    x86_64-linux = "10v13j1zg1bpgmr99vqhs1gwcipvnbkln0w6yphwn9440fw9fyp4";
+    x86_64-darwin = "1mgi2awrqsm11l1yb8rgmfrxvjfn9z3qvp5np76vgbaibq2ihh0k";
   }.${system};
 
   sourceRoot = {
@@ -27,7 +27,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.46.0";
+    version = "1.49.1";
     pname = "vscodium";
 
     executableName = "codium";
diff --git a/nixpkgs/pkgs/applications/editors/xxe-pe/default.nix b/nixpkgs/pkgs/applications/editors/xxe-pe/default.nix
new file mode 100644
index 000000000000..e7cfe6284e35
--- /dev/null
+++ b/nixpkgs/pkgs/applications/editors/xxe-pe/default.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, fetchurl
+, lib
+, unzip
+, makeWrapper
+, openjdk11
+, makeDesktopItem
+, icoutils
+, config
+, acceptLicense ? config.xxe-pe.acceptLicense or false
+}:
+
+let
+  pkg_path = "$out/lib/xxe";
+
+  desktopItem = makeDesktopItem {
+    name = "XMLmind XML Editor Personal Edition";
+    exec = "xxe";
+    icon = "xxe";
+    desktopName = "xxe";
+    genericName = "XML Editor";
+    categories = "Development;IDE;TextEditor;Java";
+  };
+in
+stdenv.mkDerivation rec {
+  pname = "xxe-pe";
+  version = "9.4.0";
+
+  src =
+    assert !acceptLicense -> throw ''
+      You must accept the XMLmind XML Editor Personal Edition License at
+      https://www.xmlmind.com/xmleditor/license_xxe_perso.html
+      by setting nixpkgs config option `xxe-pe.acceptLicense = true;`
+      or by using `xxe-pe.override { acceptLicense = true; }` package.
+    '';
+      fetchurl {
+        url = "https://www.xmlmind.com/xmleditor/_download/xxe-perso-${builtins.replaceStrings [ "." ] [ "_" ] version}.zip";
+        sha256 = "FKPdf9cOpgm/WG2i8bFnR6MmEifpiq5ykw2zHA8HnT8=";
+      };
+
+  nativeBuildInputs = [
+    unzip
+    makeWrapper
+    icoutils
+  ];
+
+  dontStrip = true;
+
+  installPhase = ''
+    mkdir -p "${pkg_path}"
+    mkdir -p "${pkg_path}" "$out/share/applications"
+    cp -a * "${pkg_path}"
+    ln -s ${desktopItem}/share/applications/* $out/share/applications
+
+    icotool -x "${pkg_path}/bin/icon/xxe.ico"
+    ls
+    for f in xxe_*.png; do
+      res=$(basename "$f" ".png" | cut -d"_" -f3 | cut -d"x" -f1-2)
+      mkdir -pv "$out/share/icons/hicolor/$res/apps"
+      mv "$f" "$out/share/icons/hicolor/$res/apps/xxe.png"
+    done;
+  '';
+
+  postFixup = ''
+    mkdir -p "$out/bin"
+    makeWrapper "${pkg_path}/bin/xxe" "$out/bin/xxe" \
+      --prefix PATH : ${lib.makeBinPath [ openjdk11 ]}
+  '';
+
+  meta = with lib; {
+    description = "Strictly validating, near WYSIWYG, XML editor with DocBook support";
+    homepage = "https://www.xmlmind.com/xmleditor/";
+    license = licenses.unfree;
+    maintainers = [ maintainers.jtojnar ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/gis/gmt/dcw.nix b/nixpkgs/pkgs/applications/gis/gmt/dcw.nix
new file mode 100644
index 000000000000..58390e892903
--- /dev/null
+++ b/nixpkgs/pkgs/applications/gis/gmt/dcw.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "dcw-gmt";
+  version = "1.1.4";
+  src = fetchurl {
+    url = "ftp://ftp.soest.hawaii.edu/gmt/dcw-gmt-${version}.tar.gz";
+    sha256 = "8d47402abcd7f54a0f711365cd022e4eaea7da324edac83611ca035ea443aad3";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/dcw-gmt
+    cp -rv ./* $out/share/dcw-gmt
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://www.soest.hawaii.edu/pwessel/dcw/";
+    description = "Vector basemap of the world, for use with GMT";
+    longDescription = ''
+      DCW-GMT is an enhancement to the original 1:1,000,000 scale vector basemap
+      of the world, available from the Princeton University Digital Map and
+      Geospatial Information Center. It contains more state boundaries (the
+      largest 8 countries are now represented) than the original data
+      source. Information about DCW can be found on Wikipedia
+      (https://en.wikipedia.org/wiki/Digital_Chart_of_the_World). This data is
+      for use by GMT, the Generic Mapping Tools.
+    '';
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ tviti ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/gis/gmt/default.nix b/nixpkgs/pkgs/applications/gis/gmt/default.nix
new file mode 100644
index 000000000000..f045ec067fee
--- /dev/null
+++ b/nixpkgs/pkgs/applications/gis/gmt/default.nix
@@ -0,0 +1,73 @@
+{ stdenv, fetchurl, cmake, curl, Accelerate, CoreGraphics, CoreVideo
+, fftwSinglePrec, netcdf, pcre, gdal, blas, lapack, glibc, ghostscript, dcw-gmt
+, gshhg-gmt }:
+
+/* The onus is on the user to also install:
+    - ffmpeg for webm or mp4 output
+    - graphicsmagick for gif output
+*/
+
+stdenv.mkDerivation rec {
+  pname = "gmt";
+  version = "6.1.1";
+  src = fetchurl {
+    url = "https://github.com/GenericMappingTools/gmt/releases/download/${version}/gmt-${version}-src.tar.gz";
+    sha256 = "04mdxxcild56jhg9ax522xh78v1wl1x8iqv2f6wv32x9b2lgy1lp";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ curl gdal netcdf pcre dcw-gmt gshhg-gmt ]
+    ++ (if stdenv.isDarwin then [
+      Accelerate
+      CoreGraphics
+      CoreVideo
+    ] else [
+      glibc
+      fftwSinglePrec
+      blas
+      lapack
+    ]);
+
+  propagatedBuildInputs = [ ghostscript ];
+
+  cmakeFlags = [
+    "-DGMT_DOCDIR=share/doc/gmt"
+    "-DGMT_MANDIR=share/man"
+    "-DGMT_LIBDIR=lib"
+    "-DCOPY_GSHHG:BOOL=FALSE"
+    "-DGSHHG_ROOT=${gshhg-gmt.out}/share/gshhg-gmt"
+    "-DCOPY_DCW:BOOL=FALSE"
+    "-DDCW_ROOT=${dcw-gmt.out}/share/dcw-gmt"
+    "-DGDAL_ROOT=${gdal.out}"
+    "-DNETCDF_ROOT=${netcdf.out}"
+    "-DPCRE_ROOT=${pcre.out}"
+    "-DGMT_INSTALL_TRADITIONAL_FOLDERNAMES:BOOL=FALSE"
+    "-DGMT_ENABLE_OPENMP:BOOL=TRUE"
+    "-DGMT_INSTALL_MODULE_LINKS:BOOL=FALSE"
+    "-DLICENSE_RESTRICTED=LGPL" # "GPL" and "no" also valid
+  ] ++ (with stdenv;
+    lib.optional (!isDarwin) [
+      "-DFFTW3_ROOT=${fftwSinglePrec.dev}"
+      "-DLAPACK_LIBRARY=${lapack}/lib/liblapack.so"
+      "-DBLAS_LIBRARY=${blas}/lib/libblas.so"
+    ]);
+
+  meta = with stdenv.lib; {
+    homepage = "https://www.generic-mapping-tools.org";
+    description = "Tools for manipulating geographic and cartesian data sets";
+    longDescription = ''
+      GMT is an open-source collection of command-line tools for manipulating
+      geographic and Cartesian data sets (including filtering, trend fitting,
+      gridding, projecting, etc.) and producing high-quality illustrations
+      ranging from simple x–y plots via contour maps to artificially illuminated
+      surfaces and 3D perspective views. It supports many map projections and
+      transformations and includes supporting data such as coastlines, rivers,
+      and political boundaries and optionally country polygons.
+    '';
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ tviti ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/gis/gmt/gshhg.nix b/nixpkgs/pkgs/applications/gis/gmt/gshhg.nix
new file mode 100644
index 000000000000..0f22f87c89b5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/gis/gmt/gshhg.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "gshhg-gmt";
+  version = "2.3.7";
+  src = fetchurl {
+    url = "ftp://ftp.soest.hawaii.edu/gmt/gshhg-gmt-${version}.tar.gz";
+    sha256 = "9bb1a956fca0718c083bef842e625797535a00ce81f175df08b042c2a92cfe7f";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/gshhg-gmt
+    cp -rv ./* $out/share/gshhg-gmt
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://www.soest.hawaii.edu/pwessel/gshhg/";
+    description = "High-resolution shoreline data set, for use with GMT";
+    longDescription = ''
+      GSHHG is a high-resolution shoreline data set amalgamated from two
+      databases: Global Self-consistent Hierarchical High-resolution Shorelines
+      (GSHHS) and CIA World Data Bank II (WDBII). GSHHG contains vector
+      descriptions at five different resolutions of land outlines, lakes,
+      rivers, and political boundaries. This data is for use by GMT, the Generic
+      Mapping Tools.
+    '';
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ tviti ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix b/nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix
index 39f8694dd177..540fa2718975 100644
--- a/nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix
+++ b/nixpkgs/pkgs/applications/gis/openorienteering-mapper/default.nix
@@ -56,8 +56,6 @@ mkDerivation rec {
     "-DLICENSING_PROVIDER:BOOL=OFF"
     "-DMapper_MANUAL_QTHELP:BOOL=OFF"
   ] ++ stdenv.lib.optionals stdenv.isDarwin [
-    # Usually enabled on Darwin
-    "-DCMAKE_FIND_FRAMEWORK=never"
     # FindGDAL is broken and always finds /Library/Framework unless this is
     # specified
     "-DGDAL_INCLUDE_DIR=${gdal}/include"
diff --git a/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix b/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix
index 2e11f22f517b..130c0af6ee20 100644
--- a/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix
+++ b/nixpkgs/pkgs/applications/gis/qgis/unwrapped.nix
@@ -10,7 +10,7 @@ let
     [ qscintilla-qt5 gdal jinja2 numpy psycopg2
       chardet dateutil pyyaml pytz requests urllib3 pygments pyqt5 sip owslib six ];
 in mkDerivation rec {
-  version = "3.10.4";
+  version = "3.10.9";
   pname = "qgis";
   name = "${pname}-unwrapped-${version}";
 
@@ -18,7 +18,7 @@ in mkDerivation rec {
     owner = "qgis";
     repo = "QGIS";
     rev = "final-${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "0d1rsgjgnnq6jgms5bgppz8lkh4518nf90fk0qvxajdfi9j4jn12";
+    sha256 = "0d646hvrhhgsw789qc2g3iblmsvr64qh15jck1jkaljzrj3qbml6";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/applications/gis/saga/default.nix b/nixpkgs/pkgs/applications/gis/saga/default.nix
index 053272b1efa7..aa418148209e 100644
--- a/nixpkgs/pkgs/applications/gis/saga/default.nix
+++ b/nixpkgs/pkgs/applications/gis/saga/default.nix
@@ -1,27 +1,90 @@
-{ stdenv, fetchurl, gdal, wxGTK30, proj, libiodbc, lzma,
-  libharu, opencv2, vigra, postgresql, Cocoa,
-  unixODBC , poppler, hdf4, hdf5, netcdf, sqlite, qhull, giflib }:
+{ stdenv
+, fetchurl
+# native
+, autoreconfHook
+, pkg-config
+# not native
+, gdal
+, wxGTK31-gtk3
+, proj
+, dxflib
+, curl
+, libiodbc
+, lzma
+, libharu
+, opencv
+, vigra
+, postgresql
+, Cocoa
+, unixODBC
+, poppler
+, hdf4
+, hdf5
+, netcdf
+, sqlite
+, qhull
+, giflib
+, libsvm
+, fftw
+}:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "saga";
-  version = "7.6.3";
+  version = "7.7.0";
 
+  src = fetchurl {
+    url = "https://sourceforge.net/projects/saga-gis/files/SAGA%20-%20${stdenv.lib.versions.major version}/SAGA%20-%20${version}/saga-${version}.tar.gz";
+    sha256 = "1nmvrlcpcm2pas9pnav13iydnym9d8yqqnwq47lm0j6b0a2wy9zk";
+  };
+
+  nativeBuildInputs = [
+    # Upstream's gnerated ./configure is not reliable
+    autoreconfHook
+    pkg-config
+  ];
+  configureFlags = [
+    "--with-system-svm"
+    # hdf is no detected otherwise
+    "HDF5_LIBS=-l${hdf5}/lib"
+    "HDF5_CFLAGS=-I${hdf5.dev}/include"
+  ];
+  buildInputs = [
+    curl
+    dxflib
+    fftw
+    libsvm
+    hdf5
+    gdal
+    wxGTK31-gtk3
+    proj
+    libharu
+    opencv
+    vigra
+    postgresql
+    libiodbc
+    lzma
+    qhull
+    giflib
+  ]
   # See https://groups.google.com/forum/#!topic/nix-devel/h_vSzEJAPXs
   # for why the have additional buildInputs on darwin
-  buildInputs = [ gdal wxGTK30 proj libharu opencv2 vigra postgresql libiodbc lzma
-                  qhull giflib ]
-                ++ stdenv.lib.optionals stdenv.isDarwin
-                  [ Cocoa unixODBC poppler hdf4.out hdf5 netcdf sqlite ];
+  ++ stdenv.lib.optionals stdenv.isDarwin [
+    Cocoa
+    unixODBC
+    poppler
+    netcdf
+    sqlite
+  ];
+
+  patches = [
+    # See https://sourceforge.net/p/saga-gis/bugs/280/
+    ./opencv4.patch
+  ];
 
   enableParallelBuilding = true;
 
   CXXFLAGS = stdenv.lib.optionalString stdenv.cc.isClang "-std=c++11 -Wno-narrowing";
 
-  src = fetchurl {
-    url = "https://sourceforge.net/projects/saga-gis/files/SAGA%20-%207/SAGA%20-%207.6.3/saga-7.6.3.tar.gz";
-    sha256 = "0f1qy2y929gd9y7h45bkv9x71xapbzyn06v6wqivjaiydsi1qycb";
-  };
-
   meta = with stdenv.lib; {
     description = "System for Automated Geoscientific Analyses";
     homepage = "http://www.saga-gis.org";
diff --git a/nixpkgs/pkgs/applications/gis/saga/opencv4.patch b/nixpkgs/pkgs/applications/gis/saga/opencv4.patch
new file mode 100644
index 000000000000..0b26192bf09b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/gis/saga/opencv4.patch
@@ -0,0 +1,14 @@
+--- a/src/tools/imagery/imagery_opencv/Makefile.am
++++ b/src/tools/imagery/imagery_opencv/Makefile.am
+@@ -7,9 +7,9 @@
+ 
+ if HAVE_CV
+ DEF_SAGA           = -D_SAGA_LINUX -D_TYPEDEF_BYTE -D_TYPEDEF_WORD
+-CXX_INCS           = -I$(top_srcdir)/src/saga_core -I/usr/include/opencv
++CXX_INCS           = -I$(top_srcdir)/src/saga_core `pkg-config opencv4 --cflags`
+ AM_CXXFLAGS        = -fPIC $(CXX_INCS) $(DEF_SAGA) $(DBGFLAGS) $(GOMPFLAGS)
+-AM_LDFLAGS         = -fPIC -shared -avoid-version `pkg-config opencv --libs`
++AM_LDFLAGS         = -fPIC -shared -avoid-version `pkg-config opencv4 --libs`
+ pkglib_LTLIBRARIES = libimagery_opencv.la
+ libimagery_opencv_la_SOURCES =\
+ MLB_Interface.cpp\
diff --git a/nixpkgs/pkgs/applications/gis/whitebox-tools/default.nix b/nixpkgs/pkgs/applications/gis/whitebox-tools/default.nix
index d81a08e29008..0ac19c0d1336 100644
--- a/nixpkgs/pkgs/applications/gis/whitebox-tools/default.nix
+++ b/nixpkgs/pkgs/applications/gis/whitebox-tools/default.nix
@@ -1,27 +1,23 @@
 { stdenv, rustPlatform , fetchFromGitHub, Security }:
 rustPlatform.buildRustPackage rec {
   pname = "whitebox_tools";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "jblindsay";
     repo = "whitebox-tools";
     rev = "v${version}";
-    sha256 = "0zi32d0wrbl2763dcllv2g0liwacsfiza5lkx52620prjjbhby8i";
+    sha256 = "0c9jmfjz6ys65y65zlllv9xvaaavr9jpqc1dc217iywhj07j8k2v";
   };
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
-  cargoSha256 = "13k21akyfqgamywj39bw73sldby1s02vyvxfglxbaqq1x96xcy4i";
-
-  # failures: structures::polyline::test::test_polyline_split
-  doCheck = false;
+  cargoSha256 = "05w2jimmygg7dc93i8bpjpjc5yj5xfpfkjnbbgw2sq4kh06r5ii4";
 
   meta = with stdenv.lib; {
     description = "An advanced geospatial data analysis platform";
-    homepage = "http://www.uoguelph.ca/~hydrogeo/WhiteboxTools/index.html";
+    homepage = "https://jblindsay.github.io/ghrg/WhiteboxTools/index.html";
     license = licenses.mit;
     maintainers = [ maintainers.mpickering ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix b/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix
index 9bcf517e1d9e..e7abc94a4264 100644
--- a/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix
+++ b/nixpkgs/pkgs/applications/graphics/ImageMagick/7.0.nix
@@ -13,8 +13,8 @@ let
     else throw "ImageMagick is not supported on this platform.";
 
   cfg = {
-    version = "7.0.10-17";
-    sha256 = "15cj9qkikx13j6gfqaawi4nh09lnzg3asf5mdcswx6z6yhbf90zx";
+    version = "7.0.10-27";
+    sha256 = "1fqwbg2ws6ix3bymx7ncb4k4f6bg8q44n9xnlvngjapflnrmhcph";
     patches = [];
   };
 in
diff --git a/nixpkgs/pkgs/applications/graphics/akira/default.nix b/nixpkgs/pkgs/applications/graphics/akira/default.nix
index adbc1eac3796..4038d653a3da 100644
--- a/nixpkgs/pkgs/applications/graphics/akira/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/akira/default.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "akira";
-  version = "2019-10-12";
+  version = "0.0.13";
 
   src = fetchFromGitHub {
     owner = "akiraux";
     repo = "Akira";
-    rev = "cab952dee4591b6bde34d670c1f853f5a3ff6b19";
-    sha256 = "1fp3a79hkh6xwwqqdrx4zqq2zhsm236c6fhhl5f2nmi108yxz04q";
+    rev = "v${version}";
+    sha256 = "1i20q78jagy8xky68nmd0n7mqvh88r98kp626rnlgyzvlc3c22cm";
   };
 
   nativeBuildInputs = [
@@ -59,8 +59,6 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [ "-Dprofile=default" ];
 
-  patches = [ ./fix-build-with-vala-0-44-or-later.patch ];
-
   postPatch = ''
     chmod +x build-aux/meson/post_install.py
     patchShebangs build-aux/meson/post_install.py
@@ -70,7 +68,7 @@ stdenv.mkDerivation rec {
     description = "Native Linux Design application built in Vala and GTK";
     homepage = "https://github.com/akiraux/Akira";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ filalex77 ] ++ pantheon.maintainers;
+    maintainers = with maintainers; [ filalex77 neonfuz ] ++ pantheon.maintainers;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/akira/fix-build-with-vala-0-44-or-later.patch b/nixpkgs/pkgs/applications/graphics/akira/fix-build-with-vala-0-44-or-later.patch
deleted file mode 100644
index 3c35900c04f5..000000000000
--- a/nixpkgs/pkgs/applications/graphics/akira/fix-build-with-vala-0-44-or-later.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From bcda8fd53f6f232db0b6411269ba108af551629f Mon Sep 17 00:00:00 2001
-From: Alberto Fanjul <albertofanjul@gmail.com>
-Date: Tue, 9 Apr 2019 09:45:36 +0200
-Subject: [PATCH] Build on vala >= 0.44.2
-
----
- src/FileFormat/JsonObject.vala        |  2 +-
- src/FileFormat/JsonObjectArray.vala   |  2 +-
- src/FileFormat/ZipArchiveHandler.vala | 18 +++++++++++++++++-
- 3 files changed, 19 insertions(+), 3 deletions(-)
-
-diff --git a/src/FileFormat/JsonObject.vala b/src/FileFormat/JsonObject.vala
-index 7bfe46f..805fbad 100644
---- a/src/FileFormat/JsonObject.vala
-+++ b/src/FileFormat/JsonObject.vala
-@@ -31,7 +31,7 @@ public abstract class Akira.FileFormat.JsonObject : GLib.Object {
- 
-     private ObjectClass obj_class;
- 
--    public JsonObject.from_object (Json.Object object) {
-+    protected JsonObject.from_object (Json.Object object) {
-         Object (object: object);
-     }
- 
-diff --git a/src/FileFormat/JsonObjectArray.vala b/src/FileFormat/JsonObjectArray.vala
-index 4f6e573..d0a7dad 100644
---- a/src/FileFormat/JsonObjectArray.vala
-+++ b/src/FileFormat/JsonObjectArray.vala
-@@ -31,7 +31,7 @@ public abstract class Akira.FileFormat.JsonObjectArray : Object {
-      *
-      * Your JsonObject implementation should have it's own list of items
-      */
--    public JsonObjectArray (Json.Object object, string property_name) {
-+    protected JsonObjectArray (Json.Object object, string property_name) {
-         Object (object: object, property_name: property_name);
-     }
- 
-diff --git a/src/FileFormat/ZipArchiveHandler.vala b/src/FileFormat/ZipArchiveHandler.vala
-index ca60dd0..5d65aa2 100644
---- a/src/FileFormat/ZipArchiveHandler.vala
-+++ b/src/FileFormat/ZipArchiveHandler.vala
-@@ -262,11 +262,17 @@ public class Akira.FileFormat.ZipArchiveHandler : GLib.Object {
-                 continue;
-             }
- 
-+            Posix.off_t offset;
-+#if VALA_0_42
-+            uint8[] buffer;
-+            while (archive.read_data_block (out buffer, out offset) == Archive.Result.OK) {
-+                if (extractor.write_data_block (buffer, offset) != Archive.Result.OK) {
-+#else
-             void* buffer = null;
-             size_t buffer_length;
--            Posix.off_t offset;
-             while (archive.read_data_block (out buffer, out buffer_length, out offset) == Archive.Result.OK) {
-                 if (extractor.write_data_block (buffer, buffer_length, offset) != Archive.Result.OK) {
-+#endif
-                     break;
-                 }
-             }
-@@ -316,9 +322,15 @@ public class Akira.FileFormat.ZipArchiveHandler : GLib.Object {
-                     // Add an entry to the archive
-                     Archive.Entry entry = new Archive.Entry ();
-                     entry.set_pathname (initial_folder.get_relative_path (current_file));
-+#if VALA_0_42
-+                    entry.set_size ((Archive.int64_t) file_info.get_size ());
-+                    entry.set_filetype (Archive.FileType.IFREG);
-+                    entry.set_perm (Archive.FileType.IFREG);
-+#else
-                     entry.set_size (file_info.get_size ());
-                     entry.set_filetype ((uint) Posix.S_IFREG);
-                     entry.set_perm (0644);
-+#endif
- 
-                     if (archive.write_header (entry) != Archive.Result.OK) {
-                         critical ("Error writing '%s': %s (%d)", current_file.get_path (), archive.error_string (), archive.errno ());
-@@ -333,7 +345,11 @@ public class Akira.FileFormat.ZipArchiveHandler : GLib.Object {
-                             break;
-                         }
- 
-+#if VALA_0_42
-+                        archive.write_data (buffer[0:bytes_read]);
-+#else
-                         archive.write_data (buffer, bytes_read);
-+#endif
-                     }
-                 }
-             }
diff --git a/nixpkgs/pkgs/applications/graphics/avocode/default.nix b/nixpkgs/pkgs/applications/graphics/avocode/default.nix
index fa97ceb5eb2f..53779041fc90 100644
--- a/nixpkgs/pkgs/applications/graphics/avocode/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/avocode/default.nix
@@ -52,7 +52,7 @@ stdenv.mkDerivation rec {
     icon = "avocode";
     desktopName = "Avocode";
     genericName = "Design Inspector";
-    categories = "Application;Development;";
+    categories = "Development;";
     comment = "The bridge between designers and developers";
   };
 
diff --git a/nixpkgs/pkgs/applications/graphics/cloudcompare/default.nix b/nixpkgs/pkgs/applications/graphics/cloudcompare/default.nix
new file mode 100644
index 000000000000..209a6a4753b1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/cloudcompare/default.nix
@@ -0,0 +1,82 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, dxflib
+, eigen
+, flann
+, gdal
+, LASzip
+, libLAS
+, pdal
+, qtbase
+, qtsvg
+, qttools
+, tbb
+, xercesc
+}:
+
+mkDerivation rec {
+  pname = "cloudcompare";
+  version = "2.11.0";
+
+  src = fetchFromGitHub {
+    owner = "CloudCompare";
+    repo = "CloudCompare";
+    rev = "v${version}";
+    sha256 = "02ahhhivgb9k1aygw1m35wdvhaizag1r98mb0r6zzrs5p4y64wlb";
+    # As of writing includes (https://github.com/CloudCompare/CloudCompare/blob/a1c589c006fc325e8b560c77340809b9c7e7247a/.gitmodules):
+    # * libE57Format
+    # * PoissonRecon
+    # In > 2.11 it will also contain
+    # * CCCoreLib
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    cmake
+    eigen # header-only
+  ];
+
+  buildInputs = [
+    dxflib
+    flann
+    gdal
+    LASzip
+    libLAS
+    pdal
+    qtbase
+    qtsvg
+    qttools
+    tbb
+    xercesc
+  ];
+
+  cmakeFlags = [
+    # TODO: This will become -DCCCORELIB_USE_TBB=ON in > 2.11.0, see
+    #       https://github.com/CloudCompare/CloudCompare/commit/f5a0c9fd788da26450f3fa488b2cf0e4a08d255f
+    "-DCOMPILE_CC_CORE_LIB_WITH_TBB=ON"
+    "-DOPTION_USE_DXF_LIB=ON"
+    "-DOPTION_USE_GDAL=ON"
+    "-DOPTION_USE_SHAPE_LIB=ON"
+
+    "-DPLUGIN_GL_QEDL=ON"
+    "-DPLUGIN_GL_QSSAO=ON"
+    "-DPLUGIN_IO_QADDITIONAL=ON"
+    "-DPLUGIN_IO_QCORE=ON"
+    "-DPLUGIN_IO_QCSV_MATRIX=ON"
+    "-DPLUGIN_IO_QE57=ON"
+    "-DPLUGIN_IO_QFBX=OFF" # Autodesk FBX SDK is gratis+proprietary; not packaged in nixpkgs
+    "-DPLUGIN_IO_QPDAL=ON" # required for .las/.laz support
+    "-DPLUGIN_IO_QPHOTOSCAN=ON"
+    "-DPLUGIN_IO_QRDB=OFF" # Riegl rdblib is proprietary; not packaged in nixpkgs
+  ];
+
+  meta = with lib; {
+    description = "3D point cloud and mesh processing software";
+    homepage = "https://cloudcompare.org";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ nh2 ];
+    platforms = with platforms; linux; # only tested here; might work on others
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/darktable/default.nix b/nixpkgs/pkgs/applications/graphics/darktable/default.nix
index b021c186b5c5..71c2de08a569 100644
--- a/nixpkgs/pkgs/applications/graphics/darktable/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/darktable/default.nix
@@ -7,12 +7,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.0.2";
+  version = "3.2.1";
   pname = "darktable";
 
   src = fetchurl {
     url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
-    sha256 = "1yrnkw8c47kmy2x6m1xp69hwyk02xyc8pd9kvcmyj54lzrhzdfka";
+    sha256 = "035rvqmw386hm0jpi14lf4dnpr5rjkalzjkyprqh42nwi3m86dkf";
   };
 
   nativeBuildInputs = [ cmake ninja llvm pkgconfig intltool perl desktop-file-utils wrapGAppsHook ];
@@ -34,8 +34,6 @@ stdenv.mkDerivation rec {
     "-DUSE_KWALLET=OFF"
   ];
 
-  # Reduce the risk of collisions
-  postInstall = "rm -r $out/share/doc";
 
   # darktable changed its rpath handling in commit
   # 83c70b876af6484506901e6b381304ae0d073d3c and as a result the
@@ -45,6 +43,10 @@ stdenv.mkDerivation rec {
     libPathEnvVar = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH";
     libPathPrefix = "$out/lib/darktable" + stdenv.lib.optionalString stdenv.isLinux ":${ocl-icd}/lib";
   in ''
+    for f in $out/share/darktable/kernels/*.cl; do
+      sed -r "s|#include \"(.*)\"|#include \"$out/share/darktable/kernels/\1\"|g" -i "$f"
+    done
+
     gappsWrapperArgs+=(
       --prefix ${libPathEnvVar} ":" "${libPathPrefix}"
     )
diff --git a/nixpkgs/pkgs/applications/graphics/digikam/default.nix b/nixpkgs/pkgs/applications/graphics/digikam/default.nix
index 63b8d7b3f609..52de023e1681 100644
--- a/nixpkgs/pkgs/applications/graphics/digikam/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/digikam/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, fetchFromGitHub, cmake, doxygen, extra-cmake-modules, wrapGAppsHook
+{ mkDerivation, lib, fetchurl, cmake, doxygen, extra-cmake-modules, wrapGAppsHook
 
 # For `digitaglinktree`
 , perl, sqlite
@@ -26,7 +26,8 @@
 , exiv2
 , ffmpeg
 , flex
-, jasper ? null, withJpeg2k ? false  # disable JPEG2000 support, jasper has unfixed CVE
+, graphviz
+, imagemagick
 , lcms2
 , lensfun
 , libgphoto2
@@ -41,24 +42,24 @@
 , opencv3
 , pcre
 , threadweaver
+, x265
 
 # For panorama and focus stacking
 , enblend-enfuse
 , hugin
 , gnumake
 
+, breeze-icons
 , oxygen
 }:
 
 mkDerivation rec {
   pname   = "digikam";
-  version = "6.2.0";
+  version = "7.1.0";
 
-  src = fetchFromGitHub {
-    owner  = "KDE";
-    repo   = "digikam";
-    rev    = "v${version}";
-    sha256 = "1l1nb1nwicmip2jxhn5gzr7h60igvns0zs3kzp36r6qf4wvg3v2z";
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
+    sha256 = "1gmblnsm0aida3yynyddm6jdh59hx3w177hrhfar616z793ch0xi";
   };
 
   nativeBuildInputs = [ cmake doxygen extra-cmake-modules kdoctools wrapGAppsHook ];
@@ -70,6 +71,8 @@ mkDerivation rec {
     exiv2
     ffmpeg
     flex
+    graphviz
+    imagemagick
     lcms2
     lensfun
     libgphoto2
@@ -82,6 +85,7 @@ mkDerivation rec {
     libGLU
     opencv3
     pcre
+    x265
 
     qtbase
     qtxmlpatterns
@@ -99,11 +103,11 @@ mkDerivation rec {
     kwidgetsaddons
     kxmlgui
 
+    breeze-icons
     marble
     oxygen
     threadweaver
-  ]
-  ++ lib.optionals withJpeg2k [ jasper ];
+  ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/applications/graphics/draftsight/default.nix b/nixpkgs/pkgs/applications/graphics/draftsight/default.nix
deleted file mode 100644
index ccd4fd660f76..000000000000
--- a/nixpkgs/pkgs/applications/graphics/draftsight/default.nix
+++ /dev/null
@@ -1,88 +0,0 @@
-{ stdenv, fetchurl, dpkg, makeWrapper, gcc, libGLU, libGL, xdg_utils,
-  dbus, alsaLib, cups, fontconfig, glib, icu, libpng12,
-  xkeyboard_config, zlib, libxslt, libxml2, sqlite, orc,
-  libX11, libXcursor, libXrandr, libxcb, libXi, libSM, libICE,
-  libXrender, libXcomposite }:
-
-let version = "2018SP2"; in
-stdenv.mkDerivation {
-  pname = "draftsight";
-  inherit version;
-
-  nativeBuildInputs = [ dpkg makeWrapper ];
-
-  unpackPhase = ''
-    mkdir $out
-    mkdir $out/draftsight
-    dpkg -x $src $out/draftsight
-  '';
-
-  # Both executables and bundled libraries need patching to find their
-  # dependencies.  The makeWrapper & QT_XKB_CONFIG_ROOT is to
-  # alleviate "xkbcommon: ERROR: failed to add default include path
-  # /usr/share/X11/xkb" and "Qt: Failed to create XKB context!".
-  installPhase = ''
-    mkdir $out/bin
-    for exe in DraftSight dsHttpApiController dsHttpApiService FxCrashRptApp HelpGuide; do
-      echo "Patching $exe..."
-      patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-               --set-rpath $libPath:\$ORIGIN/../Libraries \
-               $out/draftsight/opt/dassault-systemes/DraftSight/Linux/$exe
-      makeWrapper $out/draftsight/opt/dassault-systemes/DraftSight/Linux/$exe \
-          $out/bin/$exe \
-          --prefix "QT_XKB_CONFIG_ROOT" ":" "${xkeyboard_config}/share/X11/xkb"
-    done
-    for lib in $out/draftsight/opt/dassault-systemes/DraftSight/Libraries/*.so*; do
-      # DraftSight ships with broken symlinks for some reason
-      if [ -f $(readlink -f $lib) ]
-      then
-        echo "Patching $lib..."
-        patchelf --set-rpath $libPath:\$ORIGIN/../Libraries $lib
-      else
-        echo "Ignoring broken link $lib"
-      fi
-    done
-    for lib in $out/draftsight/opt/dassault-systemes/DraftSight/APISDK/lib/cpp/*.so*; do
-      if [ -f $(readlink $lib) ]
-      then
-        echo "Patching $lib..."
-        chmod u+w $lib
-        patchelf --set-rpath $libPath:\$ORIGIN/../Libraries $lib
-      else
-        echo "Ignoring broken link $lib"
-      fi
-    done
-    # These libraries shouldn't really be here anyway:
-    find $out/draftsight/opt/dassault-systemes/DraftSight/APISDK/Samples/C++ \
-         -type d -name _lib | xargs rm -r
-  '';
-
-  # TODO: Figure out why HelpGuide segfaults at startup.
-
-  # This must be here for main window graphics to appear (without it
-  # it also gives the error: "QXcbIntegration: Cannot create platform
-  # OpenGL context, neither GLX nor EGL are enabled"). My guess is
-  # that it dlopen()'s libraries in paths removed by shrinking RPATH.
-  dontPatchELF = true;
-
-  src = fetchurl {
-    name = "draftSight.deb";
-    url = "http://dl-ak.solidworks.com/nonsecure/draftsight/${version}/draftSight.deb";
-    sha256 = "05lrvml0zkzqg0sj6sj2h8h66hxdmsw5fg9fwz923r1y8j48qxdx";
-  };
-
-  libPath = stdenv.lib.makeLibraryPath [ gcc.cc libGLU libGL xdg_utils
-    dbus alsaLib cups.lib fontconfig glib icu libpng12
-    xkeyboard_config zlib libxslt libxml2 sqlite orc libX11
-    libXcursor libXrandr libxcb libXi libSM libICE libXrender
-    libXcomposite ];
-
-  meta = with stdenv.lib; {
-    description = "2D design & drafting application, meant to be similar to AutoCAD";
-    longDescription = "Professional-grade 2D design and drafting solution from Dassault Systèmes that lets you create, edit, view and mark up any kind of 2D CAD drawing.";
-    homepage = "https://www.3ds.com/products-services/draftsight-cad-software/";
-    license = stdenv.lib.licenses.unfree;
-    maintainers = with maintainers; [ hodapp ];
-    platforms = [ "x86_64-linux" ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/graphics/drawio/default.nix b/nixpkgs/pkgs/applications/graphics/drawio/default.nix
index 7026d133658f..5a5ce5d8b210 100644
--- a/nixpkgs/pkgs/applications/graphics/drawio/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/drawio/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "drawio";
-  version = "13.2.2";
+  version = "13.7.3";
 
   src = fetchurl {
     url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm";
-    sha256 = "0npqw4ih047d9s1yyllcvcih2r61fgji4rvzsw88r02mj5q5rgdn";
+    sha256 = "14wcj9jbpv1rg0g7djihzzq088aj96mwys4rc9540ajbkbbm9d36";
   };
 
   nativeBuildInputs = [
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
   ];
 
   runtimeDependencies = [
-    systemd.lib
+    (lib.getLib systemd)
   ];
 
   dontBuild = true;
@@ -88,6 +88,7 @@ stdenv.mkDerivation rec {
     description = "A desktop application for creating diagrams";
     homepage = "https://about.draw.io/";
     license = licenses.asl20;
+    changelog = "https://github.com/jgraph/drawio-desktop/releases/tag/v${version}";
     maintainers = with maintainers; [ danieldk ];
     platforms = [ "x86_64-linux" ];
   };
diff --git a/nixpkgs/pkgs/applications/graphics/drawpile/default.nix b/nixpkgs/pkgs/applications/graphics/drawpile/default.nix
index 0ffcb5cdb410..e210d03406b7 100644
--- a/nixpkgs/pkgs/applications/graphics/drawpile/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/drawpile/default.nix
@@ -1,7 +1,8 @@
-{ lib
+{ stdenv
+, lib
 , mkDerivation
-, fetchurl
-, cmake
+, fetchFromGitHub
+, fetchpatch
 , extra-cmake-modules
 
 # common deps
@@ -9,9 +10,11 @@
 
 # client deps
 , qtbase
+, qtkeychain
 , qtmultimedia
 , qtsvg
 , qttools
+, libsecret
 
 # optional client deps
 , giflib
@@ -23,6 +26,8 @@
 # optional server deps
 , libmicrohttpd
 , libsodium
+, withSystemd ? stdenv.isLinux
+, systemd ? null
 
 # options
 , buildClient ? true
@@ -35,54 +40,70 @@
 with lib;
 
 let
-  commonDeps = [
-    karchive
-  ];
   clientDeps = [
     qtbase
+    qtkeychain
     qtmultimedia
     qtsvg
     qttools
+    libsecret
     # optional:
     giflib # gif animation export support
     kdnssd # local server discovery with Zeroconf
     libvpx # WebM video export
     miniupnpc # automatic port forwarding
   ];
+
   serverDeps = [
     # optional:
     libmicrohttpd # HTTP admin api
     libsodium # ext-auth support
-  ];
+  ] ++ optional withSystemd systemd;
+
   kisDeps = [
     qtx11extras
   ];
 
+  boolToFlag = bool:
+    if bool then "ON" else "OFF";
+
 in mkDerivation rec {
   pname = "drawpile";
   version = "2.1.17";
 
-  src = fetchurl {
-    url = "https://drawpile.net/files/src/drawpile-${version}.tar.gz";
-    sha256 = "11lhn1mymhqk9g5sh384xhj3qw8h9lv88pr768y9q6kg3sl7nzzf";
+  src = fetchFromGitHub {
+    owner = "drawpile";
+    repo = "drawpile";
+    rev = "${version}";
+    sha256 = "sha256-AFFY+FcY9ExAur13OoWR9285RZtBe6jnRIrwi5raiCM=";
   };
 
-  nativeBuildInputs = [
-    cmake
-    extra-cmake-modules
+  patches = [
+    # fix for libmicrohttpd 0.9.71
+    (fetchpatch {
+      url = "https://github.com/drawpile/Drawpile/commit/ed1a75deb113da2d1df91a28f557509c4897130e.diff";
+      sha256 = "sha256-54wabH5F3Hf+6vv9rpCwCRdhjSaUFtuF/mE1/U+CpOA=";
+      name = "mhdfix.patch"; })
+  ];
+
+  nativeBuildInputs = [ extra-cmake-modules ];
+
+  buildInputs = [
+    karchive
+  ]
+  ++ optionals buildClient      clientDeps
+  ++ optionals buildServer      serverDeps
+  ++ optionals enableKisTablet  kisDeps;
+
+  cmakeFlags = [
+    "-Wno-dev"
+    "-DINITSYS=systemd"
+    "-DCLIENT=${boolToFlag buildClient}"
+    "-DSERVER=${boolToFlag buildServer}"
+    "-DSERVERGUI=${boolToFlag buildServerGui}"
+    "-DTOOLS=${boolToFlag buildExtraTools}"
+    "-DKIS_TABLET=${boolToFlag enableKisTablet}"
   ];
-  buildInputs =
-    commonDeps ++
-    optionals buildClient      clientDeps ++
-    optionals buildServer      serverDeps ++
-    optionals enableKisTablet  kisDeps    ;
-
-  cmakeFlags =
-    optional (!buildClient    )  "-DCLIENT=off" ++
-    optional (!buildServer    )  "-DSERVER=off" ++
-    optional (!buildServerGui )  "-DSERVERGUI=off" ++
-    optional ( buildExtraTools)  "-DTOOLS=on" ++
-    optional ( enableKisTablet)  "-DKIS_TABLET=on";
 
   meta = {
     description = "A collaborative drawing program that allows multiple users to sketch on the same canvas simultaneously";
diff --git a/nixpkgs/pkgs/applications/graphics/evilpixie/default.nix b/nixpkgs/pkgs/applications/graphics/evilpixie/default.nix
new file mode 100644
index 000000000000..1f6a52aa0b0c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/evilpixie/default.nix
@@ -0,0 +1,59 @@
+{ mkDerivation
+, lib
+, fetchFromGitHub
+, makeDesktopItem
+, qmake
+, qtbase
+, libpng
+, giflib
+, impy
+}:
+
+let
+  desktopItem = makeDesktopItem {
+    name = "EvilPixie";
+    desktopName = "EvilPixie";
+    exec = "evilpixie %F";
+    icon = "evilpixie";
+    genericName = "Image Editor";
+    categories = "Graphics;2DGraphics;RasterGraphics;";
+    mimeType = "image/bmp;image/gif;image/jpeg;image/jpg;image/png;image/x-pcx;image/x-targa;image/x-tga;";
+  };
+
+in mkDerivation rec {
+  pname = "evilpixie";
+  version = "0.2";
+
+  src = fetchFromGitHub {
+    owner = "bcampbell";
+    repo = "evilpixie";
+    rev = "v${version}";
+    sha256 = "1yg4ic3kcxqmr7k5bbvrv5iavlnhpdx6510z5wha9k9k5q9c4dvh";
+  };
+
+  nativeBuildInputs = [
+    qmake
+  ];
+
+  buildInputs = [
+    qtbase
+    libpng
+    giflib
+    impy
+  ];
+
+  postInstall = ''
+    ln -s ${desktopItem}/share/applications $out/share
+    install -Dm 444 icon_128x128.png $out/share/icons/hicolor/128x128/apps/evilpixie.png
+  '';
+
+  meta = with lib; {
+    description = "Pixel-oriented paint program, modelled on Deluxe Paint";
+    homepage = "http://evilpixie.scumways.com/";
+    downloadPage = "https://github.com/bcampbell/evilpixie/releases";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/graphics/feh/default.nix b/nixpkgs/pkgs/applications/graphics/feh/default.nix
index 4782d9201480..82128f81353f 100644
--- a/nixpkgs/pkgs/applications/graphics/feh/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/feh/default.nix
@@ -7,11 +7,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "feh";
-  version = "3.4.1";
+  version = "3.5";
 
   src = fetchurl {
     url = "https://feh.finalrewind.org/${pname}-${version}.tar.bz2";
-    sha256 = "0yvvj1s7ayn0lwils582smwkmckdk0gij5c58g45n4xh981n693q";
+    sha256 = "07jklibpi4ig9pbdrwhllsfffxn2h8xf4ma36qii00w4hb69v3rq";
   };
 
   outputs = [ "out" "man" "doc" ];
diff --git a/nixpkgs/pkgs/applications/graphics/fluxus/default.nix b/nixpkgs/pkgs/applications/graphics/fluxus/default.nix
index a53eb806bcf1..f560ad45c574 100644
--- a/nixpkgs/pkgs/applications/graphics/fluxus/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/fluxus/default.nix
@@ -18,7 +18,7 @@
 , openal
 , openssl
 , racket
-, scons
+, sconsPackages
 , zlib
 }:
 let
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
     openssl.dev
     racket
   ];
-  nativeBuildInputs = [ scons.py2 ];
+  nativeBuildInputs = [ sconsPackages.scons_3_1_2 ];
 
   patches = [ ./fix-build.patch ];
   sconsFlags = [
diff --git a/nixpkgs/pkgs/applications/graphics/fondo/default.nix b/nixpkgs/pkgs/applications/graphics/fondo/default.nix
index cd0ee8e662b9..e80fbee1b71e 100644
--- a/nixpkgs/pkgs/applications/graphics/fondo/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/fondo/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , vala
 , pkgconfig
@@ -57,7 +58,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/graphics/fontmatrix/default.nix b/nixpkgs/pkgs/applications/graphics/fontmatrix/default.nix
index 99ca119b3bcd..3c67b11844d0 100644
--- a/nixpkgs/pkgs/applications/graphics/fontmatrix/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/fontmatrix/default.nix
@@ -1,26 +1,32 @@
-{ stdenv, fetchFromGitHub, cmake, qt4 }:
+{ lib, mkDerivation, fetchpatch, fetchFromGitHub, cmake, qttools, qtwebkit }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "fontmatrix";
-  version = "0.6.0";
+  version = "0.6.0-qt5";
 
   src = fetchFromGitHub {
-    owner = "fontmatrix";
+    owner = "fcoiffie";
     repo = "fontmatrix";
-    rev = "v${version}";
-    sha256 = "0aqndj1jhm6hjpwmj1qm92z2ljh7w78a5ff5ag47qywqha1ngn05";
+    rev = "1ff8382d8c85c18d9962918f461341ff4fe21993";
+    sha256 = "0yx1gbsjj9ddq1kiqplif1w5x5saw250zbmhmd4phqmaqzr60w0h";
   };
 
-  buildInputs = [ qt4 ];
+  # Add missing QAction include
+  patches = [ (fetchpatch {
+    url = "https://github.com/fcoiffie/fontmatrix/commit/dc6de8c414ae21516b72daead79c8db88309b102.patch";
+    sha256 = "092860fdyf5gq67jqfxnlgwzjgpizi6j0njjv3m62aiznrhig7c8";
+  })];
+
+  buildInputs = [ qttools qtwebkit ];
 
   nativeBuildInputs = [ cmake ];
 
   hardeningDisable = [ "format" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Fontmatrix is a free/libre font explorer for Linux, Windows and Mac";
     homepage = "https://github.com/fontmatrix/fontmatrix";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/freecad/default.nix b/nixpkgs/pkgs/applications/graphics/freecad/default.nix
index 657caeca8b3d..f9322add5c09 100644
--- a/nixpkgs/pkgs/applications/graphics/freecad/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/freecad/default.nix
@@ -1,5 +1,5 @@
 { stdenv, mkDerivation, fetchFromGitHub, fetchpatch, cmake, ninja, coin3d,
-xercesc, ode, eigen, qtbase, qttools, qtwebkit, wrapQtAppsHook,
+xercesc, ode, eigen, qtbase, qttools, qtwebengine, qtxmlpatterns, wrapQtAppsHook,
 opencascade-occt, gts, hdf5, vtk, medfile, zlib, python3Packages, swig,
 gfortran, libXmu, soqt, libf2c, libGLU, makeWrapper, pkgconfig, mpi ? null }:
 
@@ -8,14 +8,14 @@ assert mpi != null;
 let
   pythonPackages = python3Packages;
 in mkDerivation rec {
-  pname = "freecad";
-  version = "0.18.4";
+  pname = "freecad-unstable";
+  version = "2020-09-25";
 
   src = fetchFromGitHub {
     owner = "FreeCAD";
     repo = "FreeCAD";
-    rev = version;
-    sha256 = "1phs9a0px5fnzpyx930cz39p5dis0f0yajxzii3c3sazgkzrd55s";
+    rev = "7616153b3c31ace006169cdc2fdafab484498858";
+    sha256 = "1vffvzv3gkndfj2k8ik0afyk9rgngnr4aai5py66qd63qd7kmxch";
   };
 
   nativeBuildInputs = [
@@ -29,20 +29,11 @@ in mkDerivation rec {
   buildInputs = [
     cmake coin3d xercesc ode eigen opencascade-occt gts
     zlib swig gfortran soqt libf2c makeWrapper mpi vtk hdf5 medfile
-    libGLU libXmu qtbase qttools qtwebkit
+    libGLU libXmu qtbase qttools qtwebengine qtxmlpatterns
   ] ++ (with pythonPackages; [
     matplotlib pycollada shiboken2 pyside2 pyside2-tools pivy python boost
   ]);
 
-  # Fix missing app icon on Wayland. Has been upstreamed and should be safe to
-  # remove in versions >= 0.19
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/FreeCAD/FreeCAD/commit/c4d2a358ca125d51d059dfd72dcbfba326196dfc.patch";
-      sha256 = "0yqc9zrxgi2c2xcidm8wh7a9yznkphqvjqm9742qm5fl20p8gl4h";
-    })
-  ];
-
   cmakeFlags = [
     "-DBUILD_QT5=ON"
     "-DSHIBOKEN_INCLUDE_DIR=${pythonPackages.shiboken2}/include"
diff --git a/nixpkgs/pkgs/applications/graphics/freecad/stable.nix b/nixpkgs/pkgs/applications/graphics/freecad/stable.nix
new file mode 100644
index 000000000000..657caeca8b3d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/freecad/stable.nix
@@ -0,0 +1,85 @@
+{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, cmake, ninja, coin3d,
+xercesc, ode, eigen, qtbase, qttools, qtwebkit, wrapQtAppsHook,
+opencascade-occt, gts, hdf5, vtk, medfile, zlib, python3Packages, swig,
+gfortran, libXmu, soqt, libf2c, libGLU, makeWrapper, pkgconfig, mpi ? null }:
+
+assert mpi != null;
+
+let
+  pythonPackages = python3Packages;
+in mkDerivation rec {
+  pname = "freecad";
+  version = "0.18.4";
+
+  src = fetchFromGitHub {
+    owner = "FreeCAD";
+    repo = "FreeCAD";
+    rev = version;
+    sha256 = "1phs9a0px5fnzpyx930cz39p5dis0f0yajxzii3c3sazgkzrd55s";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    ninja
+    pkgconfig
+    pythonPackages.pyside2-tools
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    cmake coin3d xercesc ode eigen opencascade-occt gts
+    zlib swig gfortran soqt libf2c makeWrapper mpi vtk hdf5 medfile
+    libGLU libXmu qtbase qttools qtwebkit
+  ] ++ (with pythonPackages; [
+    matplotlib pycollada shiboken2 pyside2 pyside2-tools pivy python boost
+  ]);
+
+  # Fix missing app icon on Wayland. Has been upstreamed and should be safe to
+  # remove in versions >= 0.19
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/FreeCAD/FreeCAD/commit/c4d2a358ca125d51d059dfd72dcbfba326196dfc.patch";
+      sha256 = "0yqc9zrxgi2c2xcidm8wh7a9yznkphqvjqm9742qm5fl20p8gl4h";
+    })
+  ];
+
+  cmakeFlags = [
+    "-DBUILD_QT5=ON"
+    "-DSHIBOKEN_INCLUDE_DIR=${pythonPackages.shiboken2}/include"
+    "-DSHIBOKEN_LIBRARY=Shiboken2::libshiboken"
+    ("-DPYSIDE_INCLUDE_DIR=${pythonPackages.pyside2}/include"
+      + ";${pythonPackages.pyside2}/include/PySide2/QtCore"
+      + ";${pythonPackages.pyside2}/include/PySide2/QtWidgets"
+      + ";${pythonPackages.pyside2}/include/PySide2/QtGui"
+      )
+    "-DPYSIDE_LIBRARY=PySide2::pyside2"
+  ];
+
+  # This should work on both x86_64, and i686 linux
+  preBuild = ''
+    export NIX_LDFLAGS="-L${gfortran.cc}/lib64 -L${gfortran.cc}/lib $NIX_LDFLAGS";
+  '';
+
+  # Their main() removes PYTHONPATH=, and we rely on it.
+  preConfigure = ''
+    sed '/putenv("PYTHONPATH/d' -i src/Main/MainGui.cpp
+
+    qtWrapperArgs+=(--prefix PYTHONPATH : "$PYTHONPATH")
+  '';
+
+  qtWrapperArgs = [
+    "--set COIN_GL_NO_CURRENT_CONTEXT_CHECK 1"
+  ];
+
+  postFixup = ''
+    mv $out/share/doc $out
+  '';
+
+  meta = with stdenv.lib; {
+    description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
+    homepage = "https://www.freecadweb.org/";
+    license = licenses.lgpl2Plus;
+    maintainers = with maintainers; [ viric gebner ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/gcolor3/default.nix b/nixpkgs/pkgs/applications/graphics/gcolor3/default.nix
index 1c1c6ba08ee2..2962825e49b1 100644
--- a/nixpkgs/pkgs/applications/graphics/gcolor3/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gcolor3/default.nix
@@ -1,31 +1,40 @@
-{ stdenv, fetchFromGitLab, meson, ninja, gettext, pkgconfig, libxml2, gtk3, hicolor-icon-theme, wrapGAppsHook
-, fetchpatch }:
+{ stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, gettext
+, pkg-config
+, libxml2
+, gtk3
+, libportal
+, wrapGAppsHook
+}:
 
-let
-  version = "2.3.1";
-in stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "gcolor3";
-  inherit version;
+  version = "2.4.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "gcolor3";
     rev = "v${version}";
-    sha256 = "10cfzlkflwkb7f51rnrxmgxpfryh1qzvqaydj6lffjq9zvnhigg7";
+    sha256 = "rHIAjk2m3Lkz11obgNZaapa1Zr2GDH7XzgzuAJmq+MU=";
   };
 
-  patches = [
-    # Remove useage of deprecrated G_PARAM_PRIVATE
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/World/gcolor3/commit/96612cdd6c2cc71e28eb97ee17956004a05e5140.patch";
-      sha256 = "134wv5x15bd7k0fjzifrddwssaq213sx2l38r3xw6x1j625qwzq9";
-    })
+  nativeBuildInputs = [
+    meson
+    ninja
+    gettext
+    pkg-config
+    libxml2 # xml-stripblanks preprocessing of GResource
+    wrapGAppsHook
   ];
 
-  nativeBuildInputs = [ meson ninja gettext pkgconfig libxml2 wrapGAppsHook ];
-
-  buildInputs = [ gtk3 hicolor-icon-theme ];
+  buildInputs = [
+    gtk3
+    libportal
+  ];
 
   postPatch = ''
     chmod +x meson_install.sh # patchShebangs requires executable file
@@ -34,7 +43,7 @@ in stdenv.mkDerivation {
 
   meta = with stdenv.lib; {
     description = "A simple color chooser written in GTK3";
-    homepage = "https://www.hjdskes.nl/projects/gcolor3/";
+    homepage = "https://gitlab.gnome.org/World/gcolor3";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ jtojnar ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/applications/graphics/gimp/default.nix b/nixpkgs/pkgs/applications/graphics/gimp/default.nix
index 9e448fa23a43..6ec15bf02ab2 100644
--- a/nixpkgs/pkgs/applications/graphics/gimp/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gimp/default.nix
@@ -2,6 +2,7 @@
 , lib
 , fetchurl
 , substituteAll
+, autoreconfHook
 , pkgconfig
 , intltool
 , babl
@@ -28,9 +29,10 @@
 , ghostscript
 , aalib
 , shared-mime-info
-, python2Packages
+, python2
 , libexif
 , gettext
+, makeWrapper
 , xorg
 , glib-networking
 , libmypaint
@@ -47,7 +49,7 @@
 }:
 
 let
-  inherit (python2Packages) pygtk wrapPython python;
+  python = python2.withPackages (pp: [ pp.pygtk ]);
 in stdenv.mkDerivation rec {
   pname = "gimp";
   version = "2.10.20";
@@ -59,11 +61,25 @@ in stdenv.mkDerivation rec {
     sha256 = "4S+fh0saAHxCd7YKqB4LZzML5+YVPldJ6tg5uQL8ezw=";
   };
 
+  patches = [
+    # to remove compiler from the runtime closure, reference was retained via
+    # gimp --version --verbose output
+    (substituteAll {
+      src = ./remove-cc-reference.patch;
+      cc_version = stdenv.cc.cc.name;
+    })
+
+    # Use absolute paths instead of relying on PATH
+    # to make sure plug-ins are loaded by the correct interpreter.
+    ./hardcode-plugin-interpreters.patch
+  ];
+
   nativeBuildInputs = [
+    autoreconfHook # hardcode-plugin-interpreters.patch changes Makefile.am
     pkgconfig
     intltool
     gettext
-    wrapPython
+    makeWrapper
   ];
 
   buildInputs = [
@@ -97,7 +113,6 @@ in stdenv.mkDerivation rec {
     libwebp
     libheif
     python
-    pygtk
     libexif
     xorg.libXpm
     glib-networking
@@ -116,7 +131,20 @@ in stdenv.mkDerivation rec {
     gegl
   ];
 
-  pythonPath = [ pygtk ];
+  configureFlags = [
+    "--without-webkit" # old version is required
+    "--disable-check-update"
+    "--with-bug-report-url=https://github.com/NixOS/nixpkgs/issues/new"
+    "--with-icc-directory=/run/current-system/sw/share/color/icc"
+    # fix libdir in pc files (${exec_prefix} needs to be passed verbatim)
+    "--libdir=\${exec_prefix}/lib"
+  ];
+
+  enableParallelBuilding = true;
+
+  # on Darwin,
+  # test-eevl.c:64:36: error: initializer element is not a compile-time constant
+  doCheck = !stdenv.isDarwin;
 
   # Check if librsvg was built with --disable-pixbuf-loader.
   PKG_CONFIG_GDK_PIXBUF_2_0_GDK_PIXBUF_MODULEDIR = "${librsvg}/${gdk-pixbuf.moduleDir}";
@@ -126,19 +154,8 @@ in stdenv.mkDerivation rec {
     export GIO_EXTRA_MODULES="${glib-networking}/lib/gio/modules:$GIO_EXTRA_MODULES"
   '';
 
-  patches = [
-    # to remove compiler from the runtime closure, reference was retained via
-    # gimp --version --verbose output
-    (substituteAll {
-      src = ./remove-cc-reference.patch;
-      cc_version = stdenv.cc.cc.name;
-    })
-  ];
-
   postFixup = ''
-    wrapPythonProgramsIn $out/lib/gimp/${passthru.majorVersion}/plug-ins/
     wrapProgram $out/bin/gimp-${lib.versions.majorMinor version} \
-      --prefix PYTHONPATH : "$PYTHONPATH" \
       --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
   '';
 
@@ -153,21 +170,6 @@ in stdenv.mkDerivation rec {
     gtk = gtk2;
   };
 
-  configureFlags = [
-    "--without-webkit" # old version is required
-    "--disable-check-update"
-    "--with-bug-report-url=https://github.com/NixOS/nixpkgs/issues/new"
-    "--with-icc-directory=/run/current-system/sw/share/color/icc"
-    # fix libdir in pc files (${exec_prefix} needs to be passed verbatim)
-    "--libdir=\${exec_prefix}/lib"
-  ];
-
-  # on Darwin,
-  # test-eevl.c:64:36: error: initializer element is not a compile-time constant
-  doCheck = !stdenv.isDarwin;
-
-  enableParallelBuilding = true;
-
   meta = with lib; {
     description = "The GNU Image Manipulation Program";
     homepage = "https://www.gimp.org/";
diff --git a/nixpkgs/pkgs/applications/graphics/gimp/hardcode-plugin-interpreters.patch b/nixpkgs/pkgs/applications/graphics/gimp/hardcode-plugin-interpreters.patch
new file mode 100644
index 000000000000..1528404c31d2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/gimp/hardcode-plugin-interpreters.patch
@@ -0,0 +1,11 @@
+--- a/plug-ins/pygimp/Makefile.am
++++ b/plug-ins/pygimp/Makefile.am
+@@ -157,7 +157,7 @@ install-interp-file:
+ 	echo 'python=$(PYBIN_PATH)' > '$(DESTDIR)$(pyinterpfile)'
+ 	echo 'python2=$(PYBIN_PATH)' >> '$(DESTDIR)$(pyinterpfile)'
+ 	echo '/usr/bin/python=$(PYBIN_PATH)' >> '$(DESTDIR)$(pyinterpfile)'
+-	echo ":Python:E::py::`basename $(PYTHON)`:" >> '$(DESTDIR)$(pyinterpfile)'
++	echo ":Python:E::py::$(PYTHON):" >> '$(DESTDIR)$(pyinterpfile)'
+ 
+ install-data-local: install-env-file install-interp-file
+ 
diff --git a/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix b/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix
index 8660f6f218e2..337b8f4cba6c 100644
--- a/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gnome-photos/default.nix
@@ -111,7 +111,7 @@ stdenv.mkDerivation rec {
     };
 
     tests = {
-      installed-tests = nixosTests.gnome-photos;
+      installed-tests = nixosTests.installed-tests.gnome-photos;
     };
   };
 
diff --git a/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix b/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix
index 352b6b900cc6..2906026c48f3 100644
--- a/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/gscan2pdf/default.nix
@@ -10,11 +10,11 @@ with stdenv.lib;
 
 perlPackages.buildPerlPackage rec {
   pname = "gscan2pdf";
-  version = "2.6.5";
+  version = "2.8.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/gscan2pdf/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0x8931i5zs4zl3iqjhlp7h8y6ssklxiqsddz5kh84nl3p0izbg0y";
+    sha256 = "00g2vw7lz3yb4nq358x8d3r4mf3hkrq2vw1g9lli27zdp5p6jja1";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
@@ -64,6 +64,7 @@ perlPackages.buildPerlPackage rec {
 
     # Add runtime dependencies
     wrapProgram "$out/bin/gscan2pdf" \
+      --prefix PATH : "${sane-backends}/bin" \
       --prefix PATH : "${imagemagick}/bin" \
       --prefix PATH : "${libtiff}/bin" \
       --prefix PATH : "${djvulibre}/bin" \
diff --git a/nixpkgs/pkgs/applications/graphics/ideogram/default.nix b/nixpkgs/pkgs/applications/graphics/ideogram/default.nix
index 4bf414cf8dd5..9ae7ae2cb8ce 100644
--- a/nixpkgs/pkgs/applications/graphics/ideogram/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/ideogram/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , fetchpatch
 , vala
 , pkgconfig
@@ -51,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/graphics/inkscape/default.nix b/nixpkgs/pkgs/applications/graphics/inkscape/default.nix
index e2f27e9a4955..810b19ba90a6 100644
--- a/nixpkgs/pkgs/applications/graphics/inkscape/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/inkscape/default.nix
@@ -3,14 +3,18 @@
 , boost
 , cairo
 , cmake
-, fetchpatch
+, double-conversion
 , fetchurl
 , gettext
+, gdl
 , glib
+, glib-networking
 , glibmm
 , gsl
-, gtkmm2
-, gtkspell2
+, gtk-mac-integration
+, gtkmm3
+, gtkspell3
+, gdk-pixbuf
 , imagemagick
 , lcms
 , libcdr
@@ -19,18 +23,20 @@
 , librevenge
 , librsvg
 , libsigcxx
+, libsoup
 , libvisio
 , libwpg
 , libXft
 , libxml2
 , libxslt
-, makeWrapper
+, ninja
 , perlPackages
 , pkg-config
 , poppler
 , popt
 , potrace
 , python3
+, substituteAll
 , wrapGAppsHook
 , zlib
 }:
@@ -44,11 +50,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "inkscape";
-  version = "0.92.5";
+  version = "1.0.1";
 
   src = fetchurl {
-    url = "https://media.inkscape.org/dl/resources/file/${pname}-${version}.tar.bz2";
-    sha256 = "02wsa66ifycibmgfsrhmhqdv41brg955lffq8drsjr5xw9lpzvl1";
+    url = "https://media.inkscape.org/dl/resources/file/${pname}-${version}.tar.xz";
+    sha256 = "1hjp5nnyx2m3miji6q4lcb6zgbi498v641dc7apkqqvayknrb4ng";
   };
 
   # Inkscape hits the ARGMAX when linking on macOS. It appears to be
@@ -57,21 +63,28 @@ stdenv.mkDerivation rec {
   # will leave us under ARGMAX.
   strictDeps = true;
 
+  patches = [
+    (substituteAll {
+      src = ./fix-python-paths.patch;
+      # Python is used at run-time to execute scripts,
+      # e.g., those from the "Effects" menu.
+      python3 = "${python3Env}/bin/python";
+    })
+  ];
+
   postPatch = ''
     patchShebangs share/extensions
-    patchShebangs fix-roff-punct
-
-    # Python is used at run-time to execute scripts, e.g., those from
-    # the "Effects" menu.
-    substituteInPlace src/extension/implementation/script.cpp \
-      --replace '"python-interpreter", "python"' '"python-interpreter", "${python3Env}/bin/python"'
+    patchShebangs share/templates
+    patchShebangs man/fix-roff-punct
   '';
 
   nativeBuildInputs = [
     pkg-config
     cmake
-    makeWrapper
+    ninja
     python3Env
+    glib # for setup hook
+    gdk-pixbuf # for setup hook
     wrapGAppsHook
   ] ++ (with perlPackages; [
     perl
@@ -81,11 +94,14 @@ stdenv.mkDerivation rec {
   buildInputs = [
     boehmgc
     boost
+    double-conversion
+    gdl
     gettext
     glib
+    glib-networking
     glibmm
     gsl
-    gtkmm2
+    gtkmm3
     imagemagick
     lcms
     libcdr
@@ -94,6 +110,7 @@ stdenv.mkDerivation rec {
     librevenge
     librsvg # for loading icons
     libsigcxx
+    libsoup
     libvisio
     libwpg
     libXft
@@ -106,9 +123,10 @@ stdenv.mkDerivation rec {
     python3Env
     zlib
   ] ++ stdenv.lib.optionals (!stdenv.isDarwin) [
-    gtkspell2
+    gtkspell3
   ] ++ stdenv.lib.optionals stdenv.isDarwin [
     cairo
+    gtk-mac-integration
   ];
 
   # Make sure PyXML modules can be found at run-time.
diff --git a/nixpkgs/pkgs/applications/graphics/inkscape/extensions.nix b/nixpkgs/pkgs/applications/graphics/inkscape/extensions.nix
new file mode 100644
index 000000000000..66a758f9fe51
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/inkscape/extensions.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, fetchFromGitHub
+}:
+
+{
+  hexmap = stdenv.mkDerivation {
+    name = "hexmap";
+    version = "2020-06-06";
+
+    src = fetchFromGitHub {
+      owner = "lifelike";
+      repo = "hexmapextension";
+      rev = "11401e23889318bdefb72df6980393050299d8cc";
+      sha256 = "1a4jhva624mbljj2k43wzi6hrxacjz4626jfk9y2fg4r4sga22mm";
+    };
+
+    preferLocalBuild = true;
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p "$out/share/inkscape/extensions"
+      cp -p *.inx *.py "$out/share/inkscape/extensions/"
+      find "$out/share/inkscape/extensions/" -name "*.py" -exec chmod +x {} \;
+
+      runHook postInstall
+    '';
+
+    meta = with stdenv.lib; {
+      description = "This is an extension for creating hex grids in Inkscape. It can also be used to make brick patterns of staggered rectangles";
+      homepage = "https://github.com/lifelike/hexmapextension";
+      license = licenses.gpl2Plus;
+      maintainers = [ maintainers.raboof ];
+      platforms = platforms.all;
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/inkscape/fix-python-paths.patch b/nixpkgs/pkgs/applications/graphics/inkscape/fix-python-paths.patch
new file mode 100644
index 000000000000..9428ade88630
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/inkscape/fix-python-paths.patch
@@ -0,0 +1,15 @@
+--- a/src/extension/implementation/script.cpp
++++ b/src/extension/implementation/script.cpp
+@@ -77,10 +77,10 @@ const std::map<std::string, Script::inte
+         { "python",  {"python-interpreter",  {"pythonw"           }}},
+ #elif defined __APPLE__
+         { "perl",    {"perl-interpreter",    {"perl"              }}},
+-        { "python",  {"python-interpreter",  {"python3"           }}},
++        { "python",  {"python-interpreter",  {"@python3@"         }}},
+ #else
+         { "perl",    {"perl-interpreter",    {"perl"              }}},
+-        { "python",  {"python-interpreter",  {"python3", "python" }}},
++        { "python",  {"python-interpreter",  {"@python3@"         }}},
+ #endif
+         { "python2", {"python2-interpreter", {"python2", "python" }}},
+         { "ruby",    {"ruby-interpreter",    {"ruby"    }}},
diff --git a/nixpkgs/pkgs/applications/graphics/inkscape/with-extensions.nix b/nixpkgs/pkgs/applications/graphics/inkscape/with-extensions.nix
new file mode 100644
index 000000000000..cca7b1fc3a54
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/inkscape/with-extensions.nix
@@ -0,0 +1,21 @@
+{ lib
+, inkscape
+, symlinkJoin
+, makeWrapper
+, inkscapeExtensions ? []
+}:
+
+symlinkJoin {
+  name = "inkscape-with-extensions-${lib.getVersion inkscape}";
+
+  paths = [ inkscape ] ++ inkscapeExtensions;
+
+  buildInputs = [ makeWrapper ];
+
+  postBuild = ''
+    rm -f $out/bin/inkscape
+    makeWrapper "${inkscape}/bin/inkscape" "$out/bin/inkscape" --set INKSCAPE_DATADIR "$out/share"
+  '';
+
+  inherit (inkscape) meta;
+}
diff --git a/nixpkgs/pkgs/applications/graphics/krita/default.nix b/nixpkgs/pkgs/applications/graphics/krita/default.nix
index f98edd1e8ae5..95a3e1e09280 100644
--- a/nixpkgs/pkgs/applications/graphics/krita/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/krita/default.nix
@@ -10,11 +10,11 @@
 
 mkDerivation rec {
   pname = "krita";
-  version = "4.2.9";
+  version = "4.3.0";
 
   src = fetchurl {
     url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0rvm9mpaq66lxyq4f09x9w6xxhgys0phza223hm5zv6kgn413xsf";
+    sha256 = "19qlpp9ds60bab73pwi64dq1zn4zn2hcdkrxhjr1j438mc4pflsd";
   };
 
   # *somtimes* fails with can't find ui_manager.h, also see https://github.com/NixOS/nixpkgs/issues/35359
diff --git a/nixpkgs/pkgs/applications/graphics/ktikz/default.nix b/nixpkgs/pkgs/applications/graphics/ktikz/default.nix
index 4ddc2074f2f4..f817a3321606 100644
--- a/nixpkgs/pkgs/applications/graphics/ktikz/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/ktikz/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchFromGitHub, fetchpatch
 , pkgconfig, wrapQtAppsHook
-, poppler, qt5, gnuplot
+, poppler, gnuplot
+, qmake, qtbase, qttools
 }:
 
 # This package only builds ktikz without KDE integration because KDE4 is
@@ -36,10 +37,10 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  nativeBuildInputs = [ pkgconfig qt5.qttools qt5.qmake wrapQtAppsHook ];
-  QT_PLUGIN_PATH = "${qt5.qtbase}/${qt5.qtbase.qtPluginPrefix}";
+  nativeBuildInputs = [ pkgconfig qttools qmake wrapQtAppsHook ];
+  QT_PLUGIN_PATH = "${qtbase}/${qtbase.qtPluginPrefix}";
 
-  buildInputs = [ qt5.qtbase poppler ];
+  buildInputs = [ qtbase poppler ];
   enableParallelBuilding = true;
 
   qmakeFlags = [
diff --git a/nixpkgs/pkgs/applications/graphics/lazpaint/default.nix b/nixpkgs/pkgs/applications/graphics/lazpaint/default.nix
new file mode 100644
index 000000000000..d8ea4924318e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/lazpaint/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchFromGitHub, lazarus, fpc, pango, cairo, glib
+, atk, gtk2, libX11, gdk-pixbuf, busybox, python3, makeWrapper }:
+
+with stdenv;
+
+let
+  bgrabitmap = fetchFromGitHub {
+    owner = "bgrabitmap";
+    repo = "bgrabitmap";
+    rev = "v11.1";
+    sha256 = "0bcmiiwly4a7w8p3m5iskzvk8rz87qhc0gcijrdvwg87cafd88gz";
+  };
+  bgracontrols = fetchFromGitHub {
+    owner = "bgrabitmap";
+    repo = "bgracontrols";
+    rev = "v6.7.2";
+    sha256 = "0cwxzv0rl6crkf6f67mvga5cn5pyhr6ksm8cqhpxjiqi937dnyxx";
+  };
+in stdenv.mkDerivation rec {
+  pname = "lazpaint";
+  version = "7.1.3";
+
+  src = fetchFromGitHub {
+    owner = "bgrabitmap";
+    repo = "lazpaint";
+    rev = "v${version}";
+    sha256 = "1sfb5hmhzscz3nv4cmc192jimkg70l4z3q3yxkivhw1hwwsv9cbg";
+  };
+
+  nativeBuildInputs = [ lazarus fpc makeWrapper ];
+
+  buildInputs = [ pango cairo glib atk gtk2 libX11 gdk-pixbuf ];
+
+  NIX_LDFLAGS = "--as-needed -rpath ${lib.makeLibraryPath buildInputs}";
+
+  buildPhase = ''
+    cp -r --no-preserve=mode ${bgrabitmap} bgrabitmap
+    cp -r --no-preserve=mode ${bgracontrols} bgracontrols
+
+    lazbuild --lazarusdir=${lazarus}/share/lazarus \
+      --build-mode=Release \
+      bgrabitmap/bgrabitmap/bgrabitmappack.lpk \
+      bgracontrols/bgracontrols.lpk \
+      lazpaintcontrols/lazpaintcontrols.lpk \
+      lazpaint/lazpaint.lpi
+  '';
+
+  installPhase = ''
+    # Reuse existing install script
+    cd lazpaint/release/debian
+    substituteInPlace makedeb.sh --replace "rm -rf" "ls"
+    patchShebangs ./makedeb.sh
+    PATH=$PATH:${busybox}/bin ./makedeb.sh
+    cp -r staging/usr $out
+
+    # Python is needed for scripts
+    makeWrapper $out/share/lazpaint/lazpaint $out/bin/lazpaint \
+      --prefix PATH : ${stdenv.lib.makeBinPath [ python3 ]}
+
+    substituteInPlace $out/share/applications/lazpaint.desktop \
+      --replace /usr/share/pixmaps/lazpaint.png $out/share/pixmaps/lazpaint.png \
+      --replace /usr/share/lazpaint/lazpaint $out/bin/lazpaint
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Image editor like PaintBrush or Paint.Net";
+    homepage = "https://sourceforge.net/projects/lazpaint/";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ gnidorah ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/lightburn/default.nix b/nixpkgs/pkgs/applications/graphics/lightburn/default.nix
new file mode 100644
index 000000000000..7fcec93446d0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/lightburn/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, patchelf, fetchurl, p7zip
+, nss, nspr, libusb1
+, qtbase, qtmultimedia, qtserialport
+, autoPatchelfHook, wrapQtAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lightburn";
+  version = "0.9.16";
+
+  nativeBuildInputs = [
+    p7zip
+    autoPatchelfHook
+    wrapQtAppsHook
+  ];
+
+  src = fetchurl {
+    url = "https://github.com/LightBurnSoftware/deployment/releases/download/${version}/LightBurn-Linux64-v${version}.7z";
+    sha256 = "0xmpglfzff3jpxbr304czsa24fbp497b69yd8kjkjdp2cd0l70qc";
+  };
+
+  buildInputs = [
+    nss nspr libusb1
+    qtbase qtmultimedia qtserialport
+  ];
+
+  # We nuke the vendored Qt5 libraries that LightBurn ships and instead use our
+  # own.
+  unpackPhase = ''
+    7z x $src
+    rm -rf LightBurn/lib LightBurn/plugins
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share $out/bin
+    cp -ar LightBurn $out/share/LightBurn
+    ln -s $out/share/LightBurn/LightBurn $out/bin
+
+    wrapQtApp $out/bin/LightBurn
+  '';
+
+  meta = {
+    description = "LightBurn is layout, editing, and control software for your laser cutter.";
+    homepage = "https://lightburnsoftware.com/";
+    license = stdenv.lib.licenses.unfree;
+    maintainers = with stdenv.lib.maintainers; [ q3k ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix b/nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix
index 53d1c5c3f732..a3ab52ba8715 100644
--- a/nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/mandelbulber/default.nix
@@ -19,13 +19,13 @@ assert withOpenCL -> ocl-icd != null;
 
 mkDerivation rec {
   pname = "mandelbulber";
-  version = "2.21";
+  version = "2.22";
 
   src = fetchFromGitHub {
     owner = "buddhi1980";
     repo = "mandelbulber2";
     rev = version;
-    sha256 = "1bmk71vbxc1n8cnizlmzfqlvgxjb95cydbzxlvq1s5givxr2jwli";
+    sha256 = "011y2nl0jakf29cxprjmj1ifqc9iva61q5f4kk47b03gq7jw8sl4";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/meshlab/default.nix b/nixpkgs/pkgs/applications/graphics/meshlab/default.nix
index 6ac937dcb931..bde8999eb41c 100644
--- a/nixpkgs/pkgs/applications/graphics/meshlab/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/meshlab/default.nix
@@ -1,4 +1,6 @@
-{ mkDerivation, lib, fetchFromGitHub
+{ mkDerivation
+, lib
+, fetchFromGitHub
 , fetchpatch
 , libGLU
 , qtbase
@@ -7,112 +9,26 @@
 , lib3ds
 , bzip2
 , muparser
+, eigen
+, glew
+, gmp
 , levmar
+, qhull
+, cmake
 }:
 
-let
-  meshlabRev = "25f3d17b1d1d47ddc51179cb955f3027b7638745";
-  vcglibRev = "910da4c3e310f2e6557bd7a39c4f1529e61573e5";
-  # ^ this should be the latest commit in the vcglib devel branch at the time of the meshlab revision
-  # We keep it separate here instead of using the `vcg` nix package because
-  # as of writing, meshlab upstream does not seem to follow a proper
-  # release process, and the other dependencies of `vcg` may no longer
-  # work when we upgrade it for the purpose of meshlab.
+mkDerivation rec {
+  pname = "meshlab";
+  version = "2020.07";
 
-  # Unfixed upstream compile error; see
-  #     https://github.com/cnr-isti-vclab/meshlab/issues/188#issuecomment-364785362
-  # that has with fixed line endings.
-  import_bundle_out_patch = fetchpatch {
-    name = "import_bundle_out.patch";
-    url = "https://aur.archlinux.org/cgit/aur.git/plain/import_bundle_out.patch?h=meshlab-git&id=f7250ea818470f07dc9b86726407091d39c0be6f";
-    sha256 = "1g6nli15i3fjd6jsgkxvb33kzbcv67xjkc3jv9r51lrwlm1ifzxi";
+  src = fetchFromGitHub {
+    owner = "cnr-isti-vclab";
+    repo = "meshlab";
+    rev = "Meshlab-${version}";
+    sha256 = "0vj849b57zk3k6lx35zzcjhr9gdy4hxqnnkb8chwy7hw262cm3ri";
+    fetchSubmodules = true; # for vcglib
   };
 
-  # Reduces amount of vendored libraries, fixes `/linux` vs `linux-g++`
-  # directory name linker errors.
-  external_patch = fetchpatch {
-    name = "external.patch";
-    url = "https://aur.archlinux.org/cgit/aur.git/plain/external.patch?h=meshlab-git&id=f7250ea818470f07dc9b86726407091d39c0be6f";
-    sha256 = "1rxwkxhmxis1420rc1w7dg89gkmym68lpszsq6snl6dzpl3ingsb";
-  };
-  _3ds_patch = fetchpatch {
-    name = "3ds.patch";
-    url = "https://aur.archlinux.org/cgit/aur.git/plain/3ds.patch?h=meshlab-git&id=f7250ea818470f07dc9b86726407091d39c0be6f";
-    sha256 = "1w435b7p1ggi2bzib4yyszmk54drjgpbn8n9mnsk1slsxnp2vmg8";
-  };
-  muparser_patch = fetchpatch {
-    name = "muparser.patch";
-    url = "https://aur.archlinux.org/cgit/aur.git/plain/muparser.patch?h=meshlab-git&id=f7250ea818470f07dc9b86726407091d39c0be6f";
-    sha256 = "1sf7xqwc2j8xxdx2yklwifii9qqgknvx6ahk2hq76mg78ry1nzhq";
-  };
-
-in mkDerivation {
-  name = "meshlab-20190129-beta";
-
-  srcs =
-    [
-      (fetchFromGitHub {
-        owner = "cnr-isti-vclab";
-        repo = "meshlab";
-        rev = meshlabRev;
-        sha256 = "16d2i91hrxvrr5p0k33g3fzis9zp4gsy3n5y2nhafvsgdmaidiij";
-        name = "meshlab-${meshlabRev}";
-      })
-      (fetchFromGitHub {
-        owner = "cnr-isti-vclab";
-        repo = "vcglib";
-        rev = vcglibRev;
-        sha256 = "0xpnjpwpj57hgai184rzyk9lbq6d9vbjzr477dvl5nplpwa420m1";
-        name = "vcglib-${vcglibRev}";
-      })
-    ];
-
-  sourceRoot = "meshlab-${meshlabRev}";
-
-  # Meshlab is not format-security clean; without disabling hardening, we get:
-  #     ../../external/qhull-2003.1/src/io.c:2169:3: error: format not a string literal and no format arguments [-Werror=format-security]
-  #        fprintf(fp, endfmt);
-  #        ^~~~~~~
-  hardeningDisable = [ "format" ];
-
-  enableParallelBuilding = true;
-
-  prePatch =
-    ''
-      # MeshLab has ../vcglib hardcoded everywhere, so move the source dir
-      mv ../vcglib-${vcglibRev} ../vcglib
-
-      # Make all source files writable so that patches can be applied.
-      chmod -R u+w ..
-
-      patch -Np1 --directory=../vcglib -i ${import_bundle_out_patch}
-
-      patch -Np1 -i ${external_patch}
-      # Individual libraries
-      patch -Np1 -i ${_3ds_patch}
-      patch -Np1 -i ${muparser_patch}
-    ''
-    ;
-
-  buildPhase = ''
-    cd src
-    export NIX_LDFLAGS="-rpath $out/opt/meshlab $NIX_LDFLAGS"
-
-    pushd external
-    qmake -recursive $QMAKE_FLAGS external.pro
-    buildPhase
-    popd
-    qmake -recursive $QMAKE_FLAGS meshlab_full.pro
-    buildPhase
-  '';
-
-  installPhase = ''
-    mkdir -p $out/opt/meshlab $out/bin
-    cp -Rv distrib/* $out/opt/meshlab
-    ln -s $out/opt/meshlab/meshlab $out/bin/meshlab
-    ln -s $out/opt/meshlab/meshlabserver $out/bin/meshlabserver
-  '';
-
   buildInputs = [
     libGLU
     qtbase
@@ -121,14 +37,60 @@ in mkDerivation {
     lib3ds
     bzip2
     muparser
+    eigen
+    glew
+    gmp
     levmar
+    qhull
+  ];
+
+  nativeBuildInputs = [ cmake ];
+
+  patches = [
+    # Make cmake use the system qhull. The next meshlab will not need this patch because it is already in master.
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/cnr-isti-vclab/meshlab/pull/747.patch";
+      sha256 = "0wx9f6zn458xz3lsqcgvsbwh1pgi3g0lah93nlbsb0sagng7n565";
+    })
+  ];
+
+  preConfigure = ''
+    substituteAll ${./meshlab.desktop} install/linux/resources/meshlab.desktop
+    cd src
+  '';
+
+  cmakeFlags = [
+    "-DALLOW_BUNDLED_EIGEN=OFF"
+    "-DALLOW_BUNDLED_GLEW=OFF"
+    "-DALLOW_BUNDLED_LIB3DS=OFF"
+    "-DALLOW_BUNDLED_MUPARSER=OFF"
+    "-DALLOW_BUNDLED_QHULL=OFF"
+    # disable when available in nixpkgs
+    "-DALLOW_BUNDLED_OPENCTM=ON"
+    "-DALLOW_BUNDLED_SSYNTH=ON"
+    # some plugins are disabled unless these are on
+    "-DALLOW_BUNDLED_NEWUOA=ON"
+    "-DALLOW_BUNDLED_LEVMAR=ON"
   ];
 
+  postFixup = ''
+    patchelf --add-needed $out/lib/meshlab/libmeshlab-common.so $out/bin/.meshlab-wrapped
+    patchelf --add-needed $out/lib/meshlab/libmeshlab-common.so $out/bin/.meshlabserver-wrapped
+  '';
+
+  # Meshlab is not format-security clean; without disabling hardening, we get:
+  # src/common/GLLogStream.h:61:37: error: format not a string literal and no format arguments [-Werror=format-security]
+  #  61 |         int chars_written = snprintf(buf, buf_size, f, std::forward<Ts>(ts)...);
+  #     |
+  hardeningDisable = [ "format" ];
+
+  enableParallelBuilding = true;
+
   meta = {
     description = "A system for processing and editing 3D triangular meshes.";
     homepage = "http://www.meshlab.net/";
     license = lib.licenses.gpl3;
-    maintainers = with lib.maintainers; [viric];
+    maintainers = with lib.maintainers; [ viric ];
     platforms = with lib.platforms; linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/meshlab/meshlab.desktop b/nixpkgs/pkgs/applications/graphics/meshlab/meshlab.desktop
new file mode 100644
index 000000000000..aa8de186440d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/meshlab/meshlab.desktop
@@ -0,0 +1,14 @@
+[Desktop Entry]
+Name=MeshLab
+Version=@version@
+Name[en_GB]=MeshLab
+GenericName=Mesh processing
+GenericName[en_GB]=Mesh processing
+Comment=View and process meshes
+Type=Application
+Exec=@out@/bin/meshlab %U
+TryExec=@out@/bin/meshlab
+Icon=@out@/share/icons/hicolor/meshlab.png
+Terminal=false
+MimeType=model/mesh;application/x-3ds;image/x-3ds;model/x-ply;application/sla;model/x-quad-object;model/x-geomview-off;application/x-cyclone-ptx;application/x-vmi;application/x-bre;model/vnd.collada+xml;model/openctm;application/x-expe-binary;application/x-expe-ascii;application/x-xyz;application/x-gts;chemical/x-pdb;application/x-tri;application/x-asc;model/x3d+xml;model/x3d+vrml;model/vrml;model/u3d;model/idtf;
+Categories=Graphics;3DGraphics;Viewer;Qt;
diff --git a/nixpkgs/pkgs/applications/graphics/mypaint/default.nix b/nixpkgs/pkgs/applications/graphics/mypaint/default.nix
index 5ebbee0e4d6f..7267e8401600 100644
--- a/nixpkgs/pkgs/applications/graphics/mypaint/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/mypaint/default.nix
@@ -1,13 +1,14 @@
 { stdenv
 , fetchFromGitHub
 , gtk3
-, intltool
+, gettext
 , json_c
 , lcms2
 , libpng
 , librsvg
 , gobject-introspection
 , libmypaint
+, hicolor-icon-theme
 , mypaint-brushes
 , gdk-pixbuf
 , pkgconfig
@@ -20,23 +21,25 @@ let
   inherit (python3.pkgs) pycairo pygobject3 numpy buildPythonApplication;
 in buildPythonApplication rec {
   pname = "mypaint";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner = "mypaint";
     repo = "mypaint";
     rev = "v${version}";
-    sha256 = "180kyilhf81ndhwl1hlvy82gh6hxpcvka2d1nkghbpgy431rls6r";
+    sha256 = "rVKcxzWZRLcuxK8xRyRgvitXAh4uOEyqHswLeTdA2Mk=";
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [
-    intltool
+    gettext
     pkgconfig
     swig
     wrapGAppsHook
     gobject-introspection # for setup hook
+    hicolor-icon-theme # fór setup hook
   ];
+
   buildInputs = [
     gtk3
     gdk-pixbuf
@@ -48,6 +51,9 @@ in buildPythonApplication rec {
     librsvg
     pycairo
     pygobject3
+
+    # Mypaint checks for a presence of this theme scaffold and crashes when not present.
+    hicolor-icon-theme
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/nomacs/default.nix b/nixpkgs/pkgs/applications/graphics/nomacs/default.nix
index 67e95aec7585..d23c02dbbdff 100644
--- a/nixpkgs/pkgs/applications/graphics/nomacs/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/nomacs/default.nix
@@ -18,13 +18,13 @@
 
 mkDerivation rec {
   pname = "nomacs";
-  version = "3.14.2";
+  version = "3.17.2206";
 
   src = fetchFromGitHub {
     owner = "nomacs";
     repo = "nomacs";
     rev = version;
-    sha256 = "1vms13kyg7cpqi2hxvrrhlnl7cq92ijr7dm1kl5ryglpcagqv811";
+    sha256 = "1bq7bv4p7w67172y893lvpk90d6fgdpnylynbj2kn8m2hs6khya4";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/graphics/odafileconverter/default.nix b/nixpkgs/pkgs/applications/graphics/odafileconverter/default.nix
new file mode 100644
index 000000000000..0378c4db13b6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/odafileconverter/default.nix
@@ -0,0 +1,53 @@
+{ lib, stdenv, mkDerivation, dpkg, fetchurl, qtbase }:
+
+let
+  # To obtain the version you will need to run the following command:
+  #
+  # dpkg-deb -I ${odafileconverter.src} | grep Version
+  version = "21.7.0.0";
+  rpath = "$ORIGIN:${lib.makeLibraryPath [ stdenv.cc.cc qtbase ]}";
+
+in mkDerivation {
+  pname = "oda-file-converter";
+  inherit version;
+  nativeBuildInputs = [ dpkg ];
+
+  src = fetchurl {
+    # NB: this URL is not stable (i.e. the underlying file and the corresponding version will change over time)
+    url = "https://download.opendesign.com/guestfiles/ODAFileConverter/ODAFileConverter_QT5_lnxX64_7.2dll.deb";
+    sha256 = "0sa21nnwzqb6g7gl0z43smqgcd9h3xipj3cq2cl7ybfh3cvcxfi9";
+  };
+
+  unpackPhase = ''
+    dpkg -x $src oda_unpacked
+    sourceRoot=$PWD/oda_unpacked
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin $out/lib
+    cp -vr $sourceRoot/usr/bin/ODAFileConverter_${version} $out/libexec
+    cp -vr $sourceRoot/usr/share $out/share
+  '';
+
+  dontWrapQtApps = true;
+  fixupPhase = ''
+    echo "setting interpreter"
+    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/libexec/ODAFileConverter
+    patchelf --set-rpath '${rpath}' $out/libexec/ODAFileConverter
+    wrapQtApp $out/libexec/ODAFileConverter
+    mv $out/libexec/ODAFileConverter $out/bin
+
+    find $out/libexec -type f -executable | while read file; do
+      echo "patching $file"
+      patchelf --set-rpath '${rpath}' $file
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "For converting between different versions of .dwg and .dxf";
+    homepage = "https://www.opendesign.com/guestfiles/oda_file_converter";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ nagisa ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/opentoonz/default.nix b/nixpkgs/pkgs/applications/graphics/opentoonz/default.nix
new file mode 100644
index 000000000000..68830699699e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/opentoonz/default.nix
@@ -0,0 +1,51 @@
+{ boost, cmake, fetchFromGitHub, freeglut, freetype, glew, libjpeg, libmypaint
+, libpng, libtiff, libusb1, lz4, lzma, lzo, openblas, pkgconfig, qtbase
+, qtmultimedia, qtscript, stdenv, superlu, wrapQtAppsHook, }:
+let source = import ./source.nix { inherit fetchFromGitHub; };
+in stdenv.mkDerivation rec {
+  inherit (source) src;
+
+  pname = "opentoonz";
+  version = source.versions.opentoonz;
+
+  nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
+
+  buildInputs = [
+    boost
+    freeglut
+    freetype
+    glew
+    libjpeg
+    libmypaint
+    libpng
+    libtiff
+    libusb1
+    lz4
+    lzma
+    lzo
+    openblas
+    qtbase
+    qtmultimedia
+    qtscript
+    superlu
+  ];
+
+  postUnpack = "sourceRoot=$sourceRoot/toonz";
+
+  cmakeDir = "../sources";
+  cmakeFlags = [
+    "-DTIFF_INCLUDE_DIR=${libtiff.dev}/include"
+    "-DTIFF_LIBRARY=${libtiff.out}/lib/libtiff.so"
+  ];
+
+  postInstall = ''
+    sed -i '/cp -r .*stuff/a\    chmod -R u+w $HOME/.config/OpenToonz/stuff' $out/bin/opentoonz
+  '';
+
+  meta = {
+    description = "Full-featured 2D animation creation software";
+    homepage = "https://opentoonz.github.io/";
+    license = stdenv.lib.licenses.bsd3;
+    maintainers = with stdenv.lib.maintainers; [ chkno ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/opentoonz/libtiff.nix b/nixpkgs/pkgs/applications/graphics/opentoonz/libtiff.nix
new file mode 100644
index 000000000000..6663c47553e3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/opentoonz/libtiff.nix
@@ -0,0 +1,21 @@
+# Per https://github.com/opentoonz/opentoonz/blob/master/doc/how_to_build_linux.md ,
+# opentoonz requires its own modified version of libtiff.  We still build it as
+# a separate package
+#  1. For visibility for tools like vulnix, and
+#  2. To avoid a diamond-dependency problem with qt linking the normal libtiff
+#     and opentoonz linking qt and this modified libtiff, we build a qt against
+#     this modified libtiff as well.
+
+{ fetchFromGitHub, libtiff }:
+let source = import ./source.nix { inherit fetchFromGitHub; };
+in libtiff.overrideAttrs (old: {
+  inherit (source) src;
+  version = source.versions.libtiff + "-opentoonz";
+  postUnpack = (old.postUnpack or "") + ''
+    sourceRoot="$sourceRoot/thirdparty/tiff-${source.versions.libtiff}"
+  '';
+  # opentoonz uses internal libtiff headers
+  postInstall = (old.postInstall or "") + ''
+    cp libtiff/{tif_config,tif_dir,tiffiop}.h $dev/include
+  '';
+})
diff --git a/nixpkgs/pkgs/applications/graphics/opentoonz/source.nix b/nixpkgs/pkgs/applications/graphics/opentoonz/source.nix
new file mode 100644
index 000000000000..7378d2f5f965
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/opentoonz/source.nix
@@ -0,0 +1,16 @@
+# opentoonz's source archive contains both opentoonz's source and a modified
+# version of libtiff that opentoonz requires.
+
+{ fetchFromGitHub, }: rec {
+  versions = {
+    opentoonz = "1.4.0";
+    libtiff = "4.0.3";
+  };
+
+  src = fetchFromGitHub {
+    owner = "opentoonz";
+    repo = "opentoonz";
+    rev = "v${versions.opentoonz}";
+    sha256 = "0vgclx2yydsm5i2smff3fj8m750nhf35wfhva37kywgws01s189b";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/paraview/default.nix b/nixpkgs/pkgs/applications/graphics/paraview/default.nix
index 15d70d143081..b201f9dbf0da 100644
--- a/nixpkgs/pkgs/applications/graphics/paraview/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/paraview/default.nix
@@ -1,26 +1,33 @@
-{ stdenv, fetchFromGitHub, cmake, makeWrapper, qtbase , qttools, python
-, libGLU, libGL , libXt, qtx11extras, qtxmlpatterns , mkDerivation }:
+{ boost, cmake, fetchFromGitHub, ffmpeg, qtbase, qtx11extras,
+  qttools, qtxmlpatterns, qtsvg, gdal, gfortran, libXt, makeWrapper,
+  mkDerivation, ninja, openmpi, python3, stdenv, tbb, libGLU, libGL }:
 
 mkDerivation rec {
   pname = "paraview";
-  version = "5.6.3";
+  version = "5.8.0";
 
-  # fetching from GitHub instead of taking an "official" source
-  # tarball because of missing submodules there
   src = fetchFromGitHub {
     owner = "Kitware";
     repo = "ParaView";
     rev = "v${version}";
-    sha256 = "0zcij59pg47c45gfddnpbin13w16smzhcbivzm1k4pg4366wxq1q";
+    sha256 = "1mka6wwg9mbkqi3phs29mvxq6qbc44sspbm4awwamqhilh4grhrj";
     fetchSubmodules = true;
   };
 
-  cmakeFlags = [
-    "-DPARAVIEW_ENABLE_PYTHON=ON"
-    "-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON"
-    "-DPARAVIEW_ENABLE_EMBEDDED_DOCUMENTATION=OFF"
-    "-DOpenGL_GL_PREFERENCE=GLVND"
-  ];
+  # Avoid error: format not a string literal and
+  # no format arguments [-Werror=format-security]
+  preConfigure = ''
+    substituteInPlace VTK/Common/Core/vtkLogger.h \
+      --replace 'vtkLogScopeF(verbosity_name, __func__)' 'vtkLogScopeF(verbosity_name, "%s", __func__)'
+
+    substituteInPlace VTK/Common/Core/vtkLogger.h \
+      --replace 'vtkVLogScopeF(level, __func__)' 'vtkVLogScopeF(level, "%s", __func__)'
+  '';
+
+  # Find the Qt platform plugin "minimal"
+  patchPhase = ''
+    export QT_PLUGIN_PATH=${qtbase.bin}/${qtbase.qtPluginPrefix}
+  '';
 
   # During build, binaries are called that rely on freshly built
   # libraries.  These reside in build/lib, and are not found by
@@ -29,37 +36,50 @@ mkDerivation rec {
     export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/lib:$PWD/VTK/ThirdParty/vtkm/vtk-m/lib
   '';
 
-  enableParallelBuilding = true;
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-DPARAVIEW_ENABLE_FFMPEG=ON"
+    "-DPARAVIEW_ENABLE_GDAL=ON"
+    "-DPARAVIEW_ENABLE_MOTIONFX=ON"
+    "-DPARAVIEW_ENABLE_VISITBRIDGE=ON"
+    "-DPARAVIEW_ENABLE_XDMF3=ON"
+    "-DPARAVIEW_INSTALL_DEVELOPMENT_FILES=ON"
+    "-DPARAVIEW_USE_MPI=ON"
+    "-DPARAVIEW_USE_PYTHON=ON"
+    "-DVTK_SMP_IMPLEMENTATION_TYPE=TBB"
+    "-DVTKm_ENABLE_MPI=ON"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+    "-DCMAKE_INSTALL_BINDIR=bin"
+    "-DOpenGL_GL_PREFERENCE=GLVND"
+    "-GNinja"
+  ];
 
   nativeBuildInputs = [
     cmake
     makeWrapper
+    ninja
+    gfortran
   ];
 
   buildInputs = [
-    python
-    python.pkgs.numpy
     libGLU libGL
     libXt
+    openmpi
+    (python3.withPackages (ps: with ps; [ numpy matplotlib mpi4py ]))
+    tbb
+    boost
+    ffmpeg
+    gdal
     qtbase
     qtx11extras
     qttools
     qtxmlpatterns
+    qtsvg
   ];
 
-  # Paraview links into the Python library, resolving symbolic links on the way,
-  # so we need to put the correct sitePackages (with numpy) back on the path
-  preFixup = ''
-    wrapQtApp $out/bin/paraview \
-      --prefix PYTHONPATH "${python.pkgs.numpy}/${python.sitePackages}"
-    wrapQtApp $out/bin/pvbatch \
-      --prefix PYTHONPATH "${python.pkgs.numpy}/${python.sitePackages}"
-    wrapQtApp $out/bin/pvpython \
-      --prefix PYTHONPATH "${python.pkgs.numpy}/${python.sitePackages}"
-  '';
-
   meta = with stdenv.lib; {
-    homepage = "http://www.paraview.org/";
+    homepage = "https://www.paraview.org/";
     description = "3D Data analysis and visualization application";
     license = licenses.free;
     maintainers = with maintainers; [ guibert ];
diff --git a/nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix b/nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix
index e667f7c0f1ab..08dc87f6684a 100644
--- a/nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/pdfcpu/default.nix
@@ -2,16 +2,19 @@
 
 buildGoModule rec {
   pname = "pdfcpu";
-  version = "0.3.3";
+  version = "0.3.5";
 
   src = fetchFromGitHub {
     owner = "pdfcpu";
     repo = pname;
     rev = "v${version}";
-    sha256 = "09z4z2csp7ld47q36x2id5zadaihisbnk7bkdvci826hwm8km7sl";
+    sha256 = "0fb7l1h4dhn100y2ydq50cgj63fbr4p11x8h803rv6x3xwmviwcg";
   };
 
-  vendorSha256 = "09alkpfyxapycv6zsaz7prgbr0a1jzd78n7w2mh01mg4hhb2j3k7";
+  vendorSha256 = "06xlwygqw3kzbjqlx09rs9hl4pfsmay5pj4c5hvkrj5z123ldvyw";
+
+  # No tests
+  doCheck = false;
 
   subPackages = [ "cmd/pdfcpu" ];
 
@@ -20,6 +23,5 @@ buildGoModule rec {
     homepage = "https://pdfcpu.io";
     license = licenses.asl20;
     maintainers = with maintainers; [ doronbehar ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/graphics/pencil/default.nix b/nixpkgs/pkgs/applications/graphics/pencil/default.nix
index edd923822ea3..19e8121ac08d 100644
--- a/nixpkgs/pkgs/applications/graphics/pencil/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/pencil/default.nix
@@ -91,7 +91,7 @@ in stdenv.mkDerivation rec {
       $out/opt/pencil/pencil
 
     # fix missing libudev
-    ln -s ${systemd.lib}/lib/libudev.so.1 $out/opt/pencil/libudev.so.1
+    ln -s ${lib.getLib systemd}/lib/libudev.so.1 $out/opt/pencil/libudev.so.1
     wrapProgram $out/opt/pencil/pencil \
       --prefix LD_LIBRARY_PATH : $out/opt/pencil
   '';
diff --git a/nixpkgs/pkgs/applications/graphics/processing/default.nix b/nixpkgs/pkgs/applications/graphics/processing/default.nix
index cad6a35ce3f6..de5ae4fcbfd3 100644
--- a/nixpkgs/pkgs/applications/graphics/processing/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/processing/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "processing";
-  version = "3.5.3";
+  version = "3.5.4";
 
   src = fetchFromGitHub {
     owner = "processing";
     repo = "processing";
-    rev = "processing-0269-${version}";
-    sha256 = "0ajniy3a0i0rx7is46r85yh3ah4zm4ra1gbllmihw9pmnfjgfajn";
+    rev = "processing-0270-${version}";
+    sha256 = "0cvv8jda9y8qnfcsziasyv3w7h3w22q78ihr23cm4an63ghxci58";
   };
 
   nativeBuildInputs = [ ant rsync makeWrapper ];
@@ -22,8 +22,10 @@ stdenv.mkDerivation rec {
     # do not download a file during build
     ${xmlstarlet}/bin/xmlstarlet ed --inplace -P -d '//get[@src="http://download.processing.org/reference.zip"]' build/build.xml
     install -D -m0444 ${fetchurl {
-                          url    = "http://download.processing.org/reference.zip";
-                          sha256 = "198bpk8mzns6w5h0zdf50wr6iv7sgdi6v7jznj5rbsnpgyilxz35";
+                          # Use archive.org link for reproducibility until the following issue is fixed:
+                          # https://github.com/processing/processing/issues/5711
+                          url = "https://web.archive.org/web/20200406132357/https://download.processing.org/reference.zip";
+                          sha256 = "093hc7kc9wfxqgf5dzfmfp68pbsy8x647cj0a25vgjm1swi61zbi";
                         }
                        } ./java/reference.zip
 
diff --git a/nixpkgs/pkgs/applications/graphics/qosmic/default.nix b/nixpkgs/pkgs/applications/graphics/qosmic/default.nix
new file mode 100644
index 000000000000..96823441b6e1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/graphics/qosmic/default.nix
@@ -0,0 +1,70 @@
+{ mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, qmake
+, wrapQtAppsHook
+, qtbase
+, pkg-config
+, lua
+, flam3
+, libxml2
+, libpng
+, libjpeg
+, lib
+}:
+
+mkDerivation rec {
+  pname = "qosmic";
+  version = "1.6.0";
+
+  src = fetchFromGitHub {
+    owner = "bitsed";
+    repo = "qosmic";
+    rev = "v${version}";
+    sha256 = "13nw1mkdib14430r21mj352v62vi546vf184vyhxm7yjjygyra1w";
+  };
+
+  patches = [
+    # Allow overriding PREFIX (to install to $out,
+    # written while creating this derivation)
+    # https://github.com/bitsed/qosmic/pull/39
+    (fetchpatch {
+      name = "allow-overriding-PREFIX.patch";
+      url = "https://github.com/bitsed/qosmic/commit/77fb3a577b0710efae2a1d9ed97c26ae16f3a5ba.patch";
+      sha256 = "0v9hj9s78cb6bg8ca0wjkbr3c7ml1n51n8h4a70zpzzgzz7rli5b";
+    })
+    # Fix QButtonGroup include errors with Qt 5.11:
+    # Will be part of the next post-1.6.0 release
+    (fetchpatch {
+      name = "fix-class-QButtonGroup-include-errors-with-Qt-5.11.patch";
+      url = "https://github.com/bitsed/qosmic/commit/3f6e1ea8d384a124dbc2d568171a4da798480752.patch";
+      sha256 = "0bp6b759plkqs32nvfpkfvf3qqzc9716k3ycwnjvwabbvpg1xwbl";
+    })
+  ];
+
+  nativeBuildInputs = [ qmake wrapQtAppsHook pkg-config ];
+
+  buildInputs = [
+    qtbase
+    lua
+    flam3
+    libxml2
+    libpng
+    libjpeg
+  ];
+
+  qmakeFlags = [
+    # Use pkg-config to correctly locate library paths
+    "-config" "link_pkgconfig"
+  ];
+
+  meta = with lib; {
+    description = "A cosmic recursive flame fractal editor";
+    homepage = "https://github.com/bitsed/qosmic";
+    license = licenses.gpl3Plus;
+    maintainers = [ maintainers.raboof ];
+    # It might be possible to make it work on OSX,
+    # but this has not been tested.
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix b/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix
index 2683206c8e4c..5f39116e85fb 100644
--- a/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/renderdoc/default.nix
@@ -13,14 +13,14 @@ let
   pythonPackages = python3Packages;
 in
 mkDerivation rec {
-  version = "1.8";
+  version = "1.9";
   pname = "renderdoc";
 
   src = fetchFromGitHub {
     owner = "baldurk";
     repo = "renderdoc";
     rev = "v${version}";
-    sha256 = "177j893abplj8wd8j4ava58m1mr7qq8fsffsq0w4hf5xgl5w8fq8";
+    sha256 = "18nparkd435hdbm924jfdvmym7f3xd2fcy96jr4lrkl5rhj2sf85";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/graphics/runwayml/default.nix b/nixpkgs/pkgs/applications/graphics/runwayml/default.nix
index eb8ecc34b8f3..9366276ebf84 100644
--- a/nixpkgs/pkgs/applications/graphics/runwayml/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/runwayml/default.nix
@@ -6,20 +6,19 @@
 
 let
   pname = "runwayml";
-  version = "0.10.20";
+  version = "0.14.3";
   name = "${pname}-${version}";
 
   src = fetchurl {
-    url = "https://runway-releases.s3.amazonaws.com/Runway%20${version}.AppImage";
-    sha256 = "1wi94xi8nrwfc4v2j1crlmwr0nxg95ffp5h4hxd84crvya8ibxgz";
-    name="${pname}-${version}.AppImage";
+    url = "https://runway-releases.s3.amazonaws.com/Runway-${version}.AppImage";
+    sha256 = "1bx8j39wd2z6f32hdvmk9z77bivnizzdhn296kin2nnqgq6v6y93";
   };
 
   binary = appimageTools.wrapType2 {
     name = pname;
     inherit src;
   };
-  # we only use this to extract the icon
+  # we only use this to extract the icon and desktop file
   appimage-contents = appimageTools.extractType2 {
     inherit name src;
   };
diff --git a/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix b/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix
index 0615b00f135e..3cce81ef8af0 100644
--- a/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/sane/backends/airscan/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, pkg-config, avahi, libsoup, libjpeg, libpng
+{ lib, stdenv, fetchFromGitHub, pkg-config, avahi, libsoup, libjpeg, libpng, gnutls
 , sane-backends, meson, ninja }:
 stdenv.mkDerivation rec {
   pname = "sane-airscan";
-  version = "0.99.3";
+  version = "0.99.16";
 
   nativeBuildInputs = [ meson ninja pkg-config ];
-  buildInputs = [ avahi libsoup libjpeg libpng sane-backends ];
+  buildInputs = [ avahi libsoup libjpeg libpng gnutls sane-backends ];
 
   src = fetchFromGitHub {
     owner = "alexpevzner";
     repo = pname;
     rev = version;
-    sha256 = "1sxp207vzjzi0ad5202n46acbha4dfmzcijl2v0b9j9lj4k42a8k";
+    sha256 = "00lgcdbpns0shwlpkvrpfm4z05s7v5q3al4kcw6ii7xnkzmv1721";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/graphics/sane/backends/default.nix b/nixpkgs/pkgs/applications/graphics/sane/backends/default.nix
index 6aba42d33e63..ad2681d25fe5 100644
--- a/nixpkgs/pkgs/applications/graphics/sane/backends/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/sane/backends/default.nix
@@ -1,10 +1,10 @@
 { callPackage, fetchurl, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
-  version = "1.0.28";
+  version = "1.0.30";
 
   src = fetchurl {
-    url = "https://gitlab.com/sane-project/backends/uploads/9e718daff347826f4cfe21126c8d5091/sane-backends-${version}.tar.gz";
-    sha256 = "00yy8q9hqdf0zjxxl4d8njr9zf0hhi3a9ib23ikc2anqf8zhy9ii";
+    url = "https://gitlab.com/sane-project/backends/uploads/c3dd60c9e054b5dee1e7b01a7edc98b0/sane-backends-${version}.tar.gz";
+    sha256 = "18vryaycps3zpjzxh0wjgg8nv2f4pdvcfxxmdfj28qbzqjlrcp9z";
   };
 })
diff --git a/nixpkgs/pkgs/applications/graphics/shotwell/default.nix b/nixpkgs/pkgs/applications/graphics/shotwell/default.nix
index b03d0a01dd6f..c041d2dde8cc 100644
--- a/nixpkgs/pkgs/applications/graphics/shotwell/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/shotwell/default.nix
@@ -17,6 +17,7 @@
 , libgudev
 , libraw
 , glib
+, glib-networking
 , json-glib
 , gcr
 , libgee
@@ -39,11 +40,11 @@
 
 stdenv.mkDerivation rec {
   pname = "shotwell";
-  version = "0.31.1";
+  version = "0.31.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0mbgrad4d4snffw2z3rkhwqq1bkxdgy52pblx99vjadvpgspb034";
+    sha256 = "0ywzr6vgcz8yy60v0jp55na9lgqi4dbh2vakfphkcml1gpah0r2l";
   };
 
   nativeBuildInputs = [
@@ -77,6 +78,7 @@ stdenv.mkDerivation rec {
     libraw
     json-glib
     glib
+    glib-networking
     gdk-pixbuf
     librsvg
     librest
diff --git a/nixpkgs/pkgs/applications/graphics/swingsane/default.nix b/nixpkgs/pkgs/applications/graphics/swingsane/default.nix
index fc9132ec0b40..ffc19653dade 100644
--- a/nixpkgs/pkgs/applications/graphics/swingsane/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/swingsane/default.nix
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
       desktopName = "SwingSane";
       genericName = "Scan from local or remote SANE servers";
       comment = meta.description;
-      categories = "Office;Application;";
+      categories = "Office;";
     };
 
   in ''
diff --git a/nixpkgs/pkgs/applications/graphics/ufraw/default.nix b/nixpkgs/pkgs/applications/graphics/ufraw/default.nix
index 9e05a41e8483..e1a0cfa95204 100644
--- a/nixpkgs/pkgs/applications/graphics/ufraw/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/ufraw/default.nix
@@ -66,6 +66,8 @@ stdenv.mkDerivation {
   meta = with stdenv.lib; {
     homepage = "https://github.com/sergiomb2/ufraw";
 
+    broken = true; # https://github.com/NixOS/nixpkgs/issues/97946
+
     description = "Utility to read and manipulate raw images from digital cameras";
 
     longDescription =
diff --git a/nixpkgs/pkgs/applications/graphics/viewnior/default.nix b/nixpkgs/pkgs/applications/graphics/viewnior/default.nix
index 41463a7627ae..1addb2d7bd56 100644
--- a/nixpkgs/pkgs/applications/graphics/viewnior/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/viewnior/default.nix
@@ -1,24 +1,38 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, gtk2, libpng, exiv2, lcms
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, desktop-file-utils, gtk2, libpng, exiv2, lcms
 , intltool, gettext, shared-mime-info, glib, gdk-pixbuf, perl}:
 
 stdenv.mkDerivation rec {
   pname = "viewnior";
-  version = "1.6";
+  version = "1.7";
 
   src = fetchFromGitHub {
-    owner = "xsisqox";
+    owner = "hellosiyan";
     repo = "Viewnior";
     rev = "${pname}-${version}";
-    sha256 = "06ppv3r85l3id4ij6h4y5fgm3nib2587fdrdv9fccyi75zk7fs0p";
+    sha256 = "0y4hk3vq8psba5k615w18qj0kbdfp5w0lm98nv5apy6hmcpwfyig";
   };
 
-  nativeBuildInputs = [ autoreconfHook ];
-  buildInputs =
-    [ pkgconfig gtk2 libpng exiv2 lcms intltool gettext
-      shared-mime-info glib gdk-pixbuf perl
-    ];
-
-  meta = {
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkgconfig
+    desktop-file-utils
+    intltool
+    gettext
+  ];
+
+  buildInputs = [
+    gtk2
+    libpng
+    exiv2
+    lcms
+    shared-mime-info
+    glib
+    gdk-pixbuf
+    perl
+  ];
+
+  meta = with stdenv.lib; {
     description = "Fast and simple image viewer";
     longDescription =
       '' Viewnior is insipred by big projects like Eye of Gnome, because of it's
@@ -27,13 +41,9 @@ stdenv.mkDerivation rec {
          with the quality of it's functions. The program is made with better integration
          in mind (follows Gnome HIG2).
       '';
-
-    license = stdenv.lib.licenses.gpl3;
-
+    license = licenses.gpl3;
     homepage = "http://siyanpanayotov.com/project/viewnior/";
-
-    maintainers = [ stdenv.lib.maintainers.smironov ];
-
-    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
+    maintainers = with maintainers; [ smironov artturin ];
+    platforms = platforms.gnu ++ platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/graphics/write_stylus/default.nix b/nixpkgs/pkgs/applications/graphics/write_stylus/default.nix
index 31fc40450265..8396ce72e506 100644
--- a/nixpkgs/pkgs/applications/graphics/write_stylus/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/write_stylus/default.nix
@@ -1,29 +1,22 @@
-{ mkDerivation, stdenv, lib, qtbase, qtsvg, libglvnd, fetchurl, makeDesktopItem }:
+{ mkDerivation, stdenv, lib, qtbase, qtsvg, libglvnd, libX11, libXi, fetchurl, makeDesktopItem }:
 let
-  # taken from: https://www.iconfinder.com/icons/50835/edit_pencil_write_icon
-  # license: Free for commercial use
-  desktopIcon = fetchurl {
-    url = "https://www.iconfinder.com/icons/50835/download/png/256";
-    sha256 = "0abdya42yf9alxbsmc2nf8jwld50zfria6z3d4ncvp1zw2a9jhb8";
-  };
-in
-mkDerivation rec {
-  pname = "write_stylus";
-  version = "209";
-
   desktopItem = makeDesktopItem {
     name = "Write";
     exec = "Write";
     comment = "A word processor for handwriting";
-    icon = desktopIcon;
+    icon = "write_stylus";
     desktopName = "Write";
     genericName = "Write";
     categories = "Office;Graphics";
   };
+in
+mkDerivation rec {
+  pname = "write_stylus";
+  version = "300";
 
   src = fetchurl {
     url = "http://www.styluslabs.com/write/write${version}.tar.gz";
-    sha256 = "1p6glp4vdpwl8hmhypayc4cvs3j9jfmjfhhrgqm2xkgl5bfbv2qd";
+    sha256 = "0h1wf3af7jzp3f3l8mlnshi83d7a4v4y8nfqfai4lmskyicqlz7c";
   };
 
   sourceRoot = ".";
@@ -36,15 +29,20 @@ mkDerivation rec {
     # symlink the binary to bin/
     ln -s $out/Write/Write $out/bin/Write
 
+    # Create desktop item
     mkdir -p $out/share/applications
     ln -s ${desktopItem}/share/applications/* $out/share/applications/
+    mkdir -p $out/share/icons
+    ln -s $out/Write/Write144x144.png $out/share/icons/write_stylus.png
   '';
   preFixup = let
     libPath = lib.makeLibraryPath [
       qtbase            # libQt5PrintSupport.so.5
       qtsvg             # libQt5Svg.so.5
       stdenv.cc.cc.lib  # libstdc++.so.6
-      libglvnd          # ibGL.so.1
+      libglvnd          # libGL.so.1
+      libX11            # libX11.so.6
+      libXi             # libXi.so.6
     ];
   in ''
     patchelf \
diff --git a/nixpkgs/pkgs/applications/graphics/xara/debian-patches.nix b/nixpkgs/pkgs/applications/graphics/xara/debian-patches.nix
deleted file mode 100644
index dd3061461868..000000000000
--- a/nixpkgs/pkgs/applications/graphics/xara/debian-patches.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-# Generated by debian-patches.sh from debian-patches.txt
-let
-  prefix = "http://patch-tracker.debian.org/patch/series/dl/xaralx/0.7r1785-5";
-in
-[
-  {
-    url = "${prefix}/30_gtk_wxwidgets_symbol_clash";
-    sha256 = "1rc9dh9mnp93mad96dkp7idyhhcw7h6w0g5s92mqgzj79hqgaziz";
-  }
-  {
-    url = "${prefix}/40_algorithm_include";
-    sha256 = "03jhl1qnxj7nl8malf6v1y24aldfz87x1p2jxp04mrr35nzvyyc0";
-  }
-  {
-    url = "${prefix}/50_update_imagemagick_version_parser";
-    sha256 = "1nilsqghlr649sc14n1aqkhdx7f66rq91gqccdpi17jwijs27497";
-  }
-  {
-    url = "${prefix}/remove-icon-suffix";
-    sha256 = "160zmkgwlsanqivnip89558yvd9zvqp8ks2wbyr2aigl2rafin22";
-  }
-  {
-    url = "${prefix}/45_fix_gcc4";
-    sha256 = "06zsj0z9v5n557gj8337v6xd26clbvm4dc0qhvpvzbisq81l9jyi";
-  }
-  {
-    url = "${prefix}/55_fix_contstuctor_call";
-    sha256 = "0b14glrcwhv0ja960h56n5jm4f9563ladap2pgaywihq485ql1c1";
-  }
-]
diff --git a/nixpkgs/pkgs/applications/graphics/xara/debian-patches.txt b/nixpkgs/pkgs/applications/graphics/xara/debian-patches.txt
deleted file mode 100644
index 5c95d401a323..000000000000
--- a/nixpkgs/pkgs/applications/graphics/xara/debian-patches.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-xaralx/0.7r1785-5
-30_gtk_wxwidgets_symbol_clash
-40_algorithm_include
-50_update_imagemagick_version_parser
-remove-icon-suffix
-45_fix_gcc4
-55_fix_contstuctor_call
diff --git a/nixpkgs/pkgs/applications/graphics/xara/default.nix b/nixpkgs/pkgs/applications/graphics/xara/default.nix
deleted file mode 100644
index 5e3c252435cd..000000000000
--- a/nixpkgs/pkgs/applications/graphics/xara/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{stdenv, fetchurl, automake, gettext, freetype, libxml2, pango, pkgconfig
-, wxGTK, gtk2, perl, zip}:
-
-stdenv.mkDerivation {
-  name = "xaralx-0.7r1785";
-
-  src = fetchurl {
-    url = "http://downloads2.xara.com/opensource/XaraLX-0.7r1785.tar.bz2";
-    sha256 = "05xbzq1i1vw2mdsv7zjqfpxfv3g1j0g5kks0gq6sh373xd6y8lyh";
-  };
-
-  nativeBuildInputs = [ automake pkgconfig gettext perl zip ];
-  buildInputs = [ wxGTK gtk2 libxml2 freetype pango ];
-
-  configureFlags = [ "--disable-svnversion" ];
-
-  patches = map fetchurl (import ./debian-patches.nix);
-
-  prePatch = "patchShebangs Scripts";
-
-  meta.broken = true;
-}
diff --git a/nixpkgs/pkgs/applications/graphics/xfractint/default.nix b/nixpkgs/pkgs/applications/graphics/xfractint/default.nix
index 8d36e4630dc5..08ef0cd7b584 100644
--- a/nixpkgs/pkgs/applications/graphics/xfractint/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/xfractint/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, libX11, libXft}:
 stdenv.mkDerivation rec {
   pname = "xfractint";
-  version = "20.04p14";
+  version = "20.04p16";
   # or fetchFromGitHub(owner,repo,rev) or fetchgit(rev)
   src = fetchurl {
     url = "https://www.fractint.net/ftp/current/linux/xfractint-${version}.tar.gz";
-    sha256 = "0jdqr639z862qrswwk5srmv4fj5d7rl8kcscpn6mlkx4jvjmca0f";
+    sha256 = "1ba77jifxv8jql044mdydh4p4ms4w5vw3qrqmcfzlvqfxk7h2m2f";
   };
 
   buildInputs = [libX11 libXft];
diff --git a/nixpkgs/pkgs/applications/graphics/yed/default.nix b/nixpkgs/pkgs/applications/graphics/yed/default.nix
index 9472f9312469..f92e910eacce 100644
--- a/nixpkgs/pkgs/applications/graphics/yed/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/yed/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yEd";
-  version = "3.20";
+  version = "3.20.1";
 
   src = fetchzip {
     url = "https://www.yworks.com/resources/yed/demo/${pname}-${version}.zip";
-    sha256 = "08j8lpn2nd41gavgrj03rlrxl04wcamq1y02f1x1569ykbhycb3m";
+    sha256 = "0sd73s700f3gqq5zq1psrqjg6ff2gv49f8vd37v6bv65vdxqxryq";
   };
 
   nativeBuildInputs = [ makeWrapper unzip ];
diff --git a/nixpkgs/pkgs/applications/graphics/yeetgif/default.nix b/nixpkgs/pkgs/applications/graphics/yeetgif/default.nix
index 3ae1b98661a6..84bcdee5b76e 100644
--- a/nixpkgs/pkgs/applications/graphics/yeetgif/default.nix
+++ b/nixpkgs/pkgs/applications/graphics/yeetgif/default.nix
@@ -18,6 +18,5 @@ buildGoPackage rec {
     homepage = "https://github.com/sgreben/yeetgif";
     license = with licenses; [ mit asl20 cc-by-nc-sa-40 ];
     maintainers = with maintainers; [ ajs124 ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/akonadi-paths.patch b/nixpkgs/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch
index ba6bbedeeae7..58390cba226b 100644
--- a/nixpkgs/pkgs/applications/kde/akonadi/akonadi-paths.patch
+++ b/nixpkgs/pkgs/applications/kde/akonadi/0001-akonadi-paths.patch
@@ -1,27 +1,42 @@
-Index: akonadi-19.08.0/src/akonadicontrol/agentmanager.cpp
-===================================================================
---- akonadi-19.08.0.orig/src/akonadicontrol/agentmanager.cpp
-+++ akonadi-19.08.0/src/akonadicontrol/agentmanager.cpp
-@@ -78,12 +78,12 @@ AgentManager::AgentManager(bool verbose,
-     mStorageController = new Akonadi::ProcessControl;
-     mStorageController->setShutdownTimeout(15 * 1000);   // the server needs more time for shutdown if we are using an internal mysqld
-     connect(mStorageController, &Akonadi::ProcessControl::unableToStart, this, &AgentManager::serverFailure);
--    mStorageController->start(QStringLiteral("akonadiserver"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
-+    mStorageController->start(QLatin1String(NIX_OUT "/bin/akonadiserver"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
+From 90969b9b36400d47b1afe761fb8468c1acb8a04a Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Mon, 13 Jul 2020 11:41:19 -0500
+Subject: [PATCH 1/3] akonadi paths
+
+---
+ src/akonadicontrol/agentmanager.cpp         |  4 ++--
+ src/akonadicontrol/agentprocessinstance.cpp |  2 +-
+ src/server/storage/dbconfigmysql.cpp        | 26 ++++-----------------
+ src/server/storage/dbconfigpostgresql.cpp   | 19 +++------------
+ 4 files changed, 11 insertions(+), 40 deletions(-)
+
+diff --git a/src/akonadicontrol/agentmanager.cpp b/src/akonadicontrol/agentmanager.cpp
+index 23b4a1f..c13b658 100644
+--- a/src/akonadicontrol/agentmanager.cpp
++++ b/src/akonadicontrol/agentmanager.cpp
+@@ -61,7 +61,7 @@ public:
+                 []() {
+                     QCoreApplication::instance()->exit(255);
+                 });
+-        start(QStringLiteral("akonadiserver"), args, RestartOnCrash);
++        start(QLatin1String(NIX_OUT "/bin/akonadiserver"), args, RestartOnCrash);
+     }
  
-     if (mAgentServerEnabled) {
-         mAgentServer = new Akonadi::ProcessControl;
-         connect(mAgentServer, &Akonadi::ProcessControl::unableToStart, this, &AgentManager::agentServerFailure);
--        mAgentServer->start(QStringLiteral("akonadi_agent_server"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
-+        mAgentServer->start(QLatin1String(NIX_OUT "/bin/akonadi_agent_server"), serviceArgs, Akonadi::ProcessControl::RestartOnCrash);
+     ~StorageProcessControl() override
+@@ -84,7 +84,7 @@ public:
+                 []() {
+                     qCCritical(AKONADICONTROL_LOG) << "Failed to start AgentServer!";
+                 });
+-        start(QStringLiteral("akonadi_agent_server"), args, RestartOnCrash);
++        start(QLatin1String(NIX_OUT "/bin/akonadi_agent_server"), args, RestartOnCrash);
      }
- }
  
-Index: akonadi-19.08.0/src/akonadicontrol/agentprocessinstance.cpp
-===================================================================
---- akonadi-19.08.0.orig/src/akonadicontrol/agentprocessinstance.cpp
-+++ akonadi-19.08.0/src/akonadicontrol/agentprocessinstance.cpp
-@@ -62,7 +62,7 @@ bool AgentProcessInstance::start(const A
+     ~AgentServerProcessControl() override
+diff --git a/src/akonadicontrol/agentprocessinstance.cpp b/src/akonadicontrol/agentprocessinstance.cpp
+index 4e58f7e..e8bb532 100644
+--- a/src/akonadicontrol/agentprocessinstance.cpp
++++ b/src/akonadicontrol/agentprocessinstance.cpp
+@@ -62,7 +62,7 @@ bool AgentProcessInstance::start(const AgentType &agentInfo)
      } else {
          Q_ASSERT(agentInfo.launchMethod == AgentType::Launcher);
          const QStringList arguments = QStringList() << executable << identifier();
@@ -30,11 +45,11 @@ Index: akonadi-19.08.0/src/akonadicontrol/agentprocessinstance.cpp
          mController->start(agentLauncherExec, arguments);
      }
      return true;
-Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
-===================================================================
---- akonadi-19.08.0.orig/src/server/storage/dbconfigmysql.cpp
-+++ akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
-@@ -83,7 +83,6 @@ bool DbConfigMysql::init(QSettings &sett
+diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
+index cac40f5..527649b 100644
+--- a/src/server/storage/dbconfigmysql.cpp
++++ b/src/server/storage/dbconfigmysql.cpp
+@@ -83,7 +83,6 @@ bool DbConfigMysql::init(QSettings &settings)
      // determine default settings depending on the driver
      QString defaultHostName;
      QString defaultOptions;
@@ -42,7 +57,7 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
      QString defaultCleanShutdownCommand;
  
  #ifndef Q_OS_WIN
-@@ -92,16 +91,7 @@ bool DbConfigMysql::init(QSettings &sett
+@@ -92,16 +91,7 @@ bool DbConfigMysql::init(QSettings &settings)
  #endif
  
      const bool defaultInternalServer = true;
@@ -60,7 +75,7 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
      if (!mysqladminPath.isEmpty()) {
  #ifndef Q_OS_WIN
          defaultCleanShutdownCommand = QStringLiteral("%1 --defaults-file=%2/mysql.conf --socket=%3/%4 shutdown")
-@@ -111,10 +101,10 @@ bool DbConfigMysql::init(QSettings &sett
+@@ -111,10 +101,10 @@ bool DbConfigMysql::init(QSettings &settings)
  #endif
      }
  
@@ -73,7 +88,7 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
      qCDebug(AKONADISERVER_LOG) << "Found mysqlcheck: " << mMysqlCheckPath;
  
      mInternalServer = settings.value(QStringLiteral("QMYSQL/StartServer"), defaultInternalServer).toBool();
-@@ -131,7 +121,7 @@ bool DbConfigMysql::init(QSettings &sett
+@@ -131,7 +121,7 @@ bool DbConfigMysql::init(QSettings &settings)
      mUserName = settings.value(QStringLiteral("User")).toString();
      mPassword = settings.value(QStringLiteral("Password")).toString();
      mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
@@ -82,7 +97,7 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
      mCleanServerShutdownCommand = settings.value(QStringLiteral("CleanServerShutdownCommand"), defaultCleanShutdownCommand).toString();
      settings.endGroup();
  
-@@ -141,9 +131,6 @@ bool DbConfigMysql::init(QSettings &sett
+@@ -141,9 +131,6 @@ bool DbConfigMysql::init(QSettings &settings)
          // intentionally not namespaced as we are the only one in this db instance when using internal mode
          mDatabaseName = QStringLiteral("akonadi");
      }
@@ -92,7 +107,7 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
  
      qCDebug(AKONADISERVER_LOG) << "Using mysqld:" << mMysqldPath;
  
-@@ -152,9 +139,6 @@ bool DbConfigMysql::init(QSettings &sett
+@@ -152,9 +139,6 @@ bool DbConfigMysql::init(QSettings &settings)
      settings.setValue(QStringLiteral("Name"), mDatabaseName);
      settings.setValue(QStringLiteral("Host"), mHostName);
      settings.setValue(QStringLiteral("Options"), mConnectionOptions);
@@ -102,7 +117,7 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
      settings.setValue(QStringLiteral("StartServer"), mInternalServer);
      settings.endGroup();
      settings.sync();
-@@ -209,7 +193,7 @@ bool DbConfigMysql::startInternalServer(
+@@ -209,7 +193,7 @@ bool DbConfigMysql::startInternalServer()
  #endif
  
      // generate config file
@@ -111,11 +126,11 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
      const QString localConfig  = StandardDirs::locateResourceFile("config", QStringLiteral("mysql-local.conf"));
      const QString actualConfig = StandardDirs::saveDir("data") + QLatin1String("/mysql.conf");
      if (globalConfig.isEmpty()) {
-Index: akonadi-19.08.0/src/server/storage/dbconfigpostgresql.cpp
-===================================================================
---- akonadi-19.08.0.orig/src/server/storage/dbconfigpostgresql.cpp
-+++ akonadi-19.08.0/src/server/storage/dbconfigpostgresql.cpp
-@@ -140,9 +140,7 @@ bool DbConfigPostgresql::init(QSettings
+diff --git a/src/server/storage/dbconfigpostgresql.cpp b/src/server/storage/dbconfigpostgresql.cpp
+index 09cdbd5..1c8996b 100644
+--- a/src/server/storage/dbconfigpostgresql.cpp
++++ b/src/server/storage/dbconfigpostgresql.cpp
+@@ -141,9 +141,7 @@ bool DbConfigPostgresql::init(QSettings &settings)
      // determine default settings depending on the driver
      QString defaultHostName;
      QString defaultOptions;
@@ -125,7 +140,7 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigpostgresql.cpp
      QString defaultPgData;
  
  #ifndef Q_WS_WIN // We assume that PostgreSQL is running as service on Windows
-@@ -153,12 +151,8 @@ bool DbConfigPostgresql::init(QSettings
+@@ -154,12 +152,8 @@ bool DbConfigPostgresql::init(QSettings &settings)
  
      mInternalServer = settings.value(QStringLiteral("QPSQL/StartServer"), defaultInternalServer).toBool();
      if (mInternalServer) {
@@ -139,7 +154,7 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigpostgresql.cpp
          defaultPgData = StandardDirs::saveDir("data", QStringLiteral("db_data"));
      }
  
-@@ -177,20 +171,14 @@ bool DbConfigPostgresql::init(QSettings
+@@ -178,20 +172,14 @@ bool DbConfigPostgresql::init(QSettings &settings)
      mUserName = settings.value(QStringLiteral("User")).toString();
      mPassword = settings.value(QStringLiteral("Password")).toString();
      mConnectionOptions = settings.value(QStringLiteral("Options"), defaultOptions).toString();
@@ -162,7 +177,7 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigpostgresql.cpp
      qCDebug(AKONADISERVER_LOG) << "Found pg_upgrade:" << mPgUpgradePath;
      mPgData = settings.value(QStringLiteral("PgData"), defaultPgData).toString();
      if (mPgData.isEmpty()) {
-@@ -206,7 +194,6 @@ bool DbConfigPostgresql::init(QSettings
+@@ -207,7 +195,6 @@ bool DbConfigPostgresql::init(QSettings &settings)
          settings.setValue(QStringLiteral("Port"), mHostPort);
      }
      settings.setValue(QStringLiteral("Options"), mConnectionOptions);
@@ -170,3 +185,6 @@ Index: akonadi-19.08.0/src/server/storage/dbconfigpostgresql.cpp
      settings.setValue(QStringLiteral("InitDbPath"), mInitDbPath);
      settings.setValue(QStringLiteral("StartServer"), mInternalServer);
      settings.endGroup();
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch b/nixpkgs/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch
new file mode 100644
index 000000000000..ac9b3146e179
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/akonadi/0002-akonadi-timestamps.patch
@@ -0,0 +1,26 @@
+From b8c6a2a017321649db8fec553a644b8da2300514 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Mon, 13 Jul 2020 11:41:35 -0500
+Subject: [PATCH 2/3] akonadi timestamps
+
+---
+ src/server/storage/dbconfigmysql.cpp | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/src/server/storage/dbconfigmysql.cpp b/src/server/storage/dbconfigmysql.cpp
+index 527649b..08c3dd4 100644
+--- a/src/server/storage/dbconfigmysql.cpp
++++ b/src/server/storage/dbconfigmysql.cpp
+@@ -235,8 +235,7 @@ bool DbConfigMysql::startInternalServer()
+     bool confUpdate = false;
+     QFile actualFile(actualConfig);
+     // update conf only if either global (or local) is newer than actual
+-    if ((QFileInfo(globalConfig).lastModified() > QFileInfo(actualFile).lastModified()) ||
+-            (QFileInfo(localConfig).lastModified()  > QFileInfo(actualFile).lastModified())) {
++    if (true) {
+         QFile globalFile(globalConfig);
+         QFile localFile(localConfig);
+         if (globalFile.open(QFile::ReadOnly) && actualFile.open(QFile::WriteOnly)) {
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/0001-Revert-Make-Akonadi-installation-properly-relocatabl.patch b/nixpkgs/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch
index c3964c5c05b5..1a0bc000c804 100644
--- a/nixpkgs/pkgs/applications/kde/akonadi/0001-Revert-Make-Akonadi-installation-properly-relocatabl.patch
+++ b/nixpkgs/pkgs/applications/kde/akonadi/0003-akonadi-revert-make-relocatable.patch
@@ -1,19 +1,18 @@
-From bc018b4bc816a3b51deb9739bedbf8a2268d0684 Mon Sep 17 00:00:00 2001
-From: gnidorah <gnidorah@users.noreply.github.com>
-Date: Fri, 22 Dec 2017 17:36:03 +0300
-Subject: [PATCH] Revert "Make Akonadi installation properly relocatable"
+From 7afe018382cf68b477b35f87b666424d62d19ef4 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Mon, 13 Jul 2020 11:41:55 -0500
+Subject: [PATCH 3/3] akonadi revert make relocatable
 
-This reverts commit b2bb55f13f2ac783f89cc414de8c39f62fa2096a.
 ---
  CMakeLists.txt            | 3 ---
  KF5AkonadiConfig.cmake.in | 6 +++---
  2 files changed, 3 insertions(+), 6 deletions(-)
 
-Index: akonadi-19.08.0/CMakeLists.txt
-===================================================================
---- akonadi-19.08.0.orig/CMakeLists.txt
-+++ akonadi-19.08.0/CMakeLists.txt
-@@ -306,9 +306,6 @@ configure_package_config_file(
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d927471..83a74c0 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -330,9 +330,6 @@ configure_package_config_file(
      "${CMAKE_CURRENT_SOURCE_DIR}/KF5AkonadiConfig.cmake.in"
      "${CMAKE_CURRENT_BINARY_DIR}/KF5AkonadiConfig.cmake"
      INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
@@ -23,11 +22,11 @@ Index: akonadi-19.08.0/CMakeLists.txt
  )
  
  install(FILES
-Index: akonadi-19.08.0/KF5AkonadiConfig.cmake.in
-===================================================================
---- akonadi-19.08.0.orig/KF5AkonadiConfig.cmake.in
-+++ akonadi-19.08.0/KF5AkonadiConfig.cmake.in
-@@ -26,8 +26,8 @@ if(BUILD_TESTING)
+diff --git a/KF5AkonadiConfig.cmake.in b/KF5AkonadiConfig.cmake.in
+index 421e1df..e3abf27 100644
+--- a/KF5AkonadiConfig.cmake.in
++++ b/KF5AkonadiConfig.cmake.in
+@@ -24,8 +24,8 @@ if(BUILD_TESTING)
      find_dependency(Qt5Test "@QT_REQUIRED_VERSION@")
  endif()
  
@@ -38,7 +37,7 @@ Index: akonadi-19.08.0/KF5AkonadiConfig.cmake.in
  
  find_dependency(Boost "@Boost_MINIMUM_VERSION@")
  
-@@ -35,7 +35,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/KF5Ako
+@@ -33,7 +33,7 @@ include(${CMAKE_CURRENT_LIST_DIR}/KF5AkonadiTargets.cmake)
  include(${CMAKE_CURRENT_LIST_DIR}/KF5AkonadiMacros.cmake)
  
  # The directory where akonadi-xml.xsd and kcfg2dbus.xsl are installed
@@ -47,3 +46,6 @@ Index: akonadi-19.08.0/KF5AkonadiConfig.cmake.in
  
  ####################################################################################
  # CMAKE_AUTOMOC
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/akonadi-timestamps.patch b/nixpkgs/pkgs/applications/kde/akonadi/akonadi-timestamps.patch
deleted file mode 100644
index e299a6991f05..000000000000
--- a/nixpkgs/pkgs/applications/kde/akonadi/akonadi-timestamps.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Index: akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
-===================================================================
---- akonadi-19.08.0.orig/src/server/storage/dbconfigmysql.cpp
-+++ akonadi-19.08.0/src/server/storage/dbconfigmysql.cpp
-@@ -235,8 +235,7 @@ bool DbConfigMysql::startInternalServer(
-     bool confUpdate = false;
-     QFile actualFile(actualConfig);
-     // update conf only if either global (or local) is newer than actual
--    if ((QFileInfo(globalConfig).lastModified() > QFileInfo(actualFile).lastModified()) ||
--            (QFileInfo(localConfig).lastModified()  > QFileInfo(actualFile).lastModified())) {
-+    if (true) {
-         QFile globalFile(globalConfig);
-         QFile localFile(localConfig);
-         if (globalFile.open(QFile::ReadOnly) && actualFile.open(QFile::WriteOnly)) {
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/default.nix b/nixpkgs/pkgs/applications/kde/akonadi/default.nix
index b9a96394a674..7bb4e9217942 100644
--- a/nixpkgs/pkgs/applications/kde/akonadi/default.nix
+++ b/nixpkgs/pkgs/applications/kde/akonadi/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, copyPathsToStore, lib, kdepimTeam,
+  mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, shared-mime-info,
   boost, kcompletion, kconfigwidgets, kcrash, kdbusaddons, kdesignerplugin,
   ki18n, kiconthemes, kio, kitemmodels, kwindowsystem, mysql, qttools,
@@ -11,7 +11,11 @@ mkDerivation {
     license = [ lib.licenses.lgpl21 ];
     maintainers = kdepimTeam;
   };
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./0001-akonadi-paths.patch
+    ./0002-akonadi-timestamps.patch
+    ./0003-akonadi-revert-make-relocatable.patch
+  ];
   nativeBuildInputs = [ extra-cmake-modules shared-mime-info ];
   buildInputs = [
     kcompletion kconfigwidgets kcrash kdbusaddons kdesignerplugin ki18n
diff --git a/nixpkgs/pkgs/applications/kde/akonadi/series b/nixpkgs/pkgs/applications/kde/akonadi/series
deleted file mode 100644
index f828d503cc77..000000000000
--- a/nixpkgs/pkgs/applications/kde/akonadi/series
+++ /dev/null
@@ -1,3 +0,0 @@
-akonadi-paths.patch
-akonadi-timestamps.patch
-0001-Revert-Make-Akonadi-installation-properly-relocatabl.patch
diff --git a/nixpkgs/pkgs/applications/kde/bomber.nix b/nixpkgs/pkgs/applications/kde/bomber.nix
new file mode 100644
index 000000000000..c3f477802591
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/bomber.nix
@@ -0,0 +1,30 @@
+{ mkDerivation, lib
+, libkdegames, extra-cmake-modules
+, kdeclarative, knewstuff
+}:
+
+mkDerivation {
+  name = "bomber";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.bomber";
+    description = "Bomber is a single player arcade game";
+    longDescription = ''
+      Bomber is a single player arcade game. The player is invading various
+      cities in a plane that is decreasing in height.
+
+      The goal of the game is to destroy all the buildings and advance to the next level.
+      Each level gets a bit harder by increasing the speed of the plane and the height of the buildings.
+      '';
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdeclarative
+    knewstuff
+    libkdegames
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/bovo.nix b/nixpkgs/pkgs/applications/kde/bovo.nix
new file mode 100644
index 000000000000..4bd3113a051f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/bovo.nix
@@ -0,0 +1,28 @@
+{ mkDerivation, lib
+, libkdegames, extra-cmake-modules
+, kdeclarative, knewstuff
+}:
+
+mkDerivation {
+  name = "bovo";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.bovo";
+    description = "Five in a row application";
+    longDescription = ''
+      Bovo is a Gomoku (from Japanese 五目並べ - lit. "five points") like game for two players,
+      where the opponents alternate in placing their respective pictogram on the game board.
+      (Also known as: Connect Five, Five in a row, X and O, Naughts and Crosses)
+    '';
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdeclarative
+    knewstuff
+    libkdegames
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/calendarsupport.nix b/nixpkgs/pkgs/applications/kde/calendarsupport.nix
index 485397ec4aac..1537bd25d55e 100644
--- a/nixpkgs/pkgs/applications/kde/calendarsupport.nix
+++ b/nixpkgs/pkgs/applications/kde/calendarsupport.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
-  akonadi, akonadi-calendar, akonadi-mime, kcalutils, kdepim-apps-libs,
+  akonadi, akonadi-calendar, akonadi-mime, akonadi-notes, kcalutils, kdepim-apps-libs,
   kholidays, kidentitymanagement, kmime, pimcommon, qttools,
 }:
 
@@ -13,7 +13,7 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    akonadi akonadi-mime kcalutils kdepim-apps-libs kholidays pimcommon qttools
+    akonadi akonadi-mime akonadi-notes kcalutils kdepim-apps-libs kholidays pimcommon qttools
   ];
   propagatedBuildInputs = [ akonadi-calendar kidentitymanagement kmime ];
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/applications/kde/default.nix b/nixpkgs/pkgs/applications/kde/default.nix
index 60df1f899ded..9622404c456d 100644
--- a/nixpkgs/pkgs/applications/kde/default.nix
+++ b/nixpkgs/pkgs/applications/kde/default.nix
@@ -74,6 +74,8 @@ let
       akregator = callPackage ./akregator.nix {};
       ark = callPackage ./ark {};
       baloo-widgets = callPackage ./baloo-widgets.nix {};
+      bovo = callPackage ./bovo.nix {};
+      bomber = callPackage ./bomber.nix {};
       calendarsupport = callPackage ./calendarsupport.nix {};
       dolphin = callPackage ./dolphin.nix {};
       dolphin-plugins = callPackage ./dolphin-plugins.nix {};
@@ -82,6 +84,7 @@ let
       eventviews = callPackage ./eventviews.nix {};
       ffmpegthumbs = callPackage ./ffmpegthumbs.nix { };
       filelight = callPackage ./filelight.nix {};
+      granatier = callPackage ./granatier.nix {};
       grantleetheme = callPackage ./grantleetheme {};
       gwenview = callPackage ./gwenview.nix {};
       incidenceeditor = callPackage ./incidenceeditor.nix {};
@@ -89,14 +92,20 @@ let
       kaddressbook = callPackage ./kaddressbook.nix {};
       kalarm = callPackage ./kalarm.nix {};
       kalarmcal = callPackage ./kalarmcal.nix {};
+      kalzium = callPackage ./kalzium.nix {};
+      kapman = callPackage ./kapman.nix {};
+      kapptemplate = callPackage ./kapptemplate.nix { };
       kate = callPackage ./kate.nix {};
+      katomic = callPackage ./katomic.nix {};
+      kblackbox = callPackage ./kblackbox.nix {};
+      kblocks = callPackage ./kblocks.nix {};
+      kbounce = callPackage ./kbounce.nix {};
       kbreakout = callPackage ./kbreakout.nix {};
       kcachegrind = callPackage ./kcachegrind.nix {};
       kcalc = callPackage ./kcalc.nix {};
       kcalutils = callPackage ./kcalutils.nix {};
       kcharselect = callPackage ./kcharselect.nix {};
       kcolorchooser = callPackage ./kcolorchooser.nix {};
-      kdav = callPackage ./kdav.nix {};
       kdebugsettings = callPackage ./kdebugsettings.nix {};
       kdegraphics-mobipocket = callPackage ./kdegraphics-mobipocket.nix {};
       kdegraphics-thumbnailers = callPackage ./kdegraphics-thumbnailers.nix {};
@@ -107,30 +116,42 @@ let
       kdepim-apps-libs = callPackage ./kdepim-apps-libs {};
       kdf = callPackage ./kdf.nix {};
       kdialog = callPackage ./kdialog.nix {};
+      kdiamond = callPackage ./kdiamond.nix {};
       keditbookmarks = callPackage ./keditbookmarks.nix {};
       kfind = callPackage ./kfind.nix {};
+      kfloppy = callPackage ./kfloppy.nix {};
       kgeography = callPackage ./kgeography.nix {};
       kget = callPackage ./kget.nix {};
       kgpg = callPackage ./kgpg.nix {};
       khelpcenter = callPackage ./khelpcenter.nix {};
       kidentitymanagement = callPackage ./kidentitymanagement.nix {};
       kig = callPackage ./kig.nix {};
+      kigo = callPackage ./kigo.nix {};
+      killbots = callPackage ./killbots.nix {};
       kimap = callPackage ./kimap.nix {};
       kipi-plugins = callPackage ./kipi-plugins.nix {};
       kitinerary = callPackage ./kitinerary.nix {};
       kio-extras = callPackage ./kio-extras.nix {};
       kldap = callPackage ./kldap.nix {};
       kleopatra = callPackage ./kleopatra.nix {};
+      klettres = callPackage ./klettres.nix {};
+      klines = callPackage ./klines.nix {};
+      kmag = callPackage ./kmag.nix {};
       kmahjongg = callPackage ./kmahjongg.nix {};
       kmail = callPackage ./kmail.nix {};
       kmail-account-wizard = callPackage ./kmail-account-wizard.nix {};
       kmailtransport = callPackage ./kmailtransport.nix {};
       kmbox = callPackage ./kmbox.nix {};
       kmime = callPackage ./kmime.nix {};
+      kmines = callPackage ./kmines.nix {};
       kmix = callPackage ./kmix.nix {};
       kmplot = callPackage ./kmplot.nix {};
+      knavalbattle = callPackage ./knavalbattle.nix {};
+      knetwalk = callPackage ./knetwalk.nix {};
+      knights = callPackage ./knights.nix {};
       knotes = callPackage ./knotes.nix {};
       kolf = callPackage ./kolf.nix {};
+      kollision = callPackage ./kollision.nix {};
       kolourpaint = callPackage ./kolourpaint.nix {};
       kompare = callPackage ./kompare.nix {};
       konsole = callPackage ./konsole.nix {};
@@ -142,17 +163,24 @@ let
       kpat = callPackage ./kpat.nix {};
       kpimtextedit = callPackage ./kpimtextedit.nix {};
       ksmtp = callPackage ./ksmtp {};
+      ksquares = callPackage ./ksquares.nix {};
       kqtquickcharts = callPackage ./kqtquickcharts.nix {};
       kpkpass = callPackage ./kpkpass.nix {};
+      kreversi = callPackage ./kreversi.nix {};
       krdc = callPackage ./krdc.nix {};
       krfb = callPackage ./krfb.nix {};
       kruler = callPackage ./kruler.nix {};
+      kshisen = callPackage ./kshisen.nix {};
       kspaceduel = callPackage ./kspaceduel.nix {};
       ksudoku = callPackage ./ksudoku.nix {};
       ksystemlog = callPackage ./ksystemlog.nix {};
+      kteatime = callPackage ./kteatime.nix {};
+      ktimer = callPackage ./ktimer.nix {};
       ktnef = callPackage ./ktnef.nix {};
       ktouch = callPackage ./ktouch.nix {};
+      kturtle = callPackage ./kturtle.nix {};
       kwalletmanager = callPackage ./kwalletmanager.nix {};
+      kwave = callPackage ./kwave.nix {};
       libgravatar = callPackage ./libgravatar.nix {};
       libkcddb = callPackage ./libkcddb.nix {};
       libkdcraw = callPackage ./libkdcraw.nix {};
@@ -173,6 +201,7 @@ let
       messagelib = callPackage ./messagelib.nix {};
       minuet = callPackage ./minuet.nix {};
       okular = callPackage ./okular.nix {};
+      picmi = callPackage ./picmi.nix {};
       pimcommon = callPackage ./pimcommon.nix {};
       pim-data-exporter = callPackage ./pim-data-exporter.nix {};
       pim-sieve-editor = callPackage ./pim-sieve-editor.nix {};
diff --git a/nixpkgs/pkgs/applications/kde/elisa.nix b/nixpkgs/pkgs/applications/kde/elisa.nix
index a2bfa88f8127..bd2cd529473e 100644
--- a/nixpkgs/pkgs/applications/kde/elisa.nix
+++ b/nixpkgs/pkgs/applications/kde/elisa.nix
@@ -14,13 +14,13 @@
 , kinit
 , kirigami2
 , baloo
-, vlc
+, libvlc
 }:
 
 mkDerivation rec {
   name = "elisa";
 
-  buildInputs = [ vlc ];
+  buildInputs = [ libvlc ];
 
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
 
diff --git a/nixpkgs/pkgs/applications/kde/fetch.sh b/nixpkgs/pkgs/applications/kde/fetch.sh
index 3f6dc9ef1810..90e1cf43f6b1 100644
--- a/nixpkgs/pkgs/applications/kde/fetch.sh
+++ b/nixpkgs/pkgs/applications/kde/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( http://download.kde.org/stable/release-service/19.12.3/src )
+WGET_ARGS=(http://download.kde.org/stable/release-service/20.08.1/src)
diff --git a/nixpkgs/pkgs/applications/kde/granatier.nix b/nixpkgs/pkgs/applications/kde/granatier.nix
new file mode 100644
index 000000000000..f0b7cde5b2cc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/granatier.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, lib
+, libkdegames, extra-cmake-modules
+, kdeclarative, knewstuff
+}:
+
+mkDerivation {
+  name = "granatier";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.granatier";
+    description = "Granatier is a clone of the classic Bomberman game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdeclarative
+    knewstuff
+    libkdegames
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/grantleetheme/default.nix b/nixpkgs/pkgs/applications/kde/grantleetheme/default.nix
index bb8a97e8341e..6204919a3285 100644
--- a/nixpkgs/pkgs/applications/kde/grantleetheme/default.nix
+++ b/nixpkgs/pkgs/applications/kde/grantleetheme/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, copyPathsToStore, lib, kdepimTeam,
+  mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   grantlee, ki18n, kiconthemes, knewstuff, kservice, kxmlgui, qtbase,
 }:
@@ -11,7 +11,6 @@ mkDerivation {
     maintainers = kdepimTeam;
   };
   output = [ "out" "dev" ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     grantlee ki18n kiconthemes knewstuff kservice kxmlgui qtbase
diff --git a/nixpkgs/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch b/nixpkgs/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch
deleted file mode 100644
index ebb81248475f..000000000000
--- a/nixpkgs/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-diff --git a/src/grantleetheme.cpp b/src/grantleetheme.cpp
-index 27d5bc8..8d43140 100644
---- a/src/grantleetheme.cpp
-+++ b/src/grantleetheme.cpp
-@@ -46,7 +46,7 @@ ThemePrivate::ThemePrivate(const ThemePrivate &other)
-     , description(other.description)
-     , name(other.name)
-     , dirName(other.dirName)
--    , absolutePath(other.absolutePath)
-+    , absolutePaths(other.absolutePaths)
-     , author(other.author)
-     , email(other.email)
-     , loader(other.loader)
-@@ -64,12 +64,15 @@ void ThemePrivate::setupEngine()
- 
- void ThemePrivate::setupLoader()
- {
--    // Get the parent dir with themes, we set the theme directory separately
--    QDir dir(absolutePath);
--    dir.cdUp();
-+    QStringList templateDirs;
-+    for (const QString& path : absolutePaths) {
-+        QDir dir(path);
-+        dir.cdUp();
-+        templateDirs << dir.absolutePath();
-+    }
- 
-     loader = QSharedPointer<GrantleeTheme::QtResourceTemplateLoader>::create();
--    loader->setTemplateDirs({ dir.absolutePath() });
-+    loader->setTemplateDirs(templateDirs);
-     loader->setTheme(dirName);
- 
-     if (!sEngine) {
-@@ -121,7 +124,7 @@ Theme::Theme(const QString &themePath, const QString &dirName, const QString &de
-     KConfigGroup group(&config, QStringLiteral("Desktop Entry"));
-     if (group.isValid()) {
-         d->dirName = dirName;
--        d->absolutePath = themePath;
-+        d->absolutePaths = QStringList(themePath);
-         d->name = group.readEntry("Name", QString());
-         d->description = group.readEntry("Description", QString());
-         d->themeFileName = group.readEntry("FileName", QString());
-@@ -140,7 +143,7 @@ Theme::~Theme()
- 
- bool Theme::operator==(const Theme &other) const
- {
--    return isValid() && other.isValid() && d->absolutePath == other.absolutePath();
-+    return isValid() && other.isValid() && d->absolutePaths == other.absolutePaths();
- }
- 
- Theme &Theme::operator=(const Theme &other)
-@@ -184,7 +187,12 @@ QString Theme::dirName() const
- 
- QString Theme::absolutePath() const
- {
--    return d->absolutePath;
-+    return d->absolutePaths.first();
-+}
-+
-+QStringList Theme::absolutePaths() const
-+{
-+    return d->absolutePaths;
- }
- 
- QString Theme::author() const
-@@ -223,6 +231,13 @@ QString Theme::render(const QString &templateName, const QVariantHash &data, con
-     return result;
- }
- 
-+void Theme::addThemeDir(const QString& path)
-+{
-+    QDir dir(path);
-+    dir.cdUp();
-+    d->absolutePaths << dir.absolutePath();
-+}
-+
- void Theme::addPluginPath(const QString &path)
- {
-     if (!ThemePrivate::sEngine) {
-diff --git a/src/grantleetheme.h b/src/grantleetheme.h
-index a25c27b..be38299 100644
---- a/src/grantleetheme.h
-+++ b/src/grantleetheme.h
-@@ -48,11 +48,14 @@ public:
-     Q_REQUIRED_RESULT QStringList displayExtraVariables() const;
-     Q_REQUIRED_RESULT QString dirName() const;
-     Q_REQUIRED_RESULT QString absolutePath() const;
-+    Q_REQUIRED_RESULT QStringList absolutePaths() const;
-     Q_REQUIRED_RESULT QString author() const;
-     Q_REQUIRED_RESULT QString authorEmail() const;
- 
-     Q_REQUIRED_RESULT QString render(const QString &templateName, const QVariantHash &data, const QByteArray &applicationDomain = QByteArray());
- 
-+    void addThemeDir(const QString&);
-+
-     static void addPluginPath(const QString &path);
- 
- private:
-diff --git a/src/grantleetheme_p.h b/src/grantleetheme_p.h
-index eb73dcb..00510e9 100644
---- a/src/grantleetheme_p.h
-+++ b/src/grantleetheme_p.h
-@@ -43,7 +43,7 @@ public:
-     QString description;
-     QString name;
-     QString dirName;
--    QString absolutePath;
-+    QStringList absolutePaths;
-     QString author;
-     QString email;
- 
-diff --git a/src/grantleethememanager.cpp b/src/grantleethememanager.cpp
-index 606d717..dc99041 100644
---- a/src/grantleethememanager.cpp
-+++ b/src/grantleethememanager.cpp
-@@ -125,25 +125,18 @@ public:
- 
-         for (const QString &directory : qAsConst(themesDirectories)) {
-             QDirIterator dirIt(directory, QStringList(), QDir::AllDirs | QDir::NoDotAndDotDot);
--            QStringList alreadyLoadedThemeName;
-             while (dirIt.hasNext()) {
-                 dirIt.next();
-                 const QString dirName = dirIt.fileName();
-                 GrantleeTheme::Theme theme = q->loadTheme(dirIt.filePath(), dirName, defaultDesktopFileName);
-                 if (theme.isValid()) {
-                     QString themeName = theme.name();
--                    if (alreadyLoadedThemeName.contains(themeName)) {
--                        int i = 2;
--                        const QString originalName(theme.name());
--                        while (alreadyLoadedThemeName.contains(themeName)) {
--                            themeName = originalName + QStringLiteral(" (%1)").arg(i);
--                            ++i;
--                        }
--                        theme.d->name = themeName;
-+                    QMap<QString, GrantleeTheme::Theme>::iterator i = themes.find(dirName);
-+                    if (i != themes.end()) {
-+                        i.value().addThemeDir(dirIt.filePath());
-+                    } else {
-+                        themes.insert(dirName, theme);
-                     }
--                    alreadyLoadedThemeName << themeName;
--                    themes.insert(dirName, theme);
--                    //qDebug()<<" theme.name()"<<theme.name();
-                 }
-             }
-             watch->addDir(directory);
-@@ -366,7 +359,7 @@ QString ThemeManager::pathFromThemes(const QString &themesRelativePath, const QS
-                 GrantleeTheme::Theme theme = loadTheme(dirIt.filePath(), dirName, defaultDesktopFileName);
-                 if (theme.isValid()) {
-                     if (dirName == themeName) {
--                        return theme.absolutePath();
-+                        return theme.absolutePaths().first();
-                     }
-                 }
-             }
diff --git a/nixpkgs/pkgs/applications/kde/grantleetheme/series b/nixpkgs/pkgs/applications/kde/grantleetheme/series
deleted file mode 100644
index 9095599ea56b..000000000000
--- a/nixpkgs/pkgs/applications/kde/grantleetheme/series
+++ /dev/null
@@ -1 +0,0 @@
-grantlee-merge-theme-dirs.patch
diff --git a/nixpkgs/pkgs/applications/kde/incidenceeditor.nix b/nixpkgs/pkgs/applications/kde/incidenceeditor.nix
index 8224b98253b6..30955d1c2743 100644
--- a/nixpkgs/pkgs/applications/kde/incidenceeditor.nix
+++ b/nixpkgs/pkgs/applications/kde/incidenceeditor.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   akonadi, akonadi-mime, calendarsupport, eventviews, kdepim-apps-libs,
-  kdiagram, kldap, kmime, qtbase,
+  kdiagram, kldap, kmime, pimcommon, qtbase
 }:
 
 mkDerivation {
@@ -14,7 +14,7 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     akonadi akonadi-mime calendarsupport eventviews kdepim-apps-libs kdiagram
-    kldap kmime qtbase
+    kldap kmime pimcommon qtbase
   ];
   outputs = [ "out" "dev" ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/kalzium.nix b/nixpkgs/pkgs/applications/kde/kalzium.nix
new file mode 100644
index 000000000000..5bb51a6b4e1d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kalzium.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, openbabel, avogadro, qtscript, kparts, kplotting, kunitconversion }:
+
+mkDerivation {
+  name = "kalzium";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/utilities/org.kde.kalzium";
+    description = "Kalzium is a program that shows you the Periodic Table of Elements";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    qtscript
+    #avogadro
+    kdoctools
+    ki18n
+    kio
+    openbabel
+    kparts
+    kplotting
+    kunitconversion
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kapman.nix b/nixpkgs/pkgs/applications/kde/kapman.nix
new file mode 100644
index 000000000000..68af796dda4b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kapman.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+  name = "kapman";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kapman";
+    description = "Kapman is a clone of the well known game Pac-Man";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kapptemplate.nix b/nixpkgs/pkgs/applications/kde/kapptemplate.nix
new file mode 100644
index 000000000000..a5e211318a26
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kapptemplate.nix
@@ -0,0 +1,24 @@
+{ lib
+, mkDerivation
+, fetchurl
+, cmake
+, extra-cmake-modules
+, qtbase
+, kactivities
+}:
+mkDerivation {
+
+  name = "kapptemplate";
+
+  nativeBuildInputs = [ extra-cmake-modules cmake  ];
+
+  buildInputs = [ kactivities qtbase ];
+
+  meta = with lib; {
+    description = "KDE App Code Template Generator";
+    license = licenses.gpl2;
+    homepage = "https://kde.org/applications/en/development/org.kde.kapptemplate";
+    maintainers = [ maintainers.shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/kde/katomic.nix b/nixpkgs/pkgs/applications/kde/katomic.nix
new file mode 100644
index 000000000000..a1d0f12b6a1d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/katomic.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, knewstuff }:
+
+mkDerivation {
+  name = "katomic";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.katomic";
+    description = "KAtomic is a fun educational game built around molecular geometry";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    knewstuff
+    libkdegames
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kblackbox.nix b/nixpkgs/pkgs/applications/kde/kblackbox.nix
new file mode 100644
index 000000000000..669c089df809
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kblackbox.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+  name = "kblackbox";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kblackbox";
+    description = "KBlackbox is a game of hide and seek played on a grid of boxes";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kblocks.nix b/nixpkgs/pkgs/applications/kde/kblocks.nix
new file mode 100644
index 000000000000..1dedabb2a082
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kblocks.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+  name = "kblocks";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kblocks";
+    description = "KBlocks is the classic falling blocks game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kbounce.nix b/nixpkgs/pkgs/applications/kde/kbounce.nix
new file mode 100644
index 000000000000..a24d21551807
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kbounce.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, libkdegames, kconfig, kcrash, kio, ki18n }:
+
+mkDerivation {
+  name = "kbounce";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kbounce";
+    description = "KBounce is a single player arcade game with the elements of puzzle";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kconfig
+    kcrash
+    kio
+    ki18n
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kdegraphics-thumbnailers.nix b/nixpkgs/pkgs/applications/kde/kdegraphics-thumbnailers.nix
index dc0b63594c45..2e7887582f95 100644
--- a/nixpkgs/pkgs/applications/kde/kdegraphics-thumbnailers.nix
+++ b/nixpkgs/pkgs/applications/kde/kdegraphics-thumbnailers.nix
@@ -9,14 +9,6 @@ mkDerivation {
     license = [ lib.licenses.lgpl21 ];
     maintainers = [ lib.maintainers.ttuegel ];
   };
-  patches = [
-    # Fix a bug with thumbnail.so processes hanging:
-    # https://bugs.kde.org/show_bug.cgi?id=404652
-    (fetchpatch {
-      url = "https://github.com/KDE/kdegraphics-thumbnailers/commit/3e2ea6e924d0e2a2cdd9bb435b06965117d6d34c.patch";
-      sha256 = "0fq85zhymmrq8vl0y6vgh87qf4c6fhcq704p4kpkaq7y0isxj4h1";
-    })
-  ];
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ karchive kio libkexiv2 libkdcraw ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/kdenlive.nix b/nixpkgs/pkgs/applications/kde/kdenlive.nix
index 95496f90e043..795ba87ad5b5 100644
--- a/nixpkgs/pkgs/applications/kde/kdenlive.nix
+++ b/nixpkgs/pkgs/applications/kde/kdenlive.nix
@@ -25,12 +25,13 @@
 , frei0r
 , phonon-backend-gstreamer
 , qtdeclarative
-, qtquickcontrols
+, qtquickcontrols2
 , qtscript
 , qtwebkit
 , rttr
 , kpurpose
 , kdeclarative
+, wrapGAppsHook
 }:
 
 mkDerivation {
@@ -59,7 +60,7 @@ mkDerivation {
     mlt
     phonon-backend-gstreamer
     qtdeclarative
-    qtquickcontrols
+    qtquickcontrols2
     qtscript
     qtwebkit
     shared-mime-info
@@ -69,6 +70,7 @@ mkDerivation {
     rttr
     kpurpose
     kdeclarative
+    wrapGAppsHook
   ];
   # Both MLT and FFMpeg paths must be set or Kdenlive will complain that it
   # doesn't find them. See:
diff --git a/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/default.nix b/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/default.nix
index 6189e8706db0..57c02ea4e84c 100644
--- a/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/default.nix
+++ b/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, copyPathsToStore, lib, kdepimTeam,
+  mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   akonadi, akonadi-contacts, grantlee, grantleetheme, kconfig, kconfigwidgets,
   kcontacts, ki18n, kiconthemes, kio, libkleo, pimcommon, prison,
@@ -11,7 +11,6 @@ mkDerivation {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
     maintainers = kdepimTeam;
   };
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     akonadi akonadi-contacts grantlee grantleetheme kconfig kconfigwidgets
diff --git a/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/kdepim-apps-libs-grantlee-merge-theme-dirs.patch b/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/kdepim-apps-libs-grantlee-merge-theme-dirs.patch
deleted file mode 100644
index 02c369cc4ee8..000000000000
--- a/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/kdepim-apps-libs-grantlee-merge-theme-dirs.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-Index: kdepim-apps-libs-17.04.0/kaddressbookgrantlee/src/formatter/grantleecontactgroupformatter.cpp
-===================================================================
---- kdepim-apps-libs-17.04.0.orig/kaddressbookgrantlee/src/formatter/grantleecontactgroupformatter.cpp
-+++ kdepim-apps-libs-17.04.0/kaddressbookgrantlee/src/formatter/grantleecontactgroupformatter.cpp
-@@ -50,9 +50,9 @@ public:
-         mTemplateLoader.clear();
-     }
- 
--    void changeGrantleePath(const QString &path)
-+    void changeGrantleePath(const QStringList &paths)
-     {
--        mTemplateLoader->setTemplateDirs(QStringList() << path);
-+        mTemplateLoader->setTemplateDirs(paths);
-         mEngine->addTemplateLoader(mTemplateLoader);
- 
-         mSelfcontainedTemplate = mEngine->loadByName(QStringLiteral("contactgroup.html"));
-@@ -86,12 +86,12 @@ GrantleeContactGroupFormatter::~Grantlee
- 
- void GrantleeContactGroupFormatter::setAbsoluteThemePath(const QString &path)
- {
--    d->changeGrantleePath(path);
-+    d->changeGrantleePath(QStringList(path));
- }
- 
- void GrantleeContactGroupFormatter::setGrantleeTheme(const GrantleeTheme::Theme &theme)
- {
--    d->changeGrantleePath(theme.absolutePath());
-+    d->changeGrantleePath(theme.absolutePaths());
- }
- 
- inline static void setHashField(QVariantHash &hash, const QString &name, const QString &value)
-Index: kdepim-apps-libs-17.04.0/kaddressbookgrantlee/src/formatter/grantleecontactformatter.cpp
-===================================================================
---- kdepim-apps-libs-17.04.0.orig/kaddressbookgrantlee/src/formatter/grantleecontactformatter.cpp
-+++ kdepim-apps-libs-17.04.0/kaddressbookgrantlee/src/formatter/grantleecontactformatter.cpp
-@@ -74,9 +74,9 @@ public:
-         mTemplateLoader.clear();
-     }
- 
--    void changeGrantleePath(const QString &path)
-+    void changeGrantleePath(const QStringList &paths)
-     {
--        mTemplateLoader->setTemplateDirs(QStringList() << path);
-+        mTemplateLoader->setTemplateDirs(paths);
-         mEngine->addTemplateLoader(mTemplateLoader);
- 
-         mSelfcontainedTemplate = mEngine->loadByName(QStringLiteral("contact.html"));
-@@ -112,12 +112,12 @@ GrantleeContactFormatter::~GrantleeConta
- 
- void GrantleeContactFormatter::setAbsoluteThemePath(const QString &path)
- {
--    d->changeGrantleePath(path);
-+    d->changeGrantleePath(QStringList(path));
- }
- 
- void GrantleeContactFormatter::setGrantleeTheme(const GrantleeTheme::Theme &theme)
- {
--    d->changeGrantleePath(theme.absolutePath());
-+    d->changeGrantleePath(theme.absolutePaths());
- }
- 
- void GrantleeContactFormatter::setForceDisableQRCode(bool b)
diff --git a/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/series b/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/series
deleted file mode 100644
index 1e8a52b55e96..000000000000
--- a/nixpkgs/pkgs/applications/kde/kdepim-apps-libs/series
+++ /dev/null
@@ -1 +0,0 @@
-kdepim-apps-libs-grantlee-merge-theme-dirs.patch
diff --git a/nixpkgs/pkgs/applications/kde/kdepim-runtime/default.nix b/nixpkgs/pkgs/applications/kde/kdepim-runtime/default.nix
index 65719514f96b..e0a5d43e654f 100644
--- a/nixpkgs/pkgs/applications/kde/kdepim-runtime/default.nix
+++ b/nixpkgs/pkgs/applications/kde/kdepim-runtime/default.nix
@@ -1,11 +1,11 @@
 {
-  mkDerivation, copyPathsToStore, lib, kdepimTeam,
+  mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   shared-mime-info,
   akonadi, akonadi-calendar, akonadi-contacts, akonadi-mime, akonadi-notes,
   kalarmcal, kcalutils, kcontacts, kdav, kdelibs4support, kidentitymanagement,
-  kimap, kmailtransport, kmbox, kmime, knotifications, knotifyconfig,
-  pimcommon, qtwebengine, libkgapi, qtnetworkauth, qtspeech, qtxmlpatterns,
+  kimap, kldap, kmailtransport, kmbox, kmime, knotifications, knotifyconfig,
+  pimcommon, qtwebengine, libkgapi, qca-qt5, qtnetworkauth, qtspeech, qtxmlpatterns,
 }:
 
 mkDerivation {
@@ -18,7 +18,7 @@ mkDerivation {
   buildInputs = [
     akonadi akonadi-calendar akonadi-contacts akonadi-mime akonadi-notes
     kalarmcal kcalutils kcontacts kdav kdelibs4support kidentitymanagement kimap
-    kmailtransport kmbox kmime knotifications knotifyconfig qtwebengine
-    pimcommon libkgapi qtnetworkauth qtspeech qtxmlpatterns
+    kldap kmailtransport kmbox kmime knotifications knotifyconfig qtwebengine
+    pimcommon libkgapi qca-qt5 qtnetworkauth qtspeech qtxmlpatterns
   ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/kdiamond.nix b/nixpkgs/pkgs/applications/kde/kdiamond.nix
new file mode 100644
index 000000000000..26cd731beaf5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kdiamond.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, kconfig, knotifyconfig }:
+
+mkDerivation {
+  name = "kdiamond";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kdiamond";
+    description = "KDiamond is a single player puzzle game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    knotifyconfig
+    kconfig
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kfloppy.nix b/nixpkgs/pkgs/applications/kde/kfloppy.nix
new file mode 100644
index 000000000000..525520c159bd
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kfloppy.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, kcompletion, kxmlgui }:
+
+mkDerivation {
+  name = "kfloppy";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/utilities/org.kde.kfloppy";
+    description = "KFloppy is a utility to format 3.5\" and 5.25\" floppy disks";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdoctools
+    kcompletion
+    kxmlgui
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kigo.nix b/nixpkgs/pkgs/applications/kde/kigo.nix
new file mode 100644
index 000000000000..6585f943f2a1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kigo.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, knewstuff }:
+
+mkDerivation {
+  name = "kigo";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kigo";
+    description = "An open-source implementation of the popular Go game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    knewstuff
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/killbots.nix b/nixpkgs/pkgs/applications/kde/killbots.nix
new file mode 100644
index 000000000000..ec9b6de82c90
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/killbots.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+  name = "killbots";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.killbots";
+    description = "A game where you avoid robots";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kio-extras.nix b/nixpkgs/pkgs/applications/kde/kio-extras.nix
index a7aa817576fb..a803ba72982d 100644
--- a/nixpkgs/pkgs/applications/kde/kio-extras.nix
+++ b/nixpkgs/pkgs/applications/kde/kio-extras.nix
@@ -1,9 +1,9 @@
 {
   mkDerivation, lib, extra-cmake-modules, kdoctools, shared-mime-info,
   exiv2, kactivities, karchive, kbookmarks, kconfig, kconfigwidgets,
-  kcoreaddons, kdbusaddons, kguiaddons, kdnssd, kiconthemes, ki18n, kio, khtml,
-  kdelibs4support, kpty, syntax-highlighting, libmtp, libssh, openexr, ilmbase,
-  openslp, phonon, qtsvg, samba, solid, gperf
+  kcoreaddons, kdbusaddons, kdsoap, kguiaddons, kdnssd, kiconthemes, ki18n, kio,
+  khtml, kdelibs4support, kpty, syntax-highlighting, libmtp, libssh, openexr,
+  ilmbase, openslp, phonon, qtsvg, samba, solid, gperf
 }:
 
 mkDerivation {
@@ -15,9 +15,9 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools shared-mime-info ];
   buildInputs = [
     exiv2 kactivities karchive kbookmarks kconfig kconfigwidgets kcoreaddons
-    kdbusaddons kguiaddons kdnssd kiconthemes ki18n kio khtml kdelibs4support
-    kpty syntax-highlighting libmtp libssh openexr openslp phonon qtsvg samba
-    solid gperf
+    kdbusaddons kdsoap kguiaddons kdnssd kiconthemes ki18n kio khtml
+    kdelibs4support kpty syntax-highlighting libmtp libssh openexr openslp
+    phonon qtsvg samba solid gperf
   ];
   CXXFLAGS = [ "-I${ilmbase.dev}/include/OpenEXR" ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/klettres.nix b/nixpkgs/pkgs/applications/kde/klettres.nix
new file mode 100644
index 000000000000..e8e0a0aa59ab
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/klettres.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, phonon, knewstuff }:
+
+mkDerivation {
+  name = "klettres";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/utilities/org.kde.klettres";
+    description = "KLettres is an application specially designed to help the user to learn an alphabet";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    phonon
+    knewstuff
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/klines.nix b/nixpkgs/pkgs/applications/kde/klines.nix
new file mode 100644
index 000000000000..c6ad883dd63d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/klines.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+  name = "klines";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.klines";
+    description = "KLines is a simple but highly addictive one player game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kmag.nix b/nixpkgs/pkgs/applications/kde/kmag.nix
new file mode 100644
index 000000000000..701d8dbf130a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kmag.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio }:
+
+mkDerivation {
+  name = "kmag";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/utilities/org.kde.kmag";
+    description = "KMag is a small utility for Linux to magnify a part of the screen";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kmail.nix b/nixpkgs/pkgs/applications/kde/kmail.nix
index ab24f15a14bc..d225eba82234 100644
--- a/nixpkgs/pkgs/applications/kde/kmail.nix
+++ b/nixpkgs/pkgs/applications/kde/kmail.nix
@@ -7,7 +7,7 @@
   kmail-account-wizard, kmailtransport, knotifications, knotifyconfig,
   kontactinterface, kparts, kpty, kservice, ktextwidgets, ktnef, kwallet,
   kwidgetsaddons, kwindowsystem, kxmlgui, libgravatar, libksieve, mailcommon,
-  messagelib, pim-sieve-editor, qtscript, qtwebengine, akonadi
+  messagelib, pim-sieve-editor, qtscript, qtwebengine, akonadi, kdepim-addons
 }:
 
 mkDerivation {
@@ -24,7 +24,7 @@ mkDerivation {
     knotifications knotifyconfig kontactinterface kparts kpty kservice
     ktextwidgets ktnef kwidgetsaddons kwindowsystem kxmlgui libgravatar
     libksieve mailcommon messagelib pim-sieve-editor qtscript qtwebengine
+    kdepim-addons
   ];
   propagatedUserEnvPkgs = [ kdepim-runtime kwallet akonadi ];
-  patches = [ ./kmail.patch ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/kmail.patch b/nixpkgs/pkgs/applications/kde/kmail.patch
deleted file mode 100644
index 71a23be2d839..000000000000
--- a/nixpkgs/pkgs/applications/kde/kmail.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-diff --git a/agents/archivemailagent/CMakeLists.txt b/agents/archivemailagent/CMakeLists.txt
-index 48ed076..9c56896 100644
---- a/agents/archivemailagent/CMakeLists.txt
-+++ b/agents/archivemailagent/CMakeLists.txt
-@@ -22,6 +22,7 @@ ki18n_wrap_ui(libarchivemailagent_SRCS ui/archivemailwidget.ui )
- add_library(archivemailagent STATIC ${libarchivemailagent_SRCS})
- target_link_libraries(archivemailagent
-     KF5::MailCommon
-+    KF5::Libkdepim
-     KF5::I18n
-     KF5::Notifications
-     KF5::IconThemes
-diff --git a/agents/followupreminderagent/CMakeLists.txt b/agents/followupreminderagent/CMakeLists.txt
-index a56b730..83604cf 100644
---- a/agents/followupreminderagent/CMakeLists.txt
-+++ b/agents/followupreminderagent/CMakeLists.txt
-@@ -23,6 +23,7 @@ target_link_libraries(followupreminderagent
-     KF5::AkonadiMime
-     KF5::AkonadiAgentBase
-     KF5::DBusAddons
-+    KF5::FollowupReminder
-     KF5::XmlGui
-     KF5::KIOWidgets
-     KF5::Notifications
diff --git a/nixpkgs/pkgs/applications/kde/kmines.nix b/nixpkgs/pkgs/applications/kde/kmines.nix
new file mode 100644
index 000000000000..9314cca4a23f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kmines.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, lib, extra-cmake-modules, libkdegames, kconfig, kcrash, kdoctools, ki18n, kio }:
+
+mkDerivation {
+  name = "kmines";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kmines";
+    description = "KMines is a classic Minesweeper game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kconfig
+    kcrash
+    kio
+    kdoctools
+    ki18n
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/knavalbattle.nix b/nixpkgs/pkgs/applications/kde/knavalbattle.nix
new file mode 100644
index 000000000000..669f9961a497
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/knavalbattle.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, kdnssd }:
+
+mkDerivation {
+  name = "knavalbattle";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.knavalbattle";
+    description = "Naval Battle is a ship sinking game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kdoctools
+    ki18n
+    kio
+    kdnssd
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/knetwalk.nix b/nixpkgs/pkgs/applications/kde/knetwalk.nix
new file mode 100644
index 000000000000..88d08b56bb1d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/knetwalk.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+  name = "knetwalk";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.knetwalk";
+    description = "KNetWalk is a single player logic game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/knights.nix b/nixpkgs/pkgs/applications/kde/knights.nix
new file mode 100644
index 000000000000..ee5c37e2e948
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/knights.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, kplotting, plasma-framework, libkdegames }:
+
+mkDerivation {
+  name = "knights";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.knights";
+    description = "KNights is a chess game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    plasma-framework
+    kplotting
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kollision.nix b/nixpkgs/pkgs/applications/kde/kollision.nix
new file mode 100644
index 000000000000..3c0c814cd15a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kollision.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames }:
+
+mkDerivation {
+  name = "kollision";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kollision";
+    description = "Kollision is a casual game";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kontact.nix b/nixpkgs/pkgs/applications/kde/kontact.nix
index 978baa925e5a..eb28458392ce 100644
--- a/nixpkgs/pkgs/applications/kde/kontact.nix
+++ b/nixpkgs/pkgs/applications/kde/kontact.nix
@@ -4,7 +4,7 @@
   qtwebengine,
   kcmutils, kcrash, kdbusaddons, kparts, kwindowsystem,
   akonadi, grantleetheme, kdepim-apps-libs, kontactinterface, kpimtextedit,
-  mailcommon, libkdepim
+  mailcommon, libkdepim, pimcommon
 }:
 
 mkDerivation {
@@ -18,6 +18,6 @@ mkDerivation {
     qtwebengine
     kcmutils kcrash kdbusaddons kparts kwindowsystem
     akonadi grantleetheme kdepim-apps-libs kontactinterface kpimtextedit
-    mailcommon libkdepim
+    mailcommon libkdepim pimcommon
   ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/kreversi.nix b/nixpkgs/pkgs/applications/kde/kreversi.nix
new file mode 100644
index 000000000000..77ac4f05c8a8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kreversi.nix
@@ -0,0 +1,19 @@
+{ mkDerivation, lib, extra-cmake-modules, libkdegames, kdeclarative }:
+
+mkDerivation {
+  name = "kreversi";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kreversi";
+    description = "KReversi is a simple one player strategy game played against the computer";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdeclarative
+    libkdegames
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kshisen.nix b/nixpkgs/pkgs/applications/kde/kshisen.nix
new file mode 100644
index 000000000000..7909ed8b2a38
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kshisen.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, libkdegames, libkmahjongg }:
+
+mkDerivation {
+  name = "kshisen";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.kshisen";
+    description = "KShisen is a solitaire-like game played using the standard set of Mahjong tiles";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    libkdegames
+    libkmahjongg
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/ksquares.nix b/nixpkgs/pkgs/applications/kde/ksquares.nix
new file mode 100644
index 000000000000..94a639a0d370
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/ksquares.nix
@@ -0,0 +1,22 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, libkdegames, kconfig, kcrash, kxmlgui }:
+
+mkDerivation {
+  name = "ksquares";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/games/org.kde.ksquares";
+    description = "KSquares is a game of Dots and Boxes";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdoctools
+    libkdegames
+    kconfig
+    kcrash
+    kxmlgui
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kteatime.nix b/nixpkgs/pkgs/applications/kde/kteatime.nix
new file mode 100644
index 000000000000..a69cb991acc0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kteatime.nix
@@ -0,0 +1,23 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kconfig, kcrash, kiconthemes, knotifyconfig }:
+
+mkDerivation {
+  name = "kteatime";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/utilities/org.kde.kteatime";
+    description = "KTeaTime is a handy timer for steeping tea";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdoctools
+    ki18n
+    kconfig
+    kcrash
+    kiconthemes
+    knotifyconfig
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/ktimer.nix b/nixpkgs/pkgs/applications/kde/ktimer.nix
new file mode 100644
index 000000000000..aa755f35ce43
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/ktimer.nix
@@ -0,0 +1,20 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio }:
+
+mkDerivation {
+  name = "ktimer";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/utilities/org.kde.ktimer";
+    description = "KTimer is a little tool to execute programs after some time";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdoctools
+    ki18n
+    kio
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kturtle.nix b/nixpkgs/pkgs/applications/kde/kturtle.nix
new file mode 100644
index 000000000000..e16c86dc1362
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kturtle.nix
@@ -0,0 +1,21 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, ki18n, kio, knewstuff }:
+
+mkDerivation {
+  name = "kturtle";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/utilities/org.kde.kturtle";
+    description = "KTurtle is an educational programming environment for learning how to program";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdoctools
+    ki18n
+    kio
+    knewstuff
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/kwave.nix b/nixpkgs/pkgs/applications/kde/kwave.nix
new file mode 100644
index 000000000000..349787d000b5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/kwave.nix
@@ -0,0 +1,37 @@
+{ mkDerivation, lib, extra-cmake-modules, kdoctools, qtmultimedia, kcompletion, kconfig, kcrash, kiconthemes, kio, audiofile, libsamplerate
+, alsaLib, libpulseaudio, flac, id3lib, libogg, libmad, libopus, libvorbis, fftw, librsvg }:
+
+mkDerivation {
+  name = "kwave";
+  meta = with lib; {
+    homepage = "https://kde.org/applications/en/multimedia/org.kde.kwave";
+    description = "KWave is a simple media player";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    alsaLib
+    audiofile
+    kcrash
+    kdoctools
+    qtmultimedia
+    kcompletion
+    kconfig
+    kiconthemes
+    kio
+    libpulseaudio
+    libsamplerate
+    flac
+    fftw
+    id3lib
+    libogg
+    libmad
+    libopus
+    libvorbis
+    librsvg
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/mailimporter.nix b/nixpkgs/pkgs/applications/kde/mailimporter.nix
index f002ff0f3403..5de58658777a 100644
--- a/nixpkgs/pkgs/applications/kde/mailimporter.nix
+++ b/nixpkgs/pkgs/applications/kde/mailimporter.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
   akonadi, akonadi-mime, karchive, kcompletion, kconfig, kcoreaddons, ki18n,
-  kmime, kxmlgui, libkdepim
+  kmime, kxmlgui, libkdepim, pimcommon
 }:
 
 mkDerivation {
@@ -14,6 +14,6 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     akonadi akonadi-mime karchive kcompletion kconfig kcoreaddons ki18n kmime
-    kxmlgui libkdepim
+    kxmlgui libkdepim pimcommon
   ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/marble.nix b/nixpkgs/pkgs/applications/kde/marble.nix
index b02e29e33513..f690e453361b 100644
--- a/nixpkgs/pkgs/applications/kde/marble.nix
+++ b/nixpkgs/pkgs/applications/kde/marble.nix
@@ -1,6 +1,6 @@
 { mkDerivation, lib
 , extra-cmake-modules, kdoctools
-, qtscript, qtsvg, qtquickcontrols, qtwebkit
+, qtscript, qtsvg, qtquickcontrols, qtwebengine
 , krunner, shared-mime-info, kparts, knewstuff
 , gpsd, perl
 }:
@@ -11,7 +11,7 @@ mkDerivation {
   outputs = [ "out" "dev" ];
   nativeBuildInputs = [ extra-cmake-modules kdoctools perl ];
   propagatedBuildInputs = [
-    qtscript qtsvg qtquickcontrols qtwebkit shared-mime-info krunner kparts
+    qtscript qtsvg qtquickcontrols qtwebengine shared-mime-info krunner kparts
     knewstuff gpsd
   ];
   preConfigure = ''
diff --git a/nixpkgs/pkgs/applications/kde/messagelib.nix b/nixpkgs/pkgs/applications/kde/messagelib.nix
index 23920a081c06..e31e61d35ca3 100644
--- a/nixpkgs/pkgs/applications/kde/messagelib.nix
+++ b/nixpkgs/pkgs/applications/kde/messagelib.nix
@@ -5,7 +5,7 @@
   grantleetheme, karchive, kcodecs, kconfig, kconfigwidgets, kcontacts,
   kdepim-apps-libs, kiconthemes, kidentitymanagement, kio, kjobwidgets, kldap,
   kmailtransport, kmbox, kmime, kwindowsystem, libgravatar, libkdepim, libkleo,
-  pimcommon, qtwebengine, qtwebkit, syntax-highlighting
+  pimcommon, qca-qt5, qtwebengine, syntax-highlighting
 }:
 
 mkDerivation {
@@ -18,7 +18,7 @@ mkDerivation {
   buildInputs = [
     akonadi-notes akonadi-search gpgme grantlee grantleetheme karchive kcodecs
     kconfig kconfigwidgets kdepim-apps-libs kiconthemes kio kjobwidgets kldap
-    kmailtransport kmbox kmime kwindowsystem libgravatar libkdepim qtwebkit
+    kmailtransport kmbox kmime kwindowsystem libgravatar libkdepim qca-qt5
     syntax-highlighting
   ];
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/kde/picmi.nix b/nixpkgs/pkgs/applications/kde/picmi.nix
new file mode 100644
index 000000000000..dd09e8f9cd80
--- /dev/null
+++ b/nixpkgs/pkgs/applications/kde/picmi.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, lib
+, libkdegames, extra-cmake-modules
+, kdeclarative, knewstuff
+}:
+
+mkDerivation {
+  name = "picmi";
+  meta = with lib; {
+    description = "Nonogram game";
+    longDescription = ''The goal is to reveal the hidden pattern in the board by coloring or
+      leaving blank the cells in a grid according to numbers given at the side of the grid.
+      '';
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+  };
+  nativeBuildInputs = [
+    extra-cmake-modules
+  ];
+  buildInputs = [
+    kdeclarative
+    knewstuff
+    libkdegames
+  ];
+}
diff --git a/nixpkgs/pkgs/applications/kde/pimcommon.nix b/nixpkgs/pkgs/applications/kde/pimcommon.nix
index cd9ff2528fac..2e74f528aeb1 100644
--- a/nixpkgs/pkgs/applications/kde/pimcommon.nix
+++ b/nixpkgs/pkgs/applications/kde/pimcommon.nix
@@ -1,9 +1,9 @@
 {
   mkDerivation, lib, kdepimTeam,
   extra-cmake-modules, kdoctools,
-  akonadi, akonadi-contacts, akonadi-mime, grantlee, karchive, kcodecs,
+  akonadi, akonadi-contacts, akonadi-mime, akonadi-search, grantlee, karchive, kcmutils, kcodecs,
   kcompletion, kconfig, kconfigwidgets, kcontacts, kdbusaddons,
-  kiconthemes, kimap, kio, kitemmodels, kjobwidgets, knewstuff, kpimtextedit,
+  kiconthemes, kimap, kio, kitemmodels, kjobwidgets, kldap, knewstuff, kpimtextedit,
   kpurpose, kwallet, kwindowsystem, libkdepim, qtwebengine
 }:
 
@@ -15,12 +15,12 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    akonadi-mime grantlee karchive kcodecs kcompletion kconfigwidgets
-    kdbusaddons kiconthemes kio kitemmodels kjobwidgets knewstuff kpimtextedit
+    akonadi-mime grantlee karchive kcmutils kcodecs kcompletion kconfigwidgets
+    kdbusaddons kiconthemes kio kitemmodels kjobwidgets knewstuff kldap kpimtextedit
     kpurpose kwallet kwindowsystem libkdepim qtwebengine
   ];
   propagatedBuildInputs = [
-    akonadi akonadi-contacts kconfig kcontacts kimap
+    akonadi akonadi-contacts akonadi-search kconfig kcontacts kimap
   ];
   outputs = [ "out" "dev" ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/spectacle.nix b/nixpkgs/pkgs/applications/kde/spectacle.nix
index 2d46b3cdaab3..b980ea21df2e 100644
--- a/nixpkgs/pkgs/applications/kde/spectacle.nix
+++ b/nixpkgs/pkgs/applications/kde/spectacle.nix
@@ -17,8 +17,8 @@ mkDerivation {
     knewstuff kwayland
   ];
   postPatch = ''
-    substituteInPlace desktop/org.kde.spectacle.desktop \
-      --replace "Exec=qdbus" "Exec=${lib.getBin qttools}/bin/qdbus"
+    substituteInPlace desktop/org.kde.spectacle.desktop.cmake \
+      --replace "Exec=@QtBinariesDir@/qdbus" "Exec=${lib.getBin qttools}/bin/qdbus"
   '';
   propagatedUserEnvPkgs = [ kipi-plugins libkipi ];
 }
diff --git a/nixpkgs/pkgs/applications/kde/srcs.nix b/nixpkgs/pkgs/applications/kde/srcs.nix
index dc6eb0f09e8c..5bcb48acc181 100644
--- a/nixpkgs/pkgs/applications/kde/srcs.nix
+++ b/nixpkgs/pkgs/applications/kde/srcs.nix
@@ -1,1734 +1,1734 @@
 # DO NOT EDIT! This file is generated automatically.
-# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/applications/kde/fetch.sh
+# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/applications/kde
 { fetchurl, mirror }:
 
 {
   akonadi = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akonadi-19.12.3.tar.xz";
-      sha256 = "e41714d81ecbb629aaa0b267e0c32a4b1d83c6a45cf3f37d52232003b4c0f325";
-      name = "akonadi-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akonadi-20.08.1.tar.xz";
+      sha256 = "f930de5fae376f138e87c6d67357ab799a3397d865b55c50f771b4427d85f495";
+      name = "akonadi-20.08.1.tar.xz";
     };
   };
   akonadi-calendar = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akonadi-calendar-19.12.3.tar.xz";
-      sha256 = "c58d18153ef711a79962ba907e44338a0ddd62968e0a6c50486bba09a6e2a446";
-      name = "akonadi-calendar-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akonadi-calendar-20.08.1.tar.xz";
+      sha256 = "896ec2523203022bf70e23897d59b64c8bfffad4ead5b6756555ab34a4047ef5";
+      name = "akonadi-calendar-20.08.1.tar.xz";
     };
   };
   akonadi-calendar-tools = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akonadi-calendar-tools-19.12.3.tar.xz";
-      sha256 = "ad2c23cf188228dc697d39e2120b56ce445bbea3eb46721794cd6344aa7e94ba";
-      name = "akonadi-calendar-tools-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akonadi-calendar-tools-20.08.1.tar.xz";
+      sha256 = "21ccc2e1090eeda1eba0c29ab51c3bae1e8f57aedead569c4ed7995f5ad6cffc";
+      name = "akonadi-calendar-tools-20.08.1.tar.xz";
     };
   };
   akonadiconsole = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akonadiconsole-19.12.3.tar.xz";
-      sha256 = "0dedcccfcfd7e6ad9a5af0aa61ce05f26cbb625d8bf6b6d210ac6e3c5813487f";
-      name = "akonadiconsole-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akonadiconsole-20.08.1.tar.xz";
+      sha256 = "077ee646babbc4ca4075505d3dd830f4f5b8b1253617228e96f565fe23bcaad9";
+      name = "akonadiconsole-20.08.1.tar.xz";
     };
   };
   akonadi-contacts = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akonadi-contacts-19.12.3.tar.xz";
-      sha256 = "b0baed9edb8c05b6d9b8db84239cd83a334d8f1d14d4aa8027dc1139a543eadf";
-      name = "akonadi-contacts-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akonadi-contacts-20.08.1.tar.xz";
+      sha256 = "eee775960345ec0ca13b0550bb56fb6875867921fa7b9412a2c4b0dfb8ab4366";
+      name = "akonadi-contacts-20.08.1.tar.xz";
     };
   };
   akonadi-import-wizard = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akonadi-import-wizard-19.12.3.tar.xz";
-      sha256 = "2c1491e4f5994ed0d317a27cc717184a86f7d92c4b44f8bd056e147e80bee8c5";
-      name = "akonadi-import-wizard-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akonadi-import-wizard-20.08.1.tar.xz";
+      sha256 = "d895c866a05f0a55ca8f2d852ed0ae3fdc13aa160cbcbaf9f1017443458d9526";
+      name = "akonadi-import-wizard-20.08.1.tar.xz";
     };
   };
   akonadi-mime = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akonadi-mime-19.12.3.tar.xz";
-      sha256 = "13bdf9a233a183d5aeee1be0991617fca6d73ffd35bc14ca0d18714149f04392";
-      name = "akonadi-mime-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akonadi-mime-20.08.1.tar.xz";
+      sha256 = "3c7a57f798a7db1e1aebc3162c20f58a0fb9ed9e703078344ef1de215c73ff0b";
+      name = "akonadi-mime-20.08.1.tar.xz";
     };
   };
   akonadi-notes = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akonadi-notes-19.12.3.tar.xz";
-      sha256 = "a34c2420190925b985b0629d7d2d19be04443cfeeaf284229666338e039e56e2";
-      name = "akonadi-notes-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akonadi-notes-20.08.1.tar.xz";
+      sha256 = "afc0cdba349f0b2edece44221a7c3c532d07251ec51f05994e83a1d79c4f50fc";
+      name = "akonadi-notes-20.08.1.tar.xz";
     };
   };
   akonadi-search = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akonadi-search-19.12.3.tar.xz";
-      sha256 = "60072a36f6c817d009a8476bad2e80c4131b14358e03b4889a03aa42340ed041";
-      name = "akonadi-search-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akonadi-search-20.08.1.tar.xz";
+      sha256 = "db305bfc55535d8812d84a119e4dcf04e7b87c345e7ac3a884469cbf55abca83";
+      name = "akonadi-search-20.08.1.tar.xz";
     };
   };
   akregator = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/akregator-19.12.3.tar.xz";
-      sha256 = "63db0f6c75bffe9235122201445d151f4eaa7061d2a8df4eb924bca1a4600f68";
-      name = "akregator-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/akregator-20.08.1.tar.xz";
+      sha256 = "21751a5a14b188649caeeb19cbcef877dd00548a29c073f8694e227d951c7a00";
+      name = "akregator-20.08.1.tar.xz";
     };
   };
   analitza = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/analitza-19.12.3.tar.xz";
-      sha256 = "47ca3acaf2d2f52e91cd2253742ab97d9b07abc3fef0d632bfc36d253dbf161b";
-      name = "analitza-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/analitza-20.08.1.tar.xz";
+      sha256 = "91c691df8be52255db9387549c6392ad2c5358c12e805f3a96520e2aa0c147de";
+      name = "analitza-20.08.1.tar.xz";
     };
   };
   ark = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ark-19.12.3.tar.xz";
-      sha256 = "78594029729c197fc90321850696f1bd189b40d8d7fbc9faf51ad6b2ab744a07";
-      name = "ark-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ark-20.08.1.tar.xz";
+      sha256 = "32e8546b186b88efc9d4688e02def0b6225d921f9b92cfcd328417f09ec0f725";
+      name = "ark-20.08.1.tar.xz";
     };
   };
   artikulate = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/artikulate-19.12.3.tar.xz";
-      sha256 = "c27a5cb98a8e2975638fe74683a73f92c160ce133b133878844062dd99ffded6";
-      name = "artikulate-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/artikulate-20.08.1.tar.xz";
+      sha256 = "b626a6a38f6eb50d64607032d5b100351c4242e40a4a13cdce4769e188ee361a";
+      name = "artikulate-20.08.1.tar.xz";
     };
   };
   audiocd-kio = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/audiocd-kio-19.12.3.tar.xz";
-      sha256 = "b920170ae816f29a61a6f6b25df68c9125a5d4d9fec225feee45e46317d64d42";
-      name = "audiocd-kio-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/audiocd-kio-20.08.1.tar.xz";
+      sha256 = "7662849929c96d1745ce4ac7ddc931be2eff5e3cc755f2cd959b4d3f4b20b9b0";
+      name = "audiocd-kio-20.08.1.tar.xz";
     };
   };
   baloo-widgets = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/baloo-widgets-19.12.3.tar.xz";
-      sha256 = "236c0bb0bcb345f4ce5f07d591bded6221383bc7b190b42b96999893390cd8a5";
-      name = "baloo-widgets-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/baloo-widgets-20.08.1.tar.xz";
+      sha256 = "9f48cb2f1b45e46828b1656abaeb60e836650015c07277ec52bea053d0058958";
+      name = "baloo-widgets-20.08.1.tar.xz";
     };
   };
   blinken = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/blinken-19.12.3.tar.xz";
-      sha256 = "06ef385ab73d99fa3f1925a6f2ef522f691d04cd594777f5d9fa52a5f2e45a94";
-      name = "blinken-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/blinken-20.08.1.tar.xz";
+      sha256 = "53b30435ea0d83f713ecb53219173aa55c0d11194830972734a4acc9a5a28c5a";
+      name = "blinken-20.08.1.tar.xz";
     };
   };
   bomber = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/bomber-19.12.3.tar.xz";
-      sha256 = "ea4926fe08c62ac5da28c3bb480a6986e51f7a77e3245d1dc1603c38617da4b0";
-      name = "bomber-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/bomber-20.08.1.tar.xz";
+      sha256 = "a4b2f5dcce7e125da30bef6bcc9746b67f8451d2040696714686dd618d80a96c";
+      name = "bomber-20.08.1.tar.xz";
     };
   };
   bovo = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/bovo-19.12.3.tar.xz";
-      sha256 = "ac67aff75c1e8e0d1a1a8142ae94431e4f39565f411287f57c2778f8820316af";
-      name = "bovo-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/bovo-20.08.1.tar.xz";
+      sha256 = "5d5ee817a73de0deef6b7c35a798bda02c6d15e9dd0e7379a13c23c0832fe0d1";
+      name = "bovo-20.08.1.tar.xz";
     };
   };
   calendarsupport = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/calendarsupport-19.12.3.tar.xz";
-      sha256 = "ecbd194b5aa39284d33f7f2ddca75175f8699efee1bfbd5000ea10076567bae8";
-      name = "calendarsupport-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/calendarsupport-20.08.1.tar.xz";
+      sha256 = "38d6e695725c8484e1492d431144a0ecd1b66535bc07ac77e1f0eb1499d8fc32";
+      name = "calendarsupport-20.08.1.tar.xz";
     };
   };
   cantor = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/cantor-19.12.3.tar.xz";
-      sha256 = "8347160f18993f53c857ec0d418dfebbc533878ad9f480047646d121e4e644cb";
-      name = "cantor-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/cantor-20.08.1.tar.xz";
+      sha256 = "c44b96ac861302589923d144bf7b5d529b6eb2f91cea2d014944a0516de31a05";
+      name = "cantor-20.08.1.tar.xz";
     };
   };
   cervisia = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/cervisia-19.12.3.tar.xz";
-      sha256 = "733a90f521cd79157f6d02eeb28376bc703239800473e8cf366611dd4f3342a6";
-      name = "cervisia-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/cervisia-20.08.1.tar.xz";
+      sha256 = "eedd3b3f00b97d513437fdbd2eeaa28cd6db29512983b82196bdededd8b701f2";
+      name = "cervisia-20.08.1.tar.xz";
     };
   };
   dolphin = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/dolphin-19.12.3.tar.xz";
-      sha256 = "ba16f4d5be5ccc3c135a913f2e3c7dd3b7a492cfc9ec9ae518f714fcd7c2ab47";
-      name = "dolphin-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/dolphin-20.08.1.tar.xz";
+      sha256 = "7d6ef04b866366a0ff3b199aac082ade41b3748b225ef7675ea42ccf48cbdc24";
+      name = "dolphin-20.08.1.tar.xz";
     };
   };
   dolphin-plugins = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/dolphin-plugins-19.12.3.tar.xz";
-      sha256 = "7dbd5c0fe4281c46df789f86f468c4ea32949285055cae4652bab3de59acdfd3";
-      name = "dolphin-plugins-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/dolphin-plugins-20.08.1.tar.xz";
+      sha256 = "a00cab6b30c9b5a4c0164704c9eab2cbb661928e775f83acb3691af77bf17427";
+      name = "dolphin-plugins-20.08.1.tar.xz";
     };
   };
   dragon = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/dragon-19.12.3.tar.xz";
-      sha256 = "c5b09b2bd37f4e86f8412d3b950331d330257ba53278b1a569f36bf3fbf560ee";
-      name = "dragon-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/dragon-20.08.1.tar.xz";
+      sha256 = "691bc338ca25e70e9a43cbcdf50f2e0aa92643bdad0329bdc3e09373ac287040";
+      name = "dragon-20.08.1.tar.xz";
     };
   };
   elisa = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/elisa-19.12.3.tar.xz";
-      sha256 = "28ad795c1d993969d49ab71514129589a71ee6fe8a2de785e22f17f5af7c3d32";
-      name = "elisa-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/elisa-20.08.1.tar.xz";
+      sha256 = "1a0234a074a70bfcd4b2ccc14664b2cc7f88d2ccfd33c1716d35c27a31e258c0";
+      name = "elisa-20.08.1.tar.xz";
     };
   };
   eventviews = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/eventviews-19.12.3.tar.xz";
-      sha256 = "e2ac6a77c6bdee008229a2b03262ac5602e0cabfd325a92df58be63aaa7db662";
-      name = "eventviews-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/eventviews-20.08.1.tar.xz";
+      sha256 = "b46e6ad32a503ce1dc1e5ade71e79f44011362fe569836ca1f2cd11c560a5a73";
+      name = "eventviews-20.08.1.tar.xz";
     };
   };
   ffmpegthumbs = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ffmpegthumbs-19.12.3.tar.xz";
-      sha256 = "cc4a1c3b4768dc674d210294a9957d622448cbe9cdaf713c1cb40bff3a79260e";
-      name = "ffmpegthumbs-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ffmpegthumbs-20.08.1.tar.xz";
+      sha256 = "8b7cd6bd27b29977d0406b08c2cf33988c651a2f59392be47f076e49eea5673b";
+      name = "ffmpegthumbs-20.08.1.tar.xz";
     };
   };
   filelight = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/filelight-19.12.3.tar.xz";
-      sha256 = "9ea78509f932cd2bd553d934e2af75c25d0b65d85d2b0ab4a007ac5929b2d3b5";
-      name = "filelight-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/filelight-20.08.1.tar.xz";
+      sha256 = "9677038781a1d66238da0e54f967c9c97cb44d593dbe164b8e26f38d0ac75330";
+      name = "filelight-20.08.1.tar.xz";
     };
   };
   granatier = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/granatier-19.12.3.tar.xz";
-      sha256 = "aa2e410e4eeae74f3902028069955017a31a922dff98b81850f20743f7b54c95";
-      name = "granatier-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/granatier-20.08.1.tar.xz";
+      sha256 = "7b0d53fd50fdb56270f8fd53d45478c0f1be10bb67b901db08b0f413c4baeb3e";
+      name = "granatier-20.08.1.tar.xz";
     };
   };
   grantlee-editor = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/grantlee-editor-19.12.3.tar.xz";
-      sha256 = "5df3e5ce7933290f9f6423bdbcb0ff5614a1a4b6fda250a37bd3ed57647f8a3c";
-      name = "grantlee-editor-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/grantlee-editor-20.08.1.tar.xz";
+      sha256 = "edeb994eab7001bcf8462834a61ae1a045e9122ae104d31bdeed2ac7497b6306";
+      name = "grantlee-editor-20.08.1.tar.xz";
     };
   };
   grantleetheme = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/grantleetheme-19.12.3.tar.xz";
-      sha256 = "cc0ce448c9d8396dcadea2a43089feca8e1074572df42752f70dd176676f29f9";
-      name = "grantleetheme-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/grantleetheme-20.08.1.tar.xz";
+      sha256 = "9a8f91ce63a3b143d47d8e3fbd1378732639cd3daf5b5789989164d8225fe54f";
+      name = "grantleetheme-20.08.1.tar.xz";
     };
   };
   gwenview = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/gwenview-19.12.3.tar.xz";
-      sha256 = "b453cd55b7409bf8e4446a1b714dc66e73a0376d2da65b184b82f786767164e7";
-      name = "gwenview-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/gwenview-20.08.1.tar.xz";
+      sha256 = "df1c45317aff9aece8b023cd87aab62c9cd222520795922564e89fdc9df48995";
+      name = "gwenview-20.08.1.tar.xz";
     };
   };
   incidenceeditor = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/incidenceeditor-19.12.3.tar.xz";
-      sha256 = "c608a95f6d09433b378f5df0243eff77be3738fb56f99ab439774f2cad5908a6";
-      name = "incidenceeditor-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/incidenceeditor-20.08.1.tar.xz";
+      sha256 = "eecc51eb405c473eb20449842dcdb3dac96712bbcf7aeedaa06614e1da3e0bbe";
+      name = "incidenceeditor-20.08.1.tar.xz";
     };
   };
   juk = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/juk-19.12.3.tar.xz";
-      sha256 = "4bc4210d223afc23cb6edc9262eceee038ecc6243a550698e676230168943611";
-      name = "juk-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/juk-20.08.1.tar.xz";
+      sha256 = "aa9a93a0befacf401cf41d8358b4987d8b370b4c153f3b66e05e922472e004a8";
+      name = "juk-20.08.1.tar.xz";
     };
   };
   k3b = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/k3b-19.12.3.tar.xz";
-      sha256 = "832c314d528ed21971d9d9d26c1c4d6c61323c9b3b01787d710541e3651575a5";
-      name = "k3b-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/k3b-20.08.1.tar.xz";
+      sha256 = "66fad59f4e35c24dc8868c46ff45ffa66048501e0a6ac0c23a8b9e957033e50f";
+      name = "k3b-20.08.1.tar.xz";
     };
   };
   kaccounts-integration = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kaccounts-integration-19.12.3.tar.xz";
-      sha256 = "452b95113de5fb0d19a13ef75e229ee07b0e92cc1e7a17e9a2dc7879121d9d33";
-      name = "kaccounts-integration-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kaccounts-integration-20.08.1.tar.xz";
+      sha256 = "b65ec11be0c2b612222de382d24345f19be0cd264243f0d954da8a81b80034bc";
+      name = "kaccounts-integration-20.08.1.tar.xz";
     };
   };
   kaccounts-providers = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kaccounts-providers-19.12.3.tar.xz";
-      sha256 = "8774e9a8113e4aba593afeff655e38f6259c78e7dbaf1d95ea00235be880f3dd";
-      name = "kaccounts-providers-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kaccounts-providers-20.08.1.tar.xz";
+      sha256 = "481a2e2708773197b63937233ade6380c0b64e13a1610f27aa2751b6ee3624a4";
+      name = "kaccounts-providers-20.08.1.tar.xz";
     };
   };
   kaddressbook = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kaddressbook-19.12.3.tar.xz";
-      sha256 = "1dede421e6fef2b1abc7d36dd1855cef43cc82de909a432cd38cff42d4168fba";
-      name = "kaddressbook-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kaddressbook-20.08.1.tar.xz";
+      sha256 = "f7fb72cbff43ae6dfb222e5b1c49947602086412b97634484eb3cc86ab773aa2";
+      name = "kaddressbook-20.08.1.tar.xz";
     };
   };
   kajongg = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kajongg-19.12.3.tar.xz";
-      sha256 = "23e2b1be670b48bdd027e4e7a57e86a94b322afe6d37d8492c3d17689decfae5";
-      name = "kajongg-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kajongg-20.08.1.tar.xz";
+      sha256 = "801c0cc63767809ea4909ceb66dbbbb3e8ad400db7a24c80dc6ae8f3f5c9a6b9";
+      name = "kajongg-20.08.1.tar.xz";
     };
   };
   kalarm = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kalarm-19.12.3.tar.xz";
-      sha256 = "526ab8884752c15622233db8b72e88d0c22a7a1bd265763d850b6e18e32de417";
-      name = "kalarm-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kalarm-20.08.1.tar.xz";
+      sha256 = "22fea5be32c8db6b0903f216307f20dafc2ac69c620d9b4512e1034c0294c207";
+      name = "kalarm-20.08.1.tar.xz";
     };
   };
   kalarmcal = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kalarmcal-19.12.3.tar.xz";
-      sha256 = "0ec5188f1164d91de702639ab2f85a713889feef48fc02dfe7385c945d06aa60";
-      name = "kalarmcal-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kalarmcal-20.08.1.tar.xz";
+      sha256 = "745515662c23154480e73f4a8d6e9ec760d01770383c1dd7f31d3f1463be7602";
+      name = "kalarmcal-20.08.1.tar.xz";
     };
   };
   kalgebra = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kalgebra-19.12.3.tar.xz";
-      sha256 = "ac865dded31b61c438ddb9db721543b8facba79c9b39365750b4bebfe2645640";
-      name = "kalgebra-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kalgebra-20.08.1.tar.xz";
+      sha256 = "a5ab916eba3bfd7535408768e6530e993bc1097ef1a2a0af5aa804aa1f713caf";
+      name = "kalgebra-20.08.1.tar.xz";
     };
   };
   kalzium = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kalzium-19.12.3.tar.xz";
-      sha256 = "e44f359d1343c30cf1993a3970a3e610d0d5782f92a6b331b035cf4fef104195";
-      name = "kalzium-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kalzium-20.08.1.tar.xz";
+      sha256 = "c2c4a823525ab5927c39f29e2150f34fc03947fb852aea1bdb73390c5a709188";
+      name = "kalzium-20.08.1.tar.xz";
     };
   };
   kamera = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kamera-19.12.3.tar.xz";
-      sha256 = "22e19527bf9748cdc298be4c3fa2cb0a3b8b337da3a3a804c9d6066d7f3e1110";
-      name = "kamera-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kamera-20.08.1.tar.xz";
+      sha256 = "f5b04ca46313de1bb0a57253650d1d1578f45796035888b759ad224b5866ee96";
+      name = "kamera-20.08.1.tar.xz";
     };
   };
   kamoso = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kamoso-19.12.3.tar.xz";
-      sha256 = "9ae14c4c80cdbbf2ce2e92db5e9c814fbd685e81aa5c319aac5477649fc39fe4";
-      name = "kamoso-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kamoso-20.08.1.tar.xz";
+      sha256 = "ed8fa6a6127a8bea5294534aa2552526af101f981de58512fbb9f7dfd78e8984";
+      name = "kamoso-20.08.1.tar.xz";
     };
   };
   kanagram = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kanagram-19.12.3.tar.xz";
-      sha256 = "441cae90d3b70dbef40bebbcf1325fa06e0df174a3f961b4b117a5fa1b40d6e3";
-      name = "kanagram-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kanagram-20.08.1.tar.xz";
+      sha256 = "c810db58884e80d95baef149b8ced8fff7c5e48d6057478e81a5c8895ae67b42";
+      name = "kanagram-20.08.1.tar.xz";
     };
   };
   kapman = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kapman-19.12.3.tar.xz";
-      sha256 = "3c81e3395ce2b2ea0937b09c0836cb58b8a941c2b7e2a27bd9741b2a9be1c1dd";
-      name = "kapman-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kapman-20.08.1.tar.xz";
+      sha256 = "934da85c5d9c99a0ed658fe4d99df258246716e04e13ceb3e18b11cc035c4f4c";
+      name = "kapman-20.08.1.tar.xz";
     };
   };
   kapptemplate = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kapptemplate-19.12.3.tar.xz";
-      sha256 = "5bef4e4fb74da3102cba6672584195962514ee3f53fb369b48d492d6ce7255ad";
-      name = "kapptemplate-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kapptemplate-20.08.1.tar.xz";
+      sha256 = "7b350467e14bc310a695ffa3481afa7857de2f6ec714915ee2d8a25a6511909b";
+      name = "kapptemplate-20.08.1.tar.xz";
     };
   };
   kate = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kate-19.12.3.tar.xz";
-      sha256 = "f60b52e5a6a78920ac703a458f1eaf0ced02ffcd8b5f2d49de9a48674eeb007c";
-      name = "kate-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kate-20.08.1.tar.xz";
+      sha256 = "44607f6a1d5ca8bb7173bedbeabef65bb98dde0fd009987bd8139fbb53959146";
+      name = "kate-20.08.1.tar.xz";
     };
   };
   katomic = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/katomic-19.12.3.tar.xz";
-      sha256 = "d7ed527e2546e94cb091e433a2e61618301152704c48e1f003e1f8e60b4f0cbd";
-      name = "katomic-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/katomic-20.08.1.tar.xz";
+      sha256 = "1aa655857bb1708880b6fbf4e54acdfe1cb7f47a9494249978251d870b86f13a";
+      name = "katomic-20.08.1.tar.xz";
     };
   };
   kbackup = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kbackup-19.12.3.tar.xz";
-      sha256 = "1761009f9cd854d3fb4f98eb24b5ee7f3c42c4541f7cfb2ff1589786c86bdc99";
-      name = "kbackup-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kbackup-20.08.1.tar.xz";
+      sha256 = "08b0c43fca2dba65e1173841343daf8e6e37e11101be7315011e8345ba9b1e72";
+      name = "kbackup-20.08.1.tar.xz";
     };
   };
   kblackbox = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kblackbox-19.12.3.tar.xz";
-      sha256 = "dffb910a5d429dfc231b7d2185119430856d26af2c027d34c551a6d664ae49c6";
-      name = "kblackbox-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kblackbox-20.08.1.tar.xz";
+      sha256 = "3f09d483fa3a3013e685df9efd9cee8d9d1b9f0e017cc97d92636bae89fc469c";
+      name = "kblackbox-20.08.1.tar.xz";
     };
   };
   kblocks = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kblocks-19.12.3.tar.xz";
-      sha256 = "5bc5cb14b91c9b230563388b4d935211975bae34ed36cb0479cbf25bc3b652fb";
-      name = "kblocks-19.12.3.tar.xz";
-    };
-  };
-  kblog = {
-    version = "19.12.3";
-    src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kblog-19.12.3.tar.xz";
-      sha256 = "3fba584c4c217c5b5b3be52752f8f3c371fb877fe3b730a48711028fedc6b3d4";
-      name = "kblog-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kblocks-20.08.1.tar.xz";
+      sha256 = "e2b6e5b0727ca45d6b0f0e8b9f0aa029a0acb9bdebeac5bfd849455e560977ed";
+      name = "kblocks-20.08.1.tar.xz";
     };
   };
   kbounce = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kbounce-19.12.3.tar.xz";
-      sha256 = "d1b7ac99e54070e1e28a3449e8773691e90625c9f881cf94352ef752700197d0";
-      name = "kbounce-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kbounce-20.08.1.tar.xz";
+      sha256 = "99af3bd297fcbecb9eaa4222bbb5122144beff9cb999420bf45339d61375f2a4";
+      name = "kbounce-20.08.1.tar.xz";
     };
   };
   kbreakout = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kbreakout-19.12.3.tar.xz";
-      sha256 = "ca662c9f2c6765f5f8b07bd4cc2e2aa0a43b69fec6428c3deda2cfad0ab675fa";
-      name = "kbreakout-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kbreakout-20.08.1.tar.xz";
+      sha256 = "0d57c105f2778b68c0b5ff8cb3e02d5c7ea2956b90d48d126ff1118b94d5f2fa";
+      name = "kbreakout-20.08.1.tar.xz";
     };
   };
   kbruch = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kbruch-19.12.3.tar.xz";
-      sha256 = "522ddae0b2ec640e70c717a9fe0d6a95aef1ed3fe2acbca4b93a99a309abd559";
-      name = "kbruch-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kbruch-20.08.1.tar.xz";
+      sha256 = "f04bf902a31b68d18c69afff511a591817a35f5ad866de4f84aa1b664b35a41e";
+      name = "kbruch-20.08.1.tar.xz";
     };
   };
   kcachegrind = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kcachegrind-19.12.3.tar.xz";
-      sha256 = "a30b70bac32f2b33c3c90b8c17754cfbf7d293c9eff0d573747eca2b45353b41";
-      name = "kcachegrind-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kcachegrind-20.08.1.tar.xz";
+      sha256 = "59c43296aaa7d8a5dbf782ba9248ee8bb6308e7bd7bdfc0b99e1c912529337f2";
+      name = "kcachegrind-20.08.1.tar.xz";
     };
   };
   kcalc = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kcalc-19.12.3.tar.xz";
-      sha256 = "bbda4fc074e1ea748e95840aa79c51fdf0a1943ebb63ce6c7b68c197831258bd";
-      name = "kcalc-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kcalc-20.08.1.tar.xz";
+      sha256 = "46702fe8eca8b604e15f3f2eb4d1f17b8601b6ad0b03bb9cd0a0dd7ed7a13c49";
+      name = "kcalc-20.08.1.tar.xz";
     };
   };
   kcalutils = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kcalutils-19.12.3.tar.xz";
-      sha256 = "00da1f331110a63c3d3c2c96394ead3d282f582d73fa925065560a50807fb7ff";
-      name = "kcalutils-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kcalutils-20.08.1.tar.xz";
+      sha256 = "ae6a8ca02722f8f593a8d248ab3d043cc68be23d18f820e150af000a902601c2";
+      name = "kcalutils-20.08.1.tar.xz";
     };
   };
   kcharselect = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kcharselect-19.12.3.tar.xz";
-      sha256 = "9be6ac607148b0815bd985075fbb97d44561fdd6a955b60f0afc728f9cbd978b";
-      name = "kcharselect-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kcharselect-20.08.1.tar.xz";
+      sha256 = "36575e9fd0a93fb3ddaf6a75a213786351bdd3ab8c167dc1a3e2824a23a6655b";
+      name = "kcharselect-20.08.1.tar.xz";
     };
   };
   kcolorchooser = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kcolorchooser-19.12.3.tar.xz";
-      sha256 = "cb0395c1b4f953fd51129cfe5088702ec261f84cc045f889e22c13e81793744a";
-      name = "kcolorchooser-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kcolorchooser-20.08.1.tar.xz";
+      sha256 = "20cae01bd5e8c824f8e7900badd0d66464c363a749a1ce9fe6fe3a1e31c99ade";
+      name = "kcolorchooser-20.08.1.tar.xz";
     };
   };
   kcron = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kcron-19.12.3.tar.xz";
-      sha256 = "22d07834e8431d0fcc756a0e7d92d4e8993008766bf336254f8650c9455c9ab0";
-      name = "kcron-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kcron-20.08.1.tar.xz";
+      sha256 = "24ee9aee48bef951d6ac1fff32271417c4eb2239f0ec1de8388f2bae55ce83f5";
+      name = "kcron-20.08.1.tar.xz";
     };
   };
-  kdav = {
-    version = "19.12.3";
+  kdebugsettings = {
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdav-19.12.3.tar.xz";
-      sha256 = "7a0ed47378e064536b26dfdfcf7abcdb8dd2ec253a7bbcef7962b701d368872a";
-      name = "kdav-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdebugsettings-20.08.1.tar.xz";
+      sha256 = "cac50d34c8a31805924aa75755475a754109fc643e95fe50188477522d113a55";
+      name = "kdebugsettings-20.08.1.tar.xz";
     };
   };
-  kdebugsettings = {
-    version = "19.12.3";
+  kdeconnect-kde = {
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdebugsettings-19.12.3.tar.xz";
-      sha256 = "ad18d13dd0943a3651ec4729441899b103bd2dc743a4a373ce7bd14fb38dd3e0";
-      name = "kdebugsettings-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdeconnect-kde-20.08.1.tar.xz";
+      sha256 = "8ebfe36b4d08b36881082a3748f63a7c645b51e8f3b094607512817e9f6ce668";
+      name = "kdeconnect-kde-20.08.1.tar.xz";
     };
   };
   kde-dev-scripts = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kde-dev-scripts-19.12.3.tar.xz";
-      sha256 = "94c0ba9de369dd6af14dcea505616025bf06599618a6c7557861aa9fb89ea628";
-      name = "kde-dev-scripts-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kde-dev-scripts-20.08.1.tar.xz";
+      sha256 = "f7f99a199fea69019738e6d2147e5f6e4419835aa2c39e6d60f4d2e5d629ba96";
+      name = "kde-dev-scripts-20.08.1.tar.xz";
     };
   };
   kde-dev-utils = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kde-dev-utils-19.12.3.tar.xz";
-      sha256 = "772ec425865082b8be3650cf0af10ad943f38096036227cab22405b32c4e1fae";
-      name = "kde-dev-utils-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kde-dev-utils-20.08.1.tar.xz";
+      sha256 = "8105a5b911643dca1f0c476c9247282f80e4ea17bae06dcca63ba9638bf5d21d";
+      name = "kde-dev-utils-20.08.1.tar.xz";
     };
   };
   kdeedu-data = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdeedu-data-19.12.3.tar.xz";
-      sha256 = "76fd5c0efaf339bcfc5ac9f131bac8889cff1df2dd3452ea7dd507b8d9e2645b";
-      name = "kdeedu-data-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdeedu-data-20.08.1.tar.xz";
+      sha256 = "d9c10c849f94b8cff7f79747a0594b8050f19d5477799b03f803c4241a9d12b6";
+      name = "kdeedu-data-20.08.1.tar.xz";
     };
   };
   kdegraphics-mobipocket = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdegraphics-mobipocket-19.12.3.tar.xz";
-      sha256 = "c459f9f04cf98cdc88a6763da8880f418e0c33b3cbd1d06b9a7347ebb470d835";
-      name = "kdegraphics-mobipocket-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdegraphics-mobipocket-20.08.1.tar.xz";
+      sha256 = "9974c36d90fc23d9a3a7172cf1526dc3671bf90f01f608effe92f64fce53c372";
+      name = "kdegraphics-mobipocket-20.08.1.tar.xz";
     };
   };
   kdegraphics-thumbnailers = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdegraphics-thumbnailers-19.12.3.tar.xz";
-      sha256 = "92a045ac0e9ca57ea27760df3cca0203f29ba435574e9d837d0c1069b8e88f72";
-      name = "kdegraphics-thumbnailers-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdegraphics-thumbnailers-20.08.1.tar.xz";
+      sha256 = "8303231f2fc44c071b3f6a477ae5335f2657dbfaba52362529aaba20973a5995";
+      name = "kdegraphics-thumbnailers-20.08.1.tar.xz";
     };
   };
   kdenetwork-filesharing = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdenetwork-filesharing-19.12.3.tar.xz";
-      sha256 = "8cc75f47ef8038cd7ee75974056cd48022816ab42c76cb6bd2c35a3619445180";
-      name = "kdenetwork-filesharing-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdenetwork-filesharing-20.08.1.tar.xz";
+      sha256 = "e88f4a2f6d7b8a61ebd491eb112f51d50f9949d729022fab01223d6ea36b8a01";
+      name = "kdenetwork-filesharing-20.08.1.tar.xz";
     };
   };
   kdenlive = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdenlive-19.12.3.tar.xz";
-      sha256 = "cebcb8f019bc0fc719ef54d00507dc1281758e3c8c69ea2f93f99feda777bc64";
-      name = "kdenlive-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdenlive-20.08.1.tar.xz";
+      sha256 = "f99e3f22c3d5e41a3ca251299d010ac2bc44933091c25d360104d562a1090873";
+      name = "kdenlive-20.08.1.tar.xz";
     };
   };
   kdepim-addons = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdepim-addons-19.12.3.tar.xz";
-      sha256 = "f33bc70ac54ab56eea7bd8ca4c0ac98d9612acc4ddc9ce989d06b99f04f62c19";
-      name = "kdepim-addons-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdepim-addons-20.08.1.tar.xz";
+      sha256 = "a0bddcbe8f8f6d8c878a6b5634578522a8d485e424cf37d35bc17df9a1ffc7c2";
+      name = "kdepim-addons-20.08.1.tar.xz";
     };
   };
   kdepim-apps-libs = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdepim-apps-libs-19.12.3.tar.xz";
-      sha256 = "e133cf76364f6b244338eafd39845a9f392eb9b55c43446541acbcb24a6f4796";
-      name = "kdepim-apps-libs-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdepim-apps-libs-20.08.1.tar.xz";
+      sha256 = "a0664933b3b5ff20747bf2adec9fbbecf22935129349208430d53e8c9bf5b5bb";
+      name = "kdepim-apps-libs-20.08.1.tar.xz";
     };
   };
   kdepim-runtime = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdepim-runtime-19.12.3.tar.xz";
-      sha256 = "dabf7da1ad35dfaa3531639a8964b61dbd7094ec0a9b3d62f50fa24a22f5db13";
-      name = "kdepim-runtime-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdepim-runtime-20.08.1.tar.xz";
+      sha256 = "27a4c04dcf2eac4108a43acbdd57e3a8aa1da92443a3e7977329d0218da05c24";
+      name = "kdepim-runtime-20.08.1.tar.xz";
     };
   };
   kdesdk-kioslaves = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdesdk-kioslaves-19.12.3.tar.xz";
-      sha256 = "8b075bff545883aba24fee1763d0cdc64bf9444ae865f0623a33fc1ca295d254";
-      name = "kdesdk-kioslaves-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdesdk-kioslaves-20.08.1.tar.xz";
+      sha256 = "528cce0ea4c7c9fd53a604591eae4a70d39421ebbe62ed59bcbc80072f95c19f";
+      name = "kdesdk-kioslaves-20.08.1.tar.xz";
     };
   };
   kdesdk-thumbnailers = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdesdk-thumbnailers-19.12.3.tar.xz";
-      sha256 = "b304843045f93e91e0aeeeacf968018dc192ea71ed9977be3d9cfc4e149edcde";
-      name = "kdesdk-thumbnailers-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdesdk-thumbnailers-20.08.1.tar.xz";
+      sha256 = "5b189182f2a734f82e67e23d3293e694c51f97c0a9acd1ec5498442a3d2a3804";
+      name = "kdesdk-thumbnailers-20.08.1.tar.xz";
     };
   };
   kdf = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdf-19.12.3.tar.xz";
-      sha256 = "257e07e27376f45eaa1bfb1b3055c7f10759ca7ec185aa7572dc60317c8119bd";
-      name = "kdf-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdf-20.08.1.tar.xz";
+      sha256 = "c100c87e9dbfcf7c12ce78d743f4ce3a2ec2bf3c1b0d969af1285255071195a5";
+      name = "kdf-20.08.1.tar.xz";
     };
   };
   kdialog = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdialog-19.12.3.tar.xz";
-      sha256 = "e6f9a7a6b7c2f18795070bf9466dd6256568b02683d955ef3253432216594d00";
-      name = "kdialog-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdialog-20.08.1.tar.xz";
+      sha256 = "089e8a8e85a9021b830e9b8a19ecb1999781915a716c9c2b3c99894a5d1c8dcf";
+      name = "kdialog-20.08.1.tar.xz";
     };
   };
   kdiamond = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kdiamond-19.12.3.tar.xz";
-      sha256 = "95dfd2fd3daa59a58d128c35b95b609117438efdb5d60110414ab7aff5fe3e7c";
-      name = "kdiamond-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kdiamond-20.08.1.tar.xz";
+      sha256 = "1629dc6f70873b42081bd75dbf858da56d380c32925ddd49bd2110d458cb4b23";
+      name = "kdiamond-20.08.1.tar.xz";
     };
   };
   keditbookmarks = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/keditbookmarks-19.12.3.tar.xz";
-      sha256 = "1c5efb63eb0a714942677eb03f91ae0bbd10731eace5471ea12ae9d3296b6b05";
-      name = "keditbookmarks-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/keditbookmarks-20.08.1.tar.xz";
+      sha256 = "8bfedffae0332dbfb611d25f3178ab7babe374155cce7c44e1aaa841934c3123";
+      name = "keditbookmarks-20.08.1.tar.xz";
     };
   };
   kfind = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kfind-19.12.3.tar.xz";
-      sha256 = "b3738d6e3f26fffbfcc204d946e165ae0727d9f460cb2065ceb221b4872019b1";
-      name = "kfind-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kfind-20.08.1.tar.xz";
+      sha256 = "e49412d0eae6f77369b96ee7fa5902252294d03da1e8782460d4bba5be6bb149";
+      name = "kfind-20.08.1.tar.xz";
     };
   };
   kfloppy = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kfloppy-19.12.3.tar.xz";
-      sha256 = "7f384f9197d5066a5db978a9551665ae9a90b1f3afd1937f800ab61e376d3723";
-      name = "kfloppy-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kfloppy-20.08.1.tar.xz";
+      sha256 = "cfbe396c252acc23a929d05fe1a71099bc19ee3ab55f4f40e47780cf871852c5";
+      name = "kfloppy-20.08.1.tar.xz";
     };
   };
   kfourinline = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kfourinline-19.12.3.tar.xz";
-      sha256 = "1d2f4fdbf427e2ce86a0519ee61a70df0675f039cebd658cd75bd27af4fe69f6";
-      name = "kfourinline-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kfourinline-20.08.1.tar.xz";
+      sha256 = "2c65dcc685d7e46da73e53ac3ab250ef4d1738bb85aa6f1b09160ff2ece364a2";
+      name = "kfourinline-20.08.1.tar.xz";
     };
   };
   kgeography = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kgeography-19.12.3.tar.xz";
-      sha256 = "3947ca1f50910d77f85c630b49128a085fed4230c7919e09281bc1765529a533";
-      name = "kgeography-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kgeography-20.08.1.tar.xz";
+      sha256 = "f7ce4c6a00f18558aa04f4af0b71e45efc10c67f0b3454c5f0b2527a43133d30";
+      name = "kgeography-20.08.1.tar.xz";
     };
   };
   kget = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kget-19.12.3.tar.xz";
-      sha256 = "a4b1d8fb94617c80a557c27ae58a14131bda4476340c136262e5bf8f51d918d9";
-      name = "kget-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kget-20.08.1.tar.xz";
+      sha256 = "efbfc08a5a4ed3974bbdab20c5eae07cdb70f7f42e9de1c75651a57511d7e576";
+      name = "kget-20.08.1.tar.xz";
     };
   };
   kgoldrunner = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kgoldrunner-19.12.3.tar.xz";
-      sha256 = "5808d797fb9df178526b3ea462bc902ca36b5926ef7c51233816ba3da6bc0bdd";
-      name = "kgoldrunner-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kgoldrunner-20.08.1.tar.xz";
+      sha256 = "40380c0d3b65e06cdb9d9ca3791c10e0d2d300856cc49a7b3da0145b7651274b";
+      name = "kgoldrunner-20.08.1.tar.xz";
     };
   };
   kgpg = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kgpg-19.12.3.tar.xz";
-      sha256 = "53e5726a1ccf34a70090ac0bbf2effb6f1f9f9b3d0164a5beead982a24c97e38";
-      name = "kgpg-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kgpg-20.08.1.tar.xz";
+      sha256 = "6b926c2adf896c3f68402ec10faf8db1e5f7c7b9fa8c1c26f9021d1fb0c975b0";
+      name = "kgpg-20.08.1.tar.xz";
     };
   };
   khangman = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/khangman-19.12.3.tar.xz";
-      sha256 = "55286b318ec2c2d8b7e63f4063fc0e39a8ff81c0a9d3f06c9879f141c94762a8";
-      name = "khangman-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/khangman-20.08.1.tar.xz";
+      sha256 = "fe94116ea833295a46c59a7420676925bb1038e7da86f6369d452087add40868";
+      name = "khangman-20.08.1.tar.xz";
     };
   };
   khelpcenter = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/khelpcenter-19.12.3.tar.xz";
-      sha256 = "526c89e46cace9e8afb4e748f9bbf0d105472a4cc4a6d8bb821e8b9b88ab0f73";
-      name = "khelpcenter-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/khelpcenter-20.08.1.tar.xz";
+      sha256 = "217b433c1a5da966ad5dab1e89e2e719632f1e035ab92cce094c5f0848bb6e39";
+      name = "khelpcenter-20.08.1.tar.xz";
     };
   };
   kidentitymanagement = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kidentitymanagement-19.12.3.tar.xz";
-      sha256 = "254bfc3a60df7bc1960fa1e6d5b7733f6aa5ed7772c1097d9a8cfcdda2704516";
-      name = "kidentitymanagement-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kidentitymanagement-20.08.1.tar.xz";
+      sha256 = "3b34e029e99647d6742825633682ab8a5eecbe102e34ea2472cb53afb853840d";
+      name = "kidentitymanagement-20.08.1.tar.xz";
     };
   };
   kig = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kig-19.12.3.tar.xz";
-      sha256 = "1ae2c3024cdd14e476ff15b730f4ebe9b279477b67cc4cc89606755c7d3beef3";
-      name = "kig-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kig-20.08.1.tar.xz";
+      sha256 = "f318d346cd152e62ae892ade31a784f0b7b823c56fdfd64e05a330072ad95745";
+      name = "kig-20.08.1.tar.xz";
     };
   };
   kigo = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kigo-19.12.3.tar.xz";
-      sha256 = "ee18b8563c49e3e01924ea76cd8c6ec376482c2100e0fac7cdfd14b5899592d5";
-      name = "kigo-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kigo-20.08.1.tar.xz";
+      sha256 = "58fa166a487c855d300c8a33758928131fc4db80cbda19a08e3de918335d2bdb";
+      name = "kigo-20.08.1.tar.xz";
     };
   };
   killbots = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/killbots-19.12.3.tar.xz";
-      sha256 = "3c5dc7e1f27036d2584f6ee58bf3bbffd9e56a467f30a8e2eab9e1bda1e7d4a3";
-      name = "killbots-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/killbots-20.08.1.tar.xz";
+      sha256 = "252636f4df2af0e087f4d604f76c5d8702c38392d821281a0f6283be4e429af9";
+      name = "killbots-20.08.1.tar.xz";
     };
   };
   kimagemapeditor = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kimagemapeditor-19.12.3.tar.xz";
-      sha256 = "1aee6521974bde5151744d92823f6b405ee4a8bd2dfe3c538324a209e18c6b35";
-      name = "kimagemapeditor-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kimagemapeditor-20.08.1.tar.xz";
+      sha256 = "bf391d0812e0f2dce6a11481972cf9d04f14d0bf92cad7210fa35a1fa0edf230";
+      name = "kimagemapeditor-20.08.1.tar.xz";
     };
   };
   kimap = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kimap-19.12.3.tar.xz";
-      sha256 = "5c3b3cdf928754f9919030d865a2cdad0ad342c82c436afef660d018f85de4d2";
-      name = "kimap-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kimap-20.08.1.tar.xz";
+      sha256 = "eae645ae2535c2612556e8938011cc478054c032126bb55683b95127d1b94741";
+      name = "kimap-20.08.1.tar.xz";
     };
   };
   kio-extras = {
-    version = "19.12.3";
+    version = "20.08.1";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/20.08.1/src/kio-extras-20.08.1.tar.xz";
+      sha256 = "1122635926052f34fd35d8aeef9c3c1d892690d8372f2b7d902e6449cdab988a";
+      name = "kio-extras-20.08.1.tar.xz";
+    };
+  };
+  kio-gdrive = {
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kio-extras-19.12.3.tar.xz";
-      sha256 = "413cb21479fedf1421a6e2585b4df813c3a3fadaa77c248a9f810021f58cea4b";
-      name = "kio-extras-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kio-gdrive-20.08.1.tar.xz";
+      sha256 = "5104136948ee60cd527109bb9e8830e6a12f6062a29f34bc995b2625b0280825";
+      name = "kio-gdrive-20.08.1.tar.xz";
     };
   };
   kipi-plugins = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kipi-plugins-19.12.3.tar.xz";
-      sha256 = "16997bd6fbb59c194c2997732c870e33bbacd3d7346546af9a255db3330ec5ac";
-      name = "kipi-plugins-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kipi-plugins-20.08.1.tar.xz";
+      sha256 = "b7d8f1aa087006a48d9bd7ec036ab4779e898e3b02692c91342439747cad6c5c";
+      name = "kipi-plugins-20.08.1.tar.xz";
     };
   };
   kirigami-gallery = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kirigami-gallery-19.12.3.tar.xz";
-      sha256 = "17febaeb77e0dfc6f591dd285fd7f538466572f2f2e3253461c41f92d6cb05fe";
-      name = "kirigami-gallery-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kirigami-gallery-20.08.1.tar.xz";
+      sha256 = "497886cc5a8483f068a642ce19df19f69fd105a4fb583f1a9898c885659c9df5";
+      name = "kirigami-gallery-20.08.1.tar.xz";
     };
   };
   kiriki = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kiriki-19.12.3.tar.xz";
-      sha256 = "abbaa49f9b47286f9afbe7c968eb6fbfeecb4be84ed4b2ce7514a3ed1e92b2d5";
-      name = "kiriki-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kiriki-20.08.1.tar.xz";
+      sha256 = "51e77cbbf6a0c60487d72b03b28c08409d0b6134c983d9e420fbc4d7f73223e8";
+      name = "kiriki-20.08.1.tar.xz";
     };
   };
   kiten = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kiten-19.12.3.tar.xz";
-      sha256 = "663739a8b252cb95a38294c6f7d675c833daaa81f2654f5cabd8e512fd353560";
-      name = "kiten-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kiten-20.08.1.tar.xz";
+      sha256 = "f3764d090db8027746e83c326e833680fd669dca66dd6af095ba120e66de2901";
+      name = "kiten-20.08.1.tar.xz";
     };
   };
   kitinerary = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kitinerary-19.12.3.tar.xz";
-      sha256 = "4188efe8672091cbdaa4f757f5d8b94a30b1373dceafc076b01330602d5086e2";
-      name = "kitinerary-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kitinerary-20.08.1.tar.xz";
+      sha256 = "d3e0b6130b5c603bc1494404fa91ed1995e9142d66e4c3ddd5d2c79fdea856e4";
+      name = "kitinerary-20.08.1.tar.xz";
     };
   };
   kjumpingcube = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kjumpingcube-19.12.3.tar.xz";
-      sha256 = "b969111cb884efc9ad8ef585066ca33d7168bb045c93a3f18668173a11d29ea2";
-      name = "kjumpingcube-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kjumpingcube-20.08.1.tar.xz";
+      sha256 = "226424cd21f75c499eedd15460a466988b179312467ed16437df87be494d9fbc";
+      name = "kjumpingcube-20.08.1.tar.xz";
     };
   };
   kldap = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kldap-19.12.3.tar.xz";
-      sha256 = "49f1ad32ae10b7f997c77f3a8db0776b972b93f9e18873b77baabf0db05cd5d4";
-      name = "kldap-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kldap-20.08.1.tar.xz";
+      sha256 = "098fb07b280ef25dcf04b18f627223014257f6c0874b2959f2a8e68cacdb74a7";
+      name = "kldap-20.08.1.tar.xz";
     };
   };
   kleopatra = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kleopatra-19.12.3.tar.xz";
-      sha256 = "04edf29e42088b2bccdfe36b9b7170c38acd7816657673da5393244b73773098";
-      name = "kleopatra-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kleopatra-20.08.1.tar.xz";
+      sha256 = "e7bc3ce03ad5431e4289360ba6b701e38d53b60de58fd1ed358480cec48657a6";
+      name = "kleopatra-20.08.1.tar.xz";
     };
   };
   klettres = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/klettres-19.12.3.tar.xz";
-      sha256 = "f2a1bbb002954a80045780de24f494154214b8add53a5c01a8783cbeb26d26c7";
-      name = "klettres-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/klettres-20.08.1.tar.xz";
+      sha256 = "f29d6df1de3562731f246a892caaa493b9bccc9d1317a948e03ad12cb8c80c06";
+      name = "klettres-20.08.1.tar.xz";
     };
   };
   klickety = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/klickety-19.12.3.tar.xz";
-      sha256 = "351e421ecca5fc80955ed614453c81d8b790200185db16f56be1e0ca9325ad39";
-      name = "klickety-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/klickety-20.08.1.tar.xz";
+      sha256 = "a9b63b3e944faba25498e981c06981dc354f9acd34b77f46fe2bebef388bf2cb";
+      name = "klickety-20.08.1.tar.xz";
     };
   };
   klines = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/klines-19.12.3.tar.xz";
-      sha256 = "8d11894d0a02de20090e52ef697a5a3c00e902213c018a82c94ca0985e92350a";
-      name = "klines-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/klines-20.08.1.tar.xz";
+      sha256 = "d16650d7d44f48f47700dcb8fe97519dd28fe7213052636363d281c24f46a2b9";
+      name = "klines-20.08.1.tar.xz";
     };
   };
   kmag = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmag-19.12.3.tar.xz";
-      sha256 = "d1e8bbc8006cd2cfcb345e30aac73350562bff98b69b0333ad49726cdce81e7e";
-      name = "kmag-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmag-20.08.1.tar.xz";
+      sha256 = "0aaaf19af2c943ae460dbcc1984bae167b79be287802e8a6faa6aaaed11718f3";
+      name = "kmag-20.08.1.tar.xz";
     };
   };
   kmahjongg = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmahjongg-19.12.3.tar.xz";
-      sha256 = "41a07f74cc4e3bf05f6a57a380d4e093b0303528cb703369981b262a0b1787c8";
-      name = "kmahjongg-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmahjongg-20.08.1.tar.xz";
+      sha256 = "842b3d2e9c60b6a8e6bb6d09f26db49d988889ec3962ac40aea0e79434c2eb43";
+      name = "kmahjongg-20.08.1.tar.xz";
     };
   };
   kmail = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmail-19.12.3.tar.xz";
-      sha256 = "7f70e5270960e474b15631a36110e13fdf7238d6fd9f1b3fdb6d8c145b6529ba";
-      name = "kmail-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmail-20.08.1.tar.xz";
+      sha256 = "7ba5854e36e2ed752baa3a1ac15d1a6227699da6f5bdca3c250f22226b4d902b";
+      name = "kmail-20.08.1.tar.xz";
     };
   };
   kmail-account-wizard = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmail-account-wizard-19.12.3.tar.xz";
-      sha256 = "4199e8c73456bf31b829596919ca481c3a95e59dee7c9bfb2e680311d0354ff0";
-      name = "kmail-account-wizard-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmail-account-wizard-20.08.1.tar.xz";
+      sha256 = "7a1dc9ad542c0e54b80e955a162888c7d4b6bababcf02681d54af4480c03bd8d";
+      name = "kmail-account-wizard-20.08.1.tar.xz";
     };
   };
   kmailtransport = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmailtransport-19.12.3.tar.xz";
-      sha256 = "077b3dba7c02dde9693c003ab7039f3b2a530e3b1aecfcf187313db5226e8953";
-      name = "kmailtransport-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmailtransport-20.08.1.tar.xz";
+      sha256 = "4cabad74e141891546b0f47f44030eeb59fb63257a5c0d1c12124815ebf710c1";
+      name = "kmailtransport-20.08.1.tar.xz";
     };
   };
   kmbox = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmbox-19.12.3.tar.xz";
-      sha256 = "de69683abb42c5c24ccb4f034e067f50c94d5a10c53f359b0e6ad4b75a70b376";
-      name = "kmbox-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmbox-20.08.1.tar.xz";
+      sha256 = "df77b2bf448d1ce21ff4a816f1164297519b48cd60200cea0edae6e72a81a19b";
+      name = "kmbox-20.08.1.tar.xz";
     };
   };
   kmime = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmime-19.12.3.tar.xz";
-      sha256 = "5ed20ad77000c60ba5723aaa22149fca3a3956f930d63e70984f0a17b9339300";
-      name = "kmime-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmime-20.08.1.tar.xz";
+      sha256 = "cd0beaa46040d571b505d07853be76f099289e22d99ce4884695d4d645dfbe8c";
+      name = "kmime-20.08.1.tar.xz";
     };
   };
   kmines = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmines-19.12.3.tar.xz";
-      sha256 = "05d8004f2e560bf2c9e32a3ca1988b3848b99bfb9cc96307c1ac2b703c202dad";
-      name = "kmines-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmines-20.08.1.tar.xz";
+      sha256 = "eeb58941c94330f3ffdca60c0ca84d8ebcc9c6c355737217b521c54e50c650cd";
+      name = "kmines-20.08.1.tar.xz";
     };
   };
   kmix = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmix-19.12.3.tar.xz";
-      sha256 = "a4c637383e988ffa21b9c48c72ef6d8855fe207c852d0679011337a331ccfc5c";
-      name = "kmix-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmix-20.08.1.tar.xz";
+      sha256 = "012d14adbb200a7e66ddbc9ebc8e18c4e5082ae24dea6ab22284b6c730a1b472";
+      name = "kmix-20.08.1.tar.xz";
     };
   };
   kmousetool = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmousetool-19.12.3.tar.xz";
-      sha256 = "3741aff20c778bb704c76df7ff005da36ef6c41b07fca35f257ba440741b8413";
-      name = "kmousetool-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmousetool-20.08.1.tar.xz";
+      sha256 = "c1d769efdd318eb1e29905122c579c72a41da74b45a076b79cf177b1800e1464";
+      name = "kmousetool-20.08.1.tar.xz";
     };
   };
   kmouth = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmouth-19.12.3.tar.xz";
-      sha256 = "424dd4cf81cd43e47630ada0f2a9e47be8106b31ebf2e5c8c1077e55e3a8113f";
-      name = "kmouth-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmouth-20.08.1.tar.xz";
+      sha256 = "d87fb47fa00c54f13cdaef33d15cc74f31d7009d4a8d988902b62c698d1e2c2c";
+      name = "kmouth-20.08.1.tar.xz";
     };
   };
   kmplot = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kmplot-19.12.3.tar.xz";
-      sha256 = "2743e3a472ccf40281f5afd9c6110dde6fb9bc437e8e291beba484d405d8152e";
-      name = "kmplot-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kmplot-20.08.1.tar.xz";
+      sha256 = "6d294a89f9e0fc42262ada6d71ba5abaeb756beb194e71f1852e18ae2b85456e";
+      name = "kmplot-20.08.1.tar.xz";
     };
   };
   knavalbattle = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/knavalbattle-19.12.3.tar.xz";
-      sha256 = "59875e10b0f2b06c2d3165f2f2457113f04550215947c8296ce1dcaf385ee37f";
-      name = "knavalbattle-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/knavalbattle-20.08.1.tar.xz";
+      sha256 = "e0cbffc5643aac302c53cfd957eefa7f89486fdd0d9c55b74f39d733a0ac3b65";
+      name = "knavalbattle-20.08.1.tar.xz";
     };
   };
   knetwalk = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/knetwalk-19.12.3.tar.xz";
-      sha256 = "24cb7cfa4143b2ab1bcaf38a6698cd01252201238c6561bc711e0673366642ae";
-      name = "knetwalk-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/knetwalk-20.08.1.tar.xz";
+      sha256 = "30cbf7bdf5f875ce172a382ef7da8e74803015017c6cd525cb6c288defac020d";
+      name = "knetwalk-20.08.1.tar.xz";
     };
   };
   knights = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/knights-19.12.3.tar.xz";
-      sha256 = "4796654dcaff355b4f1097260748cfe04812ff926acc7ca0f037711875dd1512";
-      name = "knights-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/knights-20.08.1.tar.xz";
+      sha256 = "58518d8ecce5744fdf68c18e0803f48cb912fa29c5ea93ed6ccd2d4d320f722d";
+      name = "knights-20.08.1.tar.xz";
     };
   };
   knotes = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/knotes-19.12.3.tar.xz";
-      sha256 = "b27846609dfac1ffcb3ac5e7165b7557231b096f6a84206da956c37233aed7b0";
-      name = "knotes-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/knotes-20.08.1.tar.xz";
+      sha256 = "7d066a34d46684f258481466875d18f99a9000d66dec36f7dcab92790f6c57bb";
+      name = "knotes-20.08.1.tar.xz";
     };
   };
   kolf = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kolf-19.12.3.tar.xz";
-      sha256 = "2ba1f781d7d98ca0b10231e4f963b27d043c726f44da662b6c77105da4f9cffc";
-      name = "kolf-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kolf-20.08.1.tar.xz";
+      sha256 = "04d117895a6504d6138d1e3cd3157dd3318ba93eefd749182556344650f6a2f8";
+      name = "kolf-20.08.1.tar.xz";
     };
   };
   kollision = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kollision-19.12.3.tar.xz";
-      sha256 = "ce0bb077e8db8a959f965d463bb25bac02c91585b422af6c9249ad8a8f25eaab";
-      name = "kollision-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kollision-20.08.1.tar.xz";
+      sha256 = "858d69131951734181b449ce48498b3b843634eb8c069c932042b3c0f862f98c";
+      name = "kollision-20.08.1.tar.xz";
     };
   };
   kolourpaint = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kolourpaint-19.12.3.tar.xz";
-      sha256 = "7c134da2feb75a87bfda6b4265ef705868a9be03d70a828111a2869ca0b517b1";
-      name = "kolourpaint-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kolourpaint-20.08.1.tar.xz";
+      sha256 = "7de98e081f13fb9f8a73932d5e8ce6f1cfd73e345fa28d03f515cad69f1b8bae";
+      name = "kolourpaint-20.08.1.tar.xz";
     };
   };
   kompare = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kompare-19.12.3.tar.xz";
-      sha256 = "b89b266b6f648500627d2e70df29b73248c7b7d7d5e7c1bbcaddaedf072f6f1a";
-      name = "kompare-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kompare-20.08.1.tar.xz";
+      sha256 = "6e9109f1b24b3d79dec3d70c75357a67d16ab35081bcf7e4b842981b84796aa2";
+      name = "kompare-20.08.1.tar.xz";
     };
   };
   konqueror = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/konqueror-19.12.3.tar.xz";
-      sha256 = "0f2b31a1dae1740839232bd646bf22d7cb57e34995584b9a96271ebcb0da7f0e";
-      name = "konqueror-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/konqueror-20.08.1.tar.xz";
+      sha256 = "e3aac062d9e431e63a861ecf5a1d577b11a154faaed5bd95ef6b69b4fc8a34e9";
+      name = "konqueror-20.08.1.tar.xz";
     };
   };
   konquest = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/konquest-19.12.3.tar.xz";
-      sha256 = "e23732a7d78382c73fca0d31afb3ed85614ee4b4bfe2f07647a13582fa0811a5";
-      name = "konquest-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/konquest-20.08.1.tar.xz";
+      sha256 = "cad87dd698bd1ebc0279216614f7fa7c3d3f36d545683a69f1ceafe9e279bbfe";
+      name = "konquest-20.08.1.tar.xz";
     };
   };
   konsole = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/konsole-19.12.3.tar.xz";
-      sha256 = "0bde8eb6365c53e96489d0ceb05baa0bb0385ee865492622033164a4c4bfccdc";
-      name = "konsole-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/konsole-20.08.1.tar.xz";
+      sha256 = "bdd82f9104b2f76c53bdbdef613391719b70719a132d24f12e5f620e1c9313d1";
+      name = "konsole-20.08.1.tar.xz";
     };
   };
   kontact = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kontact-19.12.3.tar.xz";
-      sha256 = "8dbd01f73c181f7b44df5dfffac1cf33c36b36149294fd854403bada9ef33052";
-      name = "kontact-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kontact-20.08.1.tar.xz";
+      sha256 = "36c33eb5685c22f94257e86ff760d1aa225ae6e2d69402a2b653c54627c7cbde";
+      name = "kontact-20.08.1.tar.xz";
     };
   };
   kontactinterface = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kontactinterface-19.12.3.tar.xz";
-      sha256 = "1a0392cbeb6833f4834c86f202ff06e5b6069d12100bffe37de6427f0531af89";
-      name = "kontactinterface-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kontactinterface-20.08.1.tar.xz";
+      sha256 = "8272d0c17423a15e56e9e6d3979ee3017fd02ed996b8b6902c47312276ffeb51";
+      name = "kontactinterface-20.08.1.tar.xz";
     };
   };
   kopete = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kopete-19.12.3.tar.xz";
-      sha256 = "8d58fb0c9dd8b651bfc996e6928f7ccdad8e21cba39ffd0e54d46f7145fa7b27";
-      name = "kopete-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kopete-20.08.1.tar.xz";
+      sha256 = "9846baae28d723963927d231716e2a8bc19795bac920958b688b48394ef5bc05";
+      name = "kopete-20.08.1.tar.xz";
     };
   };
   korganizer = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/korganizer-19.12.3.tar.xz";
-      sha256 = "ea0a970aa510d5cdbbf80e974049fa3e7591e02c9ec2c4206137c49266df1acb";
-      name = "korganizer-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/korganizer-20.08.1.tar.xz";
+      sha256 = "e693d895b36575f2a73c36ceaafadf81465bbf9b03c74da27f5273a2e7e3670e";
+      name = "korganizer-20.08.1.tar.xz";
     };
   };
   kpat = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kpat-19.12.3.tar.xz";
-      sha256 = "00b823b1b204b68e0c8671e5ddfe5f96abe8c9fcfb1efa9b7f70191cfa5384e1";
-      name = "kpat-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kpat-20.08.1.tar.xz";
+      sha256 = "2c23ee028c03c5c210b110a2ad253aa7d91c5a0abcb101eb2b3f4c640092463c";
+      name = "kpat-20.08.1.tar.xz";
     };
   };
   kpimtextedit = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kpimtextedit-19.12.3.tar.xz";
-      sha256 = "64be03d7a8d4b9ece40c0065a23113023c2b3320dc57068fe00f6c4bc72537d5";
-      name = "kpimtextedit-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kpimtextedit-20.08.1.tar.xz";
+      sha256 = "2664e6cbe520fa345e18db071dd5b8a5b4cf9b0fc7317eb04849005228666189";
+      name = "kpimtextedit-20.08.1.tar.xz";
     };
   };
   kpkpass = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kpkpass-19.12.3.tar.xz";
-      sha256 = "45723989170e86c6739c8a377c54b3ba7456a8dc3ed6cf52eef884074c2df189";
-      name = "kpkpass-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kpkpass-20.08.1.tar.xz";
+      sha256 = "76012e5bdd4cc434313a0f311acec8f7c798542008cd8efa71fcdf04fb77e55b";
+      name = "kpkpass-20.08.1.tar.xz";
     };
   };
   kqtquickcharts = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kqtquickcharts-19.12.3.tar.xz";
-      sha256 = "94669a7add0cef9a1c0969a92ece8e60a67fbb0ff32826cc49ce87bd890c976c";
-      name = "kqtquickcharts-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kqtquickcharts-20.08.1.tar.xz";
+      sha256 = "ea931bfefcc04bee03bff2498b92ca1a390967bbc5366c739d1a7cde6bb75820";
+      name = "kqtquickcharts-20.08.1.tar.xz";
     };
   };
   krdc = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/krdc-19.12.3.tar.xz";
-      sha256 = "12602912abbc22e061067b6b5048d37a7cbdaaf99d203829d3f52fdf7319acce";
-      name = "krdc-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/krdc-20.08.1.tar.xz";
+      sha256 = "7b1fa57be31a3534099e7f203ef9afde23c86c4bbed1072a9d1164a3cf5e1e20";
+      name = "krdc-20.08.1.tar.xz";
     };
   };
   kreversi = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kreversi-19.12.3.tar.xz";
-      sha256 = "6bfe3a2faa7c0d08fb689b75341bfd5881d66bc865445573b2f4dbb316a751e8";
-      name = "kreversi-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kreversi-20.08.1.tar.xz";
+      sha256 = "5da68ddd37f5dbd4e1c94d1641c69f0e9b4e99eff3cdafcdcbac1139ca517315";
+      name = "kreversi-20.08.1.tar.xz";
     };
   };
   krfb = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/krfb-19.12.3.tar.xz";
-      sha256 = "cb88997dc7b15b992d1de5c5cabaeccb37122e20823501ac29140875259782ee";
-      name = "krfb-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/krfb-20.08.1.tar.xz";
+      sha256 = "a80b9bab47f2a7299e33b0e2a10b117605ec1cc572ca72e914c7f01dde383eda";
+      name = "krfb-20.08.1.tar.xz";
     };
   };
   kross-interpreters = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kross-interpreters-19.12.3.tar.xz";
-      sha256 = "2b4060494901a68ca1d07e0c345cc0814e11fb84e9f48014a7231021e4377487";
-      name = "kross-interpreters-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kross-interpreters-20.08.1.tar.xz";
+      sha256 = "1fb7d75d83e63d1a7147468dd25eeb6aeb06b4679f126c658a8b40ef257f9a4e";
+      name = "kross-interpreters-20.08.1.tar.xz";
     };
   };
   kruler = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kruler-19.12.3.tar.xz";
-      sha256 = "803a0d31bbb5bfbfa057b13a7f6bbf7630dcc1816a0d41ea13cc4592bdacaa47";
-      name = "kruler-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kruler-20.08.1.tar.xz";
+      sha256 = "a9a1f3bd7b02416a393826f7bb810211ef2e14a3628706de735cb88e791d72d1";
+      name = "kruler-20.08.1.tar.xz";
     };
   };
   kshisen = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kshisen-19.12.3.tar.xz";
-      sha256 = "f6ce353725d71ce65269b1b7b3d118cb8555cd065db0d3b17fe4696d87c10601";
-      name = "kshisen-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kshisen-20.08.1.tar.xz";
+      sha256 = "d53af415ed2f4d202f5a6f965408e39062e39f43acf83b9550b6cf2ecc1f7641";
+      name = "kshisen-20.08.1.tar.xz";
     };
   };
   ksirk = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ksirk-19.12.3.tar.xz";
-      sha256 = "6387d7a6320e644157f10b94474ca715e7ad7fd15cdf7156a8e7d94bff019dcb";
-      name = "ksirk-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ksirk-20.08.1.tar.xz";
+      sha256 = "763d3a8f518365391d2a04943f6efa9c73c388b7701deff300e9e42e4efe848f";
+      name = "ksirk-20.08.1.tar.xz";
     };
   };
   ksmtp = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ksmtp-19.12.3.tar.xz";
-      sha256 = "1fd69f494afee91c11667ddbba43bc6cc316b51acf5894fe4c3a2631f53fae27";
-      name = "ksmtp-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ksmtp-20.08.1.tar.xz";
+      sha256 = "608d395cd1a046810ebd00f990d6f7c63d66677e7293ef06948ab9d336d2f08f";
+      name = "ksmtp-20.08.1.tar.xz";
     };
   };
   ksnakeduel = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ksnakeduel-19.12.3.tar.xz";
-      sha256 = "8db1dece78571f3e6933f8edcd693c3ceb1035acff780547a72c98b9f7decb87";
-      name = "ksnakeduel-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ksnakeduel-20.08.1.tar.xz";
+      sha256 = "25bb5cfe2ed480b8ee31d9fe2e62272d77e7b8667748eb4f2c855901f718784f";
+      name = "ksnakeduel-20.08.1.tar.xz";
     };
   };
   kspaceduel = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kspaceduel-19.12.3.tar.xz";
-      sha256 = "a9b5dc498b3695b59ae8925cc572cfc521ccadc8532756fa95ac876a7423c444";
-      name = "kspaceduel-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kspaceduel-20.08.1.tar.xz";
+      sha256 = "382def18d1ce6a4333fb47bcd87aed6837382a2b0da2cb8b835d0b34eaed9e38";
+      name = "kspaceduel-20.08.1.tar.xz";
     };
   };
   ksquares = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ksquares-19.12.3.tar.xz";
-      sha256 = "45a922e4d85835cc655de560b6fd9be87d8cabc74eadbdecda3f17ba53ac92af";
-      name = "ksquares-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ksquares-20.08.1.tar.xz";
+      sha256 = "163c5c070643e31594ada4e812433eb5f615ef425dddafd515e6c445d821f319";
+      name = "ksquares-20.08.1.tar.xz";
     };
   };
   ksudoku = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ksudoku-19.12.3.tar.xz";
-      sha256 = "1cf36e762f31464b0640a88c739dfbb39b10129cace7fb5b74093ec607dea06c";
-      name = "ksudoku-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ksudoku-20.08.1.tar.xz";
+      sha256 = "e53b694b340f812cd3bdf5126a32a1e71efe0785897c5d15f9e28c68fd794840";
+      name = "ksudoku-20.08.1.tar.xz";
     };
   };
   ksystemlog = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ksystemlog-19.12.3.tar.xz";
-      sha256 = "8225b1308ace76ebbf9bb805a2b6fae9bf8a425d0b09518645234c1b2df522dc";
-      name = "ksystemlog-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ksystemlog-20.08.1.tar.xz";
+      sha256 = "e0e8bc1cf8ee229206c8a65e30979ba8b72426c8dc2f737f6fecb0dfb36ed21a";
+      name = "ksystemlog-20.08.1.tar.xz";
     };
   };
   kteatime = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kteatime-19.12.3.tar.xz";
-      sha256 = "0ab5fb6e33583e6d627b8f9dfaba5ce59e2b363e8045dfc66a4f65236d56542f";
-      name = "kteatime-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kteatime-20.08.1.tar.xz";
+      sha256 = "23cc14f587e4ae4e3b56f1fb7a2093301df740328e35b25d7fca55d35f012ce5";
+      name = "kteatime-20.08.1.tar.xz";
     };
   };
   ktimer = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktimer-19.12.3.tar.xz";
-      sha256 = "921af876a176a4731a74b5e9e76d751853043ec4f4857301b39a5c680246557c";
-      name = "ktimer-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktimer-20.08.1.tar.xz";
+      sha256 = "9c7062f9ee64ff49a7c7773fe41cee0899e30f1f47368af73da067e51db6714b";
+      name = "ktimer-20.08.1.tar.xz";
     };
   };
   ktnef = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktnef-19.12.3.tar.xz";
-      sha256 = "3537515b432e5da00d401046e94e0098fa54c071246cb0e357e3d8f47296ed3c";
-      name = "ktnef-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktnef-20.08.1.tar.xz";
+      sha256 = "433b232a0c835e7f27c06e6d19856e4f8690c3e3b5c5d63f85172897b2448c81";
+      name = "ktnef-20.08.1.tar.xz";
     };
   };
   ktouch = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktouch-19.12.3.tar.xz";
-      sha256 = "522fb081da5877717d577493fdaeeecbfe3d8d773e5d7fc83ecced008744ef0e";
-      name = "ktouch-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktouch-20.08.1.tar.xz";
+      sha256 = "e098ebbccca743f678103a9adf54fc388fa4379cc6f667e48259d0b50f56b5fb";
+      name = "ktouch-20.08.1.tar.xz";
     };
   };
   ktp-accounts-kcm = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-accounts-kcm-19.12.3.tar.xz";
-      sha256 = "ae5ae5004ecbf34596711a56e069d480c952de5ea784f5e90c391750439aff51";
-      name = "ktp-accounts-kcm-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-accounts-kcm-20.08.1.tar.xz";
+      sha256 = "b71f2f654c3cf48e4b4b037a0ae8f6fef5bac9c3483458c0eadf7b3253577504";
+      name = "ktp-accounts-kcm-20.08.1.tar.xz";
     };
   };
   ktp-approver = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-approver-19.12.3.tar.xz";
-      sha256 = "af4f6d247b6332745f6b6dfacef74eb2ea0f7bbea9398080fc7b57e5953fdfbd";
-      name = "ktp-approver-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-approver-20.08.1.tar.xz";
+      sha256 = "51296f4d84585ba63d4c72cdbdee6e2b436a1aff8ce6b475a8c9a81766856b39";
+      name = "ktp-approver-20.08.1.tar.xz";
     };
   };
   ktp-auth-handler = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-auth-handler-19.12.3.tar.xz";
-      sha256 = "40822e78879d97c3cc1d16f44f7d3b581980c4e249a273d7471b291adf3b9225";
-      name = "ktp-auth-handler-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-auth-handler-20.08.1.tar.xz";
+      sha256 = "6c1c006a3381caeebdfc37886b91b598153f3778567303d8a031e84599c9d582";
+      name = "ktp-auth-handler-20.08.1.tar.xz";
     };
   };
   ktp-call-ui = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-call-ui-19.12.3.tar.xz";
-      sha256 = "96b1dd64b0f87228d76f12b6cad3677afeb4c44d6f18645c3001555506573fb1";
-      name = "ktp-call-ui-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-call-ui-20.08.1.tar.xz";
+      sha256 = "feb783be10b0792cb0c59456a00607b2d595e8bef90f0b4ec79dd070596d413c";
+      name = "ktp-call-ui-20.08.1.tar.xz";
     };
   };
   ktp-common-internals = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-common-internals-19.12.3.tar.xz";
-      sha256 = "48cde7fc4f2f0d39999f70699867044e0f85e06769a0824aac49c572fb1af5a4";
-      name = "ktp-common-internals-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-common-internals-20.08.1.tar.xz";
+      sha256 = "5750bde4950fbe26f06a306aa642c9c501d4f0e1b41b57234d9e36b189a91d1b";
+      name = "ktp-common-internals-20.08.1.tar.xz";
     };
   };
   ktp-contact-list = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-contact-list-19.12.3.tar.xz";
-      sha256 = "093544e84ca12169966837be5f01d339ddc59e5f031d78e68ddf7be4dd890efd";
-      name = "ktp-contact-list-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-contact-list-20.08.1.tar.xz";
+      sha256 = "809db5ff05c1ec632109be408cef987532193b1b0bea69d6a9286c12ccfe19a1";
+      name = "ktp-contact-list-20.08.1.tar.xz";
     };
   };
   ktp-contact-runner = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-contact-runner-19.12.3.tar.xz";
-      sha256 = "50646e8670449d6f6a9b107e36f18174b5ec37052a7b4f471617f4f53fecc96b";
-      name = "ktp-contact-runner-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-contact-runner-20.08.1.tar.xz";
+      sha256 = "a9e761fd35545cfffade088e33f4358e2743416f61e9ba490f21f3b04193158f";
+      name = "ktp-contact-runner-20.08.1.tar.xz";
     };
   };
   ktp-desktop-applets = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-desktop-applets-19.12.3.tar.xz";
-      sha256 = "4ab8f04537345db8e41ed9f8ff7a6a2f3135e3539382cef97d1a7e9f0eddb54e";
-      name = "ktp-desktop-applets-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-desktop-applets-20.08.1.tar.xz";
+      sha256 = "d6ffd4b29c4fb977937cb47d55d023012be1a9b3602dd1f1628eba7d8c9167cd";
+      name = "ktp-desktop-applets-20.08.1.tar.xz";
     };
   };
   ktp-filetransfer-handler = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-filetransfer-handler-19.12.3.tar.xz";
-      sha256 = "b2e81fec33b51628d9d88707b6bd844c69eb2c9bfb00cb0b45759a4fd9769b03";
-      name = "ktp-filetransfer-handler-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-filetransfer-handler-20.08.1.tar.xz";
+      sha256 = "35495c1d18a7b65496fcf17cade4a81e4795b1603c380c036dda0a7626f66312";
+      name = "ktp-filetransfer-handler-20.08.1.tar.xz";
     };
   };
   ktp-kded-module = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-kded-module-19.12.3.tar.xz";
-      sha256 = "6bb0c05683812738e254c88d39936565966096a7156111565d8a64a59c55ef0d";
-      name = "ktp-kded-module-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-kded-module-20.08.1.tar.xz";
+      sha256 = "247e4047e3955e21066ec461a5374d1b3d925bb92b42adc46d3711e542ad7e04";
+      name = "ktp-kded-module-20.08.1.tar.xz";
     };
   };
   ktp-send-file = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-send-file-19.12.3.tar.xz";
-      sha256 = "566d9dccc0c2fa7c23c95051c25543d3aabe76065ddff7dff9d8a37683d2022b";
-      name = "ktp-send-file-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-send-file-20.08.1.tar.xz";
+      sha256 = "b3786c6e6f09ea086c2d94d2a6dd653e45bab8f984c6287c39f5e0134d6ffee1";
+      name = "ktp-send-file-20.08.1.tar.xz";
     };
   };
   ktp-text-ui = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktp-text-ui-19.12.3.tar.xz";
-      sha256 = "b8ad9a224ae300c0412874d0877fdc8e050869d3a8f60a4051a0919a8749c50f";
-      name = "ktp-text-ui-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktp-text-ui-20.08.1.tar.xz";
+      sha256 = "5cdb88f55b6ca1a1053b8d5b2604eff681c5f3558f0c8037034c264793de8c02";
+      name = "ktp-text-ui-20.08.1.tar.xz";
     };
   };
   ktuberling = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/ktuberling-19.12.3.tar.xz";
-      sha256 = "c4d74d18173d5761f7e6f8adf6178713a726c671aaa2eda4e6c77115484e9e55";
-      name = "ktuberling-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/ktuberling-20.08.1.tar.xz";
+      sha256 = "62d3d8db7b1db7f9d58df44acf61342ce42fb081038fc48f8f6e45d9167ceaa6";
+      name = "ktuberling-20.08.1.tar.xz";
     };
   };
   kturtle = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kturtle-19.12.3.tar.xz";
-      sha256 = "6958a88c484261919cd89cb1f0d163b0c5d5f1e28b10b3b4e3b6b9e82e379ef1";
-      name = "kturtle-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kturtle-20.08.1.tar.xz";
+      sha256 = "c261fdf44b36aaa278b4b9752a0d989facec3768853606e5c0b8a86d9d01edb3";
+      name = "kturtle-20.08.1.tar.xz";
     };
   };
   kubrick = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kubrick-19.12.3.tar.xz";
-      sha256 = "8fc0a0e68d255481c6efb3f4ff894c5e376367b29958c4738bd72d3f4b1ff557";
-      name = "kubrick-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kubrick-20.08.1.tar.xz";
+      sha256 = "c0c017f6913f94224e18df7d96ba9ad92f51522a331b77f5722f2d2c953c342c";
+      name = "kubrick-20.08.1.tar.xz";
     };
   };
   kwalletmanager = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kwalletmanager-19.12.3.tar.xz";
-      sha256 = "247c7f80a54babd21a13e6b9386370b72ec12bdf928c08a7e8a647ccca53e393";
-      name = "kwalletmanager-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kwalletmanager-20.08.1.tar.xz";
+      sha256 = "b5a134db6b6bceb802c6c45915636bcd95fea5b6846cfd022917405f48cc92c5";
+      name = "kwalletmanager-20.08.1.tar.xz";
     };
   };
   kwave = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kwave-19.12.3.tar.xz";
-      sha256 = "3c90115d4702dbe46767e2404c952d84533137fa558b787b87ff95ed61f6930d";
-      name = "kwave-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kwave-20.08.1.tar.xz";
+      sha256 = "3791f9401271c23d3ababd14e4c1e6acfe58df2100331e31ba61453feaf9fa32";
+      name = "kwave-20.08.1.tar.xz";
     };
   };
   kwordquiz = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/kwordquiz-19.12.3.tar.xz";
-      sha256 = "6965a3b3c171c3f62aeecf4ccdddde14d23062ab914b1860822546a5770b80fc";
-      name = "kwordquiz-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/kwordquiz-20.08.1.tar.xz";
+      sha256 = "77d2d30abcb37ee6a8e0b121ed1969f2fa61eb32814f49a0186043a4e8f1a71c";
+      name = "kwordquiz-20.08.1.tar.xz";
     };
   };
   libgravatar = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libgravatar-19.12.3.tar.xz";
-      sha256 = "70ea306f48aede9f8f327eaa74ea5ce5761e5dfe67f2da50d3242c0f312edc86";
-      name = "libgravatar-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libgravatar-20.08.1.tar.xz";
+      sha256 = "dfe95055869944b79b1f4120f013b547225b02b69c7e410fd09d52469a892263";
+      name = "libgravatar-20.08.1.tar.xz";
     };
   };
   libkcddb = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkcddb-19.12.3.tar.xz";
-      sha256 = "69cbaf03adba24c0cabf957ee4149c4fa86d403eb6b8a07f7f80eb17be49e892";
-      name = "libkcddb-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkcddb-20.08.1.tar.xz";
+      sha256 = "1519c9248b46d95d8761a8ed22b0805964a5fef5aa665710b08851c753f70590";
+      name = "libkcddb-20.08.1.tar.xz";
     };
   };
   libkcompactdisc = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkcompactdisc-19.12.3.tar.xz";
-      sha256 = "74aac7dcac84c60a7962f23e7bcc6eb693048fd96ca21015441a87487baa9d1c";
-      name = "libkcompactdisc-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkcompactdisc-20.08.1.tar.xz";
+      sha256 = "f43b8129a0083686dbc939387931867d9d65e14936f2a86be0a7286e01cf1974";
+      name = "libkcompactdisc-20.08.1.tar.xz";
     };
   };
   libkdcraw = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkdcraw-19.12.3.tar.xz";
-      sha256 = "9454aed707ee311dbfb921f8d45fba11710ffc01f48d65f64585d12c2580116f";
-      name = "libkdcraw-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkdcraw-20.08.1.tar.xz";
+      sha256 = "3431810972d886635ba6249ac86a9442a9c3a3333eb0b27533fc459e757e9eb1";
+      name = "libkdcraw-20.08.1.tar.xz";
     };
   };
   libkdegames = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkdegames-19.12.3.tar.xz";
-      sha256 = "39cf5039b7fe11688028df026252c9cd4424546817b5bb635af2558f71ba6b20";
-      name = "libkdegames-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkdegames-20.08.1.tar.xz";
+      sha256 = "6ab0b143dcba2d935dd0182c9154657ebbfb205c28bc86e2e13875b58e23737d";
+      name = "libkdegames-20.08.1.tar.xz";
     };
   };
   libkdepim = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkdepim-19.12.3.tar.xz";
-      sha256 = "911e7d174240d4c056472549dbd1f3da4467a57c765f3cb34fbac32943f38dbb";
-      name = "libkdepim-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkdepim-20.08.1.tar.xz";
+      sha256 = "a2fb769239283e7f536d4779089ad8664d1498cf7520f057589bf0285630fb4b";
+      name = "libkdepim-20.08.1.tar.xz";
     };
   };
   libkeduvocdocument = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkeduvocdocument-19.12.3.tar.xz";
-      sha256 = "31594d30e03890507b25d676981164fd64258e69c6b264b85939118377eda964";
-      name = "libkeduvocdocument-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkeduvocdocument-20.08.1.tar.xz";
+      sha256 = "ecd158beb7fcc1a5d540d956669c6fdce6172f4b282755170d2791076d75ad84";
+      name = "libkeduvocdocument-20.08.1.tar.xz";
     };
   };
   libkexiv2 = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkexiv2-19.12.3.tar.xz";
-      sha256 = "f5d0947f6b1ca0583d569990dc6f68bb01d8f7756a38bcc40b1e54f7814e4d4d";
-      name = "libkexiv2-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkexiv2-20.08.1.tar.xz";
+      sha256 = "67310ae90d89f26d2ae98ede8fa973e27ea1ce3d15c389954d391cd058543979";
+      name = "libkexiv2-20.08.1.tar.xz";
     };
   };
   libkgapi = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkgapi-19.12.3.tar.xz";
-      sha256 = "f52923c382272b47782348fbadb32902fbcd4652f4100875a745ba57033cf48a";
-      name = "libkgapi-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkgapi-20.08.1.tar.xz";
+      sha256 = "dfa9003556a01ef19eda186973f87356d32ea8f82f8d653803b2cc935f077127";
+      name = "libkgapi-20.08.1.tar.xz";
     };
   };
   libkgeomap = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkgeomap-19.12.3.tar.xz";
-      sha256 = "eb604deffe78cdcd4a8c7d888416246d0a17f2e3b7d80d6959e1412f03ab2755";
-      name = "libkgeomap-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkgeomap-20.08.1.tar.xz";
+      sha256 = "a210945b6807efca3390173233269aa31f27a23b5f36670b88f66b3b28df846f";
+      name = "libkgeomap-20.08.1.tar.xz";
     };
   };
   libkipi = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkipi-19.12.3.tar.xz";
-      sha256 = "3a57d07cd4fe8e118558d807242bf483fa2aac1bcf3dcdc29139636c2b280786";
-      name = "libkipi-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkipi-20.08.1.tar.xz";
+      sha256 = "4722ab563c1350042920d1937b84fdd38b5779449a2d9b689328cd82241cb5d2";
+      name = "libkipi-20.08.1.tar.xz";
     };
   };
   libkleo = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkleo-19.12.3.tar.xz";
-      sha256 = "1e715442a0c52ca561316abdce9662082f52ad9f3101ea01435a90984989a057";
-      name = "libkleo-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkleo-20.08.1.tar.xz";
+      sha256 = "78c1dc2e4d7177aaf37cb1c706d9c21b08fac7d130ac1da3d3f2a6f083117ffb";
+      name = "libkleo-20.08.1.tar.xz";
     };
   };
   libkmahjongg = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkmahjongg-19.12.3.tar.xz";
-      sha256 = "f8ea23952a576e6081052d10e9c967bebe5db017ad62775183f91236158cc19f";
-      name = "libkmahjongg-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkmahjongg-20.08.1.tar.xz";
+      sha256 = "5a8674921e39b38655d1f95340831b1bc746047cbad8501706436f5dacf47fc2";
+      name = "libkmahjongg-20.08.1.tar.xz";
     };
   };
   libkomparediff2 = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libkomparediff2-19.12.3.tar.xz";
-      sha256 = "aadc6e420e24bdebe203d4dfc76f5c23c8529be70ac057d89b516ab57b165094";
-      name = "libkomparediff2-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libkomparediff2-20.08.1.tar.xz";
+      sha256 = "9d109dfea1433602cdabc89ffa5f522147befc9b1d6d9760549aba7db5dbd399";
+      name = "libkomparediff2-20.08.1.tar.xz";
     };
   };
   libksane = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libksane-19.12.3.tar.xz";
-      sha256 = "0aab855b8414041c37ddfbb9f0732272206af1c0844376f1370b9d2a907af71d";
-      name = "libksane-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libksane-20.08.1.tar.xz";
+      sha256 = "0d8717ad004a2480aea232d9a2317b4d1cc4678d53f0176bdaeb411eedd19dbe";
+      name = "libksane-20.08.1.tar.xz";
     };
   };
   libksieve = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/libksieve-19.12.3.tar.xz";
-      sha256 = "990e6a15e7e88120bf6c744fe6f1ac78184d6470318005f24634a70219f45002";
-      name = "libksieve-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/libksieve-20.08.1.tar.xz";
+      sha256 = "a1defe888c6c5a3c16ef6fad39d9eb94bc784031079763f004048951820acec0";
+      name = "libksieve-20.08.1.tar.xz";
     };
   };
   lokalize = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/lokalize-19.12.3.tar.xz";
-      sha256 = "8015c994e974fd51c1c7f5903a005bbbc25f094656bdd44cd5e8675cd69cea92";
-      name = "lokalize-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/lokalize-20.08.1.tar.xz";
+      sha256 = "a4a3e5703d39ae8fe12d2ff832e99b3339ba1c8ec8d2439abeb348e687f1eae9";
+      name = "lokalize-20.08.1.tar.xz";
     };
   };
   lskat = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/lskat-19.12.3.tar.xz";
-      sha256 = "5f13417ba9f6831a5f48c220a5c67a8d73787715b8b4aa433e6e356b7ac58776";
-      name = "lskat-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/lskat-20.08.1.tar.xz";
+      sha256 = "319d611468b969b3bb62731a0aa04c5672bb689c41adf5545dfa8b9742668775";
+      name = "lskat-20.08.1.tar.xz";
     };
   };
   mailcommon = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/mailcommon-19.12.3.tar.xz";
-      sha256 = "d3999d290505b20aecbb4b14bec5af4d6a7db72d1f26f7a40b4aff231588c7e5";
-      name = "mailcommon-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/mailcommon-20.08.1.tar.xz";
+      sha256 = "d4ee996f74a749ad626ca5029821546da82dbfc1c81864ff39b5f51d6dcf1d88";
+      name = "mailcommon-20.08.1.tar.xz";
     };
   };
   mailimporter = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/mailimporter-19.12.3.tar.xz";
-      sha256 = "b81e8a5794aee24aa611c1a1912f93a308ce56c429ad4a72afe308e6b554c4a7";
-      name = "mailimporter-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/mailimporter-20.08.1.tar.xz";
+      sha256 = "dcf2b94d4f66be2b339b31dfebef7af373e0cf59f09e4cfb664eb828e1d4f73f";
+      name = "mailimporter-20.08.1.tar.xz";
     };
   };
   marble = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/marble-19.12.3.tar.xz";
-      sha256 = "73a2c5234f8a1728e2a97499166e7bbf8dfb2f48d10fe8cff96380631d064627";
-      name = "marble-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/marble-20.08.1.tar.xz";
+      sha256 = "96b019a41ae4e0aaab59950b6be040bd2145f130190b8c0dea436c791e3192ed";
+      name = "marble-20.08.1.tar.xz";
     };
   };
   mbox-importer = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/mbox-importer-19.12.3.tar.xz";
-      sha256 = "62fb1490517e0a49bf823946c8b747062cb970dbe00281d459adda73596f0046";
-      name = "mbox-importer-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/mbox-importer-20.08.1.tar.xz";
+      sha256 = "262c8805539b7c766099c6287d1dbf88161afe6d32c1c6821ebe63cff4fe3b71";
+      name = "mbox-importer-20.08.1.tar.xz";
     };
   };
   messagelib = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/messagelib-19.12.3.tar.xz";
-      sha256 = "5e776d5ea7b0cbb246b03cf2bfc84a65a959e7433a7f80b77a5f67cfa7c23ccb";
-      name = "messagelib-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/messagelib-20.08.1.tar.xz";
+      sha256 = "fc41124e905456a3c5227ca6154dc3e77620e307458fbb19f5421cbfb04523b3";
+      name = "messagelib-20.08.1.tar.xz";
     };
   };
   minuet = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/minuet-19.12.3.tar.xz";
-      sha256 = "740a3704004336f08c0fde148257c1562254b4e706704ec7eb2149fb3d7b6b9b";
-      name = "minuet-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/minuet-20.08.1.tar.xz";
+      sha256 = "a640025550337f415f7bfaaad7f6ef7de667dd054131be2c313d894c3f6703ea";
+      name = "minuet-20.08.1.tar.xz";
     };
   };
   okular = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/okular-19.12.3.tar.xz";
-      sha256 = "c5de22cc4292e3b7adae3f6ef6566dcba33a1dd5995fb0b968ea3e705a4c04e0";
-      name = "okular-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/okular-20.08.1.tar.xz";
+      sha256 = "77b5d8e410a2a008ea63f60a561f99053ec07d92da6ee3afaeefd977aadebd83";
+      name = "okular-20.08.1.tar.xz";
     };
   };
   palapeli = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/palapeli-19.12.3.tar.xz";
-      sha256 = "6989bbc94ed955f6990d40bccbc0c38768898bf2ccb8163c45119517340b723d";
-      name = "palapeli-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/palapeli-20.08.1.tar.xz";
+      sha256 = "31b847caa89b998dfa580553d96c656b05f2d85fdd88f0ba71e953762cefac90";
+      name = "palapeli-20.08.1.tar.xz";
     };
   };
   parley = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/parley-19.12.3.tar.xz";
-      sha256 = "ebf9fdec981abca988d83d8a77e921e7ce871eb010b6cf4ea9065ee6d45f5089";
-      name = "parley-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/parley-20.08.1.tar.xz";
+      sha256 = "9617a90c2d4f9ab5d928febc6bcd10c9023dcc10e9f1202bfb97b77019948f0c";
+      name = "parley-20.08.1.tar.xz";
     };
   };
   picmi = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/picmi-19.12.3.tar.xz";
-      sha256 = "04a69125fc76b1fcd58d873452e4a4e642ee9ee672cdb7656214d8cd854fc178";
-      name = "picmi-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/picmi-20.08.1.tar.xz";
+      sha256 = "027e37a2c9dcf828684a0f8ffdcfc6451a2bd62976c10d990e471fa0f5ba97c3";
+      name = "picmi-20.08.1.tar.xz";
     };
   };
   pimcommon = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/pimcommon-19.12.3.tar.xz";
-      sha256 = "443e2915eb42a4f56f1ddf47785ceeceb4ca1e0384ff48bc93fc4a7756392766";
-      name = "pimcommon-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/pimcommon-20.08.1.tar.xz";
+      sha256 = "58a33349bf932076f6be343ae64e23f146e2a6a96e3af8ce68dbd752f2c80dd9";
+      name = "pimcommon-20.08.1.tar.xz";
     };
   };
   pim-data-exporter = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/pim-data-exporter-19.12.3.tar.xz";
-      sha256 = "8e9961fcc4f1ed0305d589e3a417f8924657d89d798a77c53956d73f6bf19938";
-      name = "pim-data-exporter-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/pim-data-exporter-20.08.1.tar.xz";
+      sha256 = "54092763e4b951f4e90a217c876107900e0706da68ca5517184e5da258ae95ec";
+      name = "pim-data-exporter-20.08.1.tar.xz";
     };
   };
   pim-sieve-editor = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/pim-sieve-editor-19.12.3.tar.xz";
-      sha256 = "641ea56304df079a80e098fb253c173b63266990856f8795af093c144c3883ae";
-      name = "pim-sieve-editor-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/pim-sieve-editor-20.08.1.tar.xz";
+      sha256 = "f788038796f226bfe426835fc6f186e23f2c7f9fda8316dfa6af307d6936d4ad";
+      name = "pim-sieve-editor-20.08.1.tar.xz";
     };
   };
   poxml = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/poxml-19.12.3.tar.xz";
-      sha256 = "190178290ce18fe3a684c22d650843f3008a6e31ebbab8fff25491c58b21e276";
-      name = "poxml-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/poxml-20.08.1.tar.xz";
+      sha256 = "9f4bcafc664532706fe634ce8b0f410619d5e3c285526a7b61969155d75bbad2";
+      name = "poxml-20.08.1.tar.xz";
     };
   };
   print-manager = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/print-manager-19.12.3.tar.xz";
-      sha256 = "74c13802a65136539b4542fec10fb248149a3324e8060e947a8f305ce665269a";
-      name = "print-manager-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/print-manager-20.08.1.tar.xz";
+      sha256 = "52d41ca3ae69e6e8e1eb4ddf1d516868dc436e81779053efdea5e3819545ca5b";
+      name = "print-manager-20.08.1.tar.xz";
     };
   };
   rocs = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/rocs-19.12.3.tar.xz";
-      sha256 = "f834e69e676913e364162906b79da5a75a6043f4a5c8506954d1630abda45e3c";
-      name = "rocs-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/rocs-20.08.1.tar.xz";
+      sha256 = "3c5f764f06f6f5b7c68523be4fdd37e75b2249e0b15001bc39e55051d9e271ef";
+      name = "rocs-20.08.1.tar.xz";
     };
   };
   signon-kwallet-extension = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/signon-kwallet-extension-19.12.3.tar.xz";
-      sha256 = "46199be023bad630b769b14c2c0a63feff2949da944c76780b1ebd9a50ee3daa";
-      name = "signon-kwallet-extension-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/signon-kwallet-extension-20.08.1.tar.xz";
+      sha256 = "10a0ea806dc63cbf6c6d4794fe596c68355bccb3e08370d70ce7a8e95af448a5";
+      name = "signon-kwallet-extension-20.08.1.tar.xz";
     };
   };
   spectacle = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/spectacle-19.12.3.tar.xz";
-      sha256 = "443f114dab1fb50e7e12a046fdf06c0456bf99a3abdf09dce05605fdf7d3de81";
-      name = "spectacle-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/spectacle-20.08.1.tar.xz";
+      sha256 = "4a01b5ef41901ff2e83bb517c2e96a978188b98cb62243eb541a317f57a2bd69";
+      name = "spectacle-20.08.1.tar.xz";
     };
   };
   step = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/step-19.12.3.tar.xz";
-      sha256 = "0eb62c87553769e009daa02406b1d95742c946bdffe0d22327776ec558e7584b";
-      name = "step-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/step-20.08.1.tar.xz";
+      sha256 = "6e04930963676b1bfa55ee095914c7491a61bf3963c45ed4157f868175ee6605";
+      name = "step-20.08.1.tar.xz";
     };
   };
   svgpart = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/svgpart-19.12.3.tar.xz";
-      sha256 = "942d877a516d8407ef2782d7c6869ab688274fee6cde9b23ab1061bcbddf2cc9";
-      name = "svgpart-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/svgpart-20.08.1.tar.xz";
+      sha256 = "206c3741464f959ffbaea09bc918fc3e88f32fcf12928cd8c399ab44d4b1f228";
+      name = "svgpart-20.08.1.tar.xz";
     };
   };
   sweeper = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/sweeper-19.12.3.tar.xz";
-      sha256 = "cf89cfba61c9eeda9b4e7921c21a23e7d9a110b134ab6fbd127c37d036bd0517";
-      name = "sweeper-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/sweeper-20.08.1.tar.xz";
+      sha256 = "722c25de8cc74fe7e8310d47a7e794f32e935331f89d4f5249fd045a83ce0431";
+      name = "sweeper-20.08.1.tar.xz";
     };
   };
   umbrello = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/umbrello-19.12.3.tar.xz";
-      sha256 = "b2f769c7bd1cc259170b62c68d2dca05b4a143dd1048dbb507cf2bbb3020a193";
-      name = "umbrello-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/umbrello-20.08.1.tar.xz";
+      sha256 = "d980d67f8a878e01cd3af5499aa843df703f20cdecca8a14b59d87d13c747328";
+      name = "umbrello-20.08.1.tar.xz";
     };
   };
   yakuake = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/yakuake-19.12.3.tar.xz";
-      sha256 = "0e4f16eaf155750b0c35f1f8f1a625909f386f3359b9f23bf4e7c2f9045384e3";
-      name = "yakuake-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/yakuake-20.08.1.tar.xz";
+      sha256 = "6768a360a3d79080e6e53821460ed27f6c2e47fa11077bbec3213d85385d6fac";
+      name = "yakuake-20.08.1.tar.xz";
     };
   };
   zeroconf-ioslave = {
-    version = "19.12.3";
+    version = "20.08.1";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/19.12.3/src/zeroconf-ioslave-19.12.3.tar.xz";
-      sha256 = "c9b2146030a9845b8164f5784d1c6fcc198b6cfe0e23f6a91edf78d093e4368f";
-      name = "zeroconf-ioslave-19.12.3.tar.xz";
+      url = "${mirror}/stable/release-service/20.08.1/src/zeroconf-ioslave-20.08.1.tar.xz";
+      sha256 = "ca1685a22922057ba89510d71a11218bf47db0d0313aec2b55aca21932564866";
+      name = "zeroconf-ioslave-20.08.1.tar.xz";
     };
   };
 }
diff --git a/nixpkgs/pkgs/applications/logging/humioctl/default.nix b/nixpkgs/pkgs/applications/logging/humioctl/default.nix
new file mode 100644
index 000000000000..715af073d8b5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/logging/humioctl/default.nix
@@ -0,0 +1,39 @@
+{ buildGoModule, fetchFromGitHub, installShellFiles, stdenv }:
+
+let
+  humioCtlVersion = "0.26.1";
+  sha256 = "1zpcbfv7zlym0jfyz78piggm8zhqlzbwpwq0dn255d0zc48zp773";
+  vendorSha256 = "1l2wa4w43srfrkb4qrgiyzdb6bnaqvp9g3fnrln6bhrcw6jsgj4z";
+in buildGoModule {
+    name = "humioctl-${humioCtlVersion}";
+    pname = "humioctl";
+    version = humioCtlVersion;
+
+    vendorSha256 = vendorSha256;
+
+    doCheck = false;
+
+    src = fetchFromGitHub {
+      owner = "humio";
+      repo = "cli";
+      rev = "v${humioCtlVersion}";
+      sha256 = sha256;
+    };
+
+    buildFlagsArray = "-ldflags=-X main.version=${humioCtlVersion}";
+
+    nativeBuildInputs = [ installShellFiles ];
+
+    postInstall = ''
+      $out/bin/humioctl completion bash > humioctl.bash
+      $out/bin/humioctl completion zsh > humioctl.zsh
+      installShellCompletion humioctl.{bash,zsh}
+    '';
+
+    meta = with stdenv.lib; {
+      homepage = "https://github.com/humio/cli";
+      description = "A CLI for managing and sending data to Humio";
+      license = licenses.asl20;
+      maintainers = with maintainers; [ lucperkins ];
+    };
+  }
diff --git a/nixpkgs/pkgs/applications/misc/1password/default.nix b/nixpkgs/pkgs/applications/misc/1password/default.nix
index 5e027fcdf04b..34b9b21f57d5 100644
--- a/nixpkgs/pkgs/applications/misc/1password/default.nix
+++ b/nixpkgs/pkgs/applications/misc/1password/default.nix
@@ -2,26 +2,22 @@
 
 stdenv.mkDerivation rec {
   pname = "1password";
-  version = "1.0.0";
+  version = "1.7.0";
   src =
-    if stdenv.hostPlatform.system == "i686-linux" then
-      fetchzip {
-        url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_386_v${version}.zip";
-        sha256 = "1d1lxmrmirh3837zib91dmxblb4imdz8gbq56pb7kgbff3zf96ql";
-        stripRoot = false;
-      }
-    else if stdenv.hostPlatform.system == "x86_64-linux" then
-      fetchzip {
-        url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip";
-        sha256 = "0pscm61dc69vmkrzrnxi531d37ig9y48w8q1lvzsg13zvvwaw8hs";
-        stripRoot = false;
-      }
-    else if stdenv.hostPlatform.system == "x86_64-darwin" then
-      fetchurl {
-        url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_darwin_amd64_v${version}.pkg";
-        sha256 = "1sb5qdssasqm7z7j4xzgkmkgf132zhgm93d7rkx3y5j0rac98y0g";
-      }
-    else throw "Architecture not supported";
+    if stdenv.isLinux then fetchzip {
+      url = {
+        "i686-linux" = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_386_v${version}.zip";
+        "x86_64-linux" = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip";
+      }.${stdenv.hostPlatform.system};
+      sha256 = {
+        "i686-linux" = "0fvi9pfcm6pfy628q2lg62bkikrgsisynrk3kkjisb9ldcyjgabw";
+        "x86_64-linux" = "1iskhls8g8w2zhk79gprz4vzrmm7r7fq87gwgd4xmj5md4nkzran";
+      }.${stdenv.hostPlatform.system};
+      stripRoot = false;
+    } else fetchurl {
+      url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_darwin_amd64_v${version}.pkg";
+      sha256 = "0x6s26zgjryzmcg9qxmv5s2vml06q96yqbapasjfxqc3l205lnnn";
+    };
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ xar cpio ];
 
diff --git a/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix b/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix
index 6201d881a882..38a25b3375a1 100644
--- a/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ArchiSteamFarm/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ArchiSteamFarm";
-  version = "4.2.2.1";
+  version = "4.2.4.0";
 
   src = fetchurl {
     url = "https://github.com/JustArchiNET/ArchiSteamFarm/releases/download/${version}/ASF-generic.zip";
-    sha256 = "0pr9rrhi44yl99c2i12rimmc4mhbh0ma9jn17cgsh8p0kbj8sq94";
+    sha256 = "1nkbyy9gnp8nkr04bbiapwvv2nspnl36fvnzjwaq4a13mj49m5zq";
   };
 
   nativeBuildInputs = [ unzip makeWrapper jq ];
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
       --run "[ -d config ] || cp --no-preserve=mode -r $dist/config ." \
       --run "[ -d logs ] || cp --no-preserve=mode -r $dist/logs ." \
       --run "[ -d plugins ] || cp --no-preserve=mode -r $dist/plugins ." \
-      --run "[ -d www ] || ln -sf $dist/www ."
+      --run "ln -sf $dist/www ."
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/misc/adobe-reader/default.nix b/nixpkgs/pkgs/applications/misc/adobe-reader/default.nix
index b67e514ce54d..25f888bbc8b7 100644
--- a/nixpkgs/pkgs/applications/misc/adobe-reader/default.nix
+++ b/nixpkgs/pkgs/applications/misc/adobe-reader/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, libX11, cups, zlib, libxml2, pango, atk, gtk2, glib
-, gdk-pixbuf }:
+, gdk-pixbuf, gdk-pixbuf-xlib }:
 
 assert stdenv.hostPlatform.system == "i686-linux";
 
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
   # versions.
 
   libPath = stdenv.lib.makeLibraryPath
-    [ stdenv.cc.cc libX11 zlib libxml2 cups pango atk gtk2 glib gdk-pixbuf ];
+    [ stdenv.cc.cc libX11 zlib libxml2 cups pango atk gtk2 glib gdk-pixbuf gdk-pixbuf-xlib ];
 
   passthru.mozillaPlugin = "/libexec/adobe-reader/Browser/intellinux";
 
@@ -28,5 +28,9 @@ stdenv.mkDerivation {
     description = "Adobe Reader, a viewer for PDF documents";
     homepage = "http://www.adobe.com/products/reader";
     license = stdenv.lib.licenses.unfree;
+    knownVulnerabilities = [
+      "Numerous unresolved vulnerabilities"
+      "See: https://www.cvedetails.com/product/497/Adobe-Acrobat-Reader.html?vendor_id=53"
+    ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/airtame/default.nix b/nixpkgs/pkgs/applications/misc/airtame/default.nix
index 4e1f2e8c084c..a5c08ad3642a 100644
--- a/nixpkgs/pkgs/applications/misc/airtame/default.nix
+++ b/nixpkgs/pkgs/applications/misc/airtame/default.nix
@@ -30,7 +30,7 @@ in stdenv.mkDerivation rec {
     desktopName = "Airtame";
     icon = name;
     genericName = comment;
-    categories = "Application;Network;";
+    categories = "Network;";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/misc/alacritty/default.nix b/nixpkgs/pkgs/applications/misc/alacritty/default.nix
index ba6d0687405e..fded24cd02c3 100644
--- a/nixpkgs/pkgs/applications/misc/alacritty/default.nix
+++ b/nixpkgs/pkgs/applications/misc/alacritty/default.nix
@@ -90,8 +90,6 @@ rustPlatform.buildRustPackage rec {
       --replace xdg-open ${xdg_utils}/bin/xdg-open
   '';
 
-  postBuild = lib.optionalString stdenv.isDarwin "make app";
-
   installPhase = ''
     runHook preInstall
 
@@ -100,7 +98,8 @@ rustPlatform.buildRustPackage rec {
   '' + (
     if stdenv.isDarwin then ''
       mkdir $out/Applications
-      cp -r $releaseDir/osx/Alacritty.app $out/Applications/Alacritty.app
+      cp -r extra/osx/Alacritty.app $out/Applications
+      ln -s $out/bin $out/Applications/Alacritty.app/Contents/MacOS
     '' else ''
       install -D extra/linux/Alacritty.desktop -t $out/share/applications/
       install -D extra/logo/compat/alacritty-term.svg $out/share/icons/hicolor/scalable/apps/Alacritty.svg
diff --git a/nixpkgs/pkgs/applications/misc/almanah/default.nix b/nixpkgs/pkgs/applications/misc/almanah/default.nix
index ff8785785268..7d5c468ab971 100644
--- a/nixpkgs/pkgs/applications/misc/almanah/default.nix
+++ b/nixpkgs/pkgs/applications/misc/almanah/default.nix
@@ -1,6 +1,5 @@
 { stdenv
 , fetchurl
-, fetchpatch
 , atk
 , cairo
 , desktop-file-utils
@@ -17,36 +16,29 @@
 , libxml2
 , meson
 , ninja
-, pkgconfig
+, pkg-config
+, python3
 , sqlite
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "almanah";
-  version = "0.12.0";
+  version = "0.12.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "09rxx4s4c34d1axza6ayss33v78p44r9bpx058shllh1sf5avpcb";
+    sha256 = "IWYOnOu0C9uQ9k1dgWkJ6Kv+o/jY+6Llfsi4PusHE24=";
   };
 
-  patches = [
-    # Fix gpgme detection
-    # https://gitlab.gnome.org/GNOME/almanah/merge_requests/7
-    (fetchpatch {
-      url = "https://gitlab.gnome.org/GNOME/almanah/commit/4b979c4145ef2fbceebb3849a70df1d0ceb1bb93.patch";
-      sha256 = "0wwkgqr5vi597j734xq0fwgk1zpcabp8wi8b1lnb1ksnqfi3wwxb";
-    })
-  ];
-
   nativeBuildInputs = [
     desktop-file-utils
     gettext
     libxml2
     meson
     ninja
-    pkgconfig
+    pkg-config
+    python3
     wrapGAppsHook
   ];
 
diff --git a/nixpkgs/pkgs/applications/misc/appeditor/default.nix b/nixpkgs/pkgs/applications/misc/appeditor/default.nix
index 38b51efa240e..ab58f9237647 100644
--- a/nixpkgs/pkgs/applications/misc/appeditor/default.nix
+++ b/nixpkgs/pkgs/applications/misc/appeditor/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , vala
 , meson
 , ninja
@@ -51,7 +52,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/misc/archiver/default.nix b/nixpkgs/pkgs/applications/misc/archiver/default.nix
index 0e345b1e273d..cfd8d1993a90 100644
--- a/nixpkgs/pkgs/applications/misc/archiver/default.nix
+++ b/nixpkgs/pkgs/applications/misc/archiver/default.nix
@@ -5,22 +5,25 @@
 
 buildGoModule rec {
   pname = "archiver";
-  version = "3.3.0";
+  version = "3.3.1";
 
   src = fetchFromGitHub {
     owner = "mholt";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1yr2jhidqvbwh1y08lpqaidwpr5yx3bhvznm5fc9pk64s7z5kq3h";
+    sha256 = "1izr9znw3mbqpg85qkl1pad5hash531h3dpwbji5w2af2i6x4ga3";
   };
 
-  vendorSha256 = "1ikrgl03r9zkn86kxkqi2kf540g3qzzz24i5wvh6g3d5q49nygl9";
+  vendorSha256 = "1rqhra3rfarq8f750zszkrm0jcsxa4sjbfpmcdlj5z000df699zq";
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev} -X main.date=unknown" ];
+
+  doCheck = false;
 
   meta = with lib; {
     description = "Easily create & extract archives, and compress & decompress files of various formats";
     homepage = "https://github.com/mholt/archiver";
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix b/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix
index 0ca01c8d2aed..45746a963b29 100644
--- a/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/audio/wavesurfer/default.nix
@@ -20,9 +20,9 @@ stdenv.mkDerivation {
                  --prefix PATH : "${stdenv.lib.makeBinPath [ tcl tk ]}"
   '';
 
-  meta = { 
+  meta = {
     description = "Tool for recording, playing, editing, viewing and labeling of audio";
     homepage = "http://www.speech.kth.se/wavesurfer/";
-    license = "BSD";
+    license = stdenv.lib.licenses.bsd0;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/ausweisapp2/default.nix b/nixpkgs/pkgs/applications/misc/ausweisapp2/default.nix
index 953e12a033d0..9f157798a7d2 100644
--- a/nixpkgs/pkgs/applications/misc/ausweisapp2/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ausweisapp2/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "AusweisApp2";
-  version = "1.20.0";
+  version = "1.20.2";
 
   src = fetchFromGitHub {
     owner = "Governikus";
     repo = "AusweisApp2";
     rev = "${version}";
-    sha256 = "0qkwdaxhig4qjim7h20j6ln6w76ycppfc786nd8l69bd1qv46m40";
+    sha256 = "1vibk3wmn54qr2mwz537hrr959y0r1zabp0gsijhzj2mk68g9pnb";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/misc/autospotting/default.nix b/nixpkgs/pkgs/applications/misc/autospotting/default.nix
index a33261e7a59d..f2e922e5b4d1 100644
--- a/nixpkgs/pkgs/applications/misc/autospotting/default.nix
+++ b/nixpkgs/pkgs/applications/misc/autospotting/default.nix
@@ -12,8 +12,6 @@ buildGoPackage {
     sha256 = "0p48lgig9kblxvgq1kggczkn4qdbx6ciq9c8x0179i80vl4jf7v6";
   };
 
-  goDeps = ./deps.nix;
-
   # patching path where repository used to exist
   postPatch = ''
     sed -i "s+github.com/cristim/autospotting/core+github.com/AutoSpotting/AutoSpotting/core+" autospotting.go
diff --git a/nixpkgs/pkgs/applications/misc/autospotting/deps.nix b/nixpkgs/pkgs/applications/misc/autospotting/deps.nix
deleted file mode 100644
index ea744ed6648f..000000000000
--- a/nixpkgs/pkgs/applications/misc/autospotting/deps.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
-  {
-    goPackagePath  = "github.com/aws/aws-lambda-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/aws/aws-lambda-go";
-      rev =  "2d482ef09017ae953b1e8d5a6ddac5b696663a3c";
-      sha256 = "06v2yfvn4sn116lds0526a8mfrsng4vafrdjf1dhpalqarrbdvmz";
-    };
-  }
-  {
-    goPackagePath  = "github.com/aws/aws-sdk-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/aws/aws-sdk-go";
-      rev =  "9333060a8d957db41bff1c80603a802aa674fad8";
-      sha256 = "0fnypw6zm6k70fzhm5a8g69ag64rxbrrpdk7l3rkfqd99slyg5kz";
-    };
-  }
-  {
-    goPackagePath  = "github.com/cristim/ec2-instances-info";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cristim/ec2-instances-info";
-      rev =  "73c042a5558cd6d8b61fb82502d6f7aec334e9ed";
-      sha256 = "1xajrkxqqz5wlbi9w2wdhnk115rbmqxyga29f8v9psq8hzwgi0rg";
-    };
-  }
-  {
-    goPackagePath  = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev =  "d8f796af33cc11cb798c1aaeb27a4ebc5099927d";
-      sha256 = "19z27f306fpsrjdvkzd61w1bdazcdbczjyjck177g33iklinhpvx";
-    };
-  }
-  {
-    goPackagePath  = "github.com/go-ini/ini";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-ini/ini";
-      rev =  "5cf292cae48347c2490ac1a58fe36735fb78df7e";
-      sha256 = "0xbnw1nd22q6k863n5gs0nxld15w0p8qxbhfky85akcb5rk1vwi9";
-    };
-  }
-  {
-    goPackagePath  = "github.com/jmespath/go-jmespath";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jmespath/go-jmespath";
-      rev =  "0b12d6b5";
-      sha256 = "1vv6hph8j6xgv7gwl9vvhlsaaqsm22sxxqmgmldi4v11783pc1ld";
-    };
-  }
-  {
-    goPackagePath  = "github.com/namsral/flag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/namsral/flag";
-      rev =  "67f268f20922975c067ed799e4be6bacf152208c";
-      sha256 = "1lmxq3z276zrsggpfq9b7yklzzxdyib49zr8sznb1lcqlvxqsr47";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev =  "645ef00459ed84a119197bfb8d8205042c6df63d";
-      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
-    };
-  }
-]
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/misc/batsignal/default.nix b/nixpkgs/pkgs/applications/misc/batsignal/default.nix
new file mode 100644
index 000000000000..56c508eaca92
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/batsignal/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, libnotify, pkg-config, glib }:
+
+stdenv.mkDerivation rec {
+  pname = "batsignal";
+  version = "1.1.2";
+
+  src = fetchFromGitHub {
+    owner = "electrickite";
+    repo = "batsignal";
+    rev = "${version}";
+    sha256 = "0ss5dw7wpqsf96dig6r7x4fhf6brmjdy54jyyf5nk1h9kzw4d69r";
+  };
+
+  buildInputs = [ libnotify glib ];
+  nativeBuildInputs = [ pkg-config ];
+  installFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/electrickite/batsignal";
+    description = "Lightweight battery daemon written in C";
+    license = licenses.isc;
+    maintainers = with maintainers; [ SlothOfAnarchy ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/bemenu/default.nix b/nixpkgs/pkgs/applications/misc/bemenu/default.nix
index 8b17ecea3cbb..43362b0394eb 100644
--- a/nixpkgs/pkgs/applications/misc/bemenu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/bemenu/default.nix
@@ -11,13 +11,13 @@ assert x11Support -> xlibs != null && xorg != null;
 
 stdenv.mkDerivation rec {
   pname = "bemenu";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "Cloudef";
     repo = pname;
     rev = version;
-    sha256 = "1fjcs9d3533ay3nz79cx3c0lmy2chgragr2lhsy0xl2ckr0iins0";
+    sha256 = "1ifq5bk7782b9m6bl111x33fn38rpppdrww7hfavqia9a9gi2sl5";
   };
 
   nativeBuildInputs = [ pkgconfig pcre ];
diff --git a/nixpkgs/pkgs/applications/misc/birdtray/default.nix b/nixpkgs/pkgs/applications/misc/birdtray/default.nix
index 5385cf67884d..8eb6a168721c 100644
--- a/nixpkgs/pkgs/applications/misc/birdtray/default.nix
+++ b/nixpkgs/pkgs/applications/misc/birdtray/default.nix
@@ -7,6 +7,7 @@
   , qtbase
   , qttools
   , qtx11extras
+  , qttranslations
 }:
 
 mkDerivation rec {
@@ -20,11 +21,21 @@ mkDerivation rec {
     sha256 = "15l8drdmamq1dpqpj0h9ajj2r5vcs23cx421drvhfgs6bqlzd1hl";
   };
 
+  patches = [
+    # See https://github.com/NixOS/nixpkgs/issues/86054
+    ./fix-qttranslations-path.diff
+  ];
+
   nativeBuildInputs = [ cmake pkgconfig ];
   buildInputs = [
     qtbase qttools qtx11extras
   ];
 
+  postPatch = ''
+    substituteInPlace src/birdtrayapp.cpp \
+      --subst-var-by qttranslations ${qttranslations}
+  '';
+
   meta = with lib; {
     description = "Mail system tray notification icon for Thunderbird";
     homepage = "https://github.com/gyunaev/birdtray";
diff --git a/nixpkgs/pkgs/applications/misc/birdtray/fix-qttranslations-path.diff b/nixpkgs/pkgs/applications/misc/birdtray/fix-qttranslations-path.diff
new file mode 100644
index 000000000000..2a379b5e2744
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/birdtray/fix-qttranslations-path.diff
@@ -0,0 +1,13 @@
+diff --git a/src/birdtrayapp.cpp b/src/birdtrayapp.cpp
+index 847b4d3..3a3709a 100644
+--- a/src/birdtrayapp.cpp
++++ b/src/birdtrayapp.cpp
+@@ -130,7 +130,7 @@ bool BirdtrayApp::loadTranslations() {
+             [](QString path) { return path.append("/translations"); });
+     QLocale locale = QLocale::system();
+     bool success = loadTranslation(
+-            qtTranslator, locale, "qt", {QLibraryInfo::location(QLibraryInfo::TranslationsPath)});
++            qtTranslator, locale, "qt", {QLatin1String("@qttranslations@/translations")});
+     success &= loadTranslation(dynamicTranslator, locale, "dynamic", locations);
+     success &= loadTranslation(mainTranslator, locale, "main", locations);
+     return success;
diff --git a/nixpkgs/pkgs/applications/misc/bleachbit/default.nix b/nixpkgs/pkgs/applications/misc/bleachbit/default.nix
index 0111f8519e7c..3c11c7bfaf57 100644
--- a/nixpkgs/pkgs/applications/misc/bleachbit/default.nix
+++ b/nixpkgs/pkgs/applications/misc/bleachbit/default.nix
@@ -1,5 +1,5 @@
 { stdenv
-, pythonPackages
+, python3Packages
 , fetchurl
 , gettext
 , gobject-introspection
@@ -9,15 +9,15 @@
 , libnotify
 }:
 
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "bleachbit";
-  version = "3.2.0";
+  version = "4.0.0";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "1sszpn7ifiry0wwmkzdppzh61zvgrfypm9g7wk6q1ya20qhb5b51";
+    sha256 = "1dn3h6lr9ldbfpvgq9sdlk972sxhwalgj2f377qbqibm3yfxzpil";
   };
 
   nativeBuildInputs = [
@@ -32,7 +32,7 @@ pythonPackages.buildPythonApplication rec {
     libnotify
   ];
 
-  propagatedBuildInputs = with pythonPackages; [
+  propagatedBuildInputs = with python3Packages; [
     chardet
     pygobject3
     requests
@@ -51,6 +51,12 @@ pythonPackages.buildPythonApplication rec {
     "prefix=${placeholder "out"}"
   ];
 
+  # prevent double wrapping from wrapGApps and wrapPythonProgram
+  dontWrapGApps = true;
+  makeWrapperArgs = [
+    ''''${gappsWrapperArgs[@]}''
+  ];
+
   strictDeps = false;
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/misc/blender/default.nix b/nixpkgs/pkgs/applications/misc/blender/default.nix
index bf2a89ade559..2a28a4edc4f5 100644
--- a/nixpkgs/pkgs/applications/misc/blender/default.nix
+++ b/nixpkgs/pkgs/applications/misc/blender/default.nix
@@ -9,6 +9,7 @@
 , colladaSupport ? true, opencollada
 , makeWrapper
 , pugixml, SDL, Cocoa, CoreGraphics, ForceFeedback, OpenAL, OpenGL
+, embree
 }:
 
 with lib;
@@ -17,11 +18,11 @@ let python = python3Packages.python; in
 
 stdenv.mkDerivation rec {
   pname = "blender";
-  version = "2.83.0";
+  version = "2.90.0";
 
   src = fetchurl {
     url = "https://download.blender.org/source/${pname}-${version}.tar.xz";
-    sha256 = "07rzm4xaj94pjxy2vlqfhi1adsqpshfkrzrq8kljmcbnw22vrqhl";
+    sha256 = "08qkvgdfrqh4ljqw5m64bbki1dsfcs4xnwzq6829z3ddhiwrxw84";
   };
 
   patches = lib.optional stdenv.isDarwin ./darwin.patch;
@@ -35,6 +36,7 @@ stdenv.mkDerivation rec {
       (opensubdiv.override { inherit cudaSupport; })
       tbb
       makeWrapper
+      embree
     ]
     ++ (if (!stdenv.isDarwin) then [
       libXi libX11 libXext libXrender
@@ -50,13 +52,20 @@ stdenv.mkDerivation rec {
     ++ optional cudaSupport cudatoolkit
     ++ optional colladaSupport opencollada;
 
-  postPatch =
-    if stdenv.isDarwin then ''
+  postPatch = ''
+    # allow usage of dynamically linked embree
+    rm build_files/cmake/Modules/FindEmbree.cmake
+  '' +
+    (if stdenv.isDarwin then ''
       : > build_files/cmake/platform/platform_apple_xcode.cmake
       substituteInPlace source/creator/CMakeLists.txt \
         --replace '${"$"}{LIBDIR}/python' \
                   '${python}'
       substituteInPlace build_files/cmake/platform/platform_apple.cmake \
+        --replace 'set(PYTHON_VERSION 3.7)' \
+                  'set(PYTHON_VERSION ${python.pythonVersion})' \
+        --replace '${"$"}{PYTHON_VERSION}m' \
+                  '${"$"}{PYTHON_VERSION}' \
         --replace '${"$"}{LIBDIR}/python' \
                   '${python}' \
         --replace '${"$"}{LIBDIR}/opencollada' \
@@ -73,7 +82,7 @@ stdenv.mkDerivation rec {
                   'set(OPENEXR_INCLUDE_DIRS "${openexr.dev}/include/OpenEXR") #'
     '' else ''
       substituteInPlace extern/clew/src/clew.c --replace '"libOpenCL.so"' '"${ocl-icd}/lib/libOpenCL.so"'
-    '';
+    '');
 
   cmakeFlags =
     [
diff --git a/nixpkgs/pkgs/applications/misc/break-time/default.nix b/nixpkgs/pkgs/applications/misc/break-time/default.nix
new file mode 100644
index 000000000000..4bcc4de5157d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/break-time/default.nix
@@ -0,0 +1,45 @@
+{ fetchFromGitHub
+, glib
+, gtk3
+, openssl
+, pkg-config
+, python3
+, rustPlatform
+, stdenv
+, wrapGAppsHook
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "break-time";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "cdepillabout";
+    repo  = "break-time";
+    rev = "v${version}";
+    sha256 = "18p9gfp0inbnjsc7af38fghyklr7qnl2kkr25isfy9d5m8cpxqc6";
+  };
+
+  cargoSha256 = "0brmgrxhspcpcarm4lvnl95dw2n96r20w736giv18xcg7d5jmgca";
+
+  nativeBuildInputs = [
+    pkg-config
+    python3 # needed for Rust xcb package
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    openssl
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Break timer that forces you to take a break";
+    homepage    = "https://github.com/cdepillabout/break-time";
+    license     = with licenses; [ mit ];
+    maintainers = with maintainers; [ cdepillabout ];
+    platforms   = platforms.linux;
+  };
+}
+
diff --git a/nixpkgs/pkgs/applications/misc/buku/default.nix b/nixpkgs/pkgs/applications/misc/buku/default.nix
index f4018cff5f43..9b8f531e800e 100644
--- a/nixpkgs/pkgs/applications/misc/buku/default.nix
+++ b/nixpkgs/pkgs/applications/misc/buku/default.nix
@@ -1,14 +1,14 @@
 { stdenv, python3, fetchFromGitHub }:
 
 with python3.pkgs; buildPythonApplication rec {
-  version = "4.3";
+  version = "4.4";
   pname = "buku";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = "buku";
     rev = "v${version}";
-    sha256 = "1cq508ymak3g5fhi1n4bdiiqkc86s2l3k4dvzw842vv2x0441cac";
+    sha256 = "10r5f1n0vcxxmqqqsgmlvibwg1xffijrr2id6r140rgiyhprz556";
   };
 
   checkInputs = [
@@ -38,6 +38,7 @@ with python3.pkgs; buildPythonApplication rec {
     click
     html5lib
     vcrpy
+    toml
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/misc/calibre/default.nix b/nixpkgs/pkgs/applications/misc/calibre/default.nix
index ff39eccf4f84..92a491a0056f 100644
--- a/nixpkgs/pkgs/applications/misc/calibre/default.nix
+++ b/nixpkgs/pkgs/applications/misc/calibre/default.nix
@@ -16,7 +16,7 @@
 , hyphen
 , unrarSupport ? false
 , chmlib
-, python2Packages
+, pythonPackages
 , libusb1
 , libmtp
 , xdg_utils
@@ -24,17 +24,13 @@
 , removeReferencesTo
 }:
 
-let
-  pypkgs = python2Packages;
-
-in
 mkDerivation rec {
   pname = "calibre";
-  version = "4.17.0";
+  version = "4.23.0";
 
   src = fetchurl {
     url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz";
-    sha256 = "1qgzx2q8a5g102z311ibz4aw1ipn2j1lbndgadig7xvy6zdhknma";
+    sha256 = "sha256-Ft5RRzzw4zb5RqVyUaHk9Pu6H4V/F9j8FKoTLn61lRg=";
   };
 
   patches = [
@@ -47,7 +43,7 @@ mkDerivation rec {
   ] ++ lib.optional (!unrarSupport) ./dont_build_unrar_plugin.patch;
 
   prePatch = ''
-    sed -i "/pyqt_sip_dir/ s:=.*:= '${pypkgs.pyqt5_with_qtwebkit}/share/sip/PyQt5':"  \
+    sed -i "/pyqt_sip_dir/ s:=.*:= '${pythonPackages.pyqt5}/share/sip/PyQt5':"  \
       setup/build_environment.py
 
     # Remove unneeded files and libs
@@ -61,52 +57,49 @@ mkDerivation rec {
 
   nativeBuildInputs = [ pkgconfig qmake removeReferencesTo ];
 
-  CALIBRE_PY3_PORT = builtins.toString pypkgs.isPy3k;
+  CALIBRE_PY3_PORT = builtins.toString pythonPackages.isPy3k;
 
   buildInputs = [
-    poppler_utils
-    libpng
+    chmlib
+    fontconfig
+    hunspell
+    hyphen
+    icu
     imagemagick
     libjpeg
-    fontconfig
+    libmtp
+    libpng
+    libusb1
     podofo
+    poppler_utils
     qtbase
-    chmlib
-    icu
-    hunspell
-    hyphen
     sqlite
-    libusb1
-    libmtp
     xdg_utils
   ] ++ (
-    with pypkgs; [
+    with pythonPackages; [
       apsw
-      cssselect
+      beautifulsoup4
       css-parser
+      cssselect
       dateutil
       dnspython
       feedparser
+      html2text
       html5-parser
       lxml
       markdown
+      mechanize
+      msgpack
       netifaces
       pillow
-      python
       pyqt5
-      sip
-      regex
-      msgpack
-      beautifulsoup4
-      html2text
       pyqtwebengine
+      python
+      regex
+      sip
       # the following are distributed with calibre, but we use upstream instead
       odfpy
     ]
-  ) ++ lib.optionals (!pypkgs.isPy3k) (
-    with pypkgs; [
-      mechanize
-    ]
   );
 
   installPhase = ''
@@ -121,18 +114,17 @@ mkDerivation rec {
     export FC_LIB_DIR=${fontconfig.lib}/lib
     export PODOFO_INC_DIR=${podofo.dev}/include/podofo
     export PODOFO_LIB_DIR=${podofo.lib}/lib
-    export SIP_BIN=${pypkgs.sip}/bin/sip
+    export SIP_BIN=${pythonPackages.sip}/bin/sip
     export XDG_DATA_HOME=$out/share
     export XDG_UTILS_INSTALL_MODE="user"
 
-    ${pypkgs.python.interpreter} setup.py install --root=$out \
+    ${pythonPackages.python.interpreter} setup.py install --root=$out \
       --prefix=$out \
       --libdir=$out/lib \
       --staging-root=$out \
       --staging-libdir=$out/lib \
       --staging-sharedir=$out/share
 
-
     PYFILES="$out/bin/* $out/lib/calibre/calibre/web/feeds/*.py
       $out/lib/calibre/calibre/ebooks/metadata/*.py
       $out/lib/calibre/calibre/ebooks/rtf2xml/*.py"
@@ -154,7 +146,8 @@ mkDerivation rec {
   # 2018-11-06) was a single string like the following:
   #   /nix/store/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx-podofo-0.9.6-dev/include/podofo/base/PdfVariant.h
   preFixup = ''
-    remove-references-to -t ${podofo.dev} $out/lib/calibre/calibre/plugins/podofo.so
+    remove-references-to -t ${podofo.dev} \
+      $out/lib/calibre/calibre/plugins${lib.optionalString pythonPackages.isPy3k "/3"}/podofo.so
 
     for program in $out/bin/*; do
       wrapProgram $program \
diff --git a/nixpkgs/pkgs/applications/misc/cgminer/default.nix b/nixpkgs/pkgs/applications/misc/cgminer/default.nix
deleted file mode 100644
index 09236565d598..000000000000
--- a/nixpkgs/pkgs/applications/misc/cgminer/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ fetchgit, stdenv, pkgconfig, libtool, autoconf, automake
-, curl, ncurses, ocl-icd, opencl-headers, xorg, jansson }:
-
-stdenv.mkDerivation {
-  version = "3.7.2";
-  pname = "cgminer";
-
-  src = fetchgit {
-    url = "https://github.com/ckolivas/cgminer.git";
-    rev = "refs/tags/v3.7.2";
-    sha256  = "1xfzx91dpwjj1vmhas3v9ybs0p2i74lrhinijmpav15acfggm9fq";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [
-    autoconf automake libtool curl ncurses ocl-icd opencl-headers
-    xorg.libX11 xorg.libXext xorg.libXinerama jansson
-  ];
-  configureScript = "./autogen.sh";
-  configureFlags = [ "--enable-scrypt" "--enable-opencl" ];
-  NIX_LDFLAGS = "-lgcc_s -lX11 -lXext -lXinerama";
-
-  postBuild = ''
-    gcc api-example.c -o cgminer-api
-  '';
-
-  postInstall = ''
-    cp cgminer-api $out/bin/
-    chmod 444 $out/bin/*.cl
-  '';
-
-  meta = with stdenv.lib; {
-    description = "CPU/GPU miner in c for bitcoin";
-    longDescription= ''
-      This is a multi-threaded multi-pool GPU, FPGA and ASIC miner with ATI GPU
-      monitoring, (over)clocking and fanspeed support for bitcoin and derivative
-      coins. Do not use on multiple block chains at the same time!
-    '';
-    homepage = "https://github.com/ckolivas/cgminer";
-    license = licenses.gpl3;
-    maintainers = [ maintainers.offline ];
-    platforms = stdenv.lib.platforms.linux;
-    hydraPlatforms = [];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/misc/cheat/default.nix b/nixpkgs/pkgs/applications/misc/cheat/default.nix
index ec4d71a0dce8..77717ff50a21 100644
--- a/nixpkgs/pkgs/applications/misc/cheat/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cheat/default.nix
@@ -3,13 +3,13 @@
 
 buildGoModule rec {
   pname = "cheat";
-  version = "3.10.1";
+  version = "4.1.0";
 
   src = fetchFromGitHub {
     owner = "cheat";
     repo = "cheat";
     rev = version;
-    sha256 = "0indvycj972wng979mvia8mrb7bwdfay7wxq3lnj05qyxqafj5h2";
+    sha256 = "0x6msbbqkwxs6msqacpqw4wlw7c9ilf8n6jqmx297ij6isswgksh";
   };
 
   subPackages = [ "cmd/cheat" ];
@@ -23,6 +23,8 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Create and view interactive cheatsheets on the command-line";
     maintainers = with maintainers; [ mic92 ];
diff --git a/nixpkgs/pkgs/applications/misc/cherrytree/default.nix b/nixpkgs/pkgs/applications/misc/cherrytree/default.nix
index d2ade055d6fd..c74ac5ffb306 100644
--- a/nixpkgs/pkgs/applications/misc/cherrytree/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cherrytree/default.nix
@@ -2,13 +2,13 @@
 
 pythonPackages.buildPythonApplication rec {
   pname = "cherrytree";
-  version = "0.39.3";
+  version = "0.39.4";
 
   src = fetchFromGitHub {
     owner = "giuspen";
     repo = "cherrytree";
     rev = version;
-    sha256 = "1k9i7acpphx0if6ij2p9fkmj638ry6hcyr1rdr039a8zi8hq98gz";
+    sha256 = "1wycgn1f3b858qb6kn2bsaabak8n52qkpd24w54xz6fjizlnw7x0";
 
   };
 
diff --git a/nixpkgs/pkgs/applications/misc/chewing-editor/default.nix b/nixpkgs/pkgs/applications/misc/chewing-editor/default.nix
new file mode 100644
index 000000000000..b70f9a2e7d80
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/chewing-editor/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, mkDerivation, fetchFromGitHub, cmake, pkgconfig, libchewing, qtbase
+, qttools }:
+
+mkDerivation rec {
+  pname = "chewing-editor";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "chewing";
+    repo = "${pname}";
+    rev = "${version}";
+    sha256 = "0kc2hjx1gplm3s3p1r5sn0cyxw3k1q4gyv08q9r6rs4sg7xh2w7w";
+  };
+
+  doCheck = true;
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+  buildInputs = [ libchewing qtbase qttools ];
+
+  meta = with stdenv.lib; {
+    description = "Cross platform chewing user phrase editor";
+    longDescription = ''
+      chewing-editor is a cross platform chewing user phrase editor. It provides a easy way to manage user phrase. With it, user can customize their user phrase to increase input performance.
+    '';
+    homepage = "https://github.com/chewing/chewing-editor";
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.ShamrockLee ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/cipher/default.nix b/nixpkgs/pkgs/applications/misc/cipher/default.nix
index eef05fe91d20..630519ff2bff 100644
--- a/nixpkgs/pkgs/applications/misc/cipher/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cipher/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , vala
@@ -48,7 +49,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix b/nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix
index 112341dcd4f0..57b3f906cabf 100644
--- a/nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cli-visualizer/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fftw, ncurses5, libpulseaudio, makeWrapper }:
+{ stdenv, fetchFromGitHub, cmake, fftw, ncurses5, libpulseaudio, makeWrapper }:
 
 stdenv.mkDerivation rec {
   version = "1.8";
@@ -15,13 +15,13 @@ stdenv.mkDerivation rec {
     sed '1i#include <cmath>' -i src/Transformer/SpectrumCircleTransformer.cpp
   '';
 
+  nativeBuildInputs = [ cmake ];
+
   buildInputs = [ fftw ncurses5 libpulseaudio makeWrapper ];
 
   buildFlags = [ "ENABLE_PULSE=1" ];
 
-  installPhase = ''
-    mkdir -p $out/bin
-    cp build/vis $out/bin/vis
+  postInstall = ''
     # See https://github.com/dpayne/cli-visualizer/issues/62#issuecomment-330738075
     wrapProgram $out/bin/vis --set TERM rxvt-256color
   '';
diff --git a/nixpkgs/pkgs/applications/misc/clight/clightd.nix b/nixpkgs/pkgs/applications/misc/clight/clightd.nix
index c5083f2379c6..c06d00ebb52e 100644
--- a/nixpkgs/pkgs/applications/misc/clight/clightd.nix
+++ b/nixpkgs/pkgs/applications/misc/clight/clightd.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "clightd";
-  version = "4.1";
+  version = "4.2";
 
   src = fetchFromGitHub {
     owner = "FedeDP";
     repo = "Clightd";
     rev = version;
-    sha256 = "0pqnn52nn22k49f5cw4jcr8vcbff28n56i8fizg1mmfshy8pn891";
+    sha256 = "07z1m1x7nnczd51sg7m2lb6rb2c37c8glsnbrlq44hx176sj9cmj";
   };
 
   # dbus-1.pc has datadir=/etc
diff --git a/nixpkgs/pkgs/applications/misc/clight/default.nix b/nixpkgs/pkgs/applications/misc/clight/default.nix
index ed8767419d4d..2502459af106 100644
--- a/nixpkgs/pkgs/applications/misc/clight/default.nix
+++ b/nixpkgs/pkgs/applications/misc/clight/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "clight";
-  version = "4.0";
+  version = "4.1";
 
   src = fetchFromGitHub {
     owner = "FedeDP";
     repo = "Clight";
     rev = version;
-    sha256 = "101fp9kwmfmfffpdvv41wf96kdjw0b16xk49g43w32a5wlr74zrq";
+    sha256 = "1j7va217g1k8lxl3lly13js8myf0shjc6knalq8q6lakc6j1mkxx";
   };
 
   # bash-completion.pc completionsdir=${bash-completion.out}
diff --git a/nixpkgs/pkgs/applications/misc/clipmenu/default.nix b/nixpkgs/pkgs/applications/misc/clipmenu/default.nix
index 4bc56f0c4526..54c2ab48f656 100644
--- a/nixpkgs/pkgs/applications/misc/clipmenu/default.nix
+++ b/nixpkgs/pkgs/applications/misc/clipmenu/default.nix
@@ -1,24 +1,30 @@
-{ clipnotify, makeWrapper, xsel, dmenu, utillinux, gawk, stdenv, fetchFromGitHub, lib }:
+{ clipnotify, makeWrapper, xsel, dmenu, utillinux, gawk, stdenv, fetchFromGitHub, fetchpatch, lib }:
 let
   runtimePath = lib.makeBinPath [ clipnotify xsel dmenu utillinux gawk ];
 in
 stdenv.mkDerivation rec {
   pname = "clipmenu";
-  version = "6.0.1";
+  version = "6.1.0";
 
   src = fetchFromGitHub {
     owner  = "cdown";
     repo   = "clipmenu";
     rev    = version;
-    sha256 = "0053j4i14lz5m2bzc5sch5id5ilr1bl196mp8fp0q8x74w3vavs9";
+    sha256 = "0ddj5xcwrdb2qvrndvhv8j6swcqc8dvv5i00pqk35rfk5mrl4hwv";
   };
-
+  
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/cdown/clipmenu/commit/443b58583ef216e2405e4a38d401f7c36386d21e.patch";
+      sha256 = "12m4rpw7jbr31c919llbsmn8dcf7yh9aijln4iym6h2lylzqzzdz";
+    })
+  ];
+  
+  makeFlags = [ "PREFIX=$(out)" ];
   buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ xsel clipnotify ];
 
   installPhase = ''
-    mkdir -p $out/bin
-    cp clipdel clipmenu clipmenud $out/bin
-
     for bin in $out/bin/*; do
       wrapProgram "$bin" --prefix PATH : "${runtimePath}"
     done
diff --git a/nixpkgs/pkgs/applications/misc/cointop/default.nix b/nixpkgs/pkgs/applications/misc/cointop/default.nix
index 8d91531dd1f8..a74a3962996b 100644
--- a/nixpkgs/pkgs/applications/misc/cointop/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cointop/default.nix
@@ -2,17 +2,19 @@
 
 buildGoPackage rec {
   pname = "cointop";
-  version = "1.4.6";
+  version = "1.5.4";
 
   src = fetchFromGitHub {
     owner = "miguelmota";
     repo = pname;
-    rev = version;
-    sha256 = "1mkb97x73vzxnbvhnxx3msicr1z0b3sjmydx257ax3nscrmf1l5z";
+    rev = "v${version}";
+    sha256 = "1gkrwh5g69mywlllszy310xpahr8rz8nghjjpiamd85djf1iz43b";
   };
 
   goPackagePath = "github.com/miguelmota/cointop";
 
+  buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/cointop.version=${version}" ];
+
   meta = with lib; {
     description = "The fastest and most interactive terminal based UI application for tracking cryptocurrencies";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/misc/coolreader/default.nix b/nixpkgs/pkgs/applications/misc/coolreader/default.nix
new file mode 100644
index 000000000000..c3efed72cb0e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/coolreader/default.nix
@@ -0,0 +1,26 @@
+{ mkDerivation, fetchFromGitHub, cmake, pkg-config, lib,
+  qttools, fribidi, libunibreak }:
+
+mkDerivation rec {
+  pname = "coolreader";
+  version = "3.2.45";
+
+  src = fetchFromGitHub {
+    owner = "buggins";
+    repo = pname;
+    rev = "cr${version}";
+    sha256 = "0nkk4d0j04yjwanjszq8h8hvx87rnwax2k6akm4bpjxwpcs4icws";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [ qttools fribidi libunibreak ];
+
+  meta = with lib; {
+    homepage = "https://github.com/buggins/coolreader";
+    description = "Cross platform open source e-book reader";
+    license = licenses.gpl2Plus; # see https://github.com/buggins/coolreader/issues/80
+    maintainers = with maintainers; [ gebner ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/copyq/default.nix b/nixpkgs/pkgs/applications/misc/copyq/default.nix
index fb177e8278f4..7cf89a74e100 100644
--- a/nixpkgs/pkgs/applications/misc/copyq/default.nix
+++ b/nixpkgs/pkgs/applications/misc/copyq/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "CopyQ";
-  version = "3.11.1";
+  version = "3.12.0";
 
   src  = fetchFromGitHub {
     owner = "hluk";
     repo = "CopyQ";
     rev = "v${version}";
-    sha256 = "1xxf8d220pa77195d9f3l3scvvyqsh1pvlrbw4cq6ydj9qbp5kf0";
+    sha256 = "04jidibf0b80c5vd659pz2wibmggjyyj9yz2bw7j4g84hwraksxb";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/misc/cura/default.nix b/nixpkgs/pkgs/applications/misc/cura/default.nix
index 1b5c7c23956e..c0aa0a481bdc 100644
--- a/nixpkgs/pkgs/applications/misc/cura/default.nix
+++ b/nixpkgs/pkgs/applications/misc/cura/default.nix
@@ -2,20 +2,20 @@
 
 mkDerivation rec {
   pname = "cura";
-  version = "4.6.1";
+  version = "4.7.1";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "Cura";
     rev = version;
-    sha256 = "0h1r9caa579d3gfpcmch54rdbkg5df64ds2v84iqsbxwjp0rmn4n";
+    sha256 = "19an168iad3cb5w8i71c0wbr79qnz5qnpxqx1j6dgh64qz6ffn2r";
   };
 
   materials = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "fdm_materials";
     rev = version;
-    sha256 = "1k5c3qmixhpz3z2yi0fysxcyyf1yhcwmdlrcypkw827lhsialqp4";
+    sha256 = "1w6i0dlff8b30q987x3y0zv8847fc8ppfcr9vi982msmv284c89z";
   };
 
   buildInputs = [ qtbase qtquickcontrols2 qtgraphicaleffects ];
diff --git a/nixpkgs/pkgs/applications/misc/cura/plugins.nix b/nixpkgs/pkgs/applications/misc/cura/plugins.nix
index 9fbe647046c0..9082feb38a7a 100644
--- a/nixpkgs/pkgs/applications/misc/cura/plugins.nix
+++ b/nixpkgs/pkgs/applications/misc/cura/plugins.nix
@@ -6,13 +6,13 @@ let
 
     octoprint = stdenv.mkDerivation rec {
       pname = "Cura-OctoPrintPlugin";
-      version = "3.5.12";
+      version = "3.5.16";
 
       src = fetchFromGitHub {
         owner = "fieldOfView";
         repo = pname;
-        rev = "ad522c0b7ead5fbe28da686a3cc75e351274c2bc";
-        sha256 = "0ln11ng32bh0smfsk54mv2j3sadh0gwf031nmm95zrvbj9cr6yc0";
+        rev = "8affa8aa9796cb37129d3b7222fff03f86c936cd";
+        sha256 = "0l4qfcashkdmpdm8nm3klz6hmi1f0bmbpb9b1yn4mvg0fam6c5xi";
       };
 
       propagatedBuildInputs = with python3Packages; [
diff --git a/nixpkgs/pkgs/applications/misc/curaengine/default.nix b/nixpkgs/pkgs/applications/misc/curaengine/default.nix
index 0a4ec62ca786..5cc5db3115fb 100644
--- a/nixpkgs/pkgs/applications/misc/curaengine/default.nix
+++ b/nixpkgs/pkgs/applications/misc/curaengine/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "curaengine";
-  version = "4.6.1";
+  version = "4.7.1";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "CuraEngine";
     rev = version;
-    sha256 = "1fr151hmdg2lhk9pbpan1hb1pafj784nijr4pz646ljmjh12vfk2";
+    sha256 = "177fk6j4gn3ssi8j1qxj8p4486f7jkz328vc75agxnh7vhd4mwsm";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/misc/dbeaver/default.nix b/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
index 3b55a1506370..3d7d7bb40af1 100644
--- a/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dbeaver/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "dbeaver-ce";
-  version = "7.1.0";
+  version = "7.2.1";
 
   desktopItem = makeDesktopItem {
     name = "dbeaver";
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     desktopName = "dbeaver";
     comment = "SQL Integrated Development Environment";
     genericName = "SQL Integrated Development Environment";
-    categories = "Application;Development;";
+    categories = "Development;";
   };
 
   buildInputs = [
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz";
-    sha256 = "1q3f5bghm3jw5c7c62ivf32fldjqhmj1a0qlwgqjxyhmfcig0rnb";
+    sha256 = "0vdwbgff55aq5l67fczdvw7kn7kf0dsz183x5lz2v1sb2blsjvjj";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/misc/ddcui/default.nix b/nixpkgs/pkgs/applications/misc/ddcui/default.nix
new file mode 100644
index 000000000000..1ec288c678a2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/ddcui/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, pkg-config
+, qtbase
+, qttools
+, ddcutil
+}:
+
+mkDerivation rec {
+  pname = "ddcui";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "rockowitz";
+    repo = "ddcui";
+    rev = "v${version}";
+    sha256 = "0myma1zw6dlygv3xbin662d91zcnwss10syf12q2fppkrd8qdgqf";
+  };
+
+  nativeBuildInputs = [
+    # Using cmake instead of the also-supported qmake because ddcui's qmake
+    # file is not currently written to support PREFIX installations.
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    qtbase
+    qttools
+    ddcutil
+  ];
+
+  meta = with lib; {
+    description = "Graphical user interface for ddcutil - control monitor settings";
+    homepage = "https://www.ddcutil.com/ddcui_main/";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ nh2 ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/ddgr/default.nix b/nixpkgs/pkgs/applications/misc/ddgr/default.nix
index 82730842baca..1cac8811103d 100644
--- a/nixpkgs/pkgs/applications/misc/ddgr/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ddgr/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, python3, installShellFiles }:
 
 stdenv.mkDerivation rec {
-  version = "1.8.1";
+  version = "1.9";
   pname = "ddgr";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = "ddgr";
     rev = "v${version}";
-    sha256 = "0668wzh1gqin0xscy3fly9hz370n2ny175f3kya9bsld0x0jkd5p";
+    sha256 = "0qbdq7k0mmvkjp6qzz88n7vf29liqn6y5w4y39ldqdc8hzw5sld7";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/nixpkgs/pkgs/applications/misc/direwolf/default.nix b/nixpkgs/pkgs/applications/misc/direwolf/default.nix
deleted file mode 100644
index 623e6dc0fbef..000000000000
--- a/nixpkgs/pkgs/applications/misc/direwolf/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ stdenv, fetchFromGitHub
-, espeak, alsaLib, perl
-, python }:
-
-with stdenv.lib;
-
-stdenv.mkDerivation rec {
-  pname = "direwolf";
-  version = "1.4";
-
-  src = fetchFromGitHub {
-    owner = "wb2osz";
-    repo = "direwolf";
-    rev = version;
-    sha256 = "033sffjs2dz48077hc58jr4lxxs8md1fyfh4lig6ib7pyigiv1y0";
-  };
-
-  buildInputs = [
-    espeak perl python
-  ] ++ (optional stdenv.isLinux alsaLib);
-
-  postPatch = ''
-    for i in Makefile.*; do
-      substituteInPlace "$i" \
-        --replace /usr/share $out/share
-    done
-
-    substituteInPlace dwespeak.sh \
-      --replace espeak ${espeak}/bin/espeak
-  '';
-
-  preInstall = ''
-    mkdir -p $out/bin
-  '';
-  installFlags = [ "INSTALLDIR=$(out)" ];
-
-  meta = {
-    description = "A Soundcard Packet TNC, APRS Digipeater, IGate, APRStt gateway";
-    homepage = "https://github.com/wb2osz/direwolf/";
-    license = licenses.gpl2;
-    platforms = platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/misc/dmenu/wayland.nix b/nixpkgs/pkgs/applications/misc/dmenu/wayland.nix
index ca2e6f56e841..250a7567d782 100644
--- a/nixpkgs/pkgs/applications/misc/dmenu/wayland.nix
+++ b/nixpkgs/pkgs/applications/misc/dmenu/wayland.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dmenu-wayland-unstable";
-  version = "2020-04-03";
+  version = "2020-07-06";
 
   src = fetchFromGitHub {
     owner = "nyyManni";
     repo = "dmenu-wayland";
-    rev = "550a7c39f3f925b803d51c616609c8cb6c0ea543";
-    sha256 = "0az3w1csn4x6mjyacg6lf70kykdfqamic3hbr57mj83i5jjv0jlv";
+    rev = "304c8e917651ee02b16ebf0b7097a5c53fa2236b";
+    sha256 = "0rkpmpk7xkcfbnv9vpg8n65423z5xpgp0hm2vg0rxf9354bjin7k";
   };
 
   outputs = [ "out" "man" ];
diff --git a/nixpkgs/pkgs/applications/misc/dstask/default.nix b/nixpkgs/pkgs/applications/misc/dstask/default.nix
index fae7809d25a2..d5c02f695521 100644
--- a/nixpkgs/pkgs/applications/misc/dstask/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dstask/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "dstask";
-  version = "0.18";
+  version = "0.21";
 
   src = fetchFromGitHub {
     owner = "naggie";
     repo = pname;
     rev = "v${version}";
-    sha256 = "16z5zlfj955pzsj0l58835slvpchdaq2vbyx2fjzi6y9xn1z2nd1";
+    sha256 = "0af85rs4s0wfnibdhn28qycvy90aafkczccs5vyh36y7cnyhvgkl";
   };
 
   # Set vendorSha256 to null because dstask vendors its dependencies (meaning
@@ -18,6 +18,8 @@ buildGoModule rec {
   # and <https://github.com/NixOS/nixpkgs/blob/d4226e3a4b5fcf988027147164e86665d382bbfa/pkgs/development/go-modules/generic/default.nix#L18>
   vendorSha256 = null;
 
+  doCheck = false;
+
   # The ldflags reduce the executable size by stripping some debug stuff.
   # The other variables are set so that the output of dstask version shows the
   # git ref and the release version from github.
diff --git a/nixpkgs/pkgs/applications/misc/dunst/default.nix b/nixpkgs/pkgs/applications/misc/dunst/default.nix
index 7da2ae421d7a..a906669e7c6b 100644
--- a/nixpkgs/pkgs/applications/misc/dunst/default.nix
+++ b/nixpkgs/pkgs/applications/misc/dunst/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dunst";
-  version = "1.4.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "dunst-project";
     repo = "dunst";
     rev = "v${version}";
-    sha256 = "0xjj1f2jr1ja5grj6wrx5jjz1sx5fpqnvkw7nqi4452j3nc4p4l2";
+    sha256 = "0irwkqcgwkqaylcpvqgh25gn2ysbdm2kydipxfzcq1ddj9ns6f9c";
   };
 
   nativeBuildInputs = [ perl pkgconfig which systemd makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/misc/effitask/cargo-lock.patch b/nixpkgs/pkgs/applications/misc/effitask/cargo-lock.patch
new file mode 100644
index 000000000000..4f56b82368fa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/effitask/cargo-lock.patch
@@ -0,0 +1,1091 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..55e4495
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,1085 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "aho-corasick"
++version = "0.7.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "arrayvec"
++version = "0.4.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "atk"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "atk-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "autocfg"
++version = "1.0.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "backtrace"
++version = "0.3.41"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "backtrace-sys 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "backtrace-sys"
++version = "0.1.35"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cairo-rs"
++version = "0.7.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "cairo-sys-rs"
++version = "0.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "cc"
++version = "1.0.50"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cfg-if"
++version = "0.1.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "chrono"
++version = "0.4.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "effitask"
++version = "0.1.0"
++dependencies = [
++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "human-panic 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "notify 4.0.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pulldown-cmark 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "relm 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "relm-attributes 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "relm-derive 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "todo-txt 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "filetime"
++version = "0.2.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "fragile"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "fsevent"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "fsevent-sys"
++version = "2.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "fuchsia-zircon"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "fuchsia-zircon-sys"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "gdk"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gdk-pixbuf"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gdk-pixbuf-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gdk-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "getopts"
++version = "0.2.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "getrandom"
++version = "0.1.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gio"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gio-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "glib"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "glib-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gobject-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gtk"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "gtk-sys"
++version = "0.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "human-panic"
++version = "1.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "backtrace 0.3.41 (registry+https://github.com/rust-lang/crates.io-index)",
++ "os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
++ "termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "uuid 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "inotify"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "inotify-sys"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "iovec"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "kernel32-sys"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "lazycell"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "lexical-core"
++version = "0.6.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "libc"
++version = "0.2.68"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "log"
++version = "0.4.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "memchr"
++version = "2.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "mio"
++version = "0.6.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "mio-extras"
++version = "2.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "miow"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "net2"
++version = "0.2.33"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "nodrop"
++version = "0.1.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "nom"
++version = "5.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lexical-core 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "notify"
++version = "4.0.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "filetime 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fsevent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "inotify 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-integer"
++version = "0.1.42"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "num-traits"
++version = "0.2.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "os_type"
++version = "2.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "pango"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "pango-sys"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "pkg-config"
++version = "0.3.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "ppv-lite86"
++version = "0.2.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "proc-macro2"
++version = "0.4.30"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "pulldown-cmark"
++version = "0.6.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "quote"
++version = "0.6.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand"
++version = "0.7.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand_hc"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "redox_syscall"
++version = "0.1.56"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "regex"
++version = "1.3.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.6.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "relm"
++version = "0.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "relm-attributes"
++version = "0.16.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "relm-gen-widget 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "relm-derive"
++version = "0.18.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "relm-gen-widget"
++version = "0.16.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rustc-demangle"
++version = "0.1.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "rustc_version"
++version = "0.2.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "ryu"
++version = "1.0.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "same-file"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "semver"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "semver-parser"
++version = "0.7.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "serde"
++version = "1.0.106"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "serde_derive"
++version = "1.0.106"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "slab"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "static_assertions"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "syn"
++version = "0.15.44"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "syn"
++version = "1.0.17"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "termcolor"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "thread_local"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "time"
++version = "0.1.42"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "todo-txt"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "toml"
++version = "0.5.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "unicase"
++version = "2.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "unicode-width"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "unicode-xid"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "unicode-xid"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "uuid"
++version = "0.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "version_check"
++version = "0.9.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "walkdir"
++version = "2.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "wasi"
++version = "0.9.0+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winapi"
++version = "0.2.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winapi"
++version = "0.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "winapi-build"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "winapi-util"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "ws2_32-sys"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "xdg"
++version = "2.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[metadata]
++"checksum aho-corasick 0.7.10 (registry+https://github.com/rust-lang/crates.io-index)" = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
++"checksum arrayvec 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "cd9fd44efafa8690358b7408d253adf110036b88f55672a933f01d616ad9b1b9"
++"checksum atk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "86b7499272acf036bb5820c6e346bbfb5acc5dceb104bc2c4fd7e6e33dfcde6a"
++"checksum atk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e552c1776737a4c80110d06b36d099f47c727335f9aaa5d942a72b6863a8ec6f"
++"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
++"checksum backtrace 0.3.41 (registry+https://github.com/rust-lang/crates.io-index)" = "a4ed64ae6d9ebfd9893193c4b2532b1292ec97bd8271c9d7d0fa90cd78a34cba"
++"checksum backtrace-sys 0.1.35 (registry+https://github.com/rust-lang/crates.io-index)" = "7de8aba10a69c8e8d7622c5710229485ec32e9d55fdad160ea559c086fdcd118"
++"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++"checksum cairo-rs 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e05db47de3b0f09a222fa4bba2eab957d920d4243962a86b2d77ab401e4a359c"
++"checksum cairo-sys-rs 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ff65ba02cac715be836f63429ab00a767d48336efc5497c5637afb53b4f14d63"
++"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
++"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
++"checksum chrono 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2"
++"checksum filetime 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "f59efc38004c988e4201d11d263b8171f49a2e7ec0bdbb71773433f271504a5e"
++"checksum fragile 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05f8140122fa0d5dcb9fc8627cfce2b37cc1500f752636d46ea28bc26785c2f9"
++"checksum fsevent 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6"
++"checksum fsevent-sys 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0"
++"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
++"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
++"checksum gdk 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6243e995f41f3a61a31847e54cc719edce93dd9140c89dca3b9919be1cfe22d5"
++"checksum gdk-pixbuf 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9726408ee1bbada83094326a99b9c68fea275f9dbb515de242a69e72051f4fcc"
++"checksum gdk-pixbuf-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d8991b060a9e9161bafd09bf4a202e6fd404f5b4dd1a08d53a1e84256fb34ab0"
++"checksum gdk-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "6adf679e91d1bff0c06860287f80403e7db54c2d2424dce0a470023b56c88fbb"
++"checksum getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
++"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
++"checksum gio 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6261b5d34c30c2d59f879e643704cf54cb44731f3a2038000b68790c03e360e3"
++"checksum gio-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4fad225242b9eae7ec8a063bb86974aca56885014672375e5775dc0ea3533911"
++"checksum glib 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "be27232841baa43e0fd5ae003f7941925735b2f733a336dc75f07b9eff415e7b"
++"checksum glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2"
++"checksum gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9"
++"checksum gtk 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "709f1074259d4685b96133f92b75c7f35b504715b0fcdc96ec95de2607296a60"
++"checksum gtk-sys 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53def660c7b48b00b510c81ef2d2fbd3c570f1527081d8d7947f471513e1a4c1"
++"checksum human-panic 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "39f357a500abcbd7c5f967c1d45c8838585b36743823b9d43488f24850534e36"
++"checksum inotify 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24e40d6fd5d64e2082e0c796495c8ef5ad667a96d03e5aaa0becfd9d47bcbfb8"
++"checksum inotify-sys 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0"
++"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
++"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
++"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f"
++"checksum lexical-core 0.6.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f86d66d380c9c5a685aaac7a11818bdfa1f733198dfd9ec09c70b762cd12ad6f"
++"checksum libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)" = "dea0c0405123bba743ee3f91f49b1c7cfb684eef0da0a50110f758ccf24cdff0"
++"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
++"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
++"checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f"
++"checksum mio-extras 2.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19"
++"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
++"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
++"checksum nodrop 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "72ef4a56884ca558e5ddb05a1d1e7e1bfd9a68d9ed024c21704cc98872dae1bb"
++"checksum nom 5.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6"
++"checksum notify 4.0.15 (registry+https://github.com/rust-lang/crates.io-index)" = "80ae4a7688d1fab81c5bf19c64fc8db920be8d519ce6336ed4e7efe024724dbd"
++"checksum num-integer 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba"
++"checksum num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096"
++"checksum os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7edc011af0ae98b7f88cf7e4a83b70a54a75d2b8cb013d6efd02e5956207e9eb"
++"checksum pango 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "393fa071b144f8ffb83ede273758983cf414ca3c0b1d2a5a9ce325b3ba3dd786"
++"checksum pango-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "86b93d84907b3cf0819bff8f13598ba72843bee579d5ebc2502e4b0367b4be7d"
++"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
++"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
++"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
++"checksum proc-macro2 1.0.10 (registry+https://github.com/rust-lang/crates.io-index)" = "df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3"
++"checksum pulldown-cmark 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1c205cc82214f3594e2d50686730314f817c67ffa80fe800cf0db78c3c2b9d9e"
++"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
++"checksum quote 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f"
++"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
++"checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
++"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
++"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
++"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
++"checksum regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7f6946991529684867e47d86474e3a6d0c0ab9b82d5821e314b1ede31fa3a4b3"
++"checksum regex-syntax 0.6.17 (registry+https://github.com/rust-lang/crates.io-index)" = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae"
++"checksum relm 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4127341a75eb96dc99ba39b87a2783bb011b20fbdbafc25ed2f58216d2ff714"
++"checksum relm-attributes 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4a8db24611fee7bb021f3aad7c4eaaba6d360947860b78b933a4d3ef86079b7f"
++"checksum relm-derive 0.18.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ec66397054dc1ea6c658159866b9978add6a90655aba5dd4a90c34d2e63f9d69"
++"checksum relm-gen-widget 0.16.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49ad47b054bdc12c90fb6b37c81ef785ee2a4a8a92c4e150b18325052766fbb0"
++"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
++"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
++"checksum ryu 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "535622e6be132bccd223f4bb2b8ac8d53cda3c7a6394944d3b2b33fb974f9d76"
++"checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
++"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
++"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
++"checksum serde 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)" = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399"
++"checksum serde_derive 1.0.106 (registry+https://github.com/rust-lang/crates.io-index)" = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c"
++"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
++"checksum static_assertions 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7f3eb36b47e512f8f1c9e3d10c2c1965bc992bd9cdb024fa581e2194501c83d3"
++"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
++"checksum syn 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)" = "0df0eb663f387145cab623dea85b09c2c5b4b0aef44e945d928e682fce71bb03"
++"checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
++"checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
++"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
++"checksum todo-txt 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0d77aa2f90bd72b990bb2b8de52289b7a34f51cf035627df5e3ce361b321b417"
++"checksum toml 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
++"checksum unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
++"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
++"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
++"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
++"checksum uuid 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9fde2f6a4bea1d6e007c4ad38c6839fa71cbb63b6dbf5b595aa38dc9b1093c11"
++"checksum version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce"
++"checksum walkdir 2.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
++"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
++"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
++"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
++"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
++"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++"checksum winapi-util 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "fa515c5163a99cc82bab70fd3bfdd36d827be85de63737b40fcef2ce084a436e"
++"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
++"checksum xdg 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d089681aa106a86fade1b0128fb5daf07d5867a509ab036d99988dec80429a57"
diff --git a/nixpkgs/pkgs/applications/misc/effitask/default.nix b/nixpkgs/pkgs/applications/misc/effitask/default.nix
new file mode 100644
index 000000000000..f8adc7f61f6c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/effitask/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, openssl
+, gtk3
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "effitask";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "sanpii";
+    repo = "${pname}";
+    rev = "${version}";
+    sha256 = "09bffxdp43s8b1rpmsgqr2kyz3i4jbd2yrwbxw21fj3sf3mwb9ig";
+  };
+
+  # workaround for missing Cargo.lock file https://github.com/sanpii/effitask/issues/48
+  cargoPatches = [ ./cargo-lock.patch ];
+
+  cargoSha256 = "0dvmp23kny6rlv6c0mfyy3cmz1bi5wcm1mxps4z67lym5kxfd362";
+
+  buildInputs = [ openssl gtk3 ];
+
+  nativeBuildInputs = [ pkg-config ];
+
+  # default installPhase don't install assets
+  installPhase = ''
+    runHook preInstall
+    make install PREFIX="$out"
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Graphical task manager, based on the todo.txt format";
+    longDescription = ''
+      To use it as todo.sh add-on, create a symlink like this:
+      mkdir ~/.todo.actions.d/
+      ln -s $(which effitask) ~/.todo.actions.d/et
+
+      Or use it as standalone program by defining some environment variables
+      like described in the projects readme.
+    '';
+    homepage = "https://github.com/sanpii/effitask";
+    maintainers = with maintainers; [ davidak ];
+    license = with licenses; [ mit ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/electron-cash/default.nix b/nixpkgs/pkgs/applications/misc/electron-cash/default.nix
index 1616c082c017..a6ba3444dcdb 100644
--- a/nixpkgs/pkgs/applications/misc/electron-cash/default.nix
+++ b/nixpkgs/pkgs/applications/misc/electron-cash/default.nix
@@ -1,14 +1,15 @@
-{ lib, fetchFromGitHub, python3Packages, qtbase, wrapQtAppsHook, secp256k1 }:
+{ lib, fetchFromGitHub, python3Packages, qtbase, fetchpatch, wrapQtAppsHook
+, secp256k1 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "electron-cash";
-  version = "4.0.14";
+  version = "4.1.0";
 
   src = fetchFromGitHub {
     owner = "Electron-Cash";
     repo = "Electron-Cash";
     rev = version;
-    sha256 = "1dp7cj1185h6xfz6jzh0iq58zvg3wq9hl96bkgxkf5h4ygni2vm6";
+    sha256 = "1ccfm6kkmbkvykfdzrisxvr0lx9kgq4l43ixk6v3xnvhnbfwz4s2";
   };
 
   propagatedBuildInputs = with python3Packages; [
@@ -35,6 +36,15 @@ python3Packages.buildPythonApplication rec {
 
   nativeBuildInputs = [ wrapQtAppsHook ];
 
+  patches = [
+    # Patch a failed test, this can be removed in next version
+    (fetchpatch {
+      url =
+        "https://github.com/Electron-Cash/Electron-Cash/commit/1a9122d59be0c351b14c174a60880c2e927e6168.patch";
+      sha256 = "0zw629ypn9jxb1y124s3dkbbf2q3wj1i97j16lzdxpjy3sk0p5hk";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace contrib/requirements/requirements.txt \
       --replace "qdarkstyle==2.6.8" "qdarkstyle<3"
@@ -43,9 +53,7 @@ python3Packages.buildPythonApplication rec {
       --replace "(share_dir" "(\"share\""
   '';
 
-  checkInputs = with python3Packages; [
-    pytest
-  ];
+  checkInputs = with python3Packages; [ pytest ];
 
   checkPhase = ''
     unset HOME
diff --git a/nixpkgs/pkgs/applications/misc/electrum/default.nix b/nixpkgs/pkgs/applications/misc/electrum/default.nix
index d1011548b2a6..ad26a912e781 100644
--- a/nixpkgs/pkgs/applications/misc/electrum/default.nix
+++ b/nixpkgs/pkgs/applications/misc/electrum/default.nix
@@ -1,7 +1,11 @@
-{ stdenv, fetchurl, fetchFromGitHub, wrapQtAppsHook, python3, python3Packages, zbar, secp256k1
-, enableQt ? !stdenv.isDarwin
-
-
+{ stdenv
+, fetchurl
+, fetchFromGitHub
+, wrapQtAppsHook
+, python3
+, zbar
+, secp256k1
+, enableQt ? true
 # for updater.nix
 , writeScript
 , common-updater-scripts
@@ -15,7 +19,15 @@
 }:
 
 let
-  version = "3.3.8";
+  version = "4.0.3";
+
+  # electrum is not compatible with dnspython 2.0.0 yet
+  # use the latest 1.x release instead
+  py = python3.override {
+    packageOverrides = self: super: {
+      dnspython = super.dnspython_1;
+    };
+  };
 
   libsecp256k1_name =
     if stdenv.isLinux then "libsecp256k1.so.0"
@@ -31,7 +43,7 @@ let
     owner = "spesmilo";
     repo = "electrum";
     rev = version;
-    sha256 = "1di8ba77kgapcys0d7h5nx1qqakv3s60c6sp8skw8p69ramsl73c";
+    sha256 = "1r40i0v7nm35m3pzbd0l5z4qphl13s31l9v5njmyvpfjirdmhjbv";
 
     extraPostFetch = ''
       mv $out ./all
@@ -40,13 +52,13 @@ let
   };
 in
 
-python3Packages.buildPythonApplication {
+py.pkgs.buildPythonApplication {
   pname = "electrum";
   inherit version;
 
   src = fetchurl {
     url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz";
-    sha256 = "1g00cj1pmckd4xis8r032wmraiv3vd3zc803hnyxa2bnhj8z3bg2";
+    sha256 = "0q891fgzxvyzjxfczynx92hvclfs8i3nr5nr9sgbvz13hsg4s6lg";
   };
 
   postUnpack = ''
@@ -56,31 +68,28 @@ python3Packages.buildPythonApplication {
 
   nativeBuildInputs = stdenv.lib.optionals enableQt [ wrapQtAppsHook ];
 
-  propagatedBuildInputs = with python3Packages; [
-    aiorpcx
+  propagatedBuildInputs = with py.pkgs; [
     aiohttp
     aiohttp-socks
+    aiorpcx
+    attrs
+    bitstring
     dnspython
     ecdsa
     jsonrpclib-pelix
     matplotlib
     pbkdf2
     protobuf
-    pyaes
     pycryptodomex
     pysocks
     qrcode
     requests
     tlslite-ng
-
     # plugins
     ckcc-protocol
     keepkey
     trezor
     btchip
-
-    # TODO plugins
-    # amodem
   ] ++ stdenv.lib.optionals enableQt [ pyqt5 qdarkstyle ];
 
   preBuild = ''
@@ -90,7 +99,6 @@ python3Packages.buildPythonApplication {
   '' + (if enableQt then ''
     substituteInPlace ./electrum/qrscanner.py \
       --replace ${libzbar_name} ${zbar.lib}/lib/libzbar${stdenv.hostPlatform.extensions.sharedLibrary}
-    sed -i 's/qdarkstyle<2.7/qdarkstyle<3.0/' contrib/requirements/requirements.txt
   '' else ''
     sed -i '/qdarkstyle/d' contrib/requirements/requirements.txt
   '');
@@ -113,7 +121,7 @@ python3Packages.buildPythonApplication {
     wrapQtApp $out/bin/electrum
   '';
 
-  checkInputs = with python3Packages; [ pytest ];
+  checkInputs = with py.pkgs; [ pytest ];
 
   checkPhase = ''
     py.test electrum/tests
diff --git a/nixpkgs/pkgs/applications/misc/electrum/ltc.nix b/nixpkgs/pkgs/applications/misc/electrum/ltc.nix
index b7c655caaaf4..4bcb66f48b92 100644
--- a/nixpkgs/pkgs/applications/misc/electrum/ltc.nix
+++ b/nixpkgs/pkgs/applications/misc/electrum/ltc.nix
@@ -1,6 +1,7 @@
 { stdenv
 , fetchurl
 , python3Packages
+, wrapQtAppsHook
 }:
 
 python3Packages.buildPythonApplication rec {
@@ -12,7 +13,7 @@ python3Packages.buildPythonApplication rec {
     sha256 = "0kxcx1xf6h9z8x0k483d6ykpnmfr30n6z3r6lgqxvbl42pq75li7";
   };
 
-  nativeBuildInputs = with python3Packages; [ pyqt5 ];
+  nativeBuildInputs = with python3Packages; [ pyqt5 wrapQtAppsHook ];
 
   propagatedBuildInputs = with python3Packages; [
     pyaes
@@ -35,6 +36,10 @@ python3Packages.buildPythonApplication rec {
     sed -i '/Created: .*/d' gui/qt/icons_rc.py
   '';
 
+  postFixup = ''
+    wrapQtApp $out/bin/electrum-ltc
+  '';
+
   checkPhase = ''
     $out/bin/electrum-ltc help >/dev/null
   '';
@@ -54,4 +59,3 @@ python3Packages.buildPythonApplication rec {
     maintainers = with maintainers; [ ];
   };
 }
-
diff --git a/nixpkgs/pkgs/applications/misc/et/default.nix b/nixpkgs/pkgs/applications/misc/et/default.nix
index 2cf8813aac40..9ab3fda96dc2 100644
--- a/nixpkgs/pkgs/applications/misc/et/default.nix
+++ b/nixpkgs/pkgs/applications/misc/et/default.nix
@@ -5,7 +5,7 @@ stdenv.mkDerivation rec {
   version = "0.1.2";
 
   src = fetchFromGitHub {
-    owner = "geistesk";
+    owner = "oxzi";
     repo = "et";
     rev = version;
     sha256 = "0i0lgmnly8n7y4y6pb10pxgxyz8s5zk26k8z1g1578v1wan01lnq";
@@ -22,9 +22,9 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Minimal libnotify-based (egg) timer";
-    homepage = "https://github.com/geistesk/et";
+    homepage = "https://github.com/oxzi/et";
     license = licenses.gpl3;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/etesync-dav/default.nix b/nixpkgs/pkgs/applications/misc/etesync-dav/default.nix
index d4e015f31d72..5e3a85c3b93f 100644
--- a/nixpkgs/pkgs/applications/misc/etesync-dav/default.nix
+++ b/nixpkgs/pkgs/applications/misc/etesync-dav/default.nix
@@ -1,19 +1,23 @@
-{ lib, python3Packages, radicale2 }:
+{ lib, python3Packages, radicale3 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "etesync-dav";
-  version = "0.17.0";
+  version = "0.20.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0lyjv8rknwbx5b5nvq5bgw26lhkymib4cvmv3s3469mrnn2c0ksp";
+    sha256 = "1q8h89hqi4kxphn1g5nbcia0haz5k57is9rycwaabm55mj9s9fah";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py --replace "Radicale==" "Radicale>="
+  '';
+
   propagatedBuildInputs = with python3Packages; [
     etesync
     flask
     flask_wtf
-    radicale2
+    radicale3
   ];
 
   checkInputs = with python3Packages; [
diff --git a/nixpkgs/pkgs/applications/misc/exercism/default.nix b/nixpkgs/pkgs/applications/misc/exercism/default.nix
index d983458a7ce1..87e59d4292fc 100644
--- a/nixpkgs/pkgs/applications/misc/exercism/default.nix
+++ b/nixpkgs/pkgs/applications/misc/exercism/default.nix
@@ -13,12 +13,14 @@ buildGoModule rec {
 
   vendorSha256 = "0b2m9xkac60k5rbxmb03cxf530m23av14pnsjk8067l998sm4vqi";
 
+  doCheck = false;
+
   subPackages = [ "./exercism" ];
 
   meta = with stdenv.lib; {
    inherit (src.meta) homepage;
    description = "A Go based command line tool for exercism.io";
    license     = licenses.mit;
-   maintainers = [ maintainers.rbasso ];
+   maintainers = [ maintainers.rbasso maintainers.nobbz ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/misc/fbmenugen/default.nix b/nixpkgs/pkgs/applications/misc/fbmenugen/default.nix
index fcf8191d3b70..bc40f2dad831 100644
--- a/nixpkgs/pkgs/applications/misc/fbmenugen/default.nix
+++ b/nixpkgs/pkgs/applications/misc/fbmenugen/default.nix
@@ -11,13 +11,13 @@
 
 perlPackages.buildPerlPackage rec {
   pname = "fbmenugen";
-  version = "2020-05-20";
+  version = "0.85";
 
   src = fetchFromGitHub {
     owner = "trizen";
     repo = pname;
-    rev = "ed9a680546edbb5b05086971b6a9f42a37cb485f";
-    sha256 = "1fikdl08a0s8d6k1ls1pzmw2rcwkfbbczsjfx6lr12ngd2bz222h";
+    rev = version;
+    sha256 = "1pmms3wzkm8h41a8zrkpn6gq9m9yy5wr5rrzmb84lbacprqq6q7q";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/misc/fetchmail/default.nix b/nixpkgs/pkgs/applications/misc/fetchmail/default.nix
index 00b858a32798..fab83b75e7c9 100644
--- a/nixpkgs/pkgs/applications/misc/fetchmail/default.nix
+++ b/nixpkgs/pkgs/applications/misc/fetchmail/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, openssl }:
 
 let
-  version = "6.4.6";
+  version = "6.4.12";
 in
 stdenv.mkDerivation {
   pname = "fetchmail";
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://sourceforge/fetchmail/fetchmail-${version}.tar.xz";
-    sha256 = "04b0sq1xad6gs1bfhkbmhsn1kq6y4gsx9l9ywjvd5d0rc15yrvqn";
+    sha256 = "11s83af63gs9nnrjb66yq58xriyvi8hzj4ykxp3kws5z3nby111b";
   };
 
   buildInputs = [ openssl ];
diff --git a/nixpkgs/pkgs/applications/misc/firestarter/default.nix b/nixpkgs/pkgs/applications/misc/firestarter/default.nix
index 05c535e62c0e..a03c87eb41b5 100644
--- a/nixpkgs/pkgs/applications/misc/firestarter/default.nix
+++ b/nixpkgs/pkgs/applications/misc/firestarter/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     owner = "tud-zih-energy";
     repo = "FIRESTARTER";
     rev = "v${version}";
-    sha256 = "161mg0h1hvp6bxfjdhyfqrljvphys896mfd36254rbgzxm38ibi7";
+    sha256 = "0zqfqb7hf48z39g1qhbl1iraf8rz4d629h1q6ikizckpzfq23kd0";
   };
 
   nativeBuildInputs = [ python3 ];
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
     homepage = "https://tu-dresden.de/zih/forschung/projekte/firestarter";
     description = "Processor Stress Test Utility";
     platforms = platforms.linux;
-    maintainers = with maintainers; [ astro ];
+    maintainers = with maintainers; [ astro marenz ];
     license = licenses.gpl3;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/font-manager/default.nix b/nixpkgs/pkgs/applications/misc/font-manager/default.nix
index 008e59eebee6..b2001c21bf76 100644
--- a/nixpkgs/pkgs/applications/misc/font-manager/default.nix
+++ b/nixpkgs/pkgs/applications/misc/font-manager/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "font-manager";
-  version = "0.7.7";
+  version = "0.7.8";
 
   src = fetchFromGitHub {
     owner = "FontManager";
     repo = "master";
     rev = version;
-    sha256 = "1bzqvspplp1zj0n0869jqbc60wgbjhf0vdrn5bj8dfawxynh8s5f";
+    sha256 = "0s1l30y55l45rrqd9lygvp2gzrqw25rmjgnnja6s5rzs79gc668c";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/misc/fontpreview/default.nix b/nixpkgs/pkgs/applications/misc/fontpreview/default.nix
new file mode 100644
index 000000000000..1d4e4d3e00fe
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/fontpreview/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper, xdotool, fzf, imagemagick, sxiv, getopt }:
+
+stdenv.mkDerivation rec {
+  pname = "fontpreview";
+  version = "1.0.6";
+
+  src = fetchFromGitHub {
+    owner = "sdushantha";
+    repo = pname;
+    rev = version;
+    sha256 = "0g3i2k6n2yhp88rrcf0hp6ils7836db7hx73hw9qnpcbmckz0i4w";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  preInstall = "mkdir -p $out/bin";
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  postInstall = ''
+    wrapProgram $out/bin/fontpreview \
+      --prefix PATH : ${lib.makeBinPath [ xdotool fzf imagemagick sxiv getopt ]}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/sdushantha/fontpreview";
+    description = "Highly customizable and minimal font previewer written in bash";
+    longDescription = ''
+      fontpreview is a commandline tool that lets you quickly search for fonts
+      that are installed on your machine and preview them. The fuzzy search
+      feature is provided by fzf and the preview is generated with imagemagick
+      and then displayed using sxiv. This tool is highly customizable, almost
+      all of the variables in this tool can be changed using the commandline
+      flags or you can configure them using environment variables.
+    '';
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.erictapen ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/foot/default.nix b/nixpkgs/pkgs/applications/misc/foot/default.nix
new file mode 100644
index 000000000000..02909ee1f2fc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/foot/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchgit
+, fcft, freetype, pixman, libxkbcommon, fontconfig, wayland
+, meson, ninja, ncurses, scdoc, tllist, wayland-protocols, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "foot";
+  version = "1.4.4";
+
+  src = fetchgit {
+    url = "https://codeberg.org/dnkl/foot.git";
+    rev = "${version}";
+    sha256 = "1cr4sz075v18clh8nlvgyxlbvfkhbsg0qrqgnclip5rwa24ry1lg";
+  };
+
+  nativeBuildInputs = [
+    meson ninja ncurses scdoc tllist wayland-protocols pkg-config
+  ];
+  buildInputs = [
+    fontconfig freetype pixman wayland libxkbcommon fcft
+  ];
+
+  # recommended build flags for foot as per INSTALL.md
+  # https://codeberg.org/dnkl/foot/src/branch/master/INSTALL.md#user-content-release-build
+  preConfigure = ''
+    export CFLAGS+="-O3 -fno-plt"
+  '';
+
+  mesonFlags = [ "--buildtype=release" "-Db_lto=true" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://codeberg.org/dnkl/foot/";
+    description = "A fast, lightweight and minimalistic Wayland terminal emulator";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/formatter/default.nix b/nixpkgs/pkgs/applications/misc/formatter/default.nix
index b0224c052c4e..85a70812cad1 100644
--- a/nixpkgs/pkgs/applications/misc/formatter/default.nix
+++ b/nixpkgs/pkgs/applications/misc/formatter/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , vala
@@ -62,7 +63,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/misc/fslint/default.nix b/nixpkgs/pkgs/applications/misc/fslint/default.nix
new file mode 100644
index 000000000000..f6e1071ac5e8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/fslint/default.nix
@@ -0,0 +1,41 @@
+{ lib, stdenv, fetchFromGitHub, python2, makeWrapper }:
+
+let pythonEnv = python2.withPackages(ps: [ ps.pyGtkGlade]);
+in stdenv.mkDerivation rec {
+  pname   = "fslint";
+  version = "2.46";
+
+  src = fetchFromGitHub {
+    owner  = "pixelb";
+    repo   = "fslint";
+    rev    = version;
+    sha256 = "048pc1rsslbsrfchl2wmdd4hpa2gycglib7kdx8vqs947zcm0sfv";
+  };
+
+  buildInputs = [
+    pythonEnv makeWrapper
+  ];
+
+  prePatch = ''
+    substituteInPlace fslint-gui --replace "liblocation=os.path.dirname(os.path.abspath(sys.argv[0]))" "liblocation='$out'"
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp * -R $out/
+    cp fslint-gui $out/bin/fslint
+
+    wrapProgram "$out/bin/fslint" \
+      --prefix PYTHONPATH : "${pythonEnv.interpreter}"
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "A utility to find and clean various forms of lint on a filesystem.";
+    homepage = "https://www.pixelbeat.org/fslint/";
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.dasj19 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/fuzzel/default.nix b/nixpkgs/pkgs/applications/misc/fuzzel/default.nix
new file mode 100644
index 000000000000..717d4a3aab3f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/fuzzel/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, fetchgit, pkg-config, meson, ninja, wayland, pixman, cairo, librsvg, wayland-protocols, wlroots, libxkbcommon, scdoc, git, tllist, fcft}:
+
+stdenv.mkDerivation rec {
+  pname = "fuzzel";
+  version = "1.4.2";
+
+  src = fetchgit {
+    url = "https://codeberg.org/dnkl/fuzzel";
+    rev = "${version}";
+    sha256 = "0c0p9spklzmy9f7abz3mvw0vp6zgnk3ns1i6ks95ljjb3kqy9vs2";
+  };
+
+  nativeBuildInputs = [ pkg-config meson ninja scdoc git ];
+  buildInputs = [ wayland pixman cairo librsvg wayland-protocols  wlroots libxkbcommon tllist fcft ];
+
+  meta = with lib; {
+    description = "Wayland-native application launcher, similar to rofi’s drun mode";
+    homepage = "https://codeberg.org/dnkl/fuzzel";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fionera ];
+    platforms = with platforms; linux;
+    changelog = "https://codeberg.org/dnkl/fuzzel/releases/tag/${version}";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix b/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix
index 6b8f6aa38cf8..db82aea2a508 100644
--- a/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gallery-dl/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "gallery_dl";
-  version = "1.14.1";
+  version = "1.15.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0w4zmfbsr7xdymrrmdvcc0kqz11ql8j067ghlr84faqlsnx09z74";
+    sha256 = "1g9hmb5637x8bhm2wzarqnxzj0i93fcdm1myvld2d97a2d32hy6m";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/applications/misc/ganttproject-bin/default.nix b/nixpkgs/pkgs/applications/misc/ganttproject-bin/default.nix
index 2e8478f41d3d..b36bd83e70f6 100644
--- a/nixpkgs/pkgs/applications/misc/ganttproject-bin/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ganttproject-bin/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
       desktopName = "GanttProject";
       genericName = "Shedule and manage projects";
       comment = meta.description;
-      categories = "Office;Application;";
+      categories = "Office;";
     };
 
     javaOptions = [
diff --git a/nixpkgs/pkgs/applications/misc/gcstar/default.nix b/nixpkgs/pkgs/applications/misc/gcstar/default.nix
new file mode 100644
index 000000000000..b1ab386083ea
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/gcstar/default.nix
@@ -0,0 +1,72 @@
+{ stdenv
+, fetchFromGitLab
+, perlPackages
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gcstar";
+  version = "1.7.2";
+
+  src = fetchFromGitLab {
+    owner = "Kerenoc";
+    repo = "GCstar";
+    rev = "v${version}";
+    sha256 = "1vqfff33sssvlvsva1dflggmwl00j5p64sn1669f9wrbvjkxgpv4";
+  };
+
+  nativeBuildInputs = [ wrapGAppsHook ];
+
+  buildInputs = with perlPackages; [
+    perl
+    ArchiveZip
+    DateCalc
+    DateTimeFormatStrptime
+    Glib
+    Gtk2
+    GD
+    GDGraph
+    GDText
+    HTMLParser
+    JSON
+    ImageExifTool
+    librelative
+    LWPUserAgent
+    LWPProtocolHttps
+    MP3Info
+    MP3Tag
+    NetFreeDB
+    OggVorbisHeaderPurePerl
+    Pango
+    XMLSimple
+    XMLParser
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    cd gcstar
+    perl install --text --prefix=$out
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    wrapProgram $out/bin/gcstar --prefix PERL5LIB : $PERL5LIB
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://gitlab.com/Kerenoc/GCstar";
+    description = "Manage your collections of movies, games, books, music and more";
+    longDescription = ''
+      GCstar is an application for managing your collections.
+      It supports many types of collections, including movies, books, games, comics, stamps, coins, and many more.
+      You can even create your own collection type for whatever unique thing it is that you collect!
+      Detailed information on each item can be automatically retrieved from the internet and you can store additional data, such as the location or who you've lent it to.
+      You may also search and filter your collections by many criteria.
+    '';
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ dasj19 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/geoipupdate/default.nix b/nixpkgs/pkgs/applications/misc/geoipupdate/default.nix
index 2b0fc88ccf9a..ee6ed27ddda8 100644
--- a/nixpkgs/pkgs/applications/misc/geoipupdate/default.nix
+++ b/nixpkgs/pkgs/applications/misc/geoipupdate/default.nix
@@ -13,11 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "0q4byhvs1c1xm4qjvs2vyf98vdv121qn0z51arcf7k4ayrys5xcx";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Automatic GeoIP database updater";
     homepage = "https://github.com/maxmind/geoipupdate";
     license = with licenses; [ asl20 ];
-    platforms = platforms.all;
     maintainers = with maintainers; [ das_j ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/misc/girara/default.nix b/nixpkgs/pkgs/applications/misc/girara/default.nix
index 45bca7d3fbf5..35e9d16f9df0 100644
--- a/nixpkgs/pkgs/applications/misc/girara/default.nix
+++ b/nixpkgs/pkgs/applications/misc/girara/default.nix
@@ -3,20 +3,20 @@
 
 stdenv.mkDerivation rec {
   pname = "girara";
-  version = "0.3.4";
+  version = "0.3.5";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://git.pwmt.org/pwmt/${pname}/-/archive/${version}/${pname}-${version}.tar.gz";
-    sha256 = "08zdsr4zwi49facsl5596l0g1xqqv2jk3sqk841gkxwawcggim44";
+    sha256 = "1n3i960b458172mc3pkq7m9dn5qxry6fms3c3k06v27cjp5whsyf";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig gettext check dbus xvfb_run ];
   buildInputs = [ libintl libiconv json_c ];
   propagatedBuildInputs = [ glib gtk ];
 
-  doCheck = true;
+  doCheck = !stdenv.isDarwin;
 
   mesonFlags = [
     "-Ddocs=disabled" # docs do not seem to be installed
diff --git a/nixpkgs/pkgs/applications/misc/glom/default.nix b/nixpkgs/pkgs/applications/misc/glom/default.nix
index d576d2b5b476..9af6e39cb9bb 100644
--- a/nixpkgs/pkgs/applications/misc/glom/default.nix
+++ b/nixpkgs/pkgs/applications/misc/glom/default.nix
@@ -1,5 +1,5 @@
 { stdenv
-, fetchFromGitLab
+, fetchurl
 , pkgconfig
 , autoconf
 , automake
@@ -26,7 +26,8 @@
 , goocanvasmm2
 , evince
 , isocodes
-, gtksourceviewmm4
+, gtksourceview
+, gtksourceviewmm
 , postgresql
 , gobject-introspection
 , yelp-tools
@@ -48,16 +49,13 @@ let
   boost_python = boost.override { enablePython = true; inherit python; };
 in stdenv.mkDerivation rec {
   pname = "glom";
-  version = "unstable-2018-12-16";
+  version = "1.32.0";
 
   outputs = [ "out" "lib" "dev" "doc" "devdoc" ];
 
-  src = fetchFromGitLab {
-    domain = "gitlab.gnome.org";
-    owner = "GNOME";
-    repo = pname;
-    rev = "fa5ff04f209f35bf3e97bc1c3eb1d1138d6172ce";
-    sha256 = "145hnk96xa4v35i3a3mbf3fnx4nlk8cksc0qhm7nrh8cnnrbdfgn";
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1wcd4kd3crwqjv0jfp73jkyyf5ws8mvykg37kqxmcb58piz21gsk";
   };
 
   nativeBuildInputs = [
@@ -93,7 +91,8 @@ in stdenv.mkDerivation rec {
     evince
     isocodes
     python3.pkgs.pygobject3
-    gtksourceviewmm4
+    gtksourceview
+    gtksourceviewmm
     postgresql # for pg_config
   ];
 
diff --git a/nixpkgs/pkgs/applications/misc/gmrun/default.nix b/nixpkgs/pkgs/applications/misc/gmrun/default.nix
index eaee8fb5fb37..8ca4c6061629 100644
--- a/nixpkgs/pkgs/applications/misc/gmrun/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gmrun/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
       ./gmrun-0.9.2-xdg.patch
     ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Gnome Completion-Run Utility";
     longDescription = ''
       A simple program which provides a "run program" window, featuring a bash-like TAB completion.
@@ -35,8 +35,8 @@ stdenv.mkDerivation rec {
       Running commands in a terminal with CTRL-Enter. URL handlers.
     '';
     homepage = "https://sourceforge.net/projects/gmrun/";
-    license = "GPL";
+    license = licenses.gpl2;
     maintainers = [];
-    platforms = stdenv.lib.platforms.all;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/go-jira/default.nix b/nixpkgs/pkgs/applications/misc/go-jira/default.nix
index 5fad7b9ac031..8b3ca1e2d8de 100644
--- a/nixpkgs/pkgs/applications/misc/go-jira/default.nix
+++ b/nixpkgs/pkgs/applications/misc/go-jira/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "go-jira";
-  version = "1.0.23";
+  version = "1.0.24";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "go-jira";
     repo = "jira";
-    sha256 = "0qk5ifjxkqisvgv066rw8xj2zszc9mhc0by4338xjd7ng10jkk7b";
+    sha256 = "1qpimh39hsg75mb32hlvxmd7jj5b0cmhdkqz3dizfcnidllr3grd";
   };
 
   vendorSha256 = "18jwxnkv94lsxfv57ga519knxm077cc8chp5c992ipk58a04nv18";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Simple command line client for Atlassian's Jira service written in Go";
     homepage = "https://github.com/go-jira/jira";
diff --git a/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix b/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix
index 761d05e5f9f8..3eaefd66395c 100644
--- a/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix
+++ b/nixpkgs/pkgs/applications/misc/golden-cheetah/default.nix
@@ -12,7 +12,7 @@ let
     desktopName = "GoldenCheetah";
     genericName = "GoldenCheetah";
     comment = "Performance software for cyclists, runners and triathletes";
-    categories = "Application;Utility;";
+    categories = "Utility;";
   };
 in mkDerivation rec {
   pname = "golden-cheetah";
diff --git a/nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock b/nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock
index 4759cdcf5737..91096ddc9173 100644
--- a/nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock
+++ b/nixpkgs/pkgs/applications/misc/gollum/Gemfile.lock
@@ -1,18 +1,18 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    backports (3.17.0)
-    concurrent-ruby (1.1.6)
+    backports (3.18.1)
+    concurrent-ruby (1.1.7)
     crass (1.0.6)
     execjs (2.7.0)
-    ffi (1.12.2)
-    gemojione (4.3.2)
+    ffi (1.13.1)
+    gemojione (4.3.3)
       json
     github-markup (3.0.4)
-    gollum (5.0.1)
+    gollum (5.1.1)
       gemojione (~> 4.1)
       gollum-lib (~> 5.0)
-      kramdown (~> 2.1.0)
+      kramdown (~> 2.3)
       kramdown-parser-gfm (~> 1.0.0)
       mustache (>= 0.99.5, < 1.0.0)
       octicons (~> 8.5)
@@ -25,45 +25,46 @@ GEM
       therubyrhino (~> 2.1.0)
       uglifier (~> 3.2)
       useragent (~> 0.16.2)
-    gollum-lib (5.0.3)
+    gollum-lib (5.0.5)
       gemojione (~> 4.1)
       github-markup (~> 3.0)
-      gollum-rugged_adapter (~> 0.99.4, >= 0.99.4)
+      gollum-rugged_adapter (~> 1.0)
       loofah (~> 2.3)
       nokogiri (~> 1.8)
       octicons (~> 8.5)
       rouge (~> 3.1)
       twitter-text (= 1.14.7)
-    gollum-rugged_adapter (0.99.4)
+    gollum-rugged_adapter (1.0)
       mime-types (>= 1.15)
       rugged (~> 0.99)
-    json (2.3.0)
-    kramdown (2.1.0)
+    json (2.3.1)
+    kramdown (2.3.0)
+      rexml
     kramdown-parser-gfm (1.0.1)
       kramdown (~> 2.0)
-    loofah (2.5.0)
+    loofah (2.6.0)
       crass (~> 1.0.2)
       nokogiri (>= 1.5.9)
     mime-types (3.3.1)
       mime-types-data (~> 3.2015)
-    mime-types-data (3.2019.1009)
+    mime-types-data (3.2020.0512)
     mini_portile2 (2.4.0)
-    multi_json (1.14.1)
+    multi_json (1.15.0)
     mustache (0.99.8)
     mustermann (1.1.1)
       ruby2_keywords (~> 0.0.1)
-    nokogiri (1.10.9)
+    nokogiri (1.10.10)
       mini_portile2 (~> 2.4.0)
     octicons (8.5.0)
       nokogiri (>= 1.6.3.1)
-    rack (2.2.2)
+    rack (2.2.3)
     rack-protection (2.0.8.1)
       rack
-    rb-fsevent (0.10.3)
+    rb-fsevent (0.10.4)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
     rexml (3.2.4)
-    rouge (3.17.0)
+    rouge (3.22.0)
     rss (0.2.9)
       rexml
     ruby2_keywords (0.0.2)
@@ -88,7 +89,7 @@ GEM
     sprockets (3.7.2)
       concurrent-ruby (~> 1.0)
       rack (> 1, < 3)
-    sprockets-helpers (1.2.3)
+    sprockets-helpers (1.3.0)
       sprockets (>= 2.2)
     therubyrhino (2.1.2)
       therubyrhino_jar (>= 1.7.4, < 1.7.9)
diff --git a/nixpkgs/pkgs/applications/misc/gollum/gemset.nix b/nixpkgs/pkgs/applications/misc/gollum/gemset.nix
index 3febcea2f9a6..45bf0e04d07f 100644
--- a/nixpkgs/pkgs/applications/misc/gollum/gemset.nix
+++ b/nixpkgs/pkgs/applications/misc/gollum/gemset.nix
@@ -4,20 +4,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13ywgyyxzlgks7nb17gwqjmdqjjmhc8si3iliv8jhf51lb3s865v";
+      sha256 = "0qagwshq7zyjgm6k53hbrf4gfrwn6qz5d6rrc83cl59q37v68zsc";
       type = "gem";
     };
-    version = "3.17.0";
+    version = "3.18.1";
   };
   concurrent-ruby = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
       type = "gem";
     };
-    version = "1.1.6";
+    version = "1.1.7";
   };
   crass = {
     groups = ["default"];
@@ -44,10 +44,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
+      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
       type = "gem";
     };
-    version = "1.12.2";
+    version = "1.13.1";
   };
   gemojione = {
     dependencies = ["json"];
@@ -55,10 +55,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "097mrsahv1h67kjrk1cpiqc1cbrfgvlp2rqwmzdzxrq0kx50461w";
+      sha256 = "0fwd523pgr72w3w6jwpz9i6sggvz52d7831a1s4y3lv8m50j6ima";
       type = "gem";
     };
-    version = "4.3.2";
+    version = "4.3.3";
   };
   github-markup = {
     groups = ["default"];
@@ -76,10 +76,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f9p1230xmrvcb7ii2gkcvhpgcaqvvd47gy3c58nn730jkv471dr";
+      sha256 = "14i6y3ilv9l7cqvkawl75js26cfj1pd8cphhmq9lic95ajvdf371";
       type = "gem";
     };
-    version = "5.0.1";
+    version = "5.1.1";
   };
   gollum-lib = {
     dependencies = ["gemojione" "github-markup" "gollum-rugged_adapter" "loofah" "nokogiri" "octicons" "rouge" "twitter-text"];
@@ -87,10 +87,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r59fyf7i4rlp6wj9ilnqd9pmgpkafv0yl4jmrxa6hr2p4cmnf1g";
+      sha256 = "18f3g5px9zznyh6ppqlnjdp1ia8awgrix9lhbfh64rpgxg0b9xlr";
       type = "gem";
     };
-    version = "5.0.3";
+    version = "5.0.5";
   };
   gollum-rugged_adapter = {
     dependencies = ["mime-types" "rugged"];
@@ -98,30 +98,31 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0016yfac3b3sy34k9wrqg422mjm8cpd1jd1m4gdn4x2d4jxhxkzq";
+      sha256 = "0ln12976vm1ks74yyrssdx576b1z0hs8r82fivr366knv5hlcrdm";
       type = "gem";
     };
-    version = "0.99.4";
+    version = "1.0";
   };
   json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
+      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.3.1";
   };
   kramdown = {
+    dependencies = ["rexml"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dl840bvx8d9nq6lg3mxqyvbiqnr6lk3jfsm6r8zhz7p5srmd688";
+      sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7";
       type = "gem";
     };
-    version = "2.1.0";
+    version = "2.3.0";
   };
   kramdown-parser-gfm = {
     dependencies = ["kramdown"];
@@ -140,10 +141,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jk9fgn5ayzbqvzqm11gbkqvas77zdbpkvynlylyiwynclgrn040";
+      sha256 = "1s9hq8bpn6g5vqr3nzyirn3agn7x8agan6151zvq5vmkf6rvmyb2";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "2.6.0";
   };
   mime-types = {
     dependencies = ["mime-types-data"];
@@ -161,10 +162,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18x61fc36951vw7f74gq8cyybdpxvyg5d0azvqhrs82ddw3v16xh";
+      sha256 = "1z75svngyhsglx0y2f9rnil2j08f9ab54b3l95bpgz67zq2if753";
       type = "gem";
     };
-    version = "3.2019.1009";
+    version = "3.2020.0512";
   };
   mini_portile2 = {
     groups = ["default"];
@@ -181,10 +182,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xy54mjf7xg41l8qrg1bqri75agdqmxap9z466fjismc1rn2jwfr";
+      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
       type = "gem";
     };
-    version = "1.14.1";
+    version = "1.15.0";
   };
   mustache = {
     groups = ["default"];
@@ -213,10 +214,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12j76d0bp608932xkzmfi638c7aqah57l437q8494znzbj610qnm";
+      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
       type = "gem";
     };
-    version = "1.10.9";
+    version = "1.10.10";
   };
   octicons = {
     dependencies = ["nokogiri"];
@@ -234,10 +235,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10mp9s48ssnw004aksq90gvhdvwczh8j6q82q2kqiqq92jd1zxbp";
+      sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16";
       type = "gem";
     };
-    version = "2.2.2";
+    version = "2.2.3";
   };
   rack-protection = {
     dependencies = ["rack"];
@@ -255,10 +256,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lm1k7wpz69jx7jrc92w3ggczkjyjbfziq5mg62vjnxmzs383xx8";
+      sha256 = "1k9bsj7ni0g2fd7scyyy1sk9dy2pg9akniahab0iznvjmhn54h87";
       type = "gem";
     };
-    version = "0.10.3";
+    version = "0.10.4";
   };
   rb-inotify = {
     dependencies = ["ffi"];
@@ -286,10 +287,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xl7k5paf66p57sphm4nfa4k86yf93lhdzzr0cv0l4divq12g2pr";
+      sha256 = "1wcz7i009wdbymlfsamagqi18m6ih8j60bii0k18f21g70r72i0m";
       type = "gem";
     };
-    version = "3.17.0";
+    version = "3.22.0";
   };
   rss = {
     dependencies = ["rexml"];
@@ -383,10 +384,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hy67dwz76n5db00d9n3qy59ici96c2g25c9xpmp2nh8ilvha338";
+      sha256 = "14iq8v16l31bfq7pikfmgcv5x6pkc5lbdmwwg6zlzcy1bibcliar";
       type = "gem";
     };
-    version = "1.2.3";
+    version = "1.3.0";
   };
   therubyrhino = {
     dependencies = ["therubyrhino_jar"];
diff --git a/nixpkgs/pkgs/applications/misc/gomatrix/default.nix b/nixpkgs/pkgs/applications/misc/gomatrix/default.nix
index 0cf6c9660932..c903f1ba1bbe 100644
--- a/nixpkgs/pkgs/applications/misc/gomatrix/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gomatrix/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "1yw0gph4zfg8w4343882l6b9lggwyak2zz8ic1l1m2m44p3aq169";
 
+  doCheck = false;
+
   meta = with lib; {
     description = ''Displays "The Matrix" in a terminal'';
     license = licenses.bsd2;
     maintainers = with maintainers; [ skykanin ];
     homepage = "https://github.com/GeertJohan/gomatrix";
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/misc/googleearth/default.nix b/nixpkgs/pkgs/applications/misc/googleearth/default.nix
index dff69130c18a..db3881063454 100644
--- a/nixpkgs/pkgs/applications/misc/googleearth/default.nix
+++ b/nixpkgs/pkgs/applications/misc/googleearth/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, glibc, libGLU, libGL, freetype, glib, libSM, libICE, libXi, libXv
 , libXrender, libXrandr, libXfixes, libXcursor, libXinerama, libXext, libX11
-, zlib, fontconfig, dpkg, libproxy, libxml2, gstreamer, gst_all_1, dbus }:
+, zlib, fontconfig, dpkg, libproxy, libxml2, gst_all_1, dbus }:
 
 let
   arch =
@@ -33,7 +33,6 @@ let
     fontconfig
     libproxy
     libxml2
-    gstreamer
     dbus
     gst_all_1.gstreamer
     gst_all_1.gst-plugins-base
@@ -80,7 +79,7 @@ stdenv.mkDerivation rec {
     for a in $out/opt/google/earth/free/*.so* ; do
       patchelf --set-rpath "${fullPath}:\$ORIGIN" $a
     done
-    
+
     # Add desktop config file and icons
     mkdir -p $out/share/{applications,icons/hicolor/{16x16,22x22,24x24,32x32,48x48,64x64,128x128,256x256}/apps,pixmaps}
     ln -s $out/opt/google/earth/free/google-earth.desktop $out/share/applications/google-earth.desktop
diff --git a/nixpkgs/pkgs/applications/misc/googler/default.nix b/nixpkgs/pkgs/applications/misc/googler/default.nix
index fba36f5e8ac7..de93dc6f43e5 100644
--- a/nixpkgs/pkgs/applications/misc/googler/default.nix
+++ b/nixpkgs/pkgs/applications/misc/googler/default.nix
@@ -1,25 +1,33 @@
-{ stdenv, fetchFromGitHub, python }:
+{ stdenv, fetchFromGitHub, python, installShellFiles }:
 
 stdenv.mkDerivation rec {
   pname = "googler";
-  version = "4.1";
+  version = "4.2";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "04d7n2l159s7c9xzvyvbnbii1k3zdbajagpx09x1l692cwjbvpxw";
+    sha256 = "0c480wzc7q4pks1f6mnayr580c73jhzshliz4hgznzc7zwcdf41w";
   };
 
-  propagatedBuildInputs = [ python ];
+  buildInputs = [ python ];
+
+  nativeBuildInputs = [ installShellFiles ];
 
   makeFlags = [ "PREFIX=$(out)" ];
 
+  postInstall = ''
+    installShellCompletion --bash --name googler.bash auto-completion/bash/googler-completion.bash
+    installShellCompletion --fish auto-completion/fish/googler.fish
+    installShellCompletion --zsh auto-completion/zsh/_googler
+  '';
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/jarun/googler";
     description = "Google Search, Google Site Search, Google News from the terminal";
     license = licenses.gpl3;
     maintainers = with maintainers; [ koral filalex77 ];
-    platforms = platforms.unix;
+    platforms = python.meta.platforms;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/gopacked/default.nix b/nixpkgs/pkgs/applications/misc/gopacked/default.nix
index 418fe96a897b..57f6be40ab02 100644
--- a/nixpkgs/pkgs/applications/misc/gopacked/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gopacked/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0fklr3lxh8g7gda65wf2wdkqv15869h7m1bwbzbiv8pasrf5b352";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "A simple text-based Minecraft modpack manager";
     license = licenses.agpl3;
diff --git a/nixpkgs/pkgs/applications/misc/gpsbabel/default.nix b/nixpkgs/pkgs/applications/misc/gpsbabel/default.nix
index ef4c732ef521..1915b2dae17d 100644
--- a/nixpkgs/pkgs/applications/misc/gpsbabel/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gpsbabel/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, zlib, which, IOKit, qtbase }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, zlib, which, IOKit, qtbase, libusb-compat-0_1 }:
 
 stdenv.mkDerivation rec {
   pname = "gpsbabel";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  buildInputs = [ zlib qtbase which ]
+  buildInputs = [ zlib qtbase which libusb-compat-0_1 ]
     ++ lib.optionals stdenv.isDarwin [ IOKit ];
 
   /* FIXME: Building the documentation, with "make doc", requires this:
diff --git a/nixpkgs/pkgs/applications/misc/gpsprune/default.nix b/nixpkgs/pkgs/applications/misc/gpsprune/default.nix
index 63ca213c2c42..828b3ca9bf0b 100644
--- a/nixpkgs/pkgs/applications/misc/gpsprune/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gpsprune/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, makeDesktopItem, makeWrapper, unzip, jdk11 }:
+{ fetchurl, stdenv, makeDesktopItem, makeWrapper, unzip, jdk }:
 
 stdenv.mkDerivation rec {
   pname = "gpsprune";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ jdk11 ];
+  buildInputs = [ jdk ];
 
   desktopItem = makeDesktopItem {
     name = "gpsprune";
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   buildCommand = ''
     mkdir -p $out/bin $out/share/java
     cp -v $src $out/share/java/gpsprune.jar
-    makeWrapper ${jdk11}/bin/java $out/bin/gpsprune \
+    makeWrapper ${jdk}/bin/java $out/bin/gpsprune \
       --add-flags "-jar $out/share/java/gpsprune.jar"
     mkdir -p $out/share/applications
     cp $desktopItem/share/applications"/"* $out/share/applications
diff --git a/nixpkgs/pkgs/applications/misc/gpxsee/default.nix b/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
index b3dbecb56b1b..9ee3b96a5bbf 100644
--- a/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gpxsee/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "gpxsee";
-  version = "7.30";
+  version = "7.31";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = version;
-    sha256 = "09gajwqc30r9a2sn972qdx3gx0gki9n0zafq986hn6zsr3z43mfs";
+    sha256 = "0y60h66p8ydkinxk9x4sp4cm6gq66nc9jcavy135vmycsiq9gphn";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/misc/gramps/default.nix b/nixpkgs/pkgs/applications/misc/gramps/default.nix
index e5a2b87f16ef..09717cd64265 100644
--- a/nixpkgs/pkgs/applications/misc/gramps/default.nix
+++ b/nixpkgs/pkgs/applications/misc/gramps/default.nix
@@ -13,14 +13,13 @@ in buildPythonApplication rec {
   pname = "gramps";
 
   nativeBuildInputs = [ wrapGAppsHook gettext ];
-  buildInputs = [ intltool gtk3 gobject-introspection pango gnome3.gexiv2 ] 
+  buildInputs = [ intltool gtk3 gobject-introspection pango gnome3.gexiv2 ]
     # Map support
     ++ stdenv.lib.optional enableOSM osm-gps-map
     # Graphviz support
     ++ stdenv.lib.optional enableGraphviz graphviz
     # Ghostscript support
     ++ stdenv.lib.optional enableGhostscript ghostscript
-    
   ;
 
   src = fetchFromGitHub {
@@ -60,6 +59,5 @@ in buildPythonApplication rec {
     description = "Genealogy software";
     homepage = "https://gramps-project.org";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ joncojonathan ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/grip/default.nix b/nixpkgs/pkgs/applications/misc/grip/default.nix
index b1985be2c946..02544812eb12 100644
--- a/nixpkgs/pkgs/applications/misc/grip/default.nix
+++ b/nixpkgs/pkgs/applications/misc/grip/default.nix
@@ -2,11 +2,11 @@
 , curl, cdparanoia, libid3tag, ncurses, libtool }:
 
 stdenv.mkDerivation rec {
-  name = "grip-4.1.1";
+  name = "grip-4.2.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/grip/${name}.tar.gz";
-    sha256 = "1sbjgawb7qrinixybwi0adk7mpdfb565gkffp5gxxsw8fqd068fs";
+    sha256 = "1si5kidwg0i2jg0brzyvjrzw24v3km2hdgd4kda1adzq81a3p1cs";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/misc/havoc/default.nix b/nixpkgs/pkgs/applications/misc/havoc/default.nix
index fc4cc680ca4d..a6d5278fc3c5 100644
--- a/nixpkgs/pkgs/applications/misc/havoc/default.nix
+++ b/nixpkgs/pkgs/applications/misc/havoc/default.nix
@@ -4,13 +4,13 @@
 stdenv.mkDerivation rec {
 
   pname = "havoc";
-  version = "2019-12-08";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "ii8";
     repo = pname;
-    rev = "507446c92ed7bf8380a58c5ba2b14aba5cdf412c";
-    sha256 = "13nfnan1gmy4cqxmqv0rc8a4mcb1g62v73d56hy7z2psv4am7a09";
+    rev = version;
+    sha256 = "1g05r9j6srwz1krqvzckx80jn8fm48rkb4xp68953gy9yp2skg3k";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/misc/heimer/default.nix b/nixpkgs/pkgs/applications/misc/heimer/default.nix
index 7709a42baee1..19034c1dc762 100644
--- a/nixpkgs/pkgs/applications/misc/heimer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/heimer/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "heimer";
-  version = "1.17.0";
+  version = "1.19.0";
 
   src = fetchFromGitHub {
     owner = "juzzlin";
     repo = pname;
     rev = version;
-    sha256 = "1sxdi1an9x62q9vwv7r2761my4dva6nc63n9861swxjjk18hmmar";
+    sha256 = "18paabqfxz49fahdi4fs5z870aynmyfj3xw8q768qffgc26zhl3m";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/misc/hovercraft/default.nix b/nixpkgs/pkgs/applications/misc/hovercraft/default.nix
index edb8114e4a41..5a03cfe23bac 100644
--- a/nixpkgs/pkgs/applications/misc/hovercraft/default.nix
+++ b/nixpkgs/pkgs/applications/misc/hovercraft/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonApplication rec {
   pname = "hovercraft";
-  version = "2.6";
+  version = "2.7";
   disabled = ! isPy3k;
 
   src = fetchFromGitHub {
     owner = "regebro";
     repo = "hovercraft";
     rev = version;
-    sha256 = "150sn6kvqi2s89di1akl5i0g81fasji2ipr12zq5s4dcnhw4r5wp";
+    sha256 = "0k0gjlqjz424rymcfdjpj6a71ppblfls5f8y2hd800d1as4im8az";
   };
 
   checkInputs = [ manuel ];
diff --git a/nixpkgs/pkgs/applications/misc/hstr/default.nix b/nixpkgs/pkgs/applications/misc/hstr/default.nix
index b1e740fb7607..81f931b11f8e 100644
--- a/nixpkgs/pkgs/applications/misc/hstr/default.nix
+++ b/nixpkgs/pkgs/applications/misc/hstr/default.nix
@@ -15,15 +15,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
   buildInputs = [ readline ncurses gettext ];
 
-  configurePhase = ''
-    autoreconf -fvi
-    ./configure
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin/
-    mv src/hstr $out/bin/
-  '';
+  configureFlags = [ "--prefix=$(out)" ];
 
   meta = {
     homepage = "https://github.com/dvorka/hstr";
diff --git a/nixpkgs/pkgs/applications/misc/html5validator/default.nix b/nixpkgs/pkgs/applications/misc/html5validator/default.nix
new file mode 100644
index 000000000000..657996d1da9f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/html5validator/default.nix
@@ -0,0 +1,25 @@
+{ buildPythonApplication, fetchFromGitHub, nose, openjdk, lib }:
+
+buildPythonApplication rec {
+  pname = "html5validator";
+  version = "0.3.3";
+
+  src = fetchFromGitHub {
+    owner = "svenkreiss";
+    repo = "html5validator";
+    rev = "v${version}";
+    sha256 = "130acqi0dsy3midg7hwslykzry6crr4ln6ia0f0avyywkz4bplsv";
+  };
+
+  propagatedBuildInputs = [ openjdk ];
+
+  checkInputs = [ nose ];
+  checkPhase = "PATH=$PATH:$out/bin nosetests";
+
+  meta = with lib; {
+    homepage = "https://github.com/svenkreiss/html5validator";
+    description = "Command line tool that tests files for HTML5 validity";
+    license = licenses.mit;
+    maintainers = [ maintainers.phunehehe ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/hugo/default.nix b/nixpkgs/pkgs/applications/misc/hugo/default.nix
index ba01f88cc58f..37965fd6e3ee 100644
--- a/nixpkgs/pkgs/applications/misc/hugo/default.nix
+++ b/nixpkgs/pkgs/applications/misc/hugo/default.nix
@@ -1,33 +1,21 @@
-{ stdenv, buildGoModule, fetchFromGitHub, libsass }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "hugo";
-  version = "0.72.0";
-
-  buildInputs = [ libsass ];
+  version = "0.75.1";
 
   src = fetchFromGitHub {
     owner = "gohugoio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "05parzx0wm51z4qkvh4k096ykgiyr9i5xy55c0g99j4y96drcybb";
+    sha256 = "1c3l3q2xkibl1lz2mbvhgj94s6d9g5nakhpzj252s3m3cgk4w5wh";
   };
 
-  golibsass = fetchFromGitHub {
-    owner = "bep";
-    repo = "golibsass";
-    rev = "8a04397f0baba474190a9f58019ff499ec43057a";
-    sha256 = "0xk3m2ynbydzx87dz573ihwc4ryq0r545vz937szz175ivgfrhh3";
-  };
+  vendorSha256 = "0gdd8fqd4mwg69wj8dxmm5wh1pjhdc189l2gy6njgpmwh93xbvdg";
 
-  overrideModAttrs = (_: {
-      postBuild = ''
-      rm -rf vendor/github.com/bep/golibsass/
-      cp -r --reflink=auto ${golibsass} vendor/github.com/bep/golibsass
-      '';
-    });
+  doCheck = false;
 
-  vendorSha256 = "07dkmrldsxw59v6r4avj1gr4hsaxybhb14qv61hc777qix2kq9v1";
+  runVend = true;
 
   buildFlags = [ "-tags" "extended" ];
 
diff --git a/nixpkgs/pkgs/applications/misc/imag/default.nix b/nixpkgs/pkgs/applications/misc/imag/default.nix
new file mode 100644
index 000000000000..bb6956aaa596
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/imag/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, llvmPackages
+, openssl
+, pkg-config
+, installShellFiles
+, Security
+, gitMinimal
+, utillinuxMinimal
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "imag";
+  version = "0.10.1";
+
+  src = fetchFromGitHub {
+    owner = "matthiasbeyer";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0f9915f083z5qqcxyavj0w6m973c8m1x7kfb89pah5agryy5mkaq";
+  };
+
+  nativeBuildInputs = [ installShellFiles pkg-config ];
+  buildInputs = [ openssl ]
+    ++ stdenv.lib.optional stdenv.isDarwin Security;
+  checkInputs = [ gitMinimal utillinuxMinimal ];
+
+  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+
+  cargoSha256 = "0n8cw70qh8g4hfwfaxwwxbrrx5hm2z037z8kdhvdpqkxljl9189x";
+
+  checkPhase = ''
+    export HOME=$TMPDIR
+    git config --global user.email "nobody@example.com"
+    git config --global user.name "Nobody"
+
+    # UI tests uses executables directly, so we need to build them before
+    # launching the tests
+    cargo build
+  '' + (
+    # CLI uses the presence of a controlling TTY to check if arguments are
+    # passed in stdin, or in the command-line, so we use script to create
+    # a PTY for us.
+    if !stdenv.isDarwin then ''
+      script -qfec "cargo test --workspace"
+    '' else ''
+      script -q "cargo test --workspace"
+    ''
+  );
+
+  postInstall = ''
+    installShellCompletion target/imag.{bash,fish} --zsh target/_imag
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Commandline personal information management suite";
+    homepage = "https://imag-pim.org/";
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ filalex77 minijackson ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/inkcut/default.nix b/nixpkgs/pkgs/applications/misc/inkcut/default.nix
new file mode 100644
index 000000000000..6be6e842bde7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/inkcut/default.nix
@@ -0,0 +1,54 @@
+{ lib, python3Packages, fetchFromGitHub, wrapQtAppsHook }:
+
+with python3Packages;
+
+buildPythonApplication rec {
+  pname = "inkcut";
+  version = "2.1.1";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1c0mfdfy9iq4l683f3aa7cm7x2w9px83dyigc7655wvaq3bxi2rp";
+  };
+
+  nativeBuildInputs = [ wrapQtAppsHook ];
+
+  propagatedBuildInputs = [
+    enamlx
+    twisted
+    lxml
+    qreactor
+    jsonpickle
+    pyserial
+    pycups
+    qtconsole
+    pyqt5
+  ];
+
+  # QtApplication.instance() does not work during tests?
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "inkcut"
+    "inkcut.cli"
+    "inkcut.console"
+    "inkcut.core"
+    "inkcut.device"
+    "inkcut.job"
+    "inkcut.joystick"
+    "inkcut.monitor"
+    "inkcut.preview"
+  ];
+
+  dontWrapQtApps = true;
+  makeWrapperArgs = [ "\${qtWrapperArgs[@]}" ];
+
+  meta = with lib; {
+    homepage = "https://www.codelv.com/projects/inkcut/";
+    description = "Control 2D plotters, cutters, engravers, and CNC machines";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ raboof ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock b/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock
index 8731ed268385..ffc7c0e2aebf 100644
--- a/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock
+++ b/nixpkgs/pkgs/applications/misc/jekyll/basic/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (6.0.3.1)
+    activesupport (6.0.3.2)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -10,21 +10,21 @@ GEM
     addressable (2.7.0)
       public_suffix (>= 2.0.2, < 5.0)
     colorator (1.1.0)
-    concurrent-ruby (1.1.6)
+    concurrent-ruby (1.1.7)
     em-websocket (0.5.1)
       eventmachine (>= 0.12.9)
       http_parser.rb (~> 0.6.0)
     eventmachine (1.2.7)
-    ffi (1.12.2)
+    ffi (1.13.1)
     forwardable-extended (2.6.0)
     gemoji (3.0.1)
-    html-pipeline (2.12.3)
+    html-pipeline (2.14.0)
       activesupport (>= 2)
       nokogiri (>= 1.4)
     http_parser.rb (0.6.0)
-    i18n (1.8.2)
+    i18n (1.8.5)
       concurrent-ruby (~> 1.0)
-    jekyll (4.1.0)
+    jekyll (4.1.1)
       addressable (~> 2.4)
       colorator (~> 1.0)
       em-websocket (~> 0.5)
@@ -56,7 +56,7 @@ GEM
       gemoji (~> 3.0)
       html-pipeline (~> 2.2)
       jekyll (>= 3.0, < 5.0)
-    kramdown (2.2.1)
+    kramdown (2.3.0)
       rexml
     kramdown-parser-gfm (1.1.0)
       kramdown (~> 2.0)
@@ -67,7 +67,7 @@ GEM
     mercenary (0.4.0)
     mini_portile2 (2.4.0)
     minitest (5.14.1)
-    nokogiri (1.10.9)
+    nokogiri (1.10.10)
       mini_portile2 (~> 2.4.0)
     pathutil (0.16.2)
       forwardable-extended (~> 2.6)
@@ -76,9 +76,9 @@ GEM
     rb-inotify (0.10.1)
       ffi (~> 1.0)
     rexml (3.2.4)
-    rouge (3.19.0)
+    rouge (3.22.0)
     safe_yaml (1.0.5)
-    sassc (2.3.0)
+    sassc (2.4.0)
       ffi (~> 1.9)
     terminal-table (1.8.0)
       unicode-display_width (~> 1.1, >= 1.1.1)
@@ -86,7 +86,7 @@ GEM
     tzinfo (1.2.7)
       thread_safe (~> 0.1)
     unicode-display_width (1.7.0)
-    zeitwerk (2.3.0)
+    zeitwerk (2.4.0)
 
 PLATFORMS
   ruby
diff --git a/nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix b/nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix
index 8c1773f19dc0..b14b27f3756b 100644
--- a/nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix
+++ b/nixpkgs/pkgs/applications/misc/jekyll/basic/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l29n9n38c9lpy5smh26r7fy7jp2bpjqlzhxgsr79cv7xpwlrbhs";
+      sha256 = "02sh4q8izyfdnh7z2nj5mn5sklfvqgx9rrag5j3l51y8aqkrg2yk";
       type = "gem";
     };
-    version = "6.0.3.1";
+    version = "6.0.3.2";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -36,10 +36,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
       type = "gem";
     };
-    version = "1.1.6";
+    version = "1.1.7";
   };
   em-websocket = {
     dependencies = ["eventmachine" "http_parser.rb"];
@@ -67,10 +67,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
+      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
       type = "gem";
     };
-    version = "1.12.2";
+    version = "1.13.1";
   };
   forwardable-extended = {
     groups = ["default"];
@@ -98,10 +98,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x5i330yks7pb1jxcbm9n6gslkgaqhyvl13d0cqxmxzkcajvb7z4";
+      sha256 = "080sn9z1a64gv04p318jz10y6lv6qd3avip08rrcmq9k4ihai0f1";
       type = "gem";
     };
-    version = "2.12.3";
+    version = "2.14.0";
   };
   "http_parser.rb" = {
     groups = ["default"];
@@ -119,10 +119,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jwrd1l4mxz06iyx6053lr6hz2zy7ah2k3ranfzisvych5q19kwm";
+      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
       type = "gem";
     };
-    version = "1.8.2";
+    version = "1.8.5";
   };
   jekyll = {
     dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"];
@@ -130,10 +130,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0v01g9cwn4v7rnpsl9yvscjzvah3p4xwh03zp37zxkvw5kv004n8";
+      sha256 = "192k1ggw99slpqpxb4xamcvcm2pdahgnmygl746hmkrar0i3xa5r";
       type = "gem";
     };
-    version = "4.1.0";
+    version = "4.1.1";
   };
   jekyll-avatar = {
     dependencies = ["jekyll"];
@@ -218,10 +218,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "059mk8lmddp2a2aa6s4pp7x2yyqbqg5crx5jkn32dzlnqi2j5cn6";
+      sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7";
       type = "gem";
     };
-    version = "2.2.1";
+    version = "2.3.0";
   };
   kramdown-parser-gfm = {
     dependencies = ["kramdown"];
@@ -291,10 +291,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12j76d0bp608932xkzmfi638c7aqah57l437q8494znzbj610qnm";
+      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
       type = "gem";
     };
-    version = "1.10.9";
+    version = "1.10.10";
   };
   pathutil = {
     dependencies = ["forwardable-extended"];
@@ -353,10 +353,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "102rc07d78k5bkl0s9nd1gw6wz0w0zcvg4g5sl7z9xxi4r793c35";
+      sha256 = "1wcz7i009wdbymlfsamagqi18m6ih8j60bii0k18f21g70r72i0m";
       type = "gem";
     };
-    version = "3.19.0";
+    version = "3.22.0";
   };
   safe_yaml = {
     groups = ["default"];
@@ -374,10 +374,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qzfnvb8khvc6w2sn3k91mndc2w50xxx5c84jkr6xdxlmaq1a3kg";
+      sha256 = "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.4.0";
   };
   terminal-table = {
     dependencies = ["unicode-display_width"];
@@ -426,9 +426,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1akpm3pwvyiack2zk6giv9yn3cqb8pw6g40p4394pdc3xmy3s4k0";
+      sha256 = "0jvn50k76kl14fpymk4hdsf9sk00jl84yxzl783xhnw4dicp0m0k";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.4.0";
   };
 }
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock b/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock
index 8b771bc1c0f7..d79550720658 100644
--- a/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock
+++ b/nixpkgs/pkgs/applications/misc/jekyll/full/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    activesupport (6.0.3.1)
+    activesupport (6.0.3.2)
       concurrent-ruby (~> 1.0, >= 1.0.2)
       i18n (>= 0.7, < 2)
       minitest (~> 5.1)
@@ -11,13 +11,13 @@ GEM
       public_suffix (>= 2.0.2, < 5.0)
     classifier-reborn (2.2.0)
       fast-stemmer (~> 1.0)
-    coderay (1.1.2)
+    coderay (1.1.3)
     coffee-script (2.4.1)
       coffee-script-source
       execjs
     coffee-script-source (1.12.2)
     colorator (1.1.0)
-    concurrent-ruby (1.1.6)
+    concurrent-ruby (1.1.7)
     em-websocket (0.5.1)
       eventmachine (>= 0.12.9)
       http_parser.rb (~> 0.6.0)
@@ -26,16 +26,16 @@ GEM
     faraday (1.0.1)
       multipart-post (>= 1.2, < 3)
     fast-stemmer (1.0.2)
-    ffi (1.12.2)
+    ffi (1.13.1)
     forwardable-extended (2.6.0)
     gemoji (3.0.1)
-    html-pipeline (2.12.3)
+    html-pipeline (2.14.0)
       activesupport (>= 2)
       nokogiri (>= 1.4)
     http_parser.rb (0.6.0)
-    i18n (1.8.2)
+    i18n (1.8.5)
       concurrent-ruby (~> 1.0)
-    jekyll (4.1.0)
+    jekyll (4.1.1)
       addressable (~> 2.4)
       colorator (~> 1.0)
       em-websocket (~> 0.5)
@@ -55,7 +55,7 @@ GEM
     jekyll-coffeescript (2.0.0)
       coffee-script (~> 2.2)
       coffee-script-source (~> 1.12)
-    jekyll-feed (0.13.0)
+    jekyll-feed (0.15.0)
       jekyll (>= 3.7, < 5.0)
     jekyll-gist (1.5.0)
       octokit (~> 4.2)
@@ -77,7 +77,7 @@ GEM
       gemoji (~> 3.0)
       html-pipeline (~> 2.2)
       jekyll (>= 3.0, < 5.0)
-    kramdown (2.2.1)
+    kramdown (2.3.0)
       rexml
     kramdown-parser-gfm (1.1.0)
       kramdown (~> 2.0)
@@ -97,7 +97,7 @@ GEM
     mini_portile2 (2.4.0)
     minitest (5.14.1)
     multipart-post (2.1.1)
-    nokogiri (1.10.9)
+    nokogiri (1.10.10)
       mini_portile2 (~> 2.4.0)
     octokit (4.18.0)
       faraday (>= 0.9)
@@ -110,9 +110,9 @@ GEM
       ffi (~> 1.0)
     rdoc (6.2.1)
     rexml (3.2.4)
-    rouge (3.19.0)
+    rouge (3.22.0)
     safe_yaml (1.0.5)
-    sassc (2.3.0)
+    sassc (2.4.0)
       ffi (~> 1.9)
     sawyer (0.8.2)
       addressable (>= 2.3.5)
@@ -125,7 +125,7 @@ GEM
       thread_safe (~> 0.1)
     unicode-display_width (1.7.0)
     yajl-ruby (1.4.1)
-    zeitwerk (2.3.0)
+    zeitwerk (2.4.0)
 
 PLATFORMS
   ruby
diff --git a/nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix b/nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix
index 5f54a4f7382f..aa0bc9bcdcc5 100644
--- a/nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix
+++ b/nixpkgs/pkgs/applications/misc/jekyll/full/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l29n9n38c9lpy5smh26r7fy7jp2bpjqlzhxgsr79cv7xpwlrbhs";
+      sha256 = "02sh4q8izyfdnh7z2nj5mn5sklfvqgx9rrag5j3l51y8aqkrg2yk";
       type = "gem";
     };
-    version = "6.0.3.1";
+    version = "6.0.3.2";
   };
   addressable = {
     dependencies = ["public_suffix"];
@@ -49,10 +49,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+      sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
       type = "gem";
     };
-    version = "1.1.2";
+    version = "1.1.3";
   };
   coffee-script = {
     dependencies = ["coffee-script-source" "execjs"];
@@ -90,10 +90,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
       type = "gem";
     };
-    version = "1.1.6";
+    version = "1.1.7";
   };
   em-websocket = {
     dependencies = ["eventmachine" "http_parser.rb"];
@@ -164,10 +164,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
+      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
       type = "gem";
     };
-    version = "1.12.2";
+    version = "1.13.1";
   };
   forwardable-extended = {
     groups = ["default"];
@@ -195,10 +195,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x5i330yks7pb1jxcbm9n6gslkgaqhyvl13d0cqxmxzkcajvb7z4";
+      sha256 = "080sn9z1a64gv04p318jz10y6lv6qd3avip08rrcmq9k4ihai0f1";
       type = "gem";
     };
-    version = "2.12.3";
+    version = "2.14.0";
   };
   "http_parser.rb" = {
     groups = ["default"];
@@ -216,10 +216,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0jwrd1l4mxz06iyx6053lr6hz2zy7ah2k3ranfzisvych5q19kwm";
+      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
       type = "gem";
     };
-    version = "1.8.2";
+    version = "1.8.5";
   };
   jekyll = {
     dependencies = ["addressable" "colorator" "em-websocket" "i18n" "jekyll-sass-converter" "jekyll-watch" "kramdown" "kramdown-parser-gfm" "liquid" "mercenary" "pathutil" "rouge" "safe_yaml" "terminal-table"];
@@ -227,10 +227,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0v01g9cwn4v7rnpsl9yvscjzvah3p4xwh03zp37zxkvw5kv004n8";
+      sha256 = "192k1ggw99slpqpxb4xamcvcm2pdahgnmygl746hmkrar0i3xa5r";
       type = "gem";
     };
-    version = "4.1.0";
+    version = "4.1.1";
   };
   jekyll-avatar = {
     dependencies = ["jekyll"];
@@ -260,10 +260,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1lx8nvkhd8l1wm3b6s506rycwbmpbzbsbjl65p21asjz6vbwf1ir";
+      sha256 = "1mgc1ik2cq2g8g7z9ql2i6ydzy771m2i4qrd1q77x8cf2sprlb0z";
       type = "gem";
     };
-    version = "0.13.0";
+    version = "0.15.0";
   };
   jekyll-gist = {
     dependencies = ["octokit"];
@@ -369,10 +369,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "059mk8lmddp2a2aa6s4pp7x2yyqbqg5crx5jkn32dzlnqi2j5cn6";
+      sha256 = "1vmw752c26ny2jwl0npn0gbyqwgz4hdmlpxnsld9qi9xhk5b1qh7";
       type = "gem";
     };
-    version = "2.2.1";
+    version = "2.3.0";
   };
   kramdown-parser-gfm = {
     dependencies = ["kramdown"];
@@ -519,10 +519,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12j76d0bp608932xkzmfi638c7aqah57l437q8494znzbj610qnm";
+      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
       type = "gem";
     };
-    version = "1.10.9";
+    version = "1.10.10";
   };
   octokit = {
     dependencies = ["faraday" "sawyer"];
@@ -602,10 +602,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "102rc07d78k5bkl0s9nd1gw6wz0w0zcvg4g5sl7z9xxi4r793c35";
+      sha256 = "1wcz7i009wdbymlfsamagqi18m6ih8j60bii0k18f21g70r72i0m";
       type = "gem";
     };
-    version = "3.19.0";
+    version = "3.22.0";
   };
   safe_yaml = {
     groups = ["default"];
@@ -623,10 +623,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qzfnvb8khvc6w2sn3k91mndc2w50xxx5c84jkr6xdxlmaq1a3kg";
+      sha256 = "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.4.0";
   };
   sawyer = {
     dependencies = ["addressable" "faraday"];
@@ -718,9 +718,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1akpm3pwvyiack2zk6giv9yn3cqb8pw6g40p4394pdc3xmy3s4k0";
+      sha256 = "0jvn50k76kl14fpymk4hdsf9sk00jl84yxzl783xhnw4dicp0m0k";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.4.0";
   };
 }
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix b/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix
index 6515b3132d27..7b99f829224b 100644
--- a/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/misc/joplin-desktop/default.nix
@@ -2,20 +2,19 @@
 
 let
   pname = "joplin-desktop";
-  version = "1.0.216";
-  desktopItem = makeDesktopItem {
-     name = "Joplin";
-     exec = "joplin-desktop";
-     type = "Application";
-     desktopName = "Joplin";
-  };
-in appimageTools.wrapType2 rec {
+  version = "1.0.245";
   name = "${pname}-${version}";
+
   src = fetchurl {
     url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.AppImage";
-    sha256 = "17rb7h98h9i2p5kw5gznx5swpz6yxqdxwc9x5cgbkc31vk10iszn";
+    sha256 = "1xybzjixqmp95b2a97kbbygn0jwndws9115cd7mbw8czl7nshdq6";
   };
 
+  appimageContents = appimageTools.extractType2 {
+    inherit name src;
+  };
+in appimageTools.wrapType2 rec {
+  inherit name src;
 
   profile = ''
     export LC_ALL=C.UTF-8
@@ -25,9 +24,12 @@ in appimageTools.wrapType2 rec {
   multiPkgs = null; # no 32bit needed
   extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
   extraInstallCommands = ''
-    mkdir -p $out/share/applications
-    ln -s ${desktopItem}/share/applications/* $out/share/applications
     mv $out/bin/{${name},${pname}}
+    install -m 444 -D ${appimageContents}/joplin.desktop $out/share/applications/joplin.desktop
+    install -m 444 -D ${appimageContents}/joplin.png \
+      $out/share/pixmaps/joplin.png
+    substituteInPlace $out/share/applications/joplin.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
   '';
 
 
diff --git a/nixpkgs/pkgs/applications/misc/josm/default.nix b/nixpkgs/pkgs/applications/misc/josm/default.nix
index 89d09703ddc5..72095cee1c36 100644
--- a/nixpkgs/pkgs/applications/misc/josm/default.nix
+++ b/nixpkgs/pkgs/applications/misc/josm/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, fetchsvn, makeWrapper, unzip, jre, libXxf86vm }:
 let
   pname = "josm";
-  version = "16538";
+  version = "17013";
   srcs = {
     jar = fetchurl {
       url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
-      sha256 = "07hzwcjnfbl3s8l0m6japln0clm6wjm1zd3r1pd47b1dvclnyv28";
+      sha256 = "0dgfiqk5bcbs03llkffm6h96zcqa19azbanac883g26f6z6j9b8j";
     };
     macosx = fetchurl {
       url = "https://josm.openstreetmap.de/download/macosx/josm-macosx-${version}.zip";
-      sha256 = "1y0ssrwfqnmcvxwjfa3gdc3m9a952n8l3pdx0zmmaqwws4kak2a2";
+      sha256 = "1mzaxcswmxah0gc9cifgaazwisr5cbanf4bspv1ra8xwzj5mdss6";
     };
     pkg = fetchsvn {
       url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
diff --git a/nixpkgs/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch b/nixpkgs/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch
new file mode 100644
index 000000000000..8f9271ac996b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/k2pdfopt/0001-Fix-CMakeLists.patch
@@ -0,0 +1,49 @@
+From 2629af4ed00d7ca65359178203d80fb146901cdb Mon Sep 17 00:00:00 2001
+From: Daniel Fullmer <danielrf12@gmail.com>
+Date: Fri, 3 Jul 2020 21:00:45 -0700
+Subject: [PATCH 1/2] Fix CMakeLists
+
+---
+ CMakeLists.txt | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e218279..4341de9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -57,6 +57,7 @@ endif(JPEG_FOUND)
+ include(FindJasper)
+ if(JASPER_FOUND)
+   set(HAVE_JASPER_LIB 1)
++  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${JASPER_LIBRARY})
+ endif(JASPER_FOUND)
+ 
+ # paths from willuslib/wgs.c
+@@ -71,9 +72,12 @@ else()
+   message(STATUS "Could NOT find ghostscript executable")
+ endif(GHOSTSCRIPT_EXECUTABLE)
+ 
+-# willus.h
+-# HAVE_GSL_LIB
+-
++pkg_check_modules(GSL gsl)
++if(GSL_FOUND)
++  set(HAVE_GSL_LIB 1)
++  include_directories(SYSTEM ${GSL_INCLUDEDIR})
++  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${GSL_LDFLAGS})
++endif(GSL_FOUND)
+ 
+ # libfreetype6 (>= 2.3.9), libjbig2dec0, libjpeg8 (>= 8c), libx11-6, libxext6, zlib1g (>= 1:1.2.0)
+ # MUPDF_STATIC_LDFLAGS misses mupdf-js-none, and doubles libs ...
+@@ -85,7 +89,7 @@ if(MUPDF_FOUND)
+   include_directories(SYSTEM ${MUPDF_INCLUDEDIR})
+   message(STATUS "mupdf libraries: ${MUPDF_LDFLAGS}")
+   set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${MUPDF_LDFLAGS} 
+-    -lmupdf-js-none -lopenjpeg -ljbig2dec -ljpeg -lfreetype
++
+   )
+ endif(MUPDF_FOUND)
+ 
+-- 
+2.27.0
+
diff --git a/nixpkgs/pkgs/applications/misc/k2pdfopt/default.nix b/nixpkgs/pkgs/applications/misc/k2pdfopt/default.nix
index 8899654cc4c8..75e467d4cdf8 100644
--- a/nixpkgs/pkgs/applications/misc/k2pdfopt/default.nix
+++ b/nixpkgs/pkgs/applications/misc/k2pdfopt/default.nix
@@ -1,9 +1,8 @@
-{ stdenv, fetchzip, fetchurl, fetchpatch, cmake, pkgconfig
-, zlib, libpng
+{ stdenv, runCommand, fetchzip, fetchurl, fetchpatch, fetchFromGitHub
+, cmake, pkgconfig, zlib, libpng, makeWrapper
 , enableGSL ? true, gsl
 , enableGhostScript ? true, ghostscript
 , enableMuPDF ? true, mupdf
-, enableJPEG2K ? false, jasper ? null  # disabled by default, jasper has unfixed CVE
 , enableDJVU ? true, djvulibre
 , enableGOCR ? false, gocr # Disabled by default due to crashes
 , enableTesseract ? true, leptonica, tesseract4
@@ -11,44 +10,132 @@
 
 with stdenv.lib;
 
-stdenv.mkDerivation rec {
-  pname = "k2pdfopt";
-  version = "2.51a";
+# k2pdfopt is a pain to package. It requires modified versions of mupdf,
+# leptonica, and tesseract.  Instead of shipping patches for these upstream
+# packages, k2pdfopt includes just the modified source files for these
+# packages.  The individual files from the {mupdf,leptonica,tesseract}_mod/
+# directories are intended to replace the corresponding source files in the
+# upstream packages, for a particular version of that upstream package.
+#
+# There are a few ways we could approach packaging these modified versions of
+# mupdf, leptonica, and mupdf:
+# 1) Override the upstream source with a new derivation that involves copying
+# the modified source files from k2pdfopt and replacing the corresponding
+# source files in the upstream packages. Since the files are intended for a
+# particular version of the upstream package, this would not allow us to easily
+# use updates to those packages in nixpkgs.
+# 2) Manually produce patches which can be applied against the upstream
+# project, and have the same effect as replacing those files.  This is what I
+# believe k2pdfopt should do this for us anyway.  The benefit of creating and
+# applying patches in this way is that minor updates (esp. security fixes) to
+# upstream packages might still allow these patches to apply successfully.
+# 3) Automatically produce these patches inside a nix derivation. This is the
+# approach taken here, using the "mkPatch" provided below.  This has the
+# benefit of easier review and should hopefully be simpler to update in the
+# future.
+
+let
+  # Create a patch against src based on changes applied in patchCommands
+  mkPatch = { name, src, patchCommands }: runCommand "${name}-k2pdfopt.patch" { inherit src; } ''
+    source $stdenv/setup
+    unpackPhase
 
-  src = (fetchzip {
-    url = "http://www.willus.com/k2pdfopt/src/k2pdfopt_v2.51_src.zip";
-    sha256 = "133l7xkvi67s6sfk8cfh7rmavbsf7ib5fyksk1ci6b6sch3z2sw9";
-  });
+    orig=$sourceRoot
+    new=$sourceRoot-modded
+    cp -r $orig/. $new/
 
-  # Note: the v2.51a zip contains only files to be replaced in the v2.50 zip.
-  v251a_src = (fetchzip {
-    url = "http://www.willus.com/k2pdfopt/src/k2pdfopt_v2.51a_src.zip";
-    sha256 = "0vvwblii7kgdwfxw8dzk6jbmz4dv94d7rkv18i60y8wkayj6yhl6";
-  });
+    pushd $new >/dev/null
+    ${patchCommands}
+    popd >/dev/null
 
-  postUnpack = ''
-    cp -r ${v251a_src}/* $sourceRoot
+    diff -Naur $orig $new > $out || true
   '';
 
-  patches = [ ./k2pdfopt.patch ./k2pdfopt-mupdf-1.16.1.patch ];
+  pname = "k2pdfopt";
+  version = "2.53";
+  k2pdfopt_src = fetchzip {
+    url = "http://www.willus.com/${pname}/src/${pname}_v${version}_src.zip";
+    sha256 = "1fna8bg3pascjfc3hmc6xn0xi2yh7f1qp0d344mw9hqanbnykyy8";
+  };
+in stdenv.mkDerivation rec {
+  inherit pname version;
+  src = k2pdfopt_src;
+
+  patches = [
+    ./0001-Fix-CMakeLists.patch
+  ];
+
+  postPatch = ''
+    substituteInPlace willuslib/bmpdjvu.c \
+      --replace "<djvu.h>" "<libdjvu/ddjvuapi.h>"
+  '';
 
-  nativeBuildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig makeWrapper ];
 
   buildInputs =
   let
-    #  The patches below were constructed by taking the files from k2pdfopt in
-    #  the {mupdf,leptonica,tesseract}_mod/ directories, replacing the
-    #  corresponding files in the respective source trees, resolving any errors
-    #  with more recent versions of these depencencies, and running diff.
-    mupdf_modded = mupdf.overrideAttrs (attrs: {
-      patches = attrs.patches ++ [ ./mupdf.patch ]; # Last verified with mupdf 1.16.1
+    # We use specific versions of these sources below to match the versions
+    # used in the k2pdfopt source. Note that this does _not_ need to match the
+    # version used elsewhere in nixpkgs, since it is only used to create the
+    # patch that can then be applied to the version in nixpkgs.
+    mupdf_patch = mkPatch {
+      name = "mupdf";
+      src = fetchurl {
+        url = "https://mupdf.com/downloads/archive/mupdf-1.17.0-source.tar.gz";
+        sha256 = "13nl9nrcx2awz9l83mlv2psi1lmn3hdnfwxvwgwiwbxlkjl3zqq0";
+      };
+      patchCommands = ''
+        cp ${k2pdfopt_src}/mupdf_mod/{filter-basic,font,stext-device,string}.c ./source/fitz/
+        cp ${k2pdfopt_src}/mupdf_mod/pdf-* ./source/pdf/
+      '';
+    };
+    mupdf_modded = mupdf.overrideAttrs ({ patches ? [], ... }: {
+      patches = patches ++ [ mupdf_patch ];
+      # This function is missing in font.c, see font-win32.c
+      postPatch = ''
+        echo "void pdf_install_load_system_font_funcs(fz_context *ctx) {}" >> source/fitz/font.c
+      '';
     });
-    leptonica_modded = leptonica.overrideAttrs (attrs: {
-      patches = [ ./leptonica.patch ]; # Last verified with leptonica 1.78.0
+
+    leptonica_patch = mkPatch {
+      name = "leptonica";
+      src = fetchurl {
+        url = "http://www.leptonica.org/source/leptonica-1.79.0.tar.gz";
+        sha256 = "1n004gv1dj3pq1fcnfdclvvx5nang80336aa67nvs3nnqp4ncn84";
+      };
+      patchCommands = "cp -r ${k2pdfopt_src}/leptonica_mod/. ./src/";
+    };
+    leptonica_modded = leptonica.overrideAttrs ({ patches ? [], ... }: {
+      patches = patches ++ [ leptonica_patch ];
     });
+
+    tesseract_patch = mkPatch {
+      name = "tesseract";
+      src = fetchFromGitHub {
+        owner = "tesseract-ocr";
+        repo = "tesseract";
+        rev = "4.1.1";
+        sha256 = "1ca27zbjpx35nxh9fha410z3jskwyj06i5hqiqdc08s2d7kdivwn";
+      };
+      patchCommands = ''
+        cp ${k2pdfopt_src}/tesseract_mod/{baseapi,tesscapi,tesseract}.* src/api/
+        cp ${k2pdfopt_src}/tesseract_mod/{tesscapi,tessedit,tesseract}.* src/ccmain/
+        cp ${k2pdfopt_src}/tesseract_mod/dotproduct{avx,fma,sse}.* src/arch/
+        cp ${k2pdfopt_src}/tesseract_mod/{intsimdmatrixsse,simddetect}.* src/arch/
+        cp ${k2pdfopt_src}/tesseract_mod/{errcode,genericvector,mainblk,params,serialis,tessdatamanager,tess_version,tprintf,unicharset}.* src/ccutil/
+        cp ${k2pdfopt_src}/tesseract_mod/{input,lstmrecognizer}.* src/lstm/
+        cp ${k2pdfopt_src}/tesseract_mod/openclwrapper.* src/opencl/
+      '';
+    };
     tesseract_modded = tesseract4.override {
-      tesseractBase = tesseract4.tesseractBase.overrideAttrs (_: {
-        patches = [ ./tesseract.patch ]; # Last verified with tesseract 1.4
+      tesseractBase = tesseract4.tesseractBase.overrideAttrs ({ patches ? [], ... }: {
+        patches = patches ++ [ tesseract_patch ];
+        # Additional compilation fixes
+        postPatch = ''
+          echo libtesseract_api_la_SOURCES += tesscapi.cpp >> src/api/Makefile.am
+          substituteInPlace src/api/tesseract.h \
+            --replace "#include <leptonica.h>" "//#include <leptonica.h>"
+        '';
       });
     };
   in
@@ -56,7 +143,6 @@ stdenv.mkDerivation rec {
     optional enableGSL gsl ++
     optional enableGhostScript ghostscript ++
     optional enableMuPDF mupdf_modded ++
-    optional enableJPEG2K jasper ++
     optional enableDJVU djvulibre ++
     optional enableGOCR gocr ++
     optionals enableTesseract [ leptonica_modded tesseract_modded ];
@@ -71,6 +157,10 @@ stdenv.mkDerivation rec {
     install -D -m 755 k2pdfopt $out/bin/k2pdfopt
   '';
 
+  preFixup = optionalString enableTesseract ''
+    wrapProgram $out/bin/k2pdfopt --set-default TESSDATA_PREFIX ${tesseract4}/share/tessdata
+  '';
+
   meta = with stdenv.lib; {
     description = "Optimizes PDF/DJVU files for mobile e-readers (e.g. the Kindle) and smartphones";
     homepage = "http://www.willus.com/k2pdfopt";
diff --git a/nixpkgs/pkgs/applications/misc/k2pdfopt/k2pdfopt-mupdf-1.16.1.patch b/nixpkgs/pkgs/applications/misc/k2pdfopt/k2pdfopt-mupdf-1.16.1.patch
deleted file mode 100644
index 3a9eca30e751..000000000000
--- a/nixpkgs/pkgs/applications/misc/k2pdfopt/k2pdfopt-mupdf-1.16.1.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-diff --git a/willuslib/wmupdf.c b/willuslib/wmupdf.c
-index 81627ef..f14a96c 100644
---- a/willuslib/wmupdf.c
-+++ b/willuslib/wmupdf.c
-@@ -189,8 +189,6 @@ int wmupdf_remake_pdf(char *infile,char *outfile,WPDFPAGEINFO *pageinfo,int use_
-     pdf_write_opts.do_compress=1;
-     pdf_write_opts.do_linear=0;
-     pdf_write_opts.do_garbage=1; /* 2 and 3 don't work for this. */
--    pdf_write_opts.continue_on_error=0;
--    pdf_write_opts.errors=NULL;
-     write_failed=0;
-     wpdfpageinfo_sort(pageinfo);
-     xref=NULL;
-@@ -1687,8 +1685,8 @@ WPDFOUTLINE *wpdfoutline_read_from_pdf_file(char *filename)
-         /* Sumatra version of MuPDF v1.4 -- use locally installed fonts */
-         pdf_install_load_system_font_funcs(ctx);
-         fz_try(ctx) { doc=fz_open_document(ctx,filename); }
--        fz_catch(ctx) 
--            { 
-+        fz_catch(ctx)
-+            {
-             fz_drop_context(ctx);
-             return(NULL);
-             }
-@@ -1890,5 +1888,5 @@ static pdf_obj *pdf_new_string_utf8(fz_context *ctx,char *string)
-     willus_mem_free((double **)&utfbuf,funcname);
-     return(pdfobj);
-     }
--    
-+
- #endif /* HAVE_MUPDF_LIB */
-diff --git a/willuslib/wmupdfinfo.c b/willuslib/wmupdfinfo.c
-index 5c7f38c..9b9e6fd 100644
---- a/willuslib/wmupdfinfo.c
-+++ b/willuslib/wmupdfinfo.c
-@@ -237,23 +237,22 @@ static void showglobalinfo(fz_context *ctx, globals *glo,char *filename)
-         pdf_obj *robj;
- 
-         robj=pdf_resolve_indirect(ctx,obj);
--        n=pdf_sprint_obj(ctx,NULL,0,robj,1);
--        buf=malloc(n+2);
-+        buf=pdf_sprint_obj(ctx,NULL,0,&n,robj,1,0);
-         if (buf==NULL)
-             {
-             fz_write_printf(ctx,out,"Info object (%d %d R):\n",pdf_to_num(ctx,obj),pdf_to_gen(ctx,obj));
--		    pdf_print_obj(ctx,out,robj,1);
-+		    pdf_print_obj(ctx,out,robj,1,0);
-             }
-         else
-             {
--            pdf_sprint_obj(ctx,buf,n+2,robj,1);
-+            pdf_sprint_obj(ctx,buf,n+2,&n,robj,1,0);
-             display_pdf_field(ctx,out,buf,"Title","TITLE");
-             display_pdf_field(ctx,out,buf,"CreationDate","CREATED");
-             display_pdf_field(ctx,out,buf,"ModDate","LAST MODIFIED");
-             display_pdf_field(ctx,out,buf,"Producer","PDF PRODUCER");
-             display_pdf_field(ctx,out,buf,"Creator","CREATOR");
-             display_file_size(ctx,out,filename);
--            free(buf);
-+            fz_free(ctx,buf);
-             }
- 	    }
-     if (glo->dims==1)
-@@ -275,7 +274,7 @@ static void showglobalinfo(fz_context *ctx, globals *glo,char *filename)
- 	if (obj)
-         {
- 		fz_write_printf(ctx,out, "\nEncryption object (%d %d R):\n", pdf_to_num(ctx,obj), pdf_to_gen(ctx,obj));
--		pdf_print_obj(ctx,out, pdf_resolve_indirect(ctx,obj), 1);
-+		pdf_print_obj(ctx,out, pdf_resolve_indirect(ctx,obj), 1, 0);
-         }
-     }
- 
-@@ -396,7 +395,7 @@ gatherdimensions(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_
- 	if (j < glo->dims)
- 		return;
- 
--	glo->dim = fz_resize_array(ctx, glo->dim, glo->dims+1, sizeof(struct info));
-+	glo->dim = fz_realloc_array(ctx, glo->dim, glo->dims+1, struct info);
- 	glo->dims++;
- 
- 	glo->dim[glo->dims - 1].page = page;
-@@ -441,7 +440,7 @@ gatherfonts(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj *
- 		if (k < glo->fonts)
- 			continue;
- 
--		glo->font = fz_resize_array(ctx, glo->font, glo->fonts+1, sizeof(struct info));
-+		glo->font = fz_realloc_array(ctx, glo->font, glo->fonts+1, struct info);
- 		glo->fonts++;
- 
- 		glo->font[glo->fonts - 1].page = page;
-@@ -510,7 +509,7 @@ gatherimages(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj
- 		if (k < glo->images)
- 			continue;
- 
--		glo->image = fz_resize_array(ctx, glo->image, glo->images+1, sizeof(struct info));
-+		glo->image = fz_realloc_array(ctx, glo->image, glo->images+1, struct info);
- 		glo->images++;
- 
- 		glo->image[glo->images - 1].page = page;
-@@ -568,7 +567,7 @@ gatherforms(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj *
- 		if (k < glo->forms)
- 			continue;
- 
--		glo->form = fz_resize_array(ctx, glo->form, glo->forms+1, sizeof(struct info));
-+		glo->form = fz_realloc_array(ctx, glo->form, glo->forms+1, struct info);
- 		glo->forms++;
- 
- 		glo->form[glo->forms - 1].page = page;
-@@ -613,7 +612,7 @@ gatherpsobjs(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_obj
- 		if (k < glo->psobjs)
- 			continue;
- 
--		glo->psobj = fz_resize_array(ctx, glo->psobj, glo->psobjs+1, sizeof(struct info));
-+		glo->psobj = fz_realloc_array(ctx, glo->psobj, glo->psobjs+1, struct info);
- 		glo->psobjs++;
- 
- 		glo->psobj[glo->psobjs - 1].page = page;
-@@ -656,7 +655,7 @@ gathershadings(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_ob
- 		if (k < glo->shadings)
- 			continue;
- 
--		glo->shading = fz_resize_array(ctx, glo->shading, glo->shadings+1, sizeof(struct info));
-+		glo->shading = fz_realloc_array(ctx, glo->shading, glo->shadings+1, struct info);
- 		glo->shadings++;
- 
- 		glo->shading[glo->shadings - 1].page = page;
-@@ -724,7 +723,7 @@ gatherpatterns(fz_context *ctx, globals *glo, int page, pdf_obj *pageref, pdf_ob
- 		if (k < glo->patterns)
- 			continue;
- 
--		glo->pattern = fz_resize_array(ctx, glo->pattern, glo->patterns+1, sizeof(struct info));
-+		glo->pattern = fz_realloc_array(ctx, glo->pattern, glo->patterns+1, struct info);
- 		glo->patterns++;
- 
- 		glo->pattern[glo->patterns - 1].page = page;
-@@ -1216,7 +1215,7 @@ void wmupdfinfo_get(char *filename,int *pagelist,char **buf)
-     if (fout==NULL)
-         return;
-     */
--    
-+
-     ctx = fz_new_context(NULL, NULL, FZ_STORE_UNLIMITED);
-     if (!ctx)
-         {
-@@ -1307,5 +1306,5 @@ static void date_convert(char *dst,char *src)
-     else if (src[i]!='\0')
-         sprintf(&dst[strlen(dst)]," %s",&src[i]);
-     }
--    
-+
- #endif /* HAVE_MUPDF_LIB */
diff --git a/nixpkgs/pkgs/applications/misc/k2pdfopt/k2pdfopt.patch b/nixpkgs/pkgs/applications/misc/k2pdfopt/k2pdfopt.patch
deleted file mode 100644
index cf7e4896b803..000000000000
--- a/nixpkgs/pkgs/applications/misc/k2pdfopt/k2pdfopt.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 4a2378b..502c477 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -52,6 +52,7 @@ endif(JPEG_FOUND)
- include(FindJasper)
- if(JASPER_FOUND)
-   set(HAVE_JASPER_LIB 1)
-+  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${JASPER_LIBRARY})
- endif(JASPER_FOUND)
- 
- # paths from willuslib/wgs.c
-@@ -66,8 +67,12 @@ else()
-   message(STATUS "Could NOT find ghostscript executable")
- endif(GHOSTSCRIPT_EXECUTABLE)
- 
--# willus.h
--# HAVE_GSL_LIB
-+pkg_check_modules(GSL gsl)
-+if(GSL_FOUND)
-+  set(HAVE_GSL_LIB 1)
-+  include_directories(SYSTEM ${GSL_INCLUDEDIR})
-+  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${GSL_LDFLAGS})
-+endif(GSL_FOUND)
- 
- 
- # libfreetype6 (>= 2.3.9), libjbig2dec0, libjpeg8 (>= 8c), libx11-6, libxext6, zlib1g (>= 1:1.2.0)
-@@ -80,7 +85,7 @@ if(MUPDF_FOUND)
-   include_directories(SYSTEM ${MUPDF_INCLUDEDIR})
-   message(STATUS "mupdf libraries: ${MUPDF_LDFLAGS}")
-   set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${MUPDF_LDFLAGS} 
--    -lmupdf-js-none -lopenjpeg -ljbig2dec -ljpeg -lfreetype
-+ 
-   )
- endif(MUPDF_FOUND)
- 
-@@ -91,9 +96,25 @@ if(DJVU_FOUND)
-   set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${DJVU_LDFLAGS})
- endif(DJVU_FOUND)
- 
--# HAVE_GOCR_LIB
--# HAVE_LEPTONICA_LIB
--# HAVE_TESSERACT_LIB
-+find_library(GOCR_LIB NAMES Pgm2asc)
-+if(GOCR_LIB)
-+  set(HAVE_GOCR_LIB 1)
-+  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${GOCR_LIB})
-+endif(GOCR_LIB)
-+
-+pkg_check_modules(LEPTONICA lept)
-+if(LEPTONICA_FOUND)
-+  set(HAVE_LEPTONICA_LIB 1)
-+  include_directories(SYSTEM ${LEPTONICA_INCLUDEDIR})
-+  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${LEPTONICA_LDFLAGS})
-+endif(LEPTONICA_FOUND)
-+
-+pkg_check_modules(TESSERACT tesseract)
-+if(TESSERACT_FOUND)
-+  set(HAVE_TESSERACT_LIB 1)
-+  include_directories(SYSTEM ${TESSERACT_INCLUDEDIR})
-+  set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${TESSERACT_LDFLAGS})
-+endif(TESSERACT_FOUND)
- 
- # ---- Describe project
- 
-diff --git a/willuslib/CMakeLists.txt b/willuslib/CMakeLists.txt
-index 463bbc9..8043db5 100644
---- a/willuslib/CMakeLists.txt
-+++ b/willuslib/CMakeLists.txt
-@@ -6,7 +6,7 @@ include_directories(..)
- set(WILLUSLIB_SRC
-     ansi.c array.c bmp.c bmpdjvu.c bmpmupdf.c dtcompress.c filelist.c
-     fontdata.c fontrender.c gslpolyfit.c linux.c math.c mem.c ocr.c
--    ocrjocr.c ocrtess.c pdfwrite.c point2d.c render.c strbuf.c string.c
-+    ocrgocr.c ocrtess.c pdfwrite.c point2d.c render.c strbuf.c string.c
-     token.c wfile.c wgs.c wgui.c willusversion.c win.c winbmp.c
-     wincomdlg.c winmbox.c winshell.c wmupdf.c wmupdfinfo.c wpdf.c wsys.c
-     wzfile.c wleptonica.c
-diff --git a/willuslib/ocrgocr.c b/willuslib/ocrgocr.c
-index 6027e9a..fbe10f0 100644
---- a/willuslib/ocrgocr.c
-+++ b/willuslib/ocrgocr.c
-@@ -29,6 +29,8 @@
- #ifdef HAVE_GOCR_LIB
- #include <gocr.h>
- 
-+job_t *OCR_JOB;
-+
- /*
- ** bmp8 must be grayscale
- ** (x1,y1) and (x2,y2) from top left of bitmap
-@@ -63,6 +65,7 @@ void gocr_single_word_from_bmp8(char *text,int maxlen,WILLUSBITMAP *bmp8,
-     h=y2-y1+1;
-     dh=h+bw*2;
-     job=&_job;
-+    OCR_JOB=job;
-     job_init(job);
-     job_init_image(job);
-     // willus_mem_alloc_warn((void **)&job->src.p.p,w*h,funcname,10);
diff --git a/nixpkgs/pkgs/applications/misc/k2pdfopt/leptonica.patch b/nixpkgs/pkgs/applications/misc/k2pdfopt/leptonica.patch
deleted file mode 100644
index dfab99fd0130..000000000000
--- a/nixpkgs/pkgs/applications/misc/k2pdfopt/leptonica.patch
+++ /dev/null
@@ -1,254 +0,0 @@
-From 8c11a20925686855023df90ed477957c7d7fe91e Mon Sep 17 00:00:00 2001
-From: Daniel Fullmer <danielrf12@gmail.com>
-Date: Fri, 13 Sep 2019 15:54:21 -0400
-Subject: [PATCH] Willus mod for k2pdfopt
-
----
- src/allheaders.h |   4 ++
- src/dewarp2.c    | 106 ++++++++++++++++++++++++++++++++++++++++++-----
- src/leptwin.c    |   6 ++-
- 3 files changed, 104 insertions(+), 12 deletions(-)
-
-diff --git a/src/allheaders.h b/src/allheaders.h
-index e68eff1..b3cc729 100644
---- a/src/allheaders.h
-+++ b/src/allheaders.h
-@@ -669,6 +669,10 @@ LEPT_DLL extern L_DEWARPA * dewarpaReadMem ( const l_uint8 *data, size_t size );
- LEPT_DLL extern l_ok dewarpaWrite ( const char *filename, L_DEWARPA *dewa );
- LEPT_DLL extern l_ok dewarpaWriteStream ( FILE *fp, L_DEWARPA *dewa );
- LEPT_DLL extern l_ok dewarpaWriteMem ( l_uint8 **pdata, size_t *psize, L_DEWARPA *dewa );
-+/* WILLUS MOD */
-+    LEPT_DLL extern l_int32 dewarpBuildPageModel_ex ( L_DEWARP *dew, const char *debugfile,l_int32 fit_order );
-+    LEPT_DLL extern l_int32 dewarpFindVertDisparity_ex ( L_DEWARP *dew, PTAA *ptaa, l_int32 rotflag,l_int32 fit_order );
-+    LEPT_DLL extern l_int32 dewarpBuildLineModel_ex ( L_DEWARP *dew, l_int32 opensize, const char *debugfile,l_int32 fit_order );
- LEPT_DLL extern l_ok dewarpBuildPageModel ( L_DEWARP *dew, const char *debugfile );
- LEPT_DLL extern l_ok dewarpFindVertDisparity ( L_DEWARP *dew, PTAA *ptaa, l_int32 rotflag );
- LEPT_DLL extern l_ok dewarpFindHorizDisparity ( L_DEWARP *dew, PTAA *ptaa );
-diff --git a/src/dewarp2.c b/src/dewarp2.c
-index 220eec1..2e29500 100644
---- a/src/dewarp2.c
-+++ b/src/dewarp2.c
-@@ -144,9 +144,17 @@ static const l_float32   L_ALLOWED_W_FRACT = 0.05;  /* no bigger */
-  *          longest textlines.
-  * </pre>
-  */
-+/* WILLUS MOD */
- l_ok
--dewarpBuildPageModel(L_DEWARP    *dew,
--                     const char  *debugfile)
-+dewarpBuildPageModel(L_DEWARP *dew,const char *debugfile)
-+{
-+return(dewarpBuildPageModel_ex(dew,debugfile,2));
-+}
-+
-+l_ok
-+dewarpBuildPageModel_ex(L_DEWARP    *dew,
-+                     const char  *debugfile,
-+                     l_int32 fit_order)
- {
- l_int32  linecount, topline, botline, ret;
- PIX     *pixs, *pix1, *pix2, *pix3;
-@@ -225,7 +233,7 @@ PTAA    *ptaa1, *ptaa2;
-         /* Get the sampled vertical disparity from the textline centers.
-          * The disparity array will push pixels vertically so that each
-          * textline is flat and centered at the y-position of the mid-point. */
--    if (dewarpFindVertDisparity(dew, ptaa2, 0) != 0) {
-+    if (dewarpFindVertDisparity_ex(dew, ptaa2, 0, fit_order) != 0) {
-         L_WARNING("vertical disparity not built\n", procName);
-         ptaaDestroy(&ptaa2);
-         return 1;
-@@ -290,13 +298,24 @@ PTAA    *ptaa1, *ptaa2;
-  *          a pdf.  Non-pix debug output goes to /tmp.
-  * </pre>
-  */
-+/* WILLUS MOD */
- l_ok
- dewarpFindVertDisparity(L_DEWARP  *dew,
-                         PTAA      *ptaa,
-                         l_int32    rotflag)
- {
-+return(dewarpFindVertDisparity_ex(dew,ptaa,rotflag,2));
-+}
-+/* WILLUS MOD -- add cubic and quartic fits and ..._ex functions */
-+l_int32
-+dewarpFindVertDisparity_ex(L_DEWARP  *dew,
-+                        PTAA      *ptaa,
-+                        l_int32    rotflag,
-+                        l_int32    fit_order)
-+{
- l_int32     i, j, nlines, npts, nx, ny, sampling;
--l_float32   c0, c1, c2, x, y, midy, val, medval, meddev, minval, maxval;
-+/* WILLUS MOD */
-+l_float32   c0, c1, c2, c3, c4, x, y, midy, val, medval, meddev, minval, maxval;
- l_float32  *famidys;
- NUMA       *nax, *nafit, *nacurve0, *nacurve1, *nacurves;
- NUMA       *namidy, *namidys, *namidysi;
-@@ -304,11 +323,22 @@ PIX        *pix1, *pix2, *pixcirc, *pixdb;
- PTA        *pta, *ptad, *ptacirc;
- PTAA       *ptaa0, *ptaa1, *ptaa2, *ptaa3, *ptaa4, *ptaa5, *ptaat;
- FPIX       *fpix;
-+/* WILLUS MOD */
-+l_int32 fit_order1,fit_order2;
- 
-     PROCNAME("dewarpFindVertDisparity");
- 
-     if (!dew)
-         return ERROR_INT("dew not defined", procName, 1);
-+/* WILLUS MOD */
-+    if (fit_order < 10)
-+        fit_order1 = fit_order2 = fit_order;
-+    else
-+        {
-+        fit_order1=fit_order % 10;
-+        fit_order2=fit_order / 10;
-+        fit_order2=fit_order2 % 10;
-+        }
-     dew->vsuccess = 0;
-     if (!ptaa)
-         return ERROR_INT("ptaa not defined", procName, 1);
-@@ -331,12 +361,32 @@ FPIX       *fpix;
-     pixdb = (rotflag) ? pixRotateOrth(dew->pixs, 1) : pixClone(dew->pixs);
-     for (i = 0; i < nlines; i++) {  /* for each line */
-         pta = ptaaGetPta(ptaa, i, L_CLONE);
--        ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
--        numaAddNumber(nacurve0, c2);
-+/* WILLUS MOD */
-+if (fit_order1>3)
-+    {
-+    ptaGetQuarticLSF(pta, &c4, &c3, &c2, &c1, &c0, NULL);
-+    numaAddNumber(nacurve0, c4);
-+    }
-+else if (fit_order1==3)
-+    {
-+    ptaGetCubicLSF(pta, &c3, &c2, &c1, &c0, NULL);
-+    numaAddNumber(nacurve0, c3);
-+    }
-+else
-+    {
-+    ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
-+    numaAddNumber(nacurve0, c2);
-+    }
-         ptad = ptaCreate(nx);
-         for (j = 0; j < nx; j++) {  /* uniformly sampled in x */
-              x = j * sampling;
--             applyQuadraticFit(c2, c1, c0, x, &y);
-+/* WILLUS MOD */
-+if (fit_order1>3)
-+    applyQuarticFit(c4, c3, c2, c1, c0, x, &y);
-+else if (fit_order1==3)
-+    applyCubicFit(c3, c2, c1, c0, x, &y);
-+else
-+    applyQuadraticFit(c2, c1, c0, x, &y);
-              ptaAddPt(ptad, x, y);
-         }
-         ptaaAddPta(ptaa0, ptad, L_INSERT);
-@@ -350,7 +400,13 @@ FPIX       *fpix;
-         for (i = 0; i < nlines; i++) {
-             pta = ptaaGetPta(ptaa, i, L_CLONE);
-             ptaGetArrays(pta, &nax, NULL);
--            ptaGetQuadraticLSF(pta, NULL, NULL, NULL, &nafit);
-+/* WILLUS MOD */
-+if (fit_order1>3)
-+ptaGetQuarticLSF(pta, NULL, NULL, NULL, NULL, NULL, &nafit);
-+else if (fit_order1==3)
-+ptaGetCubicLSF(pta, NULL, NULL, NULL, NULL, &nafit);
-+else
-+ptaGetQuadraticLSF(pta, NULL, NULL, NULL, &nafit);
-             ptad = ptaCreateFromNuma(nax, nafit);
-             ptaaAddPta(ptaat, ptad, L_INSERT);
-             ptaDestroy(&pta);
-@@ -494,11 +550,24 @@ FPIX       *fpix;
-     ptaa5 = ptaaCreate(nx);  /* uniformly sampled across full height of image */
-     for (j = 0; j < nx; j++) {  /* for each column */
-         pta = ptaaGetPta(ptaa4, j, L_CLONE);
--        ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
-+/* WILLUS MOD */
-+/* Order higher than 2 can cause a little craziness here. */
-+if (fit_order2>3)
-+    ptaGetQuarticLSF(pta, &c4, &c3, &c2, &c1, &c0, NULL);
-+else if (fit_order2==3)
-+    ptaGetCubicLSF(pta, &c3, &c2, &c1, &c0, NULL);
-+else
-+    ptaGetQuadraticLSF(pta, &c2, &c1, &c0, NULL);
-         ptad = ptaCreate(ny);
-         for (i = 0; i < ny; i++) {  /* uniformly sampled in y */
-              y = i * sampling;
--             applyQuadraticFit(c2, c1, c0, y, &val);
-+/* WILLUS MOD */
-+if (fit_order2>3)
-+    applyQuarticFit(c4, c3, c2, c1, c0, y, &val);
-+else if (fit_order2==3)
-+    applyCubicFit(c3, c2, c1, c0, y, &val);
-+else
-+    applyQuadraticFit(c2, c1, c0, y, &val);
-              ptaAddPt(ptad, y, val);
-         }
-         ptaaAddPta(ptaa5, ptad, L_INSERT);
-@@ -1602,11 +1671,21 @@ FPIX      *fpix;
-  *          See notes there.
-  * </pre>
-  */
-+/* WILLUS MOD */
- l_ok
- dewarpBuildLineModel(L_DEWARP    *dew,
-                      l_int32      opensize,
-                      const char  *debugfile)
- {
-+return(dewarpBuildLineModel_ex(dew,opensize,debugfile,2));
-+}
-+
-+l_int32
-+dewarpBuildLineModel_ex(L_DEWARP    *dew,
-+                     l_int32      opensize,
-+                     const char  *debugfile,
-+                     l_int32 fit_order)
-+{
- char     buf[64];
- l_int32  i, j, bx, by, ret, nlines;
- BOXA    *boxa;
-@@ -1695,6 +1774,8 @@ PTAA    *ptaa1, *ptaa2;
- 
-             /* Remove all lines that are not at least 0.75 times the length
-              * of the longest line. */
-+/* WILLUS MOD */
-+/*
-         ptaa2 = dewarpRemoveShortLines(pix, ptaa1, 0.75, DEBUG_SHORT_LINES);
-         if (debugfile) {
-             pix1 = pixConvertTo32(pix);
-@@ -1704,6 +1785,8 @@ PTAA    *ptaa1, *ptaa2;
-             pixDestroy(&pix1);
-             pixDestroy(&pix2);
-         }
-+*/
-+ptaa2=ptaa1;
-         ptaaDestroy(&ptaa1);
-         nlines = ptaaGetCount(ptaa2);
-         if (nlines < dew->minlines) {
-@@ -1717,7 +1800,8 @@ PTAA    *ptaa1, *ptaa2;
-              * centers.  The disparity array will push pixels vertically
-              * so that each line is flat and centered at the y-position
-              * of the mid-point. */
--        ret = dewarpFindVertDisparity(dew, ptaa2, 1 - i);
-+/* WILLUS MOD */
-+        ret = dewarpFindVertDisparity_ex(dew, ptaa2, 1 - i, fit_order);
- 
-             /* If i == 0, move the result to the horizontal disparity,
-              * rotating it back by -90 degrees. */
-diff --git a/src/leptwin.c b/src/leptwin.c
-index 72643a0..573d33e 100644
---- a/src/leptwin.c
-+++ b/src/leptwin.c
-@@ -364,5 +364,9 @@ PIXCMAP   *cmap;
- 
-     return hBitmap;
- }
--
-+#else
-+/* willus mod: Avoid weird issue with OS/X library archiver when there are no symbols */
-+int leptwin_my_empty_func(void);
-+int leptwin_my_empty_func(void)
-+{return(0);}
- #endif   /* _WIN32 */
--- 
-2.22.0
-
diff --git a/nixpkgs/pkgs/applications/misc/k2pdfopt/mupdf.patch b/nixpkgs/pkgs/applications/misc/k2pdfopt/mupdf.patch
deleted file mode 100644
index 0c59a1d20163..000000000000
--- a/nixpkgs/pkgs/applications/misc/k2pdfopt/mupdf.patch
+++ /dev/null
@@ -1,1060 +0,0 @@
-From d8927c969e3387ca2669a616c0ba53bce918a031 Mon Sep 17 00:00:00 2001
-From: Daniel Fullmer <danielrf12@gmail.com>
-Date: Fri, 13 Sep 2019 15:11:45 -0400
-Subject: [PATCH] Willus mod for k2pdfopt
-
----
- source/fitz/filter-basic.c |   3 +
- source/fitz/font-win32.c   | 866 +++++++++++++++++++++++++++++++++++++
- source/fitz/font.c         |   3 +
- source/fitz/stext-device.c |   5 +
- source/fitz/string.c       |   5 +
- source/pdf/pdf-annot.c     |  14 +-
- source/pdf/pdf-link.c      |   3 +
- source/pdf/pdf-parse.c     |   5 +
- source/pdf/pdf-xref.c      |   9 +
- 9 files changed, 912 insertions(+), 1 deletion(-)
- create mode 100644 source/fitz/font-win32.c
-
-diff --git a/source/fitz/filter-basic.c b/source/fitz/filter-basic.c
-index 0713a62e7..b8ef4d292 100644
---- a/source/fitz/filter-basic.c
-+++ b/source/fitz/filter-basic.c
-@@ -259,7 +259,10 @@ look_for_endstream:
- 	if (!state->warned)
- 	{
- 		state->warned = 1;
-+/* willus mod -- no warning */
-+/*
- 		fz_warn(ctx, "PDF stream Length incorrect");
-+*/
- 	}
- 	return *stm->rp++;
- }
-diff --git a/source/fitz/font-win32.c b/source/fitz/font-win32.c
-new file mode 100644
-index 000000000..45de8cfd3
---- /dev/null
-+++ b/source/fitz/font-win32.c
-@@ -0,0 +1,866 @@
-+/*
-+** Routines to access MS Windows system fonts.
-+** From sumatra PDF distro.
-+** Modified for MuPDF v1.9a by willus.com
-+*/
-+#include "mupdf/pdf.h"
-+
-+/*
-+	Which fonts are embedded is based on a few preprocessor definitions.
-+
-+	The base 14 fonts are always embedded.
-+	For CJK font substitution we embed DroidSansFallback.
-+
-+	Set NOCJK to skip all CJK support (this also omits embedding the CJK CMaps)
-+	Set NOCJKFONT to skip the embedded CJK font.
-+	Set NOCJKFULL to embed a smaller CJK font without CJK Extension A support.
-+*/
-+
-+#ifdef NOCJK
-+#define NOCJKFONT
-+#endif
-+
-+/* SumatraPDF: also load fonts included with Windows */
-+#ifdef _WIN32
-+
-+#ifndef UNICODE
-+#define UNICODE
-+#endif
-+#ifndef _UNICODE
-+#define _UNICODE
-+#endif
-+
-+#include <windows.h>
-+
-+// TODO: Use more of FreeType for TTF parsing (for performance reasons,
-+//       the fonts can't be parsed completely, though)
-+#include <ft2build.h>
-+#include FT_TRUETYPE_IDS_H
-+#include FT_TRUETYPE_TAGS_H
-+
-+#define TTC_VERSION1	0x00010000
-+#define TTC_VERSION2	0x00020000
-+
-+#define MAX_FACENAME	128
-+
-+// Note: the font face must be the first field so that the structure
-+//       can be treated like a simple string for searching
-+typedef struct pdf_fontmapMS_s
-+{
-+	char fontface[MAX_FACENAME];
-+	char fontpath[MAX_PATH];
-+	int index;
-+} pdf_fontmapMS;
-+
-+typedef struct pdf_fontlistMS_s
-+{
-+	pdf_fontmapMS *fontmap;
-+	int len;
-+	int cap;
-+} pdf_fontlistMS;
-+
-+typedef struct _tagTT_OFFSET_TABLE
-+{
-+	ULONG	uVersion;
-+	USHORT	uNumOfTables;
-+	USHORT	uSearchRange;
-+	USHORT	uEntrySelector;
-+	USHORT	uRangeShift;
-+} TT_OFFSET_TABLE;
-+
-+typedef struct _tagTT_TABLE_DIRECTORY
-+{
-+	ULONG	uTag;				//table name
-+	ULONG	uCheckSum;			//Check sum
-+	ULONG	uOffset;			//Offset from beginning of file
-+	ULONG	uLength;			//length of the table in bytes
-+} TT_TABLE_DIRECTORY;
-+
-+typedef struct _tagTT_NAME_TABLE_HEADER
-+{
-+	USHORT	uFSelector;			//format selector. Always 0
-+	USHORT	uNRCount;			//Name Records count
-+	USHORT	uStorageOffset;		//Offset for strings storage, from start of the table
-+} TT_NAME_TABLE_HEADER;
-+
-+typedef struct _tagTT_NAME_RECORD
-+{
-+	USHORT	uPlatformID;
-+	USHORT	uEncodingID;
-+	USHORT	uLanguageID;
-+	USHORT	uNameID;
-+	USHORT	uStringLength;
-+	USHORT	uStringOffset;	//from start of storage area
-+} TT_NAME_RECORD;
-+
-+typedef struct _tagFONT_COLLECTION
-+{
-+	ULONG	Tag;
-+	ULONG	Version;
-+	ULONG	NumFonts;
-+} FONT_COLLECTION;
-+
-+static struct {
-+	char *name;
-+	char *pattern;
-+} baseSubstitutes[] = {
-+	{ "Courier", "CourierNewPSMT" },
-+	{ "Courier-Bold", "CourierNewPS-BoldMT" },
-+	{ "Courier-Oblique", "CourierNewPS-ItalicMT" },
-+	{ "Courier-BoldOblique", "CourierNewPS-BoldItalicMT" },
-+	{ "Helvetica", "ArialMT" },
-+	{ "Helvetica-Bold", "Arial-BoldMT" },
-+	{ "Helvetica-Oblique", "Arial-ItalicMT" },
-+	{ "Helvetica-BoldOblique", "Arial-BoldItalicMT" },
-+	{ "Times-Roman", "TimesNewRomanPSMT" },
-+	{ "Times-Bold", "TimesNewRomanPS-BoldMT" },
-+	{ "Times-Italic", "TimesNewRomanPS-ItalicMT" },
-+	{ "Times-BoldItalic", "TimesNewRomanPS-BoldItalicMT" },
-+	{ "Symbol", "SymbolMT" },
-+};
-+static const char *base_font_names[][10] =
-+{
-+	{ "Courier", "CourierNew", "CourierNewPSMT", NULL },
-+	{ "Courier-Bold", "CourierNew,Bold", "Courier,Bold",
-+		"CourierNewPS-BoldMT", "CourierNew-Bold", NULL },
-+	{ "Courier-Oblique", "CourierNew,Italic", "Courier,Italic",
-+		"CourierNewPS-ItalicMT", "CourierNew-Italic", NULL },
-+	{ "Courier-BoldOblique", "CourierNew,BoldItalic", "Courier,BoldItalic",
-+		"CourierNewPS-BoldItalicMT", "CourierNew-BoldItalic", NULL },
-+	{ "Helvetica", "ArialMT", "Arial", NULL },
-+	{ "Helvetica-Bold", "Arial-BoldMT", "Arial,Bold", "Arial-Bold",
-+		"Helvetica,Bold", NULL },
-+	{ "Helvetica-Oblique", "Arial-ItalicMT", "Arial,Italic", "Arial-Italic",
-+		"Helvetica,Italic", "Helvetica-Italic", NULL },
-+	{ "Helvetica-BoldOblique", "Arial-BoldItalicMT",
-+		"Arial,BoldItalic", "Arial-BoldItalic",
-+		"Helvetica,BoldItalic", "Helvetica-BoldItalic", NULL },
-+	{ "Times-Roman", "TimesNewRomanPSMT", "TimesNewRoman",
-+		"TimesNewRomanPS", NULL },
-+	{ "Times-Bold", "TimesNewRomanPS-BoldMT", "TimesNewRoman,Bold",
-+		"TimesNewRomanPS-Bold", "TimesNewRoman-Bold", NULL },
-+	{ "Times-Italic", "TimesNewRomanPS-ItalicMT", "TimesNewRoman,Italic",
-+		"TimesNewRomanPS-Italic", "TimesNewRoman-Italic", NULL },
-+	{ "Times-BoldItalic", "TimesNewRomanPS-BoldItalicMT",
-+		"TimesNewRoman,BoldItalic", "TimesNewRomanPS-BoldItalic",
-+		"TimesNewRoman-BoldItalic", NULL },
-+	{ "Symbol", "Symbol,Italic", "Symbol,Bold", "Symbol,BoldItalic",
-+		"SymbolMT", "SymbolMT,Italic", "SymbolMT,Bold", "SymbolMT,BoldItalic", NULL },
-+	{ "ZapfDingbats", NULL }
-+};
-+
-+static pdf_fontlistMS fontlistMS =
-+{
-+	NULL,
-+	0,
-+	0,
-+};
-+static int strcmp_ignore_space(const char *a, const char *b);
-+static const char *clean_font_name(const char *fontname);
-+static const char *pdf_clean_base14_name(const char *fontname);
-+
-+static inline USHORT BEtoHs(USHORT x)
-+{
-+	BYTE *data = (BYTE *)&x;
-+	return (data[0] << 8) | data[1];
-+}
-+
-+static inline ULONG BEtoHl(ULONG x)
-+{
-+	BYTE *data = (BYTE *)&x;
-+	return (data[0] << 24) | (data[1] << 16) | (data[2] << 8) | data[3];
-+}
-+
-+static int strcmp_ignore_space(const char *a, const char *b)
-+{
-+	while (1)
-+	{
-+		while (*a == ' ')
-+			a++;
-+		while (*b == ' ')
-+			b++;
-+		if (*a != *b)
-+			return 1;
-+		if (*a == 0)
-+			return *a != *b;
-+		if (*b == 0)
-+			return *a != *b;
-+		a++;
-+		b++;
-+	}
-+}
-+
-+/* A little bit more sophisticated name matching so that e.g. "EurostileExtended"
-+   matches "EurostileExtended-Roman" or "Tahoma-Bold,Bold" matches "Tahoma-Bold" */
-+static int
-+lookup_compare(const void *elem1, const void *elem2)
-+{
-+	const char *val1 = elem1;
-+	const char *val2 = elem2;
-+	int len1 = strlen(val1);
-+	int len2 = strlen(val2);
-+
-+	if (len1 != len2)
-+	{
-+		const char *rest = len1 > len2 ? val1 + len2 : val2 + len1;
-+		if (',' == *rest || !_stricmp(rest, "-roman"))
-+			return _strnicmp(val1, val2, fz_mini(len1, len2));
-+	}
-+
-+	return _stricmp(val1, val2);
-+}
-+
-+static void
-+remove_spaces(char *srcDest)
-+{
-+	char *dest;
-+
-+	for (dest = srcDest; *srcDest; srcDest++)
-+		if (*srcDest != ' ')
-+			*dest++ = *srcDest;
-+	*dest = '\0';
-+}
-+
-+static int
-+str_ends_with(const char *str, const char *end)
-+{
-+	size_t len1 = strlen(str);
-+	size_t len2 = strlen(end);
-+
-+	return len1 >= len2 && !strcmp(str + len1 - len2, end);
-+}
-+
-+static pdf_fontmapMS *
-+pdf_find_windows_font_path(const char *fontname)
-+{
-+	return bsearch(fontname, fontlistMS.fontmap, fontlistMS.len, sizeof(pdf_fontmapMS), lookup_compare);
-+}
-+
-+/* source and dest can be same */
-+static void
-+decode_unicode_BE(fz_context *ctx, char *source, int sourcelen, char *dest, int destlen)
-+{
-+	WCHAR *tmp;
-+	int converted, i;
-+
-+	if (sourcelen % 2 != 0)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : invalid unicode string");
-+
-+	tmp = fz_malloc_array(ctx, sourcelen / 2 + 1, sizeof(WCHAR));
-+	for (i = 0; i < sourcelen / 2; i++)
-+		tmp[i] = BEtoHs(((WCHAR *)source)[i]);
-+	tmp[sourcelen / 2] = '\0';
-+
-+	converted = WideCharToMultiByte(CP_UTF8, 0, tmp, -1, dest, destlen, NULL, NULL);
-+	fz_free(ctx, tmp);
-+	if (!converted)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : invalid unicode string");
-+}
-+
-+static void
-+decode_platform_string(fz_context *ctx, int platform, int enctype, char *source, int sourcelen, char *dest, int destlen)
-+{
-+	switch (platform)
-+	{
-+	case TT_PLATFORM_APPLE_UNICODE:
-+		switch (enctype)
-+		{
-+		case TT_APPLE_ID_DEFAULT:
-+		case TT_APPLE_ID_UNICODE_2_0:
-+			decode_unicode_BE(ctx, source, sourcelen, dest, destlen);
-+			return;
-+		}
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : unsupported encoding (%d/%d)", platform, enctype);
-+	case TT_PLATFORM_MACINTOSH:
-+		switch (enctype)
-+		{
-+		case TT_MAC_ID_ROMAN:
-+			if (sourcelen + 1 > destlen)
-+				fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : overlong fontname: %s", source);
-+			// TODO: Convert to UTF-8 from what encoding?
-+			memcpy(dest, source, sourcelen);
-+			dest[sourcelen] = 0;
-+			return;
-+		}
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : unsupported encoding (%d/%d)", platform, enctype);
-+	case TT_PLATFORM_MICROSOFT:
-+		switch (enctype)
-+		{
-+		case TT_MS_ID_SYMBOL_CS:
-+		case TT_MS_ID_UNICODE_CS:
-+		case TT_MS_ID_UCS_4:
-+			decode_unicode_BE(ctx, source, sourcelen, dest, destlen);
-+			return;
-+		}
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : unsupported encoding (%d/%d)", platform, enctype);
-+	default:
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : unsupported encoding (%d/%d)", platform, enctype);
-+	}
-+}
-+
-+static void
-+grow_system_font_list(fz_context *ctx, pdf_fontlistMS *fl)
-+{
-+	int newcap;
-+	pdf_fontmapMS *newitems;
-+
-+	if (fl->cap == 0)
-+		newcap = 1024;
-+	else
-+		newcap = fl->cap * 2;
-+
-+	// use realloc/free for the fontmap, since the list can
-+	// remain in memory even with all fz_contexts destroyed
-+	newitems = realloc(fl->fontmap, newcap * sizeof(pdf_fontmapMS));
-+	if (!newitems)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "OOM in grow_system_font_list");
-+	memset(newitems + fl->cap, 0, sizeof(pdf_fontmapMS) * (newcap - fl->cap));
-+
-+	fl->fontmap = newitems;
-+	fl->cap = newcap;
-+}
-+
-+static void
-+append_mapping(fz_context *ctx, pdf_fontlistMS *fl, const char *facename, const char *path, int index)
-+{
-+	if (fl->len == fl->cap)
-+		grow_system_font_list(ctx, fl);
-+
-+	if (fl->len >= fl->cap)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : fontlist overflow");
-+
-+	fz_strlcpy(fl->fontmap[fl->len].fontface, facename, sizeof(fl->fontmap[0].fontface));
-+	fz_strlcpy(fl->fontmap[fl->len].fontpath, path, sizeof(fl->fontmap[0].fontpath));
-+	fl->fontmap[fl->len].index = index;
-+
-+	++fl->len;
-+}
-+
-+static void
-+safe_read(fz_context *ctx, fz_stream *file, int offset, char *buf, int size)
-+{
-+	int n;
-+	fz_seek(ctx, file, offset, 0);
-+	n = fz_read(ctx, file, (unsigned char *)buf, size);
-+	if (n != size)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "safe_read: read %d, expected %d", n, size);
-+}
-+
-+static void
-+read_ttf_string(fz_context *ctx, fz_stream *file, int offset, TT_NAME_RECORD *ttRecordBE, char *buf, int size)
-+{
-+	char szTemp[MAX_FACENAME * 2];
-+	// ignore empty and overlong strings
-+	int stringLength = BEtoHs(ttRecordBE->uStringLength);
-+	if (stringLength == 0 || stringLength >= sizeof(szTemp))
-+		return;
-+
-+	safe_read(ctx, file, offset + BEtoHs(ttRecordBE->uStringOffset), szTemp, stringLength);
-+	decode_platform_string(ctx, BEtoHs(ttRecordBE->uPlatformID),
-+		BEtoHs(ttRecordBE->uEncodingID), szTemp, stringLength, buf, size);
-+}
-+
-+static void
-+makeFakePSName(char szName[MAX_FACENAME], const char *szStyle)
-+{
-+	// append the font's subfamily, unless it's a Regular font
-+	if (*szStyle && _stricmp(szStyle, "Regular") != 0)
-+	{
-+		fz_strlcat(szName, "-", MAX_FACENAME);
-+		fz_strlcat(szName, szStyle, MAX_FACENAME);
-+	}
-+	remove_spaces(szName);
-+}
-+
-+static void
-+parseTTF(fz_context *ctx, fz_stream *file, int offset, int index, const char *path)
-+{
-+	TT_OFFSET_TABLE ttOffsetTableBE;
-+	TT_TABLE_DIRECTORY tblDirBE;
-+	TT_NAME_TABLE_HEADER ttNTHeaderBE;
-+	TT_NAME_RECORD ttRecordBE;
-+
-+	char szPSName[MAX_FACENAME] = { 0 };
-+	char szTTName[MAX_FACENAME] = { 0 };
-+	char szStyle[MAX_FACENAME] = { 0 };
-+	char szCJKName[MAX_FACENAME] = { 0 };
-+	int i, count, tblOffset;
-+
-+	safe_read(ctx, file, offset, (char *)&ttOffsetTableBE, sizeof(TT_OFFSET_TABLE));
-+
-+	// check if this is a TrueType font of version 1.0 or an OpenType font
-+	if (BEtoHl(ttOffsetTableBE.uVersion) != TTC_VERSION1 &&
-+		BEtoHl(ttOffsetTableBE.uVersion) != TTAG_OTTO)
-+	{
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : invalid font version %x", (unsigned int)BEtoHl(ttOffsetTableBE.uVersion));
-+	}
-+
-+	// determine the name table's offset by iterating through the offset table
-+	count = BEtoHs(ttOffsetTableBE.uNumOfTables);
-+	for (i = 0; i < count; i++)
-+	{
-+		int entryOffset = offset + sizeof(TT_OFFSET_TABLE) + i * sizeof(TT_TABLE_DIRECTORY);
-+		safe_read(ctx, file, entryOffset, (char *)&tblDirBE, sizeof(TT_TABLE_DIRECTORY));
-+		if (!BEtoHl(tblDirBE.uTag) || BEtoHl(tblDirBE.uTag) == TTAG_name)
-+			break;
-+	}
-+	if (count == i || !BEtoHl(tblDirBE.uTag))
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : nameless font");
-+	tblOffset = BEtoHl(tblDirBE.uOffset);
-+
-+	// read the 'name' table for record count and offsets
-+	safe_read(ctx, file, tblOffset, (char *)&ttNTHeaderBE, sizeof(TT_NAME_TABLE_HEADER));
-+	offset = tblOffset + sizeof(TT_NAME_TABLE_HEADER);
-+	tblOffset += BEtoHs(ttNTHeaderBE.uStorageOffset);
-+
-+	// read through the strings for PostScript name and font family
-+	count = BEtoHs(ttNTHeaderBE.uNRCount);
-+	for (i = 0; i < count; i++)
-+	{
-+		short langId, nameId;
-+		BOOL isCJKName;
-+
-+		safe_read(ctx, file, offset + i * sizeof(TT_NAME_RECORD), (char *)&ttRecordBE, sizeof(TT_NAME_RECORD));
-+
-+		langId = BEtoHs(ttRecordBE.uLanguageID);
-+		nameId = BEtoHs(ttRecordBE.uNameID);
-+		isCJKName = TT_NAME_ID_FONT_FAMILY == nameId && LANG_CHINESE == PRIMARYLANGID(langId);
-+
-+		// ignore non-English strings (except for Chinese font names)
-+		if (langId && langId != TT_MS_LANGID_ENGLISH_UNITED_STATES && !isCJKName)
-+			continue;
-+		// ignore names other than font (sub)family and PostScript name
-+		fz_try(ctx)
-+		{
-+			if (isCJKName)
-+				read_ttf_string(ctx, file, tblOffset, &ttRecordBE, szCJKName, sizeof(szCJKName));
-+			else if (TT_NAME_ID_FONT_FAMILY == nameId)
-+				read_ttf_string(ctx, file, tblOffset, &ttRecordBE, szTTName, sizeof(szTTName));
-+			else if (TT_NAME_ID_FONT_SUBFAMILY == nameId)
-+				read_ttf_string(ctx, file, tblOffset, &ttRecordBE, szStyle, sizeof(szStyle));
-+			else if (TT_NAME_ID_PS_NAME == nameId)
-+				read_ttf_string(ctx, file, tblOffset, &ttRecordBE, szPSName, sizeof(szPSName));
-+		}
-+		fz_catch(ctx)
-+		{
-+			fz_warn(ctx, "ignoring face name decoding fonterror");
-+		}
-+	}
-+
-+	// try to prevent non-Arial fonts from accidentally substituting Arial
-+	if (!strcmp(szPSName, "ArialMT"))
-+	{
-+		// cf. https://code.google.com/p/sumatrapdf/issues/detail?id=2471
-+		if (strcmp(szTTName, "Arial") != 0)
-+			szPSName[0] = '\0';
-+		// TODO: is there a better way to distinguish Arial Caps from Arial proper?
-+		// cf. http://code.google.com/p/sumatrapdf/issues/detail?id=1290
-+		else if (strstr(path, "caps") || strstr(path, "Caps"))
-+			fz_throw(ctx, FZ_ERROR_GENERIC, "ignore %s, as it can't be distinguished from Arial,Regular", path);
-+	}
-+
-+	if (szPSName[0])
-+		append_mapping(ctx, &fontlistMS, szPSName, path, index);
-+	if (szTTName[0])
-+	{
-+		// derive a PostScript-like name and add it, if it's different from the font's
-+		// included PostScript name; cf. http://code.google.com/p/sumatrapdf/issues/detail?id=376
-+		makeFakePSName(szTTName, szStyle);
-+		// compare the two names before adding this one
-+		if (lookup_compare(szTTName, szPSName))
-+			append_mapping(ctx, &fontlistMS, szTTName, path, index);
-+	}
-+	if (szCJKName[0])
-+	{
-+		makeFakePSName(szCJKName, szStyle);
-+		if (lookup_compare(szCJKName, szPSName) && lookup_compare(szCJKName, szTTName))
-+			append_mapping(ctx, &fontlistMS, szCJKName, path, index);
-+	}
-+}
-+
-+static void
-+parseTTFs(fz_context *ctx, const char *path)
-+{
-+	fz_stream *file = fz_open_file(ctx, path);
-+	/* "fonterror : %s not found", path */
-+	fz_try(ctx)
-+	{
-+		parseTTF(ctx, file, 0, 0, path);
-+	}
-+	fz_always(ctx)
-+	{
-+		fz_drop_stream(ctx,file);
-+	}
-+	fz_catch(ctx)
-+	{
-+		fz_rethrow(ctx);
-+	}
-+}
-+
-+static void
-+parseTTCs(fz_context *ctx, const char *path)
-+{
-+	FONT_COLLECTION fontcollectionBE;
-+	ULONG i, numFonts, *offsettableBE = NULL;
-+
-+	fz_stream *file = fz_open_file(ctx, path);
-+	/* "fonterror : %s not found", path */
-+
-+	fz_var(offsettableBE);
-+
-+	fz_try(ctx)
-+	{
-+		safe_read(ctx, file, 0, (char *)&fontcollectionBE, sizeof(FONT_COLLECTION));
-+		if (BEtoHl(fontcollectionBE.Tag) != TTAG_ttcf)
-+			fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : wrong format %x", (unsigned int)BEtoHl(fontcollectionBE.Tag));
-+		if (BEtoHl(fontcollectionBE.Version) != TTC_VERSION1 &&
-+			BEtoHl(fontcollectionBE.Version) != TTC_VERSION2)
-+		{
-+			fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror : invalid version %x", (unsigned int)BEtoHl(fontcollectionBE.Version));
-+		}
-+
-+		numFonts = BEtoHl(fontcollectionBE.NumFonts);
-+		offsettableBE = fz_malloc_array(ctx, numFonts, sizeof(ULONG));
-+
-+		safe_read(ctx, file, sizeof(FONT_COLLECTION), (char *)offsettableBE, numFonts * sizeof(ULONG));
-+		for (i = 0; i < numFonts; i++)
-+			parseTTF(ctx, file, BEtoHl(offsettableBE[i]), i, path);
-+	}
-+	fz_always(ctx)
-+	{
-+		fz_free(ctx, offsettableBE);
-+		fz_drop_stream(ctx,file);
-+	}
-+	fz_catch(ctx)
-+	{
-+		fz_rethrow(ctx);
-+	}
-+}
-+
-+static void
-+extend_system_font_list(fz_context *ctx, const WCHAR *path)
-+{
-+	WCHAR szPath[MAX_PATH], *lpFileName;
-+	WIN32_FIND_DATA FileData;
-+	HANDLE hList;
-+
-+	GetFullPathName(path, nelem(szPath), szPath, &lpFileName);
-+
-+	hList = FindFirstFile(szPath, &FileData);
-+	if (hList == INVALID_HANDLE_VALUE)
-+	{
-+		// Don't complain about missing directories
-+		if (GetLastError() == ERROR_FILE_NOT_FOUND)
-+			return;
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "extend_system_font_list: unknown error %d", (int)GetLastError());
-+	}
-+	do
-+	{
-+		if (!(FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY))
-+		{
-+			char szPathUtf8[MAX_PATH], *fileExt;
-+			int res;
-+			lstrcpyn(lpFileName, FileData.cFileName, szPath + MAX_PATH - lpFileName);
-+			res = WideCharToMultiByte(CP_UTF8, 0, szPath, -1, szPathUtf8, sizeof(szPathUtf8), NULL, NULL);
-+			if (!res)
-+			{
-+				fz_warn(ctx, "WideCharToMultiByte failed for %S", szPath);
-+				continue;
-+			}
-+			fileExt = szPathUtf8 + strlen(szPathUtf8) - 4;
-+			fz_try(ctx)
-+			{
-+				if (!_stricmp(fileExt, ".ttc"))
-+					parseTTCs(ctx, szPathUtf8);
-+				else if (!_stricmp(fileExt, ".ttf") || !_stricmp(fileExt, ".otf"))
-+					parseTTFs(ctx, szPathUtf8);
-+			}
-+			fz_catch(ctx)
-+			{
-+				// ignore errors occurring while parsing a given font file
-+			}
-+		}
-+	} while (FindNextFile(hList, &FileData));
-+	FindClose(hList);
-+}
-+
-+static void
-+destroy_system_font_list(void)
-+{
-+	free(fontlistMS.fontmap);
-+	memset(&fontlistMS, 0, sizeof(fontlistMS));
-+}
-+
-+static void
-+create_system_font_list(fz_context *ctx)
-+{
-+	WCHAR szFontDir[MAX_PATH];
-+	UINT cch;
-+
-+	cch = GetWindowsDirectory(szFontDir, nelem(szFontDir) - 12);
-+	if (0 < cch && cch < nelem(szFontDir) - 12)
-+	{
-+        /* willus.com edit--Win XP default MSVCRT.DLL doesn't have wcscat_s */
-+#ifdef _WIN64
-+		wcscat_s(szFontDir, MAX_PATH, L"\\Fonts\\*.?t?");
-+#else
-+		wcscat(szFontDir,L"\\Fonts\\*.?t?");
-+#endif
-+		extend_system_font_list(ctx, szFontDir);
-+	}
-+
-+	if (fontlistMS.len == 0)
-+		fz_warn(ctx, "couldn't find any usable system fonts");
-+
-+#ifdef NOCJKFONT
-+	{
-+		// If no CJK fallback font is builtin but one has been shipped separately (in the same
-+		// directory as the main executable), add it to the list of loadable system fonts
-+		WCHAR szFile[MAX_PATH], *lpFileName;
-+		GetModuleFileName(0, szFontDir, MAX_PATH);
-+		GetFullPathName(szFontDir, MAX_PATH, szFile, &lpFileName);
-+		lstrcpyn(lpFileName, L"DroidSansFallback.ttf", szFile + MAX_PATH - lpFileName);
-+		extend_system_font_list(ctx, szFile);
-+	}
-+#endif
-+
-+	// sort the font list, so that it can be searched binarily
-+	qsort(fontlistMS.fontmap, fontlistMS.len, sizeof(pdf_fontmapMS), _stricmp);
-+
-+#ifdef DEBUG
-+	// allow to overwrite system fonts for debugging purposes
-+	// (either pass a full path or a search pattern such as "fonts\*.ttf")
-+	cch = GetEnvironmentVariable(L"MUPDF_FONTS_PATTERN", szFontDir, nelem(szFontDir));
-+	if (0 < cch && cch < nelem(szFontDir))
-+	{
-+		int i, prev_len = fontlistMS.len;
-+		extend_system_font_list(ctx, szFontDir);
-+		for (i = prev_len; i < fontlistMS.len; i++)
-+		{
-+			pdf_fontmapMS *entry = bsearch(fontlistMS.fontmap[i].fontface, fontlistMS.fontmap, prev_len, sizeof(pdf_fontmapMS), lookup_compare);
-+			if (entry)
-+				*entry = fontlistMS.fontmap[i];
-+		}
-+		qsort(fontlistMS.fontmap, fontlistMS.len, sizeof(pdf_fontmapMS), _stricmp);
-+	}
-+#endif
-+
-+	// make sure to clean up after ourselves
-+	atexit(destroy_system_font_list);
-+}
-+
-+static fz_font *
-+pdf_load_windows_font_by_name(fz_context *ctx, const char *orig_name)
-+{
-+	pdf_fontmapMS *found = NULL;
-+	char *comma, *fontname;
-+	fz_font *font;
-+
-+    /* WILLUS MOD--not multi-threaded for k2pdfopt */
-+	/* fz_synchronize_begin(); */
-+	if (fontlistMS.len == 0)
-+	{
-+		fz_try(ctx)
-+		{
-+			create_system_font_list(ctx);
-+		}
-+		fz_catch(ctx) { }
-+	}
-+    /* WILLUS MOD--not multi-threaded for k2pdfopt */
-+	/* fz_synchronize_end(); */
-+	if (fontlistMS.len == 0)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "fonterror: couldn't find any fonts");
-+
-+	// work on a normalized copy of the font name
-+	fontname = fz_strdup(ctx, orig_name);
-+	remove_spaces(fontname);
-+
-+	// first, try to find the exact font name (including appended style information)
-+	comma = strchr(fontname, ',');
-+	if (comma)
-+	{
-+		*comma = '-';
-+		found = pdf_find_windows_font_path(fontname);
-+		*comma = ',';
-+	}
-+	// second, substitute the font name with a known PostScript name
-+	else
-+	{
-+		int i;
-+		for (i = 0; i < nelem(baseSubstitutes) && !found; i++)
-+			if (!strcmp(fontname, baseSubstitutes[i].name))
-+				found = pdf_find_windows_font_path(baseSubstitutes[i].pattern);
-+	}
-+	// third, search for the font name without additional style information
-+	if (!found)
-+		found = pdf_find_windows_font_path(fontname);
-+	// fourth, try to separate style from basename for prestyled fonts (e.g. "ArialBold")
-+	if (!found && !comma && (str_ends_with(fontname, "Bold") || str_ends_with(fontname, "Italic")))
-+	{
-+		int styleLen = str_ends_with(fontname, "Bold") ? 4 : str_ends_with(fontname, "BoldItalic") ? 10 : 6;
-+		fontname = fz_resize_array(ctx, fontname, strlen(fontname) + 2, sizeof(char));
-+		comma = fontname + strlen(fontname) - styleLen;
-+		memmove(comma + 1, comma, styleLen + 1);
-+		*comma = '-';
-+		found = pdf_find_windows_font_path(fontname);
-+		*comma = ',';
-+		if (!found)
-+			found = pdf_find_windows_font_path(fontname);
-+	}
-+	// fifth, try to convert the font name from the common Chinese codepage 936
-+	if (!found && fontname[0] < 0)
-+	{
-+		WCHAR cjkNameW[MAX_FACENAME];
-+		char cjkName[MAX_FACENAME];
-+		if (MultiByteToWideChar(936, MB_ERR_INVALID_CHARS, fontname, -1, cjkNameW, nelem(cjkNameW)) &&
-+			WideCharToMultiByte(CP_UTF8, 0, cjkNameW, -1, cjkName, nelem(cjkName), NULL, NULL))
-+		{
-+			comma = strchr(cjkName, ',');
-+			if (comma)
-+			{
-+				*comma = '-';
-+				found = pdf_find_windows_font_path(cjkName);
-+				*comma = ',';
-+			}
-+			if (!found)
-+				found = pdf_find_windows_font_path(cjkName);
-+		}
-+	}
-+
-+	fz_free(ctx, fontname);
-+	if (!found)
-+		fz_throw(ctx, FZ_ERROR_GENERIC, "couldn't find system font '%s'", orig_name);
-+
-+    /*
-+	fz_warn(ctx, "loading non-embedded font '%s' from '%s'", orig_name, found->fontpath);
-+    */
-+
-+	font = fz_new_font_from_file(ctx, orig_name, found->fontpath, found->index,
-+		strcmp(found->fontface, "DroidSansFallback") != 0);
-+    /* willus mod for MuPDF v1.10, 10-21-2016 */
-+    {
-+    fz_font_flags_t *flags;
-+    flags=fz_font_flags(font);
-+    if (flags!=NULL)
-+    	flags->ft_substitute = 1;
-+    }
-+	return font;
-+}
-+
-+static fz_font *
-+pdf_load_windows_font(fz_context *ctx, const char *fontname, int bold, int italic, int needs_exact_metrics)
-+{
-+	if (needs_exact_metrics)
-+	{
-+		const char *clean_name;
-+        /* WILLUS: Declare pdf_clean_base14_name() */
-+        extern const char *pdf_clean_base14_name(const char *fontname);
-+
-+		/* TODO: the metrics for Times-Roman and Courier don't match
-+		   those of Windows' Times New Roman and Courier New; for
-+		   some reason, Poppler doesn't seem to have this problem */
-+		int len;
-+		if (fz_lookup_builtin_font(ctx,fontname, bold, italic, &len))
-+			return NULL;
-+
-+		/* cf. http://code.google.com/p/sumatrapdf/issues/detail?id=2173 */
-+		clean_name = pdf_clean_base14_name(fontname);
-+		if (clean_name != fontname && !strncmp(clean_name, "Times-", 6))
-+			return NULL;
-+	}
-+
-+	// TODO: unset font->ft_substitute for base14/needs_exact_metrics?
-+	return pdf_load_windows_font_by_name(ctx, fontname);
-+}
-+
-+static const char *clean_font_name(const char *fontname)
-+{
-+	int i, k;
-+	for (i = 0; i < nelem(base_font_names); i++)
-+		for (k = 0; base_font_names[i][k]; k++)
-+			if (!strcmp_ignore_space(base_font_names[i][k], fontname))
-+				return base_font_names[i][0];
-+	return fontname;
-+}
-+
-+
-+/* SumatraPDF: expose clean_font_name */
-+static const char * pdf_clean_base14_name(const char *fontname)
-+{
-+	return clean_font_name(fontname);
-+}
-+
-+static fz_font *
-+pdf_load_windows_cjk_font(fz_context *ctx, const char *fontname, int ros, int serif)
-+{
-+	fz_font *font;
-+
-+    font=NULL; /* WILLUS: Avoid compiler warning */
-+	/* try to find a matching system font before falling back to an approximate one */
-+	fz_try(ctx)
-+	{
-+		font = pdf_load_windows_font_by_name(ctx, fontname);
-+	}
-+	fz_catch(ctx)
-+	{
-+		font = NULL;
-+	}
-+	if (font)
-+		return font;
-+
-+	/* try to fall back to a reasonable system font */
-+	fz_try(ctx)
-+	{
-+		if (serif)
-+		{
-+			switch (ros)
-+			{
-+			case FZ_ADOBE_CNS: font = pdf_load_windows_font_by_name(ctx, "MingLiU"); break;
-+			case FZ_ADOBE_GB: font = pdf_load_windows_font_by_name(ctx, "SimSun"); break;
-+			case FZ_ADOBE_JAPAN: font = pdf_load_windows_font_by_name(ctx, "MS-Mincho"); break;
-+			case FZ_ADOBE_KOREA: font = pdf_load_windows_font_by_name(ctx, "Batang"); break;
-+			default: fz_throw(ctx, FZ_ERROR_GENERIC, "invalid serif ros");
-+			}
-+		}
-+		else
-+		{
-+			switch (ros)
-+			{
-+			case FZ_ADOBE_CNS: font = pdf_load_windows_font_by_name(ctx, "DFKaiShu-SB-Estd-BF"); break;
-+			case FZ_ADOBE_GB:
-+				fz_try(ctx)
-+				{
-+					font = pdf_load_windows_font_by_name(ctx, "KaiTi");
-+				}
-+				fz_catch(ctx)
-+				{
-+					font = pdf_load_windows_font_by_name(ctx, "KaiTi_GB2312");
-+				}
-+				break;
-+			case FZ_ADOBE_JAPAN: font = pdf_load_windows_font_by_name(ctx, "MS-Gothic"); break;
-+			case FZ_ADOBE_KOREA: font = pdf_load_windows_font_by_name(ctx, "Gulim"); break;
-+			default: fz_throw(ctx, FZ_ERROR_GENERIC, "invalid sans-serif ros");
-+			}
-+		}
-+	}
-+	fz_catch(ctx)
-+	{
-+#ifdef NOCJKFONT
-+		/* If no CJK fallback font is builtin, maybe one has been shipped separately */
-+		font = pdf_load_windows_font_by_name(ctx, "DroidSansFallback");
-+#else
-+		fz_rethrow(ctx);
-+#endif
-+	}
-+
-+	return font;
-+}
-+
-+#endif
-+
-+void pdf_install_load_system_font_funcs(fz_context *ctx)
-+{
-+#ifdef _WIN32
-+	fz_install_load_system_font_funcs(ctx, pdf_load_windows_font, pdf_load_windows_cjk_font, NULL);
-+#endif
-+}
-diff --git a/source/fitz/font.c b/source/fitz/font.c
-index 00c6e8f99..1448b4a56 100644
---- a/source/fitz/font.c
-+++ b/source/fitz/font.c
-@@ -4,8 +4,11 @@
- #include "draw-imp.h"
- 
- #include <ft2build.h>
-+/* willus mod -- remove hb includes */
-+/*
- #include "hb.h"
- #include "hb-ft.h"
-+*/
- 
- #include <assert.h>
- 
-diff --git a/source/fitz/stext-device.c b/source/fitz/stext-device.c
-index 2df90305e..b1f99e056 100644
---- a/source/fitz/stext-device.c
-+++ b/source/fitz/stext-device.c
-@@ -825,6 +825,11 @@ fz_new_stext_device(fz_context *ctx, fz_stext_page *page, const fz_stext_options
- 	dev->lastchar = ' ';
- 	dev->curdir = 1;
- 	dev->lasttext = NULL;
-+    /* willus mod -- seems like this should be here, but not sure. */
-+    if (opts)
-+        dev->flags = opts->flags;
-+    else
-+        dev->flags = 0;
- 
- 	return (fz_device*)dev;
- }
-diff --git a/source/fitz/string.c b/source/fitz/string.c
-index f8eedb682..7a767983d 100644
---- a/source/fitz/string.c
-+++ b/source/fitz/string.c
-@@ -560,6 +560,10 @@ fz_utflen(const char *s)
- */
- float fz_atof(const char *s)
- {
-+/* willus mod: atof(s), #if-#else-#endif */
-+#if (!defined(__SSE__))
-+    return(atof(s));
-+#else
- 	float result;
- 
- 	if (s == NULL)
-@@ -572,6 +576,7 @@ float fz_atof(const char *s)
- 		return 1;
- 	result = fz_clamp(result, -FLT_MAX, FLT_MAX);
- 	return result;
-+#endif
- }
- 
- /*
-diff --git a/source/pdf/pdf-annot.c b/source/pdf/pdf-annot.c
-index 4dfdf36fe..acff7d12a 100644
---- a/source/pdf/pdf-annot.c
-+++ b/source/pdf/pdf-annot.c
-@@ -5,8 +5,20 @@
- #include <string.h>
- #include <time.h>
- 
-+/* willus mod--don't use _mkgmtime--not available in Win XP */
- #ifdef _WIN32
--#define timegm _mkgmtime
-+static time_t timegm(struct tm *date);
-+static time_t timegm(struct tm *date)
-+
-+    {
-+    time_t t,z;
-+    struct tm gmz;
-+
-+    z=(time_t)0;
-+    gmz=(*gmtime(&z));
-+    t=mktime(date)-mktime(&gmz);
-+    return(t);
-+    }
- #endif
- 
- #define isdigit(c) (c >= '0' && c <= '9')
-diff --git a/source/pdf/pdf-link.c b/source/pdf/pdf-link.c
-index 37444b471..613cc05b9 100644
---- a/source/pdf/pdf-link.c
-+++ b/source/pdf/pdf-link.c
-@@ -345,6 +345,9 @@ pdf_resolve_link(fz_context *ctx, pdf_document *doc, const char *uri, float *xp,
- 		}
- 		return page;
- 	}
-+/* willus mod -- be quiet */
-+/*
- 	fz_warn(ctx, "unknown link uri '%s'", uri);
-+*/
- 	return -1;
- }
-diff --git a/source/pdf/pdf-parse.c b/source/pdf/pdf-parse.c
-index 04a772204..9dd0cd898 100644
---- a/source/pdf/pdf-parse.c
-+++ b/source/pdf/pdf-parse.c
-@@ -663,9 +663,14 @@ pdf_parse_ind_obj(fz_context *ctx, pdf_document *doc,
- 			if (c == '\r')
- 			{
- 				c = fz_peek_byte(ctx, file);
-+/* willus mod -- no warning */
-+/*
- 				if (c != '\n')
- 					fz_warn(ctx, "line feed missing after stream begin marker (%d %d R)", num, gen);
- 				else
-+*/
-+if (c=='\n')
-+/* willus mod -- end */
- 					fz_read_byte(ctx, file);
- 			}
- 			stm_ofs = fz_tell(ctx, file);
-diff --git a/source/pdf/pdf-xref.c b/source/pdf/pdf-xref.c
-index 8f888059b..08de7bfba 100644
---- a/source/pdf/pdf-xref.c
-+++ b/source/pdf/pdf-xref.c
-@@ -710,8 +710,11 @@ pdf_xref_size_from_old_trailer(fz_context *ctx, pdf_document *doc, pdf_lexbuf *b
- 		if (!s)
- 			fz_throw(ctx, FZ_ERROR_GENERIC, "xref subsection length missing");
- 		len = fz_atoi(fz_strsep(&s, " "));
-+/* willus mod -- no warning */
-+/*
- 		if (len < 0)
- 			fz_throw(ctx, FZ_ERROR_GENERIC, "xref subsection length must be positive");
-+*/
- 
- 		/* broken pdfs where the section is not on a separate line */
- 		if (s && *s != '\0')
-@@ -1378,7 +1381,10 @@ pdf_init_document(fz_context *ctx, pdf_document *doc)
- 	{
- 		pdf_drop_xref_sections(ctx, doc);
- 		fz_rethrow_if(ctx, FZ_ERROR_TRYLATER);
-+/* willus mod -- be quiet */
-+/*
- 		fz_warn(ctx, "trying to repair broken xref");
-+*/
- 		repaired = 1;
- 	}
- 
-@@ -1506,7 +1512,10 @@ pdf_drop_document_imp(fz_context *ctx, pdf_document *doc)
- 		/* Swallow error, but continue dropping */
- 	}
- 
-+/* willu smod -- no pdf_drop_js */
-+/*
- 	pdf_drop_js(ctx, doc->js);
-+*/
- 
- 	pdf_drop_xref_sections(ctx, doc);
- 	fz_free(ctx, doc->xref_index);
--- 
-2.22.0
-
diff --git a/nixpkgs/pkgs/applications/misc/k2pdfopt/tesseract.patch b/nixpkgs/pkgs/applications/misc/k2pdfopt/tesseract.patch
deleted file mode 100644
index adfee9ae282f..000000000000
--- a/nixpkgs/pkgs/applications/misc/k2pdfopt/tesseract.patch
+++ /dev/null
@@ -1,675 +0,0 @@
-From 39aa8502eee7bb669a29d1a9b3bfe5c9595ad960 Mon Sep 17 00:00:00 2001
-From: Daniel Fullmer <danielrf12@gmail.com>
-Date: Fri, 13 Sep 2019 13:45:05 -0400
-Subject: [PATCH] Willus mod changes from k2pdfopt
-
----
- src/api/Makefile.am        |   1 +
- src/api/baseapi.cpp        |  87 +++++++++++
- src/api/baseapi.h          |   3 +
- src/api/tesscapi.cpp       | 311 +++++++++++++++++++++++++++++++++++++
- src/api/tesseract.h        |  29 ++++
- src/ccmain/tessedit.cpp    |   5 +-
- src/ccutil/ccutil.h        |   7 +
- src/ccutil/genericvector.h |  21 ++-
- src/ccutil/mainblk.cpp     |  17 +-
- src/ccutil/params.cpp      |   3 +-
- src/ccutil/serialis.cpp    |   3 +
- src/ccutil/serialis.h      |   2 +
- src/lstm/input.cpp         |   3 +
- 13 files changed, 488 insertions(+), 4 deletions(-)
- create mode 100644 src/api/tesscapi.cpp
- create mode 100644 src/api/tesseract.h
-
-diff --git a/src/api/Makefile.am b/src/api/Makefile.am
-index d9b76eb6..cd2dc30f 100644
---- a/src/api/Makefile.am
-+++ b/src/api/Makefile.am
-@@ -39,6 +39,7 @@ libtesseract_api_la_SOURCES += lstmboxrenderer.cpp
- libtesseract_api_la_SOURCES += pdfrenderer.cpp
- libtesseract_api_la_SOURCES += wordstrboxrenderer.cpp
- libtesseract_api_la_SOURCES += renderer.cpp
-+libtesseract_api_la_SOURCES += tesscapi.cpp
- 
- lib_LTLIBRARIES += libtesseract.la
- libtesseract_la_LDFLAGS = $(LEPTONICA_LIBS) $(OPENCL_LDFLAGS) $(libarchive_LIBS)
-diff --git a/src/api/baseapi.cpp b/src/api/baseapi.cpp
-index 9245d07c..ea964ee6 100644
---- a/src/api/baseapi.cpp
-+++ b/src/api/baseapi.cpp
-@@ -215,6 +215,14 @@ TessBaseAPI::TessBaseAPI()
-   // Use the current locale if building debug code.
-   std::locale::global(std::locale(""));
- #endif
-+  const char *locale;
-+  locale = std::setlocale(LC_ALL, nullptr);
-+/* willus mod Remove assertions--taken care of in tesscapi.cpp */
-+//  ASSERT_HOST(!strcmp(locale, "C"));
-+  locale = std::setlocale(LC_CTYPE, nullptr);
-+//  ASSERT_HOST(!strcmp(locale, "C"));
-+  locale = std::setlocale(LC_NUMERIC, nullptr);
-+//  ASSERT_HOST(!strcmp(locale, "C"));
- }
- 
- TessBaseAPI::~TessBaseAPI() {
-@@ -1333,6 +1341,85 @@ static void AddBoxToTSV(const PageIterator* it, PageIteratorLevel level,
-   text->add_str_int("\t", bottom - top);
- }
- 
-+/* willus mod */
-+int TessBaseAPI::GetOCRWords(int **x00,int **y00,int **x11,int **y11,int **ybaseline0,
-+                             char **utf8words)
-+
-+    {
-+    int iword,nwords,totlen,it8;
-+    int *x0,*y0,*x1,*y1,*ybaseline;
-+    char *tutf8;
-+
-+    ResultIterator *res_it = GetIterator();
-+    /* Count words */
-+    iword=0;
-+    totlen=0;
-+    while (!res_it->Empty(RIL_BLOCK))
-+        {
-+        if (res_it->Empty(RIL_WORD))
-+            {
-+            res_it->Next(RIL_WORD);
-+            continue;
-+            }
-+        iword++;
-+        STRING textstr=std::unique_ptr<const char[]>(res_it->GetUTF8Text(RIL_WORD)).get();
-+        totlen+=strlen(textstr.string())+1;
-+        res_it->Next(RIL_WORD);
-+        }
-+    nwords=iword;
-+/*
-+printf("\nnwords=%d, totlen=%d\n",nwords,totlen);
-+*/
-+    x0=(*x00)=(int *)malloc(sizeof(int)*5*nwords);
-+    y0=(*y00)=&x0[nwords];
-+    x1=(*x11)=&y0[nwords];
-+    y1=(*y11)=&x1[nwords];
-+    ybaseline=(*ybaseline0)=&y1[nwords];
-+    tutf8=(*utf8words)=(char *)malloc(totlen);
-+    iword=0;
-+    it8=0;
-+    res_it->Begin();
-+    while (!res_it->Empty(RIL_BLOCK))
-+        {
-+        if (res_it->Empty(RIL_WORD))
-+            {
-+            res_it->Next(RIL_WORD);
-+            continue;
-+            }
-+        STRING textstr=std::unique_ptr<const char[]>(res_it->GetUTF8Text(RIL_WORD)).get();
-+        strcpy(&tutf8[it8],textstr.string());
-+        it8 += strlen(&tutf8[it8])+1;
-+        /*
-+        STRING textstr("");
-+        textstr += std::unique_ptr<const char[]>(res_it->GetUTF8Text(RIL_WORD)).get();
-+        */
-+/*
-+printf("Word %d: '%s'\n",iword,textstr.string());
-+*/
-+        int left, top, right, bottom;
-+        int u1,v1,u2,v2;
-+        res_it->BoundingBox(RIL_WORD, &left, &top, &right, &bottom);
-+        res_it->Baseline(RIL_WORD, &u1, &v1, &u2, &v2);
-+        x0[iword]=left;
-+        x1[iword]=right;
-+        y0[iword]=top;
-+        y1[iword]=bottom;
-+        ybaseline[iword]=(v1+v2)/2;
-+        iword++;
-+/*
-+printf("BB: (%d,%d)-(%d,%d)  BL: (%d,%d)-(%d,%d)\n",left,bottom,right,top,x1,y1,x2,y2);
-+*/
-+        res_it->Next(RIL_WORD);
-+        }
-+/*
-+printf("iword=%d\n",iword);
-+*/
-+    return(iword);
-+    }
-+
-+/* willus mod */
-+int GetOCRWords(int **x0,int **y0,int **x1,int **y1,int **ybaseline,char **utf8words);
-+
- /**
-  * Make a TSV-formatted string from the internal data structures.
-  * page_number is 0-based but will appear in the output as 1-based.
-diff --git a/src/api/baseapi.h b/src/api/baseapi.h
-index 3724dd92..23be5920 100644
---- a/src/api/baseapi.h
-+++ b/src/api/baseapi.h
-@@ -575,6 +575,9 @@ class TESS_API TessBaseAPI {
-    */
-   char* GetHOCRText(ETEXT_DESC* monitor, int page_number);
- 
-+/* willus mod */
-+int GetOCRWords(int **x0,int **y0,int **x1,int **y1,int **ybaseline,char **utf8words);
-+
-   /**
-    * Make a HTML-formatted string with hOCR markup from the internal
-    * data structures.
-diff --git a/src/api/tesscapi.cpp b/src/api/tesscapi.cpp
-new file mode 100644
-index 00000000..1752fafe
---- /dev/null
-+++ b/src/api/tesscapi.cpp
-@@ -0,0 +1,311 @@
-+/*
-+** tesscapi.cpp    willus.com attempt at C wrapper for tesseract.
-+**                 (Butchered from tesseractmain.cpp)
-+**                 Last udpated 9-1-12
-+**
-+** Copyright (C) 2012  http://willus.com
-+**
-+** This program is free software: you can redistribute it and/or modify
-+** it under the terms of the GNU Affero General Public License as
-+** published by the Free Software Foundation, either version 3 of the
-+** License, or (at your option) any later version.
-+**
-+** This program is distributed in the hope that it will be useful,
-+** but WITHOUT ANY WARRANTY; without even the implied warranty of
-+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+** GNU Affero General Public License for more details.
-+**
-+** You should have received a copy of the GNU Affero General Public License
-+** along with this program.  If not, see <http://www.gnu.org/licenses/>.
-+**
-+*/
-+
-+/*
-+#include "mfcpch.h"
-+*/
-+// #define USE_VLD //Uncomment for Visual Leak Detector.
-+#if (defined _MSC_VER && defined USE_VLD)
-+#include <vld.h>
-+#endif
-+
-+// Include automatically generated configuration file if running autoconf
-+#ifdef HAVE_CONFIG_H
-+#include "config_auto.h"
-+#endif
-+#include <locale.h>
-+#ifdef USING_GETTEXT
-+#include <libintl.h>
-+#define _(x) gettext(x)
-+#else
-+#define _(x) (x)
-+#endif
-+
-+#include "allheaders.h"
-+#include "baseapi.h"
-+#include "strngs.h"
-+#include "params.h"
-+#include "blobs.h"
-+#include "simddetect.h"
-+#include "tesseractclass.h"
-+/*
-+#include "notdll.h"
-+*/
-+
-+/* C Wrappers */
-+#include "tesseract.h"
-+
-+// static tesseract::TessBaseAPI api[4];
-+
-+/*
-+** ocr_type=0:  OEM_DEFAULT
-+** ocr_type=1:  OEM_TESSERACT_ONLY
-+** ocr_type=2:  OEM_LSTM_ONLY
-+** ocr_type=3:  OEM_TESSERACT_LSTM_COMBINED
-+*/
-+void *tess_capi_init(char *datapath,char *language,int ocr_type,FILE *out,
-+                     char *initstr,int maxlen,int *status)
-+
-+    {
-+    char original_locale[256];
-+    tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI;
-+/*
-+printf("@tess_capi_init\n");
-+printf("    datapath='%s'\n",datapath);
-+printf("    language='%s'\n",language);
-+printf("    ocr_type=%d\n",ocr_type);
-+*/
-+#ifdef USE_NLS
-+    setlocale (LC_ALL, "");
-+    bindtextdomain (PACKAGE, LOCALEDIR);
-+    textdomain (PACKAGE);
-+#endif
-+    /* willus mod, 11-24-16 */
-+    /* Tesseract needs "C" locale to correctly parse all data .traineddata files. */
-+/*
-+printf("locale='%s'\n",setlocale(LC_ALL,NULL));
-+printf("ctype='%s'\n",setlocale(LC_CTYPE,NULL));
-+printf("numeric='%s'\n",setlocale(LC_NUMERIC,NULL));
-+*/
-+    strncpy(original_locale,setlocale(LC_ALL,NULL),255);
-+    original_locale[255]='\0';
-+/*
-+printf("original_locale='%s'\n",original_locale);
-+*/
-+    setlocale(LC_ALL,"C");
-+/*
-+printf("new locale='%s'\n",setlocale(LC_ALL,NULL));
-+printf("new ctype='%s'\n",setlocale(LC_CTYPE,NULL));
-+printf("new numeric='%s'\n",setlocale(LC_NUMERIC,NULL));
-+*/
-+    // fprintf(stderr, "tesseract %s\n", tesseract::TessBaseAPI::Version());
-+    // Make the order of args a bit more forgiving than it used to be.
-+    const char* lang = "eng";
-+    tesseract::PageSegMode pagesegmode = tesseract::PSM_SINGLE_BLOCK;
-+    if (language!=NULL && language[0]!='\0')
-+        lang = language;
-+    /*
-+    if (output == NULL)
-+        {
-+        fprintf(stderr, _("Usage:%s imagename outputbase [-l lang] "
-+                      "[-psm pagesegmode] [configfile...]\n"), argv[0]);
-+        fprintf(stderr,
-+            _("pagesegmode values are:\n"
-+              "0 = Orientation and script detection (OSD) only.\n"
-+              "1 = Automatic page segmentation with OSD.\n"
-+              "2 = Automatic page segmentation, but no OSD, or OCR\n"
-+              "3 = Fully automatic page segmentation, but no OSD. (Default)\n"
-+              "4 = Assume a single column of text of variable sizes.\n"
-+              "5 = Assume a single uniform block of vertically aligned text.\n"
-+              "6 = Assume a single uniform block of text.\n"
-+              "7 = Treat the image as a single text line.\n"
-+              "8 = Treat the image as a single word.\n"
-+              "9 = Treat the image as a single word in a circle.\n"
-+              "10 = Treat the image as a single character.\n"));
-+        fprintf(stderr, _("-l lang and/or -psm pagesegmode must occur before any"
-+                      "configfile.\n"));
-+        exit(1);
-+        }
-+    */
-+/*
-+printf("SSE = %s\n",SIMDDetect::IsSSEAvailable() ? "AVAILABLE" : "NOT AVAILABLE");
-+printf("AVX = %s\n",SIMDDetect::IsAVXAvailable() ? "AVAILABLE" : "NOT AVAILABLE");
-+*/
-+/*
-+v4.00 loads either TESSERACT enginer, LSTM engine, or both.  No CUBE.
-+*/
-+    ocr_type=0; /* Ignore specified and use default */
-+    api->SetOutputName(NULL);
-+    (*status)=api->Init(datapath,lang,
-+              ocr_type==0 ? tesseract::OEM_DEFAULT :
-+                (ocr_type==1 ? tesseract::OEM_TESSERACT_ONLY :
-+                   (ocr_type==2 ? tesseract::OEM_LSTM_ONLY :
-+                                  (tesseract::OEM_TESSERACT_LSTM_COMBINED))));
-+    if ((*status)!=0)
-+        {
-+        /* willus mod, 11-24-16 */
-+        setlocale(LC_ALL,original_locale);
-+        api->End();
-+        delete api;
-+        return(NULL);
-+        }
-+    /*
-+    api.Init("tesscapi",lang,tesseract::OEM_DEFAULT,
-+           &(argv[arg]), argc - arg, NULL, NULL, false);
-+    */
-+    // We have 2 possible sources of pagesegmode: a config file and
-+    // the command line. For backwards compatability reasons, the
-+    // default in tesseract is tesseract::PSM_SINGLE_BLOCK, but the
-+    // default for this program is tesseract::PSM_AUTO. We will let
-+    // the config file take priority, so the command-line default
-+    // can take priority over the tesseract default, so we use the
-+    // value from the command line only if the retrieved mode
-+    // is still tesseract::PSM_SINGLE_BLOCK, indicating no change
-+    // in any config file. Therefore the only way to force
-+    // tesseract::PSM_SINGLE_BLOCK is from the command line.
-+    // It would be simpler if we could set the value before Init,
-+    // but that doesn't work.
-+    if (api->GetPageSegMode() == tesseract::PSM_SINGLE_BLOCK)
-+        api->SetPageSegMode(pagesegmode);
-+
-+    /*
-+    ** Initialization message
-+    */
-+    {
-+    char istr[1024];
-+    int sse,avx;
-+
-+// printf("tessedit_ocr_engine_mode = %d\n",tessedit_ocr_engine_mode);
-+    sprintf(istr,"%s",api->Version());
-+    sse=tesseract::SIMDDetect::IsSSEAvailable();
-+    avx=tesseract::SIMDDetect::IsAVXAvailable();
-+    if (sse || avx)
-+        sprintf(&istr[strlen(istr)]," [%s]",sse&&avx?"SSE+AVX":(sse?"SSE":"AVX"));
-+    sprintf(&istr[strlen(istr)],"\n    Tesseract data folder = '%s'",datapath==NULL?getenv("TESSDATA_PREFIX"):datapath);
-+    strcat(istr,"\n    Tesseract languages: ");
-+    GenericVector<STRING> languages;
-+    api->GetLoadedLanguagesAsVector(&languages);
-+/*
-+printf("OEM=%d\n",api->oem());
-+printf("Langs='%s'\n",api->GetInitLanguagesAsString());
-+printf("AnyTessLang()=%d\n",(int)api->tesseract()->AnyTessLang());
-+printf("AnyLSTMLang()=%d\n",(int)api->tesseract()->AnyLSTMLang());
-+printf("num_sub_langs()=%d\n",api->tesseract()->num_sub_langs());
-+printf("languages.size()=%d\n",(int)languages.size());
-+*/
-+
-+    for (int i=0;i<=api->tesseract()->num_sub_langs();i++)
-+        {
-+        tesseract::Tesseract *lang1;
-+        int eng;
-+        lang1 = i==0 ? api->tesseract() : api->tesseract()->get_sub_lang(i-1);
-+        eng=(int)lang1->tessedit_ocr_engine_mode;
-+        sprintf(&istr[strlen(istr)],"%s%s [%s]",i==0?"":", ",lang1->lang.string(),
-+                 eng==2?"LSTM+Tess":(eng==1?"LSTM":"Tess"));
-+        }
-+/*
-+printf("%d. '%s'\n",i+1,languages[i].string());
-+printf("    sublang[%d].oem_engine = %d\n",i+1,(int)api->tesseract()->get_sub_lang(i)->tessedit_ocr_engine_mode);
-+*/
-+
-+    /*
-+    if (ocr_type==0 || ocr_type==3)
-+        sprintf(&istr[strlen(istr)],"[LSTM+] (lang=");
-+    else if (ocr_type==2)
-+        sprintf(&istr[strlen(istr)],"[LSTM] (lang=");
-+    strncpy(&istr[strlen(istr)],language,253-strlen(istr));
-+    istr[253]='\0';
-+    strcat(istr,")");
-+    */
-+    if (out!=NULL)
-+        fprintf(out,"%s\n",istr);
-+    if (initstr!=NULL)
-+        {
-+        strncpy(initstr,istr,maxlen-1);
-+        initstr[maxlen-1]='\0';
-+        }
-+    }
-+
-+
-+    /* Turn off LSTM debugging output */
-+    api->SetVariable("lstm_debug_level","0");
-+#if (WILLUSDEBUG & 1)
-+    api->SetVariable("lstm_debug_level","9");
-+    api->SetVariable("paragraph_debug_level","9");
-+    api->SetVariable("tessdata_manager_debug_level","9");
-+    api->SetVariable("tosp_debug_level","9");
-+    api->SetVariable("wordrec_debug_level","9");
-+    api->SetVariable("segsearch_debug_level","9");
-+#endif
-+    /* willus mod, 11-24-16 */
-+    setlocale(LC_ALL,original_locale);
-+    return((void *)api);
-+    }
-+
-+
-+int tess_capi_get_ocr(void *vapi,PIX *pix,char *outstr,int maxlen,int segmode,FILE *out)
-+
-+    {
-+    tesseract::TessBaseAPI *api;
-+    static int old_segmode=-1;
-+
-+    api=(tesseract::TessBaseAPI *)vapi;
-+    if (old_segmode != segmode)
-+        {
-+        old_segmode=segmode;
-+        api->SetPageSegMode((tesseract::PageSegMode)segmode);
-+        }
-+    if (!api->ProcessPage(pix,0,NULL,NULL,0,NULL))
-+        {
-+        /* pixDestroy(&pix); */
-+        if (out!=NULL)
-+            fprintf(out,"tesscapi:  Error during bitmap processing.\n");
-+        api->Clear();
-+        return(-1);
-+        }
-+    strncpy(outstr,api->GetUTF8Text(),maxlen-1);
-+    outstr[maxlen-1]='\0';
-+    api->Clear();
-+    return(0);
-+    }
-+
-+
-+int tess_capi_get_ocr_multiword(void *vapi,PIX *pix,int segmode,
-+                                int **left,int **top,int **right,int **bottom,
-+                                int **ybase,char **text,int *nw,
-+                                FILE *out)
-+
-+    {
-+    tesseract::TessBaseAPI *api;
-+    static int old_segmode=-1;
-+
-+    api=(tesseract::TessBaseAPI *)vapi;
-+    if (old_segmode != segmode)
-+        {
-+        old_segmode=segmode;
-+        api->SetPageSegMode((tesseract::PageSegMode)segmode);
-+        }
-+    if (!api->ProcessPage(pix,0,NULL,NULL,0,NULL))
-+        {
-+        if (out!=NULL)
-+            fprintf(out,"tesscapi:  Error during bitmap processing.\n");
-+        api->Clear();
-+        (*nw)=0;
-+        return(-1);
-+        }
-+    (*nw)=api->GetOCRWords(left,top,right,bottom,ybase,text);
-+    api->Clear();
-+    return(0);
-+    }
-+
-+
-+void tess_capi_end(void *vapi)
-+
-+    {
-+    tesseract::TessBaseAPI *api;
-+
-+    if (vapi==NULL)
-+        return;
-+    api=(tesseract::TessBaseAPI *)vapi;
-+    api->End();
-+    delete api;
-+    }
-diff --git a/src/api/tesseract.h b/src/api/tesseract.h
-new file mode 100644
-index 00000000..575948cc
---- /dev/null
-+++ b/src/api/tesseract.h
-@@ -0,0 +1,29 @@
-+/*
-+** Willus.com's Tesseract C Wrappers
-+**
-+** 6-8-12
-+**
-+*/
-+
-+#ifndef           _TESSERACT_H_
-+#define           _TESSERACT_H_
-+
-+//#include <leptonica.h>
-+#ifdef __cplusplus
-+extern "C" {
-+#endif
-+
-+void *tess_capi_init(char *datapath,char *language,int ocr_type,FILE *out,
-+                    char *initstr,int maxlen,int *status);
-+int tess_capi_get_ocr(void *api,PIX *pix,char *outstr,int maxlen,int segmode,FILE *out);
-+int tess_capi_get_ocr_multiword(void *vapi,PIX *pix,int segmode,
-+                                int **left,int **top,int **right,int **bottom,
-+                                int **ybase,char **text,int *nw,
-+                                FILE *out);
-+void tess_capi_end(void *api);
-+
-+#ifdef __cplusplus
-+}
-+#endif
-+
-+#endif
-diff --git a/src/ccmain/tessedit.cpp b/src/ccmain/tessedit.cpp
-index 17f0951b..7af94ee2 100644
---- a/src/ccmain/tessedit.cpp
-+++ b/src/ccmain/tessedit.cpp
-@@ -101,6 +101,10 @@ bool Tesseract::init_tesseract_lang_data(
-         " to your \"tessdata\" directory.\n");
-     return false;
-   }
-+  /* willus mod */
-+  TFile fp;
-+  strncpy(fp.tfile_filename,tessdata_path.string(),511);
-+  fp.tfile_filename[511]='\0';
- #ifndef DISABLED_LEGACY_ENGINE
-   if (oem == OEM_DEFAULT) {
-     // Set the engine mode from availability, which can then be overridden by
-@@ -116,7 +120,6 @@ bool Tesseract::init_tesseract_lang_data(
- #endif  // ndef DISABLED_LEGACY_ENGINE
- 
-   // If a language specific config file (lang.config) exists, load it in.
--  TFile fp;
-   if (mgr->GetComponent(TESSDATA_LANG_CONFIG, &fp)) {
-     ParamUtils::ReadParamsFromFp(SET_PARAM_CONSTRAINT_NONE, &fp,
-                                  this->params());
-diff --git a/src/ccutil/ccutil.h b/src/ccutil/ccutil.h
-index 71e89c60..bdeccc14 100644
---- a/src/ccutil/ccutil.h
-+++ b/src/ccutil/ccutil.h
-@@ -80,6 +80,13 @@ class CCUtil {
-   // Member parameters.
-   // These have to be declared and initialized after params_ member, since
-   // params_ should be initialized before parameters are added to it.
-+/* willus mod */
-+/*
-+  #ifdef _WIN32
-+  STRING_VAR_H(tessedit_module_name, WINDLLNAME,
-+               "Module colocated with tessdata dir");
-+  #endif
-+*/
-   INT_VAR_H(ambigs_debug_level, 0, "Debug level for unichar ambiguities");
-   BOOL_VAR_H(use_definite_ambigs_for_classifier, false,
-              "Use definite ambiguities when running character classifier");
-diff --git a/src/ccutil/genericvector.h b/src/ccutil/genericvector.h
-index 3556d153..3a5e8662 100644
---- a/src/ccutil/genericvector.h
-+++ b/src/ccutil/genericvector.h
-@@ -382,7 +382,26 @@ inline bool LoadDataFromFile(const char* filename, GenericVector<char>* data) {
-       // reserve an extra byte in case caller wants to append a '\0' character
-       data->reserve(size + 1);
-       data->resize_no_init(size);
--      result = static_cast<long>(fread(&(*data)[0], 1, size, fp)) == size;
-+    /* willus mod Dec 2018--weird issue with Win XP and MinGW gcc 7.3.0 */
-+    /* Can't read entire file at once -- need to break up into smaller blocksize reads */
-+    {
-+    int frs,n;
-+    int blocksize;
-+    blocksize=1024*1024;
-+    for (n=0;1;)
-+        {
-+        int bs;
-+        bs= size-n > blocksize ? blocksize : size-n;
-+        frs=(int)fread(&(*data)[n],1,bs,fp);
-+        n+=frs;
-+        if (frs<bs || bs<blocksize || n>=size)
-+            break;
-+        }
-+    result = static_cast<long>((long)n==size);
-+    }
-+    /*
-+    result = static_cast<long>(fread(&(*data)[0], 1, size, fp)) == size;
-+    */
-     }
-     fclose(fp);
-   }
-diff --git a/src/ccutil/mainblk.cpp b/src/ccutil/mainblk.cpp
-index 52b04b04..80b26044 100644
---- a/src/ccutil/mainblk.cpp
-+++ b/src/ccutil/mainblk.cpp
-@@ -55,8 +55,22 @@ void CCUtil::main_setup(const char *argv0, const char *basename) {
- #if defined(_WIN32)
-   } else if (datadir == nullptr || _access(datadir.string(), 0) != 0) {
-     /* Look for tessdata in directory of executable. */
-+    /*
-+    char drive[_MAX_DRIVE];
-+    char dir[_MAX_DIR];
-+    */
-     char path[_MAX_PATH];
--    DWORD length = GetModuleFileName(nullptr, path, sizeof(path));
-+    int i;
-+    /* DWORD length = */ GetModuleFileName(nullptr, path, sizeof(path));
-+    /* willus mod--avoid _splitpath_s -- not in XP */
-+    for (i=strlen(path)-1;i>=0 && path[i]!='/' && path[i]!='\\';i--);
-+    if (i>=0)
-+        {
-+        path[i]='\0';
-+        datadir=path;
-+        datadir += "/tessdata";
-+        }
-+    /*
-     if (length > 0 && length < sizeof(path)) {
-       char* separator = std::strrchr(path, '\\');
-       if (separator != nullptr) {
-@@ -65,6 +79,7 @@ void CCUtil::main_setup(const char *argv0, const char *basename) {
-         datadir += "/tessdata";
-       }
-     }
-+    */
- #endif /* _WIN32 */
- #if defined(TESSDATA_PREFIX)
-   } else {
-diff --git a/src/ccutil/params.cpp b/src/ccutil/params.cpp
-index 00bf2563..486c5ce0 100644
---- a/src/ccutil/params.cpp
-+++ b/src/ccutil/params.cpp
-@@ -82,7 +82,8 @@ bool ParamUtils::ReadParamsFromFp(SetParamConstraint constraint, TFile *fp,
- 
-       if (!foundit) {
-         anyerr = true;         // had an error
--        tprintf("Warning: Parameter not found: %s\n", line);
-+        /* willus mod */
-+        tprintf("Tesseract warning: Parameter %s not found in file %s.\n",line,fp->tfile_filename);
-       }
-     }
-   }
-diff --git a/src/ccutil/serialis.cpp b/src/ccutil/serialis.cpp
-index 7def011f..6107a494 100644
---- a/src/ccutil/serialis.cpp
-+++ b/src/ccutil/serialis.cpp
-@@ -201,6 +201,9 @@ bool TFile::Open(const STRING& filename, FileReader reader) {
-   offset_ = 0;
-   is_writing_ = false;
-   swap_ = false;
-+  /* willus mod */
-+  strncpy(tfile_filename,filename.string(),511);
-+  tfile_filename[511]='\0';
-   if (reader == nullptr)
-     return LoadDataFromFile(filename, data_);
-   else
-diff --git a/src/ccutil/serialis.h b/src/ccutil/serialis.h
-index 095b9227..4cc8251e 100644
---- a/src/ccutil/serialis.h
-+++ b/src/ccutil/serialis.h
-@@ -77,6 +77,8 @@ class TFile {
-  public:
-   TFile();
-   ~TFile();
-+  /* willus mod */
-+  char tfile_filename[512];
- 
-   // All the Open methods load the whole file into memory for reading.
-   // Opens a file with a supplied reader, or nullptr to use the default.
-diff --git a/src/lstm/input.cpp b/src/lstm/input.cpp
-index 73b584b3..0b0b54c3 100644
---- a/src/lstm/input.cpp
-+++ b/src/lstm/input.cpp
-@@ -93,8 +93,11 @@ Pix* Input::PrepareLSTMInputs(const ImageData& image_data,
-     return nullptr;
-   }
-   if (width < min_width || height < min_width) {
-+    /* willus mod -- no warning */
-+    /*
-     tprintf("Image too small to scale!! (%dx%d vs min width of %d)\n", width,
-             height, min_width);
-+    */
-     pixDestroy(&pix);
-     return nullptr;
-   }
--- 
-2.22.0
-
diff --git a/nixpkgs/pkgs/applications/misc/k4dirstat/default.nix b/nixpkgs/pkgs/applications/misc/k4dirstat/default.nix
new file mode 100644
index 000000000000..2b4ae320e4e0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/k4dirstat/default.nix
@@ -0,0 +1,33 @@
+{ mkDerivation
+, extra-cmake-modules
+, fetchFromGitHub
+, kdoctools
+, kiconthemes
+, kio
+, kjobwidgets
+, kxmlgui
+, stdenv
+}:
+
+mkDerivation rec {
+  pname = "k4dirstat";
+  version = "3.2.1";
+
+  src = fetchFromGitHub {
+    owner = "jeromerobert";
+    repo = pname;
+    rev = version;
+    sha256 = "15xjb80jq6vhzvzx4l341f40d8a23w1334qh6cczqm9adfnzycp7";
+  };
+
+  nativeBuildInputs = [ extra-cmake-modules ];
+  buildInputs = [ kiconthemes kio kjobwidgets kxmlgui ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/jeromerobert/k4dirstat";
+    description = "A small utility program that sums up disk usage for directory trees";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.raboof ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/kanboard/default.nix b/nixpkgs/pkgs/applications/misc/kanboard/default.nix
index e6193d435639..4f84420330dd 100644
--- a/nixpkgs/pkgs/applications/misc/kanboard/default.nix
+++ b/nixpkgs/pkgs/applications/misc/kanboard/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kanboard";
-  version = "1.2.14";
+  version = "1.2.15";
 
   src = fetchFromGitHub {
     owner = "kanboard";
     repo = "kanboard";
     rev = "v${version}";
-    sha256 = "11bwajzidnyagdyip7i8rwni1f66acv0k4lybdm0mc4195anivjh";
+    sha256 = "0lib2qlc8a59i9dak0g1j5hymwbq9vhflp5srhcjislxypfvrizs";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/applications/misc/keepass/default.nix b/nixpkgs/pkgs/applications/misc/keepass/default.nix
index 3a1393913ef6..23f80eaa9cab 100644
--- a/nixpkgs/pkgs/applications/misc/keepass/default.nix
+++ b/nixpkgs/pkgs/applications/misc/keepass/default.nix
@@ -68,7 +68,7 @@ with builtins; buildDotnetPackage rec {
     icon = "keepass";
     desktopName = "Keepass";
     genericName = "Password manager";
-    categories = "Application;Utility;";
+    categories = "Utility;";
     mimeType = stdenv.lib.concatStringsSep ";" [
       "application/x-keepass2"
       ""
@@ -87,7 +87,7 @@ with builtins; buildDotnetPackage rec {
 
   dynlibPath = stdenv.lib.makeLibraryPath [ gtk2 ];
 
-  postInstall = 
+  postInstall =
   let
     extractFDeskIcons = ./extractWinRscIconsToStdFreeDesktopDir.sh;
   in
@@ -111,7 +111,7 @@ with builtins; buildDotnetPackage rec {
   meta = {
     description = "GUI password manager with strong cryptography";
     homepage = "http://www.keepass.info/";
-    maintainers = with stdenv.lib.maintainers; [ amorsillo obadz joncojonathan jraygauthier ];
+    maintainers = with stdenv.lib.maintainers; [ amorsillo obadz jraygauthier ];
     platforms = with stdenv.lib.platforms; all;
     license = stdenv.lib.licenses.gpl2;
   };
diff --git a/nixpkgs/pkgs/applications/misc/keepassx/community.nix b/nixpkgs/pkgs/applications/misc/keepassx/community.nix
index 469b4cf5ea6d..f0131712b237 100644
--- a/nixpkgs/pkgs/applications/misc/keepassx/community.nix
+++ b/nixpkgs/pkgs/applications/misc/keepassx/community.nix
@@ -6,6 +6,7 @@
 , qttools
 , darwin
 
+, asciidoctor
 , curl
 , glibcLocales
 , libXi
@@ -39,13 +40,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "keepassxc";
-  version = "2.5.4";
+  version = "2.6.1";
 
   src = fetchFromGitHub {
     owner = "keepassxreboot";
     repo = "keepassxc";
     rev = version;
-    sha256 = "1xih9q1pxszalc0l29fmjxwn1vrrrrbnhc8gmi8brw5sclhbs6bh";
+    sha256 = "0wgn0glmcxaa670bpxh7n7abjlxcx4h1rl1169cmah0ddxnxnxpq";
   };
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang [
@@ -63,11 +64,6 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./darwin.patch
-    # use wl-copy on Wayland - can be dropped with the next version update
-    (fetchpatch {
-      url = "https://github.com/keepassxreboot/keepassxc/commit/6128e5d58294f26411160f44da91087ebe7f4b07.patch";
-      sha256 = "16q0h7kijqjdbskmk4ar6p3g8vcxr0bq1zrlq2bk16pk10nv4bh1";
-    })
   ];
 
   cmakeFlags = [
@@ -97,6 +93,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake wrapQtAppsHook qttools ];
 
   buildInputs = [
+    asciidoctor
     curl
     glibcLocales
     libXi
diff --git a/nixpkgs/pkgs/applications/misc/khal/default.nix b/nixpkgs/pkgs/applications/misc/khal/default.nix
index 323fc501c842..257cacf69a0c 100644
--- a/nixpkgs/pkgs/applications/misc/khal/default.nix
+++ b/nixpkgs/pkgs/applications/misc/khal/default.nix
@@ -2,21 +2,14 @@
 
 with python3.pkgs; buildPythonApplication rec {
   pname = "khal";
-  version = "0.10.1";
+  version = "0.10.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1r8bkgjwkh7i8ygvsv51h1cnax50sb183vafg66x5snxf3dgjl6l";
+    sha256 = "11qhrga44knlnp88py9p547d4nr5kn041d2nszwa3dqw7mf22ks9";
   };
 
-  # Include a khal.desktop file via upstream commit.
-  # This patch should be removed when updating to the next version, probably.
   patches = [
-    (fetchpatch {
-      name = "add-khal-dot-desktop.patch";
-      url = "https://github.com/pimutils/khal/commit/1f93d238fec7c934dd2f8e48f54925d22130e3aa.patch";
-      sha256 = "06skn3van7zd93348fc6axllx71ckkc7h2zljqlvwa339vca608c";
-    })
     ./skip-broken-test.patch
   ];
 
diff --git a/nixpkgs/pkgs/applications/misc/khal/skip-broken-test.patch b/nixpkgs/pkgs/applications/misc/khal/skip-broken-test.patch
index c3c982547aef..fc37f6acc86e 100644
--- a/nixpkgs/pkgs/applications/misc/khal/skip-broken-test.patch
+++ b/nixpkgs/pkgs/applications/misc/khal/skip-broken-test.patch
@@ -1,3 +1,15 @@
+diff --git a/tests/cli_test.py b/tests/cli_test.py
+index 5e354a5..d8fbcd5 100644
+--- a/tests/cli_test.py
++++ b/tests/cli_test.py
+@@ -493,6 +493,7 @@ def test_import_invalid_choice_and_prefix(runner):
+     assert result.output == '09.04.-09.04. An Event\n'
+ 
+ 
++@pytest.mark.skip(reason="Mocking breaks in this testcase")
+ def test_import_from_stdin(runner, monkeypatch):
+     ics_data = 'This is some really fake icalendar data'
+ 
 diff --git a/tests/ui/test_editor.py b/tests/ui/test_editor.py
 index 27b7fa5..5978d72 100644
 --- a/tests/ui/test_editor.py
diff --git a/nixpkgs/pkgs/applications/misc/khard/default.nix b/nixpkgs/pkgs/applications/misc/khard/default.nix
index 8646b9864d9e..a3e4c1309ffc 100644
--- a/nixpkgs/pkgs/applications/misc/khard/default.nix
+++ b/nixpkgs/pkgs/applications/misc/khard/default.nix
@@ -1,12 +1,12 @@
 { stdenv, glibcLocales, python3 }:
 
 python3.pkgs.buildPythonApplication rec {
-  version = "0.16.1";
+  version = "0.17.0";
   pname = "khard";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "0fg4qh5gzki5wg958wlpc8a2icnk74gzg33lqxjm755cfnjng7qd";
+    sha256 = "062nv4xkfsjc11k9m52dh6xjn9z68a4a6x1s8z05wwv4jbp1lkhn";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -22,6 +22,11 @@ python3.pkgs.buildPythonApplication rec {
     install -D misc/zsh/_khard $out/share/zsh/site-functions/_khard
   '';
 
+  preCheck = ''
+    # see https://github.com/scheibler/khard/issues/263
+    export COLUMNS=80
+  '';
+
   meta = {
     homepage = "https://github.com/scheibler/khard";
     description = "Console carddav client";
diff --git a/nixpkgs/pkgs/applications/misc/kitty/default.nix b/nixpkgs/pkgs/applications/misc/kitty/default.nix
index 80cf90ced16e..65d7df72489f 100644
--- a/nixpkgs/pkgs/applications/misc/kitty/default.nix
+++ b/nixpkgs/pkgs/applications/misc/kitty/default.nix
@@ -3,7 +3,7 @@
   libstartup_notification, libGL, libX11, libXrandr, libXinerama, libXcursor,
   libxkbcommon, libXi, libXext, wayland-protocols, wayland,
   installShellFiles,
-  which, dbus,
+  dbus,
   Cocoa,
   CoreGraphics,
   Foundation,
@@ -20,14 +20,14 @@
 with python3Packages;
 buildPythonApplication rec {
   pname = "kitty";
-  version = "0.17.4";
+  version = "0.18.3";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "kovidgoyal";
     repo = "kitty";
     rev = "v${version}";
-    sha256 = "1rbyj84y8r6h7qd6w7cw58v2abspippignj458ihv2m26i4als2x";
+    sha256 = "0y05bw6d1m79dyhm7b6lk6wy82pmy2s9jhf01kf8gr2p0rjjp9yl";
   };
 
   buildInputs = [
@@ -50,7 +50,7 @@ buildPythonApplication rec {
   ];
 
   nativeBuildInputs = [
-    pkgconfig which sphinx ncurses
+    pkgconfig sphinx ncurses
   ] ++ stdenv.lib.optionals stdenv.isDarwin [
     imagemagick
     libicns  # For the png2icns tool.
@@ -63,13 +63,6 @@ buildPythonApplication rec {
 
   patches = [
     ./fix-paths.patch
-  ] ++ stdenv.lib.optionals stdenv.isLinux [
-    (substituteAll {
-      src = ./library-paths.patch;
-      libstartup_notification = "${libstartup_notification}/lib/libstartup-notification-1.so";
-      libcanberra = "${libcanberra}/lib/libcanberra.so";
-      libEGL = "${stdenv.lib.getLib libGL}/lib/libEGL.so.1";
-    })
   ] ++ stdenv.lib.optionals stdenv.isDarwin [
     ./no-lto.patch
   ];
@@ -77,13 +70,31 @@ buildPythonApplication rec {
   # Causes build failure due to warning
   hardeningDisable = stdenv.lib.optional stdenv.isDarwin "strictoverflow";
 
+  dontConfigure = true;
+
   buildPhase = if stdenv.isDarwin then ''
     ${python.interpreter} setup.py kitty.app --update-check-interval=0
     make man
   '' else ''
-    ${python.interpreter} setup.py linux-package --update-check-interval=0
+    ${python.interpreter} setup.py linux-package \
+    --update-check-interval=0 \
+    --egl-library='${stdenv.lib.getLib libGL}/lib/libEGL.so.1' \
+    --startup-notification-library='${libstartup_notification}/lib/libstartup-notification-1.so' \
+    --canberra-library='${libcanberra}/lib/libcanberra.so'
   '';
 
+  checkInputs = [ pillow ];
+
+  checkPhase =
+    let buildBinPath =
+      if stdenv.isDarwin
+        then "kitty.app/Contents/MacOS"
+        else "linux-package/bin";
+    in
+    ''
+      env PATH="${buildBinPath}:$PATH" ${python.interpreter} test.py
+    '';
+
   installPhase = ''
     runHook preInstall
     mkdir -p $out
@@ -100,8 +111,6 @@ buildPythonApplication rec {
     wrapProgram "$out/bin/kitty" --prefix PATH : "$out/bin:${stdenv.lib.makeBinPath [ imagemagick xsel ncurses.dev ]}"
     runHook postInstall
 
-    # ZSH completions need to be invoked with `source`:
-    # https://github.com/kovidgoyal/kitty/blob/8ceb941051b89b7c50850778634f0b6137aa5e6e/docs/index.rst#zsh
     mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions}
     "$out/bin/kitty" + complete setup fish > "$out/share/fish/vendor_completions.d/kitty.fish"
     "$out/bin/kitty" + complete setup bash > "$out/share/bash-completion/completions/kitty.bash"
@@ -125,7 +134,8 @@ buildPythonApplication rec {
     homepage = "https://github.com/kovidgoyal/kitty";
     description = "A modern, hackable, featureful, OpenGL based terminal emulator";
     license = licenses.gpl3;
+    changelog = "https://sw.kovidgoyal.net/kitty/changelog.html";
     platforms = platforms.darwin ++ platforms.linux;
-    maintainers = with maintainers; [ tex rvolosatovs ma27 Luflosi ];
+    maintainers = with maintainers; [ tex rvolosatovs Luflosi ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/kitty/library-paths.patch b/nixpkgs/pkgs/applications/misc/kitty/library-paths.patch
deleted file mode 100644
index 608dfb80d61f..000000000000
--- a/nixpkgs/pkgs/applications/misc/kitty/library-paths.patch
+++ /dev/null
@@ -1,38 +0,0 @@
---- a/glfw/egl_context.c
-+++ b/glfw/egl_context.c
-@@ -314,7 +314,7 @@ bool _glfwInitEGL(void)
- #elif defined(__CYGWIN__)
-         "libEGL-1.so",
- #else
--        "libEGL.so.1",
-+        "@libEGL@",
- #endif
-         NULL
-     };
-
---- a/kitty/desktop.c
-+++ b/kitty/desktop.c
-@@ -34,10 +34,7 @@ init_x11_startup_notification(PyObject UNUSED *self, PyObject *args) {
-         done = true;
- 
-         const char* libnames[] = {
--            "libstartup-notification-1.so",
--            // some installs are missing the .so symlink, so try the full name
--            "libstartup-notification-1.so.0",
--            "libstartup-notification-1.so.0.0.0",
-+            "@libstartup_notification@",
-             NULL
-         };
-         for (int i = 0; libnames[i]; i++) {
-@@ -113,10 +110,7 @@ load_libcanberra(void) {
-     if (done) return;
-     done = true;
-     const char* libnames[] = {
--        "libcanberra.so",
--        // some installs are missing the .so symlink, so try the full name
--        "libcanberra.so.0",
--        "libcanberra.so.0.2.5",
-+        "@libcanberra@",
-         NULL
-     };
-     for (int i = 0; libnames[i]; i++) {
diff --git a/nixpkgs/pkgs/applications/misc/kitty/no-lto.patch b/nixpkgs/pkgs/applications/misc/kitty/no-lto.patch
index 8073c11fbd2a..b1f38f9fd49f 100644
--- a/nixpkgs/pkgs/applications/misc/kitty/no-lto.patch
+++ b/nixpkgs/pkgs/applications/misc/kitty/no-lto.patch
@@ -1,6 +1,6 @@
 --- a/setup.py
 +++ b/setup.py
-@@ -277,10 +277,6 @@ def init_env(
+@@ -287,10 +287,6 @@ def init_env(
      cppflags += shlex.split(os.environ.get('CPPFLAGS', ''))
      cflags += shlex.split(os.environ.get('CFLAGS', ''))
      ldflags += shlex.split(os.environ.get('LDFLAGS', ''))
diff --git a/nixpkgs/pkgs/applications/misc/klayout/default.nix b/nixpkgs/pkgs/applications/misc/klayout/default.nix
index 784656b8b96f..5f6c679f3ba1 100644
--- a/nixpkgs/pkgs/applications/misc/klayout/default.nix
+++ b/nixpkgs/pkgs/applications/misc/klayout/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "klayout";
-  version = "0.26.5";
+  version = "0.26.6";
 
   src = fetchFromGitHub {
     owner = "KLayout";
     repo = "klayout";
     rev = "v${version}";
-    sha256 = "1zv8yazhdyxm33vdn0m5cciw7zzg45nwdg4rdcsydnrwg7d667r6";
+    sha256 = "0z17pdjdc2r2m5yi5bfz504dzzs978z8p6bhlf08v2npvigp8vz1";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/misc/kondo/default.nix b/nixpkgs/pkgs/applications/misc/kondo/default.nix
index 9df4c59717cc..6b23d1d0437f 100644
--- a/nixpkgs/pkgs/applications/misc/kondo/default.nix
+++ b/nixpkgs/pkgs/applications/misc/kondo/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kondo";
-  version = "0.3";
+  version = "0.4";
 
   src = fetchFromGitHub {
     owner = "tbillington";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1rrg0xfm3vn5jh861r4ismrga673g7v6qnzl2v1haflgjhvdazwd";
+    sha256 = "0kl2zn6ir3w75ny25ksgxl93vlyb13gzx2795zyimqqnsrdpbbrf";
   };
 
-  cargoSha256 = "1y7g8gw9hsm997d6i99c3dj2gb8y8cgws5001n85f9bpnlvvmf9y";
+  cargoSha256 = "1ax81a2828z3yla1psg5xi8ild65m6zcsvx48ncz902mpzqlj92b";
 
   meta = with stdenv.lib; {
     description = "Save disk space by cleaning unneeded files from software projects";
diff --git a/nixpkgs/pkgs/applications/misc/krename/default.nix b/nixpkgs/pkgs/applications/misc/krename/default.nix
index 816b352460ba..578c56a748a7 100644
--- a/nixpkgs/pkgs/applications/misc/krename/default.nix
+++ b/nixpkgs/pkgs/applications/misc/krename/default.nix
@@ -23,6 +23,8 @@ in mkDerivation rec {
 
   propagatedBuildInputs = [ kconfig kcrash kinit kjsembed ];
 
+  NIX_LDFLAGS = "-ltag";
+
   meta = with lib; {
     description = "A powerful batch renamer for KDE";
     homepage = "https://kde.org/applications/utilities/krename/";
diff --git a/nixpkgs/pkgs/applications/misc/lutris/default.nix b/nixpkgs/pkgs/applications/misc/lutris/default.nix
index 2ff2a82dd4fb..b3a68cffeff1 100644
--- a/nixpkgs/pkgs/applications/misc/lutris/default.nix
+++ b/nixpkgs/pkgs/applications/misc/lutris/default.nix
@@ -1,9 +1,43 @@
 { buildPythonApplication, lib, fetchFromGitHub, fetchpatch
-, wrapGAppsHook, gobject-introspection, glib-networking, gnome-desktop, libnotify, libgnome-keyring, pango
-, gdk-pixbuf, atk, webkitgtk, gst_all_1
-, dbus-python, evdev, pyyaml, pygobject3, requests, pillow
-, xrandr, pciutils, psmisc, glxinfo, vulkan-tools, xboxdrv, pulseaudio, p7zip, xgamma
-, libstrangle, wine, fluidsynth, xorgserver
+
+# build inputs
+, atk
+, gdk-pixbuf
+, glib-networking
+, gnome-desktop
+, gobject-introspection
+, gst_all_1
+, gtk3
+, libnotify
+, pango
+, webkitgtk
+, wrapGAppsHook
+
+# python dependencies
+, dbus-python
+, distro
+, evdev
+, pillow
+, pygobject3
+, pyyaml
+, requests
+, keyring
+
+# commands that lutris needs
+, xrandr
+, pciutils
+, psmisc
+, glxinfo
+, vulkan-tools
+, xboxdrv
+, pulseaudio
+, p7zip
+, xgamma
+, libstrangle
+, wine
+, fluidsynth
+, xorgserver
+, xorg
 }:
 
 let
@@ -22,37 +56,56 @@ let
     wine
     fluidsynth
     xorgserver
+    xorg.setxkbmap
+    xorg.xkbcomp
   ];
 
   gstDeps = with gst_all_1; [
-    gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly
     gst-libav
+    gst-plugins-bad
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-ugly
+    gstreamer
   ];
 
 in buildPythonApplication rec {
   pname = "lutris-original";
-  version = "0.5.5";
+  version = "0.5.7.1";
 
   src = fetchFromGitHub {
     owner = "lutris";
     repo = "lutris";
     rev = "v${version}";
-    sha256 = "1g093g0difnkjmnm91p20issdsxn9ri4c56zzddj5wfrbmhwdfag";
+    sha256 = "12ispwkbbm5aq263n3bdjmjfkpwplizacnqs2c0wnag4zj4kpm29";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
   buildInputs = [
-    gobject-introspection glib-networking gnome-desktop libnotify libgnome-keyring pango
-    gdk-pixbuf atk webkitgtk
+    atk
+    gdk-pixbuf
+    glib-networking
+    gnome-desktop
+    gobject-introspection
+    gtk3
+    libnotify
+    pango
+    webkitgtk
   ] ++ gstDeps;
 
-  makeWrapperArgs = [
-    "--prefix PATH : ${binPath}"
+  propagatedBuildInputs = [
+    evdev distro pyyaml pygobject3 requests pillow dbus-python keyring
   ];
 
-  propagatedBuildInputs = [
-    evdev pyyaml pygobject3 requests pillow dbus-python
+  # avoid double wrapping
+  dontWrapGApps = true;
+  makeWrapperArgs = [
+    "--prefix PATH : ${binPath}"
+    ''''${gappsWrapperArgs[@]}''
   ];
+  # needed for glib-schemas to work correctly (will crash on dialogues otherwise)
+  # see https://github.com/NixOS/nixpkgs/issues/56943
+  strictDeps = false;
 
   preCheck = "export HOME=$PWD";
 
diff --git a/nixpkgs/pkgs/applications/misc/lutris/chrootenv.nix b/nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix
index 798c32aa722c..2b656775ab5c 100644
--- a/nixpkgs/pkgs/applications/misc/lutris/chrootenv.nix
+++ b/nixpkgs/pkgs/applications/misc/lutris/fhsenv.nix
@@ -97,7 +97,7 @@ in buildFHSUserEnv {
     libcap libtiff libva libgphoto2 libxslt libsndfile giflib zlib glib
     alsaLib zziplib bash dbus keyutils zip cabextract freetype unzip coreutils
     readline gcc SDL SDL2 curl graphite2 gtk2 gtk3 udev ncurses wayland libglvnd
-    vulkan-loader xdg_utils sqlite gnutls libbsd
+    vulkan-loader xdg_utils sqlite gnutls p11-kit libbsd harfbuzz
 
     # PCSX2 // TODO: "libgobject-2.0.so.0: wrong ELF class: ELFCLASS64"
 
diff --git a/nixpkgs/pkgs/applications/misc/lyx/default.nix b/nixpkgs/pkgs/applications/misc/lyx/default.nix
index 4f6b73d592c2..34e7e145e749 100644
--- a/nixpkgs/pkgs/applications/misc/lyx/default.nix
+++ b/nixpkgs/pkgs/applications/misc/lyx/default.nix
@@ -3,12 +3,12 @@
 }:
 
 mkDerivation rec {
-  version = "2.3.5.1";
+  version = "2.3.5.2";
   pname = "lyx";
 
   src = fetchurl {
     url = "ftp://ftp.lyx.org/pub/lyx/stable/2.3.x/${pname}-${version}.tar.xz";
-    sha256 = "0mv32s26igm0pd8vs7d2mk1240dpr83y0a2wyh3xz6b67ph0w157";
+    sha256 = "1pwdh0ljd7lm5a83vsqmp4695irhig07wxa90jc23ng5gap589na";
   };
 
   # LaTeX is used from $PATH, as people often want to have it with extra pkgs
diff --git a/nixpkgs/pkgs/applications/misc/makeself/default.nix b/nixpkgs/pkgs/applications/misc/makeself/default.nix
index 6fcd86596fb3..993596aabe1d 100644
--- a/nixpkgs/pkgs/applications/misc/makeself/default.nix
+++ b/nixpkgs/pkgs/applications/misc/makeself/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchFromGitHub, which }:
 
 stdenv.mkDerivation rec {
   version = "2.4.2";
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
   checkTarget = "test";
+  checkInputs = [ which ];
 
   installPhase = ''
     mkdir -p $out/{bin,share/{${pname}-${version},man/man1}}
diff --git a/nixpkgs/pkgs/applications/misc/marktext/default.nix b/nixpkgs/pkgs/applications/misc/marktext/default.nix
index 5813fc15c0d0..e7600752ce21 100644
--- a/nixpkgs/pkgs/applications/misc/marktext/default.nix
+++ b/nixpkgs/pkgs/applications/misc/marktext/default.nix
@@ -1,19 +1,25 @@
-{ appimageTools, fetchurl, lib }:
+{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3 }:
 
 let
   pname = "marktext";
-  version = "v0.16.0-rc.2";
+  version = "v0.16.2";
 in
 appimageTools.wrapType2 rec {
   name = "${pname}-${version}-binary";
 
   src = fetchurl {
     url = "https://github.com/marktext/marktext/releases/download/${version}/marktext-x86_64.AppImage";
-    sha256 = "1w1mxa1j94zr36xhvlhzq8d77pi359vdxqb2j8mnz2bib9khxk9k";
+    sha256 = "0ivf9lvv2jk7dvxmqprzcsxgya3617xmx5bppjvik44z14b5x8r7";
   };
 
   profile = ''
     export LC_ALL=C.UTF-8
+  ''
+  # Fixes file open dialog error
+  #     GLib-GIO-ERROR **: 20:36:48.243: No GSettings schemas are installed on the system
+  # See https://github.com/NixOS/nixpkgs/pull/83701#issuecomment-608034097
+  + ''
+    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
   '';
 
   multiPkgs = null; # no 32bit needed
diff --git a/nixpkgs/pkgs/applications/misc/masterpdfeditor/default.nix b/nixpkgs/pkgs/applications/misc/masterpdfeditor/default.nix
index 5df4a1b8d93c..d541c5e1289a 100644
--- a/nixpkgs/pkgs/applications/misc/masterpdfeditor/default.nix
+++ b/nixpkgs/pkgs/applications/misc/masterpdfeditor/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "masterpdfeditor";
-  version = "5.4.38";
+  version = "5.6.09";
 
   src = fetchurl {
     url = "https://code-industry.net/public/master-pdf-editor-${version}-qt5.amd64.tar.gz";
-    sha256 = "0fidy8gd4mqvyfgmrwdiz8z53dyzihqqhgfrffj0z0idm2zi4mcq";
+    sha256 = "0v9j6fwr0xl03kr77vf4wdb06zlplmn4mr3jyzxhvs8a77scmfzb";
   };
 
   nativeBuildInputs = [ autoPatchelfHook wrapQtAppsHook ];
diff --git a/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix b/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix
index 79dcf1053614..96833bb25d35 100644
--- a/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mediainfo-gui/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, libmediainfo, wxGTK
+{ stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, libmediainfo, wxGTK30-gtk3
 , desktop-file-utils, libSM, imagemagick }:
 
 stdenv.mkDerivation rec {
-  version = "20.03";
+  version = "20.08";
   pname = "mediainfo-gui";
   src = fetchurl {
     url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
-    sha256 = "1f1shnycf0f1fwka9k9s250l228xjkg0k4k73h8bpld8msighgnw";
+    sha256 = "1baf2dj5s3g1x4ssqli1b2r1203syk42m09zhp36qcinmfixv11l";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  buildInputs = [ libzen libmediainfo wxGTK desktop-file-utils libSM
+  buildInputs = [ libzen libmediainfo wxGTK30-gtk3 desktop-file-utils libSM
                   imagemagick ];
 
   sourceRoot = "./MediaInfo/Project/GNU/GUI/";
diff --git a/nixpkgs/pkgs/applications/misc/mediainfo/default.nix b/nixpkgs/pkgs/applications/misc/mediainfo/default.nix
index 1ed1ef4afb53..09f20a9ba5dd 100644
--- a/nixpkgs/pkgs/applications/misc/mediainfo/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mediainfo/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, libmediainfo, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "20.03";
+  version = "20.08";
   pname = "mediainfo";
   src = fetchurl {
     url = "https://mediaarea.net/download/source/mediainfo/${version}/mediainfo_${version}.tar.xz";
-    sha256 = "1f1shnycf0f1fwka9k9s250l228xjkg0k4k73h8bpld8msighgnw";
+    sha256 = "1baf2dj5s3g1x4ssqli1b2r1203syk42m09zhp36qcinmfixv11l";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/misc/megasync/default.nix b/nixpkgs/pkgs/applications/misc/megasync/default.nix
index e04833cd4b2c..d5da4c7d773a 100644
--- a/nixpkgs/pkgs/applications/misc/megasync/default.nix
+++ b/nixpkgs/pkgs/applications/misc/megasync/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "megasync";
-  version = "4.3.0.8";
+  version = "4.3.1.0";
 
   src = fetchFromGitHub {
     owner = "meganz";
     repo = "MEGAsync";
     rev = "v${version}_Linux";
-    sha256 = "1rhxkc6j3039rcsi8cxy3n00g6w7acir82ymnksbpsnp4yxqv5r3";
+    sha256 = "0b68wpif8a0wf1vfn1nr19dmz8f31dprb27jpldxrxhyfslc43yj";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/misc/minder/default.nix b/nixpkgs/pkgs/applications/misc/minder/default.nix
index 28157d615377..14b9ebfe4c7d 100644
--- a/nixpkgs/pkgs/applications/misc/minder/default.nix
+++ b/nixpkgs/pkgs/applications/misc/minder/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "minder";
-  version = "1.8.0";
+  version = "1.9.2";
 
   src = fetchFromGitHub {
     owner = "phase1geo";
     repo = pname;
     rev = version;
-    sha256 = "13klasvrndwsmpcxkgy7kvsl2jqmp2cl52vb4i0hk18lr004scgy";
+    sha256 = "0lhwwx515f0ycpinkhgbjnik7dj2c7fckikbgzwkzzs25xqp9ayj";
   };
 
   nativeBuildInputs = [ pkgconfig meson ninja python3 wrapGAppsHook vala shared-mime-info ];
diff --git a/nixpkgs/pkgs/applications/misc/mlterm/default.nix b/nixpkgs/pkgs/applications/misc/mlterm/default.nix
index f58fb13e61f0..7c7906fc841f 100644
--- a/nixpkgs/pkgs/applications/misc/mlterm/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mlterm/default.nix
@@ -3,6 +3,8 @@
 , harfbuzz #substituting glyphs with opentype fonts
 , fribidi, m17n_lib #bidi and encoding
 , openssl, libssh2 #build-in ssh
+, fcitx, ibus, uim #IME
+, wrapGAppsHook #color picker in mlconfig
 }:
 
 stdenv.mkDerivation rec {
@@ -14,10 +16,11 @@ stdenv.mkDerivation rec {
     sha256 = "17h6j4nmbyvsx2shm8mqm7smzq9i7mbqxjw19c2m0rhf5yzqhr3k";
   };
 
-  nativeBuildInputs = [ pkgconfig autoconf ];
+  nativeBuildInputs = [ pkgconfig autoconf wrapGAppsHook ];
   buildInputs = [
     libX11 gdk-pixbuf.dev cairo libXft gtk3 vte
     harfbuzz fribidi m17n_lib openssl libssh2
+    fcitx ibus uim
   ];
 
   #bad configure.ac and Makefile.in everywhere
diff --git a/nixpkgs/pkgs/applications/misc/moolticute/default.nix b/nixpkgs/pkgs/applications/misc/moolticute/default.nix
index 6a1521764156..c815a74e0197 100644
--- a/nixpkgs/pkgs/applications/misc/moolticute/default.nix
+++ b/nixpkgs/pkgs/applications/misc/moolticute/default.nix
@@ -9,13 +9,13 @@
 
 mkDerivation rec {
   pname = "moolticute";
-  version = "0.43.16";
+  version = "0.44.0";
 
   src = fetchFromGitHub {
     owner = "mooltipass";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1gx1hbxiilggwfw0jspyk2cw92r6qs9a8yqa8x1d2ndf493mjx9y";
+    sha256 = "1xlbhx6f1ysx8gka8g67271whzhkzsnkavpq3x58hdxr8v88khby";
   };
 
   outputs = [ "out" "udev" ];
diff --git a/nixpkgs/pkgs/applications/misc/mop/default.nix b/nixpkgs/pkgs/applications/misc/mop/default.nix
index 81c236589654..be8176089240 100644
--- a/nixpkgs/pkgs/applications/misc/mop/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mop/default.nix
@@ -26,6 +26,5 @@ buildGoPackage rec {
     description = "Simple stock tracker implemented in go";
     homepage =  "https://github.com/mop-tracker/mop";
     license = licenses.mit;
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/mrxvt/default.nix b/nixpkgs/pkgs/applications/misc/mrxvt/default.nix
index 6717fc3c97f9..4dc70133ec47 100644
--- a/nixpkgs/pkgs/applications/misc/mrxvt/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mrxvt/default.nix
@@ -27,14 +27,14 @@ stdenv.mkDerivation {
     sha256 = "1mqhmnlz32lvld9rc6c1hyz7gjw4anwf39yhbsjkikcgj1das0zl";
   };
 
-  meta = { 
+  meta = with stdenv.lib; {
     description = "Lightweight multitabbed feature-rich X11 terminal emulator";
     longDescription = "
-    	Multitabbed lightweight terminal emulator based on rxvt. 
+    	Multitabbed lightweight terminal emulator based on rxvt.
 	Supports transparency, backgroundimages, freetype fonts, ...
     ";
     homepage = "https://sourceforge.net/projects/materm";
-    license = "GPL";
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.gpl2;
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix b/nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix
index 07ca64518e52..63d7077d32e0 100644
--- a/nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix
+++ b/nixpkgs/pkgs/applications/misc/mysql-workbench/default.nix
@@ -45,11 +45,11 @@ let
   inherit (python2.pkgs) paramiko pycairo pyodbc;
 in stdenv.mkDerivation rec {
   pname = "mysql-workbench";
-  version = "8.0.20";
+  version = "8.0.21";
 
   src = fetchurl {
     url = "http://dev.mysql.com/get/Downloads/MySQLGUITools/mysql-workbench-community-${version}-src.tar.gz";
-    sha256 = "0c0ig2fqfpli7fwb4v4iwvfh4szzj3grx8j9rbh40kllkc8v5qh6";
+    sha256 = "0rqgr1dcbf6yp60hninbw5dnwykx5ngbyhhx0sbhgv0m0cq5a44h";
   };
 
   patches = [
@@ -142,7 +142,7 @@ in stdenv.mkDerivation rec {
     "-DMySQL_CONFIG_PATH=${mysql}/bin/mysql_config"
     "-DIODBC_CONFIG_PATH=${libiodbc}/bin/iodbc-config"
     "-DWITH_ANTLR_JAR=${antlr4_7.jarLocation}"
-    # mysql-workbench 8.0.20 depends on libmysqlconnectorcpp 1.1.8.
+    # mysql-workbench 8.0.21 depends on libmysqlconnectorcpp 1.1.8.
     # Newer versions of connector still provide the legacy library when enabled
     # but the headers are in a different location.
     "-DMySQLCppConn_INCLUDE_DIR=${libmysqlconnectorcpp}/include/jdbc"
diff --git a/nixpkgs/pkgs/applications/misc/navi/default.nix b/nixpkgs/pkgs/applications/misc/navi/default.nix
new file mode 100644
index 000000000000..1965a8ad5ec5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/navi/default.nix
@@ -0,0 +1,31 @@
+{ fetchFromGitHub, fzf, lib, makeWrapper, rustPlatform, wget }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "navi";
+  version = "2.12.0";
+
+  src = fetchFromGitHub {
+    owner = "denisidoro";
+    repo = "navi";
+    rev = "v${version}";
+    sha256 = "0izmf4flwwn2h1wwpsnghb6rd494lj63hhsky1v9v6l1l641had4";
+  };
+
+  cargoSha256 = "19xv9kbmxbp84lj8ycifsdr7sw9vhwgla7cdmrvlhayiq5r04xd7";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postInstall = ''
+    wrapProgram $out/bin/navi \
+      --prefix PATH : "$out/bin" \
+      --prefix PATH : ${lib.makeBinPath [ fzf wget ]}
+  '';
+
+  meta = with lib; {
+    description = "An interactive cheatsheet tool for the command-line and application launchers";
+    homepage = "https://github.com/denisidoro/navi";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ cust0dian ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/netsurf/libnsbmp/default.nix b/nixpkgs/pkgs/applications/misc/netsurf/libnsbmp/default.nix
index a553eb3e7153..8a7e8b607417 100644
--- a/nixpkgs/pkgs/applications/misc/netsurf/libnsbmp/default.nix
+++ b/nixpkgs/pkgs/applications/misc/netsurf/libnsbmp/default.nix
@@ -6,11 +6,11 @@ stdenv.mkDerivation rec {
 
   name = "netsurf-${libname}-${version}";
   libname = "libnsbmp";
-  version = "0.1.5";
+  version = "0.1.6";
 
   src = fetchurl {
     url = "http://download.netsurf-browser.org/libs/releases/${libname}-${version}-src.tar.gz";
-    sha256 = "0lib2m07d1i0k80m4blkwnj0g7rha4jbm5vrgd0wwbkyfa0hvk35";
+    sha256 = "0krjg69a2amxjsahdgm3wmy9ngnyr3gfs2a1zhdlbvb0z1jr7i3r";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/misc/nimmm/default.nix b/nixpkgs/pkgs/applications/misc/nimmm/default.nix
new file mode 100644
index 000000000000..383057ca6551
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/nimmm/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchFromGitHub, nim, termbox, pcre }:
+
+let
+  noise = fetchFromGitHub {
+    owner = "jangko";
+    repo = "nim-noise";
+    rev = "db1e86e312413e4348fa82c02340784316a89cc1";
+    sha256 = "0n9l2dww5smrsl1xfqxjnxz3f1srb72lc1wl3pdvs6xfyf44qzlh";
+  };
+
+  nimbox = fetchFromGitHub {
+    owner = "dom96";
+    repo = "nimbox";
+    rev = "6a56e76c01481176f16ae29b7d7c526bd83f229b";
+    sha256 = "15x1sdfxa1xcqnr68705jfnlv83lm0xnp2z9iz3pgc4bz5vwn4x1";
+  };
+
+  lscolors = fetchFromGitHub {
+    owner = "joachimschmidt557";
+    repo = "nim-lscolors";
+    rev = "v0.3.3";
+    sha256 = "0526hqh46lcfsvymb67ldsc8xbfn24vicn3b8wrqnh6mag8wynf4";
+  };
+
+in stdenv.mkDerivation rec {
+  pname = "nimmm";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "joachimschmidt557";
+    repo = "nimmm";
+    rev = "v${version}";
+    sha256 = "1zpq181iz6g7yfi298gjwv33b89l4fpnkjprimykah7py5cpw67w";
+  };
+
+  nativeBuildInputs = [ nim ];
+  buildInputs = [ termbox pcre ];
+
+  buildPhase = ''
+    export HOME=$TMPDIR;
+    nim -p:${noise} -p:${nimbox} -p:${lscolors}/src c -d:release src/nimmm.nim
+  '';
+
+  installPhase = ''
+    install -Dt $out/bin src/nimmm
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Terminal file manager written in nim";
+    homepage = "https://github.com/joachimschmidt557/nimmm";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.joachimschmidt557 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/nnn/default.nix b/nixpkgs/pkgs/applications/misc/nnn/default.nix
index 95920362a5f4..9ec5018c4e3f 100644
--- a/nixpkgs/pkgs/applications/misc/nnn/default.nix
+++ b/nixpkgs/pkgs/applications/misc/nnn/default.nix
@@ -4,13 +4,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "nnn";
-  version = "3.2";
+  version = "3.4";
 
   src = fetchFromGitHub {
     owner = "jarun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "13p3379c26l57121ymx0kw7afh51zv614p57di311d2a41jaz5cw";
+    sha256 = "0lyrpyhzzs2bdgx3ifq1c5dq3s2v30xdiaq0j8zjc64s6bghfxnd";
   };
 
   configFile = optionalString (conf != null) (builtins.toFile "nnn.h" conf);
diff --git a/nixpkgs/pkgs/applications/misc/notejot/default.nix b/nixpkgs/pkgs/applications/misc/notejot/default.nix
index 3498ef278675..d5d6aea49461 100644
--- a/nixpkgs/pkgs/applications/misc/notejot/default.nix
+++ b/nixpkgs/pkgs/applications/misc/notejot/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, vala, pkgconfig, meson, ninja, python3, pantheon
+{ stdenv, fetchFromGitHub, nix-update-script, vala, pkgconfig, meson, ninja, python3, pantheon
 , gtk3, gtksourceview, json-glib, libgee, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix b/nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix
new file mode 100644
index 000000000000..fc8cf3ee02e1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/nwg-launchers/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, gtkmm3
+, meson
+, ninja
+, nlohmann_json
+, pkgconfig
+, swaylock
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nwg-launchers";
+  version = "0.3.3";
+
+  src = fetchFromGitHub {
+    owner = "nwg-piotr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1p1bwsn7l4vp7y183735pgsfbh7dssdfn0wjzacl4s87arjdcgvb";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkgconfig
+    cmake
+    makeWrapper
+  ];
+
+  buildInputs = [
+    gtkmm3
+    nlohmann_json
+  ];
+
+  postInstall = ''
+    wrapProgram $out/bin/nwgbar \
+      --prefix PATH : "${swaylock}/bin"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "GTK-based launchers: application grid, button bar, dmenu for sway and other window managers";
+    homepage = "https://github.com/nwg-piotr/nwg-launchers";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ bbigras ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/obinskit/default.nix b/nixpkgs/pkgs/applications/misc/obinskit/default.nix
index bbaa135f47e1..dc03b9b4f93c 100644
--- a/nixpkgs/pkgs/applications/misc/obinskit/default.nix
+++ b/nixpkgs/pkgs/applications/misc/obinskit/default.nix
@@ -1,4 +1,5 @@
 { stdenv
+, lib
 , fetchurl
 , libxkbcommon
 , systemd
@@ -16,7 +17,7 @@ let
     genericName = "Obinskit keyboard configurator";
     categories = "Utility";
   };
-
+  electron = electron_3;
 in
 stdenv.mkDerivation rec {
   pname = "obinskit";
@@ -48,9 +49,9 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    makeWrapper ${electron_3}/bin/electron $out/bin/${pname} \
+    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
       --add-flags $out/opt/obinskit/resources/app.asar \
-      --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib libxkbcommon systemd.lib xorg.libXt ]}"
+      --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib libxkbcommon (lib.getLib systemd) xorg.libXt ]}"
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/misc/obsidian/default.nix b/nixpkgs/pkgs/applications/misc/obsidian/default.nix
new file mode 100644
index 000000000000..055fc70cae7c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/obsidian/default.nix
@@ -0,0 +1,74 @@
+{ stdenv, fetchurl, lib, makeWrapper, electron, makeDesktopItem, graphicsmagick
+, writeScript }:
+
+let
+  icon = fetchurl {
+    url =
+      "https://forum.obsidian.md/uploads/default/original/1X/bf119bd48f748f4fd2d65f2d1bb05d3c806883b5.png";
+    sha256 = "18ylnbvxr6k4x44c4i1d55wxy2dq4fdppp43a4wl6h6zar0sc9s2";
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "obsidian";
+    desktopName = "Obsidian";
+    comment = "Knowledge base";
+    icon = "obsidian";
+    exec = "obsidian";
+    categories = "Office";
+  };
+
+  updateScript = writeScript "obsidian-updater" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p curl jq common-updater-scripts
+
+    set -eu -o pipefail
+
+    latestVersion="$(curl -sS https://raw.githubusercontent.com/obsidianmd/obsidian-releases/master/desktop-releases.json | jq -r '.latestVersion')"
+
+    update-source-version obsidian "$latestVersion"
+  '';
+
+in stdenv.mkDerivation rec {
+  pname = "obsidian";
+  version = "0.8.15";
+
+  src = fetchurl {
+    url =
+      "https://github.com/obsidianmd/obsidian-releases/releases/download/v${version}/obsidian-${version}.asar.gz";
+    sha256 = "0cbgkdbfr7w4xixzwx80q9fzsv97lahfdsd8b26m2zvyby075qzj";
+  };
+
+  nativeBuildInputs = [ makeWrapper graphicsmagick ];
+
+  unpackPhase = ''
+    gzip -dc $src > obsidian.asar
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+
+    makeWrapper ${electron}/bin/electron $out/bin/obsidian \
+      --add-flags $out/share/electron/obsidian.asar
+
+    install -m 444 -D obsidian.asar $out/share/electron/obsidian.asar
+
+    install -m 444 -D "${desktopItem}/share/applications/"* \
+      -t $out/share/applications/
+
+    for size in 16 24 32 48 64 128 256 512; do
+      mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
+      gm convert -resize "$size"x"$size" ${icon} $out/share/icons/hicolor/"$size"x"$size"/apps/obsidian.png
+    done
+  '';
+
+  passthru.updateScript = updateScript;
+
+  meta = with lib; {
+    description =
+      "Obsidian is a powerful knowledge base that works on top of a local folder of plain text Markdown files";
+    homepage = "https://obsidian.md";
+    license = licenses.obsidian;
+    maintainers = with maintainers; [ conradmearns zaninime ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/octoprint/default.nix b/nixpkgs/pkgs/applications/misc/octoprint/default.nix
index 7d613f376758..82cdf18b4846 100644
--- a/nixpkgs/pkgs/applications/misc/octoprint/default.nix
+++ b/nixpkgs/pkgs/applications/misc/octoprint/default.nix
@@ -1,108 +1,172 @@
-{ pkgs, stdenv, lib, fetchFromGitHub, python3
-# To include additional plugins, pass them here as an overlay.
+{ pkgs
+, stdenv
+, lib
+, fetchFromGitHub
+, python3
+  # To include additional plugins, pass them here as an overlay.
 , packageOverrides ? self: super: {}
 }:
 let
   mkOverride = attrname: version: sha256:
-    self: super: {
-      ${attrname} = super.${attrname}.overridePythonAttrs (oldAttrs: {
+  self: super: {
+    ${attrname} = super.${attrname}.overridePythonAttrs (
+      oldAttrs: {
         inherit version;
         src = oldAttrs.src.override {
           inherit version sha256;
         };
-      });
-    };
+      }
+    );
+  };
 
   py = python3.override {
     self = py;
-    packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) ([
-      (mkOverride "flask"       "0.12.5" "fac2b9d443e49f7e7358a444a3db5950bdd0324674d92ba67f8f1f15f876b14f")
-      (mkOverride "flaskbabel"  "0.12.2" "11jwp8vvq1gnm31qh6ihy2h393hy18yn9yjp569g60r0wj1x2sii")
-      (mkOverride "tornado"     "4.5.3"  "02jzd23l4r6fswmwxaica9ldlyc2p6q8dk6dyff7j58fmdzf853d")
-      (mkOverride "psutil"      "5.6.7"  "ffad8eb2ac614518bbe3c0b8eb9dffdb3a8d2e3a7d5da51c5b974fb723a5c5aa")
-      (mkOverride "watchdog"    "0.9.0"  "07cnvvlpif7a6cg4rav39zq8fxa5pfqawchr46433pij0y6napwn")
+    packageOverrides = lib.foldr lib.composeExtensions (self: super: {}) (
+      [
+        # the following dependencies are non trivial to update since later versions introduce backwards incompatible
+        # changes that might affect plugins, or due to other observed problems
+        (mkOverride "markupsafe" "1.1.1" "29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b")
+        (mkOverride "rsa" "4.0" "1a836406405730121ae9823e19c6e806c62bbad73f890574fff50efa4122c487")
+        (mkOverride "markdown" "3.1.1" "2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a")
+        (mkOverride "tornado" "5.1.1" "4e5158d97583502a7e2739951553cbd88a72076f152b4b11b64b9a10c4c49409")
+        (mkOverride "unidecode" "0.04.21" "280a6ab88e1f2eb5af79edff450021a0d3f0448952847cd79677e55e58bad051")
+        (mkOverride "sarge" "0.1.5.post0" "1c1ll7pys9vra5cfi8jxlgrgaql6c27l6inpy15aprgqhc4ck36s")
 
-      # Octoprint holds back jinja2 to 2.8.1 due to breaking changes.
-      # This old version does not have updated test config for pytest 4,
-      # and pypi tarball doesn't contain tests dir anyways.
-      (self: super: {
-        jinja2 = super.jinja2.overridePythonAttrs (oldAttrs: rec {
-          version = "2.8.1";
-          src = oldAttrs.src.override {
-            inherit version;
-            sha256 = "14aqmhkc9rw5w0v311jhixdm6ym8vsm29dhyxyrjfqxljwx1yd1m";
-          };
-          doCheck = false;
-        });
+        # Built-in dependency
+        (
+          self: super: {
+            octoprint-filecheck = self.buildPythonPackage rec {
+              pname = "OctoPrint-FileCheck";
+              version = "2020.08.07";
 
-        httpretty = super.httpretty.overridePythonAttrs (oldAttrs: rec {
-          doCheck = false;
-        });
+              src = fetchFromGitHub {
+                owner = "OctoPrint";
+                repo = "OctoPrint-FileCheck";
+                rev = version;
+                sha256 = "05ys05l5x7d2bkg3yqrga6m65v3g5fcnnzbfab7j9w2pzjdapx5b";
+              };
+              doCheck = false;
+            };
+          }
+        )
 
-        celery = super.celery.overridePythonAttrs (oldAttrs: rec {
-          doCheck = false;
-        });
-      })
-      (self: super: {
-        octoprint = self.buildPythonPackage rec {
-          pname = "OctoPrint";
-          version = "1.4.0";
+        # Built-in dependency
+        (
+          self: super: {
+            octoprint-firmwarecheck = self.buildPythonPackage rec {
+              pname = "OctoPrint-FirmwareCheck";
+              version = "2020.06.22";
 
-          src = fetchFromGitHub {
-            owner  = "foosel";
-            repo   = "OctoPrint";
-            rev    = version;
-            sha256 = "0387228544v28d69dcdg2zr5gp6qavkfr6dydpjgj5awxv3w25d5";
-          };
+              src = fetchFromGitHub {
+                owner = "OctoPrint";
+                repo = "OctoPrint-FirmwareCheck";
+                rev = version;
+                sha256 = "19y7hrgg9z8hl7cwqkvg8nc8bk0wwrsfvjd1wawy33wn60psqv1h";
+              };
+              doCheck = false;
+            };
+          }
+        )
 
-          propagatedBuildInputs = with super; [
-            awesome-slugify flask flask_assets rsa requests pkginfo watchdog
-            semantic-version werkzeug flaskbabel tornado
-            psutil pyserial flask_login netaddr markdown
-            pylru pyyaml sarge feedparser netifaces click websocket_client
-            scandir chainmap future wrapt monotonic emoji jinja2
-            frozendict cachelib sentry-sdk filetype markupsafe
-          ] ++ lib.optionals stdenv.isDarwin [ py.pkgs.appdirs ];
+        (
+          self: super: {
+            octoprint = self.buildPythonPackage rec {
+              pname = "OctoPrint";
+              version = "1.4.2";
 
-          checkInputs = with super; [ pytestCheckHook mock ddt ];
+              src = fetchFromGitHub {
+                owner = "OctoPrint";
+                repo = "OctoPrint";
+                rev = version;
+                sha256 = "1bblrjwkccy1ifw7lf55g3k9lq1sqzwd49vj8bfzj2w07a7qda62";
+              };
 
-          postPatch = let
-            ignoreVersionConstraints = [
-              "sentry-sdk"
-            ];
-          in ''
-            sed -r -i \
-              ${lib.concatStringsSep "\n" (map (e:
-                ''-e 's@${e}[<>=]+.*@${e}",@g' \''
-              ) ignoreVersionConstraints)}
-              setup.py
-          '';
+              propagatedBuildInputs = with super; [
+                octoprint-firmwarecheck
+                octoprint-filecheck
+                markupsafe
+                tornado
+                markdown
+                rsa
+                regex
+                flask
+                jinja2
+                flask_login
+                flask-babel
+                flask_assets
+                werkzeug
+                itsdangerous
+                cachelib
+                pyyaml
+                pyserial
+                netaddr
+                watchdog
+                sarge
+                netifaces
+                pylru
+                pkginfo
+                requests
+                semantic-version
+                psutil
+                click
+                feedparser
+                future
+                websocket_client
+                wrapt
+                emoji
+                frozendict
+                sentry-sdk
+                filetype
+                unidecode
+                blinker
+              ] ++ lib.optionals stdenv.isDarwin [ py.pkgs.appdirs ];
 
-          dontUseSetuptoolsCheck = true;
+              checkInputs = with super; [ pytestCheckHook mock ddt ];
 
-          preCheck = ''
-            export HOME=$(mktemp -d)
-            rm pytest.ini
-          '';
+              postPatch = let
+                ignoreVersionConstraints = [
+                  "sentry-sdk"
+                ];
+              in
+                ''
+                  sed -r -i \
+                    ${lib.concatStringsSep "\n" (
+                  map (
+                    e:
+                      ''-e 's@${e}[<>=]+.*@${e}",@g' \''
+                  ) ignoreVersionConstraints
+                )}
+                    setup.py
+                '';
 
-          disabledTests = [
-            "test_check_setup" # Why should it be able to call pip?
-          ] ++ lib.optionals stdenv.isDarwin [
-            "test_set_external_modification"
-          ];
+              dontUseSetuptoolsCheck = true;
 
-          passthru.python = self.python;
+              preCheck = ''
+                export HOME=$(mktemp -d)
+                rm pytest.ini
+              '';
 
-          meta = with stdenv.lib; {
-            homepage = "https://octoprint.org/";
-            description = "The snappy web interface for your 3D printer";
-            license = licenses.agpl3;
-            maintainers = with maintainers; [ abbradar gebner WhittlesJr ];
-          };
-        };
-      })
-      (import ./plugins.nix {inherit pkgs;})
-      packageOverrides
-    ]);
+              disabledTests = [
+                "test_check_setup" # Why should it be able to call pip?
+              ] ++ lib.optionals stdenv.isDarwin [
+                "test_set_external_modification"
+              ];
+
+              passthru.python = self.python;
+
+              meta = with stdenv.lib; {
+                homepage = "https://octoprint.org/";
+                description = "The snappy web interface for your 3D printer";
+                license = licenses.agpl3;
+                maintainers = with maintainers; [ abbradar gebner WhittlesJr ];
+              };
+            };
+          }
+        )
+        (import ./plugins.nix { inherit pkgs; })
+        packageOverrides
+      ]
+    );
   };
-in with py.pkgs; toPythonApplication octoprint
+in
+  with py.pkgs; toPythonApplication octoprint
diff --git a/nixpkgs/pkgs/applications/misc/octoprint/plugins.nix b/nixpkgs/pkgs/applications/misc/octoprint/plugins.nix
index b5d52f5e5f89..ddf68b6f7c38 100644
--- a/nixpkgs/pkgs/applications/misc/octoprint/plugins.nix
+++ b/nixpkgs/pkgs/applications/misc/octoprint/plugins.nix
@@ -252,4 +252,42 @@ in {
       maintainers = with maintainers; [ WhittlesJr ];
     };
   };
+
+  displaylayerprogress = buildPlugin rec {
+    pname = "OctoPrint-DisplayLayerProgress";
+    version = "1.23.2";
+
+    src = fetchFromGitHub {
+      owner = "OllisGit";
+      repo = pname;
+      rev = version;
+      sha256 = "0yv8gy5dq0rl7zxkvqa98az391aiixl8wbzkyvbmpjar9r6whdzm";
+    };
+
+    meta = with stdenv.lib; {
+      description = "OctoPrint-Plugin that sends the current progress of a print via M117 command";
+      homepage = "https://github.com/OllisGit/OctoPrint-DisplayLayerProgress";
+      license = licenses.agpl3;
+      maintainers = with maintainers; [ j0hax ];
+    };
+  };
+
+  octoprint-dashboard = buildPlugin rec {
+    pname = "OctoPrint-Dashboard";
+    version = "1.13.0";
+
+    src = fetchFromGitHub {
+      owner = "StefanCohen";
+      repo = pname;
+      rev = version;
+      sha256 = "1879l05gkkryvhxkmhr3xvd10d4m7i0cr3jk1gdcv47xwyr6q9pf";
+    };
+
+    meta = with stdenv.lib; {
+      description = "A dashboard for Octoprint";
+      homepage = "https://github.com/StefanCohen/OctoPrint-Dashboard";
+      license = licenses.agpl3;
+      maintainers = with maintainers; [ j0hax ];
+    };
+  };
 }
diff --git a/nixpkgs/pkgs/applications/misc/ola/default.nix b/nixpkgs/pkgs/applications/misc/ola/default.nix
index b9529981c7ca..7682b56e4d6d 100644
--- a/nixpkgs/pkgs/applications/misc/ola/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ola/default.nix
@@ -1,31 +1,45 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, bison, flex, pkgconfig
-, libuuid, cppunit, protobuf3_1, zlib, avahi, libmicrohttpd
-, perl, python36 # Replace by python3 after the next update
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, bison
+, flex
+, pkgconfig
+, libuuid
+, cppunit
+, protobuf
+, zlib
+, avahi
+, libmicrohttpd
+, perl
+, python3
 }:
 
 stdenv.mkDerivation rec {
   pname = "ola";
-  version = "0.10.7";
+  version = "unstable-2020-07-17";
 
   src = fetchFromGitHub {
     owner = "OpenLightingProject";
     repo = "ola";
-    rev = version;
-    sha256 = "18krwrw7w1qzwih8gnmv7r4sah5ppvq7ax65r7l5yjxn3ihwp2kf";
+    rev = "e2cd699c7792570500578fd092fb6bfb3d511023"; # HEAD of "0.10" branch
+    sha256 = "17a3z3zhx00rjk58icd3zlqfw3753f3y8bwy2sza0frdim09lqr4";
   };
 
   nativeBuildInputs = [ autoreconfHook bison flex pkgconfig perl ];
-  buildInputs = [ libuuid cppunit protobuf3_1 zlib avahi libmicrohttpd python36 ];
+  buildInputs = [ libuuid cppunit protobuf zlib avahi libmicrohttpd python3 ];
   propagatedBuildInputs = [
-    (python36.pkgs.protobuf.override { protobuf = protobuf3_1; })
-    python36.pkgs.numpy
+    python3.pkgs.protobuf
+    python3.pkgs.numpy
   ];
 
   configureFlags = [ "--enable-python-libs" ];
 
+  enableParallelBuilding = true;
+
   meta = with stdenv.lib; {
     description = "A framework for controlling entertainment lighting equipment.";
-    maintainers = [ maintainers.globin ];
+    homepage = "https://www.openlighting.org/ola/";
+    maintainers = with maintainers; [ globin ];
     license = with licenses; [ lgpl21 gpl2Plus ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/applications/misc/olifant/default.nix b/nixpkgs/pkgs/applications/misc/olifant/default.nix
new file mode 100644
index 000000000000..21091b2583a5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/olifant/default.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, fetchFromGitHub
+, nix-update-script
+, fetchpatch
+, vala
+, meson
+, ninja
+, pkgconfig
+, python3
+, libgee
+, gsettings-desktop-schemas
+, gnome3
+, pantheon
+, wrapGAppsHook
+, gtk3
+, json-glib
+, glib
+, glib-networking
+}:
+
+stdenv.mkDerivation rec {
+  pname = "olifant";
+  version = "0.2.1-beta6";
+
+  src = fetchFromGitHub {
+    owner = "cleac";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-3hnEa4Q1dH0R8Jp+Ew0+dH1PEm3F+56jYwqhJ+vll4M=";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkgconfig
+    python3
+    vala
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glib
+    glib-networking
+    gnome3.libsoup
+    gsettings-desktop-schemas
+    gtk3
+    json-glib
+    libgee
+    pantheon.granite
+  ];
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+  '';
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "A simple Mastodon client designed for elementary OS, originally developed by @bleakgrey";
+    homepage = "https://github.com/cleac/olifant";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ worldofpeace ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/openambit/default.nix b/nixpkgs/pkgs/applications/misc/openambit/default.nix
new file mode 100644
index 000000000000..5ef6d4ae84d4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/openambit/default.nix
@@ -0,0 +1,48 @@
+{ cmake
+, fetchFromGitHub
+, lib
+, libusb1
+, mkDerivation
+, python3
+, qtbase
+, qttools
+, udev
+, zlib
+}:
+
+mkDerivation rec {
+  pname = "openambit";
+  version = "0.5";
+
+  src = fetchFromGitHub {
+    owner = "openambitproject";
+    repo = pname;
+    rev = version;
+    sha256 = "1074kvkamwnlkwdajsw1799wddcfkjh2ay6l842r0s4cvrxrai85";
+  };
+
+  nativeBuildInputs = [ cmake qttools ];
+  buildInputs = [ libusb1 python3 qtbase udev zlib ];
+
+  cmakeFlags = [ "-DCMAKE_INSTALL_UDEVRULESDIR=${placeholder "out"}/lib/udev/rules.d" ];
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/openambit --version
+  '';
+
+  postInstall = ''
+    install -m755 -D $src/tools/openambit2gpx.py $out/bin/openambit2gpx
+
+    mv -v $out/lib/udev/rules.d/libambit.rules \
+          $out/lib/udev/rules.d/20-libambit.rules
+  '';
+
+  meta = with lib; {
+    description = "Helps fetch data from Suunto Ambit GPS watches";
+    homepage = "https://github.com/openambitproject/openambit/";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ rycee ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/openjump/default.nix b/nixpkgs/pkgs/applications/misc/openjump/default.nix
index e537180686cd..544329ec5e79 100644
--- a/nixpkgs/pkgs/applications/misc/openjump/default.nix
+++ b/nixpkgs/pkgs/applications/misc/openjump/default.nix
@@ -1,33 +1,33 @@
-{ stdenv, fetchurl, unzip, runtimeShell }:
+{ stdenv, fetchurl, unzip, makeWrapper
+, coreutils, gawk, which, gnugrep, findutils
+, jdk
+}:
 
 stdenv.mkDerivation {
-  name = "openjump-1.3.1";
+  pname = "openjump";
+  version = "1.15";
 
   src = fetchurl {
-    url = "mirror://sourceforge/jump-pilot/OpenJUMP/1.3.1/openjump-1.3.1.zip";
-    sha256 = "0y4z53yx0x7rp3c8rnj028ni3gr47r35apgcpqp3jl7r2di6zgqm";
+    url = "mirror://sourceforge/jump-pilot/OpenJUMP/1.15/OpenJUMP-Portable-1.15-r6241-CORE.zip";
+    sha256 = "12snzkv83w6khcdqzp6xahqapwp82af6c7j2q8n0lj62hk79rfgl";
   };
 
-  # ln jump.log hack: a different user will probably get a permission denied
-  # error. Still this is better than getting it always.
-  # TODO: build from source and patch this
+  # TODO: build from source
   unpackPhase = ''
     mkdir -p $out/bin;
     cd $out; unzip $src
-    s=$out/bin/OpenJump
-    dir=$(echo $out/openjump-*)
-    cat >> $s << EOF
-    #!${runtimeShell}
-    cd $dir/bin
-    exec ${stdenv.shell} openjump.sh
-    EOF
-    chmod +x $s
-    ln -s /tmp/openjump.log $dir/bin/jump.log
   '';
 
-  installPhase = ":";
+  buildInputs = [unzip makeWrapper];
 
-  buildInputs = [unzip];
+  installPhase = ''
+    dir=$(echo $out/OpenJUMP-*)
+
+    chmod +x $dir/bin/oj_linux.sh
+    makeWrapper $dir/bin/oj_linux.sh $out/bin/OpenJump \
+      --set JAVA_HOME ${jdk.home} \
+      --set PATH "${coreutils}/bin:${gawk}/bin:${which}/bin:${gnugrep}/bin:${findutils}/bin"
+  '';
 
   meta = {
     description = "Open source Geographic Information System (GIS) written in the Java programming language";
diff --git a/nixpkgs/pkgs/applications/misc/openrgb/default.nix b/nixpkgs/pkgs/applications/misc/openrgb/default.nix
new file mode 100644
index 000000000000..09a09811ab18
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/openrgb/default.nix
@@ -0,0 +1,44 @@
+{ mkDerivation, lib, fetchFromGitHub, qmake, libusb1, hidapi, pkg-config, fetchpatch }:
+
+mkDerivation rec {
+  pname = "openrgb";
+  version = "0.4";
+
+  src = fetchFromGitHub {
+    owner = "CalcProgrammer1";
+    repo = "OpenRGB";
+    rev = "release_${version}";
+    sha256 = "sha256-tHrRG2Zx7NYqn+WPiRpAlWA/QmxuAYidENanTkC1XVw";
+  };
+
+  nativeBuildInputs = [ qmake pkg-config ];
+  buildInputs = [ libusb1 hidapi ];
+
+  patches = [
+    # Make build SOURCE_DATE_EPOCH aware, merged in master
+    (fetchpatch {
+      url = "https://gitlab.com/CalcProgrammer1/OpenRGB/-/commit/f1b7b8ba900db58a1119d8d3e21c1c79de5666aa.patch";
+      sha256 = "17m1hn1kjxfcmd4p3zjhmr5ar9ng0zfbllq78qxrfcq1a0xrkybx";
+    })
+  ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp OpenRGB $out/bin
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/OpenRGB --help > /dev/null
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "Open source RGB lighting control";
+    homepage = "https://gitlab.com/CalcProgrammer1/OpenRGB";
+    maintainers = with maintainers; [ jonringer ];
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/orca/default.nix b/nixpkgs/pkgs/applications/misc/orca/default.nix
index 849e156b5292..ccb7f3e47c86 100644
--- a/nixpkgs/pkgs/applications/misc/orca/default.nix
+++ b/nixpkgs/pkgs/applications/misc/orca/default.nix
@@ -35,13 +35,13 @@
 
 buildPythonApplication rec {
   pname = "orca";
-  version = "3.36.3";
+  version = "3.36.5";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1x0xrcyxlvcjlqp6wcsx5d951i500079wqs04scssjzwqggy330n";
+    sha256 = "0nyb33p4y6nmln41pi70c8hiyjyasaryy10mazi7b2s6fy9pk25x";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/misc/osmium-tool/default.nix b/nixpkgs/pkgs/applications/misc/osmium-tool/default.nix
index c0d20c14f7ce..892038c252ae 100644
--- a/nixpkgs/pkgs/applications/misc/osmium-tool/default.nix
+++ b/nixpkgs/pkgs/applications/misc/osmium-tool/default.nix
@@ -1,18 +1,47 @@
-{ stdenv, fetchFromGitHub, cmake, libosmium, protozero, boost, bzip2, zlib, expat }:
+{ stdenv
+, fetchFromGitHub
+, cmake
+, installShellFiles
+, pandoc
+, boost
+, bzip2
+, expat
+, libosmium
+, protozero
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "osmium-tool";
-  version = "1.12.0";
+  version = "1.12.1";
 
   src = fetchFromGitHub {
     owner = "osmcode";
     repo = "osmium-tool";
     rev = "v${version}";
-    sha256 = "18afn5qzdjpip176kk5pr04mj0p7dv70dbz1n36qmqnq3gyms10q";
+    sha256 = "13142hj8gfgj6w51a62hjzfmzic90xgrnnlnb70hpdqjy86bxv7j";
   };
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ libosmium protozero boost bzip2 zlib expat ];
+  nativeBuildInputs = [
+    cmake
+    installShellFiles
+    pandoc
+  ];
+
+  buildInputs = [
+    boost
+    bzip2
+    expat
+    libosmium
+    protozero
+    zlib
+  ];
+
+  doCheck = true;
+
+  postInstall = ''
+    installShellCompletion --zsh ../zsh_completion/_osmium
+  '';
 
   meta = with stdenv.lib; {
     description = "Multipurpose command line tool for working with OpenStreetMap data based on the Osmium library";
diff --git a/nixpkgs/pkgs/applications/misc/pastel/default.nix b/nixpkgs/pkgs/applications/misc/pastel/default.nix
index 348ea4b991ec..aaaf6dc778b9 100644
--- a/nixpkgs/pkgs/applications/misc/pastel/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pastel/default.nix
@@ -21,6 +21,5 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/sharkdp/pastel/releases/tag/v${version}";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ davidtwco ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix b/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix
index c43ae1de9a1e..b8f7c4641d20 100644
--- a/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pdfarranger/default.nix
@@ -5,13 +5,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "pdfarranger";
-  version = "1.5.3";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "jeromerobert";
     repo = pname;
     rev = version;
-    sha256 = "0a9ap7p8iw57sn5nmhim7gp5as8gj6ir6l3p0bpmg4iqjsr4169h";
+    sha256 = "03siz4ar6flyvrrgh7hr7sslc6n9x5d9i13lc5rm2qnssd0qdich";
   };
 
   nativeBuildInputs = [
@@ -27,6 +27,7 @@ python3Packages.buildPythonApplication rec {
   propagatedBuildInputs = with python3Packages; [
     pygobject3
     pikepdf
+    img2pdf
     setuptools
   ];
 
diff --git a/nixpkgs/pkgs/applications/misc/pdfpc/default.nix b/nixpkgs/pkgs/applications/misc/pdfpc/default.nix
index d8203b9e7b5d..4e172e5fd7c1 100644
--- a/nixpkgs/pkgs/applications/misc/pdfpc/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pdfpc/default.nix
@@ -4,13 +4,13 @@
 stdenv.mkDerivation rec {
   name = "${product}-${version}";
   product = "pdfpc";
-  version = "4.3.4";
+  version = "4.4.0";
 
   src = fetchFromGitHub {
     repo = product;
     owner = product;
     rev = "v${version}";
-    sha256 = "07aafsm4jzdgpahz83p0ajv40hry7gviyadqi13ahr8xdhhwy2sd";
+    sha256 = "0vh2r32akvasdrghkaq7ard24r2qncp34jfiyshi3zxabm9bhfaa";
   };
 
   nativeBuildInputs = [
@@ -31,14 +31,6 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = stdenv.lib.optional stdenv.isDarwin "-DMOVIES=OFF";
 
-  patches = [
-    # Fix build vala 0.46
-    (fetchpatch {
-      url = "https://github.com/pdfpc/pdfpc/commit/bbc16b97ecbdcdd22c2dc827a5c0e8b569073312.patch";
-      sha256 = "0wi1rqcvg65cxnxvmvavcvghqyksnpijq1p91m57jaby3hb0pdcy";
-    })
-  ];
-
   meta = with stdenv.lib; {
     description = "A presenter console with multi-monitor support for PDF files";
     homepage = "https://pdfpc.github.io/";
diff --git a/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix b/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix
index d18923527851..a6dd86393ff1 100644
--- a/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pdfsam-basic/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pdfsam-basic";
-  version = "4.1.3";
+  version = "4.1.4";
 
   src = fetchurl {
     url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam_${version}-1_amd64.deb";
-    sha256 = "1rhv6mf6pr9aaa8516i3b7v6h622qb1p8c4jsy3j0s5wrdry5l9l";
+    sha256 = "1gw3cmc8c1xxc55bm71v1dz9x9560lbhx9nkwprarhxlmn0m0zzp";
   };
 
   unpackPhase = ''
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     desktopName = "PDFsam Basic";
     genericName = "PDF Split and Merge";
     mimeType = "application/pdf;";
-    categories = "Office;Application;";
+    categories = "Office;";
   };
 
   meta = with stdenv.lib; {
@@ -44,6 +44,6 @@ stdenv.mkDerivation rec {
       description = "Multi-platform software designed to extract pages, split, merge, mix and rotate PDF files";
       license = licenses.agpl3;
       platforms = platforms.all;
-      maintainers = with maintainers; [ maintainers."1000101" ];
+      maintainers = with maintainers; [ _1000101 ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/misc/pgadmin/default.nix b/nixpkgs/pkgs/applications/misc/pgadmin/default.nix
index 5fc0703e011b..b0aabead2457 100644
--- a/nixpkgs/pkgs/applications/misc/pgadmin/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pgadmin/default.nix
@@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
       exec = "pgadmin3";
       icon = "pgAdmin3";
       type = "Application";
-      categories = "Application;Development;";
+      categories = "Development;";
       mimeType = "text/html";
     };
   in ''
diff --git a/nixpkgs/pkgs/applications/misc/pipr/default.nix b/nixpkgs/pkgs/applications/misc/pipr/default.nix
new file mode 100644
index 000000000000..b5a12f9ce7ee
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/pipr/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+, bubblewrap
+, makeWrapper
+, lib
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "pipr";
+  version = "0.0.12";
+
+  src = fetchFromGitHub {
+    owner = "ElKowar";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0l7yvpc59mbzh87lngj6pj8w586fwa07829l5x9mmxnkf6srapmc";
+  };
+
+  cargoSha256 = "1xzc1x5mjvj2jgdhwmjbdbqi8d7ln1ss7akn72d96kmy1wsj1qsa";
+
+  nativeBuildInputs = [ makeWrapper ];
+  postFixup = ''
+    wrapProgram "$out/bin/pipr" --prefix PATH : ${lib.makeBinPath [ bubblewrap ]}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A commandline-tool to interactively write shell pipelines";
+    homepage = "https://github.com/ElKowar/pipr";
+    license = licenses.mit;
+    maintainers = with maintainers; [ elkowar ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix b/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
index 3ecace18f924..15dd7222b285 100644
--- a/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/plasma-applet-volumewin7mixer/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "plasma-applet-volumewin7mixer";
-  version = "24";
+  version = "25";
 
   src = fetchFromGitHub {
     owner = "Zren";
     repo = "plasma-applet-volumewin7mixer";
     rev = "v${version}";
-    sha256 = "1pms71229y7fv3zs38a0l9mdcg5qkcdv9yrcvdm6xqpdyk21jbz2";
+    sha256 = "1nvz0a06qb3pfk8dfh5n5vgf3psd6k0j3vms9pskr511qsxw0dfi";
   };
 
   patches = [ ./cmake.patch ];
diff --git a/nixpkgs/pkgs/applications/misc/prusa-slicer/default.nix b/nixpkgs/pkgs/applications/misc/prusa-slicer/default.nix
index 144addf02c66..79ad84e99be4 100644
--- a/nixpkgs/pkgs/applications/misc/prusa-slicer/default.nix
+++ b/nixpkgs/pkgs/applications/misc/prusa-slicer/default.nix
@@ -86,7 +86,7 @@ stdenv.mkDerivation rec {
     comment = "G-code generator for 3D printers";
     desktopName = "PrusaSlicer";
     genericName = "3D printer tool";
-    categories = "Application;Development;";
+    categories = "Development;";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix b/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix
new file mode 100644
index 000000000000..e2ef645e70aa
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/prusa-slicer/super-slicer.nix
@@ -0,0 +1,50 @@
+{
+  stdenv, lib, fetchFromGitHub, makeDesktopItem, prusa-slicer
+}:
+let
+  appname = "SuperSlicer";
+  version = "2.2.53.1";
+  pname = "super-slicer";
+  description = "PrusaSlicer fork with more features and faster development cycle";
+  override = super: {
+    inherit version pname;
+
+    src = fetchFromGitHub {
+      owner = "supermerill";
+      repo = "SuperSlicer";
+      sha256 = "sha256-CAhwmQ63N/XJYToTnIV84lNnjDGNbkmYPzNKNL/wVxs=";
+      rev = version;
+    };
+
+    # See https://github.com/supermerill/SuperSlicer/issues/432
+    cmakeFlags = super.cmakeFlags ++ [
+      "-DSLIC3R_BUILD_TESTS=0"
+    ];
+
+    postInstall = ''
+      mkdir -p "$out/share/pixmaps/"
+      # Change slic3r++ to SuperSlicer at the next release!
+      ln -s "$out/share/slic3r++/icons/Slic3r.png" "$out/share/pixmaps/${appname}.png"
+      mkdir -p "$out/share/applications"
+      cp "$desktopItem"/share/applications/* "$out/share/applications/"
+    '';
+
+    desktopItem = makeDesktopItem {
+      name = appname;
+      exec = "superslicer";
+      icon = appname;
+      comment = description;
+      desktopName = appname;
+      genericName = "3D printer tool";
+      categories = "Development;";
+    };
+
+    meta = with stdenv.lib; {
+      inherit description;
+      homepage = "https://github.com/supermerili/SuperSlicer";
+      license = licenses.agpl3;
+      maintainers = with maintainers; [ cab404 moredread ];
+    };
+
+  };
+in prusa-slicer.overrideAttrs override
diff --git a/nixpkgs/pkgs/applications/misc/pueue/default.nix b/nixpkgs/pkgs/applications/misc/pueue/default.nix
index db84f5fbb9bf..f5c237da440a 100644
--- a/nixpkgs/pkgs/applications/misc/pueue/default.nix
+++ b/nixpkgs/pkgs/applications/misc/pueue/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pueue";
-  version = "0.6.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "Nukesor";
     repo = pname;
     rev = "v${version}";
-    sha256 = "06jxj89ya91grrwxfs7l1ahy46y993kxsc8gpkxajc0j5ihax2al";
+    sha256 = "1ksks8c35q9aq5vnjxh480vqjyaa8c1fz1fb465vngnlyw762b22";
   };
 
-  cargoSha256 = "191j3lpd24ycissw0y2hv65i1cjzf24draamq3sxv7hv0sxcjw4d";
+  cargoSha256 = "0v1h4jhrzfb55zmpnbq18188rdvx7a7lvnjqh0w7cy90kvxssian";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/applications/misc/qcad/application-dir.patch b/nixpkgs/pkgs/applications/misc/qcad/application-dir.patch
index 84782e1e7178..0b8a29319eb3 100644
--- a/nixpkgs/pkgs/applications/misc/qcad/application-dir.patch
+++ b/nixpkgs/pkgs/applications/misc/qcad/application-dir.patch
@@ -33,3 +33,16 @@ index c6c31cbf5..c51b59ce6 100644
  }
  
  int RSettings::getSnapRange() {
+diff --git a/qcad.desktop b/qcad.desktop
+index 93c5e9720..2d0e6bf32 100644
+--- a/qcad.desktop
++++ b/qcad.desktop
+@@ -48,7 +48,7 @@ Comment[sv]=2D CAD-system
+ Comment[sl]=Sistem 2D CAD
+ Comment[uk]=2D САПР
+ Comment[tr]=2D CAD Sistemi
+-Exec=qcad %F
++Exec=qcad-bin %F
+ X-MultipleArgs=true
+ Icon=qcad_icon
+ Terminal=false
diff --git a/nixpkgs/pkgs/applications/misc/qcad/default.nix b/nixpkgs/pkgs/applications/misc/qcad/default.nix
index 3dfda8b9c5f3..a0d370c00ac1 100644
--- a/nixpkgs/pkgs/applications/misc/qcad/default.nix
+++ b/nixpkgs/pkgs/applications/misc/qcad/default.nix
@@ -1,23 +1,27 @@
 { boost
 , fetchFromGitHub
+, libGLU
 , mkDerivationWith
 , muparser
 , pkgconfig
+, qtbase
 , qmake
-, qt5
+, qtscript
+, qtsvg
+, qtxmlpatterns
+, qttools
 , stdenv
-, libGLU
 }:
 
 mkDerivationWith stdenv.mkDerivation rec {
   pname = "qcad";
-  version = "3.24.3.4";
+  version = "3.25.2.0";
 
   src = fetchFromGitHub {
     owner = "qcad";
     repo = "qcad";
     rev = "v${version}";
-    sha256 = "0hv9050srrq7fm1fqla8b52mwpilsvr1jriz4ay633s63svss3zz";
+    sha256 = "1lz6q9n2p0l7k8rwqsdj6av9p3426423g5avc4y6s7nbk36280mz";
   };
 
   patches = [
@@ -25,11 +29,13 @@ mkDerivationWith stdenv.mkDerivation rec {
   ];
 
   postPatch = ''
-    mkdir src/3rdparty/qt-labs-qtscriptgenerator-${qt5.qtbase.version}
-    cp \
-      src/3rdparty/qt-labs-qtscriptgenerator-5.12.3/qt-labs-qtscriptgenerator-5.12.3.pro \
-      src/3rdparty/qt-labs-qtscriptgenerator-${qt5.qtbase.version}/qt-labs-qtscriptgenerator-${qt5.qtbase.version}.pro
-  '';
+    if ! [ -d src/3rdparty/qt-labs-qtscriptgenerator-${qtbase.version} ]; then
+      mkdir src/3rdparty/qt-labs-qtscriptgenerator-${qtbase.version}
+      cp \
+        src/3rdparty/qt-labs-qtscriptgenerator-5.14.0/qt-labs-qtscriptgenerator-5.14.0.pro \
+        src/3rdparty/qt-labs-qtscriptgenerator-${qtbase.version}/qt-labs-qtscriptgenerator-${qtbase.version}.pro
+    fi
+ '';
 
   qmakeFlags = [
     "MUPARSER_DIR=${muparser}"
@@ -59,6 +65,10 @@ mkDerivationWith stdenv.mkDerivation rec {
     cp -r plugins $out/lib/plugins
     cp -r patterns $out/lib/patterns
 
+    # workaround to fix the library browser:
+    rm -r $out/lib/plugins/sqldrivers
+    ln -s -t $out/lib/plugins ${qtbase}/${qtbase.qtPluginPrefix}/sqldrivers
+
     install -Dm644 scripts/qcad_icon.svg $out/share/icons/hicolor/scalable/apps/qcad.svg
 
     runHook postInstall
@@ -68,16 +78,16 @@ mkDerivationWith stdenv.mkDerivation rec {
     boost
     muparser
     libGLU
-    qt5.qtbase
-    qt5.qtscript
-    qt5.qtsvg
-    qt5.qtxmlpatterns
+    qtbase
+    qtscript
+    qtsvg
+    qtxmlpatterns
   ];
 
   nativeBuildInputs = [
     pkgconfig
-    qt5.qmake
-    qt5.qttools
+    qmake
+    qttools
   ];
 
   enableParallelBuilding = true;
@@ -87,6 +97,6 @@ mkDerivationWith stdenv.mkDerivation rec {
     homepage = "https://qcad.org";
     license = licenses.gpl3;
     maintainers = with maintainers; [ yvesf ];
-    platforms = qt5.qtbase.meta.platforms;
+    platforms = qtbase.meta.platforms;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/qdirstat/default.nix b/nixpkgs/pkgs/applications/misc/qdirstat/default.nix
index c57153fe0e0d..e9f049159bfa 100644
--- a/nixpkgs/pkgs/applications/misc/qdirstat/default.nix
+++ b/nixpkgs/pkgs/applications/misc/qdirstat/default.nix
@@ -3,17 +3,19 @@
 , makeWrapper, perlPackages, mkDerivation }:
 
 let
-  version = "1.6.1";
-in mkDerivation rec {
   pname = "qdirstat";
-  inherit version;
+  version = "1.7";
 
   src = fetchFromGitHub {
     owner = "shundhammer";
-    repo = "qdirstat";
+    repo = pname;
     rev = version;
-    sha256 = "0q77a347qv1aka6sni6l03zh5jzyy9s74aygg554r73g01kxczpb";
+    sha256 = "163x3fxra0l3vvrzm25mh7jvcwjbmwsqlpppkxx76mkz9a1769fy";
   };
+in
+
+mkDerivation {
+  inherit pname version src;
 
   nativeBuildInputs = [ qmake makeWrapper ];
 
diff --git a/nixpkgs/pkgs/applications/misc/qt-video-wlr/default.nix b/nixpkgs/pkgs/applications/misc/qt-video-wlr/default.nix
new file mode 100644
index 000000000000..e10c922e4f16
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/qt-video-wlr/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, lib, fetchFromGitHub, pkg-config, meson, ninja, wayland, pixman, cairo, librsvg, wayland-protocols, wlroots, libxkbcommon, gst_all_1, wrapQtAppsHook, qtbase, qtmultimedia }:
+let
+ gstreamerPath = with gst_all_1; stdenv.lib.makeSearchPath "lib/gstreamer-1.0" [
+     gstreamer
+     gst-plugins-base
+     gst-plugins-good
+     gst-plugins-bad
+     gst-plugins-ugly
+ ];
+in stdenv.mkDerivation rec {
+  pname = "qt-video-wlr";
+  version = "2020-08-03";
+
+  src = fetchFromGitHub {
+    owner = "xdavidwu";
+    repo = "qt-video-wlr";
+    rev = "f88a7aa43f28b879b18752069f4a1ec33d73f2fe";
+    sha256 = "135kfyg1b61xvfpk8vpk4qyw6s9q1mn3a6lfkrqrhl0dz9kka9lx";
+  };
+
+  nativeBuildInputs = [ pkg-config meson ninja wrapQtAppsHook ];
+  buildInputs = [
+      wayland
+      pixman
+      cairo
+      librsvg
+      wayland-protocols
+      wlroots
+      libxkbcommon
+      qtbase
+      qtmultimedia
+  ];
+
+  qtWrapperArgs = [
+      "--prefix PATH : $out/bin/qt-video-wlr"
+      "--prefix GST_PLUGIN_PATH : ${gstreamerPath}"
+  ];
+
+  meta = with lib; {
+    description = "Qt pip-mode-like video player for wlroots-based wayland compositors";
+    homepage = "https://github.com/xdavidwu/qt-video-wlr";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fionera ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/redshift/default.nix b/nixpkgs/pkgs/applications/misc/redshift/default.nix
index 05dc4c429b61..86c787df62aa 100644
--- a/nixpkgs/pkgs/applications/misc/redshift/default.nix
+++ b/nixpkgs/pkgs/applications/misc/redshift/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchFromGitHub, autoconf, automake, gettext, intltool
+{ stdenv, fetchFromGitHub, fetchFromGitLab
+, autoconf, automake, gettext, intltool
 , libtool, pkgconfig, wrapGAppsHook, wrapPython, gobject-introspection
 , gtk3, python, pygobject3, pyxdg
 
@@ -18,7 +19,7 @@ let
     stdenv.mkDerivation rec {
       inherit pname version src meta;
 
-      patches = [
+      patches = stdenv.lib.optionals (pname != "gammastep") [
         # https://github.com/jonls/redshift/pull/575
         ./575.patch
       ];
@@ -62,10 +63,15 @@ let
 
       # the geoclue agent may inspect these paths and expect them to be
       # valid without having the correct $PATH set
-      postInstall = ''
+      postInstall = if (pname == "gammastep") then ''
+        substituteInPlace $out/share/applications/gammastep.desktop \
+          --replace 'Exec=gammastep' "Exec=$out/bin/gammastep"
+        substituteInPlace $out/share/applications/gammastep-indicator.desktop \
+          --replace 'Exec=gammastep-indicator' "Exec=$out/bin/gammastep-indicator"
+      '' else ''
         substituteInPlace $out/share/applications/redshift.desktop \
           --replace 'Exec=redshift' "Exec=$out/bin/redshift"
-        substituteInPlace $out/share/applications/redshift.desktop \
+        substituteInPlace $out/share/applications/redshift-gtk.desktop \
           --replace 'Exec=redshift-gtk' "Exec=$out/bin/redshift-gtk"
       '';
 
@@ -118,4 +124,24 @@ rec {
       homepage = "https://github.com/minus7/redshift";
     };
   };
+
+  gammastep = mkRedshift rec {
+    pname = "gammastep";
+    version = "2.0.2";
+
+    src = fetchFromGitLab {
+      owner = "chinstrap";
+      repo = pname;
+      rev = "v${version}";
+      sha256 = "09wqlz3yya955galhs20014qfwm2yk0lxhyqdsw8gwddvcpyprzg";
+    };
+
+    meta = redshift.meta // {
+      name = "${pname}-${version}";
+      longDescription = "Gammastep"
+        + stdenv.lib.removePrefix "Redshift" redshift.meta.longDescription;
+      homepage = "https://gitlab.com/chinstrap/gammastep";
+      maintainers = [ stdenv.lib.maintainers.primeos ] ++ redshift.meta.maintainers;
+    };
+  };
 }
diff --git a/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix b/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix
index 0fe0e03060a8..f159cd852e88 100644
--- a/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix
+++ b/nixpkgs/pkgs/applications/misc/remarkable/rmapi/default.nix
@@ -2,23 +2,24 @@
 
 buildGoModule rec {
   pname = "rmapi";
-  version = "0.0.11";
+  version = "0.0.12";
 
   src = fetchFromGitHub {
     owner = "juruen";
     repo = "rmapi";
     rev = "v${version}";
-    sha256 = "0zks1pcj2s2pqkmw0hhm41vgdhfgj2r6dmvpsagbmf64578ww349";
+    sha256 = "049m0p4wbsl822iym8xmc938d4k90iw7wjdzcxfyy8d27hv9mp45";
   };
 
   vendorSha256 = "077s13pcql5w2m6wzls1q06r7p501kazbwzxgfh6akwza15kb4is";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "A Go app that allows access to the ReMarkable Cloud API programmatically";
     homepage = "https://github.com/juruen/rmapi";
     changelog = "https://github.com/juruen/rmapi/blob/v${version}/CHANGELOG.md";
     license = licenses.agpl3;
     maintainers = [ maintainers.nickhu ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/rescuetime/default.nix b/nixpkgs/pkgs/applications/misc/rescuetime/default.nix
index 9784e24187bf..3b989a75c9b0 100644
--- a/nixpkgs/pkgs/applications/misc/rescuetime/default.nix
+++ b/nixpkgs/pkgs/applications/misc/rescuetime/default.nix
@@ -1,19 +1,21 @@
 { stdenv, lib, fetchurl, dpkg, patchelf, qt5, libXtst, libXext, libX11, mkDerivation, makeWrapper, libXScrnSaver }:
 
 let
+  version = "2.16.4.2";
   src =
     if stdenv.hostPlatform.system == "i686-linux" then fetchurl {
       name = "rescuetime-installer.deb";
-      url = "https://www.rescuetime.com/installers/rescuetime_current_i386.deb";
-      sha256 = "1yzbs2lg04bq0clkr6gfkx3j6wrahpnxqfiq4askk9k76y4ncd4m";
+      url = "https://www.rescuetime.com/installers/rescuetime_${version}_i386.deb";
+      sha256 = "0zyal9n3rfj8i13v1q25inq6qyil7897483cdhqvwpb8wskrij4c";
     } else fetchurl {
       name = "rescuetime-installer.deb";
-      url = "https://www.rescuetime.com/installers/rescuetime_current_amd64.deb";
-      sha256 = "1njxsh601d0p6n0hxv44gcg8gd43xwym83xwqba26vj6xw82bknv";
+      url = "https://www.rescuetime.com/installers/rescuetime_${version}_amd64.deb";
+      sha256 = "03bmnkxhip1wilnfqs8akmy1hppahxrmnm8gasnmw5s922vn06cv";
     };
 in mkDerivation {
   # https://www.rescuetime.com/updates/linux_release_notes.html
-  name = "rescuetime-2.15.0.1";
+  inherit version;
+  pname = "rescuetime";
   inherit src;
   nativeBuildInputs = [ dpkg ];
   # avoid https://github.com/NixOS/patchelf/issues/99
diff --git a/nixpkgs/pkgs/applications/misc/rofi/default.nix b/nixpkgs/pkgs/applications/misc/rofi/default.nix
index d8e600f60193..d565e1874cd1 100644
--- a/nixpkgs/pkgs/applications/misc/rofi/default.nix
+++ b/nixpkgs/pkgs/applications/misc/rofi/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rofi-unwrapped";
-  version = "1.5.4";
+  version = "1.6.0";
 
   src = fetchurl {
     url = "https://github.com/davatorium/rofi/releases/download/${version}/rofi-${version}.tar.gz";
-    sha256 = "1g1170zmh5v7slnm1sm2d08jgz6icikf8rm17apm1bjzzyw1lhk7";
+    sha256 = "sha256-BS/ypMS/MfaiUizWVov8yYgGJjgwMWvz0PiH3sYYn50=";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/applications/misc/rsclock/default.nix b/nixpkgs/pkgs/applications/misc/rsclock/default.nix
index 4f63ed057b78..e1ae63e09fd3 100644
--- a/nixpkgs/pkgs/applications/misc/rsclock/default.nix
+++ b/nixpkgs/pkgs/applications/misc/rsclock/default.nix
@@ -10,7 +10,7 @@ rustPlatform.buildRustPackage rec {
     rev = "v${version}";
     sha256 = "1i93qkz6d8sbk78i4rvx099hnn4lklp4cjvanpm9ssv8na4rqvh2";
   };
-   
+
   cargoSha256 = "01dhkis6zswq1y40n7sdq9xv1sp61f2v7nfqbkicyjngmdrmcgrl";
 
   meta = with stdenv.lib; {
@@ -18,7 +18,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/valebes/rsClock";
     license = licenses.mit;
     maintainers = with maintainers; [valebes];
-    platforms = platforms.all;
   };
 }
-
diff --git a/nixpkgs/pkgs/applications/misc/rsibreak/default.nix b/nixpkgs/pkgs/applications/misc/rsibreak/default.nix
index eefc0a0c5772..432cbfb9b693 100644
--- a/nixpkgs/pkgs/applications/misc/rsibreak/default.nix
+++ b/nixpkgs/pkgs/applications/misc/rsibreak/default.nix
@@ -7,13 +7,13 @@
 let
   pname = "rsibreak";
   version = "0.12";
-  revision = ".8";
+  revision = ".13";
 in mkDerivation rec {
   name = "rsibreak-${version}${revision}";
 
   src = fetchurl {
     url = "https://download.kde.org/stable/${pname}/${version}/${name}.tar.xz";
-    sha256 = "1qn9xdjx9zzw47jsj7f4nkqmrangfhdgafm2jxm7cm6z6kcvzr28";
+    sha256 = "N0C+f788fq5yotSC54H2K4WDc6PnGi8Nh/vXL4v0fxo=";
   };
 
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
diff --git a/nixpkgs/pkgs/applications/misc/sampler/default.nix b/nixpkgs/pkgs/applications/misc/sampler/default.nix
index a1f4c8f41bca..b68a3a98e34c 100644
--- a/nixpkgs/pkgs/applications/misc/sampler/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sampler/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "04nywhkil5xkipcibrp6vi63rfcvqgv7yxbxmmrhqys2cdxfvazv";
 
+  doCheck = false;
+
   subPackages = [ "." ];
 
   buildInputs = [ alsaLib ];
@@ -24,4 +26,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ uvnikita ];
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/misc/sbagen/default.nix b/nixpkgs/pkgs/applications/misc/sbagen/default.nix
index 821fbe35ca1a..d7d7dd3ab707 100644
--- a/nixpkgs/pkgs/applications/misc/sbagen/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sbagen/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Binaural sound generator";
     homepage = "http://uazu.net/sbagen";
-    license = "GPL";
+    license = stdenv.lib.licenses.gpl2;
     platforms = [ "i686-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/sdcv/default.nix b/nixpkgs/pkgs/applications/misc/sdcv/default.nix
index 997786fc1072..d220047a0a3b 100644
--- a/nixpkgs/pkgs/applications/misc/sdcv/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sdcv/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sdcv";
-  version = "0.5.2";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "Dushistov";
     repo = "sdcv";
     rev = "v${version}";
-    sha256 = "1b67s4nj0s5fh3cjk7858qvhiisc557xx72xwzrb8hq6ijpwx5k0";
+    sha256 = "144qpl9b8r2php0zhi9b7vg6flpvdgjy6yfaipydwwhxi4wy9600";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/nixpkgs/pkgs/applications/misc/sequeler/default.nix b/nixpkgs/pkgs/applications/misc/sequeler/default.nix
index 04ceed635436..d19621761407 100644
--- a/nixpkgs/pkgs/applications/misc/sequeler/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sequeler/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub
+{ stdenv, fetchFromGitHub, nix-update-script
 , vala, meson, ninja, pkgconfig, pantheon, gettext, wrapGAppsHook, python3, desktop-file-utils
 , gtk3, glib, libgee, libgda, gtksourceview, libxml2, libsecret, libssh2 }:
 
@@ -11,13 +11,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "sequeler";
-  version = "0.7.91";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "Alecaddd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "071vfx7bdf7hfa4784xz97vrj9x5aipgjbp30r00kg2zhg8wa2ls";
+    sha256 = "090plqnby2wxzr1waq5kz89w3269j363mgxwfz9g7qg55lddaahz";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig vala gettext wrapGAppsHook python3 desktop-file-utils ];
@@ -30,7 +30,7 @@ in stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/misc/sidequest/default.nix b/nixpkgs/pkgs/applications/misc/sidequest/default.nix
index 6c55c3157f5c..883b3eec03db 100644
--- a/nixpkgs/pkgs/applications/misc/sidequest/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sidequest/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, fetchurl, buildFHSUserEnv, makeDesktopItem, makeWrapper, atomEnv, libuuid, at-spi2-atk, icu, openssl, zlib }:
 	let
 		pname = "sidequest";
-		version = "0.10.2";
+		version = "0.10.11";
 
 		desktopItem = makeDesktopItem rec {
 			name = "SideQuest";
@@ -16,7 +16,7 @@
 
 			src = fetchurl {
 				url = "https://github.com/the-expanse/SideQuest/releases/download/v${version}/SideQuest-${version}.tar.xz";
-				sha256 = "1vfxn4gx5b138gj6nk4w3jlp2l56cqpb8hq2kn5mrf4dhjii8n88";
+				sha256 = "0fw952kdh1gn00y6sx2ag0rnb2paxq9ikg4bzgmbj7rrd1c6l2k9";
 			};
 
 			buildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/misc/simplenote/default.nix b/nixpkgs/pkgs/applications/misc/simplenote/default.nix
index 917e1965e2ea..05cf15b8accc 100644
--- a/nixpkgs/pkgs/applications/misc/simplenote/default.nix
+++ b/nixpkgs/pkgs/applications/misc/simplenote/default.nix
@@ -4,6 +4,7 @@
 , fetchurl
 , makeDesktopItem
 , makeWrapper
+, lib
 , stdenv
 , udev
 , wrapGAppsHook
@@ -16,10 +17,10 @@ let
 
   pname = "simplenote";
 
-  version = "1.17.0";
+  version = "1.21.1";
 
   sha256 = {
-    x86_64-linux = "14kjx4y3kvw7h8wk8mmkpx1288jscmd8bgl10bw6kcfigcwahpw3";
+    x86_64-linux = "00qx82d17yrrg2mxwhm40av0mpf5hy14j338i5ijhwp79yc8fk8x";
   }.${system} or throwSystem;
 
   meta = with stdenv.lib; {
@@ -82,7 +83,7 @@ let
     '';
 
     runtimeDependencies = [
-      udev.lib
+      (lib.getLib udev)
     ];
 
     postFixup = ''
diff --git a/nixpkgs/pkgs/applications/misc/sl1-to-photon/default.nix b/nixpkgs/pkgs/applications/misc/sl1-to-photon/default.nix
new file mode 100644
index 000000000000..a8a0bfb1e10a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/sl1-to-photon/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, pillow
+, pyside2
+, numpy
+, pyphotonfile
+, shiboken2
+, which
+}:
+let
+  version = "0.1.3";
+in
+ buildPythonApplication rec {
+  pname = "sl1-to-photon";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "fookatchu";
+    repo = "SL1toPhoton";
+    rev = "v${version}";
+    sha256 = "1hmb74rcky3nax4lxn7pw6lcd5a66fdbwrm11c84zb31xb51bakw";
+  };
+
+  propagatedBuildInputs = [ pyphotonfile pillow numpy pyside2 shiboken2 ];
+
+  format = "other";
+
+  installPhase = ''
+    install -D -m 0755 SL1_to_Photon.py $out/bin/${pname}
+    sed -i '1i#!/usr/bin/env python' $out/bin/${pname}
+  '';
+
+  meta = with lib; {
+    maintainers = [ maintainers.cab404 ];
+    license = licenses.gpl3Plus;
+    description = "Tool for converting Slic3r PE's SL1 files to Photon files for the Anycubic Photon 3D-Printer";
+    homepage = "https://github.com/fookatchu/SL1toPhoton";
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/misc/slic3r/default.nix b/nixpkgs/pkgs/applications/misc/slic3r/default.nix
index 912deee4cb1b..c8ecfbcb4a14 100644
--- a/nixpkgs/pkgs/applications/misc/slic3r/default.nix
+++ b/nixpkgs/pkgs/applications/misc/slic3r/default.nix
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
     comment = "G-code generator for 3D printers";
     desktopName = "Slic3r";
     genericName = "3D printer tool";
-    categories = "Application;Development;";
+    categories = "Development;";
   };
 
   prePatch = ''
diff --git a/nixpkgs/pkgs/applications/misc/slstatus/default.nix b/nixpkgs/pkgs/applications/misc/slstatus/default.nix
index 5c13cbf86694..6adf24f617c9 100644
--- a/nixpkgs/pkgs/applications/misc/slstatus/default.nix
+++ b/nixpkgs/pkgs/applications/misc/slstatus/default.nix
@@ -1,20 +1,22 @@
-{ stdenv, fetchgit, pkgconfig, writeText, libX11, conf ? null }:
+{ stdenv, fetchgit, pkgconfig, writeText, libX11, conf ? null, patches ? [] }:
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "slstatus";
-  version = "unstable-2018-04-16";
+  version = "unstable-2019-02-16";
 
   src = fetchgit {
     url = "https://git.suckless.org/slstatus";
-    rev = "97ef7c2a1d67bb2c9c379e657fbc8e35acd6aafb";
-    sha256 = "1777hgl10imk0l2sgnqgbkfchv1mpxrd82ninzwp7f1rgwchz36v";
+    rev = "b14e039639ed28005fbb8bddeb5b5fa0c93475ac";
+    sha256 = "0kayyhpmppybhwndxgabw48wsk9v8x9xdb05xrly9szkw3jbvgw4";
   };
 
   configFile = optionalString (conf!=null) (writeText "config.def.h" conf);
   preBuild = optionalString (conf!=null) "cp ${configFile} config.def.h";
 
+  inherit patches;
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libX11 ];
 
@@ -24,7 +26,7 @@ stdenv.mkDerivation rec {
     homepage = "https://tools.suckless.org/slstatus/";
     description = "status monitor for window managers that use WM_NAME like dwm";
     license = licenses.isc;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/snowsql/default.nix b/nixpkgs/pkgs/applications/misc/snowsql/default.nix
new file mode 100644
index 000000000000..720ee5f67996
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/snowsql/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, fetchurl
+, rpmextract
+, patchelf
+, makeWrapper
+, openssl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "snowsql";
+  majorVersion = "1.2";
+  version = "${majorVersion}.9";
+
+  src = fetchurl {
+    url = "https://sfc-repo.snowflakecomputing.com/snowsql/bootstrap/${majorVersion}/linux_x86_64/snowflake-snowsql-${version}-1.x86_64.rpm";
+    sha256 = "1k9dyr4vyqivpg054kbvs0jdwhbqbmlp9lsyxgazdsviw8ch70c8";
+  };
+
+  nativeBuildInputs = [ rpmextract makeWrapper ];
+
+  libPath = stdenv.lib.makeLibraryPath [ openssl ];
+
+  buildCommand = ''
+    mkdir -p $out/bin/
+    cd $out
+    rpmextract $src
+    rm -R usr/bin
+    mv usr/* $out
+    rmdir usr
+
+    ${patchelf}/bin/patchelf \
+      --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+        lib64/snowflake/snowsql/snowsql
+
+    makeWrapper $out/lib64/snowflake/snowsql/snowsql $out/bin/snowsql \
+      --set LD_LIBRARY_PATH "${libPath}":"${placeholder "out"}"/lib64/snowflake/snowsql \
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Command line client for the Snowflake database";
+    homepage = "https://www.snowflake.com";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ andehen ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/st/default.nix b/nixpkgs/pkgs/applications/misc/st/default.nix
index 018fd9306ae5..a772629a7aaa 100644
--- a/nixpkgs/pkgs/applications/misc/st/default.nix
+++ b/nixpkgs/pkgs/applications/misc/st/default.nix
@@ -4,11 +4,12 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  name = "st-0.8.3";
+  pname = "st";
+  version = "0.8.4";
 
   src = fetchurl {
-    url = "https://dl.suckless.org/st/${name}.tar.gz";
-    sha256 = "0ll5wbw1szs70wdf8zy1y2ig5mfbqw2w4ls8d64r8z3y4gdf76lk";
+    url = "https://dl.suckless.org/st/${pname}-${version}.tar.gz";
+    sha256 = "19j66fhckihbg30ypngvqc9bcva47mp379ch5vinasjdxgn3qbfl";
   };
 
   inherit patches;
diff --git a/nixpkgs/pkgs/applications/misc/stretchly/default.nix b/nixpkgs/pkgs/applications/misc/stretchly/default.nix
index 87e8316c2c4f..85098b0b003c 100644
--- a/nixpkgs/pkgs/applications/misc/stretchly/default.nix
+++ b/nixpkgs/pkgs/applications/misc/stretchly/default.nix
@@ -1,8 +1,11 @@
-{ stdenv, lib, fetchurl, makeWrapper, wrapGAppsHook, electron
+{ stdenv, lib, fetchurl, makeWrapper, wrapGAppsHook, electron_7
 , common-updater-scripts
 , writeShellScript
 }:
 
+let
+  electron = electron_7;
+in
 stdenv.mkDerivation rec {
   pname = "stretchly";
   version = "0.21.1";
diff --git a/nixpkgs/pkgs/applications/misc/subsurface/0001-core-fix-libgit-ifdef-to-handle-libgit2-v1.0-and-onw.patch b/nixpkgs/pkgs/applications/misc/subsurface/0001-core-fix-libgit-ifdef-to-handle-libgit2-v1.0-and-onw.patch
deleted file mode 100644
index 027e3f493e12..000000000000
--- a/nixpkgs/pkgs/applications/misc/subsurface/0001-core-fix-libgit-ifdef-to-handle-libgit2-v1.0-and-onw.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From dfa4bcafec4425659a409550085417af3c5c787b Mon Sep 17 00:00:00 2001
-From: Florian Klink <flokli@flokli.de>
-Date: Sat, 11 Apr 2020 12:38:38 +0200
-Subject: [PATCH] core: fix libgit ifdef to handle libgit2 v1.0 and onwards
-
-Conditional code for older libgit versions was removed in
-https://github.com/Subsurface-divelog/subsurface/pull/2737,
-but it's a non-trivial backport, and master currently isn't really ready
-for a release.
-
-So instead ship a patch fixing the one broken libgit2 conditional until
-a 4.10 release has been made.
-
-Note the inverted logic - the if branch now handles the old libgit
-condition, and the else branch the newer versions, consistent with how
-it's done in the rest of the subsurface codebase.
----
- core/git-access.c | 6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/core/git-access.c b/core/git-access.c
-index 3688cb90c..9997fc8fd 100644
---- a/core/git-access.c
-+++ b/core/git-access.c
-@@ -359,10 +359,10 @@ static int try_to_git_merge(git_repository *repo, git_reference **local_p, git_r
- 	}
- 
- 	git_merge_init_options(&merge_options, GIT_MERGE_OPTIONS_VERSION);
--#if !LIBGIT2_VER_MAJOR && LIBGIT2_VER_MINOR > 23
--	merge_options.flags = GIT_MERGE_FIND_RENAMES;
--#else
-+#if !LIBGIT2_VER_MAJOR && LIBGIT2_VER_MINOR <= 22
- 	merge_options.tree_flags = GIT_MERGE_TREE_FIND_RENAMES;
-+#else
-+	merge_options.flags = GIT_MERGE_FIND_RENAMES;
- #endif
- 	merge_options.file_favor = GIT_MERGE_FILE_FAVOR_UNION;
- 	merge_options.rename_threshold = 100;
--- 
-2.25.1
-
diff --git a/nixpkgs/pkgs/applications/misc/subsurface/default.nix b/nixpkgs/pkgs/applications/misc/subsurface/default.nix
index e189351022b9..d8773240bac1 100644
--- a/nixpkgs/pkgs/applications/misc/subsurface/default.nix
+++ b/nixpkgs/pkgs/applications/misc/subsurface/default.nix
@@ -4,13 +4,13 @@
 }:
 
 let
-  version = "4.9.3";
+  version = "4.9.6";
 
   subsurfaceSrc = (fetchFromGitHub {
-    owner = "Subsurface-divelog";
+    owner = "Subsurface";
     repo = "subsurface";
     rev = "v${version}";
-    sha256 = "1i07f7appifx9j205x5a7ng01wsipxr6n9a3692pm60jli2nsir5";
+    sha256 = "1w1ak0fi6ljhg2jc4mjqyrbpax3iawrnsaqq6ls7qdzrhi37rggf";
     fetchSubmodules = true;
   });
 
@@ -39,13 +39,13 @@ let
   googlemaps = stdenv.mkDerivation rec {
     pname = "googlemaps";
 
-    version = "2017-12-18";
+    version = "2018-06-02";
 
     src = fetchFromGitHub {
       owner = "vladest";
       repo = "googlemaps";
-      rev = "79f3511d60dc9640de02a5f24656094c8982b26d";
-      sha256 = "11334w0bnfb97sv23vvj2b5hcwvr0171hxldn91jms9y12l5j15d";
+      rev = "54a357f9590d9cf011bf1713589f66bad65e00eb";
+      sha256 = "159kslp6rj0qznzxijppwvv8jnswlfgf2pw4x8ladi8vp6bzxnzi";
     };
 
     nativeBuildInputs = [ qmake ];
@@ -78,9 +78,6 @@ in stdenv.mkDerivation {
 
   src = subsurfaceSrc;
 
-  # remove with the 4.10 release
-  patches = [ ./0001-core-fix-libgit-ifdef-to-handle-libgit2-v1.0-and-onw.patch ];
-
   buildInputs = [
     libdc googlemaps
     curl grantlee libgit2 libssh2 libusb-compat-0_1 libxml2 libxslt libzip
diff --git a/nixpkgs/pkgs/applications/misc/super_user_spark/default.nix b/nixpkgs/pkgs/applications/misc/super_user_spark/default.nix
deleted file mode 100644
index dd1218282d85..000000000000
--- a/nixpkgs/pkgs/applications/misc/super_user_spark/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ mkDerivation, fetchgit, aeson, aeson-pretty, base, bytestring, directory
-, filepath, hspec, hspec-core, HUnit, mtl, optparse-applicative
-, parsec, process, pureMD5, QuickCheck, shelly, stdenv, text
-, transformers, unix
-}:
-mkDerivation {
-  pname = "super-user-spark";
-  version = "0.3.2.0-dev";
-  src = fetchgit {
-    url = "https://github.com/NorfairKing/super-user-spark";
-    sha256 = "0akyc51bghzkk8j75n0i8v8rrsklidwvljhx3aibxfbkqp33372g";
-    rev = "ab8635682d67842b9e6d909cf3c618014e4157f2";
-  };
-  isLibrary = true;
-  isExecutable = true;
-  libraryHaskellDepends = [
-    aeson aeson-pretty base bytestring directory filepath mtl
-    optparse-applicative parsec process pureMD5 shelly text
-    transformers unix
-  ];
-  executableHaskellDepends = [ base ];
-  testHaskellDepends = [
-    aeson aeson-pretty base bytestring directory filepath hspec
-    hspec-core HUnit mtl optparse-applicative parsec process pureMD5
-    QuickCheck shelly text transformers unix
-  ];
-  jailbreak = true;
-  description = "Configure your dotfile deployment with a DSL";
-  license = stdenv.lib.licenses.mit;
-  homepage = "https://github.com/NorfairKing/super-user-spark";
-  maintainers = [ stdenv.lib.maintainers.badi ];
-}
diff --git a/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix b/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix
index 926db03652d6..94875de7ebc8 100644
--- a/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix
+++ b/nixpkgs/pkgs/applications/misc/sweethome3d/default.nix
@@ -24,7 +24,7 @@ let
       icon = pname;
       comment =  description;
       genericName = "Computer Aided (Interior) Design";
-      categories = "Application;Graphics;2DGraphics;3DGraphics;";
+      categories = "Graphics;2DGraphics;3DGraphics;";
     };
 
     patchPhase = ''
@@ -34,7 +34,7 @@ let
       patchelf --set-rpath ${libXxf86vm}/lib lib/java3d-1.6/linux/i586/libnativewindow_x11.so
     '';
 
-    buildInputs = [ ant jdk jre makeWrapper p7zip gtk3 gsettings-desktop-schemas ];
+    buildInputs = [ ant jdk makeWrapper p7zip gtk3 gsettings-desktop-schemas ];
 
     buildPhase = ''
       ant furniture textures help
@@ -53,7 +53,7 @@ let
 
       makeWrapper ${jre}/bin/java $out/bin/$exec \
         --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:${gtk3.out}/share:${gsettings-desktop-schemas}/share:$out/share:$GSETTINGS_SCHEMAS_PATH" \
-        --add-flags "-jar $out/share/java/${module}-${version}.jar -cp $out/share/java/Furniture.jar:$out/share/java/Textures.jar:$out/share/java/Help.jar -d${toString stdenv.hostPlatform.parsed.cpu.bits}"
+        --add-flags "-Dsun.java2d.opengl=true -jar $out/share/java/${module}-${version}.jar -cp $out/share/java/Furniture.jar:$out/share/java/Textures.jar:$out/share/java/Help.jar -d${toString stdenv.hostPlatform.parsed.cpu.bits}"
     '';
 
     dontStrip = true;
diff --git a/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix b/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix
index ec759572443c..d6b44a86e087 100644
--- a/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix
+++ b/nixpkgs/pkgs/applications/misc/sweethome3d/editors.nix
@@ -20,7 +20,7 @@ let
       name = pname;
       comment =  description;
       genericName = "Computer Aided (Interior) Design";
-      categories = "Application;Graphics;2DGraphics;3DGraphics;";
+      categories = "Graphics;2DGraphics;3DGraphics;";
     };
 
     buildInputs = [ ant jre jdk makeWrapper gtk3 gsettings-desktop-schemas ];
diff --git a/nixpkgs/pkgs/applications/misc/syncthing-tray/default.nix b/nixpkgs/pkgs/applications/misc/syncthing-tray/default.nix
index 38826b7735fb..1cb5bb441ed8 100644
--- a/nixpkgs/pkgs/applications/misc/syncthing-tray/default.nix
+++ b/nixpkgs/pkgs/applications/misc/syncthing-tray/default.nix
@@ -23,6 +23,5 @@ buildGoPackage rec {
     homepage = "https://github.com/alex2108/syncthing-tray";
     license = licenses.mit;
     maintainers = with maintainers; [ nickhu ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix b/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix
index 28506c8fa883..c45ea27c425e 100644
--- a/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix
+++ b/nixpkgs/pkgs/applications/misc/syncthingtray/default.nix
@@ -20,14 +20,14 @@
 }:
 
 mkDerivation rec {
-  version = "0.10.10";
+  version = "0.11.0";
   pname = "syncthingtray";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = "syncthingtray";
     rev = "v${version}";
-    sha256 = "14nn0igcx4kd7pcna1ggz3yz9xfk1czgy87fxkmn2p91psmy2i18";
+    sha256 = "1lpjrij6y8l738hd7bfig0piglqinnqbadidzw9k0nm53bh4pqrr";
   };
 
   buildInputs = [ qtbase cpp-utilities qtutilities ]
diff --git a/nixpkgs/pkgs/applications/misc/synergy/default.nix b/nixpkgs/pkgs/applications/misc/synergy/default.nix
index bb922f3ca5b2..b0722e18eeaa 100644
--- a/nixpkgs/pkgs/applications/misc/synergy/default.nix
+++ b/nixpkgs/pkgs/applications/misc/synergy/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, cmake, openssl, qttools
+{ stdenv, lib, fetchpatch, fetchFromGitHub, cmake, openssl, qttools
 , ApplicationServices, Carbon, Cocoa, CoreServices, ScreenSaver
 , xlibsWrapper, libX11, libXi, libXtst, libXrandr, xinput, avahi-compat
 , withGUI ? true, wrapQtAppsHook }:
@@ -14,7 +14,14 @@ stdenv.mkDerivation rec {
     sha256 = "1jk60xw4h6s5crha89wk4y8rrf1f3bixgh5mzh3cq3xyrkba41gh";
   };
 
-  patches = [ ./build-tests.patch
+  patches = [
+    ./build-tests.patch
+    (fetchpatch {
+      name = "CVE-2020-15117.patch";
+      url = "https://github.com/symless/synergy-core/commit/"
+          + "0a97c2be0da2d0df25cb86dfd642429e7a8bea39.patch";
+      sha256 = "03q8m5n50fms7fjfjgmqrgy9mrxwi9kkz3f3vlrs2x5h21dl6bmj";
+    })
   ] ++ lib.optional stdenv.isDarwin ./macos_build_fix.patch;
 
   # Since the included gtest and gmock don't support clang and the
@@ -75,7 +82,7 @@ stdenv.mkDerivation rec {
     description = "Share one mouse and keyboard between multiple computers";
     homepage = "http://synergy-project.org/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ aszlig enzime ];
+    maintainers = with maintainers; [ enzime ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/systembus-notify/default.nix b/nixpkgs/pkgs/applications/misc/systembus-notify/default.nix
index 28c1be4219d6..374adc6c89bf 100644
--- a/nixpkgs/pkgs/applications/misc/systembus-notify/default.nix
+++ b/nixpkgs/pkgs/applications/misc/systembus-notify/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "systembus-notify";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "rfjakob";
     repo = "systembus-notify";
     rev = "v${version}";
-    sha256 = "11zq84qfmbyl51d3r6294l2bjhlgwa9bx7d263g9fkqrwsg0si0y";
+    sha256 = "1pdn45rfpwhrf20hs87qmk2j8sr7ab8161f81019wnypnb1q2fsv";
   };
 
   buildInputs = [ systemd ];
diff --git a/nixpkgs/pkgs/applications/misc/taskell/default.nix b/nixpkgs/pkgs/applications/misc/taskell/default.nix
deleted file mode 100644
index 488e49c21817..000000000000
--- a/nixpkgs/pkgs/applications/misc/taskell/default.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-{ lib, haskellPackages, fetchFromGitHub }:
-
-let
-  version = "1.7.3";
-  sha256  = "1439fh79ilc6jvz894cfzhk7gy5r2sv4v79bvqmmqbzbqk9qsbvx";
-
-in (haskellPackages.mkDerivation {
-  pname = "taskell";
-  inherit version;
-
-  src = fetchFromGitHub {
-    owner = "smallhadroncollider";
-    repo = "taskell";
-    rev = version;
-    inherit sha256;
-  };
-
-  postPatch = ''${haskellPackages.hpack}/bin/hpack'';
-
-  # basically justStaticExecutables; TODO: use justStaticExecutables
-  enableSharedExecutables = false;
-  enableLibraryProfiling = false;
-  isExecutable = true;
-  doHaddock = false;
-  postFixup = "rm -rf $out/lib $out/nix-support $out/share/doc";
-
-  # copied from packages.yaml
-  libraryHaskellDepends = with haskellPackages; [
-    classy-prelude
-    # base <=5
-    aeson
-    brick
-    # bytestring
-    config-ini
-    # containers
-    # directory
-    file-embed
-    fold-debounce
-    http-conduit
-    http-client
-    http-types
-    lens
-    raw-strings-qq
-    # mtl
-    # template-haskell
-    # text
-    time
-    vty
-  ];
-
-  executableHaskellDepends = [];
-
-  testHaskellDepends = with haskellPackages; [
-    tasty
-    tasty-discover
-    tasty-expected-failure
-    tasty-hunit
-  ];
-
-  description = "Command-line Kanban board/task manager with support for Trello boards and GitHub projects";
-  homepage    = "https://taskell.app";
-  license     = lib.licenses.bsd3;
-  maintainers = with lib.maintainers; [ matthiasbeyer ];
-  platforms   = with lib.platforms; unix ++ darwin;
-})
diff --git a/nixpkgs/pkgs/applications/misc/tdrop/default.nix b/nixpkgs/pkgs/applications/misc/tdrop/default.nix
index 020298a0c523..f9e2ea34b39e 100644
--- a/nixpkgs/pkgs/applications/misc/tdrop/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tdrop/default.nix
@@ -1,24 +1,34 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper
-, xwininfo, xdotool, xprop }:
+, xwininfo, xdotool, xprop, gawk, coreutils
+, gnugrep, procps }:
 
 stdenv.mkDerivation {
   pname = "tdrop";
-  version = "unstable-2018-11-13";
+  version = "unstable-2020-05-14";
 
   src = fetchFromGitHub {
     owner = "noctuid";
     repo = "tdrop";
-    rev = "198795c0d2573a31979330d6a2ae946eb81deebf";
-    sha256 = "1fhibqgmls64mylcb6q46ipmg1q6pvaqm26vz933gqav6cqsbdzs";
+    rev = "a9f2862515e5c190ac61d394e7fe7e1039871b89";
+    sha256 = "1zxhihgba33k8byjsracsyhby9qpdngbly6c8hpz3pbsyag5liwc";
   };
 
   dontBuild = true;
 
   installFlags = [ "PREFIX=$(out)" ];
 
-  postInstall = ''
-    wrapProgram $out/bin/tdrop \
-      --prefix PATH : ${lib.makeBinPath [ xwininfo xdotool xprop ]}
+  postInstall = let
+    binPath = lib.makeBinPath [
+      xwininfo
+      xdotool
+      xprop
+      gawk
+      coreutils
+      gnugrep
+      procps
+    ];
+  in ''
+    wrapProgram $out/bin/tdrop --prefix PATH : ${binPath}
   '';
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/misc/teleprompter/default.nix b/nixpkgs/pkgs/applications/misc/teleprompter/default.nix
index 7cca3afa764d..37b3f10329b9 100644
--- a/nixpkgs/pkgs/applications/misc/teleprompter/default.nix
+++ b/nixpkgs/pkgs/applications/misc/teleprompter/default.nix
@@ -1,5 +1,8 @@
-{ lib, stdenv, fetchurl, electron, makeDesktopItem, makeWrapper, nodePackages, autoPatchelfHook}:
+{ lib, stdenv, fetchurl, electron_4, makeDesktopItem, makeWrapper, nodePackages, autoPatchelfHook}:
 
+let
+  electron = electron_4;
+in
 stdenv.mkDerivation rec {
   pname = "teleprompter";
   version = "2.3.4";
diff --git a/nixpkgs/pkgs/applications/misc/tellico/default.nix b/nixpkgs/pkgs/applications/misc/tellico/default.nix
new file mode 100644
index 000000000000..401f1f1d7188
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tellico/default.nix
@@ -0,0 +1,67 @@
+{ lib
+, fetchurl
+, mkDerivation
+, kdeApplications
+, kinit
+, kdelibs4support
+, solid
+, kxmlgui
+, karchive
+, kfilemetadata
+, khtml
+, knewstuff
+, libksane
+, cmake
+, exempi
+, extra-cmake-modules
+, libcdio
+, poppler
+, makeWrapper
+, kdoctools
+}:
+
+mkDerivation rec {
+  name = "tellico";
+  version = "3.3.0";
+
+  src = fetchurl {
+    url = "https://tellico-project.org/files/tellico-${lib.versions.majorMinor version}.tar.xz";
+    sha256 = "1digkpvzrsbv5znf1cgzs6zkmysfz6lzs12n12mrrpgkcdxc426y";
+  };
+
+  patches = [
+    ./hex.patch
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    extra-cmake-modules
+    kdoctools
+    makeWrapper
+  ];
+
+  buildInputs = [
+    kdelibs4support
+    solid
+    kxmlgui
+    karchive
+    kfilemetadata
+    khtml
+    knewstuff
+    libksane
+    cmake
+    exempi
+    extra-cmake-modules
+    libcdio
+    kdeApplications.libkcddb
+    poppler
+  ];
+
+  meta = {
+    description = "Collection management software, free and simple";
+    homepage = "https://tellico-project.org/";
+    maintainers = with lib.maintainers; [ numkem ];
+    license = with lib.licenses; [ gpl2 gpl3 ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/tellico/hex.patch b/nixpkgs/pkgs/applications/misc/tellico/hex.patch
new file mode 100644
index 000000000000..999c502287e9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tellico/hex.patch
@@ -0,0 +1,15 @@
+index 7ea81c7..0c19767 100644
+--- a/src/utils/iso5426converter.cpp
++++ b/src/utils/iso5426converter.cpp
+@@ -1211,7 +1211,11 @@ QChar Iso5426Converter::getCombiningChar(uint c) {
+     return 0x1EF1; // SMALL LETTER U WITH HORN AND DOT BELOW
+ 
+   default:
++#if (QT_VERSION < QT_VERSION_CHECK(5, 14, 0))
++    myDebug() << "no match for" << hex << c;
++#else
+     myDebug() << "no match for" << Qt::hex << c;
++#endif
+     return QChar();
+   }
+ }
diff --git a/nixpkgs/pkgs/applications/misc/terminal-parrot/default.nix b/nixpkgs/pkgs/applications/misc/terminal-parrot/default.nix
index accaf62c60e2..52116a52fbb7 100644
--- a/nixpkgs/pkgs/applications/misc/terminal-parrot/default.nix
+++ b/nixpkgs/pkgs/applications/misc/terminal-parrot/default.nix
@@ -13,11 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "1qalnhhq3fmyzj0hkzc5gk9wbypr558mz3ik5msw7fid68k2i48c";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Shows colorful, animated party parrot in your terminial";
     homepage = "https://github.com/jmhobbs/terminal-parrot";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = [ maintainers.heel ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/misc/thinking-rock/default.nix b/nixpkgs/pkgs/applications/misc/thinking-rock/default.nix
index fd6065010fb6..2b5c9da4b17a 100644
--- a/nixpkgs/pkgs/applications/misc/thinking-rock/default.nix
+++ b/nixpkgs/pkgs/applications/misc/thinking-rock/default.nix
@@ -32,10 +32,10 @@ stdenv.mkDerivation {
 
   installPhase = ":";
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Task management system";
     homepage = "http://www.thinkingrock.com.au/";
-    license = "CDDL"; # Common Development and Distribution License
-    platforms = stdenv.lib.platforms.unix;
+    license = licenses.cddl;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/tilda/default.nix b/nixpkgs/pkgs/applications/misc/tilda/default.nix
index 84d37a4f461d..0a672b039f6b 100644
--- a/nixpkgs/pkgs/applications/misc/tilda/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tilda/default.nix
@@ -7,13 +7,13 @@ with stdenv.lib;
 stdenv.mkDerivation rec {
 
   pname = "tilda";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "lanoxx";
     repo = "tilda";
     rev = "${pname}-${version}";
-    sha256 = "1kk69sg7ph906yr5jagkjx0qfkhr5w2nyx407wl2dsjimbps44rd";
+    sha256 = "0psq0f4s0s92bba6wwcf6b0j7i59b76svqxhvpavwv53yvhmmamn";
   };
 
   nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/misc/timewarrior/default.nix b/nixpkgs/pkgs/applications/misc/timewarrior/default.nix
index 25cd3a536700..7b1d3c302b1d 100644
--- a/nixpkgs/pkgs/applications/misc/timewarrior/default.nix
+++ b/nixpkgs/pkgs/applications/misc/timewarrior/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "timewarrior";
-  version = "1.3.0";
+  version = "1.4.2";
 
   enableParallelBuilding = true;
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "GothenburgBitFactory";
     repo = "timewarrior";
     rev = "v${version}";
-    sha256 = "1aijh1ad7gpa61cn7b57w24vy7fyjj0zx5k9z8d6m1ldzbw589cl";
+    sha256 = "0qvhpva0hmhybn0c2aajndw5vnxar1jw4pjjajd2k2cr6vax29dw";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/misc/tint2/default.nix b/nixpkgs/pkgs/applications/misc/tint2/default.nix
index dc991402eec6..326dd3c0d92a 100644
--- a/nixpkgs/pkgs/applications/misc/tint2/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tint2/default.nix
@@ -1,7 +1,25 @@
-{ stdenv, fetchFromGitLab, pkgconfig, cmake, gettext, cairo, pango, pcre
-, glib, imlib2, gtk2, libXinerama, libXrender, libXcomposite, libXdamage
-, libX11, libXrandr, librsvg, libpthreadstubs, libXdmcp
-, libstartup_notification, wrapGAppsHook
+{ stdenv
+, fetchFromGitLab
+, pkg-config
+, cmake
+, gettext
+, cairo
+, pango
+, pcre
+, glib
+, imlib2
+, gtk2
+, libXinerama
+, libXrender
+, libXcomposite
+, libXdamage
+, libX11
+, libXrandr
+, librsvg
+, libpthreadstubs
+, libXdmcp
+, libstartup_notification
+, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
@@ -15,13 +33,35 @@ stdenv.mkDerivation rec {
     sha256 = "1937z0kixb6r82izj12jy4x8z4n96dfq1hx05vcsvsg1sx3wxgb0";
   };
 
-  enableParallelBuilding = true;
+  nativeBuildInputs = [
+    pkg-config
+    cmake
+    gettext
+    wrapGAppsHook
+  ];
 
-  nativeBuildInputs = [ pkgconfig cmake gettext wrapGAppsHook ];
+  buildInputs = [
+    cairo
+    pango
+    pcre
+    glib
+    imlib2
+    gtk2
+    libXinerama
+    libXrender
+    libXcomposite
+    libXdamage
+    libX11
+    libXrandr
+    librsvg
+    libpthreadstubs
+    libXdmcp
+    libstartup_notification
+  ];
 
-  buildInputs = [ cairo pango pcre glib imlib2 gtk2 libXinerama libXrender
-    libXcomposite libXdamage libX11 libXrandr librsvg libpthreadstubs
-    libXdmcp libstartup_notification ];
+  cmakeFlags = [
+    "-Ddocdir=share/doc/${pname}"
+  ];
 
   postPatch = ''
     for f in ./src/launcher/apps-common.c \
diff --git a/nixpkgs/pkgs/applications/misc/tipp10/default.nix b/nixpkgs/pkgs/applications/misc/tipp10/default.nix
index 8316fd918ab1..689c5aa3a9ef 100644
--- a/nixpkgs/pkgs/applications/misc/tipp10/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tipp10/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "tipp10";
-  version = "3.1.0";
+  version = "unstable-20200616";
 
   src = fetchFromGitLab {
-    owner = "a_a";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1mksga1zyqz1y2s524nkw86irg36zpjwz7ff87n2ygrlysczvnx1";
+    owner = "tipp10";
+    repo = "tipp10";
+    rev = "2dd6d45c8a91cff7075675d8875721456cdd5f1b";
+    sha256 = "16x51rv4r6cz5vsmrfbakqzbfxy456h82ibzacknp35f41cjdqq4";
   };
 
   nativeBuildInputs = [ cmake qttools ];
diff --git a/nixpkgs/pkgs/applications/misc/tippecanoe/default.nix b/nixpkgs/pkgs/applications/misc/tippecanoe/default.nix
index c85192603cbc..455876a772b4 100644
--- a/nixpkgs/pkgs/applications/misc/tippecanoe/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tippecanoe/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tippecanoe";
-  version = "1.35.0";
+  version = "1.36.0";
 
   src = fetchFromGitHub {
     owner = "mapbox";
     repo = pname;
     rev = version;
-    sha256 = "0v5ycc3gsqnl9pps3m45yrnb1gvw5pk6jdyr0q6516b4ac6x67m5";
+    sha256 = "0lbmhly4ivnqc6qk1k3sdqvsg6x3nfd8gnjx846bhqj4wag3f88m";
   };
 
   buildInputs = [ sqlite zlib ];
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ sikmir ];
     platforms = with platforms; linux ++ darwin;
+    broken = stdenv.hostPlatform.isAarch64;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/todiff/default.nix b/nixpkgs/pkgs/applications/misc/todiff/default.nix
index f55b3852e5bf..431f922eeeec 100644
--- a/nixpkgs/pkgs/applications/misc/todiff/default.nix
+++ b/nixpkgs/pkgs/applications/misc/todiff/default.nix
@@ -20,6 +20,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Ekleog/todiff";
     maintainers = with maintainers; [ ekleog ];
     license = licenses.mit;
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/todoist-electron/default.nix b/nixpkgs/pkgs/applications/misc/todoist-electron/default.nix
index be9027f9d098..e1d578edb0f5 100644
--- a/nixpkgs/pkgs/applications/misc/todoist-electron/default.nix
+++ b/nixpkgs/pkgs/applications/misc/todoist-electron/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "todoist-electron";
-  version = "1.22";
+  version = "1.23.0";
 
   src = fetchurl {
-    url = "https://github.com/KryDos/todoist-linux/releases/download/${version}/Todoist_${version}.0_amd64.deb";
-    sha256 = "09w2040xkvv78190fmhx99c0dwy7vpab5fvxs67s7yyjwh5n4693";
+    url = "https://github.com/KryDos/todoist-linux/releases/download/${version}/Todoist_${version}_amd64.deb";
+    sha256 = "1yxa0fdc3fnffny6jf1hm7545792pw7828mc27il17l4kn346g98";
   };
 
   desktopItem = makeDesktopItem {
diff --git a/nixpkgs/pkgs/applications/misc/todoist/default.nix b/nixpkgs/pkgs/applications/misc/todoist/default.nix
index b3b3561227f1..68388376f8f0 100644
--- a/nixpkgs/pkgs/applications/misc/todoist/default.nix
+++ b/nixpkgs/pkgs/applications/misc/todoist/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "0cznb8glh36dwyyn1gx1ggkwa9zffrrxg52k78brnaczsl0rsmky";
 
+  doCheck = false;
+
   meta = {
     homepage = "https://github.com/sachaos/todoist";
     description = "Todoist CLI Client";
     license = lib.licenses.mit;
     platforms = lib.platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/misc/toot/default.nix b/nixpkgs/pkgs/applications/misc/toot/default.nix
index 5ce35f3292bd..f46af56ed45f 100644
--- a/nixpkgs/pkgs/applications/misc/toot/default.nix
+++ b/nixpkgs/pkgs/applications/misc/toot/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, python3Packages }:
 
 python3Packages.buildPythonApplication rec {
-  version = "0.26.0";
+  version = "0.27.0";
   name    = "toot-${version}";
 
   src = fetchFromGitHub {
     owner  = "ihabunek";
     repo   = "toot";
     rev    = version;
-    sha256 = "146jj83jixahgxwh12bbkfvci2wrz398h5x01kgppdy59m4pa4pl";
+    sha256 = "197g9lvwg8qnsf18kifcqdj3cpfdnxz9vay766rn9bi4nfz0s6j2";
   };
 
   checkInputs = with python3Packages; [ pytest ];
@@ -23,7 +23,7 @@ python3Packages.buildPythonApplication rec {
   meta = with stdenv.lib; {
     description = "Mastodon CLI interface";
     homepage    = "https://github.com/ihabunek/toot";
-    license     = licenses.mit;
+    license     = licenses.gpl3;
     maintainers = [ maintainers.matthiasbeyer ];
   };
 
diff --git a/nixpkgs/pkgs/applications/misc/tootle/default.nix b/nixpkgs/pkgs/applications/misc/tootle/default.nix
index 904782f3e1f8..9c6008b79349 100644
--- a/nixpkgs/pkgs/applications/misc/tootle/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tootle/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , fetchpatch
 , vala
 , meson
@@ -63,7 +64,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/misc/topydo/default.nix b/nixpkgs/pkgs/applications/misc/topydo/default.nix
index eb3894c7b47d..6db651ff3929 100644
--- a/nixpkgs/pkgs/applications/misc/topydo/default.nix
+++ b/nixpkgs/pkgs/applications/misc/topydo/default.nix
@@ -22,7 +22,14 @@ buildPythonApplication rec {
     watchdog
   ];
 
-  checkInputs = [ mock freezegun coverage green pylint ];
+  checkInputs = [ mock freezegun pylint ];
+
+  # Skip test that has been reported multiple times upstream without result:
+  # bram85/topydo#271, bram85/topydo#274.
+  checkPhase = ''
+    substituteInPlace test/test_revert_command.py --replace 'test_revert_ls' 'dont_test_revert_ls'
+    python -m unittest discover
+  '';
 
   LC_ALL="en_US.UTF-8";
 
diff --git a/nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix b/nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix
new file mode 100644
index 000000000000..00e6efb713e5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/tty-solitaire/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, ncurses }:
+
+stdenv.mkDerivation rec {
+  pname = "tty-solitaire";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "mpereira";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0kix7wfy2bda8cw5kfm7bm5acd5fqmdl9g52ms9bza4kf2jnb754";
+  };
+
+  buildInputs = [ ncurses ];
+
+  patchPhase = "sed -i -e '/^CFLAGS *?= *-g *$/d' Makefile";
+
+  makeFlags = [ "CC=cc" "PREFIX=${placeholder "out"}" ];
+
+  meta = with stdenv.lib; {
+    description = "Klondike Solitaire in your ncurses terminal";
+    license = licenses.mit;
+    homepage = "https://github.com/mpereira/tty-solitaire";
+    platforms = ncurses.meta.platforms;
+    maintainers = [ maintainers.AndersonTorres ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/tut/default.nix b/nixpkgs/pkgs/applications/misc/tut/default.nix
index 7b9efb6bbe5d..d65e894417e6 100644
--- a/nixpkgs/pkgs/applications/misc/tut/default.nix
+++ b/nixpkgs/pkgs/applications/misc/tut/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "tut";
-  version = "0.0.9";
+  version = "0.0.14";
 
   goPackagePath = "github.com/RasmusLindroth/tut";
   goDeps = ./deps.nix;
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "RasmusLindroth";
     repo = pname;
     rev = version;
-    sha256 = "19y6brw1d6dlp2gnkdpbp261662h5j46rmiqg73cxhrlws0y0kfk";
+    sha256 = "1l7lc6cjx97v9zhc0b6lfzqjmyv1i3qj83drkck36if3mc60vvwi";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/misc/ulauncher/default.nix b/nixpkgs/pkgs/applications/misc/ulauncher/default.nix
index 34ca82b8d04c..81e273dd39d8 100644
--- a/nixpkgs/pkgs/applications/misc/ulauncher/default.nix
+++ b/nixpkgs/pkgs/applications/misc/ulauncher/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchurl
+, nix-update-script
 , python3Packages
 , gdk-pixbuf
 , glib
@@ -19,13 +20,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "ulauncher";
-  version = "5.7.3";
+  version = "5.8.0";
 
   disabled = python3Packages.isPy27;
 
   src = fetchurl {
     url = "https://github.com/Ulauncher/Ulauncher/releases/download/${version}/ulauncher_${version}.tar.gz";
-    sha256 = "0wq2zsq3496fjfg89q01dsm7sb7kv92sycvqm6ad8z1z2kpisrbh";
+    sha256 = "1czxzcxix9iwv1sir1q64j5aavc7lzjjwqpisgdc1kidkwnk05zp";
   };
 
   nativeBuildInputs = with python3Packages; [
@@ -103,6 +104,13 @@ python3Packages.buildPythonApplication rec {
     gappsWrapperArgs+=(--prefix PATH : "${stdenv.lib.makeBinPath [ wmctrl ]}")
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+
   meta = with stdenv.lib; {
     description = "A fast application launcher for Linux, written in Python, using GTK";
     homepage = "https://ulauncher.io/";
diff --git a/nixpkgs/pkgs/applications/misc/urlscan/default.nix b/nixpkgs/pkgs/applications/misc/urlscan/default.nix
index ef4684689b8a..c5edd9133b7d 100644
--- a/nixpkgs/pkgs/applications/misc/urlscan/default.nix
+++ b/nixpkgs/pkgs/applications/misc/urlscan/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "urlscan";
-  version = "0.9.4";
+  version = "0.9.5";
 
   src = fetchFromGitHub {
     owner = "firecat53";
     repo = pname;
     rev = version;
-    sha256 = "11wkwjqsq848ks6m2jqsb8h0xnz75fb60bm0c4jkxys9wzy4chg5";
+    sha256 = "16g7dzvjcfhaz52wbmcapamy55l7vfhgizqy3m8dv9gkmy8vap89";
   };
 
   propagatedBuildInputs = [ python3Packages.urwid ];
diff --git a/nixpkgs/pkgs/applications/misc/waybar/default.nix b/nixpkgs/pkgs/applications/misc/waybar/default.nix
index 7ecaabe9a922..259eb93771b3 100644
--- a/nixpkgs/pkgs/applications/misc/waybar/default.nix
+++ b/nixpkgs/pkgs/applications/misc/waybar/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, meson, pkgconfig, ninja, wrapGAppsHook
-, wayland, wlroots, gtkmm3, libinput, libsigcxx, jsoncpp, fmt, scdoc, spdlog, gtk-layer-shell
+, wayland, wlroots, gtkmm3, libsigcxx, jsoncpp, fmt, scdoc, spdlog, gtk-layer-shell
 , howard-hinnant-date, cmake
 , traySupport  ? true,  libdbusmenu-gtk3
 , pulseSupport ? false, libpulseaudio
@@ -11,13 +11,13 @@
 }:
   stdenv.mkDerivation rec {
     pname = "waybar";
-    version = "0.9.2";
+    version = "0.9.3";
 
     src = fetchFromGitHub {
       owner = "Alexays";
       repo = "Waybar";
       rev = version;
-      sha256 = "1gfxyjzwfqznyrpyr3322z3w844i1lh77kly4hcpy9y5gsfmlafy";
+      sha256 = "0ks719khhg2zwpyiwa2079i6962qcxpapm28hmr4ckpsp2n659ck";
     };
 
     nativeBuildInputs = [
@@ -32,7 +32,7 @@
     strictDeps = false;
 
     buildInputs = with stdenv.lib;
-      [ wayland wlroots gtkmm3 libinput libsigcxx jsoncpp fmt spdlog gtk-layer-shell howard-hinnant-date ]
+      [ wayland wlroots gtkmm3 libsigcxx jsoncpp fmt spdlog gtk-layer-shell howard-hinnant-date ]
       ++ optional  traySupport  libdbusmenu-gtk3
       ++ optional  pulseSupport libpulseaudio
       ++ optional  nlSupport    libnl
diff --git a/nixpkgs/pkgs/applications/misc/weather/default.nix b/nixpkgs/pkgs/applications/misc/weather/default.nix
index ce4fae1cb229..7894bc2f5e4c 100644
--- a/nixpkgs/pkgs/applications/misc/weather/default.nix
+++ b/nixpkgs/pkgs/applications/misc/weather/default.nix
@@ -1,41 +1,48 @@
-{ stdenv, fetchurl, pythonPackages }:
+{ stdenv, fetchurl, pythonPackages, installShellFiles }:
 
 stdenv.mkDerivation rec {
-    version = "2.3";
-    pname = "weather";
-
-    src = fetchurl {
-        url = "http://fungi.yuggoth.org/weather/src/${pname}-${version}.tar.xz";
-        sha256 = "0inij30prqqcmzjwcmfzjjn0ya5klv18qmajgxipz1jr3lpqs546";
-    };
-
-    nativeBuildInputs = [ pythonPackages.wrapPython ];
-
-    buildInputs = [ pythonPackages.python ];
-
-    phases = [ "unpackPhase" "installPhase" ];
-
-    installPhase = ''
-        site_packages=$out/${pythonPackages.python.sitePackages}
-        mkdir -p $out/{share/{man,weather-util},bin,etc} $site_packages
-        cp weather $out/bin/
-        cp weather.py $site_packages/
-        chmod +x $out/bin/weather
-        cp airports overrides.{conf,log} places slist stations zctas zlist zones $out/share/weather-util/
-        cp weatherrc $out/etc
-        cp weather.1 weatherrc.5 $out/share/man/
-        sed -i \
-          -e "s|/etc|$out/etc|g" \
-          -e "s|else: default_setpath = \".:~/.weather|&:$out/share/weather-util|" \
-          $site_packages/weather.py
-        wrapPythonPrograms
-    '';
-
-    meta = {
-        homepage = "http://fungi.yuggoth.org/weather";
-        description = "Quick access to current weather conditions and forecasts";
-        license = stdenv.lib.licenses.isc;
-        maintainers = [ stdenv.lib.maintainers.matthiasbeyer ];
-        platforms = with stdenv.lib.platforms; linux; # my only platform
-    };
+  version = "2.4.1";
+  pname = "weather";
+
+  src = fetchurl {
+    url = "http://fungi.yuggoth.org/weather/src/${pname}-${version}.tar.xz";
+    sha256 = "0nf680dl7a2vlgavdhj6ljq8a7lkhvr6zghkpzad53vmilxsndys";
+  };
+
+  nativeBuildInputs = [
+    installShellFiles
+    pythonPackages.wrapPython
+  ];
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  # Upstream doesn't provide a setup.py or alike, so we follow:
+  # http://fungi.yuggoth.org/weather/doc/install.rst#id3
+  installPhase = ''
+    site_packages=$out/${pythonPackages.python.sitePackages}
+    install -Dt $out/bin -m 755 weather
+    install -Dt $site_packages weather.py
+    install -Dt $out/share/weather-util \
+      airports overrides.{conf,log} places slist stations \
+      zctas zlist zones
+    install -Dt $out/etc weatherrc
+
+    sed -i \
+      -e "s|/etc|$out/etc|g" \
+      -e "s|else: default_setpath = \".:~/.weather|&:$out/share/weather-util|" \
+      $site_packages/weather.py
+
+    wrapPythonPrograms
+
+    installManPage weather.1 weatherrc.5
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://fungi.yuggoth.org/weather";
+    description = "Quick access to current weather conditions and forecasts";
+    license = licenses.isc;
+    maintainers = [ maintainers.matthiasbeyer ];
+    platforms = platforms.unix;
+  };
 }
diff --git a/nixpkgs/pkgs/applications/misc/wofi/default.nix b/nixpkgs/pkgs/applications/misc/wofi/default.nix
index 37b991e6d476..4aeff6c9ec8d 100644
--- a/nixpkgs/pkgs/applications/misc/wofi/default.nix
+++ b/nixpkgs/pkgs/applications/misc/wofi/default.nix
@@ -1,28 +1,27 @@
-{ stdenv, lib, fetchhg, fetchpatch, pkg-config, meson, ninja, wayland, gtk3, wrapGAppsHook }:
+{ stdenv, lib, fetchhg, fetchpatch, pkg-config, meson, ninja, wayland, gtk3, wrapGAppsHook, installShellFiles }:
 
 stdenv.mkDerivation rec {
   pname = "wofi";
-  version = "1.1.2";
+  version = "1.2.1";
 
   src = fetchhg {
     url = "https://hg.sr.ht/~scoopta/wofi";
     rev = "v${version}";
-    sha256 = "086j5wshawjbwdmmmldivfagc2rr7g5a2gk11l0snqqslm294xsn";
+    sha256 = "0hx61br19dlmc3lay23ww3n9ry06m7b6xrkjx7sk4vrg1422iq99";
   };
 
-  nativeBuildInputs = [ pkg-config meson ninja wrapGAppsHook ];
+  nativeBuildInputs = [ pkg-config meson ninja wrapGAppsHook installShellFiles ];
   buildInputs = [ wayland gtk3 ];
 
-  # Fixes icon bug on NixOS.
-  # Will need to be removed on next release
-  # see https://todo.sr.ht/~scoopta/wofi/54
   patches = [
-    (fetchpatch {
-      url = "https://paste.sr.ht/blob/1cbddafac3806afb203940c029e78ce8390d8f49";
-      sha256 = "1n4jpmh66p7asjhj0z2s94ny91lmaq4hhh2356nj406vlqr15vbb";
-    })
+    # https://todo.sr.ht/~scoopta/wofi/121
+    ./do_not_follow_symlinks.patch
   ];
 
+  postInstall = ''
+    installManPage man/wofi*
+  '';
+
   meta = with lib; {
     description = "A launcher/menu program for wlroots based wayland compositors such as sway";
     homepage = "https://hg.sr.ht/~scoopta/wofi";
diff --git a/nixpkgs/pkgs/applications/misc/wofi/do_not_follow_symlinks.patch b/nixpkgs/pkgs/applications/misc/wofi/do_not_follow_symlinks.patch
new file mode 100644
index 000000000000..f917c4c1685d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/wofi/do_not_follow_symlinks.patch
@@ -0,0 +1,39 @@
+diff -r 3414ab984249 modes/run.c
+--- a/modes/run.c	Tue Aug 11 19:07:49 2020 -0700
++++ b/modes/run.c	Sat Aug 22 13:39:52 2020 +0200
+@@ -91,23 +91,10 @@
+ 
+ 	char* path = strdup(getenv("PATH"));
+ 
+-	struct map* paths = map_init();
+-
+ 	char* save_ptr;
+ 	char* str = strtok_r(path, ":", &save_ptr);
+ 	do {
+ 
+-		str = realpath(str, NULL);
+-		if(str == NULL) {
+-			continue;
+-		}
+-		if(map_contains(paths, str)) {
+-			free(str);
+-			continue;
+-		}
+-
+-		map_put(paths, str, "true");
+-
+ 		DIR* dir = opendir(str);
+ 		if(dir == NULL) {
+ 			continue;
+@@ -132,11 +119,9 @@
+ 			}
+ 			free(full_path);
+ 		}
+-		free(str);
+ 		closedir(dir);
+ 	} while((str = strtok_r(NULL, ":", &save_ptr)) != NULL);
+ 	free(path);
+-	map_free(paths);
+ 	map_free(cached);
+ 	map_free(entries);
+ }
diff --git a/nixpkgs/pkgs/applications/misc/worker/default.nix b/nixpkgs/pkgs/applications/misc/worker/default.nix
index 9e3022457a0e..b19b1b86cf57 100644
--- a/nixpkgs/pkgs/applications/misc/worker/default.nix
+++ b/nixpkgs/pkgs/applications/misc/worker/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "worker";
-  version = "4.4.0";
+  version = "4.5.0";
 
   src = fetchurl {
     url = "http://www.boomerangsworld.de/cms/worker/downloads/${pname}-${version}.tar.gz";
-    sha256 = "1k2svpzq01n1h9365nhi7r2k7dmsviczxi9m6fb80ccccdz7i530";
+    sha256 = "02xrdg1v784p4gfqjm1mlxqwi40qlbzhp68p5ksj96cjv6av5b5s";
   };
 
   buildInputs = [ libX11 ];
diff --git a/nixpkgs/pkgs/applications/misc/wtf/default.nix b/nixpkgs/pkgs/applications/misc/wtf/default.nix
index aeece53e779b..612b97b5b53c 100644
--- a/nixpkgs/pkgs/applications/misc/wtf/default.nix
+++ b/nixpkgs/pkgs/applications/misc/wtf/default.nix
@@ -7,16 +7,18 @@
 
 buildGoModule rec {
   pname = "wtf";
-  version = "0.30.0";
+  version = "0.31.0";
 
   src = fetchFromGitHub {
     owner = "wtfutil";
     repo = pname;
     rev = "v${version}";
-    sha256 = "11vy39zygk1gxb1nc1zmxlgs6fn7yq68090fwm2jar0lsxx8a83i";
+    sha256 = "07ngk83p753w9qxm8bvw6n5vk0zldn14yv08d900sxny8cg2h0rb";
    };
 
-  vendorSha256 = "0qfb352gmsmy5glrsjwc3w57di5k2kjdsyfqn4xf7p4v12yg88va";
+  vendorSha256 = "09iy148pnbdrzjj2j50lbd8s9mkv7vggrx77mj88p1gnqclz3lip";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
diff --git a/nixpkgs/pkgs/applications/misc/x3270/default.nix b/nixpkgs/pkgs/applications/misc/x3270/default.nix
new file mode 100644
index 000000000000..747d26538764
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/x3270/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchurl, openssl, m4, expat
+, libX11, libXt, libXaw, libXmu, bdftopcf, mkfontdir
+, fontadobe100dpi, fontadobeutopia100dpi, fontbh100dpi
+, fontbhlucidatypewriter100dpi, fontbitstream100dpi
+, tcl
+, ncurses }:
+
+let
+  majorVersion = "4";
+  minorVersion = "0";
+  versionSuffix = "ga9";
+in stdenv.mkDerivation rec {
+  pname = "x3270";
+  version = "${majorVersion}.${minorVersion}${versionSuffix}";
+
+  src = fetchurl {
+    url = "http://x3270.bgp.nu/download/0${majorVersion}.0${minorVersion}/suite3270-${version}-src.tgz";
+    sha256 = "0km24rgll0s4ji6iz8lvy5ra76ds162s95y33w5px6697cwqkp9j";
+  };
+
+  buildFlags = "unix";
+
+  postConfigure = ''
+    pushd c3270 ; ./configure ; popd
+  '';
+
+  nativeBuildInputs = [ m4 ];
+  buildInputs = [
+    expat
+    libX11 libXt libXaw libXmu bdftopcf mkfontdir
+    fontadobe100dpi fontadobeutopia100dpi fontbh100dpi
+    fontbhlucidatypewriter100dpi fontbitstream100dpi
+    tcl
+    ncurses
+    expat
+  ];
+
+  meta = with stdenv.lib; {
+    description = "IBM 3270 terminal emulator for the X Window System";
+    homepage = "http://x3270.bgp.nu/index.html";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.anna328p ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/xbattbar/default.nix b/nixpkgs/pkgs/applications/misc/xbattbar/default.nix
new file mode 100644
index 000000000000..0864e24f8c9d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xbattbar/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchgit, libX11, perl, ... }:
+
+stdenv.mkDerivation rec {
+  pname = "xbattbar";
+  version = "1.4.9";
+
+  # The current active upstream of xbattbar seems to be the Debian source
+  # repository.
+  src = fetchgit {
+    url = "https://salsa.debian.org/debian/xbattbar.git";
+    rev = "upstream/${version}";
+    sha256 = "10w7gs0l4hzhdn38yqyr3az7n4ncmfnd6hhhly6lk5dg7k441ck6";
+  };
+
+  buildInputs =  [ libX11 ];
+
+  # The following patches are applied:
+  # - sys-by-default: remove the APM checker binary, make the sys checker
+  #   script the default. Rationale: checking battery status by /proc/apm is
+  #   extremely oldschool and does not work on NixOS, while the sysfs script
+  #   does.
+  # - perl shebang patches for acpi/sys scripts
+  # - unhardcode path to checker scripts
+  patchPhase = ''
+    patch -p1 < ${./sys-by-default.patch}
+    sed -i -e "s,/usr/lib/xbattbar/,$out/libexec/," xbattbar.c
+    sed -i -e "s,/usr/bin/perl,${perl}/bin/perl," xbattbar-check-acpi
+    sed -i -e "s,/usr/bin/perl,${perl}/bin/perl," xbattbar-check-sys
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/libexec
+    install -m 0755 xbattbar $out/bin/
+    install -m 0755 xbattbar-check-acpi $out/libexec/
+    install -m 0755 xbattbar-check-sys $out/libexec/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Display battery status in X11";
+    homepage = "https://salsa.debian.org/debian/xbattbar";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.q3k ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/xbattbar/sys-by-default.patch b/nixpkgs/pkgs/applications/misc/xbattbar/sys-by-default.patch
new file mode 100644
index 000000000000..367f7217eecb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xbattbar/sys-by-default.patch
@@ -0,0 +1,26 @@
+diff --git a/xbattbar.c b/xbattbar.c
+index 1e26019..cb3eab5 100644
+--- a/xbattbar.c
++++ b/xbattbar.c
+@@ -75,9 +75,8 @@ char *ONOUT_C  = "olive drab";
+ char *OFFIN_C  = "blue";
+ char *OFFOUT_C = "red";
+ 
+-char *EXTERNAL_CHECK = "/usr/lib/xbattbar/xbattbar-check-apm";
++char *EXTERNAL_CHECK = "/usr/lib/xbattbar/xbattbar-check-sys";
+ char *EXTERNAL_CHECK_ACPI = "/usr/lib/xbattbar/xbattbar-check-acpi";
+-char *EXTERNAL_CHECK_SYS = "/usr/lib/xbattbar/xbattbar-check-sys";
+ 
+ int alwaysontop = False;
+ 
+@@ -245,10 +244,6 @@ main(int argc, char **argv)
+       EXTERNAL_CHECK = EXTERNAL_CHECK_ACPI;
+       break;
+ 
+-    case 'r':
+-      EXTERNAL_CHECK = EXTERNAL_CHECK_SYS;
+-      break;
+-
+     case 's':
+       EXTERNAL_CHECK = optarg;
+       break;
diff --git a/nixpkgs/pkgs/applications/misc/xdragon/default.nix b/nixpkgs/pkgs/applications/misc/xdragon/default.nix
new file mode 100644
index 000000000000..74f1f755ec8a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xdragon/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, pkg-config, gtk3 }:
+
+stdenv.mkDerivation rec {
+  pname = "xdragon";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "mwh";
+    repo = "dragon";
+    rev = "v${version}";
+    sha256 = "0fgzz39007fdjwq72scp0qygp2v3zc5f1xkm0sxaa8zxm25g1bra";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ gtk3 ];
+
+  installFlags = [ "PREFIX=${placeholder "out"}/bin" ];
+  postInstall = ''
+    ln -s $out/bin/dragon $out/bin/xdragon
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simple drag-and-drop source/sink for X (called dragon in upstream)";
+    homepage = "https://github.com/mwh/dragon";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ das_j ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/xmenu/default.nix b/nixpkgs/pkgs/applications/misc/xmenu/default.nix
new file mode 100644
index 000000000000..0904d1d048fc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/xmenu/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, imlib2, libX11, libXft, libXinerama }:
+
+stdenv.mkDerivation rec {
+  pname = "xmenu";
+  version = "4.3.1";
+
+  src = fetchFromGitHub {
+    owner = "phillbush";
+    repo = "xmenu";
+    rev = "v${version}";
+    sha256 = "0m97w1nwak5drcxxlyisqb73fxkapy2rlph9mg531kbx3k2h30r1";
+  };
+
+  buildInputs = [ imlib2 libX11 libXft libXinerama ];
+
+  postPatch = "sed -i \"s:/usr/local:$out:\" config.mk";
+
+  meta = with stdenv.lib; {
+    description = "XMenu is a menu utility for X";
+    homepage = "https://github.com/phillbush/xmenu";
+    license = licenses.publicDomain;
+    maintainers = with maintainers; [ neonfuz ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix b/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix
index 3b982b1766f9..7b7d9051ada3 100644
--- a/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix
+++ b/nixpkgs/pkgs/applications/misc/xpdf/libxpdf.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     url = "ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02.tar.gz";
     sha256 = "000zq4ddbwyxiki4vdwpmxbnw5n9hsg9hvwra2p33hslyib7sfmk";
   };
-  
+
   patches = [
     (fetchurl {
       url = "ftp://ftp.foolabs.com/pub/xpdf/xpdf-3.02pl1.patch";
@@ -39,14 +39,15 @@ stdenv.mkDerivation {
     cp -v goo/libGoo.a $out/lib/goo
     cp -v fofi/libfofi.a $out/lib/fofi
     cp -v xpdf/libxpdf.a $out/lib/xpdf
-    
+
     cp -v *.h $out/include
     cp -v goo/*.h $out/include
     cp -v fofi/*.h $out/include
     cp -v xpdf/*.h $out/include
   '';
-    
-  meta = {
-    platforms = stdenv.lib.platforms.unix;
+
+  meta = with stdenv.lib; {
+    platforms = platforms.unix;
+    license = licenses.gpl2;
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/zathura/core/default.nix b/nixpkgs/pkgs/applications/misc/zathura/core/default.nix
index 44f200174d9b..58b1a81c90fc 100644
--- a/nixpkgs/pkgs/applications/misc/zathura/core/default.nix
+++ b/nixpkgs/pkgs/applications/misc/zathura/core/default.nix
@@ -24,18 +24,17 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Dsqlite=enabled"
     "-Dmagic=enabled"
-    # "-Dseccomp=enabled"
     "-Dmanpages=enabled"
     "-Dconvert-icon=enabled"
     "-Dsynctex=enabled"
     # Make sure tests are enabled for doCheck
     "-Dtests=enabled"
-  ];
+  ] ++ optional (!stdenv.isLinux) "-Dseccomp=disabled";
 
   nativeBuildInputs = [
     meson ninja pkgconfig desktop-file-utils python3.pkgs.sphinx
-    gettext wrapGAppsHook libxml2 check
-  ] ++ optional stdenv.isLinux appstream-glib;
+    gettext wrapGAppsHook libxml2 check appstream-glib
+  ];
 
   buildInputs = [
     gtk girara libintl sqlite glib file librsvg
diff --git a/nixpkgs/pkgs/applications/misc/zathura/wrapper.nix b/nixpkgs/pkgs/applications/misc/zathura/wrapper.nix
index 5d37b5190d02..7cd52e0c74f1 100644
--- a/nixpkgs/pkgs/applications/misc/zathura/wrapper.nix
+++ b/nixpkgs/pkgs/applications/misc/zathura/wrapper.nix
@@ -1,21 +1,16 @@
 { symlinkJoin, lib, makeWrapper, zathura_core, file, plugins ? [] }:
-
-let
-  pluginsPath = lib.makeSearchPath "lib/zathura" plugins;
-
-in symlinkJoin {
+symlinkJoin {
   name = "zathura-with-plugins-${zathura_core.version}";
 
-  paths = with zathura_core; [ man dev out ];
+  paths = with zathura_core; [ man dev out ] ++ plugins;
 
-  inherit plugins;
 
   buildInputs = [ makeWrapper ];
 
   postBuild = ''
     makeWrapper ${zathura_core.bin}/bin/zathura $out/bin/zathura \
       --prefix PATH ":" "${lib.makeBinPath [ file ]}" \
-      --add-flags --plugins-dir=${pluginsPath}
+      --add-flags --plugins-dir="$out/lib/zathura"
   '';
 
   meta = with lib; {
@@ -29,6 +24,6 @@ in symlinkJoin {
     '';
     license = licenses.zlib;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ smironov globin ];
+    maintainers = with maintainers; [ smironov globin TethysSvensson ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/misc/zettlr/default.nix b/nixpkgs/pkgs/applications/misc/zettlr/default.nix
new file mode 100644
index 000000000000..3d762d9ab2a7
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/zettlr/default.nix
@@ -0,0 +1,38 @@
+{ appimageTools, lib, fetchurl, gtk3, gsettings-desktop-schemas}:
+
+# Based on https://gist.github.com/msteen/96cb7df66a359b827497c5269ccbbf94 and joplin-desktop nixpkgs.
+let
+  pname = "zettlr";
+  version = "1.7.5";
+  name = "${pname}-${version}";
+  src = fetchurl {
+    url = "https://github.com/Zettlr/Zettlr/releases/download/v${version}/Zettlr-${version}-x86_64.appimage";
+    sha256 = "040lx01ywdpla34d4abkmh51kchr11s17la6fk6yq77y8zb87xzi";
+  };
+  appimageContents = appimageTools.extractType2 {
+    inherit name src;
+  };
+in appimageTools.wrapType2 rec {
+  inherit name src;
+
+  profile = ''
+    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+  '';
+
+  multiPkgs = null; # no 32bit needed
+  extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
+  extraInstallCommands = ''
+    mv $out/bin/{${name},${pname}}
+    install -m 444 -D ${appimageContents}/zettlr.desktop $out/share/applications/zettlr.desktop
+    install -m 444 -D ${appimageContents}/zettlr.png $out/share/icons/hicolor/512x512/apps/zettlr.png
+    substituteInPlace $out/share/applications/zettlr.desktop --replace 'Exec=AppRun' 'Exec=${pname}'
+  '';
+
+  meta = with lib; {
+    description = "A markdown editor for writing academic texts and taking notes";
+    homepage = "https://www.zettlr.com";
+    platforms = [ "x86_64-linux" ];
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ tfmoraes ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/misc/zola/default.nix b/nixpkgs/pkgs/applications/misc/zola/default.nix
index d88d7296fd64..5c4df9880d9f 100644
--- a/nixpkgs/pkgs/applications/misc/zola/default.nix
+++ b/nixpkgs/pkgs/applications/misc/zola/default.nix
@@ -1,22 +1,24 @@
-{ stdenv, fetchFromGitHub, rustPlatform, cmake, pkg-config, openssl, CoreServices }:
+{ stdenv, fetchFromGitHub, rustPlatform, cmake, pkg-config, openssl, oniguruma, CoreServices }:
 
 rustPlatform.buildRustPackage rec {
   pname = "zola";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchFromGitHub {
     owner = "getzola";
     repo = pname;
     rev = "v${version}";
-    sha256 = "137ak9gzcn3689fmcb90wa4szw43rh2m51mf26l77a5gksn5y6cn";
+    sha256 = "119ikgall6bv1r6h1pqcmc6nxkxld2lch04gk860zzk54jragbrp";
   };
 
-  cargoSha256 = "0v40bcqh48dlhdc0kz7wm3q9r3i1m6j9s74bfiv237dqx5dymmsg";
+  cargoSha256 = "1jx5bgfmbv0wljps1yv6yir2pjlb0vwzzba4i2sv32awv9y0q3v6";
 
   nativeBuildInputs = [ cmake pkg-config ];
-  buildInputs = [ openssl ]
+  buildInputs = [ openssl oniguruma ]
     ++ stdenv.lib.optional stdenv.isDarwin CoreServices;
 
+  RUSTONIG_SYSTEM_LIBONIG = true;
+
   postInstall = ''
     install -D -m 444 completions/zola.bash \
       -t $out/share/bash-completion/completions
@@ -31,6 +33,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://www.getzola.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ dywedir ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/Sylk/default.nix b/nixpkgs/pkgs/applications/networking/Sylk/default.nix
index f6a88f26e9a2..1ab7a0da5dc6 100644
--- a/nixpkgs/pkgs/applications/networking/Sylk/default.nix
+++ b/nixpkgs/pkgs/applications/networking/Sylk/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "Sylk";
-  version = "2.7.2";
+  version = "2.8.4";
 in
 
 appimageTools.wrapType2 rec {
@@ -10,7 +10,7 @@ appimageTools.wrapType2 rec {
 
   src = fetchurl {
     url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage";
-    sha256 = "1hz41jan8hw56ahpaajlb1yy5zjkyxrclzmqhklm5x59b76pd0zx";
+    hash = "sha256-2s4ezyszNZD9YBj69f62aqtJWwFeida6G/fOA1exu2M=";
   };
 
   profile = ''
diff --git a/nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix b/nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix
new file mode 100644
index 000000000000..2772cb6d987d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/amfora/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+  pname = "amfora";
+  version = "1.5.0";
+
+  src = fetchFromGitHub {
+    owner = "makeworld-the-better-one";
+    repo = "amfora";
+    rev = "v${version}";
+    sha256 = "011h5xzwiafh3fdp9wil8n618p45ph9swa66lw6s82ijpiizz79s";
+  };
+
+  vendorSha256 = "10f3bh3r3jc1185r8r1ihg8rprdpl8qwg5b6wqwsda96ydkbpi2b";
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A fancy terminal browser for the Gemini protocol";
+    homepage = "https://github.com/makeworld-the-better-one/amfora";
+    license = with licenses; [ gpl3 ];
+    maintainers = with maintainers; [ deifactor ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/arora/default.nix b/nixpkgs/pkgs/applications/networking/browsers/arora/default.nix
deleted file mode 100644
index 88ad2c609bfa..000000000000
--- a/nixpkgs/pkgs/applications/networking/browsers/arora/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, fetchFromGitHub, qt4, qmake4Hook }:
-
-stdenv.mkDerivation rec {
-  pname = "arora";
-  version = "0.11.0";
-
-  src = fetchFromGitHub {
-    owner = "Arora";
-    repo = "arora";
-    rev = version;
-    sha256 = "0wmivgx3mw51rghi6q8fgivpkqc98z2mqmllf7c98ln0wd8rkf3c";
-  };
-
-  buildInputs = [ qt4 ];
-  nativeBuildInputs = [ qmake4Hook ];
-
-  enableParallelBuilding = true;
-
-  meta = with stdenv.lib; {
-    platforms = qt4.meta.platforms;
-    maintainers = [ maintainers.phreedom ];
-    description = "A cross-platform Qt4 Webkit browser";
-    homepage = "https://github.com/Arora/arora";
-    license = with licenses; [ gpl2 gpl3 ];
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix b/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix
new file mode 100644
index 000000000000..89f4fda88a18
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/asuka/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, rustPlatform, fetchurl, pkgconfig, ncurses, openssl, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "asuka";
+  version = "0.8.1";
+
+  src = fetchurl {
+    url = "https://git.sr.ht/~julienxx/${pname}/archive/${version}.tar.gz";
+    sha256 = "07i80qmdpwfdgwrk1gzs10wln91v23qjrsk0x134xf5mjnakxc06";
+  };
+
+  cargoSha256 = "0p0x4ch04kydg76bfal5zqzr9hvn5268wf3k2v9h7g8r4y8xqlhw";
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = [ ncurses openssl ]
+    ++ stdenv.lib.optional stdenv.isDarwin Security;
+
+  meta = with stdenv.lib; {
+    description = "Gemini Project client written in Rust with NCurses";
+    homepage = "https://git.sr.ht/~julienxx/asuka";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ sikmir ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/av-98/default.nix b/nixpkgs/pkgs/applications/networking/browsers/av-98/default.nix
new file mode 100644
index 000000000000..2184c8d699a4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/av-98/default.nix
@@ -0,0 +1,21 @@
+{ lib, python3Packages, fetchgit }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "av-98";
+  version = "1.0.2dev";
+
+  src = fetchgit {
+    url = "https://tildegit.org/solderpunk/AV-98.git";
+    rev = "96cf8e13fe5714c8cdc754f51eef9f0293b8ca1f";
+    sha256 = "09iskh33hl5aaif763j1fmbz7yvf0yqsxycfd41scj7vbwdsbxl0";
+  };
+
+  propagatedBuildInputs = with python3Packages; [ ansiwrap cryptography ];
+
+  meta = with lib; {
+    homepage = "https://tildegit.org/solderpunk/AV-98";
+    description = "Experimental console client for the Gemini protocol";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ ehmry ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix b/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
index b3261431ccd3..ceceffb8da08 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/brave/default.nix
@@ -86,11 +86,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.8.95";
+  version = "1.12.112";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    sha256 = "1mlffg2v31b42gj354w5yv0yzlqc2f4f3cmdnddzkplw10jgw6f1";
+    sha256 = "0nvxmz1wrr6cfyhbnrfjsy9szbjmvjl6080pgkp25xa8rcql5gmb";
   };
 
   dontConfigure = true;
diff --git a/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix
index 3ce04842c6e4..b302be4e013c 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/captive-browser/default.nix
@@ -16,7 +16,6 @@ buildGoPackage rec {
     description = "Dedicated Chrome instance to log into captive portals without messing with DNS settings";
     homepage = "https://blog.filippo.io/captive-browser";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ volth ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix b/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix
index 6209c3263bcd..c9ad213cf1d1 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/castor/default.nix
@@ -13,15 +13,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "castor";
-  version = "0.8.14";
+  version = "0.8.16";
 
   src = fetchurl {
     url = "https://git.sr.ht/~julienxx/castor/archive/${version}.tar.gz";
-    sha256 = "1ykpmbimhfy3ys2hvv0mn8xiwxzdl43gpny1nc58i0gzv07ar8sc";
+    sha256 = "1qwsprwazkzcs70h219fhh5jj5s5hm1k120fn3pk4qivii4lyhah";
   };
 
-  cargoSha256 = "04w49wka1vkb295lk6fzd6c5rwhzrqkp26hd5d94rx7bhcjmmb9w";
-  verifyCargoDeps = true;
+  cargoSha256 = "0yn2kfiaz6d8wc8rdqli2pwffp5vb1v3zi7520ysrd5b6fc2csf2";
 
   nativeBuildInputs = [
     pkg-config
@@ -40,14 +39,12 @@ rustPlatform.buildRustPackage rec {
   postInstall = "make PREFIX=$out copy-data";
 
   # Sometimes tests fail when run in parallel
-  checkFlags = [ "--test-threads=1" ];
+  cargoParallelTestThreads = false;
 
   meta = with stdenv.lib; {
     description = "A graphical client for plain-text protocols written in Rust with GTK. It currently supports the Gemini, Gopher and Finger protocols";
     homepage = "https://sr.ht/~julienxx/Castor";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ fgaz ];
   };
 }
-
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
index 5dbafcee837e..a79a48fffcc5 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/common.nix
@@ -1,7 +1,7 @@
-{ stdenv, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, gnutar
+{ stdenv, lib, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, fetchurl
 
 # default dependencies
-, bzip2, flac, speex, libopus
+, gnutar, bzip2, flac, speex, libopus
 , libevent, expat, libjpeg, snappy
 , libpng, libcap
 , xdg_utils, yasm, nasm, minizip, libwebp
@@ -17,7 +17,7 @@
 , libXScrnSaver, libXcursor, libXtst, libGLU, libGL
 , protobuf, speechd, libXdamage, cups
 , ffmpeg_3, libxslt, libxml2, at-spi2-core
-, jre
+, jre8
 , pipewire_0_2
 
 # optional dependencies
@@ -39,6 +39,7 @@
 , cupsSupport ? true
 , pulseSupport ? false, libpulseaudio ? null
 
+, channel
 , upstream-info
 }:
 
@@ -49,6 +50,8 @@ with stdenv.lib;
 # see http://www.linuxfromscratch.org/blfs/view/cvs/xsoft/chromium.html
 
 let
+  jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+
   # The additional attributes for creating derivations based on the chromium
   # source tree.
   extraAttrs = buildFun base;
@@ -81,7 +84,7 @@ let
     # "ffmpeg" # https://crbug.com/731766
     # "harfbuzz-ng" # in versions over 63 harfbuzz and freetype are being built together
                     # so we can't build with one from system and other from source
-  ] ++ optional (versionRange "0" "84") "yasm";
+  ];
 
   opusWithCustomModes = libopus.override {
     withCustomModes = true;
@@ -94,9 +97,10 @@ let
     xdg_utils minizip libwebp
     libusb1 re2 zlib
     ffmpeg_3 libxslt libxml2
+    nasm
     # harfbuzz # in versions over 63 harfbuzz and freetype are being built together
                # so we can't build with one from system and other from source
-  ] ++ (if (versionRange "0" "84") then [ yasm ] else [ nasm ]);
+  ];
 
   # build paths and release info
   packageName = extraAttrs.packageName or extraAttrs.name;
@@ -107,7 +111,7 @@ let
   versionRange = min-version: upto-version:
     let inherit (upstream-info) version;
         result = versionAtLeast version min-version && versionOlder version upto-version;
-        stable-version = (import ./upstream-info.nix).stable.version;
+        stable-version = (importJSON ./upstream-info.json).stable.version;
     in if versionAtLeast stable-version upto-version
        then warn "chromium: stable version ${stable-version} is newer than a patchset bounded at ${upto-version}. You can safely delete it."
             result
@@ -115,17 +119,20 @@ let
 
   base = rec {
     name = "${packageName}-unwrapped-${version}";
-    inherit (upstream-info) channel version;
-    inherit packageName buildType buildPath;
+    inherit (upstream-info) version;
+    inherit channel packageName buildType buildPath;
 
-    src = upstream-info.main;
+    src = fetchurl {
+      url = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${version}.tar.xz";
+      inherit (upstream-info) sha256;
+    };
 
     nativeBuildInputs = [
       ninja which python2Packages.python perl pkgconfig
       python2Packages.ply python2Packages.jinja2 nodejs
-      gnutar
-    ] ++ optional (versionAtLeast version "83") python2Packages.setuptools
-      ++ optional (versionAtLeast version "84") (xorg.xcbproto.override { python = python2Packages.python; });
+      gnutar python2Packages.setuptools
+      (xorg.xcbproto.override { python = python2Packages.python; })
+    ];
 
     buildInputs = defaultDependencies ++ [
       nspr nss systemd
@@ -143,8 +150,9 @@ let
       ++ optional pulseSupport libpulseaudio
       ++ optionals useOzone [ libdrm wayland mesa_drivers libxkbcommon ];
 
-    patches = [
+    patches = optionals (versionRange "68" "86") [
       ./patches/nix_plugin_paths_68.patch
+    ] ++ [
       ./patches/remove-webp-include-69.patch
       ./patches/no-build-timestamps.patch
       ./patches/widevine-79.patch
@@ -158,12 +166,18 @@ let
       #
       # ++ optionals (channel == "dev") [ ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" ) ]
       # ++ optional (versionRange "68" "72") ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" )
-    ] ++ optionals (useVaapi) [ # Improvements for the VA-API build:
+    ] ++ optionals (useVaapi && versionRange "68" "86") [ # Improvements for the VA-API build:
       ./patches/enable-vdpau-support-for-nvidia.patch # https://aur.archlinux.org/cgit/aur.git/tree/vdpau-support.patch?h=chromium-vaapi
       ./patches/enable-video-acceleration-on-linux.patch # Can be controlled at runtime (i.e. without rebuilding Chromium)
     ];
 
-    postPatch = ''
+    postPatch = optionalString (!versionRange "0" "86") ''
+      # Required for patchShebangs (unsupported interpreter directive, basename: invalid option -- '*', etc.):
+      substituteInPlace native_client/SConstruct \
+        --replace "#! -*- python -*-" ""
+      substituteInPlace third_party/harfbuzz-ng/src/src/update-unicode-tables.make \
+        --replace "/usr/bin/env -S make -f" "/usr/bin/make -f"
+    '' + ''
       # We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
       substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \
         --replace \
@@ -181,10 +195,15 @@ let
           '/usr/share/locale/' \
           '${glibc}/share/locale/'
 
+      substituteInPlace ui/gfx/x/BUILD.gn \
+        --replace \
+          '/usr/share/xcb' \
+          '${xorg.xcbproto}/share/xcb/'
+
       sed -i -e 's@"\(#!\)\?.*xdg-@"\1${xdg_utils}/bin/xdg-@' \
         chrome/browser/shell_integration_linux.cc
 
-      sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${systemd.lib}/lib/\1!' \
+      sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${lib.getLib systemd}/lib/\1!' \
         device/udev_linux/udev?_loader.cc
 
       sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
@@ -226,16 +245,9 @@ let
       ln -s ${stdenv.cc}/bin/clang              third_party/llvm-build/Release+Asserts/bin/clang
       ln -s ${stdenv.cc}/bin/clang++            third_party/llvm-build/Release+Asserts/bin/clang++
       ln -s ${llvmPackages.llvm}/bin/llvm-ar    third_party/llvm-build/Release+Asserts/bin/llvm-ar
-    '' + optionalString (versionAtLeast version "84") ''
-      substituteInPlace ui/gfx/x/BUILD.gn \
-        --replace \
-          '/usr/share/xcb' \
-          '${xorg.xcbproto}/share/xcb/'
     '';
 
-    gnFlags = mkGnFlags (optionalAttrs (versionRange "0" "84") {
-      linux_use_bundled_binutils = false;
-    } // {
+    gnFlags = mkGnFlags ({
       use_lld = false;
       use_gold = true;
       gold_path = "${stdenv.cc}/bin";
@@ -338,9 +350,11 @@ let
       origRpath="$(patchelf --print-rpath "$chromiumBinary")"
       patchelf --set-rpath "${libGL}/lib:$origRpath" "$chromiumBinary"
     '';
+
+    passthru.updateScript = ./update.py;
   };
 
 # Remove some extraAttrs we supplied to the base attributes already.
 in stdenv.mkDerivation (base // removeAttrs extraAttrs [
   "name" "gnFlags" "buildTargets"
-])
+] // { passthru = base.passthru // (extraAttrs.passthru or {}); })
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix
index 2fea779a8f83..7f5378e2b199 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/default.nix
@@ -1,9 +1,9 @@
-{ newScope, config, stdenv, llvmPackages_9, llvmPackages_10
-, makeWrapper, ed
+{ newScope, config, stdenv, fetchurl, makeWrapper
+, llvmPackages_10, llvmPackages_11, ed, gnugrep, coreutils, xdg_utils
 , glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit
 , libva ? null
 , pipewire_0_2
-, gcc, nspr, nss, patchelfUnstable, runCommand
+, gcc, nspr, nss, runCommand
 , lib
 
 # package customization
@@ -28,29 +28,42 @@ let
 
   callPackage = newScope chromium;
 
-  chromium = {
+  chromium = rec {
     inherit stdenv llvmPackages;
 
-    upstream-info = (callPackage ./update.nix {}).getChannel channel;
+    upstream-info = (lib.importJSON ./upstream-info.json).${channel};
 
     mkChromiumDerivation = callPackage ./common.nix ({
-      inherit gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport useOzone;
+      inherit channel gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs
+              cupsSupport pulseSupport useOzone;
       # TODO: Remove after we can update gn for the stable channel (backward incompatible changes):
       gnChromium = gn.overrideAttrs (oldAttrs: {
-        version = "2020-03-23";
+        version = "2020-05-19";
         src = fetchgit {
           url = "https://gn.googlesource.com/gn";
-          rev = "5ed3c9cc67b090d5e311e4bd2aba072173e82db9";
-          sha256 = "00y2d35wvqmx9glaqhfb62wdgbfpwr77v0934nnvh9ks71vnsjqy";
+          rev = "d0a6f072070988e7b038496c4e7d6c562b649732";
+          sha256 = "0197msabskgfbxvhzq73gc3wlr3n9cr4bzrhy5z5irbvy05lxk17";
         };
       });
-    } // lib.optionalAttrs (channel == "dev") {
+    } // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "86") {
+      llvmPackages = llvmPackages_11;
       gnChromium = gn.overrideAttrs (oldAttrs: {
-        version = "2020-05-19";
+        version = "2020-07-20";
         src = fetchgit {
           url = "https://gn.googlesource.com/gn";
-          rev = "d0a6f072070988e7b038496c4e7d6c562b649732";
-          sha256 = "0197msabskgfbxvhzq73gc3wlr3n9cr4bzrhy5z5irbvy05lxk17";
+          rev = "3028c6a426a4aaf6da91c4ebafe716ae370225fe";
+          sha256 = "0h3wf4152zdvrbb0jbj49q6814lfl3rcy5mj8b2pl9s0ahvkbc6q";
+        };
+      });
+    } // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "87") {
+      llvmPackages = llvmPackages_11;
+      useOzone = true; # YAY: https://chromium-review.googlesource.com/c/chromium/src/+/2382834 \o/
+      gnChromium = gn.overrideAttrs (oldAttrs: {
+        version = "2020-08-17";
+        src = fetchgit {
+          url = "https://gn.googlesource.com/gn";
+          rev = "6f13aaac55a977e1948910942675c69f2b4f7a94";
+          sha256 = "01hpma1sllpdx09mvr4d6073sg6zmk6iv44kd3r28khymcj4s251";
         };
       });
     });
@@ -62,24 +75,33 @@ let
     };
   };
 
+  pkgSuffix = if channel == "dev" then "unstable" else channel;
+  pkgName = "google-chrome-${pkgSuffix}";
+  chromeSrc = fetchurl {
+    urls = map (repo: "${repo}/${pkgName}/${pkgName}_${version}-1_amd64.deb") [
+      "https://dl.google.com/linux/chrome/deb/pool/main/g"
+      "http://95.31.35.30/chrome/pool/main/g"
+      "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g"
+      "http://repo.fdzh.org/chrome/deb/pool/main/g"
+    ];
+    sha256 = chromium.upstream-info.sha256bin64;
+  };
+
   mkrpath = p: "${lib.makeSearchPathOutput "lib" "lib64" p}:${lib.makeLibraryPath p}";
-  widevineCdm = let upstream-info = chromium.upstream-info; in stdenv.mkDerivation {
+  widevineCdm = stdenv.mkDerivation {
     name = "chrome-widevine-cdm";
 
-    # The .deb file for Google Chrome
-    src = upstream-info.binary;
-
-    nativeBuildInputs = [ patchelfUnstable ];
+    src = chromeSrc;
 
     phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
 
     unpackCmd = let
       widevineCdmPath =
-        if upstream-info.channel == "stable" then
+        if channel == "stable" then
           "./opt/google/chrome/WidevineCdm"
-        else if upstream-info.channel == "beta" then
+        else if channel == "beta" then
           "./opt/google/chrome-beta/WidevineCdm"
-        else if upstream-info.channel == "dev" then
+        else if channel == "dev" then
           "./opt/google/chrome-unstable/WidevineCdm"
         else
           throw "Unknown chromium channel.";
@@ -189,10 +211,13 @@ in stdenv.mkDerivation {
   '' + ''
 
     # libredirect causes chromium to deadlock on startup
-    export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | tr ':' '\n' | grep -v /lib/libredirect\\\\.so$ | tr '\n' ':')"
+    export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | ${coreutils}/bin/tr ':' '\n' | ${gnugrep}/bin/grep -v /lib/libredirect\\\\.so$ | ${coreutils}/bin/tr '\n' ':')"
 
     export XDG_DATA_DIRS=$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\''${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS
 
+    # Mainly for xdg-open but also other xdg-* tools:
+    export PATH="${xdg_utils}/bin\''${PATH:+:}\$PATH"
+
     .
     w
     EOF
@@ -212,6 +237,7 @@ in stdenv.mkDerivation {
   passthru = {
     inherit (chromium) upstream-info browser;
     mkDerivation = chromium.mkChromiumDerivation;
-    inherit sandboxExecutableName;
+    inherit chromeSrc sandboxExecutableName;
+    updateScript = ./update.py;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/enable-vdpau-support-for-nvidia.patch b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/enable-vdpau-support-for-nvidia.patch
index b5372d1a2556..8d879de7bfd8 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/enable-vdpau-support-for-nvidia.patch
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/patches/enable-vdpau-support-for-nvidia.patch
@@ -31,15 +31,6 @@
    // TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT
    // |output_mode_| as well.
    if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
-@@ -1105,7 +1113,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
-   // depends on the bitstream and sometimes it's not enough to cover the amount
-   // of frames needed by the client pipeline (see b/133733739).
-   // TODO(crbug.com/911754): Enable for VP9 Profile 2.
--  if (IsGeminiLakeOrLater() &&
-+  if (false && IsGeminiLakeOrLater() &&
-       (profile_ == VP9PROFILE_PROFILE0 || profile_ == VP8PROFILE_ANY)) {
-     // Add one to the reference frames for the one being currently egressed, and
-     // an extra allocation for both |client_| and |decoder_|, see
 --- a/media/gpu/vaapi/vaapi_video_decode_accelerator.h
 +++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.h
 @@ -204,6 +204,7 @@ class MEDIA_GPU_EXPORT VaapiVideoDecodeAccelerator
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix
index 707bf2056f0e..530a4c8a4aea 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/plugins.nix
@@ -4,7 +4,6 @@
 , nspr
 , nss
 , fetchzip
-, patchelfUnstable
 , enablePepperFlash ? false
 
 , upstream-info
@@ -45,11 +44,11 @@ let
 
   flash = stdenv.mkDerivation rec {
     pname = "flashplayer-ppapi";
-    version = "32.0.0.387";
+    version = "32.0.0.433";
 
     src = fetchzip {
       url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
-      sha256 = "1igs8nh3zpfcps97ahzh7kknx3rddh6yliig8lxf6jskbpf0qgzf";
+      sha256 = "1wfwnmai6wnwi6cfxwqix6n471jjyl6nc7p67sa7cfqwg16b53kx";
       stripRoot = false;
     };
 
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/update.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/update.nix
deleted file mode 100644
index 6dff17c69ddb..000000000000
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/update.nix
+++ /dev/null
@@ -1,271 +0,0 @@
-let maybePkgs = import ../../../../../. {}; in
-
-{ stdenv     ? maybePkgs.stdenv
-, runCommand ? maybePkgs.runCommand
-, fetchurl   ? maybePkgs.fetchurl
-, writeText  ? maybePkgs.writeText
-, curl       ? maybePkgs.curl
-, cacert     ? maybePkgs.cacert
-, nix        ? maybePkgs.nix
-}:
-
-let
-  inherit (stdenv) lib;
-
-  sources = if builtins.pathExists ./upstream-info.nix
-            then import ./upstream-info.nix
-            else {};
-
-  bucketURL = "https://commondatastorage.googleapis.com/"
-            + "chromium-browser-official";
-
-  mkVerURL = version: "${bucketURL}/chromium-${version}.tar.xz";
-
-  debURL = "https://dl.google.com/linux/chrome/deb/pool/main/g";
-
-  getDebURL = channelName: version: arch: mirror: let
-    packageSuffix = if channelName == "dev" then "unstable" else channelName;
-    packageName = "google-chrome-${packageSuffix}";
-  in "${mirror}/${packageName}/${packageName}_${version}-1_${arch}.deb";
-
-  # Untrusted mirrors, don't try to update from them!
-  debMirrors = [
-    "http://95.31.35.30/chrome/pool/main/g"
-    "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g"
-    "http://repo.fdzh.org/chrome/deb/pool/main/g"
-  ];
-
-in {
-  getChannel = channel: let
-    chanAttrs = builtins.getAttr channel sources;
-  in {
-    inherit channel;
-    inherit (chanAttrs) version;
-
-    main = fetchurl {
-      url = mkVerURL chanAttrs.version;
-      inherit (chanAttrs) sha256;
-    };
-
-    binary = fetchurl (let
-      mkUrls = arch: let
-        mkURLForMirror = getDebURL channel chanAttrs.version arch;
-      in map mkURLForMirror ([ debURL ] ++ debMirrors);
-    in if stdenv.is64bit && chanAttrs ? sha256bin64 then {
-      urls = mkUrls "amd64";
-      sha256 = chanAttrs.sha256bin64;
-    } else if !stdenv.is64bit && chanAttrs ? sha256bin32 then {
-      urls = mkUrls "i386";
-      sha256 = chanAttrs.sha256bin32;
-    } else throw "No Chrome plugins are available for your architecture.");
-  };
-
-  update = let
-    csv2nix = name: src: import (runCommand "${name}.nix" {
-      src = builtins.fetchurl src;
-    } ''
-      esc() { echo "\"$(echo "$1" | sed -e 's/"\\$/\\&/')\""; } # ohai emacs "
-      IFS=, read -r -a headings <<< "$(head -n1 "$src")"
-      echo "[" > "$out"
-      tail -n +2 "$src" | while IFS=, read -r -a line; do
-        echo "  {"
-        for idx in "''${!headings[@]}"; do
-          echo "    $(esc "''${headings[idx]}") = $(esc ''${line[$idx]});"
-        done
-        echo "  }"
-      done >> "$out"
-      echo "]" >> "$out"
-    '');
-
-    channels = lib.fold lib.recursiveUpdate {} (map (attrs: {
-      ${attrs.os}.${attrs.channel} = attrs // {
-        history = let
-          drvName = "omahaproxy-${attrs.os}.${attrs.channel}-info";
-          history = csv2nix drvName "http://omahaproxy.appspot.com/history";
-          cond = h: attrs.os == h.os && attrs.channel == h.channel
-                 && lib.versionOlder h.version attrs.current_version;
-          # Note that this is a *reverse* sort!
-          sorter = a: b: lib.versionOlder b.version a.version;
-          sorted = builtins.sort sorter (lib.filter cond history);
-        in map (lib.flip removeAttrs ["os" "channel"]) sorted;
-        version = attrs.current_version;
-      };
-    }) (csv2nix "omahaproxy-info" "http://omahaproxy.appspot.com/all?csv=1"));
-
-    /*
-      XXX: This is essentially the same as:
-
-        builtins.tryEval (builtins.fetchurl url)
-
-      ... except that tryEval on fetchurl isn't working and doesn't catch
-      errors for fetchurl, so we go for a different approach.
-
-      We only have fixed-output derivations that can have networking access, so
-      we abuse SHA1 and its weaknesses to forge a fixed-output derivation which
-      is not so fixed, because it emits different contents that have the same
-      SHA1 hash.
-
-      Using this method, we can distinguish whether the URL is available or
-      whether it's not based on the actual content.
-
-      So let's use tryEval as soon as it's working with fetchurl in Nix.
-    */
-    tryFetch = url: let
-      # SHA1 hash collisions from https://shattered.io/static/shattered.pdf:
-      collisions = runCommand "sha1-collisions" {
-        outputs = [ "out" "good" "bad" ];
-        base64 = ''
-          QlpoOTFBWSZTWbL5V5MABl///////9Pv///v////+/////HDdK739/677r+W3/75rUNr4
-          Aa/AAAAAAACgEVTRtQDQAaA0AAyGmjTQGmgAAANGgAaMIAYgGgAABo0AAAAAADQAIAGQ0
-          MgDIGmjQA0DRk0AaMQ0DQAGIANGgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk
-          0AaMQ0DQAGIANGgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk0AaMQ0DQAGIAN
-          GgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk0AaMQ0DQAGIANGgAAGRoNGQMRp
-          o0GIGgBoGQAABVTUExEZATTICnkxNR+p6E09JppoyamjGhkm0ammIyaekbUejU9JiGnqZ
-          qaaDxJ6m0JkZMQ2oaYmJ6gxqMyE2TUzJqfItligtJQJfYbl9Zy9QjQuB5mHQRdSSXCCTH
-          MgmSDYmdOoOmLTBJWiCpOhMQYpQlOYpJjn+wQUJSTCEpOMekaFaaNB6glCC0hKEJdHr6B
-          mUIHeph7YxS8WJYyGwgWnMTFJBDFSxSCCYljiEk7HZgJzJVDHJxMgY6tCEIIWgsKSlSZ0
-          S8GckoIIF+551Ro4RCw260VCEpWJSlpWx/PMrLyVoyhWMAneDilBcUIeZ1j6NCkus0qUC
-          Wnahhk5KT4GpWMh3vm2nJWjTL9Qg+84iExBJhNKpbV9tvEN265t3fu/TKkt4rXFTsV+Nc
-          upJXhOhOhJMQQktrqt4K8mSh9M2DAO2X7uXGVL9YQxUtzQmS7uBndL7M6R7vX869VxqPu
-          renSuHYNq1yTXOfNWLwgvKlRlFYqLCs6OChDp0HuTzCWscmGudLyqUuwVGG75nmyZhKpJ
-          yOE/pOZyHyrZxGM51DYIN+Jc8yVJgAykxKCEtW55MlfudLg3KG6TtozalunXrroSxUpVL
-          StWrWLFihMnVpkyZOrQnUrE6xq1CGtJlbAb5ShMbV1CZgqlKC0wCFCpMmUKSEkvFLaZC8
-          wHOCVAlvzaJQ/T+XLb5Dh5TNM67p6KZ4e4ZSGyVENx2O27LzrTIteAreTkMZpW95GS0CE
-          JYhMc4nToTJ0wQhKEyddaLb/rTqmgJSlkpnALxMhlNmuKEpkEkqhKUoEq3SoKUpIQcDgW
-          lC0rYahMmLuPQ0fHqZaF4v2W8IoJ2EhMhYmSw7qql27WJS+G4rUplToFi2rSv0NSrVvDU
-          pltQ8Lv6F8pXyxmFBSxiLSxglNC4uvXVKmAtusXy4YXGX1ixedEvXF1aX6t8adYnYCpC6
-          rW1ZzdZYlCCxKEv8vpbqdSsXl8v1jCQv0KEPxPTa/5rtWSF1dSgg4z4KjfIMNtgwWoWLE
-          sRhKxsSA9ji7V5LRPwtumeQ8V57UtFSPIUmtQdOQfseI2Ly1DMtk4Jl8n927w34zrWG6P
-          i4jzC82js/46Rt2IZoadWxOtMInS2xYmcu8mOw9PLYxQ4bdfFw3ZPf/g2pzSwZDhGrZAl
-          9lqky0W+yeanadC037xk496t0Dq3ctfmqmjgie8ln9k6Q0K1krb3dK9el4Xsu44LpGcen
-          r2eQZ1s1IhOhnE56WnXf0BLWn9Xz15fMkzi4kpVxiTKGEpffErEEMvEeMZhUl6yD1SdeJ
-          YbxzGNM3ak2TAaglLZlDCVnoM6wV5DRrycwF8Zh/fRsdmhkMfAO1duwknrsFwrzePWeMw
-          l107DWzymxdQwiSXx/lncnn75jL9mUzw2bUDqj20LTgtawxK2SlQg1CCZDQMgSpEqLjRM
-          sykM9zbSIUqil0zNk7Nu+b5J0DKZlhl9CtpGKgX5uyp0idoJ3we9bSrY7PupnUL5eWiDp
-          V5mmnNUhOnYi8xyClkLbNmAXyoWk7GaVrM2umkbpqHDzDymiKjetgzTocWNsJ2E0zPcfh
-          t46J4ipaXGCfF7fuO0a70c82bvqo3HceIcRlshgu73seO8BqlLIap2z5jTOY+T2ucCnBt
-          Atva3aHdchJg9AJ5YdKHz7LoA3VKmeqxAlFyEnQLBxB2PAhAZ8KvmuR6ELXws1Qr13Nd1
-          i4nsp189jqvaNzt+0nEnIaniuP1+/UOZdyfoZh57ku8sYHKdvfW/jYSUks+0rK+qtte+p
-          y8jWL9cOJ0fV8rrH/t+85/p1z2N67p/ZsZ3JmdyliL7lrNxZUlx0MVIl6PxXOUuGOeArW
-          3vuEvJ2beoh7SGyZKHKbR2bBWO1d49JDIcVM6lQtu9UO8ec8pOnXmkcponBPLNM2CwZ9k
-          NC/4ct6rQkPkQHMcV/8XckU4UJCy+VeTA==
-        '';
-      } ''
-        echo "$base64" | base64 -d | tar xj
-        mv good.pdf "$good"
-        mv bad.pdf "$bad"
-        touch "$out"
-      '';
-
-      cacheVal = let
-        urlHash = builtins.hashString "sha256" url;
-        timeSlice = builtins.currentTime / 600;
-      in "${urlHash}-${toString timeSlice}";
-
-    in {
-      success = import (runCommand "check-success" {
-        result = stdenv.mkDerivation {
-          name = "tryfetch-${cacheVal}";
-          inherit url;
-
-          outputHash = "d00bbe65d80f6d53d5c15da7c6b4f0a655c5a86a";
-          outputHashMode = "flat";
-          outputHashAlgo = "sha1";
-
-          nativeBuildInputs = [ curl ];
-          preferLocalBuild = true;
-
-          inherit (collisions) good bad;
-
-          buildCommand = ''
-            if SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt" \
-               curl -s -L -f -I "$url" > /dev/null; then
-              cp "$good" "$out"
-            else
-              cp "$bad" "$out"
-            fi
-          '';
-
-          impureEnvVars = lib.fetchers.proxyImpureEnvVars;
-        };
-        inherit (collisions) good;
-      } ''
-        if cmp -s "$result" "$good"; then
-          echo true > "$out"
-        else
-          echo false > "$out"
-        fi
-      '');
-      value = builtins.fetchurl url;
-    };
-
-    fetchLatest = channel: let
-      result = tryFetch (mkVerURL channel.version);
-    in if result.success then result.value else fetchLatest (channel // {
-      version = if channel.history != []
-                then (lib.head channel.history).version
-                else throw "Unfortunately there's no older version than " +
-                           "${channel.version} available for channel " +
-                           "${channel.channel} on ${channel.os}.";
-      history = lib.tail channel.history;
-    });
-
-    getHash = path: import (runCommand "gethash.nix" {
-      inherit path;
-      nativeBuildInputs = [ nix ];
-    } ''
-      sha256="$(nix-hash --flat --base32 --type sha256 "$path")"
-      echo "\"$sha256\"" > "$out"
-    '');
-
-    isLatest = channel: version: let
-      ourVersion = sources.${channel}.version or null;
-    in if ourVersion == null then false
-       else lib.versionOlder version sources.${channel}.version
-         || version == sources.${channel}.version;
-
-    # We only support GNU/Linux right now.
-    linuxChannels = let
-      genLatest = channelName: channel: let
-        newUpstream = {
-          inherit (channel) version;
-          sha256 = getHash (fetchLatest channel);
-        };
-        keepOld = let
-          oldChannel = sources.${channelName};
-        in {
-          inherit (oldChannel) version sha256;
-        } // lib.optionalAttrs (oldChannel ? sha256bin32) {
-          inherit (oldChannel) sha256bin32;
-        } // lib.optionalAttrs (oldChannel ? sha256bin64) {
-          inherit (oldChannel) sha256bin64;
-        };
-      in if isLatest channelName channel.version then keepOld else newUpstream;
-    in lib.mapAttrs genLatest channels.linux;
-
-    getLinuxFlash = channelName: channel: let
-      inherit (channel) version;
-      fetchArch = arch: tryFetch (getDebURL channelName version arch debURL);
-      packages = lib.genAttrs ["i386" "amd64"] fetchArch;
-      isNew = arch: attr: !(builtins.hasAttr attr channel)
-                       && packages.${arch}.success;
-    in channel // lib.optionalAttrs (isNew "i386" "sha256bin32") {
-      sha256bin32 = getHash (packages.i386.value);
-    } // lib.optionalAttrs (isNew "amd64" "sha256bin64") {
-      sha256bin64 = getHash (packages.amd64.value);
-    };
-
-    newChannels = lib.mapAttrs getLinuxFlash linuxChannels;
-
-    dumpAttrs = indent: attrs: let
-      mkVal = val: if lib.isAttrs val then dumpAttrs (indent + 1) val
-                   else "\"${lib.escape ["$" "\\" "\""] (toString val)}\"";
-      mkIndent = level: lib.concatStrings (builtins.genList (_: "  ") level);
-      mkAttr = key: val: "${mkIndent (indent + 1)}${key} = ${mkVal val};\n";
-      attrLines = lib.mapAttrsToList mkAttr attrs;
-    in "{\n" + (lib.concatStrings attrLines) + (mkIndent indent) + "}";
-  in writeText "chromium-new-upstream-info.nix" ''
-    # This file is autogenerated from update.sh in the same directory.
-    ${dumpAttrs 0 newChannels}
-  '';
-}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/update.py b/nixpkgs/pkgs/applications/networking/browsers/chromium/update.py
new file mode 100755
index 000000000000..bfc7f0d2478c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/update.py
@@ -0,0 +1,77 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i python -p python3 nix
+
+import csv
+import json
+import subprocess
+import sys
+
+from codecs import iterdecode
+from collections import OrderedDict
+from os.path import abspath, dirname
+from urllib.request import urlopen
+
+HISTORY_URL = 'https://omahaproxy.appspot.com/history?os=linux'
+DEB_URL = 'https://dl.google.com/linux/chrome/deb/pool/main/g'
+BUCKET_URL = 'https://commondatastorage.googleapis.com/chromium-browser-official'
+
+JSON_PATH = dirname(abspath(__file__)) + '/upstream-info.json'
+
+def load_json(path):
+    with open(path, 'r') as f:
+        return json.load(f)
+
+def nix_prefetch_url(url, algo='sha256'):
+    print(f'nix-prefetch-url {url}')
+    out = subprocess.check_output(['nix-prefetch-url', '--type', algo, url])
+    return out.decode('utf-8').rstrip()
+
+channels = {}
+last_channels = load_json(JSON_PATH)
+
+print(f'GET {HISTORY_URL}', file=sys.stderr)
+with urlopen(HISTORY_URL) as resp:
+    builds = csv.DictReader(iterdecode(resp, 'utf-8'))
+    for build in builds:
+        channel_name = build['channel']
+
+        # If we've already found a newer build for this channel, we're
+        # no longer interested in it.
+        if channel_name in channels:
+            continue
+
+        # If we're back at the last build we used, we don't need to
+        # keep going -- there's no new version available, and we can
+        # just reuse the info from last time.
+        if build['version'] == last_channels[channel_name]['version']:
+            channels[channel_name] = last_channels[channel_name]
+            continue
+
+        channel = {'version': build['version']}
+        suffix = 'unstable' if channel_name == 'dev' else channel_name
+
+        try:
+            channel['sha256'] = nix_prefetch_url(f'{BUCKET_URL}/chromium-{build["version"]}.tar.xz')
+            channel['sha256bin64'] = nix_prefetch_url(f'{DEB_URL}/google-chrome-{suffix}/google-chrome-{suffix}_{build["version"]}-1_amd64.deb')
+        except subprocess.CalledProcessError:
+            # This build isn't actually available yet.  Continue to
+            # the next one.
+            continue
+
+        channels[channel_name] = channel
+
+with open(JSON_PATH, 'w') as out:
+    def get_channel_key(item):
+        channel_name = item[0]
+        if channel_name == 'stable':
+            return 0
+        elif channel_name == 'beta':
+            return 1
+        elif channel_name == 'dev':
+            return 2
+        else:
+            print(f'Error: Unexpected channel: {channel_name}', file=sys.stderr)
+            sys.exit(1)
+    sorted_channels = OrderedDict(sorted(channels.items(), key=get_channel_key))
+    json.dump(sorted_channels, out, indent=2)
+    out.write('\n')
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/update.sh b/nixpkgs/pkgs/applications/networking/browsers/chromium/update.sh
deleted file mode 100755
index ea67a62c107a..000000000000
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/update.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh -e
-cd "$(dirname "$0")"
-sp="$(nix-build --builders "" -Q --no-out-link update.nix -A update)"
-cat "$sp" > upstream-info.nix
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
new file mode 100644
index 000000000000..ec8fc3407d25
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -0,0 +1,17 @@
+{
+  "stable": {
+    "version": "85.0.4183.121",
+    "sha256": "0a1xn39kmvyfpal6pgnylpy30z0322p3v7sx6vxi0r2naiz58670",
+    "sha256bin64": "08vqf1v91703aik47344bl409rsl4myar9bsd2lsvzqncncwsaca"
+  },
+  "beta": {
+    "version": "86.0.4240.42",
+    "sha256": "06cfhiym9xmz2q86v6b6xcicrrp2pmr7karavylzz4fqvwd2v6fa",
+    "sha256bin64": "1z5zmdc2i31iimps7p5z43vv4qi83c8ljb7x68zc1rvf8x62p7xj"
+  },
+  "dev": {
+    "version": "87.0.4263.3",
+    "sha256": "1ybfrlm4417lpbg5qcwhq5p6nnxrw68wzyy5zvb1sg1ma8s9hhkk",
+    "sha256bin64": "1f7a272kalglmdwmrrzb4iw3crvvpv3mhxca5jh75qpldn4gby6m"
+  }
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix
deleted file mode 100644
index 65dda4931422..000000000000
--- a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-# This file is autogenerated from update.sh in the same directory.
-{
-  beta = {
-    sha256 = "0wsqxq8xxcafmjxsjkagysrcbr6qryiyqn6m3ysp256aam7z3d88";
-    sha256bin64 = "03jff1sdv05hbn37cw0ij0r4rils0q11lnnhxg52igg633jzwyc1";
-    version = "84.0.4147.45";
-  };
-  dev = {
-    sha256 = "16rmzyzjmxmhmr5yqbzqbwf5sq94iqcwlm04fkafiwcycd17nyhs";
-    sha256bin64 = "0wjmc1wdmwiq9d1f5gk4c9jkj1p116kaz9nb0hvhjf01iv07xl2m";
-    version = "85.0.4168.2";
-  };
-  stable = {
-    sha256 = "0bvy17ymlih87n4ymnzvyn0m34ghmr1yasvy7gxv02qbw6i57lfg";
-    sha256bin64 = "00hjr5y0cczs6h2pxrigpmjiv24456948v32q7mr7x5ysr5kxpn6";
-    version = "83.0.4103.106";
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/elinks/debian-patches.nix b/nixpkgs/pkgs/applications/networking/browsers/elinks/debian-patches.nix
new file mode 100644
index 000000000000..07df14767aa6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/elinks/debian-patches.nix
@@ -0,0 +1,34 @@
+# Generated by debian-patches.sh from debian-patches.txt
+let
+  prefix = "https://sources.debian.org/data/main/e/elinks/0.13.2-1/debian/patches";
+in
+[
+  {
+    url = "${prefix}/03_459467_ui.leds.enable_0.diff";
+    sha256 = "0l35lglmnvyzz3xyy18nksra14gsp7yc67rskbzmr61szg8b9jqr";
+  }
+  {
+    url = "${prefix}/04_436817_nostrip.diff";
+    sha256 = "0ixvxaba1ww375gpdh7r67srp3xsfb5vyz2sfv1pgj6mczwg8v24";
+  }
+  {
+    url = "${prefix}/07_617713_cache_control.diff";
+    sha256 = "0drn4r33ywvmihr0drsp2jwz7mlf5z5fv8ra7fpkdavx45xqaf15";
+  }
+  {
+    url = "${prefix}/10-reproducible-build.diff";
+    sha256 = "024yp3xsh0hw29l1wikfmk9j3mqval6pdr4xi7rzffrlaknh58h5";
+  }
+  {
+    url = "${prefix}/14_debug_disable_Werror.diff";
+    sha256 = "0s620r88ikfljflb5nd133cww2wc0i85ag8lzpvrsmg0q00hfmax";
+  }
+  {
+    url = "${prefix}/16_POST_BUFFER_SIZE.diff";
+    sha256 = "17vkvy0d0rabmgk8iqwgdsrgjn6dbb9cf6760qbz82zlb37s09nh";
+  }
+  {
+    url = "${prefix}/11-reproducible-build.diff";
+    sha256 = "1z17g9z68lh12fs6fkralfghh8bs1bs5mlq83d15l4bn3za3s0sl";
+  }
+]
diff --git a/nixpkgs/pkgs/applications/networking/browsers/elinks/debian-patches.txt b/nixpkgs/pkgs/applications/networking/browsers/elinks/debian-patches.txt
new file mode 100644
index 000000000000..29efcf2d7a80
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/elinks/debian-patches.txt
@@ -0,0 +1,8 @@
+elinks/0.13.2-1
+03_459467_ui.leds.enable_0.diff
+04_436817_nostrip.diff
+07_617713_cache_control.diff
+10-reproducible-build.diff
+14_debug_disable_Werror.diff
+16_POST_BUFFER_SIZE.diff
+11-reproducible-build.diff
diff --git a/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix b/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
index 985497a095cb..ccdd591cdb17 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/elinks/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ncurses, xlibsWrapper, bzip2, zlib, openssl
+{ stdenv, fetchurl, fetchpatch, ncurses, xlibsWrapper, bzip2, zlib, brotli, openssl, autoconf, automake, gettext, pkgconfig, libev
 , gpm
 , # Incompatible licenses, LGPLv3 - GPLv2
   enableGuile        ? false,                                         guile ? null
@@ -10,24 +10,33 @@
 assert enableGuile -> guile != null;
 assert enablePython -> python != null;
 
-stdenv.mkDerivation {
-  name = "elinks-0.12pre6";
+stdenv.mkDerivation rec {
+  pname = "elinks-0.13.2";
+  version = "0.13.2";
 
   src = fetchurl {
-    url = "http://elinks.or.cz/download/elinks-0.12pre6.tar.bz2";
-    sha256 = "1nnakbi01g7yd3zqwprchh5yp45br8086b0kbbpmnclabcvlcdiq";
+    url = "https://deb.debian.org/debian/pool/main/e/elinks/elinks_${version}.orig.tar.gz";
+    sha256 = "0xkpqnqy0x8sizx4snca0pw3q98gkhnw5a05yf144j1x1y2nb14c";
   };
 
-  patches = [
-    ./gc-init.patch
-    ./openssl-1.1.patch
-  ];
+  patches = map fetchurl (import ./debian-patches.nix);
 
-  buildInputs = [ ncurses xlibsWrapper bzip2 zlib openssl spidermonkey gpm ]
+  postPatch = (stdenv.lib.optional stdenv.isDarwin) ''
+    patch -p0 < ${fetchpatch {
+      url = "https://raw.githubusercontent.com/macports/macports-ports/72bed7749e76b9092ddd8d9fe2d8449c5afb1d71/www/elinks/files/patch-perl.diff";
+      sha256 = "14q9hk3kg2n2r5b062hvrladp7b4yzysvhq07903w9kpg4zdbyqh";
+    }}
+  '';
+
+  buildInputs = [ ncurses xlibsWrapper bzip2 zlib brotli openssl libev ]
+    ++ stdenv.lib.optional stdenv.isLinux gpm
     ++ stdenv.lib.optional enableGuile guile
     ++ stdenv.lib.optional enablePython python
     ++ stdenv.lib.optional enablePerl perl
+    ++ stdenv.lib.optional enableSpidermonkey spidermonkey
     ;
+  
+  nativeBuildInputs = [ autoconf automake gettext pkgconfig ];
 
   configureFlags = [
     "--enable-finger"
@@ -36,18 +45,24 @@ stdenv.mkDerivation {
     "--enable-cgi"
     "--enable-bittorrent"
     "--enable-nntp"
-    "--with-openssl=${openssl.dev}"
-    "--with-bzip2=${bzip2.dev}"
+    "--enable-256-colors"
+    "--with-libev"
   ] ++ stdenv.lib.optional enableGuile        "--with-guile"
     ++ stdenv.lib.optional enablePython       "--with-python"
     ++ stdenv.lib.optional enablePerl         "--with-perl"
     ++ stdenv.lib.optional enableSpidermonkey "--with-spidermonkey=${spidermonkey}"
     ;
+  
+  preConfigure = ''
+    patchShebangs ./autogen.sh
+    ./autogen.sh
+  '';
 
-  meta = {
-    description = "Full-featured text-mode web browser";
-    homepage = "http://elinks.or.cz";
-    license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.linux;
+  meta = with stdenv.lib; {
+    description = "Full-featured text-mode web browser (package based on the fork felinks)";
+    homepage = "https://github.com/rkd77/felinks";
+    license = licenses.gpl2;
+    platforms = with platforms; linux ++ darwin;
+    maintainers = with maintainers; [ iblech ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/elinks/gc-init.patch b/nixpkgs/pkgs/applications/networking/browsers/elinks/gc-init.patch
deleted file mode 100644
index de06f563d6e6..000000000000
--- a/nixpkgs/pkgs/applications/networking/browsers/elinks/gc-init.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Fix libgc initialization in the presence of Guile 2.0.
-
---- elinks-0.12pre5/src/main/main.c	2009-07-07 14:23:17.000000000 +0200
-+++ elinks-0.12pre5/src/main/main.c	2011-04-28 23:20:15.000000000 +0200
-@@ -339,6 +339,11 @@ int
- main(int argc, char *argv[])
- {
- #ifdef CONFIG_GC
-+	/* Guile 2.x uses libgc too and it initializes it this way, so we
-+	 * must make sure to initialize it the same way, or it will just
-+	 * segfault.  */
-+	GC_all_interior_pointers = 0;
-+
- 	GC_INIT();
- 	GC_set_warn_proc(gc_warning);
- #endif
-
diff --git a/nixpkgs/pkgs/applications/networking/browsers/elinks/openssl-1.1.patch b/nixpkgs/pkgs/applications/networking/browsers/elinks/openssl-1.1.patch
deleted file mode 100644
index 22792b6c0790..000000000000
--- a/nixpkgs/pkgs/applications/networking/browsers/elinks/openssl-1.1.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-diff --git a/src/network/ssl/socket.c b/src/network/ssl/socket.c
-index 45b4b4a8..0385a431 100644
---- a/src/network/ssl/socket.c
-+++ b/src/network/ssl/socket.c
-@@ -67,7 +67,9 @@ static void
- ssl_set_no_tls(struct socket *socket)
- {
- #ifdef CONFIG_OPENSSL
--	((ssl_t *) socket->ssl)->options |= SSL_OP_NO_TLSv1;
-+#ifdef SSL_OP_NO_TLSv1
-+	SSL_set_options((ssl_t *)socket->ssl, SSL_OP_NO_TLSv1);
-+#endif
- #elif defined(CONFIG_GNUTLS)
- 	{
- 		/* GnuTLS does not support SSLv2 because it is "insecure".
-@@ -145,9 +147,11 @@ ssl_connect(struct socket *socket)
- 		}
- 
- 		if (client_cert) {
--			SSL_CTX *ctx = ((SSL *) socket->ssl)->ctx;
-+			SSL_CTX *ctx = SSL_get_SSL_CTX((SSL *) socket->ssl);
- 
--			SSL_CTX_use_certificate_chain_file(ctx, client_cert);
-+			SSL_CTX_use_certificate_chain_file(
-+					(SSL *) socket->ssl,
-+					client_cert);
- 			SSL_CTX_use_PrivateKey_file(ctx, client_cert,
- 						    SSL_FILETYPE_PEM);
- 		}
-diff --git a/src/network/ssl/ssl.c b/src/network/ssl/ssl.c
-index c008121d..c06a80a7 100644
---- a/src/network/ssl/ssl.c
-+++ b/src/network/ssl/ssl.c
-@@ -50,11 +50,16 @@ init_openssl(struct module *module)
- 	 * cannot initialize the PRNG and so every attempt to use SSL fails.
- 	 * It's actually an OpenSSL FAQ, and according to them, it's up to the
- 	 * application coders to seed the RNG. -- William Yodlowsky */
--	if (RAND_egd(RAND_file_name(f_randfile, sizeof(f_randfile))) < 0) {
-+	RAND_file_name(f_randfile, sizeof(f_randfile));
-+#ifdef HAVE_RAND_EGD
-+	if (RAND_egd(f_randfile) < 0) {
- 		/* Not an EGD, so read and write to it */
-+#endif
- 		if (RAND_load_file(f_randfile, -1))
- 			RAND_write_file(f_randfile);
-+#ifdef HAVE_RAND_EGD
- 	}
-+#endif
- 
- 	SSLeay_add_ssl_algorithms();
- 	context = SSL_CTX_new(SSLv23_client_method());
diff --git a/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix b/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix
index cfccacf1ae08..a16beb652089 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/eolie/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchgit, meson, ninja, pkgconfig
-, python3, gtk3, libsecret, gst_all_1, webkitgtk
+{ stdenv, fetchgit, meson, ninja, pkgconfig, nix-update-script
+, python3, gtk3, libsecret, gst_all_1, webkitgtk, glib
 , glib-networking, gtkspell3, hunspell, desktop-file-utils
-, gobject-introspection, wrapGAppsHook }:
+, gobject-introspection, wrapGAppsHook, gnome3 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "eolie";
-  version = "0.9.63";
+  version = "0.9.99";
 
   format = "other";
   doCheck = false;
@@ -14,7 +14,7 @@ python3.pkgs.buildPythonApplication rec {
     url = "https://gitlab.gnome.org/World/eolie";
     rev = "refs/tags/${version}";
     fetchSubmodules = true;
-    sha256 = "0z8gcfg7i842rr5p8r3vqa31kf7nnj1yv3afax3jzf4zbnhb8wm0";
+    sha256 = "077jww5mqg6bbqbj0j1gss2j3dxlfr2xw8bc43k8vg52drqg6g8w";
   };
 
   nativeBuildInputs = [
@@ -33,18 +33,23 @@ python3.pkgs.buildPythonApplication rec {
     gst-plugins-base
     gst-plugins-ugly
     gstreamer
+    gnome3.gnome-settings-daemon
     gtk3
     gtkspell3
     hunspell
     libsecret
-    webkitgtk
+    (webkitgtk.override {enableGLES = false;})
+    glib
   ];
 
   propagatedBuildInputs = with python3.pkgs; [
+    pyfxa
     beautifulsoup4
+    cryptography
     pycairo
     pygobject3
     python-dateutil
+    pycrypto
   ];
 
   postPatch = ''
@@ -52,11 +57,21 @@ python3.pkgs.buildPythonApplication rec {
     patchShebangs meson_post_install.py
   '';
 
+  dontWrapGApps = true;
   preFixup = ''
     buildPythonPath "$out $propagatedBuildInputs"
     patchPythonScript "$out/libexec/eolie-sp"
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+  strictDeps = false;
+
   meta = with stdenv.lib; {
     description = "A new GNOME web browser";
     homepage = "https://wiki.gnome.org/Apps/Eolie";
diff --git a/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix b/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix
index 69e8179489cf..550076787788 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , desktop-file-utils
 , vala
 , gettext
@@ -55,7 +56,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix b/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix
index f9e814a0941b..3c2aace79b26 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/falkon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, mkDerivation, lib, fetchFromGitHub
+{ stdenv, mkDerivation, lib, fetchFromGitHub, fetchpatch
 , cmake, extra-cmake-modules, pkgconfig, qmake
 , libpthreadstubs, libxcb, libXdmcp
 , qtsvg, qttools, qtwebengine, qtx11extras
@@ -17,6 +17,14 @@ mkDerivation rec {
     sha256 = "1w64slh9wpcfi4v7ds9wci1zvwh0dh787ndpi6hd4kmdgnswvsw7";
   };
 
+  patches = [
+    # fixes build with qt5 5.14
+    (fetchpatch {
+      url = "https://github.com/KDE/falkon/commit/bbde5c6955c43bc744ed2c4024598495de908f2a.diff";
+      sha256 = "0f7qcddvvdnij3di0acg7jwvwfwyd0xizlav4wccclbj8x7qp5ld";
+    })
+  ];
+
   preConfigure = ''
     export NONBLOCK_JS_DIALOGS=true
     export KDE_INTEGRATION=true
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
index 601e4a77db5b..7548eb94fa6d 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/beta_sources.nix
@@ -1,965 +1,965 @@
 {
-  version = "78.0b2";
+  version = "81.0b4";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/ach/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ach/firefox-81.0b4.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha512 = "f70d001f2415f46f0a2fddb7a3de19d0b4be6fb185b1e4e875bb3f374b9e73f65369117b197ddeea7cea72bf8993984ff166d0a58dd9fcea1a555db19df242af";
+      sha256 = "4b133dd14e8ce1b934e482c4f7f7b5ca4b58751181bed89f6573ba5994ebe644";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/af/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/af/firefox-81.0b4.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha512 = "9376bfa53068581a4bcbbf2fa7fe946d3ae006770edef1060f82b0c1722c90712c65cd86e89292c03167bebbe3e67c5b3215b88e11681c723f430470f84e685c";
+      sha256 = "8e50a0845eb058ee853fe40b13c88d764e721f7f8ac2eb54695049ab2a66e3e9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/an/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/an/firefox-81.0b4.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha512 = "51b4294f4ecd8716b875060b219af558df8298113c487f24a23c0e598ef7c5516fdab9a888022c4ad6679efdf0cd86cdb601179c146e6b97ccd332d22f0d08a6";
+      sha256 = "3edf8e157cac424b1cbfff019240877e7b7c3bf5ed1b576580569c155c5dd660";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/ar/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ar/firefox-81.0b4.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha512 = "4fc9a968ffaa96019819603ab9788ef0580f43da222c899c1af68db2e8f4e9d056356ea99d27481bb9b7eb451504bbe31fb857bd511d1862cb366ad4177616e2";
+      sha256 = "b2167ff357963e3295eed2ed423a1c3bcf62d645329b8f4cf817ad3c0e101c97";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/ast/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ast/firefox-81.0b4.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha512 = "c70026f3a7ec4572750c01df1d7ab5859afd91dd12b242534c5afbfeaf99dfe2585655d5d87d861f5211cef6cf67a0ab177190adcfca0697a89c7a6f7de022c4";
+      sha256 = "805a87a99a417ff4b762c01a9a2b88c7963f53a04fc19b42015db304b15f4bbe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/az/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/az/firefox-81.0b4.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha512 = "005b79149215e2f85851900e08ffb1214f8b100a0a1bcf73365115769f8744e687f9b0ff8500a40cc48dc53cb203d33b757153266157cda3406532e5a1cb0c5a";
+      sha256 = "79c61c9515a683731649bcb5d36b26b95dd56165765e5a952339910310c9d259";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/be/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/be/firefox-81.0b4.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha512 = "11e1ec1146b0688ccadf1c9ce4c219a722533ecd00a3df828e0519c2b49bdb66280aee053254fecd00fc90e0d577de167ea3c1e146e2f9c351b9bfe4756c21eb";
+      sha256 = "318fece7d1ad734f6a19faa7003e060b1254b31bf62e59580c70a64c4a167ec6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/bg/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/bg/firefox-81.0b4.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha512 = "4a8cc34e0a59d9000b62181461633863583c2f35e50dd7e2de8307b0d537e0f3b439112b2879a95c9a4341a01b361971f0160abd9409be1f4169cad44c3c3825";
+      sha256 = "55616606306dbd0933240d718fef8e83004fd65e4f53dd18f1601f09d0b94e92";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/bn/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/bn/firefox-81.0b4.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha512 = "8330315eb21da9da68840bfa64e8f4a150fd4df5e12d10ebd504f38dacab17cf43a246c10cd77ccb6fafbd8f4094d1f6ede53b623308fae90e161d4cf86e6fe6";
+      sha256 = "c38fdef89f6aee7bf03362d2edfe4dcc665d540b1e1dc1dad8c53db20d70087d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/br/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/br/firefox-81.0b4.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha512 = "cfd67e67af7d97f0bbae051b3c366fba48a09ec4615fa4ff178bc12610962952dd2584916df5a76e52a5f575fd4060e473ff4a2ccb63322f8cb8ed1a351b5a94";
+      sha256 = "c5ac1c8e9dc2f4c5a1a2b6e33bf699a823a9422bce46922bc36222700a29d2e5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/bs/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/bs/firefox-81.0b4.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha512 = "e4781c53f1eeae10b6af48c4841a2ecff7f82006ecdea50b3afd40d000af3d4d89806a5372feb13c5d44b04c0c7dca32a0ca6f2d9a138b393569a9f1d96d572c";
+      sha256 = "a18718ef7f467ed87c76816fb6797165db3e06bc166c5e88b526c9f2ce5c1d19";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/ca-valencia/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ca-valencia/firefox-81.0b4.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha512 = "9dc0395dd7f7e2c704a77deb4823882e1ea7c9ccc38bc49da4c906e70a009d912afb0cf05359d1f757b4591243091adc6890caaa85ee15cf1b2a26d2245cae58";
+      sha256 = "fcfccd0714c965801ce468f6817bf37eb074064e6e0b616c81be7218a6b632fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/ca/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ca/firefox-81.0b4.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha512 = "118980cb81ac4d84d456675db91d61ea54a35ad4796acc59434cfe294fd1e0355c1ee92a73de867b18ae04972a28d849d8ed4c8feb5dd6bacd1066175ae3968a";
+      sha256 = "5f08a2b2d357d5a6828865913b9e28fe90bda7a8ce17a0ea60effb25b8441b7a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/cak/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/cak/firefox-81.0b4.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha512 = "47f85a0a6dd1c8540abdb017de664577d9ca79da8057c26b84045fb2ae1fa3b03dafb6c067c9bfe485e0d208d114449ac3cc02274ffef6e80affde8c2ec0c530";
+      sha256 = "db41156b75e1148527c51b915e3d9367d1c36a8d24a52132d1cc9cfe63bd9db6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/cs/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/cs/firefox-81.0b4.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha512 = "0a51c2fbd9ea337487073b7c6e4fe616762019682b91cb9513f1a8a8436ec73f2c1175ee3fd66ce81084d0122f3f550fb49c5d91ac461bb6f2ac47d29dd69152";
+      sha256 = "d3287f28964581e63a3b1a5484e47e8ef33c136b39f13e07d6f3d555c27864cb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/cy/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/cy/firefox-81.0b4.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha512 = "aa795f346fe87ac8afbca19add1bcf6aaacdf051323e4dbe8f04fa83c27444d9814cd4b7ae169390fbe3c3987deed14e453f45800393c64d896b8607af05b65b";
+      sha256 = "f41fd34cf1cc72d5fc80113cdc9fae7f03f434e45e990e17a94dd68463464c49";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/da/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/da/firefox-81.0b4.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha512 = "80796ffe89d9dd15b354015585dd722da3047db5b8b15fb380f7566fd99792959133a100bebe7d4b77ce5dfa710117fab61f5f5d0569eae88284138718e5fa63";
+      sha256 = "dbbf1611913315ac5294f400c727cd5afbc832efbea56bd839b77cd4d6a5b823";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/de/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/de/firefox-81.0b4.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha512 = "a75dea0908d83630e2df0991250102fc8d3148644005e70e31a15cc626d189735565e49021de9ed766419873adcded2086186a520b6edd8c8f753710381e55e6";
+      sha256 = "1047799de5b42b5cb0827371872b7e85b93a4474bde9288da54a573841e156bd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/dsb/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/dsb/firefox-81.0b4.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha512 = "729e10b88c59a24b4d838b3888ed6ba910e28199211df046c1f09d68b19b5547e5e9953c131118fda4c302b23b09a5a8d6a78a6e220207701590d815af74097e";
+      sha256 = "602eaa32d32db35d6a6d07f1c0cc53eaa4e432b7ab81d1f23b47d3125ac98d24";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/el/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/el/firefox-81.0b4.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha512 = "862377ff91054392814f851da646f18a2e485753fce3338411fa590eb461100d94f5b9926fc97848e38d4d1715a8cbd82b87033575daf2e3cff00bddb5c7f165";
+      sha256 = "8a460f9542e213b1605265c6497742e7d55213ac91b42d00a15b3123b47754ef";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/en-CA/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/en-CA/firefox-81.0b4.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha512 = "5a02d99dad00e69f47117f41a0b5f48b3a52d64b1595f9c8cc13086ed0db67c7f9debee30c071140d633821fd42f588430bd8ef93a16bb80f0def1f965da7135";
+      sha256 = "9bcc44ca3f4192a2a7a001f27db6884dd481551663b6d0c348ed0b9281dabe87";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/en-GB/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/en-GB/firefox-81.0b4.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha512 = "a8fefe63ff03015f945d45294d20954808488bbbb8f28629ac0bd2309500f64b6c766a1c75cc2b340f65bb511d1a50516097ac82d7bc2f3e7f82ae88789aeb91";
+      sha256 = "9d241d56362ec52619ce02cdd2f11dc90c2e0f7c515c707ea56eca2e8f0eb306";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/en-US/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/en-US/firefox-81.0b4.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha512 = "73df2d07120716b9e25028f8fc46c0e0e671b6ae1b131f9045049c709a1d678f9227d882ebe2f496cf0dfb71ae7bdab4185015728d1bd8e2b3661acf74ee1573";
+      sha256 = "28972b08f8b3f2d19f5d50a2c9275fc459fc3e57df11c884149d1fdb9d99300b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/eo/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/eo/firefox-81.0b4.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha512 = "835944b50e3005cfa69c8c0aa0644d76ad2f953d1b01be6d019423a276f8ba5abc39cad0393356029f5bfd4d2edf6b94c653a1590017eaa4cd206161e3513350";
+      sha256 = "013caa4590462b4bc5dc09cb963cfd85cba4b5419111cdc87316574ca5691e80";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/es-AR/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/es-AR/firefox-81.0b4.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha512 = "7395feba72406eb9888a59587674e1ad0041fb8339fef29f2bf136a7a7a54aeeb082e9be897b2137ee2f48bb09c844ed153213393d0492b05b93ec13fb9852cc";
+      sha256 = "d6970ccf4d58e2f1219cb0d43a8788084d0863f0f349ab3292e182fb0201e860";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/es-CL/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/es-CL/firefox-81.0b4.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha512 = "ec654f43750239ba622b8e0dffe99acc7bd04144f8a116ffe2f40b3995ca37abfd94b6827cf3af916d0657e38041b8ae3e86c6f5c0d215b24fcabbc97accf51d";
+      sha256 = "76fb3c865b3efa1da1d34c8caa7b56b5b6d0af2cbbaeaef873fa96d2b8c93bb1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/es-ES/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/es-ES/firefox-81.0b4.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha512 = "65ad0d7c4d9d0ca6501b7c957175661bf692ee388679c435471af6199d4ed0e070168490c4dcb65d53b66d8b517c5271019f869af7a5048be81259c3d73d01ea";
+      sha256 = "7b41a2b297df4f0f6d4f44e1eb0ea0cbf02454382d0994f119a77876c578c4b6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/es-MX/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/es-MX/firefox-81.0b4.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha512 = "de8fd8cd130f6de8bd26ca054c8eb655de4c958d183cc05bcb41e64102697a4805abe706e760eaa32121e777f20170eaa48eb46db468a51c3c77fc74b4ca2626";
+      sha256 = "733b90640a30df66700397ab0cc2045fcbc25af94ef9f36463a191228b511b77";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/et/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/et/firefox-81.0b4.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha512 = "d39f4f6a65ae24aac5d4c541246ca5911d6af14cb851eef3869e9481f52c9dc593f5518d1c475dfd3a7f2f55d661463e0d6510e0267f46795b3282a6a26684ae";
+      sha256 = "027286d744b1d9f21157d8242445ccd7610a08d8d541d64635fc16549aac1b4d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/eu/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/eu/firefox-81.0b4.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha512 = "4661cf17da33ed88b8bb0ef8967809f0748c3cd1c8afaf22ba679aec95a9d0ee95cd5c1d08f7a449fafb55f49a32e2a4ef366d09056460985ee5b6999ae80181";
+      sha256 = "ff555da3aaf1abb2c384772b309fb4129dad57b9fd523fcabef5b2743d3063ce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/fa/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/fa/firefox-81.0b4.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha512 = "83181415420d2c8c5d56f81d40ad587c1ff1ccf21b1469a235efabad0960db78e912f459e7264f10cc9c2707fa3d6756b8c0b0f8321754e44ca5b319a952f9e2";
+      sha256 = "c99f9297568f93eda17058d96dfaf83e587907be9b5005e8f649f693662e4fb6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/ff/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ff/firefox-81.0b4.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha512 = "7821df8329fa367002e526bc792432631e098b1ee15e116af2b0ca06d629594d650e8310e701d5e02711bc438c7be9aac997686ee314d226b834ae9ad661fbbc";
+      sha256 = "91658b195a622afa3c6fde535391eff1aa6b70f4c0cccc5c55e56e6d66459435";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/fi/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/fi/firefox-81.0b4.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha512 = "9cb5b49cd326ba3f3effa2c844a9b2cec1f5e55a56f4e86514e6b8607dd8d3fdf88335614c974a8d2362f6967bca800032411e2d18a6ae5f1d44ea815baba134";
+      sha256 = "cbc70d2051c96813ab081251c339f6cacd29ff26bdd8174b35caf9905a874635";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/fr/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/fr/firefox-81.0b4.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha512 = "fcc80e9643c05ab9c581c9652bb24aa682b76c07702c3cc6bf4fb6abc3b5e198bba5691e0403cafacd1a52e45eeab707897603a24311a78a4b54da706208123b";
+      sha256 = "51890621c8c3c0e40103a10e705adbc860937e5dbbb8a3984eb71a5cae3ed63b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/fy-NL/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/fy-NL/firefox-81.0b4.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha512 = "6df59da001300587d579b6202b85c089867b2b762ddb4705cd44927f16766e8c85d9c72fa00a5c47904b07e475f7ebf4f26428b9f4af73684a1b8140a8a6e7ba";
+      sha256 = "5c3a982a51951901732ec7684514be233fe1c44780531fb38f7205724c241387";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/ga-IE/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ga-IE/firefox-81.0b4.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha512 = "b94d32ed84c6c06a060040fa349f470886ce06a33139b987a04540fd567f74be779a63d7a8e860b22abb8711114cbd2c22b882bfaea4baba1eaa73d9a31670ba";
+      sha256 = "04b5d338c7557f12fc6fb2206d444a8a00be6814b1ca26de4923449a4425b57d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/gd/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/gd/firefox-81.0b4.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha512 = "4dfd64b333aac4848dcf3ff44b56d2070dcaa5b81150d643e50c68a1c1c32e533f6b00befef3daa1fa6f6bfa8041593acfbef4fbf91694c9cbea931b0082f890";
+      sha256 = "6bc0de0ac627203b1ba035f7a7ba7dd19bd82a7730c526c217150cc5de668fd4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/gl/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/gl/firefox-81.0b4.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha512 = "b4f10e6c26cf215b810512786988af3e961383d5c00e4d0c6ff2e0cf45d4616a3f999837df0b15c642109f0a930a543192d69b38fd5ac6d2adc4b8e147c85297";
+      sha256 = "37522d032422af770e37a93e33de6c0b8b79b2d22c6e71f32107cc8808de4d35";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/gn/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/gn/firefox-81.0b4.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha512 = "f51911301d88ca070defb75ff49bdc6d1ca5dc60534518febfad20f2aa256dc226f15945993300e96ff4fe1aadb427aa51340dc1f3ec7420c15432f57fa31d8f";
+      sha256 = "f761db975c72d7e419601988c0674acc7fe17227d5569cac85a1fe2d91f5141c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/gu-IN/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/gu-IN/firefox-81.0b4.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha512 = "c122187243467d12422da400affa93fc62070801d30976fda1fde6664c5dbff3cab37c3b1e0a20a1b62605eb1127f13bdf806c07063cd84ee5f8fb9d19397573";
+      sha256 = "8565c1965e09060ddc5b253fa126998f827d17dd58692ec4d17d194d29a464a5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/he/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/he/firefox-81.0b4.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha512 = "5f0208c47710d0bdde59742392c4086add04cce787cf257d9295243426cd3085b5693a382985a6a0b5cc46815049012807c6fdf5c4835fce8c0f60c105743020";
+      sha256 = "c3cc5911103ce955f89c5104ceb1ee50f7c047e4ec761681c8693b643f5d91a8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/hi-IN/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/hi-IN/firefox-81.0b4.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha512 = "28c296e2e3e6c17ddeb5bdff5b3c75e81eebe631c10bfe63a8b7755cbce78627634cdd300d8ca7e65bebab1ad3a058eed0be6704a1f3eb0c46761b2516e25a34";
+      sha256 = "95463325675e56e700eaffb6e6690f4b398adb5cb77aaa34b87e16cb142f3533";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/hr/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/hr/firefox-81.0b4.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha512 = "638cc3b5f2a1f5fb3e45e81beb209234a1a89356bdc99b933a7c7d84811691a33dca27163e93e9b77b2cd1168decac98d2c21a6837dee4335214f87e5f1cd78c";
+      sha256 = "6332ae812507f79baaed24e4fb79fc6c383418c4c9d41c0f3dbebc2fb72efef5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/hsb/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/hsb/firefox-81.0b4.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha512 = "40e842a776c591dbe92ad2d191e6fd1c1c26c00aec6110b74e734ace0b5868afe430017ee2e953692fcbdb542115904229adb9294c64ffa63a15ae4da6abd949";
+      sha256 = "b18a7d31d3ce7373bcbd6bb7ff56adc023c58097126781d5f915828be8fef92b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/hu/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/hu/firefox-81.0b4.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha512 = "b544898a2433c66c6b69fa84e36558f95d722e986d09afeb76f412c128a351977389bf554d524e28c02d8e5554519ebcdc136d57f17b0baaf40f78f0738c9aa9";
+      sha256 = "b1e4c6c9c21b2593f3fa111820a7e6a2e2e72e8b3065738f6a50df6ef4b7f18b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/hy-AM/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/hy-AM/firefox-81.0b4.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha512 = "1a3a40148fb35f3d741f732e3a39e6f1662e6196b1d0ab149b0f42f2f7dfc103fa51df0dfe1874a5d483a5a998555d858be06f8afce9815f7242b7b86d8b3af6";
+      sha256 = "562f4d9e094b688cb53860834e425997e65b78222724c48ff4ddd71ccca264fe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/ia/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ia/firefox-81.0b4.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha512 = "7e8472462754b358a4ed7f7d9a1d853d0f590a680a64e985ff1db631e84e6200908348d85ae3757b9236c76e9b3e302f18bba3a84b620834345142e3e39f95ec";
+      sha256 = "87299a8aeee6da57666a06cc2d4f479b0c74c220e2b22ddf5254a052f11edacd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/id/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/id/firefox-81.0b4.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha512 = "028df055359a2fc5088b65ee1f377b94dd69f7c6c718cc954084ef5a53e3f53ddb95a8e52c46b2e463e5de6ecd7272a4d687e49718ad96ac17579ad121403bc5";
+      sha256 = "0cf1bae8def307d08e4c24fb44f7cfbebf150f1edfde2a3c0855a69775f26539";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/is/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/is/firefox-81.0b4.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha512 = "232ed8f86d6c825444a0e2448b5d5f06a8d17be5c4ce35fc0d6cff24cf3e49253ab92c16d82ff52726540104106c242e3bfd0b3b969f8a437f46b60114654f42";
+      sha256 = "6140d270e99173d995e42d32c0b696a51f72b1c6baa746549bdbbe7e2a08a811";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/it/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/it/firefox-81.0b4.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha512 = "43f29ac4beb67d8859cc8cd7abdb3ffe2e3c3aec7c962e4e9481d89005a72598571a0dd53a65b06241ed04e6022b7992b2a2c4cb95bbaac95c4132e1bde4869e";
+      sha256 = "3583cf0223528929141879c085278354927ced41d71321fe8d832ebd356d4614";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/ja/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ja/firefox-81.0b4.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha512 = "c469704306f8e28f8508b66bc418a867b3f39eb33405430c0b3fce3f5ff5cf0390d03889ab1c20aa52d5f0b7f4631cb98e0315ab63c3e9412f30f484ac88df5d";
+      sha256 = "4a1bcf87b3cd09d7c3379bd922ede7a3c6c4a19bf11596e858634b408df95cad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/ka/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ka/firefox-81.0b4.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha512 = "5c4eb2a1f8167ab3f6e818291595a67b3b9f125f800ca84b930e0ffe64357e37b9a9999efc17593e502abd1912498250423fd672c7c479d227dd7d6df3092c49";
+      sha256 = "320567daf4e4bb12c7209aff34d98efdbb2dead9b34f23d4a2181d2cdddeed71";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/kab/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/kab/firefox-81.0b4.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha512 = "d7b7eb5065a6d949b018d0b1bd7c3613a97311168783a64597731da0b7bd248f11b13069833f3fc794563b1de1f4e0c40be23231b33471dc49bbe112f8e536e2";
+      sha256 = "5b9d60703b494a4eb5956e59bc2d6893bc70e8b890d0c940f25d25b605000c89";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/kk/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/kk/firefox-81.0b4.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha512 = "7c2a20a0e20bf581aa8ebcea29ce7096fe14c8181780364ca6c828e0df71862b4da85e46ad5e9b73c6fb1dd575732ad1bf36e7dd9f6087f187cd56e29861aa4b";
+      sha256 = "45580e0c3cbb265f718a69ac9de7220d3d89e52e3b8a5cfceb7363c20e63c83e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/km/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/km/firefox-81.0b4.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha512 = "47ce70d662ad99540a0186f62c51918e1728976467f612cba3fc36b9d336b1435db1c06a834bec54e1546b9842028c03fc965efc472a08db81a6c13766db48bd";
+      sha256 = "24b4879f22829a2a5d72219cba2c5658bf7c7e73ffdc9640f6e897ec613733c7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/kn/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/kn/firefox-81.0b4.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha512 = "3a62cacb7f5e3b4d2652731268fb0517678ed38508f5fa0fc2fc5288031c706ef95a2ebc09116b35a1587e4b42fb8e9b07667ec90f3727be0541d398acc1e8eb";
+      sha256 = "905ed3fa762c73c5ba677b8ca5b620294cb1ad36dea2ac53fdfca5a739c0c0e6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/ko/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ko/firefox-81.0b4.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha512 = "9fe53ec1bb0e5b2ab583c2f7709101ef6ad8f7a246ed0ce9988dbd086640cf34321b49b753960eda5b47a09fc162b0a2a2eb103287e208f75a85c97ad7752545";
+      sha256 = "a6a63ca4106ee9c710331ea50099e2a50842465095d38ea55a63dcb3ee3d80ad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/lij/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/lij/firefox-81.0b4.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha512 = "221ca319327c9bc4f68f12f93309612ab7b286f3df0971dba3f42d6e0ffaf12bb554cd0dca83a4bb9de4c9a239af724eaf5f70d0f0b594593b64f8338b4c7954";
+      sha256 = "b6fa42dc9bc68d4b71ae93eebfb1a19416f0cdd06d20fb344c0c0347aa2d4862";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/lt/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/lt/firefox-81.0b4.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha512 = "2aff555428cc9b04ed2134178e8c2da1ac702f1a77b3f5b648cad9bb4c59875277830ba657aaa7dff7652a4fc35fb39b6dbfce3013213a503cc39700156193bd";
+      sha256 = "c70f6e7c20e252fdef6bf136c99095ebc27672719594df302e58be801a3f06d3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/lv/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/lv/firefox-81.0b4.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha512 = "540057409baa8b823ba2eb2ee1a823e24ff08510637caed97635d719c1e3be6fa12379f86f08a68e53c9084ea1d79bb89d188bb3520c723c52db2fef3ee8025b";
+      sha256 = "c64d561be20fc8f0e7507a0b1dc2e5d79af407531a37cc7da3fd880789899fdb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/mk/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/mk/firefox-81.0b4.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha512 = "adde84f336cc36f23daf58b006a0cfef18acaade8892c2368b0a3b3322ddf2b26a0783f04a533e173d71a4e2f579fde2f6fa6a6c23d80506a1dfe1945a2fb073";
+      sha256 = "aa38b13c6bc5288ab491f5ccee3a881474b1f42f1bd959435035782d1c39f407";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/mr/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/mr/firefox-81.0b4.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha512 = "93b021845b9dcf173b4fef281dd4f51ae5a84de3bdf80c3861fd0e5e4d9431366b4592f0bd553d45fd2f9f3cf690ff82cfef6b32f9bab06fa916b417658402cf";
+      sha256 = "e56eea60ca1cd447e30cccc82ce7a4797fa23e9bb4871a5e20e05d44ac35f720";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/ms/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ms/firefox-81.0b4.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha512 = "071217dc5109570a1f5a98a06ebc0120aa809a189b3a78a3cc19dbdce0ad1cae409f665eaf97cdc7b4df529c8406fa2fa2c57e5b34dc32e3a0f4a62d981aa2f7";
+      sha256 = "9d8445e2bda6a8cc8714a0eaf82e1b9ec03fbd94042c3557f07d9c8b25bc4b6f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/my/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/my/firefox-81.0b4.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha512 = "39fa770a4b6632d1dc0e3bee24ff7ed95caa26db7298c93a7e0f4732ef18d72a1f21612275908dd12ee94da0a89b08e2b575cb745340ef0d595263f554fc61b1";
+      sha256 = "4a7527e5e3e6ea0181cc8b9a2f206bbe162a4e1867faa75b4af261f08e89ae0d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/nb-NO/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/nb-NO/firefox-81.0b4.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha512 = "f408f1ffa88b3c918e52c001ee95027730e4961e13a0b47a0c8c6d3c39aa8d7cab172329738ec546207051bc1d682b8d62d59ee9efae4d7533036cc9a6869f71";
+      sha256 = "c2ae9f5fb235541cc69cc3c4307dd4b7de51a9f4b6e038ef3091a773edec6c5a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/ne-NP/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ne-NP/firefox-81.0b4.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha512 = "6b8bda91d969a832ffbadd4d2241b9bb572637d0d34c910f7e5f14921d7c9f76b4a88e0e3bdbfa259a0090cc8b7cbe638f60596f05d8b8c5f48faa181393a37e";
+      sha256 = "05acc175b06ab7f5861a3a7e58e9a92c40e0660224426fc8225fba6c25888726";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/nl/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/nl/firefox-81.0b4.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha512 = "ea86fff04dfa7cdb8344af38b5b983dc9043b5b754999ac4b2ee1fef19df31fb4c43be6952e0e97ecd4af62c97b1a8c12914f0473dcb19d1a9fdcce4c0710869";
+      sha256 = "640be4e631343c9f2a55c24a4d5c63908627e9ab2d39a5346d1842d8e4a57799";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/nn-NO/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/nn-NO/firefox-81.0b4.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha512 = "9bb74a166716654e32f1b2931241dc556d399148bac3b1fc44a96a101f48e74413d40f380f6e469639c186a2483bd9131ee27b8acd8e442e4a3c2eec7361bf1e";
+      sha256 = "46a898f41e5c3c9853b05fda8f44be01b2fd5a7fe3dad281c21588c2deaaedce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/oc/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/oc/firefox-81.0b4.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha512 = "3d7445cf18226db6a4a875f2f006150d709b53a8837f4dbb2bfc7782149c01949473a1fa7ac0d5ab3ce269b2a41077cc93f7635b3b55a08c2a105973c926e62b";
+      sha256 = "7481c8bad2e905a033f09ec4c20f8d4b184a0f90fce1c10648c4fc57a7a5f301";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/pa-IN/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/pa-IN/firefox-81.0b4.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha512 = "0208389b74ca0070c727f6fde7102e12e28b460eaa062839c23a81f5f25f68ebf4596e5dfa661a2de7c21c233e09d621dca716233c6b73368c7eb7fb0aed6d93";
+      sha256 = "a460ed0241c569e1ac62727b17f8c8d0d4091e794900e2e2be7d8d8e2b90ada4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/pl/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/pl/firefox-81.0b4.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha512 = "9765be62795d6a0efdac06a91d2993a1da2b015ea20679aca8ea6d70768b2a0f9603533d2ab81bd2cf33dafe842e9c78d0a0bdf2b705c74f22b7d9fc22cf2c32";
+      sha256 = "d82e300cc8be61ddc2aa66bd4d4ec35cd18e47603bd19530cf48728c5fe67a5c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/pt-BR/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/pt-BR/firefox-81.0b4.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha512 = "c59eb5f10a8f94e44f785bdb8425e8b889e0120434c1796def1fb521a77d5da356176d1c864a2fdef08cb650a1b6c71cd334a3cd0d1b2f647519d46d2d65ef8c";
+      sha256 = "1ee1560d4597adbd230fb0c556a4d8fa6984ee86bb731f7a5a936d660897eb99";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/pt-PT/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/pt-PT/firefox-81.0b4.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha512 = "8fa1dd31772b0de062c1621ef9346ee1b0fa77629977c39a8111f0f22b00a1656e6bf143c3ac74af7abeb8f2c2cd26495327ec72b067c4ab7743957248b62e32";
+      sha256 = "be7e484f8c3f4d8b7b894a437b70b2f4b448e3a7df518ce6906295df9be7749d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/rm/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/rm/firefox-81.0b4.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha512 = "737c5614d84fd72313c3ee4eb72779bbb339a40f249967417d591137e19d76b32e9ce528adb167415134ec75b796f7ee4dfa624cdefa4bd42e11148297b08867";
+      sha256 = "819cf6a13d1690dee4e4255aa0c3f551411e2b7076f8ce3447bba47f07c806db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/ro/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ro/firefox-81.0b4.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha512 = "0744ff66859699c611597113c77de6bdfb5ddb543768671a48f9cb83da888ea88ed6fbde5fb86f610a35fb6e7daaf0a4c6fec1d9658c700c16f37e04f7b41366";
+      sha256 = "2baa8154f358962983c7e0b26c4a7cc8cf97587b646884527fafe46f5d8d92ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/ru/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ru/firefox-81.0b4.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha512 = "77e085bcbbb2ee78c486f85d86a5be43498ea094214fa1e769c3edf7af42821c833d6dd207766ad1fea9eb9ad2354229617b6ee49b38d869024092d317790781";
+      sha256 = "eaaa5338ff8ffbc9bad5321ee3eb7410feb9a26a06d3cc49707c0a048f4412e2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/si/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/si/firefox-81.0b4.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha512 = "1742142be1d9fdcb13f6d68c5fe413b9ad019556491263855c172d350fe0bd00d467bd91683caae51eee3e512023e309ad97319e3327098ee47ab6be35d1a851";
+      sha256 = "ce04721a96cea62eb7011c261f740e9e0ad6288ad9ff231538c3a6df86fb40ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/sk/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/sk/firefox-81.0b4.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha512 = "2c292ca74a5424315e22d595a688d14167389cd7afbf73e07342b7e77ca32e9b56300594790f26d048b32d0ec014d23f144b9226b01cdeea3233050998394f99";
+      sha256 = "4b19fef341d64f94ad97a0bb8821693b00e4e7e04454156f92f0c82f4fee0005";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/sl/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/sl/firefox-81.0b4.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha512 = "d6dad078272c4afd6d0641bd53db9d9af4b9ff9ec34c45917ad313cd6088ccfdce614669765281d57c57dd83a5b7e428514e21c6fa13cea70c93e91690ece671";
+      sha256 = "96192922f2012a3e6be634c7ed09017cebf9498c6fc2862336bfddbc4ea40840";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/son/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/son/firefox-81.0b4.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha512 = "7a382d02653006c00e4761a7f61746f6ee80ae2f922cb2eb027da3ec7f6cebfccacbd51c528a29186557dd9e905a744e6db7e07c273751a1f80a277a08a86410";
+      sha256 = "dfb144edeb3712bc0a3bf7e0675de80315c78bea7d7c6ee5f6047c077acbddf9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/sq/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/sq/firefox-81.0b4.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha512 = "0ee0ed873edeae765b624e1f76612b06bd6bc7b8df396656c76b59b1e1ef8d5b7f056a18a71eb2cf9f950382ca272bb9517ce24c6145e966f6e895b4ad843e6b";
+      sha256 = "54dfab9e843dcde43cf188ae33922371fb90c1bfda53ef629df16576d6a0bac2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/sr/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/sr/firefox-81.0b4.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha512 = "d8589397053bd3b5068885925ad69ccbece3b439ee61b787babce92f24a8cec9e32164616d73fbd35f34047d1f5ebee48e91bd9f1ddedda2dc4f19d5ba869afd";
+      sha256 = "f00b5184ccb47223858128aa26481867fb33aa50a914a8c807235c9a2bdf74fa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/sv-SE/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/sv-SE/firefox-81.0b4.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha512 = "d72111d03ddd880a24590a5b1e17e950401fe9d61fafc7b4b256f877d8c950689ca393ef6fdae048566beb1aa46ccebc7f1de8273c22b8a02a651730a75e29b9";
+      sha256 = "d3884cf4a9ff23971badfb1a794c9489e0006e6851a0e501e290d8793054cc1e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/ta/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ta/firefox-81.0b4.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha512 = "8b3c549bd419861fbf8d3dd30e10482922af955454bc1974f0c9bbe065a6aa88aa55b8808b2c4865ea3bb5ec240490b882a3d1251291513b234cee3c075f28c6";
+      sha256 = "53584d2093feffd36a8a5249ee438b82d21af834a3c2c210944030c127b91cb2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/te/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/te/firefox-81.0b4.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha512 = "8d8c74aa0811c24d97ce03628d9fa3be139ae53356296d8599c5c4a9269f479a2dd720dace92e86560a3986fe68daf042b18e2bf1c4d4339033b5c42cbca0f26";
+      sha256 = "63b65440720bc492fc95d080b191ba452cc87c8501b195e02df66ea4487fb902";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/th/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/th/firefox-81.0b4.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha512 = "7c6645a2287b0da7c346f1075e44658c72d9c95e4e47413d0e18024691471e0165f2ca58142658e4ecc605fa5398d047e9acd248e1090231809887189ab19926";
+      sha256 = "3b01fff09734f2206e4aee227ee7f0c13544fb1635f92a5221ee356117955446";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/tl/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/tl/firefox-81.0b4.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha512 = "d27d4f5815ebf6d92c9394fb9b187985eee43b89034f6378a862c5e0099156423d925e4f239da7f4dadde31a68053eef909d53814a2342157f42a1ffaef48df1";
+      sha256 = "00f1c65baf63246a9ff44d98171a6ceec6e276488f5d6fbdf6f97760509b3bc7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/tr/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/tr/firefox-81.0b4.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha512 = "e9001e4ac3d56a76955c04f2cc43915696e3ecf0ed0d7446a282bae6bd3ff7461ee6abfe7db40ad61cfe37361636089f2d4b353eb5f7f09a9af16f933c9e1ea5";
+      sha256 = "064d6c6036fae215fcb50a87863e6808bd1626084d9144a18f7ea1f4c7072093";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/trs/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/trs/firefox-81.0b4.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha512 = "9aa5a64c8ab17beccaa53cda383383b28b7ba311c08c21dc9bc097d2e43f351901399f315f2b12fddfcf101023212e61c5e416442a726a324c66c7872dea75af";
+      sha256 = "73c892e0b0ab0bcdbcf6af88fdc8de335bcd5c56805675ba7b487ed3b620ed22";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/uk/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/uk/firefox-81.0b4.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha512 = "8d33e4ff58711e2bd71144b00a96fde332675c6a81b09c1896eea25b6599fa37358c762d951e4515ed398f746b368216fe26beafdcea51cd3e927e132d26856f";
+      sha256 = "8ac48524702e3f177e78fe97e4fcf528752a3ea0ef08e9212037dbd0febea53e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/ur/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/ur/firefox-81.0b4.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha512 = "2f8e5d91c9f4119340762efe519b11eb69c4dca355a4add963cf71a5aa58b53c315c0315caab323b27cca293f383bc07325dcbc483326dadf95f305fb2ecd067";
+      sha256 = "154dd642021769aa67a081080f33d87d736686b9e6e46cdfa2bd2201605bda26";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/uz/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/uz/firefox-81.0b4.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha512 = "b23309f728ccd814f7444c1e3e129034c66a1ad1fd216e6960c79470fe37d765314fbe9d221d8bf2f423ec07406657135029b280e2d5884c5f3a55050e0194f7";
+      sha256 = "dd36910596d777f49de3dfe8e22f2838b76081cb259107047b9a98c3445c01eb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/vi/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/vi/firefox-81.0b4.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha512 = "698f917a168d753d7dea3f0e91566beb6cd96cb708abebfeda808115775ee5ee2dd906ed68f99cc571c752560d765dbb49ddf701de4f74df2ddc8a6642f9bb19";
+      sha256 = "3cef9f657f83bbfc68ab4a7c8ab84e1e937553cca98cfc30d3fbbec5c8be7907";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/xh/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/xh/firefox-81.0b4.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha512 = "1b1dc73a235218bdb832bde08f4de5f157fd9acc2257fbee5f1684e2d4bc2f14a22ab70e062d53612b36588dc3f252a6a1e6707cbff392d9d1b1365adfecb13e";
+      sha256 = "30a98fa9218cbb07d792629e73a250659b321a3555eedca0a68e6ffb1d5191a7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/zh-CN/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/zh-CN/firefox-81.0b4.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha512 = "07d21c46ff1cad5cc9e75d6719224721e230895bde0adc34b69eb5a34f14d400206e0d2e4de80ba4e029de0b185b2c6ae0a44624b5838eee210726831ad082f6";
+      sha256 = "bf15e819d84a3cd3825df2046bd9ffc139008f45fdbbdc64e04cec6a549af3e4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-x86_64/zh-TW/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-x86_64/zh-TW/firefox-81.0b4.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha512 = "13be3323975a7ed42f6a9ccb8bea4b71d875cd5dd8e1e5bbef8ed36d1020819f3189b6e933200ce58793bf89cd7d989e6e22dda60321c9ea3c5d3b776cdf8e5b";
+      sha256 = "b194749cb05fe282f59f2f6621a5d04fba42406d7a3ea71242b667fe94a5a857";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/ach/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ach/firefox-81.0b4.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha512 = "383146225929a318a6dbe25e74880f7c8b630bedf4ee91adfda3b8c9626b2967d6e6e76573e05fec2a4efeefd0573c6ba63ab252acc453b691cca3f09dac7f1b";
+      sha256 = "203ca1a13f76935935daf2124c662329df93af0e44b4bcee7334ff60092c8027";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/af/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/af/firefox-81.0b4.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha512 = "4b0fdbdddd7c5eb18a25dfa03a95580826c940941f66c984a9d6e46f1ec88ab932b0db8d94644310dc5fa1519d44a3cbc24d8373a449b6987e2401b9bc2800c2";
+      sha256 = "481d233552b0702a8b8092748b4c71da3c14c8df5e971c5b4662273cd8808022";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/an/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/an/firefox-81.0b4.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha512 = "72495918ee96313318db942c8c403286ff6ccbeb59811ab2c595723cd18c2a57d6a42adea7d8779b22b9dfdd1e5c5c0e19b5fb438d198f9e770f3034a932e610";
+      sha256 = "a128b96a34eea409a8b5fa412e6a1a36bcc28f2fbed40ba9b474b9d86d23dbae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/ar/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ar/firefox-81.0b4.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha512 = "61117afc0748e44daf713234b91911336875b8d9eaaeecf8e183d54d2c6bbabebd1cbf34c74a019ab660b06bfaa28c417d7ea3ae8cc476c26c9c40bb9fff5392";
+      sha256 = "a2ab8b556b6b477bb1aa287f630e7ae6aa902fd1b75968c01c2e2c76fe9cdf09";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/ast/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ast/firefox-81.0b4.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha512 = "63f66ac824c1ace695000cebd357684d0b09c3e69f46021f44ffb2201327468c2d4d21597a660cb14f6fd08c21d58e0e47520f72595da8f59c808459ae8ef0e6";
+      sha256 = "193422cbafcaf5ed58f334a9d5b30f9a6181aa1cb649303df18626d9a3484088";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/az/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/az/firefox-81.0b4.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha512 = "481f350c51b234aa44091e7e6ba308364c84ef988bc11c0f66aac72511e0aaed0c0a4bd865e781516cad6a867bcb2e09fd4d1726871290f828837398712ca401";
+      sha256 = "c206f5351f0ba474a5277e223514f032c7ff0b66029f570143f2d1d2b8ccf566";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/be/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/be/firefox-81.0b4.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha512 = "1c4b35ac02bec3daf9f5a7fd984071beb274281ccc3f3a8979d8255709fa22396a1d2ab2606521f279943c872294e19b99e974b116f1293d63d10dae0f92e586";
+      sha256 = "c3d7d04ea43230b6a6e4227b799d47348bc5c2ab6a60e93f4107efa6e7b34ef3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/bg/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/bg/firefox-81.0b4.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha512 = "9bf06f95a1769a9f0a4e63ddc15f612d8f5f8678ac217671c58f3fe8669d3936186a2695b6b49ab6d37a052a2844ac53e6d65795f4539033467f2405930e191f";
+      sha256 = "08edf0db8aebd41f25366ef4302214b4ef00540be39406fc780eec288b0de324";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/bn/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/bn/firefox-81.0b4.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha512 = "7388dbc16b05f32a0c2cb69489e8dc5054c6ae785881b91571d2ef7bd010300efffcf322598c51157f681ba599f7f39791bd2dae217147eeb478be92efc82f7a";
+      sha256 = "a6d5dd5918d94e74ee8ffeb10c4caba65697ecdb81598b0bda815fa5d4830a78";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/br/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/br/firefox-81.0b4.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha512 = "ca7fd9c0c46c92b26e1038a4b611f26690b4385cadae2651611f079323a6775f47d305d9547d98711eeebcc00374df5172fddafaacf44279cbe0c765c7fe011f";
+      sha256 = "4e7ffbc380b6f8716399ee9d7b9ffc5fcdcae72f48b63ae4bcd2011a85efa0b1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/bs/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/bs/firefox-81.0b4.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha512 = "fcd846854ff686542a0159e722722a97b6be0a797341bbfb2fac62cd8b6bdcaa3aa2f51bbd6a7b2d90b46188af1ebc5c1b6ae6e6dc24f3f4f1a1bb26cf2205e9";
+      sha256 = "ef36dae13dc3c943e5981a16d7ca61b4c6daa9a4873d2cd87022fbbcd01c8907";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/ca-valencia/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ca-valencia/firefox-81.0b4.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha512 = "4e997173753a7eda937c5c04c1bfed27a2368e58db459d1e0918642d2c5878a5abf5437f96de9e47e0322f4f0d0e8782cda27bd24f6c5efecf685fdab3b9d149";
+      sha256 = "584a0370f79011dd2691461acd573133348a94cc1323d6fb99dea9dd6df1e155";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/ca/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ca/firefox-81.0b4.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha512 = "c2ba20e8217134b641d9c97e3332167236549e027946d7cd4200ace74498639e6841eae76f753195ba8ffd2872dc3dc81576970a128cc618c51526497d14c1ba";
+      sha256 = "e280fe05f4e9320fd354407811ea8664d50de3810298e5eb4922b2d3e549ad11";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/cak/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/cak/firefox-81.0b4.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha512 = "e89879635fcda716916f5e0afe2372172a7e3e13db6a57310cc2d4e8bed95ebc76fd2a39d730ba548a8f2871e68ec6c80364a67a8a9f2f72e8770a6088cd489b";
+      sha256 = "3decca8b5b0d44db169abfa20f07b3c109bbea0a68ae3e44a35f97e3b989324b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/cs/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/cs/firefox-81.0b4.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha512 = "ce657c44e1ae63db3f206601b5be7107e0334de7be574c8ff9211fabb6d41936eca3aca33f58e05220adf1213aa96ccd20f183a72c4bfd7cd71c145e8e8c051d";
+      sha256 = "efccc2a43f961179f61eb7858b1e17ffd069bf7a26027faaad09f1b529ade52c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/cy/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/cy/firefox-81.0b4.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha512 = "fa217e8a7dcf509132c35775c85c74eba600dbbbf2952a00a61bdf258396f134759667f6c3b8195bcc0fce8a6d896e70fcbfe514bb50346969fec258a8ce9342";
+      sha256 = "dc8a1945d0230070e2bdf65b673a9aecc4868c9821f7f1e2f6e0d18bb98c912d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/da/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/da/firefox-81.0b4.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha512 = "ace0ea8fdcc68845f948656c31e142d5158eb2ebd0ead6c8d1752d6ffd4ad6d915b632034ac328751e69fe133d288309b2db0e97caa8cfcbf697150abc757839";
+      sha256 = "058b800e2c9fc464f2a75fa48542269056a88916b9474a953f0d29a3e9041257";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/de/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/de/firefox-81.0b4.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha512 = "6e87302f9a5c9a08c7e9c56257a31787c013ce8b5b800d4a7be1cb7ebc66c32d9cee536312ba0042638c33b614fcee051f99b83b71007cb21716e0d12d380696";
+      sha256 = "7fbd0b27073b2c46829fc0d631ed11fd9a38a07d0ce474f6837ad1f5c2adff62";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/dsb/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/dsb/firefox-81.0b4.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha512 = "5f09de6e10b863e06699b9131c5bb819aae6afb40030550a1e2785555588fee83e18abf60825b27f8e458dc9459ed101db213c230a06507e95e9b43a0fb1fd58";
+      sha256 = "d0b6083098d416366040a877a92b163d469e2764af995c65fced49de23148624";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/el/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/el/firefox-81.0b4.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha512 = "03dc3e0ee03c27653c42f314a3e65d9e45b717803a869827cedc5ed5351ef32dcc768f7c13a9cd3eb14b0ac8a0d386a8392e677f7481bf81699d4cd22f91cc3e";
+      sha256 = "104258b0e47b661d7c75c72f5a0d7750399a101a9996a3f8837f0f524e9820db";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/en-CA/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/en-CA/firefox-81.0b4.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha512 = "9eefc744bbfd503e6cb0cc0c25a1955a3246775ad2f204b7004aef96f24e6268576b89a83853de93998c228208174cab91cc0615ca16d42c6f2dc043939aa213";
+      sha256 = "be6750a6946b7ef58869d0c9f0412febffcbe4955c823a573d02822f9a14266e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/en-GB/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/en-GB/firefox-81.0b4.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha512 = "66e3abfa4acd7b701285a8bf9a48f6be2401e8bafe19c694f1307b7b3437efdf500e12ceaeb5b41f3deaab29a3ac90b78ff79fd5521e94bae055b119d4918690";
+      sha256 = "e6d2c60c30aa90b6026cb85d6fc3a1d1b7266263980df652c9a1c158528cfc74";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/en-US/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/en-US/firefox-81.0b4.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha512 = "38500788aeaa19cc295c038e85ab11ed7a091fd5b4105cc2b7202b22e271dd8f3ca8139586e87273f98b1e17b6a7f526131ded5e4bddd0c4e52896cb7f47c5c5";
+      sha256 = "be534d43126a7fdd297f3431b579495b6f22832a358a0c793a23bea8adce1c9d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/eo/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/eo/firefox-81.0b4.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha512 = "d3e5aad8cbf2b2a61cf52d3f17d99d050ee46567a7aefb04d0855922f86e7820d11c15d60efe6beea76232a7d1f43f2b5a4aca088844906affdb2d272364a492";
+      sha256 = "6ffe84994fe7db178e59ea667495e95e6fba621cd0e4ec812d94dc3d98cf0a3e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/es-AR/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/es-AR/firefox-81.0b4.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha512 = "81aeaf4e97d53db8dc93d0e6b163b4df6218621781dcabd85755baad71a4454f406d5119d16044ccb867f8f6826006943b72d97dd6b5d658daf196d16bac040e";
+      sha256 = "982874a48791db0bc98559de45bb8884da93ee0a0738664c73ae5a08b3b1a2ef";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/es-CL/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/es-CL/firefox-81.0b4.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha512 = "e22ece882fe8141864f1efd7d72774aa659cea88ac45380c709f8da92906b8f0d72ff959add05b6be57955b4687ae52a138b51bc4da81223c16ca40b76c056ca";
+      sha256 = "c21fcdeacdf570a9f8bba9c34c64a60776aa8a4de56b5f773b1d26eca6d65b70";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/es-ES/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/es-ES/firefox-81.0b4.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha512 = "26b6d729d72b302d38d7a372e716dc9cf741658e3c42c7080a8593f3eb5e5e96fb40b5188082a2ff9eae528f387801f034744fd2ca47cc279461669550e29502";
+      sha256 = "bb34dda74d59c862ab24ad9ff0c5ad1e1fb5d73e6029b915f966d0913cf4506a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/es-MX/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/es-MX/firefox-81.0b4.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha512 = "2069eacc1ef1ec020088b3406755dbe2cb178f53555371f7132636033b4ec4883973a00f5f89907f8d6588a1cbe7fbb2d0b6dbb9d42c74165698bb222669bf42";
+      sha256 = "53686263f77643ad4f769faac81697c7e1eca216ed0a7b051c2318b181318d7b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/et/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/et/firefox-81.0b4.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha512 = "1c2c865b8a7106a91ecc223a167216da94be3373a4d43012165989e6482a3d0a90f685b163f5bba50d14d1f2abe1f0866d6f1f75871cafd5823b060d9f6272e4";
+      sha256 = "053d8ad6cf01be9f51cd133090e99230dfe797effc749e14c8a21ba712546776";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/eu/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/eu/firefox-81.0b4.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha512 = "3f2e68d6fe86a59cee48023cb646d5002495e2ae416ee18c7ae51c3e48690969c704da16e574068ea7f91fd17cc581be7cdae8303f0666fda3025cd87f173c4c";
+      sha256 = "77774b9126ccbca2b5716b1701f8eb7933ee67ec5437a00b8ab991f423888a80";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/fa/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/fa/firefox-81.0b4.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha512 = "6e6c7a29a1a20cab73b82f2c6d6167c8de66a249c0b02170c9a1ea052bc1eb8af5195dee3e83b597004127639fe96b4d89ffd020625a0aa0369dc47cc9560d05";
+      sha256 = "4a0554bff8c11ca39f1de223537d595d298e6f61c2590543151e8ab1d8eca36e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/ff/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ff/firefox-81.0b4.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha512 = "3975634e0395df6377e7a240d4ae6328691709f50f115a0c364de9a9da849a6655c8397defd80df6e8edefb6f6b413bb877fccd847bc56b1bf71431e2151b114";
+      sha256 = "272784bfa53ddc48fa43590b3ebd2fce808786b4649efa1d5b417488efbb8911";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/fi/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/fi/firefox-81.0b4.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha512 = "1a96293cb6aad59b5706ff26f7324cb6dafeb9f17de4043c03aa789b9a81f7555218213923fac0abc16700cff4bc68848345f99376696025238122626a341177";
+      sha256 = "c389eb80f3cdd215549c7ce55402a7c03544eca2fa3c2074842af32755d14cac";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/fr/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/fr/firefox-81.0b4.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha512 = "1d3d243663ed47c7ee3ab68a578d87769b617a4e961572d3db2b34dd62b8b1c997d223104ded10b42a00a0f0382b0ba10c089060f613e30001253ed008b09ddd";
+      sha256 = "dc5a79229fbdd3e9fada6b6bbb35183c17a703b9c3f29d9172f2b56cd5c0d289";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/fy-NL/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/fy-NL/firefox-81.0b4.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha512 = "8f1a40d1a46e5b4bd9cc679f07893f407b1ba7de11cbaf0ac6889ed9d344ac6a9f10842359e85f92187256548365b038d619c58d62eeb80538ee592691aca6f8";
+      sha256 = "3eb69867818f0a8448e4f421f0ded4ad1a172bd5c99048065bd4b6cf83e8b25c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/ga-IE/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ga-IE/firefox-81.0b4.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha512 = "e15f1d055f6bf4c81736370577a102dd4ffd548d66bcd6c74c807d4996d400979bc5761ae5e5053dd0600b9c7e69ca0fd9e4b03f8428032e4a1acd3485a47f37";
+      sha256 = "b09208ca65279e393f512a04712f91b2b170ca6e32777479acb7a03db89e87dd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/gd/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/gd/firefox-81.0b4.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha512 = "564f101816eb3812fc1498725562205f10590b8b2a97dd80fb2f5965a6f69d6dc10d42ba21171b4064107e8403ff81bd6a65da13d302d93a142ffd19dd13778f";
+      sha256 = "011beadfc3e78ff216a13d55a9b54471ebf84bb1be852aa986ab5ba1648836f4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/gl/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/gl/firefox-81.0b4.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha512 = "bf67fab5222c481088dabcc92f1298cfb4420f5d4e93c5e320d6bc1c306a51a4fea98c7bff52821b61b70d02c7cbb2e0a8a01bd76a21bb5d8dd7ccbf1a2cca72";
+      sha256 = "c492314ad418a190484fce335d1dc5a28a515f630c59b1cf2d7e812b6d3c3bf4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/gn/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/gn/firefox-81.0b4.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha512 = "306887a8436502fbd8f6654b6bcff057cb279e81e01e05eba6394a109fd21ca5d5b45a61570b9b880a5d104b1a52b002a3efcdb4018b44a9437443e3ea4678ed";
+      sha256 = "25b03d5251a69631f5d0cbf9dd89d1ce1dd5355e05efcc233bcf62e5311d4d01";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/gu-IN/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/gu-IN/firefox-81.0b4.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha512 = "84a27c6b14035bd8a6679e954a7f62728a24b7720cf32f1dd93533c97dec7965a963bca8bad7ae1b1895f5d8b30a9356f8fb87a45ae2bed99661852107dc4613";
+      sha256 = "1cc9a3b933b625a26beeb7c31eb062e22ff8dc98c4860bf6ef4aef5567552d63";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/he/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/he/firefox-81.0b4.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha512 = "f9ab81b3f184c3351492deba6e4cdcf87306c378eca65813269d779467c68951e9000636d2ed6bc7d548453a5be59b50db2658e69d385bcb800eb452e360a245";
+      sha256 = "027cd01f51db3b4d27381870ddf95ca2f7252bf7c6588c3d073d303bebb45311";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/hi-IN/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/hi-IN/firefox-81.0b4.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha512 = "d4ee0b984ca5679fa4d5922c321ba2e96f7fb2f6e0c3221eb4e22b25cf8385869c195e668932cf95b28efb17b7f9946dfd3453e679047d74eaa49032f7f494ec";
+      sha256 = "99d6d2159ae34ce2154678e4913145ccb9c96572ef19a18db6a223647b7ec68e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/hr/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/hr/firefox-81.0b4.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha512 = "f8217dd5f3772500584eea717cf142cf7a16655ed02c2628edbb6ef43c8a53cc8c73e3b829bd71f98e1c3d8e54619155ba5db8f988a5435e86587367ee754ea5";
+      sha256 = "d9b2fbc6474bac73fe7fb5c4eb818f5dc0d74cbbd52c3aacbed0f17db8bce9eb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/hsb/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/hsb/firefox-81.0b4.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha512 = "1883d76849ff588abb135f594ec7f8faa7c6eed2dd899ce4d7fb5e3f20e0884cb91bd6c606248910dd1d680c516336faea352b043ef7f0cbf95c86b82fb8781f";
+      sha256 = "dcd0c254c542a50807cbf1d0036a4cab5463c237318fb1d1fec9826d052aef62";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/hu/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/hu/firefox-81.0b4.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha512 = "36434f4fd5be4c50bdaa2b2a3ebea4ba1e89f18d51b337d17455a35169c3ec65d5b0aa17c6771f211b81f607175b6df754a28efc927a951e4d34072da343e0e9";
+      sha256 = "5a0a94eeb9c8d219b3e34e92fc51163e190c606f975735215177d521b7ed9656";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/hy-AM/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/hy-AM/firefox-81.0b4.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha512 = "0b09ba2521e364fd839769725292bacee154806d94239e21dab70e4fd167b2295cac01e070cc5a50b1fc767ed57f50bdfa428fd5aa57a2ce6d2c0639c1b82807";
+      sha256 = "2ff26ab884697d226bcfe224ff5c068aed355f6bb00777fa6d9f3bd0b9f9b386";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/ia/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ia/firefox-81.0b4.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha512 = "2753b8d3413bad99cdb40e4dc2576ffd559e4ea92a507e0617e04b8fa41abef34ee642d6e8bb58c973a837e1483d117638cc49f1df3f485987be96c2b6d0dc77";
+      sha256 = "7bd9d940f81d76984886463cc10920896247084f91efedf99f787601a47abba6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/id/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/id/firefox-81.0b4.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha512 = "a0f863f34f4ba67c049749453220d06f9737d855f6385c16e933a24c9a73f9a28928049fb99a89fe976db9224f40fd90495016388c5442eb0b977100bd5a8ff3";
+      sha256 = "c415b55ec7701219557cc4815ec0975d86f18312a2ef6a8abf3e82876edc5045";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/is/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/is/firefox-81.0b4.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha512 = "4425c986b537b04ad0d9740bcd835388b1bfd3a719867c7ea264eb1665a96deca9f4fa58d84e6e9dc7e038ab9bc55fe86fc69381c055f88899fc68b39505f393";
+      sha256 = "3ee6e83bd9c244b123c1a1989fbcc0524c4101fefe697ea0a9ab7c6a05302ac5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/it/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/it/firefox-81.0b4.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha512 = "4869bca5c889deced2e2d1029262726db3aee7a1aa5c79e928038295c1367ff6003b030ab2fa8940fa1920129c89636e059d9b20e20fa43f2dd938a44995b4fb";
+      sha256 = "de141769375ff5da94ee1030f5af84b309917eeea48cde769419004ca5a015c6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/ja/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ja/firefox-81.0b4.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha512 = "e4f288ec38c5a9723f3c653e3d995f9cc2c2dd86f285277a1b44f315df2bfe51e6ed58db00e7df1914b34bcad3b8258ae43075d02d4440cec2c1fd307baaaa9f";
+      sha256 = "69c5c01998a78c17ba55f262493c4e7bfa4fe03bd19a8ca605546f41f0c6f794";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/ka/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ka/firefox-81.0b4.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha512 = "f03488b30e3551cf670ee3a193452dde79c72fb5ed63288c41922e627ea0033cb31b1117a4b270260235492ef9d37ce7b6317d637c2495d1732c606aa2d5f6aa";
+      sha256 = "4c37f22f1a20c79c1b391b0f86bde8535c0766980a1b9a42ef912cbf91752392";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/kab/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/kab/firefox-81.0b4.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha512 = "ed496b1cec1152db8f63a04f056479019b90338220b163f1da1022de11b1064dff1dc32299f92a0464073d4938551da813f88d5dcc8536c61abc84347098cd20";
+      sha256 = "1c6722e18e1eff26918de17454d8103929115f7f036a1c23247695f7fee13051";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/kk/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/kk/firefox-81.0b4.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha512 = "01eef4b39491227ba2a0428066fe99b59222dc1d9c98d435254558d14d91b4cfc062a2649d87c86da3b83e327ef8a7889a78068ba1e118140dde8d696aaa4654";
+      sha256 = "9ef2e2142d2e6d49adf59e6dd190b4ff816cf566cd35e5d288f66794aa2d73c4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/km/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/km/firefox-81.0b4.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha512 = "f284b80465c175a141210dc57b4bb472418981197ef5c7cc4b32c5d2d65898dc9def0f29a096d14eeb8d66328713afdbedd26e9b88a969a43ec62117c2d38d0b";
+      sha256 = "bf0899cad62f3331d157c557cbf3cf1f7faadaa7f9aeed3c6547b4533689dd7c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/kn/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/kn/firefox-81.0b4.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha512 = "1b3f97c710a45441fb66c83ba6b2e648f726d8fcd0d245f9f8121a86d878c6bf3b0b114878d70f64f6f18f057218f84c5e30ea0f4f4ad8b1921d22ac9aba5e7d";
+      sha256 = "cfea495b254e1ca8c1be94e95f0c1f126d5f1a1c9d54129562fbec5ded6dec58";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/ko/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ko/firefox-81.0b4.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha512 = "4deaf19c5b1fd396566dabd7f9cefe416e29ec885781f7aedca1bfad37645c2878a884b516d1300eaf2292220616ba494be4b8d763998cacd1d5e9e5b7a902e7";
+      sha256 = "ba8c93f8567a4f6bbf7af3c38a2d2ee793b05c0246638ded86538f91e6e9112b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/lij/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/lij/firefox-81.0b4.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha512 = "17bf34017b58765bc0f90d08ac8cd73065edb223e1d8222425122460c8a502ba2430caca3447e535ed9f444dc5d05b5958984e8a87e29dd1b713095cb68c130f";
+      sha256 = "c093b95b291af78460396e87ad39aa142d9925a7253f74aef9640fac0134e397";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/lt/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/lt/firefox-81.0b4.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha512 = "43240bde81bb7a27a9a9b9ecd95bfcfdcc701441a5820ef2abfc0d13fcb8eb41abe240e16bef0a5c1126d498216c9d2c5302c787c93093665cbadeafbd81bcd2";
+      sha256 = "b035e58bfe373138626d9c5a22e6b6a8c6f35e8ba30ce821f80a1a85fd16c35c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/lv/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/lv/firefox-81.0b4.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha512 = "6c91a4d5e746ce88522ee9ab1fb5ade7293365eb3bd67f5f5648fc8b298fdb41227408bfde8c567d238bf65ba5276021edb630c4b8f3314493a6f2d5face7845";
+      sha256 = "6dd5cf66db0207527966532a2728d37438f71d1e79caf9b97916d0e404c9509f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/mk/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/mk/firefox-81.0b4.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha512 = "c9a29a67dba15e60aa3a08499c19c151ed88e4f9b108204fffc42a56cc2b73f2ac65460f1f6ead90595deb1b874a0aaec466d5decf3c975c9507f32c6708e4e4";
+      sha256 = "1308f476d0052e1317b4c7db29d4d2218c60921a9ba7f619dde4455aee7978de";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/mr/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/mr/firefox-81.0b4.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha512 = "e83006eb8bb225c5c8961e73c02dab509cc99be714a563f7de6203d7b1f9aeea61228de5c2c0353203bf206d113af6d95b47ab83793aedd0d8fc57c66774ed08";
+      sha256 = "7336012a19cd650dfb8f842de37da8e29e7b0948cc707880667eca87bb31869a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/ms/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ms/firefox-81.0b4.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha512 = "30c08210314a0bb9854ec3ec7db222bc03a3118578940f28fd503a90b266b3d803b59e4d691be4d5d50281b6036d3162676a775de1b0d22d57473ca4f277331d";
+      sha256 = "192e12151ed1be4c3f7ea12beedd2c50f6e7fa877ae8c448cc899cd0fa1c6d24";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/my/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/my/firefox-81.0b4.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha512 = "744153ef1626a18fc6295934e4ba53a12854f7f8eee73a451e996ff9497caa7c33a85a8fcda2ce8c510ad516568909dcf793acd69f2b183775dc2e2921280c6c";
+      sha256 = "08db2ff728d5bfcf751e95eb9bba34a94c435e53863790ae06daf803d56c227d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/nb-NO/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/nb-NO/firefox-81.0b4.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha512 = "f1519f65a3437394906750a19b9581a2bbdd295f8491caac191a6d702cfd81eee31dc58f18297a2c77b7a3099c1cde191017590881613cec21ece0abb3b33b0b";
+      sha256 = "22cfe518994fff77dc41e6f45550549593564ef2fa2dd34e31af17f5e42d636d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/ne-NP/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ne-NP/firefox-81.0b4.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha512 = "c433b58a5c95c8bb15eba38fbbb443ddcd6e996809e382925284d46c5357901f3996d677cd1a7a4e3afb5d36fe9ff7aeeac9202f333a0acaf4cede1932fb9c1f";
+      sha256 = "605180e46adcaee8fb813dc41c4e7bbe5f509f181b607554137712405c0cc294";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/nl/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/nl/firefox-81.0b4.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha512 = "4a08f0571fb66742cf99abc582f761cc8dcd7297bc66db56f11f12bcbc5c46ad0030b6943d31d4f42faa9b2caed5b25576df34d4078ffad5712bc1cd7f9fb3bf";
+      sha256 = "ba8b45685a1d428d5fa1e38e1a3ec024f55db2f3ce4221fd53b96b0e0801a6b4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/nn-NO/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/nn-NO/firefox-81.0b4.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha512 = "97768cf2279b49a5d2ee5dafbd1315a9645ae017d6658106c4dfed682079d8b1aaaed201d8b571e8c00a5a305e5390a7f799307f167c24930b6e08b601586071";
+      sha256 = "0b76c63f7942576a2deb29cf15b089d2e73aa0b25f07eb1a511ccf033c68234a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/oc/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/oc/firefox-81.0b4.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha512 = "2bfb1e7d79c8c7256c7a4af08e33bd3cfd7bb3b5e214b06d50714d602b0ed44db5556d555d506b29d5779b86c8f15cabd6e9d4151e76e0c4e03003a49f1e2460";
+      sha256 = "5de508b4039c395b594a0c78d25655113906b95a735d1e94f8e1171ca789da19";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/pa-IN/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/pa-IN/firefox-81.0b4.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha512 = "e53b42fcc15613bef2201e2c8269269901130884fc7b3d4fbb5cc3eea1c9ff1a219503c2e2960643ae23ed0ee99287ba977f55f77df00c0cdbacd380623967ff";
+      sha256 = "0bf9e4751ef967f4c6f63cb6332fe3940698b3e67d0e4873ea6bf639487159f2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/pl/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/pl/firefox-81.0b4.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha512 = "bce7db6d18de63080a806dbf8639bd2f6dd00876605b17b9fcc741678618f1f17a5d991c461daa765cd2f3f217d2f39971e572e2e607b91bcdfc8ca15529526c";
+      sha256 = "0fcece8a65132810cb297a599cd4b003604854f0af684b33c9de554fbf7b1e86";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/pt-BR/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/pt-BR/firefox-81.0b4.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha512 = "7260d2a9ff4fc0b29f5c72942eee47c36b4041982924ece2a32f70a5a821bbbff07ebd57a3b97c64700a6e7815e3f00f8fc521ca7f99192b25f3199089b33738";
+      sha256 = "8363d209d1eb7e8053acb4805df119e230ab31e74b3389ddb01b53b032c12bf4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/pt-PT/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/pt-PT/firefox-81.0b4.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha512 = "47f02eb60a50799c542ec8f82dd5e43a684ca03dd8daf487d651a33c7ed78ab12be1ab910c2a658e67645b2537f6f112d9000b59377be448c066f218bc9287a9";
+      sha256 = "cf2ecf2a673f0a4f17cecb10b330bec530fd6e37aff9ed821aa68e202f59f864";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/rm/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/rm/firefox-81.0b4.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha512 = "dcea73109f2c6bd570729175e136856d1a8141cd3e6caa04ad5a0b94096171587980d9567181c41fcc950da92c15155ef23402ff7e97939fd7cc4d3c6d349e6d";
+      sha256 = "8849e945e79f0f9605e288de967e9f5316c792b150654e23ca65f6c91bba8978";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/ro/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ro/firefox-81.0b4.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha512 = "5189292876c243ef963f552123876d9a392a258efdd3704d4ac2b4da26d98e3ff5d281dd54be89ae414c8a78abf080234259045326487eabca45a645a1ba29c9";
+      sha256 = "452496612b170e53423009a128f092a3d4a372e0e6fe352e649b3c989f6f254b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/ru/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ru/firefox-81.0b4.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha512 = "c4ced260fbae120147c18cc03be8ed6c604c5b98c4c63d3f7ba579154cbfc04003b5ff03c65617cb6a2c65a49c36c81fc1c1b2d6315e51ea368165d0c6fe971c";
+      sha256 = "0e7787bee9fdbb1ca0bd3ef050b1ee5d6c6d8277da941232d6ef10c612003773";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/si/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/si/firefox-81.0b4.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha512 = "84f62ba8c25c46cfde46e2dfd2ca6e9051d75ff4b930f1898da661714976103530571a39ba19f374beb4ecbcbcb30a390483d91433558e2f263d9106efaefabb";
+      sha256 = "bfd6df7b86490aa941f5878ad749d7918bc3c907a177213ab8a60df0270eea69";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/sk/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/sk/firefox-81.0b4.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha512 = "9f9792fb821396d46c5ef30acd2d71ed224db8a8a533a6dc3f0afe3b8aa7c9915f425d921fc2f8adc11fa3f5d9ef2580eece36f488417cee4b4dd3988d9f7553";
+      sha256 = "87c4827968ac3de5fb7609b9d7685653ef279bafbbb8b15f15f93cc876d6e021";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/sl/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/sl/firefox-81.0b4.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha512 = "55d0c5d17f80d9a35ea5dffcc93ad6cf9af2414e8b74bb7f0681dc97b9c7292a95a9175400b1710ce5eb78e2aab6ca9a57deba96df68bc8b0949029a4fca55e4";
+      sha256 = "6b272ee0cc91ba6114dc777f1833ed5201a96fd905a0d68a71cbafafe1a066cb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/son/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/son/firefox-81.0b4.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha512 = "a341592537300f4aaaee8010c58143204487642bfd72fc25086aaf94bf916aeef57ac1a8cf5aa6d3456759a4a9416da6c72a6e222a1011bf3dcef3a1bacc53fc";
+      sha256 = "342f9eedcb359409fb324c13120ed25421435b614e9b5e15585ccf1551c263c4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/sq/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/sq/firefox-81.0b4.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha512 = "ce6f8b75467d9a97732a9541ceae1611b37ad81c2cac1a150502e4d96b3d2f0a35e3031f534cc974a13810716e2c2f4bd30d71f84076a98c0bff85b37bcdd51a";
+      sha256 = "ad11f5878139c46a2344d0bcf6b02ad2c19e59f9861e7ac74668801e14742b73";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/sr/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/sr/firefox-81.0b4.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha512 = "644cfbad8921ad9101eaa2eb20cc4764baecf8c2ac29e30ded8470df6b103cd39f2ac913b30a89cc92b8cd6e2a0a16a2c5dec61102a599e43675d9edf59ce2b7";
+      sha256 = "5e555aafe353036537609b9ba997374d106bb5ecaaa386b5395b7d156ff89901";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/sv-SE/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/sv-SE/firefox-81.0b4.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha512 = "6b4805545d53241e6f4bd6de168fe642d502cdcb33d805f696e7622894b7e1e347870294b168f2be191b96c8d109bf567a0c102c727b0d6d399e4bf1f0e0464b";
+      sha256 = "cbd33b4fd20d8a7401e384196c28adf9fda6ee2bf24895d75e75f8b727d33e53";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/ta/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ta/firefox-81.0b4.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha512 = "0681cef623d3266b40cf3081c19f5fd54b0aac447684553fa9205735099bacd615d024f2205329c2c14a4f48c81cb7356039cb8bdc76c0e68b0c4c85c821f0a7";
+      sha256 = "8e4e9919ec79c1847449cc75539f24801d972b67d6895727aafddf7485d95ed3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/te/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/te/firefox-81.0b4.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha512 = "d1b4eab69607d6ce2b94841c2320aebdfbbf2ed71d09d2d34eaeedf18828b3db6c85062f52dfd7555230d29b5431db742ed261d76c7ff61bc8e652dd9af5eae1";
+      sha256 = "cb756aa758e69f26eb50d2e81bcb922c2a15a2304ef99debe67a57c44b2c3c52";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/th/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/th/firefox-81.0b4.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha512 = "2020ca64cc8aac6fc5cf45fb9201dfff33f29c453bd2e876456017876f7965bde5308464bf08eaafd457da2d51dbee385cdf35921ca8f92f651ed9cf3b900697";
+      sha256 = "8c2be1458aa4077264ec946181d7ab3160086d12c821dc3d5fa3bbba46de3574";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/tl/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/tl/firefox-81.0b4.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha512 = "9cef23915220fd61dd699fae18ce7ceac585d5b704ebf8268365a36108d0e52a488a88deb49e0b942fc2cfc164d5306d1bcba9c2ebefaabcead775bde181f368";
+      sha256 = "e51e4cf97b79b3720129ed9467b57d393a4ffd5698a9a941cd28feffa1d166fa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/tr/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/tr/firefox-81.0b4.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha512 = "7f02a59ba18c59648c98f5965bd0e960149b2edf121ebc2590353d4aa8fc26a270ef2fb16f9a80fa69e604244d56cdaf3029c12149049aabe9796e347fcc4d77";
+      sha256 = "9f0a494434bc3d78c43428bc535517b5d61743326fbdbf1836a84f353408a54e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/trs/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/trs/firefox-81.0b4.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha512 = "e1dc9905817bdff2db64f60440044204c9335c443b9db605915a4b412426ae877f5e7b2a83cb8b73ca534627d2b1b8b4b9a11306779baa8516ba06d85b3b9a18";
+      sha256 = "24cadb7247a254595c29aebe60784d37061465f2c960a8d036096c6df71e4186";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/uk/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/uk/firefox-81.0b4.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha512 = "3bb99eda1b5c33418ae7267dfe65bb905c617818f405b80e775d70d6bb8a78f143843aa2256e442aa36304ae6f4284524ce4836a1c864ba06fe558c202f04258";
+      sha256 = "6aa85e7119fd3ca00cd87d898eb93d954b1e58d01edf14106c41df98bdca4d99";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/ur/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/ur/firefox-81.0b4.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha512 = "e1f71eb9b6b5f0dcdeedd3cca964a6110e6d9cf4e5fae815922135b3dee8bd6ce42c97b893eb922e436c5088130035793d99293ec1c5ce8c70d4ae5e0a097f7b";
+      sha256 = "6b188379acb89178d08e827a60244c2298eae62434991d53378327c36829fa01";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/uz/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/uz/firefox-81.0b4.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha512 = "39cc68ab411bbfb784ea3a70306ad2fd27cf377e796f3cf39a1f68d70363923dd1fb0cfcd39f62efa2940439969ae0467191c0c62ac68dfb5205b29760f9a923";
+      sha256 = "782ced50737f68a9fa6db854cde83ef7bbc6f95776a44918248efcedd95230ec";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/vi/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/vi/firefox-81.0b4.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha512 = "4ab8ee124d40ed7a26ff0cf7257c60dc8a9879c82b6b881ee0fbae1662fa8e26f672ad59993419dbe93458723c4d4b1a1dbec261ec3811c348449a1a352dd688";
+      sha256 = "37b600b306c901080f659955163b1696f5129e71bc3c5f65dc74d280ee6e3024";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/xh/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/xh/firefox-81.0b4.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha512 = "fea8a74c935e7213e551b1f9c2c00286eca13a2d1a987bf523ebabcd57bcc5dfdcdceb23b4d589e354f116900b8ace28e41a069fa0d8692656e70960025e39f8";
+      sha256 = "ebdfb9a50a5a7cad0508ade647ef3f81e18837d6b84212de6393a854bbfc652f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/zh-CN/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/zh-CN/firefox-81.0b4.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha512 = "a5b1dcc1fad60e62f3d7b258193f7c76a807ec3efbc766c50096649eb1e4bb523a981f4b30c9d93a1bd814dea1d99230ad3091a1f8502ac44e177073c0afcb3c";
+      sha256 = "fbc7b8952fa6d2d73b736abf4e60a10512eb983ea4588f7e746bff9512b953ce";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/78.0b2/linux-i686/zh-TW/firefox-78.0b2.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0b4/linux-i686/zh-TW/firefox-81.0b4.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha512 = "3f82220802d5fee6502464faf62bc0dd7edcddd0bb93d9e9636da70b7a5e4760d1b1928976793d984c56c6aa73cc9bb13b687590b0a85b395137fa4d7ec72d90";
+      sha256 = "5c29c56ef6480703ef9b6a2dc3cae8bc45b2fc01495ba099bd1ee28bbcdce55a";
     }
     ];
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
index 4a9c3b90cabf..d86b9d6f9870 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/default.nix
@@ -8,7 +8,6 @@
 , dbus
 , fontconfig
 , freetype
-, gconf
 , gdk-pixbuf
 , glib
 , glibc
@@ -27,9 +26,7 @@
 , libXinerama
 , libXrender
 , libXt
-, libcanberra-gtk2
-, libgnome
-, libgnomeui
+, libcanberra
 , libnotify
 , gnome3
 , libGLU, libGL
@@ -48,7 +45,7 @@
 , gnused
 , gnugrep
 , gnupg
-, ffmpeg_3
+, ffmpeg
 , runtimeShell
 , mesa # firefox wants gbm for drm+dmabuf
 , systemLocale ? config.i18n.defaultLocale or "en-US"
@@ -88,7 +85,7 @@ in
 stdenv.mkDerivation {
   inherit name;
 
-  src = fetchurl { inherit (source) url sha512; };
+  src = fetchurl { inherit (source) url sha256; };
 
   phases = [ "unpackPhase" "patchPhase" "installPhase" "fixupPhase" ];
 
@@ -104,7 +101,6 @@ stdenv.mkDerivation {
       dbus
       fontconfig
       freetype
-      gconf
       gdk-pixbuf
       glib
       glibc
@@ -124,9 +120,7 @@ stdenv.mkDerivation {
       libXinerama
       libXrender
       libXt
-      libcanberra-gtk2
-      libgnome
-      libgnomeui
+      libcanberra
       libnotify
       libGLU libGL
       nspr
@@ -136,7 +130,7 @@ stdenv.mkDerivation {
       libpulseaudio
       (lib.getDev libpulseaudio)
       systemd
-      ffmpeg_3
+      ffmpeg
     ] + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [
       stdenv.cc.cc
     ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
index f9045a4cc19e..5b61afe0241c 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/devedition_sources.nix
@@ -1,965 +1,965 @@
 {
-  version = "77.0b7";
+  version = "80.0b8";
   sources = [
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/ach/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ach/firefox-80.0b8.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha512 = "b377d891ec1ede4d13a55bf6dccf67e9cacdad118241902ea97a1719f784cd8dcae47fc015bc79e4bf7c4a76dd66472cc56a39173021ee1c259bcd5f0b7c3097";
+      sha256 = "f9b686c12733f6be1c96fcc71727f55e9c79f417df64a4b703c7fadaaf3a85e6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/af/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/af/firefox-80.0b8.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha512 = "729d7a9cff65d7d002e732a4224921621e3b29c1afa0575506863dece3290722d916ab6072ddf6701628204e9b78d19a5b0ee90c11fc27772ea2eb30ae62858e";
+      sha256 = "dc73e323741c3612607812878d24450b0b5d5274a8e58d25a9c3957d457b2431";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/an/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/an/firefox-80.0b8.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha512 = "7421dac51885269cbdea9514e4d96a9dc9a5acff496176f80fedf8dc570bb3113d3eceaaf25203aeadf2357b364e46b010df2d973f0d8c39cd6df7e408d286c1";
+      sha256 = "a84e966f8ac0373f63c7fd76148e16c56af645bb9b83cccee91e20065883f92d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/ar/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ar/firefox-80.0b8.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha512 = "922cc579853ee87f9055b48c12df6ae5a756dcb0e6fef8907ea0befec3f7c2d53f158b4a089bd8bd42765104e0118328d27da4ca8924e732125b207ef72887d1";
+      sha256 = "9949f976617961c3853fc6e4596bac9a7c18d66b72df22b9b217dbccaea6b0c7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/ast/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ast/firefox-80.0b8.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha512 = "6d193a8a8aa22a667de3fa4c2b53ce9d9a674919c7e3c95fa7357cb968e3dd36bbd123b2fec06a3cb08bc298e5fdd38c4dce690d10ff15bd31768c7694d0e6c9";
+      sha256 = "89f277e215e11c7efd270c6f0952292db5c85057a50b48a3753fb16c1322587d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/az/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/az/firefox-80.0b8.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha512 = "5048b6b859650523c1a98d6f0c471dce49833f6303a67f8bd02295dbd341981d145145671660ded3c777817aaf970b478e377bbd3fb367fcad5850402a16474b";
+      sha256 = "44c84f6e00f5672c4f4b5d26d727da4aa0e8f5bbdcb4ab484be4015b5ea4bb55";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/be/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/be/firefox-80.0b8.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha512 = "0288debe1839fcbc9067e26411233b8b29960dbbe65c0878955eae67b91da7de0d51000e8adcac1e3f3e91d531c371f677e418366e50ed33337a4ce46c811b6d";
+      sha256 = "cbcb4dbf931214f01167705529ce410935a378ddf76f32c04a16a019a04dcec6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/bg/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/bg/firefox-80.0b8.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha512 = "35821fcb332de76d2dbd039e9dc417631d8303921cb30947d39e6d0e57edd62f5fa1935238899076029189250a73dd657f25662f5bfdd193a5eb6227c706fb7f";
+      sha256 = "6af931944901fc143d9958538aecfcfa5c8604aa928dcad7ff4062e4752b2861";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/bn/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/bn/firefox-80.0b8.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha512 = "82b553daf2ad0e93232b655fbe1c24928625c7f682ef755e1f1759847cd93f0b66bd000784274a40ab5ea0e89985018bf17835208746197b546244503138db55";
+      sha256 = "5f44e1a8abf75708aed3c73c217ac6aa31520c32eae8c6a2c28838d4591fd779";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/br/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/br/firefox-80.0b8.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha512 = "69952a7d21006632a77c0e719bcdd3370d72760c98df348486d4f5c9d4d6ba73641b2133a615f8c5548e5708d4d68a499466d4ac32f690c9b76eea54f988325c";
+      sha256 = "7f345832f046770ff20457c902b499a6d2d3650e3cbad696d0a0ce81371b8710";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/bs/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/bs/firefox-80.0b8.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha512 = "fdf0975e3b17097469f54e57b99fd99b69ed8241263600524b1599db94640b4b7bc105a67edcf67b70766188ba20ba7e9b7e96b181c2ed6de020c112af75dcd6";
+      sha256 = "539e441b74c8897113d8fe36076473f61cd26f9be24d5197dfa8f92a5ce68169";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/ca-valencia/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ca-valencia/firefox-80.0b8.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha512 = "438c3e5e9f6a34bda35ffced50e00012a9b84ef589b8868a7746f4f0abbe4143e591f5710d075def1187d61b7f289df0c4a5add6ba4c37227d04509c2b645207";
+      sha256 = "8f8581a6888dbdce1d357e8a289a0befa20e1679a8cc7bff13ef237bb5498ec9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/ca/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ca/firefox-80.0b8.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha512 = "884d87560ea62da3218fc7bcb5b3b3fb9d98e70d5c13bf86627ce61e20aca5a8717db595b9141a302753fb0d704f1c1da99c0a8bb3e1f83fd3f6eddeeea5218a";
+      sha256 = "5f3b7553a62465e18e103ffce48f75cc58489349c3cf966e3ba0138ce14d7b8c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/cak/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/cak/firefox-80.0b8.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha512 = "6525cd987abbd4e871122a20c25c4ba353272437b56f82e1a9baec9581a6a10637a85942bbc261a375842660606259fd030c59e325b05aa9fe7f3dda77864a7b";
+      sha256 = "a1269157c6ec005756c1e0f0bbbf61a524f03b4c69022a2c49661c0375a78839";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/cs/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/cs/firefox-80.0b8.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha512 = "c3eb1d943b892fc41e25ee2bf15f0877ac297483595f7abea31332311e764353d8b12b7879044f688d8cc97f3104a7bc2b0305b02b8412a78e388e59b04d29ac";
+      sha256 = "15a26b351b40964089c8eed80fd5cadafd66ef39abbf19ce50a8b7ef5bdc661d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/cy/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/cy/firefox-80.0b8.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha512 = "0a66eed4424c392f5dfaafa6aa198108757abffb069f8f665c06bdd24dfca08dff314447c57cd81815fdfaf54edc87eb67a6dd5c190e3512a15645e31d5d8428";
+      sha256 = "8400fc3e6192f2095d4a57bf354dbeee1b771a8aa61ab0d865956cdddfafcaf6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/da/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/da/firefox-80.0b8.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha512 = "e29aeeafc1f0d456dbe66d7ab07a632e91a25c62cfa03355eb3c4d9396529bf7908980b59acb9fe04204342b4c99f4f05ef5f440d638340272d20fd2bcfbc596";
+      sha256 = "83c7818e65c32723c2bd0a4f65a33f19941fdcc5d84055cf2532cf8c4592020b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/de/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/de/firefox-80.0b8.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha512 = "b3aaec2e3d1a23976378bbe526c63503406690e23ccbf0e255f54c5eae34452491f414d5a8be6f9d8e7bf14d6d4479b9819289074b342691c607dd1a013db45c";
+      sha256 = "589b9249ffcff23c388716c24cd09baa8b309d771b97f4dfcf9c979ad9a3342a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/dsb/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/dsb/firefox-80.0b8.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha512 = "ebaff33285d3d78e22deb21da917174a8db140d05d511ad75dd1125361e4c1e7c6530f5fa096634f3bbe364c42c55cc0e36ca7066c05ac21822b28898841c49a";
+      sha256 = "df57cc439fa74d93921c7c1265b7335e23c0df545e78eccce34e06fa528e75b3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/el/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/el/firefox-80.0b8.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha512 = "706fbbb44ecb6e7acb93d7fe8c1bd5f4fb3d3fad7a8e64648770fa69756309c0aaf0c2ff583b2bccb30c9f34450631ca886db0343ace3fa80bc1a6e7934cc134";
+      sha256 = "7a2b0380cc8733e7d6eb5adc228fd543d8459d7b7d9ffbcb39b73dffd395e5de";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/en-CA/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/en-CA/firefox-80.0b8.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha512 = "62206c436f7fe811149936b8c73d62126e21874d63f66c72e7aff0e8d4f9fa26496a8adcd842071a602638ee01a14451c65c0ba8a2847f0b30b3d7da9c2625b8";
+      sha256 = "6e747524fb05aa987e0c24b21fc9ab27901f1cb205b7cffa100d5bdb7ba130c6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/en-GB/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/en-GB/firefox-80.0b8.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha512 = "6481706c1f34378bc4c804216217b15ca90a214baaf6ad29ca0fd80cf050b4f5eca17d29427d0e4bb0a5c966b407ad7d4ce08c085a68a193a500480c9196c760";
+      sha256 = "4e95f0c08c44e6d4830abaf9c2d25b10e63753f1dd48e192d4464a03b82a68de";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/en-US/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/en-US/firefox-80.0b8.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha512 = "74ece95a9a152addfc30de6f3daccbb64172c4081163467401d6459d4f7a65a7e459ec91663dd066f9cd7f867e7455e09fd1bad4fd9da7a6c3af20426474f95a";
+      sha256 = "2b75be9a3961e734ae16e591c367e76828e9a3adc458629db69fe5fb32a8b476";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/eo/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/eo/firefox-80.0b8.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha512 = "fca83582fe7cf14948fc352981dcbbc136cafbfd19fc85732466aa8af27cfde37264dd3168e9388c12eeb624d9af561bdd4caeceffe8d42a393d1133a8c20277";
+      sha256 = "2fb71c60605c4c56432c262f62d72509d520787a7e86a45b496a68e55d08823b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/es-AR/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/es-AR/firefox-80.0b8.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha512 = "442f9e533a1fa892d19aef77ca64024938ab934f4f963268ccdef1a715a2c3f2feb73f9c2f6c46751217d4dba9f72dbe88ed1b1114be22e2839c0b34a68e8c35";
+      sha256 = "3aefd418e20dbb7ae0b8aa87d15be140b4ddd7f6572ae0ca691b98f7f919361b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/es-CL/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/es-CL/firefox-80.0b8.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha512 = "29f4c00ccf180e239a6660f5832d6ba21c733ae0b90150b1da128e7cd072b6ff5974c6479e161c7b646f1367449b8373af9ffd7d072bad2a190e50627a17816c";
+      sha256 = "7d650204f7f717cb39b218919b3654db5cced3fffa4d06fdcbd4eba5cea1263b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/es-ES/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/es-ES/firefox-80.0b8.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha512 = "f1d9ea6a116804e7deedf6e6d62b83224e1f7514255394f78fedecf500cc3343fc9fad1da1f690fde9a7eea4d3dfe0cd214a99a2f9bf3b83eb45ab00cc12de7e";
+      sha256 = "5870182df6c69538ac1eaad0e61f580165e2e916cb76bbdee8b659a5a58dc68b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/es-MX/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/es-MX/firefox-80.0b8.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha512 = "8d4be6d04c22e1c98953b1a1468b2768d956b4d0190638cd24273d1a0356dd8479dca22566c5d45b8ec18a074be472e9ba9726b5224fbd3a2b7f05af3b46c411";
+      sha256 = "166dc0e61759c879737a10c3b709e5bc94493bfbf01a7997c2d38b48254d6af6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/et/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/et/firefox-80.0b8.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha512 = "2c9962437d764aa27dc3d6a6c00e3cc40a456504cd74fe3a7f74a0f0216d54e9e4d9383fe6c5368fc28ae08d0b5424f65b9f50e33a7b6dc14c344a1aafb90fd0";
+      sha256 = "b8b8ea33ad920876b36abd8d35a61f01548c5a482c7eab0998f83f066bb62e27";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/eu/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/eu/firefox-80.0b8.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha512 = "c465778901b01e966fdf81e56b0f1b7667898ff0359711fd32e343692dd216704941e30c3ae7f4882f42fa297715f778e68094db85583c0e60a57cb91e95cbce";
+      sha256 = "255637aa99002ea1f353098b19787077501efc915a74c2bc88a6ed6c05f12079";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/fa/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/fa/firefox-80.0b8.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha512 = "e194a9be6f993b177031a2fd3d91d955abb6d7a4d249e8864d5a894f1f9af87c39034801ebc9d1cda5f934c8259706c6e7fdcea344b5602f6d4ea8008375ed53";
+      sha256 = "304144942ac8e71f4c29bf4bbc91f17a05bfd712e621cc0029909e0b65e09a95";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/ff/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ff/firefox-80.0b8.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha512 = "613dd230689ca36df61d558db43d8d204da5168ed1172bd29e732e0a640d5f954ec4f5eb03e8c6abe5646139005981bfed716dba8fcfdb2e697627e563a6ba0b";
+      sha256 = "7ce1b42078fe98783e2da541cdd69dd2083ada20254ef80fb53454950e77eddd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/fi/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/fi/firefox-80.0b8.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha512 = "63dfc7ea59a29901165707b3c11f1087c6e23a27805de1d355d677943c84303b7c54c199d0610a714b930539bbde96991a79aa895fdd3f6952174548fe014d0a";
+      sha256 = "af9271da2138c9c0d73fec09c5356a87b91aecc36a1211a9ce35e0ee1bcedda2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/fr/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/fr/firefox-80.0b8.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha512 = "477539bce633a1447937d5689972fedaa1592954ea3cd1537f648d1aca9801fba8441ba6c35cd2148646607982d84fec743bbb115da6807f29790c38d5c22e45";
+      sha256 = "c7f347082b17060c7af21ef12f9fd8b210ee20f877e7e791379c482a63e04ace";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/fy-NL/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/fy-NL/firefox-80.0b8.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha512 = "cab7637566adf3d41e25915b6e94020214da31aa12a6e913754d1de2fad0fac9abf61686af64bad21eb07e696f23ece8ac38d8255848d5bcc6b0c1ba4c9bd374";
+      sha256 = "51d42832b2f58e0d8f011762f9884dd49ab243d45b050258ceeae96bb92daad9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/ga-IE/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ga-IE/firefox-80.0b8.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha512 = "843f136635783c6a586ed273f5d97f152b004406c53958e59d265f48e5390fd42246c2e92491ff4b39633bcfa15ab1c8c420b3749a468b87672ad900fbe23de2";
+      sha256 = "33a50b14ff9d965deac611e0dd6a85de9caa9cde9b99a8dd955a28916e026d7e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/gd/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/gd/firefox-80.0b8.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha512 = "380ee84b44b90329eb253a604508584cb15fb3d36dd25a859dcfc8443cedefa54959fa958827132d1260cd040b70369d65319f8e18d06359aeb420b96068ea7d";
+      sha256 = "bd3469f5c101682a723eb5b261c591fa619b64dc99466ae919658cf44ae8fed4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/gl/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/gl/firefox-80.0b8.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha512 = "e328dfe710d097c49062b9d0a54f42d4896177ad7ba174fb5e45b37baf78ada25089360bb0bc7211d605cab92a2f3c220cd1b78a7bc0c65ac17d15314c68dc94";
+      sha256 = "eedd3b89b26b6634827e07a5b20b57716f54a604b18d9849a4b2fe30ab7c366e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/gn/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/gn/firefox-80.0b8.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha512 = "2f65aa3b62e2573cbfb0591e1ccc729f983035c3ada9159e9fb8014263f38731d19e5a2da41943c0c540ff1dbc7620c9fde82c24dac49da7b2d920c1d7faa4f3";
+      sha256 = "206a292bdf13d98a502ff89ea57e94b37a528e57b88c1611c5094ed64aae2b0d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/gu-IN/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/gu-IN/firefox-80.0b8.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha512 = "2d756897a5e3f7f038d3e000bfe6f1976611eae436ced45d5c06eea140ba26041c08588b6ceb7fc5026945a19a46715b154d0860ec7744762183f17d07b5e792";
+      sha256 = "2ec91a2be77abc9b52e4d466cfaef70ef02b7b92e332fe572cdc3f4e53ac5276";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/he/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/he/firefox-80.0b8.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha512 = "fb5e2142f842ca0afbc5473dc3031eaba2bbc1f7ebe412d88696f05d8ab7102d9d8c57c318e7f6a8106b07e9cd6d7832ec9012868cf6b7571367ae1514959cc3";
+      sha256 = "5f53772c8a24d4fe1be3cc21673a924a5d65e606168f079b8091f4502d1218b7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/hi-IN/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/hi-IN/firefox-80.0b8.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha512 = "5e779dc92115568c08ad511469e03af1b4018ed15638f88ff83df08cd5dacaf9bda39cb5877757f7eef3d0d47b43777eac5363ba4a2a4ea895663d8deedd643a";
+      sha256 = "15e74fb5124e1547f7eb776bd3b6d4096338731f1d97b6c0944e7f3af1b569c9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/hr/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/hr/firefox-80.0b8.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha512 = "2d196ec8cecd41fc5ea76aa535d830f98cec1572f7d8e7d8999769c09a49cd2063c9cc59314748579b8fb0fa9446b22df96b43c4f462b25dab96c265ba4f4d41";
+      sha256 = "5c4a0c766ed006e0f43856104aa8bd96e8d63ca618fda401370633b707e80374";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/hsb/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/hsb/firefox-80.0b8.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha512 = "647bf9dbfb8f5d053b84c507abc1b121387464542621264df72236a29accdb895e8c71ecef80f7a5a241ff4a18db47e4340f67a0653669e39cc56cfa622dbc1d";
+      sha256 = "6945e71a060bcbf8a329c65ddcba786beb4f955cc2105806bf5873c07daae988";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/hu/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/hu/firefox-80.0b8.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha512 = "7a67cd7d6c4563189c93bc2b418423d6f787b36c5b188411ce49f763421d66ed37404b9caa0bf63ec4c150019df79de1992ef5a98600e63b5a8902ab44354a0a";
+      sha256 = "5da76038365922aff82c540652132c7763a07f4336ef003a434299240444b036";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/hy-AM/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/hy-AM/firefox-80.0b8.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha512 = "3a9fc6e362af83a1776619e0a5b36ce6f5e59cb46d2e8f9be2c57bc35b7e4e2f82b5ba4b61e637bddb470342fa67993b0374f2065946ae0ce24af1e187695211";
+      sha256 = "4be5260452b39b707d271b5696710038174c397083f626b3fd877aad36c37142";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/ia/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ia/firefox-80.0b8.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha512 = "5eaa3a5d9b0cfcee453de81138ab9ffbf1abb58eedb97a6b1dddc73eeb919c89bf077138d7b86bf804bb545fdec404724f7f76936cb09fca3844a93c7008dea8";
+      sha256 = "94dac5899d0f2d5afa0dec53472afb329b956347d22581e1b9668a123d200278";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/id/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/id/firefox-80.0b8.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha512 = "714c19533e92d23d7ceb7ba07dea6842d6f378c8d705ab9fd51769720c1b7faa8fdfdc9786dee881aeb5106e5a38b840aae4f5134962db225d0d13c0a9dd886c";
+      sha256 = "d4cade715292ed116c2605dd6a8c70854cad373641982283decbc1e2f0417490";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/is/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/is/firefox-80.0b8.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha512 = "0b7216b9c09eb67d774fd0b8cf1a1b43a6cfd14d5327f6768136de3190974bc2fcb250f920253de8e77f7c61efcd23d0790da1eac2aeccc77e4e74fb4cc5d643";
+      sha256 = "5f4bf4e8bb2f5e72872e99f8415b864df457c93ddabbcd4377588895c83b1d7a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/it/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/it/firefox-80.0b8.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha512 = "898c073e7335e7f2ef15abcbe9411f31522c2da464b62c2997550660dcb068fcaec2ab5e12fa4818816a34b37cf2a46bf9c5b36f65697a521cd5b0c05960122f";
+      sha256 = "5fa9251fd8c8e0d4aebc006ea1f8df15afada7276a1bd0517b89c2a6f8e488b6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/ja/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ja/firefox-80.0b8.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha512 = "f6dfd4d7aa9c1a0ced11034b59de3add54ef2b30aaff30a14081824bcfbd7bc020ef840f8c12544329b506fad1567400d2c7f57ddea22bd1fd37c17ddbe851d9";
+      sha256 = "a1557fd84bb39786566b6c11d1efea9464a96b77a690b1b1c3b165283c031185";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/ka/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ka/firefox-80.0b8.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha512 = "5dfb93fa63f26772a52b7d52a0839f1bb624408097cf927de0222eb06fc9b9b7a9649475d2fc6a02e7c66ab1e6aecd8fe3d959452a73b1f9d3d1be6fa1aa018e";
+      sha256 = "f9359c7eb9c6536ced999c18571babd932a1b1bd22565d6489bb43cb17893eb8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/kab/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/kab/firefox-80.0b8.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha512 = "767e3793cbe7e4023f227818617819026693287c3927d18193883e603d21d23c0239173266c89d776afc8ab0cbfb40ce9b4516e4663a44928abdb7672dea3f85";
+      sha256 = "9b34875edfbf6383b5bbddd110d969e32e448e47eaf48b7f41c215e6b3f8da62";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/kk/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/kk/firefox-80.0b8.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha512 = "b4b7147631146a53b9ab32f8a3319466f0837219284d4757e29588890bd518b45c7ce329cf73e3840c018a160a13f841851c407a0c4ea06cc3acce163be8cf79";
+      sha256 = "78bdac1a7f0bd82440e43c6079332624b1e7e60defe45d55493857b1f9e2c7ce";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/km/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/km/firefox-80.0b8.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha512 = "d3fc7706838fd310d34e9b45ee2fbdda352620b434e011a9b54aab598777001aaf24db2ea528da413356a486fa330729d121acf7e103905eac9bd914b5473426";
+      sha256 = "9fc753e4fa4a2a3a911dcfe9d8c7c993416833bedec4e94e85d95ef075209377";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/kn/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/kn/firefox-80.0b8.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha512 = "61621680b5dddd1058e58e741d2190a7d07ca74301706dc61d823b1577ba3b76c72cccd30fa64f4b5b95748e6ee4077945d6b7dfcc21d648f13ed7be62de2eca";
+      sha256 = "1e45e618c6d4db4f870e4d3baf60676d2a76916ce0998ae33d671ab73e8c1bfa";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/ko/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ko/firefox-80.0b8.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha512 = "66677835319f120fbd2290d7a050f2846484229527820e3e49daf3b7f377acbbfd0a736f2e71c388691f1d04ee013864813119e7f7c5c7528887b8061b62bc0b";
+      sha256 = "afe8410a5be470aa016720f411f33aa0b244fa34dacb138ab145b97a7e195db9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/lij/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/lij/firefox-80.0b8.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha512 = "d590da1e993a5d598411717a9e4ec87876066fe106ae1cf37deeed77a0508885d47836cf6653d144be30dc21917a56cf5977f99f3c38d5e9843eb52d69a7d267";
+      sha256 = "094f4ad0a2b988f0d75938dd6439ad5dacb1eee42584e7d1b424289117512d49";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/lt/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/lt/firefox-80.0b8.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha512 = "450772baf4bec1a8077aa4ae1dd52d84ecefffcd4f93b9c486bbb4eec12c879a8daf2cbe51dfa2f81598abab6242bd63100d8243477d3176985a689eb2688147";
+      sha256 = "69164a34e2cacc8f68e8e87defe713c4dcd1de278d449e1f9eb7b8cf42aae305";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/lv/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/lv/firefox-80.0b8.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha512 = "3ef9bcbc9356a83b20f3f3fa83530790209866456f44f9115f8f22a1dece72bc28f485f24dbfb854c77d4306e2f3da5f759f7fbaf151ac8a8f303b2dd24832ae";
+      sha256 = "10262da2e4d50f2e331b3bd0c4d064002a3a5f10719284b96cced812ca0551bb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/mk/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/mk/firefox-80.0b8.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha512 = "59e8a7fdaa37513e11722397d9708db397aca75eecf3ae2e3b99f42a9e40e89b183c6ff36fccec1c310269b5a4ec3ff9f81985ece314a868585082e4d132012a";
+      sha256 = "d310667e306b177191965b40b6cc8556e0fa749a3ebfa6120b0255e701d81ac1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/mr/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/mr/firefox-80.0b8.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha512 = "bb7a9577fc6080fbb82918601405e8a6da59662c9edbb568e558ceaf71e04e95aa3dbd7acfbc780759b0cdeaca4b67e24cec1aa57fec30473d8410fe717450c5";
+      sha256 = "2130fd9a56e2e4f4c09ea57cf0a566ade53c255c52e867c40316e14a04a59e0f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/ms/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ms/firefox-80.0b8.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha512 = "e8bfbc9f54b3cb2d2a3f816329948f9e13723dc6c680c41e33cdf3bbe4825e89c9547144cf5dfd3ecebb0fe8759cbbedbe7caddd85c31007ab28b42219a8c159";
+      sha256 = "ac215f60d098eacfb4d03e857e0229d0368a113e5758f00044790953712cc4bf";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/my/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/my/firefox-80.0b8.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha512 = "b95c1800738ebf79b5ffc64fa1a11ef772614eef6f49faeb977677c31e545e4bbaec3c9c75567afdc75397cd40dd80a671ff03ac17bc62ede2bdf162323e6559";
+      sha256 = "0f89f81cde40821463e9ddbd988616d019d73fc0a27cc3a427dad4c9bd6fc931";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/nb-NO/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/nb-NO/firefox-80.0b8.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha512 = "505d68a0009efa7c8312fc5230c00e3d72c8412d6308360cc10257ceaeff98b3f22a5eea9ceaddd7566a9a690b4f0c04f91dd8a447bd338af02c915115cde506";
+      sha256 = "4d599136e6a8f430f21605895d2ea63aaa3542a2b9dff5fa44d3a618dff1be5b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/ne-NP/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ne-NP/firefox-80.0b8.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha512 = "01eb90cc8c93afdc34fdc0e47eb5b4a012c9fe7d3dde1301ecece240562766066901d80cd3789e97f2f7a7188d56aaf7bd67c56c4e4a210b30ad10a738ca5b1b";
+      sha256 = "859dc2201e76de7f08b2c29d11382f02bb2eb6f9ec48f65656f578da67cc10d3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/nl/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/nl/firefox-80.0b8.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha512 = "486aba5ffc551be80e8e9b35cd92b903e318a3870638c532dcfc10cf0a7d545825eb7ef54b74d76f66cca2e86e25614896f78eac63b3662b43ed313b853ad4e7";
+      sha256 = "f9b7784f2c626f6bfe8a39a18a593d9f0d10d0f6407d1015969fd3744a483e88";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/nn-NO/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/nn-NO/firefox-80.0b8.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha512 = "b0e885c206d93c294997b3798a93738f99e4bbc459f7e8c7ff688414b73f69509686056f86b12407677a79b7d4bd7aa34f4dbebd5965c6a92766f3448a33cd79";
+      sha256 = "6c46d8b833423fe0eed0da6c162ae16f6969b569902c41fa21ee7e19ce7515fd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/oc/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/oc/firefox-80.0b8.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha512 = "1b04601dfa2110a2999dea0d6fcc19fc40b487296c705a403e741c9a9e0405fc90c774af7665c9335e605d6fcba3c8826701a497483b896e7911bae3a7ca7a80";
+      sha256 = "c359b9438f6065adb64baca086b7bed295ffccb825a96b4bcc5721ed4346a061";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/pa-IN/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/pa-IN/firefox-80.0b8.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha512 = "59d6957fcd1b2527cb77622df7cec4267d84fea180dbd2a7397871c90b2c27e8dd0b01881229eeb7219b548258d72448e690d654262ee55cfdcfa9d4a337e102";
+      sha256 = "6ae3b82728155e195747176188e30d4ddc3d5e9499ab018902e2e1289b19c171";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/pl/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/pl/firefox-80.0b8.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha512 = "1d18dc2e580238d59997198d9aeea8673aa1d32db329c0dae79e52d9e3e64b063f4b96695bd18ca0a449ac3fd5bf77815aeeae05c108c139dd73134199a6e599";
+      sha256 = "45b97c17dcd1042eb205f6c59f5b679fcd224705cd5009dc2e39c8a22099ecb9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/pt-BR/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/pt-BR/firefox-80.0b8.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha512 = "1d8bf57c135e56eb6fd823c605e870aa62f2b2c4d99f50447169411a3877fc089c588fb085d4c3a2dd62a2a955c5f7bb39cc6e8c391dad0f6c2d1f20f4a5944a";
+      sha256 = "50b2309fc1b083f739b090729096fe82747dc3e889923d271aae500ee5f0c82d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/pt-PT/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/pt-PT/firefox-80.0b8.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha512 = "41d3c18252287a172dbbd70c713e7176de8ff107ba0bff47c6f2546b8573bdb11508ca550fd8cc56d23172a84e30e1573dfa43232d4298c1862d5e8fa0ac2451";
+      sha256 = "aac403c497aa1bb9e37038ea7897f57074278d080e592bf1984f1712a80de632";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/rm/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/rm/firefox-80.0b8.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha512 = "b0b485f098475c1a1d422b8bf170e77ddd3ff2b7b3432bbd43dda975522767b9103368c74b8a74b7cf5639b6fe72690380b9c7c94995afa1badf728969123f62";
+      sha256 = "b8330c7ef733c1d50e320376bdd9c5205fd56f58fc7baf46497f1b0902193dc5";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/ro/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ro/firefox-80.0b8.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha512 = "ad8312d0ca6595dcf0073fc2de8a52dac61610e2714500372250ce142f1220ba4449f6cd5f0c0a2754eee11aef5a71062e82c08417ffd0222d771ea701943b3f";
+      sha256 = "ae7d39f56d162d7b8bfb4d55c6de9b46a40f45c1bf9a4191e65c7a99a36b22ab";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/ru/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ru/firefox-80.0b8.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha512 = "ca9bdf02f34f92f0c752fbb55d6f69d17206f47b8745df9d224dca47d57ca1cc4b5646f374b37d1250733f66d83afe287bb698bbf783b08a6b7ddfdfe35a2e64";
+      sha256 = "10e1adf60a23574fd5ccf9ae1be83710c92c902367174f73952d18412228814f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/si/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/si/firefox-80.0b8.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha512 = "2c621f00a6b2f2978fdbc28fceadcf2385711cc56c0b47c536c690ff3c7549a2b9cae71c9eb1ce40c7a199cc936f1402e7d3f5055a70b98b015ac25006019464";
+      sha256 = "fe02265dfb0bb12ad9a5739e802937540425789c8e36220f59001ef4fc256f16";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/sk/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/sk/firefox-80.0b8.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha512 = "2fbbdc40f1308513fb9064f6057a383af60d5a7f60d07a4918f6631d59762a2a8cc11b23de167ed0a7317c290436cc15443e6d893b92a53df1bae2b7da3098ba";
+      sha256 = "73c58bb35f204f875d2c8d293780810be6083d2934fa8d7d7e02a3bc8d41e5a3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/sl/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/sl/firefox-80.0b8.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha512 = "7a993dea012e011c97b98938bdacba53c498fd15bb94b9deb05b27d7b842986e3748aef6a6bf96b1e288c8bf59df5ded37337ffd10063b3bf7afa81cfb1622f5";
+      sha256 = "90243b7a75889617085715d6cbb65c220f1fc5eba5d4a70612277dcb6a6df6b6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/son/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/son/firefox-80.0b8.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha512 = "22acbd2b46bc7eba4003295fcd2fd01dd9e6ea7a45b7ecb595d55801030dd7baa7363f2d8b414554b07e8e4ea7418901b0412c43e5bc7a5c3c03bcf54318c5f3";
+      sha256 = "ba8ead8c649116edb7e168b25e6eb3735a85cf5c15a2a78ebe8340cd7071adc1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/sq/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/sq/firefox-80.0b8.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha512 = "5e0f2a51073728b8b90eef284f9e632365360f45839b0622e6a52c34dd0eb41ee7ad07d320e6b3610ea6265ae48daa05cfc022bff0b2bdb97caa8dce1b38e0e2";
+      sha256 = "6466c44847b3b0370665e996582a2cbed9a8eb56a8b3f683582011cba77e918c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/sr/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/sr/firefox-80.0b8.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha512 = "4bdd5193455e99f98ed90aa05349e2beae496c44718f07b6d81f81abe75d755f4a88fba8dc020998fd6199dcf1271dc7fff3177625e7872e1d271da743d4de00";
+      sha256 = "06869c6fc77aecdf48a991ebd65cc6052c8c3aca976b01cac5e39933c7aa9190";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/sv-SE/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/sv-SE/firefox-80.0b8.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha512 = "14e7db0c882d5a84439926602d6d706084001499aed5db4adae6a11cf7c25e95d0c77a59340c74bbe11c6cbf960500eac902a2ea23f7bbbffb9805b789242eac";
+      sha256 = "e763358e9672fbc8b990bacae8687c7558d9718cc9d1e80798ee9ad220f28b35";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/ta/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ta/firefox-80.0b8.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha512 = "f0948c827cedd46641a26facc08c30c1b8292d48d8d703fd7fa846bdd1c9f631feb64b50457fc6d10b0b2a6effcf304b659e1d5f666215613bed75307de37a6e";
+      sha256 = "1669e95f886a7adeac0489c072fb88f1ca09daf3b42027006305857bdbfced4f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/te/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/te/firefox-80.0b8.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha512 = "a0df152f09d0c6abfdaaa1c3c352282374c71fb2cb674199ae8fe4c53b891d98a5cbb19c5c20e92e7cb602bf4be1b66ccf6db295cb91190b639e2ccac9c68b86";
+      sha256 = "3d5c9f1596291eba38fa5b5174674fdcfd335e4cff44ecc50ddc7f08ca254b97";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/th/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/th/firefox-80.0b8.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha512 = "eda5d9fc2798e04addb6cf093548cd819a23ca480e392440838dc8a023e074b4b235a2df7a1ed26d4fd795c7e21c041be6f7c08d6dae35b05fefe9c31c79bb9c";
+      sha256 = "d583744cc4d1099f23960b0ee7c80992233864c94f877623f0c566a65cd944fe";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/tl/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/tl/firefox-80.0b8.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha512 = "09aef5e2ff0eb455284ad185274fb6fefa2ff6f768a16e6301c58be9f97aa357bb18147d7a909694c69daae683ac636ebb16f800b6e0d7d90e931426f74cf3a0";
+      sha256 = "cb6b8cdf1747e211cceeb07bda07573bc193574fa3603bfebaa537857953ce13";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/tr/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/tr/firefox-80.0b8.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha512 = "f936b11f4fbe0ee2f31b5c4f773e3e0044468bec15806afe21ee4e3f95862909f6cd68e35731ba29a32aa7cecc8c06120c3722500d9f3bd2912a29702045251e";
+      sha256 = "e2561f98607ac5dcc67ef825cfe73d1c2af4ef9c5c01ebf48ee4dc0f80b53d07";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/trs/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/trs/firefox-80.0b8.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha512 = "4089f69168225d62d89bb34bf8c2cba4c9225b1b768e9a94b13024bdffd485d83f3389a8d9964b6afdd5575917d70070d7779dda0bd0119a15946ceed2839afe";
+      sha256 = "de1e1f83c439d17d5489d666f1772ac32e26d70a5b3309176b528de413fae39d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/uk/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/uk/firefox-80.0b8.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha512 = "4ecafcda0026949c745378e32a8bb68a1dcdaa292db74f7a88bd13e38dd39f2d1748a69e9e2827ad6e8a2a71f1872f0ec3cb846ff071954a41dee242ab233243";
+      sha256 = "7632b4734ffe3106e78ddfc9e5ed81dbd219045f4b954421be4629397436763c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/ur/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/ur/firefox-80.0b8.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha512 = "25bf5543b9586e542968aba4896a0c0c00ab5eaf99b82c8d9b7354c82c33d2eab68dbae2295823230cd5708ef02817a51e9b9f12954a43aa0c0b131a44388d72";
+      sha256 = "8e6c6d36546492ae93128c780c80bcae86ebaded38cc753db1f0401d4b5d31e3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/uz/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/uz/firefox-80.0b8.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha512 = "90aaa4ed0f9377d17ec0b02ceb934ea775d5f378a01f8b4c0ba7cf5c67975bbf4f7ac59103e8002116118972eb6d2a48c6dd3d6cf515f766667309d0d515f994";
+      sha256 = "18c7827cc1337e0a2cb3a1e9603aff8e7c3ac8e5631cb791eb0b7a2de35bb487";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/vi/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/vi/firefox-80.0b8.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha512 = "0fccb7e7aa3ae6f8b539864ed44c7d8349ef96ae5d55d9ebec33bdc1dbf470a9a831b440fb0cf008e86421290760422201ec55e704b5ecb388155605ddaf35a8";
+      sha256 = "e78c922c13e0207c9cfb4d492e855543979e77b49a18fc63796c7e74cc4fcdeb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/xh/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/xh/firefox-80.0b8.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha512 = "fd7d880ace4221cb8031bfcd9c90c07ed51fe345c9592791bcef61e52a29fefc035bce0a24a24594f310cb7113ebaae8525df0b2462f86560a45253b89b7a53b";
+      sha256 = "bd30e089384bac81aacf68c52ac884712bd0c739f517faa6390090d112d9fcf7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/zh-CN/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/zh-CN/firefox-80.0b8.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha512 = "d7c386894783434732c56460fa30de8ecc360041934743b4632c8a03c36b00227fa8e23d2180a7f5dc742cb324329aceb2eaa4831c9eb9545920a95ae3b7db44";
+      sha256 = "316ad740bbba808a66b6fa00a9b1391597c949fa217e721563c685ef9fa028f1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-x86_64/zh-TW/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-x86_64/zh-TW/firefox-80.0b8.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha512 = "52a64ca3d152b0afa2be9206ad08fa1edef8411d41c23d984c4015b629bbc0ba21970c1059cda76041366221a193040db474218dabad7131766e53ed6b719d81";
+      sha256 = "f92189c808903b314ff4cc30fdfa7d5e2085ce22b9763e95144a7d69e6af719d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/ach/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ach/firefox-80.0b8.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha512 = "d88c9bf2fc5b38d367a3e6210b59a4488092d42b380bf020bdf82b1c0527f03ecd48c08813a8bf73fcea48ff58a77fae80b2c907498f2d9f5275fc3a7f80c5a3";
+      sha256 = "aaf1bc4cda7e1f1182f701485f5cb186d4b731851aca70611cd478c923b2427b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/af/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/af/firefox-80.0b8.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha512 = "cb15b0cd5980a7021abadbe765c714604840a2127722f8b61bf9187bcce3b70af2e902220d5f0faa0cc7b3d513e64a250bbfe43a090d13ae4b8835db0c28428e";
+      sha256 = "1be25b19658c15a88031169c57acda5ebd49b63212f584da6f859370b493ad32";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/an/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/an/firefox-80.0b8.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha512 = "8ee5673c42ba46e41ede5f3657a5fd7c9073fbf9f27e5583a0471802542012b67e8e0730cb58f0833fdb1d036dd887ed797b752d79290ad8982d3addf6739c44";
+      sha256 = "d461a566f7efc35ac323b0e8e963b8332a349e1b317401c2975cf4c75f7ce8cd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/ar/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ar/firefox-80.0b8.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha512 = "25a2d1144a734270e0304bfc6a42a6f6585bb79e7289b381791fb6a45b86891f570c9c4d6a71de2fb8f0aefc6533a11862363ca60bdff14f817704fed4e9bb23";
+      sha256 = "2051bf3ff16a6ebf15ed4fcd97adc2bef65c04500d09ff1f009785f41c0b02a2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/ast/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ast/firefox-80.0b8.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha512 = "525fea1b71c9a51706033c4b2f523813e61666df6230ba51752a2161704c48c26ddd5d781285186beb53e90f01cb35e7de743723bb049b729fe26799eca6036b";
+      sha256 = "97951d00f79bed031680ff9676201c9ff0fe79273e4f2697cd19ca9ccdfe95cc";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/az/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/az/firefox-80.0b8.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha512 = "743377d9a76b6acbec6a7c005824c6286e10e26e30a6bce90a8750657d52e19f62cb6653513a241ff9a6f3cebb5caf63dc438293568db5418827cee6dfd94b56";
+      sha256 = "a461aa41658c34bef1bffba2d34619ea402fdda2e51aa1e0200002b2e9321c8d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/be/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/be/firefox-80.0b8.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha512 = "2b96da128311fbf97cbb31e3b4b6e0d1fe0158ff7892195d7074de67e0f5b7e22f82c8131dbc0ff209e043d89191d269f5b7af224f6d2646fb5a58168b2f0d31";
+      sha256 = "ff1d2fa9203fce0aac5d91b38034910bbf7b0822b499fe522ed981f3365db8c3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/bg/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/bg/firefox-80.0b8.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha512 = "fc5712958fd93700d39bc60799a32e99ba0db868997e1c0b4750bf6258caab3296decc55d14a48d9ed065b9beabfcbd9b7979fd9289b4243d0449fa124267e2d";
+      sha256 = "17553a8566afe02d916b18d76a8850295512d9514bc37bbac459bd28a3bf46ec";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/bn/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/bn/firefox-80.0b8.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha512 = "eef007d4b60b487a1a8352ed7daab3cc5fa0f3e24a235f5fc28979c2fa69390032feac2590401533b66add014ef85f573e89613334b0b4933bad903c8576d566";
+      sha256 = "9863e968594a556a7bd52a43cd3c965687d4116c9fbfb62bed38b1b7ee343728";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/br/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/br/firefox-80.0b8.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha512 = "51f73c61512ac4f568161ea0dbc045a11dfdf810bed9e56a109c127b8e64b649cd368f02f06791433ef694190a08eb5b2efc66db48674244553c997b783d0610";
+      sha256 = "762f1f951560f8c85a44cc2a7c318e4f8e5a0b752011cf06f86235e3aedabebf";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/bs/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/bs/firefox-80.0b8.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha512 = "71a6dcb6af95976882eaaf330dcbd64942decc76ad2a110e11721d8dce64c1fc28522520f2dfd1484b430c8c5a6f531c57ec96e533d35a7cb3bc3d688939ef8a";
+      sha256 = "24fc8ac01417df1bbcec358c083f7627ed13bc76921bf0efc14e9f7653e9a819";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/ca-valencia/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ca-valencia/firefox-80.0b8.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha512 = "e18c221ca0781c3a9a95ca1b2542eb7bfd66a09c9ceaa88b9d0ef76396f21635fd5d79bcc4881432426673865fe9aea679b8c4986bae668587371bdd237a3a89";
+      sha256 = "b071e20fadfaa2c06baa1579343c18167f6adf88e1c98fc68413287f6a45225f";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/ca/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ca/firefox-80.0b8.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha512 = "76135be63a3da2968dd35055207d58fd58241846b4e680aba92541047ddcb97635ebb58b218dd86f86c94aaccc58162007e964a63099b26d139cb8537787ff10";
+      sha256 = "e63fc27b2bd404ae9190035d5537822fe76213545d8dd076566abd12ea213e25";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/cak/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/cak/firefox-80.0b8.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha512 = "088e14979cca1a9e9296dc0fba4507e2e5a04b71211fd9c4d64032b6e76f2c5060eb40b331762727dffaae5595883e7162b8fa6c7915666e0c4183889ae64089";
+      sha256 = "6f4fc3e51819d9d3914ad624593cfc755d9e8f78263700268dab46c38e8fdbcf";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/cs/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/cs/firefox-80.0b8.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha512 = "35dc0443d861b8345610448ec145b1933c6de5eafca6fe83580632d086f0ca2a818bfc03cab85e9cf1aeb32a7ded6f47e7f9af1859c1432d8ae47f09440d81d4";
+      sha256 = "ee61413b6544ec56d13bebd08ee2ee69f8d1f16e886ba31d46c2a786c0984f7c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/cy/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/cy/firefox-80.0b8.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha512 = "5d3ffd08d02c2be15fe5e66c7fce402b2b3fa6534192fdfc38f718d3a341bdde25012a59e5f8481314986fe2cbeffbd9ed0d79726067fa4d3658d27855839af7";
+      sha256 = "8f29a8b77732cb1387371538efdf970d0e93d3de866b103c836990a4f0a30933";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/da/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/da/firefox-80.0b8.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha512 = "79dc2dcb1d1dcd17da99cc668086a42b25b32f867cd381016f5cf76529363680db5c7ffe53f2660d8883eafa965e320f3d8bfca00dd84759685dfdd2d3504f5d";
+      sha256 = "b89854119e139a8e9347b262131ed5da62672f6d728b1017963a11d279861a45";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/de/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/de/firefox-80.0b8.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha512 = "075639fd73e2595c5bf99632e0aac36664675a3aab3b1b96e9fa701fb4b4a6988a4d966cd111a206fae5a6d21a79286d7b24ebff44738fed2cba0fcb7af29ed3";
+      sha256 = "c453a0f5cf528c582a35997a963b944d31666018ffc912ee4e188f795066b925";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/dsb/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/dsb/firefox-80.0b8.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha512 = "05d5b528aad3ca76449300e4708c5ee8c13951e72c8343b8c0ae7587d2470c485e7320e7ef70bf806caa2530217d525ca72a95f046ad5a1576d5fdd69a971969";
+      sha256 = "bf1f7ebef2aa4a5e0ed824a2c89a0b86101b5cc754feec482f0c39ef2ef3dea4";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/el/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/el/firefox-80.0b8.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha512 = "08334bae31f5ca6da017fc93889303d93f39be6d27bd79031e5f4f01038d78caced4ed5f407730d3c48b2094cb40448906f53f190415830d91bf7dda1463fbd7";
+      sha256 = "b31ea72af96ecfd2b625d813bf32e08dfbffb9c0acb004e1f279b7937d675a90";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/en-CA/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/en-CA/firefox-80.0b8.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha512 = "054fe82f776c2b38175ce2ea6acc10f81c2e9f9ce3e6f96f49cd8d0521d447d26386384327011d0f7879e58a3af81c93b7f227ad4b5385fb8903ea29c28cb1ca";
+      sha256 = "31866007d8bc76202fcec3b9531afe237c9822025a14113051a9389cd9f81ec8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/en-GB/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/en-GB/firefox-80.0b8.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha512 = "82e9e546f77e94d4f91eac13b9f1600bcbbe05a250c6049693489ca46c93a3ccfc791879123f1b49c82ba83c9f472e8f6f3d00f50794cc491a99d756ee9eff22";
+      sha256 = "82b2e6cc268eefb687255fdc5170aa8ab6136d6a07b881d49c044e1700eb9190";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/en-US/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/en-US/firefox-80.0b8.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha512 = "f8e5e352b94e9ff12c86f2b2d189c88b6e1c24cd912e3777eb256403e691c0a28e860c22e098d8a3b4c5d526580db2da2deb408f1e8bdea91deda5dd8cb94e9d";
+      sha256 = "dcd29328d9b464c16bd034f635a16d1593f98e08becc6a278d265b07bdc208a2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/eo/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/eo/firefox-80.0b8.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha512 = "c6a806f7b7655861c1e44837e6b116c70d64a158e5f38c13179d52230d1bad34121c04865959d0608f6a3193bbd55fe081d2b6b3f9ffe9c9a41a1ea8c24d63ce";
+      sha256 = "cfd6996e81513426d0534ba62e4f2d22fafcef51ed48da4a593b9d3ead2cb2fb";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/es-AR/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/es-AR/firefox-80.0b8.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha512 = "c894fbce700c17200eee40d35fe423dfb19f5e4703b1bbf39925e4fae85e094eb5124b8dcd1e8f09f57e73be4793a92af32018b385bff09f7d111f8da06517ec";
+      sha256 = "9d4c24e1153f723a789c1934c15cf8b4d3925fd34e8fee98d7e5ad19c9f7a9d3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/es-CL/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/es-CL/firefox-80.0b8.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha512 = "9896a7b6a72632a42b68e4bf0effb25b0882cbf1571c782045de452a5e58608b41fcd2027cec5677d31a454f6bc82b8104df7490bf1c4b1b05a36aa170fd2e7f";
+      sha256 = "91364ba1a2ab6c8bdede117f45a855b5968bee492e054123433c0fc034d66415";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/es-ES/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/es-ES/firefox-80.0b8.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha512 = "4708a94835a987f040e27342d73adde1094de3824ae444d124f2e02223de5f4bc280fbd954631eaff8f17d839896c02050c78e00dd54b4a166f291faecedf1a8";
+      sha256 = "1cef40ebfb1b12813d85a975ac0620b3ed339acf5de8e4d0ff0aba6aadedcc7d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/es-MX/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/es-MX/firefox-80.0b8.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha512 = "430c0ea67e09e36b5736f039995b3f6ee4a7bc83327366acf34cf2ac11d79c49d37a336b9b0a39a61381fb4d9c47b0908f25b4f303fa4b21242fc46749498c17";
+      sha256 = "e41ae370750f65e59470e05b2ed501a308f8743cde3291bae2fb8d17af553789";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/et/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/et/firefox-80.0b8.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha512 = "e200e5b679a45d6a03784373861a7e78151289888f05561c9f58f4afd9cec36df5df85865d790483989b23435c1d762e8020863d0f3dd6e02f3fca31fbf642f6";
+      sha256 = "5a279c246cffd27f6c919f451161e87b30ac8743e1a22ac490496b28af7e75de";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/eu/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/eu/firefox-80.0b8.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha512 = "d7d5355aa60043fe759a86134bba37fb99ccea19978b0c56298f1acd465e5ec53d50761671e2636c535cdc6003fa82f8e99027969d254a3f0003995ba7db995f";
+      sha256 = "3530e6f3060fd133dfad72532319c6cdb5be5bdd2dc0395d02e379b203264d20";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/fa/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/fa/firefox-80.0b8.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha512 = "fb174f97e2e21f6ba70fa8eab316a445a0c01a32fb00237790cddd4e6a32e461e89977238a47317ef2c11268d75ea34e84ecf96eac346661da6a4e7fd1509666";
+      sha256 = "ae1b1fa06440f1038c97fa9d625a2b58ce5ffe11fb53a71afff632a18675f113";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/ff/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ff/firefox-80.0b8.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha512 = "d453cd657ce54da24179b74723e2e0c793d6253f31bcfab914ce5cce9992266a3533b0358f53ee17aac0b1e616bc9c5c2d32112a514ac85061da61bd7b8a425e";
+      sha256 = "05b47dda3d1fbce0e3dcd79534aef247516e5ded783d1184975ba97b1abb09f8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/fi/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/fi/firefox-80.0b8.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha512 = "ddd65dbe5e8a9cc59b1c44b40b0f836d56b1042b5a2a37fd021166929485fe013acd14ac59f0c985b6a691b1ccd8b62f5d0bbe89ba341c414003e73fbe839546";
+      sha256 = "689eeeee1a769ec9bb53014044a615f0a5c05d8a15e6dcd408d18ef452c0b441";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/fr/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/fr/firefox-80.0b8.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha512 = "5473918598bad367a0f8cc71f50b54c899fc6ff015c78884040c09f558e0a80508dd104112b9ebfa92b8fe5f328262fb2c784dc8726c588ac84e41bcff95f943";
+      sha256 = "c64e31adfc24ba1fca84922b33a71bb74150ddc9b4d5e52f3627d2aac3b11516";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/fy-NL/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/fy-NL/firefox-80.0b8.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha512 = "5e49d9d3a9aaace6192a838697ce0220ec347b93c0896dcd1cc46f97cee9a7835aae967d4413d71770feaf917eb984a5547d1dd5b6587baff7bb895e5c2fadbf";
+      sha256 = "36765f1c9e1b15b43fd7d70c9f9dd1b977c4171ff920710346493214e08f9dc0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/ga-IE/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ga-IE/firefox-80.0b8.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha512 = "84b39f6aa3f9845d2d34ce089eddfbaad0c914a21bf68dc64e649a358739eff111e3809e48d882de0980b96537472e90b922ed2bb17a340e92000f0fedd17b4d";
+      sha256 = "026c461de7bba74facc421a58028e46efe32e7e3f441a8ca030911e2e883f56a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/gd/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/gd/firefox-80.0b8.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha512 = "88657692e941513807522e7513f480915f2f40278ed3ba36855a03e47879eea2c17d48bb626543e71a19eebd7b554d797f522b499066e7a52f8a4363c8987a44";
+      sha256 = "c2a21914b4f7cc71d6456e9c395fcf2ebbca12408563decc4a400e3d5d43c865";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/gl/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/gl/firefox-80.0b8.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha512 = "21cd90d9e5010ee858fd5b499b64cb1b0a695ea04c7551fff884e426895bf80e041244a5a27ca4e37a6a283b9058723b9b62ade273446a5ec9b0f5055c612a6b";
+      sha256 = "888aaad1dba8db4d71785fee01c100aa1919d432e8ccaa044e386224abe9494e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/gn/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/gn/firefox-80.0b8.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha512 = "23ad0e28b4d5bf1e83983e3b498d78019b78f821f17cb9c1e9b18a2f98b4c044ee25ec2de8ca43381366344010c81979c6f568ef9ccd70cf67bb933789b96179";
+      sha256 = "d5b1d103104c2e6e7b8198be649b0628acb4cfe6865422fc9e3db3b6ecc07cc6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/gu-IN/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/gu-IN/firefox-80.0b8.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha512 = "6914fe4888f878904eced34e13392dfef90b313c4b66fbcdbdd02070b62a8b12a397267012267551f8ea36e826912e26e5563d0f2d8c320589ad7c572786316f";
+      sha256 = "215b9df33e06685f9b264b06b512d325aa8353b3f3975699b77e9fc8d18531f1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/he/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/he/firefox-80.0b8.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha512 = "453bd36930e6749afc97dc995565d72dcc8e1196d719b8ef3eba080796392297d698e439a2ffbe2c388dc78c7296baf40e2a02e539651f1c1b8bc62f9a294226";
+      sha256 = "8a19ef1eb702a0083c7751cbd7f2437c5fa46ba3f61a5f5d07f797b8ca696d22";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/hi-IN/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/hi-IN/firefox-80.0b8.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha512 = "67570140e8087e721ca4951fc7f8845164f6d6a6ac2bf7cbb84c2cdfc522bc1c8578a11154207097893b3556b415ee2724403ea377a59d2bca53bf1cadb78895";
+      sha256 = "17a84efead836ce54c1c0f0f5486595753f97463fbc2031d78b01e33c7a7775d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/hr/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/hr/firefox-80.0b8.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha512 = "949d494a971d4abb4a0a7f41d994758cae50ede8db4be8c240382ee2f33b21e383bf9fe9ee53a1f767960c5c01005285f899f4c575e734dccd2ab95f6fbcbe73";
+      sha256 = "41bc47533991b818b26fa149a30825326879cdb3ba92eab0ae5171be595078bd";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/hsb/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/hsb/firefox-80.0b8.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha512 = "5987ac4a7b8ff18604de100f2dd5099d3f7b4217e1d921e3804a86b340686188761eee33240d8416aa6ec7cc538026039082953df34d2978d30992bd451c8e53";
+      sha256 = "9ee8d0255eaaefe37f00960ed59c83a06b8356a8c6ea05d1f9697edb9880593e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/hu/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/hu/firefox-80.0b8.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha512 = "438344b07b4f788496de76cf361db5b8a8d43b71dbaabf025f05b24bb47f0fad17d93d683743a0a7673727339324d82196053e67eadccff901c5ad02b45b15bd";
+      sha256 = "a9b6dfa44cc8d90a530aeb98ac96a0ac1e63b4a46b9af8ddfd4d6f268fc7eb5a";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/hy-AM/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/hy-AM/firefox-80.0b8.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha512 = "123f20b8b235009474b3b7e3d57619131a4f607dbd600ae23bb52a8f726c458a23356fc12929fb0557da96c9eca489ac8b87909b43d2f0bf4024b8a306e99148";
+      sha256 = "e93f74803b536d3b12b6e41d064a7adc5dc16615d045a2e6cf792d25477fbdc6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/ia/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ia/firefox-80.0b8.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha512 = "afcc7cf79d5d8f023699d6a9d2c35897329a9372f5161f28188b75126f5b843d105e50bc49968a7ec8acdb290ecfab5ab06731d7b002d2721c0161cd46dcd01b";
+      sha256 = "931dbb0817dd797c5af61bc683f3d95ed99ad9834efe2f66a50f9e444e708061";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/id/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/id/firefox-80.0b8.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha512 = "3b505e26ba7fb53c27aee55dd47771abe2e16ddce33413cf61d21d757be2f9744b7e406294ed86a95f2ed645c73efca2714e405a6b0947e08e19f3c667f886ad";
+      sha256 = "1e1afcecc3bcadfbd6989eefc191f8d5cfd0f4d29c1f6814927370aa647af854";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/is/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/is/firefox-80.0b8.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha512 = "7444d0cd5ab0f667a46f6e6ce685102a4a3940d422c671bcbe4c454333714dd17e2b6784cd3d865ff13fe9b5fd63c6bdff79a17188038baa2b558d0764f31d10";
+      sha256 = "4907987557a6a560557d417dcc31f9c7dd45dc0d2767ed050770f6fc6f308641";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/it/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/it/firefox-80.0b8.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha512 = "675f81a6a7266855ff6ebb8effa0646b3bf48da50246bc4aafcaf35aab52be107df98767e51f3aafdee7ad7b866f7304c859aabf9039ce08ab601df8f3aaebf5";
+      sha256 = "d895c87359cfb98e236c4b5bac92391528eef07a45dca2d067a7d55fed4ebe7c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/ja/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ja/firefox-80.0b8.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha512 = "296f7a8ebe0e685e854d5f2674af347c2c3dbe0735bc763cbb1b12ed7862cc44592795b0cd1b01030e36b3c933e3e5cdd6288e77283633655c60182f1b91b0d4";
+      sha256 = "30dc7aee461930bea42c9f2985ff766f4aaf3ec0bd7f09562626b155bf80f202";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/ka/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ka/firefox-80.0b8.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha512 = "514409c1bebc87ac575edc28d461d165e64779e95e54a27f83b0f9194d86d7c3473b29e34c2666e4f9ee04a0365e963c0ad54dd0d34b979b0d444c2059d3681e";
+      sha256 = "d452668daf3b5a9f0602417822f7581183dfd5dbcc5d770afa20e1d61d557003";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/kab/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/kab/firefox-80.0b8.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha512 = "d53d3b7fd5cfa7c96ddc528ae531d111998c95e8ddf0fb44a5e3e55f3223492680acf87590d1fb4d26278604eda2ed48b8681cd62a398a779ff76429df7bdb5e";
+      sha256 = "5e828a4f6abbb80c7b575db2a70ddcff0d734f11eb9bca55c2b8d00f08fa6497";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/kk/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/kk/firefox-80.0b8.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha512 = "8a9fb7e5070ee73dc8d87935cf0d328616ddeb67f1f3955678cbcec6e240ec375117daca8a574f4379677959e7acd30efb65114e4941ffd204c3cfdbb848c570";
+      sha256 = "994e8ccd626f3e640b8a1b687a22ae6e3943b25995278f3333b6814ce61185c2";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/km/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/km/firefox-80.0b8.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha512 = "754254377c41865d6a5aa8f2e338353987885a6e54a7738c36b1566249a0b3becce3bcca9419905be64d935d97a90b3108f0020a313621c64cfdc568f663cc2c";
+      sha256 = "a63ad9f77f01523dfb02eb6c2880a4046a556bae6d329a5e5480aa3eea0aec85";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/kn/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/kn/firefox-80.0b8.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha512 = "79cb8cb3f8daacd1015a2d23b8cab568f9622396a983cbf1a3c6e231929d8bcc40ba84ba2787c9b60a1c9bdbb0729e2637ff3bfc87501bb0e156ff29c3a98148";
+      sha256 = "5396452efe004c7cb57105bb7134875e073f822927a98db23e96994e11fc7155";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/ko/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ko/firefox-80.0b8.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha512 = "262a471319ecd41cfced36e353dd32f22c1aa79224198d203ed029d21f858bf283db75b33f3af7abc48cf3a995d7ed90d75701d70e371c8a937d6259ef50e7ca";
+      sha256 = "a0bd2586531902121344b7c70e9ec9ae4e08514d2c467a17664701735f8d74ab";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/lij/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/lij/firefox-80.0b8.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha512 = "59b93c56ebe8022ac3ff72acec539639cf290c0339e825a27e6fe0a6e85ae02c6c4ac62ac056ade775eddf0462131e2c7cff99639c1626f2a6d979d2d340ed6d";
+      sha256 = "ac4f16381c71e3a4f00c6ac615913cc7d5eda77dd9ca337b9a8ec0e63a2e9176";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/lt/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/lt/firefox-80.0b8.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha512 = "7578bf3f0d9428345d0d5f16c1cf6557d6fc0962382df1359e9a2c3b94feb3ef279266635da41cca1a90660640b0d5c0d20a415130a860aade0ab554b6fc8415";
+      sha256 = "bbeda439051c1ff43ba08b95de57914237e7b9845fef0d92efa02265cdc81961";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/lv/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/lv/firefox-80.0b8.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha512 = "610f14f6e3ddc8b2f732e40e79ad07e40e5cedc2e92dcab6b39b3b3895970d9c82749f4af90f034b7431191faef6bb0f61e230a3374efae7c5715e096048878f";
+      sha256 = "bb500de9c32241a7e28828e3f9b89427be1a54475d7b05b9c678d489a457c329";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/mk/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/mk/firefox-80.0b8.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha512 = "cfddb67634a2e05d41c3595f62b88e53c05f5b07973ed16128f7620cabc9422a8f028458118e404148a2f5187fd0209910be1d5fede135caea25a2ee076811bc";
+      sha256 = "5689b2805b30cece9f9757a1869906529a7094b4a9de5d5180a5bea7582606de";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/mr/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/mr/firefox-80.0b8.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha512 = "5bb458faf0495b24600395250f8800587f6cff04d46437fdfef4dfd1fc240c7c9bcc49f6679258bb761f587b2c8115f0bbb6ef5c0b11421b79cf8d534e70c8ea";
+      sha256 = "fc5ec6938f33c548f52cfb90f8a40b342bc9b4a7b97c3fcc1b3cd2aa5a031270";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/ms/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ms/firefox-80.0b8.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha512 = "0e509780c72eb1d6154e3b3d804ca434be340f6fe8e706b87e2fd9e00aff3b82002a8b1a2f5d6994da2b566f5678f1b489e3b116af95776b323da7f5f674ea17";
+      sha256 = "374e2a6ea3c59c7f985606f2e631294b57e20d7aff2bd8256ef9c91189e960b3";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/my/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/my/firefox-80.0b8.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha512 = "2a036f00f40e98a5dade0d380e416f869d0c42f4004878dd1a51e99386a118cd88ad603915b741e91e16a7bedc0db9029d8627037e17f275c74736cdd69375f8";
+      sha256 = "d9058df8893da03a707e549d9f133942fa71bf51e06c1a654f3ac588d79af82b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/nb-NO/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/nb-NO/firefox-80.0b8.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha512 = "f289ad816331cebb6634def4c7faf5ff6d1c6000cf5677502027a7823c34becca72a0cec5bbb13d5c4c16ca22fd87da941d0569b47369e1cf5ce00cbad326693";
+      sha256 = "11019961c5378bb86b45b2c6d4b74ca1e41e86aed500ec0cd73fbe1785ef7742";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/ne-NP/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ne-NP/firefox-80.0b8.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha512 = "6084544df0c3f45562a3bd380386217c4a4a6cd4968159006e3c24ece9cf6c178731c4e8fb0466ddf484776ec533e838e24018ed3d41bc5f54d9757081a963cd";
+      sha256 = "de45c606c961a38c84196cab1827089b1b22e2dd0c23302ce57bf9fcbfcaf82e";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/nl/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/nl/firefox-80.0b8.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha512 = "1d31ffd4e7e9cbf728d552cc1cf6692037f62884cd396ce5ff3c96f89096d44a9fd789ecffef1516cdc0d66413a30ce67daffaff224854dfab2e9a3fa37e6150";
+      sha256 = "bc2d98ae8f0fcc608d55b394398c45c1bcfcd02956031ca4762cc98d265916d8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/nn-NO/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/nn-NO/firefox-80.0b8.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha512 = "0f97a3a2807b1087e1569e0f31cd80ef2995b89c69743c3441ad974a5786b789793c94828935027cd45f52b738a28dfdf86b1e95c5026d34de2e1f20107bf784";
+      sha256 = "b7c1d390a8bdf295ad8951959fcb720f977139592ef0f669005dcca0e6cbb19b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/oc/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/oc/firefox-80.0b8.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha512 = "91f5dd7f7c4ac97bde1235e9bf9594623f531a5558ed06d5ba61fe8cd584d80e6b01fdb070fe53b7c702893b2689fcdfedabd28c440ff865decbe4119bf4ef06";
+      sha256 = "a61a765b698f48c15cf07ea424e8e69be7630261a94c6514fa739974b51243f0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/pa-IN/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/pa-IN/firefox-80.0b8.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha512 = "763e900df5673e5f88fd326ff6ced28502ebdf09001fa06fa37912317bab9d0ab6c737233baf8d644de286766a7d4dfe740242ab70fe938c0c3bbcaa1aa1b314";
+      sha256 = "6721ca2f49b60f5ff1d86e0b1c9a1d6107c5d701b319a2abec7b6fcb9f845d57";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/pl/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/pl/firefox-80.0b8.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha512 = "1aeb0dff591ad21dd506da2cc89d7082044b762e7c987e364631cb6f28bb07618d51d138d9d7a936f244841cc4f5208dfb9bf8dcd1ee0d839fca5e6e58823c1d";
+      sha256 = "a77c0c05be64f027d25feaa75a788c630dd7af831c0c2fa334db7c36ac340144";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/pt-BR/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/pt-BR/firefox-80.0b8.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha512 = "643a666005cfcb726a18dcd81c8af6d3fefb77861c2a4db884227044c39d907659f1b2abe640950c4cf31ff3552d4d12a52fd9e7527637a68543aecd93a61763";
+      sha256 = "2baf74be32eec18bb235b57ee3816a3c9df916bbd4458aab1613af864581a072";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/pt-PT/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/pt-PT/firefox-80.0b8.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha512 = "f17fff22865d6e64ba77069012072d24ab79abdf783652337a7dae7d9a901569f00f9d3cd20c2e3a268fc81188b478b9036229dfa248bd5b1ddd7a0f9c7b7201";
+      sha256 = "0103da6d53b4a9e9512b8e3b90e583d8592a5bd02f09aedb90f49b1ce73516e6";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/rm/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/rm/firefox-80.0b8.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha512 = "3e105652654c1691bdbf8ab51f20f4ebb9b62d6a6d09f0f6527079bbc1f5832f4170800e6b200c00dd43f62dde531e7e8bd6bebd0ce27fd058552672d423a967";
+      sha256 = "5dc1ace0d108460d6a57f7b158a1640d822c4e07a2e4d108db9f17e63150e4a1";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/ro/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ro/firefox-80.0b8.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha512 = "5062a90cc4712f30c9dc428d8ccbfe3bc1d0a50de3e84b5c475fbfbabad09394219fcb03db9313d7773518e24e5eb5b41dc16723ee235a87677dd07bdb1e975b";
+      sha256 = "1e2ee8f338625bf95da2914e54b22e1a052cce955a92102163e67cacc41129b8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/ru/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ru/firefox-80.0b8.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha512 = "5b457059285c31381a03b9e0285874989cbf93cb264a74ee875ec9e120027d5bd921a666a95275c56631ebbe3f435764890852ba25d199b0c8c8258d5b8a5807";
+      sha256 = "c57cda1ba6e8895044fbc55b37eb5e241b02904f69337a6430b3b9fd47a57fea";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/si/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/si/firefox-80.0b8.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha512 = "4f8ec721ae19da2466a31e363ecdd9743f90a597d0bcfba12c12120207545ed03685a552515c9fc1deb27e79dac41345b8c87efc025dddef6c0347d21c2809a2";
+      sha256 = "e31df32be4babb9b1eeb5f6a5a44d1c94b07fd5c4bf70d8cc78d4061e1e790a0";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/sk/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/sk/firefox-80.0b8.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha512 = "4953e879c353d7a9a71e517454ffdd793546d5c863676ffae3a1bc725000b5f69f0f74fdb9ba979fc54d809d576918e6def88ec1b1b7a81cdb6d1dffab624093";
+      sha256 = "0630c3c617d1a646ab0acdc0c18346ac29066a8a31be9995f96e5daecc74bb24";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/sl/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/sl/firefox-80.0b8.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha512 = "ce930f05f2a6f3716ff54a71af907cfafb1398d4f86999e8b161771197c60260abf82d0431093ecd8894d2de2aabc317ee5b6f348d8c05f3a823ac706bce0b2c";
+      sha256 = "65cc9e3d0e6af8743a768cf23b1dcb281d5ee26cbdf0fb2f0639cfe032f8cc07";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/son/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/son/firefox-80.0b8.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha512 = "1862101ca5ae8d8e2543f55e6b283dc8f935eacf38dece8c0e1b62a0cf83342065b467ab001a9709dc25f305294506f84a1036ce618bd7d47ed8d60f89b838db";
+      sha256 = "7f25deb9d71b23647722745d813e8e115e0d08190811efa4fc0b6456ee5bc634";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/sq/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/sq/firefox-80.0b8.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha512 = "511b7f3dba5083414d62090ff1202599d8b6d4623df06d8749c0bae2c18249b3370af71eacb87b77711982a196fac380f982c55156b2bc589572796607128763";
+      sha256 = "e103461a63337bd7905345091edde08056eb267a522a205d6308e33d477f7d49";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/sr/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/sr/firefox-80.0b8.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha512 = "372420a6a308e94a438b9b220a268264f3dbb0c45ebf5053fb0826948fb6f5e0598567f2e237a4c753431a135274a9867fb8d092f1abc3b90900039fa2be5322";
+      sha256 = "cfaead5b0913dd265c18e42793a2a845aeb6e421b6c54a0f979bc80cd7a6cb18";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/sv-SE/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/sv-SE/firefox-80.0b8.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha512 = "cab258cbae1aff73f16f4be2217274f0be2e82bd587ffa45846308b90d0bac043953828706fb3ad33e33d06ca4eba6d0fb4d96caa684dd18f9fc96a33e1b8445";
+      sha256 = "7343ae52dc3f85d35264fb6cc86daea45deed4cc3b7c3dc3078afdfde9a48919";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/ta/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ta/firefox-80.0b8.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha512 = "dad1630c0fea645199cf5577d3928cdb06bea5bd718d4da4ab27b194aa5068107b0bcf433ac530c53050137a42b700834fc30a778834885976c090a9a6817840";
+      sha256 = "389ae6d8db8280f74944c2c5d61dc031ba4ae4db792c1f851ff72ebfb123b17c";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/te/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/te/firefox-80.0b8.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha512 = "7b903192af9e954b8b595e6f7eb7b176fa7fa91dad3891f364c676e0627a5eb7426b1f676c522943eda22565d459d049a5e10b2584e65b1e1fdf7bc27a7c2aa9";
+      sha256 = "e49d8a521ffc7087c8d75f5ecbb9f6c010966c9f92dd4c105278aeeee1eee865";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/th/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/th/firefox-80.0b8.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha512 = "5ddba062f7ed0de1b9b7782ad34acc32762ec5b4a33cbb3805eda39ac667d239ad23bf81777b8ea0d9dbf82d688c9a2fb273c635b4d44cd7afbe887a16c34ee6";
+      sha256 = "a27ff17d3bd090cf5bf798465dbeb3e369ea03a738729b748a0b03bb2d0418f8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/tl/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/tl/firefox-80.0b8.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha512 = "8f78278bd75240622edf86bcfef0563d51d671a7b7731195b698f3e6baf2e467c0864ddbafe38fa7728ff00c4ae059f2e60c1cf67a81772445639cfb75fddf04";
+      sha256 = "5826bcb2683e74bc5588c7b12099d9d2ac70ecb0026d375bea92d94a3f381f70";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/tr/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/tr/firefox-80.0b8.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha512 = "20081f6fd914bdfa14ddf0a7896986290f3e7f35d7c77c90448be53a0ae09c5697b37ff8b63a0138ae20327d110a1eda2bcb5a41ce1927e36eb222795fb492f3";
+      sha256 = "73d79d2dfc0c7ac86566c1d41a6cbf6367ff57a6c5dcd459e1994d5bb8290fe8";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/trs/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/trs/firefox-80.0b8.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha512 = "023b6a4cc9069ba73e0072c8e4ef8d782b4e8cbbd9ab4810c921998d6eb87f8d631fe8e62771f8c3e5b0da83f43aac8a7d569a8309603e75b984b4233dd7b652";
+      sha256 = "a8b7cab92a7b449ce57a2eaf6a447e4cec99fbd8dd43ffe36dd4b87cd04c19a7";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/uk/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/uk/firefox-80.0b8.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha512 = "5d9774938c64271ccd14a498151436feb8ac3a2b46f8f093c7c11bc84b7f49ec559acd620ed0c4e1d76b6f466f8be5d19d64af4d84606c12271814cca88801fb";
+      sha256 = "af59707ac1141ed356a9bacfa116d0a65236352f6bbbddd69e8544a551064782";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/ur/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/ur/firefox-80.0b8.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha512 = "73aecd84a201e7047ebddc71695cfbddcff8d7866f1ed1299217bfb81c49865ce4140deaf0d3d0ca34f82bfeb1e3598059f299f163e816fc4f85bf0a1b8d93c5";
+      sha256 = "4a6068c0384b69592312bde06631584e612fd1f17d0af4b71dbfe38fe19dd413";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/uz/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/uz/firefox-80.0b8.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha512 = "0b0a0f8bcc7a96222ab09c113b537b2e56d1ae38f198c9a0efd0a7defe917aae30b64b81047b404e09953146ca78588e8184127d1ec86ed05c642a8f03b0478d";
+      sha256 = "a6f01fd45fc403dff8a97be0bcdcd2837eff7880ad039eab2cb31a2eca82c6e9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/vi/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/vi/firefox-80.0b8.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha512 = "2b41d980f54907cf4f84ac5159ecf3d0b4ee4d6ff0003d2d26cf8ef51befbb67410c99eb75bfdba3f8afbc64c1911011946cc8ad23ec7f514982d522857a8304";
+      sha256 = "b7cc325a09e7e5a6097c81055eec760452ebff160af5e5f9b7a790a2d3fba53d";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/xh/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/xh/firefox-80.0b8.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha512 = "9f07d1b5b54ccd5764aab35df797ef866cb6dfc705bb6db0337168eb0453d847d6068230ddd00368ef27f3f58300f8009c9848a9ad1dc3a459d90889e2f7c5aa";
+      sha256 = "64e6d44ed8b07fefb110463e1003cab01503a52bcb72c76d6030325cd6c796d9";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/zh-CN/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/zh-CN/firefox-80.0b8.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha512 = "1a5c6b1abab116fb0cf3e98e50024070c894e64334a82a3cff7c3a755b72a0ff8992f3a4c631cbb5489e2c03b5cd5dc5918dad56d5818c6050eab32335bf347b";
+      sha256 = "11312a9a212159bb929df04217292481b9aacdebc50ae941729b37f9c7c8312b";
     }
-    { url = "http://archive.mozilla.org/pub/devedition/releases/77.0b7/linux-i686/zh-TW/firefox-77.0b7.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/devedition/releases/80.0b8/linux-i686/zh-TW/firefox-80.0b8.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha512 = "0b16ba221c9c681e44bcb8ab6ebcbc0698dc8ecdcf31d14b9b4818afd396fa8608b389cedd372d15dfd833e4e7e028dadc7087af21c4c2d423fd97e1d2c0030f";
+      sha256 = "0b3f5974dd951fe9ec988c8608b186a2d5ebbc397fb017d587e869cbe4dcc74b";
     }
     ];
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
index 464eef9f4b7c..403ef9bea1f3 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/release_sources.nix
@@ -1,965 +1,965 @@
 {
-  version = "77.0.1";
+  version = "81.0";
   sources = [
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ach/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/ach/firefox-81.0.tar.bz2";
       locale = "ach";
       arch = "linux-x86_64";
-      sha512 = "12adc58633a67921e1d1944501191510baf3b0308213f417a202abcc09d5abad3155a478c2541508273d6e8b07bd3c13f7f8ab6e40855927429a94cc8d989888";
+      sha256 = "7ff2b7ec6f3f55fccfb7988d7a42bc9cbe572af6edc64ac9b42ea15aaed9cd4c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/af/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/af/firefox-81.0.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha512 = "ee58827ac139f48b870d3c30d8c317857ad5973593fa99addd7d09faa1fc53ae5ae31e36cd1f5c9dec6ff56ab31b987baccad98d4c8f8e009830e2e5065b8a4a";
+      sha256 = "c1a29b1473583d28f87c764c8ccf67f7cba874fd85e5820f968230c9ce29670b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/an/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/an/firefox-81.0.tar.bz2";
       locale = "an";
       arch = "linux-x86_64";
-      sha512 = "ba8a36a8e7a8638c88355ce68ca4f320d13b60522f7699dbefd056ad01c4476799c38c3cb5817d5c506f29ec32532b533bb6aa5a592cef971f1a617d353b12aa";
+      sha256 = "bddab1deeaf3c6474586beb41ad9c720ed6e84f9e999a856b17bb4e7c9d97991";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ar/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/ar/firefox-81.0.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha512 = "507a3c9487f0d2fd89b91473afbb9607d2c8fe2f642e331a4c781078d0f474b5345827a83167981c0d9b06556370b6d7baddd9eb3355dfd8c64014d139483e06";
+      sha256 = "3c4e339627fc94df273ba7e1e1c150188033331def09678b2e0abb54e52f2120";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ast/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/ast/firefox-81.0.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha512 = "70df4d795059609d2935243ca1af753e9e57d303f43df42f72a423135d095b8a295cf06fc3aa0284f68415c77de46b6925b34fc19987309a9b3f749e8234d9c5";
+      sha256 = "e421c32fefef657287ad52dc11f2f3166e549ef9d54065099f84e5f35c8a52af";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/az/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/az/firefox-81.0.tar.bz2";
       locale = "az";
       arch = "linux-x86_64";
-      sha512 = "34a95a03400f67bc17a405767d174de67103a57cfc2154621e4452b914e070344b361547876b2a17813638405440642f28684f84782285960d3ed5bd0d8c0eec";
+      sha256 = "e1099ab7b028d8124446a21056e55dc4b87d1f20972dea60125347b1b099e35d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/be/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/be/firefox-81.0.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha512 = "66acd13f56a2a3c79cc49f3cd5cd203c7b7e1f7f978a1ce1eb90f702f35f501bf7b16b1fbc9be8ba9b176b103bc37d0868aaf765ca485c854192c2c4d27b1030";
+      sha256 = "a216a2cd652905d946aff1cb3a0fc8738a1e3d5746d080dd863d34be244a2a50";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/bg/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/bg/firefox-81.0.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha512 = "44f3dc39fb73c03461d16a34f1fcfeb385722a0b4deb7b75199a8f8fb40fe85cec8116e11eb2f7852580a4ce9925d8f022c6133647232f6547db689b6d87912a";
+      sha256 = "68a8a4ec3d0c1fb8a174a7466abbfb6c806bb8a263ab852b15dfdd15c35487aa";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/bn/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/bn/firefox-81.0.tar.bz2";
       locale = "bn";
       arch = "linux-x86_64";
-      sha512 = "2ecc1a1433eb8301cc7e9d66dadf1926aa20b609b7683e69004dd56a12b3a8a2a1db19ec85113bdb0bb0759c29b0e70a157ef6f2f7ba29a121f22d39cb256c5e";
+      sha256 = "3eaae9060b690391cbc63aacdb1d833b2895c7aaf6da36c32cb117e7994d94d2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/br/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/br/firefox-81.0.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha512 = "f9561f0d2f00da6736af19dfc2ec21a25a46b0a2c0ae195e0725a59f8df0367be3c0dbbfacc4b79ba82bce7643b00127b9a9431379e533c0393d49c6d3017ccf";
+      sha256 = "806b366419eb6edab57c8f3af9f0465d3547e3e28047983af7cb2f08ad822a8d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/bs/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/bs/firefox-81.0.tar.bz2";
       locale = "bs";
       arch = "linux-x86_64";
-      sha512 = "e76982df74ee812f37f802d3e82a7ba842d6a211be3beff4fe6347a991ed49601678f11c01847a9708ce36ec2ca956f452b2d7b1fe168a7608ae7999113fbf22";
+      sha256 = "025a79c350f35f8bba1a5fdd894d0eb237d22be8ee5825e6a657f18b0c99bd87";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ca-valencia/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/ca-valencia/firefox-81.0.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-x86_64";
-      sha512 = "a2633b6e009edcb98c4af62df6cac991254a0f370384c2d0a3b81f8c4e49648ab6cdc580888a628668acd0a4daef1bf6b65633c58441aa0e9aaf84dfccfd10fa";
+      sha256 = "806f26efe0a6317cb5dd1b631f8b96bceeaa6e8fced624d15ac334d0d2d78dc8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ca/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/ca/firefox-81.0.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha512 = "c8ba559b912670a86f94188e1b3c0962093955a527b2751e4264699bdf343050999d76b93857f6819c797dbafbbd0980032cf5c497b0d34a50c5c8395cd07cd9";
+      sha256 = "dfa651a556e024d2d27a27d97eec87750d8f4e692345a0f4e12c7a3480ac1d20";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/cak/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/cak/firefox-81.0.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha512 = "52f446f2a2c4bd6d79f680ebdb38e2f62e0830d14fc98dc6ad01c5b404794da1e59f4b8da2d7f4a0483187f4725a212e41edcc2006190818e6229a5a9af8a597";
+      sha256 = "7225d8cf7a529d8688aa7386fe14e50e4e208d55732523d5407690f63b6ab775";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/cs/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/cs/firefox-81.0.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha512 = "91d8dbd3d8dd6e242943d9b416534492125746694a721fff6c9d51f811e2f93b5d521f63357addd0e11bbeac80d3a07d2fda0133d746eb3d4d5d086e59a713b9";
+      sha256 = "17d22031176a4604d498743eea242fe257c74620ac8ab88f8f197d57f8615663";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/cy/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/cy/firefox-81.0.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha512 = "14a04b2d97ea473b45602ab44d8ad08f35f21e98621e93b901ae25731fd86d207b4949bca3283e39cf22aea7667e110c94b948b51a370551c4416a3009f10854";
+      sha256 = "82581e54dc72e188a5d4976bed58bcb8ba4153e72854fc439d3a903a5f60e6e9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/da/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/da/firefox-81.0.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha512 = "5ff9be1796f70f608e12732c71f46c6c4f636e52ed03cb445ee1fc35d4db2897ee1b8f231ba0a5724696d3f7db04845dddf268a3ba59b26a869f65729abd57e5";
+      sha256 = "87a600d73b3fb74ff8aaf26e1d915afa52692501ce67f13e308a7c9af63e6853";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/de/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/de/firefox-81.0.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha512 = "b15a90114ea7f2c69fa94bb6e9c2559be0f7a7a0b7c4c1042823153000bc6a04a27f62c9373cb4c73535e676c41b23dfd260396fa691f2ac0319badb7a087f05";
+      sha256 = "a15fdfafe598fe5e2d5c5854755e316844518eb1b4634aad6cbe99fefc3e5986";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/dsb/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/dsb/firefox-81.0.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha512 = "bd10d40bb2f52c1b5cae9c7d91d53b3cc33bac0415a6f0b37fa5e1e2f5249ce5313a45e0e8b8b218ad961b2e3b3597c7132486a71eae76acdc61805181cd7220";
+      sha256 = "abb71f8df0de953ab2c27e50c9b49a69c012fbe52a0d6eb66744b03754d494ba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/el/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/el/firefox-81.0.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha512 = "4c28c9104085d2ddd024a1418f0f54cd4c57d0ad5fc59bbd26d28bf173a78999eadb025618f0221273c5cb697708f944764a88fe9c08695b10694c68ec54473c";
+      sha256 = "ed3782c6e619f9e0e59b2eb1f36e5c94a92e2f7b617b2ef87e0a2da0c4e65032";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/en-CA/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/en-CA/firefox-81.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha512 = "0722520753a1bdb093e696cebe1e9074661b7602b5d8285b41f62acd462e740cb0833b751d870d602e7473bd11f3bcb3e5dd8e84ca00ca3babeea3a19d45974d";
+      sha256 = "5c5ae0e8345f13c346e2b756a57f465776e8d5a1ea62dd00dc6fe5a3b7c904fc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/en-GB/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/en-GB/firefox-81.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha512 = "8f6aa14f4dddadf19661e3bf11573d930c5e931f383498fd22826cb1e61f97bb5cc5db7507e5363648fba3368c7d49d7395bd4d68c6f9787db65401e990a62c7";
+      sha256 = "3ed2a11824c00fd157b9b3d02dcde95ae8347b6add687f4bbc3284601360c1a2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/en-US/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/en-US/firefox-81.0.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha512 = "28b0f843220a88759893813c48f9b02a255c26fe954632e530f956f43c4cda6441546f3e9d827fd61bca0d61fc6a5580d3134b8d5315cdab90fb57aaf96fa5f8";
+      sha256 = "689d75035303b47266a3819e8aa3bb9026559b819aec2f6e95faa67b86888ce0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/eo/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/eo/firefox-81.0.tar.bz2";
       locale = "eo";
       arch = "linux-x86_64";
-      sha512 = "da2d5d3d337c39236ecf39291dc44ce5c023dc0dc0b093c73b17425befa5f8b54239f166831b2d2b88d3556b9ea1e3dddcda8bdf2907fa7c5a63d78ef222b214";
+      sha256 = "cbebf5a97e5b2fb58c187553c8fcfd6474dae4a911c97cd8730977b8bee6c6cc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/es-AR/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/es-AR/firefox-81.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha512 = "ffece84feea0c13e2f1b40c41ddf0c6bcb9db03d5d377c509421abc2bbab7d04134e14f9eda5bb87bf7a63da57ac214cf88a054fd58cf7785e620e37076b5820";
+      sha256 = "e664214c7b2809919b672426c5d35e467eadf69fcbf43d20e00f379e5ab6f558";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/es-CL/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/es-CL/firefox-81.0.tar.bz2";
       locale = "es-CL";
       arch = "linux-x86_64";
-      sha512 = "649bcc8ffa5ae82a26c277ed648e7e02bdae3df782c2716ae15834f46230105ec4c33bf838a7c5dc7cd1ab1ef92f9babe9bd39e8dd5d34376ae76121119e7a2a";
+      sha256 = "10b07cafb315ef4497d9b2caaac0a83c86701506adab2f0e154a7873f39b3066";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/es-ES/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/es-ES/firefox-81.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha512 = "c292b0f01d5289ca978b0af87d15a0472748db192ef4f09b36f5fcb1a671edc9a3286d3981e482bbe0b33158f930ee1514cf0e8b18cdf31a47a2c72b0e0dbf19";
+      sha256 = "aeb7d0af26b7fa4be27eb0b82da4051ab57ee1406eb20d3b5d12ec5d32d0104b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/es-MX/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/es-MX/firefox-81.0.tar.bz2";
       locale = "es-MX";
       arch = "linux-x86_64";
-      sha512 = "969f18a23691d80f7cd7df0ac43c6a725eaffbee73d8044daf90ff4ea0baf504cba9e73049f74b9cf8619b78326797d831f247f86e5181a791fb4ae211b20e46";
+      sha256 = "c515c089afe6e4ef46df7ace24260118ed464a62146f59cce064ca465bb7affe";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/et/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/et/firefox-81.0.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha512 = "cacc56bec434d5c44422f2178bce9db151249b4298df079a00c378995cd353d6369b6a1edc841928eef26a5dfa23d44f25cc33f0dabe96b44c13004bf134ecf4";
+      sha256 = "930c174be085acb50b18b4ee5b20b158c9a790ca19232cc25a1e34628a7b4346";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/eu/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/eu/firefox-81.0.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha512 = "a5fcf26a1b614006463f0b2503c39c00009ccadeeeef54c7ade12717837858594037cdcf96983cec88c5816e436e97eebacd07b40182504c016d238207bd3e62";
+      sha256 = "2f0e39cece971b12f6f5c325277e77e5a3f053ab57cdc2a2905d9f7f3e739fe8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/fa/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/fa/firefox-81.0.tar.bz2";
       locale = "fa";
       arch = "linux-x86_64";
-      sha512 = "68a2938aa4f190941595e66efad29adb7770657dc755725e926a19e189f15f83a5e234d896f589c693fc3665e50b5da95fb3538238a2c2c2f955caf08d7a9cd0";
+      sha256 = "98029d664de21403cb54276a30d650a124e5b5250939c7e315a0435ebcc2bf26";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ff/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/ff/firefox-81.0.tar.bz2";
       locale = "ff";
       arch = "linux-x86_64";
-      sha512 = "28298f6619a3c485f08d25fd9cfcd9ff8c60014c702ff7e4b6e462a0877b7225829d4a5014a653a3073d4d51dca731859bb6600ba9a66fdc488734af7487f9a4";
+      sha256 = "097747294c73df707c7652c239330c106c69f77868fad65d490d1b896f90e689";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/fi/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/fi/firefox-81.0.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha512 = "fb4ee19b0b71d6d51f82cdfa384a4229e4cb735e0901ef9d246dd192ea5fab010de5549a0236917ee0002de0cb28b0328692079087184f46511c429b4c0201f5";
+      sha256 = "c915afc5e73f837e1e09ac0d14510271602ef5527ebf270b399be880c183b5a5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/fr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/fr/firefox-81.0.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha512 = "73a06198b1b62ce230c76d045b8950008b0ea608a967cd7a143b79b745ca269b6d5960232dc2f20a26af6b9df785785db535182b2fcea2bc1fb6d46abffa1659";
+      sha256 = "775fee38f2033be70e4d68d985602bce3df69f9106d1c427a06b3f8233e7c30f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/fy-NL/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/fy-NL/firefox-81.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha512 = "a7a2ae5b4e1c5b6e0bee93e4dba501638d4f6aefb094833eca2e1a4c342beb29102d92840ef8c898106c8689d585548a2dd192dfdcdfae3a0c7a9fdffa604008";
+      sha256 = "49efc463dfe6b7b7a8dc0bf351cc903160bef3e1886c8faee6f11cca3abd3e90";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ga-IE/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/ga-IE/firefox-81.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha512 = "1341a646c758c1b879464722a536743cbe406b964ba289d9bd36ac973db8cfe008331f1736a838c1b0fa5c2c3a01e12fd8a4b3bbc073e0772ec3d50da7ea7159";
+      sha256 = "6dcf0be88e5fad96c79ccd4b6a612d721b792099d9f1bc029ff5b592c4004922";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/gd/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/gd/firefox-81.0.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha512 = "d7996916bf60c44df2a354c2f09bd1116c2bf1f20bc4445686e16f1eadfa6606e772fb0f9f3086231b8666a5a22a4dd549a4efcf7aad4529ac57a49adf9a7777";
+      sha256 = "924d9190a1d5dc85abcb1f23aacffb98c0116c5cbd430ec04c5275317639772e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/gl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/gl/firefox-81.0.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha512 = "38068429fb33f17451babe535ed9692f8d97aa9bd10a419016f6b61c8a02232c801a2e018bb6164ddcd1c4b3216fae71c1cc7f00cbfab3e20b85d3aabda02727";
+      sha256 = "256c1b81294bc262770c655e2fdb5e36684286f4eb1857d6d38b87beba2b3d3d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/gn/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/gn/firefox-81.0.tar.bz2";
       locale = "gn";
       arch = "linux-x86_64";
-      sha512 = "ceedc3f1e05ca7b33e03bea9e0da10eec1930ebe30cc5b539e6b928da8a19eaa619289f25188888799c3a0d91c12a6873e38411e136fa684f5ad27d6ded6d6e0";
+      sha256 = "2d9d55f4755f372e18a7d07786d64f09a4b4f76e6a80d8904e06188bc6edff41";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/gu-IN/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/gu-IN/firefox-81.0.tar.bz2";
       locale = "gu-IN";
       arch = "linux-x86_64";
-      sha512 = "f2497076febb3f19964b3ffa29de9061cd64706224c29ea8680a4e7277131de559b67c0012d6d7a8905143e6b19ebf27b5ddccb3263d5fb3bfcc8aed1f93b294";
+      sha256 = "86a64d446efcaa014fbbb05787223a025d99947ae4aa8e704661f1236c08bbcd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/he/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/he/firefox-81.0.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha512 = "d91a982c027d2b68c449fcaeb719d8943d089c778d017534d72b571b26af8c7e01ed9ee37309394b6984daec3579b91c901a3a1d9ecf5485a2a0a1a8f93d522e";
+      sha256 = "64b1fcd9c454d1248eb1f2d02877f964e50dce38ffbdd93ca4c367246121eed2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/hi-IN/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/hi-IN/firefox-81.0.tar.bz2";
       locale = "hi-IN";
       arch = "linux-x86_64";
-      sha512 = "7aa929a279e568ca517f3727b4c51417cb4acb6e2606da30658c9a213fb789dba9191b51d62037928a47daa394ddb5baa0e2746f68a4c5569bda3632be17a719";
+      sha256 = "5d5f52e34c735df3ec5571e03e834919001fe3417a4190515f86f1e479690ace";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/hr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/hr/firefox-81.0.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha512 = "07fde2ae76e5b9ffe81ed5d68114f66aacd7209e5edb353d1962a9509c7cf75bd42ae21ee8cf30216f502e31af5caa7984676192a714712bd279440659dc1661";
+      sha256 = "e6085effe2607a416e80a310ace23381fcdd752bba8e58ad7611f05885e01e11";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/hsb/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/hsb/firefox-81.0.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha512 = "b591a29c05f751374fbcf9c8557d208842ee26eb27ec0be766fa1f5c608c4eac7311e667f27f95bddb4d55b984d1975533e4c6d3267c69130ec21ddf189e84ac";
+      sha256 = "6a35c1657d78cfa843a24bea346fd98aeae041fdeb65297693f89b012f0c3786";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/hu/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/hu/firefox-81.0.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha512 = "cd5f400c8e66e201f34155450eadf6d920327a19e87f0d0d1f7728c481c03588268b7711c865a011a207287ba16ada555b6d370badb28ee3ea2b469a76f0a03a";
+      sha256 = "3717f43d3d771cbf4dee43889e0bfac3eb60dff8989c06496cbf14ace5753ca3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/hy-AM/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/hy-AM/firefox-81.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha512 = "f08d7c0d8db0cfefad662eece31ef9d23de333f88aac225960bffd20a9de4bdeb4f2c9835be7351e20615f24024861231a79ab7ee598caa83dde88e810d973f4";
+      sha256 = "c376e1f35c8067b41415175bcb597c331b5f5352d4262f5a38d08296a307343d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ia/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/ia/firefox-81.0.tar.bz2";
       locale = "ia";
       arch = "linux-x86_64";
-      sha512 = "b5bc06630095041dffff149743d7dd43fe0d4c698f514f2f91ec0d8dea62273501df4a304903dd96532e9fc1756a8330f052a5833e331bb39478397dca5fe7b0";
+      sha256 = "99e0aafd820a965cd85fe9094b7465d700f8e62cbba86ef9746a44445e5bba2d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/id/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/id/firefox-81.0.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha512 = "2960c0551aadd142c5fac2e99b327be4393bc2e5515d3c67cca617cdbbf6dac8e20898d124960420a8804bc7e1c61a8bc3de715fe43ff7c5a9dba62d515a4e10";
+      sha256 = "ada432c2d6a04fe928416980b0f3575e2a42668c7298f68c32071ae2c4f5bb8d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/is/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/is/firefox-81.0.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha512 = "ca9be0a8d2ed5cbaa3228de5d5cbc4ed6a0b14c5bf5f1e978e28fa1840c00d3cb32334f24cd9846e9aacbd61e04f79949f5271d061d62b5654a44e95f813b397";
+      sha256 = "df304bee0b2235222c97e49e0ad8bc0e3fe1cbe3ec0ffbf1b996902a6817d863";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/it/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/it/firefox-81.0.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha512 = "20259f0b35d85a75a90182851cb57f33b9e043e358a2b80e9d3e4fc5e6b0f3ce8bfffd9dca4f574304d66070f307c3832647d4829169202b119a998cf969ef39";
+      sha256 = "8c35e143b73d3019b284a006501f93aa2550b32688d7d3285e56f92703df959d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ja/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/ja/firefox-81.0.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha512 = "41234ac1f73c3f93f61bb6f1dda395d7e6b969627b86fe36f93f33353c1b28b4f9302014ad7cde6b3e8df2f84b3eaf0bb75c6df884de0a9a77ed2d133beef863";
+      sha256 = "39c23321100cee799e7024ac27d547a6cd7672485f07125d02c75dcd8e38f268";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ka/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/ka/firefox-81.0.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha512 = "be9130cd5835cb103c3149dc53dc325c54c1cc5f5006cbf3598314be2022c1f51928529cf3218052abc5f7f6f649e862f69ccb5b39ab5053141e231e56113ba1";
+      sha256 = "b40137c85d1783ee9a8a11fbd72e33bb9a2d3baa4bc2cc9f31a0c0bf020c2233";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/kab/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/kab/firefox-81.0.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha512 = "75d15e95416f3f61e49164b7be43f9335049f62f8350cb4abcbe3c7df6848a124ff5b5e43f81a4eb2f492ad3a61ab1c0979083d14998b684b2ba8988c94d6b57";
+      sha256 = "61dab84674aef3fd91db859900de4709744816f621fecdb3df46a63f4426289b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/kk/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/kk/firefox-81.0.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha512 = "df7ecfd04df63351d35425f74bcd5b0b342302b6c7b24deb35394aff9ed3f025ea9ad1c1147d46a789a2a11d8dda924c15584ee826819fb4b1fb0509aa71cc9e";
+      sha256 = "a9e8e32cd7441a4b78c5c7b9ea7943c756f5b362a9e6a9028e20dfcb461bb056";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/km/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/km/firefox-81.0.tar.bz2";
       locale = "km";
       arch = "linux-x86_64";
-      sha512 = "811876b5a4d070aba73426b2da43ffa5e9f9beb1a4ca37ecfb5e058100c60d3455e6284e9a71d5ae58af8cb9fe9e3e0703847ffb16fd963b4eb1410a3921f260";
+      sha256 = "f003c7a5eab166f29c37aaaf2c5cc4669d90fff33854d43e157130f606011820";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/kn/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/kn/firefox-81.0.tar.bz2";
       locale = "kn";
       arch = "linux-x86_64";
-      sha512 = "8c195accc9adbe3662abf62435d3b42ae4e2affcc41cefbb8f5a702ef75ad8566cab07eead40869118ef9164fb6529e1b4203970b908ed7d3f0cf43190049b2f";
+      sha256 = "f23a998f16c3a93c210b7f08337bb3e739311ada223e85ac4599819b89bf7110";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ko/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/ko/firefox-81.0.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha512 = "2c571a931e88a49e4c977728bfe51a2008d4c384aae55b759dea665bf2810e5929a693f633c82c5ee26e1236cdcbc003a9a39e0e01ac46db71c9bcc20eb8d17c";
+      sha256 = "b6748a4a86fe9864a3378e32357c0fbc542846308ae8ac8005460d40f4f869b9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/lij/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/lij/firefox-81.0.tar.bz2";
       locale = "lij";
       arch = "linux-x86_64";
-      sha512 = "d624ab2b73c03157d0559a3a41a7a50f985364b8b2c03466f949d2cd212d206bb39957eed9ea769796f4091d7644cf7191fdd0881eb8101e2cb8944923c677ca";
+      sha256 = "267633fa63849ae002ebffd892ea3f520d59bace0a7dafe1f92dcbbfcaa7cf00";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/lt/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/lt/firefox-81.0.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha512 = "72607d7201c562103dd241f18cdc2b681fcd5d28302f5afcf9e03f8aded2339a88e2b8c2b81fffdad5e10bfef94fe39810116d61a415f9625d0a48c794078bd4";
+      sha256 = "a985da29e6d91efed407bc9d898e8bd8f68d42cd4673b6ea163b99d8bb9cd642";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/lv/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/lv/firefox-81.0.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha512 = "f928e22f29e46bd9405f5d2bc902c82093ad8073d8f6ea52af20c93805b0c7b5523f489f9140baae1b04b015b7c185ba27398ca857b00c171dce32f38ea0d706";
+      sha256 = "05a05361cd3b5772c30c2a8cef03e8753311245caea3ee94e03fbb3b5b6ae9ed";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/mk/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/mk/firefox-81.0.tar.bz2";
       locale = "mk";
       arch = "linux-x86_64";
-      sha512 = "f6c7bcda5da5d3315a0a5a47d7a0b9ec0d4a6d4b0daf8fc11d41a8a8376fa05607889d108d38f3a6085c0f9cfdde86a6486993f72f44822a75a97b1b9dbfe185";
+      sha256 = "0433579dfaa3dff715129cc45e72d83f93b7dc3a928b65744dece0a5b5687916";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/mr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/mr/firefox-81.0.tar.bz2";
       locale = "mr";
       arch = "linux-x86_64";
-      sha512 = "8a41b844c5faf640f78615593343dee0bde8dfc2c20977b80a6e9de37fbe10e997345c801b025e4eb79627aac27a92169e0c332e7595715227b2d3015b2c9b3b";
+      sha256 = "38177842df2df76fda10791eaa518d30b92f03016705eb555630fa356992416f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ms/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/ms/firefox-81.0.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha512 = "866daf16e535cf9e404a788c8b792c8cbb391c43912738d7eafa723c5e6eaee7290d94c39324708533b4c8514391a0eabd62626029ee7591934e5ff6abd72969";
+      sha256 = "34b724fc82f330d897b1073fd4383f5fbfaec9d312cc7991f395d37d98416da1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/my/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/my/firefox-81.0.tar.bz2";
       locale = "my";
       arch = "linux-x86_64";
-      sha512 = "94ba7fa3a0cb791daaeaaf9998b0c574759f7afcafcd388b0b5aeb9bb1ce97e36671378f0c56c3d5120872ab2ca48933b2a304f3ef3e194a77741c492e8e75bd";
+      sha256 = "a527914488954bdf8aea31a6ab406791cc723b88c11a5a27f161aef970e00d6b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/nb-NO/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/nb-NO/firefox-81.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha512 = "c46ada870f940387fa6bff044176aa59f3fb376a8d8b1df1715f6abbe3bf87f932a49e53f2c4bde967bdc04c930fa2e426f7c4f66c22c64353be68220d9ed94a";
+      sha256 = "ccfa39917b8b0c2704a011bd41b0cfe4e890b0c1bc14bbbf641b7add2bf0750b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ne-NP/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/ne-NP/firefox-81.0.tar.bz2";
       locale = "ne-NP";
       arch = "linux-x86_64";
-      sha512 = "005aac3f43e0104b284f1805062eea457e81e8b29940b8c034f99de7e07d38dcbf9077d62a1c44a1f2dccd65258b1346889e08b7736d9fc983f03df788fd5e2f";
+      sha256 = "a3deb02b843fa9ff7a12590ad86195a9deb1be1eae055b493c34614fb361edf9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/nl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/nl/firefox-81.0.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha512 = "9d00c7ebf4589615afffddf6a33f0e75172059fa3e9ccd56d3fe720b01c521fa30a88217b77cb2ebc37b088ce69ad280488da6ab53525170cb1fafba64816235";
+      sha256 = "864ab1ee8d70e0968570fabc1e110bd97c86d27ce5d8106a70a31c6843e16db3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/nn-NO/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/nn-NO/firefox-81.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha512 = "5a9ff27a1355497d57056826ea0ba465d9f10fe0112628634267b262b4bdaa07b0133fbacb8a5644063cacbd0d59526a09a6b98caef78d25c39173934445432d";
+      sha256 = "46d109379dba5dd3e5c9c413e54ff2578117960ac3c85ca937b48baf08bcdb76";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/oc/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/oc/firefox-81.0.tar.bz2";
       locale = "oc";
       arch = "linux-x86_64";
-      sha512 = "02e1519ec4097a990325cdcc2e13e70c16b25febb466d9d06db64b8b0c689c7246546d0666a71003a533d73d0b73b472aa8312d9bc59463dffde979618570ef8";
+      sha256 = "71638cc84a7eccb4a563b7640c84557bc203cbb91114e433e1400554a16b2c1d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/pa-IN/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/pa-IN/firefox-81.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha512 = "9f7218eeb5abe8f2196b2a43cc24a0cf6cd13dcf8801f7b57100336a90550bce23579dac36353fdefe542714e67bdb86102de734ef74e4ccd29a55c8f79a2689";
+      sha256 = "8fb76633497115f927ce2be5064f6c6bb70d552c53491ccd6558df163941ef52";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/pl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/pl/firefox-81.0.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha512 = "d986bfcc489a89a9f49defd9383904043d36d4b29b02715186977cd60add217845dd1785fb457228c71ae02243d10a110b563f18fe5352e68e315ffa8290848a";
+      sha256 = "e6d38535433cc0a0c4aa07ab9aa33bad4d019041d4a2b30ccfc5553a10579a8e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/pt-BR/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/pt-BR/firefox-81.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha512 = "cfb4d9510ec5e35d25d53302e553c9a85f8eea4120a236dffc5f2350b70868016b852bb1d43eddcc03b7dc9593f8f76e133fc8329c000f315f68f2e4ae5e3201";
+      sha256 = "399ef81afd3b05dbcb43553cdd36a2fd95e681296a21e7476cfa0c64c0c13ae4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/pt-PT/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/pt-PT/firefox-81.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha512 = "335fa2e31e66f0ee0323a50154dcbfdb1516b8376a587f0097e40c51c93e3c019de3e1c4af19cbeb4f57c1b736703b82dd63af91e53c2af5532eac42d80fd800";
+      sha256 = "d6d87228f6a46237583ad8520c6758fd53d778e1905d019978a8da5fe0819cfc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/rm/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/rm/firefox-81.0.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha512 = "f7f06e4ad2f0f01f398afb5e95c4d88e6c045d57c86d7e004aac3bc79c29043853aeeb4a6162fe004ebcdd7278055a19f6c25d60887ed451905ec4e376eed175";
+      sha256 = "46dd4f4ddc69d82964289463baf67c05eab92a4500ad17f691a06fa0ea72830e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ro/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/ro/firefox-81.0.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha512 = "4017ef08f0f1d7fb82bd9b7afa72a617a3f781ef6296b97b9c351528d8107523df5c2dac5aa1ca112cf6e6b5aaea818195f3458cbd20b9f0cf88b3acf09699f3";
+      sha256 = "8720bf2abd57615d098360e7ddb384c0d570d4422f18d509c8b2b7759dd84550";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ru/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/ru/firefox-81.0.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha512 = "7aa2ade09571ea44e08b12f2c758e56fa66eac8cbd49d90c28abad04b99f9fe005eaa04f5b6b238cdf56cd7a59ca388ff769c862310dff0a41d952d35f1cc7a5";
+      sha256 = "6a8db970a3be16e8a0524c2bb576e4c368d33f8bd874ae201d000d112f86282f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/si/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/si/firefox-81.0.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha512 = "668df6d1741a9d300e975d1d25b42931a7eb3c2883c33c4ce1a585ed7a065a589ff569732e1ee04ef8f25c84d69ec3458f92263aaa5b2a36fa6da8a1ccacaffd";
+      sha256 = "1ee0f867be47f5a7884577caf08778152d8ee08d8fd1b25440a69fe8bb0d1174";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/sk/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/sk/firefox-81.0.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha512 = "e295e69e84a768ba070f087aecf3cf041e67bc297f144af5eed9a75758e0d322f730b797601fa0733b1b9260f5d3225c899ccd80a3861fdc77ab1ce9179dc589";
+      sha256 = "97bc401f7c3c48b62fb66b3b5ea759345641874a46eb001ec1570ce53b610764";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/sl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/sl/firefox-81.0.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha512 = "63dd33ca7ce582b4f3284e936f54469a4c31ae1006dcd95ec5952dc4d97b2d524a91adfebc041e8a7b9358f5af847a6fb6af35b41af744c2701d408f64d181d6";
+      sha256 = "5b5dbd25fc83048de4fdeaef13126701b01e070740345838c29b8aeba65934e6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/son/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/son/firefox-81.0.tar.bz2";
       locale = "son";
       arch = "linux-x86_64";
-      sha512 = "801bbdd3da93480dedcc13589c77dd2bebed151df9ff468e8d9d2358f69fb57c22f8916a9581e460ce4fefed6bff651126f92ca588392169556444c21a4aaf42";
+      sha256 = "99a2c222c6e14f511dda1f5cbbef2effd2aec7d169893024e25f2dc8f4900e39";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/sq/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/sq/firefox-81.0.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha512 = "4eff5f67eaededa77e962609ef7da1af2b10f5510f3d354d5d8065957aec115d827da0c0ea056d02b5d7c11f05db7e4b91cfdd6bb0f879ab92f6fe84a1e137a3";
+      sha256 = "7ff0ec6837ed3536f73aacc8295b5439aa0e18cdd80f2882bf2b644f5e7a1637";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/sr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/sr/firefox-81.0.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha512 = "d688aa2911bd7925f6be1307bfad521ac29364f047b8c7d683328b95b871a7ca0f382c103babffd518f607eea0298177d6ce145511271f3c92b8e2de81da06e8";
+      sha256 = "274b86c7dbdffcd11453e8103feeaf6e98931c7224ca2336d231cf885c809f21";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/sv-SE/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/sv-SE/firefox-81.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha512 = "27fad5bd1e0a2b2a06ff48c90049ed2d03fe8c463ce5a5a5b5a83a24add6d1fb72ec83d02f4c9e2e741c3d43b86e9fd3a821cb6d158d3fc940fadcac9d040061";
+      sha256 = "0fc7edddf1a3aa812664e08e94cf5967c69a5f4821616400a8144c3bdda9860b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ta/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/ta/firefox-81.0.tar.bz2";
       locale = "ta";
       arch = "linux-x86_64";
-      sha512 = "1dc96ca10fdedd37369037126c48940c060ec1b0238cb4c592db79b3154c8e1ed167152ebbd33bd7375b241776109222c1c3e886dacf4f885319eeeb7e33ee8b";
+      sha256 = "20121341b05c91142bd8fb4a0a2195693e78a89691b02651f6d6c3ac9f848a4f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/te/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/te/firefox-81.0.tar.bz2";
       locale = "te";
       arch = "linux-x86_64";
-      sha512 = "4c203815b896aec1a94416ae2baf96dda2c0c035da00e592ed16eadb9b729710d5cca26cd0d03fc654576b9458b4c2fc50be159164e6ef1f1fddf90609221eb3";
+      sha256 = "bc306272b6bd53e312dfab3f404f1f92199945be9f74e1d87d19b58e7ae2ee95";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/th/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/th/firefox-81.0.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha512 = "22ae877469cd895afd487175ebf04c6a10b42cd7b408e5dcb352143e457690bc13561395abe15db0bb6594074f2298609fc381d2137c5e1aef2af273f17e2489";
+      sha256 = "52c8825f27f78624a81271a01c3b522cf6617030046a38734611ee741215658d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/tl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/tl/firefox-81.0.tar.bz2";
       locale = "tl";
       arch = "linux-x86_64";
-      sha512 = "10d60e3389f43f1206a3eb1252897d0a047cb14272f8408c61f34eaeb227966e8e43f9fbb92d246bbffde77fd139e5354fd2abdf0abc91b8631dbbb64635b549";
+      sha256 = "c87f99419608a06d79bec67f54bafec6650dbcbed7fb52bda058bfe68d0ea102";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/tr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/tr/firefox-81.0.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha512 = "c17c8ae0e97b130ee437752410eec9d2bbacc84aa2e5f13e0c52147d7540fe6f76e91a01b0c94aa81b1a67f2a7d8ac29fe9e21197b659a6840c3c9933603c119";
+      sha256 = "a030a15ce1424717b8fd0787f1a0d13ad8e050f0f5b4cd679d6c2686fe81e0c7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/trs/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/trs/firefox-81.0.tar.bz2";
       locale = "trs";
       arch = "linux-x86_64";
-      sha512 = "df664c21640b9d36c487030a5db3f83a2947f375a7bbea3fef9a86add22ebe23f482091cff6205ef22e8544dacad43345302a7b34f0a4729a8da6670ee9ec9cd";
+      sha256 = "762f7e33307811f6ec18c198b4f524526a085828af2621885b276ecd8bac6dd9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/uk/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/uk/firefox-81.0.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha512 = "68f6c6a804b40441cd5bccab2e925864ae8642dd2be6433e215e1a786043b50eebb8e00299d47c19d5b3c52a86c8a0877a511f3142299b906ea2bf4bcd92099f";
+      sha256 = "a698aa0d0599b97c7e9791547573d0afdc5e1bf0e5e644069752686d50644564";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/ur/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/ur/firefox-81.0.tar.bz2";
       locale = "ur";
       arch = "linux-x86_64";
-      sha512 = "05751d956fe5c5d3662c722bf97af4056e32daaff5b704e0f514a16529d8110ffb6caa4207747745b9c46bdaabe51be658b15b54168fea4f0b27287ba7ae9173";
+      sha256 = "7d1759bd2f0b746be76471ebc3c0da2fa224f4550a787e72ebe52b6356fb9370";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/uz/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/uz/firefox-81.0.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha512 = "bbc479208f90b22da1a8cc154870b1b2eaaed25395525820c5add437186c7e3a391545f5efef0d1b11e6ff82d5cb7ba85d1a0872e919cd681eca7abf92aefb92";
+      sha256 = "51c21a2cf377633a46c35b2bf9096b97f5acab1bf7f8014122c96668d14c6d95";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/vi/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/vi/firefox-81.0.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha512 = "9414e3c51efde79c1d959036d6365416cb421d0cf37bc5e2fbfadf7673d5bd87d506e0ee1914949292c4cdb9061dc93ec50c405eff5cbba8bfe5f1870afb4948";
+      sha256 = "e1f3cc7866b19e60b8c368b0633bb0603d7176a87ebc910fe4c4a7575a98be7c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/xh/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/xh/firefox-81.0.tar.bz2";
       locale = "xh";
       arch = "linux-x86_64";
-      sha512 = "61c8b31b28f406eb63688258757ba072065eccc91cf0195f03721cb774ac3e5d5aca0fdba27e09933be8e4106e30ba39ba4cdcfa85d3bda1a8e976695a3e47e8";
+      sha256 = "cce6577abd88d3b34ad3e83577bbb82b6df8754679fc4cdd8a34c9ec9d59acae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/zh-CN/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/zh-CN/firefox-81.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha512 = "4fc2046f4f2cce47c27876cb63a7b07024b639e43cd01c771bf01ffbbaa70943dab0a17e08ecf63d47b66416a7fbf89cd37cb06dd0eb5d589f0e58168632d6ab";
+      sha256 = "e042d66ae743d1889d6d8ce13ef3510644098efa0943d332656b7e361b976da3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-x86_64/zh-TW/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-x86_64/zh-TW/firefox-81.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha512 = "5eaca5f3d81588547f0df7929f8591527c2a331d52136b23aca547e7d97b711ef45d1b5309d63b08eef44897fb9ba47d91b0b94f077856dbc5e6db3bb62ae441";
+      sha256 = "07c6ac6268b54caefc44654bbc68d19dbe8e6e15fb768c921a8030e179ec8ef4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ach/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/ach/firefox-81.0.tar.bz2";
       locale = "ach";
       arch = "linux-i686";
-      sha512 = "10723c4bfb26d00637f4e190330bcce602b80b4693c4321b7fd7cfa58cf7ee33d8829c0afd23c17c836ef82f03d5c7da98695248bf932264697015a2949a3576";
+      sha256 = "bdd0995ca7d73be587ef1a9bd0395b869ec4f7f90a93ec854a5bbd1c18060ea0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/af/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/af/firefox-81.0.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha512 = "276a26621d0fb37f9c57bb5de992a3213cfc97ddf891b6fbec331722455221d71b1dbe6f5ec63cbb552a1dd0addc2ca8549451facd83d9b3b3b5d88fc0e5537c";
+      sha256 = "f662391298377d8d7f38f90c31b90bf705e61b1c3df5e1a7ed7e6c705ac700e6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/an/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/an/firefox-81.0.tar.bz2";
       locale = "an";
       arch = "linux-i686";
-      sha512 = "2cd26f8507a49676c32fb7c9c8ce43a9df082a965d59340ec794f11e85077f126a2052c86ab78edc6087a1fbbed3e58e773930f20a5e3e69fece29df0931aa1f";
+      sha256 = "46ca1495a74861429af6cf33eb791738abcfb5fa29c23060c7b9d307fc6a1b5c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ar/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/ar/firefox-81.0.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha512 = "80a4fa4279f0121fddc956ebec61b9ad2fc4417f8e41461517e50fbbd6d44278640590e4d4ae383a3e1d732382f037ed7bcbfe599fb08ab21a0d98b52f32d0f8";
+      sha256 = "1b781b56560f0bad0d67f155d68da1b5b759051434c76095c8ff884837595866";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ast/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/ast/firefox-81.0.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha512 = "68392bec35e5ae6913311c7f6187d916dee6e3702663e0812a557e331a5cc4f30cf8cd6555abdf132ae7d638100ddbcd485bdbbe1519693ba34d607e32c361e6";
+      sha256 = "eae1a5378babbeb88c6b000dc6500bfccbbe8337eeb32d7bfdc9bab67448d8ae";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/az/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/az/firefox-81.0.tar.bz2";
       locale = "az";
       arch = "linux-i686";
-      sha512 = "e15dda365436f32ce3b553f63e459e5d32c5a00aa3b4413899c9028e0b18d1a575c33747cd621d1b8e08a84a77ee2ead5c5fdd8b4077055dbe96cbf2d223cb05";
+      sha256 = "4ba58be6ffb171c843ac5d267e97bf8ad219b4d1058a96b18f08ac4dd83c6b0c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/be/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/be/firefox-81.0.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha512 = "46dc546bf28e57f7d2fd462733eb7486f88d4198159e77873a5b566590fa1b81db8ef4149dffcf60cbc6aad1529be11b8eaf5aa4fc410600a4a1eff3b576f0e0";
+      sha256 = "b7cbd330b3b261e8b57134c27a291348219105cbd8cc685917ccf8e03099f2e7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/bg/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/bg/firefox-81.0.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha512 = "f44fbeb1b25249a28a9fd77dda908c3247f85f788ba22dc131155e6c21d80450975687e546a63291832974555745e29bc8b8b177c338bf911c212125a10f95c1";
+      sha256 = "e6354feae56c656365fc4604bf394c4038399ea3a7ee503fd38610e1525d6539";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/bn/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/bn/firefox-81.0.tar.bz2";
       locale = "bn";
       arch = "linux-i686";
-      sha512 = "b2fdfb72aede045bbdf03feeb38d0f8530edbf6f2e9ecd9723b481365eaf0827e879a38136e6d72efb666138403205c13cdb10a1018e5d255a847d8fda4a2507";
+      sha256 = "280d01e9dbfb09a08264e36c01b5fecef97831fc2c9d99e2f5e0ed498bbf427a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/br/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/br/firefox-81.0.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha512 = "68cd1a7eaabab81400c78e1fa36850dd84fae8f2b05d5c57a4769beb7948d050b6cdb5b4b6928afa3a70ab9cd97e37214d67ccc5cebf62d09b7c1194ff410b24";
+      sha256 = "a223fec4d16418befd75ce455f470cdc831afcecb6fb4c36139fd2f7c2588337";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/bs/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/bs/firefox-81.0.tar.bz2";
       locale = "bs";
       arch = "linux-i686";
-      sha512 = "4fa4d41a85e4746e383bb514aab8222a9c0aa4ebb1779009a50e891c672e6a1002ba454ed24d7d4fc4f0f79ca53a985ff56981acb2845762085570bed93da3f2";
+      sha256 = "ed7910663750af303d197ab3919f54d2a108ed691e016696e4c9a6254fe74003";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ca-valencia/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/ca-valencia/firefox-81.0.tar.bz2";
       locale = "ca-valencia";
       arch = "linux-i686";
-      sha512 = "23b3a60a34fdc9dc31e54141e5f62d21fc118b9932ed5b0eef6614535174c107b113bbcb3c42a940fcf6a86d1e734d5478dcf840f882cad6a772c6006c8944c6";
+      sha256 = "19d4244b6711d3378835fd00715d7db17052de0345dd9b33b013169920f388c7";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ca/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/ca/firefox-81.0.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha512 = "227cbe52a302f4030fe610ba816c70c5051c58732964fbe64462b62e879df0e35069b0a5d5a862bed87c21f36387fa43bdb82db827fe58b1e1d80c966f0ccf5f";
+      sha256 = "bcfa0b1785d3aeec8e5ea25b472da288c3ebced8661a70c21db08741e9ed5c67";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/cak/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/cak/firefox-81.0.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha512 = "5a615b7de8caefaab8f4f75401b13f40f3cc4ea23404f9a998979402789e8b2493c1cdb88b56a450b3a0bdc075a42722d963c3f65241ed3b690398d0d71dc196";
+      sha256 = "cbf0745604bd3f757851cb4772eaac212d16288c7279634d470610ea280b7884";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/cs/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/cs/firefox-81.0.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha512 = "75f06c1697372e0432e8c6e9691497e0cd328ed7e050a0bdf76acd3513328994d734c4ebddd923e2d19b5a83142c4570e16f3079fa6e0406ac83de25e3fe6e42";
+      sha256 = "1e91a12e484a2a41d87de5e60c0b3f455f81669025ceaec0c7adbb447446c367";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/cy/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/cy/firefox-81.0.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha512 = "7636a99636e77e4a6b6ea20c6d73eefc11c91691d0418d75a3fa7033d844c8ab652cc5dd1caa1c574dbf4c1a143ed738c08346af4ff4323493aca461fa256b44";
+      sha256 = "c48491eadec23c78f071f4bedd23ac02235ef090375dd0bcb190e0b1d94fe94a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/da/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/da/firefox-81.0.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha512 = "0a591e75f79f196dc45630b32e237e8b28cc2ae8463ababfb36b1fa9ae4f271eb53d7cf31834de8ebc0e453b89310e5789996add2f57d0035d1d9a80369e6ae6";
+      sha256 = "81a1fc46b7f92b2375edb20d3464c4d7facb493a07aa4471947f8b8b84cc3054";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/de/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/de/firefox-81.0.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha512 = "fcbfe21676ccda69d67f945260ec5a62a7513b5d4c4a51dadd252d083860f2b0d2ca0882714af55485a0e11b36a0059c87db682032901506973ca54a8e341c38";
+      sha256 = "719db056506ca0b908d121cd3e7785b1d8739610c7728723e650ca35b99ce26f";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/dsb/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/dsb/firefox-81.0.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha512 = "76e8200017f7a89b0418ff555ef8028e38012fa520ca2fa83239290eebfbf4c1e063d42bbe288e6d32daf9dd27d463cc6fde2d8c60e7a3b8ab2cd442742da450";
+      sha256 = "1ef45291cecb8727951808d20df4469c1f0d731b0d3442283fa1f45f39c0e3c4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/el/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/el/firefox-81.0.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha512 = "73f5a0f278556b0c99eb479407401f19ce228cfef164ab1cfc61c766052beac10ad9ca3d8bb2e9684d31db75b764572203ad22682f48af3db9d74b3b2c7e327d";
+      sha256 = "b0cbd8c13a40116779b1dca51191fcc0a8b203327b568f8467f6864e4f5db9ad";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/en-CA/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/en-CA/firefox-81.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha512 = "51d76ddee014df74e45fcf960fbcf61aff4500fbd86d4ce99b9f52223955af2b7f81bf6c66501085460ec759471a8ea45d45b09295d3be8f9d03a3b55d788570";
+      sha256 = "4e4e204fb9ed3ed167fb9e3a9af2727384d09e37f1d5262bba05e296a8cb4a16";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/en-GB/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/en-GB/firefox-81.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha512 = "93aa0d761f68c2b5b6c387284418795a77491d5f880d3cc0fa9ccdea2971563326545fc9dbb1f5ca0bae19e7199553c757320706e95afb2b77c00c2e06fba911";
+      sha256 = "7533f99bc58783e5779b4fbbfc77b96a6c04958c0e752d71b1f57387824faa74";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/en-US/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/en-US/firefox-81.0.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha512 = "b3da650b9da5df10c611aeb5e08a6f96be431a85edc0c3768221faabfc3b302bb23677b33527d23d9df37aac7b83daf869f4a373d461893a9be83d1b74937e87";
+      sha256 = "68bebc780f225d5694506c4cdc6a7c31c779d2f1feffa792e599f99d0b2e58cd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/eo/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/eo/firefox-81.0.tar.bz2";
       locale = "eo";
       arch = "linux-i686";
-      sha512 = "c089b6425c683a1a75956fe50be90e9027693eb4bf3dd7b19efcfedcae36cf8c989898b5d6e69f15810be0a2485a353fd0d6a1ef9041e50ac62888769e9187cf";
+      sha256 = "ab08e50d0a5e5d6d02a8daf1c6a428ce9ae19b3a343bf0838739adc9a4170bb5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/es-AR/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/es-AR/firefox-81.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha512 = "369fe08d54a48e9d6c5260b03c4af124ab43676ba46d96eac08f71b4bcd3a9776563e6bebf37ed523828463735792f6a160e222cba912cea9020a84b92136d31";
+      sha256 = "837f5cff13186af4f38c0c21410f20c57f28a3b5293ec986a449fdcb3358ddc6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/es-CL/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/es-CL/firefox-81.0.tar.bz2";
       locale = "es-CL";
       arch = "linux-i686";
-      sha512 = "dc9f850c487209b414b77d9bbebfbf3c32a8ee5644dbb2a9a119fb0f9da6d3d711a3783a4151dbf3036b9f94c28273802893add63238ffffdbf77cf213686c12";
+      sha256 = "1f73cb2ab7eb1b7cd8198113941fc71c17972227365edfd5cad73680d30a9c6a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/es-ES/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/es-ES/firefox-81.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha512 = "331a100f8b71ad1e33e436e0d03c37438e0c7dfaad9f280d627dd02c2c28e28756d7856d36e407b84c254ca45b88a761e9a940955a8aa52c0c558fb98b4e6bc2";
+      sha256 = "1e95337b4607808c3c3b319343e253d575a07fbe48f7ae8d8346f92a3d9c70e0";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/es-MX/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/es-MX/firefox-81.0.tar.bz2";
       locale = "es-MX";
       arch = "linux-i686";
-      sha512 = "c4ce60e070214ca4901e153c3033e66cfcfe8d0ebf9c1d1e448105467b8a129e7904a3293fb3d895a6380a0e54bfd007e5d581bba4f1d2ee7ba3cd44b5117705";
+      sha256 = "cefb685c2da73fe485ff0817901a19c609a73befbb82fec151765e889e4c2d91";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/et/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/et/firefox-81.0.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha512 = "bae0eec7d0578f8ba911f71505d803efcb8b7005e6e6ba0bc7dc36093f462c7f704c1244dddad5d38249204b553cdf8b0efeb12c235db171d98f5e2827d085eb";
+      sha256 = "95dbe912beb0ee6196e3bbd169093388c22fb1ed0981a7827fee4bbdbb774316";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/eu/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/eu/firefox-81.0.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha512 = "821d3b331ac1bda31543c08ca678d141f640e862986da1c5b0e8c48981fe88252cacbc728b63e4552fbd83dcd086268420f63a0afad5a37ab0348e7d29828d03";
+      sha256 = "44047e7f01fb086c099db0ddda6e1d6641e33e038a4e658b3a57ce331ce61523";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/fa/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/fa/firefox-81.0.tar.bz2";
       locale = "fa";
       arch = "linux-i686";
-      sha512 = "1ded2445623c10c5b348041935c03050eebfe1af1fcbc9ca9c2bb630a38a095408f3d09e9f4ecb9db4e06ea51d9aa139ddde8531db0072f6a57c7932fe302e80";
+      sha256 = "252f1e06b2faac3c3f94d1a1f9f52f566c84efffca8a3147c32ee6f109feaad2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ff/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/ff/firefox-81.0.tar.bz2";
       locale = "ff";
       arch = "linux-i686";
-      sha512 = "1f3a2d9c0c981c20f1dcabcdc5c8b6a8170a238f4381004183f8381bc1059d65d650374f03d124d22e821cb8d9bef59d59aba6ef132dec991b72af4c77f61d8b";
+      sha256 = "1bd050b8d4840a17d12f042a27295b71a4a62ebdac4153ffec843230b1cc0b25";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/fi/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/fi/firefox-81.0.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha512 = "8f4737e9bbdfae980faae68758906099aede135167cc99b3ee98eab85e6d9d22616e8043af7f02981ab96b885312a89869980a06fc0ddc117806b1d5f9b2d3ab";
+      sha256 = "6582223e393876a91ab0250c976b1aeac0559722b17e198e05925863e53d81d1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/fr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/fr/firefox-81.0.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha512 = "8680f38e6b9d56f3339f243e99cb5d541d6b2eb10a7210d8cd81bdc91f35dedd0de3b551e1b857b216806bda223c3a638cdd7e786d97674c5b7ea6710f669304";
+      sha256 = "b96dc92220680f3c87d6c7cfe79f071382f8183856967133b6fcb6783a60ae6a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/fy-NL/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/fy-NL/firefox-81.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha512 = "aa34dde7faed1b86707f71fe190abde730f0ecf33351c487d1a2fdd369dd67375d122a266fb5dc2b28aba87c93663a5606c43fe3092597b04cf9adc752c3bcb4";
+      sha256 = "4a90cf75ab890ebef3517db701bcdd065e42c2fd8055121ea9b97897be299543";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ga-IE/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/ga-IE/firefox-81.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha512 = "bb1988e6b4b718cc698a5de87b9f339dd28a2d552906c24fbe9d67385c70e3669eb284220f506f3afe03949be5df0178af1d13c727716e1bcc07d9020c180661";
+      sha256 = "56491146a39eae10e9f8fb4ef1fe303a6bead300b680571427e6a410766d0069";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/gd/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/gd/firefox-81.0.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha512 = "57b665e7bf404a0ae8c7602b88d987ff550d66a2a72c47ad8d163d9a697cef18753dde981d46471c5276002ebc5464bae54316e595d1d2aa8a00ca07bae25d69";
+      sha256 = "0d9f9ad6563e31fd0ead7ec35e594e033f7f1ad0b4c94f0a5cc01cf515fea5ab";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/gl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/gl/firefox-81.0.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha512 = "409cec1407ab01070aa75a0234ecc82e974f00ef7391119828b1a2ab019c62b5986a15226f620bb1fb403288d9aabded3bad1226ae8ce516476929a181b0ffad";
+      sha256 = "8100b774f3bb3a1c3551b9f2c4751ee9e184b04c61489652dbdc81b1fc0b6bcd";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/gn/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/gn/firefox-81.0.tar.bz2";
       locale = "gn";
       arch = "linux-i686";
-      sha512 = "e2db32222279de40ae37392af9df330ab6d3bc1d1a583c93530262ad541b4d3139392a5d0043d6e9d0841fd0eaeb40c53b5e6f3f8fea762ad160888012dc7428";
+      sha256 = "a0002b17f1133194c9f0a0b2b3c56c6ae0d4cd981d5325193a2c96d4b5ec78b2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/gu-IN/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/gu-IN/firefox-81.0.tar.bz2";
       locale = "gu-IN";
       arch = "linux-i686";
-      sha512 = "99bb0e4244ad5c406259d627161c8abbf5dbedd664c83ecff6767656af8e4101c8d62081ded7a8cd1842d739689cb6aaee02bba593ab162dad3139d5b03ad3cd";
+      sha256 = "6ef49394aec077569251eed4dc7631130be41991022672f477989f5202ac4d1e";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/he/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/he/firefox-81.0.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha512 = "ec00d7c46d50f38d0d43efe2e98d6e404398676eaee9640a4148e3cc196cb73ac62711a188d32c167c48bf048a5e0155db714172ba0bb7024dce6c2122c656ed";
+      sha256 = "07e11a9d1a4ef6e3c87e09227d070f75098697a89e057946bb71c1336429d9bb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/hi-IN/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/hi-IN/firefox-81.0.tar.bz2";
       locale = "hi-IN";
       arch = "linux-i686";
-      sha512 = "e107c3042a1e9ab1896a7b98dcff5918b8b3adf35d3e50fea5847337c505d2cb4073a9a15fd2d3b4f6949615cd8b0376541e715d686388e418d5ce64c1001e0b";
+      sha256 = "39e6c7eab9945a7b9e8d500d8e0dfd416a7a915498683a4966732d8e09183e2c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/hr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/hr/firefox-81.0.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha512 = "cee9eb9a7b13944d2dd4c52456cc44404b2377062972eb3c9992499f3835d352567fb05560829ebd9db083f62bf9722d9c0e9610d439fb5d79c2dc120542970f";
+      sha256 = "8946ba5a92d73500cee5c379a796e18cf1b50fe0df4c1867040794850ba0df04";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/hsb/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/hsb/firefox-81.0.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha512 = "7936c949ac42d69b573f8b6be4055cf3b4cc62a8ad7c5c060ee4be8aaf0ad1e9e3c651289dab7c159e8ab18584374023dc605629233f58d944f13ca87db574c7";
+      sha256 = "9d87edfdb5498c16a279f0f262855c4e6f822760cf6d90281cf6c38e65c325f1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/hu/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/hu/firefox-81.0.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha512 = "a68299f239c80c1346a5aa559fc5dd6f6e6dfc13f883c2e7be88c267725c837b6ca3c4dda06e5bf6c81ecd16739a1921c21bc71c3caf72944797915f452ba450";
+      sha256 = "9f515b6b8267b97efec1046c0c2329c5871337b95d7a3b4fdee310699c63b265";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/hy-AM/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/hy-AM/firefox-81.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha512 = "a8ef4b5467d58ef6935bb4525363d38a9167a00a8ad84665b2971cae231c60706ac46618d62d183c19ca2eaaee04d0f386c845cefe6eed3a3e12dae188524f2c";
+      sha256 = "1de03462f87b629033b99bb014042d774a52404e279b625f20448809399af44d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ia/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/ia/firefox-81.0.tar.bz2";
       locale = "ia";
       arch = "linux-i686";
-      sha512 = "5c3b30a18467b416b109e2ff48e3a50c1cf10e550b22436115a44d13aaa03696443a5fee6c978e3560ada583fdd2806f3f1ec13c221dea097768b2d282d12160";
+      sha256 = "fdcbf5cc522e20587cbac0b4979d77589532ba683ca811e27a7b499f37fe1841";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/id/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/id/firefox-81.0.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha512 = "bfbd86bd3eef27c2eed900c23c29a0236884b1fd4d858ee8bcdda2a071abe1d042624b31ef258f9ea415b04ff1d17e70333c6507ef2a534033f1869e742e8b82";
+      sha256 = "e3cafaff6d65ca2da4513d27949b85b2fb8a1ab154d736e980df0ba8caf898be";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/is/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/is/firefox-81.0.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha512 = "459e4c9686952467d7e179c1b4f9f422e6445509813b0e0fba200e46468dabbefe59210a2cb218b226a6c41a333a64bc17005380be7e319015d722fa70a600fc";
+      sha256 = "21fba4796f2ee43a3662c3f493879d4d656ec710e46369f6da92f757e24ee706";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/it/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/it/firefox-81.0.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha512 = "6cd7c36d28e6abbcb92582b14022e56b048481cda7832b93c5dec6b0b4e38bd99de121c433eb0e90c9ebaad2bd00f681f22fadd09acfb1b669c0886544ebd8d4";
+      sha256 = "c8775280055d5b8eb251253e72465149da165b7295cb4c8f400a5286a16168bb";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ja/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/ja/firefox-81.0.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha512 = "cecda310147fc3298bbdb250d4d7a5a66225dd96f1bb0317b1846049a15c47bd2b7579982dac583dd4eaa1cd8bf706e7213b0c7bbe48ca980070f413380a133e";
+      sha256 = "8870d59360577f8247be0fa51ad33afcc7ebaa2b7d6c8cd5bc100199c5436399";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ka/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/ka/firefox-81.0.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha512 = "ad29814eb9cbe19061b361c23c896f8bf8cb21c67d36942a1614af74a5adcb225df20dccf3af8d34dba27036d38feb758a945cb69a66c6ad1ec0271fe1c316b6";
+      sha256 = "394edc1246d9cb08587a67069b27dfe3fb1a92f4ff4a58d314b55128c39d2bd9";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/kab/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/kab/firefox-81.0.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha512 = "cadd0cb80e9d00d2a4f6f5a5274d85b23eaf802874c813a87fd7464d4cf7ac528c4b2ff30446c7cb438fd1faa514c80a2576d1d6b36779ab983fac5fd6654317";
+      sha256 = "e30a08d4427fe896b528beb93b08b1bdc96a38a0817739faa63cd15c2f3014b4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/kk/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/kk/firefox-81.0.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha512 = "033bdb4274c05b06b2c1fc3822a220aceb7b39bff310de6fbe2e59a097eac77a6aafcd275be690e84334ea7bf70c6bdb1a43f4bec0b82286e42db7797348ee57";
+      sha256 = "f1b807647ea9deaf7d44e9bfb56403b9a27205c19c3b9f07ba4cfa174b6532c1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/km/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/km/firefox-81.0.tar.bz2";
       locale = "km";
       arch = "linux-i686";
-      sha512 = "d028d387c7546ccba6b3001d006d0243300d770b1e255cbe02841bba759a8b4d75a55a68dc5f8a7dcc869badde9d7bd38f572e26d544444190ae05c23ff4b9c6";
+      sha256 = "650ad04c9b0c4d461ba28fab7e591453aaf75fe5bddce3c6b8993389814be589";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/kn/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/kn/firefox-81.0.tar.bz2";
       locale = "kn";
       arch = "linux-i686";
-      sha512 = "e7c17380869b5f47359bcbb82fbe6b2b16d814536218bfa1447432f0affae78d6c53e68a7ff7153e0e2ed72979c026edf6e8a9689b0cc90ff3d10919b3e06061";
+      sha256 = "459ec332671ff0e51e110ebb0e8b10e67743fb4b717e5fa165b5dae80054ffe1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ko/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/ko/firefox-81.0.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha512 = "bda7e81ddb11dd7a197a9e6e286b3a8cc10e3c3d2a627f5c970643427a158c7615901aa05fc4da737586d5bd86eb4411a23e5830c1f6af582963f18c169eaa05";
+      sha256 = "266849f41f7aa820ba459740becfbbbcb4a551140bf8e76b1eaafc63a6f9d2da";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/lij/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/lij/firefox-81.0.tar.bz2";
       locale = "lij";
       arch = "linux-i686";
-      sha512 = "4a2a07e90d9ec3aa26557523c0c20d1aef34895ee06ee02dfedbb6f3d612623c23c84f10eaaeaabb35133e3f69b9545dd8720929ea04b73af8c9c3acac53901e";
+      sha256 = "b429ef6b085822fd3ea0fb14fd501a894b96a3f4af8fc34944fdc9ed1c82853b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/lt/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/lt/firefox-81.0.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha512 = "ddccb22c9d0dac8abe9c81782293834213a53b182ae0650b7904c6cc8f5777255ef642cb442345c64a1cad96d0ec8f45ce6d6cafb0e6405474c2a8e972250254";
+      sha256 = "7b3c089719e901d12c8ad9153a582d229958db035badd4b94b5b496a2ab545d1";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/lv/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/lv/firefox-81.0.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha512 = "86af4440803d27a5f6312b8a7dbd0d5f66fd1cf90b0e9b1cee8c4ee3b555927830a8cc3a06b6c72a66cee4e75d7e11168060d8681fa1f7c39ea2522819dc893d";
+      sha256 = "3efd9d52bc61076208cedef303396c066ec260f7aa5fcccec5b072f2935d89de";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/mk/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/mk/firefox-81.0.tar.bz2";
       locale = "mk";
       arch = "linux-i686";
-      sha512 = "e3876258021cd0d3197af334eff967ef2d1429eee880b63ee0d88569b94f0ab938b5843153cf4b9e6608c4c63c50682671ef4f6c15d8298b43748885f8d57c17";
+      sha256 = "f0b1dd701cd7e068d938ec4771fba8f4c3f04e906f575e64dca1dee640fdce22";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/mr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/mr/firefox-81.0.tar.bz2";
       locale = "mr";
       arch = "linux-i686";
-      sha512 = "9b7379aef1061ffc24f9f70e28dde4c5828315bbff4848cec7764a7d373f3590539a052e6578e1e87d214263f009c831dd2890f3d7a7eb071b0011f75402ecc0";
+      sha256 = "bd5adc1fa68f82a9d2fa54b74b74bdc170f4ead9bed5a79ec1ebf1bd12781a07";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ms/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/ms/firefox-81.0.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha512 = "36d44b200a554476da7c63918b709d57c31741901bd33081f493d9ef8bfb27969d491381ccbb8f4a21e48693cd35bc1630144121c8871dbc0d1a87a730d467b1";
+      sha256 = "dd106a1944d8ac9e49df16b3c67a86010be1ee62e3a780ad9c725f2335779131";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/my/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/my/firefox-81.0.tar.bz2";
       locale = "my";
       arch = "linux-i686";
-      sha512 = "4e290ea118b8b2ce63879a926d7992a3a231343ae98f9d6f61de720c5c39e2b4dd5b2e63ce8937945b02cc6b2acad1e7ee6aa3c2c15441e11270d817ea2615df";
+      sha256 = "86e45fb6f490ad0cd66564a36e40c6d23169d69d1875022027aed09a1cad3d50";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/nb-NO/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/nb-NO/firefox-81.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha512 = "82820f7da33b522f6e4547f650ff85e8d05e8b2142d2e113b9e0d94af560792ca3314a1afe98d3f18d3fc0fcf887de601bc22e93101908cc31a2238af359d150";
+      sha256 = "ef6d5320470da9619f5668e13edae553038a53f80593b5d8392b3678dd8c1d5b";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ne-NP/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/ne-NP/firefox-81.0.tar.bz2";
       locale = "ne-NP";
       arch = "linux-i686";
-      sha512 = "591699f34737fcbfdf9c72b12be83ba5bc83bc027ef439c40f5b0eb22014fac54b5661da9fa0f118ed82bb5290147445f4d703e40a152ad4f7d2cb7153b9586b";
+      sha256 = "8607d4c024fb1d71068b73fb528bfbe42ee69bb12f9703343deb6a7e340c29f2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/nl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/nl/firefox-81.0.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha512 = "fbeae8de6a8297a9e0fab0a10e2c95aaa2d82af7304bbf49fad7cae69f26c5a9dae9de4d84614a1061cf9a82f71abb7eba2e8cb4988ad93d1b5667912ee537fb";
+      sha256 = "a3ea133034cd0014f34c186d9c2fafc902bd51b5314429bb9b7c06e77447fd22";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/nn-NO/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/nn-NO/firefox-81.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha512 = "4cbef717a02fec48d29a9f0ed80c8db34fcee2ccd1f2cd6e0fbf0d2b0d36cb5101bbe794c59c8bdafe28c6286eb4c0fa28942c77b3d4a4c047a97bd66c41b7c0";
+      sha256 = "09bff657619d23af40014b2e3bc845e6901abee241dfd28f4b5ef8f90c211c30";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/oc/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/oc/firefox-81.0.tar.bz2";
       locale = "oc";
       arch = "linux-i686";
-      sha512 = "5a1cf2f3b9200c0fc039ff7c961eb7fff97464f0259c4b6a5fbfecf54d7d333abdc8b052d3138278c87726769bf7b10f2bd4557493e6e666f96187386289c8b0";
+      sha256 = "6eb63b7f50acf894e33fe9ea98c11b4133b7fb521e23e2fdd6bf9788570b4c78";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/pa-IN/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/pa-IN/firefox-81.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha512 = "355656300dfd9bef921e2123ffcc633d0562798b5ac692506c87204f2951f3800c03fc3e9e85c6dc9110644b17e40fe5058149b805255f43b1217b1cd71aacf0";
+      sha256 = "df15da9ff35e192b587ffdaea4d47d368a054148061117bb8f4222e5da6c82a2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/pl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/pl/firefox-81.0.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha512 = "b677c207bad42145fac04efb40d9c48800ca0796536ece583d6588f612a3e7c1e5dfa8476e38795eac7362ee0cf4ff60e803bf4263bb6ef875337688d2f9897b";
+      sha256 = "b12bd00b3de180f77f80e80622a8631ff37c32b45362856a64122ad54abf07d2";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/pt-BR/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/pt-BR/firefox-81.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha512 = "96e99c72d3131b7e920652a9adfa0794ed67932adfa9193796a8375e907a6c7817a21a2aa41f852e5c58897f41de8394c8e7e81462d74900fa45e2b3b5837d51";
+      sha256 = "0296501261b2c55e9acd14fff125f40f8a84fe0508004ea9fda03d2ff69f238c";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/pt-PT/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/pt-PT/firefox-81.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha512 = "2c119a0774f6ae8802a15ae24f2a1fae50da1d4a2f676e3fee7349745ffac497859aafdfca3d092dd3b2dae7f51307953337281ca3274a2746503161b93ff2d3";
+      sha256 = "6a5a8328dcd10ad2da9bd45658bd43fca9ae58cc331546305594ce5d84f35017";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/rm/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/rm/firefox-81.0.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha512 = "09c9669f36b03be27b4defde30cb3c20ea2790e18a05a2059bc79ecde006f019053cdf6c8f0eb2523de0c8d0fca3b2f0bd9cf02b8e2b6d9890ca3ecd51abe965";
+      sha256 = "41b5bd2e52f0d57475179c46c089ce36c3e1441b5751c670f6fbb6406853aab8";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ro/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/ro/firefox-81.0.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha512 = "24b1b5587dafc81a45e6ed89db33cf0bdf054f14a4d7e883a4f779573d17fc04cde1065b22243d0e0827c73accdc0dd08619a56e8caa04986e7500a57916f95e";
+      sha256 = "40a2e53b6b7dcdbd9380d3ede3e425178b670db2205b5a5066d0c4e93a3297c3";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ru/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/ru/firefox-81.0.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha512 = "dbb9654c696ac29966551843b6c27d0867750565c21e84c9e71b6443bb5557847e109826ff550107bd56008e913c625e89ac60268f4cd140d2278a4eb82b1a67";
+      sha256 = "b8f7ecf4a5d8f034e57672d19254cda671f213ce04914995260f6b5f97181edc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/si/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/si/firefox-81.0.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha512 = "a47e67c9b3e6a33dcd0dc489e32d95f44345593fac2e678610045fe5408928e12445551011ae87d4e6e242f35c11ee0edad2b6955485394d1f55d3d4e8f68dd3";
+      sha256 = "19d29defd33580089317b72bc6209749727a53978d48294950feba3226839135";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/sk/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/sk/firefox-81.0.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha512 = "c73e183daea5adc333c04b0c473af3189c2d24f84ee352733b211925e62c02cdcd2125c4ccb12fa15b08a48bd0a690a06e39c364108ce47b834b321268cf5488";
+      sha256 = "4e57b3bdba217d1550fa1ec847b825d66e2d5211d6d0f5342c50ccbab33bf464";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/sl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/sl/firefox-81.0.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha512 = "7f64f829c83b5483fd3a839aca41dbc0e3506576d633f8c6dfb9265a5bf783aeed537ca801fd07f8356b71aa47719e742b1bcf680f4a6d6c21469327bfa0b9b9";
+      sha256 = "cf89ee419f552622fb9eccf8a28c15f6647afd06de27af0635ab74bfd9aa9619";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/son/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/son/firefox-81.0.tar.bz2";
       locale = "son";
       arch = "linux-i686";
-      sha512 = "fc8120011f886f996840420c07bd7502622f63a1b53b7d918c16ba1b60ed76a737bc6bd27532f03262671cbfc0f094e41422f5485b4c6854d78d4f95422141da";
+      sha256 = "64e7605b287432c38798e029ab2b02f136d7df876a9c8b3689ca603db0a736cc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/sq/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/sq/firefox-81.0.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha512 = "9116b54651b0ed2caa04f7c9327cb1fb977242364ee17ea19e114d8fcfad03c08cc3706ab6e355f91ecc3d1f6232955db0668e5f7f290d191a051b214f06b779";
+      sha256 = "9b56875e2f5505f7fef3c41d4ed7fd8801df8e981f9c8f7cf665104a40e255ba";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/sr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/sr/firefox-81.0.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha512 = "ec0ac112222d35bf2345a91f448677ccc24f213710a1d5cda976c6ac15b8d3ca28bc32790f301103cfd3f2ae52ebfdf41464b6fb95df4b0f8535238b714649de";
+      sha256 = "489a2d092f626f39a8e466c269486be8ae455d233e0e26d0c94953039668a57a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/sv-SE/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/sv-SE/firefox-81.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha512 = "7e3a6c8da1143c3cf19e3f98542ed6b3e9dc1bab0667a2e64ab82c5f68f9623ed2196ed4378174998070e72a77bf00d5d9bc9d727b319d1c7699992a7bb67aef";
+      sha256 = "9e45e9a0c79f9cb3c0c34fb2a26e608afb544716aa16843d53b3e6fd390e2685";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ta/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/ta/firefox-81.0.tar.bz2";
       locale = "ta";
       arch = "linux-i686";
-      sha512 = "5e3d653003fe036687bc55f4f5f0a2f1008ae58a196047654a1a067d88c7cf06b132207a3647ad5d3a707d85322d0d9eee21222c832daf67b9dc2895e6cf75ce";
+      sha256 = "2843290d4b90b057c6caa437514df0fa61a0cb901809c93690ac8247ff5b1233";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/te/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/te/firefox-81.0.tar.bz2";
       locale = "te";
       arch = "linux-i686";
-      sha512 = "2f42f73eb590ed605e1871d11217027abed2dfe0d2bdba2e9c29c6cbcc5c639b48e4bc26b8a6807c316dde23005e5e1010ebef4c4dfb385bf2e41a4710acf12e";
+      sha256 = "fc9f7e9312fd1430cbbf0d92d8f001077d0af89ccef6c7edb3eff504772ddb79";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/th/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/th/firefox-81.0.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha512 = "49f4f6d2f5dacf108debe915116905f5da4c65bed1c13d7f2a65b8b21b0734a34add68c6b56c340e90f6f82ba1f8cbcf9b7fb2546ce64e33c73e2a73e9b3bb17";
+      sha256 = "622105aa85a0a5874c62f62afd77ffcdb1f4b2d329c255c56c7154a4bbfcb481";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/tl/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/tl/firefox-81.0.tar.bz2";
       locale = "tl";
       arch = "linux-i686";
-      sha512 = "6e4368b4a0ebe0b296eae341563f8712567f08c7889b0600cd5c0ab881b1de1f5bf8e657b5ac497746fdfe087c8bed902014bb6daa0ce4c2d3712dda614b698e";
+      sha256 = "998b966b13dc0b1eaf9ffac1788cc354049c43834d3678b51e946f907e42bd9d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/tr/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/tr/firefox-81.0.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha512 = "fedfa95f6516d3685d73ec3997148eb0954a8ef6713e8cffc304080937a1962a26cf384a85e937a9394150d52fc9db14c3a85b8b483d18615759dd06bb04a558";
+      sha256 = "3dacf51f059f7b974e18d0cf4437bba48a0cf246014ed8ec38d06e2e09cb76f6";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/trs/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/trs/firefox-81.0.tar.bz2";
       locale = "trs";
       arch = "linux-i686";
-      sha512 = "3b165460a7a34e5b2a059101a508a6353ca7f89c03c9eeb7b062e734c2cb1786b1cd2f9415cef7fd3ca2aceb72b4311b2b5da778f96b51f33aeb39cd7e69f1e4";
+      sha256 = "e9ce3a2591c8a9b7c5cccc20c2b56ff47ff22947d2393f5e7b010f1242ba1982";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/uk/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/uk/firefox-81.0.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha512 = "02c39e86a144dcb6ccffaf4a6c6620088409b8a098e3d2d92268d5b2dd7098c01b9a55878a9ebf1a91552b3f1be8dc86a6a8ff514e3988ffa51e581dfcf43b8b";
+      sha256 = "a8f78984d01fb54b7475e980aa5775fe7c298e1796cf603446e7cb9baa371bdc";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/ur/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/ur/firefox-81.0.tar.bz2";
       locale = "ur";
       arch = "linux-i686";
-      sha512 = "d244301b2ee17b78a1ab20cb7a8fe362b6ac86e0cdb9d811afc11c0637ad3fe1e1dffb721411f36960ecec011b7b691a12df1bef1d257c22ae45d345096b7166";
+      sha256 = "0b56702343d7495b752246a9d03e4a5571be05394cebefd1ccd2ca822180259d";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/uz/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/uz/firefox-81.0.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha512 = "8fc3cf2b1eca9b229ada7ca632fd362e42bc1063ad1bc22df1f6781cf996d179dd8e8fa231e02ffb12dcdfccd6f6641735e0b4b28c6e2a1a9372d80c0dc8fd78";
+      sha256 = "46a98ce354b40d64690c0aaf1c553b1d1e5ce51494291ff93ae0e54a82d897d4";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/vi/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/vi/firefox-81.0.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha512 = "3676a6246a7fbd49a5779fb2b9ad3e14be809228e15bb19f81ca3b880ee5d584c4aba07d1a94ed2cdb6ec7549409d7738750422d06fa2415722d3424e948ab98";
+      sha256 = "fcbaf1dbab64bbc8983d444b1601721591c164bb8ff50ae09d2b7925fa41185a";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/xh/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/xh/firefox-81.0.tar.bz2";
       locale = "xh";
       arch = "linux-i686";
-      sha512 = "d4a8d251a4ad5603f301ad45f7eb3518066f06668a765d1583d067e0b89caa87f6699e1e06f67853527dd352b903c4b3a063d5ad7d19d297a040671a98aac2dc";
+      sha256 = "af8ff1f66472bbe39724ca714993246f02b0e9025b537ac7e52e65be29db4534";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/zh-CN/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/zh-CN/firefox-81.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha512 = "2137ced68047439bfff22eaa7bccdeac3b0c30c7e71e3523c54f47a3127a8f0ecf6ff3a3ff789e05c5df525f3c3d32d616eb731f022fe063170d3c67e459b093";
+      sha256 = "147a51431333da2333e4ecb0b307d4c74b3d66a626340b6bc25ded8c22c1acf5";
     }
-    { url = "http://archive.mozilla.org/pub/firefox/releases/77.0.1/linux-i686/zh-TW/firefox-77.0.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/firefox/releases/81.0/linux-i686/zh-TW/firefox-81.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha512 = "23efdb7382ea3483784589fe0cfb9919630f34e5418734de9bd52ad9e91438a4d86f8760b1c4a4c127e1fe05de19ed24aedd0e21c2bdb32c5ab62183bc32fb18";
+      sha256 = "e8d577aca0ac90285e9db278c2fc9eec1318407b830e4c231082b139320a4216";
     }
     ];
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix
index d6593be8890c..03815a703321 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox-bin/update.nix
@@ -47,12 +47,13 @@ in writeScript "update-${name}" ''
            grep -e "${if isBeta then "b" else ""}\([[:digit:]]\|[[:digit:]][[:digit:]]\)$" | ${if isBeta then "" else "grep -v \"b\" |"} \
            tail -1`
 
-  curl --silent -o $HOME/shasums "$url$version/SHA512SUMS"
-  curl --silent -o $HOME/shasums.asc "$url$version/SHA512SUMS.asc"
+  curl --silent -o $HOME/shasums "$url$version/SHA256SUMS"
+  curl --silent -o $HOME/shasums.asc "$url$version/SHA256SUMS.asc"
   gpgv --keyring=$GNUPGHOME/pubring.kbx $HOME/shasums.asc $HOME/shasums
 
-  # this is a list of sha512 and tarballs for both arches
-  shasums=`cat $HOME/shasums`
+  # this is a list of sha256 and tarballs for both arches
+  # Upstream files contains python repr strings like b'somehash', hence the sed dance
+  shasums=`cat $HOME/shasums | sed -E s/"b'([a-f0-9]{64})'?(.*)"/'\1\2'/`
 
   cat > $tmpfile <<EOF
   {
@@ -74,7 +75,7 @@ in writeScript "update-${name}" ''
       { url = "$url$version/`echo $line | cut -d":" -f3`";
         locale = "`echo $line | cut -d":" -f3 | sed "s/$arch\///" | sed "s/\/.*//"`";
         arch = "$arch";
-        sha512 = "`echo $line | cut -d":" -f1`";
+        sha256 = "`echo $line | cut -d":" -f1`";
       }
   EOF
     done
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
index f4e2e067a01b..4a90acdb3ece 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/common.nix
@@ -145,10 +145,9 @@ buildStdenv.mkDerivation ({
   ++ lib.optional  alsaSupport alsaLib
   ++ lib.optional  pulseaudioSupport libpulseaudio # only headers are needed
   ++ lib.optional  gtk3Support gtk3
-  ++ lib.optional  waylandSupport libxkbcommon
   ++ lib.optional  gssSupport kerberos
   ++ lib.optional  ltoSupport llvmPackages.libunwind
-  ++ lib.optionals waylandSupport [ libxkbcommon ]
+  ++ lib.optionals waylandSupport [ libxkbcommon pipewire ]
   ++ lib.optionals pipewireSupport [ pipewire ]
   ++ lib.optionals (lib.versionAtLeast ffversion "82") [ gnum4 ]
   ++ lib.optionals buildStdenv.isDarwin [ CoreMedia ExceptionHandling Kerberos
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-min-65.patch b/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-min-65.patch
deleted file mode 100644
index 708004781efc..000000000000
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/no-buildconfig-min-65.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/docshell/base/nsAboutRedirector.cpp b/docshell/base/nsAboutRedirector.cpp
-index fe0a5af..3df1e0e 100644
---- a/docshell/base/nsAboutRedirector.cpp
-+++ b/docshell/base/nsAboutRedirector.cpp
-@@ -67,8 +67,6 @@ static const RedirEntry kRedirMap[] = {
-     {"about", "chrome://global/content/aboutAbout.xhtml", 0},
-     {"addons", "chrome://mozapps/content/extensions/extensions.xul",
-      nsIAboutModule::ALLOW_SCRIPT},
--    {"buildconfig", "chrome://global/content/buildconfig.html",
--     nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT},
-     {"checkerboard", "chrome://global/content/aboutCheckerboard.xhtml",
-      nsIAboutModule::URI_SAFE_FOR_UNTRUSTED_CONTENT |
-          nsIAboutModule::ALLOW_SCRIPT},
-diff --git a/toolkit/content/jar.mn b/toolkit/content/jar.mn
-index 2ec137d..579ef4d 100644
---- a/toolkit/content/jar.mn
-+++ b/toolkit/content/jar.mn
-@@ -36,7 +36,6 @@ toolkit.jar:
-    content/global/plugins.css
-    content/global/browser-child.js
-    content/global/browser-content.js
--*   content/global/buildconfig.html
-    content/global/buildconfig.css
-    content/global/contentAreaUtils.js
-    content/global/datepicker.xhtml
diff --git a/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
index 27251ae661ba..424c45d305e8 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -89,7 +89,7 @@ let
         comment = "";
         desktopName = "${desktopName}${nameSuffix}${lib.optionalString forceWayland " (Wayland)"}";
         genericName = "Web Browser";
-        categories = "Application;Network;WebBrowser;";
+        categories = "Network;WebBrowser;";
         mimeType = stdenv.lib.concatStringsSep ";" [
           "text/html"
           "text/xml"
diff --git a/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix b/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix
index fb30bbfd2b6c..fb261c286072 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/google-chrome/default.nix
@@ -6,6 +6,7 @@
 , alsaLib, libXdamage, libXtst, libXrandr, expat, cups
 , dbus, gtk2, gtk3, gdk-pixbuf, gcc-unwrapped, at-spi2-atk, at-spi2-core
 , kerberos, libdrm, mesa
+, libxkbcommon, wayland # ozone/wayland
 
 # Command line programs
 , coreutils
@@ -62,6 +63,7 @@ let
     flac harfbuzz icu libpng opusWithCustomModes snappy speechd
     bzip2 libcap at-spi2-atk at-spi2-core
     kerberos libdrm mesa coreutils
+    libxkbcommon wayland
   ] ++ optional pulseSupport libpulseaudio
     ++ [ gtk ];
 
@@ -72,7 +74,7 @@ in stdenv.mkDerivation {
 
   name = "google-chrome${suffix}-${version}";
 
-  src = chromium.upstream-info.binary;
+  src = chromium.chromeSrc;
 
   nativeBuildInputs = [ patchelf makeWrapper ];
   buildInputs = [
@@ -105,6 +107,12 @@ in stdenv.mkDerivation {
     cp -a opt/* $out/share
     cp -a usr/share/* $out/share
 
+    # To fix --use-gl=egl:
+    test -e $out/share/google/$appname/libEGL.so
+    ln -s libEGL.so $out/share/google/$appname/libEGL.so.1
+    test -e $out/share/google/$appname/libGLESv2.so
+    ln -s libGLESv2.so $out/share/google/$appname/libGLESv2.so.2
+
     substituteInPlace $out/share/applications/google-$appname.desktop \
       --replace /usr/bin/google-chrome-$dist $exe
     substituteInPlace $out/share/gnome-control-center/default-apps/google-$appname.xml \
@@ -113,9 +121,13 @@ in stdenv.mkDerivation {
       --replace /opt $out/share \
       --replace $out/share/google/$appname/google-$appname $exe
 
-    for icon_file in $out/share/google/chrome*/product_logo_*[0-9].png; do
+    for icon_file in $out/share/google/chrome*/product_logo_[0-9]*.png; do
       num_and_suffix="''${icon_file##*logo_}"
-      icon_size="''${num_and_suffix%.*}"
+      if [ $dist = "stable" ]; then
+        icon_size="''${num_and_suffix%.*}"
+      else
+        icon_size="''${num_and_suffix%_*}"
+      fi
       logo_output_prefix="$out/share/icons/hicolor"
       logo_output_path="$logo_output_prefix/''${icon_size}x''${icon_size}/apps"
       mkdir -p "$logo_output_path"
diff --git a/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix b/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix
index 34f23f452388..4028f8622c3c 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/kristall/default.nix
@@ -2,12 +2,12 @@
 
 mkDerivation rec {
   pname = "kristall";
-  version = "0.2";
+  version = "0.3";
   src = fetchFromGitHub {
     owner = "MasterQ32";
     repo = "kristall";
     rev = "V" + version;
-    sha256 = "08k3rg0sa91ra0nzla5rw806nnncnyvq1s7k09k5i74fvcsnpqyp";
+    sha256 = "07nf7w6ilzs5g6isnvsmhh4qa1zsprgjyf0zy7rhpx4ikkj8c8zq";
   };
 
   buildInputs = [ qtbase qtmultimedia ];
@@ -25,6 +25,7 @@ mkDerivation rec {
         "Graphical small-internet client, supports gemini, http, https, gopher, finger";
       homepage = "https://random-projects.net/projects/kristall.gemini";
       maintainers = with maintainers; [ ehmry ];
+      license = licenses.gpl3;
       inherit (qtmultimedia.meta) platforms;
     };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix b/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix
index d58fc8fd19bf..0db521f8ef59 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/links2/default.nix
@@ -8,12 +8,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.20.2";
+  version = "2.21";
   pname = "links2";
 
   src = fetchurl {
     url = "${meta.homepage}/download/links-${version}.tar.bz2";
-    sha256 = "097ll98ympzfx7qfdyhc52yzvsp167x5nnjs6v8ih496wv80fksb";
+    sha256 = "0qqdcghsdqm7l6kyi0k752ws3ak5crw85pqkcb11wy67j62yspi8";
   };
 
   buildInputs = with stdenv.lib;
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
     homepage = "http://links.twibright.com/";
     description = "A small browser with some graphics support";
     maintainers = with maintainers; [ raskin ];
+    license = licenses.gpl2Plus;
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix b/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix
index bf10043e942e..3c391c9ffda2 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/luakit/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "luakit";
-  version = "2.1";
+  version = "2.2";
 
   src = fetchFromGitHub {
     owner = "luakit";
     repo = "luakit";
     rev = version;
-    sha256 = "05mm76g72fs48410pbij4mw0s3nqji3r7f3mnr2fvhv02xqj05aa";
+    sha256 = "sha256-rpHW5VyntmmtekdNcZMIw8Xdv4cfiqJaaHj4ZFFGjYc=";
   };
 
   nativeBuildInputs = [
@@ -54,9 +54,17 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "Fast, small, webkit based browser framework extensible in Lua";
+    description = "Fast, small, webkit-based browser framework extensible in Lua";
+    longDescription = ''
+      Luakit is a highly configurable browser framework based on the WebKit web
+      content engine and the GTK+ toolkit. It is very fast, extensible with Lua,
+      and licensed under the GNU GPLv3 license. It is primarily targeted at
+      power users, developers and anyone who wants to have fine-grained control
+      over their web browser’s behaviour and interface.
+    '';
     homepage    = "https://luakit.github.io/";
-    license     = licenses.gpl3;
-    platforms   = platforms.linux; # Only tested linux
+    license     = licenses.gpl3Only;
+    platforms   = platforms.unix;
+    maintainers = [ maintainers.AndersonTorres ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
index e967578a7cef..247b2457b5a0 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/default.nix
@@ -74,7 +74,7 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "flashplayer";
-  version = "32.0.0.387";
+  version = "32.0.0.433";
 
   src = fetchurl {
     url =
@@ -85,14 +85,14 @@ stdenv.mkDerivation rec {
     sha256 =
       if debug then
         if arch == "x86_64" then
-          "1wmk60lnlrj9f8dvk4b6j7pqyl00w00qbzbdw4awzx91wmgfc4x0"
+          "18hr026743swpdjjk7cg3hnpw2ws3q246xnkb326lyvv90wqlfni"
         else
-          "1afjxhi5jzn8zbkva940i9fayzxj1r3n6rqsiny02fpnv0waypfy"
+          "1yhyirii6rmnk420imaa160r9akarb3jrrlyas5a8d2y65gya71g"
       else
         if arch == "x86_64" then
-          "0si8rx955kyfsprk5465hfzafxvrdm7g686q7p5xykmh88nck6k2"
+          "0k80i98zkpf6r46y1aw2zg1dsgbirg6rc8q21vycpvln395jq0pf"
         else
-          "02pw2knvgdkahyp7lmy7fmynmplaz5wswdz48h3sdj6ibr066h97";
+          "1qw6hjwv9y7qr333k4nlpd7fwyzbsk833sx2slfgjfhsbipr7p3r";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
index 9d7d6eeeee86..996d298df581 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/mozilla-plugins/flashplayer/standalone.nix
@@ -50,7 +50,7 @@
 
 stdenv.mkDerivation {
   pname = "flashplayer-standalone";
-  version = "32.0.0.387";
+  version = "32.0.0.433";
 
   src = fetchurl {
     url =
@@ -60,9 +60,9 @@ stdenv.mkDerivation {
         "https://fpdownload.macromedia.com/pub/flashplayer/updaters/32/flash_player_sa_linux.x86_64.tar.gz";
     sha256 =
       if debug then
-        "1yxdwmm2gz162rmc9hwlccqgq613gnrihjicnzgan4vk7hjlga5y"
+        "1ys523wwhvj96jph435lnyp07qzg9f70j349l7ggwgg96rflalpf"
       else
-        "0hm5is3giz45a4v9m77q0i1dgyhpqqkagpjndbnynsnl9a61r0ly";
+        "1ycw2amis7yvidc6q87gls6rb305p89pr7mhzknc10v0nh34781m";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/applications/networking/browsers/next/next-gtk-webkit.nix b/nixpkgs/pkgs/applications/networking/browsers/next/next-gtk-webkit.nix
index 8039c5492408..316913be000c 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/next/next-gtk-webkit.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/next/next-gtk-webkit.nix
@@ -27,8 +27,12 @@ stdenv.mkDerivation rec {
     gsettings-desktop-schemas
     gtk3
     webkitgtk
-    gst_all_1.gst-plugins-base
     gst_all_1.gstreamer
+    gst_all_1.gst-libav
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    gst_all_1.gst-plugins-bad
+    gst_all_1.gst-plugins-ugly
   ];
 
   makeFlags = [
diff --git a/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix b/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
index 686ffee91488..eefe7af26a1b 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/opera/default.nix
@@ -47,11 +47,11 @@ let
 in stdenv.mkDerivation rec {
 
   pname = "opera";
-  version = "67.0.3575.31";
+  version = "68.0.3618.63";
 
   src = fetchurl {
     url = "${mirror}/${version}/linux/${pname}-stable_${version}_amd64.deb";
-    sha256 = "1ghygin7xf5lwd77s8f6bag339di4alwlkqwjzlq20wzwx4lns4w";
+    sha256 = "1643043ywz94x2yr7xyw7krfq53iwkr8qxlbydzq6zb2zina7jxd";
   };
 
   unpackCmd = "${dpkg}/bin/dpkg-deb -x $curSrc .";
@@ -104,7 +104,7 @@ in stdenv.mkDerivation rec {
     # This is a little tricky. Without it the app starts then crashes. Then it
     # brings up the crash report, which also crashes. `strace -f` hints at a
     # missing libudev.so.0.
-    systemd.lib
+    (lib.getLib systemd)
   ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix b/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
index 8d51f5c888ad..9f2eda4c3baf 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/palemoon/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchgit, makeDesktopItem
+{ stdenv, lib, fetchFromGitHub, writeScript, desktop-file-utils
 , pkgconfig, autoconf213, alsaLib, bzip2, cairo
 , dbus, dbus-glib, ffmpeg_3, file, fontconfig, freetype
 , gnome2, gnum4, gtk2, hunspell, libevent, libjpeg
@@ -11,40 +11,38 @@
 
 let
 
-  libPath = lib.makeLibraryPath [ ffmpeg_3 ];
+  libPath = lib.makeLibraryPath [ ffmpeg_3 libpulseaudio ];
   gtkVersion = if withGTK3 then "3" else "2";
 
 in stdenv.mkDerivation rec {
   pname = "palemoon";
-  version = "28.10.0";
+  version = "28.13.0";
 
-  src = fetchgit {
-    url = "https://github.com/MoonchildProductions/Pale-Moon.git";
+  src = fetchFromGitHub {
+    owner = "MoonchildProductions";
+    repo = "Pale-Moon";
     rev = "${version}_Release";
-    sha256 = "0c64vmrp46sbl1dgl9dq2vkmpgz9gvgd59dk02jqwyhx4lln1g2l";
+    sha256 = "1lza6239kb32wnwd9cwddn11npg1qx7p69l7qy63h9c59w29iypa";
     fetchSubmodules = true;
   };
 
-  desktopItem = makeDesktopItem {
-    name = "palemoon";
-    exec = "palemoon %U";
-    icon = "palemoon";
-    desktopName = "Pale Moon";
-    genericName = "Web Browser";
-    categories = "Application;Network;WebBrowser;";
-    mimeType = lib.concatStringsSep ";" [
-      "text/html"
-      "text/xml"
-      "application/xhtml+xml"
-      "application/vnd.mozilla.xul+xml"
-      "x-scheme-handler/http"
-      "x-scheme-handler/https"
-      "x-scheme-handler/ftp"
-    ];
-  };
+  passthru.updateScript = writeScript "update-${pname}" ''
+    #!/usr/bin/env nix-shell
+    #!nix-shell -i bash -p common-updater-scripts curl libxml2
+
+    set -eu -o pipefail
+
+    # Only release note announcement == finalized release
+    version="$(
+      curl -s 'http://www.palemoon.org/releasenotes.shtml' |
+      xmllint --html --xpath 'html/body/table/tbody/tr/td/h3/text()' - 2>/dev/null | head -n1 |
+      sed 's/v\(\S*\).*/\1/'
+    )"
+    update-source-version ${pname} "$version"
+  '';
 
   nativeBuildInputs = [
-    file gnum4 makeWrapper perl pkgconfig python2 wget which
+    desktop-file-utils file gnum4 makeWrapper perl pkgconfig python2 wget which
   ];
 
   buildInputs = [
@@ -90,12 +88,16 @@ in stdenv.mkDerivation rec {
     ac_add_options --disable-debug
     ac_add_options --disable-necko-wifi
     ac_add_options --disable-updater
+
     ac_add_options --with-pthreads
 
     # Please see https://www.palemoon.org/redist.shtml for restrictions when using the official branding.
     ac_add_options --enable-official-branding
     export MOZILLA_OFFICIAL=1
 
+    # For versions after 28.12.0
+    ac_add_options --enable-phoenix-extensions
+
     ac_add_options --x-libraries=${lib.makeLibraryPath [ xorg.libX11 ]}
 
     export MOZ_PKG_SPECIAL=gtk$_GTK_VERSION
@@ -106,7 +108,7 @@ in stdenv.mkDerivation rec {
 
     ac_add_options --prefix=$out
 
-    mk_add_options MOZ_MAKE_FLAGS="-j$NIX_BUILD_CORES"
+    mk_add_options MOZ_MAKE_FLAGS="-j${if enableParallelBuilding then "$NIX_BUILD_CORES" else "1"}"
     mk_add_options AUTOCONF=${autoconf213}/bin/autoconf
     '
   '';
@@ -116,14 +118,13 @@ in stdenv.mkDerivation rec {
   installPhase = ''
     $src/mach install
 
-    mkdir -p $out/share/applications
-    cp ${desktopItem}/share/applications/* $out/share/applications
+    desktop-file-install --dir=$out/share/applications \
+      $src/palemoon/branding/official/palemoon.desktop
 
-    for n in 16 22 24 32 48 256; do
+    for iconname in default{16,22,24,32,48,256} mozicon128; do
+      n=''${iconname//[^0-9]/}
       size=$n"x"$n
-      mkdir -p $out/share/icons/hicolor/$size/apps
-      cp $src/palemoon/branding/official/default$n.png \
-         $out/share/icons/hicolor/$size/apps/palemoon.png
+      install -Dm644 $src/palemoon/branding/official/$iconname.png $out/share/icons/hicolor/$size/apps/palemoon.png
     done
 
     wrapProgram $out/lib/palemoon-${version}/palemoon \
diff --git a/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix
index 773585183515..69ca08e990c7 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/default.nix
@@ -1,32 +1,42 @@
-{ stdenv, lib, fetchurl, fetchzip, python3Packages
+{ stdenv, lib, fetchurl, fetchzip, python3
 , mkDerivationWith, wrapQtAppsHook, wrapGAppsHook, qtbase, glib-networking
 , asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2
 , libxslt, gst_all_1 ? null
-, withPdfReader        ? true
-, withMediaPlayback    ? true
+, withPdfReader      ? true
+, withMediaPlayback  ? true
+, backend            ? "webengine"
 }:
 
 assert withMediaPlayback -> gst_all_1 != null;
 
 let
+  python3Packages = python3.pkgs;
   pdfjs = let
-    version = "2.3.200";
+    version = "2.4.456";
   in
   fetchzip rec {
     name = "pdfjs-${version}";
     url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/${name}-dist.zip";
-    sha256 = "1fpxsw0hzahccyng08acvc7g0gk29j2x701p6w6fg1718mvcrm1q";
+    sha256 = "02hpy96pi06gdq2s7n56ycm34d6d3gf8ly22y366np5vpwmc29rx";
     stripRoot = false;
   };
 
+  backendPackage =
+   if backend == "webengine" then python3Packages.pyqtwebengine else
+   if backend == "webkit"    then python3Packages.pyqt5_with_qtwebkit else
+   throw ''
+     Unknown qutebrowser backend "${backend}".
+     Valid choices are qtwebengine (recommended) or qtwebkit.
+   '';
+
 in mkDerivationWith python3Packages.buildPythonApplication rec {
   pname = "qutebrowser";
-  version = "1.12.0";
+  version = "1.13.1";
 
   # the release tarballs are different from the git checkout!
   src = fetchurl {
     url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "0pywyhi4v6ymxpn85grrdr1agmcxsnm5jfqf3rlxqx5swbnxbfs1";
+    sha256 = "1n72dvrv4dch4i07lsis76p7g16a039fwx8rk7w8q9f60wgqb5i8";
   };
 
   # Needs tox
@@ -46,22 +56,20 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
   ];
 
   propagatedBuildInputs = with python3Packages; [
-    pyyaml pyqt5 pyqtwebengine jinja2 pygments
+    pyyaml backendPackage jinja2 pygments
     pypeg2 cssutils pyopengl attrs setuptools
     # scripts and userscripts libs
     tldextract beautifulsoup4
     pyreadability pykeepass stem
   ];
 
-  patches = [
-    ./fix-restart.patch
-  ];
+  patches = [ ./fix-restart.patch ];
 
   dontWrapGApps = true;
   dontWrapQtApps = true;
 
   postPatch = ''
-    substituteInPlace qutebrowser/app.py --subst-var-by qutebrowser "$out/bin/qutebrowser"
+    substituteInPlace qutebrowser/misc/quitter.py --subst-var-by qutebrowser "$out/bin/qutebrowser"
 
     sed -i "s,/usr/share/,$out/share/,g" qutebrowser/utils/standarddir.py
   '' + lib.optionalString withPdfReader ''
@@ -101,7 +109,8 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
   postFixup = ''
     wrapProgram $out/bin/qutebrowser \
       "''${gappsWrapperArgs[@]}" \
-      "''${qtWrapperArgs[@]}"
+      "''${qtWrapperArgs[@]}" \
+      --add-flags '--backend ${backend}'
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch
index d54a37fe71fe..828fa5e107c9 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch
+++ b/nixpkgs/pkgs/applications/networking/browsers/qutebrowser/fix-restart.patch
@@ -1,4 +1,4 @@
-diff --git a/quitter.py b/quitterb.py
+diff --git a/quitter.py b/quitter.py
 index a42b9d0..f544ccb 100644
 --- a/qutebrowser/misc/quitter.py
 +++ b/qutebrowser/misc/quitter.py
diff --git a/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index 1b4fa5ef595a..d8a2e0429938 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -46,7 +46,8 @@
 
 # Hardening
 , graphene-hardened-malloc
-, useHardenedMalloc ? graphene-hardened-malloc != null && builtins.elem stdenv.system graphene-hardened-malloc.meta.platforms
+# crashes with intel driver
+, useHardenedMalloc ? false
 
 # Whether to disable multiprocess support to work around crashing tabs
 # TODO: fix the underlying problem instead of this terrible work-around
@@ -90,19 +91,19 @@ let
   fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
 
   # Upstream source
-  version = "9.5";
+  version = "10.0";
 
   lang = "en-US";
 
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz";
-      sha256 = "0l4fz2zkgwv2qniia4nv53a4pd79hfbgb66jn68r44diails1z08";
+      sha256 = "1l2rfknffnh6hsi16dzps1wav5s723vyk57fzv9y5vjmbcbf7l2l";
     };
 
     i686-linux = fetchurl {
       url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz";
-      sha256 = "1h4awhyaiws68s727pq9r32xqg2878dl2df4kbc2nmllwrl2fxq3";
+      sha256 = "0x80w02ckb6mznrm1gjdpkxk9yf2rdcl16ljjglivq358a309cl2";
     };
   };
 in
@@ -403,7 +404,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.torproject.org/";
     changelog = "https://gitweb.torproject.org/builders/tor-browser-build.git/plain/projects/tor-browser/Bundle-Data/Docs/ChangeLog.txt?h=maint-${version}";
     platforms = attrNames srcs;
-    maintainers = with maintainers; [ offline matejc doublec thoughtpolice joachifm hax404 cap ];
+    maintainers = with maintainers; [ offline matejc doublec thoughtpolice joachifm hax404 cap KarlJoad ];
     hydraPlatforms = [];
     # MPL2.0+, GPL+, &c.  While it's not entirely clear whether
     # the compound is "libre" in a strict sense (some components place certain
diff --git a/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix b/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix
index a5bea6cf34a9..421d6bb745a0 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix
@@ -1,10 +1,10 @@
-{ stdenv, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, gnutar
+{ stdenv, lib, llvmPackages, gnChromium, ninja, which, nodejs, fetchpatch, fetchurl
 
 # default dependencies
-, bzip2, flac, speex, libopus
+, gnutar, bzip2, flac, speex, libopus
 , libevent, expat, libjpeg, snappy
 , libpng, libcap
-, xdg_utils, yasm, minizip, libwebp
+, xdg_utils, yasm, nasm, minizip, libwebp
 , libusb1, pciutils, nss, re2, zlib
 
 , python2Packages, perl, pkgconfig
@@ -13,10 +13,12 @@
 , bison, gperf
 , glib, gtk3, dbus-glib
 , glibc
+, xorg
 , libXScrnSaver, libXcursor, libXtst, libGLU, libGL
 , protobuf, speechd, libXdamage, cups
 , ffmpeg_3, libxslt, libxml2, at-spi2-core
-, jre
+, jre8
+, pipewire_0_2
 
 # optional dependencies
 , libgcrypt ? null # gnomeSupport || cupsSupport
@@ -39,6 +41,7 @@
 , ungoogled-chromium
 , ungoogled ? false
 
+, channel
 , upstream-info
 }:
 
@@ -49,6 +52,8 @@ with stdenv.lib;
 # see http://www.linuxfromscratch.org/blfs/view/cvs/xsoft/chromium.html
 
 let
+  jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+
   # The additional attributes for creating derivations based on the chromium
   # source tree.
   extraAttrs = buildFun base;
@@ -74,7 +79,7 @@ let
     in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs));
 
   gnSystemLibraries = [
-    "flac" "libwebp" "libxslt" "yasm" "opus" "snappy" "libpng"
+    "flac" "libwebp" "libxslt" "opus" "snappy" "libpng"
     # "zlib" # version 77 reports unresolved dependency on //third_party/zlib:zlib_config
     # "libjpeg" # fails with multiple undefined references to chromium_jpeg_*
     # "re2" # fails with linker errors
@@ -91,9 +96,10 @@ let
     bzip2 flac speex opusWithCustomModes
     libevent expat libjpeg snappy
     libpng libcap
-    xdg_utils yasm minizip libwebp
+    xdg_utils minizip libwebp
     libusb1 re2 zlib
     ffmpeg_3 libxslt libxml2
+    nasm
     # harfbuzz # in versions over 63 harfbuzz and freetype are being built together
                # so we can't build with one from system and other from source
   ];
@@ -107,7 +113,7 @@ let
   versionRange = min-version: upto-version:
     let inherit (upstream-info) version;
         result = versionAtLeast version min-version && versionOlder version upto-version;
-        stable-version = (import ./upstream-info.nix).stable.version;
+        stable-version = (importJSON ./upstream-info.json).stable.version;
     in if versionAtLeast stable-version upto-version
        then warn "chromium: stable version ${stable-version} is newer than a patchset bounded at ${upto-version}. You can safely delete it."
             result
@@ -120,16 +126,20 @@ let
     };
   base = rec {
     name = "${packageName}-unwrapped-${version}";
-    inherit (upstream-info) channel version;
-    inherit packageName buildType buildPath;
+    inherit (upstream-info) version;
+    inherit channel packageName buildType buildPath;
 
-    src = upstream-info.main;
+    src = fetchurl {
+      url = "https://commondatastorage.googleapis.com/chromium-browser-official/chromium-${version}.tar.xz";
+      inherit (upstream-info) sha256;
+    };
 
     nativeBuildInputs = [
       ninja which python2Packages.python perl pkgconfig
       python2Packages.ply python2Packages.jinja2 nodejs
-      gnutar
-    ] ++ optional (versionAtLeast version "83") python2Packages.setuptools;
+      gnutar python2Packages.setuptools
+      (xorg.xcbproto.override { python = python2Packages.python; })
+    ];
 
     buildInputs = defaultDependencies ++ [
       nspr nss systemd
@@ -139,6 +149,7 @@ let
       libXScrnSaver libXcursor libXtst libGLU libGL
       pciutils protobuf speechd libXdamage at-spi2-core
       jre
+      pipewire_0_2
     ] ++ optional useVaapi libva
       ++ optional gnomeKeyringSupport libgnome-keyring3
       ++ optionals gnomeSupport [ gnome.GConf libgcrypt ]
@@ -146,8 +157,9 @@ let
       ++ optional pulseSupport libpulseaudio
       ++ optionals useOzone [ libdrm wayland mesa_drivers libxkbcommon ];
 
-    patches = [
+    patches = optionals (versionRange "68" "86") [
       ./patches/nix_plugin_paths_68.patch
+    ] ++ [
       ./patches/remove-webp-include-69.patch
       ./patches/no-build-timestamps.patch
       ./patches/widevine-79.patch
@@ -161,15 +173,18 @@ let
       #
       # ++ optionals (channel == "dev") [ ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" ) ]
       # ++ optional (versionRange "68" "72") ( githubPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000" )
-    ] ++ optionals (useVaapi) ([ # Fixes for the VA-API build:
+    ] ++ optionals (useVaapi && versionRange "68" "86") [ # Improvements for the VA-API build:
       ./patches/enable-vdpau-support-for-nvidia.patch # https://aur.archlinux.org/cgit/aur.git/tree/vdpau-support.patch?h=chromium-vaapi
       ./patches/enable-video-acceleration-on-linux.patch # Can be controlled at runtime (i.e. without rebuilding Chromium)
-    ] ++ optionals (versionRange "81" "82") [
-      (githubPatch "5b2ff215473e0526b5b24aeff4ad90d369b21c75" "0n00vh8wfpn2ay5fqsxcsx0zadnv7mihm72bcvnrfzh75nzbg902")
-      (githubPatch "98e343ab369e4262511b5fce547728e3e5eefba8" "00wwp653jk0k0yvix00vr7ymgck9dj7fxjwx4nc67ynn84dh6064")
-    ]);
-
-    postPatch = ''
+    ];
+
+    postPatch = optionalString (!versionRange "0" "86") ''
+      # Required for patchShebangs (unsupported interpreter directive, basename: invalid option -- '*', etc.):
+      substituteInPlace native_client/SConstruct \
+        --replace "#! -*- python -*-" ""
+      substituteInPlace third_party/harfbuzz-ng/src/src/update-unicode-tables.make \
+        --replace "/usr/bin/env -S make -f" "/usr/bin/make -f"
+    '' + ''
       # We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
       substituteInPlace sandbox/linux/suid/client/setuid_sandbox_host.cc \
         --replace \
@@ -187,10 +202,15 @@ let
           '/usr/share/locale/' \
           '${glibc}/share/locale/'
 
+      substituteInPlace ui/gfx/x/BUILD.gn \
+        --replace \
+          '/usr/share/xcb' \
+          '${xorg.xcbproto}/share/xcb/'
+
       sed -i -e 's@"\(#!\)\?.*xdg-@"\1${xdg_utils}/bin/xdg-@' \
         chrome/browser/shell_integration_linux.cc
 
-      sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${systemd.lib}/lib/\1!' \
+      sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${lib.getLib systemd}/lib/\1!' \
         device/udev_linux/udev?_loader.cc
 
       sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
@@ -239,7 +259,6 @@ let
     '';
 
     gnFlags = mkGnFlags ({
-      linux_use_bundled_binutils = false;
       use_lld = false;
       use_gold = true;
       gold_path = "${stdenv.cc}/bin";
@@ -257,6 +276,8 @@ let
       # added later in the wrapped -wv build or downloaded from Google.
       enable_widevine = true;
       use_cups = cupsSupport;
+      # Provides the enable-webrtc-pipewire-capturer flag to support Wayland screen capture.
+      rtc_use_pipewire = true;
 
       treat_warnings_as_errors = false;
       is_clang = stdenv.cc.isClang;
@@ -292,8 +313,8 @@ let
       use_system_libdrm = true;
       system_wayland_scanner_path = "${wayland}/bin/wayland-scanner";
     } // optionalAttrs ungoogled {
-      closure_compile = false;
       enable_hangout_services_extension = false;
+      enable_js_type_check = false;
       enable_mdns = false;
       enable_nacl_nonsfi = false;
       enable_one_click_signin = false;
@@ -305,7 +326,6 @@ let
       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;
@@ -358,9 +378,11 @@ let
       origRpath="$(patchelf --print-rpath "$chromiumBinary")"
       patchelf --set-rpath "${libGL}/lib:$origRpath" "$chromiumBinary"
     '';
+
+    passthru.updateScript = ./update.py;
   };
 
 # Remove some extraAttrs we supplied to the base attributes already.
 in stdenv.mkDerivation (base // removeAttrs extraAttrs [
   "name" "gnFlags" "buildTargets"
-])
+] // { passthru = base.passthru // (extraAttrs.passthru or {}); })
diff --git a/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix b/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix
index 9d6c7fada709..7c581ee633f6 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix
@@ -1,8 +1,9 @@
-{ newScope, config, stdenv, llvmPackages_9, llvmPackages_10
-, makeWrapper, ed
+{ newScope, config, stdenv, fetchurl, makeWrapper
+, llvmPackages_10, llvmPackages_11, ed, gnugrep, coreutils, xdg_utils
 , glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit
 , libva ? null
-, gcc, nspr, nss, patchelfUnstable, runCommand
+, pipewire_0_2
+, gcc, nspr, nss, runCommand
 , lib
 
 # package customization
@@ -23,30 +24,48 @@
 }:
 
 let
-  llvmPackages = if channel != "stable"
-    then llvmPackages_10
-    else llvmPackages_9;
+  llvmPackages = llvmPackages_10;
   stdenv = llvmPackages.stdenv;
 
   callPackage = newScope chromium;
 
-  chromium = {
+  chromium = rec {
     inherit stdenv llvmPackages;
 
-    upstream-info = (callPackage ./update.nix {}).getChannel channel;
+    upstream-info = (lib.importJSON ./upstream-info.json).${channel};
 
     mkChromiumDerivation = callPackage ./common.nix ({
-      inherit gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport useOzone;
+      inherit channel gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs
+              cupsSupport pulseSupport useOzone;
       inherit ungoogled;
-      gnChromium = gn;
-    } // lib.optionalAttrs (channel != "stable") {
       # TODO: Remove after we can update gn for the stable channel (backward incompatible changes):
       gnChromium = gn.overrideAttrs (oldAttrs: {
-        version = "2020-03-23";
+        version = "2020-05-19";
         src = fetchgit {
           url = "https://gn.googlesource.com/gn";
-          rev = "5ed3c9cc67b090d5e311e4bd2aba072173e82db9";
-          sha256 = "00y2d35wvqmx9glaqhfb62wdgbfpwr77v0934nnvh9ks71vnsjqy";
+          rev = "d0a6f072070988e7b038496c4e7d6c562b649732";
+          sha256 = "0197msabskgfbxvhzq73gc3wlr3n9cr4bzrhy5z5irbvy05lxk17";
+        };
+      });
+    } // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "86") {
+      llvmPackages = llvmPackages_11;
+      gnChromium = gn.overrideAttrs (oldAttrs: {
+        version = "2020-07-20";
+        src = fetchgit {
+          url = "https://gn.googlesource.com/gn";
+          rev = "3028c6a426a4aaf6da91c4ebafe716ae370225fe";
+          sha256 = "0h3wf4152zdvrbb0jbj49q6814lfl3rcy5mj8b2pl9s0ahvkbc6q";
+        };
+      });
+    } // lib.optionalAttrs (lib.versionAtLeast upstream-info.version "87") {
+      llvmPackages = llvmPackages_11;
+      useOzone = true; # YAY: https://chromium-review.googlesource.com/c/chromium/src/+/2382834 \o/
+      gnChromium = gn.overrideAttrs (oldAttrs: {
+        version = "2020-08-17";
+        src = fetchgit {
+          url = "https://gn.googlesource.com/gn";
+          rev = "6f13aaac55a977e1948910942675c69f2b4f7a94";
+          sha256 = "01hpma1sllpdx09mvr4d6073sg6zmk6iv44kd3r28khymcj4s251";
         };
       });
     });
@@ -60,24 +79,33 @@ let
     ungoogled-chromium = callPackage ./ungoogled.nix {};
   };
 
+  pkgSuffix = if channel == "dev" then "unstable" else channel;
+  pkgName = "google-chrome-${pkgSuffix}";
+  chromeSrc = fetchurl {
+    urls = map (repo: "${repo}/${pkgName}/${pkgName}_${version}-1_amd64.deb") [
+      "https://dl.google.com/linux/chrome/deb/pool/main/g"
+      "http://95.31.35.30/chrome/pool/main/g"
+      "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g"
+      "http://repo.fdzh.org/chrome/deb/pool/main/g"
+    ];
+    sha256 = chromium.upstream-info.sha256bin64;
+  };
+
   mkrpath = p: "${lib.makeSearchPathOutput "lib" "lib64" p}:${lib.makeLibraryPath p}";
-  widevineCdm = let upstream-info = chromium.upstream-info; in stdenv.mkDerivation {
+  widevineCdm = stdenv.mkDerivation {
     name = "chrome-widevine-cdm";
 
-    # The .deb file for Google Chrome
-    src = upstream-info.binary;
-
-    nativeBuildInputs = [ patchelfUnstable ];
+    src = chromeSrc;
 
     phases = [ "unpackPhase" "patchPhase" "installPhase" "checkPhase" ];
 
     unpackCmd = let
       widevineCdmPath =
-        if upstream-info.channel == "stable" then
+        if channel == "stable" then
           "./opt/google/chrome/WidevineCdm"
-        else if upstream-info.channel == "beta" then
+        else if channel == "beta" then
           "./opt/google/chrome-beta/WidevineCdm"
-        else if upstream-info.channel == "dev" then
+        else if channel == "dev" then
           "./opt/google/chrome-unstable/WidevineCdm"
         else
           throw "Unknown chromium channel.";
@@ -142,7 +170,7 @@ let
       (!enableVaapi)
       "--add-flags --disable-accelerated-video-decode --add-flags --disable-accelerated-video-encode";
 in stdenv.mkDerivation {
-  name = "chromium${suffix}-${version}";
+  name = "ungoogled-chromium${suffix}-${version}";
   inherit version;
 
   buildInputs = [
@@ -160,7 +188,7 @@ in stdenv.mkDerivation {
   buildCommand = let
     browserBinary = "${chromiumWV}/libexec/chromium/chromium";
     getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")";
-    libPath = stdenv.lib.makeLibraryPath [ libva ];
+    libPath = stdenv.lib.makeLibraryPath [ libva pipewire_0_2 ];
 
   in with stdenv.lib; ''
     mkdir -p "$out/bin"
@@ -187,10 +215,13 @@ in stdenv.mkDerivation {
   '' + ''
 
     # libredirect causes chromium to deadlock on startup
-    export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | tr ':' '\n' | grep -v /lib/libredirect\\\\.so$ | tr '\n' ':')"
+    export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | ${coreutils}/bin/tr ':' '\n' | ${gnugrep}/bin/grep -v /lib/libredirect\\\\.so$ | ${coreutils}/bin/tr '\n' ':')"
 
     export XDG_DATA_DIRS=$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\''${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS
 
+    # Mainly for xdg-open but also other xdg-* tools:
+    export PATH="${xdg_utils}/bin\''${PATH:+:}\$PATH"
+
     .
     w
     EOF
@@ -210,6 +241,7 @@ in stdenv.mkDerivation {
   passthru = {
     inherit (chromium) upstream-info browser;
     mkDerivation = chromium.mkChromiumDerivation;
-    inherit sandboxExecutableName;
+    inherit chromeSrc sandboxExecutableName;
+    updateScript = ./update.py;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-vdpau-support-for-nvidia.patch b/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-vdpau-support-for-nvidia.patch
index b5372d1a2556..8d879de7bfd8 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-vdpau-support-for-nvidia.patch
+++ b/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-vdpau-support-for-nvidia.patch
@@ -31,15 +31,6 @@
    // TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT
    // |output_mode_| as well.
    if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
-@@ -1105,7 +1113,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
-   // depends on the bitstream and sometimes it's not enough to cover the amount
-   // of frames needed by the client pipeline (see b/133733739).
-   // TODO(crbug.com/911754): Enable for VP9 Profile 2.
--  if (IsGeminiLakeOrLater() &&
-+  if (false && IsGeminiLakeOrLater() &&
-       (profile_ == VP9PROFILE_PROFILE0 || profile_ == VP8PROFILE_ANY)) {
-     // Add one to the reference frames for the one being currently egressed, and
-     // an extra allocation for both |client_| and |decoder_|, see
 --- a/media/gpu/vaapi/vaapi_video_decode_accelerator.h
 +++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.h
 @@ -204,6 +204,7 @@ class MEDIA_GPU_EXPORT VaapiVideoDecodeAccelerator
diff --git a/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix b/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix
index d45a3c9f864a..530a4c8a4aea 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix
@@ -4,7 +4,6 @@
 , nspr
 , nss
 , fetchzip
-, patchelfUnstable
 , enablePepperFlash ? false
 
 , upstream-info
@@ -45,11 +44,11 @@ let
 
   flash = stdenv.mkDerivation rec {
     pname = "flashplayer-ppapi";
-    version = "32.0.0.371";
+    version = "32.0.0.433";
 
     src = fetchzip {
       url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
-      sha256 = "1nks2wx74b21hv0l7bnrzkxn7c6p6r8zgwbqvy3cqpi8famyr5v9";
+      sha256 = "1wfwnmai6wnwi6cfxwqix6n471jjyl6nc7p67sa7cfqwg16b53kx";
       stripRoot = false;
     };
 
diff --git a/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix b/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix
index c393f7fe28ec..73f4e4c9e83d 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix
@@ -1,6 +1,6 @@
 {
-  "81.0.4044.138" = {
-    rev = "81.0.4044.138-1";
-    sha256 = "1qa5lw2psaqxr2zklaldx4sm6by4gsw3mfrp01ijc4kkp9jmvg7r";
+  "85.0.4183.102" = {
+    rev = "85.0.4183.102-1";
+    sha256 = "1mdx4a5zcs3an9yx1jxx4amq8p9rcj0hv76r8y7nz6cpsfgd9n3y";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/update.nix b/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/update.nix
deleted file mode 100644
index 6dff17c69ddb..000000000000
--- a/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/update.nix
+++ /dev/null
@@ -1,271 +0,0 @@
-let maybePkgs = import ../../../../../. {}; in
-
-{ stdenv     ? maybePkgs.stdenv
-, runCommand ? maybePkgs.runCommand
-, fetchurl   ? maybePkgs.fetchurl
-, writeText  ? maybePkgs.writeText
-, curl       ? maybePkgs.curl
-, cacert     ? maybePkgs.cacert
-, nix        ? maybePkgs.nix
-}:
-
-let
-  inherit (stdenv) lib;
-
-  sources = if builtins.pathExists ./upstream-info.nix
-            then import ./upstream-info.nix
-            else {};
-
-  bucketURL = "https://commondatastorage.googleapis.com/"
-            + "chromium-browser-official";
-
-  mkVerURL = version: "${bucketURL}/chromium-${version}.tar.xz";
-
-  debURL = "https://dl.google.com/linux/chrome/deb/pool/main/g";
-
-  getDebURL = channelName: version: arch: mirror: let
-    packageSuffix = if channelName == "dev" then "unstable" else channelName;
-    packageName = "google-chrome-${packageSuffix}";
-  in "${mirror}/${packageName}/${packageName}_${version}-1_${arch}.deb";
-
-  # Untrusted mirrors, don't try to update from them!
-  debMirrors = [
-    "http://95.31.35.30/chrome/pool/main/g"
-    "http://mirror.pcbeta.com/google/chrome/deb/pool/main/g"
-    "http://repo.fdzh.org/chrome/deb/pool/main/g"
-  ];
-
-in {
-  getChannel = channel: let
-    chanAttrs = builtins.getAttr channel sources;
-  in {
-    inherit channel;
-    inherit (chanAttrs) version;
-
-    main = fetchurl {
-      url = mkVerURL chanAttrs.version;
-      inherit (chanAttrs) sha256;
-    };
-
-    binary = fetchurl (let
-      mkUrls = arch: let
-        mkURLForMirror = getDebURL channel chanAttrs.version arch;
-      in map mkURLForMirror ([ debURL ] ++ debMirrors);
-    in if stdenv.is64bit && chanAttrs ? sha256bin64 then {
-      urls = mkUrls "amd64";
-      sha256 = chanAttrs.sha256bin64;
-    } else if !stdenv.is64bit && chanAttrs ? sha256bin32 then {
-      urls = mkUrls "i386";
-      sha256 = chanAttrs.sha256bin32;
-    } else throw "No Chrome plugins are available for your architecture.");
-  };
-
-  update = let
-    csv2nix = name: src: import (runCommand "${name}.nix" {
-      src = builtins.fetchurl src;
-    } ''
-      esc() { echo "\"$(echo "$1" | sed -e 's/"\\$/\\&/')\""; } # ohai emacs "
-      IFS=, read -r -a headings <<< "$(head -n1 "$src")"
-      echo "[" > "$out"
-      tail -n +2 "$src" | while IFS=, read -r -a line; do
-        echo "  {"
-        for idx in "''${!headings[@]}"; do
-          echo "    $(esc "''${headings[idx]}") = $(esc ''${line[$idx]});"
-        done
-        echo "  }"
-      done >> "$out"
-      echo "]" >> "$out"
-    '');
-
-    channels = lib.fold lib.recursiveUpdate {} (map (attrs: {
-      ${attrs.os}.${attrs.channel} = attrs // {
-        history = let
-          drvName = "omahaproxy-${attrs.os}.${attrs.channel}-info";
-          history = csv2nix drvName "http://omahaproxy.appspot.com/history";
-          cond = h: attrs.os == h.os && attrs.channel == h.channel
-                 && lib.versionOlder h.version attrs.current_version;
-          # Note that this is a *reverse* sort!
-          sorter = a: b: lib.versionOlder b.version a.version;
-          sorted = builtins.sort sorter (lib.filter cond history);
-        in map (lib.flip removeAttrs ["os" "channel"]) sorted;
-        version = attrs.current_version;
-      };
-    }) (csv2nix "omahaproxy-info" "http://omahaproxy.appspot.com/all?csv=1"));
-
-    /*
-      XXX: This is essentially the same as:
-
-        builtins.tryEval (builtins.fetchurl url)
-
-      ... except that tryEval on fetchurl isn't working and doesn't catch
-      errors for fetchurl, so we go for a different approach.
-
-      We only have fixed-output derivations that can have networking access, so
-      we abuse SHA1 and its weaknesses to forge a fixed-output derivation which
-      is not so fixed, because it emits different contents that have the same
-      SHA1 hash.
-
-      Using this method, we can distinguish whether the URL is available or
-      whether it's not based on the actual content.
-
-      So let's use tryEval as soon as it's working with fetchurl in Nix.
-    */
-    tryFetch = url: let
-      # SHA1 hash collisions from https://shattered.io/static/shattered.pdf:
-      collisions = runCommand "sha1-collisions" {
-        outputs = [ "out" "good" "bad" ];
-        base64 = ''
-          QlpoOTFBWSZTWbL5V5MABl///////9Pv///v////+/////HDdK739/677r+W3/75rUNr4
-          Aa/AAAAAAACgEVTRtQDQAaA0AAyGmjTQGmgAAANGgAaMIAYgGgAABo0AAAAAADQAIAGQ0
-          MgDIGmjQA0DRk0AaMQ0DQAGIANGgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk
-          0AaMQ0DQAGIANGgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk0AaMQ0DQAGIAN
-          GgAAGRoNGQMRpo0GIGgBoGQAAIAGQ0MgDIGmjQA0DRk0AaMQ0DQAGIANGgAAGRoNGQMRp
-          o0GIGgBoGQAABVTUExEZATTICnkxNR+p6E09JppoyamjGhkm0ammIyaekbUejU9JiGnqZ
-          qaaDxJ6m0JkZMQ2oaYmJ6gxqMyE2TUzJqfItligtJQJfYbl9Zy9QjQuB5mHQRdSSXCCTH
-          MgmSDYmdOoOmLTBJWiCpOhMQYpQlOYpJjn+wQUJSTCEpOMekaFaaNB6glCC0hKEJdHr6B
-          mUIHeph7YxS8WJYyGwgWnMTFJBDFSxSCCYljiEk7HZgJzJVDHJxMgY6tCEIIWgsKSlSZ0
-          S8GckoIIF+551Ro4RCw260VCEpWJSlpWx/PMrLyVoyhWMAneDilBcUIeZ1j6NCkus0qUC
-          Wnahhk5KT4GpWMh3vm2nJWjTL9Qg+84iExBJhNKpbV9tvEN265t3fu/TKkt4rXFTsV+Nc
-          upJXhOhOhJMQQktrqt4K8mSh9M2DAO2X7uXGVL9YQxUtzQmS7uBndL7M6R7vX869VxqPu
-          renSuHYNq1yTXOfNWLwgvKlRlFYqLCs6OChDp0HuTzCWscmGudLyqUuwVGG75nmyZhKpJ
-          yOE/pOZyHyrZxGM51DYIN+Jc8yVJgAykxKCEtW55MlfudLg3KG6TtozalunXrroSxUpVL
-          StWrWLFihMnVpkyZOrQnUrE6xq1CGtJlbAb5ShMbV1CZgqlKC0wCFCpMmUKSEkvFLaZC8
-          wHOCVAlvzaJQ/T+XLb5Dh5TNM67p6KZ4e4ZSGyVENx2O27LzrTIteAreTkMZpW95GS0CE
-          JYhMc4nToTJ0wQhKEyddaLb/rTqmgJSlkpnALxMhlNmuKEpkEkqhKUoEq3SoKUpIQcDgW
-          lC0rYahMmLuPQ0fHqZaF4v2W8IoJ2EhMhYmSw7qql27WJS+G4rUplToFi2rSv0NSrVvDU
-          pltQ8Lv6F8pXyxmFBSxiLSxglNC4uvXVKmAtusXy4YXGX1ixedEvXF1aX6t8adYnYCpC6
-          rW1ZzdZYlCCxKEv8vpbqdSsXl8v1jCQv0KEPxPTa/5rtWSF1dSgg4z4KjfIMNtgwWoWLE
-          sRhKxsSA9ji7V5LRPwtumeQ8V57UtFSPIUmtQdOQfseI2Ly1DMtk4Jl8n927w34zrWG6P
-          i4jzC82js/46Rt2IZoadWxOtMInS2xYmcu8mOw9PLYxQ4bdfFw3ZPf/g2pzSwZDhGrZAl
-          9lqky0W+yeanadC037xk496t0Dq3ctfmqmjgie8ln9k6Q0K1krb3dK9el4Xsu44LpGcen
-          r2eQZ1s1IhOhnE56WnXf0BLWn9Xz15fMkzi4kpVxiTKGEpffErEEMvEeMZhUl6yD1SdeJ
-          YbxzGNM3ak2TAaglLZlDCVnoM6wV5DRrycwF8Zh/fRsdmhkMfAO1duwknrsFwrzePWeMw
-          l107DWzymxdQwiSXx/lncnn75jL9mUzw2bUDqj20LTgtawxK2SlQg1CCZDQMgSpEqLjRM
-          sykM9zbSIUqil0zNk7Nu+b5J0DKZlhl9CtpGKgX5uyp0idoJ3we9bSrY7PupnUL5eWiDp
-          V5mmnNUhOnYi8xyClkLbNmAXyoWk7GaVrM2umkbpqHDzDymiKjetgzTocWNsJ2E0zPcfh
-          t46J4ipaXGCfF7fuO0a70c82bvqo3HceIcRlshgu73seO8BqlLIap2z5jTOY+T2ucCnBt
-          Atva3aHdchJg9AJ5YdKHz7LoA3VKmeqxAlFyEnQLBxB2PAhAZ8KvmuR6ELXws1Qr13Nd1
-          i4nsp189jqvaNzt+0nEnIaniuP1+/UOZdyfoZh57ku8sYHKdvfW/jYSUks+0rK+qtte+p
-          y8jWL9cOJ0fV8rrH/t+85/p1z2N67p/ZsZ3JmdyliL7lrNxZUlx0MVIl6PxXOUuGOeArW
-          3vuEvJ2beoh7SGyZKHKbR2bBWO1d49JDIcVM6lQtu9UO8ec8pOnXmkcponBPLNM2CwZ9k
-          NC/4ct6rQkPkQHMcV/8XckU4UJCy+VeTA==
-        '';
-      } ''
-        echo "$base64" | base64 -d | tar xj
-        mv good.pdf "$good"
-        mv bad.pdf "$bad"
-        touch "$out"
-      '';
-
-      cacheVal = let
-        urlHash = builtins.hashString "sha256" url;
-        timeSlice = builtins.currentTime / 600;
-      in "${urlHash}-${toString timeSlice}";
-
-    in {
-      success = import (runCommand "check-success" {
-        result = stdenv.mkDerivation {
-          name = "tryfetch-${cacheVal}";
-          inherit url;
-
-          outputHash = "d00bbe65d80f6d53d5c15da7c6b4f0a655c5a86a";
-          outputHashMode = "flat";
-          outputHashAlgo = "sha1";
-
-          nativeBuildInputs = [ curl ];
-          preferLocalBuild = true;
-
-          inherit (collisions) good bad;
-
-          buildCommand = ''
-            if SSL_CERT_FILE="${cacert}/etc/ssl/certs/ca-bundle.crt" \
-               curl -s -L -f -I "$url" > /dev/null; then
-              cp "$good" "$out"
-            else
-              cp "$bad" "$out"
-            fi
-          '';
-
-          impureEnvVars = lib.fetchers.proxyImpureEnvVars;
-        };
-        inherit (collisions) good;
-      } ''
-        if cmp -s "$result" "$good"; then
-          echo true > "$out"
-        else
-          echo false > "$out"
-        fi
-      '');
-      value = builtins.fetchurl url;
-    };
-
-    fetchLatest = channel: let
-      result = tryFetch (mkVerURL channel.version);
-    in if result.success then result.value else fetchLatest (channel // {
-      version = if channel.history != []
-                then (lib.head channel.history).version
-                else throw "Unfortunately there's no older version than " +
-                           "${channel.version} available for channel " +
-                           "${channel.channel} on ${channel.os}.";
-      history = lib.tail channel.history;
-    });
-
-    getHash = path: import (runCommand "gethash.nix" {
-      inherit path;
-      nativeBuildInputs = [ nix ];
-    } ''
-      sha256="$(nix-hash --flat --base32 --type sha256 "$path")"
-      echo "\"$sha256\"" > "$out"
-    '');
-
-    isLatest = channel: version: let
-      ourVersion = sources.${channel}.version or null;
-    in if ourVersion == null then false
-       else lib.versionOlder version sources.${channel}.version
-         || version == sources.${channel}.version;
-
-    # We only support GNU/Linux right now.
-    linuxChannels = let
-      genLatest = channelName: channel: let
-        newUpstream = {
-          inherit (channel) version;
-          sha256 = getHash (fetchLatest channel);
-        };
-        keepOld = let
-          oldChannel = sources.${channelName};
-        in {
-          inherit (oldChannel) version sha256;
-        } // lib.optionalAttrs (oldChannel ? sha256bin32) {
-          inherit (oldChannel) sha256bin32;
-        } // lib.optionalAttrs (oldChannel ? sha256bin64) {
-          inherit (oldChannel) sha256bin64;
-        };
-      in if isLatest channelName channel.version then keepOld else newUpstream;
-    in lib.mapAttrs genLatest channels.linux;
-
-    getLinuxFlash = channelName: channel: let
-      inherit (channel) version;
-      fetchArch = arch: tryFetch (getDebURL channelName version arch debURL);
-      packages = lib.genAttrs ["i386" "amd64"] fetchArch;
-      isNew = arch: attr: !(builtins.hasAttr attr channel)
-                       && packages.${arch}.success;
-    in channel // lib.optionalAttrs (isNew "i386" "sha256bin32") {
-      sha256bin32 = getHash (packages.i386.value);
-    } // lib.optionalAttrs (isNew "amd64" "sha256bin64") {
-      sha256bin64 = getHash (packages.amd64.value);
-    };
-
-    newChannels = lib.mapAttrs getLinuxFlash linuxChannels;
-
-    dumpAttrs = indent: attrs: let
-      mkVal = val: if lib.isAttrs val then dumpAttrs (indent + 1) val
-                   else "\"${lib.escape ["$" "\\" "\""] (toString val)}\"";
-      mkIndent = level: lib.concatStrings (builtins.genList (_: "  ") level);
-      mkAttr = key: val: "${mkIndent (indent + 1)}${key} = ${mkVal val};\n";
-      attrLines = lib.mapAttrsToList mkAttr attrs;
-    in "{\n" + (lib.concatStrings attrLines) + (mkIndent indent) + "}";
-  in writeText "chromium-new-upstream-info.nix" ''
-    # This file is autogenerated from update.sh in the same directory.
-    ${dumpAttrs 0 newChannels}
-  '';
-}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/update.py b/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/update.py
new file mode 100755
index 000000000000..bfc7f0d2478c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/update.py
@@ -0,0 +1,77 @@
+#! /usr/bin/env nix-shell
+#! nix-shell -i python -p python3 nix
+
+import csv
+import json
+import subprocess
+import sys
+
+from codecs import iterdecode
+from collections import OrderedDict
+from os.path import abspath, dirname
+from urllib.request import urlopen
+
+HISTORY_URL = 'https://omahaproxy.appspot.com/history?os=linux'
+DEB_URL = 'https://dl.google.com/linux/chrome/deb/pool/main/g'
+BUCKET_URL = 'https://commondatastorage.googleapis.com/chromium-browser-official'
+
+JSON_PATH = dirname(abspath(__file__)) + '/upstream-info.json'
+
+def load_json(path):
+    with open(path, 'r') as f:
+        return json.load(f)
+
+def nix_prefetch_url(url, algo='sha256'):
+    print(f'nix-prefetch-url {url}')
+    out = subprocess.check_output(['nix-prefetch-url', '--type', algo, url])
+    return out.decode('utf-8').rstrip()
+
+channels = {}
+last_channels = load_json(JSON_PATH)
+
+print(f'GET {HISTORY_URL}', file=sys.stderr)
+with urlopen(HISTORY_URL) as resp:
+    builds = csv.DictReader(iterdecode(resp, 'utf-8'))
+    for build in builds:
+        channel_name = build['channel']
+
+        # If we've already found a newer build for this channel, we're
+        # no longer interested in it.
+        if channel_name in channels:
+            continue
+
+        # If we're back at the last build we used, we don't need to
+        # keep going -- there's no new version available, and we can
+        # just reuse the info from last time.
+        if build['version'] == last_channels[channel_name]['version']:
+            channels[channel_name] = last_channels[channel_name]
+            continue
+
+        channel = {'version': build['version']}
+        suffix = 'unstable' if channel_name == 'dev' else channel_name
+
+        try:
+            channel['sha256'] = nix_prefetch_url(f'{BUCKET_URL}/chromium-{build["version"]}.tar.xz')
+            channel['sha256bin64'] = nix_prefetch_url(f'{DEB_URL}/google-chrome-{suffix}/google-chrome-{suffix}_{build["version"]}-1_amd64.deb')
+        except subprocess.CalledProcessError:
+            # This build isn't actually available yet.  Continue to
+            # the next one.
+            continue
+
+        channels[channel_name] = channel
+
+with open(JSON_PATH, 'w') as out:
+    def get_channel_key(item):
+        channel_name = item[0]
+        if channel_name == 'stable':
+            return 0
+        elif channel_name == 'beta':
+            return 1
+        elif channel_name == 'dev':
+            return 2
+        else:
+            print(f'Error: Unexpected channel: {channel_name}', file=sys.stderr)
+            sys.exit(1)
+    sorted_channels = OrderedDict(sorted(channels.items(), key=get_channel_key))
+    json.dump(sorted_channels, out, indent=2)
+    out.write('\n')
diff --git a/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/update.sh b/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/update.sh
deleted file mode 100755
index ea67a62c107a..000000000000
--- a/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/update.sh
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh -e
-cd "$(dirname "$0")"
-sp="$(nix-build --builders "" -Q --no-out-link update.nix -A update)"
-cat "$sp" > upstream-info.nix
diff --git a/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.json b/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.json
new file mode 100644
index 000000000000..dae7f741b357
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.json
@@ -0,0 +1,17 @@
+{
+  "stable": {
+    "version": "85.0.4183.102",
+    "sha256": "032yh1mfwins7a62zw8kwwq8xw1n52a0a93lqz7qlyjaf9sd8s4a",
+    "sha256bin64": "1i8xaxxnmg80vsia8hxnq58qi9k5nnbrl80d6d23g9lb7dbc9cpm"
+  },
+  "beta": {
+    "version": "86.0.4240.30",
+    "sha256": "1isj0zngb72k1hhn3h0s8mccg1cdmppz1mjmg19f2h306farzmzl",
+    "sha256bin64": "10d8im2adqqnkd6265gngv6xlm5qsz6r13z6cbbchsss0ssr8fxa"
+  },
+  "dev": {
+    "version": "87.0.4252.0",
+    "sha256": "1lxlsdni63zh79hxvpwgmnfn67kgfzhz3yg9bkxghqchqykkz92y",
+    "sha256bin64": "130hf7b35wcxpw05ddbqq89x10c0kays1vb9qg6xhq3zx2mk6ijw"
+  }
+}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix b/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix
deleted file mode 100644
index defb58822a03..000000000000
--- a/nixpkgs/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-# This file is autogenerated from update.sh in the same directory.
-{
-  beta = {
-    sha256 = "0z9p4v5mkinf7hbdagh4bz6ymqjxg3df3wjpvm201ilzzngmjqz1";
-    sha256bin64 = "1srvlirhnynh0q2a17p8z13p7r54z0cchh1d1h07hqljnwmsf8qj";
-    version = "83.0.4103.34";
-  };
-  dev = {
-    sha256 = "178fc112bsbrgj2hss78y8rhnz8hl85fr33gawk9fz88zk5qz7xd";
-    sha256bin64 = "06qra245l2bbgxc3k04aabkgq1qnzybnrjhrjb25vriv31ji36b1";
-    version = "84.0.4128.3";
-  };
-  stable = {
-    sha256 = "19kpzmqmld0m0nflx13w9flxfal19msnxhzl3lip1jqih65z4y7l";
-    sha256bin64 = "0sl4wv7npc3rhi7jgn679hi7j5ykzwpx5dahy78h87yfg4fx84wx";
-    version = "81.0.4044.138";
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
index 248980e5b2b1..fbf49b9f41bf 100644
--- a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -3,7 +3,7 @@
 , alsaLib, dbus, cups, libexif, ffmpeg_3, systemd
 , freetype, fontconfig, libXft, libXrender, libxcb, expat
 , libuuid
-, gstreamer, gst-plugins-base, libxml2
+, libxml2
 , glib, gtk3, pango, gdk-pixbuf, cairo, atk, at-spi2-atk, at-spi2-core, gnome2
 , libdrm, mesa
 , nss, nspr
@@ -18,11 +18,11 @@ let
   vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
 in stdenv.mkDerivation rec {
   pname = "vivaldi";
-  version = "3.0.1874.38-1";
+  version = "3.3.2022.47-1";
 
   src = fetchurl {
     url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
-    sha256 = "03667f8rlk8shxq6ghjg4q9hqhsaw4gwpqnjpyili49qczd5423w";
+    sha256 = "0lraliqb5r8akh8lfmw2sy90s58sbghcpc598nlz2d89f91yq7vz";
   };
 
   unpackPhase = ''
@@ -37,7 +37,7 @@ in stdenv.mkDerivation rec {
     libXi libXft libXcursor libXfixes libXScrnSaver libXcomposite libXdamage libXtst libXrandr
     atk at-spi2-atk at-spi2-core alsaLib dbus cups gtk3 gdk-pixbuf libexif ffmpeg_3 systemd
     freetype fontconfig libXrender libuuid expat glib nss nspr
-    gstreamer libxml2 gst-plugins-base pango cairo gnome2.GConf
+    libxml2 pango cairo gnome2.GConf
     libdrm mesa
   ] ++ stdenv.lib.optional proprietaryCodecs vivaldi-ffmpeg-codecs;
 
@@ -90,7 +90,7 @@ in stdenv.mkDerivation rec {
     description = "A Browser for our Friends, powerful and personal";
     homepage    = "https://vivaldi.com";
     license     = licenses.unfree;
-    maintainers = with maintainers; [ otwieracz nequissimus ];
+    maintainers = with maintainers; [ otwieracz nequissimus badmutex ];
     platforms   = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix b/nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix
new file mode 100644
index 000000000000..d10758170784
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/browsers/webbrowser/default.nix
@@ -0,0 +1,108 @@
+{ stdenv, lib, fetchgit, makeDesktopItem, pkgconfig, makeWrapper
+# Build
+, python2, autoconf213, yasm, perl, ccache
+, unzip, gnome2, gnum4
+
+# Runtime
+, xorg, zip, freetype, fontconfig, glibc, libffi
+, dbus, dbus-glib, gtk2, alsaLib, jack2, ffmpeg
+}:
+
+let
+
+  libPath = lib.makeLibraryPath [ ffmpeg ];
+
+in stdenv.mkDerivation rec {
+  pname = "webbrowser";
+  version = "29.0.0rc1";
+
+  src = fetchgit {
+    url = "https://git.nuegia.net/webbrowser.git";
+    rev = version;
+    sha256 = "1d82943mla6q3257081d946kgms91dg0n93va3zlzm9hbbqilzm6";
+    fetchSubmodules = true;
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "webbrowser";
+    exec = "webbrowser %U";
+    icon = "webbrowser";
+    desktopName = "Web Browser";
+    genericName = "Web Browser";
+    categories = "Network;WebBrowser;";
+    mimeType = lib.concatStringsSep ";" [
+      "text/html"
+      "text/xml"
+      "application/xhtml+xml"
+      "application/vnd.mozilla.xul+xml"
+      "x-scheme-handler/http"
+      "x-scheme-handler/https"
+    ];
+  };
+
+  nativeBuildInputs = [
+    gnum4 makeWrapper perl pkgconfig python2 ccache
+  ];
+
+  buildInputs = [
+    alsaLib dbus dbus-glib ffmpeg fontconfig freetype yasm zip jack2 gtk2
+    unzip gnome2.GConf xorg.libXt
+  ];
+
+  enableParallelBuilding = true;
+
+  configurePhase = ''
+    export MOZCONFIG=$PWD/.mozconfig
+    export MOZ_NOSPAM=1
+    export HOME=$PWD # Needed by ccache
+
+    cp $src/doc/mozconfig.example $MOZCONFIG
+    # Need to modify it
+    chmod 644 $MOZCONFIG
+
+    substituteInPlace $MOZCONFIG \
+      --replace "mk_add_options PYTHON=/usr/bin/python2" "mk_add_options PYTHON=${python2}/bin/python2" \
+      --replace "mk_add_options AUTOCONF=/usr/bin/autoconf-2.13" "mk_add_options AUTOCONF=${autoconf213}/bin/autoconf" \
+      --replace 'mk_add_options MOZ_OBJDIR=$HOME/build/wbobjects/' "" \
+      --replace "ac_add_options --x-libraries=/usr/lib64" "ac_add_options --x-libraries=${lib.makeLibraryPath [ xorg.libX11 ]}" \
+      --replace "_BUILD_64=1" "_BUILD_64=${lib.optionalString stdenv.hostPlatform.is64bit "1"}"
+
+    echo >> $MOZCONFIG '
+    #
+    # NixOS-specific adjustments
+    #
+
+    ac_add_options --prefix=$out
+
+    mk_add_options MOZ_MAKE_FLAGS="-j$NIX_BUILD_CORES"
+    '
+  '';
+
+  buildPhase = "$src/mach build";
+
+  installPhase = ''
+    $src/mach install
+
+    mkdir -p $out/share/applications
+    cp ${desktopItem}/share/applications/* $out/share/applications
+
+    for n in 16 32 48; do
+      size=$n"x"$n
+      mkdir -p $out/share/icons/hicolor/$size/apps
+      cp $src/webbrowser/branding/unofficial/default$n.png \
+         $out/share/icons/hicolor/$size/apps/webbrowser.png
+    done
+
+    # Needed to make videos work
+    wrapProgram $out/lib/webbrowser-${version}/webbrowser \
+      --prefix LD_LIBRARY_PATH : "${libPath}"
+  '';
+
+  meta = with lib; {
+    description = "Generic web browser without trackers compatible with XUL plugins using UXP rendering engine";
+    homepage    = "https://git.nuegia.net/webbrowser.git/";
+    license     = [ licenses.mpl20 licenses.gpl3 ];
+    maintainers = with maintainers; [ TheBrainScrambler ];
+    platforms   = [ "i686-linux" "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/c14/default.nix b/nixpkgs/pkgs/applications/networking/c14/default.nix
index 98d2f4aa81d6..afd9aa53ac65 100644
--- a/nixpkgs/pkgs/applications/networking/c14/default.nix
+++ b/nixpkgs/pkgs/applications/networking/c14/default.nix
@@ -13,8 +13,6 @@ buildGoPackage rec {
     sha256 = "0b1piviy6vvdbak8y8bc24rk3c1fi67vv3352pmnzvrhsar2r5yf";
   };
 
-  goDeps = ./deps.nix;
-
   meta = with stdenv.lib; {
     description = "C14 is designed for data archiving & long-term backups.";
     homepage = "https://www.online.net/en/storage/c14-cold-storage";
diff --git a/nixpkgs/pkgs/applications/networking/c14/deps.nix b/nixpkgs/pkgs/applications/networking/c14/deps.nix
deleted file mode 100644
index fe51488c7066..000000000000
--- a/nixpkgs/pkgs/applications/networking/c14/deps.nix
+++ /dev/null
@@ -1 +0,0 @@
-[]
diff --git a/nixpkgs/pkgs/applications/networking/cawbird/default.nix b/nixpkgs/pkgs/applications/networking/cawbird/default.nix
index 2ff9e5581b0a..bd927d2b68e3 100644
--- a/nixpkgs/pkgs/applications/networking/cawbird/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cawbird/default.nix
@@ -16,18 +16,19 @@
 , wrapGAppsHook
 , gobject-introspection
 , glib-networking
+, librest
 , python3
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.1.0";
+  version = "1.2.1";
   pname = "cawbird";
 
   src = fetchFromGitHub {
     owner = "IBBoard";
     repo = "cawbird";
     rev = "v${version}";
-    sha256 = "0zghryx5y47ff8kxa65lvgmy1cnhvhazxml7r1lxixxj3d88wh7p";
+    sha256 = "11s8x48syy5wjj23ab4bn5jxhi7l5sx7aw6q2ggk99v042hxh3h2";
   };
 
   nativeBuildInputs = [
@@ -50,6 +51,7 @@ stdenv.mkDerivation rec {
     dconf
     gspell
     glib-networking
+    librest
   ] ++ (with gst_all_1; [
     gstreamer
     gst-plugins-base
diff --git a/nixpkgs/pkgs/applications/networking/charles/default.nix b/nixpkgs/pkgs/applications/networking/charles/default.nix
index 11eb24ff7031..3dd9fe2c4f89 100644
--- a/nixpkgs/pkgs/applications/networking/charles/default.nix
+++ b/nixpkgs/pkgs/applications/networking/charles/default.nix
@@ -3,7 +3,7 @@ stdenv
 , makeWrapper
 , makeDesktopItem
 , fetchurl
-, jre
+, jdk8
 }:
 
 let
@@ -31,7 +31,7 @@ let
       buildInputs = [ makeWrapper ];
 
       installPhase = ''
-        makeWrapper ${jre}/bin/java $out/bin/charles \
+        makeWrapper ${jdk8.jre}/bin/java $out/bin/charles \
           --add-flags "-Xmx1024M -Dcharles.config='~/.charles.config' -jar $out/share/java/charles.jar"
 
         for fn in lib/*.jar; do
diff --git a/nixpkgs/pkgs/applications/networking/cloudflared/default.nix b/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
index aca523545adb..96767f63653e 100644
--- a/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cloudflared/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "cloudflared";
-  version = "2020.5.1";
+  version = "2020.6.1";
 
   src = fetchFromGitHub {
     owner  = "cloudflare";
     repo   = "cloudflared";
     rev    = version;
-    sha256 = "0r1n3a8h8gyww4p2amb24jmp8zkyxy1ava3nbqgwlfjr3zagga00";
+    sha256 = "09jdgpglm4v7pivx8016zzdvj0xkdhaa8xl71p2akc2jn8i8i6gb";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   buildFlagsArray = "-ldflags=-X main.Version=${version}";
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
index 3ef2412a9f5c..72c3955f90f3 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/argo/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, buildGoPackage, fetchFromGitHub, installShellFiles }:
 
 let
   # Argo can package a static server in the CLI using the `staticfiles` go module.
@@ -19,19 +19,23 @@ let
 in
 buildGoModule rec {
   pname = "argo";
-  version = "2.8.1";
+  version = "2.10.1";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo";
     rev = "v${version}";
-    sha256 = "193nxc27fh37wf035mclvwwwxjjfc8nnbncg009fg19ycqmvmgvc";
+    sha256 = "1k023rq4p0hvq5famxm83csp3zsijrki8myk6v83xyfigwxc8sia";
   };
 
-  vendorSha256 = "1p9b2m20gxc7iyq08mvllf5dpi4m06aw233sb45d05d624kw4aps";
+  vendorSha256 = "0fqdxs3r4249qxlc9cac0lpbqf2aifkcah07v0cckb9rxfyiwhjz";
+
+  doCheck = false;
 
   subPackages = [ "cmd/argo" ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
   preBuild = ''
     mkdir -p ui/dist/app
     echo "Built without static files" > ui/dist/app/index.html
@@ -48,6 +52,13 @@ buildGoModule rec {
       -X github.com/argoproj/argo.gitTag=${version}
   '';
 
+  postInstall = ''
+    for shell in bash zsh; do
+      $out/bin/argo completion $shell > argo.$shell
+      installShellCompletion argo.$shell
+    done
+  '';
+
   meta = with lib; {
     description = "Container native workflow engine for Kubernetes";
     homepage = "https://github.com/argoproj/argo";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
index 409498905051..505de3c08021 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/argocd/default.nix
@@ -14,6 +14,8 @@ buildGoModule rec {
 
   vendorSha256 = "0r2nh7v00m6zbdnhsgjn01q9pkiz41ckkqgfnpqmkxaqmjz31iyj";
 
+  doCheck = false;
+
   nativeBuildInputs = [ packr ];
 
   patches = [ ./use-go-module.patch ];
@@ -25,16 +27,16 @@ buildGoModule rec {
       -X github.com/argoproj/argo-cd/common.gitCommit=${commit}
       -X github.com/argoproj/argo-cd/common.gitTreeState=clean
   '';
- 
+
   # run packr to embed assets
   preBuild = ''
     packr
   '';
-  
+
   meta = with lib; {
     description = "Argo CD is a declarative, GitOps continuous delivery tool for Kubernetes";
     homepage = "https://github.com/argoproj/argo";
     license = licenses.asl20;
     maintainers = with maintainers; [ shahrukh330 ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix b/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix
index 0152f80afbf3..d3e18ce691f1 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/atlantis/default.nix
@@ -2,24 +2,25 @@
 
 buildGoModule rec {
   pname = "atlantis";
-  version = "0.13.0";
+  version = "0.15.0";
 
   src = fetchFromGitHub {
     owner = "runatlantis";
     repo = "atlantis";
     rev = "v${version}";
-    sha256 = "1ymixbix9sxhzmixqm9yjm9181aqnwnllqnswr0fq0nljw4018dn";
+    sha256 = "0nb0dm4yn6f5pw7clgb2d1khcwcxiidqyc0sdh38wwqg0zyil0cz";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   subPackages = [ "." ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/runatlantis/atlantis";
     description = "Terraform Pull Request Automation";
-    platforms = platforms.all;
     license = licenses.asl20;
     maintainers = with maintainers; [ jpotier ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/chronos/chronos-deps.nix b/nixpkgs/pkgs/applications/networking/cluster/chronos/chronos-deps.nix
deleted file mode 100644
index aac0dd10e15a..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/chronos/chronos-deps.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{stdenv, curl}:
-
-stdenv.mkDerivation {
-  name = "chronos-maven-deps";
-  builder = ./fetch-chronos-deps.sh;
-
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "0mm2sb1p5zz6b0z2s4zhdlix6fafydsxmqjy8zbkwzw4f6lazzyl";
-
-  nativeBuildInputs = [ curl ];
-
-  impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
-}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/chronos/default.nix b/nixpkgs/pkgs/applications/networking/cluster/chronos/default.nix
deleted file mode 100644
index e0cc780841bf..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/chronos/default.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{ stdenv, lib, makeWrapper, fetchgit, curl, jdk, maven, nodejs, mesos }:
-
-stdenv.mkDerivation rec {
-  pname = "chronos";
-  version = "286b2ccb8e4695f8e413406ceca85b60d3a87e22";
-
-  src = fetchgit {
-    url = "https://github.com/airbnb/chronos";
-    rev = version;
-    sha256 = "0hrln3ad2g2cq2xqmy5mq32cdxxb9vb6v6jp6kcq03f8km6v3g9c";
-  };
-
-  buildInputs = [ makeWrapper curl jdk maven nodejs mesos ];
-
-  mavenRepo = import ./chronos-deps.nix { inherit stdenv curl; };
-
-  buildPhase = ''
-    ln -s $mavenRepo .m2
-    mvn package -Dmaven.repo.local=$(pwd)/.m2
-  '';
-
-  installPhase = ''
-    mkdir -p $out/{bin,libexec/chronos}
-    cp target/chronos*.jar $out/libexec/chronos/${pname}-${version}.jar
-
-    makeWrapper ${jdk.jre}/bin/java $out/bin/chronos \
-      --add-flags "-Xmx384m -Xms384m -cp $out/libexec/chronos/${pname}-${version}.jar com.airbnb.scheduler.Main" \
-      --prefix "MESOS_NATIVE_LIBRARY" : "$MESOS_NATIVE_LIBRARY"
-  '';
-
-  meta = with lib; {
-    homepage    = "http://airbnb.github.io/chronos";
-    license     = licenses.asl20;
-    description = "Fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules";
-    maintainers = with maintainers; [ offline ];
-    platforms   = platforms.unix;
-    broken = true; # doesn't build https://hydra.nixos.org/build/25768319
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/chronos/fetch-chronos-deps.sh b/nixpkgs/pkgs/applications/networking/cluster/chronos/fetch-chronos-deps.sh
deleted file mode 100644
index 2e337076107d..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/chronos/fetch-chronos-deps.sh
+++ /dev/null
@@ -1,1672 +0,0 @@
-source $stdenv/setup
-header "fetching Chronos maven repo"
-
-function fetchArtifact {
-  repoPath="$1"
-  echo "fetching $repoPath"
-  mkdir -p $(dirname $out/$repoPath)
-  curl --fail --location --insecure --max-redirs 20 "http://repo.maven.apache.org/maven2/$repoPath" --output "$out/$repoPath" ||
-  curl --fail --location --insecure --max-redirs 20 "https://repository.apache.org/content/repositories/release/$repoPath" --output "$out/$repoPath" ||
-  curl --fail --location --insecure --max-redirs 20 "http://downloads.mesosphere.io/maven/$repoPath" --output "$out/$repoPath"
-}
-
-fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.pom.sha1
-fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.pom
-fetchArtifact commons-collections/commons-collections/2.0/commons-collections-2.0.pom
-fetchArtifact commons-collections/commons-collections/2.0/commons-collections-2.0.pom.sha1
-fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.pom.sha1
-fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.jar.sha1
-fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.pom
-fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.jar
-fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom.sha1
-fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar.sha1
-fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom
-fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
-fetchArtifact commons-collections/commons-collections/2.1/commons-collections-2.1.pom
-fetchArtifact commons-collections/commons-collections/2.1/commons-collections-2.1.pom.sha1
-fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.jar
-fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.pom.sha1
-fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.pom
-fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.jar.sha1
-fetchArtifact commons-io/commons-io/2.2/commons-io-2.2.pom
-fetchArtifact commons-io/commons-io/2.2/commons-io-2.2.jar
-fetchArtifact commons-io/commons-io/2.2/commons-io-2.2.jar.sha1
-fetchArtifact commons-io/commons-io/2.2/commons-io-2.2.pom.sha1
-fetchArtifact aopalliance/aopalliance/1.0/aopalliance-1.0.jar
-fetchArtifact aopalliance/aopalliance/1.0/aopalliance-1.0.pom.sha1
-fetchArtifact aopalliance/aopalliance/1.0/aopalliance-1.0.pom
-fetchArtifact aopalliance/aopalliance/1.0/aopalliance-1.0.jar.sha1
-fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.pom
-fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.jar.sha1
-fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.pom.sha1
-fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.jar
-fetchArtifact net/kencochrane/raven/raven-all/4.1.2/raven-all-4.1.2.pom
-fetchArtifact net/kencochrane/raven/raven-all/4.1.2/raven-all-4.1.2.pom.sha1
-fetchArtifact net/kencochrane/raven/raven/4.1.2/raven-4.1.2.jar
-fetchArtifact net/kencochrane/raven/raven/4.1.2/raven-4.1.2.pom
-fetchArtifact net/kencochrane/raven/raven/4.1.2/raven-4.1.2.jar.sha1
-fetchArtifact net/kencochrane/raven/raven/4.1.2/raven-4.1.2.pom.sha1
-fetchArtifact net/kencochrane/raven/raven-getsentry/4.1.2/raven-getsentry-4.1.2.jar.sha1
-fetchArtifact net/kencochrane/raven/raven-getsentry/4.1.2/raven-getsentry-4.1.2.jar
-fetchArtifact net/kencochrane/raven/raven-getsentry/4.1.2/raven-getsentry-4.1.2.pom.sha1
-fetchArtifact net/kencochrane/raven/raven-getsentry/4.1.2/raven-getsentry-4.1.2.pom
-fetchArtifact net/liftweb/lift-markdown_2.11/2.6-M4/lift-markdown_2.11-2.6-M4.jar.sha1
-fetchArtifact net/liftweb/lift-markdown_2.11/2.6-M4/lift-markdown_2.11-2.6-M4.pom
-fetchArtifact net/liftweb/lift-markdown_2.11/2.6-M4/lift-markdown_2.11-2.6-M4.jar
-fetchArtifact net/liftweb/lift-markdown_2.11/2.6-M4/lift-markdown_2.11-2.6-M4.pom.sha1
-fetchArtifact net/java/jvnet-parent/4/jvnet-parent-4.pom
-fetchArtifact net/java/jvnet-parent/4/jvnet-parent-4.pom.sha1
-fetchArtifact net/java/jvnet-parent/1/jvnet-parent-1.pom
-fetchArtifact net/java/jvnet-parent/1/jvnet-parent-1.pom.sha1
-fetchArtifact net/java/jvnet-parent/3/jvnet-parent-3.pom.sha1
-fetchArtifact net/java/jvnet-parent/3/jvnet-parent-3.pom
-fetchArtifact net/alchim31/maven/scala-maven-plugin/3.1.0/scala-maven-plugin-3.1.0.jar.sha1
-fetchArtifact net/alchim31/maven/scala-maven-plugin/3.1.0/scala-maven-plugin-3.1.0.pom.sha1
-fetchArtifact net/alchim31/maven/scala-maven-plugin/3.1.0/scala-maven-plugin-3.1.0.pom
-fetchArtifact net/alchim31/maven/scala-maven-plugin/3.1.0/scala-maven-plugin-3.1.0.jar
-fetchArtifact net/jpountz/lz4/lz4/1.2.0/lz4-1.2.0.jar
-fetchArtifact net/jpountz/lz4/lz4/1.2.0/lz4-1.2.0.pom
-fetchArtifact net/jpountz/lz4/lz4/1.2.0/lz4-1.2.0.jar.sha1
-fetchArtifact net/jpountz/lz4/lz4/1.2.0/lz4-1.2.0.pom.sha1
-fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.pom
-fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.pom.sha1
-fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar.sha1
-fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom.sha1
-fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom
-fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar
-fetchArtifact xerces/xercesImpl/2.8.1/xercesImpl-2.8.1.pom.sha1
-fetchArtifact xerces/xercesImpl/2.8.1/xercesImpl-2.8.1.pom
-fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom.sha1
-fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom
-fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar
-fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar.sha1
-fetchArtifact io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.pom
-fetchArtifact io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.jar
-fetchArtifact io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.jar.sha1
-fetchArtifact io/dropwizard/metrics/metrics-core/3.1.0/metrics-core-3.1.0.pom.sha1
-fetchArtifact io/dropwizard/metrics/metrics-graphite/3.1.0/metrics-graphite-3.1.0.jar.sha1
-fetchArtifact io/dropwizard/metrics/metrics-graphite/3.1.0/metrics-graphite-3.1.0.jar
-fetchArtifact io/dropwizard/metrics/metrics-graphite/3.1.0/metrics-graphite-3.1.0.pom.sha1
-fetchArtifact io/dropwizard/metrics/metrics-graphite/3.1.0/metrics-graphite-3.1.0.pom
-fetchArtifact io/dropwizard/metrics/metrics-parent/3.1.0/metrics-parent-3.1.0.pom.sha1
-fetchArtifact io/dropwizard/metrics/metrics-parent/3.1.0/metrics-parent-3.1.0.pom
-fetchArtifact io/netty/netty/3.7.0.Final/netty-3.7.0.Final.jar.sha1
-fetchArtifact io/netty/netty/3.7.0.Final/netty-3.7.0.Final.pom
-fetchArtifact io/netty/netty/3.7.0.Final/netty-3.7.0.Final.jar
-fetchArtifact io/netty/netty/3.7.0.Final/netty-3.7.0.Final.pom.sha1
-fetchArtifact io/netty/netty/3.9.0.Final/netty-3.9.0.Final.pom.sha1
-fetchArtifact io/netty/netty/3.9.0.Final/netty-3.9.0.Final.jar
-fetchArtifact io/netty/netty/3.9.0.Final/netty-3.9.0.Final.pom
-fetchArtifact io/netty/netty/3.9.0.Final/netty-3.9.0.Final.jar.sha1
-fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.jar.sha1
-fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.pom.sha1
-fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.jar
-fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.pom
-fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.pom.sha1
-fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.jar.sha1
-fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.jar
-fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.pom
-fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.jar
-fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.pom.sha1
-fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.pom
-fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha1
-fetchArtifact log4j/log4j/1.2.12/log4j-1.2.12.pom
-fetchArtifact log4j/log4j/1.2.12/log4j-1.2.12.pom.sha1
-fetchArtifact log4j/log4j/1.2.16/log4j-1.2.16.jar.sha1
-fetchArtifact log4j/log4j/1.2.16/log4j-1.2.16.pom.sha1
-fetchArtifact log4j/log4j/1.2.16/log4j-1.2.16.jar
-fetchArtifact log4j/log4j/1.2.16/log4j-1.2.16.pom
-fetchArtifact log4j/log4j/1.2.17/log4j-1.2.17.pom.sha1
-fetchArtifact log4j/log4j/1.2.17/log4j-1.2.17.jar
-fetchArtifact log4j/log4j/1.2.17/log4j-1.2.17.jar.sha1
-fetchArtifact log4j/log4j/1.2.17/log4j-1.2.17.pom
-fetchArtifact commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom
-fetchArtifact commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom
-fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar
-fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar.sha1
-fetchArtifact commons-logging/commons-logging/1.0/commons-logging-1.0.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.0/commons-logging-1.0.pom
-fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom
-fetchArtifact commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom
-fetchArtifact commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom.sha1
-fetchArtifact com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.pom.sha1
-fetchArtifact com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar
-fetchArtifact com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar.sha1
-fetchArtifact com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.pom
-fetchArtifact com/google/inject/guice-parent/3.0/guice-parent-3.0.pom.sha1
-fetchArtifact com/google/inject/guice-parent/3.0/guice-parent-3.0.pom
-fetchArtifact com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.pom.sha1
-fetchArtifact com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.jar
-fetchArtifact com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.jar.sha1
-fetchArtifact com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.pom
-fetchArtifact com/google/inject/extensions/extensions-parent/3.0/extensions-parent-3.0.pom.sha1
-fetchArtifact com/google/inject/extensions/extensions-parent/3.0/extensions-parent-3.0.pom
-fetchArtifact com/google/inject/guice/3.0/guice-3.0.jar
-fetchArtifact com/google/inject/guice/3.0/guice-3.0.jar.sha1
-fetchArtifact com/google/inject/guice/3.0/guice-3.0.pom.sha1
-fetchArtifact com/google/inject/guice/3.0/guice-3.0.pom
-fetchArtifact com/google/google/1/google-1.pom
-fetchArtifact com/google/google/1/google-1.pom.sha1
-fetchArtifact com/google/google/5/google-5.pom.sha1
-fetchArtifact com/google/google/5/google-5.pom
-fetchArtifact com/google/collections/google-collections/1.0/google-collections-1.0.pom
-fetchArtifact com/google/collections/google-collections/1.0/google-collections-1.0.pom.sha1
-fetchArtifact com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.pom
-fetchArtifact com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar.sha1
-fetchArtifact com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.jar
-fetchArtifact com/google/code/findbugs/jsr305/2.0.1/jsr305-2.0.1.pom.sha1
-fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom.sha1
-fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom
-fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar.sha1
-fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar
-fetchArtifact com/google/guava/guava-parent/15.0/guava-parent-15.0.pom
-fetchArtifact com/google/guava/guava-parent/15.0/guava-parent-15.0.pom.sha1
-fetchArtifact com/google/guava/guava-parent/13.0.1/guava-parent-13.0.1.pom.sha1
-fetchArtifact com/google/guava/guava-parent/13.0.1/guava-parent-13.0.1.pom
-fetchArtifact com/google/guava/guava-parent/17.0/guava-parent-17.0.pom.sha1
-fetchArtifact com/google/guava/guava-parent/17.0/guava-parent-17.0.pom
-fetchArtifact com/google/guava/guava-parent/16.0.1/guava-parent-16.0.1.pom
-fetchArtifact com/google/guava/guava-parent/16.0.1/guava-parent-16.0.1.pom.sha1
-fetchArtifact com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom
-fetchArtifact com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom.sha1
-fetchArtifact com/google/guava/guava/15.0/guava-15.0.pom.sha1
-fetchArtifact com/google/guava/guava/15.0/guava-15.0.pom
-fetchArtifact com/google/guava/guava/13.0.1/guava-13.0.1.pom
-fetchArtifact com/google/guava/guava/13.0.1/guava-13.0.1.pom.sha1
-fetchArtifact com/google/guava/guava/17.0/guava-17.0.pom
-fetchArtifact com/google/guava/guava/17.0/guava-17.0.pom.sha1
-fetchArtifact com/google/guava/guava/16.0.1/guava-16.0.1.pom.sha1
-fetchArtifact com/google/guava/guava/16.0.1/guava-16.0.1.pom
-fetchArtifact com/google/guava/guava/16.0.1/guava-16.0.1.jar
-fetchArtifact com/google/guava/guava/16.0.1/guava-16.0.1.jar.sha1
-fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.jar.sha1
-fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.pom
-fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.jar
-fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.pom.sha1
-fetchArtifact com/github/spullara/mustache/java/compiler/0.8.12/compiler-0.8.12.pom
-fetchArtifact com/github/spullara/mustache/java/compiler/0.8.12/compiler-0.8.12.pom.sha1
-fetchArtifact com/github/spullara/mustache/java/compiler/0.8.12/compiler-0.8.12.jar
-fetchArtifact com/github/spullara/mustache/java/compiler/0.8.12/compiler-0.8.12.jar.sha1
-fetchArtifact com/github/spullara/mustache/java/mustache.java/0.8.12/mustache.java-0.8.12.pom
-fetchArtifact com/github/spullara/mustache/java/mustache.java/0.8.12/mustache.java-0.8.12.pom.sha1
-fetchArtifact com/codahale/metrics/metrics-servlets/3.0.2/metrics-servlets-3.0.2.jar
-fetchArtifact com/codahale/metrics/metrics-servlets/3.0.2/metrics-servlets-3.0.2.pom.sha1
-fetchArtifact com/codahale/metrics/metrics-servlets/3.0.2/metrics-servlets-3.0.2.jar.sha1
-fetchArtifact com/codahale/metrics/metrics-servlets/3.0.2/metrics-servlets-3.0.2.pom
-fetchArtifact com/codahale/metrics/metrics-annotation/3.0.2/metrics-annotation-3.0.2.jar.sha1
-fetchArtifact com/codahale/metrics/metrics-annotation/3.0.2/metrics-annotation-3.0.2.pom
-fetchArtifact com/codahale/metrics/metrics-annotation/3.0.2/metrics-annotation-3.0.2.pom.sha1
-fetchArtifact com/codahale/metrics/metrics-annotation/3.0.2/metrics-annotation-3.0.2.jar
-fetchArtifact com/codahale/metrics/metrics-jvm/3.0.2/metrics-jvm-3.0.2.pom
-fetchArtifact com/codahale/metrics/metrics-jvm/3.0.2/metrics-jvm-3.0.2.pom.sha1
-fetchArtifact com/codahale/metrics/metrics-jvm/3.0.2/metrics-jvm-3.0.2.jar.sha1
-fetchArtifact com/codahale/metrics/metrics-jvm/3.0.2/metrics-jvm-3.0.2.jar
-fetchArtifact com/codahale/metrics/metrics-json/3.0.2/metrics-json-3.0.2.jar.sha1
-fetchArtifact com/codahale/metrics/metrics-json/3.0.2/metrics-json-3.0.2.pom
-fetchArtifact com/codahale/metrics/metrics-json/3.0.2/metrics-json-3.0.2.jar
-fetchArtifact com/codahale/metrics/metrics-json/3.0.2/metrics-json-3.0.2.pom.sha1
-fetchArtifact com/codahale/metrics/metrics-jersey/3.0.2/metrics-jersey-3.0.2.pom.sha1
-fetchArtifact com/codahale/metrics/metrics-jersey/3.0.2/metrics-jersey-3.0.2.jar
-fetchArtifact com/codahale/metrics/metrics-jersey/3.0.2/metrics-jersey-3.0.2.jar.sha1
-fetchArtifact com/codahale/metrics/metrics-jersey/3.0.2/metrics-jersey-3.0.2.pom
-fetchArtifact com/codahale/metrics/metrics-jetty8/3.0.2/metrics-jetty8-3.0.2.pom.sha1
-fetchArtifact com/codahale/metrics/metrics-jetty8/3.0.2/metrics-jetty8-3.0.2.jar
-fetchArtifact com/codahale/metrics/metrics-jetty8/3.0.2/metrics-jetty8-3.0.2.jar.sha1
-fetchArtifact com/codahale/metrics/metrics-jetty8/3.0.2/metrics-jetty8-3.0.2.pom
-fetchArtifact com/codahale/metrics/metrics-healthchecks/3.0.2/metrics-healthchecks-3.0.2.jar.sha1
-fetchArtifact com/codahale/metrics/metrics-healthchecks/3.0.2/metrics-healthchecks-3.0.2.pom.sha1
-fetchArtifact com/codahale/metrics/metrics-healthchecks/3.0.2/metrics-healthchecks-3.0.2.jar
-fetchArtifact com/codahale/metrics/metrics-healthchecks/3.0.2/metrics-healthchecks-3.0.2.pom
-fetchArtifact com/codahale/metrics/metrics-parent/3.0.2/metrics-parent-3.0.2.pom.sha1
-fetchArtifact com/codahale/metrics/metrics-parent/3.0.2/metrics-parent-3.0.2.pom
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.4.1/jackson-jaxrs-base-2.4.1.pom
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.4.1/jackson-jaxrs-base-2.4.1.pom.sha1
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.4.1/jackson-jaxrs-base-2.4.1.jar
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.4.1/jackson-jaxrs-base-2.4.1.jar.sha1
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.4.1/jackson-jaxrs-json-provider-2.4.1.pom.sha1
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.4.1/jackson-jaxrs-json-provider-2.4.1.jar.sha1
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.4.1/jackson-jaxrs-json-provider-2.4.1.pom
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.4.1/jackson-jaxrs-json-provider-2.4.1.jar
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-providers/2.4.1/jackson-jaxrs-providers-2.4.1.pom.sha1
-fetchArtifact com/fasterxml/jackson/jaxrs/jackson-jaxrs-providers/2.4.1/jackson-jaxrs-providers-2.4.1.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.1/jackson-annotations-2.4.1.jar
-fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.1/jackson-annotations-2.4.1.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.1/jackson-annotations-2.4.1.pom.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.1/jackson-annotations-2.4.1.jar.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.0/jackson-annotations-2.4.0.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.4.0/jackson-annotations-2.4.0.pom.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.2.2/jackson-annotations-2.2.2.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-annotations/2.2.2/jackson-annotations-2.2.2.pom.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1/jackson-databind-2.4.1.pom.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1/jackson-databind-2.4.1.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1.1/jackson-databind-2.4.1.1.jar.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1.1/jackson-databind-2.4.1.1.jar
-fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1.1/jackson-databind-2.4.1.1.pom.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.4.1.1/jackson-databind-2.4.1.1.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.2.2/jackson-databind-2.2.2.pom.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-databind/2.2.2/jackson-databind-2.2.2.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-core/2.3.0/jackson-core-2.3.0.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-core/2.3.0/jackson-core-2.3.0.jar.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-core/2.3.0/jackson-core-2.3.0.pom.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-core/2.3.0/jackson-core-2.3.0.jar
-fetchArtifact com/fasterxml/jackson/core/jackson-core/2.4.1/jackson-core-2.4.1.pom.sha1
-fetchArtifact com/fasterxml/jackson/core/jackson-core/2.4.1/jackson-core-2.4.1.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-core/2.2.2/jackson-core-2.2.2.pom
-fetchArtifact com/fasterxml/jackson/core/jackson-core/2.2.2/jackson-core-2.2.2.pom.sha1
-fetchArtifact com/fasterxml/jackson/jackson-parent/2.4/jackson-parent-2.4.pom
-fetchArtifact com/fasterxml/jackson/jackson-parent/2.4/jackson-parent-2.4.pom.sha1
-fetchArtifact com/fasterxml/jackson/module/jackson-module-scala_2.11/2.4.1/jackson-module-scala_2.11-2.4.1.pom
-fetchArtifact com/fasterxml/jackson/module/jackson-module-scala_2.11/2.4.1/jackson-module-scala_2.11-2.4.1.jar
-fetchArtifact com/fasterxml/jackson/module/jackson-module-scala_2.11/2.4.1/jackson-module-scala_2.11-2.4.1.pom.sha1
-fetchArtifact com/fasterxml/jackson/module/jackson-module-scala_2.11/2.4.1/jackson-module-scala_2.11-2.4.1.jar.sha1
-fetchArtifact com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.4.1/jackson-module-jaxb-annotations-2.4.1.jar
-fetchArtifact com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.4.1/jackson-module-jaxb-annotations-2.4.1.pom.sha1
-fetchArtifact com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.4.1/jackson-module-jaxb-annotations-2.4.1.jar.sha1
-fetchArtifact com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.4.1/jackson-module-jaxb-annotations-2.4.1.pom
-fetchArtifact com/fasterxml/oss-parent/16/oss-parent-16.pom
-fetchArtifact com/fasterxml/oss-parent/16/oss-parent-16.pom.sha1
-fetchArtifact com/fasterxml/oss-parent/11/oss-parent-11.pom.sha1
-fetchArtifact com/fasterxml/oss-parent/11/oss-parent-11.pom
-fetchArtifact com/fasterxml/oss-parent/10/oss-parent-10.pom.sha1
-fetchArtifact com/fasterxml/oss-parent/10/oss-parent-10.pom
-fetchArtifact com/fasterxml/classmate/1.0.0/classmate-1.0.0.pom.sha1
-fetchArtifact com/fasterxml/classmate/1.0.0/classmate-1.0.0.jar
-fetchArtifact com/fasterxml/classmate/1.0.0/classmate-1.0.0.pom
-fetchArtifact com/fasterxml/classmate/1.0.0/classmate-1.0.0.jar.sha1
-fetchArtifact com/datastax/cassandra/cassandra-driver-core/2.1.0/cassandra-driver-core-2.1.0.jar
-fetchArtifact com/datastax/cassandra/cassandra-driver-core/2.1.0/cassandra-driver-core-2.1.0.pom.sha1
-fetchArtifact com/datastax/cassandra/cassandra-driver-core/2.1.0/cassandra-driver-core-2.1.0.pom
-fetchArtifact com/datastax/cassandra/cassandra-driver-core/2.1.0/cassandra-driver-core-2.1.0.jar.sha1
-fetchArtifact com/datastax/cassandra/cassandra-driver-parent/2.1.0/cassandra-driver-parent-2.1.0.pom.sha1
-fetchArtifact com/datastax/cassandra/cassandra-driver-parent/2.1.0/cassandra-driver-parent-2.1.0.pom
-fetchArtifact com/typesafe/sbt/compiler-interface/0.12.0/compiler-interface-0.12.0.pom.sha1
-fetchArtifact com/typesafe/sbt/compiler-interface/0.12.0/compiler-interface-0.12.0-sources.jar
-fetchArtifact com/typesafe/sbt/compiler-interface/0.12.0/compiler-interface-0.12.0.pom
-fetchArtifact com/typesafe/sbt/compiler-interface/0.12.0/compiler-interface-0.12.0-sources.jar.sha1
-fetchArtifact com/typesafe/sbt/sbt-interface/0.12.0/sbt-interface-0.12.0.jar.sha1
-fetchArtifact com/typesafe/sbt/sbt-interface/0.12.0/sbt-interface-0.12.0.jar
-fetchArtifact com/typesafe/sbt/sbt-interface/0.12.0/sbt-interface-0.12.0.pom
-fetchArtifact com/typesafe/sbt/sbt-interface/0.12.0/sbt-interface-0.12.0.pom.sha1
-fetchArtifact com/typesafe/sbt/incremental-compiler/0.12.0/incremental-compiler-0.12.0.jar.sha1
-fetchArtifact com/typesafe/sbt/incremental-compiler/0.12.0/incremental-compiler-0.12.0.pom.sha1
-fetchArtifact com/typesafe/sbt/incremental-compiler/0.12.0/incremental-compiler-0.12.0.jar
-fetchArtifact com/typesafe/sbt/incremental-compiler/0.12.0/incremental-compiler-0.12.0.pom
-fetchArtifact com/typesafe/config/1.2.1/config-1.2.1.pom.sha1
-fetchArtifact com/typesafe/config/1.2.1/config-1.2.1.jar.sha1
-fetchArtifact com/typesafe/config/1.2.1/config-1.2.1.pom
-fetchArtifact com/typesafe/config/1.2.1/config-1.2.1.jar
-fetchArtifact com/typesafe/zinc/zinc/0.1.0/zinc-0.1.0.jar
-fetchArtifact com/typesafe/zinc/zinc/0.1.0/zinc-0.1.0.pom.sha1
-fetchArtifact com/typesafe/zinc/zinc/0.1.0/zinc-0.1.0.pom
-fetchArtifact com/typesafe/zinc/zinc/0.1.0/zinc-0.1.0.jar.sha1
-fetchArtifact com/typesafe/akka/akka-actor_2.11/2.3.6/akka-actor_2.11-2.3.6.pom.sha1
-fetchArtifact com/typesafe/akka/akka-actor_2.11/2.3.6/akka-actor_2.11-2.3.6.jar.sha1
-fetchArtifact com/typesafe/akka/akka-actor_2.11/2.3.6/akka-actor_2.11-2.3.6.pom
-fetchArtifact com/typesafe/akka/akka-actor_2.11/2.3.6/akka-actor_2.11-2.3.6.jar
-fetchArtifact com/thoughtworks/paranamer/paranamer-parent/2.6/paranamer-parent-2.6.pom.sha1
-fetchArtifact com/thoughtworks/paranamer/paranamer-parent/2.6/paranamer-parent-2.6.pom
-fetchArtifact com/thoughtworks/paranamer/paranamer/2.6/paranamer-2.6.pom
-fetchArtifact com/thoughtworks/paranamer/paranamer/2.6/paranamer-2.6.jar.sha1
-fetchArtifact com/thoughtworks/paranamer/paranamer/2.6/paranamer-2.6.pom.sha1
-fetchArtifact com/thoughtworks/paranamer/paranamer/2.6/paranamer-2.6.jar
-fetchArtifact com/sun/jersey/jersey-server/1.18.1/jersey-server-1.18.1.pom
-fetchArtifact com/sun/jersey/jersey-server/1.18.1/jersey-server-1.18.1.jar.sha1
-fetchArtifact com/sun/jersey/jersey-server/1.18.1/jersey-server-1.18.1.pom.sha1
-fetchArtifact com/sun/jersey/jersey-server/1.18.1/jersey-server-1.18.1.jar
-fetchArtifact com/sun/jersey/jersey-server/1.17.1/jersey-server-1.17.1.pom.sha1
-fetchArtifact com/sun/jersey/jersey-server/1.17.1/jersey-server-1.17.1.pom
-fetchArtifact com/sun/jersey/jersey-servlet/1.18.1/jersey-servlet-1.18.1.jar.sha1
-fetchArtifact com/sun/jersey/jersey-servlet/1.18.1/jersey-servlet-1.18.1.jar
-fetchArtifact com/sun/jersey/jersey-servlet/1.18.1/jersey-servlet-1.18.1.pom
-fetchArtifact com/sun/jersey/jersey-servlet/1.18.1/jersey-servlet-1.18.1.pom.sha1
-fetchArtifact com/sun/jersey/jersey-core/1.18.1/jersey-core-1.18.1.pom.sha1
-fetchArtifact com/sun/jersey/jersey-core/1.18.1/jersey-core-1.18.1.jar
-fetchArtifact com/sun/jersey/jersey-core/1.18.1/jersey-core-1.18.1.pom
-fetchArtifact com/sun/jersey/jersey-core/1.18.1/jersey-core-1.18.1.jar.sha1
-fetchArtifact com/sun/jersey/jersey-core/1.17.1/jersey-core-1.17.1.pom
-fetchArtifact com/sun/jersey/jersey-core/1.17.1/jersey-core-1.17.1.pom.sha1
-fetchArtifact com/sun/jersey/jersey-project/1.18.1/jersey-project-1.18.1.pom.sha1
-fetchArtifact com/sun/jersey/jersey-project/1.18.1/jersey-project-1.18.1.pom
-fetchArtifact com/sun/jersey/jersey-project/1.17.1/jersey-project-1.17.1.pom.sha1
-fetchArtifact com/sun/jersey/jersey-project/1.17.1/jersey-project-1.17.1.pom
-fetchArtifact com/sun/jersey/contribs/jersey-guice/1.18.1/jersey-guice-1.18.1.pom.sha1
-fetchArtifact com/sun/jersey/contribs/jersey-guice/1.18.1/jersey-guice-1.18.1.jar.sha1
-fetchArtifact com/sun/jersey/contribs/jersey-guice/1.18.1/jersey-guice-1.18.1.jar
-fetchArtifact com/sun/jersey/contribs/jersey-guice/1.18.1/jersey-guice-1.18.1.pom
-fetchArtifact com/sun/jersey/contribs/jersey-contribs/1.18.1/jersey-contribs-1.18.1.pom
-fetchArtifact com/sun/jersey/contribs/jersey-contribs/1.18.1/jersey-contribs-1.18.1.pom.sha1
-fetchArtifact com/sun/mail/all/1.4.5/all-1.4.5.pom
-fetchArtifact com/sun/mail/all/1.4.5/all-1.4.5.pom.sha1
-fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.jar
-fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.pom
-fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.jar.sha1
-fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.pom.sha1
-fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom.sha1
-fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom
-fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar
-fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar.sha1
-fetchArtifact jgraph/jgraph/5.13.0.0/jgraph-5.13.0.0.jar
-fetchArtifact jgraph/jgraph/5.13.0.0/jgraph-5.13.0.0.pom
-fetchArtifact jgraph/jgraph/5.13.0.0/jgraph-5.13.0.0.pom.sha1
-fetchArtifact jgraph/jgraph/5.13.0.0/jgraph-5.13.0.0.jar.sha1
-fetchArtifact asm/asm-parent/3.3.1/asm-parent-3.3.1.pom
-fetchArtifact asm/asm-parent/3.3.1/asm-parent-3.3.1.pom.sha1
-fetchArtifact asm/asm-parent/3.1/asm-parent-3.1.pom.sha1
-fetchArtifact asm/asm-parent/3.1/asm-parent-3.1.pom
-fetchArtifact asm/asm/3.3.1/asm-3.3.1.pom
-fetchArtifact asm/asm/3.3.1/asm-3.3.1.jar
-fetchArtifact asm/asm/3.3.1/asm-3.3.1.pom.sha1
-fetchArtifact asm/asm/3.3.1/asm-3.3.1.jar.sha1
-fetchArtifact asm/asm/3.1/asm-3.1.pom.sha1
-fetchArtifact asm/asm/3.1/asm-3.1.pom
-fetchArtifact jline/jline/0.9.94/jline-0.9.94.pom
-fetchArtifact jline/jline/0.9.94/jline-0.9.94.pom.sha1
-fetchArtifact jline/jline/0.9.94/jline-0.9.94.jar.sha1
-fetchArtifact jline/jline/0.9.94/jline-0.9.94.jar
-fetchArtifact xml-apis/xml-apis/1.3.03/xml-apis-1.3.03.pom
-fetchArtifact xml-apis/xml-apis/1.3.03/xml-apis-1.3.03.pom.sha1
-fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.pom
-fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.pom.sha1
-fetchArtifact xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom
-fetchArtifact xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom.sha1
-fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom
-fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar
-fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar.sha1
-fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom.sha1
-fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.pom.sha1
-fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.jar
-fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.pom
-fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.jar.sha1
-fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.pom
-fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.pom.sha1
-fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.pom
-fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.pom.sha1
-fetchArtifact org/vafer/jdependency/0.9/jdependency-0.9.jar
-fetchArtifact org/vafer/jdependency/0.9/jdependency-0.9.jar.sha1
-fetchArtifact org/vafer/jdependency/0.9/jdependency-0.9.pom
-fetchArtifact org/vafer/jdependency/0.9/jdependency-0.9.pom.sha1
-fetchArtifact org/joda/joda-convert/1.7/joda-convert-1.7.jar.sha1
-fetchArtifact org/joda/joda-convert/1.7/joda-convert-1.7.jar
-fetchArtifact org/joda/joda-convert/1.7/joda-convert-1.7.pom
-fetchArtifact org/joda/joda-convert/1.7/joda-convert-1.7.pom.sha1
-fetchArtifact org/mockito/mockito-core/1.9.5/mockito-core-1.9.5.pom
-fetchArtifact org/mockito/mockito-core/1.9.5/mockito-core-1.9.5.jar.sha1
-fetchArtifact org/mockito/mockito-core/1.9.5/mockito-core-1.9.5.pom.sha1
-fetchArtifact org/mockito/mockito-core/1.9.5/mockito-core-1.9.5.jar
-fetchArtifact org/mockito/mockito-all/1.9.5/mockito-all-1.9.5.jar
-fetchArtifact org/mockito/mockito-all/1.9.5/mockito-all-1.9.5.pom.sha1
-fetchArtifact org/mockito/mockito-all/1.9.5/mockito-all-1.9.5.pom
-fetchArtifact org/mockito/mockito-all/1.9.5/mockito-all-1.9.5.jar.sha1
-fetchArtifact org/javabits/jgrapht/jgrapht-ext/0.9.1/jgrapht-ext-0.9.1.pom.sha1
-fetchArtifact org/javabits/jgrapht/jgrapht-ext/0.9.1/jgrapht-ext-0.9.1.jar
-fetchArtifact org/javabits/jgrapht/jgrapht-ext/0.9.1/jgrapht-ext-0.9.1.pom
-fetchArtifact org/javabits/jgrapht/jgrapht-ext/0.9.1/jgrapht-ext-0.9.1.jar.sha1
-fetchArtifact org/javabits/jgrapht/jgrapht-core/0.9.1/jgrapht-core-0.9.1.pom
-fetchArtifact org/javabits/jgrapht/jgrapht-core/0.9.1/jgrapht-core-0.9.1.jar
-fetchArtifact org/javabits/jgrapht/jgrapht-core/0.9.1/jgrapht-core-0.9.1.jar.sha1
-fetchArtifact org/javabits/jgrapht/jgrapht-core/0.9.1/jgrapht-core-0.9.1.pom.sha1
-fetchArtifact org/javabits/jgrapht/jgrapht/0.9.1/jgrapht-0.9.1.pom.sha1
-fetchArtifact org/javabits/jgrapht/jgrapht/0.9.1/jgrapht-0.9.1.pom
-fetchArtifact org/scala-lang/scala-compiler/2.11.2/scala-compiler-2.11.2.pom
-fetchArtifact org/scala-lang/scala-compiler/2.11.2/scala-compiler-2.11.2.jar.sha1
-fetchArtifact org/scala-lang/scala-compiler/2.11.2/scala-compiler-2.11.2.jar
-fetchArtifact org/scala-lang/scala-compiler/2.11.2/scala-compiler-2.11.2.pom.sha1
-fetchArtifact org/scala-lang/scala-compiler/2.11.0-RC3/scala-compiler-2.11.0-RC3.jar.sha1
-fetchArtifact org/scala-lang/scala-compiler/2.11.0-RC3/scala-compiler-2.11.0-RC3.jar
-fetchArtifact org/scala-lang/scala-compiler/2.11.0-RC3/scala-compiler-2.11.0-RC3.pom.sha1
-fetchArtifact org/scala-lang/scala-compiler/2.11.0-RC3/scala-compiler-2.11.0-RC3.pom
-fetchArtifact org/scala-lang/scala-compiler/2.9.2/scala-compiler-2.9.2.jar
-fetchArtifact org/scala-lang/scala-compiler/2.9.2/scala-compiler-2.9.2.pom.sha1
-fetchArtifact org/scala-lang/scala-compiler/2.9.2/scala-compiler-2.9.2.pom
-fetchArtifact org/scala-lang/scala-compiler/2.9.2/scala-compiler-2.9.2.jar.sha1
-fetchArtifact org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.jar.sha1
-fetchArtifact org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.jar
-fetchArtifact org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.pom
-fetchArtifact org/scala-lang/scala-library/2.11.1/scala-library-2.11.1.pom.sha1
-fetchArtifact org/scala-lang/scala-library/2.11.2/scala-library-2.11.2.pom.sha1
-fetchArtifact org/scala-lang/scala-library/2.11.2/scala-library-2.11.2.jar.sha1
-fetchArtifact org/scala-lang/scala-library/2.11.2/scala-library-2.11.2.pom
-fetchArtifact org/scala-lang/scala-library/2.11.2/scala-library-2.11.2.jar
-fetchArtifact org/scala-lang/scala-library/2.11.0-RC3/scala-library-2.11.0-RC3.pom
-fetchArtifact org/scala-lang/scala-library/2.11.0-RC3/scala-library-2.11.0-RC3.pom.sha1
-fetchArtifact org/scala-lang/scala-library/2.11.0-RC3/scala-library-2.11.0-RC3.jar
-fetchArtifact org/scala-lang/scala-library/2.11.0-RC3/scala-library-2.11.0-RC3.jar.sha1
-fetchArtifact org/scala-lang/scala-library/2.11.0/scala-library-2.11.0.pom
-fetchArtifact org/scala-lang/scala-library/2.11.0/scala-library-2.11.0.pom.sha1
-fetchArtifact org/scala-lang/scala-library/2.9.2/scala-library-2.9.2.pom.sha1
-fetchArtifact org/scala-lang/scala-library/2.9.2/scala-library-2.9.2.pom
-fetchArtifact org/scala-lang/scala-library/2.9.2/scala-library-2.9.2.jar.sha1
-fetchArtifact org/scala-lang/scala-library/2.9.2/scala-library-2.9.2.jar
-fetchArtifact org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.pom.sha1
-fetchArtifact org/scala-lang/scala-reflect/2.11.1/scala-reflect-2.11.1.pom
-fetchArtifact org/scala-lang/scala-reflect/2.11.2/scala-reflect-2.11.2.jar
-fetchArtifact org/scala-lang/scala-reflect/2.11.2/scala-reflect-2.11.2.jar.sha1
-fetchArtifact org/scala-lang/scala-reflect/2.11.2/scala-reflect-2.11.2.pom
-fetchArtifact org/scala-lang/scala-reflect/2.11.2/scala-reflect-2.11.2.pom.sha1
-fetchArtifact org/scala-lang/scala-reflect/2.11.0-RC3/scala-reflect-2.11.0-RC3.pom.sha1
-fetchArtifact org/scala-lang/scala-reflect/2.11.0-RC3/scala-reflect-2.11.0-RC3.jar.sha1
-fetchArtifact org/scala-lang/scala-reflect/2.11.0-RC3/scala-reflect-2.11.0-RC3.pom
-fetchArtifact org/scala-lang/scala-reflect/2.11.0-RC3/scala-reflect-2.11.0-RC3.jar
-fetchArtifact org/scala-lang/scala-reflect/2.11.0/scala-reflect-2.11.0.pom.sha1
-fetchArtifact org/scala-lang/scala-reflect/2.11.0/scala-reflect-2.11.0.pom
-fetchArtifact org/scala-lang/modules/scala-xml_2.11.0-RC3/1.0.1/scala-xml_2.11.0-RC3-1.0.1.pom
-fetchArtifact org/scala-lang/modules/scala-xml_2.11.0-RC3/1.0.1/scala-xml_2.11.0-RC3-1.0.1.pom.sha1
-fetchArtifact org/scala-lang/modules/scala-xml_2.11.0-RC3/1.0.1/scala-xml_2.11.0-RC3-1.0.1.jar
-fetchArtifact org/scala-lang/modules/scala-xml_2.11.0-RC3/1.0.1/scala-xml_2.11.0-RC3-1.0.1.jar.sha1
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11.0-RC3/1.0.1/scala-parser-combinators_2.11.0-RC3-1.0.1.jar.sha1
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11.0-RC3/1.0.1/scala-parser-combinators_2.11.0-RC3-1.0.1.jar
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11.0-RC3/1.0.1/scala-parser-combinators_2.11.0-RC3-1.0.1.pom
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11.0-RC3/1.0.1/scala-parser-combinators_2.11.0-RC3-1.0.1.pom.sha1
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.pom.sha1
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.pom
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.jar.sha1
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.1/scala-parser-combinators_2.11-1.0.1.jar
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.2/scala-parser-combinators_2.11-1.0.2.jar.sha1
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.2/scala-parser-combinators_2.11-1.0.2.jar
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.2/scala-parser-combinators_2.11-1.0.2.pom.sha1
-fetchArtifact org/scala-lang/modules/scala-parser-combinators_2.11/1.0.2/scala-parser-combinators_2.11-1.0.2.pom
-fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.1/scala-xml_2.11-1.0.1.jar.sha1
-fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.1/scala-xml_2.11-1.0.1.pom
-fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.1/scala-xml_2.11-1.0.1.jar
-fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.1/scala-xml_2.11-1.0.1.pom.sha1
-fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.pom.sha1
-fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.jar.sha1
-fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.pom
-fetchArtifact org/scala-lang/modules/scala-xml_2.11/1.0.2/scala-xml_2.11-1.0.2.jar
-fetchArtifact org/scala-sbt/test-interface/1.0/test-interface-1.0.jar.sha1
-fetchArtifact org/scala-sbt/test-interface/1.0/test-interface-1.0.pom.sha1
-fetchArtifact org/scala-sbt/test-interface/1.0/test-interface-1.0.pom
-fetchArtifact org/scala-sbt/test-interface/1.0/test-interface-1.0.jar
-fetchArtifact org/specs2/specs2_2.11.0-RC3/2.3.10/specs2_2.11.0-RC3-2.3.10.jar.sha1
-fetchArtifact org/specs2/specs2_2.11.0-RC3/2.3.10/specs2_2.11.0-RC3-2.3.10.pom.sha1
-fetchArtifact org/specs2/specs2_2.11.0-RC3/2.3.10/specs2_2.11.0-RC3-2.3.10.pom
-fetchArtifact org/specs2/specs2_2.11.0-RC3/2.3.10/specs2_2.11.0-RC3-2.3.10.jar
-fetchArtifact org/specs2/classycle/1.4.3/classycle-1.4.3.jar
-fetchArtifact org/specs2/classycle/1.4.3/classycle-1.4.3.pom
-fetchArtifact org/specs2/classycle/1.4.3/classycle-1.4.3.jar.sha1
-fetchArtifact org/specs2/classycle/1.4.3/classycle-1.4.3.pom.sha1
-fetchArtifact org/jdom/jdom/1.1/jdom-1.1.pom
-fetchArtifact org/jdom/jdom/1.1/jdom-1.1.jar
-fetchArtifact org/jdom/jdom/1.1/jdom-1.1.jar.sha1
-fetchArtifact org/jdom/jdom/1.1/jdom-1.1.pom.sha1
-fetchArtifact org/jboss/shrinkwrap/shrinkwrap-bom/1.0.1/shrinkwrap-bom-1.0.1.pom
-fetchArtifact org/jboss/shrinkwrap/shrinkwrap-bom/1.0.1/shrinkwrap-bom-1.0.1.pom.sha1
-fetchArtifact org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-bom/2.0.0-alpha-3/shrinkwrap-descriptors-bom-2.0.0-alpha-3.pom.sha1
-fetchArtifact org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-bom/2.0.0-alpha-3/shrinkwrap-descriptors-bom-2.0.0-alpha-3.pom
-fetchArtifact org/jboss/shrinkwrap/resolver/shrinkwrap-resolver-bom/1.0.0-beta-7/shrinkwrap-resolver-bom-1.0.0-beta-7.pom
-fetchArtifact org/jboss/shrinkwrap/resolver/shrinkwrap-resolver-bom/1.0.0-beta-7/shrinkwrap-resolver-bom-1.0.0-beta-7.pom.sha1
-fetchArtifact org/jboss/jboss-parent/9/jboss-parent-9.pom.sha1
-fetchArtifact org/jboss/jboss-parent/9/jboss-parent-9.pom
-fetchArtifact org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.pom
-fetchArtifact org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.jar
-fetchArtifact org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.jar.sha1
-fetchArtifact org/jboss/logging/jboss-logging/3.1.3.GA/jboss-logging-3.1.3.GA.pom.sha1
-fetchArtifact org/jboss/arquillian/arquillian-bom/1.0.2.Final/arquillian-bom-1.0.2.Final.pom
-fetchArtifact org/jboss/arquillian/arquillian-bom/1.0.2.Final/arquillian-bom-1.0.2.Final.pom.sha1
-fetchArtifact org/rogach/scallop_2.11/0.9.5/scallop_2.11-0.9.5.jar.sha1
-fetchArtifact org/rogach/scallop_2.11/0.9.5/scallop_2.11-0.9.5.pom
-fetchArtifact org/rogach/scallop_2.11/0.9.5/scallop_2.11-0.9.5.pom.sha1
-fetchArtifact org/rogach/scallop_2.11/0.9.5/scallop_2.11-0.9.5.jar
-fetchArtifact org/scalacheck/scalacheck_2.11.0-RC3/1.11.3/scalacheck_2.11.0-RC3-1.11.3.pom
-fetchArtifact org/scalacheck/scalacheck_2.11.0-RC3/1.11.3/scalacheck_2.11.0-RC3-1.11.3.jar.sha1
-fetchArtifact org/scalacheck/scalacheck_2.11.0-RC3/1.11.3/scalacheck_2.11.0-RC3-1.11.3.jar
-fetchArtifact org/scalacheck/scalacheck_2.11.0-RC3/1.11.3/scalacheck_2.11.0-RC3-1.11.3.pom.sha1
-fetchArtifact org/tinyjee/jgraphx/jgraphx/2.0.0.1/jgraphx-2.0.0.1.jar.sha1
-fetchArtifact org/tinyjee/jgraphx/jgraphx/2.0.0.1/jgraphx-2.0.0.1.pom
-fetchArtifact org/tinyjee/jgraphx/jgraphx/2.0.0.1/jgraphx-2.0.0.1.jar
-fetchArtifact org/tinyjee/jgraphx/jgraphx/2.0.0.1/jgraphx-2.0.0.1.pom.sha1
-fetchArtifact org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.jar
-fetchArtifact org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.pom
-fetchArtifact org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.jar.sha1
-fetchArtifact org/hibernate/hibernate-validator/5.1.2.Final/hibernate-validator-5.1.2.Final.pom.sha1
-fetchArtifact org/hibernate/hibernate-validator-parent/5.1.2.Final/hibernate-validator-parent-5.1.2.Final.pom.sha1
-fetchArtifact org/hibernate/hibernate-validator-parent/5.1.2.Final/hibernate-validator-parent-5.1.2.Final.pom
-fetchArtifact org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.pom.sha1
-fetchArtifact org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.pom
-fetchArtifact org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar
-fetchArtifact org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.pom
-fetchArtifact org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.pom.sha1
-fetchArtifact org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar.sha1
-fetchArtifact org/slf4j/slf4j-api/1.7.6/slf4j-api-1.7.6.pom
-fetchArtifact org/slf4j/slf4j-api/1.7.6/slf4j-api-1.7.6.pom.sha1
-fetchArtifact org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar
-fetchArtifact org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.pom
-fetchArtifact org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.pom.sha1
-fetchArtifact org/slf4j/slf4j-api/1.6.1/slf4j-api-1.6.1.jar.sha1
-fetchArtifact org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.jar.sha1
-fetchArtifact org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.pom.sha1
-fetchArtifact org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.pom
-fetchArtifact org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.jar
-fetchArtifact org/slf4j/slf4j-parent/1.7.5/slf4j-parent-1.7.5.pom
-fetchArtifact org/slf4j/slf4j-parent/1.7.5/slf4j-parent-1.7.5.pom.sha1
-fetchArtifact org/slf4j/slf4j-parent/1.7.7/slf4j-parent-1.7.7.pom
-fetchArtifact org/slf4j/slf4j-parent/1.7.7/slf4j-parent-1.7.7.pom.sha1
-fetchArtifact org/slf4j/slf4j-parent/1.7.6/slf4j-parent-1.7.6.pom.sha1
-fetchArtifact org/slf4j/slf4j-parent/1.7.6/slf4j-parent-1.7.6.pom
-fetchArtifact org/slf4j/slf4j-parent/1.6.1/slf4j-parent-1.6.1.pom
-fetchArtifact org/slf4j/slf4j-parent/1.6.1/slf4j-parent-1.6.1.pom.sha1
-fetchArtifact org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.jar
-fetchArtifact org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.pom
-fetchArtifact org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.jar.sha1
-fetchArtifact org/slf4j/slf4j-log4j12/1.7.7/slf4j-log4j12-1.7.7.pom.sha1
-fetchArtifact org/apache/xbean/xbean/3.4/xbean-3.4.pom.sha1
-fetchArtifact org/apache/xbean/xbean/3.4/xbean-3.4.pom
-fetchArtifact org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom.sha1
-fetchArtifact org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom
-fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar.sha1
-fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom.sha1
-fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar
-fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom
-fetchArtifact org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom.sha1
-fetchArtifact org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom
-fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.pom
-fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.jar.sha1
-fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.pom.sha1
-fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.jar
-fetchArtifact org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2.pom.sha1
-fetchArtifact org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2.pom
-fetchArtifact org/apache/httpcomponents/project/4.0/project-4.0.pom.sha1
-fetchArtifact org/apache/httpcomponents/project/4.0/project-4.0.pom
-fetchArtifact org/apache/httpcomponents/project/4.1/project-4.1.pom
-fetchArtifact org/apache/httpcomponents/project/4.1/project-4.1.pom.sha1
-fetchArtifact org/apache/ant/ant-launcher/1.8.2/ant-launcher-1.8.2.jar.sha1
-fetchArtifact org/apache/ant/ant-launcher/1.8.2/ant-launcher-1.8.2.jar
-fetchArtifact org/apache/ant/ant-launcher/1.8.2/ant-launcher-1.8.2.pom
-fetchArtifact org/apache/ant/ant-launcher/1.8.2/ant-launcher-1.8.2.pom.sha1
-fetchArtifact org/apache/ant/ant/1.8.2/ant-1.8.2.jar
-fetchArtifact org/apache/ant/ant/1.8.2/ant-1.8.2.pom.sha1
-fetchArtifact org/apache/ant/ant/1.8.2/ant-1.8.2.pom
-fetchArtifact org/apache/ant/ant/1.8.2/ant-1.8.2.jar.sha1
-fetchArtifact org/apache/ant/ant-parent/1.8.2/ant-parent-1.8.2.pom.sha1
-fetchArtifact org/apache/ant/ant-parent/1.8.2/ant-parent-1.8.2.pom
-fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.jar.sha1
-fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.pom.sha1
-fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.jar
-fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.pom
-fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.pom
-fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.6/maven-resources-plugin-2.6.jar
-fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.3/maven-shade-plugin-2.3.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.3/maven-shade-plugin-2.3.jar
-fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.3/maven-shade-plugin-2.3.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.3/maven-shade-plugin-2.3.pom
-fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.pom
-fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.3.2/maven-compiler-plugin-2.3.2.jar
-fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom
-fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar
-fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.pom
-fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.jar
-fetchArtifact org/apache/maven/plugins/maven-antrun-plugin/1.7/maven-antrun-plugin-1.7.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-antrun-plugin/1.7/maven-antrun-plugin-1.7.pom
-fetchArtifact org/apache/maven/plugins/maven-antrun-plugin/1.7/maven-antrun-plugin-1.7.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-antrun-plugin/1.7/maven-antrun-plugin-1.7.jar
-fetchArtifact org/apache/maven/plugins/maven-plugins/22/maven-plugins-22.pom
-fetchArtifact org/apache/maven/plugins/maven-plugins/22/maven-plugins-22.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-plugins/24/maven-plugins-24.pom
-fetchArtifact org/apache/maven/plugins/maven-plugins/24/maven-plugins-24.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom
-fetchArtifact org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-plugins/25/maven-plugins-25.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-plugins/25/maven-plugins-25.pom
-fetchArtifact org/apache/maven/plugins/maven-plugins/23/maven-plugins-23.pom
-fetchArtifact org/apache/maven/plugins/maven-plugins/23/maven-plugins-23.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-surefire-report-plugin/2.14.1/maven-surefire-report-plugin-2.14.1.pom
-fetchArtifact org/apache/maven/plugins/maven-surefire-report-plugin/2.14.1/maven-surefire-report-plugin-2.14.1.jar
-fetchArtifact org/apache/maven/plugins/maven-surefire-report-plugin/2.14.1/maven-surefire-report-plugin-2.14.1.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-surefire-report-plugin/2.14.1/maven-surefire-report-plugin-2.14.1.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.14.1/maven-surefire-plugin-2.14.1.jar
-fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.14.1/maven-surefire-plugin-2.14.1.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.14.1/maven-surefire-plugin-2.14.1.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.14.1/maven-surefire-plugin-2.14.1.pom
-fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom
-fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.pom
-fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.pom
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.jar
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/1.2/maven-dependency-tree-1.2.pom
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.pom
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-filtering/1.1/maven-filtering-1.1.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-filtering/1.1/maven-filtering-1.1.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-filtering/1.1/maven-filtering-1.1.pom
-fetchArtifact org/apache/maven/shared/maven-filtering/1.1/maven-filtering-1.1.jar
-fetchArtifact org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/9/maven-shared-components-9.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/9/maven-shared-components-9.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/17/maven-shared-components-17.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/17/maven-shared-components-17.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/12/maven-shared-components-12.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/12/maven-shared-components-12.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/11/maven-shared-components-11.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/11/maven-shared-components-11.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.jar
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.pom
-fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom
-fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar
-fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar.sha1
-fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar.sha1
-fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar
-fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.pom
-fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.jar
-fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.pom
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.pom
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar
-fetchArtifact org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.jar
-fetchArtifact org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.pom
-fetchArtifact org/apache/maven/shared/maven-shared-utils/0.4/maven-shared-utils-0.4.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.pom
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.pom
-fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom
-fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.5/maven-artifact-manager-2.0.5.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.5/maven-artifact-manager-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.10/maven-artifact-manager-2.0.10.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.10/maven-artifact-manager-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.11/maven-artifact-manager-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.11/maven-artifact-manager-2.0.11.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.jar
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/plugin-tools/maven-plugin-tools/3.2/maven-plugin-tools-3.2.pom
-fetchArtifact org/apache/maven/plugin-tools/maven-plugin-tools/3.2/maven-plugin-tools-3.2.pom.sha1
-fetchArtifact org/apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.pom.sha1
-fetchArtifact org/apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.jar
-fetchArtifact org/apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.pom
-fetchArtifact org/apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.jar.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.jar
-fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.pom.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.pom
-fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.jar.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.5/maven-profile-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.5/maven-profile-2.0.5.pom
-fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.pom
-fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom
-fetchArtifact org/apache/maven/maven-profile/2.0.10/maven-profile-2.0.10.pom
-fetchArtifact org/apache/maven/maven-profile/2.0.10/maven-profile-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom
-fetchArtifact org/apache/maven/maven-profile/2.0.11/maven-profile-2.0.11.pom
-fetchArtifact org/apache/maven/maven-profile/2.0.11/maven-profile-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.jar
-fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.pom
-fetchArtifact org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom
-fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.pom
-fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom
-fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.10/maven-project-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.10/maven-project-2.0.10.pom
-fetchArtifact org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom
-fetchArtifact org/apache/maven/maven-project/2.0.11/maven-project-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.11/maven-project-2.0.11.pom
-fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.pom
-fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.jar
-fetchArtifact org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom
-fetchArtifact org/apache/maven/maven-model/2.2.0/maven-model-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.2.0/maven-model-2.2.0.pom
-fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.pom
-fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom
-fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.10/maven-model-2.0.10.pom
-fetchArtifact org/apache/maven/maven-model/2.0.10/maven-model-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom
-fetchArtifact org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.11/maven-model-2.0.11.pom
-fetchArtifact org/apache/maven/maven-model/2.0.11/maven-model-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom
-fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.jar
-fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire/2.14.1/surefire-2.14.1.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire/2.14.1/surefire-2.14.1.pom
-fetchArtifact org/apache/maven/surefire/surefire-report-parser/2.14.1/surefire-report-parser-2.14.1.jar
-fetchArtifact org/apache/maven/surefire/surefire-report-parser/2.14.1/surefire-report-parser-2.14.1.jar.sha1
-fetchArtifact org/apache/maven/surefire/surefire-report-parser/2.14.1/surefire-report-parser-2.14.1.pom
-fetchArtifact org/apache/maven/surefire/surefire-report-parser/2.14.1/surefire-report-parser-2.14.1.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire-junit4/2.14.1/surefire-junit4-2.14.1.pom
-fetchArtifact org/apache/maven/surefire/surefire-junit4/2.14.1/surefire-junit4-2.14.1.jar.sha1
-fetchArtifact org/apache/maven/surefire/surefire-junit4/2.14.1/surefire-junit4-2.14.1.jar
-fetchArtifact org/apache/maven/surefire/surefire-junit4/2.14.1/surefire-junit4-2.14.1.pom.sha1
-fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.14.1/maven-surefire-common-2.14.1.jar.sha1
-fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.14.1/maven-surefire-common-2.14.1.pom
-fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.14.1/maven-surefire-common-2.14.1.pom.sha1
-fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.14.1/maven-surefire-common-2.14.1.jar
-fetchArtifact org/apache/maven/surefire/surefire-booter/2.14.1/surefire-booter-2.14.1.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire-booter/2.14.1/surefire-booter-2.14.1.jar
-fetchArtifact org/apache/maven/surefire/surefire-booter/2.14.1/surefire-booter-2.14.1.pom
-fetchArtifact org/apache/maven/surefire/surefire-booter/2.14.1/surefire-booter-2.14.1.jar.sha1
-fetchArtifact org/apache/maven/surefire/surefire-api/2.14.1/surefire-api-2.14.1.pom
-fetchArtifact org/apache/maven/surefire/surefire-api/2.14.1/surefire-api-2.14.1.jar
-fetchArtifact org/apache/maven/surefire/surefire-api/2.14.1/surefire-api-2.14.1.jar.sha1
-fetchArtifact org/apache/maven/surefire/surefire-api/2.14.1/surefire-api-2.14.1.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire-providers/2.14.1/surefire-providers-2.14.1.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire-providers/2.14.1/surefire-providers-2.14.1.pom
-fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.pom
-fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.5/maven-repository-metadata-2.0.5.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.5/maven-repository-metadata-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.2.0/maven-repository-metadata-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.2.0/maven-repository-metadata-2.2.0.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.10/maven-repository-metadata-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.10/maven-repository-metadata-2.0.10.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.11/maven-repository-metadata-2.0.11.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.11/maven-repository-metadata-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.jar
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.pom
-fetchArtifact org/apache/maven/maven/2.0.5/maven-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.5/maven-2.0.5.pom
-fetchArtifact org/apache/maven/maven/2.2.0/maven-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven/2.2.0/maven-2.2.0.pom
-fetchArtifact org/apache/maven/maven/3.0/maven-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven/3.0/maven-3.0.pom
-fetchArtifact org/apache/maven/maven/2.0.6/maven-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.6/maven-2.0.6.pom
-fetchArtifact org/apache/maven/maven/2.0.10/maven-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.10/maven-2.0.10.pom
-fetchArtifact org/apache/maven/maven/2.0.8/maven-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.8/maven-2.0.8.pom
-fetchArtifact org/apache/maven/maven/2.2.1/maven-2.2.1.pom
-fetchArtifact org/apache/maven/maven/2.2.1/maven-2.2.1.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.2/maven-2.0.2.pom
-fetchArtifact org/apache/maven/maven/2.0.2/maven-2.0.2.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.11/maven-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.11/maven-2.0.11.pom
-fetchArtifact org/apache/maven/maven/2.0.9/maven-2.0.9.pom
-fetchArtifact org/apache/maven/maven/2.0.9/maven-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.2.0/maven-artifact-2.2.0.pom
-fetchArtifact org/apache/maven/maven-artifact/2.2.0/maven-artifact-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.10/maven-artifact-2.0.10.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.10/maven-artifact-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom
-fetchArtifact org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom
-fetchArtifact org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.11/maven-artifact-2.0.11.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.11/maven-artifact-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.jar
-fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.5/maven-settings-2.0.5.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.5/maven-settings-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.2.0/maven-settings-2.2.0.pom
-fetchArtifact org/apache/maven/maven-settings/2.2.0/maven-settings-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.10/maven-settings-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.10/maven-settings-2.0.10.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.11/maven-settings-2.0.11.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.11/maven-settings-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.jar
-fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.pom
-fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.pom
-fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.10/maven-plugin-registry-2.0.10.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.10/maven-plugin-registry-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.11/maven-plugin-registry-2.0.11.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.11/maven-plugin-registry-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.jar
-fetchArtifact org/apache/maven/maven-parent/7/maven-parent-7.pom
-fetchArtifact org/apache/maven/maven-parent/7/maven-parent-7.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/4/maven-parent-4.pom
-fetchArtifact org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/16/maven-parent-16.pom
-fetchArtifact org/apache/maven/maven-parent/16/maven-parent-16.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/22/maven-parent-22.pom
-fetchArtifact org/apache/maven/maven-parent/22/maven-parent-22.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/9/maven-parent-9.pom
-fetchArtifact org/apache/maven/maven-parent/9/maven-parent-9.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/24/maven-parent-24.pom
-fetchArtifact org/apache/maven/maven-parent/24/maven-parent-24.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/13/maven-parent-13.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/13/maven-parent-13.pom
-fetchArtifact org/apache/maven/maven-parent/5/maven-parent-5.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/5/maven-parent-5.pom
-fetchArtifact org/apache/maven/maven-parent/6/maven-parent-6.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/6/maven-parent-6.pom
-fetchArtifact org/apache/maven/maven-parent/21/maven-parent-21.pom
-fetchArtifact org/apache/maven/maven-parent/21/maven-parent-21.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/12/maven-parent-12.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/12/maven-parent-12.pom
-fetchArtifact org/apache/maven/maven-parent/23/maven-parent-23.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/23/maven-parent-23.pom
-fetchArtifact org/apache/maven/maven-parent/8/maven-parent-8.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/8/maven-parent-8.pom
-fetchArtifact org/apache/maven/maven-parent/15/maven-parent-15.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/15/maven-parent-15.pom
-fetchArtifact org/apache/maven/maven-parent/11/maven-parent-11.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/11/maven-parent-11.pom
-fetchArtifact org/apache/maven/maven-parent/10/maven-parent-10.pom
-fetchArtifact org/apache/maven/maven-parent/10/maven-parent-10.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.pom
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-2/wagon-provider-api-1.0-beta-2.jar
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom
-fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-2/wagon-1.0-beta-2.pom
-fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom
-fetchArtifact org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom
-fetchArtifact org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.1/maven-reporting-impl-2.1.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.1/maven-reporting-impl-2.1.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.1/maven-reporting-impl-2.1.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.1/maven-reporting-impl-2.1.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.9/maven-reporting-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.9/maven-reporting-2.0.9.pom
-fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.pom
-fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.10/maven-plugin-api-2.0.10.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.10/maven-plugin-api-2.0.10.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.11/maven-plugin-api-2.0.11.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.11/maven-plugin-api-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.jar
-fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.pom
-fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.pom.sha1
-fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.pom
-fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.0/doxia-modules-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.0/doxia-modules-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.1.4/doxia-modules-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.1.4/doxia-modules-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.1.2/doxia-modules-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.1.2/doxia-modules-1.1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.4/doxia-decoration-model-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.4/doxia-decoration-model-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.4/doxia-decoration-model-1.1.4.jar
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.4/doxia-decoration-model-1.1.4.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.2/doxia-decoration-model-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.1.2/doxia-decoration-model-1.1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.4/doxia-module-fml-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.4/doxia-module-fml-1.1.4.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.4/doxia-module-fml-1.1.4.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.4/doxia-module-fml-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.2/doxia-module-fml-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.1.2/doxia-module-fml-1.1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.0/doxia-sitetools-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.0/doxia-sitetools-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.1.4/doxia-sitetools-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.1.4/doxia-sitetools-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.1.2/doxia-sitetools-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.1.2/doxia-sitetools-1.1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-core/1.1.4/doxia-core-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-core/1.1.4/doxia-core-1.1.4.jar
-fetchArtifact org/apache/maven/doxia/doxia-core/1.1.4/doxia-core-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia-core/1.1.4/doxia-core-1.1.4.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-core/1.1.2/doxia-core-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-core/1.1.2/doxia-core-1.1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.4/doxia-logging-api-1.1.4.jar
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.4/doxia-logging-api-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.4/doxia-logging-api-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.4/doxia-logging-api-1.1.4.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.2/doxia-logging-api-1.1.2.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.2/doxia-logging-api-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.2/doxia-logging-api-1.1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.1.2/doxia-logging-api-1.1.2.jar
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-10/doxia-sink-api-1.0-alpha-10.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-10/doxia-sink-api-1.0-alpha-10.pom
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.4/doxia-sink-api-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.4/doxia-sink-api-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.4/doxia-sink-api-1.1.4.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.4/doxia-sink-api-1.1.4.jar
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.2/doxia-sink-api-1.1.2.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.2/doxia-sink-api-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.2/doxia-sink-api-1.1.2.jar
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.1.2/doxia-sink-api-1.1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.4/doxia-module-xhtml-1.1.4.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.4/doxia-module-xhtml-1.1.4.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.4/doxia-module-xhtml-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.4/doxia-module-xhtml-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.2/doxia-module-xhtml-1.1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.1.2/doxia-module-xhtml-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.0/doxia-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.0/doxia-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.1.4/doxia-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.1.4/doxia-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.1.2/doxia-1.1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.1.2/doxia-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.4/doxia-site-renderer-1.1.4.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.4/doxia-site-renderer-1.1.4.jar
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.4/doxia-site-renderer-1.1.4.pom
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.4/doxia-site-renderer-1.1.4.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.2/doxia-site-renderer-1.1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.1.2/doxia-site-renderer-1.1.2.pom.sha1
-fetchArtifact org/apache/apache/7/apache-7.pom
-fetchArtifact org/apache/apache/7/apache-7.pom.sha1
-fetchArtifact org/apache/apache/4/apache-4.pom
-fetchArtifact org/apache/apache/4/apache-4.pom.sha1
-fetchArtifact org/apache/apache/1/apache-1.pom
-fetchArtifact org/apache/apache/1/apache-1.pom.sha1
-fetchArtifact org/apache/apache/9/apache-9.pom
-fetchArtifact org/apache/apache/9/apache-9.pom.sha1
-fetchArtifact org/apache/apache/14/apache-14.pom.sha1
-fetchArtifact org/apache/apache/14/apache-14.pom
-fetchArtifact org/apache/apache/13/apache-13.pom
-fetchArtifact org/apache/apache/13/apache-13.pom.sha1
-fetchArtifact org/apache/apache/3/apache-3.pom
-fetchArtifact org/apache/apache/3/apache-3.pom.sha1
-fetchArtifact org/apache/apache/5/apache-5.pom
-fetchArtifact org/apache/apache/5/apache-5.pom.sha1
-fetchArtifact org/apache/apache/6/apache-6.pom.sha1
-fetchArtifact org/apache/apache/6/apache-6.pom
-fetchArtifact org/apache/apache/11/apache-11.pom
-fetchArtifact org/apache/apache/11/apache-11.pom.sha1
-fetchArtifact org/apache/apache/10/apache-10.pom
-fetchArtifact org/apache/apache/10/apache-10.pom.sha1
-fetchArtifact org/apache/mesos/mesos/0.20.1/mesos-0.20.1.pom
-fetchArtifact org/apache/mesos/mesos/0.20.1/mesos-0.20.1.pom.sha1
-fetchArtifact org/apache/mesos/mesos/0.20.1/mesos-0.20.1.jar.sha1
-fetchArtifact org/apache/mesos/mesos/0.20.1/mesos-0.20.1.jar
-fetchArtifact org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.pom
-fetchArtifact org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.jar
-fetchArtifact org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.pom.sha1
-fetchArtifact org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.jar.sha1
-fetchArtifact org/apache/curator/apache-curator/2.6.0/apache-curator-2.6.0.pom
-fetchArtifact org/apache/curator/apache-curator/2.6.0/apache-curator-2.6.0.pom.sha1
-fetchArtifact org/apache/curator/curator-framework/2.6.0/curator-framework-2.6.0.pom.sha1
-fetchArtifact org/apache/curator/curator-framework/2.6.0/curator-framework-2.6.0.jar
-fetchArtifact org/apache/curator/curator-framework/2.6.0/curator-framework-2.6.0.pom
-fetchArtifact org/apache/curator/curator-framework/2.6.0/curator-framework-2.6.0.jar.sha1
-fetchArtifact org/apache/curator/curator-client/2.6.0/curator-client-2.6.0.jar
-fetchArtifact org/apache/curator/curator-client/2.6.0/curator-client-2.6.0.jar.sha1
-fetchArtifact org/apache/curator/curator-client/2.6.0/curator-client-2.6.0.pom.sha1
-fetchArtifact org/apache/curator/curator-client/2.6.0/curator-client-2.6.0.pom
-fetchArtifact org/apache/curator/curator-test/2.6.0/curator-test-2.6.0.pom.sha1
-fetchArtifact org/apache/curator/curator-test/2.6.0/curator-test-2.6.0.jar
-fetchArtifact org/apache/curator/curator-test/2.6.0/curator-test-2.6.0.pom
-fetchArtifact org/apache/curator/curator-test/2.6.0/curator-test-2.6.0.jar.sha1
-fetchArtifact org/apache/curator/curator-recipes/2.6.0/curator-recipes-2.6.0.jar.sha1
-fetchArtifact org/apache/curator/curator-recipes/2.6.0/curator-recipes-2.6.0.pom.sha1
-fetchArtifact org/apache/curator/curator-recipes/2.6.0/curator-recipes-2.6.0.pom
-fetchArtifact org/apache/curator/curator-recipes/2.6.0/curator-recipes-2.6.0.jar
-fetchArtifact org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.pom
-fetchArtifact org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.jar.sha1
-fetchArtifact org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.jar
-fetchArtifact org/apache/commons/commons-lang3/3.1/commons-lang3-3.1.pom.sha1
-fetchArtifact org/apache/commons/commons-math/2.2/commons-math-2.2.jar.sha1
-fetchArtifact org/apache/commons/commons-math/2.2/commons-math-2.2.pom
-fetchArtifact org/apache/commons/commons-math/2.2/commons-math-2.2.jar
-fetchArtifact org/apache/commons/commons-math/2.2/commons-math-2.2.pom.sha1
-fetchArtifact org/apache/commons/commons-email/1.3.2/commons-email-1.3.2.jar
-fetchArtifact org/apache/commons/commons-email/1.3.2/commons-email-1.3.2.jar.sha1
-fetchArtifact org/apache/commons/commons-email/1.3.2/commons-email-1.3.2.pom.sha1
-fetchArtifact org/apache/commons/commons-email/1.3.2/commons-email-1.3.2.pom
-fetchArtifact org/apache/commons/commons-exec/1.0.1/commons-exec-1.0.1.jar
-fetchArtifact org/apache/commons/commons-exec/1.0.1/commons-exec-1.0.1.pom.sha1
-fetchArtifact org/apache/commons/commons-exec/1.0.1/commons-exec-1.0.1.pom
-fetchArtifact org/apache/commons/commons-exec/1.0.1/commons-exec-1.0.1.jar.sha1
-fetchArtifact org/apache/commons/commons-parent/28/commons-parent-28.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/28/commons-parent-28.pom
-fetchArtifact org/apache/commons/commons-parent/7/commons-parent-7.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/7/commons-parent-7.pom
-fetchArtifact org/apache/commons/commons-parent/22/commons-parent-22.pom
-fetchArtifact org/apache/commons/commons-parent/22/commons-parent-22.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/9/commons-parent-9.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/9/commons-parent-9.pom
-fetchArtifact org/apache/commons/commons-parent/24/commons-parent-24.pom
-fetchArtifact org/apache/commons/commons-parent/24/commons-parent-24.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/17/commons-parent-17.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/17/commons-parent-17.pom
-fetchArtifact org/apache/commons/commons-parent/32/commons-parent-32.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/32/commons-parent-32.pom
-fetchArtifact org/apache/commons/commons-parent/5/commons-parent-5.pom
-fetchArtifact org/apache/commons/commons-parent/5/commons-parent-5.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/18/commons-parent-18.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/18/commons-parent-18.pom
-fetchArtifact org/apache/commons/commons-parent/11/commons-parent-11.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/11/commons-parent-11.pom
-fetchArtifact org/apache/commons/commons-math3/3.2/commons-math3-3.2.pom.sha1
-fetchArtifact org/apache/commons/commons-math3/3.2/commons-math3-3.2.jar.sha1
-fetchArtifact org/apache/commons/commons-math3/3.2/commons-math3-3.2.jar
-fetchArtifact org/apache/commons/commons-math3/3.2/commons-math3-3.2.pom
-fetchArtifact org/codehaus/jackson/jackson-mapper-asl/1.6.1/jackson-mapper-asl-1.6.1.pom
-fetchArtifact org/codehaus/jackson/jackson-mapper-asl/1.6.1/jackson-mapper-asl-1.6.1.jar
-fetchArtifact org/codehaus/jackson/jackson-mapper-asl/1.6.1/jackson-mapper-asl-1.6.1.pom.sha1
-fetchArtifact org/codehaus/jackson/jackson-mapper-asl/1.6.1/jackson-mapper-asl-1.6.1.jar.sha1
-fetchArtifact org/codehaus/jackson/jackson-core-asl/1.6.1/jackson-core-asl-1.6.1.jar
-fetchArtifact org/codehaus/jackson/jackson-core-asl/1.6.1/jackson-core-asl-1.6.1.pom.sha1
-fetchArtifact org/codehaus/jackson/jackson-core-asl/1.6.1/jackson-core-asl-1.6.1.pom
-fetchArtifact org/codehaus/jackson/jackson-core-asl/1.6.1/jackson-core-asl-1.6.1.jar.sha1
-fetchArtifact org/codehaus/codehaus-parent/4/codehaus-parent-4.pom
-fetchArtifact org/codehaus/codehaus-parent/4/codehaus-parent-4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.19/plexus-components-1.1.19.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.19/plexus-components-1.1.19.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.3/plexus-components-1.3.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.3/plexus-components-1.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.2/plexus-components-1.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.2/plexus-components-1.2.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.15/plexus-components-1.1.15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.15/plexus-components-1.1.15.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.5.4/plexus-containers-1.5.4.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.5.4/plexus-containers-1.5.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-20/plexus-container-default-1.0-alpha-20.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-20/plexus-container-default-1.0-alpha-20.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom
-fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.pom
-fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.8.1/plexus-compiler-javac-1.8.1.jar
-fetchArtifact org/codehaus/plexus/plexus-compilers/1.8.1/plexus-compilers-1.8.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compilers/1.8.1/plexus-compilers-1.8.1.pom
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.pom
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.jar
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.jar
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.pom
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.4/plexus-component-annotations-1.5.4.pom
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.4/plexus-component-annotations-1.5.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.jar
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.1/plexus-interpolation-1.1.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.10/plexus-utils-3.0.10.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.10/plexus-utils-3.0.10.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.7/plexus-utils-1.5.7.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.7/plexus-utils-1.5.7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.8.1/plexus-compiler-api-1.8.1.jar
-fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.8.1/plexus-compiler-api-1.8.1.pom
-fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.8.1/plexus-compiler-api-1.8.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.8.1/plexus-compiler-api-1.8.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.jar
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.pom
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.jar
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.pom
-fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom
-fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar
-fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.8.1/plexus-compiler-manager-1.8.1.jar
-fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.8.1/plexus-compiler-manager-1.8.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.8.1/plexus-compiler-manager-1.8.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.8.1/plexus-compiler-manager-1.8.1.pom
-fetchArtifact org/codehaus/plexus/plexus/2.0.5/plexus-2.0.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.5/plexus-2.0.5.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom
-fetchArtifact org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom
-fetchArtifact org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/3.3/plexus-3.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/3.3/plexus-3.3.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom
-fetchArtifact org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom
-fetchArtifact org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom
-fetchArtifact org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/3.2/plexus-3.2.pom
-fetchArtifact org/codehaus/plexus/plexus/3.2/plexus-3.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom
-fetchArtifact org/codehaus/plexus/plexus/3.0.1/plexus-3.0.1.pom
-fetchArtifact org/codehaus/plexus/plexus/3.0.1/plexus-3.0.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.3/plexus-2.0.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.3/plexus-2.0.3.pom
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.pom
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler/1.8.1/plexus-compiler-1.8.1.pom
-fetchArtifact org/codehaus/plexus/plexus-compiler/1.8.1/plexus-compiler-1.8.1.pom.sha1
-fetchArtifact org/parboiled/parboiled-java/1.1.4/parboiled-java-1.1.4.pom.sha1
-fetchArtifact org/parboiled/parboiled-java/1.1.4/parboiled-java-1.1.4.pom
-fetchArtifact org/parboiled/parboiled-java/1.1.4/parboiled-java-1.1.4.jar.sha1
-fetchArtifact org/parboiled/parboiled-java/1.1.4/parboiled-java-1.1.4.jar
-fetchArtifact org/parboiled/parboiled-core/1.1.4/parboiled-core-1.1.4.jar
-fetchArtifact org/parboiled/parboiled-core/1.1.4/parboiled-core-1.1.4.jar.sha1
-fetchArtifact org/parboiled/parboiled-core/1.1.4/parboiled-core-1.1.4.pom
-fetchArtifact org/parboiled/parboiled-core/1.1.4/parboiled-core-1.1.4.pom.sha1
-fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.pom.sha1
-fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.pom
-fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
-fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar.sha1
-fetchArtifact org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom.sha1
-fetchArtifact org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom
-fetchArtifact org/eclipse/jetty/jetty-server/8.1.11.v20130520/jetty-server-8.1.11.v20130520.pom
-fetchArtifact org/eclipse/jetty/jetty-server/8.1.11.v20130520/jetty-server-8.1.11.v20130520.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-server/8.1.15.v20140411/jetty-server-8.1.15.v20140411.jar
-fetchArtifact org/eclipse/jetty/jetty-server/8.1.15.v20140411/jetty-server-8.1.15.v20140411.pom
-fetchArtifact org/eclipse/jetty/jetty-server/8.1.15.v20140411/jetty-server-8.1.15.v20140411.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-server/8.1.15.v20140411/jetty-server-8.1.15.v20140411.jar.sha1
-fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.11.v20130520/jetty-continuation-8.1.11.v20130520.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.11.v20130520/jetty-continuation-8.1.11.v20130520.pom
-fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.15.v20140411/jetty-continuation-8.1.15.v20140411.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.15.v20140411/jetty-continuation-8.1.15.v20140411.pom
-fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.15.v20140411/jetty-continuation-8.1.15.v20140411.jar
-fetchArtifact org/eclipse/jetty/jetty-continuation/8.1.15.v20140411/jetty-continuation-8.1.15.v20140411.jar.sha1
-fetchArtifact org/eclipse/jetty/jetty-security/8.1.15.v20140411/jetty-security-8.1.15.v20140411.jar
-fetchArtifact org/eclipse/jetty/jetty-security/8.1.15.v20140411/jetty-security-8.1.15.v20140411.jar.sha1
-fetchArtifact org/eclipse/jetty/jetty-security/8.1.15.v20140411/jetty-security-8.1.15.v20140411.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-security/8.1.15.v20140411/jetty-security-8.1.15.v20140411.pom
-fetchArtifact org/eclipse/jetty/jetty-util/8.1.11.v20130520/jetty-util-8.1.11.v20130520.pom
-fetchArtifact org/eclipse/jetty/jetty-util/8.1.11.v20130520/jetty-util-8.1.11.v20130520.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-util/8.1.15.v20140411/jetty-util-8.1.15.v20140411.jar.sha1
-fetchArtifact org/eclipse/jetty/jetty-util/8.1.15.v20140411/jetty-util-8.1.15.v20140411.pom
-fetchArtifact org/eclipse/jetty/jetty-util/8.1.15.v20140411/jetty-util-8.1.15.v20140411.jar
-fetchArtifact org/eclipse/jetty/jetty-util/8.1.15.v20140411/jetty-util-8.1.15.v20140411.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-project/8.1.11.v20130520/jetty-project-8.1.11.v20130520.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-project/8.1.11.v20130520/jetty-project-8.1.11.v20130520.pom
-fetchArtifact org/eclipse/jetty/jetty-project/8.1.15.v20140411/jetty-project-8.1.15.v20140411.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-project/8.1.15.v20140411/jetty-project-8.1.15.v20140411.pom
-fetchArtifact org/eclipse/jetty/jetty-http/8.1.11.v20130520/jetty-http-8.1.11.v20130520.pom
-fetchArtifact org/eclipse/jetty/jetty-http/8.1.11.v20130520/jetty-http-8.1.11.v20130520.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-http/8.1.15.v20140411/jetty-http-8.1.15.v20140411.jar.sha1
-fetchArtifact org/eclipse/jetty/jetty-http/8.1.15.v20140411/jetty-http-8.1.15.v20140411.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-http/8.1.15.v20140411/jetty-http-8.1.15.v20140411.jar
-fetchArtifact org/eclipse/jetty/jetty-http/8.1.15.v20140411/jetty-http-8.1.15.v20140411.pom
-fetchArtifact org/eclipse/jetty/jetty-parent/20/jetty-parent-20.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-parent/20/jetty-parent-20.pom
-fetchArtifact org/eclipse/jetty/jetty-parent/18/jetty-parent-18.pom
-fetchArtifact org/eclipse/jetty/jetty-parent/18/jetty-parent-18.pom.sha1
-fetchArtifact org/eclipse/jetty/orbit/jetty-orbit/1/jetty-orbit-1.pom
-fetchArtifact org/eclipse/jetty/orbit/jetty-orbit/1/jetty-orbit-1.pom.sha1
-fetchArtifact org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar
-fetchArtifact org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.pom.sha1
-fetchArtifact org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.jar.sha1
-fetchArtifact org/eclipse/jetty/orbit/javax.servlet/3.0.0.v201112011016/javax.servlet-3.0.0.v201112011016.pom
-fetchArtifact org/eclipse/jetty/jetty-servlet/8.1.15.v20140411/jetty-servlet-8.1.15.v20140411.pom
-fetchArtifact org/eclipse/jetty/jetty-servlet/8.1.15.v20140411/jetty-servlet-8.1.15.v20140411.jar
-fetchArtifact org/eclipse/jetty/jetty-servlet/8.1.15.v20140411/jetty-servlet-8.1.15.v20140411.jar.sha1
-fetchArtifact org/eclipse/jetty/jetty-servlet/8.1.15.v20140411/jetty-servlet-8.1.15.v20140411.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-io/8.1.11.v20130520/jetty-io-8.1.11.v20130520.pom
-fetchArtifact org/eclipse/jetty/jetty-io/8.1.11.v20130520/jetty-io-8.1.11.v20130520.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-io/8.1.15.v20140411/jetty-io-8.1.15.v20140411.pom
-fetchArtifact org/eclipse/jetty/jetty-io/8.1.15.v20140411/jetty-io-8.1.15.v20140411.pom.sha1
-fetchArtifact org/eclipse/jetty/jetty-io/8.1.15.v20140411/jetty-io-8.1.15.v20140411.jar
-fetchArtifact org/eclipse/jetty/jetty-io/8.1.15.v20140411/jetty-io-8.1.15.v20140411.jar.sha1
-fetchArtifact org/scalaz/scalaz-core_2.11.0-RC3/7.0.6/scalaz-core_2.11.0-RC3-7.0.6.pom.sha1
-fetchArtifact org/scalaz/scalaz-core_2.11.0-RC3/7.0.6/scalaz-core_2.11.0-RC3-7.0.6.pom
-fetchArtifact org/scalaz/scalaz-core_2.11.0-RC3/7.0.6/scalaz-core_2.11.0-RC3-7.0.6.jar
-fetchArtifact org/scalaz/scalaz-core_2.11.0-RC3/7.0.6/scalaz-core_2.11.0-RC3-7.0.6.jar.sha1
-fetchArtifact org/scalaz/scalaz-effect_2.11.0-RC3/7.0.6/scalaz-effect_2.11.0-RC3-7.0.6.jar.sha1
-fetchArtifact org/scalaz/scalaz-effect_2.11.0-RC3/7.0.6/scalaz-effect_2.11.0-RC3-7.0.6.pom.sha1
-fetchArtifact org/scalaz/scalaz-effect_2.11.0-RC3/7.0.6/scalaz-effect_2.11.0-RC3-7.0.6.jar
-fetchArtifact org/scalaz/scalaz-effect_2.11.0-RC3/7.0.6/scalaz-effect_2.11.0-RC3-7.0.6.pom
-fetchArtifact org/scalaz/scalaz-concurrent_2.11.0-RC3/7.0.6/scalaz-concurrent_2.11.0-RC3-7.0.6.jar
-fetchArtifact org/scalaz/scalaz-concurrent_2.11.0-RC3/7.0.6/scalaz-concurrent_2.11.0-RC3-7.0.6.pom
-fetchArtifact org/scalaz/scalaz-concurrent_2.11.0-RC3/7.0.6/scalaz-concurrent_2.11.0-RC3-7.0.6.jar.sha1
-fetchArtifact org/scalaz/scalaz-concurrent_2.11.0-RC3/7.0.6/scalaz-concurrent_2.11.0-RC3-7.0.6.pom.sha1
-fetchArtifact org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar
-fetchArtifact org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom
-fetchArtifact org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.pom.sha1
-fetchArtifact org/hamcrest/hamcrest-core/1.3/hamcrest-core-1.3.jar.sha1
-fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.pom
-fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.pom.sha1
-fetchArtifact org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom
-fetchArtifact org/hamcrest/hamcrest-parent/1.3/hamcrest-parent-1.3.pom.sha1
-fetchArtifact org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1.pom.sha1
-fetchArtifact org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1.pom
-fetchArtifact org/sonatype/oss/oss-parent/7/oss-parent-7.pom.sha1
-fetchArtifact org/sonatype/oss/oss-parent/7/oss-parent-7.pom
-fetchArtifact org/sonatype/oss/oss-parent/5/oss-parent-5.pom
-fetchArtifact org/sonatype/oss/oss-parent/5/oss-parent-5.pom.sha1
-fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.pom.sha1
-fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.pom
-fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
-fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar.sha1
-fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.pom.sha1
-fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.pom
-fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom.sha1
-fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom
-fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.pom.sha1
-fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.pom
-fetchArtifact org/sonatype/aether/aether-parent/1.7/aether-parent-1.7.pom
-fetchArtifact org/sonatype/aether/aether-parent/1.7/aether-parent-1.7.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom
-fetchArtifact org/sonatype/sisu/sisu-inject/1.4.2/sisu-inject-1.4.2.pom
-fetchArtifact org/sonatype/sisu/sisu-inject/1.4.2/sisu-inject-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/inject/guice-plexus/1.4.2/guice-plexus-1.4.2.pom
-fetchArtifact org/sonatype/sisu/inject/guice-plexus/1.4.2/guice-plexus-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/inject/guice-bean/1.4.2/guice-bean-1.4.2.pom
-fetchArtifact org/sonatype/sisu/inject/guice-bean/1.4.2/guice-bean-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.pom
-fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar.sha1
-fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
-fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7.pom
-fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar.sha1
-fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
-fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.pom
-fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.pom.sha1
-fetchArtifact org/sonatype/spice/spice-parent/16/spice-parent-16.pom
-fetchArtifact org/sonatype/spice/spice-parent/16/spice-parent-16.pom.sha1
-fetchArtifact org/sonatype/spice/spice-parent/17/spice-parent-17.pom.sha1
-fetchArtifact org/sonatype/spice/spice-parent/17/spice-parent-17.pom
-fetchArtifact org/sonatype/spice/spice-parent/12/spice-parent-12.pom
-fetchArtifact org/sonatype/spice/spice-parent/12/spice-parent-12.pom.sha1
-fetchArtifact org/sonatype/spice/spice-parent/10/spice-parent-10.pom.sha1
-fetchArtifact org/sonatype/spice/spice-parent/10/spice-parent-10.pom
-fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.jar
-fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.jar.sha1
-fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.pom
-fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.pom.sha1
-fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom.sha1
-fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
-fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom
-fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar.sha1
-fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom.sha1
-fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar.sha1
-fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
-fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom
-fetchArtifact org/sonatype/forge/forge-parent/4/forge-parent-4.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/4/forge-parent-4.pom
-fetchArtifact org/sonatype/forge/forge-parent/3/forge-parent-3.pom
-fetchArtifact org/sonatype/forge/forge-parent/3/forge-parent-3.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/5/forge-parent-5.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/5/forge-parent-5.pom
-fetchArtifact org/sonatype/forge/forge-parent/6/forge-parent-6.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/6/forge-parent-6.pom
-fetchArtifact org/sonatype/forge/forge-parent/10/forge-parent-10.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/10/forge-parent-10.pom
-fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.jar.sha1
-fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.pom.sha1
-fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.pom
-fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.jar
-fetchArtifact org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.pom
-fetchArtifact org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.pom.sha1
-fetchArtifact org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar.sha1
-fetchArtifact org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar
-fetchArtifact org/ow2/asm/asm-parent/5.0.2/asm-parent-5.0.2.pom.sha1
-fetchArtifact org/ow2/asm/asm-parent/5.0.2/asm-parent-5.0.2.pom
-fetchArtifact org/ow2/asm/asm-parent/4.1/asm-parent-4.1.pom
-fetchArtifact org/ow2/asm/asm-parent/4.1/asm-parent-4.1.pom.sha1
-fetchArtifact org/ow2/asm/asm-analysis/5.0.2/asm-analysis-5.0.2.jar
-fetchArtifact org/ow2/asm/asm-analysis/5.0.2/asm-analysis-5.0.2.pom.sha1
-fetchArtifact org/ow2/asm/asm-analysis/5.0.2/asm-analysis-5.0.2.pom
-fetchArtifact org/ow2/asm/asm-analysis/5.0.2/asm-analysis-5.0.2.jar.sha1
-fetchArtifact org/ow2/asm/asm-analysis/4.1/asm-analysis-4.1.pom
-fetchArtifact org/ow2/asm/asm-analysis/4.1/asm-analysis-4.1.jar
-fetchArtifact org/ow2/asm/asm-analysis/4.1/asm-analysis-4.1.pom.sha1
-fetchArtifact org/ow2/asm/asm-analysis/4.1/asm-analysis-4.1.jar.sha1
-fetchArtifact org/ow2/asm/asm/5.0.2/asm-5.0.2.jar.sha1
-fetchArtifact org/ow2/asm/asm/5.0.2/asm-5.0.2.pom.sha1
-fetchArtifact org/ow2/asm/asm/5.0.2/asm-5.0.2.pom
-fetchArtifact org/ow2/asm/asm/5.0.2/asm-5.0.2.jar
-fetchArtifact org/ow2/asm/asm/4.1/asm-4.1.jar.sha1
-fetchArtifact org/ow2/asm/asm/4.1/asm-4.1.pom.sha1
-fetchArtifact org/ow2/asm/asm/4.1/asm-4.1.pom
-fetchArtifact org/ow2/asm/asm/4.1/asm-4.1.jar
-fetchArtifact org/ow2/asm/asm-util/5.0.2/asm-util-5.0.2.pom
-fetchArtifact org/ow2/asm/asm-util/5.0.2/asm-util-5.0.2.jar
-fetchArtifact org/ow2/asm/asm-util/5.0.2/asm-util-5.0.2.pom.sha1
-fetchArtifact org/ow2/asm/asm-util/5.0.2/asm-util-5.0.2.jar.sha1
-fetchArtifact org/ow2/asm/asm-util/4.1/asm-util-4.1.jar
-fetchArtifact org/ow2/asm/asm-util/4.1/asm-util-4.1.pom
-fetchArtifact org/ow2/asm/asm-util/4.1/asm-util-4.1.pom.sha1
-fetchArtifact org/ow2/asm/asm-util/4.1/asm-util-4.1.jar.sha1
-fetchArtifact org/ow2/asm/asm-tree/5.0.2/asm-tree-5.0.2.jar
-fetchArtifact org/ow2/asm/asm-tree/5.0.2/asm-tree-5.0.2.jar.sha1
-fetchArtifact org/ow2/asm/asm-tree/5.0.2/asm-tree-5.0.2.pom
-fetchArtifact org/ow2/asm/asm-tree/5.0.2/asm-tree-5.0.2.pom.sha1
-fetchArtifact org/ow2/asm/asm-tree/4.1/asm-tree-4.1.jar
-fetchArtifact org/ow2/asm/asm-tree/4.1/asm-tree-4.1.pom.sha1
-fetchArtifact org/ow2/asm/asm-tree/4.1/asm-tree-4.1.jar.sha1
-fetchArtifact org/ow2/asm/asm-tree/4.1/asm-tree-4.1.pom
-fetchArtifact org/ow2/asm/asm-commons/5.0.2/asm-commons-5.0.2.pom
-fetchArtifact org/ow2/asm/asm-commons/5.0.2/asm-commons-5.0.2.jar
-fetchArtifact org/ow2/asm/asm-commons/5.0.2/asm-commons-5.0.2.jar.sha1
-fetchArtifact org/ow2/asm/asm-commons/5.0.2/asm-commons-5.0.2.pom.sha1
-fetchArtifact org/ow2/ow2/1.3/ow2-1.3.pom.sha1
-fetchArtifact org/ow2/ow2/1.3/ow2-1.3.pom
-fetchArtifact org/glassfish/web/javax.el/2.2.5/javax.el-2.2.5.jar.sha1
-fetchArtifact org/glassfish/web/javax.el/2.2.5/javax.el-2.2.5.jar
-fetchArtifact org/glassfish/web/javax.el/2.2.5/javax.el-2.2.5.pom
-fetchArtifact org/glassfish/web/javax.el/2.2.5/javax.el-2.2.5.pom.sha1
-fetchArtifact org/pegdown/pegdown/1.2.1/pegdown-1.2.1.jar.sha1
-fetchArtifact org/pegdown/pegdown/1.2.1/pegdown-1.2.1.pom
-fetchArtifact org/pegdown/pegdown/1.2.1/pegdown-1.2.1.pom.sha1
-fetchArtifact org/pegdown/pegdown/1.2.1/pegdown-1.2.1.jar
-fetchArtifact junit/junit/4.11/junit-4.11.jar
-fetchArtifact junit/junit/4.11/junit-4.11.pom
-fetchArtifact junit/junit/4.11/junit-4.11.jar.sha1
-fetchArtifact junit/junit/4.11/junit-4.11.pom.sha1
-fetchArtifact junit/junit/3.8.1/junit-3.8.1.pom
-fetchArtifact junit/junit/3.8.1/junit-3.8.1.jar
-fetchArtifact junit/junit/3.8.1/junit-3.8.1.jar.sha1
-fetchArtifact junit/junit/3.8.1/junit-3.8.1.pom.sha1
-fetchArtifact junit/junit/3.8.2/junit-3.8.2.pom
-fetchArtifact junit/junit/3.8.2/junit-3.8.2.pom.sha1
-fetchArtifact joda-time/joda-time/2.3/joda-time-2.3.pom
-fetchArtifact joda-time/joda-time/2.3/joda-time-2.3.jar.sha1
-fetchArtifact joda-time/joda-time/2.3/joda-time-2.3.jar
-fetchArtifact joda-time/joda-time/2.3/joda-time-2.3.pom.sha1
-fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar
-fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom.sha1
-fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom
-fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar.sha1
-fetchArtifact commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom
-fetchArtifact commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom.sha1
-fetchArtifact javax/inject/javax.inject/1/javax.inject-1.pom
-fetchArtifact javax/inject/javax.inject/1/javax.inject-1.jar
-fetchArtifact javax/inject/javax.inject/1/javax.inject-1.jar.sha1
-fetchArtifact javax/inject/javax.inject/1/javax.inject-1.pom.sha1
-fetchArtifact javax/el/javax.el-api/2.2.4/javax.el-api-2.2.4.pom.sha1
-fetchArtifact javax/el/javax.el-api/2.2.4/javax.el-api-2.2.4.jar.sha1
-fetchArtifact javax/el/javax.el-api/2.2.4/javax.el-api-2.2.4.jar
-fetchArtifact javax/el/javax.el-api/2.2.4/javax.el-api-2.2.4.pom
-fetchArtifact javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.pom
-fetchArtifact javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar.sha1
-fetchArtifact javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.pom.sha1
-fetchArtifact javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar
-fetchArtifact javax/mail/mail/1.4.5/mail-1.4.5.pom.sha1
-fetchArtifact javax/mail/mail/1.4.5/mail-1.4.5.jar
-fetchArtifact javax/mail/mail/1.4.5/mail-1.4.5.pom
-fetchArtifact javax/mail/mail/1.4.5/mail-1.4.5.jar.sha1
-fetchArtifact javax/activation/activation/1.1/activation-1.1.pom.sha1
-fetchArtifact javax/activation/activation/1.1/activation-1.1.pom
-fetchArtifact javax/activation/activation/1.1.1/activation-1.1.1.jar.sha1
-fetchArtifact javax/activation/activation/1.1.1/activation-1.1.1.pom
-fetchArtifact javax/activation/activation/1.1.1/activation-1.1.1.jar
-fetchArtifact javax/activation/activation/1.1.1/activation-1.1.1.pom.sha1
-fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar.sha1
-fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.pom.sha1
-fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar
-fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.pom
-fetchArtifact mesosphere/chaos_2.11/0.6.1/chaos_2.11-0.6.1.jar
-fetchArtifact mesosphere/chaos_2.11/0.6.1/chaos_2.11-0.6.1.pom
-fetchArtifact mesosphere/chaos_2.11/0.6.1/chaos_2.11-0.6.1.jar.sha1
-fetchArtifact mesosphere/chaos_2.11/0.6.1/chaos_2.11-0.6.1.pom.sha1
-fetchArtifact mesosphere/mesos-utils_2.11/0.20.1-1/mesos-utils_2.11-0.20.1-1.jar.sha1
-fetchArtifact mesosphere/mesos-utils_2.11/0.20.1-1/mesos-utils_2.11-0.20.1-1.pom
-fetchArtifact mesosphere/mesos-utils_2.11/0.20.1-1/mesos-utils_2.11-0.20.1-1.pom.sha1
-fetchArtifact mesosphere/mesos-utils_2.11/0.20.1-1/mesos-utils_2.11-0.20.1-1.jar
-fetchArtifact oro/oro/2.0.8/oro-2.0.8.pom
-fetchArtifact oro/oro/2.0.8/oro-2.0.8.jar.sha1
-fetchArtifact oro/oro/2.0.8/oro-2.0.8.pom.sha1
-fetchArtifact oro/oro/2.0.8/oro-2.0.8.jar
diff --git a/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix b/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix
index 49d3aaa298de..02f5fc18d13a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/cni/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "cni";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "containernetworking";
     repo = pname;
     rev = "v${version}";
-    sha256 = "02qn1br8164d99978acalisy1sx294g1axnii4yh1wji0fc735xz";
+    sha256 = "16i59dhiq7pc7qs32cdk4yv4w9rjx4vvlw7fb6a6jhq6hxxjrgiw";
   };
 
   goPackagePath = "github.com/containernetworking/cni";
@@ -18,6 +18,6 @@ buildGoPackage rec {
     license = licenses.asl20;
     homepage = "https://github.com/containernetworking/cni";
     maintainers = with maintainers; [ offline vdemeester ];
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" "aarch64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix b/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix
index 4aa15b218df7..fb7d2e2d6a5a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/cni/plugins.nix
@@ -2,19 +2,21 @@
 
 buildGoModule rec {
   pname = "cni-plugins";
-  version = "0.8.6";
+  version = "0.8.7";
 
   src = fetchFromGitHub {
     owner = "containernetworking";
     repo = "plugins";
     rev = "v${version}";
-    sha256 = "0f1cqxjf26sy1c4aw6y7pyd9lrz0vknby4q5j6xj77a1pab9073m";
+    sha256 = "1sjk0cghldygx1jgx4bqv83qky7shk64n6xkkfxl92f12wyvsq9j";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   buildFlagsArray = [
-    "-ldflags=-X github.com/containernetworking/plugins/pkg/utils/buildversion.BuildVersion=${version}"
+    "-ldflags=-X github.com/containernetworking/plugins/pkg/utils/buildversion.BuildVersion=v${version}"
   ];
 
   subPackages = [
@@ -36,7 +38,7 @@ buildGoModule rec {
     "plugins/meta/tuning"
   ];
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) cri-o podman; };
 
   meta = with lib; {
     description = "Some standard networking plugins, maintained by the CNI team";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix
index 0c5a716aa8a1..a9cdbf790774 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/hyperkit.nix
@@ -1,12 +1,12 @@
 { lib, buildGoModule, minikube }:
 
 buildGoModule rec {
-  inherit (minikube) version src nativeBuildInputs buildInputs vendorSha256 commit;
+  inherit (minikube) version src nativeBuildInputs buildInputs vendorSha256 doCheck;
 
   pname = "docker-machine-hyperkit";
 
   buildPhase = ''
-    make docker-machine-driver-hyperkit COMMIT=${commit}
+    make docker-machine-driver-hyperkit COMMIT=${src.rev}
   '';
 
   installPhase = ''
@@ -20,4 +20,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ atkinschang ];
     platforms = platforms.darwin;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
index 60d478fe1584..172370d25e93 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/docker-machine/kvm2.nix
@@ -1,7 +1,7 @@
 { lib, buildGoModule, minikube }:
 
 buildGoModule rec {
-  inherit (minikube) version src nativeBuildInputs buildInputs vendorSha256 commit;
+  inherit (minikube) version src nativeBuildInputs buildInputs vendorSha256 doCheck;
 
   pname = "docker-machine-kvm2";
 
@@ -10,7 +10,7 @@ buildGoModule rec {
   '';
 
   buildPhase = ''
-    make docker-machine-driver-kvm2 COMMIT=${commit}
+    make docker-machine-driver-kvm2 COMMIT=${src.rev}
   '';
 
   installPhase = ''
@@ -24,4 +24,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ tadfisher atkinschang ];
     platforms = platforms.linux;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix b/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix
index 3d418f9a47fb..f99c708161eb 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/flink/default.nix
@@ -8,8 +8,8 @@ let
       sha256 = "18wqcqi3gyqd40nspih99gq7ylfs20b35f4dcrspffagwkfp2l4z";
     };
     "1.6" = {
-      flinkVersion = "1.9.0";
-      sha256 = "1dzfcmqz5j4b545wq2q3xb2xkbhqllr04s3av1afv54y61l5y952";
+      flinkVersion = "1.11.1";
+      sha256 = "0338bg2sb427c1rrf2cmsz63sz0yk6gclpli2lskq0mpx72wxpl0";
     };
   };
 in
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ jre ];
 
   installPhase = ''
-    rm bin/*.bat
+    rm bin/*.bat || true
 
     mkdir -p $out/bin $out/opt/flink
     mv * $out/opt/flink/
diff --git a/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
index 4354d72a5bd9..44e21de0a039 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/fluxctl/default.nix
@@ -1,26 +1,37 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "fluxctl";
-  version = "1.19.0";
+  version = "1.20.2";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = "flux";
     rev = version;
-    sha256 = "1w6ndp0nrpps6pkxnq38hikbnzwahi6j9gn8l0bxd0qkf7cjc5w0";
+    sha256 = "1a44lmrvi5f9jr04rblhcsg3zvqzvdp9wyw4m4h4scsqp5g7dfb7";
   };
 
-  vendorSha256 = "0w5l1lkzx4frllflkbilj8qqwf54wkz7hin7q8xn1vflkv3lxcnp";
+  vendorSha256 = "1yzh6iglrzd43yqs1b6qh1i62b6qaz3232lgxyg3gmc81p0i5kr0";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  doCheck = false;
 
   subPackages = [ "cmd/fluxctl" ];
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
+  postInstall = ''
+    for shell in bash fish zsh; do
+      $out/bin/fluxctl completion $shell > fluxctl.$shell
+      installShellCompletion fluxctl.$shell
+    done
+  '';
+
   meta = with stdenv.lib; {
     description = "CLI client for Flux, the GitOps Kubernetes operator";
     homepage = "https://github.com/fluxcd/flux";
     license = licenses.asl20;
     maintainers = with maintainers; [ Gonzih filalex77 ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
index 5e51fe4267d4..3e24a3d06087 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helm/default.nix
@@ -2,15 +2,17 @@
 
 buildGoModule rec {
   pname = "helm";
-  version = "3.2.1";
+  version = "3.3.1";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = "helm";
     rev = "v${version}";
-    sha256 = "1453qkd9s4z4r0xzmv8ym7qfg33szf6gizfkb5zxj590fcbsgnd7";
+    sha256 = "0y3ilvafzwizd9zqvp8jijkkd1c2yy7zyl5xfma1zv2x96p7xgqh";
   };
-  vendorSha256 = null;
+  vendorSha256 = "0f8a0psvic923rh13f5041p7hr6w8dy9qxdw3l195yky5cf3fj6w";
+
+  doCheck = false;
 
   subPackages = [ "cmd/helm" ];
   buildFlagsArray = [ "-ldflags=-w -s -X helm.sh/helm/v3/internal/version.version=v${version}" ];
@@ -26,6 +28,6 @@ buildGoModule rec {
     homepage = "https://github.com/kubernetes/helm";
     description = "A package manager for kubernetes";
     license = licenses.asl20;
-    maintainers = with maintainers; [ rlupton20 edude03 saschagrunert Frostman ];
+    maintainers = with maintainers; [ rlupton20 edude03 saschagrunert Frostman Chili-Man ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
index 856fa51437e8..3b3794e95389 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helmfile/default.nix
@@ -1,28 +1,25 @@
-{ lib, buildGoModule, fetchFromGitHub, makeWrapper, kubernetes-helm, ... }:
+{ lib, buildGoModule, fetchFromGitHub, makeWrapper, kubernetes-helm }:
 
-let version = "0.118.6"; in
-
-buildGoModule {
+buildGoModule rec {
   pname = "helmfile";
-  inherit version;
+  version = "0.128.0";
 
   src = fetchFromGitHub {
     owner = "roboll";
     repo = "helmfile";
     rev = "v${version}";
-    sha256 = "0zbvz8kn52c1q4yn8n9z4rrf761h495fhjw72x9q1nh44hr7npwd";
+    sha256 = "1ihvjbh3v91wxny9jq0x9qi3s2zzdpg96w1vrhiim43nnv0ydg1y";
   };
 
-  goPackagePath = "github.com/roboll/helmfile";
+  vendorSha256 = "181iksfadjqrgsia8zy0zf5lr4h732s7hxjjfkr4gac586dlbj0w";
 
-  vendorSha256 = "0xj14f0yx7x9ziijd1yka1n6kbmmhbibsk3ppp8cn1pqrwgqk7pr";
+  doCheck = false;
 
   nativeBuildInputs = [ makeWrapper ];
 
-  buildFlagsArray = ''
-    -ldflags=
-    -X main.Version=${version}
-  '';
+  subPackages = [ "." ];
+
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/roboll/helmfile/pkg/app/version.Version=${version}" ];
 
   postInstall = ''
     wrapProgram $out/bin/helmfile \
@@ -36,4 +33,4 @@ buildGoModule {
     maintainers = with lib.maintainers; [ pneumaticat yurrriq ];
     platforms = lib.platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix b/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
index 5fb0b3658851..19c7234e11b4 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/helmsman/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "helmsman";
-  version = "3.4.3";
+  version = "3.4.4";
 
   src = fetchFromGitHub {
     owner = "Praqma";
     repo = "helmsman";
     rev = "v${version}";
-    sha256 = "0jbinnzdw32l7zh02k81gnw9rnqi8f5k5sp2qv8p9l9kgziaycvn";
+    sha256 = "01vjghak2szif0p82kall5jw7mbfh4fg7fcjkblmic7l0vlqhfac";
   };
 
   vendorSha256 = "05vnysr5r3hbayss1pyifgp989kjw81h95iack8ady62k6ys5njl";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Helm Charts (k8s applications) as Code tool";
     homepage = "https://github.com/Praqma/helmsman";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/heptio-ark/default.nix b/nixpkgs/pkgs/applications/networking/cluster/heptio-ark/default.nix
deleted file mode 100644
index aa86dcbeb241..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/heptio-ark/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage rec {
-  pname = "heptio-ark";
-  version = "0.10.0";
-
-  goPackagePath = "github.com/heptio/ark";
-
-  src = fetchFromGitHub {
-    rev = "v${version}";
-    owner = "heptio";
-    repo = "ark";
-    sha256 = "18h9hvp95va0hyl268gnzciwy1dqmc57bpifbj885870rdfp0ffv";
-  };
-
-  excludedPackages = [ "issue-template-gen" ];
-
-  meta = with stdenv.lib; {
-    description = "A utility for managing disaster recovery, specifically for your Kubernetes cluster resources and persistent volumes";
-    homepage = "https://heptio.github.io/ark/";
-    license = licenses.asl20;
-    maintainers = [maintainers.mbode];
-    platforms = platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix b/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix
index 98edd849bac5..7409d71fe8ff 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/hetzner-kube/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1jh2f66ys6rmrrwrf5zqfprgcvziyq6l4z8bfqwxgf1ysnxx525h";
 
+  doCheck = false;
+
   buildFlagsArray = ''
     -ldflags=
     -X github.com/xetys/hetzner-kube/cmd.version=${version}
@@ -25,4 +27,4 @@ buildGoModule rec {
     maintainers = with lib.maintainers; [ eliasp ];
     platforms = lib.platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
new file mode 100644
index 000000000000..59be45bb5368
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/istioctl/default.nix
@@ -0,0 +1,51 @@
+{ lib, buildGoModule, fetchFromGitHub, go-bindata, installShellFiles }:
+
+buildGoModule rec {
+  pname = "istioctl";
+  version = "1.7.0";
+
+  src = fetchFromGitHub {
+    owner = "istio";
+    repo = "istio";
+    rev = version;
+    sha256 = "0541j1wdhlbm2spl1w3m0hig7lqn05xk1xws8748wfzbr8wkir31";
+  };
+  vendorSha256 = "0sz92nspfclqxnx0mf80jxqqwxanqsx9nl9hg7f9izks7jw544vx";
+
+  doCheck = false;
+
+  nativeBuildInputs = [ go-bindata installShellFiles ];
+
+  # Bundle charts
+  preBuild = ''
+    patchShebangs operator/scripts
+    operator/scripts/create_assets_gen.sh
+  '';
+
+  # Bundle release metadata
+  buildFlagsArray = let
+    attrs = [
+      "istio.io/pkg/version.buildVersion=${version}"
+      "istio.io/pkg/version.buildStatus=Nix"
+      "istio.io/pkg/version.buildTag=${version}"
+      "istio.io/pkg/version.buildHub=docker.io/istio"
+    ];
+  in ["-ldflags=-s -w ${lib.concatMapStringsSep " " (attr: "-X ${attr}") attrs}"];
+
+  subPackages = [ "istioctl/cmd/istioctl" ];
+
+  postInstall = ''
+    $out/bin/istioctl collateral --man --bash --zsh
+    installManPage *.1
+    installShellCompletion istioctl.bash
+    installShellCompletion --zsh _istioctl
+  '';
+
+  meta = with lib; {
+    description = "Istio configuration command line utility for service operators to debug and diagnose their Istio mesh";
+    homepage = "https://istio.io/latest/docs/reference/commands/istioctl";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ veehaitch ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix b/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix
index 304a3c6fa289..5199bbfaf336 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/jx/default.nix
@@ -1,24 +1,37 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ buildGoModule, fetchFromGitHub, lib, installShellFiles }:
 
 buildGoModule rec {
   pname = "jx";
-  version = "2.1.65";
+  version = "2.1.138";
 
   src = fetchFromGitHub {
     owner = "jenkins-x";
     repo = "jx";
     rev = "v${version}";
-    sha256 = "0zkp0z5qpqw44bjnl20xna7s251k7jsxccqnqkdqqrzmqjpkkwgx";
+    sha256 = "1i45gzaql6rfplliky56lrzwjnm2qzv25kgyq7gvn9c7hjaaq65b";
   };
 
-  vendorSha256 = "0zi2n8fywzy87yfwcx7di74s8mx0468zmg6kwjln7mwhr6q23adf";
+  vendorSha256 = "1wvggarakshpw7m8h0x2zvd6bshd2kzbrjynfa113z90pgksvjng";
+
+  doCheck = false;
 
   subPackages = [ "cmd/jx" ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
   buildFlagsArray = ''
     -ldflags=
+    -s -w
     -X github.com/jenkins-x/jx/pkg/version.Version=${version}
-    -X github.com/jenkins-x/jx/pkg/version.Revision=${version}
+    -X github.com/jenkins-x/jx/pkg/version.Revision=${src.rev}
+    -X github.com/jenkins-x/jx/pkg/version.GitTreeState=clean
+  '';
+
+  postInstall = ''
+    for shell in bash zsh; do
+      $out/bin/jx completion $shell > jx.$shell
+      installShellCompletion jx.$shell
+    done
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
index eedc34d7d488..9b1170ca57e0 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k3s/default.nix
@@ -42,9 +42,10 @@ with lib;
 # Those pieces of software we entirely ignore upstream's handling of, and just
 # make sure they're in the path if desired.
 let
-  k3sVersion = "1.18.2+k3s1";     # k3s git tag
+  k3sVersion = "1.18.8+k3s1";     # k3s git tag
   traefikChartVersion = "1.81.0"; # taken from ./scripts/download at the above k3s tag
-  k3sRootVersion = "0.3.0";       # taken from .s/cripts/download at the above k3s tag
+  k3sRootVersion = "0.4.1";       # taken from ./scripts/download at the above k3s tag
+  k3sCNIVersion = "0.8.6-k3s1";   # taken from ./scripts/version.sh at the above k3s tag
   # bundled into the k3s binary
   traefikChart = fetchurl {
     url = "https://kubernetes-charts.storage.googleapis.com/traefik-${traefikChartVersion}.tgz";
@@ -62,12 +63,12 @@ let
   k3sRoot = fetchzip {
     # Note: marked as apache 2.0 license
     url = "https://github.com/rancher/k3s-root/releases/download/v${k3sRootVersion}/k3s-root-amd64.tar";
-    sha256 = "12xafn5jivl8lqdcs25b28xrc4mf7yf1xif5np169nvvxgvmpdxp";
+    sha256 = "0ppj8y9g410hn6mjkfgfsi2j9yv7rcpic21znpmbrkx8b2070hf0";
     stripRoot = false;
   };
   k3sPlugins = buildGoPackage rec {
     name = "k3s-cni-plugins";
-    version = "0.7.6-k3s1"; # from ./scripts/version.sh 'VERSION_CNIPLUGINS'; update when k3s's repo is updated.
+    version = k3sCNIVersion;
 
     goPackagePath = "github.com/containernetworking/plugins";
     subPackages = [ "." ];
@@ -76,7 +77,7 @@ let
       owner = "rancher";
       repo = "plugins";
       rev = "v${version}";
-      sha256 = "0ax72z1ziann352bp6khfds8vlf3bbkqckrkpx4l4jxgqks45izs";
+      sha256 = "13kx9msn5y9rw8v1p717wx0wbjqln59g6y3qfb1760aiwknva35q";
     };
 
     meta = {
@@ -93,7 +94,7 @@ let
     url = "https://github.com/rancher/k3s";
     rev = "v${k3sVersion}";
     leaveDotGit = true; # ./scripts/version.sh depends on git
-    sha256 = "01ww3d71mlri2fk6z54rbd697aqwj942kbg323k0hfsnx7flkhps";
+    sha256 = "17qsvbj1lvgxqdkxayyqnjwsjs3cx06nfv2hqvixjszn4vf30qlg";
   };
   # Stage 1 of the k3s build:
   # Let's talk about how k3s is structured.
diff --git a/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix b/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
index 4be3398f4be8..c365bf1e7a92 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/k9s/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "k9s";
-  version = "0.19.4";
+  version = "0.22.1";
 
   src = fetchFromGitHub {
     owner  = "derailed";
     repo   = "k9s";
     rev    = "v${version}";
-    sha256 = "1ya3lrw31pxd1rxzf88l5hzilaxwrng1a3ibawgn57my333hrmf6";
+    sha256 = "1qyibpvfbd8yahfmci431qd0zy4wwz03gwj1ak8rn3qxpv1cdbmk";
   };
 
   buildFlagsArray = ''
@@ -18,12 +18,14 @@ buildGoModule rec {
       -X github.com/derailed/k9s/cmd.commit=${src.rev}
   '';
 
-  vendorSha256 = "0vvzv5v7j77v809h2ial9n23244j1sy3xhkarsv0wwkifc3swvq5";
+  vendorSha256 = "1432ppgd3lc0h83i6vzklfhp95s2xwaf41mv4xfryzzszjfndmvl";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Kubernetes CLI To Manage Your Clusters In Style.";
     homepage = "https://github.com/derailed/k9s";
     license = licenses.asl20;
-    maintainers = with maintainers; [ Gonzih ];
+    maintainers = with maintainers; [ Gonzih markus1189 ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
index e34f7e8412d7..baf10e273fb7 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kops/default.nix
@@ -1,18 +1,18 @@
 { stdenv, lib, buildGoPackage, fetchFromGitHub, go-bindata, installShellFiles }:
-
 let
   goPackagePath = "k8s.io/kops";
 
-  generic = { version, sha256, ...}@attrs:
-    let attrs' = builtins.removeAttrs attrs ["version" "sha256"] ; in
-      buildGoPackage {
+  generic = { version, sha256, rev ? version, ... }@attrs:
+    let attrs' = builtins.removeAttrs attrs [ "version" "sha256" "rev" ]; in
+    buildGoPackage
+      {
         pname = "kops";
         inherit version;
 
         inherit goPackagePath;
 
         src = fetchFromGitHub {
-          rev = version;
+          rev = rev;
           owner = "kubernetes";
           repo = "kops";
           inherit sha256;
@@ -42,27 +42,30 @@ let
         meta = with stdenv.lib; {
           description = "Easiest way to get a production Kubernetes up and running";
           homepage = "https://github.com/kubernetes/kops";
+          changelog = "https://github.com/kubernetes/kops/tree/master/docs/releases";
           license = licenses.asl20;
           maintainers = with maintainers; [ offline zimbatm kampka ];
           platforms = platforms.unix;
         };
       } // attrs';
-in rec {
+in
+rec {
 
   mkKops = generic;
 
-  kops_1_15 = mkKops {
-    version = "1.15.3";
-    sha256 = "0pzgrsl61nw8pm3s032lj020fw13x3fpzlj7lknsnd581f0gg4df";
-  };
-
   kops_1_16 = mkKops {
-    version = "1.16.3";
-    sha256 = "01j7r89vim12wgb2dv6p2pib8wj2daain179cawlyb5kjyyb3jnq";
+    version = "1.16.4";
+    sha256 = "0qi80hzd5wc8vn3y0wsckd7pq09xcshpzvcr7rl5zd4akxb0wl3f";
   };
 
   kops_1_17 = mkKops {
-    version = "1.17.0";
-    sha256 = "175fi7pdzncqyv2gyaf96rn96zaywlyqrb6669n42faxilhyjbw7";
+    version = "1.17.2";
+    sha256 = "0fmrzjz163hda6sl1jkl7cmg8fw6mmqb9953048jnhmd3w428xlz";
+  };
+
+  kops_1_18 = mkKops rec {
+    version = "1.18.1";
+    sha256 = "0jw23vmq2v9czxyansggq4fapz1bcaclmxpw6na4dsn8zcssz320";
+    rev = "v${version}";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix
new file mode 100644
index 000000000000..c370d1227035
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kpt/default.nix
@@ -0,0 +1,25 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "kpt";
+  version = "0.33.0";
+
+  src = fetchFromGitHub {
+    owner = "GoogleContainerTools";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1lvfbpxxddm1pk4mb4sm0chw15dalsfyhgy86npz94xjf1jssyh8";
+  };
+
+  vendorSha256 = "1xkjgzy9z7v5z4kl1769dgrrr0ljr0fdxfdj7xbic9hl6nm94kif";
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "A toolkit to help you manage, manipulate, customize, and apply Kubernetes Resource configuration data files";
+    homepage = "https://googlecontainertools.github.io/kpt/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mikefaille ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
index cd946284fa77..d967c741fca6 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube-router/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "kube-router";
-  version = "0.4.0";
+  version = "1.0.1";
 
   goPackagePath = "github.com/cloudnativelabs/kube-router";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "cloudnativelabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1g1y3l87a4il9g2yrl1ryx8xfd4x220azxhr3rxm5l9vhnnjwswa";
+    sha256 = "00bypaccv8q9xdcz6vlvl1qxqxqssl21bs4nkd1a6q8b4jpl339z";
   };
 
   buildFlagsArray = ''
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
index c6ae0629d7c6..0c1f452ea5b4 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -1,28 +1,38 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "kube3d";
-  version = "1.7.0";
-  k3sVersion = "1.17.3-k3s1";
+  version = "3.0.1";
+  k3sVersion = "1.18.6-k3s1";
 
-  goPackagePath = "github.com/rancher/k3d";
+  excludedPackages = ''tools'';
 
   src = fetchFromGitHub {
     owner  = "rancher";
     repo   = "k3d";
     rev    = "v${version}";
-    sha256 = "0aij2l7zmg4cxbw7pwf7ddc64di25hpjvbmp1madhz9q28rwfa9w";
+    sha256 = "1l6mh0dpf2bw9sxpn14iivv3pr8mj4favzx2hhn8k1j71cm1w4rj";
   };
 
   buildFlagsArray = ''
     -ldflags=
       -w -s
-      -X github.com/rancher/k3d/version.Version=${version}
-      -X github.com/rancher/k3d/version.K3sVersion=v${k3sVersion}
+      -X github.com/rancher/k3d/v3/version.Version=v${version}
+      -X github.com/rancher/k3d/v3/version.K3sVersion=v${k3sVersion}
+  '';
+
+  nativeBuildInputs = [ installShellFiles ];
+  postInstall = ''
+   for shell in bash zsh; do
+     $out/bin/k3d completion $shell > k3d.$shell
+     installShellCompletion k3d.$shell
+   done
   '';
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/rancher/k3d";
     description = "A helper to run k3s (Lightweight Kubernetes. 5 less than k8s) in a docker container";
@@ -30,4 +40,4 @@ buildGoModule rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ kuznero jlesquembre ngerstle ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix
index 5b1f12452469..6f6c8dc338bf 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeless/default.nix
@@ -1,22 +1,31 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles }:
 
 buildGoPackage rec {
   pname = "kubeless";
-  version = "1.0.6";
+  version = "1.0.7";
 
   src = fetchFromGitHub {
     owner = "kubeless";
     repo = "kubeless";
     rev = "v${version}";
-    sha256 = "1fcdyd1jf0yibfx9jc16m0vmazm2jymps92llh3vh5zqd36bxbyd";
+    sha256 = "0x2hydywnnlh6arzz71p7gg9yzq5z2y2lppn1jszvkbgh11kkqfr";
   };
 
   goPackagePath = "github.com/kubeless/kubeless";
 
+  nativeBuildInputs = [ installShellFiles ];
+
   subPackages = [ "cmd/kubeless" ];
 
   buildFlagsArray = ''
-    -ldflags=-X github.com/kubeless/kubeless/pkg/version.Version=${version}
+    -ldflags=-s -w -X github.com/kubeless/kubeless/pkg/version.Version=${version}
+  '';
+
+  postInstall = ''
+    for shell in bash; do
+      $out/bin/kubeless completion $shell > kubeless.$shell
+      installShellCompletion kubeless.$shell
+    done
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
index d1dbac56a1ec..691effa39232 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -15,13 +15,13 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "kubernetes";
-  version = "1.18.3";
+  version = "1.19.1";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "kubernetes";
     rev = "v${version}";
-    sha256 = "01r6yym74x8ysvs4i23082nm8maisg6ipy9h41y4h8glvnpha0h8";
+    sha256 = "1wnlw2rl14q7cb8shhldbavdamvl3w3mlfvymwfvmvxfxzhrjlaq";
   };
 
   nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync go-bindata ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
index c739be763243..0bd1967aec8f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeseal/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "kubeseal";
-  version = "0.12.4";
+  version = "0.12.5";
 
   src = fetchFromGitHub {
     owner = "bitnami-labs";
     repo = "sealed-secrets";
     rev = "v${version}";
-    sha256 = "1abm63fb40zky5i97wm6h8ifmdf6i71ws9y7217hv2rnja37f4zd";
+    sha256 = "135ls3ngdz43qx6a49faczs2vdmccalsgak2hg0rairpy2jxym37";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   subPackages = [ "cmd/kubeseal" ];
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ];
@@ -23,4 +25,4 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ groodt ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubespy/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubespy/default.nix
new file mode 100644
index 000000000000..e71e598e23d5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubespy/default.nix
@@ -0,0 +1,33 @@
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+  pname = "kubespy";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "pulumi";
+    repo = "kubespy";
+    sha256 = "1p0qmn6458pa9la6zkvyrkgs2rhzfwsk9m3rk5fkmcfbh7b031r8";
+  };
+
+  vendorSha256 = "0q85is01cbgxflnqdvxc9w5iqdizgvsc44h8z21j712bm2w7blqq";
+
+  doCheck = false;
+
+  # TODO: enable after https://github.com/pulumi/kubespy/issues/72 is addressed.
+  # postInstall = ''
+  # 	for shell in bash zsh; do
+  # 		$out/bin/kubespy completion $shell > kubespy.$shell
+  # 		installShellCompletion kubespy.$shell
+  # 	done
+  # '';
+
+  meta = with lib; {
+    description = "A tool to observe Kubernetes resources in real time";
+    homepage = "https://github.com/pulumi/kubespy";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ blaggacao ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix
index 114c5f5af152..7e6a66eea506 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubetail/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kubetail";
-  version = "1.6.10";
+  version = "1.6.12";
 
   src = fetchFromGitHub {
     owner = "johanhaleby";
     repo = "kubetail";
     rev = version;
-    sha256 = "0bg872n9fs6pl03rmjny9sgby718yznx9jwi5rx3hi4km3ha9j0b";
+    sha256 = "0hayfd7yvdhd2klfmhvl04hfqk0nfsimjyg3kbq8c5dbgbpz05nd";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix b/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
index 10d75435e421..72dfe3ecc33f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/kubeval/default.nix
@@ -13,11 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "1kpwvi84i3h1yjprd6m6hn8l9j235931871y3qk9cl0g8q0hv9ja";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Validate your Kubernetes configuration files";
     homepage = "https://github.com/instrumenta/kubeval";
     license = licenses.asl20;
     maintainers = with maintainers; [ johanot nicknovitski ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix
index 331cef0444cd..70aeb7841593 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/linkerd/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, buildGoModule }:
 
 buildGoModule {
-  pname = "linkerd-unstablle";
+  pname = "linkerd-unstable";
   version = "2020-05-01";
 
   src = fetchFromGitHub {
@@ -13,6 +13,8 @@ buildGoModule {
 
   vendorSha256 = "0vls58ld50jca5yn73kvg3lx4z83cc7skky54a90pkbj737y58pz";
 
+  doCheck = false;
+
   subPackages = [ "cli/cmd" ];
 
   meta = with stdenv.lib; {
@@ -21,4 +23,4 @@ buildGoModule {
     license = licenses.asl20;
     maintainers = with maintainers; [ Gonzih ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix b/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix
index c6e2b7d85598..e0a6cd48d6ea 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/luigi/default.nix
@@ -1,15 +1,22 @@
-{ lib, python3Packages }:
+{ lib, python3 }:
 
-python3Packages.buildPythonApplication rec {
+let
+  python = python3.override {
+    self = python;
+    packageOverrides = self: super: {
+      tornado = super.tornado_5;
+    };
+  };
+in with python.pkgs; buildPythonApplication rec {
   pname = "luigi";
-  version = "3.0.0";
+  version = "3.0.2";
 
-  src = python3Packages.fetchPypi {
+  src = fetchPypi {
     inherit pname version;
-    sha256 = "1km9fnq4pf0iqqcmz94idm0zb3l92zinz0bn6ip86xqhchafd4vf";
+    sha256 = "b4b1ccf086586d041d7e91e68515d495c550f30e4d179d63863fea9ccdbb78eb";
   };
 
-  propagatedBuildInputs = with python3Packages; [ dateutil tornado_4 python-daemon boto3 ];
+  propagatedBuildInputs = [ dateutil tornado_5 python-daemon boto3 ];
 
   # Requires tox, hadoop, and google cloud
   doCheck = false;
diff --git a/nixpkgs/pkgs/applications/networking/cluster/marathon/default.nix b/nixpkgs/pkgs/applications/networking/cluster/marathon/default.nix
deleted file mode 100644
index df571f4cf869..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/marathon/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, makeWrapper, jdk, mesos, fetchurl }:
-
-stdenv.mkDerivation rec {
-  pname = "marathon";
-  version = "1.4.2";
-
-  src = fetchurl {
-    url = "https://downloads.mesosphere.com/marathon/v${version}/marathon-${version}.tgz";
-    sha256 = "6eab65a95c87a989e922aca2b49ba872b50a94e46a8fd4831d1ab41f319d6932";
-  };
-
-  buildInputs = [ makeWrapper jdk mesos ];
-
-  installPhase = ''
-    mkdir -p $out/{bin,libexec/marathon}
-    cp target/scala-*/marathon*.jar $out/libexec/marathon/${pname}-${version}.jar
-
-    makeWrapper ${jdk.jre}/bin/java $out/bin/marathon \
-      --add-flags "-Xmx512m -jar $out/libexec/marathon/${pname}-${version}.jar" \
-      --set "MESOS_NATIVE_JAVA_LIBRARY" "$MESOS_NATIVE_JAVA_LIBRARY"
-    '';
-
-  meta = with stdenv.lib; {
-    homepage = "https://mesosphere.github.io/marathon";
-    description = "Cluster-wide init and control system for services in cgroups or Docker containers";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ kamilchm pradeepchhetri ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/mesos/default.nix b/nixpkgs/pkgs/applications/networking/cluster/mesos/default.nix
deleted file mode 100644
index ac1feee5d72b..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/mesos/default.nix
+++ /dev/null
@@ -1,263 +0,0 @@
-{ stdenv, lib, makeWrapper, fetchurl, curl, sasl, openssh
-, unzip, gnutar, jdk, python, wrapPython
-, setuptools, boto, pythonProtobuf, apr, subversion, gzip
-, leveldb, glog, perf, utillinux, libnl, iproute, openssl, libevent
-, ethtool, coreutils, which, iptables, maven
-, bash, autoreconfHook
-, utf8proc, lz4
-, withJava ? !stdenv.isDarwin
-}:
-
-let
-  mavenRepo = import ./mesos-deps.nix { inherit stdenv curl; };
-  # `tar -z` requires gzip on $PATH, so wrap tar.
-  # At some point, we should try to patch mesos so we add gzip to the PATH when
-  # tar is invoked. I think that only needs to be done here:
-  #   src/common/command_utils.cpp
-  # https://github.com/NixOS/nixpkgs/issues/13783
-  tarWithGzip = lib.overrideDerivation gnutar (oldAttrs: {
-    # Original builder is bash 4.3.42 from bootstrap tools, too old for makeWrapper.
-    builder = "${bash}/bin/bash";
-    buildInputs = (oldAttrs.buildInputs or []) ++ [ makeWrapper ];
-    postInstall = (oldAttrs.postInstall or "") + ''
-      wrapProgram $out/bin/tar --prefix PATH ":" "${gzip}/bin"
-    '';
-  });
-
-in stdenv.mkDerivation rec {
-  version = "1.4.1";
-  pname = "mesos";
-
-  enableParallelBuilding = true;
-  dontDisableStatic = true;
-
-  src = fetchurl {
-    url = "mirror://apache/mesos/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1c7l0rim9ija913gpppz2mcms08ywyqhlzbbspqsi7wwfdd7jwsr";
-  };
-
-  patches = [
-    # https://reviews.apache.org/r/36610/
-    # TODO: is this still needed?
-    ./rb36610.patch
-
-    # see https://github.com/cstrahan/mesos/tree/nixos-${version}
-    ./nixos.patch
-  ];
-  nativeBuildInputs = [
-    autoreconfHook
-  ];
-  buildInputs = [
-    makeWrapper curl sasl
-    python wrapPython boto setuptools leveldb
-    subversion apr glog openssl libevent
-    utf8proc lz4
-  ] ++ lib.optionals stdenv.isLinux [
-    libnl
-  ] ++ lib.optionals withJava [
-    jdk maven
-  ];
-
-  propagatedBuildInputs = [
-    pythonProtobuf
-  ];
-
-  NIX_CFLAGS_COMPILE = "-Wno-error=format-overflow -Wno-error=class-memaccess";
-
-  preConfigure = ''
-    # https://issues.apache.org/jira/browse/MESOS-6616
-    configureFlagsArray+=(
-      "CXXFLAGS=-O2 -Wno-error=strict-aliasing"
-    )
-
-    substituteInPlace 3rdparty/stout/include/stout/jsonify.hpp \
-      --replace '<xlocale.h>' '<locale.h>'
-    # Fix cases where makedev(),major(),minor() are referenced through
-    # <sys/types.h> instead of <sys/sysmacros.h>
-    sed 1i'#include <sys/sysmacros.h>' -i src/linux/fs.cpp
-    sed 1i'#include <sys/sysmacros.h>' -i src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
-    substituteInPlace 3rdparty/stout/include/stout/os/posix/chown.hpp \
-      --subst-var-by chown ${coreutils}/bin/chown
-
-    substituteInPlace 3rdparty/stout/Makefile.am \
-      --replace "-lprotobuf" \
-                "${pythonProtobuf.protobuf}/lib/libprotobuf.a"
-
-    substituteInPlace 3rdparty/stout/include/stout/os/posix/fork.hpp \
-      --subst-var-by sh ${bash}/bin/bash
-
-    substituteInPlace 3rdparty/stout/include/stout/posix/os.hpp \
-      --subst-var-by tar ${tarWithGzip}/bin/tar
-
-    substituteInPlace src/cli/mesos-scp \
-      --subst-var-by scp ${openssh}/bin/scp
-
-    substituteInPlace src/common/command_utils.cpp \
-      --subst-var-by curl      ${curl}/bin/curl \
-      --subst-var-by gzip      ${gzip}/bin/gzip \
-      --subst-var-by sha512sum ${coreutils}/bin/sha512sum \
-      --subst-var-by tar       ${tarWithGzip}/bin/tar
-
-    substituteInPlace src/launcher/fetcher.cpp \
-      --subst-var-by cp    ${coreutils}/bin/cp \
-      --subst-var-by gzip  ${gzip}/bin/gzip \
-      --subst-var-by tar   ${tarWithGzip}/bin/tar \
-      --subst-var-by unzip ${unzip}/bin/unzip
-
-    substituteInPlace src/python/cli/src/mesos/cli.py \
-      --subst-var-by mesos-resolve $out/bin/mesos-resolve
-
-    substituteInPlace src/python/native_common/ext_modules.py.in \
-      --replace "-lprotobuf" \
-                "${pythonProtobuf.protobuf}/lib/libprotobuf.a"
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/gpu/volume.cpp \
-      --subst-var-by cp    ${coreutils}/bin/cp \
-      --subst-var-by which ${which}/bin/which
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/posix/disk.cpp \
-      --subst-var-by du ${coreutils}/bin/du
-
-    substituteInPlace src/slave/containerizer/mesos/provisioner/backends/copy.cpp \
-      --subst-var-by cp ${coreutils}/bin/cp \
-      --subst-var-by rm ${coreutils}/bin/rm
-
-    substituteInPlace src/uri/fetchers/copy.cpp \
-      --subst-var-by cp ${coreutils}/bin/cp
-
-    substituteInPlace src/uri/fetchers/curl.cpp \
-      --subst-var-by curl ${curl}/bin/curl
-
-    substituteInPlace src/uri/fetchers/docker.cpp \
-      --subst-var-by curl ${curl}/bin/curl
-
-    substituteInPlace src/Makefile.am \
-      --subst-var-by mavenRepo ${mavenRepo} \
-      --replace "-lprotobuf" \
-                "${pythonProtobuf.protobuf}/lib/libprotobuf.a"
-
-  '' + lib.optionalString stdenv.isLinux ''
-
-    substituteInPlace src/linux/perf.cpp \
-      --subst-var-by perf ${perf}/bin/perf
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp \
-      --subst-var-by mount ${utillinux}/bin/mount
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/filesystem/linux.cpp \
-      --subst-var-by mount ${utillinux}/bin/mount
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/filesystem/shared.cpp \
-      --subst-var-by mount ${utillinux}/bin/mount
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/gpu/isolator.cpp \
-      --subst-var-by mount ${utillinux}/bin/mount
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/namespaces/pid.cpp \
-      --subst-var-by mount ${utillinux}/bin/mount
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/network/cni/cni.cpp \
-      --subst-var-by mount ${utillinux}/bin/mount
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp \
-      --subst-var-by iptables ${iptables}/bin/iptables
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/network/port_mapping.cpp \
-      --subst-var-by ethtool ${ethtool}/sbin/ethtool \
-      --subst-var-by ip      ${iproute}/bin/ip \
-      --subst-var-by mount   ${utillinux}/bin/mount \
-      --subst-var-by tc      ${iproute}/bin/tc
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/volume/image.cpp \
-      --subst-var-by mount   ${utillinux}/bin/mount
-
-    substituteInPlace src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp \
-      --subst-var-by mount   ${utillinux}/bin/mount
-  '';
-
-  configureFlags = [
-    "--sbindir=\${out}/bin"
-    "--with-apr=${apr.dev}"
-    "--with-svn=${subversion.dev}"
-    "--with-leveldb=${leveldb}"
-    "--with-glog=${glog}"
-    "--enable-optimize"
-    "--disable-python-dependency-install"
-    "--enable-ssl"
-    "--with-ssl=${openssl.dev}"
-    "--enable-libevent"
-    "--with-libevent=${libevent.dev}"
-    "--with-protobuf=${pythonProtobuf.protobuf}"
-    "PROTOBUF_JAR=${mavenRepo}/com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar"
-    (if withJava then "--enable-java" else "--disable-java")
-  ] ++ lib.optionals stdenv.isLinux [
-    "--with-network-isolator"
-    "--with-nl=${libnl.dev}"
-  ];
-
-  postInstall = ''
-    rm -rf $out/var
-    rm $out/bin/*.sh
-
-    # Inspired by: pkgs/development/python-modules/generic/default.nix
-    pushd src/python
-    mkdir -p $out/lib/${python.libPrefix}/site-packages
-    export PYTHONPATH="$out/lib/${python.libPrefix}/site-packages:$PYTHONPATH"
-    ${python}/bin/${python.executable} setup.py install \
-      --install-lib=$out/lib/${python.libPrefix}/site-packages \
-      --old-and-unmanageable \
-      --prefix="$out"
-    rm -f "$out/lib/${python.libPrefix}"/site-packages/site.py*
-    popd
-
-    # optional python dependency for mesos cli
-    pushd src/python/cli
-    ${python}/bin/${python.executable} setup.py install \
-      --install-lib=$out/lib/${python.libPrefix}/site-packages \
-      --old-and-unmanageable \
-      --prefix="$out"
-    popd
-  '' + stdenv.lib.optionalString withJava ''
-    mkdir -p $out/share/java
-    cp src/java/target/mesos-*.jar $out/share/java
-
-    MESOS_NATIVE_JAVA_LIBRARY=$out/lib/libmesos${stdenv.hostPlatform.extensions.sharedLibrary}
-
-    mkdir -p $out/nix-support
-    touch $out/nix-support/setup-hook
-    echo "export MESOS_NATIVE_JAVA_LIBRARY=$MESOS_NATIVE_JAVA_LIBRARY" >> $out/nix-support/setup-hook
-    echo "export MESOS_NATIVE_LIBRARY=$MESOS_NATIVE_JAVA_LIBRARY" >> $out/nix-support/setup-hook
-  '';
-
-  postFixup = ''
-    if test -e $out/nix-support/propagated-build-inputs; then
-      ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
-    fi
-
-    for inputsfile in propagated-build-inputs propagated-native-build-inputs; do
-      if test -e $out/nix-support/$inputsfile; then
-        createBuildInputsPth $inputsfile "$(cat $out/nix-support/$inputsfile)"
-      fi
-    done
-
-    for f in $out/libexec/mesos/python/mesos/*.py; do
-      ${python}/bin/${python.executable} -c "import py_compile; py_compile.compile('$f')"
-    done
-
-    # wrap the python programs
-    for prog in mesos-cat mesos-ps mesos-scp mesos-tail; do
-      wrapProgram "$out/bin/$prog" \
-        --prefix PYTHONPATH ":" "$out/lib/${python.libPrefix}/site-packages"
-      true
-    done
-  '';
-
-  meta = with lib; {
-    homepage    = "http://mesos.apache.org";
-    license     = licenses.asl20;
-    description = "A cluster manager that provides efficient resource isolation and sharing across distributed applications, or frameworks";
-    maintainers = with maintainers; [ cstrahan offline ];
-    platforms   = platforms.unix;
-    broken = true; # Broken since 2019-10-22 (https://hydra.nixos.org/build/115475123)
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh b/nixpkgs/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh
deleted file mode 100644
index 1e2840017b34..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/mesos/fetch-mesos-deps.sh
+++ /dev/null
@@ -1,1359 +0,0 @@
-source $stdenv/setup
-header "fetching Apache Mesos maven repo"
-
-function fetchArtifact {
-  repoPath="$1"
-  echo "Fetching $repoPath"
-  url="https://repo.maven.apache.org/maven2/$repoPath"
-  mkdir -p $(dirname $out/$repoPath)
-  curl --fail --location --insecure --retry 3 --max-redirs 20 "$url" --output "$out/$repoPath"
-}
-
-fetchArtifact org/apache/apache/11/apache-11.pom
-fetchArtifact org/apache/apache/11/apache-11.pom.sha1
-fetchArtifact org/apache/apache/10/apache-10.pom
-fetchArtifact org/apache/apache/10/apache-10.pom.sha1
-fetchArtifact org/apache/apache/7/apache-7.pom
-fetchArtifact org/apache/apache/7/apache-7.pom.sha1
-fetchArtifact org/apache/apache/9/apache-9.pom
-fetchArtifact org/apache/apache/9/apache-9.pom.sha1
-fetchArtifact org/apache/apache/13/apache-13.pom
-fetchArtifact org/apache/apache/13/apache-13.pom.sha1
-fetchArtifact org/apache/apache/3/apache-3.pom
-fetchArtifact org/apache/apache/3/apache-3.pom.sha1
-fetchArtifact org/apache/apache/6/apache-6.pom
-fetchArtifact org/apache/apache/6/apache-6.pom.sha1
-fetchArtifact org/apache/apache/4/apache-4.pom
-fetchArtifact org/apache/apache/4/apache-4.pom.sha1
-fetchArtifact org/apache/apache/2/apache-2.pom
-fetchArtifact org/apache/apache/2/apache-2.pom.sha1
-fetchArtifact org/apache/apache/5/apache-5.pom
-fetchArtifact org/apache/apache/5/apache-5.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-remote-resources-plugin/1.3/maven-remote-resources-plugin-1.3.pom
-fetchArtifact org/apache/maven/plugins/maven-remote-resources-plugin/1.3/maven-remote-resources-plugin-1.3.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-remote-resources-plugin/1.3/maven-remote-resources-plugin-1.3.jar
-fetchArtifact org/apache/maven/plugins/maven-remote-resources-plugin/1.3/maven-remote-resources-plugin-1.3.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-plugins/22/maven-plugins-22.pom
-fetchArtifact org/apache/maven/plugins/maven-plugins/22/maven-plugins-22.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom
-fetchArtifact org/apache/maven/plugins/maven-plugins/18/maven-plugins-18.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-plugins/19/maven-plugins-19.pom
-fetchArtifact org/apache/maven/plugins/maven-plugins/19/maven-plugins-19.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-plugins/24/maven-plugins-24.pom
-fetchArtifact org/apache/maven/plugins/maven-plugins/24/maven-plugins-24.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-site-plugin/3.1/maven-site-plugin-3.1.pom
-fetchArtifact org/apache/maven/plugins/maven-site-plugin/3.1/maven-site-plugin-3.1.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-site-plugin/3.1/maven-site-plugin-3.1.jar
-fetchArtifact org/apache/maven/plugins/maven-site-plugin/3.1/maven-site-plugin-3.1.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-source-plugin/2.1.2/maven-source-plugin-2.1.2.pom
-fetchArtifact org/apache/maven/plugins/maven-source-plugin/2.1.2/maven-source-plugin-2.1.2.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-source-plugin/2.1.2/maven-source-plugin-2.1.2.jar
-fetchArtifact org/apache/maven/plugins/maven-source-plugin/2.1.2/maven-source-plugin-2.1.2.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-gpg-plugin/1.4/maven-gpg-plugin-1.4.pom
-fetchArtifact org/apache/maven/plugins/maven-gpg-plugin/1.4/maven-gpg-plugin-1.4.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-gpg-plugin/1.4/maven-gpg-plugin-1.4.jar
-fetchArtifact org/apache/maven/plugins/maven-gpg-plugin/1.4/maven-gpg-plugin-1.4.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom
-fetchArtifact org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.jar
-fetchArtifact org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.pom
-fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.jar
-fetchArtifact org/apache/maven/plugins/maven-resources-plugin/2.5/maven-resources-plugin-2.5.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.5.1/maven-compiler-plugin-2.5.1.pom
-fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.5.1/maven-compiler-plugin-2.5.1.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.5.1/maven-compiler-plugin-2.5.1.jar
-fetchArtifact org/apache/maven/plugins/maven-compiler-plugin/2.5.1/maven-compiler-plugin-2.5.1.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.12/maven-surefire-plugin-2.12.pom
-fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.12/maven-surefire-plugin-2.12.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.12/maven-surefire-plugin-2.12.jar
-fetchArtifact org/apache/maven/plugins/maven-surefire-plugin/2.12/maven-surefire-plugin-2.12.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.pom
-fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.jar
-fetchArtifact org/apache/maven/plugins/maven-jar-plugin/2.4/maven-jar-plugin-2.4.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-javadoc-plugin/2.8.1/maven-javadoc-plugin-2.8.1.pom
-fetchArtifact org/apache/maven/plugins/maven-javadoc-plugin/2.8.1/maven-javadoc-plugin-2.8.1.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-javadoc-plugin/2.8.1/maven-javadoc-plugin-2.8.1.jar
-fetchArtifact org/apache/maven/plugins/maven-javadoc-plugin/2.8.1/maven-javadoc-plugin-2.8.1.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.pom
-fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.jar
-fetchArtifact org/apache/maven/plugins/maven-shade-plugin/2.2/maven-shade-plugin-2.2.jar.sha1
-fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom
-fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.pom.sha1
-fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar
-fetchArtifact org/apache/maven/plugins/maven-dependency-plugin/2.8/maven-dependency-plugin-2.8.jar.sha1
-fetchArtifact org/apache/maven/maven-parent/21/maven-parent-21.pom
-fetchArtifact org/apache/maven/maven-parent/21/maven-parent-21.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/16/maven-parent-16.pom
-fetchArtifact org/apache/maven/maven-parent/16/maven-parent-16.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/19/maven-parent-19.pom
-fetchArtifact org/apache/maven/maven-parent/19/maven-parent-19.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/23/maven-parent-23.pom
-fetchArtifact org/apache/maven/maven-parent/23/maven-parent-23.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/5/maven-parent-5.pom
-fetchArtifact org/apache/maven/maven-parent/5/maven-parent-5.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/13/maven-parent-13.pom
-fetchArtifact org/apache/maven/maven-parent/13/maven-parent-13.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/7/maven-parent-7.pom
-fetchArtifact org/apache/maven/maven-parent/7/maven-parent-7.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/6/maven-parent-6.pom
-fetchArtifact org/apache/maven/maven-parent/6/maven-parent-6.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/8/maven-parent-8.pom
-fetchArtifact org/apache/maven/maven-parent/8/maven-parent-8.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/20/maven-parent-20.pom
-fetchArtifact org/apache/maven/maven-parent/20/maven-parent-20.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/10/maven-parent-10.pom
-fetchArtifact org/apache/maven/maven-parent/10/maven-parent-10.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/15/maven-parent-15.pom
-fetchArtifact org/apache/maven/maven-parent/15/maven-parent-15.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/11/maven-parent-11.pom
-fetchArtifact org/apache/maven/maven-parent/11/maven-parent-11.pom.sha1
-fetchArtifact org/apache/maven/maven-parent/9/maven-parent-9.pom
-fetchArtifact org/apache/maven/maven-parent/9/maven-parent-9.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire/2.12/surefire-2.12.pom
-fetchArtifact org/apache/maven/surefire/surefire/2.12/surefire-2.12.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire-booter/2.12/surefire-booter-2.12.pom
-fetchArtifact org/apache/maven/surefire/surefire-booter/2.12/surefire-booter-2.12.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire-booter/2.12/surefire-booter-2.12.jar
-fetchArtifact org/apache/maven/surefire/surefire-booter/2.12/surefire-booter-2.12.jar.sha1
-fetchArtifact org/apache/maven/surefire/surefire-api/2.12/surefire-api-2.12.pom
-fetchArtifact org/apache/maven/surefire/surefire-api/2.12/surefire-api-2.12.pom.sha1
-fetchArtifact org/apache/maven/surefire/surefire-api/2.12/surefire-api-2.12.jar
-fetchArtifact org/apache/maven/surefire/surefire-api/2.12/surefire-api-2.12.jar.sha1
-fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.12/maven-surefire-common-2.12.pom
-fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.12/maven-surefire-common-2.12.pom.sha1
-fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.12/maven-surefire-common-2.12.jar
-fetchArtifact org/apache/maven/surefire/maven-surefire-common/2.12/maven-surefire-common-2.12.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.jar
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.6/maven-plugin-api-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.1/maven-plugin-api-2.0.1.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.1/maven-plugin-api-2.0.1.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0/maven-plugin-api-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.jar
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.9/maven-plugin-api-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.pom
-fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.jar
-fetchArtifact org/apache/maven/maven-plugin-api/3.0/maven-plugin-api-3.0.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.2.1/maven-plugin-api-2.2.1.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.2.1/maven-plugin-api-2.2.1.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom
-fetchArtifact org/apache/maven/maven-plugin-api/2.0.8/maven-plugin-api-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.6/maven-2.0.6.pom
-fetchArtifact org/apache/maven/maven/2.0.6/maven-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.1/maven-2.0.1.pom
-fetchArtifact org/apache/maven/maven/2.0.1/maven-2.0.1.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.8/maven-2.0.8.pom
-fetchArtifact org/apache/maven/maven/2.0.8/maven-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0/maven-2.0.pom
-fetchArtifact org/apache/maven/maven/2.0/maven-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.9/maven-2.0.9.pom
-fetchArtifact org/apache/maven/maven/2.0.9/maven-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven/3.0/maven-3.0.pom
-fetchArtifact org/apache/maven/maven/3.0/maven-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven/2.2.1/maven-2.2.1.pom
-fetchArtifact org/apache/maven/maven/2.2.1/maven-2.2.1.pom.sha1
-fetchArtifact org/apache/maven/maven/2.2.0/maven-2.2.0.pom
-fetchArtifact org/apache/maven/maven/2.2.0/maven-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.2/maven-2.0.2.pom
-fetchArtifact org/apache/maven/maven/2.0.2/maven-2.0.2.pom.sha1
-fetchArtifact org/apache/maven/maven/2.0.5/maven-2.0.5.pom
-fetchArtifact org/apache/maven/maven/2.0.5/maven-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom
-fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.jar
-fetchArtifact org/apache/maven/maven-model/2.0.6/maven-model-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-model/2.0/maven-model-2.0.pom
-fetchArtifact org/apache/maven/maven-model/2.0/maven-model-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom
-fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.jar
-fetchArtifact org/apache/maven/maven-model/2.0.9/maven-model-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.pom
-fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.jar
-fetchArtifact org/apache/maven/maven-model/3.0/maven-model-3.0.jar.sha1
-fetchArtifact org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.pom
-fetchArtifact org/apache/maven/maven-model/2.2.1/maven-model-2.2.1.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom
-fetchArtifact org/apache/maven/maven-model/2.0.8/maven-model-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.2.0/maven-model-2.2.0.pom
-fetchArtifact org/apache/maven/maven-model/2.2.0/maven-model-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom
-fetchArtifact org/apache/maven/maven-model/2.0.5/maven-model-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom
-fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.jar
-fetchArtifact org/apache/maven/maven-project/2.0.6/maven-project-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-project/2.0/maven-project-2.0.pom
-fetchArtifact org/apache/maven/maven-project/2.0/maven-project-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.pom
-fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.jar
-fetchArtifact org/apache/maven/maven-project/2.0.9/maven-project-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom
-fetchArtifact org/apache/maven/maven-project/2.0.8/maven-project-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.pom
-fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.jar
-fetchArtifact org/apache/maven/maven-project/2.2.0/maven-project-2.2.0.jar.sha1
-fetchArtifact org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom
-fetchArtifact org/apache/maven/maven-project/2.0.5/maven-project-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.jar
-fetchArtifact org/apache/maven/maven-settings/2.0.6/maven-settings-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0/maven-settings-2.0.pom
-fetchArtifact org/apache/maven/maven-settings/2.0/maven-settings-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.jar
-fetchArtifact org/apache/maven/maven-settings/2.0.9/maven-settings-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom
-fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.jar
-fetchArtifact org/apache/maven/maven-settings/3.0/maven-settings-3.0.jar.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.8/maven-settings-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.2.0/maven-settings-2.2.0.pom
-fetchArtifact org/apache/maven/maven-settings/2.2.0/maven-settings-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-settings/2.0.5/maven-settings-2.0.5.pom
-fetchArtifact org/apache/maven/maven-settings/2.0.5/maven-settings-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom
-fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.jar
-fetchArtifact org/apache/maven/maven-profile/2.0.6/maven-profile-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0/maven-profile-2.0.pom
-fetchArtifact org/apache/maven/maven-profile/2.0/maven-profile-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.pom
-fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.jar
-fetchArtifact org/apache/maven/maven-profile/2.0.9/maven-profile-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom
-fetchArtifact org/apache/maven/maven-profile/2.0.8/maven-profile-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.pom
-fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.jar
-fetchArtifact org/apache/maven/maven-profile/2.2.0/maven-profile-2.2.0.jar.sha1
-fetchArtifact org/apache/maven/maven-profile/2.0.5/maven-profile-2.0.5.pom
-fetchArtifact org/apache/maven/maven-profile/2.0.5/maven-profile-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.jar
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.6/maven-artifact-manager-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.jar
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.9/maven-artifact-manager-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.8/maven-artifact-manager-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.jar
-fetchArtifact org/apache/maven/maven-artifact-manager/2.2.0/maven-artifact-manager-2.2.0.jar.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.2/maven-artifact-manager-2.0.2.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.5/maven-artifact-manager-2.0.5.pom
-fetchArtifact org/apache/maven/maven-artifact-manager/2.0.5/maven-artifact-manager-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.jar
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.6/maven-repository-metadata-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.jar
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.9/maven-repository-metadata-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.jar
-fetchArtifact org/apache/maven/maven-repository-metadata/3.0/maven-repository-metadata-3.0.jar.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.8/maven-repository-metadata-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.2.0/maven-repository-metadata-2.2.0.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.2.0/maven-repository-metadata-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.2/maven-repository-metadata-2.0.2.pom.sha1
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.5/maven-repository-metadata-2.0.5.pom
-fetchArtifact org/apache/maven/maven-repository-metadata/2.0.5/maven-repository-metadata-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.jar
-fetchArtifact org/apache/maven/maven-artifact/2.0.6/maven-artifact-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.8/maven-artifact-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.jar
-fetchArtifact org/apache/maven/maven-artifact/2.0.9/maven-artifact-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.pom
-fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.jar
-fetchArtifact org/apache/maven/maven-artifact/3.0/maven-artifact-3.0.jar.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom
-fetchArtifact org/apache/maven/maven-artifact/2.2.1/maven-artifact-2.2.1.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.2.0/maven-artifact-2.2.0.pom
-fetchArtifact org/apache/maven/maven-artifact/2.2.0/maven-artifact-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.2/maven-artifact-2.0.2.pom.sha1
-fetchArtifact org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom
-fetchArtifact org/apache/maven/maven-artifact/2.0.5/maven-artifact-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.jar
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.6/maven-plugin-registry-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0/maven-plugin-registry-2.0.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0/maven-plugin-registry-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.jar
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.9/maven-plugin-registry-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.0.8/maven-plugin-registry-2.0.8.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.pom
-fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.jar
-fetchArtifact org/apache/maven/maven-plugin-registry/2.2.0/maven-plugin-registry-2.2.0.jar.sha1
-fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom
-fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.jar
-fetchArtifact org/apache/maven/maven-core/2.0.6/maven-core-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-core/2.0/maven-core-2.0.pom
-fetchArtifact org/apache/maven/maven-core/2.0/maven-core-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom
-fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.jar
-fetchArtifact org/apache/maven/maven-core/2.0.9/maven-core-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.pom
-fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.jar
-fetchArtifact org/apache/maven/maven-core/3.0/maven-core-3.0.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.jar
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.6/maven-plugin-parameter-documenter-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0/maven-plugin-parameter-documenter-2.0.pom
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0/maven-plugin-parameter-documenter-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.pom
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.jar
-fetchArtifact org/apache/maven/maven-plugin-parameter-documenter/2.0.9/maven-plugin-parameter-documenter-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.6/maven-reporting-api-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0/maven-reporting-api-2.0.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0/maven-reporting-api-2.0.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/2.0.9/maven-reporting-api-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-api/3.0/maven-reporting-api-3.0.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.6/maven-reporting-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0/maven-reporting-2.0.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0/maven-reporting-2.0.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.9/maven-reporting-2.0.9.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting/2.0.9/maven-reporting-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-exec/1.0.2/maven-reporting-exec-1.0.2.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-exec/1.0.2/maven-reporting-exec-1.0.2.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-exec/1.0.2/maven-reporting-exec-1.0.2.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-exec/1.0.2/maven-reporting-exec-1.0.2.jar.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.pom
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.pom.sha1
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.jar
-fetchArtifact org/apache/maven/reporting/maven-reporting-impl/2.0.5/maven-reporting-impl-2.0.5.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-7/doxia-sink-api-1.0-alpha-7.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0/doxia-sink-api-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.3/doxia-sink-api-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.3/doxia-sink-api-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.3/doxia-sink-api-1.3.jar
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.3/doxia-sink-api-1.3.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-10/doxia-sink-api-1.0-alpha-10.pom
-fetchArtifact org/apache/maven/doxia/doxia-sink-api/1.0-alpha-10/doxia-sink-api-1.0-alpha-10.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-7/doxia-1.0-alpha-7.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.0/doxia-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.0/doxia-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.3/doxia-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.3/doxia-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.2/doxia-1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.2/doxia-1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom
-fetchArtifact org/apache/maven/doxia/doxia/1.0-alpha-10/doxia-1.0-alpha-10.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.3/doxia-logging-api-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.3/doxia-logging-api-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.3/doxia-logging-api-1.3.jar
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.3/doxia-logging-api-1.3.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.2/doxia-logging-api-1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-logging-api/1.2/doxia-logging-api-1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-core/1.3/doxia-core-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-core/1.3/doxia-core-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-core/1.3/doxia-core-1.3.jar
-fetchArtifact org/apache/maven/doxia/doxia-core/1.3/doxia-core-1.3.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-core/1.0/doxia-core-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.3/doxia-module-xhtml-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.3/doxia-module-xhtml-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.3/doxia-module-xhtml-1.3.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.3/doxia-module-xhtml-1.3.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-xhtml/1.0/doxia-module-xhtml-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.3/doxia-modules-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.3/doxia-modules-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.0/doxia-modules-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-modules/1.0/doxia-modules-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.3/doxia-module-apt-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.3/doxia-module-apt-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.3/doxia-module-apt-1.3.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.3/doxia-module-apt-1.3.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-apt/1.0/doxia-module-apt-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.3/doxia-module-xdoc-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.3/doxia-module-xdoc-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.3/doxia-module-xdoc-1.3.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.3/doxia-module-xdoc-1.3.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-xdoc/1.0/doxia-module-xdoc-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.3/doxia-module-fml-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.3/doxia-module-fml-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.3/doxia-module-fml-1.3.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.3/doxia-module-fml-1.3.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-module-fml/1.0/doxia-module-fml-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.3/doxia-decoration-model-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.3/doxia-decoration-model-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.3/doxia-decoration-model-1.3.jar
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.3/doxia-decoration-model-1.3.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.2/doxia-decoration-model-1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.2/doxia-decoration-model-1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-decoration-model/1.0/doxia-decoration-model-1.0.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.3/doxia-sitetools-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.3/doxia-sitetools-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.2/doxia-sitetools-1.2.pom
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.2/doxia-sitetools-1.2.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.0/doxia-sitetools-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-sitetools/1.0/doxia-sitetools-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.3/doxia-site-renderer-1.3.pom
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.3/doxia-site-renderer-1.3.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.3/doxia-site-renderer-1.3.jar
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.3/doxia-site-renderer-1.3.jar.sha1
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.pom
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.pom.sha1
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.jar
-fetchArtifact org/apache/maven/doxia/doxia-site-renderer/1.0/doxia-site-renderer-1.0.jar.sha1
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.jar
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.6/maven-error-diagnostics-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0/maven-error-diagnostics-2.0.pom
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0/maven-error-diagnostics-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.pom
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.jar
-fetchArtifact org/apache/maven/maven-error-diagnostics/2.0.9/maven-error-diagnostics-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.jar
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.6/maven-plugin-descriptor-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0/maven-plugin-descriptor-2.0.pom
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0/maven-plugin-descriptor-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.pom
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.jar
-fetchArtifact org/apache/maven/maven-plugin-descriptor/2.0.9/maven-plugin-descriptor-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom
-fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.pom.sha1
-fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.jar
-fetchArtifact org/apache/maven/maven-monitor/2.0.6/maven-monitor-2.0.6.jar.sha1
-fetchArtifact org/apache/maven/maven-monitor/2.0/maven-monitor-2.0.pom
-fetchArtifact org/apache/maven/maven-monitor/2.0/maven-monitor-2.0.pom.sha1
-fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.pom
-fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.jar
-fetchArtifact org/apache/maven/maven-monitor/2.0.9/maven-monitor-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-artifact-resolver/1.0/maven-artifact-resolver-1.0.pom
-fetchArtifact org/apache/maven/shared/maven-artifact-resolver/1.0/maven-artifact-resolver-1.0.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-artifact-resolver/1.0/maven-artifact-resolver-1.0.jar
-fetchArtifact org/apache/maven/shared/maven-artifact-resolver/1.0/maven-artifact-resolver-1.0.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/12/maven-shared-components-12.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/12/maven-shared-components-12.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/8/maven-shared-components-8.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/7/maven-shared-components-7.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/7/maven-shared-components-7.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/16/maven-shared-components-16.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/16/maven-shared-components-16.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/17/maven-shared-components-17.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/17/maven-shared-components-17.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/15/maven-shared-components-15.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/9/maven-shared-components-9.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/9/maven-shared-components-9.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/19/maven-shared-components-19.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/11/maven-shared-components-11.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/11/maven-shared-components-11.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom
-fetchArtifact org/apache/maven/shared/maven-shared-components/10/maven-shared-components-10.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.pom
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.jar
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.0/maven-common-artifact-filters-1.0.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.3/maven-common-artifact-filters-1.3.pom
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.3/maven-common-artifact-filters-1.3.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.3/maven-common-artifact-filters-1.3.jar
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.3/maven-common-artifact-filters-1.3.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.pom
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar
-fetchArtifact org/apache/maven/shared/maven-common-artifact-filters/1.4/maven-common-artifact-filters-1.4.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.pom
-fetchArtifact org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.jar
-fetchArtifact org/apache/maven/shared/maven-plugin-testing-harness/1.1/maven-plugin-testing-harness-1.1.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-filtering/1.0/maven-filtering-1.0.pom
-fetchArtifact org/apache/maven/shared/maven-filtering/1.0/maven-filtering-1.0.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-filtering/1.0/maven-filtering-1.0.jar
-fetchArtifact org/apache/maven/shared/maven-filtering/1.0/maven-filtering-1.0.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.4/maven-doxia-tools-1.4.pom
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.4/maven-doxia-tools-1.4.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.4/maven-doxia-tools-1.4.jar
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.4/maven-doxia-tools-1.4.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar
-fetchArtifact org/apache/maven/shared/maven-doxia-tools/1.0.2/maven-doxia-tools-1.0.2.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.9/maven-invoker-2.0.9.pom
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.9/maven-invoker-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.9/maven-invoker-2.0.9.jar
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.9/maven-invoker-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.pom
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.jar
-fetchArtifact org/apache/maven/shared/maven-invoker/2.0.11/maven-invoker-2.0.11.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.pom
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar
-fetchArtifact org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar.sha1
-fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.pom
-fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.pom.sha1
-fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar
-fetchArtifact org/apache/maven/shared/file-management/1.2.1/file-management-1.2.1.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom
-fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar
-fetchArtifact org/apache/maven/shared/maven-shared-io/1.1/maven-shared-io-1.1.jar.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.pom
-fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.pom.sha1
-fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.jar
-fetchArtifact org/apache/maven/shared/maven-dependency-analyzer/1.4/maven-dependency-analyzer-1.4.jar.sha1
-fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.pom
-fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.pom.sha1
-fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.jar
-fetchArtifact org/apache/maven/maven-toolchain/1.0/maven-toolchain-1.0.jar.sha1
-fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.pom
-fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.pom.sha1
-fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.jar
-fetchArtifact org/apache/maven/maven-toolchain/2.0.9/maven-toolchain-2.0.9.jar.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.pom
-fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.pom.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.jar
-fetchArtifact org/apache/maven/maven-archiver/2.5/maven-archiver-2.5.jar.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.pom
-fetchArtifact org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.pom.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.jar
-fetchArtifact org/apache/maven/maven-archiver/2.4.2/maven-archiver-2.4.2.jar.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.pom
-fetchArtifact org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.pom.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.jar
-fetchArtifact org/apache/maven/maven-archiver/2.3/maven-archiver-2.3.jar.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.4.1/maven-archiver-2.4.1.pom
-fetchArtifact org/apache/maven/maven-archiver/2.4.1/maven-archiver-2.4.1.pom.sha1
-fetchArtifact org/apache/maven/maven-archiver/2.4.1/maven-archiver-2.4.1.jar
-fetchArtifact org/apache/maven/maven-archiver/2.4.1/maven-archiver-2.4.1.jar.sha1
-fetchArtifact org/apache/maven/wagon/wagon-ssh/1.0/wagon-ssh-1.0.pom
-fetchArtifact org/apache/maven/wagon/wagon-ssh/1.0/wagon-ssh-1.0.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-ssh/1.0/wagon-ssh-1.0.jar
-fetchArtifact org/apache/maven/wagon/wagon-ssh/1.0/wagon-ssh-1.0.jar.sha1
-fetchArtifact org/apache/maven/wagon/wagon-providers/1.0/wagon-providers-1.0.pom
-fetchArtifact org/apache/maven/wagon/wagon-providers/1.0/wagon-providers-1.0.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon/1.0/wagon-1.0.pom
-fetchArtifact org/apache/maven/wagon/wagon/1.0/wagon-1.0.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom
-fetchArtifact org/apache/maven/wagon/wagon/1.0-beta-6/wagon-1.0-beta-6.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom
-fetchArtifact org/apache/maven/wagon/wagon/1.0-alpha-6/wagon-1.0-alpha-6.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-ssh-common/1.0/wagon-ssh-common-1.0.pom
-fetchArtifact org/apache/maven/wagon/wagon-ssh-common/1.0/wagon-ssh-common-1.0.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-ssh-common/1.0/wagon-ssh-common-1.0.jar
-fetchArtifact org/apache/maven/wagon/wagon-ssh-common/1.0/wagon-ssh-common-1.0.jar.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0/wagon-provider-api-1.0.pom
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0/wagon-provider-api-1.0.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0/wagon-provider-api-1.0.jar
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0/wagon-provider-api-1.0.jar.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.jar
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-beta-6/wagon-provider-api-1.0-beta-6.jar.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.pom.sha1
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.jar
-fetchArtifact org/apache/maven/wagon/wagon-provider-api/1.0-alpha-6/wagon-provider-api-1.0-alpha-6.jar.sha1
-fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.pom
-fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.jar
-fetchArtifact org/apache/maven/maven-settings-builder/3.0/maven-settings-builder-3.0.jar.sha1
-fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.pom
-fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.jar
-fetchArtifact org/apache/maven/maven-model-builder/3.0/maven-model-builder-3.0.jar.sha1
-fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.pom
-fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.jar
-fetchArtifact org/apache/maven/maven-aether-provider/3.0/maven-aether-provider-3.0.jar.sha1
-fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.pom
-fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.pom.sha1
-fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.jar
-fetchArtifact org/apache/maven/maven-compat/3.0/maven-compat-3.0.jar.sha1
-fetchArtifact org/apache/velocity/velocity/1.7/velocity-1.7.pom
-fetchArtifact org/apache/velocity/velocity/1.7/velocity-1.7.pom.sha1
-fetchArtifact org/apache/velocity/velocity/1.7/velocity-1.7.jar
-fetchArtifact org/apache/velocity/velocity/1.7/velocity-1.7.jar.sha1
-fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.pom
-fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.pom.sha1
-fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.jar
-fetchArtifact org/apache/velocity/velocity/1.5/velocity-1.5.jar.sha1
-fetchArtifact org/apache/velocity/velocity/1.6.2/velocity-1.6.2.pom
-fetchArtifact org/apache/velocity/velocity/1.6.2/velocity-1.6.2.pom.sha1
-fetchArtifact org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.pom
-fetchArtifact org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.pom.sha1
-fetchArtifact org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.jar
-fetchArtifact org/apache/velocity/velocity-tools/2.0/velocity-tools-2.0.jar.sha1
-fetchArtifact org/apache/commons/commons-parent/9/commons-parent-9.pom
-fetchArtifact org/apache/commons/commons-parent/9/commons-parent-9.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/5/commons-parent-5.pom
-fetchArtifact org/apache/commons/commons-parent/5/commons-parent-5.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/7/commons-parent-7.pom
-fetchArtifact org/apache/commons/commons-parent/7/commons-parent-7.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/12/commons-parent-12.pom
-fetchArtifact org/apache/commons/commons-parent/12/commons-parent-12.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/3/commons-parent-3.pom
-fetchArtifact org/apache/commons/commons-parent/3/commons-parent-3.pom.sha1
-fetchArtifact org/apache/commons/commons-parent/17/commons-parent-17.pom
-fetchArtifact org/apache/commons/commons-parent/17/commons-parent-17.pom.sha1
-fetchArtifact org/apache/apache-jar-resource-bundle/1.4/apache-jar-resource-bundle-1.4.jar
-fetchArtifact org/apache/apache-jar-resource-bundle/1.4/apache-jar-resource-bundle-1.4.jar.sha1
-fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.pom
-fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.pom.sha1
-fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.jar
-fetchArtifact org/apache/httpcomponents/httpclient/4.0.2/httpclient-4.0.2.jar.sha1
-fetchArtifact org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2.pom
-fetchArtifact org/apache/httpcomponents/httpcomponents-client/4.0.2/httpcomponents-client-4.0.2.pom.sha1
-fetchArtifact org/apache/httpcomponents/project/4.1/project-4.1.pom
-fetchArtifact org/apache/httpcomponents/project/4.1/project-4.1.pom.sha1
-fetchArtifact org/apache/httpcomponents/project/4.0/project-4.0.pom
-fetchArtifact org/apache/httpcomponents/project/4.0/project-4.0.pom.sha1
-fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom
-fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.pom.sha1
-fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar
-fetchArtifact org/apache/httpcomponents/httpcore/4.0.1/httpcore-4.0.1.jar.sha1
-fetchArtifact org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom
-fetchArtifact org/apache/httpcomponents/httpcomponents-core/4.0.1/httpcomponents-core-4.0.1.pom.sha1
-fetchArtifact org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.pom
-fetchArtifact org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.pom.sha1
-fetchArtifact org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.jar
-fetchArtifact org/apache/struts/struts-core/1.3.8/struts-core-1.3.8.jar.sha1
-fetchArtifact org/apache/struts/struts-parent/1.3.8/struts-parent-1.3.8.pom
-fetchArtifact org/apache/struts/struts-parent/1.3.8/struts-parent-1.3.8.pom.sha1
-fetchArtifact org/apache/struts/struts-master/4/struts-master-4.pom
-fetchArtifact org/apache/struts/struts-master/4/struts-master-4.pom.sha1
-fetchArtifact org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.pom
-fetchArtifact org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.pom.sha1
-fetchArtifact org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.jar
-fetchArtifact org/apache/struts/struts-taglib/1.3.8/struts-taglib-1.3.8.jar.sha1
-fetchArtifact org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.pom
-fetchArtifact org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.pom.sha1
-fetchArtifact org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.jar
-fetchArtifact org/apache/struts/struts-tiles/1.3.8/struts-tiles-1.3.8.jar.sha1
-fetchArtifact org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom
-fetchArtifact org/apache/xbean/xbean-reflect/3.4/xbean-reflect-3.4.pom.sha1
-fetchArtifact org/apache/xbean/xbean/3.4/xbean-3.4.pom
-fetchArtifact org/apache/xbean/xbean/3.4/xbean-3.4.pom.sha1
-fetchArtifact org/codehaus/mojo/build-helper-maven-plugin/1.8/build-helper-maven-plugin-1.8.pom
-fetchArtifact org/codehaus/mojo/build-helper-maven-plugin/1.8/build-helper-maven-plugin-1.8.pom.sha1
-fetchArtifact org/codehaus/mojo/build-helper-maven-plugin/1.8/build-helper-maven-plugin-1.8.jar
-fetchArtifact org/codehaus/mojo/build-helper-maven-plugin/1.8/build-helper-maven-plugin-1.8.jar.sha1
-fetchArtifact org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom
-fetchArtifact org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom.sha1
-fetchArtifact org/codehaus/codehaus-parent/4/codehaus-parent-4.pom
-fetchArtifact org/codehaus/codehaus-parent/4/codehaus-parent-4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.1/plexus-utils-1.4.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.8/plexus-utils-1.5.8.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.6/plexus-utils-1.4.6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.2/plexus-utils-1.4.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.2/plexus-utils-1.2.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.2/plexus-utils-1.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.15/plexus-utils-1.5.15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.12/plexus-utils-1.5.12.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.5/plexus-utils-2.0.5.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.1/plexus-utils-1.5.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4/plexus-utils-1.4.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4/plexus-utils-1.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/2.0.4/plexus-utils-2.0.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.5/plexus-utils-1.4.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.3/plexus-utils-1.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.10/plexus-utils-1.5.10.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.10/plexus-utils-1.5.10.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.10/plexus-utils-1.5.10.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.10/plexus-utils-1.5.10.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.9/plexus-utils-1.4.9.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.4.9/plexus-utils-1.4.9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.6/plexus-utils-1.5.6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.7/plexus-utils-1.5.7.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.5.7/plexus-utils-1.5.7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.15/plexus-utils-3.0.15.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.10/plexus-utils-3.0.10.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.10/plexus-utils-3.0.10.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.8/plexus-utils-3.0.8.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.jar
-fetchArtifact org/codehaus/plexus/plexus-utils/3.0.9/plexus-utils-3.0.9.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/1.1/plexus-utils-1.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom
-fetchArtifact org/codehaus/plexus/plexus-utils/2.1/plexus-utils-2.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.11/plexus-1.0.11.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.4/plexus-1.0.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom
-fetchArtifact org/codehaus/plexus/plexus/2.0.2/plexus-2.0.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.8/plexus-1.0.8.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.5/plexus-1.0.5.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.5/plexus-1.0.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.3/plexus-2.0.3.pom
-fetchArtifact org/codehaus/plexus/plexus/2.0.3/plexus-2.0.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom
-fetchArtifact org/codehaus/plexus/plexus/2.0.6/plexus-2.0.6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/3.1/plexus-3.1.pom
-fetchArtifact org/codehaus/plexus/plexus/3.1/plexus-3.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/3.0.1/plexus-3.0.1.pom
-fetchArtifact org/codehaus/plexus/plexus/3.0.1/plexus-3.0.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.10/plexus-1.0.10.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.9/plexus-1.0.9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom
-fetchArtifact org/codehaus/plexus/plexus/2.0.7/plexus-2.0.7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/2.0.5/plexus-2.0.5.pom
-fetchArtifact org/codehaus/plexus/plexus/2.0.5/plexus-2.0.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom
-fetchArtifact org/codehaus/plexus/plexus/1.0.12/plexus-1.0.12.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom
-fetchArtifact org/codehaus/plexus/plexus/3.3.1/plexus-3.3.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/3.3/plexus-3.3.pom
-fetchArtifact org/codehaus/plexus/plexus/3.3/plexus-3.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus/3.2/plexus-3.2.pom
-fetchArtifact org/codehaus/plexus/plexus/3.2/plexus-3.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9-stable-1/plexus-container-default-1.0-alpha-9-stable-1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.jar
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-9/plexus-container-default-1.0-alpha-9.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.jar
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-30/plexus-container-default-1.0-alpha-30.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-20/plexus-container-default-1.0-alpha-20.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-20/plexus-container-default-1.0-alpha-20.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-15/plexus-container-default-1.0-alpha-15.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.0-alpha-15/plexus-container-default-1.0-alpha-15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.pom
-fetchArtifact org/codehaus/plexus/plexus-container-default/1.5.5/plexus-container-default-1.5.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0.3/plexus-containers-1.0.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.5.5/plexus-containers-1.5.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.5.4/plexus-containers-1.5.4.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.5.4/plexus-containers-1.5.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-30/plexus-containers-1.0-alpha-30.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-20/plexus-containers-1.0-alpha-20.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-15/plexus-containers-1.0-alpha-15.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-15/plexus-containers-1.0-alpha-15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom
-fetchArtifact org/codehaus/plexus/plexus-containers/1.0-alpha-16/plexus-containers-1.0-alpha-16.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-4/plexus-interactivity-api-1.0-alpha-4.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.pom
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.jar
-fetchArtifact org/codehaus/plexus/plexus-interactivity-api/1.0-alpha-6/plexus-interactivity-api-1.0-alpha-6.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.pom
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.jar
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.pom
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.jar
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.1/plexus-archiver-2.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.0.1/plexus-archiver-2.0.1.pom
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.0.1/plexus-archiver-2.0.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0/plexus-archiver-1.0.pom
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0/plexus-archiver-1.0.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0/plexus-archiver-1.0.jar
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0/plexus-archiver-1.0.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.pom
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.jar
-fetchArtifact org/codehaus/plexus/plexus-archiver/1.0-alpha-9/plexus-archiver-1.0-alpha-9.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.pom
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.jar
-fetchArtifact org/codehaus/plexus/plexus-archiver/2.3/plexus-archiver-2.3.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.6/plexus-components-1.1.6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.14/plexus-components-1.1.14.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.15/plexus-components-1.1.15.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.15/plexus-components-1.1.15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.20/plexus-components-1.1.20.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.20/plexus-components-1.1.20.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.19/plexus-components-1.1.19.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.19/plexus-components-1.1.19.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.9/plexus-components-1.1.9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.18/plexus-components-1.1.18.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.12/plexus-components-1.1.12.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.17/plexus-components-1.1.17.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.1.17/plexus-components-1.1.17.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.3/plexus-components-1.3.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.3/plexus-components-1.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-components/1.2/plexus-components-1.2.pom
-fetchArtifact org/codehaus/plexus/plexus-components/1.2/plexus-components-1.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.jar
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.12/plexus-interpolation-1.12.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.jar
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.13/plexus-interpolation-1.13.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.15/plexus-interpolation-1.15.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.14/plexus-interpolation-1.14.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom
-fetchArtifact org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-resources/1.0-alpha-5/plexus-resources-1.0-alpha-5.pom
-fetchArtifact org/codehaus/plexus/plexus-resources/1.0-alpha-5/plexus-resources-1.0-alpha-5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-resources/1.0-alpha-5/plexus-resources-1.0-alpha-5.jar
-fetchArtifact org/codehaus/plexus/plexus-resources/1.0-alpha-5/plexus-resources-1.0-alpha-5.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.8/plexus-velocity-1.1.8.pom
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.8/plexus-velocity-1.1.8.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.8/plexus-velocity-1.1.8.jar
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.8/plexus-velocity-1.1.8.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar
-fetchArtifact org/codehaus/plexus/plexus-velocity/1.1.7/plexus-velocity-1.1.7.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.pom
-fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.jar
-fetchArtifact org/codehaus/plexus/plexus-compiler-api/1.9.1/plexus-compiler-api-1.9.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler/1.9.1/plexus-compiler-1.9.1.pom
-fetchArtifact org/codehaus/plexus/plexus-compiler/1.9.1/plexus-compiler-1.9.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manager-1.9.1.pom
-fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manager-1.9.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manager-1.9.1.jar
-fetchArtifact org/codehaus/plexus/plexus-compiler-manager/1.9.1/plexus-compiler-manager-1.9.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.9.1/plexus-compiler-javac-1.9.1.pom
-fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.9.1/plexus-compiler-javac-1.9.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.9.1/plexus-compiler-javac-1.9.1.jar
-fetchArtifact org/codehaus/plexus/plexus-compiler-javac/1.9.1/plexus-compiler-javac-1.9.1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-compilers/1.9.1/plexus-compilers-1.9.1.pom
-fetchArtifact org/codehaus/plexus/plexus-compilers/1.9.1/plexus-compilers-1.9.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.pom
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.jar
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.2/plexus-io-2.0.2.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.1/plexus-io-2.0.1.pom
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.1/plexus-io-2.0.1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/1.0/plexus-io-1.0.pom
-fetchArtifact org/codehaus/plexus/plexus-io/1.0/plexus-io-1.0.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/1.0/plexus-io-1.0.jar
-fetchArtifact org/codehaus/plexus/plexus-io/1.0/plexus-io-1.0.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.pom
-fetchArtifact org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.jar
-fetchArtifact org/codehaus/plexus/plexus-io/1.0-alpha-1/plexus-io-1.0-alpha-1.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.pom
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.jar
-fetchArtifact org/codehaus/plexus/plexus-io/2.0.6/plexus-io-2.0.6.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-interactivity/1.0-alpha-6/plexus-interactivity-1.0-alpha-6.pom
-fetchArtifact org/codehaus/plexus/plexus-interactivity/1.0-alpha-6/plexus-interactivity-1.0-alpha-6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.4/plexus-component-annotations-1.5.4.pom
-fetchArtifact org/codehaus/plexus/plexus-component-annotations/1.5.4/plexus-component-annotations-1.5.4.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.jar
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.3/plexus-classworlds-2.2.3.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-9/plexus-classworlds-1.2-alpha-9.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-7/plexus-classworlds-1.2-alpha-7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-6/plexus-classworlds-1.2-alpha-6.pom
-fetchArtifact org/codehaus/plexus/plexus-classworlds/1.2-alpha-6/plexus-classworlds-1.2-alpha-6.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.pom
-fetchArtifact org/codehaus/plexus/plexus-classworlds/2.2.2/plexus-classworlds-2.2.2.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom
-fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar
-fetchArtifact org/codehaus/plexus/plexus-i18n/1.0-beta-7/plexus-i18n-1.0-beta-7.jar.sha1
-fetchArtifact org/codehaus/plexus/plexus-component-api/1.0-alpha-15/plexus-component-api-1.0-alpha-15.pom
-fetchArtifact org/codehaus/plexus/plexus-component-api/1.0-alpha-15/plexus-component-api-1.0-alpha-15.pom.sha1
-fetchArtifact org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom
-fetchArtifact org/codehaus/plexus/plexus-component-api/1.0-alpha-16/plexus-component-api-1.0-alpha-16.pom.sha1
-fetchArtifact org/sonatype/spice/spice-parent/16/spice-parent-16.pom
-fetchArtifact org/sonatype/spice/spice-parent/16/spice-parent-16.pom.sha1
-fetchArtifact org/sonatype/spice/spice-parent/10/spice-parent-10.pom
-fetchArtifact org/sonatype/spice/spice-parent/10/spice-parent-10.pom.sha1
-fetchArtifact org/sonatype/spice/spice-parent/17/spice-parent-17.pom
-fetchArtifact org/sonatype/spice/spice-parent/17/spice-parent-17.pom.sha1
-fetchArtifact org/sonatype/spice/spice-parent/12/spice-parent-12.pom
-fetchArtifact org/sonatype/spice/spice-parent/12/spice-parent-12.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/5/forge-parent-5.pom
-fetchArtifact org/sonatype/forge/forge-parent/5/forge-parent-5.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/3/forge-parent-3.pom
-fetchArtifact org/sonatype/forge/forge-parent/3/forge-parent-3.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/10/forge-parent-10.pom
-fetchArtifact org/sonatype/forge/forge-parent/10/forge-parent-10.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/4/forge-parent-4.pom
-fetchArtifact org/sonatype/forge/forge-parent/4/forge-parent-4.pom.sha1
-fetchArtifact org/sonatype/forge/forge-parent/6/forge-parent-6.pom
-fetchArtifact org/sonatype/forge/forge-parent/6/forge-parent-6.pom.sha1
-fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.pom
-fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.pom.sha1
-fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.jar
-fetchArtifact org/sonatype/plexus/plexus-build-api/0.0.4/plexus-build-api-0.0.4.jar.sha1
-fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom
-fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.pom.sha1
-fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar
-fetchArtifact org/sonatype/plexus/plexus-sec-dispatcher/1.3/plexus-sec-dispatcher-1.3.jar.sha1
-fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom
-fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.pom.sha1
-fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
-fetchArtifact org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar.sha1
-fetchArtifact org/sonatype/oss/oss-parent/6/oss-parent-6.pom
-fetchArtifact org/sonatype/oss/oss-parent/6/oss-parent-6.pom.sha1
-fetchArtifact org/sonatype/oss/oss-parent/7/oss-parent-7.pom
-fetchArtifact org/sonatype/oss/oss-parent/7/oss-parent-7.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.pom
-fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.jar
-fetchArtifact org/sonatype/sisu/sisu-inject-plexus/1.4.2/sisu-inject-plexus-1.4.2.jar.sha1
-fetchArtifact org/sonatype/sisu/inject/guice-plexus/1.4.2/guice-plexus-1.4.2.pom
-fetchArtifact org/sonatype/sisu/inject/guice-plexus/1.4.2/guice-plexus-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/inject/guice-bean/1.4.2/guice-bean-1.4.2.pom
-fetchArtifact org/sonatype/sisu/inject/guice-bean/1.4.2/guice-bean-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-inject/1.4.2/sisu-inject-1.4.2.pom
-fetchArtifact org/sonatype/sisu/sisu-inject/1.4.2/sisu-inject-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom
-fetchArtifact org/sonatype/sisu/sisu-parent/1.4.2/sisu-parent-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.pom
-fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar
-fetchArtifact org/sonatype/sisu/sisu-inject-bean/1.4.2/sisu-inject-bean-1.4.2.jar.sha1
-fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7.pom
-fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7.pom.sha1
-fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar
-fetchArtifact org/sonatype/sisu/sisu-guice/2.1.7/sisu-guice-2.1.7-noaop.jar.sha1
-fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.pom
-fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.pom.sha1
-fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.jar
-fetchArtifact org/sonatype/aether/aether-api/1.7/aether-api-1.7.jar.sha1
-fetchArtifact org/sonatype/aether/aether-parent/1.7/aether-parent-1.7.pom
-fetchArtifact org/sonatype/aether/aether-parent/1.7/aether-parent-1.7.pom.sha1
-fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.pom
-fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.pom.sha1
-fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar
-fetchArtifact org/sonatype/aether/aether-util/1.7/aether-util-1.7.jar.sha1
-fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom
-fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.pom.sha1
-fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.jar
-fetchArtifact org/sonatype/aether/aether-impl/1.7/aether-impl-1.7.jar.sha1
-fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.pom
-fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.pom.sha1
-fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.jar
-fetchArtifact org/sonatype/aether/aether-spi/1.7/aether-spi-1.7.jar.sha1
-fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.pom
-fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.pom.sha1
-fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar
-fetchArtifact org/hamcrest/hamcrest-core/1.1/hamcrest-core-1.1.jar.sha1
-fetchArtifact org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1.pom
-fetchArtifact org/hamcrest/hamcrest-parent/1.1/hamcrest-parent-1.1.pom.sha1
-fetchArtifact org/beanshell/bsh/2.0b4/bsh-2.0b4.pom
-fetchArtifact org/beanshell/bsh/2.0b4/bsh-2.0b4.pom.sha1
-fetchArtifact org/beanshell/bsh/2.0b4/bsh-2.0b4.jar
-fetchArtifact org/beanshell/bsh/2.0b4/bsh-2.0b4.jar.sha1
-fetchArtifact org/beanshell/beanshell/2.0b4/beanshell-2.0b4.pom
-fetchArtifact org/beanshell/beanshell/2.0b4/beanshell-2.0b4.pom.sha1
-fetchArtifact org/mortbay/jetty/jetty/6.1.25/jetty-6.1.25.pom
-fetchArtifact org/mortbay/jetty/jetty/6.1.25/jetty-6.1.25.pom.sha1
-fetchArtifact org/mortbay/jetty/jetty/6.1.25/jetty-6.1.25.jar
-fetchArtifact org/mortbay/jetty/jetty/6.1.25/jetty-6.1.25.jar.sha1
-fetchArtifact org/mortbay/jetty/project/6.1.25/project-6.1.25.pom
-fetchArtifact org/mortbay/jetty/project/6.1.25/project-6.1.25.pom.sha1
-fetchArtifact org/mortbay/jetty/jetty-parent/10/jetty-parent-10.pom
-fetchArtifact org/mortbay/jetty/jetty-parent/10/jetty-parent-10.pom.sha1
-fetchArtifact org/mortbay/jetty/jetty-parent/7/jetty-parent-7.pom
-fetchArtifact org/mortbay/jetty/jetty-parent/7/jetty-parent-7.pom.sha1
-fetchArtifact org/mortbay/jetty/jetty-util/6.1.25/jetty-util-6.1.25.pom
-fetchArtifact org/mortbay/jetty/jetty-util/6.1.25/jetty-util-6.1.25.pom.sha1
-fetchArtifact org/mortbay/jetty/jetty-util/6.1.25/jetty-util-6.1.25.jar
-fetchArtifact org/mortbay/jetty/jetty-util/6.1.25/jetty-util-6.1.25.jar.sha1
-fetchArtifact org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.pom
-fetchArtifact org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.pom.sha1
-fetchArtifact org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.jar
-fetchArtifact org/mortbay/jetty/servlet-api/2.5-20081211/servlet-api-2.5-20081211.jar.sha1
-fetchArtifact org/eclipse/jetty/jetty-parent/14/jetty-parent-14.pom
-fetchArtifact org/eclipse/jetty/jetty-parent/14/jetty-parent-14.pom.sha1
-fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.pom
-fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.pom.sha1
-fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
-fetchArtifact org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar.sha1
-fetchArtifact org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom
-fetchArtifact org/eclipse/aether/aether/0.9.0.M2/aether-0.9.0.M2.pom.sha1
-fetchArtifact org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.pom
-fetchArtifact org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.pom.sha1
-fetchArtifact org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.jar
-fetchArtifact org/mockito/mockito-core/1.8.5/mockito-core-1.8.5.jar.sha1
-fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.pom
-fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.pom.sha1
-fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.jar
-fetchArtifact org/objenesis/objenesis/1.0/objenesis-1.0.jar.sha1
-fetchArtifact org/jdom/jdom/1.1/jdom-1.1.pom
-fetchArtifact org/jdom/jdom/1.1/jdom-1.1.pom.sha1
-fetchArtifact org/jdom/jdom/1.1/jdom-1.1.jar
-fetchArtifact org/jdom/jdom/1.1/jdom-1.1.jar.sha1
-fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.pom
-fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.pom.sha1
-fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.jar
-fetchArtifact org/vafer/jdependency/0.7/jdependency-0.7.jar.sha1
-fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.pom
-fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.pom.sha1
-fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar
-fetchArtifact com/google/protobuf/protobuf-java/3.3.0/protobuf-java-3.3.0.jar.sha1
-fetchArtifact com/google/protobuf/protobuf-parent/3.3.0/protobuf-parent-3.3.0.pom
-fetchArtifact com/google/protobuf/protobuf-parent/3.3.0/protobuf-parent-3.3.0.pom.sha1
-fetchArtifact com/google/google/1/google-1.pom
-fetchArtifact com/google/google/1/google-1.pom.sha1
-fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.pom
-fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.pom.sha1
-fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.jar
-fetchArtifact com/google/guava/guava/11.0.2/guava-11.0.2.jar.sha1
-fetchArtifact com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom
-fetchArtifact com/google/guava/guava-parent/11.0.2/guava-parent-11.0.2.pom.sha1
-fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom
-fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.pom.sha1
-fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar
-fetchArtifact com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar.sha1
-fetchArtifact com/google/collections/google-collections/1.0/google-collections-1.0.pom
-fetchArtifact com/google/collections/google-collections/1.0/google-collections-1.0.pom.sha1
-fetchArtifact com/jcraft/jsch/0.1.44-1/jsch-0.1.44-1.pom
-fetchArtifact com/jcraft/jsch/0.1.44-1/jsch-0.1.44-1.pom.sha1
-fetchArtifact com/jcraft/jsch/0.1.44-1/jsch-0.1.44-1.jar
-fetchArtifact com/jcraft/jsch/0.1.44-1/jsch-0.1.44-1.jar.sha1
-fetchArtifact com/thoughtworks/qdox/qdox/1.12/qdox-1.12.pom
-fetchArtifact com/thoughtworks/qdox/qdox/1.12/qdox-1.12.pom.sha1
-fetchArtifact com/thoughtworks/qdox/qdox/1.12/qdox-1.12.jar
-fetchArtifact com/thoughtworks/qdox/qdox/1.12/qdox-1.12.jar.sha1
-fetchArtifact junit/junit/4.10/junit-4.10.pom
-fetchArtifact junit/junit/4.10/junit-4.10.pom.sha1
-fetchArtifact junit/junit/3.8.1/junit-3.8.1.pom
-fetchArtifact junit/junit/3.8.1/junit-3.8.1.pom.sha1
-fetchArtifact junit/junit/3.8.1/junit-3.8.1.jar
-fetchArtifact junit/junit/3.8.1/junit-3.8.1.jar.sha1
-fetchArtifact junit/junit/3.8.2/junit-3.8.2.pom
-fetchArtifact junit/junit/3.8.2/junit-3.8.2.pom.sha1
-fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom
-fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.pom.sha1
-fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar
-fetchArtifact classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar.sha1
-fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.pom
-fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.pom.sha1
-fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.jar
-fetchArtifact classworlds/classworlds/1.1/classworlds-1.1.jar.sha1
-fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.pom
-fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.pom.sha1
-fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.jar
-fetchArtifact commons-cli/commons-cli/1.0/commons-cli-1.0.jar.sha1
-fetchArtifact doxia/doxia-sink-api/1.0-alpha-4/doxia-sink-api-1.0-alpha-4.pom
-fetchArtifact doxia/doxia-sink-api/1.0-alpha-4/doxia-sink-api-1.0-alpha-4.pom.sha1
-fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.pom
-fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.pom.sha1
-fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.jar
-fetchArtifact commons-collections/commons-collections/3.1/commons-collections-3.1.jar.sha1
-fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom
-fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.pom.sha1
-fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar
-fetchArtifact commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar.sha1
-fetchArtifact commons-collections/commons-collections/2.0/commons-collections-2.0.pom
-fetchArtifact commons-collections/commons-collections/2.0/commons-collections-2.0.pom.sha1
-fetchArtifact commons-collections/commons-collections/2.1/commons-collections-2.1.pom
-fetchArtifact commons-collections/commons-collections/2.1/commons-collections-2.1.pom.sha1
-fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.pom
-fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.pom.sha1
-fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.jar
-fetchArtifact commons-collections/commons-collections/3.2/commons-collections-3.2.jar.sha1
-fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.pom
-fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.pom.sha1
-fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.jar
-fetchArtifact commons-lang/commons-lang/2.4/commons-lang-2.4.jar.sha1
-fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.pom
-fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.pom.sha1
-fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.jar
-fetchArtifact commons-lang/commons-lang/2.1/commons-lang-2.1.jar.sha1
-fetchArtifact commons-lang/commons-lang/2.5/commons-lang-2.5.pom
-fetchArtifact commons-lang/commons-lang/2.5/commons-lang-2.5.pom.sha1
-fetchArtifact commons-lang/commons-lang/2.5/commons-lang-2.5.jar
-fetchArtifact commons-lang/commons-lang/2.5/commons-lang-2.5.jar.sha1
-fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.pom
-fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.pom.sha1
-fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.jar
-fetchArtifact commons-lang/commons-lang/2.6/commons-lang-2.6.jar.sha1
-fetchArtifact oro/oro/2.0.8/oro-2.0.8.pom
-fetchArtifact oro/oro/2.0.8/oro-2.0.8.pom.sha1
-fetchArtifact oro/oro/2.0.8/oro-2.0.8.jar
-fetchArtifact oro/oro/2.0.8/oro-2.0.8.jar.sha1
-fetchArtifact velocity/velocity/1.5/velocity-1.5.pom
-fetchArtifact velocity/velocity/1.5/velocity-1.5.pom.sha1
-fetchArtifact velocity/velocity/1.5/velocity-1.5.jar
-fetchArtifact velocity/velocity/1.5/velocity-1.5.jar.sha1
-fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom
-fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.pom.sha1
-fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar
-fetchArtifact xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar.sha1
-fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.pom
-fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.pom.sha1
-fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.jar
-fetchArtifact xml-apis/xml-apis/1.3.04/xml-apis-1.3.04.jar.sha1
-fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom
-fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.pom.sha1
-fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar
-fetchArtifact xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar.sha1
-fetchArtifact xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom
-fetchArtifact xml-apis/xml-apis/2.0.2/xml-apis-2.0.2.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom
-fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar
-fetchArtifact commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar.sha1
-fetchArtifact commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom
-fetchArtifact commons-logging/commons-logging/1.0.3/commons-logging-1.0.3.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.1/commons-logging-1.1.pom
-fetchArtifact commons-logging/commons-logging/1.1/commons-logging-1.1.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.0/commons-logging-1.0.pom
-fetchArtifact commons-logging/commons-logging/1.0/commons-logging-1.0.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom
-fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.pom.sha1
-fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar
-fetchArtifact commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar.sha1
-fetchArtifact commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom
-fetchArtifact commons-logging/commons-logging-api/1.1/commons-logging-api-1.1.pom.sha1
-fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.pom
-fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.pom.sha1
-fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.jar
-fetchArtifact commons-codec/commons-codec/1.3/commons-codec-1.3.jar.sha1
-fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.pom
-fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.pom.sha1
-fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.jar
-fetchArtifact commons-codec/commons-codec/1.2/commons-codec-1.2.jar.sha1
-fetchArtifact javax/servlet/servlet-api/2.5/servlet-api-2.5.pom
-fetchArtifact javax/servlet/servlet-api/2.5/servlet-api-2.5.pom.sha1
-fetchArtifact javax/servlet/servlet-api/2.5/servlet-api-2.5.jar
-fetchArtifact javax/servlet/servlet-api/2.5/servlet-api-2.5.jar.sha1
-fetchArtifact javax/servlet/servlet-api/2.3/servlet-api-2.3.pom
-fetchArtifact javax/servlet/servlet-api/2.3/servlet-api-2.3.pom.sha1
-fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom
-fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.pom.sha1
-fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar
-fetchArtifact commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar.sha1
-fetchArtifact commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom
-fetchArtifact commons-beanutils/commons-beanutils/1.6/commons-beanutils-1.6.pom.sha1
-fetchArtifact commons-digester/commons-digester/1.8/commons-digester-1.8.pom
-fetchArtifact commons-digester/commons-digester/1.8/commons-digester-1.8.pom.sha1
-fetchArtifact commons-digester/commons-digester/1.8/commons-digester-1.8.jar
-fetchArtifact commons-digester/commons-digester/1.8/commons-digester-1.8.jar.sha1
-fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.pom
-fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.pom.sha1
-fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.jar
-fetchArtifact commons-digester/commons-digester/1.6/commons-digester-1.6.jar.sha1
-fetchArtifact log4j/log4j/1.2.12/log4j-1.2.12.pom
-fetchArtifact log4j/log4j/1.2.12/log4j-1.2.12.pom.sha1
-fetchArtifact log4j/log4j/1.2.14/log4j-1.2.14.pom
-fetchArtifact log4j/log4j/1.2.14/log4j-1.2.14.pom.sha1
-fetchArtifact log4j/log4j/1.2.14/log4j-1.2.14.jar
-fetchArtifact log4j/log4j/1.2.14/log4j-1.2.14.jar.sha1
-fetchArtifact logkit/logkit/1.0.1/logkit-1.0.1.pom
-fetchArtifact logkit/logkit/1.0.1/logkit-1.0.1.pom.sha1
-fetchArtifact avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.pom
-fetchArtifact avalon-framework/avalon-framework/4.1.3/avalon-framework-4.1.3.pom.sha1
-fetchArtifact commons-chain/commons-chain/1.1/commons-chain-1.1.pom
-fetchArtifact commons-chain/commons-chain/1.1/commons-chain-1.1.pom.sha1
-fetchArtifact commons-chain/commons-chain/1.1/commons-chain-1.1.jar
-fetchArtifact commons-chain/commons-chain/1.1/commons-chain-1.1.jar.sha1
-fetchArtifact commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.pom
-fetchArtifact commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.pom.sha1
-fetchArtifact commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.jar
-fetchArtifact commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.jar.sha1
-fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.pom
-fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.pom.sha1
-fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar
-fetchArtifact commons-validator/commons-validator/1.2.0/commons-validator-1.2.0.jar.sha1
-fetchArtifact dom4j/dom4j/1.1/dom4j-1.1.pom
-fetchArtifact dom4j/dom4j/1.1/dom4j-1.1.pom.sha1
-fetchArtifact dom4j/dom4j/1.1/dom4j-1.1.jar
-fetchArtifact dom4j/dom4j/1.1/dom4j-1.1.jar.sha1
-fetchArtifact sslext/sslext/1.2-0/sslext-1.2-0.pom
-fetchArtifact sslext/sslext/1.2-0/sslext-1.2-0.pom.sha1
-fetchArtifact sslext/sslext/1.2-0/sslext-1.2-0.jar
-fetchArtifact sslext/sslext/1.2-0/sslext-1.2-0.jar.sha1
-fetchArtifact antlr/antlr/2.7.2/antlr-2.7.2.pom
-fetchArtifact antlr/antlr/2.7.2/antlr-2.7.2.pom.sha1
-fetchArtifact antlr/antlr/2.7.2/antlr-2.7.2.jar
-fetchArtifact antlr/antlr/2.7.2/antlr-2.7.2.jar.sha1
-fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.pom
-fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.pom.sha1
-fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.jar
-fetchArtifact commons-io/commons-io/1.4/commons-io-1.4.jar.sha1
-fetchArtifact commons-io/commons-io/1.3.2/commons-io-1.3.2.pom
-fetchArtifact commons-io/commons-io/1.3.2/commons-io-1.3.2.pom.sha1
-fetchArtifact commons-io/commons-io/1.3.2/commons-io-1.3.2.jar
-fetchArtifact commons-io/commons-io/1.3.2/commons-io-1.3.2.jar.sha1
-fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.pom
-fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.pom.sha1
-fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar
-fetchArtifact commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar.sha1
-fetchArtifact asm/asm/3.3.1/asm-3.3.1.pom
-fetchArtifact asm/asm/3.3.1/asm-3.3.1.pom.sha1
-fetchArtifact asm/asm/3.3.1/asm-3.3.1.jar
-fetchArtifact asm/asm/3.3.1/asm-3.3.1.jar.sha1
-fetchArtifact asm/asm/3.2/asm-3.2.pom
-fetchArtifact asm/asm/3.2/asm-3.2.pom.sha1
-fetchArtifact asm/asm-parent/3.3.1/asm-parent-3.3.1.pom
-fetchArtifact asm/asm-parent/3.3.1/asm-parent-3.3.1.pom.sha1
-fetchArtifact asm/asm-parent/3.2/asm-parent-3.2.pom
-fetchArtifact asm/asm-parent/3.2/asm-parent-3.2.pom.sha1
-fetchArtifact asm/asm-commons/3.3.1/asm-commons-3.3.1.pom
-fetchArtifact asm/asm-commons/3.3.1/asm-commons-3.3.1.pom.sha1
-fetchArtifact asm/asm-commons/3.3.1/asm-commons-3.3.1.jar
-fetchArtifact asm/asm-commons/3.3.1/asm-commons-3.3.1.jar.sha1
-fetchArtifact asm/asm-commons/3.2/asm-commons-3.2.pom
-fetchArtifact asm/asm-commons/3.2/asm-commons-3.2.pom.sha1
-fetchArtifact asm/asm-tree/3.3.1/asm-tree-3.3.1.pom
-fetchArtifact asm/asm-tree/3.3.1/asm-tree-3.3.1.pom.sha1
-fetchArtifact asm/asm-tree/3.3.1/asm-tree-3.3.1.jar
-fetchArtifact asm/asm-tree/3.3.1/asm-tree-3.3.1.jar.sha1
-fetchArtifact asm/asm-tree/3.2/asm-tree-3.2.pom
-fetchArtifact asm/asm-tree/3.2/asm-tree-3.2.pom.sha1
-fetchArtifact asm/asm-analysis/3.2/asm-analysis-3.2.pom
-fetchArtifact asm/asm-analysis/3.2/asm-analysis-3.2.pom.sha1
-fetchArtifact asm/asm-analysis/3.2/asm-analysis-3.2.jar
-fetchArtifact asm/asm-analysis/3.2/asm-analysis-3.2.jar.sha1
-fetchArtifact asm/asm-util/3.2/asm-util-3.2.pom
-fetchArtifact asm/asm-util/3.2/asm-util-3.2.pom.sha1
-fetchArtifact asm/asm-util/3.2/asm-util-3.2.jar
-fetchArtifact asm/asm-util/3.2/asm-util-3.2.jar.sha1
-fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom
-fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.pom.sha1
-fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar
-fetchArtifact backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar.sha1
-
-stopNest
diff --git a/nixpkgs/pkgs/applications/networking/cluster/mesos/mesos-deps.nix b/nixpkgs/pkgs/applications/networking/cluster/mesos/mesos-deps.nix
deleted file mode 100644
index 1cf819870f4e..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/mesos/mesos-deps.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{stdenv, curl}:
-
-stdenv.mkDerivation {
-  name = "mesos-maven-deps";
-  builder = ./fetch-mesos-deps.sh;
-
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "10h0qs7svw0cqjkyxs8z6s3qraa8ga920zfrr59rdlanbwg4klly";
-
-  nativeBuildInputs = [ curl ];
-
-  impureEnvVars = stdenv.lib.fetchers.proxyImpureEnvVars;
-}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/mesos/nixos.patch b/nixpkgs/pkgs/applications/networking/cluster/mesos/nixos.patch
deleted file mode 100644
index a6fea024b087..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/mesos/nixos.patch
+++ /dev/null
@@ -1,731 +0,0 @@
-diff --git i/3rdparty/stout/include/stout/os/posix/fork.hpp w/3rdparty/stout/include/stout/os/posix/fork.hpp
-index a29967d..290b98b 100644
---- i/3rdparty/stout/include/stout/os/posix/fork.hpp
-+++ w/3rdparty/stout/include/stout/os/posix/fork.hpp
-@@ -369,7 +369,7 @@ private:
-     if (exec.isSome()) {
-       // Execute the command (via '/bin/sh -c command').
-       const char* command = exec.get().command.c_str();
--      execlp("sh", "sh", "-c", command, (char*) nullptr);
-+      execlp("@sh@", "sh", "-c", command, (char*) nullptr);
-       EXIT(EXIT_FAILURE)
-         << "Failed to execute '" << command << "': " << os::strerror(errno);
-     } else if (wait.isSome()) {
-diff --git i/3rdparty/stout/include/stout/posix/os.hpp w/3rdparty/stout/include/stout/posix/os.hpp
-index 8511dfd..1e7be01 100644
---- i/3rdparty/stout/include/stout/posix/os.hpp
-+++ w/3rdparty/stout/include/stout/posix/os.hpp
-@@ -366,7 +366,7 @@ inline Try<std::set<pid_t>> pids(Option<pid_t> group, Option<pid_t> session)
- inline Try<Nothing> tar(const std::string& path, const std::string& archive)
- {
-   Try<std::string> tarOut =
--    os::shell("tar %s %s %s", "-czf", archive.c_str(), path.c_str());
-+    os::shell("@tar@ %s %s %s", "-czf", archive.c_str(), path.c_str());
- 
-   if (tarOut.isError()) {
-     return Error("Failed to archive " + path + ": " + tarOut.error());
-diff --git i/src/Makefile.am w/src/Makefile.am
-index 68fff14..c572f92 100644
---- i/src/Makefile.am
-+++ w/src/Makefile.am
-@@ -1775,7 +1775,7 @@ if HAS_JAVA
- 
- $(MESOS_JAR): $(MESOS_JAR_SOURCE) $(MESOS_JAR_GENERATED) java/mesos.pom
- 	@echo "Building mesos-$(PACKAGE_VERSION).jar ..."
--	@cd $(abs_top_builddir)/src/java && $(MVN) -B -f mesos.pom clean package
-+	@cd $(abs_top_builddir)/src/java && $(MVN) -B -f mesos.pom -Dmaven.repo.local=@mavenRepo@ clean package
- 
- # Convenience library for JNI bindings.
- # TODO(Charles Reiss): We really should be building the Java library
-diff --git i/src/cli/mesos-scp w/src/cli/mesos-scp
-index a71ab07..1043d1b 100755
---- i/src/cli/mesos-scp
-+++ w/src/cli/mesos-scp
-@@ -19,7 +19,8 @@ if sys.version_info < (2,6,0):
- 
- 
- def scp(host, src, dst):
--    cmd = 'scp -pr %s %s' % (src, host + ':' + dst)
-+    cmd = '@scp@ -pr %s %s' % (src, host + ':' + dst)
-+
-     try:
-         process = subprocess.Popen(
-             cmd,
-diff --git i/src/common/command_utils.cpp w/src/common/command_utils.cpp
-index c50be76..388cc53 100644
---- i/src/common/command_utils.cpp
-+++ w/src/common/command_utils.cpp
-@@ -142,7 +142,7 @@ Future<Nothing> tar(
- 
-   argv.emplace_back(input);
- 
--  return launch("tar", argv)
-+  return launch("@tar@", argv)
-     .then([]() { return Nothing(); });
- }
- 
-@@ -164,7 +164,7 @@ Future<Nothing> untar(
-     argv.emplace_back(directory.get());
-   }
- 
--  return launch("tar", argv)
-+  return launch("@tar@", argv)
-     .then([]() { return Nothing(); });
- }
- 
-@@ -172,7 +172,7 @@ Future<Nothing> untar(
- Future<string> sha512(const Path& input)
- {
- #ifdef __linux__
--  const string cmd = "sha512sum";
-+  const string cmd = "@sha512sum@";
-   vector<string> argv = {
-     cmd,
-     input             // Input file to compute shasum.
-@@ -208,7 +208,7 @@ Future<Nothing> gzip(const Path& input)
-     input
-   };
- 
--  return launch("gzip", argv)
-+  return launch("@gzip@", argv)
-     .then([]() { return Nothing(); });
- }
- 
-@@ -221,7 +221,7 @@ Future<Nothing> decompress(const Path& input)
-     input
-   };
- 
--  return launch("gzip", argv)
-+  return launch("@gzip@", argv)
-     .then([]() { return Nothing(); });
- }
- 
-diff --git i/src/launcher/fetcher.cpp w/src/launcher/fetcher.cpp
-index 42980f5..3aebeed 100644
---- i/src/launcher/fetcher.cpp
-+++ w/src/launcher/fetcher.cpp
-@@ -80,17 +80,17 @@ static Try<bool> extract(
-       strings::endsWith(sourcePath, ".tar.bz2") ||
-       strings::endsWith(sourcePath, ".txz") ||
-       strings::endsWith(sourcePath, ".tar.xz")) {
--    command = {"tar", "-C", destinationDirectory, "-xf", sourcePath};
-+    command = {"@tar@", "-C", destinationDirectory, "-xf", sourcePath};
-   } else if (strings::endsWith(sourcePath, ".gz")) {
-     string pathWithoutExtension = sourcePath.substr(0, sourcePath.length() - 3);
-     string filename = Path(pathWithoutExtension).basename();
-     string destinationPath = path::join(destinationDirectory, filename);
- 
--    command = {"gunzip", "-d", "-c"};
-+    command = {"@gunzip@", "-d", "-c"};
-     in = Subprocess::PATH(sourcePath);
-     out = Subprocess::PATH(destinationPath);
-   } else if (strings::endsWith(sourcePath, ".zip")) {
--    command = {"unzip", "-o", "-d", destinationDirectory, sourcePath};
-+    command = {"@unzip@", "-o", "-d", destinationDirectory, sourcePath};
-   } else {
-     return false;
-   }
-@@ -193,7 +193,7 @@ static Try<string> copyFile(
-     const string& sourcePath,
-     const string& destinationPath)
- {
--  int status = os::spawn("cp", {"cp", sourcePath, destinationPath});
-+  int status = os::spawn("cp", {"@cp@", sourcePath, destinationPath});
- 
-   if (status == -1) {
-     return ErrnoError("Failed to copy '" + sourcePath + "'");
-diff --git i/src/linux/perf.cpp w/src/linux/perf.cpp
-index b301e25..356a2cf 100644
---- i/src/linux/perf.cpp
-+++ w/src/linux/perf.cpp
-@@ -128,7 +128,7 @@ private:
-     // NOTE: The supervisor childhook places perf in its own process group
-     // and will kill the perf process when the parent dies.
-     Try<Subprocess> _perf = subprocess(
--        "perf",
-+        "@perf@",
-         argv,
-         Subprocess::PIPE(),
-         Subprocess::PIPE(),
-diff --git i/src/linux/systemd.cpp w/src/linux/systemd.cpp
-index 6318f48..394d88d 100644
---- i/src/linux/systemd.cpp
-+++ w/src/linux/systemd.cpp
-@@ -196,13 +196,21 @@ bool exists()
-   // This is static as the init system should not change while we are running.
-   static const bool exists = []() -> bool {
-     // (1) Test whether `/sbin/init` links to systemd.
--    const Result<string> realpath = os::realpath("/sbin/init");
--    if (realpath.isError() || realpath.isNone()) {
--      LOG(WARNING) << "Failed to test /sbin/init for systemd environment: "
--                   << (realpath.isError() ? realpath.error()
--                                          : "does not exist");
--
--      return false;
-+    // cstrahan(nixos): first assume we're on NixOS, then try non-NixOS
-+    Result<string> realpath = os::realpath("/run/current-system/systemd/lib/systemd/systemd");
-+    Result<string> realpathNixOS = realpath;
-+    if (realpathNixOS.isError() || realpathNixOS.isNone()) {
-+      Result<string> realpathNonNixOS = realpath = os::realpath("/sbin/init");
-+      if (realpathNonNixOS.isError() || realpathNonNixOS.isNone()) {
-+        LOG(WARNING) << "Failed to test /run/current-system/systemd/lib/systemd/systemd for systemd environment: "
-+                     << (realpathNixOS.isError() ? realpathNixOS.error()
-+                                                 : "does not exist");
-+        LOG(WARNING) << "Failed to test /sbin/init for systemd environment: "
-+                     << (realpathNonNixOS.isError() ? realpathNonNixOS.error()
-+                                                    : "does not exist");
-+
-+        return false;
-+      }
-     }
- 
-     CHECK_SOME(realpath);
-@@ -278,6 +286,10 @@ Path hierarchy()
- 
- Try<Nothing> daemonReload()
- {
-+  // cstrahan(nixos): should we patch these `systemctl`s?
-+  // probably don't want to hard-code a particular systemd store path here,
-+  // but if we use /run/current-system/sw/bin/systemctl,
-+  // we won't be able to support non-NixOS distros.
-   Try<string> daemonReload = os::shell("systemctl daemon-reload");
-   if (daemonReload.isError()) {
-     return Error("Failed to reload systemd daemon: " + daemonReload.error());
-diff --git i/src/python/cli/src/mesos/cli.py w/src/python/cli/src/mesos/cli.py
-index 4a9b558..c08a8b9 100644
---- i/src/python/cli/src/mesos/cli.py
-+++ w/src/python/cli/src/mesos/cli.py
-@@ -40,7 +40,7 @@ def resolve(master):
-     import subprocess
- 
-     process = subprocess.Popen(
--        ['mesos-resolve', master],
-+        ['@mesos-resolve@', master],
-         stdin=None,
-         stdout=subprocess.PIPE,
-         stderr=subprocess.PIPE,
-diff --git i/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp w/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
-index 5b630c1..d63ad69 100644
---- i/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
-+++ w/src/slave/containerizer/mesos/isolators/docker/volume/isolator.cpp
-@@ -499,7 +499,7 @@ Future<Option<ContainerLaunchInfo>> DockerVolumeIsolatorProcess::_prepare(
-     // unsafe arbitrary commands).
-     CommandInfo* command = launchInfo.add_pre_exec_commands();
-     command->set_shell(false);
--    command->set_value("mount");
-+    command->set_value("@mount@");
-     command->add_arguments("mount");
-     command->add_arguments("-n");
-     command->add_arguments("--rbind");
-diff --git i/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp w/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
-index d7fe9a8..1361a4e 100644
---- i/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
-+++ w/src/slave/containerizer/mesos/isolators/filesystem/linux.cpp
-@@ -154,9 +154,9 @@ Try<Isolator*> LinuxFilesystemIsolatorProcess::create(const Flags& flags)
-       // here because 'create' will only be invoked during
-       // initialization.
-       Try<string> mount = os::shell(
--          "mount --bind %s %s && "
--          "mount --make-private %s && "
--          "mount --make-shared %s",
-+          "@mount@ --bind %s %s && "
-+          "@mount@ --make-private %s && "
-+          "@mount@ --make-shared %s",
-           workDir->c_str(),
-           workDir->c_str(),
-           workDir->c_str(),
-@@ -175,8 +175,8 @@ Try<Isolator*> LinuxFilesystemIsolatorProcess::create(const Flags& flags)
-       LOG(INFO) << "Making '" << workDir.get() << "' a shared mount";
- 
-       Try<string> mount = os::shell(
--          "mount --make-private %s && "
--          "mount --make-shared %s",
-+          "@mount@ --make-private %s && "
-+          "@mount@ --make-shared %s",
-           workDir->c_str(),
-           workDir->c_str());
- 
-@@ -422,7 +422,7 @@ Try<vector<CommandInfo>> LinuxFilesystemIsolatorProcess::getPreExecCommands(
- 
-     CommandInfo command;
-     command.set_shell(false);
--    command.set_value("mount");
-+    command.set_value("@mount@");
-     command.add_arguments("mount");
-     command.add_arguments("-n");
-     command.add_arguments("--rbind");
-@@ -610,7 +610,7 @@ Try<vector<CommandInfo>> LinuxFilesystemIsolatorProcess::getPreExecCommands(
-     // TODO(jieyu): Consider the mode in the volume.
-     CommandInfo command;
-     command.set_shell(false);
--    command.set_value("mount");
-+    command.set_value("@mount@");
-     command.add_arguments("mount");
-     command.add_arguments("-n");
-     command.add_arguments("--rbind");
-diff --git i/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp w/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
-index 927d95b..576dc63 100644
---- i/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
-+++ w/src/slave/containerizer/mesos/isolators/filesystem/shared.cpp
-@@ -208,7 +208,7 @@ Future<Option<ContainerLaunchInfo>> SharedFilesystemIsolatorProcess::prepare(
-     }
- 
-     launchInfo.add_pre_exec_commands()->set_value(
--        "mount -n --bind " + hostPath + " " + volume.container_path());
-+        "@mount@ -n --bind " + hostPath + " " + volume.container_path());
-   }
- 
-   return launchInfo;
-diff --git i/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp w/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
-index 25636b5..33ec315 100644
---- i/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
-+++ w/src/slave/containerizer/mesos/isolators/gpu/isolator.cpp
-@@ -401,7 +401,7 @@ Future<Option<ContainerLaunchInfo>> NvidiaGpuIsolatorProcess::_prepare(
-     }
- 
-     launchInfo.add_pre_exec_commands()->set_value(
--      "mount --no-mtab --rbind --read-only " +
-+      "@mount@ --no-mtab --rbind --read-only " +
-       volume.HOST_PATH() + " " + target);
-   }
- 
-diff --git i/src/slave/containerizer/mesos/isolators/gpu/volume.cpp w/src/slave/containerizer/mesos/isolators/gpu/volume.cpp
-index 536a3c7..e2819dd 100644
---- i/src/slave/containerizer/mesos/isolators/gpu/volume.cpp
-+++ w/src/slave/containerizer/mesos/isolators/gpu/volume.cpp
-@@ -274,7 +274,7 @@ Try<NvidiaVolume> NvidiaVolume::create()
-     string path = path::join(hostPath, "bin", binary);
- 
-     if (!os::exists(path)) {
--      string command = "which " + binary;
-+      string command = "@which@ " + binary;
-       Try<string> which = os::shell(command);
- 
-       if (which.isSome()) {
-@@ -288,7 +288,7 @@ Try<NvidiaVolume> NvidiaVolume::create()
-                               : "No such file or directory"));
-         }
- 
--        command = "cp " + realpath.get() + " " + path;
-+        command = "@cp@ " + realpath.get() + " " + path;
-         Try<string> cp = os::shell(command);
-         if (cp.isError()) {
-           return Error("Failed to os::shell '" + command + "': " + cp.error());
-@@ -360,7 +360,7 @@ Try<NvidiaVolume> NvidiaVolume::create()
-             Path(realpath.get()).basename());
- 
-         if (!os::exists(libraryPath)) {
--          string command = "cp " + realpath.get() + " " + libraryPath;
-+          string command = "@cp@ " + realpath.get() + " " + libraryPath;
-           Try<string> cp = os::shell(command);
-           if (cp.isError()) {
-             return Error("Failed to os::shell '" + command + "':"
-diff --git i/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp w/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
-index 42bc2e1..2f9066e 100644
---- i/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
-+++ w/src/slave/containerizer/mesos/isolators/namespaces/pid.cpp
-@@ -131,7 +131,7 @@ Future<Option<ContainerLaunchInfo>> NamespacesPidIsolatorProcess::prepare(
-   //
-   // TOOD(jieyu): Consider unmount the existing /proc.
-   launchInfo.add_pre_exec_commands()->set_value(
--      "mount -n -t proc proc /proc -o nosuid,noexec,nodev");
-+      "@mount@ -n -t proc proc /proc -o nosuid,noexec,nodev");
- 
-   return launchInfo;
- }
-diff --git i/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp w/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp
-index fc68f04..267b040 100644
---- i/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp
-+++ w/src/slave/containerizer/mesos/isolators/network/cni/cni.cpp
-@@ -205,9 +205,9 @@ Try<Isolator*> NetworkCniIsolatorProcess::create(const Flags& flags)
-       // here because 'create' will only be invoked during
-       // initialization.
-       Try<string> mount = os::shell(
--          "mount --bind %s %s && "
--          "mount --make-private %s && "
--          "mount --make-shared %s",
-+          "@mount@ --bind %s %s && "
-+          "@mount@ --make-private %s && "
-+          "@mount@ --make-shared %s",
-           rootDir->c_str(),
-           rootDir->c_str(),
-           rootDir->c_str(),
-@@ -227,8 +227,8 @@ Try<Isolator*> NetworkCniIsolatorProcess::create(const Flags& flags)
-       LOG(INFO) << "Making '" << rootDir.get() << "' a shared mount";
- 
-       Try<string> mount = os::shell(
--          "mount --make-private %s && "
--          "mount --make-shared %s",
-+          "@mount@ --make-private %s && "
-+          "@mount@ --make-shared %s",
-           rootDir->c_str(),
-           rootDir->c_str());
- 
-diff --git i/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp w/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp
-index 43cf3e4..94bad8b 100644
---- i/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp
-+++ w/src/slave/containerizer/mesos/isolators/network/cni/plugins/port_mapper/port_mapper.cpp
-@@ -301,7 +301,7 @@ Try<Nothing> PortMapper::addPortMapping(
-       # Check if the `chain` exists in the iptable. If it does not
-       # exist go ahead and install the chain in the iptables NAT
-       # table.
--      iptables -w -t nat --list %s
-+      @iptables@ -w -t nat --list %s
-       if [ $? -ne 0 ]; then
-         # NOTE: When we create the chain, there is a possibility of a
-         # race due to which a container launch can fail. This can
-@@ -315,25 +315,25 @@ Try<Nothing> PortMapper::addPortMapping(
-         # since it can happen only when the chain is created the first
-         # time and two commands for creation of the chain are executed
-         # simultaneously.
--        (iptables -w -t nat -N %s || exit 1)
-+        (@iptables@ -w -t nat -N %s || exit 1)
- 
-         # Once the chain has been installed add a rule in the PREROUTING
-         # chain to jump to this chain for any packets that are
-         # destined to a local address.
--        (iptables -w -t nat -A PREROUTING \
-+        (@iptables@ -w -t nat -A PREROUTING \
-         -m addrtype --dst-type LOCAL -j %s || exit 1)
- 
-         # For locally generated packets we need a rule in the OUTPUT
-         # chain as well, since locally generated packets directly hit
-         # the output CHAIN, bypassing PREROUTING.
--        (iptables -w -t nat -A OUTPUT \
-+        (@iptables@ -w -t nat -A OUTPUT \
-         ! -d 127.0.0.0/8 -m addrtype \
-         --dst-type LOCAL -j %s || exit 1)
-       fi
- 
-       # Within the `chain` go ahead and install the DNAT rule, if it
-       # does not exist.
--      (iptables -w -t nat -C %s || iptables -t nat -A %s))~",
-+      (@iptables@ -w -t nat -C %s || @iptables@ -t nat -A %s))~",
-       chain,
-       chain,
-       chain,
-@@ -360,7 +360,7 @@ Try<Nothing> PortMapper::delPortMapping()
-       # The iptables command searches for the DNAT rules with tag
-       # "container_id: <CNI_CONTAINERID>", and if it exists goes ahead
-       # and deletes it.
--      iptables -w -t nat -S %s | sed "/%s/ s/-A/iptables -w -t nat -D/e")~",
-+      @iptables@ -w -t nat -S %s | sed "/%s/ s/-A/@iptables@ -w -t nat -D/e")~",
-       chain,
-       getIptablesRuleTag()).get();
- 
-diff --git i/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp w/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
-index 57d4ccd..68c9577 100644
---- i/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
-+++ w/src/slave/containerizer/mesos/isolators/network/port_mapping.cpp
-@@ -1394,19 +1394,19 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
-   // Check the availability of a few Linux commands that we will use.
-   // We use the blocking os::shell here because 'create' will only be
-   // invoked during initialization.
--  Try<string> checkCommandTc = os::shell("tc filter show");
-+  Try<string> checkCommandTc = os::shell("@tc@ filter show");
-   if (checkCommandTc.isError()) {
-     return Error("Check command 'tc' failed: " + checkCommandTc.error());
-   }
- 
-   // NOTE: loopback device always exists.
--  Try<string> checkCommandEthtool = os::shell("ethtool -k lo");
-+  Try<string> checkCommandEthtool = os::shell("@ethtool@ -k lo");
-   if (checkCommandEthtool.isError()) {
-     return Error("Check command 'ethtool' failed: "
-                  + checkCommandEthtool.error());
-   }
- 
--  Try<string> checkCommandIp = os::shell("ip link show");
-+  Try<string> checkCommandIp = os::shell("@ip@ link show");
-   if (checkCommandIp.isError()) {
-     return Error("Check command 'ip' failed: " + checkCommandIp.error());
-   }
-@@ -1940,9 +1940,9 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
-     // visible. It's OK to use the blocking os::shell here because
-     // 'create' will only be invoked during initialization.
-     Try<string> mount = os::shell(
--        "mount --bind %s %s && "
--        "mount --make-slave %s && "
--        "mount --make-shared %s",
-+        "@mount@ --bind %s %s && "
-+        "@mount@ --make-slave %s && "
-+        "@mount@ --make-shared %s",
-         bindMountRoot->c_str(),
-         bindMountRoot->c_str(),
-         bindMountRoot->c_str(),
-@@ -1959,8 +1959,8 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
-       // shared mount yet (possibly due to slave crash while preparing
-       // the work directory mount). It's safe to re-do the following.
-       Try<string> mount = os::shell(
--          "mount --make-slave %s && "
--          "mount --make-shared %s",
-+          "@mount@ --make-slave %s && "
-+          "@mount@ --make-shared %s",
-           bindMountRoot->c_str(),
-           bindMountRoot->c_str());
- 
-@@ -1979,8 +1979,8 @@ Try<Isolator*> PortMappingIsolatorProcess::create(const Flags& flags)
-           // so that they are in different peer groups.
-           if (entry.shared() == bindMountEntry->shared()) {
-             Try<string> mount = os::shell(
--                "mount --make-slave %s && "
--                "mount --make-shared %s",
-+                "@mount@ --make-slave %s && "
-+                "@mount@ --make-shared %s",
-                 bindMountRoot->c_str(),
-                 bindMountRoot->c_str());
- 
-@@ -3927,6 +3927,8 @@ Try<Nothing> PortMappingIsolatorProcess::removeHostIPFilters(
- // TODO(jieyu): Use the Subcommand abstraction to remove most of the
- // logic here. Completely remove this function once we can assume a
- // newer kernel where 'setns' works for mount namespaces.
-+// cstrahan(nixos): this is executed in the container,
-+// so we don't want to substitute paths here.
- string PortMappingIsolatorProcess::scripts(Info* info)
- {
-   ostringstream script;
-@@ -3937,7 +3939,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-   // Mark the mount point PORT_MAPPING_BIND_MOUNT_ROOT() as slave
-   // mount so that changes in the container will not be propagated to
-   // the host.
--  script << "mount --make-rslave " << bindMountRoot << "\n";
-+  script << "@mount@ --make-rslave " << bindMountRoot << "\n";
- 
-   // Disable IPv6 when IPv6 module is loaded as IPv6 packets won't be
-   // forwarded anyway.
-@@ -3945,7 +3947,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-          << " echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6\n";
- 
-   // Configure lo and eth0.
--  script << "ip link set " << lo << " address " << hostMAC
-+  script << "@ip@ link set " << lo << " address " << hostMAC
-          << " mtu " << hostEth0MTU << " up\n";
- 
-   // NOTE: This is mostly a kernel issue: in veth_xmit() the kernel
-@@ -3954,12 +3956,12 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-   // when we receive a packet with a bad checksum. Disabling rx
-   // checksum offloading ensures the TCP layer will checksum and drop
-   // it.
--  script << "ethtool -K " << eth0 << " rx off\n";
--  script << "ip link set " << eth0 << " address " << hostMAC << " up\n";
--  script << "ip addr add " << hostIPNetwork  << " dev " << eth0 << "\n";
-+  script << "@ethtool@ -K " << eth0 << " rx off\n";
-+  script << "@ip@ link set " << eth0 << " address " << hostMAC << " up\n";
-+  script << "@ip@ addr add " << hostIPNetwork  << " dev " << eth0 << "\n";
- 
-   // Set up the default gateway to match that of eth0.
--  script << "ip route add default via " << hostDefaultGateway << "\n";
-+  script << "@ip@ route add default via " << hostDefaultGateway << "\n";
- 
-   // Restrict the ephemeral ports that can be used by the container.
-   script << "echo " << info->ephemeralPorts.lower() << " "
-@@ -3988,19 +3990,19 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-   }
- 
-   // Set up filters on lo and eth0.
--  script << "tc qdisc add dev " << lo << " ingress\n";
--  script << "tc qdisc add dev " << eth0 << " ingress\n";
-+  script << "@tc@ qdisc add dev " << lo << " ingress\n";
-+  script << "@tc@ qdisc add dev " << eth0 << " ingress\n";
- 
-   // Allow talking between containers and from container to host.
-   // TODO(chzhcn): Consider merging the following two filters.
--  script << "tc filter add dev " << lo << " parent " << ingress::HANDLE
-+  script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE
-          << " protocol ip"
-          << " prio " << Priority(IP_FILTER_PRIORITY, NORMAL).get() << " u32"
-          << " flowid ffff:0"
-          << " match ip dst " << hostIPNetwork.address()
-          << " action mirred egress redirect dev " << eth0 << "\n";
- 
--  script << "tc filter add dev " << lo << " parent " << ingress::HANDLE
-+  script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE
-          << " protocol ip"
-          << " prio " << Priority(IP_FILTER_PRIORITY, NORMAL).get() << " u32"
-          << " flowid ffff:0"
-@@ -4011,7 +4013,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-   foreach (const PortRange& range,
-            getPortRanges(info->nonEphemeralPorts + info->ephemeralPorts)) {
-     // Local traffic inside a container will not be redirected to eth0.
--    script << "tc filter add dev " << lo << " parent " << ingress::HANDLE
-+    script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE
-            << " protocol ip"
-            << " prio " << Priority(IP_FILTER_PRIORITY, HIGH).get() << " u32"
-            << " flowid ffff:0"
-@@ -4020,7 +4022,7 @@ string PortMappingIsolatorProcess::scripts(Info* info)
- 
-     // Traffic going to host loopback IP and ports assigned to this
-     // container will be redirected to lo.
--    script << "tc filter add dev " << eth0 << " parent " << ingress::HANDLE
-+    script << "@tc@ filter add dev " << eth0 << " parent " << ingress::HANDLE
-            << " protocol ip"
-            << " prio " << Priority(IP_FILTER_PRIORITY, NORMAL).get() << " u32"
-            << " flowid ffff:0"
-@@ -4032,14 +4034,14 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-   }
- 
-   // Do not forward the ICMP packet if the destination IP is self.
--  script << "tc filter add dev " << lo << " parent " << ingress::HANDLE
-+  script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE
-          << " protocol ip"
-          << " prio " << Priority(ICMP_FILTER_PRIORITY, NORMAL).get() << " u32"
-          << " flowid ffff:0"
-          << " match ip protocol 1 0xff"
-          << " match ip dst " << hostIPNetwork.address() << "\n";
- 
--  script << "tc filter add dev " << lo << " parent " << ingress::HANDLE
-+  script << "@tc@ filter add dev " << lo << " parent " << ingress::HANDLE
-          << " protocol ip"
-          << " prio " << Priority(ICMP_FILTER_PRIORITY, NORMAL).get() << " u32"
-          << " flowid ffff:0"
-@@ -4048,9 +4050,9 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-          << net::IP::Network::LOOPBACK_V4().address() << "\n";
- 
-   // Display the filters created on eth0 and lo.
--  script << "tc filter show dev " << eth0
-+  script << "@tc@ filter show dev " << eth0
-          << " parent " << ingress::HANDLE << "\n";
--  script << "tc filter show dev " << lo
-+  script << "@tc@ filter show dev " << lo
-          << " parent " << ingress::HANDLE << "\n";
- 
-   // If throughput limit for container egress traffic exists, use HTB
-@@ -4062,9 +4064,9 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-   // throughput. TBF requires other parameters such as 'burst' that
-   // HTB already has default values for.
-   if (egressRateLimitPerContainer.isSome()) {
--    script << "tc qdisc add dev " << eth0 << " root handle "
-+    script << "@tc@ qdisc add dev " << eth0 << " root handle "
-            << CONTAINER_TX_HTB_HANDLE << " htb default 1\n";
--    script << "tc class add dev " << eth0 << " parent "
-+    script << "@tc@ class add dev " << eth0 << " parent "
-            << CONTAINER_TX_HTB_HANDLE << " classid "
-            << CONTAINER_TX_HTB_CLASS_ID << " htb rate "
-            << egressRateLimitPerContainer.get().bytes() * 8 << "bit\n";
-@@ -4075,12 +4077,12 @@ string PortMappingIsolatorProcess::scripts(Info* info)
-     // fq_codel, which has a larger buffer and better control on
-     // buffer bloat.
-     // TODO(cwang): Verity that fq_codel qdisc is available.
--    script << "tc qdisc add dev " << eth0
-+    script << "@tc@ qdisc add dev " << eth0
-            << " parent " << CONTAINER_TX_HTB_CLASS_ID << " fq_codel\n";
- 
-     // Display the htb qdisc and class created on eth0.
--    script << "tc qdisc show dev " << eth0 << "\n";
--    script << "tc class show dev " << eth0 << "\n";
-+    script << "@tc@ qdisc show dev " << eth0 << "\n";
-+    script << "@tc@ class show dev " << eth0 << "\n";
-   }
- 
-   return script.str();
-diff --git i/src/slave/containerizer/mesos/isolators/posix/disk.cpp w/src/slave/containerizer/mesos/isolators/posix/disk.cpp
-index eb23025..db268ea 100644
---- i/src/slave/containerizer/mesos/isolators/posix/disk.cpp
-+++ w/src/slave/containerizer/mesos/isolators/posix/disk.cpp
-@@ -572,7 +572,7 @@ private:
-     // NOTE: The supervisor childhook will watch the parent process and kill
-     // the 'du' process in case that the parent die.
-     Try<Subprocess> s = subprocess(
--        "du",
-+        "@du@",
-         command,
-         Subprocess::PATH(os::DEV_NULL),
-         Subprocess::PIPE(),
-diff --git i/src/slave/containerizer/mesos/isolators/volume/image.cpp w/src/slave/containerizer/mesos/isolators/volume/image.cpp
-index 35966aa..b62fc86 100644
---- i/src/slave/containerizer/mesos/isolators/volume/image.cpp
-+++ w/src/slave/containerizer/mesos/isolators/volume/image.cpp
-@@ -231,7 +231,7 @@ Future<Option<ContainerLaunchInfo>> VolumeImageIsolatorProcess::_prepare(
- 
-     CommandInfo* command = launchInfo.add_pre_exec_commands();
-     command->set_shell(false);
--    command->set_value("mount");
-+    command->set_value("@mount@");
-     command->add_arguments("mount");
-     command->add_arguments("-n");
-     command->add_arguments("--rbind");
-diff --git i/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp w/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp
-index b321b86..8ed3e78 100644
---- i/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp
-+++ w/src/slave/containerizer/mesos/isolators/volume/sandbox_path.cpp
-@@ -265,7 +265,7 @@ Future<Option<ContainerLaunchInfo>> VolumeSandboxPathIsolatorProcess::prepare(
- 
-       CommandInfo* command = launchInfo.add_pre_exec_commands();
-       command->set_shell(false);
--      command->set_value("mount");
-+      command->set_value("@mount@");
-       command->add_arguments("mount");
-       command->add_arguments("-n");
-       command->add_arguments("--rbind");
-diff --git i/src/slave/containerizer/mesos/provisioner/backends/copy.cpp w/src/slave/containerizer/mesos/provisioner/backends/copy.cpp
-index 69faa03..01a3ed6 100644
---- i/src/slave/containerizer/mesos/provisioner/backends/copy.cpp
-+++ w/src/slave/containerizer/mesos/provisioner/backends/copy.cpp
-@@ -266,7 +266,7 @@ Future<Nothing> CopyBackendProcess::_provision(
- #endif // __APPLE__ || __FreeBSD__
- 
-   Try<Subprocess> s = subprocess(
--      "cp",
-+      "@cp@",
-       args,
-       Subprocess::PATH(os::DEV_NULL),
-       Subprocess::PATH(os::DEV_NULL),
-@@ -313,7 +313,7 @@ Future<bool> CopyBackendProcess::destroy(const string& rootfs)
-   vector<string> argv{"rm", "-rf", rootfs};
- 
-   Try<Subprocess> s = subprocess(
--      "rm",
-+      "@rm@",
-       argv,
-       Subprocess::PATH(os::DEV_NULL),
-       Subprocess::FD(STDOUT_FILENO),
-diff --git i/src/uri/fetchers/copy.cpp w/src/uri/fetchers/copy.cpp
-index 17f69be..831b08a 100644
---- i/src/uri/fetchers/copy.cpp
-+++ w/src/uri/fetchers/copy.cpp
-@@ -97,8 +97,8 @@ Future<Nothing> CopyFetcherPlugin::fetch(
-   VLOG(1) << "Copying '" << uri.path() << "' to '" << directory << "'";
- 
- #ifndef __WINDOWS__
--  const char* copyCommand = "cp";
--  const vector<string> argv = {"cp", "-a", uri.path(), directory};
-+  const char* copyCommand = "@cp@";
-+  const vector<string> argv = {"@cp@", "-a", uri.path(), directory};
- #else // __WINDOWS__
-   const char* copyCommand = os::Shell::name;
-   const vector<string> argv =
-diff --git i/src/uri/fetchers/curl.cpp w/src/uri/fetchers/curl.cpp
-index f34daf2..6a50341 100644
---- i/src/uri/fetchers/curl.cpp
-+++ w/src/uri/fetchers/curl.cpp
-@@ -109,7 +109,7 @@ Future<Nothing> CurlFetcherPlugin::fetch(
-   };
- 
-   Try<Subprocess> s = subprocess(
--      "curl",
-+      "@curl@",
-       argv,
-       Subprocess::PATH(os::DEV_NULL),
-       Subprocess::PIPE(),
-diff --git i/src/uri/fetchers/docker.cpp w/src/uri/fetchers/docker.cpp
-index 91db13b..82a7fc4 100644
---- i/src/uri/fetchers/docker.cpp
-+++ w/src/uri/fetchers/docker.cpp
-@@ -114,7 +114,7 @@ static Future<http::Response> curl(
- 
-   // TODO(jieyu): Kill the process if discard is called.
-   Try<Subprocess> s = subprocess(
--      "curl",
-+      "@curl@",
-       argv,
-       Subprocess::PATH(os::DEV_NULL),
-       Subprocess::PIPE(),
-@@ -229,7 +229,7 @@ static Future<int> download(
- 
-   // TODO(jieyu): Kill the process if discard is called.
-   Try<Subprocess> s = subprocess(
--      "curl",
-+      "@curl@",
-       argv,
-       Subprocess::PATH(os::DEV_NULL),
-       Subprocess::PIPE(),
diff --git a/nixpkgs/pkgs/applications/networking/cluster/mesos/rb36610.patch b/nixpkgs/pkgs/applications/networking/cluster/mesos/rb36610.patch
deleted file mode 100644
index bee578cc3e93..000000000000
--- a/nixpkgs/pkgs/applications/networking/cluster/mesos/rb36610.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/src/linux/fs.cpp b/src/linux/fs.cpp
-index 913e233..c2917a6 100644
---- a/src/linux/fs.cpp
-+++ b/src/linux/fs.cpp
-@@ -17,6 +17,7 @@
- #include <errno.h>
- #include <stdio.h>
- #include <string.h>
-+#include <syscall.h>
- 
- #include <linux/limits.h>
- #include <linux/unistd.h>
diff --git a/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
index c409bf4712c8..b319ee57b95d 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/minikube/default.nix
@@ -11,18 +11,17 @@
 
 buildGoModule rec {
   pname = "minikube";
-  version = "1.11.0";
+  version = "1.13.0";
 
-  # for -ldflags
-  commit = "57e2f55f47effe9ce396cea42a1e0eb4f611ebbd";
+  vendorSha256 = "09bcp7pqbs9j06z1glpad70dqlsnrf69vn75l00bdjknbrvbzrb9";
 
-  vendorSha256 = "1l9dxn7yy21x4b3cg6l5a08wx2ng8qf531ilg8yf1rznwfwjajrv";
+  doCheck = false;
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "minikube";
     rev = "v${version}";
-    sha256 = "0y761svwyrpc4ywdd4vr9hxkg6593wg4wwqzn8n86g0zcz6qg11d";
+    sha256 = "1xlz07q0nlsq6js58b5ad0wxajwganaqcvwglj4w6fgmiqm9s1ny";
   };
 
   nativeBuildInputs = [ go-bindata installShellFiles pkg-config which ];
@@ -30,7 +29,7 @@ buildGoModule rec {
   buildInputs = if stdenv.isDarwin then [ vmnet ] else if stdenv.isLinux then [ libvirt ] else null;
 
   buildPhase = ''
-    make COMMIT=${commit}
+    make COMMIT=${src.rev}
   '';
 
   installPhase = ''
@@ -40,7 +39,7 @@ buildGoModule rec {
     export MINIKUBE_WANTUPDATENOTIFICATION=false
     export MINIKUBE_WANTKUBECTLDOWNLOADMSG=false
 
-    for shell in bash zsh; do
+    for shell in bash zsh fish; do
       $out/bin/minikube completion $shell > minikube.$shell
       installShellCompletion minikube.$shell
     done
diff --git a/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix b/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix
index 652518d892a8..3ff0e4b397cf 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/node-problem-detector/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "node-problem-detector";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0cphlaf9k2va879jgqd6fzdgkscpwg29j1cpr677i3zj3hfgaw1g";
+    sha256 = "1sga5l8bvqgm0j71yj3l1ykqvchxa7cg8pkfvjsrqlikgrfb54f3";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   # Optionally, a log counter binary can be created to parse journald logs.
   # The binary is dynamically linked against systemd libraries, making it a
   # Linux-only feature. See 'ENABLE_JOURNALD' upstream:
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad/0.11.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/0.11.nix
new file mode 100644
index 000000000000..ff0d1c69f41d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/0.11.nix
@@ -0,0 +1,7 @@
+{ callPackage, buildGoPackage }:
+
+callPackage ./generic.nix {
+  inherit buildGoPackage;
+  version = "0.11.4";
+  sha256 = "1sykp9sji6f564s7bz0cvnr9w5x92n0l1r1djf1bl7jvv2mi1mcb";
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad/0.12.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/0.12.nix
new file mode 100644
index 000000000000..3687b58b5a7c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/0.12.nix
@@ -0,0 +1,7 @@
+{ callPackage, buildGoPackage }:
+
+callPackage ./generic.nix {
+  inherit buildGoPackage;
+  version = "0.12.3";
+  sha256 = "100ynhc4nm4mmjxx1jhq2kjbqshxvi5x8y482520j8gsyn40g6zc";
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nomad/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nomad/generic.nix
index 990679a86688..0bfdb0b27f6e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/nomad/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/nomad/generic.nix
@@ -1,8 +1,8 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, version, sha256 }:
 
 buildGoPackage rec {
   pname = "nomad";
-  version = "0.11.3";
+  inherit version;
   rev = "v${version}";
 
   goPackagePath = "github.com/hashicorp/nomad";
@@ -11,8 +11,7 @@ buildGoPackage rec {
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
-    inherit rev;
-    sha256 = "1p7g7x2gl77h1w7aip3xji3s530fj46gspargz4j3i6h4wkyvafb";
+    inherit rev sha256;
   };
 
   # ui:
diff --git a/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix b/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix
new file mode 100644
index 000000000000..ff180bdc9b2f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/popeye/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "popeye";
+  version = "0.8.10";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "derailed";
+    repo = "popeye";
+    sha256 = "1cx39xipvvhb12nhvg7kfssnqafajni662b070ynlw8p870bj0sn";
+  };
+
+  buildFlagsArray = ''
+    -ldflags=
+      -s -w
+      -X github.com/derailed/popeye/cmd.version=${version}
+      -X github.com/derailed/popeye/cmd.commit=b7a876eafd4f7ec5683808d8d6880c41c805056a
+      -X github.com/derailed/popeye/cmd.date=2020-08-25T23:02:30Z
+  '';
+
+  vendorSha256 = "0b2bawc9wnqwgvrv614rq5y4ns9di65zqcbb199y2ijpsaw5d9a7";
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "A Kubernetes cluster resource sanitizer";
+    homepage = "https://github.com/derailed/popeye";
+    changelog = "https://github.com/derailed/popeye/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = [ maintainers.bryanasdev000 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/prow/default.nix b/nixpkgs/pkgs/applications/networking/cluster/prow/default.nix
index 4ad685418d35..60e79ed6690a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/prow/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/prow/default.nix
@@ -15,6 +15,8 @@ buildGoModule rec {
 
   vendorSha256 = "16fdc5r28andm8my4fxj0f1yygx6j2mvn92i6xdfhbcra0lvr4ql";
 
+  doCheck = false;
+
   subPackages = [
     "prow/cmd/admission"
     "prow/cmd/branchprotector"
@@ -63,4 +65,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ kalbasit ];
     platforms = platforms.linux ++ platforms.darwin;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix b/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix
index 0689fd096b3b..508e0b656d6f 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/qbec/default.nix
@@ -1,22 +1,32 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, go, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "qbec";
-  version = "0.12.0";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
     owner = "splunk";
     repo = "qbec";
     rev = "v${version}";
-    sha256 = "0vy1cqqyga68qjbvyhsgl281qkbsvhvmwbxc93hygsxzm9kczy4p";
+    sha256 = "1g90z155nhcblr48qypw8qw3l8g4dz33iflv4cg4xrhwjp8dfbv9";
   };
 
   vendorSha256 = "15hbjghi2ifylg7nr85qlk0alsy97h9zj6hf5w84m76dla2bcjf3";
 
+  doCheck = false;
+
+  buildFlagsArray = ''
+    -ldflags=
+      -s -w
+      -X github.com/splunk/qbec/internal/commands.version=${version}
+      -X github.com/splunk/qbec/internal/commands.commit=${src.rev}
+      -X github.com/splunk/qbec/internal/commands.goVersion=${lib.getVersion go}
+  '';
+
   meta = with lib; {
     description = "Configure kubernetes objects on multiple clusters using jsonnet https://qbec.io";
     homepage = "https://github.com/splunk/qbec";
     license = licenses.asl20;
     maintainers = with maintainers; [ groodt ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix b/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix
index 162585851d0c..53856ce9e2fe 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/spark/default.nix
@@ -1,6 +1,5 @@
 { stdenv, fetchzip, makeWrapper, jre, pythonPackages, coreutils, hadoop
 , RSupport? true, R
-, mesosSupport ? true, mesos
 }:
 
 with stdenv.lib;
@@ -12,12 +11,11 @@ stdenv.mkDerivation rec {
 
   src = fetchzip {
     url    = "mirror://apache/spark/${pname}-${version}/${pname}-${version}-bin-without-hadoop.tgz";
-    sha256 = "1a9w5k0207fysgpxx6db3a00fs5hdc2ncx99x4ccy2s0v5ndc66g"; 
+    sha256 = "1a9w5k0207fysgpxx6db3a00fs5hdc2ncx99x4ccy2s0v5ndc66g";
   };
 
   buildInputs = [ makeWrapper jre pythonPackages.python pythonPackages.numpy ]
-    ++ optional RSupport R
-    ++ optional mesosSupport mesos;
+    ++ optional RSupport R;
 
   untarDir = "${pname}-${version}-bin-without-hadoop";
   installPhase = ''
@@ -37,8 +35,6 @@ stdenv.mkDerivation rec {
     ${optionalString RSupport
       ''export SPARKR_R_SHELL="${R}/bin/R"
         export PATH=$PATH:"${R}/bin/R"''}
-    ${optionalString mesosSupport
-      ''export MESOS_NATIVE_LIBRARY="$MESOS_NATIVE_LIBRARY"''}
     EOF
 
     for n in $(find $out/lib/${untarDir}/bin -type f ! -name "*.*"); do
diff --git a/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix
index 0835d268cd79..c6f9217b35b8 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/ssm-agent/default.nix
@@ -1,22 +1,56 @@
-{ stdenv, fetchFromGitHub, buildGoPackage }:
+{ stdenv, fetchFromGitHub, buildGoPackage, bash, makeWrapper }:
 
 buildGoPackage rec {
   pname   = "amazon-ssm-agent";
-  version = "2.0.633.0";
+  version = "2.3.1319.0";
 
   goPackagePath = "github.com/aws/${pname}";
-  subPackages   = [ "agent" ];
+  subPackages   = [
+    "agent"
+    "agent/framework/processor/executer/outofproc/worker"
+    "agent/framework/processor/executer/outofproc/worker"
+    "agent/framework/processor/executer/outofproc/sessionworker"
+    "agent/session/logging"
+    "agent/cli-main"
+  ];
+
+  buildInputs = [ makeWrapper ];
 
   src = fetchFromGitHub {
-    rev    = "v${version}";
+    rev    = version;
     owner  = "aws";
     repo   = pname;
-    sha256 = "10arshfn2k3m3zzgw8b3xc6ywd0ss73746nq5srh2jir7mjzi4xv";
+    sha256 = "1yiyhj7ckqa32b1rnbwn7zx89rsj00m5imn1xlpsw002ywxsxbnv";
   };
 
   preBuild = ''
     mv go/src/${goPackagePath}/vendor strange-vendor
     mv strange-vendor/src go/src/${goPackagePath}/vendor
+
+    cd go/src/${goPackagePath}
+    echo ${version} > VERSION
+
+    substituteInPlace agent/plugins/inventory/gatherers/application/dataProvider.go \
+      --replace '"github.com/aws/amazon-ssm-agent/agent/plugins/configurepackage/localpackages"' ""
+
+    go run agent/version/versiongenerator/version-gen.go
+    substituteInPlace agent/appconfig/constants_unix.go \
+      --replace /usr/bin/ssm-document-worker $bin/bin/ssm-document-worker \
+      --replace /usr/bin/ssm-session-worker $bin/bin/ssm-session-worker \
+      --replace /usr/bin/ssm-session-logger $bin/bin/ssm-session-logger
+    cd -
+  '';
+
+  postBuild = ''
+    mv go/bin/agent go/bin/amazon-ssm-agent
+    mv go/bin/worker go/bin/ssm-document-worker
+    mv go/bin/sessionworker go/bin/ssm-session-worker
+    mv go/bin/logging go/bin/ssm-session-logger
+    mv go/bin/cli-main go/bin/ssm-cli
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/amazon-ssm-agent --prefix PATH : ${bash}/bin
   '';
 
   meta = with stdenv.lib; {
@@ -24,7 +58,6 @@ buildGoPackage rec {
     homepage    = "https://github.com/aws/amazon-ssm-agent";
     license     = licenses.asl20;
     platforms   = platforms.unix;
-    maintainers = with maintainers; [ copumpkin ];
+    maintainers = with maintainers; [ copumpkin manveru ];
   };
 }
-
diff --git a/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix b/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix
index 8ad0e8711f2f..0f8ed05d8e6a 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/stern/default.nix
@@ -15,6 +15,7 @@ buildGoPackage rec {
     sha256 = "0xndlq0ks8flzx6rdd4lnkxpkbvdy9sj1jwys5yj7p989ls8by3n";
   };
 
+  deleteVendor = true;
   goDeps = ./deps.nix;
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix
new file mode 100644
index 000000000000..1793af1085a9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/tanka/default.nix
@@ -0,0 +1,34 @@
+{ buildGoModule, fetchFromGitHub, lib, installShellFiles }:
+
+buildGoModule rec {
+  pname = "tanka";
+  version = "0.11.1";
+
+  src = fetchFromGitHub {
+    owner = "grafana";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0hp10qgalglsdhh6z6v4azh2hsr89mdrv1g5lssfl5jyink409yd";
+  };
+
+  vendorSha256 = "15x8fqz2d2793ivgxpd9jyr34njzi1xpyxdlfyj1b01n2vr3xg4m";
+
+  doCheck = false;
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version}" ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    echo "complete -C $out/bin/tk tk" > tk.bash
+    installShellCompletion tk.bash
+  '';
+
+  meta = with lib; {
+    description = "Flexible, reusable and concise configuration for Kubernetes";
+    homepage = "https://github.com/grafana/tanka/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mikefaille ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-compliance/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-compliance/default.nix
new file mode 100644
index 000000000000..6205b3bf5fe5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-compliance/default.nix
@@ -0,0 +1,61 @@
+{ lib
+, GitPython
+, buildPythonApplication
+, emoji
+, fetchFromGitHub
+, filetype
+, ipython
+, junit-xml
+, lxml
+, mock
+, netaddr
+, pytestCheckHook
+, python3Packages
+, radish-bdd
+, semver
+}:
+
+buildPythonApplication rec {
+  pname = "terraform-compliance";
+  version = "1.2.11";
+
+  # No tests in Pypi package
+  src = fetchFromGitHub {
+    owner = "eerkunt";
+    repo = pname;
+    rev = version;
+    sha256 = "161mszmxqp3wypnda48ama2mmq8yjilkxahwc1mxjwzy1n19sn7v";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "IPython==7.16.1" "IPython"
+  '';
+
+  checkInputs = [ pytestCheckHook ];
+
+  disabledTests = [
+    "test_which_success"
+    "test_readable_plan_file_is_not_json"
+  ];
+
+  propagatedBuildInputs = [
+    GitPython
+    emoji
+    filetype
+    ipython
+    junit-xml
+    lxml
+    mock
+    netaddr
+    radish-bdd
+    semver
+  ];
+
+  meta = with lib; {
+    description = "BDD test framework for terraform";
+    homepage = https://github.com/eerkunt/terraform-compliance;
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix
index 38fbd1b42865..72e717d91662 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-inventory/default.nix
@@ -21,7 +21,6 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     homepage = "https://github.com/adammck/terraform-inventory";
     description = "Terraform state to ansible inventory adapter";
-    platforms = platforms.all;
     license = licenses.mit;
     maintainers = with maintainers; [ htr ];
   };
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix
index 3a8ebe635f62..686b9ef95007 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -140,10 +140,12 @@ let
 
     # Packages that don't fit the default model
     ansible = callPackage ./ansible {};
-    gandi = callPackage ./gandi {};
     elasticsearch = callPackage ./elasticsearch {};
+    gandi = callPackage ./gandi {};
+    keycloak = callPackage ./keycloak {};
     libvirt = callPackage ./libvirt {};
     lxd = callPackage ./lxd {};
+    shell = callPackage ./shell {};
     vpsadmin = callPackage ./vpsadmin {};
   };
 in
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix
index 6afa63c4a525..6eaaa05106d1 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/elasticsearch/default.nix
@@ -12,6 +12,8 @@ buildGoModule rec {
 
   vendorSha256 = "1rdvyypdl3fk6af66gfjhyl271cnlx5xgrl1w68sc6sbvq00bqkd";
 
+  doCheck = false;
+
   subPackages = [ "." ];
 
   # Terraform allow checking the provider versions, but this breaks
@@ -24,4 +26,4 @@ buildGoModule rec {
     license = licenses.mpl20;
     maintainers = with maintainers; [ basvandijk ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/keycloak/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/keycloak/default.nix
new file mode 100644
index 000000000000..0fc717bda76e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/keycloak/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, fetchFromGitHub
+, buildGoModule
+}:
+
+buildGoModule rec {
+  name = "terraform-provider-keycloak-${version}";
+  version = "1.20.0";
+
+  src = fetchFromGitHub {
+    owner = "mrparkers";
+    repo = "terraform-provider-keycloak";
+    rev = version;
+    sha256 = "1h8780k8345pf0s14k1pmwdjbv2j08h4rq3jwds81mmv6qgj1r2n";
+  };
+
+  vendorSha256 = "12iary7p5qsbl4xdhfd1wh92mvf2fiylnb3m1d3m7cdcn32rfimq";
+
+  doCheck = false;
+
+  postInstall = "mv $out/bin/terraform-provider-keycloak{,_v${version}}";
+
+  meta = with stdenv.lib; {
+    description = "Terraform provider for keycloak";
+    homepage = "https://github.com/mrparkers/terraform-provider-keycloak";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ eonpatapon ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix
index 69d93ac1c754..d64178b1e658 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/lxd/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1shdpl1zsbbpc3mfs0l65ykq2h15ggvqylaixcap4j4lfl7m9my0";
 
+  doCheck = false;
+
   postBuild = "mv ../go/bin/terraform-provider-lxd{,_v${version}}";
 
   meta = with stdenv.lib; {
@@ -22,4 +24,4 @@ buildGoModule rec {
     license = licenses.mpl20;
     maintainers = with maintainers; [ gila ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/shell/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/shell/default.nix
new file mode 100644
index 000000000000..c0ee431fa405
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/shell/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, buildGoModule }:
+buildGoModule rec {
+  pname = "terraform-provider-shell";
+  version = "1.6.0";
+
+  src = fetchFromGitHub {
+    owner = "scottwinkler";
+    repo   = pname;
+    rev    = "v${version}";
+    sha256 = "0jxb30vw93ibnwz8nfqapac7p9r2famzvsf2h4nfbmhkm6mpan4l";
+  };
+
+  vendorSha256 = "1p2ja6cw3dl7mx41svri6frjpgb9pxsrl7sq0rk1d3sviw0f88sg";
+
+  doCheck = false;
+
+  subPackages = [ "." ];
+
+  # Terraform allows checking the provider versions, but this breaks
+  # if the versions are not provided via file paths.
+  postInstall = "mv $out/bin/${pname}{,_v${version}}";
+
+  meta = with stdenv.lib; {
+    inherit (src.meta) homepage;
+    description = "Terraform provider for executing shell commands and saving output to state file";
+    changelog = "https://github.com/scottwinkler/terraform-provider-shell/releases/tag/v${version}";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ mupdt ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix
index 2832580287b1..a4167d2b099e 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform-providers/vpsadmin/default.nix
@@ -12,6 +12,8 @@ buildGoModule rec {
 
   vendorSha256 = "0j90fnzba23mwf9bzf9w5h0hszkl3h61p5i780s9v9c0hbzhbqsh";
 
+  doCheck = false;
+
   subPackages = [ "." ];
 
   # Terraform allow checking the provider versions, but this breaks
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
index 080bc832544a..a6d9278f58b0 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terraform/default.nix
@@ -48,6 +48,7 @@ let
           kalbasit
           marsam
           babariviere
+          Chili-Man
         ];
       };
     } // attrs');
@@ -118,8 +119,8 @@ in rec {
   terraform_0_11-full = terraform_0_11.full;
 
   terraform_0_12 = pluggable (generic {
-    version = "0.12.26";
-    sha256 = "1f0n2zdk1jyqcmchsprqfkiivmsmdlpsf5b7x5f1dmvms9jw3268";
+    version = "0.12.29";
+    sha256 = "18i7vkvnvfybwzhww8d84cyh93xfbwswcnwfrgvcny1qwm8rsaj8";
     patches = [
         ./provider-path.patch
         (fetchpatch {
@@ -130,6 +131,13 @@ in rec {
     passthru = { inherit plugins; };
   });
 
+  terraform_0_13 = pluggable (generic {
+    version = "0.13.3";
+    sha256 = "1bjgsabkyh3xf4gdp41mwhw6bpmjg45bnq2hk522glk02n2xngpw";
+    patches = [ ./provider-path.patch ];
+    passthru = { inherit plugins; };
+  });
+
   # Tests that the plugins are being used. Terraform looks at the specific
   # file pattern and if the plugin is not found it will try to download it
   # from the Internet. With sandboxing enable this test will fail if that is
diff --git a/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
index 74f576b9a394..e8b602b8a804 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/terragrunt/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "terragrunt";
-  version = "0.23.23";
+  version = "0.23.40";
 
    src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1087zs5k73rhhzni8zdj950aw4nsc7mqjj8lgdcc8y3yx8p8y5hy";
+    sha256 = "0gd2g1nl8dgj24mzk4qymcwnp6prbi3qxj863rkpi3k32zy2iw4k";
   };
 
-  vendorSha256 = "1xn7c6y32vpanqvf1sfpw6bs73dbjniavjbf00j0vx83bfyklsr4";
+  vendorSha256 = "0f466qn5vp74mwx9s4rcbw1x793w8hr5dcf2c12sgshya1bxs4nl";
+
+  doCheck = false;
 
   buildInputs = [ makeWrapper ];
 
@@ -30,4 +32,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix b/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
index 13f2c3d9bd9e..c3ec58df35d4 100644
--- a/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/cluster/tilt/default.nix
@@ -1,24 +1,23 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "tilt";
   /* Do not use "dev" as a version. If you do, Tilt will consider itself
-     running in development environment and try to serve assets from the
-     source tree, which is not there once build completes.  */
-  version = "0.11.3";
+    running in development environment and try to serve assets from the
+    source tree, which is not there once build completes.  */
+  version = "0.17.2";
 
   src = fetchFromGitHub {
-    owner  = "windmilleng";
+    owner  = "tilt-dev";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "035czgr0rn6gcv24vnlr35n9yvy0fwq4spdzsc76gfxckcbcmzz0";
+    sha256 = "0wiqnlam4f7085n3djvb5phhvw9df61bj8w6c5rcpffykg33vhmi";
   };
-
-  goPackagePath = "github.com/windmilleng/tilt";
+  vendorSha256 = null;
 
   subPackages = [ "cmd/tilt" ];
 
-  buildFlagsArray = ("-ldflags=-X main.version=${version} -X main.date=2020-01-25");
+  buildFlagsArray = [ "-ldflags=-X main.version=${version}" ];
 
   meta = with stdenv.lib; {
     description = "Local development tool to manage your developer instance when your team deploys to Kubernetes in production";
diff --git a/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix b/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
new file mode 100644
index 000000000000..0d5835a8cde1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/cluster/velero/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+  pname = "velero";
+  version = "1.5.1";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "vmware-tanzu";
+    repo = "velero";
+    sha256 = "1rmymwmglcia5j0c692g34hlffba1yqs2s0iyjpafma2zabrcnai";
+  };
+
+  buildFlagsArray = ''
+    -ldflags=
+      -s -w
+      -X github.com/vmware-tanzu/velero/pkg/buildinfo.Version=${version}
+      -X github.com/vmware-tanzu/velero/pkg/buildinfo.GitSHA=87d86a45a6ca66c6c942c7c7f08352e26809426c
+      -X github.com/vmware-tanzu/velero/pkg/buildinfo.GitTreeState=clean
+  '';
+
+  vendorSha256 = "1izl7z689jf3i3wax7rfpk0jjly7nsi7vzasy1j9v5cwjy2d5z4v";
+
+  excludedPackages = [ "issue-template-gen" ];
+
+  doCheck = false;
+
+  nativeBuildInputs = [ installShellFiles ];
+  postInstall = ''
+    $out/bin/velero completion bash > helm.bash
+    $out/bin/velero completion zsh > helm.zsh
+    installShellCompletion helm.{bash,zsh}
+  '';
+
+  meta = with stdenv.lib; {
+    description =
+      "A utility for managing disaster recovery, specifically for your Kubernetes cluster resources and persistent volumes";
+    homepage = "https://velero.io/";
+    changelog =
+      "https://github.com/vmware-tanzu/velero/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = [ maintainers.mbode maintainers.bryanasdev000 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/datovka/default.nix b/nixpkgs/pkgs/applications/networking/datovka/default.nix
index 6dc996c79754..f004a807aa79 100644
--- a/nixpkgs/pkgs/applications/networking/datovka/default.nix
+++ b/nixpkgs/pkgs/applications/networking/datovka/default.nix
@@ -11,11 +11,11 @@
 
 mkDerivation rec {
   pname = "datovka";
-  version = "4.15.1";
+  version = "4.15.2";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/datove_schranky/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0ab1s1r6zrqxcfjnij5ar352kzyrl1m92c04nqk6hahpzzma2p3r";
+    sha256 = "0vna3vaivi6w7nlkwpqhwmyly0s1d5y2yg51br2f918pjhp2cp7q";
   };
 
   buildInputs = [ libisds qmake qtbase qtsvg libxml2 ];
diff --git a/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix b/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
index 70e107c063fb..8fb14ae3b147 100644
--- a/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
+++ b/nixpkgs/pkgs/applications/networking/dnscontrol/default.nix
@@ -1,24 +1,24 @@
-{ stdenv, fetchFromGitHub, buildGoPackage}:
+{ lib, fetchFromGitHub, buildGoModule }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "dnscontrol";
-  version = "3.2.0";
-
-  goPackagePath = "github.com/StackExchange/dnscontrol";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "StackExchange";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1lrn1whmx9zkyvs505zxrsmnr5s6kpj3kjkr6rblfwdlnadkgfj7";
+    sha256 = "0lldkx906imwm8mxcfafpanbgaqh0sdm3zdkwkn7j0nmngyncx9p";
   };
 
+  vendorSha256 = "16cc6hb2iwh1zwrrnb7s4dqxqhaj67gq3gfr5xvh5kqafd685hvx";
+
   subPackages = [ "." ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Synchronize your DNS to multiple providers from a simple DSL";
     homepage = "https://stackexchange.github.io/dnscontrol/";
     license = licenses.mit;
-    maintainers = with maintainers; [ mmahut ];
+    maintainers = with maintainers; [ mmahut SuperSandro2000 ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix
index f399aeaa98d1..d050b75ac30a 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/feedreader/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, vala, gettext, python3
-, appstream-glib, desktop-file-utils, wrapGAppsHook, gnome-online-accounts, fetchpatch
+{ stdenv, fetchFromGitHub, nix-update-script, meson, ninja, pkgconfig, vala, gettext, python3
+, appstream-glib, desktop-file-utils, wrapGAppsHook, gnome-online-accounts
 , gtk3, libgee, libpeas, librest, webkitgtk, gsettings-desktop-schemas, pantheon
 , curl, glib, gnome3, gst_all_1, json-glib, libnotify, libsecret, sqlite, gumbo, libxml2
 }:
 
 stdenv.mkDerivation rec {
   pname = "feedreader";
-  version = "2.10.0";
+  version = "2.11.0";
 
   src = fetchFromGitHub {
     owner = "jangernert";
     repo = pname;
     rev = "v${version}";
-    sha256 = "154lzvd8acs4dyc91nlabpr284yrij8jkhgm0h18hp3cy0a11rv8";
+    sha256 = "1agy1nkpkdsy2kbrrc8nrwphj5n86rikjjvwkr8klbf88mzl6civ";
   };
 
   nativeBuildInputs = [
@@ -32,16 +32,8 @@ stdenv.mkDerivation rec {
     patchShebangs build-aux/meson_post_install.py
   '';
 
-  patches = [
-    # Fixes build with libsecret
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/jangernert/FeedReader/pull/943.patch";
-      sha256 = "0anrwvcg6607dzvfrhy5qcnpxzflskb3iy3khdg191aw1h2mqhb5";
-    })
-  ];
-
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix
index 74a43f00ca83..18c395887753 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/newsboat/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, rustPlatform, fetchFromGitHub, stfl, sqlite, curl, gettext, pkgconfig, libxml2, json_c, ncurses
+{ stdenv, rustPlatform, fetchFromGitHub, stfl, sqlite, curl, gettext, pkg-config, libxml2, json_c, ncurses
 , asciidoctor, libiconv, Security, makeWrapper }:
 
 rustPlatform.buildRustPackage rec {
   pname = "newsboat";
-  version = "2.19";
+  version = "2.20.1";
 
   src = fetchFromGitHub {
     owner = "newsboat";
     repo = "newsboat";
     rev = "r${version}";
-    sha256 = "0yyrq8a90l6pkrczm9qvdg75jhsdq0niwp79vrdpm8rsxqpdmfq7";
+    sha256 = "1i9dpkdlsm3ya0w2x4c8kplrp3qzd8slbkcqvzfpqggb67gvczvv";
   };
 
-  cargoSha256 = "1q3jf3d80c0ik38qk8jgbhfz5jxv0cy3lzmkyh2l002azp9hvv59";
+  cargoSha256 = "1ykffx2lhn4w56qm1wypkg9wsqpvzzrz419qkl95w1384xf3f7ix";
 
   postPatch = ''
     substituteInPlace Makefile --replace "|| true" ""
@@ -23,7 +23,7 @@ rustPlatform.buildRustPackage rec {
   '';
 
   nativeBuildInputs = [
-    pkgconfig
+    pkg-config
     asciidoctor
     gettext
   ] ++ stdenv.lib.optionals stdenv.isDarwin [ makeWrapper ncurses ];
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix
new file mode 100644
index 000000000000..896904b0cac2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/default.nix
@@ -0,0 +1,88 @@
+{ lib
+, rustPlatform
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, wrapGAppsHook
+, gdk-pixbuf
+, glib
+, gtk3
+, libhandy
+, openssl
+, sqlite
+, webkitgtk
+, glib-networking
+, librsvg
+, gst_all_1
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "newsflash";
+  version = "1.0.5";
+
+  src = fetchFromGitLab {
+    owner = "news-flash";
+    repo = "news_flash_gtk";
+    rev = version;
+    sha256 = "0kh1xqvxfz58gnrl8av0zkig9vcgmx9iaxw5p6gdm8a7gv18nvp3";
+  };
+
+  cargoSha256 = "059sppidbxzjk8lmjq41d5qbymp9j9v2qr0jxd7xg9avr0klwc2s";
+
+  patches = [
+    ./no-post-install.patch
+  ];
+
+  postPatch = ''
+    chmod +x build-aux/cargo.sh
+    patchShebangs .
+  '';
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    wrapGAppsHook
+
+    # Provides setup hook to fix "Unrecognized image file format"
+    gdk-pixbuf
+
+    # Provides glib-compile-resources to compile gresources
+    glib
+  ];
+
+  buildInputs = [
+    gtk3
+    libhandy
+    openssl
+    sqlite
+    webkitgtk
+
+    # TLS support for loading external content in webkitgtk WebView
+    glib-networking
+
+    # SVG support for gdk-pixbuf
+    librsvg
+  ] ++ (with gst_all_1; [
+    # Audio & video support for webkitgtk WebView
+    gstreamer
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-bad
+  ]);
+
+  # Unset default rust phases to use meson & ninja instead
+  configurePhase = null;
+  buildPhase = null;
+  checkPhase = null;
+  installPhase = null;
+  installCheckPhase = null;
+
+  meta = with lib; {
+    description = "A modern feed reader designed for the GNOME desktop";
+    homepage = "https://gitlab.com/news-flash/news_flash_gtk";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ metadark ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/no-post-install.patch b/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/no-post-install.patch
new file mode 100644
index 000000000000..cfdec206e77b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/newsflash/no-post-install.patch
@@ -0,0 +1,10 @@
+diff --git a/meson.build b/meson.build
+index 53f911c..361a233 100644
+--- a/meson.build
++++ b/meson.build
+@@ -61,5 +61,3 @@ meson.add_dist_script(
+   meson.source_root(),
+   join_paths(meson.build_root(), 'meson-dist', meson.project_name() + '-' + newsflash_version)
+ )
+-
+-meson.add_install_script('build-aux/meson_post_install.py')
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix
index 18f154d3ff74..977b71ebc50d 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/rss2email/default.nix
@@ -4,13 +4,14 @@ with pythonPackages;
 
 buildPythonApplication rec {
   pname = "rss2email";
-  version = "3.11";
+  version = "3.12.2";
 
-  propagatedBuildInputs = [ feedparser beautifulsoup4 html2text ];
+  propagatedBuildInputs = [ feedparser html2text ];
+  checkInputs = [ beautifulsoup4 ];
 
   src = fetchurl {
     url = "mirror://pypi/r/rss2email/${pname}-${version}.tar.gz";
-    sha256 = "1vk5slp2mhmc1qj30igqkyq3z5h2bl1ayhafqrjapa6cg6rbvhrn";
+    sha256 = "12w6x80wsw6xm17fxyymnl45aavsagg932zw621wcjz154vjghjr";
   };
 
   outputs = [ "out" "man" "doc" ];
@@ -39,7 +40,7 @@ buildPythonApplication rec {
     description = "A tool that converts RSS/Atom newsfeeds to email.";
     homepage = "https://pypi.python.org/pypi/rss2email";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ jb55 Profpatsch ];
+    maintainers = with maintainers; [ jb55 Profpatsch ekleog ];
   };
   passthru.tests = {
     smoke-test = nixosTests.rss2email;
diff --git a/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix b/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix
index b95d272e6512..40b67484360b 100644
--- a/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix
+++ b/nixpkgs/pkgs/applications/networking/feedreaders/rssguard/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rssguard";
-  version = "3.6.2";
+  version = "3.7.2";
 
   src = fetchFromGitHub {
     owner = "martinrotter";
     repo = pname;
     rev = version;
-    sha256 = "1dx7gcmrjyi115lf6d36i129zmxfb16z7wy4ff8z9m65paci24mw";
+    sha256 = "1l2ra06am6bgwb4q200lhi64sz3np1dzf2vpjh10znxbx0mahbq6";
   };
 
   buildInputs =  [ qtwebengine qttools ];
diff --git a/nixpkgs/pkgs/applications/networking/firehol/default.nix b/nixpkgs/pkgs/applications/networking/firehol/default.nix
index c6e8ab5c887b..16b2b7454bf5 100644
--- a/nixpkgs/pkgs/applications/networking/firehol/default.nix
+++ b/nixpkgs/pkgs/applications/networking/firehol/default.nix
@@ -102,7 +102,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://firehol.org/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/firehol/iprange.nix b/nixpkgs/pkgs/applications/networking/firehol/iprange.nix
index e47afba02945..75b4d5b40a6b 100644
--- a/nixpkgs/pkgs/applications/networking/firehol/iprange.nix
+++ b/nixpkgs/pkgs/applications/networking/firehol/iprange.nix
@@ -13,6 +13,6 @@ stdenv.mkDerivation rec {
     description = "manage IP ranges";
     homepage = "https://github.com/firehol/iprange";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/flexget/default.nix b/nixpkgs/pkgs/applications/networking/flexget/default.nix
index 7e6915828815..d6a253efdaac 100644
--- a/nixpkgs/pkgs/applications/networking/flexget/default.nix
+++ b/nixpkgs/pkgs/applications/networking/flexget/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "FlexGet";
-  version = "3.1.59";
+  version = "3.1.71";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "19vp2395sl6gdv54zn0k4vf1j6b902khvm44q5hfr805jd3fc11h";
+    sha256 = "4c25d8733c8eb54c7d3ce60a17d8020049fb137b796e5ada9d15f41cdd0e1655";
   };
 
   postPatch = ''
@@ -32,7 +32,7 @@ python3Packages.buildPythonApplication rec {
     flask-cors
     flask_login
     flask-restful
-    flask-restplus
+    flask-restx
     flask
     guessit
     html5lib
diff --git a/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix b/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
index 04f0296fe82e..0cb0d17cc5a2 100644
--- a/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ftp/filezilla/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchurl
+, autoreconfHook
 , dbus
 , gettext
 , gnutls
@@ -16,11 +17,11 @@
 
 stdenv.mkDerivation rec {
   pname = "filezilla";
-  version = "3.48.1";
+  version = "3.50.0";
 
   src = fetchurl {
     url = "https://download.filezilla-project.org/client/FileZilla_${version}_src.tar.bz2";
-    sha256 = "0pgg2gp4x5qmxwin2qhf6skw0z52y29p75g41kjyh1lhzxvxizxb";
+    sha256 = "sha256-4NuHJpylIIqtFKAkFTN7T57+PEnC1NFOZukhx4oTXBA=";
   };
 
   # https://www.linuxquestions.org/questions/slackware-14/trouble-building-filezilla-3-47-2-1-current-4175671182/#post6099769
@@ -34,7 +35,7 @@ stdenv.mkDerivation rec {
     "--disable-autoupdatecheck"
   ];
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
 
   buildInputs = [
     dbus
diff --git a/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix b/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix
index b6c8a534545b..c629a8a07cd8 100644
--- a/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ftp/taxi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3, vala
+{ stdenv, fetchFromGitHub, nix-update-script, pantheon, pkgconfig, meson, ninja, python3, vala
 , gtk3, libgee, libsoup, libsecret, gobject-introspection, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/networking/gmailctl/default.nix b/nixpkgs/pkgs/applications/networking/gmailctl/default.nix
index a9b9436a211a..a32da469719b 100644
--- a/nixpkgs/pkgs/applications/networking/gmailctl/default.nix
+++ b/nixpkgs/pkgs/applications/networking/gmailctl/default.nix
@@ -16,6 +16,8 @@ buildGoModule rec {
 
   vendorSha256 = "0qp8n7z3vcsbc6safp7i18i0i3r4hy4nidzwl85i981sg12vcg6b";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Declarative configuration for Gmail filters";
     homepage = "https://github.com/mbrt/gmailctl";
@@ -23,4 +25,4 @@ buildGoModule rec {
     maintainers = [ maintainers.doronbehar ];
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/gnome-network-displays/default.nix b/nixpkgs/pkgs/applications/networking/gnome-network-displays/default.nix
new file mode 100644
index 000000000000..80fbb6dd6e74
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/gnome-network-displays/default.nix
@@ -0,0 +1,82 @@
+{ stdenv
+, fetchurl
+, fetchpatch
+# native
+, meson
+, ninja
+, pkg-config
+, gettext
+, desktop-file-utils
+, appstream-glib
+, wrapGAppsHook
+, python3
+# Not native
+, gst_all_1
+, gsettings-desktop-schemas
+, gtk3
+, glib
+, networkmanager
+, libpulseaudio
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-network-displays";
+  version = "0.90.4";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "04snnfz5jxxpjkrwa7dchc2h4shszi8mq9g3ihvsvipgzjw3d498";
+  };
+
+  patches = [
+    # Undeclared dependency on gio-unix-2.0, see:
+    # https://github.com/NixOS/nixpkgs/issues/36468 and
+    # https://gitlab.gnome.org/GNOME/gnome-network-displays/-/merge_requests/147
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-network-displays/-/commit/ef3f3ff565acd8238da46de604a1e750d4f02f07.diff";
+      sha256 = "1ljiwgqia6am4lansg70qnwkch9mp1fr6bga98s5fwyiaw6b6f4p";
+    })
+    # Fixes an upstream bug: https://gitlab.gnome.org/GNOME/gnome-network-displays/-/issues/147
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-network-displays/-/commit/23164b58f4d5dd59de988525906d6e5e82c5a63c.patch";
+      sha256 = "0x32dvkzv9m04q41aicscpf4aspghx81a65462kjqnsavi64lga5";
+    })
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    desktop-file-utils
+    appstream-glib
+    wrapGAppsHook
+    python3
+  ];
+
+  buildInputs = [
+    gtk3
+    glib
+    gsettings-desktop-schemas
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+    gst_all_1.gst-plugins-bad
+    gst_all_1.gst-plugins-ugly
+    gst_all_1.gst-rtsp-server
+    networkmanager
+    libpulseaudio
+  ];
+
+  preConfigure = ''
+    patchShebangs ./build-aux/meson/postinstall.py
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://gitlab.gnome.org/GNOME/gnome-network-displays";
+    description = "Miracast implementation for GNOME";
+    maintainers = with maintainers; [ doronbehar ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/gns3/default.nix b/nixpkgs/pkgs/applications/networking/gns3/default.nix
index 6cfc5ed3a990..4341daba9a2d 100644
--- a/nixpkgs/pkgs/applications/networking/gns3/default.nix
+++ b/nixpkgs/pkgs/applications/networking/gns3/default.nix
@@ -1,7 +1,7 @@
-{ callPackage }:
+{ callPackage, libsForQt5 }:
 
 let
-  stableVersion = "2.2.8";
+  stableVersion = "2.2.14";
   previewVersion = stableVersion;
   addVersion = args:
     let version = if args.stable then stableVersion else previewVersion;
@@ -15,18 +15,19 @@ let
           src = oldAttrs.src.override {
             inherit version sha256;
           };
-          doCheck = oldAttrs.doCheck && (attrname != "psutil");
         });
       };
     commonOverrides = [
-      (mkOverride "psutil" "5.6.6"
-        "1rs6z8bfy6bqzw88s4i5zllrx3i18hnkv4akvmw7bifngcgjh8dd")
+      (mkOverride "psutil" "5.6.7"
+        "1an5llivfkwpbcfaapbx78p8sfnvzyfypf60wfxihib1mjr8xbgz")
+      (mkOverride "jsonschema" "3.2.0"
+        "0ykr61yiiizgvm3bzipa3l73rvj49wmrybbfwhvpgk3pscl5pa68")
     ];
   };
-  mkGui = args: callPackage (import ./gui.nix (addVersion args // extraArgs)) { };
+  mkGui = args: libsForQt5.callPackage (import ./gui.nix (addVersion args // extraArgs)) { };
   mkServer = args: callPackage (import ./server.nix (addVersion args // extraArgs)) { };
-  guiSrcHash = "1qgzad9hdbvkdalzdnlg5gnlzn2f9qlpd1aj8djmi6w1mmdkf9q7";
-  serverSrcHash = "1kg38dh0xk4yvi7hz0d5dq9k0wany0sfd185l0zxs3nz78zd23an";
+  guiSrcHash = "0y0dkyky2vw8ixm8nx4qhsj5b6hk0lv2cayrj4879icmp8zc4dy3";
+  serverSrcHash = "1vpsvvisw0sivlbjwawskkyiavl092qxaqxi13khkimz5fk0d3rc";
 in {
   guiStable = mkGui {
     stable = true;
diff --git a/nixpkgs/pkgs/applications/networking/gns3/gui.nix b/nixpkgs/pkgs/applications/networking/gns3/gui.nix
index 2524731cd05c..8eb688bcd56d 100644
--- a/nixpkgs/pkgs/applications/networking/gns3/gui.nix
+++ b/nixpkgs/pkgs/applications/networking/gns3/gui.nix
@@ -1,12 +1,9 @@
 { stable, branch, version, sha256Hash, mkOverride, commonOverrides }:
 
-{ lib, stdenv, python3, fetchFromGitHub }:
+{ lib, python3, fetchFromGitHub, wrapQtAppsHook }:
 
 let
-  # TODO: This package requires qt5Full to launch
   defaultOverrides = commonOverrides ++ [
-    (mkOverride "jsonschema" "2.6.0"
-      "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg")
   ];
 
   python = python3.override {
@@ -23,15 +20,20 @@ in python.pkgs.buildPythonPackage rec {
     sha256 = sha256Hash;
   };
 
+  nativeBuildInputs = [ wrapQtAppsHook ];
   propagatedBuildInputs = with python.pkgs; [
-    raven psutil jsonschema # tox for check
+    sentry-sdk psutil jsonschema # tox for check
     # Runtime dependencies
     sip (pyqt5.override { withWebSockets = true; }) distro setuptools
   ];
 
   doCheck = false; # Failing
+  dontWrapQtApps = true;
+  postFixup = ''
+      wrapQtApp "$out/bin/gns3"
+  '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Graphical Network Simulator 3 GUI (${branch} release)";
     longDescription = ''
       Graphical user interface for controlling the GNS3 network simulator. This
diff --git a/nixpkgs/pkgs/applications/networking/gns3/server.nix b/nixpkgs/pkgs/applications/networking/gns3/server.nix
index 32dc42e9f51a..bbf3f0514c45 100644
--- a/nixpkgs/pkgs/applications/networking/gns3/server.nix
+++ b/nixpkgs/pkgs/applications/networking/gns3/server.nix
@@ -4,8 +4,19 @@
 
 let
   defaultOverrides = commonOverrides ++ [
-    (mkOverride "jsonschema" "2.6.0"
-      "00kf3zmpp9ya4sydffpifn0j0mzm342a2vzh82p6r0vh10cg7xbg")
+    (mkOverride "aiofiles" "0.5.0"
+      "98e6bcfd1b50f97db4980e182ddd509b7cc35909e903a8fe50d8849e02d815af")
+    (self: super: {
+      py-cpuinfo = super.py-cpuinfo.overridePythonAttrs (oldAttrs: rec {
+        version = "7.0.0";
+        src = fetchFromGitHub {
+           owner = "workhorsy";
+           repo = "py-cpuinfo";
+           rev = "v${version}";
+           sha256 = "10qfaibyb2syiwiyv74l7d97vnmlk079qirgnw3ncklqjs0s3gbi";
+        };
+      });
+    })
   ];
 
   python = python3.override {
@@ -29,7 +40,7 @@ in python.pkgs.buildPythonPackage {
 
   propagatedBuildInputs = with python.pkgs; [
     aiohttp-cors yarl aiohttp multidict setuptools
-    jinja2 psutil zipstream raven jsonschema distro async_generator aiofiles
+    jinja2 psutil zipstream sentry-sdk jsonschema distro async_generator aiofiles
     prompt_toolkit py-cpuinfo
   ];
 
diff --git a/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix b/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix
new file mode 100644
index 000000000000..71726056a554
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/gopher/sacc/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchgit, ncurses
+, patches ? [] # allow users to easily override config.def.h
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sacc";
+  version = "1.01";
+
+  src = fetchgit {
+    url = "git://bitreich.org/sacc";
+    rev = version;
+    sha256 = "0n6ghbi715m7hrxzqggx1bpqj8h7569s72b9bzk6m4gd29jaq9hz";
+  };
+
+  inherit patches;
+
+  buildInputs = [ ncurses ];
+
+  postPatch = ''
+    substituteInPlace config.mk \
+      --replace curses ncurses \
+      --replace "/usr/local" "$out"
+    '';
+
+  meta = with stdenv.lib; {
+    description = "A terminal gopher client";
+    homepage = "gopher://bitreich.org/1/scm/sacc";
+    license = licenses.isc;
+    maintainers = [ maintainers.sternenseemann ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/hydroxide/default.nix b/nixpkgs/pkgs/applications/networking/hydroxide/default.nix
index 4753cd464b13..cf872b77b8d1 100644
--- a/nixpkgs/pkgs/applications/networking/hydroxide/default.nix
+++ b/nixpkgs/pkgs/applications/networking/hydroxide/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "hydroxide";
-  version = "0.2.14";
+  version = "0.2.15";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0d8wjyzmw89yhrszz487f7i19rcz7xlx4w2wd4c69k5nsdrs6dys";
+    sha256 = "0r91cq39n89hfy8sbdy5vjzqfrsfd7cdhd41gwszpayq65qhbsyp";
   };
 
-  vendorSha256 = "0d8yfmsl8rycbq8gjnvc657j14644lq0zmr9l88ik360szw6v6gc";
+  vendorSha256 = "1r5qg5cx48yw1l5nil28y4a82fc7g52jmy9pckaxygppmmn539pc";
+
+  doCheck = false;
 
   subPackages = [ "cmd/hydroxide" ];
 
@@ -22,4 +24,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ filalex77 ];
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/ids/snort/default.nix b/nixpkgs/pkgs/applications/networking/ids/snort/default.nix
index 49f7bbfd8120..3392ce282df7 100644
--- a/nixpkgs/pkgs/applications/networking/ids/snort/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ids/snort/default.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     "--enable-control-socket"
     "--with-daq-includes=${daq}/includes"
     "--with-daq-libraries=${daq}/lib"
-  ]; 
+  ];
 
   postInstall = ''
     wrapProgram $out/bin/snort --add-flags "--daq-dir ${daq}/lib/daq --dynamic-preprocessor-lib-dir $out/lib/snort_dynamicpreprocessor/ --dynamic-engine-lib-dir $out/lib/snort_dynamicengine"
diff --git a/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix b/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix
index 8fe856f9773f..a6189da7ee3e 100644
--- a/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ids/zeek/default.nix
@@ -1,19 +1,36 @@
-{stdenv, fetchurl, cmake, flex, bison, openssl, libpcap, zlib, file, curl
-, libmaxminddb, gperftools, python, swig, fetchpatch }:
+{ stdenv
+, fetchurl
+, cmake
+, flex
+, bison
+, openssl
+, libpcap
+, zlib
+, file
+, curl
+, libmaxminddb
+, gperftools
+, python
+, swig
+, gettext
+, fetchpatch
+, coreutils
+}:
 let
-  preConfigure = (import ./script.nix);
+  preConfigure = (import ./script.nix {inherit coreutils;});
 in
 stdenv.mkDerivation rec {
   pname = "zeek";
-  version = "3.1.2";
+  version = "3.2.1";
 
   src = fetchurl {
     url = "https://download.zeek.org/zeek-${version}.tar.gz";
-    sha256 = "18aa4pfwav8m6vq7cr4bhfg243da54ak933rqbriljnhsrgp4n0q";
+    sha256 = "0rybs79h0sq12vsayah8dixqac404z84rlvqynvzf3dh2lwcgg0y";
   };
 
   nativeBuildInputs = [ cmake flex bison file ];
-  buildInputs = [ openssl libpcap zlib curl libmaxminddb gperftools python swig ];
+  buildInputs = [ openssl libpcap zlib curl libmaxminddb gperftools python swig ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ gettext ];
 
   #see issue https://github.com/zeek/zeek/issues/804 to modify hardlinking duplicate files.
   inherit preConfigure;
@@ -24,8 +41,8 @@ stdenv.mkDerivation rec {
     # Fix pybind c++17 build with Clang. See: https://github.com/pybind/pybind11/issues/1604
     (fetchpatch {
       url = "https://github.com/pybind/pybind11/commit/759221f5c56939f59d8f342a41f8e2d2cacbc8cf.patch";
-      sha256 = "0l8z7d7chq1awd8dnfarj4c40wx36hkhcan0702p5l89x73wqk54";
-      extraPrefix = "aux/broker/bindings/python/3rdparty/pybind11/";
+      sha256 = "17qznp8yavnv84fjsbghv3d59z6k6rx74j49w0izakmgw5a95w84";
+      extraPrefix = "auxil/broker/bindings/python/3rdparty/pybind11/";
       stripLen = 1;
     })
   ];
diff --git a/nixpkgs/pkgs/applications/networking/ids/zeek/script.nix b/nixpkgs/pkgs/applications/networking/ids/zeek/script.nix
index 10a2d11a1489..4c8bbcf22c03 100644
--- a/nixpkgs/pkgs/applications/networking/ids/zeek/script.nix
+++ b/nixpkgs/pkgs/applications/networking/ids/zeek/script.nix
@@ -1,4 +1,10 @@
+{coreutils}:
 ''
+   sed -i 's|/bin/mv|${coreutils}/bin/mv|' scripts/base/frameworks/logging/writers/ascii.zeek
+   sed -i 's|/bin/mv|${coreutils}/bin/mv|' scripts/policy/misc/trim-trace-file.zeek
+   sed -i 's|/bin/cat|${coreutils}/bin/cat|' scripts/base/frameworks/notice/actions/pp-alarms.zeek
+   sed -i 's|/bin/cat|${coreutils}/bin/cat|' scripts/base/frameworks/notice/main.zeek
+
    sed -i "1i##! test dpd" $PWD/scripts/base/frameworks/dpd/__load__.zeek
    sed -i "1i##! test x509" $PWD/scripts/base/files/x509/__load__.zeek
    sed -i "1i##! test files-extract" $PWD/scripts/base/files/extract/__load__.zeek
@@ -32,6 +38,7 @@
    sed -i "1i##! test dns" $PWD/scripts/base/protocols/dns/__load__.zeek
    sed -i "1i##! test ftp" $PWD/scripts/base/protocols/ftp/__load__.zeek
    sed -i "1i##! test http" $PWD/scripts/base/protocols/http/__load__.zeek
+   sed -i "1i##! test tunnels" $PWD/scripts/base/protocols/tunnels/__load__.zeek
    sed -i "1i##! test imap" $PWD/scripts/base/protocols/imap/__load__.zeek
    sed -i "1i##! test irc" $PWD/scripts/base/protocols/irc/__load__.zeek
    sed -i "1i##! test krb" $PWD/scripts/base/protocols/krb/__load__.zeek
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix
index f383daa6fd02..28cc38360576 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/blink/default.nix
@@ -39,7 +39,7 @@ mkDerivationWith pythonPackages.buildPythonApplication rec {
     desktopName = "Blink";
     icon = "blink";
     genericName = "Instant Messaging";
-    categories = "Application;Internet;";
+    categories = "Internet;";
   };
 
   dontWrapQtApps = true;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
index bd71166be222..f8bcdc4bef7c 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
@@ -1,8 +1,7 @@
 { stdenv
+, lib
 , fetchurl
 , rpmextract
-, patchelf
-, patchelfUnstable
 , libnotify
 , libuuid
 , cairo
@@ -40,11 +39,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bluejeans";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchurl {
     url = "https://swdl.bluejeans.com/desktop-app/linux/${version}/BlueJeans.rpm";
-    sha256 = "06lcpkga8h0zpl2wlysj6n979f0yg361frp3zr0vwzln3fiil2a7";
+    sha256 = "180hc854ngwfn6y6nsrfn74rv78cxhq6sgshrca5zqv6wq3l98g0";
   };
 
   nativeBuildInputs = [ rpmextract makeWrapper ];
@@ -64,7 +63,7 @@ stdenv.mkDerivation rec {
         expat
         gdk-pixbuf
         dbus
-        udev.lib
+        (lib.getLib udev)
         freetype
         nspr
         glib
@@ -96,11 +95,11 @@ stdenv.mkDerivation rec {
     mv usr/share share
     rmdir usr
 
-    ${patchelf}/bin/patchelf \
+    patchelf \
       --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
       --replace-needed libudev.so.0 libudev.so.1 \
       opt/BlueJeans/bluejeans-v2
-    ${patchelfUnstable}/bin/patchelf \
+    patchelf \
       --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
       opt/BlueJeans/resources/BluejeansHelper
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
index 553b466b12f9..617c02de2635 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/chatterino2/default.nix
@@ -2,12 +2,12 @@
 
 mkDerivation rec {
   pname = "chatterino2";
-  version = "unstable-2019-05-11";
+  version = "2.2.2";
   src = fetchFromGitHub {
-    owner = "fourtf";
+    owner = "Chatterino";
     repo = pname;
-    rev = "8c46cbf571dc8fd77287bf3186445ff52b1d1aaf";
-    sha256 = "0i2385hamhd9i7jdy906cfrd81cybw524j92l87c8pzrkxphignk";
+    rev = "v${version}";
+    sha256 = "026cs48hmqkv7k4akbm205avj2pn3x1g7q46chwa707k9km325dz";
     fetchSubmodules = true;
   };
   nativeBuildInputs = [ qmake pkgconfig wrapQtAppsHook ];
@@ -26,8 +26,9 @@ mkDerivation rec {
       improved/extended version of the Twitch web chat. Chatterino 2 is
       the second installment of the Twitch chat client series
       "Chatterino".
-  '';
-    homepage = "https://github.com/fourtf/chatterino2";
+    '';
+    homepage = "https://github.com/Chatterino/chatterino2";
+    changelog = "https://github.com/Chatterino/chatterino2/blob/master/CHANGELOG.md";
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ rexim ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix
new file mode 100644
index 000000000000..a262b0487464
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/cordless/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "cordless";
+  version = "2020-08-30";
+
+  src = fetchFromGitHub {
+    owner = "Bios-Marcel";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-CwOI7Ah4+sxD9We+Va5a6jYat5mjOeBk2EsOfwskz6k=";
+  };
+
+  subPackages = [ "." ];
+
+  vendorSha256 = "sha256-01I7GrZkaskuz20kVK2YwqvP7ViPMlQ3BFaoLHwgvOE=";
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/Bios-Marcel/cordless";
+    description = "Discord terminal client";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ colemickens ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
index 71c7c3b0715d..03508c2ffb53 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/dino/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub
+{ lib, stdenv, fetchFromGitHub
 , vala, cmake, ninja, wrapGAppsHook, pkgconfig, gettext
 , gobject-introspection, gnome3, glib, gdk-pixbuf, gtk3, glib-networking
 , xorg, libXdmcp, libxkbcommon
@@ -51,23 +51,39 @@ stdenv.mkDerivation rec {
     libgcrypt
     libsoup
     pcre
-    xorg.libxcb
-    xorg.libpthreadstubs
-    libXdmcp
-    libxkbcommon
     epoxy
     at-spi2-core
     dbus
     icu
     libsignal-protocol-c
     librsvg
+  ] ++ lib.optionals (!stdenv.isDarwin) [
+    xorg.libxcb
+    xorg.libpthreadstubs
+    libXdmcp
+    libxkbcommon
   ];
 
+  # Dino looks for plugins with a .so filename extension, even on macOS where
+  # .dylib is appropriate, and despite the fact that it builds said plugins with
+  # that as their filename extension
+  #
+  # Therefore, on macOS rename all of the plugins to use correct names that Dino
+  # will load
+  #
+  # See https://github.com/dino/dino/wiki/macOS
+  postFixup = lib.optionalString (stdenv.isDarwin) ''
+    cd "$out/lib/dino/plugins/"
+    for f in *.dylib; do
+      mv "$f" "$(basename "$f" .dylib).so"
+    done
+  '';
+
   meta = with stdenv.lib; {
     description = "Modern Jabber/XMPP Client using GTK/Vala";
     homepage = "https://github.com/dino/dino";
     license = licenses.gpl3;
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ mic92 qyliss ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix
index c2af3e4d3e7d..0ee84dae356e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/base.nix
@@ -4,7 +4,7 @@
 , freetype, gdk-pixbuf, glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid
 , libX11, libXScrnSaver, libXcomposite, libXcursor, libXdamage, libXext
 , libXfixes, libXi, libXrandr, libXrender, libXtst, libxcb
-, mesa, nspr, nss, pango, systemd
+, mesa, nspr, nss, pango, systemd, libappindicator-gtk3
 }:
 
 let
@@ -35,6 +35,7 @@ in stdenv.mkDerivation rec {
     gdk-pixbuf glib gtk3 libnotify libX11 libXcomposite libuuid
     libXcursor libXdamage libXext libXfixes libXi libXrandr libXrender
     libXtst nspr nss libxcb pango systemd libXScrnSaver
+    libappindicator-gtk3
    ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
index bc76949e80ab..649e3b673df9 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -7,30 +7,30 @@ in {
     pname = "discord";
     binaryName = "Discord";
     desktopName = "Discord";
-    version = "0.0.10";
+    version = "0.0.12";
     src = fetchurl {
       url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
-      sha256 = "0kx92i8naqr3algmyy3wyzbh8146z7gigxwf1nbpg1gl16wlplaq";
+      sha256 = "0qrzvc8cp8azb1b2wb5i4jh9smjfw5rxiw08bfqm8p3v74ycvwk8";
     };
   };
   ptb = callPackage ./base.nix rec {
     pname = "discord-ptb";
     binaryName = "DiscordPTB";
     desktopName = "Discord PTB";
-    version = "0.0.19";
+    version = "0.0.22";
     src = fetchurl {
       url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
-      sha256 = "0wixmm16qsmgbr0l9144vl5pc3s2p4jqhl7cnc6kmgy1y4ig56ib";
+      sha256 = "06qyh8i9d7il6q7q7iaymbbcmdcgrj6rc4z4xik1ay3fr7qy299j";
     };
   };
   canary = callPackage ./base.nix rec {
     pname = "discord-canary";
     binaryName = "DiscordCanary";
     desktopName = "Discord Canary";
-    version = "0.0.104";
+    version = "0.0.112";
     src = fetchurl {
       url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
-      sha256 = "17np1hqqygjlbmlln0d1ba2qlbjykwj156w5dw7g4lg77kfxicfk";
+      sha256 = "1ibw3lsk1060g6b79v78292q45ayqj3izrs3ilvg4gfwmfxmm1a0";
     };
   };
 }.${branch}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop-package.json b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
index f9a5ebdbebe3..8d2632420f75 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop-package.json
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
@@ -1,10 +1,10 @@
 {
-  "name": "riot-desktop",
-  "productName": "Riot",
+  "name": "element-desktop",
+  "productName": "Element",
   "main": "src/electron-main.js",
-  "version": "1.6.5",
+  "version": "1.7.7",
   "description": "A feature-rich client for Matrix.org",
-  "author": "New Vector Ltd.",
+  "author": "Element",
   "repository": {
     "type": "git",
     "url": "https://github.com/vector-im/riot-desktop"
@@ -38,31 +38,30 @@
   },
   "devDependencies": {
     "asar": "^2.0.1",
-    "electron-builder": "^22.3.2",
-    "electron-builder-squirrel-windows": "^22.3.2",
+    "electron-builder": "^22.7.0",
+    "electron-builder-squirrel-windows": "^22.7.0",
     "electron-devtools-installer": "^2.2.4",
     "electron-notarize": "^0.2.0",
-    "eslint": "^5.8.0",
-    "eslint-config-google": "^0.7.1",
-    "eslint-plugin-babel": "^4.1.2",
+    "eslint": "7.3.1",
+    "eslint-config-matrix-org": "^0.1.2",
     "find-npm-prefix": "^1.0.2",
     "fs-extra": "^8.1.0",
     "glob": "^7.1.6",
-    "matrix-js-sdk": "6.2.2",
     "mkdirp": "^1.0.3",
-    "needle": "^2.3.2",
-    "node-pre-gyp": "^0.14.0",
-    "npm": "^6.13.7",
+    "needle": "^2.5.0",
+    "node-pre-gyp": "^0.15.0",
+    "npm": "^6.14.6",
     "rimraf": "^3.0.2",
     "semver": "^7.1.3",
     "tar": "^6.0.1"
   },
   "hakDependencies": {
-    "matrix-seshat": "^1.3.3"
+    "matrix-seshat": "^2.1.0",
+    "keytar": "^5.6.0"
   },
   "build": {
     "appId": "im.riot.app",
-    "electronVersion": "8.0.3",
+    "electronVersion": "9.1.2",
     "files": [
       "package.json",
       {
@@ -81,9 +80,9 @@
     "linux": {
       "target": "deb",
       "category": "Network;InstantMessaging;Chat",
-      "maintainer": "support@riot.im",
+      "maintainer": "support@element.io",
       "desktop": {
-        "StartupWMClass": "riot"
+        "StartupWMClass": "element"
       }
     },
     "mac": {
@@ -99,12 +98,13 @@
     "directories": {
       "output": "dist"
     },
+    "afterPack": "scripts/electron_afterPack",
     "afterSign": "scripts/electron_afterSign",
     "protocols": [
       {
-        "name": "riot",
+        "name": "element",
         "schemes": [
-          "riot"
+          "element"
         ]
       }
     ]
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop-yarndeps.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
index 30e1c9464755..f0175f2febf8 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop-yarndeps.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
@@ -2,14 +2,6 @@
   offline_cache = linkFarm "offline" packages;
   packages = [
     {
-      name = "7zip_bin___7zip_bin_4.0.2.tgz";
-      path = fetchurl {
-        name = "7zip_bin___7zip_bin_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-4.0.2.tgz";
-        sha1 = "6abbdc22f33cab742053777a26db2e25ca527179";
-      };
-    }
-    {
       name = "7zip_bin___7zip_bin_5.0.3.tgz";
       path = fetchurl {
         name = "7zip_bin___7zip_bin_5.0.3.tgz";
@@ -34,6 +26,54 @@
       };
     }
     {
+      name = "_babel_code_frame___code_frame_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_code_frame___code_frame_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz";
+        sha1 = "168da1a36e90da68ae8d49c0f1b48c7c6249213a";
+      };
+    }
+    {
+      name = "_babel_generator___generator_7.10.5.tgz";
+      path = fetchurl {
+        name = "_babel_generator___generator_7.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.5.tgz";
+        sha1 = "1b903554bc8c583ee8d25f1e8969732e6b829a69";
+      };
+    }
+    {
+      name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
+        sha1 = "d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a";
+      };
+    }
+    {
+      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
+        sha1 = "98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2";
+      };
+    }
+    {
+      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz";
+        sha1 = "2c70576eaa3b5609b24cb99db2888cc3fc4251d1";
+      };
+    }
+    {
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
+        sha1 = "a78c7a7251e01f616512d31b10adcf52ada5e0d2";
+      };
+    }
+    {
       name = "_babel_highlight___highlight_7.5.0.tgz";
       path = fetchurl {
         name = "_babel_highlight___highlight_7.5.0.tgz";
@@ -42,19 +82,51 @@
       };
     }
     {
-      name = "_babel_runtime___runtime_7.9.2.tgz";
+      name = "_babel_highlight___highlight_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_highlight___highlight_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz";
+        sha1 = "7d1bdfd65753538fabe6c38596cdb76d9ac60143";
+      };
+    }
+    {
+      name = "_babel_parser___parser_7.10.5.tgz";
       path = fetchurl {
-        name = "_babel_runtime___runtime_7.9.2.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz";
-        sha1 = "d90df0583a3a252f09aaa619665367bae518db06";
+        name = "_babel_parser___parser_7.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.5.tgz";
+        sha1 = "e7c6bf5a7deff957cec9f04b551e2762909d826b";
       };
     }
     {
-      name = "_develar_schema_utils___schema_utils_2.1.0.tgz";
+      name = "_babel_template___template_7.10.4.tgz";
       path = fetchurl {
-        name = "_develar_schema_utils___schema_utils_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.1.0.tgz";
-        sha1 = "eceb1695bfbed6f6bb84666d5d3abe5e1fd54e17";
+        name = "_babel_template___template_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz";
+        sha1 = "3251996c4200ebc71d1a8fc405fba940f36ba278";
+      };
+    }
+    {
+      name = "_babel_traverse___traverse_7.10.5.tgz";
+      path = fetchurl {
+        name = "_babel_traverse___traverse_7.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.5.tgz";
+        sha1 = "77ce464f5b258be265af618d8fddf0536f20b564";
+      };
+    }
+    {
+      name = "_babel_types___types_7.10.5.tgz";
+      path = fetchurl {
+        name = "_babel_types___types_7.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.10.5.tgz";
+        sha1 = "d88ae7e2fde86bfbfe851d4d81afa70a997b5d15";
+      };
+    }
+    {
+      name = "_develar_schema_utils___schema_utils_2.6.5.tgz";
+      path = fetchurl {
+        name = "_develar_schema_utils___schema_utils_2.6.5.tgz";
+        url  = "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz";
+        sha1 = "3ece22c5838402419a6e0425f85742b961d9b6c6";
       };
     }
     {
@@ -98,11 +170,35 @@
       };
     }
     {
-      name = "_types_fs_extra___fs_extra_8.0.1.tgz";
+      name = "_types_eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
+      path = fetchurl {
+        name = "_types_eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz";
+        sha1 = "1ee30d79544ca84d68d4b3cdb0af4f205663dd2d";
+      };
+    }
+    {
+      name = "_types_fs_extra___fs_extra_9.0.1.tgz";
+      path = fetchurl {
+        name = "_types_fs_extra___fs_extra_9.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.1.tgz";
+        sha1 = "91c8fc4c51f6d5dbe44c2ca9ab09310bd00c7918";
+      };
+    }
+    {
+      name = "_types_json_schema___json_schema_7.0.5.tgz";
+      path = fetchurl {
+        name = "_types_json_schema___json_schema_7.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz";
+        sha1 = "dcce4430e64b443ba8945f0290fb564ad5bac6dd";
+      };
+    }
+    {
+      name = "_types_json5___json5_0.0.29.tgz";
       path = fetchurl {
-        name = "_types_fs_extra___fs_extra_8.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-8.0.1.tgz";
-        sha1 = "a2378d6e7e8afea1564e44aafa2e207dadf77686";
+        name = "_types_json5___json5_0.0.29.tgz";
+        url  = "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz";
+        sha1 = "ee28707ae94e11d2b827bcbe5270bcea7f3e71ee";
       };
     }
     {
@@ -122,6 +218,70 @@
       };
     }
     {
+      name = "_types_yargs_parser___yargs_parser_15.0.0.tgz";
+      path = fetchurl {
+        name = "_types_yargs_parser___yargs_parser_15.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz";
+        sha1 = "cb3f9f741869e20cce330ffbeb9271590483882d";
+      };
+    }
+    {
+      name = "_types_yargs___yargs_15.0.5.tgz";
+      path = fetchurl {
+        name = "_types_yargs___yargs_15.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz";
+        sha1 = "947e9a6561483bdee9adffc983e91a6902af8b79";
+      };
+    }
+    {
+      name = "_typescript_eslint_eslint_plugin___eslint_plugin_3.7.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_eslint_plugin___eslint_plugin_3.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.7.0.tgz";
+        sha1 = "0f91aa3c83d019591719e597fbdb73a59595a263";
+      };
+    }
+    {
+      name = "_typescript_eslint_experimental_utils___experimental_utils_3.7.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_experimental_utils___experimental_utils_3.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.7.0.tgz";
+        sha1 = "0ee21f6c48b2b30c63211da23827725078d5169a";
+      };
+    }
+    {
+      name = "_typescript_eslint_parser___parser_3.7.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_parser___parser_3.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.7.0.tgz";
+        sha1 = "3e9cd9df9ea644536feb6e5acdb8279ecff96ce9";
+      };
+    }
+    {
+      name = "_typescript_eslint_types___types_3.7.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_types___types_3.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.7.0.tgz";
+        sha1 = "09897fab0cb95479c01166b10b2c03c224821077";
+      };
+    }
+    {
+      name = "_typescript_eslint_typescript_estree___typescript_estree_3.7.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_typescript_estree___typescript_estree_3.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.7.0.tgz";
+        sha1 = "66872e6da120caa4b64e6b4ca5c8702afc74738d";
+      };
+    }
+    {
+      name = "_typescript_eslint_visitor_keys___visitor_keys_3.7.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_visitor_keys___visitor_keys_3.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.7.0.tgz";
+        sha1 = "ac0417d382a136e4571a0b0dcfe52088cb628177";
+      };
+    }
+    {
       name = "JSONStream___JSONStream_1.3.5.tgz";
       path = fetchurl {
         name = "JSONStream___JSONStream_1.3.5.tgz";
@@ -138,19 +298,19 @@
       };
     }
     {
-      name = "acorn_jsx___acorn_jsx_5.1.0.tgz";
+      name = "acorn_jsx___acorn_jsx_5.2.0.tgz";
       path = fetchurl {
-        name = "acorn_jsx___acorn_jsx_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz";
-        sha1 = "294adb71b57398b0680015f0a38c563ee1db5384";
+        name = "acorn_jsx___acorn_jsx_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz";
+        sha1 = "4c66069173d6fdd68ed85239fc256226182b2ebe";
       };
     }
     {
-      name = "acorn___acorn_6.4.1.tgz";
+      name = "acorn___acorn_7.3.1.tgz";
       path = fetchurl {
-        name = "acorn___acorn_6.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz";
-        sha1 = "531e58ba3f51b9dacb9a6646ca4debf5b14ca474";
+        name = "acorn___acorn_7.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz";
+        sha1 = "85010754db53c3fbaf3b9ea3e083aa5c5d147ffd";
       };
     }
     {
@@ -186,6 +346,14 @@
       };
     }
     {
+      name = "ajv___ajv_6.12.3.tgz";
+      path = fetchurl {
+        name = "ajv___ajv_6.12.3.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz";
+        sha1 = "18c5af38a111ddeb4f2697bd78d68abc1cabd706";
+      };
+    }
+    {
       name = "ajv___ajv_6.10.2.tgz";
       path = fetchurl {
         name = "ajv___ajv_6.10.2.tgz";
@@ -194,11 +362,11 @@
       };
     }
     {
-      name = "another_json___another_json_0.2.0.tgz";
+      name = "ajv___ajv_6.12.2.tgz";
       path = fetchurl {
-        name = "another_json___another_json_0.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/another-json/-/another-json-0.2.0.tgz";
-        sha1 = "b5f4019c973b6dd5c6506a2d93469cb6d32aeedc";
+        name = "ajv___ajv_6.12.2.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz";
+        sha1 = "c629c5eced17baf314437918d2da88c99d5958cd";
       };
     }
     {
@@ -218,11 +386,19 @@
       };
     }
     {
-      name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
+      name = "ansi_colors___ansi_colors_4.1.1.tgz";
+      path = fetchurl {
+        name = "ansi_colors___ansi_colors_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz";
+        sha1 = "cbb9ae256bf750af1eab344f229aa27fe94ba348";
+      };
+    }
+    {
+      name = "ansi_escapes___ansi_escapes_4.3.1.tgz";
       path = fetchurl {
-        name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
-        sha1 = "8780b98ff9dbf5638152d1f1fe5c1d7b4442976b";
+        name = "ansi_escapes___ansi_escapes_4.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz";
+        sha1 = "a5c47cc43181f1f38ffd7076837700d395522a61";
       };
     }
     {
@@ -290,27 +466,19 @@
       };
     }
     {
-      name = "app_builder_bin___app_builder_bin_3.5.2.tgz";
-      path = fetchurl {
-        name = "app_builder_bin___app_builder_bin_3.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.2.tgz";
-        sha1 = "fba56e6e9ef76fcd37816738c5f9a0b3992d7183";
-      };
-    }
-    {
-      name = "app_builder_lib___app_builder_lib_22.3.2.tgz";
+      name = "app_builder_bin___app_builder_bin_3.5.9.tgz";
       path = fetchurl {
-        name = "app_builder_lib___app_builder_lib_22.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.3.2.tgz";
-        sha1 = "d43e0bdff91d484c0bd07d7248043dbb2665b8ac";
+        name = "app_builder_bin___app_builder_bin_3.5.9.tgz";
+        url  = "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.9.tgz";
+        sha1 = "a3ac0c25286bac68357321cb2eaf7128b0bc0a4f";
       };
     }
     {
-      name = "app_builder_lib___app_builder_lib_22.3.3.tgz";
+      name = "app_builder_lib___app_builder_lib_22.7.0.tgz";
       path = fetchurl {
-        name = "app_builder_lib___app_builder_lib_22.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.3.3.tgz";
-        sha1 = "9a95a3c14f69fb6131834dd840fba561191c9998";
+        name = "app_builder_lib___app_builder_lib_22.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.7.0.tgz";
+        sha1 = "ccd3e7ece2d46bc209423a77aa142f74aaf65db0";
       };
     }
     {
@@ -346,11 +514,11 @@
       };
     }
     {
-      name = "archiver___archiver_3.1.1.tgz";
+      name = "archiver___archiver_4.0.1.tgz";
       path = fetchurl {
-        name = "archiver___archiver_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/archiver/-/archiver-3.1.1.tgz";
-        sha1 = "9db7819d4daf60aec10fe86b16cb9258ced66ea0";
+        name = "archiver___archiver_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/archiver/-/archiver-4.0.1.tgz";
+        sha1 = "3f722b121777e361ca9fad374ecda38e77e63c7f";
       };
     }
     {
@@ -378,6 +546,30 @@
       };
     }
     {
+      name = "array_includes___array_includes_3.1.1.tgz";
+      path = fetchurl {
+        name = "array_includes___array_includes_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz";
+        sha1 = "cdd67e6852bdf9c1215460786732255ed2459348";
+      };
+    }
+    {
+      name = "array.prototype.flat___array.prototype.flat_1.2.3.tgz";
+      path = fetchurl {
+        name = "array.prototype.flat___array.prototype.flat_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz";
+        sha1 = "0de82b426b0318dbfdb940089e38b043d37f6c7b";
+      };
+    }
+    {
+      name = "array.prototype.flatmap___array.prototype.flatmap_1.2.3.tgz";
+      path = fetchurl {
+        name = "array.prototype.flatmap___array.prototype.flatmap_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz";
+        sha1 = "1c13f84a178566042dd63de4414440db9222e443";
+      };
+    }
+    {
       name = "asap___asap_2.0.6.tgz";
       path = fetchurl {
         name = "asap___asap_2.0.6.tgz";
@@ -426,6 +618,14 @@
       };
     }
     {
+      name = "async___async_0.9.2.tgz";
+      path = fetchurl {
+        name = "async___async_0.9.2.tgz";
+        url  = "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz";
+        sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d";
+      };
+    }
+    {
       name = "async___async_2.6.3.tgz";
       path = fetchurl {
         name = "async___async_2.6.3.tgz";
@@ -442,6 +642,14 @@
       };
     }
     {
+      name = "at_least_node___at_least_node_1.0.0.tgz";
+      path = fetchurl {
+        name = "at_least_node___at_least_node_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz";
+        sha1 = "602cd4b46e844ad4effc92a8011a3c46e0238dc2";
+      };
+    }
+    {
       name = "auto_launch___auto_launch_5.0.5.tgz";
       path = fetchurl {
         name = "auto_launch___auto_launch_5.0.5.tgz";
@@ -466,19 +674,19 @@
       };
     }
     {
-      name = "balanced_match___balanced_match_1.0.0.tgz";
+      name = "babel_eslint___babel_eslint_10.1.0.tgz";
       path = fetchurl {
-        name = "balanced_match___balanced_match_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
-        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+        name = "babel_eslint___babel_eslint_10.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz";
+        sha1 = "6968e568a910b78fb3779cdd8b6ac2f479943232";
       };
     }
     {
-      name = "base_x___base_x_3.0.7.tgz";
+      name = "balanced_match___balanced_match_1.0.0.tgz";
       path = fetchurl {
-        name = "base_x___base_x_3.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/base-x/-/base-x-3.0.7.tgz";
-        sha1 = "1c5a7fafe8f66b4114063e8da102799d4e7c408f";
+        name = "balanced_match___balanced_match_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
+        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
       };
     }
     {
@@ -514,11 +722,11 @@
       };
     }
     {
-      name = "bl___bl_3.0.0.tgz";
+      name = "bl___bl_4.0.3.tgz";
       path = fetchurl {
-        name = "bl___bl_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/bl/-/bl-3.0.0.tgz";
-        sha1 = "3611ec00579fd18561754360b21e9f784500ff88";
+        name = "bl___bl_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz";
+        sha1 = "12d6287adc29080e22a705e5764b2a9522cdc489";
       };
     }
     {
@@ -570,22 +778,6 @@
       };
     }
     {
-      name = "browser_request___browser_request_0.3.3.tgz";
-      path = fetchurl {
-        name = "browser_request___browser_request_0.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/browser-request/-/browser-request-0.3.3.tgz";
-        sha1 = "9ece5b5aca89a29932242e18bf933def9876cc17";
-      };
-    }
-    {
-      name = "bs58___bs58_4.0.1.tgz";
-      path = fetchurl {
-        name = "bs58___bs58_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz";
-        sha1 = "be161e76c354f6f788ae4071f63f34e8c4f0a42a";
-      };
-    }
-    {
       name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
       path = fetchurl {
         name = "buffer_crc32___buffer_crc32_0.2.13.tgz";
@@ -610,35 +802,27 @@
       };
     }
     {
-      name = "buffer___buffer_5.4.3.tgz";
+      name = "buffer___buffer_5.6.0.tgz";
       path = fetchurl {
-        name = "buffer___buffer_5.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/buffer/-/buffer-5.4.3.tgz";
-        sha1 = "3fbc9c69eb713d323e3fc1a895eee0710c072115";
+        name = "buffer___buffer_5.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz";
+        sha1 = "a31749dc7d81d84db08abf937b6b8c4033f62786";
       };
     }
     {
-      name = "builder_util_runtime___builder_util_runtime_8.6.0.tgz";
+      name = "builder_util_runtime___builder_util_runtime_8.7.1.tgz";
       path = fetchurl {
-        name = "builder_util_runtime___builder_util_runtime_8.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.6.0.tgz";
-        sha1 = "b7007c30126da9a90e99932128d2922c8c178649";
+        name = "builder_util_runtime___builder_util_runtime_8.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.1.tgz";
+        sha1 = "23c808cddd650d4376a7a1518ec1e80e85c10f00";
       };
     }
     {
-      name = "builder_util___builder_util_22.3.2.tgz";
+      name = "builder_util___builder_util_22.7.0.tgz";
       path = fetchurl {
-        name = "builder_util___builder_util_22.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.3.2.tgz";
-        sha1 = "23c61aaf0f0006f994087b33a26e47cdaec7aa8d";
-      };
-    }
-    {
-      name = "builder_util___builder_util_22.3.3.tgz";
-      path = fetchurl {
-        name = "builder_util___builder_util_22.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.3.3.tgz";
-        sha1 = "62f0527ceaa1a2e4a60596a9b38ad1ffe3e20ae6";
+        name = "builder_util___builder_util_22.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/builder-util/-/builder-util-22.7.0.tgz";
+        sha1 = "0776a66e6d6e408a78bed7f17a7ad22516d9e7f0";
       };
     }
     {
@@ -746,6 +930,14 @@
       };
     }
     {
+      name = "chalk___chalk_4.1.0.tgz";
+      path = fetchurl {
+        name = "chalk___chalk_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz";
+        sha1 = "4e14870a618d9e2edd97dd8345fd9d9dc315646a";
+      };
+    }
+    {
       name = "chardet___chardet_0.7.0.tgz";
       path = fetchurl {
         name = "chardet___chardet_0.7.0.tgz";
@@ -826,11 +1018,11 @@
       };
     }
     {
-      name = "cli_cursor___cli_cursor_2.1.0.tgz";
+      name = "cli_cursor___cli_cursor_3.1.0.tgz";
       path = fetchurl {
-        name = "cli_cursor___cli_cursor_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz";
-        sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5";
+        name = "cli_cursor___cli_cursor_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz";
+        sha1 = "264305a7ae490d1d03bf0c9ba7c925d1753af307";
       };
     }
     {
@@ -842,11 +1034,11 @@
       };
     }
     {
-      name = "cli_width___cli_width_2.2.0.tgz";
+      name = "cli_width___cli_width_3.0.0.tgz";
       path = fetchurl {
-        name = "cli_width___cli_width_2.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz";
-        sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639";
+        name = "cli_width___cli_width_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz";
+        sha1 = "a2f48437a2caa9a22436e794bf071ec9e61cedf6";
       };
     }
     {
@@ -970,11 +1162,11 @@
       };
     }
     {
-      name = "compress_commons___compress_commons_2.1.1.tgz";
+      name = "compress_commons___compress_commons_3.0.0.tgz";
       path = fetchurl {
-        name = "compress_commons___compress_commons_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/compress-commons/-/compress-commons-2.1.1.tgz";
-        sha1 = "9410d9a534cf8435e3fbbb7c6ce48de2dc2f0610";
+        name = "compress_commons___compress_commons_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/compress-commons/-/compress-commons-3.0.0.tgz";
+        sha1 = "833944d84596e537224dd91cf92f5246823d4f1d";
       };
     }
     {
@@ -1034,11 +1226,11 @@
       };
     }
     {
-      name = "content_type___content_type_1.0.4.tgz";
+      name = "contains_path___contains_path_0.1.0.tgz";
       path = fetchurl {
-        name = "content_type___content_type_1.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz";
-        sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b";
+        name = "contains_path___contains_path_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz";
+        sha1 = "fe8cf184ff6670b6baef01a9d4861a5cbec4120a";
       };
     }
     {
@@ -1098,6 +1290,14 @@
       };
     }
     {
+      name = "cross_spawn___cross_spawn_7.0.3.tgz";
+      path = fetchurl {
+        name = "cross_spawn___cross_spawn_7.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz";
+        sha1 = "f73a85b9d5d41d045551c177e2882d4ac85728a6";
+      };
+    }
+    {
       name = "cross_unzip___cross_unzip_0.0.2.tgz";
       path = fetchurl {
         name = "cross_unzip___cross_unzip_0.0.2.tgz";
@@ -1154,6 +1354,14 @@
       };
     }
     {
+      name = "debug___debug_2.6.9.tgz";
+      path = fetchurl {
+        name = "debug___debug_2.6.9.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
+        sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
+      };
+    }
+    {
       name = "debug___debug_3.2.6.tgz";
       path = fetchurl {
         name = "debug___debug_3.2.6.tgz";
@@ -1170,6 +1378,14 @@
       };
     }
     {
+      name = "debug___debug_4.2.0.tgz";
+      path = fetchurl {
+        name = "debug___debug_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.2.0.tgz";
+        sha1 = "7f150f93920e94c58f5574c2fd01a3110effe7f1";
+      };
+    }
+    {
       name = "debuglog___debuglog_1.0.1.tgz";
       path = fetchurl {
         name = "debuglog___debuglog_1.0.1.tgz";
@@ -1298,11 +1514,27 @@
       };
     }
     {
-      name = "dmg_builder___dmg_builder_22.3.2.tgz";
+      name = "dmg_builder___dmg_builder_22.7.0.tgz";
+      path = fetchurl {
+        name = "dmg_builder___dmg_builder_22.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.7.0.tgz";
+        sha1 = "ead7e7c046cbdc52d29d302a4455f6668cdf7d45";
+      };
+    }
+    {
+      name = "doctrine___doctrine_1.5.0.tgz";
       path = fetchurl {
-        name = "dmg_builder___dmg_builder_22.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.3.2.tgz";
-        sha1 = "4c052f75d601e3358da1ff9d7d57738e1c01b157";
+        name = "doctrine___doctrine_1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz";
+        sha1 = "379dce730f6166f76cefa4e6707a159b02c5a6fa";
+      };
+    }
+    {
+      name = "doctrine___doctrine_2.1.0.tgz";
+      path = fetchurl {
+        name = "doctrine___doctrine_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz";
+        sha1 = "5cd01fc101621b42c4cd7f5d1a66243716d3f39d";
       };
     }
     {
@@ -1394,27 +1626,27 @@
       };
     }
     {
-      name = "ejs___ejs_3.0.1.tgz";
+      name = "ejs___ejs_3.1.3.tgz";
       path = fetchurl {
-        name = "ejs___ejs_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/ejs/-/ejs-3.0.1.tgz";
-        sha1 = "30c8f6ee9948502cc32e85c37a3f8b39b5a614a5";
+        name = "ejs___ejs_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/ejs/-/ejs-3.1.3.tgz";
+        sha1 = "514d967a8894084d18d3d47bd169a1c0560f093d";
       };
     }
     {
-      name = "electron_builder_squirrel_windows___electron_builder_squirrel_windows_22.3.3.tgz";
+      name = "electron_builder_squirrel_windows___electron_builder_squirrel_windows_22.7.0.tgz";
       path = fetchurl {
-        name = "electron_builder_squirrel_windows___electron_builder_squirrel_windows_22.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-22.3.3.tgz";
-        sha1 = "0a417af35c83b067096bd3217b6b7bd75c6c48a9";
+        name = "electron_builder_squirrel_windows___electron_builder_squirrel_windows_22.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/electron-builder-squirrel-windows/-/electron-builder-squirrel-windows-22.7.0.tgz";
+        sha1 = "8d6f09d541c039f52202935c66d592c38575ceff";
       };
     }
     {
-      name = "electron_builder___electron_builder_22.3.2.tgz";
+      name = "electron_builder___electron_builder_22.7.0.tgz";
       path = fetchurl {
-        name = "electron_builder___electron_builder_22.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.3.2.tgz";
-        sha1 = "902d150fc0670cb90213262e5e0aa3c4f299ffa4";
+        name = "electron_builder___electron_builder_22.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.7.0.tgz";
+        sha1 = "a42d08a1654ffc2f7d9e2860829d3cc55d4a0c81";
       };
     }
     {
@@ -1434,19 +1666,11 @@
       };
     }
     {
-      name = "electron_publish___electron_publish_22.3.2.tgz";
-      path = fetchurl {
-        name = "electron_publish___electron_publish_22.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.3.2.tgz";
-        sha1 = "d2e60caf7a9643fe57e501c20acaf32c737b1c50";
-      };
-    }
-    {
-      name = "electron_publish___electron_publish_22.3.3.tgz";
+      name = "electron_publish___electron_publish_22.7.0.tgz";
       path = fetchurl {
-        name = "electron_publish___electron_publish_22.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.3.3.tgz";
-        sha1 = "7d1e757a20ce0558fdc42900b6e3d773fdae9d9e";
+        name = "electron_publish___electron_publish_22.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.7.0.tgz";
+        sha1 = "d92ba7c4007c9ac1dd070593e48028184fb2dc19";
       };
     }
     {
@@ -1498,6 +1722,14 @@
       };
     }
     {
+      name = "enquirer___enquirer_2.3.6.tgz";
+      path = fetchurl {
+        name = "enquirer___enquirer_2.3.6.tgz";
+        url  = "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz";
+        sha1 = "2a7fe5dd634a1e4125a975ec994ff5456dc3734d";
+      };
+    }
+    {
       name = "env_paths___env_paths_1.0.0.tgz";
       path = fetchurl {
         name = "env_paths___env_paths_1.0.0.tgz";
@@ -1538,6 +1770,14 @@
       };
     }
     {
+      name = "es_abstract___es_abstract_1.17.6.tgz";
+      path = fetchurl {
+        name = "es_abstract___es_abstract_1.17.6.tgz";
+        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz";
+        sha1 = "9142071707857b2cacc7b89ecb670316c3e2d52a";
+      };
+    }
+    {
       name = "es_abstract___es_abstract_1.16.3.tgz";
       path = fetchurl {
         name = "es_abstract___es_abstract_1.16.3.tgz";
@@ -1594,27 +1834,123 @@
       };
     }
     {
-      name = "eslint_config_google___eslint_config_google_0.7.1.tgz";
+      name = "eslint_config_esnext___eslint_config_esnext_4.1.0.tgz";
+      path = fetchurl {
+        name = "eslint_config_esnext___eslint_config_esnext_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-esnext/-/eslint-config-esnext-4.1.0.tgz";
+        sha1 = "8695b858fcf40d28c1aedca181f700528c7b60c6";
+      };
+    }
+    {
+      name = "eslint_config_google___eslint_config_google_0.14.0.tgz";
+      path = fetchurl {
+        name = "eslint_config_google___eslint_config_google_0.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-google/-/eslint-config-google-0.14.0.tgz";
+        sha1 = "4f5f8759ba6e11b424294a219dbfa18c508bcc1a";
+      };
+    }
+    {
+      name = "eslint_config_matrix_org___eslint_config_matrix_org_0.1.2.tgz";
+      path = fetchurl {
+        name = "eslint_config_matrix_org___eslint_config_matrix_org_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-matrix-org/-/eslint-config-matrix-org-0.1.2.tgz";
+        sha1 = "b5d7e193e4f3fc5041905967b53c5ddd6924c793";
+      };
+    }
+    {
+      name = "eslint_config_node___eslint_config_node_4.1.0.tgz";
+      path = fetchurl {
+        name = "eslint_config_node___eslint_config_node_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-node/-/eslint-config-node-4.1.0.tgz";
+        sha1 = "fc1f13946d83766d6b83b0e67699e2071a56f417";
+      };
+    }
+    {
+      name = "eslint_config_react_native___eslint_config_react_native_4.1.0.tgz";
       path = fetchurl {
-        name = "eslint_config_google___eslint_config_google_0.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-config-google/-/eslint-config-google-0.7.1.tgz";
-        sha1 = "5598f8498e9e078420f34b80495b8d959f651fb2";
+        name = "eslint_config_react_native___eslint_config_react_native_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-react-native/-/eslint-config-react-native-4.1.0.tgz";
+        sha1 = "63e9401c7fac146804785f609e7df8f15b3e04eb";
       };
     }
     {
-      name = "eslint_plugin_babel___eslint_plugin_babel_4.1.2.tgz";
+      name = "eslint_config_recommended___eslint_config_recommended_4.1.0.tgz";
       path = fetchurl {
-        name = "eslint_plugin_babel___eslint_plugin_babel_4.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-4.1.2.tgz";
-        sha1 = "79202a0e35757dd92780919b2336f1fa2fe53c1e";
+        name = "eslint_config_recommended___eslint_config_recommended_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-recommended/-/eslint-config-recommended-4.1.0.tgz";
+        sha1 = "1adff90e0716d439be471d192977f233de171a46";
       };
     }
     {
-      name = "eslint_scope___eslint_scope_4.0.3.tgz";
+      name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
       path = fetchurl {
-        name = "eslint_scope___eslint_scope_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz";
-        sha1 = "ca03833310f6889a3264781aa82e63eb9cfe7848";
+        name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz";
+        sha1 = "85ffa81942c25012d8231096ddf679c03042c717";
+      };
+    }
+    {
+      name = "eslint_module_utils___eslint_module_utils_2.6.0.tgz";
+      path = fetchurl {
+        name = "eslint_module_utils___eslint_module_utils_2.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz";
+        sha1 = "579ebd094f56af7797d19c9866c9c9486629bfa6";
+      };
+    }
+    {
+      name = "eslint_plugin_babel___eslint_plugin_babel_5.3.1.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_babel___eslint_plugin_babel_5.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-5.3.1.tgz";
+        sha1 = "75a2413ffbf17e7be57458301c60291f2cfbf560";
+      };
+    }
+    {
+      name = "eslint_plugin_import___eslint_plugin_import_2.22.0.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_import___eslint_plugin_import_2.22.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz";
+        sha1 = "92f7736fe1fde3e2de77623c838dd992ff5ffb7e";
+      };
+    }
+    {
+      name = "eslint_plugin_react_native_globals___eslint_plugin_react_native_globals_0.1.2.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_react_native_globals___eslint_plugin_react_native_globals_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz";
+        sha1 = "ee1348bc2ceb912303ce6bdbd22e2f045ea86ea2";
+      };
+    }
+    {
+      name = "eslint_plugin_react_native___eslint_plugin_react_native_3.8.1.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_react_native___eslint_plugin_react_native_3.8.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-react-native/-/eslint-plugin-react-native-3.8.1.tgz";
+        sha1 = "92811e37191ecb0d29c0f0a0c9e5c943ee573821";
+      };
+    }
+    {
+      name = "eslint_plugin_react___eslint_plugin_react_7.20.3.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_react___eslint_plugin_react_7.20.3.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.3.tgz";
+        sha1 = "0590525e7eb83890ce71f73c2cf836284ad8c2f1";
+      };
+    }
+    {
+      name = "eslint_rule_composer___eslint_rule_composer_0.3.0.tgz";
+      path = fetchurl {
+        name = "eslint_rule_composer___eslint_rule_composer_0.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz";
+        sha1 = "79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9";
+      };
+    }
+    {
+      name = "eslint_scope___eslint_scope_5.1.0.tgz";
+      path = fetchurl {
+        name = "eslint_scope___eslint_scope_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz";
+        sha1 = "d0f971dfe59c69e0cada684b23d49dbf82600ce5";
       };
     }
     {
@@ -1626,6 +1962,14 @@
       };
     }
     {
+      name = "eslint_utils___eslint_utils_2.1.0.tgz";
+      path = fetchurl {
+        name = "eslint_utils___eslint_utils_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz";
+        sha1 = "d2de5e03424e707dc10c74068ddedae708741b27";
+      };
+    }
+    {
       name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
       path = fetchurl {
         name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
@@ -1634,19 +1978,43 @@
       };
     }
     {
-      name = "eslint___eslint_5.16.0.tgz";
+      name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
+      path = fetchurl {
+        name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
+        sha1 = "30ebd1ef7c2fdff01c3a4f151044af25fab0523e";
+      };
+    }
+    {
+      name = "eslint___eslint_7.3.1.tgz";
+      path = fetchurl {
+        name = "eslint___eslint_7.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.3.1.tgz";
+        sha1 = "76392bd7e44468d046149ba128d1566c59acbe19";
+      };
+    }
+    {
+      name = "eslint___eslint_6.8.0.tgz";
+      path = fetchurl {
+        name = "eslint___eslint_6.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz";
+        sha1 = "62262d6729739f9275723824302fb227c8c93ffb";
+      };
+    }
+    {
+      name = "espree___espree_6.2.1.tgz";
       path = fetchurl {
-        name = "eslint___eslint_5.16.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz";
-        sha1 = "a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea";
+        name = "espree___espree_6.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz";
+        sha1 = "77fc72e1fd744a2052c20f38a5b575832e82734a";
       };
     }
     {
-      name = "espree___espree_5.0.1.tgz";
+      name = "espree___espree_7.2.0.tgz";
       path = fetchurl {
-        name = "espree___espree_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz";
-        sha1 = "5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a";
+        name = "espree___espree_7.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/espree/-/espree-7.2.0.tgz";
+        sha1 = "1c263d5b513dbad0ac30c4991b93ac354e948d69";
       };
     }
     {
@@ -1666,6 +2034,14 @@
       };
     }
     {
+      name = "esquery___esquery_1.3.1.tgz";
+      path = fetchurl {
+        name = "esquery___esquery_1.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz";
+        sha1 = "b78b5828aa8e214e29fb74c4d5b752e1c033da57";
+      };
+    }
+    {
       name = "esrecurse___esrecurse_4.2.1.tgz";
       path = fetchurl {
         name = "esrecurse___esrecurse_4.2.1.tgz";
@@ -1682,6 +2058,14 @@
       };
     }
     {
+      name = "estraverse___estraverse_5.1.0.tgz";
+      path = fetchurl {
+        name = "estraverse___estraverse_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz";
+        sha1 = "374309d39fd935ae500e7b92e8a6b4c720e59642";
+      };
+    }
+    {
       name = "esutils___esutils_2.0.3.tgz";
       path = fetchurl {
         name = "esutils___esutils_2.0.3.tgz";
@@ -1754,6 +2138,14 @@
       };
     }
     {
+      name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
+      path = fetchurl {
+        name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+        sha1 = "3a7d56b559d6cbc3eb512325244e619a65c6c525";
+      };
+    }
+    {
       name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
       path = fetchurl {
         name = "fast_json_stable_stringify___fast_json_stable_stringify_2.0.0.tgz";
@@ -1778,11 +2170,11 @@
       };
     }
     {
-      name = "figures___figures_2.0.0.tgz";
+      name = "figures___figures_3.2.0.tgz";
       path = fetchurl {
-        name = "figures___figures_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz";
-        sha1 = "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962";
+        name = "figures___figures_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz";
+        sha1 = "625c18bd293c604dc4a8ddb2febf0c88341746af";
       };
     }
     {
@@ -1802,6 +2194,14 @@
       };
     }
     {
+      name = "filelist___filelist_1.0.1.tgz";
+      path = fetchurl {
+        name = "filelist___filelist_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/filelist/-/filelist-1.0.1.tgz";
+        sha1 = "f10d1a3ae86c1694808e8f20906f43d4c9132dbb";
+      };
+    }
+    {
       name = "find_npm_prefix___find_npm_prefix_1.0.2.tgz";
       path = fetchurl {
         name = "find_npm_prefix___find_npm_prefix_1.0.2.tgz";
@@ -1906,6 +2306,14 @@
       };
     }
     {
+      name = "fs_extra___fs_extra_9.0.1.tgz";
+      path = fetchurl {
+        name = "fs_extra___fs_extra_9.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.1.tgz";
+        sha1 = "910da0062437ba4c39fedd863f1675ccfefcb9fc";
+      };
+    }
+    {
       name = "fs_minipass___fs_minipass_1.2.7.tgz";
       path = fetchurl {
         name = "fs_minipass___fs_minipass_1.2.7.tgz";
@@ -2034,6 +2442,14 @@
       };
     }
     {
+      name = "glob_parent___glob_parent_5.1.1.tgz";
+      path = fetchurl {
+        name = "glob_parent___glob_parent_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz";
+        sha1 = "b6c1ef417c4e5663ea498f1c45afac6916bbc229";
+      };
+    }
+    {
       name = "glob___glob_7.1.6.tgz";
       path = fetchurl {
         name = "glob___glob_7.1.6.tgz";
@@ -2074,6 +2490,14 @@
       };
     }
     {
+      name = "globals___globals_12.4.0.tgz";
+      path = fetchurl {
+        name = "globals___globals_12.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz";
+        sha1 = "a18813576a41b00a24a97e7f815918c2e19925f8";
+      };
+    }
+    {
       name = "got___got_6.7.1.tgz";
       path = fetchurl {
         name = "got___got_6.7.1.tgz";
@@ -2098,6 +2522,14 @@
       };
     }
     {
+      name = "graceful_fs___graceful_fs_4.2.4.tgz";
+      path = fetchurl {
+        name = "graceful_fs___graceful_fs_4.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz";
+        sha1 = "2256bde14d3632958c465ebc96dc467ca07a29fb";
+      };
+    }
+    {
       name = "har_schema___har_schema_2.0.0.tgz";
       path = fetchurl {
         name = "har_schema___har_schema_2.0.0.tgz";
@@ -2170,11 +2602,19 @@
       };
     }
     {
-      name = "hosted_git_info___hosted_git_info_3.0.2.tgz";
+      name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
       path = fetchurl {
-        name = "hosted_git_info___hosted_git_info_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.2.tgz";
-        sha1 = "8b7e3bd114b59b51786f8bade0f39ddc80275a97";
+        name = "hosted_git_info___hosted_git_info_2.8.8.tgz";
+        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
+        sha1 = "7539bd4bc1e0e0a895815a2e0262420b12858488";
+      };
+    }
+    {
+      name = "hosted_git_info___hosted_git_info_3.0.4.tgz";
+      path = fetchurl {
+        name = "hosted_git_info___hosted_git_info_3.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.4.tgz";
+        sha1 = "be4973eb1fd2737b11c9c7c19380739bb249f60d";
       };
     }
     {
@@ -2346,11 +2786,19 @@
       };
     }
     {
-      name = "inquirer___inquirer_6.5.2.tgz";
+      name = "inquirer___inquirer_7.3.2.tgz";
+      path = fetchurl {
+        name = "inquirer___inquirer_7.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.2.tgz";
+        sha1 = "25245d2e32dc9f33dbe26eeaada231daa66e9c7c";
+      };
+    }
+    {
+      name = "internal_slot___internal_slot_1.0.2.tgz";
       path = fetchurl {
-        name = "inquirer___inquirer_6.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz";
-        sha1 = "ad50942375d036d327ff528c08bd5fab089928ca";
+        name = "internal_slot___internal_slot_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz";
+        sha1 = "9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3";
       };
     }
     {
@@ -2418,6 +2866,14 @@
       };
     }
     {
+      name = "is_callable___is_callable_1.2.0.tgz";
+      path = fetchurl {
+        name = "is_callable___is_callable_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz";
+        sha1 = "83336560b54a38e35e3a2df7afd0454d691468bb";
+      };
+    }
+    {
       name = "is_ci___is_ci_1.2.1.tgz";
       path = fetchurl {
         name = "is_ci___is_ci_1.2.1.tgz";
@@ -2450,6 +2906,14 @@
       };
     }
     {
+      name = "is_extglob___is_extglob_2.1.1.tgz";
+      path = fetchurl {
+        name = "is_extglob___is_extglob_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
+        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+      };
+    }
+    {
       name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
       path = fetchurl {
         name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
@@ -2482,6 +2946,14 @@
       };
     }
     {
+      name = "is_glob___is_glob_4.0.1.tgz";
+      path = fetchurl {
+        name = "is_glob___is_glob_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz";
+        sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc";
+      };
+    }
+    {
       name = "is_installed_globally___is_installed_globally_0.1.0.tgz";
       path = fetchurl {
         name = "is_installed_globally___is_installed_globally_0.1.0.tgz";
@@ -2546,14 +3018,6 @@
       };
     }
     {
-      name = "is_promise___is_promise_2.1.0.tgz";
-      path = fetchurl {
-        name = "is_promise___is_promise_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz";
-        sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
-      };
-    }
-    {
       name = "is_redirect___is_redirect_1.0.0.tgz";
       path = fetchurl {
         name = "is_redirect___is_redirect_1.0.0.tgz";
@@ -2570,6 +3034,14 @@
       };
     }
     {
+      name = "is_regex___is_regex_1.1.0.tgz";
+      path = fetchurl {
+        name = "is_regex___is_regex_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz";
+        sha1 = "ece38e389e490df0dc21caea2bd596f987f767ff";
+      };
+    }
+    {
       name = "is_retry_allowed___is_retry_allowed_1.2.0.tgz";
       path = fetchurl {
         name = "is_retry_allowed___is_retry_allowed_1.2.0.tgz";
@@ -2586,6 +3058,14 @@
       };
     }
     {
+      name = "is_string___is_string_1.0.5.tgz";
+      path = fetchurl {
+        name = "is_string___is_string_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz";
+        sha1 = "40493ed198ef3ff477b8c7f92f644ec82a5cd3a6";
+      };
+    }
+    {
       name = "is_symbol___is_symbol_1.0.3.tgz";
       path = fetchurl {
         name = "is_symbol___is_symbol_1.0.3.tgz";
@@ -2626,11 +3106,11 @@
       };
     }
     {
-      name = "isbinaryfile___isbinaryfile_4.0.4.tgz";
+      name = "isbinaryfile___isbinaryfile_4.0.6.tgz";
       path = fetchurl {
-        name = "isbinaryfile___isbinaryfile_4.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.4.tgz";
-        sha1 = "6803f81a8944201c642b6e17da041e24deb78712";
+        name = "isbinaryfile___isbinaryfile_4.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz";
+        sha1 = "edcb62b224e2b4710830b67498c8e4e5a4d2610b";
       };
     }
     {
@@ -2650,6 +3130,14 @@
       };
     }
     {
+      name = "jake___jake_10.8.2.tgz";
+      path = fetchurl {
+        name = "jake___jake_10.8.2.tgz";
+        url  = "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz";
+        sha1 = "ebc9de8558160a66d82d0eadc6a2e58fbc500a7b";
+      };
+    }
+    {
       name = "jimp___jimp_0.2.28.tgz";
       path = fetchurl {
         name = "jimp___jimp_0.2.28.tgz";
@@ -2682,6 +3170,14 @@
       };
     }
     {
+      name = "js_yaml___js_yaml_3.14.0.tgz";
+      path = fetchurl {
+        name = "js_yaml___js_yaml_3.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz";
+        sha1 = "a7a34170f26a21bb162424d8adacb4113a69e482";
+      };
+    }
+    {
       name = "jsbn___jsbn_0.1.1.tgz";
       path = fetchurl {
         name = "jsbn___jsbn_0.1.1.tgz";
@@ -2690,6 +3186,14 @@
       };
     }
     {
+      name = "jsesc___jsesc_2.5.2.tgz";
+      path = fetchurl {
+        name = "jsesc___jsesc_2.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz";
+        sha1 = "80564d2e483dacf6e8ef209650a67df3f0c283a4";
+      };
+    }
+    {
       name = "json_buffer___json_buffer_3.0.0.tgz";
       path = fetchurl {
         name = "json_buffer___json_buffer_3.0.0.tgz";
@@ -2738,11 +3242,19 @@
       };
     }
     {
-      name = "json5___json5_2.1.1.tgz";
+      name = "json5___json5_1.0.1.tgz";
+      path = fetchurl {
+        name = "json5___json5_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz";
+        sha1 = "779fb0018604fa854eacbf6252180d83543e3dbe";
+      };
+    }
+    {
+      name = "json5___json5_2.1.3.tgz";
       path = fetchurl {
-        name = "json5___json5_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/json5/-/json5-2.1.1.tgz";
-        sha1 = "81b6cb04e9ba496f1c7005d07b4368a2638f90b6";
+        name = "json5___json5_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz";
+        sha1 = "c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43";
       };
     }
     {
@@ -2762,6 +3274,14 @@
       };
     }
     {
+      name = "jsonfile___jsonfile_6.0.1.tgz";
+      path = fetchurl {
+        name = "jsonfile___jsonfile_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz";
+        sha1 = "98966cba214378c8c84b82e085907b40bf614179";
+      };
+    }
+    {
       name = "jsonparse___jsonparse_1.3.1.tgz";
       path = fetchurl {
         name = "jsonparse___jsonparse_1.3.1.tgz";
@@ -2778,6 +3298,14 @@
       };
     }
     {
+      name = "jsx_ast_utils___jsx_ast_utils_2.4.1.tgz";
+      path = fetchurl {
+        name = "jsx_ast_utils___jsx_ast_utils_2.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz";
+        sha1 = "1114a4c1209481db06c690c2b4f488cc665f657e";
+      };
+    }
+    {
       name = "keyv___keyv_3.1.0.tgz";
       path = fetchurl {
         name = "keyv___keyv_3.1.0.tgz";
@@ -2850,6 +3378,14 @@
       };
     }
     {
+      name = "levn___levn_0.4.1.tgz";
+      path = fetchurl {
+        name = "levn___levn_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz";
+        sha1 = "ae4562c007473b932a6200d403268dd2fffc6ade";
+      };
+    }
+    {
       name = "libcipm___libcipm_4.0.7.tgz";
       path = fetchurl {
         name = "libcipm___libcipm_4.0.7.tgz";
@@ -3082,11 +3618,19 @@
       };
     }
     {
-      name = "loglevel___loglevel_1.6.6.tgz";
+      name = "lodash___lodash_4.17.19.tgz";
+      path = fetchurl {
+        name = "lodash___lodash_4.17.19.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz";
+        sha1 = "e48ddedbe30b3321783c5b4301fbd353bc1e4a4b";
+      };
+    }
+    {
+      name = "loose_envify___loose_envify_1.4.0.tgz";
       path = fetchurl {
-        name = "loglevel___loglevel_1.6.6.tgz";
-        url  = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.6.tgz";
-        sha1 = "0ee6300cc058db6b3551fa1c4bf73b83bb771312";
+        name = "loose_envify___loose_envify_1.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz";
+        sha1 = "71ee51fa7be4caec1a63839f7e682d8132d30caf";
       };
     }
     {
@@ -3154,14 +3698,6 @@
       };
     }
     {
-      name = "matrix_js_sdk___matrix_js_sdk_6.2.2.tgz";
-      path = fetchurl {
-        name = "matrix_js_sdk___matrix_js_sdk_6.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-6.2.2.tgz";
-        sha1 = "103d951f61945217b110962f55ae43996756f615";
-      };
-    }
-    {
       name = "meant___meant_1.0.1.tgz";
       path = fetchurl {
         name = "meant___meant_1.0.1.tgz";
@@ -3210,11 +3746,11 @@
       };
     }
     {
-      name = "mime___mime_2.4.4.tgz";
+      name = "mime___mime_2.4.6.tgz";
       path = fetchurl {
-        name = "mime___mime_2.4.4.tgz";
-        url  = "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz";
-        sha1 = "bd7b91135fc6b01cde3e9bae33d659b63d8857e5";
+        name = "mime___mime_2.4.6.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz";
+        sha1 = "e5b407c90db442f2beb5b162373d07b69affa4d1";
       };
     }
     {
@@ -3274,6 +3810,14 @@
       };
     }
     {
+      name = "minimist___minimist_1.2.5.tgz";
+      path = fetchurl {
+        name = "minimist___minimist_1.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
+        sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
+      };
+    }
+    {
       name = "minipass___minipass_2.9.0.tgz";
       path = fetchurl {
         name = "minipass___minipass_2.9.0.tgz";
@@ -3322,6 +3866,14 @@
       };
     }
     {
+      name = "mkdirp___mkdirp_0.5.5.tgz";
+      path = fetchurl {
+        name = "mkdirp___mkdirp_0.5.5.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
+        sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
+      };
+    }
+    {
       name = "mkdirp___mkdirp_1.0.3.tgz";
       path = fetchurl {
         name = "mkdirp___mkdirp_1.0.3.tgz";
@@ -3354,14 +3906,6 @@
       };
     }
     {
-      name = "mute_stream___mute_stream_0.0.7.tgz";
-      path = fetchurl {
-        name = "mute_stream___mute_stream_0.0.7.tgz";
-        url  = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz";
-        sha1 = "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab";
-      };
-    }
-    {
       name = "mute_stream___mute_stream_0.0.8.tgz";
       path = fetchurl {
         name = "mute_stream___mute_stream_0.0.8.tgz";
@@ -3378,11 +3922,11 @@
       };
     }
     {
-      name = "needle___needle_2.3.2.tgz";
+      name = "needle___needle_2.5.0.tgz";
       path = fetchurl {
-        name = "needle___needle_2.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/needle/-/needle-2.3.2.tgz";
-        sha1 = "3342dea100b7160960a450dc8c22160ac712a528";
+        name = "needle___needle_2.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/needle/-/needle-2.5.0.tgz";
+        sha1 = "e6fc4b3cc6c25caed7554bd613a5cf0bac8c31c0";
       };
     }
     {
@@ -3410,11 +3954,19 @@
       };
     }
     {
-      name = "node_pre_gyp___node_pre_gyp_0.14.0.tgz";
+      name = "node_gyp___node_gyp_5.1.1.tgz";
+      path = fetchurl {
+        name = "node_gyp___node_gyp_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/node-gyp/-/node-gyp-5.1.1.tgz";
+        sha1 = "eb915f7b631c937d282e33aed44cb7a025f62a3e";
+      };
+    }
+    {
+      name = "node_pre_gyp___node_pre_gyp_0.15.0.tgz";
       path = fetchurl {
-        name = "node_pre_gyp___node_pre_gyp_0.14.0.tgz";
-        url  = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz";
-        sha1 = "9a0596533b877289bcad4e143982ca3d904ddc83";
+        name = "node_pre_gyp___node_pre_gyp_0.15.0.tgz";
+        url  = "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.15.0.tgz";
+        sha1 = "c2fc383276b74c7ffa842925241553e8b40f1087";
       };
     }
     {
@@ -3426,6 +3978,14 @@
       };
     }
     {
+      name = "nopt___nopt_4.0.3.tgz";
+      path = fetchurl {
+        name = "nopt___nopt_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz";
+        sha1 = "a375cad9d02fd921278d954c2254d5aa57e15e48";
+      };
+    }
+    {
       name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
       path = fetchurl {
         name = "normalize_package_data___normalize_package_data_2.5.0.tgz";
@@ -3538,6 +4098,14 @@
       };
     }
     {
+      name = "npm_profile___npm_profile_4.0.4.tgz";
+      path = fetchurl {
+        name = "npm_profile___npm_profile_4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/npm-profile/-/npm-profile-4.0.4.tgz";
+        sha1 = "28ee94390e936df6d084263ee2061336a6a1581b";
+      };
+    }
+    {
       name = "npm_registry_fetch___npm_registry_fetch_4.0.2.tgz";
       path = fetchurl {
         name = "npm_registry_fetch___npm_registry_fetch_4.0.2.tgz";
@@ -3546,6 +4114,14 @@
       };
     }
     {
+      name = "npm_registry_fetch___npm_registry_fetch_4.0.5.tgz";
+      path = fetchurl {
+        name = "npm_registry_fetch___npm_registry_fetch_4.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-4.0.5.tgz";
+        sha1 = "cb87cf7f25bfb048d6c3ee19d115bebf93ea5bfa";
+      };
+    }
+    {
       name = "npm_run_path___npm_run_path_2.0.2.tgz";
       path = fetchurl {
         name = "npm_run_path___npm_run_path_2.0.2.tgz";
@@ -3562,11 +4138,11 @@
       };
     }
     {
-      name = "npm___npm_6.13.7.tgz";
+      name = "npm___npm_6.14.6.tgz";
       path = fetchurl {
-        name = "npm___npm_6.13.7.tgz";
-        url  = "https://registry.yarnpkg.com/npm/-/npm-6.13.7.tgz";
-        sha1 = "9533a3ddc57f9792db8a8b303efabaf878047841";
+        name = "npm___npm_6.14.6.tgz";
+        url  = "https://registry.yarnpkg.com/npm/-/npm-6.14.6.tgz";
+        sha1 = "1a81ce1fac2bf5457dbf6342ceed503627ff228f";
       };
     }
     {
@@ -3626,6 +4202,30 @@
       };
     }
     {
+      name = "object.assign___object.assign_4.1.0.tgz";
+      path = fetchurl {
+        name = "object.assign___object.assign_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz";
+        sha1 = "968bf1100d7956bb3ca086f006f846b3bc4008da";
+      };
+    }
+    {
+      name = "object.entries___object.entries_1.1.2.tgz";
+      path = fetchurl {
+        name = "object.entries___object.entries_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz";
+        sha1 = "bc73f00acb6b6bb16c203434b10f9a7e797d3add";
+      };
+    }
+    {
+      name = "object.fromentries___object.fromentries_2.0.2.tgz";
+      path = fetchurl {
+        name = "object.fromentries___object.fromentries_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz";
+        sha1 = "4a09c9b9bb3843dd0f89acdb517a794d4f355ac9";
+      };
+    }
+    {
       name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz";
       path = fetchurl {
         name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz";
@@ -3634,6 +4234,14 @@
       };
     }
     {
+      name = "object.values___object.values_1.1.1.tgz";
+      path = fetchurl {
+        name = "object.values___object.values_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz";
+        sha1 = "68a99ecde356b7e9295a3c5e0ce31dc8c953de5e";
+      };
+    }
+    {
       name = "once___once_1.4.0.tgz";
       path = fetchurl {
         name = "once___once_1.4.0.tgz";
@@ -3642,11 +4250,11 @@
       };
     }
     {
-      name = "onetime___onetime_2.0.1.tgz";
+      name = "onetime___onetime_5.1.0.tgz";
       path = fetchurl {
-        name = "onetime___onetime_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz";
-        sha1 = "067428230fd67443b2794b22bba528b6867962d4";
+        name = "onetime___onetime_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz";
+        sha1 = "fff0f3c91617fe62bb50189636e99ac8a6df7be5";
       };
     }
     {
@@ -3666,6 +4274,14 @@
       };
     }
     {
+      name = "optionator___optionator_0.9.1.tgz";
+      path = fetchurl {
+        name = "optionator___optionator_0.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz";
+        sha1 = "4f236a6373dae0566a6d43e1326674f50c291499";
+      };
+    }
+    {
       name = "os_homedir___os_homedir_1.0.2.tgz";
       path = fetchurl {
         name = "os_homedir___os_homedir_1.0.2.tgz";
@@ -3922,6 +4538,14 @@
       };
     }
     {
+      name = "path_key___path_key_3.1.1.tgz";
+      path = fetchurl {
+        name = "path_key___path_key_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz";
+        sha1 = "581f6ade658cbba65a0d3380de7753295054f375";
+      };
+    }
+    {
       name = "path_parse___path_parse_1.0.6.tgz";
       path = fetchurl {
         name = "path_parse___path_parse_1.0.6.tgz";
@@ -3978,6 +4602,14 @@
       };
     }
     {
+      name = "pkg_dir___pkg_dir_2.0.0.tgz";
+      path = fetchurl {
+        name = "pkg_dir___pkg_dir_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz";
+        sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b";
+      };
+    }
+    {
       name = "pkg_up___pkg_up_2.0.0.tgz";
       path = fetchurl {
         name = "pkg_up___pkg_up_2.0.0.tgz";
@@ -4002,6 +4634,14 @@
       };
     }
     {
+      name = "prelude_ls___prelude_ls_1.2.1.tgz";
+      path = fetchurl {
+        name = "prelude_ls___prelude_ls_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz";
+        sha1 = "debc6489d7a6e6b0e7611888cec880337d316396";
+      };
+    }
+    {
       name = "prelude_ls___prelude_ls_1.1.2.tgz";
       path = fetchurl {
         name = "prelude_ls___prelude_ls_1.1.2.tgz";
@@ -4074,6 +4714,14 @@
       };
     }
     {
+      name = "prop_types___prop_types_15.7.2.tgz";
+      path = fetchurl {
+        name = "prop_types___prop_types_15.7.2.tgz";
+        url  = "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz";
+        sha1 = "52c41e75b8c87e72b9d9360e0206b99dcbffa6c5";
+      };
+    }
+    {
       name = "proto_list___proto_list_1.2.4.tgz";
       path = fetchurl {
         name = "proto_list___proto_list_1.2.4.tgz";
@@ -4170,14 +4818,6 @@
       };
     }
     {
-      name = "qs___qs_6.9.1.tgz";
-      path = fetchurl {
-        name = "qs___qs_6.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/qs/-/qs-6.9.1.tgz";
-        sha1 = "20082c65cb78223635ab1a9eaca8875a29bf8ec9";
-      };
-    }
-    {
       name = "qs___qs_6.5.2.tgz";
       path = fetchurl {
         name = "qs___qs_6.5.2.tgz";
@@ -4210,6 +4850,14 @@
       };
     }
     {
+      name = "react_is___react_is_16.13.1.tgz";
+      path = fetchurl {
+        name = "react_is___react_is_16.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz";
+        sha1 = "789729a4dc36de2999dc156dd6c1d9c18cea56a4";
+      };
+    }
+    {
       name = "read_chunk___read_chunk_1.0.1.tgz";
       path = fetchurl {
         name = "read_chunk___read_chunk_1.0.1.tgz";
@@ -4226,11 +4874,11 @@
       };
     }
     {
-      name = "read_config_file___read_config_file_5.0.1.tgz";
+      name = "read_config_file___read_config_file_6.0.0.tgz";
       path = fetchurl {
-        name = "read_config_file___read_config_file_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/read-config-file/-/read-config-file-5.0.1.tgz";
-        sha1 = "ead3df0d9822cc96006ca16322eaa79dac8591c2";
+        name = "read_config_file___read_config_file_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.0.0.tgz";
+        sha1 = "224b5dca6a5bdc1fb19e63f89f342680efdb9299";
       };
     }
     {
@@ -4290,19 +4938,11 @@
       };
     }
     {
-      name = "readable_stream___readable_stream_2.3.6.tgz";
+      name = "readable_stream___readable_stream_3.6.0.tgz";
       path = fetchurl {
-        name = "readable_stream___readable_stream_2.3.6.tgz";
-        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz";
-        sha1 = "b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf";
-      };
-    }
-    {
-      name = "readable_stream___readable_stream_3.4.0.tgz";
-      path = fetchurl {
-        name = "readable_stream___readable_stream_3.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz";
-        sha1 = "a51c26754658e0a3c21dbf59163bd45ba6f447fc";
+        name = "readable_stream___readable_stream_3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz";
+        sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198";
       };
     }
     {
@@ -4322,14 +4962,6 @@
       };
     }
     {
-      name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
-      path = fetchurl {
-        name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
-        url  = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz";
-        sha1 = "d878a1d094b4306d10b9096484b33ebd55e26697";
-      };
-    }
-    {
       name = "regexp.prototype.flags___regexp.prototype.flags_1.2.0.tgz";
       path = fetchurl {
         name = "regexp.prototype.flags___regexp.prototype.flags_1.2.0.tgz";
@@ -4338,6 +4970,14 @@
       };
     }
     {
+      name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
+      path = fetchurl {
+        name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz";
+        sha1 = "7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75";
+      };
+    }
+    {
       name = "regexpp___regexpp_2.0.1.tgz";
       path = fetchurl {
         name = "regexpp___regexpp_2.0.1.tgz";
@@ -4346,6 +4986,14 @@
       };
     }
     {
+      name = "regexpp___regexpp_3.1.0.tgz";
+      path = fetchurl {
+        name = "regexpp___regexpp_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz";
+        sha1 = "206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2";
+      };
+    }
+    {
       name = "registry_auth_token___registry_auth_token_3.4.0.tgz";
       path = fetchurl {
         name = "registry_auth_token___registry_auth_token_3.4.0.tgz";
@@ -4426,6 +5074,14 @@
       };
     }
     {
+      name = "resolve___resolve_1.17.0.tgz";
+      path = fetchurl {
+        name = "resolve___resolve_1.17.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz";
+        sha1 = "b25941b54968231cc2d1bb76a79cb7f2c0bf8444";
+      };
+    }
+    {
       name = "responselike___responselike_1.0.2.tgz";
       path = fetchurl {
         name = "responselike___responselike_1.0.2.tgz";
@@ -4434,11 +5090,11 @@
       };
     }
     {
-      name = "restore_cursor___restore_cursor_2.0.0.tgz";
+      name = "restore_cursor___restore_cursor_3.1.0.tgz";
       path = fetchurl {
-        name = "restore_cursor___restore_cursor_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz";
-        sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf";
+        name = "restore_cursor___restore_cursor_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz";
+        sha1 = "39f67c54b3a7a58cea5236d95cf0034239631f7e";
       };
     }
     {
@@ -4482,11 +5138,11 @@
       };
     }
     {
-      name = "run_async___run_async_2.3.0.tgz";
+      name = "run_async___run_async_2.4.1.tgz";
       path = fetchurl {
-        name = "run_async___run_async_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz";
-        sha1 = "0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0";
+        name = "run_async___run_async_2.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz";
+        sha1 = "8440eccf99ea3e70bd409d49aab88e10c189a455";
       };
     }
     {
@@ -4498,11 +5154,11 @@
       };
     }
     {
-      name = "rxjs___rxjs_6.5.3.tgz";
+      name = "rxjs___rxjs_6.6.0.tgz";
       path = fetchurl {
-        name = "rxjs___rxjs_6.5.3.tgz";
-        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz";
-        sha1 = "510e26317f4db91a7eb1de77d9dd9ba0a4899a3a";
+        name = "rxjs___rxjs_6.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.0.tgz";
+        sha1 = "af2901eedf02e3a83ffa7f886240ff9018bbec84";
       };
     }
     {
@@ -4522,6 +5178,14 @@
       };
     }
     {
+      name = "safe_buffer___safe_buffer_5.2.1.tgz";
+      path = fetchurl {
+        name = "safe_buffer___safe_buffer_5.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz";
+        sha1 = "1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6";
+      };
+    }
+    {
       name = "safer_buffer___safer_buffer_2.1.2.tgz";
       path = fetchurl {
         name = "safer_buffer___safer_buffer_2.1.2.tgz";
@@ -4586,6 +5250,14 @@
       };
     }
     {
+      name = "semver___semver_7.3.2.tgz";
+      path = fetchurl {
+        name = "semver___semver_7.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz";
+        sha1 = "604962b052b81ed0786aae84389ffba70ffd3938";
+      };
+    }
+    {
       name = "set_blocking___set_blocking_2.0.0.tgz";
       path = fetchurl {
         name = "set_blocking___set_blocking_2.0.0.tgz";
@@ -4610,6 +5282,14 @@
       };
     }
     {
+      name = "shebang_command___shebang_command_2.0.0.tgz";
+      path = fetchurl {
+        name = "shebang_command___shebang_command_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz";
+        sha1 = "ccd0af4f8835fbdc265b82461aaf0c36663f34ea";
+      };
+    }
+    {
       name = "shebang_regex___shebang_regex_1.0.0.tgz";
       path = fetchurl {
         name = "shebang_regex___shebang_regex_1.0.0.tgz";
@@ -4618,6 +5298,22 @@
       };
     }
     {
+      name = "shebang_regex___shebang_regex_3.0.0.tgz";
+      path = fetchurl {
+        name = "shebang_regex___shebang_regex_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz";
+        sha1 = "ae16f1644d873ecad843b0307b143362d4c42172";
+      };
+    }
+    {
+      name = "side_channel___side_channel_1.0.2.tgz";
+      path = fetchurl {
+        name = "side_channel___side_channel_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz";
+        sha1 = "df5d1abadb4e4bf4af1cd8852bf132d2f7876947";
+      };
+    }
+    {
       name = "signal_exit___signal_exit_3.0.2.tgz";
       path = fetchurl {
         name = "signal_exit___signal_exit_3.0.2.tgz";
@@ -4682,11 +5378,19 @@
       };
     }
     {
-      name = "source_map_support___source_map_support_0.5.16.tgz";
+      name = "source_map_support___source_map_support_0.5.19.tgz";
       path = fetchurl {
-        name = "source_map_support___source_map_support_0.5.16.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz";
-        sha1 = "0ae069e7fe3ba7538c64c98515e35339eac5a042";
+        name = "source_map_support___source_map_support_0.5.19.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz";
+        sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61";
+      };
+    }
+    {
+      name = "source_map___source_map_0.5.7.tgz";
+      path = fetchurl {
+        name = "source_map___source_map_0.5.7.tgz";
+        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
+        sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
       };
     }
     {
@@ -4850,6 +5554,22 @@
       };
     }
     {
+      name = "string.prototype.matchall___string.prototype.matchall_4.0.2.tgz";
+      path = fetchurl {
+        name = "string.prototype.matchall___string.prototype.matchall_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz";
+        sha1 = "48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e";
+      };
+    }
+    {
+      name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz";
+      path = fetchurl {
+        name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz";
+        sha1 = "85812a6b847ac002270f5808146064c995fb6913";
+      };
+    }
+    {
       name = "string.prototype.trimleft___string.prototype.trimleft_2.1.0.tgz";
       path = fetchurl {
         name = "string.prototype.trimleft___string.prototype.trimleft_2.1.0.tgz";
@@ -4866,6 +5586,14 @@
       };
     }
     {
+      name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
+      path = fetchurl {
+        name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz";
+        sha1 = "14af6d9f34b053f7cfc89b72f8f2ee14b9039a54";
+      };
+    }
+    {
       name = "string_decoder___string_decoder_1.3.0.tgz";
       path = fetchurl {
         name = "string_decoder___string_decoder_1.3.0.tgz";
@@ -4946,6 +5674,14 @@
       };
     }
     {
+      name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
+      path = fetchurl {
+        name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+        sha1 = "31f1281b3832630434831c310c01cccda8cbe006";
+      };
+    }
+    {
       name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
       path = fetchurl {
         name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
@@ -4978,11 +5714,11 @@
       };
     }
     {
-      name = "tar_stream___tar_stream_2.1.0.tgz";
+      name = "tar_stream___tar_stream_2.1.2.tgz";
       path = fetchurl {
-        name = "tar_stream___tar_stream_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.0.tgz";
-        sha1 = "d1aaa3661f05b38b5acc9b7020efdca5179a2cc3";
+        name = "tar_stream___tar_stream_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz";
+        sha1 = "6d5ef1a7e5783a95ff70b69b97455a5968dc1325";
       };
     }
     {
@@ -5002,11 +5738,11 @@
       };
     }
     {
-      name = "temp_file___temp_file_3.3.6.tgz";
+      name = "temp_file___temp_file_3.3.7.tgz";
       path = fetchurl {
-        name = "temp_file___temp_file_3.3.6.tgz";
-        url  = "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.6.tgz";
-        sha1 = "bd7a1951338bf93b59380b498ec1804d5b76c449";
+        name = "temp_file___temp_file_3.3.7.tgz";
+        url  = "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.7.tgz";
+        sha1 = "686885d635f872748e384e871855958470aeb18a";
       };
     }
     {
@@ -5098,6 +5834,14 @@
       };
     }
     {
+      name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+      path = fetchurl {
+        name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+        sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+      };
+    }
+    {
       name = "to_readable_stream___to_readable_stream_1.0.0.tgz";
       path = fetchurl {
         name = "to_readable_stream___to_readable_stream_1.0.0.tgz";
@@ -5122,6 +5866,22 @@
       };
     }
     {
+      name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
+      path = fetchurl {
+        name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz";
+        sha1 = "098547a6c4448807e8fcb8eae081064ee9a3c90b";
+      };
+    }
+    {
+      name = "tslib___tslib_1.13.0.tgz";
+      path = fetchurl {
+        name = "tslib___tslib_1.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz";
+        sha1 = "c881e13cc7015894ed914862d276436fa9a47043";
+      };
+    }
+    {
       name = "tslib___tslib_1.10.0.tgz";
       path = fetchurl {
         name = "tslib___tslib_1.10.0.tgz";
@@ -5130,6 +5890,14 @@
       };
     }
     {
+      name = "tsutils___tsutils_3.17.1.tgz";
+      path = fetchurl {
+        name = "tsutils___tsutils_3.17.1.tgz";
+        url  = "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz";
+        sha1 = "ed719917f11ca0dee586272b2ac49e015a2dd759";
+      };
+    }
+    {
       name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
       path = fetchurl {
         name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
@@ -5146,6 +5914,14 @@
       };
     }
     {
+      name = "type_check___type_check_0.4.0.tgz";
+      path = fetchurl {
+        name = "type_check___type_check_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz";
+        sha1 = "07b8203bfa7056c0657050e3ccd2c37730bab8f1";
+      };
+    }
+    {
       name = "type_check___type_check_0.3.2.tgz";
       path = fetchurl {
         name = "type_check___type_check_0.3.2.tgz";
@@ -5154,6 +5930,14 @@
       };
     }
     {
+      name = "type_fest___type_fest_0.11.0.tgz";
+      path = fetchurl {
+        name = "type_fest___type_fest_0.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz";
+        sha1 = "97abf0872310fed88a5c466b25681576145e33f1";
+      };
+    }
+    {
       name = "type_fest___type_fest_0.8.1.tgz";
       path = fetchurl {
         name = "type_fest___type_fest_0.8.1.tgz";
@@ -5178,6 +5962,14 @@
       };
     }
     {
+      name = "typescript___typescript_3.9.7.tgz";
+      path = fetchurl {
+        name = "typescript___typescript_3.9.7.tgz";
+        url  = "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz";
+        sha1 = "98d600a5ebdc38f40cb277522f12dc800e9e25fa";
+      };
+    }
+    {
       name = "uid_number___uid_number_0.0.6.tgz";
       path = fetchurl {
         name = "uid_number___uid_number_0.0.6.tgz";
@@ -5194,14 +5986,6 @@
       };
     }
     {
-      name = "unhomoglyph___unhomoglyph_1.0.3.tgz";
-      path = fetchurl {
-        name = "unhomoglyph___unhomoglyph_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/unhomoglyph/-/unhomoglyph-1.0.3.tgz";
-        sha1 = "8d3551622b57754e10a831bf81442d7f15d1ddfd";
-      };
-    }
-    {
       name = "unique_filename___unique_filename_1.1.1.tgz";
       path = fetchurl {
         name = "unique_filename___unique_filename_1.1.1.tgz";
@@ -5242,6 +6026,14 @@
       };
     }
     {
+      name = "universalify___universalify_1.0.0.tgz";
+      path = fetchurl {
+        name = "universalify___universalify_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz";
+        sha1 = "b61a1da173e8435b2fe3c67d29b9adf8594bd16d";
+      };
+    }
+    {
       name = "unpipe___unpipe_1.0.0.tgz";
       path = fetchurl {
         name = "unpipe___unpipe_1.0.0.tgz";
@@ -5370,6 +6162,14 @@
       };
     }
     {
+      name = "v8_compile_cache___v8_compile_cache_2.1.1.tgz";
+      path = fetchurl {
+        name = "v8_compile_cache___v8_compile_cache_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz";
+        sha1 = "54bc3cdd43317bca91e35dcaf305b1a7237de745";
+      };
+    }
+    {
       name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
       path = fetchurl {
         name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
@@ -5418,6 +6218,14 @@
       };
     }
     {
+      name = "which___which_2.0.2.tgz";
+      path = fetchurl {
+        name = "which___which_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz";
+        sha1 = "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1";
+      };
+    }
+    {
       name = "wide_align___wide_align_1.1.3.tgz";
       path = fetchurl {
         name = "wide_align___wide_align_1.1.3.tgz";
@@ -5610,11 +6418,11 @@
       };
     }
     {
-      name = "yargs_parser___yargs_parser_16.1.0.tgz";
+      name = "yargs_parser___yargs_parser_18.1.3.tgz";
       path = fetchurl {
-        name = "yargs_parser___yargs_parser_16.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-16.1.0.tgz";
-        sha1 = "73747d53ae187e7b8dbe333f95714c76ea00ecf1";
+        name = "yargs_parser___yargs_parser_18.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz";
+        sha1 = "be68c4975c6b2abf469236b0c870362fab09a7b0";
       };
     }
     {
@@ -5642,11 +6450,11 @@
       };
     }
     {
-      name = "yargs___yargs_15.1.0.tgz";
+      name = "yargs___yargs_15.3.1.tgz";
       path = fetchurl {
-        name = "yargs___yargs_15.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-15.1.0.tgz";
-        sha1 = "e111381f5830e863a89550bd4b136bb6a5f37219";
+        name = "yargs___yargs_15.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz";
+        sha1 = "9505b472763963e54afe60148ad27a330818e98b";
       };
     }
     {
@@ -5658,11 +6466,11 @@
       };
     }
     {
-      name = "zip_stream___zip_stream_2.1.2.tgz";
+      name = "zip_stream___zip_stream_3.0.1.tgz";
       path = fetchurl {
-        name = "zip_stream___zip_stream_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/zip-stream/-/zip-stream-2.1.2.tgz";
-        sha1 = "841efd23214b602ff49c497cba1a85d8b5fbc39c";
+        name = "zip_stream___zip_stream_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/zip-stream/-/zip-stream-3.0.1.tgz";
+        sha1 = "cb8db9d324a76c09f9b76b31a12a48638b0b9708";
       };
     }
   ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
index b05f64c13822..d44fadea78fc 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-desktop.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
@@ -1,44 +1,44 @@
 { stdenv, fetchFromGitHub
 , makeWrapper, makeDesktopItem, mkYarnPackage
-, electron_7, riot-web
+, electron_9, element-web
 }:
 # Notes for maintainers:
-# * versions of `riot-web` and `riot-desktop` should be kept in sync.
-# * the Yarn dependency expression must be updated with `./update-riot-desktop.sh <git release tag>`
+# * versions of `element-web` and `element-desktop` should be kept in sync.
+# * the Yarn dependency expression must be updated with `./update-element-desktop.sh <git release tag>`
 
 let
-  executableName = "riot-desktop";
-  version = "1.6.5";
+  executableName = "element-desktop";
+  version = "1.7.7";
   src = fetchFromGitHub {
     owner = "vector-im";
     repo = "riot-desktop";
     rev = "v${version}";
-    sha256 = "1snmfn98z63a8ahh5c7y7h00i8qsdq6wsnidmjjrkzcz3mchfq60";
+    sha256 = "1h3v3d41ykgwn397nhm9zaqgf3n69zh592sjzrprvk1gsn5kj5h2";
   };
-  electron = electron_7;
+  electron = electron_9;
 
 in mkYarnPackage rec {
-  name = "riot-desktop-${version}";
+  name = "element-desktop-${version}";
   inherit version src;
 
-  packageJSON = ./riot-desktop-package.json;
-  yarnNix = ./riot-desktop-yarndeps.nix;
+  packageJSON = ./element-desktop-package.json;
+  yarnNix = ./element-desktop-yarndeps.nix;
 
   nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
     # resources
-    mkdir -p "$out/share/riot"
-    ln -s '${riot-web}' "$out/share/riot/webapp"
-    cp -r './deps/riot-desktop' "$out/share/riot/electron"
-    cp -r './deps/riot-desktop/res/img' "$out/share/riot"
-    rm "$out/share/riot/electron/node_modules"
-    cp -r './node_modules' "$out/share/riot/electron"
+    mkdir -p "$out/share/element"
+    ln -s '${element-web}' "$out/share/element/webapp"
+    cp -r './deps/element-desktop' "$out/share/element/electron"
+    cp -r './deps/element-desktop/res/img' "$out/share/element"
+    rm "$out/share/element/electron/node_modules"
+    cp -r './node_modules' "$out/share/element/electron"
 
     # icons
-    for icon in $out/share/riot/electron/build/icons/*.png; do
+    for icon in $out/share/element/electron/build/icons/*.png; do
       mkdir -p "$out/share/icons/hicolor/$(basename $icon .png)/apps"
-      ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png)/apps/riot.png"
+      ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png)/apps/element.png"
     done
 
     # desktop item
@@ -47,36 +47,33 @@ in mkYarnPackage rec {
 
     # executable wrapper
     makeWrapper '${electron}/bin/electron' "$out/bin/${executableName}" \
-      --add-flags "$out/share/riot/electron"
+      --add-flags "$out/share/element/electron"
   '';
 
-  # Do not attempt generating a tarball for riot-web again.
+  # Do not attempt generating a tarball for element-web again.
   # note: `doDist = false;` does not work.
   distPhase = ''
     true
   '';
 
   # The desktop item properties should be kept in sync with data from upstream:
-  # * productName and description from
-  #   https://github.com/vector-im/riot-web/blob/develop/electron_app/package.json
-  # * category and StartupWMClass from the build.linux section of
-  #   https://github.com/vector-im/riot-web/blob/develop/package.json
+  # https://github.com/vector-im/riot-desktop/blob/develop/package.json
   desktopItem = makeDesktopItem {
-    name = "riot";
+    name = "element-desktop";
     exec = executableName;
-    icon = "riot";
-    desktopName = "Riot";
+    icon = "element";
+    desktopName = "Element (Riot)";
     genericName = "Matrix Client";
     comment = meta.description;
     categories = "Network;InstantMessaging;Chat;";
     extraEntries = ''
-      StartupWMClass=riot
+      StartupWMClass=element
     '';
   };
 
   meta = with stdenv.lib; {
     description = "A feature-rich client for Matrix.org";
-    homepage = "https://about.riot.im/";
+    homepage = "https://element.io/";
     license = licenses.asl20;
     maintainers = teams.matrix.members;
     inherit (electron.meta) platforms;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-web.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix
index cc4eb4161f1b..3130c2cac46c 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/riot/riot-web.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/element-web.nix
@@ -1,22 +1,22 @@
 { lib, stdenv, fetchurl, writeText, jq, conf ? {} }:
 
 # Note for maintainers:
-# Versions of `riot-web` and `riot-desktop` should be kept in sync.
+# Versions of `element-web` and `element-desktop` should be kept in sync.
 
 let
   noPhoningHome = {
     disable_guests = true; # disable automatic guest account registration at matrix.org
     piwik = false; # disable analytics
   };
-  configOverrides = writeText "riot-config-overrides.json" (builtins.toJSON (noPhoningHome // conf));
+  configOverrides = writeText "element-config-overrides.json" (builtins.toJSON (noPhoningHome // conf));
 
 in stdenv.mkDerivation rec {
-  pname = "riot-web";
-  version = "1.6.5";
+  pname = "element-web";
+  version = "1.7.7";
 
   src = fetchurl {
     url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
-    sha256 = "0mx7ql76cbivc0d9gzix51bc1rdp9yg9vjx05mbf5r9sxrwmihz5";
+    sha256 = "1hly102725qh4xjggxv85w1hyq26mhkgj3y6s76yar7i3smj6kpw";
   };
 
   installPhase = ''
@@ -31,7 +31,7 @@ in stdenv.mkDerivation rec {
 
   meta = {
     description = "A glossy Matrix collaboration client for the web";
-    homepage = "http://riot.im/";
+    homepage = "https://element.io/";
     maintainers = stdenv.lib.teams.matrix.members;
     license = stdenv.lib.licenses.asl20;
     platforms = stdenv.lib.platforms.all;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/element/update-element-desktop.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/element/update-element-desktop.sh
new file mode 100755
index 000000000000..ecca3018e76f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/element/update-element-desktop.sh
@@ -0,0 +1,17 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -I nixpkgs=../../../../../ -i bash -p wget yarn2nix
+
+set -euo pipefail
+
+if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
+	echo "Regenerates the Yarn dependency lock files for the element-desktop package."
+	echo "Usage: $0 <git release tag>"
+	exit 1
+fi
+
+RIOT_WEB_SRC="https://raw.githubusercontent.com/vector-im/riot-desktop/$1"
+
+wget "$RIOT_WEB_SRC/package.json" -O element-desktop-package.json
+wget "$RIOT_WEB_SRC/yarn.lock" -O element-desktop-yarndeps.lock
+yarn2nix --lockfile=element-desktop-yarndeps.lock > element-desktop-yarndeps.nix
+rm element-desktop-yarndeps.lock
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix
new file mode 100644
index 000000000000..e0f56e2783d0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ferdi/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, mkFranzDerivation, fetchurl }:
+
+mkFranzDerivation rec {
+  pname = "ferdi";
+  name = "Ferdi";
+  version = "5.5.0";
+  src = fetchurl {
+    url = "https://github.com/getferdi/ferdi/releases/download/v${version}/ferdi_${version}_amd64.deb";
+    sha256 = "0i24vcnq4iz5amqmn2fgk92ff9x9y7fg8jhc3g6ksvmcfly7af3k";
+  };
+  meta = with stdenv.lib; {
+    description = "Ferdi allows you to combine your favorite messaging services into one application";
+    homepage = "https://getferdi.com/";
+    license = licenses.free;
+    maintainers = [ maintainers.davidtwco ];
+    platforms = [ "x86_64-linux" ];
+    hydraPlatforms = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix
index 05767d1a9cd6..68e7282870ba 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/fractal/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitLab
+, nix-update-script
 , fetchpatch
 , meson
 , ninja
@@ -8,7 +9,7 @@
 , rustc
 , python3
 , rustPlatform
-, pkgconfig
+, pkg-config
 , gtksourceview4
 , glib
 , libhandy
@@ -25,24 +26,24 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fractal";
-  version = "4.2.2";
+  version = "4.4.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = "fractal";
     rev = version;
-    sha256 = "0r98km3c8naj3mdr1wppzj823ir7jnsia7r3cbg3vsq8q52i480r";
+    sha256 = "DSNVd9YvI7Dd3s3+M0+wE594tmL1yPNMnD1W9wLhSuw=";
   };
 
-  cargoSha256 = "10fgw9m6gdazrca73g43sgvsghhac7xc3bg7hr0vpynzqyfigwa9";
+  cargoSha256 = "xim5sOzeXJjRXbTOg2Gk/LHU0LioiyMK5nSr1LwMPjc=";
 
   nativeBuildInputs = [
     cargo
     gettext
     meson
     ninja
-    pkgconfig
+    pkg-config
     python3
     rustc
     wrapGAppsHook
@@ -58,6 +59,9 @@ rustPlatform.buildRustPackage rec {
     gst_all_1.gst-editing-services
     gst_all_1.gst-plugins-bad
     gst_all_1.gst-plugins-base
+    (gst_all_1.gst-plugins-good.override {
+      gtkSupport = true;
+    })
     gst_all_1.gstreamer
     gst_all_1.gst-validate
     gtk3
@@ -78,6 +82,12 @@ rustPlatform.buildRustPackage rec {
   checkPhase = null;
   installPhase = null;
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "Matrix group messaging app";
     homepage = "https://gitlab.gnome.org/GNOME/fractal";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix
index 0c5090574fa6..52bc60b5affd 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/default.nix
@@ -1,57 +1,19 @@
-{ stdenv, fetchurl, makeWrapper, wrapGAppsHook, autoPatchelfHook, dpkg
-, xorg, atk, glib, pango, gdk-pixbuf, cairo, freetype, fontconfig, gtk3
-, gnome2, dbus, nss, nspr, alsaLib, cups, expat, udev, libnotify, xdg_utils }:
+{ stdenv, mkFranzDerivation, fetchurl }:
 
-let
-  version = "5.4.1";
-in stdenv.mkDerivation {
+mkFranzDerivation rec {
   pname = "franz";
-  inherit version;
+  name = "Franz";
+  version = "5.5.0";
   src = fetchurl {
     url = "https://github.com/meetfranz/franz/releases/download/v${version}/franz_${version}_amd64.deb";
-    sha256 = "1g1z5zjm9l081hpqslfc4h7pqh4k76ccmlz71r21204wy630mw6h";
+    sha256 = "0kgfjai0pz0gpbxsmn3hbha7zr2kax0s1j3ygcsy4kzghla990wm";
   };
-
-  # don't remove runtime deps
-  dontPatchELF = true;
-
-  nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapGAppsHook dpkg ];
-  buildInputs = (with xorg; [
-    libXi libXcursor libXdamage libXrandr libXcomposite libXext libXfixes
-    libXrender libX11 libXtst libXScrnSaver
-  ]) ++ [
-    gtk3 atk glib pango gdk-pixbuf cairo freetype fontconfig dbus
-    gnome2.GConf nss nspr alsaLib cups expat stdenv.cc.cc
-  ];
-  runtimeDependencies = [ udev.lib libnotify ];
-
-  unpackPhase = "dpkg-deb -x $src .";
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp -r opt $out
-    ln -s $out/opt/Franz/franz $out/bin
-
-    # provide desktop item and icon
-    cp -r usr/share $out
-    substituteInPlace $out/share/applications/franz.desktop \
-      --replace /opt/Franz/franz franz
-  '';
-
-  dontWrapGApps = true;
-
-  postFixup = ''
-    wrapProgram $out/opt/Franz/franz \
-      --prefix PATH : ${xdg_utils}/bin \
-      "''${gappsWrapperArgs[@]}"
-  '';
-
   meta = with stdenv.lib; {
     description = "A free messaging app that combines chat & messaging services into one application";
     homepage = "https://meetfranz.com";
     license = licenses.free;
     maintainers = [ maintainers.davidtwco ];
-    platforms = ["x86_64-linux"];
-    hydraPlatforms = [];
+    platforms = [ "x86_64-linux" ];
+    hydraPlatforms = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix
new file mode 100644
index 000000000000..3f05e3d7a5d3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/franz/generic.nix
@@ -0,0 +1,90 @@
+{ stdenv
+, lib
+, makeWrapper
+, wrapGAppsHook
+, autoPatchelfHook
+, dpkg
+, xorg
+, atk
+, glib
+, pango
+, gdk-pixbuf
+, cairo
+, freetype
+, fontconfig
+, gtk3
+, gnome2
+, dbus
+, nss
+, nspr
+, alsaLib
+, cups
+, expat
+, udev
+, libnotify
+, xdg_utils
+}:
+
+# Helper function for building a derivation for Franz and forks.
+
+{ pname, name, version, src, meta }:
+stdenv.mkDerivation {
+  inherit pname version src meta;
+
+  # Don't remove runtime deps.
+  dontPatchELF = true;
+
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapGAppsHook dpkg ];
+  buildInputs = (with xorg; [
+    libXi
+    libXcursor
+    libXdamage
+    libXrandr
+    libXcomposite
+    libXext
+    libXfixes
+    libXrender
+    libX11
+    libXtst
+    libXScrnSaver
+  ]) ++ [
+    gtk3
+    atk
+    glib
+    pango
+    gdk-pixbuf
+    cairo
+    freetype
+    fontconfig
+    dbus
+    gnome2.GConf
+    nss
+    nspr
+    alsaLib
+    cups
+    expat
+    stdenv.cc.cc
+  ];
+  runtimeDependencies = [ (lib.getLib udev) libnotify ];
+
+  unpackPhase = "dpkg-deb -x $src .";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -r opt $out
+    ln -s $out/opt/${name}/${pname} $out/bin
+
+    # Provide desktop item and icon.
+    cp -r usr/share $out
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace /opt/${name}/${pname} ${pname}
+  '';
+
+  dontWrapGApps = true;
+
+  postFixup = ''
+    wrapProgram $out/opt/${name}/${pname} \
+      --prefix PATH : ${xdg_utils}/bin \
+      "''${gappsWrapperArgs[@]}"
+  '';
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix
index b2be635728d7..2ee017dfdbaf 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gajim/default.nix
@@ -2,12 +2,13 @@
 
 # Native dependencies
 , python3, gtk3, gobject-introspection, gnome3
+, glib-networking
 
 # Test dependencies
 , xvfb_run, dbus
 
 # Optional dependencies
-, enableJingle ? true, farstream, gstreamer, gst-plugins-base, gst-libav, gst-plugins-ugly, libnice
+, enableJingle ? true, farstream, gstreamer, gst-plugins-base, gst-libav, gst-plugins-good, libnice
 , enableE2E ? true
 , enableSecrets ? true, libsecret
 , enableRST ? true, docutils
@@ -19,32 +20,33 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gajim";
-  majorVersion = "1.1";
-  version = "${majorVersion}.3";
+  version = "1.2.2";
 
   src = fetchurl {
-    url = "https://gajim.org/downloads/${majorVersion}/gajim-${version}.tar.bz2";
-    sha256 = "0bzxwcpdd4ydh6d6mzpr0gxwhcb0x9ympk55fpvm1hcw9d28a716";
+    url = "https://gajim.org/downloads/${lib.versions.majorMinor version}/gajim-${version}.tar.gz";
+    sha256 = "1gfcp3b5nq43xxz5my8vfhfxnnli726j3hzcgwh9fzrzzd9ic3gx";
   };
 
-  postPatch = ''
-    # This test requires network access
-    echo "" > test/integration/test_resolver.py
-  '';
-
   buildInputs = [
-    gobject-introspection gtk3 gnome3.adwaita-icon-theme wrapGAppsHook
-  ] ++ lib.optionals enableJingle [ farstream gstreamer gst-plugins-base gst-libav gst-plugins-ugly libnice ]
+    gobject-introspection gtk3 gnome3.adwaita-icon-theme
+    glib-networking
+  ] ++ lib.optionals enableJingle [ farstream gstreamer gst-plugins-base gst-libav gst-plugins-good libnice ]
     ++ lib.optional enableSecrets libsecret
     ++ lib.optional enableSpelling gspell
     ++ lib.optional enableUPnP gupnp-igd;
 
   nativeBuildInputs = [
-    gettext
+    gettext wrapGAppsHook
   ];
 
+  dontWrapGApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
   propagatedBuildInputs = with python3.pkgs; [
-    nbxmpp pyasn1 pygobject3 dbus-python pillow cssutils precis-i18n keyring setuptools
+    nbxmpp pygobject3 dbus-python pillow css-parser precis-i18n keyring setuptools
   ] ++ lib.optionals enableE2E [ pycrypto python-gnupg ]
     ++ lib.optional enableRST docutils
     ++ lib.optionals enableOmemoPluginDependencies [ python-axolotl qrcode ]
@@ -62,7 +64,7 @@ python3.pkgs.buildPythonApplication rec {
     homepage = "http://gajim.org/";
     description = "Jabber client written in PyGTK";
     license = lib.licenses.gpl3Plus;
-    maintainers = with lib.maintainers; [ raskin aszlig abbradar ];
+    maintainers = with lib.maintainers; [ raskin abbradar ];
     downloadPage = "http://gajim.org/downloads.php";
     updateWalker = true;
     platforms = lib.platforms.linux;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix
index 769e5cf55159..04418dc64fcf 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/go-neb/default.nix
@@ -16,6 +16,8 @@ buildGoModule {
 
   vendorSha256 = "1k3980yf6zl00dkd1djwhm2f9nnffzrsbs3kq3alpw2gm0aln739";
 
+  doCheck = false;
+
   passthru.tests.go-neb = nixosTests.go-neb;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix
index f7fad7f4c45a..c98fd9e80406 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/default.nix
@@ -2,19 +2,18 @@
 
 buildGoModule rec {
   pname = "gomuks";
-  version = "0.1.0";
-
-  goPackagePath = "maunium.net/go/gomuks";
-  patches = [ ./gomod.patch ];
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "tulir";
     repo = pname;
     rev = "v" + version;
-    sha256 = "1dcqkyxiqiyivzn85fwkjy8xs9yk89810x9mvkaiz0dx3ha57zhi";
+    sha256 = "0sf1nqwimxqql8wm6763jyc5rclhd4zxgg9gfi0qvg5ccm1r1z5q";
   };
 
-  vendorSha256 = "1mfi167mycnnlq8dwh1kkx6drhhi4ib58aad5fwc90ckdaq1rpb7";
+  vendorSha256 = "sha256:0n9mwbzjkvlljlns7sby8nb9gm4vj0v4idp1zxv5xssqr5qalihf";
+
+  doCheck = false;
 
   buildInputs = [ olm ];
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/gomod.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/gomod.patch
deleted file mode 100644
index 7b5ae45d614a..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/gomuks/gomod.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/go.mod b/go.mod
-index a07e991..ba5ae99 100644
---- a/go.mod
-+++ b/go.mod
-@@ -9,6 +9,7 @@ require (
- 	github.com/lithammer/fuzzysearch v1.1.0
- 	github.com/lucasb-eyer/go-colorful v1.0.3
- 	github.com/mattn/go-runewidth v0.0.9
-+	github.com/nu7hatch/gouuid v0.0.0-20131221200532-179d4d0c4d8d
- 	github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect
- 	github.com/pkg/errors v0.9.1
- 	github.com/rivo/uniseg v0.1.0
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix
index f2b026e79dac..4c067e384f95 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jackline/default.nix
@@ -1,30 +1,50 @@
-{ stdenv, fetchFromGitHub, ocamlPackages }:
+{ lib, fetchFromGitHub, ocamlPackages }:
 
-assert stdenv.lib.versionAtLeast ocamlPackages.ocaml.version "4.07";
+with ocamlPackages;
 
-stdenv.mkDerivation {
+buildDunePackage rec {
   pname = "jackline";
-  version = "unstable-2020-04-24";
+  version = "unstable-2020-09-03";
+
+  minimumOCamlVersion = "4.08";
+
+  useDune2 = true;
 
   src = fetchFromGitHub {
     owner  = "hannesm";
     repo   = "jackline";
-    rev    = "885b97b90d565f5f7c2b5f66f5edf14a82251b87";
-    sha256 = "1mdn413ya2g0a1mrdbh1b65gnygrxb08k99z5lmidhh34kd1llsj";
+    rev    = "dd5f19636c9b99b72c348f0f639452d87b7c017c";
+    sha256 = "076smdgig4nwvqsqxa6gsl0c3daq5agwgzp4n2y8xxm3qiq91y89";
   };
 
-  buildInputs = with ocamlPackages; [
-                  ocaml ocamlbuild findlib topkg ppx_sexp_conv ppx_deriving
-                  erm_xmpp tls mirage-crypto mirage-crypto-pk x509 domain-name
-                  ocaml_lwt otr astring ptime notty sexplib hex uutf
-                  dns-client base64
-                ];
-
-  buildPhase = "${ocamlPackages.topkg.run} build --pinned true";
+  nativeBuildInpts = [
+    ppx_sexp_conv
+    ppx_deriving
+  ];
 
-  inherit (ocamlPackages.topkg) installPhase;
+  buildInputs = [
+    erm_xmpp
+    tls
+    mirage-crypto-pk
+    x509
+    domain-name
+    ocaml_lwt
+    otr
+    astring
+    ptime
+    notty
+    sexplib
+    hex
+    uutf
+    uchar
+    uuseg
+    uucp
+    dns-client
+    cstruct
+    base64
+  ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/hannesm/jackline";
     description = "minimalistic secure XMPP client in OCaml";
     license = licenses.bsd2;
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
index 715eef4229ae..4797bf5ffccb 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi-meet-electron/default.nix
@@ -10,11 +10,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "jitsi-meet-electron";
-  version = "2.2.0";
+  version = "2.3.1";
 
   src = fetchurl {
     url = "https://github.com/jitsi/jitsi-meet-electron/releases/download/v${version}/jitsi-meet-x86_64.AppImage";
-    sha256 = "0gqyqjj69x1gxwj4zhwazddnj5xzy598xqz7vwkpdm1ldzna2iyj";
+    sha256 = "0af87lvqw3sagi2cayripm62q17nfd841xz0ghvbixzfnqkvgf7x";
     name = "${pname}-${version}.AppImage";
   };
 
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
     description = "Jitsi Meet desktop application powered by Electron";
     homepage = "https://github.com/jitsi/jitsi-meet-electron";
     license = licenses.asl20;
-    maintainers = with maintainers; [ prusnak ];
+    maintainers = teams.jitsi.members;
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix
index 025b66852f4a..938be9a9778d 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/default.nix
@@ -1,8 +1,9 @@
-{ stdenv, lib, fetchurl, makeDesktopItem, unzip, ant, jdk
+{ stdenv, lib, fetchurl, makeDesktopItem, unzip, ant, jdk8
 # Optional, Jitsi still runs without, but you may pass null:
 , alsaLib, dbus, gtk2, libpulseaudio, openssl, xorg
 }:
 
+let jdk = jdk8; in
 stdenv.mkDerivation rec {
   pname = "jitsi";
   version = "2.10.5550";
@@ -20,7 +21,7 @@ stdenv.mkDerivation rec {
     comment = "VoIP and Instant Messaging client";
     desktopName = "Jitsi";
     genericName = "Instant Messaging";
-    categories = "Application;X-Internet;";
+    categories = "Chat";
   };
 
   libPath = lib.makeLibraryPath ([
@@ -66,6 +67,6 @@ stdenv.mkDerivation rec {
     description = "Open Source Video Calls and Chat";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [];
+    maintainers = teams.jitsi.members;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch
index e477bdfe2fd4..07b16b919962 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch
@@ -11,7 +11,7 @@
 
  # Get architecture
  ARCH=`uname -m | sed -e s/x86_64/64/ -e s/i.86/32/`
-@@ -6,7 +11,9 @@
+@@ -6,10 +11,12 @@
  # Additionnal JVM arguments
  CLIENTARGS=""
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
index 0a41c9666b68..7e63161ff35a 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
@@ -43,18 +43,18 @@ let
 in
   stdenv.mkDerivation rec {
     pname = "mattermost-desktop";
-    version = "4.3.1";
+    version = "4.5.2";
 
     src =
       if stdenv.hostPlatform.system == "x86_64-linux" then
         fetchurl {
           url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-x64.tar.gz";
-          sha256 = "076nv5h6xscbw1987az00x493qhqgrli87gnn57zbvz0acgvlhfv";
+          sha256 = "0r9xmhzif1ia1m53yr59q6p3niyq3jv3vgv4703x68jmd46f91n6";
         }
       else if stdenv.hostPlatform.system == "i686-linux" then
         fetchurl {
           url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-ia32.tar.gz";
-          sha256 = "19ps9g8j6kp4haj6r3yfy4ma2wm6isq5fa8zlcz6g042ajkqq0ij";
+          sha256 = "1h8lw06p3cqz9dkgbhfmzcrzjsir5cfhx28xm4zrmvkj4yfzbcnv";
         }
       else
         throw "Mattermost-Desktop is not currently supported on ${stdenv.hostPlatform.system}";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/mirage/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/mirage/default.nix
new file mode 100644
index 000000000000..1101d6f9b06e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/mirage/default.nix
@@ -0,0 +1,57 @@
+{ lib, mkDerivation, fetchFromGitHub
+, qmake, pkgconfig, olm, wrapQtAppsHook
+, qtbase, qtquickcontrols2, qtkeychain, qtmultimedia, qttools, qtgraphicaleffects
+, python3Packages, pyotherside
+}:
+
+let
+  pypkgs = with python3Packages; [
+    aiofiles filetype matrix-nio appdirs cairosvg
+    pymediainfo setuptools html-sanitizer mistune blist
+    pyotherside
+  ];
+in
+mkDerivation rec {
+  pname = "mirage";
+  version = "0.5.2";
+
+  src = fetchFromGitHub {
+    owner = "mirukana";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0i891fafdncdz1xg6nji80jb86agsrbdvai9nwf1yy126q7piryv";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ pkgconfig qmake wrapQtAppsHook python3Packages.wrapPython ];
+
+  buildInputs = [
+    qtbase qtmultimedia
+    qtquickcontrols2
+    qtkeychain qtgraphicaleffects
+    olm pyotherside
+  ];
+
+  propagatedBuildInputs = pypkgs;
+
+  pythonPath = pypkgs;
+
+  qmakeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  dontWrapQtApps = true;
+  postInstall = ''
+    buildPythonPath "$out $pythonPath"
+    wrapProgram $out/bin/mirage \
+      --prefix PYTHONPATH : "$PYTHONPATH" \
+      "''${qtWrapperArgs[@]}"
+    '';
+
+  meta = with lib; {
+    description = "A fancy, customizable, keyboard-operable Qt/QML+Python Matrix chat client for encrypted and decentralized communication.";
+    homepage = "https://github.com/mirukana/mirage";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ colemickens ];
+    inherit (qtbase.meta) platforms;
+    inherit version;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
index f3b304564cbe..2f5316c9fe27 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/nheko/default.nix
@@ -24,13 +24,13 @@
 
 mkDerivation rec {
   pname = "nheko";
-  version = "0.7.1";
+  version = "0.7.2";
 
   src = fetchFromGitHub {
     owner = "Nheko-Reborn";
     repo = "nheko";
     rev = "v${version}";
-    sha256 = "12sxibbrn79sxkf9jrm7jrlj7l5vz15claxrrll7pkv9mv44wady";
+    sha256 = "1cbhgaf9klgxdirrxj571fqwspm0byl75c1xc40l727a6qswvp7s";
   };
 
   nativeBuildInputs = [
@@ -38,20 +38,6 @@ mkDerivation rec {
     cmake
     pkgconfig
   ];
-  cmakeFlags = [
-    # Can be removed once either https://github.com/NixOS/nixpkgs/pull/85254 or
-    # https://github.com/NixOS/nixpkgs/pull/73940 are merged
-    "-DBoost_NO_BOOST_CMAKE=TRUE"
-  ];
-  # commit missing from latest release and recommended by upstream:
-  # https://github.com/NixOS/nixpkgs/pull/85922#issuecomment-619263903
-  patches = [
-    (fetchpatch {
-      name = "room-ids-escape-patch";
-      url = "https://github.com/Nheko-Reborn/nheko/commit/d94ac86816f9f325cba11f71344a3ca99591130d.patch";
-      sha256 = "1p0kj4a60l3jf0rfakc88adld7ccg3vfjhzia5rf2i03h35cxw8c";
-    })
-  ];
 
   buildInputs = [
     nlohmann_json
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
index faf4e4069354..a751501376ff 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pantalaimon/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv, buildPythonApplication, fetchFromGitHub, pythonOlder,
   attrs, aiohttp, appdirs, click, keyring, Logbook, peewee, janus,
   prompt_toolkit, matrix-nio, dbus-python, pydbus, notify2, pygobject3,
+  setuptools,
 
   pytest, faker, pytest-aiohttp, aioresponses,
 
@@ -9,7 +10,7 @@
 
 buildPythonApplication rec {
   pname = "pantalaimon";
-  version = "0.6.1";
+  version = "0.7.0";
 
   disabled = pythonOlder "3.6";
 
@@ -18,7 +19,7 @@ buildPythonApplication rec {
     owner = "matrix-org";
     repo = pname;
     rev = version;
-    sha256 = "0hn3731jh6xwyjayzdf41skhpdx002qs7n5l7ffh4dplhnv9vbxx";
+    sha256 = "0cx8sqajf5lh8w61yy1l6ry67rv1b45xp264zkw3s7ip80i4ylb2";
   };
 
   propagatedBuildInputs = [
@@ -32,6 +33,7 @@ buildPythonApplication rec {
     matrix-nio
     peewee
     prompt_toolkit
+    setuptools
   ] ++ lib.optional enableDbusUi [
       dbus-python
       notify2
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix
index cae84c054e89..7bb2517a1887 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/pidgin-skypeweb/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pidgin-skypeweb";
-  version = "1.5";
+  version = "1.6";
 
   src = fetchFromGitHub {
     owner = "EionRobb";
     repo = "skype4pidgin";
     rev = version;
-    sha256 = "1bd9gd36yhrbrww0dvai9rnzxxj1c9sb4003c72wg27w12y47xfv";
+    sha256 = "1q3m8hyr77mxm4y0zify2xhjp9d8y4pgwvqyfly4zcpmyd2argi1";
   };
 
   setSourceRoot = ''
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix
index 999235314fe6..4ded2ce1d0bf 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/purple-matrix/default.nix
@@ -26,10 +26,13 @@ stdenv.mkDerivation rec {
     "DATA_ROOT_DIR_PURPLE=${placeholder "out"}/share"
   ];
 
+  buildFlags = [ "CC=cc" ]; # fix build on darwin
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/matrix-org/purple-matrix";
     description = "Matrix support for Pidgin / libpurple";
     license = licenses.gpl2;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ symphorien ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
index 369ae0693246..a269eead708a 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, fetchurl, makeWrapper, pkgconfig, gtk2, gtkspell2, aspell
+{ stdenv, fetchurl, makeWrapper, pkgconfig, gtk2, gtk2-x11
+, gtkspell2, aspell
 , gst_all_1, startupnotification, gettext
 , perlPackages, libxml2, nss, nspr, farstream
 , libXScrnSaver, ncurses, avahi, dbus, dbus-glib, intltool, libidn
@@ -29,19 +30,24 @@ let unwrapped = stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = "-I${gst_all_1.gst-plugins-base.dev}/include/gstreamer-1.0";
 
   buildInputs = [
-    gtkspell2 aspell startupnotification
+    aspell startupnotification
     gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
-    libxml2 nss nspr farstream
+    libxml2 nss nspr
     libXScrnSaver ncurses python
     avahi dbus dbus-glib intltool libidn
     libICE libXext libSM cyrus_sasl
   ]
   ++ (lib.optional (openssl != null) openssl)
   ++ (lib.optional (gnutls != null) gnutls)
-  ++ (lib.optional (libgcrypt != null) libgcrypt);
+  ++ (lib.optional (libgcrypt != null) libgcrypt)
+  ++ (lib.optionals (stdenv.isLinux) [gtk2 gtkspell2 farstream])
+  ++ (lib.optional (stdenv.isDarwin) gtk2-x11);
 
-  propagatedBuildInputs = [ pkgconfig gtk2 gettext ]
-    ++ (with perlPackages; [ perl XMLParser ]);
+
+  propagatedBuildInputs = [ pkgconfig gettext ]
+    ++ (with perlPackages; [ perl XMLParser ])
+    ++ (lib.optional (stdenv.isLinux) gtk2)
+    ++ (lib.optional (stdenv.isDarwin) gtk2-x11);
 
   patches = [ ./pidgin-makefile.patch ./add-search-path.patch ];
 
@@ -56,7 +62,8 @@ let unwrapped = stdenv.mkDerivation rec {
     "--disable-tcl"
   ]
   ++ (lib.optionals (cyrus_sasl != null) [ "--enable-cyrus-sasl=yes" ])
-  ++ (lib.optionals (gnutls != null) ["--enable-gnutls=yes" "--enable-nss=no"]);
+  ++ (lib.optionals (gnutls != null) ["--enable-gnutls=yes" "--enable-nss=no"])
+  ++ (lib.optionals (stdenv.isDarwin) ["--disable-gtkspell" "--disable-vv"]);
 
   enableParallelBuilding = true;
 
@@ -69,7 +76,7 @@ let unwrapped = stdenv.mkDerivation rec {
     description = "Multi-protocol instant messaging client";
     homepage = "http://pidgin.im";
     license = licenses.gpl2Plus;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.vcunat ];
   };
 };
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
index 86e760d497ce..52172bd8be77 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, glib, openssl
 , glibcLocales, expect, ncurses, libotr, curl, readline, libuuid
-, cmocka, libmicrohttpd, stabber, expat, libmesode
+, cmocka, libmicrohttpd, expat, sqlite, libmesode
 , autoconf-archive
 
 , autoAwaySupport ? true,       libXScrnSaver ? null, libX11 ? null
@@ -22,16 +22,18 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "profanity";
-  version = "0.8.1";
+  version = "0.9.5";
 
   src = fetchFromGitHub {
     owner = "profanity-im";
     repo = "profanity";
     rev = version;
-    sha256 = "0fg5xcdlvhsi7a40w4jcxyj7m7wl42jy1cvsa8fi2gb6g9y568k8";
+    sha256 = "14vbblf639f90bb4npg2xv53cpvk9am9ic4pmc1vnv4m3zsndjg5";
   };
 
-  patches = [ ./patches/packages-osx.patch ./patches/undefined-macros.patch ];
+  patches = [
+    ./patches/packages-osx.patch
+  ];
 
   enableParallelBuilding = true;
 
@@ -41,7 +43,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     expect readline libuuid glib openssl expat ncurses libotr
-    curl libmesode cmocka libmicrohttpd stabber
+    curl libmesode cmocka libmicrohttpd sqlite
   ] ++ optionals autoAwaySupport     [ libXScrnSaver libX11 ]
     ++ optionals notifySupport       [ libnotify gdk-pixbuf ]
     ++ optionals traySupport         [ gnome2.gtk ]
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/undefined-macros.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/undefined-macros.patch
deleted file mode 100644
index 9ef4e7bebe54..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/profanity/patches/undefined-macros.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index 1e55b1cc..0832a387 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -83,12 +81,12 @@ elif test "x$enable_python_plugins" != xno; then
-         AM_CONDITIONAL([BUILD_PYTHON_API], [true])
-         AC_DEFINE([HAVE_PYTHON], [1], [Python support])
-     else
--        if test "x$enable_python_plugins" = xyes; then
--            AC_MSG_ERROR([Python not found, cannot enable Python plugins.])
--        else
--            AM_CONDITIONAL([BUILD_PYTHON_API], [false])
--            AC_MSG_NOTICE([Python development package not found, Python plugin support disabled.])
--        fi
-+        AS_IF(
-+            [test "x$enable_python_plugins" = xyes],
-+            [],
-+            [AM_CONDITIONAL([BUILD_PYTHON_API], [false])
-+            AC_MSG_NOTICE([Python development package not found, Python plugin support disabled.])]
-+        )
-     fi
-     AS_IF([test "x$PLATFORM" = xosx], [rm -f Python.framework])
- else
-@@ -107,7 +105,7 @@ else
-             [AM_CONDITIONAL([BUILD_C_API], [true]) LIBS="$LIBS -ldl" AC_DEFINE([HAVE_C], [1], [C support])],
-             [AS_IF(
-                 [test "x$enable_c_plugins" = xyes],
--                    [AC_MSG_ERROR([dl library needed to run C plugins])],
-+                [],
-                 [AM_CONDITIONAL([BUILD_C_API], [false])])
-             ])
-     else
-@@ -116,7 +114,6 @@ else
- fi
- 
- # threading
--ACX_PTHREAD([], [AC_MSG_ERROR([pthread is required])])
- LIBS="$PTHREAD_LIBS $LIBS"
- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
- AS_IF([test "x$PTHREAD_CC" != x], [ CC="$PTHREAD_CC" ])
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
index f45170250105..cf7c1008a080 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi-plus/default.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchFromGitHub, cmake, wrapQtAppsHook
 , qtbase, qtmultimedia, qtx11extras, qttools, qtwebengine
-, libidn, qca2-qt5, libsecret, libXScrnSaver, hunspell
+, libidn, qca-qt5, libsecret, libXScrnSaver, hunspell
 , libgcrypt, libotr, html-tidy, libgpgerror, libsignal-protocol-c
 }:
 
 stdenv.mkDerivation rec {
   pname = "psi-plus";
-  version = "1.4.1231";
+  version = "1.4.1473";
 
   src = fetchFromGitHub {
     owner = "psi-plus";
     repo = "psi-plus-snapshots";
     rev = version;
-    sha256 = "0m5p8is8nk3g0cbwiq73cff9nn2y09fcnh1pzc6rlqqhmz1acg4i";
+    sha256 = "03f28zwbjn6fnsm0fqg8lmc11rpfdfvzjf7k7xydc3lzy8pxbds5";
   };
 
   cmakeFlags = [
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     qtbase qtmultimedia qtx11extras qttools qtwebengine
-    libidn qca2-qt5 libsecret libXScrnSaver hunspell
+    libidn qca-qt5 libsecret libXScrnSaver hunspell
     libgcrypt libotr html-tidy libgpgerror libsignal-protocol-c
   ];
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix
index 19438c4d037b..c1984a218c8a 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/psi/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, cmake, wrapQtAppsHook
 , qtbase, qtmultimedia, qtx11extras, qttools, qtwebengine
-, libidn, qca2-qt5, libXScrnSaver, hunspell
+, libidn, qca-qt5, libXScrnSaver, hunspell
 }:
 stdenv.mkDerivation rec {
   pname = "psi";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake wrapQtAppsHook ];
   buildInputs = [
     qtbase qtmultimedia qtx11extras qttools qtwebengine
-    libidn qca2-qt5 libXScrnSaver hunspell
+    libidn qca-qt5 libXScrnSaver hunspell
   ];
   enableParallelBuilding = true;
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix
index 74a644d189d4..a067259d1127 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/default.nix
@@ -1,26 +1,26 @@
-{ stdenv, fetchurl, xdg_utils, dpkg, makeWrapper, autoPatchelfHook
-, libXtst, libXScrnSaver, gtk3, nss, alsaLib, udev, libnotify
+{ stdenv, lib, fetchurl, xdg_utils, dpkg, makeWrapper, autoPatchelfHook
+, libXtst, libXScrnSaver, gtk3, nss, alsaLib, udev, libnotify, wrapGAppsHook
 }:
 
 let
-  version = "0.7.5";
+  version = "0.7.6";
 in stdenv.mkDerivation rec {
   pname = "rambox";
   inherit version;
   src = {
     x86_64-linux = fetchurl {
       url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-amd64.deb";
-      sha256 = "108yd5djnap37yh0nbjyqkp5ci1zmydfzqcsbapin40a4f36zm31";
+      sha256 = "1v9l5nfd25mq448457hg0mj5bzylh0krk411kbr73s7lbaaww1jl";
     };
     i686-linux = fetchurl {
       url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-i386.deb";
-      sha256 = "1pvh048h6m19rmbscsy69ih0jkyhazmq2pcagmf3kk8gmbi7y6p6";
+      sha256 = "0zhn5hnpl6fpgshp1vwghq6f1hz3f7gds7rjnhky1352cb6cr89i";
     };
   }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
 
-  nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook ];
+  nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook wrapGAppsHook ];
   buildInputs = [ libXtst libXScrnSaver gtk3 nss alsaLib ];
-  runtimeDependencies = [ udev.lib libnotify ];
+  runtimeDependencies = [ (lib.getLib udev) libnotify ];
 
   unpackPhase = "dpkg-deb -x $src .";
 
@@ -35,8 +35,10 @@ in stdenv.mkDerivation rec {
       --replace Exec=/opt/Rambox/rambox Exec=rambox
   '';
 
-  postFixup = ''
-    wrapProgram $out/opt/Rambox/rambox --prefix PATH : ${xdg_utils}/bin
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix PATH : ${xdg_utils}/bin
+    )
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/pro.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/pro.nix
index 215aebf2b2fa..d39091d4618e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/pro.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/rambox/pro.nix
@@ -1,8 +1,11 @@
-{ autoPatchelfHook, electron, fetchurl, makeDesktopItem, makeWrapper, nodePackages, nss, stdenv, xdg_utils, xorg }:
+{ autoPatchelfHook, electron_4, fetchurl, makeDesktopItem, makeWrapper, nodePackages, nss, stdenv, xdg_utils, xorg }:
 
+let
+  electron = electron_4;
+in
 stdenv.mkDerivation rec {
   pname = "rambox-pro";
-  version = "1.3.1";
+  version = "1.3.2";
 
   dontBuild = true;
   dontStrip = true;
@@ -12,7 +15,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://github.com/ramboxapp/download/releases/download/v${version}/RamboxPro-${version}-linux-x64.tar.gz";
-    sha256 = "1cy4h2yzrpr3gxd16p4323w06i67d82jjlyx737c3ngzw7aahmq1";
+    sha256 = "010v5i8lxfz77cb5cn9va5cbnfa28nzdymk5k2fcpi65jldw1pxx";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/riot/update-riot-desktop.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/riot/update-riot-desktop.sh
deleted file mode 100755
index d6e7259f19b9..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/riot/update-riot-desktop.sh
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -I nixpkgs=../../../../../ -i bash -p wget yarn2nix
-
-set -euo pipefail
-
-if [ "$#" -ne 1 ] || [[ "$1" == -* ]]; then
-	echo "Regenerates the Yarn dependency lock files for the riot-desktop package."
-	echo "Usage: $0 <git release tag>"
-	exit 1
-fi
-
-RIOT_WEB_SRC="https://raw.githubusercontent.com/vector-im/riot-desktop/$1"
-
-wget "$RIOT_WEB_SRC/package.json" -O riot-desktop-package.json
-wget "$RIOT_WEB_SRC/yarn.lock" -O riot-desktop-yarndeps.lock
-yarn2nix --lockfile=riot-desktop-yarndeps.lock > riot-desktop-yarndeps.nix
-rm riot-desktop-yarndeps.lock
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix
index f003bbec222f..9055b51d9756 100755
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ripcord/default.nix
@@ -5,12 +5,12 @@
 
 mkDerivation rec {
   pname = "ripcord";
-  version = "0.4.25";
+  version = "0.4.26";
 
   src = let
     appimage = fetchurl {
       url = "https://cancel.fm/dl/Ripcord-${version}-x86_64.AppImage";
-      sha256 = "17s4fxqirmzdw0sn9s9zyk90gr00ivsmz4s6i6knsq354zhy5fda";
+      sha256 = "0i9l21gyqga27ainzqp6icn8vbc22v1knq01pglgg1lg3p504ikq";
       name = "${pname}-${version}.AppImage";
     };
   in appimageTools.extract {
@@ -51,7 +51,8 @@ mkDerivation rec {
       --run "cd $out" \
       --set FONTCONFIG_FILE "${fontsConf}" \
       --prefix LD_LIBRARY_PATH ":" "${xorg.libXcursor}/lib" \
-      --prefix QT_XKB_CONFIG_ROOT ":" "${xorg.xkeyboardconfig}/share/X11/xkb"
+      --prefix QT_XKB_CONFIG_ROOT ":" "${xorg.xkeyboardconfig}/share/X11/xkb" \
+      --set RIPCORD_ALLOW_UPDATES 0
 
     runHook postInstall
   '';
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
index 5c46a5a0fd22..c1b9cdc122c4 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "signal-cli";
-  version = "0.6.8";
+  version = "0.6.10";
 
   # Building from source would be preferred, but is much more involved.
   src = fetchurl {
     url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}.tar.gz";
-    sha256 = "0gcyj8r7156zn5zzfnabf0mw3kcaq7v29vsjb6mdvj8cjjm05dvd";
+    sha256 = "0zglcx5ylqjc3hjkzi84mjhp9dchnnkv12qq75q5pqkx1w45rmim";
   };
 
   buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index dae1513884ab..85f71fd0ebcc 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -2,7 +2,9 @@
 , gnome2, gtk3, atk, at-spi2-atk, cairo, pango, gdk-pixbuf, glib, freetype, fontconfig
 , dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite
 , libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsaLib
-, cups, expat, systemd, libnotify, libuuid, at-spi2-core, libappindicator-gtk3
+, cups, expat, libuuid, at-spi2-core, libappindicator-gtk3
+# Runtime dependencies:
+, systemd, libnotify, libdbusmenu, libpulseaudio
 # Unfortunately this also overwrites the UI language (not just the spell
 # checking language!):
 , hunspellDicts, spellcheckerLanguage ? null # E.g. "de_DE"
@@ -23,7 +25,7 @@ let
       else "");
 in stdenv.mkDerivation rec {
   pname = "signal-desktop";
-  version = "1.34.2"; # Please backport all updates to the stable channel.
+  version = "1.36.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 +35,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-    sha256 = "0l0i6v6n6iyq1zb2rlgfjnsk37kzjqgglk824vl5kp8qbq0li6b6";
+    sha256 = "1b75b5li0im2mwskkf1xsa6sjprl56isvcz2iy1gc48bambc72pc";
   };
 
   nativeBuildInputs = [
@@ -79,8 +81,9 @@ in stdenv.mkDerivation rec {
   ];
 
   runtimeDependencies = [
-    systemd.lib
+    (lib.getLib systemd)
     libnotify
+    libdbusmenu
   ];
 
   unpackPhase = "dpkg-deb -x $src .";
@@ -119,6 +122,7 @@ in stdenv.mkDerivation rec {
       --replace /opt/Signal/signal-desktop $out/bin/signal-desktop
 
     autoPatchelf --no-recurse -- $out/lib/Signal/
+    patchelf --add-needed ${libpulseaudio}/lib/libpulse.so $out/lib/Signal/resources/app.asar.unpacked/node_modules/ringrtc/build/linux/libringrtc.node
   '';
 
   # Tests if the application launches and waits for "Link your phone to Signal Desktop":
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix
deleted file mode 100644
index 33bd4586bfdb..000000000000
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/sky/default.nix
+++ /dev/null
@@ -1,86 +0,0 @@
-{ stdenv, fetchurl, file, libX11, libXScrnSaver
-, libGL, qt5, SDL, libpulseaudio
-, libXrandr, libXext, libXcursor, libXinerama, libXi
-, curl, sqlite, openssl
-, libuuid, openh264, libv4l, libxkbfile, libXv, zlib, libXmu
-, libXtst, libXdamage, pam, libXfixes, libXrender, libjpeg_original
-, ffmpeg_3
-}:
- let
-   # Sky is linked to the libjpeg 8 version and checks for the version number in the code.
-   libjpeg_original_fix = libjpeg_original.overrideAttrs (oldAttrs: {
-    src = fetchurl{
-      url = "https://www.ijg.org/files/jpegsrc.v8d.tar.gz";
-      sha256 = "1cz0dy05mgxqdgjf52p54yxpyy95rgl30cnazdrfmw7hfca9n0h0";
-    };
-  });
-in
-stdenv.mkDerivation rec {
-  version_major = "2.1.7369";
-  version_minor = "1";
-  version = version_major + "." + version_minor;
-  pname = "sky";
-  unpackCmd = "ar x $curSrc; tar -xf data.tar.xz";
-  src = fetchurl {
-    url = "https://tel.red/repos/ubuntu/pool/non-free/sky_${version_major + "-" + version_minor}ubuntu+xenial_amd64.deb";
-    sha256 = "0b3j90km3rp5bgaklxw881g0gcy09mqzbhjdfrq4s2np026ql3d9";
-  };
-  buildInputs = [ 
-    file
-    qt5.qtbase
-    SDL
-    ffmpeg_3
-    sqlite
-    openssl
-    openh264
-    pam
-    curl
-    libX11 libXScrnSaver libGL libpulseaudio libXrandr
-    libXext libXcursor libXinerama libXi libuuid libv4l
-    libxkbfile libXv zlib libXmu libXtst libXdamage
-    libXfixes libXrender
-    libjpeg_original_fix
-  ];
-  dontBuild = true;
-
-  installPhase = ''
-    ls -al ./
-    mkdir -p "$out/bin" "$out/lib" "$out/share"
-    cp -a lib/sky/* $out/bin/
-    cp -aR lib/sky/lib64/* "$out/lib/"
-    cp -a lib/sky/man.sh "$out/bin"
-    chmod +x $out/bin/sky
-    cp -a share/* "$out/share"
-  ''
-  ;
-
-
-  postFixup = ''
-    patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/libfreerdp-client.so.2.0.0
-    patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/libfreerdp-server.so.2.0.0
-    patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/libfreerdp-shadow.so.2.0.0
-    patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/libfreerdp.so.2.0.0
-    patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/libopenh264.so.0
-    patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/librdtk.so.1.1.0
-    patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/libSDL-1.3.so.0.0.0
-    patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/libsipw.so.1.0.0
-    patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/libwinpr.so.1.1.0
-    patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} $out/lib/libxfreerdp-client.so.2.0.0
-    patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $out/bin/sky
-    patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib${stdenv.lib.optionalString stdenv.is64bit "64"}:${stdenv.lib.makeLibraryPath buildInputs} --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $out/bin/sky_sender
-    sed -i "s#/usr/bin/sky#$out/bin/sky#g" $out/share/applications/sky.desktop
-    sed -i "s#/usr/lib/sky#$out/bin/#g" $out/share/applications/sky.desktop
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Skype for business";
-    longDescription = ''
-      Lync & Skype for business on linux
-    '';
-    homepage = "https://tel.red/";
-    license = licenses.unfree;
-    maintainers = [ maintainers.Scriptkiddi ];
-    platforms = platforms.unix;
-  };
-}
-
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index e7ba1e7f9aac..bdcaf3bd6085 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -7,7 +7,7 @@ let
 
   # Please keep the version x.y.0.z and do not update to x.y.76.z because the
   # source of the latter disappears much faster.
-  version = "8.60.0.76";
+  version = "8.63.0.76";
 
   rpath = stdenv.lib.makeLibraryPath [
     alsaLib
@@ -65,7 +65,7 @@ let
           "https://mirror.cs.uchicago.edu/skype/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
           "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
         ];
-        sha256 = "1y919ki0c17vip90fln17impwky08qgprw0j1dgz239qqpwakn7a";
+        sha256 = "0gmrk1giabr53imiwdflf6ykwpcj2q5zn3bynvrncnhivsbvaavy";
       }
     else
       throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
index ad831eb82a59..2edccd8c019e 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , fetchurl
 , dpkg
+, undmg
 , makeWrapper
 , nodePackages
 , alsaLib
@@ -19,10 +20,12 @@
 , gnome2
 , gtk3
 , libappindicator-gtk3
+, libdrm
 , libnotify
 , libpulseaudio
 , libuuid
 , libxcb
+, mesa
 , nspr
 , nss
 , pango
@@ -32,21 +35,26 @@
 }:
 
 let
-
-  pname = "slack";
-
   inherit (stdenv.hostPlatform) system;
-
   throwSystem = throw "Unsupported system: ${system}";
 
-  sha256 = {
-    x86_64-darwin = "09daxnqxyccshkrmr7ysgjvgvgmlgd590ym68fz0l8n6ayfpkgw0";
-    x86_64-linux = "00ihhsgxm441nsmav7pq4n4y9s7p2r4x5dqld160658xyqi836cq";
+  pname = "slack";
+  version = {
+    x86_64-darwin = "4.9.0";
+    x86_64-linux = "4.9.1";
   }.${system} or throwSystem;
 
-  version = {
-    x86_64-darwin = "4.6.0";
-    x86_64-linux = "4.4.3";
+  src = let
+    base = "https://downloads.slack-edge.com";
+  in {
+    x86_64-darwin = fetchurl {
+      url = "${base}/releases/macos/${version}/prod/x64/Slack-${version}-macOS.dmg";
+      sha256 = "007fflncvvclj4agb6g5hc5k9j5hhz1rpvlcfd8w31rn1vad4abk";
+    };
+    x86_64-linux = fetchurl {
+      url = "${base}/linux_releases/slack-desktop-${version}-amd64.deb";
+      sha256 = "1n8br5vlcnf13b8m6727hy4bkmd6wayss96ck4ba9zsjiyj7v74i";
+    };
   }.${system} or throwSystem;
 
   meta = with stdenv.lib; {
@@ -58,11 +66,7 @@ let
   };
 
   linux = stdenv.mkDerivation rec {
-    inherit pname meta version;
-    src = fetchurl {
-      url = "https://downloads.slack-edge.com/linux_releases/slack-desktop-${version}-amd64.deb";
-      inherit sha256;
-    };
+    inherit pname version src meta;
 
     rpath = stdenv.lib.makeLibraryPath [
       alsaLib
@@ -81,10 +85,12 @@ let
       gnome2.GConf
       gtk3
       libappindicator-gtk3
+      libdrm
       libnotify
       libpulseaudio
       libuuid
       libxcb
+      mesa
       nspr
       nss
       pango
@@ -143,22 +149,17 @@ let
     '';
   };
 
-  darwin = stdenv.mkDerivation rec {
-    inherit pname meta version;
+  darwin = stdenv.mkDerivation {
+    inherit pname version src meta;
 
-    phases = [ "installPhase" ];
+    nativeBuildInputs = [ undmg ];
 
-    src = fetchurl {
-      url = "https://downloads.slack-edge.com/mac_releases/Slack-${version}-macOS.dmg";
-      inherit sha256;
-    };
+    sourceRoot = "Slack.app";
 
     installPhase = ''
-      /usr/bin/hdiutil mount -nobrowse -mountpoint slack-mnt $src
-      mkdir -p $out/Applications
-      cp -r ./slack-mnt/Slack.app $out/Applications
-      /usr/bin/hdiutil unmount slack-mnt
-      defaults write com.tinyspeck.slackmacgap SlackNoAutoUpdates -bool YES
+      mkdir -p $out/Applications/Slack.app
+      cp -R . $out/Applications/Slack.app
+      /usr/bin/defaults write com.tinyspeck.slackmacgap SlackNoAutoUpdates -bool YES
     '';
   };
 in if stdenv.isDarwin
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix
new file mode 100644
index 000000000000..5806a269104b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "ssh-chat";
+  version = "1.9";
+
+  goPackagePath = "github.com/shazow/ssh-chat";
+
+  src = fetchFromGitHub {
+    owner = "shazow";
+    repo = "ssh-chat";
+    rev = "v${version}";
+    sha256 = "04yszan6a7x9498s80xymf7wd10530yjrxcdw4czbplyhjdigxlg";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "Chat over SSH";
+    homepage = "https://github.com/shazow/ssh-chat";
+    license = licenses.mit;
+    maintainers = with maintainers; [ luc65r ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/deps.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/deps.nix
new file mode 100644
index 000000000000..4fc4b4b4909b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ssh-chat/deps.nix
@@ -0,0 +1,84 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+  {
+    goPackagePath = "github.com/alexcesaro/log";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alexcesaro/log";
+      rev = "61e686294e58";
+      sha256 = "1ckd5crq9rd12wpclahg2q0wprfg0whd6k9zbfzzkr6l1qpmmfam";
+    };
+  }
+  {
+    goPackagePath = "github.com/howeyc/gopass";
+    fetch = {
+      type = "git";
+      url = "https://github.com/howeyc/gopass";
+      rev = "7cb4b85ec19c";
+      sha256 = "1qyhjd6wx409g9cq3xbpbl2xl41nm00mxzcxm5gbqdlwsd0z80rv";
+    };
+  }
+  {
+    goPackagePath = "github.com/jessevdk/go-flags";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jessevdk/go-flags";
+      rev = "v1.4.0";
+      sha256 = "0algnnigph27spgn655zm4723yfjxjjvlf4k14z9drj3682df25a";
+    };
+  }
+  {
+    goPackagePath = "github.com/shazow/rateio";
+    fetch = {
+      type = "git";
+      url = "https://github.com/shazow/rateio";
+      rev = "4461efc8bdc4";
+      sha256 = "1isy75cmm71q18mvs6xaizgdjqnn6pllkj4yvd42brfgfj84qz0w";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev = "884d27f42877";
+      sha256 = "1ka5kqpw3wr3iawwxq4swmrwbww6v1cmds86z1nm0qb8fvhvpslk";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev = "eb5bcb51f2a3";
+      sha256 = "17k4g8krxbl84gzcs275b7gsh66dzm15fdxivjnx9xz8q84l4kby";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "1957bb5e6d1f";
+      sha256 = "0imqk4l9785rw7ddvywyf8zn7k3ga6f17ky8rmf8wrri7nknr03f";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev = "v0.3.2";
+      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev = "90fa682c2a6e";
+      sha256 = "03ic2xsy51jw9749wl7gszdbz99iijbd2bckgygl6cm9w5m364ak";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix
index 953ce2809c43..c520835b1f0c 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/swift-im/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, stdenv, fetchurl, pkgconfig, qttools, scons
+{ mkDerivation, stdenv, fetchurl, pkgconfig, qttools, sconsPackages
 , GConf, avahi, boost, hunspell, libXScrnSaver, libedit, libidn, libnatpmp, libxml2
 , lua, miniupnpc, openssl, qtbase, qtmultimedia, qtsvg, qtwebkit, qtx11extras, zlib
 }:
@@ -14,7 +14,7 @@ mkDerivation rec {
 
   patches = [ ./qt-5.11.patch ./scons.patch ];
 
-  nativeBuildInputs = [ pkgconfig qttools scons.py2 ];
+  nativeBuildInputs = [ pkgconfig qttools sconsPackages.scons_3_1_2 ];
 
   buildInputs = [
     GConf avahi boost hunspell libXScrnSaver libedit libidn libnatpmp libxml2
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix
index 6b5acd8344a8..d58e27cc62bb 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/teams/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "teams";
-  version = "1.3.00.5153";
+  version = "1.3.00.16851";
 
   src = fetchurl {
     url = "https://packages.microsoft.com/repos/ms-teams/pool/main/t/teams/teams_${version}_amd64.deb";
-    sha256 = "13c7fmij0gcg6mrjjj2mhs21q7fzdssscwhihzyrmbmj64cd0a69";
+    sha256 = "1mp4xq224nwv2ckb5zd7iv3yvkg3gv6mk9dvx3f60jgain7qr0r3";
   };
 
   nativeBuildInputs = [ dpkg autoPatchelfHook wrapGAppsHook ];
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   ];
 
   runtimeDependencies = [
-    systemd.lib
+    (lib.getLib systemd)
     pulseaudio
   ];
 
@@ -56,9 +56,9 @@ stdenv.mkDerivation rec {
 
   # Includes runtimeDependencies in the RPATH of the included Node modules
   # so that dynamic loading works. We cannot use directly runtimeDependencies
-  # here, since the libraries from runtimeDependencies are not propagated 
+  # here, since the libraries from runtimeDependencies are not propagated
   # to the dynamically loadable node modules because of a condition in
-  # autoPatchElfHook since *.node modules have Type: DYN (Shared object file) 
+  # autoPatchElfHook since *.node modules have Type: DYN (Shared object file)
   # instead of EXEC or INTERP it expects.
   # Fixes: https://github.com/NixOS/nixpkgs/issues/85449
   postFixup = ''
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
index cfb41fa9fc52..190e05158969 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix
@@ -1,5 +1,5 @@
 { mkDerivation, lib, fetchFromGitHub, pkg-config, python3, cmake, ninja
-, qtbase, qtimageformats, libsForQt5, hunspell, xdg_utils, ffmpeg_3, openalSoft
+, qtbase, qtimageformats, libdbusmenu, hunspell, xdg_utils, ffmpeg_3, openalSoft
 , lzma, lz4, xxHash, zlib, minizip, openssl, libtgvoip, microsoft_gsl, tl-expected
 , range-v3
 }:
@@ -21,7 +21,7 @@ mkDerivation rec {
   nativeBuildInputs = [ pkg-config python3 cmake ninja ];
 
   buildInputs = [
-    qtbase qtimageformats ffmpeg_3 openalSoft lzma lz4 xxHash libsForQt5.libdbusmenu
+    qtbase qtimageformats ffmpeg_3 openalSoft lzma lz4 xxHash libdbusmenu
     zlib minizip openssl hunspell libtgvoip microsoft_gsl tl-expected range-v3
   ];
 
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index d4493355951f..7e932d74abc5 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -19,12 +19,12 @@ with lib;
 
 mkDerivation rec {
   pname = "telegram-desktop";
-  version = "2.1.11";
+  version = "2.3.0";
 
   # Telegram-Desktop with submodules
   src = fetchurl {
     url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
-    sha256 = "1sd6nrcjg5gpq6ynvwnz8f4jz8flknybx6b0pfxqrqqpzy7wjl5m";
+    sha256 = "0yga4p36jrc5m3d8q2y2g0505c2v540w5hgcscapl4xj9hyb21dw";
   };
 
   postPatch = ''
@@ -52,14 +52,15 @@ mkDerivation rec {
 
   cmakeFlags = [
     "-Ddisable_autoupdate=ON"
-    # TODO: Officiall API credentials for Nixpkgs
-    # (see: https://github.com/NixOS/nixpkgs/issues/55271):
-    "-DTDESKTOP_API_TEST=ON"
+    # We're allowed to used the API ID of the Snap package:
+    "-DTDESKTOP_API_ID=611335"
+    "-DTDESKTOP_API_HASH=d524b414d21f4d37f08684c1df41ac9c"
     "-DDESKTOP_APP_USE_PACKAGED_RLOTTIE=OFF"
     "-DDESKTOP_APP_USE_PACKAGED_VARIANT=OFF"
     "-DDESKTOP_APP_USE_PACKAGED_GSL=OFF"
     "-DTDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME=ON"
     "-DTDESKTOP_USE_PACKAGED_TGVOIP=OFF"
+    "-DDESKTOP_APP_DISABLE_WEBRTC_INTEGRATION=ON"
     #"-DDESKTOP_APP_SPECIAL_TARGET=\"\"" # TODO: Error when set to "": Bad special target '""'
     "-DTDESKTOP_LAUNCHER_BASENAME=telegramdesktop" # Note: This is the default
   ];
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
index bece4e467a35..2910c389daac 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, rpmextract, autoPatchelfHook
+{ stdenv, lib, fetchurl, rpmextract, autoPatchelfHook
 , xorg, gtk3, gnome2, nss, alsaLib, udev, libnotify
 , wrapGAppsHook }:
 
@@ -24,7 +24,7 @@ in stdenv.mkDerivation {
   ]) ++ [
     gtk3 nss alsaLib
   ];
-  runtimeDependencies = [ udev.lib libnotify ];
+  runtimeDependencies = [ (lib.getLib udev) libnotify ];
 
   unpackPhase = ''
     rpmextract $src
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix
index 1cd2df4c7ac1..bdc8aabf61cf 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/wavebox/default.nix
@@ -40,7 +40,7 @@ in stdenv.mkDerivation {
     alsaLib gtk3 nss
   ];
 
-  runtimeDependencies = [ udev.lib libnotify ];
+  runtimeDependencies = [ (getLib udev) libnotify ];
 
   installPhase = ''
     mkdir -p $out/bin $out/opt/wavebox
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
index 8d874c581913..a07afc181164 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
@@ -5,10 +5,12 @@
 , makeDesktopItem
 , makeWrapper
 , stdenv
+, lib
 , udev
 , wrapGAppsHook
 , cpio
 , xar
+, libdbusmenu
 }:
 
 let
@@ -20,13 +22,13 @@ let
   pname = "wire-desktop";
 
   version = {
-    x86_64-darwin = "3.18.3728";
-    x86_64-linux = "3.18.2925";
+    x86_64-darwin = "3.19.3799";
+    x86_64-linux = "3.19.2928";
   }.${system} or throwSystem;
 
   sha256 = {
-    x86_64-darwin = "0xi3k95yw59xsfavncc1giwxlwjz26z34qm3i604ksjjalvpzy5l";
-    x86_64-linux = "01g39hncj1w0zyfrzv4mgv8npwvx0g0lw99azyai99877b30bm8j";
+    x86_64-darwin = "1sv8n4g1pd4nwpwsg0m61zhrfjlh7sj29rnh46xjw1qg332g6cw9";
+    x86_64-linux = "038h1j59qfj5ckaxk823qpfflxay47v0jrqc0hmrdmnd2y59dpx7";
   }.${system} or throwSystem;
 
   meta = with stdenv.lib; {
@@ -107,7 +109,8 @@ let
     '';
 
     runtimeDependencies = [
-      udev.lib
+      (lib.getLib udev)
+      libdbusmenu
     ];
 
     postFixup = ''
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/ytalk/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/ytalk/default.nix
new file mode 100644
index 000000000000..8cb22aabc69b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/ytalk/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, ncurses }:
+
+stdenv.mkDerivation rec {
+  pname = "ytalk";
+  version = "3.3.0";
+
+  src = fetchurl {
+    url = "ftp://ftp.ourproject.org/pub/ytalk/${pname}-${version}.tar.gz";
+    sha256 = "1d3jhnj8rgzxyxjwfa22vh45qwzjvxw1qh8fz6b7nfkj3zvk9jvf";
+  };
+
+  buildInputs = [ ncurses ];
+
+  meta = {
+    homepage    = "http://ytalk.ourproject.org";
+    description = "A terminal based talk client";
+    platforms   = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ taeer ];
+    license     = stdenv.lib.licenses.gpl2Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index e82fbc7bebce..d176b66f7e5f 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -6,7 +6,7 @@
 , qtquickcontrols2, qtscript, qtsvg , qttools, qtwayland, qtwebchannel
 , qtwebengine
 # Runtime
-, coreutils, libjpeg_turbo, pciutils, procps, utillinux
+, coreutils, faac, pciutils, procps, utillinux
 , pulseaudioSupport ? true, libpulseaudio ? null
 }:
 
@@ -15,11 +15,11 @@ assert pulseaudioSupport -> libpulseaudio != null;
 let
   inherit (stdenv.lib) concatStringsSep makeBinPath optional;
 
-  version = "5.1.412382.0614";
+  version = "5.3.465578.0920";
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
-      sha256 = "07xb3v5i08wq0a3my9id91gizsxj5ppqvxmcbdy04j7yn4i1jm9x";
+      sha256 = "0gqpisbzyx2xic0drvyqfbd2x2a5qcizl355qkwwibq3v24mx7kp";
     };
   };
 
@@ -40,7 +40,7 @@ in mkDerivation {
   nativeBuildInputs = [ autoPatchelfHook ];
 
   buildInputs = [
-    dbus glib libGL libX11 libXfixes libuuid libxcb libjpeg_turbo qtbase
+    dbus glib libGL libX11 libXfixes libuuid libxcb faac qtbase
     qtdeclarative qtgraphicaleffects qtlocation qtquickcontrols qtquickcontrols2
     qtscript qtwebchannel qtwebengine qtimageformats qtsvg qttools qtwayland
   ];
@@ -70,7 +70,10 @@ in mkDerivation {
       cp -ar ${files} $out/share/zoom-us
 
       # TODO Patch this somehow; tries to dlopen './libturbojpeg.so' from cwd
-      ln -s $(readlink -e "${libjpeg_turbo.out}/lib/libturbojpeg.so") $out/share/zoom-us/libturbojpeg.so
+      cp libturbojpeg.so $out/share/zoom-us/libturbojpeg.so
+
+      # Again, requires faac with a nonstandard filename.
+      ln -s $(readlink -e "${faac}/lib/libfaac.so") $out/share/zoom-us/libfaac1.so
 
       runHook postInstall
     '';
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
index 6214d4e26255..bda9c5ae0a07 100755
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
@@ -1,17 +1,8 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p curl pcre common-updater-scripts
+#!nix-shell -i bash -p curl pup common-updater-scripts
 
 set -eu -o pipefail
 
-oldVersion=$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion zoom-us" | tr -d '"')
-version="$(curl -sI https://zoom.us/client/latest/zoom_x86_64.tar.xz | grep -Fi 'Location:' | pcregrep -o1 '/(([0-9]\.?)+)/')"
+version="$(curl -Ls https://zoom.us/download\?os\=linux | pup '.linux-ver-text text{}' | cut -d' ' -f2)"
 
-if [ ! "${oldVersion}" = "${version}" ]; then
-  update-source-version zoom-us "$version"
-  nixpkgs="$(git rev-parse --show-toplevel)"
-  default_nix="$nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix"
-  git add "${default_nix}"
-  git commit -m "zoom-us: ${oldVersion} -> ${version}"
-else
-  echo "zoom-us is already up-to-date"
-fi
+update-source-version zoom-us "$version"
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
new file mode 100644
index 000000000000..8f4b2200cc55
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, python3
+, fetchFromGitHub
+, glibcLocales
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "zulip-term";
+  version = "0.5.2";
+
+  # no tests on PyPI
+  src = fetchFromGitHub {
+    owner = "zulip";
+    repo = "zulip-terminal";
+    rev = version;
+    sha256 = "1xhhy3v4wck74a83avil0rnmsi2grrh03cww19n5mv80p2q1cjmf";
+  };
+
+  patches = [
+    ./pytest-executable-name.patch
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    urwid
+    zulip
+    urwid-readline
+    beautifulsoup4
+    lxml
+    mypy-extensions
+  ];
+
+  checkInputs = [
+    glibcLocales
+  ] ++ (with python3.pkgs; [
+    pytestCheckHook
+    pytestcov
+    pytest-mock
+  ]);
+
+  meta = with lib; {
+    description = "Zulip's official terminal client";
+    homepage = "https://github.com/zulip/zulip-terminal";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch
new file mode 100644
index 000000000000..4602a254ab88
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip-term/pytest-executable-name.patch
@@ -0,0 +1,13 @@
+diff --git a/tests/cli/test_run.py b/tests/cli/test_run.py
+index 459aa82..c6e434e 100644
+--- a/tests/cli/test_run.py
++++ b/tests/cli/test_run.py
+@@ -180,7 +180,7 @@ def test_main_multiple_autohide_options(capsys, options):
+         assert str(e.value) == "2"
+     captured = capsys.readouterr()
+     lines = captured.err.strip('\n')
+-    lines = lines.split("pytest: ", 1)[1]
++    lines = lines.split("__main__.py: ", 1)[1]
+     expected = ("error: argument {}: not allowed "
+                 "with argument {}".format(options[1], options[0]))
+     assert lines == expected
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix
index 1adfb71dd9b6..c1ae0ce0a067 100644
--- a/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix
+++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zulip/default.nix
@@ -5,12 +5,12 @@
 
 let
   pname = "zulip";
-  version = "5.2.0";
+  version = "5.4.0";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage";
-    sha256 = "0rgvllm1pzg6smyjrhh8v1ial0dvav0h2zccxp4p5nqmq6zdvs3h";
+    sha256 = "14p0nly144rivd9yk273asfjza5p9qncpbmh4qxnd4gq01f98igh";
     name="${pname}-${version}.AppImage";
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/insync/default.nix b/nixpkgs/pkgs/applications/networking/insync/default.nix
index 773a07dd6c24..c864754403ca 100644
--- a/nixpkgs/pkgs/applications/networking/insync/default.nix
+++ b/nixpkgs/pkgs/applications/networking/insync/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, makeWrapper }:
+{ stdenv, fetchurl, makeWrapper, autoPatchelfHook }:
 
 stdenv.mkDerivation rec {
   pname = "insync";
@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ makeWrapper ];
 
+  nativeBuildInputs = [ autoPatchelfHook ];
+
   postPatch = ''
     patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" client/insync-portable
   '';
diff --git a/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix b/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix
index ee9e368a6590..09ab75aae94c 100644
--- a/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ipfs-cluster/default.nix
@@ -7,6 +7,8 @@ buildGoModule rec {
 
   vendorSha256 = "00fkyxxi4iz16v0j33270x8qrspqpsv9j6csnikjy0klyb038pfq";
 
+  doCheck = false;
+
   src = fetchFromGitHub {
     owner = "ipfs";
     repo = "ipfs-cluster";
@@ -21,4 +23,4 @@ buildGoModule rec {
     platforms = platforms.unix;
     maintainers = with maintainers; [ jglukasik ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix b/nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix
index 7a9d8f639707..4b1d1213b015 100644
--- a/nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ipfs-migrator/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "ipfs-migrator";
-  version = "1.5.1";
+  version = "1.6.3";
 
   src = fetchFromGitHub {
     owner = "ipfs";
     repo = "fs-repo-migrations";
     rev = "v${version}";
-    sha256 = "18pjxkxfbsbbj4hs4xyzfmmz991h31785ldx41dll6wa9zx4lsnm";
+    sha256 = "13ah5jk8n3wznvag6dda1ssgpqsdr9pdgvqm9gcsb7zzls89j9x5";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   subPackages = [ "." ];
 
   meta = with lib; {
@@ -22,4 +24,4 @@ buildGoModule rec {
     platforms = platforms.unix;
     maintainers = with maintainers; [ elitak ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/ipfs/default.nix b/nixpkgs/pkgs/applications/networking/ipfs/default.nix
index 8f141b0eade3..01e808a9e725 100644
--- a/nixpkgs/pkgs/applications/networking/ipfs/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ipfs/default.nix
@@ -2,19 +2,20 @@
 
 buildGoModule rec {
   pname = "ipfs";
-  version = "0.5.1";
+  version = "0.7.0";
   rev = "v${version}";
 
   # go-ipfs makes changes to it's source tarball that don't match the git source.
   src = fetchurl {
     url = "https://github.com/ipfs/go-ipfs/releases/download/${rev}/go-ipfs-source.tar.gz";
-    sha256 = "0lpilycjbc1g9adp4d5kryfprixj18hg3235fnivakmv7fy2akkm";
+    sha256 = "1fkzwm4qxxpmbjammk6s5qcyjxivfa0ydqz4mpz1w756c4jq0jf3";
   };
 
   # tarball contains multiple files/directories
   postUnpack = ''
     mkdir ipfs-src
-    mv * ipfs-src || true
+    shopt -s extglob
+    mv !(ipfs-src) ipfs-src || true
     cd ipfs-src
   '';
 
@@ -27,9 +28,9 @@ buildGoModule rec {
   vendorSha256 = null;
 
   postInstall = ''
-    install -D misc/systemd/ipfs.service $out/etc/systemd/system/ipfs.service
-    install -D misc/systemd/ipfs-api.socket $out/etc/systemd/system/ipfs-api.socket
-    install -D misc/systemd/ipfs-gateway.socket $out/etc/systemd/system/ipfs-gateway.socket
+    install --mode=444 -D misc/systemd/ipfs.service $out/etc/systemd/system/ipfs.service
+    install --mode=444 -D misc/systemd/ipfs-api.socket $out/etc/systemd/system/ipfs-api.socket
+    install --mode=444 -D misc/systemd/ipfs-gateway.socket $out/etc/systemd/system/ipfs-gateway.socket
     substituteInPlace $out/etc/systemd/system/ipfs.service \
       --replace /usr/bin/ipfs $out/bin/ipfs
   '';
diff --git a/nixpkgs/pkgs/applications/networking/ipget/default.nix b/nixpkgs/pkgs/applications/networking/ipget/default.nix
index d137fcf296fa..f16031e9dc82 100644
--- a/nixpkgs/pkgs/applications/networking/ipget/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ipget/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0vy21pdqk6q5fw7wlcv51myhh9y79n2qhvy61rmblwhxlrkh6sdv";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Retrieve files over IPFS and save them locally";
     homepage = "https://ipfs.io/";
diff --git a/nixpkgs/pkgs/applications/networking/irc/convos/default.nix b/nixpkgs/pkgs/applications/networking/irc/convos/default.nix
new file mode 100644
index 000000000000..9487780634da
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/convos/default.nix
@@ -0,0 +1,77 @@
+{ stdenv, fetchFromGitHub, perl, perlPackages, makeWrapper, shortenPerlShebang
+, nixosTests
+}:
+
+with stdenv.lib;
+
+perlPackages.buildPerlPackage rec {
+  pname = "convos";
+  version = "4.40";
+
+  src = fetchFromGitHub {
+    owner = "Nordaaker";
+    repo = pname;
+    rev = version;
+    sha256 = "0yyykr86d494xq1ga5ncr6jmdf0ny1r4gm0wzwn49bxn2x1l0xck";
+  };
+
+  nativeBuildInputs = [ makeWrapper ]
+    ++ optional stdenv.isDarwin [ shortenPerlShebang ];
+
+  buildInputs = with perlPackages; [
+    CryptEksblowfish FileHomeDir FileReadBackwards
+    IOSocketSSL IRCUtils JSONValidator LinkEmbedder ModuleInstall
+    Mojolicious MojoliciousPluginOpenAPI MojoliciousPluginWebpack
+    ParseIRC TextMarkdown TimePiece UnicodeUTF8
+    CpanelJSONXS EV
+  ];
+
+  checkInputs = with perlPackages; [ TestDeep TestMore ];
+
+  postPatch = ''
+    patchShebangs script/convos
+  '';
+
+  preCheck = ''
+    # Remove online test
+    #
+    rm t/web-pwa.t
+
+    # A test fails since gethostbyaddr(127.0.0.1) fails to resolve to localhost in
+    # the sandbox, we replace the this out from a substitution expression
+    #
+    substituteInPlace t/web-register-open-to-public.t \
+      --replace '!127.0.0.1!' '!localhost!'
+
+    # Module::Install is a runtime dependency not covered by the tests, so we add
+    # a test for it.
+    #
+    echo "use Test::More tests => 1;require_ok('Module::Install')" \
+      > t/00_nixpkgs_module_install.t
+  '';
+
+  # Convos expects to find assets in both auto/share/dist/Convos, and $MOJO_HOME
+  # which is set to $out
+  #
+  postInstall = ''
+    AUTO_SHARE_PATH=$out/${perl.libPrefix}/auto/share/dist/Convos
+    mkdir -p $AUTO_SHARE_PATH
+    cp -vR public assets $AUTO_SHARE_PATH/
+    ln -s $AUTO_SHARE_PATH/public/asset $out/asset
+    cp -vR templates $out/templates
+    cp cpanfile $out/cpanfile
+  '' + optionalString stdenv.isDarwin ''
+    shortenPerlShebang $out/bin/convos
+  '' + ''
+    wrapProgram $out/bin/convos --set MOJO_HOME $out
+  '';
+
+  passthru.tests = nixosTests.convos;
+
+  meta = {
+    homepage = "https://convos.chat";
+    description = "Convos is the simplest way to use IRC in your browser";
+    license = stdenv.lib.licenses.artistic2;
+    maintainers = with maintainers; [ sgo ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/irc/quassel/0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch b/nixpkgs/pkgs/applications/networking/irc/quassel/0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch
new file mode 100644
index 000000000000..6c40dc8dd895
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/quassel/0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch
@@ -0,0 +1,37 @@
+From ac9387271b2420a71f7d172f44354fc35adac504 Mon Sep 17 00:00:00 2001
+From: Manuel Nickschas <sputnick@quassel-irc.org>
+Date: Tue, 7 Jan 2020 18:34:54 +0100
+Subject: [PATCH] common: Disable enum type stream operators for Qt >= 5.14
+
+Starting from version 5.14, Qt provides stream operators for enum
+types, which collide with the ones we ship in types.h. Disable
+Quassel's stream operators when compiling against Qt 5.14 or later.
+
+(cherry-picked from 579e559a6322209df7cd51c34801fecff5fe734b)
+---
+ src/common/types.h | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/common/types.h b/src/common/types.h
+index 467d9fb2..c4b9f364 100644
+--- a/src/common/types.h
++++ b/src/common/types.h
+@@ -140,6 +140,7 @@ Q_DECLARE_METATYPE(QHostAddress)
+ typedef QList<MsgId> MsgIdList;
+ typedef QList<BufferId> BufferIdList;
+ 
++#if QT_VERSION < QT_VERSION_CHECK(5, 14, 0)
+ /**
+  * Catch-all stream serialization operator for enum types.
+  *
+@@ -169,6 +170,7 @@ QDataStream &operator>>(QDataStream &in, T &value) {
+     value = static_cast<T>(v);
+     return in;
+ }
++#endif
+ 
+ // Exceptions
+ 
+-- 
+2.26.2
+
diff --git a/nixpkgs/pkgs/applications/networking/irc/quassel/default.nix b/nixpkgs/pkgs/applications/networking/irc/quassel/default.nix
index 86f7793819b0..76743621fc74 100644
--- a/nixpkgs/pkgs/applications/networking/irc/quassel/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/quassel/default.nix
@@ -43,6 +43,12 @@ in (if !buildClient then stdenv.mkDerivation else mkDerivation) rec {
     sha256 = "0z8p7iv90yrrjbh31cyxhpr6hsynfmi23rlayn7p2f6ki5az7yc3";
   };
 
+  patches = [
+    # fixes build with Qt 5.14
+    # source: https://github.com/quassel/quassel/pull/518/commits/8a46d983fc99204711cdff1e4c542e272fef45b9
+    ./0001-common-Disable-enum-type-stream-operators-for-Qt-5.1.patch
+  ];
+
   enableParallelBuilding = true;
 
   # Prevent ``undefined reference to `qt_version_tag''' in SSL check
diff --git a/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix b/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix
index abb296d64744..d6b19fc77dd5 100644
--- a/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/tiny/default.nix
@@ -6,6 +6,7 @@
 , pkg-config
 , dbus
 , openssl
+, Foundation
 }:
 
 rustPlatform.buildRustPackage rec {
@@ -24,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   RUSTC_BOOTSTRAP = 1;
 
   nativeBuildInputs = lib.optional stdenv.isLinux pkg-config;
-  buildInputs = lib.optionals stdenv.isLinux [ dbus openssl ];
+  buildInputs = lib.optionals stdenv.isLinux [ dbus openssl ] ++ lib.optional stdenv.isDarwin Foundation;
 
   meta = with lib; {
     description = "A console IRC client";
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
index a52de0c09128..63da0a68a14f 100644
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/default.nix
@@ -47,7 +47,7 @@ let
         # This just means it's okay to use Python 3 if it's in the environment.
         "-DENABLE_PYTHON3=ON"
       ]
-        ++ optionals stdenv.isDarwin ["-DICONV_LIBRARY=${libiconv}/lib/libiconv.dylib" "-DCMAKE_FIND_FRAMEWORK=LAST"]
+        ++ optionals stdenv.isDarwin ["-DICONV_LIBRARY=${libiconv}/lib/libiconv.dylib"]
         ++ map (p: "-D${p.cmakeFlag}=" + (if p.enabled then "ON" else "OFF")) plugins
         ;
 
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix
index 8a61c4f5acce..0fa1e55349ec 100644
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/default.nix
@@ -11,6 +11,8 @@
 
   weechat-matrix = python3Packages.callPackage ./weechat-matrix { };
 
+  weechat-notify-send = python3Packages.callPackage ./weechat-notify-send { };
+
   wee-slack = callPackage ./wee-slack { };
 
   weechat-autosort = callPackage ./weechat-autosort { };
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
new file mode 100644
index 000000000000..d219aa481cdb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-notify-send/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, libnotify }:
+
+stdenv.mkDerivation rec {
+  pname = "weechat-notify-send";
+  version = "0.9";
+
+  src = fetchFromGitHub {
+    owner = "s3rvac";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1693b7axm9ls5p7hm6kq6avddsisi491khr5irvswr5lpizvys6a";
+  };
+
+  passthru.scripts = [ "notify_send.py" ];
+
+  dontBuild = true;
+  doCheck = false;
+
+  installPhase = ''
+    install -D notify_send.py $out/share/notify_send.py
+    substituteInPlace $out/share/notify_send.py \
+      --replace "'notify-send'" "'${libnotify}/bin/notify-send'"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A WeeChat script that sends highlight and message notifications through notify-send";
+    homepage = "https://github.com/s3rvac/weechat-notify-srnd";
+    license = licenses.mit;
+    maintainers = with maintainers; [ tobim ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix
index 9682aa3169ac..c7f2958cf553 100644
--- a/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix
+++ b/nixpkgs/pkgs/applications/networking/irc/weechat/scripts/weechat-otr/default.nix
@@ -8,14 +8,20 @@ let
 
   pycrypto = python3Packages.buildPythonPackage rec {
     pname = "pycrypto";
-    version = "2.6.1-10";
+    version = "2.6.1-13.1";
 
     src = fetchgit {
       url = "https://salsa.debian.org/sramacher/python-crypto.git";
       rev = "debian/${version}";
-      sha256 = "10rgq8bmjfpiqqa1g1p1hh7pxlxs7x0nawvk6zip0pd6x2vsr661";
+      sha256 = "1mahqmlgilgk0rn5hfkhza7kscfm7agdakkb6rqnif9g0qp3s52f";
     };
 
+    postPatch = ''
+      for p in debian/patches/*.patch; do
+        patch -p1 < "$p"
+      done
+    '';
+
     buildInputs = [ gmp ];
 
     preConfigure = ''
@@ -58,7 +64,7 @@ in stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     homepage = "https://github.com/mmb/weechat-otr";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
     description = "WeeChat script for Off-the-Record messaging";
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/maestral-qt/default.nix b/nixpkgs/pkgs/applications/networking/maestral-qt/default.nix
new file mode 100644
index 000000000000..d6a7705b19eb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/maestral-qt/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, python3
+, wrapQtAppsHook
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "maestral-qt";
+  version = "1.2.0";
+  disabled = python3.pkgs.pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "SamSchott";
+    repo = "maestral-qt";
+    rev = "v${version}";
+    sha256 = "sha256-bEVxtp2MqEsjQvcVXmrWcwys3AMg+lPcdYn4IlYhyqw=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    bugsnag
+    click
+    markdown2
+    maestral
+    pyqt5
+  ];
+
+  nativeBuildInputs = [ wrapQtAppsHook ];
+
+  makeWrapperArgs = [
+    # Firstly, add all necessary QT variables
+    "\${qtWrapperArgs[@]}"
+
+    # Add the installed directories to the python path so the daemon can find them
+    "--prefix" "PYTHONPATH" ":" "${stdenv.lib.concatStringsSep ":" (map (p: p + "/lib/${python3.libPrefix}/site-packages") (python3.pkgs.requiredPythonModules python3.pkgs.maestral.propagatedBuildInputs))}"
+    "--prefix" "PYTHONPATH" ":" "${python3.pkgs.maestral}/lib/${python3.libPrefix}/site-packages"
+  ];
+
+  # no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "GUI front-end for maestral (an open-source Dropbox client) for Linux";
+    license = licenses.mit;
+    maintainers = with maintainers; [ peterhoeg ];
+    platforms = platforms.linux;
+    inherit (src.meta) homepage;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/maestral/default.nix b/nixpkgs/pkgs/applications/networking/maestral/default.nix
deleted file mode 100644
index fe611892ae6c..000000000000
--- a/nixpkgs/pkgs/applications/networking/maestral/default.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, python3
-, withGui ? false
-, wrapQtAppsHook ? null
-}:
-
-python3.pkgs.buildPythonApplication rec {
-  pname = "maestral${lib.optionalString withGui "-gui"}";
-  version = "0.6.4";
-
-  disabled = python3.pkgs.pythonOlder "3.6";
-
-  src = fetchFromGitHub {
-    owner = "SamSchott";
-    repo = "maestral-dropbox";
-    rev = "v${version}";
-    sha256 = "06psbjd205qj6vx7k7ywhclz1bs5zp43xnf275hf0k80h3b064sn";
-  };
-
-  propagatedBuildInputs = with python3.pkgs; [
-    blinker
-    bugsnag
-    click
-    dropbox
-    keyring
-    keyrings-alt
-    lockfile
-    pathspec
-    Pyro5
-    requests
-    u-msgpack-python
-    watchdog
-  ] ++ lib.optionals stdenv.isLinux [
-    sdnotify
-    systemd
-  ] ++ lib.optional withGui pyqt5;
-
-  nativeBuildInputs = lib.optional withGui wrapQtAppsHook;
-
-  postInstall = lib.optionalString withGui ''
-    makeQtWrapper $out/bin/maestral $out/bin/maestral-gui \
-      --add-flags gui
-  '';
-
-  # no tests
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Open-source Dropbox client for macOS and Linux";
-    license = licenses.mit;
-    maintainers = with maintainers; [ peterhoeg ];
-    platforms = platforms.unix;
-    inherit (src.meta) homepage;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix
index 584128356393..9a607b54b9cc 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/aerc/default.nix
@@ -4,32 +4,19 @@
 , fetchFromGitHub
 }:
 
-let
-  rev = "ea0df7bee433fedae5716906ea56141f92b9ce53";
-in buildGoModule rec {
+buildGoModule rec {
   pname = "aerc";
-  version = "unstable-2020-02-01";
+  version = "0.4.0";
 
   src = fetchurl {
-    url = "https://git.sr.ht/~sircmpwn/aerc/archive/${rev}.tar.gz";
-    sha256 = "1bx2fypw053v3bzalfgyi6a0s5fvv040z8jy4i63s7p53m8gmzs9";
+    url = "https://git.sr.ht/~sircmpwn/aerc/archive/${version}.tar.gz";
+    sha256 = "05qy14k9wmyhsg1hiv4njfx1zn1m9lz4d1p50kc36v7pq0n4csfk";
   };
 
-  libvterm = fetchFromGitHub {
-    owner = "ddevault";
-    repo = "go-libvterm";
-    rev = "b7d861da381071e5d3701e428528d1bfe276e78f";
-    sha256 = "06vv4pgx0i6hjdjcar4ch18hp9g6q6687mbgkvs8ymmbacyhp7s6";
-  };
-
-  vendorSha256 = "0rnyjjlsxsi0y23m6ckyd52562m33qr35fvdcdzy31mbfpi8kl2k";
+  runVend = true;
+  vendorSha256 = "13zs5113ip85yl6sw9hzclxwlnrhy18d39vh9cwbq97dgnh9rz89";
 
-  overrideModAttrs = (_: {
-      postBuild = ''
-      cp -r --reflink=auto ${libvterm}/libvterm vendor/github.com/ddevault/go-libvterm
-      cp -r --reflink=auto ${libvterm}/encoding vendor/github.com/ddevault/go-libvterm
-      '';
-    });
+  doCheck = false;
 
   nativeBuildInputs = [
     scdoc
@@ -46,8 +33,6 @@ in buildGoModule rec {
 
   buildInputs = [ python3 notmuch ];
 
-  GOFLAGS="-tags=notmuch";
-
   buildPhase = "
     runHook preBuild
     # we use make instead of go build
@@ -56,7 +41,7 @@ in buildGoModule rec {
 
   installPhase = ''
     runHook preInstall
-    make PREFIX=$out install
+    make PREFIX=$out GOFLAGS="$GOFLAGS -tags=notmuch" install
     wrapPythonProgramsIn $out/share/aerc/filters "$out $pythonPath"
     runHook postInstall
   '';
@@ -75,4 +60,4 @@ in buildGoModule rec {
     license = licenses.mit;
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix
index cfaa7dcd4af6..a85e4e4d04c0 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/alpine/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "alpine";
-  version = "2.21";
+  version = "2.23";
 
   src = fetchurl {
     url = "http://alpine.x10host.com/alpine/release/src/${pname}-${version}.tar.xz";
-    sha256 = "0f3llxrmaxw7w9w6aixh752md3cdc91mwfmbarkm8s413f4bcc30";
+    sha256 = "0yqzm56lqgg8v66m09vqxjvpclli4pql5xj8zg7mynq0bhhn2fkr";
   };
 
   buildInputs = [
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--with-ssl-include-dir=${openssl.dev}/include/openssl"
     "--with-passfile=.pine-passfile"
+    "--with-c-client-target=slx"
   ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
index 5f5e66597acc..08acda3adb7b 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/claws-mail/default.nix
@@ -1,4 +1,4 @@
-{ config, fetchurl, stdenv, wrapGAppsHook, autoreconfHook
+{ config, fetchurl, fetchpatch, stdenv, wrapGAppsHook, autoreconfHook
 , curl, dbus, dbus-glib, enchant, gtk2, gnutls, gnupg, gpgme
 , libarchive, libcanberra-gtk2, libetpan, libnotify, libsoup, libxml2, networkmanager
 , openldap, perl, pkgconfig, poppler, python, shared-mime-info
@@ -30,16 +30,26 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "claws-mail";
-  version = "3.17.5";
+  version = "3.17.6";
 
   src = fetchurl {
     url = "http://www.claws-mail.org/download.php?file=releases/claws-mail-${version}.tar.xz";
-    sha256 = "1gjrmdmhc7zzilrlss9yl86ybv9sra8v0qi7mkwv7d9azidx5kns";
+    sha256 = "1s05qw0r0gqwvvkxvrrwbjkbi61dvilixiwrpgcq21qc9csc9r0m";
   };
 
   outputs = [ "out" "dev" ];
 
-  patches = [ ./mime.patch ];
+  patches = [
+    ./mime.patch
+
+    # Backports a mitigation to the "mailto vulnerability". This patch is
+    # included in the next release and must therefore be removed.
+    (fetchpatch {
+      name = "fix-4373-4374.patch";
+      url = "https://git.claws-mail.org/?p=claws.git;a=patch;h=4c9d15b4b37cdc57edfa16df550a0a881a156153";
+      sha256 = "0sp0vxr6pk2fv5ydpcakb50rmn2w2nma98apgfsgcgan82qmwk7n";
+    })
+  ];
 
   preConfigure = ''
     # autotools check tries to dlopen libpython as a requirement for the python plugin
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
new file mode 100644
index 000000000000..26d8fb1aab80
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/evolution/evolution-ews/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchurl, gnome3, cmake, gettext, intltool, pkg-config, evolution-data-server
+, sqlite, gtk3, webkitgtk, libgdata, libmspack }:
+
+stdenv.mkDerivation rec {
+  pname = "evolution-ews";
+  version = "3.36.5";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0h1wz4hxsasihdvvsaxnmzka4afjw7603gn0qcw8rxpw114ib1bl";
+  };
+
+  nativeBuildInputs = [ cmake gettext intltool pkg-config ];
+
+  buildInputs = [
+    evolution-data-server gnome3.evolution
+    sqlite libgdata
+    gtk3 webkitgtk
+    libmspack
+  ];
+
+  # Building with libmspack as reccommended: https://wiki.gnome.org/Apps/Evolution/Building#Build_evolution-ews
+  cmakeFlags = [
+    "-DWITH_MSPACK=ON"
+  ];
+
+  PKG_CONFIG_EVOLUTION_SHELL_3_0_ERRORDIR = "${placeholder "out"}/share/evolution/errors";
+  PKG_CONFIG_EVOLUTION_SHELL_3_0_PRIVLIBDIR = "${placeholder "out"}/lib/evolution";
+  PKG_CONFIG_CAMEL_1_2_CAMEL_PROVIDERDIR = "${placeholder "out"}/lib/evolution-data-server/camel-providers";
+  PKG_CONFIG_LIBEDATA_BOOK_1_2_BACKENDDIR = "${placeholder "out"}/lib/evolution-data-server/addressbook-backends";
+  PKG_CONFIG_LIBEDATA_CAL_2_0_BACKENDDIR = "${placeholder "out"}/lib/evolution-data-server/calendar-backends";
+  PKG_CONFIG_LIBEBACKEND_1_2_MODULEDIR = "${placeholder "out"}/lib/evolution-data-server/registry-modules";
+  PKG_CONFIG_EVOLUTION_SHELL_3_0_MODULEDIR = "${placeholder "out"}/lib/evolution/modules";
+  PKG_CONFIG_EVOLUTION_DATA_SERVER_1_2_PRIVDATADIR = "${placeholder "out"}/share/evolution-data-server";
+
+   passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = "evolution-ews";
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "Evolution connector for Microsoft Exchange Server protocols.";
+    homepage = "https://gitlab.gnome.org/GNOME/evolution-ews";
+    license = "LGPL-2.1-only OR LGPL-3.0-only"; # https://gitlab.gnome.org/GNOME/evolution-ews/issues/111
+    maintainers = [ maintainers.dasj19 ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix
index b02788e67722..a097fd0dd8a9 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/hasmail/default.nix
@@ -21,6 +21,8 @@ buildGoModule rec {
 
   vendorSha256 = "0sblgjmn3i3k31jfq5zy3bx7bv5z2cg6rjzr7aj87c57yhzzcmk7";
 
+  doCheck = false;
+
   nativeBuildInputs = [
     pkgconfig
   ];
@@ -36,6 +38,5 @@ buildGoModule rec {
     homepage = "https://github.com/jonhoo/hasmail";
     license = licenses.unlicense;
     maintainers = with maintainers; [ doronbehar ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix
index 8341cc63092c..6d315049d240 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/default.nix
@@ -1,49 +1,105 @@
-{ stdenv, fetchurl, gettext, gtk3, pythonPackages
-, gdk-pixbuf, libnotify, gst_all_1
-, libgnome-keyring3
-, wrapGAppsHook, gnome3
-# otherwise passwords are stored unencrypted
-, withGnomeKeyring ? true
+{ lib
+, callPackage
+, fetchFromGitHub
+, gettext
+, xorg # for lndir
+, gtk3
+, python3Packages
+, gdk-pixbuf
+, libnotify
+, gst_all_1
+, libsecret
+, wrapGAppsHook
+, gsettings-desktop-schemas
+, glib
+, gobject-introspection
+# Available plugins (can be overriden)
+, availablePlugins
+# Used in the withPlugins interface at passthru, can be overrided directly, or
+# prefarably via e.g: `mailnag.withPlugins(["goa"])`
+, mailnag
+, userPlugins ? [ ]
+, pluginsDeps ? [ ]
 }:
 
-let
-  inherit (pythonPackages) python;
-in pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "mailnag";
-  version = "1.3.0";
+  version = "2.0.0";
 
-  src = fetchurl {
-    url = "https://github.com/pulb/mailnag/archive/v${version}.tar.gz";
-    sha256 = "0cp5pad6jzd5c14pddbi9ap5bi78wjhk1x2p0gbblmvmcasw309s";
+  src = fetchFromGitHub {
+    owner = "pulb";
+    repo = "mailnag";
+    rev = "v${version}";
+    sha256 = "0q97v9i96br22z3h6r2mz79i68ib8m8x42yxky78szfrf8j60i30";
   };
 
   buildInputs = [
-    gtk3 gdk-pixbuf libnotify gst_all_1.gstreamer
-    gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good
+    gtk3
+    gdk-pixbuf
+    glib
+    libnotify
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
     gst_all_1.gst-plugins-bad
-    gnome3.adwaita-icon-theme
-  ] ++ stdenv.lib.optional withGnomeKeyring libgnome-keyring3;
+    gobject-introspection
+    libsecret
+  ] ++ pluginsDeps;
 
   nativeBuildInputs = [
     gettext
     wrapGAppsHook
+    # To later add plugins to 
+    xorg.lndir
   ];
 
-  propagatedBuildInputs = with pythonPackages; [
-    pygobject3 dbus-python pyxdg
+  propagatedBuildInputs = with python3Packages; [
+    gsettings-desktop-schemas
+    pygobject3
+    dbus-python
+    pyxdg
   ];
 
-  buildPhase = "";
+  passthru = {
+    inherit availablePlugins;
+    withPlugins =
+      plugs:
+      let
+        # goa plugin requires gio's gnome-online-accounts which requires making sure
+        # mailnag runs with GI_TYPELIB_PATH containing the path to Goa-1.0.typelib.
+        # This is handled best by adding the plugins' deps to buildInputs and let
+        # wrapGAppsHook handle that.
+        pluginsDeps = lib.flatten (lib.catAttrs "buildInputs" plugs);
+        self = mailnag;
+      in
+        self.override { userPlugins = plugs; };
+  };
+
+  # See https://nixos.org/nixpkgs/manual/#ssec-gnome-common-issues-double-wrapped
+  dontWrapGApps = true;
 
-  installPhase = "${python}/bin/python setup.py install --prefix=$out";
+  preFixup = ''
+    substituteInPlace $out/${python3Packages.python.sitePackages}/Mailnag/common/dist_cfg.py \
+      --replace "/usr/" $out/
+    for desktop_file in $out/share/applications/*.desktop; do
+      substituteInPlace "$desktop_file" \
+      --replace "/usr/bin" $out/bin
+    done
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
 
-  doCheck = false;
+  # Actually install plugins
+  postInstall = ''
+    for plug in ${builtins.toString userPlugins}; do
+      lndir $plug/${python3Packages.python.sitePackages} $out/${python3Packages.python.sitePackages}
+    done
+  '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "An extensible mail notification daemon";
     homepage = "https://github.com/pulb/mailnag";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ doronbehar ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix
new file mode 100644
index 000000000000..b2eccdc134bc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailnag/goa-plugin.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, fetchFromGitHub
+, python3Packages
+, gobject-introspection
+, gnome-online-accounts
+}:
+
+python3Packages.buildPythonPackage rec {
+  pname = "mailnag-goa-plugin";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "pulb";
+    repo = "mailnag-goa-plugin";
+    rev = "v${version}";
+    sha256 = "0bij6cy96nhq7xzslx0fnhmiac629h0x4wgy67k4i4npwqw10680";
+  };
+
+  buildInputs = [
+    gobject-introspection
+    gnome-online-accounts
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Mailnag GNOME Online Accounts plugin.";
+    homepage = "https://github.com/pulb/mailnag-goa-plugin";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix
new file mode 100644
index 000000000000..6c6bf6f93db3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mailspring/default.nix
@@ -0,0 +1,85 @@
+{ stdenv
+, lib
+, fetchurl
+, autoPatchelfHook
+, alsaLib
+, coreutils
+, db
+, dpkg
+, glib
+, gtk3
+, libkrb5
+, libsecret
+, nss
+, openssl
+, udev
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mailspring";
+  version = "1.7.8";
+
+  src = fetchurl {
+    url = "https://github.com/Foundry376/Mailspring/releases/download/${version}/mailspring-${version}-amd64.deb";
+    sha256 = "207fbf813b6da018a5b848e5dc1194b5996daab39adbd873b2cecb0565c105ce";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    dpkg
+  ];
+
+  buildInputs = [
+    alsaLib
+    db
+    glib
+    gtk3
+    libkrb5
+    libsecret
+    nss
+    xorg.libxkbfile
+    xorg.libXScrnSaver
+    xorg.libXtst
+  ];
+
+  runtimeDependencies = [
+    coreutils
+    openssl
+    (lib.getLib udev)
+  ];
+
+  unpackPhase = ''
+    dpkg -x $src .
+  '';
+
+  installPhase = ''
+    mkdir -p $out/{bin,lib}
+    cp -ar ./usr/share $out
+
+    substituteInPlace $out/share/mailspring/resources/app.asar.unpacked/mailsync \
+      --replace realpath ${coreutils}/bin/realpath \
+      --replace dirname ${coreutils}/bin/dirname
+
+    ln -s $out/share/mailspring/mailspring $out/bin/mailspring
+    ln -s ${openssl.out}/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
+  '';
+
+  postFixup = /* sh */ ''
+    substituteInPlace $out/share/applications/mailspring.desktop \
+      --replace /usr/bin $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A beautiful, fast and maintained fork of Nylas Mail by one of the original authors";
+    longDescription = ''
+      Mailspring is an open-source mail client forked from Nylas Mail and built with Electron.
+      Mailspring's sync engine runs locally, but its source is not open.
+    '';
+    license = licenses.unfree;
+    maintainers = with maintainers; [ toschmidt ];
+    homepage = "https://getmailspring.com";
+    downloadPage = "https://github.com/Foundry376/Mailspring";
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix
index 719965455f9c..1a6ae282a8dd 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/meli/default.nix
@@ -15,15 +15,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "meli";
-  version = "alpha-0.5.1";
+  version = "alpha-0.6.1";
 
   src = fetchgit {
     url = "https://git.meli.delivery/meli/meli.git";
     rev = version;
-    sha256 = "1y5567hdm1s2s272drxvmp6x4y1jpyl7423iz58hgqcsjm9085zv";
+    sha256 = "0fs3wccbdfxf4nmx9l5wy7qpjk4r11qg0fc59y0pdvjrrslcjsds";
   };
 
-  cargoSha256 = "040dfr09bg5z5pn68dy323hcppd599d3f6k7zxqw5f8n4whnlc9y";
+  cargoSha256 = "sha256:19j7jrizp7yifmqwrmnv66pka7131jl7ks4zgs3nr5gbb28zvdrz";
 
   cargoBuildFlags = lib.optional withNotmuch "--features=notmuch";
 
@@ -44,7 +44,7 @@ rustPlatform.buildRustPackage rec {
     description = "Experimental terminal mail client aiming for configurability and extensibility with sane defaults";
     homepage = "https://meli.delivery";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ maintainers."0x4A6F" matthiasbeyer erictapen ];
+    maintainers = with maintainers; [ _0x4A6F matthiasbeyer erictapen ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
index 30b3194d590b..0b18a579e3bc 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/mutt/default.nix
@@ -27,11 +27,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "mutt";
-  version = "1.14.3";
+  version = "1.14.7";
 
   src = fetchurl {
     url = "http://ftp.mutt.org/pub/mutt/${pname}-${version}.tar.gz";
-    sha256 = "0wd4cv1c9hqymvml979g607nh3xxmlyx1ifc4r4qf39v6grnsmdi";
+    sha256 = "0r58xnjgkw0kmnnzhb32mk5gkkani5kbi5krybpbag156fqhgxg4";
   };
 
   patches = optional smimeSupport (fetchpatch {
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
index ad7b4debd3f2..96ca3db79f64 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/neomutt/default.nix
@@ -1,18 +1,19 @@
 { stdenv, fetchFromGitHub, gettext, makeWrapper, tcl, which, writeScript
 , ncurses, perl , cyrus_sasl, gss, gpgme, kerberos, libidn, libxml2, notmuch, openssl
-, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, mailcap, runtimeShell, sqlite, zlib
+, lmdb, libxslt, docbook_xsl, docbook_xml_dtd_42, elinks, mailcap, runtimeShell, sqlite, zlib
 , glibcLocales
+, fetchpatch
 }:
 
 stdenv.mkDerivation rec {
-  version = "20200501";
+  version = "20200925";
   pname = "neomutt";
 
   src = fetchFromGitHub {
     owner  = "neomutt";
     repo   = "neomutt";
     rev    = version;
-    sha256 = "1xrs2bagrcg489zp7g39l3rrpgz8n1ji9cbr21wrnasfbhqcsmnx";
+    sha256 = "1q931n9sijq1iin3swzk57rz7qmy485hvr1fahy5i2wd1xx9yhb2";
   };
 
   buildInputs = [
@@ -21,8 +22,20 @@ stdenv.mkDerivation rec {
     mailcap sqlite
   ];
 
+  patches = [
+    # To be removed on next release. Fixes two bugs in the sidebar behavior.
+    (fetchpatch {
+      url = "https://github.com/neomutt/neomutt/commit/96753674e70edb695c1dc7af73e3317956c1b259.patch";
+      sha256 = "0yjmgdfhn8ra7bc3d40c3c29imgpgbhzphjxp6575llh9kw5h53s";
+    })
+    (fetchpatch {
+      url = "https://github.com/neomutt/neomutt/commit/6078653c9233644ca76c24bdb64e49bd443dd714.patch";
+      sha256 = "1s1p86bqpc9xq9z5qfh0mxxh6syps8shq0dm7bbkg1bz7qya5phy";
+    })
+  ];
+
   nativeBuildInputs = [
-    docbook_xsl docbook_xml_dtd_42 gettext libxml2 libxslt.bin makeWrapper tcl which zlib
+    docbook_xsl docbook_xml_dtd_42 gettext libxml2 libxslt.bin makeWrapper tcl which zlib elinks
   ];
 
   enableParallelBuilding = true;
@@ -40,14 +53,12 @@ stdenv.mkDerivation rec {
 
     # allow neomutt to map attachments to their proper mime.types if specified wrongly
     # and use a far more comprehensive list than the one shipped with neomutt
-    substituteInPlace sendlib.c \
+    substituteInPlace send/sendlib.c \
       --replace /etc/mime.types ${mailcap}/etc/mime.types
+  '';
 
-    # The string conversion tests all fail with the first version of neomutt
-    # that has tests (20180223) as well as 20180716 so we disable them for now.
-    # I don't know if that is related to the tests or our build environment.
-    # Try again with a later release.
-    sed -i '/rfc2047/d' test/Makefile.autosetup test/main.c
+  preBuild = ''
+    export HOME=$(mktemp -d)
   '';
 
   configureFlags = [
@@ -60,6 +71,9 @@ stdenv.mkDerivation rec {
     "--sasl"
     "--with-homespool=mailbox"
     "--with-mailpath="
+    # To make it not reference .dev outputs. See:
+    # https://github.com/neomutt/neomutt/pull/2367
+    "--disable-include-path-in-cflags"
     # Look in $PATH at runtime, instead of hardcoding /usr/bin/sendmail
     "ac_cv_path_SENDMAIL=sendmail"
     "--zlib"
@@ -80,16 +94,15 @@ stdenv.mkDerivation rec {
     cp -r ${fetchFromGitHub {
       owner = "neomutt";
       repo = "neomutt-test-files";
-      rev = "1ee274e9ae1330fb901eb7b8275b3079d7869222";
-      sha256 = "0dhilz4rr7616jh8jcvh50a3rr09in43nsv72mm6f3vfklcqincp";
+      rev = "8629adab700a75c54e8e28bf05ad092503a98f75";
+      sha256 = "1ci04nqkab9mh60zzm66sd6mhsr6lya8wp92njpbvafc86vvwdlr";
     }} $(pwd)/test-files
+    chmod -R +w test-files
     (cd test-files && ./setup.sh)
 
     export NEOMUTT_TEST_DIR=$(pwd)/test-files
-    export LC_ALL="en_US.UTF-8"
   '';
 
-  checkInputs = [ glibcLocales ];
   checkTarget = "test";
   postCheck = "unset NEOMUTT_TEST_DIR";
 
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
index 0b2a76cc00f8..214f4311e691 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch-bower/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "notmuch-bower";
-  version = "0.11";
+  version = "0.12";
 
   src = fetchFromGitHub {
     owner = "wangp";
     repo = "bower";
     rev = version;
-    sha256 = "0vhac8yjnhb1gz60jfzg27spyn96c1rr849gc6vjym5xamw7zp0v";
+    sha256 = "0hvvlbvad6h73iiyn9xshlj073p2ddchgh0pyizh9gi8niir4fn5";
   };
 
   nativeBuildInputs = [ gawk mercury pandoc ];
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
index 26f47dba4617..87053780073d 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv
+{ fetchurl, fetchgit, stdenv
 , pkgconfig, gnupg
 , xapian, gmime, talloc, zlib
 , doxygen, perl, texinfo
@@ -12,17 +12,18 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "0.29.3";
+  version = "0.30.1c80020";
   pname = "notmuch";
 
   passthru = {
-    pythonSourceRoot = "${pname}-${version}/bindings/python";
+    pythonSourceRoot = "${src.name}/bindings/python";
     inherit version;
   };
 
-  src = fetchurl {
-    url = "https://notmuchmail.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "0dfwa38vgnxk9cvvpza66szjgp8lir6iz6yy0cry9593lywh9xym";
+  src = fetchgit {
+    url = "https://git.notmuchmail.org/git/notmuch";
+    sha256 = "0xj944c4ayps1bg21pksjih3y9v6lb34dd582df14i14q0yzji51";
+    rev = "1c80020e701c7323de137c0616fc8864443d7bd3";
   };
 
   nativeBuildInputs = [
@@ -75,6 +76,7 @@ stdenv.mkDerivation rec {
       sha256 = "1lk91s00y4qy4pjh8638b5lfkgwyl282g1m27srsf7qfn58y16a2";
     };
   in ''
+    mkdir -p test/test-databases
     ln -s ${test-database} test/test-databases/database-v1.tar.xz
   '';
   doCheck = !stdenv.hostPlatform.isDarwin && (versionAtLeast gmime.version "3.0.3");
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix
new file mode 100644
index 000000000000..be937ab588d1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68.nix
@@ -0,0 +1,183 @@
+# This pakcage is keeped until Thunderbird 78 supports OpenPGP.
+# https://www.thunderbird.net/en-US/thunderbird/78.0.1/releasenotes/
+{ stdenv, fetchurl, config, makeWrapper
+, alsaLib
+, at-spi2-atk
+, atk
+, cairo
+, cups
+, curl
+, dbus-glib
+, dbus
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, glibc
+, gtk2
+, gtk3
+, kerberos
+, libX11
+, libXScrnSaver
+, libXcomposite
+, libXcursor
+, libXdamage
+, libXext
+, libXfixes
+, libXi
+, libXinerama
+, libXrender
+, libXt
+, libxcb
+, libcanberra
+, gnome3
+, libGLU, libGL
+, nspr
+, nss
+, pango
+, writeScript
+, xidel
+, coreutils
+, gnused
+, gnugrep
+, gnupg
+, runtimeShell
+}:
+
+# imports `version` and `sources`
+with (import ./68_sources.nix);
+
+let
+  arch = if stdenv.hostPlatform.system == "i686-linux"
+    then "linux-i686"
+    else "linux-x86_64";
+
+  isPrefixOf = prefix: string:
+    builtins.substring 0 (builtins.stringLength prefix) string == prefix;
+
+  sourceMatches = locale: source:
+      (isPrefixOf source.locale locale) && source.arch == arch;
+
+  systemLocale = config.i18n.defaultLocale or "en-US";
+
+  defaultSource = stdenv.lib.findFirst (sourceMatches "en-US") {} sources;
+
+  source = stdenv.lib.findFirst (sourceMatches systemLocale) defaultSource sources;
+
+  name = "thunderbird-bin-${version}";
+in
+
+stdenv.mkDerivation {
+  inherit name;
+
+  src = fetchurl {
+    url = "https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/${version}/${source.arch}/${source.locale}/thunderbird-${version}.tar.bz2";
+    inherit (source) sha256;
+  };
+
+  phases = "unpackPhase installPhase";
+
+  libPath = stdenv.lib.makeLibraryPath
+    [ stdenv.cc.cc
+      alsaLib
+      at-spi2-atk
+      atk
+      cairo
+      cups
+      curl
+      dbus-glib
+      dbus
+      fontconfig
+      freetype
+      gdk-pixbuf
+      glib
+      glibc
+      gtk2
+      gtk3
+      kerberos
+      libX11
+      libXScrnSaver
+      libXcomposite
+      libXcursor
+      libXdamage
+      libXext
+      libXfixes
+      libXi
+      libXinerama
+      libXrender
+      libXt
+      libxcb
+      libcanberra
+      libGLU libGL
+      nspr
+      nss
+      pango
+    ] + ":" + stdenv.lib.makeSearchPathOutput "lib" "lib64" [
+      stdenv.cc.cc
+    ];
+
+  buildInputs = [ gtk3 gnome3.adwaita-icon-theme ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase =
+    ''
+      mkdir -p "$prefix/usr/lib/thunderbird-bin-${version}"
+      cp -r * "$prefix/usr/lib/thunderbird-bin-${version}"
+
+      mkdir -p "$out/bin"
+      ln -s "$prefix/usr/lib/thunderbird-bin-${version}/thunderbird" "$out/bin/"
+
+      for executable in \
+        thunderbird crashreporter thunderbird-bin plugin-container updater
+      do
+        patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+          "$out/usr/lib/thunderbird-bin-${version}/$executable"
+      done
+
+      find . -executable -type f -exec \
+        patchelf --set-rpath "$libPath" \
+          "$out/usr/lib/thunderbird-bin-${version}/{}" \;
+
+      # Create a desktop item.
+      mkdir -p $out/share/applications
+      cat > $out/share/applications/thunderbird.desktop <<EOF
+      [Desktop Entry]
+      Type=Application
+      Exec=$out/bin/thunderbird
+      Icon=$out/usr/lib/thunderbird-bin-${version}/chrome/icons/default/default256.png
+      Name=Thunderbird
+      GenericName=Mail Reader
+      Categories=Application;Network;
+      EOF
+
+      # SNAP_NAME: https://github.com/NixOS/nixpkgs/pull/61980
+      # MOZ_LEGACY_PROFILES and MOZ_ALLOW_DOWNGRADE:
+      #   commit 87e261843c4236c541ee0113988286f77d2fa1ee
+      wrapProgram "$out/bin/thunderbird" \
+        --argv0 "$out/bin/.thunderbird-wrapped" \
+        --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:" \
+        --suffix XDG_DATA_DIRS : "$XDG_ICON_DIRS" \
+        --set SNAP_NAME "thunderbird" \
+        --set MOZ_LEGACY_PROFILES 1 \
+        --set MOZ_ALLOW_DOWNGRADE 1
+    '';
+
+  passthru.updateScript = import ./../../browsers/firefox-bin/update.nix {
+    inherit name writeScript xidel coreutils gnused gnugrep curl gnupg runtimeShell;
+    baseName = "thunderbird";
+    channel = "release";
+    basePath = "pkgs/applications/networking/mailreaders/thunderbird-bin";
+    baseUrl = "http://archive.mozilla.org/pub/thunderbird/releases/";
+  };
+  meta = with stdenv.lib; {
+    description = "Mozilla Thunderbird, a full-featured email client (binary package)";
+    homepage = "http://www.mozilla.org/thunderbird/";
+    license = {
+      free = false;
+      url = "http://www.mozilla.org/en-US/foundation/trademarks/policy/";
+    };
+    maintainers = with stdenv.lib.maintainers; [ ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68_sources.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68_sources.nix
new file mode 100644
index 000000000000..c48a6d1c6063
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/68_sources.nix
@@ -0,0 +1,615 @@
+{
+  version = "68.12.0";
+  sources = [
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ar/thunderbird-68.12.0.tar.bz2";
+      locale = "ar";
+      arch = "linux-x86_64";
+      sha256 = "70cfb9e6a7a1f285f37a8f13c9a010237e6aabf815b77a12f54ee0deedd36400";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ast/thunderbird-68.12.0.tar.bz2";
+      locale = "ast";
+      arch = "linux-x86_64";
+      sha256 = "5645657f20d37ffdb11f383f164f03c66ed2024244849b09bfa60075d5d07490";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/be/thunderbird-68.12.0.tar.bz2";
+      locale = "be";
+      arch = "linux-x86_64";
+      sha256 = "d38cdcc2ba4534c23a1bb42b93f271623c497f48e1d255a23bf12a368ff339bd";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/bg/thunderbird-68.12.0.tar.bz2";
+      locale = "bg";
+      arch = "linux-x86_64";
+      sha256 = "c8883242683dec57f9db502d96d2036ec46753f474a33c0f1ae31f97f2c3113c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/br/thunderbird-68.12.0.tar.bz2";
+      locale = "br";
+      arch = "linux-x86_64";
+      sha256 = "cfb669e2378f97689a14f23e2c55ef4987e2508695eb195be3af75ed1d648345";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ca/thunderbird-68.12.0.tar.bz2";
+      locale = "ca";
+      arch = "linux-x86_64";
+      sha256 = "9ae4b43e0d5d9edd83291f0be7d53d07e5c84f1d0ad4348654136543b7b53a54";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/cak/thunderbird-68.12.0.tar.bz2";
+      locale = "cak";
+      arch = "linux-x86_64";
+      sha256 = "d6d635a15b913679ed943c3501dd03140d099ff36b48c8731a47eacda1b5232b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/cs/thunderbird-68.12.0.tar.bz2";
+      locale = "cs";
+      arch = "linux-x86_64";
+      sha256 = "616fbf24e36d63ce3cbc957d69b8972d517524c613a22bedcf5b57534f9a9a41";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/cy/thunderbird-68.12.0.tar.bz2";
+      locale = "cy";
+      arch = "linux-x86_64";
+      sha256 = "548c51228d2f3003bb94e1bee91cea0d2edb95bd0f86ee4259c8daef90a2dca8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/da/thunderbird-68.12.0.tar.bz2";
+      locale = "da";
+      arch = "linux-x86_64";
+      sha256 = "ad0e4b7a693d881b8875a5b8cc3e607a3883df759278129f0933522b9a6acd24";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/de/thunderbird-68.12.0.tar.bz2";
+      locale = "de";
+      arch = "linux-x86_64";
+      sha256 = "bf9b70b345ffe5df03365d819c5abc3339ed3af4d8a716cdfe7099134864a9b4";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/dsb/thunderbird-68.12.0.tar.bz2";
+      locale = "dsb";
+      arch = "linux-x86_64";
+      sha256 = "a2cd7ffb0e8b4c3d1715c18e636d0dcd5efa245200d6d0f14048fc4b399b8121";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/el/thunderbird-68.12.0.tar.bz2";
+      locale = "el";
+      arch = "linux-x86_64";
+      sha256 = "07836ce122936848e26cd5a1522967760bee67654582076c53e4ec183cc4c40e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/en-GB/thunderbird-68.12.0.tar.bz2";
+      locale = "en-GB";
+      arch = "linux-x86_64";
+      sha256 = "c89fa35af79eca3cc26b492c602a3f8af0dbaf6ce4ee3af93d93f10daf4e9d6e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/en-US/thunderbird-68.12.0.tar.bz2";
+      locale = "en-US";
+      arch = "linux-x86_64";
+      sha256 = "6eeea0de838909f91da7270e42ae1513d2b801f412fc758f2f8c682d260a7c24";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/es-AR/thunderbird-68.12.0.tar.bz2";
+      locale = "es-AR";
+      arch = "linux-x86_64";
+      sha256 = "e9d84032a91f7feb2db3d22a500c564f273c2b637f97aaab2edf3209b93dda1d";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/es-ES/thunderbird-68.12.0.tar.bz2";
+      locale = "es-ES";
+      arch = "linux-x86_64";
+      sha256 = "a986e8a48b59354421193f2dd01e3c291fb6c98031af43531e723dc217a43d4a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/et/thunderbird-68.12.0.tar.bz2";
+      locale = "et";
+      arch = "linux-x86_64";
+      sha256 = "2f7508e83aba4fd64a817c7eb4b44d4ea9371956339a009ba541bf3a349693cf";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/eu/thunderbird-68.12.0.tar.bz2";
+      locale = "eu";
+      arch = "linux-x86_64";
+      sha256 = "edbc5ff4ba45106233cdbf5255405c4ee52ba7e6811736958323a616881b943f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/fi/thunderbird-68.12.0.tar.bz2";
+      locale = "fi";
+      arch = "linux-x86_64";
+      sha256 = "f4ad740a724efdbfec54445304ca75e9a16e0881bc18789b8ea35632d8857d4b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/fr/thunderbird-68.12.0.tar.bz2";
+      locale = "fr";
+      arch = "linux-x86_64";
+      sha256 = "ebf60a227c9fe5237eff22fb81f3c8bc02a593de823d6f0ad9b67f07af129dea";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/fy-NL/thunderbird-68.12.0.tar.bz2";
+      locale = "fy-NL";
+      arch = "linux-x86_64";
+      sha256 = "b12983077a62c5bf7353f50dd951348a457ce07f5beb2a579f199c4d77ed0906";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ga-IE/thunderbird-68.12.0.tar.bz2";
+      locale = "ga-IE";
+      arch = "linux-x86_64";
+      sha256 = "aa7c3a4b54fd6fef0f120a6748c45a3f379268f31e087cb3df07d270bf060bad";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/gd/thunderbird-68.12.0.tar.bz2";
+      locale = "gd";
+      arch = "linux-x86_64";
+      sha256 = "39fadb2bd4c01da0eb188cb9f52ccd726ec9f7eb5ced44e2a30ee0cfac2527bf";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/gl/thunderbird-68.12.0.tar.bz2";
+      locale = "gl";
+      arch = "linux-x86_64";
+      sha256 = "b4ee1f89b0326b22fc7a5b980b857c2652d6881d096060a8bc083015b47762d8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/he/thunderbird-68.12.0.tar.bz2";
+      locale = "he";
+      arch = "linux-x86_64";
+      sha256 = "cefbc742672942e310dc9f4dbcefc8b66cf01d58ac64448ac8c0dc33fdace5ae";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/hr/thunderbird-68.12.0.tar.bz2";
+      locale = "hr";
+      arch = "linux-x86_64";
+      sha256 = "9e132811cb6bd98faee86e298b78e845727bfded84c0cdab41608ed1565f1aee";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/hsb/thunderbird-68.12.0.tar.bz2";
+      locale = "hsb";
+      arch = "linux-x86_64";
+      sha256 = "2a41d1e188fd5fed93a37a1bedc67cb745367447504a76836f79928194730d3b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/hu/thunderbird-68.12.0.tar.bz2";
+      locale = "hu";
+      arch = "linux-x86_64";
+      sha256 = "9196df7850b9cff69f52b5db69ec3b64cfa312bba5669380c137b95a8140cf39";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/hy-AM/thunderbird-68.12.0.tar.bz2";
+      locale = "hy-AM";
+      arch = "linux-x86_64";
+      sha256 = "4a08137a9a714677ecf86a24f165047b809e22eff50d196b92c153e59f943c30";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/id/thunderbird-68.12.0.tar.bz2";
+      locale = "id";
+      arch = "linux-x86_64";
+      sha256 = "39784aab0bc3253af47cdcd95824eccdecae4dac819bacf6a04daa7b5c86d6e3";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/is/thunderbird-68.12.0.tar.bz2";
+      locale = "is";
+      arch = "linux-x86_64";
+      sha256 = "a041d1af23e9c64967e4d014b6a84ddc80ad24e852146e448f6b380cdd672e67";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/it/thunderbird-68.12.0.tar.bz2";
+      locale = "it";
+      arch = "linux-x86_64";
+      sha256 = "b0e3161c801fbaee2f589b1bc61a4fba9968f5f363a62cf0f8af855d23e4782c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ja/thunderbird-68.12.0.tar.bz2";
+      locale = "ja";
+      arch = "linux-x86_64";
+      sha256 = "ad416d47930d81be9ac2f20b3699f4c74471c36e08b14f9d5c6ee1af97c7c9d4";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ka/thunderbird-68.12.0.tar.bz2";
+      locale = "ka";
+      arch = "linux-x86_64";
+      sha256 = "3b30bc5f0971310d71e1909b4ed891481457ac8baf11c1e505c3400b2a7cfb63";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/kab/thunderbird-68.12.0.tar.bz2";
+      locale = "kab";
+      arch = "linux-x86_64";
+      sha256 = "abdc58d5d5ef251e63c0c40a48460f90e299a4420cbe4e290d519fbed4c335b8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/kk/thunderbird-68.12.0.tar.bz2";
+      locale = "kk";
+      arch = "linux-x86_64";
+      sha256 = "08018b951de59b1a92717fc82bd98a0c324a019ee0ae14888f09c5351a586284";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ko/thunderbird-68.12.0.tar.bz2";
+      locale = "ko";
+      arch = "linux-x86_64";
+      sha256 = "1178adc42b3a2ddac46dd50ad8436d1be50db409963e8fac3beb22a431f885fe";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/lt/thunderbird-68.12.0.tar.bz2";
+      locale = "lt";
+      arch = "linux-x86_64";
+      sha256 = "18d88a8cbb24d2a78af0de282187a743e707136fdb61912e5f64bf75730e3a76";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ms/thunderbird-68.12.0.tar.bz2";
+      locale = "ms";
+      arch = "linux-x86_64";
+      sha256 = "e1754cfbf20e286fd6304b8d75337e3794893c5ebd9b242cf624090e6fc6e9ee";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/nb-NO/thunderbird-68.12.0.tar.bz2";
+      locale = "nb-NO";
+      arch = "linux-x86_64";
+      sha256 = "6379f6dca3d8bacb466044f0a7d11b32eb61166d3f14c37431f77843eb884c90";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/nl/thunderbird-68.12.0.tar.bz2";
+      locale = "nl";
+      arch = "linux-x86_64";
+      sha256 = "66a56e218365bb260980848427609d390674e2ba3c70b9adc4121f73c861d9b8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/nn-NO/thunderbird-68.12.0.tar.bz2";
+      locale = "nn-NO";
+      arch = "linux-x86_64";
+      sha256 = "ccdb135d43f5542151fe2c99a8e13cebfbc032367abb0308213433b753dc8125";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/pl/thunderbird-68.12.0.tar.bz2";
+      locale = "pl";
+      arch = "linux-x86_64";
+      sha256 = "5dc2151d1bb956c4b6fbd1b6185d9328f7091e60fdcd51bad5a9ebaa8fcbb7d7";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/pt-BR/thunderbird-68.12.0.tar.bz2";
+      locale = "pt-BR";
+      arch = "linux-x86_64";
+      sha256 = "5ebf77d47bf45b058aaeca857060c908dbf7036bae2c2c5812ff145aed840203";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/pt-PT/thunderbird-68.12.0.tar.bz2";
+      locale = "pt-PT";
+      arch = "linux-x86_64";
+      sha256 = "73baa68f79b4a15795fc426dfc9a8d573a05e4ab8a663d122cfd802f93941825";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/rm/thunderbird-68.12.0.tar.bz2";
+      locale = "rm";
+      arch = "linux-x86_64";
+      sha256 = "29f8ba57d9000803bae795c2ff977347af9a1f0df123337eaab3bdcc20786734";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ro/thunderbird-68.12.0.tar.bz2";
+      locale = "ro";
+      arch = "linux-x86_64";
+      sha256 = "b8233ad81c6620c26a02457b9235ce0be0c5d93b81f88d9ddc84bc12f869dbad";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/ru/thunderbird-68.12.0.tar.bz2";
+      locale = "ru";
+      arch = "linux-x86_64";
+      sha256 = "f959f786dbbb7d06cb33eca24efd9e2763c5ca73fc4ba47e9b933b6298d7f026";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/si/thunderbird-68.12.0.tar.bz2";
+      locale = "si";
+      arch = "linux-x86_64";
+      sha256 = "dcf59c0c1ea0acdcc894463b04c54339a72dcceb25fe5478608265eb3ead226a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sk/thunderbird-68.12.0.tar.bz2";
+      locale = "sk";
+      arch = "linux-x86_64";
+      sha256 = "2a06329fd4a9dd6333e2d73a44fca7eaf593032e8ace33736a03dbfffb2920a0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sl/thunderbird-68.12.0.tar.bz2";
+      locale = "sl";
+      arch = "linux-x86_64";
+      sha256 = "f7bd3e3a407dbab07836342ff29fc143fe3904e7f878ea719522ade3fc4f6b84";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sq/thunderbird-68.12.0.tar.bz2";
+      locale = "sq";
+      arch = "linux-x86_64";
+      sha256 = "0edc58751a6794494efab8b0a2ce852374a747ccb73b38455475f0099ea0f238";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sr/thunderbird-68.12.0.tar.bz2";
+      locale = "sr";
+      arch = "linux-x86_64";
+      sha256 = "91ac5cc0646c062b00b3b064af53ba03c7e034b75afa13dca7586eb80578d377";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/sv-SE/thunderbird-68.12.0.tar.bz2";
+      locale = "sv-SE";
+      arch = "linux-x86_64";
+      sha256 = "5aa21e4b78f4294835197f784a651f17453d83fce98e7140e49c6da117464fd9";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/tr/thunderbird-68.12.0.tar.bz2";
+      locale = "tr";
+      arch = "linux-x86_64";
+      sha256 = "3ab2639dd126e3ed9b031fc10f4396c7d98ffa7b7ffca6a9b3f2f47590e3b83c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/uk/thunderbird-68.12.0.tar.bz2";
+      locale = "uk";
+      arch = "linux-x86_64";
+      sha256 = "59be2ddc7c65405e0b3854c2a551dab73df9736842ee362b2a20dc9088242a96";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/uz/thunderbird-68.12.0.tar.bz2";
+      locale = "uz";
+      arch = "linux-x86_64";
+      sha256 = "ae196683b283525511fbd2e3ad428339672f2f1339566a323e01f6f649d333c1";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/vi/thunderbird-68.12.0.tar.bz2";
+      locale = "vi";
+      arch = "linux-x86_64";
+      sha256 = "9d66b8e4eefbb6b8c0d9893b056fc684310ae583921d626cb676cd8a7b4b39de";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/zh-CN/thunderbird-68.12.0.tar.bz2";
+      locale = "zh-CN";
+      arch = "linux-x86_64";
+      sha256 = "2839f2f076a8a6e283a3ffdd6100986a11d19b9108fce074f8e7f127cb0f375e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-x86_64/zh-TW/thunderbird-68.12.0.tar.bz2";
+      locale = "zh-TW";
+      arch = "linux-x86_64";
+      sha256 = "02ef645a7de8abc1c5dd92eb685d64570cf1db971cfe7e248111d6a17b3ddcd9";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ar/thunderbird-68.12.0.tar.bz2";
+      locale = "ar";
+      arch = "linux-i686";
+      sha256 = "5c4d899245a38626fa18d849bcf01d50125dee60d715d76224ca0bb4623f73be";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ast/thunderbird-68.12.0.tar.bz2";
+      locale = "ast";
+      arch = "linux-i686";
+      sha256 = "f657bdc5b43b75e43578251abccf5c7b9e6d0848fd55c6105060daba33c36721";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/be/thunderbird-68.12.0.tar.bz2";
+      locale = "be";
+      arch = "linux-i686";
+      sha256 = "669a2cbfe600727b9d9a8ed5046272a1f19b80b6af9a6a6977ce1b89f60fa36e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/bg/thunderbird-68.12.0.tar.bz2";
+      locale = "bg";
+      arch = "linux-i686";
+      sha256 = "e1b33857544c10c0191316f6e3d16b34957196b35a922c884315714fe851389b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/br/thunderbird-68.12.0.tar.bz2";
+      locale = "br";
+      arch = "linux-i686";
+      sha256 = "b9e4a530529449446fe5a302277878c4d2192ef7bb48206f8528024087f520ea";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ca/thunderbird-68.12.0.tar.bz2";
+      locale = "ca";
+      arch = "linux-i686";
+      sha256 = "aa5e4ae20fa9e5dbb8c0ba275ba18d1ba94900094ba3186aac40ffb27396a96f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/cak/thunderbird-68.12.0.tar.bz2";
+      locale = "cak";
+      arch = "linux-i686";
+      sha256 = "a812c9150feec48e2ebfb1786f5e30ade33203160fa4102382435641caeaf3b8";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/cs/thunderbird-68.12.0.tar.bz2";
+      locale = "cs";
+      arch = "linux-i686";
+      sha256 = "75813ad7dd0ae5c073964296dd687e5c1289178491adc98d40e853ed812bdca9";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/cy/thunderbird-68.12.0.tar.bz2";
+      locale = "cy";
+      arch = "linux-i686";
+      sha256 = "b3894f05cf905aa96612860dcef0bdb4bb9564901ef84172e11856a9fa9e0ca4";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/da/thunderbird-68.12.0.tar.bz2";
+      locale = "da";
+      arch = "linux-i686";
+      sha256 = "a4f21bd2017043872a962167f98db358b824ae1821fcf03e2df1bef7783e07c0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/de/thunderbird-68.12.0.tar.bz2";
+      locale = "de";
+      arch = "linux-i686";
+      sha256 = "3a079685f75d2ec0320ec9e366b4e037954d67fa3f9e3bda055b8cd7de8fbdd0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/dsb/thunderbird-68.12.0.tar.bz2";
+      locale = "dsb";
+      arch = "linux-i686";
+      sha256 = "295a0f56429b3638dd0dcbf8d97a6376636b67e22d493ce8dfaceeb579466d18";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/el/thunderbird-68.12.0.tar.bz2";
+      locale = "el";
+      arch = "linux-i686";
+      sha256 = "86e4b98ede80cc07cc1aec043af82068a73b7c76820f70df8314e3b91c108d18";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/en-GB/thunderbird-68.12.0.tar.bz2";
+      locale = "en-GB";
+      arch = "linux-i686";
+      sha256 = "2cb03a17f88e3826181911ec6a7455528d1e4c051b065252c964c6c0794175e4";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/en-US/thunderbird-68.12.0.tar.bz2";
+      locale = "en-US";
+      arch = "linux-i686";
+      sha256 = "11fe953ede0d99656534ac676f118e939024744c5301d378acbeac6792e668e5";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/es-AR/thunderbird-68.12.0.tar.bz2";
+      locale = "es-AR";
+      arch = "linux-i686";
+      sha256 = "596264396a25adb873320222697e7f1a58aaab484de9c0d2e85f99962b6d893d";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/es-ES/thunderbird-68.12.0.tar.bz2";
+      locale = "es-ES";
+      arch = "linux-i686";
+      sha256 = "a9512af30e2b1613a6bd1ae6f4ce785f676b2cf70b80a37d85a5e1566bb2b35f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/et/thunderbird-68.12.0.tar.bz2";
+      locale = "et";
+      arch = "linux-i686";
+      sha256 = "b7dcb196881a23e979edb5ae247a7c07b1cf1250cb4c159ce523d1a26be188c2";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/eu/thunderbird-68.12.0.tar.bz2";
+      locale = "eu";
+      arch = "linux-i686";
+      sha256 = "4066164b4c9242a9885bc2de802c4f5b6b594c928db36ac72c94faabaad86679";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/fi/thunderbird-68.12.0.tar.bz2";
+      locale = "fi";
+      arch = "linux-i686";
+      sha256 = "a7c635cbbbc10725b28052ccc61603fb60b91e06bbf1f240561bdb8f941af55a";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/fr/thunderbird-68.12.0.tar.bz2";
+      locale = "fr";
+      arch = "linux-i686";
+      sha256 = "7dba28adb1287e1aa9ae85840fc3aca42aaedd4b2c2aa6cc68d5f793549d19b7";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/fy-NL/thunderbird-68.12.0.tar.bz2";
+      locale = "fy-NL";
+      arch = "linux-i686";
+      sha256 = "bd763e264eb684ec3b0b1f2c68ce295d1df86994d15f5c66c487e4742bfef86e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ga-IE/thunderbird-68.12.0.tar.bz2";
+      locale = "ga-IE";
+      arch = "linux-i686";
+      sha256 = "52f9b5694efbdd8ecc76aef58695423c6a4b547b5b0cfedca313386b7500685e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/gd/thunderbird-68.12.0.tar.bz2";
+      locale = "gd";
+      arch = "linux-i686";
+      sha256 = "6c9c1b0f11ad13e0780371d54fedb52d2463713db3bc52adb72c8ea9ff80eb8f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/gl/thunderbird-68.12.0.tar.bz2";
+      locale = "gl";
+      arch = "linux-i686";
+      sha256 = "608bf5c0d6148cc3014758829ba06135222b462242456ca0984e7dc12654c2cd";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/he/thunderbird-68.12.0.tar.bz2";
+      locale = "he";
+      arch = "linux-i686";
+      sha256 = "f92d569a53f34bfdda4dac185834e5692526f13f20853d1943f165af33b54a37";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/hr/thunderbird-68.12.0.tar.bz2";
+      locale = "hr";
+      arch = "linux-i686";
+      sha256 = "60d2f184219f8d17c2739ee3cc8463bed474142bd2caad74157b97db2306b27f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/hsb/thunderbird-68.12.0.tar.bz2";
+      locale = "hsb";
+      arch = "linux-i686";
+      sha256 = "40ffece26101b2f6a7789511b026d99234bd34ec78e566e7e25065ae3201d693";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/hu/thunderbird-68.12.0.tar.bz2";
+      locale = "hu";
+      arch = "linux-i686";
+      sha256 = "e74da0bdb27fe3375dfbd1ab042892de3ded84f33a6f6d46e209fdcaa28183d0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/hy-AM/thunderbird-68.12.0.tar.bz2";
+      locale = "hy-AM";
+      arch = "linux-i686";
+      sha256 = "fd93972c11842b56453449e72617deb3177d020c8f25cf4d5fb687f4a3ddb5c0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/id/thunderbird-68.12.0.tar.bz2";
+      locale = "id";
+      arch = "linux-i686";
+      sha256 = "546825968ad86e4c5c6effefd0f924cc1d10489fff7968f17401e3f84c4d1ab0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/is/thunderbird-68.12.0.tar.bz2";
+      locale = "is";
+      arch = "linux-i686";
+      sha256 = "1f2e2228c685be2d65d6e0b92eef8ff3e58d7b772f846d0707a9b02e6d0ad306";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/it/thunderbird-68.12.0.tar.bz2";
+      locale = "it";
+      arch = "linux-i686";
+      sha256 = "41b27c8195432e1412e3c4645b823b8dd1f673eabf07ddc72f3d792d3f7488da";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ja/thunderbird-68.12.0.tar.bz2";
+      locale = "ja";
+      arch = "linux-i686";
+      sha256 = "68940d44d933bb7228d6f9a03406ca01903c54fdf57eb5a1e1033b12ef507df6";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ka/thunderbird-68.12.0.tar.bz2";
+      locale = "ka";
+      arch = "linux-i686";
+      sha256 = "ce0aff0fd47b00803ea66278b3514dcf65ecb5547878f8081f7ec6c1f411ce10";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/kab/thunderbird-68.12.0.tar.bz2";
+      locale = "kab";
+      arch = "linux-i686";
+      sha256 = "3936b56eaa1e05a96626f7d10c8fcc3ba9014b1385b21243c049b133b923ddef";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/kk/thunderbird-68.12.0.tar.bz2";
+      locale = "kk";
+      arch = "linux-i686";
+      sha256 = "7fa0aa64d0f0dcc6f71d6a21647cc4fccef935b783deb5d19b88f5b96b4b4ec4";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ko/thunderbird-68.12.0.tar.bz2";
+      locale = "ko";
+      arch = "linux-i686";
+      sha256 = "4bddd0ccb747bb12cdc6d88c2c9544354293000c586454bb5932f4d81afbf400";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/lt/thunderbird-68.12.0.tar.bz2";
+      locale = "lt";
+      arch = "linux-i686";
+      sha256 = "f1a3514188c1b887afd2c662a1b6abf6fe37b558864be0cc79e87ed147188461";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ms/thunderbird-68.12.0.tar.bz2";
+      locale = "ms";
+      arch = "linux-i686";
+      sha256 = "7ea045d6db78ec7d6ebf164c8e3d28c2540a573238de518e934646573aec71dc";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/nb-NO/thunderbird-68.12.0.tar.bz2";
+      locale = "nb-NO";
+      arch = "linux-i686";
+      sha256 = "d2c0e2099ea60b9da95ebd9bd79a5d0a6a1ebc84b8b490511a68c81355f97761";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/nl/thunderbird-68.12.0.tar.bz2";
+      locale = "nl";
+      arch = "linux-i686";
+      sha256 = "48741be79422d80140ec862d004fa75a407f67490f67a3e440c01e0defe1f85f";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/nn-NO/thunderbird-68.12.0.tar.bz2";
+      locale = "nn-NO";
+      arch = "linux-i686";
+      sha256 = "b40f0d7112cadab322c8b71cacce5d6df87fb80f40cc55ca22c279016c3ea805";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/pl/thunderbird-68.12.0.tar.bz2";
+      locale = "pl";
+      arch = "linux-i686";
+      sha256 = "e64b10526cb460f437427cc4a7ea90959cc693a75fd6a61b43e9d3fd76ded618";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/pt-BR/thunderbird-68.12.0.tar.bz2";
+      locale = "pt-BR";
+      arch = "linux-i686";
+      sha256 = "bdb558f9430c06871954ec6c7d54267625184a0cba914a87ad199e8f32b03de2";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/pt-PT/thunderbird-68.12.0.tar.bz2";
+      locale = "pt-PT";
+      arch = "linux-i686";
+      sha256 = "4631e8247446653e91f239fdb5ad3c8531f3d007dbdc83818178a4cdc525edf4";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/rm/thunderbird-68.12.0.tar.bz2";
+      locale = "rm";
+      arch = "linux-i686";
+      sha256 = "13e6aca7139fd89e83e7ae9b71253731f0954b0a83cc3560ecc00500b9bc1df7";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ro/thunderbird-68.12.0.tar.bz2";
+      locale = "ro";
+      arch = "linux-i686";
+      sha256 = "023a567c42dad9bdbd465c8b99f12cf5f667ef4691e16971e09496c4a7db0f12";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/ru/thunderbird-68.12.0.tar.bz2";
+      locale = "ru";
+      arch = "linux-i686";
+      sha256 = "9ec35bbce5f026a4262a5d708b53a767f47ac8e90314513d36a587d1a49dbb6b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/si/thunderbird-68.12.0.tar.bz2";
+      locale = "si";
+      arch = "linux-i686";
+      sha256 = "c540b94a45deeddf1f7f5a8cca8de7e944ee8ad9f8595a308836c159901ec0b6";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sk/thunderbird-68.12.0.tar.bz2";
+      locale = "sk";
+      arch = "linux-i686";
+      sha256 = "5296241664023773d2c0c4fa55e74eb6470482389c834d1934c252f79e79ebff";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sl/thunderbird-68.12.0.tar.bz2";
+      locale = "sl";
+      arch = "linux-i686";
+      sha256 = "cd0376137d8018875873332fdfae3bc3c0d6b2a2b881dfa970d7d7999e8b312b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sq/thunderbird-68.12.0.tar.bz2";
+      locale = "sq";
+      arch = "linux-i686";
+      sha256 = "6fbf47759ca8c4d7cf30ca3af8a3fd35a01b7738422d29448cfd9eed81eba49b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sr/thunderbird-68.12.0.tar.bz2";
+      locale = "sr";
+      arch = "linux-i686";
+      sha256 = "636708320247c7c45622fd9179d5689da97472a9308f11810623129cf5a0e8d7";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/sv-SE/thunderbird-68.12.0.tar.bz2";
+      locale = "sv-SE";
+      arch = "linux-i686";
+      sha256 = "9550c173b047e3ff774f4c3faf2c1f125b3abc34e6feb5801c108fda94e54e4e";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/tr/thunderbird-68.12.0.tar.bz2";
+      locale = "tr";
+      arch = "linux-i686";
+      sha256 = "ffe82a300c7fa7a0e826d11613f5187c003b009efa29f4755f17af0f88d9e73b";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/uk/thunderbird-68.12.0.tar.bz2";
+      locale = "uk";
+      arch = "linux-i686";
+      sha256 = "b018769149c0a4ff323b90b5d51465733629e7c527b39381ba9696cb077ad767";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/uz/thunderbird-68.12.0.tar.bz2";
+      locale = "uz";
+      arch = "linux-i686";
+      sha256 = "b0b59ac4d08c9f385f4ed7980065ce99ef24874734390a83af6e8fbd18173d99";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/vi/thunderbird-68.12.0.tar.bz2";
+      locale = "vi";
+      arch = "linux-i686";
+      sha256 = "901b40a99d84e7c7360fd5be6a14aa04ef6cc04fe1275cac26824b310bbd26e0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/zh-CN/thunderbird-68.12.0.tar.bz2";
+      locale = "zh-CN";
+      arch = "linux-i686";
+      sha256 = "509478710f7c4fb404eec9fed0b6d22f4c5d76fee09ed833dffcefdacc53d55c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.12.0/linux-i686/zh-TW/thunderbird-68.12.0.tar.bz2";
+      locale = "zh-TW";
+      arch = "linux-i686";
+      sha256 = "a12dd777cc3eaf629cc7a6f4b8d4744cf63c3e778e559d9b3ce332414e509515";
+    }
+    ];
+}
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
index e9217c84fc69..8cdd27653e23 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -1,5 +1,4 @@
 { stdenv, fetchurl, config, makeWrapper
-, gconf
 , alsaLib
 , at-spi2-atk
 , atk
@@ -13,8 +12,6 @@
 , gdk-pixbuf
 , glib
 , glibc
-, gst-plugins-base
-, gstreamer
 , gtk2
 , gtk3
 , kerberos
@@ -30,9 +27,7 @@
 , libXrender
 , libXt
 , libxcb
-, libcanberra-gtk2
-, libgnome
-, libgnomeui
+, libcanberra
 , gnome3
 , libGLU, libGL
 , nspr
@@ -75,14 +70,13 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://download-installer.cdn.mozilla.net/pub/thunderbird/releases/${version}/${source.arch}/${source.locale}/thunderbird-${version}.tar.bz2";
-    inherit (source) sha512;
+    inherit (source) sha256;
   };
 
   phases = "unpackPhase installPhase";
 
   libPath = stdenv.lib.makeLibraryPath
     [ stdenv.cc.cc
-      gconf
       alsaLib
       at-spi2-atk
       atk
@@ -96,8 +90,6 @@ stdenv.mkDerivation {
       gdk-pixbuf
       glib
       glibc
-      gst-plugins-base
-      gstreamer
       gtk2
       gtk3
       kerberos
@@ -113,9 +105,7 @@ stdenv.mkDerivation {
       libXrender
       libXt
       libxcb
-      libcanberra-gtk2
-      libgnome
-      libgnomeui
+      libcanberra
       libGLU libGL
       nspr
       nss
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index 1f14ee3ae404..4540943c7b5d 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -1,615 +1,665 @@
 {
-  version = "68.9.0";
+  version = "78.3.1";
   sources = [
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ar/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/af/thunderbird-78.3.1.tar.bz2";
+      locale = "af";
+      arch = "linux-x86_64";
+      sha256 = "dc14e5319ecee546f10f7decca4489718bfc94bc30f8b08e9571ef2ea6a3d6bd";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ar/thunderbird-78.3.1.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha512 = "7e0a07631f2130d2876e020f7f28817cbca343e0666abd156d8f5c48a7f4bb0f4775f6366deeffdcd0676172e3b75c48c02635d018a5f1050f635f334834908d";
+      sha256 = "c2b3315de4d006ca44e3c5a68ed8e77024b89de2323970d4615490b86e0fdfd9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ast/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ast/thunderbird-78.3.1.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha512 = "47ef45548aeb20dc8dbd4f35bf12913b642986cf6071f060611696da99da30a2b10c9c8aaff8974f4fc02403026146b516e84f8f2244932f290202ef2aa59853";
+      sha256 = "0ffaca9fdce6bd88a0a850e149f1e3fc4e2cb167c637af7f9d674616038cf0a3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/be/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/be/thunderbird-78.3.1.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha512 = "c704c3e4be866d70c098b07bacdd4a1020ec109e92eb85c9c04d20d90db668a36bfef711acbe8bacb897543e3b8d499d35e54875bbe10fb3fc5436f8759828c3";
+      sha256 = "e52c73a0e1a93d6cb51004dd041f88213658673adfc67860f9550ee39adf9250";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/bg/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/bg/thunderbird-78.3.1.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha512 = "ac31e7ceb3042c2f2ac4c833687a9a44b6ec593b2d50da2edf9f11fa9bba378dea192cd472470cb7cdb2a0b708b84de688f2988f6161447cf00e5a13fe6cdd9f";
+      sha256 = "62ceac4d1085e1fcbc2446069c6b667be8391a4be5ade4b5f78107ddd3fcc170";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/br/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/br/thunderbird-78.3.1.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha512 = "1c3342c2cca3061d07be17f57d967b1e9e478f5ff91cac1df1dbc901e102e2fbeb68375af20ccc0b6922364c62fcc44a6d7715aee43fef0b2165ac091427708c";
+      sha256 = "0de6e27f09912f549e92136d46e02fa3738a3177897dd34e2858ee56b803224c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ca/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ca/thunderbird-78.3.1.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha512 = "2a0bca4b9fe58bb7872265384151ae7d2ed87122a9372ffd52752a11bec29b24a8d28f0e3102c0d6f84e545ccc6004fdace3bba7d68de206a3be5c72962c1a9e";
+      sha256 = "ace99257cea52ecf6f99d9a819cf343a23b74e56c1f0bf2a3e66600dbcded779";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/cak/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/cak/thunderbird-78.3.1.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha512 = "ef27a17f5a44072596b753cd110ed4d24d7355649ddfae988a2d6622871421088d1502866226fc1f18bf8233478b5c00e98f10cf3f920ad6b4a7bad9c5e9cae2";
+      sha256 = "f39736d27349ba66d142d61070e2c37c4c0a463a1cf89ea72fb1cabb264d38eb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/cs/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/cs/thunderbird-78.3.1.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha512 = "1a68ecf3ae228078c67b296a1642578d8e5a7808707e8a7eab4cbe8191a6b19057fca8e3c4faa660d6a64732ca3a052579fa652bbe5bb30a85d577f7b702e55e";
+      sha256 = "a068533fc0ac55972956aa9a9520f403df9519bc291c5102618476f249c911a7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/cy/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/cy/thunderbird-78.3.1.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha512 = "4d3cc4a57f3e210129ba47c2fc0798d852e4369a62dfefaf3b9a8fc77939431a7cc5839c667a062231ccf49e6eeedfc60c5492fdbf5eec080233b851203305f4";
+      sha256 = "bfd66cda463454684865f055339072513fc4b8774b34e96f3c799c6f555122fd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/da/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/da/thunderbird-78.3.1.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha512 = "79e655f62bc95b65640e3556d2690725ff012a16b2cbe656223a118294915c5619563fbdef9b88fd5db3f982cea5e8ad85a9bc389776ea95ab155539d6a4c217";
+      sha256 = "885bdd4063aa9d8d8dbd352af7291208766fb864b9989b68bb2fa038d314bd8b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/de/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/de/thunderbird-78.3.1.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha512 = "cad5d0c08e07f6d1247cae9737d0747875b9b35036892093230423d92530fe2de2975174dfd6ec0d2e2d7ddf86027601d37d3fce14343ad4cb89be5d68052785";
+      sha256 = "f1d9d91e6a4ef5e3945d958457e96cedde86a0f3b62ac5aee21eeff54c40c999";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/dsb/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/dsb/thunderbird-78.3.1.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha512 = "15ca27de99125e4be3f6cf79ebe5e897efea14ea469040ab39ef2e0ab4a6ce61bb22f9afe95a670fcf9e1cf077512b8214226946e4f4a02e7bb04d136390bf6e";
+      sha256 = "73628a6c666f69529b04ea8c60dc2fdffce17e9cf13ed6e3af24c8443f093b74";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/el/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/el/thunderbird-78.3.1.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha512 = "8fdda97681d04d9247d8030535d15888d24f3462ee8d91ac86ae9b0489ca4a2c759bbbcb151548786febed90de2ff4bf6e77fa55b8bc2b1cd4c8faef374fcc45";
+      sha256 = "ec532079ebac4e8ba6e58e97d0c7eb1d7f5e0e20c1563985cabd03101dc2c995";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/en-GB/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/en-CA/thunderbird-78.3.1.tar.bz2";
+      locale = "en-CA";
+      arch = "linux-x86_64";
+      sha256 = "1a1366cf35f9ab6b39300405538590e55d6a0833e406a61c9e3924a72adc2bcc";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/en-GB/thunderbird-78.3.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha512 = "51ccb86fc17862c9264823568fb2453318a8b6625f1d51eecaa150358a9efe4a15126c1a132bc57834645ba3d5799f75dd48e7cacc6305970698bdcad85c0bfd";
+      sha256 = "1f62e839e1fff1c0a833ad2ee73fc72542bc3723e0e368ac1d9f153378da8859";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/en-US/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/en-US/thunderbird-78.3.1.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha512 = "ed6caacf356c6487a489e983275a2c3d00eac3b2282445667a1f26ac9ce217afb8261a929ccc9aa2bdf7a89101a86faee2ef87c16f0677ecf5abcc727397275f";
+      sha256 = "c46a8dde6a03c9588d0101354f2a09123d940bce507ea0a693807ea825b5edd1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/es-AR/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/es-AR/thunderbird-78.3.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha512 = "b8e75f5579740c8d0ae7ef30afb133b827c2e217bf9b0acdc8f117b6ffbd6c2674ff8670db87ede6db3c842af8d6f820bfa4370c0d611b7e74e99e8ad67a31b8";
+      sha256 = "3885122a529f8cc9cc7a579696f6e74f0d42a37309f44a33a18dbc99d01a433a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/es-ES/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/es-ES/thunderbird-78.3.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha512 = "e51df8034b18c8dc0d7fa024c3e58317a614f4da4d286c837efac3d21c59d1e58a786cc2ae0afae8730f81e96a4f0263e4fa09b552df3b58f915fd0cad133c62";
+      sha256 = "d61e5d9e82f52de243cecfc8ccf0ec4476e3309167a33f9c4b7f513c31808527";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/et/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/et/thunderbird-78.3.1.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha512 = "a81e2bf12df9ba23b8d330599eb9d32d25cb862d3cbd109183c0164ccfd2036bd327aaba36248e85f738d02d15d59f9fcaa837101b154834b53b04d2925ad666";
+      sha256 = "1ddc1fb310c75104c2642c145f9250fbffa834d5a9fb100c12c2e3ea31955321";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/eu/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/eu/thunderbird-78.3.1.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha512 = "98a3b4e765683a9fdb9f1b128354ddc8f81ffb7bcdfb3ecc04431e84862d65184f220cddf86ba2a3442f87c27ea990a2868ebf68dce7328857718f9e02ecd474";
+      sha256 = "fdb2fd4d1650edc40f193c028a8bd6ac832742a383a2537f7cf7244f8d736717";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/fa/thunderbird-78.3.1.tar.bz2";
+      locale = "fa";
+      arch = "linux-x86_64";
+      sha256 = "7ea9ed9eef1167792c2468372bd5c35a9a36401ec40d63a14a8b3d86cb6f6687";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/fi/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/fi/thunderbird-78.3.1.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha512 = "75d0523e83f9f95fdef45fb8b6de632eedb8b274225ac5c6d6d460cc7c129f7e34f735262cbc44e8f99957358e33eb8c8e2ce0cdbbd59d237dde468991139e6f";
+      sha256 = "efd073de097cb5f82a26a239fbb360b653041a48bf4c98e983b2fa9675e8c64e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/fr/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/fr/thunderbird-78.3.1.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha512 = "c7b070e1b5dbb682e6dd119436512c5e2200105294f1c4e84c88fc8326f342196da1abaf8b7b4882397cf797070a524c19b640fc41d532885b9ce867de46d055";
+      sha256 = "c07c981bc7fa69a10b3c78602e5cff029860b90243ccc3270f7df56505163b81";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/fy-NL/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/fy-NL/thunderbird-78.3.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha512 = "bd93c4d482231c0c5444b653c045f4951d73c0c4c1ef9126757c41b30280f0009fddec38d8532af2c2e379a26128fe3b5e8db2857709fd2ed226d2fa73f0d88b";
+      sha256 = "433912fe6bf0b36788f55f34d28cc56dc9a9c6f19684132e4ce51def7b968097";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ga-IE/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ga-IE/thunderbird-78.3.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha512 = "f6da6b1635d44f217b1ffe9e446d4ce8fbc82ecd5fa8a0421abdf83a0bdaf46db35343a5345b009fdf09a8237475b393d2cf0cd3f52fa16cd2cca63b792a546b";
+      sha256 = "36a890c2aef942121a0e0717118328668d51961d506eab833141cb80c826768a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/gd/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/gd/thunderbird-78.3.1.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha512 = "d6e4c7e51432c4bc81a9470615349624f2d8eea0d6092e53afb833a2cb4a9e770ea4c373fbef424e9139a1668cb695841fe2cf8c752befb650d0e72185693c5c";
+      sha256 = "146853c4725c744d636acfcae4fdb3e65e2f37bd15d5abcbe105bf7ef8854b2f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/gl/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/gl/thunderbird-78.3.1.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha512 = "763f2dc852ac4ecc4accd7140ea9c1945bc343342a01efe8b09470cc41f76fad4f61ec25c9456b10a16f9db528fc6aed802d949252b12e0d73c89c299ee813be";
+      sha256 = "32f7c157a764c58a4b2d7aa45388919553300e6c0212ac1b48f30121a04332ee";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/he/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/he/thunderbird-78.3.1.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha512 = "82d66c85f843978d9b2e3e0353e831c7779a16cc3a977f225ef93c92cd8eb8ac98afd255e40b1da0c21a356a7f290027b7f2c1c2ecce656524f21d3f8d962a4d";
+      sha256 = "49e44de01ad2f13f1c2f82d137a1eab13d5800a1f72d7eb99514ea3d8bbac1d1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/hr/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/hr/thunderbird-78.3.1.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha512 = "7c013aff2eb1d4d2330df3ec81dd4e6bc99f4ec9b620fd13cc487a02825669f7fbab84d8f9a2cb76cc34290dc301522505352b0985f75b7f26133cc0987d30e3";
+      sha256 = "de3df9903e42dbaa6d2f98da953ff141ac81728537c94505414c7df0721580ab";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/hsb/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/hsb/thunderbird-78.3.1.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha512 = "707059d39c02b2c95f18817757a4ab5fcdef4eba63645c93a8e1cdb37dd013633aaa7b67628d357e8c530a7d9394448d61fde9fae32befdb351502c27db3cd93";
+      sha256 = "3a851331fb698a7f6b5e54b26bba180f9952d55c29a0f8387e2637c0d8a83c79";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/hu/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/hu/thunderbird-78.3.1.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha512 = "238047229050a38375a05d9d16514c88c5312d56857b179d7818be4421e3fb6450558f378c18035707d2abbbbb878656f1aeff461fb9f6b0f7a1b9e7e9863b96";
+      sha256 = "bbfeee0ce02dfc34012c994d914c69fe6a7d5b4ff0e36bc9e9ec453edc756725";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/hy-AM/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/hy-AM/thunderbird-78.3.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha512 = "871c444b878cdc2c63d96d389ff0ece2773862e825bf00bb4534475130f4b0b684dcad1002bc1d183f6c81b730bb3af1098d29b81dd7d07a5321e01fff3c39c6";
+      sha256 = "b43ca227a53d8587da34219b02c1bd58f8ed23d63e425cd4911c5e1caa3a5254";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/id/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/id/thunderbird-78.3.1.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha512 = "518ce09cb9cedf086549873f6cc868235afa24fd04be3e2af00d92dcce8c1f08c7855c7af9c4cc21d2329187f2a28ddcbcdd46fb5a7f26f2993261e0f2cf7afc";
+      sha256 = "87ed1fb328b592418c515ac16dc8c45349c2dba4c69f8552f3e1f2aa9753bfca";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/is/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/is/thunderbird-78.3.1.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha512 = "855c8d301067538bdd1494fb9a6b57e0182e94deab34a9aadc65dbe6a5829023145d88d4233f10702947fbbc7361812fea94b6a1352f687bc006988618781816";
+      sha256 = "acfdf1a9dba0372966c82aa3629b5488111b8592b26aec3aa5162c6527ec29a6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/it/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/it/thunderbird-78.3.1.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha512 = "d447dcae327ceab2edc4302235d9055d1b11ff0407dc3a05cb1f16f8a53c6bd71dbaf5c33766f5c343ec357cbf8a8702c637c0748f658aa2083d244de9fff968";
+      sha256 = "04480c988c1518b7d2dc06c836f42b4bbbe243df7014a332d195a774fbafbd93";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ja/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ja/thunderbird-78.3.1.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha512 = "1ad5d5c0c7cb04fe7f471ea85557f8c4aac62eb9b7276b53fcc3111d3e37a7eed56e2e4521c1e978acc32c973618d84c05792b4100fbf9175d2a5db0c74eac1c";
+      sha256 = "a8041d9fc9c2e25367682b0c8d3343cf1a748d32616d4befc2ee3ab0cec24ee6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ka/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ka/thunderbird-78.3.1.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha512 = "0d0f376c9a13165978e1b5d77e6b098f17ec552baa9e8e64d32b5d33c5b2d52f78c6e45ff92901f6c94cf9efc1d0349025c3dd7baff9693c9e5ce9f62e0a7c4f";
+      sha256 = "d6df8809fd92b9a70a4cd95a035abbb14e0c0e8869034d3c90e50b2e531fa4d4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/kab/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/kab/thunderbird-78.3.1.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha512 = "76927cd9f2630d8aa4b501a8ff49ebdabeaf75ecf5dc166aaccc254d38493a94df7dc6d432bb68511b78b5e31b483859503bf846b4c2e7fee2ea4d40e4506db9";
+      sha256 = "6170fb0321369588af4417ce8ac25bb74ec14c932a8ecc22119f3c7d15bc9336";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/kk/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/kk/thunderbird-78.3.1.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha512 = "1a0d0a328341a7efffb6fa5ebb7bdced15f8202d37520b1e2972a3f82f37053669d52e0a8a815a8a9f2cb439227fba2c6f25a5967f459b1d2d7140e16315cac1";
+      sha256 = "a3a9d5e5c1651f0d46fb6c3d74e87cbde964f2aac9484dbe0b12afabb66adfdf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ko/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ko/thunderbird-78.3.1.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha512 = "d4b654cfc6f0f8be641d844a52eb332c2218b419c7a699852ad693b90958d185ef29c2c1bba5b7b9e397e05fe1572b80b0f0df01e83b65edede368e0c6ad9ead";
+      sha256 = "729a243dd4b5ab5dfd615228875ebba18a8b99d34ade0711cb7c1d2f4534b11d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/lt/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/lt/thunderbird-78.3.1.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha512 = "fdedc91f7bffbc4f464682f3a020ab161592015fe5c50180899eecf951e9f775cf5ef3cc6b5baf7faa58221f00e19fe99074f60d292ca258cf44dad2db0d0d69";
+      sha256 = "df653c6a2af688591a1e549fddf29f176046723601e5ef85633f69105f5ce23e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ms/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ms/thunderbird-78.3.1.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha512 = "1ecb61c99626dfbc8386364b747e94de7080facd6434813c8afeca60373d3cf07d2259ba90ed6de01c68a65e8b8408e58647d4e72b62f150f82da4a81e78f861";
+      sha256 = "278252b8d98cc29ce713eb00f59c87b54a324a0d3e833434a9912b3e1a0cd796";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/nb-NO/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/nb-NO/thunderbird-78.3.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha512 = "45ec1f8def3d2b57e29a3fd22bc38f08a9c7b1ebf44e6dfb736ee13d09cb1bcfcd632c2f8594e3c531d35aa7b696d45ffa1bf5c4cad7e1304fa92763f923df43";
+      sha256 = "665760b1c1035a831624c690053c5400d0ae93e28bc04a50bcc8014bc0111f5b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/nl/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/nl/thunderbird-78.3.1.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha512 = "20dd4c7e946e0fca871fddc3481f2f44b72939de3a7f5064ab8f062981ea717d47f2a3c09af32c9913556e2f5fc01fe1dd78c2d35b5fd44a7f35cdef1e4252d7";
+      sha256 = "466cc2363465d0e3b6e80a9b3a27faaf010f693ed6b8b26f99610c1b4943db10";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/nn-NO/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/nn-NO/thunderbird-78.3.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha512 = "c366bdbd0cda3143c7684c1cfd948965c2b80bd5076878cf3e98b9b5fb82baa6df419445ab0da134209a969baa0e36d759297bfda701d2ea4cd8c6720b61f123";
+      sha256 = "32f6aedcc9c9dad560e84c6de83452808e87b903c5cf69834f3a315ff560503c";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/pa-IN/thunderbird-78.3.1.tar.bz2";
+      locale = "pa-IN";
+      arch = "linux-x86_64";
+      sha256 = "12073cbc4476a11c717a35f8281d9e8590f7eb35b20faf46aadeb41ffd875bfa";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/pl/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/pl/thunderbird-78.3.1.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha512 = "163130f55ed9e0cbc68b48c41541748aa320d7a8fdb954c38fc25ca7e2dac6fea98b30b2653b6e8b31230ebd8364ca12281551e00375e4dd64b87515f08e6bec";
+      sha256 = "3b8131571d497c6479615c48f908f324a76b297f9f0430eb18228283ab4de198";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/pt-BR/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/pt-BR/thunderbird-78.3.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha512 = "5e362e0c53f898d1d156c53415469fe965162047bf5ab55798ece681a33322d677a874b80f9f934067a847da9f2c45a62d63753b866e368585ac5f0844e410df";
+      sha256 = "618abb8f3e7c48f33002e4c99f05769b66036331a040ff395c65fd1dc9d60dbf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/pt-PT/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/pt-PT/thunderbird-78.3.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha512 = "b322096fd6fb0778fc26146b69fa9a63f249e927de6d2ae3fd6093e3e24b4825ed29a1d09cb68de274aebeb06effdec78e6445fa5282dd6a733b2181ead21248";
+      sha256 = "a43ea5f9181d9a7abc977ae3b0f5a20215c45d8d3e9baeae581ef15be0909489";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/rm/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/rm/thunderbird-78.3.1.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha512 = "715075dabca54e27001f68b11e6c3c99fc5e20f1fcba637e7613584d84a97520e06fd73761bc6c780ae8abbec3121504fb1b51b615a35c0d8660381d71f94eb0";
+      sha256 = "69ea896f45830fe8eeb08e2244579a7454fc18fbdbafe781331bbad97ca4ccec";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ro/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ro/thunderbird-78.3.1.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha512 = "fc279090426b3baef609f23228ac11d4665fd805d6118a4ecc2bfd1dd7b36d37004033db4be1095275c677a092026a083199e699b553c6eb82192db0190d844d";
+      sha256 = "751137453712a435060346649a3f16a2422379ab0dab9141add053e85f0de8d8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/ru/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/ru/thunderbird-78.3.1.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha512 = "8c575c2749cd719878ffba2c8158597222d1d494f2c3749c6b5253a8d75607f42a45799a288f85042d8390225f74ac55d7497abc76a8fc870f89f8f7b7a3c699";
+      sha256 = "26f2d8b5704ee445835bb7a0f5bcec222359ea83d7d53fe9c9870e664fe3a70f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/si/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/si/thunderbird-78.3.1.tar.bz2";
       locale = "si";
       arch = "linux-x86_64";
-      sha512 = "b2edb098eea69332528f24a352e2cd318161ab3383cf13f878c7fdbca14f923f74a769fd494b435d0ef2fd760d4b7cfead063c91112fd44dfd3d4a47d4597549";
+      sha256 = "1f450ffc77cf5309e8b01646c90324b14cc465b5b7d04566f3ff6cc56506d202";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/sk/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/sk/thunderbird-78.3.1.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha512 = "2dde57c16b15b823a698f7c17d98eadd5528ea29cbc50d22a586c3ad7357289f2c4719edf8ba47c59c3419383c64b8ff948582a58356719990340f5db0be84c9";
+      sha256 = "f95af873292f04fe6c224e24a68ed715a8e4015a81be7b45352363f16233ee58";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/sl/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/sl/thunderbird-78.3.1.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha512 = "0014d8985ee139ec3ffae5ff18bcb8ac6f0921930853bab3ddcdcd6d21b9453aaa0af058068770dacb04bd1521b555945f9bfa7d9f47ba4a2adfd667fb067d78";
+      sha256 = "ae49c848187a5eae1d8e8bb3f3b85e9c51794a5caed2832a38c9ac38910c85b6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/sq/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/sq/thunderbird-78.3.1.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha512 = "5aa41dfc73adbad839452077b436ff302d0e611fb342998a7f6bffe98fd634d7995a30f49f8640645052b9f68c149c71a6bcdf0fd2df7e3c67783bca3c4ef511";
+      sha256 = "aa10a2fa4c73cef05c2b0657daa27c80697cda70e792be56b09ab1f9a66f544d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/sr/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/sr/thunderbird-78.3.1.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha512 = "266d0030c7d018dd68d5cd8496eeba061453e1d5a37e99c1645aa9c677492d0da397b2a9e70aed5d927c2e955449ff5b75efbad74d60fea4bb4ef90c36d765ec";
+      sha256 = "92daea64a552175341b8223d9264a1bd5bbc5f3938f3420c8b81c7d0e9685b9c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/sv-SE/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/sv-SE/thunderbird-78.3.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha512 = "6ce755bf48a29522e1f0805d6fb37bdbf145f75a4b6fa176c06562bd1b6b272d752a3d638ab66bf66dd6dc67fd817d76e70cc31fdf9b201f56c6bacd058e49df";
+      sha256 = "d001f1c61dea17d34dc309f6a1f120c57d6fdfe9fd0b3d336b1a1493f47dc196";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/th/thunderbird-78.3.1.tar.bz2";
+      locale = "th";
+      arch = "linux-x86_64";
+      sha256 = "0f640917646cb88c90aa7f85a79942f0e9dcce70e5d6d65da7e2d4cabfb73fb6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/tr/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/tr/thunderbird-78.3.1.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha512 = "302b03ab2e23f6c0cac0fff85cfeacfcebabea838fef824b7d1733054fd9a3cb766dcff1dad333b199ea876a16ab7a059fe4e01289aef4ed481126c27011b4c6";
+      sha256 = "2150dc844df54651020d8ab4d43ba86d0624cbc06fceb12ab41eec5bafe7339e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/uk/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/uk/thunderbird-78.3.1.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha512 = "b3d59d62dd3d3e6e9ce8be3c4c746c41a0a0962d1327d1187b0b2034d0c1691970d181405cc7ab7e2f1fcafec6caaa26863020f5edae4479e453718619b7d02e";
+      sha256 = "1d9bdddcd7e53d47e77c4fedef5f50559c45e61778e29fc98c04cc4538dcadd7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/uz/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/uz/thunderbird-78.3.1.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha512 = "73d36534f000d00a52988825c0145288d8d1eb944065d11231501f6e2906e97b0beb89d59b796d3f2828054ed9393e8f65866cfcaed6eb7f939cf657b6f3d740";
+      sha256 = "281f2cb9c35c5710c387fd17a6a55b85c29a01b3f1e32a2b377392566d821b55";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/vi/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/vi/thunderbird-78.3.1.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha512 = "b3ec66f92f5d023933e8dae18f0827f0fc8c5880890f9986b339f06b4e565cbe228bc2b0843924bd2a524a77ded7667e63c2747d2ff6c3789d57c8a68e440714";
+      sha256 = "1678dae6f876b7799f61701db64ab1aa4d6aa3c316535a04734ec7f9481d6042";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/zh-CN/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/zh-CN/thunderbird-78.3.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha512 = "e61e72c3dcd376d74e732d76c5a49203b47e2ea31c86bcdcaad673583795f5c01549fa2c5526205857e565f2a72b8abf8b2aa4e7ede45a94b218428607662a1e";
+      sha256 = "42c8fcced2d06b91f402c6a9c12b48dc1b024f1a5b2d01aa96a80df088700656";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-x86_64/zh-TW/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-x86_64/zh-TW/thunderbird-78.3.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha512 = "f47bfe43ec5b570863ed1fc81828a23beb250db24fb77d2df2dfb5ec60a9c750f188cbda1a0f2927688865219f6a36695d87e4a8eb1fd642c4c9650dcf2e9063";
+      sha256 = "bbea2d5abe313825efd93e7fe8e63f5c73eeff72ab247b1990210256efee8aad";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ar/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/af/thunderbird-78.3.1.tar.bz2";
+      locale = "af";
+      arch = "linux-i686";
+      sha256 = "a54cfb6c0965d464ddfaa96dd214444ee51cea6c894e5efac236925d43de0be3";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ar/thunderbird-78.3.1.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha512 = "83a77d9f39196a8a3ec72469c038c835fb6b50872a2dd611519b178f5e46ef40293bfbdd908b3ce236681205b9b3ed133c845e357abb70285f9920401ad90cd2";
+      sha256 = "4d79eb10a38b01539b0c6d31db50f69004fbe5816c09e876cc338984aab0496b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ast/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ast/thunderbird-78.3.1.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha512 = "83084855cf03e66968d20d2caca749a9ff9d47b0cfdecdcedf0320b4bc7e628ff5f3a971ae1f6472c5a44facfcaee419250f55ebb254bff9f344c64772f54791";
+      sha256 = "5aa985186c01afe978961b64d702d98a59851257b1a3cd3d9873b7f67dcf1f61";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/be/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/be/thunderbird-78.3.1.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha512 = "722bcaa29137994e36f70a438fddb5be55355cd85d414fcf70cb8bbaf66a9ab0fc21408cf282272dbe977f46b5aa63575c7504bef8292adbd8d4c6e308655411";
+      sha256 = "08d6da278f79b3e7c0132b8aec649b804d3a64b0d5c02223b66f83061e421c6e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/bg/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/bg/thunderbird-78.3.1.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha512 = "95464ffd5256fb181599ad795fbfe5d9cfe8ef0c02a7830174ee4732761cd94a2cca75b6a686559e07d996640f5e973a660fc857f0839d6bea5594e61f2f7e4e";
+      sha256 = "c8749049c243474693272795cc3706e096873f743d22be171bb373746afe8a6e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/br/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/br/thunderbird-78.3.1.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha512 = "fe09bb21248975aa60ffd74a970c9dcfbef578c1188bc1c3704c7411c2e94f88976ac7ac5e52a69ac6235723332f2fc76757ef9118092833fe64bf0a05e3ecf3";
+      sha256 = "ecc9f08ef1b384d4844ea039ede864ad0f37c1cf83a75b8ee73a34b7f229e4f1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ca/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ca/thunderbird-78.3.1.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha512 = "01ac3c0090448f1ffc7c97623df8576a7a3c184a2bc1a2761f0e3451a18dee6d4f6bc37b305dcaea89930a1750a9541116bdf03f613b333ddc47d5f257b3bfc0";
+      sha256 = "92c9e0bbd375c525ad5c28dca4f8bc68726477ed49d908bf479d32729fb44c0a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/cak/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/cak/thunderbird-78.3.1.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha512 = "27dad086126a268f2c6700a5f01006c40e911ecbc95dc994da7cd2dadc3f2bd3bc94d5da15a297b2e72e8b20254d40c757456c308b70bae2c1d451ec6ad7d1d8";
+      sha256 = "33127a2b75dbdab2c33c8fb8a65e6bf053da6422449cb463c7cbf08fe7839d1e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/cs/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/cs/thunderbird-78.3.1.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha512 = "b99dc13bf43a9aebd08f13fb113186e6e4a72c68d609895afc8a52c4909a0506f646ba394c705004272d1b91db4efc81a5518bbd06e359a8a24c85f4fbb30102";
+      sha256 = "67d137a336085ffbc414d870d57152a275b082c80d240a6b9079f6573e172df0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/cy/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/cy/thunderbird-78.3.1.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha512 = "36c1557a9955e461128929b7be0f679a02592b65e4b401b052ecf1f467a231ba725c92eb96b8118bb75d49ae45f8287bb5fbeb22d94ba11dcf311cdb87170ee0";
+      sha256 = "18115d42cf211dc6a90881d836c9431624d54adc30a9521d6b1a1718d95a864b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/da/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/da/thunderbird-78.3.1.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha512 = "e81b41e38b322f2eddfd68c07f326ec9d716bdbdf31c3a02d22d9377002fd21b58a68a8ac952fed2ed164a02f8b20e9f6678c52fbaca741a4bcde1079ecbe38a";
+      sha256 = "faea4b3a26149a036d8b44aa0709c4d04e5e917d321d13d1b00cd80b629e5627";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/de/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/de/thunderbird-78.3.1.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha512 = "da6a44a2a6545b10bbe12644e433932c4410471f5948278b919baca1c6eb0181366114c1a6f611b897c71bf4091a6734393fd36f997c118f49466faa8dd2264d";
+      sha256 = "1bb244032bfefc15c6e7e2a1e564fa51cfc80c18b6501f079ae65aa5bddc269d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/dsb/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/dsb/thunderbird-78.3.1.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha512 = "6d19a0010553d1b08bc47a22c0c7f23bf4c86ca79ef3ca26c970cd502e6db003ccf045488f88d68a5b1b0ece4436de55d65592b314126b9b5792be30c9def553";
+      sha256 = "687089560ea3561b21ba7f8cef77970f467b953671e5cfe956e0c0aa3dfa72cf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/el/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/el/thunderbird-78.3.1.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha512 = "67e6382474356c4ff25e6f49a7ee3859eba5bb29a4e795668e1ec52131dbaf0d87b9cfb8ffe1fa855bf8f34e841b8fac90c356545f47a711b533e3593219e957";
+      sha256 = "5c8021489c7fdfea19446832b6676640134f805537474814f5a7e8d840a2e01c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/en-GB/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/en-CA/thunderbird-78.3.1.tar.bz2";
+      locale = "en-CA";
+      arch = "linux-i686";
+      sha256 = "a2c9c7f94191e9883f29dd43d7bee51158287cb45e3330ee5649f6553428d6f1";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/en-GB/thunderbird-78.3.1.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha512 = "f4e1d9b10ffc96aa7ef4202e73445d98a06082abcb87fb60d951ce491ead7cee4bad5c1009270004540d03aaf383eb5b8203845f84335b523d92bb586ed5932c";
+      sha256 = "6afea217b721756cc1ebfd7b99e86a2af239855ef1fe04d6e7fe9e00e00f787c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/en-US/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/en-US/thunderbird-78.3.1.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha512 = "a8fcf918c869e8064c2dd39a03bb768616b1a5e4e1c6121aa544d72626bfb790625e2cc48dc973443b947c6e619f9481cb20239d544b10bdf287b7fa4e05128c";
+      sha256 = "24ae6fe44729cad965c36c8294b00831f426a815bda43bd39fb6e4ed8248a611";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/es-AR/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/es-AR/thunderbird-78.3.1.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha512 = "6b98ed36080e8eba879e305aa34ccc77e1735700d104f592095cf9810545bdf25665dd36a527e19cf12ec4cf782a6387e30f7b4406b76230c08a350f4cfd5fcc";
+      sha256 = "3fd89cac92b8ae97766b56a84d0e8a16f51966cd77a8963ab92b5706cb8fafce";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/es-ES/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/es-ES/thunderbird-78.3.1.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha512 = "0cf479d98ce943e20871e7073188db3c9162dec8cf2b0abaedbaabfac9b29411dad39fdf44c038680956c42f7f7e303d5e2bf8d7ef9225fa093821ce760e9974";
+      sha256 = "5227c2e2624bbc0ff3ec35be01ed42579c280ccbc5b2ab195aca3a6a760bb944";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/et/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/et/thunderbird-78.3.1.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha512 = "51584ee5c76710a9b805d4da528d5463f1e51e3efa6ca3b9cf3fc6bb6b953cac6b7919f908975905f619d9be75e4b9ea32980bd5f198f77dae0f75795465fc23";
+      sha256 = "1991aa5a22f7a4f6435ed9a116cbbc1b87eccf957f1401b6f20af3ae67b1b3fd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/eu/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/eu/thunderbird-78.3.1.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha512 = "bbcbd4a91856ebb9418c00feed41f00c93ffc5eed4af7c1c27585c707aa8dbfe4e48b0204cbb236a8205a219f0044811dc43f4cc94b6610f30d38120e3ab4b21";
+      sha256 = "b9a6cdbd518ab307c646f38757bf8f2706ad51d4dd5f5193e719e112f343f021";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/fa/thunderbird-78.3.1.tar.bz2";
+      locale = "fa";
+      arch = "linux-i686";
+      sha256 = "49805c2c97109cc22075d08503926a57910f367010a2ff8ed9c91556ad4d419b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/fi/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/fi/thunderbird-78.3.1.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha512 = "f03014cd7a28b4d85c2d896e8e2a5a1db959c7290c98cfd0c12839170956e98e0087685ab4304fbbdae42b06a8ff7b5563e70c9bbe0a787d2d9b4103019cf31a";
+      sha256 = "ce6e16cc46ee16ca9aad6154be7442dd8bdaee09e89a75c13639f1c1979dbb57";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/fr/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/fr/thunderbird-78.3.1.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha512 = "ce7b187a572da6bee677cc7849bd5123545bf437005b16a855d9e4bfcd58a10f3b095a3b0a767d5a67aa113c0a9e0d437827c37fe1c8bf84a3fc8c8d2c702a8d";
+      sha256 = "d2e4abb6fead6aeda1e8172c04ce7b809bfa8038ffaec89431791422e70b8932";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/fy-NL/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/fy-NL/thunderbird-78.3.1.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha512 = "2062090196c7b07ce148a2937027637469e7593ac092db0bf7139286faac51d350c786c0bfed6e32903bcb7f2ddc4e3df6e993f8637fc68c1aae1be89ceddc98";
+      sha256 = "6286b7bdee544c51137c2bdc423eb72523b20ddde3eb4bee7b4ab575aebf30fc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ga-IE/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ga-IE/thunderbird-78.3.1.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha512 = "fb11eadd35e46081a16116843a4a134b8197c4e8e1d1a52981a085f02bbda7ca49dbf1d9a88f4a7fe2542a99ff24f6d35fc661414cef1fb50edecb98c6693f4f";
+      sha256 = "b145a9b44cbafce2ebc22f4454ee6d4017c531918dd690598eb421822f4b0548";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/gd/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/gd/thunderbird-78.3.1.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha512 = "e9b985732d6619555c24ababbbe38303998750986395c647aadebb0c209467fcdfe5f9dca99ecef0e0b747aa8598f887ef2218140ad1d97e7e3d73b430dad1d6";
+      sha256 = "c0835ac49602ad6de4d37e016d40f51268bf3e43ff04a2bc1a83c5f7f7b12556";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/gl/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/gl/thunderbird-78.3.1.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha512 = "3b8eff0004db222eff3b4f42be4eff168310fd0e17e676ae92fddd9c11e3a6d4826c63a35f9de37095a7fa88f7f4931e36bc17ace548e36f91bd8334fa53799f";
+      sha256 = "22c5cfdfb8c64d18d10e2c839166ffbdb21b54d4bcebb51bb7bcaec21a3efdbb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/he/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/he/thunderbird-78.3.1.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha512 = "e3dcd319e08ddb5aef2bc576f136eae7838e3aca3c9160aabdaecc32332f0c250201a80f31724233a77f4dd2857684f2bcd9b194df5ec965d69cc04a9e9b7da9";
+      sha256 = "85f2170d4f4e20f91631a717bf78f28ac7ca45d47bb4fbfef3e56aeba291fbfc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/hr/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/hr/thunderbird-78.3.1.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha512 = "84164d00d087e507ab79aa4db6567311bd0cecbde1cb1be7337f4ffc42abc8c7cd0f4fe9a3aae2e35b01683f96e1bfbc816fa96e6fb872157cb473128679e19f";
+      sha256 = "2aa8960e96ebbb32be8f019f30d9eca73f69aefef0989b760223569ed8e1bca6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/hsb/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/hsb/thunderbird-78.3.1.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha512 = "a3fac91f5e2fbf739d2f2c164c6d58ea89026c1e8250a41c51ee11640bd7831c73a4c3148cd80ae2b40a2e1a369d47d3832f96a276dae2c80ba2d90d6990d062";
+      sha256 = "0c1f3803399da44d1c518057f191c3a544a3a3af3e2893be44e386edd43a5ae2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/hu/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/hu/thunderbird-78.3.1.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha512 = "002c42f700616d2ddcf1753d37de064959965e4504112e96507a8aaf2398fa25f650e1fcb50189aebf3bc3d0c3de795b496d1f8e1550fc0186d74ef312a11d74";
+      sha256 = "2f357cb86c535ec8bbe657d6987b657ed1d0257d2c94620359cab42570d35983";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/hy-AM/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/hy-AM/thunderbird-78.3.1.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha512 = "41fe16657886ccde1c6410e3e62ade72d8890a50e77526994e82cb929c8296110d0aa32d8d02dd7d1482d594322325d28cfa54afe113dc69e2520dcfd56516f1";
+      sha256 = "ab3582a00d26e83a6b01cc2daa17ab9cf9708de1e1dcf9260f827f4e3fdde100";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/id/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/id/thunderbird-78.3.1.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha512 = "8fb8703220a801bb2d29e436d28325a3310b61f6a22d3d8964b98bd9cea9e74f9e53cd41c8c9a501057d1915a6c71f6f5d27fea267b802082488d2690a0ee088";
+      sha256 = "8d5a97914ee601a47a89dd7bbe971f95a1b5bfb4a7047feb164875daa316417d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/is/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/is/thunderbird-78.3.1.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha512 = "09c59bca1a0282416aff4043b7d64e5f8ce308792efd35e197b2d91125715453769b482e5815c9f33cd0d9d3809bbe898c40e767c13786868673bc7f041f1c17";
+      sha256 = "089b7c67b70763d3e0080aba6a7d8201cd656e2c85bfe60739ad57b569b9c54a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/it/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/it/thunderbird-78.3.1.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha512 = "c3f09f2681d0aa197084b0935855dba98517d6f5595595385d93dd7a998ff5b0c98f35141091f41ea8e91ea10b25f6464f242218cd7030351347f77f35396ca2";
+      sha256 = "45aa6b0c5d3c00812efd815e197dc35a538002c63639d3b9857ca49f8e3e3692";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ja/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ja/thunderbird-78.3.1.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha512 = "4bdea34b50edfea5b3dd3bb80935e1148b3ad926c95d84a3d265268f783ff3c487527726b0151643c8f3eb5d061d441742da23f6cb03297894a8076a87275574";
+      sha256 = "ea52820e216c79d015dc8715e5341ec2fdd4c7e99f772086652721488681d69b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ka/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ka/thunderbird-78.3.1.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha512 = "ec029d7a58aa502742160e131eab70f50f83851124297fef72214d58f1309f047b9881d824432a8bd3841dd158493ca2b41e41f4f9bf9dc043db9ec4df1a1d24";
+      sha256 = "6fc3af0c7a5b78350714d9f8f640f71c7094cc77590038cb6e817bbc40ccd74b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/kab/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/kab/thunderbird-78.3.1.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha512 = "cf291b9d2924e72b9871a4eadf10118cd0299e2206151c67bf36fe0c766b75c9e67e9b11e8612ca5d95c50c6cd3d90e95210e9625ed8eb1c14ba5a8d45bb997b";
+      sha256 = "2b387a1fec481a3a98c0a62b3bcc06cf83c1b8504b46b89d1bec12572252db6e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/kk/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/kk/thunderbird-78.3.1.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha512 = "1031db4a9f0716973fb1ddbc8e12b2252bdb8450617a6c642ad4001c119cd3eb3bad999b861e8204a85699b415fdc5d768b6aafa6fee2c5b9efb7e9a3558eda2";
+      sha256 = "55f5d12ac7b5c0aee1d1d616a871f9c7ed3f5bd882acb9fd9538a3d29a0e58ee";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ko/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ko/thunderbird-78.3.1.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha512 = "bde75ae38856970c4da871cdbd63d96f31021f707869be7517d4c719ecce3f505f886c65e9faad8bcc0ac26885777e070246576fd47f75669b77f0247689954f";
+      sha256 = "8090cf9a8ce14dfe2dfd65b985501ab9580ca28f923377dca8a57b0529b0eb23";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/lt/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/lt/thunderbird-78.3.1.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha512 = "9459b50e1fd01ce742bfe6f13ac26241958ad5307c08e3980ed5a84023a12be009dc6a83085ad52c68e162e6a45f4f430e79e21e4d19f67e470ab07151c40bc8";
+      sha256 = "17584b8859a7356022a39b14fe2ee81f5b1d37df3ef0fc9e2caeae297bff61ce";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ms/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ms/thunderbird-78.3.1.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha512 = "0632af25fd5245ec2a15a09a075db24a64e3020ea6353e88f72fa74f929d8507cb868cc617da8e97f01efff19a9108c9b2b30adc8e58b0e7e6353332219e658d";
+      sha256 = "0a0119c8f5f458003aec3d4b933d9f4f1c9d7dca30a25886ec11079906a327a4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/nb-NO/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/nb-NO/thunderbird-78.3.1.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha512 = "b16523b5a40dbe496537df487d72f8cb16ccf338c1a96e6ec3dc7e1a5d3073991c12ada23fc6b31f34d2fb712050334eae145a45420994c607a63799ed42d264";
+      sha256 = "d22e4ff9b10f278fa382a6e045790231fcdca2b0adfb5678d50963afce2c1cad";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/nl/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/nl/thunderbird-78.3.1.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha512 = "82f0ab2e4969323ea8294f732b13144ddd453a613a68b582ff398cb85aee88874a5fb5eb61627f142ce8124b476f49fa6cf68cdaa41fdaf3621519c53c4ac16b";
+      sha256 = "882d4eec92d78f61b3fac34277bef4d9f331bfafc7c80fcd4518862a4e96ea7e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/nn-NO/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/nn-NO/thunderbird-78.3.1.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha512 = "815d0010de5f6d9144a182a2170c59a502b167f18eec65d23987e4b73e6d5bae46be18d7f55462a3ec8634466639aceca03ad9b772c7e8b232eb874998e6148c";
+      sha256 = "b97c95e6e483185ae010d21ce9c977ef71209363ceba56a91ebbf26e62febda6";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/pa-IN/thunderbird-78.3.1.tar.bz2";
+      locale = "pa-IN";
+      arch = "linux-i686";
+      sha256 = "804f3ea53314ff6ea73d16a7b46f37e603161bdcd60272d7fbe1ce16a3588d62";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/pl/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/pl/thunderbird-78.3.1.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha512 = "5be434a54c91097d4f6477767af96f8b862828912783eee48577cc450a14eceee2e067e9c10697633a2833f473b9d10bea33b3c6c6377b898a18d3d7c6568f96";
+      sha256 = "faedc7b47d029583c3e1d2549b3f85ed37d933e545aeb5782b6c7db59cda71e1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/pt-BR/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/pt-BR/thunderbird-78.3.1.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha512 = "b7b3fd6bb8535f2328ceb9259d7517bfd695cc881130720d3857d5a27197deba4fe683e163f49613054ebec2827e805a31a62c9a9e578f4ffb760f421a4ea506";
+      sha256 = "4b1dfb1ff39d6200502746ffbdd1c97267c496276d6d019f27f8788be67c8dbc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/pt-PT/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/pt-PT/thunderbird-78.3.1.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha512 = "b9561a6f55c25cff2bec9bda78e46204dc85429c52bb42f33b6ae972c0bf16f3a99ccbe3f283ef08cca955d31e5eb6d91ff9d8b50e85bd75443998236d6e08b1";
+      sha256 = "ca48dea62d3934197317e737a68ed685d60fcd21274022fbf74956e7b5767b26";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/rm/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/rm/thunderbird-78.3.1.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha512 = "7ff72dc448c9303a70403558ae46cd720e645c24681dabbf265db783ef872e92216f8ee9169e155904d3fcd3288f2ee0ad11ca22bbf041b380884d57b306876e";
+      sha256 = "2c71fcd755e02377499ee364c5777c9dd02e856de1923417fd1caa22a5fbae72";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ro/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ro/thunderbird-78.3.1.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha512 = "7f585b942076749269ca86161694ef1b9f4e68e75300d60ea4141b2404be0c79761a2658c123787d67e65992e4b3dd5b7406acfee6084846bdefdb0f82d9baea";
+      sha256 = "0c28dd6d2345432beba854984384c7ef48eb33e93860ce601f977ba95286837e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/ru/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/ru/thunderbird-78.3.1.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha512 = "e4ef9e081cfdb3567f1823866ffd0e3e5fbe8596fd3a7dbb94869a8d1ebd328938c490669c8f46bc6575d6b8c5c351e387faf8dd2a33db263cb2fb5ddb2974f5";
+      sha256 = "98b29b6d65f93a265a1b77a717b49445f8a51209a1bd83a160ecb51ff4217a91";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/si/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/si/thunderbird-78.3.1.tar.bz2";
       locale = "si";
       arch = "linux-i686";
-      sha512 = "42db8e43c4bd722102778d4a9cdfb0ba54b0151882b7963e07c0b8cd653d7303eb22a541a8fc3a5b93c9db09c1a24db8f5c3365b5654e997c17d3b4b2c2a5f38";
+      sha256 = "c8b63b0fe37222493b1f35fbdd9aeedd4af9bb10585ed9ec2f2dc1e2c52eba40";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/sk/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/sk/thunderbird-78.3.1.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha512 = "fb025203b739cd89169bc25b36e6d541ebaf8726720c0b51e58a33fd0e71c2a4ae46428fe16547ed5e639e81ce35253a5519a28de9a8baa952a1b1af184b77a3";
+      sha256 = "c9d7715b8330e35ebefc386d8258c6ab00a12f14400fe01ad61037cd396b2cfa";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/sl/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/sl/thunderbird-78.3.1.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha512 = "ba392d3748b697d323e63c7217ce3c3aa4eaf6b994d798655a1667644733a6f19b23b95df420b2235e9ee000a868485d4f32fbe5d737ef5c7296c085738168bd";
+      sha256 = "2403387bbaab64e925c2729076ea039206d8b4e6964e7aa825877074eb6ccf57";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/sq/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/sq/thunderbird-78.3.1.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha512 = "b795928265f2b50a1032ab8fcce954f6d0d35a6dab2b381f11ca1b6b204aa1ae91b0ceb221da5ccadcca303f20792715d0f770c215dc59654df1b325ccc3e42e";
+      sha256 = "a8e83d18620b057c6981a170fafcef44f0e7800168c305abeb3ed6c5a936220c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/sr/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/sr/thunderbird-78.3.1.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha512 = "274c3675cd3d5264c2ce74b101b7c87bfd1703645e4341f6499c25b4905781395f514ed8412b22289ad097994e748ee7b527f1d6081022429292a64155d2df74";
+      sha256 = "6cfd9ddd429240f48c8f478d785b881047e262ebe6d3460f7780f57248b22da6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/sv-SE/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/sv-SE/thunderbird-78.3.1.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha512 = "318ccb06cf2c9f5fdbf25fe70a8c5e65c20e5d7ca375f52f64724410d2afa8a852f9e9e77b673c1f59e26bddd6fde74783a96f69f7bd73a1b7042633b624b310";
+      sha256 = "e8db182f239050020f91b1aab23514245c04d3aab977df6215165c401c010ce0";
+    }
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/th/thunderbird-78.3.1.tar.bz2";
+      locale = "th";
+      arch = "linux-i686";
+      sha256 = "20d5cc43be200cc6359c56a3988f76583fb6887834bed0512125296f2c25b0f9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/tr/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/tr/thunderbird-78.3.1.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha512 = "a86a69a8c146a0765e9fb7c835c1cc774a0a7fc309fa7f6627f427bc2cb4bd1b3e18f4aa61288cb68483f267b0be02662250abcdcafcb6619f1b4e3437cbb908";
+      sha256 = "8e74feb16b9c23689fec026e88a1749bc2c78fba0cf048db0228168f93fa7d2c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/uk/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/uk/thunderbird-78.3.1.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha512 = "86407123381e64df9f97190b0df253792582b0ba5296d6663bc0d8faf3004e3ec95cbc0140c9292928a7750cece1cc6887086a9e218f3169bee2246232643685";
+      sha256 = "6bd6d8c2b346adf03f0a12a84cdcd68b7e3d7e4c1caa7ebf23f5ecd90b0c0513";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/uz/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/uz/thunderbird-78.3.1.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha512 = "2d31a86952df2f5b339479cc6dabd1cbcc000119514775b07ca086e01e8310fe0d0d2c63cc57cb936588c59a5f72a5d9dae0e0a6e2f9b7cdf6225e400c24bd31";
+      sha256 = "b227ca8402b6ba1db029a4964ca4e3a28403ce5ade7bcb6cb9157665759426aa";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/vi/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/vi/thunderbird-78.3.1.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha512 = "3c241242e918bb69d811289879323205c070620829e05488e224450e7edb2be32b0f2c36f3182fcab95a1673fd133635e89801feaf6a34fa1553d8fea3b57641";
+      sha256 = "09962111baf14ad41f6277b3f625a38458ba07fbdbf17673807f29dd347e8eac";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/zh-CN/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/zh-CN/thunderbird-78.3.1.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha512 = "b4932b43158a5f8627ec951a3cb726863575a81b9d7b93ab35a9168224cd91480ecde55a1e7d4c01b9ed74f92440724475980010f1645db9b2ef0b6c42e92d93";
+      sha256 = "b86d0b18a3d87dc3fd018672f3bb8fa8eb5105fc56d1c4161ce324c6babc8286";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/68.9.0/linux-i686/zh-TW/thunderbird-68.9.0.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/78.3.1/linux-i686/zh-TW/thunderbird-78.3.1.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha512 = "018fff050295932a492433992a97fd01acc36685f7d1f96bba2f41972fdd6cd592c117434d2de81d0d018595c8473427aefe5a7b66194bc18d127c2e7eab5a34";
+      sha256 = "4e09553f18e9955b7072326b2e7f40bbb2e19f13f137742a0d9b29664f570d8a";
     }
     ];
 }
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix
index f383018e2537..51f6b4e06229 100644
--- a/nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/trojita/default.nix
@@ -1,6 +1,7 @@
 { akonadi-contacts
 , cmake
 , fetchgit
+, fetchsvn
 , gnupg
 , gpgme
 , kcontacts
@@ -15,18 +16,33 @@
 , qtkeychain
 , qttools
 , qtwebkit
+, qttranslations
+, substituteAll
+, withI18n ? false
 }:
 
-mkDerivation rec {
+let
+  l10n = fetchsvn {
+    url = "svn://anonsvn.kde.org/home/kde/trunk/l10n-kf5";
+    rev = "1566642";
+    sha256 = "0y45fjib153za085la3hqpryycx33dkj3cz8kwzn2w31kvldfl1q";
+  };
+in mkDerivation rec {
   pname = "trojita";
-  version = "0.7.20190618";
+  version = "unstable-2020-07-06";
 
   src = fetchgit {
     url = "https://anongit.kde.org/trojita.git";
-    rev = "90b417b131853553c94ff93aef62abaf301aa8f1";
-    sha256 = "0xpxq5bzqaa68lkz90wima5q2m0mdcn0rvnigb66lylb4n20mnql";
+    rev = "e973a5169f18ca862ceb8ad749c93cd621d86e14";
+    sha256 = "0r8nmlqwgsqkk0k8xh32fkwvv6iylj35xq2h8b7l3g03yc342kbn";
   };
 
+  patches = (substituteAll {
+    # See https://github.com/NixOS/nixpkgs/issues/86054
+    src = ./fix-qttranslations-path.patch;
+    inherit qttranslations;
+  });
+
   buildInputs = [
     akonadi-contacts
     gpgme
@@ -48,6 +64,14 @@ mkDerivation rec {
     gnupg
   ];
 
+  postPatch = "echo ${version} > src/trojita-version"
+    + lib.optionalString withI18n ''
+    mkdir -p po
+    for f in `find ${l10n} -name "trojita_common.po"`; do
+      cp $f po/trojita_common_$(echo $f | cut -d/ -f5).po
+    done
+  '';
+
   meta = with lib; {
     description = "A Qt IMAP e-mail client";
     homepage = "http://trojita.flaska.net/";
diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/trojita/fix-qttranslations-path.patch b/nixpkgs/pkgs/applications/networking/mailreaders/trojita/fix-qttranslations-path.patch
new file mode 100644
index 000000000000..c4eac3956508
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/mailreaders/trojita/fix-qttranslations-path.patch
@@ -0,0 +1,13 @@
+diff --git i/src/Gui/main.cpp w/src/Gui/main.cpp
+index 851db4f1..e997f46e 100644
+--- i/src/Gui/main.cpp
++++ w/src/Gui/main.cpp
+@@ -52,7 +52,7 @@ int main(int argc, char **argv)
+ 
+     QTranslator qtTranslator;
+     qtTranslator.load(QLatin1String("qt_") + QLocale::system().name(),
+-                      QLibraryInfo::location(QLibraryInfo::TranslationsPath));
++                      QLatin1String("@qttranslations@/translations"));
+     app.installTranslator(&qtTranslator);
+ 
+     QLatin1String localeSuffix("/locale");
diff --git a/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix b/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix
index 38662bf7f699..64b1be363f34 100644
--- a/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix
+++ b/nixpkgs/pkgs/applications/networking/modem-manager-gui/default.nix
@@ -1,15 +1,14 @@
 { stdenv
 , pkgconfig
 , python3
-, fetchhg
-, fetchpatch
+, fetchFromGitLab
 , gtk3
 , glib
 , gdbm
 , gtkspell3
 , ofono
 , itstool
-, libappindicator-gtk3
+, libayatana-appindicator-gtk3
 , perlPackages
 , glibcLocales
 , meson
@@ -18,22 +17,16 @@
 
 stdenv.mkDerivation rec {
   pname = "modem-manager-gui";
-  version = "0.0.19.1";
+  version = "0.0.20";
 
-  src = fetchhg {
-    url = "https://linuxonly@bitbucket.org/linuxonly/modem-manager-gui";
-    rev = "version ${version}";
-    sha256 = "11iibh36567814h2bz41sa1072b86p1l13xyj670pwkh9k8kw8fd";
+  src = fetchFromGitLab {
+    domain = "salsa.debian.org";
+    owner = "debian";
+    repo = "modem-manager-gui";
+    rev = "upstream%2F${version}";
+    sha256 = "1pjx4rbsxa7gcs628yjkwb0zqrm5xq8pkmp0cfk4flfk1ryflmgr";
   };
 
-  patches = [
-    # Fix docs build
-    (fetchpatch {
-      url = "https://bitbucket.org/linuxonly/modem-manager-gui/commits/68fb09c12413b7de9b7477cbf4241c3527568325/raw";
-      sha256 = "033nrlhjlk0zvadv5g9n2id53ajagswf77mda0ixnrskyi7wiig7";
-    })
-  ];
-
   nativeBuildInputs = [
     pkgconfig
     python3
@@ -49,7 +42,7 @@ stdenv.mkDerivation rec {
     gdbm
     gtkspell3
     ofono
-    libappindicator-gtk3
+    libayatana-appindicator-gtk3
   ];
 
   postPatch = ''
@@ -66,7 +59,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://linuxonly.ru/page/modem-manager-gui";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ ahuzik ];
+    maintainers = with maintainers; [ ahuzik galagora ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/msmtp/default.nix b/nixpkgs/pkgs/applications/networking/msmtp/default.nix
index e21cd5b3f0fc..ee5ea9d7e030 100644
--- a/nixpkgs/pkgs/applications/networking/msmtp/default.nix
+++ b/nixpkgs/pkgs/applications/networking/msmtp/default.nix
@@ -9,11 +9,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "msmtp";
-  version = "1.8.11";
+  version = "1.8.12";
 
   src = fetchurl {
     url = "https://marlam.de/${pname}/releases/${pname}-${version}.tar.xz";
-    sha256 = "0q0fg235qk448l1xjcwyxr7vcpzk6w57jzhjbkb0m7nffyhhypzj";
+    sha256 = "0m33m5bc7ajmgy7vivnzj3mhybg37259hx79xypj769kfyafyvx8";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix b/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
index 93a899742b5d..aa7aaab29ac2 100644
--- a/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mullvad-vpn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, makeWrapper, fetchurl, dpkg
+{ stdenv, lib, makeWrapper, fetchurl, dpkg
 , alsaLib, atk, cairo, cups, dbus, expat, fontconfig, freetype
 , gdk-pixbuf, glib, gnome2, pango, nspr, nss, gtk3
 , xorg, autoPatchelfHook, systemd, libnotify, libappindicator
@@ -41,11 +41,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "mullvad-vpn";
-  version = "2020.4";
+  version = "2020.5";
 
   src = fetchurl {
     url = "https://www.mullvad.net/media/app/MullvadVPN-${version}_amd64.deb";
-    sha256 = "17xi8g2k89vi4d0j7pr33bx9zjapa2qh4pymbrqvxwli3yhq6zwr";
+    sha256 = "131z6qlpjwxcn5a62f1f147f2z1xg185jmr0vbin8h0dwa1182vn";
   };
 
   nativeBuildInputs = [
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
 
   unpackPhase = "dpkg-deb -x $src .";
 
-  runtimeDependencies = [ systemd.lib libnotify libappindicator ];
+  runtimeDependencies = [ (lib.getLib systemd) libnotify libappindicator ];
 
   installPhase = ''
     runHook preInstall
diff --git a/nixpkgs/pkgs/applications/networking/mumble/default.nix b/nixpkgs/pkgs/applications/networking/mumble/default.nix
index b83e98a558c2..c205f18e3663 100644
--- a/nixpkgs/pkgs/applications/networking/mumble/default.nix
+++ b/nixpkgs/pkgs/applications/networking/mumble/default.nix
@@ -6,6 +6,7 @@
 , speechdSupport ? false, speechd ? null
 , pulseSupport ? false, libpulseaudio ? null
 , iceSupport ? false, zeroc-ice ? null
+, grpcSupport ? false, grpc ? null, c-ares ? null, abseil-cpp ? null, which ? null
 , nixosTests
 }:
 
@@ -13,6 +14,7 @@ assert jackSupport -> libjack2 != null;
 assert speechdSupport -> speechd != null;
 assert pulseSupport -> libpulseaudio != null;
 assert iceSupport -> zeroc-ice != null;
+assert grpcSupport -> (grpc != null && c-ares != null && abseil-cpp != null && which != null);
 
 with stdenv.lib;
 let
@@ -117,9 +119,12 @@ let
 
     configureFlags = [
       "CONFIG+=no-client"
-    ] ++ optional (!iceSupport) "CONFIG+=no-ice";
+    ] ++ optional (!iceSupport) "CONFIG+=no-ice"
+      ++ optional grpcSupport "CONFIG+=grpc";
 
-    buildInputs = [ libcap ] ++ optional iceSupport zeroc-ice;
+    buildInputs = [ libcap ]
+      ++ optional iceSupport zeroc-ice
+      ++ optionals grpcSupport [ grpc c-ares abseil-cpp which ];
 
     installPhase = ''
       # bin stuff
@@ -128,14 +133,14 @@ let
   } source;
 
   source = rec {
-    version = "1.3.1";
+    version = "1.3.2";
 
     # Needs submodules
     src = fetchFromGitHub {
       owner = "mumble-voip";
       repo = "mumble";
       rev = version;
-      sha256 = "1xsla9g7xbq6xniwcsjik5hbjh0xahv44qh4z9hjn7p70b8vgnwc";
+      sha256 = "1ljn7h7dr9iyhvq7rdh0prl7hzn9d2hhnxv0ni6dha6f7d9qbfy6";
       fetchSubmodules = true;
     };
   };
diff --git a/nixpkgs/pkgs/applications/networking/ncgopher/default.nix b/nixpkgs/pkgs/applications/networking/ncgopher/default.nix
new file mode 100644
index 000000000000..2e5e840d50dc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/ncgopher/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, pkg-config
+, ncurses6
+, openssl
+, sqlite
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "ncgopher";
+  version = "0.1.5";
+
+  src = fetchFromGitHub {
+    owner = "jansc";
+    repo = "ncgopher";
+    rev = "v${version}";
+    sha256 = "1mv89sanmr49b9za95jl5slpq960b246j2054r8xfafzqmbp44af";
+  };
+
+  cargoSha256 = "12r4vgrg2bkr3p61yxcsg02kppg84vn956l0v1vb08i94rxzc8zk";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [
+    ncurses6
+    openssl
+    sqlite
+  ];
+
+  meta = with lib; {
+    description = "A gopher and gemini client for the modern internet";
+    homepage = "https://github.com/jansc/ncgopher";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix b/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix
index 2632acd73d35..8ec460802375 100644
--- a/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix
+++ b/nixpkgs/pkgs/applications/networking/newsreaders/liferea/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   pname = "liferea";
-  version = "1.12.6";
+  version = "1.12.9";
 
   src = fetchurl {
-    url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${pname}-${version}b.tar.bz2";
-    sha256 = "03pr1gmiv5y0i92bkhcxr8s311ll91chz19wb96jkixx32xav91d";
+    url = "https://github.com/lwindolf/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2";
+    sha256 = "06ybr1wjlfir8iqjx6x0v1knd4b2hsy30qmkk4kssy6ky2ahc66q";
   };
 
   nativeBuildInputs = [
@@ -73,7 +73,7 @@ stdenv.mkDerivation rec {
     description = "A GTK-based news feed aggregator";
     homepage = "http://lzone.de/liferea/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ vcunat romildo ];
+    maintainers = with maintainers; [ romildo ];
     platforms = platforms.linux;
 
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix b/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
index 2560bc806eac..ed670be08a65 100644
--- a/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
+++ b/nixpkgs/pkgs/applications/networking/nextcloud-client/default.nix
@@ -12,18 +12,20 @@
 , qtkeychain
 , qttools
 , qtwebengine
+, qtquickcontrols2
+, qtgraphicaleffects
 , sqlite
 }:
 
 mkDerivation rec {
   pname = "nextcloud-client";
-  version = "2.6.4";
+  version = "3.0.2";
 
   src = fetchFromGitHub {
     owner = "nextcloud";
     repo = "desktop";
     rev = "v${version}";
-    sha256 = "1wr57qwcjfzbpb4p0ybfjpw2hhwp91yrk2n3ywrqywcvjj38jg1q";
+    sha256 = "ROzaiRa9Odq4lXuHL7nbE0S49d0wxmDgm01qI1WM+WM=";
   };
 
   patches = [
@@ -44,6 +46,8 @@ mkDerivation rec {
     qtkeychain
     qttools
     qtwebengine
+    qtquickcontrols2
+    qtgraphicaleffects
     sqlite
   ];
 
diff --git a/nixpkgs/pkgs/applications/networking/nextdns/default.nix b/nixpkgs/pkgs/applications/networking/nextdns/default.nix
new file mode 100644
index 000000000000..8cdacf6d8380
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/nextdns/default.nix
@@ -0,0 +1,26 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "nextdns";
+  version = "1.8.3";
+
+  src = fetchFromGitHub {
+    owner = "nextdns";
+    repo = "nextdns";
+    rev = "v${version}";
+    sha256 = "1bl6ky258hnai4v7d0gskn6nf5sdsc3xlwl959iwzqhpp0j3q9xg";
+  };
+
+  vendorSha256 = "09whpzsn16znyrknfm5zlhla253r69j6d751czza4c83m4r36swj";
+
+  doCheck = false;
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
+  meta = with lib; {
+    description = "NextDNS DNS/53 to DoH Proxy";
+    homepage = "https://nextdns.io";
+    license = licenses.mit;
+    maintainers = with maintainers; [ pnelson ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/offrss/default.nix b/nixpkgs/pkgs/applications/networking/offrss/default.nix
index 679e966373b6..03159a61a404 100644
--- a/nixpkgs/pkgs/applications/networking/offrss/default.nix
+++ b/nixpkgs/pkgs/applications/networking/offrss/default.nix
@@ -26,11 +26,11 @@ stdenv.mkDerivation {
     sha256 = "1akw1x84jj2m9z60cvlvmz21qwlaywmw18pl7lgp3bj5nw6250p6";
   };
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = "http://vicerveza.homeunix.net/~viric/cgi-bin/offrss";
     description = "Offline RSS/Atom reader";
-    license="AGPLv3+";
-    maintainers = with stdenv.lib.maintainers; [viric];
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ viric ];
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/openbazaar/client.nix b/nixpkgs/pkgs/applications/networking/openbazaar/client.nix
index 8ee265743de5..c890329771fe 100644
--- a/nixpkgs/pkgs/applications/networking/openbazaar/client.nix
+++ b/nixpkgs/pkgs/applications/networking/openbazaar/client.nix
@@ -8,13 +8,16 @@
 , electron_6
 }:
 
+let
+  electron = electron_6;
+in
 stdenv.mkDerivation rec {
   pname = "openbazaar-client";
-  version = "2.4.5";
+  version = "2.4.8";
 
   src = fetchurl {
     url = "https://github.com/OpenBazaar/openbazaar-desktop/releases/download/v${version}/openbazaar2client_${version}_amd64.deb";
-    sha256 = "0kahqqchalbyzy51gkxzmw91qignh8sprg57nbj1vmgm84w1z6kw";
+    sha256 = "0c8ar0rd4yydy4rd4hqafljrhi40v3cwhc9v7fjbrfhcx1ikmf64";
   };
 
   dontBuild = true;
@@ -42,7 +45,7 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    makeWrapper ${electron_6}/bin/electron $out/bin/${pname} \
+    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
       --add-flags $out/share/${pname}/resources/app \
       --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ gcc-unwrapped.lib ]}"
   '';
diff --git a/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix b/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix
index 3fc9fedc4138..d990dfb39d2b 100644
--- a/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix
+++ b/nixpkgs/pkgs/applications/networking/owncloud-client/default.nix
@@ -1,17 +1,21 @@
-{ stdenv, fetchurl, mkDerivation, cmake, pkgconfig, qtbase, qtkeychain, sqlite }:
+{ lib, stdenv, fetchurl, mkDerivation, cmake, pkgconfig, qtbase, qtkeychain, sqlite, libsecret }:
 
 mkDerivation rec {
   pname = "owncloud-client";
-  version = "2.5.4.11654";
+  version = "2.6.3.14058";
 
   src = fetchurl {
     url = "https://download.owncloud.com/desktop/stable/owncloudclient-${version}.tar.xz";
-    sha256 = "0gsnry0786crbnpgg3f1vcqw6mwbz6svhm6mw3767qi4lb33jm31";
+    sha256 = "1xcklhvbyg34clm9as2rjnjfwxpwq77lmdxj6qc0w7q43viqvlz3";
   };
 
   nativeBuildInputs = [ pkgconfig cmake ];
   buildInputs = [ qtbase qtkeychain sqlite ];
 
+  qtWrapperArgs = [
+    "--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ libsecret ]}"
+  ];
+
   cmakeFlags = [
     "-UCMAKE_INSTALL_LIBDIR"
     "-DNO_SHIBBOLETH=1"
diff --git a/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix b/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
index 39ab0ee0efa9..d38e9dc73365 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
@@ -3,12 +3,12 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "6.8.4";
+  version = "6.8.5";
   pname = "frostwire";
 
   src = fetchurl {
     url = "https://dl.frostwire.com/frostwire/${version}/frostwire-${version}.amd64.tar.gz";
-    sha256 = "1qs0r5621ihb9sj4sqpmxj9smwf8a8k3n1qx2i0sz65qhjfc90zz";
+    sha256 = "1zdas93w1yqg9yx8wlk7pxpdmwvg4ykg54ai7iyq9ir1zha8fyif";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix b/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix
index 5abee0108ec3..618ca0749125 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/gnunet/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, adns, curl, gettext, gmp, gnutls, libextractor
 , libgcrypt, libgnurl, libidn, libmicrohttpd, libtool, libunistring
 , makeWrapper, ncurses, pkgconfig, libxml2, sqlite, zlib
-, libpulseaudio, libopus, libogg, jansson }:
+, libpulseaudio, libopus, libogg, jansson, libsodium }:
 
 stdenv.mkDerivation rec {
   pname = "gnunet";
-  version = "0.12.1";
+  version = "0.13.2";
 
   src = fetchurl {
     url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz";
-    sha256 = "0zhz3dd4mr6k7wlcxw2xclq8p8l4ia5nlg78dylyz6lbz96h2lsm";
+    sha256 = "0b4a6bxwhpmj274d281vhny7i5rwydrdmab76xk6ji8vf0p705dn";
   };
 
   enableParallelBuilding = true;
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig libtool makeWrapper ];
   buildInputs = [
     adns curl gmp gnutls libextractor libgcrypt libgnurl libidn
-    libmicrohttpd libunistring libxml2 ncurses gettext
+    libmicrohttpd libunistring libxml2 ncurses gettext libsodium
     sqlite zlib libpulseaudio libopus libogg jansson
   ];
 
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
 
     homepage = "https://gnunet.org/";
     license = licenses.agpl3Plus;
-    maintainers = with maintainers; [ vrthra ];
+    maintainers = with maintainers; [ pstn vrthra ];
     platforms = platforms.gnu ++ platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/p2p/gnunet/git.nix b/nixpkgs/pkgs/applications/networking/p2p/gnunet/git.nix
deleted file mode 100644
index b3d455599bf0..000000000000
--- a/nixpkgs/pkgs/applications/networking/p2p/gnunet/git.nix
+++ /dev/null
@@ -1,92 +0,0 @@
-{ stdenv, fetchgit, libextractor, libmicrohttpd, libgcrypt
-, zlib, gmp, curl, libtool, adns, sqlite, pkgconfig
-, libxml2, ncurses, gettext, libunistring, libidn
-, makeWrapper, autoconf, automake, texinfo, which
-, withVerbose ? false }:
-
-let
-  rev = 	"ce2864cfaa27e55096b480bf35db5f8cee2a5e7e";
-in
-stdenv.mkDerivation {
-  name = "gnunet-git-${rev}";
-
-  src = fetchgit {
-    url =  "https://gnunet.org/git/gnunet.git";
-    inherit rev;
-    sha256 = "0gbw920m9v4b3425c0d1h7drgl2m1fni1bwjn4fwqnyz7kdqzsgl";
-  };
-
-  buildInputs = [
-    libextractor libmicrohttpd libgcrypt gmp curl libtool
-    zlib adns sqlite libxml2 ncurses libidn
-    pkgconfig gettext libunistring makeWrapper
-    autoconf automake texinfo which
-  ];
-
-  configureFlags = stdenv.lib.optional withVerbose "--enable-logging=verbose ";
-
-  preConfigure = ''
-    # Brute force: since nix-worker chroots don't provide
-    # /etc/{resolv.conf,hosts}, replace all references to `localhost'
-    # by their IPv4 equivalent.
-    for i in $(find . \( -name \*.c -or -name \*.conf \) \
-                    -exec grep -l '\<localhost\>' {} \;)
-    do
-      echo "$i: substituting \`127.0.0.1' to \`localhost'..."
-      sed -i "$i" -e's/\<localhost\>/127.0.0.1/g'
-    done
-
-    # Make sure the tests don't rely on `/tmp', for the sake of chroot
-    # builds.
-    for i in $(find . \( -iname \*test\*.c -or -name \*.conf \) \
-                    -exec grep -l /tmp {} \;)
-    do
-      echo "$i: replacing references to \`/tmp' by \`$TMPDIR'..."
-      substituteInPlace "$i" --replace "/tmp" "$TMPDIR"
-    done
-
-    # Ensure NSS installation works fine
-    configureFlags="$configureFlags --with-nssdir=$out/lib"
-
-    sh contrib/pogen.sh
-    sh bootstrap
-  '';
-
-  doCheck = false;
-
-  /* FIXME: Tests must be run this way, but there are still a couple of
-     failures.
-
-  postInstall =
-    '' export GNUNET_PREFIX="$out"
-       export PATH="$out/bin:$PATH"
-       make -k check
-    '';
-  */
-
-  meta = with stdenv.lib; {
-    description = "GNUnet, GNU's decentralized anonymous and censorship-resistant P2P framework";
-
-    longDescription = ''
-      GNUnet is a framework for secure peer-to-peer networking that
-      does not use any centralized or otherwise trusted services.  A
-      first service implemented on top of the networking layer
-      allows anonymous censorship-resistant file-sharing.  Anonymity
-      is provided by making messages originating from a peer
-      indistinguishable from messages that the peer is routing.  All
-      peers act as routers and use link-encrypted connections with
-      stable bandwidth utilization to communicate with each other.
-      GNUnet uses a simple, excess-based economic model to allocate
-      resources.  Peers in GNUnet monitor each others behavior with
-      respect to resource usage; peers that contribute to the
-      network are rewarded with better service.
-    '';
-
-    homepage = "https://gnunet.org/";
-
-    license = licenses.agpl3Plus;
-
-    maintainers = with stdenv.lib.maintainers; [ ];
-    platforms = platforms.gnu ++ platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix b/nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix
new file mode 100644
index 000000000000..4090814b3da8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/gnunet/gtk.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl
+, gnome3
+, gnunet
+, gnutls
+, gtk3
+, libextractor
+, libgcrypt
+, libxml2
+, pkg-config
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gnunet-gtk";
+  version = "0.13.1";
+
+  src = fetchurl {
+    url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz";
+    sha256 = "1zdzgq16h77w6ybwg3lqjsjr965np6iqvncqvkbj07glqd4wss0j";
+  };
+
+  nativeBuildInputs= [
+    pkg-config
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    gnome3.glade
+    gnunet
+    gnutls
+    gtk3
+    libextractor
+    libgcrypt
+    libxml2
+  ];
+
+  patchPhase = "patchShebangs pixmaps/icon-theme-installer";
+
+  meta = gnunet.meta // {
+    description = "GNUnet GTK User Interface";
+    homepage = "https://git.gnunet.org/gnunet-gtk.git";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix b/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix
index 1dcf42b7ece1..b8c1991c88f5 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/magnetico/default.nix
@@ -18,7 +18,6 @@ buildGoModule rec {
     make magneticow magneticod
   '';
 
-  doCheck = true;
   checkPhase = ''
     make test
   '';
@@ -30,4 +29,4 @@ buildGoModule rec {
     badPlatforms = platforms.darwin;
     maintainers  = with maintainers; [ rnhmjoj ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix b/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix
index 98fd41e8bcd1..276cabfa2aa9 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/stig/default.nix
@@ -7,13 +7,13 @@ python3Packages.buildPythonApplication rec {
   pname = "stig";
   # This project has a different concept for pre release / alpha,
   # Read the project's README for details: https://github.com/rndusr/stig#stig
-  version = "0.11.0a";
+  version = "0.11.2a0";
 
   src = fetchFromGitHub {
     owner = "rndusr";
     repo = "stig";
     rev = "v${version}";
-    sha256 = "192v8f80jfly12bqzsslpxlvm72kdqm3jl40x1az5czpg4ab3lb7";
+    sha256 = "05dn6mr86ly65gdqarl16a2jk1bwiw5xa6r4kyag3s6lqsv66iw8";
   };
 
   # urwidtrees 1.0.3 is requested by the developer because 1.0.2 (which is packaged
diff --git a/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix b/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix
index 80d907894401..e2847d88f8a7 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/synapse-bt/default.nix
@@ -24,6 +24,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://synapse-bt.org/";
     license = licenses.isc;
     maintainers = with maintainers; [ dywedir ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix b/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix
index 2e14bd0eb0f2..f8a70d322f03 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/tixati/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tixati";
-  version = "2.73";
+  version = "2.74";
 
   src = fetchurl {
     url = "https://download2.tixati.com/download/tixati-${version}-1.x86_64.manualinstall.tar.gz";
-    sha256 = "1ncrfc4wgf02la2h3zpdcz07b980n9232lg5f62q7ab79fjrcrfr";
+    sha256 = "1slsrqv97hnj1vxx3hw32dhqckbr05w622samjbrimh4dv8yrd29";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/networking/p2p/torrential/default.nix b/nixpkgs/pkgs/applications/networking/p2p/torrential/default.nix
index e432818bec75..d62e3b3b5a3f 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/torrential/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/torrential/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , cmake
 , pkgconfig
 , vala_0_40
@@ -51,7 +52,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix b/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix
index d59cdff34fd9..ab4fc0908ba8 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/transmission/default.nix
@@ -72,9 +72,6 @@ in stdenv.mkDerivation {
 
   NIX_LDFLAGS = lib.optionalString stdenv.isDarwin "-framework CoreFoundation";
 
-  # Reduce the risk of collisions
-  postInstall = "rm -r $out/share/doc";
-
   meta = {
     description = "A fast, easy and free BitTorrent client";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix b/nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix
new file mode 100644
index 000000000000..37f2a3584ee2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/p2p/tremc/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, python3Packages
+, x11Support ? !stdenv.isDarwin
+, xclip ? null
+, pbcopy ? null
+, useGeoIP ? false # Require /var/lib/geoip-databases/GeoIP.dat
+}:
+let
+  wrapperPath = with stdenv.lib; makeBinPath (
+    optional x11Support xclip ++
+    optional stdenv.isDarwin pbcopy
+  );
+in
+python3Packages.buildPythonPackage rec {
+  version = "0.9.1";
+  pname = "tremc";
+
+  src = fetchFromGitHub {
+    owner = "tremc";
+    repo = pname;
+    rev = "0.9.1";
+    sha256 = "1yhwvlcyv1s830p5a7q5x3mkb3mbvr5cn5nh7y62l5b6iyyynlvm";
+  };
+
+  buildInputs = with python3Packages; [
+    python
+    wrapPython
+  ];
+
+  pythonPath = with python3Packages; [
+    ipy
+    pyperclip
+  ] ++
+  stdenv.lib.optional useGeoIP GeoIP;
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  makeWrapperArgs = ["--prefix PATH : ${wrapperPath}"];
+
+  installPhase = ''
+    make DESTDIR=$out install
+    wrapPythonPrograms
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Curses interface for transmission";
+    homepage = "https://github.com/tremc/tremc";
+    license = licenses.gpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix b/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
index ed1129b238ac..5cab23ecd710 100644
--- a/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
+++ b/nixpkgs/pkgs/applications/networking/p2p/tribler/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgs, python3Packages, makeWrapper
-, enablePlayer ? true, vlc ? null, qt5, lib }:
+, enablePlayer ? true, libvlc ? null, qt5, lib }:
 
 stdenv.mkDerivation rec {
   pname = "tribler";
@@ -50,9 +50,9 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     ${stdenv.lib.optionalString enablePlayer ''
-      substituteInPlace "./TriblerGUI/vlc.py" --replace "ctypes.CDLL(p)" "ctypes.CDLL('${vlc}/lib/libvlc.so')"
+      substituteInPlace "./TriblerGUI/vlc.py" --replace "ctypes.CDLL(p)" "ctypes.CDLL('${libvlc}/lib/libvlc.so')"
       substituteInPlace "./TriblerGUI/widgets/videoplayerpage.py" --replace "if vlc and vlc.plugin_path" "if vlc"
-      substituteInPlace "./TriblerGUI/widgets/videoplayerpage.py" --replace "os.environ['VLC_PLUGIN_PATH'] = vlc.plugin_path" "os.environ['VLC_PLUGIN_PATH'] = '${vlc}/lib/vlc/plugins'"
+      substituteInPlace "./TriblerGUI/widgets/videoplayerpage.py" --replace "os.environ['VLC_PLUGIN_PATH'] = vlc.plugin_path" "os.environ['VLC_PLUGIN_PATH'] = '${libvlc}/lib/vlc/plugins'"
     ''}
   '';
 
@@ -69,7 +69,7 @@ stdenv.mkDerivation rec {
         --run 'cd $_TRIBLERPATH' \
         --add-flags "-O $out/run_tribler.py" \
         ${stdenv.lib.optionalString enablePlayer ''
-          --prefix LD_LIBRARY_PATH : ${vlc}/lib
+          --prefix LD_LIBRARY_PATH : ${libvlc}/lib
         ''}
 
     mkdir -p $out/share/applications $out/share/icons $out/share/man/man1
diff --git a/nixpkgs/pkgs/applications/networking/ping/default.nix b/nixpkgs/pkgs/applications/networking/ping/default.nix
index ed63a72f2109..8e4125ac72aa 100644
--- a/nixpkgs/pkgs/applications/networking/ping/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ping/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , vala
@@ -52,7 +53,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/networking/protonvpn-cli-ng/default.nix b/nixpkgs/pkgs/applications/networking/protonvpn-cli-ng/default.nix
deleted file mode 100644
index e62bc21ab5b8..000000000000
--- a/nixpkgs/pkgs/applications/networking/protonvpn-cli-ng/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, fetchFromGitHub, python3Packages, openvpn, dialog, iptables }:
-
-python3Packages.buildPythonApplication rec {
-  pname = "protonvpn-cli-ng";
-  version = "2.2.2";
-
-  src = fetchFromGitHub {
-    owner = "protonvpn";
-    repo = "${pname}";
-    rev = "v${version}";
-    sha256 = "0ixjb02kj4z79whm1izd8mrn2h0rp9cmw4im1qvp93rahqxdd4n8";
-  };
-
-  propagatedBuildInputs = (with python3Packages; [
-      requests
-      docopt
-      setuptools
-      pythondialog
-    ]) ++ [
-      dialog
-      openvpn
-      iptables
-    ];
-
-  # No tests
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Linux command-line client for ProtonVPN";
-    homepage = "https://github.com/protonvpn/protonvpn-cli-ng";
-    maintainers = with maintainers; [ jtcoolen jefflabonte ];
-    license = licenses.gpl3;
-    platforms = platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix b/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix
index c48f6c820269..1c72d4ef88c0 100644
--- a/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix
+++ b/nixpkgs/pkgs/applications/networking/protonvpn-cli/default.nix
@@ -1,43 +1,36 @@
-{ stdenv, lib, fetchFromGitHub, makeWrapper, coreutils
-, openvpn, python, dialog, wget, update-resolv-conf }:
+{ lib, fetchFromGitHub, python3Packages, openvpn, dialog, iptables }:
 
-let
-  expectedUpdateResolvPath = "/etc/openvpn/update-resolv-conf";
-  actualUpdateResolvePath = "${update-resolv-conf}/libexec/openvpn/update-resolv-conf";
-
-in stdenv.mkDerivation rec {
-  name = "protonvpn-cli";
-  version = "1.1.2";
+python3Packages.buildPythonApplication rec {
+  pname = "protonvpn-linux-cli";
+  version = "2.2.4";
 
   src = fetchFromGitHub {
-    owner = "ProtonVPN";
-    repo = "protonvpn-cli";
+    owner = "protonvpn";
+    repo = "linux-cli";
     rev = "v${version}";
-    sha256 = "0xvflr8zf267n3dv63nkk4wjxhbckw56sqmyca3krf410vrd7zlv";
+    sha256 = "08yca0a0prrnrc7ir7ajd56yxvxpcs4m1k8f5kf273f5whgr7wzw";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  propagatedBuildInputs = (with python3Packages; [
+      requests
+      docopt
+      setuptools
+      jinja2
+      pythondialog
+    ]) ++ [
+      dialog
+      openvpn
+      iptables
+    ];
 
-  installPhase = ''
-    mkdir -p "$out/bin"
-    substituteInPlace protonvpn-cli.sh \
-      --replace ${expectedUpdateResolvPath} ${actualUpdateResolvePath} \
-      --replace \$UID 0 \
-      --replace /etc/resolv.conf /dev/null \
-      --replace \
-        "  echo \"Connecting...\"" \
-        "  sed -ri 's@${expectedUpdateResolvPath}@${actualUpdateResolvePath}@g' \"\$openvpn_config\"; echo \"Connecting...\""
-    cp protonvpn-cli.sh "$out/bin/protonvpn-cli"
-    wrapProgram $out/bin/protonvpn-cli \
-      --prefix PATH : ${lib.makeBinPath [ coreutils openvpn python dialog wget update-resolv-conf ]}
-    ln -s "$out/bin/protonvpn-cli" "$out/bin/pvpn"
-  '';
+  # No tests
+  doCheck = false;
 
-  meta = with stdenv.lib; {
-    description = "ProtonVPN Command-Line Tool";
-    homepage = "https://github.com/ProtonVPN/protonvpn-cli";
-    maintainers = with maintainers; [ caugner ];
-    license = licenses.mit;
+  meta = with lib; {
+    description = "Linux command-line client for ProtonVPN";
+    homepage = "https://github.com/protonvpn/linux-cli";
+    maintainers = with maintainers; [ jtcoolen jefflabonte ];
+    license = licenses.gpl3;
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix b/nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix
new file mode 100644
index 000000000000..38ffb42aaf81
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/protonvpn-gui/default.nix
@@ -0,0 +1,86 @@
+{ lib, fetchFromGitHub, makeDesktopItem, makeWrapper, imagemagick
+, python3Packages, wrapGAppsHook, protonvpn-cli, gtk3, pango
+, gobject-introspection, libnotify, libappindicator-gtk3
+, procps, openvpn }:
+
+let
+  extraPath = lib.makeBinPath [ procps openvpn ];
+
+in python3Packages.buildPythonApplication rec {
+  pname = "protonvpn-linux-gui";
+  version = "2.1.1";
+
+  src = fetchFromGitHub {
+    owner = "protonvpn";
+    repo = "linux-gui";
+    rev = "v${version}";
+    sha256 = "avo5/2eq53HSHCnnjtxrsmpURtHvxmLZn2BxActImGY=";
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "ProtonVPN";
+    desktopName = "ProtonVPN GUI";
+    type = "Application";
+    exec = "protonvpn-gui";
+    icon = "protonvpn";
+    categories = "Network;";
+    terminal = "false";
+  };
+
+  trayDesktopItem = makeDesktopItem {
+    name = "ProtonVPN Tray";
+    desktopName = "ProtonVPN Tray";
+    type = "Application";
+    exec = "protonvpn-tray";
+    icon = "protonvpn";
+    categories = "Network;";
+    terminal = "false";
+  };
+
+  nativeBuildInputs = [ wrapGAppsHook makeWrapper imagemagick ];
+
+  propagatedBuildInputs = (with python3Packages; [
+      pygobject3
+      pycairo
+      requests
+      configparser
+    ]) ++ [
+      protonvpn-cli
+      gtk3
+      gobject-introspection
+      libnotify
+      libappindicator-gtk3
+    ];
+
+  prePatch = ''
+    # if pkexec is used, we want to have more time to enter password
+    substituteInPlace linux_gui/services/login_service.py --replace 'timeout=8' 'timeout=30'
+  '';
+
+  postInstall = ''
+    # wrap binaries with extra required path
+    wrapProgram "$out/bin/protonvpn-tray" --prefix PATH ":" ${extraPath}
+    wrapProgram "$out/bin/protonvpn-gui" --prefix PATH ":" ${extraPath}
+
+    # install desktop files
+    mkdir -p $out/share/applications
+    cp "$desktopItem/share/applications/ProtonVPN.desktop" $out/share/applications/protonvpn-gui.desktop
+    cp "$trayDesktopItem/share/applications/ProtonVPN Tray.desktop" $out/share/applications/protonvpn-tray.desktop
+
+    # create icons
+    for size in 16 32 48 64 72 96 128 192 512 1024; do
+      mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
+      convert -resize "$size"x"$size" \
+        linux_gui/resources/img/logo/protonvpn_logo.png \
+        $out/share/icons/hicolor/"$size"x"$size"/apps/protonvpn.png
+    done
+  '';
+
+  meta = with lib; {
+    description = "Linux GUI for ProtonVPN, written in Python.";
+    homepage = "https://github.com/ProtonVPN/linux-gui";
+    maintainers = with maintainers; [ offline ];
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix b/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
index 9425f260e4f0..643efd0f0f27 100644
--- a/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/anydesk/default.nix
@@ -5,8 +5,8 @@
 
 let
   sha256 = {
-    x86_64-linux = "1vpfyffg1g7f1m4mxmqghswihml9rm1cipm7krmr5wvxdmcphxnk";
-    i386-linux   = "0vjxbg5hwkqkh600rr75xviwy848r1xw9mxwf6bb6l8b0isvlsgg";
+    x86_64-linux = "19751ygq1ng79aniqx91qawc0cw07cwdjdjd88azc9ww6z6nv0mp";
+    i386-linux   = "0dwc7v4p1dz51444zwn0kds23yi87r4h2d3isfj9xwkn90pxb7in";
   }.${stdenv.hostPlatform.system} or (throw "system ${stdenv.hostPlatform.system} not supported");
 
   arch = {
@@ -22,13 +22,13 @@ let
     icon = "anydesk";
     desktopName = "AnyDesk";
     genericName = description;
-    categories = "Application;Network;";
+    categories = "Network;";
     startupNotify = "false";
   };
 
 in stdenv.mkDerivation rec {
   pname = "anydesk";
-  version = "5.5.6";
+  version = "6.0.1";
 
   src = fetchurl {
     urls = [
diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix
index a62b1bf5ee15..3a6054db3543 100644
--- a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/default.nix
@@ -1,253 +1,25 @@
-{ stdenv
-, lib
-, fetchurl
-, requireFile
-, makeWrapper
-, libredirect
-, busybox
-, file
-, makeDesktopItem
-, tzdata
-, cacert
-, dconf
-, glib
-, gtk2
-, atk
-, gdk-pixbuf
-, cairo
-, pango
-, gnome3
-, xorg
-, libpng12
-, freetype
-, fontconfig
-, gtk_engines
-, alsaLib
-, zlib
-, version ? "20.04.0"
-}:
+{ lib, callPackage }:
 
-let
-  versionInfo = let
-    supportedVersions = {
-      "19.6.0" = {
-        major     = "19";
-        minor     = "6";
-        patch     = "0";
-        x64hash   = "0szqlfmigzgf0309i6ikxkizxaf4ri7qmhys75m0zi3bpwx6hzhs";
-        x86hash   = "16v3kgavrh62z6vxcbw6mn7h0bfishpl7m92k7g1p2882r1f8vaf";
-        x64suffix = "60";
-        x86suffix = "60";
-        homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-latest.html";
-      };
-
-      "19.8.0" = {
-        major     = "19";
-        minor     = "8";
-        patch     = "0";
-        x64hash   = "0f8djw8lp5wihb23y09yac1mh09w1qp422h72r6zfx9k1lqfsdbw";
-        x86hash   = "0afcqirb4q349r3izy88vqkszg6y2wg14iwypk6nrmvwgvcl6jdn";
-        x64suffix = "20";
-        x86suffix = "20";
-        homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-1908.html";
-      };
-
-      "19.10.0" = {
-        major     = "19";
-        minor     = "10";
-        patch     = "0";
-        x64hash   = "1l4q4pmfiw9gmml6j5b3hls2101xf5m8p6855nhfhvqlisrj9h14";
-        x86hash   = "000zjik8wf8b6fadnsai0p77b4n2l95544zx503iyrb9pv53bj3y";
-        x64suffix = "15";
-        x86suffix = "15";
-        homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-1910.html";
-      };
-
-      "19.12.0" = {
-        major     = "19";
-        minor     = "12";
-        patch     = "0";
-        x64hash   = "1si5mkxbgb8m99bkvgc3l80idjfdp0kby6pv47s07nn43dbr1j7a";
-        x86hash   = "07rfp90ksnvr8zv7ix7f0z6a59n48s7bd4kqbzilfwxgs4ddqmcy";
-        x64suffix = "19";
-        x86suffix = "19";
-        homepage  = "https://www.citrix.com/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-1912.html";
-      };
-
-      "20.04.0" = {
-        major     = "20";
-        minor     = "04";
-        patch     = "0";
-        x64hash   = "E923592216F9541173846F932784E6C062CB09C9E8858219C7489607BF82A0FB";
-        x86hash   = "A2E2E1882723DA6796E68916B3BB2B44DD575A83DEB03CA90A262F6C81B1A53F";
-        x64suffix = "21";
-        x86suffix = "21";
-        homepage  = "https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
-      };
-    };
-
-    # Copied this file largely from the citrix-receiver package
-    # Leaving this here even though there are no deprecations yet
-    # for ease of future maintenance.
-    #
-    # The lifespans of Citrix products can be found here:
-    # https://www.citrix.com/support/product-lifecycle/milestones/receiver.html
-    deprecatedVersions = let
-      versions = [ "19.3.0" ];
-    in
-      lib.listToAttrs
-        (lib.forEach versions
-          (v: lib.nameValuePair v (throw "Unsupported citrix_workspace version: ${v}")));
-  in
-    deprecatedVersions // supportedVersions;
-
-  citrixWorkspaceForVersion = { major, minor, patch, x64hash, x86hash, x64suffix, x86suffix, homepage }:
-    stdenv.mkDerivation rec {
-      pname = "citrix-workspace";
-      version  = "${major}.${minor}.${patch}";
-      inherit homepage;
-
-      prefixWithBitness = if stdenv.is64bit then "linuxx64" else "linuxx86";
-
-      preferLocalBuild = true;
-
-      src = requireFile rec {
-        name    = if stdenv.is64bit then "${prefixWithBitness}-${version}.${x64suffix}.tar.gz" else "${prefixWithBitness}-${version}.${x86suffix}.tar.gz";
-        sha256  = if stdenv.is64bit then x64hash else x86hash;
-        message = ''
-          In order to use Citrix Workspace, you need to comply with the Citrix EULA and download
-          the ${if stdenv.is64bit then "64-bit" else "32-bit"} binaries, .tar.gz from:
-
-          ${homepage}
-
-          (if you do not find version ${version} there, try at
-          https://www.citrix.com/downloads/workspace-app/
-
-          Once you have downloaded the file, please use the following command and re-run the
-          installation:
-
-          nix-prefetch-url file://\$PWD/${name}
-        '';
-      };
-
-      dontBuild = true;
+# For detailed information about the Citrix source-tarball, please refer to the OEM
+# reference guide: https://developer-docs.citrix.com/projects/workspace-app-for-linux-oem-guide/en/latest/
 
-      sourceRoot = ".";
-
-      buildInputs = [
-        makeWrapper
-        busybox
-        file
-        gtk2
-        gdk-pixbuf
-      ];
-
-      libPath = stdenv.lib.makeLibraryPath [
-        glib
-        gtk2
-        atk
-        gdk-pixbuf
-        cairo
-        pango
-        dconf
-        xorg.libX11
-        xorg.libXext
-        xorg.libXrender
-        xorg.libXinerama
-        xorg.libXfixes
-        libpng12
-        zlib
-        gtk_engines
-        freetype
-        fontconfig
-        alsaLib
-        stdenv.cc.cc # Fixes: Can not load [..]/opt/citrix-icaclient/lib/ctxh264_fb.so:(null)
-      ];
-
-      desktopItem = makeDesktopItem {
-        name        = "wfica";
-        desktopName = "Citrix Workspace";
-        genericName = "Citrix Workspace";
-        exec        = "wfica";
-        icon        = "wfica";
-        comment     = "Connect to remote Citrix server";
-        categories  = "GTK;GNOME;X-GNOME-NetworkSettings;Network;";
-        mimeType    = "application/x-ica";
-      };
-
-      installPhase = ''
-        runHook preInstall
-
-        export ICAInstDir="$out/opt/citrix-icaclient"
-
-        sed -i \
-          -e 's,^main_install_menu$,install_ICA_client,g' \
-          -e 's,^integrate_ICA_client(),alias integrate_ICA_client=true\nintegrate_ICA_client_old(),g' \
-          -e 's,^ANSWER=""$,ANSWER="$INSTALLER_YES",' \
-          -e 's,/bin/true,true,g' \
-          ./${prefixWithBitness}/hinst
-
-        # Run the installer...
-        bash ./${prefixWithBitness}/hinst CDROM "`pwd`"
-
-        echo "Deleting broken links..."
-        for link in `find $ICAInstDir -type l `
-        do
-          [ -f "$link" ] || rm -v "$link"
-        done
-
-        echo "Expanding certificates..."
-        # As explained in https://wiki.archlinux.org/index.php/Citrix#Security_Certificates
-        pushd "$ICAInstDir/keystore/cacerts"
-        awk 'BEGIN {c=0;} /BEGIN CERT/{c++} { print > "cert." c ".pem"}' < ${cacert}/etc/ssl/certs/ca-bundle.crt
-        popd
-
-        echo "Patching executables..."
-        find $ICAInstDir -type f -exec file {} \; |
-          grep 'ELF.*executable' |
-          cut -f 1 -d : |
-          grep -vi '\(.dll\|.so\)$' | # added as a workaround to https://github.com/NixOS/nixpkgs/issues/41729
-          while read f
-          do
-            echo "Patching ELF intrepreter and rpath for $f"
-            chmod u+w "$f"
-            patchelf \
-              --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
-              --set-rpath "$ICAInstDir:$libPath" "$f"
-          done
-
-        echo "Wrapping wfica..."
-        mkdir "$out/bin"
-
-        makeWrapper "$ICAInstDir/wfica" "$out/bin/wfica" \
-          --add-flags "-icaroot $ICAInstDir" \
-          --set ICAROOT "$ICAInstDir" \
-          --set GTK_PATH "${gtk2.out}/lib/gtk-2.0:${gnome3.gnome-themes-extra}/lib/gtk-2.0" \
-          --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE" \
-          --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
-          --set LD_LIBRARY_PATH "$libPath" \
-          --set NIX_REDIRECTS "/usr/share/zoneinfo=${tzdata}/share/zoneinfo:/etc/zoneinfo=${tzdata}/share/zoneinfo:/etc/timezone=$ICAInstDir/timezone"
-
-        echo "We arbitrarily set the timezone to UTC. No known consequences at this point."
-        echo UTC > "$ICAInstDir/timezone"
-
-        echo "Installing desktop item..."
-        mkdir -p $out/share/applications
-        cp ${desktopItem}/share/applications/* $out/share/applications
+let
+  inherit (callPackage ./sources.nix { }) supportedVersions unsupportedVersions;
+  mkCitrix = callPackage ./generic.nix { };
 
-        # We introduce a dependency on the source file so that it need not be redownloaded everytime
-        echo $src >> "$out/share/workspace_dependencies.pin"
+  toAttrName = x: "citrix_workspace_${builtins.replaceStrings [ "." ] [ "_" ] x}";
 
-        runHook postInstall
-      '';
+  unsupported = lib.listToAttrs (
+    map (x: lib.nameValuePair (toAttrName x) (throw ''
+      Citrix Workspace at version ${x} is not supported anymore!
 
-      meta = with stdenv.lib; {
-        license     = stdenv.lib.licenses.unfree;
-        inherit homepage;
-        description = "Citrix Workspace";
-        platforms   = platforms.linux;
-        maintainers = with maintainers; [ ma27 ];
-      };
-    };
+      Actively supported releases are listed here:
+      https://www.citrix.com/en-gb/support/product-lifecycle/milestones/receiver.html
+    '')) unsupportedVersions
+  );
 
-in citrixWorkspaceForVersion (lib.getAttr version versionInfo)
+  supported = lib.mapAttrs' (
+    attr: versionInfo: lib.nameValuePair (toAttrName attr) (callPackage ./generic.nix versionInfo)
+  ) supportedVersions;
+in
+  supported // unsupported
diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix
new file mode 100644
index 000000000000..a2ad8b8129a6
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/generic.nix
@@ -0,0 +1,207 @@
+{ stdenv, requireFile, makeWrapper, autoPatchelfHook, wrapGAppsHook, which, more
+, file, atk, alsaLib, cairo, fontconfig, gdk-pixbuf, glib, gnome3, gtk2-x11, gtk3
+, heimdal, krb5, libsoup, libvorbis, speex, openssl, zlib, xorg, pango, gtk2
+, gnome2, nss, nspr, gtk_engines, freetype, dconf, libpng12, libxml2
+, libjpeg, libredirect, tzdata, cacert, systemd, libcxxabi, libcxx, e2fsprogs, symlinkJoin
+
+, homepage, version, prefix, hash
+
+, extraCerts ? []
+}:
+
+let
+  inherit (stdenv) lib;
+
+  openssl' = symlinkJoin {
+    name = "openssl-backwards-compat";
+    nativeBuildInputs = [ makeWrapper ];
+    paths = [ openssl.out ];
+    postBuild = ''
+      ln -sf $out/lib/libcrypto.so $out/lib/libcrypto.so.1.0.0
+      ln -sf $out/lib/libssl.so $out/lib/libssl.so.1.0.0
+    '';
+  };
+in
+
+stdenv.mkDerivation rec {
+  pname = "citrix-workspace";
+  inherit version;
+
+  src = requireFile rec {
+    name = "${prefix}-${version}.tar.gz";
+    sha256 = hash;
+
+    message = ''
+      In order to use Citrix Workspace, you need to comply with the Citrix EULA and download
+      the ${if stdenv.is64bit then "64-bit" else "32-bit"} binaries, .tar.gz from:
+
+      ${homepage}
+
+      (if you do not find version ${version} there, try at
+      https://www.citrix.com/downloads/workspace-app/
+
+      Once you have downloaded the file, please use the following command and re-run the
+      installation:
+
+      nix-prefetch-url file://\$PWD/${name}
+    '';
+  };
+
+  dontBuild = true;
+  dontConfigure = true;
+  sourceRoot = ".";
+  preferLocalBuild = true;
+  passthru.icaroot = "${placeholder "out"}/opt/citrix-icaclient";
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    file
+    makeWrapper
+    more
+    which
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    alsaLib
+    atk
+    cairo
+    dconf
+    fontconfig
+    freetype
+    gdk-pixbuf
+    gnome2.gtkglext
+    gnome3.webkitgtk
+    gtk2
+    gtk2-x11
+    gtk3
+    gtk_engines
+    heimdal
+    krb5
+    libcxx
+    libcxxabi
+    libjpeg
+    libpng12
+    libsoup
+    libvorbis
+    libxml2
+    nspr
+    nss
+    openssl'
+    pango
+    speex
+    (lib.getLib systemd)
+    stdenv.cc.cc
+    xorg.libXaw
+    xorg.libXmu
+    xorg.libXScrnSaver
+    xorg.libXtst
+    zlib
+  ] ++ lib.optional (lib.versionOlder version "20.04") e2fsprogs;
+
+  runtimeDependencies = [
+    glib
+
+    xorg.libX11
+    xorg.libXScrnSaver
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXinerama
+    xorg.libXmu
+    xorg.libXrender
+    xorg.libXtst
+    xorg.libxcb
+  ];
+
+  installPhase = let
+    icaFlag = program:
+      if (builtins.match "selfservice(.*)" program) != null then "--icaroot"
+      else "-icaroot";
+    wrap = program: ''
+      wrapProgram $out/opt/citrix-icaclient/${program} \
+        --add-flags "${icaFlag program} $ICAInstDir" \
+        --set ICAROOT "$ICAInstDir" \
+        --prefix LD_LIBRARY_PATH : "$ICAInstDir:$ICAInstDir/lib" \
+        --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
+        --set NIX_REDIRECTS "/usr/share/zoneinfo=${tzdata}/share/zoneinfo:/etc/zoneinfo=${tzdata}/share/zoneinfo:/etc/timezone=$ICAInstDir/timezone"
+    '';
+    wrapLink = program: ''
+      ${wrap program}
+      ln -sf $out/opt/citrix-icaclient/${program} $out/bin/${baseNameOf program}
+    '';
+
+    copyCert = path: ''
+      cp -v ${path} $out/opt/citrix-icaclient/keystore/cacerts/${baseNameOf path}
+    '';
+
+    mkWrappers = lib.concatMapStringsSep "\n";
+
+    toWrap = [ "wfica" "selfservice" "util/configmgr" "util/conncenter" "util/ctx_rehash" ]
+      ++ lib.optional (lib.versionOlder version "20.06") "selfservice_old";
+  in ''
+    runHook preInstall
+
+    mkdir -p $out/{bin,share/applications}
+    export ICAInstDir="$out/opt/citrix-icaclient"
+    export HOME=$(mktemp -d)
+
+    # Run upstream installer in the store-path.
+    sed -i -e 's,^ANSWER="",ANSWER="$INSTALLER_YES",g' -e 's,/bin/true,true,g' ./linuxx64/hinst
+    ${stdenv.shell} linuxx64/hinst CDROM "$(pwd)"
+
+    if [ -f "$ICAInstDir/util/setlog" ]; then
+      chmod +x "$ICAInstDir/util/setlog"
+      ln -sf "$ICAInstDir/util/setlog" "$out/bin/citrix-setlog"
+    fi
+    ${mkWrappers wrapLink toWrap}
+    ${mkWrappers wrap [ "PrimaryAuthManager" "ServiceRecord" "AuthManagerDaemon" "util/ctxwebhelper" ]}
+
+    ln -sf $ICAInstDir/util/storebrowse $out/bin/storebrowse
+
+    # As explained in https://wiki.archlinux.org/index.php/Citrix#Security_Certificates
+    echo "Expanding certificates..."
+    pushd "$ICAInstDir/keystore/cacerts"
+    awk 'BEGIN {c=0;} /BEGIN CERT/{c++} { print > "cert." c ".pem"}' \
+      < ${cacert}/etc/ssl/certs/ca-bundle.crt
+    popd
+
+    ${mkWrappers copyCert extraCerts}
+
+    # See https://developer-docs.citrix.com/projects/workspace-app-for-linux-oem-guide/en/latest/reference-information/#library-files
+    # Those files are fallbacks to support older libwekit.so and libjpeg.so
+    rm $out/opt/citrix-icaclient/lib/ctxjpeg_fb_8.so
+    rm $out/opt/citrix-icaclient/lib/UIDialogLibWebKit.so
+
+    # We support only Gstreamer 1.0
+    rm $ICAInstDir/util/{gst_aud_{play,read},gst_*0.10,libgstflatstm0.10.so}
+    ln -sf $ICAInstDir/util/gst_play1.0 $ICAInstDir/util/gst_play
+    ln -sf $ICAInstDir/util/gst_read1.0 $ICAInstDir/util/gst_read
+
+    echo "We arbitrarily set the timezone to UTC. No known consequences at this point."
+    echo UTC > "$ICAInstDir/timezone"
+
+    echo "Copy .desktop files."
+    cp $out/opt/citrix-icaclient/desktop/* $out/share/applications/
+
+    # We introduce a dependency on the source file so that it need not be redownloaded everytime
+    echo $src >> "$out/share/workspace_dependencies.pin"
+
+    runHook postInstall
+  '';
+
+  # Make sure that `autoPatchelfHook` is executed before
+  # running `ctx_rehash`.
+  dontAutoPatchelf = true;
+  postFixup = ''
+    autoPatchelf -- "$out"
+    $out/opt/citrix-icaclient/util/ctx_rehash
+  '';
+
+  meta = with lib; {
+    license = licenses.unfree;
+    description = "Citrix Workspace";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ ma27 ];
+    inherit homepage;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix
new file mode 100644
index 000000000000..abdd54f4af6e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/sources.nix
@@ -0,0 +1,58 @@
+{ stdenv, lib }:
+
+let
+  mkVersionInfo = _: { major, minor, patch, x64hash, x86hash, x64suffix, x86suffix, homepage }:
+    { inherit homepage;
+      version = "${major}.${minor}.${patch}.${if stdenv.is64bit then x64suffix else x86suffix}";
+      prefix = "linuxx${if stdenv.is64bit then "64" else "86"}";
+      hash = if stdenv.is64bit then x64hash else x86hash;
+    };
+
+  # Attribute-set with all actively supported versions of the Citrix workspace app
+  # for Linux.
+  #
+  # The latest versions can be found at https://www.citrix.com/de-de/downloads/workspace-app/linux/
+  supportedVersions = lib.mapAttrs mkVersionInfo {
+    "20.04.0" = {
+      major     = "20";
+      minor     = "04";
+      patch     = "0";
+      x64hash   = "E923592216F9541173846F932784E6C062CB09C9E8858219C7489607BF82A0FB";
+      x86hash   = "A2E2E1882723DA6796E68916B3BB2B44DD575A83DEB03CA90A262F6C81B1A53F";
+      x64suffix = "21";
+      x86suffix = "21";
+      homepage  = "https://www.citrix.com/de-de/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2004.html";
+    };
+
+    "20.06.0" = {
+      major     = "20";
+      minor     = "06";
+      patch     = "0";
+      x64hash   = "1kpfcfg95mpprlca6cccnjlsqbj3xvv77cn3fc5msd304nsi9x1v";
+      x86hash   = "1di29hrimbw3myjnf2nn26a14klidhdwvjqla6yxhwd3s6lil194";
+      x64suffix = "15";
+      x86suffix = "15";
+      homepage  = "https://www.citrix.com/de-de/downloads/workspace-app/legacy-workspace-app-for-linux/workspace-app-for-linux-2006.html";
+    };
+
+    "20.09.0" = {
+      major     = "20";
+      minor     = "9";
+      patch     = "0";
+      x64hash   = "15gjq1vk1y76c39p72xnam9h9rnr0632i4n11l6xbjnfnad8d4pr";
+      x86hash   = "1b4gdmnnpa61ydiv2fnmap8cnfhskrq6swcs6i1nqrp5zvvkqrv4";
+      x64suffix = "15";
+      x86suffix = "15";
+      homepage  = "https://www.citrix.com/de-de/downloads/workspace-app/linux/workspace-app-for-linux-latest.html";
+    };
+  };
+
+  # Retain attribute-names for abandoned versions of Citrix workspace to
+  # provide a meaningful error-message if it's attempted to use such an old one.
+  #
+  # The lifespans of Citrix products can be found here:
+  # https://www.citrix.com/support/product-lifecycle/milestones/receiver.html
+  unsupportedVersions = [ "19.6.0" "19.8.0" "19.10.0" "19.12.0" ];
+in {
+  inherit supportedVersions unsupportedVersions;
+}
diff --git a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/wrapper.nix b/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/wrapper.nix
deleted file mode 100644
index ea475ae6dbc9..000000000000
--- a/nixpkgs/pkgs/applications/networking/remote/citrix-workspace/wrapper.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ citrix_workspace, extraCerts ? [], symlinkJoin }:
-
-let
-
-  mkCertCopy = certPath:
-    "cp ${certPath} $out/opt/citrix-icaclient/keystore/cacerts/";
-
-in
-
-if builtins.length extraCerts == 0 then citrix_workspace else symlinkJoin {
-  name = "citrix-with-extra-certs-${citrix_workspace.version}";
-  paths = [ citrix_workspace ];
-
-  postBuild = ''
-    ${builtins.concatStringsSep "\n" (map mkCertCopy extraCerts)}
-
-    sed -i -E "s,-icaroot (.+citrix-icaclient),-icaroot $out/opt/citrix-icaclient," $out/bin/wfica
-  '';
-}
diff --git a/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix b/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix
index 414e9d1b9085..52f8decf170f 100644
--- a/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/freerdp/default.nix
@@ -17,13 +17,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "freerdp";
-  version = "2.1.1";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "FreeRDP";
     repo = "FreeRDP";
     rev = version;
-    sha256 = "1avfsx837rjfk50qv3xjccx2309phn04rq6imadqvqpfnyx4ma66";
+    sha256 = "02zlg5r704zbryx09a5rjjf7q137kj16i9qh25dw9q1y69ri619n";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/networking/remote/putty/default.nix b/nixpkgs/pkgs/applications/networking/remote/putty/default.nix
index 804a40a614c5..61e82726f353 100644
--- a/nixpkgs/pkgs/applications/networking/remote/putty/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/putty/default.nix
@@ -3,7 +3,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.73";
+  version = "0.74";
   pname = "putty";
 
   src = fetchurl {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
       "https://the.earth.li/~sgtatham/putty/${version}/${pname}-${version}.tar.gz"
       "ftp://ftp.wayne.edu/putty/putty-website-mirror/${version}/${pname}-${version}.tar.gz"
     ];
-    sha256 = "076z34jpik2dmlwxicvf1djjgnahcqv12rjhmb9yq6ml7x0bbc1x";
+    sha256 = "0zc43g8ycyf712cdrja4k8ih5s3agw1k0nq0jkifdn8xwn4d7mfx";
   };
 
   # glib-2.62 deprecations
diff --git a/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix b/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
index ee9ea6679273..feb707412468 100644
--- a/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/remmina/default.nix
@@ -13,13 +13,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "remmina";
-  version = "1.4.4";
+  version = "1.4.7";
 
   src = fetchFromGitLab {
     owner  = "Remmina";
     repo   = "Remmina";
     rev    = "v${version}";
-    sha256 = "0kc0akr5xvbq2bx3wsgf0hd8x5hjgshwrrzhwixp0584ydax89gv";
+    sha256 = "0h09f2amj7ab78fzil2w7cr22d21ad5mp1r2fa70w26g7ra3jzk9";
   };
 
   nativeBuildInputs = [ cmake ninja pkgconfig wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix b/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix
index dbb9d465cc7f..9c3ed826a2d5 100644
--- a/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/teamviewer/default.nix
@@ -6,11 +6,11 @@
 
 mkDerivation rec {
   pname = "teamviewer";
-  version = "15.2.2756";
+  version = "15.8.3";
 
   src = fetchurl {
     url = "https://dl.tvcdn.de/download/linux/version_15x/teamviewer_${version}_amd64.deb";
-    sha256 = "1g6a7yadvc6gc660m62yibj2hrj7bwy26z5ww0gk6rwqlz048i97";
+    sha256 = "1c947yxgs0mv5x6qvy40dypbbhhjbglma1pwl66z39gzg51n2dmc";
   };
 
   unpackPhase = ''
diff --git a/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix b/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix
index c72c7c6da8ab..0393a5bdeb83 100644
--- a/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/waypipe/default.nix
@@ -1,19 +1,19 @@
 { stdenv, fetchFromGitLab
-, meson, ninja, pkgconfig, scdoc
+, meson, ninja, pkg-config, scdoc
 , wayland, wayland-protocols, openssh
 , mesa, lz4, zstd, ffmpeg, libva
 }:
 
 stdenv.mkDerivation rec {
   pname = "waypipe-unstable";
-  version = "0.6.1";
+  version = "0.7.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "mstoeckl";
     repo = "waypipe";
     rev = "v${version}";
-    sha256 = "13kp5snkksli0sj5ldkgybcs1s865f0qdak2w8796xvy8dg9jda8";
+    sha256 = "0bkmibask7gfnwkn3fg3l6zaabp95n1zsdnz3dwng8j80a0kakyy";
   };
 
   postPatch = ''
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
       --replace "/usr/bin/ssh" "${openssh}/bin/ssh"
   '';
 
-  nativeBuildInputs = [ meson ninja pkgconfig scdoc ];
+  nativeBuildInputs = [ meson ninja pkg-config scdoc ];
 
   buildInputs = [
     wayland wayland-protocols
@@ -29,10 +29,6 @@ stdenv.mkDerivation rec {
     mesa lz4 zstd ffmpeg libva
   ];
 
-  enableParallelBuilding = true;
-
-  mesonFlags = [ "-Dwerror=false" ]; # TODO: Report warnings upstream
-
   meta = with stdenv.lib; {
     description = "A network proxy for Wayland clients (applications)";
     longDescription = ''
@@ -41,6 +37,7 @@ stdenv.mkDerivation rec {
       makes application forwarding similar to ssh -X feasible.
     '';
     homepage = "https://mstoeckl.com/notes/gsoc/blog.html";
+    changelog = "https://gitlab.freedesktop.org/mstoeckl/waypipe/-/releases#v${version}";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ primeos ];
diff --git a/nixpkgs/pkgs/applications/networking/remote/wayvnc/add-missing-librt.patch b/nixpkgs/pkgs/applications/networking/remote/wayvnc/add-missing-librt.patch
deleted file mode 100644
index e2d617bcc7ca..000000000000
--- a/nixpkgs/pkgs/applications/networking/remote/wayvnc/add-missing-librt.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/meson.build b/meson.build
-index cc6fa03..7c2b280 100644
---- a/meson.build
-+++ b/meson.build
-@@ -24,6 +24,7 @@ add_project_arguments(c_args, language: 'c')
- cc = meson.get_compiler('c')
- 
- libm = cc.find_library('m', required: false)
-+librt = cc.find_library('rt', required: false)
- 
- pixman = dependency('pixman-1')
- libuv = dependency('libuv')
-@@ -65,6 +66,7 @@ sources = [
- 
- dependencies = [
- 	libm,
-+	librt,
- 	pixman,
- 	libuv,
- 	egl,
diff --git a/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix b/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix
index 4ca6ae952580..32373e22b762 100644
--- a/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix
+++ b/nixpkgs/pkgs/applications/networking/remote/wayvnc/default.nix
@@ -1,27 +1,20 @@
 { stdenv, fetchFromGitHub, meson, pkg-config, ninja
-, pixman, libuv, libGL, libxkbcommon, wayland, neatvnc, libdrm, libX11
+, pixman, libxkbcommon, wayland, neatvnc, libdrm, libX11, aml
 }:
 
 stdenv.mkDerivation rec {
   pname = "wayvnc";
-  version = "0.1.2";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
     owner = "any1";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0aa12fkbwhzs0g2pqw1b27l33nn5dpbcvsf1z8h88kwsf9xdvb2r";
+    sha256 = "1ddcf8hrxhx4rcwvbjwa5j3ygiwca2dpw26wl37pb0q0jr81wylv";
   };
 
-  patches = [ ./add-missing-librt.patch ];
-
-  postPatch = ''
-    substituteInPlace meson.build \
-      --replace "version: '0.1.0'" "version: '${version}'"
-  '';
-
-  nativeBuildInputs = [ meson pkg-config ninja ];
-  buildInputs = [ pixman libuv libGL libxkbcommon wayland neatvnc libdrm libX11 ];
+  nativeBuildInputs = [ meson pkg-config ninja wayland ];
+  buildInputs = [ pixman libxkbcommon wayland neatvnc libdrm libX11 aml ];
 
   meta = with stdenv.lib; {
     description = "A VNC server for wlroots based Wayland compositors";
diff --git a/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix b/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix
index 9b06676b0179..fe75268c0ecb 100644
--- a/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix
+++ b/nixpkgs/pkgs/applications/networking/resilio-sync/default.nix
@@ -9,13 +9,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "resilio-sync";
-  version = "2.7.0";
+  version = "2.7.2";
 
   src = fetchurl {
     url = "https://download-cdn.resilio.com/${version}/linux-${arch}/resilio-sync_${arch}.tar.gz";
     sha256 = {
-      x86_64-linux = "17vw4kyggmi8phm91jx1skkd7vrdhbahibv6d6zm14q87r01a56f";
-      i686-linux   = "0yvy3lif2g4jchcp5q1r5b8ndj8009pcq5js7r0kl20bmmcmzklg";
+      x86_64-linux = "0gar5lzv1v4yqmypwqsjnfb64vffzn8mw9vnjr733fgf1pmr57hf";
+      i686-linux   = "1bws7r86h1vysjkhyvp2zk8yvxazmlczvhjlcayldskwq48iyv6w";
     }.${stdenv.hostPlatform.system};
   };
 
diff --git a/nixpkgs/pkgs/applications/networking/scaleft/default.nix b/nixpkgs/pkgs/applications/networking/scaleft/default.nix
index 991780bd8206..b1a754193ebf 100644
--- a/nixpkgs/pkgs/applications/networking/scaleft/default.nix
+++ b/nixpkgs/pkgs/applications/networking/scaleft/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "scaleft";
-  version = "1.41.0";
+  version = "1.45.4";
 
   src =
     fetchurl {
       url = "http://pkg.scaleft.com/rpm/scaleft-client-tools-${version}-1.x86_64.rpm";
-      sha256 = "a9a2f60cc85167a1098f44b35efd755b8155f0b88da8572e96ace767e7933c4d";
+      sha256 = "1yskybjba9ljy1wazddgrm7a4cc72i1xbk7sxnjpcq4hdy3b50l0";
     };
 
   nativeBuildInputs = [ patchelf rpmextract ];
diff --git a/nixpkgs/pkgs/applications/networking/seafile-client/default.nix b/nixpkgs/pkgs/applications/networking/seafile-client/default.nix
index 0893ee21a558..69b7b432b0a0 100644
--- a/nixpkgs/pkgs/applications/networking/seafile-client/default.nix
+++ b/nixpkgs/pkgs/applications/networking/seafile-client/default.nix
@@ -4,13 +4,13 @@
 
 mkDerivation rec {
   pname = "seafile-client";
-  version = "7.0.7";
+  version = "7.0.9";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seafile-client";
     rev = "v${version}";
-    sha256 = "0szdyprljyckmbrw5sypizs22j96q84ak6nyidyr2j6gf4grh9mg";
+    sha256 = "0pcn6lfzma2hvpwsp9q0002wvym7zabpp8fvq29l101gzirn79m9";
   };
 
   nativeBuildInputs = [ pkgconfig cmake ];
diff --git a/nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix
index 4af8e526cd2c..8489b414cbc5 100644
--- a/nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sniffers/ettercap/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ettercap";
-  version = "0.8.3";
+  version = "0.8.3.1";
 
   src = fetchFromGitHub {
     owner = "Ettercap";
     repo = "ettercap";
     rev = "v${version}";
-    sha256 = "0m40bmbrv9a8qlg54z3b5f8r541gl9vah5hm0bbqcgyyljpg39bz";
+    sha256 = "1sdf1ssa81ib6k0mc5m2jzbjl4jd1yv6ahv5dwx2x9w4b2pyqg1c";
   };
 
   strictDeps = true;
diff --git a/nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix
index 93ccf254a3a4..61d149ba5b8e 100644
--- a/nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sniffers/kismet/default.nix
@@ -10,11 +10,11 @@ assert !withPython;
 
 stdenv.mkDerivation rec {
   pname = "kismet";
-  version = "2020-04-R2";
+  version = "2020-09-R2";
 
   src = fetchurl {
     url = "https://www.kismetwireless.net/code/${pname}-${version}.tar.xz";
-    sha256 = "0hxmaln0y6bk9m1rshr4swmg0sqy3ic693vfk8haj7f5gnph96cm";
+    sha256 = "1n6y6sgqf50bng8n0mhs2r1w0ak14mv654sqay72a78wh2s7ywzg";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
index d025222b0100..e9f676eae558 100644
--- a/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sniffers/wireshark/default.nix
@@ -10,7 +10,7 @@ assert withQt  -> qt5  != null;
 with stdenv.lib;
 
 let
-  version = "3.2.4";
+  version = "3.2.7";
   variant = if withQt then "qt" else "cli";
   pcap = libpcap.override { withBluez = stdenv.isLinux; };
 
@@ -21,7 +21,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.wireshark.org/download/src/all-versions/wireshark-${version}.tar.xz";
-    sha256 = "1amqgn94g6h6cfnsccm2zb4c73pfv1qmzi1i6h1hnbcyhhg4czfi";
+    sha256 = "1nkhglzxj05hwhgzrgan4glv0z67rmasf9djx1dmqicwdnw2z0xy";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix b/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix
index db33e7e6bb21..7bc5563d4709 100644
--- a/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix
+++ b/nixpkgs/pkgs/applications/networking/ssb-patchwork/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "ssb-patchwork";
-  version = "3.17.7";
+  version = "3.18.0";
   name = "Patchwork-${version}";
 
   src = fetchurl {
     url = "https://github.com/ssbc/patchwork/releases/download/v${version}/${name}.AppImage";
-    sha256 = "1xj2aqy7daf4r3ypch6hkvk1s0jnx70qwh0p63c7rzm16vh8kb2f";
+    sha256 = "1sb9q1qj5mj4cf8d9dsc498mg8a1ri2y0p9qbh44i8ykby8jkgjc";
   };
 
   binary = appimageTools.wrapType2 {
@@ -40,14 +40,14 @@ in
       cp ${desktopItem}/share/applications/* $out/share/applications/
     '';
 
-  meta = with lib; {
-    description = "A decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB)";
-    longDescription = ''
-      sea-slang for gossip - a scuttlebutt is basically a watercooler on a ship.
-    '';
-    homepage = "https://www.scuttlebutt.nz/";
-    license = licenses.agpl3;
-    maintainers = with maintainers; [ asymmetric ninjatrappeur thedavidmeister ];
-    platforms = [ "x86_64-linux" ];
-  };
-}
+    meta = with lib; {
+      description = "A decentralized messaging and sharing app built on top of Secure Scuttlebutt (SSB)";
+      longDescription = ''
+        sea-slang for gossip - a scuttlebutt is basically a watercooler on a ship.
+      '';
+      homepage = "https://www.scuttlebutt.nz/";
+      license = licenses.agpl3;
+      maintainers = with maintainers; [ asymmetric ninjatrappeur ];
+      platforms = [ "x86_64-linux" ];
+    };
+  }
diff --git a/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
index b2ad47e9b4be..bd68531db190 100644
--- a/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
+++ b/nixpkgs/pkgs/applications/networking/sync/rclone/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, buildPackages, installShellFiles }:
+{ stdenv, buildGoModule, fetchFromGitHub, buildPackages, installShellFiles }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "rclone";
-  version = "1.52.1";
+  version = "1.53.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1v91c3wydpixi0p0afclp4baxchigy3czlm1mq9hn6cw973z6spf";
+    sha256 = "1yi6n5ip680ydqhz8fnd0igr8dy7zzhpx37mdgahsfac7cwf6k0q";
   };
 
-  goPackagePath = "github.com/rclone/rclone";
+  vendorSha256 = "1l4iz31k1pylvf0zrp4nhxna70s1ma4981x6q1s3dhszjxil5c88";
 
   subPackages = [ "." ];
 
@@ -19,6 +19,8 @@ buildGoPackage rec {
 
   nativeBuildInputs = [ installShellFiles ];
 
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/rclone/rclone/fs.Version=${version}" ];
+
   postInstall =
     let
       rcloneBin =
@@ -26,19 +28,18 @@ buildGoPackage rec {
         then "$out"
         else stdenv.lib.getBin buildPackages.rclone;
     in
-      ''
-        installManPage $src/rclone.1
-        for shell in bash zsh fish; do
-          ${rcloneBin}/bin/rclone genautocomplete $shell rclone.$shell
-          installShellCompletion rclone.$shell
-        done
-      '';
+    ''
+      installManPage rclone.1
+      for shell in bash zsh fish; do
+        ${rcloneBin}/bin/rclone genautocomplete $shell rclone.$shell
+        installShellCompletion rclone.$shell
+      done
+    '';
 
   meta = with stdenv.lib; {
     description = "Command line program to sync files and directories to and from major cloud storage";
     homepage = "https://rclone.org";
     license = licenses.mit;
-    maintainers = with maintainers; [ danielfullmer ];
-    platforms = platforms.all;
+    maintainers = with maintainers; [ danielfullmer marsam ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/networking/syncplay/default.nix b/nixpkgs/pkgs/applications/networking/syncplay/default.nix
index 0613a5c5bcd9..ac242eb9dc9f 100644
--- a/nixpkgs/pkgs/applications/networking/syncplay/default.nix
+++ b/nixpkgs/pkgs/applications/networking/syncplay/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonApplication rec {
   pname = "syncplay";
-  version = "1.6.4a";
+  version = "1.6.5";
 
   format = "other";
 
@@ -10,7 +10,7 @@ buildPythonApplication rec {
     owner = "Syncplay";
     repo = "syncplay";
     rev = "v${version}";
-    sha256 = "0zz4a3vzfg808z1qkqz31z4818wzpfa2lika7wl0jgpmw4zi85ix";
+    sha256 = "107dgsrjv95ww6gj77q89dirl604b2ljlpjg79gffm9c4gkmjj2m";
   };
 
   propagatedBuildInputs = [ pyside2 shiboken2 twisted certifi ] ++ twisted.extras.tls;
diff --git a/nixpkgs/pkgs/applications/networking/syncthing/default.nix b/nixpkgs/pkgs/applications/networking/syncthing/default.nix
index 9d5ce848e333..7baff125bac0 100644
--- a/nixpkgs/pkgs/applications/networking/syncthing/default.nix
+++ b/nixpkgs/pkgs/applications/networking/syncthing/default.nix
@@ -3,17 +3,19 @@
 let
   common = { stname, target, postInstall ? "" }:
     buildGoModule rec {
-      version = "1.6.1";
+      version = "1.9.0";
       name = "${stname}-${version}";
 
       src = fetchFromGitHub {
         owner  = "syncthing";
         repo   = "syncthing";
         rev    = "v${version}";
-        sha256 = "1lhbx1mh2hdjjwks3s17i8y9vbl3fnapc1czaf42pp7nf8245q3j";
+        sha256 = "1p5wmcmv72hbd3dap9hqv4ryarsj8ljn833x9mcfgh8ff4k25qwr";
       };
 
-      vendorSha256 = "12g63a6jsshzqjgww792xmvybhfbkjx5aza4xnyljjsp453iky7k";
+      vendorSha256 = "1mwjfv0l2n21srxsh8w18my2j8diim91jlg00ailiq9fwnvxxn8c";
+
+      doCheck = false;
 
       patches = [
         ./add-stcli-target.patch
@@ -41,7 +43,7 @@ let
       };
 
       meta = with lib; {
-        homepage = "https://www.syncthing.net/";
+        homepage = "https://syncthing.net/";
         description = "Open Source Continuous File Synchronization";
         license = licenses.mpl20;
         maintainers = with maintainers; [ pshendry joko peterhoeg andrew-d ];
diff --git a/nixpkgs/pkgs/applications/networking/termius/default.nix b/nixpkgs/pkgs/applications/networking/termius/default.nix
index a890aefe8cd6..9ce2f1fcfd16 100644
--- a/nixpkgs/pkgs/applications/networking/termius/default.nix
+++ b/nixpkgs/pkgs/applications/networking/termius/default.nix
@@ -5,17 +5,18 @@
 , makeDesktopItem
 , makeWrapper
 , stdenv
+, lib
 , udev
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "termius";
-  version = "5.10.1";
+  version = "6.1.1";
 
   src = fetchurl {
     url = "https://deb.termius.com/pool/main/t/termius-app/termius-app_${version}_amd64.deb";
-    sha256 = "04zh0zzyp906lf6mz3xzxybn2a55rv3vvrj0m12gnrb8kjb3pk5s";
+    sha256 = "1z3ry9jjiyqn41h38hyrx27c2cz8j39qa6i6f0f79p6pqfv93p70";
   };
 
   desktopItem = makeDesktopItem {
@@ -50,7 +51,7 @@ stdenv.mkDerivation rec {
     cp "${desktopItem}/share/applications/"* "$out/share/applications"
   '';
 
-  runtimeDependencies = [ udev.lib ];
+  runtimeDependencies = [ (lib.getLib udev) ];
 
   postFixup = ''
     makeWrapper $out/opt/Termius/termius-app $out/bin/termius-app \
diff --git a/nixpkgs/pkgs/applications/networking/utahfs/default.nix b/nixpkgs/pkgs/applications/networking/utahfs/default.nix
new file mode 100644
index 000000000000..b6bae284dcd3
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/utahfs/default.nix
@@ -0,0 +1,23 @@
+{ buildGoPackage, lib, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "utahfs";
+  version = "1.0";
+  src = fetchFromGitHub {
+    owner = "cloudflare";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1hpwch5fsqlxwpk5afawa1k5s0bx5c1cw0hvdllp7257lgly19fb";
+  };
+
+  goPackagePath = "github.com/cloudflare/utahfs";
+
+  meta = with lib; {
+    homepage = "https://github.com/cloudflare/utahfs";
+    description =
+      "Encrypted storage system that provides a user-friendly FUSE drive backed by cloud storage";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.snglth ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix b/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix
index 9887e34d7354..c0591f24c96d 100644
--- a/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix
+++ b/nixpkgs/pkgs/applications/networking/weather/meteo/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitLab, vala, python3, pkgconfig, meson, ninja, gtk3
-, json-glib, libsoup, webkitgtk, geocode-glib
+, json-glib, libsoup, webkitgtk, geocode-glib, nix-update-script
 , libappindicator, desktop-file-utils, appstream, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
@@ -38,6 +38,13 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+
   meta = with stdenv.lib; {
     description = "Know the forecast of the next hours & days";
     homepage = "https://gitlab.com/bitseater/meteo";
diff --git a/nixpkgs/pkgs/applications/networking/websocketd/default.nix b/nixpkgs/pkgs/applications/networking/websocketd/default.nix
index 17f42b5ece4f..c287abb0de24 100644
--- a/nixpkgs/pkgs/applications/networking/websocketd/default.nix
+++ b/nixpkgs/pkgs/applications/networking/websocketd/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "05k31z4h3b327mh940zh52im4xfk7kf5phb8b7xp4l9bgckhz4lb";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Turn any program that uses STDIN/STDOUT into a WebSocket server";
     homepage = "http://websocketd.com/";
     maintainers = [ maintainers.bjornfor ];
     license = licenses.bsd2;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/networking/wg-bond/default.nix b/nixpkgs/pkgs/applications/networking/wg-bond/default.nix
new file mode 100644
index 000000000000..32ffbde400b1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/networking/wg-bond/default.nix
@@ -0,0 +1,29 @@
+{ pkgs, lib, rustPlatform, fetchFromGitLab, wireguard-tools, makeWrapper }:
+rustPlatform.buildRustPackage rec {
+  pname = "wg-bond";
+  version = "0.2.0";
+
+  src = fetchFromGitLab {
+    owner = "cab404";
+    repo = "wg-bond";
+    rev = "v${version}";
+    hash = "sha256:04k0maxy39k7qzcsqsv1byddsmjszmnyjffrf22nzbvml83p3l0y";
+  };
+
+  cargoSha256 = "1v2az0v6l8mqryvq3898hm7bpvqdd2c4kpv6ck7932jfjyna512k";
+
+  buildInputs = [ makeWrapper ];
+  postInstall = ''
+    wrapProgram $out/bin/wg-bond --set PATH ${
+      lib.makeBinPath [ wireguard-tools ]
+    }
+  '';
+
+  meta = with lib; {
+    description = "Wireguard configuration manager";
+    homepage = "https://gitlab.com/cab404/wg-bond";
+    changelog = "https://gitlab.com/cab404/wg-bond/-/releases#v${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ cab404 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/aesop/default.nix b/nixpkgs/pkgs/applications/office/aesop/default.nix
index 4f8c115600af..0e76c101545b 100644
--- a/nixpkgs/pkgs/applications/office/aesop/default.nix
+++ b/nixpkgs/pkgs/applications/office/aesop/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, vala, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3, gtk3
+{ stdenv, vala, fetchFromGitHub, nix-update-script, pantheon, pkgconfig, meson, ninja, python3, gtk3
 , desktop-file-utils, json-glib, libsoup, libgee, poppler, wrapGAppsHook, fetchpatch }:
 
 stdenv.mkDerivation rec {
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/office/agenda/default.nix b/nixpkgs/pkgs/applications/office/agenda/default.nix
index f7028ad67659..32cb2988ae30 100644
--- a/nixpkgs/pkgs/applications/office/agenda/default.nix
+++ b/nixpkgs/pkgs/applications/office/agenda/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -50,7 +51,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/office/atlassian-cli/default.nix b/nixpkgs/pkgs/applications/office/atlassian-cli/default.nix
index 22eee857b208..3cc62aa9dc18 100644
--- a/nixpkgs/pkgs/applications/office/atlassian-cli/default.nix
+++ b/nixpkgs/pkgs/applications/office/atlassian-cli/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "atlassian-cli";
-  version = "9.2.0";
+  version = "9.3.0";
   
   src = fetchzip {
     url  = "https://bobswift.atlassian.net/wiki/download/attachments/16285777/${pname}-${version}-distribution.zip";
-    sha256  = "0rdnbx3zfz3lpgka7bb8jzapkr81l2yvgsbmn8hrhva5k61xwx3d";
+    sha256  = "1gsyxkkx04vhp8ii0xbln5h8wa8x3dj6xhh2fyjs4z0bil4hlf06";
     extraPostFetch = "chmod go-w $out";
   };
   
diff --git a/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix b/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix
new file mode 100644
index 000000000000..cd15d3723d11
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/beamerpresenter/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, mkDerivation, fetchFromGitHub, installShellFiles,
+  qmake, qtbase, poppler, qtmultimedia }:
+
+mkDerivation rec {
+  pname = "beamerpresenter";
+  version = "0.1.2";
+
+  src = fetchFromGitHub {
+    owner = "stiglers-eponym";
+    repo = "BeamerPresenter";
+    rev = "v${version}";
+    sha256 = "12xngnhwa3haf0pdxczgvhq1j20zbsr30y2bfn9qwmlhbwklhkj2";
+  };
+
+  nativeBuildInputs = [ qmake installShellFiles ];
+  buildInputs = [ qtbase qtmultimedia poppler ];
+
+  postPatch = ''
+    # Fix location of poppler-*.h
+    shopt -s globstar
+    for f in **/*.{h,cpp}; do
+      substituteInPlace $f --replace '#include <poppler-' '#include <poppler/qt5/poppler-'
+    done
+  '';
+
+  installPhase = ''
+    install -m755 beamerpresenter -Dt $out/bin/
+    install -m644 src/icons/beamerpresenter.svg -Dt $out/share/icons/hicolor/scalable/apps/
+    install -m644 share/applications/beamerpresenter.desktop -Dt $out/share/applications/
+    installManPage man/*.{1,5}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simple dual screen pdf presentation software";
+    homepage = "https://github.com/stiglers-eponym/BeamerPresenter";
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ pacien ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/calligra/default.nix b/nixpkgs/pkgs/applications/office/calligra/default.nix
index 6915be9b6d64..40c4b77f1b6b 100644
--- a/nixpkgs/pkgs/applications/office/calligra/default.nix
+++ b/nixpkgs/pkgs/applications/office/calligra/default.nix
@@ -7,7 +7,7 @@
   knotifications, knotifyconfig, kparts, ktextwidgets, kwallet, kwidgetsaddons,
   kwindowsystem, kxmlgui, sonnet, threadweaver,
   kcontacts, akonadi, akonadi-calendar, akonadi-contacts,
-  eigen, git, gsl, ilmbase, kproperty, kreport, lcms2, marble, libgit2, libodfgen,
+  eigen, git, gsl, ilmbase, kproperty, kreport, lcms2, marble, pcre, libgit2, libodfgen,
   librevenge, libvisio, libwpd, libwpg, libwps, okular, openexr, openjpeg, phonon,
   poppler, pstoedit, qca-qt5, vc
 # TODO: package Spnav, m2mml LibEtonyek, Libqgit2
@@ -15,18 +15,14 @@
 
 mkDerivation rec {
   pname = "calligra";
-  version = "3.1.0";
+  version = "3.2.0";
 
   src = fetchurl {
     url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "0w782k0hprpb6viixnqz34sp0z5csv3prdby46z22qqkcipcs638";
+    sha256 = "sha256-flViKGZdeeZ8Bi/RFz1mdvCw187v3W4bC8+aeB6nCVE=";
   };
 
-  patches = [ ./qt5_11.patch ];
-
-  enableParallelBuilding = true;
-
-  nativeBuildInputs = [ extra-cmake-modules kdoctools makeWrapper ];
+  nativeBuildInputs = [ extra-cmake-modules kdoctools ];
 
   buildInputs = [
     boost qtwebkit qtx11extras shared-mime-info
@@ -35,7 +31,7 @@ mkDerivation rec {
     kjobwidgets kcmutils kdelibs4support kio kross knotifications knotifyconfig kparts
     ktextwidgets kwallet kwidgetsaddons kwindowsystem kxmlgui sonnet threadweaver
     kcontacts akonadi akonadi-calendar akonadi-contacts
-    eigen git gsl ilmbase kproperty kreport lcms2 marble libgit2 libodfgen librevenge
+    eigen git gsl ilmbase kproperty kreport lcms2 marble pcre libgit2 libodfgen librevenge
     libvisio libwpd libwpg libwps okular openexr openjpeg phonon poppler qca-qt5 vc
   ];
 
@@ -43,13 +39,10 @@ mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = "-I${ilmbase.dev}/include/OpenEXR";
 
-  postInstall = ''
-    for i in $out/bin/*; do
-      wrapProgram $i \
-        --prefix PATH ':' "${pstoedit.out}/bin" \
-        --prefix XDG_DATA_DIRS ':' "${breeze-icons}/share"
-    done
-  '';
+  qtWrapperArgs = [
+    "--prefix PATH : ${lib.getBin pstoedit}/bin"
+    "--prefix XDG_DATA_DIRS : ${breeze-icons}/share"
+  ];
 
   meta = with lib; {
     description = "A suite of productivity applications";
@@ -64,7 +57,5 @@ mkDerivation rec {
     maintainers = with maintainers; [ phreedom ebzzry zraexy ];
     platforms = platforms.linux;
     license = with licenses; [ gpl2 lgpl2 ];
-    hydraPlatforms = [];
-    broken = true; # fails to start, kde home not found
   };
 }
diff --git a/nixpkgs/pkgs/applications/office/elementary-planner/default.nix b/nixpkgs/pkgs/applications/office/elementary-planner/default.nix
index 28a470162cef..c1d459a2df58 100644
--- a/nixpkgs/pkgs/applications/office/elementary-planner/default.nix
+++ b/nixpkgs/pkgs/applications/office/elementary-planner/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-planner";
-  version = "2.3.5";
+  version = "2.4.6";
 
   src = fetchFromGitHub {
     owner = "alainm23";
     repo = "planner";
     rev = version;
-    sha256 = "15d51sqb3k59jjishsw1fq5ib50jmhlk194y3nga329damfv8bmy";
+    sha256 = "0z0997yq809wbsk3w21xv4fcrgqcb958qdlksf4rhzhfnwbiii6y";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/office/envelope/default.nix b/nixpkgs/pkgs/applications/office/envelope/default.nix
index 2a2f55a27a40..450b52bc0ca1 100644
--- a/nixpkgs/pkgs/applications/office/envelope/default.nix
+++ b/nixpkgs/pkgs/applications/office/envelope/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , fetchpatch
 , meson
 , ninja
@@ -65,7 +66,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/office/espanso/default.nix b/nixpkgs/pkgs/applications/office/espanso/default.nix
new file mode 100644
index 000000000000..86a2c961194e
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/espanso/default.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+, pkgconfig
+, extra-cmake-modules
+, libX11
+, libXi
+, libXtst
+, libnotify
+, openssl
+, xclip
+, xdotool
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "espanso";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = "federico-terzi";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1yspycgmg7vwf4d86r6n24lvgn14aq73fl8sn00shxndramp46ib";
+  };
+
+  cargoSha256 = "0g0xf8j4yjayl7a5sqxm3piiif1hc7ws3i7q8vi7dk8nk609pbxr";
+
+  nativeBuildInputs = [
+    extra-cmake-modules
+    pkgconfig
+  ];
+
+  buildInputs = [
+    libX11
+    libXtst
+    libXi
+    libnotify
+    openssl
+    xdotool
+  ];
+
+  # Some tests require networking
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Cross-platform Text Expander written in Rust";
+    homepage = "https://espanso.org";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ kimat ];
+
+    longDescription = ''
+      Espanso detects when you type a keyword and replaces it while you're typing.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/fava/default.nix b/nixpkgs/pkgs/applications/office/fava/default.nix
index 8e1bb0d76d92..b33d978ee0b9 100644
--- a/nixpkgs/pkgs/applications/office/fava/default.nix
+++ b/nixpkgs/pkgs/applications/office/fava/default.nix
@@ -5,16 +5,16 @@ let
 in
 buildPythonApplication rec {
   pname = "fava";
-  version = "1.14";
+  version = "1.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "181ypq2p7aaq2b76s55hxxbm1hykzf45mjjgm500h4dsaa167dqy";
+    sha256 = "037fhimfjiqay28wg7hd5sm7r0935ynw9d905iszn965ihr1qsgz";
   };
 
   checkInputs = [ python3.pkgs.pytest ];
   propagatedBuildInputs = with python3.pkgs;
-    [ 
+    [
       Babel
       cheroot
       flaskbabel
@@ -30,8 +30,9 @@ buildPythonApplication rec {
     ];
 
   # CLI test expects fava on $PATH.  Not sure why static_url fails.
+  # the entry_slices and render_entries requires other files to pass
   checkPhase = ''
-    py.test tests -k 'not cli and not static_url'
+    py.test tests -k 'not cli and not static_url and not entry_slice and not render_entries'
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/applications/office/flexibee/default.nix b/nixpkgs/pkgs/applications/office/flexibee/default.nix
index c215b9ef637d..f33eb98a48b4 100644
--- a/nixpkgs/pkgs/applications/office/flexibee/default.nix
+++ b/nixpkgs/pkgs/applications/office/flexibee/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, makeWrapper, jre }:
 
 let
-  version = "2019.3.1.3";
+  version = "2020.2.3.1";
   majorVersion = builtins.substring 0 6 version;
 in
 
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://download.flexibee.eu/download/${majorVersion}/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0jfj0vmrwa05ga4rhqn0sapad06mq0pampmkr75vail2289zkga2";
+    sha256 = "05wzg7f6mzz7r6azzb8k2g5fakkqh6762y4q9qkmrzbixvxh4lz9";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/office/gnumeric/default.nix b/nixpkgs/pkgs/applications/office/gnumeric/default.nix
index 40351ba64a18..b0609863c5ad 100644
--- a/nixpkgs/pkgs/applications/office/gnumeric/default.nix
+++ b/nixpkgs/pkgs/applications/office/gnumeric/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, intltool, perlPackages
+{ stdenv, fetchurl, pkg-config, intltool, perlPackages
 , goffice, gnome3, wrapGAppsHook, gtk3, bison, python3Packages
 , itstool
 }:
@@ -7,16 +7,16 @@ let
   inherit (python3Packages) python pygobject3;
 in stdenv.mkDerivation rec {
   pname = "gnumeric";
-  version = "1.12.47";
+  version = "1.12.48";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1khrf72kiq50y8b5prbj2207k9shn36h2b2i588cc4wa28s9y5a0";
+    sha256 = "14556b0vyxdvdwjlin0rv7jk0vq4nplbmvp9j89bhkfk84xf7k2p";
   };
 
   configureFlags = [ "--disable-component" ];
 
-  nativeBuildInputs = [ pkgconfig intltool bison itstool wrapGAppsHook ];
+  nativeBuildInputs = [ pkg-config intltool bison itstool wrapGAppsHook ];
 
   # ToDo: optional libgda, introspection?
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/office/gtg/default.nix b/nixpkgs/pkgs/applications/office/gtg/default.nix
new file mode 100644
index 000000000000..9fccd574eb14
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/gtg/default.nix
@@ -0,0 +1,75 @@
+{ stdenv
+, fetchFromGitHub
+, meson
+, python3Packages
+, ninja
+, gtk3
+, wrapGAppsHook
+, glib
+, itstool
+, gettext
+, pango
+, gdk-pixbuf
+, gobject-introspection
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "gtg";
+  version = "unstable-2020-09-16";
+
+  src = fetchFromGitHub {
+    owner = "getting-things-gnome";
+    repo = "gtg";
+    rev = "1be991c6d7f7b2e4b8ac16f82e8a07f9dce4272f";
+    sha256 = "1f5acpjwnp08c78dds7xm22qjzcfnx2qs121yvm3rswkh27s4n23";
+  };
+
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    itstool
+    gettext
+    wrapGAppsHook
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    pango
+    gdk-pixbuf
+  ];
+
+  propagatedBuildInputs = with python3Packages; [
+    pycairo
+    pygobject3
+    lxml
+    dbus-python
+    gst-python
+    liblarch
+  ];
+
+  checkInputs = with python3Packages; [
+    nose
+    mock
+  ];
+
+  format = "other";
+  strictDeps = false; # gobject-introspection does not run with strictDeps (https://github.com/NixOS/nixpkgs/issues/56943)
+
+  checkPhase = "python3 ../run-tests";
+
+  meta = with stdenv.lib; {
+    description = " A personal tasks and TODO-list items organizer.";
+    longDescription = ''
+      "Getting Things GNOME" (GTG) is a personal tasks and ToDo list organizer inspired by the "Getting Things Done" (GTD) methodology.
+      GTG is intended to help you track everything you need to do and need to know, from small tasks to large projects.
+    '';
+    homepage = "https://wiki.gnome.org/Apps/GTG";
+    downloadPage = "https://github.com/getting-things-gnome/gtg/releases";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ oyren ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/homebank/default.nix b/nixpkgs/pkgs/applications/office/homebank/default.nix
index 1f60d7df9277..dcda1c41e3c6 100644
--- a/nixpkgs/pkgs/applications/office/homebank/default.nix
+++ b/nixpkgs/pkgs/applications/office/homebank/default.nix
@@ -2,10 +2,10 @@
 , libsoup, gnome3 }:
 
 stdenv.mkDerivation rec {
-  name = "homebank-5.4.2";
+  name = "homebank-5.4.3";
   src = fetchurl {
     url = "http://homebank.free.fr/public/${name}.tar.gz";
-    sha256 = "0bkjvd819kw9cwmr3macggbg8yil3yc8v2za8pjrl6g746s89kn6";
+    sha256 = "02wd569viwy6ncy0144z9nxr3zmpl4shkqhz7zzwyky4gknxf8lj";
   };
 
   nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/office/jabref/default.nix b/nixpkgs/pkgs/applications/office/jabref/default.nix
index 01ba190cf31f..7ab53b19ce04 100644
--- a/nixpkgs/pkgs/applications/office/jabref/default.nix
+++ b/nixpkgs/pkgs/applications/office/jabref/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     name = "jabref";
     desktopName = "JabRef";
     genericName = "Bibliography manager";
-    categories = "Application;Office;";
+    categories = "Office;";
     icon = "jabref";
     exec = "jabref";
   };
diff --git a/nixpkgs/pkgs/applications/office/khronos/default.nix b/nixpkgs/pkgs/applications/office/khronos/default.nix
index 1962528f6b68..b5cb94cda9b2 100644
--- a/nixpkgs/pkgs/applications/office/khronos/default.nix
+++ b/nixpkgs/pkgs/applications/office/khronos/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , vala
@@ -49,7 +50,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/office/ledger/default.nix b/nixpkgs/pkgs/applications/office/ledger/default.nix
index 6ac092f27e2b..543545de2631 100644
--- a/nixpkgs/pkgs/applications/office/ledger/default.nix
+++ b/nixpkgs/pkgs/applications/office/ledger/default.nix
@@ -1,37 +1,44 @@
-{ stdenv, fetchFromGitHub, cmake, boost, gmp, mpfr, libedit, python
+{ stdenv, lib, fetchFromGitHub, cmake, boost, gmp, mpfr, libedit, python
 , texinfo, gnused, usePython ? true }:
 
 stdenv.mkDerivation rec {
   pname = "ledger";
-  version = "3.1.3";
+  version = "3.2.1";
 
   src = fetchFromGitHub {
     owner  = "ledger";
     repo   = "ledger";
     rev    = "v${version}";
-    sha256 = "0bfnrqrd6wqgsngfpqi30xh6yy86pwl25iwzrqy44q31r0zl4mm3";
+    sha256 = "0x6jxwss3wwzbzlwmnwb8yzjk8f9wfawif4f1b74z2qg6hc4r7f6";
   };
 
+  outputs = [ "out" "dev" ];
+
   buildInputs = [
     (boost.override { enablePython = usePython; })
-    gmp mpfr libedit python texinfo gnused
+    gmp mpfr libedit python gnused
   ];
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake texinfo ];
 
   enableParallelBuilding = true;
 
   cmakeFlags = [
     "-DCMAKE_INSTALL_LIBDIR=lib"
     "-DBUILD_DOCS:BOOL=ON"
-    (stdenv.lib.optionalString usePython "-DUSE_PYTHON=true")
-   ];
+    (lib.optionalString usePython "-DUSE_PYTHON=true")
+  ];
 
-  postBuild = ''
-    make doc
+  # by default, it will query the python interpreter for it's sitepackages location
+  # however, that would write to a different nixstore path, pass our own sitePackages location
+  prePatch = lib.optionalString usePython ''
+    substituteInPlace src/CMakeLists.txt \
+      --replace 'DESTINATION ''${Python_SITEARCH}' 'DESTINATION "${python.sitePackages}"'
   '';
 
-  meta = with stdenv.lib; {
+  installTargets = [ "doc" "install" ];
+
+  meta = with lib; {
     homepage = "https://ledger-cli.org/";
     description = "A double-entry accounting system with a command-line reporting interface";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/default.nix b/nixpkgs/pkgs/applications/office/libreoffice/default.nix
index 66e12b221734..111e50b7d454 100644
--- a/nixpkgs/pkgs/applications/office/libreoffice/default.nix
+++ b/nixpkgs/pkgs/applications/office/libreoffice/default.nix
@@ -13,7 +13,7 @@
 , librevenge, libe-book, libmwaw, glm, glew, gst_all_1
 , gdb, commonsLogging, librdf_rasqal, wrapGAppsHook
 , gnome3, glib, ncurses, epoxy, gpgme
-, langs ? [ "ca" "cs" "de" "en-GB" "en-US" "eo" "es" "fr" "hu" "it" "ja" "nl" "pl" "pt" "pt-BR" "ru" "sl" "zh-CN" ]
+, langs ? [ "ca" "cs" "da" "de" "en-GB" "en-US" "eo" "es" "fr" "hu" "it" "ja" "nl" "pl" "pt" "pt-BR" "ro" "ru" "sl" "zh-CN" ]
 , withHelp ? true
 , kdeIntegration ? false, mkDerivation ? null, qtbase ? null, qtx11extras ? null
 , ki18n ? null, kconfig ? null, kcoreaddons ? null, kio ? null, kwindowsystem ? null
@@ -61,15 +61,12 @@ in (mkDrv rec {
   # of rasqal/rasqal.h
   NIX_CFLAGS_COMPILE = [
     "-I${librdf_rasqal}/include/rasqal"
-  ] ++ lib.optional stdenv.isx86_64 "-mno-fma";
+  ] ++ lib.optionals stdenv.isx86_64 [ "-mno-fma" "-mno-avx" ]
+  # https://bugs.documentfoundation.org/show_bug.cgi?id=78174#c10
+  ++ [ "-fno-visibility-inlines-hidden" ];
 
   patches = [
     ./xdg-open-brief.patch
-    (fetchpatch {
-      url = "https://git.pld-linux.org/gitweb.cgi?p=packages/libreoffice.git;a=blob_plain;f=poppler-0.86.patch;h=76b8356d5f22ef537a83b0f9b0debab591f152fe;hb=a2737a61353e305a9ee69640fb20d4582c218008";
-      name = "poppler-0.86.patch";
-      sha256 = "0q6k4l8imgp8ailcv0qx5l83afyw44hah24fi7gjrm9xgv5sbb8j";
-    })
   ];
 
   tarballPath = "external/tarballs";
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix b/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix
index f4b14870eb79..16d754a18a14 100644
--- a/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix
+++ b/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/download.nix
@@ -28,11 +28,11 @@
     md5name = "976a12a59bc286d634a21d7be0841cc74289ea9077aa1af46be19d1a6e844c19-apr-util-1.5.4.tar.gz";
   }
   {
-    name = "boost_1_69_0.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/boost_1_69_0.tar.bz2";
-    sha256 = "8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406";
+    name = "boost_1_71_0.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/boost_1_71_0.tar.xz";
+    sha256 = "35e06a3bd7cd8f66be822c7d64e80c2b6051a181e9e897006917cb8e7988a543";
     md5 = "";
-    md5name = "8f32d4617390d1c2d16f26a27ab60d97807b35440d45891fa340fc2648b04406-boost_1_69_0.tar.bz2";
+    md5name = "35e06a3bd7cd8f66be822c7d64e80c2b6051a181e9e897006917cb8e7988a543-boost_1_71_0.tar.xz";
   }
   {
     name = "breakpad.zip";
@@ -63,11 +63,11 @@
     md5name = "5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331-cairo-1.16.0.tar.xz";
   }
   {
-    name = "libcdr-0.1.5.tar.xz";
-    url = "http://dev-www.libreoffice.org/src/libcdr-0.1.5.tar.xz";
-    sha256 = "6ace5c499a8be34ad871e825442ce388614ae2d8675c4381756a7319429e3a48";
+    name = "libcdr-0.1.6.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libcdr-0.1.6.tar.xz";
+    sha256 = "01cd00b04a030977e544433c2d127c997205332cd9b8e35ec0ee17110da7f861";
     md5 = "";
-    md5name = "6ace5c499a8be34ad871e825442ce388614ae2d8675c4381756a7319429e3a48-libcdr-0.1.5.tar.xz";
+    md5name = "01cd00b04a030977e544433c2d127c997205332cd9b8e35ec0ee17110da7f861-libcdr-0.1.6.tar.xz";
   }
   {
     name = "clucene-core-2.3.3.4.tar.gz";
@@ -77,6 +77,13 @@
     md5name = "48d647fbd8ef8889e5a7f422c1bfda94-clucene-core-2.3.3.4.tar.gz";
   }
   {
+    name = "dtoa-20180411.tgz";
+    url = "http://dev-www.libreoffice.org/src/dtoa-20180411.tgz";
+    sha256 = "0082d0684f7db6f62361b76c4b7faba19e0c7ce5cb8e36c4b65fea8281e711b4";
+    md5 = "";
+    md5name = "0082d0684f7db6f62361b76c4b7faba19e0c7ce5cb8e36c4b65fea8281e711b4-dtoa-20180411.tgz";
+  }
+  {
     name = "libcmis-0.5.2.tar.xz";
     url = "http://dev-www.libreoffice.org/src/libcmis-0.5.2.tar.xz";
     sha256 = "d7b18d9602190e10d437f8a964a32e983afd57e2db316a07d87477a79f5000a2";
@@ -91,11 +98,11 @@
     md5name = "86c798780b9e1f5921fe4efe651a93cb420623b45aa1fdff57af8c37f116113f-CoinMP-1.7.6.tgz";
   }
   {
-    name = "cppunit-1.14.0.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/cppunit-1.14.0.tar.gz";
-    sha256 = "3d569869d27b48860210c758c4f313082103a5e58219a7669b52bfd29d674780";
+    name = "cppunit-1.15.1.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/cppunit-1.15.1.tar.gz";
+    sha256 = "89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7";
     md5 = "";
-    md5name = "3d569869d27b48860210c758c4f313082103a5e58219a7669b52bfd29d674780-cppunit-1.14.0.tar.gz";
+    md5name = "89c5c6665337f56fd2db36bc3805a5619709d51fb136e51937072f63fcc717a7-cppunit-1.15.1.tar.gz";
   }
   {
     name = "converttexttonumber-1-5-0.oxt";
@@ -105,11 +112,11 @@
     md5name = "1f467e5bb703f12cbbb09d5cf67ecf4a-converttexttonumber-1-5-0.oxt";
   }
   {
-    name = "curl-7.65.0.tar.xz";
-    url = "http://dev-www.libreoffice.org/src/curl-7.65.0.tar.xz";
-    sha256 = "7766d263929404f693905b5e5222aa0f2bdf8c66ab4b8758f0c0820a42b966cd";
+    name = "curl-7.71.0.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/curl-7.71.0.tar.xz";
+    sha256 = "cdf18794393d8bead915312708a9e5d819c6e9919de14b20d5c8e7987abd9772";
     md5 = "";
-    md5name = "7766d263929404f693905b5e5222aa0f2bdf8c66ab4b8758f0c0820a42b966cd-curl-7.65.0.tar.xz";
+    md5name = "cdf18794393d8bead915312708a9e5d819c6e9919de14b20d5c8e7987abd9772-curl-7.71.0.tar.xz";
   }
   {
     name = "libe-book-0.1.3.tar.xz";
@@ -161,11 +168,11 @@
     md5name = "6994be3555e23226630c587444be19d309b25b0fcf1f87df3b4e3f88943e5860-Firebird-3.0.0.32483-0.tar.bz2";
   }
   {
-    name = "fontconfig-2.12.6.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/fontconfig-2.12.6.tar.bz2";
-    sha256 = "cf0c30807d08f6a28ab46c61b8dbd55c97d2f292cf88f3a07d3384687f31f017";
+    name = "fontconfig-2.13.91.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/fontconfig-2.13.91.tar.gz";
+    sha256 = "19e5b1bc9d013a52063a44e1307629711f0bfef35b9aca16f9c793971e2eb1e5";
     md5 = "";
-    md5name = "cf0c30807d08f6a28ab46c61b8dbd55c97d2f292cf88f3a07d3384687f31f017-fontconfig-2.12.6.tar.bz2";
+    md5name = "19e5b1bc9d013a52063a44e1307629711f0bfef35b9aca16f9c793971e2eb1e5-fontconfig-2.13.91.tar.gz";
   }
   {
     name = "crosextrafonts-20130214.tar.gz";
@@ -315,11 +322,11 @@
     md5name = "db8d87ea720ea9d5edc5388fc7a0497bb11ba9fe972245e0f7f4c7e8b1e1e84d-freetype-2.9.1.tar.bz2";
   }
   {
-    name = "glm-0.9.4.6-libreoffice.zip";
-    url = "http://dev-www.libreoffice.org/src/bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip";
-    sha256 = "d0312c360efe04dd048b3311fe375ff36f1993b4c2e3cb58c81062990532904a";
-    md5 = "bae83fa5dc7f081768daace6e199adc3";
-    md5name = "bae83fa5dc7f081768daace6e199adc3-glm-0.9.4.6-libreoffice.zip";
+    name = "glm-0.9.9.7.zip";
+    url = "http://dev-www.libreoffice.org/src/glm-0.9.9.7.zip";
+    sha256 = "c5e167c042afd2d7ad642ace6b643863baeb33880781983563e1ab68a30d3e95";
+    md5 = "";
+    md5name = "c5e167c042afd2d7ad642ace6b643863baeb33880781983563e1ab68a30d3e95-glm-0.9.9.7.zip";
   }
   {
     name = "gpgme-1.9.0.tar.bz2";
@@ -329,11 +336,11 @@
     md5name = "1b29fedb8bfad775e70eafac5b0590621683b2d9869db994568e6401f4034ceb-gpgme-1.9.0.tar.bz2";
   }
   {
-    name = "graphite2-minimal-1.3.13.tgz";
-    url = "http://dev-www.libreoffice.org/src/graphite2-minimal-1.3.13.tgz";
-    sha256 = "d47d387161db7f7ebade1920aa7cbdc797e79772597d8b55e80b58d1071bcc36";
+    name = "graphite2-minimal-1.3.14.tgz";
+    url = "http://dev-www.libreoffice.org/src/graphite2-minimal-1.3.14.tgz";
+    sha256 = "b8e892d8627c41888ff121e921455b9e2d26836978f2359173d19825da62b8fc";
     md5 = "";
-    md5name = "d47d387161db7f7ebade1920aa7cbdc797e79772597d8b55e80b58d1071bcc36-graphite2-minimal-1.3.13.tgz";
+    md5name = "b8e892d8627c41888ff121e921455b9e2d26836978f2359173d19825da62b8fc-graphite2-minimal-1.3.14.tgz";
   }
   {
     name = "harfbuzz-2.6.0.tar.xz";
@@ -364,18 +371,18 @@
     md5name = "5ade6ae2a99bc1e9e57031ca88d36dad-hyphen-2.8.8.tar.gz";
   }
   {
-    name = "icu4c-65_1-src.tgz";
-    url = "http://dev-www.libreoffice.org/src/icu4c-65_1-src.tgz";
-    sha256 = "53e37466b3d6d6d01ead029e3567d873a43a5d1c668ed2278e253b683136d948";
+    name = "icu4c-67_1-src.tgz";
+    url = "http://dev-www.libreoffice.org/src/icu4c-67_1-src.tgz";
+    sha256 = "94a80cd6f251a53bd2a997f6f1b5ac6653fe791dfab66e1eb0227740fb86d5dc";
     md5 = "";
-    md5name = "53e37466b3d6d6d01ead029e3567d873a43a5d1c668ed2278e253b683136d948-icu4c-65_1-src.tgz";
+    md5name = "94a80cd6f251a53bd2a997f6f1b5ac6653fe791dfab66e1eb0227740fb86d5dc-icu4c-67_1-src.tgz";
   }
   {
-    name = "icu4c-65_1-data.zip";
-    url = "http://dev-www.libreoffice.org/src/icu4c-65_1-data.zip";
-    sha256 = "06359a7c4ad125ba11d3ac30617cd4b932f1214f611db96573032726574896b6";
+    name = "icu4c-67_1-data.zip";
+    url = "http://dev-www.libreoffice.org/src/icu4c-67_1-data.zip";
+    sha256 = "7c16a59cc8c06128b7ecc1dc4fc056b36b17349312829b17408b9e67b05c4a7e";
     md5 = "";
-    md5name = "06359a7c4ad125ba11d3ac30617cd4b932f1214f611db96573032726574896b6-icu4c-65_1-data.zip";
+    md5name = "7c16a59cc8c06128b7ecc1dc4fc056b36b17349312829b17408b9e67b05c4a7e-icu4c-67_1-data.zip";
   }
   {
     name = "flow-engine-0.9.4.zip";
@@ -462,11 +469,11 @@
     md5name = "b24890e2bb46e12e72a79f7e965f409f4e16466d00e1dd15d93d73ee6b592523-libjpeg-turbo-1.5.3.tar.gz";
   }
   {
-    name = "language-subtag-registry-2019-09-16.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/language-subtag-registry-2019-09-16.tar.bz2";
-    sha256 = "07b66bc0f2786fde55f6bbcbcb4a455a846eb8e2351c8ce3d0a219a73693736a";
+    name = "language-subtag-registry-2020-04-01.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/language-subtag-registry-2020-04-01.tar.bz2";
+    sha256 = "fb1ee0dabfd956a445fbe9f351e86a52767808558f20f4256e67fbbb3768e9da";
     md5 = "";
-    md5name = "07b66bc0f2786fde55f6bbcbcb4a455a846eb8e2351c8ce3d0a219a73693736a-language-subtag-registry-2019-09-16.tar.bz2";
+    md5name = "fb1ee0dabfd956a445fbe9f351e86a52767808558f20f4256e67fbbb3768e9da-language-subtag-registry-2020-04-01.tar.bz2";
   }
   {
     name = "JLanguageTool-1.7.0.tar.bz2";
@@ -532,11 +539,11 @@
     md5name = "d6242790324f1432fb0a6fae71b6851f520b2c5a87675497cf8ea14c2924d52e-liblangtag-0.6.2.tar.bz2";
   }
   {
-    name = "libnumbertext-1.0.5.tar.xz";
-    url = "http://dev-www.libreoffice.org/src/libnumbertext-1.0.5.tar.xz";
-    sha256 = "e1c9086b4cecb6b25f180316f30740dfabe6a4dbaf70dddc34276fc839e4f4f7";
+    name = "libnumbertext-1.0.6.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libnumbertext-1.0.6.tar.xz";
+    sha256 = "739f220b34bf7cb731c09de2921771d644d37dfd276c45564401e5759f10ae57";
     md5 = "";
-    md5name = "e1c9086b4cecb6b25f180316f30740dfabe6a4dbaf70dddc34276fc839e4f4f7-libnumbertext-1.0.5.tar.xz";
+    md5name = "739f220b34bf7cb731c09de2921771d644d37dfd276c45564401e5759f10ae57-libnumbertext-1.0.6.tar.xz";
   }
   {
     name = "ltm-1.0.zip";
@@ -546,11 +553,11 @@
     md5name = "083daa92d8ee6f4af96a6143b12d7fc8fe1a547e14f862304f7281f8f7347483-ltm-1.0.zip";
   }
   {
-    name = "xmlsec1-1.2.28.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/xmlsec1-1.2.28.tar.gz";
-    sha256 = "13eec4811ea30e3f0e16a734d1dbf7f9d246a71d540b48d143a07b489f6222d4";
+    name = "xmlsec1-1.2.30.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/xmlsec1-1.2.30.tar.gz";
+    sha256 = "2d84360b03042178def1d9ff538acacaed2b3a27411db7b2874f1612ed71abc8";
     md5 = "";
-    md5name = "13eec4811ea30e3f0e16a734d1dbf7f9d246a71d540b48d143a07b489f6222d4-xmlsec1-1.2.28.tar.gz";
+    md5name = "2d84360b03042178def1d9ff538acacaed2b3a27411db7b2874f1612ed71abc8-xmlsec1-1.2.30.tar.gz";
   }
   {
     name = "libxml2-2.9.10.tar.gz";
@@ -581,18 +588,18 @@
     md5name = "940caef1ec7c78e0c34b0f6b94fe42d0f2022915ffc78643d28538a5cfd0f40e-lxml-4.1.1.tgz";
   }
   {
-    name = "mariadb_client-2.0.0-src.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz";
-    sha256 = "fd2f751dea049c1907735eb236aeace1d811d6a8218118b00bbaa9b84dc5cd60";
-    md5 = "a233181e03d3c307668b4c722d881661";
-    md5name = "a233181e03d3c307668b4c722d881661-mariadb_client-2.0.0-src.tar.gz";
+    name = "mariadb-connector-c-3.1.8-src.tar.gz";
+    url = "http://dev-www.libreoffice.org/src/mariadb-connector-c-3.1.8-src.tar.gz";
+    sha256 = "431434d3926f4bcce2e5c97240609983f60d7ff50df5a72083934759bb863f7b";
+    md5 = "";
+    md5name = "431434d3926f4bcce2e5c97240609983f60d7ff50df5a72083934759bb863f7b-mariadb-connector-c-3.1.8-src.tar.gz";
   }
   {
-    name = "mdds-1.5.0.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/mdds-1.5.0.tar.bz2";
-    sha256 = "144d6debd7be32726f332eac14ef9f17e2d3cf89cb3250eb31a7127e0789680d";
+    name = "mdds-1.6.0.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/mdds-1.6.0.tar.bz2";
+    sha256 = "f1585c9cbd12f83a6d43d395ac1ab6a9d9d5d77f062c7b5f704e24ed72dae07d";
     md5 = "";
-    md5name = "144d6debd7be32726f332eac14ef9f17e2d3cf89cb3250eb31a7127e0789680d-mdds-1.5.0.tar.bz2";
+    md5name = "f1585c9cbd12f83a6d43d395ac1ab6a9d9d5d77f062c7b5f704e24ed72dae07d-mdds-1.6.0.tar.bz2";
   }
   {
     name = "mDNSResponder-878.200.35.tar.gz";
@@ -609,11 +616,11 @@
     md5name = "ef36c1a1aabb2ba3b0bedaaafe717bf4480be2ba8de6f3894be5fd3702b013ba-libmspub-0.1.4.tar.xz";
   }
   {
-    name = "libmwaw-0.3.15.tar.xz";
-    url = "http://dev-www.libreoffice.org/src/libmwaw-0.3.15.tar.xz";
-    sha256 = "0440bb09f05e3419423d8dfa36ee847056ebfd837f9cbc091fdb5b057daab0b1";
+    name = "libmwaw-0.3.16.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libmwaw-0.3.16.tar.xz";
+    sha256 = "0c639edba5297bde5575193bf5b5f2f469956beaff5c0206d91ce9df6bde1868";
     md5 = "";
-    md5name = "0440bb09f05e3419423d8dfa36ee847056ebfd837f9cbc091fdb5b057daab0b1-libmwaw-0.3.15.tar.xz";
+    md5name = "0c639edba5297bde5575193bf5b5f2f469956beaff5c0206d91ce9df6bde1868-libmwaw-0.3.16.tar.xz";
   }
   {
     name = "mythes-1.2.4.tar.gz";
@@ -644,11 +651,11 @@
     md5name = "2c7b21892f84a4c67546f84611eccdad6259875c971e98ddb027da66ea0ac9c2-libodfgen-0.1.6.tar.bz2";
   }
   {
-    name = "odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar";
-    url = "http://dev-www.libreoffice.org/src/../extern/odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar";
-    sha256 = "984f2a479df79e27e7b01a5815ac53ae64e07746b882262d8a64566494515504";
+    name = "odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar";
+    url = "http://dev-www.libreoffice.org/src/../extern/odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar";
+    sha256 = "d55495ab3a86544650587de2a72180ddf8bfc6376d14ddfa923992dbc86a06e0";
     md5 = "";
-    md5name = "984f2a479df79e27e7b01a5815ac53ae64e07746b882262d8a64566494515504-odfvalidator-1.2.0-incubating-SNAPSHOT-jar-with-dependencies-971c54fd38a968f5860014b44301872706f9e540.jar";
+    md5name = "d55495ab3a86544650587de2a72180ddf8bfc6376d14ddfa923992dbc86a06e0-odfvalidator-0.9.0-RC2-SNAPSHOT-jar-with-dependencies-2726ab578664434a545f8379a01a9faffac0ae73.jar";
   }
   {
     name = "officeotron-0.7.4-master.jar";
@@ -672,11 +679,11 @@
     md5name = "14cb464efe7ac6b54799b34456bd69558a749a4931ecfd9cf9f71d7881cac7bc-openssl-1.0.2t.tar.gz";
   }
   {
-    name = "liborcus-0.15.3.tar.gz";
-    url = "http://dev-www.libreoffice.org/src/liborcus-0.15.3.tar.gz";
-    sha256 = "0dd26f3f2e611c51df9ee02d6dbf08887989eaa417b73f6877cd0d94df795fc2";
+    name = "liborcus-0.15.4.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/liborcus-0.15.4.tar.bz2";
+    sha256 = "cfb2aa60825f2a78589ed030c07f46a1ee16ef8a2d1bf2279192fbc1ae5a5f61";
     md5 = "";
-    md5name = "0dd26f3f2e611c51df9ee02d6dbf08887989eaa417b73f6877cd0d94df795fc2-liborcus-0.15.3.tar.gz";
+    md5name = "cfb2aa60825f2a78589ed030c07f46a1ee16ef8a2d1bf2279192fbc1ae5a5f61-liborcus-0.15.4.tar.bz2";
   }
   {
     name = "owncloud-android-library-0.9.4-no-binary-deps.tar.gz";
@@ -693,11 +700,11 @@
     md5name = "66adacd705a7d19895e08eac46d1e851332adf2e736c566bef1164e7a442519d-libpagemaker-0.0.4.tar.xz";
   }
   {
-    name = "pdfium-3963.tar.bz2";
-    url = "http://dev-www.libreoffice.org/src/pdfium-3963.tar.bz2";
-    sha256 = "80d4d6bd8faec226936fcde5521c6e92c0c645126ac3ae72dd2c160ca1749895";
+    name = "pdfium-4137.tar.bz2";
+    url = "http://dev-www.libreoffice.org/src/pdfium-4137.tar.bz2";
+    sha256 = "9a2f9bddca935a263f06c81003483473a525ccd0f4e517bc75fceb914d4c54b6";
     md5 = "";
-    md5name = "80d4d6bd8faec226936fcde5521c6e92c0c645126ac3ae72dd2c160ca1749895-pdfium-3963.tar.bz2";
+    md5name = "9a2f9bddca935a263f06c81003483473a525ccd0f4e517bc75fceb914d4c54b6-pdfium-4137.tar.bz2";
   }
   {
     name = "pixman-0.34.0.tar.gz";
@@ -791,11 +798,18 @@
     md5name = "6988d394b62c3494635b6f0760bc3079f9a0cd380baf0f6b075af1eb9fa5e700-serf-1.2.1.tar.bz2";
   }
   {
-    name = "libstaroffice-0.0.6.tar.xz";
-    url = "http://dev-www.libreoffice.org/src/libstaroffice-0.0.6.tar.xz";
-    sha256 = "6b00e1ed8194e6072be4441025d1b888e39365727ed5b23e0e8c92c4009d1ec4";
+    name = "skia-m84-c1baf6e1c2a5454148adb516f0f833483b5a0353.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/skia-m84-c1baf6e1c2a5454148adb516f0f833483b5a0353.tar.xz";
+    sha256 = "f88dc1a500d29c87ef5251c5a6c3ea66aa4c7daf0cf5d349ece64b36f7623be0";
+    md5 = "";
+    md5name = "f88dc1a500d29c87ef5251c5a6c3ea66aa4c7daf0cf5d349ece64b36f7623be0-skia-m84-c1baf6e1c2a5454148adb516f0f833483b5a0353.tar.xz";
+  }
+  {
+    name = "libstaroffice-0.0.7.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libstaroffice-0.0.7.tar.xz";
+    sha256 = "f94fb0ad8216f97127bedef163a45886b43c62deac5e5b0f5e628e234220c8db";
     md5 = "";
-    md5name = "6b00e1ed8194e6072be4441025d1b888e39365727ed5b23e0e8c92c4009d1ec4-libstaroffice-0.0.6.tar.xz";
+    md5name = "f94fb0ad8216f97127bedef163a45886b43c62deac5e5b0f5e628e234220c8db-libstaroffice-0.0.7.tar.xz";
   }
   {
     name = "swingExSrc.zip";
@@ -840,11 +854,11 @@
     md5name = "99b3f7f8832385748582ab8130fbb9e5607bd5179bebf9751ac1d51a53099d1c-libwpg-0.3.3.tar.xz";
   }
   {
-    name = "libwps-0.4.10.tar.xz";
-    url = "http://dev-www.libreoffice.org/src/libwps-0.4.10.tar.xz";
-    sha256 = "1421e034286a9f96d3168a1c54ea570ee7aa008ca07b89de005ad5ce49fb29ca";
+    name = "libwps-0.4.11.tar.xz";
+    url = "http://dev-www.libreoffice.org/src/libwps-0.4.11.tar.xz";
+    sha256 = "a8fdaabc28654a975fa78c81873ac503ba18f0d1cdbb942f470a21d29284b4d1";
     md5 = "";
-    md5name = "1421e034286a9f96d3168a1c54ea570ee7aa008ca07b89de005ad5ce49fb29ca-libwps-0.4.10.tar.xz";
+    md5name = "a8fdaabc28654a975fa78c81873ac503ba18f0d1cdbb942f470a21d29284b4d1-libwps-0.4.11.tar.xz";
   }
   {
     name = "xsltml_2.1.2.zip";
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix b/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix
index 5b62b0df9544..1beb8f1156c4 100644
--- a/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix
+++ b/nixpkgs/pkgs/applications/office/libreoffice/src-fresh/primary.nix
@@ -6,10 +6,10 @@ rec {
     inherit sha256;
   };
 
-  major = "6";
-  minor = "4";
-  patch = "3";
-  tweak = "2";
+  major = "7";
+  minor = "0";
+  patch = "0";
+  tweak = "3";
 
   subdir = "${major}.${minor}.${patch}";
 
@@ -17,13 +17,13 @@ rec {
 
   src = fetchurl {
     url = "https://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
-    sha256 = "1cmbrhha7mlflnlbpla8fix07cxcgkdb7krnrgs1bylf31y5855w";
+    sha256 = "sha256-sl+vgnLGIWtyw8Y/ovVsxThdOMg2Gby4SRaiaqvZVB0=";
   };
 
   # FIXME rename
   translations = fetchSrc {
     name = "translations";
-    sha256 = "06z9hz4m3kdcljjc6y5s18001axjibj9xiyakdndkl9pmnnhn9h3";
+    sha256 = "sha256-i3yfD5cmM6D9BctjablIFRqfibjrwLAaxxPIsQdk0sY=";
   };
 
   # the "dictionaries" archive is not used for LO build because we already build hunspellDicts packages from
@@ -31,6 +31,6 @@ rec {
 
   help = fetchSrc {
     name = "help";
-    sha256 = "0mpgrwg8z1q38j03l6m1sdpcplyjd5nz1nqaa13vfkryj2lflw45";
+    sha256 = "sha256-hYBEEPRmh16zgGZBUN20xfTY6qL07aKMC1lC/0ij9/0=";
   };
 }
diff --git a/nixpkgs/pkgs/applications/office/libreoffice/src-still/override.nix b/nixpkgs/pkgs/applications/office/libreoffice/src-still/override.nix
index c0880aa3ecb1..54935dd7072d 100644
--- a/nixpkgs/pkgs/applications/office/libreoffice/src-still/override.nix
+++ b/nixpkgs/pkgs/applications/office/libreoffice/src-still/override.nix
@@ -1,6 +1,13 @@
-{ stdenv, kdeIntegration, ... }:
+{ stdenv, kdeIntegration, fetchpatch, ... }:
 attrs:
 {
+  patches = attrs.patches or [ ] ++ [
+    (fetchpatch {
+      url = "https://git.pld-linux.org/gitweb.cgi?p=packages/libreoffice.git;a=blob_plain;f=poppler-0.86.patch;h=76b8356d5f22ef537a83b0f9b0debab591f152fe;hb=a2737a61353e305a9ee69640fb20d4582c218008";
+      name = "poppler-0.86.patch";
+      sha256 = "0q6k4l8imgp8ailcv0qx5l83afyw44hah24fi7gjrm9xgv5sbb8j";
+    })
+  ];
   postConfigure = attrs.postConfigure + ''
     sed -e '/CPPUNIT_TEST(Import_Export_Import);/d' -i './sw/qa/extras/inc/swmodeltestbase.hxx'
   '';
diff --git a/nixpkgs/pkgs/applications/office/notes-up/default.nix b/nixpkgs/pkgs/applications/office/notes-up/default.nix
index 055b3a41d091..6936387fb3cc 100644
--- a/nixpkgs/pkgs/applications/office/notes-up/default.nix
+++ b/nixpkgs/pkgs/applications/office/notes-up/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , vala_0_46
@@ -52,7 +53,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = stdenv.lib.optional (!withPantheon) "-Dnoele=yes";
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/office/osmo/default.nix b/nixpkgs/pkgs/applications/office/osmo/default.nix
index c3a7a5da4550..507acb862a92 100644
--- a/nixpkgs/pkgs/applications/office/osmo/default.nix
+++ b/nixpkgs/pkgs/applications/office/osmo/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "osmo";
-  version = "0.4.2";
+  version = "0.4.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/osmo-pim/${pname}-${version}.tar.gz";
-    sha256 = "1gjd4w9jckfpqr9n0bw0w25h3qhfyzw1xvilh3hqdadfinwyal2v";
+    sha256 = "19h3dnjgqbawnvgnycyp4n5b6mjsp5zghn3b69b6f3xa3fyi32qy";
   };
 
   nativeBuildInputs = [ pkgconfig gettext wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/office/p3x-onenote/default.nix b/nixpkgs/pkgs/applications/office/p3x-onenote/default.nix
new file mode 100644
index 000000000000..55854be1020f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/p3x-onenote/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, appimageTools, desktop-file-utils, fetchurl }:
+
+let
+  version = "2020.10.111";
+  name = "p3x-onenote-${version}";
+
+  plat = {
+    aarch64-linux = "-arm64";
+    armv7l-linux = "-armv7l";
+    i386-linux = "-i386";
+    i686-linux = "-i386";
+    x86_64-linux = "";
+  }.${stdenv.hostPlatform.system};
+
+  sha256 = {
+    aarch64-linux = "0a3c0w1312l6k2jvn7cn8priibnh8wg0184zjcli29f9ds1afl5s";
+    armv7l-linux = "172m2d94zzm8q61pvnjy01cl5fg11ad9hfh1han0gycnv3difniy";
+    i386-linux = "12m0i5sb15sbysp5fvhbj4k36950m7kpjr12n88r5fpkyh13ihsp";
+    i686-linux = "12m0i5sb15sbysp5fvhbj4k36950m7kpjr12n88r5fpkyh13ihsp";
+    x86_64-linux = "0bn48r55l5dh8zcf8ijh3z6hlyp3s6fvfyqc1csvnslm63dfkzcq";
+  }.${stdenv.hostPlatform.system};
+
+  src = fetchurl {
+    url = "https://github.com/patrikx3/onenote/releases/download/v${version}/P3X-OneNote-${version}${plat}.AppImage";
+    inherit sha256;
+  };
+
+  appimageContents = appimageTools.extractType2 {
+    inherit name src;
+  };
+in
+appimageTools.wrapType2 rec {
+  inherit name src;
+
+  extraInstallCommands = ''
+    mkdir -p $out/share/pixmaps $out/share/licenses/p3x-onenote
+    cp ${appimageContents}/p3x-onenote.png $out/share/pixmaps/
+    cp ${appimageContents}/p3x-onenote.desktop $out
+    cp ${appimageContents}/LICENSE.electron.txt $out/share/licenses/p3x-onenote/LICENSE
+    mv $out/bin/${name} $out/bin/p3x-onenote
+
+    ${desktop-file-utils}/bin/desktop-file-install --dir $out/share/applications \
+      --set-key Exec --set-value $out/bin/p3x-onenote \
+      --set-key Comment --set-value "P3X OneNote Linux" \
+      --delete-original $out/p3x-onenote.desktop
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/patrikx3/onenote";
+    description = "Linux Electron Onenote - A Linux compatible version of OneNote";
+    license = licenses.mit;
+    maintainers = with maintainers; [ tiagolobocastro ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/paperless/default.nix b/nixpkgs/pkgs/applications/office/paperless/default.nix
index c549b107c541..ebd057da5ce1 100644
--- a/nixpkgs/pkgs/applications/office/paperless/default.nix
+++ b/nixpkgs/pkgs/applications/office/paperless/default.nix
@@ -106,26 +106,26 @@ let
   };
 
   python = python3.override {
-    packageOverrides = self: super: {
-      # Paperless only supports Django 2.0
-      django = django_2_0 super;
+    packageOverrides = self: super: let
+      customPkgs = import ./python-modules super fetchFromGitHub; in
+    {
       pyocr = pyocrWithUserTesseract super;
+
+      # Paperless only supports Django 2.0
+      django = customPkgs.django_2_0;
+
+      # Paperless is incompatible with factory_boy >= 3
+      factory_boy = customPkgs.factory_boy_2_12_0;
+
+      # The current version of django_extensions is incompatible with django 2.0
+      django_extensions = customPkgs.django_extensions_2_2_8;
+
       # These are pre-release versions, hence they are private to this pkg
       django-filter = self.callPackage ./python-modules/django-filter.nix {};
       django-crispy-forms = self.callPackage ./python-modules/django-crispy-forms.nix {};
     };
   };
 
-  django_2_0 = pyPkgs: pyPkgs.django_2_2.overrideDerivation (_: rec {
-    pname = "Django";
-    version = "2.0.12";
-    name = "${pname}-${version}";
-    src = pyPkgs.fetchPypi {
-      inherit pname version;
-      sha256 = "15s8z54k0gf9brnz06521bikm60ddw5pn6v3nbvnl47j1jjsvwz2";
-    };
-  });
-
   runtimePackages = with python.pkgs; [
     dateparser
     dateutil
diff --git a/nixpkgs/pkgs/applications/office/paperless/python-modules/default.nix b/nixpkgs/pkgs/applications/office/paperless/python-modules/default.nix
new file mode 100644
index 000000000000..40a496312fa9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/paperless/python-modules/default.nix
@@ -0,0 +1,30 @@
+pyPkgs: fetchFromGitHub:
+{
+  django_2_0 = pyPkgs.django_2_2.overridePythonAttrs (old: rec {
+    version = "2.0.12";
+    src = pyPkgs.fetchPypi {
+      inherit (old) pname;
+      inherit version;
+      sha256 = "15s8z54k0gf9brnz06521bikm60ddw5pn6v3nbvnl47j1jjsvwz2";
+    };
+  });
+
+  django_extensions_2_2_8 = pyPkgs.django_extensions.overridePythonAttrs (old: rec {
+    version = "2.2.8";
+    src = fetchFromGitHub {
+      owner = old.pname;
+      repo = old.pname;
+      rev = version;
+      sha256 = "1gd3nykwzh3azq1p9cvgkc3l5dwrv7y86sfjxd9llbyj8ky71iaj";
+    };
+  });
+
+  factory_boy_2_12_0 = pyPkgs.factory_boy.overridePythonAttrs (old: rec {
+    version = "2.12.0";
+    src = pyPkgs.fetchPypi {
+      inherit (old) pname;
+      inherit version;
+      sha256 = "0w53hjgag6ad5i2vmrys8ysk54agsqvgbjy9lg8g0d8pi9h8vx7s";
+    };
+  });
+}
diff --git a/nixpkgs/pkgs/applications/office/portfolio/default.nix b/nixpkgs/pkgs/applications/office/portfolio/default.nix
index 53f3b8a3150a..b3538dd2b713 100644
--- a/nixpkgs/pkgs/applications/office/portfolio/default.nix
+++ b/nixpkgs/pkgs/applications/office/portfolio/default.nix
@@ -24,11 +24,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "PortfolioPerformance";
-  version = "0.46.3";
+  version = "0.48.1";
 
   src = fetchurl {
     url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
-    sha256 = "0263v0ymqmf7kcwys4smwx1p1gh8d20dh10canjfqgl4c5lfx966";
+    sha256 = "0xhxp4iglggv6rqwsg0xjn8z46v910rj372abkaviwa3cqzf7gdb";
   };
 
   nativeBuildInputs = [
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
     description = "A simple tool to calculate the overall performance of an investment portfolio.";
     homepage = "https://www.portfolio-performance.info/";
     license = licenses.epl10;
-    maintainers = with maintainers; [ elohmeier ];
+    maintainers = with maintainers; [ elohmeier oyren ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/office/skrooge/default.nix b/nixpkgs/pkgs/applications/office/skrooge/default.nix
index 66d028144ff2..e84e84967419 100644
--- a/nixpkgs/pkgs/applications/office/skrooge/default.nix
+++ b/nixpkgs/pkgs/applications/office/skrooge/default.nix
@@ -7,11 +7,11 @@
 
 mkDerivation rec {
   pname = "skrooge";
-  version = "2.22.1";
+  version = "2.23.0";
 
   src = fetchurl {
     url = "http://download.kde.org/stable/skrooge/${pname}-${version}.tar.xz";
-    sha256 = "194vwnc2fi7cgdhasxpr1gxjqqsiqadhadvv43d0lxaxys6f360h";
+    sha256 = "10k3j67x5xm5whsvb84k9p70bkn4jbbbvdfan7q49dh2mmpair5a";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/office/softmaker/freeoffice.nix b/nixpkgs/pkgs/applications/office/softmaker/freeoffice.nix
index d9f901ff4635..2e12e6d3d43d 100644
--- a/nixpkgs/pkgs/applications/office/softmaker/freeoffice.nix
+++ b/nixpkgs/pkgs/applications/office/softmaker/freeoffice.nix
@@ -1,14 +1,26 @@
-{ callPackage, fetchurl, ... } @ args:
+{ callPackage
+, fetchurl
+
+  # This is a bit unusual, but makes version and hash easily
+  # overridable. This is useful when the upstream archive was replaced
+  # and nixpkgs is not in sync yet.
+, officeVersion ? {
+  version = "978";
+  edition = "2018";
+  sha256 = "1c5div1kbyyj48f89wkhc1i1759n70bsbp3w4a42cr0jmllyl60v";
+}
+
+, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
+  inherit (officeVersion) version edition;
+
   pname = "freeoffice";
-  version = "976";
-  edition = "2018";
   suiteName = "FreeOffice";
 
   src = fetchurl {
+    inherit (officeVersion) sha256;
     url = "https://www.softmaker.net/down/softmaker-freeoffice-${version}-amd64.tgz";
-    sha256 = "13yh4lyqakbdqf4r8vw8imy5gwpfva697iqfd85qmp3wimqvzskl";
   };
 
   archive = "freeoffice${edition}.tar.lzma";
diff --git a/nixpkgs/pkgs/applications/office/softmaker/generic.nix b/nixpkgs/pkgs/applications/office/softmaker/generic.nix
index 82ac2b58f68a..c1e25ecb00ec 100644
--- a/nixpkgs/pkgs/applications/office/softmaker/generic.nix
+++ b/nixpkgs/pkgs/applications/office/softmaker/generic.nix
@@ -5,7 +5,7 @@
 
   # For fixing up execution of /bin/ls, which is necessary for
   # product unlocking.
-, coreutils, libredirect
+, coreutils
 
 , pname, version, edition, suiteName, src, archive
 
@@ -17,8 +17,11 @@ let
     inherit makeDesktopItem pname suiteName;
   };
   shortEdition = builtins.substring 2 2 edition;
-in stdenv.mkDerivation rec {
-  inherit pname version edition shortEdition src;
+in stdenv.mkDerivation {
+  inherit pname src;
+
+  version = "${edition}.${version}";
+
   nativeBuildInputs = [
     autoPatchelfHook
     makeWrapper
@@ -49,22 +52,7 @@ in stdenv.mkDerivation rec {
     runHook postUnpack
   '';
 
-  installPhase = let
-    # SoftMaker/FreeOffice collects some system information upon
-    # unlocking the product. But in doing so, it attempts to execute
-    # /bin/ls. If the execve syscall fails, the whole unlock
-    # procedure fails. This works around that by rewriting /bin/ls
-    # to the proper path.
-    #
-    # SoftMaker Office restarts itself upon some operations, such
-    # changing the theme and unlocking. Unfortunately, we do not
-    # have control over its environment then and it will fail
-    # with an error.
-    lsIntercept = ''
-      --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
-      --set NIX_REDIRECTS "/bin/ls=${coreutils}/bin/ls"
-    '';
-  in ''
+  installPhase = ''
     runHook preInstall
 
     mkdir -p $out/share
@@ -73,12 +61,9 @@ in stdenv.mkDerivation rec {
     # Wrap rather than symlinking, so that the programs can determine
     # their resource path.
     mkdir -p $out/bin
-    makeWrapper $out/share/${pname}${edition}/planmaker $out/bin/${pname}-planmaker \
-      ${lsIntercept}
-    makeWrapper $out/share/${pname}${edition}/presentations $out/bin/${pname}-presentations \
-      ${lsIntercept}
-    makeWrapper $out/share/${pname}${edition}/textmaker $out/bin/${pname}-textmaker \
-      ${lsIntercept}
+    makeWrapper $out/share/${pname}${edition}/planmaker $out/bin/${pname}-planmaker
+    makeWrapper $out/share/${pname}${edition}/presentations $out/bin/${pname}-presentations
+    makeWrapper $out/share/${pname}${edition}/textmaker $out/bin/${pname}-textmaker
 
     for size in 16 32 48 64 96 128 256 512 1024; do
       mkdir -p $out/share/icons/hicolor/''${size}x''${size}/apps
diff --git a/nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix b/nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix
index b04ef89769c6..d0eb2ffdc935 100644
--- a/nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix
+++ b/nixpkgs/pkgs/applications/office/softmaker/softmaker_office.nix
@@ -1,14 +1,27 @@
-{ callPackage, fetchurl, ... } @ args:
+{ callPackage
+, fetchurl
+
+  # This is a bit unusual, but makes version and hash easily
+  # overridable. This is useful when people have an older version of
+  # Softmaker Office or when the upstream archive was replaced and
+  # nixpkgs is not in sync yet.
+, officeVersion ? {
+  version = "1020";
+  edition = "2021";
+  sha256 = "1v227pih1p33x7axsw7wz8pz5walpbqnk0iqng711ixk883nqxn5";
+}
+
+, ... } @ args:
 
 callPackage ./generic.nix (args // rec {
+  inherit (officeVersion) version edition;
+
   pname = "softmaker-office";
-  version = "1014";
-  edition = "2021";
   suiteName = "SoftMaker Office";
 
   src = fetchurl {
+    inherit (officeVersion) sha256;
     url = "https://www.softmaker.net/down/softmaker-office-${edition}-${version}-amd64.tgz";
-    sha256 = "0wqaxng6s7lxwz6v2j6y1m5h4g4v63m0lscj7l2fpx5ksjlamp55";
   };
 
   archive = "office${edition}.tar.lzma";
diff --git a/nixpkgs/pkgs/applications/office/spice-up/default.nix b/nixpkgs/pkgs/applications/office/spice-up/default.nix
index fed00000af3a..0cf7e8c53f14 100644
--- a/nixpkgs/pkgs/applications/office/spice-up/default.nix
+++ b/nixpkgs/pkgs/applications/office/spice-up/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , fetchpatch
 , cmake
 , gdk-pixbuf
@@ -61,7 +62,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/office/timetable/default.nix b/nixpkgs/pkgs/applications/office/timetable/default.nix
index 1f1d44e74948..838b1724ee86 100644
--- a/nixpkgs/pkgs/applications/office/timetable/default.nix
+++ b/nixpkgs/pkgs/applications/office/timetable/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , glib
 , gtk3
 , vala
@@ -48,7 +49,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/office/timeular/default.nix b/nixpkgs/pkgs/applications/office/timeular/default.nix
new file mode 100644
index 000000000000..f0fc5c3738cc
--- /dev/null
+++ b/nixpkgs/pkgs/applications/office/timeular/default.nix
@@ -0,0 +1,45 @@
+{
+  stdenv,
+  fetchurl,
+  appimageTools,
+  libsecret
+}:
+
+let
+  version = "3.4.1";
+  pname = "timeular";
+  name = "${pname}-${version}";
+  src = fetchurl {
+    url = "https://s3.amazonaws.com/timeular-desktop-packages/linux/production/Timeular-${version}.AppImage";
+    sha256 = "1s5jjdl1nzq9yd582lqs904yl10mp0s25897zmifmcbw1vz38bar";
+  };
+  appimageContents = appimageTools.extractType2 {
+    inherit name src;
+  };
+in appimageTools.wrapType2 rec {
+  inherit name src;
+
+  extraPkgs = pkgs: with pkgs; [
+    libsecret
+  ];
+
+  extraInstallCommands = ''
+    mv $out/bin/{${name},${pname}}
+    install -m 444 -D ${appimageContents}/timeular.desktop $out/share/applications/timeular.desktop
+    install -m 444 -D ${appimageContents}/timeular.png $out/share/icons/hicolor/512x512/apps/timeular.png
+    substituteInPlace $out/share/applications/timeular.desktop --replace 'Exec=AppRun' 'Exec=${pname}'
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Timetracking by flipping 8-sided dice";
+    longDescription = ''
+      The Timeular Tracker is an 8-sided dice that sits on your desk.
+      Assign an activity to each side and flip to start tracking your time.
+      The desktop app tell you where every minute of your day is spent.
+    '';
+    homepage = https://timeular.com;
+    license = licenses.unfree;
+    maintainers = with maintainers; [ ktor ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/office/todo.txt-cli/default.nix b/nixpkgs/pkgs/applications/office/todo.txt-cli/default.nix
index d711440fc340..489b759f48c4 100644
--- a/nixpkgs/pkgs/applications/office/todo.txt-cli/default.nix
+++ b/nixpkgs/pkgs/applications/office/todo.txt-cli/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl }:
 let
-  version = "2.11.0";
+  version = "2.12.0";
 in stdenv.mkDerivation {
   pname = "todo.txt-cli";
   inherit version;
 
   src = fetchurl {
     url = "https://github.com/ginatrapani/todo.txt-cli/releases/download/v${version}/todo.txt_cli-${version}.tar.gz";
-    sha256 = "0majx8lcvhh8ji54qi0sxr833wchdss95fjc92byd8g3lfz27rsz";
+    sha256 = "0gni8nj3wwdf7nl98d1bpx064bz5xari65hb998qqr92h0n9pnp6";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/office/todoman/default.nix b/nixpkgs/pkgs/applications/office/todoman/default.nix
index e18a11a7448b..092a776ae606 100644
--- a/nixpkgs/pkgs/applications/office/todoman/default.nix
+++ b/nixpkgs/pkgs/applications/office/todoman/default.nix
@@ -5,11 +5,11 @@ let
 in
 buildPythonApplication rec {
   pname = "todoman";
-  version = "3.7.0";
+  version = "3.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16brw2zhm5vamffin6qjb0lxjlj3ba40vaficl851nw2xh2mrdhy";
+    sha256 = "1aq7f63bhs9dnwzp15nfr07f2ki6s3lnqfap3b09rhchn6lfznwb";
   };
 
     LOCALE_ARCHIVE = stdenv.lib.optionalString stdenv.isLinux
diff --git a/nixpkgs/pkgs/applications/office/trilium/default.nix b/nixpkgs/pkgs/applications/office/trilium/default.nix
index 17af0b0591b9..3d577a8852ed 100644
--- a/nixpkgs/pkgs/applications/office/trilium/default.nix
+++ b/nixpkgs/pkgs/applications/office/trilium/default.nix
@@ -19,27 +19,27 @@ let
     maintainers = with maintainers; [ emmanuelrosa dtzWill kampka ];
   };
 
-  version = "0.42.2";
+  version = "0.43.3";
 
   desktopSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.tar.xz";
-    sha256 = "14vb5a2kad1h8kd1vipgaxpv6rch2fl6j0s2ja0y16xypga82wrx";
+    sha256 = "1k9vcs7pwa89bzivqp0gfs45jzqw216fpypg3ja4n2dzn4qkv2as";
   };
 
   serverSource = {
     url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-server-${version}.tar.xz";
-    sha256 = "16dz2i4g0vgwz4fi69lmg261aqb8hs6ipfy004wv73vg46wf1pnv";
+    sha256 = "1n3v7wdav6mvgcy72mmfhncsa74i0ax1ij5rjczgfjjyiyc5y0rk";
   };
 
 in {
-  
+
   trilium-desktop = stdenv.mkDerivation rec {
     pname = "trilium-desktop";
     inherit version;
     inherit meta;
 
     src = fetchurl desktopSource;
-  
+
     # Fetch from source repo, no longer included in release.
     # (they did special-case icon.png but we want the scalable svg)
     # Use the version here to ensure we get any changes.
@@ -47,33 +47,33 @@ in {
       url = "https://raw.githubusercontent.com/zadam/trilium/v${version}/images/trilium.svg";
       sha256 = "1rgj7pza20yndfp8n12k93jyprym02hqah36fkk2b3if3kcmwnfg";
     };
-  
-  
+
+
     nativeBuildInputs = [
       autoPatchelfHook
       makeWrapper
       wrapGAppsHook
     ];
-  
+
     buildInputs = atomEnv.packages ++ [ gtk3 ];
-  
+
     installPhase = ''
       mkdir -p $out/bin
       mkdir -p $out/share/trilium
       mkdir -p $out/share/{applications,icons/hicolor/scalable/apps}
-  
+
       cp -r ./* $out/share/trilium
       ln -s $out/share/trilium/trilium $out/bin/trilium
-  
+
       ln -s ${trilium_svg} $out/share/icons/hicolor/scalable/apps/trilium.svg
       cp ${desktopItem}/share/applications/* $out/share/applications
     '';
-  
+
     # LD_LIBRARY_PATH "shouldn't" be needed, remove when possible :)
     preFixup = ''
       gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : ${atomEnv.libPath})
     '';
-  
+
     dontStrip = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/office/watson/default.nix b/nixpkgs/pkgs/applications/office/watson/default.nix
index 5d4b915edfb5..00fa9416e172 100644
--- a/nixpkgs/pkgs/applications/office/watson/default.nix
+++ b/nixpkgs/pkgs/applications/office/watson/default.nix
@@ -1,27 +1,18 @@
-{ stdenv, fetchFromGitHub, pythonPackages, fetchpatch, installShellFiles }:
+{ stdenv, fetchFromGitHub, pythonPackages, installShellFiles }:
 
 with pythonPackages;
 
 buildPythonApplication rec {
   pname = "watson";
-  version = "1.9.0";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "TailorDev";
     repo = "Watson";
     rev = version;
-    sha256 = "0f0ldwadjf0xncx3m4w4wwqddd4wjwcsrbhby8vgsnqsn48dnfcx";
+    sha256 = "1s0k86ldqky6avwjaxkw1y02wyf59qwqldcahy3lhjn1b5dgsb3s";
   };
 
-  patches = [
-    # https://github.com/TailorDev/Watson/pull/380
-    # The nixpkgs' arrow version is too new / not supported by Watson's latest release.
-    (fetchpatch {
-      url = "https://github.com/TailorDev/Watson/commit/69b9ad25551525d52060f7fb2eef3653e872a455.patch";
-      sha256 = "0zrswgr0y219f92zi41m7cymfaspkhmlada4v9ijnsjjdb4bn2c9";
-    })
-  ];
-
   checkPhase = ''
     pytest -vs tests
   '';
@@ -39,6 +30,6 @@ buildPythonApplication rec {
     homepage = "https://tailordev.github.io/Watson/";
     description = "A wonderful CLI to track your time!";
     license = licenses.mit;
-    maintainers = with maintainers; [ mguentner nathyong ];
+    maintainers = with maintainers; [ mguentner nathyong oxzi ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/office/wordgrinder/default.nix b/nixpkgs/pkgs/applications/office/wordgrinder/default.nix
index c2ccbabe2f16..6438bed48285 100644
--- a/nixpkgs/pkgs/applications/office/wordgrinder/default.nix
+++ b/nixpkgs/pkgs/applications/office/wordgrinder/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
     "PREFIX=$(out)"
     "LUA_INCLUDE=${lua52Packages.lua}/include"
     "LUA_LIB=${lua52Packages.lua}/lib/liblua.so"
+    "OBJDIR=$TMP/wg-build"
   ];
 
   preBuild = stdenv.lib.optionalString stdenv.isLinux ''
diff --git a/nixpkgs/pkgs/applications/office/wpsoffice/default.nix b/nixpkgs/pkgs/applications/office/wpsoffice/default.nix
index 1d32e6ff027b..e34c548f6010 100644
--- a/nixpkgs/pkgs/applications/office/wpsoffice/default.nix
+++ b/nixpkgs/pkgs/applications/office/wpsoffice/default.nix
@@ -12,7 +12,7 @@
 , cups
 , dbus
 , expat
-, ffmpeg_3
+, ffmpeg
 , fontconfig
 , freetype
 , gdk-pixbuf
@@ -61,7 +61,7 @@ stdenv.mkDerivation rec {
     platforms = [ "x86_64-linux" ];
     hydraPlatforms = [];
     license = stdenv.lib.licenses.unfreeRedistributable;
-    maintainers = [ stdenv.lib.maintainers.mlatus ];
+    maintainers = with stdenv.lib.maintainers; [ mlatus th0rgal ];
   };
 
   buildInputs = with xorg; [
@@ -71,7 +71,7 @@ stdenv.mkDerivation rec {
     cairo
     dbus.lib
     expat
-    ffmpeg_3
+    ffmpeg
     fontconfig
     freetype
     gdk-pixbuf
diff --git a/nixpkgs/pkgs/applications/office/zim/default.nix b/nixpkgs/pkgs/applications/office/zim/default.nix
index ba6351da1ddd..05a3c2de9b47 100644
--- a/nixpkgs/pkgs/applications/office/zim/default.nix
+++ b/nixpkgs/pkgs/applications/office/zim/default.nix
@@ -9,11 +9,11 @@
 
 python3Packages.buildPythonApplication rec {
   name = "zim-${version}";
-  version = "0.72.1";
+  version = "0.73.1";
 
   src = fetchurl {
     url = "https://zim-wiki.org/downloads/${name}.tar.gz";
-    sha256 = "0a9h97rmp7if74p3i028cllzf9p9468psbqwcvm9009ga253dr1l";
+    sha256 = "13vhwsgv6mscgixypc0ixkgj0y7cpcm7z7wn1vmdrwp7kn8m3xgx";
   };
 
   buildInputs = [ gtk3 gobject-introspection wrapGAppsHook gnome3.adwaita-icon-theme ];
diff --git a/nixpkgs/pkgs/applications/office/zotero/default.nix b/nixpkgs/pkgs/applications/office/zotero/default.nix
index bd4e5a6b9f7d..d615f2a06f11 100644
--- a/nixpkgs/pkgs/applications/office/zotero/default.nix
+++ b/nixpkgs/pkgs/applications/office/zotero/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchurl, wrapGAppsHook, makeDesktopItem
 , atk
 , cairo
+, coreutils
 , curl
 , cups
 , dbus-glib
@@ -35,11 +36,11 @@
 
 stdenv.mkDerivation rec {
   pname = "zotero";
-  version = "5.0.87";
+  version = "5.0.89";
 
   src = fetchurl {
     url = "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
-    sha256 = "01kq3w4il64gqz6s1vbv3iyzayv6rnx9igxk55awixi9g3qs21f1";
+    sha256 = "18p4qnnfx9f2frk7f2nk1d7jr4cjzg9z7lfzrk7vq11qgbjdpqbl";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
@@ -131,6 +132,12 @@ stdenv.mkDerivation rec {
          "$out/usr/lib/zotero-bin-${version}/{}" \;
   '';
 
+  preFixup = ''
+    gappsWrapperArgs+=(
+      --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils ]}
+    )
+  '';
+
   meta = with stdenv.lib; {
     homepage = "https://www.zotero.org";
     description = "Collect, organize, cite, and share your research sources";
diff --git a/nixpkgs/pkgs/applications/qubes/qubes-core-vchan-xen/default.nix b/nixpkgs/pkgs/applications/qubes/qubes-core-vchan-xen/default.nix
index ecb9403be36e..ce9e4b5d881f 100644
--- a/nixpkgs/pkgs/applications/qubes/qubes-core-vchan-xen/default.nix
+++ b/nixpkgs/pkgs/applications/qubes/qubes-core-vchan-xen/default.nix
@@ -23,8 +23,7 @@ stdenv.mkDerivation rec {
     description = "Libraries required for the higher-level Qubes daemons and tools";
     homepage = "https://qubes-os.org";
     license = licenses.gpl2Plus;
-    maintainers = [ maintainers."0x4A6F" ];
+    maintainers = with maintainers; [ _0x4A6F ];
     platforms = platforms.linux;
   };
 }
-
diff --git a/nixpkgs/pkgs/applications/radio/chirp/default.nix b/nixpkgs/pkgs/applications/radio/chirp/default.nix
index 377619f5088c..8fb719567d55 100644
--- a/nixpkgs/pkgs/applications/radio/chirp/default.nix
+++ b/nixpkgs/pkgs/applications/radio/chirp/default.nix
@@ -4,11 +4,11 @@
 }:
 python2.pkgs.buildPythonApplication rec {
   pname = "chirp-daily";
-  version = "20200430";
+  version = "20200807";
 
   src = fetchurl {
     url = "https://trac.chirp.danplanet.com/chirp_daily/daily-${version}/${pname}-${version}.tar.gz";
-    sha256 = "060fzplgmpfrk6wkfaasx7phpfk90mmylk6drbwzk4f9r1655vda";
+    sha256 = "60b682793698e6427ad485546eae3a044b8290a220f190633158a2fb0e942fa0";
   };
 
   propagatedBuildInputs = with python2.pkgs; [
diff --git a/nixpkgs/pkgs/applications/radio/cubicsdr/default.nix b/nixpkgs/pkgs/applications/radio/cubicsdr/default.nix
index c85299606c03..c0dd4346d40a 100644
--- a/nixpkgs/pkgs/applications/radio/cubicsdr/default.nix
+++ b/nixpkgs/pkgs/applications/radio/cubicsdr/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, fftw, hamlib, libpulseaudio, libGL, libX11, liquid-dsp,
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, fftw, hamlib, libpulseaudio, libGL, libX11, liquid-dsp,
   pkgconfig, soapysdr-with-plugins, wxGTK31-gtk3, enableDigitalLab ? false }:
 
 stdenv.mkDerivation rec {
@@ -12,6 +12,23 @@ stdenv.mkDerivation rec {
     sha256 = "1ihbn18bzdcdvwpa4hnb55ns38bj4b8xy53hkmra809f9qpbcjhn";
   };
 
+  # Allow cubicsdr 0.2.5 to build with wxGTK 3.1.3
+  # these come from cubicsdr's master branch, subsequent releases may include them
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/cjcliffe/CubicSDR/commit/65a160fa356ce9665dfe05c6bfc6754535e16743.patch";
+      sha256 = "0vbr5x9fnm09bws5crqcm6kkhr1bg5r0bc1pxnwwjyc6jpvqi6ad";
+    })
+    (fetchpatch {
+      url = "https://github.com/cjcliffe/CubicSDR/commit/f449a65457e35bf8260d0b16b8a47b6bc0ea2c7e.patch";
+      sha256 = "1zjvjmhm8ybi6i9pq7by3fj3mvx37dy7gj4gk23d79yrnl9mk25p";
+    })
+    (fetchpatch {
+      url = "https://github.com/cjcliffe/CubicSDR/commit/0540d08c2dea79b668b32b1a6d58f235d65ce9d2.patch";
+      sha256 = "07l7b82f779sbcj0jza0mg463ac1153bs9hn6ai388j7dm3lvasn";
+    })
+  ];
+
   nativeBuildInputs = [ cmake pkgconfig ];
 
   buildInputs = [ fftw hamlib libpulseaudio libGL libX11 liquid-dsp soapysdr-with-plugins wxGTK31-gtk3 ];
diff --git a/nixpkgs/pkgs/applications/radio/direwolf/default.nix b/nixpkgs/pkgs/applications/radio/direwolf/default.nix
new file mode 100644
index 000000000000..aab76574968b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/radio/direwolf/default.nix
@@ -0,0 +1,57 @@
+{ stdenv, fetchFromGitHub
+, alsaLib, espeak, glibc, gpsd
+, hamlib, perl, python, udev }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  pname = "direwolf";
+  version = "1.5";
+
+  src = fetchFromGitHub {
+    owner = "wb2osz";
+    repo = "direwolf";
+    rev = version;
+    sha256 = "1w55dv9xqgc9mpincsj017838vmvdy972fhis3ddskyfvhhzgcsk";
+  };
+
+  buildInputs = [
+    espeak gpsd hamlib perl python
+  ] ++ (optionals stdenv.isLinux [alsaLib udev]);
+
+  makeFlags = [ "DESTDIR=$(out)" ];
+
+  postPatch = ''
+    substituteInPlace symbols.c \
+      --replace /usr/share/direwolf/symbols-new.txt $out/share/direwolf/symbols-new.txt \
+      --replace /opt/local/share/direwolf/symbols-new.txt $out/share/direwolf/symbols-new.txt
+    substituteInPlace decode_aprs.c \
+      --replace /usr/share/direwolf/tocalls.txt $out/share/direwolf/tocalls.txt \
+      --replace /opt/local/share/direwolf/tocalls.txt $out/share/direwolf/tocalls.txt
+    substituteInPlace dwespeak.sh \
+      --replace espeak ${espeak}/bin/espeak
+  '' + (optionalString stdenv.isLinux ''
+    substituteInPlace Makefile.linux \
+      --replace /usr/include/pthread.h ${stdenv.glibc.dev}/include/pthread.h \
+      --replace /usr/include/alsa ${alsaLib.dev}/include/alsa \
+      --replace /usr/include/gps.h ${gpsd}/include/gps.h \
+      --replace /usr/include/hamlib ${hamlib}/include/hamlib \
+      --replace /usr/include/libudev.h ${udev.dev}/include/libudev.h \
+      --replace /etc/udev $out/etc/udev \
+      --replace 'Exec=xterm -hold -title \"Dire Wolf\" -bg white -e \"$(DESTDIR)/bin/direwolf\"' "Exec=$out/bin/direwolf" \
+      --replace '#Terminal=true' 'Terminal=true' \
+      --replace 'Path=$(HOME)' '#Path='
+  '');
+
+  preInstall = ''
+    mkdir -p $out/bin
+  '';
+
+  meta = {
+    description = "A Soundcard Packet TNC, APRS Digipeater, IGate, APRStt gateway";
+    homepage = "https://github.com/wb2osz/direwolf/";
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ lasandell ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/radio/dsd/default.nix b/nixpkgs/pkgs/applications/radio/dsd/default.nix
new file mode 100644
index 000000000000..a369486278be
--- /dev/null
+++ b/nixpkgs/pkgs/applications/radio/dsd/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, cmake
+, mbelib, libsndfile, itpp
+, portaudioSupport ? true, portaudio ? null
+}:
+
+assert portaudioSupport -> portaudio != null;
+
+stdenv.mkDerivation rec {
+  pname = "dsd";
+  version = "2018-07-01";
+
+  src = fetchFromGitHub {
+    owner = "szechyjs";
+    repo = "dsd";
+    rev = "f175834e45a1a190171dff4597165b27d6b0157b";
+    sha256 = "0w4r13sxvjwacdwxr326zr6p77a8p6ny0g6im574jliw5j3shlhr";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [
+    mbelib libsndfile itpp
+  ] ++ stdenv.lib.optionals portaudioSupport [ portaudio ];
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+  preCheck = ''
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD
+    export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}$PWD
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Digital Speech Decoder";
+    longDescription = ''
+      DSD is able to decode several digital voice formats from discriminator
+      tap audio and synthesize the decoded speech. Speech synthesis requires
+      mbelib, which is a separate package.
+    '';
+    homepage = https://github.com/szechyjs/dsd;
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ andrew-d ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/radio/fldigi/default.nix b/nixpkgs/pkgs/applications/radio/fldigi/default.nix
index b4815803ccde..af93b7ee65d6 100644
--- a/nixpkgs/pkgs/applications/radio/fldigi/default.nix
+++ b/nixpkgs/pkgs/applications/radio/fldigi/default.nix
@@ -2,12 +2,12 @@
   libsamplerate, libpulseaudio, libXinerama, gettext, pkgconfig, alsaLib }:
 
 stdenv.mkDerivation rec {
-  version = "4.1.13";
+  version = "4.1.14";
   pname = "fldigi";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "0mlq4z5k3h466plij8hg9xn5xbjxk557g4pw13cplpf32fhng224";
+    sha256 = "0hr6xbv01xf7z4r2jxxhn8xjdmca2198q4m9glh4877dllvfq6xj";
   };
 
   buildInputs = [ libXinerama gettext hamlib fltk14 libjpeg libpng portaudio
diff --git a/nixpkgs/pkgs/applications/radio/flrig/default.nix b/nixpkgs/pkgs/applications/radio/flrig/default.nix
index 968b2fd0df9b..d95d894bdef7 100644
--- a/nixpkgs/pkgs/applications/radio/flrig/default.nix
+++ b/nixpkgs/pkgs/applications/radio/flrig/default.nix
@@ -6,12 +6,12 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.3.50";
+  version = "1.3.51";
   pname = "flrig";
 
   src = fetchurl {
     url = "mirror://sourceforge/fldigi/${pname}-${version}.tar.gz";
-    sha256 = "0fzrknzzi8kmzmrcfpc8rxr7v4a4ny6z6z5q5qwh95sp2kn2qzp9";
+    sha256 = "0aq4x0ai9q08ypfhzfj2inc4z3q39zq1l6h9as1kil9yn4zbay61";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/radio/gnss-sdr/default.nix b/nixpkgs/pkgs/applications/radio/gnss-sdr/default.nix
index 4e423094e90e..cc89ffb4f870 100644
--- a/nixpkgs/pkgs/applications/radio/gnss-sdr/default.nix
+++ b/nixpkgs/pkgs/applications/radio/gnss-sdr/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnss-sdr";
-  version = "0.0.12";
+  version = "0.0.13";
 
   src = fetchFromGitHub {
     owner = "gnss-sdr";
     repo = "gnss-sdr";
     rev = "v${version}";
-    sha256 = "0i9cz85jc2m758pzy3bq4dk4vj9wv7k2z118lasb09xldx01dwsq";
+    sha256 = "0a3k47fl5dizzhbqbrbmckl636lznyjby2d2nz6fz21637hvrnby";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/applications/radio/inspectrum/default.nix b/nixpkgs/pkgs/applications/radio/inspectrum/default.nix
index a205cec714d8..f55c78ea26b5 100644
--- a/nixpkgs/pkgs/applications/radio/inspectrum/default.nix
+++ b/nixpkgs/pkgs/applications/radio/inspectrum/default.nix
@@ -8,20 +8,21 @@
 , gnuradio
 , liquid-dsp
 , qtbase
+, wrapQtAppsHook
 }:
 
-mkDerivation {
+mkDerivation rec {
   pname = "inspectrum";
-  version = "unstable-2017-05-31";
+  version = "0.2.2";
 
   src = fetchFromGitHub {
     owner = "miek";
     repo = "inspectrum";
-    rev = "a89d1337efb31673ccb6a6681bb89c21894c76f7";
-    sha256 = "1fvnr8gca25i6s9mg9b2hyqs0zzr4jicw13mimc9dhrgxklrr1yv";
+    rev = "v${version}";
+    sha256 = "1a517y7s1xi66y5kjrpjay450pad9nc228pa8801mxq1c7m1lamm";
   };
 
-  nativeBuildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
   buildInputs = [
     fftwFloat
     boost
diff --git a/nixpkgs/pkgs/applications/radio/limesuite/default.nix b/nixpkgs/pkgs/applications/radio/limesuite/default.nix
index 7cadceab5611..013b4978b56a 100644
--- a/nixpkgs/pkgs/applications/radio/limesuite/default.nix
+++ b/nixpkgs/pkgs/applications/radio/limesuite/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "limesuite";
-  version = "20.01.0";
+  version = "20.07.2";
 
   src = fetchFromGitHub {
     owner = "myriadrf";
     repo = "LimeSuite";
     rev = "v${version}";
-    sha256 = "01z4idcby2lm34bbnpbp400ski7p61jjiir6sy6dalnvsl52m7vx";
+    sha256 = "0v0w0f5ff1gwpfy13x1q1jsx9xfg4s3ccg05ikpnkzj4yg6sjps1";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/radio/noaa-apt/default.nix b/nixpkgs/pkgs/applications/radio/noaa-apt/default.nix
new file mode 100644
index 000000000000..55703ea44d6d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/radio/noaa-apt/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, pkg-config
+, atk
+, cairo
+, gdk-pixbuf
+, glib
+, gtk3
+, openssl
+, pango
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "noaa-apt";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "martinber";
+    repo = "noaa-apt";
+    rev = "v${version}";
+    sha256 = "0fqki4a9c54rixdz5bpswvn433f9saw6yazgw4av3xdd7g2fdvvj";
+  };
+
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    atk
+    cairo
+    gdk-pixbuf
+    glib
+    gtk3
+    openssl
+    pango
+  ];
+
+  cargoSha256 = "1pzcq31inazmc9cz31fspzqkp0lpkjid8ai3g17sin1pfzby5jlh";
+
+  preBuild = ''
+    # Used by macro pointing to resource location at compile time.
+    export NOAA_APT_RES_DIR=$out/share/noaa-apt
+  '';
+
+  postInstall = ''
+    # Resources.
+    mkdir -p $out/share/noaa-apt
+    cp -R $src/res/* $out/share/noaa-apt/
+
+    # Desktop icon.
+    install -Dm644 -t $out/share/applications $src/debian/ar.com.mbernardi.noaa-apt.desktop
+    install -Dm644 -t $out/share/icons/hicolor/48x48/apps $src/debian/noaa-apt.png
+    install -Dm644 -t $out/share/icons/hicolor/scalable/apps $src/debian/noaa-apt.svg
+  '';
+
+  meta = with lib; {
+    description = "NOAA APT image decoder.";
+    homepage = "http://noaa-apt.mbernardi.com.ar/";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ trepetti ];
+    changelog = "https://github.com/martinber/noaa-apt/releases/tag/v${version}";
+  };
+}
diff --git a/nixpkgs/pkgs/applications/radio/soapyremote/default.nix b/nixpkgs/pkgs/applications/radio/soapyremote/default.nix
index ed94693db41f..b49debdb1af0 100644
--- a/nixpkgs/pkgs/applications/radio/soapyremote/default.nix
+++ b/nixpkgs/pkgs/applications/radio/soapyremote/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, cmake, soapysdr, avahi }:
 
 let
-  version = "0.5.1";
+  version = "0.5.2";
 
 in stdenv.mkDerivation {
   pname = "soapyremote";
@@ -11,7 +11,7 @@ in stdenv.mkDerivation {
     owner = "pothosware";
     repo = "SoapyRemote";
     rev = "soapy-remote-${version}";
-    sha256 = "1qlpjg8mh564q26mni8g6bb8w9nj7hgcq86278fszxpwpnk3jsvk";
+    sha256 = "124sy9v08fm51ds1yzrxspychn34y0rl6y48mzariianazvzmfax";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/radio/welle-io/default.nix b/nixpkgs/pkgs/applications/radio/welle-io/default.nix
index ce4c872821ec..77969c5ca3f9 100644
--- a/nixpkgs/pkgs/applications/radio/welle-io/default.nix
+++ b/nixpkgs/pkgs/applications/radio/welle-io/default.nix
@@ -3,7 +3,7 @@
 , faad2, rtl-sdr, soapysdr-with-plugins, libusb-compat-0_1, fftwSinglePrec, lame, mpg123 }:
 let
 
-  version = "2.1";
+  version = "2.2";
 
 in mkDerivation {
 
@@ -14,7 +14,7 @@ in mkDerivation {
     owner = "AlbrechtL";
     repo = "welle.io";
     rev = "v${version}";
-    sha256 = "1j63gdbd66d6rfjsxwdm2agrcww1rs4438kg7313h6zixpcc1icj";
+    sha256 = "04fpm6sc431dl9i5h53xpd6k85j22sv8aawl7b6wv2fzpfsd9fwa";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/radio/wsjtx/default.nix b/nixpkgs/pkgs/applications/radio/wsjtx/default.nix
index 8e135dee5681..b11b6b474c64 100644
--- a/nixpkgs/pkgs/applications/radio/wsjtx/default.nix
+++ b/nixpkgs/pkgs/applications/radio/wsjtx/default.nix
@@ -4,12 +4,12 @@
 
 stdenv.mkDerivation rec {
   pname = "wsjtx";
-  version = "2.1.2";
+  version = "2.2.2";
 
   # This is a "superbuild" tarball containing both wsjtx and a hamlib fork
   src = fetchurl {
     url = "http://physics.princeton.edu/pulsar/k1jt/wsjtx-${version}.tgz";
-    sha256 = "0aj3wg5xjjqwjvw6lra171ag5wq86w0hf1ra4k8mnaf0mc1qgbyl";
+    sha256 = "17agyrhclqyahgdwba8vi9sl7vq03sm00jlyrmjgv34a4czidg0w";
   };
 
   # Hamlib builds with autotools, wsjtx builds with cmake
@@ -23,9 +23,6 @@ stdenv.mkDerivation rec {
   # Remove Git dependency from superbuild since sources are included
   patches = [ ./super.patch ];
 
-  # Superbuild has its own patch step after it extracts the inner archives
-  postPatch = "cp ${./wsjtx.patch} wsjtx.patch";
-
   meta = with stdenv.lib; {
     description = "Weak-signal digital communication modes for amateur radio";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/radio/wsjtx/super.patch b/nixpkgs/pkgs/applications/radio/wsjtx/super.patch
index d903171ffc5a..2d72fcddf0dc 100644
--- a/nixpkgs/pkgs/applications/radio/wsjtx/super.patch
+++ b/nixpkgs/pkgs/applications/radio/wsjtx/super.patch
@@ -1,8 +1,8 @@
 diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3bf97a4..2c9dce5 100644
+index 84fa38a..87e31bb 100644
 --- a/CMakeLists.txt
 +++ b/CMakeLists.txt
-@@ -23,7 +23,6 @@ source tarball." )
+@@ -24,7 +24,6 @@ source tarball." )
  #
  # Find_library (USB_LIBRARY NAMES libusb.a usb)
  Find_program (PATCH_EXECUTABLE patch REQUIRED)
diff --git a/nixpkgs/pkgs/applications/radio/wsjtx/wsjtx.patch b/nixpkgs/pkgs/applications/radio/wsjtx/wsjtx.patch
deleted file mode 100644
index fd7c40fdc13d..000000000000
--- a/nixpkgs/pkgs/applications/radio/wsjtx/wsjtx.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3e7e816b..e7dbb14a 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -885,6 +885,6 @@
- #
- 
- # Widgets finds its own dependencies.
--find_package (Qt5 COMPONENTS Widgets Multimedia PrintSupport Sql LinguistTools REQUIRED)
-+find_package (Qt5 COMPONENTS Widgets Multimedia PrintSupport Sql LinguistTools SerialPort REQUIRED)
- 
- if (WIN32)
-   add_definitions (-DQT_NEEDS_QTMAIN)
diff --git a/nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix b/nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix
index 38d8e23a811b..e84a542f1a6d 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix
+++ b/nixpkgs/pkgs/applications/science/astronomy/gildas/default.nix
@@ -7,8 +7,8 @@ let
 in
 
 stdenv.mkDerivation rec {
-  srcVersion = "feb20a";
-  version = "20200201_a";
+  srcVersion = "sep20a";
+  version = "20200901_a";
   pname = "gildas";
 
   src = fetchurl {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     # source code of the previous release to a different directory
     urls = [ "http://www.iram.fr/~gildas/dist/gildas-src-${srcVersion}.tar.xz"
       "http://www.iram.fr/~gildas/dist/archive/gildas/gildas-src-${srcVersion}.tar.xz" ];
-    sha256 = "05f34kpi3pfgf4dsyka7mkcln26yzb2mixnnc306krq0isjm7m26";
+    sha256 = "9faa0b3e674b5ffe5b1aee88027d7401a46ae28cd0b306595300547605d6222a";
   };
 
   nativeBuildInputs = [ pkgconfig groff perl getopt gfortran which ];
diff --git a/nixpkgs/pkgs/applications/science/astronomy/gildas/wrapper.patch b/nixpkgs/pkgs/applications/science/astronomy/gildas/wrapper.patch
index 2e470a1e9cdc..3843937bf1bc 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/gildas/wrapper.patch
+++ b/nixpkgs/pkgs/applications/science/astronomy/gildas/wrapper.patch
@@ -1,12 +1,13 @@
 diff --new-file -r -u gildas-src-feb17d.orig/admin/wrapper.sh gildas-src-feb17d/admin/wrapper.sh
 --- gildas-src-feb17d.orig/admin/wrapper.sh	1970-01-01 01:00:00.000000000 +0100
 +++ gildas-src-feb17d/admin/wrapper.sh	2017-05-18 21:00:01.660778782 +0200
-@@ -0,0 +1,15 @@
+@@ -0,0 +1,16 @@
 +#!/bin/sh -e
 +
 +export GAG_ROOT_DIR="%%OUT%%"
 +export GAG_PATH="${GAG_ROOT_DIR}/etc"
 +export GAG_EXEC_SYSTEM="libexec"
++export GAG_GAG="${HOME}/.gag"
 +export PYTHONHOME="%%PYTHONHOME%%"
 +if [ -z "\$PYTHONPATH" ]; then
 +  PYTHONPATH="${GAG_ROOT_DIR}/${GAG_EXEC_SYSTEM}/python"
diff --git a/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix b/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix
index 7ef7776c0fe8..78a7f7421748 100644
--- a/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix
+++ b/nixpkgs/pkgs/applications/science/astronomy/stellarium/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "stellarium";
-  version = "0.20.1";
+  version = "0.20.2";
 
   src = fetchFromGitHub {
     owner = "Stellarium";
     repo = "stellarium";
     rev = "v${version}";
-    sha256 = "1x8svan03k1x9jwqflimbpj7jpg6mjrbz26bg1sbhsqdlc8rbhky";
+    sha256 = "0bpxv781chx5acjh9ni5l9dlnvn6jgkqylq09885g6j4gi3q56br";
   };
 
   nativeBuildInputs = [ cmake perl wrapQtAppsHook ];
diff --git a/nixpkgs/pkgs/applications/science/biology/aragorn/default.nix b/nixpkgs/pkgs/applications/science/biology/aragorn/default.nix
index 956e4d884531..168bd5c6aa68 100644
--- a/nixpkgs/pkgs/applications/science/biology/aragorn/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/aragorn/default.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
   };
 
   buildPhase = ''
-    gcc -O3 -ffast-math -finline-functions -o aragorn aragorn${version}.c
+    $CC -O3 -ffast-math -finline-functions -o aragorn aragorn${version}.c
   '';
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/science/biology/bwa/default.nix b/nixpkgs/pkgs/applications/science/biology/bwa/default.nix
index e478c104edef..7212b42198c4 100644
--- a/nixpkgs/pkgs/applications/science/biology/bwa/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/bwa/default.nix
@@ -11,8 +11,15 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ zlib ];
 
+  # it's unclear which headers are intended to be part of the public interface
+  # so we may find ourselves having to add more here over time
   installPhase = ''
-    install -vD bwa $out/bin/bwa
+    install -vD -t $out/bin bwa
+    install -vD -t $out/lib libbwa.a
+    install -vD -t $out/include bntseq.h
+    install -vD -t $out/include bwa.h
+    install -vD -t $out/include bwamem.h
+    install -vD -t $out/include bwt.h
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/science/biology/emboss/default.nix b/nixpkgs/pkgs/applications/science/biology/emboss/default.nix
index e2374bcd1e2f..2eeb17520f20 100644
--- a/nixpkgs/pkgs/applications/science/biology/emboss/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/emboss/default.nix
@@ -21,8 +21,8 @@ stdenv.mkDerivation {
     specially developed for the needs of the molecular biology (e.g. EMBnet)
     user community, including libraries. The software automatically copes with
     data in a variety of formats and even allows transparent retrieval of
-    sequence data from the web.''; 
-    license     = "GPL2";
+    sequence data from the web.'';
+    license     = stdenv.lib.licenses.gpl2;
     homepage    = "http://emboss.sourceforge.net/";
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/biology/hisat2/default.nix b/nixpkgs/pkgs/applications/science/biology/hisat2/default.nix
index fb7f2cba3de3..e641489b86c9 100644
--- a/nixpkgs/pkgs/applications/science/biology/hisat2/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/hisat2/default.nix
@@ -1,16 +1,18 @@
-{stdenv, fetchurl, unzip, which, python, perl}:
+{stdenv, fetchFromGitHub, unzip, which, python3, perl}:
 
 stdenv.mkDerivation rec {
   pname = "hisat2";
-  version = "2.1.0";
+  version = "2.2.1";
 
-  src = fetchurl {
-    url = "ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-${version}-source.zip";
-    sha256 = "10g73sdf6vqqfhhd92hliw7bbpkb8v4pp5012r5l21zws7p7d8l9";
+  src = fetchFromGitHub {
+    owner = "DaehwanKimLab";
+    repo = "hisat2";
+    rev = "v${version}";
+    sha256 = "0lmzdhzjkvxw7n5w40pbv5fgzd4cz0f9pxczswn3d4cr0k10k754";
   };
 
   nativeBuildInputs = [ unzip which ];
-  buildInputs = [ python perl ];
+  buildInputs = [ python3 perl ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -30,12 +32,6 @@ stdenv.mkDerivation rec {
        hisat2_extract_snps_haplotypes_VCF.py \
        hisat2_extract_splice_sites.py \
        hisat2_simulate_reads.py \
-       hisatgenotype_build_genome.py \
-       hisatgenotype_extract_reads.py \
-       hisatgenotype_extract_vars.py \
-       hisatgenotype_hla_cyp.py \
-       hisatgenotype_locus.py \
-       hisatgenotype.py \
        $out/bin
   '';
 
diff --git a/nixpkgs/pkgs/applications/science/biology/hmmer/default.nix b/nixpkgs/pkgs/applications/science/biology/hmmer/default.nix
index 3786b62f7477..6ee7cd609c42 100644
--- a/nixpkgs/pkgs/applications/science/biology/hmmer/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/hmmer/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "3.3";
+  version = "3.3.1";
   pname = "hmmer";
 
   src = fetchurl {
     url = "http://eddylab.org/software/hmmer/${pname}-${version}.tar.gz";
-    sha256 = "0v3kcgkr6jihq0xmpgn2xd5q7wiwvj6yswa905k2c0v7mx0bz1h1";
+    sha256 = "1mcvr74w6ffd5z0p8v3jss473mbgard9lz5whjnk95c661lnmrlc";
   };
 
   meta = with stdenv.lib; {
@@ -20,6 +20,6 @@ stdenv.mkDerivation rec {
     homepage = "http://hmmer.org/";
     license = licenses.gpl3;
     maintainers = [ maintainers.iimog ];
-    platforms = [ "x86_64-linux" "i686-linux" ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/biology/igv/default.nix b/nixpkgs/pkgs/applications/science/biology/igv/default.nix
index aa6c95071b7b..bc4f1677fc98 100644
--- a/nixpkgs/pkgs/applications/science/biology/igv/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/igv/default.nix
@@ -1,32 +1,34 @@
-{ stdenv, fetchurl, unzip, jre }:
+{ stdenv, fetchzip, jdk11 }:
 
 stdenv.mkDerivation rec {
   pname = "igv";
-  version = "2.4.19";
-
-  src = fetchurl {
-    url = "https://data.broadinstitute.org/igv/projects/downloads/2.4/IGV_${version}.zip";
-    sha256 = "048dgrhxcb854d24kyjkqz12bw04bsv49i5jawb75yzkswwfkb0z";
+  version = "2.8.9";
+  src = fetchzip {
+    url = "https://data.broadinstitute.org/igv/projects/downloads/2.8/IGV_${version}.zip";
+    sha256 = "1874w1xprv91caz1ymfxilq6inhj36xzx8j9m0mcyp0qfvfvyjp7";
   };
 
-  buildInputs = [ unzip jre ];
-
   installPhase = ''
     mkdir -pv $out/{share,bin}
     cp -Rv * $out/share/
 
     sed -i "s#prefix=.*#prefix=$out/share#g" $out/share/igv.sh
-    sed -i 's#java#${jre}/bin/java#g' $out/share/igv.sh
+    sed -i 's#java#${jdk11}/bin/java#g' $out/share/igv.sh
+
+    sed -i "s#prefix=.*#prefix=$out/share#g" $out/share/igvtools
+    sed -i 's#java#${jdk11}/bin/java#g' $out/share/igvtools
 
     ln -s $out/share/igv.sh $out/bin/igv
+    ln -s $out/share/igvtools $out/bin/igvtools
 
     chmod +x $out/bin/igv
+    chmod +x $out/bin/igvtools
   '';
 
   meta = with stdenv.lib; {
     homepage = "https://www.broadinstitute.org/igv/";
     description = "A visualization tool for interactive exploration of genomic datasets";
-    license = licenses.lgpl21;
+    license = licenses.mit;
     platforms = platforms.unix;
     maintainers = [ maintainers.mimame ];
   };
diff --git a/nixpkgs/pkgs/applications/science/biology/itsx/default.nix b/nixpkgs/pkgs/applications/science/biology/itsx/default.nix
index ac534a4ec3cd..6f66cfc9cc37 100644
--- a/nixpkgs/pkgs/applications/science/biology/itsx/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/itsx/default.nix
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     homepage = "https://microbiology.se/software/itsx/";
     license = licenses.gpl3;
     maintainers = [ maintainers.bzizou ];
-    platforms = [ "x86_64-linux" "i686-linux" ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/biology/kssd/default.nix b/nixpkgs/pkgs/applications/science/biology/kssd/default.nix
index ef8a0ce136f8..621a8ce15765 100644
--- a/nixpkgs/pkgs/applications/science/biology/kssd/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/kssd/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "kssd";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchurl {
     url = "https://github.com/yhg926/public_${pname}/archive/v${version}.tar.gz";
-    sha256 = "a5dcaf520049a962bef625cb59a567ea2b4252d4dc9be28dd06123d340e03919";
+    sha256 = "1x3v31cxnww4w5zn15vy0bwk53llsa0f97ma6qbw89h152d2mx5x";
   };
 
   buildInputs = [ zlib automake autoconf libtool ];
diff --git a/nixpkgs/pkgs/applications/science/biology/last/default.nix b/nixpkgs/pkgs/applications/science/biology/last/default.nix
index fc302522215f..13f6a23913fc 100644
--- a/nixpkgs/pkgs/applications/science/biology/last/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/last/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "last";
-  version = "1061";
+  version = "1066";
 
   src = fetchurl {
     url = "http://last.cbrc.jp/last-${version}.zip";
-    sha256 = "1jbvcxfy5xrf90qbhif0bd6aywm9rjqrm0sx24yr312f7r7c1dnx";
+    sha256 = "098j3f3a80rmhd01ds7rnb9y1xykmll2yh5ivpnvskssd8z2vc4r";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/applications/science/biology/minc-tools/default.nix b/nixpkgs/pkgs/applications/science/biology/minc-tools/default.nix
index db803ea4922f..b2029842bbba 100644
--- a/nixpkgs/pkgs/applications/science/biology/minc-tools/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/minc-tools/default.nix
@@ -14,15 +14,19 @@ stdenv.mkDerivation rec {
 
   patches = [ ./fix-netcdf-header.patch ];
 
+  # add missing CMake module to build NIFTI support
+  # (the maintainers normally build libminc and minc-tools in a meta-project)
+  postPatch = ''
+    cp ${libminc.src}/cmake-modules/FindNIFTI.cmake cmake-modules
+  '';
+
   nativeBuildInputs = [ cmake flex bison makeWrapper ];
-  buildInputs = [ libminc libjpeg zlib ];
+  buildInputs = [ libminc libjpeg nifticlib zlib ];
   propagatedBuildInputs = [ perl TextFormat ];
 
   cmakeFlags = [ "-DLIBMINC_DIR=${libminc}/lib/"
-                 "-DZNZ_INCLUDE_DIR=${nifticlib}/include/"
-                 "-DZNZ_LIBRARY=${nifticlib}/lib/libznz.a"
-                 "-DNIFTI_INCLUDE_DIR=${nifticlib}/include/nifti/"
-                 "-DNIFTI_LIBRARY=${nifticlib}/lib/libniftiio.a" ];
+                 "-DZNZ_INCLUDE_DIR=${nifticlib}/include/nifti"
+                 "-DNIFTI_INCLUDE_DIR=${nifticlib}/include/nifti" ];
 
   postFixup = ''
     for prog in minccomplete minchistory mincpik; do
diff --git a/nixpkgs/pkgs/applications/science/biology/mosdepth/default.nix b/nixpkgs/pkgs/applications/science/biology/mosdepth/default.nix
index 21af5b82207b..1ce6357d2e81 100644
--- a/nixpkgs/pkgs/applications/science/biology/mosdepth/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/mosdepth/default.nix
@@ -26,14 +26,15 @@ in stdenv.mkDerivation rec {
     sha256 = "01gm9gj2x2zs4yx6wk761fi1papi7qr3gp4ln1kkn8n2f9y9h849";
   };
 
-  buildInputs = [ nim ];
+  nativeBuildInputs = [ nim ];
+  buildInputs = [ htslib pcre ];
 
   buildPhase = ''
     HOME=$TMPDIR
     nim -p:${hts-nim}/src -p:${docopt}/src c --nilseqs:on -d:release mosdepth.nim
   '';
+
   installPhase = "install -Dt $out/bin mosdepth";
-  fixupPhase = "patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ stdenv.cc.cc htslib pcre ]} $out/bin/mosdepth";
 
   meta = with stdenv.lib; {
     description = "fast BAM/CRAM depth calculation for WGS, exome, or targeted sequencing.";
diff --git a/nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix b/nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix
index 8ee7bccf075f..0ebd14411216 100644
--- a/nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/mrbayes/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
   builder = ./builder.sh;
   buildInputs = [readline];
 
-  meta = {
+  meta = with stdenv.lib; {
     description     = "Bayesian Inference of Phylogeny";
     longDescription = ''
       Bayesian inference of phylogeny is based upon a
@@ -22,8 +22,8 @@ stdenv.mkDerivation rec {
       MrBayes uses a simulation technique called Markov chain Monte Carlo (or
       MCMC) to approximate the posterior probabilities of trees.
     '';
-    license     = "GPL2";
+    license     = licenses.gpl2;
     homepage    = "http://mrbayes.csit.fsu.edu/";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix b/nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix
new file mode 100644
index 000000000000..076e459c8f0b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/obitools/obitools3.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, python3Packages, cmake, python3 }:
+
+let
+  pythonPackages = python3Packages;
+in
+
+pythonPackages.buildPythonApplication rec {
+  pname = "obitools3";
+  version = "3.0.0-beta14";
+
+  src = fetchurl {
+    url = "https://git.metabarcoding.org/obitools/${pname}/repository/v${version}/archive.tar.gz";
+    sha256 = "17krklxfvxl6baf2m394gm1a88y0lg0bwqx20cf5q39zyw04z442";
+  };
+
+  preBuild = ''
+    substituteInPlace src/CMakeLists.txt --replace \$'{PYTHONLIB}' "$out/lib/${python3.libPrefix}/site-packages";
+    export NIX_CFLAGS_COMPILE="-L $out/lib/${python3.libPrefix}/site-packages $NIX_CFLAGS_COMPILE"
+  '';
+
+  disabled = !pythonPackages.isPy3k;
+
+  nativeBuildInputs = [ pythonPackages.cython cmake ];
+
+  dontConfigure = true;
+
+  doCheck = true;
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib ; {
+    description = "Management of analyses and data in DNA metabarcoding";
+    homepage = "https://git.metabarcoding.org/obitools/obitools3";
+    license = licenses.cecill20;
+    maintainers = [ maintainers.bzizou ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/biology/octopus/default.nix b/nixpkgs/pkgs/applications/science/biology/octopus/default.nix
index 9d81e08d7293..7dee07275a0f 100644
--- a/nixpkgs/pkgs/applications/science/biology/octopus/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/octopus/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "octopus";
-  version = "0.6.3-beta";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "luntergroup";
     repo = "octopus";
     rev = "v${version}";
-    sha256 = "042fycg8ppld7iajpzq2d8h8wr0nw43zbl57y125sfihryvr373n";
+    sha256 = "0y3g0xc3x3adbcmds6hh60023pfv1qrz6ak7jd88fg9vxi9bdrfb";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix b/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix
index 85d92d3af843..d496e78748d9 100644
--- a/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/picard-tools/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "picard-tools";
-  version = "2.23.0";
+  version = "2.23.4";
 
   src = fetchurl {
     url = "https://github.com/broadinstitute/picard/releases/download/${version}/picard.jar";
-    sha256 = "0yhgfz5jjw55ipgdb32wjdcb01xx2g9ikgvwinnfwswx50iscf5a";
+    sha256 = "0xg4nbx02a2kckr6p8pqjpv5rmp95bkmglgm1bma6f77s7hkab7q";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/science/biology/seaview/default.nix b/nixpkgs/pkgs/applications/science/biology/seaview/default.nix
index 4192de714d0b..dfee97947825 100644
--- a/nixpkgs/pkgs/applications/science/biology/seaview/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/seaview/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, coreutils, fltk, libjpeg }:
 
 stdenv.mkDerivation rec {
-  version = "5.0.2";
+  version = "5.0.4";
   pname = "seaview";
 
   src = fetchurl {
     url = "ftp://pbil.univ-lyon1.fr/pub/mol_phylogeny/seaview/archive/seaview_${version}.tar.gz";
-    sha256 = "0bad0nd18a36g6ysx28j68rbnwqn33ra8inx2lv2igqqcs6i5kif";
+    sha256 = "09yp8467h49qnj7gg0mbcdha4ai3bn6vgs00gb76dd6h3pzfflz1";
   };
 
   buildInputs = [ fltk libjpeg ];
diff --git a/nixpkgs/pkgs/applications/science/biology/sortmerna/default.nix b/nixpkgs/pkgs/applications/science/biology/sortmerna/default.nix
index 1f291d1a7008..4e32669dfca9 100644
--- a/nixpkgs/pkgs/applications/science/biology/sortmerna/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/sortmerna/default.nix
@@ -2,32 +2,39 @@
 
 stdenv.mkDerivation rec {
   pname = "sortmerna";
-  version = "3.0.3";
+  version = "4.2.0";
 
   src = fetchFromGitHub {
     repo = pname;
     owner = "biocore";
     rev = "v${version}";
-    sha256 = "0zx5fbzyr8wdr0zwphp8hhcn1xz43s5lg2ag4py5sv0pv5l1jh76";
+    sha256 = "0r91viylzr069jm7kpcgb45kagvf8sqcj5zc1af4arl9sgfs1f3j";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "CMakeInstallPrefix.patch";
-      url = "https://github.com/biocore/sortmerna/commit/4d36d620a3207e26cf3f588d4ec39889ea21eb79.patch";
-      sha256 = "0hc3jwdr6ylbyigg52q8islqc0mb1k8rrjadvjfqaxnili099apd";
-    })
-  ];
-
-  nativeBuildInputs = [ cmake rapidjson pkgconfig ];
+  nativeBuildInputs = [ cmake pkgconfig ];
   buildInputs = [ zlib rocksdb rapidjson ];
 
   cmakeFlags = [
     "-DCMAKE_BUILD_TYPE=Release"
-    "-DROCKSDB_HOME=${rocksdb}"
+    "-DPORTABLE=off"
     "-DRAPIDJSON_HOME=${rapidjson}"
+    "-DROCKSDB_HOME=${rocksdb}"
+    "-DROCKSDB_STATIC=off"
+    "-DZLIB_STATIC=off"
   ];
 
+  postPatch = ''
+    # Fix formatting string error:
+    # https://github.com/biocore/sortmerna/issues/255
+    substituteInPlace src/sortmerna/indexdb.cpp \
+      --replace 'is_verbose, ss' 'is_verbose, "%s", ss'
+
+    # Fix missing pthread dependency for the main binary.
+    substituteInPlace src/sortmerna/CMakeLists.txt \
+      --replace "target_link_libraries(sortmerna" \
+        "target_link_libraries(sortmerna Threads::Threads"
+  '';
+
   meta = with stdenv.lib; {
     description = "Tools for filtering, mapping, and OTU-picking from shotgun genomics data";
     license = licenses.lgpl3;
diff --git a/nixpkgs/pkgs/applications/science/biology/star/default.nix b/nixpkgs/pkgs/applications/science/biology/star/default.nix
index 6f4211d0c0d9..c331acbfe705 100644
--- a/nixpkgs/pkgs/applications/science/biology/star/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/star/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "star";
-  version = "2.7.3a";
+  version = "2.7.5c";
 
   src = fetchFromGitHub {
     repo = "STAR";
     owner = "alexdobin";
     rev = version;
-    sha256 = "1hgiqw5qhs0pc1xazzihcfd92na02xyq2kb469z04y1v51kpvvjq";
+    sha256 = "1plx9akrzwjk7f2j94l9ss0apg0asqmrf2bp0728d4bvlhnzmjyy";
   };
 
   sourceRoot = "source/source";
diff --git a/nixpkgs/pkgs/applications/science/biology/tebreak/default.nix b/nixpkgs/pkgs/applications/science/biology/tebreak/default.nix
index 9ff81944f6a7..07669d097a44 100644
--- a/nixpkgs/pkgs/applications/science/biology/tebreak/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/tebreak/default.nix
@@ -3,13 +3,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "tebreak";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "adamewing";
     repo = "tebreak";
     rev = version;
-    sha256 = "194av17wz66n4zxyi56mbkik31j2wmkly5i9qmxgaxymhavzi3kq";
+    sha256 = "13mgh775d8hkl340923lfwwm4r5ps70girn8d6wgfxzwzxylz8iz";
   };
 
   nativeBuildInputs = [ findutils python3Packages.cython ];
diff --git a/nixpkgs/pkgs/applications/science/biology/truvari/default.nix b/nixpkgs/pkgs/applications/science/biology/truvari/default.nix
index e64c9d3493e9..fffeca2c740c 100644
--- a/nixpkgs/pkgs/applications/science/biology/truvari/default.nix
+++ b/nixpkgs/pkgs/applications/science/biology/truvari/default.nix
@@ -5,13 +5,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "truvari";
-  version = "1.3.4";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "spiralgenetics";
     repo = "truvari";
     rev = "v${version}";
-    sha256 = "1bph7v48s7pyfagz8a2fzl5fycjliqzn5lcbv3m2bp2ih1f1gd1v";
+    sha256 = "0lp1wnldjv92k4ncga1h0icb0dpjsrx427vggg40x04a7kp9lwx0";
   };
 
   propagatedBuildInputs = with python3Packages; [
@@ -21,17 +21,20 @@ python3Packages.buildPythonApplication rec {
     pysam
     pyfaidx
     intervaltree
+    pytabix
+    acebinf
+    bwapy
+    joblib
+    pandas
   ];
 
-  prePatch = ''
-    substituteInPlace ./setup.py \
-      --replace '"progressbar2==3.41.0",' '"progressbar2==3.47.0",' \
-      --replace '"pysam==0.15.2",' '"pysam==0.15.4",' \
-      --replace '"pyfaidx==0.5.5.2",' '"pyfaidx==0.5.8",'
-  '';
+  # no tests
+  doCheck = false;
+  pythonImportsCheck = [ "truvari" ];
 
   meta = with lib; {
     description = "Structural variant comparison tool for VCFs";
+    homepage = "https://github.com/spiralgenetics/truvari";
     license = licenses.mit;
     maintainers = with maintainers; [ scalavision ];
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/science/biology/whisper/default.nix b/nixpkgs/pkgs/applications/science/biology/whisper/default.nix
new file mode 100644
index 000000000000..9e336600202b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/biology/whisper/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "whisper";
+  version = "2.0.1";
+
+  src = fetchFromGitHub {
+    owner = "refresh-bio";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0wpx1w1mar2d6zq2v14vy6nn896ds1n3zshxhhrrj5d528504iyw";
+  };
+
+  preConfigure = ''
+    cd src
+
+    # disable default static linking
+    sed -i 's/ -static / /' makefile
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -Dt $out/bin whisper whisper-index
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Short read sequence mapper";
+    license = licenses.gpl3;
+    homepage = "https://github.com/refresh-bio/whisper";
+    maintainers = with maintainers; [ jbedo ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/chemistry/d-seams/default.nix b/nixpkgs/pkgs/applications/science/chemistry/d-seams/default.nix
new file mode 100644
index 000000000000..1c6395637573
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/chemistry/d-seams/default.nix
@@ -0,0 +1,34 @@
+{ clangStdenv, stdenv, fetchFromGitHub, catch2, rang, fmt, libyamlcpp, cmake
+, eigen, lua, luaPackages, liblapack, blas, lib, boost, gsl }:
+
+clangStdenv.mkDerivation rec {
+  version = "v1.0.1";
+  pname = "d-SEAMS";
+
+  src = fetchFromGitHub {
+    owner = "d-SEAMS";
+    repo = "seams-core";
+    rev = "v1.0.1";
+    sha256 = "03zhhl9vhi3rhc3qz1g3zb89jksgpdlrk15fcr8xcz8pkj6r5b1i";
+  };
+
+  enableParallelBuilding = true;
+  nativeBuildInputs = [ cmake lua luaPackages.luafilesystem ];
+  buildInputs = [ fmt rang libyamlcpp eigen catch2 boost gsl liblapack blas ];
+
+  meta = with stdenv.lib; {
+    description =
+      "d-SEAMS: Deferred Structural Elucidation Analysis for Molecular Simulations";
+    longDescription = ''
+      d-SEAMS, is a free and open-source postprocessing engine for the analysis
+      of molecular dynamics trajectories, which is specifically able to
+      qualitatively classify ice structures in both strong-confinement and bulk
+      systems. The engine is in C++, with extensions via the Lua scripting
+      interface.
+    '';
+    homepage = "https://dseams.info";
+    license = licenses.gpl3Plus;
+    platforms = [ "x86_64-linux" ];
+    maintainers = [ maintainers.HaoZeke ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix b/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix
index dec63910f709..bdebfc72e471 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/gwyddion/default.nix
@@ -35,10 +35,10 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gwyddion";
-   version = "2.55";
+   version = "2.56";
   src = fetchurl {
     url = "mirror://sourceforge/gwyddion/gwyddion-${version}.tar.xz";
-    sha256 = "0l00zszvginpriv12idc0y1x28qmicdmrwkqa007srkxvrdgxwdi";
+    sha256 = "0z83p3ifdkv5dds8s6fqqbycql1zmgppdc7ygqmm12z5zlrl9p12";
   };
   
   nativeBuildInputs = [ pkg-config file ];
diff --git a/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix b/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix
index 45f28c93b380..6545472a5295 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/jmol/default.nix
@@ -17,14 +17,14 @@ let
   };
 in
 stdenv.mkDerivation rec {
-  version = "14.31.0";
+  version = "14.31.3";
   pname = "jmol";
 
   src = let
     baseVersion = "${lib.versions.major version}.${lib.versions.minor version}";
   in fetchurl {
     url = "mirror://sourceforge/jmol/Jmol/Version%20${baseVersion}/Jmol%20${version}/Jmol-${version}-binary.tar.gz";
-    sha256 = "14p823vxb8sfis1dgq8i9kj0rqf3cb8d0l8pspb8nz30fcvp1q7f";
+    sha256 = "067051wp9kgkgcy3mvqwxhim0h1qfcf4jk8vrbzd3y9pwmjismzy";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix b/nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix
index c090fbee377b..e8cd077afd20 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/marvin/default.nix
@@ -4,12 +4,12 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "marvin";
-  version = "20.13.0";
+  version = "20.17.0";
 
   src = fetchurl {
     name = "marvin-${version}.deb";
     url = "http://dl.chemaxon.com/marvin/${version}/marvin_linux_${versions.majorMinor version}.deb";
-    sha256 = "1mbbl7z215l6z4acwdrmqnvlvc2hv4znz4dmng9iw7rrqns3jjlv";
+    sha256 = "0ip6ma9ivk5b74s9najn2rrkiha7hya1rjhgyrc71kwsj5gqgli0";
   };
 
   nativeBuildInputs = [ dpkg makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/science/chemistry/octopus/default.nix b/nixpkgs/pkgs/applications/science/chemistry/octopus/default.nix
index adb31d326509..f8eb064e1fd7 100644
--- a/nixpkgs/pkgs/applications/science/chemistry/octopus/default.nix
+++ b/nixpkgs/pkgs/applications/science/chemistry/octopus/default.nix
@@ -6,13 +6,13 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "octopus";
-  version = "9.2";
+  version = "10.0";
 
   src = fetchFromGitLab {
     owner = "octopus-code";
     repo = "octopus";
     rev = version;
-    sha256 = "083z51sjv70asr04rv53wb9gf4396nblq1zl22qw7jdr28hji4is";
+    sha256 = "1c6q20y0x9aacwa7vp6gj3yvfzain7hnk6skxmvg3wazp02l91kn";
   };
 
   nativeBuildInputs = [ perl procps autoreconfHook ];
diff --git a/nixpkgs/pkgs/applications/science/electronics/adms/default.nix b/nixpkgs/pkgs/applications/science/electronics/adms/default.nix
index f55dd2f0528e..0fcf4d25e2de 100644
--- a/nixpkgs/pkgs/applications/science/electronics/adms/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/adms/default.nix
@@ -2,14 +2,14 @@
   libxml2, perl, perlPackages, gd }:
 
 stdenv.mkDerivation rec {
-  version = "2.3.6";
+  version = "2.3.7";
   pname = "adms";
 
   src = fetchFromGitHub {
     owner = "Qucs";
     repo = "adms";
     rev = "release-${version}";
-    sha256 = "1pcwq5khzdq4x33lid9hq967gv78dr5i4f2sk8m8rwkfqb9vdzrg";
+    sha256 = "0i37c9k6q1iglmzp9736rrgsnx7sw8xn3djqbbjw29zsyl3pf62c";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/applications/science/electronics/appcsxcad/default.nix b/nixpkgs/pkgs/applications/science/electronics/appcsxcad/default.nix
new file mode 100644
index 000000000000..d2b7c0d66a15
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/appcsxcad/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, csxcad
+, qcsxcad
+, hdf5
+, vtkWithQt5
+, qtbase
+, wrapQtAppsHook
+, fparser
+, tinyxml
+, cgal
+, boost
+}:
+
+mkDerivation {
+  pname = "appcsxcad";
+  version = "unstable-2020-01-04";
+
+  src = fetchFromGitHub {
+    owner = "thliebig";
+    repo = "AppCSXCAD";
+    rev = "de8c271ec8b57e80233cb2a432e3d7fd54d30876";
+    sha256 = "0shnfa0if3w588a68gr82qi6k7ldg1j2921fnzji90mmay21birp";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    wrapQtAppsHook
+  ];
+
+  buildInputs = [
+    csxcad
+    qcsxcad
+    hdf5
+    vtkWithQt5
+    qtbase
+    fparser
+    tinyxml
+    cgal
+    boost
+  ];
+
+  postFixup = ''
+    rm $out/bin/AppCSXCAD.sh
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "Minimal Application using the QCSXCAD library";
+    homepage = "https://github.com/thliebig/AppCSXCAD";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ matthuszagh ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/csxcad/default.nix b/nixpkgs/pkgs/applications/science/electronics/csxcad/default.nix
new file mode 100644
index 000000000000..adc6a60be853
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/csxcad/default.nix
@@ -0,0 +1,49 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, fparser
+, tinyxml
+, hdf5
+, cgal_5
+, vtk
+, boost
+, gmp
+, mpfr
+}:
+
+stdenv.mkDerivation rec {
+  pname = "csxcad";
+  version = "unstable-2020-02-08";
+
+  src = fetchFromGitHub {
+    owner = "thliebig";
+    repo = "CSXCAD";
+    rev = "ef6e40931dbd80e0959f37c8e9614c437bf7e518";
+    sha256 = "072s765jyzpdq8qqysdy0dld17m6sr9zfcs0ip2zk8c4imxaysnb";
+  };
+
+  patches = [./searchPath.patch ];
+
+  buildInputs = [
+    cgal_5
+    boost
+    gmp
+    mpfr
+    vtk
+    fparser
+    tinyxml
+    hdf5
+  ];
+
+  nativeBuildInputs = [ cmake ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "A C++ library to describe geometrical objects";
+    homepage = "https://github.com/thliebig/CSXCAD";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ matthuszagh ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/csxcad/searchPath.patch b/nixpkgs/pkgs/applications/science/electronics/csxcad/searchPath.patch
new file mode 100644
index 000000000000..2fc0d77b3202
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/csxcad/searchPath.patch
@@ -0,0 +1,11 @@
+--- CSXCAD/matlab/searchBinary.m	2019-07-14 09:24:02.154291745 -0700
++++ CSXCAD/matlab/searchBinary.m	2019-07-14 09:20:20.900248280 -0700
+@@ -33,7 +33,7 @@
+
+ % try all search paths
+ for n=1:numel(searchpath)
+-    binary_location = [searchpath{n} name];
++    binary_location = [searchpath{n} filesep name];
+     if exist(binary_location, 'file')
+         return
+     end
diff --git a/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix b/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix
index 4cfad20e695f..400e5e300975 100644
--- a/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/eagle/eagle.nix
@@ -27,7 +27,7 @@ let
       comment = "Schematic capture and PCB layout";
       desktopName = "Eagle";
       genericName = "Schematic editor";
-      categories = "Application;Development;";
+      categories = "Development;";
     };
 
     buildInputs =
diff --git a/nixpkgs/pkgs/applications/science/electronics/eagle/eagle7.nix b/nixpkgs/pkgs/applications/science/electronics/eagle/eagle7.nix
index af0fb675880e..5546bb910455 100644
--- a/nixpkgs/pkgs/applications/science/electronics/eagle/eagle7.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/eagle/eagle7.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     comment = "Schematic capture and PCB layout";
     desktopName = "Eagle";
     genericName = "Schematic editor";
-    categories = "Application;Development;";
+    categories = "Development;";
   };
 
   buildInputs =
diff --git a/nixpkgs/pkgs/applications/science/electronics/flatcam/default.nix b/nixpkgs/pkgs/applications/science/electronics/flatcam/default.nix
new file mode 100644
index 000000000000..247f99485bb4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/flatcam/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, python3Packages
+, fetchFromBitbucket
+, fetchpatch
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "flatcam";
+  version = "8.5";
+
+  src = fetchFromBitbucket {
+    owner = "jpcgt";
+    repo = "${pname}";
+    rev = "533afd6a1772857cb633c011b5e0a15b60b1e92e"; # 8.5 with Red Hat packaging.
+    sha256 = "199kiiml18k34z1zhk2hbhibphmnv0kb11kxiajq52alps0mjb3m";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    matplotlib
+    numpy
+    pyqt4
+    Rtree
+    scipy
+    setuptools
+    shapely
+    simplejson
+    six
+    svg-path
+  ];
+
+  packaging_fix_pull_request_patch = fetchpatch {
+    name = "packaging_fix_pull_request.patch";
+    url = "https://bitbucket.org/trepetti/flatcam/commits/5591ed889d1f48a5190fe237b562cb932cb5876c/raw";
+    sha256 = "19rhjdrf1n1q29cgpcry6pl2kl90zq0d613hhkwdir9bhq5bkknp";
+  };
+
+  patches = [
+    packaging_fix_pull_request_patch
+    ./release.patch
+  ];
+
+  # Only non-GUI tests can be run deterministically in the Nix build environment.
+  checkPhase = ''
+    python -m unittest tests.test_excellon
+    python -m unittest tests.test_gerber_buffer
+    python -m unittest tests.test_paint
+    python -m unittest tests.test_pathconnect
+  '';
+
+  meta = with lib; {
+    description = "2-D post processing for PCB fabrication on CNC routers.";
+    homepage = "https://bitbucket.org/jpcgt/flatcam";
+    license = licenses.mit;
+    maintainers = with maintainers; [ trepetti ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/flatcam/release.patch b/nixpkgs/pkgs/applications/science/electronics/flatcam/release.patch
new file mode 100644
index 000000000000..945228e35bab
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/flatcam/release.patch
@@ -0,0 +1,13 @@
+diff --git a/FlatCAMVersion.py b/FlatCAMVersion.py
+index ba9e04a5..2c64d5a6 100644
+--- a/FlatCAMVersion.py
++++ b/FlatCAMVersion.py
+@@ -16,7 +16,7 @@ version = {
+     "number": 8.5,
+     "date": (2016, 7, 1),  # Year, Month, Day
+     "name": None,
+-    "release": False,
++    "release": True,
+ }
+ 
+ 
diff --git a/nixpkgs/pkgs/applications/science/electronics/fritzing/default.nix b/nixpkgs/pkgs/applications/science/electronics/fritzing/default.nix
index a0442db7fed2..275100ac7fd4 100644
--- a/nixpkgs/pkgs/applications/science/electronics/fritzing/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/fritzing/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchpatch, fetchFromGitHub, qmake, pkgconfig
+{ mkDerivation, stdenv, fetchpatch, fetchFromGitHub, qmake, pkgconfig
 , qtbase, qtsvg, qtserialport, boost, libgit2
 }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "fritzing";
   version = "0.9.3b";
 
diff --git a/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix b/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix
index 3d75780936e1..36cc19142d19 100644
--- a/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/gtkwave/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gtkwave";
-  version = "3.3.104";
+  version = "3.3.106";
 
   src = fetchurl {
     url    = "mirror://sourceforge/gtkwave/${pname}-gtk3-${version}.tar.gz";
-    sha256 = "1qvldbnlp3wkqr5ff93f6pdvv9yzij7lxfhpqlizakz08l1xb391";
+    sha256 = "0ma53s27735x16dq5qi91kvlypkiwkxh2jhw0gziyccnk1mkdsji";
   };
 
   nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix b/nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
new file mode 100644
index 000000000000..06053a8f356b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/hal-hardware-analyzer/default.nix
@@ -0,0 +1,52 @@
+{ stdenv, fetchFromGitHub, cmake, ninja, pkgconfig, python3Packages
+, boost, rapidjson, qtbase, qtsvg, igraph, spdlog, wrapQtAppsHook
+, llvmPackages ? null
+}:
+
+stdenv.mkDerivation rec {
+  version = "2.0.0";
+  pname = "hal-hardware-analyzer";
+
+  src = fetchFromGitHub {
+    owner = "emsec";
+    repo = "hal";
+    rev = "v${version}";
+    sha256 = "11xmqxnryksl645wmm1d69k1b5zwvxxf0admk4iblzaa3ggf7cv1";
+  };
+  # make sure bundled dependencies don't get in the way - install also otherwise
+  # copies them in full to the output, bloating the package
+  postPatch = ''
+    rm -rf deps/*/*
+    substituteInPlace cmake/detect_dependencies.cmake \
+      --replace 'spdlog 1.4.2 EXACT' 'spdlog 1.4.2 REQUIRED'
+  '';
+
+  nativeBuildInputs = [ cmake ninja pkgconfig ];
+  buildInputs = [ qtbase qtsvg boost rapidjson igraph spdlog wrapQtAppsHook ]
+    ++ (with python3Packages; [ python pybind11 ])
+    ++ stdenv.lib.optional stdenv.cc.isClang llvmPackages.openmp;
+
+  cmakeFlags = with stdenv.lib.versions; [
+    "-DHAL_VERSION_RETURN=${version}"
+    "-DHAL_VERSION_MAJOR=${major version}"
+    "-DHAL_VERSION_MINOR=${minor version}"
+    "-DHAL_VERSION_PATCH=${patch version}"
+    "-DHAL_VERSION_TWEAK=0"
+    "-DHAL_VERSION_ADDITIONAL_COMMITS=0"
+    "-DHAL_VERSION_DIRTY=false"
+    "-DHAL_VERSION_BROKEN=false"
+    "-DENABLE_INSTALL_LDCONFIG=off"
+    "-DBUILD_ALL_PLUGINS=on"
+  ];
+  # needed for macos build - this is why we use wrapQtAppsHook instead of
+  # the qt mkDerivation - the latter forcibly overrides this.
+  cmakeBuildType = "MinSizeRel";
+
+  meta = {
+    description = "A comprehensive reverse engineering and manipulation framework for gate-level netlists";
+    homepage = "https://github.com/emsec/hal";
+    license = stdenv.lib.licenses.mit;
+    platforms = with stdenv.lib.platforms; unix;
+    maintainers = with stdenv.lib.maintainers; [ ris ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/hyp2mat/default.nix b/nixpkgs/pkgs/applications/science/electronics/hyp2mat/default.nix
new file mode 100644
index 000000000000..154b68dd5aa2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/hyp2mat/default.nix
@@ -0,0 +1,53 @@
+{ stdenv
+, fetchFromGitHub
+, bison
+, flex
+, gengetopt
+, help2man
+, groff
+, libharu
+, autoreconfHook
+, pkgconfig
+, libpng
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "hyp2mat";
+  version = "0.0.18";
+
+  src = fetchFromGitHub {
+    owner = "koendv";
+    repo = "hyp2mat";
+    rev = "v${version}";
+    sha256 = "03ibk51swxfl7pfrhcrfiffdi4mnf8kla0g1xj1lsrvrjwapfx03";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkgconfig
+  ];
+
+  buildInputs = [
+    libharu
+    libpng
+    zlib
+    bison
+    flex
+    gengetopt
+    help2man
+    groff
+  ];
+
+  configureFlags = [ "--enable-library" ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Import Hyperlynx Boardsim files to openEMS, an open source 3D full-wave electromagnetic field solver";
+    homepage = "https://github.com/koendv/hyp2mat";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ matthuszagh ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix b/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix
index b7ab5fa70d99..2fd4c122041c 100644
--- a/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/kicad/base.nix
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
   i18n = libraries.i18n;
 
   pname = "kicad-base";
-  version = "${versions.${baseName}.kicadVersion.version}";
+  version = "${builtins.substring 0 10 versions.${baseName}.kicadVersion.src.rev}";
 
   src = fetchFromGitLab (
     {
diff --git a/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix b/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
index a99f1b2d8d7a..e5ce1f0092e2 100644
--- a/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/kicad/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, gnome3, pkgs, wxGTK30, wxGTK31
+{ lib, stdenv, gnome3, wxGTK30, wxGTK31
+, makeWrapper
 , gsettings-desktop-schemas, hicolor-icon-theme
 , callPackage, callPackages
 , librsvg, cups
@@ -31,9 +32,8 @@ let
     # but brings high DPI support?
     else wxGTK31.override { withGtk2 = false; };
 
-  pythonPackages = python.pkgs;
   python = python3;
-  wxPython = pythonPackages.wxPython_4_0;
+  wxPython = python.pkgs.wxPython_4_0;
 
 in
 stdenv.mkDerivation rec {
@@ -55,10 +55,11 @@ stdenv.mkDerivation rec {
   dontFixup = true;
 
   pythonPath = optionals (scriptingSupport)
-    [ wxPython pythonPackages.six ];
+    [ wxPython python.pkgs.six ];
 
-  nativeBuildInputs = optionals (scriptingSupport)
-    [ pythonPackages.wrapPython ];
+  nativeBuildInputs = [ makeWrapper ]
+    ++ optionals (scriptingSupport)
+      [ python.pkgs.wrapPython ];
 
   # wrapGAppsHook added the equivalent to ${base}/share
   # though i noticed no difference without it
diff --git a/nixpkgs/pkgs/applications/science/electronics/kicad/libraries.nix b/nixpkgs/pkgs/applications/science/electronics/kicad/libraries.nix
index 4dde2a0a1226..057bc15bf5f3 100644
--- a/nixpkgs/pkgs/applications/science/electronics/kicad/libraries.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/kicad/libraries.nix
@@ -15,7 +15,9 @@ let
   mkLib = name:
     stdenv.mkDerivation {
       pname = "kicad-${name}";
-      version = "${version}";
+      # Use the revision instead of `version` (which is an ISO 8601 date)
+      # to prevent duplicating the library when just the date changed
+      version = "${builtins.substring 0 10 libSources.${name}.rev}";
       src = fetchFromGitHub (
         {
           owner = "KiCad";
@@ -50,7 +52,7 @@ in
   i18n = let name = "i18n"; in
     stdenv.mkDerivation {
       pname = "kicad-${name}";
-      version = "${version}";
+      version = "${builtins.substring 0 10 libSources.${name}.rev}";
       src = fetchFromGitLab (
         {
           group = "kicad";
@@ -60,8 +62,7 @@ in
           inherit name;
         } // (libSources.${name} or { })
       );
-      buildInputs = [ gettext ];
-      nativeBuildInputs = [ cmake ];
+      nativeBuildInputs = [ cmake gettext ];
       meta = {
         license = licenses.gpl2; # https://github.com/KiCad/kicad-i18n/issues/3
         platforms = stdenv.lib.platforms.all;
diff --git a/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix b/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix
index 4a9ed0cb86dc..d001cc433672 100644
--- a/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/kicad/versions.nix
@@ -27,25 +27,25 @@
   };
   "kicad-unstable" = {
     kicadVersion = {
-      version =			"2020-05-14";
+      version =			"2020-08-22";
       src = {
-        rev =			"3b8465359135e9f6dea4b0a5fcb62377753fe890";
-        sha256 =		"18xsg2s0pxx176rnblygq1f8xpmryw59lcjzm897gifz0sj0nhvx";
+        rev =			"a2341f0f335b0abb9fc8cb86d19cbe6f9b38fade";
+        sha256 =		"0167yb39f800xarq3khn7sbdkgcx9j2ayhy8c7lhhks6kh7459g0";
       };
     };
     libVersion = {
-      version =			"2020-05-14";
+      version =			"2020-08-22";
       libSources = {
-        i18n.rev =		"c4460d0d8e1075691d43dc928ffc332fa1282592";
-        i18n.sha256 =		"1gkrbfyfzsr5q7sahhlyhgfpfwm6b83lzf0q1v854gwxdfabvi0y";
-        symbols.rev =		"614b5f6256fbae82c2bba399086506bbe435bd94";
-        symbols.sha256 =	"10ix3wdcl832r4ha5q8phpx8j97gzngb41nczdli1qkhjmiw9y8r";
-        templates.rev =		"7db8d4d0ea0711f1961d117853547fb3edbc3857";
-        templates.sha256 =	"1hppcsrkn4dk6ggby6ckh0q65qxkywrbyxa4lwpaf7pxjyv498xg";
-        footprints.rev =	"240804c6c89b66af808379e1fc94ea6011433cbe";
-        footprints.sha256 =	"1jh71004lrn7bl384zfmbqqdbs28gjb6diwn6hyb587jpivdnl3g";
-        packages3d.rev =	"9b560cf94a35b692ca516d37bdaf392ce10e549d";
-        packages3d.sha256 =	"0b9jglf77fy0n0r8xs4yqkv6zvipyfvp0z5dnqlzp32csy5aqpi1";
+        i18n.rev =		"cbbb1efd940094bf0c3168280698b2b059a8c509";
+        i18n.sha256 =		"1q4jakn6m8smnr2mg7jgb520nrb6fag9mdvlcpx3smp3qbxka818";
+        symbols.rev =		"9ca6a5348cdeb88e699582d4ed051ff7303b44d3";
+        symbols.sha256 =	"13w6pb34rhz96rnar25z7kiscy6q1fm8l39hq1bpb8g9yn86ssz4";
+        templates.rev =		"ae16953b81055855bcede4a33305413599d86a15";
+        templates.sha256 =	"1pkv90p3liy3bj4nklxsvpzh9m56p0k5ldr22armvgqfaqaadx9v";
+        footprints.rev =	"f94c2d5d619d16033f69a555b449f59604d97865";
+        footprints.sha256 =	"1g71sk77jvqaf9xvgq6dkyvd9pij2lb4n0bn0dqnwddhwam935db";
+        packages3d.rev =	"f699b0e3c13fe75618086913e39279c85da14cc7";
+        packages3d.sha256 =	"0m5rb5axa946v729z35ga84in76y4zpk32qzi0hwqx957zy72hs9";
       };
     };
   };
diff --git a/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/default.nix b/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/default.nix
index 62b830547e53..96849c300298 100644
--- a/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/magic-vlsi/default.nix
@@ -31,6 +31,6 @@ stdenv.mkDerivation {
     description = "VLSI layout tool written in Tcl";
     homepage = "http://opencircuitdesign.com/magic/";
     license = licenses.mit;
-    maintainers = [ maintainers.dkudriavtsev ];
+    maintainers = [ maintainers.anna328p ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/electronics/openhantek6022/default.nix b/nixpkgs/pkgs/applications/science/electronics/openhantek6022/default.nix
new file mode 100644
index 000000000000..ad8fa3c7a7ae
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/openhantek6022/default.nix
@@ -0,0 +1,31 @@
+{ mkDerivation, lib, fetchFromGitHub, makeWrapper, cmake, qtbase, qttools, fftw, libusb1, libglvnd }:
+
+mkDerivation rec {
+  pname = "openhantek6022";
+  version = "3.1.2";
+
+  src = fetchFromGitHub {
+    owner = "OpenHantek";
+    repo = "OpenHantek6022";
+    rev = version;
+    sha256 = "104j7d3i5y6jd20c2z3l10sr6sgdy8iki3g9mlwhddnr8x6nzc03";
+  };
+
+  nativeBuildInputs = [ cmake makeWrapper ];
+  buildInputs = [ fftw libusb1 libglvnd qtbase qttools ];
+
+  postPatch = ''
+    # Fix up install paths & checks
+    sed -i 's#if(EXISTS ".*")#if(1)#g' CMakeLists.txt
+    sed -i 's#/lib/udev#lib/udev#g' CMakeLists.txt
+    sed -i 's#/usr/share#share#g' CMakeLists.txt
+  '';
+
+  meta = with lib; {
+    description = "Free software for Hantek and compatible (Voltcraft/Darkwire/Protek/Acetech) USB digital signal oscilloscopes";
+    homepage    = "https://github.com/OpenHantek/OpenHantek6022";
+    license     = licenses.gpl3;
+    maintainers = with maintainers; [ baracoder ];
+    platforms = qtbase.meta.platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/qcsxcad/default.nix b/nixpkgs/pkgs/applications/science/electronics/qcsxcad/default.nix
new file mode 100644
index 000000000000..c12678c0047d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/qcsxcad/default.nix
@@ -0,0 +1,50 @@
+{ stdenv
+, mkDerivation
+, fetchFromGitHub
+, cmake
+, csxcad
+, tinyxml
+, vtkWithQt5
+, wrapQtAppsHook
+, qtbase
+}:
+
+mkDerivation {
+  pname = "qcsxcad";
+  version = "unstable-2020-01-04";
+
+  src = fetchFromGitHub {
+    owner = "thliebig";
+    repo = "QCSXCAD";
+    rev = "0dabbaf2bc1190adec300871cf309791af842c8e";
+    sha256 = "11kbh0mxbdfh7s5azqin3i2alic5ihmdfj0jwgnrhlpjk4cbf9rn";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    wrapQtAppsHook
+  ];
+
+  cmakeFlags = [
+    "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
+    "-DCSXCAD_ROOT_DIR=${csxcad}"
+    "-DENABLE_RPATH=OFF"
+  ];
+
+  buildInputs = [
+    csxcad
+    tinyxml
+    vtkWithQt5
+    qtbase
+  ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Qt library for CSXCAD";
+    homepage = "https://github.com/thliebig/QCSXCAD";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ matthuszagh ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix b/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix
index 0613e22bbda0..ce8ebe42ea87 100644
--- a/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/verilator/default.nix
@@ -1,22 +1,29 @@
-{ stdenv, fetchurl, perl, flex, bison }:
+{ stdenv, fetchurl
+, perl, flex, bison
+}:
 
 stdenv.mkDerivation rec {
   pname = "verilator";
-  version = "4.036";
+  version = "4.100";
 
   src = fetchurl {
     url    = "https://www.veripool.org/ftp/${pname}-${version}.tgz";
-    sha256 = "1sy02pgq3kvk8548l57hsh08vfbqdg8dghj8mwlybdi8fdjz4z1h";
+    sha256 = "0vg1gk1hqlnz74gfpf57588758myxvhqzi37yl4vqjcq40r83nr2";
   };
 
   enableParallelBuilding = true;
-  buildInputs = [ perl flex bison ];
+  buildInputs = [ perl ];
+  nativeBuildInputs = [ flex bison ];
 
-  meta = {
+  # these tests need some interpreter paths patched early on...
+  doCheck = false;
+  checkTarget = "test";
+
+  meta = with stdenv.lib; {
     description = "Fast and robust (System)Verilog simulator/compiler";
     homepage    = "https://www.veripool.org/wiki/verilator";
-    license     = stdenv.lib.licenses.lgpl3;
-    platforms   = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ thoughtpolice ];
+    license     = licenses.lgpl3;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ thoughtpolice ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/electronics/verilog/default.nix b/nixpkgs/pkgs/applications/science/electronics/verilog/default.nix
index fa1efe299829..df1ce7b7235f 100644
--- a/nixpkgs/pkgs/applications/science/electronics/verilog/default.nix
+++ b/nixpkgs/pkgs/applications/science/electronics/verilog/default.nix
@@ -1,25 +1,30 @@
 { stdenv, fetchFromGitHub, autoconf, gperf, flex, bison, readline, ncurses
 , bzip2, zlib
+# Test inputs
+, perl
 }:
 
+let
+  iverilog-test = fetchFromGitHub {
+    owner = "steveicarus";
+    repo = "ivtest";
+    rev = "6882cb8ec08926c4e356c6092f0c5f8c23328d5c";
+    sha256 = "04sj5nqzwls1y760kgnd9c2whkcrr8kvj9lisd5rvk0w580kjb2x";
+  };
+in
 stdenv.mkDerivation rec {
   pname = "iverilog";
-  version = "unstable-2019-08-01";
+  version = "unstable-2020-08-24";
 
   src = fetchFromGitHub {
-    owner  = "steveicarus";
+    owner = "steveicarus";
     repo = pname;
-    rev    = "c383d2048c0bd15f5db083f14736400546fb6215";
-    sha256 = "1zs0gyhws0qa315magz3w5m45v97knczdgbf2zn4d7bdb7cv417c";
+    rev = "d8556e4c86e1465b68bdc8d5ba2056ba95a42dfd";
+    sha256 = "sha256-sT9j/0Q2FD5MOGpH/quMGvAuM7t7QavRHKD9lX7Elfs=";
   };
 
   enableParallelBuilding = true;
 
-  prePatch = ''
-    substituteInPlace configure.in \
-      --replace "AC_CHECK_LIB(termcap, tputs)" "AC_CHECK_LIB(termcap, tputs)"
-  '';
-
   preConfigure = ''
     chmod +x $PWD/autoconf.sh
     $PWD/autoconf.sh
@@ -29,11 +34,32 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ readline ncurses bzip2 zlib ];
 
+  # tests from .travis.yml
+  doCheck = true; # runs ``make check``
+  # most tests pass, but some that rely on exact text of floating-point numbers fail on aarch64.
+  doInstallCheck = !stdenv.isAarch64;
+  installCheckInputs = [ perl ];
+
+  installCheckPhase = ''
+    # copy tests to allow writing results
+    export TESTDIR=$(mktemp -d)
+    cp -r ${iverilog-test}/* $TESTDIR
+
+    pushd $TESTDIR
+
+    # Run & check tests
+    PATH=$out/bin:$PATH perl vvp_reg.pl
+    # Check the tests, will error if unexpected tests fail. Some failures MIGHT be normal.
+    diff regression_report-devel.txt regression_report.txt
+    PATH=$out/bin:$PATH perl vpi_reg.pl
+
+    popd
+  '';
+
   meta = with stdenv.lib; {
     description = "Icarus Verilog compiler";
-    repositories.git = "https://github.com/steveicarus/iverilog.git";
     homepage = "http://iverilog.icarus.com/";
-    license = licenses.lgpl21;
+    license = with licenses; [ gpl2Plus lgpl21Plus] ;
     maintainers = with maintainers; [ winden ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/applications/science/electronics/vhd2vl/default.nix b/nixpkgs/pkgs/applications/science/electronics/vhd2vl/default.nix
new file mode 100644
index 000000000000..43dfdcabd02f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/electronics/vhd2vl/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, fetchFromGitHub
+, bison
+, flex
+, verilog
+}:
+
+stdenv.mkDerivation rec {
+  pname = "vhd2vl";
+  version = "unstable-2018-09-01";
+
+  src = fetchFromGitHub {
+    owner = "ldoolitt";
+    repo = pname;
+    rev = "37e3143395ce4e7d2f2e301e12a538caf52b983c";
+    sha256 = "17va2pil4938j8c93anhy45zzgnvq3k71a7glj02synfrsv6fs8n";
+  };
+
+  nativeBuildInputs = [
+    bison
+    flex
+  ];
+
+  buildInputs = [
+    verilog
+  ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp src/vhd2vl $out/bin/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "VHDL to Verilog converter";
+    homepage = "https://github.com/ldoolitt/vhd2vl";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ matthuszagh ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/geometry/gama/default.nix b/nixpkgs/pkgs/applications/science/geometry/gama/default.nix
new file mode 100644
index 000000000000..fe606125c552
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/geometry/gama/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchurl, lib, expat, octave, libxml2, texinfo }:
+stdenv.mkDerivation rec {
+  pname = "gama";
+  version = "2.09";
+
+  src = fetchurl {
+    url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "0c1b28frl6109arj09v4zr1xs859krn8871mkvis517g5pb55dc9";
+  };
+
+  buildInputs = [ expat ];
+
+  nativeBuildInputs = [ texinfo ];
+
+  checkInputs = [ octave libxml2 ];
+  doCheck = true;
+
+  meta = with lib ; {
+    description = "Tools for adjustment of geodetic networks";
+    homepage = "https://www.gnu.org/software/gama/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/logic/abc/default.nix b/nixpkgs/pkgs/applications/science/logic/abc/default.nix
index 0bad0046e939..29d727d988e7 100644
--- a/nixpkgs/pkgs/applications/science/logic/abc/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/abc/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname   = "abc-verifier";
-  version = "2020.04.30";
+  version = "2020.06.22";
 
   src = fetchFromGitHub {
     owner  = "berkeley-abc";
     repo   = "abc";
-    rev    = "fd2c9b1c19216f6b756f88b18f5ca67b759ca128";
-    sha256 = "1d18pkpsx0nlzl3a6lyfdnpk4kixjmgswy6cp5fbrkpp4rf1gahi";
+    rev    = "341db25668f3054c87aa3372c794e180f629af5d";
+    sha256 = "14cgv34vz5ljkcms6nrv19vqws2hs8bgjgffk5q03cbxnm2jxv5s";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/science/logic/alt-ergo/default.nix b/nixpkgs/pkgs/applications/science/logic/alt-ergo/default.nix
index e396f1c4a91a..519b1f98138e 100644
--- a/nixpkgs/pkgs/applications/science/logic/alt-ergo/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/alt-ergo/default.nix
@@ -2,29 +2,27 @@
 
 let
   pname = "alt-ergo";
-  version = "2.3.2";
+  version = "2.3.3";
 
   src = fetchurl {
     url = "https://alt-ergo.ocamlpro.com/http/alt-ergo-${version}/alt-ergo-${version}.tar.gz";
-    sha256 = "130hisjzkaslygipdaaqib92spzx9rapsd45dbh5ssczjn5qnhb9";
+    sha256 = "124k2a4ikk4wdpmvgjpgl97x9skvr9qznk8m68dzsynzpv6yksaj";
   };
 
-  preConfigure = "patchShebangs ./configure";
-
   nativeBuildInputs = [ which ];
 
 in
 
 let alt-ergo-lib = ocamlPackages.buildDunePackage rec {
   pname = "alt-ergo-lib";
-  inherit version src preConfigure nativeBuildInputs;
+  inherit version src nativeBuildInputs;
   configureFlags = pname;
   propagatedBuildInputs = with ocamlPackages; [ num ocplib-simplex stdlib-shims zarith ];
 }; in
 
 let alt-ergo-parsers = ocamlPackages.buildDunePackage rec {
   pname = "alt-ergo-parsers";
-  inherit version src preConfigure nativeBuildInputs;
+  inherit version src nativeBuildInputs;
   configureFlags = pname;
   buildInputs = with ocamlPackages; [ menhir ];
   propagatedBuildInputs = [ alt-ergo-lib ] ++ (with ocamlPackages; [ camlzip psmt2-frontend ]);
@@ -32,7 +30,7 @@ let alt-ergo-parsers = ocamlPackages.buildDunePackage rec {
 
 ocamlPackages.buildDunePackage {
 
-  inherit pname version src preConfigure nativeBuildInputs;
+  inherit pname version src nativeBuildInputs;
 
   configureFlags = pname;
 
diff --git a/nixpkgs/pkgs/applications/science/logic/avy/0001-no-static-boost-libs.patch b/nixpkgs/pkgs/applications/science/logic/avy/0001-no-static-boost-libs.patch
deleted file mode 100644
index a53142faba66..000000000000
--- a/nixpkgs/pkgs/applications/science/logic/avy/0001-no-static-boost-libs.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/avy/CMakeLists.txt b/avy/CMakeLists.txt
-index 5913076..b0453b5 100644
---- a/avy/CMakeLists.txt
-+++ b/avy/CMakeLists.txt
-@@ -23,7 +23,6 @@ if (CUSTOM_BOOST_ROOT)
-   set (Boost_NO_SYSTEM_PATHS "ON")
- endif()
- 
--set (Boost_USE_STATIC_LIBS ON)
- find_package (Boost 1.46.1 REQUIRED program_options)
- IF (Boost_FOUND)
-   include_directories (${Boost_INCLUDE_DIRS})
diff --git a/nixpkgs/pkgs/applications/science/logic/avy/default.nix b/nixpkgs/pkgs/applications/science/logic/avy/default.nix
index 78ed641a809a..6b48c1e34488 100644
--- a/nixpkgs/pkgs/applications/science/logic/avy/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/avy/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchgit, cmake, zlib, boost }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "avy";
-  version = "2017.10.16";
+  version = "2019.05.01"; # date of cav19 tag
 
   src = fetchgit {
     url    = "https://bitbucket.org/arieg/extavy";
-    rev    = "c75c83379c38d6ea1046d0caee95aef77283ffe3";
-    sha256 = "0zcycnypg4q5g710bnkjpycaawmibc092vmyhgfbixkgq9fb5lfh";
+    rev    = "cav19";
+    sha256 = "0qdzy9srxp5f38x4dbb3prnr9il6cy0kz80avrvd7fxqzy7wdlwy";
     fetchSubmodules = true;
   };
 
@@ -31,10 +31,6 @@ stdenv.mkDerivation {
     patch -p1 -d glucose -i ${./glucose-fenv.patch}
   '';
 
-  patches =
-    [ ./0001-no-static-boost-libs.patch
-    ];
-
   installPhase = ''
     mkdir -p $out/bin
     cp avy/src/{avy,avybmc} $out/bin/
diff --git a/nixpkgs/pkgs/applications/science/logic/cadical/default.nix b/nixpkgs/pkgs/applications/science/logic/cadical/default.nix
index 6a90f50b5aa3..e3707ff7dab1 100644
--- a/nixpkgs/pkgs/applications/science/logic/cadical/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/cadical/default.nix
@@ -2,16 +2,18 @@
 
 stdenv.mkDerivation rec {
   pname = "cadical";
-  version = "1.2.1";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "arminbiere";
     repo = "cadical";
     rev = "rel-${version}";
-    sha256 = "1a66xkw42ad330fvw8i0sawrmg913m8wrq5c85lw5qandkwvxdi6";
+    sha256 = "05lvnvapjawgkky38xknb9lgaliiwan4kggmb9yggl4ifpjrh8qf";
   };
 
+  doCheck = true;
   dontAddPrefix = true;
+
   installPhase = ''
     install -Dm0755 build/cadical "$out/bin/cadical"
     install -Dm0755 build/mobical "$out/bin/mobical"
diff --git a/nixpkgs/pkgs/applications/science/logic/coq/default.nix b/nixpkgs/pkgs/applications/science/logic/coq/default.nix
index 39e7cbe7f3cc..946cba41b143 100644
--- a/nixpkgs/pkgs/applications/science/logic/coq/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/coq/default.nix
@@ -5,11 +5,10 @@
 # - The exact version can be specified through the `version` argument to
 #   the derivation; it defaults to the latest stable version.
 
-{ stdenv, fetchFromGitHub, writeText, pkgconfig
+{ stdenv, fetchFromGitHub, writeText, pkgconfig, gnumake42
 , ocamlPackages, ncurses
 , buildIde ? !(stdenv.isDarwin && stdenv.lib.versionAtLeast version "8.10")
 , glib, gnome3, wrapGAppsHook
-, darwin
 , csdp ? null
 , version
 }:
@@ -35,6 +34,7 @@ let
    "8.11.0" = "1rfdic6mp7acx2zfwz7ziqk12g95bl9nyj68z4n20a5bcjv2pxpn";
    "8.11.1" = "0qriy9dy36dajsv5qmli8gd6v55mah02ya334nw49ky19v7518m0";
    "8.11.2" = "0f77ccyxdgbf1nrj5fa8qvrk1cyfy06fv8gj9kzfvlcgn0cf48sa";
+   "8.12.0" = "18dc7k0piv6v064zgdadpw6mkkxk7j663hb3svgj5236fihjr0cz";
   }.${version};
   coq-version = stdenv.lib.versions.majorMinor version;
   versionAtLeast = stdenv.lib.versionAtLeast coq-version;
@@ -106,16 +106,19 @@ self = stdenv.mkDerivation {
     inherit sha256;
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ]
+  ++ stdenv.lib.optional (!versionAtLeast "8.6") gnumake42
+  ;
   buildInputs = [ ncurses ocamlPackages.ocaml ocamlPackages.findlib ]
   ++ stdenv.lib.optional (!versionAtLeast "8.10") ocamlPackages.camlp5
-  ++ [ ocamlPackages.num ]
+  ++ stdenv.lib.optional (!versionAtLeast "8.12") ocamlPackages.num
   ++ stdenv.lib.optionals buildIde
     (if versionAtLeast "8.10"
      then [ ocamlPackages.lablgtk3-sourceview3 glib gnome3.defaultIconTheme wrapGAppsHook ]
-     ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Cocoa
      else [ ocamlPackages.lablgtk ]);
 
+  propagatedBuildInputs = stdenv.lib.optional (versionAtLeast "8.12") ocamlPackages.num;
+
   postPatch = ''
     UNAME=$(type -tp uname)
     RM=$(type -tp rm)
diff --git a/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix b/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix
index 591b04ab062b..ddbb140c9baa 100644
--- a/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/cryptominisat/default.nix
@@ -1,16 +1,24 @@
-{ stdenv, fetchFromGitHub, cmake, python3, xxd, boost }:
+{ stdenv, fetchFromGitHub, cmake, python3, xxd, boost, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "cryptominisat";
-  version = "5.7.1";
+  version = "5.8.0";
 
   src = fetchFromGitHub {
     owner  = "msoos";
     repo   = "cryptominisat";
     rev    = version;
-    sha256 = "16lydnbd4rxfyabvvw7l4hbbby3yprcqqzrydd3n8rjbxibi4xyf";
+    sha256 = "00hmxdlyhn7pwk9jlvc5g0l5z5xqfchjzf5jgn3pkj9xhl8yqq50";
   };
 
+  patches = [ 
+    (fetchpatch {
+      # https://github.com/msoos/cryptominisat/pull/621
+      url = "https://github.com/msoos/cryptominisat/commit/11a97003b0bfbfb61ed6c4e640212110d390c28c.patch";
+      sha256 = "0hdy345bwcbxz0jl1jdxfa6mmfh77s2pz9rnncsr0jzk11b3j0cw";
+    })
+  ];
+
   buildInputs = [ python3 boost ];
   nativeBuildInputs = [ cmake xxd ];
 
diff --git a/nixpkgs/pkgs/applications/science/logic/cvc3/default.nix b/nixpkgs/pkgs/applications/science/logic/cvc3/default.nix
index ff481fd7ab46..be80565115fe 100644
--- a/nixpkgs/pkgs/applications/science/logic/cvc3/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/cvc3/default.nix
@@ -13,16 +13,21 @@ stdenv.mkDerivation rec {
 
   patches = [ ./cvc3-2.4.1-gccv6-fix.patch ];
 
-  preConfigure = ''
+  postPatch = ''
     sed -e "s@ /bin/bash@bash@g" -i Makefile.std
     find . -exec sed -e "s@/usr/bin/perl@${perl}/bin/perl@g" -i '{}' ';'
+
+    # bison 3.7 workaround
+    for f in parsePL parseLisp parsesmtlib parsesmtlib2 ; do
+      ln -s ../parser/''${f}_defs.h src/include/''${f}.hpp
+    done
   '';
 
   meta = with stdenv.lib; {
     description = "A prover for satisfiability modulo theory (SMT)";
     maintainers = with maintainers;
       [ raskin ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     license = licenses.free;
     homepage = "http://www.cs.nyu.edu/acsys/cvc3/index.html";
   };
diff --git a/nixpkgs/pkgs/applications/science/logic/cvc4/default.nix b/nixpkgs/pkgs/applications/science/logic/cvc4/default.nix
index a6e9bc69a12c..54a2f0225518 100644
--- a/nixpkgs/pkgs/applications/science/logic/cvc4/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/cvc4/default.nix
@@ -1,19 +1,20 @@
-{ stdenv, fetchurl, cln, gmp, swig, pkgconfig
-, readline, libantlr3c, boost, jdk, autoreconfHook
-, python3, antlr3_4
+{ stdenv, fetchFromGitHub, cmake, cln, gmp, git, swig, pkgconfig
+, readline, libantlr3c, boost, jdk, python3, antlr3_4
 }:
 
 stdenv.mkDerivation rec {
   pname = "cvc4";
-  version = "1.6";
+  version = "1.8";
 
-  src = fetchurl {
-    url = "https://cvc4.cs.stanford.edu/downloads/builds/src/cvc4-${version}.tar.gz";
-    sha256 = "1iw793zsi48q91lxpf8xl8lnvv0jsj4whdad79rakywkm1gbs62w";
+  src = fetchFromGitHub {
+    owner  = "cvc4";
+    repo   = "cvc4";
+    rev    = version;
+    sha256 = "1rhs4pvzaa1wk00czrczp58b2cxfghpsnq534m0l3snnya2958jp";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  buildInputs = [ gmp cln readline swig libantlr3c antlr3_4 boost jdk python3 ];
+  nativeBuildInputs = [ pkgconfig cmake ];
+  buildInputs = [ gmp git python3.pkgs.toml cln readline swig libantlr3c antlr3_4 boost jdk python3 ];
   configureFlags = [
     "--enable-language-bindings=c,c++,java"
     "--enable-gpl"
@@ -30,6 +31,10 @@ stdenv.mkDerivation rec {
   preConfigure = ''
     patchShebangs ./src/
   '';
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Production"
+  ];
+
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/applications/science/logic/drat-trim/default.nix b/nixpkgs/pkgs/applications/science/logic/drat-trim/default.nix
index 4099236e6280..81e20df33424 100644
--- a/nixpkgs/pkgs/applications/science/logic/drat-trim/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/drat-trim/default.nix
@@ -1,13 +1,14 @@
 { stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation {
-  name = "drat-trim-2017-08-31";
+  pname = "drat-trim-unstable";
+  version = "2020-06-05";
 
   src = fetchFromGitHub {
     owner = "marijnheule";
     repo = "drat-trim";
-    rev = "37ac8f874826ffa3500a00698910e137498defac";
-    sha256 = "1m9q47dfnvdli1z3kb1jvvbm0dgaw725k1aw6h9w00bggqb91bqh";
+    rev = "9afad0f7156a1e9c6ce19dce5d72cf1cb9a3ef27";
+    sha256 = "1zq585igfaknwqbvv2cji744016zxadbvr0ifr5l6yq13m0vvn3b";
   };
 
   postPatch = ''
@@ -15,7 +16,7 @@ stdenv.mkDerivation {
   '';
 
   installPhase = ''
-    install -Dt $out/bin drat-trim
+    install -Dt $out/bin drat-trim lrat-check
   '';
 
   meta = with stdenv.lib; {
@@ -31,6 +32,10 @@ stdenv.mkDerivation {
       annual SAT Competition in recent years, in order to check
       competing SAT solvers' work when they claim that a SAT instance
       is unsatisfiable.
+
+      This package also contains the related tool LRAT-check, which checks a
+      proof format called LRAT which extends DRAT with hint statements to speed
+      up the checking process.
     '';
     homepage = "https://www.cs.utexas.edu/~marijn/drat-trim/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/science/logic/eprover/default.nix b/nixpkgs/pkgs/applications/science/logic/eprover/default.nix
index f19d7e35c3e3..a3844dc3700b 100644
--- a/nixpkgs/pkgs/applications/science/logic/eprover/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/eprover/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "eprover";
-  version = "2.4";
+  version = "2.5";
 
   src = fetchurl {
     url = "https://wwwlehre.dhbw-stuttgart.de/~sschulz/WORK/E_DOWNLOAD/V_${version}/E.tgz";
-    sha256 = "1xn5yypy6w36amsb3kvj1srlbv6v5dl51k64cd264asz2n469dxw";
+    sha256 = "0jj0zkiqpcx9xp16spkskrv3jycprz7jg1g97i67j43c4yvxylwa";
   };
 
   buildInputs = [ which ];
diff --git a/nixpkgs/pkgs/applications/science/logic/fast-downward/default.nix b/nixpkgs/pkgs/applications/science/logic/fast-downward/default.nix
index ed757e444b7c..a46542095373 100644
--- a/nixpkgs/pkgs/applications/science/logic/fast-downward/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/fast-downward/default.nix
@@ -1,12 +1,13 @@
 { stdenv, lib, fetchhg, cmake, which, python3, osi, cplex }:
 
 stdenv.mkDerivation {
-  name = "fast-downward-2019-05-13";
+  version = "19.12";
+  pname = "fast-downward";
 
   src = fetchhg {
     url = "http://hg.fast-downward.org/";
-    rev = "090f5df5d84a";
-    sha256 = "14pcjz0jfzx5269axg66iq8js7lm2w3cnqrrhhwmz833prjp945g";
+    rev = "41688a4f16b3";
+    sha256 = "08m4k1mkx4sz7c2ab7xh7ip6b67zxv7kl68xrvwa83xw1yigqkna";
   };
 
   nativeBuildInputs = [ cmake which ];
@@ -17,19 +18,22 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
+  configurePhase = ''
+    python build.py release
+  '';
+
   postPatch = ''
-    cd src
     # Needed because the package tries to be too smart.
     export CC="$(which $CC)"
     export CXX="$(which $CXX)"
   '';
 
   installPhase = ''
-    install -Dm755 bin/downward $out/libexec/fast-downward/downward
-    cp -r ../translate $out/libexec/fast-downward/
-    install -Dm755 ../../fast-downward.py $out/bin/fast-downward
+    install -Dm755 builds/release/bin/downward $out/libexec/fast-downward/downward
+    cp -r builds/release/bin/translate $out/libexec/fast-downward/
+    install -Dm755 fast-downward.py $out/bin/fast-downward
     mkdir -p $out/${python3.sitePackages}
-    cp -r ../../driver $out/${python3.sitePackages}
+    cp -r driver $out/${python3.sitePackages}
 
     wrapPythonProgramsIn $out/bin "$out $pythonPath"
     wrapPythonProgramsIn $out/libexec/fast-downward/translate "$out $pythonPath"
@@ -43,13 +47,16 @@ stdenv.mkDerivation {
       echo "Moving $i to $dest"
       mv "$i" "$dest"
     done
+
+    substituteInPlace $out/${python3.sitePackages}/driver/arguments.py \
+      --replace 'args.build = "release"' "args.build = \"$out/libexec/fast-downward\""
   '';
 
   meta = with stdenv.lib; {
     description = "A domain-independent planning system";
     homepage = "http://www.fast-downward.org/";
     license = licenses.gpl3Plus;
-    platforms = platforms.linux;
+    platforms = with platforms; (linux ++ darwin);
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix b/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix
index d2e49d817837..a12d75eabbe9 100644
--- a/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/isabelle/default.nix
@@ -3,18 +3,18 @@
 
 stdenv.mkDerivation rec {
   pname = "isabelle";
-  version = "2018";
+  version = "2020";
 
   dirname = "Isabelle${version}";
 
   src = if stdenv.isDarwin
     then fetchurl {
-      url = "http://isabelle.in.tum.de/website-${dirname}/dist/${dirname}.dmg";
-      sha256 = "0jwnvsf5whklq14ihaxs7b9nbic94mm56nvxljrdbvl6y628j9r5";
+      url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_macos.tar.gz";
+      sha256 = "1sfr5filsaqj93g5y4p9n8g5652dhr4whj25x4lifdxr2pp560xx";
     }
     else fetchurl {
       url = "https://isabelle.in.tum.de/website-${dirname}/dist/${dirname}_linux.tar.gz";
-      sha256 = "1928lwrw1v1p9s23kix30ncpqm8djmrnjixj82f3ni2a8sc3hrsp";
+      sha256 = "1bibabhlsvf6qsjjkgxcpq3cvl1z7r8yfcgqbhbvsiv69n3gyfk3";
     };
 
   buildInputs = [ perl polyml z3 ]
@@ -42,14 +42,14 @@ stdenv.mkDerivation rec {
       ML_SOURCES="\$POLYML_HOME/src"
     EOF
 
-    cat >contrib/jdk/etc/settings <<EOF
+    cat >contrib/jdk*/etc/settings <<EOF
       ISABELLE_JAVA_PLATFORM=${stdenv.system}
       ISABELLE_JDK_HOME=${java}
     EOF
 
     echo ISABELLE_LINE_EDITOR=${rlwrap}/bin/rlwrap >>etc/settings
 
-    for comp in contrib/jdk contrib/polyml-* contrib/z3-*; do
+    for comp in contrib/jdk* contrib/polyml-* contrib/z3-*; do
       rm -rf $comp/x86*
     done
     '' + (if ! stdenv.isLinux then "" else ''
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
     bin/isabelle install $out/bin
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A generic proof assistant";
 
     longDescription = ''
@@ -74,9 +74,9 @@ stdenv.mkDerivation rec {
       to be expressed in a formal language and provides tools for proving those
       formulas in a logical calculus.
     '';
-    homepage = "http://isabelle.in.tum.de/";
-    license = "LGPL";
-    maintainers = [ stdenv.lib.maintainers.jwiegley ];
-    platforms = stdenv.lib.platforms.linux;
+    homepage = "https://isabelle.in.tum.de/";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.jwiegley ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/logic/lean/default.nix b/nixpkgs/pkgs/applications/science/logic/lean/default.nix
index 7fcc4cdd062e..32a75cabc13f 100644
--- a/nixpkgs/pkgs/applications/science/logic/lean/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/lean/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lean";
-  version = "3.16.2";
+  version = "3.19.0";
 
   src = fetchFromGitHub {
     owner  = "leanprover-community";
     repo   = "lean";
     rev    = "v${version}";
-    sha256 = "0fvm7gvbr5kn258sqpnxa7dvzz84iv1dx1n066vih5gz80plz4lh";
+    sha256 = "1dybq6104vc62x620izgblfd8dqc4ynaiw8ml07km78lq38anm6v";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/science/logic/leo3/binary.nix b/nixpkgs/pkgs/applications/science/logic/leo3/binary.nix
index dcea9c27acb4..29a9adf94c4b 100644
--- a/nixpkgs/pkgs/applications/science/logic/leo3/binary.nix
+++ b/nixpkgs/pkgs/applications/science/logic/leo3/binary.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     mkdir -p "$out"/{bin,lib/java/leo3}
     cp "${jar}" "$out/lib/java/leo3/leo3.jar"
     echo "#!${runtimeShell}" > "$out/bin/leo3"
-    echo "'${openjdk}/bin/java' -jar '$out/lib/java/leo3/leo3.jar' \"\$@\""  > "$out/bin/leo3"
+    echo "'${openjdk}/bin/java' -jar '$out/lib/java/leo3/leo3.jar' \"\$@\""  >> "$out/bin/leo3"
     chmod a+x "$out/bin/leo3"
   '';
 
diff --git a/nixpkgs/pkgs/applications/science/logic/ltl2ba/default.nix b/nixpkgs/pkgs/applications/science/logic/ltl2ba/default.nix
index 02e9844115ef..b5d13db3b9a1 100644
--- a/nixpkgs/pkgs/applications/science/logic/ltl2ba/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/ltl2ba/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ltl2ba";
-  version = "1.2";
+  version = "1.3";
 
   src = fetchurl {
     url    = "http://www.lsv.ens-cachan.fr/~gastin/ltl2ba/${pname}-${version}.tar.gz";
-    sha256 = "0vzv5g7v87r41cvdafxi6yqnk7glzxrzgavy8213k59f6v11dzlx";
+    sha256 = "1bz9gjpvby4mnvny0nmxgd81rim26mqlcnjlznnxxk99575pfa4i";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/nixpkgs/pkgs/applications/science/logic/mcy/default.nix b/nixpkgs/pkgs/applications/science/logic/mcy/default.nix
index a9366d560583..eba910e07eb1 100644
--- a/nixpkgs/pkgs/applications/science/logic/mcy/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/mcy/default.nix
@@ -7,31 +7,38 @@ let
 in
 stdenv.mkDerivation {
   pname = "mcy";
-  version = "2020.03.21";
+  version = "2020.08.03";
 
   src = fetchFromGitHub {
     owner  = "YosysHQ";
     repo   = "mcy";
-    rev    = "bac92b8aad9bf24714fda70d3750bb50d6d96177";
-    sha256 = "0mmg6zd5cbn8g0am9c3naamg0lq67yyy117fzn2ydigcyia7vmnp";
+    rev    = "62048e69df13f8e03670424626755ae8ef4c36ff";
+    sha256 = "15xxgzx1zxzx5kshqyrxnfx33cz6cjzxcdcn6z98jhs9bwyvf96f";
   };
 
   buildInputs = [ python ];
   patchPhase = ''
+    chmod +x scripts/create_mutated.sh
+    patchShebangs .
+
     substituteInPlace mcy.py \
       --replace yosys '${yosys}/bin/yosys' \
       --replace 'os.execvp("mcy-dash"' "os.execvp(\"$out/bin/mcy-dash\""
     substituteInPlace mcy-dash.py \
-      --replace 'app.run(debug=True)' 'app.run(host="0.0.0.0",debug=True)'
+      --replace 'app.run(debug=True)' 'app.run(host="0.0.0.0",debug=True)' \
+      --replace 'subprocess.Popen(["mcy"' "subprocess.Popen([\"$out/bin/mcy\""
+    substituteInPlace scripts/create_mutated.sh \
+      --replace yosys '${yosys}/bin/yosys'
   '';
 
   # the build needs a bit of work...
   buildPhase = "true";
   installPhase = ''
-    mkdir -p $out/bin $out/share/mcy/dash
+    mkdir -p $out/bin $out/share/mcy/{dash,scripts}
     install mcy.py      $out/bin/mcy      && chmod +x $out/bin/mcy
     install mcy-dash.py $out/bin/mcy-dash && chmod +x $out/bin/mcy-dash
-    cp -r dash/. $out/share/mcy/dash/.
+    cp -r dash/.    $out/share/mcy/dash/.
+    cp -r scripts/. $out/share/mcy/scripts/.
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/applications/science/logic/ott/default.nix b/nixpkgs/pkgs/applications/science/logic/ott/default.nix
index fa2ad9c4abc4..ecc253a64d98 100644
--- a/nixpkgs/pkgs/applications/science/logic/ott/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/ott/default.nix
@@ -1,27 +1,22 @@
-{ stdenv, fetchFromGitHub, pkgconfig, ocaml }:
+{ stdenv, fetchFromGitHub, pkgconfig, ocaml, opaline }:
 
 stdenv.mkDerivation rec {
   pname = "ott";
-  version = "0.30";
+  version = "0.31";
 
   src = fetchFromGitHub {
     owner = "ott-lang";
     repo = "ott";
     rev = version;
-    sha256 = "16bxfnm30z94x36vr8vs6zd6fj55vnb7aypjl6hf7clk42040brc";
+    sha256 = "0l81126i2qkz11fs5yrjdgymnqgjcs5avb7f951h61yh1s68jpnn";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig opaline ];
   buildInputs = [ ocaml ];
 
-  installPhase = ''
-    mkdir -p $out/bin
-    cp src/ott.opt $out/bin
-    ln -s $out/bin/ott.opt $out/bin/ott
+  installTargets = "ott.install";
 
-    mkdir -p $out/share/emacs/site-lisp
-    cp emacs/ott-mode.el $out/share/emacs/site-lisp
-    '';
+  postInstall = "opaline -prefix $out";
 
   meta = {
     description = "Ott: tool for the working semanticist";
diff --git a/nixpkgs/pkgs/applications/science/logic/proverif/default.nix b/nixpkgs/pkgs/applications/science/logic/proverif/default.nix
index 6a9367b30aa0..6acae2bcb766 100644
--- a/nixpkgs/pkgs/applications/science/logic/proverif/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/proverif/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "proverif";
-  version = "2.01";
+  version = "2.02pl1";
 
   src = fetchurl {
     url    = "http://prosecco.gforge.inria.fr/personal/bblanche/proverif/proverif${version}.tar.gz";
-    sha256 = "01wp5431c77z0aaa99h8bnm5yhr6jslpqc8iyg0a7gxfqnb19gxi";
+    sha256 = "1jmzfpx0hdgfmkq0jp6i3k5av9xxgndjaj743wfy37svn0ga4jjx";
   };
 
   buildInputs = with ocamlPackages; [ ocaml findlib lablgtk ];
diff --git a/nixpkgs/pkgs/applications/science/logic/sad/default.nix b/nixpkgs/pkgs/applications/science/logic/sad/default.nix
index f1066abf6931..77613a135710 100644
--- a/nixpkgs/pkgs/applications/science/logic/sad/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/sad/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation {
     maintainers = [ stdenv.lib.maintainers.schmitthenner ];
     homepage = "http://nevidal.org/sad.en.html";
     platforms = stdenv.lib.platforms.linux;
+    broken = true;  # ghc-8.4.4 is gone from Nixpkgs
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/logic/symbiyosys/default.nix b/nixpkgs/pkgs/applications/science/logic/symbiyosys/default.nix
index debdc56f0353..9cf8b0845d43 100644
--- a/nixpkgs/pkgs/applications/science/logic/symbiyosys/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/symbiyosys/default.nix
@@ -1,20 +1,20 @@
 { stdenv, fetchFromGitHub
 , bash, python3, yosys
-, yices, boolector, aiger
+, yices, boolector, z3, aiger
 }:
 
 stdenv.mkDerivation {
   pname = "symbiyosys";
-  version = "2020.05.18";
+  version = "2020.08.22";
 
   src = fetchFromGitHub {
     owner  = "YosysHQ";
     repo   = "SymbiYosys";
-    rev    = "13fef4a710d0e2cf0f109ca75a94fb7253ba6838";
-    sha256 = "152nyxddiqbxvbd06cmwavvgi931v6i35zj9sh3z04m737grvb3d";
+    rev    = "33b0bb7d836fe2a73dc7b10587222f2a718beef4";
+    sha256 = "03rbrbwsji1sqcp2yhgbc0fca04zsryv2g4izjhdzv64nqjzjyhn";
   };
 
-  buildInputs = [ python3 ];
+  buildInputs = [ ];
   patchPhase = ''
     patchShebangs .
 
@@ -26,14 +26,15 @@ stdenv.mkDerivation {
     # Fix various executable references
     substituteInPlace sbysrc/sby_core.py \
       --replace '"/usr/bin/env", "bash"' '"${bash}/bin/bash"' \
-      --replace ': "btormc"'       ': "${boolector}/bin/btormc"' \
-      --replace ': "yosys"'        ': "${yosys}/bin/yosys"' \
-      --replace ': "yosys-smtbmc"' ': "${yosys}/bin/yosys-smtbmc"' \
-      --replace ': "yosys-abc"'    ': "${yosys}/bin/yosys-abc"' \
-      --replace ': "aigbmc"'       ': "${aiger}/bin/aigbmc"' \
+      --replace ', "btormc"'             ', "${boolector}/bin/btormc"' \
+      --replace ', "aigbmc"'             ', "${aiger}/bin/aigbmc"'
+
+    substituteInPlace sbysrc/sby_core.py \
+      --replace '##yosys-program-prefix##' '"${yosys}/bin/"'
   '';
 
   buildPhase = "true";
+
   installPhase = ''
     mkdir -p $out/bin $out/share/yosys/python3
 
@@ -43,6 +44,10 @@ stdenv.mkDerivation {
     chmod +x $out/bin/sby
   '';
 
+  doCheck = false; # not all provers are yet packaged...
+  checkInputs = [ python3 yosys boolector yices z3 aiger ];
+  checkPhase = "make test";
+
   meta = {
     description = "Tooling for Yosys-based verification flows";
     homepage    = "https://symbiyosys.readthedocs.io/";
diff --git a/nixpkgs/pkgs/applications/science/logic/tlaplus/tlaps.nix b/nixpkgs/pkgs/applications/science/logic/tlaplus/tlaps.nix
index cbca37ea53d1..3872d3a9826b 100644
--- a/nixpkgs/pkgs/applications/science/logic/tlaplus/tlaps.nix
+++ b/nixpkgs/pkgs/applications/science/logic/tlaplus/tlaps.nix
@@ -48,7 +48,7 @@ stdenv.mkDerivation rec {
     homepage    = "https://tla.msr-inria.inria.fr/tlaps/content/Home.html";
     license     = stdenv.lib.licenses.bsd2;
     platforms   = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.badi ];
+    maintainers = [ ];
   };
 
 }
diff --git a/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix b/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix
index f326d62f8f0b..5c445459a36a 100644
--- a/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix
+++ b/nixpkgs/pkgs/applications/science/logic/tlaplus/toolbox.nix
@@ -13,7 +13,7 @@ let
     comment = "IDE for TLA+";
     desktopName = name;
     genericName = comment;
-    categories = "Application;Development";
+    categories = "Development";
     extraEntries = ''
       StartupWMClass=TLA+ Toolbox
     '';
@@ -76,6 +76,6 @@ in stdenv.mkDerivation {
     # http://lamport.azurewebsites.net/tla/license.html
     license = with lib.licenses; [ mit ];
     platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.badi ];
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/logic/vampire/default.nix b/nixpkgs/pkgs/applications/science/logic/vampire/default.nix
index e5941a35fd59..dca03823e9ea 100644
--- a/nixpkgs/pkgs/applications/science/logic/vampire/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/vampire/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vampire";
-  version = "4.4";
+  version = "4.5.1";
 
   src = fetchFromGitHub {
     owner = "vprover";
     repo = "vampire";
     rev = version;
-    sha256 = "0v2fdfnk7l5xr5c4y54r25g1nbp4vi85zv29nbklh3r7aws3w9q1";
+    sha256 = "0q9gqyq96amdnhxgwjyv0r2sxakikp3jvmizgj2h0spfz643p8db";
   };
 
   buildInputs = [ z3 zlib ];
diff --git a/nixpkgs/pkgs/applications/science/logic/why3/configure.patch b/nixpkgs/pkgs/applications/science/logic/why3/configure.patch
deleted file mode 100644
index 3eebf3cf165d..000000000000
--- a/nixpkgs/pkgs/applications/science/logic/why3/configure.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/configure b/configure
---- a/configure
-+++ b/configure
-@@ -4029,7 +4029,6 @@ fi
- 
- if test "$USEOCAMLFIND" = yes; then
-    OCAMLFINDLIB=$(ocamlfind printconf stdlib)
--   OCAMLFIND=$(which ocamlfind)
-    if test "$OCAMLFINDLIB" != "$OCAMLLIB"; then
-    USEOCAMLFIND=no;
-    echo "but your ocamlfind is not compatible with your ocamlc:"
diff --git a/nixpkgs/pkgs/applications/science/logic/why3/default.nix b/nixpkgs/pkgs/applications/science/logic/why3/default.nix
index 51cb2a456c19..eacff32bdf62 100644
--- a/nixpkgs/pkgs/applications/science/logic/why3/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/why3/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation {
   pname = "why3";
-  version = "1.2.1";
+  version = "1.3.3";
 
   src = fetchurl {
-    url = "https://gforge.inria.fr/frs/download.php/file/38185/why3-1.2.1.tar.gz";
-    sha256 = "014gkwisjp05x3342zxkryb729p02ngx1hcjjsrplpa53jzgz647";
+    url = "https://gforge.inria.fr/frs/download.php/file/38367/why3-1.3.3.tar.gz";
+    sha256 = "1n0a2nn1gnk0zg339lh698g4wpk7m8m1vyi2yvifd5adqvk4milw";
   };
 
   buildInputs = with ocamlPackages; [
@@ -29,14 +29,9 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
-  # Remove unnecessary call to which
-  patches = [ ./configure.patch
-    # Compatibility with js_of_ocaml 3.5
-    (fetchpatch {
-      url = "https://gitlab.inria.fr/why3/why3/commit/269ab313382fe3e64ef224813937314748bf7cf0.diff";
-      sha256 = "0i92wdnbh8pihvl93ac0ma1m5g95jgqqqj4kw6qqvbbjjqdgvzwa";
-    })
-  ];
+  postPatch = ''
+    substituteInPlace Makefile.in --replace js_of_ocaml.ppx js_of_ocaml-ppx
+  '';
 
   configureFlags = [ "--enable-verbose-make" ];
 
diff --git a/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix b/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix
index 685d6ee48619..4038db17f938 100644
--- a/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/workcraft/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "workcraft";
-  version = "3.2.6";
+  version = "3.3.0";
 
   src = fetchurl {
     url = "https://github.com/workcraft/workcraft/releases/download/v${version}/workcraft-v${version}-linux.tar.gz";
-    sha256 = "1sfbxmk71gp7paw4l5azqr0lsgsyp4308gx2jz8w4k3nasfshz25";
+    sha256 = "072i7kan2c9f4s9jxwqr4ccsi9979c12xhwr385sbq06rwyrna85";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/applications/science/logic/z3/default.nix b/nixpkgs/pkgs/applications/science/logic/z3/default.nix
index 170a56b95b91..84c1544071ff 100644
--- a/nixpkgs/pkgs/applications/science/logic/z3/default.nix
+++ b/nixpkgs/pkgs/applications/science/logic/z3/default.nix
@@ -1,32 +1,41 @@
-{ stdenv, fetchFromGitHub, python, fixDarwinDylibNames }:
+{ stdenv, fetchFromGitHub, python, fixDarwinDylibNames
+, javaBindings ? false
+, pythonBindings ? true
+, jdk ? null
+}:
+
+assert javaBindings -> jdk != null;
+
+with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "z3";
-  version = "4.8.7";
+  version = "4.8.9";
 
   src = fetchFromGitHub {
     owner  = "Z3Prover";
     repo   = pname;
     rev    = "z3-${version}";
-    sha256 = "0hprcdwhhyjigmhhk6514m71bnmvqci9r8gglrqilgx424r6ff7q";
+    sha256 = "1hnbzq10d23drd7ksm3c1n2611c3kd0q0yxgz8y78zaafwczvwxx";
   };
 
-  buildInputs = [ python fixDarwinDylibNames ];
+  buildInputs = [ python fixDarwinDylibNames ] ++ optional javaBindings jdk;
   propagatedBuildInputs = [ python.pkgs.setuptools ];
   enableParallelBuilding = true;
 
-  configurePhase = ''
-    ${python.interpreter} scripts/mk_make.py --prefix=$out --python --pypkgdir=$out/${python.sitePackages}
-    cd build
-  '';
+  configurePhase = concatStringsSep " " (
+    [ "${python.interpreter} scripts/mk_make.py --prefix=$out" ]
+    ++ optional javaBindings   "--java"
+    ++ optional pythonBindings "--python --pypkgdir=$out/${python.sitePackages}"
+  ) + "\n" + "cd build";
 
   postInstall = ''
-    mkdir -p $dev $lib $python/lib
-
-    mv $out/lib/python*  $python/lib/
-    mv $out/lib          $lib/lib
-    mv $out/include      $dev/include
-
+    mkdir -p $dev $lib
+    mv $out/lib     $lib/lib
+    mv $out/include $dev/include
+  '' + optionalString pythonBindings ''
+    mkdir -p $python/lib
+    mv $lib/lib/python* $python/lib/
     ln -sf $lib/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary} $python/${python.sitePackages}/z3/lib/libz3${stdenv.hostPlatform.extensions.sharedLibrary}
   '';
 
@@ -37,6 +46,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://github.com/Z3Prover/z3";
     license     = stdenv.lib.licenses.mit;
     platforms   = stdenv.lib.platforms.x86_64;
-    maintainers = [ stdenv.lib.maintainers.thoughtpolice ];
+    maintainers = with stdenv.lib.maintainers; [ thoughtpolice ttuegel ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/machine-learning/finalfrontier/default.nix b/nixpkgs/pkgs/applications/science/machine-learning/finalfrontier/default.nix
new file mode 100644
index 000000000000..f1a2dbaa54fb
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/machine-learning/finalfrontier/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, installShellFiles
+, pkg-config
+, libiconv
+, openssl
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "finalfrontier";
+  version = "0.9.4";
+
+  src = fetchFromGitHub {
+    owner = "finalfusion";
+    repo = pname;
+    rev = version;
+    sha256 = "1lvwv238p8hrl4sc5pmnvaargl2dd25p44gxl3kibq5ng03afd0n";
+  };
+
+  cargoSha256 = "1ibn22v24brdlrar6j7fryiwimbbw7byak265hrw7a5agf1799x0";
+
+  nativeBuildInputs = [
+    installShellFiles
+    pkg-config
+  ];
+
+  buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [
+    libiconv
+    Security
+  ];
+
+  postInstall = ''
+    installManPage man/*.1
+
+    # Install shell completions
+    for shell in bash fish zsh; do
+      $out/bin/finalfrontier completions $shell > finalfrontier.$shell
+    done
+    installShellCompletion finalfrontier.{bash,fish,zsh}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Utility for training word and subword embeddings";
+    homepage = "https://github.com/finalfusion/finalfrontier/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix b/nixpkgs/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
new file mode 100644
index 000000000000..eeeafdd3d98c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/machine-learning/finalfusion-utils/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, installShellFiles
+, blas
+, gfortran
+, lapack
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "finalfusion-utils";
+  version = "0.12.0";
+
+  src = fetchFromGitHub {
+    owner = "finalfusion";
+    repo = pname;
+    rev = version;
+    sha256 = "0gxcjrhfa86kz5qmdf5h278ydc3nc0nfj61brnykb723mg45jj41";
+  };
+
+  cargoSha256 = "03p786hh54zql61vhmsqcdgvz23v2rm12cgwf7clfmk6a6yj6ibx";
+
+  # Enables build against a generic BLAS.
+  cargoBuildFlags = [
+    "--features"
+    "netlib"
+  ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  buildInputs = [
+    blas
+    gfortran.cc.lib
+    lapack
+  ] ++ lib.optionals stdenv.isDarwin [
+    Security
+  ];
+
+  postInstall = ''
+    # Install shell completions
+    for shell in bash fish zsh; do
+      $out/bin/finalfusion completions $shell > finalfusion.$shell
+    done
+    installShellCompletion finalfusion.{bash,fish,zsh}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Utility for converting, quantizing, and querying word embeddings";
+    homepage = "https://github.com/finalfusion/finalfusion-utils/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix b/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix
index a952fb559ce6..05c56b0b0958 100644
--- a/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix
+++ b/nixpkgs/pkgs/applications/science/machine-learning/labelimg/default.nix
@@ -1,20 +1,31 @@
-{ stdenv, python2Packages, fetchurl }:
-  python2Packages.buildPythonApplication rec {
+{ stdenv, python3Packages, fetchFromGitHub, qt5 }:
+  python3Packages.buildPythonApplication rec {
     pname = "labelImg";
-    version = "1.8.1";
-    src = fetchurl {
-      url = "https://github.com/tzutalin/labelImg/archive/v${version}.tar.gz";
-      sha256 = "1banpkpbrny1jx3zsgs544xai62z5yvislbq782a5r47gv2f2k4a";
+    version = "1.8.3";
+    src = fetchFromGitHub {
+      owner = "tzutalin";
+      repo = "labelImg";
+      rev = "v${version}";
+      sha256 = "07v106fzlmxrbag4xm06m4mx9m0gckb27vpwsn7sap1bbgc1pap5";
     };
-    nativeBuildInputs = with python2Packages; [
-      pyqt4
+    nativeBuildInputs = with python3Packages; [
+      pyqt5
+      qt5.wrapQtAppsHook
     ];
-    propagatedBuildInputs = with python2Packages; [
-      pyqt4
+    propagatedBuildInputs = with python3Packages; [
+      pyqt5
       lxml
+      sip
     ];
     preBuild = ''
-      make qt4py2
+      make qt5py3
+    '';
+    postInstall = ''
+      cp libs/resources.py $out/${python3Packages.python.sitePackages}/libs
+    '';
+    dontWrapQtApps = true;
+    preFixup = ''
+      makeWrapperArgs+=("''${qtWrapperArgs[@]}")
     '';
     meta = with stdenv.lib; {
       description = "LabelImg is a graphical image annotation tool and label object bounding boxes in images";
diff --git a/nixpkgs/pkgs/applications/science/machine-learning/streamlit/default.nix b/nixpkgs/pkgs/applications/science/machine-learning/streamlit/default.nix
index 3856b8ec841a..26b241ff0ada 100644
--- a/nixpkgs/pkgs/applications/science/machine-learning/streamlit/default.nix
+++ b/nixpkgs/pkgs/applications/science/machine-learning/streamlit/default.nix
@@ -1,6 +1,6 @@
 {   lib, buildPythonApplication, fetchPypi
   , altair, astor, base58, blinker, boto3, botocore, click, enum-compat
-  , future, pillow, protobuf, requests, toml, tornado, tzlocal, validators, watchdog
+  , future, pillow, protobuf, requests, toml, tornado_5, tzlocal, validators, watchdog
   , jinja2, setuptools
 }:
 
@@ -16,7 +16,7 @@ buildPythonApplication rec {
 
   propagatedBuildInputs = [
     altair astor base58 blinker boto3 botocore click enum-compat
-    future pillow protobuf requests toml tornado tzlocal validators watchdog
+    future pillow protobuf requests toml tornado_5 tzlocal validators watchdog
     jinja2 setuptools
   ];
 
diff --git a/nixpkgs/pkgs/applications/science/math/R/default.nix b/nixpkgs/pkgs/applications/science/math/R/default.nix
index 52da3b4a1ac9..717b240c1cce 100644
--- a/nixpkgs/pkgs/applications/science/math/R/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/R/default.nix
@@ -12,11 +12,11 @@
 assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
-  name = "R-4.0.0";
+  name = "R-4.0.2";
 
   src = fetchurl {
     url = "https://cran.r-project.org/src/base/R-4/${name}.tar.gz";
-    sha256 = "0h1995smlyiyhx7gpg9paxsfqrcn6g9bbp5h9r47i6an3clv1gh6";
+    sha256 = "0xdy3dy2bzdiba8z94hjykyra8si8a5q15s0bri7c26scjrymg6k";
   };
 
   dontUseImakeConfigure = true;
diff --git a/nixpkgs/pkgs/applications/science/math/calculix/calculix.patch b/nixpkgs/pkgs/applications/science/math/calculix/calculix.patch
index 5b8f492a8e7c..2334d54711e5 100644
--- a/nixpkgs/pkgs/applications/science/math/calculix/calculix.patch
+++ b/nixpkgs/pkgs/applications/science/math/calculix/calculix.patch
@@ -1,16 +1,7 @@
-diff --git a/ccx_2.15/src/Makefile b/ccx_2.15/src/Makefile
-index 9cab2fc..6e977b8 100755
---- a/ccx_2.15/src/Makefile
-+++ b/ccx_2.15/src/Makefile
-@@ -1,6 +1,6 @@
- 
- CFLAGS = -Wall -O3  -I ../../../SPOOLES.2.2 -DARCH="Linux" -DSPOOLES -DARPACK -DMATRIXSTORAGE -DNETWORKOUT
--FFLAGS = -Wall -O3 
-+FFLAGS = -Wall -O3
- 
- CC=cc
- FC=gfortran
-@@ -18,15 +18,10 @@ OCCXF = $(SCCXF:.f=.o)
+diff -Naur a/ccx_2.17/src/Makefile b/ccx_2.17/src/Makefile
+--- a/ccx_2.17/src/Makefile	2020-07-23 21:41:38.507761972 +0200
++++ b/ccx_2.17/src/Makefile	2020-08-22 16:53:50.004938281 +0200
+@@ -18,15 +18,10 @@
  OCCXC = $(SCCXC:.c=.o)
  OCCXMAIN = $(SCCXMAIN:.c=.o)
  
@@ -22,10 +13,10 @@ index 9cab2fc..6e977b8 100755
 -	../../../ARPACK/libarpack_INTEL.a \
 -       -lpthread -lm -lc
 -
--ccx_2.15: $(OCCXMAIN) ccx_2.15.a  $(LIBS)
--	./date.pl; $(CC) $(CFLAGS) -c ccx_2.15.c; $(FC)  -Wall -O3 -o $@ $(OCCXMAIN) ccx_2.15.a $(LIBS)
-+ccx_2.15: $(OCCXMAIN) ccx_2.15.a
-+	$(CC) $(CFLAGS) -c ccx_2.15.c; $(FC)  -Wall -O3 -o $@ $(OCCXMAIN) ccx_2.15.a $(LIBS)
+-ccx_2.17: $(OCCXMAIN) ccx_2.17.a  $(LIBS)
+-	./date.pl; $(CC) $(CFLAGS) -c ccx_2.17.c; $(FC)  -Wall -O2 -o $@ $(OCCXMAIN) ccx_2.17.a $(LIBS)
++ccx_2.17: $(OCCXMAIN) ccx_2.17.a
++	$(CC) $(CFLAGS) -c ccx_2.17.c; $(FC)  -Wall -O2 -o $@ $(OCCXMAIN) ccx_2.17.a $(LIBS)
  
- ccx_2.15.a: $(OCCXF) $(OCCXC)
+ ccx_2.17.a: $(OCCXF) $(OCCXC)
  	ar vr $@ $?
diff --git a/nixpkgs/pkgs/applications/science/math/calculix/default.nix b/nixpkgs/pkgs/applications/science/math/calculix/default.nix
index 44882594550b..e37e9d0910c3 100644
--- a/nixpkgs/pkgs/applications/science/math/calculix/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/calculix/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "calculix";
-  version = "2.15";
+  version = "2.17";
 
   src = fetchurl {
     url = "http://www.dhondt.de/ccx_${version}.src.tar.bz2";
-    sha256 = "0d4axfxgm3ag4p2vx9rjcky7c122k99a2nhv1jv53brm35rblzdw";
+    sha256 = "0l3fizxfdj2mpdp62wnk9v47q2yc3cy39fpsm629z7bjmba8lw6a";
   };
 
   nativeBuildInputs = [ gfortran ];
diff --git a/nixpkgs/pkgs/applications/science/math/geogebra/default.nix b/nixpkgs/pkgs/applications/science/math/geogebra/default.nix
index 1dd92267a837..5cebef83a4a9 100644
--- a/nixpkgs/pkgs/applications/science/math/geogebra/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/geogebra/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "geogebra";
-  version = "5-0-574-0";
+  version = "5-0-593-0";
 
   preferLocalBuild = true;
 
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
       "https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
       "http://web.archive.org/https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
     ];
-    sha256 = "0jbci4spqkf33yb079lsnsc684y4mdf1p8lm9r0037av8jlsrgrc";
+    sha256 = "d84c27a3299e6df08881733d22215a18decedcba4c2d97a9e5424c39cd57db35";
   };
 
   srcIcon = fetchurl {
diff --git a/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix b/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix
new file mode 100644
index 000000000000..65caff82ead1
--- /dev/null
+++ b/nixpkgs/pkgs/applications/science/math/geogebra/geogebra6.nix
@@ -0,0 +1,46 @@
+{ stdenv, unzip, fetchurl, electron_6, makeWrapper, geogebra }:
+stdenv.mkDerivation rec{
+
+  name = "geogebra-${version}";
+  version = "6-0-600-0";
+
+  src = fetchurl {
+    urls = [
+        "https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
+        "https://web.archive.org/web/20200904093945/https://download.geogebra.org/installers/6.0/GeoGebra-Linux64-Portable-${version}.zip"
+      ];
+    sha256 = "1l49rvfkil2cz6r7sa2mi0p6hvb6p66jv3x6xj8hjqls4l3sfhkm";
+  };
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  nativeBuildInputs = [
+    unzip
+    makeWrapper
+  ];
+
+  unpackPhase = ''
+    unzip $src
+  '';
+
+  installPhase = ''
+    mkdir -p $out/libexec/geogebra/ $out/bin
+    cp -r GeoGebra-linux-x64/{resources,locales} "$out/"
+    makeWrapper ${stdenv.lib.getBin electron_6}/bin/electron $out/bin/geogebra --add-flags "$out/resources/app"
+    install -Dm644 "${desktopItem}/share/applications/"* \
+      -t $out/share/applications/
+
+    install -Dm644 "${srcIcon}" \
+      "$out/share/icons/hicolor/scalable/apps/geogebra.svg"
+  '';
+
+  srcIcon = geogebra.srcIcon;
+
+  desktopItem = geogebra.desktopItem;
+  meta = with stdenv.lib; geogebra.meta // {
+    license = licenses.geogebra;
+    maintainers = with maintainers; [ voidless ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/science/math/gfan/default.nix b/nixpkgs/pkgs/applications/science/math/gfan/default.nix
index 72d1a548c530..adac92f376c8 100644
--- a/nixpkgs/pkgs/applications/science/math/gfan/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/gfan/default.nix
@@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
     sha256 = "02pihqb1lb76a0xbfwjzs1cd6ay3ldfxsm8dvsbl6qs3vkjxax56";
   };
 
-  patchPhase = stdenv.lib.optionalString stdenv.isDarwin ''
+  patchPhase = stdenv.lib.optionalString stdenv.cc.isClang ''
     substituteInPlace Makefile --replace "-fno-guess-branch-probability" ""
   '';
 
diff --git a/nixpkgs/pkgs/applications/science/math/gmsh/default.nix b/nixpkgs/pkgs/applications/science/math/gmsh/default.nix
index 946beff8003f..db7e238e8ded 100644
--- a/nixpkgs/pkgs/applications/science/math/gmsh/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/gmsh/default.nix
@@ -5,11 +5,11 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "gmsh";
-  version = "4.5.6";
+  version = "4.6.0";
 
   src = fetchurl {
     url = "http://gmsh.info/src/gmsh-${version}-source.tgz";
-    sha256 = "0gs65bgr1ph5lz7r6manqj8cra30s7c94pxilkd2z0p5vq6fpsj6";
+    sha256 = "075dyblmlfdlhgbb1dwk6jzlqx93q90n6zwpr3mpii5n1zjmab0g";
   };
 
   buildInputs = [ blas lapack gmm fltk libjpeg zlib libGLU libGL
diff --git a/nixpkgs/pkgs/applications/science/math/lp_solve/default.nix b/nixpkgs/pkgs/applications/science/math/lp_solve/default.nix
index f39c6a04d190..673c28ffa77f 100644
--- a/nixpkgs/pkgs/applications/science/math/lp_solve/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/lp_solve/default.nix
@@ -23,13 +23,13 @@ stdenv.mkDerivation rec {
     cd lp_solve*/lpsolve55
     bash ccc
     mkdir -pv $out/lib
-    cp -v bin/*/* $out/lib
+    find bin -type f -exec cp -v "{}" $out/lib \;
     )
     (
     cd lp_solve*/lp_solve
     bash ccc
     mkdir -pv $out/bin
-    cp -v bin/*/* $out/bin
+    find bin -type f -exec cp -v "{}" $out/bin \;
     )
     (
     mkdir -pv $out/include
diff --git a/nixpkgs/pkgs/applications/science/math/mathematica/l10ns.nix b/nixpkgs/pkgs/applications/science/math/mathematica/l10ns.nix
index c75c91be059c..8ec6ac5048d5 100644
--- a/nixpkgs/pkgs/applications/science/math/mathematica/l10ns.nix
+++ b/nixpkgs/pkgs/applications/science/math/mathematica/l10ns.nix
@@ -8,6 +8,12 @@ let allVersions = with lib; flip map
   # N.B. Versions in this list should be ordered from newest to oldest.
   [
     {
+      version = "12.1.1";
+      lang = "en";
+      language = "English";
+      sha256 = "02mk8gmv8idnakva1nc7r7mx8ld02lk7jgsj1zbn962aps3bhixd";
+    }
+    {
       version = "12.1.0";
       lang = "en";
       language = "English";
diff --git a/nixpkgs/pkgs/applications/science/math/nasc/default.nix b/nixpkgs/pkgs/applications/science/math/nasc/default.nix
index 002acbf3875f..9d14df5a7988 100644
--- a/nixpkgs/pkgs/applications/science/math/nasc/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/nasc/default.nix
@@ -1,7 +1,9 @@
 { stdenv
 , fetchFromGitHub
-, fetchpatch
 , pkgconfig
+, python3
+, meson
+, ninja
 , vala
 , gtk3
 , glib
@@ -9,52 +11,67 @@
 , libsoup
 , gtksourceview
 , libgee
-, cmake
+, nix-update-script
+, webkitgtk
 , libqalculate
-, cln
+, intltool
+, gnuplot
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "nasc";
-  version = "0.5.4";
+  version = "0.7.5";
 
   src = fetchFromGitHub {
     owner = "parnold-x";
     repo = pname;
     rev = version;
-    sha256 = "036v3dx8yasp19j88lflibqnpfi5d0nk7qkcnr80zn1lvawf4wgn";
+    sha256 = "kSRc5RLkI6SBJirUYw6swZi8IJhaL3y74b2Zw8kh2XA=";
+    fetchSubmodules = true;
   };
 
-  patches = [
-    # fix build with gcc9
-    (fetchpatch {
-      url = "https://github.com/parnold-x/nasc/commit/46b9b80e228b6b86001bded45d85e073a9411549.patch";
-      sha256 = "1sm2aw0xhw2chk036r231nmp2f2ypxcmzggwljkn7wfzgg3h1mx3";
-    })
-  ];
-
   nativeBuildInputs = [
-    cmake
-    vala
+    glib # post_install.py
+    gtk3 # post_install.py
+    intltool # for libqalculate
+    meson
+    ninja
     pkgconfig
+    python3
+    vala
     wrapGAppsHook
   ];
 
   buildInputs = [
-    cln
-    libsoup
-    gtk3
     glib
+    gtk3
     gtksourceview
     libgee
-    libqalculate
     pantheon.elementary-icon-theme
     pantheon.granite
-  ];
+    webkitgtk
+    # We add libqalculate's runtime dependencies because nasc has it as a modified subproject.
+  ] ++ libqalculate.buildInputs ++ libqalculate.propagatedBuildInputs;
+
+  postPatch = ''
+    chmod +x meson/post_install.py
+    patchShebangs meson/post_install.py
+
+    # patch subproject. same code in libqalculate expression
+    substituteInPlace subprojects/libqalculate/libqalculate/Calculator-plot.cc \
+      --replace 'commandline = "gnuplot"' 'commandline = "${gnuplot}/bin/gnuplot"' \
+      --replace '"gnuplot - ' '"${gnuplot}/bin/gnuplot - '
+  '';
+
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
 
   meta = with stdenv.lib; {
-    description = "Do maths like a normal person";
+    description = "Do maths like a normal person, designed for elementary OS";
     longDescription = ''
       It’s an app where you do maths like a normal person. It lets you
       type whatever you want and smartly figures out what is math and
@@ -63,7 +80,7 @@ stdenv.mkDerivation rec {
       the equations it’s used in.
     '';
     homepage = "https://github.com/parnold-x/nasc";
-    maintainers = with maintainers; [ samdroid-apps ];
+    maintainers = pantheon.maintainers;
     platforms = platforms.linux;
     license = licenses.gpl3Plus;
   };
diff --git a/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix b/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix
index e393111590a8..df622e7303d4 100644
--- a/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/qalculate-gtk/default.nix
@@ -2,17 +2,25 @@
 
 stdenv.mkDerivation rec {
   pname = "qalculate-gtk";
-  version = "3.8.0a";
+  version = "3.12.1";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "qalculate-gtk";
     rev = "v${version}";
-    sha256 = "0bjd61bbc5b2i09kz3ss01c0xmxrhmiv5wpbhhplkp3yhw2qrf3m";
+    sha256 = "0ylsxj9rn3dc1grn9w6jisci3ak0hxgbwzqp54azs3aj5cmvkfgg";
   };
 
   patchPhase = ''
-    substituteInPlace src/main.cc --replace 'getPackageDataDir().c_str()' \"$out/share\"
+    # The gnome-search-provider2.c file generated by gdbus-codegen depends
+    # on gio-unix-2.0, which is a Requires.private of gtk+-3.0,
+    # and private dependencies are dropped in our default patched pkg-config.
+    # https://github.com/Qalculate/qalculate-gtk/pull/178
+    # https://github.com/NixOS/nixpkgs/issues/292
+    substituteInPlace configure.ac --replace 'libxml-2.0' 'libxml-2.0 gio-unix-2.0'
+
+    # https://github.com/Qalculate/qalculate-gtk/pull/179
+    echo searchprovider.o: gnome-search-provider2.c >>src/Makefile.am
   '';
 
   hardeningDisable = [ "format" ];
@@ -25,6 +33,7 @@ stdenv.mkDerivation rec {
     description = "The ultimate desktop calculator";
     homepage = "http://qalculate.github.io";
     maintainers = with maintainers; [ gebner ];
+    license = licenses.gpl2Plus;
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/math/rofi-calc/default.nix b/nixpkgs/pkgs/applications/science/math/rofi-calc/default.nix
index 84adb2358d24..40b2711ff65a 100644
--- a/nixpkgs/pkgs/applications/science/math/rofi-calc/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/rofi-calc/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rofi-calc";
-  version = "1.7";
+  version = "1.8";
 
   src = fetchFromGitHub {
     owner = "svenstaro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "046x2zpvza7n0m81s75qkvmnpkvsvvyqqqjxcqzj7by0llpqs7wa";
+    sha256 = "0vwb9c3xvd2cms6cw8j8parg7w4bsxvvrd1wgggr8sz2p8rrvy5p";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix b/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix
index 626e1bf1ea92..ba7f6ccd18b5 100644
--- a/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix
+++ b/nixpkgs/pkgs/applications/science/math/sage/sage-env.nix
@@ -50,7 +50,7 @@
 , zlib
 , gsl
 , ntl
-, jdk
+, jdk8
 , less
 }:
 
@@ -61,6 +61,8 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 # dependencies.
 
 let
+  jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+
   runtimepath = (lib.makeBinPath ([
     "@sage-local@"
     "@sage-local@/build"
diff --git a/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix b/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
index a6afc95ac093..7a81a0d679a3 100644
--- a/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/wxmaxima/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wxmaxima";
-  version = "20.04.0";
+  version = "20.06.6";
 
   src = fetchFromGitHub {
     owner = "wxMaxima-developers";
     repo = "wxmaxima";
     rev = "Version-${version}";
-    sha256 = "0vrjxzfgmjdzm1rgl0crz4b4badl14jwh032y3xkcdvjl5j67lp3";
+    sha256 = "054f7n5kx75ng5j20rd5q27n9xxk03mrd7sbxyym1lsswzimqh4w";
   };
 
   buildInputs = [ wxGTK maxima gnome3.adwaita-icon-theme ];
diff --git a/nixpkgs/pkgs/applications/science/math/yacas/default.nix b/nixpkgs/pkgs/applications/science/math/yacas/default.nix
index c19d8f0fbc17..06aab669df5a 100644
--- a/nixpkgs/pkgs/applications/science/math/yacas/default.nix
+++ b/nixpkgs/pkgs/applications/science/math/yacas/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yacas";
-  version = "1.8.0";
+  version = "1.9.1";
 
   src = fetchFromGitHub {
     owner = "grzegorzmazur";
     repo = "yacas";
     rev = "v${version}";
-    sha256 = "0fwd98dwq6g0md3yhgyl30i377593b8rw6gsvffzvs11g3aqf1ga";
+    sha256 = "0dqgqvsb6ggr8jb3ngf0jwfkn6xwj2knhmvqyzx3amc74yd3ckqx";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/nixpkgs/pkgs/applications/science/medicine/aliza/default.nix b/nixpkgs/pkgs/applications/science/medicine/aliza/default.nix
index 279f602e3fd5..b4e56591f9c8 100644
--- a/nixpkgs/pkgs/applications/science/medicine/aliza/default.nix
+++ b/nixpkgs/pkgs/applications/science/medicine/aliza/default.nix
@@ -3,11 +3,11 @@
 with stdenv.lib;
 stdenv.mkDerivation {
   pname = "aliza";
-  version = "1.48.10";
+  version = "1.98.32";
   src = fetchurl {
     # See https://www.aliza-dicom-viewer.com/download
-    url = "https://drive.google.com/uc?export=download&id=16WEScARaSrzJpJkyGuOUxDF95eUwGyET";
-    sha256 = "1ls16cwd0fmb5axxmy9lgf8cqrf7g7swm26f0gr2vqp4z9bw6qn3";
+    url = "https://drive.google.com/uc?export=download&id=1nggavPhY_633T-AW9PdkcAgbWtzv3QKG";
+    sha256 = "00vbgv8ca9ckgkicyyngrb01yhhcqc8hygg2bls7b44c47hcc8zz";
     name = "aliza.rpm";
   };
 
diff --git a/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix b/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix
index 0db007f543f3..12cdeb453d7a 100644
--- a/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/cytoscape/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cytoscape";
-  version = "3.8.0";
+  version = "3.8.1";
 
   src = fetchurl {
     url = "https://github.com/cytoscape/cytoscape/releases/download/${version}/${pname}-unix-${version}.tar.gz";
-    sha256 = "0kksx12m83cjprdygmcc286990byf25yqfx5s7c07cizc21aavyg";
+    sha256 = "006g0w29sccg5h0zlrxdp3lx4vx1bfdhx2cms6aah85r5b82wgkf";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/science/misc/gplates/boostfix.patch b/nixpkgs/pkgs/applications/science/misc/gplates/boostfix.patch
deleted file mode 100644
index e429600b7095..000000000000
--- a/nixpkgs/pkgs/applications/science/misc/gplates/boostfix.patch
+++ /dev/null
@@ -1,612 +0,0 @@
---- a/src/app-logic/ApplicationState.h
-+++ b/src/app-logic/ApplicationState.h
-@@ -33,6 +33,7 @@
- #include <boost/shared_ptr.hpp>

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "FeatureCollectionFileState.h"

- #include "Layer.h"

- #include "LayerTaskRegistry.h"

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

- #include "model/types.h"

- #include "model/WeakReferenceCallback.h"

-+#endif

- 

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

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

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

- #include <QString>

- 

-+#ifndef Q_MOC_RUN

- #include "CoRegistrationLayerParams.h"

- #include "CoRegistrationLayerProxy.h"

- #include "LayerTask.h"

- 

- #include "model/FeatureCollectionHandle.h"

-+#endif

- 

- namespace GPlatesAppLogic

- {

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

- #include <QString>

- 

-+#ifndef Q_MOC_RUN

- #include "LayerTask.h"

- #include "RasterLayerParams.h"

- #include "RasterLayerProxy.h"

- 

- #include "model/FeatureCollectionHandle.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "FeatureCollectionFileState.h"

- #include "Layer.h"

- #include "Reconstruction.h"

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

- #include "model/FeatureCollectionHandle.h"

- #include "model/WeakReferenceCallback.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include <QString>

- 

-+#ifndef Q_MOC_RUN

- #include "LayerTask.h"

- #include "ReconstructLayerProxy.h"

- #include "ReconstructLayerParams.h"

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

- 

- #include "model/FeatureCollectionHandle.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "LayerParams.h"

- #include "ReconstructScalarCoverageLayerProxy.h"

- #include "ReconstructScalarCoverageParams.h"

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

- 

- #include "utils/SubjectObserverToken.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "LayerTask.h"

- #include "ReconstructScalarCoverageLayerParams.h"

- #include "ReconstructScalarCoverageLayerProxy.h"

- #include "ScalarCoverageFeatureProperties.h"

- 

- #include "model/FeatureCollectionHandle.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include <QString>

- 

-+#ifndef Q_MOC_RUN

- #include "LayerParams.h"

- #include "LayerTask.h"

- #include "ReconstructLayerProxy.h"

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

- 

- #include "model/FeatureCollectionHandle.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include <QString>

- 

-+#ifndef Q_MOC_RUN

- #include "LayerTask.h"

- #include "VelocityFieldCalculatorLayerParams.h"

- #include "VelocityFieldCalculatorLayerProxy.h"

-+#endif

- 

- #include "model/FeatureCollectionHandle.h"

- 

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

- #include <vector>

- #include <map>

-+#ifndef Q_MOC_RUN

- #include <boost/operators.hpp>

- 

- #include "CoRegFilter.h"

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

- #include "scribe/TranscribeContext.h"

- 

-+#endif

- 

- namespace GPlatesDataMining

- {

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

- #include <QtXml/QXmlStreamReader>

- 

-+#ifndef Q_MOC_RUN

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

- 

- #include "presentation/ViewState.h"

-+#endif

- 

- namespace GPlatesGui

- {

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

- #include <QHeaderView>

- 

-+#ifndef Q_MOC_RUN

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

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

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "TopologySectionsContainer.h"

- 

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

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

- 

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

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "GLAgeGridMaskSource.h"

- #include "GLContext.h"

- #include "GLLight.h"

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

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

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

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "VisualLayerParams.h"

- #include "VisualLayerType.h"

- 

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

- 

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

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "VisualLayer.h"

- 

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

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

- 

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

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include "InformationDialog.h"

- 

-+#ifndef Q_MOC_RUN

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

- 

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

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

- 

- #include "presentation/VisualLayer.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include "OpenDirectoryDialog.h"

- 

-+#ifndef Q_MOC_RUN

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

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

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

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

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

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

-+#endif

- 

- #include "global/PointerTraits.h"

- 

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

- #include "CoRegistrationOptionsWidgetUi.h"

- #include "LayerOptionsWidget.h"

-+#ifndef Q_MOC_RUN

- #include "CoRegistrationResultTableDialog.h"

- 

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

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

- 

- #include "presentation/VisualLayer.h"

--

-+#endif

- 

- namespace GPlatesAppLogic

- {

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

- #include <qevent.h>

- 

-+#ifndef Q_MOC_RUN

- #include "CoRegistrationResultTableDialogUi.h"

- #include "SaveFileDialog.h"

- 

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

- 

- #include "presentation/VisualLayer.h"

-+#endif

- 

- namespace GPlatesPresentation

- {

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

- #include <QMutexLocker>

- 

-+#ifndef Q_MOC_RUN

- #include "DrawStyleDialogUi.h"

- #include "GPlatesDialog.h"

- #include "PythonArgumentWidget.h"

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

- 

- #include "presentation/Application.h"

-+#endif

- 

- namespace GPlatesAppLogic

- {

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

- 

- #include <QWidget>

-+

-+#ifndef Q_MOC_RUN

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

- #include "EditTableActionWidgetUi.h"

-+#endif

- 

- namespace GPlatesQtWidgets

- {

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

- #include <QtOpenGL/qgl.h>

- 

-+#ifndef Q_MOC_RUN

- #include "gui/ColourScheme.h"

- #include "gui/Globe.h"

- #include "gui/ViewportZoom.h"

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

- 

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

-+#endif

- 

- 

- namespace GPlatesGui

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

- #include "LogDialogUi.h"

- 

-+#ifndef Q_MOC_RUN

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

-+#endif

- 

- 

- namespace GPlatesGui

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

- #include <QTransform>

- 

-+#ifndef Q_MOC_RUN

- #include "gui/ColourScheme.h"

- #include "gui/Map.h"

- #include "gui/TextOverlay.h"

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

- #include "opengl/GLOffScreenContext.h"

- #include "opengl/GLVisualLayers.h"

-+#endif

- 

- 

- namespace GPlatesGui

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

- #include <QMouseEvent>

- 

-+#ifndef Q_MOC_RUN

- #include "gui/ColourScheme.h"

- 

- #include "maths/LatLonPoint.h"

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

- 

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

-+#endif

- 

- 

- namespace GPlatesGui

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

- #include "MergeReconstructionLayersDialogUi.h"

- 

-+#ifndef Q_MOC_RUN

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

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include <QToolButton>

- 

-+#ifndef Q_MOC_RUN

- #include "RasterLayerOptionsWidgetUi.h"

- 

- #include "LayerOptionsWidget.h"

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

- #include "gui/BuiltinColourPaletteType.h"

- #include "gui/RasterColourPalette.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include <utility>

- 

-+#ifndef Q_MOC_RUN

- #include "ReconstructScalarCoverageLayerOptionsWidgetUi.h"

- 

- #include "LayerOptionsWidget.h"

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

- #include "gui/BuiltinColourPaletteType.h"

- #include "gui/RasterColourPalette.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include <QSlider>

- 

-+#ifndef Q_MOC_RUN

- #include "ScalarField3DLayerOptionsWidgetUi.h"

- 

- #include "LayerOptionsWidget.h"

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

- 

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

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include <QDialog>

- 

-+#ifndef Q_MOC_RUN

- #include "TotalReconstructionPolesDialogUi.h"

- 

- #include "GPlatesDialog.h"

- #include "SaveFileDialog.h"

- 

- #include "presentation/VisualLayer.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "presentation/VisualLayer.h"

- #include "presentation/VisualLayerType.h"

-+#endif

- 

- 

- namespace GPlatesPresentation

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

- #include <QStackedWidget>

- 

-+#ifndef Q_MOC_RUN

- #include "VisualLayerWidgetUi.h"

- 

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

- 

- #include "gui/Colour.h"

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include <boost/optional.hpp>

- 

-+#ifndef Q_MOC_RUN

- #include "maths/GeometryOnSphere.h"

- #include "maths/GeometryType.h"

- #include "maths/PointOnSphere.h"

-+#endif

- 

- namespace GPlatesViewOperations

- {

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

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "RenderedGeometryLayer.h"

-+#endif

- 

- namespace GPlatesViewOperations

- {

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

- #include <QFont>

- 

-+#ifndef Q_MOC_RUN

- #include "RenderedGeometry.h"

- #include "RenderedColouredEdgeSurfaceMesh.h"

- #include "RenderedColouredTriangleSurfaceMesh.h"

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

- 

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

-+#endif

- 

- 

- namespace GPlatesAppLogic

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

- #include <QObject>

- 

-+#ifndef Q_MOC_RUN

- #include "RenderedGeometry.h"

- 

- #include "maths/CubeQuadTreeLocation.h"

- 

-+#endif

- 

- namespace GPlatesMaths

- {

diff --git a/nixpkgs/pkgs/applications/science/misc/gplates/default.nix b/nixpkgs/pkgs/applications/science/misc/gplates/default.nix
index 592e36370e0f..4bef967bc08a 100644
--- a/nixpkgs/pkgs/applications/science/misc/gplates/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/gplates/default.nix
@@ -1,29 +1,30 @@
-{ stdenv, fetchurl, qt4, qwt6_qt4, libGLU, libGL, glew, gdal_1_11, cgal
-, proj, boost, cmake, python2, doxygen, graphviz, gmp }:
+{ stdenv, fetchurl, qt4, qwt6_qt4, libGLU, libGL, glew, gdal, cgal
+, proj, boost, cmake, python2, doxygen, graphviz, gmp, mpfr }:
 
 stdenv.mkDerivation rec {
   pname = "gplates";
-  version = "2.0.0";
+  version = "2.2.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/gplates/${pname}-${version}-unixsrc.tar.bz2";
-    sha256 = "02scnjj5nlc2d2c8lbx0xvj8gg1bgkjliv3wxsx564c55a9x69qw";
+    sha256 = "1jrcv498vpcs8xklhbsgg12yfa90f96p2mwq6x5sjnrlpf8mh50b";
   };
 
-  patches = [
-    ./boostfix.patch
-  ];
-
   buildInputs = [
-    qt4 qwt6_qt4 libGLU libGL glew gdal_1_11 cgal proj boost cmake python2
-    doxygen graphviz gmp
+    qt4 qwt6_qt4 libGLU libGL glew gdal cgal proj cmake python2
+    doxygen graphviz gmp mpfr
+    (boost.override {
+      enablePython = true;
+      python = python2;
+    })
   ];
 
+  NIX_CFLAGS_LINK="-ldl -lpthread -lutil";
+
   meta = with stdenv.lib; {
     description = "Desktop software for the interactive visualisation of plate-tectonics";
     homepage = "https://www.gplates.org";
     license = licenses.gpl2;
     platforms = platforms.all;
-    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/misc/openmvg/default.nix b/nixpkgs/pkgs/applications/science/misc/openmvg/default.nix
index aea376301abd..5db6092fa36d 100644
--- a/nixpkgs/pkgs/applications/science/misc/openmvg/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/openmvg/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, pkgconfig, cmake
+{ stdenv, fetchFromGitHub, pkgconfig, cmake
 , libjpeg ? null
 , zlib ? null
 , libpng ? null
@@ -8,15 +8,14 @@
 , enableDocs ? false }:
 
 stdenv.mkDerivation rec {
-  version = "1.3";
+  version = "1.6";
   pname = "openmvg";
 
-  src = fetchgit {
-    url = "https://www.github.com/openmvg/openmvg.git";
-
-    # Tag v1.1
-    rev = "refs/tags/v${version}";
-    sha256 = "1cf1gbcl8zvxp4rr6f6vaxwcg0yzc4xban2b5p9zy1m4k1f81zyb";
+  src = fetchFromGitHub {
+    owner = "openmvg";
+    repo = "openmvg";
+    rev = "v${version}";
+    sha256 = "0mrsi0dzgi7cjzn13r9xv7rnc8c9a4h8ip78xy88m9xsyr21wd1h";
     fetchSubmodules = true;
   };
 
@@ -46,6 +45,5 @@ stdenv.mkDerivation rec {
     license = stdenv.lib.licenses.mpl20;
     platforms = stdenv.lib.platforms.linux;
     maintainers = with stdenv.lib.maintainers; [ mdaiter ];
-    broken = true; # 2018-04-11
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/misc/rink/default.nix b/nixpkgs/pkgs/applications/science/misc/rink/default.nix
index 5d592c233b62..b868706a05f9 100644
--- a/nixpkgs/pkgs/applications/science/misc/rink/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/rink/default.nix
@@ -1,30 +1,27 @@
-{ stdenv, fetchFromGitHub, rustPlatform, openssl, pkgconfig, gmp, ncurses }:
+{ stdenv, fetchFromGitHub, rustPlatform, openssl, pkg-config, ncurses }:
 
 rustPlatform.buildRustPackage rec {
-  version = "0.4.5";
+  version = "0.5.1";
   pname = "rink";
 
   src = fetchFromGitHub {
     owner = "tiffany352";
     repo = "rink-rs";
     rev = "v${version}";
-    sha256 = "0vl996y58a9b62d8sqrpfn2h8qkya7qbg5zqsmy7nxhph1vhbspj";
+    sha256 = "1s67drjzd4cf93hpm7b2facfd6y1x0s60aq6pygj7i02bm0cb9l9";
   };
 
-  # Upstreamed in https://github.com/tiffany352/rink-rs/pull/53
-  cargoPatches = [ ./cargo-lock.patch ];
+  cargoSha256 = "1wd70y13lly7nccaqlv7w8znxfal0fzyf9d67y5c3aikj7hkzfin";
 
-  cargoSha256 = "0shlh0m9k0iqxpv9zmiw7a6v197swrvpz9x6qzhximzkdwni9gz9";
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ openssl gmp ncurses ];
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ openssl ncurses ];
 
   # Some tests fail and/or attempt to use internet servers.
   doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Unit-aware calculator";
-    homepage = "https://rink.tiffnix.com";
+    homepage = "https://rinkcalc.app";
     license = with licenses; [ mpl20 gpl3 ];
     maintainers = with maintainers; [ sb0 filalex77 ];
   };
diff --git a/nixpkgs/pkgs/applications/science/misc/root/5.nix b/nixpkgs/pkgs/applications/science/misc/root/5.nix
index fd06d721ebd1..cab26577bd0b 100644
--- a/nixpkgs/pkgs/applications/science/misc/root/5.nix
+++ b/nixpkgs/pkgs/applications/science/misc/root/5.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchurl, fetchpatch, cmake, pcre, pkgconfig, python2
-, libX11, libXpm, libXft, libXext, libGLU, libGL, zlib, libxml2, lzma, gsl_1
+, libX11, libXpm, libXft, libXext, libGLU, libGL, zlib, libxml2, lz4, lzma, gsl_1, xxHash
 , Cocoa, OpenGL, noSplash ? false }:
 
 stdenv.mkDerivation rec {
   pname = "root";
-  version = "5.34.36";
+  version = "5.34.38";
 
   src = fetchurl {
     url = "https://root.cern.ch/download/root_v${version}.source.tar.gz";
-    sha256 = "1kbx1jxc0i5xfghpybk8927a0wamxyayij9c74zlqm0595gqx1pw";
+    sha256 = "1ln448lszw4d6jmbdphkr2plwxxlhmjkla48vmmq750xc1lxlfrc";
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ cmake pcre python2 zlib libxml2 lzma gsl_1 ]
+  buildInputs = [ cmake pcre python2 zlib libxml2 lz4 lzma gsl_1 xxHash ]
     ++ stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
     ++ stdenv.lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
     ;
@@ -20,12 +20,6 @@ stdenv.mkDerivation rec {
   patches = [
     ./sw_vers_root5.patch
 
-    (fetchpatch {
-      name = "enable_new_gcc.patch";
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/enable_new_gcc.patch?h=root5&id=91c50876081a0af36f84ec4f0f9dba869107fa4f";
-      sha256 = "1rnp0xlw0yqi7mjs4w145njd79i8kkir1qik7zwicdik9axf8ygm";
-    })
-
     # prevents rootcint from looking in /usr/includes and such
     ./purify_include_paths_root5.patch
 
@@ -92,5 +86,6 @@ stdenv.mkDerivation rec {
     description = "A data analysis framework";
     platforms = platforms.unix;
     maintainers = with maintainers; [ veprbl ];
+    license = licenses.lgpl21;
   };
 }
diff --git a/nixpkgs/pkgs/applications/science/misc/root/default.nix b/nixpkgs/pkgs/applications/science/misc/root/default.nix
index 990952e21aca..97d8d4e7cee5 100644
--- a/nixpkgs/pkgs/applications/science/misc/root/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/root/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, makeWrapper, cmake, gl2ps, gsl, libX11, libXpm, libXft
+{ stdenv, lib, fetchurl, makeWrapper, cmake, gl2ps, gsl, libX11, libXpm, libXft
 , libXext, libGLU, libGL, libxml2, lz4, lzma, pcre, pkgconfig, python, xxHash
 , zlib
 , Cocoa, OpenGL, noSplash ? false }:
@@ -13,11 +13,10 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ makeWrapper cmake pkgconfig ];
-  buildInputs = [ gl2ps pcre python zlib libxml2 lz4 lzma gsl xxHash ]
-    ++ stdenv.lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
-    ++ stdenv.lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
+  buildInputs = [ gl2ps pcre zlib libxml2 lz4 lzma gsl xxHash python.pkgs.numpy ]
+    ++ lib.optionals (!stdenv.isDarwin) [ libX11 libXpm libXft libXext libGLU libGL ]
+    ++ lib.optionals (stdenv.isDarwin) [ Cocoa OpenGL ]
     ;
-  propagatedBuildInputs = [ python.pkgs.numpy ];
 
   patches = [
     ./sw_vers.patch
diff --git a/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix b/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix
index 63a727f9c88a..2b7532a93454 100644
--- a/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix
+++ b/nixpkgs/pkgs/applications/science/misc/snakemake/default.nix
@@ -2,7 +2,7 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "snakemake";
-  version = "5.17.0";
+  version = "5.19.3";
 
   propagatedBuildInputs = with python3Packages; [
     appdirs
@@ -22,7 +22,7 @@ python3Packages.buildPythonApplication rec {
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0y652i3saqq2z61yvk0i6q3lnq2xfrygcxms5gygspj71q2n4f7k";
+    sha256 = "b83f3ef73e25dafcb39b3565030e33fa2f7e80ed70256c535dc7e58ea762305d";
   };
 
   doCheck = false; # Tests depend on Google Cloud credentials at ${HOME}/gcloud-service-key.json
diff --git a/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
index d345827ed4eb..151abb099f5b 100644
--- a/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
+++ b/nixpkgs/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
@@ -9,11 +9,11 @@
 }:
 
 stdenv.mkDerivation {
-  name = "gromacs-2020.2";
+  name = "gromacs-2020.3";
 
   src = fetchurl {
-    url = "ftp://ftp.gromacs.org/pub/gromacs/gromacs-2020.2.tar.gz";
-    sha256 = "1wyjgcdl30wy4hy6jvi9lkq53bqs9fgfq6fri52dhnb3c76y8rbl";
+    url = "ftp://ftp.gromacs.org/pub/gromacs/gromacs-2020.3.tar.gz";
+    sha256 = "1acjrhcfzpqy2dncblhj97602jbg9gdha4q1bgji9nrj25lq6cch";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/science/robotics/apmplanner2/default.nix b/nixpkgs/pkgs/applications/science/robotics/apmplanner2/default.nix
index ede698e2b0b4..e6d1c544ee4c 100644
--- a/nixpkgs/pkgs/applications/science/robotics/apmplanner2/default.nix
+++ b/nixpkgs/pkgs/applications/science/robotics/apmplanner2/default.nix
@@ -5,23 +5,15 @@
 
 mkDerivation rec {
   pname = "apmplanner2";
-  version = "2.0.27-rc1";
+  version = "2.0.28-rc1";
 
   src = fetchFromGitHub {
     owner = "ArduPilot";
     repo = "apm_planner";
     rev = version;
-    sha256 = "1k0786mjzi49nb6yw4chh9l4dmkf9gybpxg9zqkr5yg019nyzcvd";
+    sha256 = "18yn8bdz5hmgb0m5hlk8bibz4cj4g25w75pm1rvc4ds0mr1qgyjd";
   };
 
-  patches = [
-    # can be dropped after 2.0.27-rc1
-    (fetchpatch {
-      url = "https://github.com/ArduPilot/apm_planner/commit/299ff23b5e9910de04edfc06b6893bb06b47a57b.patch";
-      sha256 = "16rc81iwqp2i46g6bm9lbvcjfsk83999r9h8w1pz0mys7rsilvqy";
-    })
-  ];
-
   buildInputs = [
     alsaLib libsndfile flite openssl udev SDL2
     qtbase qtscript qtwebkit qtserialport qtsvg qtdeclarative qtquickcontrols2
@@ -35,7 +27,7 @@ mkDerivation rec {
   preFixup = ''
     ln --relative --symbolic $out/share/APMPlanner2/* $out/bin/
     substituteInPlace $out/share/applications/apmplanner2.desktop \
-                      --replace /usr $out
+      --replace /usr $out
   '';
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix b/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix
index 4684ba8c1937..66b9a1ef63a1 100644
--- a/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix
+++ b/nixpkgs/pkgs/applications/science/robotics/betaflight-configurator/default.nix
@@ -13,10 +13,10 @@ let
 in
 stdenv.mkDerivation rec {
   inherit pname;
-  version = "10.6.0";
+  version = "10.7.0";
   src = fetchurl {
     url = "https://github.com/betaflight/${pname}/releases/download/${version}/${pname}_${version}_linux64.zip";
-    sha256 = "09hayzhwangh8b81r038p320vbg0xxlyzrdp9pcmfyxp6s00xslw";
+    sha256 = "07r60n9422g5sm7x5b62p044cp961l51vx0s8ig2hy24s74hkam1";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix b/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix
index 63247bcff728..8710b88ced36 100644
--- a/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix
+++ b/nixpkgs/pkgs/applications/science/robotics/qgroundcontrol/default.nix
@@ -1,4 +1,4 @@
-{ lib, mkDerivation, fetchgit, SDL2
+{ lib, mkDerivation, fetchFromGitHub, SDL2
 , qtbase, qtcharts, qtlocation, qtserialport, qtsvg, qtquickcontrols2
 , qtgraphicaleffects, qtspeech, qtx11extras, qmake, qttools
 , gst_all_1, wayland, pkgconfig
@@ -6,7 +6,7 @@
 
 mkDerivation rec {
   pname = "qgroundcontrol";
-  version = "4.0.8";
+  version = "4.0.10";
 
   qtInputs = [
     qtbase qtcharts qtlocation qtserialport qtsvg qtquickcontrols2
@@ -58,10 +58,11 @@ mkDerivation rec {
   '';
 
   # TODO: package mavlink so we can build from a normal source tarball
-  src = fetchgit {
-    url = "https://github.com/mavlink/qgroundcontrol.git";
+  src = fetchFromGitHub {
+    owner = "mavlink";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "0jr9jpjqdwizsvh9zm0fdp8k2r4536m40dxrn30fbr3ba8vnzkgq";
+    sha256 = "1jmhhd2nwxq3m9rzzmrjls8f6hhj52ia71b1sv4vvcjh802cha8g";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/applications/search/recoll/default.nix b/nixpkgs/pkgs/applications/search/recoll/default.nix
index 425e82000b79..fe9719efdef8 100644
--- a/nixpkgs/pkgs/applications/search/recoll/default.nix
+++ b/nixpkgs/pkgs/applications/search/recoll/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, lib, bison
-, qt4, xapian, file, python, perl
+{ mkDerivation, stdenv, fetchurl, lib, bison
+, qtbase, xapian, file, python, perl
 , djvulibre, groff, libxslt, unzip, poppler_utils, antiword, catdoc, lyx
 , libwpd, unrtf, untex
 , ghostscript, gawk, gnugrep, gnused, gnutar, gzip, libiconv, zlib
@@ -7,7 +7,7 @@
 
 assert stdenv.hostPlatform.system != "powerpc-linux";
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   ver = "1.24.5";
   name = "recoll-${ver}";
 
@@ -16,12 +16,12 @@ stdenv.mkDerivation rec {
     sha256 = "10m3a0ghnyipjcxapszlr8adyy2yaaxx4vgrkxrfmz13814z89cv";
   };
 
-  configureFlags = [ "--enable-recollq" ]
+  configureFlags = [ "--enable-recollq" "--disable-webkit" ]
     ++ lib.optionals (!withGui) [ "--disable-qtgui" "--disable-x11mon" ]
     ++ (if stdenv.isLinux then [ "--with-inotify" ] else [ "--without-inotify" ]);
 
   buildInputs = [ xapian file python bison zlib ]
-    ++ lib.optional withGui qt4
+    ++ lib.optional withGui qtbase
     ++ lib.optional stdenv.isDarwin libiconv;
 
   patchPhase = stdenv.lib.optionalString stdenv.isDarwin ''
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   # the filters search through ${PATH} using a sh proc 'checkcmds' for the
   # filtering utils. Short circuit this by replacing the filtering command with
-  # the absolute path to the filtering command. 
+  # the absolute path to the filtering command.
   postInstall = ''
     for f in $out/share/recoll/filters/* ; do
       if [[ ! "$f" =~ \.zip$ ]]; then
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
     description = "A full-text search tool";
     longDescription = ''
       Recoll is an Xapian frontend that can search through files, archive
-      members, email attachments. 
+      members, email attachments.
     '';
     homepage = "https://www.lesbonscomptes.com/recoll/";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/applications/system/glances/default.nix b/nixpkgs/pkgs/applications/system/glances/default.nix
index 3dfec185b572..6b77914539cc 100644
--- a/nixpkgs/pkgs/applications/system/glances/default.nix
+++ b/nixpkgs/pkgs/applications/system/glances/default.nix
@@ -1,21 +1,21 @@
 { stdenv, buildPythonApplication, fetchFromGitHub, fetchpatch, isPyPy, lib
 , future, psutil, setuptools
 # Optional dependencies:
-, bottle, batinfo, pysnmp
+, bottle, pysnmp
 , hddtemp
 , netifaces # IP module
 }:
 
 buildPythonApplication rec {
   pname = "glances";
-  version = "3.1.4.1";
+  version = "3.1.5";
   disabled = isPyPy;
 
   src = fetchFromGitHub {
     owner = "nicolargo";
     repo = "glances";
     rev = "v${version}";
-    sha256 = "04dc3pwj9qbbhxpihf13ckdgwz0qc771c7v7awni4vyzk3a9cdfb";
+    sha256 = "0l91nvlwyabxlsy5p533dqnc68mmvykfsrcsnxylcpjjl1nzy931";
   };
 
   # Some tests fail in the sandbox (they e.g. require access to /sys/class/power_supply):
@@ -35,7 +35,6 @@ buildPythonApplication rec {
   '';
 
   propagatedBuildInputs = [
-    batinfo
     bottle
     future
     netifaces
diff --git a/nixpkgs/pkgs/applications/system/monitor/default.nix b/nixpkgs/pkgs/applications/system/monitor/default.nix
index ee1198c176f6..30ae9e51e9eb 100644
--- a/nixpkgs/pkgs/applications/system/monitor/default.nix
+++ b/nixpkgs/pkgs/applications/system/monitor/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , vala
@@ -18,13 +19,13 @@
 
 stdenv.mkDerivation rec {
   pname = "monitor";
-  version = "0.7.2";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "stsdc";
     repo = "monitor";
     rev = version;
-    sha256 ="1gd2i7gja4k9j4xac8jnls3v41d6qqhmqradz2jbsxwm2sk3cgcf";
+    sha256 = "111g2f3y5lmz91m755jz0x8yx5cx9ym484gch8wcv80dmr7ilb1y";
     fetchSubmodules = true;
   };
 
@@ -55,7 +56,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/applications/version-management/bcompare/default.nix b/nixpkgs/pkgs/applications/version-management/bcompare/default.nix
index d9a98ecce285..1af64f8e6df5 100644
--- a/nixpkgs/pkgs/applications/version-management/bcompare/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/bcompare/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bcompare";
-  version = "4.3.4.24657";
+  version = "4.3.5.24893";
 
   src = fetchurl {
     url = "https://www.scootersoftware.com/${pname}-${version}_amd64.deb";
-    sha256 = "031ivmpy0mk43skb30r7p5zwf0m90pmsqhaq5kc08gzy6g4s0wd0";
+    sha256 = "1gm8d6hgdg8f3hd83wqac28gkvz5nyn62wj7x44vmr60dh4i2jfn";
   };
 
   unpackPhase = ''
diff --git a/nixpkgs/pkgs/applications/version-management/commitizen/default.nix b/nixpkgs/pkgs/applications/version-management/commitizen/default.nix
new file mode 100644
index 000000000000..c673fd6d0c9a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/commitizen/default.nix
@@ -0,0 +1,17 @@
+{ pkgs, nodejs, stdenv, lib, ... }:
+
+let
+  nodePackages = import ./node-composition.nix {
+    inherit pkgs nodejs;
+    inherit (stdenv.hostPlatform) system;
+  };
+in
+nodePackages.commitizen.override {
+  meta = with lib; {
+    description = "The commitizen command line utility";
+    homepage = "https://commitizen.github.io/cz-cli";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.mit;
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/commitizen/generate-dependencies.sh b/nixpkgs/pkgs/applications/version-management/commitizen/generate-dependencies.sh
new file mode 100755
index 000000000000..7111289d2909
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/commitizen/generate-dependencies.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p nodePackages.node2nix
+
+node2nix \
+  --node-env node-env.nix \
+  --development \
+  --input package.json \
+  --output node-packages.nix \
+  --composition node-composition.nix
diff --git a/nixpkgs/pkgs/applications/version-management/commitizen/node-composition.nix b/nixpkgs/pkgs/applications/version-management/commitizen/node-composition.nix
new file mode 100644
index 000000000000..c970861a86f0
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/commitizen/node-composition.nix
@@ -0,0 +1,17 @@
+# This file has been generated by node2nix 1.8.0. Do not edit!
+
+{pkgs ? import <nixpkgs> {
+    inherit system;
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
+
+let
+  nodeEnv = import ./node-env.nix {
+    inherit (pkgs) stdenv python2 utillinux runCommand writeTextFile;
+    inherit nodejs;
+    libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+  };
+in
+import ./node-packages.nix {
+  inherit (pkgs) fetchurl fetchgit;
+  inherit nodeEnv;
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/version-management/commitizen/node-env.nix b/nixpkgs/pkgs/applications/version-management/commitizen/node-env.nix
new file mode 100644
index 000000000000..e1abf5304935
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/commitizen/node-env.nix
@@ -0,0 +1,542 @@
+# This file originates from node2nix
+
+{stdenv, nodejs, python2, utillinux, libtool, runCommand, writeTextFile}:
+
+let
+  python = if nodejs ? python then nodejs.python else python2;
+
+  # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
+  tarWrapper = runCommand "tarWrapper" {} ''
+    mkdir -p $out/bin
+
+    cat > $out/bin/tar <<EOF
+    #! ${stdenv.shell} -e
+    $(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
+    EOF
+
+    chmod +x $out/bin/tar
+  '';
+
+  # Function that generates a TGZ file from a NPM project
+  buildNodeSourceDist =
+    { name, version, src, ... }:
+
+    stdenv.mkDerivation {
+      name = "node-tarball-${name}-${version}";
+      inherit src;
+      buildInputs = [ nodejs ];
+      buildPhase = ''
+        export HOME=$TMPDIR
+        tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts)
+      '';
+      installPhase = ''
+        mkdir -p $out/tarballs
+        mv $tgzFile $out/tarballs
+        mkdir -p $out/nix-support
+        echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products
+      '';
+    };
+
+  includeDependencies = {dependencies}:
+    stdenv.lib.optionalString (dependencies != [])
+      (stdenv.lib.concatMapStrings (dependency:
+        ''
+          # Bundle the dependencies of the package
+          mkdir -p node_modules
+          cd node_modules
+
+          # Only include dependencies if they don't exist. They may also be bundled in the package.
+          if [ ! -e "${dependency.name}" ]
+          then
+              ${composePackage dependency}
+          fi
+
+          cd ..
+        ''
+      ) dependencies);
+
+  # Recursively composes the dependencies of a package
+  composePackage = { name, packageName, src, dependencies ? [], ... }@args:
+    builtins.addErrorContext "while evaluating node package '${packageName}'" ''
+      DIR=$(pwd)
+      cd $TMPDIR
+
+      unpackFile ${src}
+
+      # Make the base dir in which the target dependency resides first
+      mkdir -p "$(dirname "$DIR/${packageName}")"
+
+      if [ -f "${src}" ]
+      then
+          # Figure out what directory has been unpacked
+          packageDir="$(find . -maxdepth 1 -type d | tail -1)"
+
+          # Restore write permissions to make building work
+          find "$packageDir" -type d -exec chmod u+x {} \;
+          chmod -R u+w "$packageDir"
+
+          # Move the extracted tarball into the output folder
+          mv "$packageDir" "$DIR/${packageName}"
+      elif [ -d "${src}" ]
+      then
+          # Get a stripped name (without hash) of the source directory.
+          # On old nixpkgs it's already set internally.
+          if [ -z "$strippedName" ]
+          then
+              strippedName="$(stripHash ${src})"
+          fi
+
+          # Restore write permissions to make building work
+          chmod -R u+w "$strippedName"
+
+          # Move the extracted directory into the output folder
+          mv "$strippedName" "$DIR/${packageName}"
+      fi
+
+      # Unset the stripped name to not confuse the next unpack step
+      unset strippedName
+
+      # Include the dependencies of the package
+      cd "$DIR/${packageName}"
+      ${includeDependencies { inherit dependencies; }}
+      cd ..
+      ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+    '';
+
+  pinpointDependencies = {dependencies, production}:
+    let
+      pinpointDependenciesFromPackageJSON = writeTextFile {
+        name = "pinpointDependencies.js";
+        text = ''
+          var fs = require('fs');
+          var path = require('path');
+
+          function resolveDependencyVersion(location, name) {
+              if(location == process.env['NIX_STORE']) {
+                  return null;
+              } else {
+                  var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
+
+                  if(fs.existsSync(dependencyPackageJSON)) {
+                      var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
+
+                      if(dependencyPackageObj.name == name) {
+                          return dependencyPackageObj.version;
+                      }
+                  } else {
+                      return resolveDependencyVersion(path.resolve(location, ".."), name);
+                  }
+              }
+          }
+
+          function replaceDependencies(dependencies) {
+              if(typeof dependencies == "object" && dependencies !== null) {
+                  for(var dependency in dependencies) {
+                      var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
+
+                      if(resolvedVersion === null) {
+                          process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
+                      } else {
+                          dependencies[dependency] = resolvedVersion;
+                      }
+                  }
+              }
+          }
+
+          /* Read the package.json configuration */
+          var packageObj = JSON.parse(fs.readFileSync('./package.json'));
+
+          /* Pinpoint all dependencies */
+          replaceDependencies(packageObj.dependencies);
+          if(process.argv[2] == "development") {
+              replaceDependencies(packageObj.devDependencies);
+          }
+          replaceDependencies(packageObj.optionalDependencies);
+
+          /* Write the fixed package.json file */
+          fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
+        '';
+      };
+    in
+    ''
+      node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"}
+
+      ${stdenv.lib.optionalString (dependencies != [])
+        ''
+          if [ -d node_modules ]
+          then
+              cd node_modules
+              ${stdenv.lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies}
+              cd ..
+          fi
+        ''}
+    '';
+
+  # Recursively traverses all dependencies of a package and pinpoints all
+  # dependencies in the package.json file to the versions that are actually
+  # being used.
+
+  pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args:
+    ''
+      if [ -d "${packageName}" ]
+      then
+          cd "${packageName}"
+          ${pinpointDependencies { inherit dependencies production; }}
+          cd ..
+          ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+      fi
+    '';
+
+  # Extract the Node.js source code which is used to compile packages with
+  # native bindings
+  nodeSources = runCommand "node-sources" {} ''
+    tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
+    mv node-* $out
+  '';
+
+  # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
+  addIntegrityFieldsScript = writeTextFile {
+    name = "addintegrityfields.js";
+    text = ''
+      var fs = require('fs');
+      var path = require('path');
+
+      function augmentDependencies(baseDir, dependencies) {
+          for(var dependencyName in dependencies) {
+              var dependency = dependencies[dependencyName];
+
+              // Open package.json and augment metadata fields
+              var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
+              var packageJSONPath = path.join(packageJSONDir, "package.json");
+
+              if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
+                  console.log("Adding metadata fields to: "+packageJSONPath);
+                  var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
+
+                  if(dependency.integrity) {
+                      packageObj["_integrity"] = dependency.integrity;
+                  } else {
+                      packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
+                  }
+
+                  if(dependency.resolved) {
+                      packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
+                  } else {
+                      packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
+                  }
+
+                  if(dependency.from !== undefined) { // Adopt from property if one has been provided
+                      packageObj["_from"] = dependency.from;
+                  }
+
+                  fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
+              }
+
+              // Augment transitive dependencies
+              if(dependency.dependencies !== undefined) {
+                  augmentDependencies(packageJSONDir, dependency.dependencies);
+              }
+          }
+      }
+
+      if(fs.existsSync("./package-lock.json")) {
+          var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
+
+          if(packageLock.lockfileVersion !== 1) {
+             process.stderr.write("Sorry, I only understand lock file version 1!\n");
+             process.exit(1);
+          }
+
+          if(packageLock.dependencies !== undefined) {
+              augmentDependencies(".", packageLock.dependencies);
+          }
+      }
+    '';
+  };
+
+  # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
+  reconstructPackageLock = writeTextFile {
+    name = "addintegrityfields.js";
+    text = ''
+      var fs = require('fs');
+      var path = require('path');
+
+      var packageObj = JSON.parse(fs.readFileSync("package.json"));
+
+      var lockObj = {
+          name: packageObj.name,
+          version: packageObj.version,
+          lockfileVersion: 1,
+          requires: true,
+          dependencies: {}
+      };
+
+      function augmentPackageJSON(filePath, dependencies) {
+          var packageJSON = path.join(filePath, "package.json");
+          if(fs.existsSync(packageJSON)) {
+              var packageObj = JSON.parse(fs.readFileSync(packageJSON));
+              dependencies[packageObj.name] = {
+                  version: packageObj.version,
+                  integrity: "sha1-000000000000000000000000000=",
+                  dependencies: {}
+              };
+              processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies);
+          }
+      }
+
+      function processDependencies(dir, dependencies) {
+          if(fs.existsSync(dir)) {
+              var files = fs.readdirSync(dir);
+
+              files.forEach(function(entry) {
+                  var filePath = path.join(dir, entry);
+                  var stats = fs.statSync(filePath);
+
+                  if(stats.isDirectory()) {
+                      if(entry.substr(0, 1) == "@") {
+                          // When we encounter a namespace folder, augment all packages belonging to the scope
+                          var pkgFiles = fs.readdirSync(filePath);
+
+                          pkgFiles.forEach(function(entry) {
+                              if(stats.isDirectory()) {
+                                  var pkgFilePath = path.join(filePath, entry);
+                                  augmentPackageJSON(pkgFilePath, dependencies);
+                              }
+                          });
+                      } else {
+                          augmentPackageJSON(filePath, dependencies);
+                      }
+                  }
+              });
+          }
+      }
+
+      processDependencies("node_modules", lockObj.dependencies);
+
+      fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
+    '';
+  };
+
+  prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}:
+    let
+      forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
+    in
+    ''
+        # Pinpoint the versions of all dependencies to the ones that are actually being used
+        echo "pinpointing versions of dependencies..."
+        source $pinpointDependenciesScriptPath
+
+        # Patch the shebangs of the bundled modules to prevent them from
+        # calling executables outside the Nix store as much as possible
+        patchShebangs .
+
+        # Deploy the Node.js package by running npm install. Since the
+        # dependencies have been provided already by ourselves, it should not
+        # attempt to install them again, which is good, because we want to make
+        # it Nix's responsibility. If it needs to install any dependencies
+        # anyway (e.g. because the dependency parameters are
+        # incomplete/incorrect), it fails.
+        #
+        # The other responsibilities of NPM are kept -- version checks, build
+        # steps, postprocessing etc.
+
+        export HOME=$TMPDIR
+        cd "${packageName}"
+        runHook preRebuild
+
+        ${stdenv.lib.optionalString bypassCache ''
+          ${stdenv.lib.optionalString reconstructLock ''
+            if [ -f package-lock.json ]
+            then
+                echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
+                echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
+                rm package-lock.json
+            else
+                echo "No package-lock.json file found, reconstructing..."
+            fi
+
+            node ${reconstructPackageLock}
+          ''}
+
+          node ${addIntegrityFieldsScript}
+        ''}
+
+        npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} rebuild
+
+        if [ "''${dontNpmInstall-}" != "1" ]
+        then
+            # NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
+            rm -f npm-shrinkwrap.json
+
+            npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} install
+        fi
+    '';
+
+  # Builds and composes an NPM package including all its dependencies
+  buildNodePackage =
+    { name
+    , packageName
+    , version
+    , dependencies ? []
+    , buildInputs ? []
+    , production ? true
+    , npmFlags ? ""
+    , dontNpmInstall ? false
+    , bypassCache ? false
+    , reconstructLock ? false
+    , preRebuild ? ""
+    , dontStrip ? true
+    , unpackPhase ? "true"
+    , buildPhase ? "true"
+    , ... }@args:
+
+    let
+      extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
+    in
+    stdenv.mkDerivation ({
+      name = "node_${name}-${version}";
+      buildInputs = [ tarWrapper python nodejs ]
+        ++ stdenv.lib.optional (stdenv.isLinux) utillinux
+        ++ stdenv.lib.optional (stdenv.isDarwin) libtool
+        ++ buildInputs;
+
+      inherit nodejs;
+
+      inherit dontStrip; # Stripping may fail a build for some package deployments
+      inherit dontNpmInstall preRebuild unpackPhase buildPhase;
+
+      compositionScript = composePackage args;
+      pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+      passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
+
+      installPhase = ''
+        # Create and enter a root node_modules/ folder
+        mkdir -p $out/lib/node_modules
+        cd $out/lib/node_modules
+
+        # Compose the package and all its dependencies
+        source $compositionScriptPath
+
+        ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+        # Create symlink to the deployed executable folder, if applicable
+        if [ -d "$out/lib/node_modules/.bin" ]
+        then
+            ln -s $out/lib/node_modules/.bin $out/bin
+        fi
+
+        # Create symlinks to the deployed manual page folders, if applicable
+        if [ -d "$out/lib/node_modules/${packageName}/man" ]
+        then
+            mkdir -p $out/share
+            for dir in "$out/lib/node_modules/${packageName}/man/"*
+            do
+                mkdir -p $out/share/man/$(basename "$dir")
+                for page in "$dir"/*
+                do
+                    ln -s $page $out/share/man/$(basename "$dir")
+                done
+            done
+        fi
+
+        # Run post install hook, if provided
+        runHook postInstall
+      '';
+    } // extraArgs);
+
+  # Builds a development shell
+  buildNodeShell =
+    { name
+    , packageName
+    , version
+    , src
+    , dependencies ? []
+    , buildInputs ? []
+    , production ? true
+    , npmFlags ? ""
+    , dontNpmInstall ? false
+    , bypassCache ? false
+    , reconstructLock ? false
+    , dontStrip ? true
+    , unpackPhase ? "true"
+    , buildPhase ? "true"
+    , ... }@args:
+
+    let
+      extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
+
+      nodeDependencies = stdenv.mkDerivation ({
+        name = "node-dependencies-${name}-${version}";
+
+        buildInputs = [ tarWrapper python nodejs ]
+          ++ stdenv.lib.optional (stdenv.isLinux) utillinux
+          ++ stdenv.lib.optional (stdenv.isDarwin) libtool
+          ++ buildInputs;
+
+        inherit dontStrip; # Stripping may fail a build for some package deployments
+        inherit dontNpmInstall unpackPhase buildPhase;
+
+        includeScript = includeDependencies { inherit dependencies; };
+        pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+        passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
+
+        installPhase = ''
+          mkdir -p $out/${packageName}
+          cd $out/${packageName}
+
+          source $includeScriptPath
+
+          # Create fake package.json to make the npm commands work properly
+          cp ${src}/package.json .
+          chmod 644 package.json
+          ${stdenv.lib.optionalString bypassCache ''
+            if [ -f ${src}/package-lock.json ]
+            then
+                cp ${src}/package-lock.json .
+            fi
+          ''}
+
+          # Go to the parent folder to make sure that all packages are pinpointed
+          cd ..
+          ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+          ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+          # Expose the executables that were installed
+          cd ..
+          ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+          mv ${packageName} lib
+          ln -s $out/lib/node_modules/.bin $out/bin
+        '';
+      } // extraArgs);
+    in
+    stdenv.mkDerivation {
+      name = "node-shell-${name}-${version}";
+
+      buildInputs = [ python nodejs ] ++ stdenv.lib.optional (stdenv.isLinux) utillinux ++ buildInputs;
+      buildCommand = ''
+        mkdir -p $out/bin
+        cat > $out/bin/shell <<EOF
+        #! ${stdenv.shell} -e
+        $shellHook
+        exec ${stdenv.shell}
+        EOF
+        chmod +x $out/bin/shell
+      '';
+
+      # Provide the dependencies in a development shell through the NODE_PATH environment variable
+      inherit nodeDependencies;
+      shellHook = stdenv.lib.optionalString (dependencies != []) ''
+        export NODE_PATH=${nodeDependencies}/lib/node_modules
+        export PATH="${nodeDependencies}/bin:$PATH"
+      '';
+    };
+in
+{
+  buildNodeSourceDist = stdenv.lib.makeOverridable buildNodeSourceDist;
+  buildNodePackage = stdenv.lib.makeOverridable buildNodePackage;
+  buildNodeShell = stdenv.lib.makeOverridable buildNodeShell;
+}
diff --git a/nixpkgs/pkgs/applications/version-management/commitizen/node-packages.nix b/nixpkgs/pkgs/applications/version-management/commitizen/node-packages.nix
new file mode 100644
index 000000000000..df50c8e473ef
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/commitizen/node-packages.nix
@@ -0,0 +1,9071 @@
+# This file has been generated by node2nix 1.8.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+  sources = {
+    "@babel/cli-7.11.6" = {
+      name = "_at_babel_slash_cli";
+      packageName = "@babel/cli";
+      version = "7.11.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/cli/-/cli-7.11.6.tgz";
+        sha512 = "+w7BZCvkewSmaRM6H4L2QM3RL90teqEIHDIFXAmrW33+0jhlymnDAEdqVeCZATvxhQuio1ifoGVlJJbIiH9Ffg==";
+      };
+    };
+    "@babel/code-frame-7.10.4" = {
+      name = "_at_babel_slash_code-frame";
+      packageName = "@babel/code-frame";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz";
+        sha512 = "vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==";
+      };
+    };
+    "@babel/compat-data-7.11.0" = {
+      name = "_at_babel_slash_compat-data";
+      packageName = "@babel/compat-data";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz";
+        sha512 = "TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==";
+      };
+    };
+    "@babel/core-7.11.6" = {
+      name = "_at_babel_slash_core";
+      packageName = "@babel/core";
+      version = "7.11.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz";
+        sha512 = "Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==";
+      };
+    };
+    "@babel/generator-7.11.6" = {
+      name = "_at_babel_slash_generator";
+      packageName = "@babel/generator";
+      version = "7.11.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz";
+        sha512 = "DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==";
+      };
+    };
+    "@babel/helper-annotate-as-pure-7.10.4" = {
+      name = "_at_babel_slash_helper-annotate-as-pure";
+      packageName = "@babel/helper-annotate-as-pure";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz";
+        sha512 = "XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==";
+      };
+    };
+    "@babel/helper-builder-binary-assignment-operator-visitor-7.10.4" = {
+      name = "_at_babel_slash_helper-builder-binary-assignment-operator-visitor";
+      packageName = "@babel/helper-builder-binary-assignment-operator-visitor";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz";
+        sha512 = "L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==";
+      };
+    };
+    "@babel/helper-compilation-targets-7.10.4" = {
+      name = "_at_babel_slash_helper-compilation-targets";
+      packageName = "@babel/helper-compilation-targets";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz";
+        sha512 = "a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==";
+      };
+    };
+    "@babel/helper-create-class-features-plugin-7.10.5" = {
+      name = "_at_babel_slash_helper-create-class-features-plugin";
+      packageName = "@babel/helper-create-class-features-plugin";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz";
+        sha512 = "0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==";
+      };
+    };
+    "@babel/helper-create-regexp-features-plugin-7.10.4" = {
+      name = "_at_babel_slash_helper-create-regexp-features-plugin";
+      packageName = "@babel/helper-create-regexp-features-plugin";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz";
+        sha512 = "2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==";
+      };
+    };
+    "@babel/helper-define-map-7.10.5" = {
+      name = "_at_babel_slash_helper-define-map";
+      packageName = "@babel/helper-define-map";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz";
+        sha512 = "fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==";
+      };
+    };
+    "@babel/helper-explode-assignable-expression-7.11.4" = {
+      name = "_at_babel_slash_helper-explode-assignable-expression";
+      packageName = "@babel/helper-explode-assignable-expression";
+      version = "7.11.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz";
+        sha512 = "ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ==";
+      };
+    };
+    "@babel/helper-function-name-7.10.4" = {
+      name = "_at_babel_slash_helper-function-name";
+      packageName = "@babel/helper-function-name";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
+        sha512 = "YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==";
+      };
+    };
+    "@babel/helper-get-function-arity-7.10.4" = {
+      name = "_at_babel_slash_helper-get-function-arity";
+      packageName = "@babel/helper-get-function-arity";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
+        sha512 = "EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==";
+      };
+    };
+    "@babel/helper-hoist-variables-7.10.4" = {
+      name = "_at_babel_slash_helper-hoist-variables";
+      packageName = "@babel/helper-hoist-variables";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz";
+        sha512 = "wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==";
+      };
+    };
+    "@babel/helper-member-expression-to-functions-7.11.0" = {
+      name = "_at_babel_slash_helper-member-expression-to-functions";
+      packageName = "@babel/helper-member-expression-to-functions";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz";
+        sha512 = "JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==";
+      };
+    };
+    "@babel/helper-module-imports-7.10.4" = {
+      name = "_at_babel_slash_helper-module-imports";
+      packageName = "@babel/helper-module-imports";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz";
+        sha512 = "nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==";
+      };
+    };
+    "@babel/helper-module-transforms-7.11.0" = {
+      name = "_at_babel_slash_helper-module-transforms";
+      packageName = "@babel/helper-module-transforms";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz";
+        sha512 = "02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==";
+      };
+    };
+    "@babel/helper-optimise-call-expression-7.10.4" = {
+      name = "_at_babel_slash_helper-optimise-call-expression";
+      packageName = "@babel/helper-optimise-call-expression";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz";
+        sha512 = "n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==";
+      };
+    };
+    "@babel/helper-plugin-utils-7.10.4" = {
+      name = "_at_babel_slash_helper-plugin-utils";
+      packageName = "@babel/helper-plugin-utils";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
+        sha512 = "O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==";
+      };
+    };
+    "@babel/helper-regex-7.10.5" = {
+      name = "_at_babel_slash_helper-regex";
+      packageName = "@babel/helper-regex";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz";
+        sha512 = "68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==";
+      };
+    };
+    "@babel/helper-remap-async-to-generator-7.11.4" = {
+      name = "_at_babel_slash_helper-remap-async-to-generator";
+      packageName = "@babel/helper-remap-async-to-generator";
+      version = "7.11.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz";
+        sha512 = "tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA==";
+      };
+    };
+    "@babel/helper-replace-supers-7.10.4" = {
+      name = "_at_babel_slash_helper-replace-supers";
+      packageName = "@babel/helper-replace-supers";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz";
+        sha512 = "sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==";
+      };
+    };
+    "@babel/helper-simple-access-7.10.4" = {
+      name = "_at_babel_slash_helper-simple-access";
+      packageName = "@babel/helper-simple-access";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz";
+        sha512 = "0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==";
+      };
+    };
+    "@babel/helper-skip-transparent-expression-wrappers-7.11.0" = {
+      name = "_at_babel_slash_helper-skip-transparent-expression-wrappers";
+      packageName = "@babel/helper-skip-transparent-expression-wrappers";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz";
+        sha512 = "0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==";
+      };
+    };
+    "@babel/helper-split-export-declaration-7.11.0" = {
+      name = "_at_babel_slash_helper-split-export-declaration";
+      packageName = "@babel/helper-split-export-declaration";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz";
+        sha512 = "74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==";
+      };
+    };
+    "@babel/helper-validator-identifier-7.10.4" = {
+      name = "_at_babel_slash_helper-validator-identifier";
+      packageName = "@babel/helper-validator-identifier";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
+        sha512 = "3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==";
+      };
+    };
+    "@babel/helper-wrap-function-7.10.4" = {
+      name = "_at_babel_slash_helper-wrap-function";
+      packageName = "@babel/helper-wrap-function";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz";
+        sha512 = "6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==";
+      };
+    };
+    "@babel/helpers-7.10.4" = {
+      name = "_at_babel_slash_helpers";
+      packageName = "@babel/helpers";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz";
+        sha512 = "L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==";
+      };
+    };
+    "@babel/highlight-7.10.4" = {
+      name = "_at_babel_slash_highlight";
+      packageName = "@babel/highlight";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz";
+        sha512 = "i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==";
+      };
+    };
+    "@babel/parser-7.11.5" = {
+      name = "_at_babel_slash_parser";
+      packageName = "@babel/parser";
+      version = "7.11.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz";
+        sha512 = "X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==";
+      };
+    };
+    "@babel/plugin-proposal-async-generator-functions-7.10.5" = {
+      name = "_at_babel_slash_plugin-proposal-async-generator-functions";
+      packageName = "@babel/plugin-proposal-async-generator-functions";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz";
+        sha512 = "cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==";
+      };
+    };
+    "@babel/plugin-proposal-class-properties-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-class-properties";
+      packageName = "@babel/plugin-proposal-class-properties";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz";
+        sha512 = "vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==";
+      };
+    };
+    "@babel/plugin-proposal-dynamic-import-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-dynamic-import";
+      packageName = "@babel/plugin-proposal-dynamic-import";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz";
+        sha512 = "up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==";
+      };
+    };
+    "@babel/plugin-proposal-export-namespace-from-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-export-namespace-from";
+      packageName = "@babel/plugin-proposal-export-namespace-from";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz";
+        sha512 = "aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==";
+      };
+    };
+    "@babel/plugin-proposal-json-strings-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-json-strings";
+      packageName = "@babel/plugin-proposal-json-strings";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz";
+        sha512 = "fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==";
+      };
+    };
+    "@babel/plugin-proposal-logical-assignment-operators-7.11.0" = {
+      name = "_at_babel_slash_plugin-proposal-logical-assignment-operators";
+      packageName = "@babel/plugin-proposal-logical-assignment-operators";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz";
+        sha512 = "/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==";
+      };
+    };
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
+      packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz";
+        sha512 = "wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==";
+      };
+    };
+    "@babel/plugin-proposal-numeric-separator-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-numeric-separator";
+      packageName = "@babel/plugin-proposal-numeric-separator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz";
+        sha512 = "73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==";
+      };
+    };
+    "@babel/plugin-proposal-object-rest-spread-7.11.0" = {
+      name = "_at_babel_slash_plugin-proposal-object-rest-spread";
+      packageName = "@babel/plugin-proposal-object-rest-spread";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz";
+        sha512 = "wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==";
+      };
+    };
+    "@babel/plugin-proposal-object-rest-spread-7.9.0" = {
+      name = "_at_babel_slash_plugin-proposal-object-rest-spread";
+      packageName = "@babel/plugin-proposal-object-rest-spread";
+      version = "7.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz";
+        sha512 = "UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow==";
+      };
+    };
+    "@babel/plugin-proposal-optional-catch-binding-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
+      packageName = "@babel/plugin-proposal-optional-catch-binding";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz";
+        sha512 = "LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==";
+      };
+    };
+    "@babel/plugin-proposal-optional-chaining-7.11.0" = {
+      name = "_at_babel_slash_plugin-proposal-optional-chaining";
+      packageName = "@babel/plugin-proposal-optional-chaining";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz";
+        sha512 = "v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==";
+      };
+    };
+    "@babel/plugin-proposal-private-methods-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-private-methods";
+      packageName = "@babel/plugin-proposal-private-methods";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz";
+        sha512 = "wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==";
+      };
+    };
+    "@babel/plugin-proposal-unicode-property-regex-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
+      packageName = "@babel/plugin-proposal-unicode-property-regex";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz";
+        sha512 = "H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==";
+      };
+    };
+    "@babel/plugin-syntax-async-generators-7.8.4" = {
+      name = "_at_babel_slash_plugin-syntax-async-generators";
+      packageName = "@babel/plugin-syntax-async-generators";
+      version = "7.8.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz";
+        sha512 = "tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==";
+      };
+    };
+    "@babel/plugin-syntax-class-properties-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-class-properties";
+      packageName = "@babel/plugin-syntax-class-properties";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz";
+        sha512 = "GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==";
+      };
+    };
+    "@babel/plugin-syntax-dynamic-import-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-dynamic-import";
+      packageName = "@babel/plugin-syntax-dynamic-import";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz";
+        sha512 = "5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==";
+      };
+    };
+    "@babel/plugin-syntax-export-namespace-from-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-export-namespace-from";
+      packageName = "@babel/plugin-syntax-export-namespace-from";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz";
+        sha512 = "MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==";
+      };
+    };
+    "@babel/plugin-syntax-json-strings-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-json-strings";
+      packageName = "@babel/plugin-syntax-json-strings";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz";
+        sha512 = "lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==";
+      };
+    };
+    "@babel/plugin-syntax-logical-assignment-operators-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-logical-assignment-operators";
+      packageName = "@babel/plugin-syntax-logical-assignment-operators";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz";
+        sha512 = "d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==";
+      };
+    };
+    "@babel/plugin-syntax-nullish-coalescing-operator-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-nullish-coalescing-operator";
+      packageName = "@babel/plugin-syntax-nullish-coalescing-operator";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz";
+        sha512 = "aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==";
+      };
+    };
+    "@babel/plugin-syntax-numeric-separator-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-numeric-separator";
+      packageName = "@babel/plugin-syntax-numeric-separator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz";
+        sha512 = "9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==";
+      };
+    };
+    "@babel/plugin-syntax-object-rest-spread-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-object-rest-spread";
+      packageName = "@babel/plugin-syntax-object-rest-spread";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz";
+        sha512 = "XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==";
+      };
+    };
+    "@babel/plugin-syntax-optional-catch-binding-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-optional-catch-binding";
+      packageName = "@babel/plugin-syntax-optional-catch-binding";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz";
+        sha512 = "6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==";
+      };
+    };
+    "@babel/plugin-syntax-optional-chaining-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-optional-chaining";
+      packageName = "@babel/plugin-syntax-optional-chaining";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz";
+        sha512 = "KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==";
+      };
+    };
+    "@babel/plugin-syntax-top-level-await-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-top-level-await";
+      packageName = "@babel/plugin-syntax-top-level-await";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz";
+        sha512 = "ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==";
+      };
+    };
+    "@babel/plugin-transform-arrow-functions-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-arrow-functions";
+      packageName = "@babel/plugin-transform-arrow-functions";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz";
+        sha512 = "9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==";
+      };
+    };
+    "@babel/plugin-transform-async-to-generator-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-async-to-generator";
+      packageName = "@babel/plugin-transform-async-to-generator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz";
+        sha512 = "F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==";
+      };
+    };
+    "@babel/plugin-transform-block-scoped-functions-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-block-scoped-functions";
+      packageName = "@babel/plugin-transform-block-scoped-functions";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz";
+        sha512 = "WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==";
+      };
+    };
+    "@babel/plugin-transform-block-scoping-7.11.1" = {
+      name = "_at_babel_slash_plugin-transform-block-scoping";
+      packageName = "@babel/plugin-transform-block-scoping";
+      version = "7.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz";
+        sha512 = "00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==";
+      };
+    };
+    "@babel/plugin-transform-classes-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-classes";
+      packageName = "@babel/plugin-transform-classes";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz";
+        sha512 = "2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==";
+      };
+    };
+    "@babel/plugin-transform-computed-properties-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-computed-properties";
+      packageName = "@babel/plugin-transform-computed-properties";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz";
+        sha512 = "JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==";
+      };
+    };
+    "@babel/plugin-transform-destructuring-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-destructuring";
+      packageName = "@babel/plugin-transform-destructuring";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz";
+        sha512 = "+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==";
+      };
+    };
+    "@babel/plugin-transform-dotall-regex-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-dotall-regex";
+      packageName = "@babel/plugin-transform-dotall-regex";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz";
+        sha512 = "ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==";
+      };
+    };
+    "@babel/plugin-transform-duplicate-keys-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-duplicate-keys";
+      packageName = "@babel/plugin-transform-duplicate-keys";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz";
+        sha512 = "GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==";
+      };
+    };
+    "@babel/plugin-transform-exponentiation-operator-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-exponentiation-operator";
+      packageName = "@babel/plugin-transform-exponentiation-operator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz";
+        sha512 = "S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==";
+      };
+    };
+    "@babel/plugin-transform-for-of-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-for-of";
+      packageName = "@babel/plugin-transform-for-of";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz";
+        sha512 = "ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==";
+      };
+    };
+    "@babel/plugin-transform-function-name-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-function-name";
+      packageName = "@babel/plugin-transform-function-name";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz";
+        sha512 = "OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==";
+      };
+    };
+    "@babel/plugin-transform-literals-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-literals";
+      packageName = "@babel/plugin-transform-literals";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz";
+        sha512 = "Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==";
+      };
+    };
+    "@babel/plugin-transform-member-expression-literals-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-member-expression-literals";
+      packageName = "@babel/plugin-transform-member-expression-literals";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz";
+        sha512 = "0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==";
+      };
+    };
+    "@babel/plugin-transform-modules-amd-7.10.5" = {
+      name = "_at_babel_slash_plugin-transform-modules-amd";
+      packageName = "@babel/plugin-transform-modules-amd";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz";
+        sha512 = "elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==";
+      };
+    };
+    "@babel/plugin-transform-modules-commonjs-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-modules-commonjs";
+      packageName = "@babel/plugin-transform-modules-commonjs";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz";
+        sha512 = "Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==";
+      };
+    };
+    "@babel/plugin-transform-modules-systemjs-7.10.5" = {
+      name = "_at_babel_slash_plugin-transform-modules-systemjs";
+      packageName = "@babel/plugin-transform-modules-systemjs";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz";
+        sha512 = "f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==";
+      };
+    };
+    "@babel/plugin-transform-modules-umd-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-modules-umd";
+      packageName = "@babel/plugin-transform-modules-umd";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz";
+        sha512 = "mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==";
+      };
+    };
+    "@babel/plugin-transform-named-capturing-groups-regex-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
+      packageName = "@babel/plugin-transform-named-capturing-groups-regex";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz";
+        sha512 = "V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==";
+      };
+    };
+    "@babel/plugin-transform-new-target-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-new-target";
+      packageName = "@babel/plugin-transform-new-target";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz";
+        sha512 = "YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==";
+      };
+    };
+    "@babel/plugin-transform-object-super-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-object-super";
+      packageName = "@babel/plugin-transform-object-super";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz";
+        sha512 = "5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==";
+      };
+    };
+    "@babel/plugin-transform-parameters-7.10.5" = {
+      name = "_at_babel_slash_plugin-transform-parameters";
+      packageName = "@babel/plugin-transform-parameters";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz";
+        sha512 = "xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==";
+      };
+    };
+    "@babel/plugin-transform-property-literals-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-property-literals";
+      packageName = "@babel/plugin-transform-property-literals";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz";
+        sha512 = "ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==";
+      };
+    };
+    "@babel/plugin-transform-regenerator-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-regenerator";
+      packageName = "@babel/plugin-transform-regenerator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz";
+        sha512 = "3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==";
+      };
+    };
+    "@babel/plugin-transform-reserved-words-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-reserved-words";
+      packageName = "@babel/plugin-transform-reserved-words";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz";
+        sha512 = "hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==";
+      };
+    };
+    "@babel/plugin-transform-shorthand-properties-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-shorthand-properties";
+      packageName = "@babel/plugin-transform-shorthand-properties";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz";
+        sha512 = "AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==";
+      };
+    };
+    "@babel/plugin-transform-spread-7.11.0" = {
+      name = "_at_babel_slash_plugin-transform-spread";
+      packageName = "@babel/plugin-transform-spread";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz";
+        sha512 = "UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==";
+      };
+    };
+    "@babel/plugin-transform-sticky-regex-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-sticky-regex";
+      packageName = "@babel/plugin-transform-sticky-regex";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz";
+        sha512 = "Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==";
+      };
+    };
+    "@babel/plugin-transform-template-literals-7.10.5" = {
+      name = "_at_babel_slash_plugin-transform-template-literals";
+      packageName = "@babel/plugin-transform-template-literals";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz";
+        sha512 = "V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==";
+      };
+    };
+    "@babel/plugin-transform-typeof-symbol-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-typeof-symbol";
+      packageName = "@babel/plugin-transform-typeof-symbol";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz";
+        sha512 = "QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==";
+      };
+    };
+    "@babel/plugin-transform-unicode-escapes-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-unicode-escapes";
+      packageName = "@babel/plugin-transform-unicode-escapes";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz";
+        sha512 = "y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==";
+      };
+    };
+    "@babel/plugin-transform-unicode-regex-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-unicode-regex";
+      packageName = "@babel/plugin-transform-unicode-regex";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz";
+        sha512 = "wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==";
+      };
+    };
+    "@babel/preset-env-7.11.5" = {
+      name = "_at_babel_slash_preset-env";
+      packageName = "@babel/preset-env";
+      version = "7.11.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.5.tgz";
+        sha512 = "kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA==";
+      };
+    };
+    "@babel/preset-modules-0.1.4" = {
+      name = "_at_babel_slash_preset-modules";
+      packageName = "@babel/preset-modules";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz";
+        sha512 = "J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==";
+      };
+    };
+    "@babel/register-7.11.5" = {
+      name = "_at_babel_slash_register";
+      packageName = "@babel/register";
+      version = "7.11.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/register/-/register-7.11.5.tgz";
+        sha512 = "CAml0ioKX+kOAvBQDHa/+t1fgOt3qkTIz0TrRtRAT6XY0m5qYZXR85k6/sLCNPMGhYDlCFHCYuU0ybTJbvlC6w==";
+      };
+    };
+    "@babel/runtime-7.11.2" = {
+      name = "_at_babel_slash_runtime";
+      packageName = "@babel/runtime";
+      version = "7.11.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz";
+        sha512 = "TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==";
+      };
+    };
+    "@babel/template-7.10.4" = {
+      name = "_at_babel_slash_template";
+      packageName = "@babel/template";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz";
+        sha512 = "ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==";
+      };
+    };
+    "@babel/traverse-7.11.5" = {
+      name = "_at_babel_slash_traverse";
+      packageName = "@babel/traverse";
+      version = "7.11.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz";
+        sha512 = "EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==";
+      };
+    };
+    "@babel/types-7.11.5" = {
+      name = "_at_babel_slash_types";
+      packageName = "@babel/types";
+      version = "7.11.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz";
+        sha512 = "bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==";
+      };
+    };
+    "@commitlint/execute-rule-11.0.0" = {
+      name = "_at_commitlint_slash_execute-rule";
+      packageName = "@commitlint/execute-rule";
+      version = "11.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-11.0.0.tgz";
+        sha512 = "g01p1g4BmYlZ2+tdotCavrMunnPFPhTzG1ZiLKTCYrooHRbmvqo42ZZn4QMStUEIcn+jfLb6BRZX3JzIwA1ezQ==";
+      };
+    };
+    "@commitlint/load-11.0.0" = {
+      name = "_at_commitlint_slash_load";
+      packageName = "@commitlint/load";
+      version = "11.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@commitlint/load/-/load-11.0.0.tgz";
+        sha512 = "t5ZBrtgvgCwPfxmG811FCp39/o3SJ7L+SNsxFL92OR4WQxPcu6c8taD0CG2lzOHGuRyuMxZ7ps3EbngT2WpiCg==";
+      };
+    };
+    "@commitlint/resolve-extends-11.0.0" = {
+      name = "_at_commitlint_slash_resolve-extends";
+      packageName = "@commitlint/resolve-extends";
+      version = "11.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-11.0.0.tgz";
+        sha512 = "WinU6Uv6L7HDGLqn/To13KM1CWvZ09VHZqryqxXa1OY+EvJkfU734CwnOEeNlSCK7FVLrB4kmodLJtL1dkEpXw==";
+      };
+    };
+    "@commitlint/types-11.0.0" = {
+      name = "_at_commitlint_slash_types";
+      packageName = "@commitlint/types";
+      version = "11.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@commitlint/types/-/types-11.0.0.tgz";
+        sha512 = "VoNqai1vR5anRF5Tuh/+SWDFk7xi7oMwHrHrbm1BprYXjB2RJsWLhUrStMssDxEl5lW/z3EUdg8RvH/IUBccSQ==";
+      };
+    };
+    "@istanbuljs/load-nyc-config-1.1.0" = {
+      name = "_at_istanbuljs_slash_load-nyc-config";
+      packageName = "@istanbuljs/load-nyc-config";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz";
+        sha512 = "VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==";
+      };
+    };
+    "@istanbuljs/nyc-config-babel-2.1.1" = {
+      name = "_at_istanbuljs_slash_nyc-config-babel";
+      packageName = "@istanbuljs/nyc-config-babel";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@istanbuljs/nyc-config-babel/-/nyc-config-babel-2.1.1.tgz";
+        sha512 = "cWcUCqHOYB+Mpumsv03uaE7rMvtmJn7pZ3llc+9gyqMFC93IVcUuuJ/mknoWsiuajcEjRCqKmhGaiAaXG6kzLA==";
+      };
+    };
+    "@istanbuljs/schema-0.1.2" = {
+      name = "_at_istanbuljs_slash_schema";
+      packageName = "@istanbuljs/schema";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz";
+        sha512 = "tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==";
+      };
+    };
+    "@nodelib/fs.scandir-2.1.3" = {
+      name = "_at_nodelib_slash_fs.scandir";
+      packageName = "@nodelib/fs.scandir";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz";
+        sha512 = "eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==";
+      };
+    };
+    "@nodelib/fs.stat-2.0.3" = {
+      name = "_at_nodelib_slash_fs.stat";
+      packageName = "@nodelib/fs.stat";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz";
+        sha512 = "bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==";
+      };
+    };
+    "@nodelib/fs.walk-1.2.4" = {
+      name = "_at_nodelib_slash_fs.walk";
+      packageName = "@nodelib/fs.walk";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz";
+        sha512 = "1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==";
+      };
+    };
+    "@octokit/auth-token-2.4.2" = {
+      name = "_at_octokit_slash_auth-token";
+      packageName = "@octokit/auth-token";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.2.tgz";
+        sha512 = "jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ==";
+      };
+    };
+    "@octokit/endpoint-6.0.6" = {
+      name = "_at_octokit_slash_endpoint";
+      packageName = "@octokit/endpoint";
+      version = "6.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.6.tgz";
+        sha512 = "7Cc8olaCoL/mtquB7j/HTbPM+sY6Ebr4k2X2y4JoXpVKQ7r5xB4iGQE0IoO58wIPsUk4AzoT65AMEpymSbWTgQ==";
+      };
+    };
+    "@octokit/plugin-paginate-rest-1.1.2" = {
+      name = "_at_octokit_slash_plugin-paginate-rest";
+      packageName = "@octokit/plugin-paginate-rest";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz";
+        sha512 = "jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q==";
+      };
+    };
+    "@octokit/plugin-request-log-1.0.0" = {
+      name = "_at_octokit_slash_plugin-request-log";
+      packageName = "@octokit/plugin-request-log";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz";
+        sha512 = "ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw==";
+      };
+    };
+    "@octokit/plugin-rest-endpoint-methods-2.4.0" = {
+      name = "_at_octokit_slash_plugin-rest-endpoint-methods";
+      packageName = "@octokit/plugin-rest-endpoint-methods";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz";
+        sha512 = "EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==";
+      };
+    };
+    "@octokit/request-5.4.8" = {
+      name = "_at_octokit_slash_request";
+      packageName = "@octokit/request";
+      version = "5.4.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octokit/request/-/request-5.4.8.tgz";
+        sha512 = "mWbxjsARJzAq5xp+ZrQfotc+MHFz3/Am2qATJwflv4PZ1TjhgIJnr60PCVdZT9Z/tl+uPXooaVgeviy1KkDlLQ==";
+      };
+    };
+    "@octokit/request-error-1.2.1" = {
+      name = "_at_octokit_slash_request-error";
+      packageName = "@octokit/request-error";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octokit/request-error/-/request-error-1.2.1.tgz";
+        sha512 = "+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==";
+      };
+    };
+    "@octokit/request-error-2.0.2" = {
+      name = "_at_octokit_slash_request-error";
+      packageName = "@octokit/request-error";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.2.tgz";
+        sha512 = "2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw==";
+      };
+    };
+    "@octokit/rest-16.43.2" = {
+      name = "_at_octokit_slash_rest";
+      packageName = "@octokit/rest";
+      version = "16.43.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.2.tgz";
+        sha512 = "ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==";
+      };
+    };
+    "@octokit/types-2.16.2" = {
+      name = "_at_octokit_slash_types";
+      packageName = "@octokit/types";
+      version = "2.16.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octokit/types/-/types-2.16.2.tgz";
+        sha512 = "O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==";
+      };
+    };
+    "@octokit/types-5.4.1" = {
+      name = "_at_octokit_slash_types";
+      packageName = "@octokit/types";
+      version = "5.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@octokit/types/-/types-5.4.1.tgz";
+        sha512 = "OlMlSySBJoJ6uozkr/i03nO5dlYQyE05vmQNZhAh9MyO4DPBP88QlwsDVLmVjIMFssvIZB6WO0ctIGMRG+xsJQ==";
+      };
+    };
+    "@semantic-release/commit-analyzer-6.3.3" = {
+      name = "_at_semantic-release_slash_commit-analyzer";
+      packageName = "@semantic-release/commit-analyzer";
+      version = "6.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-6.3.3.tgz";
+        sha512 = "Pyv1ZL2u5AIOY4YbxFCAB5J1PEh5yON8ylbfiPiriDGGW6Uu1U3Y8lysMtWu+FUD5x7tSnyIzhqx0+fxPxqbgw==";
+      };
+    };
+    "@semantic-release/error-2.2.0" = {
+      name = "_at_semantic-release_slash_error";
+      packageName = "@semantic-release/error";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@semantic-release/error/-/error-2.2.0.tgz";
+        sha512 = "9Tj/qn+y2j+sjCI3Jd+qseGtHjOAeg7dU2/lVcqIQ9TV3QDaDXDYXcoOHU+7o2Hwh8L8ymL4gfuO7KxDs3q2zg==";
+      };
+    };
+    "@semantic-release/github-5.5.8" = {
+      name = "_at_semantic-release_slash_github";
+      packageName = "@semantic-release/github";
+      version = "5.5.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@semantic-release/github/-/github-5.5.8.tgz";
+        sha512 = "YxbBXbCThs/Xk3E4QU01AMIUM8eb0UTvjHJtclTDR3/DEW7kUpmXQqBMnSh3qCTuk4scRFIoaF0fGU/0xByZug==";
+      };
+    };
+    "@semantic-release/npm-5.3.5" = {
+      name = "_at_semantic-release_slash_npm";
+      packageName = "@semantic-release/npm";
+      version = "5.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@semantic-release/npm/-/npm-5.3.5.tgz";
+        sha512 = "AOREQ6rUT8OAiqXvWCp0kMNjcdnLLq1JdP0voZL4l5zf6Tgs/65YA7ctP+9shthW01Ps85Nu0pILW3p9GkaYuw==";
+      };
+    };
+    "@semantic-release/release-notes-generator-7.3.5" = {
+      name = "_at_semantic-release_slash_release-notes-generator";
+      packageName = "@semantic-release/release-notes-generator";
+      version = "7.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@semantic-release/release-notes-generator/-/release-notes-generator-7.3.5.tgz";
+        sha512 = "LGjgPBGjjmjap/76O0Md3wc04Y7IlLnzZceLsAkcYRwGQdRPTTFUJKqDQTuieWTs7zfHzQoZqsqPfFxEN+g2+Q==";
+      };
+    };
+    "@sinonjs/commons-1.8.1" = {
+      name = "_at_sinonjs_slash_commons";
+      packageName = "@sinonjs/commons";
+      version = "1.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz";
+        sha512 = "892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==";
+      };
+    };
+    "@sinonjs/formatio-3.2.2" = {
+      name = "_at_sinonjs_slash_formatio";
+      packageName = "@sinonjs/formatio";
+      version = "3.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.2.tgz";
+        sha512 = "B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ==";
+      };
+    };
+    "@sinonjs/samsam-2.1.3" = {
+      name = "_at_sinonjs_slash_samsam";
+      packageName = "@sinonjs/samsam";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-2.1.3.tgz";
+        sha512 = "8zNeBkSKhU9a5cRNbpCKau2WWPfan+Q2zDlcXvXyhn9EsMqgYs4qzo0XHNVlXC6ABQL8fT6nV+zzo5RTHJzyXw==";
+      };
+    };
+    "@sinonjs/samsam-3.3.3" = {
+      name = "_at_sinonjs_slash_samsam";
+      packageName = "@sinonjs/samsam";
+      version = "3.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz";
+        sha512 = "bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ==";
+      };
+    };
+    "@sinonjs/text-encoding-0.7.1" = {
+      name = "_at_sinonjs_slash_text-encoding";
+      packageName = "@sinonjs/text-encoding";
+      version = "0.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz";
+        sha512 = "+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==";
+      };
+    };
+    "@types/color-name-1.1.1" = {
+      name = "_at_types_slash_color-name";
+      packageName = "@types/color-name";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz";
+        sha512 = "rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==";
+      };
+    };
+    "@types/glob-7.1.3" = {
+      name = "_at_types_slash_glob";
+      packageName = "@types/glob";
+      version = "7.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz";
+        sha512 = "SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==";
+      };
+    };
+    "@types/minimatch-3.0.3" = {
+      name = "_at_types_slash_minimatch";
+      packageName = "@types/minimatch";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz";
+        sha512 = "tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==";
+      };
+    };
+    "@types/minimist-1.2.0" = {
+      name = "_at_types_slash_minimist";
+      packageName = "@types/minimist";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.0.tgz";
+        sha1 = "69a23a3ad29caf0097f06eda59b361ee2f0639f6";
+      };
+    };
+    "@types/node-14.10.0" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "14.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-14.10.0.tgz";
+        sha512 = "SOIyrdADB4cq6eY1F+9iU48iIomFAPltu11LCvA9PKcyEwHadjCFzNVPotAR+oEJA0bCP4Xvvgy+vwu1ZjVh8g==";
+      };
+    };
+    "@types/normalize-package-data-2.4.0" = {
+      name = "_at_types_slash_normalize-package-data";
+      packageName = "@types/normalize-package-data";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
+        sha512 = "f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==";
+      };
+    };
+    "@types/parse-json-4.0.0" = {
+      name = "_at_types_slash_parse-json";
+      packageName = "@types/parse-json";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz";
+        sha512 = "//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==";
+      };
+    };
+    "@types/retry-0.12.0" = {
+      name = "_at_types_slash_retry";
+      packageName = "@types/retry";
+      version = "0.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz";
+        sha512 = "wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==";
+      };
+    };
+    "JSONStream-1.3.5" = {
+      name = "JSONStream";
+      packageName = "JSONStream";
+      version = "1.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz";
+        sha512 = "E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==";
+      };
+    };
+    "abbrev-1.1.1" = {
+      name = "abbrev";
+      packageName = "abbrev";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
+        sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
+      };
+    };
+    "agent-base-5.1.1" = {
+      name = "agent-base";
+      packageName = "agent-base";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/agent-base/-/agent-base-5.1.1.tgz";
+        sha512 = "TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==";
+      };
+    };
+    "aggregate-error-3.1.0" = {
+      name = "aggregate-error";
+      packageName = "aggregate-error";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz";
+        sha512 = "4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==";
+      };
+    };
+    "ansi-align-2.0.0" = {
+      name = "ansi-align";
+      packageName = "ansi-align";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz";
+        sha1 = "c36aeccba563b89ceb556f3690f0b1d9e3547f7f";
+      };
+    };
+    "ansi-colors-3.2.3" = {
+      name = "ansi-colors";
+      packageName = "ansi-colors";
+      version = "3.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz";
+        sha512 = "LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==";
+      };
+    };
+    "ansi-escapes-3.2.0" = {
+      name = "ansi-escapes";
+      packageName = "ansi-escapes";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
+        sha512 = "cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==";
+      };
+    };
+    "ansi-regex-2.1.1" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
+        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+      };
+    };
+    "ansi-regex-3.0.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz";
+        sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+      };
+    };
+    "ansi-regex-4.1.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
+        sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
+      };
+    };
+    "ansi-regex-5.0.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz";
+        sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==";
+      };
+    };
+    "ansi-styles-3.2.1" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz";
+        sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
+      };
+    };
+    "ansi-styles-4.2.1" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz";
+        sha512 = "9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==";
+      };
+    };
+    "ansicolors-0.3.2" = {
+      name = "ansicolors";
+      packageName = "ansicolors";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz";
+        sha1 = "665597de86a9ffe3aa9bfbe6cae5c6ea426b4979";
+      };
+    };
+    "anymatch-2.0.0" = {
+      name = "anymatch";
+      packageName = "anymatch";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz";
+        sha512 = "5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==";
+      };
+    };
+    "append-transform-2.0.0" = {
+      name = "append-transform";
+      packageName = "append-transform";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz";
+        sha512 = "7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==";
+      };
+    };
+    "archy-1.0.0" = {
+      name = "archy";
+      packageName = "archy";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz";
+        sha1 = "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40";
+      };
+    };
+    "argparse-1.0.10" = {
+      name = "argparse";
+      packageName = "argparse";
+      version = "1.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
+        sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
+      };
+    };
+    "argv-formatter-1.0.0" = {
+      name = "argv-formatter";
+      packageName = "argv-formatter";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/argv-formatter/-/argv-formatter-1.0.0.tgz";
+        sha1 = "a0ca0cbc29a5b73e836eebe1cbf6c5e0e4eb82f9";
+      };
+    };
+    "arr-diff-4.0.0" = {
+      name = "arr-diff";
+      packageName = "arr-diff";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz";
+        sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
+      };
+    };
+    "arr-flatten-1.1.0" = {
+      name = "arr-flatten";
+      packageName = "arr-flatten";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz";
+        sha512 = "L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==";
+      };
+    };
+    "arr-union-3.1.0" = {
+      name = "arr-union";
+      packageName = "arr-union";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz";
+        sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+      };
+    };
+    "array-from-2.1.1" = {
+      name = "array-from";
+      packageName = "array-from";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz";
+        sha1 = "cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195";
+      };
+    };
+    "array-ify-1.0.0" = {
+      name = "array-ify";
+      packageName = "array-ify";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz";
+        sha1 = "9e528762b4a9066ad163a6962a364418e9626ece";
+      };
+    };
+    "array-union-2.1.0" = {
+      name = "array-union";
+      packageName = "array-union";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz";
+        sha512 = "HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==";
+      };
+    };
+    "array-unique-0.3.2" = {
+      name = "array-unique";
+      packageName = "array-unique";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz";
+        sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+      };
+    };
+    "arrify-1.0.1" = {
+      name = "arrify";
+      packageName = "arrify";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz";
+        sha1 = "898508da2226f380df904728456849c1501a4b0d";
+      };
+    };
+    "asn1-0.1.11" = {
+      name = "asn1";
+      packageName = "asn1";
+      version = "0.1.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asn1/-/asn1-0.1.11.tgz";
+        sha1 = "559be18376d08a4ec4dbe80877d27818639b2df7";
+      };
+    };
+    "assert-plus-0.1.5" = {
+      name = "assert-plus";
+      packageName = "assert-plus";
+      version = "0.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assert-plus/-/assert-plus-0.1.5.tgz";
+        sha1 = "ee74009413002d84cec7219c6ac811812e723160";
+      };
+    };
+    "assertion-error-1.1.0" = {
+      name = "assertion-error";
+      packageName = "assertion-error";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz";
+        sha512 = "jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==";
+      };
+    };
+    "assign-symbols-1.0.0" = {
+      name = "assign-symbols";
+      packageName = "assign-symbols";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz";
+        sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+      };
+    };
+    "async-0.9.2" = {
+      name = "async";
+      packageName = "async";
+      version = "0.9.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-0.9.2.tgz";
+        sha1 = "aea74d5e61c1f899613bf64bda66d4c78f2fd17d";
+      };
+    };
+    "async-each-1.0.3" = {
+      name = "async-each";
+      packageName = "async-each";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz";
+        sha512 = "z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==";
+      };
+    };
+    "atob-2.1.2" = {
+      name = "atob";
+      packageName = "atob";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz";
+        sha512 = "Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==";
+      };
+    };
+    "atob-lite-2.0.0" = {
+      name = "atob-lite";
+      packageName = "atob-lite";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/atob-lite/-/atob-lite-2.0.0.tgz";
+        sha1 = "0fef5ad46f1bd7a8502c65727f0367d5ee43d696";
+      };
+    };
+    "aws-sign2-0.5.0" = {
+      name = "aws-sign2";
+      packageName = "aws-sign2";
+      version = "0.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.5.0.tgz";
+        sha1 = "c57103f7a17fc037f02d7c2e64b602ea223f7d63";
+      };
+    };
+    "axios-0.19.0" = {
+      name = "axios";
+      packageName = "axios";
+      version = "0.19.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz";
+        sha512 = "1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==";
+      };
+    };
+    "babel-plugin-dynamic-import-node-2.3.3" = {
+      name = "babel-plugin-dynamic-import-node";
+      packageName = "babel-plugin-dynamic-import-node";
+      version = "2.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz";
+        sha512 = "jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==";
+      };
+    };
+    "babel-plugin-istanbul-5.2.0" = {
+      name = "babel-plugin-istanbul";
+      packageName = "babel-plugin-istanbul";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz";
+        sha512 = "5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==";
+      };
+    };
+    "balanced-match-1.0.0" = {
+      name = "balanced-match";
+      packageName = "balanced-match";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
+        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+      };
+    };
+    "base-0.11.2" = {
+      name = "base";
+      packageName = "base";
+      version = "0.11.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/base/-/base-0.11.2.tgz";
+        sha512 = "5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==";
+      };
+    };
+    "before-after-hook-2.1.0" = {
+      name = "before-after-hook";
+      packageName = "before-after-hook";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.1.0.tgz";
+        sha512 = "IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==";
+      };
+    };
+    "binary-extensions-1.13.1" = {
+      name = "binary-extensions";
+      packageName = "binary-extensions";
+      version = "1.13.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz";
+        sha512 = "Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==";
+      };
+    };
+    "bindings-1.5.0" = {
+      name = "bindings";
+      packageName = "bindings";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz";
+        sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==";
+      };
+    };
+    "bl-0.9.5" = {
+      name = "bl";
+      packageName = "bl";
+      version = "0.9.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bl/-/bl-0.9.5.tgz";
+        sha1 = "c06b797af085ea00bc527afc8efcf11de2232054";
+      };
+    };
+    "boom-0.4.2" = {
+      name = "boom";
+      packageName = "boom";
+      version = "0.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/boom/-/boom-0.4.2.tgz";
+        sha1 = "7a636e9ded4efcefb19cef4947a3c67dfaee911b";
+      };
+    };
+    "bottleneck-2.19.5" = {
+      name = "bottleneck";
+      packageName = "bottleneck";
+      version = "2.19.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bottleneck/-/bottleneck-2.19.5.tgz";
+        sha512 = "VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==";
+      };
+    };
+    "boxen-1.3.0" = {
+      name = "boxen";
+      packageName = "boxen";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz";
+        sha512 = "TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==";
+      };
+    };
+    "brace-expansion-1.1.11" = {
+      name = "brace-expansion";
+      packageName = "brace-expansion";
+      version = "1.1.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
+        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+      };
+    };
+    "braces-2.3.2" = {
+      name = "braces";
+      packageName = "braces";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz";
+        sha512 = "aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==";
+      };
+    };
+    "braces-3.0.2" = {
+      name = "braces";
+      packageName = "braces";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz";
+        sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
+      };
+    };
+    "browser-stdout-1.3.1" = {
+      name = "browser-stdout";
+      packageName = "browser-stdout";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz";
+        sha512 = "qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==";
+      };
+    };
+    "browserslist-4.14.2" = {
+      name = "browserslist";
+      packageName = "browserslist";
+      version = "4.14.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.14.2.tgz";
+        sha512 = "HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==";
+      };
+    };
+    "btoa-lite-1.0.0" = {
+      name = "btoa-lite";
+      packageName = "btoa-lite";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz";
+        sha1 = "337766da15801210fdd956c22e9c6891ab9d0337";
+      };
+    };
+    "buffer-from-1.1.1" = {
+      name = "buffer-from";
+      packageName = "buffer-from";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz";
+        sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==";
+      };
+    };
+    "cache-base-1.0.1" = {
+      name = "cache-base";
+      packageName = "cache-base";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz";
+        sha512 = "AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==";
+      };
+    };
+    "cachedir-2.2.0" = {
+      name = "cachedir";
+      packageName = "cachedir";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cachedir/-/cachedir-2.2.0.tgz";
+        sha512 = "VvxA0xhNqIIfg0V9AmJkDg91DaJwryutH5rVEZAhcNi4iJFj9f+QxmAjgK1LT9I8OgToX27fypX6/MeCXVbBjQ==";
+      };
+    };
+    "caching-transform-4.0.0" = {
+      name = "caching-transform";
+      packageName = "caching-transform";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz";
+        sha512 = "kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==";
+      };
+    };
+    "caller-callsite-2.0.0" = {
+      name = "caller-callsite";
+      packageName = "caller-callsite";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz";
+        sha1 = "847e0fce0a223750a9a027c54b33731ad3154134";
+      };
+    };
+    "caller-path-2.0.0" = {
+      name = "caller-path";
+      packageName = "caller-path";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz";
+        sha1 = "468f83044e369ab2010fac5f06ceee15bb2cb1f4";
+      };
+    };
+    "callsites-2.0.0" = {
+      name = "callsites";
+      packageName = "callsites";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz";
+        sha1 = "06eb84f00eea413da86affefacbffb36093b3c50";
+      };
+    };
+    "callsites-3.1.0" = {
+      name = "callsites";
+      packageName = "callsites";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz";
+        sha512 = "P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==";
+      };
+    };
+    "camelcase-4.1.0" = {
+      name = "camelcase";
+      packageName = "camelcase";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz";
+        sha1 = "d545635be1e33c542649c69173e5de6acfae34dd";
+      };
+    };
+    "camelcase-5.3.1" = {
+      name = "camelcase";
+      packageName = "camelcase";
+      version = "5.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz";
+        sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
+      };
+    };
+    "camelcase-keys-6.2.2" = {
+      name = "camelcase-keys";
+      packageName = "camelcase-keys";
+      version = "6.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz";
+        sha512 = "YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==";
+      };
+    };
+    "caniuse-lite-1.0.30001125" = {
+      name = "caniuse-lite";
+      packageName = "caniuse-lite";
+      version = "1.0.30001125";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001125.tgz";
+        sha512 = "9f+r7BW8Qli917mU3j0fUaTweT3f3vnX/Lcs+1C73V+RADmFme+Ih0Br8vONQi3X0lseOe6ZHfsZLCA8MSjxUA==";
+      };
+    };
+    "capture-stack-trace-1.0.1" = {
+      name = "capture-stack-trace";
+      packageName = "capture-stack-trace";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz";
+        sha512 = "mYQLZnx5Qt1JgB1WEiMCf2647plpGeQ2NMR/5L0HNZzGQo4fuSPnK+wjfPnKZV0aiJDgzmWqqkV/g7JD+DW0qw==";
+      };
+    };
+    "cardinal-2.1.1" = {
+      name = "cardinal";
+      packageName = "cardinal";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz";
+        sha1 = "7cc1055d822d212954d07b085dea251cc7bc5505";
+      };
+    };
+    "caseless-0.6.0" = {
+      name = "caseless";
+      packageName = "caseless";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caseless/-/caseless-0.6.0.tgz";
+        sha1 = "8167c1ab8397fb5bb95f96d28e5a81c50f247ac4";
+      };
+    };
+    "chai-4.2.0" = {
+      name = "chai";
+      packageName = "chai";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz";
+        sha512 = "XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==";
+      };
+    };
+    "chalk-2.4.2" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
+        sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
+      };
+    };
+    "chalk-4.1.0" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz";
+        sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==";
+      };
+    };
+    "chardet-0.7.0" = {
+      name = "chardet";
+      packageName = "chardet";
+      version = "0.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz";
+        sha512 = "mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==";
+      };
+    };
+    "charenc-0.0.2" = {
+      name = "charenc";
+      packageName = "charenc";
+      version = "0.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/charenc/-/charenc-0.0.2.tgz";
+        sha1 = "c0a1d2f3a7092e03774bfa83f14c0fc5790a8667";
+      };
+    };
+    "check-error-1.0.2" = {
+      name = "check-error";
+      packageName = "check-error";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz";
+        sha1 = "574d312edd88bb5dd8912e9286dd6c0aed4aac82";
+      };
+    };
+    "chokidar-2.1.8" = {
+      name = "chokidar";
+      packageName = "chokidar";
+      version = "2.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz";
+        sha512 = "ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==";
+      };
+    };
+    "ci-info-1.6.0" = {
+      name = "ci-info";
+      packageName = "ci-info";
+      version = "1.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ci-info/-/ci-info-1.6.0.tgz";
+        sha512 = "vsGdkwSCDpWmP80ncATX7iea5DWQemg1UgCW5J8tqjU3lYw4FBYuj89J0CTVomA7BEfvSZd84GmHko+MxFQU2A==";
+      };
+    };
+    "class-utils-0.3.6" = {
+      name = "class-utils";
+      packageName = "class-utils";
+      version = "0.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz";
+        sha512 = "qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==";
+      };
+    };
+    "clean-stack-2.2.0" = {
+      name = "clean-stack";
+      packageName = "clean-stack";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz";
+        sha512 = "4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==";
+      };
+    };
+    "cli-boxes-1.0.0" = {
+      name = "cli-boxes";
+      packageName = "cli-boxes";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-boxes/-/cli-boxes-1.0.0.tgz";
+        sha1 = "4fa917c3e59c94a004cd61f8ee509da651687143";
+      };
+    };
+    "cli-cursor-2.1.0" = {
+      name = "cli-cursor";
+      packageName = "cli-cursor";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz";
+        sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5";
+      };
+    };
+    "cli-table-0.3.1" = {
+      name = "cli-table";
+      packageName = "cli-table";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-table/-/cli-table-0.3.1.tgz";
+        sha1 = "f53b05266a8b1a0b934b3d0821e6e2dc5914ae23";
+      };
+    };
+    "cli-width-2.2.1" = {
+      name = "cli-width";
+      packageName = "cli-width";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz";
+        sha512 = "GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==";
+      };
+    };
+    "cliui-4.1.0" = {
+      name = "cliui";
+      packageName = "cliui";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz";
+        sha512 = "4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==";
+      };
+    };
+    "cliui-6.0.0" = {
+      name = "cliui";
+      packageName = "cliui";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz";
+        sha512 = "t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==";
+      };
+    };
+    "code-point-at-1.1.0" = {
+      name = "code-point-at";
+      packageName = "code-point-at";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz";
+        sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+      };
+    };
+    "codecov.io-0.1.6" = {
+      name = "codecov.io";
+      packageName = "codecov.io";
+      version = "0.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/codecov.io/-/codecov.io-0.1.6.tgz";
+        sha1 = "59dfd02da1ff31c2fb2b952ad8ad16fd3781b728";
+      };
+    };
+    "collection-visit-1.0.0" = {
+      name = "collection-visit";
+      packageName = "collection-visit";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz";
+        sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
+      };
+    };
+    "color-convert-1.9.3" = {
+      name = "color-convert";
+      packageName = "color-convert";
+      version = "1.9.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz";
+        sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==";
+      };
+    };
+    "color-convert-2.0.1" = {
+      name = "color-convert";
+      packageName = "color-convert";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
+        sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
+      };
+    };
+    "color-name-1.1.3" = {
+      name = "color-name";
+      packageName = "color-name";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz";
+        sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+      };
+    };
+    "color-name-1.1.4" = {
+      name = "color-name";
+      packageName = "color-name";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
+        sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
+      };
+    };
+    "colors-0.6.2" = {
+      name = "colors";
+      packageName = "colors";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz";
+        sha1 = "2423fe6678ac0c5dae8852e5d0e5be08c997abcc";
+      };
+    };
+    "colors-1.0.3" = {
+      name = "colors";
+      packageName = "colors";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz";
+        sha1 = "0433f44d809680fdeb60ed260f1b0c262e82a40b";
+      };
+    };
+    "combined-stream-0.0.7" = {
+      name = "combined-stream";
+      packageName = "combined-stream";
+      version = "0.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz";
+        sha1 = "0137e657baa5a7541c57ac37ac5fc07d73b4dc1f";
+      };
+    };
+    "commander-2.1.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-2.1.0.tgz";
+        sha1 = "d121bbae860d9992a3d517ba96f56588e47c6781";
+      };
+    };
+    "commander-2.9.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "2.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz";
+        sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
+      };
+    };
+    "commander-4.1.1" = {
+      name = "commander";
+      packageName = "commander";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz";
+        sha512 = "NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==";
+      };
+    };
+    "commitizen-4.2.1" = {
+      name = "commitizen";
+      packageName = "commitizen";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commitizen/-/commitizen-4.2.1.tgz";
+        sha512 = "nZsp8IThkDu7C+93BFD/mLShb9Gd6Wsaf90tpKE3x/6u5y/Q52kzanIJpGr0qvIsJ5bCMpgKtr3Lbu3miEJfaA==";
+      };
+    };
+    "commondir-1.0.1" = {
+      name = "commondir";
+      packageName = "commondir";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz";
+        sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b";
+      };
+    };
+    "compare-func-2.0.0" = {
+      name = "compare-func";
+      packageName = "compare-func";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz";
+        sha512 = "zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==";
+      };
+    };
+    "component-emitter-1.3.0" = {
+      name = "component-emitter";
+      packageName = "component-emitter";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz";
+        sha512 = "Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==";
+      };
+    };
+    "concat-map-0.0.1" = {
+      name = "concat-map";
+      packageName = "concat-map";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    };
+    "configstore-3.1.5" = {
+      name = "configstore";
+      packageName = "configstore";
+      version = "3.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/configstore/-/configstore-3.1.5.tgz";
+        sha512 = "nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA==";
+      };
+    };
+    "conventional-changelog-angular-5.0.11" = {
+      name = "conventional-changelog-angular";
+      packageName = "conventional-changelog-angular";
+      version = "5.0.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.11.tgz";
+        sha512 = "nSLypht/1yEflhuTogC03i7DX7sOrXGsRn14g131Potqi6cbGbGEE9PSDEHKldabB6N76HiSyw9Ph+kLmC04Qw==";
+      };
+    };
+    "conventional-changelog-writer-4.0.17" = {
+      name = "conventional-changelog-writer";
+      packageName = "conventional-changelog-writer";
+      version = "4.0.17";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.17.tgz";
+        sha512 = "IKQuK3bib/n032KWaSb8YlBFds+aLmzENtnKtxJy3+HqDq5kohu3g/UdNbIHeJWygfnEbZjnCKFxAW0y7ArZAw==";
+      };
+    };
+    "conventional-commit-types-2.3.0" = {
+      name = "conventional-commit-types";
+      packageName = "conventional-commit-types";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.3.0.tgz";
+        sha512 = "6iB39PrcGYdz0n3z31kj6/Km6mK9hm9oMRhwcLnKxE7WNoeRKZbTAobliKrbYZ5jqyCvtcVEfjCiaEzhL3AVmQ==";
+      };
+    };
+    "conventional-commit-types-3.0.0" = {
+      name = "conventional-commit-types";
+      packageName = "conventional-commit-types";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-3.0.0.tgz";
+        sha512 = "SmmCYnOniSsAa9GqWOeLqc179lfr5TRu5b4QFDkbsrJ5TZjPJx85wtOr3zn+1dbeNiXDKGPbZ72IKbPhLXh/Lg==";
+      };
+    };
+    "conventional-commits-filter-2.0.6" = {
+      name = "conventional-commits-filter";
+      packageName = "conventional-commits-filter";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.6.tgz";
+        sha512 = "4g+sw8+KA50/Qwzfr0hL5k5NWxqtrOVw4DDk3/h6L85a9Gz0/Eqp3oP+CWCNfesBvZZZEFHF7OTEbRe+yYSyKw==";
+      };
+    };
+    "conventional-commits-parser-3.1.0" = {
+      name = "conventional-commits-parser";
+      packageName = "conventional-commits-parser";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.1.0.tgz";
+        sha512 = "RSo5S0WIwXZiRxUGTPuYFbqvrR4vpJ1BDdTlthFgvHt5kEdnd1+pdvwWphWn57/oIl4V72NMmOocFqqJ8mFFhA==";
+      };
+    };
+    "convert-source-map-1.7.0" = {
+      name = "convert-source-map";
+      packageName = "convert-source-map";
+      version = "1.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz";
+        sha512 = "4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==";
+      };
+    };
+    "copy-descriptor-0.1.1" = {
+      name = "copy-descriptor";
+      packageName = "copy-descriptor";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
+        sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+      };
+    };
+    "core-js-compat-3.6.5" = {
+      name = "core-js-compat";
+      packageName = "core-js-compat";
+      version = "3.6.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz";
+        sha512 = "7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==";
+      };
+    };
+    "core-util-is-1.0.2" = {
+      name = "core-util-is";
+      packageName = "core-util-is";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+      };
+    };
+    "cosmiconfig-5.2.1" = {
+      name = "cosmiconfig";
+      packageName = "cosmiconfig";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz";
+        sha512 = "H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==";
+      };
+    };
+    "cosmiconfig-7.0.0" = {
+      name = "cosmiconfig";
+      packageName = "cosmiconfig";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.0.tgz";
+        sha512 = "pondGvTuVYDk++upghXJabWzL6Kxu6f26ljFw64Swq9v6sQPUL3EUlVDV56diOjpCayKihL6hVe8exIACU4XcA==";
+      };
+    };
+    "create-error-class-3.0.2" = {
+      name = "create-error-class";
+      packageName = "create-error-class";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/create-error-class/-/create-error-class-3.0.2.tgz";
+        sha1 = "06be7abef947a3f14a30fd610671d401bca8b7b6";
+      };
+    };
+    "cross-spawn-5.1.0" = {
+      name = "cross-spawn";
+      packageName = "cross-spawn";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz";
+        sha1 = "e8bd0efee58fcff6f8f94510a0a554bbfa235449";
+      };
+    };
+    "cross-spawn-6.0.5" = {
+      name = "cross-spawn";
+      packageName = "cross-spawn";
+      version = "6.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz";
+        sha512 = "eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==";
+      };
+    };
+    "cross-spawn-7.0.3" = {
+      name = "cross-spawn";
+      packageName = "cross-spawn";
+      version = "7.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz";
+        sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==";
+      };
+    };
+    "crypt-0.0.2" = {
+      name = "crypt";
+      packageName = "crypt";
+      version = "0.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/crypt/-/crypt-0.0.2.tgz";
+        sha1 = "88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b";
+      };
+    };
+    "cryptiles-0.2.2" = {
+      name = "cryptiles";
+      packageName = "cryptiles";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz";
+        sha1 = "ed91ff1f17ad13d3748288594f8a48a0d26f325c";
+      };
+    };
+    "crypto-random-string-1.0.0" = {
+      name = "crypto-random-string";
+      packageName = "crypto-random-string";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz";
+        sha1 = "a230f64f568310e1498009940790ec99545bca7e";
+      };
+    };
+    "ctype-0.5.3" = {
+      name = "ctype";
+      packageName = "ctype";
+      version = "0.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ctype/-/ctype-0.5.3.tgz";
+        sha1 = "82c18c2461f74114ef16c135224ad0b9144ca12f";
+      };
+    };
+    "cz-conventional-changelog-3.2.0" = {
+      name = "cz-conventional-changelog";
+      packageName = "cz-conventional-changelog";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cz-conventional-changelog/-/cz-conventional-changelog-3.2.0.tgz";
+        sha512 = "yAYxeGpVi27hqIilG1nh4A9Bnx4J3Ov+eXy4koL3drrR+IO9GaWPsKjik20ht608Asqi8TQPf0mczhEeyAtMzg==";
+      };
+    };
+    "cz-conventional-changelog-default-export-0.0.0-semantically-released.1" = {
+      name = "cz-conventional-changelog-default-export";
+      packageName = "cz-conventional-changelog-default-export";
+      version = "0.0.0-semantically-released.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cz-conventional-changelog-default-export/-/cz-conventional-changelog-default-export-0.0.0-semantically-released.1.tgz";
+        sha1 = "522fbf6a54110d34152636cb5e7476899d68cd46";
+      };
+    };
+    "dateformat-3.0.3" = {
+      name = "dateformat";
+      packageName = "dateformat";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz";
+        sha512 = "jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==";
+      };
+    };
+    "debug-2.6.9" = {
+      name = "debug";
+      packageName = "debug";
+      version = "2.6.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
+        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
+      };
+    };
+    "debug-3.1.0" = {
+      name = "debug";
+      packageName = "debug";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz";
+        sha512 = "OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==";
+      };
+    };
+    "debug-3.2.6" = {
+      name = "debug";
+      packageName = "debug";
+      version = "3.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz";
+        sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==";
+      };
+    };
+    "debug-4.2.0" = {
+      name = "debug";
+      packageName = "debug";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz";
+        sha512 = "IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==";
+      };
+    };
+    "decamelize-1.2.0" = {
+      name = "decamelize";
+      packageName = "decamelize";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
+        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+      };
+    };
+    "decamelize-keys-1.1.0" = {
+      name = "decamelize-keys";
+      packageName = "decamelize-keys";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz";
+        sha1 = "d171a87933252807eb3cb61dc1c1445d078df2d9";
+      };
+    };
+    "decode-uri-component-0.2.0" = {
+      name = "decode-uri-component";
+      packageName = "decode-uri-component";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
+        sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+      };
+    };
+    "dedent-0.7.0" = {
+      name = "dedent";
+      packageName = "dedent";
+      version = "0.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz";
+        sha1 = "2495ddbaf6eb874abb0e1be9df22d2e5a544326c";
+      };
+    };
+    "deep-eql-3.0.1" = {
+      name = "deep-eql";
+      packageName = "deep-eql";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz";
+        sha512 = "+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==";
+      };
+    };
+    "deep-equal-0.1.2" = {
+      name = "deep-equal";
+      packageName = "deep-equal";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-equal/-/deep-equal-0.1.2.tgz";
+        sha1 = "b246c2b80a570a47c11be1d9bd1070ec878b87ce";
+      };
+    };
+    "deep-extend-0.6.0" = {
+      name = "deep-extend";
+      packageName = "deep-extend";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz";
+        sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
+      };
+    };
+    "default-require-extensions-3.0.0" = {
+      name = "default-require-extensions";
+      packageName = "default-require-extensions";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz";
+        sha512 = "ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==";
+      };
+    };
+    "define-properties-1.1.3" = {
+      name = "define-properties";
+      packageName = "define-properties";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz";
+        sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==";
+      };
+    };
+    "define-property-0.2.5" = {
+      name = "define-property";
+      packageName = "define-property";
+      version = "0.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz";
+        sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
+      };
+    };
+    "define-property-1.0.0" = {
+      name = "define-property";
+      packageName = "define-property";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz";
+        sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
+      };
+    };
+    "define-property-2.0.2" = {
+      name = "define-property";
+      packageName = "define-property";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz";
+        sha512 = "jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==";
+      };
+    };
+    "defined-0.0.0" = {
+      name = "defined";
+      packageName = "defined";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/defined/-/defined-0.0.0.tgz";
+        sha1 = "f35eea7d705e933baf13b2f03b3f83d921403b3e";
+      };
+    };
+    "delayed-stream-0.0.5" = {
+      name = "delayed-stream";
+      packageName = "delayed-stream";
+      version = "0.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz";
+        sha1 = "d4b1f43a93e8296dfe02694f4680bc37a313c73f";
+      };
+    };
+    "deprecation-2.3.1" = {
+      name = "deprecation";
+      packageName = "deprecation";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz";
+        sha512 = "xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==";
+      };
+    };
+    "detect-file-1.0.0" = {
+      name = "detect-file";
+      packageName = "detect-file";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz";
+        sha1 = "f0d66d03672a825cb1b73bdb3fe62310c8e552b7";
+      };
+    };
+    "detect-indent-6.0.0" = {
+      name = "detect-indent";
+      packageName = "detect-indent";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/detect-indent/-/detect-indent-6.0.0.tgz";
+        sha512 = "oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA==";
+      };
+    };
+    "diff-3.5.0" = {
+      name = "diff";
+      packageName = "diff";
+      version = "3.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz";
+        sha512 = "A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==";
+      };
+    };
+    "dir-glob-3.0.1" = {
+      name = "dir-glob";
+      packageName = "dir-glob";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz";
+        sha512 = "WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==";
+      };
+    };
+    "dot-prop-4.2.1" = {
+      name = "dot-prop";
+      packageName = "dot-prop";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz";
+        sha512 = "l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==";
+      };
+    };
+    "dot-prop-5.3.0" = {
+      name = "dot-prop";
+      packageName = "dot-prop";
+      version = "5.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz";
+        sha512 = "QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==";
+      };
+    };
+    "duplexer-0.1.2" = {
+      name = "duplexer";
+      packageName = "duplexer";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz";
+        sha512 = "jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==";
+      };
+    };
+    "duplexer2-0.1.4" = {
+      name = "duplexer2";
+      packageName = "duplexer2";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz";
+        sha1 = "8b12dab878c0d69e3e7891051662a32fc6bddcc1";
+      };
+    };
+    "duplexer3-0.1.4" = {
+      name = "duplexer3";
+      packageName = "duplexer3";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz";
+        sha1 = "ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2";
+      };
+    };
+    "electron-to-chromium-1.3.565" = {
+      name = "electron-to-chromium";
+      packageName = "electron-to-chromium";
+      version = "1.3.565";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.565.tgz";
+        sha512 = "me5dGlHFd8Q7mKhqbWRLIYnKjw4i0fO6hmW0JBxa7tM87fBfNEjWokRnDF7V+Qme/9IYpwhfMn+soWs40tXWqg==";
+      };
+    };
+    "emoji-regex-7.0.3" = {
+      name = "emoji-regex";
+      packageName = "emoji-regex";
+      version = "7.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz";
+        sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==";
+      };
+    };
+    "emoji-regex-8.0.0" = {
+      name = "emoji-regex";
+      packageName = "emoji-regex";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz";
+        sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==";
+      };
+    };
+    "end-of-stream-1.4.4" = {
+      name = "end-of-stream";
+      packageName = "end-of-stream";
+      version = "1.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz";
+        sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==";
+      };
+    };
+    "env-ci-4.5.2" = {
+      name = "env-ci";
+      packageName = "env-ci";
+      version = "4.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/env-ci/-/env-ci-4.5.2.tgz";
+        sha512 = "lS+edpNp2+QXEPkx6raEMIjKxKKWnJ4+VWzovYJ2NLYiJAYenSAXotFfVdgaFxdbVnvAbUI8epQDa1u12ERxfQ==";
+      };
+    };
+    "error-ex-1.3.2" = {
+      name = "error-ex";
+      packageName = "error-ex";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz";
+        sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
+      };
+    };
+    "es-abstract-1.17.6" = {
+      name = "es-abstract";
+      packageName = "es-abstract";
+      version = "1.17.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz";
+        sha512 = "Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==";
+      };
+    };
+    "es-to-primitive-1.2.1" = {
+      name = "es-to-primitive";
+      packageName = "es-to-primitive";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
+        sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==";
+      };
+    };
+    "es6-error-4.1.1" = {
+      name = "es6-error";
+      packageName = "es6-error";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz";
+        sha512 = "Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==";
+      };
+    };
+    "escalade-3.0.2" = {
+      name = "escalade";
+      packageName = "escalade";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz";
+        sha512 = "gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==";
+      };
+    };
+    "escape-string-regexp-1.0.5" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+      };
+    };
+    "esprima-4.0.1" = {
+      name = "esprima";
+      packageName = "esprima";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
+        sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
+      };
+    };
+    "esutils-2.0.3" = {
+      name = "esutils";
+      packageName = "esutils";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz";
+        sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
+      };
+    };
+    "execa-0.7.0" = {
+      name = "execa";
+      packageName = "execa";
+      version = "0.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz";
+        sha1 = "944becd34cc41ee32a63a9faf27ad5a65fc59777";
+      };
+    };
+    "execa-1.0.0" = {
+      name = "execa";
+      packageName = "execa";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz";
+        sha512 = "adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==";
+      };
+    };
+    "execa-3.4.0" = {
+      name = "execa";
+      packageName = "execa";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/execa/-/execa-3.4.0.tgz";
+        sha512 = "r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==";
+      };
+    };
+    "expand-brackets-2.1.4" = {
+      name = "expand-brackets";
+      packageName = "expand-brackets";
+      version = "2.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz";
+        sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
+      };
+    };
+    "expand-tilde-2.0.2" = {
+      name = "expand-tilde";
+      packageName = "expand-tilde";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz";
+        sha1 = "97e801aa052df02454de46b02bf621642cdc8502";
+      };
+    };
+    "extend-shallow-2.0.1" = {
+      name = "extend-shallow";
+      packageName = "extend-shallow";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz";
+        sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+      };
+    };
+    "extend-shallow-3.0.2" = {
+      name = "extend-shallow";
+      packageName = "extend-shallow";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz";
+        sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+      };
+    };
+    "external-editor-3.1.0" = {
+      name = "external-editor";
+      packageName = "external-editor";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz";
+        sha512 = "hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==";
+      };
+    };
+    "extglob-2.0.4" = {
+      name = "extglob";
+      packageName = "extglob";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz";
+        sha512 = "Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==";
+      };
+    };
+    "fast-glob-3.2.4" = {
+      name = "fast-glob";
+      packageName = "fast-glob";
+      version = "3.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz";
+        sha512 = "kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==";
+      };
+    };
+    "fastq-1.8.0" = {
+      name = "fastq";
+      packageName = "fastq";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz";
+        sha512 = "SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==";
+      };
+    };
+    "figures-2.0.0" = {
+      name = "figures";
+      packageName = "figures";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz";
+        sha1 = "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962";
+      };
+    };
+    "figures-3.2.0" = {
+      name = "figures";
+      packageName = "figures";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz";
+        sha512 = "yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==";
+      };
+    };
+    "file-uri-to-path-1.0.0" = {
+      name = "file-uri-to-path";
+      packageName = "file-uri-to-path";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
+        sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==";
+      };
+    };
+    "fill-keys-1.0.2" = {
+      name = "fill-keys";
+      packageName = "fill-keys";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fill-keys/-/fill-keys-1.0.2.tgz";
+        sha1 = "9a8fa36f4e8ad634e3bf6b4f3c8882551452eb20";
+      };
+    };
+    "fill-range-4.0.0" = {
+      name = "fill-range";
+      packageName = "fill-range";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz";
+        sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
+      };
+    };
+    "fill-range-7.0.1" = {
+      name = "fill-range";
+      packageName = "fill-range";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz";
+        sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
+      };
+    };
+    "find-cache-dir-2.1.0" = {
+      name = "find-cache-dir";
+      packageName = "find-cache-dir";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz";
+        sha512 = "Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==";
+      };
+    };
+    "find-cache-dir-3.3.1" = {
+      name = "find-cache-dir";
+      packageName = "find-cache-dir";
+      version = "3.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz";
+        sha512 = "t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==";
+      };
+    };
+    "find-node-modules-2.0.0" = {
+      name = "find-node-modules";
+      packageName = "find-node-modules";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-node-modules/-/find-node-modules-2.0.0.tgz";
+        sha512 = "8MWIBRgJi/WpjjfVXumjPKCtmQ10B+fjx6zmSA+770GMJirLhWIzg8l763rhjl9xaeaHbnxPNRQKq2mgMhr+aw==";
+      };
+    };
+    "find-root-1.1.0" = {
+      name = "find-root";
+      packageName = "find-root";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-root/-/find-root-1.1.0.tgz";
+        sha512 = "NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==";
+      };
+    };
+    "find-up-2.1.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz";
+        sha1 = "45d1b7e506c717ddd482775a2b77920a3c0c57a7";
+      };
+    };
+    "find-up-3.0.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz";
+        sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==";
+      };
+    };
+    "find-up-4.1.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz";
+        sha512 = "PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==";
+      };
+    };
+    "find-versions-3.2.0" = {
+      name = "find-versions";
+      packageName = "find-versions";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz";
+        sha512 = "P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==";
+      };
+    };
+    "findup-0.1.5" = {
+      name = "findup";
+      packageName = "findup";
+      version = "0.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/findup/-/findup-0.1.5.tgz";
+        sha1 = "8ad929a3393bac627957a7e5de4623b06b0e2ceb";
+      };
+    };
+    "findup-sync-3.0.0" = {
+      name = "findup-sync";
+      packageName = "findup-sync";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz";
+        sha512 = "YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg==";
+      };
+    };
+    "flat-4.1.0" = {
+      name = "flat";
+      packageName = "flat";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz";
+        sha512 = "Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==";
+      };
+    };
+    "follow-redirects-1.5.10" = {
+      name = "follow-redirects";
+      packageName = "follow-redirects";
+      version = "1.5.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz";
+        sha512 = "0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==";
+      };
+    };
+    "for-in-1.0.2" = {
+      name = "for-in";
+      packageName = "for-in";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz";
+        sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
+      };
+    };
+    "foreground-child-2.0.0" = {
+      name = "foreground-child";
+      packageName = "foreground-child";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz";
+        sha512 = "dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==";
+      };
+    };
+    "forever-agent-0.5.2" = {
+      name = "forever-agent";
+      packageName = "forever-agent";
+      version = "0.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.5.2.tgz";
+        sha1 = "6d0e09c4921f94a27f63d3b49c5feff1ea4c5130";
+      };
+    };
+    "form-data-0.1.4" = {
+      name = "form-data";
+      packageName = "form-data";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/form-data/-/form-data-0.1.4.tgz";
+        sha1 = "91abd788aba9702b1aabfa8bc01031a2ac9e3b12";
+      };
+    };
+    "fragment-cache-0.2.1" = {
+      name = "fragment-cache";
+      packageName = "fragment-cache";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz";
+        sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+      };
+    };
+    "from2-2.3.0" = {
+      name = "from2";
+      packageName = "from2";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz";
+        sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af";
+      };
+    };
+    "fromentries-1.2.1" = {
+      name = "fromentries";
+      packageName = "fromentries";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fromentries/-/fromentries-1.2.1.tgz";
+        sha512 = "Xu2Qh8yqYuDhQGOhD5iJGninErSfI9A3FrriD3tjUgV5VbJFeH8vfgZ9HnC6jWN80QDVNQK5vmxRAmEAp7Mevw==";
+      };
+    };
+    "fs-extra-8.1.0" = {
+      name = "fs-extra";
+      packageName = "fs-extra";
+      version = "8.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz";
+        sha512 = "yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==";
+      };
+    };
+    "fs-readdir-recursive-1.1.0" = {
+      name = "fs-readdir-recursive";
+      packageName = "fs-readdir-recursive";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz";
+        sha512 = "GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==";
+      };
+    };
+    "fs.realpath-1.0.0" = {
+      name = "fs.realpath";
+      packageName = "fs.realpath";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
+        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+      };
+    };
+    "fsevents-1.2.13" = {
+      name = "fsevents";
+      packageName = "fsevents";
+      version = "1.2.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz";
+        sha512 = "oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==";
+      };
+    };
+    "function-bind-1.1.1" = {
+      name = "function-bind";
+      packageName = "function-bind";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
+        sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
+      };
+    };
+    "gensync-1.0.0-beta.1" = {
+      name = "gensync";
+      packageName = "gensync";
+      version = "1.0.0-beta.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz";
+        sha512 = "r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==";
+      };
+    };
+    "get-caller-file-1.0.3" = {
+      name = "get-caller-file";
+      packageName = "get-caller-file";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz";
+        sha512 = "3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==";
+      };
+    };
+    "get-caller-file-2.0.5" = {
+      name = "get-caller-file";
+      packageName = "get-caller-file";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz";
+        sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
+      };
+    };
+    "get-func-name-2.0.0" = {
+      name = "get-func-name";
+      packageName = "get-func-name";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz";
+        sha1 = "ead774abee72e20409433a066366023dd6887a41";
+      };
+    };
+    "get-package-type-0.1.0" = {
+      name = "get-package-type";
+      packageName = "get-package-type";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz";
+        sha512 = "pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==";
+      };
+    };
+    "get-stream-3.0.0" = {
+      name = "get-stream";
+      packageName = "get-stream";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz";
+        sha1 = "8e943d1358dc37555054ecbe2edb05aa174ede14";
+      };
+    };
+    "get-stream-4.1.0" = {
+      name = "get-stream";
+      packageName = "get-stream";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz";
+        sha512 = "GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==";
+      };
+    };
+    "get-stream-5.2.0" = {
+      name = "get-stream";
+      packageName = "get-stream";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz";
+        sha512 = "nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==";
+      };
+    };
+    "get-value-2.0.6" = {
+      name = "get-value";
+      packageName = "get-value";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz";
+        sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+      };
+    };
+    "ghooks-2.0.4" = {
+      name = "ghooks";
+      packageName = "ghooks";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ghooks/-/ghooks-2.0.4.tgz";
+        sha1 = "fd50e040ff548906ae42cb51793a01bfe24567b9";
+      };
+    };
+    "git-log-parser-1.2.0" = {
+      name = "git-log-parser";
+      packageName = "git-log-parser";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/git-log-parser/-/git-log-parser-1.2.0.tgz";
+        sha1 = "2e6a4c1b13fc00028207ba795a7ac31667b9fd4a";
+      };
+    };
+    "glob-7.1.3" = {
+      name = "glob";
+      packageName = "glob";
+      version = "7.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz";
+        sha512 = "vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==";
+      };
+    };
+    "glob-7.1.4" = {
+      name = "glob";
+      packageName = "glob";
+      version = "7.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz";
+        sha512 = "hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==";
+      };
+    };
+    "glob-7.1.6" = {
+      name = "glob";
+      packageName = "glob";
+      version = "7.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
+        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+      };
+    };
+    "glob-parent-3.1.0" = {
+      name = "glob-parent";
+      packageName = "glob-parent";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz";
+        sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+      };
+    };
+    "glob-parent-5.1.1" = {
+      name = "glob-parent";
+      packageName = "glob-parent";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz";
+        sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==";
+      };
+    };
+    "global-dirs-0.1.1" = {
+      name = "global-dirs";
+      packageName = "global-dirs";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz";
+        sha1 = "b319c0dd4607f353f3be9cca4c72fc148c49f445";
+      };
+    };
+    "global-modules-1.0.0" = {
+      name = "global-modules";
+      packageName = "global-modules";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz";
+        sha512 = "sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==";
+      };
+    };
+    "global-prefix-1.0.2" = {
+      name = "global-prefix";
+      packageName = "global-prefix";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz";
+        sha1 = "dbf743c6c14992593c655568cb66ed32c0122ebe";
+      };
+    };
+    "globals-11.12.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "11.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz";
+        sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==";
+      };
+    };
+    "globby-10.0.2" = {
+      name = "globby";
+      packageName = "globby";
+      version = "10.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globby/-/globby-10.0.2.tgz";
+        sha512 = "7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==";
+      };
+    };
+    "got-6.7.1" = {
+      name = "got";
+      packageName = "got";
+      version = "6.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/got/-/got-6.7.1.tgz";
+        sha1 = "240cd05785a9a18e561dc1b44b41c763ef1e8db0";
+      };
+    };
+    "graceful-fs-4.2.4" = {
+      name = "graceful-fs";
+      packageName = "graceful-fs";
+      version = "4.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz";
+        sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==";
+      };
+    };
+    "graceful-readlink-1.0.1" = {
+      name = "graceful-readlink";
+      packageName = "graceful-readlink";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
+        sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
+      };
+    };
+    "growl-1.10.5" = {
+      name = "growl";
+      packageName = "growl";
+      version = "1.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz";
+        sha512 = "qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==";
+      };
+    };
+    "handlebars-4.7.6" = {
+      name = "handlebars";
+      packageName = "handlebars";
+      version = "4.7.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz";
+        sha512 = "1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==";
+      };
+    };
+    "hard-rejection-2.1.0" = {
+      name = "hard-rejection";
+      packageName = "hard-rejection";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz";
+        sha512 = "VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==";
+      };
+    };
+    "has-1.0.3" = {
+      name = "has";
+      packageName = "has";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
+        sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
+      };
+    };
+    "has-flag-2.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz";
+        sha1 = "e8207af1cc7b30d446cc70b734b5e8be18f88d51";
+      };
+    };
+    "has-flag-3.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz";
+        sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+      };
+    };
+    "has-flag-4.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
+        sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
+      };
+    };
+    "has-symbols-1.0.1" = {
+      name = "has-symbols";
+      packageName = "has-symbols";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz";
+        sha512 = "PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==";
+      };
+    };
+    "has-value-0.3.1" = {
+      name = "has-value";
+      packageName = "has-value";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz";
+        sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
+      };
+    };
+    "has-value-1.0.0" = {
+      name = "has-value";
+      packageName = "has-value";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz";
+        sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
+      };
+    };
+    "has-values-0.1.4" = {
+      name = "has-values";
+      packageName = "has-values";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz";
+        sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
+      };
+    };
+    "has-values-1.0.0" = {
+      name = "has-values";
+      packageName = "has-values";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz";
+        sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
+      };
+    };
+    "hasha-5.2.0" = {
+      name = "hasha";
+      packageName = "hasha";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz";
+        sha512 = "2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==";
+      };
+    };
+    "hawk-1.1.1" = {
+      name = "hawk";
+      packageName = "hawk";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hawk/-/hawk-1.1.1.tgz";
+        sha1 = "87cd491f9b46e4e2aeaca335416766885d2d1ed9";
+      };
+    };
+    "he-1.2.0" = {
+      name = "he";
+      packageName = "he";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz";
+        sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
+      };
+    };
+    "hoek-0.9.1" = {
+      name = "hoek";
+      packageName = "hoek";
+      version = "0.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hoek/-/hoek-0.9.1.tgz";
+        sha1 = "3d322462badf07716ea7eb85baf88079cddce505";
+      };
+    };
+    "homedir-polyfill-1.0.3" = {
+      name = "homedir-polyfill";
+      packageName = "homedir-polyfill";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz";
+        sha512 = "eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==";
+      };
+    };
+    "hook-std-2.0.0" = {
+      name = "hook-std";
+      packageName = "hook-std";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hook-std/-/hook-std-2.0.0.tgz";
+        sha512 = "zZ6T5WcuBMIUVh49iPQS9t977t7C0l7OtHrpeMb5uk48JdflRX0NSFvCekfYNmGQETnLq9W/isMyHl69kxGi8g==";
+      };
+    };
+    "hosted-git-info-2.8.8" = {
+      name = "hosted-git-info";
+      packageName = "hosted-git-info";
+      version = "2.8.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
+        sha512 = "f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==";
+      };
+    };
+    "html-escaper-2.0.2" = {
+      name = "html-escaper";
+      packageName = "html-escaper";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz";
+        sha512 = "H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==";
+      };
+    };
+    "http-proxy-agent-3.0.0" = {
+      name = "http-proxy-agent";
+      packageName = "http-proxy-agent";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-3.0.0.tgz";
+        sha512 = "uGuJaBWQWDQCJI5ip0d/VTYZW0nRrlLWXA4A7P1jrsa+f77rW2yXz315oBt6zGCF6l8C2tlMxY7ffULCj+5FhA==";
+      };
+    };
+    "http-signature-0.10.1" = {
+      name = "http-signature";
+      packageName = "http-signature";
+      version = "0.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-signature/-/http-signature-0.10.1.tgz";
+        sha1 = "4fbdac132559aa8323121e540779c0a012b27e66";
+      };
+    };
+    "https-proxy-agent-4.0.0" = {
+      name = "https-proxy-agent";
+      packageName = "https-proxy-agent";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-4.0.0.tgz";
+        sha512 = "zoDhWrkR3of1l9QAL8/scJZyLu8j/gBkcwcaQOZh7Gyh/+uJQzGVETdgT30akuwkpL8HTRfssqI3BZuV18teDg==";
+      };
+    };
+    "human-signals-1.1.1" = {
+      name = "human-signals";
+      packageName = "human-signals";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz";
+        sha512 = "SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==";
+      };
+    };
+    "iconv-lite-0.4.24" = {
+      name = "iconv-lite";
+      packageName = "iconv-lite";
+      version = "0.4.24";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
+        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
+      };
+    };
+    "ignore-5.1.8" = {
+      name = "ignore";
+      packageName = "ignore";
+      version = "5.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz";
+        sha512 = "BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==";
+      };
+    };
+    "ignore-by-default-1.0.1" = {
+      name = "ignore-by-default";
+      packageName = "ignore-by-default";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz";
+        sha1 = "48ca6d72f6c6a3af00a9ad4ae6876be3889e2b09";
+      };
+    };
+    "import-fresh-2.0.0" = {
+      name = "import-fresh";
+      packageName = "import-fresh";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz";
+        sha1 = "d81355c15612d386c61f9ddd3922d4304822a546";
+      };
+    };
+    "import-fresh-3.2.1" = {
+      name = "import-fresh";
+      packageName = "import-fresh";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz";
+        sha512 = "6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==";
+      };
+    };
+    "import-from-3.0.0" = {
+      name = "import-from";
+      packageName = "import-from";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-from/-/import-from-3.0.0.tgz";
+        sha512 = "CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ==";
+      };
+    };
+    "import-lazy-2.1.0" = {
+      name = "import-lazy";
+      packageName = "import-lazy";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz";
+        sha1 = "05698e3d45c88e8d7e9d92cb0584e77f096f3e43";
+      };
+    };
+    "imurmurhash-0.1.4" = {
+      name = "imurmurhash";
+      packageName = "imurmurhash";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz";
+        sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+      };
+    };
+    "in-publish-2.0.1" = {
+      name = "in-publish";
+      packageName = "in-publish";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz";
+        sha512 = "oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ==";
+      };
+    };
+    "indent-string-4.0.0" = {
+      name = "indent-string";
+      packageName = "indent-string";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz";
+        sha512 = "EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==";
+      };
+    };
+    "inflight-1.0.6" = {
+      name = "inflight";
+      packageName = "inflight";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
+        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+      };
+    };
+    "inherits-2.0.4" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
+        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+      };
+    };
+    "ini-1.3.5" = {
+      name = "ini";
+      packageName = "ini";
+      version = "1.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz";
+        sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==";
+      };
+    };
+    "inquirer-6.5.2" = {
+      name = "inquirer";
+      packageName = "inquirer";
+      version = "6.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz";
+        sha512 = "cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==";
+      };
+    };
+    "into-stream-5.1.1" = {
+      name = "into-stream";
+      packageName = "into-stream";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/into-stream/-/into-stream-5.1.1.tgz";
+        sha512 = "krrAJ7McQxGGmvaYbB7Q1mcA+cRwg9Ij2RfWIeVesNBgVDZmzY/Fa4IpZUT3bmdRzMzdf/mzltCG2Dq99IZGBA==";
+      };
+    };
+    "invariant-2.2.4" = {
+      name = "invariant";
+      packageName = "invariant";
+      version = "2.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz";
+        sha512 = "phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==";
+      };
+    };
+    "invert-kv-2.0.0" = {
+      name = "invert-kv";
+      packageName = "invert-kv";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz";
+        sha512 = "wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==";
+      };
+    };
+    "is-accessor-descriptor-0.1.6" = {
+      name = "is-accessor-descriptor";
+      packageName = "is-accessor-descriptor";
+      version = "0.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
+        sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
+      };
+    };
+    "is-accessor-descriptor-1.0.0" = {
+      name = "is-accessor-descriptor";
+      packageName = "is-accessor-descriptor";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
+        sha512 = "m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==";
+      };
+    };
+    "is-arrayish-0.2.1" = {
+      name = "is-arrayish";
+      packageName = "is-arrayish";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz";
+        sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+      };
+    };
+    "is-binary-path-1.0.1" = {
+      name = "is-binary-path";
+      packageName = "is-binary-path";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz";
+        sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
+      };
+    };
+    "is-buffer-1.1.6" = {
+      name = "is-buffer";
+      packageName = "is-buffer";
+      version = "1.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz";
+        sha512 = "NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==";
+      };
+    };
+    "is-buffer-2.0.4" = {
+      name = "is-buffer";
+      packageName = "is-buffer";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz";
+        sha512 = "Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==";
+      };
+    };
+    "is-callable-1.2.1" = {
+      name = "is-callable";
+      packageName = "is-callable";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.1.tgz";
+        sha512 = "wliAfSzx6V+6WfMOmus1xy0XvSgf/dlStkvTfq7F0g4bOIW0PSUbnyse3NhDwdyYS1ozfUtAAySqTws3z9Eqgg==";
+      };
+    };
+    "is-ci-1.2.1" = {
+      name = "is-ci";
+      packageName = "is-ci";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-ci/-/is-ci-1.2.1.tgz";
+        sha512 = "s6tfsaQaQi3JNciBH6shVqEDvhGut0SUXr31ag8Pd8BBbVVlcGfWhpPmEOoM6RJ5TFhbypvf5yyRw/VXW1IiWg==";
+      };
+    };
+    "is-data-descriptor-0.1.4" = {
+      name = "is-data-descriptor";
+      packageName = "is-data-descriptor";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
+        sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
+      };
+    };
+    "is-data-descriptor-1.0.0" = {
+      name = "is-data-descriptor";
+      packageName = "is-data-descriptor";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
+        sha512 = "jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==";
+      };
+    };
+    "is-date-object-1.0.2" = {
+      name = "is-date-object";
+      packageName = "is-date-object";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz";
+        sha512 = "USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==";
+      };
+    };
+    "is-descriptor-0.1.6" = {
+      name = "is-descriptor";
+      packageName = "is-descriptor";
+      version = "0.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz";
+        sha512 = "avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==";
+      };
+    };
+    "is-descriptor-1.0.2" = {
+      name = "is-descriptor";
+      packageName = "is-descriptor";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz";
+        sha512 = "2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==";
+      };
+    };
+    "is-directory-0.3.1" = {
+      name = "is-directory";
+      packageName = "is-directory";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz";
+        sha1 = "61339b6f2475fc772fd9c9d83f5c8575dc154ae1";
+      };
+    };
+    "is-extendable-0.1.1" = {
+      name = "is-extendable";
+      packageName = "is-extendable";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz";
+        sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+      };
+    };
+    "is-extendable-1.0.1" = {
+      name = "is-extendable";
+      packageName = "is-extendable";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz";
+        sha512 = "arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==";
+      };
+    };
+    "is-extglob-2.1.1" = {
+      name = "is-extglob";
+      packageName = "is-extglob";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz";
+        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+      };
+    };
+    "is-fullwidth-code-point-1.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+        sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+      };
+    };
+    "is-fullwidth-code-point-2.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+        sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+      };
+    };
+    "is-fullwidth-code-point-3.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
+        sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
+      };
+    };
+    "is-glob-3.1.0" = {
+      name = "is-glob";
+      packageName = "is-glob";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz";
+        sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
+      };
+    };
+    "is-glob-4.0.1" = {
+      name = "is-glob";
+      packageName = "is-glob";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
+        sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
+      };
+    };
+    "is-installed-globally-0.1.0" = {
+      name = "is-installed-globally";
+      packageName = "is-installed-globally";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz";
+        sha1 = "0dfd98f5a9111716dd535dda6492f67bf3d25a80";
+      };
+    };
+    "is-npm-1.0.0" = {
+      name = "is-npm";
+      packageName = "is-npm";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-npm/-/is-npm-1.0.0.tgz";
+        sha1 = "f2fb63a65e4905b406c86072765a1a4dc793b9f4";
+      };
+    };
+    "is-number-3.0.0" = {
+      name = "is-number";
+      packageName = "is-number";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz";
+        sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+      };
+    };
+    "is-number-7.0.0" = {
+      name = "is-number";
+      packageName = "is-number";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz";
+        sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
+      };
+    };
+    "is-obj-1.0.1" = {
+      name = "is-obj";
+      packageName = "is-obj";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz";
+        sha1 = "3e4729ac1f5fde025cd7d83a896dab9f4f67db0f";
+      };
+    };
+    "is-obj-2.0.0" = {
+      name = "is-obj";
+      packageName = "is-obj";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz";
+        sha512 = "drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==";
+      };
+    };
+    "is-object-1.0.1" = {
+      name = "is-object";
+      packageName = "is-object";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz";
+        sha1 = "8952688c5ec2ffd6b03ecc85e769e02903083470";
+      };
+    };
+    "is-path-inside-1.0.1" = {
+      name = "is-path-inside";
+      packageName = "is-path-inside";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz";
+        sha1 = "8ef5b7de50437a3fdca6b4e865ef7aa55cb48036";
+      };
+    };
+    "is-plain-obj-1.1.0" = {
+      name = "is-plain-obj";
+      packageName = "is-plain-obj";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz";
+        sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
+      };
+    };
+    "is-plain-object-2.0.4" = {
+      name = "is-plain-object";
+      packageName = "is-plain-object";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz";
+        sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==";
+      };
+    };
+    "is-plain-object-5.0.0" = {
+      name = "is-plain-object";
+      packageName = "is-plain-object";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz";
+        sha512 = "VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==";
+      };
+    };
+    "is-redirect-1.0.0" = {
+      name = "is-redirect";
+      packageName = "is-redirect";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-redirect/-/is-redirect-1.0.0.tgz";
+        sha1 = "1d03dded53bd8db0f30c26e4f95d36fc7c87dc24";
+      };
+    };
+    "is-regex-1.1.1" = {
+      name = "is-regex";
+      packageName = "is-regex";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz";
+        sha512 = "1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==";
+      };
+    };
+    "is-retry-allowed-1.2.0" = {
+      name = "is-retry-allowed";
+      packageName = "is-retry-allowed";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz";
+        sha512 = "RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg==";
+      };
+    };
+    "is-stream-1.1.0" = {
+      name = "is-stream";
+      packageName = "is-stream";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz";
+        sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
+      };
+    };
+    "is-stream-2.0.0" = {
+      name = "is-stream";
+      packageName = "is-stream";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz";
+        sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
+      };
+    };
+    "is-symbol-1.0.3" = {
+      name = "is-symbol";
+      packageName = "is-symbol";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz";
+        sha512 = "OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==";
+      };
+    };
+    "is-text-path-1.0.1" = {
+      name = "is-text-path";
+      packageName = "is-text-path";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz";
+        sha1 = "4e1aa0fb51bfbcb3e92688001397202c1775b66e";
+      };
+    };
+    "is-typedarray-1.0.0" = {
+      name = "is-typedarray";
+      packageName = "is-typedarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
+        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+      };
+    };
+    "is-utf8-0.2.1" = {
+      name = "is-utf8";
+      packageName = "is-utf8";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz";
+        sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72";
+      };
+    };
+    "is-windows-1.0.2" = {
+      name = "is-windows";
+      packageName = "is-windows";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz";
+        sha512 = "eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==";
+      };
+    };
+    "isarray-0.0.1" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
+        sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+      };
+    };
+    "isarray-1.0.0" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+      };
+    };
+    "isexe-2.0.0" = {
+      name = "isexe";
+      packageName = "isexe";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";
+        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+      };
+    };
+    "isobject-2.1.0" = {
+      name = "isobject";
+      packageName = "isobject";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz";
+        sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
+      };
+    };
+    "isobject-3.0.1" = {
+      name = "isobject";
+      packageName = "isobject";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz";
+        sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
+      };
+    };
+    "issue-parser-5.0.0" = {
+      name = "issue-parser";
+      packageName = "issue-parser";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/issue-parser/-/issue-parser-5.0.0.tgz";
+        sha512 = "q/16W7EPHRL0FKVz9NU++TUsoygXGj6JOi88oulyAcQG+IEZ0T6teVdE+VLbe19OfL/tbV8Wi3Dfo0HedeHW0Q==";
+      };
+    };
+    "istanbul-lib-coverage-2.0.5" = {
+      name = "istanbul-lib-coverage";
+      packageName = "istanbul-lib-coverage";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz";
+        sha512 = "8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==";
+      };
+    };
+    "istanbul-lib-coverage-3.0.0" = {
+      name = "istanbul-lib-coverage";
+      packageName = "istanbul-lib-coverage";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz";
+        sha512 = "UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==";
+      };
+    };
+    "istanbul-lib-hook-3.0.0" = {
+      name = "istanbul-lib-hook";
+      packageName = "istanbul-lib-hook";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz";
+        sha512 = "Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==";
+      };
+    };
+    "istanbul-lib-instrument-3.3.0" = {
+      name = "istanbul-lib-instrument";
+      packageName = "istanbul-lib-instrument";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz";
+        sha512 = "5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==";
+      };
+    };
+    "istanbul-lib-instrument-4.0.3" = {
+      name = "istanbul-lib-instrument";
+      packageName = "istanbul-lib-instrument";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz";
+        sha512 = "BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==";
+      };
+    };
+    "istanbul-lib-processinfo-2.0.2" = {
+      name = "istanbul-lib-processinfo";
+      packageName = "istanbul-lib-processinfo";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz";
+        sha512 = "kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==";
+      };
+    };
+    "istanbul-lib-report-3.0.0" = {
+      name = "istanbul-lib-report";
+      packageName = "istanbul-lib-report";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz";
+        sha512 = "wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==";
+      };
+    };
+    "istanbul-lib-source-maps-4.0.0" = {
+      name = "istanbul-lib-source-maps";
+      packageName = "istanbul-lib-source-maps";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz";
+        sha512 = "c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==";
+      };
+    };
+    "istanbul-reports-3.0.2" = {
+      name = "istanbul-reports";
+      packageName = "istanbul-reports";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz";
+        sha512 = "9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==";
+      };
+    };
+    "java-properties-1.0.2" = {
+      name = "java-properties";
+      packageName = "java-properties";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/java-properties/-/java-properties-1.0.2.tgz";
+        sha512 = "qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==";
+      };
+    };
+    "js-tokens-4.0.0" = {
+      name = "js-tokens";
+      packageName = "js-tokens";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz";
+        sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
+      };
+    };
+    "js-yaml-3.13.1" = {
+      name = "js-yaml";
+      packageName = "js-yaml";
+      version = "3.13.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz";
+        sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==";
+      };
+    };
+    "jsesc-0.5.0" = {
+      name = "jsesc";
+      packageName = "jsesc";
+      version = "0.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz";
+        sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
+      };
+    };
+    "jsesc-2.5.2" = {
+      name = "jsesc";
+      packageName = "jsesc";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz";
+        sha512 = "OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==";
+      };
+    };
+    "json-parse-better-errors-1.0.2" = {
+      name = "json-parse-better-errors";
+      packageName = "json-parse-better-errors";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
+        sha512 = "mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==";
+      };
+    };
+    "json-parse-even-better-errors-2.3.1" = {
+      name = "json-parse-even-better-errors";
+      packageName = "json-parse-even-better-errors";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz";
+        sha512 = "xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==";
+      };
+    };
+    "json-stringify-safe-5.0.1" = {
+      name = "json-stringify-safe";
+      packageName = "json-stringify-safe";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+      };
+    };
+    "json5-2.1.3" = {
+      name = "json5";
+      packageName = "json5";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz";
+        sha512 = "KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==";
+      };
+    };
+    "jsonfile-4.0.0" = {
+      name = "jsonfile";
+      packageName = "jsonfile";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz";
+        sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+      };
+    };
+    "jsonify-0.0.0" = {
+      name = "jsonify";
+      packageName = "jsonify";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz";
+        sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
+      };
+    };
+    "jsonparse-1.3.1" = {
+      name = "jsonparse";
+      packageName = "jsonparse";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz";
+        sha1 = "3f4dae4a91fac315f71062f8521cc239f1366280";
+      };
+    };
+    "just-extend-4.1.0" = {
+      name = "just-extend";
+      packageName = "just-extend";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/just-extend/-/just-extend-4.1.0.tgz";
+        sha512 = "ApcjaOdVTJ7y4r08xI5wIqpvwS48Q0PBG4DJROcEkH1f8MdAiNFyFxz3xoL0LWAVwjrwPYZdVHHxhRHcx/uGLA==";
+      };
+    };
+    "kind-of-3.2.2" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "3.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz";
+        sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+      };
+    };
+    "kind-of-4.0.0" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz";
+        sha1 = "20813df3d712928b207378691a45066fae72dd57";
+      };
+    };
+    "kind-of-5.1.0" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz";
+        sha512 = "NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==";
+      };
+    };
+    "kind-of-6.0.3" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "6.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz";
+        sha512 = "dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==";
+      };
+    };
+    "latest-version-3.1.0" = {
+      name = "latest-version";
+      packageName = "latest-version";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz";
+        sha1 = "a205383fea322b33b5ae3b18abee0dc2f356ee15";
+      };
+    };
+    "lcid-2.0.0" = {
+      name = "lcid";
+      packageName = "lcid";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz";
+        sha512 = "avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==";
+      };
+    };
+    "leven-3.1.0" = {
+      name = "leven";
+      packageName = "leven";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz";
+        sha512 = "qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==";
+      };
+    };
+    "levenary-1.1.1" = {
+      name = "levenary";
+      packageName = "levenary";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz";
+        sha512 = "mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==";
+      };
+    };
+    "lines-and-columns-1.1.6" = {
+      name = "lines-and-columns";
+      packageName = "lines-and-columns";
+      version = "1.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz";
+        sha1 = "1c00c743b433cd0a4e80758f7b64a57440d9ff00";
+      };
+    };
+    "load-json-file-4.0.0" = {
+      name = "load-json-file";
+      packageName = "load-json-file";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz";
+        sha1 = "2f5f45ab91e33216234fd53adab668eb4ec0993b";
+      };
+    };
+    "locate-path-2.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz";
+        sha1 = "2b568b265eec944c6d9c0de9c3dbbbca0354cd8e";
+      };
+    };
+    "locate-path-3.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz";
+        sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==";
+      };
+    };
+    "locate-path-5.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz";
+        sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==";
+      };
+    };
+    "lodash-4.17.20" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "4.17.20";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz";
+        sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==";
+      };
+    };
+    "lodash._baseclone-4.5.7" = {
+      name = "lodash._baseclone";
+      packageName = "lodash._baseclone";
+      version = "4.5.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash._baseclone/-/lodash._baseclone-4.5.7.tgz";
+        sha1 = "ce42ade08384ef5d62fa77c30f61a46e686f8434";
+      };
+    };
+    "lodash.capitalize-4.2.1" = {
+      name = "lodash.capitalize";
+      packageName = "lodash.capitalize";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.capitalize/-/lodash.capitalize-4.2.1.tgz";
+        sha1 = "f826c9b4e2a8511d84e3aca29db05e1a4f3b72a9";
+      };
+    };
+    "lodash.clone-4.3.2" = {
+      name = "lodash.clone";
+      packageName = "lodash.clone";
+      version = "4.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.3.2.tgz";
+        sha1 = "e56b176b6823a7dde38f7f2bf58de7d5971200e9";
+      };
+    };
+    "lodash.clone-4.5.0" = {
+      name = "lodash.clone";
+      packageName = "lodash.clone";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz";
+        sha1 = "195870450f5a13192478df4bc3d23d2dea1907b6";
+      };
+    };
+    "lodash.escaperegexp-4.1.2" = {
+      name = "lodash.escaperegexp";
+      packageName = "lodash.escaperegexp";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz";
+        sha1 = "64762c48618082518ac3df4ccf5d5886dae20347";
+      };
+    };
+    "lodash.flattendeep-4.4.0" = {
+      name = "lodash.flattendeep";
+      packageName = "lodash.flattendeep";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz";
+        sha1 = "fb030917f86a3134e5bc9bec0d69e0013ddfedb2";
+      };
+    };
+    "lodash.get-4.4.2" = {
+      name = "lodash.get";
+      packageName = "lodash.get";
+      version = "4.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz";
+        sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99";
+      };
+    };
+    "lodash.ismatch-4.4.0" = {
+      name = "lodash.ismatch";
+      packageName = "lodash.ismatch";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz";
+        sha1 = "756cb5150ca3ba6f11085a78849645f188f85f37";
+      };
+    };
+    "lodash.isplainobject-4.0.6" = {
+      name = "lodash.isplainobject";
+      packageName = "lodash.isplainobject";
+      version = "4.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz";
+        sha1 = "7c526a52d89b45c45cc690b88163be0497f550cb";
+      };
+    };
+    "lodash.isstring-4.0.1" = {
+      name = "lodash.isstring";
+      packageName = "lodash.isstring";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz";
+        sha1 = "d527dfb5456eca7cc9bb95d5daeaf88ba54a5451";
+      };
+    };
+    "lodash.map-4.6.0" = {
+      name = "lodash.map";
+      packageName = "lodash.map";
+      version = "4.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz";
+        sha1 = "771ec7839e3473d9c4cde28b19394c3562f4f6d3";
+      };
+    };
+    "lodash.set-4.3.2" = {
+      name = "lodash.set";
+      packageName = "lodash.set";
+      version = "4.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz";
+        sha1 = "d8757b1da807dde24816b0d6a84bea1a76230b23";
+      };
+    };
+    "lodash.toarray-4.4.0" = {
+      name = "lodash.toarray";
+      packageName = "lodash.toarray";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz";
+        sha1 = "24c4bfcd6b2fba38bfd0594db1179d8e9b656561";
+      };
+    };
+    "lodash.uniq-4.5.0" = {
+      name = "lodash.uniq";
+      packageName = "lodash.uniq";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
+        sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
+      };
+    };
+    "lodash.uniqby-4.7.0" = {
+      name = "lodash.uniqby";
+      packageName = "lodash.uniqby";
+      version = "4.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz";
+        sha1 = "d99c07a669e9e6d24e1362dfe266c67616af1302";
+      };
+    };
+    "log-symbols-2.2.0" = {
+      name = "log-symbols";
+      packageName = "log-symbols";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz";
+        sha512 = "VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==";
+      };
+    };
+    "lolex-2.7.5" = {
+      name = "lolex";
+      packageName = "lolex";
+      version = "2.7.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lolex/-/lolex-2.7.5.tgz";
+        sha512 = "l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q==";
+      };
+    };
+    "lolex-5.1.2" = {
+      name = "lolex";
+      packageName = "lolex";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz";
+        sha512 = "h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A==";
+      };
+    };
+    "longest-1.0.1" = {
+      name = "longest";
+      packageName = "longest";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz";
+        sha1 = "30a0b2da38f73770e8294a0d22e6625ed77d0097";
+      };
+    };
+    "longest-2.0.1" = {
+      name = "longest";
+      packageName = "longest";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/longest/-/longest-2.0.1.tgz";
+        sha1 = "781e183296aa94f6d4d916dc335d0d17aefa23f8";
+      };
+    };
+    "loose-envify-1.4.0" = {
+      name = "loose-envify";
+      packageName = "loose-envify";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz";
+        sha512 = "lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==";
+      };
+    };
+    "lowercase-keys-1.0.1" = {
+      name = "lowercase-keys";
+      packageName = "lowercase-keys";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz";
+        sha512 = "G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==";
+      };
+    };
+    "lru-cache-4.1.5" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "4.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz";
+        sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==";
+      };
+    };
+    "macos-release-2.4.1" = {
+      name = "macos-release";
+      packageName = "macos-release";
+      version = "2.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz";
+        sha512 = "H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==";
+      };
+    };
+    "make-dir-1.3.0" = {
+      name = "make-dir";
+      packageName = "make-dir";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz";
+        sha512 = "2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==";
+      };
+    };
+    "make-dir-2.1.0" = {
+      name = "make-dir";
+      packageName = "make-dir";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz";
+        sha512 = "LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==";
+      };
+    };
+    "make-dir-3.1.0" = {
+      name = "make-dir";
+      packageName = "make-dir";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz";
+        sha512 = "g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==";
+      };
+    };
+    "manage-path-2.0.0" = {
+      name = "manage-path";
+      packageName = "manage-path";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/manage-path/-/manage-path-2.0.0.tgz";
+        sha1 = "f4cf8457b926eeee2a83b173501414bc76eb9597";
+      };
+    };
+    "map-age-cleaner-0.1.3" = {
+      name = "map-age-cleaner";
+      packageName = "map-age-cleaner";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
+        sha512 = "bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==";
+      };
+    };
+    "map-cache-0.2.2" = {
+      name = "map-cache";
+      packageName = "map-cache";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz";
+        sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
+      };
+    };
+    "map-obj-1.0.1" = {
+      name = "map-obj";
+      packageName = "map-obj";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz";
+        sha1 = "d933ceb9205d82bdcf4886f6742bdc2b4dea146d";
+      };
+    };
+    "map-obj-4.1.0" = {
+      name = "map-obj";
+      packageName = "map-obj";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz";
+        sha512 = "glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==";
+      };
+    };
+    "map-visit-1.0.0" = {
+      name = "map-visit";
+      packageName = "map-visit";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz";
+        sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+      };
+    };
+    "marked-0.6.3" = {
+      name = "marked";
+      packageName = "marked";
+      version = "0.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/marked/-/marked-0.6.3.tgz";
+        sha512 = "Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ==";
+      };
+    };
+    "marked-terminal-3.3.0" = {
+      name = "marked-terminal";
+      packageName = "marked-terminal";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/marked-terminal/-/marked-terminal-3.3.0.tgz";
+        sha512 = "+IUQJ5VlZoAFsM5MHNT7g3RHSkA3eETqhRCdXv4niUMAKHQ7lb1yvAcuGPmm4soxhmtX13u4Li6ZToXtvSEH+A==";
+      };
+    };
+    "md5-2.3.0" = {
+      name = "md5";
+      packageName = "md5";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz";
+        sha512 = "T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==";
+      };
+    };
+    "mem-4.3.0" = {
+      name = "mem";
+      packageName = "mem";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz";
+        sha512 = "qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==";
+      };
+    };
+    "meow-7.1.1" = {
+      name = "meow";
+      packageName = "meow";
+      version = "7.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/meow/-/meow-7.1.1.tgz";
+        sha512 = "GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==";
+      };
+    };
+    "merge-1.2.1" = {
+      name = "merge";
+      packageName = "merge";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge/-/merge-1.2.1.tgz";
+        sha512 = "VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==";
+      };
+    };
+    "merge-descriptors-1.0.1" = {
+      name = "merge-descriptors";
+      packageName = "merge-descriptors";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
+        sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+      };
+    };
+    "merge-stream-2.0.0" = {
+      name = "merge-stream";
+      packageName = "merge-stream";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz";
+        sha512 = "abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==";
+      };
+    };
+    "merge2-1.4.1" = {
+      name = "merge2";
+      packageName = "merge2";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz";
+        sha512 = "8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==";
+      };
+    };
+    "micromatch-3.1.10" = {
+      name = "micromatch";
+      packageName = "micromatch";
+      version = "3.1.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz";
+        sha512 = "MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==";
+      };
+    };
+    "micromatch-4.0.2" = {
+      name = "micromatch";
+      packageName = "micromatch";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz";
+        sha512 = "y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==";
+      };
+    };
+    "mime-1.2.11" = {
+      name = "mime";
+      packageName = "mime";
+      version = "1.2.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime/-/mime-1.2.11.tgz";
+        sha1 = "58203eed86e3a5ef17aed2b7d9ebd47f0a60dd10";
+      };
+    };
+    "mime-2.4.6" = {
+      name = "mime";
+      packageName = "mime";
+      version = "2.4.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz";
+        sha512 = "RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==";
+      };
+    };
+    "mime-types-1.0.2" = {
+      name = "mime-types";
+      packageName = "mime-types";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-1.0.2.tgz";
+        sha1 = "995ae1392ab8affcbfcb2641dd054e943c0d5dce";
+      };
+    };
+    "mimic-fn-1.2.0" = {
+      name = "mimic-fn";
+      packageName = "mimic-fn";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz";
+        sha512 = "jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==";
+      };
+    };
+    "mimic-fn-2.1.0" = {
+      name = "mimic-fn";
+      packageName = "mimic-fn";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz";
+        sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==";
+      };
+    };
+    "min-indent-1.0.1" = {
+      name = "min-indent";
+      packageName = "min-indent";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz";
+        sha512 = "I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==";
+      };
+    };
+    "minimatch-3.0.4" = {
+      name = "minimatch";
+      packageName = "minimatch";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+      };
+    };
+    "minimist-0.0.8" = {
+      name = "minimist";
+      packageName = "minimist";
+      version = "0.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz";
+        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+      };
+    };
+    "minimist-1.2.5" = {
+      name = "minimist";
+      packageName = "minimist";
+      version = "1.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
+        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+      };
+    };
+    "minimist-options-4.1.0" = {
+      name = "minimist-options";
+      packageName = "minimist-options";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz";
+        sha512 = "Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==";
+      };
+    };
+    "mixin-deep-1.3.2" = {
+      name = "mixin-deep";
+      packageName = "mixin-deep";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz";
+        sha512 = "WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==";
+      };
+    };
+    "mkdirp-0.5.1" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "0.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz";
+        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+      };
+    };
+    "mocha-6.2.0" = {
+      name = "mocha";
+      packageName = "mocha";
+      version = "6.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mocha/-/mocha-6.2.0.tgz";
+        sha512 = "qwfFgY+7EKAAUAdv7VYMZQknI7YJSGesxHyhn6qD52DV8UcSZs5XwCifcZGMVIE4a5fbmhvbotxC0DLQ0oKohQ==";
+      };
+    };
+    "mocha-junit-reporter-1.23.3" = {
+      name = "mocha-junit-reporter";
+      packageName = "mocha-junit-reporter";
+      version = "1.23.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mocha-junit-reporter/-/mocha-junit-reporter-1.23.3.tgz";
+        sha512 = "ed8LqbRj1RxZfjt/oC9t12sfrWsjZ3gNnbhV1nuj9R/Jb5/P3Xb4duv2eCfCDMYH+fEu0mqca7m4wsiVjsxsvA==";
+      };
+    };
+    "mocha-multi-reporters-1.1.7" = {
+      name = "mocha-multi-reporters";
+      packageName = "mocha-multi-reporters";
+      version = "1.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mocha-multi-reporters/-/mocha-multi-reporters-1.1.7.tgz";
+        sha1 = "cc7f3f4d32f478520941d852abb64d9988587d82";
+      };
+    };
+    "modify-values-1.0.1" = {
+      name = "modify-values";
+      packageName = "modify-values";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/modify-values/-/modify-values-1.0.1.tgz";
+        sha512 = "xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==";
+      };
+    };
+    "module-not-found-error-1.0.1" = {
+      name = "module-not-found-error";
+      packageName = "module-not-found-error";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/module-not-found-error/-/module-not-found-error-1.0.1.tgz";
+        sha1 = "cf8b4ff4f29640674d6cdd02b0e3bc523c2bbdc0";
+      };
+    };
+    "ms-2.0.0" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
+        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+      };
+    };
+    "ms-2.1.1" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
+        sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
+      };
+    };
+    "ms-2.1.2" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
+        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+      };
+    };
+    "mute-stream-0.0.7" = {
+      name = "mute-stream";
+      packageName = "mute-stream";
+      version = "0.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz";
+        sha1 = "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab";
+      };
+    };
+    "nan-2.14.1" = {
+      name = "nan";
+      packageName = "nan";
+      version = "2.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz";
+        sha512 = "isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==";
+      };
+    };
+    "nanomatch-1.2.13" = {
+      name = "nanomatch";
+      packageName = "nanomatch";
+      version = "1.2.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz";
+        sha512 = "fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==";
+      };
+    };
+    "neo-async-2.6.2" = {
+      name = "neo-async";
+      packageName = "neo-async";
+      version = "2.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz";
+        sha512 = "Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==";
+      };
+    };
+    "nerf-dart-1.0.0" = {
+      name = "nerf-dart";
+      packageName = "nerf-dart";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nerf-dart/-/nerf-dart-1.0.0.tgz";
+        sha1 = "e6dab7febf5ad816ea81cf5c629c5a0ebde72c1a";
+      };
+    };
+    "nice-try-1.0.5" = {
+      name = "nice-try";
+      packageName = "nice-try";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz";
+        sha512 = "1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==";
+      };
+    };
+    "nise-1.5.3" = {
+      name = "nise";
+      packageName = "nise";
+      version = "1.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz";
+        sha512 = "Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ==";
+      };
+    };
+    "node-emoji-1.10.0" = {
+      name = "node-emoji";
+      packageName = "node-emoji";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz";
+        sha512 = "Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==";
+      };
+    };
+    "node-environment-flags-1.0.5" = {
+      name = "node-environment-flags";
+      packageName = "node-environment-flags";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz";
+        sha512 = "VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==";
+      };
+    };
+    "node-fetch-2.6.1" = {
+      name = "node-fetch";
+      packageName = "node-fetch";
+      version = "2.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz";
+        sha512 = "V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==";
+      };
+    };
+    "node-modules-regexp-1.0.0" = {
+      name = "node-modules-regexp";
+      packageName = "node-modules-regexp";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz";
+        sha1 = "8d9dbe28964a4ac5712e9131642107c71e90ec40";
+      };
+    };
+    "node-preload-0.2.1" = {
+      name = "node-preload";
+      packageName = "node-preload";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz";
+        sha512 = "RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==";
+      };
+    };
+    "node-releases-1.1.61" = {
+      name = "node-releases";
+      packageName = "node-releases";
+      version = "1.1.61";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.61.tgz";
+        sha512 = "DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g==";
+      };
+    };
+    "node-uuid-1.4.8" = {
+      name = "node-uuid";
+      packageName = "node-uuid";
+      version = "1.4.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-uuid/-/node-uuid-1.4.8.tgz";
+        sha1 = "b040eb0923968afabf8d32fb1f17f1167fdab907";
+      };
+    };
+    "nodemon-1.19.1" = {
+      name = "nodemon";
+      packageName = "nodemon";
+      version = "1.19.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nodemon/-/nodemon-1.19.1.tgz";
+        sha512 = "/DXLzd/GhiaDXXbGId5BzxP1GlsqtMGM9zTmkWrgXtSqjKmGSbLicM/oAy4FR0YWm14jCHRwnR31AHS2dYFHrg==";
+      };
+    };
+    "nopt-1.0.10" = {
+      name = "nopt";
+      packageName = "nopt";
+      version = "1.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz";
+        sha1 = "6ddd21bd2a31417b92727dd585f8a6f37608ebee";
+      };
+    };
+    "normalize-package-data-2.5.0" = {
+      name = "normalize-package-data";
+      packageName = "normalize-package-data";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
+        sha512 = "/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==";
+      };
+    };
+    "normalize-path-2.1.1" = {
+      name = "normalize-path";
+      packageName = "normalize-path";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz";
+        sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+      };
+    };
+    "normalize-path-3.0.0" = {
+      name = "normalize-path";
+      packageName = "normalize-path";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz";
+        sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
+      };
+    };
+    "normalize-url-4.5.0" = {
+      name = "normalize-url";
+      packageName = "normalize-url";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz";
+        sha512 = "2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==";
+      };
+    };
+    "npm-6.14.8" = {
+      name = "npm";
+      packageName = "npm";
+      version = "6.14.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm/-/npm-6.14.8.tgz";
+        sha512 = "HBZVBMYs5blsj94GTeQZel7s9odVuuSUHy1+AlZh7rPVux1os2ashvEGLy/STNK7vUjbrCg5Kq9/GXisJgdf6A==";
+      };
+    };
+    "npm-run-path-2.0.2" = {
+      name = "npm-run-path";
+      packageName = "npm-run-path";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz";
+        sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
+      };
+    };
+    "npm-run-path-4.0.1" = {
+      name = "npm-run-path";
+      packageName = "npm-run-path";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz";
+        sha512 = "S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==";
+      };
+    };
+    "number-is-nan-1.0.1" = {
+      name = "number-is-nan";
+      packageName = "number-is-nan";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz";
+        sha1 = "097b602b53422a522c1afb8790318336941a011d";
+      };
+    };
+    "nyc-15.1.0" = {
+      name = "nyc";
+      packageName = "nyc";
+      version = "15.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz";
+        sha512 = "jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==";
+      };
+    };
+    "oauth-sign-0.4.0" = {
+      name = "oauth-sign";
+      packageName = "oauth-sign";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.4.0.tgz";
+        sha1 = "f22956f31ea7151a821e5f2fb32c113cad8b9f69";
+      };
+    };
+    "object-copy-0.1.0" = {
+      name = "object-copy";
+      packageName = "object-copy";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz";
+        sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
+      };
+    };
+    "object-inspect-1.8.0" = {
+      name = "object-inspect";
+      packageName = "object-inspect";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz";
+        sha512 = "jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==";
+      };
+    };
+    "object-keys-1.1.1" = {
+      name = "object-keys";
+      packageName = "object-keys";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz";
+        sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==";
+      };
+    };
+    "object-visit-1.0.1" = {
+      name = "object-visit";
+      packageName = "object-visit";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz";
+        sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
+      };
+    };
+    "object.assign-4.1.0" = {
+      name = "object.assign";
+      packageName = "object.assign";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz";
+        sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==";
+      };
+    };
+    "object.getownpropertydescriptors-2.1.0" = {
+      name = "object.getownpropertydescriptors";
+      packageName = "object.getownpropertydescriptors";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz";
+        sha512 = "Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==";
+      };
+    };
+    "object.pick-1.3.0" = {
+      name = "object.pick";
+      packageName = "object.pick";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz";
+        sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
+      };
+    };
+    "octokit-pagination-methods-1.1.0" = {
+      name = "octokit-pagination-methods";
+      packageName = "octokit-pagination-methods";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz";
+        sha512 = "fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==";
+      };
+    };
+    "once-1.4.0" = {
+      name = "once";
+      packageName = "once";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
+        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+      };
+    };
+    "onetime-2.0.1" = {
+      name = "onetime";
+      packageName = "onetime";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz";
+        sha1 = "067428230fd67443b2794b22bba528b6867962d4";
+      };
+    };
+    "onetime-5.1.2" = {
+      name = "onetime";
+      packageName = "onetime";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz";
+        sha512 = "kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==";
+      };
+    };
+    "opt-cli-1.5.1" = {
+      name = "opt-cli";
+      packageName = "opt-cli";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/opt-cli/-/opt-cli-1.5.1.tgz";
+        sha1 = "04db447b13c96b992eb31685266f4ed0d9736dc2";
+      };
+    };
+    "os-locale-3.1.0" = {
+      name = "os-locale";
+      packageName = "os-locale";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz";
+        sha512 = "Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==";
+      };
+    };
+    "os-name-3.1.0" = {
+      name = "os-name";
+      packageName = "os-name";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/os-name/-/os-name-3.1.0.tgz";
+        sha512 = "h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==";
+      };
+    };
+    "os-tmpdir-1.0.2" = {
+      name = "os-tmpdir";
+      packageName = "os-tmpdir";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
+        sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+      };
+    };
+    "p-defer-1.0.0" = {
+      name = "p-defer";
+      packageName = "p-defer";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz";
+        sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
+      };
+    };
+    "p-filter-2.1.0" = {
+      name = "p-filter";
+      packageName = "p-filter";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-filter/-/p-filter-2.1.0.tgz";
+        sha512 = "ZBxxZ5sL2HghephhpGAQdoskxplTwr7ICaehZwLIlfL6acuVgZPm8yBNuRAFBGEqtD/hmUeq9eqLg2ys9Xr/yw==";
+      };
+    };
+    "p-finally-1.0.0" = {
+      name = "p-finally";
+      packageName = "p-finally";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz";
+        sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
+      };
+    };
+    "p-finally-2.0.1" = {
+      name = "p-finally";
+      packageName = "p-finally";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz";
+        sha512 = "vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==";
+      };
+    };
+    "p-is-promise-2.1.0" = {
+      name = "p-is-promise";
+      packageName = "p-is-promise";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz";
+        sha512 = "Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==";
+      };
+    };
+    "p-is-promise-3.0.0" = {
+      name = "p-is-promise";
+      packageName = "p-is-promise";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-is-promise/-/p-is-promise-3.0.0.tgz";
+        sha512 = "Wo8VsW4IRQSKVXsJCn7TomUaVtyfjVDn3nUP7kE967BQk0CwFpdbZs0X0uk5sW9mkBa9eNM7hCMaG93WUAwxYQ==";
+      };
+    };
+    "p-limit-1.3.0" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz";
+        sha512 = "vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==";
+      };
+    };
+    "p-limit-2.3.0" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
+        sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
+      };
+    };
+    "p-locate-2.0.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz";
+        sha1 = "20a0103b222a70c8fd39cc2e580680f3dde5ec43";
+      };
+    };
+    "p-locate-3.0.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz";
+        sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==";
+      };
+    };
+    "p-locate-4.1.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz";
+        sha512 = "R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==";
+      };
+    };
+    "p-map-2.1.0" = {
+      name = "p-map";
+      packageName = "p-map";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz";
+        sha512 = "y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==";
+      };
+    };
+    "p-map-3.0.0" = {
+      name = "p-map";
+      packageName = "p-map";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz";
+        sha512 = "d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==";
+      };
+    };
+    "p-reduce-2.1.0" = {
+      name = "p-reduce";
+      packageName = "p-reduce";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz";
+        sha512 = "2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==";
+      };
+    };
+    "p-retry-4.2.0" = {
+      name = "p-retry";
+      packageName = "p-retry";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-retry/-/p-retry-4.2.0.tgz";
+        sha512 = "jPH38/MRh263KKcq0wBNOGFJbm+U6784RilTmHjB/HM9kH9V8WlCpVUcdOmip9cjXOh6MxZ5yk1z2SjDUJfWmA==";
+      };
+    };
+    "p-try-1.0.0" = {
+      name = "p-try";
+      packageName = "p-try";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz";
+        sha1 = "cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3";
+      };
+    };
+    "p-try-2.2.0" = {
+      name = "p-try";
+      packageName = "p-try";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
+        sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
+      };
+    };
+    "package-hash-4.0.0" = {
+      name = "package-hash";
+      packageName = "package-hash";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz";
+        sha512 = "whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==";
+      };
+    };
+    "package-json-4.0.1" = {
+      name = "package-json";
+      packageName = "package-json";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz";
+        sha1 = "8869a0401253661c4c4ca3da6c2121ed555f5eed";
+      };
+    };
+    "pad-right-0.2.2" = {
+      name = "pad-right";
+      packageName = "pad-right";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pad-right/-/pad-right-0.2.2.tgz";
+        sha1 = "6fbc924045d244f2a2a244503060d3bfc6009774";
+      };
+    };
+    "parent-module-1.0.1" = {
+      name = "parent-module";
+      packageName = "parent-module";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz";
+        sha512 = "GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==";
+      };
+    };
+    "parse-json-4.0.0" = {
+      name = "parse-json";
+      packageName = "parse-json";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz";
+        sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
+      };
+    };
+    "parse-json-5.1.0" = {
+      name = "parse-json";
+      packageName = "parse-json";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz";
+        sha512 = "+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==";
+      };
+    };
+    "parse-passwd-1.0.0" = {
+      name = "parse-passwd";
+      packageName = "parse-passwd";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz";
+        sha1 = "6d5b934a456993b23d37f40a382d6f1666a8e5c6";
+      };
+    };
+    "pascalcase-0.1.1" = {
+      name = "pascalcase";
+      packageName = "pascalcase";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz";
+        sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+      };
+    };
+    "path-dirname-1.0.2" = {
+      name = "path-dirname";
+      packageName = "path-dirname";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz";
+        sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
+      };
+    };
+    "path-exists-3.0.0" = {
+      name = "path-exists";
+      packageName = "path-exists";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz";
+        sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
+      };
+    };
+    "path-exists-4.0.0" = {
+      name = "path-exists";
+      packageName = "path-exists";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz";
+        sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==";
+      };
+    };
+    "path-is-absolute-1.0.1" = {
+      name = "path-is-absolute";
+      packageName = "path-is-absolute";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    };
+    "path-is-inside-1.0.2" = {
+      name = "path-is-inside";
+      packageName = "path-is-inside";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz";
+        sha1 = "365417dede44430d1c11af61027facf074bdfc53";
+      };
+    };
+    "path-key-2.0.1" = {
+      name = "path-key";
+      packageName = "path-key";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz";
+        sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
+      };
+    };
+    "path-key-3.1.1" = {
+      name = "path-key";
+      packageName = "path-key";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz";
+        sha512 = "ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==";
+      };
+    };
+    "path-parse-1.0.6" = {
+      name = "path-parse";
+      packageName = "path-parse";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
+        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
+      };
+    };
+    "path-to-regexp-1.8.0" = {
+      name = "path-to-regexp";
+      packageName = "path-to-regexp";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz";
+        sha512 = "n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==";
+      };
+    };
+    "path-type-3.0.0" = {
+      name = "path-type";
+      packageName = "path-type";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz";
+        sha512 = "T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==";
+      };
+    };
+    "path-type-4.0.0" = {
+      name = "path-type";
+      packageName = "path-type";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz";
+        sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==";
+      };
+    };
+    "pathval-1.1.0" = {
+      name = "pathval";
+      packageName = "pathval";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz";
+        sha1 = "b942e6d4bde653005ef6b71361def8727d0645e0";
+      };
+    };
+    "picomatch-2.2.2" = {
+      name = "picomatch";
+      packageName = "picomatch";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz";
+        sha512 = "q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==";
+      };
+    };
+    "pify-3.0.0" = {
+      name = "pify";
+      packageName = "pify";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz";
+        sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+      };
+    };
+    "pify-4.0.1" = {
+      name = "pify";
+      packageName = "pify";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz";
+        sha512 = "uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==";
+      };
+    };
+    "pirates-4.0.1" = {
+      name = "pirates";
+      packageName = "pirates";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz";
+        sha512 = "WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==";
+      };
+    };
+    "pkg-conf-2.1.0" = {
+      name = "pkg-conf";
+      packageName = "pkg-conf";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-conf/-/pkg-conf-2.1.0.tgz";
+        sha1 = "2126514ca6f2abfebd168596df18ba57867f0058";
+      };
+    };
+    "pkg-dir-3.0.0" = {
+      name = "pkg-dir";
+      packageName = "pkg-dir";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz";
+        sha512 = "/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==";
+      };
+    };
+    "pkg-dir-4.2.0" = {
+      name = "pkg-dir";
+      packageName = "pkg-dir";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz";
+        sha512 = "HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==";
+      };
+    };
+    "posix-character-classes-0.1.1" = {
+      name = "posix-character-classes";
+      packageName = "posix-character-classes";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
+        sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+      };
+    };
+    "prepend-http-1.0.4" = {
+      name = "prepend-http";
+      packageName = "prepend-http";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz";
+        sha1 = "d4f4562b0ce3696e41ac52d0e002e57a635dc6dc";
+      };
+    };
+    "process-nextick-args-2.0.1" = {
+      name = "process-nextick-args";
+      packageName = "process-nextick-args";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+        sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
+      };
+    };
+    "process-on-spawn-1.0.0" = {
+      name = "process-on-spawn";
+      packageName = "process-on-spawn";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz";
+        sha512 = "1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==";
+      };
+    };
+    "proxyquire-2.1.3" = {
+      name = "proxyquire";
+      packageName = "proxyquire";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/proxyquire/-/proxyquire-2.1.3.tgz";
+        sha512 = "BQWfCqYM+QINd+yawJz23tbBM40VIGXOdDw3X344KcclI/gtBbdWF6SlQ4nK/bYhF9d27KYug9WzljHC6B9Ysg==";
+      };
+    };
+    "pseudomap-1.0.2" = {
+      name = "pseudomap";
+      packageName = "pseudomap";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz";
+        sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+      };
+    };
+    "psl-1.8.0" = {
+      name = "psl";
+      packageName = "psl";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz";
+        sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
+      };
+    };
+    "pstree.remy-1.1.8" = {
+      name = "pstree.remy";
+      packageName = "pstree.remy";
+      version = "1.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.8.tgz";
+        sha512 = "77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==";
+      };
+    };
+    "pump-3.0.0" = {
+      name = "pump";
+      packageName = "pump";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz";
+        sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==";
+      };
+    };
+    "punycode-2.1.1" = {
+      name = "punycode";
+      packageName = "punycode";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
+        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
+      };
+    };
+    "q-1.5.1" = {
+      name = "q";
+      packageName = "q";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/q/-/q-1.5.1.tgz";
+        sha1 = "7e32f75b41381291d04611f1bf14109ac00651d7";
+      };
+    };
+    "qs-1.2.2" = {
+      name = "qs";
+      packageName = "qs";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-1.2.2.tgz";
+        sha1 = "19b57ff24dc2a99ce1f8bdf6afcda59f8ef61f88";
+      };
+    };
+    "quick-lru-4.0.1" = {
+      name = "quick-lru";
+      packageName = "quick-lru";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz";
+        sha512 = "ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==";
+      };
+    };
+    "rc-1.2.8" = {
+      name = "rc";
+      packageName = "rc";
+      version = "1.2.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz";
+        sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==";
+      };
+    };
+    "read-pkg-3.0.0" = {
+      name = "read-pkg";
+      packageName = "read-pkg";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz";
+        sha1 = "9cbc686978fee65d16c00e2b19c237fcf6e38389";
+      };
+    };
+    "read-pkg-5.2.0" = {
+      name = "read-pkg";
+      packageName = "read-pkg";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz";
+        sha512 = "Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==";
+      };
+    };
+    "read-pkg-up-4.0.0" = {
+      name = "read-pkg-up";
+      packageName = "read-pkg-up";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz";
+        sha512 = "6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==";
+      };
+    };
+    "read-pkg-up-6.0.0" = {
+      name = "read-pkg-up";
+      packageName = "read-pkg-up";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-6.0.0.tgz";
+        sha512 = "odtTvLl+EXo1eTsMnoUHRmg/XmXdTkwXVxy4VFE9Kp6cCq7b3l7QMdBndND3eAFzrbSAXC/WCUOQQ9rLjifKZw==";
+      };
+    };
+    "read-pkg-up-7.0.1" = {
+      name = "read-pkg-up";
+      packageName = "read-pkg-up";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz";
+        sha512 = "zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==";
+      };
+    };
+    "readable-stream-1.0.34" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "1.0.34";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz";
+        sha1 = "125820e34bc842d2f2aaafafe4c2916ee32c157c";
+      };
+    };
+    "readable-stream-2.3.7" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "2.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
+        sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
+      };
+    };
+    "readdirp-2.2.1" = {
+      name = "readdirp";
+      packageName = "readdirp";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz";
+        sha512 = "1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==";
+      };
+    };
+    "redent-3.0.0" = {
+      name = "redent";
+      packageName = "redent";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz";
+        sha512 = "6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==";
+      };
+    };
+    "redeyed-2.1.1" = {
+      name = "redeyed";
+      packageName = "redeyed";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz";
+        sha1 = "8984b5815d99cb220469c99eeeffe38913e6cc0b";
+      };
+    };
+    "regenerate-1.4.1" = {
+      name = "regenerate";
+      packageName = "regenerate";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz";
+        sha512 = "j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==";
+      };
+    };
+    "regenerate-unicode-properties-8.2.0" = {
+      name = "regenerate-unicode-properties";
+      packageName = "regenerate-unicode-properties";
+      version = "8.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz";
+        sha512 = "F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==";
+      };
+    };
+    "regenerator-runtime-0.13.7" = {
+      name = "regenerator-runtime";
+      packageName = "regenerator-runtime";
+      version = "0.13.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz";
+        sha512 = "a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==";
+      };
+    };
+    "regenerator-transform-0.14.5" = {
+      name = "regenerator-transform";
+      packageName = "regenerator-transform";
+      version = "0.14.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz";
+        sha512 = "eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==";
+      };
+    };
+    "regex-not-1.0.2" = {
+      name = "regex-not";
+      packageName = "regex-not";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz";
+        sha512 = "J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==";
+      };
+    };
+    "regexpu-core-4.7.0" = {
+      name = "regexpu-core";
+      packageName = "regexpu-core";
+      version = "4.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz";
+        sha512 = "TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==";
+      };
+    };
+    "registry-auth-token-3.4.0" = {
+      name = "registry-auth-token";
+      packageName = "registry-auth-token";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz";
+        sha512 = "4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==";
+      };
+    };
+    "registry-auth-token-4.2.0" = {
+      name = "registry-auth-token";
+      packageName = "registry-auth-token";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz";
+        sha512 = "P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==";
+      };
+    };
+    "registry-url-3.1.0" = {
+      name = "registry-url";
+      packageName = "registry-url";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz";
+        sha1 = "3d4ef870f73dde1d77f0cf9a381432444e174942";
+      };
+    };
+    "regjsgen-0.5.2" = {
+      name = "regjsgen";
+      packageName = "regjsgen";
+      version = "0.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz";
+        sha512 = "OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==";
+      };
+    };
+    "regjsparser-0.6.4" = {
+      name = "regjsparser";
+      packageName = "regjsparser";
+      version = "0.6.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz";
+        sha512 = "64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==";
+      };
+    };
+    "release-zalgo-1.0.0" = {
+      name = "release-zalgo";
+      packageName = "release-zalgo";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz";
+        sha1 = "09700b7e5074329739330e535c5a90fb67851730";
+      };
+    };
+    "remove-trailing-separator-1.1.0" = {
+      name = "remove-trailing-separator";
+      packageName = "remove-trailing-separator";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+        sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+      };
+    };
+    "repeat-element-1.1.3" = {
+      name = "repeat-element";
+      packageName = "repeat-element";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz";
+        sha512 = "ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==";
+      };
+    };
+    "repeat-string-1.6.1" = {
+      name = "repeat-string";
+      packageName = "repeat-string";
+      version = "1.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz";
+        sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+      };
+    };
+    "request-2.42.0" = {
+      name = "request";
+      packageName = "request";
+      version = "2.42.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request/-/request-2.42.0.tgz";
+        sha1 = "572bd0148938564040ac7ab148b96423a063304a";
+      };
+    };
+    "require-directory-2.1.1" = {
+      name = "require-directory";
+      packageName = "require-directory";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz";
+        sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+      };
+    };
+    "require-main-filename-1.0.1" = {
+      name = "require-main-filename";
+      packageName = "require-main-filename";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz";
+        sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
+      };
+    };
+    "require-main-filename-2.0.0" = {
+      name = "require-main-filename";
+      packageName = "require-main-filename";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz";
+        sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
+      };
+    };
+    "resolve-1.17.0" = {
+      name = "resolve";
+      packageName = "resolve";
+      version = "1.17.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz";
+        sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==";
+      };
+    };
+    "resolve-dir-1.0.1" = {
+      name = "resolve-dir";
+      packageName = "resolve-dir";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz";
+        sha1 = "79a40644c362be82f26effe739c9bb5382046f43";
+      };
+    };
+    "resolve-from-3.0.0" = {
+      name = "resolve-from";
+      packageName = "resolve-from";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz";
+        sha1 = "b22c7af7d9d6881bc8b6e653335eebcb0a188748";
+      };
+    };
+    "resolve-from-4.0.0" = {
+      name = "resolve-from";
+      packageName = "resolve-from";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz";
+        sha512 = "pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==";
+      };
+    };
+    "resolve-from-5.0.0" = {
+      name = "resolve-from";
+      packageName = "resolve-from";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz";
+        sha512 = "qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==";
+      };
+    };
+    "resolve-global-1.0.0" = {
+      name = "resolve-global";
+      packageName = "resolve-global";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz";
+        sha512 = "zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw==";
+      };
+    };
+    "resolve-url-0.2.1" = {
+      name = "resolve-url";
+      packageName = "resolve-url";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz";
+        sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+      };
+    };
+    "restore-cursor-2.0.0" = {
+      name = "restore-cursor";
+      packageName = "restore-cursor";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz";
+        sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf";
+      };
+    };
+    "resumer-0.0.0" = {
+      name = "resumer";
+      packageName = "resumer";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz";
+        sha1 = "f1e8f461e4064ba39e82af3cdc2a8c893d076759";
+      };
+    };
+    "ret-0.1.15" = {
+      name = "ret";
+      packageName = "ret";
+      version = "0.1.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz";
+        sha512 = "TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==";
+      };
+    };
+    "retry-0.12.0" = {
+      name = "retry";
+      packageName = "retry";
+      version = "0.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz";
+        sha1 = "1b42a6266a21f07421d1b0b54b7dc167b01c013b";
+      };
+    };
+    "reusify-1.0.4" = {
+      name = "reusify";
+      packageName = "reusify";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz";
+        sha512 = "U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==";
+      };
+    };
+    "right-pad-1.0.1" = {
+      name = "right-pad";
+      packageName = "right-pad";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/right-pad/-/right-pad-1.0.1.tgz";
+        sha1 = "8ca08c2cbb5b55e74dafa96bf7fd1a27d568c8d0";
+      };
+    };
+    "rimraf-3.0.2" = {
+      name = "rimraf";
+      packageName = "rimraf";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz";
+        sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
+      };
+    };
+    "run-async-2.4.1" = {
+      name = "run-async";
+      packageName = "run-async";
+      version = "2.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz";
+        sha512 = "tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==";
+      };
+    };
+    "run-parallel-1.1.9" = {
+      name = "run-parallel";
+      packageName = "run-parallel";
+      version = "1.1.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz";
+        sha512 = "DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==";
+      };
+    };
+    "rxjs-6.6.3" = {
+      name = "rxjs";
+      packageName = "rxjs";
+      version = "6.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz";
+        sha512 = "trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==";
+      };
+    };
+    "safe-buffer-5.1.2" = {
+      name = "safe-buffer";
+      packageName = "safe-buffer";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
+        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+      };
+    };
+    "safe-regex-1.1.0" = {
+      name = "safe-regex";
+      packageName = "safe-regex";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz";
+        sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+      };
+    };
+    "safer-buffer-2.1.2" = {
+      name = "safer-buffer";
+      packageName = "safer-buffer";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
+        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+      };
+    };
+    "semantic-release-15.13.18" = {
+      name = "semantic-release";
+      packageName = "semantic-release";
+      version = "15.13.18";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semantic-release/-/semantic-release-15.13.18.tgz";
+        sha512 = "JtfdrhF1zRm91nJH/Rg3taftbWGwktJqqrJJdbmZGKYx63cfC4PoaS0jxRifGJUdmmgW/Kxz8f5bhtB+p1bu8A==";
+      };
+    };
+    "semver-5.7.1" = {
+      name = "semver";
+      packageName = "semver";
+      version = "5.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
+        sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
+      };
+    };
+    "semver-6.3.0" = {
+      name = "semver";
+      packageName = "semver";
+      version = "6.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz";
+        sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
+      };
+    };
+    "semver-7.0.0" = {
+      name = "semver";
+      packageName = "semver";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz";
+        sha512 = "+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==";
+      };
+    };
+    "semver-diff-2.1.0" = {
+      name = "semver-diff";
+      packageName = "semver-diff";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz";
+        sha1 = "4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36";
+      };
+    };
+    "semver-regex-2.0.0" = {
+      name = "semver-regex";
+      packageName = "semver-regex";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz";
+        sha512 = "mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==";
+      };
+    };
+    "set-blocking-2.0.0" = {
+      name = "set-blocking";
+      packageName = "set-blocking";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
+        sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+      };
+    };
+    "set-value-2.0.1" = {
+      name = "set-value";
+      packageName = "set-value";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz";
+        sha512 = "JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==";
+      };
+    };
+    "shebang-command-1.2.0" = {
+      name = "shebang-command";
+      packageName = "shebang-command";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz";
+        sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
+      };
+    };
+    "shebang-command-2.0.0" = {
+      name = "shebang-command";
+      packageName = "shebang-command";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz";
+        sha512 = "kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==";
+      };
+    };
+    "shebang-regex-1.0.0" = {
+      name = "shebang-regex";
+      packageName = "shebang-regex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz";
+        sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
+      };
+    };
+    "shebang-regex-3.0.0" = {
+      name = "shebang-regex";
+      packageName = "shebang-regex";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz";
+        sha512 = "7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==";
+      };
+    };
+    "signal-exit-3.0.3" = {
+      name = "signal-exit";
+      packageName = "signal-exit";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz";
+        sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==";
+      };
+    };
+    "signale-1.4.0" = {
+      name = "signale";
+      packageName = "signale";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/signale/-/signale-1.4.0.tgz";
+        sha512 = "iuh+gPf28RkltuJC7W5MRi6XAjTDCAPC/prJUpQoG4vIP3MJZ+GTydVnodXA7pwvTKb2cA0m9OFZW/cdWy/I/w==";
+      };
+    };
+    "sinon-6.3.5" = {
+      name = "sinon";
+      packageName = "sinon";
+      version = "6.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sinon/-/sinon-6.3.5.tgz";
+        sha512 = "xgoZ2gKjyVRcF08RrIQc+srnSyY1JDJtxu3Nsz07j1ffjgXoY6uPLf/qja6nDBZgzYYEovVkFryw2+KiZz11xQ==";
+      };
+    };
+    "slash-2.0.0" = {
+      name = "slash";
+      packageName = "slash";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz";
+        sha512 = "ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==";
+      };
+    };
+    "slash-3.0.0" = {
+      name = "slash";
+      packageName = "slash";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz";
+        sha512 = "g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==";
+      };
+    };
+    "snapdragon-0.8.2" = {
+      name = "snapdragon";
+      packageName = "snapdragon";
+      version = "0.8.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz";
+        sha512 = "FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==";
+      };
+    };
+    "snapdragon-node-2.1.1" = {
+      name = "snapdragon-node";
+      packageName = "snapdragon-node";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
+        sha512 = "O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==";
+      };
+    };
+    "snapdragon-util-3.0.1" = {
+      name = "snapdragon-util";
+      packageName = "snapdragon-util";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
+        sha512 = "mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==";
+      };
+    };
+    "sntp-0.2.4" = {
+      name = "sntp";
+      packageName = "sntp";
+      version = "0.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sntp/-/sntp-0.2.4.tgz";
+        sha1 = "fb885f18b0f3aad189f824862536bceeec750900";
+      };
+    };
+    "source-map-0.5.7" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.5.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz";
+        sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+      };
+    };
+    "source-map-0.6.1" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
+        sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
+      };
+    };
+    "source-map-resolve-0.5.3" = {
+      name = "source-map-resolve";
+      packageName = "source-map-resolve";
+      version = "0.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
+        sha512 = "Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==";
+      };
+    };
+    "source-map-support-0.5.19" = {
+      name = "source-map-support";
+      packageName = "source-map-support";
+      version = "0.5.19";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz";
+        sha512 = "Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==";
+      };
+    };
+    "source-map-url-0.4.0" = {
+      name = "source-map-url";
+      packageName = "source-map-url";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz";
+        sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+      };
+    };
+    "spawn-command-0.0.2" = {
+      name = "spawn-command";
+      packageName = "spawn-command";
+      version = "0.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2.tgz";
+        sha1 = "9544e1a43ca045f8531aac1a48cb29bdae62338e";
+      };
+    };
+    "spawn-command-0.0.2-1" = {
+      name = "spawn-command";
+      packageName = "spawn-command";
+      version = "0.0.2-1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz";
+        sha1 = "62f5e9466981c1b796dc5929937e11c9c6921bd0";
+      };
+    };
+    "spawn-error-forwarder-1.0.0" = {
+      name = "spawn-error-forwarder";
+      packageName = "spawn-error-forwarder";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz";
+        sha1 = "1afd94738e999b0346d7b9fc373be55e07577029";
+      };
+    };
+    "spawn-wrap-2.0.0" = {
+      name = "spawn-wrap";
+      packageName = "spawn-wrap";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz";
+        sha512 = "EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==";
+      };
+    };
+    "spdx-correct-3.1.1" = {
+      name = "spdx-correct";
+      packageName = "spdx-correct";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz";
+        sha512 = "cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==";
+      };
+    };
+    "spdx-exceptions-2.3.0" = {
+      name = "spdx-exceptions";
+      packageName = "spdx-exceptions";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz";
+        sha512 = "/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==";
+      };
+    };
+    "spdx-expression-parse-3.0.1" = {
+      name = "spdx-expression-parse";
+      packageName = "spdx-expression-parse";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz";
+        sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==";
+      };
+    };
+    "spdx-license-ids-3.0.5" = {
+      name = "spdx-license-ids";
+      packageName = "spdx-license-ids";
+      version = "3.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz";
+        sha512 = "J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==";
+      };
+    };
+    "split-0.2.10" = {
+      name = "split";
+      packageName = "split";
+      version = "0.2.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split/-/split-0.2.10.tgz";
+        sha1 = "67097c601d697ce1368f418f06cd201cf0521a57";
+      };
+    };
+    "split-1.0.1" = {
+      name = "split";
+      packageName = "split";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split/-/split-1.0.1.tgz";
+        sha512 = "mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==";
+      };
+    };
+    "split-string-3.1.0" = {
+      name = "split-string";
+      packageName = "split-string";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz";
+        sha512 = "NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==";
+      };
+    };
+    "split2-1.0.0" = {
+      name = "split2";
+      packageName = "split2";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split2/-/split2-1.0.0.tgz";
+        sha1 = "52e2e221d88c75f9a73f90556e263ff96772b314";
+      };
+    };
+    "split2-2.2.0" = {
+      name = "split2";
+      packageName = "split2";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split2/-/split2-2.2.0.tgz";
+        sha512 = "RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==";
+      };
+    };
+    "sprintf-js-1.0.3" = {
+      name = "sprintf-js";
+      packageName = "sprintf-js";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz";
+        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+      };
+    };
+    "static-extend-0.1.2" = {
+      name = "static-extend";
+      packageName = "static-extend";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz";
+        sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+      };
+    };
+    "stream-combiner-0.0.4" = {
+      name = "stream-combiner";
+      packageName = "stream-combiner";
+      version = "0.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz";
+        sha1 = "4d5e433c185261dde623ca3f44c586bcf5c4ad14";
+      };
+    };
+    "stream-combiner2-1.1.1" = {
+      name = "stream-combiner2";
+      packageName = "stream-combiner2";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz";
+        sha1 = "fb4d8a1420ea362764e21ad4780397bebcb41cbe";
+      };
+    };
+    "string-width-1.0.2" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz";
+        sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+      };
+    };
+    "string-width-2.1.1" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz";
+        sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==";
+      };
+    };
+    "string-width-3.1.0" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz";
+        sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
+      };
+    };
+    "string-width-4.2.0" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz";
+        sha512 = "zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==";
+      };
+    };
+    "string.prototype.trimend-1.0.1" = {
+      name = "string.prototype.trimend";
+      packageName = "string.prototype.trimend";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz";
+        sha512 = "LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==";
+      };
+    };
+    "string.prototype.trimstart-1.0.1" = {
+      name = "string.prototype.trimstart";
+      packageName = "string.prototype.trimstart";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz";
+        sha512 = "XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==";
+      };
+    };
+    "string_decoder-0.10.31" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "0.10.31";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
+        sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+      };
+    };
+    "string_decoder-1.1.1" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
+        sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
+      };
+    };
+    "stringstream-0.0.6" = {
+      name = "stringstream";
+      packageName = "stringstream";
+      version = "0.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stringstream/-/stringstream-0.0.6.tgz";
+        sha512 = "87GEBAkegbBcweToUrdzf3eLhWNg06FJTebl4BVJz/JgWy8CvEr9dRtX5qWphiynMSQlxxi+QqN0z5T32SLlhA==";
+      };
+    };
+    "strip-ansi-3.0.1" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
+        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+      };
+    };
+    "strip-ansi-4.0.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz";
+        sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+      };
+    };
+    "strip-ansi-5.2.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz";
+        sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
+      };
+    };
+    "strip-ansi-6.0.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz";
+        sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
+      };
+    };
+    "strip-bom-3.0.0" = {
+      name = "strip-bom";
+      packageName = "strip-bom";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz";
+        sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
+      };
+    };
+    "strip-bom-4.0.0" = {
+      name = "strip-bom";
+      packageName = "strip-bom";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz";
+        sha512 = "3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==";
+      };
+    };
+    "strip-eof-1.0.0" = {
+      name = "strip-eof";
+      packageName = "strip-eof";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz";
+        sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
+      };
+    };
+    "strip-final-newline-2.0.0" = {
+      name = "strip-final-newline";
+      packageName = "strip-final-newline";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz";
+        sha512 = "BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==";
+      };
+    };
+    "strip-indent-3.0.0" = {
+      name = "strip-indent";
+      packageName = "strip-indent";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz";
+        sha512 = "laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==";
+      };
+    };
+    "strip-json-comments-2.0.1" = {
+      name = "strip-json-comments";
+      packageName = "strip-json-comments";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+        sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+      };
+    };
+    "strip-json-comments-3.0.1" = {
+      name = "strip-json-comments";
+      packageName = "strip-json-comments";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz";
+        sha512 = "VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==";
+      };
+    };
+    "supports-color-5.5.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "5.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
+        sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
+      };
+    };
+    "supports-color-6.0.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz";
+        sha512 = "on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==";
+      };
+    };
+    "supports-color-7.2.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
+        sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
+      };
+    };
+    "supports-hyperlinks-1.0.1" = {
+      name = "supports-hyperlinks";
+      packageName = "supports-hyperlinks";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz";
+        sha512 = "HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==";
+      };
+    };
+    "tape-2.3.0" = {
+      name = "tape";
+      packageName = "tape";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tape/-/tape-2.3.0.tgz";
+        sha1 = "0dfeec709227fbcc9170abe7f046962b271431db";
+      };
+    };
+    "temp-dir-1.0.0" = {
+      name = "temp-dir";
+      packageName = "temp-dir";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz";
+        sha1 = "0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d";
+      };
+    };
+    "tempy-0.3.0" = {
+      name = "tempy";
+      packageName = "tempy";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz";
+        sha512 = "WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==";
+      };
+    };
+    "term-size-1.2.0" = {
+      name = "term-size";
+      packageName = "term-size";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz";
+        sha1 = "458b83887f288fc56d6fffbfad262e26638efa69";
+      };
+    };
+    "test-exclude-5.2.3" = {
+      name = "test-exclude";
+      packageName = "test-exclude";
+      version = "5.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz";
+        sha512 = "M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==";
+      };
+    };
+    "test-exclude-6.0.0" = {
+      name = "test-exclude";
+      packageName = "test-exclude";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz";
+        sha512 = "cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==";
+      };
+    };
+    "text-extensions-1.9.0" = {
+      name = "text-extensions";
+      packageName = "text-extensions";
+      version = "1.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz";
+        sha512 = "wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==";
+      };
+    };
+    "through-2.3.8" = {
+      name = "through";
+      packageName = "through";
+      version = "2.3.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
+        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+      };
+    };
+    "through2-2.0.5" = {
+      name = "through2";
+      packageName = "through2";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz";
+        sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==";
+      };
+    };
+    "through2-3.0.2" = {
+      name = "through2";
+      packageName = "through2";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz";
+        sha512 = "enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==";
+      };
+    };
+    "timed-out-4.0.1" = {
+      name = "timed-out";
+      packageName = "timed-out";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz";
+        sha1 = "f32eacac5a175bea25d7fab565ab3ed8741ef56f";
+      };
+    };
+    "tmp-0.0.33" = {
+      name = "tmp";
+      packageName = "tmp";
+      version = "0.0.33";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz";
+        sha512 = "jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==";
+      };
+    };
+    "to-fast-properties-2.0.0" = {
+      name = "to-fast-properties";
+      packageName = "to-fast-properties";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+        sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+      };
+    };
+    "to-object-path-0.3.0" = {
+      name = "to-object-path";
+      packageName = "to-object-path";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz";
+        sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+      };
+    };
+    "to-regex-3.0.2" = {
+      name = "to-regex";
+      packageName = "to-regex";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz";
+        sha512 = "FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==";
+      };
+    };
+    "to-regex-range-2.1.1" = {
+      name = "to-regex-range";
+      packageName = "to-regex-range";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz";
+        sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+      };
+    };
+    "to-regex-range-5.0.1" = {
+      name = "to-regex-range";
+      packageName = "to-regex-range";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz";
+        sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==";
+      };
+    };
+    "touch-3.1.0" = {
+      name = "touch";
+      packageName = "touch";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz";
+        sha512 = "WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==";
+      };
+    };
+    "tough-cookie-4.0.0" = {
+      name = "tough-cookie";
+      packageName = "tough-cookie";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz";
+        sha512 = "tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==";
+      };
+    };
+    "traverse-0.6.6" = {
+      name = "traverse";
+      packageName = "traverse";
+      version = "0.6.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz";
+        sha1 = "cbdf560fd7b9af632502fed40f918c157ea97137";
+      };
+    };
+    "trim-newlines-3.0.0" = {
+      name = "trim-newlines";
+      packageName = "trim-newlines";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz";
+        sha512 = "C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==";
+      };
+    };
+    "trim-off-newlines-1.0.1" = {
+      name = "trim-off-newlines";
+      packageName = "trim-off-newlines";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/trim-off-newlines/-/trim-off-newlines-1.0.1.tgz";
+        sha1 = "9f9ba9d9efa8764c387698bcbfeb2c848f11adb3";
+      };
+    };
+    "tslib-1.13.0" = {
+      name = "tslib";
+      packageName = "tslib";
+      version = "1.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz";
+        sha512 = "i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==";
+      };
+    };
+    "tunnel-agent-0.4.3" = {
+      name = "tunnel-agent";
+      packageName = "tunnel-agent";
+      version = "0.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz";
+        sha1 = "6373db76909fe570e08d73583365ed828a74eeeb";
+      };
+    };
+    "type-detect-4.0.8" = {
+      name = "type-detect";
+      packageName = "type-detect";
+      version = "4.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz";
+        sha512 = "0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==";
+      };
+    };
+    "type-fest-0.13.1" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.13.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz";
+        sha512 = "34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==";
+      };
+    };
+    "type-fest-0.3.1" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz";
+        sha512 = "cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==";
+      };
+    };
+    "type-fest-0.5.2" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.5.2.tgz";
+        sha512 = "DWkS49EQKVX//Tbupb9TFa19c7+MK1XmzkrZUR8TAktmE/DizXoaoJV6TZ/tSIPXipqNiRI6CyAe7x69Jb6RSw==";
+      };
+    };
+    "type-fest-0.6.0" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz";
+        sha512 = "q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==";
+      };
+    };
+    "type-fest-0.8.1" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz";
+        sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==";
+      };
+    };
+    "typedarray-to-buffer-3.1.5" = {
+      name = "typedarray-to-buffer";
+      packageName = "typedarray-to-buffer";
+      version = "3.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
+        sha512 = "zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==";
+      };
+    };
+    "uglify-js-3.10.4" = {
+      name = "uglify-js";
+      packageName = "uglify-js";
+      version = "3.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.4.tgz";
+        sha512 = "kBFT3U4Dcj4/pJ52vfjCSfyLyvG9VYYuGYPmrPvAxRw/i7xHiT4VvCev+uiEMcEEiu6UNB6KgWmGtSUYIWScbw==";
+      };
+    };
+    "undefsafe-2.0.3" = {
+      name = "undefsafe";
+      packageName = "undefsafe";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.3.tgz";
+        sha512 = "nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==";
+      };
+    };
+    "unicode-canonical-property-names-ecmascript-1.0.4" = {
+      name = "unicode-canonical-property-names-ecmascript";
+      packageName = "unicode-canonical-property-names-ecmascript";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz";
+        sha512 = "jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==";
+      };
+    };
+    "unicode-match-property-ecmascript-1.0.4" = {
+      name = "unicode-match-property-ecmascript";
+      packageName = "unicode-match-property-ecmascript";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz";
+        sha512 = "L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==";
+      };
+    };
+    "unicode-match-property-value-ecmascript-1.2.0" = {
+      name = "unicode-match-property-value-ecmascript";
+      packageName = "unicode-match-property-value-ecmascript";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz";
+        sha512 = "wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==";
+      };
+    };
+    "unicode-property-aliases-ecmascript-1.1.0" = {
+      name = "unicode-property-aliases-ecmascript";
+      packageName = "unicode-property-aliases-ecmascript";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz";
+        sha512 = "PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==";
+      };
+    };
+    "union-value-1.0.1" = {
+      name = "union-value";
+      packageName = "union-value";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz";
+        sha512 = "tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==";
+      };
+    };
+    "unique-string-1.0.0" = {
+      name = "unique-string";
+      packageName = "unique-string";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz";
+        sha1 = "9e1057cca851abb93398f8b33ae187b99caec11a";
+      };
+    };
+    "universal-user-agent-4.0.1" = {
+      name = "universal-user-agent";
+      packageName = "universal-user-agent";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-4.0.1.tgz";
+        sha512 = "LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg==";
+      };
+    };
+    "universal-user-agent-6.0.0" = {
+      name = "universal-user-agent";
+      packageName = "universal-user-agent";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz";
+        sha512 = "isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==";
+      };
+    };
+    "universalify-0.1.2" = {
+      name = "universalify";
+      packageName = "universalify";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz";
+        sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==";
+      };
+    };
+    "unset-value-1.0.0" = {
+      name = "unset-value";
+      packageName = "unset-value";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz";
+        sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+      };
+    };
+    "unzip-response-2.0.1" = {
+      name = "unzip-response";
+      packageName = "unzip-response";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz";
+        sha1 = "d2f0f737d16b0615e72a6935ed04214572d56f97";
+      };
+    };
+    "upath-1.2.0" = {
+      name = "upath";
+      packageName = "upath";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz";
+        sha512 = "aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==";
+      };
+    };
+    "update-notifier-2.5.0" = {
+      name = "update-notifier";
+      packageName = "update-notifier";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz";
+        sha512 = "gwMdhgJHGuj/+wHJJs9e6PcCszpxR1b236igrOkUofGhqJuG+amlIKwApH1IW1WWl7ovZxsX49lMBWLxSdm5Dw==";
+      };
+    };
+    "urix-0.1.0" = {
+      name = "urix";
+      packageName = "urix";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz";
+        sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+      };
+    };
+    "url-join-4.0.1" = {
+      name = "url-join";
+      packageName = "url-join";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz";
+        sha512 = "jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==";
+      };
+    };
+    "url-parse-lax-1.0.0" = {
+      name = "url-parse-lax";
+      packageName = "url-parse-lax";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz";
+        sha1 = "7af8f303645e9bd79a272e7a14ac68bc0609da73";
+      };
+    };
+    "urlgrey-0.4.0" = {
+      name = "urlgrey";
+      packageName = "urlgrey";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/urlgrey/-/urlgrey-0.4.0.tgz";
+        sha1 = "f065357040fb35c3b311d4e5dc36484d96dbea06";
+      };
+    };
+    "use-3.1.1" = {
+      name = "use";
+      packageName = "use";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/use/-/use-3.1.1.tgz";
+        sha512 = "cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==";
+      };
+    };
+    "util-deprecate-1.0.2" = {
+      name = "util-deprecate";
+      packageName = "util-deprecate";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    };
+    "uuid-3.3.2" = {
+      name = "uuid";
+      packageName = "uuid";
+      version = "3.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz";
+        sha512 = "yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==";
+      };
+    };
+    "uuid-3.4.0" = {
+      name = "uuid";
+      packageName = "uuid";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
+        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
+      };
+    };
+    "validate-npm-package-license-3.0.4" = {
+      name = "validate-npm-package-license";
+      packageName = "validate-npm-package-license";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
+        sha512 = "DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==";
+      };
+    };
+    "which-1.3.1" = {
+      name = "which";
+      packageName = "which";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz";
+        sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==";
+      };
+    };
+    "which-2.0.2" = {
+      name = "which";
+      packageName = "which";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which/-/which-2.0.2.tgz";
+        sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==";
+      };
+    };
+    "which-module-2.0.0" = {
+      name = "which-module";
+      packageName = "which-module";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz";
+        sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+      };
+    };
+    "wide-align-1.1.3" = {
+      name = "wide-align";
+      packageName = "wide-align";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
+        sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
+      };
+    };
+    "widest-line-2.0.1" = {
+      name = "widest-line";
+      packageName = "widest-line";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz";
+        sha512 = "Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==";
+      };
+    };
+    "windows-release-3.3.3" = {
+      name = "windows-release";
+      packageName = "windows-release";
+      version = "3.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/windows-release/-/windows-release-3.3.3.tgz";
+        sha512 = "OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg==";
+      };
+    };
+    "word-wrap-1.2.3" = {
+      name = "word-wrap";
+      packageName = "word-wrap";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz";
+        sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==";
+      };
+    };
+    "wordwrap-1.0.0" = {
+      name = "wordwrap";
+      packageName = "wordwrap";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz";
+        sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
+      };
+    };
+    "wrap-ansi-2.1.0" = {
+      name = "wrap-ansi";
+      packageName = "wrap-ansi";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
+        sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
+      };
+    };
+    "wrap-ansi-6.2.0" = {
+      name = "wrap-ansi";
+      packageName = "wrap-ansi";
+      version = "6.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz";
+        sha512 = "r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==";
+      };
+    };
+    "wrappy-1.0.2" = {
+      name = "wrappy";
+      packageName = "wrappy";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
+        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+      };
+    };
+    "write-file-atomic-2.4.3" = {
+      name = "write-file-atomic";
+      packageName = "write-file-atomic";
+      version = "2.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz";
+        sha512 = "GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==";
+      };
+    };
+    "write-file-atomic-3.0.3" = {
+      name = "write-file-atomic";
+      packageName = "write-file-atomic";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz";
+        sha512 = "AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==";
+      };
+    };
+    "xdg-basedir-3.0.0" = {
+      name = "xdg-basedir";
+      packageName = "xdg-basedir";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz";
+        sha1 = "496b2cc109eca8dbacfe2dc72b603c17c5870ad4";
+      };
+    };
+    "xml-1.0.1" = {
+      name = "xml";
+      packageName = "xml";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz";
+        sha1 = "78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5";
+      };
+    };
+    "xtend-4.0.2" = {
+      name = "xtend";
+      packageName = "xtend";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
+        sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
+      };
+    };
+    "y18n-4.0.0" = {
+      name = "y18n";
+      packageName = "y18n";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz";
+        sha512 = "r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==";
+      };
+    };
+    "yallist-2.1.2" = {
+      name = "yallist";
+      packageName = "yallist";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz";
+        sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+      };
+    };
+    "yaml-1.10.0" = {
+      name = "yaml";
+      packageName = "yaml";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz";
+        sha512 = "yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==";
+      };
+    };
+    "yargs-12.0.5" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "12.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz";
+        sha512 = "Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==";
+      };
+    };
+    "yargs-13.2.2" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "13.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-13.2.2.tgz";
+        sha512 = "WyEoxgyTD3w5XRpAQNYUB9ycVH/PQrToaTXdYXRdOXvEy1l19br+VJsc0vcO8PTGg5ro/l/GY7F/JMEBmI0BxA==";
+      };
+    };
+    "yargs-15.4.1" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "15.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz";
+        sha512 = "aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==";
+      };
+    };
+    "yargs-parser-11.1.1" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "11.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz";
+        sha512 = "C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==";
+      };
+    };
+    "yargs-parser-13.0.0" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "13.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.0.0.tgz";
+        sha512 = "w2LXjoL8oRdRQN+hOyppuXs+V/fVAYtpcrRxZuF7Kt/Oc+Jr2uAcVntaUTNT6w5ihoWfFDpNY8CPx1QskxZ/pw==";
+      };
+    };
+    "yargs-parser-18.1.3" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "18.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz";
+        sha512 = "o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==";
+      };
+    };
+    "yargs-unparser-1.5.0" = {
+      name = "yargs-unparser";
+      packageName = "yargs-unparser";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.5.0.tgz";
+        sha512 = "HK25qidFTCVuj/D1VfNiEndpLIeJN78aqgR23nL3y4N0U/91cOAzqfHlF8n2BvoNDcZmJKin3ddNSvOxSr8flw==";
+      };
+    };
+  };
+in
+{
+  commitizen = nodeEnv.buildNodePackage {
+    name = "commitizen";
+    packageName = "commitizen";
+    version = "4.2.1";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/commitizen/-/commitizen-4.2.1.tgz";
+      sha512 = "nZsp8IThkDu7C+93BFD/mLShb9Gd6Wsaf90tpKE3x/6u5y/Q52kzanIJpGr0qvIsJ5bCMpgKtr3Lbu3miEJfaA==";
+    };
+    dependencies = [
+      sources."@babel/cli-7.11.6"
+      sources."@babel/code-frame-7.10.4"
+      (sources."@babel/compat-data-7.11.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      (sources."@babel/core-7.11.6" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."ms-2.1.2"
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."@babel/generator-7.11.6"
+      sources."@babel/helper-annotate-as-pure-7.10.4"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
+      (sources."@babel/helper-compilation-targets-7.10.4" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."@babel/helper-create-class-features-plugin-7.10.5"
+      sources."@babel/helper-create-regexp-features-plugin-7.10.4"
+      sources."@babel/helper-define-map-7.10.5"
+      sources."@babel/helper-explode-assignable-expression-7.11.4"
+      sources."@babel/helper-function-name-7.10.4"
+      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-hoist-variables-7.10.4"
+      sources."@babel/helper-member-expression-to-functions-7.11.0"
+      sources."@babel/helper-module-imports-7.10.4"
+      sources."@babel/helper-module-transforms-7.11.0"
+      sources."@babel/helper-optimise-call-expression-7.10.4"
+      sources."@babel/helper-plugin-utils-7.10.4"
+      sources."@babel/helper-regex-7.10.5"
+      sources."@babel/helper-remap-async-to-generator-7.11.4"
+      sources."@babel/helper-replace-supers-7.10.4"
+      sources."@babel/helper-simple-access-7.10.4"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.11.0"
+      sources."@babel/helper-split-export-declaration-7.11.0"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helper-wrap-function-7.10.4"
+      sources."@babel/helpers-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.5"
+      sources."@babel/plugin-proposal-async-generator-functions-7.10.5"
+      sources."@babel/plugin-proposal-class-properties-7.10.4"
+      sources."@babel/plugin-proposal-dynamic-import-7.10.4"
+      sources."@babel/plugin-proposal-export-namespace-from-7.10.4"
+      sources."@babel/plugin-proposal-json-strings-7.10.4"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.11.0"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.4"
+      sources."@babel/plugin-proposal-numeric-separator-7.10.4"
+      sources."@babel/plugin-proposal-object-rest-spread-7.9.0"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.10.4"
+      sources."@babel/plugin-proposal-optional-chaining-7.11.0"
+      sources."@babel/plugin-proposal-private-methods-7.10.4"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.10.4"
+      sources."@babel/plugin-syntax-async-generators-7.8.4"
+      sources."@babel/plugin-syntax-class-properties-7.10.4"
+      sources."@babel/plugin-syntax-dynamic-import-7.8.3"
+      sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
+      sources."@babel/plugin-syntax-json-strings-7.8.3"
+      sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
+      sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
+      sources."@babel/plugin-syntax-numeric-separator-7.10.4"
+      sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
+      sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
+      sources."@babel/plugin-syntax-optional-chaining-7.8.3"
+      sources."@babel/plugin-syntax-top-level-await-7.10.4"
+      sources."@babel/plugin-transform-arrow-functions-7.10.4"
+      sources."@babel/plugin-transform-async-to-generator-7.10.4"
+      sources."@babel/plugin-transform-block-scoped-functions-7.10.4"
+      sources."@babel/plugin-transform-block-scoping-7.11.1"
+      sources."@babel/plugin-transform-classes-7.10.4"
+      sources."@babel/plugin-transform-computed-properties-7.10.4"
+      sources."@babel/plugin-transform-destructuring-7.10.4"
+      sources."@babel/plugin-transform-dotall-regex-7.10.4"
+      sources."@babel/plugin-transform-duplicate-keys-7.10.4"
+      sources."@babel/plugin-transform-exponentiation-operator-7.10.4"
+      sources."@babel/plugin-transform-for-of-7.10.4"
+      sources."@babel/plugin-transform-function-name-7.10.4"
+      sources."@babel/plugin-transform-literals-7.10.4"
+      sources."@babel/plugin-transform-member-expression-literals-7.10.4"
+      sources."@babel/plugin-transform-modules-amd-7.10.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.10.4"
+      sources."@babel/plugin-transform-modules-systemjs-7.10.5"
+      sources."@babel/plugin-transform-modules-umd-7.10.4"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.10.4"
+      sources."@babel/plugin-transform-new-target-7.10.4"
+      sources."@babel/plugin-transform-object-super-7.10.4"
+      sources."@babel/plugin-transform-parameters-7.10.5"
+      sources."@babel/plugin-transform-property-literals-7.10.4"
+      sources."@babel/plugin-transform-regenerator-7.10.4"
+      sources."@babel/plugin-transform-reserved-words-7.10.4"
+      sources."@babel/plugin-transform-shorthand-properties-7.10.4"
+      sources."@babel/plugin-transform-spread-7.11.0"
+      sources."@babel/plugin-transform-sticky-regex-7.10.4"
+      sources."@babel/plugin-transform-template-literals-7.10.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.10.4"
+      sources."@babel/plugin-transform-unicode-escapes-7.10.4"
+      sources."@babel/plugin-transform-unicode-regex-7.10.4"
+      (sources."@babel/preset-env-7.11.5" // {
+        dependencies = [
+          sources."@babel/plugin-proposal-object-rest-spread-7.11.0"
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."@babel/preset-modules-0.1.4"
+      sources."@babel/register-7.11.5"
+      sources."@babel/runtime-7.11.2"
+      sources."@babel/template-7.10.4"
+      (sources."@babel/traverse-7.11.5" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."@babel/types-7.11.5"
+      sources."@commitlint/execute-rule-11.0.0"
+      (sources."@commitlint/load-11.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.2.1"
+          sources."chalk-4.1.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."@commitlint/resolve-extends-11.0.0"
+      sources."@commitlint/types-11.0.0"
+      (sources."@istanbuljs/load-nyc-config-1.1.0" // {
+        dependencies = [
+          sources."find-up-4.1.0"
+          sources."locate-path-5.0.0"
+          sources."p-locate-4.1.0"
+          sources."path-exists-4.0.0"
+        ];
+      })
+      sources."@istanbuljs/nyc-config-babel-2.1.1"
+      sources."@istanbuljs/schema-0.1.2"
+      sources."@nodelib/fs.scandir-2.1.3"
+      sources."@nodelib/fs.stat-2.0.3"
+      sources."@nodelib/fs.walk-1.2.4"
+      sources."@octokit/auth-token-2.4.2"
+      (sources."@octokit/endpoint-6.0.6" // {
+        dependencies = [
+          sources."is-plain-object-5.0.0"
+          sources."universal-user-agent-6.0.0"
+        ];
+      })
+      (sources."@octokit/plugin-paginate-rest-1.1.2" // {
+        dependencies = [
+          sources."@octokit/types-2.16.2"
+        ];
+      })
+      sources."@octokit/plugin-request-log-1.0.0"
+      (sources."@octokit/plugin-rest-endpoint-methods-2.4.0" // {
+        dependencies = [
+          sources."@octokit/types-2.16.2"
+        ];
+      })
+      (sources."@octokit/request-5.4.8" // {
+        dependencies = [
+          sources."@octokit/request-error-2.0.2"
+          sources."is-plain-object-5.0.0"
+          sources."universal-user-agent-6.0.0"
+        ];
+      })
+      (sources."@octokit/request-error-1.2.1" // {
+        dependencies = [
+          sources."@octokit/types-2.16.2"
+        ];
+      })
+      sources."@octokit/rest-16.43.2"
+      sources."@octokit/types-5.4.1"
+      (sources."@semantic-release/commit-analyzer-6.3.3" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."@semantic-release/error-2.2.0"
+      (sources."@semantic-release/github-5.5.8" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."mime-2.4.6"
+          sources."ms-2.1.2"
+        ];
+      })
+      (sources."@semantic-release/npm-5.3.5" // {
+        dependencies = [
+          sources."cross-spawn-7.0.3"
+          sources."execa-3.4.0"
+          sources."get-stream-5.2.0"
+          sources."is-stream-2.0.0"
+          sources."mimic-fn-2.1.0"
+          sources."npm-run-path-4.0.1"
+          sources."onetime-5.1.2"
+          sources."p-finally-2.0.1"
+          sources."path-key-3.1.1"
+          sources."read-pkg-5.2.0"
+          sources."registry-auth-token-4.2.0"
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."type-fest-0.6.0"
+          sources."which-2.0.2"
+        ];
+      })
+      (sources."@semantic-release/release-notes-generator-7.3.5" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."find-up-4.1.0"
+          sources."get-stream-5.2.0"
+          sources."locate-path-5.0.0"
+          sources."ms-2.1.2"
+          sources."p-locate-4.1.0"
+          sources."path-exists-4.0.0"
+          sources."read-pkg-5.2.0"
+          sources."read-pkg-up-7.0.1"
+          sources."type-fest-0.6.0"
+        ];
+      })
+      sources."@sinonjs/commons-1.8.1"
+      (sources."@sinonjs/formatio-3.2.2" // {
+        dependencies = [
+          sources."@sinonjs/samsam-3.3.3"
+        ];
+      })
+      sources."@sinonjs/samsam-2.1.3"
+      sources."@sinonjs/text-encoding-0.7.1"
+      sources."@types/color-name-1.1.1"
+      sources."@types/glob-7.1.3"
+      sources."@types/minimatch-3.0.3"
+      sources."@types/minimist-1.2.0"
+      sources."@types/node-14.10.0"
+      sources."@types/normalize-package-data-2.4.0"
+      sources."@types/parse-json-4.0.0"
+      sources."@types/retry-0.12.0"
+      sources."JSONStream-1.3.5"
+      sources."abbrev-1.1.1"
+      sources."agent-base-5.1.1"
+      sources."aggregate-error-3.1.0"
+      sources."ansi-align-2.0.0"
+      sources."ansi-colors-3.2.3"
+      sources."ansi-escapes-3.2.0"
+      sources."ansi-regex-3.0.0"
+      sources."ansi-styles-3.2.1"
+      sources."ansicolors-0.3.2"
+      (sources."anymatch-2.0.0" // {
+        dependencies = [
+          sources."normalize-path-2.1.1"
+        ];
+      })
+      sources."append-transform-2.0.0"
+      sources."archy-1.0.0"
+      sources."argparse-1.0.10"
+      sources."argv-formatter-1.0.0"
+      sources."arr-diff-4.0.0"
+      sources."arr-flatten-1.1.0"
+      sources."arr-union-3.1.0"
+      sources."array-from-2.1.1"
+      sources."array-ify-1.0.0"
+      sources."array-union-2.1.0"
+      sources."array-unique-0.3.2"
+      sources."arrify-1.0.1"
+      sources."asn1-0.1.11"
+      sources."assert-plus-0.1.5"
+      sources."assertion-error-1.1.0"
+      sources."assign-symbols-1.0.0"
+      sources."async-0.9.2"
+      sources."async-each-1.0.3"
+      sources."atob-2.1.2"
+      sources."atob-lite-2.0.0"
+      sources."aws-sign2-0.5.0"
+      (sources."axios-0.19.0" // {
+        dependencies = [
+          sources."is-buffer-2.0.4"
+        ];
+      })
+      sources."babel-plugin-dynamic-import-node-2.3.3"
+      sources."babel-plugin-istanbul-5.2.0"
+      sources."balanced-match-1.0.0"
+      (sources."base-0.11.2" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+        ];
+      })
+      sources."before-after-hook-2.1.0"
+      sources."binary-extensions-1.13.1"
+      sources."bindings-1.5.0"
+      (sources."bl-0.9.5" // {
+        dependencies = [
+          sources."isarray-0.0.1"
+          sources."readable-stream-1.0.34"
+          sources."string_decoder-0.10.31"
+        ];
+      })
+      sources."boom-0.4.2"
+      sources."bottleneck-2.19.5"
+      (sources."boxen-1.3.0" // {
+        dependencies = [
+          sources."camelcase-4.1.0"
+        ];
+      })
+      sources."brace-expansion-1.1.11"
+      (sources."braces-2.3.2" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."browser-stdout-1.3.1"
+      sources."browserslist-4.14.2"
+      sources."btoa-lite-1.0.0"
+      sources."buffer-from-1.1.1"
+      sources."cache-base-1.0.1"
+      sources."cachedir-2.2.0"
+      (sources."caching-transform-4.0.0" // {
+        dependencies = [
+          sources."make-dir-3.1.0"
+          sources."write-file-atomic-3.0.3"
+        ];
+      })
+      (sources."caller-callsite-2.0.0" // {
+        dependencies = [
+          sources."callsites-2.0.0"
+        ];
+      })
+      sources."caller-path-2.0.0"
+      sources."callsites-3.1.0"
+      sources."camelcase-5.3.1"
+      sources."camelcase-keys-6.2.2"
+      sources."caniuse-lite-1.0.30001125"
+      sources."capture-stack-trace-1.0.1"
+      sources."cardinal-2.1.1"
+      sources."caseless-0.6.0"
+      sources."chai-4.2.0"
+      sources."chalk-2.4.2"
+      sources."chardet-0.7.0"
+      sources."charenc-0.0.2"
+      sources."check-error-1.0.2"
+      sources."chokidar-2.1.8"
+      sources."ci-info-1.6.0"
+      (sources."class-utils-0.3.6" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      sources."clean-stack-2.2.0"
+      sources."cli-boxes-1.0.0"
+      sources."cli-cursor-2.1.0"
+      (sources."cli-table-0.3.1" // {
+        dependencies = [
+          sources."colors-1.0.3"
+        ];
+      })
+      sources."cli-width-2.2.1"
+      (sources."cliui-4.1.0" // {
+        dependencies = [
+          sources."strip-ansi-4.0.0"
+        ];
+      })
+      sources."code-point-at-1.1.0"
+      sources."codecov.io-0.1.6"
+      sources."collection-visit-1.0.0"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."colors-0.6.2"
+      sources."combined-stream-0.0.7"
+      sources."commander-4.1.1"
+      sources."commitizen-4.2.1"
+      sources."commondir-1.0.1"
+      (sources."compare-func-2.0.0" // {
+        dependencies = [
+          sources."dot-prop-5.3.0"
+          sources."is-obj-2.0.0"
+        ];
+      })
+      sources."component-emitter-1.3.0"
+      sources."concat-map-0.0.1"
+      (sources."configstore-3.1.5" // {
+        dependencies = [
+          sources."make-dir-1.3.0"
+          sources."pify-3.0.0"
+        ];
+      })
+      sources."conventional-changelog-angular-5.0.11"
+      (sources."conventional-changelog-writer-4.0.17" // {
+        dependencies = [
+          sources."split-1.0.1"
+        ];
+      })
+      sources."conventional-commit-types-3.0.0"
+      sources."conventional-commits-filter-2.0.6"
+      sources."conventional-commits-parser-3.1.0"
+      sources."convert-source-map-1.7.0"
+      sources."copy-descriptor-0.1.1"
+      (sources."core-js-compat-3.6.5" // {
+        dependencies = [
+          sources."semver-7.0.0"
+        ];
+      })
+      sources."core-util-is-1.0.2"
+      sources."cosmiconfig-7.0.0"
+      sources."create-error-class-3.0.2"
+      (sources."cross-spawn-6.0.5" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."crypt-0.0.2"
+      sources."cryptiles-0.2.2"
+      sources."crypto-random-string-1.0.0"
+      sources."ctype-0.5.3"
+      sources."cz-conventional-changelog-3.2.0"
+      (sources."cz-conventional-changelog-default-export-0.0.0-semantically-released.1" // {
+        dependencies = [
+          sources."conventional-commit-types-2.3.0"
+          sources."longest-1.0.1"
+        ];
+      })
+      sources."dateformat-3.0.3"
+      sources."debug-2.6.9"
+      sources."decamelize-1.2.0"
+      (sources."decamelize-keys-1.1.0" // {
+        dependencies = [
+          sources."map-obj-1.0.1"
+        ];
+      })
+      sources."decode-uri-component-0.2.0"
+      sources."dedent-0.7.0"
+      sources."deep-eql-3.0.1"
+      sources."deep-equal-0.1.2"
+      sources."deep-extend-0.6.0"
+      sources."default-require-extensions-3.0.0"
+      sources."define-properties-1.1.3"
+      sources."define-property-2.0.2"
+      sources."defined-0.0.0"
+      sources."delayed-stream-0.0.5"
+      sources."deprecation-2.3.1"
+      sources."detect-file-1.0.0"
+      sources."detect-indent-6.0.0"
+      sources."diff-3.5.0"
+      sources."dir-glob-3.0.1"
+      sources."dot-prop-4.2.1"
+      sources."duplexer-0.1.2"
+      sources."duplexer2-0.1.4"
+      sources."duplexer3-0.1.4"
+      sources."electron-to-chromium-1.3.565"
+      sources."emoji-regex-7.0.3"
+      sources."end-of-stream-1.4.4"
+      (sources."env-ci-4.5.2" // {
+        dependencies = [
+          sources."cross-spawn-7.0.3"
+          sources."execa-3.4.0"
+          sources."get-stream-5.2.0"
+          sources."is-stream-2.0.0"
+          sources."mimic-fn-2.1.0"
+          sources."npm-run-path-4.0.1"
+          sources."onetime-5.1.2"
+          sources."p-finally-2.0.1"
+          sources."path-key-3.1.1"
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."which-2.0.2"
+        ];
+      })
+      sources."error-ex-1.3.2"
+      sources."es-abstract-1.17.6"
+      sources."es-to-primitive-1.2.1"
+      sources."es6-error-4.1.1"
+      sources."escalade-3.0.2"
+      sources."escape-string-regexp-1.0.5"
+      sources."esprima-4.0.1"
+      sources."esutils-2.0.3"
+      sources."execa-1.0.0"
+      (sources."expand-brackets-2.1.4" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      sources."expand-tilde-2.0.2"
+      (sources."extend-shallow-3.0.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      sources."external-editor-3.1.0"
+      (sources."extglob-2.0.4" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      (sources."fast-glob-3.2.4" // {
+        dependencies = [
+          sources."braces-3.0.2"
+          sources."fill-range-7.0.1"
+          sources."glob-parent-5.1.1"
+          sources."is-number-7.0.0"
+          sources."micromatch-4.0.2"
+          sources."to-regex-range-5.0.1"
+        ];
+      })
+      sources."fastq-1.8.0"
+      sources."figures-2.0.0"
+      sources."file-uri-to-path-1.0.0"
+      sources."fill-keys-1.0.2"
+      (sources."fill-range-4.0.0" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."find-cache-dir-2.1.0"
+      sources."find-node-modules-2.0.0"
+      sources."find-root-1.1.0"
+      sources."find-up-3.0.0"
+      sources."find-versions-3.2.0"
+      (sources."findup-0.1.5" // {
+        dependencies = [
+          sources."commander-2.1.0"
+        ];
+      })
+      sources."findup-sync-3.0.0"
+      (sources."flat-4.1.0" // {
+        dependencies = [
+          sources."is-buffer-2.0.4"
+        ];
+      })
+      (sources."follow-redirects-1.5.10" // {
+        dependencies = [
+          sources."debug-3.1.0"
+        ];
+      })
+      sources."for-in-1.0.2"
+      (sources."foreground-child-2.0.0" // {
+        dependencies = [
+          sources."cross-spawn-7.0.3"
+          sources."path-key-3.1.1"
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."which-2.0.2"
+        ];
+      })
+      sources."forever-agent-0.5.2"
+      sources."form-data-0.1.4"
+      sources."fragment-cache-0.2.1"
+      sources."from2-2.3.0"
+      sources."fromentries-1.2.1"
+      sources."fs-extra-8.1.0"
+      sources."fs-readdir-recursive-1.1.0"
+      sources."fs.realpath-1.0.0"
+      sources."fsevents-1.2.13"
+      sources."function-bind-1.1.1"
+      sources."gensync-1.0.0-beta.1"
+      sources."get-caller-file-2.0.5"
+      sources."get-func-name-2.0.0"
+      sources."get-package-type-0.1.0"
+      sources."get-stream-4.1.0"
+      sources."get-value-2.0.6"
+      sources."ghooks-2.0.4"
+      (sources."git-log-parser-1.2.0" // {
+        dependencies = [
+          sources."split2-1.0.0"
+          sources."through2-2.0.5"
+        ];
+      })
+      sources."glob-7.1.4"
+      (sources."glob-parent-3.1.0" // {
+        dependencies = [
+          sources."is-glob-3.1.0"
+        ];
+      })
+      sources."global-dirs-0.1.1"
+      sources."global-modules-1.0.0"
+      sources."global-prefix-1.0.2"
+      sources."globals-11.12.0"
+      (sources."globby-10.0.2" // {
+        dependencies = [
+          sources."slash-3.0.0"
+        ];
+      })
+      (sources."got-6.7.1" // {
+        dependencies = [
+          sources."get-stream-3.0.0"
+        ];
+      })
+      sources."graceful-fs-4.2.4"
+      sources."graceful-readlink-1.0.1"
+      sources."growl-1.10.5"
+      (sources."handlebars-4.7.6" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."hard-rejection-2.1.0"
+      sources."has-1.0.3"
+      sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.1"
+      sources."has-value-1.0.0"
+      (sources."has-values-1.0.0" // {
+        dependencies = [
+          sources."kind-of-4.0.0"
+        ];
+      })
+      (sources."hasha-5.2.0" // {
+        dependencies = [
+          sources."is-stream-2.0.0"
+        ];
+      })
+      sources."hawk-1.1.1"
+      sources."he-1.2.0"
+      sources."hoek-0.9.1"
+      sources."homedir-polyfill-1.0.3"
+      sources."hook-std-2.0.0"
+      sources."hosted-git-info-2.8.8"
+      sources."html-escaper-2.0.2"
+      (sources."http-proxy-agent-3.0.0" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."http-signature-0.10.1"
+      (sources."https-proxy-agent-4.0.0" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."human-signals-1.1.1"
+      sources."iconv-lite-0.4.24"
+      sources."ignore-5.1.8"
+      sources."ignore-by-default-1.0.1"
+      (sources."import-fresh-3.2.1" // {
+        dependencies = [
+          sources."resolve-from-4.0.0"
+        ];
+      })
+      sources."import-from-3.0.0"
+      sources."import-lazy-2.1.0"
+      sources."imurmurhash-0.1.4"
+      sources."in-publish-2.0.1"
+      sources."indent-string-4.0.0"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."ini-1.3.5"
+      sources."inquirer-6.5.2"
+      (sources."into-stream-5.1.1" // {
+        dependencies = [
+          sources."p-is-promise-3.0.0"
+        ];
+      })
+      sources."invariant-2.2.4"
+      sources."invert-kv-2.0.0"
+      sources."is-accessor-descriptor-1.0.0"
+      sources."is-arrayish-0.2.1"
+      sources."is-binary-path-1.0.1"
+      sources."is-buffer-1.1.6"
+      sources."is-callable-1.2.1"
+      sources."is-ci-1.2.1"
+      sources."is-data-descriptor-1.0.0"
+      sources."is-date-object-1.0.2"
+      sources."is-descriptor-1.0.2"
+      sources."is-directory-0.3.1"
+      sources."is-extendable-0.1.1"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-installed-globally-0.1.0"
+      sources."is-npm-1.0.0"
+      (sources."is-number-3.0.0" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."is-obj-1.0.1"
+      sources."is-object-1.0.1"
+      sources."is-path-inside-1.0.1"
+      sources."is-plain-obj-1.1.0"
+      sources."is-plain-object-2.0.4"
+      sources."is-redirect-1.0.0"
+      sources."is-regex-1.1.1"
+      sources."is-retry-allowed-1.2.0"
+      sources."is-stream-1.1.0"
+      sources."is-symbol-1.0.3"
+      sources."is-text-path-1.0.1"
+      sources."is-typedarray-1.0.0"
+      sources."is-utf8-0.2.1"
+      sources."is-windows-1.0.2"
+      sources."isarray-1.0.0"
+      sources."isexe-2.0.0"
+      sources."isobject-3.0.1"
+      sources."issue-parser-5.0.0"
+      sources."istanbul-lib-coverage-2.0.5"
+      sources."istanbul-lib-hook-3.0.0"
+      sources."istanbul-lib-instrument-3.3.0"
+      (sources."istanbul-lib-processinfo-2.0.2" // {
+        dependencies = [
+          sources."cross-spawn-7.0.3"
+          sources."istanbul-lib-coverage-3.0.0"
+          sources."make-dir-3.1.0"
+          sources."path-key-3.1.1"
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."uuid-3.4.0"
+          sources."which-2.0.2"
+        ];
+      })
+      (sources."istanbul-lib-report-3.0.0" // {
+        dependencies = [
+          sources."has-flag-4.0.0"
+          sources."istanbul-lib-coverage-3.0.0"
+          sources."make-dir-3.1.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      (sources."istanbul-lib-source-maps-4.0.0" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."istanbul-lib-coverage-3.0.0"
+          sources."ms-2.1.2"
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."istanbul-reports-3.0.2"
+      sources."java-properties-1.0.2"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.13.1"
+      sources."jsesc-2.5.2"
+      sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
+      sources."json-stringify-safe-5.0.1"
+      sources."json5-2.1.3"
+      sources."jsonfile-4.0.0"
+      sources."jsonify-0.0.0"
+      sources."jsonparse-1.3.1"
+      sources."just-extend-4.1.0"
+      sources."kind-of-6.0.3"
+      sources."latest-version-3.1.0"
+      sources."lcid-2.0.0"
+      sources."leven-3.1.0"
+      sources."levenary-1.1.1"
+      sources."lines-and-columns-1.1.6"
+      (sources."load-json-file-4.0.0" // {
+        dependencies = [
+          sources."parse-json-4.0.0"
+          sources."pify-3.0.0"
+          sources."strip-bom-3.0.0"
+        ];
+      })
+      sources."locate-path-3.0.0"
+      sources."lodash-4.17.20"
+      sources."lodash._baseclone-4.5.7"
+      sources."lodash.capitalize-4.2.1"
+      sources."lodash.clone-4.5.0"
+      sources."lodash.escaperegexp-4.1.2"
+      sources."lodash.flattendeep-4.4.0"
+      sources."lodash.get-4.4.2"
+      sources."lodash.ismatch-4.4.0"
+      sources."lodash.isplainobject-4.0.6"
+      sources."lodash.isstring-4.0.1"
+      sources."lodash.map-4.6.0"
+      sources."lodash.set-4.3.2"
+      sources."lodash.toarray-4.4.0"
+      sources."lodash.uniq-4.5.0"
+      sources."lodash.uniqby-4.7.0"
+      sources."log-symbols-2.2.0"
+      sources."lolex-2.7.5"
+      sources."longest-2.0.1"
+      sources."loose-envify-1.4.0"
+      sources."lowercase-keys-1.0.1"
+      sources."lru-cache-4.1.5"
+      sources."macos-release-2.4.1"
+      (sources."make-dir-2.1.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."manage-path-2.0.0"
+      sources."map-age-cleaner-0.1.3"
+      sources."map-cache-0.2.2"
+      sources."map-obj-4.1.0"
+      sources."map-visit-1.0.0"
+      sources."marked-0.6.3"
+      sources."marked-terminal-3.3.0"
+      sources."md5-2.3.0"
+      (sources."mem-4.3.0" // {
+        dependencies = [
+          sources."mimic-fn-2.1.0"
+        ];
+      })
+      (sources."meow-7.1.1" // {
+        dependencies = [
+          sources."find-up-4.1.0"
+          sources."locate-path-5.0.0"
+          sources."p-locate-4.1.0"
+          sources."path-exists-4.0.0"
+          (sources."read-pkg-5.2.0" // {
+            dependencies = [
+              sources."type-fest-0.6.0"
+            ];
+          })
+          (sources."read-pkg-up-7.0.1" // {
+            dependencies = [
+              sources."type-fest-0.8.1"
+            ];
+          })
+          sources."type-fest-0.13.1"
+          sources."yargs-parser-18.1.3"
+        ];
+      })
+      sources."merge-1.2.1"
+      sources."merge-descriptors-1.0.1"
+      sources."merge-stream-2.0.0"
+      sources."merge2-1.4.1"
+      sources."micromatch-3.1.10"
+      sources."mime-1.2.11"
+      sources."mime-types-1.0.2"
+      sources."mimic-fn-1.2.0"
+      sources."min-indent-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."minimist-options-4.1.0"
+      (sources."mixin-deep-1.3.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      (sources."mkdirp-0.5.1" // {
+        dependencies = [
+          sources."minimist-0.0.8"
+        ];
+      })
+      (sources."mocha-6.2.0" // {
+        dependencies = [
+          sources."debug-3.2.6"
+          sources."glob-7.1.3"
+          sources."ms-2.1.1"
+          sources."strip-json-comments-2.0.1"
+          sources."supports-color-6.0.0"
+        ];
+      })
+      (sources."mocha-junit-reporter-1.23.3" // {
+        dependencies = [
+          sources."strip-ansi-4.0.0"
+        ];
+      })
+      (sources."mocha-multi-reporters-1.1.7" // {
+        dependencies = [
+          sources."debug-3.2.6"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."modify-values-1.0.1"
+      sources."module-not-found-error-1.0.1"
+      sources."ms-2.0.0"
+      sources."mute-stream-0.0.7"
+      sources."nan-2.14.1"
+      sources."nanomatch-1.2.13"
+      sources."neo-async-2.6.2"
+      sources."nerf-dart-1.0.0"
+      sources."nice-try-1.0.5"
+      (sources."nise-1.5.3" // {
+        dependencies = [
+          sources."lolex-5.1.2"
+        ];
+      })
+      sources."node-emoji-1.10.0"
+      (sources."node-environment-flags-1.0.5" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."node-fetch-2.6.1"
+      sources."node-modules-regexp-1.0.0"
+      sources."node-preload-0.2.1"
+      sources."node-releases-1.1.61"
+      sources."node-uuid-1.4.8"
+      (sources."nodemon-1.19.1" // {
+        dependencies = [
+          sources."debug-3.2.6"
+          sources."ms-2.1.2"
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."nopt-1.0.10"
+      (sources."normalize-package-data-2.5.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."normalize-path-3.0.0"
+      sources."normalize-url-4.5.0"
+      sources."npm-6.14.8"
+      sources."npm-run-path-2.0.2"
+      sources."number-is-nan-1.0.1"
+      (sources."nyc-15.1.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."ansi-styles-4.2.1"
+          sources."cliui-6.0.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."emoji-regex-8.0.0"
+          sources."find-cache-dir-3.3.1"
+          sources."find-up-4.1.0"
+          sources."glob-7.1.6"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."istanbul-lib-coverage-3.0.0"
+          sources."istanbul-lib-instrument-4.0.3"
+          sources."locate-path-5.0.0"
+          sources."make-dir-3.1.0"
+          sources."p-locate-4.1.0"
+          sources."path-exists-4.0.0"
+          sources."pkg-dir-4.2.0"
+          sources."string-width-4.2.0"
+          sources."strip-ansi-6.0.0"
+          sources."test-exclude-6.0.0"
+          sources."wrap-ansi-6.2.0"
+          sources."yargs-15.4.1"
+          sources."yargs-parser-18.1.3"
+        ];
+      })
+      sources."oauth-sign-0.4.0"
+      (sources."object-copy-0.1.0" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          sources."is-accessor-descriptor-0.1.6"
+          sources."is-data-descriptor-0.1.4"
+          (sources."is-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-5.1.0"
+            ];
+          })
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."object-inspect-1.8.0"
+      sources."object-keys-1.1.1"
+      sources."object-visit-1.0.1"
+      sources."object.assign-4.1.0"
+      sources."object.getownpropertydescriptors-2.1.0"
+      sources."object.pick-1.3.0"
+      sources."octokit-pagination-methods-1.1.0"
+      sources."once-1.4.0"
+      sources."onetime-2.0.1"
+      (sources."opt-cli-1.5.1" // {
+        dependencies = [
+          sources."commander-2.9.0"
+          sources."lodash.clone-4.3.2"
+          sources."spawn-command-0.0.2-1"
+        ];
+      })
+      sources."os-locale-3.1.0"
+      sources."os-name-3.1.0"
+      sources."os-tmpdir-1.0.2"
+      sources."p-defer-1.0.0"
+      (sources."p-filter-2.1.0" // {
+        dependencies = [
+          sources."p-map-2.1.0"
+        ];
+      })
+      sources."p-finally-1.0.0"
+      sources."p-is-promise-2.1.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-3.0.0"
+      sources."p-map-3.0.0"
+      sources."p-reduce-2.1.0"
+      sources."p-retry-4.2.0"
+      sources."p-try-2.2.0"
+      sources."package-hash-4.0.0"
+      (sources."package-json-4.0.1" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."pad-right-0.2.2"
+      sources."parent-module-1.0.1"
+      sources."parse-json-5.1.0"
+      sources."parse-passwd-1.0.0"
+      sources."pascalcase-0.1.1"
+      sources."path-dirname-1.0.2"
+      sources."path-exists-3.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-is-inside-1.0.2"
+      sources."path-key-2.0.1"
+      sources."path-parse-1.0.6"
+      (sources."path-to-regexp-1.8.0" // {
+        dependencies = [
+          sources."isarray-0.0.1"
+        ];
+      })
+      sources."path-type-4.0.0"
+      sources."pathval-1.1.0"
+      sources."picomatch-2.2.2"
+      sources."pify-4.0.1"
+      sources."pirates-4.0.1"
+      (sources."pkg-conf-2.1.0" // {
+        dependencies = [
+          sources."find-up-2.1.0"
+          sources."locate-path-2.0.0"
+          sources."p-limit-1.3.0"
+          sources."p-locate-2.0.0"
+          sources."p-try-1.0.0"
+        ];
+      })
+      sources."pkg-dir-3.0.0"
+      sources."posix-character-classes-0.1.1"
+      sources."prepend-http-1.0.4"
+      sources."process-nextick-args-2.0.1"
+      sources."process-on-spawn-1.0.0"
+      sources."proxyquire-2.1.3"
+      sources."pseudomap-1.0.2"
+      sources."psl-1.8.0"
+      sources."pstree.remy-1.1.8"
+      sources."pump-3.0.0"
+      sources."punycode-2.1.1"
+      sources."q-1.5.1"
+      sources."qs-1.2.2"
+      sources."quick-lru-4.0.1"
+      (sources."rc-1.2.8" // {
+        dependencies = [
+          sources."strip-json-comments-2.0.1"
+        ];
+      })
+      (sources."read-pkg-3.0.0" // {
+        dependencies = [
+          sources."path-type-3.0.0"
+          sources."pify-3.0.0"
+        ];
+      })
+      sources."read-pkg-up-4.0.0"
+      sources."readable-stream-2.3.7"
+      sources."readdirp-2.2.1"
+      sources."redent-3.0.0"
+      sources."redeyed-2.1.1"
+      sources."regenerate-1.4.1"
+      sources."regenerate-unicode-properties-8.2.0"
+      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-transform-0.14.5"
+      sources."regex-not-1.0.2"
+      sources."regexpu-core-4.7.0"
+      sources."registry-auth-token-3.4.0"
+      sources."registry-url-3.1.0"
+      sources."regjsgen-0.5.2"
+      (sources."regjsparser-0.6.4" // {
+        dependencies = [
+          sources."jsesc-0.5.0"
+        ];
+      })
+      sources."release-zalgo-1.0.0"
+      sources."remove-trailing-separator-1.1.0"
+      sources."repeat-element-1.1.3"
+      sources."repeat-string-1.6.1"
+      sources."request-2.42.0"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."resolve-1.17.0"
+      sources."resolve-dir-1.0.1"
+      sources."resolve-from-5.0.0"
+      sources."resolve-global-1.0.0"
+      sources."resolve-url-0.2.1"
+      sources."restore-cursor-2.0.0"
+      sources."resumer-0.0.0"
+      sources."ret-0.1.15"
+      sources."retry-0.12.0"
+      sources."reusify-1.0.4"
+      sources."right-pad-1.0.1"
+      sources."rimraf-3.0.2"
+      sources."run-async-2.4.1"
+      sources."run-parallel-1.1.9"
+      sources."rxjs-6.6.3"
+      sources."safe-buffer-5.1.2"
+      sources."safe-regex-1.1.0"
+      sources."safer-buffer-2.1.2"
+      (sources."semantic-release-15.13.18" // {
+        dependencies = [
+          sources."cosmiconfig-5.2.1"
+          sources."debug-4.2.0"
+          sources."figures-3.2.0"
+          sources."find-up-4.1.0"
+          sources."get-stream-5.2.0"
+          (sources."import-fresh-2.0.0" // {
+            dependencies = [
+              sources."resolve-from-3.0.0"
+            ];
+          })
+          sources."locate-path-5.0.0"
+          sources."ms-2.1.2"
+          sources."p-locate-4.1.0"
+          sources."parse-json-4.0.0"
+          sources."path-exists-4.0.0"
+          (sources."read-pkg-5.2.0" // {
+            dependencies = [
+              sources."parse-json-5.1.0"
+              sources."type-fest-0.6.0"
+            ];
+          })
+          sources."read-pkg-up-6.0.0"
+          sources."type-fest-0.5.2"
+        ];
+      })
+      sources."semver-6.3.0"
+      (sources."semver-diff-2.1.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."semver-regex-2.0.0"
+      sources."set-blocking-2.0.0"
+      (sources."set-value-2.0.1" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
+      sources."signal-exit-3.0.3"
+      sources."signale-1.4.0"
+      sources."sinon-6.3.5"
+      sources."slash-2.0.0"
+      (sources."snapdragon-0.8.2" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      (sources."snapdragon-node-2.1.1" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+        ];
+      })
+      (sources."snapdragon-util-3.0.1" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."sntp-0.2.4"
+      sources."source-map-0.5.7"
+      sources."source-map-resolve-0.5.3"
+      (sources."source-map-support-0.5.19" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."source-map-url-0.4.0"
+      sources."spawn-command-0.0.2"
+      sources."spawn-error-forwarder-1.0.0"
+      (sources."spawn-wrap-2.0.0" // {
+        dependencies = [
+          sources."make-dir-3.1.0"
+          sources."which-2.0.2"
+        ];
+      })
+      sources."spdx-correct-3.1.1"
+      sources."spdx-exceptions-2.3.0"
+      sources."spdx-expression-parse-3.0.1"
+      sources."spdx-license-ids-3.0.5"
+      sources."split-0.2.10"
+      sources."split-string-3.1.0"
+      (sources."split2-2.2.0" // {
+        dependencies = [
+          sources."through2-2.0.5"
+        ];
+      })
+      sources."sprintf-js-1.0.3"
+      (sources."static-extend-0.1.2" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      sources."stream-combiner-0.0.4"
+      sources."stream-combiner2-1.1.1"
+      (sources."string-width-2.1.1" // {
+        dependencies = [
+          sources."strip-ansi-4.0.0"
+        ];
+      })
+      sources."string.prototype.trimend-1.0.1"
+      sources."string.prototype.trimstart-1.0.1"
+      sources."string_decoder-1.1.1"
+      sources."stringstream-0.0.6"
+      (sources."strip-ansi-5.2.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+        ];
+      })
+      sources."strip-bom-4.0.0"
+      sources."strip-eof-1.0.0"
+      sources."strip-final-newline-2.0.0"
+      sources."strip-indent-3.0.0"
+      sources."strip-json-comments-3.0.1"
+      sources."supports-color-5.5.0"
+      (sources."supports-hyperlinks-1.0.1" // {
+        dependencies = [
+          sources."has-flag-2.0.0"
+        ];
+      })
+      sources."tape-2.3.0"
+      sources."temp-dir-1.0.0"
+      (sources."tempy-0.3.0" // {
+        dependencies = [
+          sources."type-fest-0.3.1"
+        ];
+      })
+      (sources."term-size-1.2.0" // {
+        dependencies = [
+          sources."cross-spawn-5.1.0"
+          sources."execa-0.7.0"
+          sources."get-stream-3.0.0"
+        ];
+      })
+      sources."test-exclude-5.2.3"
+      sources."text-extensions-1.9.0"
+      sources."through-2.3.8"
+      sources."through2-3.0.2"
+      sources."timed-out-4.0.1"
+      sources."tmp-0.0.33"
+      sources."to-fast-properties-2.0.0"
+      (sources."to-object-path-0.3.0" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."to-regex-3.0.2"
+      sources."to-regex-range-2.1.1"
+      sources."touch-3.1.0"
+      sources."tough-cookie-4.0.0"
+      sources."traverse-0.6.6"
+      sources."trim-newlines-3.0.0"
+      sources."trim-off-newlines-1.0.1"
+      sources."tslib-1.13.0"
+      sources."tunnel-agent-0.4.3"
+      sources."type-detect-4.0.8"
+      sources."type-fest-0.8.1"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."uglify-js-3.10.4"
+      sources."undefsafe-2.0.3"
+      sources."unicode-canonical-property-names-ecmascript-1.0.4"
+      sources."unicode-match-property-ecmascript-1.0.4"
+      sources."unicode-match-property-value-ecmascript-1.2.0"
+      sources."unicode-property-aliases-ecmascript-1.1.0"
+      sources."union-value-1.0.1"
+      sources."unique-string-1.0.0"
+      sources."universal-user-agent-4.0.1"
+      sources."universalify-0.1.2"
+      (sources."unset-value-1.0.0" // {
+        dependencies = [
+          (sources."has-value-0.3.1" // {
+            dependencies = [
+              sources."isobject-2.1.0"
+            ];
+          })
+          sources."has-values-0.1.4"
+        ];
+      })
+      sources."unzip-response-2.0.1"
+      sources."upath-1.2.0"
+      sources."update-notifier-2.5.0"
+      sources."urix-0.1.0"
+      sources."url-join-4.0.1"
+      sources."url-parse-lax-1.0.0"
+      sources."urlgrey-0.4.0"
+      sources."use-3.1.1"
+      sources."util-deprecate-1.0.2"
+      sources."uuid-3.3.2"
+      sources."validate-npm-package-license-3.0.4"
+      sources."which-1.3.1"
+      sources."which-module-2.0.0"
+      sources."wide-align-1.1.3"
+      sources."widest-line-2.0.1"
+      sources."windows-release-3.3.3"
+      sources."word-wrap-1.2.3"
+      sources."wordwrap-1.0.0"
+      (sources."wrap-ansi-2.1.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."is-fullwidth-code-point-1.0.0"
+          sources."string-width-1.0.2"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."write-file-atomic-2.4.3"
+      sources."xdg-basedir-3.0.0"
+      sources."xml-1.0.1"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.0"
+      sources."yallist-2.1.2"
+      sources."yaml-1.10.0"
+      (sources."yargs-13.2.2" // {
+        dependencies = [
+          sources."string-width-3.1.0"
+        ];
+      })
+      sources."yargs-parser-13.0.0"
+      (sources."yargs-unparser-1.5.0" // {
+        dependencies = [
+          sources."get-caller-file-1.0.3"
+          sources."require-main-filename-1.0.1"
+          sources."yargs-12.0.5"
+          sources."yargs-parser-11.1.1"
+        ];
+      })
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Git commit, but play nice with conventions.";
+      homepage = https://github.com/commitizen/cz-cli;
+      license = "MIT";
+    };
+    production = false;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/version-management/commitizen/package.json b/nixpkgs/pkgs/applications/version-management/commitizen/package.json
new file mode 100644
index 000000000000..c3e3b5ab29e2
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/commitizen/package.json
@@ -0,0 +1,3 @@
+[
+  "commitizen"
+]
diff --git a/nixpkgs/pkgs/applications/version-management/fossil/default.nix b/nixpkgs/pkgs/applications/version-management/fossil/default.nix
index d23728a060f9..f8ad81c60581 100644
--- a/nixpkgs/pkgs/applications/version-management/fossil/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/fossil/default.nix
@@ -1,11 +1,21 @@
 { stdenv
-, libiconv, fetchurl, zlib, openssl, tcl, readline, sqlite, ed, which
-, tcllib, withJson ? true
+, installShellFiles
+, tcl
+, libiconv
+, fetchurl
+, zlib
+, openssl
+, readline
+, sqlite
+, ed
+, which
+, tcllib
+, withJson ? true
 }:
 
 stdenv.mkDerivation rec {
   pname = "fossil";
-  version = "2.11.1";
+  version = "2.12.1";
 
   src = fetchurl {
     urls =
@@ -13,29 +23,36 @@ stdenv.mkDerivation rec {
         "https://www.fossil-scm.org/index.html/uv/fossil-src-${version}.tar.gz"
       ];
     name = "${pname}-${version}.tar.gz";
-    sha256 = "1sxq1hn87fdikhbg9y3v4sjy4gxaifnx4dig8nx6xwd5mm7z74dk";
+    sha256 = "00v6gmn2wpfms5jzf103hkm5s8i3bfs5mzacmznlhdzdrzzjc8w2";
   };
 
+  nativeBuildInputs = [ installShellFiles tcl ];
+
   buildInputs = [ zlib openssl readline sqlite which ed ]
-             ++ stdenv.lib.optional stdenv.isDarwin libiconv;
-  nativeBuildInputs = [ tcl ];
+    ++ stdenv.lib.optional stdenv.isDarwin libiconv;
 
   doCheck = stdenv.hostPlatform == stdenv.buildPlatform;
+
+  configureFlags = [ "--disable-internal-sqlite" ]
+    ++ stdenv.lib.optional withJson "--json";
+
   preCheck = ''
     export TCLLIBPATH="${tcllib}/lib/tcllib${tcllib.version}"
   '';
-  configureFlags = stdenv.lib.optional withJson "--json";
 
-  preBuild=''
+  preBuild = ''
     export USER=nonexistent-but-specified-user
   '';
 
   installPhase = ''
     mkdir -p $out/bin
     INSTALLDIR=$out/bin make install
+
+    installManPage fossil.1
+    installShellCompletion --name fossil.bash tools/fossil-autocomplete.bash
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Simple, high-reliability, distributed software configuration management";
     longDescription = ''
       Fossil is a software configuration management system.  Fossil is
@@ -45,11 +62,7 @@ stdenv.mkDerivation rec {
       from the others by being extremely simple to setup and operate.
     '';
     homepage = "http://www.fossil-scm.org/";
-    license = stdenv.lib.licenses.bsd2;
-    platforms = with stdenv.lib.platforms; all;
-    maintainers = [ #Add your name here!
-      stdenv.lib.maintainers.maggesi
-      stdenv.lib.maintainers.viric
-    ];
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ maggesi viric ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/gerrit/default.nix b/nixpkgs/pkgs/applications/version-management/gerrit/default.nix
index fc69ea7f65f6..5b4808e87a6b 100644
--- a/nixpkgs/pkgs/applications/version-management/gerrit/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gerrit/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gerrit";
-  version = "3.1.5";
+  version = "3.2.3";
 
   src = fetchurl {
     url = "https://gerrit-releases.storage.googleapis.com/gerrit-${version}.war";
-    sha256 = "0gyh6a0p8gcrfnkm0sdjvzg6is9iirxjyffgza6k4v9rz6pjx8i8";
+    sha256 = "0hdxbn5qqqjzpqfcydz33nc351zanxp0j2k0ivizx4dn40fnavd7";
   };
 
   buildCommand = ''
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.gerritcodereview.com/index.md";
     license = licenses.asl20;
     description = "A web based code review and repository management for the git version control system";
-    maintainers = with maintainers; [ jammerful zimbatm ];
+    maintainers = with maintainers; [ flokli jammerful zimbatm ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix
index f9ebbabd11b2..2946f7cd5014 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/default.nix
@@ -26,7 +26,9 @@ let
 
   darcs-to-git = callPackage ./darcs-to-git { };
 
-  delta = callPackage ./delta { };
+  delta = callPackage ./delta {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   diff-so-fancy = callPackage ./diff-so-fancy { };
 
@@ -61,6 +63,8 @@ let
 
   git-annex-utils = callPackage ./git-annex-utils { };
 
+  git-brunch = pkgs.haskellPackages.git-brunch;
+
   git-appraise = callPackage ./git-appraise {};
 
   git-bug = callPackage ./git-bug { };
@@ -94,7 +98,7 @@ let
 
   git-fame = callPackage ./git-fame {};
 
-  git-fast-export = callPackage ./fast-export { };
+  git-fast-export = callPackage ./fast-export { mercurial = mercurial_4; };
 
   git-filter-repo = callPackage ./git-filter-repo {
     pythonPackages = python3Packages;
@@ -108,7 +112,7 @@ let
 
   git-ignore = callPackage ./git-ignore { };
 
-  git-imerge = callPackage ./git-imerge { };
+  git-imerge = python3Packages.callPackage ./git-imerge { };
 
   git-interactive-rebase-tool = callPackage ./git-interactive-rebase-tool {
     inherit (darwin.apple_sdk.frameworks) Security;
@@ -197,7 +201,11 @@ let
 
   lab = callPackage ./lab { };
 
-  lefthook = callPackage ./lefthook { };
+  lefthook = callPackage ./lefthook {
+    # Please use empty attrset once upstream bugs have been fixed
+    # https://github.com/Arkweid/lefthook/issues/151
+    buildGoModule = buildGo114Module;
+  };
 
   legit = callPackage ./legit { };
 
@@ -207,6 +215,8 @@ let
 
   qgit = qt5.callPackage ./qgit { };
 
+  rs-git-fsmonitor = callPackage ./rs-git-fsmonitor { };
+
   scmpuff = callPackage ./scmpuff { };
 
   stgit = callPackage ./stgit { };
@@ -233,6 +243,7 @@ let
   # aliases
   darcsToGit = darcs-to-git;
   gitAnnex = git-annex;
+  gitBrunch = git-brunch;
   gitFastExport = git-fast-export;
   gitRemoteGcrypt = git-remote-gcrypt;
   svn_all_fast_export = svn-all-fast-export;
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix
index 60950dc0465c..b3af66c3ffd7 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/delta/default.nix
@@ -1,25 +1,32 @@
-{ lib, fetchFromGitHub, rustPlatform, llvmPackages, installShellFiles }:
+{ stdenv
+, lib
+, fetchFromGitHub
+, rustPlatform
+, installShellFiles
+, libiconv
+, Security
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "delta";
-  version = "0.1.1";
+  version = "0.4.3";
 
   src = fetchFromGitHub {
     owner = "dandavison";
     repo = pname;
     rev = version;
-    sha256 = "1b5ap468d0gvgwkx6wqxvayzda2xw95lymd0kl38nq1fc0ica6hk";
+    sha256 = "0g7jg6bxxihplxzq3ixdm24d36xd7xlwpazz8qj040m981cj123i";
   };
 
-  LLVM_CONFIG_PATH = "${llvmPackages.llvm}/bin/llvm-config";
-  LIBCLANG_PATH = "${llvmPackages.libclang.lib}/lib";
-
-  cargoSha256 = "07mjl751r9d88fnmnan0ip0m3vxqf51vq2y7k3g3yywcgasj9jgr";
+  cargoSha256 = "0q73adygyddjyajwwbkrhwss4f8ynxsga5yz4ac5fk5rzmda75rv";
 
   nativeBuildInputs = [ installShellFiles ];
 
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
+
   postInstall = ''
-    installShellCompletion --bash --name delta.bash completion/bash/completion.sh
+    installShellCompletion --bash --name delta.bash etc/completion/completion.bash
+    installShellCompletion --zsh --name _delta etc/completion/completion.zsh
   '';
 
   meta = with lib; {
@@ -27,6 +34,6 @@ rustPlatform.buildRustPackage rec {
     description = "A syntax-highlighting pager for git";
     changelog = "https://github.com/dandavison/delta/releases/tag/${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ marsam ma27 ];
+    maintainers = with maintainers; [ marsam ma27 zowoq ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
index c073edaee7d8..ffdb788745a7 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/diff-so-fancy/default.nix
@@ -11,12 +11,19 @@ stdenv.mkDerivation rec {
     sha256 = "0aavxahzha2mms4vdwysk79pa6wzswpfwgsq2hwaxnaf66maahfl";
   };
 
-  # Perl is needed here for patchShebangs
-  nativeBuildInputs = [ perl makeWrapper ];
+  nativeBuildInputs = [
+    makeWrapper
+  ];
 
-  buildPhase = null;
+  buildInputs = [
+    perl # needed for patchShebangs
+  ];
+
+  dontBuild = true;
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/bin $out/lib/diff-so-fancy
 
     # diff-so-fancy executable searches for it's library relative to
@@ -32,6 +39,8 @@ stdenv.mkDerivation rec {
       --prefix PATH : "${git}/bin" \
       --prefix PATH : "${coreutils}/bin" \
       --prefix PATH : "${ncurses.out}/bin"
+
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
index 22009f10d44f..80f048d05752 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/fast-export/default.nix
@@ -1,13 +1,14 @@
-{stdenv, fetchgit, mercurial, makeWrapper}:
+{stdenv, fetchFromGitHub, git, mercurial, makeWrapper}:
 
 stdenv.mkDerivation rec {
   pname = "fast-export";
-  version = "190107";
+  version = "200213";
 
-  src = fetchgit {
-    url = "git://repo.or.cz/fast-export.git";
+  src = fetchFromGitHub {
+    owner = "frej";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "14azfps9jd5anivcvfwflgsvqdyy6gm9jy284kzx2ng9f7871d14";
+    sha256 = "0hzyh66rlawxip4n2pvz7pbs0cq82clqv1d6c7hf60v1drjxw287";
   };
 
   buildInputs = [mercurial.python mercurial makeWrapper];
@@ -27,11 +28,34 @@ stdenv.mkDerivation rec {
 
     for script in $out/bin/*.sh; do
       wrapProgram $script \
-        --prefix PATH : "${mercurial.python}/bin":$libexec \
+        --prefix PATH : "${git}/bin":"${mercurial.python}/bin":$libexec \
         --prefix PYTHONPATH : "${mercurial}/${mercurial.python.sitePackages}":$sitepackagesPath
     done
   '';
 
+  doInstallCheck = true;
+  # deliberately not adding git or hg into installCheckInputs - package should
+  # be able to work without them in runtime env
+  installCheckPhase = ''
+    mkdir repo-hg
+    pushd repo-hg
+    ${mercurial}/bin/hg init
+    echo foo > bar
+    ${mercurial}/bin/hg add bar
+    ${mercurial}/bin/hg commit --message "baz"
+    popd
+
+    mkdir repo-git
+    pushd repo-git
+    ${git}/bin/git init
+    ${git}/bin/git config core.ignoreCase false  # for darwin
+    $out/bin/hg-fast-export.sh -r ../repo-hg/ --hg-hash
+    for s in "foo" "bar" "baz" ; do
+      (${git}/bin/git show | grep $s > /dev/null) && echo $s found
+    done
+    popd
+  '';
+
   meta = with stdenv.lib; {
     description = "Import mercurial into git";
     homepage = "https://repo.or.cz/w/fast-export.git";
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix
index 36df07de465d..13fe6cf4ef8d 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -2,20 +2,21 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "0.10.0";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "0m4qgvhd4fzl83acfbpwff0sqshyfhqiy5q4i7ly8h6rdsjysdck";
+    sha256 = "10ixjrb56ddqxla7mfxqnf74zissjx66akcyvgl9xfmww0bvg64x";
   };
 
-  vendorSha256 = "0zkgdb69zm662p50sk1663lcbkw0vp8ip9blqfp6539mp9b87dn7";
+  vendorSha256 = "079zbm57xfcskwhsfj1x0c0lg6ip6c6dbk8hfwrzkpy8gfs2ysmr";
 
   nativeBuildInputs = [ installShellFiles ];
 
   buildPhase = ''
+    export GO_LDFLAGS="-s -w"
     make GH_VERSION=${version} bin/gh manpages
   '';
 
@@ -29,6 +30,10 @@ buildGoModule rec {
     done
   '';
 
+  checkPhase = ''
+    make test
+  '';
+
   meta = with lib; {
     description = "GitHub CLI tool";
     homepage = "https://cli.github.com/";
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix
index 330f81078ea4..96f72f2d69c4 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/ghq/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "ghq";
-  version = "1.1.1";
+  version = "1.1.5";
 
   src = fetchFromGitHub {
     owner = "x-motemen";
     repo = "ghq";
     rev = "v${version}";
-    sha256 = "1gfpvaf10kqgxx1clzsn38n9r4p171zf0z1pf0dybihh6g6hgylj";
+    sha256 = "098fik155viylq07az7crzbgswcvhpx0hr68xpvyx0rpri792jbq";
   };
 
-  vendorSha256 = "0k2hhx3l3cj3lv2y4w8286sbl7d11cssb99jy7hzskbxbhmalvcj";
+  vendorSha256 = "0gll132g111vn1hdmdjpkha9rbyppz0qj1ld89gwlk2mqd57jxkd";
+
+  doCheck = false;
 
   buildFlagsArray = ''
     -ldflags=
@@ -29,4 +31,4 @@ buildGoModule rec {
     maintainers = with stdenv.lib.maintainers; [ sigma ];
     license = stdenv.lib.licenses.mit;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix
index 7796f08c8a46..4895a2e399bf 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix
@@ -18,7 +18,6 @@ buildGoPackage rec {
     description = "Distributed code review system for Git repos";
     homepage = "https://github.com/google/git-appraise";
     license = stdenv.lib.licenses.asl20;
-    platforms = stdenv.lib.platforms.all;
     maintainers = [ stdenv.lib.maintainers.vdemeester ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
index 0903af7499a7..44eba8c4b39c 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-bug/default.nix
@@ -4,7 +4,6 @@ buildGoModule rec {
   pname = "git-bug";
   version = "0.7.1"; # the `rev` below pins the version of the source to get
   rev = "2d64b85db71a17ff3277bbbf7ac9d8e81f8e416c";
-  goPackagePath = "github.com/MichaelMure/git-bug";
 
   src = fetchFromGitHub {
     inherit rev;
@@ -15,11 +14,13 @@ buildGoModule rec {
 
   vendorSha256 = "0c8b47lj4wl3s21lm0vx4z7hznylm8c4fb8b8gxm278kn3zys607";
 
+  doCheck = false;
+
   buildFlagsArray = ''
     -ldflags=
-      -X ${goPackagePath}/commands.GitCommit=${rev}
-      -X ${goPackagePath}/commands.GitLastTag=${version}
-      -X ${goPackagePath}/commands.GitExactTag=${version}
+      -X github.com/MichaelMure/git-bug/commands.GitCommit=${rev}
+      -X github.com/MichaelMure/git-bug/commands.GitLastTag=${version}
+      -X github.com/MichaelMure/git-bug/commands.GitExactTag=${version}
   '';
 
   postInstall = ''
@@ -32,7 +33,6 @@ buildGoModule rec {
     description = "Distributed bug tracker embedded in Git";
     homepage = "https://github.com/MichaelMure/git-bug";
     license = licenses.gpl3;
-    platforms = platforms.all;
     maintainers = with maintainers; [ royneary ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
index f2afdd941fe4..ed9e1cd4bdfa 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-extras/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "git-extras";
-  version = "5.1.0";
+  version = "6.0.0";
 
   src = fetchzip {
     url = "https://github.com/tj/git-extras/archive/${version}.tar.gz";
-    sha256 = "0ja8ds9gpibrnwcf8n6cpbggwkbks0ik3z9vfx5h1yf3ln1nycky";
+    sha256 = "0mxb3c5lb5n7c76bp10bw7bid564vjxi5f7cvzaj2ss93v5rr11g";
   };
 
   nativeBuildInputs = [ unixtools.column which ];
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix
index e4c57be2357c..5a7e5bd32afb 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "git-filter-repo";
-  version = "2.27.1";
+  version = "2.28.0";
 
   src = fetchurl {
     url = "https://github.com/newren/git-filter-repo/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "07r32n31ryflgz1ds3dz5s3ixv7li3scxwavy9mzbzdhq6bbzl28";
+    sha256 = "0sa6h6k1mnhx8p8w5d88gx7cqbnxaazfj1dv47c107fk70hqvvpx";
   };
 
   buildInputs = [ pythonPackages.python ];
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix
index 93d152baa003..a2f319d82b0d 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-ignore/default.nix
@@ -30,7 +30,6 @@ buildRustPackage rec {
     description = "Quickly and easily fetch .gitignore templates from gitignore.io";
     homepage = "https://github.com/sondr3/git-ignore";
     license = licenses.gpl3Plus;
-    platforms = platforms.all;
     maintainers = [ maintainers.sondr3 ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-imerge/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-imerge/default.nix
index 721a7784e9ca..e1caede77d8e 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-imerge/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-imerge/default.nix
@@ -1,25 +1,24 @@
-{ stdenv, fetchFromGitHub, pythonPackages }:
+{ lib, buildPythonApplication, fetchPypi, installShellFiles }:
 
-stdenv.mkDerivation rec {
+buildPythonApplication rec {
   pname = "git-imerge";
-  version = "1.1.0";
+  version = "1.2.0";
 
-  src = fetchFromGitHub {
-    owner = "mhagger";
-    repo = "git-imerge";
-    rev = "v${version}";
-    sha256 = "0vi1w3f0yk4gqhxj2hzqafqq28rihyhyfnp8x7xzib96j2si14a4";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "df5818f40164b916eb089a004a47e5b8febae2b4471a827e3aaa4ebec3831a3f";
   };
 
-  buildInputs = [ pythonPackages.python pythonPackages.wrapPython ];
+  nativeBuildInputs = [ installShellFiles ];
 
-  makeFlags = [ "PREFIX=" "DESTDIR=$(out)" ] ; 
- 
-  meta = with stdenv.lib; {
+  postInstall = ''
+    installShellCompletion --bash completions/git-imerge
+  '';
+
+  meta = with lib; {
     homepage = "https://github.com/mhagger/git-imerge";
     description = "Perform a merge between two branches incrementally";
-    license = licenses.gpl2;
-    platforms = platforms.all;
+    license = licenses.gpl2Plus;
     maintainers = [ maintainers.spwhitt ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix
index 6d548f040541..b656deaa7168 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-interactive-rebase-tool/default.nix
@@ -15,7 +15,7 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = [ ncurses5 ] ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
 
-  checkFlagsArray = [ "--test-threads=1" ];
+  cargoParallelTestThreads = false;
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/MitMaro/git-interactive-rebase-tool";
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
index 1ca0ad27de71..cbb69403531e 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonApplication rec {
   pname = "git-machete";
-  version = "2.14.0";
+  version = "2.15.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01ch4d0r3bi9nl5nknp3dyizc2rl9w46gm1ydnvqbrzhgw65lpp0";
+    sha256 = "0ajb3m3i3pfc5v3gshglk7qphk1rpniwx8q8isgx1a6cyarzr9bd";
   };
 
   nativeBuildInputs = [ installShellFiles pbr ];
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
index 37c06d3a85e2..dd4e6e011a6e 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-remote-hg/default.nix
@@ -1,36 +1,32 @@
-{ stdenv, lib, fetchFromGitHub, mercurial, makeWrapper
+{ stdenv, lib, fetchFromGitHub, python3Packages
 , asciidoc, xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt, libxml2
 }:
 
-stdenv.mkDerivation rec {
+python3Packages.buildPythonApplication rec {
   pname = "git-remote-hg";
-  version = "1.0.1";
+  version = "unstable-2020-06-12";
 
   src = fetchFromGitHub {
     owner = "mnauw";
     repo = "git-remote-hg";
-    rev = "v${version}";
-    sha256 = "1by5ygqvq9ww990kdrjndaqsssyf2jc4n380f9pfh2avsr7871wc";
+    rev = "28ed63b707919734d230cb13bff7d231dfeee8fc";
+    sha256 = "0dw48vbnk7pp0w6fzgl29mq8fyn52pacbya2w14z9c6jfvh5sha1";
   };
 
-  buildInputs = [ mercurial.python mercurial makeWrapper
+  nativeBuildInputs = [
     asciidoc xmlto docbook_xsl docbook_xml_dtd_45 libxslt libxml2
   ];
-
-  doCheck = false;
-
-  installFlags = [ "HOME=\${out}" "install-doc" ];
+  propagatedBuildInputs = with python3Packages; [ mercurial ];
 
   postInstall = ''
-    wrapProgram $out/bin/git-remote-hg \
-      --prefix PYTHONPATH : "$(echo ${mercurial}/lib/python*/site-packages):$(echo ${mercurial.python}/lib/python*/site-packages)${stdenv.lib.concatMapStrings (x: ":$(echo ${x}/lib/python*/site-packages)") mercurial.pythonPackages or []}"
+    make install-doc prefix=$out
   '';
 
   meta = with lib; {
     homepage = "https://github.com/mnauw/git-remote-hg";
     description = "Semi-official Mercurial bridge from Git project";
     license = licenses.gpl2;
-    maintainers = [ ];
+    maintainers = with maintainers; [ qyliss ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subtrac/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subtrac/default.nix
index be67beef299f..4e9c3b7a5ccc 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subtrac/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-subtrac/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "git-subtrac";
-  version = "0.03";
+  version = "0.04";
 
   src = fetchFromGitHub {
     owner = "apenwarr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ky04h18vg1yl9lykbhkmf25qslg0z2qzziy8c7afmvzvvvhm2v5";
+    sha256 = "0p1n29k2a2rpznwxlwzkmx38ic6g041k9vx7msvick7cydn417fx";
   };
 
-  vendorSha256 = "1ccwbhzwys8sl3m2rs2lp70snzsi2a0ahnnq8kn15rrlvsv5qahf";
+  vendorSha256 = "0m64grnmhjvfsw7a56474s894sgd24rvcp5kamhzzyc4q556hqny";
+
+  doCheck = false;
 
   meta = with lib; {
     description = "Keep the content for your git submodules all in one place: the parent repo";
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix
index 8894c4f0f7ad..674bdd14247a 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix
@@ -2,28 +2,29 @@
 , fetchFromGitHub
 , rustPlatform
 , Security
+, pkgconfig, openssl
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "git-workspace";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "orf";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0n025bnisg724d9pjcindxagj1ry63sxr0pplpkh2f2qffzm78pi";
+    sha256 = "1ckfk221ag6yhbqxfz432wpgbhddgzgdsaxhl1ymw90pwpnz717y";
   };
 
-  cargoSha256 = "0ikyp6pdlw2c1gr1n1snjbdmblm0fs5swx5awy36jskii99q6kr1";
+  cargoSha256 = "0zkns037vgy96ybmn80px515ivz6yhj5br5mwbvxgl73va92wd9v";
 
-  buildInputs = with stdenv; lib.optional isDarwin Security;
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isDarwin Security;
 
   meta = with stdenv.lib; {
     description = "Sync personal and work git repositories from multiple providers";
     homepage = "https://github.com/orf/git-workspace";
     license = with licenses; [ mit ];
-    platforms = platforms.all;
     maintainers = with maintainers; [ misuzu ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix
index 5686b1c6f3f5..b0042b2ee9e9 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/git/default.nix
@@ -6,6 +6,7 @@
 , libxslt, tcl, tk, makeWrapper, libiconv
 , svnSupport, subversionClient, perlLibs, smtpPerlLibs
 , perlSupport ? true
+, nlsSupport ? true
 , guiSupport
 , withManual ? true
 , pythonSupport ? true
@@ -21,7 +22,7 @@ assert sendEmailSupport -> perlSupport;
 assert svnSupport -> perlSupport;
 
 let
-  version = "2.27.0";
+  version = "2.28.0";
   svn = subversionClient.override { perlBindings = perlSupport; };
 
   gitwebPerlLibs = with perlPackages; [ CGI HTMLParser CGIFast FCGI FCGIProcManager HTMLTagCloud ];
@@ -33,7 +34,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
-    sha256 = "1ybk39ylvs32lywq7ra4l2kdr5izc80r9461hwfnw8pssxs9gjkk";
+    sha256 = "17a311vzimqn1glc9d7x82rhb1mb81m5rr4g8xji8idaafid39fz";
   };
 
   outputs = [ "out" ] ++ stdenv.lib.optional withManual "doc";
@@ -98,6 +99,7 @@ stdenv.mkDerivation {
   ++ (if stdenv.isDarwin then ["NO_APPLE_COMMON_CRYPTO=1"] else ["sysconfdir=/etc"])
   ++ stdenv.lib.optionals stdenv.hostPlatform.isMusl ["NO_SYS_POLL_H=1" "NO_GETTEXT=YesPlease"]
   ++ stdenv.lib.optional withpcre2 "USE_LIBPCRE2=1"
+  ++ stdenv.lib.optional (!nlsSupport) "NO_GETTEXT=1"
   # git-gui refuses to start with the version of tk distributed with
   # macOS Catalina. We can prevent git from building the .app bundle
   # by specifying an invalid tk framework. The postInstall step will
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/gita/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/gita/default.nix
index c9d188e10e5a..3e07a93458b7 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/gita/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/gita/default.nix
@@ -1,17 +1,22 @@
 { lib
 , buildPythonApplication
-, fetchPypi
+, fetchFromGitHub
+, git
+, pytest
 , pyyaml
 , setuptools
+, installShellFiles
 }:
 
 buildPythonApplication rec {
-  version = "0.10.5";
+  version = "0.10.10";
   pname = "gita";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1xggslmrrfszpl190klkc97fnl88gml1bnkmkzp6aimdch66g4jg";
+  src = fetchFromGitHub {
+    sha256 = "0k7hicncbrqvhmpq1w3v1309bqij6izw31xs8xcb8is85dvi754h";
+    rev = "v${version}";
+    repo = "gita";
+    owner = "nosarthur";
   };
 
   propagatedBuildInputs = [
@@ -19,6 +24,30 @@ buildPythonApplication rec {
     setuptools
   ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
+  postUnpack = ''
+    for case in "\n" ""; do
+        substituteInPlace source/tests/test_main.py \
+         --replace "'gita$case'" "'source$case'"
+    done
+  '';
+
+  checkInputs = [
+    git
+    pytest
+  ];
+
+  checkPhase = ''
+    git init
+    pytest tests
+  '';
+
+  postInstall = ''
+    installShellCompletion --bash --name gita ${src}/.gita-completion.bash
+    installShellCompletion --zsh --name gita ${src}/.gita-completion.zsh
+  '';
+
   meta = with lib; {
     description = "A command-line tool to manage multiple git repos";
     homepage = "https://github.com/nosarthur/gita";
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitin/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitin/default.nix
index 5964af6c0f0c..af9aef6d39c6 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitin/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitin/default.nix
@@ -26,7 +26,6 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     homepage = "https://github.com/isacikgoz/gitin";
     description = "Text-based user interface for git";
-    platforms = platforms.all;
     license = licenses.bsd3;
     maintainers = with maintainers; [ kimat ];
   };
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
index 33048c95b670..cb41ae670573 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitstatus/default.nix
@@ -1,23 +1,73 @@
-{ callPackage, stdenv, fetchFromGitHub, ...}:
+{ callPackage, stdenv, fetchFromGitHub, git, zsh, ...}:
 
 stdenv.mkDerivation rec {
   pname = "gitstatus";
-  version = "1.1.3";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "gitstatus";
     rev = "v${version}";
-    sha256 = "16s09d2kpw0v0kyr2ada99qmsi0pqnsiis22mzq69hay0hdg8p1n";
+    sha256 = "0zan1sa8c24hpqwj66y9srd4n15f4nk64fc5jrd4smgfgn22wph8";
   };
 
   buildInputs = [ (callPackage ./romkatv_libgit2.nix {}) ];
   patchPhase = ''
-    sed -i "1i GITSTATUS_DAEMON=$out/bin/gitstatusd" gitstatus.plugin.zsh
+    sed -i '1i GITSTATUS_AUTO_INSTALL=''${GITSTATUS_AUTO_INSTALL-0}' gitstatus.plugin.zsh
+    sed -i "1a GITSTATUS_DAEMON=$out/bin/gitstatusd" install
   '';
   installPhase = ''
     install -Dm755 usrbin/gitstatusd $out/bin/gitstatusd
     install -Dm444 gitstatus.plugin.zsh $out
+    install -Dm555 install $out
+    install -Dm444 build.info $out
+  '';
+  # Don't install the "install" and "build.info" files, which the end user
+  # should not need to worry about.
+  pathsToLink = [
+    "/bin/gitstatusd"
+    "/gitstatus.plugin.zsh"
+  ];
+
+  # The install check sets up an empty Git repository and a minimal zshrc that
+  # invokes gitstatus.plugin.zsh. It runs zsh against this zshrc and verifies
+  # that the script was sourced successfully and that the "gitstatus_query"
+  # command ran successfully. This tests the binary itself and the zsh
+  # integration.
+  installCheckInputs = [ git zsh ];
+  doInstallCheck = true;
+  installCheckPhase = ''
+    TEMP=$(mktemp -d)
+    cd "$TEMP"
+
+    git init
+
+    echo '
+      GITSTATUS_LOG_LEVEL=DEBUG
+      . $out/gitstatus.plugin.zsh || exit 1
+
+      gitstatus_stop NIX_TEST && gitstatus_start NIX_TEST
+      gitstatus_query NIX_TEST
+      if [[ $? -ne 0 ]]; then
+          print -- "Something went wrong with gitstatus"
+          exit 1
+      elif [[ $VCS_STATUS_RESULT != "ok-sync" ]]; then
+          print -- "Not in a Git repo"
+          exit 1
+      else
+          print -- "OK"
+          exit 0
+      fi
+    ' > .zshrc
+
+    # If we try to run zsh like "zsh -i -c true" or "zsh -i > output" then job
+    # control will be disabled in the shell and the gitstatus plugin script
+    # will fail when it tries to set the MONITOR option. As a workaround, we
+    # run zsh as a full-fledged independent process and then wait for it to
+    # exit. (The "exit" statements in the zshrc ensure that zsh will exit
+    # almost immediately after starting.)
+    ZDOTDIR=. zsh -i &
+    wait $!
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix
index d3581eef5596..25985ef0a235 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/gitui/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gitui";
-  version = "0.5.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "extrawurst";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0z3k83nfnl765ably4naybjf614qfizzpqb40ppwljijj9nqlng1";
+    sha256 = "0lxpdwpxizc4bczh5cl2x2xbbdam3fakvgcbbrdh43czgjwb4ds1";
   };
 
-  cargoSha256 = "11y4q56vl5dp2vdc7dc5q44l2m0mn590hfg6i134m11r8988am6y";
+  cargoSha256 = "14x0m3pq4gapgqaljxdwmr5pk9h209ls95an9xgrq0dj6apyimgx";
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
 
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix
index eaab2e6c5054..2413019ebc7b 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/lab/default.nix
@@ -15,6 +15,8 @@ buildGoModule rec {
 
   vendorSha256 = "1lrmafvv5zfn9kc0p8g5vdz351n1zbaqwhwk861fxys0rdpqskyc";
 
+  doCheck = false;
+
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
   postInstall = ''
@@ -29,6 +31,5 @@ buildGoModule rec {
     homepage = "https://zaquestion.github.io/lab";
     license = licenses.cc0;
     maintainers = with maintainers; [ marsam dtzWill ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/lefthook/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
index d86fca1a6d46..a13e4b33d38e 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
@@ -1,5 +1,11 @@
 { stdenv, buildGoModule, fetchFromGitHub }:
 
+# Currently `buildGo114Module` is passed as `buildGoModule` from
+# `../default.nix`. Please remove the fixed 1.14 once a new release has been
+# made and the issue linked below has been closed upstream.
+
+# https://github.com/Arkweid/lefthook/issues/151
+
 buildGoModule rec {
   pname = "lefthook";
   version = "0.7.2";
@@ -13,10 +19,12 @@ buildGoModule rec {
 
   vendorSha256 = "1pdrw4vwbj9cka2pjbjvxviigfvnrf8sgws27ixwwiblbkj4isc8";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Fast and powerful Git hooks manager for any type of projects";
     homepage = "https://github.com/Arkweid/lefthook";
     license = licenses.mit;
     maintainers = with maintainers; [ rencire ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/rs-git-fsmonitor/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/rs-git-fsmonitor/default.nix
new file mode 100644
index 000000000000..6968508f8c9a
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/rs-git-fsmonitor/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, makeWrapper
+, watchman
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rs-git-fsmonitor";
+  version = "0.1.3";
+
+  src = fetchFromGitHub {
+    owner = "jgavris";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "021vdk5i7yyrnh4apn0gnsh6ycnx15wm3g2jrfsg7fycnq8167wc";
+  };
+
+  cargoSha256 = "0kfj09xq1g866507k3gcbm30pyi1xzfr7gca6dab7sjlvf83h9xs";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  fixupPhase = ''
+    wrapProgram $out/bin/rs-git-fsmonitor --prefix PATH ":" "${lib.makeBinPath [ watchman ]}" ;
+  '';
+
+  meta = with lib; {
+    description = "A fast git core.fsmonitor hook written in Rust";
+    homepage = "https://github.com/jgavris/rs-git-fsmonitor";
+    license = licenses.mit;
+    maintainers = [ maintainers.SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix
index 2cd4adce9397..1bad72296b4f 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/stgit/default.nix
@@ -1,31 +1,26 @@
-{ stdenv, fetchFromGitHub, python2, git }:
+{ stdenv, python3Packages, fetchFromGitHub, git, installShellFiles }:
 
-let
-  name = "stgit-${version}";
-  version = "0.22";
-in
-stdenv.mkDerivation {
-  inherit name;
+python3Packages.buildPythonApplication rec {
+  pname = "stgit";
+  version = "0.23";
 
   src = fetchFromGitHub {
     owner = "ctmarinas";
     repo = "stgit";
     rev = "v${version}";
-    sha256 = "0xpvs5fa50rrvl2c8naha1nblk5ip2mgg63a9srqqxfx6z8qmrfz";
+    sha256 = "1r9y8qnl6kdvq61788pnfhhgyv2xrnyrizbhy4qz4l1bpqkwfr2r";
   };
 
-  buildInputs = [ python2 git ];
+  nativeBuildInputs = [ installShellFiles ];
 
-  makeFlags = [ "prefix=$$out" ];
+  checkInputs = [ git ];
 
   postInstall = ''
-    mkdir -p "$out/etc/bash_completion.d/"
-    ln -s ../../share/stgit/completion/stgit-completion.bash "$out/etc/bash_completion.d/"
+    installShellCompletion $out/share/stgit/completion/stg.fish
+    installShellCompletion --name stg $out/share/stgit/completion/stgit.bash
+    installShellCompletion --name _stg $out/share/stgit/completion/stgit.zsh
   '';
 
-  doCheck = false;
-  checkTarget = "test";
-
   meta = with stdenv.lib; {
     description = "A patch manager implemented on top of Git";
     homepage = "http://procode.org/stgit/";
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix
index 1fd70aab4611..11189e02c8ff 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/subgit/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, unzip, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  name = "subgit-3.3.9";
+  name = "subgit-3.3.10";
 
   meta = {
     description = "A tool for a smooth, stress-free SVN to Git migration";
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://subgit.com/download/${name}.zip";
-    sha256 = "0dwd2kymmprci3b61ayr6axzlkc8zgbc40jqxvvyzschfxw9y0v5";
+    sha256 = "1z7cmaghfy5yjs50b3y6av9h2d6xmpamyxql7vvr3dy6kflvv8fk";
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix
index cb03a9b42a25..9415c0eecf16 100644
--- a/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/tig/default.nix
@@ -34,13 +34,14 @@ stdenv.mkDerivation rec {
     # fixes tig-completion __git-complete dependency
     sed -i '1s;^;source ${git}/share/bash-completion/completions/git\n;' contrib/tig-completion.bash
 
-    substituteInPlace contrib/tig-completion.zsh \
-      --replace 'e=$(dirname ''${funcsourcetrace[1]%:*})/tig-completion.bash' "e=$out/share/bash-completion/completions/tig"
-
     install -D contrib/tig-completion.bash $out/share/bash-completion/completions/tig
-    install -D contrib/tig-completion.zsh $out/share/zsh/site-functions/_tig
     cp contrib/vim.tigrc $out/etc/
 
+    # Note: Until https://github.com/jonas/tig/issues/940 is resolved it is best
+    # not to install the ZSH completion so that the fallback implemenation from
+    # ZSH can be used (Completion/Unix/Command/_git: "_tig () { _git-log }"):
+    #install -D contrib/tig-completion.zsh $out/share/zsh/site-functions/_tig
+
     wrapProgram $out/bin/tig \
       --prefix PATH ':' "${git}/bin"
   '';
diff --git a/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix b/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix
index 80f236559f9e..2df8b335bda7 100644
--- a/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "git-lfs";
-  version = "2.11.0";
+  version = "2.12.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "git-lfs";
     repo = "git-lfs";
-    sha256 = "05qd96bn2cl7gn5qarbcv6scdpj28qiwdfzalamqk5jjiidpmng5";
+    sha256 = "0pyvlcy6jxh0vzpsmywlbzwwdyj3jkcclnqb6sg786mmwrnqzj88";
   };
 
   goPackagePath = "github.com/git-lfs/git-lfs";
@@ -30,6 +30,7 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     description = "Git extension for versioning large files";
     homepage    = "https://git-lfs.github.com/";
+    changelog   = "https://github.com/git-lfs/git-lfs/releases/tag/v${version}";
     license     = [ licenses.mit ];
     maintainers = [ maintainers.twey maintainers.marsam ];
   };
diff --git a/nixpkgs/pkgs/applications/version-management/git-repo/default.nix b/nixpkgs/pkgs/applications/version-management/git-repo/default.nix
index eb3f95a354f4..b4e713848261 100644
--- a/nixpkgs/pkgs/applications/version-management/git-repo/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-repo/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-repo";
-  version = "2.8";
+  version = "2.9";
 
   src = fetchFromGitHub {
     owner = "android";
     repo = "tools_repo";
     rev = "v${version}";
-    sha256 = "00sahddplisg55zpjz4v4sc7zqbh3apx36xv77g55nabwz7han8d";
+    sha256 = "1ii6vjgs5nd2hhp475mqa48165garc7ac2w9fyspajaanc7zhnik";
   };
 
   patches = [ ./import-ssl-module.patch ];
diff --git a/nixpkgs/pkgs/applications/version-management/git-sizer/default.nix b/nixpkgs/pkgs/applications/version-management/git-sizer/default.nix
index 6d41098ee1aa..049a2aa2c1d0 100644
--- a/nixpkgs/pkgs/applications/version-management/git-sizer/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/git-sizer/default.nix
@@ -17,6 +17,5 @@ buildGoPackage rec {
     description = "Compute various size metrics for a Git repository";
     license = licenses.mit;
     maintainers = with maintainers; [ matthewbauer ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/gitea/default.nix b/nixpkgs/pkgs/applications/version-management/gitea/default.nix
index 21ff7c5f8f9d..5005b9137a88 100644
--- a/nixpkgs/pkgs/applications/version-management/gitea/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitea/default.nix
@@ -1,6 +1,5 @@
 { stdenv, buildGoPackage, fetchurl, makeWrapper
 , git, bash, gzip, openssh, pam
-, fetchpatch
 , sqliteSupport ? true
 , pamSupport ? true
 }:
@@ -9,11 +8,11 @@ with stdenv.lib;
 
 buildGoPackage rec {
   pname = "gitea";
-  version = "1.11.6";
+  version = "1.12.4";
 
   src = fetchurl {
     url = "https://github.com/go-gitea/gitea/releases/download/v${version}/gitea-src-${version}.tar.gz";
-    sha256 = "11nyq5faq0hy1pi3yhmc6y8is7jyiyfrb162fq9l33pkyw6qihqs";
+    sha256 = "0zz3mwf1yhncvi6pl52lcwbl7k4kkrqyw8q3476akwszjn79n83c";
   };
 
   unpackPhase = ''
@@ -25,10 +24,6 @@ buildGoPackage rec {
 
   patches = [
     ./static-root-path.patch
-    (fetchpatch {
-      url = "https://github.com/go-gitea/gitea/commit/1830d0ed5f4a67e3360ecbb55933b5540b6affce.patch";
-      sha256 = "163531pcki28qfs56l64vv4xxaavxgksf038da1sn21j5l2jm81i";
-    })
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch b/nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch
index 985dbe04082c..e486397d9cf1 100644
--- a/nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch
+++ b/nixpkgs/pkgs/applications/version-management/gitea/static-root-path.patch
@@ -1,13 +1,13 @@
 diff --git a/modules/setting/setting.go b/modules/setting/setting.go
-index 714015c47..a2f85337e 100644
+index 45e55a2..9d18ee4 100644
 --- a/modules/setting/setting.go
 +++ b/modules/setting/setting.go
-@@ -641,7 +641,7 @@ func NewContext() {
- 	PortToRedirect = sec.Key("PORT_TO_REDIRECT").MustString("80")
+@@ -667,7 +667,7 @@ func NewContext() {
  	OfflineMode = sec.Key("OFFLINE_MODE").MustBool()
  	DisableRouterLog = sec.Key("DISABLE_ROUTER_LOG").MustBool()
--	StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(AppWorkPath)
-+	StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString("@data@")
+ 	if len(StaticRootPath) == 0 {
+-		StaticRootPath = AppWorkPath
++		StaticRootPath = "@data@"
+ 	}
+ 	StaticRootPath = sec.Key("STATIC_ROOT_PATH").MustString(StaticRootPath)
  	StaticCacheTime = sec.Key("STATIC_CACHE_TIME").MustDuration(6 * time.Hour)
- 	AppDataPath = sec.Key("APP_DATA_PATH").MustString(path.Join(AppWorkPath, "data"))
- 	EnableGzip = sec.Key("ENABLE_GZIP").MustBool()
diff --git a/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix b/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
index 2afed8c099c8..827d9539dba6 100644
--- a/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitkraken/default.nix
@@ -3,7 +3,7 @@
 , libX11, libXi, libxcb, libXext, libXcursor, glib, libXScrnSaver, libxkbfile, libXtst
 , nss, nspr, cups, fetchzip, expat, gdk-pixbuf, libXdamage, libXrandr, dbus
 , makeDesktopItem, openssl, wrapGAppsHook, at-spi2-atk, at-spi2-core, libuuid
-, e2fsprogs, krb5
+, e2fsprogs, krb5, libdrm, mesa
 }:
 
 with stdenv.lib;
@@ -13,11 +13,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "gitkraken";
-  version = "7.0.1";
+  version = "7.3.2";
 
   src = fetchzip {
     url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
-    sha256 = "0vj2ggbm617fypl69ksbrbl048xp4v6wc46y4sp7hrk6lg0gw1b0";
+    sha256 = "0bw75m87qbnnn1gjphik3xcjx2zwczsa37rpr16la1zjhqjl5m7j";
   };
 
   dontBuild = true;
@@ -61,6 +61,8 @@ stdenv.mkDerivation rec {
     libuuid
     e2fsprogs
     krb5
+    libdrm
+    mesa
   ];
 
   desktopItem = makeDesktopItem {
@@ -69,7 +71,7 @@ stdenv.mkDerivation rec {
     icon = "gitkraken";
     desktopName = "GitKraken";
     genericName = "Git Client";
-    categories = "Application;Development;";
+    categories = "Development;";
     comment = "Graphical Git client from Axosoft";
   };
 
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/data.json b/nixpkgs/pkgs/applications/version-management/gitlab/data.json
index bc342ff2b5ef..9389934ffc68 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/data.json
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/data.json
@@ -1,11 +1,11 @@
 {
-  "version": "13.0.6",
-  "repo_hash": "0iyzx5lnkwp6m8q5p60gzsjmpf6qflvzl0vzfw37hymnxwq646zy",
+  "version": "13.0.14",
+  "repo_hash": "15is18x631ifsj4iwmrs1s9lc3i99hwsxxf5v42qldbmsys31l1k",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v13.0.6-ee",
+  "rev": "v13.0.14-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "13.0.6",
+    "GITALY_SERVER_VERSION": "13.0.14",
     "GITLAB_PAGES_VERSION": "1.18.0",
     "GITLAB_SHELL_VERSION": "13.2.0",
     "GITLAB_WORKHORSE_VERSION": "8.31.2"
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
index 8f51b33fbd4f..84cf1e500a22 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -19,14 +19,14 @@ let
       };
   };
 in buildGoPackage rec {
-  version = "13.0.6";
+  version = "13.0.14";
   pname = "gitaly";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitaly";
     rev = "v${version}";
-    sha256 = "14vp73z9f0p3m1bjykkfzrmw9miyjxiqm79rns477xbm2dbmwa4s";
+    sha256 = "16ynkwiv0faa60msashj5w1bc4rdh7yv2qjmpcbf7dwq54gqmlbv";
   };
 
   # Fix a check which assumes that hook files are writeable by their
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/deps.nix b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/deps.nix
index b4105f18c102..72c0f2cdf513 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/deps.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/gitlab-shell/deps.nix
@@ -13,7 +13,7 @@
     goPackagePath = "cloud.google.com/go";
     fetch = {
       type = "git";
-      url = "https://code.googlesource.com/gocloud";
+      url = "https://github.com/googleapis/google-cloud-go";
       rev = "v0.26.0";
       sha256 = "149v3ci17g6wd2pm18mzcncq5qpl9hwdjnz3rlbn5rfidyn46la1";
     };
@@ -634,7 +634,7 @@
     goPackagePath = "google.golang.org/genproto";
     fetch = {
       type = "git";
-      url = "https://github.com/google/go-genproto";
+      url = "https://github.com/googleapis/go-genproto";
       rev = "bd91e49a0898";
       sha256 = "1f5q04h03q6fksbfkhz13ai5849rkkb8xrmmi7cxs4lzsi6ixkg8";
     };
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 723863edfd93..e6407161f8eb 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -559,18 +559,18 @@ GEM
     json-schema (2.8.0)
       addressable (>= 2.4)
     jwt (2.1.0)
-    kaminari (1.0.1)
+    kaminari (1.2.1)
       activesupport (>= 4.1.0)
-      kaminari-actionview (= 1.0.1)
-      kaminari-activerecord (= 1.0.1)
-      kaminari-core (= 1.0.1)
-    kaminari-actionview (1.0.1)
+      kaminari-actionview (= 1.2.1)
+      kaminari-activerecord (= 1.2.1)
+      kaminari-core (= 1.2.1)
+    kaminari-actionview (1.2.1)
       actionview
-      kaminari-core (= 1.0.1)
-    kaminari-activerecord (1.0.1)
+      kaminari-core (= 1.2.1)
+    kaminari-activerecord (1.2.1)
       activerecord
-      kaminari-core (= 1.0.1)
-    kaminari-core (1.0.1)
+      kaminari-core (= 1.2.1)
+    kaminari-core (1.2.1)
     kgio (2.11.3)
     knapsack (1.17.0)
       rake
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index 041f19226f46..7156347be05e 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -2382,10 +2382,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0invfvfb252ihsdr65rylkvd1x2wy004jval52v3i8ybb0jhc5hi";
+      sha256 = "1vxkqciny5v4jgmjxl8qrgbmig2cij2iskqbwh4bfcmpxf467ch3";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.2.1";
   };
   kaminari-actionview = {
     dependencies = ["actionview" "kaminari-core"];
@@ -2393,10 +2393,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mhhsm6xhmwqc7hfw7xnk1kdbfg468bqs5awcqm5j6j8b9zyjvdi";
+      sha256 = "0w0p1hyv6lgf6h036cmn2kbkdv4x7g0g9q9kc5gzkpz7amlxr8ri";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.2.1";
   };
   kaminari-activerecord = {
     dependencies = ["activerecord" "kaminari-core"];
@@ -2404,20 +2404,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kb5aj6iy1cwcq5548jd3w1ipxicnzmnx2ay1s4hvad2gvrd4g93";
+      sha256 = "02n5xxv6ilh39q2m6vcz7qrdai7ghk3s178dw6f0b3lavwyq49w3";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.2.1";
   };
   kaminari-core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0r2n293ad1xr9wgn8cr53nfzwls4w3p1xi4kjfjgl1z0yf05mpwr";
+      sha256 = "0h04cr4y1jfn81gxy439vmczifghc2cvsyw47aa32is5bbxg1wlz";
       type = "gem";
     };
-    version = "1.0.1";
+    version = "1.2.1";
   };
   kgio = {
     groups = ["default" "unicorn"];
diff --git a/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix b/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix
index f7851c6adcb4..797329c613e4 100644
--- a/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitlab/yarnPkgs.nix
@@ -11706,11 +11706,11 @@
       };
     }
     {
-      name = "swagger_ui_dist___swagger_ui_dist_3.24.3.tgz";
+      name = "swagger_ui_dist___swagger_ui_dist_3.26.2.tgz";
       path = fetchurl {
-        name = "swagger_ui_dist___swagger_ui_dist_3.24.3.tgz";
-        url  = "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-3.24.3.tgz";
-        sha1 = "99754d11b0ddd314a1a50db850acb415e4b0a0c6";
+        name = "swagger_ui_dist___swagger_ui_dist_3.26.2.tgz";
+        url  = "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-3.26.2.tgz";
+        sha1 = "22c700906c8911b1c9956da6c3fca371dba6219f";
       };
     }
     {
@@ -13226,11 +13226,11 @@
       };
     }
     {
-      name = "xterm___xterm_3.5.0.tgz";
+      name = "xterm___xterm_3.14.5.tgz";
       path = fetchurl {
-        name = "xterm___xterm_3.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/xterm/-/xterm-3.5.0.tgz";
-        sha1 = "ba3f464bc5730c9d259ebe62131862224db9ddcc";
+        name = "xterm___xterm_3.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/xterm/-/xterm-3.14.5.tgz";
+        sha1 = "c9d14e48be6873aa46fb429f22f2165557fd2dea";
       };
     }
     {
diff --git a/nixpkgs/pkgs/applications/version-management/gitolite/default.nix b/nixpkgs/pkgs/applications/version-management/gitolite/default.nix
index 60fed6954dc5..5e2fdc087fe3 100644
--- a/nixpkgs/pkgs/applications/version-management/gitolite/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/gitolite/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gitolite";
-  version = "3.6.11";
+  version = "3.6.12";
 
   src = fetchFromGitHub {
     owner = "sitaramc";
     repo = "gitolite";
     rev = "v${version}";
-    sha256 = "1rkj7gknwjlc5ij9w39zf5mr647bm45la57yjczydmvrb8c56yrh";
+    sha256 = "05xw1pmagvkrbzga5pgl3xk9qyc6b5x73f842454f3w9ijspa8zy";
   };
 
   buildInputs = [ nettools perl ];
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   postFixup = ''
     wrapProgram $out/bin/gitolite-shell \
-      --prefix PATH : "${git}/bin"
+      --prefix PATH : ${lib.makeBinPath [ git perl ]}
   '';
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/applications/version-management/gitoxide/default.nix b/nixpkgs/pkgs/applications/version-management/gitoxide/default.nix
new file mode 100644
index 000000000000..b6b9c7e5660f
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gitoxide/default.nix
@@ -0,0 +1,29 @@
+{ lib, rustPlatform, fetchFromGitHub, pkg-config, openssl }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "gitoxide";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "Byron";
+    repo = "gitoxide";
+    rev = "v${version}";
+    sha256 = "0sx3z9l9n9qq2zj91pgm7znhxjsj59zvwms3aivfglhawwj3iwyj";
+  };
+
+  cargoSha256 = "0ykkh86p4csi0v3pb2idjk94w9m32a34a5qrvna7ml5yz84m8hva";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ openssl ];
+
+  # Needed to get openssl-sys to use pkgconfig.
+  OPENSSL_NO_VENDOR = 1;
+
+  meta = with lib; {
+    description =
+      "A command-line application for interacting with git repositories";
+    homepage = "https://github.com/Byron/gitoxide";
+    license = with licenses; [ mit /* or */ asl20 ];
+    maintainers = [ maintainers.syberant ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/gomp/default.nix b/nixpkgs/pkgs/applications/version-management/gomp/default.nix
new file mode 100644
index 000000000000..efdef3b967f8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/gomp/default.nix
@@ -0,0 +1,23 @@
+{ lib
+, python3Packages
+ }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "gomp";
+  version = "1.1.0";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "11nq40igqbyfiygdzb1zyxx1n6d9xkv8vlmprbbi75mq54gfihhb";
+  };
+
+  doCheck = false; # tests require interactive terminal
+
+  meta = with lib; {
+    description = "A tool for comparing Git branches";
+    homepage = "https://github.com/MarkForged/GOMP";
+    license = licenses.mit;
+    maintainers = with maintainers; [ prusnak ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/meld/default.nix b/nixpkgs/pkgs/applications/version-management/meld/default.nix
index 3c46db6352e8..07af9341646a 100644
--- a/nixpkgs/pkgs/applications/version-management/meld/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/meld/default.nix
@@ -1,53 +1,56 @@
-{ stdenv, fetchurl, itstool, python3, intltool, wrapGAppsHook
-, libxml2, gobject-introspection, gtk3, gtksourceview, gnome3
-, gsettings-desktop-schemas, dbus, xvfb_run
+{ stdenv
+, fetchurl
+, gettext
+, itstool
+, python3
+, meson
+, ninja
+, wrapGAppsHook
+, libxml2
+, pkg-config
+, desktop-file-utils
+, gobject-introspection
+, gtk3
+, gtksourceview4
+, gnome3
+, gsettings-desktop-schemas
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "meld";
-  version = "3.20.2";
+  version = "3.21.0";
+
+  format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0a0x156zr3w2yg0rnhwy39giy3xnfm6sqcfa4xcw4i6ahvwqa2dc";
+    sha256 = "toARTVq3kzJFSf1Y9OsgLY4oDAYzoLdl7ebfs0FgqBs=";
   };
 
   nativeBuildInputs = [
-    intltool itstool libxml2 gobject-introspection wrapGAppsHook
+    meson
+    ninja
+    gettext
+    itstool
+    libxml2
+    pkg-config
+    desktop-file-utils
+    gobject-introspection
+    wrapGAppsHook
   ];
+
   buildInputs = [
-    gtk3 gtksourceview gsettings-desktop-schemas gnome3.adwaita-icon-theme
+    gtk3
+    gtksourceview4
+    gsettings-desktop-schemas
+    gnome3.adwaita-icon-theme
     gobject-introspection # fixes https://github.com/NixOS/nixpkgs/issues/56943 for now
   ];
-  propagatedBuildInputs = with python3.pkgs; [ pygobject3 pycairo ];
-  checkInputs = [ xvfb_run python3.pkgs.pytest dbus gtksourceview gtk3 ];
-
-  installPhase = ''
-    runHook preInstall
-    ${python3.interpreter} setup.py install --prefix=$out
-    runHook postInstall
-  '';
-
-  checkPhase = ''
-    runHook preCheck
-
-    # Unable to create user data directory '/homeless-shelter/.local/share' for storing the recently used files list: Permission denied
-    mkdir test-home
-    export HOME=$(pwd)/test-home
 
-    # GLib.GError: gtk-icon-theme-error-quark: Icon 'meld-change-apply-right' not present in theme Adwaita
-    export XDG_DATA_DIRS="$out/share:$XDG_DATA_DIRS"
-
-    # ModuleNotFoundError: No module named 'meld'
-    export PYTHONPATH=$out/${python3.sitePackages}:$PYTHONPATH
-
-    # Gtk-CRITICAL **: gtk_icon_theme_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
-    xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
-      --config-file=${dbus.daemon}/share/dbus-1/session.conf \
-      py.test
-
-    runHook postCheck
-  '';
+  propagatedBuildInputs = with python3.pkgs; [
+    pygobject3
+    pycairo
+  ];
 
   passthru = {
     updateScript = gnome3.updateScript {
@@ -58,7 +61,7 @@ python3.pkgs.buildPythonApplication rec {
   meta = with stdenv.lib; {
     description = "Visual diff and merge tool";
     homepage = "http://meldmerge.org/";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ jtojnar mimame ];
   };
diff --git a/nixpkgs/pkgs/applications/version-management/mercurial/default.nix b/nixpkgs/pkgs/applications/version-management/mercurial/default.nix
index 47453cb5e6fe..c7a1c4149870 100644
--- a/nixpkgs/pkgs/applications/version-management/mercurial/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/mercurial/default.nix
@@ -8,11 +8,11 @@ let
 
 in python3Packages.buildPythonApplication rec {
   pname = "mercurial";
-  version = "5.4.1";
+  version = "5.4.2";
 
   src = fetchurl {
     url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
-    sha256 = "1ilam0dz121nn4852jgkgyzyrvk3hn5cqnivy8gk1qg815mh4763";
+    sha256 = "0ls8nwx3nz26pibphw54fg8pxqb365zmmqx95lqrxqqyf3d972sw";
   };
 
   format = "other";
diff --git a/nixpkgs/pkgs/applications/version-management/p4/default.nix b/nixpkgs/pkgs/applications/version-management/p4/default.nix
new file mode 100644
index 000000000000..3a397b5bf87c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/p4/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, lib, autoPatchelfHook }:
+
+stdenv.mkDerivation rec {
+  pname = "p4";
+  version = "2020.1.1991450";
+
+  src = fetchurl {
+    url = "https://cdist2.perforce.com/perforce/r20.1/bin.linux26x86_64/helix-core-server.tgz";
+    sha256 = "0nhcxhwx3scx6vf7i2bc8j0b1l57lmq9bfy1cfbfbqasd3an721k";
+  };
+
+  sourceRoot = ".";
+
+  dontBuild = true;
+
+  nativeBuildInputs = [ autoPatchelfHook ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp p4 p4broker p4d p4p $out/bin
+  '';
+
+  meta = {
+    description = "Perforce Command-Line Client";
+    homepage = "https://www.perforce.com";
+    license = lib.licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with lib.maintainers; [ corngood ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/p4v/default.nix b/nixpkgs/pkgs/applications/version-management/p4v/default.nix
index 148f122f7c8b..01ea365b76c3 100644
--- a/nixpkgs/pkgs/applications/version-management/p4v/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/p4v/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, fetchurl, lib, qtbase, qtmultimedia, qtscript, qtsensors, qtwebkit, openssl_1_0_2, xkeyboard_config, wrapQtAppsHook }:
+{ stdenv, fetchurl, lib, qtbase, qtmultimedia, qtscript, qtsensors, qtwebengine, qtwebkit, openssl, xkeyboard_config, patchelfUnstable, wrapQtAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "p4v";
-  version = "2017.3.1601999";
+  version = "2020.1.1966006";
 
   src = fetchurl {
-    url = "https://cdist2.perforce.com/perforce/r17.3/bin.linux26x86_64/p4v.tgz";
-    sha256 = "9ded42683141e1808535ec3e87d3149f890315c192d6e97212794fd54862b9a4";
+    url = "https://cdist2.perforce.com/perforce/r20.1/bin.linux26x86_64/p4v.tgz";
+    sha256 = "0zc70d7jgdrd2jli338n1h05hgb7jmmv8hvq205wh78vvllrlv10";
   };
 
   dontBuild = true;
-  nativeBuildInputs = [ wrapQtAppsHook ];
+  nativeBuildInputs = [ patchelfUnstable wrapQtAppsHook ];
 
   ldLibraryPath = lib.makeLibraryPath [
       stdenv.cc.cc.lib
@@ -18,26 +18,33 @@ stdenv.mkDerivation rec {
       qtmultimedia
       qtscript
       qtsensors
+      qtwebengine
       qtwebkit
-      openssl_1_0_2
+      openssl
   ];
 
   dontWrapQtApps = true;
   installPhase = ''
     mkdir $out
     cp -r bin $out
-    mkdir -p $out/lib/p4v
-    cp -r lib/p4v/P4VResources $out/lib/p4v
+    mkdir -p $out/lib
+    cp -r lib/P4VResources $out/lib
 
     for f in $out/bin/*.bin ; do
-      patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $f
-
+      patchelf --set-rpath $ldLibraryPath --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $f
+      # combining this with above breaks rpath (patchelf bug?)
+      patchelf --add-needed libstdc++.so $f \
+               --clear-symbol-version _ZNSt20bad_array_new_lengthD1Ev \
+               --clear-symbol-version _ZTVSt20bad_array_new_length \
+               --clear-symbol-version _ZTISt20bad_array_new_length \
+               $f
       wrapQtApp $f \
-        --suffix LD_LIBRARY_PATH : ${ldLibraryPath} \
         --suffix QT_XKB_CONFIG_ROOT : ${xkeyboard_config}/share/X11/xkb
     done
   '';
 
+  dontFixup = true;
+
   meta = {
     description = "Perforce Visual Client";
     homepage = "https://www.perforce.com";
diff --git a/nixpkgs/pkgs/applications/version-management/pijul/default.nix b/nixpkgs/pkgs/applications/version-management/pijul/default.nix
index 74b793f0e77b..b17e759c6573 100644
--- a/nixpkgs/pkgs/applications/version-management/pijul/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/pijul/default.nix
@@ -60,6 +60,5 @@ in rustPlatform.buildRustPackage rec {
     homepage = "https://pijul.org";
     license = with licenses; [ gpl2Plus ];
     maintainers = [ maintainers.gal_bolle ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch b/nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch
new file mode 100644
index 000000000000..98213c781a1b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/redmine/0001-python3.patch
@@ -0,0 +1,275 @@
+--- a/lib/redmine/scm/adapters/mercurial/redminehelper.py
++++ b/lib/redmine/scm/adapters/mercurial/redminehelper.py
+@@ -45,17 +45,20 @@ Output example of rhmanifest::
+       </repository>
+     </rhmanifest>
+ """
+-import re, time, cgi, urllib
++import re, time, html, urllib
+ from mercurial import cmdutil, commands, node, error, hg, registrar
+ 
+ cmdtable = {}
+ command = registrar.command(cmdtable) if hasattr(registrar, 'command') else cmdutil.command(cmdtable)
+ 
+-_x = cgi.escape
+-_u = lambda s: cgi.escape(urllib.quote(s))
++_x = lambda s: html.escape(s.decode('utf-8')).encode('utf-8')
++_u = lambda s: html.escape(urllib.parse.quote(s)).encode('utf-8')
++
++def unquoteplus(*args, **kwargs):
++    return urllib.parse.unquote_to_bytes(*args, **kwargs).replace(b'+', b' ')
+ 
+ def _changectx(repo, rev):
+-    if isinstance(rev, str):
++    if isinstance(rev, bytes):
+        rev = repo.lookup(rev)
+     if hasattr(repo, 'changectx'):
+         return repo.changectx(rev)
+@@ -70,10 +73,10 @@ def _tip(ui, repo):
+         except TypeError:  # Mercurial < 1.1
+             return repo.changelog.count() - 1
+     tipctx = _changectx(repo, tiprev())
+-    ui.write('<tip revision="%d" node="%s"/>\n'
++    ui.write(b'<tip revision="%d" node="%s"/>\n'
+              % (tipctx.rev(), _x(node.hex(tipctx.node()))))
+ 
+-_SPECIAL_TAGS = ('tip',)
++_SPECIAL_TAGS = (b'tip',)
+ 
+ def _tags(ui, repo):
+     # see mercurial/commands.py:tags
+@@ -84,7 +87,7 @@ def _tags(ui, repo):
+             r = repo.changelog.rev(n)
+         except error.LookupError:
+             continue
+-        ui.write('<tag revision="%d" node="%s" name="%s"/>\n'
++        ui.write(b'<tag revision="%d" node="%s" name="%s"/>\n'
+                  % (r, _x(node.hex(n)), _x(t)))
+ 
+ def _branches(ui, repo):
+@@ -104,136 +107,148 @@ def _branches(ui, repo):
+             return repo.branchheads(branch)
+     def lookup(rev, n):
+         try:
+-            return repo.lookup(rev)
++            return repo.lookup(str(rev).encode('utf-8'))
+         except RuntimeError:
+             return n
+     for t, n, r in sorted(iterbranches(), key=lambda e: e[2], reverse=True):
+         if lookup(r, n) in branchheads(t):
+-            ui.write('<branch revision="%d" node="%s" name="%s"/>\n'
++            ui.write(b'<branch revision="%d" node="%s" name="%s"/>\n'
+                      % (r, _x(node.hex(n)), _x(t)))
+ 
+ def _manifest(ui, repo, path, rev):
+     ctx = _changectx(repo, rev)
+-    ui.write('<manifest revision="%d" path="%s">\n'
++    ui.write(b'<manifest revision="%d" path="%s">\n'
+              % (ctx.rev(), _u(path)))
+ 
+     known = set()
+-    pathprefix = (path.rstrip('/') + '/').lstrip('/')
++    pathprefix = (path.decode('utf-8').rstrip('/') + '/').lstrip('/')
+     for f, n in sorted(ctx.manifest().iteritems(), key=lambda e: e[0]):
+-        if not f.startswith(pathprefix):
++        fstr = f.decode('utf-8')
++        if not fstr.startswith(pathprefix):
+             continue
+-        name = re.sub(r'/.*', '/', f[len(pathprefix):])
++        name = re.sub(r'/.*', '/', fstr[len(pathprefix):])
+         if name in known:
+             continue
+         known.add(name)
+ 
+         if name.endswith('/'):
+-            ui.write('<dir name="%s"/>\n'
++            ui.write(b'<dir name="%s"/>\n'
+                      % _x(urllib.quote(name[:-1])))
+         else:
+             fctx = repo.filectx(f, fileid=n)
+             tm, tzoffset = fctx.date()
+-            ui.write('<file name="%s" revision="%d" node="%s" '
+-                     'time="%d" size="%d"/>\n'
++            ui.write(b'<file name="%s" revision="%d" node="%s" '
++                     b'time="%d" size="%d"/>\n'
+                      % (_u(name), fctx.rev(), _x(node.hex(fctx.node())),
+                         tm, fctx.size(), ))
+ 
+-    ui.write('</manifest>\n')
++    ui.write(b'</manifest>\n')
+ 
+-@command('rhannotate',
+-         [('r', 'rev', '', 'revision'),
+-          ('u', 'user', None, 'list the author (long with -v)'),
+-          ('n', 'number', None, 'list the revision number (default)'),
+-          ('c', 'changeset', None, 'list the changeset'),
++@command(b'rhannotate',
++         [(b'r', b'rev', b'', b'revision'),
++          (b'u', b'user', None, b'list the author (long with -v)'),
++          (b'n', b'number', None, b'list the revision number (default)'),
++          (b'c', b'changeset', None, b'list the changeset'),
+          ],
+-         'hg rhannotate [-r REV] [-u] [-n] [-c] FILE...')
++         b'hg rhannotate [-r REV] [-u] [-n] [-c] FILE...')
+ def rhannotate(ui, repo, *pats, **opts):
+-    rev = urllib.unquote_plus(opts.pop('rev', None))
++    rev = unquoteplus(opts.pop('rev', b''))
+     opts['rev'] = rev
+-    return commands.annotate(ui, repo, *map(urllib.unquote_plus, pats), **opts)
++    return commands.annotate(ui, repo, *map(unquoteplus, pats), **opts)
+ 
+-@command('rhcat',
+-               [('r', 'rev', '', 'revision')],
+-               'hg rhcat ([-r REV] ...) FILE...')
++@command(b'rhcat',
++               [(b'r', b'rev', b'', b'revision')],
++               b'hg rhcat ([-r REV] ...) FILE...')
+ def rhcat(ui, repo, file1, *pats, **opts):
+-    rev = urllib.unquote_plus(opts.pop('rev', None))
++    rev = unquoteplus(opts.pop('rev', b''))
+     opts['rev'] = rev
+-    return commands.cat(ui, repo, urllib.unquote_plus(file1), *map(urllib.unquote_plus, pats), **opts)
++    return commands.cat(ui, repo, unquoteplus(file1), *map(unquoteplus, pats), **opts)
+ 
+-@command('rhdiff',
+-               [('r', 'rev', [], 'revision'),
+-                ('c', 'change', '', 'change made by revision')],
+-               'hg rhdiff ([-c REV] | [-r REV] ...) [FILE]...')
++@command(b'rhdiff',
++               [(b'r', b'rev', [], b'revision'),
++                (b'c', b'change', b'', b'change made by revision')],
++               b'hg rhdiff ([-c REV] | [-r REV] ...) [FILE]...')
+ def rhdiff(ui, repo, *pats, **opts):
+     """diff repository (or selected files)"""
+     change = opts.pop('change', None)
+     if change:  # add -c option for Mercurial<1.1
+         base = _changectx(repo, change).parents()[0].rev()
+-        opts['rev'] = [str(base), change]
++        opts['rev'] = [base, change]
+     opts['nodates'] = True
+-    return commands.diff(ui, repo, *map(urllib.unquote_plus, pats), **opts)
+-
+-@command('rhlog',
+-                   [
+-                    ('r', 'rev', [], 'show the specified revision'),
+-                    ('b', 'branch', [],
+-                       'show changesets within the given named branch'),
+-                    ('l', 'limit', '',
+-                         'limit number of changes displayed'),
+-                    ('d', 'date', '',
+-                         'show revisions matching date spec'),
+-                    ('u', 'user', [],
+-                      'revisions committed by user'),
+-                    ('', 'from', '',
+-                      ''),
+-                    ('', 'to', '',
+-                      ''),
+-                    ('', 'rhbranch', '',
+-                      ''),
+-                    ('', 'template', '',
+-                       'display with template')],
+-                   'hg rhlog [OPTION]... [FILE]')
++    return commands.diff(ui, repo, *map(unquoteplus, pats), **opts)
++
++@command(b'rhlog',
++                  [
++                    (b'r', b'rev', [], b'show the specified revision'),
++                    (b'b', b'branch', [],
++                       b'show changesets within the given named branch'),
++                    (b'l', b'limit', b'',
++                         b'limit number of changes displayed'),
++                    (b'd', b'date', b'',
++                         b'show revisions matching date spec'),
++                    (b'u', b'user', [],
++                      b'revisions committed by user'),
++                    (b'', b'from', b'',
++                      b''),
++                    (b'', b'to', b'',
++                      b''),
++                    (b'', b'rhbranch', b'',
++                      b''),
++                    (b'', b'template', b'',
++                       b'display with template')],
++                   b'hg rhlog [OPTION]... [FILE]')
++
+ def rhlog(ui, repo, *pats, **opts):
+     rev      = opts.pop('rev')
+     bra0     = opts.pop('branch')
+-    from_rev = urllib.unquote_plus(opts.pop('from', None))
+-    to_rev   = urllib.unquote_plus(opts.pop('to'  , None))
+-    bra      = urllib.unquote_plus(opts.pop('rhbranch', None))
+-    from_rev = from_rev.replace('"', '\\"')
+-    to_rev   = to_rev.replace('"', '\\"')
+-    if hg.util.version() >= '1.6':
+-      opts['rev'] = ['"%s":"%s"' % (from_rev, to_rev)]
++    from_rev = unquoteplus(opts.pop('from', b''))
++    to_rev   = unquoteplus(opts.pop('to'  , b''))
++    bra      = unquoteplus(opts.pop('rhbranch', b''))
++    from_rev = from_rev.replace(b'"', b'\\"')
++    to_rev   = to_rev.replace(b'"', b'\\"')
++    if (from_rev != b'') or (to_rev != b''):
++        if from_rev != b'':
++            quotefrom = b'"%s"' % (from_rev)
++        else:
++            quotefrom = from_rev
++        if to_rev != b'':
++            quoteto = b'"%s"' % (to_rev)
++        else:
++            quoteto = to_rev
++        opts['rev'] = [b'%s:%s' % (quotefrom, quoteto)]
+     else:
+-      opts['rev'] = ['%s:%s' % (from_rev, to_rev)]
+-    opts['branch'] = [bra]
+-    return commands.log(ui, repo, *map(urllib.unquote_plus, pats), **opts)
+-
+-@command('rhmanifest',
+-                   [('r', 'rev', '', 'show the specified revision')],
+-                   'hg rhmanifest [-r REV] [PATH]')
+-def rhmanifest(ui, repo, path='', **opts):
++        opts['rev'] = rev
++    if (bra != b''):
++        opts['branch'] = [bra]
++    return commands.log(ui, repo, *map(unquoteplus, pats), **opts)
++
++
++@command(b'rhmanifest',
++                   [(b'r', b'rev', b'', b'show the specified revision')],
++                   b'hg rhmanifest -r REV [PATH]')
++def rhmanifest(ui, repo, path=b'', **opts):
+     """output the sub-manifest of the specified directory"""
+-    ui.write('<?xml version="1.0"?>\n')
+-    ui.write('<rhmanifest>\n')
+-    ui.write('<repository root="%s">\n' % _u(repo.root))
++    ui.write(b'<?xml version="1.0"?>\n')
++    ui.write(b'<rhmanifest>\n')
++    ui.write(b'<repository root="%s">\n' % _u(repo.root))
+     try:
+-        _manifest(ui, repo, urllib.unquote_plus(path), urllib.unquote_plus(opts.get('rev')))
++        _manifest(ui, repo, unquoteplus(path), unquoteplus(opts.get('rev')))
+     finally:
+-        ui.write('</repository>\n')
+-        ui.write('</rhmanifest>\n')
++        ui.write(b'</repository>\n')
++        ui.write(b'</rhmanifest>\n')
+ 
+-@command('rhsummary',[], 'hg rhsummary')
++@command(b'rhsummary',[], b'hg rhsummary')
+ def rhsummary(ui, repo, **opts):
+     """output the summary of the repository"""
+-    ui.write('<?xml version="1.0"?>\n')
+-    ui.write('<rhsummary>\n')
+-    ui.write('<repository root="%s">\n' % _u(repo.root))
++    ui.write(b'<?xml version="1.0"?>\n')
++    ui.write(b'<rhsummary>\n')
++    ui.write(b'<repository root="%s">\n' % _u(repo.root))
+     try:
+         _tip(ui, repo)
+         _tags(ui, repo)
+         _branches(ui, repo)
+         # TODO: bookmarks in core (Mercurial>=1.8)
+     finally:
+-        ui.write('</repository>\n')
+-        ui.write('</rhsummary>\n')
++        ui.write(b'</repository>\n')
++        ui.write(b'</rhsummary>\n')
+ 
diff --git a/nixpkgs/pkgs/applications/version-management/redmine/default.nix b/nixpkgs/pkgs/applications/version-management/redmine/default.nix
index 2344e8dbd4b8..defbf9c2aec4 100644
--- a/nixpkgs/pkgs/applications/version-management/redmine/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/redmine/default.nix
@@ -21,6 +21,10 @@ in
 
     buildInputs = [ rubyEnv rubyEnv.wrappedRuby rubyEnv.bundler ];
 
+    # taken from https://www.redmine.org/issues/33784
+    # can be dropped when the upstream bug is closed and the fix is present in the upstream release
+    patches = [ ./0001-python3.patch ];
+
     buildPhase = ''
       mv config config.dist
       mv public/themes public/themes.dist
diff --git a/nixpkgs/pkgs/applications/version-management/sit/default.nix b/nixpkgs/pkgs/applications/version-management/sit/default.nix
index 67bda7a4fddc..d19f9862fca8 100644
--- a/nixpkgs/pkgs/applications/version-management/sit/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/sit/default.nix
@@ -27,7 +27,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://sit.fyi/";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ dywedir yrashk ];
-    platforms = platforms.all;
     # Upstream has not had a release in several years, and dependencies no
     # longer compile with the latest Rust compiler.
     broken = true;
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix
index 1bf78c548ee8..76103eba8af5 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/builds.nix
@@ -4,14 +4,13 @@
 , srht, redis, celery, pyyaml, markdown }:
 
 let
-  version = "0.56.13";
+  version = "0.62.6";
 
   buildWorker = src: buildGoModule {
     inherit src version;
     pname = "builds-sr-ht-worker";
-    goPackagePath = "git.sr.ht/~sircmpwn/builds.sr.ht/worker";
 
-  vendorSha256 = "0prdlihcy5yz760llwyby747yy2981dn3gy401a48df7ndlfj6lp";
+    vendorSha256 = "1sbcjp93gb0c4p7dd1gjhmhwr1pygxvrrzp954j2fvxvi38w6571";
   };
 in buildPythonPackage rec {
   inherit version;
@@ -20,13 +19,9 @@ in buildPythonPackage rec {
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/builds.sr.ht";
     rev = version;
-    sha256 = "0la9i93fxxphi4gf913ccjiqlfn92h3nbpl9gxcwcplm2vvi4nmq";
+    sha256 = "1vSUcqYyOitfGaSZVOj5vkmoiAvQbTHgiDVSV5qJLyQ=";
   };
 
-  patches = [
-    ./use-srht-path.patch
-  ];
-
   nativeBuildInputs = srht.nativeBuildInputs;
 
   propagatedBuildInputs = [
@@ -39,7 +34,6 @@ in buildPythonPackage rec {
 
   preBuild = ''
     export PKGVER=${version}
-    export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
   postInstall = ''
@@ -57,4 +51,4 @@ in buildPythonPackage rec {
     license = licenses.agpl3;
     maintainers = with maintainers; [ eadwu ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/core.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/core.nix
index 0023eb407b3a..9f7b4b158c25 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/core.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/core.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchgit, fetchNodeModules, buildPythonPackage
-, pgpy, flask, bleach, misaka, humanize, html5lib, markdown, psycopg2, pygments
+, pgpy, flask, bleach, humanize, html5lib, markdown, psycopg2, pygments
 , requests, sqlalchemy, cryptography, beautifulsoup4, sqlalchemy-utils, prometheus_client
-, celery, alembic, importlib-metadata
+, celery, alembic, importlib-metadata, mistletoe
 , sassc, nodejs
 , writeText }:
 
 buildPythonPackage rec {
   pname = "srht";
-  version = "0.59.13";
+  version = "0.64.0";
 
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/core.sr.ht";
     rev = version;
-    sha256 = "1rgndpr0w25mxg0d8x54lay82d0p01aygallsgr1lw5zs4r3ldz6";
+    sha256 = "ubCbDh60zg88LXupWAo2EnqhE5jt0F0L9ikTBebusYQ=";
   };
 
   node_modules = fetchNodeModules {
@@ -34,13 +34,13 @@ buildPythonPackage rec {
     pgpy
     flask
     bleach
-    misaka
     humanize
     html5lib
     markdown
     psycopg2
     pygments
     requests
+    mistletoe
     sqlalchemy
     cryptography
     beautifulsoup4
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/default.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/default.nix
index f6de0036afe0..8d2e8ceed335 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/default.nix
@@ -1,4 +1,4 @@
-{ python37, openssl
+{ python38, openssl
 , callPackage, recurseIntoAttrs }:
 
 # To expose the *srht modules, they have to be a python module so we use `buildPythonModule`
@@ -8,7 +8,7 @@
 let
   fetchNodeModules = callPackage ./fetchNodeModules.nix { };
 
-  python = python37.override {
+  python = python38.override {
     packageOverrides = self: super: {
       srht = self.callPackage ./core.nix { inherit fetchNodeModules; };
 
@@ -16,6 +16,7 @@ let
       dispatchsrht = self.callPackage ./dispatch.nix { };
       gitsrht = self.callPackage ./git.nix { };
       hgsrht = self.callPackage ./hg.nix { };
+      hubsrht = self.callPackage ./hub.nix { };
       listssrht = self.callPackage ./lists.nix { };
       mansrht = self.callPackage ./man.nix { };
       metasrht = self.callPackage ./meta.nix { };
@@ -31,6 +32,7 @@ in with python.pkgs; recurseIntoAttrs {
   dispatchsrht = toPythonApplication dispatchsrht;
   gitsrht = toPythonApplication gitsrht;
   hgsrht = toPythonApplication hgsrht;
+  hubsrht = toPythonApplication hubsrht;
   listssrht = toPythonApplication listssrht;
   mansrht = toPythonApplication mansrht;
   metasrht = toPythonApplication metasrht;
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix
index 1531a6e69b56..fa557ce78aa2 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/dispatch.nix
@@ -4,18 +4,14 @@
 
 buildPythonPackage rec {
   pname = "dispatchsrht";
-  version = "0.14.1";
+  version = "0.14.9";
 
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/dispatch.sr.ht";
     rev = version;
-    sha256 = "0h3nn73qvxspqv0myiss0y5i8jynh2rh9m57awy89vv6rwgai7vq";
+    sha256 = "JUffuJTKY4I8CrJc8tJWL+CbJCZtiqtUSO9SgYoeux0=";
   };
 
-  patches = [
-    ./use-srht-path.patch
-  ];
-
   nativeBuildInputs = srht.nativeBuildInputs;
 
   propagatedBuildInputs = [
@@ -26,7 +22,6 @@ buildPythonPackage rec {
 
   preBuild = ''
     export PKGVER=${version}
-    export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix
index 992b889c831c..838a997031c0 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/git.nix
@@ -4,53 +4,47 @@
 , srht, minio, pygit2, scmsrht }:
 
 let
-  version = "0.50.3";
+  version = "0.60.7";
 
   buildShell = src: buildGoModule {
     inherit src version;
     pname = "gitsrht-shell";
-    goPackagePath = "git.sr.ht/~sircmpwn/git.sr.ht/gitsrht-shell";
-
-  vendorSha256 = "1zvbqn4r940mibn4h1cqz94gbr476scm281ps361n0rfqlimw8g5";
+    vendorSha256 = "1abyv2s5l3bs0iylpgyj3jri2hh1iy8fiadxm7g6l2vl58h0b9ba";
   };
 
   buildDispatcher = src: buildGoModule {
     inherit src version;
     pname = "gitsrht-dispatcher";
-    goPackagePath = "git.sr.ht/~sircmpwn/git.sr.ht/gitsrht-dispatch";
-
-  vendorSha256 = "1lzkf13m54pq0gnn3bcxc80nfg76hgck4l8q8jpaicrsiwgcyrd9";
+    vendorSha256 = "1lzkf13m54pq0gnn3bcxc80nfg76hgck4l8q8jpaicrsiwgcyrd9";
   };
 
   buildKeys = src: buildGoModule {
     inherit src version;
     pname = "gitsrht-keys";
-    goPackagePath = "git.sr.ht/~sircmpwn/git.sr.ht/gitsrht-keys";
-
-  vendorSha256 = "16j7kpar318s4766pln8xn6d51xqblwig5n1jywhj0sl80qjl5cv";
+    vendorSha256 = "0lks3js57bb41x1ry5xfadlzf0v2gm68g7h3j94gzlm6j4jfprk9";
   };
 
   buildUpdateHook = src: buildGoModule {
     inherit src version;
     pname = "gitsrht-update-hook";
-    goPackagePath = "git.sr.ht/~sircmpwn/git.sr.ht/gitsrht-update-hook";
+    vendorSha256 = "06ykh9ncamd922xsd329jpn293wsq6vkqnlf3sckjlp2hm290pd8";
+  };
 
-  vendorSha256 = "1rmv3p60g6w4h4v9wx99jkyx0q02snslyjrjy9n1flardjs01b63";
+  buildAPI = src: buildGoModule {
+    inherit src version;
+    pname = "gitsrht-api";
+    vendorSha256 = "0d6kmsbsgj2q5nddx4w675zbsiarffj9vqplwvqk7dwz4id2wnif";
   };
 in buildPythonPackage rec {
-  inherit version;
   pname = "gitsrht";
+  inherit version;
 
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/git.sr.ht";
     rev = version;
-    sha256 = "0rxsr8cizac5xv8bgx2s1p2q4n8i5s51p9qbqdjad9z1xmwi6rvn";
+    sha256 = "EdxgT6IQZgj3KeU3UC+QAQb7BilBY769NhJK633tmE4=";
   };
 
-  patches = [
-    ./use-srht-path.patch
-  ];
-
   nativeBuildInputs = srht.nativeBuildInputs;
 
   propagatedBuildInputs = [
@@ -62,7 +56,6 @@ in buildPythonPackage rec {
 
   preBuild = ''
     export PKGVER=${version}
-    export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
   postInstall = ''
@@ -71,6 +64,7 @@ in buildPythonPackage rec {
     cp ${buildDispatcher "${src}/gitsrht-dispatch"}/bin/gitsrht-dispatch $out/bin/gitsrht-dispatch
     cp ${buildKeys "${src}/gitsrht-keys"}/bin/gitsrht-keys $out/bin/gitsrht-keys
     cp ${buildUpdateHook "${src}/gitsrht-update-hook"}/bin/gitsrht-update-hook $out/bin/gitsrht-update-hook
+    cp ${buildAPI "${src}/api"}/bin/api $out/bin/gitsrht-api
   '';
 
   meta = with stdenv.lib; {
@@ -79,4 +73,4 @@ in buildPythonPackage rec {
     license = licenses.agpl3;
     maintainers = with maintainers; [ eadwu ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix
index bddc065eacfd..841cec581a57 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/hg.nix
@@ -4,18 +4,14 @@
 
 buildPythonPackage rec {
   pname = "hgsrht";
-  version = "0.26.0";
+  version = "0.26.18";
 
   src = fetchhg {
     url = "https://hg.sr.ht/~sircmpwn/hg.sr.ht";
     rev = version;
-    sha256 = "06sgd7pzjabwv66i4v5abqdnx955lqgjmbxxqkhhyq9k45jhlzci";
+    sha256 = "j+7yG6WdWoU0Uk6doz9GpKZsEGXy/n2smgU6c56/A+Q=";
   };
 
-  patches = [
-    ./use-srht-path.patch
-  ];
-
   nativeBuildInputs = srht.nativeBuildInputs;
 
   propagatedBuildInputs = [
@@ -27,7 +23,6 @@ buildPythonPackage rec {
 
   preBuild = ''
     export PKGVER=${version}
-    export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix
new file mode 100644
index 000000000000..0b671940ec05
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/hub.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchgit, buildPythonPackage
+, python
+, srht }:
+
+buildPythonPackage rec {
+  pname = "hubsrht";
+  version = "0.10.6";
+
+  src = fetchgit {
+    url = "https://git.sr.ht/~sircmpwn/hub.sr.ht";
+    rev = version;
+    sha256 = "N54GOk9pxwoF1Wv0ZSe4kIAPBLl/zHrSu8OlKBkacVg=";
+  };
+
+  nativeBuildInputs = srht.nativeBuildInputs;
+
+  propagatedBuildInputs = [
+    srht
+  ];
+
+  preBuild = ''
+    export PKGVER=${version}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://git.sr.ht/~sircmpwn/hub.sr.ht";
+    description = "Project hub service for the sr.ht network";
+    license = licenses.agpl3;
+    maintainers = with maintainers; [ eadwu ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix
index b1446bbebc8a..7037688f92ef 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/lists.nix
@@ -4,18 +4,14 @@
 
 buildPythonPackage rec {
   pname = "listssrht";
-  version = "0.41.8";
+  version = "0.45.9";
 
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/lists.sr.ht";
     rev = version;
-    sha256 = "0x49i1fdgi4nawnl362hp4d9ki5phh221zr1lxhidjm9vfv7lsqs";
+    sha256 = "2Wb1hBx4GuRvVC0pD7gpE9dj5ketW/4ozxuVq2X5dDM=";
   };
 
-  patches = [
-    ./use-srht-path.patch
-  ];
-
   nativeBuildInputs = srht.nativeBuildInputs;
 
   propagatedBuildInputs = [
@@ -28,7 +24,6 @@ buildPythonPackage rec {
 
   preBuild = ''
     export PKGVER=${version}
-    export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix
index 9b8e5901d9ef..7fdf42a52e73 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/man.nix
@@ -4,18 +4,14 @@
 
 buildPythonPackage rec {
   pname = "mansrht";
-  version = "0.14.7";
+  version = "0.15.1";
 
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/man.sr.ht";
     rev = version;
-    sha256 = "1ys9186lbxhbg5ms9sxjk3va5qwjrsd4nzrz6zx50gzng9axd988";
+    sha256 = "hCpuVngpu2AacFGn0F78k2qrn09Z/p1rP8vfW7gkzWc=";
   };
 
-  patches = [
-    ./use-srht-path.patch
-  ];
-
   nativeBuildInputs = srht.nativeBuildInputs;
 
   propagatedBuildInputs = [
@@ -25,7 +21,6 @@ buildPythonPackage rec {
 
   preBuild = ''
     export PKGVER=${version}
-    export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix
index e2d155e1a066..9d2f71eaebeb 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/meta.nix
@@ -1,16 +1,26 @@
 { stdenv, fetchgit, buildPythonPackage
 , python
+, buildGoModule
 , pgpy, srht, redis, bcrypt, qrcode, stripe, zxcvbn, alembic, pystache
 , sshpubkeys, weasyprint }:
 
-buildPythonPackage rec {
+let
+  version = "0.50.2";
+
+  buildAPI = src: buildGoModule {
+    inherit src version;
+    pname = "metasrht-api";
+
+    vendorSha256 = "0k7i7j604wqvzjavmcsw7g2x059jkkgrgz1qyvzlqc0y4ws59xkq";
+  };
+in buildPythonPackage rec {
   pname = "metasrht";
-  version = "0.42.13";
+  inherit version;
 
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/meta.sr.ht";
     rev = version;
-    sha256 = "0bnrhk4w35w9dndihfqki66vyk123my98p4jqic4ypxcyffs1dd7";
+    sha256 = "utS/HMFtHPAP1QRYd4WAFApyBPRY5UD72ANmC/SU93c=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
@@ -29,13 +39,13 @@ buildPythonPackage rec {
     weasyprint
   ];
 
-  patches = [
-    ./use-srht-path.patch
-  ];
-
   preBuild = ''
     export PKGVER=${version}
-    export SRHT_PATH=${srht}/${python.sitePackages}/srht
+  '';
+
+  postInstall = ''
+    mkdir -p $out/bin
+    cp ${buildAPI "${src}/api"}/bin/api $out/bin/metasrht-api
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix
index 26650156c5cd..15d9839ea37d 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/paste.nix
@@ -4,18 +4,14 @@
 
 buildPythonPackage rec {
   pname = "pastesrht";
-  version = "0.10.3";
+  version = "0.11.1";
 
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/paste.sr.ht";
     rev = version;
-    sha256 = "0sbs591ackrml09jmml4jspnbbqxqdmqy1c1j2rrvms6jcpkhlwb";
+    sha256 = "vk+h9gQX9KeynjulDaK/vHpKeRQAjVyxk7ttKG27ZIo=";
   };
 
-  patches = [
-    ./use-srht-path.patch
-  ];
-
   nativeBuildInputs = srht.nativeBuildInputs;
 
   propagatedBuildInputs = [
@@ -25,7 +21,6 @@ buildPythonPackage rec {
 
   preBuild = ''
     export PKGVER=${version}
-    export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/scm.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/scm.nix
index 788c90e4872a..7c6ed02c9ffc 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/scm.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/scm.nix
@@ -4,12 +4,12 @@
 
 buildPythonPackage rec {
   pname = "scmsrht";
-  version = "0.19.11";
+  version = "0.22.3";
 
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/scm.sr.ht";
     rev = version;
-    sha256 = "0wqqqfp8f0gq0jqz3ac6kfkax2bw7yp8wznvsdw8mpmzqdjlhhkb";
+    sha256 = "MwgWDYGqOuci55gUFAiKnUfUWgLvQVP5omAMNv/2gPY=";
   };
 
   nativeBuildInputs = srht.nativeBuildInputs;
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix b/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix
index 53cd8756ad3b..7eaa6776560a 100644
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/todo.nix
@@ -5,18 +5,14 @@
 
 buildPythonPackage rec {
   pname = "todosrht";
-  version = "0.57.14";
+  version = "0.61.11";
 
   src = fetchgit {
     url = "https://git.sr.ht/~sircmpwn/todo.sr.ht";
     rev = version;
-    sha256 = "15x78rl0zh1rw0izc36k47b27l75k7iyina5ajm3mgkslpndym4y";
+    sha256 = "lUM81FYlR6AXCtXZtYiB+1FD8E1aOX7qxbWUVc36lJM=";
   };
 
-  patches = [
-    ./use-srht-path.patch
-  ];
-
   nativeBuildInputs = srht.nativeBuildInputs;
 
   propagatedBuildInputs = [
@@ -28,7 +24,6 @@ buildPythonPackage rec {
 
   preBuild = ''
     export PKGVER=${version}
-    export SRHT_PATH=${srht}/${python.sitePackages}/srht
   '';
 
   # pytest tests fail
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/update.sh b/nixpkgs/pkgs/applications/version-management/sourcehut/update.sh
index fdc0639c4c6e..156d4cc35e44 100755
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/update.sh
+++ b/nixpkgs/pkgs/applications/version-management/sourcehut/update.sh
@@ -40,8 +40,8 @@ update_version() {
   git commit -m "$1: $version_old -> $version"
 }
 
-services=( "srht" "buildsrht" "dispatchsrht" "gitsrht" "hgsrht" "listssrht" "mansrht" "metasrht"
-           "pastesrht" "todosrht" "scmsrht" )
+services=( "srht" "buildsrht" "dispatchsrht" "gitsrht" "hgsrht" "hubsrht" "listssrht" "mansrht"
+           "metasrht" "pastesrht" "todosrht" "scmsrht" )
 
 # Whether or not a specific service is requested
 if [ -n "$1" ]; then
diff --git a/nixpkgs/pkgs/applications/version-management/sourcehut/use-srht-path.patch b/nixpkgs/pkgs/applications/version-management/sourcehut/use-srht-path.patch
deleted file mode 100644
index 43b494bf9d21..000000000000
--- a/nixpkgs/pkgs/applications/version-management/sourcehut/use-srht-path.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-diff --git a/setup.py b/setup.py
-index e6ecfb6..89fa92a 100755
---- a/setup.py
-+++ b/setup.py
-@@ -5,28 +5,16 @@ import os
- import site
- import sys
- 
--if hasattr(site, 'getsitepackages'):
--    pkg_dirs = site.getsitepackages()
--    if site.getusersitepackages():
--        pkg_dirs.append(site.getusersitepackages())
--    for pkg_dir in pkg_dirs:
--        srht_path = os.path.join(pkg_dir, "srht")
--        if os.path.isdir(srht_path):
--            break
--    else:
--        raise Exception("Can't find core srht module in your site packages "
--            "directories. Please install it first.")
--else:
--    srht_path = os.getenv("SRHT_PATH")
--    if not srht_path:
--        raise Exception("You're running inside a virtual environment. "
--            "Due to virtualenv limitations, you need to set the "
--            "$SRHT_PATH environment variable to the path of the "
--            "core srht module.")
--    elif not os.path.isdir(srht_path):
--        raise Exception(
--            "The $SRHT_PATH environment variable points to an invalid "
--            "directory: {}".format(srht_path))
-+srht_path = os.getenv("SRHT_PATH")
-+if not srht_path:
-+    raise Exception("You're running inside a virtual environment. "
-+        "Due to virtualenv limitations, you need to set the "
-+        "$SRHT_PATH environment variable to the path of the "
-+        "core srht module.")
-+elif not os.path.isdir(srht_path):
-+    raise Exception(
-+        "The $SRHT_PATH environment variable points to an invalid "
-+        "directory: {}".format(srht_path))
- 
- subp = subprocess.run(["make", "SRHT_PATH=" + srht_path])
- if subp.returncode != 0:
diff --git a/nixpkgs/pkgs/applications/version-management/sparkleshare/default.nix b/nixpkgs/pkgs/applications/version-management/sparkleshare/default.nix
new file mode 100644
index 000000000000..ef61d518a1ec
--- /dev/null
+++ b/nixpkgs/pkgs/applications/version-management/sparkleshare/default.nix
@@ -0,0 +1,89 @@
+{
+  appindicator-sharp,
+  coreutils,
+  fetchFromGitHub,
+  git,
+  git-lfs,
+  glib,
+  gtk-sharp-3_0,
+  lib,
+  makeWrapper,
+  meson,
+  mono,
+  ninja,
+  notify-sharp,
+  openssh,
+  openssl,
+  pkg-config,
+  stdenv,
+  symlinkJoin,
+  webkit2-sharp,
+  xdg_utils,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sparkleshare";
+  version = "3.28";
+
+  src = fetchFromGitHub {
+    owner = "hbons";
+    repo = "SparkleShare";
+    rev = version;
+    sha256 = "sha256:1x5nv2f3mrsr4a336bz5kc2lzkzilfh43bxy2yqhhjp2dgb20497";
+  };
+
+  nativeBuildInputs = [
+    makeWrapper
+    meson
+    mono
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    appindicator-sharp
+    gtk-sharp-3_0
+    notify-sharp
+    webkit2-sharp
+  ];
+
+  patchPhase = ''
+    # Nix will manage the icon cache.
+    echo '#!/bin/sh' >scripts/post-install.sh
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/sparkleshare \
+        --set PATH ${symlinkJoin {
+          name = "mono-path";
+          paths = [
+            coreutils
+            git
+            git-lfs
+            glib
+            mono
+            openssh
+            openssl
+            xdg_utils
+          ];
+        }}/bin \
+        --set MONO_GAC_PREFIX ${lib.concatStringsSep ":" [
+          appindicator-sharp
+          gtk-sharp-3_0
+          webkit2-sharp
+        ]} \
+        --set LD_LIBRARY_PATH ${lib.makeLibraryPath [
+          appindicator-sharp
+          gtk-sharp-3_0.gtk3
+          webkit2-sharp
+          webkit2-sharp.webkitgtk
+        ]}
+  '';
+
+  meta = {
+    description = "Share and collaborate by syncing with any Git repository instantly. Linux, macOS, and Windows.";
+    homepage = "https://sparkleshare.org";
+    license = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [ kevincox ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/version-management/sublime-merge/common.nix b/nixpkgs/pkgs/applications/version-management/sublime-merge/common.nix
index f20ebbeae3f9..ad540c46411d 100644
--- a/nixpkgs/pkgs/applications/version-management/sublime-merge/common.nix
+++ b/nixpkgs/pkgs/applications/version-management/sublime-merge/common.nix
@@ -67,6 +67,16 @@ in let
         --set NIX_REDIRECTS ${builtins.concatStringsSep ":" redirects} \
         --set LOCALE_ARCHIVE "${glibcLocales.out}/lib/locale/locale-archive" \
         "''${gappsWrapperArgs[@]}"
+
+      # We need to replace the ssh-askpass-sublime executable because the default one
+      # will not function properly, in order to work it needs to pass an argv[0] to
+      # the sublime_merge binary, and the built-in version will will try to call the
+      # sublime_merge wrapper script which cannot pass through the original argv[0] to
+      # the sublime_merge binary. Thankfully the ssh-askpass-sublime functionality is
+      # very simple and can be replaced with a simple wrapper script.
+      rm $out/ssh-askpass-sublime
+      makeWrapper $out/.${primaryBinary}-wrapped $out/ssh-askpass-sublime \
+        --argv0 "/ssh-askpass-sublime"
     '';
   };
 in stdenv.mkDerivation (rec {
diff --git a/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix b/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix
index a8fb944319cc..d5713ea23451 100644
--- a/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/sublime-merge/default.nix
@@ -4,13 +4,13 @@ let
   common = opts: callPackage (import ./common.nix opts);
 in {
   sublime-merge = common {
-    buildVersion = "2020";
-    sha256 = "0r5qqappaiicc4srk08az2vx42m7b6a75yn2ji5pv4w4085hlrzp";
+    buildVersion = "2032";
+    sha256 = "b782c768383893ba7803c2cffd428b09bec46be8a65e61a5f17964bdcc2aaf7c";
   } {};
 
   sublime-merge-dev = common {
-    buildVersion = "2011";
-    sha256 = "0r5qqappaiicc4srk08az2vx42m7b6a75yn2ji5pv4w4085hlrzp";
+    buildVersion = "2033";
+    sha256 = "ab937a393eb6ae776a81b30ec5a589ae37763885ba8a91680d5c43e19a01a8fa";
     dev = true;
   } {};
 }
diff --git a/nixpkgs/pkgs/applications/version-management/yadm/default.nix b/nixpkgs/pkgs/applications/version-management/yadm/default.nix
index fab89d663fa7..37fd8055662d 100644
--- a/nixpkgs/pkgs/applications/version-management/yadm/default.nix
+++ b/nixpkgs/pkgs/applications/version-management/yadm/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, git, gnupg }:
 
-let version = "2.4.0"; in
+let version = "2.5.0"; in
 stdenv.mkDerivation {
   pname = "yadm";
   inherit version;
@@ -11,7 +11,7 @@ stdenv.mkDerivation {
     owner  = "TheLocehiliosan";
     repo   = "yadm";
     rev    = version;
-    sha256 = "0kpahznrkxkyj92vrhwjvldg2affi1askgwvpgbs4mg40f92szlp";
+    sha256 = "128qlx8mp7h5ifapqqgsj3fwghn3q6x6ya0y33h5r7gnassd3njr";
   };
 
   dontConfigure = true;
diff --git a/nixpkgs/pkgs/applications/video/aegisub/default.nix b/nixpkgs/pkgs/applications/video/aegisub/default.nix
index 64c7dc20f355..54dac5c2aa1c 100644
--- a/nixpkgs/pkgs/applications/video/aegisub/default.nix
+++ b/nixpkgs/pkgs/applications/video/aegisub/default.nix
@@ -68,6 +68,12 @@ stdenv.mkDerivation
       url = "https://github.com/Aegisub/Aegisub/commit/c3c446a8d6abc5127c9432387f50c5ad50012561.patch";
       sha256 = "1n8wmjka480j43b1pr30i665z8hdy6n3wdiz1ls81wyv7ai5yygf";
     })
+
+    # Compatbility with make 4.3
+    (fetchpatch {
+      url = "https://github.com/Aegisub/Aegisub/commit/6bd3f4c26b8fc1f76a8b797fcee11e7611d59a39.patch";
+      sha256 = "1s9cc5rikrqb9ivjbag4b8yxcyjsmmmw744394d5xq8xi4k12vxc";
+    })
   ];
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/video/avidemux/default.nix b/nixpkgs/pkgs/applications/video/avidemux/default.nix
index 9374d2dbc790..2dd6b12c14f8 100644
--- a/nixpkgs/pkgs/applications/video/avidemux/default.nix
+++ b/nixpkgs/pkgs/applications/video/avidemux/default.nix
@@ -25,11 +25,11 @@ assert !withQT -> default != "qt5";
 
 stdenv.mkDerivation rec {
   pname = "avidemux";
-  version = "2.7.4";
+  version = "2.7.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/avidemux/avidemux/${version}/avidemux_${version}.tar.gz";
-    sha256 = "1acdb3m37vdzzbm8mwyibcn8msi7birb5v30qfi7jli5r00src3x";
+    sha256 = "1kwkn976ppahrcr74bnv6sqx75pzl9y21m1mvr5ksi1m6lgp924s";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/applications/video/catt/default.nix b/nixpkgs/pkgs/applications/video/catt/default.nix
index 7f2b85511518..d22657d651cb 100644
--- a/nixpkgs/pkgs/applications/video/catt/default.nix
+++ b/nixpkgs/pkgs/applications/video/catt/default.nix
@@ -1,12 +1,19 @@
-{ buildPythonApplication, fetchPypi, lib
-, youtube-dl
-, PyChromecast
-, click
-, ifaddr
-, requests
-}:
+{ lib, python3 }:
 
-buildPythonApplication rec {
+let
+  py = python3.override {
+    packageOverrides = self: super: {
+      PyChromecast = super.PyChromecast.overridePythonAttrs (oldAttrs: rec {
+        version = "6.0.0";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "05f8r3b2pdqbl76hwi5sv2xdi1r7g9lgm69x8ja5g22mn7ysmghm";
+        };
+      });
+    };
+  };
+
+in with py.pkgs; buildPythonApplication rec {
   pname = "catt";
   version = "0.11.0";
 
diff --git a/nixpkgs/pkgs/applications/video/celluloid/default.nix b/nixpkgs/pkgs/applications/video/celluloid/default.nix
index 208cbb7f4e6a..ca9ecb48188c 100644
--- a/nixpkgs/pkgs/applications/video/celluloid/default.nix
+++ b/nixpkgs/pkgs/applications/video/celluloid/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , python3
@@ -16,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "celluloid";
-  version = "0.19";
+  version = "0.20";
 
   src = fetchFromGitHub {
     owner = "celluloid-player";
     repo = "celluloid";
     rev = "v${version}";
-    sha256 = "1jdmwljckajqb3ys8azd1nyy49nvq9kb2knrrqdcfnvzq0m5lpqr";
+    hash = "sha256-fEZnH8EqU6CykgKINXnKChuBUlisroa97B1vjcx2cWA=";
   };
 
   nativeBuildInputs = [
@@ -49,6 +50,12 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "Simple GTK frontend for the mpv video player";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/video/clipgrab/default.nix b/nixpkgs/pkgs/applications/video/clipgrab/default.nix
index fc752f1bd1fd..f8b74a175474 100644
--- a/nixpkgs/pkgs/applications/video/clipgrab/default.nix
+++ b/nixpkgs/pkgs/applications/video/clipgrab/default.nix
@@ -5,10 +5,10 @@
 
 mkDerivation rec {
   pname = "clipgrab";
-  version = "3.8.11";
+  version = "3.8.14";
 
   src = fetchurl {
-    sha256 = "0jpfdmyzjasq4x1xvk7b1cmhhq6fz6ydvvbwz2wclph367x496xk";
+    sha256 = "19337qjxwlkpdnnh6q0y4b8askk17a8zb88gifznllrk06a6pgyf";
     # The .tar.bz2 "Download" link is a binary blob, the source is the .tar.gz!
     url = "https://download.clipgrab.org/${pname}-${version}.tar.gz";
   };
diff --git a/nixpkgs/pkgs/applications/video/dvdbackup/default.nix b/nixpkgs/pkgs/applications/video/dvdbackup/default.nix
index e129031fd49c..633eea3d282a 100644
--- a/nixpkgs/pkgs/applications/video/dvdbackup/default.nix
+++ b/nixpkgs/pkgs/applications/video/dvdbackup/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libdvdread, libdvdcss, dvdauthor }:
+{ stdenv, fetchurl, fetchpatch, libdvdread, libdvdcss, dvdauthor }:
 
 stdenv.mkDerivation rec {
   version = "0.4.2";
@@ -11,6 +11,13 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ libdvdread libdvdcss dvdauthor ];
 
+  # see https://bugs.launchpad.net/dvdbackup/+bug/1869226
+  patchFlags = [ "-p0" ];
+  patches = [ (fetchpatch {
+    url = "https://git.slackbuilds.org/slackbuilds/plain/multimedia/dvdbackup/patches/dvdbackup-dvdread-6.1.patch";
+    sha256 = "1v3xl01bwq1592i5x5dyh95r0mmm1zvvwf92fgjc0smr0k3davfz";
+  })];
+
   meta = {
     description = "A tool to rip video DVDs from the command line";
     homepage = "http://dvdbackup.sourceforge.net/";
diff --git a/nixpkgs/pkgs/applications/video/electronplayer/electronplayer.nix b/nixpkgs/pkgs/applications/video/electronplayer/electronplayer.nix
new file mode 100644
index 000000000000..577c85c6b27c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/electronplayer/electronplayer.nix
@@ -0,0 +1,33 @@
+{ appimageTools, stdenv, fetchurl }:
+let
+  pname = "electronplayer";
+  version = "2.0.8";
+  name = "${pname}-${version}";
+
+  #TODO: remove the -rc4 from the tag in the url when possible
+  src = fetchurl {
+    url = "https://github.com/oscartbeaumont/ElectronPlayer/releases/download/v${version}-rc4/${name}.AppImage";
+    sha256 = "wAsmSFdbRPnYnDyWQSbtyj+GLJLN7ibksUE7cegfkhI=";
+  };
+
+  appimageContents = appimageTools.extractType2 { inherit name src; };
+in appimageTools.wrapType2 {
+  inherit name src;
+
+  extraInstallCommands = ''
+    mv $out/bin/${name} $out/bin/${pname}
+
+    install -m 444 -D ${appimageContents}/${pname}.desktop $out/share/applications/${pname}.desktop
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'Exec=AppRun' 'Exec=ElectronPlayer'
+    cp -r ${appimageContents}/usr/share/icons $out/share
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An electron based web video services player";
+    homepage = "https://github.com/oscartbeaumont/ElectronPlayer";
+    license = licenses.mit;
+    maintainers = with maintainers; [ extends ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/epgstation/default.nix b/nixpkgs/pkgs/applications/video/epgstation/default.nix
new file mode 100644
index 000000000000..e57f46c8c6ad
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/epgstation/default.nix
@@ -0,0 +1,85 @@
+{ stdenv, fetchFromGitHub, makeWrapper, bash, nodejs, nodePackages, gzip }:
+
+let
+  workaround-opencollective-buildfailures = stdenv.mkDerivation {
+    # FIXME: This should be removed when a complete fix is available
+    # https://github.com/svanderburg/node2nix/issues/145
+    name = "workaround-opencollective-buildfailures";
+    phases = [ "installPhase" ];
+    installPhase = ''
+      mkdir -p $out/bin
+      touch $out/bin/opencollective-postinstall
+      chmod +x $out/bin/opencollective-postinstall
+    '';
+  };
+in
+nodePackages.epgstation.override (drv: {
+  src = fetchFromGitHub {
+    owner = "l3tnun";
+    repo = "EPGStation";
+    rev = "v${drv.version}"; # version specified in ./generate.sh
+    sha256 = "15z1kdbamj97frp3dfnbm0h8krihmv2xdab4id0rxin29ibrw1k2";
+  };
+
+  buildInputs = [ bash ];
+  nativeBuildInputs = [
+    workaround-opencollective-buildfailures
+    makeWrapper
+    nodePackages.node-pre-gyp
+  ];
+
+  preRebuild = ''
+    # Fix for not being able to connect to mysql using domain sockets.
+    patch -p1 ${./use-mysql-over-domain-socket.patch}
+  '';
+
+  postInstall = let
+    runtimeDeps = [ nodejs bash ];
+  in
+  ''
+    mkdir -p $out/{bin,libexec,share/doc/epgstation,share/man/man1}
+
+    pushd $out/lib/node_modules/EPGStation
+
+    npm run build
+    npm prune --production
+
+    mv config/{enc.sh,enc.js} $out/libexec
+    mv LICENSE Readme.md $out/share/doc/epgstation
+    mv doc/* $out/share/doc/epgstation
+    sed 's/@DESCRIPTION@/${drv.meta.description}/g' ${./epgstation.1} \
+      | ${gzip}/bin/gzip > $out/share/man/man1/epgstation.1.gz
+    rm -rf doc
+
+    # just log to stdout and let journald do its job
+    rm -rf logs
+
+    # Replace the existing configuration and runtime state directories with
+    # symlinks. Without this, they would all be non-writable because they reside
+    # in the Nix store. Note that the source path won't be accessible at build
+    # time.
+    rm -r config data recorded thumbnail
+    ln -sfT /etc/epgstation config
+    ln -sfT /var/lib/epgstation data
+    ln -sfT /var/lib/epgstation/recorded recorded
+    ln -sfT /var/lib/epgstation/thumbnail thumbnail
+
+    makeWrapper ${nodejs}/bin/npm $out/bin/epgstation \
+     --run "cd $out/lib/node_modules/EPGStation" \
+     --prefix PATH : ${stdenv.lib.makeBinPath runtimeDeps}
+
+    popd
+  '';
+
+  meta = with stdenv.lib; drv.meta // {
+    maintainers = with maintainers; [ midchildan ];
+
+    # nodePackages.epgstation is a stub package to fetch npm dependencies and
+    # is marked as broken to prevent users from installing it directly. This
+    # technique ensures epgstation can share npm packages with the rest of
+    # nixpkgs while still allowing us to heavily customize the build. It also
+    # allows us to provide devDependencies for the epgstation build process
+    # without doing the same for all the other node packages.
+    broken = false;
+  };
+})
diff --git a/nixpkgs/pkgs/applications/video/epgstation/epgstation.1 b/nixpkgs/pkgs/applications/video/epgstation/epgstation.1
new file mode 100644
index 000000000000..bb5c02381378
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/epgstation/epgstation.1
@@ -0,0 +1,52 @@
+.Dd $Mdocdate$
+.Dt EPGSTATION 1
+.Os
+.Sh NAME
+.Nm epgstation
+.Nd @DESCRIPTION@
+.Sh SYNOPSIS
+.Nm
+.Bk -words
+.Op Ar command Op Ar args
+.Ek
+.Sh DESCRIPTION
+.Nm
+is a wrapper command for EPGStation provided by Nix. It's actually a thin
+wrapper around the
+.Xr npm 1
+command line tool which you can use to invoke npm commands from the EPGStation
+project directory. The command line arguments are simply passed as-is to
+.Xr npm 1 .
+.Pp
+On NixOS, it is strongly recommended that you enable the epgstation module
+instead of invoking this command directly to launch EPGStation. On other
+platforms, run
+.Pp
+.Dl $ epgstation start
+.Pp
+to start EPGStation.
+.Sh FILES
+.Bl -tag -width Ds -compact
+.It Pa /etc/epgstation/config.json
+.Nm
+configuration file.
+.El
+.Sh EXAMPLES
+Start EPGStation.
+.Pp
+.Dl $ epgstation start
+.Pp
+Start EPGStation in development mode.
+.Pp
+.Dl $ epgstation run dev-start
+.Pp
+Backup the EPGstation database.
+.Pp
+.Dl $ epgstation run backup /path/to/dst
+.Pp
+Restore the EPGstation database.
+.Pp
+.Dl $ epgstation run restore /path/to/src
+.Pp
+.Sh SEE ALSO
+.Xr npm 1
diff --git a/nixpkgs/pkgs/applications/video/epgstation/generate.sh b/nixpkgs/pkgs/applications/video/epgstation/generate.sh
new file mode 100755
index 000000000000..d193a015064c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/epgstation/generate.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+
+# Script to generate the Nix package definition for EPGStation. Run this script
+# when bumping the package version.
+
+VERSION="1.7.4"
+URL="https://raw.githubusercontent.com/l3tnun/EPGStation/v$VERSION/package.json"
+JQ_BIN="$(nix-build ../../../.. --no-out-link -A jq)/bin/jq"
+
+set -eu -o pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+main() {
+    # update package.json
+    curl -sSfL "$URL" \
+        | jq '. + {"dependencies": (.devDependencies + .dependencies)} | del(.devDependencies)' \
+        > package.json
+
+    # regenerate node packages to update the actual Nix package
+    pushd ../../../development/node-packages \
+        && ./generate.sh
+    popd
+
+    # generate default streaming settings for EPGStation
+    pushd ../../../../nixos/modules/services/video/epgstation \
+        && cat "$(./generate)" > streaming.json
+    popd
+}
+
+jq() {
+    "$JQ_BIN" "$@"
+}
+
+main "@"
diff --git a/nixpkgs/pkgs/applications/video/epgstation/package.json b/nixpkgs/pkgs/applications/video/epgstation/package.json
new file mode 100644
index 000000000000..96525ec809ec
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/epgstation/package.json
@@ -0,0 +1,101 @@
+{
+  "name": "EPGStation",
+  "version": "1.7.4",
+  "description": "DTV Software in Japan.",
+  "main": "dist/server/index.js",
+  "scripts": {
+    "start": "node dist/server/index.js",
+    "dev-start": "node dist/server/index.js --env development",
+    "clean": "gulp clean",
+    "build": "gulp build --max_old_space_size=768 --env production",
+    "dev-build": "gulp build --max_old_space_size=512 --env development",
+    "test": "echo \"Error: no test specified\" && exit 1",
+    "task": "gulp --max_old_space_size=512",
+    "install-win-service": "winser -i -a",
+    "uninstall-win-service": "winser -r -x",
+    "backup": "node dist/server/DBTools.js -m backup -o",
+    "restore": "node dist/server/DBTools.js -m restore -o",
+    "move-log": "node dist/server/LogFileMoveTools.js",
+    "convert-str": "node dist/server/ConvertDBStrTools.js"
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/l3tnun/EPGStation.git"
+  },
+  "author": "l3tnun",
+  "license": "MIT",
+  "bugs": {
+    "url": "https://github.com/l3tnun/EPGStation/issues"
+  },
+  "homepage": "https://github.com/l3tnun/EPGStation#readme",
+  "engines": {
+    "node": "^10.x.x < 11 || ^12.14.0 < 13 || ^14.5.0 < 15"
+  },
+  "dependencies": {
+    "@types/basic-auth": "1.1.3",
+    "@types/body-parser": "1.19.0",
+    "@types/chart.js": "2.9.23",
+    "@types/express": "4.17.7",
+    "@types/hls.js": "0.13.0",
+    "@types/js-yaml": "3.12.5",
+    "@types/lodash": "4.14.158",
+    "@types/material-design-lite": "1.1.16",
+    "@types/minimist": "1.2.0",
+    "@types/mithril": "2.0.3",
+    "@types/mkdirp": "1.0.1",
+    "@types/multer": "1.4.3",
+    "@types/mysql": "2.15.15",
+    "@types/node": "14.0.26",
+    "@types/pg": "7.14.4",
+    "@types/request": "2.48.5",
+    "@types/socket.io": "2.1.10",
+    "@types/socket.io-client": "1.4.33",
+    "@types/sqlite3": "3.1.6",
+    "@types/url-join": "4.0.0",
+    "del": "5.1.0",
+    "gulp": "4.0.2",
+    "gulp-clean-css": "4.3.0",
+    "gulp-concat": "2.6.1",
+    "gulp-dart-sass": "1.0.2",
+    "gulp-plumber": "1.2.1",
+    "gulp-sourcemaps": "2.6.5",
+    "gulp-tslint": "8.1.4",
+    "gulp-typescript": "5.0.1",
+    "terser-webpack-plugin": "3.0.7",
+    "ts-loader": "8.0.1",
+    "tslint": "6.1.2",
+    "typescript": "3.9.7",
+    "webpack": "4.44.0",
+    "webpack-stream": "5.2.1",
+    "aribts": "^2.1.12",
+    "b24.js": "1.0.3",
+    "basic-auth": "2.0.1",
+    "body-parser": "1.19.0",
+    "chart.js": "2.9.3",
+    "css-ripple-effect": "1.0.5",
+    "diskusage": "1.1.3",
+    "express": "4.17.1",
+    "express-openapi": "7.0.0",
+    "fs-extra": "9.0.1",
+    "hls-b24.js": "0.12.3",
+    "js-yaml": "3.14.0",
+    "lodash": "4.17.19",
+    "log4js": "6.3.0",
+    "material-design-icons": "3.0.1",
+    "material-design-lite": "1.3.0",
+    "minimist": "1.2.5",
+    "mirakurun": "3.2.0",
+    "mithril": "2.0.4",
+    "mkdirp": "1.0.4",
+    "multer": "1.4.2",
+    "mysql": "2.18.1",
+    "openapi-types": "7.0.0",
+    "pg": "8.3.0",
+    "request": "2.88.2",
+    "socket.io": "2.3.0",
+    "socket.io-client": "2.3.0",
+    "sqlite3": "5.0.0",
+    "swagger-ui-dist": "3.30.2",
+    "url-join": "4.0.1"
+  }
+}
diff --git a/nixpkgs/pkgs/applications/video/epgstation/use-mysql-over-domain-socket.patch b/nixpkgs/pkgs/applications/video/epgstation/use-mysql-over-domain-socket.patch
new file mode 100644
index 000000000000..48640f2ba08d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/epgstation/use-mysql-over-domain-socket.patch
@@ -0,0 +1,17 @@
+diff --git a/src/server/ConfigInterface.ts b/src/server/ConfigInterface.ts
+index d23badd..1dd2b98 100644
+--- a/src/server/ConfigInterface.ts
++++ b/src/server/ConfigInterface.ts
+@@ -11,9 +11,10 @@ interface ConfigInterface {
+     dbPath: string;
+     dbInfoPath: string;
+     mysql: {
+-        host: string;
++        host?: string;
++        socketPath?: string;
+         user: string;
+-        password: string;
++        password?: string;
+         database: string;
+         connectTimeout: number;
+         connectionLimit: number;
diff --git a/nixpkgs/pkgs/applications/video/filebot/default.nix b/nixpkgs/pkgs/applications/video/filebot/default.nix
new file mode 100644
index 000000000000..cdd70b4c8948
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/filebot/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, openjdk11, makeWrapper, autoPatchelfHook
+, zlib, libzen, libmediainfo, curl, libmms, glib
+}:
+
+let
+  # FileBot requires libcurl-gnutls.so to build
+  curlWithGnuTls = curl.override { gnutlsSupport = true; sslSupport = false; };
+
+in
+
+stdenv.mkDerivation rec {
+  pname = "filebot";
+  version = "4.9.1";
+
+  src = fetchurl {
+    url = "https://get.filebot.net/filebot/FileBot_${version}/FileBot_${version}-portable.tar.xz";
+    sha256 = "0l496cz703mjymjhgmyrkqbfld1bz53pdsbkx00h9a267j22fkms";
+  };
+
+  unpackPhase = "tar xvf $src";
+
+  nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
+
+  buildInputs = [ zlib libzen libmediainfo curlWithGnuTls libmms glib ];
+
+  dontBuild = true;
+  installPhase = ''
+    mkdir -p $out/opt $out/bin
+    # Since FileBot has dependencies on relative paths between files, all required files are copied to the same location as is.
+    cp -r filebot.sh lib/ jar/ $out/opt/
+    # Filebot writes to $APP_DATA, which fails due to read-only filesystem. Using current user .local directory instead.
+    substituteInPlace $out/opt/filebot.sh \
+      --replace 'APP_DATA="$FILEBOT_HOME/data/$USER"' 'APP_DATA=''${XDG_DATA_HOME:-$HOME/.local/share}/filebot/data' \
+      --replace '$FILEBOT_HOME/data/.license' '$APP_DATA/.license'
+    wrapProgram $out/opt/filebot.sh \
+      --prefix PATH : ${stdenv.lib.makeBinPath [ openjdk11 ]}
+    # Expose the binary in bin to make runnable.
+    ln -s $out/opt/filebot.sh $out/bin/filebot
+  '';
+
+  meta = with stdenv.lib; {
+    description = "The ultimate TV and Movie Renamer";
+    longDescription = ''
+      FileBot is the ultimate tool for organizing and renaming your Movies, TV
+      Shows and Anime as well as fetching subtitles and artwork. It's smart and
+      just works.
+    '';
+    homepage = "https://filebot.net";
+    changelog = "https://www.filebot.net/forums/viewforum.php?f=7";
+    license = licenses.unfreeRedistributable;
+    maintainers = with maintainers; [ gleber felschr ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/gpac/default.nix b/nixpkgs/pkgs/applications/video/gpac/default.nix
index e587a5999054..4fcff75f0956 100644
--- a/nixpkgs/pkgs/applications/video/gpac/default.nix
+++ b/nixpkgs/pkgs/applications/video/gpac/default.nix
@@ -1,16 +1,20 @@
 { stdenv, fetchFromGitHub, pkgconfig, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "0.8.0";
+  version = "1.0.0";
   pname = "gpac";
 
   src = fetchFromGitHub {
     owner = "gpac";
     repo = "gpac";
     rev = "v${version}";
-    sha256 = "1w1dyrn6900yi8ngchfzy5hvxr6yc60blvdq8y8mczimmmq8khb5";
+    sha256 = "11jrklaahhdfqhci7f3lzv8wchh9bc91rg6w8ibh6varrk692vsb";
   };
 
+  postPatch = ''
+    substituteInPlace Makefile --replace 'dh_link' 'ln -s'
+  '';
+
   # this is the bare minimum configuration, as I'm only interested in MP4Box
   # For most other functionality, this should probably be extended
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/video/hdhomerun-config-gui/default.nix b/nixpkgs/pkgs/applications/video/hdhomerun-config-gui/default.nix
new file mode 100644
index 000000000000..91feb178ca05
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/hdhomerun-config-gui/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, libhdhomerun, gcc, gnumake, pkg-config, gtk2 }:
+
+stdenv.mkDerivation rec {
+  pname = "hdhomerun-config-gui";
+  version = "20200521";
+
+  src = fetchurl {
+    url = "https://download.silicondust.com/hdhomerun/hdhomerun_config_gui_${version}.tgz";
+    sha256 = "1r1rwfgi714nwblyg8nqjzkpm4n2lg7kqqqas47hvbn5waimz1ja";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ gtk2 libhdhomerun ];
+
+  configureFlags = [ "CPPFLAGS=-I${libhdhomerun}/include/hdhomerun" ];
+  makeFlags = [ "SUBDIRS=src" ];
+
+  installPhase = ''
+    install -vDm 755 src/hdhomerun_config_gui $out/usr/bin/hdhomerun_config_gui
+  '';
+
+  meta = with stdenv.lib; {
+    description = "GUI for configuring Silicondust HDHomeRun TV tuners";
+    homepage = "https://www.silicondust.com/support/linux";
+    license = licenses.gpl3Only;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.louisdk1 ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/default.nix b/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/default.nix
index de9310740912..825aac4dad29 100644
--- a/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/default.nix
+++ b/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/default.nix
@@ -1,19 +1,27 @@
-{ stdenv, buildPythonApplication, fetchFromGitHub, fetchurl
+{ stdenv, buildPythonApplication, fetchFromGitHub, callPackage
 , mpv, python-mpv-jsonipc, jellyfin-apiclient-python
 , pillow, tkinter, pystray, jinja2, pywebview }:
 
+let
+  shaderPack = callPackage ./shader-pack.nix {};
+in
 buildPythonApplication rec {
   pname = "jellyfin-mpv-shim";
-  version = "1.4.2";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "iwalton3";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1cnii5wj0pgqg3dqk5cm6slpbs3730x8ippps4cjbsxcsrmqjpx6";
+    sha256 = "0alrh5h3f8pq9mrq09jmpqa0yslxsjqwij6kwn24ggbwc10zkq75";
     fetchSubmodules = true; # needed for display_mirror css file
   };
 
+  patches = [
+    ./disable-desktop-client.patch
+    ./disable-update-check.patch
+  ];
+
   # override $HOME directory:
   #   error: [Errno 13] Permission denied: '/homeless-shelter'
   #
@@ -25,6 +33,11 @@ buildPythonApplication rec {
     rm jellyfin_mpv_shim/win_utils.py
   '';
 
+  postPatch = ''
+    # link the default shader pack
+    ln -s ${shaderPack} jellyfin_mpv_shim/default_shader_pack
+  '';
+
   propagatedBuildInputs = [
     jellyfin-apiclient-python
     mpv
@@ -42,7 +55,7 @@ buildPythonApplication rec {
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/iwalton3/jellyfin-mpv-shim";
-    description = "Allows casting of videos to MPV via the jellyfin mobile and web app.";
+    description = "Allows casting of videos to MPV via the jellyfin mobile and web app";
     license = licenses.gpl3;
     maintainers = with maintainers; [ jojosch ];
   };
diff --git a/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch b/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch
new file mode 100644
index 000000000000..996225efb3a5
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch
@@ -0,0 +1,12 @@
+diff --git a/setup.py b/setup.py
+index a831959..2206e6e 100644
+--- a/setup.py
++++ b/setup.py
+@@ -25,7 +25,6 @@ setup(
+     entry_points={
+         'console_scripts': [
+             'jellyfin-mpv-shim=jellyfin_mpv_shim.mpv_shim:main',
+-            'jellyfin-mpv-desktop=jellyfin_mpv_shim.mpv_shim:main_desktop',
+         ]
+     },
+     classifiers=[
diff --git a/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch b/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch
new file mode 100644
index 000000000000..6941b956e854
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/disable-update-check.patch
@@ -0,0 +1,15 @@
+diff --git a/jellyfin_mpv_shim/conf.py b/jellyfin_mpv_shim/conf.py
+index 0ab9326..ccedc17 100644
+--- a/jellyfin_mpv_shim/conf.py
++++ b/jellyfin_mpv_shim/conf.py
+@@ -88,8 +88,8 @@ class Settings(object):
+         "sync_revert_seek":     True,
+         "sync_osd_message":     True,
+         "screenshot_menu":      True,
+-        "check_updates":        True,
+-        "notify_updates":       True,
++        "check_updates":        False,
++        "notify_updates":       False,
+         "lang":                 None,
+         "desktop_scale":        1.0,
+     }
diff --git a/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix b/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix
new file mode 100644
index 000000000000..fd33e8c90b52
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/jellyfin-mpv-shim/shader-pack.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "jellyfin-mpv-shim-shader-pack";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "iwalton3";
+    repo = "default-shader-pack";
+    rev = "v${version}";
+    sha256 = "04y8gvjy4v3773b1kyan4dxqcf86b56x7v33m2k246jbn0rl2pgr";
+  };
+
+  installPhase = ''
+    mkdir -p $out
+    cp -a . $out
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/iwalton3/default-shader-pack";
+    description = "Preconfigured set of MPV shaders and configurations for MPV Shim media clients";
+    license = with licenses; [ mit lgpl3Plus unlicense ];
+    maintainers = with maintainers; [ jojosch ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/kodi/default.nix b/nixpkgs/pkgs/applications/video/kodi/default.nix
index 1ef3c9ee70f2..56788ae4f10e 100644
--- a/nixpkgs/pkgs/applications/video/kodi/default.nix
+++ b/nixpkgs/pkgs/applications/video/kodi/default.nix
@@ -44,15 +44,15 @@ assert vdpauSupport -> libvdpau != null;
 assert useWayland -> wayland != null && wayland-protocols != null && waylandpp != null && libxkbcommon != null;
 
 let
-  kodiReleaseDate = "20200301";
-  kodiVersion = "18.6";
+  kodiReleaseDate = "20200728";
+  kodiVersion = "18.8";
   rel = "Leia";
 
   kodi_src = fetchFromGitHub {
     owner  = "xbmc";
     repo   = "xbmc";
     rev    = "${kodiVersion}-${rel}";
-    sha256 = "0rwymipn5hljy5xrslzmrljmj6f9wb191wi7gjw20wl6sv44d0bk";
+    sha256 = "0qpkpz43s207msvv3qkiy6vzqwcgmydxv3py7vc29mv6h30chrva";
   };
 
   cmakeProto = fetchurl {
@@ -192,8 +192,8 @@ in stdenv.mkDerivation {
     ++ lib.optional  usbSupport      libusb-compat-0_1
     ++ lib.optional  vdpauSupport    libvdpau
     ++ lib.optionals useWayland [
-      wayland 
-      waylandpp.dev 
+      wayland
+      waylandpp.dev
       wayland-protocols
       # Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise
       libxkbcommon.dev
diff --git a/nixpkgs/pkgs/applications/video/lightworks/default.nix b/nixpkgs/pkgs/applications/video/lightworks/default.nix
index ae156574f5da..da413915e37e 100644
--- a/nixpkgs/pkgs/applications/video/lightworks/default.nix
+++ b/nixpkgs/pkgs/applications/video/lightworks/default.nix
@@ -47,7 +47,7 @@ let
       # This adds it to lightworks' search path while keeping the default
       # using the FONTCONFIG_FILE env variable
       echo "<?xml version='1.0'?>
-      <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
+      <!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
       <fontconfig>
           <dir>/usr/share/fonts/truetype</dir>
           <include>/etc/fonts/fonts.conf</include>
diff --git a/nixpkgs/pkgs/applications/video/makemkv/default.nix b/nixpkgs/pkgs/applications/video/makemkv/default.nix
index 56247b278260..d3cb12924c26 100644
--- a/nixpkgs/pkgs/applications/video/makemkv/default.nix
+++ b/nixpkgs/pkgs/applications/video/makemkv/default.nix
@@ -3,21 +3,21 @@
 }:
 
 let
-  version = "1.15.1";
+  version = "1.15.2";
   # Using two URLs as the first one will break as soon as a new version is released
   src_bin = fetchurl {
     urls = [
       "http://www.makemkv.com/download/makemkv-bin-${version}.tar.gz"
       "http://www.makemkv.com/download/old/makemkv-bin-${version}.tar.gz"
     ];
-    sha256 = "0c9661sdlld8b1g2pk8lbn3gz7cikh9bjqss11ffkriwii1x9fw0";
+    sha256 = "1dbips0qllbwhak44c50nlwn8n3kx8i6773cal5zl3dv4v2nf6ql";
   };
   src_oss = fetchurl {
     urls = [
       "http://www.makemkv.com/download/makemkv-oss-${version}.tar.gz"
       "http://www.makemkv.com/download/old/makemkv-oss-${version}.tar.gz"
     ];
-    sha256 = "0rm1zykqagy2g8hb7pjrc6akdsym8pgdnx66hnna161jbah3sssy";
+    sha256 = "1wnhzlz5fw6qwh82hjcpimg60xb3a9a54zb6gcjhqr9zdly2zphy";
   };
 in mkDerivation {
   pname = "makemkv";
@@ -55,6 +55,6 @@ in mkDerivation {
     license = licenses.unfree;
     homepage = "http://makemkv.com";
     platforms = [ "x86_64-linux" ];
-    maintainers = [ maintainers.titanous ];
+    maintainers = with maintainers; [ danieldk titanous ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/mapmap/default.nix b/nixpkgs/pkgs/applications/video/mapmap/default.nix
index 20ab4d750326..9d6ffbd439c4 100644
--- a/nixpkgs/pkgs/applications/video/mapmap/default.nix
+++ b/nixpkgs/pkgs/applications/video/mapmap/default.nix
@@ -12,14 +12,14 @@ with stdenv;
 
 mkDerivation rec {
 
-  version = "0.6.1";
+  version = "0.6.2";
   pname = "mapmap";
 
   src = fetchFromGitHub {
     owner = "mapmapteam";
     repo = "mapmap";
     rev = version;
-    sha256 = "15km6xmfkxhrflq4sl9m9r85zi4shrr4k5h15x17v7x0qkc3xgsh";
+    sha256 = "1pyb3vz19lbfz2hrfqm9a29vnajw1bigdrblbmcy32imkf4isfvm";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix b/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
index 68f3cac1bfac..fa68c58f5af1 100644
--- a/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/nixpkgs/pkgs/applications/video/mkvtoolnix/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitLab, pkgconfig, autoconf, automake, libiconv, drake
 , ruby, docbook_xsl, file, xdg_utils, gettext, expat, boost, libebml, zlib
-, fmt, libmatroska, libogg, libvorbis, flac, libxslt, cmark
+, fmt, libmatroska, libogg, libvorbis, flac, libxslt, cmark, pcre2
 , withGUI ? true
   , qtbase ? null
   , qtmultimedia ? null
@@ -13,13 +13,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "mkvtoolnix";
-  version = "47.0.0";
+  version = "50.0.0";
 
   src = fetchFromGitLab {
     owner  = "mbunkus";
     repo   = "mkvtoolnix";
     rev    = "release-${version}";
-    sha256 = "1s8y9khyfjg06mr7rmm26pk0b3nbkcrs56r29a9l57wbkqyl7qp9";
+    sha256 = "001i206lwxjyrp406svv4zpb1pliac3f4k5zhzgkjbk2dzj85pyd";
   };
 
   nativeBuildInputs = [
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     expat file xdg_utils boost libebml zlib fmt
-    libmatroska libogg libvorbis flac cmark
+    libmatroska libogg libvorbis flac cmark pcre2
   ] ++ optional  stdenv.isDarwin libiconv
     ++ optionals withGUI [ qtbase qtmultimedia wrapQtAppsHook ];
 
diff --git a/nixpkgs/pkgs/applications/video/molotov/default.nix b/nixpkgs/pkgs/applications/video/molotov/default.nix
new file mode 100644
index 000000000000..c4ee96cc2469
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/molotov/default.nix
@@ -0,0 +1,31 @@
+{ appimageTools, lib, fetchurl }:
+
+let
+  pname = "molotov";
+  version = "4.2.2";
+  name = "${pname}-${version}";
+  src = fetchurl {
+    url = "http://desktop-auto-upgrade.molotov.tv/linux/${version}/molotov.AppImage";
+    sha256 = "00p8srf4yswbihlsi3s7kfkav02h902yvrq99wys11is63n01x8z";
+  };
+  appimageContents = appimageTools.extractType2 { inherit name src; };
+in
+appimageTools.wrapType2 {
+  inherit name src;
+  extraInstallCommands = ''
+    mv $out/bin/${name} $out/bin/${pname}
+    install -m 444 -D \
+      ${appimageContents}/${pname}.desktop \
+      $out/share/applications/${pname}.desktop
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
+    cp -r ${appimageContents}/usr/share/icons $out/share
+  '';
+  meta = with lib; {
+    description = "French TV service";
+    homepage = "https://www.molotov.tv/";
+    license = with licenses; [ unfree ];
+    maintainers = with maintainers; [ apeyroux freezeboy ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/motion/default.nix b/nixpkgs/pkgs/applications/video/motion/default.nix
index 175958afb7e0..7f101c41edbd 100644
--- a/nixpkgs/pkgs/applications/video/motion/default.nix
+++ b/nixpkgs/pkgs/applications/video/motion/default.nix
@@ -1,25 +1,26 @@
 { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
-, ffmpeg_3, libjpeg, libmicrohttpd }:
+, ffmpeg, libjpeg, libmicrohttpd }:
 
 stdenv.mkDerivation rec {
   pname = "motion";
-  version = "4.3.0";
+  version = "4.3.1";
 
   src = fetchFromGitHub {
     owner  = "Motion-Project";
     repo   = "motion";
-    rev    = "Release-${version}";
-    sha256 = "08mm7ajgs0qnrydywxxyzcll09z80crjnjkjnckdi6ljsj6s96j8";
+    rev    = "release-${version}";
+    sha256 = "01yy4pdgd4wa97bpw27zn5zik9iz719m1jiwkk9lb7m2a2951dhc";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
 
-  buildInputs = [ ffmpeg_3 libjpeg libmicrohttpd ];
+  buildInputs = [ ffmpeg libjpeg libmicrohttpd ];
 
   meta = with stdenv.lib; {
     description = "Monitors the video signal from cameras";
     homepage = "https://motion-project.github.io/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ puffnfresh veprbl ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/mpv/default.nix b/nixpkgs/pkgs/applications/video/mpv/default.nix
index 697a468f8908..4b7d78303b2f 100644
--- a/nixpkgs/pkgs/applications/video/mpv/default.nix
+++ b/nixpkgs/pkgs/applications/video/mpv/default.nix
@@ -209,6 +209,7 @@ in stdenv.mkDerivation rec {
     mkdir -p $out/share/mpv
     ln -s ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mpv/subfont.ttf
 
+    cp TOOLS/mpv_identify.sh $out/bin
     cp TOOLS/umpv $out/bin
   '' + optionalString stdenv.isDarwin ''
     mkdir -p $out/Applications
diff --git a/nixpkgs/pkgs/applications/video/mpv/scripts/autoload.nix b/nixpkgs/pkgs/applications/video/mpv/scripts/autoload.nix
new file mode 100644
index 000000000000..f64e702f21cf
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/mpv/scripts/autoload.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchurl, mpv-unwrapped, lib }:
+
+stdenv.mkDerivation rec {
+  pname = "mpv-autoload";
+  version = mpv-unwrapped.version;
+  src = "${mpv-unwrapped.src.outPath}/TOOLS/lua/autoload.lua";
+  dontBuild = true;
+  dontUnpack = true;
+  installPhase = ''
+    install -Dm644 ${src} $out/share/mpv/scripts/autoload.lua
+  '';
+  passthru.scriptName = "autoload.lua";
+
+  meta = {
+    description = "This script automatically loads playlist entries before and after the the currently played file";
+    homepage = "https://github.com/mpv-player/mpv/blob/master/TOOLS/lua/autoload.lua";
+    maintainers = [ lib.maintainers.dawidsowa ];
+    license = lib.licenses.gpl2Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/mpv/scripts/sponsorblock.nix b/nixpkgs/pkgs/applications/video/mpv/scripts/sponsorblock.nix
new file mode 100644
index 000000000000..8213e514d2ba
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/mpv/scripts/sponsorblock.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, fetchpatch, python3 }:
+
+# Usage: `pkgs.mpv.override { scripts = [ pkgs.mpvScripts.sponsorblock ]; }`
+stdenv.mkDerivation {
+  pname = "mpv_sponsorblock";
+  version = "unstable-2020-07-05";
+
+  src = fetchFromGitHub {
+    owner = "po5";
+    repo = "mpv_sponsorblock";
+    rev = "f71e49e0531350339134502e095721fdc66eac20";
+    sha256 = "1fr4cagzs26ygxyk8dxqvjw4n85fzv6is6cb1jhr2qnsjg6pa0p8";
+  };
+
+  dontBuild = true;
+
+  patches = [
+    # Use XDG_DATA_HOME and XDG_CACHE_HOME if defined for UID and DB
+    # Necessary to avoid sponsorblock to write in the nix store at runtime.
+    # https://github.com/po5/mpv_sponsorblock/pull/17
+    (fetchpatch {
+      url = "https://github.com/po5/mpv_sponsorblock/pull/17/commits/e65b360a7d03a3430b4829e457a6670b2f617b09.patch";
+      sha256 = "00wv0pvbz0dz2ibka66zhl2jk0pil4pyv6ipjfz37i81q6szyhs5";
+    })
+    (fetchpatch {
+      url = "https://github.com/po5/mpv_sponsorblock/pull/17/commits/3832304d959205e99120a14c0560ed3c37104b08.patch";
+      sha256 = "149ffvn714n2m3mqs8mgrbs24bcr74kqfkx7wyql36ndhm88xd2z";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace sponsorblock.lua \
+      --replace "python3" "${python3}/bin/python3" \
+      --replace 'mp.find_config_file("scripts")' "\"$out/share/mpv/scripts\""
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/mpv/scripts
+    cp -r sponsorblock.lua sponsorblock_shared $out/share/mpv/scripts/
+  '';
+
+  passthru.scriptName = "sponsorblock.lua";
+
+  meta = with stdenv.lib; {
+    description = "mpv script to skip sponsored segments of YouTube videos";
+    homepage = "https://github.com/po5/mpv_sponsorblock";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ pacien ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/mythtv/default.nix b/nixpkgs/pkgs/applications/video/mythtv/default.nix
index 2f1d3a3a1c91..db8d192b7587 100644
--- a/nixpkgs/pkgs/applications/video/mythtv/default.nix
+++ b/nixpkgs/pkgs/applications/video/mythtv/default.nix
@@ -2,24 +2,21 @@
 , libpulseaudio, fftwSinglePrec , lame, zlib, libGLU, libGL, alsaLib, freetype
 , perl, pkgconfig , libsamplerate, libbluray, lzo, libX11, libXv, libXrandr, libXvMC, libXinerama, libXxf86vm
 , libXmu , yasm, libuuid, taglib, libtool, autoconf, automake, file, exiv2, linuxHeaders
-, libXNVCtrl, enableXnvctrl ? false
 }:
 
 mkDerivation rec {
   pname = "mythtv";
-  version = "30.0";
+  version = "31.0";
 
   src = fetchFromGitHub {
     owner = "MythTV";
     repo = "mythtv";
     rev = "v${version}";
-    sha256 = "1pfzjb07xwd3mfgmbr4kkiyfyvwy9fkl13ik7bvqds86m0ws5bw4";
+    sha256 = "092w5kvc1gjz6jd2lk2jhcazasz2h3xh0i5iq80k8x3znyp4i6v5";
   };
 
   patches = [
-    # Fixes build with exiv2 0.27.1.
-    ./exiv2.patch
-    # Disables OS detection used while checking for xnvctrl support.
+    # Disables OS detection used while checking if enforce_wshadow should be disabled.
     ./disable-os-detection.patch
   ];
 
@@ -29,17 +26,16 @@ mkDerivation rec {
     freetype qtbase qtwebkit qtscript lame zlib xlibsWrapper libGLU libGL
     perl libsamplerate libbluray lzo alsaLib libpulseaudio fftwSinglePrec libX11 libXv libXrandr libXvMC
     libXmu libXinerama libXxf86vm libXmu libuuid taglib exiv2
-  ] ++ stdenv.lib.optional enableXnvctrl libXNVCtrl;
+  ];
   nativeBuildInputs = [ pkgconfig which yasm libtool autoconf automake file ];
 
   configureFlags = 
-    [ "--dvb-path=${linuxHeaders}/include" ]
-    ++ stdenv.lib.optionals (!enableXnvctrl) [  "--disable-xnvctrl" ];
+    [ "--dvb-path=${linuxHeaders}/include" ];
 
   meta = with stdenv.lib; {
     homepage = "https://www.mythtv.org/";
     description = "Open Source DVR";
-    license = licenses.gpl2;
+    license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.titanous ];
   };
diff --git a/nixpkgs/pkgs/applications/video/mythtv/disable-os-detection.patch b/nixpkgs/pkgs/applications/video/mythtv/disable-os-detection.patch
index 5a35dc2d1ddf..09ce6f6ca4f8 100644
--- a/nixpkgs/pkgs/applications/video/mythtv/disable-os-detection.patch
+++ b/nixpkgs/pkgs/applications/video/mythtv/disable-os-detection.patch
@@ -1,51 +1,31 @@
---- a/configure	1970-01-01 01:00:01.000000000 +0100
-+++ b/configure	2019-10-26 11:54:01.920776490 +0200
-@@ -6642,29 +6642,29 @@
-     require libXinerama X11/extensions/Xinerama.h XineramaQueryExtension -lXinerama
-     require libXext "X11/Xdefs.h X11/Xlib.h X11/extensions/Xext.h" XMissingExtension -lXext
-     if enabled xnvctrl; then
--        case $target_os in
--            linux)
-+#        case $target_os in
-+#            linux)
-                 # Bah. Suse linux doesn't have xnvctrl.
--                . /etc/os-release
--                case $ID in
--                    *suse*)
-+#                . /etc/os-release
-+#                case $ID in
-+#                    *suse*)
- 			# This is hopefully temporary.
--			disable xnvctrl_external
--			;;
--		    *)
--                        require XNVctrl "X11/Xlib.h NVCtrl/NVCtrl.h NVCtrl/NVCtrlLib.h" XNVCTRLIsNvScreen -lXNVCtrl || disable xnvctrl
--                        ;;
--                esac
--                ;;
--            freebsd)
-+#			disable xnvctrl_external
-+#			;;
-+#		    *)
-+        require XNVctrl "X11/Xlib.h NVCtrl/NVCtrl.h NVCtrl/NVCtrlLib.h" XNVCTRLIsNvScreen -lXNVCtrl || disable xnvctrl
-+#                        ;;
-+#                esac
-+#                ;;
-+#            freebsd)
-                 # This is hopefully temporary, and will eventually
-                 # check for a system library too.
--                disable xnvctrl_external
--                ;;
--            *)
--                disable xnvctrl
--                ;;
--        esac
-+#                disable xnvctrl_external
-+#                ;;
-+#            *)
-+#                disable xnvctrl
-+#                ;;
-+#        esac
-     fi
- fi
+--- a/configure	2020-07-21 20:50:58.653989766 +0200
++++ b/configure	2020-07-21 20:52:21.236610586 +0200
+@@ -6537,17 +6537,17 @@
+                 }
  
+ enable enforce_wshadow
+-case $target_os in
+-    android)
+-        disable enforce_wshadow
+-        ;;
+-    linux)
+-        . /etc/os-release
+-        if test $ID = "centos"; then
+-            disable enforce_wshadow
+-        fi
+-        ;;
+-esac
++#case $target_os in
++#    android)
++#        disable enforce_wshadow
++#        ;;
++#    linux)
++#        . /etc/os-release
++#        if test $ID = "centos"; then
++#            disable enforce_wshadow
++#        fi
++#        ;;
++#esac
+ 
+ if $(pkg-config --exists Qt5WebKit) || $(pkg-config --exists QtWebKit) ; then
+     enable qtwebkit
diff --git a/nixpkgs/pkgs/applications/video/mythtv/exiv2.patch b/nixpkgs/pkgs/applications/video/mythtv/exiv2.patch
deleted file mode 100644
index 29bf1f5967bb..000000000000
--- a/nixpkgs/pkgs/applications/video/mythtv/exiv2.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Patch source: https://aur.archlinux.org/cgit/aur.git/plain/004-exiv2.patch?h=mythtv&id=76ea37f8556805b205878772ad7874e487c0d946
---- a/libs/libmythmetadata/imagemetadata.cpp
-+++ b/libs/libmythmetadata/imagemetadata.cpp
-@@ -7,14 +7,7 @@
- #include "exitcodes.h"        // for ffprobe
- 
- // libexiv2 for Exif metadata
--//#include <exiv2/exiv2.hpp>
--// Note: Older versions of Exiv2 don't have the exiv2.hpp include
--// file.  Using image.hpp instead seems to work.
--#ifdef _MSC_VER
--#include <exiv2/src/image.hpp>
--#else
--#include <exiv2/image.hpp>
--#endif
-+#include <exiv2/exiv2.hpp>
- 
- // To read FFMPEG Metadata
- extern "C" {
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/default.nix b/nixpkgs/pkgs/applications/video/obs-studio/default.nix
index 8a2cd1728227..5fe10b39a79b 100644
--- a/nixpkgs/pkgs/applications/video/obs-studio/default.nix
+++ b/nixpkgs/pkgs/applications/video/obs-studio/default.nix
@@ -20,7 +20,7 @@
 , xorg
 , makeWrapper
 , pkgconfig
-, vlc
+, libvlc
 , mbedtls
 
 , scriptingSupport ? true
@@ -65,7 +65,7 @@ in mkDerivation rec {
     qtsvg
     speex
     x264
-    vlc
+    libvlc
     makeWrapper
     mbedtls
   ]
@@ -84,7 +84,7 @@ in mkDerivation rec {
 
   postInstall = ''
       wrapProgram $out/bin/obs \
-        --prefix "LD_LIBRARY_PATH" : "${xorg.libX11.out}/lib:${vlc}/lib"
+        --prefix "LD_LIBRARY_PATH" : "${xorg.libX11.out}/lib:${libvlc}/lib"
   '';
 
   postFixup = stdenv.lib.optionalString stdenv.isLinux ''
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix b/nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix
index 79f38fa8fe40..f22ddd39ee4b 100644
--- a/nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix
+++ b/nixpkgs/pkgs/applications/video/obs-studio/obs-ndi.nix
@@ -5,14 +5,14 @@
 # mkdir -p ~/.config/obs-studio/plugins/bin
 # ln -s ~/.nix-profile/lib/obs-plugins/obs-ndi.so ~/.config/obs-studio/plugins/bin/
 
-{ stdenv, fetchFromGitHub, obs-studio, cmake, qt5, ndi }:
+{ stdenv, fetchFromGitHub, obs-studio, cmake, qtbase, ndi }:
 
 stdenv.mkDerivation rec {
   pname = "obs-ndi";
   version = "4.7.1";
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ obs-studio qt5.qtbase ndi ];
+  buildInputs = [ obs-studio qtbase ndi ];
 
   src = fetchFromGitHub {
     owner = "Palakis";
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/v4l2sink.nix b/nixpkgs/pkgs/applications/video/obs-studio/v4l2sink.nix
index 97eae68b6e72..eb8e41868822 100644
--- a/nixpkgs/pkgs/applications/video/obs-studio/v4l2sink.nix
+++ b/nixpkgs/pkgs/applications/video/obs-studio/v4l2sink.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "obs-v4l2sink";
-  version = "0.1.0";
+  version = "0.1.0-12-g1ec3c8a";
 
   src = fetchFromGitHub {
     owner = "CatxFish";
     repo = "obs-v4l2sink";
     rev = version;
-    sha256 = "0l4lavaywih5lzwgxcbnvdrxhpvkrmh56li06s3aryikngxwsk3z";
+    sha256 = "03ah91cm1qz26k90mfx51l0d598i9bcmw39lkikjs1msm4c9dfxx";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/applications/video/obs-studio/wlrobs.nix b/nixpkgs/pkgs/applications/video/obs-studio/wlrobs.nix
index 77ef09d3c24d..99486a9ccc0c 100644
--- a/nixpkgs/pkgs/applications/video/obs-studio/wlrobs.nix
+++ b/nixpkgs/pkgs/applications/video/obs-studio/wlrobs.nix
@@ -13,12 +13,12 @@ assert dmabufSupport -> libdrm != null && libGL != null;
 
 stdenv.mkDerivation {
   pname = "obs-wlrobs";
-  version = "20200111";
+  version = "20200622";
 
   src = fetchhg {
     url = "https://hg.sr.ht/~scoopta/wlrobs";
-    rev = "8345bf985e390896d89e35e2feae1fa37722f4be";
-    sha256 = "0j01wkhwhhla4qx8mwyrq2qj9cfhxksxaq2k8rskmy2qbdkvvdpb";
+    rev = "1d3acaaf64049da3da9721aa8b9b47582fe0081b";
+    sha256 = "0qrcf8024r4ynfjw0zx8vn59ygx9q5rb196s6nyxmy3gkv2lfxlq";
   };
 
   buildInputs = [ libX11 libGL libdrm meson ninja pkgconfig wayland obs-studio ];
diff --git a/nixpkgs/pkgs/applications/video/peek/default.nix b/nixpkgs/pkgs/applications/video/peek/default.nix
index 24c44c248f58..6ca5c5bed212 100644
--- a/nixpkgs/pkgs/applications/video/peek/default.nix
+++ b/nixpkgs/pkgs/applications/video/peek/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , gettext
@@ -68,6 +69,13 @@ stdenv.mkDerivation rec {
     gappsWrapperArgs+=(--prefix PATH : ${stdenv.lib.makeBinPath [ which ffmpeg_3 gifski ]})
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/phw/peek";
     description = "Simple animated GIF screen recorder with an easy to use interface";
diff --git a/nixpkgs/pkgs/applications/video/pitivi/default.nix b/nixpkgs/pkgs/applications/video/pitivi/default.nix
index 276c2fa787f2..b1c1dd285e20 100644
--- a/nixpkgs/pkgs/applications/video/pitivi/default.nix
+++ b/nixpkgs/pkgs/applications/video/pitivi/default.nix
@@ -1,15 +1,28 @@
-{ stdenv, fetchFromGitHub, fetchurl, pkgconfig, intltool, itstool, python3, wrapGAppsHook
-, python3Packages, gst_all_1, gtk3
-, gobject-introspection, librsvg, gnome3, libnotify, gsound
-, meson, ninja, gsettings-desktop-schemas
+{ stdenv
+, fetchFromGitHub
+, fetchurl
+, fetchpatch
+, pkg-config
+, gettext
+, itstool
+, python3
+, wrapGAppsHook
+, python3Packages
+, gst_all_1
+, gtk3
+, gobject-introspection
+, librsvg
+, gnome3
+, libnotify
+, gsound
+, meson
+, ninja
+, gsettings-desktop-schemas
 }:
 
 let
-  version = "0.999";
-
-  # gst-transcoder will eventually be merged with gstreamer (according to
-  # gst-transcoder 1.8.0 release notes). For now the only user is pitivi so we
-  # don't bother exposing the package to all of nixpkgs.
+  # gst-transcoder was merged with gst-plugins-bad 1.18.
+  # TODO: switch to that once available.
   gst-transcoder = stdenv.mkDerivation rec {
     version = "1.14.1";
     pname = "gst-transcoder";
@@ -19,45 +32,120 @@ let
       rev = version;
       sha256 = "16skiz9akavssii529v9nr8zd54w43livc14khdyzv164djg9q8f";
     };
-    nativeBuildInputs = [ pkgconfig meson ninja gobject-introspection python3 ];
-    buildInputs = with gst_all_1; [ gstreamer gst-plugins-base ];
+    nativeBuildInputs = [
+      pkg-config
+      meson
+      ninja
+      gobject-introspection
+      python3
+    ];
+    buildInputs = with gst_all_1; [
+      gstreamer
+      gst-plugins-base
+    ];
   };
 
 in python3Packages.buildPythonApplication rec {
-  name = "pitivi-${version}";
+  pname = "pitivi";
+  version = "0.999";
+
+  format = "other";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/pitivi/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
+    url = "mirror://gnome/sources/pitivi/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "0mxp2p4gg976fp1vj3rb5rmpl5mqfzncm9vw2719irl32f1qlvyb";
   };
 
-  format = "other";
-
   patches = [
     # By default, the build picks up environment variables like PYTHONPATH
     # and saves them to the generated binary. This would make the build-time
     # dependencies part of the closure so we remove it.
     ./prevent-closure-contamination.patch
-  ];
 
-  postPatch = ''
-    patchShebangs ./getenvvar.py
-  '';
+    # Port from intltool to gettext.
+    # Needed for the following patches to apply.
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/pitivi/commit/89b1053f2516c594f414c5c67c835471bce44b67.patch";
+      sha256 = "8yhArzAtZC+WjHftcSDrstBlT8j6WlGHffU9Nj+ny+c=";
+      excludes = [ "po/POTFILES.in" ];
+    })
 
-  nativeBuildInputs = [ meson ninja pkgconfig intltool itstool python3 wrapGAppsHook ];
+    # Complete switching to gst-transcoder in gst-plugins-bad.
+    # Otherwise there will likely be conflics.
+    # TODO: Apply this patch once we are using gst-transcoder from gst-plugins-bad.
+    # (fetchpatch {
+    #   url = "https://gitlab.gnome.org/GNOME/pitivi/commit/51ae6533ee26ffd47e453eb5f5ad8cd46f57d15e.patch";
+    #   sha256 = "zxJm+E5o+oZ3lW6wYNY/ERo2g4NmCjoY8oV+uScq8j8=";
+    # })
+
+    # Generate renderer.so on macOS instead of dylib.
+    # Needed for the following patch to apply.
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/pitivi/commit/bcacadcafabf8911efb0fddc8d57329237d08cd1.patch";
+      sha256 = "2BM5acIwOgdr1L9vhtMMN4trrLuqCg/K6v6ZYtD1Fjw=";
+      postFetch = ''
+        sed -i -e "s/1.90.0.1/0.999/g" "$out"
+      '';
+    })
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/pitivi/commit/0a3cc054a2c20b59f5aaaaa307de3c9af3c0d270.patch";
+      sha256 = "6DhqRlxFWFFdLwGoFem+vPt8x7v732KMVjMF9fypMK4=";
+      postFetch = ''
+        sed "$out" -i \
+          -e "s/1.90.0.1/0.999/g" \
+          -e "s/\(-python_dep.*\)/\1\n /" \
+          -e "s/-1,9 +1,16/-1,10 +1,17/"
+      '';
+    })
+  ];
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    itstool
+    python3
+    wrapGAppsHook
+  ];
 
   buildInputs = [
-    gobject-introspection gtk3 librsvg gnome3.gnome-desktop gsound
+    gobject-introspection
+    gtk3
+    librsvg
+    gnome3.gnome-desktop
+    gsound
     gnome3.adwaita-icon-theme
-    gsettings-desktop-schemas libnotify
+    gsettings-desktop-schemas
+    libnotify
     gst-transcoder
   ] ++ (with gst_all_1; [
-    gstreamer gst-editing-services
-    gst-plugins-base (gst-plugins-good.override { gtkSupport = true; })
-    gst-plugins-bad gst-plugins-ugly gst-libav gst-validate
+    gstreamer
+    gst-editing-services
+    gst-plugins-base
+    (gst-plugins-good.override { gtkSupport = true; })
+    gst-plugins-bad
+    gst-plugins-ugly
+    gst-libav
+    gst-validate
   ]);
 
-  pythonPath = with python3Packages; [ pygobject3 gst-python pyxdg numpy pycairo matplotlib dbus-python ];
+  pythonPath = with python3Packages; [
+    pygobject3
+    gst-python
+    pyxdg
+    numpy
+    pycairo
+    matplotlib
+    dbus-python
+  ];
+
+  postPatch = ''
+    patchShebangs ./getenvvar.py
+
+    # fetchpatch does not support renamings
+    mv data/org.pitivi.Pitivi-mime.xml data/org.pitivi.Pitivi-mime.xml.in
+  '';
 
   passthru = {
     updateScript = gnome3.updateScript {
diff --git a/nixpkgs/pkgs/applications/video/screenkey/default.nix b/nixpkgs/pkgs/applications/video/screenkey/default.nix
index 7e2bc3a3ec0c..00ead0f89a39 100644
--- a/nixpkgs/pkgs/applications/video/screenkey/default.nix
+++ b/nixpkgs/pkgs/applications/video/screenkey/default.nix
@@ -1,53 +1,66 @@
 { lib
-, substituteAll
-, buildPythonApplication
-, fetchFromGitHub
-, distutils_extra
-, setuptools-git
+, fetchFromGitLab
+# native
 , intltool
-, pygtk
-, libX11
-, libXtst
 , wrapGAppsHook
-, gnome3
+, file
+# not native
+, xorg
+, gobject-introspection
+, gtk3
+, python3
 }:
-buildPythonApplication rec {
+
+python3.pkgs.buildPythonApplication rec {
   pname = "screenkey";
-  version = "0.9";
+  version = "1.2";
 
-  src = fetchFromGitHub {
-    owner = "wavexx";
+  src = fetchFromGitLab {
+    owner = "screenkey";
     repo = "screenkey";
-    rev = "screenkey-${version}";
-    sha256 = "14g7fiv9n7m03djwz1pp5034pffi87ssvss9bc1q8vq0ksn23vrw";
+    rev = "v${version}";
+    sha256 = "1x13n57iy2pg3h3r994q3g5nbmh2gwk3qidmmcv0g7qa89n2gwbj";
   };
 
-  patches = [
-    (substituteAll {
-      src = ./paths.patch;
-      inherit libX11 libXtst;
-    })
-  ];
-
   nativeBuildInputs = [
-    distutils_extra
-    setuptools-git
+    python3.pkgs.distutils_extra
+    # Shouldn't be needed once https://gitlab.com/screenkey/screenkey/-/issues/122 is fixed.
     intltool
-
+    # We are not sure why is this needed, but without it we get "file: command
+    # not found" errors during build.
+    file
     wrapGAppsHook
+    # for setup hook
+    gobject-introspection
   ];
 
   buildInputs = [
-    gnome3.adwaita-icon-theme
+    gtk3
   ];
 
-  propagatedBuildInputs = [
-    pygtk
+  propagatedBuildInputs = with python3.pkgs; [
+    pycairo
+    pygobject3
   ];
 
+  # Prevent double wrapping because of wrapGAppsHook
+  dontWrapGApps = true;
+  # https://github.com/NixOS/nixpkgs/issues/56943
+  strictDeps = false;
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
   # screenkey does not have any tests
   doCheck = false;
 
+  # Fix CDLL python calls for non absolute paths of xorg libraries
+  postPatch = ''
+    substituteInPlace Screenkey/xlib.py \
+      --replace libX11.so.6 ${lib.getLib xorg.libX11}/lib/libX11.so.6 \
+      --replace libXtst.so.6 ${lib.getLib xorg.libXtst}/lib/libXtst.so.6
+  '';
+
   meta = with lib; {
     homepage = "https://www.thregr.org/~wavexx/software/screenkey/";
     description = "A screencast tool to display your keys inspired by Screenflick";
diff --git a/nixpkgs/pkgs/applications/video/screenkey/paths.patch b/nixpkgs/pkgs/applications/video/screenkey/paths.patch
deleted file mode 100644
index 7e5ed47fc19d..000000000000
--- a/nixpkgs/pkgs/applications/video/screenkey/paths.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/Screenkey/xlib.py
-+++ b/Screenkey/xlib.py
-@@ -6,7 +6,7 @@
- from ctypes import *
- 
- ## base X11
--libX11 = CDLL('libX11.so.6')
-+libX11 = CDLL('@libX11@/lib/libX11.so.6')
- 
- # types
- Atom = c_ulong
-@@ -278,7 +278,7 @@
- 
- 
- ## record extensions
--libXtst = CDLL('libXtst.so.6')
-+libXtst = CDLL('@libXtst@/lib/libXtst.so.6')
- 
- # types
- XPointer = String
\ No newline at end of file
diff --git a/nixpkgs/pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch b/nixpkgs/pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch
deleted file mode 100644
index 475788ba3a40..000000000000
--- a/nixpkgs/pkgs/applications/video/shotcut/0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 247baa7e9210bbe5462b6155014c3dcd4a60e56a Mon Sep 17 00:00:00 2001
-From: Peter Simons <simons@cryp.to>
-Date: Tue, 24 Sep 2019 10:27:17 +0200
-Subject: [PATCH] encodedock.cpp: connect to VAAPI via DRM, not X11
-
----
- src/docks/encodedock.cpp | 3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/src/docks/encodedock.cpp b/src/docks/encodedock.cpp
-index f2d64fc8..63d20787 100644
---- a/src/docks/encodedock.cpp
-+++ b/src/docks/encodedock.cpp
-@@ -766,7 +766,6 @@ Mlt::Properties* EncodeDock::collectProperties(int realtime)
-                     setIfNotSet(p, "pix_fmt", "nv12");
-                 } else if (vcodec.endsWith("_vaapi")) {
-                     setIfNotSet(p, "vprofile", "main");
--                    setIfNotSet(p, "connection_type", "x11");
-                 }
-             }
-             setIfNotSet(p, "width", ui->widthSpinner->value());
-@@ -1890,7 +1889,7 @@ void EncodeDock::on_hwencodeCheckBox_clicked(bool checked)
-             QStringList args;
-             args << "-hide_banner" << "-f" << "lavfi" << "-i" << "color=s=640x360" << "-frames" << "1" << "-an";
-             if (codec.endsWith("_vaapi"))
--                args << "-init_hw_device" << "vaapi=vaapi0:,connection_type=x11" << "-filter_hw_device" << "vaapi0" << "-vf" << "format=nv12,hwupload";
-+                args << "-init_hw_device" << "vaapi=vaapi0" << "-filter_hw_device" << "vaapi0" << "-vf" << "format=nv12,hwupload";
-             else if (codec == "hevc_qsv")
-                 args << "-load_plugin" << "hevc_hw";
-             args << "-c:v" << codec << "-f" << "rawvideo" << "pipe:";
--- 
-2.24.1
-
diff --git a/nixpkgs/pkgs/applications/video/shotcut/default.nix b/nixpkgs/pkgs/applications/video/shotcut/default.nix
index 9c0435a351c8..f1d77fb7d147 100644
--- a/nixpkgs/pkgs/applications/video/shotcut/default.nix
+++ b/nixpkgs/pkgs/applications/video/shotcut/default.nix
@@ -1,24 +1,23 @@
 { stdenv, fetchFromGitHub, fetchpatch, mkDerivation, SDL2, frei0r, gettext, mlt
 , jack1, pkgconfig, qtbase, qtmultimedia, qtwebkit, qtx11extras, qtwebsockets
-, qtquickcontrols, qtgraphicaleffects, libmlt, qmake, qttools
+, qtquickcontrols, qtgraphicaleffects, libmlt, qmake, qttools, genericUpdater
+, common-updater-scripts
 }:
 
-assert stdenv.lib.versionAtLeast libmlt.version "6.18.0";
-assert stdenv.lib.versionAtLeast mlt.version "6.18.0";
+assert stdenv.lib.versionAtLeast libmlt.version "6.22.1";
+assert stdenv.lib.versionAtLeast mlt.version "6.22.1";
 
 mkDerivation rec {
   pname = "shotcut";
-  version = "20.04.12";
+  version = "20.09.13";
 
   src = fetchFromGitHub {
     owner = "mltframework";
     repo = "shotcut";
     rev = "v${version}";
-    sha256 = "05yyv9192f722j8fhfjrphxadgp3crvbq4pi23ln560zh9s1m8r4";
+    sha256 = "1q7ba6j3b2yzn3y5z9s5ldh15wrvhi6vymhwm910nqa5379dcc21";
   };
 
-  patches = [ ./0001-encodedock.cpp-connect-to-VAAPI-via-DRM-not-X11.patch ];
-
   enableParallelBuilding = true;
   nativeBuildInputs = [ pkgconfig qmake ];
   buildInputs = [
@@ -49,6 +48,12 @@ mkDerivation rec {
     cp -r src/qml $out/share/shotcut/
   '';
 
+  passthru.updateScript = genericUpdater {
+    inherit pname version;
+    versionLister = "${common-updater-scripts}/bin/list-git-tags ${src.meta.homepage}";
+    rev-prefix = "v";
+  };
+
   meta = with stdenv.lib; {
     description = "A free, open source, cross-platform video editor";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/video/smplayer/default.nix b/nixpkgs/pkgs/applications/video/smplayer/default.nix
index 85c71e86a649..a8d2aaaff0ee 100644
--- a/nixpkgs/pkgs/applications/video/smplayer/default.nix
+++ b/nixpkgs/pkgs/applications/video/smplayer/default.nix
@@ -2,11 +2,11 @@
 
 mkDerivation rec {
   pname = "smplayer";
-  version = "20.4.2";
+  version = "20.6.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "0kqdx6q2274gm83rycvdcglka60ymdk4iw2lc39iw7z1zgsv6ky3";
+    sha256 = "0c59gfgm2ya8yb2nx7gy1zc0nrr4206213xy86y7jw0bk9mmjxmy";
   };
 
   buildInputs = [ qtscript ];
diff --git a/nixpkgs/pkgs/applications/video/smtube/default.nix b/nixpkgs/pkgs/applications/video/smtube/default.nix
index 1cd6fb693e81..26b14ab739c6 100644
--- a/nixpkgs/pkgs/applications/video/smtube/default.nix
+++ b/nixpkgs/pkgs/applications/video/smtube/default.nix
@@ -1,12 +1,12 @@
 { lib, mkDerivation, fetchurl, qmake, qtscript, qtwebkit }:
 
 mkDerivation rec {
-  version = "20.1.0";
+  version = "20.6.0";
   pname = "smtube";
 
   src = fetchurl {
     url = "mirror://sourceforge/smtube/SMTube/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "00x7gyk06d01hrr1lcqbrffbkkpj2j0j1fy9mkxc7slbzqcl27dz";
+    sha256 = "0hnza5gszwqnkc1py5g34hi4p976vpkc4h3ab0247ynqs83fpwc2";
   };
 
   makeFlags = [
diff --git a/nixpkgs/pkgs/applications/video/streamlink-twitch-gui/bin.nix b/nixpkgs/pkgs/applications/video/streamlink-twitch-gui/bin.nix
new file mode 100644
index 000000000000..251f495b7e15
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/streamlink-twitch-gui/bin.nix
@@ -0,0 +1,100 @@
+{ autoPatchelfHook, fetchurl, lib, makeDesktopItem, makeWrapper, stdenv, wrapGAppsHook
+, at-spi2-core, atk, alsaLib, cairo, cups, dbus, expat, gcc-unwrapped
+, gdk-pixbuf, glib, gnome2, gtk3-x11, libudev0-shim, libuuid, nss, nspr, xorg
+, streamlink }:
+
+let
+  basename = "streamlink-twitch-gui";
+  runtimeLibs = lib.makeLibraryPath [ libudev0-shim ];
+  arch =
+    if stdenv.hostPlatform.system == "x86_64-linux"
+    then
+      "linux64"
+    else
+      "linux32";
+
+in
+stdenv.mkDerivation rec {
+  pname = "${basename}-bin";
+  version = "1.10.0";
+
+  src = fetchurl {
+    url = "https://github.com/streamlink/${basename}/releases/download/v${version}/${basename}-v${version}-${arch}.tar.gz";
+    sha256 =
+      if arch == "linux64"
+      then
+        "17s9zbzj4pgz9mxxwjbp3788afkddc9s3p7xp28y5084z9wwzph2"
+      else
+        "1pww05hr48m6v0g1sz48g1c7p615lig3s12l21xgyz4gkjzmjy22";
+  };
+
+  nativeBuildInputs = with xorg; [
+    at-spi2-core
+    atk
+    alsaLib
+    autoPatchelfHook
+    cairo
+    cups.lib
+    dbus.daemon.lib
+    expat
+    gcc-unwrapped
+    gdk-pixbuf
+    glib
+    gnome2.pango
+    gtk3-x11
+    nss
+    nspr
+    libuuid
+    libX11
+    libxcb
+    libXcomposite
+    libXcursor
+    libXdamage
+    libXext
+    libXfixes
+    libXi
+    libXrandr
+    libXrender
+    libXScrnSaver
+    libXtst
+    makeWrapper
+    wrapGAppsHook
+  ];
+
+  buildInputs = [ streamlink ];
+
+  dontBuild = true;
+  dontConfigure = true;
+
+  installPhase = ''
+    mkdir -p $out/{bin,opt/${basename},share}
+
+    # Install all files, remove unnecessary ones
+    cp -a . $out/opt/${basename}/
+    rm -r $out/opt/${basename}/{{add,remove}-menuitem.sh,credits.html,icons/}
+
+    wrapProgram $out/opt/${basename}/${basename} --add-flags "--no-version-check" --prefix LD_LIBRARY_PATH : ${runtimeLibs}
+
+    ln -s "$out/opt/${basename}/${basename}" $out/bin/
+    ln -s "${desktopItem}/share/applications" $out/share/
+  '';
+
+  desktopItem = makeDesktopItem {
+    name = basename;
+    exec = basename;
+    icon = basename;
+    desktopName = "Streamlink Twitch GUI";
+    genericName = meta.description;
+    categories = "AudioVideo;Network;";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Twitch.tv browser for Streamlink";
+    longDescription = "Browse Twitch.tv and watch streams in your videoplayer of choice";
+    homepage = "https://streamlink.github.io/streamlink-twitch-gui/";
+    downloadPage = https://github.com/streamlink/streamlink-twitch-gui/releases;
+    license = licenses.mit;
+    maintainers = with maintainers; [ rileyinman ];
+    platforms = [ "x86_64-linux" "i686-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/streamlink/default.nix b/nixpkgs/pkgs/applications/video/streamlink/default.nix
index c1066bf283a4..4c8800c918e2 100644
--- a/nixpkgs/pkgs/applications/video/streamlink/default.nix
+++ b/nixpkgs/pkgs/applications/video/streamlink/default.nix
@@ -1,14 +1,14 @@
 { stdenv, pythonPackages, fetchFromGitHub, rtmpdump, ffmpeg_3 }:
 
 pythonPackages.buildPythonApplication rec {
-  version = "1.4.1";
+  version = "1.5.0";
   pname = "streamlink";
 
   src = fetchFromGitHub {
     owner = "streamlink";
     repo = "streamlink";
     rev = version;
-    sha256 = "1q3h48qwf7vs2wnbkwv0xnm6s65mkcyqdz7z6z3vrsmif2sb19l2";
+    sha256 = "00pishpyim3mcvr9njcbfhj79j85b5xhkslk3mspc2csqknw4k61";
   };
 
   checkInputs = with pythonPackages; [ pytest mock requests-mock freezegun ];
diff --git a/nixpkgs/pkgs/applications/video/vcs/default.nix b/nixpkgs/pkgs/applications/video/vcs/default.nix
new file mode 100644
index 000000000000..0cbdeaaf6ff8
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/vcs/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, fetchurl, makeWrapper
+, coreutils, ffmpeg, gawk, gnugrep, gnused, imagemagick, mplayer, utillinux
+, dejavu_fonts
+}:
+with stdenv.lib;
+let
+  version = "1.13.4";
+  runtimeDeps = [ coreutils ffmpeg gawk gnugrep gnused imagemagick mplayer utillinux ];
+in
+stdenv.mkDerivation {
+  pname = "vcs";
+  inherit version;
+  src = fetchurl {
+    url = "http://p.outlyer.net/files/vcs/vcs-${version}.bash";
+    sha256 = "0nhwcpffp3skz24kdfg4445i6j37ks6a0qsbpfd3dbi4vnpa60a0";
+  };
+
+  unpackCmd = "mkdir src; cp $curSrc src/vcs";
+  patches = [ ./fonts.patch ];
+  nativeBuildInputs = [ makeWrapper ];
+  doBuild = false;
+
+  inherit dejavu_fonts;
+  installPhase = ''
+    mkdir -p $out/bin
+    mv vcs $out/bin/vcs
+    substituteAllInPlace $out/bin/vcs
+    chmod +x $out/bin/vcs
+    wrapProgram $out/bin/vcs --argv0 vcs --set PATH "${makeBinPath runtimeDeps}"
+  '';
+
+  meta = {
+    description = "Generates contact sheets from video files";
+    homepage = "http://p.outlyer.net/vcs";
+    license = licenses.cc-by-nc-sa-30;
+    maintainers = with maintainers; [ elitak ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/vcs/fonts.patch b/nixpkgs/pkgs/applications/video/vcs/fonts.patch
new file mode 100644
index 000000000000..3df0359f8b26
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/vcs/fonts.patch
@@ -0,0 +1,23 @@
+--- a/vcs	2020-04-04 14:37:53.531095977 -0700
++++ b/vcs	2020-04-04 14:40:46.459407878 -0700
+@@ -3669,18 +3669,8 @@
+ 	[[ ( -z $USR_FONT_TITLE ) && ( $FONT_TITLE != 'DejaVu-Sans-Book' ) ]] && return
+ 	[[ ( -z $USR_FONT_TSTAMPS ) && ( $FONT_TSTAMPS != 'DejaVu-Sans-Book' ) ]] && return
+ 	[[ ( -z $USR_FONT_SIGN ) && ( $FONT_SIGN != 'DejaVu-Sans-Book' ) ]] && return
+-	# Try to locate DejaVu Sans
+-	local dvs=''
+-	if [[ -d /usr/local/share/fonts ]]; then
+-		dvs=$(find /usr/local/share/fonts/ -type f -iname 'dejavusans.ttf')
+-	fi
+-	if [[ ( -z $dvs ) && ( -d /usr/share/fonts ) ]]; then
+-		dvs=$(find /usr/share/fonts/ -type f -iname 'dejavusans.ttf')
+-	fi
+-	if [[ -z $dvs ]]; then
+-		warn "Unable to locate DejaVu Sans font. Falling back to helvetica."
+-		dvs=helvetica
+-	fi
++	# Use DejaVu Sans, by default
++	local dvs='@dejavu_fonts@/share/fonts/truetype/DejaVuSans.ttf'
+ 	[[ -z $USR_FONT_HEADING ]] && FONT_HEADING="$dvs"
+ 	[[ -z $USR_FONT_TITLE ]] && FONT_TITLE="$dvs"
+ 	[[ -z $USR_FONT_TSTAMPS ]] && FONT_TSTAMPS="$dvs"
diff --git a/nixpkgs/pkgs/applications/video/vdr/default.nix b/nixpkgs/pkgs/applications/video/vdr/default.nix
index d025554835ef..bc3d54f3b5b8 100644
--- a/nixpkgs/pkgs/applications/video/vdr/default.nix
+++ b/nixpkgs/pkgs/applications/video/vdr/default.nix
@@ -1,15 +1,16 @@
-{ stdenv, fetchurl, fontconfig, libjpeg, libcap, freetype, fribidi, pkgconfig
+{ stdenv, fetchgit, fontconfig, libjpeg, libcap, freetype, fribidi, pkgconfig
 , gettext, systemd, perl, lib
 , enableSystemd ? true
 , enableBidi ? true
 }: stdenv.mkDerivation rec {
 
   pname = "vdr";
-  version = "2.4.1";
+  version = "2.4.4";
 
-  src = fetchurl {
-    url = "ftp://ftp.tvdr.de/vdr/${pname}-${version}.tar.bz2";
-    sha256 = "1p51b14aqzncx3xpfg0rjplc48pg7520035i5p6r5zzkqhszihr5";
+  src = fetchgit {
+    url = "git://git.tvdr.de/vdr.git";
+    rev = "V20404";
+    sha256 = "1fzghnp5mpcwn3a3fyk3w8h15z4f2cnc75247kvxj1c9069mgnwa";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/applications/video/vdr/plugins.nix b/nixpkgs/pkgs/applications/video/vdr/plugins.nix
index 2ae4cbac4d73..30cd93178c25 100644
--- a/nixpkgs/pkgs/applications/video/vdr/plugins.nix
+++ b/nixpkgs/pkgs/applications/video/vdr/plugins.nix
@@ -49,7 +49,8 @@ in {
 
   vaapidevice = stdenv.mkDerivation {
 
-    name = "vdr-vaapidevice-0.7.0";
+    pname = "vdr-vaapidevice";
+    version = "20190525";
 
     buildInputs = [
       vdr libxcb xcbutilwm ffmpeg_3
@@ -61,14 +62,14 @@ in {
     makeFlags = [ "DESTDIR=$(out)" ];
 
     postPatch = ''
-      substituteInPlace softhddev.c --replace /usr/bin/X ${xorgserver}/bin/X
+      substituteInPlace vaapidev.c --replace /usr/bin/X ${xorgserver}/bin/X
     '';
 
     src = fetchFromGitHub {
       owner = "pesintta";
       repo = "vdr-plugin-vaapidevice";
-      sha256 = "072y61fpkh3i2dragg0nsd4g3malgwxkwpdrb1ykdljyzf52s5hs";
-      rev = "c99afc23a53e6d91f9afaa99af59b30e68e626a8";
+      sha256 = "1gwjp15kjki9x5742fhaqk3yc2bbma74yp2vpn6wk6kj46nbnwp6";
+      rev = "d19657bae399e79df107e316ca40922d21393f80";
     };
 
     meta = with stdenv.lib; {
@@ -129,11 +130,12 @@ in {
 
   epgsearch = stdenv.mkDerivation rec {
     pname = "vdr-epgsearch";
-    version = "2.4.0";
+    version = "20191202";
 
-    src = fetchurl {
-      url = "https://projects.vdr-developer.org/git/vdr-plugin-epgsearch.git/snapshot/vdr-plugin-epgsearch-${version}.tar.bz2";
-      sha256 = "0xfgn17vicyjwdf0rbkrik4q16mnfi305d4wmi8f0qk825pa0z3y";
+    src = fetchgit {
+      url = "git://projects.vdr-developer.org/vdr-plugin-epgsearch.git";
+      sha256 = "18kskwnnscr4rb4yzfikw1la318zjgraf340cl7n9z77chi2gi8m";
+      rev = "602d66c55964998ce25c6c57b302949a9517f149";
     };
 
     postPatch = ''
diff --git a/nixpkgs/pkgs/applications/video/vlc/default.nix b/nixpkgs/pkgs/applications/video/vlc/default.nix
index 91fb36c39748..965a5ff32530 100644
--- a/nixpkgs/pkgs/applications/video/vlc/default.nix
+++ b/nixpkgs/pkgs/applications/video/vlc/default.nix
@@ -25,11 +25,11 @@ assert (withQt5 -> qtbase != null && qtsvg != null && qtx11extras != null && wra
 
 stdenv.mkDerivation rec {
   pname = "vlc";
-  version = "3.0.11";
+  version = "3.0.11.1";
 
   src = fetchurl {
     url = "http://get.videolan.org/vlc/${version}/${pname}-${version}.tar.xz";
-    sha256 = "06a9hfl60f6l0fs5c9ma5s8np8kscm4ala6m2pdfji9lyfna351y";
+    sha256 = "1f46h0hv7fk35zg4iczlp7ib7h2jmh8m4r5klw3g2558ib9134qq";
   };
 
   # VLC uses a *ton* of libraries for various pieces of functionality, many of
@@ -99,5 +99,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.videolan.org/vlc/";
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
+    broken = if qtbase != null then versionAtLeast qtbase.version "5.15" else false;
   };
 }
diff --git a/nixpkgs/pkgs/applications/video/vokoscreen-ng/default.nix b/nixpkgs/pkgs/applications/video/vokoscreen-ng/default.nix
new file mode 100644
index 000000000000..600bc715ffb4
--- /dev/null
+++ b/nixpkgs/pkgs/applications/video/vokoscreen-ng/default.nix
@@ -0,0 +1,71 @@
+{ lib
+, mkDerivation
+, fetchFromGitHub
+, fetchpatch
+, pkg-config
+, qmake
+, qttools
+, gstreamer
+, libX11
+, qtbase
+, qtmultimedia
+, qtx11extras
+
+, gst-plugins-base
+, gst-plugins-good
+, gst-plugins-bad
+, gst-plugins-ugly
+}:
+mkDerivation rec {
+
+  pname = "vokoscreen-ng";
+  version = "3.0.5";
+
+  src = fetchFromGitHub {
+    owner = "vkohaupt";
+    repo = "vokoscreenNG";
+    rev = version;
+    sha256 = "1spyqw8h8bkc1prdb9aixiw5h3hk3gp2p0nj934bnwq04kmfp660";
+  };
+
+  patches = [
+    # Better linux integration
+    (fetchpatch {
+      url = "https://github.com/vkohaupt/vokoscreenNG/commit/0a3784095ecca582f7eb09551ceb34c309d83637.patch";
+      sha256 = "1iibimv8xfxxfk44kkbrkay37ibdndjvs9g53mxr8x8vrsp917bz";
+    })
+  ];
+
+  qmakeFlags = [ "src/vokoscreenNG.pro" ];
+
+  nativeBuildInputs = [ qttools pkg-config qmake ];
+  buildInputs = [
+    gstreamer
+    libX11
+    qtbase
+    qtmultimedia
+    qtx11extras
+
+    gst-plugins-base
+    gst-plugins-good
+    gst-plugins-bad
+    gst-plugins-ugly
+  ];
+
+  postPatch = ''
+    substituteInPlace src/vokoscreenNG.pro \
+      --replace lrelease-qt5 lrelease
+  '';
+
+  postInstall = ''
+    qtWrapperArgs+=(--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : "$GST_PLUGIN_SYSTEM_PATH_1_0")
+  '';
+
+  meta = with lib; {
+    description = "User friendly Open Source screencaster for Linux and Windows";
+    license = licenses.gpl2Plus;
+    homepage = "https://github.com/vkohaupt/vokoscreenNG";
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/video/vokoscreen/default.nix b/nixpkgs/pkgs/applications/video/vokoscreen/default.nix
index 0cd3c814b173..94d0de20ccf7 100644
--- a/nixpkgs/pkgs/applications/video/vokoscreen/default.nix
+++ b/nixpkgs/pkgs/applications/video/vokoscreen/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, mkDerivation
 , pkgconfig, qtbase, qttools, qmake, qtmultimedia, qtx11extras, alsaLib, libv4l, libXrandr
-, ffmpeg_3
+, ffmpeg
 }:
 
 mkDerivation rec {
@@ -35,7 +35,7 @@ mkDerivation rec {
   '';
 
   postConfigure = ''
-    substituteInPlace settings/QvkSettings.cpp --subst-var-by ffmpeg ${ffmpeg_3}
+    substituteInPlace settings/QvkSettings.cpp --subst-var-by ffmpeg ${ffmpeg}
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/video/webcamoid/default.nix b/nixpkgs/pkgs/applications/video/webcamoid/default.nix
index 41304c21ac30..aa559215fe89 100644
--- a/nixpkgs/pkgs/applications/video/webcamoid/default.nix
+++ b/nixpkgs/pkgs/applications/video/webcamoid/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pkgconfig, libxcb, mkDerivation, qmake
 , qtbase, qtdeclarative, qtquickcontrols, qtquickcontrols2
-, ffmpeg-full, gstreamer, gst_all_1, libpulseaudio, alsaLib, jack2
+, ffmpeg-full, gst_all_1, libpulseaudio, alsaLib, jack2
 , v4l-utils }:
 mkDerivation rec {
   pname = "webcamoid";
@@ -17,7 +17,7 @@ mkDerivation rec {
     libxcb
     qtbase qtdeclarative qtquickcontrols qtquickcontrols2
     ffmpeg-full
-    gstreamer gst_all_1.gst-plugins-base
+    gst_all_1.gstreamer gst_all_1.gst-plugins-base
     alsaLib libpulseaudio jack2
     v4l-utils
   ];
diff --git a/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix b/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix
index 24c17daa759d..ef50dad86bcc 100644
--- a/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix
+++ b/nixpkgs/pkgs/applications/video/webtorrent_desktop/default.nix
@@ -1,14 +1,16 @@
 {
-  alsaLib, atk, cairo, cups, dbus, dpkg, expat, fetchurl, fontconfig, freetype,
-  gdk-pixbuf, glib, gnome2, libX11, libXScrnSaver, libXcomposite, libXcursor,
+  alsaLib, atk, cairo, cups, dbus, dpkg, expat, fetchurl, fetchzip, fontconfig, freetype,
+  gdk-pixbuf, glib, gnome3, libX11, libXScrnSaver, libXcomposite, libXcursor,
   libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender, libXtst,
-  libxcb, nspr, nss, stdenv, udev
+  libxcb, nspr, nss, stdenv, udev, libuuid, pango, at-spi2-atk, at-spi2-core
 }:
 
   let
     rpath = stdenv.lib.makeLibraryPath ([
     alsaLib
     atk
+    at-spi2-core
+    at-spi2-atk
     cairo
     cups
     dbus
@@ -17,9 +19,9 @@
     freetype
     gdk-pixbuf
     glib
-    gnome2.GConf
-    gnome2.gtk
-    gnome2.pango
+    gnome3.gtk
+    pango
+    libuuid
     libX11
     libXScrnSaver
     libXcomposite
@@ -39,29 +41,33 @@
     ]);
   in stdenv.mkDerivation rec {
     pname = "webtorrent-desktop";
-    version = "0.20.0";
+    version = "0.21.0";
 
     src =
       if stdenv.hostPlatform.system == "x86_64-linux" then
-        fetchurl {
-          url = "https://github.com/webtorrent/webtorrent-desktop/releases/download/v0.20.0/webtorrent-desktop_${version}-1_amd64.deb";
-          sha256 = "1kkrnbimiip5pn2nwpln35bbdda9gc3cgrjwphq4fqasbjf2781k";
+        fetchzip {
+          url = "https://github.com/webtorrent/webtorrent-desktop/releases/download/v${version}/WebTorrent-v${version}-linux.zip";
+          sha256 = "13gd8isq2l10kibsc1bsc15dbgpnwa7nw4cwcamycgx6pfz9a852";
         }
         else
           throw "Webtorrent is not currently supported on ${stdenv.hostPlatform.system}";
+    desktopFile = fetchurl {
+      url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/applications/webtorrent-desktop.desktop";
+      sha256 = "1v16dqbxqds3cqg3xkzxsa5fyd8ssddvjhy9g3i3lz90n47916ca";
+    };
+    icon256File = fetchurl {
+      url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/256x256/apps/webtorrent-desktop.png";
+      sha256 = "1dapxvvp7cx52zhyaby4bxm4rll9xc7x3wk8k0il4g3mc7zzn3yk";
+    };
+    icon48File = fetchurl {
+      url = "https://raw.githubusercontent.com/webtorrent/webtorrent-desktop/v${version}/static/linux/share/icons/hicolor/48x48/apps/webtorrent-desktop.png";
+      sha256 = "00y96w9shbbrdbf6xcjlahqd08154kkrxmqraik7qshiwcqpw7p4";
+    };
     phases = [ "unpackPhase" "installPhase" ];
     nativeBuildInputs = [ dpkg ];
-    unpackPhase = "dpkg-deb -x $src .";
     installPhase = ''
-      mkdir -p $out
-      cp -R opt $out
-
-      mv ./usr/share $out/share
-      mv $out/opt/webtorrent-desktop $out/libexec
-      chmod +x $out/libexec/WebTorrent
-      rmdir $out/opt
-
-      chmod -R g-w $out
+      mkdir -p $out/share/{applications,icons/hicolor/{48x48,256x256}/apps}
+      cp -R . $out/libexec
 
       # Patch WebTorrent
       patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
@@ -71,9 +77,11 @@
       mkdir -p $out/bin
       ln -s $out/libexec/WebTorrent $out/bin/WebTorrent
 
-      # Fix the desktop link
-      substituteInPlace $out/share/applications/webtorrent-desktop.desktop \
-        --replace /opt/webtorrent-desktop $out/bin
+      cp $icon48File $out/share/icons/hicolor/48x48/apps/webtorrent-desktop.png
+      cp $icon256File $out/share/icons/hicolor/256x256/apps/webtorrent-desktop.png
+      ## Fix the desktop link
+      substitute $desktopFile $out/share/applications/webtorrent-desktop.desktop \
+        --replace /opt/webtorrent-desktop $out/libexec
     '';
 
     meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix b/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix
index 19ba8ced4973..94d0ae94dbde 100644
--- a/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/OVMF/default.nix
@@ -41,11 +41,14 @@ edk2.mkDerivation projectDscPath {
     mkdir -vp $fd/AAVMF
     mv -v $out/FV/QEMU_{EFI,VARS}.fd $fd/FV
 
-    # Uses Fedora dir layout: https://src.fedoraproject.org/cgit/rpms/edk2.git/tree/edk2.spec
-    # FIXME: why is it different from Debian dir layout? https://salsa.debian.org/qemu-team/edk2/blob/debian/debian/rules
-    dd of=$fd/AAVMF/QEMU_EFI-pflash.raw       if=/dev/zero bs=1M    count=64
-    dd of=$fd/AAVMF/QEMU_EFI-pflash.raw       if=$fd/FV/QEMU_EFI.fd conv=notrunc
-    dd of=$fd/AAVMF/vars-template-pflash.raw if=/dev/zero bs=1M    count=64
+    # Use Debian dir layout: https://salsa.debian.org/qemu-team/edk2/blob/debian/debian/rules
+    dd of=$fd/FV/AAVMF_CODE.fd  if=/dev/zero bs=1M    count=64
+    dd of=$fd/FV/AAVMF_CODE.fd  if=$fd/FV/QEMU_EFI.fd conv=notrunc
+    dd of=$fd/FV/AAVMF_VARS.fd  if=/dev/zero bs=1M    count=64
+
+    # Also add symlinks for Fedora dir layout: https://src.fedoraproject.org/cgit/rpms/edk2.git/tree/edk2.spec
+    ln -s $fd/FV/AAVMF_CODE.fd $fd/AAVMF/QEMU_EFI-pflash.raw
+    ln -s $fd/FV/AAVMF_VARS.fd $fd/AAVMF/vars-template-pflash.raw
   '' else ''
     mkdir -vp $fd/FV
     mv -v $out/FV/OVMF{,_CODE,_VARS}.fd $fd/FV
diff --git a/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix b/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
index a316952a010d..a7e8260765fe 100644
--- a/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/charliecloud/default.nix
@@ -1,22 +1,32 @@
-{ stdenv, fetchFromGitHub, python }:
+{ stdenv, fetchFromGitHub, python3, python3Packages, docker, autoreconfHook, coreutils, makeWrapper, gnused, gnutar, gzip, findutils, sudo, nixosTests }:
 
 stdenv.mkDerivation rec {
 
-  version = "0.12";
+  version = "0.19";
   pname = "charliecloud";
 
   src = fetchFromGitHub {
     owner = "hpc";
     repo = "charliecloud";
     rev = "v${version}";
-    sha256 = "177rcf1klcxsp6x9cw75cmz3y2izgd1hvi1rb9vc6iz9qx1nmk3v";
+    sha256 = "1rmvm0s1jdpzfg32b3hwsbdkzws7gsy4xq227hmzv3n2dv64svm6";
   };
 
-  buildInputs = [ python ];
+  nativeBuildInputs = [ autoreconfHook makeWrapper ];
+  buildInputs = [
+    docker
+    (python3.withPackages (ps: [ ps.lark-parser ps.requests ]))
+  ];
+
+  configureFlags = let
+    pythonEnv = python3.withPackages (ps: [ ps.lark-parser ps.requests ]);
+  in [
+    "--with-python=${pythonEnv}/bin/python3"
+  ];
 
   preConfigure = ''
-    substituteInPlace Makefile --replace '/bin/bash' '${stdenv.shell}'
     patchShebangs test/
+    substituteInPlace configure.ac --replace "/usr/bin/env" "${coreutils}/bin/env"
   '';
 
   makeFlags = [
@@ -24,12 +34,16 @@ stdenv.mkDerivation rec {
     "LIBEXEC_DIR=lib/charliecloud"
   ];
 
+  # Charliecloud calls some external system tools.
+  # Here we wrap those deps so they are resolved inside nixpkgs.
   postInstall = ''
-    mkdir -p $out/share/charliecloud
-    mv $out/lib/charliecloud/examples $out/share/charliecloud
-    mv $out/lib/charliecloud/test $out/share/charliecloud
+    for file in $out/bin/* ; do \
+      wrapProgram $file --prefix PATH : ${stdenv.lib.makeBinPath [ coreutils docker gnused gnutar gzip findutils sudo ]}
+    done
   '';
 
+  passthru.tests.charliecloud = nixosTests.charliecloud;
+
   meta = {
     description = "User-defined software stacks (UDSS) for high-performance computing (HPC) centers";
     longDescription = ''
diff --git a/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch b/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch
new file mode 100644
index 000000000000..7a7378faa58b
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch
@@ -0,0 +1,53 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index e566ed25..a661a963 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -689,7 +689,7 @@ dependencies = [
+  "serde",
+  "serde_derive",
+  "serde_json",
+- "vfio-bindings 0.2.0 (git+https://github.com/rust-vmm/vfio-bindings)",
++ "vfio-bindings",
+  "vfio-ioctls",
+  "vm-allocator",
+  "vm-device",
+@@ -1346,17 +1346,12 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+ [[package]]
+ name = "vfio-bindings"
+ version = "0.2.0"
+-source = "git+https://github.com/rust-vmm/vfio-bindings#f08cbcbf4041c981441d9c036c49ebad5098ed1c"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4a21f546f2bda37f5a8cfb138c87f95b8e34d2d78d6a7a92ba3785f4e08604a7"
+ dependencies = [
+  "vmm-sys-util",
+ ]
+ 
+-[[package]]
+-name = "vfio-bindings"
+-version = "0.2.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4a21f546f2bda37f5a8cfb138c87f95b8e34d2d78d6a7a92ba3785f4e08604a7"
+-
+ [[package]]
+ name = "vfio-ioctls"
+ version = "0.1.0"
+@@ -1366,7 +1361,7 @@ dependencies = [
+  "kvm-bindings",
+  "kvm-ioctls",
+  "log 0.4.8",
+- "vfio-bindings 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "vfio-bindings",
+  "vm-memory",
+  "vmm-sys-util",
+ ]
+diff --git a/pci/Cargo.toml b/pci/Cargo.toml
+index 9c6955c7..4ecf8e6b 100644
+--- a/pci/Cargo.toml
++++ b/pci/Cargo.toml
+@@ -23,5 +23,5 @@ vm-memory = "0.2.1"
+ vm-migration = { path = "../vm-migration" }
+ 
+ [dependencies.vfio-bindings]
+-git = "https://github.com/rust-vmm/vfio-bindings"
++version = "0.2.0"
+ features = ["fam-wrappers"]
diff --git a/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix b/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix
new file mode 100644
index 000000000000..59c97c4a8dea
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/cloud-hypervisor/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub, rustPlatform, pkgconfig, openssl }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cloud-hypervisor";
+  version = "0.8.0";
+
+  src = fetchFromGitHub {
+    owner = "cloud-hypervisor";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "h2aWWjycTm84TS89/vhqnAvwOqeeSDtvvCt+Is6I0eI=";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ openssl ];
+
+  cargoPatches = [ ./cargo-lock-vendor-fix.patch ];
+  cargoSha256 = "fOIB+qVDqAAgQPW3bK2NfST24GzYJeRXgaMFXyNPcPQ=";
+
+  meta = with lib; {
+    homepage = "https://github.com/cloud-hypervisor/cloud-hypervisor";
+    description = "Open source Virtual Machine Monitor (VMM) that runs on top of KVM";
+    changelog = "https://github.com/cloud-hypervisor/cloud-hypervisor/releases/tag/v${version}";
+    license = with licenses; [ asl20 bsd3 ];
+    maintainers = with maintainers; [ offline ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/conmon/default.nix b/nixpkgs/pkgs/applications/virtualization/conmon/default.nix
index d5abb569e7b1..d2f1f2debe54 100644
--- a/nixpkgs/pkgs/applications/virtualization/conmon/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/conmon/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "conmon";
-  version = "2.0.18";
+  version = "2.0.21";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0f32g048jamfhrds68vzirx8iqizr45wf2d4bfvdsk176amrj4k0";
+    sha256 = "13g436s00bcwzs31qsx5rpgkbbyxd4zvx8mbkq10gkrsv4r04q23";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   installFlags = [ "PREFIX=$(out)" ];
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) cri-o podman; };
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/containers/conmon";
diff --git a/nixpkgs/pkgs/applications/virtualization/containerd/default.nix b/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
index 4210994f4352..eded437a62db 100644
--- a/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/containerd/default.nix
@@ -4,7 +4,7 @@ with lib;
 
 buildGoPackage rec {
   pname = "containerd";
-  version = "1.2.13";
+  version = "1.4.1";
   # git commit for the above version's tag
   commit = "7ad184331fa3e55e52b890ea95e65ba581ae3429";
 
@@ -12,7 +12,7 @@ buildGoPackage rec {
     owner = "containerd";
     repo = "containerd";
     rev = "v${version}";
-    sha256 = "1rac3iak3jpz57yarxc72bxgxvravwrl0j6s6w2nxrmh2m3kxqzn";
+    sha256 = "1k6dqaidnldf7kpxdszf0wn6xb8m6vaizm2aza81fri1q0051213";
   };
 
   goPackagePath = "github.com/containerd/containerd";
diff --git a/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix b/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix
index 95f8580cb397..54ffb036f3c3 100644
--- a/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix
@@ -10,19 +10,23 @@
 , libselinux
 , lvm2
 , pkg-config
+, nixosTests
 }:
 
 buildGoModule rec {
   pname = "cri-o";
-  version = "1.18.1";
+  version = "1.19.0";
 
   src = fetchFromGitHub {
     owner = "cri-o";
     repo = "cri-o";
     rev = "v${version}";
-    sha256 = "1fd7ix329kqimysqfh8yl29c0hwrddlirq9bnz95mrllhsgn8kw2";
+    sha256 = "1lrr8y0k6609z4gb8cg277rq58sh0bqd2b4mzjlynyjdgp3xskfq";
   };
   vendorSha256 = null;
+
+  doCheck = false;
+
   outputs = [ "out" "man" ];
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
@@ -37,10 +41,6 @@ buildGoModule rec {
 
   BUILDTAGS = "apparmor seccomp selinux containers_image_openpgp containers_image_ostree_stub";
   buildPhase = ''
-    patchShebangs .
-
-    sed -i '/version.buildDate/d' Makefile
-
     make binaries docs BUILDTAGS="$BUILDTAGS"
   '';
 
@@ -54,6 +54,8 @@ buildGoModule rec {
     installManPage docs/*.[1-9]
   '';
 
+  passthru.tests = { inherit (nixosTests) cri-o; };
+
   meta = with stdenv.lib; {
     homepage = "https://cri-o.io";
     description = ''
diff --git a/nixpkgs/pkgs/applications/virtualization/cri-o/wrapper.nix b/nixpkgs/pkgs/applications/virtualization/cri-o/wrapper.nix
index 1578eaf4f585..6d72623d86cb 100644
--- a/nixpkgs/pkgs/applications/virtualization/cri-o/wrapper.nix
+++ b/nixpkgs/pkgs/applications/virtualization/cri-o/wrapper.nix
@@ -10,7 +10,6 @@
 , utillinux # nsenter
 , cni-plugins # not added to path
 , iptables
-, socat
 }:
 
 let
@@ -22,12 +21,11 @@ let
     conmon
     utillinux
     iptables
-    socat
   ] ++ extraPackages);
 
 in runCommand cri-o.name {
   name = "${cri-o.pname}-wrapper-${cri-o.version}";
-  inherit (cri-o) pname version;
+  inherit (cri-o) pname version passthru;
 
   meta = builtins.removeAttrs cri-o.meta [ "outputsToInstall" ];
 
diff --git a/nixpkgs/pkgs/applications/virtualization/crun/default.nix b/nixpkgs/pkgs/applications/virtualization/crun/default.nix
index a11d5d356d14..e52401ba35fc 100644
--- a/nixpkgs/pkgs/applications/virtualization/crun/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/crun/default.nix
@@ -25,6 +25,7 @@ let
     "test_pid.py"
     "test_pid_file.py"
     "test_preserve_fds.py"
+    "test_resources"
     "test_start.py"
     "test_uid_gid.py"
     "test_update.py"
@@ -34,13 +35,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "crun";
-  version = "0.13";
+  version = "0.15";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = version;
-    sha256 = "0c5acf916yv2zv3xjvxk1sa4h3n2wljc5hw61php7q37pbjc1ppn";
+    sha256 = "0cqzk2lm1w0g2v6qhiliq565cf4p7hzh839jb01p3i5cr9kx11kc";
     fetchSubmodules = true;
   };
 
@@ -63,7 +64,7 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) podman; };
 
   meta = with lib; {
     description = "A fast and lightweight fully featured OCI runtime and C library for running containers";
diff --git a/nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix b/nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix
index 71359467c5c6..cf11b6932931 100644
--- a/nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/docker-compose/default.nix
@@ -4,16 +4,16 @@
 , pyyaml, backports_ssl_match_hostname, colorama, docopt
 , dockerpty, docker, ipaddress, jsonschema, requests
 , six, texttable, websocket_client, cached-property
-, enum34, functools32, paramiko
+, enum34, functools32, paramiko, distro, python-dotenv
 }:
 
 buildPythonApplication rec {
-  version = "1.25.5";
+  version = "1.26.2";
   pname = "docker-compose";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ijhg93zs3lswkljnm0rhww7gdy0g94psvsya2741prz2zcbcbks";
+    sha256 = "0c3v30z7jlbxm9nxs42vv3nbja0zsppkcd6fnd0mjcm1s60hyssp";
   };
 
   # lots of networking and other fails
@@ -23,7 +23,7 @@ buildPythonApplication rec {
   propagatedBuildInputs = [
     pyyaml backports_ssl_match_hostname colorama dockerpty docker
     ipaddress jsonschema requests six texttable websocket_client
-    docopt cached-property paramiko
+    docopt cached-property paramiko distro python-dotenv
   ] ++
     stdenv.lib.optional (pythonOlder "3.4") enum34 ++
     stdenv.lib.optional (pythonOlder "3.2") functools32;
diff --git a/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix b/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix
index 996d52bacab2..058f6fd8ccca 100644
--- a/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/docker-slim/default.nix
@@ -6,7 +6,7 @@
 
 buildGoPackage rec {
   pname = "docker-slim";
-  version = "1.29.0";
+  version = "1.32.0";
 
   goPackagePath = "github.com/docker-slim/docker-slim";
 
@@ -14,7 +14,7 @@ buildGoPackage rec {
     owner = "docker-slim";
     repo = "docker-slim";
     rev = version;
-    sha256 = "0qfjmwqxgghp9pqj4s2z71cmn8mi1l6655z6nbhh72yqaxh5a6ia";
+    sha256 = "0pd2v7df176ca923c4nw9ns5gz442jkb0jhzqjl53rwfwz1vxy9h";
   };
 
   subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];
@@ -41,10 +41,5 @@ buildGoPackage rec {
     homepage = "https://dockersl.im/";
     license = licenses.asl20;
     maintainers = with maintainers; [ filalex77 marsam mbrgm ];
-    # internal/app/sensor/monitors/ptrace/monitor.go:151:16: undefined:
-    #     system.CallNumber
-    # internal/app/sensor/monitors/ptrace/monitor.go:161:15: undefined:
-    #     system.CallReturnValue
-    badPlatforms = [ "aarch64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/virtualization/docker/default.nix b/nixpkgs/pkgs/applications/virtualization/docker/default.nix
index da414cd55464..14cfa7b3120c 100644
--- a/nixpkgs/pkgs/applications/virtualization/docker/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/docker/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, lib, fetchFromGitHub, makeWrapper, removeReferencesTo, installShellFiles, pkgconfig
+{ stdenv, lib, fetchFromGitHub, fetchpatch, buildGoPackage
+, makeWrapper, removeReferencesTo, installShellFiles, pkgconfig
 , go-md2man, go, containerd, runc, docker-proxy, tini, libtool
 , sqlite, iproute, lvm2, systemd
 , btrfs-progs, iptables, e2fsprogs, xz, utillinux, xfsprogs, git
@@ -56,7 +57,7 @@ rec {
       NIX_CFLAGS_COMPILE = "-DMINIMAL=ON";
     });
   in
-    stdenv.mkDerivation ((optionalAttrs (stdenv.isLinux) {
+    buildGoPackage ((optionalAttrs (stdenv.isLinux) {
 
     inherit docker-runc docker-containerd docker-proxy docker-tini;
 
@@ -66,7 +67,7 @@ rec {
       ++ optional (lvm2 == null) "exclude_graphdriver_devicemapper"
       ++ optional (libseccomp != null) "seccomp";
 
-   }) // {
+   }) // rec {
     inherit version rev;
 
     name = "docker-${version}";
@@ -78,9 +79,19 @@ rec {
       sha256 = sha256;
     };
 
-    nativeBuildInputs = [ installShellFiles pkgconfig ];
+    patches = lib.optional (versionAtLeast version "19.03") [
+      # Replace hard-coded cross-compiler with $CC
+      (fetchpatch {
+        url = https://github.com/docker/docker-ce/commit/2fdfb4404ab811cb00227a3de111437b829e55cf.patch;
+        sha256 = "1af20bzakhpfhaixc29qnl9iml9255xdinxdnaqp4an0n1xa686a";
+      })
+    ];
+
+    goPackagePath = "github.com/docker/docker-ce";
+
+    nativeBuildInputs = [ pkgconfig go-md2man go libtool removeReferencesTo installShellFiles ];
     buildInputs = [
-      makeWrapper removeReferencesTo go-md2man go libtool
+      makeWrapper
     ] ++ optionals (stdenv.isLinux) [
       sqlite lvm2 btrfs-progs systemd libseccomp
     ];
@@ -91,7 +102,7 @@ rec {
       export GOCACHE="$TMPDIR/go-cache"
     '' + (optionalString (stdenv.isLinux) ''
       # build engine
-      cd ./components/engine
+      cd ./go/src/${goPackagePath}/components/engine
       export AUTO_GOPATH=1
       export DOCKER_GITCOMMIT="${rev}"
       export VERSION="${version}"
@@ -99,7 +110,7 @@ rec {
       cd -
     '') + ''
       # build cli
-      cd ./components/cli
+      cd ./go/src/${goPackagePath}/components/cli
       # Mimic AUTO_GOPATH
       mkdir -p .gopath/src/github.com/docker/
       ln -sf $PWD .gopath/src/github.com/docker/cli
@@ -113,7 +124,7 @@ rec {
     '';
 
     # systemd 230 no longer has libsystemd-journal as a separate entity from libsystemd
-    patchPhase = ''
+    postPatch = ''
       substituteInPlace ./components/cli/scripts/build/.variables --replace "set -eu" ""
     '' + optionalString (stdenv.isLinux) ''
       patchShebangs .
@@ -125,7 +136,13 @@ rec {
 
     extraPath = optionals (stdenv.isLinux) (makeBinPath [ iproute iptables e2fsprogs xz xfsprogs procps utillinux git ]);
 
-    installPhase = optionalString (stdenv.isLinux) ''
+    installPhase = ''
+      cd ./go/src/${goPackagePath}
+      install -Dm755 ./components/cli/docker $out/libexec/docker/docker
+
+      makeWrapper $out/libexec/docker/docker $out/bin/docker \
+        --prefix PATH : "$out/libexec/docker:$extraPath"
+    '' + optionalString (stdenv.isLinux) ''
       install -Dm755 ./components/engine/bundles/dynbinary-daemon/dockerd $out/libexec/docker/dockerd
 
       makeWrapper $out/libexec/docker/dockerd $out/bin/dockerd \
@@ -141,24 +158,20 @@ rec {
       # systemd
       install -Dm644 ./components/engine/contrib/init/systemd/docker.service $out/etc/systemd/system/docker.service
     '' + ''
-      install -Dm755 ./components/cli/docker $out/libexec/docker/docker
-
-      makeWrapper $out/libexec/docker/docker $out/bin/docker \
-        --prefix PATH : "$out/libexec/docker:$extraPath"
-
       # completion (cli)
       installShellCompletion --bash ./components/cli/contrib/completion/bash/docker
       installShellCompletion --fish ./components/cli/contrib/completion/fish/docker.fish
       installShellCompletion --zsh ./components/cli/contrib/completion/zsh/_docker
 
       # Include contributed man pages (cli)
+      cd ./components/cli
+    '' + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
       # Generate man pages from cobra commands
       echo "Generate man pages from cobra"
-      cd ./components/cli
       mkdir -p ./man/man1
       go build -o ./gen-manpages github.com/docker/cli/man
       ./gen-manpages --root . --target ./man/man1
-
+    '' + ''
       # Generate legacy pages from markdown
       echo "Generate legacy manpages"
       ./man/md2man-all.sh -q
@@ -167,7 +180,7 @@ rec {
     '';
 
     preFixup = ''
-      find $out -type f -exec remove-references-to -t ${go} -t ${stdenv.cc.cc} '{}' +
+      find $out -type f -exec remove-references-to -t ${stdenv.cc.cc} '{}' +
     '' + optionalString (stdenv.isLinux) ''
       find $out -type f -exec remove-references-to -t ${stdenv.glibc.dev} '{}' +
     '';
@@ -184,9 +197,9 @@ rec {
   # Get revisions from
   # https://github.com/docker/docker-ce/tree/${version}/components/engine/hack/dockerfile/install/*
 
-  docker_18_09 = makeOverridable dockerGen {
+  docker_18_09 = makeOverridable dockerGen rec {
     version = "18.09.9";
-    rev = "039a7df9ba8097dd987370782fcdd6ea79b26016";
+    rev = "v${version}";
     sha256 = "0wqhjx9qs96q2jd091wffn3cyv2aslqn2cvpdpgljk8yr9s0yg7h";
     runcRev = "3e425f80a8c931f88e6d94a8c831b9d5aa481657";
     runcSha256 = "18psc830b2rkwml1x6vxngam5b5wi3pj14mw817rshpzy87prspj";
@@ -196,10 +209,10 @@ rec {
     tiniSha256 = "1h20i3wwlbd8x4jr2gz68hgklh0lb0jj7y5xk1wvr8y58fip1rdn";
   };
 
-  docker_19_03 = makeOverridable dockerGen {
-    version = "19.03.11";
-    rev = "42e35e61f352e527082521280d5ea3761f0dee50";
-    sha256 = "0q4l4z2bg269hj1dqaq02f84zgp3p8idw1cxczw383cjl0ra8xgq";
+  docker_19_03 = makeOverridable dockerGen rec {
+    version = "19.03.12";
+    rev = "v${version}";
+    sha256 = "0i5xr8q3yjrz5zsjcq63v4g1mzqpingjr1hbf9amk14484i2wkw7";
     runcRev = "dc9208a3303feef5b3839f4323d9beb36df0a9dd"; # v1.0.0-rc10
     runcSha256 = "0pi3rvj585997m4z9ljkxz2z9yxf9p2jr0pmqbqrc7bc95f5hagk";
     containerdRev = "7ad184331fa3e55e52b890ea95e65ba581ae3429"; # v1.2.13
diff --git a/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix b/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix
index 79d1b606bcba..9513457d86d3 100644
--- a/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/firecracker/default.nix
@@ -1,7 +1,7 @@
 { fetchurl, stdenv }:
 
 let
-  version = "0.21.1";
+  version = "0.22.0";
 
   suffix = {
     x86_64-linux  = "x86_64";
@@ -15,13 +15,13 @@ let
   };
 
   firecracker-bin = fetchbin "firecracker" {
-    x86_64-linux = "0g4fja3bz1fsyz8vj99199yblkn46ygf33ldwd1ssw8f957vbwnb";
-    aarch64-linux = "1qyppcxnh7f42fs4px5rvkk6lza57h2sq9naskvqn5zy4vsvq89s";
+    x86_64-linux  = "1jl7cmw53fbykcji8a0bkdy82mgpfr8km3ab6iwsrswvahh4srx7";
+    aarch64-linux = "15vi6441gr4jy0698ifashgv1ic7iz0kbm7c28m2jd8z08p6bnlz";
   };
 
   jailer-bin = fetchbin "jailer" {
-    x86_64-linux = "0x89pfmqci9d3i9fi9b9zm94yr2v7pq7kp3drlb952jkdfj0njyk";
-    aarch64-linux = "03fx9sk88jm23wqm8fraqd1ccfhbqvc310mkfv1f5p2ykhq2ahrk";
+    x86_64-linux  = "0wir7fi1iqvw02908axfaqzp9q5qyg4yk5jicp8s493iz3vhm9h7";
+    aarch64-linux = "1l3yc9j27vxfyn89xmxi1ir635v7l8ikwpw9a30dhh50wa3rm4jy";
   };
 
 in
diff --git a/nixpkgs/pkgs/applications/virtualization/firectl/default.nix b/nixpkgs/pkgs/applications/virtualization/firectl/default.nix
index 47ae4637b57e..523e96f347cc 100644
--- a/nixpkgs/pkgs/applications/virtualization/firectl/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/firectl/default.nix
@@ -15,6 +15,8 @@ buildGoModule rec {
 
   vendorSha256 = "1xbpck1gvzl75xgrajf5yzl199l4f2f6j3mac5586i7b00b9jxqj";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "A command-line tool to run Firecracker microVMs";
     homepage = "https://github.com/firecracker-microvm/firectl";
@@ -22,4 +24,4 @@ buildGoModule rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ xrelkd ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/gvisor/containerd-shim.nix b/nixpkgs/pkgs/applications/virtualization/gvisor/containerd-shim.nix
index 97623511222f..c8610b73865b 100644
--- a/nixpkgs/pkgs/applications/virtualization/gvisor/containerd-shim.nix
+++ b/nixpkgs/pkgs/applications/virtualization/gvisor/containerd-shim.nix
@@ -17,7 +17,6 @@ buildGoModule rec {
     make
   '';
 
-  doCheck = true;
   checkPhase = ''
     make test
   '';
@@ -33,4 +32,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ andrew-d ];
     platforms   = [ "x86_64-linux" ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/applications/virtualization/gvisor/default.nix b/nixpkgs/pkgs/applications/virtualization/gvisor/default.nix
index 74a408952a22..576f2d9e6f23 100644
--- a/nixpkgs/pkgs/applications/virtualization/gvisor/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/gvisor/default.nix
@@ -76,7 +76,7 @@ in buildBazelPackage rec {
       rm -f "$bazelOut"/java.log "$bazelOut"/java.log.*
     '';
 
-    sha256 = "164r8m95g7njh232xfc7zcn1nssaw9bnin9k7ssj9mk6z7z9zy5v";
+    sha256 = "0myffqywbvqhax995z55jymwnwyxmp13r27kpbc7wb5fk9s4skvr";
   };
 
   buildAttrs = {
diff --git a/nixpkgs/pkgs/applications/virtualization/hercules/default.nix b/nixpkgs/pkgs/applications/virtualization/hercules/default.nix
index 901e2f0b6ec0..8746e66668ff 100644
--- a/nixpkgs/pkgs/applications/virtualization/hercules/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/hercules/default.nix
@@ -13,6 +13,6 @@ stdenv.mkDerivation rec {
     description = "IBM mainframe emulator";
     homepage = "http://www.hercules-390.eu";
     license = licenses.qpl;
-    maintainers = [ maintainers.dkudriavtsev ];
+    maintainers = [ maintainers.anna328p ];
   };
 }
diff --git a/nixpkgs/pkgs/applications/virtualization/nvidia-docker/default.nix b/nixpkgs/pkgs/applications/virtualization/nvidia-docker/default.nix
index b56b88cf87ef..d0d7125721f8 100644
--- a/nixpkgs/pkgs/applications/virtualization/nvidia-docker/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/nvidia-docker/default.nix
@@ -3,18 +3,6 @@
 
 with lib; let
 
-  glibc-ldconf = glibc.overrideAttrs (oldAttrs: {
-    # ldconfig needs help reading libraries that have been patchelf-ed, as the
-    # .dynstr section is no longer in the first LOAD segment. See also
-    # https://sourceware.org/bugzilla/show_bug.cgi?id=23964 and
-    # https://github.com/NixOS/patchelf/issues/44
-    patches = oldAttrs.patches ++ [ (fetchpatch {
-      name = "ldconfig-patchelf.patch";
-      url = "https://sourceware.org/bugzilla/attachment.cgi?id=11444";
-      sha256 = "0nzzmq7pli37iyjrgcmvcy92piiwjybpw245ds7q43pbgdm7lc3s";
-    })];
-  });
-
   libnvidia-container = callPackage ./libnvc.nix { };
 
   nvidia-container-runtime = fetchFromGitHub {
@@ -72,7 +60,7 @@ in stdenv.mkDerivation rec {
     wrapProgram $out/bin/nvidia-container-cli \
       --prefix LD_LIBRARY_PATH : /run/opengl-driver/lib:/run/opengl-driver-32/lib
     cp ${./config.toml} $out/etc/config.toml
-    substituteInPlace $out/etc/config.toml --subst-var-by glibcbin ${lib.getBin glibc-ldconf}
+    substituteInPlace $out/etc/config.toml --subst-var-by glibcbin ${lib.getBin glibc}
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix b/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix
index 84f74ef6dd03..df9a89293f2c 100644
--- a/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/open-vm-tools/default.nix
@@ -1,18 +1,18 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper, autoreconfHook,
   fuse, libmspack, openssl, pam, xercesc, icu, libdnet, procps,
   libX11, libXext, libXinerama, libXi, libXrender, libXrandr, libXtst,
-  pkgconfig, glib, gtk3, gtkmm3, iproute, dbus, systemd, which,
+  pkgconfig, glib, gdk-pixbuf-xlib, gtk3, gtkmm3, iproute, dbus, systemd, which,
   withX ? true }:
 
 stdenv.mkDerivation rec {
   pname = "open-vm-tools";
-  version = "11.0.5";
+  version = "11.1.0";
 
   src = fetchFromGitHub {
     owner  = "vmware";
     repo   = "open-vm-tools";
     rev    = "stable-${version}";
-    sha256 = "0idh8dqwb1df2di689090k9x1iap35jk3wg8yb1g70byichmscqb";
+    sha256 = "1wyiz8j5b22ajrr1fh9cn55lsgd5g13q0i8wvk2a0yw0vaw1883s";
   };
 
   sourceRoot = "${src.name}/open-vm-tools";
@@ -21,9 +21,13 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook makeWrapper pkgconfig ];
   buildInputs = [ fuse glib icu libdnet libmspack openssl pam procps xercesc ]
-      ++ lib.optionals withX [ gtk3 gtkmm3 libX11 libXext libXinerama libXi libXrender libXrandr libXtst ];
+      ++ lib.optionals withX [ gdk-pixbuf-xlib gtk3 gtkmm3 libX11 libXext libXinerama libXi libXrender libXrandr libXtst ];
+
+  patches = [
+    ./recognize_nixos.patch
+    ./find_gdk_pixbuf_xlib.patch #See https://github.com/vmware/open-vm-tools/pull/438
+  ];
 
-  patches = [ ./recognize_nixos.patch ];
   postPatch = ''
      # Build bugfix for 10.1.0, stolen from Arch PKGBUILD
      mkdir -p common-agent/etc/config
@@ -31,6 +35,7 @@ stdenv.mkDerivation rec {
 
      sed -i 's,etc/vmware-tools,''${prefix}/etc/vmware-tools,' Makefile.am
      sed -i 's,^confdir = ,confdir = ''${prefix},' scripts/Makefile.am
+     sed -i 's,usr/bin,''${prefix}/usr/bin,' scripts/Makefile.am
      sed -i 's,etc/vmware-tools,''${prefix}/etc/vmware-tools,' services/vmtoolsd/Makefile.am
      sed -i 's,$(PAM_PREFIX),''${prefix}/$(PAM_PREFIX),' services/vmtoolsd/Makefile.am
      sed -i 's,$(UDEVRULESDIR),''${prefix}/$(UDEVRULESDIR),' udev/Makefile.am
diff --git a/nixpkgs/pkgs/applications/virtualization/open-vm-tools/find_gdk_pixbuf_xlib.patch b/nixpkgs/pkgs/applications/virtualization/open-vm-tools/find_gdk_pixbuf_xlib.patch
new file mode 100644
index 000000000000..6606c50e77d9
--- /dev/null
+++ b/nixpkgs/pkgs/applications/virtualization/open-vm-tools/find_gdk_pixbuf_xlib.patch
@@ -0,0 +1,12 @@
+diff --git a/lib/appUtil/Makefile.am b/lib/appUtil/Makefile.am
+index a0d8e391..899cd4e9 100644
+--- a/lib/appUtil/Makefile.am
++++ b/lib/appUtil/Makefile.am
+@@ -21,4 +21,6 @@ libAppUtil_la_SOURCES =
+ libAppUtil_la_SOURCES += appUtil.c
+ libAppUtil_la_SOURCES += appUtilX11.c
+ 
+-AM_CFLAGS = @GTK_CPPFLAGS@
++AM_CFLAGS =
++AM_CFLAGS += @GTK_CPPFLAGS@
++AM_CFLAGS += @GDK_PIXBUF_XLIB2_CPPFLAGS@
diff --git a/nixpkgs/pkgs/applications/virtualization/podman/default.nix b/nixpkgs/pkgs/applications/virtualization/podman/default.nix
index 3ed029e55fb4..b05149fd1500 100644
--- a/nixpkgs/pkgs/applications/virtualization/podman/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/podman/default.nix
@@ -16,17 +16,19 @@
 
 buildGoModule rec {
   pname = "podman";
-  version = "1.9.3";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "containers";
-    repo = "libpod";
+    repo = "podman";
     rev = "v${version}";
-    sha256 = "0gbp12xn1vliyawkw2w2bpn6b5h2cm41g3nj72vk4jyhis0igq1s";
+    sha256 = "0cy842wlyasxlxnwxkwhwgj148s30kfxnhgxa6ar26fly432aa68";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   outputs = [ "out" "man" ];
 
   nativeBuildInputs = [ pkg-config go-md2man installShellFiles ];
@@ -44,18 +46,21 @@ buildGoModule rec {
   buildPhase = ''
     patchShebangs .
     ${if stdenv.isDarwin
-      then "make CGO_ENABLED=0 BUILDTAGS='remoteclient containers_image_openpgp exclude_graphdriver_devicemapper' varlink_generate all"
-      else "make podman docs"}
+      then "make podman-remote"
+      else "make podman"}
+    make docs
   '';
 
-  installPhase = ''
+  installPhase = stdenv.lib.optionalString stdenv.isDarwin ''
+    mv bin/{podman-remote,podman}
+  '' + ''
     install -Dm555 bin/podman $out/bin/podman
     installShellCompletion --bash completions/bash/podman
     installShellCompletion --zsh completions/zsh/_podman
-    MANDIR=$man/share/man make install.man
+    MANDIR=$man/share/man make install.man-nobuild
   '';
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) podman; };
 
   meta = with stdenv.lib; {
     homepage = "https://podman.io/";
@@ -63,6 +68,5 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ marsam ] ++ teams.podman.members;
     platforms = platforms.unix;
-    broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/applications/virtualization/qemu/default.nix b/nixpkgs/pkgs/applications/virtualization/qemu/default.nix
index c5dcc2fafc68..535f83711534 100644
--- a/nixpkgs/pkgs/applications/virtualization/qemu/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/qemu/default.nix
@@ -18,6 +18,7 @@
 , openGLSupport ? sdlSupport, mesa, epoxy, libdrm
 , virglSupport ? openGLSupport, virglrenderer
 , smbdSupport ? false, samba
+, tpmSupport ? true
 , hostCpuOnly ? false
 , hostCpuTargets ? (if hostCpuOnly
                     then (stdenv.lib.optional stdenv.isx86_64 "i386-softmmu"
@@ -35,7 +36,7 @@ let
 in
 
 stdenv.mkDerivation rec {
-  version = "5.0.0";
+  version = "5.1.0";
   pname = "qemu"
     + stdenv.lib.optionalString xenSupport "-xen"
     + stdenv.lib.optionalString hostCpuOnly "-host-cpu-only"
@@ -43,7 +44,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url= "https://download.qemu.org/qemu-${version}.tar.xz";
-    sha256 = "1dlcwyshdp94fwd30pddxf9bn2q8dfw5jsvry2gvdj551wmaj4rg";
+    sha256 = "1rd41wwlvp0vpialjp2czs6i3lsc338xc72l3zkbb7ixjfslw5y9";
   };
 
   nativeBuildInputs = [ python python.pkgs.sphinx pkgconfig flex bison ]
@@ -127,21 +128,25 @@ stdenv.mkDerivation rec {
     ++ optional cephSupport "--enable-rbd"
     ++ optional openGLSupport "--enable-opengl"
     ++ optional virglSupport "--enable-virglrenderer"
+    ++ optional tpmSupport "--enable-tpm"
     ++ optional smbdSupport "--smbd=${samba}/bin/smbd";
 
   doCheck = false; # tries to access /dev
   dontWrapGApps = true;
 
   postFixup = ''
-      # copy qemu-ga (guest agent) to separate output
-      mkdir -p $ga/bin
-      cp $out/bin/qemu-ga $ga/bin/
-    '' + optionalString gtkSupport ''
-      # wrap GTK Binaries
-      for f in $out/bin/qemu-system-*; do
-        wrapGApp $f
-      done
-    '';
+    # the .desktop is both invalid and pointless
+    rm $out/share/applications/qemu.desktop
+
+    # copy qemu-ga (guest agent) to separate output
+    mkdir -p $ga/bin
+    cp $out/bin/qemu-ga $ga/bin/
+  '' + optionalString gtkSupport ''
+    # wrap GTK Binaries
+    for f in $out/bin/qemu-system-*; do
+      wrapGApp $f
+    done
+  '';
 
   # Add a ‘qemu-kvm’ wrapper for compatibility/convenience.
   postInstall = ''
diff --git a/nixpkgs/pkgs/applications/virtualization/qemu/utils.nix b/nixpkgs/pkgs/applications/virtualization/qemu/utils.nix
index 436716e0a8c3..90783039a1a0 100644
--- a/nixpkgs/pkgs/applications/virtualization/qemu/utils.nix
+++ b/nixpkgs/pkgs/applications/virtualization/qemu/utils.nix
@@ -1,9 +1,10 @@
-{ stdenv, qemu }:
+{ stdenv, installShellFiles, qemu }:
 
 stdenv.mkDerivation rec {
   name = "qemu-utils-${version}";
   version = qemu.version;
 
+  nativeBuildInputs = [ installShellFiles ];
   buildInputs = [ qemu ];
   unpackPhase = "true";
 
@@ -12,6 +13,9 @@ stdenv.mkDerivation rec {
     cp "${qemu}/bin/qemu-img" "$out/bin/qemu-img"
     cp "${qemu}/bin/qemu-io"  "$out/bin/qemu-io"
     cp "${qemu}/bin/qemu-nbd" "$out/bin/qemu-nbd"
+
+    installManPage ${qemu}/share/man/man1/qemu-img.1.gz
+    installManPage ${qemu}/share/man/man8/qemu-nbd.8.gz
   '';
 
   inherit (qemu) meta;
diff --git a/nixpkgs/pkgs/applications/virtualization/railcar/default.nix b/nixpkgs/pkgs/applications/virtualization/railcar/default.nix
index fda95b41ab5d..1a238bb475d2 100644
--- a/nixpkgs/pkgs/applications/virtualization/railcar/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/railcar/default.nix
@@ -22,6 +22,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/oracle/railcar";
     license = with licenses; [ asl20 /* or */ upl ];
     maintainers = [ maintainers.spacekookie ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/applications/virtualization/runc/default.nix b/nixpkgs/pkgs/applications/virtualization/runc/default.nix
index 58c3ef4f61b3..fd3d914af662 100644
--- a/nixpkgs/pkgs/applications/virtualization/runc/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/runc/default.nix
@@ -14,13 +14,13 @@
 
 buildGoPackage rec {
   pname = "runc";
-  version = "1.0.0-rc90";
+  version = "1.0.0-rc92";
 
   src = fetchFromGitHub {
     owner = "opencontainers";
     repo = "runc";
     rev = "v${version}";
-    sha256 = "0pi3rvj585997m4z9ljkxz2z9yxf9p2jr0pmqbqrc7bc95f5hagk";
+    sha256 = "0r4zbxbs03xr639r7848282j1ybhibfdhnxyap9p76j5w8ixms94";
   };
 
   goPackagePath = "github.com/opencontainers/runc";
@@ -30,7 +30,6 @@ buildGoPackage rec {
 
   buildInputs = [ libselinux libseccomp libapparmor apparmor-parser ];
 
-  # these will be the default in the next release
   makeFlags = [ "BUILDTAGS+=seccomp" "BUILDTAGS+=apparmor" "BUILDTAGS+=selinux" ];
 
   buildPhase = ''
@@ -46,7 +45,7 @@ buildGoPackage rec {
     installManPage man/*/*.[1-9]
   '';
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) cri-o podman; };
 
   meta = with lib; {
     homepage = "https://github.com/opencontainers/runc";
diff --git a/nixpkgs/pkgs/applications/virtualization/singularity/default.nix b/nixpkgs/pkgs/applications/virtualization/singularity/default.nix
index f6a1a3bc6a91..2f2d66f3b2f5 100644
--- a/nixpkgs/pkgs/applications/virtualization/singularity/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/singularity/default.nix
@@ -1,13 +1,16 @@
 {stdenv
 , removeReferencesTo
 , lib
-, fetchFromGitHub
+, fetchurl
 , utillinux
+, gpgme
 , openssl
+, libuuid
 , coreutils
 , go
 , which
 , makeWrapper
+, cryptsetup
 , squashfsTools
 , buildGoPackage}:
 
@@ -15,24 +18,21 @@ with lib;
 
 buildGoPackage rec {
   pname = "singularity";
-  version = "3.2.1";
+  version = "3.6.3";
 
-  src = fetchFromGitHub {
-    owner = "sylabs";
-    repo = "singularity";
-    rev = "v${version}";
-    sha256 = "14lhxwy21s7q081x7kbnvkjsbxgsg2f181qlzmlxcn6n7gfav3kj";
+  src = fetchurl {
+    url = "https://github.com/hpcng/singularity/releases/download/v${version}/singularity-${version}.tar.gz";
+    sha256 = "1zd29s8lggv4x5xracgzywayg1skl9qc2bqh1zdxh1wrg9sqbadi";
   };
 
   goPackagePath = "github.com/sylabs/singularity";
-  goDeps = ./deps.nix;
 
-  buildInputs = [ openssl utillinux ];
-  nativeBuildInputs = [ removeReferencesTo which makeWrapper ];
+  buildInputs = [ gpgme openssl libuuid ];
+  nativeBuildInputs = [ removeReferencesTo utillinux which makeWrapper cryptsetup ];
   propagatedBuildInputs = [ coreutils squashfsTools ];
 
-  prePatch = ''
-    substituteInPlace internal/pkg/build/copy/copy.go \
+  postPatch = ''
+    substituteInPlace internal/pkg/build/files/copy.go \
       --replace /bin/cp ${coreutils}/bin/cp
   '';
 
@@ -46,24 +46,24 @@ buildGoPackage rec {
 
     # Don't install SUID binaries
     sed -i 's/-m 4755/-m 755/g' builddir/Makefile
-
   '';
 
   buildPhase = ''
+    runHook preBuild
     make -C builddir
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     make -C builddir install LOCALSTATEDIR=$out/var
     chmod 755 $out/libexec/singularity/bin/starter-suid
-    wrapProgram $out/bin/singularity --prefix PATH : ${stdenv.lib.makeBinPath propagatedBuildInputs}
-  '';
 
-  postFixup = ''
-    find $out/libexec/ -type f -executable -exec remove-references-to -t ${go} '{}' + || true
+    # Explicitly configure paths in the config file
+    sed -i 's|^# mksquashfs path =.*$|mksquashfs path = ${stdenv.lib.makeBinPath [squashfsTools]}/mksquashfs|' $out/etc/singularity/singularity.conf
+    sed -i 's|^# cryptsetup path =.*$|cryptsetup path = ${stdenv.lib.makeBinPath [cryptsetup]}/cryptsetup|' $out/etc/singularity/singularity.conf
 
-    # These etc scripts shouldn't have their paths patched
-    cp etc/actions/* $out/etc/singularity/actions/
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/applications/virtualization/singularity/deps.nix b/nixpkgs/pkgs/applications/virtualization/singularity/deps.nix
deleted file mode 100644
index fe51488c7066..000000000000
--- a/nixpkgs/pkgs/applications/virtualization/singularity/deps.nix
+++ /dev/null
@@ -1 +0,0 @@
-[]
diff --git a/nixpkgs/pkgs/applications/virtualization/tini/default.nix b/nixpkgs/pkgs/applications/virtualization/tini/default.nix
index db3fb1c96eb3..e3b1ccd4ce24 100644
--- a/nixpkgs/pkgs/applications/virtualization/tini/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/tini/default.nix
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
 
   NIX_CFLAGS_COMPILE = "-DPR_SET_CHILD_SUBREAPER=36 -DPR_GET_CHILD_SUBREAPER=37";
 
-  buildInputs = [ cmake glibc glibc.static ];
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ glibc glibc.static ];
 
   meta = with stdenv.lib; {
     description = "A tiny but valid init for containers";
diff --git a/nixpkgs/pkgs/applications/virtualization/umoci/default.nix b/nixpkgs/pkgs/applications/virtualization/umoci/default.nix
index d8a1f36dd5d3..bef40bef87b1 100644
--- a/nixpkgs/pkgs/applications/virtualization/umoci/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/umoci/default.nix
@@ -7,24 +7,26 @@
 
 buildGoModule rec {
   pname = "umoci";
-  version = "0.4.5";
+  version = "0.4.6";
 
   src = fetchFromGitHub {
-    owner = "openSUSE";
+    owner = "opencontainers";
     repo = "umoci";
     rev = "v${version}";
-    sha256 = "1gzj4nnys73wajdwjn5jsskvnhzh8s2vmyl76ax8drpvw19bd5g3";
+    sha256 = "0jaar26l940yh77cs31c3zndiycp85m3fz4zivcibzi68g6n6yzg";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
   nativeBuildInputs = [ go-md2man installShellFiles ];
 
   postInstall = ''
     sed -i '/SHELL =/d' Makefile
-    make local-doc
+    make docs
     installManPage doc/man/*.[1-9]
   '';
 
@@ -33,6 +35,6 @@ buildGoModule rec {
     homepage = "https://umo.ci";
     license = licenses.asl20;
     maintainers = with maintainers; [ zokrezyl ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/applications/virtualization/virt-manager/qt.nix b/nixpkgs/pkgs/applications/virtualization/virt-manager/qt.nix
index 85bc7c428ff2..7112a8b33e8d 100644
--- a/nixpkgs/pkgs/applications/virtualization/virt-manager/qt.nix
+++ b/nixpkgs/pkgs/applications/virtualization/virt-manager/qt.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "virt-manager-qt";
-  version = "0.70.91";
+  version = "0.71.95";
 
   src = fetchFromGitHub {
     owner  = "F1ash";
     repo   = "qt-virt-manager";
     rev    = version;
-    sha256 = "1z2kq88lljvr24z1kizvg3h7ckf545h4kjhhrjggkr0w4wjjwr43";
+    sha256 = "1s8753bzsjyixpv1c2l9d1xjcn8i47k45qj7pr50prc64ldf5f47";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix b/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
index 7b7929d9f1d6..c320eca0bbee 100644
--- a/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/default.nix
@@ -14,7 +14,6 @@
 , enableHardening ? false
 , headless ? false
 , enable32bitGuests ? true
-, patchelfUnstable # needed until 0.10 is released
 }:
 
 with stdenv.lib;
@@ -24,7 +23,8 @@ let
   buildType = "release";
   # Use maintainers/scripts/update.nix to update the version and all related hashes or
   # change the hashes in extpack.nix and guest-additions/default.nix as well manually.
-  version = "6.1.6";
+  version = "6.1.14";
+  tarballVersion = "${version}a";
 
   iasl' = iasl.overrideAttrs (old: rec {
     inherit (old) pname;
@@ -40,13 +40,13 @@ in stdenv.mkDerivation {
   inherit version;
 
   src = fetchurl {
-    url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
-    sha256 = "b031c30d770f28c5f884071ad933e8c1f83e65b93aaba03a4012077c1d90a54f";
+    url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${tarballVersion}.tar.bz2";
+    sha256 = "16f3cb83ab3c4dacf2a9d3cc638cbd18db23767828bba6b8ba1c1b57abeb6aef";
   };
 
   outputs = [ "out" "modsrc" ];
 
-  nativeBuildInputs = [ pkgconfig which docbook_xsl docbook_xml_dtd_43 patchelfUnstable ]
+  nativeBuildInputs = [ pkgconfig which docbook_xsl docbook_xml_dtd_43 ]
     ++ optional (!headless) wrapQtAppsHook;
 
   # Wrap manually because we wrap just a small number of executables.
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix b/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix
index c9918b1cedf4..03b3be7e96e0 100644
--- a/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/extpack.nix
@@ -12,7 +12,7 @@ fetchurl rec {
     # Manually sha256sum the extensionPack file, must be hex!
     # Thus do not use `nix-prefetch-url` but instead plain old `sha256sum`.
     # Checksums can also be found at https://www.virtualbox.org/download/hashes/${version}/SHA256SUMS
-    let value = "80b96b4b51a502141f6a8981f1493ade08a00762622c39e48319e5b122119bf3";
+    let value = "b224e796e886b19bce69f0aaedf6ca82bad0ca29c61fb0ed86166efb84356942";
     in assert (builtins.stringLength value) == 64; value;
 
   meta = {
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/extra_symbols.patch b/nixpkgs/pkgs/applications/virtualization/virtualbox/extra_symbols.patch
index 174bb8d9e70c..44d3d972cfc2 100644
--- a/nixpkgs/pkgs/applications/virtualization/virtualbox/extra_symbols.patch
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/extra_symbols.patch
@@ -1,21 +1,25 @@
 diff --git a/src/VBox/HostDrivers/linux/Makefile b/src/VBox/HostDrivers/linux/Makefile
-index 6e44129b..e68ce128 100644
+index 8ba33952..3b8abe60 100644
 --- a/src/VBox/HostDrivers/linux/Makefile
 +++ b/src/VBox/HostDrivers/linux/Makefile
-@@ -95,13 +95,13 @@ vboxpci: vboxdrv
- install:
- 	@$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxdrv install
- 	@if [ -d vboxnetflt ]; then \
+@@ -99,17 +99,17 @@ install-vboxdrv:
+ 
+ install-vboxnetflt:
+ 	+@if [ -d vboxnetflt ]; then \
 -	    $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetflt install; \
-+		$(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) KBUILD_EXTRA_SYMBOLS=$(abspath vboxnetflt/Module.symvers) -C vboxnetflt install; \
++	    $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) KBUILD_EXTRA_SYMBOLS=$(abspath vboxnetflt/Module.symvers) -C vboxnetflt install; \
  	fi
- 	@if [ -d vboxnetadp ]; then \
+ 
+ install-vboxnetadp:
+ 	+@if [ -d vboxnetadp ]; then \
 -	    $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxnetadp install; \
 +	    $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) KBUILD_EXTRA_SYMBOLS=$(abspath vboxnetadp/Module.symvers) -C vboxnetadp install; \
  	fi
- 	@if [ -d vboxpci ]; then \
+ 
+ install-vboxpci:
+ 	+@if [ -d vboxpci ]; then \
 -	    $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) -C vboxpci install; \
 +	    $(MAKE) KBUILD_VERBOSE=$(KBUILD_VERBOSE) KBUILD_EXTRA_SYMBOLS=$(abspath vboxpci/Module.symvers) -C vboxpci install; \
  	fi
  
- else
+ install: install-vboxdrv install-vboxnetflt install-vboxnetadp install-vboxpci
diff --git a/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index 4275bc0542e8..3937d70e869d 100644
--- a/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/nixpkgs/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -19,6 +19,7 @@ let
   dlopenLibs = [
     { name = "libdbus-1.so"; pkg = dbus; }
     { name = "libXfixes.so"; pkg = xorg.libXfixes; }
+    { name = "libXrandr.so"; pkg = xorg.libXrandr; }
   ];
 
 in stdenv.mkDerivation rec {
@@ -26,7 +27,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://download.virtualbox.org/virtualbox/${version}/VBoxGuestAdditions_${version}.iso";
-    sha256 = "bcde4691dea7de93b65a10a43dda2b8f52e570f820992ad281c9bb5c8dede181";
+    sha256 = "dd9f176abb89043c01cea7ec7e20130e76db71bd83beafeb2dc5858d4c9c86cd";
   };
 
   KERN_DIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
diff --git a/nixpkgs/pkgs/applications/window-managers/bspwm/default.nix b/nixpkgs/pkgs/applications/window-managers/bspwm/default.nix
index 52f522810437..7c7bdbe22a78 100644
--- a/nixpkgs/pkgs/applications/window-managers/bspwm/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/bspwm/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bspwm";
-  version = "0.9.9";
+  version = "0.9.10";
 
   src = fetchFromGitHub {
     owner  = "baskerville";
     repo   = "bspwm";
     rev    = version;
-    sha256 = "1i7crmljk1vra1r6alxvj6lqqailjjcv0llyg7a0gm23rbv4a42g";
+    sha256 = "0qlv7b4c2mmjfd65y100d11x8iqyg5f6lfiws3cgmpjidhdygnxc";
   };
 
   buildInputs = [ libxcb libXinerama xcbutil xcbutilkeysyms xcbutilwm ];
diff --git a/nixpkgs/pkgs/applications/window-managers/cage/default.nix b/nixpkgs/pkgs/applications/window-managers/cage/default.nix
index 0d9e3335f2c9..372ad1e27fc3 100644
--- a/nixpkgs/pkgs/applications/window-managers/cage/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/cage/default.nix
@@ -1,45 +1,45 @@
-{ stdenv, fetchFromGitHub, fetchpatch
-, meson, ninja, pkgconfig, makeWrapper
-, wlroots, wayland, wayland-protocols, pixman, libxkbcommon
+{ stdenv, fetchFromGitHub
+, meson, ninja, pkg-config, wayland, scdoc, makeWrapper
+, wlroots, wayland-protocols, pixman, libxkbcommon
 , systemd, libGL, libX11
 , xwayland ? null
+, nixosTests
 }:
 
 stdenv.mkDerivation rec {
-  pname = "cage-unstable";
-  version = "2020-01-18";
-  # The last stable release (0.1.1) would require at least the following 3 patches:
-  # - https://github.com/Hjdskes/cage/commit/33bb3c818c5971777b6f09d8821e7f078d38d262.patch
-  # - https://github.com/Hjdskes/cage/commit/51e6c760da51e2b885737d61a61cdc965bb9269d.patch
-  # - https://github.com/Hjdskes/cage/commit/84216ca2a417b237ad61c11e2f3ebbcb91681ece.patch
-  # Which need to be adapted due to other changes. At this point it seems
-  # better to use the current master version until the next stable release.
+  pname = "cage";
+  version = "0.1.2.1";
 
   src = fetchFromGitHub {
     owner = "Hjdskes";
     repo = "cage";
-    rev = "cc1f975c442ebd691b70196d76aa120ead717810";
-    sha256 = "1gkqx26pvlw00b3fgx6sh87yyjfzyj51jwxvbf9k117npkrf4b2g";
+    rev = "v${version}";
+    sha256 = "1i4rm3dpmk7gkl6hfs6a7vwz76ba7yqcdp63nlrdbnq81m9cy2am";
   };
 
-  nativeBuildInputs = [ meson ninja pkgconfig makeWrapper wayland ];
+  postPatch = ''
+    substituteInPlace meson.build --replace \
+      "0.1.2" "${version}"
+  '';
+
+  nativeBuildInputs = [ meson ninja pkg-config wayland scdoc makeWrapper ];
 
   buildInputs = [
     wlroots wayland wayland-protocols pixman libxkbcommon
-    # TODO: Not specified but required:
     systemd libGL libX11
   ];
 
-  enableParallelBuilding = true;
-
   mesonFlags = [ "-Dxwayland=${stdenv.lib.boolToString (xwayland != null)}" ];
 
   postFixup = stdenv.lib.optionalString (xwayland != null) ''
     wrapProgram $out/bin/cage --prefix PATH : "${xwayland}/bin"
   '';
 
+  # Tests Cage using the NixOS module by launching xterm:
+  passthru.tests.basic-nixos-module-functionality = nixosTests.cage;
+
   meta = with stdenv.lib; {
-    description = "A Wayland kiosk";
+    description = "A Wayland kiosk that runs a single, maximized application";
     homepage    = "https://www.hjdskes.nl/projects/cage/";
     license     = licenses.mit;
     platforms   = platforms.linux;
diff --git a/nixpkgs/pkgs/applications/window-managers/cwm/default.nix b/nixpkgs/pkgs/applications/window-managers/cwm/default.nix
index 27aacd78e9fa..18baefdbf3eb 100644
--- a/nixpkgs/pkgs/applications/window-managers/cwm/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/cwm/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "A lightweight and efficient window manager for X11";
     homepage    = "https://github.com/leahneukirchen/cwm";
-    maintainers = with maintainers; [ maintainers."0x4A6F" mkf ];
+    maintainers = with maintainers; [ _0x4A6F mkf ];
     license     = licenses.isc;
     platforms   = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/applications/window-managers/dwm/default.nix b/nixpkgs/pkgs/applications/window-managers/dwm/default.nix
index 8f9c28c78511..455e3249adf7 100644
--- a/nixpkgs/pkgs/applications/window-managers/dwm/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/dwm/default.nix
@@ -1,4 +1,6 @@
-{stdenv, fetchurl, libX11, libXinerama, libXft, patches ? []}:
+{stdenv, fetchurl, libX11, libXinerama, libXft, writeText, patches ? [], conf ? null}:
+
+with stdenv.lib;
 
 let
   name = "dwm-6.2";
@@ -18,7 +20,9 @@ stdenv.mkDerivation {
   # Allow users set their own list of patches
   inherit patches;
 
-  buildPhase = " make ";
+  # Allow users to set the config.def.h file containing the configuration
+  postPatch = let configFile = if isDerivation conf || builtins.isPath conf then conf else writeText "config.def.h" conf;
+  in optionalString (conf!=null) "cp ${configFile} config.def.h";
 
   meta = {
     homepage = "https://suckless.org/";
diff --git a/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix b/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix
index 176c2a0ddff9..c7c72b4d4025 100644
--- a/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix
+++ b/nixpkgs/pkgs/applications/window-managers/dwm/dwm-status.nix
@@ -9,19 +9,19 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "dwm-status";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "Gerschtli";
     repo = "dwm-status";
     rev = version;
-    sha256 = "1a3dpawxgi8d2a6w5jzvzm5q13rvqd656ris8mz77gj6f8qp7ddl";
+    sha256 = "172qkzbi37j6wx81pyqqffi9wxbg3bf8nis7d15ncn1yfd5r4gqh";
   };
 
   nativeBuildInputs = [ makeWrapper pkgconfig ];
   buildInputs = [ dbus gdk-pixbuf libnotify xorg.libX11 ];
 
-  cargoSha256 = "12b6fdhj13axhwf854n071dpiycg73g4kvl7igk1qn7l3gqwsfqn";
+  cargoSha256 = "041sd9zm1c3v6iihnwjcya2xg5yxb2y4biyxpjlfblz2srxa15dm";
 
   postInstall = lib.optionalString (bins != [])  ''
     wrapProgram $out/bin/dwm-status --prefix "PATH" : "${stdenv.lib.makeBinPath bins}"
diff --git a/nixpkgs/pkgs/applications/window-managers/hikari/default.nix b/nixpkgs/pkgs/applications/window-managers/hikari/default.nix
index 274c75a3c13c..9bf68adaef42 100644
--- a/nixpkgs/pkgs/applications/window-managers/hikari/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/hikari/default.nix
@@ -12,7 +12,7 @@
 
 let
   pname = "hikari";
-  version = "2.0.2";
+  version = "2.1.2";
 in
 
 stdenv.mkDerivation {
@@ -20,7 +20,7 @@ stdenv.mkDerivation {
 
   src = fetchzip {
     url = "https://hikari.acmelabs.space/releases/${pname}-${version}.tar.gz";
-    sha256 = "1a3i01936pw11hrmjmrhzzwpndl1jqjgx376m5m724wd1j9awm68";
+    sha256 = "1qzbwc8dgsvp5jb4faapcrg9npsl11gq8jvhbbk2h7hj52c5lgmv";
   };
 
   nativeBuildInputs = [ pkgconfig bmake ];
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/default.nix b/nixpkgs/pkgs/applications/window-managers/i3/default.nix
index 3888e10f2585..b37a83648ae5 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "i3";
-  version = "4.18.1";
+  version = "4.18.2";
 
   src = fetchurl {
     url = "https://i3wm.org/downloads/${pname}-${version}.tar.bz2";
-    sha256 = "0z709cianlzw0x0qwq4361347354xd9ckj1v7vjvhb1zh3x91gws";
+    sha256 = "030jym6b8b07yf4y6pb806hg8k77zsprv569gy0r72rh5zb1g1mj";
   };
 
   nativeBuildInputs = [ which pkgconfig makeWrapper installShellFiles ];
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix b/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix
index 7be037ca8333..fa1c97c14c1d 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/gaps.nix
@@ -3,11 +3,11 @@
 i3.overrideAttrs (oldAttrs : rec {
 
   name = "i3-gaps-${version}";
-  version = "4.18.1";
+  version = "4.18.2";
 
   src = fetchurl {
     url = "https://github.com/Airblader/i3/releases/download/${version}/i3-${version}.tar.bz2";
-    sha256 = "1cxwsrdzp18r5hj0ymg9fbzp1mhkj4m9h6i0b9cdg79cjbacba9k";
+    sha256 = "0lz08wf4b0yprzqsmymn94kiyg885dcwmh0p64v2rnf52s165g2g";
   };
 
   nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/i3ipc-glib.nix b/nixpkgs/pkgs/applications/window-managers/i3/i3ipc-glib.nix
index 7e6a18c93c56..af353589a7ed 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/i3ipc-glib.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/i3ipc-glib.nix
@@ -6,13 +6,13 @@
 stdenv.mkDerivation rec {
 
   pname = "i3ipc-glib";
-  version = "0.6.0";
+  version = "1.0.1";
 
   src = fetchFromGitHub {
     owner = "acrisci";
     repo = "i3ipc-glib";
     rev = "v${version}";
-    sha256 = "1gmk1zjafrn6jh4j7r0wkwrpwvf9drl1lcw8vya23i1f4zbk0wh4";
+    sha256 = "01fzvrbnzcwx0vxw29igfpza9zwzp2s7msmzb92v01z0rz0y5m0p";
   };
 
   nativeBuildInputs = [ autoreconfHook which pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix b/nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix
index c5e203ab1a58..a64e5ea33693 100644
--- a/nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix
+++ b/nixpkgs/pkgs/applications/window-managers/i3/lock-color.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.12.c.4";
+  version = "2.12.c.5";
   pname = "i3lock-color";
 
   src = fetchFromGitHub {
     owner = "PandorasFox";
     repo = "i3lock-color";
     rev = version;
-    sha256 = "1jbk7kd49vgmakbldwwnbsp484fwh1pbzg8k8qvbq4dzbzf3q5hs";
+    sha256 = "10h50a6p9ivqjz8hd5pn9l03vz6y9dxdx68bprqssfzdkzqnzaiv";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix b/nixpkgs/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix
new file mode 100644
index 000000000000..f6e24d979a45
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/i3/lock-fancy-rapid.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, xorg, i3lock }:
+
+stdenv.mkDerivation rec {
+  pname = "i3lock-fancy-rapid";
+  version = "2019-10-09";
+  src = fetchFromGitHub {
+    owner = "yvbbrjdr";
+    repo = "i3lock-fancy-rapid";
+    rev = "c67f09bc8a48798c7c820d7d4749240b10865ce0";
+    sha256 = "0jhvlj6v6wx70239pgkjxd42z1s2bzfg886ra6n1rzsdclf4rkc6";
+  };
+
+  buildInputs = [ xorg.libX11 ];
+  propagatedBuildInputs = [ i3lock ];
+
+  postPatch = ''
+    substituteInPlace i3lock-fancy-rapid.c \
+      --replace '"i3lock"' '"${i3lock}/bin/i3lock"'
+  '';
+
+  installPhase = ''
+    install -D i3lock-fancy-rapid $out/bin/i3lock-fancy-rapid
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A faster implementation of i3lock-fancy";
+    homepage = "https://github.com/yvbbrjdr/i3lock-fancy-rapid";
+    maintainers = with maintainers; [ nickhu ];
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/icewm/default.nix b/nixpkgs/pkgs/applications/window-managers/icewm/default.nix
index bacfb9674f6a..8043134f8c90 100644
--- a/nixpkgs/pkgs/applications/window-managers/icewm/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/icewm/default.nix
@@ -9,13 +9,13 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "icewm";
-  version = "1.6.6";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner  = "bbidulock";
     repo   = "icewm";
     rev    = version;
-    sha256 = "05jg2gs5cdxn2kfm2y6yrqxpza5s1zsgb52168psmzhb4nakpv42";
+    sha256 = "0qd3cakhhjc7h6xr9q3ia9f8wln6q23dlqvw19khia26c0dgyd7b";
   };
 
   nativeBuildInputs = [ cmake pkgconfig perl asciidoc ];
diff --git a/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix b/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix
index ade3904b95c2..06ebd7e0e924 100644
--- a/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/leftwm/default.nix
@@ -6,16 +6,16 @@ in
 
 rustPlatform.buildRustPackage rec {
   pname = "leftwm";
-  version = "0.2.2";
+  version = "0.2.4";
 
   src = fetchFromGitHub {
     owner = "leftwm";
     repo = "leftwm";
     rev = version;
-    sha256 = "0x8cqc7zay19jxy7cshayjjwwjrcblqpmqrxipm2g5hhyjghk6q0";
+    sha256 = "0xmkhkdpz1bpczrar9y6assdzhd7qxybnkjqs36h099fk9xqmsav";
   };
 
-  cargoSha256 = "1kphv3vnr8ij7raf0niwz3rwly986xi5fgwqg2ya0r46ifqkgvrc";
+  cargoSha256 = "06wnx81fhs19pz5qnir6h2v2kmj73y1g354nadcx6650q9pnhdv4";
 
   buildInputs = [ makeWrapper libX11 libXinerama ];
 
diff --git a/nixpkgs/pkgs/applications/window-managers/notion/default.nix b/nixpkgs/pkgs/applications/window-managers/notion/default.nix
index c18b2129f098..494bb9ff1b71 100644
--- a/nixpkgs/pkgs/applications/window-managers/notion/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/notion/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "notion";
-  version = "4.0.0";
+  version = "4.0.1";
 
   src = fetchFromGitHub {
     owner = "raboof";
     repo = pname;
     rev = version;
-    sha256 = "0rqfvwkj0j862hf6i4wsmb6185xibsskfj9kwy896qcpcg8w4kk7";
+    sha256 = "1s0fyacygvc9iz7b9v3b2cmzzqc02nh4g1p9bfcxbg254iscd502";
   };
 
   nativeBuildInputs = [ pkgconfig makeWrapper groff ];
diff --git a/nixpkgs/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch b/nixpkgs/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch
index 219d6dcbe207..ed22ed99b078 100644
--- a/nixpkgs/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch
+++ b/nixpkgs/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch
@@ -1,30 +1,31 @@
+diff --git a/libqtile/backend/x11/xcursors.py b/libqtile/backend/x11/xcursors.py
+index 24454b83..ef37875c 100644
+--- a/libqtile/backend/x11/xcursors.py
++++ b/libqtile/backend/x11/xcursors.py
+@@ -107,7 +107,7 @@ class Cursors(dict):
+ 
+     def _setup_xcursor_binding(self):
+         try:
+-            xcursor = ffi.dlopen('libxcb-cursor.so.0')
++            xcursor = ffi.dlopen('@xcb-cursor@/lib/libxcb-cursor.so.0')
+         except OSError:
+             logger.warning("xcb-cursor not found, fallback to font pointer")
+             return False
 diff --git a/libqtile/pangocffi.py b/libqtile/pangocffi.py
-index 1e8f5c04..e860d43a 100644
+index dbae27ed..54c2c35f 100644
 --- a/libqtile/pangocffi.py
 +++ b/libqtile/pangocffi.py
-@@ -58,9 +58,9 @@ except ImportError:
-     else:
-         raise ImportError("No module named libqtile._ffi_pango, be sure to run `python ./libqtile/ffi_build.py`")
+@@ -52,10 +52,9 @@ try:
+ except ImportError:
+     raise ImportError("No module named libqtile._ffi_pango, be sure to run `./scripts/ffibuild`")
  
 -gobject = ffi.dlopen('libgobject-2.0.so.0')
 -pango = ffi.dlopen('libpango-1.0.so.0')
 -pangocairo = ffi.dlopen('libpangocairo-1.0.so.0')
+-
 +gobject = ffi.dlopen('@glib@/lib/libgobject-2.0.so.0')
 +pango = ffi.dlopen('@pango@/lib/libpango-1.0.so.0')
 +pangocairo = ffi.dlopen('@pango@/lib/libpangocairo-1.0.so.0')
  
- 
- def CairoContext(cairo_t):
-diff --git a/libqtile/xcursors.py b/libqtile/xcursors.py
-index f1133555..3e61204a 100644
---- a/libqtile/xcursors.py
-+++ b/libqtile/xcursors.py
-@@ -112,7 +112,7 @@ class Cursors(dict):
- 
-     def _setup_xcursor_binding(self):
-         try:
--            xcursor = ffi.dlopen('libxcb-cursor.so.0')
-+            xcursor = ffi.dlopen('@xcb-cursor@/lib/libxcb-cursor.so.0')
-         except OSError:
-             logger.warning("xcb-cursor not found, fallback to font pointer")
-             return False
+ def patch_cairo_context(cairo_t):
+     def create_layout():
diff --git a/nixpkgs/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch b/nixpkgs/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch
index a01f14062f1d..1eaa5b84174c 100644
--- a/nixpkgs/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch
+++ b/nixpkgs/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch
@@ -1,5 +1,5 @@
 diff --git a/bin/qshell b/bin/qshell
-index 2ba7e61c..0ac2a2ef 100755
+index 5c652b7a..2d169eb2 100755
 --- a/bin/qshell
 +++ b/bin/qshell
 @@ -28,5 +28,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
@@ -10,7 +10,7 @@ index 2ba7e61c..0ac2a2ef 100755
      from libqtile.scripts import qshell
      qshell.main()
 diff --git a/bin/qtile b/bin/qtile
-index 3e82814d..335b5cea 100755
+index ebc8fab5..08a965ef 100755
 --- a/bin/qtile
 +++ b/bin/qtile
 @@ -29,5 +29,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
@@ -20,8 +20,19 @@ index 3e82814d..335b5cea 100755
 +    __import__("importlib").import_module("libqtile.utils").restore_os_environment()
      from libqtile.scripts import qtile
      qtile.main()
+diff --git a/bin/qtile-cmd b/bin/qtile-cmd
+index a2136ee6..3d37a6d9 100755
+--- a/bin/qtile-cmd
++++ b/bin/qtile-cmd
+@@ -8,5 +8,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
+ sys.path.insert(0, base_dir)
+ 
+ if __name__ == '__main__':
++    __import__("importlib").import_module("libqtile.utils").restore_os_environment()
+     from libqtile.scripts import qtile_cmd
+     qtile_cmd.main()
 diff --git a/bin/qtile-run b/bin/qtile-run
-index e4b121be..1c203bc9 100755
+index ac4cb1fd..74c589cb 100755
 --- a/bin/qtile-run
 +++ b/bin/qtile-run
 @@ -8,5 +8,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
@@ -32,7 +43,7 @@ index e4b121be..1c203bc9 100755
      from libqtile.scripts import qtile_run
      qtile_run.main()
 diff --git a/bin/qtile-top b/bin/qtile-top
-index 5316e0e7..272c6430 100755
+index a6251f27..0d524b1d 100755
 --- a/bin/qtile-top
 +++ b/bin/qtile-top
 @@ -8,5 +8,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
@@ -43,14 +54,13 @@ index 5316e0e7..272c6430 100755
      from libqtile.scripts import qtile_top
      qtile_top.main()
 diff --git a/libqtile/utils.py b/libqtile/utils.py
-index 550ed02677e..1358a66f3df 100644
+index 2628c898..05117be7 100644
 --- a/libqtile/utils.py
 +++ b/libqtile/utils.py
-@@ -272,3 +272,11 @@ def safe_import(module_names, class_name, globals_, fallback=None):
-         logger.debug("%s", traceback.format_exc())
-         if fallback:
-             globals_[class_name] = fallback(module_path, class_name, error)
-+
+@@ -270,3 +270,10 @@ def guess_terminal():
+         return terminal
+ 
+     logger.error('Default terminal has not been found.')
 +
 +def restore_os_environment():
 +    pythonpath = os.environ.pop("QTILE_SAVED_PYTHONPATH", "")
@@ -58,3 +68,4 @@ index 550ed02677e..1358a66f3df 100644
 +    path = os.environ.pop("QTILE_SAVED_PATH", None)
 +    if path:
 +        os.environ["PATH"] = path
+
diff --git a/nixpkgs/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch b/nixpkgs/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch
index 87fd19773794..c04d8a83c1a2 100644
--- a/nixpkgs/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch
+++ b/nixpkgs/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch
@@ -1,8 +1,8 @@
-diff --git a/libqtile/manager.py b/libqtile/manager.py
-index fc198e9bae7..860b97d8db1 100644
---- a/libqtile/manager.py
-+++ b/libqtile/manager.py
-@@ -1402,7 +1402,7 @@ class Qtile(command.CommandObject):
+diff --git a/libqtile/core/manager.py b/libqtile/core/manager.py
+index c22eeb6a..2ffe4eab 100644
+--- a/libqtile/core/manager.py
++++ b/libqtile/core/manager.py
+@@ -278,7 +278,7 @@ class Qtile(CommandObject):
              logger.error("Unable to pickle qtile state")
          argv = [s for s in argv if not s.startswith('--with-state')]
          argv.append('--with-state=' + buf.getvalue().decode())
@@ -10,4 +10,4 @@ index fc198e9bae7..860b97d8db1 100644
 +        self._restart = (os.environ.get("QTILE_WRAPPER", "@out@/bin/qtile"), argv[1:])
          self.stop()
  
-     def cmd_spawn(self, cmd):
+     async def finalize(self):
diff --git a/nixpkgs/pkgs/applications/window-managers/qtile/default.nix b/nixpkgs/pkgs/applications/window-managers/qtile/default.nix
index eb56e9c16390..eccf5c163a8e 100644
--- a/nixpkgs/pkgs/applications/window-managers/qtile/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/qtile/default.nix
@@ -7,13 +7,13 @@ in
 
 python37Packages.buildPythonApplication rec {
   name = "qtile-${version}";
-  version = "0.13.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "qtile";
     repo = "qtile";
     rev = "v${version}";
-    sha256 = "1lyclnn8hs6wl4w9v5b4hh2q0pvmsn7cyibpskhbpw0cgv7bvi90";
+    sha256 = "1klv1k9847nyx71sfrhqyl1k51k2w8phqnp2bns4dvbqii7q125l";
   };
 
   patches = [
@@ -23,16 +23,18 @@ python37Packages.buildPythonApplication rec {
   ];
 
   postPatch = ''
-    substituteInPlace libqtile/manager.py --subst-var-by out $out
+    substituteInPlace libqtile/core/manager.py --subst-var-by out $out
     substituteInPlace libqtile/pangocffi.py --subst-var-by glib ${glib.out}
     substituteInPlace libqtile/pangocffi.py --subst-var-by pango ${pango.out}
-    substituteInPlace libqtile/xcursors.py --subst-var-by xcb-cursor ${xcbutilcursor.out}
+    substituteInPlace libqtile/backend/x11/xcursors.py --subst-var-by xcb-cursor ${xcbutilcursor.out}
   '';
 
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ glib libxcb cairo pango python37Packages.xcffib ];
 
-  pythonPath = with python37Packages; [ xcffib cairocffi-xcffib setuptools ];
+  pythonPath = with python37Packages; [ xcffib cairocffi-xcffib setuptools setuptools_scm ]; 
 
   postInstall = ''
     wrapProgram $out/bin/qtile \
@@ -41,7 +43,7 @@ python37Packages.buildPythonApplication rec {
       --run 'export QTILE_SAVED_PATH=$PATH'
   '';
 
-  doCheck = false; # Requires X server.
+  doCheck = false; # Requires X server #TODO this can be worked out with the existing NixOS testing infrastructure.
 
   meta = with stdenv.lib; {
     homepage = "http://www.qtile.org/";
diff --git a/nixpkgs/pkgs/applications/window-managers/spectrwm/default.nix b/nixpkgs/pkgs/applications/window-managers/spectrwm/default.nix
index b38cb9906178..c3ab55894860 100644
--- a/nixpkgs/pkgs/applications/window-managers/spectrwm/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/spectrwm/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "spectrwm";
-  version = "3.3.0";
+  version = "3.4.1";
 
   src = fetchFromGitHub {
     owner = "conformal";
     repo = "spectrwm";
-    rev = "SPECTRWM_3_3_0";
-    sha256 = "139mswlr0z5dbp5migm98qqg84syq0py1qladp3226xy6q3bnn08";
+    rev = "SPECTRWM_3_4_1";
+    sha256 = "0bf0d25yr0craksamczn2mdy6cjp27l88smihlw9bw4p6a2qhi41";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/window-managers/sway/contrib.nix b/nixpkgs/pkgs/applications/window-managers/sway/contrib.nix
index e2c27fb470f7..fd44f4a5be50 100644
--- a/nixpkgs/pkgs/applications/window-managers/sway/contrib.nix
+++ b/nixpkgs/pkgs/applications/window-managers/sway/contrib.nix
@@ -18,23 +18,11 @@
 
 grimshot = stdenv.mkDerivation rec {
   pname = "grimshot";
-  version = "2020-05-08";
-  rev = "b1d08db5f5112ab562f89564825e3e791b0682c4";
-
-  # master has new fixes and features, and a man page
-  # after sway-1.5 these may be switched to sway-unwrapped.src
-  bsrc = fetchurl {
-    url = "https://raw.githubusercontent.com/swaywm/sway/${rev}/contrib/grimshot";
-    sha256 = "1awzmzkib8a7q5s78xyh8za03lplqfpbasqp3lidqqmjqs882jq9";
-  };
+  version = sway-unwrapped.version;
 
-  msrc = fetchurl {
-    url = "https://raw.githubusercontent.com/swaywm/sway/${rev}/contrib/grimshot.1";
-    sha256 = "191xxjfhf61gkxl3b0f694h0nrwd7vfnyp5afk8snhhr6q7ia4jz";
-  };
+  src = sway-unwrapped.src;
 
   dontBuild = true;
-  dontUnpack = true;
   dontConfigure = true;
 
   outputs = [ "out" "man" ];
@@ -42,9 +30,9 @@ grimshot = stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
   installPhase = ''
-    installManPage ${msrc}
+    installManPage contrib/grimshot.1
 
-    install -Dm 0755 ${bsrc} $out/bin/grimshot
+    install -Dm 0755 contrib/grimshot $out/bin/grimshot
     wrapProgram $out/bin/grimshot --set PATH \
       "${stdenv.lib.makeBinPath [
         sway-unwrapped
diff --git a/nixpkgs/pkgs/applications/window-managers/sway/lock-effects.nix b/nixpkgs/pkgs/applications/window-managers/sway/lock-effects.nix
index e07080497f43..a6c8d5cd1c32 100644
--- a/nixpkgs/pkgs/applications/window-managers/sway/lock-effects.nix
+++ b/nixpkgs/pkgs/applications/window-managers/sway/lock-effects.nix
@@ -6,14 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "swaylock-effects";
-  version = "v1.6-0";
+  version = "v1.6-1";
 
   src = fetchFromGitHub {
     owner = "mortie";
     repo = "swaylock-effects";
     rev = version;
-    sha256 = "15lshqq3qj9m3yfac65hjcciaf9zdfh3ir7hgh0ach7gpi3rbk13";
-
+    sha256 = "044fc4makjx8v29fkx5xlil6vr1v4r0k6c8741pl67gzvlm4cx3i";
   };
 
   postPatch = ''
@@ -30,7 +29,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Screen locker for Wayland";
     longDescription = ''
-      swaylock-effects is a screen locking utility for Wayland compositors.
+      Swaylock, with fancy effects
     '';
     inherit (src.meta) homepage;
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/applications/window-managers/sxhkd/default.nix b/nixpkgs/pkgs/applications/window-managers/sxhkd/default.nix
index 2404129b165d..ac28abc31d3f 100644
--- a/nixpkgs/pkgs/applications/window-managers/sxhkd/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/sxhkd/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sxhkd";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchFromGitHub {
     owner = "baskerville";
     repo = "sxhkd";
     rev = version;
-    sha256 = "0j7bl2l06r0arrjzpz7al9j6cwzc730knbsijp7ixzz96pq7xa2h";
+    sha256 = "1winwzdy9yxvxnrv8gqpigl9y0c2px27mnms62bdilp4x6llrs9r";
   };
 
   buildInputs = [ asciidoc libxcb xcbutil xcbutilkeysyms xcbutilwm ];
diff --git a/nixpkgs/pkgs/applications/window-managers/weston/default.nix b/nixpkgs/pkgs/applications/window-managers/weston/default.nix
index 4a09cac9344a..a1f3b3708a42 100644
--- a/nixpkgs/pkgs/applications/window-managers/weston/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/weston/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig
-, wayland, libGL, mesa, libxkbcommon, cairo, libxcb
+{ stdenv, fetchurl, meson, ninja, pkg-config, wayland
+, libGL, mesa, libxkbcommon, cairo, libxcb
 , libXcursor, xlibsWrapper, udev, libdrm, mtdev, libjpeg, pam, dbus, libinput, libevdev
 , colord, lcms2, pipewire ? null
 , pango ? null, libunwind ? null, freerdp ? null, vaapi ? null, libva ? null
@@ -10,14 +10,14 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "weston";
-  version = "8.0.0";
+  version = "9.0.0";
 
   src = fetchurl {
     url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "0j3q0af3595g4wcicldgy749zm2g2b6bswa6ya8k075a5sdv863m";
+    sha256 = "1zlql0xgiqc3pvgbpnnvj4xvpd91pwva8qf83xfb23if377ddxaw";
   };
 
-  nativeBuildInputs = [ meson ninja pkgconfig ];
+  nativeBuildInputs = [ meson ninja pkg-config wayland ];
   buildInputs = [
     wayland libGL mesa libxkbcommon cairo libxcb libXcursor xlibsWrapper udev libdrm
     mtdev libjpeg pam dbus libinput libevdev pango libunwind freerdp vaapi libva
@@ -45,9 +45,19 @@ stdenv.mkDerivation rec {
   passthru.providedSessions = [ "weston" ];
 
   meta = {
-    description = "Reference implementation of a Wayland compositor";
-    homepage = "https://wayland.freedesktop.org/";
-    license = licenses.mit;
+    description = "A lightweight and functional Wayland compositor";
+    longDescription = ''
+      Weston is the reference implementation of a Wayland compositor, as well
+      as a useful environment in and of itself.
+      Out of the box, Weston provides a very basic desktop, or a full-featured
+      environment for non-desktop uses such as automotive, embedded, in-flight,
+      industrial, kiosks, set-top boxes and TVs. It also provides a library
+      allowing other projects to build their own full-featured environments on
+      top of Weston's core. A small suite of example or demo clients are also
+      provided.
+    '';
+    homepage = "https://gitlab.freedesktop.org/wayland/weston";
+    license = licenses.mit; # Expat version
     platforms = platforms.linux;
     maintainers = with maintainers; [ primeos ];
   };
diff --git a/nixpkgs/pkgs/applications/window-managers/windowchef/default.nix b/nixpkgs/pkgs/applications/window-managers/windowchef/default.nix
new file mode 100644
index 000000000000..efba3863276d
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/windowchef/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, libxcb, libXrandr
+, xcbutil, xcbutilkeysyms, xcbutilwm, xcbproto
+}:
+
+stdenv.mkDerivation rec {
+  pname = "windowchef";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner  = "tudurom";
+    repo   = "windowchef";
+    rev    = "v${version}";
+    sha256 = "0fs5ss2z6qjxvmls0g2f3gmv8hshi81xsmmcjn9x7651rv9552pl";
+  };
+
+  buildInputs = [ libxcb libXrandr xcbutil xcbutilkeysyms xcbutilwm xcbproto];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    description = "A stacking window manager that cooks windows with orders from the Waitron";
+    homepage = "https://github.com/tudurom/windowchef";
+    maintainers = with maintainers; [ bhougland ];
+    license = licenses.isc;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/applications/window-managers/windowmaker/default.nix b/nixpkgs/pkgs/applications/window-managers/windowmaker/default.nix
index 64783ac5fbe8..9f5d2e2539df 100644
--- a/nixpkgs/pkgs/applications/window-managers/windowmaker/default.nix
+++ b/nixpkgs/pkgs/applications/window-managers/windowmaker/default.nix
@@ -4,12 +4,12 @@
 
 stdenv.mkDerivation rec {
   pname = "windowmaker";
-  version = "0.95.8";
+  version = "0.95.9";
   srcName = "WindowMaker-${version}";
 
   src = fetchurl {
     url = "http://windowmaker.org/pub/source/release/${srcName}.tar.gz";
-    sha256 = "12p8kljqgx5hnic0zvs5mxwp7kg21sb6qjagb2qw8ydvf5amrgwx";
+    sha256 = "055pqvlkhipyjn7m6bb3fs4zz9rd1ynzl0mmwbhp05ihc3zmh8zj";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -21,7 +21,8 @@ stdenv.mkDerivation rec {
     "--with-x"
     "--enable-modelock"
     "--enable-randr"
-    "--enable-magick"
+    "--enable-webp"
+    "--disable-magick" # Many distros reported imagemagick fails to be found
   ];
 
   meta = with stdenv.lib; {
@@ -40,5 +41,3 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.AndersonTorres ];
   };
 }
-
-# TODO: investigate support for WEBP (its autodetection is failing)
diff --git a/nixpkgs/pkgs/build-support/alternatives/blas/default.nix b/nixpkgs/pkgs/build-support/alternatives/blas/default.nix
index bdee6688a740..5ebbc737e11a 100644
--- a/nixpkgs/pkgs/build-support/alternatives/blas/default.nix
+++ b/nixpkgs/pkgs/build-support/alternatives/blas/default.nix
@@ -70,9 +70,9 @@ stdenv.mkDerivation {
     exit 1
   fi
 
-  nm -an "$libblas" | cut -f3 -d' ' > symbols
+  $NM -an "$libblas" | cut -f3 -d' ' > symbols
   for symbol in ${toString blasFortranSymbols}; do
-    grep "^$symbol_$" symbols || { echo "$symbol" was not found in "$libblas"; exit 1; }
+    grep -q "^$symbol_$" symbols || { echo "$symbol" was not found in "$libblas"; exit 1; }
   done
 
   cp -L "$libblas" $out/lib/libblas${canonicalExtension}
diff --git a/nixpkgs/pkgs/build-support/appimage/default.nix b/nixpkgs/pkgs/build-support/appimage/default.nix
index 58c5988ea4f9..e6014e35aef9 100644
--- a/nixpkgs/pkgs/build-support/appimage/default.nix
+++ b/nixpkgs/pkgs/build-support/appimage/default.nix
@@ -84,6 +84,7 @@ rec {
 
       gst_all_1.gstreamer
       gst_all_1.gst-plugins-ugly
+      gst_all_1.gst-plugins-base
       libdrm
       xorg.xkeyboardconfig
       xorg.libpciaccess
@@ -162,8 +163,6 @@ rec {
       SDL_mixer
       SDL2_ttf
       SDL2_mixer
-      gstreamer
-      gst-plugins-base
       libappindicator-gtk2
       libcaca
       libcanberra
diff --git a/nixpkgs/pkgs/build-support/build-bazel-package/default.nix b/nixpkgs/pkgs/build-support/build-bazel-package/default.nix
index 31c0c8e92e56..4d22a329e416 100644
--- a/nixpkgs/pkgs/build-support/build-bazel-package/default.nix
+++ b/nixpkgs/pkgs/build-support/build-bazel-package/default.nix
@@ -30,6 +30,19 @@ args@{
 , removeRulesCC ? true
 , removeLocalConfigCc ? true
 , removeLocal ? true
+
+# Use build --nobuild instead of fetch. This allows fetching the dependencies
+# required for the build as configured, rather than fetching all the dependencies
+# which may not work in some situations (e.g. Java code which ends up relying on
+# Debian-specific /usr/share/java paths, but doesn't in the configured build).
+, fetchConfigured ? false
+
+# Don’t add Bazel --copt and --linkopt from NIX_CFLAGS_COMPILE /
+# NIX_LDFLAGS. This is necessary when using a custom toolchain which
+# Bazel wants all headers / libraries to come from, like when using
+# CROSSTOOL. Weirdly, we can still get the flags through the wrapped
+# compiler.
+, dontAddBazelOpts ? false
 , ...
 }:
 
@@ -79,7 +92,7 @@ in stdenv.mkDerivation (fBuildAttrs // {
       bazel \
         --output_base="$bazelOut" \
         --output_user_root="$bazelUserRoot" \
-        fetch \
+        ${if fetchConfigured then "build --nobuild" else "fetch"} \
         --loading_phase_threads=1 \
         $bazelFlags \
         $bazelFetchFlags \
@@ -112,7 +125,8 @@ in stdenv.mkDerivation (fBuildAttrs // {
       # platforms -> NIX_BUILD_TOP/tmp/install/35282f5123611afa742331368e9ae529/_embedded_binaries/platforms
       find $bazelOut/external -maxdepth 1 -type l | while read symlink; do
         name="$(basename "$symlink")"
-        rm "$symlink" "$bazelOut/external/@$name.marker"
+        rm "$symlink"
+        test -f "$bazelOut/external/@$name.marker" && rm "$bazelOut/external/@$name.marker"
       done
 
       # Patching symlinks to remove build directory reference
@@ -162,6 +176,8 @@ in stdenv.mkDerivation (fBuildAttrs // {
     done
   '' + fBuildAttrs.preConfigure or "";
 
+  inherit dontAddBazelOpts;
+
   buildPhase = fBuildAttrs.buildPhase or ''
     runHook preBuild
 
@@ -173,20 +189,22 @@ in stdenv.mkDerivation (fBuildAttrs // {
     #
     copts=()
     host_copts=()
-    for flag in $NIX_CFLAGS_COMPILE; do
-      copts+=( "--copt=$flag" )
-      host_copts+=( "--host_copt=$flag" )
-    done
-    for flag in $NIX_CXXSTDLIB_COMPILE; do
-      copts+=( "--copt=$flag" )
-      host_copts+=( "--host_copt=$flag" )
-    done
     linkopts=()
     host_linkopts=()
-    for flag in $NIX_LDFLAGS; do
-      linkopts+=( "--linkopt=-Wl,$flag" )
-      host_linkopts+=( "--host_linkopt=-Wl,$flag" )
-    done
+    if [ -z "''${dontAddBazelOpts:-}" ]; then
+      for flag in $NIX_CFLAGS_COMPILE; do
+        copts+=( "--copt=$flag" )
+        host_copts+=( "--host_copt=$flag" )
+      done
+      for flag in $NIX_CXXSTDLIB_COMPILE; do
+        copts+=( "--copt=$flag" )
+        host_copts+=( "--host_copt=$flag" )
+      done
+      for flag in $NIX_LDFLAGS; do
+        linkopts+=( "--linkopt=-Wl,$flag" )
+        host_linkopts+=( "--host_linkopt=-Wl,$flag" )
+      done
+    fi
 
     BAZEL_USE_CPP_ONLY_TOOLCHAIN=1 \
     USER=homeless-shelter \
diff --git a/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix b/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
new file mode 100644
index 000000000000..c7cfd27d3faa
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix
@@ -0,0 +1,123 @@
+{ callPackage, runCommandLocal, writeShellScriptBin, stdenv, coreutils, bubblewrap }:
+
+let buildFHSEnv = callPackage ./env.nix { }; in
+
+args @ {
+  name,
+  runScript ? "bash",
+  extraInstallCommands ? "",
+  meta ? {},
+  passthru ? {},
+  ...
+}:
+
+with builtins;
+let
+  env = buildFHSEnv (removeAttrs args [
+    "runScript" "extraInstallCommands" "meta" "passthru"
+  ]);
+
+  chrootenv = callPackage ./chrootenv {};
+
+  etcBindFlags = let
+    files = [
+      # NixOS Compatibility
+      "static"
+      # Users, Groups, NSS
+      "passwd"
+      "group"
+      "shadow"
+      "hosts"
+      "resolv.conf"
+      "nsswitch.conf"
+      # Sudo & Su
+      "login.defs"
+      "sudoers"
+      "sudoers.d"
+      # Time
+      "localtime"
+      "zoneinfo"
+      # Other Core Stuff
+      "machine-id"
+      "os-release"
+      # PAM
+      "pam.d"
+      # Fonts
+      "fonts"
+      # ALSA
+      "asound.conf"
+      # SSL
+      "ssl/certs"
+      "pki"
+    ];
+  in concatStringsSep " \\\n  "
+  (map (file: "--ro-bind-try /etc/${file} /etc/${file}") files);
+
+  init = run: writeShellScriptBin "${name}-init" ''
+    source /etc/profile
+    exec ${run} "$@"
+  '';
+
+  bwrapCmd = { initArgs ? "" }: ''
+    blacklist="/nix /dev /proc /etc"
+    ro_mounts=""
+    for i in ${env}/*; do
+      path="/''${i##*/}"
+      if [[ $path == '/etc' ]]; then
+        continue
+      fi
+      ro_mounts="$ro_mounts --ro-bind $i $path"
+      blacklist="$blacklist $path"
+    done
+
+    if [[ -d ${env}/etc ]]; then
+      for i in ${env}/etc/*; do
+        path="/''${i##*/}"
+        ro_mounts="$ro_mounts --ro-bind $i /etc$path"
+      done
+    fi
+
+    auto_mounts=""
+    # loop through all directories in the root
+    for dir in /*; do
+      # if it is a directory and it is not in the blacklist
+      if [[ -d "$dir" ]] && grep -v "$dir" <<< "$blacklist" >/dev/null; then
+        # add it to the mount list
+        auto_mounts="$auto_mounts --bind $dir $dir"
+      fi
+    done
+
+    exec ${bubblewrap}/bin/bwrap \
+      --dev-bind /dev /dev \
+      --proc /proc \
+      --chdir "$(pwd)" \
+      --unshare-all \
+      --share-net \
+      --die-with-parent \
+      --ro-bind /nix /nix \
+      ${etcBindFlags} \
+      $ro_mounts \
+      $auto_mounts \
+      ${init runScript}/bin/${name}-init ${initArgs}
+  '';
+
+  bin = writeShellScriptBin name (bwrapCmd { initArgs = ''"$@"''; });
+
+in runCommandLocal name {
+  inherit meta;
+
+  passthru = passthru // {
+    env = runCommandLocal "${name}-shell-env" {
+      shellHook = bwrapCmd {};
+    } ''
+      echo >&2 ""
+      echo >&2 "*** User chroot 'env' attributes are intended for interactive nix-shell sessions, not for building! ***"
+      echo >&2 ""
+      exit 1
+    '';
+  };
+} ''
+  mkdir -p $out/bin
+  ln -s ${bin}/bin/${name} $out/bin/${name}
+  ${extraInstallCommands}
+''
diff --git a/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix b/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
new file mode 100644
index 000000000000..8b2d46c4ae98
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/build-fhs-userenv-bubblewrap/env.nix
@@ -0,0 +1,167 @@
+{ stdenv, buildEnv, writeText, pkgs, pkgsi686Linux }:
+
+{ name, profile ? ""
+, targetPkgs ? pkgs: [], multiPkgs ? pkgs: []
+, extraBuildCommands ? "", extraBuildCommandsMulti ? ""
+, extraOutputsToInstall ? []
+}:
+
+# HOWTO:
+# All packages (most likely programs) returned from targetPkgs will only be
+# installed once--matching the host's architecture (64bit on x86_64 and 32bit on
+# x86).
+#
+# Packages (most likely libraries) returned from multiPkgs are installed
+# once on x86 systems and twice on x86_64 systems.
+# On x86 they are merged with packages from targetPkgs.
+# On x86_64 they are added to targetPkgs and in addition their 32bit
+# versions are also installed. The final directory structure looks as
+# follows:
+# /lib32 will include 32bit libraries from multiPkgs
+# /lib64 will include 64bit libraries from multiPkgs and targetPkgs
+# /lib will link to /lib32
+
+let
+  is64Bit = stdenv.hostPlatform.parsed.cpu.bits == 64;
+  isMultiBuild  = multiPkgs != null && is64Bit;
+  isTargetBuild = !isMultiBuild;
+
+  # list of packages (usually programs) which are only be installed for the
+  # host's architecture
+  targetPaths = targetPkgs pkgs ++ (if multiPkgs == null then [] else multiPkgs pkgs);
+
+  # list of packages which are installed for both x86 and x86_64 on x86_64
+  # systems
+  multiPaths = multiPkgs pkgsi686Linux;
+
+  # base packages of the chroot
+  # these match the host's architecture, glibc_multi is used for multilib
+  # builds. glibcLocales must be before glibc or glibc_multi as otherwiese
+  # the wrong LOCALE_ARCHIVE will be used where only C.UTF-8 is available.
+  basePkgs = with pkgs;
+    [ glibcLocales
+      (if isMultiBuild then glibc_multi else glibc)
+      (toString gcc.cc.lib) bashInteractive coreutils less shadow su
+      gawk diffutils findutils gnused gnugrep
+      gnutar gzip bzip2 xz
+    ];
+  baseMultiPkgs = with pkgsi686Linux;
+    [ (toString gcc.cc.lib)
+    ];
+
+  etcProfile = writeText "profile" ''
+    export PS1='${name}-chrootenv:\u@\h:\w\$ '
+    export LOCALE_ARCHIVE='/usr/lib/locale/locale-archive'
+    export LD_LIBRARY_PATH="/run/opengl-driver/lib:/run/opengl-driver-32/lib:/usr/lib:/usr/lib32''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
+    export PATH="/run/wrappers/bin:/usr/bin:/usr/sbin:$PATH"
+    export TZDIR='/etc/zoneinfo'
+
+    # Force compilers and other tools to look in default search paths
+    unset NIX_ENFORCE_PURITY
+    export NIX_CC_WRAPPER_TARGET_HOST_${stdenv.cc.suffixSalt}=1
+    export NIX_CFLAGS_COMPILE='-idirafter /usr/include'
+    export NIX_CFLAGS_LINK='-L/usr/lib -L/usr/lib32'
+    export NIX_LDFLAGS='-L/usr/lib -L/usr/lib32'
+    export PKG_CONFIG_PATH=/usr/lib/pkgconfig
+    export ACLOCAL_PATH=/usr/share/aclocal
+
+    ${profile}
+  '';
+
+  # Compose /etc for the chroot environment
+  etcPkg = stdenv.mkDerivation {
+    name         = "${name}-chrootenv-etc";
+    buildCommand = ''
+      mkdir -p $out/etc
+      cd $out/etc
+
+      # environment variables
+      ln -s ${etcProfile} profile
+
+      # symlink /etc/mtab -> /proc/mounts (compat for old userspace progs)
+      ln -s /proc/mounts mtab
+    '';
+  };
+
+  # Composes a /usr-like directory structure
+  staticUsrProfileTarget = buildEnv {
+    name = "${name}-usr-target";
+    paths = [ etcPkg ] ++ basePkgs ++ targetPaths;
+    extraOutputsToInstall = [ "out" "lib" "bin" ] ++ extraOutputsToInstall;
+    ignoreCollisions = true;
+  };
+
+  staticUsrProfileMulti = buildEnv {
+    name = "${name}-usr-multi";
+    paths = baseMultiPkgs ++ multiPaths;
+    extraOutputsToInstall = [ "out" "lib" ] ++ extraOutputsToInstall;
+    ignoreCollisions = true;
+  };
+
+  # setup library paths only for the targeted architecture
+  setupLibDirsTarget = ''
+    # link content of targetPaths
+    cp -rsHf ${staticUsrProfileTarget}/lib lib
+    ln -s lib lib${if is64Bit then "64" else "32"}
+  '';
+
+  # setup /lib, /lib32 and /lib64
+  setupLibDirsMulti = ''
+    mkdir -m0755 lib32
+    mkdir -m0755 lib64
+    ln -s lib64 lib
+
+    # copy glibc stuff
+    cp -rsHf ${staticUsrProfileTarget}/lib/32/* lib32/ && chmod u+w -R lib32/
+
+    # copy content of multiPaths (32bit libs)
+    [ -d ${staticUsrProfileMulti}/lib ] && cp -rsHf ${staticUsrProfileMulti}/lib/* lib32/ && chmod u+w -R lib32/
+
+    # copy content of targetPaths (64bit libs)
+    cp -rsHf ${staticUsrProfileTarget}/lib/* lib64/ && chmod u+w -R lib64/
+
+    # symlink 32-bit ld-linux.so
+    ln -Ls ${staticUsrProfileTarget}/lib/32/ld-linux.so.2 lib/
+  '';
+
+  setupLibDirs = if isTargetBuild then setupLibDirsTarget
+                                  else setupLibDirsMulti;
+
+  # the target profile is the actual profile that will be used for the chroot
+  setupTargetProfile = ''
+    mkdir -m0755 usr
+    cd usr
+    ${setupLibDirs}
+    for i in bin sbin share include; do
+      if [ -d "${staticUsrProfileTarget}/$i" ]; then
+        cp -rsHf "${staticUsrProfileTarget}/$i" "$i"
+      fi
+    done
+    cd ..
+
+    for i in var etc; do
+      if [ -d "${staticUsrProfileTarget}/$i" ]; then
+        cp -rsHf "${staticUsrProfileTarget}/$i" "$i"
+      fi
+    done
+    for i in usr/{bin,sbin,lib,lib32,lib64}; do
+      if [ -d "$i" ]; then
+        ln -s "$i"
+      fi
+    done
+  '';
+
+in stdenv.mkDerivation {
+  name         = "${name}-fhs";
+  buildCommand = ''
+    mkdir -p $out
+    cd $out
+    ${setupTargetProfile}
+    cd $out
+    ${extraBuildCommands}
+    cd $out
+    ${if isMultiBuild then extraBuildCommandsMulti else ""}
+  '';
+  preferLocalBuild = true;
+  allowSubstitutes = false;
+}
diff --git a/nixpkgs/pkgs/build-support/buildenv/builder.pl b/nixpkgs/pkgs/build-support/buildenv/builder.pl
index fc6ffce735cc..411b147cc58e 100755
--- a/nixpkgs/pkgs/build-support/buildenv/builder.pl
+++ b/nixpkgs/pkgs/build-support/buildenv/builder.pl
@@ -129,6 +129,15 @@ sub findFiles {
         return;
     }
 
+    # If target already exists and both targets resolves to the same path, skip
+    if (defined $oldTarget && $oldTarget ne "" && abs_path($target) eq abs_path($oldTarget)) {
+        # Prefer the target that is not a symlink, if any
+        if (-l $oldTarget && ! -l $target) {
+            $symlinks{$relName} = [$target, $priority];
+        }
+        return;
+    }
+
     # If target already exists as a symlink to a file (not a
     # directory) in a higher-priority package, skip.
     if (defined $oldTarget && $priority > $oldPriority && $oldTarget ne "" && ! -d $oldTarget) {
diff --git a/nixpkgs/pkgs/build-support/docker/default.nix b/nixpkgs/pkgs/build-support/docker/default.nix
index 83f4a9e0c01b..b2c132afd741 100644
--- a/nixpkgs/pkgs/build-support/docker/default.nix
+++ b/nixpkgs/pkgs/build-support/docker/default.nix
@@ -11,6 +11,7 @@
   jq,
   jshon,
   lib,
+  makeWrapper,
   moreutils,
   nix,
   pigz,
@@ -29,6 +30,7 @@
   writeReferencesToFile,
   writeScript,
   writeText,
+  writePython3,
 }:
 
 # WARNING: this API is unstable and may be subject to backwards-incompatible changes in the future.
@@ -204,24 +206,17 @@ rec {
         mkdir image
         tar -C image -xpf "$fromImage"
 
-        # If the image name isn't set, read it from the image repository json.
-        if [[ -z "$fromImageName" ]]; then
-          fromImageName=$(jshon -k < image/repositories | head -n 1)
-          echo "From-image name wasn't set. Read $fromImageName."
-        fi
-
-        # If the tag isn't set, use the name as an index into the json
-        # and read the first key found.
-        if [[ -z "$fromImageTag" ]]; then
-          fromImageTag=$(jshon -e $fromImageName -k < image/repositories \
-                         | head -n1)
-          echo "From-image tag wasn't set. Read $fromImageTag."
+        if [[ -n "$fromImageName" ]] && [[ -n "$fromImageTag" ]]; then
+          parentID="$(
+            cat "image/manifest.json" |
+              jq -r '.[] | select(.RepoTags | contains([$desiredTag])) | rtrimstr(".json")' \
+                --arg desiredTag "$fromImageName:$fromImageTag"
+          )"
+        else
+          echo "From-image name or tag wasn't set. Reading the first ID."
+          parentID="$(cat "image/manifest.json" | jq -r '.[0].Config | rtrimstr(".json")')"
         fi
 
-        # Use the name and tag to get the parent ID field.
-        parentID=$(jshon -e $fromImageName -e $fromImageTag -u \
-                   < image/repositories)
-
         cat ./image/manifest.json  | jq -r '.[0].Layers | .[]' > layer-list
       else
         touch layer-list
@@ -305,106 +300,6 @@ rec {
       ${text}
     '';
 
-  # Create $maxLayers worth of Docker Layers, one layer per store path
-  # unless there are more paths than $maxLayers. In that case, create
-  # $maxLayers-1 for the most popular layers, and smush the remainaing
-  # store paths in to one final layer.
-  #
-  # NOTE: the `closures` parameter is a list of closures to include.
-  # The TOP LEVEL store paths themselves will never be present in the
-  # resulting image. At this time (2019-12-16) none of these layers
-  # are appropriate to include, as they are all created as
-  # implementation details of dockerTools.
-  mkManyPureLayers = {
-    name,
-    # Files to add to the layer.
-    closures,
-    configJson,
-    # Docker has a 125-layer maximum, we pick 100 to ensure there is
-    # plenty of room for extension.
-    # https://github.com/moby/moby/blob/b3e9f7b13b0f0c414fa6253e1f17a86b2cff68b5/layer/layer_store.go#L23-L26
-    maxLayers ? 100
-  }:
-    let
-      storePathToLayer = substituteAll
-      { shell = runtimeShell;
-        isExecutable = true;
-        src = ./store-path-to-layer.sh;
-      };
-
-      overallClosure = writeText "closure" (lib.concatStringsSep " " closures);
-    in
-    runCommand "${name}-granular-docker-layers" {
-      inherit maxLayers;
-      paths = referencesByPopularity overallClosure;
-      nativeBuildInputs = [ jshon rsync tarsum moreutils ];
-      enableParallelBuilding = true;
-    }
-    ''
-      mkdir layers
-
-      # Delete impurities for store path layers, so they don't get
-      # shared and taint other projects.
-      cat ${configJson} \
-        | jshon -d config \
-        | jshon -s "1970-01-01T00:00:01Z" -i created > generic.json
-
-      # WARNING!
-      # The following code is fiddly w.r.t. ensuring every layer is
-      # created, and that no paths are missed. If you change the
-      # following head and tail call lines, double-check that your
-      # code behaves properly when the number of layers equals:
-      #      maxLayers-1, maxLayers, and maxLayers+1, 0
-      paths() {
-        cat $paths ${lib.concatMapStringsSep " " (path: "| (grep -v ${path} || true)") (closures ++ [ overallClosure ])}
-      }
-
-      paths | head -n $((maxLayers - 1)) | cat -n | xargs -r -P$NIX_BUILD_CORES -n2 ${storePathToLayer}
-      if [ $(paths | wc -l) -ge $maxLayers ]; then
-        paths | tail -n+$maxLayers | xargs ${storePathToLayer} $maxLayers
-      fi
-
-      echo "Finished building layer '$name'"
-
-      mv ./layers $out
-    '';
-
-  # Create a "Customisation" layer which adds symlinks at the root of
-  # the image to the root paths of the closure. Also add the config
-  # data like what command to run and the environment to run it in.
-  mkCustomisationLayer = {
-    name,
-    # Files to add to the layer.
-    contents,
-    baseJson,
-    extraCommands,
-    uid ? 0, gid ? 0,
-  }:
-    runCommand "${name}-customisation-layer" {
-      nativeBuildInputs = [ jshon rsync tarsum ];
-      inherit extraCommands;
-    }
-    ''
-      cp -r ${contents}/ ./layer
-
-      if [[ -n $extraCommands ]]; then
-        chmod ug+w layer
-        (cd layer; eval "$extraCommands")
-      fi
-
-      # Tar up the layer and throw it into 'layer.tar', while calculating its checksum.
-      echo "Packing layer..."
-      mkdir $out
-      tarhash=$(tar --transform='s|^\./||' -C layer --sort=name --mtime="@$SOURCE_DATE_EPOCH" --owner=${toString uid} --group=${toString gid} -cf - . | tee $out/layer.tar | tarsum)
-
-      # Add a 'checksum' field to the JSON, with the value set to the
-      # checksum of the tarball.
-      cat ${baseJson} | jshon -s "$tarhash" -i checksum > $out/json
-
-      # Indicate to docker that we're using schema version 1.0.
-      echo -n "1.0" > $out/VERSION
-    '';
-
   # Create a "layer" (set of files).
   mkPureLayer = {
     # Name of the layer
@@ -438,7 +333,7 @@ rec {
 
       chmod ug+w layer
 
-      if [[ -n $extraCommands ]]; then
+      if [[ -n "$extraCommands" ]]; then
         (cd layer; eval "$extraCommands")
       fi
 
@@ -541,131 +436,15 @@ rec {
       '';
     };
 
-  buildLayeredImage = {
-    # Image Name
-    name,
-    # Image tag, the Nix's output hash will be used if null
-    tag ? null,
-    # Files to put on the image (a nix store path or list of paths).
-    contents ? [],
-    # Docker config; e.g. what command to run on the container.
-    config ? {},
-    # Time of creation of the image. Passing "now" will make the
-    # created date be the time of building.
-    created ? "1970-01-01T00:00:01Z",
-    # Optional bash script to run on the files prior to fixturizing the layer.
-    extraCommands ? "", uid ? 0, gid ? 0,
-    # We pick 100 to ensure there is plenty of room for extension. I
-    # believe the actual maximum is 128.
-    maxLayers ? 100
-  }:
-    assert
-      (lib.assertMsg (maxLayers > 1)
-      "the maxLayers argument of dockerTools.buildLayeredImage function must be greather than 1 (current value: ${toString maxLayers})");
+  buildLayeredImage = {name, ...}@args:
     let
-      baseName = baseNameOf name;
-      contentsEnv = symlinkJoin {
-        name = "bulk-layers";
-        paths = if builtins.isList contents
-          then contents
-          else [ contents ];
-      };
-
-      configJson = let
-          pure = writeText "${baseName}-config.json" (builtins.toJSON {
-            inherit created config;
-            architecture = buildPackages.go.GOARCH;
-            os = "linux";
-          });
-          impure = runCommand "${baseName}-standard-dynamic-date.json"
-            { nativeBuildInputs = [ jq ]; }
-            ''
-               jq ".created = \"$(TZ=utc date --iso-8601="seconds")\"" ${pure} > $out
-            '';
-        in if created == "now" then impure else pure;
-
-      bulkLayers = mkManyPureLayers {
-          name = baseName;
-          closures = [ contentsEnv configJson ];
-          # One layer will be taken up by the customisationLayer, so
-          # take up one less.
-          maxLayers = maxLayers - 1;
-          inherit configJson;
-        };
-      customisationLayer = mkCustomisationLayer {
-          name = baseName;
-          contents = contentsEnv;
-          baseJson = configJson;
-          inherit uid gid extraCommands;
-        };
-      result = runCommand "docker-image-${baseName}.tar.gz" {
-        nativeBuildInputs = [ jshon pigz coreutils findutils jq ];
-        # Image name and tag must be lowercase
-        imageName = lib.toLower name;
-        baseJson = configJson;
-        passthru.imageTag =
-          if tag == null
-          then lib.head (lib.splitString "-" (lib.last (lib.splitString "/" result)))
-          else lib.toLower tag;
-        # Docker can't be made to run darwin binaries
-        meta.badPlatforms = lib.platforms.darwin;
-      } ''
-        ${if (tag == null) then ''
-          outName="$(basename "$out")"
-          outHash=$(echo "$outName" | cut -d - -f 1)
-
-          imageTag=$outHash
-        '' else ''
-          imageTag="${tag}"
-        ''}
-
-        find ${bulkLayers} -mindepth 1 -maxdepth 1 | sort -t/ -k5 -n > layer-list
-        echo ${customisationLayer} >> layer-list
-
-        mkdir image
-        imageJson=$(cat ${configJson} | jq ". + {\"rootfs\": {\"diff_ids\": [], \"type\": \"layers\"}}")
-        manifestJson=$(jq -n "[{\"RepoTags\":[\"$imageName:$imageTag\"]}]")
-        for layer in $(cat layer-list); do
-          layerChecksum=$(sha256sum $layer/layer.tar | cut -d ' ' -f1)
-          layerID=$(sha256sum "$layer/json" | cut -d ' ' -f 1)
-          ln -s "$layer" "./image/$layerID"
-
-          manifestJson=$(echo "$manifestJson" | jq ".[0].Layers |= . + [\"$layerID/layer.tar\"]")
-          imageJson=$(echo "$imageJson" | jq ".history |= . + [{\"created\": \"$(jq -r .created ${configJson})\"}]")
-          imageJson=$(echo "$imageJson" | jq ".rootfs.diff_ids |= . + [\"sha256:$layerChecksum\"]")
-        done
-        imageJsonChecksum=$(echo "$imageJson" | sha256sum | cut -d ' ' -f1)
-        echo "$imageJson" > "image/$imageJsonChecksum.json"
-        manifestJson=$(echo "$manifestJson" | jq ".[0].Config = \"$imageJsonChecksum.json\"")
-        echo "$manifestJson" > image/manifest.json
-
-        jshon -n object \
-          -n object -s "$layerID" -i "$imageTag" \
-          -i "$imageName" > image/repositories
-
-        echo "Cooking the image..."
-        # tar exits with an exit code of 1 if files changed while it was
-        # reading them. It considers a change in the number of hard links
-        # to be a "change", which can cause this to fail if images are being
-        # built concurrently and the auto-optimise-store nix option is turned on.
-        # Since the contents of these files will not change, we can reasonably
-        # ignore this exit code.
-        set +e
-        tar -C image --dereference --hard-dereference --sort=name \
-          --mtime="@$SOURCE_DATE_EPOCH" --owner=0 --group=0  \
-          --mode=a-w --xform s:'^./':: --use-compress-program='pigz -nT' \
-          --warning=no-file-changed -cf $out .
-        RET=$?
-        if [ $RET -ne 0 ] && [ $RET -ne 1 ]; then
-          exit $RET
-        fi
-        set -e
-
-        echo "Finished."
-      '';
-
+      stream = streamLayeredImage args;
     in
-    result;
+      runCommand "${name}.tar.gz" {
+        inherit (stream) imageName;
+        passthru = { inherit (stream) imageTag; };
+        buildInputs = [ pigz ];
+      } "${stream} | pigz -nT > $out";
 
   # 1. extract the base image
   # 2. create the layer
@@ -739,6 +518,11 @@ rec {
         layerClosure = writeReferencesToFile layer;
         passthru.buildArgs = args;
         passthru.layer = layer;
+        passthru.imageTag =
+          if tag != null
+            then lib.toLower tag
+            else
+              lib.head (lib.strings.splitString "-" (baseNameOf result.outPath));
         # Docker can't be made to run darwin binaries
         meta.badPlatforms = lib.platforms.darwin;
       } ''
@@ -774,20 +558,22 @@ rec {
           configName="$(cat ./image/manifest.json | jq -r '.[0].Config')"
           baseEnvs="$(cat "./image/$configName" | jq '.config.Env // []')"
 
+          # Extract the parentID from the manifest
+          if [[ -n "$fromImageName" ]] && [[ -n "$fromImageTag" ]]; then
+            parentID="$(
+              cat "image/manifest.json" |
+                jq -r '.[] | select(.RepoTags | contains([$desiredTag])) | rtrimstr(".json")' \
+                  --arg desiredTag "$fromImageName:$fromImageTag"
+            )"
+          else
+            echo "From-image name or tag wasn't set. Reading the first ID."
+            parentID="$(cat "image/manifest.json" | jq -r '.[0].Config | rtrimstr(".json")')"
+          fi
+
           # Otherwise do not import the base image configuration and manifest
           chmod a+w image image/*.json
           rm -f image/*.json
 
-          if [[ -z "$fromImageName" ]]; then
-            fromImageName=$(jshon -k < image/repositories|head -n1)
-          fi
-          if [[ -z "$fromImageTag" ]]; then
-            fromImageTag=$(jshon -e $fromImageName -k \
-                           < image/repositories|head -n1)
-          fi
-          parentID=$(jshon -e $fromImageName -e $fromImageTag -u \
-                     < image/repositories)
-
           for l in image/*/layer.tar; do
             ls_tar $l >> baseFiles
           done
@@ -904,4 +690,139 @@ rec {
     })
   );
 
+  streamLayeredImage = {
+    # Image Name
+    name,
+    # Image tag, the Nix's output hash will be used if null
+    tag ? null,
+    # Files to put on the image (a nix store path or list of paths).
+    contents ? [],
+    # Docker config; e.g. what command to run on the container.
+    config ? {},
+    # Time of creation of the image. Passing "now" will make the
+    # created date be the time of building.
+    created ? "1970-01-01T00:00:01Z",
+    # Optional bash script to run on the files prior to fixturizing the layer.
+    extraCommands ? "",
+    # We pick 100 to ensure there is plenty of room for extension. I
+    # believe the actual maximum is 128.
+    maxLayers ? 100
+  }:
+    assert
+      (lib.assertMsg (maxLayers > 1)
+      "the maxLayers argument of dockerTools.buildLayeredImage function must be greather than 1 (current value: ${toString maxLayers})");
+    let
+      streamScript = writePython3 "stream" {} ./stream_layered_image.py;
+      baseJson = writeText "${name}-base.json" (builtins.toJSON {
+         inherit config;
+         architecture = buildPackages.go.GOARCH;
+         os = "linux";
+      });
+
+      contentsList = if builtins.isList contents then contents else [ contents ];
+
+      # We store the customisation layer as a tarball, to make sure that
+      # things like permissions set on 'extraCommands' are not overriden
+      # by Nix. Then we precompute the sha256 for performance.
+      customisationLayer = symlinkJoin {
+        name = "${name}-customisation-layer";
+        paths = contentsList;
+        inherit extraCommands;
+        postBuild = ''
+          mv $out old_out
+          (cd old_out; eval "$extraCommands" )
+
+          mkdir $out
+
+          tar \
+            --owner 0 --group 0 --mtime "@$SOURCE_DATE_EPOCH" \
+            --hard-dereference \
+            -C old_out \
+            -cf $out/layer.tar .
+
+          sha256sum $out/layer.tar \
+            | cut -f 1 -d ' ' \
+            > $out/checksum
+        '';
+      };
+
+      closureRoots = [ baseJson ] ++ contentsList;
+      overallClosure = writeText "closure" (lib.concatStringsSep " " closureRoots);
+
+      # These derivations are only created as implementation details of docker-tools,
+      # so they'll be excluded from the created images.
+      unnecessaryDrvs = [ baseJson overallClosure ];
+
+      conf = runCommand "${name}-conf.json" {
+        inherit maxLayers created;
+        imageName = lib.toLower name;
+        passthru.imageTag =
+          if tag != null
+            then tag
+            else
+              lib.head (lib.strings.splitString "-" (baseNameOf conf.outPath));
+        paths = referencesByPopularity overallClosure;
+        buildInputs = [ jq ];
+      } ''
+        ${if (tag == null) then ''
+          outName="$(basename "$out")"
+          outHash=$(echo "$outName" | cut -d - -f 1)
+
+          imageTag=$outHash
+        '' else ''
+          imageTag="${tag}"
+        ''}
+
+        # convert "created" to iso format
+        if [[ "$created" != "now" ]]; then
+            created="$(date -Iseconds -d "$created")"
+        fi
+
+        paths() {
+          cat $paths ${lib.concatMapStringsSep " "
+                         (path: "| (grep -v ${path} || true)")
+                         unnecessaryDrvs}
+        }
+
+        # Create $maxLayers worth of Docker Layers, one layer per store path
+        # unless there are more paths than $maxLayers. In that case, create
+        # $maxLayers-1 for the most popular layers, and smush the remainaing
+        # store paths in to one final layer.
+        #
+        # The following code is fiddly w.r.t. ensuring every layer is
+        # created, and that no paths are missed. If you change the
+        # following lines, double-check that your code behaves properly
+        # when the number of layers equals:
+        #      maxLayers-1, maxLayers, and maxLayers+1, 0
+        store_layers="$(
+          paths |
+            jq -sR '
+              rtrimstr("\n") | split("\n")
+                | (.[:$maxLayers-1] | map([.])) + [ .[$maxLayers-1:] ]
+                | map(select(length > 0))
+            ' \
+              --argjson maxLayers "$(( maxLayers - 1 ))" # one layer will be taken up by the customisation layer
+        )"
+
+        cat ${baseJson} | jq '
+          . + {
+            "store_layers": $store_layers,
+            "customisation_layer", $customisation_layer,
+            "repo_tag": $repo_tag,
+            "created": $created
+          }
+          ' --argjson store_layers "$store_layers" \
+            --arg customisation_layer ${customisationLayer} \
+            --arg repo_tag "$imageName:$imageTag" \
+            --arg created "$created" |
+          tee $out
+      '';
+      result = runCommand "stream-${name}" {
+        inherit (conf) imageName;
+        passthru = { inherit (conf) imageTag; };
+        buildInputs = [ makeWrapper ];
+      } ''
+        makeWrapper ${streamScript} $out --add-flags ${conf}
+      '';
+    in result;
 }
diff --git a/nixpkgs/pkgs/build-support/docker/examples.nix b/nixpkgs/pkgs/build-support/docker/examples.nix
index d533e3abd03b..4a611add8a12 100644
--- a/nixpkgs/pkgs/build-support/docker/examples.nix
+++ b/nixpkgs/pkgs/build-support/docker/examples.nix
@@ -121,6 +121,7 @@ rec {
       # the image env variable NIX_PAGER.
       pkgs.coreutils
       pkgs.nix
+      pkgs.bash
     ];
     config = {
       Env = [
@@ -297,20 +298,113 @@ rec {
     name = "no-store-paths";
     tag = "latest";
     extraCommands = ''
-      chmod a+w bin
-
       # This removes sharing of busybox and is not recommended. We do this
       # to make the example suitable as a test case with working binaries.
       cp -r ${pkgs.pkgsStatic.busybox}/* .
     '';
+  };
+
+  nixLayered = pkgs.dockerTools.buildLayeredImageWithNixDb {
+    name = "nix-layered";
+    tag = "latest";
+    contents = [
+      # nix-store uses cat program to display results as specified by
+      # the image env variable NIX_PAGER.
+      pkgs.coreutils
+      pkgs.nix
+      pkgs.bash
+    ];
+    config = {
+      Env = [
+        "NIX_PAGER=cat"
+        # A user is required by nix
+        # https://github.com/NixOS/nix/blob/9348f9291e5d9e4ba3c4347ea1b235640f54fd79/src/libutil/util.cc#L478
+        "USER=nobody"
+      ];
+    };
+  };
+
+  # 19. Support files in the store on buildLayeredImage
+  # See: https://github.com/NixOS/nixpkgs/pull/91084#issuecomment-653496223
+  filesInStore = pkgs.dockerTools.buildLayeredImageWithNixDb {
+    name = "file-in-store";
+    tag = "latest";
     contents = [
-      # This layer has no dependencies and its symlinks will be dereferenced
-      # when creating the customization layer.
-      (pkgs.runCommand "layer-to-flatten" {} ''
-        mkdir -p $out/bin
-        ln -s /bin/true $out/bin/custom-true
+      pkgs.coreutils
+      pkgs.nix
+      (pkgs.writeScriptBin "myscript" ''
+        #!${pkgs.runtimeShell}
+        cat ${pkgs.writeText "somefile" "some data"}
+      '')
+    ];
+    config = {
+      Cmd = [ "myscript" ];
+      # For some reason 'nix-store --verify' requires this environment variable
+      Env = [ "USER=root" ];
+    };
+  };
+
+  # 20. Ensure that setting created to now results in a date which
+  # isn't the epoch + 1 for layered images.
+  unstableDateLayered = pkgs.dockerTools.buildLayeredImage {
+    name = "unstable-date-layered";
+    tag = "latest";
+    contents = [ pkgs.coreutils ];
+    created = "now";
+  };
+
+  # buildImage without explicit tag
+  bashNoTag = pkgs.dockerTools.buildImage {
+    name = "bash-no-tag";
+    contents = pkgs.bashInteractive;
+  };
+
+  # buildLayeredImage without explicit tag
+  bashNoTagLayered = pkgs.dockerTools.buildLayeredImage {
+    name = "bash-no-tag-layered";
+    contents = pkgs.bashInteractive;
+  };
+
+  # buildImage without explicit tag
+  bashNoTagStreamLayered = pkgs.dockerTools.streamLayeredImage {
+    name = "bash-no-tag-stream-layered";
+    contents = pkgs.bashInteractive;
+  };
+
+  # buildLayeredImage with non-root user
+  bashLayeredWithUser =
+  let
+    nonRootShadowSetup = { user, uid, gid ? uid }: with pkgs; [
+      (
+      writeTextDir "etc/shadow" ''
+        root:!x:::::::
+        ${user}:!:::::::
+      ''
+      )
+      (
+      writeTextDir "etc/passwd" ''
+        root:x:0:0::/root:${runtimeShell}
+        ${user}:x:${toString uid}:${toString gid}::/home/${user}:
+      ''
+      )
+      (
+      writeTextDir "etc/group" ''
+        root:x:0:
+        ${user}:x:${toString gid}:
+      ''
+      )
+      (
+      writeTextDir "etc/gshadow" ''
+        root:x::
+        ${user}:x::
       ''
       )
     ];
-  };
+  in
+    pkgs.dockerTools.buildLayeredImage {
+      name = "bash-layered-with-user";
+      tag = "latest";
+      contents = [ pkgs.bash pkgs.coreutils ] ++ nonRootShadowSetup { uid = 999; user = "somebody"; };
+    };
+
 }
diff --git a/nixpkgs/pkgs/build-support/docker/store-path-to-layer.sh b/nixpkgs/pkgs/build-support/docker/store-path-to-layer.sh
deleted file mode 100755
index 7437da51cc4a..000000000000
--- a/nixpkgs/pkgs/build-support/docker/store-path-to-layer.sh
+++ /dev/null
@@ -1,50 +0,0 @@
-#!@shell@
-
-set -eu
-
-layerNumber=$1
-shift
-
-layerPath="./layers/$layerNumber"
-echo "Creating layer #$layerNumber for $@"
-
-mkdir -p "$layerPath"
-
-# Make sure /nix and /nix/store appear first in the archive.
-#
-# We create the directories here and use them because
-# when there are other things being added to the
-# nix store, tar could fail, saying,
-# "tar: /nix/store: file changed as we read it"
-mkdir -p nix/store
-
-# Then we change into the /nix/store in order to
-# avoid a similar "file changed as we read it" error
-# as above. Namely, if we use the absolute path of
-# /nix/store/123-pkg and something new is added to the nix
-# store while tar is running, it will detect a change to
-# /nix/store and fail. Instead, if we cd into the nix store
-# and copy the relative nix store path, tar will ignore
-# changes to /nix/store. In order to create the correct
-# structure in the tar file, we transform the relative nix
-# store path to the absolute store path.
-tarhash=$(
-  basename -a "$@" |
-    tar --create --preserve-permissions --absolute-names nix \
-      --directory /nix/store --verbatim-files-from --files-from - \
-      --hard-dereference --sort=name \
-      --mtime="@$SOURCE_DATE_EPOCH" \
-      --owner=0 --group=0 \
-      --transform 's,^nix$,/\0,' \
-      --transform 's,^nix/store$,/\0,' \
-      --transform 's,^[^/],/nix/store/\0,rS' |
-    tee "$layerPath/layer.tar" |
-    tarsum
-)
-
-# Add a 'checksum' field to the JSON, with the value set to the
-# checksum of the tarball.
-cat ./generic.json | jshon -s "$tarhash" -i checksum > $layerPath/json
-
-# Indicate to docker that we're using schema version 1.0.
-echo -n "1.0" > $layerPath/VERSION
diff --git a/nixpkgs/pkgs/build-support/docker/stream_layered_image.py b/nixpkgs/pkgs/build-support/docker/stream_layered_image.py
new file mode 100644
index 000000000000..cbae0f723f92
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/docker/stream_layered_image.py
@@ -0,0 +1,303 @@
+"""
+This script generates a Docker image from a set of store paths. Uses
+Docker Image Specification v1.2 as reference [1].
+
+It expects a JSON file with the following properties and writes the
+image as an uncompressed tarball to stdout:
+
+* "architecture", "config", "os", "created", "repo_tag" correspond to
+  the fields with the same name on the image spec [2].
+* "created" can be "now".
+* "created" is also used as mtime for files added to the image.
+* "store_layers" is a list of layers in ascending order, where each
+  layer is the list of store paths to include in that layer.
+
+The main challenge for this script to create the final image in a
+streaming fashion, without dumping any intermediate data to disk
+for performance.
+
+A docker image has each layer contents archived as separate tarballs,
+and they later all get enveloped into a single big tarball in a
+content addressed fashion. However, because how "tar" format works,
+we have to know about the name (which includes the checksum in our
+case) and the size of the tarball before we can start adding it to the
+outer tarball.  We achieve that by creating the layer tarballs twice;
+on the first iteration we calculate the file size and the checksum,
+and on the second one we actually stream the contents. 'add_layer_dir'
+function does all this.
+
+[1]: https://github.com/moby/moby/blob/master/image/spec/v1.2.md
+[2]: https://github.com/moby/moby/blob/4fb59c20a4fb54f944fe170d0ff1d00eb4a24d6f/image/spec/v1.2.md#image-json-field-descriptions
+"""  # noqa: E501
+
+
+import io
+import os
+import sys
+import json
+import hashlib
+import pathlib
+import tarfile
+import itertools
+import threading
+from datetime import datetime, timezone
+from collections import namedtuple
+
+
+def archive_paths_to(obj, paths, mtime):
+    """
+    Writes the given store paths as a tar file to the given stream.
+
+    obj: Stream to write to. Should have a 'write' method.
+    paths: List of store paths.
+    """
+
+    # gettarinfo makes the paths relative, this makes them
+    # absolute again
+    def append_root(ti):
+        ti.name = "/" + ti.name
+        return ti
+
+    def apply_filters(ti):
+        ti.mtime = mtime
+        ti.uid = 0
+        ti.gid = 0
+        ti.uname = "root"
+        ti.gname = "root"
+        return ti
+
+    def nix_root(ti):
+        ti.mode = 0o0555  # r-xr-xr-x
+        return ti
+
+    def dir(path):
+        ti = tarfile.TarInfo(path)
+        ti.type = tarfile.DIRTYPE
+        return ti
+
+    with tarfile.open(fileobj=obj, mode="w|") as tar:
+        # To be consistent with the docker utilities, we need to have
+        # these directories first when building layer tarballs.
+        tar.addfile(apply_filters(nix_root(dir("/nix"))))
+        tar.addfile(apply_filters(nix_root(dir("/nix/store"))))
+
+        for path in paths:
+            path = pathlib.Path(path)
+            files = itertools.chain([path], path.rglob("*"))
+            for filename in sorted(files):
+                ti = append_root(tar.gettarinfo(filename))
+
+                # copy hardlinks as regular files
+                if ti.islnk():
+                    ti.type = tarfile.REGTYPE
+                    ti.linkname = ""
+                    ti.size = filename.stat().st_size
+
+                ti = apply_filters(ti)
+                if ti.isfile():
+                    with open(filename, "rb") as f:
+                        tar.addfile(ti, f)
+                else:
+                    tar.addfile(ti)
+
+
+class ExtractChecksum:
+    """
+    A writable stream which only calculates the final file size and
+    sha256sum, while discarding the actual contents.
+    """
+
+    def __init__(self):
+        self._digest = hashlib.sha256()
+        self._size = 0
+
+    def write(self, data):
+        self._digest.update(data)
+        self._size += len(data)
+
+    def extract(self):
+        """
+        Returns: Hex-encoded sha256sum and size as a tuple.
+        """
+        return (self._digest.hexdigest(), self._size)
+
+
+# Some metadata for a layer
+LayerInfo = namedtuple("LayerInfo", ["size", "checksum", "path", "paths"])
+
+
+def add_layer_dir(tar, paths, mtime):
+    """
+    Appends given store paths to a TarFile object as a new layer.
+
+    tar: 'tarfile.TarFile' object for the new layer to be added to.
+    paths: List of store paths.
+    mtime: 'mtime' of the added files and the layer tarball.
+           Should be an integer representing a POSIX time.
+
+    Returns: A 'LayerInfo' object containing some metadata of
+             the layer added.
+    """
+
+    invalid_paths = [i for i in paths if not i.startswith("/nix/store/")]
+    assert len(invalid_paths) == 0, \
+        "Expecting absolute store paths, but got: {invalid_paths}"
+
+    # First, calculate the tarball checksum and the size.
+    extract_checksum = ExtractChecksum()
+    archive_paths_to(
+        extract_checksum,
+        paths,
+        mtime=mtime,
+    )
+    (checksum, size) = extract_checksum.extract()
+
+    path = f"{checksum}/layer.tar"
+    layer_tarinfo = tarfile.TarInfo(path)
+    layer_tarinfo.size = size
+    layer_tarinfo.mtime = mtime
+
+    # Then actually stream the contents to the outer tarball.
+    read_fd, write_fd = os.pipe()
+    with open(read_fd, "rb") as read, open(write_fd, "wb") as write:
+        def producer():
+            archive_paths_to(
+                write,
+                paths,
+                mtime=mtime,
+            )
+            write.close()
+
+        # Closing the write end of the fifo also closes the read end,
+        # so we don't need to wait until this thread is finished.
+        #
+        # Any exception from the thread will get printed by the default
+        # exception handler, and the 'addfile' call will fail since it
+        # won't be able to read required amount of bytes.
+        threading.Thread(target=producer).start()
+        tar.addfile(layer_tarinfo, read)
+
+    return LayerInfo(size=size, checksum=checksum, path=path, paths=paths)
+
+
+def add_customisation_layer(target_tar, customisation_layer, mtime):
+    """
+    Adds the customisation layer as a new layer. This is layer is structured
+    differently; given store path has the 'layer.tar' and corresponding
+    sha256sum ready.
+
+    tar: 'tarfile.TarFile' object for the new layer to be added to.
+    customisation_layer: Path containing the layer archive.
+    mtime: 'mtime' of the added layer tarball.
+    """
+
+    checksum_path = os.path.join(customisation_layer, "checksum")
+    with open(checksum_path) as f:
+        checksum = f.read().strip()
+    assert len(checksum) == 64, f"Invalid sha256 at ${checksum_path}."
+
+    layer_path = os.path.join(customisation_layer, "layer.tar")
+
+    path = f"{checksum}/layer.tar"
+    tarinfo = target_tar.gettarinfo(layer_path)
+    tarinfo.name = path
+    tarinfo.mtime = mtime
+
+    with open(layer_path, "rb") as f:
+        target_tar.addfile(tarinfo, f)
+
+    return LayerInfo(
+      size=None,
+      checksum=checksum,
+      path=path,
+      paths=[customisation_layer]
+    )
+
+
+def add_bytes(tar, path, content, mtime):
+    """
+    Adds a file to the tarball with given path and contents.
+
+    tar: 'tarfile.TarFile' object.
+    path: Path of the file as a string.
+    content: Contents of the file.
+    mtime: 'mtime' of the file. Should be an integer representing a POSIX time.
+    """
+    assert type(content) is bytes
+
+    ti = tarfile.TarInfo(path)
+    ti.size = len(content)
+    ti.mtime = mtime
+    tar.addfile(ti, io.BytesIO(content))
+
+
+def main():
+    with open(sys.argv[1], "r") as f:
+        conf = json.load(f)
+
+    created = (
+      datetime.now(tz=timezone.utc)
+      if conf["created"] == "now"
+      else datetime.fromisoformat(conf["created"])
+    )
+    mtime = int(created.timestamp())
+
+    with tarfile.open(mode="w|", fileobj=sys.stdout.buffer) as tar:
+        layers = []
+        for num, store_layer in enumerate(conf["store_layers"]):
+            print(
+              "Creating layer", num,
+              "from paths:", store_layer,
+              file=sys.stderr)
+            info = add_layer_dir(tar, store_layer, mtime=mtime)
+            layers.append(info)
+
+        print("Creating the customisation layer...", file=sys.stderr)
+        layers.append(
+          add_customisation_layer(
+            tar,
+            conf["customisation_layer"],
+            mtime=mtime
+          )
+        )
+
+        print("Adding manifests...", file=sys.stderr)
+
+        image_json = {
+            "created": datetime.isoformat(created),
+            "architecture": conf["architecture"],
+            "os": "linux",
+            "config": conf["config"],
+            "rootfs": {
+                "diff_ids": [f"sha256:{layer.checksum}" for layer in layers],
+                "type": "layers",
+            },
+            "history": [
+                {
+                  "created": datetime.isoformat(created),
+                  "comment": f"store paths: {layer.paths}"
+                }
+                for layer in layers
+            ],
+        }
+
+        image_json = json.dumps(image_json, indent=4).encode("utf-8")
+        image_json_checksum = hashlib.sha256(image_json).hexdigest()
+        image_json_path = f"{image_json_checksum}.json"
+        add_bytes(tar, image_json_path, image_json, mtime=mtime)
+
+        manifest_json = [
+            {
+                "Config": image_json_path,
+                "RepoTags": [conf["repo_tag"]],
+                "Layers": [layer.path for layer in layers],
+            }
+        ]
+        manifest_json = json.dumps(manifest_json, indent=4).encode("utf-8")
+        add_bytes(tar, "manifest.json", manifest_json, mtime=mtime)
+
+        print("Done.", file=sys.stderr)
+
+
+if __name__ == "__main__":
+    main()
diff --git a/nixpkgs/pkgs/build-support/dotnetenv/build-solution.nix b/nixpkgs/pkgs/build-support/dotnetenv/build-solution.nix
index 62370d361cd0..57af1fe9bd49 100644
--- a/nixpkgs/pkgs/build-support/dotnetenv/build-solution.nix
+++ b/nixpkgs/pkgs/build-support/dotnetenv/build-solution.nix
@@ -16,20 +16,20 @@ assert modifyPublicMain -> mainClassFile != null;
 
 stdenv.mkDerivation {
   inherit name src;
-  
-  buildInputs = [ dotnetfx ];  
+
+  buildInputs = [ dotnetfx ];
 
   preConfigure = ''
     cd ${baseDir}
   '';
-  
+
   preBuild = ''
     ${stdenv.lib.optionalString modifyPublicMain ''
       sed -i -e "s|static void Main|public static void Main|" ${mainClassFile}
     ''}
     ${preBuild}
   '';
-  
+
   installPhase = ''
     addDeps()
     {
@@ -39,44 +39,44 @@ stdenv.mkDerivation {
 	    do
 		windowsPath=$(cygpath --windows $i)
 		assemblySearchPaths="$assemblySearchPaths;$windowsPath"
-		
+
 		addDeps $i
 	    done
 	fi
     }
-    
+
     for i in ${toString assemblyInputs}
     do
-	windowsPath=$(cygpath --windows $i) 
+	windowsPath=$(cygpath --windows $i)
 	echo "Using assembly path: $windowsPath"
-	
+
 	if [ "$assemblySearchPaths" = "" ]
 	then
 	    assemblySearchPaths="$windowsPath"
 	else
 	    assemblySearchPaths="$assemblySearchPaths;$windowsPath"
 	fi
-	
+
 	addDeps $i
     done
-      
+
     echo "Assembly search paths are: $assemblySearchPaths"
-    
+
     if [ "$assemblySearchPaths" != "" ]
     then
 	echo "Using assembly search paths args: $assemblySearchPathsArg"
 	export AssemblySearchPaths=$assemblySearchPaths
     fi
-    
+
     mkdir -p $out
     MSBuild.exe ${toString slnFile} /nologo /t:${targets} /p:IntermediateOutputPath=$(cygpath --windows $out)\\ /p:OutputPath=$(cygpath --windows $out)\\ /verbosity:${verbosity} ${options}
-    
+
     # Because .NET assemblies store strings as UTF-16 internally, we cannot detect
     # hashes. Therefore a text files containing the proper paths is created
     # We can also use this file the propagate transitive dependencies.
-    
+
     mkdir -p $out/nix-support
-    
+
     for i in ${toString assemblyInputs}
     do
         echo $i >> $out/nix-support/dotnet-assemblies
diff --git a/nixpkgs/pkgs/build-support/dotnetenv/default.nix b/nixpkgs/pkgs/build-support/dotnetenv/default.nix
index 781a5ba8c0ee..c7145504eb7b 100644
--- a/nixpkgs/pkgs/build-support/dotnetenv/default.nix
+++ b/nixpkgs/pkgs/build-support/dotnetenv/default.nix
@@ -10,7 +10,7 @@ let dotnetenv =
   buildWrapper = import ./wrapper.nix {
     inherit dotnetenv;
   };
-  
+
   inherit (dotnetfx) assembly20Path wcfPath referenceAssembly30Path referenceAssembly35Path;
 };
 in
diff --git a/nixpkgs/pkgs/build-support/dotnetenv/wrapper.nix b/nixpkgs/pkgs/build-support/dotnetenv/wrapper.nix
index 4b07fc27dcb0..423303c3084a 100644
--- a/nixpkgs/pkgs/build-support/dotnetenv/wrapper.nix
+++ b/nixpkgs/pkgs/build-support/dotnetenv/wrapper.nix
@@ -36,25 +36,25 @@ dotnetenv.buildSolution {
 	    do
 		windowsPath=$(cygpath --windows $i | sed 's|\\|\\\\|g')
 		assemblySearchArray="$assemblySearchArray @\"$windowsPath\""
-		
+
 		addRuntimeDeps $i
 	    done
 	fi
     }
-    
+
     export exePath=$(cygpath --windows $(find ${application} -name \*.exe) | sed 's|\\|\\\\|g')
-    
+
     # Generate assemblySearchPaths string array contents
     for path in ${toString assemblyInputs}
     do
         assemblySearchArray="$assemblySearchArray @\"$(cygpath --windows $path | sed 's|\\|\\\\|g')\", "
 	addRuntimeDeps $path
     done
-    
+
     sed -e "s|@ROOTNAMESPACE@|${namespace}Wrapper|" \
         -e "s|@ASSEMBLYNAME@|${namespace}|" \
         Wrapper/Wrapper.csproj.in > Wrapper/Wrapper.csproj
-    
+
     sed -e "s|@NAMESPACE@|${namespace}|g" \
         -e "s|@MAINCLASSNAME@|${mainClassName}|g" \
 	-e "s|@EXEPATH@|$exePath|g" \
diff --git a/nixpkgs/pkgs/build-support/emacs/generic.nix b/nixpkgs/pkgs/build-support/emacs/generic.nix
index 6fa27f098392..956787ad59e4 100644
--- a/nixpkgs/pkgs/build-support/emacs/generic.nix
+++ b/nixpkgs/pkgs/build-support/emacs/generic.nix
@@ -56,6 +56,16 @@ stdenv.mkDerivation ({
   meta = defaultMeta // meta;
 }
 
+// lib.optionalAttrs (emacs.nativeComp or false) {
+
+  LIBRARY_PATH = "${lib.getLib stdenv.cc.libc}/lib";
+
+  postInstall = ''
+    find $out/share/emacs -type f -name '*.el' -print0 | xargs -0 -n 1 -I {} -P $NIX_BUILD_CORES sh -c "emacs --batch -f batch-native-compile {} || true"
+  '';
+
+}
+
 // removeAttrs args [ "buildInputs" "packageRequires"
                       "meta"
                     ])
diff --git a/nixpkgs/pkgs/build-support/fetchgitlab/default.nix b/nixpkgs/pkgs/build-support/fetchgitlab/default.nix
index f1850fbaa1ea..77512510a7c6 100644
--- a/nixpkgs/pkgs/build-support/fetchgitlab/default.nix
+++ b/nixpkgs/pkgs/build-support/fetchgitlab/default.nix
@@ -12,7 +12,7 @@ let
     ((optional (group != null) group) ++ [ owner repo ]);
 
   escapedSlug = replaceStrings ["." "/"] ["%2E" "%2F"] slug;
-  escapedRev = replaceStrings ["+"] ["%2B"] rev;
+  escapedRev = replaceStrings ["+" "%" "/"] ["%2B" "%25" "%2F"] rev;
 in
 
 fetchzip ({
diff --git a/nixpkgs/pkgs/build-support/fetchrepoproject/default.nix b/nixpkgs/pkgs/build-support/fetchrepoproject/default.nix
index f8793dbac950..8144ed038bd0 100644
--- a/nixpkgs/pkgs/build-support/fetchrepoproject/default.nix
+++ b/nixpkgs/pkgs/build-support/fetchrepoproject/default.nix
@@ -2,7 +2,7 @@
 
 { name, manifest, rev ? "HEAD", sha256
 # Optional parameters:
-, repoRepoURL ? "", repoRepoRev ? "", referenceDir ? ""
+, repoRepoURL ? "", repoRepoRev ? "", referenceDir ? "", manifestName ? ""
 , localManifests ? [], createMirror ? false, useArchive ? false
 }:
 
@@ -16,6 +16,7 @@ let
     (optionalString (repoRepoURL != "") "--repo-url=${repoRepoURL}")
     (optionalString (repoRepoRev != "") "--repo-branch=${repoRepoRev}")
     (optionalString (referenceDir != "") "--reference=${referenceDir}")
+    (optionalString (manifestName != "") "--manifest-name=${manifestName}")
   ];
 
   repoInitFlags = [
diff --git a/nixpkgs/pkgs/build-support/fetchurl/builder.sh b/nixpkgs/pkgs/build-support/fetchurl/builder.sh
index e93c98419a67..5b04a702aff4 100644
--- a/nixpkgs/pkgs/build-support/fetchurl/builder.sh
+++ b/nixpkgs/pkgs/build-support/fetchurl/builder.sh
@@ -15,8 +15,14 @@ curl=(
     --retry 3
     --disable-epsv
     --cookie-jar cookies
-    --insecure
     --user-agent "curl/$curlVersion Nixpkgs/$nixpkgsVersion"
+)
+
+if ! [ -f "$SSL_CERT_FILE" ]; then
+    curl+=(--insecure)
+fi
+
+curl+=(
     $curlOpts
     $NIX_CURL_FLAGS
 )
diff --git a/nixpkgs/pkgs/build-support/fetchurl/default.nix b/nixpkgs/pkgs/build-support/fetchurl/default.nix
index a0c48468dfac..c65738aef41a 100644
--- a/nixpkgs/pkgs/build-support/fetchurl/default.nix
+++ b/nixpkgs/pkgs/build-support/fetchurl/default.nix
@@ -1,4 +1,6 @@
-{ lib, buildPackages ? { inherit stdenvNoCC; }, stdenvNoCC, curl }: # Note that `curl' may be `null', in case of the native stdenvNoCC.
+{ lib, buildPackages ? { inherit stdenvNoCC; }, stdenvNoCC
+, curl # Note that `curl' may be `null', in case of the native stdenvNoCC.
+, cacert ? null }:
 
 let
 
@@ -112,6 +114,7 @@ let
     else if sha512 != "" then { outputHashAlgo = "sha512"; outputHash = sha512; }
     else if sha256 != "" then { outputHashAlgo = "sha256"; outputHash = sha256; }
     else if sha1   != "" then { outputHashAlgo = "sha1";   outputHash = sha1; }
+    else if cacert != null then { outputHashAlgo = "sha256"; outputHash = ""; }
     else throw "fetchurl requires a hash for fixed-output derivation: ${lib.concatStringsSep ", " urls_}";
 in
 
@@ -134,6 +137,10 @@ stdenvNoCC.mkDerivation {
   # New-style output content requirements.
   inherit (hash_) outputHashAlgo outputHash;
 
+  SSL_CERT_FILE = if hash_.outputHash == ""
+                  then "${cacert}/etc/ssl/certs/ca-bundle.crt"
+                  else "/no-cert-file.crt";
+
   outputHashMode = if (recursiveHash || executable) then "recursive" else "flat";
 
   inherit curlOpts showURLs mirrorsFile postFetch downloadToTemp executable;
diff --git a/nixpkgs/pkgs/build-support/kernel/modules-closure.sh b/nixpkgs/pkgs/build-support/kernel/modules-closure.sh
index 220f3b00a771..3f895d9cfed9 100644
--- a/nixpkgs/pkgs/build-support/kernel/modules-closure.sh
+++ b/nixpkgs/pkgs/build-support/kernel/modules-closure.sh
@@ -19,37 +19,66 @@ version=$(cd $kernel/lib/modules && ls -d *)
 echo "kernel version is $version"
 
 # Determine the dependencies of each root module.
-closure=
+mkdir -p $out/lib/modules/"$version"
+touch closure
 for module in $rootModules; do
     echo "root module: $module"
-    deps=$(modprobe --config no-config -d $kernel --set-version "$version" --show-depends "$module" \
-        | sed 's/^insmod //') \
-        || if test -z "$allowMissing"; then exit 1; fi
-    if [[ "$deps" != builtin* ]]; then
-        closure="$closure $deps"
+    modprobe --config no-config -d $kernel --set-version "$version" --show-depends "$module" \
+    | while read cmd module args; do
+        case "$cmd" in
+            builtin)
+                touch found
+                echo "$module" >>closure
+                echo "  builtin dependency: $module";;
+            insmod)
+                touch found
+                if ! test -e "$module"; then
+                    echo "  dependency not found: $module"
+                    exit 1
+                fi
+                target=$(echo "$module" | sed "s^$NIX_STORE.*/lib/modules/^$out/lib/modules/^")
+                if test -e "$target"; then
+                    echo "  dependency already copied: $module"
+                    continue
+                fi
+                echo "$module" >>closure
+                echo "  copying dependency: $module"
+                mkdir -p $(dirname $target)
+                cp "$module" "$target"
+                # If the kernel is compiled with coverage instrumentation, it
+                # contains the paths of the *.gcda coverage data output files
+                # (which it doesn't actually use...).  Get rid of them to prevent
+                # the whole kernel from being included in the initrd.
+                nuke-refs "$target"
+                echo "$target" >> $out/insmod-list;;
+             *)
+                echo "  unexpected modprobe output: $cmd $module"
+                exit 1;;
+        esac
+    done || test -n "$allowMissing"
+    if ! test -e found; then
+        echo "  not found"
+        if test -z "$allowMissing"; then
+            exit 1
+        fi
+    else
+        rm found
     fi
 done
 
-echo "closure:"
-mkdir -p $out/lib/modules/"$version"
-for module in $closure; do
-    target=$(echo $module | sed "s^$NIX_STORE.*/lib/modules/^$out/lib/modules/^")
-    if test -e "$target"; then continue; fi
-    if test \! -e "$module"; then continue; fi # XXX: to avoid error with "cp builtin builtin"
-    mkdir -p $(dirname $target)
-    echo $module
-    cp $module $target
-    # If the kernel is compiled with coverage instrumentation, it
-    # contains the paths of the *.gcda coverage data output files
-    # (which it doesn't actually use...).  Get rid of them to prevent
-    # the whole kernel from being included in the initrd.
-    nuke-refs $target
-    echo $target >> $out/insmod-list
-done
-
 mkdir -p $out/lib/firmware
-for module in $closure; do
-    for i in $(modinfo -F firmware $module); do
+for module in $(cat closure); do
+    # for builtin modules, modinfo will reply with a wrong output looking like:
+    #   $ modinfo -F firmware unix
+    #   name:           unix
+    #
+    # There is a pending attempt to fix this:
+    #   https://github.com/NixOS/nixpkgs/pull/96153
+    #   https://lore.kernel.org/linux-modules/20200823215433.j5gc5rnsmahpf43v@blumerang/T/#u
+    #
+    # For now, the workaround is just to filter out the extraneous lines out
+    # of its output.
+    for i in $(modinfo -b $kernel --set-version "$version" -F firmware $module | grep -v '^name:'); do
         mkdir -p "$out/lib/firmware/$(dirname "$i")"
         echo "firmware for $module: $i"
         cp "$firmware/lib/firmware/$i" "$out/lib/firmware/$i" 2>/dev/null || if test -z "$allowMissing"; then exit 1; fi
diff --git a/nixpkgs/pkgs/build-support/ocaml/oasis.nix b/nixpkgs/pkgs/build-support/ocaml/oasis.nix
index 74977486f2fb..c1d1d699765b 100644
--- a/nixpkgs/pkgs/build-support/ocaml/oasis.nix
+++ b/nixpkgs/pkgs/build-support/ocaml/oasis.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation (args // {
   buildPhase = ''
     runHook preBuild
     oasis setup
-    ocaml setup.ml -configure
+    ocaml setup.ml -configure --prefix $OCAMLFIND_DESTDIR --exec-prefix $out
     ocaml setup.ml -build
     runHook postBuild
   '';
@@ -37,9 +37,7 @@ stdenv.mkDerivation (args // {
   installPhase = ''
     runHook preInstall
     mkdir -p $out
-    sed -i s+/usr/local+$out+g setup.ml
-    sed -i s+/usr/local+$out+g setup.data
-    prefix=$OCAMLFIND_DESTDIR ocaml setup.ml -install
+    ocaml setup.ml -install
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/build-support/release/default.nix b/nixpkgs/pkgs/build-support/release/default.nix
index 6b9aa9a8c4ad..6aaa0338f0cc 100644
--- a/nixpkgs/pkgs/build-support/release/default.nix
+++ b/nixpkgs/pkgs/build-support/release/default.nix
@@ -41,10 +41,6 @@ rec {
       doCoverityAnalysis = true;
     } // args);
 
-  gcovReport = args: import ./gcov-report.nix (
-    { inherit runCommand lcov rsync;
-    } // args);
-
   rpmBuild = args: import ./rpm-build.nix (
     { inherit vmTools;
     } // args);
diff --git a/nixpkgs/pkgs/build-support/release/gcov-report.nix b/nixpkgs/pkgs/build-support/release/gcov-report.nix
deleted file mode 100644
index 8ce5c0488a7d..000000000000
--- a/nixpkgs/pkgs/build-support/release/gcov-report.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ runCommand, lcov, rsync, coverageRuns, lcovFilter ? [ "/nix/store/*" ], baseDirHack ? false }:
-
-runCommand "coverage"
-  { buildInputs = [ lcov rsync ];
-    inherit lcovFilter baseDirHack;
-  }
-  ''
-    mkdir -p $TMPDIR/gcov $out/nix-support $out/coverage
-    info=$out/coverage/full.info
-
-    for p in ${toString coverageRuns}; do
-        if [ -f $p/nix-support/hydra-build-products ]; then
-            cat $p/nix-support/hydra-build-products >> $out/nix-support/hydra-build-products
-        fi
-
-        [ ! -e $p/nix-support/failed ] || touch $out/nix-support/failed
-
-        opts=
-        for d in $p/coverage-data/*; do
-            for i in $(cd $d/nix/store && ls); do
-                if ! [ -e /nix/store/$i/.build ]; then continue; fi
-                if [ -e $TMPDIR/gcov/nix/store/$i ]; then continue; fi
-                echo "copying $i..."
-                rsync -a /nix/store/$i/.build/* $TMPDIR/gcov/
-                if [ -n "$baseDirHack" ]; then
-                    opts="-b $TMPDIR/gcov/$(cd /nix/store/$i/.build && ls)"
-                fi
-            done
-
-            for i in $(cd $d/nix/store && ls); do
-                rsync -a $d/nix/store/$i/.build/* $TMPDIR/gcov/ --include '*/' --include '*.gcda' --exclude '*'
-            done
-        done
-
-        chmod -R u+w $TMPDIR/gcov
-
-        echo "producing info..."
-        geninfo --ignore-errors source,gcov $TMPDIR/gcov --output-file $TMPDIR/app.info $opts
-        cat $TMPDIR/app.info >> $info
-    done
-
-    echo "making report..."
-    set -o noglob
-    lcov --remove $info ''$lcovFilter > $info.tmp
-    set +o noglob
-    mv $info.tmp $info
-    genhtml --show-details $info -o $out/coverage
-    echo "report coverage $out/coverage" >> $out/nix-support/hydra-build-products
-  ''
diff --git a/nixpkgs/pkgs/build-support/rust/build-rust-crate/build-crate.nix b/nixpkgs/pkgs/build-support/rust/build-rust-crate/build-crate.nix
index f82effdbca7c..142109cef49f 100644
--- a/nixpkgs/pkgs/build-support/rust/build-rust-crate/build-crate.nix
+++ b/nixpkgs/pkgs/build-support/rust/build-rust-crate/build-crate.nix
@@ -38,7 +38,7 @@
     build_bin = if buildTests then "build_bin_test" else "build_bin";
   in ''
     runHook preBuild
- 
+
     # configure & source common build functions
     LIB_RUSTC_OPTS="${libRustcOpts}"
     BIN_RUSTC_OPTS="${binRustcOpts}"
diff --git a/nixpkgs/pkgs/build-support/rust/build-rust-crate/configure-crate.nix b/nixpkgs/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
index c7cffd42e087..18587f7047c4 100644
--- a/nixpkgs/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
+++ b/nixpkgs/pkgs/build-support/rust/build-rust-crate/configure-crate.nix
@@ -42,7 +42,7 @@ in ''
   noisily cd "${workspace_member}"
 ''}
   ${lib.optionalString (workspace_member == null) ''
-  echo_colored "Searching for matching Cargo.toml (${crateName})" 
+  echo_colored "Searching for matching Cargo.toml (${crateName})"
   local cargo_toml_dir=$(matching_cargo_toml_dir "${crateName}")
   if [ -z "$cargo_toml_dir" ]; then
     echo_error "ERROR configuring ${crateName}: No matching Cargo.toml in $(pwd) found." >&2
@@ -52,7 +52,7 @@ in ''
 ''}
 
   runHook preConfigure
- 
+
   symlink_dependency() {
     # $1 is the nix-store path of a dependency
     # $2 is the target path
diff --git a/nixpkgs/pkgs/build-support/rust/build-rust-crate/lib.sh b/nixpkgs/pkgs/build-support/rust/build-rust-crate/lib.sh
index 3bf1992cecd8..d4927b025aa8 100644
--- a/nixpkgs/pkgs/build-support/rust/build-rust-crate/lib.sh
+++ b/nixpkgs/pkgs/build-support/rust/build-rust-crate/lib.sh
@@ -153,8 +153,8 @@ matching_cargo_toml_path() {
   # is referenced there.
   cargo metadata --no-deps --format-version 1 \
     --manifest-path "$manifest_path" \
-    | jq -r '.packages[] 
-            | select( .name == "'$expected_crate_name'") 
+    | jq -r '.packages[]
+            | select( .name == "'$expected_crate_name'")
             | .manifest_path'
 }
 
@@ -171,4 +171,4 @@ matching_cargo_toml_dir() {
       break
     fi
   done
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/build-support/rust/build-rust-crate/log.nix b/nixpkgs/pkgs/build-support/rust/build-rust-crate/log.nix
index a7e2cb4f4639..9054815f4a1b 100644
--- a/nixpkgs/pkgs/build-support/rust/build-rust-crate/log.nix
+++ b/nixpkgs/pkgs/build-support/rust/build-rust-crate/log.nix
@@ -1,23 +1,23 @@
 { lib }:
 
 let echo_colored_body = start_escape:
-      # Body of a function that behaves like "echo" but 
+      # Body of a function that behaves like "echo" but
       # has the output colored by the given start_escape
       # sequence. E.g.
       #
       # * echo_x "Building ..."
       # * echo_x -n "Running "
       #
-      # This is more complicated than apparent at first sight 
+      # This is more complicated than apparent at first sight
       # because:
       #   * The color markers and the text must be print
       #     in the same echo statement. Otherise, other
-      #     intermingled text from concurrent builds will 
+      #     intermingled text from concurrent builds will
       #     be colored as well.
       #   * We need to preserve the trailing newline of the
       #     echo if and only if it is present. Bash likes
       #     to strip those if we capture the output of echo
-      #     in a variable.  
+      #     in a variable.
       #   * Leading "-" will be interpreted by test as an
       #     option for itself. Therefore, we prefix it with
       #     an x in `[[ "x$1" =~ ^x- ]]`.
@@ -27,13 +27,13 @@ let echo_colored_body = start_escape:
         echo_args+=" $1"
         shift
       done
-      
+
       local start_escape="$(printf '${start_escape}')"
       local reset="$(printf '\033[0m')"
       echo $echo_args $start_escape"$@"$reset
       '';
   echo_conditional_colored_body = colors: start_escape:
-      if colors == "always" 
+      if colors == "always"
       then (echo_colored_body start_escape)
       else ''echo "$@"'';
 in {
@@ -50,7 +50,7 @@ in {
   noisily = colors: verbose: ''
     noisily() {
   	  ${lib.optionalString verbose ''
-        echo_colored -n "Running " 
+        echo_colored -n "Running "
         echo $@
   	  ''}
   	  $@
diff --git a/nixpkgs/pkgs/build-support/rust/default.nix b/nixpkgs/pkgs/build-support/rust/default.nix
index 17ab24bc6a21..6ea1dc27dd85 100644
--- a/nixpkgs/pkgs/build-support/rust/default.nix
+++ b/nixpkgs/pkgs/build-support/rust/default.nix
@@ -31,6 +31,8 @@ let
     , target ? null
     , cargoVendorDir ? null
     , checkType ? buildType
+    , depsExtraArgs ? {}
+    , cargoParallelTestThreads ? true
 
     # Needed to `pushd`/`popd` into a subdir of a tarball if this subdir
     # contains a Cargo.toml, but isn't part of a workspace (which is e.g. the
@@ -45,11 +47,11 @@ let
     let
 
       cargoDeps = if cargoVendorDir == null
-        then fetchCargoTarball {
+        then fetchCargoTarball ({
             inherit name src srcs sourceRoot unpackPhase cargoUpdateHook;
             patches = cargoPatches;
             sha256 = cargoSha256;
-          }
+          } // depsExtraArgs)
         else null;
 
       # If we have a cargoSha256 fixed-output derivation, validate it at build time
@@ -76,6 +78,7 @@ let
       ccForHost="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc";
       cxxForHost="${stdenv.cc}/bin/${stdenv.cc.targetPrefix}c++";
       releaseDir = "target/${rustTarget}/${buildType}";
+      tmpDir = "${releaseDir}-tmp";
 
       # Specify the stdenv's `diff` by abspath to ensure that the user's build
       # inputs do not cause us to find the wrong `diff`.
@@ -84,7 +87,7 @@ let
 
     in
 
-    stdenv.mkDerivation (args // {
+    stdenv.mkDerivation ((removeAttrs args ["depsExtraArgs"]) // {
       inherit cargoDeps;
 
       patchRegistryDeps = ./patch-registry-deps;
@@ -156,7 +159,7 @@ let
           echo
           echo "To fix the issue:"
           echo '1. Use "0000000000000000000000000000000000000000000000000000" as the cargoSha256 value'
-          echo "2. Build the derivation and wait it to fail with a hash mismatch"
+          echo "2. Build the derivation and wait for it to fail with a hash mismatch"
           echo "3. Copy the 'got: sha256:' value back into the cargoSha256 field"
           echo
 
@@ -182,7 +185,7 @@ let
           "CXX_${rust.toRustTarget stdenv.buildPlatform}"="${cxxForBuild}" \
           "CC_${rust.toRustTarget stdenv.hostPlatform}"="${ccForHost}" \
           "CXX_${rust.toRustTarget stdenv.hostPlatform}"="${cxxForHost}" \
-          cargo build \
+          cargo build -j $NIX_BUILD_CORES \
             ${stdenv.lib.optionalString (buildType == "release") "--release"} \
             --target ${rustTarget} \
             --frozen ${concatStringsSep " " cargoBuildFlags}
@@ -195,7 +198,9 @@ let
         # This needs to be done after postBuild: packages like `cargo` do a pushd/popd in
         # the pre/postBuild-hooks that need to be taken into account before gathering
         # all binaries to install.
-        bins=$(find $releaseDir \
+        mkdir -p $tmpDir
+        cp -r $releaseDir/* $tmpDir/
+        bins=$(find $tmpDir \
           -maxdepth 1 \
           -type f \
           -executable ! \( -regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \))
@@ -203,11 +208,12 @@ let
 
       checkPhase = args.checkPhase or (let
         argstr = "${stdenv.lib.optionalString (checkType == "release") "--release"} --target ${rustTarget} --frozen";
+        threads = if cargoParallelTestThreads then "$NIX_BUILD_CORES" else "1";
       in ''
         ${stdenv.lib.optionalString (buildAndTestSubdir != null) "pushd ${buildAndTestSubdir}"}
         runHook preCheck
         echo "Running cargo test ${argstr} -- ''${checkFlags} ''${checkFlagsArray+''${checkFlagsArray[@]}}"
-        cargo test ${argstr} -- ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"}
+        cargo test -j $NIX_BUILD_CORES ${argstr} -- --test-threads=${threads} ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"}
         runHook postCheck
         ${stdenv.lib.optionalString (buildAndTestSubdir != null) "popd"}
       '');
@@ -216,13 +222,13 @@ let
 
       strictDeps = true;
 
-      inherit releaseDir;
+      inherit releaseDir tmpDir;
 
       installPhase = args.installPhase or ''
         runHook preInstall
 
         # rename the output dir to a architecture independent one
-        mapfile -t targets < <(find "$NIX_BUILD_TOP" -type d | grep '${releaseDir}$')
+        mapfile -t targets < <(find "$NIX_BUILD_TOP" -type d | grep '${tmpDir}$')
         for target in "''${targets[@]}"; do
           rm -rf "$target/../../${buildType}"
           ln -srf "$target" "$target/../../"
@@ -230,7 +236,7 @@ let
         mkdir -p $out/bin $out/lib
 
         xargs -r cp -t $out/bin <<< $bins
-        find $releaseDir \
+        find $tmpDir \
           -maxdepth 1 \
           -regex ".*\.\(so.[0-9.]+\|so\|a\|dylib\)" \
           -print0 | xargs -r -0 cp -t $out/lib
diff --git a/nixpkgs/pkgs/build-support/rust/fetchcrate.nix b/nixpkgs/pkgs/build-support/rust/fetchcrate.nix
index 95dfd38b12ae..4e6c38b032ce 100644
--- a/nixpkgs/pkgs/build-support/rust/fetchcrate.nix
+++ b/nixpkgs/pkgs/build-support/rust/fetchcrate.nix
@@ -1,10 +1,13 @@
 { lib, fetchurl, unzip }:
 
-{ crateName
+{ crateName ? args.pname
+, pname ? null
 , version
 , sha256
 , ... } @ args:
 
+assert pname == null || pname == crateName;
+
 lib.overrideDerivation (fetchurl ({
 
   name = "${crateName}-${version}.tar.gz";
@@ -30,6 +33,6 @@ lib.overrideDerivation (fetchurl ({
       fi
       mv "$unpackDir/$fn" "$out"
     '';
-} // removeAttrs args [ "crateName" "version" ]))
+} // removeAttrs args [ "crateName" "pname" "version" ]))
 # Hackety-hack: we actually need unzip hooks, too
 (x: {nativeBuildInputs = x.nativeBuildInputs++ [unzip];})
diff --git a/nixpkgs/pkgs/build-support/setup-hooks/auto-patchelf.sh b/nixpkgs/pkgs/build-support/setup-hooks/auto-patchelf.sh
index 72970623ed79..4f7c0c14304c 100644
--- a/nixpkgs/pkgs/build-support/setup-hooks/auto-patchelf.sh
+++ b/nixpkgs/pkgs/build-support/setup-hooks/auto-patchelf.sh
@@ -141,7 +141,7 @@ autoPatchelfFile() {
     # This makes sure the builder fails if we didn't find a dependency, because
     # the stdenv setup script is run with set -e. The actual error is emitted
     # earlier in the previous loop.
-    [ $depNotFound -eq 0 ]
+    [ $depNotFound -eq 0 -o -n "$autoPatchelfIgnoreMissingDeps" ]
 
     if [ -n "$rpath" ]; then
         echo "setting RPATH to: $rpath" >&2
diff --git a/nixpkgs/pkgs/build-support/setup-hooks/multiple-outputs.sh b/nixpkgs/pkgs/build-support/setup-hooks/multiple-outputs.sh
index 2e95495c96fd..bfa47e3b20e1 100644
--- a/nixpkgs/pkgs/build-support/setup-hooks/multiple-outputs.sh
+++ b/nixpkgs/pkgs/build-support/setup-hooks/multiple-outputs.sh
@@ -61,7 +61,7 @@ _multioutConfig() {
             local shareDocName="$(sed -n "s/^PACKAGE_TARNAME='\(.*\)'$/\1/p" < "$confScript")"
         fi
                                     # PACKAGE_TARNAME sometimes contains garbage.
-        if [ -n "$shareDocName" ] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_-]'; then
+        if [ -z "$shareDocName" ] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_-]'; then
             shareDocName="$(echo "$name" | sed 's/-[^a-zA-Z].*//')"
         fi
     fi
diff --git a/nixpkgs/pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix b/nixpkgs/pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix
new file mode 100644
index 000000000000..5a87893d9726
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/setup-hooks/wrap-gapps-hook/default.nix
@@ -0,0 +1,175 @@
+{ stdenv
+, lib
+, makeSetupHook
+, makeWrapper
+, gobject-introspection
+, gtk3
+, librsvg
+, dconf
+, callPackage
+, wrapGAppsHook
+, writeTextFile
+}:
+
+makeSetupHook {
+  deps = lib.optionals (!stdenv.isDarwin) [
+    # It is highly probable that a program will use GSettings,
+    # at minimum through GTK file chooser dialogue.
+    # Let’s add a GIO module for “dconf” GSettings backend
+    # to avoid falling back to “memory” backend. This is
+    # required for GSettings-based settings to be persisted.
+    # Unfortunately, it also requires the user to have dconf
+    # D-Bus service enabled globally (e.g. through a NixOS module).
+    dconf.lib
+  ] ++ [
+    # TODO: remove this, packages should depend on GTK explicitly.
+    gtk3
+
+    # librsvg provides a module for gdk-pixbuf to allow rendering
+    # SVG icons. Most icon themes are SVG-based and so are some
+    # graphics in GTK (e.g. cross for closing window in window title bar)
+    # so it is pretty much required for applications using GTK.
+    librsvg
+
+    # We use the wrapProgram function.
+    makeWrapper
+  ];
+  substitutions = {
+    passthru.tests = let
+      sample-project = ./tests/sample-project;
+
+      testLib = callPackage ./tests/lib.nix { };
+      inherit (testLib) expectSomeLineContainingYInFileXToMentionZ;
+    in rec {
+      # Simple derivation containing a program and a daemon.
+      basic = stdenv.mkDerivation {
+        name = "basic";
+
+        src = sample-project;
+
+        nativeBuildInputs = [ wrapGAppsHook ];
+
+        installFlags = [ "bin-foo" "libexec-bar" ];
+      };
+
+      # The wrapper for executable files should add path to dconf GIO module.
+      basic-contains-dconf = let
+        tested = basic;
+      in testLib.runTest "basic-contains-dconf" (
+        testLib.skip stdenv.isDarwin ''
+          ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GIO_EXTRA_MODULES=" "${dconf.lib}/lib/gio/modules"}
+          ${expectSomeLineContainingYInFileXToMentionZ "${tested}/libexec/bar" "GIO_EXTRA_MODULES=" "${dconf.lib}/lib/gio/modules"}
+        ''
+      );
+
+      # Simple derivation containing a gobject-introspection typelib.
+      typelib-Mahjong = stdenv.mkDerivation {
+        name = "typelib-Mahjong";
+
+        src = sample-project;
+
+        installFlags = [ "typelib-Mahjong" ];
+      };
+
+      # Simple derivation using a typelib.
+      typelib-user = stdenv.mkDerivation {
+        name = "typelib-user";
+
+        src = sample-project;
+
+        nativeBuildInputs = [
+          gobject-introspection
+          wrapGAppsHook
+        ];
+
+        buildInputs = [
+          typelib-Mahjong
+        ];
+
+        installFlags = [ "bin-foo" "libexec-bar" ];
+      };
+
+      # Testing cooperation with gobject-introspection setup hook,
+      # which should populate GI_TYPELIB_PATH variable with paths
+      # to typelibs among the derivation’s dependencies.
+      # The resulting GI_TYPELIB_PATH should be picked up by the wrapper.
+      typelib-user-has-gi-typelib-path = let
+        tested = typelib-user;
+      in testLib.runTest "typelib-user-has-gi-typelib-path" ''
+        ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GI_TYPELIB_PATH=" "${typelib-Mahjong}/lib/girepository-1.0"}
+        ${expectSomeLineContainingYInFileXToMentionZ "${tested}/libexec/bar" "GI_TYPELIB_PATH=" "${typelib-Mahjong}/lib/girepository-1.0"}
+      '';
+
+      # Simple derivation containing a gobject-introspection typelib in lib output.
+      typelib-Bechamel = stdenv.mkDerivation {
+        name = "typelib-Bechamel";
+
+        outputs = [ "out" "lib" ];
+
+        src = sample-project;
+
+        makeFlags = [
+          "LIBDIR=${placeholder "lib"}/lib"
+        ];
+
+        installFlags = [ "typelib-Bechamel" ];
+      };
+
+      # Simple derivation using a typelib from non-default output.
+      typelib-multiout-user = stdenv.mkDerivation {
+        name = "typelib-multiout-user";
+
+        src = sample-project;
+
+        nativeBuildInputs = [
+          gobject-introspection
+          wrapGAppsHook
+        ];
+
+        buildInputs = [
+          typelib-Bechamel
+        ];
+
+        installFlags = [ "bin-foo" "libexec-bar" ];
+      };
+
+      # Testing cooperation with gobject-introspection setup hook,
+      # which should populate GI_TYPELIB_PATH variable with paths
+      # to typelibs among the derivation’s dependencies,
+      # even when they are not in default output.
+      # The resulting GI_TYPELIB_PATH should be picked up by the wrapper.
+      typelib-multiout-user-has-gi-typelib-path = let
+        tested = typelib-multiout-user;
+      in testLib.runTest "typelib-multiout-user-has-gi-typelib-path" ''
+        ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GI_TYPELIB_PATH=" "${typelib-Bechamel.lib}/lib/girepository-1.0"}
+        ${expectSomeLineContainingYInFileXToMentionZ "${tested}/libexec/bar" "GI_TYPELIB_PATH=" "${typelib-Bechamel.lib}/lib/girepository-1.0"}
+      '';
+
+      # Simple derivation that contains a typelib as well as a program using it.
+      typelib-self-user = stdenv.mkDerivation {
+        name = "typelib-self-user";
+
+        src = sample-project;
+
+        nativeBuildInputs = [
+          gobject-introspection
+          wrapGAppsHook
+        ];
+
+        installFlags = [ "typelib-Cow" "bin-foo" "libexec-bar" ];
+      };
+
+      # Testing cooperation with gobject-introspection setup hook,
+      # which should add the path to derivation’s own typelibs
+      # to GI_TYPELIB_PATH variable.
+      # The resulting GI_TYPELIB_PATH should be picked up by the wrapper.
+      # https://github.com/NixOS/nixpkgs/issues/85515
+      typelib-self-user-has-gi-typelib-path = let
+        tested = typelib-self-user;
+      in testLib.runTest "typelib-self-user-has-gi-typelib-path" ''
+        ${expectSomeLineContainingYInFileXToMentionZ "${tested}/bin/foo" "GI_TYPELIB_PATH=" "${typelib-self-user}/lib/girepository-1.0"}
+        ${expectSomeLineContainingYInFileXToMentionZ "${tested}/libexec/bar" "GI_TYPELIB_PATH=" "${typelib-self-user}/lib/girepository-1.0"}
+      '';
+    };
+  };
+} ./wrap-gapps-hook.sh
diff --git a/nixpkgs/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/lib.nix b/nixpkgs/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/lib.nix
new file mode 100644
index 000000000000..1757bdbbe250
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/lib.nix
@@ -0,0 +1,30 @@
+{ runCommand
+}:
+
+rec {
+  runTest = name: body: runCommand name { } ''
+    set -o errexit
+    ${body}
+    touch $out
+  '';
+
+  skip = cond: text:
+    if cond then ''
+      echo "Skipping test $name" > /dev/stderr
+    '' else text;
+
+  fail = text: ''
+    echo "FAIL: $name: ${text}" > /dev/stderr
+    exit 1
+  '';
+
+  expectSomeLineContainingYInFileXToMentionZ = file: filter: expected: ''
+    if ! cat "${file}" | grep "${filter}"; then
+        ${fail "The file “${file}” should include a line containing “${filter}”."}
+    fi
+
+    if ! cat "${file}" | grep "${filter}" | grep ${expected}; then
+        ${fail "The file “${file}” should include a line containing “${filter}” that also contains “${expected}”."}
+    fi
+  '';
+}
diff --git a/nixpkgs/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/sample-project/Makefile b/nixpkgs/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/sample-project/Makefile
new file mode 100644
index 000000000000..5d234db11a0b
--- /dev/null
+++ b/nixpkgs/pkgs/build-support/setup-hooks/wrap-gapps-hook/tests/sample-project/Makefile
@@ -0,0 +1,30 @@
+PREFIX = $(out)
+BINDIR = $(PREFIX)/bin
+LIBEXECDIR = $(PREFIX)/libexec
+LIBDIR = $(PREFIX)/lib
+TYPELIBDIR = $(LIBDIR)/girepository-1.0
+
+all:
+	echo "Compiling…"
+install:
+	echo "Installing…"
+
+bin:
+	mkdir -p $(BINDIR)
+# Adds `bin-${foo}` targets, that install `${foo}` executable to `$(BINDIR)`.
+bin-%: bin
+	touch $(BINDIR)/$(@:bin-%=%)
+	chmod +x $(BINDIR)/$(@:bin-%=%)
+
+libexec:
+	mkdir -p $(LIBEXECDIR)
+# Adds `libexec-${foo}` targets, that install `${foo}` executable to `$(LIBEXECDIR)`.
+libexec-%: libexec
+	touch $(LIBEXECDIR)/$(@:libexec-%=%)
+	chmod +x $(LIBEXECDIR)/$(@:libexec-%=%)
+
+typelib:
+	mkdir -p $(TYPELIBDIR)
+# Adds `typelib-${foo}` targets, that install `${foo}-1.0.typelib` file to `$(TYPELIBDIR)`.
+typelib-%: typelib
+	touch $(TYPELIBDIR)/$(@:typelib-%=%)-1.0.typelib
diff --git a/nixpkgs/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh b/nixpkgs/pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh
index 1a46e075dbe7..1a46e075dbe7 100644
--- a/nixpkgs/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh
+++ b/nixpkgs/pkgs/build-support/setup-hooks/wrap-gapps-hook/wrap-gapps-hook.sh
diff --git a/nixpkgs/pkgs/build-support/singularity-tools/default.nix b/nixpkgs/pkgs/build-support/singularity-tools/default.nix
index 54749e416ea3..d937ec626682 100644
--- a/nixpkgs/pkgs/build-support/singularity-tools/default.nix
+++ b/nixpkgs/pkgs/build-support/singularity-tools/default.nix
@@ -86,7 +86,9 @@ rec {
             done
 
             # Create runScript and link shell
-            ln -s ${runtimeShell} bin/sh
+            if [ ! -e bin/sh ]; then
+              ln -s ${runtimeShell} bin/sh
+            fi
             mkdir -p .singularity.d
             ln -s ${runScriptFile} .singularity.d/runscript
 
@@ -97,6 +99,7 @@ rec {
             cd ..
             mkdir -p /var/singularity/mnt/{container,final,overlay,session,source}
             echo "root:x:0:0:System administrator:/root:/bin/sh" > /etc/passwd
+            echo > /etc/resolv.conf
             TMPDIR=$(pwd -P) singularity build $out ./img
           '');
 
diff --git a/nixpkgs/pkgs/build-support/trivial-builders.nix b/nixpkgs/pkgs/build-support/trivial-builders.nix
index 3c81a4ece657..eab5366e1839 100644
--- a/nixpkgs/pkgs/build-support/trivial-builders.nix
+++ b/nixpkgs/pkgs/build-support/trivial-builders.nix
@@ -240,6 +240,8 @@ rec {
    * This creates a single derivation that replicates the directory structure
    * of all the input paths.
    *
+   * BEWARE: it may not "work right" when the passed paths contain symlinks to directories.
+   *
    * Examples:
    * # adds symlinks of hello to current build.
    * symlinkJoin { name = "myhello"; paths = [ pkgs.hello ]; }
diff --git a/nixpkgs/pkgs/build-support/writers/default.nix b/nixpkgs/pkgs/build-support/writers/default.nix
index af492d80db01..495a56b41974 100644
--- a/nixpkgs/pkgs/build-support/writers/default.nix
+++ b/nixpkgs/pkgs/build-support/writers/default.nix
@@ -22,7 +22,30 @@ rec {
       inherit interpreter;
       contentPath = content;
     }) ''
-      echo "#! $interpreter" > $out
+      # On darwin a script cannot be used as an interpreter in a shebang but
+      # there doesn't seem to be a limit to the size of shebang and multiple
+      # arguments to the interpreter are allowed.
+      if [[ -n "${toString pkgs.stdenvNoCC.isDarwin}" ]] && isScript $interpreter
+      then
+        wrapperInterpreterLine=$(head -1 "$interpreter" | tail -c+3)
+        # Get first word from the line (note: xargs echo remove leading spaces)
+        wrapperInterpreter=$(echo "$wrapperInterpreterLine" | xargs echo | cut -d " " -f1)
+
+        if isScript $wrapperInterpreter
+        then
+          echo "error: passed interpreter ($interpreter) is a script which has another script ($wrapperInterpreter) as an interpreter, which is not supported."
+          exit 1
+        fi
+
+        # This should work as long as wrapperInterpreter is a shell, which is
+        # the case for programs wrapped with makeWrapper, like
+        # python3.withPackages etc.
+        interpreterLine="$wrapperInterpreterLine $interpreter"
+      else
+        interpreterLine=$interpreter
+      fi
+
+      echo "#! $interpreterLine" > $out
       cat "$contentPath" >> $out
       ${optionalString (check != "") ''
         ${check} $out
@@ -141,12 +164,13 @@ rec {
   #   '';
   writeHaskell = name: {
     libraries ? [],
-    ghc ? pkgs.ghc
+    ghc ? pkgs.ghc,
+    ghcArgs ? []
   }:
     makeBinWriter {
       compileScript = ''
         cp $contentPath tmp.hs
-        ${ghc.withPackages (_: libraries )}/bin/ghc tmp.hs
+        ${ghc.withPackages (_: libraries )}/bin/ghc ${lib.escapeShellArgs ghcArgs} tmp.hs
         mv tmp $out
         ${pkgs.binutils-unwrapped}/bin/strip --strip-unneeded "$out"
       '';
@@ -227,6 +251,24 @@ rec {
   writePerlBin = name:
     writePerl "/bin/${name}";
 
+  # makePythonWriter takes python and compatible pythonPackages and produces python script writer,
+  # which validates the script with flake8 at build time. If any libraries are specified,
+  # python.withPackages is used as interpreter, otherwise the "bare" python is used.
+  makePythonWriter = python: pythonPackages: name: { libraries ? [], flakeIgnore ? [] }:
+  let
+    ignoreAttribute = optionalString (flakeIgnore != []) "--ignore ${concatMapStringsSep "," escapeShellArg flakeIgnore}";
+  in
+  makeScriptWriter {
+    interpreter =
+      if libraries == []
+      then "${python}/bin/python"
+      else "${python.withPackages (ps: libraries)}/bin/python"
+    ;
+    check = writeDash "python2check.sh" ''
+      exec ${pythonPackages.flake8}/bin/flake8 --show-source ${ignoreAttribute} "$1"
+    '';
+  } name;
+
   # writePython2 takes a name an attributeset with libraries and some python2 sourcecode and
   # returns an executable
   #
@@ -239,17 +281,7 @@ rec {
   #
   #   print Test.a
   # ''
-  writePython2 = name: { libraries ? [], flakeIgnore ? [] }:
-  let
-    py = pkgs.python2.withPackages (ps: libraries);
-    ignoreAttribute = optionalString (flakeIgnore != []) "--ignore ${concatMapStringsSep "," escapeShellArg flakeIgnore}";
-  in
-  makeScriptWriter {
-    interpreter = "${py}/bin/python";
-    check = writeDash "python2check.sh" ''
-      exec ${pkgs.python2Packages.flake8}/bin/flake8 --show-source ${ignoreAttribute} "$1"
-    '';
-  } name;
+  writePython2 = makePythonWriter pkgs.python2 pkgs.python2Packages;
 
   # writePython2Bin takes the same arguments as writePython2 but outputs a directory (like writeScriptBin)
   writePython2Bin = name:
@@ -267,17 +299,7 @@ rec {
   #   """)
   #   print(y[0]['test'])
   # ''
-  writePython3 = name: { libraries ? [], flakeIgnore ? [] }:
-  let
-    py = pkgs.python3.withPackages (ps: libraries);
-    ignoreAttribute = optionalString (flakeIgnore != []) "--ignore ${concatMapStringsSep "," escapeShellArg flakeIgnore}";
-  in
-  makeScriptWriter {
-    interpreter = "${py}/bin/python";
-    check = writeDash "python3check.sh" ''
-      exec ${pkgs.python3Packages.flake8}/bin/flake8 --show-source ${ignoreAttribute} "$1"
-    '';
-  } name;
+  writePython3 = makePythonWriter pkgs.python3 pkgs.python3Packages;
 
   # writePython3Bin takes the same arguments as writePython3 but outputs a directory (like writeScriptBin)
   writePython3Bin = name:
diff --git a/nixpkgs/pkgs/build-support/writers/test.nix b/nixpkgs/pkgs/build-support/writers/test.nix
index 3cd0a080ae8f..d284bda43d05 100644
--- a/nixpkgs/pkgs/build-support/writers/test.nix
+++ b/nixpkgs/pkgs/build-support/writers/test.nix
@@ -152,6 +152,14 @@ let
       """)
       print(y[0]['test'])
     '';
+
+    python2NoLibs = writePython2 "test_python2_no_libs" {} ''
+      print("success")
+    '';
+
+    python3NoLibs = writePython3 "test_python3_no_libs" {} ''
+      print("success")
+    '';
   };
 
 
diff --git a/nixpkgs/pkgs/common-updater/nix-update.nix b/nixpkgs/pkgs/common-updater/nix-update.nix
new file mode 100644
index 000000000000..13b85bf52fff
--- /dev/null
+++ b/nixpkgs/pkgs/common-updater/nix-update.nix
@@ -0,0 +1,5 @@
+{ nix-update }:
+
+{ attrPath }:
+
+[ "${nix-update}/bin/nix-update" attrPath ]
diff --git a/nixpkgs/pkgs/data/documentation/anarchism/default.nix b/nixpkgs/pkgs/data/documentation/anarchism/default.nix
new file mode 100644
index 000000000000..5b63e104d9db
--- /dev/null
+++ b/nixpkgs/pkgs/data/documentation/anarchism/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitLab, xdg_utils }:
+
+stdenv.mkDerivation rec {
+  pname = "anarchism";
+  version = "15.3-1";
+
+  src = fetchFromGitLab {
+    domain = "salsa.debian.org";
+    owner = "debian";
+    repo = pname;
+    rev = "debian%2F${version}"; # %2F = urlquote("/")
+    sha256 = "04ylk0y5b3jml2awmyz7m1hnymni8y1n83m0k6ychdh0px8frhm5";
+  };
+
+  phases = [ "unpackPhase" "postPatch" "installPhase" ];
+
+  postPatch = ''
+    substituteInPlace debian/anarchism.desktop \
+      --replace "/usr/bin/xdg-open" "${xdg_utils}/bin/xdg-open"
+    substituteInPlace debian/anarchism.desktop \
+      --replace "file:///usr" "file://$out"
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/doc/anarchism $out/share/applications $out/share/icons/hicolor/scalable/apps 
+    cp -r {html,markdown} $out/share/doc/anarchism
+    cp debian/anarchism.svg $out/share/icons/hicolor/scalable/apps
+    cp debian/anarchism.desktop $out/share/applications
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://www.anarchistfaq.org/";
+    changelog = "http://anarchism.pageabode.com/afaq/new.html";
+    description = "Exhaustive exploration of Anarchist theory and practice";
+    longDescription = ''
+      The Anarchist FAQ is an excellent source of information regarding Anarchist
+      (libertarian socialist) theory and practice. It covers all major topics,
+      from the basics of Anarchism to very specific discussions of politics,
+      social organization, and economics.
+    '';
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ davidak ];
+    platforms = with platforms; all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/documentation/bgnet/default.nix b/nixpkgs/pkgs/data/documentation/bgnet/default.nix
index f5ac07f1b7fe..a69a2d7a64f9 100644
--- a/nixpkgs/pkgs/data/documentation/bgnet/default.nix
+++ b/nixpkgs/pkgs/data/documentation/bgnet/default.nix
@@ -1,27 +1,30 @@
-{ stdenv, lib, fetchurl, python, zip, fop }:
+{ stdenv, lib, fetchFromGitHub, python3, pandoc }:
 
 stdenv.mkDerivation {
   pname = "bgnet";
-  version = "3.0.21";
+  # to be found in the Makefile
+  version = "3.1.2";
 
-  src = fetchurl {
-    url = "https://beej.us/guide/bgnet/bgnet.tgz";
-    sha256 = "00ggr5prc5i3w9gaaw2sadfq6haq7lmh0vdilaxx8xz9z5znxvyv";
+  src = fetchFromGitHub {
+    owner = "beejjorgensen";
+    repo = "bgnet";
+    rev = "782a785a35d43c355951b8151628d7c64e4d0346";
+    sha256 = "19w0r3zr71ydd29amqwn8q3npgrpy5kkshyshyji2hw5hky6iy92";
   };
 
-  buildInputs = [ python zip fop ];
-
-  preBuild = ''
-    sed -i "s/#disable=1/disable=1/" bin/bgvalidate
+  buildPhase = ''
     # build scripts need some love
-    patchShebangs .
+    patchShebangs bin/preproc
+
+    make -C src bgnet.html
   '';
 
   installPhase = ''
-    mkdir -p $out
-    mv * $out/
+    install -Dm644 src/bgnet.html $out/share/doc/bgnet/html/index.html
   '';
 
+  nativeBuildInputs = [ python3 pandoc ];
+
   meta = {
     description = "Beej’s Guide to Network Programming";
     homepage = "https://beej.us/guide/bgnet/";
diff --git a/nixpkgs/pkgs/data/documentation/man-pages/default.nix b/nixpkgs/pkgs/data/documentation/man-pages/default.nix
index 5d58284cb663..58aaf8c47ca8 100644
--- a/nixpkgs/pkgs/data/documentation/man-pages/default.nix
+++ b/nixpkgs/pkgs/data/documentation/man-pages/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "man-pages";
-  version = "5.07";
+  version = "5.08";
 
   src = fetchurl {
     url = "mirror://kernel/linux/docs/man-pages/${pname}-${version}.tar.xz";
-    sha256 = "13b3q7c67r0wkla4pdihl1qh09k67ms2z5jgzfqgpdqqy6mgziwd";
+    sha256 = "1xzp3f6wvw3wplk1a1x09zfv0jp0pdc9wh95czndh3h8z0qwv9yf";
   };
 
   makeFlags = [ "MANDIR=$(out)/share/man" ];
diff --git a/nixpkgs/pkgs/data/documentation/scheme-manpages/default.nix b/nixpkgs/pkgs/data/documentation/scheme-manpages/default.nix
index 0d57b8e261ca..345fb99b7bb4 100644
--- a/nixpkgs/pkgs/data/documentation/scheme-manpages/default.nix
+++ b/nixpkgs/pkgs/data/documentation/scheme-manpages/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "scheme-manpages-unstable";
-  version = "2020-05-17";
+  version = "2020-08-14";
 
   src = fetchFromGitHub {
     owner = "schemedoc";
-    repo = "scheme-manpages";
-    rev = "e97bd240d398e4e5ffc62305e506a2f2428322a4";
-    sha256 = "0c0n3mvghm9c2id8rxfd829plb64nf57jkqgmxf83w7x9jczbqqb";
+    repo = "manpages";
+    rev = "2e99a0aea9c0327e3c2dcfb9b7a2f8f528b4fe43";
+    sha256 = "0ykj4i8mx50mgyz9q63glfnc0mw1lf89hwsflpnbizjda5b4s0fp";
   };
 
   dontBuild = true;
@@ -19,8 +19,8 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "Manpages for Scheme";
-    homepage = "https://github.com/schemedoc/scheme-manpages";
+    description = "Unix manual pages for R6RS and R7RS";
+    homepage = "https://github.com/schemedoc/manpages";
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/data/documentation/zeal/default.nix b/nixpkgs/pkgs/data/documentation/zeal/default.nix
index 7bfe918030ed..4551dc211792 100644
--- a/nixpkgs/pkgs/data/documentation/zeal/default.nix
+++ b/nixpkgs/pkgs/data/documentation/zeal/default.nix
@@ -1,40 +1,44 @@
 { stdenv, fetchFromGitHub, cmake, extra-cmake-modules, pkgconfig
-, qtbase, qtimageformats, qtwebkit, qtx11extras, mkDerivation
+, qtbase, qtimageformats, qtwebengine, qtx11extras, mkDerivation
 , libarchive, libXdmcp, libpthreadstubs, xcbutilkeysyms  }:
 
 mkDerivation rec {
   pname = "zeal";
-  version = "0.6.1";
+  version = "0.6.999";
 
   src = fetchFromGitHub {
-    owner  = "zealdocs";
-    repo   = "zeal";
-    rev    = "v${version}";
-    sha256 = "05qcjpibakv4ibhxgl5ajbkby3w7bkxsv3nfv2a0kppi1z0f8n8v";
+    owner = "zealdocs";
+    repo = "zeal";
+    rev = "1ce0e2e446232e7647c5588c1f603f1dd88e0f67";
+    sha256 = "0gj5qcm7ck8m5zfmiabay2f7wbxldmrkw8m3xi7v9i8y8hx0jkxr";
   };
 
-  # while ads can be disabled from the user settings, by default they are not so
-  # we patch it out completely instead
-  patches = [ ./remove_ads.patch ];
+  # we only need this if we are using a version that hasn't been released. We
+  # could also match on the "VERSION x.y.z" bit but then it would have to be
+  # updated based on whatever is the latest release, so instead just rewrite the
+  # line.
+  postPatch = ''
+    sed -i CMakeLists.txt \
+      -e 's@^project.*@project(Zeal VERSION ${version})@'
+  '';
 
   nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig ];
+
   buildInputs = [
-    qtbase qtimageformats qtwebkit qtx11extras
+    qtbase qtimageformats qtwebengine qtx11extras
     libarchive
     libXdmcp libpthreadstubs xcbutilkeysyms
   ];
 
-  enableParallelBuilding = true;
-
   meta = with stdenv.lib; {
     description = "A simple offline API documentation browser";
     longDescription = ''
       Zeal is a simple offline API documentation browser inspired by Dash (macOS
       app), available for Linux and Windows.
     '';
-    homepage    = "https://zealdocs.org/";
-    license     = licenses.gpl3;
+    homepage = "https://zealdocs.org/";
+    license = licenses.gpl3;
     maintainers = with maintainers; [ skeidel peterhoeg ];
-    platforms   = platforms.linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/data/documentation/zeal/remove_ads.patch b/nixpkgs/pkgs/data/documentation/zeal/remove_ads.patch
deleted file mode 100644
index be0cab305eb5..000000000000
--- a/nixpkgs/pkgs/data/documentation/zeal/remove_ads.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-commit 1b61397175b6e60f23224db463301c9057830859
-Author: Peter Hoeg <peter@hoeg.com>
-Date:   Mon Feb 19 07:38:03 2018 +0800
-
-    strip container with ads
-
-diff --git a/src/app/resources/browser/welcome.html b/src/app/resources/browser/welcome.html
-index bb3f511..67382b2 100644
---- a/src/app/resources/browser/welcome.html
-+++ b/src/app/resources/browser/welcome.html
-@@ -20,12 +20,6 @@
-               <span id="version" class="has-text-weight-light is-size-5"></span>
-             </p>
-             <p class="subtitle">Docs for everyone</p>
--            <div id="carboncontainer" style="margin-top: 75px;">
--              <div id="carbon" class="box">
--                <script async type="text/javascript" src="https://cdn.carbonads.com/carbon.js?zoneid=1673&serve=C6AILKT&placement=zealdocsforwindowsorg"
--                  onerror="document.getElementById('carboncontainer').style.display = 'none';" id="_carbonads_js"></script>
--              </div>
--            </div>
-           </div>
-           <div class="column">
-             <p class="subtitle is-5">Customize</p>
diff --git a/nixpkgs/pkgs/data/fonts/3270font/default.nix b/nixpkgs/pkgs/data/fonts/3270font/default.nix
new file mode 100644
index 000000000000..a972bd7c3d8b
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/3270font/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchzip }:
+let
+  version = "2.1.0";
+in
+fetchzip {
+  name = "3270font-${version}";
+
+  url = "https://github.com/rbanffy/3270font/releases/download/v.${version}/3270_fonts_fba25eb.zip";
+
+  sha256 = "04xqgiznd6d3c1rdbbdmd87rjy9bnhh00lm8xzmal1zidcr2g0n9";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.woff -d $out/share/fonts/woff
+  '';
+
+  meta = with lib; {
+    description = "Monospaced font based on IBM 3270 terminals";
+    homepage = "https://github.com/rbanffy/3270font";
+    license = [ licenses.bsd3 licenses.ofl ];
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/agave/default.nix b/nixpkgs/pkgs/data/fonts/agave/default.nix
index 585ab6b4292c..0c2cd1609f61 100644
--- a/nixpkgs/pkgs/data/fonts/agave/default.nix
+++ b/nixpkgs/pkgs/data/fonts/agave/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "agave";
-  version = "14";
+  version = "22";
 in fetchurl {
   name = "${pname}-${version}";
   url = "https://github.com/agarick/agave/releases/download/v${version}/Agave-Regular.ttf";
@@ -13,7 +13,7 @@ in fetchurl {
     install -D $downloadedFile $out/share/fonts/truetype/Agave-Regular.ttf
   '';
 
-  sha256 = "14hr6cdn5xbfpszj4qyfqbwmjyrkmi83yl0g9j3y3jw561jwy27j";
+  sha256 = "1jb8f0xcv5z0l5nyx733b6zclswi82vrh2nwyyhbqzgqrl4y1h6s";
 
   meta = with lib; {
     description = "truetype monospaced typeface designed for X environments";
diff --git a/nixpkgs/pkgs/data/fonts/alegreya-sans/default.nix b/nixpkgs/pkgs/data/fonts/alegreya-sans/default.nix
new file mode 100644
index 000000000000..479843341654
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/alegreya-sans/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "alegreya-sans";
+  version = "2.008";
+
+  src = fetchFromGitHub {
+    owner = "huertatipografica";
+    repo = "Alegreya-Sans";
+    rev = "v${version}";
+    sha256 = "0xz5lq9fh0pj02ifazhddzh792qkxkz1z6ylj26d93wshc90jl5g";
+  };
+
+  installPhase = ''
+    install -D -m 444 fonts/otf/* -t $out/share/fonts/otf
+    install -D -m 444 fonts/ttf/* -t $out/share/fonts/ttf
+    install -D -m 444 fonts/webfonts/*.woff -t $out/share/fonts/woff
+    install -D -m 444 fonts/webfonts/*.woff2 -t $out/share/fonts/woff2
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Humanist sans serif family with a calligraphic feeling";
+    longDescription = ''
+Alegreya Sans is a humanist sans serif family with a calligraphic feeling that conveys a dynamic and varied rhythm. This gives a pleasant feeling to readers of long texts.
+
+The family follows humanist proportions and principles, just like the serif version of the family, Alegreya. It achieves a ludic and harmonious paragraph through elements carefully designed in an atmosphere of diversity. The italics bring a strong emphasis to the roman styles, and each have seven weights to bring you a wide typographic palette.
+
+Alegreya Sans supports expert latin, greek and cyrillic character sets and provides advanced typography OpenType features such as small caps, dynamic ligatures and fractions, four set of figures, super and subscript characters, ordinals, localized accent forms for spanish, catalan, guaraní, dutch, turkish, romanian, serbian among others.
+
+The Alegreya type system is a "super family", originally intended for literature, and includes sans and serif sister families.
+    '';
+    homepage = "https://www.huertatipografica.com/en/fonts/alegreya-sans-ht";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ Thra11 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/alegreya/default.nix b/nixpkgs/pkgs/data/fonts/alegreya/default.nix
new file mode 100644
index 000000000000..99a7131dc11a
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/alegreya/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "alegreya";
+  version = "2.008";
+
+  src = fetchFromGitHub {
+    owner = "huertatipografica";
+    repo = "Alegreya";
+    rev = "v${version}";
+    sha256 = "1m5xr95y6qxxv2ryvhfck39d6q5hxsr51f530fshg53x48l2mpwr";
+  };
+
+  installPhase = ''
+    install -D -m 444 fonts/otf/* -t $out/share/fonts/otf
+    install -D -m 444 fonts/ttf/* -t $out/share/fonts/ttf
+    install -D -m 444 fonts/webfonts/*.woff -t $out/share/fonts/woff
+    install -D -m 444 fonts/webfonts/*.woff2 -t $out/share/fonts/woff2
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An elegant and versatile font family for comfortable reading";
+    longDescription = ''
+Alegreya is a typeface originally intended for literature. Among its crowning characteristics, it conveys a dynamic and varied rhythm which facilitates the reading of long texts. Also, it provides freshness to the page while referring to the calligraphic letter, not as a literal interpretation, but rather in a contemporary typographic language.
+
+The italic has just as much care and attention to detail in the design as the roman. The bold weights are strong, and the Black weights are really experimental for the genre. There is also a Small Caps sister family.
+
+Not only does Alegreya provide great performance, but also achieves a strong and harmonious text by means of elements designed in an atmosphere of diversity.
+
+The Alegreya type system is a "super family", originally intended for literature, and includes serif and sans serif sister families.
+
+It supports expert latin, greek and cyrillic character sets and provides advanced typography OpenType features such as small caps, dynamic ligatures and fractions, four set of figures, super and subscript characters, ordinals, localized accent forms for spanish, catalan, guaraní, dutch, turkish, romanian, serbian among others.
+
+Alegreya was chosen at the ATypI Letter2 competition in September 2011, and one of the top 14 text type systems. It was also selected in the 2nd Bienal Iberoamericana de Diseño, competition held in Madrid in 2010 and Tipos Latinos.
+
+Designed by Juan Pablo del Peral for Huerta Tipográfica.
+    '';
+    homepage = "https://www.huertatipografica.com/en/fonts/alegreya-ht-pro";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ Thra11 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/barlow/default.nix b/nixpkgs/pkgs/data/fonts/barlow/default.nix
new file mode 100644
index 000000000000..e9257260ea2c
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/barlow/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchzip }:
+let
+  version = "1.422";
+in
+fetchzip rec {
+  name = "barlow-${version}";
+
+  url = "https://tribby.com/fonts/barlow/download/barlow-${version}.zip";
+
+  sha256 = "08ld4c3zq4d1px07lc64i7l8848zsc61ddy3654w2sh0hx5sm5ld";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.eot -d $out/share/fonts/eot
+    unzip -j $downloadedFile \*.woff -d $out/share/fonts/woff
+    unzip -j $downloadedFile \*.woff2 -d $out/share/fonts/woff2
+  '';
+
+  meta = with lib; {
+    description = "A grotesk variable font superfamily";
+    homepage = "https://tribby.com/fonts/barlow/";
+    license = licenses.ofl;
+    maintainers = [ maintainers.marsam ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/caladea/cambria-alias.conf b/nixpkgs/pkgs/data/fonts/caladea/cambria-alias.conf
index f763e2a8c346..78452961e8e9 100644
--- a/nixpkgs/pkgs/data/fonts/caladea/cambria-alias.conf
+++ b/nixpkgs/pkgs/data/fonts/caladea/cambria-alias.conf
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
 <fontconfig>
   <!-- Configure Caladea as a metric-compatible alias for the
        Microsoft Cambria font family. -->
diff --git a/nixpkgs/pkgs/data/fonts/carlito/calibri-alias.conf b/nixpkgs/pkgs/data/fonts/carlito/calibri-alias.conf
index 294af3b6c784..bbffff23721f 100644
--- a/nixpkgs/pkgs/data/fonts/carlito/calibri-alias.conf
+++ b/nixpkgs/pkgs/data/fonts/carlito/calibri-alias.conf
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
 <fontconfig>
   <!-- Configure Carlito as a metric-compatible alias for the
        Microsoft Calibri font family. -->
diff --git a/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix b/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
index 56894f920954..30738a3c3cd3 100644
--- a/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
+++ b/nixpkgs/pkgs/data/fonts/cascadia-code/default.nix
@@ -1,44 +1,21 @@
-{ stdenv, fetchurl }:
+{ lib, fetchzip }:
+let
+  version = "2008.25";
+in
+fetchzip {
+  name = "cascadia-code-${version}";
 
-stdenv.mkDerivation rec {
-  pname = "cascadia-code";
-  version = "1911.21";
+  url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaCode-${version}.zip";
 
-  srcs = [
-    (fetchurl {
-      url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/Cascadia.ttf";
-      sha256 = "1m5ymbngjg3n1g3p6vhcq7d825bwwln9afih651ar3jn7j9njnyg";
-     })
-    (fetchurl {
-      url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaMono.ttf";
-      sha256 = "0vkhm6rhspzd1iayxrzaag099wsc94azfqa3ips7f4x9s8fmbp80";
-    })
-    (fetchurl {
-      url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaMonoPL.ttf";
-      sha256 = "0xxqd8m2ydn97jngp1a3ik1mzpjbm65pfq02a82gfbbvajq5d673";
-    })
-    (fetchurl {
-      url = "https://github.com/microsoft/cascadia-code/releases/download/v${version}/CascadiaPL.ttf";
-      sha256 = "1s83c9flvifd05nbhnk8knwnik7p621sr7i94smknigc7d72wqav";
-    })
-  ];
+  sha256 = "182ssznm6f5fhykmqqvimq7ihmxkc64gh76faqxg1ihdyzqgi2y6";
 
-  unpackCmd = ''
-    ttfName=$(basename $(stripHash $curSrc))
-    cp $curSrc ./$ttfName
+  postFetch = ''
+    mkdir -p $out/share/fonts/
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
   '';
 
-  sourceRoot = ".";
-
-  installPhase = ''
-    install -Dm444 -t $out/share/fonts/truetype *.ttf
-  '';
-
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "1gkjs7qa409r4ykdy4ik8i0c3z49hzpklw6kyijhhifhyyyzhz4h";
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal";
     homepage = "https://github.com/microsoft/cascadia-code";
     license = licenses.ofl;
diff --git a/nixpkgs/pkgs/data/fonts/clearlyU/default.nix b/nixpkgs/pkgs/data/fonts/clearlyU/default.nix
index 62002b14dd58..84cf3ebc538d 100644
--- a/nixpkgs/pkgs/data/fonts/clearlyU/default.nix
+++ b/nixpkgs/pkgs/data/fonts/clearlyU/default.nix
@@ -20,19 +20,12 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
-    # install bdf fonts
+    # install otb and bdf fonts
     fontDir="$out/share/fonts"
-    install -m 644 -D *.bdf -t "$fontDir"
-    mkfontdir "$fontDir"
-
-    # install otb fonts
-    fontDir="$otb/share/fonts"
-    install -m 644 -D *.otb -t "$fontDir"
+    install -m 644 -D *.bdf *.otb -t "$fontDir"
     mkfontdir "$fontDir"
   '';
 
-  outputs = [ "out"  "otb" ];
-
   meta = with stdenv.lib; {
     description = "A Unicode font";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/data/fonts/comic-neue/default.nix b/nixpkgs/pkgs/data/fonts/comic-neue/default.nix
index 709d93dc2c9f..d50e89743425 100644
--- a/nixpkgs/pkgs/data/fonts/comic-neue/default.nix
+++ b/nixpkgs/pkgs/data/fonts/comic-neue/default.nix
@@ -1,32 +1,44 @@
-{ lib, fetchzip }:
+{ stdenv, fetchzip }:
 
-let
-  version = "2.3";
-in fetchzip rec {
-  name = "comic-neue-${version}";
+stdenv.mkDerivation rec {
+  pname = "comic-neue";
+  version = "2.5";
 
-  url = "http://comicneue.com/${name}.zip";
+  src = fetchzip {
+    url = "http://comicneue.com/${pname}-${version}.zip";
+    sha256 = "1kc0yyha6cc584vcl9z1cq1z6prgkxk93g75mr8gapfdrj25dp3q";
+    stripRoot = false; # because it comes with a __MACOSX directory
+  };
 
-  postFetch = ''
-    mkdir -vp $out/share/{doc,fonts}
-    unzip -j $downloadedFile OTF/\*.otf   -d $out/share/fonts/opentype
-    unzip -j $downloadedFile Web/\*.ttf   -d $out/share/fonts/truetype
-    unzip -j $downloadedFile Web/\*.eot   -d $out/share/fonts/EOT
-    unzip -j $downloadedFile Web/\*.woff  -d $out/share/fonts/WOFF
-    unzip -j $downloadedFile Web/\*.woff2 -d $out/share/fonts/WOFF2
-    unzip -j $downloadedFile \*.pdf FONTLOG.txt OFL-FAQ.txt SIL-License.txt -d $out/share/doc/${name}
-  '';
+  phases = [ "unpackPhase" "installPhase" ];
 
-  sha256 = "1gs4vhys0m3qsw06qaxzyi81f06w5v66kbyl64yw3pq2rb656779";
+  installPhase = ''
+    mkdir -pv $out/share/{doc/${pname}-${version},fonts/{opentype,truetype,EOT,WOFF,WOFF2}}
+    cp -v ${pname}-${version}/{FONTLOG,OFL-FAQ,OFL}.txt $out/share/doc/
+    cp -v ${pname}-${version}/OTF/ComicNeue-Angular/*.otf $out/share/fonts/opentype
+    cp -v ${pname}-${version}/OTF/ComicNeue/*.otf $out/share/fonts/opentype
+    cp -v ${pname}-${version}/TTF/ComicNeue-Angular/*.ttf $out/share/fonts/truetype
+    cp -v ${pname}-${version}/TTF/ComicNeue/*.ttf $out/share/fonts/truetype
+    cp -v ${pname}-${version}/WebFonts/eot/ComicNeue-Angular/*.eot $out/share/fonts/EOT
+    cp -v ${pname}-${version}/WebFonts/eot/ComicNeue/*.eot $out/share/fonts/EOT
+    cp -v ${pname}-${version}/WebFonts/woff/ComicNeue-Angular/*.woff $out/share/fonts/WOFF
+    cp -v ${pname}-${version}/WebFonts/woff/ComicNeue/*.woff $out/share/fonts/WOFF
+    cp -v ${pname}-${version}/WebFonts/woff2/ComicNeue/*.woff2 $out/share/fonts/WOFF2
+
+    # Quick fix for conflicting names in upstream
+    for i in ${pname}-${version}/WebFonts/woff2/ComicNeue-Angular/*.woff2; do
+      cp -v $i $out/share/fonts/WOFF2/`basename $i|sed -e 's|ComicNeue|ComicNeue-Angular|'`
+    done
+  '';
 
-  meta = with lib; {
+  meta = with stdenv.lib; {
     homepage = "http://comicneue.com/";
     description = "A casual type face: Make your lemonade stand look like a fortune 500 company";
     longDescription = ''
-      It is inspired by Comic Sans but more regular.  The font was
-      designed by Craig Rozynski.  It is available in two variants:
-      Comic Neue and Comic Neue Angular.  The former having round and
-      the latter angular terminals.  Both variants come in Light,
+      ComicNeue is inspired by Comic Sans but more regular. It was
+      designed by Craig Rozynski. It is available in two variants:
+      Comic Neue and Comic Neue Angular. The former having round and
+      the latter angular terminals. Both variants come in Light,
       Regular, and Bold weights with Oblique variants.
     '';
     license = licenses.ofl;
diff --git a/nixpkgs/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf b/nixpkgs/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf
index be5f6cca866d..e1362ec4f5f7 100644
--- a/nixpkgs/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf
+++ b/nixpkgs/pkgs/data/fonts/comic-relief/comic-sans-ms-alias.conf
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
 <fontconfig>
   <!-- Configure Comic Relief as a metric-compatible alias for the
        Microsoft Comic Sans font family. -->
diff --git a/nixpkgs/pkgs/data/fonts/corefonts/default.nix b/nixpkgs/pkgs/data/fonts/corefonts/default.nix
index e4107cd4b998..ed28f6b5e6ce 100644
--- a/nixpkgs/pkgs/data/fonts/corefonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/corefonts/default.nix
@@ -59,7 +59,7 @@ stdenv.mkDerivation {
 
   outputHashAlgo = "sha256";
   outputHashMode = "recursive";
-  outputHash = "0baadsrgpqj15fgjmcn0aim0k0nk7mvivcxinw1zwg61kkcwhalx";
+  outputHash = "089d2m9bvaacj36qdq77pcazji0sbbr796shic3k52cpxkjnzbwh";
 
   meta = with stdenv.lib; {
     homepage = "http://corefonts.sourceforge.net/";
diff --git a/nixpkgs/pkgs/data/fonts/corefonts/no-op.conf b/nixpkgs/pkgs/data/fonts/corefonts/no-op.conf
index 503e62cfa295..3f8a9b9b5444 100644
--- a/nixpkgs/pkgs/data/fonts/corefonts/no-op.conf
+++ b/nixpkgs/pkgs/data/fonts/corefonts/no-op.conf
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
 <fontconfig>
   <!-- This configuation is intentionally left empty in order to
        override any other font package that may wish to set up an
diff --git a/nixpkgs/pkgs/data/fonts/cozette/default.nix b/nixpkgs/pkgs/data/fonts/cozette/default.nix
index a5d9f9055624..a5bc752c4caf 100644
--- a/nixpkgs/pkgs/data/fonts/cozette/default.nix
+++ b/nixpkgs/pkgs/data/fonts/cozette/default.nix
@@ -1,55 +1,28 @@
-{ stdenv, fetchurl, mkfontscale }:
+{ lib, fetchzip }:
 
 let
-  version = "1.5.1";
-  releaseUrl =
-    "https://github.com/slavfox/Cozette/releases/download/v.${version}";
-in stdenv.mkDerivation rec {
-  pname = "Cozette";
-  inherit version;
+  version = "1.8.3";
+in
+fetchzip rec {
+  name = "Cozette-${version}";
 
-  srcs = map fetchurl [
-    {
-      url = "${releaseUrl}/cozette.otb";
-      sha256 = "05k45n7jar11gnng2awpmc7zk9jdlzd6wz87xx49cp75jm4z9xm8";
-    }
-    {
-      url = "${releaseUrl}/CozetteVector.otf";
-      sha256 = "1sqhnjpizn1wi26lc7z2zml7yr7zkcpa72mh1drvd74rlcs1ip30";
-    }
-    {
-      url = "${releaseUrl}/CozetteVector.ttf";
-      sha256 = "1q4ml8shv9lmyc6bwhffwvbvl92s73j7xkb0rkqvci4f0zbz7mcy";
-    }
-  ];
+  url = "https://github.com/slavfox/Cozette/releases/download/v.${version}/CozetteFonts.zip";
 
-  nativeBuildInputs = [ mkfontscale ];
+  sha256 = "1nc4zk6n7cbv9vwlhpm3ady5lc4d4ic1klyywwfg27w8j0jv57hx";
 
-  sourceRoot = "./";
-
-  unpackCmd = ''
-    otName=$(stripHash "$curSrc")
-    cp $curSrc ./$otName
-  '';
-
-  installPhase = ''
-
-    install -D -m 644 *.otf -t "$out/share/fonts/opentype"
-    install -D -m 644 *.ttf -t "$out/share/fonts/truetype"
-    install -D -m 644 *.otb -t "$out/share/fonts/misc"
-
-    mkfontdir "$out/share/fonts/misc"
-    mkfontscale "$out/share/fonts/truetype"
-    mkfontscale "$out/share/fonts/opentype"
+  postFetch = ''
+    mkdir -p $out/share/fonts
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.bdf -d $out/share/fonts/misc
+    unzip -j $downloadedFile \*.otb -d $out/share/fonts/misc
   '';
 
-  outputs = [ "out" ];
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A bitmap programming font optimized for coziness.";
     homepage = "https://github.com/slavfox/cozette";
     license = licenses.mit;
     platforms = platforms.all;
-    maintainers = with maintainers; [ brettlyons ];
+    maintainers = with maintainers; [ brettlyons marsam ];
   };
 }
diff --git a/nixpkgs/pkgs/data/fonts/creep/default.nix b/nixpkgs/pkgs/data/fonts/creep/default.nix
index 2e66ac468b08..7c7ad4d5aa91 100644
--- a/nixpkgs/pkgs/data/fonts/creep/default.nix
+++ b/nixpkgs/pkgs/data/fonts/creep/default.nix
@@ -20,14 +20,10 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
-    install -D -m644 creep.bdf "$out/share/fonts/misc/creep.bdf"
+    install -D -m644 creep.otb creep.bdf -t "$out/share/fonts/misc/"
     mkfontdir "$out/share/fonts/misc"
-    install -D -m644 creep.otb "$otb/share/fonts/misc/creep.otb"
-    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     description = "A pretty sweet 4px wide pixel font";
     homepage = "https://github.com/romeovs/creep";
diff --git a/nixpkgs/pkgs/data/fonts/dina/default.nix b/nixpkgs/pkgs/data/fonts/dina/default.nix
index 49c219478209..1a8ac344a531 100644
--- a/nixpkgs/pkgs/data/fonts/dina/default.nix
+++ b/nixpkgs/pkgs/data/fonts/dina/default.nix
@@ -41,15 +41,13 @@ stdenv.mkDerivation {
   '';
 
   installPhase = ''
-    install -D -m 644 -t "$out/share/fonts/misc" *.pcf.gz
+    install -D -m 644 -t "$out/share/fonts/misc" *.pcf.gz *.otb
     install -D -m 644 -t "$bdf/share/fonts/misc" *.bdf
-    install -D -m 644 -t "$otb/share/fonts/misc" *.otb
     mkfontdir "$out/share/fonts/misc"
     mkfontdir "$bdf/share/fonts/misc"
-    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputs = [ "out" "bdf" "otb" ];
+  outputs = [ "out" "bdf" ];
 
   meta = with stdenv.lib; {
     description = "A monospace bitmap font aimed at programmers";
diff --git a/nixpkgs/pkgs/data/fonts/edukai/default.nix b/nixpkgs/pkgs/data/fonts/edukai/default.nix
new file mode 100644
index 000000000000..d5b9e25c2eb5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/edukai/default.nix
@@ -0,0 +1,33 @@
+{ stdenvNoCC, lib, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "edukai";
+  version = "4.0";
+
+  src = fetchzip {
+    name = "${pname}-${version}";
+    url =
+      "http://language.moe.gov.tw/001/Upload/Files/site_content/M0001/edukai-4.0.zip";
+    sha256 = "10m9srvbazvg9gc43943dc89rjzcfc8mm4lx9gb5hnplrn22zrcn";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/
+    mv *.ttf $out/share/fonts/
+  '';
+
+  meta = {
+    description =
+      "The MOE Standard Kai Font, a Chinese font by the Ministry of Education, ROC (Taiwan)";
+    longDescription = ''
+      The MOE Standard Kai Font is a kai (regular srcipt) font
+      provided by
+      the Midistry of Education, Republic of China (Taiwan).
+      It currently includes 13,076 Chinese characters.
+    '';
+    homepage =
+      "http://language.moe.gov.tw/result.aspx?classify_sn=23&subclassify_sn=436&content_sn=47";
+    license = lib.licenses.cc-by-nd-30;
+    maintainers = with lib.maintainers; [ ShamrockLee ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/eduli/default.nix b/nixpkgs/pkgs/data/fonts/eduli/default.nix
new file mode 100644
index 000000000000..7ff2ad4446c5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/eduli/default.nix
@@ -0,0 +1,36 @@
+{ stdenvNoCC, lib, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "eduli";
+  version = "3.0";
+
+  src = fetchzip {
+    name = "${pname}-${version}";
+    url =
+      "http://language.moe.gov.tw/001/Upload/Files/site_content/M0001/MoeLI-3.0.zip";
+    sha256 = "0vpmm2qb429npng0aqkafwgs7cjibq8a3f7bbn9hysbm2lndwxwd";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/
+    for name in *.ttf; do
+      mv "$name" "$out/share/fonts/$(echo $name | sed -r 's/(.*)\(.*\)\.ttf/\1.ttf/')"
+    done
+  '';
+
+  meta = {
+    description =
+      "The MOE Li Font, a clerical Chinese font by the Ministry of Education, ROC (Taiwan)";
+    longDescription = ''
+      The MOE Li Font is a li (clerical srcipt) font
+      provided by
+      the Midistry of Education, Republic of China (Taiwan).
+      It currently includes 4,808 Chinese characters.
+      The clerical script (lishu) is an archaic style of Chinese calligraphy.
+    '';
+    homepage =
+      "http://language.moe.gov.tw/result.aspx?classify_sn=23&subclassify_sn=436&content_sn=49";
+    license = lib.licenses.cc-by-nd-30;
+    maintainers = with lib.maintainers; [ ShamrockLee ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/edusong/default.nix b/nixpkgs/pkgs/data/fonts/edusong/default.nix
new file mode 100644
index 000000000000..bf7d39aa20c5
--- /dev/null
+++ b/nixpkgs/pkgs/data/fonts/edusong/default.nix
@@ -0,0 +1,32 @@
+{ stdenvNoCC, lib, fetchzip }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "edusong";
+  version = "1.0"; # The upstream doesn't provide the version
+
+  src = fetchzip {
+    name = "${pname}-${version}";
+    url =
+      "http://language.moe.gov.tw/001/Upload/Files/site_content/M0001/eduSong_Unicode.zip";
+    sha256 = "1b74wj9hdzlnrvldwlkh21sfhqxwh9qghf1k0fv66zs6n48vb0d4";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/fonts/
+    mv *.ttf $out/share/fonts/
+  '';
+
+  meta = {
+    description =
+      "The MOE Standard Song Font, a Chinese font by the Ministry of Education, ROC (Taiwan)";
+    longDescription = ''
+      The MOE Standard Song Font is a Chinese Song font provided by
+      the Midistry of Education, Republic of China (Taiwan).
+      Song or Ming is a category of CKJ typefaces in print.
+    '';
+    homepage =
+      "http://language.moe.gov.tw/result.aspx?classify_sn=23&subclassify_sn=436&content_sn=48";
+    license = lib.licenses.cc-by-nd-30;
+    maintainers = with lib.maintainers; [ ShamrockLee ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/fonts/emojione/default.nix b/nixpkgs/pkgs/data/fonts/emojione/default.nix
index 6f5168e90d5e..d5b9b29dd85d 100644
--- a/nixpkgs/pkgs/data/fonts/emojione/default.nix
+++ b/nixpkgs/pkgs/data/fonts/emojione/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, inkscape, imagemagick, potrace, svgo, scfbuild }:
+{ stdenv, fetchFromGitHub, fetchpatch, inkscape, imagemagick, potrace, svgo, scfbuild }:
 
 stdenv.mkDerivation rec {
   pname = "emojione";
@@ -11,6 +11,22 @@ stdenv.mkDerivation rec {
     sha256 = "1781kxfbhnvylypbkwxc3mx6hi0gcjisfjr9cf0jdz4d1zkf09b3";
   };
 
+  patches = [
+    # Fix build with Inkscape 1.0
+    # https://github.com/eosrei/twemoji-color-font/pull/82
+    (fetchpatch {
+      url = "https://github.com/eosrei/twemoji-color-font/commit/208ad63c2ceb38c528b5237abeb2b85ceedc1d37.patch";
+      sha256 = "7tDWIkpcdir1V6skgXSM3r0FwHy0F6PyJ07OPRsSStA=";
+      postFetch = ''
+        substituteInPlace $out \
+          --replace "inkscape --without-gui" "inkscape --export-png" \
+          --replace TWEMOJI EMOJIONE \
+          --replace "the assets" "the emojione assets" \
+          --replace twemoji emojione
+      '';
+    })
+  ];
+
   preBuild = ''
     sed -i 's,SCFBUILD :=.*,SCFBUILD := scfbuild,' Makefile
     # Shut up inkscape's warnings
diff --git a/nixpkgs/pkgs/data/fonts/envypn-font/default.nix b/nixpkgs/pkgs/data/fonts/envypn-font/default.nix
index c26569166a30..0d69b812c4cd 100644
--- a/nixpkgs/pkgs/data/fonts/envypn-font/default.nix
+++ b/nixpkgs/pkgs/data/fonts/envypn-font/default.nix
@@ -25,14 +25,10 @@ stdenv.mkDerivation {
   '';
 
   installPhase = ''
-    install -D -m 644 -t "$out/share/fonts/misc" *.pcf.gz
-    install -D -m 644 -t "$otb/share/fonts/misc" *.otb
+    install -D -m 644 -t "$out/share/fonts/misc" *.otb *.pcf.gz
     mkfontdir "$out/share/fonts/misc"
-    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     description = ''
       Readable bitmap font inspired by Envy Code R
diff --git a/nixpkgs/pkgs/data/fonts/fontconfig-penultimate/default.nix b/nixpkgs/pkgs/data/fonts/fontconfig-penultimate/default.nix
deleted file mode 100644
index 5216cf0e3d89..000000000000
--- a/nixpkgs/pkgs/data/fonts/fontconfig-penultimate/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib, fetchzip
-, version ? "0.3.5"
-, sha256 ? "1gfgl7qimp76q4z0nv55vv57yfs4kscdr329np701k0xnhncwvrk"
-}:
-
-fetchzip {
-  name = "fontconfig-penultimate-${version}";
-
-  url = "https://github.com/ttuegel/fontconfig-penultimate/archive/${version}.zip";
-  inherit sha256;
-
-  postFetch = ''
-    mkdir -p $out/etc/fonts/conf.d
-    unzip -j $downloadedFile \*.conf -d $out/etc/fonts/conf.d
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/ttuegel/fontconfig-penultimate";
-    description = "Sensible defaults for Fontconfig";
-    license = licenses.asl20;
-    maintainers = [ maintainers.ttuegel ];
-    platforms = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/data/fonts/gohufont/default.nix b/nixpkgs/pkgs/data/fonts/gohufont/default.nix
index e2361ef81637..ac82c82ae3df 100644
--- a/nixpkgs/pkgs/data/fonts/gohufont/default.nix
+++ b/nixpkgs/pkgs/data/fonts/gohufont/default.nix
@@ -52,19 +52,12 @@ stdenv.mkDerivation rec {
     fontDir="$out/share/consolefonts"
     install -D -m 644 -t "$fontDir" psf/*.psf
 
-    # install the pcf fonts (for xorg applications)
+    # install the pcf and otb fonts (for X11,GTK applications)
     fontDir="$out/share/fonts/misc"
-    install -D -m 644 -t "$fontDir" *.pcf
-    mkfontdir "$fontDir"
-
-    # install the otb fonts (for gtk applications)
-    fontDir="$otb/share/fonts/misc"
-    install -D -m 644 -t "$fontDir" *.otb
+    install -D -m 644 -t "$fontDir" *.pcf *.otb
     mkfontdir "$fontDir"
   '';
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     description = ''
       A monospace bitmap font well suited for programming and terminal use
diff --git a/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix b/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix
index 70657f03281e..cd33a834acc5 100644
--- a/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ibm-plex/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "5.0.0";
+  version = "5.1.3";
 
 in fetchzip {
   name = "ibm-plex-${version}";
@@ -13,7 +13,7 @@ in fetchzip {
     unzip -j $downloadedFile "OpenType/*/*.otf" -d $out/share/fonts/opentype
   '';
 
-  sha256 = "1m8a9p0bryrj05v7sg9kqvyp0ddhgdwd0zjbn0i4l296cj5s2k97";
+  sha256 = "0w07fkhav2lqdyki7ipnkpji5ngwarlhsyliy0ip7cd29x24ys5h";
 
   meta = with lib; {
     description = "IBM Plex Typeface";
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/bin.nix b/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
index b801451c7be3..0f88aa05e4cf 100644
--- a/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
+++ b/nixpkgs/pkgs/data/fonts/iosevka/bin.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchzip }:
 
 let
-  version = "2.3.3";
+  version = "3.4.6";
 in fetchzip {
   name = "iosevka-bin-${version}";
 
@@ -9,10 +9,10 @@ in fetchzip {
 
   postFetch = ''
     mkdir -p $out/share/fonts
-    unzip -j $downloadedFile \*.ttc -d $out/share/fonts/iosevka
+    unzip -j $downloadedFile \*.ttc -d $out/share/fonts/truetype
   '';
 
-  sha256 = "1dfm1888rii5kfmkxp5hnx8ycji57cbs5gazpgkxg1mnmn7i35wl";
+  sha256 = "1nab49gkpxahwvvw39xcc32q425qkccr7ffmz87jbcdv71qy7pp9";
 
   meta = with stdenv.lib; {
     homepage = "https://be5invis.github.io/Iosevka/";
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/default.nix b/nixpkgs/pkgs/data/fonts/iosevka/default.nix
index 4ff0ed5fe49b..5167c494fa07 100644
--- a/nixpkgs/pkgs/data/fonts/iosevka/default.nix
+++ b/nixpkgs/pkgs/data/fonts/iosevka/default.nix
@@ -30,13 +30,13 @@ assert (privateBuildPlan != null) -> set != null;
 stdenv.mkDerivation rec {
   pname = if set != null then "iosevka-${set}" else "iosevka";
 
-  version = "2.3.3";
+  version = "3.2.2";
 
   src = fetchFromGitHub {
     owner = "be5invis";
     repo = "Iosevka";
     rev = "v${version}";
-    sha256 = "0k7xij473g5g0lwhb6qpn70v3n2d025dww3nlb7jwbpnp03zliz0";
+    sha256 = "1wbnp6gr3ywvspwk6i0jn68zwjmsd38arn4n2dkh7mdkrmvah81k";
   };
 
   nativeBuildInputs = [
@@ -69,12 +69,12 @@ stdenv.mkDerivation rec {
 
   buildPhase = ''
     runHook preBuild
-    npm run build --no-update-notifier -- ttf::$pname >/dev/null
+    npm run build --no-update-notifier -- --jCmd=$NIX_BUILD_CORES ttf::$pname >/dev/null
     runHook postBuild
   '';
 
   installPhase = ''
-    fontdir="$out/share/fonts/$pname"
+    fontdir="$out/share/fonts/truetype"
     install -d "$fontdir"
     install "dist/$pname/ttf"/* "$fontdir"
   '';
diff --git a/nixpkgs/pkgs/data/fonts/iosevka/package.json b/nixpkgs/pkgs/data/fonts/iosevka/package.json
index 8faa397576b1..bc772960882d 100644
--- a/nixpkgs/pkgs/data/fonts/iosevka/package.json
+++ b/nixpkgs/pkgs/data/fonts/iosevka/package.json
@@ -1,26 +1,28 @@
 {
 	"name": "iosevka-build-deps",
-	"version": "2.3.3",
+	"version": "3.2.2",
 	"scripts": {
 		"build": "verda -f verdafile.js"
 	},
 	"dependencies": {
-		"caryll-shapeops": "^0.3.1",
-		"colors": "^1.3.3",
-		"libspiro-js": "^0.3.1",
-		"megaminx": "^0.9.0",
+		"@iarna/toml": "^2.2.5",
+		"cldr": "^5.5.4",
+		"ejs": "^3.1.3",
+		"fs-extra": "^9.0.0",
 		"object-assign": "^4.1.1",
-		"otfcc-ttcize": "^0.8.0",
+		"otfcc-ttcize": "^0.10.2",
 		"patel": "^0.33.1",
-		"patrisika-scopes": "^0.11.1",
-		"primitive-quadify-off-curves": "^0.4.0",
-		"stylus": "^0.54.5",
-		"toml": "^3.0.0",
-		"topsort": "0.0.2",
+		"prettier": "^2.0.5",
+		"semver": "^7.1.3",
+		"spiro": "^2.0.0",
+		"stylus": "^0.54.7",
+		"topsort": "^0.0.2",
 		"ttf2woff": "^2.0.1",
-		"ttf2woff2": "^2.0.3",
+		"ttf2woff2": "^3.0.0",
+		"typo-geom": "^0.8.0",
+		"unicode-13.0.0": "^0.8.0",
 		"unorm": "^1.6.0",
-		"verda": "^1.0.0-0",
-		"yargs": "^14.2.0"
+		"verda": "^1.0.1",
+		"which": "^2.0.2"
 	}
 }
diff --git a/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix b/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix
index 718b6b218df2..b198486327d7 100644
--- a/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix
+++ b/nixpkgs/pkgs/data/fonts/jetbrains-mono/default.nix
@@ -1,14 +1,14 @@
 { lib, fetchzip }:
 
 let
-  version = "1.0.6";
+  version = "2.002";
 in
-fetchzip rec {
+fetchzip {
   name = "JetBrainsMono-${version}";
 
   url = "https://github.com/JetBrains/JetBrainsMono/releases/download/v${version}/JetBrainsMono-${version}.zip";
 
-  sha256 = "1198k5zw91g85h6n7rg3y7wcj1nrbby9zlr6zwlmiq0nb37n0d3g";
+  sha256 = "018lhxi9m8aprls6cnpndzdg5snijwzm22m2pxxi6zcqxrcxh8vb";
 
   postFetch = ''
     mkdir -p $out/share/fonts
@@ -21,7 +21,7 @@ fetchzip rec {
   meta = with lib; {
     description = "A typeface made for developers";
     homepage = "https://jetbrains.com/mono/";
-    license = licenses.asl20;
+    license = licenses.ofl;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.all;
   };
diff --git a/nixpkgs/pkgs/data/fonts/joypixels/default.nix b/nixpkgs/pkgs/data/fonts/joypixels/default.nix
index b54fb3fd128b..1b107f9cb82f 100644
--- a/nixpkgs/pkgs/data/fonts/joypixels/default.nix
+++ b/nixpkgs/pkgs/data/fonts/joypixels/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "joypixels";
-  version = "5.5.0";
+  version = "6.0.0";
 
   src = fetchurl {
     url = "https://cdn.joypixels.com/arch-linux/font/${version}/joypixels-android.ttf";
-    sha256 = "0w3r50l0knrncwv6zihyx01gs995y76xjcwsysx5bmvc1b43yijb";
+    sha256 = "1vxqsqs93g4jyp01r47lrpcm0fmib2n1vysx32ksmfxmprimb75s";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/data/fonts/kanji-stroke-order-font/default.nix b/nixpkgs/pkgs/data/fonts/kanji-stroke-order-font/default.nix
index 1c1609b03f19..7b8444c3cde7 100644
--- a/nixpkgs/pkgs/data/fonts/kanji-stroke-order-font/default.nix
+++ b/nixpkgs/pkgs/data/fonts/kanji-stroke-order-font/default.nix
@@ -1,20 +1,22 @@
-{ stdenv, fetchzip }:
+{ stdenv, fetchurl }:
 
 let
-  version = "4.002";
-in fetchzip {
+  version = "4.003";
+  debianVersion = "dfsg-1";
+in stdenv.mkDerivation {
   name = "kanji-stroke-order-font-${version}";
 
-  url = "https://sites.google.com/site/nihilistorguk/KanjiStrokeOrders_v${version}.zip?attredirects=0";
+  src = fetchurl {
+    url = "https://salsa.debian.org/fonts-team/fonts-kanjistrokeorders/-/archive/debian/${version}_${debianVersion}/fonts-kanjistrokeorders-debian-${version}_${debianVersion}.tar.bz2";
+    sha256 = "1a8hxzkrfjz0h5gl9h0panzzsn7cldlklxryyzmpam23g32q6bg1";
+  };
 
-  postFetch = ''
+  installPhase = ''
     mkdir -p $out/share/fonts/kanji-stroke-order $out/share/doc/kanji-stroke-order
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/kanji-stroke-order
-    unzip -j $downloadedFile \*.txt -d $out/share/doc/kanji-stroke-order
+    cp *.ttf $out/share/fonts/kanji-stroke-order
+    cp *.txt $out/share/doc/kanji-stroke-order
   '';
 
-  sha256 = "194ylkx5p7r1461wnnd3hisv5dz1xl07fyxmg8gv47zcwvdmwkc0";
-
   meta = with stdenv.lib; {
     description = "Font containing stroke order diagrams for over 6500 kanji, 180 kana and other characters";
     homepage = "https://sites.google.com/site/nihilistorguk/";
diff --git a/nixpkgs/pkgs/data/fonts/liberation-fonts/default.nix b/nixpkgs/pkgs/data/fonts/liberation-fonts/default.nix
index 838a8d4c769b..edc39ff0a40e 100644
--- a/nixpkgs/pkgs/data/fonts/liberation-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/liberation-fonts/default.nix
@@ -2,6 +2,7 @@
 let
   inherit (python3.pkgs) fonttools;
 
+  commonNativeBuildInputs = [ fontforge python3 ];
   common =
     { version, repo, sha256, nativeBuildInputs, postPatch ? null }:
       stdenv.mkDerivation rec {
@@ -50,13 +51,13 @@ in
   liberation_ttf_v1 = common {
     repo = "liberation-1.7-fonts";
     version = "1.07.5";
-    nativeBuildInputs = [ fontforge ];
+    nativeBuildInputs = commonNativeBuildInputs ;
     sha256 = "1ffl10mf78hx598sy9qr5m6q2b8n3mpnsj73bwixnd4985gsz56v";
   };
   liberation_ttf_v2 = common {
     repo = "liberation-fonts";
     version = "2.1.0";
-    nativeBuildInputs = [ fontforge fonttools ];
+    nativeBuildInputs = commonNativeBuildInputs ++ [ fonttools ];
     postPatch = ''
       substituteInPlace scripts/setisFixedPitch-fonttools.py --replace \
         'font = ttLib.TTFont(fontfile)' \
diff --git a/nixpkgs/pkgs/data/fonts/material-design-icons/default.nix b/nixpkgs/pkgs/data/fonts/material-design-icons/default.nix
index 72dc5fe6313c..1bf5c6aa4820 100644
--- a/nixpkgs/pkgs/data/fonts/material-design-icons/default.nix
+++ b/nixpkgs/pkgs/data/fonts/material-design-icons/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub }:
 
 let
-  version = "4.7.95";
+  version = "5.3.45";
 in fetchFromGitHub {
   name = "material-design-icons-${version}";
   owner  = "Templarian";
@@ -16,10 +16,10 @@ in fetchFromGitHub {
     cp fonts/*.woff $out/share/fonts/woff/
     cp fonts/*.woff2 $out/share/fonts/woff2/
   '';
-  sha256 = "0da92kz8ryy60kb5xm52md13w28ih4sfap8g3v9b4ziyww66zjhz";
+  sha256 = "1nwha6dbj97ybiwlf69la57l3ibmwgnzs0nr104bfqnqxjs471sx";
 
   meta = with lib; {
-    description = "3200+ Material Design Icons from the Community";
+    description = "4600+ Material Design Icons from the Community";
     longDescription = ''
       Material Design Icons' growing icon collection allows designers and
       developers targeting various platforms to download icons in the format,
diff --git a/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix b/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix
index 35f43c14df48..bf98effb1508 100644
--- a/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/nerdfonts/default.nix
@@ -5,6 +5,9 @@
 # To select only certain fonts, put a list of strings to `fonts`: every key in
 # ./shas.nix is an optional font
 , fonts ? []
+# Whether to enable Windows font variants, their internal font name is limited
+# to 31 characters
+, enableWindowsFonts ? false
 }:
 
 let
@@ -50,6 +53,10 @@ stdenv.mkDerivation rec {
   installPhase = ''
     find -name \*.otf -exec mkdir -p $out/share/fonts/opentype/NerdFonts \; -exec mv {} $out/share/fonts/opentype/NerdFonts \;
     find -name \*.ttf -exec mkdir -p $out/share/fonts/truetype/NerdFonts \; -exec mv {} $out/share/fonts/truetype/NerdFonts \;
+    ${lib.optionalString (! enableWindowsFonts) ''
+      rm -rfv $out/share/fonts/opentype/NerdFonts/*Windows\ Compatible.*
+      rm -rfv $out/share/fonts/truetype/NerdFonts/*Windows\ Compatible.*
+    ''}
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix b/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
index 1311e0eb7a95..e99060118026 100644
--- a/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/noto-fonts/default.nix
@@ -6,11 +6,12 @@
 , fetchzip
 , optipng
 , cairo
-, python3Packages
+, python3
 , pkgconfig
 , pngquant
 , which
 , imagemagick
+, zopfli
 }:
 
 let
@@ -111,25 +112,36 @@ in
   };
 
   noto-fonts-emoji = let
-    version = "unstable-2019-10-22";
+    version = "2020-09-16-unicode13_1";
+    emojiPythonEnv =
+      python3.withPackages (p: with p; [ fonttools nototools ]);
   in stdenv.mkDerivation {
     pname = "noto-fonts-emoji";
-    inherit version;
+    version = builtins.replaceStrings [ "_" ] [ "." ] version;
 
     src = fetchFromGitHub {
-      owner = "googlei18n";
+      owner = "googlefonts";
       repo = "noto-emoji";
-      rev = "018aa149d622a4fea11f01c61a7207079da301bc";
-      sha256 = "0qmnnjpp5lza6g5m3ki6hj46p891h9vl42k3acd0qw8i0jj5yn2c";
+      rev = "v${version}";
+      sha256 = "0659336dp0l2nkac153jpcb9yvp0p3dx1crcyxjd14i8cqkfi2hh";
     };
 
-    buildInputs = [ cairo ];
-    nativeBuildInputs = [ pngquant optipng which cairo pkgconfig imagemagick ]
-                     ++ (with python3Packages; [ python fonttools nototools ]);
+    nativeBuildInputs = [
+      cairo
+      imagemagick
+      zopfli
+      pngquant
+      which
+      pkgconfig
+      emojiPythonEnv
+    ];
 
     postPatch = ''
-      sed -i 's,^PNGQUANT :=.*,PNGQUANT := ${pngquant}/bin/pngquant,' Makefile
-      patchShebangs flag_glyph_name.py
+      patchShebangs *.py
+      patchShebangs third_party/color_emoji/*.py
+      # remove check for virtualenv, since we handle
+      # python requirements using python.withPackages
+      sed -i '/ifndef VIRTUAL_ENV/,+2d' Makefile
     '';
 
     enableParallelBuilding = true;
@@ -142,7 +154,7 @@ in
     meta = with lib; {
       inherit version;
       description = "Color and Black-and-White emoji fonts";
-      homepage = "https://github.com/googlei18n/noto-emoji";
+      homepage = "https://github.com/googlefonts/noto-emoji";
       license = with licenses; [ ofl asl20 ];
       platforms = platforms.all;
       maintainers = with maintainers; [ mathnerd314 ];
@@ -166,7 +178,7 @@ in
 
     meta = with stdenv.lib; {
       description = "Noto Emoji with extended Blob support";
-      homepage = https://github.com/C1710/blobmoji;
+      homepage = "https://github.com/C1710/blobmoji";
       license = with licenses; [ ofl asl20 ];
       platforms = platforms.all;
       maintainers = with maintainers; [ rileyinman ];
diff --git a/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix b/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
index 3cc1570161e6..f5bd6335dfbb 100644
--- a/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
+++ b/nixpkgs/pkgs/data/fonts/noto-fonts/tools.nix
@@ -1,32 +1,62 @@
-{ fetchFromGitHub, lib, fetchpatch, buildPythonPackage, isPy3k, fonttools, numpy, pillow, six, bash }:
+{ fetchFromGitHub, lib, buildPythonPackage, pythonOlder
+, afdko, appdirs, attrs, black, booleanoperations, brotlipy, click
+, defcon, fontmath, fontparts, fontpens, fonttools, fs, lxml
+, mutatormath, pathspec, psautohint, pyclipper, pytz, regex, scour
+, toml, typed-ast, ufonormalizer, ufoprocessor, unicodedata2, zopfli
+, pillow, six, bash, setuptools_scm }:
 
 buildPythonPackage rec {
   pname = "nototools";
-  version = "unstable-2019-10-21";
+  version = "0.2.13";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "googlefonts";
     repo = "nototools";
-    rev = "cae92ce958bee37748bf0602f5d7d97bb6db98ca";
-    sha256 = "1jqr0dz23rjqiyxw1w69l6ry16dwdcf3c6cysiy793g2v7pir2yi";
+    rev = "v${version}";
+    sha256 = "0ggp65xgkf9y7jamncm65lkm84wapsa47abf133pcb702875v8jz";
   };
 
-  propagatedBuildInputs = [ fonttools numpy ];
-
-  patches = lib.optionals isPy3k [
-    # Additional Python 3 compat https://github.com/googlefonts/nototools/pull/497
-    (fetchpatch {
-      url = "https://github.com/googlefonts/nototools/commit/ded1f311b3260f015b5c5b80f05f7185392c4eff.patch";
-      sha256 = "0bn0rlbddxicw0h1dnl0cibgj6xjalja2qcm563y7kk3z5cdwhgq";
-    })
-  ];
-
   postPatch = ''
-    sed -ie "s^join(_DATA_DIR_PATH,^join(\"$out/third_party/ucd\",^" nototools/unicode_data.py
+    sed -i 's/use_scm_version=.*,/version="${version}",/' setup.py
   '';
 
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [
+    afdko
+    appdirs
+    attrs
+    black
+    booleanoperations
+    brotlipy
+    click
+    defcon
+    fontmath
+    fontparts
+    fontpens
+    fonttools
+    lxml
+    mutatormath
+    pathspec
+    psautohint
+    pyclipper
+    pytz
+    regex
+    scour
+    toml
+    typed-ast
+    ufonormalizer
+    ufoprocessor
+    unicodedata2
+    zopfli
+  ];
+
   checkInputs = [
-    pillow six bash
+    pillow
+    six
+    bash
   ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/data/fonts/profont/default.nix b/nixpkgs/pkgs/data/fonts/profont/default.nix
index cba08309fac8..6297a8fbb204 100644
--- a/nixpkgs/pkgs/data/fonts/profont/default.nix
+++ b/nixpkgs/pkgs/data/fonts/profont/default.nix
@@ -28,15 +28,10 @@ stdenv.mkDerivation {
       gzip -n -9 -c "$f" > "$out/share/fonts/misc/$f.gz"
     done
     install -D -m 644 LICENSE -t "$out/share/doc/$pname"
+    install -D -m 644 "$srcOtb/profontn.otb" -t $out/share/fonts/misc
     mkfontdir "$out/share/fonts/misc"
-
-    cd $srcOtb
-    install -D -m 644 profontn.otb -t $otb/share/fonts/misc
-    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     homepage = "https://tobiasjung.name/profont/";
     description = "A monospaced font created to be a most readable font for programming";
diff --git a/nixpkgs/pkgs/data/fonts/recursive/default.nix b/nixpkgs/pkgs/data/fonts/recursive/default.nix
index 25a111c5804a..39d63e7dd990 100644
--- a/nixpkgs/pkgs/data/fonts/recursive/default.nix
+++ b/nixpkgs/pkgs/data/fonts/recursive/default.nix
@@ -1,20 +1,21 @@
 { lib, fetchzip }:
 
 let
-  version = "1.052";
+  version = "1.064";
 in
 fetchzip {
   name = "recursive-${version}";
 
-  url = "https://github.com/arrowtype/recursive/releases/download/${version}/Recursive-Beta_${version}.zip";
+  url = "https://github.com/arrowtype/recursive/releases/download/${version}/ArrowType-Recursive-${version}.zip";
 
   postFetch = ''
     mkdir -p $out/share/fonts/
-    unzip -j $downloadedFile \*.ttf   -d $out/share/fonts/truetype
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
     unzip -j $downloadedFile \*.woff2 -d $out/share/fonts/woff2
   '';
 
-  sha256 = "1kam7wcn0rg89gw52pn174sz0r9lc2kjdz88l0jg20gwa3bjbpc6";
+  sha256 = "1pbrqk848nkaambvsz0n8f88xdm8hyib83in27rmal739qh9d1z6";
 
   meta = with lib; {
     homepage = "https://recursive.design/";
diff --git a/nixpkgs/pkgs/data/fonts/redhat-official/default.nix b/nixpkgs/pkgs/data/fonts/redhat-official/default.nix
index 44eea3774ffc..37ca9db9fa0b 100644
--- a/nixpkgs/pkgs/data/fonts/redhat-official/default.nix
+++ b/nixpkgs/pkgs/data/fonts/redhat-official/default.nix
@@ -1,16 +1,21 @@
-{ lib, fetchzip }:
-
-let version = "2.2.0"; in
-fetchzip {
+{ lib, fetchFromGitHub }:
+let
+  version = "2.3.2";
+in
+fetchFromGitHub {
   name = "redhat-official-${version}";
-  url = "https://github.com/RedHatOfficial/RedHatFont/archive/${version}.zip";
+
+  owner = "RedHatOfficial";
+  repo = "RedHatFont";
+  rev = version;
 
   postFetch = ''
-    mkdir -p $out/share/fonts/opentype
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+    tar xf $downloadedFile --strip=1
+    install -m444 -Dt $out/share/fonts/opentype OTF/*.otf
+    install -m444 -Dt $out/share/fonts/truetype TTF/*.ttf
   '';
 
-  sha256 = "0yb6shgq6jrv3kq9faky66qpdbv4g580c3jl942844grwyngymyj";
+  sha256 = "1afvxmgif61hb17g8inmxvq30vkzwh30mydlqpf0zgvaaz8qdwmv";
 
   meta = with lib; {
     homepage = "https://github.com/RedHatOfficial/RedHatFont";
diff --git a/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix b/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix
index 96bfaf191c3d..9fce696b6e86 100644
--- a/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix
+++ b/nixpkgs/pkgs/data/fonts/sarasa-gothic/default.nix
@@ -1,12 +1,12 @@
 { lib, fetchurl, libarchive }:
 
 let
-  version = "0.12.6";
+  version = "0.12.11";
 in fetchurl {
   name = "sarasa-gothic-${version}";
 
   url = "https://github.com/be5invis/Sarasa-Gothic/releases/download/v${version}/sarasa-gothic-ttc-${version}.7z";
-  sha256 = "1b15gsmv2jr0r8xssr8216s8xsghr6w5wm3w3imm3qlh3kqk1qg8";
+  sha256 = "0vcp8583by7pfqinq8p2jx2bn4dqq816x4bxgv05k0kb9ziwj7aj";
 
   recursiveHash = true;
   downloadToTemp = true;
diff --git a/nixpkgs/pkgs/data/fonts/siji/default.nix b/nixpkgs/pkgs/data/fonts/siji/default.nix
index d1e53bbb7575..fb13f82263dd 100644
--- a/nixpkgs/pkgs/data/fonts/siji/default.nix
+++ b/nixpkgs/pkgs/data/fonts/siji/default.nix
@@ -24,15 +24,13 @@ stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
-    install -m 644 -D pcf/* -t "$out/share/fonts/misc"
+    install -m 644 -D *.otb pcf/* -t "$out/share/fonts/misc"
     install -m 644 -D bdf/* -t "$bdf/share/fonts/misc"
-    install -m 644 -D *.otb -t "$otb/share/fonts/misc"
     mkfontdir "$out/share/fonts/misc"
     mkfontdir "$bdf/share/fonts/misc"
-    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputs = [ "out" "bdf" "otb" ];
+  outputs = [ "out" "bdf" ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/stark/siji";
diff --git a/nixpkgs/pkgs/data/fonts/source-han/default.nix b/nixpkgs/pkgs/data/fonts/source-han/default.nix
index 7b6bef0198da..28ec08f63b6d 100644
--- a/nixpkgs/pkgs/data/fonts/source-han/default.nix
+++ b/nixpkgs/pkgs/data/fonts/source-han/default.nix
@@ -19,7 +19,8 @@ let
     version = lib.removeSuffix "R" rev;
 
     buildCommand = ''
-      install -m444 -Dt $out/share/fonts/opentype/source-han-${family} ${ttc}
+      mkdir -p $out/share/fonts/opentype/source-han-${family}
+      ln -s ${ttc} $out/share/fonts/opentype/source-han-${family}/SourceHan${Family}.ttc
     '';
 
     meta = {
diff --git a/nixpkgs/pkgs/data/fonts/spleen/default.nix b/nixpkgs/pkgs/data/fonts/spleen/default.nix
index 6994b7d4a720..726f60938bb2 100644
--- a/nixpkgs/pkgs/data/fonts/spleen/default.nix
+++ b/nixpkgs/pkgs/data/fonts/spleen/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "spleen";
-  version = "1.7.0";
+  version = "1.8.2";
 in fetchurl {
   name = "${pname}-${version}";
   url = "https://github.com/fcambus/spleen/releases/download/${version}/spleen-${version}.tar.gz";
@@ -19,7 +19,7 @@ in fetchurl {
     # create fonts.dir so NixOS xorg module adds to fp
     ${mkfontscale}/bin/mkfontdir "$d"
   '';
-  sha256 = "17dn6spfr8wv63sy009djb4q12q635m13wsyirzn074qabhr9ggg";
+  sha256 = "0195d8ssmd8hc0q941z6zwnccffxajv4vylypsndxf28f3ikawby";
 
   meta = with lib; {
     description = "Monospaced bitmap fonts";
diff --git a/nixpkgs/pkgs/data/fonts/sudo/default.nix b/nixpkgs/pkgs/data/fonts/sudo/default.nix
index 8becdf83f5dc..48ca0fea1e42 100644
--- a/nixpkgs/pkgs/data/fonts/sudo/default.nix
+++ b/nixpkgs/pkgs/data/fonts/sudo/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchzip }:
 
 let
-  version = "0.42";
+  version = "0.50";
 in fetchzip {
   name = "sudo-font-${version}";
-  url = "https://github.com/jenskutilek/sudo-font/releases/download/v${version}/sudo.zip";
-  sha256 = "1rqpwihf2sakrhkaw041r3xc9fhafaqn22n79haqkmwv4vmnspch";
+  url = "https://github.com/jenskutilek/sudo-font/raw/v${version}/dist/sudo.zip";
+  sha256 = "1mk81r9p7ks6av3rj06c6n9vx2qv2hwx6zfbc2mk1filxjirk1ll";
 
   postFetch = ''
     mkdir -p $out/share/fonts/
diff --git a/nixpkgs/pkgs/data/fonts/tamsyn/default.nix b/nixpkgs/pkgs/data/fonts/tamsyn/default.nix
index 2738925478f4..4d1e58a6bb34 100644
--- a/nixpkgs/pkgs/data/fonts/tamsyn/default.nix
+++ b/nixpkgs/pkgs/data/fonts/tamsyn/default.nix
@@ -29,15 +29,11 @@ in stdenv.mkDerivation {
   '';
 
   installPhase = ''
-    install -m 644 -D *.pcf.gz -t "$out/share/fonts/misc"
+    install -m 644 -D *.otb *.pcf.gz -t "$out/share/fonts/misc"
     install -m 644 -D *.psf.gz -t "$out/share/consolefonts"
-    install -m 644 -D *.otb    -t "$otb/share/fonts/misc"
     mkfontdir "$out/share/fonts/misc"
-    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     description = "A monospace bitmap font aimed at programmers";
     longDescription = ''Tamsyn is a monospace bitmap font, primarily aimed at
diff --git a/nixpkgs/pkgs/data/fonts/tamzen/default.nix b/nixpkgs/pkgs/data/fonts/tamzen/default.nix
index 6ecc03d73106..026ec63d670e 100644
--- a/nixpkgs/pkgs/data/fonts/tamzen/default.nix
+++ b/nixpkgs/pkgs/data/fonts/tamzen/default.nix
@@ -14,15 +14,11 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ mkfontscale ];
 
   installPhase = ''
-    install -m 644 -D pcf/*.pcf -t "$out/share/fonts/misc"
+    install -m 644 -D otb/*.otb pcf/*.pcf -t "$out/share/fonts/misc"
     install -m 644 -D psf/*.psf -t "$out/share/consolefonts"
-    install -m 644 -D otb/*.otb -t "$otb/share/fonts/misc"
     mkfontdir "$out/share/fonts/misc"
-    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     description = "Bitmapped programming font based on Tamsyn";
     longDescription = ''
diff --git a/nixpkgs/pkgs/data/fonts/terminus-font/default.nix b/nixpkgs/pkgs/data/fonts/terminus-font/default.nix
index 4c7f5d85e869..bbde1dd252c3 100644
--- a/nixpkgs/pkgs/data/fonts/terminus-font/default.nix
+++ b/nixpkgs/pkgs/data/fonts/terminus-font/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     substituteInPlace Makefile --replace 'fc-cache' '#fc-cache'
+    substituteInPlace Makefile --replace 'gzip'     'gzip -n'
   '';
 
   postBuild = ''
@@ -34,14 +35,12 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     # install otb fonts (for GTK applications)
-    install -m 644 -D *.otb -t "$otb/share/fonts/misc";
-    mkfontdir "$otb/share/fonts/misc"
+    install -m 644 -D *.otb -t "$out/share/fonts/misc";
+    mkfontdir "$out/share/fonts/misc"
   '';
 
   installTargets = [ "install" "fontdir" ];
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     description = "A clean fixed width font";
     longDescription = ''
diff --git a/nixpkgs/pkgs/data/fonts/tewi/default.nix b/nixpkgs/pkgs/data/fonts/tewi/default.nix
index 7b67c1dd52d3..7821cc660412 100644
--- a/nixpkgs/pkgs/data/fonts/tewi/default.nix
+++ b/nixpkgs/pkgs/data/fonts/tewi/default.nix
@@ -38,16 +38,10 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     fontDir="$out/share/fonts/misc"
-    install -m 644 -D out/* -t "$fontDir"
-    mkfontdir "$fontDir"
-
-    fontDir="$otb/share/fonts/misc"
-    install -m 644 -D *.otb -t "$fontDir"
+    install -m 644 -D *.otb out/* -t "$fontDir"
     mkfontdir "$fontDir"
   '';
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     description = "A nice bitmap font, readable even at small sizes";
     longDescription = ''
diff --git a/nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix b/nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix
index a9bf3720c071..23ae8e76b1d5 100644
--- a/nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix
+++ b/nixpkgs/pkgs/data/fonts/twemoji-color-font/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, inkscape, imagemagick, potrace, svgo, scfbuild }:
+{ stdenv, fetchFromGitHub, fetchpatch, inkscape, imagemagick, potrace, svgo, scfbuild }:
 
 stdenv.mkDerivation rec {
   pname = "twemoji-color-font";
@@ -10,6 +10,19 @@ stdenv.mkDerivation rec {
     sha256 = "00pbgqpkq21wl8fs0q1xp49xb10m48b9sz8cdc58flkd2vqfssw2";
   };
 
+  patches = [
+    # Fix build with Inkscape 1.0
+    # https://github.com/eosrei/twemoji-color-font/pull/82
+    (fetchpatch {
+      url = "https://github.com/eosrei/twemoji-color-font/commit/208ad63c2ceb38c528b5237abeb2b85ceedc1d37.patch";
+      sha256 = "TV8I++BEnVUQg7FNbnrEQ/MLV9n3drmspqjmDZgTGFI=";
+      postFetch = ''
+        substituteInPlace $out \
+          --replace "inkscape --without-gui" "inkscape --export-png"
+      '';
+    })
+  ];
+
   nativeBuildInputs = [ inkscape imagemagick potrace svgo scfbuild ];
   # silence inkscape errors about non-writable home
   preBuild = "export HOME=\"$NIX_BUILD_ROOT\"";
diff --git a/nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix b/nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix
index ac3930853cf9..8435957fe201 100644
--- a/nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix
+++ b/nixpkgs/pkgs/data/fonts/twitter-color-emoji/default.nix
@@ -3,9 +3,8 @@
 
 { stdenv
 , fetchFromGitHub
-, fetchpatch
 , cairo
-, graphicsmagick
+, imagemagick
 , pkg-config
 , pngquant
 , python3
@@ -15,7 +14,7 @@
 }:
 
 let
-  version = "12.1.5";
+  version = "13.0.1";
 
   twemojiSrc = fetchFromGitHub {
     name = "twemoji";
@@ -25,6 +24,9 @@ let
     sha256 = "0acinlv2l3s1jga2i9wh16mvgkxw4ipzgvjx8c80zd104lpdpgd9";
   };
 
+  pythonEnv =
+    python3.withPackages (p: [ p.fonttools p.nototools ]);
+
 in
 stdenv.mkDerivation rec {
   pname = "twitter-color-emoji";
@@ -44,23 +46,14 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     cairo
-    graphicsmagick
+    imagemagick
     pkg-config
     pngquant
-    python3
-    python3.pkgs.nototools
+    pythonEnv
     which
     zopfli
   ];
 
-  patches = [
-    # ImageMagick -> GraphicsMagick
-    (fetchpatch {
-      url = "https://src.fedoraproject.org/rpms/twitter-twemoji-fonts/raw/07778605d50696f6aa929020e82611a01d254c90/f/noto-emoji-use-gm.patch";
-      sha256 = "06vg16z79s5adyjy8r3mr8fd391b1hi4xkqvbzkmnjwaai7p08lk";
-    })
-  ];
-
   postPatch = let
     templateSubstitutions = stdenv.lib.concatStringsSep "; " [
       ''s#Noto Color Emoji#Twitter Color Emoji#''
@@ -74,7 +67,7 @@ stdenv.mkDerivation rec {
       ''s#http://scripts.sil.org/OFL#http://creativecommons.org/licenses/by/4.0/#''
     ];
   in ''
-    patchShebangs ./flag_glyph_name.py
+    ${noto-fonts-emoji.postPatch}
 
     sed '${templateSubstitutions}' NotoColorEmoji.tmpl.ttx.tmpl > TwitterColorEmoji.tmpl.ttx.tmpl
     pushd ${twemojiSrc.name}/assets/72x72/
@@ -88,6 +81,8 @@ stdenv.mkDerivation rec {
     "EMOJI=TwitterColorEmoji"
     "EMOJI_SRC_DIR=${twemojiSrc.name}/assets/72x72"
     "BODY_DIMENSIONS=76x72"
+    # twemoji contains some codepoints noto doesn't like
+    "BYPASS_SEQUENCE_CHECK=True"
   ];
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix b/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix
index 7168607ce099..71c42c46b5d4 100644
--- a/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ucs-fonts/default.nix
@@ -42,16 +42,14 @@ stdenv.mkDerivation {
   '';
 
   installPhase = ''
-    install -m 644 -D *.pcf.gz -t "$out/share/fonts/misc"
-    install -m 644 -D *.bdf    -t "$bdf/share/fonts/misc"
-    install -m 644 -D *.otb    -t "$otb/share/fonts/misc"
+    install -m 644 -D *.otb *.pcf.gz -t "$out/share/fonts/misc"
+    install -m 644 -D *.bdf -t "$bdf/share/fonts/misc"
 
     mkfontdir "$out/share/fonts/misc"
     mkfontdir "$bdf/share/fonts/misc"
-    mkfontdir "$otb/share/fonts/misc"
   '';
 
-  outputs = [ "out" "bdf" "otb" ];
+  outputs = [ "out" "bdf" ];
 
   meta = with stdenv.lib; {
     homepage = "https://www.cl.cam.ac.uk/~mgk25/ucs-fonts.html";
diff --git a/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix b/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
index 5b07adf822e6..b1da06ccd8b4 100644
--- a/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
+++ b/nixpkgs/pkgs/data/fonts/ultimate-oldschool-pc-font-pack/default.nix
@@ -1,12 +1,12 @@
 { lib, fetchzip }:
 
 let
-  version = "1.0";
+  version = "2.0";
 in
 fetchzip {
   name = "ultimate-oldschool-pc-font-pack-${version}";
-  url = "https://int10h.org/oldschool-pc-fonts/download/ultimate_oldschool_pc_font_pack_v${version}.zip";
-  sha256 = "0hid4dgqfy2w26734vcw2rxmpacd9vd1r2qpdr9ww1n3kgc92k9y";
+  url = "https://int10h.org/oldschool-pc-fonts/download/oldschool_pc_font_pack_v${version}_ttf.zip";
+  sha256 = "0z0fw6ni7iq806y4m83xrfx46r14xxxql09ch2gxjqi062awqyh8";
 
   postFetch= ''
     mkdir -p $out/share/fonts/truetype
diff --git a/nixpkgs/pkgs/data/fonts/uni-vga/default.nix b/nixpkgs/pkgs/data/fonts/uni-vga/default.nix
index 58a5dbcfdbc2..65db46ca2ca7 100644
--- a/nixpkgs/pkgs/data/fonts/uni-vga/default.nix
+++ b/nixpkgs/pkgs/data/fonts/uni-vga/default.nix
@@ -34,23 +34,20 @@ stdenv.mkDerivation {
   '';
 
   installPhase = ''
-    # install pcf (for X11 applications)
-    install -m 644 -D *.pcf.gz -t "$out/share/fonts"
+    # install pcf and otb (for X11 and GTK applications)
+    install -m 644 -D *.otb *.pcf.gz -t "$out/share/fonts"
     mkfontdir "$out/share/fonts"
 
     # install bdf font
     install -m 644 -D *.bdf -t "$bdf/share/fonts"
     mkfontdir "$bdf/share/fonts"
 
-    # install otb font (for GTK applications)
-    install -m 644 -D *.otb -t "$otb/share/fonts"
-    mkfontdir "$otb/share/fonts"
   '' + optionalString stdenv.isLinux ''
     # install psf (for linux virtual terminal)
     install -m 644 -D *.psf.gz -t "$out/share/consolefonts"
   '';
 
-  outputs = [ "out" "bdf" "otb" ];
+  outputs = [ "out" "bdf" ];
 
   meta = {
     description = "Unicode VGA font";
diff --git a/nixpkgs/pkgs/data/fonts/unifont/default.nix b/nixpkgs/pkgs/data/fonts/unifont/default.nix
index 460efc2c581a..685b5c452f2d 100644
--- a/nixpkgs/pkgs/data/fonts/unifont/default.nix
+++ b/nixpkgs/pkgs/data/fonts/unifont/default.nix
@@ -30,8 +30,8 @@ stdenv.mkDerivation rec {
   installPhase =
     ''
       # install otb fonts
-      install -m 644 -D unifont.otb "$otb/share/fonts/unifont.otb"
-      mkfontdir "$otb/share/fonts"
+      install -m 644 -D unifont.otb "$out/share/fonts/unifont.otb"
+      mkfontdir "$out/share/fonts"
 
       # install pcf and ttf fonts
       install -m 644 -D ${pcf} $out/share/fonts/unifont.pcf.gz
@@ -41,8 +41,6 @@ stdenv.mkDerivation rec {
       mkfontscale
     '';
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     description = "Unicode font for Base Multilingual Plane";
     homepage = "http://unifoundry.com/unifont.html";
diff --git a/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix b/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix
index 96cde444d2b9..b0e58faed602 100644
--- a/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix
+++ b/nixpkgs/pkgs/data/fonts/uw-ttyp0/default.nix
@@ -67,7 +67,7 @@ stdenv.mkDerivation rec {
     install -m 644 -D psf/*.psf -t "$fontDir"
 
     # install otb fonts
-    fontDir="$otb/share/fonts/X11/misc"
+    fontDir="$out/share/fonts/X11/misc"
     install -m 644 -D otb/*.otb -t "$fontDir"
     mkfontdir "$fontDir"
   '';
@@ -80,8 +80,6 @@ stdenv.mkDerivation rec {
     runHook postConfigure
   '';
 
-  outputs = [ "out" "otb" ];
-
   meta = with stdenv.lib; {
     description = "Monospace bitmap screen fonts for X11";
     homepage = "https://people.mpi-inf.mpg.de/~uwe/misc/uw-ttyp0/";
diff --git a/nixpkgs/pkgs/data/fonts/victor-mono/default.nix b/nixpkgs/pkgs/data/fonts/victor-mono/default.nix
index 89b13585eb0b..940c0d76c46a 100644
--- a/nixpkgs/pkgs/data/fonts/victor-mono/default.nix
+++ b/nixpkgs/pkgs/data/fonts/victor-mono/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "victor-mono";
-  version = "1.3.1";
+  version = "1.4.1";
 in fetchFromGitHub rec {
   name = "${pname}-${version}";
 
@@ -26,7 +26,7 @@ in fetchFromGitHub rec {
     unzip -j VictorMonoAll.zip \*.otf -d $out/share/fonts/opentype/${pname}
   '';
 
-  sha256 = "1yj91rhs9pd705406r4lqabdfzjclbz837nzm6z1rziy6mbpd61s";
+  sha256 = "1g3jjrqd2fiw2hdifhff2fn20p5a0xfma3964f67ibdyri976zq5";
 
   meta = with lib; {
     description = "Free programming font with cursive italics and ligatures";
diff --git a/nixpkgs/pkgs/data/fonts/vista-fonts-chs/no-op.conf b/nixpkgs/pkgs/data/fonts/vista-fonts-chs/no-op.conf
index 2d00b6244887..20d1b49d1580 100644
--- a/nixpkgs/pkgs/data/fonts/vista-fonts-chs/no-op.conf
+++ b/nixpkgs/pkgs/data/fonts/vista-fonts-chs/no-op.conf
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
 <fontconfig>
   <!-- This configuation is intentionally left empty in order to
        override any other font package that may wish to set up an
diff --git a/nixpkgs/pkgs/data/fonts/vista-fonts/no-op.conf b/nixpkgs/pkgs/data/fonts/vista-fonts/no-op.conf
index 503e62cfa295..3f8a9b9b5444 100644
--- a/nixpkgs/pkgs/data/fonts/vista-fonts/no-op.conf
+++ b/nixpkgs/pkgs/data/fonts/vista-fonts/no-op.conf
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
+<!DOCTYPE fontconfig SYSTEM "urn:fontconfig:fonts.dtd">
 <fontconfig>
   <!-- This configuation is intentionally left empty in order to
        override any other font package that may wish to set up an
diff --git a/nixpkgs/pkgs/data/fonts/xits-math/default.nix b/nixpkgs/pkgs/data/fonts/xits-math/default.nix
index db0ed425dee2..dfb38973edd9 100644
--- a/nixpkgs/pkgs/data/fonts/xits-math/default.nix
+++ b/nixpkgs/pkgs/data/fonts/xits-math/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xits-math";
-  version = "1.301";
+  version = "1.302";
 
   src = fetchFromGitHub {
     owner = "alif-type";
     repo = "xits";
     rev = "v${version}";
-    sha256 = "043g0gnjc7wn1szvrs0rc1vvrq1qmhqh45b0y2kwrlxsgprpv8ll";
+    sha256 = "1x3r505dylz9rz8dj98h5n9d0zixyxmvvhnjnms9qxdrz9bxy9g1";
   };
 
   nativeBuildInputs = (with python3Packages; [ python fonttools fontforge ]);
diff --git a/nixpkgs/pkgs/data/icons/bibata-cursors/translucent.nix b/nixpkgs/pkgs/data/icons/bibata-cursors/translucent.nix
index 90e1102e124c..afdd92600fa9 100644
--- a/nixpkgs/pkgs/data/icons/bibata-cursors/translucent.nix
+++ b/nixpkgs/pkgs/data/icons/bibata-cursors/translucent.nix
@@ -3,7 +3,7 @@
 stdenvNoCC.mkDerivation rec {
   pname = "bibata-cursors-translucent";
   version = "unstable-2019-09-13";
-  
+
   src = fetchFromGitHub {
     owner = "Silicasandwhich";
     repo = "Bibata_Cursor_Translucent";
diff --git a/nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
index 3a82c3132964..52f9c8c821fe 100644
--- a/nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/elementary-xfce-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-xfce-icon-theme";
-  version = "0.15";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "shimmerproject";
     repo = "elementary-xfce";
     rev = "v${version}";
-    sha256 = "1f6qvpzxz759znishmr4b22n540y18glv41wmy91r78sa4g6x4sh";
+    sha256 = "1rl15kh9c7qxw4pvwmw44fb4v3vwh6zin4wpx55bnvm5j76y6p3f";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/data/icons/iconpack-jade/default.nix b/nixpkgs/pkgs/data/icons/iconpack-jade/default.nix
index 1bfa8092a322..619fd0205b51 100644
--- a/nixpkgs/pkgs/data/icons/iconpack-jade/default.nix
+++ b/nixpkgs/pkgs/data/icons/iconpack-jade/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "iconpack-jade";
-  version = "1.22";
+  version = "1.23";
 
   src = fetchFromGitHub {
     owner = "madmaxms";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1piypv8wdxnfiy6kgh7i3wi52m4fh4x874kh01qjmymssyirn17x";
+    sha256 = "1q29ikfssn1vmwws3dry4ssq6b44afd9sb7dwv3rdqg0frabpj1m";
   };
 
   nativeBuildInputs = [ gtk3 ];
diff --git a/nixpkgs/pkgs/data/icons/iconpack-obsidian/default.nix b/nixpkgs/pkgs/data/icons/iconpack-obsidian/default.nix
index 01443578057e..8fe21aabe36f 100644
--- a/nixpkgs/pkgs/data/icons/iconpack-obsidian/default.nix
+++ b/nixpkgs/pkgs/data/icons/iconpack-obsidian/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, fetchFromGitHub, gtk3, gnome-icon-theme, hicolor-icon-theme }:
+{ stdenv, fetchFromGitHub, gtk3, gnome-icon-theme, mint-x-icons, hicolor-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "iconpack-obsidian";
-  version = "4.12";
+  version = "4.13";
 
   src = fetchFromGitHub {
     owner = "madmaxms";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0139ps707mh1zkypaxsqzy58mmsm5whdxxx2nbsmqfswb7qisz2b";
+    sha256 = "1hh0hnd2d08l4n5r73fkngv08f8230pp94k9qq8xgmchvjfg6j8y";
   };
 
   nativeBuildInputs = [ gtk3 ];
 
-  propagatedBuildInputs = [ gnome-icon-theme hicolor-icon-theme ];
-  # still missing parent themes: Ambiant-MATE, Mint-X, Faenza-Dark, KFaenza
+  propagatedBuildInputs = [ gnome-icon-theme mint-x-icons hicolor-icon-theme ];
+  # still missing parent themes: Ambiant-MATE, Faenza-Dark, KFaenza
 
   dontDropIconThemeCache = true;
 
diff --git a/nixpkgs/pkgs/data/icons/iso-flags/default.nix b/nixpkgs/pkgs/data/icons/iso-flags/default.nix
new file mode 100644
index 000000000000..b329a151c728
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/iso-flags/default.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, fetchFromGitHub
+, perl
+, perlPackages
+, inkscape
+, pngcrush
+, librsvg
+, targets ? [ "all" ]
+}:
+
+stdenv.mkDerivation {
+  pname = "iso-flags";
+  version = "unstable-18012020";
+
+  src = fetchFromGitHub {
+    owner = "joielechong";
+    repo = "iso-country-flags-svg-collection";
+    rev = "9ebbd577b9a70fbfd9a1931be80c66e0d2f31a9d";
+    sha256 = "17bm7w4md56xywixfvp7vr3d6ihvxk3383i9i4rpmgm6qa9dyxdl";
+  };
+
+  nativeBuildInputs = [
+    perl
+    inkscape
+    librsvg
+    (perl.withPackages(pp: with pp; [ JSON XMLLibXML ]))
+  ];
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  buildFlags = targets;
+
+  installPhase = ''
+    mkdir -p $out/share
+    mv build $out/share/iso-flags
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/joielechong/iso-country-flags-svg-collection";
+    description = "248 country flag SVG & PNG icons with different icon styles";
+    license = [ licenses.publicDomain ];
+    platforms = platforms.linux; # the output assets should work anywhere, but unsure about the tools to build them...
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/luna-icons/default.nix b/nixpkgs/pkgs/data/icons/luna-icons/default.nix
new file mode 100644
index 000000000000..3125df5fe1cf
--- /dev/null
+++ b/nixpkgs/pkgs/data/icons/luna-icons/default.nix
@@ -0,0 +1,52 @@
+{ stdenv
+, fetchFromGitHub
+, gtk3
+, breeze-icons
+, hicolor-icon-theme
+, pantheon
+}:
+
+stdenv.mkDerivation rec {
+  pname = "luna-icons";
+  version = "2020-08-09";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = "d32aacabcc018212c460833327e1b54a716a5a23";
+    sha256 = "1f1ypxcvmd97afn7612i8gxmbrj80vx45vqrrh3n0p65jw5lg7zc";
+  };
+
+  nativeBuildInputs = [
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    breeze-icons
+    hicolor-icon-theme
+    pantheon.elementary-icon-theme
+  ];
+
+  dontDropIconThemeCache = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share/icons
+    cp -a Luna* $out/share/icons
+
+    for theme in $out/share/icons/*; do
+      gtk-update-icon-cache $theme
+    done
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Icon pack based on marwaita and papirus icons";
+    homepage = "https://github.com/darkomarko42/Luna-Icons";
+    license = [ licenses.gpl3Only ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix b/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix
index 3c991cf1fc83..f43ca473f0dd 100644
--- a/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix
+++ b/nixpkgs/pkgs/data/icons/numix-icon-theme-circle/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "numix-icon-theme-circle";
-  version = "19.12.27";
+  version = "20.07.11";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "0za44h7f4vk37yl30xlaa6w76maiipb6p63gl9hl1rshdn9nxq0y";
+    sha256 = "0vj3d3wb12ksnkm99s32k7nrf9m5j83zzvkd0rwk8l0b30df975j";
   };
 
   nativeBuildInputs = [ gtk3 ];
diff --git a/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix b/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix
index 9cebdc331065..51a2100d3aa3 100644
--- a/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix
+++ b/nixpkgs/pkgs/data/icons/numix-icon-theme-square/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "numix-icon-theme-square";
-  version = "19.12.27";
+  version = "20.07.11";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "0pjbi2g7wk8gyr4lvp8fvcb8z29kc3l6v19a45axgadnc609hqw7";
+    sha256 = "07jy8l2r6grn7pabn3dnkc8j7xdykl7k57br30c6v61ss8paf2rw";
   };
 
   nativeBuildInputs = [ gtk3 ];
diff --git a/nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix
index 56bb2f3808fb..30e212629e86 100644
--- a/nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/numix-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "numix-icon-theme";
-  version = "20.03.20";
+  version = "20.06.07";
 
   src = fetchFromGitHub {
     owner = "numixproject";
     repo = pname;
     rev = version;
-    sha256 = "092f8k38xf9yz898nrangm0ia211d41z8kx0v6njfqfgpiad1s7q";
+    sha256 = "1yp9parc8ihmai8pswf4qzrqd88qpls87ipq8ylx38yqns7wsn4h";
   };
 
   nativeBuildInputs = [ gtk3 ];
diff --git a/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
index 37bde66c3df4..9227ceb49158 100644
--- a/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/papirus-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "papirus-icon-theme";
-  version = "20200602";
+  version = "20200801";
 
   src = fetchFromGitHub {
     owner = "PapirusDevelopmentTeam";
     repo = pname;
     rev = version;
-    sha256 = "0cms5dn8qfasi9xpfcq1hsdyvcb39vkh97mjvi7zrng4iyihq06y";
+    sha256 = "0w9ks8izxv7mkh82fnclfcdf6mif991dsbbnxsqmcbvljrmjval2";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix b/nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix
index fa52ad176d98..2a9a895b6caf 100644
--- a/nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix
+++ b/nixpkgs/pkgs/data/icons/qogir-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qogir-icon-theme";
-  version = "2020-02-21";
+  version = "2020-06-22";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "0m7f26dzzz5gkxi9dbbc96pl0xcvayr1ibxbjkrlsjcdvfg7p3rr";
+    sha256 = "0s5fhwfhn4qgk198jw736byxdrfm42l5m681pllbhg02j8ld4iik";
   };
 
   nativeBuildInputs = [ gtk3 ];
diff --git a/nixpkgs/pkgs/data/icons/vanilla-dmz/default.nix b/nixpkgs/pkgs/data/icons/vanilla-dmz/default.nix
index c92a80527000..55ba320bc988 100644
--- a/nixpkgs/pkgs/data/icons/vanilla-dmz/default.nix
+++ b/nixpkgs/pkgs/data/icons/vanilla-dmz/default.nix
@@ -1,21 +1,34 @@
-{ stdenv, lib, fetchzip, xorg, hicolor-icon-theme }:
+{ stdenv
+, lib
+, fetchzip
+, xorg
+, hicolor-icon-theme
+}:
 
 stdenv.mkDerivation rec {
   pname = "vanilla-dmz";
-  version = "0.4.4";
+  version = "0.4.5";
+
   src = fetchzip {
-    url = "http://ftp.de.debian.org/debian/pool/main/d/dmz-cursor-theme/dmz-cursor-theme_${version}.tar.gz";
-    sha256 = "1l0c0svk7dy0d7icg7j2181wdn3fvks5gmyqnvjk749ppy5ks8mj";
+    url = "mirror://debian/pool/main/d/dmz-cursor-theme/dmz-cursor-theme_${version}.tar.xz";
+    sha256 = "14r8fri4byyzavzdifpga6118hxqjwpzd11xxj28s16zxcanq16m";
   };
-  buildInputs = [ xorg.xcursorgen ];
+
+  buildInputs = [
+    xorg.xcursorgen
+  ];
+
   propagatedBuildInputs = [
     hicolor-icon-theme
   ];
+
   dontDropIconThemeCache = true;
+
   buildPhase = ''
     cd DMZ-White/pngs; ./make.sh; cd -
     cd DMZ-Black/pngs; ./make.sh; cd -
   '';
+
   installPhase = ''
     install -d $out/share/icons/Vanilla-DMZ/cursors
     cp -a DMZ-White/xcursors/* $out/share/icons/Vanilla-DMZ/cursors
@@ -25,11 +38,12 @@ stdenv.mkDerivation rec {
     cp -a DMZ-Black/xcursors/* $out/share/icons/Vanilla-DMZ-AA/cursors
     install -Dm644 DMZ-Black/index.theme $out/share/icons/Vanilla-DMZ-AA/index.theme
   '';
+
   meta = with lib; {
     homepage = "http://jimmac.musichall.cz";
     description = "A style neutral scalable cursor theme";
     platforms = platforms.all;
-    license = licenses.cc-by-nc-sa-30;
+    license = licenses.cc-by-sa-30;
     maintainers = with maintainers; [ cstrahan ];
   };
 }
diff --git a/nixpkgs/pkgs/data/misc/cacert/default.nix b/nixpkgs/pkgs/data/misc/cacert/default.nix
index 27aa60ac09f5..f72431c5a27c 100644
--- a/nixpkgs/pkgs/data/misc/cacert/default.nix
+++ b/nixpkgs/pkgs/data/misc/cacert/default.nix
@@ -65,5 +65,6 @@ stdenv.mkDerivation {
     description = "A bundle of X.509 certificates of public Certificate Authorities (CA)";
     platforms = platforms.all;
     maintainers = with maintainers; [ fpletz ];
+    license = licenses.mpl20;
   };
 }
diff --git a/nixpkgs/pkgs/data/misc/cldr-emoji-annotation/default.nix b/nixpkgs/pkgs/data/misc/cldr-emoji-annotation/default.nix
index d74a9cebcea6..8164012b69ae 100644
--- a/nixpkgs/pkgs/data/misc/cldr-emoji-annotation/default.nix
+++ b/nixpkgs/pkgs/data/misc/cldr-emoji-annotation/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cldr-emoji-annotation";
-  version = "36.12.120200305_0";
+  version = "37.0_13.0_0_2";
 
   src = fetchFromGitHub {
     owner = "fujiwarat";
     repo = "cldr-emoji-annotation";
     rev = version;
-    sha256 = "1zg4czaqnfjkd4hx06h8q56z8iiw22crwqr69w94s4hy9zcanfrs";
+    sha256 = "0la3h6l58j9jfjvzwz65x56ijx7sppirwpqbqc06if4c2g0kzswj";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/data/misc/dns-root-data/default.nix b/nixpkgs/pkgs/data/misc/dns-root-data/default.nix
index ee08c07f5a66..aad1fe61c4bf 100644
--- a/nixpkgs/pkgs/data/misc/dns-root-data/default.nix
+++ b/nixpkgs/pkgs/data/misc/dns-root-data/default.nix
@@ -7,7 +7,7 @@ let
     # occasionally suffers from pointless hash changes,
     # and having stable sources for older versions has advantages, too.
     urls = map (prefix: prefix + "cc5e14a264912/etc/root.hints") [
-      "https://gitlab.labs.nic.cz/knot/knot-resolver/raw/"
+      "https://gitlab.nic.cz/knot/knot-resolver/raw/"
       "https://raw.githubusercontent.com/CZ-NIC/knot-resolver/"
     ];
     sha256 = "0vdrff4l8s8grif52dnh091s8qydhh88k25zqd9rj66sf1qwcwxl";
diff --git a/nixpkgs/pkgs/data/misc/hackage/default.nix b/nixpkgs/pkgs/data/misc/hackage/default.nix
index 73429770b295..7089ca52a3c0 100644
--- a/nixpkgs/pkgs/data/misc/hackage/default.nix
+++ b/nixpkgs/pkgs/data/misc/hackage/default.nix
@@ -1,6 +1,6 @@
 { fetchurl }:
 
 fetchurl {
-  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/e8df5568f80e6230e29c2381e842db35fe11cd71.tar.gz";
-  sha256 = "1fz4iax88pmlqpb4zp3l6mb6bmkzzha0q6mm3xasabh5yl83dbhy";
+  url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/513c2f50baa5338bbe40a93cb328e1fe973df09c.tar.gz";
+  sha256 = "1j5lch66x82ysqfq97jq5sm0f58cdm0vjvy4wpkcm1akgnkkycq3";
 }
diff --git a/nixpkgs/pkgs/data/misc/iana-etc/default.nix b/nixpkgs/pkgs/data/misc/iana-etc/default.nix
index 2b2d2d190650..4f9a98dccffb 100644
--- a/nixpkgs/pkgs/data/misc/iana-etc/default.nix
+++ b/nixpkgs/pkgs/data/misc/iana-etc/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchzip }:
 
 let
-  version = "20200407";
+  version = "20200729";
 in fetchzip {
   name = "iana-etc-${version}";
   url = "https://github.com/Mic92/iana-etc/releases/download/${version}/iana-etc-${version}.tar.gz";
-  sha256 = "1zmqim0l4lz5xbq7w2wi48fzsvg2msyw6c80dzw4vxll31frpy18";
+  sha256 = "05cymmisfvpyd7fwzc6axvm5fsi1v6hzs0pjr4xp1i95wvpz7qpm";
 
   postFetch = ''
     tar -xzvf $downloadedFile --strip-components=1
diff --git a/nixpkgs/pkgs/data/misc/nixos-artwork/wallpapers.nix b/nixpkgs/pkgs/data/misc/nixos-artwork/wallpapers.nix
index 6e6b6e92678e..36242db4621f 100644
--- a/nixpkgs/pkgs/data/misc/nixos-artwork/wallpapers.nix
+++ b/nixpkgs/pkgs/data/misc/nixos-artwork/wallpapers.nix
@@ -46,6 +46,15 @@ in
 
 rec {
 
+  dracula = mkNixBackground {
+    name = "dracula-2020-07-02";
+    description = "Nix background based on the Dracula color palette";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/03c6c20be96c38827037d2238357f2c777ec4aa5/wallpapers/nix-wallpaper-dracula.png";
+      sha256 = "07ly21bhs6cgfl7pv4xlqzdqm44h22frwfhdqyd4gkn2jla1waab";
+    };
+  };
+
   gnome-dark = simple-dark-gray-bottom;
 
   mosaic-blue = mkNixBackground {
@@ -57,6 +66,24 @@ rec {
     };
   };
 
+  nineish = mkNixBackground {
+    name = "nineish-2019-12-04";
+    description = "Nix background inspired by simpler times";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/da01f68d21ddfdc9f1c6e520c2170871c81f1cf5/wallpapers/nix-wallpaper-nineish.png";
+      sha256 = "1mwvnmflp0z1biyyhfz7mjn7i1nna94n7jyns3na2shbfkaq7i0h";
+    };
+  };
+
+  nineish-dark-gray = mkNixBackground {
+    name = "nineish-dark-gray-2020-07-02";
+    description = "Dark gray Nix background inspired by simpler times";
+    src = fetchurl {
+      url = "https://raw.githubusercontent.com/NixOS/nixos-artwork/f07707cecfd89bc1459d5dad76a3a4c5315efba1/wallpapers/nix-wallpaper-nineish-dark-gray.png";
+      sha256 = "07zl1dlxqh9dav9pibnhr2x1llywwnyphmzcdqaby7dz5js184ly";
+    };
+  };
+
   simple-blue = mkNixBackground {
     name = "simple-blue-2016-02-19";
     description = "Simple blue background for Nix";
diff --git a/nixpkgs/pkgs/data/misc/osinfo-db/default.nix b/nixpkgs/pkgs/data/misc/osinfo-db/default.nix
index 87425defb879..d12eec8d8e32 100644
--- a/nixpkgs/pkgs/data/misc/osinfo-db/default.nix
+++ b/nixpkgs/pkgs/data/misc/osinfo-db/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchurl, osinfo-db-tools, intltool, libxml2 }:
+{ stdenv, fetchurl, osinfo-db-tools, gettext, libxml2 }:
 
 stdenv.mkDerivation rec {
   pname = "osinfo-db";
-  version = "20200529";
+  version = "20200804";
 
   src = fetchurl {
     url = "https://releases.pagure.org/libosinfo/${pname}-${version}.tar.xz";
-    sha256 = "0mbrf9j5wmjhc6jixvhp4jqyxixh1717lqrmzmipdg99xnzba81n";
+    sha256 = "1gx8yky41kz2f03r7gvxgq8naysnrf8apsss61xqaxmmyd080z0v";
   };
 
-  nativeBuildInputs = [ osinfo-db-tools intltool libxml2 ];
+  nativeBuildInputs = [ osinfo-db-tools gettext libxml2 ];
 
   phases = [ "installPhase" ];
 
diff --git a/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix b/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix
index 20931c8ad244..6d2c58afdb21 100644
--- a/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix
+++ b/nixpkgs/pkgs/data/misc/spdx-license-list-data/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "spdx-license-list-data";
-  version = "3.9";
+  version = "3.10";
 
   src = fetchFromGitHub {
     owner = "spdx";
     repo = "license-list-data";
     rev = "v${version}";
-    sha256 = "0qf0g7a3jby8sngdjdic30xrb6ch56d6gzpphs8lkm6giir142rj";
+    sha256 = "1zza0jrs82112dcjqgkyck2b7hv4kg9s10pmlripi6c1rs37av14";
   };
 
   phases = [ "unpackPhase" "installPhase" ];
diff --git a/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix b/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix
index dce625de5e35..ace93fa44950 100644
--- a/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix
+++ b/nixpkgs/pkgs/data/themes/adwaita-qt/default.nix
@@ -1,14 +1,14 @@
-{ mkDerivation, lib, fetchFromGitHub, cmake, ninja, qtbase, pantheon }:
+{ mkDerivation, lib, fetchFromGitHub, nix-update-script, cmake, ninja, qtbase, pantheon }:
 
 mkDerivation rec {
   pname = "adwaita-qt";
-  version = "1.1.3";
+  version = "1.1.4";
 
   src = fetchFromGitHub {
     owner = "FedoraQt";
     repo = pname;
     rev = version;
-    sha256 = "1zfah1ybfgi4dag3lxqap99giwwng9b3lgcick1ciylz6vwf2gwh";
+    sha256 = "19s97wm96g3828dp8m85j3lsn1n6h5h2zqk4652hcqcgq6xb6gv5";
   };
 
   nativeBuildInputs = [
@@ -27,7 +27,7 @@ mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/data/themes/arc/default.nix b/nixpkgs/pkgs/data/themes/arc/default.nix
index 9fba432656a7..66be070bdf4a 100644
--- a/nixpkgs/pkgs/data/themes/arc/default.nix
+++ b/nixpkgs/pkgs/data/themes/arc/default.nix
@@ -8,17 +8,18 @@
 , gtk-engine-murrine
 , optipng
 , inkscape
+, cinnamon
 }:
 
 stdenv.mkDerivation rec {
   pname = "arc-theme";
-  version = "20200513";
+  version = "20200819";
 
   src = fetchFromGitHub {
     owner = "jnsh";
     repo = pname;
     rev = version;
-    sha256 = "1xiaf31v3j040hflhf09kpznc93a5fqs92m5jf79y46w3dgpia0p";
+    sha256 = "1l5sc4r5jp3526r4p32fszny0cw6pkb45cp424hq0s0k344z9px6";
   };
 
   nativeBuildInputs = [
@@ -43,8 +44,8 @@ stdenv.mkDerivation rec {
   '';
 
   configureFlags = [
+    "--with-cinnamon=${cinnamon.cinnamon-common.version}"
     "--with-gnome-shell=${gnome3.gnome-shell.version}"
-    "--disable-cinnamon" # not equipped to test
     "--disable-unity"
   ];
 
diff --git a/nixpkgs/pkgs/data/themes/cde-motif-theme/default.nix b/nixpkgs/pkgs/data/themes/cdetheme/default.nix
index cc83047e3cce..ae7386047517 100644
--- a/nixpkgs/pkgs/data/themes/cde-motif-theme/default.nix
+++ b/nixpkgs/pkgs/data/themes/cdetheme/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, python2Packages }:
 
 stdenv.mkDerivation rec {
-  pname = "cde-motif-theme";
+  pname = "cdetheme";
   version = "1.3";
 
   src = fetchFromGitHub {
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     platforms = platforms.all;
     maintainers = with maintainers; [ gnidorah ];
+    hydraPlatforms = [];
   };
 }
diff --git a/nixpkgs/pkgs/data/themes/jade1/default.nix b/nixpkgs/pkgs/data/themes/jade1/default.nix
index 7398c417933f..47bb7242db32 100644
--- a/nixpkgs/pkgs/data/themes/jade1/default.nix
+++ b/nixpkgs/pkgs/data/themes/jade1/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "theme-jade1";
-  version = "1.7";
+  version = "1.8";
 
   src = fetchFromGitHub {
     owner = "madmaxms";
     repo = "theme-jade-1";
     rev = "v${version}";
-    sha256 = "19vg95bf0ylmfhg0frs2k0k7c0wfn933h06wrklb9p5qy84hfig3";
+    sha256 = "1nvn2ghkdhilrsjpvl7r92aldvbs0nx0xc82jwrfaahi87dgfs8x";
   };
 
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
diff --git a/nixpkgs/pkgs/data/themes/marwaita-manjaro/default.nix b/nixpkgs/pkgs/data/themes/marwaita-manjaro/default.nix
new file mode 100644
index 000000000000..539d1a937bf5
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/marwaita-manjaro/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita-manjaro";
+  version = "1.5";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "0gd6dk7bfhnzmdsmdafc6f0kspnvzpvcmlb8h6q36ifvv0yg3jw4";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Manjaro Style (green version) of Marwaita GTK theme";
+    homepage = "https://www.pling.com/p/1351213/";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/marwaita-peppermint/default.nix b/nixpkgs/pkgs/data/themes/marwaita-peppermint/default.nix
new file mode 100644
index 000000000000..1822c36f0770
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/marwaita-peppermint/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita-peppermint";
+  version = "0.3";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "0g1n84px69wjjxclw76d59v8ccs4bkml71kzkvh12s9jcjw4zkc6";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Marwaita GTK theme with Peppermint Os Linux style";
+    homepage = "https://www.pling.com/p/1399569/";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/marwaita/default.nix b/nixpkgs/pkgs/data/themes/marwaita/default.nix
new file mode 100644
index 000000000000..291f437c3ea5
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/marwaita/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "marwaita";
+  version = "7.6.1";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = version;
+    sha256 = "1n7flwrngwh6gmh72j40apf8qk52162m93hsfhgxzrivkhg37zi0";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Marwaita* $out/share/themes
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "GTK theme supporting Budgie, Pantheon, Mate, Xfce4 and GNOME desktops";
+    homepage = "https://www.pling.com/p/1239855/";
+    license = licenses.cc0;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/matcha/default.nix b/nixpkgs/pkgs/data/themes/matcha/default.nix
index f0617e56d789..69b1908b8129 100644
--- a/nixpkgs/pkgs/data/themes/matcha/default.nix
+++ b/nixpkgs/pkgs/data/themes/matcha/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "matcha-gtk-theme";
-  version = "2020-05-24";
+  version = "2020-07-27";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "186ypnkyaqjw671ny363xmixw6zdvrgj9xvmsrdgr8i0h3z8qwr8";
+    sha256 = "09kzxd92zqissk0bk3aw06hsa05riq88xvwhlxfw2agig13cfrhw";
   };
 
   buildInputs = [ gdk-pixbuf librsvg ];
diff --git a/nixpkgs/pkgs/data/themes/obsidian2/default.nix b/nixpkgs/pkgs/data/themes/obsidian2/default.nix
index 3fb3af9436e2..cb6cd686aca5 100644
--- a/nixpkgs/pkgs/data/themes/obsidian2/default.nix
+++ b/nixpkgs/pkgs/data/themes/obsidian2/default.nix
@@ -1,29 +1,29 @@
-{ stdenv, fetchFromGitHub, gtk-engine-murrine }:
+{ stdenv, fetchurl, gtk-engine-murrine }:
 
 stdenv.mkDerivation rec {
   pname = "theme-obsidian2";
-  version = "2.12";
+  version = "2.14";
 
-  src = fetchFromGitHub {
-    owner = "madmaxms";
-    repo = "theme-obsidian-2";
-    rev = "v${version}";
-    sha256 = "1srl6wm6fjdc5pi9fjl5nghn4q40hn5jcxxl8qjvz8lkczylynnb";
+  src = fetchurl {
+    url = "https://github.com/madmaxms/theme-obsidian-2/releases/download/v${version}/obsidian-2-theme.tar.xz";
+    sha256 = "0q713s6fwdvbiirzkm91y9xdpc7x7ay432km0fx90vn4s24p718y";
   };
 
+  sourceRoot = ".";
+
   propagatedUserEnvPkgs = [ gtk-engine-murrine ];
 
   installPhase = ''
     runHook preInstall
     mkdir -p $out/share/themes
-    cp -a Obsidian-2 $out/share/themes
+    cp -a Obsidian-2* $out/share/themes
     runHook postInstall
   '';
 
   meta = with stdenv.lib; {
     description = "Gnome theme, based upon Adwaita-Maia dark skin";
     homepage = "https://github.com/madmaxms/theme-obsidian-2";
-    license = with licenses; [ gpl3 ];
+    license = with licenses; [ gpl3Only ];
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
   };
diff --git a/nixpkgs/pkgs/data/themes/pop-gtk/default.nix b/nixpkgs/pkgs/data/themes/pop-gtk/default.nix
index 730f7754d8f5..317d0ba86019 100644
--- a/nixpkgs/pkgs/data/themes/pop-gtk/default.nix
+++ b/nixpkgs/pkgs/data/themes/pop-gtk/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pop-gtk-theme";
-  version = "2020-04-22";
+  version = "2020-06-30";
 
   src = fetchFromGitHub {
     owner = "pop-os";
     repo = "gtk-theme";
-    rev = "b3f98dfd61cfff81f69cdc7f57bce7a9efaa36f4";
-    sha256 = "0vhcc694x33sgcpbqkrc5bycbd7017k4iii0mjjxgd22jd5lzgkb";
+    rev = "8c31be9f9257375bf7a049069cb4ecbac7d281a1";
+    sha256 = "16dxxazpllcxlbiblynqq4b65wfn9k1jab8dl69l819v73z303ky";
   };
 
   nativeBuildInputs = [
@@ -48,9 +48,9 @@ stdenv.mkDerivation rec {
     for file in $(find -name render-\*.sh); do
       substituteInPlace "$file" \
         --replace 'INKSCAPE="/usr/bin/inkscape"' \
-                  'INKSCAPE="inkscape"' \
+                  'INKSCAPE="${inkscape}/bin/inkscape"' \
         --replace 'OPTIPNG="/usr/bin/optipng"' \
-                  'OPTIPNG="optipng"'
+                  'OPTIPNG="${optipng}/bin/optipng"'
     done
   '';
 
diff --git a/nixpkgs/pkgs/data/themes/ubuntu-themes/default.nix b/nixpkgs/pkgs/data/themes/ubuntu-themes/default.nix
index 6be3ce1d80bd..14779e8d7a38 100644
--- a/nixpkgs/pkgs/data/themes/ubuntu-themes/default.nix
+++ b/nixpkgs/pkgs/data/themes/ubuntu-themes/default.nix
@@ -7,21 +7,21 @@
 , gtk3
 , hicolor-icon-theme
 , humanity-icon-theme
-, python2Packages
+, python3Packages
 }:
 
 stdenv.mkDerivation rec {
   pname = "ubuntu-themes";
-  version = "19.04";
+  version = "20.10";
 
   src = fetchurl {
     url = "https://launchpad.net/ubuntu/+archive/primary/+files/${pname}_${version}.orig.tar.gz";
-    sha256 = "1dy2dmiq2dj80nl2y4mf4ks0c7qmmnpk25wzv2rynwa3s2gkxgih";
+    sha256 = "00frn2dd4kjhlmwkasrx4a820fwrg8f8hmiwh51m63bpj00vwn0r";
   };
 
   nativeBuildInputs = [
     gtk3
-    python2Packages.python
+    python3Packages.python
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/data/themes/venta/default.nix b/nixpkgs/pkgs/data/themes/venta/default.nix
new file mode 100644
index 000000000000..1086aaeb7095
--- /dev/null
+++ b/nixpkgs/pkgs/data/themes/venta/default.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, gtk_engines
+, librsvg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "venta";
+  version = "2020-08-20";
+
+  src = fetchFromGitHub {
+    owner = "darkomarko42";
+    repo = pname;
+    rev = "f9b7ea560def5c9d25a14015d265ba559d3501ca";
+    sha256 = "13rdavspz1q3zk2h04jpd77hxdcifg42kd71qq13ryg4b5yzqqgb";
+  };
+
+  buildInputs = [
+    gdk-pixbuf
+    gtk_engines
+    librsvg
+  ];
+
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  dontBuild = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/themes
+    cp -a Venta* $out/share/themes
+    rm $out/share/themes/*/COPYING
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Gtk theme based on windows 10 style";
+    homepage = "https://www.pling.com/p/1386774/";
+    license = licenses.gpl3Only;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/data/themes/yaru/default.nix b/nixpkgs/pkgs/data/themes/yaru/default.nix
index b63d70b3c69a..8e8a56d09da4 100644
--- a/nixpkgs/pkgs/data/themes/yaru/default.nix
+++ b/nixpkgs/pkgs/data/themes/yaru/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "yaru";
-  version = "20.04.7";
+  version = "20.10.2";
 
   src = fetchFromGitHub {
     owner = "ubuntu";
     repo = "yaru";
     rev = version;
-    sha256 = "05fpr928kgyly7ac3zf6hfw9wqgc7fjn6980ih54iqc2qffcglsk";
+    sha256 = "0vxs17nbahrdix1q9xj06nflm344lfgj2mrafsvyfcr2isn61iv6";
   };
 
   nativeBuildInputs = [ meson sassc pkg-config glib ninja python3 ];
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix
new file mode 100644
index 000000000000..35ca865bc1b9
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/default.nix
@@ -0,0 +1,166 @@
+{ atk
+, autoreconfHook
+, cacert
+, fetchpatch
+, dbus
+, cinnamon-control-center
+, cinnamon-desktop
+, cinnamon-menus
+, cinnamon-session
+, cjs
+, fetchFromGitHub
+, gdk-pixbuf
+, libgnomekbd
+, glib
+, gobject-introspection
+, gtk3
+, intltool
+, json-glib
+, callPackage
+, libsoup
+, libstartup_notification
+, libXtst
+, muffin
+, networkmanager
+, pkgconfig
+, polkit
+, stdenv
+, wrapGAppsHook
+, libxml2
+, gtk-doc
+, gnome3
+, python3
+, keybinder3
+, cairo
+, xapps
+, upower
+, nemo
+, libnotify
+, accountsservice
+, gnome-online-accounts
+, glib-networking
+, pciutils
+, timezonemap
+, libnma
+}:
+
+let
+  libcroco = callPackage ./libcroco.nix { };
+in
+stdenv.mkDerivation rec {
+  pname = "cinnamon-common";
+  version = "4.6.1";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = "cinnamon";
+    rev = version;
+    sha256 = "149lhg953fa0glm250f76z2jzyaabh97jxiqkjnqvsk6bjk1d0bw";
+  };
+
+  patches = [
+    # remove dbus-glib
+    (fetchpatch {
+      url = "https://github.com/linuxmint/cinnamon/commit/ce99760fa15c3de2e095b9a5372eeaca646fbed1.patch";
+      sha256 = "0p2sbdi5w7sgblqbgisb6f8lcj1syzq5vlk0ilvwaqayxjylg8gz";
+    })
+  ];
+
+  buildInputs = [
+    # TODO: review if we really need this all
+    (python3.withPackages (pp: with pp; [ dbus-python setproctitle pygobject3 pycairo xapp pillow pytz tinycss2 pam pexpect distro ]))
+    atk
+    cacert
+    cinnamon-control-center
+    cinnamon-desktop
+    cinnamon-menus
+    cjs
+    dbus
+    gdk-pixbuf
+    glib
+    gtk3
+    json-glib
+    libcroco
+    libsoup
+    libstartup_notification
+    libXtst
+    muffin
+    networkmanager
+    pkgconfig
+    polkit
+    libxml2
+    libgnomekbd
+
+    # bindings
+    cairo
+    gnome3.caribou
+    keybinder3
+    upower
+    xapps
+    timezonemap
+    nemo
+    libnotify
+    accountsservice
+    libnma
+
+    # gsi bindings
+    gnome-online-accounts
+    glib-networking # for goa
+  ];
+
+  nativeBuildInputs = [
+    gobject-introspection
+    autoreconfHook
+    wrapGAppsHook
+    intltool
+    gtk-doc
+  ];
+
+  autoreconfPhase = ''
+    GTK_DOC_CHECK=false NOCONFIGURE=1 bash ./autogen.sh
+  '';
+
+  configureFlags = [ "--disable-static" "--with-ca-certificates=${cacert}/etc/ssl/certs/ca-bundle.crt" "--with-libxml=${libxml2.dev}/include/libxml2" "--enable-gtk-doc=no" ];
+
+  postPatch = ''
+    substituteInPlace src/Makefile.am \
+      --replace "\$(libdir)/muffin" "${muffin}/lib/muffin"
+    patchShebangs autogen.sh
+
+    find . -type f -exec sed -i \
+      -e s,/usr/share/cinnamon,$out/share/cinnamon,g \
+      -e s,/usr/share/locale,/run/current-system/sw/share/locale,g \
+      {} +
+
+    sed "s|/usr/share/sounds|/run/current-system/sw/share/sounds|g" -i ./files/usr/share/cinnamon/cinnamon-settings/bin/SettingsWidgets.py
+
+    sed "s|/usr/bin/upload-system-info|${xapps}/bin/upload-system-info|g" -i ./files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
+    sed "s|upload-system-info|${xapps}/bin/upload-system-info|g" -i ./files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
+
+    sed "s|/usr/bin/cinnamon-control-center|${cinnamon-control-center}/bin/cinnamon-control-center|g" -i ./files/usr/bin/cinnamon-settings
+    # this one really IS optional
+    sed "s|/usr/bin/gnome-control-center|/run/current-system/sw/bin/gnome-control-center|g" -i ./files/usr/bin/cinnamon-settings
+
+    sed "s|\"/usr/lib\"|\"${cinnamon-control-center}/lib\"|g" -i ./files/usr/share/cinnamon/cinnamon-settings/bin/capi.py
+
+    # another bunch of optional stuff
+    sed "s|/usr/bin|/run/current-system/sw/bin|g" -i ./files/usr/bin/cinnamon-launcher
+
+    sed 's|"lspci"|"${pciutils}/bin/lspci"|g' -i ./files/usr/share/cinnamon/cinnamon-settings/modules/cs_info.py
+
+    sed "s| cinnamon-session| ${cinnamon-session}/bin/cinnamon-session|g" -i ./files/usr/bin/cinnamon-session-cinnamon  -i ./files/usr/bin/cinnamon-session-cinnamon2d
+    sed "s|/usr/bin|$out/bin|g" -i ./files/usr/share/xsessions/cinnamon.desktop ./files/usr/share/xsessions/cinnamon2d.desktop
+  '';
+
+  passthru = {
+    providedSessions = ["cinnamon" "cinnamon2d"];
+  };
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/linuxmint/cinnamon";
+    description = "The Cinnamon desktop environment";
+    license = [ licenses.gpl2 ];
+    platforms = platforms.linux;
+    maintainers = teams.cinnamon.members;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/libcroco.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/libcroco.nix
new file mode 100644
index 000000000000..c6f6e350c9f6
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-common/libcroco.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchurl, pkgconfig, libxml2, glib, gnome3 }:
+
+stdenv.mkDerivation rec {
+  pname = "libcroco";
+  version = "0.6.13";
+
+  src = fetchurl {
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1m110rbj5d2raxcdp4iz0qp172284945awrsbdlq99ksmqsc4zkn";
+  };
+
+  outputs = [ "out" "dev" ];
+  outputBin = "dev";
+
+  configureFlags = stdenv.lib.optional stdenv.isDarwin "--disable-Bsymbolic";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libxml2 glib ];
+
+  passthru = {
+    updateScript = gnome3.updateScript {
+      packageName = pname;
+    };
+  };
+
+  meta = with stdenv.lib; {
+    description = "GNOME CSS2 parsing and manipulation toolkit";
+    homepage = https://gitlab.gnome.org/GNOME/libcroco;
+    license = licenses.lgpl2;
+    platforms = platforms.unix;
+  };
+}
+
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
index 454d65335540..ef934d2389f9 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-control-center/default.nix
@@ -6,7 +6,6 @@
 , gettext
 , cinnamon-desktop
 , intltool
-, libxslt
 , gtk3
 , libnotify
 , gnome-menus
@@ -37,22 +36,19 @@
 , modemmanager
 , xorg
 , gdk-pixbuf
-, cups
 }:
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-control-center";
-  version = "4.4.0";
+  version = "4.6.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "1rxm5n2prh182rxvjs7psxgjddikrjr8492j22060gmyvq55n7kc";
+    sha256 = "0ls2ys4x6qqp0j727c4n7a6319m4k1qsy1ybxkfzlzgf750v9xda";
   };
 
-  configureFlags = [ "--enable-systemd" ];
-
   buildInputs = [
     gtk3
     glib
@@ -61,7 +57,6 @@ stdenv.mkDerivation rec {
     cinnamon-menus
     libxml2
     dbus-glib
-    systemd
     polkit
     libgnomekbd
     libxklavier
@@ -76,7 +71,6 @@ stdenv.mkDerivation rec {
     xorg.libXxf86misc
     xorg.libxkbfile
     gdk-pixbuf
-    cups
   ];
 
   /* ./panels/datetime/test-timezone.c:4:#define TZ_DIR "/usr/share/zoneinfo/"
@@ -105,13 +99,14 @@ stdenv.mkDerivation rec {
     rm -rfv $out
   '';
 
+  doCheck = true;
+
   nativeBuildInputs = [
     pkgconfig
     autoreconfHook
     wrapGAppsHook
     gettext
     intltool
-    libxslt
     libtool
   ];
 
@@ -120,6 +115,6 @@ stdenv.mkDerivation rec {
     description = "A collection of configuration plugins used in cinnamon-settings";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = [ maintainers.mkg20001 ];
+    maintainers = teams.cinnamon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
index c5beff134b3f..cdb8e6a381f9 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-desktop/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-desktop";
-  version = "4.4.1";
+  version = "4.6.1";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "10db5rai8cbbzphvcwarr3hm1bd9rxchlc0hcghg7qnmvv52fq03";
+    sha256 = "0299m41vy4kcsi74z793ligvqj8nyy3fbzh6xz89jd8l3p9kgrz8";
   };
 
   outputs = [ "out" "dev" ];
@@ -72,6 +72,6 @@ stdenv.mkDerivation rec {
 
     license = [ licenses.gpl2 licenses.lgpl2 ];
     platforms = platforms.linux;
-    maintainers = [ maintainers.mkg20001 ];
+    maintainers = teams.cinnamon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix
new file mode 100644
index 000000000000..7f2e260e5df3
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-gsettings-overrides/default.nix
@@ -0,0 +1,57 @@
+{ stdenv
+, runCommand
+, nixos-artwork
+, glib
+, gtk3
+, gsettings-desktop-schemas
+, extraGSettingsOverrides ? ""
+, extraGSettingsOverridePackages ? []
+, mint-artwork
+
+, muffin
+, nemo
+, xapps
+, cinnamon-desktop
+, cinnamon-session
+, cinnamon-settings-daemon
+, cinnamon-common
+}:
+
+let
+
+  gsettingsOverridePackages = [
+    # from
+    mint-artwork
+
+    # on
+    muffin
+    nemo
+    xapps
+    cinnamon-desktop
+    cinnamon-session
+    cinnamon-settings-daemon
+    cinnamon-common
+    gtk3
+  ] ++ extraGSettingsOverridePackages;
+
+in
+
+with stdenv.lib;
+
+# TODO: Having https://github.com/NixOS/nixpkgs/issues/54150 would supersede this
+runCommand "cinnamon-gsettings-overrides" {}
+  ''
+     schema_dir=$out/share/gsettings-schemas/nixos-gsettings-overrides/glib-2.0/schemas
+
+     mkdir -p $schema_dir
+
+     ${concatMapStrings (pkg: "cp -rf ${glib.getSchemaPath pkg}/*.xml ${glib.getSchemaPath pkg}/*.gschema.override $schema_dir\n") gsettingsOverridePackages}
+
+     chmod -R a+w $out/share/gsettings-schemas/nixos-gsettings-overrides
+
+     cat - > $schema_dir/nixos-defaults.gschema.override <<- EOF
+     ${extraGSettingsOverrides}
+     EOF
+
+     ${glib.dev}/bin/glib-compile-schemas $schema_dir
+  ''
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
index 47242cdf38a5..bae9615fb9fa 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-menus/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-menus";
-  version = "4.4.0";
+  version = "4.6.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "0q4qj28swi2y93fj7pfil68l2cf9gmhbk6jmr8d70l54xf7sigsh";
+    sha256 = "00jzb3fd96ydi15lrnwnjai12wvka5zlandn9xc61s8iim48lplq";
   };
 
   buildInputs = [
@@ -36,6 +36,6 @@ stdenv.mkDerivation rec {
     description = "A menu system for the Cinnamon project";
     license = [ licenses.gpl2 licenses.lgpl2 ];
     platforms = platforms.linux;
-    maintainers = [ maintainers.mkg20001 ];
+    maintainers = teams.cinnamon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
new file mode 100644
index 000000000000..7074e6c329a4
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-screensaver/default.nix
@@ -0,0 +1,116 @@
+{ stdenv
+, fetchFromGitHub
+, pkgconfig
+, meson
+, ninja
+, glib
+, dbus
+, gettext
+, cinnamon-desktop
+, cinnamon-common
+, intltool
+, libxslt
+, gtk3
+, libnotify
+, libxkbfile
+, cinnamon-menus
+, libgnomekbd
+, libxklavier
+, networkmanager
+, libwacom
+, gnome3
+, libtool
+, wrapGAppsHook
+, tzdata
+, glibc
+, gobject-introspection
+, python3
+, pam
+, accountsservice
+, cairo
+, xapps
+, xorg
+, iso-flags-png-320x420
+, fetchpatch
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cinnamon-screensaver";
+  version = "4.6.0";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "068lh6wcmznfyvny7hx83q2rf4j96b6mv4a5v79y02k9110m7bsm";
+  };
+
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/linuxmint/cinnamon-screensaver/pull/349/commits/4a9e5715f406bf2ca1aacddd5fd8f830102a423c.patch";
+      sha256 = "0fmkmskry4c88zcw0i8vsmh6q14k3m937hqi77p5xi1p93imr46y";
+    })
+  ];
+
+  nativeBuildInputs = [
+    pkgconfig
+    wrapGAppsHook
+    gettext
+    intltool
+    dbus # for meson.build
+    libxslt
+    libtool
+    meson
+    ninja
+  ];
+
+  buildInputs = [
+    # from meson.build
+    gobject-introspection
+    gtk3
+    glib
+
+    xorg.libXext
+    xorg.libXinerama
+    xorg.libX11
+    xorg.libXrandr
+
+    (python3.withPackages (pp: with pp; [ pygobject3 setproctitle xapp pycairo ]))
+    xapps
+    pam
+    accountsservice
+    cairo
+    cinnamon-desktop
+    cinnamon-common
+    gnome3.libgnomekbd
+    gnome3.caribou
+
+    # things
+    iso-flags-png-320x420
+  ];
+
+  mesonFlags = [
+    # TODO: https://github.com/NixOS/nixpkgs/issues/36468
+    "-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
+  ];
+
+  postPatch = ''
+    # cscreensaver hardcodes absolute paths everywhere. Nuke from orbit.
+    find . -type f -exec sed -i \
+      -e s,/usr/share/locale,/run/current-system/sw/share/locale,g \
+      -e s,/usr/lib/cinnamon-screensaver,$out/lib,g \
+      -e s,/usr/share/cinnamon-screensaver,$out/share,g \
+      -e s,/usr/share/iso-flag-png,${iso-flags-png-320x420}/share/iso-flags-png,g \
+      {} +
+
+    sed "s|/usr/share/locale|/run/current-system/sw/share/locale|g" -i ./src/cinnamon-screensaver-main.py
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/linuxmint/cinnamon-screensaver";
+    description = "The Cinnamon screen locker and screensaver program";
+    license = [ licenses.gpl2 licenses.lgpl2 ];
+    platforms = platforms.linux;
+    maintainers = teams.cinnamon.members;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/0001-Add-dbus_glib-dependency.patch b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/0001-Add-dbus_glib-dependency.patch
deleted file mode 100644
index 156573c30e9a..000000000000
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/0001-Add-dbus_glib-dependency.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From ddc2c4faeec36675654a2f8f04c3011b807fdf79 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
-Date: Sun, 22 Mar 2020 07:36:25 +0100
-Subject: [PATCH] Add dbus_glib dependency
-
----
- cinnamon-session/meson.build | 2 +-
- meson.build                  | 1 +
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/cinnamon-session/meson.build b/cinnamon-session/meson.build
-index ee8916f..9dd9283 100644
---- a/cinnamon-session/meson.build
-+++ b/cinnamon-session/meson.build
-@@ -74,7 +74,7 @@ executable('cinnamon-session',
-     xext,
-     xrender,
-     xtest,
--    # elogind,
-+    dbus_glib,
-   ],
-   link_with: [
-     libegg,
-diff --git a/meson.build b/meson.build
-index 231a448..db306dc 100644
---- a/meson.build
-+++ b/meson.build
-@@ -48,6 +48,7 @@ else
-   gconf     = dependency('', required: false)
- endif
- conf.set('HAVE_GCONF', gconf.found())
-+dbus_glib = dependency('dbus-glib-1')
- 
- 
- gio_unix    = dependency('gio-unix-2.0',      required: false)
--- 
-2.25.1
-
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/0001-Use-dbus_glib-instead-of-elogind.patch b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/0001-Use-dbus_glib-instead-of-elogind.patch
new file mode 100644
index 000000000000..1b56b3903f3b
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/0001-Use-dbus_glib-instead-of-elogind.patch
@@ -0,0 +1,38 @@
+From eb4a1eae754f222b1be902c2f050704fb0511cf7 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Maciej=20Kr=C3=BCger?= <mkg20001@gmail.com>
+Date: Sat, 5 Sep 2020 23:19:23 +0200
+Subject: [PATCH] Use dbus_glib instead of elogind
+
+---
+ cinnamon-session/meson.build | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/cinnamon-session/meson.build b/cinnamon-session/meson.build
+index d8428dc..1f15115 100644
+--- a/cinnamon-session/meson.build
++++ b/cinnamon-session/meson.build
+@@ -56,6 +56,7 @@ cinnamon_session_sources = [
+   gdbus_sources,
+ ]
+ 
++dbus_glib = dependency('dbus-glib-1')
+ executable('cinnamon-session',
+   cinnamon_session_sources,
+   dependencies: [
+@@ -74,7 +75,7 @@ executable('cinnamon-session',
+     xext,
+     xrender,
+     xtest,
+-    elogind,
++    dbus_glib,
+   ],
+   link_with: [
+     libegg,
+@@ -98,4 +99,3 @@ foreach unit: units
+     dependencies: unit[2]
+   )
+ endforeach
+-
+-- 
+2.28.0
+
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix
index 96910052ac9f..9e1420959619 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-session/default.nix
@@ -27,17 +27,17 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-session";
-  version = "4.4.1";
+  version = "4.6.1";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "1bkhzgdinsk4ahp1b4jf50phxwv2da23rh35cmg9fbm5c88701ga";
+    sha256 = "13qqi3zqybz00czh0g5nqjx5iwna54cxd7mk9wkp30kj6raa4qca";
   };
 
   patches = [
-    ./0001-Add-dbus_glib-dependency.patch
+    ./0001-Use-dbus_glib-instead-of-elogind.patch
   ];
 
   buildInputs = [
@@ -100,6 +100,6 @@ stdenv.mkDerivation rec {
     description = "The Cinnamon session manager";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = [ maintainers.mkg20001 ];
+    maintainers = teams.cinnamon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
index 1dc58e3c3b5b..418107673a35 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-settings-daemon/default.nix
@@ -27,11 +27,12 @@
 , xorg
 , fontconfig
 , tzdata
+, nss
 }:
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-settings-daemon";
-  version = "4.4.0";
+  version = "4.6.4";
 
   /* csd-power-manager.c:50:10: fatal error: csd-power-proxy.h: No such file or directory
    #include "csd-power-proxy.h"
@@ -46,7 +47,7 @@ stdenv.mkDerivation rec {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "1h74d68a7hx85vv6ak26b85jq0wr56ps9rzfvqsnxwk81zxw2n7q";
+    sha256 = "1xcjzjfwnzvkv9jiyw8adsjyhz92almzhyfwb91115774zgqnb7m";
   };
 
   patches = [
@@ -81,6 +82,7 @@ stdenv.mkDerivation rec {
     xorg.libXtst
     xorg.libXfixes
     fontconfig
+    nss
   ];
 
   nativeBuildInputs = [
@@ -91,6 +93,8 @@ stdenv.mkDerivation rec {
     pkgconfig
   ];
 
+  outputs = [ "out" "dev" ];
+
   postPatch = ''
     sed "s|/usr/share/zoneinfo|${tzdata}/share/zoneinfo|g" -i plugins/datetime/system-timezone.h
   '';
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
index b2a3acd07229..142c586d8d64 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cinnamon-translations/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cinnamon-translations";
-  version = "4.4.2";
+  version = "4.6.2";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "1n1nkapcgxmbv0l8hrx5cf588pi4ifx12xbz46lq4p1ijrlfivba";
+    sha256 = "0zaghha62ibhg3rir6mrfy1z3v7p7v83b6glhmj9s51nxd86fyv6";
   };
 
   nativeBuildInputs = [
@@ -27,6 +27,6 @@ stdenv.mkDerivation rec {
     description = "Translations files for the Cinnamon desktop";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = [ maintainers.mkg20001 ];
+    maintainers = teams.cinnamon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix b/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix
index d67a5d8386a8..cdbcfa9683e5 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/cjs/default.nix
@@ -28,13 +28,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "cjs";
-  version = "4.4.0";
+  version = "4.6.0";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "0q5h2pbwysc6hwq5js3lwi6zn7i5qjjy070ynfhfn3z69lw5iz2d";
+    sha256 = "1caa43cplb40dm1bwnwca7z4yafvnrncm96k7mih6kg3m87fxqi5";
   };
 
   propagatedBuildInputs = [
@@ -83,6 +83,6 @@ stdenv.mkDerivation rec {
      mpl11
    ];
     platforms = platforms.linux;
-    maintainers = [ maintainers.mkg20001 ];
+    maintainers = teams.cinnamon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/cinnamon/default.nix b/nixpkgs/pkgs/desktops/cinnamon/default.nix
index b08c9e468f8a..68ccd76211d2 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/default.nix
@@ -1,16 +1,34 @@
 { pkgs, lib }:
 
 lib.makeScope pkgs.newScope (self: with self; {
+  iso-flags-png-320x420 = pkgs.iso-flags.overrideAttrs(p: p // {
+    buildPhase = "make png-country-320x240-fancy";
+    # installPhase = "mkdir -p $out/share && mv build/png-country-4x2-fancy/res-320x240 $out/share/iso-flags-png-320x420";
+    installPhase = "mkdir -p $out/share && mv build/png-country-4x2-fancy/res-320x240 $out/share/iso-flags-png";
+  });
+
+  iso-flags-svg = pkgs.iso-flags.overrideAttrs(p: p // {
+    buildPhase = "mkdir -p $out/share";
+    installPhase = "mv svg $out/share/iso-flags-svg";
+  });
+
+  # blueberry -> pkgs/tools/bluetooth/blueberry/default.nix
+  cinnamon-common = callPackage ./cinnamon-common { };
   cinnamon-control-center = callPackage ./cinnamon-control-center { };
   cinnamon-desktop = callPackage ./cinnamon-desktop { };
+  cinnamon-gsettings-overrides = callPackage ./cinnamon-gsettings-overrides { };
   cinnamon-menus = callPackage ./cinnamon-menus { };
   cinnamon-translations = callPackage ./cinnamon-translations { };
+  cinnamon-screensaver = callPackage ./cinnamon-screensaver { };
   cinnamon-session = callPackage ./cinnamon-session { };
   cinnamon-settings-daemon = callPackage ./cinnamon-settings-daemon { };
   cjs = callPackage ./cjs { };
   nemo = callPackage ./nemo { };
+  mint-artwork = callPackage ./mint-artwork { };
   mint-themes = callPackage ./mint-themes { };
+  mint-x-icons = callPackage ./mint-x-icons { };
   mint-y-icons = callPackage ./mint-y-icons { };
   muffin = callPackage ./muffin { };
   xapps = callPackage ./xapps { };
+  warpinator = callPackage ./warpinator { };
 })
diff --git a/nixpkgs/pkgs/desktops/cinnamon/mint-artwork/default.nix b/nixpkgs/pkgs/desktops/cinnamon/mint-artwork/default.nix
new file mode 100644
index 000000000000..b3a542e513e8
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/cinnamon/mint-artwork/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, fetchurl
+, glib
+, nixos-artwork
+}:
+
+stdenv.mkDerivation rec {
+  pname = "mint-artwork";
+  version = "1.4.3";
+
+  src = fetchurl {
+    url = "http://packages.linuxmint.com/pool/main/m/mint-artwork/mint-artwork_${version}.tar.xz";
+    sha256 = "126asxpg722qfg2wkwcr7bhsplchq3jn6bkdwf1scpc5za8dd62j";
+  };
+
+  nativeBuildInputs = [
+    glib
+  ];
+
+  installPhase = ''
+    mkdir $out
+
+    # note: we fuck up a bunch of stuff but idc
+    find . -type f -exec sed -i \
+      -e s,/usr/share/backgrounds/linuxmint/default_background.jpg,${nixos-artwork.wallpapers.simple-dark-gray}/share/artwork/gnome/nix-wallpaper-simple-dark-gray.png,g \
+      -e s,/usr/share,$out/share,g \
+      -e s,DMZ-White,Vanilla-DMZ,g \
+      -e s,DMZ-Black,Vanilla-DMZ-AA,g \
+      -e s,linuxmint-logo-5,cinnamon-symbolic,g \
+      -e s,^theme-name=Mint-X$,theme-name=Mint-X-Dark,g \
+      {} +
+
+    # fixup broken symlink
+    ln -sf ./sele_ring.jpg usr/share/backgrounds/linuxmint/default_background.jpg
+
+    mv etc $out/etc
+    mv usr/share $out/share
+  '';
+}
diff --git a/nixpkgs/pkgs/desktops/cinnamon/mint-themes/default.nix b/nixpkgs/pkgs/desktops/cinnamon/mint-themes/default.nix
index 770baf77bcda..a4bc81ec8ec9 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/mint-themes/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/mint-themes/default.nix
@@ -7,13 +7,14 @@
 
 stdenv.mkDerivation rec {
   pname = "mint-themes";
-  version = "1.8.0";
+  version = "1.8.6";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
-    rev = version;
-    sha256 = "0a8f2cmcl00y4607v5qr2zdcdjc0z74ixm2yakscvw6qzgsh9fac";
+    # commit is named 1.8.6, tags=404
+    rev = "fa0b9530f6e68c390aecd622b229072fcd08f05f";
+    sha256 = "0pgv5hglsscip5s7nv0mn301vkn0j6wp4rv34vr941yai1jfk2wb";
   };
 
   nativeBuildInputs = [
@@ -36,6 +37,6 @@ stdenv.mkDerivation rec {
     description = "Mint-X and Mint-Y themes for the cinnamon desktop";
     license = licenses.gpl3; # from debian/copyright
     platforms = platforms.linux;
-    maintainers = [ maintainers.mkg20001 ];
+    maintainers = teams.cinnamon.members;
   };
 }
diff --git a/nixpkgs/pkgs/data/icons/mint-x-icons/default.nix b/nixpkgs/pkgs/desktops/cinnamon/mint-x-icons/default.nix
index 213ba877dc66..2fbb3cc67bc3 100644
--- a/nixpkgs/pkgs/data/icons/mint-x-icons/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/mint-x-icons/default.nix
@@ -1,8 +1,9 @@
-{ stdenv
-, fetchurl
+{ fetchFromGitHub
+, stdenv
+, gnome3
 , gnome-icon-theme
-, gtk3
 , hicolor-icon-theme
+, gtk3
 , humanity-icon-theme
 , ubuntu-themes
 }:
@@ -11,20 +12,24 @@ stdenv.mkDerivation rec {
   pname = "mint-x-icons";
   version = "1.5.5";
 
-  src = fetchurl {
-    url = "http://packages.linuxmint.com/pool/main/m/${pname}/${pname}_${version}.tar.xz";
-    sha256 = "0nq3si06m98b71f33wism0bvlvib57rm96msf0wx852ginw3a5yd";
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    # commit is named 1.5.5, tags=404
+    rev = "ecfbeb62bba41e85a61099df467c4700ac63c1e0";
+    sha256 = "1yxm7h7giag5hmymgxsg16vc0rhxb2vn3piaksc463mic4vwfa3i";
   };
 
-  nativeBuildInputs = [
-    gtk3
-  ];
-
   propagatedBuildInputs = [
+    gnome3.adwaita-icon-theme
     gnome-icon-theme
     hicolor-icon-theme
     humanity-icon-theme
-    ubuntu-themes # provides the  parent icon theme: ubuntu-mono-dark
+    ubuntu-themes # provides ubuntu-mono-dark
+  ];
+
+  nativeBuildInputs = [
+    gtk3
   ];
 
   dontDropIconThemeCache = true;
@@ -32,8 +37,8 @@ stdenv.mkDerivation rec {
   installPhase = ''
     runHook preInstall
 
-    mkdir -p $out/share/icons
-    cp -vai usr/share/icons/* $out/share/icons
+    mkdir -p $out
+    mv usr/share $out
 
     for theme in $out/share/icons/*; do
       gtk-update-icon-cache $theme
@@ -43,10 +48,10 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "Mint/metal theme based on mintified versions of Clearlooks Revamp, Elementary and Faenza";
     homepage = "https://github.com/linuxmint/mint-x-icons";
-    license = licenses.gpl3Plus;
+    description = "Mint/metal theme based on mintified versions of Clearlooks Revamp, Elementary and Faenza";
+    license = licenses.gpl3Plus; # from debian/copyright
     platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
+    maintainers = teams.cinnamon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/cinnamon/mint-y-icons/default.nix b/nixpkgs/pkgs/desktops/cinnamon/mint-y-icons/default.nix
index a7e22dc3d033..d5f2271625c8 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/mint-y-icons/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/mint-y-icons/default.nix
@@ -8,13 +8,14 @@
 
 stdenv.mkDerivation rec {
   pname = "mint-y-icons";
-  version = "unstable-2020-03-21";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
-    rev = "f169a617bc344cb0b480b2b72f54cdd06af05255";
-    sha256 = "1c2a79ylk363i982czwwqcwc7cw6dyzlqphcypqm6nll7xlafq8s";
+    # commit is named 1.4.3, tags=404
+    rev = "c997af402d425889f2e4277966eebe473f7451f7";
+    sha256 = "0yfas949xm85a28vgjqm9ym3bhhynrq256w9vfs8aiqq9nbm18mf";
   };
 
   propagatedBuildInputs = [
@@ -47,6 +48,6 @@ stdenv.mkDerivation rec {
     description = "The Mint-Y icon theme";
     license = licenses.gpl3; # from debian/copyright
     platforms = platforms.linux;
-    maintainers = [ maintainers.mkg20001 ];
+    maintainers = teams.cinnamon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix b/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix
index 2913d4761ff8..e16ab1eb6769 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/muffin/default.nix
@@ -35,30 +35,15 @@
 
 stdenv.mkDerivation rec {
   pname = "muffin";
-  version = "4.4.2";
+  version = "4.6.3";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "1kzjw4a5p69j8x55vpbpn6gy8pkbbyii6kzw2nzbypmipgnnijw8";
+    sha256 = "1p8irzf20wari1id5rfx5sypywih1jsrmn0f83zlyhc5fxg02r5p";
   };
 
-  patches = [
-    # backport patch that disables wayland components via build flags
-    # https://github.com/linuxmint/muffin/pull/548#issuecomment-578316820
-    (fetchpatch {
-      url = "https://github.com/linuxmint/muffin/commit/f78bf5b309b3d306848f47cc241b31e9399999a7.patch";
-      sha256 = "1c79aa9w2v23xlz86x3l42pavwrqx5d6nmfd9nms29hjsk8mpf4i";
-    })
-    # mute some warnings that caused build failures
-    # https://github.com/linuxmint/muffin/issues/535#issuecomment-536917143
-    (fetchpatch {
-      url = "https://src.fedoraproject.org/rpms/muffin/raw/6b0af3a22173e374804371a1cca74e23d696dd37/f/0001-fix-warnings-when-compiling.patch";
-      sha256 = "15wdbn3afn3103v7rq1icp8n0vqqwrrya03h0g2rzqlrsc7wrvzw";
-    })
-  ];
-
   buildInputs = [
     gtk3
     glib
@@ -110,6 +95,6 @@ stdenv.mkDerivation rec {
     description = "The window management library for the Cinnamon desktop (libmuffin) and its sample WM binary (muffin)";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = [ maintainers.mkg20001 ];
+    maintainers = teams.cinnamon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix b/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix
index 419aaf249f70..5037f2351208 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/nemo/default.nix
@@ -20,7 +20,7 @@
 
 stdenv.mkDerivation rec {
   pname = "nemo";
-  version = "4.4.1";
+  version = "4.6.5";
 
   # TODO: add plugins support (see https://github.com/NixOS/nixpkgs/issues/78327)
 
@@ -28,16 +28,9 @@ stdenv.mkDerivation rec {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "0sskq0rssxvna937md446x1489hkhxys1zq03hvl8asjqa259w2q";
+    sha256 = "04rgdph9pxdj5wzzv2i0pgyhg3s74nh9jf1ry9z6v5bvv222ili4";
   };
 
-  patches = [
-    (fetchpatch { # details see https://github.com/linuxmint/nemo/pull/2303
-      url = "https://github.com/linuxmint/nemo/pull/2303/commits/9c1ec7812abe712419317df07d6b64623e8f639d.patch";
-      sha256 = "09dz7lq3i47rbvycawrxwgjmd9g1mhb76ibx2vq85wck6r08arml";
-    })
-  ];
-
   outputs = [ "out" "dev" ];
 
   buildInputs = [
@@ -71,6 +64,6 @@ stdenv.mkDerivation rec {
     description = "File browser for Cinnamon";
     license = [ licenses.gpl2 licenses.lgpl2 ];
     platforms = platforms.linux;
-    maintainers = [ maintainers.mkg20001 ];
+    maintainers = teams.cinnamon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/cinnamon/warpinator/default.nix b/nixpkgs/pkgs/desktops/cinnamon/warpinator/default.nix
new file mode 100644
index 000000000000..5e37cff3d0a8
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/cinnamon/warpinator/default.nix
@@ -0,0 +1,79 @@
+{ fetchFromGitHub
+, stdenv
+, gobject-introspection
+, meson
+, ninja
+, python3
+, gtk3
+, gdk-pixbuf
+, wrapGAppsHook
+, gettext
+, polkit
+, glib
+}:
+
+python3.pkgs.buildPythonApplication rec  {
+  pname = "warpinator";
+  version = "1.0.8";
+
+  format = "other";
+  doCheck = false;
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "0n1b50j2w76qnhfj5yg5q2j7fgxr9gbmzpazmbml4q41h8ybcmxm";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    gobject-introspection
+    wrapGAppsHook
+    gettext
+    polkit # for its gettext
+  ];
+
+  buildInputs = [
+    glib
+    gtk3
+    gdk-pixbuf
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    grpcio-tools
+    protobuf
+    pygobject3
+    setproctitle
+    xapp
+    zeroconf
+    grpcio
+    setuptools
+    cryptography
+    pynacl
+    netifaces
+  ];
+
+  postPatch = ''
+    chmod +x install-scripts/*
+    patchShebangs .
+
+    find . -type f -exec sed -i \
+      -e s,/usr/libexec/warpinator,$out/libexec/warpinator,g \
+      {} +
+  '';
+
+  preFixup = ''
+    # these get loaded via import from bin, so don't need wrapping
+    chmod -x+X $out/libexec/warpinator/*.py
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/linuxmint/warpinator";
+    description = "Share files across the LAN";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/cinnamon/xapps/default.nix b/nixpkgs/pkgs/desktops/cinnamon/xapps/default.nix
index ff02720e8021..d82cb0514237 100644
--- a/nixpkgs/pkgs/desktops/cinnamon/xapps/default.nix
+++ b/nixpkgs/pkgs/desktops/cinnamon/xapps/default.nix
@@ -16,19 +16,28 @@
 , wrapGAppsHook
 , inxi
 , mate
+, dbus
+, libdbusmenu-gtk3
 }:
 
 stdenv.mkDerivation rec {
   pname = "xapps";
-  version = "1.6.10";
+  version = "1.8.9";
 
   outputs = [ "out" "dev" ];
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/linuxmint/xapp/pull/110/commits/208563d4e2bbcfbeb4425d05f649867065c37615.patch";
+      sha256 = "0brqndfgawhayrm36cjh6fkff274729jivjq3h5jx93lprvl2zih";
+    })
+  ];
+
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = pname;
     rev = version;
-    sha256 = "1jkxvqv9fxf9il5qfyddn4j4nkxgbxlil8vizbx99xz0kafb81vp";
+    sha256 = "01jx7612p0c0pi0r7fn5g08s6zjfmq1gfm5hi0fkzl0fxf2cx7a7";
   };
 
   # TODO: https://github.com/NixOS/nixpkgs/issues/36468
@@ -36,13 +45,6 @@ stdenv.mkDerivation rec {
     "-I${glib.dev}/include/gio-unix-2.0"
   ];
 
-  patches = [
-    (fetchpatch { # details see https://github.com/linuxmint/xapps/pull/65
-      url = "https://github.com/linuxmint/xapps/compare/d361d9cf357fade59b4bb68df2dcb2c0c39f90e1...2dfe82ec68981ea046345b2be349bd56293579f7.diff";
-      sha256 = "0sffclamvjas8ad57kxrg0vrgrd95xsk0xdl53dc3yivpxkfxrnk";
-    })
-  ];
-
   nativeBuildInputs = [
     meson
     ninja
@@ -63,6 +65,8 @@ stdenv.mkDerivation rec {
     xorg.libxkbfile
     python3.pkgs.pygobject3 # for .pc file
     mate.mate-panel # for gobject-introspection
+    dbus
+    libdbusmenu-gtk3
   ];
 
   # Requires in xapp.pc
@@ -79,14 +83,9 @@ stdenv.mkDerivation rec {
   postPatch = ''
     chmod +x schemas/meson_install_schemas.py # patchShebangs requires executable file
 
-    # The fetchpatch hook removes the renames, so postPatch has to rename those files, remove once PR merged
-    mv files/usr/bin/pastebin scripts/pastebin
-    mv files/usr/bin/upload-system-info scripts/upload-system-info
-    mv files/usr/bin/xfce4-set-wallpaper scripts/xfce4-set-wallpaper
-    mv files/usr/share/icons/hicolor icons
-
     patchShebangs \
       libxapp/g-codegen.py \
+      meson-scripts/g-codegen.py \
       schemas/meson_install_schemas.py
 
     # Patch pastebin & inxi location
@@ -99,6 +98,6 @@ stdenv.mkDerivation rec {
     description = "Cross-desktop libraries and common resources";
     license = licenses.lgpl3;
     platforms = platforms.linux;
-    maintainers = [ maintainers.mkg20001 ];
+    maintainers = teams.cinnamon.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-api/default.nix b/nixpkgs/pkgs/desktops/deepin/dde-api/default.nix
deleted file mode 100644
index 011be982df5b..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-api/default.nix
+++ /dev/null
@@ -1,127 +0,0 @@
-{ stdenv
-, buildGoPackage
-, fetchFromGitHub
-, pkgconfig
-, alsaLib
-, bc
-, blur-effect
-, coreutils
-, deepin
-, deepin-gettext-tools
-, fontconfig
-, go
-, go-dbus-factory
-, go-gir-generator
-, go-lib
-, grub2
-, gtk3
-, libcanberra
-, libgudev
-, librsvg
-, poppler
-, pulseaudio
-, rfkill
-, xcur2png
-}:
-
-buildGoPackage rec {
-  pname = "dde-api";
-  version = "5.0.0";
-
-  goPackagePath = "pkg.deepin.io/dde/api";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0iv4krj6dqdknwvmax7aj40k1h96259kqcfnljadrwpl7cvsvp5p";
-  };
-
-  goDeps = ./deps.nix;
-
-  nativeBuildInputs = [
-    pkgconfig
-    deepin-gettext-tools # build
-    deepin.setupHook
-
-    # TODO: using $PATH to find run time executable does not work with cross compiling
-    bc          # run (to adjust grub theme?)
-    blur-effect # run (is it really needed?)
-    coreutils   # run (is it really needed?)
-    fontconfig  # run (is it really needed?)
-    rfkill      # run
-    xcur2png    # run
-    grub2       # run (is it really needed?)
-  ];
-
-  buildInputs = [
-    go-dbus-factory      # needed
-    go-gir-generator     # needed
-    go-lib               # build
-
-    alsaLib     # needed
-    #glib        # ? arch
-    gtk3        # build run
-    libcanberra # build run
-    libgudev    # needed
-    librsvg     # build run
-    poppler     # build run
-    pulseaudio  # needed
-    #locales     # run (locale-helper needs locale-gen, which is unavailable on NixOS?)
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-
-    fixPath $out /usr/lib/deepin-api \
-      lunar-calendar/main.go \
-      misc/services/com.deepin.api.CursorHelper.service \
-      misc/services/com.deepin.api.Graphic.service \
-      misc/services/com.deepin.api.LunarCalendar.service \
-      misc/services/com.deepin.api.Pinyin.service \
-      misc/system-services/com.deepin.api.Device.service \
-      misc/system-services/com.deepin.api.LocaleHelper.service \
-      misc/system-services/com.deepin.api.SoundThemePlayer.service \
-      misc/systemd/system/deepin-shutdown-sound.service \
-      theme_thumb/gtk/gtk.go \
-      thumbnails/gtk/gtk.go
-    fixPath $out /boot/grub Makefile     # TODO: confirm where to install grub themes
-    fixPath $out /var Makefile
-
-    # This package wants to install polkit local authority files into
-    # /var/lib. Nix does not allow a package to install files into /var/lib
-    # because it is outside of the Nix store and should contain applications
-    # state information (persistent data modified by programs as they
-    # run). Polkit looks for them in both /etc/polkit-1 and
-    # /var/lib/polkit-1 (with /etc having priority over /var/lib). An
-    # work around is to install them to $out/etc and simlnk them to
-    # /etc in the deepin module.
-
-    sed -i -e "s,/var/lib/polkit-1,/etc/polkit-1," Makefile
-  '';
-
-  buildPhase = ''
-    export GOCACHE="$TMPDIR/go-cache";
-    make -C go/src/${goPackagePath}
-  '';
-
-  installPhase = ''
-    make install PREFIX="$out" SYSTEMD_LIB_DIR="$out/lib" -C go/src/${goPackagePath}
-    mv $out/share/gocode $out/share/go
-    remove-references-to -t ${go} $out/lib/deepin-api/*
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Go-lang bindings for dde-daemon";
-    homepage = "https://github.com/linuxdeepin/dde-api";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-api/deps.nix b/nixpkgs/pkgs/desktops/deepin/dde-api/deps.nix
deleted file mode 100644
index 5ebe1f6af952..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-api/deps.nix
+++ /dev/null
@@ -1,102 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/alecthomas/template";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/template";
-      rev = "fb15b899a75114aa79cc930e33c46b577cc664b1";
-      sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev = "f65c72e2690dc4b403c8bd637baf4611cd4c069b";
-      sha256 = "04jyqm7m3m01ppfy1f9xk4qvrwvs78q9zml6llyf2b3v5k6b2bbc";
-    };
-  }
-  {
-    goPackagePath = "github.com/cryptix/wav";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cryptix/wav";
-      rev = "8bdace674401f0bd3b63c65479b6a6ff1f9d5e44";
-      sha256 = "18nyqv0ic35fs9fny8sj84c00vbxs8mnric6vr6yl42624fh5id6";
-    };
-  }
-  {
-    goPackagePath = "github.com/disintegration/imaging";
-    fetch = {
-      type = "git";
-      url = "https://github.com/disintegration/imaging";
-      rev = "9aab30e6aa535fe3337b489b76759ef97dfaf362";
-      sha256 = "015amm3x989hl3r4gxnixj602fl9j8z53n0lrq804cbfbk7a31fw";
-    };
-  }
-  {
-    goPackagePath = "github.com/fogleman/gg";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fogleman/gg";
-      rev = "4dc34561c649343936bb2d29e23959bd6d98ab12";
-      sha256 = "1x1finzdrr80dd3r7wvf7zb184yjf4dawz7s581p2dr64dcialww";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/freetype";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/freetype";
-      rev = "e2365dfdc4a05e4b8299a783240d4a7d5a65d4e4";
-      sha256 = "194w3djc6fv1rgcjqds085b9fq074panc5vw582bcb8dbfzsrqxc";
-    };
-  }
-  {
-    goPackagePath = "github.com/linuxdeepin/go-x11-client";
-    fetch = {
-      type = "git";
-      url = "https://github.com/linuxdeepin/go-x11-client";
-      rev = "b5b01565d224d5ccd5a4143d9099acceb23e182a";
-      sha256 = "1lnffjp8bqy6f8caw6drg1js6hny5w7432riqchcrcd4q85d94rs";
-    };
-  }
-  {
-    goPackagePath = "github.com/nfnt/resize";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nfnt/resize";
-      rev = "83c6a9932646f83e3267f353373d47347b6036b2";
-      sha256 = "005cpiwq28krbjf0zjwpfh63rp4s4is58700idn24fs3g7wdbwya";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/image";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/image";
-      rev = "e7c1f5e7dbb87d8921928a6d9fc52fb31ce73b24";
-      sha256 = "0czp897aicqw1dgybj0hc2zzwb20rhqkdqm7siqci3yk7yk9cymf";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "daa7c04131f568e31c51927b359a2d197a357058";
-      sha256 = "17gbfvb5iqyayzw0zd6q218zsbf7x74rflvn18wkxvsw95n1y54h";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v2";
-      rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-calendar/default.nix b/nixpkgs/pkgs/desktops/deepin/dde-calendar/default.nix
deleted file mode 100644
index 094f3447c6b7..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-calendar/default.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, cmake
-, qttools
-, deepin-gettext-tools
-, dtkcore
-, dtkwidget
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "dde-calendar";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1zzr3crkz4l5l135y0m53vqhv7fkrbvbspk8295swz9gsm3f7ah9";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    pkgconfig
-    qttools
-    deepin-gettext-tools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    patchShebangs translate_generation.sh
-    patchShebangs translate_desktop.sh
-
-    fixPath $out /usr com.deepin.Calendar.service
-
-    sed -i translate_desktop.sh \
-      -e "s,/usr/bin/deepin-desktop-ts-convert,deepin-desktop-ts-convert,"
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Calendar for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/dde-calendar";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-control-center/default.nix b/nixpkgs/pkgs/desktops/deepin/dde-control-center/default.nix
deleted file mode 100644
index 850e39b93676..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-control-center/default.nix
+++ /dev/null
@@ -1,150 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, cmake
-, deepin
-, qttools
-, qtdeclarative
-, networkmanager
-, qtsvg
-, qtx11extras
-, dtkcore
-, dtkwidget
-, geoip
-, gsettings-qt
-, dde-network-utils
-, networkmanager-qt
-, xorg
-, mtdev
-, fontconfig
-, freetype
-, dde-api
-, dde-daemon
-, qt5integration
-, deepin-desktop-base
-, deepin-desktop-schemas
-, dbus
-, systemd
-, dde-qt-dbus-factory
-, qtmultimedia
-, qtbase
-, glib
-, gnome3
-, which
-, substituteAll
-, tzdata
-, wrapGAppsHook
-}:
-
-mkDerivation rec {
-  pname = "dde-control-center";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "10bx8bpvi3ib32a3l4nyb1j0iq3bch8jm9wfm6d5v0ym1zb92x3b";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    deepin.setupHook
-    pkgconfig
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    dde-api
-    dde-daemon
-    dde-network-utils
-    dde-qt-dbus-factory
-    deepin-desktop-base
-    deepin-desktop-schemas
-    dtkcore
-    dtkwidget
-    fontconfig
-    freetype
-    geoip
-    glib
-    gnome3.networkmanager-l2tp
-    gnome3.networkmanager-openconnect
-    gnome3.networkmanager-openvpn
-    gnome3.networkmanager-vpnc
-    gsettings-qt
-    mtdev
-    networkmanager-qt
-    qt5integration
-    qtbase
-    qtdeclarative
-    qtmultimedia
-    qtsvg
-    qttools
-    qtx11extras
-    xorg.libX11
-    xorg.libXext
-    xorg.libXrandr
-    xorg.libxcb
-  ];
-
-  cmakeFlags = [
-    "-DDISABLE_SYS_UPDATE=YES"
-    "-DDCC_DISABLE_GRUB=YES"
-  ];
-
-  patches = [
-    (substituteAll {
-      src = ./fix-paths.patch;
-      nmcli = "${networkmanager}/bin/nmcli";
-      which = "${which}/bin/which";
-      # not packaged
-      # dman = "${deepin-manual}/bin/dman";
-      inherit tzdata;
-      # exclusive to deepin linux?
-      # allows to synchronize configuration files to cloud networks
-      # deepin_sync = "${deepin-sync}";
-    })
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-
-    patchShebangs translate_ts2desktop.sh
-    patchShebangs translate_generation.sh
-    patchShebangs translate_desktop2ts.sh
-
-    fixPath $out /usr dde-control-center-autostart.desktop \
-      com.deepin.dde.ControlCenter.service \
-      src/frame/widgets/utils.h
-
-    substituteInPlace dde-control-center.desktop \
-      --replace "dbus-send" "${dbus}/bin/dbus-send"
-    substituteInPlace com.deepin.controlcenter.addomain.policy \
-      --replace "/bin/systemctl" "/run/current-system/sw/bin/systemctl"
-  '';
-
-  dontWrapQtApps = true;
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      "''${qtWrapperArgs[@]}"
-    )
-  '';
-
-  postFixup = ''
-    # debuging
-    searchForUnresolvedDLL $out
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Control panel of Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/dde-control-center";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo worldofpeace ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-control-center/fix-paths.patch b/nixpkgs/pkgs/desktops/deepin/dde-control-center/fix-paths.patch
deleted file mode 100644
index 2c6e204d3437..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-control-center/fix-paths.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-diff --git a/src/frame/frame.cpp b/src/frame/frame.cpp
-index 90d06f8..7cdad04 100644
---- a/src/frame/frame.cpp
-+++ b/src/frame/frame.cpp
-@@ -375,7 +375,7 @@ void Frame::keyPressEvent(QKeyEvent *e)
- #ifdef QT_DEBUG
-     case Qt::Key_Escape:        qApp->quit();                               break;
- #endif
--    case Qt::Key_F1:            QProcess::startDetached("dman", QStringList("dde"));  break;
-+    case Qt::Key_F1:            QProcess::startDetached("@dman@", QStringList("dde"));  break;
-     default:;
-     }
- }
-diff --git a/src/frame/modules/datetime/timezone_dialog/timezone.cpp b/src/frame/modules/datetime/timezone_dialog/timezone.cpp
-index 3dd4aad..5f1b363 100644
---- a/src/frame/modules/datetime/timezone_dialog/timezone.cpp
-+++ b/src/frame/modules/datetime/timezone_dialog/timezone.cpp
-@@ -46,7 +46,7 @@ namespace installer {
- namespace {
- 
- // Absolute path to zone.tab file.
--const char kZoneTabFile[] = "/usr/share/zoneinfo/zone.tab";
-+const char kZoneTabFile[] = "@tzdata@/share/zoneinfo/zone.tab";
- 
- // Absolute path to backward timezone file.
- const char kTimezoneAliasFile[] = "/timezone_alias";
-diff --git a/src/frame/modules/network/connectionvpneditpage.cpp b/src/frame/modules/network/connectionvpneditpage.cpp
-index e292865..95c5a2b 100644
---- a/src/frame/modules/network/connectionvpneditpage.cpp
-+++ b/src/frame/modules/network/connectionvpneditpage.cpp
-@@ -215,7 +215,7 @@ void ConnectionVpnEditPage::exportConnConfig()
-     qDebug() << Q_FUNC_INFO << args;
- 
-     QProcess p;
--    p.start("nmcli", args);
-+    p.start("@nmcli@", args);
-     p.waitForFinished();
-     qDebug() << p.readAllStandardOutput();
-     qDebug() << p.readAllStandardError();
-diff --git a/src/frame/modules/network/vpnpage.cpp b/src/frame/modules/network/vpnpage.cpp
-index 521a603..450d1a6 100644
---- a/src/frame/modules/network/vpnpage.cpp
-+++ b/src/frame/modules/network/vpnpage.cpp
-@@ -224,7 +224,7 @@ void VpnPage::importVPN()
-     qDebug() << args;
- 
-     QProcess p;
--    p.start("nmcli", args);
-+    p.start("@nmcli@", args);
-     p.waitForFinished();
-     const auto stat = p.exitCode();
-     const QString output = p.readAllStandardOutput();
-diff --git a/src/frame/modules/sync/syncworker.cpp b/src/frame/modules/sync/syncworker.cpp
-index 3f929bf..6f240d9 100644
---- a/src/frame/modules/sync/syncworker.cpp
-+++ b/src/frame/modules/sync/syncworker.cpp
-@@ -24,7 +24,7 @@ SyncWorker::SyncWorker(SyncModel *model, QObject *parent)
- 
-     m_model->setSyncIsValid(
-         QProcess::execute(
--            "which", QStringList() << "/usr/lib/deepin-sync-daemon/deepin-sync-daemon") ==
-+            "@which@", QStringList() << "@deepin_sync@/lib/deepin-sync-daemon/deepin-sync-daemon") ==
-             0 &&
-         valueByQSettings<bool>(DCC_CONFIG_FILES, "CloudSync", "AllowCloudSync", false));
- }
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-daemon/default.nix b/nixpkgs/pkgs/desktops/deepin/dde-daemon/default.nix
deleted file mode 100644
index c4edcef15af3..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-daemon/default.nix
+++ /dev/null
@@ -1,159 +0,0 @@
-{ stdenv
-, buildGoPackage
-, fetchFromGitHub
-, fetchpatch
-, pkgconfig
-, go-dbus-factory
-, go-gir-generator
-, go-lib
-, deepin-gettext-tools
-, gettext
-, dde-api
-, deepin-desktop-schemas
-, deepin-wallpapers
-, deepin-desktop-base
-, alsaLib
-, glib
-, gtk3
-, libgudev
-, libinput
-, libnl
-, librsvg
-, linux-pam
-, networkmanager
-, pulseaudio
-, python3
-, hicolor-icon-theme
-, glibc
-, tzdata
-, go
-, deepin
-, makeWrapper
-, xkeyboard_config
-, wrapGAppsHook
-}:
-
-buildGoPackage rec {
-  pname = "dde-daemon";
-  version = "5.0.0";
-
-  goPackagePath = "pkg.deepin.io/dde/daemon";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "08jri31bvzbaxaq78rpp46ndv0li2dij63hakvd9b9gs786srql1";
-  };
-
-  patches = [
-    # https://github.com/linuxdeepin/dde-daemon/issues/51
-    (fetchpatch {
-      url = "https://github.com/jouyouyun/tap-gesture-patches/raw/master/patches/dde-daemon_3.8.0.patch";
-      sha256 = "1ampdsp9zlg263flswdw9gj10n7gxh7zi6w6z9jgh29xlai05pvh";
-    })
-  ];
-
-  goDeps = ./deps.nix;
-
-  nativeBuildInputs = [
-    pkgconfig
-    deepin-gettext-tools
-    gettext
-    networkmanager
-    networkmanager.dev
-    python3
-    makeWrapper
-    wrapGAppsHook
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    go-dbus-factory
-    go-gir-generator
-    go-lib
-    linux-pam
-
-    alsaLib
-    dde-api
-    deepin-desktop-base
-    deepin-desktop-schemas
-    deepin-wallpapers
-    glib
-    libgudev
-    gtk3
-    hicolor-icon-theme
-    libinput
-    libnl
-    librsvg
-    pulseaudio
-    tzdata
-    xkeyboard_config
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-    patchShebangs network/nm_generator/gen_nm_consts.py
-
-    fixPath $out /usr/share/dde/data launcher/manager.go dock/dock_manager_init.go
-    fixPath $out /usr/share/dde-daemon launcher/manager.go gesture/config.go
-    fixPath ${networkmanager.dev} /usr/share/gir-1.0/NM-1.0.gir network/nm_generator/Makefile
-    fixPath ${glibc.bin} /usr/bin/getconf systeminfo/utils.go
-    fixPath ${deepin-desktop-base} /etc/deepin-version systeminfo/version.go accounts/deepinversion.go
-    fixPath ${tzdata} /usr/share/zoneinfo timedate/zoneinfo/zone.go
-    fixPath ${dde-api} /usr/lib/deepin-api grub2/modify_manger.go accounts/image_blur.go
-    fixPath ${deepin-wallpapers} /usr/share/wallpapers appearance/background/list.go accounts/user.go
-    fixPath ${xkeyboard_config} /usr/share/X11/xkb inputdevices/layout_list.go
-
-    # TODO: deepin-system-monitor comes from dde-extra
-
-    sed -i -e "s|{DESTDIR}/etc|{DESTDIR}$out/etc|" Makefile
-    sed -i -e "s|{DESTDIR}/lib|{DESTDIR}$out/lib|" Makefile
-    sed -i -e "s|{DESTDIR}/var|{DESTDIR}$out/var|" Makefile
-
-    find -type f -exec sed -i -e "s,/usr/lib/deepin-daemon,$out/lib/deepin-daemon," {} +
-
-    # This package wants to install polkit local authority files into
-    # /var/lib. Nix does not allow a package to install files into /var/lib
-    # because it is outside of the Nix store and should contain applications
-    # state information (persistent data modified by programs as they
-    # run). Polkit looks for them in both /etc/polkit-1 and
-    # /var/lib/polkit-1 (with /etc having priority over /var/lib). An
-    # work around is to install them to $out/etc and simlnk them to
-    # /etc in the deepin module.
-
-    sed -i -e "s,/var/lib/polkit-1,/etc/polkit-1," Makefile
-  '';
-
-  buildPhase = ''
-    export PAM_MODULE_DIR="$out/lib/security"
-    # compilation of the nm module is failing
-    #make -C go/src/${goPackagePath}/network/nm_generator gen-nm-code
-    make -C go/src/${goPackagePath}
-  '';
-
-  installPhase = ''
-    make install PREFIX="$out" -C go/src/${goPackagePath}
-    remove-references-to -t ${go} $out/lib/deepin-daemon/*
-    searchHardCodedPaths $out
-  '';
-
-  postFixup = ''
-    # wrapGAppsHook does not work with binaries outside of $out/bin or $out/libexec
-    for binary in $out/lib/deepin-daemon/*; do
-      wrapGApp "$binary"
-    done
-
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Daemon for handling Deepin Desktop Environment session settings";
-    homepage = "https://github.com/linuxdeepin/dde-daemon";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-daemon/deps.nix b/nixpkgs/pkgs/desktops/deepin/dde-daemon/deps.nix
deleted file mode 100644
index bcc5ab81808f..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-daemon/deps.nix
+++ /dev/null
@@ -1,111 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/alecthomas/template";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/template";
-      rev = "fb15b899a75114aa79cc930e33c46b577cc664b1";
-      sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev = "f65c72e2690dc4b403c8bd637baf4611cd4c069b";
-      sha256 = "04jyqm7m3m01ppfy1f9xk4qvrwvs78q9zml6llyf2b3v5k6b2bbc";
-    };
-  }
-  {
-    goPackagePath = "github.com/axgle/mahonia";
-    fetch = {
-      type = "git";
-      url = "https://github.com/axgle/mahonia";
-      rev = "3358181d7394e26beccfae0ffde05193ef3be33a";
-      sha256 = "0b8wsrxmv8a0cqbnsg55lpf29pxy2zw8azvgh3ck664lqpcfybhq";
-    };
-  }
-  {
-    goPackagePath = "github.com/cryptix/wav";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cryptix/wav";
-      rev = "8bdace674401f0bd3b63c65479b6a6ff1f9d5e44";
-      sha256 = "18nyqv0ic35fs9fny8sj84c00vbxs8mnric6vr6yl42624fh5id6";
-    };
-  }
-  {
-    goPackagePath = "github.com/gosexy/gettext";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gosexy/gettext";
-      rev = "74466a0a0c4a62fea38f44aa161d4bbfbe79dd6b";
-      sha256 = "0asphx8nd7zmp88wk6aakk5292np7yw73akvfdvlvs9q5r5ahkgi";
-    };
-  }
-  {
-    goPackagePath = "github.com/linuxdeepin/go-x11-client";
-    fetch = {
-      type = "git";
-      url = "https://github.com/linuxdeepin/go-x11-client";
-      rev = "b5b01565d224d5ccd5a4143d9099acceb23e182a";
-      sha256 = "1lnffjp8bqy6f8caw6drg1js6hny5w7432riqchcrcd4q85d94rs";
-    };
-  }
-  {
-    goPackagePath = "github.com/msteinert/pam";
-    fetch = {
-      type = "git";
-      url = "https://github.com/msteinert/pam";
-      rev = "f29b9f28d6f9a1f6c4e6fd5db731999eb946574b";
-      sha256 = "1v5z51mgyz2glm7v0mg60xs1as88wx6cqhys2khc5d3khkr8q0qp";
-    };
-  }
-  {
-    goPackagePath = "github.com/nfnt/resize";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nfnt/resize";
-      rev = "83c6a9932646f83e3267f353373d47347b6036b2";
-      sha256 = "005cpiwq28krbjf0zjwpfh63rp4s4is58700idn24fs3g7wdbwya";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/image";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/image";
-      rev = "e7c1f5e7dbb87d8921928a6d9fc52fb31ce73b24";
-      sha256 = "0czp897aicqw1dgybj0hc2zzwb20rhqkdqm7siqci3yk7yk9cymf";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "daa7c04131f568e31c51927b359a2d197a357058";
-      sha256 = "17gbfvb5iqyayzw0zd6q218zsbf7x74rflvn18wkxvsw95n1y54h";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "4b67af870c6ffd08258ef1202f371aebccaf7b68";
-      sha256 = "01mhy1xs2dh18kp6wdk1xnb34lbzv2qkvdwj7w5ha2qgm5rrm4ik";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v2";
-      rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-dock/dde-dock.plugins-dir.patch b/nixpkgs/pkgs/desktops/deepin/dde-dock/dde-dock.plugins-dir.patch
deleted file mode 100644
index 87b76045b43d..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-dock/dde-dock.plugins-dir.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From c48867b73485b34b95f14e9b9bbb54507fc77648 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
-Date: Fri, 19 Apr 2019 18:21:49 -0300
-Subject: [PATCH] Use an environment variable for the plugins directory
-
----
- frame/controller/dockpluginscontroller.cpp          | 2 +-
- plugins/tray/system-trays/systemtrayscontroller.cpp | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/frame/controller/dockpluginscontroller.cpp b/frame/controller/dockpluginscontroller.cpp
-index 32a5885..efd53c8 100644
---- a/frame/controller/dockpluginscontroller.cpp
-+++ b/frame/controller/dockpluginscontroller.cpp
-@@ -126,7 +126,7 @@ void DockPluginsController::startLoader()
- {
-     QString pluginsDir("../plugins");
-     if (!QDir(pluginsDir).exists()) {
--        pluginsDir = "/usr/lib/dde-dock/plugins";
-+        pluginsDir = QProcessEnvironment::systemEnvironment().value("DDE_DOCK_PLUGINS_DIR", "@out@/lib/dde-dock/plugins");
-     }
-     qDebug() << "using dock plugins dir:" << pluginsDir;
-
-diff --git a/plugins/tray/system-trays/systemtrayscontroller.cpp b/plugins/tray/system-trays/systemtrayscontroller.cpp
-index 0c8ca88..7c47d25 100644
---- a/plugins/tray/system-trays/systemtrayscontroller.cpp
-+++ b/plugins/tray/system-trays/systemtrayscontroller.cpp
-@@ -159,7 +159,7 @@ void SystemTraysController::startLoader()
- {
-     QString pluginsDir("../plugins/system-trays");
-     if (!QDir(pluginsDir).exists()) {
--        pluginsDir = "/usr/lib/dde-dock/plugins/system-trays";
-+        pluginsDir = QProcessEnvironment::systemEnvironment().value("DDE_DOCK_PLUGINS_DIR", "@out@/lib/dde-dock/plugins") + "/system-trays";
-     }
-     qDebug() << "using system tray plugins dir:" << pluginsDir;
-
---
-2.21.0
-
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-dock/default.nix b/nixpkgs/pkgs/desktops/deepin/dde-dock/default.nix
deleted file mode 100644
index 68f2caa63191..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-dock/default.nix
+++ /dev/null
@@ -1,116 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, cmake
-, pkgconfig
-, qttools
-, qtx11extras
-, qtsvg
-, polkit
-, gsettings-qt
-, dtkcore
-, dtkwidget
-, dde-qt-dbus-factory
-, dde-network-utils
-, dde-daemon
-, deepin-desktop-schemas
-, xorg
-, glib
-, wrapGAppsHook
-, deepin
-, plugins ? [ ]
-, symlinkJoin
-, makeWrapper
-, libdbusmenu
-}:
-
-let
-  unwrapped = mkDerivation rec {
-    pname = "dde-dock";
-    version = "5.0.0";
-
-    src = fetchFromGitHub {
-      owner = "linuxdeepin";
-      repo = pname;
-      rev = version;
-      sha256 = "12dshsqhzajnxm7r53qg0c84b6xlj313qnssnx2m25z4jdp5i7pr";
-    };
-
-    nativeBuildInputs = [
-      cmake
-      pkgconfig
-      qttools
-      wrapGAppsHook
-      deepin.setupHook
-    ];
-
-    buildInputs = [
-      dde-daemon
-      dde-network-utils
-      dde-qt-dbus-factory
-      deepin-desktop-schemas
-      dtkcore
-      dtkwidget
-      glib
-      gsettings-qt
-      libdbusmenu
-      polkit
-      qtsvg
-      qtx11extras
-      xorg.libXdmcp
-      xorg.libXtst
-      xorg.libpthreadstubs
-    ];
-
-    patches = [
-      ./dde-dock.plugins-dir.patch
-    ];
-
-    postPatch = ''
-      searchHardCodedPaths
-      patchShebangs translate_generation.sh
-      fixPath $out                 /etc/dde-dock                plugins/keyboard-layout/CMakeLists.txt
-      fixPath $out                 /usr                         cmake/DdeDock/DdeDockConfig.cmake
-      fixPath $out                 /usr                         dde-dock.pc
-      fixPath $out                 /usr/bin/dde-dock            frame/com.deepin.dde.Dock.service
-      fixPath $out                 /usr/share/dbus-1            CMakeLists.txt
-      fixPath ${dde-daemon}        /usr/lib/deepin-daemon       frame/item/showdesktopitem.cpp
-      fixPath ${dde-network-utils} /usr/share/dde-network-utils frame/main.cpp
-      fixPath ${polkit}            /usr/bin/pkexec              plugins/overlay-warning/overlay-warning-plugin.cpp
-
-      substituteInPlace frame/controller/dockpluginscontroller.cpp --subst-var-by out $out
-      substituteInPlace plugins/tray/system-trays/systemtrayscontroller.cpp --subst-var-by out $out
-    '';
-
-    cmakeFlags = [ "-DDOCK_TRAY_USE_NATIVE_POPUP=YES" ];
-
-    dontWrapQtApps = true;
-
-    preFixup = ''
-      gappsWrapperArgs+=(
-        "''${qtWrapperArgs[@]}"
-      )
-    '';
-
-    postFixup = ''
-      searchHardCodedPaths $out
-    '';
-
-    passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-    meta = with stdenv.lib; {
-      description = "Dock for Deepin Desktop Environment";
-      homepage = "https://github.com/linuxdeepin/dde-dock";
-      license = licenses.gpl3;
-      platforms = platforms.linux;
-      maintainers = with maintainers; [ romildo ];
-    };
-  };
-
-in
-if plugins == [ ]
-then unwrapped
-else import ./wrapper.nix {
-  inherit makeWrapper symlinkJoin plugins;
-  dde-dock = unwrapped;
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-dock/wrapper.nix b/nixpkgs/pkgs/desktops/deepin/dde-dock/wrapper.nix
deleted file mode 100644
index 1690230a99e5..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-dock/wrapper.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ makeWrapper
-, symlinkJoin
-, dde-dock
-, plugins
-}:
-
-symlinkJoin {
-  name = "dde-dock-with-plugins-${dde-dock.version}";
-
-  paths = [ dde-dock ] ++ plugins;
-
-  buildInputs = [ makeWrapper ];
-
-  postBuild = ''
-    wrapProgram $out/bin/dde-dock \
-      --set DDE_DOCK_PLUGINS_DIR "$out/lib/dde-dock/plugins"
-
-    rm $out/share/dbus-1/services/com.deepin.dde.Dock.service
-
-    substitute ${dde-dock}/share/dbus-1/services/com.deepin.dde.Dock.service $out/share/dbus-1/services/com.deepin.dde.Dock.service \
-      --replace ${dde-dock} $out
-  '';
-
-  inherit (dde-dock) meta;
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-mime-cache-paths.patch b/nixpkgs/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-mime-cache-paths.patch
deleted file mode 100644
index 253a67b04ec7..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-mime-cache-paths.patch
+++ /dev/null
@@ -1,323 +0,0 @@
-From 29f4ad88e2294ae70b10180e7361d135c4e5c896 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
-Date: Mon, 13 May 2019 00:09:42 -0300
-Subject: [PATCH 2/2] Use XDG to look for mime cache
-
----
- .../shutil/mimesappsmanager.cpp               | 230 ++++++++++--------
- .../shutil/mimesappsmanager.h                 |   6 +-
- 2 files changed, 125 insertions(+), 111 deletions(-)
-
-diff --git a/dde-file-manager-lib/shutil/mimesappsmanager.cpp b/dde-file-manager-lib/shutil/mimesappsmanager.cpp
-index c9e53630..7a21df51 100644
---- a/dde-file-manager-lib/shutil/mimesappsmanager.cpp
-+++ b/dde-file-manager-lib/shutil/mimesappsmanager.cpp
-@@ -552,14 +552,20 @@ QString MimesAppsManager::getMimeAppsCacheFile()
-     return QString("%1/%2").arg(DFMStandardPaths::location(DFMStandardPaths::CachePath), "MimeApps.json");
- }
- 
--QString MimesAppsManager::getMimeInfoCacheFilePath()
-+QStringList MimesAppsManager::getMimeInfoCacheFilePath()
- {
--    return "/usr/share/applications/mimeinfo.cache";
-+    QStringList paths;
-+    for (const QString dir : getMimeInfoCacheFileRootPath() )
-+       paths.append(dir + QDir::separator() + "mimeinfo.cache");
-+    qDebug() << "getMimeInfoCacheFilePath: " << paths;
-+    return paths;
- }
- 
--QString MimesAppsManager::getMimeInfoCacheFileRootPath()
-+QStringList MimesAppsManager::getMimeInfoCacheFileRootPath()
- {
--    return "/usr/share/applications";
-+    QStringList paths = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
-+    qDebug() << "getMimeInfoCacheFileRootPath: " << paths;
-+    return paths;
- }
- 
- QString MimesAppsManager::getDesktopFilesCacheFile()
-@@ -574,23 +580,27 @@ QString MimesAppsManager::getDesktopIconsCacheFile()
- 
- QStringList MimesAppsManager::getDesktopFiles()
- {
--      QStringList desktopFiles;
-+    QStringList desktopFiles;
- 
--      foreach (QString desktopFolder, getApplicationsFolders()) {
--          QDirIterator it(desktopFolder, QStringList("*.desktop"),
--                          QDir::Files | QDir::NoDotAndDotDot,
--                          QDirIterator::Subdirectories);
--          while (it.hasNext()) {
--            it.next();
--            desktopFiles.append(it.filePath());
--          }
--      }
--      return desktopFiles;
-+    foreach (QString desktopFolder, getApplicationsFolders()) {
-+        QDirIterator it(desktopFolder, QStringList("*.desktop"),
-+                        QDir::Files | QDir::NoDotAndDotDot,
-+                        QDirIterator::Subdirectories);
-+        while (it.hasNext()) {
-+          it.next();
-+          desktopFiles.append(it.filePath());
-+        }
-+    }
-+    return desktopFiles;
- }
- 
--QString MimesAppsManager::getDDEMimeTypeFile()
-+QStringList MimesAppsManager::getDDEMimeTypeFile()
- {
--    return QString("%1/%2/%3").arg(getMimeInfoCacheFileRootPath(), "deepin", "dde-mimetype.list");
-+    QStringList paths;
-+    for (const QString path : getMimeInfoCacheFileRootPath())
-+       paths.append(QString("%1/%2/%3").arg(path, "deepin", "dde-mimetype.list"));
-+    qDebug() << "getDDEMimeTypeFile: " << paths;
-+    return paths;
- }
- 
- QMap<QString, DesktopFile> MimesAppsManager::getDesktopObjs()
-@@ -663,124 +673,128 @@ void MimesAppsManager::initMimeTypeApps()
-         MimeApps.insert(key, orderApps);
-     }
- 
--    //check mime apps from cache
--    QFile f(getMimeInfoCacheFilePath());
--    if(!f.open(QIODevice::ReadOnly)){
--        qDebug () << "failed to read mime info cache file:" << f.errorString();
--        return;
--    }
--
-     QStringList audioDesktopList;
-     QStringList imageDeksopList;
-     QStringList textDekstopList;
-     QStringList videoDesktopList;
- 
--    while (!f.atEnd()) {
--        QString data = f.readLine();
--        QString _desktops = data.split("=").last();
--        QString mimeType = data.split("=").first();
--        QStringList desktops = _desktops.split(";");
--
--        foreach (const QString desktop, desktops) {
--            if(desktop.isEmpty() || audioDesktopList.contains(desktop))
--                continue;
-+    //check mime apps from cache
-+    for (const QString path : getMimeInfoCacheFilePath()) {
-+        QFile f(path);
-+        if(!f.open(QIODevice::ReadOnly)){
-+            qDebug () << "failed to read mime info cache file:" << f.errorString();
-+            return;
-+        }
- 
--            if(mimeType.startsWith("audio")){
--                if(!audioDesktopList.contains(desktop))
--                    audioDesktopList << desktop;
--            } else if(mimeType.startsWith("image")){
--                if(!imageDeksopList.contains(desktop))
--                    imageDeksopList << desktop;
--            } else if(mimeType.startsWith("text")){
--                if(!textDekstopList.contains(desktop))
--                    textDekstopList << desktop;
--            } else if(mimeType.startsWith("video")){
--                if(!videoDesktopList.contains(desktop))
--                    videoDesktopList << desktop;
-+        while (!f.atEnd()) {
-+            QString data = f.readLine();
-+            QString _desktops = data.split("=").last();
-+            QString mimeType = data.split("=").first();
-+            QStringList desktops = _desktops.split(";");
-+
-+            foreach (const QString desktop, desktops) {
-+                if(desktop.isEmpty() || audioDesktopList.contains(desktop))
-+                    continue;
-+
-+                if(mimeType.startsWith("audio")){
-+                    if(!audioDesktopList.contains(desktop))
-+                        audioDesktopList << desktop;
-+                } else if(mimeType.startsWith("image")){
-+                    if(!imageDeksopList.contains(desktop))
-+                        imageDeksopList << desktop;
-+                } else if(mimeType.startsWith("text")){
-+                    if(!textDekstopList.contains(desktop))
-+                        textDekstopList << desktop;
-+                } else if(mimeType.startsWith("video")){
-+                    if(!videoDesktopList.contains(desktop))
-+                        videoDesktopList << desktop;
-+                }
-             }
-         }
-+        f.close();
-     }
--    f.close();
- 
--    const QString mimeInfoCacheRootPath = getMimeInfoCacheFileRootPath();
--    foreach (QString desktop, audioDesktopList) {
--        const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
--        if(!QFile::exists(path))
--            continue;
--        DesktopFile df(path);
--        AudioMimeApps.insert(path, df);
--    }
-+    for (const QString mimeInfoCacheRootPath : getMimeInfoCacheFileRootPath()) {
-+        foreach (QString desktop, audioDesktopList) {
-+            const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
-+            if(!QFile::exists(path))
-+                continue;
-+            DesktopFile df(path);
-+            AudioMimeApps.insert(path, df);
-+        }
- 
--    foreach (QString desktop, imageDeksopList) {
--        const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
--        if(!QFile::exists(path))
--            continue;
--        DesktopFile df(path);
--        ImageMimeApps.insert(path, df);
--    }
-+        foreach (QString desktop, imageDeksopList) {
-+            const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
-+            if(!QFile::exists(path))
-+                continue;
-+            DesktopFile df(path);
-+            ImageMimeApps.insert(path, df);
-+        }
- 
--    foreach (QString desktop, textDekstopList) {
--        const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
--        if(!QFile::exists(path))
--            continue;
--        DesktopFile df(path);
--        TextMimeApps.insert(path, df);
--    }
-+        foreach (QString desktop, textDekstopList) {
-+            const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
-+            if(!QFile::exists(path))
-+                continue;
-+            DesktopFile df(path);
-+            TextMimeApps.insert(path, df);
-+        }
- 
--    foreach (QString desktop, videoDesktopList) {
--        const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
--        if(!QFile::exists(path))
--            continue;
--        DesktopFile df(path);
--        VideoMimeApps.insert(path, df);
-+        foreach (QString desktop, videoDesktopList) {
-+            const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
-+            if(!QFile::exists(path))
-+                continue;
-+            DesktopFile df(path);
-+            VideoMimeApps.insert(path, df);
-+        }
-     }
--
-     return;
- }
- 
- void MimesAppsManager::loadDDEMimeTypes()
- {
--    QSettings settings(getDDEMimeTypeFile(), QSettings::IniFormat);
--    qDebug() << settings.childGroups();
-+    for (const QString path : getDDEMimeTypeFile()) {
-+        QSettings settings(path, QSettings::IniFormat);
-+        qDebug() << settings.childGroups();
- 
--    QFile file(getDDEMimeTypeFile());
--    if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
--        return;
--    }
-+        QFile file(path);
-+        if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
-+            continue;
-+        }
-+
-+        // Read propeties
-+        QTextStream in(&file);
-+        QString desktopKey;
-+        while (!in.atEnd()) {
- 
--    // Read propeties
--    QTextStream in(&file);
--    QString desktopKey;
--    while (!in.atEnd()) {
-+          // Read new line
-+          QString line = in.readLine();
- 
--      // Read new line
--      QString line = in.readLine();
-+          // Skip empty line or line with invalid format
-+          if (line.trimmed().isEmpty()) {
-+            continue;
-+          }
- 
--      // Skip empty line or line with invalid format
--      if (line.trimmed().isEmpty()) {
--        continue;
--      }
-+          // Read group
-+          // NOTE: symbols '[' and ']' can be found not only in group names, but
-+          // only group can start with '['
- 
--      // Read group
--      // NOTE: symbols '[' and ']' can be found not only in group names, but
--      // only group can start with '['
-+          if (line.trimmed().startsWith("[") && line.trimmed().endsWith("]")) {
-+                QString tmp = line.trimmed().replace("[", "").replace("]", "");
-+                desktopKey = tmp;
-+                continue;
-+          }
- 
--      if (line.trimmed().startsWith("[") && line.trimmed().endsWith("]")) {
--            QString tmp = line.trimmed().replace("[", "").replace("]", "");
--            desktopKey = tmp;
--            continue;
--      }
--
--      // If we are in correct group and line contains assignment then read data
--      int first_equal = line.indexOf('=');
--      if (!desktopKey.isEmpty() && first_equal >= 0) {
--            QString value = line.mid(first_equal + 1);
--            QStringList mimetypes = value.split(";");
--            DDE_MimeTypes.insert(desktopKey, mimetypes);
--            desktopKey.clear();
-+          // If we are in correct group and line contains assignment then read data
-+          int first_equal = line.indexOf('=');
-+          if (!desktopKey.isEmpty() && first_equal >= 0) {
-+                QString value = line.mid(first_equal + 1);
-+                QStringList mimetypes = value.split(";");
-+                DDE_MimeTypes.insert(desktopKey, mimetypes);
-+                desktopKey.clear();
-+            }
-         }
-+        file.close();
-     }
--    file.close();
- }
- 
- bool MimesAppsManager::lessByDateTime(const QFileInfo &f1, const QFileInfo &f2)
-diff --git a/dde-file-manager-lib/shutil/mimesappsmanager.h b/dde-file-manager-lib/shutil/mimesappsmanager.h
-index 223c80aa..00a61302 100644
---- a/dde-file-manager-lib/shutil/mimesappsmanager.h
-+++ b/dde-file-manager-lib/shutil/mimesappsmanager.h
-@@ -101,12 +101,12 @@ public:
- 
-     static QStringList getApplicationsFolders();
-     static QString getMimeAppsCacheFile();
--    static QString getMimeInfoCacheFilePath();
--    static QString getMimeInfoCacheFileRootPath();
-+    static QStringList getMimeInfoCacheFilePath();
-+    static QStringList getMimeInfoCacheFileRootPath();
-     static QString getDesktopFilesCacheFile();
-     static QString getDesktopIconsCacheFile();
-     static QStringList getDesktopFiles();
--    static QString getDDEMimeTypeFile();
-+    static QStringList getDDEMimeTypeFile();
-     static QMap<QString, DesktopFile> getDesktopObjs();
-     static void initMimeTypeApps();
-     static void loadDDEMimeTypes();
--- 
-2.21.0
-
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-paths.patch b/nixpkgs/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-paths.patch
deleted file mode 100644
index 3ced15e7e5a4..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-paths.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From e68d983a6befd223087916cb3fe31baee77decc4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
-Date: Sun, 12 May 2019 08:50:07 -0300
-Subject: [PATCH 1/2] Use qt library to determine where to look for application
- files
-
----
- dde-file-manager-lib/shutil/fileutils.cpp     | 34 ++++++++++++-------
- .../shutil/mimesappsmanager.cpp               | 11 ++----
- 2 files changed, 25 insertions(+), 20 deletions(-)
-
-diff --git a/dde-file-manager-lib/shutil/fileutils.cpp b/dde-file-manager-lib/shutil/fileutils.cpp
-index ae8120d3..d6a0573a 100644
---- a/dde-file-manager-lib/shutil/fileutils.cpp
-+++ b/dde-file-manager-lib/shutil/fileutils.cpp
-@@ -242,13 +242,19 @@ bool FileUtils::isArchive(const QString &path)
-  */
- QStringList FileUtils::getApplicationNames() {
-   QStringList appNames;
--  QDirIterator it("/usr/share/applications", QStringList("*.desktop"),
--                  QDir::Files | QDir::NoDotAndDotDot,
--                  QDirIterator::Subdirectories);
--  while (it.hasNext()) {
--    it.next();
--    appNames.append(it.fileName());
-+
-+  const QStringList desktopDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
-+  qDebug() << "dde-file-manager getApplicationNames desktopDirs:" << desktopDirs;
-+  for (const QString &dir : desktopDirs) {
-+    QDirIterator it(dir, QStringList("*.desktop"),
-+                    QDir::Files | QDir::NoDotAndDotDot,
-+                    QDirIterator::Subdirectories);
-+    while (it.hasNext()) {
-+      it.next();
-+      appNames.append(it.fileName());
-+    }
-   }
-+  
-   return appNames;
- }
- //---------------------------------------------------------------------------
-@@ -259,12 +265,16 @@ QStringList FileUtils::getApplicationNames() {
-  */
- QList<DesktopFile> FileUtils::getApplications() {
-   QList<DesktopFile> apps;
--  QDirIterator it("/usr/share/applications", QStringList("*.desktop"),
--                  QDir::Files | QDir::NoDotAndDotDot,
--                  QDirIterator::Subdirectories);
--  while (it.hasNext()) {
--    it.next();
--    apps.append(DesktopFile(it.filePath()));
-+  const QStringList desktopDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
-+  qDebug() << "dde-file-manager getApplications desktopDirs:" << desktopDirs;
-+  for (const QString &dir : desktopDirs) {
-+    QDirIterator it(dir, QStringList("*.desktop"),
-+                    QDir::Files | QDir::NoDotAndDotDot,
-+                    QDirIterator::Subdirectories);
-+    while (it.hasNext()) {
-+      it.next();
-+      apps.append(DesktopFile(it.filePath()));
-+    }
-   }
-   return apps;
- }
-diff --git a/dde-file-manager-lib/shutil/mimesappsmanager.cpp b/dde-file-manager-lib/shutil/mimesappsmanager.cpp
-index c6149702..c9e53630 100644
---- a/dde-file-manager-lib/shutil/mimesappsmanager.cpp
-+++ b/dde-file-manager-lib/shutil/mimesappsmanager.cpp
-@@ -542,14 +542,9 @@ QStringList MimesAppsManager::getrecommendedAppsFromMimeWhiteList(const DUrl &ur
- 
- QStringList MimesAppsManager::getApplicationsFolders()
- {
--    QStringList desktopFolders;
--    desktopFolders << QString("/usr/share/applications/")
--                   << QString("/usr/local/share/applications/")
--                   << QString("/usr/share/gnome/applications/")
--                   << QString("/var/lib/flatpak/exports/share/applications")
--                   << QDir::homePath() + QString("/.local/share/flatpak/exports/share/applications")
--                   << QDir::homePath() + QString( "/.local/share/applications" );
--    return desktopFolders;
-+    QStringList paths = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
-+    qDebug() << "dde-file-manager getApplicationsFolders:" << paths;
-+    return paths;
- }
- 
- QString MimesAppsManager::getMimeAppsCacheFile()
--- 
-2.21.0
-
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.pixmaps-paths.patch b/nixpkgs/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.pixmaps-paths.patch
deleted file mode 100644
index 582760e6db2a..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.pixmaps-paths.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 084c3cfcf4995c109ca2e96f042fe341f925b0b4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
-Date: Thu, 16 May 2019 19:00:52 -0300
-Subject: [PATCH 4/4] Use xdg to look for pixmap icons
-
----
- dde-file-manager-lib/shutil/fileutils.cpp | 15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/dde-file-manager-lib/shutil/fileutils.cpp b/dde-file-manager-lib/shutil/fileutils.cpp
-index d6a0573a..e912e7c2 100644
---- a/dde-file-manager-lib/shutil/fileutils.cpp
-+++ b/dde-file-manager-lib/shutil/fileutils.cpp
-@@ -362,11 +362,16 @@ QIcon FileUtils::searchAppIcon(const DesktopFile &app,
-   }
- 
-   // Last chance
--  QDir appIcons("/usr/share/pixmaps","", 0, QDir::Files | QDir::NoDotAndDotDot);
--  QStringList iconFiles = appIcons.entryList();
--  QStringList searchIcons = iconFiles.filter(name);
--  if (searchIcons.count() > 0) {
--    return QIcon("/usr/share/pixmaps/" + searchIcons.at(0));
-+  const QStringList dirs = QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation);
-+  qDebug() << "searchAppIcon: last chance: look for pixmaps at: " << dirs;
-+  for (const QString &dir : dirs) {
-+    const QString path = dir + QDir::separator() + "pixmaps";
-+    QDir appIcons(path,"", 0, QDir::Files | QDir::NoDotAndDotDot);
-+    QStringList iconFiles = appIcons.entryList();
-+    QStringList searchIcons = iconFiles.filter(name);
-+    if (searchIcons.count() > 0) {
-+      return QIcon(path + QDir::separator() + searchIcons.at(0));
-+    }
-   }
- 
-   // Default icon
--- 
-2.21.0
-
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-file-manager/default.nix b/nixpkgs/pkgs/desktops/deepin/dde-file-manager/default.nix
deleted file mode 100644
index 4258e2aa859e..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-file-manager/default.nix
+++ /dev/null
@@ -1,298 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, avfs
-, dde-daemon
-, dde-dock
-, dde-polkit-agent
-, dde-qt-dbus-factory
-, deepin
-, deepin-anything
-, deepin-desktop-schemas
-, deepin-gettext-tools
-, deepin-movie-reborn
-, deepin-shortcut-viewer
-, deepin-terminal
-, disomaster
-, dtkcore
-, dtkwidget
-, ffmpegthumbnailer
-, file
-, glib
-, gnugrep
-, gsettings-qt
-, gvfs
-, jemalloc
-, kcodecs
-, libX11
-, libsecret
-, polkit
-, polkit-qt
-, poppler
-, procps
-, qmake
-, qt5integration
-, qtmultimedia
-, qtsvg
-, qttools
-, qtx11extras
-, runtimeShell
-, samba
-, shadow
-, taglib
-, udisks2-qt5
-, xdg-user-dirs
-, xorg
-, zlib
-, wrapGAppsHook
-}:
-
-mkDerivation rec {
-  pname = "dde-file-manager";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0n2nl09anqdq0n5yn688n385rn81lcpybs0sa8m311k3k9ndkkyr";
-  };
-
-  nativeBuildInputs = [
-    deepin.setupHook
-    qmake
-    qttools
-    pkgconfig
-    deepin-gettext-tools
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    avfs
-    dde-daemon
-    dde-dock
-    dde-polkit-agent
-    dde-qt-dbus-factory
-    deepin-anything
-    deepin-desktop-schemas
-    deepin-movie-reborn.dev
-    deepin-shortcut-viewer
-    deepin-terminal
-    disomaster
-    dtkcore
-    dtkwidget
-    ffmpegthumbnailer
-    file
-    glib
-    gnugrep
-    gsettings-qt
-    gvfs
-    jemalloc
-    kcodecs
-    libsecret
-    polkit
-    polkit-qt
-    poppler
-    procps
-    qt5integration
-    qtmultimedia
-    qtsvg
-    qtx11extras
-    samba
-    taglib
-    udisks2-qt5
-    xdg-user-dirs
-    xorg.libX11
-    xorg.libxcb
-    xorg.xcbutil
-    xorg.xcbutilwm
-    xorg.xorgproto
-    zlib
-  ];
-
-  patches = [
-    ./dde-file-manager.fix-paths.patch
-    ./dde-file-manager.fix-mime-cache-paths.patch
-    ./dde-file-manager.pixmaps-paths.patch
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-
-    patchShebangs dde-desktop/translate_generation.sh
-    patchShebangs dde-desktop/translate_ts2desktop.sh
-    patchShebangs dde-file-manager-lib/generate_translations.sh
-    patchShebangs dde-file-manager/generate_translations.sh
-    patchShebangs dde-file-manager/translate_ts2desktop.sh
-    patchShebangs usb-device-formatter/generate_translations.sh
-    patchShebangs usb-device-formatter/translate_ts2desktop.sh
-
-    # x-terminal-emulator is a virtual package in Debian systems. The
-    # terminal emulator is configured by Debian's alternative system.
-    # It is not available on NixOS. Use deepin-terminal instead
-    sed -i -e "s,x-terminal-emulator,deepin-terminal," \
-      dde-file-manager-lib/shutil/fileutils.cpp
-
-    sed -i -e "s,\$\$\\[QT_INSTALL_LIBS\\],$out/lib," \
-       dde-file-manager-lib/dde-file-manager-lib.pro \
-       dde-file-thumbnail-tool/common.pri \
-       common/common.pri
-
-    sed -i '/^QMAKE_PKGCONFIG_DESTDIR/i QMAKE_PKGCONFIG_PREFIX = $$PREFIX' \
-       dde-file-manager-lib/dde-file-manager-lib.pro
-
-    fixPath ${dde-dock} /usr/include/dde-dock \
-      dde-dock-plugins/disk-mount/disk-mount.pro
-
-    # treefrog is not available in NixOS, and I am not sure if it is really needed
-    #fixPath $ {treefrog-framework} /usr/include/treefrog \
-    #  dde-sharefiles/appbase.pri
-
-    fixPath ${deepin-anything} /usr/share/dbus-1/interfaces \
-      dde-file-manager-lib/dbusinterface/dbusinterface.pri
-
-    sed -i -e "s,\$\$system(\$\$PKG_CONFIG --variable libdir deepin-anything-server-lib),$out/lib," \
-      deepin-anything-server-plugins/dde-anythingmonitor/dde-anythingmonitor.pro
-
-    fixPath ${dde-daemon} /usr/lib/deepin-daemon/desktop-toggle \
-      dde-zone/mainwindow.h
-
-    fixPath ${deepin-gettext-tools} /usr/bin/deepin-desktop-ts-convert \
-      dde-desktop/translate_desktop2ts.sh \
-      dde-desktop/translate_ts2desktop.sh \
-      dde-file-manager/translate_desktop2ts.sh \
-      dde-file-manager/translate_ts2desktop.sh \
-      usb-device-formatter/translate_desktop2ts.sh \
-      usb-device-formatter/translate_ts2desktop.sh
-
-    fixPath ${avfs} /usr/bin/mountavfs dde-file-manager-lib/shutil/fileutils.cpp
-    fixPath ${avfs} /usr/bin/umountavfs dde-file-manager-lib/shutil/fileutils.cpp
-
-    fixPath ${deepin-terminal} /usr/bin/deepin-terminal \
-      dde-file-manager-lib/shutil/fileutils.cpp
-
-    fixPath $out /usr/share/dde-file-manager \
-      dde-sharefiles/appbase.pri \
-      dde-sharefiles/dde-sharefiles.pro
-
-    fixPath $out /usr/share/usb-device-formatter \
-      usb-device-formatter/main.cpp
-
-    fixPath $out /usr/share/applications \
-      dde-file-manager/mips/dde-file-manager-autostart.desktop \
-      dde-desktop/development.pri
-
-    fixPath $out /usr/bin \
-      dbusservices/com.deepin.dde.desktop.service \
-      dde-desktop/data/com.deepin.dde.desktop.service \
-      dde-desktop/dbus/filedialog/com.deepin.filemanager.filedialog.service \
-      dde-desktop/dbus/filemanager1/org.freedesktop.FileManager.service \
-      dde-file-manager-daemon/dbusservice/com.deepin.filemanager.daemon.service \
-      dde-file-manager-daemon/dbusservice/dde-filemanager-daemon.service \
-      dde-file-manager-daemon/dde-file-manager-daemon.pro \
-      dde-file-manager-lib/dde-file-manager-lib.pro \
-      dde-file-manager-lib/pkexec/com.deepin.pkexec.dde-file-manager.policy \
-      dde-file-manager/dde-file-manager-xdg-autostart.desktop \
-      dde-file-manager/dde-file-manager.desktop \
-      dde-file-manager/dde-file-manager.pro \
-      dde-file-manager/mips/dde-file-manager-autostart.desktop \
-      dde-file-manager/mips/dde-file-manager.desktop \
-      dde-file-manager/pkexec/com.deepin.pkexec.dde-file-manager.policy \
-      usb-device-formatter/pkexec/com.deepin.pkexec.usb-device-formatter.policy \
-      usb-device-formatter/usb-device-formatter.desktop \
-      usb-device-formatter/usb-device-formatter.pro
-      fixPath $out /etc \
-      dde-file-manager/dde-file-manager.pro \
-      dde-file-manager-daemon/dde-file-manager-daemon.pro
-
-    fixPath $out /usr \
-      common/common.pri \
-      dde-desktop/dbus/filedialog/filedialog.pri \
-      dde-desktop/dbus/filemanager1/filemanager1.pri \
-      dde-desktop/development.pri \
-      dde-dock-plugins/disk-mount/disk-mount.pro \
-      dde-file-manager-daemon/dde-file-manager-daemon.pro \
-      usb-device-formatter/usb-device-formatter.pro
-
-    sed -i -e "s,xdg-user-dir,${xdg-user-dirs}/bin/xdg-user-dir," \
-      dde-file-manager/dde-xdg-user-dirs-update
-
-    sed -i -e "s,Exec=dde-file-manager,Exec=$out/bin/dde-file-manager," \
-      dde-file-manager/dde-file-manager.desktop
-
-    sed -i -e "s,Exec=gio,Exec=${glib.bin}/bin/gio," \
-      dde-desktop/data/applications/dde-trash.desktop \
-      dde-desktop/data/applications/dde-computer.desktop
-
-    sed -i -e "s,/usr/lib/gvfs/gvfsd,${gvfs}/libexec/gvfsd," \
-      dde-file-manager-lib/gvfs/networkmanager.cpp
-
-    sed -i -e "s,/usr/sbin/smbd,${samba}/bin/smbd," \
-           -e "s,/usr/sbin/groupadd,${shadow}/bin/groupadd," \
-           -e "s,/usr/sbin/adduser,${shadow}/bin/adduser," \
-      dde-file-manager-daemon/usershare/usersharemanager.cpp
-
-    sed -i -e 's,startDetached("deepin-shortcut-viewer",startDetached("${deepin-shortcut-viewer}/bin/deepin-shortcut-viewer",' \
-      dde-file-manager-lib/controllers/appcontroller.cpp
-
-    sed -i -e 's,/bin/bash,${runtimeShell},' \
-           -e 's,\<ps\>,${procps}/bin/ps,' \
-           -e 's,\<grep\>,${gnugrep}/bin/grep,' \
-      utils/utils.cpp \
-      dde-file-manager-lib/controllers/fileeventprocessor.cpp
-
-    # The hard coded path in `QString("/etc/xdg/%1/%2")` in
-    # dde-file-manager-lib/interfaces/dfmsettings.cpp
-    # does not needed a fix because all the standard locations
-    # are tried before faling back to /etc/xdg.
-
-    # I do not know yet how to deal with:
-    #   dde-file-manager-lib/sw_label/llsdeepinlabellibrary.h:        return "/usr/lib/sw_64-linux-gnu/dde-file-manager/libllsdeeplabel.so";
-    #   dde-file-manager-lib/sw_label/filemanagerlibrary.h:        return "/usr/lib/sw_64-linux-gnu/dde-file-manager/libfilemanager.so";
-    #   dde-file-manager-lib/sw_label/libinstall.sh:mkdir /usr/lib/sw_64-linux-gnu/dde-file-manager
-    #   dde-file-manager-lib/sw_label/libinstall.sh:cp libfilemanager.so libllsdeeplabel.so /usr/lib/sw_64-linux-gnu/dde-file-manager
-    # They are not present on my installations of Deepin Linux, Arch Linux and Ubuntu. Can they be ignored?
-
-    # Notes:
-    # - As file-roller is looked in the path using QStandardPaths::findExecutable, it is not been added as a dependency.
-    # - deepin-qt5config is a dependency exclusive to the Deepin Linux distribution. No other distribution has it, according to repology.
-  '';
-
-  qmakeFlags = [
-    "QMAKE_CFLAGS_ISYSTEM="
-
-    # Disable ffmpeg
-    "CONFIG+=DISABLE_FFMPEG"
-  ];
-
-  preBuild = ''
-    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${zlib}/lib";
-    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}${libX11}/lib";
-  '';
-
-  dontWrapQtApps = true;
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      "''${qtWrapperArgs[@]}"
-    )
-  '';
-
-  postFixup = ''
-    # debuging
-    unset LD_LIBRARY_PATH
-    searchForUnresolvedDLL $out
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "File manager and desktop module for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/dde-file-manager";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-kwin/0001-dde-kwin.pc-make-paths-relative.patch b/nixpkgs/pkgs/desktops/deepin/dde-kwin/0001-dde-kwin.pc-make-paths-relative.patch
deleted file mode 100644
index 707eb2074095..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-kwin/0001-dde-kwin.pc-make-paths-relative.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From c4edb65554f90a5abfc2ecbf63587b8c6ef2653d Mon Sep 17 00:00:00 2001
-From: worldofpeace <worldofpeace@protonmail.ch>
-Date: Tue, 22 Oct 2019 17:20:24 -0400
-Subject: [PATCH] dde-kwin.pc: make paths relative
-
-Values like libdir should be relative to the literal ${prefix}.
-We also use @ONLY so we don't substitute values like ${prefix}
-with CMake resulting in an unintentional replacement.
----
- plugins/kwin-xcb/lib/CMakeLists.txt |  2 +-
- plugins/kwin-xcb/lib/dde-kwin.pc.in | 18 +++++++++---------
- 2 files changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/plugins/kwin-xcb/lib/CMakeLists.txt b/plugins/kwin-xcb/lib/CMakeLists.txt
-index 0189b74..62e5553 100644
---- a/plugins/kwin-xcb/lib/CMakeLists.txt
-+++ b/plugins/kwin-xcb/lib/CMakeLists.txt
-@@ -61,7 +61,7 @@ install_files(
-     kwinutils.h
- )
- 
--configure_file(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc)
-+configure_file(${PROJECT_NAME}.pc.in ${PROJECT_NAME}.pc @ONLY)
- if (CMAKE_INSTALL_LIBDIR)
-     install_files("/${CMAKE_INSTALL_LIBDIR}/pkgconfig" FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc)
- elseif (CMAKE_LIBRARY_OUTPUT_DIRECTORY)
-diff --git a/plugins/kwin-xcb/lib/dde-kwin.pc.in b/plugins/kwin-xcb/lib/dde-kwin.pc.in
-index 9b1d813..1179761 100644
---- a/plugins/kwin-xcb/lib/dde-kwin.pc.in
-+++ b/plugins/kwin-xcb/lib/dde-kwin.pc.in
-@@ -1,13 +1,13 @@
--prefix=${CMAKE_INSTALL_PREFIX}
--exec_prefix=${CMAKE_INSTALL_PREFIX}
--libdir=${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}
--includedir=${INCLUDE_OUTPUT_PATH}
-+prefix=@CMAKE_INSTALL_PREFIX@
-+exec_prefix=${prefix}
-+libdir=${prefix}/lib
-+includedir=@INCLUDE_OUTPUT_PATH@
- 
- 
--Name: ${PROJECT_NAME}
-+Name: @PROJECT_NAME@
- Description: DDE KWin plugin library
--Version: ${PROJECT_VERSION}
--Libs: -l${PROJECT_NAME}
--Libs.private: -L/usr/X11R6/lib64 -lQt5X11Extras -lKF5WindowSystem -lQt5Widgets -lQt5Gui -lKF5ConfigCore -lKF5CoreAddons -lQt5Core -lGL -lpthread   
--Cflags: -I${INCLUDE_OUTPUT_PATH}
-+Version: @PROJECT_VERSION@
-+Libs: -l$@PROJECT_NAME@
-+Libs.private: -L/usr/X11R6/lib64 -lQt5X11Extras -lKF5WindowSystem -lQt5Widgets -lQt5Gui -lKF5ConfigCore -lKF5CoreAddons -lQt5Core -lGL -lpthread
-+Cflags: -I@INCLUDE_OUTPUT_PATH@
- 
--- 
-2.23.0
-
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-kwin/default.nix b/nixpkgs/pkgs/desktops/deepin/dde-kwin/default.nix
deleted file mode 100644
index ce1a1a8dda03..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-kwin/default.nix
+++ /dev/null
@@ -1,142 +0,0 @@
-{ stdenv
-, mkDerivation
-, pkgconfig
-, fetchFromGitHub
-, deepin
-, cmake
-, extra-cmake-modules
-, qtbase
-, libxcb
-, kglobalaccel
-, kwindowsystem
-, kcoreaddons
-, kwin
-, dtkcore
-, gsettings-qt
-, fontconfig
-, deepin-desktop-schemas
-, glib
-, libXrender
-, mtdev
-, qttools
-, deepin-gettext-tools
-, kwayland
-, qtx11extras
-, qtquickcontrols2
-, epoxy
-, qt5integration
-, dde-session-ui
-, dbus
-, wrapGAppsHook
-}:
-
-mkDerivation rec {
-  pname = "dde-kwin";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0bvkx9h5ygj46a0j76kfyq3gvk6zn4fx6clhrmcr40hbi2k33cbl";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    deepin-gettext-tools
-    deepin.setupHook
-    extra-cmake-modules
-    pkgconfig
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    deepin-desktop-schemas
-    dtkcore
-    epoxy
-    fontconfig
-    glib
-    gsettings-qt
-    kcoreaddons
-    kglobalaccel
-    kwayland
-    kwin
-    kwindowsystem
-    libXrender
-    libxcb
-    mtdev
-    qtbase
-    qtquickcontrols2
-    qttools
-    qtx11extras
-    qt5integration
-  ];
-
-  # Need to add kwayland around:
-  # * https://github.com/linuxdeepin/dde-kwin/blob/5226bb984c844129f9fa589da56e77decb7b39a1/plugins/kwineffects/blur/CMakeLists.txt#L14
-  NIX_CFLAGS_COMPILE = [
-    "-I${kwayland.dev}/include/KF5"
-  ];
-
-  cmakeFlags = [
-    "-DKWIN_VERSION=${(builtins.parseDrvName kwin.name).version}"
-  ];
-
-  patches = [
-    ./0001-dde-kwin.pc-make-paths-relative.patch
-    ./fix-paths.patch
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-
-    patchShebangs translate_ts2desktop.sh \
-      translate_generation.sh \
-      translate_desktop2ts.sh \
-      plugins/kwin-xcb/plugin/translate_generation.sh
-
-    fixPath ${deepin-gettext-tools} /usr/bin/deepin-desktop-ts-convert translate_desktop2ts.sh translate_ts2desktop.sh
-
-    fixPath $out /etc/xdg configures/CMakeLists.txt deepin-wm-dbus/deepinwmfaker.cpp
-
-    # TODO: Need environmental patch
-    fixPath /run/current-system/sw /usr/lib plugins/kwin-xcb/plugin/main.cpp
-
-    substituteInPlace configures/kwin-wm-multitaskingview.desktop \
-      --replace "dbus-send" "${dbus}/bin/dbus-send"
-
-    fixPath ${dde-session-ui} /usr/lib/deepin-daemon/dde-warning-dialog deepin-wm-dbus/deepinwmfaker.cpp
-
-    # Correct qt plugin installation path to be within dde-kwin prefix.
-    substituteInPlace CMakeLists.txt \
-      --subst-var-by plugin_path "$out/$qtPluginPrefix"
-  '';
-
-  postInstall = ''
-    # Correct invalid path in .pc
-    substituteInPlace $out/lib/pkgconfig/dde-kwin.pc \
-      --replace "-L/usr/X11R6/lib64" ""
-
-    chmod +x $out/bin/kwin_no_scale
-  '';
-
-  dontWrapQtApps = true;
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      "''${qtWrapperArgs[@]}"
-    )
-  '';
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "KWin configuration for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/dde-kwin";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo worldofpeace ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-kwin/fix-paths.patch b/nixpkgs/pkgs/desktops/deepin/dde-kwin/fix-paths.patch
deleted file mode 100644
index 1bf576e5c1a5..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-kwin/fix-paths.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index feef49d..ecb7ed2 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -26,9 +26,9 @@ macro(query_qmake args output)
-     endif()
- endmacro()
-
--query_qmake("QT_INSTALL_PLUGINS" QT_INSTALL_PLUGINS)
-+set(QT_INSTALL_PLUGINS @plugin_path@)
-
--set(PLUGIN_INSTALL_PATH ${QT_INSTALL_PLUGINS}/platforms)
-+set(PLUGIN_INSTALL_PATH @plugin_path@/platforms)
- # Find includes in corresponding build directories
- set(CMAKE_INCLUDE_CURRENT_DIR ON)
- # Instruct CMake to run moc automatically when needed
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-launcher/default.nix b/nixpkgs/pkgs/desktops/deepin/dde-launcher/default.nix
deleted file mode 100644
index 0a50f7177bae..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-launcher/default.nix
+++ /dev/null
@@ -1,101 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, cmake
-, dde-qt-dbus-factory
-, dde-session-ui
-, deepin
-, deepin-desktop-schemas
-, deepin-wallpapers
-, dtkcore
-, dtkwidget
-, gsettings-qt
-, qtsvg
-, qttools
-, qtx11extras
-, which
-, xdg_utils
-, wrapGAppsHook
-, glib
-}:
-
-mkDerivation rec {
-  pname = "dde-launcher";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0zh6bb0r3pgjrnw9rba46ghdzza1ka1mv7r1znf8gw24wsjgjcpn";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    pkgconfig
-    qttools
-    wrapGAppsHook
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dde-qt-dbus-factory
-    dde-session-ui
-    deepin-desktop-schemas
-    deepin-wallpapers
-    dtkcore
-    dtkwidget
-    glib
-    gsettings-qt
-    qtsvg
-    qtx11extras
-    which
-    xdg_utils
-  ];
-
-  postPatch = ''
-    # debugging
-    searchHardCodedPaths
-
-    substituteInPlace CMakeLists.txt --replace "/usr/share" "$out/share"
-
-    substituteInPlace src/dbusservices/com.deepin.dde.Launcher.service --replace "/usr" "$out"
-
-    substituteInPlace src/historywidget.cpp --replace "xdg-open" "${xdg_utils}/bin/xdg-open"
-    substituteInPlace src/widgets/miniframebottombar.cpp --replace "dde-shutdown" "${dde-session-ui}/bin/dde-shutdown"
-    substituteInPlace src/widgets/miniframerightbar.cpp --replace "which" "${which}/bin/which"
-
-    # Uncomment (and remove space after $) after packaging deepin-manual
-    #substituteInPlace src/sharedeventfilter.cpp --replace "dman" "$ {deepin-manual}/bin/dman"
-
-    for f in src/boxframe/*.cpp; do
-      substituteInPlace $f --replace "/usr/share/backgrounds/default_background.jpg" "${deepin-wallpapers}/share/backgrounds/deepin/desktop.jpg"
-    done
-
-    # note: `dbus-send` path does not need to be hard coded because it is not used for dtkcore >= 2.0.8.0
-  '';
-
-  dontWrapQtApps = true;
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      "''${qtWrapperArgs[@]}"
-    )
-  '';
-
-  postFixup = ''
-    # debugging
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin Desktop Environment launcher module";
-    homepage = "https://github.com/linuxdeepin/dde-launcher";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-network-utils/default.nix b/nixpkgs/pkgs/desktops/deepin/dde-network-utils/default.nix
deleted file mode 100644
index d54558acf080..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-network-utils/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, substituteAll
-, qmake
-, pkgconfig
-, qttools
-, dde-qt-dbus-factory
-, proxychains
-, which
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "dde-network-utils";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0670kfnkplf7skkd1ql6y9x15kmrcbdv1005qwkg4vn8hic6s0z3";
-  };
-
-  nativeBuildInputs = [
-    qmake
-    pkgconfig
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dde-qt-dbus-factory
-    proxychains
-    which
-  ];
-
-  patches = [
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit which proxychains;
-    })
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # for debugging
-    patchShebangs translate_generation.sh
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # for debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin network utils";
-    homepage = "https://github.com/linuxdeepin/dde-network-utils";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-network-utils/fix-paths.patch b/nixpkgs/pkgs/desktops/deepin/dde-network-utils/fix-paths.patch
deleted file mode 100644
index 9f7ecd423c56..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-network-utils/fix-paths.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -ur dde-network-utils-master.orig/dde-network-utils.pro dde-network-utils-master/dde-network-utils.pro
---- dde-network-utils-master.orig/dde-network-utils.pro	2019-04-04 03:37:46.000000000 -0300
-+++ dde-network-utils-master/dde-network-utils.pro	2019-04-07 05:56:28.283195087 -0300
-@@ -52,6 +52,7 @@
- 
- QMAKE_PKGCONFIG_NAME = libddenetworkutils
- QMAKE_PKGCONFIG_DESCRIPTION = libddenetworkutils
-+QMAKE_PKGCONFIG_PREFIX = $$PREFIX
- QMAKE_PKGCONFIG_INCDIR = $$includes.path
- QMAKE_PKGCONFIG_LIBDIR = $$target.path
- QMAKE_PKGCONFIG_DESTDIR = pkgconfig
-diff -ur dde-network-utils-master.orig/networkworker.cpp dde-network-utils-master/networkworker.cpp
---- dde-network-utils-master.orig/networkworker.cpp	2019-04-04 03:37:46.000000000 -0300
-+++ dde-network-utils-master/networkworker.cpp	2019-04-07 05:54:28.656479216 -0300
-@@ -80,7 +80,7 @@
-         }
-     }
- 
--    const bool isAppProxyVaild = QProcess::execute("which", QStringList() << "/usr/bin/proxychains4") == 0;
-+    const bool isAppProxyVaild = QProcess::execute("@which@/bin/which", QStringList() << "@proxychains@/bin/proxychains4") == 0;
-     m_networkModel->onAppProxyExistChanged(isAppProxyVaild);
- }
- 
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-polkit-agent/dde-polkit-agent.plugins-dir.patch b/nixpkgs/pkgs/desktops/deepin/dde-polkit-agent/dde-polkit-agent.plugins-dir.patch
deleted file mode 100644
index a6941e975eb4..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-polkit-agent/dde-polkit-agent.plugins-dir.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 4f457d38e9e75bc97ee7dba633bf0cdd61b8cd5b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
-Date: Fri, 19 Apr 2019 22:01:16 -0300
-Subject: [PATCH] Use an environment variable to find plugins
-
----
- pluginmanager.cpp | 18 ++++++++++++------
- 1 file changed, 12 insertions(+), 6 deletions(-)
-
-diff --git a/pluginmanager.cpp b/pluginmanager.cpp
-index 0c03237..79bdf86 100644
---- a/pluginmanager.cpp
-+++ b/pluginmanager.cpp
-@@ -34,13 +34,19 @@ QList<QButtonGroup*> PluginManager::reduceGetOptions(const QString &actionID)
- void PluginManager::load()
- {
- 
--    QDir dir("/usr/lib/polkit-1-dde/plugins/");
--    QFileInfoList pluginFiles = dir.entryInfoList((QStringList("*.so")));
-+    QStringList pluginsDirs = QProcessEnvironment::systemEnvironment().value("DDE_POLKIT_PLUGINS_DIRS").split(QDir::listSeparator(), QString::SkipEmptyParts);
-+    pluginsDirs.append("/usr/lib/polkit-1-dde/plugins/");
- 
--    for (const QFileInfo &pluginFile : pluginFiles) {
--       AgentExtension *plugin = loadFile(pluginFile.absoluteFilePath());
--       if (plugin)
--           m_plugins << plugin;
-+    for (const QString &dirName : pluginsDirs) {
-+        QDir dir(dirName);
-+
-+        QFileInfoList pluginFiles = dir.entryInfoList((QStringList("*.so")));
-+
-+        for (const QFileInfo &pluginFile : pluginFiles) {
-+            AgentExtension *plugin = loadFile(pluginFile.absoluteFilePath());
-+            if (plugin)
-+                m_plugins << plugin;
-+        }
-     }
- }
- 
--- 
-2.21.0
-
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-polkit-agent/default.nix b/nixpkgs/pkgs/desktops/deepin/dde-polkit-agent/default.nix
deleted file mode 100644
index 1ca9a80abaf1..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-polkit-agent/default.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qttools
-, polkit-qt
-, dtkcore
-, dtkwidget
-, dde-qt-dbus-factory
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "dde-polkit-agent";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "00p8syx6rfwhq7wdsk37hm9mvwd0kwj9h0s39hii892h1psd84q9";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dde-qt-dbus-factory
-    dtkcore
-    dtkwidget
-    polkit-qt
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    patchShebangs translate_generation.sh
-
-    fixPath $out /usr dde-polkit-agent.pro polkit-dde-authentication-agent-1.desktop
-    fixPath /run/current-system/sw /usr/lib/polkit-1-dde/plugins pluginmanager.cpp
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "PolicyKit agent for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/dde-polkit-agent";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix b/nixpkgs/pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix
deleted file mode 100644
index c7efb0f4b044..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-qt-dbus-factory/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, qmake
-, python3
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "dde-qt-dbus-factory";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1wbh4jgvy3c09ivy0vvfk0azkg4d2sv37y23c9rq49jb3sakcjgm";
-  };
-
-  nativeBuildInputs = [
-    qmake
-    python3
-    deepin.setupHook
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    fixPath $out /usr \
-      libdframeworkdbus/DFrameworkdbusConfig.in \
-      libdframeworkdbus/libdframeworkdbus.pro
-  '';
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Qt DBus interface library for Deepin software";
-    homepage = "https://github.com/linuxdeepin/dde-qt-dbus-factory";
-    license = with licenses; [ gpl3Plus lgpl2Plus ];
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/dde-session-ui/default.nix b/nixpkgs/pkgs/desktops/deepin/dde-session-ui/default.nix
deleted file mode 100644
index ff785f16c81d..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dde-session-ui/default.nix
+++ /dev/null
@@ -1,157 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, dbus
-, dde-daemon
-, dde-qt-dbus-factory
-, deepin
-, deepin-desktop-schemas
-, deepin-gettext-tools
-, deepin-icon-theme
-, deepin-wallpapers
-, dtkcore
-, dtkwidget
-, gnugrep
-, gsettings-qt
-, lightdm_qt
-, onboard
-, qtsvg
-, qttools
-, qtx11extras
-, setxkbmap
-, utillinux
-, which
-, xkeyboard_config
-, xorg
-, xrandr
-, wrapGAppsHook
-}:
-
-mkDerivation rec {
-  pname = "dde-session-ui";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1gy9nlpkr9ayrs1z2dvd7h0dqlw6fq2m66d9cs48qyfkr6c8l9jj";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    qttools
-    deepin-gettext-tools
-    wrapGAppsHook
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dbus
-    dde-daemon
-    dde-qt-dbus-factory
-    deepin-desktop-schemas
-    deepin-icon-theme
-    deepin-wallpapers
-    dtkcore
-    dtkwidget
-    gnugrep
-    gsettings-qt
-    lightdm_qt
-    onboard
-    qtsvg
-    qtx11extras
-    setxkbmap
-    utillinux
-    which
-    xkeyboard_config
-    xorg.libXcursor
-    xorg.libXrandr
-    xorg.libXtst
-    xrandr
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-
-    patchShebangs translate_generation.sh translate_desktop.sh
-
-    substituteInPlace translate_desktop.sh --replace "/usr/bin/deepin-desktop-ts-convert" "deepin-desktop-ts-convert"
-
-    find -type f -exec sed -i -e "s,path = /etc,path = $out/etc," {} +
-    find -type f -exec sed -i -e "s,path = /usr,path = $out," {} +
-    find -type f -exec sed -i -e "s,/usr/share/dde-session-ui,$out/share/dde-session-ui," {} +
-
-    substituteInPlace dde-osd/dde-osd_autostart.desktop --replace "Exec=/usr/lib/deepin-daemon/dde-osd" "Exec=$out/lib/deepin-daemon/dde-osd"
-    substituteInPlace dde-osd/com.deepin.dde.osd.service --replace "Exec=/usr/lib/deepin-daemon/dde-osd" "Exec=$out/lib/deepin-daemon/dde-osd"
-    substituteInPlace dde-lock/com.deepin.dde.lockFront.service --replace "Exec=/usr/bin/dde-lock" "Exec=$out/bin/dde-lock"
-    substituteInPlace dmemory-warning-dialog/com.deepin.dde.MemoryWarningDialog.service --replace "Exec=/usr/bin/dmemory-warning-dialog" "Exec=$out/bin/dmemory-warning-dialog"
-    substituteInPlace dde-warning-dialog/com.deepin.dde.WarningDialog.service --replace "Exec=/usr/lib/deepin-daemon/dde-warning-dialog" "Exec=$out/lib/deepin-daemon/dde-warning-dialog"
-    substituteInPlace dde-shutdown/com.deepin.dde.shutdownFront.service --replace "Exec=/usr/bin/dde-shutdown" "Exec=$out/bin/dde-shutdown"
-    substituteInPlace dde-welcome/com.deepin.dde.welcome.service --replace "Exec=/usr/lib/deepin-daemon/dde-welcome" "Exec=$out/lib/deepin-daemon/dde-welcome"
-    substituteInPlace session-ui-guardien/session-ui-guardien.desktop --replace "Exec=/usr/bin/session-ui-guardien" "Exec=$out/bin/session-ui-guardien"
-    substituteInPlace lightdm-deepin-greeter/lightdm-deepin-greeter.desktop --replace "Exec=/usr/bin/deepin-greeter" "Exec=$out/bin/deepin-greeter"
-    substituteInPlace misc/applications/deepin-toggle-desktop.desktop.in --replace "Exec=/usr/lib/deepin-daemon/desktop-toggle" "Exec=${dde-daemon}/lib/deepin-daemon/desktop-toggle"
-
-    # Uncomment (and remove space after $) after packaging deepin-system-monitor
-    #substituteInPlace dde-shutdown/view/contentwidget.cpp --replace "/usr/bin/deepin-system-monitor" "$ {deepin-system-monitor}/bin/deepin-system-monitor"
-
-    substituteInPlace dde-offline-upgrader/main.cpp --replace "dbus-send" "${dbus}/bin/dbus-send"
-    substituteInPlace dde-osd/kblayoutindicator.cpp --replace "dbus-send" "${dbus}/bin/dbus-send"
-    substituteInPlace dde-shutdown/view/contentwidget.cpp --replace "/usr/share/backgrounds/deepin" "${deepin-wallpapers}/share/backgrounds/deepin"
-    substituteInPlace dde-welcome/mainwidget.cpp --replace "dbus-send" "${dbus}/bin/dbus-send"
-    substituteInPlace dmemory-warning-dialog/src/buttondelegate.cpp --replace "dbus-send" "${dbus}/bin/dbus-send"
-    substituteInPlace dmemory-warning-dialog/src/buttondelegate.cpp --replace "kill" "${utillinux}/bin/dbus-send"
-    substituteInPlace global_util/xkbparser.h --replace "/usr/share/X11/xkb/rules/base.xml" "${xkeyboard_config}/share/X11/xkb/rules/base.xml"
-    substituteInPlace lightdm-deepin-greeter/deepin-greeter --replace "/etc/deepin/greeters.d" "$out/etc/deepin/greeters.d"
-    substituteInPlace lightdm-deepin-greeter/main.cpp --replace "/usr/share/icons/deepin" "${deepin-icon-theme}/share/icons/deepin"
-    substituteInPlace lightdm-deepin-greeter/scripts/00-xrandr --replace "egrep" "${gnugrep}/bin/egrep"
-    substituteInPlace lightdm-deepin-greeter/scripts/00-xrandr --replace "xrandr" "${xrandr}/bin/xrandr"
-    substituteInPlace lightdm-deepin-greeter/scripts/lightdm-deepin-greeter --replace "/usr/bin/lightdm-deepin-greeter" "$out/bin/lightdm-deepin-greeter"
-    substituteInPlace session-ui-guardien/guardien.cpp --replace "dde-lock" "$out/bin/dde-lock"
-    substituteInPlace session-ui-guardien/guardien.cpp --replace "dde-shutdown" "$out/bin/dde-shutdown"
-    substituteInPlace dde-lock/lockworker.cpp --replace "dde-switchtogreeter" "$out/bin/dde-switchtogreeter"
-    substituteInPlace dde-lock/lockworker.cpp --replace "which" "${which}/bin/which"
-    substituteInPlace session-widgets/userinfo.cpp --replace "/usr/share/wallpapers/deepin" "${deepin-wallpapers}/share/wallpapers/deepin"
-    substituteInPlace widgets/fullscreenbackground.cpp --replace "/usr/share/wallpapers/deepin" "${deepin-wallpapers}/share/wallpapers/deepin"
-    substituteInPlace widgets/kblayoutwidget.cpp --replace "setxkbmap" "${setxkbmap}/bin/setxkbmap"
-    substituteInPlace widgets/virtualkbinstance.cpp --replace "onboard" "${onboard}/bin/onboard"
-
-    # fix default background url
-    substituteInPlace widgets/fullscreenbackground.cpp --replace "/usr/share/backgrounds/default_background.jpg" "${deepin-wallpapers}/share/backgrounds/deepin/desktop.jpg"
-
-    # NOTES
-    # - on deepin linux /usr/share/icons/default/index.theme is controlled by alternatives, without an equivalent mechanism in NixOS
-    # - do not wrap dde-dman-portal related files: it appears it has been removed: https://github.com/linuxdeepin/dde-session-ui/commit/3bd028cf135ad22c784c0146e447ef34a69af768
-  '';
-
-  dontWrapQtApps = true;
-
-  preFixup = ''
-    gappsWrapperArgs+=(
-      "''${qtWrapperArgs[@]}"
-    )
-  '';
-
-  postFixup = ''
-    # wrapGAppsHook or wrapQtAppsHook does not work with binaries outside of $out/bin or $out/libexec
-    for binary in $out/lib/deepin-daemon/*; do
-      wrapProgram $binary "''${gappsWrapperArgs[@]}"
-    done
-
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin desktop-environment - Session UI module";
-    homepage = "https://github.com/linuxdeepin/dde-session-ui";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/deepin-anything/default.nix b/nixpkgs/pkgs/desktops/deepin/deepin-anything/default.nix
deleted file mode 100644
index 5fa6c93951d0..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/deepin-anything/default.nix
+++ /dev/null
@@ -1,82 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, fetchpatch
-, pkgconfig
-, qtbase
-, udisks2-qt5
-, utillinux
-, dtkcore
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-anything";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1kvyffrii4b012f6ld1ih14qrn7gg5cxbdpbkac0wxb22hnz0azm";
-  };
-
-  patches = [
-    # fix compilation error and add support to kernel 5.6
-    # https://github.com/linuxdeepin/deepin-anything/pull/27
-    (fetchpatch {
-      name = "linux-5.6.patch";
-      url = "https://github.com/linuxdeepin/deepin-anything/commit/764b820c2bcd7248993349b32f91043fc58ee958.patch";
-      sha256 = "1ww4xllxc2s04px6fy8wp5cyw54xaz155ry30sqz21vl8awfr36h";
-    })
-  ];
-
-  outputs = [ "out" "modsrc" ];
-
-  nativeBuildInputs = [
-    pkgconfig
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dtkcore
-    qtbase
-    udisks2-qt5
-    utillinux
-  ];
-
-  enableParallelBuilding = true;
-
-  makeFlags = [
-    "DEB_HOST_MULTIARCH="
-    "PREFIX=${placeholder "out"}"
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # for debugging
-    fixPath $modsrc /usr/src Makefile
-    fixPath $out /usr Makefile
-    fixPath $out /usr server/tool/tool.pro
-    fixPath $out /etc server/tool/tool.pro
-    fixPath $out /usr/bin \
-      server/tool/deepin-anything-tool.service \
-      server/tool/com.deepin.anything.service \
-      server/monitor/deepin-anything-monitor.service
-    sed -e 's,/lib/systemd,$$PREFIX/lib/systemd,' -i server/monitor/src/src.pro server/tool/tool.pro
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # for debugging
-    searchHardCodedPaths $modsrc  # for debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin file search tool";
-    homepage = "https://github.com/linuxdeepin/deepin-anything";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/deepin-calculator/default.nix b/nixpkgs/pkgs/desktops/deepin/deepin-calculator/default.nix
deleted file mode 100644
index 67ead7d314aa..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/deepin-calculator/default.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qttools
-, qtsvg
-, dtkcore
-, dtkwidget
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-calculator";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0f26y7b3giybybhvlzbnwcw8kidzvhq66h0c15n9ww81gnlqf7v5";
-  };
-
-  nativeBuildInputs = [
-    qmake
-    pkgconfig
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-    qtsvg
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-    patchShebangs translate_generation.sh
-    fixPath $out /usr deepin-calculator.pro
-    substituteInPlace deepin-calculator.desktop --replace "Exec=deepin-calculator" "Exec=$out/bin/deepin-calculator"
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Easy to use calculator for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/deepin-calculator";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/deepin-desktop-base/default.nix b/nixpkgs/pkgs/desktops/deepin/deepin-desktop-base/default.nix
deleted file mode 100644
index 74fa53b715d0..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/deepin-desktop-base/default.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, deepin-wallpapers
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-desktop-base";
-  version = "2019.07.10";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0rs7bjy35k5gc5nbba1cijhdz16zny30lgmcf2ckx1pkdszk2vra";
-  };
-
-  nativeBuildInputs = [
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    deepin-wallpapers
-  ];
-
-  # TODO: Fedora recommended dependencies:
-  #   deepin-wallpapers
-  #   plymouth-theme-deepin
-
-  postPatch = ''
-    searchHardCodedPaths
-
-    fixPath $out /etc Makefile
-    fixPath $out /usr Makefile
-
-    # Remove Deepin distro's lsb-release
-    # Don't override systemd timeouts
-    # Remove apt-specific templates
-    echo ----------------------------------------------------------------
-    echo grep --color=always -E 'lsb-release|systemd|python-apt|backgrounds' Makefile
-    grep --color=always -E 'lsb-release|systemd|python-apt|backgrounds' Makefile
-    echo ----------------------------------------------------------------
-    sed -i -E '/lsb-release|systemd|python-apt|backgrounds/d' Makefile
-  '';
-
-  postInstall = ''
-    # Make a symlink for deepin-version
-    ln -s ../lib/deepin/desktop-version $out/etc/deepin-version
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Base assets and definitions for Deepin Desktop Environment";
-    # TODO: revise
-    longDescription = ''
-      This package provides some components for Deepin desktop environment.
-      - deepin logo
-      - deepin desktop version
-      - login screen background image
-      - language information
-    '';
-    homepage = "https://github.com/linuxdeepin/deepin-desktop-base";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix b/nixpkgs/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix
deleted file mode 100644
index 15f9498cf0db..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/deepin-desktop-schemas/default.nix
+++ /dev/null
@@ -1,79 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, python3
-, dconf
-, glib
-, deepin-gtk-theme
-, deepin-icon-theme
-, deepin-sound-theme
-, deepin-wallpapers
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-desktop-schemas";
-  version = "3.13.9";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1c69j6s7561zb1hrd1j3ihji1nvpgfzfgnp6svsv8jd8dg8vs8l1";
-  };
-
-  nativeBuildInputs = [
-    python3
-    glib.dev
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dconf
-    deepin-gtk-theme
-    deepin-icon-theme
-    deepin-sound-theme
-    deepin-wallpapers
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-
-    # fix default background url
-    sed -i -e 's,/usr/share/backgrounds/default_background.jpg,/usr/share/backgrounds/deepin/desktop.jpg,' \
-      overrides/common/com.deepin.wrap.gnome.desktop.override
-
-    fixPath ${deepin-wallpapers} /usr/share/backgrounds \
-      overrides/common/com.deepin.wrap.gnome.desktop.override
-
-    fixPath ${deepin-wallpapers} /usr/share/wallpapers/deepin \
-      schemas/com.deepin.dde.appearance.gschema.xml
-
-    # still hardcoded paths:
-    #   /etc/gnome-settings-daemon/xrandr/monitors.xml                                ? gnome3.gnome-settings-daemon
-    #   /usr/share/backgrounds/gnome/adwaita-lock.jpg                                 ? gnome3.gnome-backgrounds
-    #   /usr/share/backgrounds/gnome/adwaita-timed.xml                                gnome3.gnome-backgrounds
-    #   /usr/share/desktop-directories
-  '';
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
-
-  doCheck = true;
-  checkTarget = "test";
-
-  postInstall = ''
-    glib-compile-schemas --strict $out/share/glib-2.0/schemas
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "GSettings deepin desktop-wide schemas";
-    homepage = "https://github.com/linuxdeepin/deepin-desktop-schemas";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/deepin-editor/default.nix b/nixpkgs/pkgs/desktops/deepin/deepin-editor/default.nix
deleted file mode 100644
index 0124ca8cc9e2..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/deepin-editor/default.nix
+++ /dev/null
@@ -1,72 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, cmake
-, deepin
-, dtkcore
-, dtkwidget
-, kcodecs
-, qttools
-, syntax-highlighting
-, wrapQtAppsHook
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-editor";
-  version = "1.2.9.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0g7c3adqwn8i4ndxdrzibahr75dddz1fiqnsh3bjj1jjr86rv4ks";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    pkgconfig
-    qttools
-    wrapQtAppsHook
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-    kcodecs
-    syntax-highlighting
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-
-    patchShebangs translate_generation.sh
-
-    fixPath $out /usr \
-      CMakeLists.txt \
-      dedit/main.cpp \
-      src/resources/settings.json \
-      src/thememodule/themelistmodel.cpp
-
-    substituteInPlace deepin-editor.desktop \
-      --replace "Exec=deepin-editor" "Exec=$out/bin/deepin-editor"
-
-    substituteInPlace src/editwrapper.cpp \
-      --replace "appExec = \"deepin-editor\"" "appExec = \"$out/bin/deepin-editor\""
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Simple editor for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/deepin-editor";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo worldofpeace ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/deepin-gettext-tools/default.nix b/nixpkgs/pkgs/desktops/deepin/deepin-gettext-tools/default.nix
deleted file mode 100644
index 432add458deb..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/deepin-gettext-tools/default.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, gettext
-, python3Packages
-, perlPackages
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-gettext-tools";
-  version = "1.0.8";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "03cwa82dd14a31v44jd3z0kpiri6g21ar4f48s8ph78nvjy55880";
-  };
-
-  nativeBuildInputs = [
-    python3Packages.wrapPython
-  ];
-
-  buildInputs = [
-    gettext
-    perlPackages.perl
-    perlPackages.XMLLibXML
-    perlPackages.ConfigTiny
-    python3Packages.python
-  ];
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
-
-  postPatch = ''
-    sed -e 's/sudo cp/cp/' -i src/generate_mo.py
-  '';
-
-  postFixup = ''
-    wrapPythonPrograms
-    wrapPythonProgramsIn "$out/lib/${pname}"
-    wrapProgram $out/bin/deepin-desktop-ts-convert --set PERL5LIB $PERL5LIB
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin Internationalization utilities";
-    homepage = "https://github.com/linuxdeepin/deepin-gettext-tools";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/deepin-gtk-theme/default.nix b/nixpkgs/pkgs/desktops/deepin/deepin-gtk-theme/default.nix
deleted file mode 100644
index eee074705852..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/deepin-gtk-theme/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, gtk-engine-murrine
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-gtk-theme";
-  version = "17.10.11";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = "deepin-gtk-theme";
-    rev = version;
-    sha256 = "0zs6mq70yd1k3d9zm3q6zxnw1md56r4imad5imdxwx58yxdx47fw";
-  };
-
-  propagatedUserEnvPkgs = [
-    gtk-engine-murrine
-  ];
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin GTK Theme";
-    homepage = "https://github.com/linuxdeepin/deepin-gtk-theme";
-    license = licenses.lgpl3;
-    platforms = platforms.unix;
-    maintainers = [ maintainers.romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/deepin-icon-theme/default.nix b/nixpkgs/pkgs/desktops/deepin/deepin-icon-theme/default.nix
deleted file mode 100644
index b56b219faffa..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/deepin-icon-theme/default.nix
+++ /dev/null
@@ -1,67 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, gtk3
-, xcursorgen
-, papirus-icon-theme
-, hicolor-icon-theme
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-icon-theme";
-  version = "2020.05.21";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0b1s6kf0q804zbbghly981wzacy1spi8168shf3x8w95rqj6463p";
-  };
-
-  nativeBuildInputs = [
-    gtk3
-    xcursorgen
-  ];
-
-  propagatedBuildInputs = [
-    papirus-icon-theme
-    hicolor-icon-theme
-  ];
-
-  dontDropIconThemeCache = true;
-
-  buildTargets = "all hicolor-links";
-
-  postPatch = ''
-    # fix: hicolor links should follow the deepin -> bloom naming change
-    # https://github.com/linuxdeepin/deepin-icon-theme/pull/24
-    substituteInPlace tools/hicolor.links --replace deepin bloom
-
-    substituteInPlace Sea/index.theme --replace Inherits=deepin Inherits=bloom
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir -p $out/share/icons
-    cp -vai bloom* Sea $out/share/icons
-
-    for theme in $out/share/icons/*; do
-      gtk-update-icon-cache $theme
-    done
-
-    cp -vai usr/share/icons/hicolor $out/share/icons
-
-    runHook postInstall
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Icons for the Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/deepin-icon-theme";
-    license = licenses.gpl3;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/deepin-image-viewer/default.nix b/nixpkgs/pkgs/desktops/deepin/deepin-image-viewer/default.nix
deleted file mode 100644
index 43c18c85abcb..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/deepin-image-viewer/default.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qttools
-, qtsvg
-, qtx11extras
-, dtkcore
-, dtkwidget
-, qt5integration
-, freeimage
-, libraw
-, libexif
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-image-viewer";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "01524hfdy3wvdf07n9b3qb8jdpxzg2hwjpl4gxvr68qws5nbnb3c";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    qtsvg
-    qtx11extras
-    dtkcore
-    dtkwidget
-    qt5integration
-    freeimage
-    libraw
-    libexif
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    patchShebangs viewer/generate_translations.sh
-    fixPath $out /usr viewer/com.deepin.ImageViewer.service
-    sed -i qimage-plugins/freeimage/freeimage.pro \
-           qimage-plugins/libraw/libraw.pro \
-      -e "s,\$\$\[QT_INSTALL_PLUGINS\],$out/$qtPluginPrefix,"
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Image Viewer for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/deepin-image-viewer";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    badPlatforms = [ "aarch64-linux" ]; # See https://github.com/NixOS/nixpkgs/pull/46463#issuecomment-420274189
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/deepin-menu/default.nix b/nixpkgs/pkgs/desktops/deepin/deepin-menu/default.nix
deleted file mode 100644
index 983fe4e1c4d5..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/deepin-menu/default.nix
+++ /dev/null
@@ -1,54 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, dtkcore
-, dtkwidget
-, qt5integration
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-menu";
-  version = "3.4.8";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "09i0ybllymlj7s46pxma5py6x8nknfja4gxn5gj9kpf2c37qsqjc";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-    qt5integration
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    fixPath $out /usr \
-      data/com.deepin.menu.service \
-      deepin-menu.desktop \
-      deepin-menu.pro
-  '';
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin menu service";
-    homepage = "https://github.com/linuxdeepin/deepin-menu";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/deepin-movie-reborn/default.nix b/nixpkgs/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
deleted file mode 100644
index 68daffb0d157..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
+++ /dev/null
@@ -1,85 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, fetchpatch
-, cmake
-, pkgconfig
-, qttools
-, qtx11extras
-, dtkcore
-, dtkwidget
-, ffmpeg_3
-, ffmpegthumbnailer
-, mpv
-, pulseaudio
-, libdvdnav
-, libdvdread
-, xorg
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-movie-reborn";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0cly8q0514a58s3h3wsvx9yxar7flz6i2q8xkrkfjias22b3z7b0";
-  };
-
-  outputs = [ "out" "dev" ];
-
-  nativeBuildInputs = [
-    cmake
-    pkgconfig
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-    ffmpeg_3
-    ffmpegthumbnailer
-    libdvdnav
-    libdvdread
-    mpv
-    pulseaudio
-    qtx11extras
-    xorg.libXdmcp
-    xorg.libXtst
-    xorg.libpthreadstubs
-    xorg.xcbproto
-  ];
-
-  patches = [
-    # fix: build failed if cannot find dtk-settings tool
-    (fetchpatch {
-      url = "https://github.com/linuxdeepin/deepin-movie-reborn/commit/fbb307b.patch";
-      sha256 = "0915za0khki0729rvcfpxkh6vxhqwc47cgcmjc90kfq1004221vx";
-    })
-  ];
-
-  NIX_LDFLAGS = "-ldvdnav";
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-
-    sed -i src/libdmr/libdmr.pc.in -e "s,/usr,$out," -e 's,libdir=''${prefix}/,libdir=,'
-
-    substituteInPlace src/deepin-movie.desktop \
-      --replace "Exec=deepin-movie" "Exec=$out/bin/deepin-movie"
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin movie player";
-    homepage = "https://github.com/linuxdeepin/deepin-movie-reborn";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix b/nixpkgs/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix
deleted file mode 100644
index 76d8847b73fc..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/deepin-shortcut-viewer/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, dtkcore
-, dtkwidget
-, qt5integration
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-shortcut-viewer";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "13vz8kjdqkrhgpvdgrvwn62vwzbyqp88hjm5m4rcqg3bh56709ma";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-    qt5integration
-  ];
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Pop-up shortcut viewer for Deepin applications";
-    homepage = "https://github.com/linuxdeepin/deepin-shortcut-viewer";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/deepin-sound-theme/default.nix b/nixpkgs/pkgs/desktops/deepin/deepin-sound-theme/default.nix
deleted file mode 100644
index e71c0cb77c5b..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/deepin-sound-theme/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-sound-theme";
-  version = "15.10.3";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = "deepin-sound-theme";
-    rev = version;
-    sha256 = "1sw4nrn7q7wk1hpicm05apyc0mihaw42iqm52wb8ib8gm1qiylr9";
-  };
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin sound theme";
-    homepage = "https://github.com/linuxdeepin/deepin-sound-theme";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/deepin-terminal/default.nix b/nixpkgs/pkgs/desktops/deepin/deepin-terminal/default.nix
deleted file mode 100644
index ae3121379427..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/deepin-terminal/default.nix
+++ /dev/null
@@ -1,117 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, pkgconfig
-, cmake
-, ninja
-, vala_0_40
-, fetchpatch
-, gettext
-, at-spi2-core
-, dbus
-, epoxy
-, expect
-, gtk3
-, json-glib
-, libXdmcp
-, libgee
-, libpthreadstubs
-, librsvg
-, libsecret
-, libtasn1
-, libxcb
-, libxkbcommon
-, p11-kit
-, pcre
-, vte
-, wnck
-, libselinux
-, gnutls
-, pcre2
-, libsepol
-, utillinux
-, deepin-menu
-, deepin-shortcut-viewer
-, deepin
-, wrapGAppsHook
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-terminal";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = "deepin-terminal";
-    rev = version;
-    sha256 = "1929saj828b438d07caw3cjhqq60v6gni7mi3fqrg9wdjz81xwv7";
-  };
-
-  patches = [
-    # Fix build with VTE 0.60
-    (fetchpatch {
-      url = "https://github.com/linuxdeepin/deepin-terminal/commit/542d1035b609698ee81aa7971d20ca8e5930743d.patch";
-      sha256 = "1pihiy70yc25fm5fx7i7v9gmi65v4mhldvi7xwv8rgr2z6hbfj41";
-    })
-  ];
-
-  nativeBuildInputs = [
-    pkgconfig
-    cmake
-    ninja
-    vala_0_40 # xcb.vapi:411.3-411.48: error: missing return statement at end of subroutine body
-    gettext
-    libselinux libsepol utillinux # required by gio
-    deepin.setupHook
-    wrapGAppsHook
-  ];
-
-  buildInputs = [
-    at-spi2-core
-    dbus
-    deepin-menu
-    deepin-shortcut-viewer
-    epoxy
-    expect
-    gtk3
-    json-glib
-    libXdmcp
-    libgee
-    libpthreadstubs
-    librsvg
-    libsecret
-    libtasn1
-    libxcb
-    libxkbcommon
-    p11-kit
-    pcre
-    vte
-    wnck
-    gnutls
-    pcre2
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-  '';
-
-  cmakeFlags = [
-    "-DTEST_BUILD=OFF"
-    "-DUSE_VENDOR_LIB=OFF"
-    "-DVERSION=${version}"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Default terminal emulator for Deepin";
-    longDescription = ''
-      Deepin terminal, it sharpens your focus in the world of command line!
-      It is an advanced terminal emulator with workspace, multiple
-      windows, remote management, quake mode and other features.
-    '';
-    homepage = "https://github.com/linuxdeepin/deepin-terminal";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/deepin-turbo/default.nix b/nixpkgs/pkgs/desktops/deepin/deepin-turbo/default.nix
deleted file mode 100644
index 6bba51ac674b..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/deepin-turbo/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, cmake
-, pkgconfig
-, qtbase
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "deepin-turbo";
-  version = "0.0.3";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "15l0pgszmbirlaxj04ishj43kyvigsl1yaf58kxlbdb3lkmcp5f3";
-  };
-
-  nativeBuildInputs = [
-    cmake
-    pkgconfig
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    qtbase
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # for debugging
-    fixPath $out /usr/lib/systemd src/booster-dtkwidget/CMakeLists.txt
-    fixPath $out /usr/lib/deepin-turbo src/booster-dtkwidget/deepin-turbo-booster-dtkwidget.service
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # for debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "A daemon that helps to launch applications faster";
-    homepage = "https://github.com/linuxdeepin/deepin-turbo";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/deepin-wallpapers/default.nix b/nixpkgs/pkgs/desktops/deepin/deepin-wallpapers/default.nix
deleted file mode 100644
index 4fa3d6043d5c..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/deepin-wallpapers/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, dde-api
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "deepin-wallpapers";
-  version = "1.7.7";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = "deepin-wallpapers";
-    rev = version;
-    sha256 = "09cfnxbpms98ibqbi4xd51181q3az5n8rmndcdr9w12kyzniz7xv";
-  };
-
-  nativeBuildInputs = [
-    dde-api
-    deepin.setupHook
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths # debugging
-
-    sed -i -e "s:/usr/lib/deepin-api:${dde-api}/lib/deepin-api:" Makefile
-    sed -i -e "s:/usr/share/wallpapers:$out/share/wallpapers:" Makefile
-  '';
-
-  installPhase = ''
-    mkdir -p $out/share/wallpapers/deepin
-    cp -a deepin/* deepin-community/* deepin-private/* $out/share/wallpapers/deepin
-    mkdir -p $out/var/cache
-    cp -a image-blur $out/var/cache
-    
-    # Suggested by upstream
-    mkdir -p $out/share/backgrounds/deepin
-    ln -s ../../wallpapers/deepin/Hummingbird_by_Shu_Le.jpg $out/share/backgrounds/deepin/desktop.jpg
-    ln -s $(echo -n $out/share/wallpapers/deepin/Hummingbird_by_Shu_Le.jpg | md5sum | cut -d " " -f 1).jpg \
-      $out/var/cache/image-blur/$(echo -n $out/share/backgrounds/deepin/desktop.jpg | md5sum | cut -d " " -f 1).jpg
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Wallpapers for Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/deepin-wallpapers";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/default.nix b/nixpkgs/pkgs/desktops/deepin/default.nix
deleted file mode 100644
index b177b2ccf356..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/default.nix
+++ /dev/null
@@ -1,62 +0,0 @@
-{ pkgs, makeScope, libsForQt5 }:
-let
-  packages = self: with self; {
-    setupHook = ./setup-hook.sh;
-
-    # Update script tailored to deepin packages from git repository
-    updateScript = { pname, version, src }:
-      pkgs.genericUpdater {
-        inherit pname version;
-        attrPath = "deepin.${pname}";
-        versionLister = "${pkgs.common-updater-scripts}/bin/list-git-tags ${src.meta.homepage}";
-        ignoredVersions = "^2014(\\.|rc)|^v[0-9]+";
-      };
-
-    dde-api = callPackage ./dde-api { };
-    dde-calendar = callPackage ./dde-calendar { };
-    dde-control-center = callPackage ./dde-control-center { };
-    dde-daemon = callPackage ./dde-daemon { };
-    dde-dock = callPackage ./dde-dock { };
-    dde-file-manager = callPackage ./dde-file-manager { };
-    dde-kwin = callPackage ./dde-kwin { };
-    dde-launcher = callPackage ./dde-launcher { };
-    dde-network-utils = callPackage ./dde-network-utils { };
-    dde-polkit-agent = callPackage ./dde-polkit-agent { };
-    dde-qt-dbus-factory = callPackage ./dde-qt-dbus-factory { };
-    dde-session-ui = callPackage ./dde-session-ui { };
-    deepin-anything = callPackage ./deepin-anything { };
-    deepin-calculator = callPackage ./deepin-calculator { };
-    deepin-desktop-base = callPackage ./deepin-desktop-base { };
-    deepin-desktop-schemas = callPackage ./deepin-desktop-schemas { };
-    deepin-editor = callPackage ./deepin-editor { };
-    deepin-gettext-tools = callPackage ./deepin-gettext-tools { };
-    deepin-gtk-theme = callPackage ./deepin-gtk-theme { };
-    deepin-icon-theme = callPackage ./deepin-icon-theme { };
-    deepin-image-viewer = callPackage ./deepin-image-viewer { };
-    deepin-menu = callPackage ./deepin-menu { };
-    deepin-movie-reborn = callPackage ./deepin-movie-reborn { };
-    deepin-shortcut-viewer = callPackage ./deepin-shortcut-viewer { };
-    deepin-sound-theme = callPackage ./deepin-sound-theme { };
-    deepin-terminal = callPackage ./deepin-terminal {
-      wnck = pkgs.libwnck3;
-    };
-    deepin-turbo = callPackage ./deepin-turbo { };
-    deepin-wallpapers = callPackage ./deepin-wallpapers { };
-    disomaster = callPackage ./disomaster { };
-    dpa-ext-gnomekeyring = callPackage ./dpa-ext-gnomekeyring { };
-    dtkcore = callPackage ./dtkcore { };
-    dtkwidget = callPackage ./dtkwidget { };
-    dtkwm = callPackage ./dtkwm { };
-    go-dbus-factory = callPackage ./go-dbus-factory { };
-    go-gir-generator = callPackage ./go-gir-generator { };
-    go-lib = callPackage ./go-lib { };
-    qcef = callPackage ./qcef { };
-    qt5integration = callPackage ./qt5integration { };
-    qt5platform-plugins = callPackage ./qt5platform-plugins { };
-    startdde = callPackage ./startdde { };
-    udisks2-qt5 = callPackage ./udisks2-qt5 { };
-
-  };
-
-in
-makeScope libsForQt5.newScope packages
diff --git a/nixpkgs/pkgs/desktops/deepin/disomaster/default.nix b/nixpkgs/pkgs/desktops/deepin/disomaster/default.nix
deleted file mode 100644
index 89cbe34ceaa2..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/disomaster/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qtbase
-, libisoburn
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "disomaster";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1kmhlnw37pdmlf7k9zry657xlhz40m9nzg361kiyisn186pfqpws";
-  };
-
-  nativeBuildInputs = [
-    deepin.setupHook
-    pkgconfig
-    qmake
-  ];
-
-  buildInputs = [
-    libisoburn
-    qtbase
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-  '';
-
-  qmakeFlags = [
-    "QMAKE_PKGCONFIG_PREFIX=${placeholder "out"}"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "A libisoburn wrapper for Qt";
-    homepage = "https://github.com/linuxdeepin/disomaster";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo worldofpeace ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix b/nixpkgs/pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix
deleted file mode 100644
index 2caef7ce9166..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dpa-ext-gnomekeyring/default.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qttools
-, gnome3
-, dde-polkit-agent
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "dpa-ext-gnomekeyring";
-  version = "5.0.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "168j42nwyw7vcgwc0fha2pjpwwlgir70fq1hns4ia1dkdqa1nhzw";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dde-polkit-agent
-    gnome3.libgnome-keyring
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths
-    patchShebangs translate_generation.sh
-    fixPath $out /usr dpa-ext-gnomekeyring.pro gnomekeyringextention.cpp
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "GNOME keyring extension for dde-polkit-agent";
-    homepage = "https://github.com/linuxdeepin/dpa-ext-gnomekeyring";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/dtkcore/default.nix b/nixpkgs/pkgs/desktops/deepin/dtkcore/default.nix
deleted file mode 100644
index 570b0cc2c11e..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dtkcore/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, gsettings-qt
-, pythonPackages
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "dtkcore";
-  version = "2.1.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0xdh6mmrv8yr6mjmlwj0fv037parkkwfwlaibcbrskwxqp9iri1y";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    pythonPackages.wrapPython
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    gsettings-qt
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-
-    # Fix shebang
-    sed -i tools/script/dtk-translate.py -e "s,#!env,#!/usr/bin/env,"
-  '';
-
-  qmakeFlags = [
-    "DTK_VERSION=${version}"
-    "LIB_INSTALL_DIR=${placeholder "out"}/lib"
-    "MKSPECS_INSTALL_DIR=${placeholder "out"}/mkspecs"
-  ];
-
-  postFixup = ''
-    chmod +x $out/lib/libdtk-${version}/DCore/bin/*.py
-    wrapPythonProgramsIn "$out/lib/libdtk-${version}/DCore/bin" "$out $pythonPath"
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin tool kit core library";
-    homepage = "https://github.com/linuxdeepin/dtkcore";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/dtkwidget/default.nix b/nixpkgs/pkgs/desktops/deepin/dtkwidget/default.nix
deleted file mode 100644
index 9be222830db4..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dtkwidget/default.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qttools
-, qtmultimedia
-, qtsvg
-, qtx11extras
-, librsvg
-, libstartup_notification
-, gsettings-qt
-, dde-qt-dbus-factory
-, dtkcore
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "dtkwidget";
-  version = "2.1.1";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0yqrm1p0k1843ldvcd79dxl26ybyl5kljl6vwhzc58sx7pw4qmvh";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-    qttools
-  ];
-
-  buildInputs = [
-    qtmultimedia
-    qtsvg
-    qtx11extras
-    librsvg
-    libstartup_notification
-    gsettings-qt
-    dde-qt-dbus-factory
-    dtkcore
-  ];
-
-  outRef = placeholder "out";
-
-  qmakeFlags = [
-    "INCLUDE_INSTALL_DIR=${outRef}/include"
-    "LIB_INSTALL_DIR=${outRef}/lib"
-    "QT_HOST_DATA=${outRef}"
-  ];
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin graphical user interface library";
-    homepage = "https://github.com/linuxdeepin/dtkwidget";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/dtkwm/default.nix b/nixpkgs/pkgs/desktops/deepin/dtkwm/default.nix
deleted file mode 100644
index 56031f11492a..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/dtkwm/default.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, fetchpatch
-, pkgconfig
-, qmake
-, qtx11extras
-, dtkcore
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "dtkwm";
-  version = "2.0.12";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0rdzzqsggqarldwb4yp5s4sf5czicgxbdmibjn0pw32129r2d1g3";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-  ];
-
-  buildInputs = [
-    dtkcore
-    qtx11extras
-  ];
-
-  patches = [
-    # Set DTK_MODULE_NAME
-    (fetchpatch {
-      url = "https://github.com/linuxdeepin/dtkwm/commit/2490891a.patch";
-      sha256 = "0krydxjpnaihkgs1n49b6mcf3rd3lkispcnkb1j5vpfs9hp9f48j";
-    })
-  ];
-
-  outRef = placeholder "out";
-
-  qmakeFlags = [
-    "QT_HOST_DATA=${outRef}"
-    "INCLUDE_INSTALL_DIR=${outRef}/include"
-    "LIB_INSTALL_DIR=${outRef}/lib"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Deepin graphical user interface library";
-    homepage = "https://github.com/linuxdeepin/dtkwm";
-    license = licenses.gpl3Plus;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/go-dbus-factory/default.nix b/nixpkgs/pkgs/desktops/deepin/go-dbus-factory/default.nix
deleted file mode 100644
index 1c1afd9d099c..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/go-dbus-factory/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "go-dbus-factory";
-  version = "0.9.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "06fqyad9f50gcjsjkh7929yyaprahdjhnd0dr4gl2797a7wysl3f";
-  };
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-  ];
-
-  postPatch = ''
-    sed -i -e 's:/share/gocode:/share/go:' Makefile
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "GoLang DBus factory for the Deepin Desktop Environment";
-    homepage = "https://github.com/linuxdeepin/go-dbus-factory";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/go-gir-generator/default.nix b/nixpkgs/pkgs/desktops/deepin/go-gir-generator/default.nix
deleted file mode 100644
index 7768f9afc85e..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/go-gir-generator/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ stdenv
-, fetchpatch
-, fetchFromGitHub
-, pkgconfig
-, go
-, gobject-introspection
-, libgudev
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "go-gir-generator";
-  version = "2.0.2";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1ydzll8zlk897iqcihvv6p046p0rzr4qqz2drmz2nx95njp8n03a";
-  };
-
-  patches = [
-    # Fix compatibility with glib 2.63+
-    # https://github.com/linuxdeepin/go-gir-generator/pull/11
-    (fetchpatch {
-      url = "https://github.com/linuxdeepin/go-gir-generator/commit/7dea15a1a491f28d2ac8c411068ccefeba01aae3.patch";
-      sha256 = "182d30qkj1rx9ynpj9zfxh53nykvfq9wxk4502zc42gfvadgzfgd";
-    })
-  ];
-
-  nativeBuildInputs = [
-    pkgconfig
-    go
-  ];
-
-  buildInputs = [
-    gobject-introspection
-    libgudev
-  ];
-
-  postPatch = ''
-    sed -i -e 's:/share/gocode:/share/go:' Makefile
-  '';
-
-  makeFlags = [
-    "PREFIX=${placeholder "out"}"
-    "GOCACHE=$(TMPDIR)/go-cache"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Generate static golang bindings for GObject";
-    homepage = "https://github.com/linuxdeepin/go-gir-generator";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/go-lib/default.nix b/nixpkgs/pkgs/desktops/deepin/go-lib/default.nix
deleted file mode 100644
index 7129d912e30d..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/go-lib/default.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{ stdenv
-, fetchFromGitHub
-, glib
-, xorg
-, gdk-pixbuf
-, pulseaudio
-, mobile-broadband-provider-info
-, deepin
-}:
-
-stdenv.mkDerivation rec {
-  pname = "go-lib";
-  version = "5.4.5";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "021sq7nzvfwsa5ccsb3vdjk53m7cf693xm4wkdkrkf8pja6vz94q";
-  };
-
-  buildInputs = [
-    glib
-    xorg.libX11
-    gdk-pixbuf
-    pulseaudio
-    mobile-broadband-provider-info
-  ];
-
-  installPhase = ''
-    mkdir -p $out/share/go/src/pkg.deepin.io/lib
-    cp -a * $out/share/go/src/pkg.deepin.io/lib
-
-    rm -r $out/share/go/src/pkg.deepin.io/lib/debian
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Go bindings for Deepin Desktop Environment development";
-    homepage = "https://github.com/linuxdeepin/go-lib";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/qcef/default.nix b/nixpkgs/pkgs/desktops/deepin/qcef/default.nix
deleted file mode 100644
index c37915377d88..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/qcef/default.nix
+++ /dev/null
@@ -1,127 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, cmake
-, qtbase
-, qttools
-, qtwebchannel
-, qtx11extras
-, gnome2
-, nss
-, nspr
-, alsaLib
-, atk
-, cairo
-, cups
-, dbus
-, expat
-, fontconfig
-, gdk-pixbuf
-, glib
-, gtk2
-, libxcb
-, pango
-, pulseaudio
-, xorg
-, deepin
-}:
-
-let
-  rpahtLibraries = [
-    stdenv.cc.cc.lib # libstdc++.so.6
-    alsaLib
-    atk
-    cairo
-    cups
-    dbus
-    expat
-    fontconfig
-    gdk-pixbuf
-    glib
-    gnome2.GConf
-    gtk2
-    libxcb
-    nspr
-    nss
-    pango
-    pulseaudio
-    xorg.libX11
-    xorg.libXScrnSaver
-    xorg.libXcomposite
-    xorg.libXcursor
-    xorg.libXdamage
-    xorg.libXext
-    xorg.libXfixes
-    xorg.libXi
-    xorg.libXrandr
-    xorg.libXrender
-    xorg.libXtst
-  ];
-
-  libPath = stdenv.lib.makeLibraryPath rpahtLibraries;
-
-in
-mkDerivation rec {
-  pname = "qcef";
-  version = "1.1.8";
-
-  srcs = [
-    (fetchFromGitHub {
-      owner = "linuxdeepin";
-      repo = pname;
-      rev = version;
-      sha256 = "14a33af1h3wj3yph080c1ri3m27bqj1v1k0jdqc63x7c3smnpwfk";
-      name = pname;
-    })
-    (fetchFromGitHub {
-      owner = "linuxdeepin";
-      repo = "cef-binary";
-      rev = "fecf00339545d2819224333cc506d5aa22ae8008";
-      sha256 = "06i1zc7ciy7d0qhndiwpjrsii0x5i5hg9j6ddi4w5yf1nzgsrj4n";
-      name = "cef-binary";
-    })
-  ];
-
-  sourceRoot = pname;
-
-  nativeBuildInputs = [
-    pkgconfig
-    cmake
-    qttools
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    qtbase
-    qtwebchannel
-    qtx11extras
-  ] ++ rpahtLibraries;
-
-  postUnpack = ''
-    rmdir ${pname}/cef
-    ln -s ../cef-binary ${pname}/cef
-  '';
-
-  postPatch = ''
-    searchHardCodedPaths
-    fixPath $out /usr src/core/qcef_global_settings.{h,cpp}
-    sed '/COMMAND rm -rf Release Resources/a COMMAND ldd qcef/libcef.so' -i src/CMakeLists.txt
-    sed '/COMMAND rm -rf Release Resources/a COMMAND patchelf --set-rpath ${libPath} qcef/libcef.so' -i src/CMakeLists.txt
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version; src = (builtins.head srcs); };
-
-  meta = with stdenv.lib; {
-    description = "Qt5 binding of Chromium Embedded Framework";
-    homepage = "https://github.com/linuxdeepin/qcef";
-    license = licenses.lgpl3;
-    platforms = platforms.linux;
-    badPlatforms = [ "aarch64-linux" ]; # the cef-binary is not available
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/qt5integration/default.nix b/nixpkgs/pkgs/desktops/deepin/qt5integration/default.nix
deleted file mode 100644
index e3bbaba068bd..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/qt5integration/default.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, mtdev
-, lxqt
-, qtx11extras
-, qtmultimedia
-, qtsvg
-, qt5platform-plugins
-, qtstyleplugins
-, dtkcore
-, dtkwidget
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "qt5integration";
-  version = "5.0.0";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "140wb3vcm2ji8jhqdxv8f4shiknia1zk8fssqlp09kzc1cmb4ncy";
-  };
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-  ];
-
-  buildInputs = [
-    dtkcore
-    dtkwidget
-    qt5platform-plugins
-    mtdev
-    lxqt.libqtxdg
-    qtstyleplugins
-    qtx11extras
-    qtmultimedia
-    qtsvg
-  ];
-
-  postPatch = ''
-    sed -i dstyleplugin/dstyleplugin.pro \
-           platformthemeplugin/qt5deepintheme-plugin.pro \
-           iconengineplugins/svgiconengine/svgiconengine.pro \
-           imageformatplugins/svg/svg.pro \
-      -e "s,\$\$\[QT_INSTALL_PLUGINS\],$out/$qtPluginPrefix,"
-  '';
-
-  enableParallelBuilding = true;
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "Qt platform theme integration plugins for DDE";
-    homepage = "https://github.com/linuxdeepin/qt5integration";
-    license = with licenses; [ gpl3 lgpl2Plus bsd2 ];
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/qt5platform-plugins/default.nix b/nixpkgs/pkgs/desktops/deepin/qt5platform-plugins/default.nix
deleted file mode 100644
index 33e4863c0d94..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/qt5platform-plugins/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, pkgconfig
-, qmake
-, qtx11extras
-, libSM
-, mtdev
-, cairo
-, deepin
-, qtbase
-}:
-
-mkDerivation rec {
-  pname = "qt5platform-plugins";
-  version = "5.0.11";
-
-  srcs = [
-    (fetchFromGitHub {
-      owner = "linuxdeepin";
-      repo = pname;
-      rev = version;
-      sha256 = "14xkr3p49716jc9v7ksj6jgcmfa65qicqrmablizfi71srg3z2pr";
-    })
-    qtbase.src
-  ];
-
-  sourceRoot = "source";
-
-  nativeBuildInputs = [
-    pkgconfig
-    qmake
-  ];
-
-  buildInputs = [
-    qtx11extras
-    libSM
-    mtdev
-    cairo
-    qtbase
-  ];
-
-  postPatch = ''
-    # The Qt5 platforms plugin is vendored in the package, however what's there is not always up-to-date with what's in nixpkgs.
-    # We simply copy the headers from qtbase's source tarball.
-    mkdir -p platformplugin/libqt5xcbqpa-dev/${qtbase.version}
-    cp -r ../qtbase-everywhere-src-${qtbase.version}/src/plugins/platforms/xcb/*.h platformplugin/libqt5xcbqpa-dev/${qtbase.version}/
-  '';
-
-  qmakeFlags = [
-    "INSTALL_PATH=${placeholder "out"}/${qtbase.qtPluginPrefix}/platforms"
-  ];
-
-  passthru.updateScript = deepin.updateScript { inherit pname version; src = (builtins.head srcs); };
-
-  meta = with stdenv.lib; {
-    description = "Qt platform theme integration plugin for DDE";
-    homepage = "https://github.com/linuxdeepin/qt5platform-plugins";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/setup-hook.sh b/nixpkgs/pkgs/desktops/deepin/setup-hook.sh
deleted file mode 100755
index ce1d7330a222..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/setup-hook.sh
+++ /dev/null
@@ -1,64 +0,0 @@
-# Helper functions for deepin packaging
-
-searchHardCodedPaths() {
-    # Usage:
-    #
-    #   searchHardCodedPaths [-a] [<path>]
-    #
-    # Looks for ocurrences of FHS hard coded paths and command
-    # invocations in the given path (default: current directory) for
-    # the purpose of debugging a derivation. The option -a enables
-    # processing binary files as if they were text.
-
-    local binary
-    if [ "$1" = "-a" ]; then
-        binary="-a"
-        shift
-    fi
-
-    local path=$1
-
-    echo ----------- looking for command invocations in $path
-    grep --color=always -r -E '\<(ExecStart|Exec|startDetached|execute|exec\.(Command|LookPath))\>' $path || true
-
-    echo ----------- looking for hard coded paths in $path
-    grep --color=always $binary -r -E '/(usr|bin|sbin|etc|var|opt)\>' $path || true
-
-    echo ----------- done
-}
-
-fixPath() {
-    # Usage:
-    #
-    #   fixPath <parent dir> <path> <files>
-    #
-    # replaces occurences of <path> by <parent_dir><path> in <files>
-    # removing /usr from the start of <path> if present
-
-    local parentdir=$1
-    local path=$2
-    local newpath=$parentdir$(echo $path | sed "s,^/usr,,")
-    local files=("${@:3}")
-    echo ======= grep --color=always "${path}" "${files[@]}"
-    grep --color=always "${path}" "${files[@]}"
-    echo +++++++ sed -i -e "s,$path,$newpath,g" "${files[@]}"
-    sed -i -e "s,$path,$newpath,g" "${files[@]}"
-}
-
-searchForUnresolvedDLL() {
-    # Usage:
-    #
-    #   searchForUnresolvedDLL <dir>
-    #
-    # looks in <dir> for executables with unresolved dynamic library paths
-
-    local dir="$1"
-    echo ======= Looking for executables with unresolved dynamic library dependencies
-    echo $dir
-    for f in $(find -L "$dir" -type f -executable); do
-      if (ldd $f | grep -q "not found"); then
-        echo $f
-        ldd $f | grep --color=always "not found"
-      fi
-    done
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/startdde/default.nix b/nixpkgs/pkgs/desktops/deepin/startdde/default.nix
deleted file mode 100644
index 75b36e85de3c..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/startdde/default.nix
+++ /dev/null
@@ -1,161 +0,0 @@
-{ stdenv
-, buildGoPackage
-, fetchFromGitHub
-, pkgconfig
-, alsaLib
-, coreutils
-, dde-api
-, dde-daemon
-, dde-dock
-, dde-file-manager
-, dde-polkit-agent
-, dde-session-ui
-, deepin
-, deepin-desktop-base
-, deepin-desktop-schemas
-, deepin-turbo
-, dde-kwin
-, glib
-, gnome3
-, go
-, go-dbus-factory
-, go-gir-generator
-, go-lib
-, gtk3
-, jq
-, kmod
-, libX11
-, libXi
-, libcgroup
-, pciutils
-, psmisc
-, pulseaudio
-, systemd
-, xorg
-, wrapGAppsHook
-}:
-
-buildGoPackage rec {
-  pname = "startdde";
-  version = "5.0.1";
-
-  goPackagePath = "pkg.deepin.io/dde/startdde";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "1xydmglydksy7hjlavf5pbfy0s0lndgavh8x3kg2mg7d36mbra43";
-  };
-
-  goDeps = ./deps.nix;
-
-  nativeBuildInputs = [
-    pkgconfig
-    jq
-    wrapGAppsHook
-    deepin.setupHook
-  ];
-
-  buildInputs = [
-    dde-api
-    go-dbus-factory
-    go-gir-generator
-    go-lib
-    alsaLib
-    dde-daemon
-    dde-dock
-    dde-file-manager
-    dde-kwin
-    dde-polkit-agent
-    dde-session-ui
-    deepin-desktop-schemas
-    deepin-turbo
-    glib
-    gnome3.dconf
-    gnome3.gnome-keyring
-    gnome3.libgnome-keyring
-    gtk3
-    kmod
-    libX11
-    libXi
-    libcgroup
-    pciutils
-    psmisc
-    pulseaudio
-    systemd
-    xorg.xdriinfo
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths  # debugging
-
-    # Commented lines below indicates a doubt about how to fix the hard coded path
-
-     fixPath $out                    /etc/X11                                  Makefile
-    #fixPath ?                       /etc/xdg/autostop                         autostop/autostop.go
-     fixPath ${coreutils}            /bin/ls                                   copyfile_test.go
-     fixPath $out                    /usr/share/startdde/auto_launch.json      launch_group.go
-    #fixPath ?                       /usr/bin/kwin_no_scale                    main.go  # not found on deepin linux and archlinux
-     fixPath $out                    /usr/share/startdde/memchecker.json       memchecker/config.go
-     fixPath $out                    /usr/bin/startdde                         misc/00deepin-dde-env
-     fixPath ${dde-file-manager}     /usr/bin/dde-file-manager                 misc/auto_launch/chinese.json
-     fixPath ${deepin-turbo}         /usr/lib/deepin-turbo/booster-dtkwidget   misc/auto_launch/chinese.json
-     fixPath ${dde-daemon}           /usr/lib/deepin-daemon/dde-session-daemon misc/auto_launch/chinese.json misc/auto_launch/default.json
-     fixPath ${dde-dock}             /usr/bin/dde-dock                         misc/auto_launch/chinese.json misc/auto_launch/default.json
-     fixPath ${dde-file-manager}     /usr/bin/dde-desktop                      misc/auto_launch/chinese.json misc/auto_launch/default.json
-     fixPath $out                    /usr/bin/startdde                         misc/deepin-session
-    #fixPath ?                       /usr/lib/lightdm/config-error-dialog.sh   misc/deepin-session  # provided by lightdm on deepin linux
-    #fixPath ?                       /usr/sbin/lightdm-session                 misc/deepin-session  # provided by lightdm on deepin linux
-     fixPath ${dde-session-ui}       /usr/bin/dde-lock                         session.go
-     fixPath ${dde-session-ui}       /usr/bin/dde-shutdown                     session.go
-     fixPath ${dde-session-ui}       /usr/lib/deepin-daemon/dde-osd            session.go
-     fixPath ${deepin-desktop-base}  /etc/deepin-version                       session.go
-     fixPath ${gnome3.gnome-keyring} /usr/bin/gnome-keyring-daemon             session.go
-     fixPath ${pulseaudio}           /usr/bin/pulseaudio                       sound_effect.go
-    #fixPath ?                       /usr/lib/UIAppSched.hooks                 startmanager.go  # not found anything about this
-     fixPath ${dde-session-ui}       /usr/lib/deepin-daemon/dde-welcome        utils.go
-     fixPath ${dde-polkit-agent}     /usr/lib/polkit-1-dde/dde-polkit-agent    watchdog/dde_polkit_agent.go
-    #fixPath ?                       /var/log/Xorg.0.log                       wm/driver.go
-    #fixPath ?                       /etc/deepin-wm-switcher/config.json       wm/switcher_config.go  # not present on nixos, deepin linux and archlinux
-
-    substituteInPlace wm/driver.go      --replace '/sbin/lsmod'                   "${kmod}/bin/lsmod"
-
-    substituteInPlace session.go        --replace 'LookPath("cgexec"'             'LookPath("${libcgroup}/bin/cgexec"'
-    substituteInPlace vm.go             --replace 'Command("dde-wm-chooser"'      'Command("${dde-session-ui}/bin/dde-wm-chooser"'
-    substituteInPlace vm.go             --replace 'Command("systemd-detect-virt"' 'Command("${systemd}/bin/systemd-detect-virt"'
-    substituteInPlace wm/card_info.go   --replace 'Command("lspci"'               'Command("${pciutils}/bin/lspci"'
-    substituteInPlace wm/driver.go      --replace 'Command("lspci"'               'Command("${pciutils}/bin/lspci"'
-    substituteInPlace wm/driver.go      --replace 'Command("xdriinfo"'            'Command("${xorg.xdriinfo}/bin/xdriinfo"'
-    substituteInPlace wm/platform.go    --replace 'Command("gsettings"'           'Command("${glib}/bin/gsettings"'
-    substituteInPlace wm/platform.go    --replace 'Command("uname"'               'Command("${coreutils}/bin/uname"'
-    substituteInPlace wm/switcher.go    --replace 'Command("killall"'             'Command("${psmisc}/bin/killall"'
-  '';
-
-  buildPhase = ''
-    make -C go/src/${goPackagePath}
-  '';
-
-  installPhase = ''
-    make install PREFIX="$out" -C go/src/${goPackagePath}
-    rm -rf $out/share/lightdm  # this is uselesss for NixOS
-    remove-references-to -t ${go} $out/sbin/*
-  '';
-
-  postFixup = ''
-    searchHardCodedPaths $out  # debugging
-  '';
-
-  passthru = {
-    updateScript = deepin.updateScript { inherit pname version src; };
-    providedSessions = [ "deepin" ];
-  };
-
-  meta = with stdenv.lib; {
-    description = "Starter of deepin desktop environment";
-    homepage = "https://github.com/linuxdeepin/startdde";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/deepin/startdde/deps.nix b/nixpkgs/pkgs/desktops/deepin/startdde/deps.nix
deleted file mode 100644
index 8898b8c50fb7..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/startdde/deps.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/cryptix/wav";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cryptix/wav";
-      rev = "8bdace674401f0bd3b63c65479b6a6ff1f9d5e44";
-      sha256 = "18nyqv0ic35fs9fny8sj84c00vbxs8mnric6vr6yl42624fh5id6";
-    };
-  }
-  {
-    goPackagePath = "github.com/linuxdeepin/go-x11-client";
-    fetch = {
-      type = "git";
-      url = "https://github.com/linuxdeepin/go-x11-client";
-      rev = "b5b01565d224d5ccd5a4143d9099acceb23e182a";
-      sha256 = "1lnffjp8bqy6f8caw6drg1js6hny5w7432riqchcrcd4q85d94rs";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "daa7c04131f568e31c51927b359a2d197a357058";
-      sha256 = "17gbfvb5iqyayzw0zd6q218zsbf7x74rflvn18wkxvsw95n1y54h";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/desktops/deepin/udisks2-qt5/default.nix b/nixpkgs/pkgs/desktops/deepin/udisks2-qt5/default.nix
deleted file mode 100644
index 0fcc2e9f9f71..000000000000
--- a/nixpkgs/pkgs/desktops/deepin/udisks2-qt5/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ stdenv
-, mkDerivation
-, fetchFromGitHub
-, qmake
-, qtbase
-, deepin
-}:
-
-mkDerivation rec {
-  pname = "udisks2-qt5";
-  version = "5.0.3";
-
-  src = fetchFromGitHub {
-    owner = "linuxdeepin";
-    repo = pname;
-    rev = version;
-    sha256 = "0c87ks9glwhk4m2s7kf7mb43q011yi6l3qjq2ammmfqwl8xal69a";
-  };
-
-  nativeBuildInputs = [
-    deepin.setupHook
-    qmake
-  ];
-
-  buildInputs = [
-    qtbase
-  ];
-
-  postPatch = ''
-    searchHardCodedPaths # debugging
-  '';
-
-  qmakeFlags = [
-    "QMAKE_PKGCONFIG_PREFIX=${placeholder "out"}"
-  ];
-
-  postFixup = ''
-    searchHardCodedPaths $out # debugging
-  '';
-
-  passthru.updateScript = deepin.updateScript { inherit pname version src; };
-
-  meta = with stdenv.lib; {
-    description = "UDisks2 D-Bus interfaces binding for Qt5";
-    homepage = "https://github.com/linuxdeepin/udisks2-qt5";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ romildo ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/enlightenment/default.nix b/nixpkgs/pkgs/desktops/enlightenment/default.nix
index 2739b9a2517f..80b4eb58ab57 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/default.nix
+++ b/nixpkgs/pkgs/desktops/enlightenment/default.nix
@@ -1,16 +1,15 @@
 { callPackage, pkgs }:
 {
   #### CORE EFL
-  efl = callPackage ./efl.nix {
-    openjpeg = pkgs.openjpeg_1;
-  };
+  efl = callPackage ./efl { };
 
   #### WINDOW MANAGER
-  enlightenment = callPackage ./enlightenment.nix { };
+  enlightenment = callPackage ./enlightenment { };
 
   #### APPLICATIONS
-  econnman = callPackage ./econnman.nix { };
-  terminology = callPackage ./terminology.nix { };
-  rage = callPackage ./rage.nix { };
-  ephoto = callPackage ./ephoto.nix { };
+  econnman = callPackage ./econnman { };
+  evisum = callPackage ./evisum { };
+  terminology = callPackage ./terminology { };
+  rage = callPackage ./rage { };
+  ephoto = callPackage ./ephoto { };
 }
diff --git a/nixpkgs/pkgs/desktops/enlightenment/econnman.nix b/nixpkgs/pkgs/desktops/enlightenment/econnman/default.nix
index 1979b4518a70..1979b4518a70 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/econnman.nix
+++ b/nixpkgs/pkgs/desktops/enlightenment/econnman/default.nix
diff --git a/nixpkgs/pkgs/desktops/enlightenment/efl/0002-efreet-more-stat-info-changes.patch b/nixpkgs/pkgs/desktops/enlightenment/efl/0002-efreet-more-stat-info-changes.patch
new file mode 100644
index 000000000000..e0005e430b2e
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/enlightenment/efl/0002-efreet-more-stat-info-changes.patch
@@ -0,0 +1,623 @@
+                                                                     
+                                                                     
+                                                                     
+                                             
+diff --git a/src/bin/efreet/efreet_icon_cache_create.c b/src/bin/efreet/efreet_icon_cache_create.c
+index 6810ca684e..6478df4dbd 100644
+--- a/src/bin/efreet/efreet_icon_cache_create.c
++++ b/src/bin/efreet/efreet_icon_cache_create.c
+@@ -38,38 +38,36 @@ static Eina_Hash *icon_themes = NULL;
+ static Eina_Bool
+ cache_directory_modified(Eina_Hash *dirs, const char *dir)
+ {
+-    Efreet_Cache_Directory *dcache;
+-    long long time;
+-
+-    if (!dirs) return EINA_TRUE;
+-
+-    time = ecore_file_mod_time(dir);
+-    if (!time)
+-      return EINA_FALSE;
+-    dcache = eina_hash_find(dirs, dir);
+-    if (!dcache)
+-    {
++   Efreet_Cache_Directory *dcache;
++   Efreet_Cache_Check check;
++
++   if (!dirs) return EINA_TRUE;
++   if (!efreet_file_cache_fill(dir, &check)) return EINA_FALSE;
++   dcache = eina_hash_find(dirs, dir);
++   if (!dcache)
++     {
+         dcache = malloc(sizeof (Efreet_Cache_Directory));
+         if (!dcache) return EINA_TRUE;
+-
+-        dcache->modified_time = time;
++        dcache->check = check;
+         eina_hash_add(dirs, dir, dcache);
+-    }
+-    else if (dcache->modified_time == time) return EINA_FALSE;
+-    dcache->modified_time = time;
+-
+-    return EINA_TRUE;
++     }
++   else if (efreet_file_cache_check(&check, &dcache->check))
++     return EINA_FALSE;
++   else
++     dcache->check = check;
++   return EINA_TRUE;
+ }
+ 
+ static Eina_Bool
+ cache_extension_lookup(const char *ext)
+ {
+-    unsigned int i;
++   unsigned int i;
+ 
+-    for (i = 0; i < exts->count; ++i)
+-        if (!strcmp(exts->data[i], ext))
+-            return EINA_TRUE;
+-    return EINA_FALSE;
++   for (i = 0; i < exts->count; ++i)
++     {
++        if (!strcmp(exts->data[i], ext)) return EINA_TRUE;
++     }
++   return EINA_FALSE;
+ }
+ 
+ static Eina_Bool
+@@ -223,6 +221,37 @@ check_fallback_changed(Efreet_Cache_Icon_Theme *theme)
+     return EINA_FALSE;
+ }
+ 
++typedef struct
++{
++  char *path;
++  int name_start;
++} Scanned_Entry;
++
++static Eina_Hash *already_scanned_path = NULL;
++
++static void
++cache_theme_change_verify(Efreet_Cache_Icon_Theme *theme)
++{
++   Eina_Bool changed = EINA_FALSE;
++   Eina_List *l;
++   Efreet_Icon_Theme_Directory *d;
++   char buf[PATH_MAX], *tdir, *sep;
++
++   tdir = strdup(theme->path);
++   sep = strrchr(tdir, '/');
++   if (sep) *sep = 0;
++   EINA_LIST_FOREACH(theme->theme.directories, l, d)
++     {
++        snprintf(buf, sizeof(buf), "%s/%s", tdir, d->name);
++        if (cache_directory_modified(theme->dirs, buf))
++          {
++             changed = EINA_TRUE;
++          }
++     }
++   free(tdir);
++   if (changed) theme->changed = changed;
++}
++
+ static Eina_Bool
+ cache_scan_path_dir(Efreet_Icon_Theme *theme,
+                     const char *path,
+@@ -232,29 +261,63 @@ cache_scan_path_dir(Efreet_Icon_Theme *theme,
+     Eina_Iterator *it;
+     char buf[PATH_MAX];
+     Eina_File_Direct_Info *entry;
++    Eina_List *dirs = NULL;
++    Eina_List *l;
++    char *ext;
++    Scanned_Entry *scentry;
+ 
+     snprintf(buf, sizeof(buf), "%s/%s", path, dir->name);
++    // we wont ever free this - no point
++    if (!already_scanned_path)
++      already_scanned_path = eina_hash_string_superfast_new(NULL);
++    dirs = eina_hash_find(already_scanned_path, buf);
++    if ((intptr_t)dirs == (intptr_t)(-1L)) return EINA_TRUE;
++    else if (!dirs)
++    {
++       it = eina_file_stat_ls(buf);
++       if (!it)
++         {
++            eina_hash_add(already_scanned_path, buf, (void *)(intptr_t)(-1L));
++            return EINA_TRUE;
++         }
++
++       EINA_ITERATOR_FOREACH(it, entry)
++         {
++            if (entry->type == EINA_FILE_DIR) continue;
++            ext = strrchr(entry->path + entry->name_start, '.');
++            if (!ext || !cache_extension_lookup(ext)) continue;
++            scentry = malloc(sizeof(Scanned_Entry));
++            if (!scentry)
++              {
++                 ERR("Out of memory");
++                 exit(1);
++              }
++            scentry->name_start = entry->name_start;
++            scentry->path = strdup(entry->path);
++            if (!scentry->path)
++              {
++                 ERR("Out of memory");
++                 exit(1);
++              }
++            dirs = eina_list_append(dirs, scentry);
++         }
++       eina_iterator_free(it);
++       if (dirs)
++         eina_hash_add(already_scanned_path, buf, dirs);
++       else
++         eina_hash_add(already_scanned_path, buf, (void *)(intptr_t)(-1L));
++    }
+ 
+-    it = eina_file_stat_ls(buf);
+-    if (!it) return EINA_TRUE;
+-
+-    EINA_ITERATOR_FOREACH(it, entry)
++   EINA_LIST_FOREACH(dirs, l, scentry)
+     {
+         Efreet_Cache_Icon *icon;
+         char *name;
+-        char *ext;
+         const char **tmp;
+         unsigned int i;
+ 
+-        if (entry->type == EINA_FILE_DIR)
+-            continue;
+-
+-        ext = strrchr(entry->path + entry->name_start, '.');
+-        if (!ext || !cache_extension_lookup(ext))
+-            continue;
+-
++        ext = strrchr(scentry->path + scentry->name_start, '.');
+         /* icon with known extension */
+-        name = entry->path + entry->name_start;
++        name = scentry->path + scentry->name_start;
+         *ext = '\0';
+ 
+         icon = eina_hash_find(icons, name);
+@@ -284,7 +347,7 @@ cache_scan_path_dir(Efreet_Icon_Theme *theme,
+ 
+             /* check if the path already exist */
+             for (j = 0; j < icon->icons[i]->paths_count; ++j)
+-                if (!strcmp(icon->icons[i]->paths[j], entry->path))
++                if (!strcmp(icon->icons[i]->paths[j], scentry->path))
+                     break;
+ 
+             if (j != icon->icons[i]->paths_count)
+@@ -348,12 +411,9 @@ cache_scan_path_dir(Efreet_Icon_Theme *theme,
+            exit(1);
+         }
+         icon->icons[i]->paths = tmp;
+-        icon->icons[i]->paths[icon->icons[i]->paths_count] = eina_stringshare_add(entry->path);
++        icon->icons[i]->paths[icon->icons[i]->paths_count] = eina_stringshare_add(scentry->path);
+         eina_array_push(strs, icon->icons[i]->paths[icon->icons[i]->paths_count++]);
+     }
+-
+-    eina_iterator_free(it);
+-
+     return EINA_TRUE;
+ }
+ 
+@@ -364,7 +424,9 @@ cache_scan_path(Efreet_Icon_Theme *theme, Eina_Hash *icons, const char *path)
+     Efreet_Icon_Theme_Directory *dir;
+ 
+     EINA_LIST_FOREACH(theme->directories, l, dir)
++     {
+         if (!cache_scan_path_dir(theme, path, dir, icons)) return EINA_FALSE;
++     }
+ 
+     return EINA_TRUE;
+ }
+@@ -511,13 +573,13 @@ icon_theme_index_read(Efreet_Cache_Icon_Theme *theme, const char *path)
+     Efreet_Ini *ini;
+     Efreet_Icon_Theme_Directory *dir;
+     const char *tmp;
+-    long long time;
++    Efreet_Cache_Check check;
+ 
+     if (!theme || !path) return EINA_FALSE;
+ 
+-    time = ecore_file_mod_time(path);
+-    if (!time) return EINA_FALSE;
+-    if (theme->path && !strcmp(theme->path, path) && theme->last_cache_check >= time)
++    if (!efreet_file_cache_fill(path, &check)) return EINA_FALSE;
++    if (theme->path && !strcmp(theme->path, path) &&
++        efreet_file_cache_check(&check, &(theme->check)))
+     {
+         /* no change */
+         theme->valid = 1;
+@@ -528,8 +590,7 @@ icon_theme_index_read(Efreet_Cache_Icon_Theme *theme, const char *path)
+         theme->path = eina_stringshare_add(path);
+         eina_array_push(strs, theme->path);
+     }
+-    if (time > theme->last_cache_check)
+-        theme->last_cache_check = time;
++    theme->check = check;
+     theme->changed = 1;
+ 
+     ini = efreet_ini_new(path);
+@@ -644,10 +705,10 @@ cache_theme_scan(const char *dir)
+         Efreet_Cache_Icon_Theme *theme;
+         const char *name;
+         const char *path;
+-        long long time;
++        Efreet_Cache_Check check;
++        Efreet_Cache_Directory *d;
+ 
+-        time = ecore_file_mod_time(entry->path);
+-        if (!time) continue;
++        if (!efreet_file_cache_fill(entry->path, &check)) continue;
+ 
+         if ((entry->type != EINA_FILE_DIR) &&
+             (entry->type != EINA_FILE_LNK))
+@@ -669,10 +730,26 @@ cache_theme_scan(const char *dir)
+                           (void *)theme->theme.name.internal, theme);
+             theme->changed = 1;
+         }
+-        if (time > theme->last_cache_check)
+-        {
+-            theme->last_cache_check = time;
++
++       d = NULL;
++       if (theme->dirs)
++         d = eina_hash_find(theme->dirs, entry->path);
++       if (!d)
++         {
++            if (!theme->dirs)
++              theme->dirs = eina_hash_string_superfast_new(NULL);
+             theme->changed = 1;
++            d = NEW(Efreet_Cache_Directory, 1);
++            d->check = check;
++            eina_hash_add(theme->dirs, entry->path, d);
++         }
++       else
++         {
++            if (!efreet_file_cache_check(&check, &(d->check)))
++              {
++                 d->check = check;
++                 theme->changed = 1;
++              }
+         }
+ 
+         /* TODO: We need to handle change in order of included paths */
+@@ -732,8 +809,7 @@ icon_theme_free(Efreet_Cache_Icon_Theme *theme)
+ 
+     eina_list_free(theme->theme.paths);
+     eina_list_free(theme->theme.inherits);
+-    EINA_LIST_FREE(theme->theme.directories, data)
+-        free(data);
++    EINA_LIST_FREE(theme->theme.directories, data) free(data);
+     if (theme->dirs) efreet_hash_free(theme->dirs, free);
+     free(theme);
+ }
+@@ -926,7 +1002,7 @@ main(int argc, char **argv)
+         if (!theme->theme.name.name) continue;
+ #endif
+         INF("scan theme %s", theme->theme.name.name);
+-
++        cache_theme_change_verify(theme);
+         theme->changed = check_changed(theme);
+         if (flush)
+             theme->changed = EINA_TRUE;
+@@ -981,18 +1057,18 @@ main(int argc, char **argv)
+ 
+                 icons_it = eina_hash_iterator_tuple_new(icons);
+                 EINA_ITERATOR_FOREACH(icons_it, tuple)
+-                    eet_data_write(icon_ef, icon_edd, tuple->key, tuple->data, 1);
++                    eet_data_write(icon_ef, icon_edd, tuple->key, tuple->data, EET_COMPRESSION_SUPERFAST);
+                 eina_iterator_free(icons_it);
+ 
+-                INF("theme change: %s %lld", theme->theme.name.internal, theme->last_cache_check);
+-                eet_data_write(theme_ef, theme_edd, theme->theme.name.internal, theme, 1);
++                INF("theme change: %s %lld", theme->theme.name.internal, theme->check.mtime);
++                eet_data_write(theme_ef, theme_edd, theme->theme.name.internal, theme, EET_COMPRESSION_SUPERFAST);
+             }
+             eina_hash_free(themes);
+             eina_hash_free(icons);
+             changed = EINA_TRUE;
+         }
+ 
+-        eet_data_write(icon_ef, efreet_version_edd(), EFREET_CACHE_VERSION, icon_version, 1);
++        eet_data_write(icon_ef, efreet_version_edd(), EFREET_CACHE_VERSION, icon_version, EET_COMPRESSION_SUPERFAST);
+         eet_close(icon_ef);
+         efreet_setowner(efreet_icon_cache_file(theme->theme.name.internal));
+         free(icon_version);
+@@ -1064,17 +1140,17 @@ main(int argc, char **argv)
+ 
+             icons_it = eina_hash_iterator_tuple_new(icons);
+             EINA_ITERATOR_FOREACH(icons_it, tuple)
+-                eet_data_write(icon_ef, fallback_edd, tuple->key, tuple->data, 1);
++                eet_data_write(icon_ef, fallback_edd, tuple->key, tuple->data, EET_COMPRESSION_SUPERFAST);
+             eina_iterator_free(icons_it);
+         }
+         eina_hash_free(icons);
+ 
+-        eet_data_write(theme_ef, theme_edd, EFREET_CACHE_ICON_FALLBACK, theme, 1);
++        eet_data_write(theme_ef, theme_edd, EFREET_CACHE_ICON_FALLBACK, theme, EET_COMPRESSION_SUPERFAST);
+     }
+ 
+     icon_theme_free(theme);
+ 
+-    eet_data_write(icon_ef, efreet_version_edd(), EFREET_CACHE_VERSION, icon_version, 1);
++    eet_data_write(icon_ef, efreet_version_edd(), EFREET_CACHE_VERSION, icon_version, EET_COMPRESSION_SUPERFAST);
+     eet_close(icon_ef);
+     efreet_setowner(efreet_icon_cache_file(EFREET_CACHE_ICON_FALLBACK));
+     free(icon_version);
+@@ -1082,7 +1158,7 @@ main(int argc, char **argv)
+     eina_hash_free(icon_themes);
+ 
+     /* save data */
+-    eet_data_write(theme_ef, efreet_version_edd(), EFREET_CACHE_VERSION, theme_version, 1);
++    eet_data_write(theme_ef, efreet_version_edd(), EFREET_CACHE_VERSION, theme_version, EET_COMPRESSION_SUPERFAST);
+ 
+     eet_close(theme_ef);
+     theme_ef = NULL;
+diff --git a/src/lib/efreet/efreet_cache.c b/src/lib/efreet/efreet_cache.c
+index f859c630f0..2b5d0c9f5f 100644
+--- a/src/lib/efreet/efreet_cache.c
++++ b/src/lib/efreet/efreet_cache.c
+@@ -1,3 +1,4 @@
++
+ #ifdef HAVE_CONFIG_H
+ # include <config.h>
+ #endif
+@@ -536,6 +537,137 @@ efreet_desktop_util_cache_file(void)
+ /*
+  * Needs EAPI because of helper binaries
+  */
++#define SHSH(n, v) ((((v) << (n)) & 0xffffffff) | ((v) >> (32 - (n))))
++
++static inline int
++int_to_bigendian(int in)
++{
++   static const unsigned char test[4] = { 0x11, 0x22, 0x33, 0x44 };
++   static const unsigned int *test_i = (const unsigned int *)test;
++   if (test_i[0] == 0x44332211) return eina_swap32(in);
++   return in;
++}
++
++static void
++sha1(unsigned char *data, int size, unsigned char *dst)
++{
++   unsigned int digest[5], word[80], wa, wb, wc, wd, we, t;
++   unsigned char buf[64], *d;
++   int idx, left, i;
++   const unsigned int magic[4] =
++     { 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6 };
++
++   idx = 0;
++   digest[0] = 0x67452301; digest[1] = 0xefcdab89; digest[2] = 0x98badcfe;
++   digest[3] = 0x10325476; digest[4] = 0xc3d2e1f0;
++
++   memset(buf, 0, sizeof(buf));
++   for (left = size, d = data; left > 0; left--, d++)
++     {
++        if ((idx == 0) && (left < 64))
++          {
++             memset(buf, 0, 60);
++             buf[60] = (size >> 24) & 0xff;
++             buf[61] = (size >> 16) & 0xff;
++             buf[62] = (size >> 8) & 0xff;
++             buf[63] = (size) & 0xff;
++          }
++        buf[idx] = *d;
++        idx++;
++        if ((idx == 64) || (left == 1))
++          {
++             if ((left == 1) && (idx < 64)) buf[idx] = 0x80;
++             for (i = 0; i < 16; i++)
++               {
++                  word[i]  = (unsigned int)buf[(i * 4)    ] << 24;
++                  word[i] |= (unsigned int)buf[(i * 4) + 1] << 16;
++                  word[i] |= (unsigned int)buf[(i * 4) + 2] << 8;
++                  word[i] |= (unsigned int)buf[(i * 4) + 3];
++               }
++             for (i = 16; i < 80; i++)
++               word[i] = SHSH(1,
++                              word[i - 3 ] ^ word[i - 8 ] ^
++                              word[i - 14] ^ word[i - 16]);
++             wa = digest[0]; wb = digest[1]; wc = digest[2];
++             wd = digest[3]; we = digest[4];
++             for (i = 0; i < 80; i++)
++               {
++                  if (i < 20)
++                    t = SHSH(5, wa) + ((wb & wc) | ((~wb) & wd)) +
++                        we + word[i] + magic[0];
++                  else if (i < 40)
++                    t = SHSH(5, wa) + (wb ^ wc ^ wd) +
++                        we + word[i] + magic[1];
++                  else if (i < 60)
++                    t = SHSH(5, wa) + ((wb & wc) | (wb & wd) | (wc & wd)) +
++                        we + word[i] + magic[2];
++                  else if (i < 80)
++                    t = SHSH(5, wa) + (wb ^ wc ^ wd) +
++                        we + word[i] + magic[3];
++                  we = wd;
++                  wd = wc;
++                  wc = SHSH(30, wb);
++                  wb = wa;
++                  wa = t;
++               }
++             digest[0] += wa; digest[1] += wb; digest[2] += wc;
++             digest[3] += wd; digest[4] += we;
++             idx = 0;
++          }
++     }
++   t = int_to_bigendian(digest[0]); digest[0] = t;
++   t = int_to_bigendian(digest[1]); digest[1] = t;
++   t = int_to_bigendian(digest[2]); digest[2] = t;
++   t = int_to_bigendian(digest[3]); digest[3] = t;
++   t = int_to_bigendian(digest[4]); digest[4] = t;
++   memcpy(dst, digest, 5 * 4);
++}
++
++EAPI Eina_Bool
++efreet_file_cache_fill(const char *file, Efreet_Cache_Check *check)
++{
++   struct stat st;
++   ssize_t size = 0;
++   char link[PATH_MAX];
++
++   if (lstat(file, &st) != 0) return EINA_FALSE;
++   if (S_ISLNK(st.st_mode))
++     {
++        size = readlink(file, link, sizeof(link));
++        if ((size > 0) && ((size_t)size >= sizeof(link))) return EINA_FALSE;
++        if (stat(file, &st) != 0) return EINA_FALSE;
++     }
++
++   memset(check, 0, sizeof(Efreet_Cache_Check));
++   if (size > 0) sha1((unsigned char *)link, size, check->link_sha1);
++   else memset(check->link_sha1, 0, sizeof(check->link_sha1));
++   check->uid    = st.st_uid;
++   check->gid    = st.st_gid;
++   check->size   = st.st_size;
++   check->blocks = st.st_blocks;
++   check->mtime  = st.st_mtime;
++   check->chtime = st.st_ctime;
++   check->mode   = st.st_mode;
++   return EINA_TRUE;
++}
++
++EAPI Eina_Bool // true if matches
++efreet_file_cache_check(const Efreet_Cache_Check *check1, const Efreet_Cache_Check *check2)
++{
++   if ((check1->mtime  != check2->mtime ) ||
++       (check1->size   != check2->size  ) ||
++       (check1->chtime != check2->chtime ) ||
++       (check1->blocks != check2->blocks) ||
++       (check1->mode   != check2->mode  ) ||
++       (check1->uid    != check2->uid   ) ||
++       (check1->gid    != check2->gid   ) ||
++       (memcmp(check1->link_sha1, check2->link_sha1, 20) != 0))
++     {
++        return EINA_FALSE;
++     }
++   return EINA_TRUE; // matches
++}
++
+ EAPI Eet_Data_Descriptor *
+ efreet_version_edd(void)
+ {
+@@ -691,8 +823,22 @@ efreet_icon_directory_edd(void)
+     directory_edd = eet_data_descriptor_file_new(&eddc);
+     if (!directory_edd) return NULL;
+ 
+-    EET_DATA_DESCRIPTOR_ADD_BASIC(directory_edd, Efreet_Cache_Directory,
+-                                  "modified_time", modified_time, EET_T_LONG_LONG);
++   EET_DATA_DESCRIPTOR_ADD_BASIC(directory_edd, Efreet_Cache_Directory,
++                                 "check.uid", check.uid, EET_T_LONG_LONG);
++   EET_DATA_DESCRIPTOR_ADD_BASIC(directory_edd, Efreet_Cache_Directory,
++                                 "check.gid", check.gid, EET_T_LONG_LONG);
++   EET_DATA_DESCRIPTOR_ADD_BASIC(directory_edd, Efreet_Cache_Directory,
++                                 "check.size", check.size, EET_T_LONG_LONG);
++   EET_DATA_DESCRIPTOR_ADD_BASIC(directory_edd, Efreet_Cache_Directory,
++                                 "check.blocks", check.blocks, EET_T_LONG_LONG);
++   EET_DATA_DESCRIPTOR_ADD_BASIC(directory_edd, Efreet_Cache_Directory,
++                                 "check.mtime", check.mtime, EET_T_LONG_LONG);
++   EET_DATA_DESCRIPTOR_ADD_BASIC(directory_edd, Efreet_Cache_Directory,
++                                 "check.chtime", check.chtime, EET_T_LONG_LONG);
++   EET_DATA_DESCRIPTOR_ADD_BASIC(directory_edd, Efreet_Cache_Directory,
++                                 "check.mode", check.mode, EET_T_INT);
++   EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY(directory_edd, Efreet_Cache_Directory,
++                                       "check.link_sha1", check.link_sha1, EET_T_CHAR);
+ 
+     return directory_edd;
+ }
+@@ -790,7 +936,21 @@ efreet_icon_theme_edd(Eina_Bool cache)
+     if (cache)
+     {
+         EET_DATA_DESCRIPTOR_ADD_BASIC(icon_theme_edd, Efreet_Cache_Icon_Theme,
+-                                      "last_cache_check", last_cache_check, EET_T_LONG_LONG);
++                                      "check.uid", check.uid, EET_T_LONG_LONG);
++        EET_DATA_DESCRIPTOR_ADD_BASIC(icon_theme_edd, Efreet_Cache_Icon_Theme,
++                                      "check.gid", check.gid, EET_T_LONG_LONG);
++        EET_DATA_DESCRIPTOR_ADD_BASIC(icon_theme_edd, Efreet_Cache_Icon_Theme,
++                                      "check.size", check.size, EET_T_LONG_LONG);
++        EET_DATA_DESCRIPTOR_ADD_BASIC(icon_theme_edd, Efreet_Cache_Icon_Theme,
++                                      "check.blocks", check.blocks, EET_T_LONG_LONG);
++        EET_DATA_DESCRIPTOR_ADD_BASIC(icon_theme_edd, Efreet_Cache_Icon_Theme,
++                                      "check.mtime", check.mtime, EET_T_LONG_LONG);
++        EET_DATA_DESCRIPTOR_ADD_BASIC(icon_theme_edd, Efreet_Cache_Icon_Theme,
++                                      "check.chtime", check.chtime, EET_T_LONG_LONG);
++        EET_DATA_DESCRIPTOR_ADD_BASIC(icon_theme_edd, Efreet_Cache_Icon_Theme,
++                                      "check.mode", check.mode, EET_T_INT);
++        EET_DATA_DESCRIPTOR_ADD_BASIC_ARRAY(icon_theme_edd, Efreet_Cache_Icon_Theme,
++                                            "check.link_sha1", check.link_sha1, EET_T_CHAR);
+ 
+         EET_DATA_DESCRIPTOR_ADD_BASIC(icon_theme_edd, Efreet_Cache_Icon_Theme,
+                                       "path", path, EET_T_STRING);
+diff --git a/src/lib/efreet/efreet_cache_private.h b/src/lib/efreet/efreet_cache_private.h
+index 97dbd45a1e..1edbb3b5ff 100644
+--- a/src/lib/efreet/efreet_cache_private.h
++++ b/src/lib/efreet/efreet_cache_private.h
+@@ -38,11 +38,20 @@
+ # endif
+ #endif
+ 
++typedef struct _Efreet_Cache_Check Efreet_Cache_Check;
++
++typedef struct _Efreet_Cache_Icon_Theme Efreet_Cache_Icon_Theme;
++typedef struct _Efreet_Cache_Directory Efreet_Cache_Directory;
++typedef struct _Efreet_Cache_Desktop Efreet_Cache_Desktop;
++
+ EAPI const char *efreet_desktop_util_cache_file(void);
+ EAPI const char *efreet_desktop_cache_file(void);
+ EAPI const char *efreet_icon_cache_file(const char *theme);
+ EAPI const char *efreet_icon_theme_cache_file(void);
+ 
++EAPI Eina_Bool efreet_file_cache_fill(const char *file, Efreet_Cache_Check *check);
++EAPI Eina_Bool efreet_file_cache_check(const Efreet_Cache_Check *check1, const Efreet_Cache_Check *check2);
++
+ EAPI Eet_Data_Descriptor *efreet_version_edd(void);
+ EAPI Eet_Data_Descriptor *efreet_desktop_edd(void);
+ EAPI Eet_Data_Descriptor *efreet_hash_array_string_edd(void);
+@@ -52,15 +61,23 @@ EAPI Eet_Data_Descriptor *efreet_icon_theme_edd(Eina_Bool cache);
+ EAPI Eet_Data_Descriptor *efreet_icon_edd(void);
+ EAPI Eet_Data_Descriptor *efreet_icon_fallback_edd(void);
+ 
+-typedef struct _Efreet_Cache_Icon_Theme Efreet_Cache_Icon_Theme;
+-typedef struct _Efreet_Cache_Directory Efreet_Cache_Directory;
+-typedef struct _Efreet_Cache_Desktop Efreet_Cache_Desktop;
++struct _Efreet_Cache_Check
++{
++   unsigned long long uid;
++   unsigned long long gid;
++   unsigned long long size;
++   unsigned long long blocks;
++   unsigned long long mtime;
++   unsigned long long chtime;
++   unsigned int       mode;
++   unsigned char      link_sha1[20];
++};
+ 
+ struct _Efreet_Cache_Icon_Theme
+ {
+     Efreet_Icon_Theme theme;
+ 
+-    long long last_cache_check; /**< Last time the cache was checked */
++    Efreet_Cache_Check check; /**< relevant stat info from last check */
+ 
+     Eina_Hash *dirs;            /**< All possible icon paths for this theme */
+ 
+@@ -73,13 +90,14 @@ struct _Efreet_Cache_Icon_Theme
+ 
+ struct _Efreet_Cache_Directory
+ {
+-    long long modified_time;
++    Efreet_Cache_Check check; /**< relevant stat info from last check */
+ };
+ 
+ struct _Efreet_Cache_Desktop
+ {
+     Efreet_Desktop desktop;
+ 
++    Efreet_Cache_Check check; /**< relevant stat info from last check */
+     double check_time; /**< Last time we check for disk modification */
+ };
diff --git a/nixpkgs/pkgs/desktops/enlightenment/efl.nix b/nixpkgs/pkgs/desktops/enlightenment/efl/default.nix
index 5ac8194d74e1..9ce0306b549a 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/efl.nix
+++ b/nixpkgs/pkgs/desktops/enlightenment/efl/default.nix
@@ -54,11 +54,11 @@
 
 stdenv.mkDerivation rec {
   pname = "efl";
-  version = "1.24.2";
+  version = "1.24.3";
 
   src = fetchurl {
     url = "http://download.enlightenment.org/rel/libs/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0w3srvigg4kfi7xq76c7y4hnq5yr2gxrrsvlyj1g2wc1igz1vyg1";
+    sha256 = "de95c6e673c170c1e21382918b122417c091c643e7dcaced89aa785529625c2a";
   };
 
   nativeBuildInputs = [
@@ -149,13 +149,16 @@ stdenv.mkDerivation rec {
     "-D sdl=true"
   ];
 
-  patches = [ ./efl-elua.patch ];
+  patches = [
+    ./efl-elua.patch
+    ./0002-efreet-more-stat-info-changes.patch
+  ];
 
   postPatch = ''
     patchShebangs src/lib/elementary/config_embed
 
     # fix destination of systemd unit and dbus service
-    substituteInPlace systemd-services/meson.build --replace "dep.get_pkgconfig_variable('systemduserunitdir')" "'$out/systemd/user'"
+    substituteInPlace systemd-services/meson.build --replace "sys_dep.get_pkgconfig_variable('systemduserunitdir')" "'$out/systemd/user'"
     substituteInPlace dbus-services/meson.build --replace "dep.get_pkgconfig_variable('session_bus_services_dir')" "'$out/share/dbus-1/services'"
   '';
 
@@ -188,8 +191,10 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    # EFL applications depend on libcurl, which is linked at runtime by hand in code (it is dlopened)
+    # Some libraries are linked at runtime by hand in code (they are dlopened)
     patchelf --add-needed ${curl.out}/lib/libcurl.so $out/lib/libecore_con.so
+    patchelf --add-needed ${libpulseaudio}/lib/libpulse.so $out/lib/libecore_audio.so
+    patchelf --add-needed ${libsndfile.out}/lib/libsndfile.so $out/lib/libecore_audio.so
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/desktops/enlightenment/efl-elua.patch b/nixpkgs/pkgs/desktops/enlightenment/efl/efl-elua.patch
index 96c42b3ff3ca..96c42b3ff3ca 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/efl-elua.patch
+++ b/nixpkgs/pkgs/desktops/enlightenment/efl/efl-elua.patch
diff --git a/nixpkgs/pkgs/desktops/enlightenment/0001-wrapped-setuid-executables.patch b/nixpkgs/pkgs/desktops/enlightenment/enlightenment/0001-wrapped-setuid-executables.patch
index 55a3501ef8b9..55a3501ef8b9 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/0001-wrapped-setuid-executables.patch
+++ b/nixpkgs/pkgs/desktops/enlightenment/enlightenment/0001-wrapped-setuid-executables.patch
diff --git a/nixpkgs/pkgs/desktops/enlightenment/enlightenment/0003-setuid-missing-path.patch b/nixpkgs/pkgs/desktops/enlightenment/enlightenment/0003-setuid-missing-path.patch
new file mode 100644
index 000000000000..5c32ed9b0d63
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/enlightenment/enlightenment/0003-setuid-missing-path.patch
@@ -0,0 +1,25 @@
+From b7ef2a0d3f31db55a12b2b8c2e1c60ba62b971c8 Mon Sep 17 00:00:00 2001
+From: Matt Bagnara <mbagnara@fastmail.com>
+Date: Wed, 1 Jul 2020 15:30:40 -0500
+Subject: [PATCH] add nixos path
+
+---
+ src/bin/e_util_suid.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/bin/e_util_suid.h b/src/bin/e_util_suid.h
+index b01ff792b..88c2a0f17 100644
+--- a/src/bin/e_util_suid.h
++++ b/src/bin/e_util_suid.h
+@@ -246,7 +246,7 @@ e_setuid_setup(uid_t *caller_uid, gid_t *caller_gid, char **caller_user, char **
+ # endif
+ #endif
+    // pass 3 - set path and ifs to minimal defaults
+-   putenv("PATH=/bin:/usr/bin:/sbin:/usr/sbin");
++   putenv("PATH=/bin:/usr/bin:/sbin:/usr/sbin:/run/current-system/sw/bin");
+    putenv("IFS= \t\n");
+    return 0;
+ }
+-- 
+2.27.0
+
diff --git a/nixpkgs/pkgs/desktops/enlightenment/enlightenment.nix b/nixpkgs/pkgs/desktops/enlightenment/enlightenment/default.nix
index cbec2006022c..90a15a1d5235 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/enlightenment.nix
+++ b/nixpkgs/pkgs/desktops/enlightenment/enlightenment/default.nix
@@ -19,11 +19,11 @@
 
 stdenv.mkDerivation rec {
   pname = "enlightenment";
-  version = "0.24.1";
+  version = "0.24.2";
 
   src = fetchurl {
     url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "02aadl5fqvpmpjnisrc4aw7ffwyp1109y4k1wvmp33ciihbvdqmf";
+    sha256 = "1wfz0rwwsx7c1mkswn4hc9xw1i6bsdirhxiycf7ha2vcipqy465y";
   };
 
   nativeBuildInputs = [
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
     # wrapped in the enlightenment service module, and the wrapped
     # executables should be used instead.
     ./0001-wrapped-setuid-executables.patch
+    ./0003-setuid-missing-path.patch
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/desktops/enlightenment/ephoto.nix b/nixpkgs/pkgs/desktops/enlightenment/ephoto/default.nix
index 36719200c761..36719200c761 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/ephoto.nix
+++ b/nixpkgs/pkgs/desktops/enlightenment/ephoto/default.nix
diff --git a/nixpkgs/pkgs/desktops/enlightenment/evisum/default.nix b/nixpkgs/pkgs/desktops/enlightenment/evisum/default.nix
new file mode 100644
index 000000000000..7b97d871e60b
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/enlightenment/evisum/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchurl, meson, ninja, pkg-config, efl }:
+
+stdenv.mkDerivation rec {
+  pname = "evisum";
+  version = "0.5.6";
+
+  src = fetchurl {
+    url = "https://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
+    sha256 = "1l8pym7738kncvic5ga03sj9d5igigvmcxa9lbg47z2yvdjwzv97";
+  };
+
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    efl
+  ];
+
+  meta = with stdenv.lib; {
+    description = "System and process monitor written with EFL";
+    homepage = "https://www.enlightenment.org";
+    license = with licenses; [ isc ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/enlightenment/rage.nix b/nixpkgs/pkgs/desktops/enlightenment/rage/default.nix
index 3c4de19fa919..3c4de19fa919 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/rage.nix
+++ b/nixpkgs/pkgs/desktops/enlightenment/rage/default.nix
diff --git a/nixpkgs/pkgs/desktops/enlightenment/terminology.nix b/nixpkgs/pkgs/desktops/enlightenment/terminology/default.nix
index 3eff9292cb6c..2d0d34ec067e 100644
--- a/nixpkgs/pkgs/desktops/enlightenment/terminology.nix
+++ b/nixpkgs/pkgs/desktops/enlightenment/terminology/default.nix
@@ -1,19 +1,18 @@
-{ stdenv, fetchurl, meson, ninja, pkgconfig, efl, pcre, mesa, makeWrapper }:
+{ stdenv, fetchurl, meson, ninja, pkg-config, efl, pcre, mesa }:
 
 stdenv.mkDerivation rec {
   pname = "terminology";
-  version = "1.7.0";
+  version = "1.8.1";
 
   src = fetchurl {
     url = "http://download.enlightenment.org/rel/apps/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "11qan2k6w94cglysh95yxkbv6hw9x15ri927hkiy3k0hbmpbrxc8";
+    sha256 = "1fxqjf7g30ix4qxi6366rrax27s3maxq43z2vakwnhz4mp49m9h4";
   };
 
   nativeBuildInputs = [
     meson
     ninja
-    pkgconfig
-    makeWrapper
+    pkg-config
   ];
 
   buildInputs = [
@@ -22,6 +21,10 @@ stdenv.mkDerivation rec {
     mesa
   ];
 
+  mesonFlags = [
+    "-D edje-cc=${efl}/bin/edje_cc"
+  ];
+
   meta = {
     description = "Powerful terminal emulator based on EFL";
     homepage = "https://www.enlightenment.org/about-terminology";
diff --git a/nixpkgs/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix b/nixpkgs/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix
index 68c1b3b5da43..99175e25120c 100644
--- a/nixpkgs/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-2/desktop/mail-notification/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pkgconfig, glib, gnome2, dbus-glib, gmime, gnome-icon-theme, libnotify, libgnome-keyring, openssl, cyrus_sasl, gnonlin, sylpheed, gob2, gettext, intltool, libxml2, hicolor-icon-theme, tango-icon-theme }:
+{ stdenv, fetchFromGitHub, pkgconfig, glib, gnome2, dbus-glib, gmime, gnome-icon-theme, libnotify, libgnome-keyring, openssl, cyrus_sasl, sylpheed, gob2, gettext, intltool, libxml2, hicolor-icon-theme, tango-icon-theme }:
 
 stdenv.mkDerivation rec {
   rev = "9ae8768";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-   buildInputs = [ glib dbus-glib gmime libnotify libgnome-keyring openssl cyrus_sasl gnonlin sylpheed gob2 gettext intltool gnome2.GConf gnome2.libgnomeui dbus-glib gmime libnotify gnome2.scrollkeeper libxml2 gnome-icon-theme hicolor-icon-theme tango-icon-theme ];
+   buildInputs = [ glib dbus-glib gmime libnotify libgnome-keyring openssl cyrus_sasl sylpheed gob2 gettext intltool gnome2.GConf gnome2.libgnomeui dbus-glib gmime libnotify gnome2.scrollkeeper libxml2 gnome-icon-theme hicolor-icon-theme tango-icon-theme ];
 
   prePatch = ''
     sed -i  -e '/jb_rule_set_install_message/d' -e '/jb_rule_add_install_command/d' jbsrc/jb.c
diff --git a/nixpkgs/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix b/nixpkgs/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
index d248ad37d02c..20cc3877efb7 100644
--- a/nixpkgs/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-2/platform/libgnomeui/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
   patches = [
     (fetchpatch {
       name = "0001-gnome-scores.h-Convert-to-UTF-8.patch";
-      url = "https://github.com/GNOME/libgnomeui/commit/30334c28794ef85d8973f4ed0779b5ceed6594f2.diff";
+      url = "https://gitlab.gnome.org/Archive/libgnomeui/-/commit/30334c28794ef85d8973f4ed0779b5ceed6594f2.diff";
       sha256 = "1sn8j8dkam14wfkpw8nga3gk63wniff243mzv3jp0fvv52q8sqhk";
     })
   ];
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/accerciser/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/accerciser/default.nix
index 192c179a93f3..c0ca54d6fec8 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/accerciser/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/accerciser/default.nix
@@ -16,14 +16,14 @@
 }:
 
  python3.pkgs.buildPythonApplication rec {
-  name = "accerciser-${version}";
-  version = "3.36.1";
+  pname = "accerciser";
+  version = "3.36.3";
 
   format = "other";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/accerciser/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1ig9zcg8z7yv2c28q0a4q57ckkpmzjsbnancx01rjihrrjbg9ib2";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0zfhmpaqqwm89k8p4apq4la191icjvqh0097p5aig3yhy87fahp9";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/evolution/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/evolution/default.nix
index b9ac719004aa..f27050cd68f7 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/evolution/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/evolution/default.nix
@@ -43,11 +43,11 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution";
-  version = "3.36.3";
+  version = "3.36.5";
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "00yann3cibbsap7vh6qq08aklvydynmk6gmljkzd80kc52m6rqal";
+    sha256 = "1hpjd5d3z52xcjcc1hg5z8ypnx2y6ml9snyrlpflg9bx16yhxm1x";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/file-roller/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/file-roller/default.nix
index a735d9f446d2..7c518c4acd9f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/file-roller/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/file-roller/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "file-roller";
-  version = "3.36.2";
+  version = "3.36.3";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/file-roller/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1lkb0m8ys13sy3b6c1kj3cqrqf5d1dqvhbp8spz8v9yjv3d7z3r6";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1dw1vfnfc44k57b6mip8fv565d2xv5wrigi4js044x3sbl5f2n89";
   };
 
   LANG = "en_US.UTF-8"; # postinstall.py
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
index eed28908bf33..4acc687da8ba 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-boxes/default.nix
@@ -51,11 +51,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-boxes";
-  version = "3.36.5";
+  version = "3.36.6";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-boxes/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1khvyhgd3p41fvvknga1hdl0p1ks4kj4cwsiaw28v1sy6nzclm2c";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0c3cw90xqqcpacc2z06ljs0gg8saxizfgjzg9alhpwgz3gl4c5pg";
   };
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
index 88284c540e3b..988cb1ed2a33 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-calendar/default.nix
@@ -4,13 +4,13 @@
 
 let
   pname = "gnome-calendar";
-  version = "3.36.1";
+  version = "3.36.2";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0ql3f509bj17riqs0jfpp434s97dzjgkjcd978i4m4y80nq2131v";
+    sha256 = "07sc1kn65dzxsxpv0vl5dj1a5awljjsfl9jldrg0hnjmq12m7c6h";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
index 08dbb2ea5d99..45675b791cd8 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-logs/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchurl
+, fetchpatch
 , meson
 , ninja
 , pkgconfig
@@ -27,6 +28,14 @@ stdenv.mkDerivation rec {
     sha256 = "0w1nfdxbv3f0wnhmdy21ydvr4swfc108hypda561p7l9lrhnnxj4";
   };
 
+  patches = [
+    # https://gitlab.gnome.org/GNOME/gnome-logs/-/issues/52
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/gnome-logs/-/commit/b42defceefc775220b525f665a3b662ab9593b81.patch";
+      sha256 = "1s0zscmhwy7r0xff17wh8ik8x9xw1vrkipw5vl5i770bxnljps8n";
+    })
+  ];
+
   nativeBuildInputs = [
     python3
     meson
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
index a722ab9616ed..57ba6fd0766f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-maps/default.nix
@@ -5,13 +5,13 @@
 
 let
   pname = "gnome-maps";
-  version = "3.36.2";
+  version = "3.36.4";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "114pia3nd8k7j6ll7za7qzv0ggcdvcw6b3w4lppqqrwqvswik8jv";
+    sha256 = "1ila7li9yi4lyjc84a787qr33wr7ayppphxn451jzg410pfcamhz";
   };
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-music/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
index d2d3f83f427c..92c40f4a0086 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-music/default.nix
@@ -30,13 +30,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "gnome-music";
-  version = "3.36.3";
+  version = "3.36.4.1";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0ds225fd0zl0zpjc2wmzg4fwivqbqsyiqpnf9pzlqpwrz10d5y2l";
+    sha256 = "0zdpjgwf48bqb66wrl6k33pzcmc2g3m1046ma7z8xaj9idpi37jh";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
index 03edd5c9bfe9..c32289d70d79 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/gnome-notes/default.nix
@@ -23,7 +23,7 @@
 }:
 
 let
-  version = "3.36.1";
+  version = "3.36.3";
 in
 stdenv.mkDerivation {
   pname = "gnome-notes";
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://gnome/sources/bijiben/${stdenv.lib.versions.majorMinor version}/bijiben-${version}.tar.xz";
-    sha256 = "0421g9czdahk2w2kv7zg4gd9b4q8g1hl483jsfrxy5y7saincbr1";
+    sha256 = "1midnphyg038s94ahhzv0pvbzzzn62ccky28c9nazxqvw4hvdsbh";
   };
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix b/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix
index ec6791e32311..3668fc171b36 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/apps/seahorse/default.nix
@@ -27,11 +27,11 @@
 
 stdenv.mkDerivation rec {
   pname = "seahorse";
-  version = "3.36";
+  version = "3.36.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1nqn4a6dr4l1fpzj3mv4swhpnvhjcqlwsyhwm59sdzqgdfx4hbwr";
+    sha256 = "16wmxxppgcgfj8zkagcny5af1c81x32ysm9d6j9f2k7bmik21ss5";
   };
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/baobab/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/baobab/default.nix
index af39d3a3c053..dce14d6d1de9 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/baobab/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/baobab/default.nix
@@ -4,13 +4,13 @@
 
 let
   pname = "baobab";
-  version = "3.34.0";
+  version = "3.34.1";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "01w6m5ylyqs4wslpjn1hg6n6ynwh3rghksak0qs8r9m6dm3dkss6";
+    sha256 = "1i90gc1cpw5507zn54k46hj4mjgdxsq8cvpnlgxq0ksy2d7iv63z";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig vala gettext itstool libxml2 desktop-file-utils wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
index 860b7b957b97..c6b02917ce42 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/dconf-editor/default.nix
@@ -3,13 +3,13 @@
 
 let
   pname = "dconf-editor";
-  version = "3.36.2";
+  version = "3.36.4";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1iz1ngb26llhqnm2s4p55ysvnav41iv0fx0pbw98k181gy3cikpd";
+    sha256 = "0y9yll77wkvr9ly132icfsl12sdz5aba9qc3aqm5rc90r6xhkhry";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix
index db15cf2555c8..6ad0834724d1 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/eog/default.nix
@@ -1,23 +1,65 @@
-{ fetchurl, stdenv, meson, ninja, gettext, itstool, pkgconfig, libxml2, libjpeg, libpeas, gnome3
-, gtk3, glib, gsettings-desktop-schemas, adwaita-icon-theme, gnome-desktop, lcms2, gdk-pixbuf, exempi
-, shared-mime-info, wrapGAppsHook, librsvg, libexif, gobject-introspection, python3 }:
+{ stdenv
+, fetchurl
+, meson
+, ninja
+, gettext
+, itstool
+, pkg-config
+, libxml2
+, libjpeg
+, libpeas
+, gnome3
+, gtk3
+, glib
+, gsettings-desktop-schemas
+, adwaita-icon-theme
+, gnome-desktop
+, lcms2
+, gdk-pixbuf
+, exempi
+, shared-mime-info
+, wrapGAppsHook
+, librsvg
+, libexif
+, gobject-introspection
+, python3
+}:
 
-let
+stdenv.mkDerivation rec {
   pname = "eog";
-  version = "3.36.2";
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
+  version = "3.36.3";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "135pw7ifr585grz1rbmynyyrmhd8w880pilg7c4nvq58jl16n1aw";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1p1lrnsgk5iyw7h02qzax4s74dqqsh5lk85b0qsj7hwx91qm61xp";
   };
 
-  nativeBuildInputs = [ meson ninja pkgconfig gettext itstool wrapGAppsHook libxml2 gobject-introspection python3 ];
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    itstool
+    wrapGAppsHook
+    libxml2
+    gobject-introspection
+    python3
+  ];
 
   buildInputs = [
-    libjpeg gtk3 gdk-pixbuf glib libpeas librsvg lcms2 gnome-desktop libexif exempi
-    gsettings-desktop-schemas shared-mime-info adwaita-icon-theme
+    libjpeg
+    gtk3
+    gdk-pixbuf
+    glib
+    libpeas
+    librsvg
+    lcms2
+    gnome-desktop
+    libexif
+    exempi
+    gsettings-desktop-schemas
+    shared-mime-info
+    adwaita-icon-theme
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/epiphany/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/epiphany/default.nix
index 5cffe4187ca6..ad2d67972a97 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/epiphany/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/epiphany/default.nix
@@ -35,11 +35,11 @@
 
 stdenv.mkDerivation rec {
   pname = "epiphany";
-  version = "3.36.2";
+  version = "3.36.4";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/epiphany/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0ppvzfv98031y884cgy5agr90a0q3m37x2kybsd804g21ym7drn2";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1gs2a94fzpciv58rljgbirsc2kqgiaiyc2yg6ff50nlgb2qpb2jq";
   };
 
   # Tests need an X display
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/evince/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/evince/default.nix
index d9d9f916d46d..11a5bcbd0f78 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/evince/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/evince/default.nix
@@ -43,13 +43,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evince";
-  version = "3.36.5";
+  version = "3.36.7";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evince/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0z79jl0j9xq9wgwkfr0d1w1qrdy4447y8shs407n5srr0vixc3bg";
+    sha256 = "0clg9fhgjyj23mmcmw7dp512wzgv5m18fppn05qf1frz7r11mmk5";
   };
 
   postPatch = ''
@@ -128,6 +128,6 @@ stdenv.mkDerivation rec {
 
     license = stdenv.lib.licenses.gpl2Plus;
     platforms = platforms.linux;
-    maintainers = teams.gnome.members ++ [ maintainers.vcunat ];
+    maintainers = teams.gnome.members;
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
index 4bb3f4517f0e..721b38d85641 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/evolution-data-server/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evolution-data-server";
-  version = "3.36.3";
+  version = "3.36.5";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/evolution-data-server/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1cix02xl473m0l7h715s68cn7bi1p4y1jkrxswcq4a0g7lblhpqz";
+    sha256 = "1nbzzqxlck3jz42wnxl281yfzpylcvbsbb0fvkh7nibdaj654mf5";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
index 6e933e7b9af0..5372552a7208 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-contacts/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-contacts";
-  version = "3.36.1";
+  version = "3.36.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-contacts/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0qb2kgyk6f6wr129a0gzhvpy5wdjpwjbksxyfs6zxv183jl9s73z";
+    sha256 = "048l07biy8xrfidfyzrjd5lrnfzqhb767ih2gl7w6c4mmhj4g2dy";
   };
 
   propagatedUserEnvPkgs = [ evolution-data-server ];
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
index d282fec2e851..ea28d651eba9 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-control-center/default.nix
@@ -68,11 +68,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-control-center";
-  version = "3.36.3";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0739qcwfwrimfrpf3gaakkf7ipwy3virs096kkhkxjmy1nbls5xw";
+    sha256 = "0m7pxjgymc7aqqz0vcmlq91nxnwzd1v7v1gdhrfam49krxmk80mc";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
index 22b3f17b4256..e558eb66d40f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-desktop";
-  version = "3.36.3.1";
+  version = "3.36.5";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-desktop/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0zkbx5inprjpf4abqwn0bxc2d1rwbhv450cjh1wgz82ylagi3vab";
+    sha256 = "0lxpgb199hn37vq822qg9g43pwixbki3x5lkazqa77qhjhlj98gf";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
index a7f66e68eeff..40085e501b62 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-disk-utility/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-disk-utility";
-  version = "3.36.1";
+  version = "3.36.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-disk-utility/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "055l29z99f4ybgf2plz3biz1bwhlpsjpr0zk3aa6vg5w67r1h6vr";
+    sha256 = "0yhnjmjzkixj29vcw6rzaijpg4mlwm2k1kqp4g3hn1xb6qzks0yx";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
index ff7463b940ec..ff7b1f45e454 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-initial-setup/default.nix
@@ -36,11 +36,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-initial-setup";
-  version = "3.36.3";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "11f2yj8q844gks3jkfbi4ap448snz1wjflqbq4y2kk12r3w37afq";
+    sha256 = "17szzz2a5wpi7kwjnhimiwf8vg0bfliyk3k0adgv1pw2mcfpxp5s";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
index a501f9122774..ba1b0faedb20 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extensions";
-  version = "3.36.2";
+  version = "3.36.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-shell-extensions/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0gq0z0k02b5cfaqrikk2hzbqzjkb6qwcanaqi2jh7nswa7g050lp";
+    sha256 = "1cg3dqvvxg8zrdqs2rci8sds2hxjahbhm87f0xpy8b3gq56lqrrb";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
index 37962d0c69d4..8f2e78c639c2 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
@@ -1,60 +1,81 @@
-{ fetchurl, fetchpatch, substituteAll, stdenv, meson, ninja, pkgconfig, gnome3, json-glib, gettext, libsecret
-, python3, libsoup, polkit, clutter, networkmanager, docbook_xsl , docbook_xsl_ns, at-spi2-core
-, libstartup_notification, telepathy-glib, telepathy-logger, libXtst, unzip, glibcLocales, shared-mime-info
-, libgweather, libcanberra-gtk3, librsvg, geoclue2, perl, docbook_xml_dtd_42, desktop-file-utils
-, libpulseaudio, libical, gobject-introspection, wrapGAppsHook, libxslt, gcr
-, accountsservice, gdk-pixbuf, gdm, upower, ibus, libnma, libgnomekbd, gnome-desktop
-, gsettings-desktop-schemas, gnome-keyring, glib, gjs, mutter, evolution-data-server, gtk3
-, sassc, systemd, gst_all_1, adwaita-icon-theme, gnome-bluetooth, gnome-clocks, gnome-settings-daemon
-, gnome-autoar, asciidoc-full
+{ fetchurl
+, fetchpatch
+, substituteAll
+, stdenv
+, meson
+, ninja
+, pkg-config
+, gnome3
+, json-glib
+, gettext
+, libsecret
+, python3
+, polkit
+, networkmanager
+, gtk-doc
+, docbook-xsl-nons
+, at-spi2-core
+, libstartup_notification
+, telepathy-glib
+, telepathy-logger
+, unzip
+, shared-mime-info
+, libgweather
+, librsvg
+, geoclue2
+, perl
+, docbook_xml_dtd_412
+, docbook_xml_dtd_42
+, docbook_xml_dtd_43
+, desktop-file-utils
+, libpulseaudio
+, libical
+, gobject-introspection
+, wrapGAppsHook
+, libxslt
+, gcr
+, accountsservice
+, gdk-pixbuf
+, gdm
+, upower
+, ibus
+, libnma
+, libgnomekbd
+, gnome-desktop
+, gsettings-desktop-schemas
+, gnome-keyring
+, glib
+, gjs
+, mutter
+, evolution-data-server
+, gtk3
+, sassc
+, systemd
+, gst_all_1
+, adwaita-icon-theme
+, gnome-bluetooth
+, gnome-clocks
+, gnome-settings-daemon
+, gnome-autoar
+, asciidoc-full
 , bash-completion
 }:
 
 # http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild?revision=1.3&view=markup
-
 let
-  pythonEnv = python3.withPackages ( ps: with ps; [ pygobject3 ] );
-
-in stdenv.mkDerivation rec {
+  pythonEnv = python3.withPackages (ps: with ps; [ pygobject3 ]);
+in
+stdenv.mkDerivation rec {
   pname = "gnome-shell";
-  version = "3.36.3";
+  version = "3.36.5";
+
+  outputs = [ "out" "devdoc" ];
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-shell/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1fs51lcaal4lnx6m5a3j8922yjbjk32khznx77cxb2db1zvspn46";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "1hj7gmjmy92xndlgw7pzk5m6j2fbzcgfd1pxc32k38gml8qg19d4";
   };
 
-  LANG = "en_US.UTF-8";
-
-  nativeBuildInputs = [
-    meson ninja pkgconfig gettext docbook_xsl docbook_xsl_ns docbook_xml_dtd_42 perl wrapGAppsHook glibcLocales
-    sassc desktop-file-utils libxslt.bin python3 asciidoc-full
-  ];
-  buildInputs = [
-    systemd
-    gsettings-desktop-schemas gnome-keyring glib gcr json-glib accountsservice
-    libsecret libsoup polkit gdk-pixbuf librsvg
-    networkmanager libstartup_notification telepathy-glib
-    libXtst gjs mutter libpulseaudio evolution-data-server
-    libical gtk3 gdm libcanberra-gtk3 geoclue2
-    adwaita-icon-theme gnome-bluetooth
-    gnome-clocks # schemas needed
-    at-spi2-core upower ibus gnome-desktop telepathy-logger gnome-settings-daemon
-    gobject-introspection
-    gnome-autoar
-
-    # recording
-    gst_all_1.gstreamer
-    gst_all_1.gst-plugins-base
-    gst_all_1.gst-plugins-good
-
-    # not declared at build time, but typelib is needed at runtime
-    libgweather libnma
-
-    # for gnome-extension tool
-    bash-completion
-  ];
-
   patches = [
     # Hardcode paths to various dependencies so that they can be found at runtime.
     (substituteAll {
@@ -86,6 +107,77 @@ in stdenv.mkDerivation rec {
     })
   ];
 
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+    gettext
+    docbook-xsl-nons
+    docbook_xml_dtd_412
+    docbook_xml_dtd_42
+    docbook_xml_dtd_43
+    gtk-doc
+    perl
+    wrapGAppsHook
+    sassc
+    desktop-file-utils
+    libxslt.bin
+    python3
+    asciidoc-full
+  ];
+
+  buildInputs = [
+    systemd
+    gsettings-desktop-schemas
+    gnome-keyring
+    glib
+    gcr
+    accountsservice
+    libsecret
+    polkit
+    gdk-pixbuf
+    librsvg
+    networkmanager
+    libstartup_notification
+    telepathy-glib
+    gjs
+    mutter
+    libpulseaudio
+    evolution-data-server
+    libical
+    gtk3
+    gdm
+    geoclue2
+    adwaita-icon-theme
+    gnome-bluetooth
+    gnome-clocks # schemas needed
+    at-spi2-core
+    upower
+    ibus
+    gnome-desktop
+    telepathy-logger
+    gnome-settings-daemon
+    gobject-introspection
+
+    # recording
+    gst_all_1.gstreamer
+    gst_all_1.gst-plugins-base
+    gst_all_1.gst-plugins-good
+
+    # not declared at build time, but typelib is needed at runtime
+    libgweather
+    libnma
+
+    # for gnome-extension tool
+    bash-completion
+    gnome-autoar
+    json-glib
+  ];
+
+  mesonFlags = [
+    "-Dgtk_doc=true"
+  ];
+
   postPatch = ''
     patchShebangs src/data-to-c.pl
     chmod +x meson/postinstall.py
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix
index 42697911bd48..79cbbb9f5a8c 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/mutter/default.nix
@@ -1,19 +1,18 @@
 { fetchurl
 , fetchpatch
 , substituteAll
+, runCommand
 , stdenv
 , pkgconfig
 , gnome3
 , gettext
 , gobject-introspection
-, upower
 , cairo
 , pango
-, cogl
 , json-glib
 , libstartup_notification
 , zenity
-, libcanberra-gtk3
+, libcanberra
 , ninja
 , xkeyboard_config
 , libxkbfile
@@ -24,7 +23,6 @@
 , glib
 , gtk3
 , gnome-desktop
-, geocode-glib
 , pipewire
 , libgudev
 , libwacom
@@ -42,17 +40,28 @@
 , wayland-protocols
 }:
 
-stdenv.mkDerivation rec {
+let self = stdenv.mkDerivation rec {
   pname = "mutter";
-  version = "3.36.3";
+  version = "3.36.5";
 
   outputs = [ "out" "dev" "man" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/mutter/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1lpf7anlm073npmfqc5n005kyj12j0ym8y9dqg9q7448ilp79kka";
+    sha256 = "1py7sqrpvg2qvswxclshysx7hd9jk65i6cwqsagd6rg6rnjhblp0";
   };
 
+  patches = [
+    # Drop inheritable cap_sys_nice, to prevent the ambient set from leaking
+    # from mutter/gnome-shell, see https://github.com/NixOS/nixpkgs/issues/71381
+    ./drop-inheritable.patch
+
+    (substituteAll {
+      src = ./fix-paths.patch;
+      inherit zenity;
+    })
+  ];
+
   mesonFlags = [
     "-Degl_device=true"
     "-Dinstalled_tests=false" # TODO: enable these
@@ -85,16 +94,14 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     cairo
-    cogl
     egl-wayland
-    geocode-glib
     glib
     gnome-desktop
     gnome-settings-daemon
     gobject-introspection
     gsettings-desktop-schemas
     gtk3
-    libcanberra-gtk3
+    libcanberra
     libgudev
     libinput
     libstartup_notification
@@ -104,25 +111,11 @@ stdenv.mkDerivation rec {
     pango
     pipewire
     sysprof
-    upower
     xkeyboard_config
     xwayland
-    zenity
-    zenity
     wayland-protocols
   ];
 
-  patches = [
-    # Drop inheritable cap_sys_nice, to prevent the ambient set from leaking
-    # from mutter/gnome-shell, see https://github.com/NixOS/nixpkgs/issues/71381
-    ./drop-inheritable.patch
-
-    (substituteAll {
-      src = ./fix-paths.patch;
-      inherit zenity;
-    })
-  ];
-
   postPatch = ''
     patchShebangs src/backends/native/gen-default-modes.py
   '';
@@ -132,6 +125,18 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
+    libdir = "${self}/lib/mutter-6";
+
+    tests = {
+      libdirExists = runCommand "mutter-libdir-exists" {} ''
+        if [[ ! -d ${self.libdir} ]]; then
+          echo "passthru.libdir should contain a directory, “${self.libdir}” is not one."
+          exit 1
+        fi
+        touch $out
+      '';
+    };
+
     updateScript = gnome3.updateScript {
       packageName = pname;
       attrPath = "gnome3.${pname}";
@@ -145,4 +150,5 @@ stdenv.mkDerivation rec {
     maintainers = teams.gnome.members;
     platforms = platforms.linux;
   };
-}
+};
+in self
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/default.nix
index b926f9b627f1..6145178de1e0 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/nautilus/default.nix
@@ -32,11 +32,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nautilus";
-  version = "3.36.2";
+  version = "3.36.3";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1yknaz8n0l949sr8j3b7kdm0cm5mx2dp4n4k577m492hk6akqrr6";
+    sha256 = "1y0fsd7j48v4qkc051cg41mz7jycgw4vd4g37lw682p7n5xgrjmn";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/rygel/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/rygel/default.nix
index 1ace6a5f7772..529091e5fd61 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/rygel/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/rygel/default.nix
@@ -28,14 +28,14 @@
 
 stdenv.mkDerivation rec {
   pname = "rygel";
-  version = "0.38.3";
+  version = "0.38.4";
 
   # TODO: split out lib
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "003xficqb08r1dgid20i7cn889lbfwrglpx78rjd5nkvgxbimhh8";
+    sha256 = "0rm1m1z8rcvyj9873wqcz5i3qdg8j6gv6k1p01xifk0y9phg7rzc";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix b/nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix
index 938e89be1e30..eebd307a3064 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/core/simple-scan/default.nix
@@ -24,11 +24,11 @@
 
 stdenv.mkDerivation rec {
   pname = "simple-scan";
-  version = "3.36.2.1";
+  version = "3.36.4";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/simple-scan/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0aq1pf0wk536b91as54684xgmhl7lps0k2xcwha5wh6h1isyb35v";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "09gmzrlljdqkj3w6wa1c27wypy6j8z9dw3jzv9izfqvp38liibsn";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/appindicator/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
index da0d73364a95..0638241df53b 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/appindicator/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-appindicator";
-  version = "33";
+  version = "34";
 
   src = fetchFromGitHub {
     owner = "Ubuntu";
     repo = "gnome-shell-extension-appindicator";
     rev = "v${version}";
-    sha256 = "0qm77s080nbf4gqnfzpwp8a7jf7lliz6fxbsd3lasvrr11pgsk87";
+    sha256 = "0p9sk8cv2z242d5783gx2m4l1x9vg5fy1a7yr1wcfshvajlrj23m";
   };
 
   # This package has a Makefile, but it's used for building a zip for
@@ -18,10 +18,12 @@ stdenv.mkDerivation rec {
 
   uuid = "appindicatorsupport@rgcjonas.gmail.com";
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions/${uuid}
     cp *.js $out/share/gnome-shell/extensions/${uuid}
     cp -r interfaces-xml $out/share/gnome-shell/extensions/${uuid}
     cp metadata.json $out/share/gnome-shell/extensions/${uuid}
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix
index 7bd31f587f67..336820b7938e 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-arc-menu";
-  version = "43";
+  version = "47";
 
   src = fetchFromGitLab {
-    owner = "LinxGem33";
+    owner = "arcmenu-team";
     repo = "Arc-Menu";
     rev = "v${version}-Stable";
-    sha256 = "1rspl89bxqy0wla8cj0h1d29gp38xg1vmvhc1qg7bl46ank4yp5q";
+    sha256 = "1hhjxdm1sm9pddhkkxx532hqqiv9ghvqgn9xszg1jwhj29380fv6";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch b/nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch
index 7f6b8489ea8b..5d8584f52a6a 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch
@@ -1,12 +1,11 @@
 --- a/extension.js
 +++ b/extension.js
-@@ -29,6 +29,8 @@
-  * https://github.com/The-Panacea-Projects/Gnomenu
-  */
- 
-+
-+imports.gi.GIRepository.Repository.prepend_search_path('@gmenu_path@');
- 
- // Import Libraries
- const Main = imports.ui.main;
+@@ -23,6 +23,8 @@
+
+ const Me = imports.misc.extensionUtils.getCurrentExtension();
 
++imports.gi.GIRepository.Repository.prepend_search_path('@gmenu_path@');
++
+ const {GLib, Gio, St} = imports.gi;
+ const Constants = Me.imports.constants;
+ const Controller = Me.imports.controller;
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/battery-status/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/battery-status/default.nix
index 44b3f04f79d6..c6518201da01 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/battery-status/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/battery-status/default.nix
@@ -14,8 +14,10 @@ stdenv.mkDerivation rec {
   uuid = "battery_status@milliburn.github.com";
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r ${uuid} $out/share/gnome-shell/extensions/
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/caffeine/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/caffeine/default.nix
index 608d44a2892f..770c32f21e79 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/caffeine/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/caffeine/default.nix
@@ -18,13 +18,17 @@ stdenv.mkDerivation rec {
   ];
 
   buildPhase = ''
+    runHook preBuild
     ${bash}/bin/bash ./update-locale.sh
     glib-compile-schemas --strict --targetdir=caffeine@patapon.info/schemas/ caffeine@patapon.info/schemas
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r ${uuid} $out/share/gnome-shell/extensions
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix
index 640903bfe4ed..3e6903c56423 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/clipboard-indicator/default.nix
@@ -14,8 +14,10 @@ stdenv.mkDerivation rec {
   uuid = "clipboard-indicator@tudmotu.com";
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions/${uuid}
     cp -r * $out/share/gnome-shell/extensions/${uuid}
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix
index 4e9c4c025cd1..8a0314cd8b4e 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/dash-to-panel/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-dash-to-panel";
-  version = "31";
+  version = "39";
 
   src = fetchFromGitHub {
     owner = "home-sweet-gnome";
     repo = "dash-to-panel";
     rev = "v${version}";
-    sha256 = "0vh36mdncjvfp1jbinifznj5dw3ahsswwm3m9sjw5gydsbx6vh83";
+    sha256 = "0r7kbmrizl9ilqy7gzzvjwxcv8xpp13n5n0a8s84blg97cih0hw2";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix
index fb7132015944..3c6d181178b4 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/drop-down-terminal/default.nix
@@ -21,8 +21,10 @@ stdenv.mkDerivation rec {
   ];
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r ${uuid} $out/share/gnome-shell/extensions/
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/emoji-selector/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/emoji-selector/default.nix
new file mode 100644
index 000000000000..c4db4702193a
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/emoji-selector/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, glib, gettext }:
+
+stdenv.mkDerivation rec {
+  pname = "gnome-shell-emoji-selector";
+  version = "19";
+
+  src = fetchFromGitHub {
+    owner = "maoschanz";
+    repo = "emoji-selector-for-gnome";
+    rev = version;
+    sha256 = "0x60pg5nl5d73av494dg29hyfml7fbf2d03wm053vx1q8a3pxbyb";
+  };
+
+  uuid = "emoji-selector@maestroschan.fr";
+
+  nativeBuildInputs = [ glib ];
+
+  buildPhase = ''
+    runHook preBuild
+    glib-compile-schemas ./${uuid}/schemas
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/gnome-shell/extensions
+    cp -r ${uuid} $out/share/gnome-shell/extensions
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description =
+      "GNOME Shell extension providing a searchable popup menu displaying most emojis";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ rawkode ];
+    homepage = "https://github.com/maoschanz/emoji-selector-for-gnome";
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
index 625b06d7405c..98827fd3f6a2 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-gsconnect";
-  version = "38";
+  version = "41";
 
   src = fetchFromGitHub {
     owner = "andyholmes";
     repo = "gnome-shell-extension-gsconnect";
     rev = "v${version}";
-    sha256 = "1z5wn3n1sqc2xdxiq0g3dkga7srz5ak41qdyjsh9pzb5x93dxzi5";
+    sha256 = "0lcj7k16jki54bsyh01j4ss4hhfddnahcw02zlmlkl637qdv1b5j";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch b/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch
index 629d34b6f68a..58c02a92eb2e 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/gsconnect/fix-paths.patch
@@ -1,5 +1,7 @@
---- a/data/org.gnome.Shell.Extensions.GSConnect.desktop
-+++ b/data/org.gnome.Shell.Extensions.GSConnect.desktop
+diff --git i/data/org.gnome.Shell.Extensions.GSConnect.desktop.in w/data/org.gnome.Shell.Extensions.GSConnect.desktop.in
+index ffb23342..b405c73b 100644
+--- i/data/org.gnome.Shell.Extensions.GSConnect.desktop.in
++++ w/data/org.gnome.Shell.Extensions.GSConnect.desktop.in
 @@ -1,7 +1,7 @@
  [Desktop Entry]
  Type=Application
@@ -9,18 +11,22 @@
  Terminal=false
  NoDisplay=true
  Icon=org.gnome.Shell.Extensions.GSConnect
---- a/src/extension.js
-+++ b/src/extension.js
+diff --git i/src/extension.js w/src/extension.js
+index 5f32aa68..872c0c61 100644
+--- i/src/extension.js
++++ w/src/extension.js
 @@ -1,5 +1,7 @@
  'use strict';
  
 +'@typelibPath@'.split(':').forEach(path => imports.gi.GIRepository.Repository.prepend_search_path(path));
 +
  const Gio = imports.gi.Gio;
- const GLib = imports.gi.GLib;
+ const GObject = imports.gi.GObject;
  const Gtk = imports.gi.Gtk;
---- a/src/prefs.js
-+++ b/src/prefs.js
+diff --git i/src/prefs.js w/src/prefs.js
+index 07e93099..1c166710 100644
+--- i/src/prefs.js
++++ w/src/prefs.js
 @@ -1,5 +1,7 @@
  'use strict';
  
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix
index efaef03f3b11..844c8ad84d79 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/icon-hider/default.nix
@@ -14,8 +14,10 @@ stdenv.mkDerivation rec {
   uuid = "icon-hider@kalnitsky.org";
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r ${uuid} $out/share/gnome-shell/extensions
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/impatience/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/impatience/default.nix
index 230498f5d7bc..073a4301cc5e 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/impatience/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/impatience/default.nix
@@ -16,12 +16,16 @@ stdenv.mkDerivation rec {
   ];
 
   buildPhase = ''
+    runHook preBuild
     make schemas
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r impatience $out/share/gnome-shell/extensions/${uuid}
+    runHook postInstall
   '';
 
   uuid = "impatience@gfxmonk.net";
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix
index fe3a079c01be..4bf4b7508176 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/mpris-indicator-button/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , gnome3
 }:
 
@@ -17,10 +18,19 @@ stdenv.mkDerivation rec {
   uuid = "mprisindicatorbutton@JasonLG1979.github.io";
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r ${uuid} $out/share/gnome-shell/extensions
+    runHook postInstall
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "gnomeExtensions.${pname}";
+    };
+  };
+
+
   meta = with stdenv.lib; {
     description = "A simple MPRIS indicator button for GNOME Shell";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix
index be6c1916ab42..f170a2fb1907 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/night-theme-switcher/default.nix
@@ -1,25 +1,25 @@
-{ stdenv, fetchFromGitLab }:
+{ stdenv, fetchFromGitLab, glib, gnome3, unzip }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-night-theme-switcher";
-  version = "19";
+  version = "36";
 
   src = fetchFromGitLab {
     owner = "rmnvgr";
     repo = "nightthemeswitcher-gnome-shell-extension";
     rev = "v${version}";
-    sha256 = "1ll0yf1skf51wa10mlrajd1dy459w33kx0i3vhfcx2pdk7mw5a3c";
+    sha256 = "1c88979qprwb5lj0v7va017w7rdr89a648anhw4k5q135jwyskpz";
   };
 
-  # makefile tries to do install in home directory using
-  # `gnome-extensions install`
-  dontBuild = true;
+  buildInputs = [ glib gnome3.gnome-shell unzip ];
 
   uuid = "nightthemeswitcher@romainvigier.fr";
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions/
-    cp -r src/ $out/share/gnome-shell/extensions/${uuid}
+    unzip build/${uuid}.shell-extension.zip -d $out/share/gnome-shell/extensions/${uuid}
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/paperwm/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/paperwm/default.nix
index 7a79b691a4df..f5ffac9b2f34 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/paperwm/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/paperwm/default.nix
@@ -16,8 +16,10 @@ stdenv.mkDerivation rec {
   dontBuild = true;
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions/${uuid}
     cp -r . $out/share/gnome-shell/extensions/${uuid}
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix
index e13941ee0455..dfcfd63b59db 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/pidgin-im-integration/default.nix
@@ -15,10 +15,12 @@ stdenv.mkDerivation rec {
   dontBuild = true;
 
   installPhase = ''
+    runHook preInstall
     share_dir="$prefix/share"
     extensions_dir="$share_dir/gnome-shell/extensions/pidgin@muffinmad"
     mkdir -p "$extensions_dir"
     mv *.js metadata.json dbus.xml schemas locale "$extensions_dir"
+    runHook postInstall
   '';
 
   uuid = "pidgin@muffinmad";
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix
index acb0e3624298..6d6a04a386cc 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/remove-dropdown-arrows/default.nix
@@ -18,9 +18,11 @@ stdenv.mkDerivation rec {
 
   uuid = "remove-dropdown-arrows@mpdeimos.com";
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions/${uuid}
     cp extension.js $out/share/gnome-shell/extensions/${uuid}
     cp metadata.json $out/share/gnome-shell/extensions/${uuid}
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix
index 6273a83dfca5..870ac448bb4e 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/sound-output-device-chooser/default.nix
@@ -28,8 +28,10 @@ stdenv.mkDerivation rec {
 
   uuid = "sound-output-device-chooser@kgshank.net";
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r ${uuid} $out/share/gnome-shell/extensions
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix
index 489a4c5587fa..1b1da50b7fa7 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, substituteAll, fetchFromGitHub, glib, glib-networking, libgtop, gnome3 }:
+{ stdenv, substituteAll, fetchpatch, fetchFromGitHub, glib, glib-networking, libgtop, gnome3 }:
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-system-monitor";
-  version = "38";
+  version = "2020-04-27-unstable";
 
   src = fetchFromGitHub {
     owner = "paradoxxxzero";
     repo = "gnome-shell-system-monitor-applet";
-    rev = "v${version}";
-    sha256 = "1sdj2kxb418mgq44a6lf6jic33wlfbnn3ja61igmx0jj1530iknv";
+    rev = "7f8f0a7b255473941f14d1dcaa35ebf39d3bccd0";
+    sha256 = "tUUvBY0UEUE+T79zVZEAICpKoriFZuuZzi9ArdHdXks=";
   };
 
   buildInputs = [
@@ -20,18 +20,23 @@ stdenv.mkDerivation rec {
   patches = [
     (substituteAll {
       src = ./paths_and_nonexisting_dirs.patch;
+      clutter_path = gnome3.mutter.libdir; # this should not be used in settings but 🤷‍♀️
       gtop_path = "${libgtop}/lib/girepository-1.0";
       glib_net_path = "${glib-networking}/lib/girepository-1.0";
     })
   ];
 
   buildPhase = ''
+    runHook preBuild
     glib-compile-schemas --targetdir=${uuid}/schemas ${uuid}/schemas
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r ${uuid} $out/share/gnome-shell/extensions
+    runHook postInstall
   '';
 
   uuid = "system-monitor@paradoxxx.zero.gmail.com";
@@ -41,8 +46,5 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ tiramiseb ];
     homepage = "https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet";
-    # 3.36 support not yet ready
-    # https://github.com/paradoxxxzero/gnome-shell-system-monitor-applet/pull/564
-    broken = stdenv.lib.versionAtLeast gnome3.gnome-shell.version "3.34";
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/paths_and_nonexisting_dirs.patch b/nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/paths_and_nonexisting_dirs.patch
index 82e3d7c541ba..280af965af3f 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/paths_and_nonexisting_dirs.patch
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/system-monitor/paths_and_nonexisting_dirs.patch
@@ -1,5 +1,5 @@
 diff --git a/system-monitor@paradoxxx.zero.gmail.com/extension.js b/system-monitor@paradoxxx.zero.gmail.com/extension.js
-index b4b7f15..d139135 100644
+index de5e3d7..2d7824d 100644
 --- a/system-monitor@paradoxxx.zero.gmail.com/extension.js
 +++ b/system-monitor@paradoxxx.zero.gmail.com/extension.js
 @@ -18,6 +18,9 @@
@@ -11,13 +11,23 @@ index b4b7f15..d139135 100644
 +
  /* Ugly. This is here so that we don't crash old libnm-glib based shells unnecessarily
   * by loading the new libnm.so. Should go away eventually */
- const libnm_glib = imports.gi.GIRepository.Repository.get_default().is_registered("NMClient", "1.0");
-@@ -386,7 +389,7 @@ const smMountsMonitor = new Lang.Class({
-     connected: false,
-     _init: function () {
+ 
+@@ -407,7 +410,7 @@ const smMountsMonitor = class SystemMonitor_smMountsMonitor {
+         this.connected = false;
+ 
          this._volumeMonitor = Gio.VolumeMonitor.get();
 -        let sys_mounts = ['/home', '/tmp', '/boot', '/usr', '/usr/local'];
 +        let sys_mounts = ['/home', '/tmp', '/boot'];
          this.base_mounts = ['/'];
-         sys_mounts.forEach(Lang.bind(this, function (sMount) {
+         sys_mounts.forEach((sMount) => {
              if (this.is_sys_mount(sMount + '/')) {
+diff --git a/system-monitor@paradoxxx.zero.gmail.com/prefs.js b/system-monitor@paradoxxx.zero.gmail.com/prefs.js
+index 81d667c..0da4809 100644
+--- a/system-monitor@paradoxxx.zero.gmail.com/prefs.js
++++ b/system-monitor@paradoxxx.zero.gmail.com/prefs.js
+@@ -1,3 +1,5 @@
++imports.gi.GIRepository.Repository.prepend_search_path('@clutter_path@');
++
+ const Gtk = imports.gi.Gtk;
+ const Gio = imports.gi.Gio;
+ const Gdk = imports.gi.Gdk;
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix
index 60ca1dcbef37..57f5a9377baa 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/tilingnome/default.nix
@@ -14,12 +14,16 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ glib ];
 
   buildPhase = ''
+    runHook preBuild
     glib-compile-schemas .
+    runHook postBuild
   '';
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions/${uuid}
     cp -r * $out/share/gnome-shell/extensions/${uuid}/
+    runHook postInstall
   '';
 
   uuid = "tilingnome@rliang.github.com";
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/timepp/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/timepp/default.nix
index 6ac9a4a0331e..f1c53eda6bdf 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/timepp/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/timepp/default.nix
@@ -2,19 +2,21 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-timepp";
-  version = "unstable-2019-03-30";
+  version = "unstable-2020-03-15";
 
   src = fetchFromGitHub {
     owner = "zagortenay333";
     repo = "timepp__gnome";
-    rev = "f90fb5573b37ac89fb57bf62e07d6d3bdb6a2c63";
-    sha256 = "0p6rsbm6lf61vzly775qkwc2rcjjl38bkqdxnv4sccqmw2wwclnp";
+    rev = "34ae477a51267cc1e85992a80cf85a1a7b7005c1";
+    sha256 = "1v0xbrp0x5dwizscxh7h984pax4n92bj8iyw3qvjk27ynpxq8ag1";
   };
 
   uuid = "timepp@zagortenay333";
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions/${uuid}
     cp -r . $out/share/gnome-shell/extensions/${uuid}
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
@@ -22,6 +24,5 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/zagortenay333/timepp__gnome";
     license = licenses.gpl3;
     maintainers = with maintainers; [ svsdep ];
-    broken = versionAtLeast gnome3.gnome-shell.version "3.32"; # Dosen't support 3.34 https://github.com/zagortenay333/timepp__gnome/issues/113
   };
 }
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix
index 44402fc6e135..9c5d5266ce27 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/window-corner-preview/default.nix
@@ -15,8 +15,10 @@ stdenv.mkDerivation rec {
 
   uuid = "window-corner-preview@fabiomereu.it";
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r ${uuid} $out/share/gnome-shell/extensions
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/window-is-ready-remover/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/window-is-ready-remover/default.nix
index 15871e661c12..45ac75baf8bf 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/window-is-ready-remover/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/window-is-ready-remover/default.nix
@@ -14,8 +14,10 @@ stdenv.mkDerivation rec {
   uuid = "windowIsReady_Remover@nunofarruca@gmail.com";
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions/
     cp -r ${uuid} $out/share/gnome-shell/extensions/${uuid}
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix b/nixpkgs/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix
index 528f4e9f892b..4dcb4a8941cd 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/extensions/workspace-matrix/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-shell-extension-workspace-matrix";
-  version = "4.0.0";
+  version = "4.0.1";
 
   src = fetchFromGitHub {
     owner = "mzur";
     repo = "gnome-shell-wsmatrix";
     rev = "v${version}";
-    sha256 = "0ak4067kgr0yi2hlrsbhsq28ksspmx7l811h0xqy4idg48ly8c1d";
+    sha256 = "1xx2h8k981657lws614f7x4mqjk900xq9907j2h5jdhbbic5ppy6";
   };
 
   uuid = "wsmatrix@martin.zurowietz.de";
@@ -21,8 +21,10 @@ stdenv.mkDerivation rec {
   buildFlags = "schemas";
 
   installPhase = ''
+    runHook preInstall
     mkdir -p $out/share/gnome-shell/extensions
     cp -r ${uuid} $out/share/gnome-shell/extensions
+    runHook postInstall
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/aisleriot/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/aisleriot/default.nix
index e4de15c79b29..9ea68b02ea87 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/aisleriot/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/games/aisleriot/default.nix
@@ -1,23 +1,64 @@
-{ stdenv, fetchurl, pkgconfig, gnome3, intltool, itstool, gtk3
-, wrapGAppsHook, librsvg, libxml2, desktop-file-utils
-, guile_2_0, libcanberra-gtk3 }:
+{ stdenv
+, fetchFromGitLab
+, pkg-config
+, gnome3
+, itstool
+, gtk3
+, wrapGAppsHook
+, meson
+, librsvg
+, libxml2
+, desktop-file-utils
+, pysolfc
+, guile
+, libcanberra-gtk3
+, ninja
+, appstream-glib
+, yelp-tools
+}:
 
 stdenv.mkDerivation rec {
   pname = "aisleriot";
-  version = "3.22.9";
+  version = "3.22.11";
 
-  src = fetchurl {
-    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0yzdh9cw5cjjgvfh75bihl968czlgfmpmn1z0fdk88sgvpjgzwji";
+  src = fetchFromGitLab {
+    owner = "GNOME";
+    repo = pname;
+    domain = "gitlab.gnome.org";
+    rev    = "${version}";
+    sha256 = "1asm0y6485xqsysdg586y3hzz8bhxqwnc82k6vhfnxpxz7l62qa1";
   };
 
-  configureFlags = [
-    "--with-card-theme-formats=svg"
-    "--with-platform=gtk-only" # until they remove GConf
+  nativeBuildInputs = [
+    wrapGAppsHook
+    meson
+    ninja
+    appstream-glib
+    pkg-config
+    itstool
+    libxml2
+    desktop-file-utils
+    yelp-tools
   ];
 
-  nativeBuildInputs = [ pkgconfig intltool itstool wrapGAppsHook libxml2 desktop-file-utils ];
-  buildInputs = [ gtk3 librsvg guile_2_0 libcanberra-gtk3 ];
+  buildInputs = [
+    gtk3
+    librsvg
+    guile
+    libcanberra-gtk3
+    pysolfc
+  ];
+
+  prePatch = ''
+    patchShebangs cards/meson_svgz.sh
+    patchShebangs data/meson_desktopfile.py
+    patchShebangs data/icons/meson_updateiconcache.py
+    patchShebangs src/lib/meson_compileschemas.py
+  '';
+
+  mesonFlags = [
+    "-Dtheme_kde=false"
+  ];
 
   passthru = {
     updateScript = gnome3.updateScript {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
index aaaba71c7ee3..3960f233003c 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/games/four-in-a-row/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "four-in-a-row";
-  version = "3.36.3";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/four-in-a-row/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1qc6s0v8gnzw3wfbfaaindb031cc8akdjdn2sjqqfxhbpx6mhzmr";
+    sha256 = "1y1ihh72zk0bgyj197dpwgwj1q91dhvp0rasrib8k18sisrdq31h";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-mines/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
index f49634c6ada0..011b9569fd84 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/games/gnome-mines/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-mines";
-  version = "3.36.0";
+  version = "3.36.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gnome-mines/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0m53ymxbgr3rb3yv13fzjwqh6shsfr51abkm47rchsy2jryqkzja";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0m2680r94nk61imym4x73j03jwfjd8cxm592m5ybiqdfdw6i723i";
   };
 
   # gobject-introspection for finding vapi files
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
index 9dcc8744d2e2..a9757de63938 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/games/gnome-nibbles/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-nibbles";
-  version = "3.36.0";
+  version = "3.36.1";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-nibbles/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "01vzcjys2x95wnanwq25x0a7x6cc4j6g8gk69c5yc9ild48rr9c1";
+    sha256 = "17n6ji6yr521kzxfbfm0yxvrlnw4hlzacbwn0jqmw7xf3pdq35z6";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
index fb609bbb9781..99bdffe16ade 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/games/gnome-taquin/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-taquin";
-  version = "3.36.3";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-taquin/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "149bv8q2a44i9msyshhh57nxwf5a43hankbndbvjqvq95yqlnhv4";
+    sha256 = "0awfssqpswsyla4gn80ifj53biwq34hcadxlknnlm7jpz0z38cp0";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
index 01dc3bab0ca4..f80012e22bb9 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/games/gnome-tetravex/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-tetravex";
-  version = "3.36.3";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-tetravex/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0y1kc9j740088ffj4rd49w4f2pkn8w6paids5g1dv609sfpzyips";
+    sha256 = "0amnmd12mpny3vnf946wnphlsnbvjrvkx29sarplm57m1571qdc5";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/iagno/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/iagno/default.nix
index 3b4fca5f364e..0263de1c9b02 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/iagno/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/games/iagno/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "iagno";
-  version = "3.36.3";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/iagno/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0cid9fag8irlq0cywyqaj402vb60l8f66ld1zj7a023rg0khqnbb";
+    sha256 = "1fh2cvyqbz8saf2wij0bz2r9bja2k4gy6fqvbvig4gv0lx66gl29";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/quadrapassel/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
index a4c139f0671c..a5302fee7abb 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/games/quadrapassel/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "quadrapassel";
-  version = "3.36.02";
+  version = "3.36.05";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/quadrapassel/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0c80pzipxricyh4wydffsc94wj6ymnanqr9bg6wdx51hz1mmmilb";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "04abxmimh5npw8rhz1sfi6wxilgc6i1wka9mlnfwp8v1p1cb00cv";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/gnome-3/games/tali/default.nix b/nixpkgs/pkgs/desktops/gnome-3/games/tali/default.nix
index 62df1cd1e3da..2fd1d034db3e 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/games/tali/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/games/tali/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tali";
-  version = "3.36.1";
+  version = "3.36.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/tali/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1klnxk49rr1m2lr4zj1wvfl0iaxzdh2k8ngrcmfmcq39vlxnn94y";
+    sha256 = "12h6783m4634zzprlk31j0dmvgzrfjklhl0z49fdwcziw5bszr3c";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
index d390a5b27a28..037c7812105c 100644
--- a/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
+++ b/nixpkgs/pkgs/desktops/gnome-3/misc/gnome-panel/default.nix
@@ -22,7 +22,7 @@
 
 let
   pname = "gnome-panel";
-  version = "3.36.1";
+  version = "3.36.2";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
@@ -30,7 +30,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "1lxba8syy9gb50zxdk13gr1f62dfphwbb7njg6p26x9rvlkbf88y";
+    sha256 = "0z0f64rgcwkv48kfd1ifzjvnmg3c386hwi9cj11mr5198rah0p4p";
   };
 
   # make .desktop Exec absolute
diff --git a/nixpkgs/pkgs/desktops/lxde/core/lxpanel/default.nix b/nixpkgs/pkgs/desktops/lxde/core/lxpanel/default.nix
index 20b5a35fc309..1e0fb3569825 100644
--- a/nixpkgs/pkgs/desktops/lxde/core/lxpanel/default.nix
+++ b/nixpkgs/pkgs/desktops/lxde/core/lxpanel/default.nix
@@ -1,23 +1,30 @@
 { stdenv, fetchurl, pkgconfig, gettext, m4, intltool, libxmlxx, keybinder
-, gtk2, libX11, libfm, libwnck, libXmu, libXpm, cairo, gdk-pixbuf
-, menu-cache, lxmenu-data, wirelesstools
+, gtk2, libX11, libfm, libwnck, libXmu, libXpm, cairo, gdk-pixbuf, gdk-pixbuf-xlib
+, menu-cache, lxmenu-data, wirelesstools, curl
 , supportAlsa ? false, alsaLib
 }:
 
 stdenv.mkDerivation rec {
-  name = "lxpanel-0.9.3";
+  name = "lxpanel-0.10.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/lxde/${name}.tar.xz";
-    sha256 = "1ccgv7jgl3y865cpb6w7baaz7468fxncm83bqxlwyni5bwhglb1l";
+    sha256 = "0zis3b815p375s6mymhf5sn1a0c1xv0ixxzb0mh3fqhrby6cqy26";
   };
 
   nativeBuildInputs = [ pkgconfig gettext m4 intltool libxmlxx ];
   buildInputs = [
-    keybinder gtk2 libX11 libfm libwnck libXmu libXpm cairo gdk-pixbuf
-    menu-cache lxmenu-data m4 wirelesstools
+    keybinder gtk2 libX11 libfm libwnck libXmu libXpm cairo gdk-pixbuf gdk-pixbuf-xlib.dev
+    menu-cache lxmenu-data m4 wirelesstools curl
   ] ++ stdenv.lib.optional supportAlsa alsaLib;
 
+  postPatch = ''
+    substituteInPlace src/Makefile.in \
+      --replace "@PACKAGE_CFLAGS@" "@PACKAGE_CFLAGS@ -I${gdk-pixbuf-xlib.dev}/include/gdk-pixbuf-2.0"
+    substituteInPlace plugins/Makefile.in \
+      --replace "@PACKAGE_CFLAGS@" "@PACKAGE_CFLAGS@ -I${gdk-pixbuf-xlib.dev}/include/gdk-pixbuf-2.0"
+  '';
+
   meta = {
     description = "Lightweight X11 desktop panel for LXDE";
     homepage = "https://lxde.org/";
diff --git a/nixpkgs/pkgs/desktops/lxqt/default.nix b/nixpkgs/pkgs/desktops/lxqt/default.nix
index 45714260381b..90e466f7471e 100644
--- a/nixpkgs/pkgs/desktops/lxqt/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, makeScope, libsForQt5 }:
+{ pkgs, makeScope, libsForQt5, qt5 }:
 let
   packages = self: with self; {
 
@@ -53,14 +53,14 @@ let
 
     preRequisitePackages = [
       pkgs.gvfs # virtual file systems support for PCManFM-QT
-      pkgs.libsForQt5.kwindowsystem # provides some QT5 plugins needed by lxqt-panel
-      pkgs.libsForQt5.libkscreen # provides plugins for screen management software
+      libsForQt5.kwindowsystem # provides some QT5 plugins needed by lxqt-panel
+      libsForQt5.libkscreen # provides plugins for screen management software
       pkgs.libfm
       pkgs.libfm-extra
       pkgs.lxmenu-data
       pkgs.menu-cache
       pkgs.openbox # default window manager
-      pkgs.qt5.qtsvg # provides QT5 plugins for svg icons
+      qt5.qtsvg # provides QT5 plugins for svg icons
     ];
 
     corePackages = [
diff --git a/nixpkgs/pkgs/desktops/lxqt/pcmanfm-qt/default.nix b/nixpkgs/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
index 7465eefc3c32..599dd67828cb 100644
--- a/nixpkgs/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
+++ b/nixpkgs/pkgs/desktops/lxqt/pcmanfm-qt/default.nix
@@ -42,6 +42,10 @@ mkDerivation rec {
 
   passthru.updateScript = lxqtUpdateScript { inherit pname version src; };
 
+  postPatch = ''
+    substituteInPlace config/pcmanfm-qt/lxqt/settings.conf.in --replace @LXQT_SHARE_DIR@ /run/current-system/sw/share/lxqt
+  '';
+
   meta = with lib; {
     description = "File manager and desktop icon manager (Qt port of PCManFM and libfm)";
     homepage = "https://github.com/lxqt/pcmanfm-qt";
diff --git a/nixpkgs/pkgs/desktops/mate/atril/default.nix b/nixpkgs/pkgs/desktops/mate/atril/default.nix
index e71ca81142a7..12c89ee1b111 100644
--- a/nixpkgs/pkgs/desktops/mate/atril/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/atril/default.nix
@@ -1,4 +1,25 @@
-{ stdenv, fetchurl, pkgconfig, gettext, gtk3, glib, libxml2, libsecret, poppler, itstool, hicolor-icon-theme, texlive, mate, wrapGAppsHook }:
+{ stdenv
+, fetchurl
+, pkgconfig
+, gettext
+, gtk3
+, glib
+, libxml2
+, libsecret
+, poppler
+, itstool
+, hicolor-icon-theme
+, texlive
+, mate
+, wrapGAppsHook
+, enableEpub ? true, webkitgtk
+, enableDjvu ? true, djvulibre
+, enablePostScript ? true, libspectre
+, enableXps ? true, libgxps
+, enableImages ? false
+}:
+
+with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "atril";
@@ -26,7 +47,19 @@ stdenv.mkDerivation rec {
     mate.mate-desktop
     hicolor-icon-theme
     texlive.bin.core  # for synctex, used by the pdf back-end
-  ];
+  ]
+  ++ optionals enableDjvu [ djvulibre ]
+  ++ optionals enableEpub [ webkitgtk ]
+  ++ optionals enablePostScript [ libspectre ]
+  ++ optionals enableXps [ libgxps ]
+  ;
+
+  configureFlags = [ ]
+    ++ optionals (enableDjvu) [ "--enable-djvu" ]
+    ++ optionals (enableEpub) [ "--enable-epub" ]
+    ++ optionals (enablePostScript) [ "--enable-ps" ]
+    ++ optionals (enableXps) [ "--enable-xps" ]
+    ++ optionals (enableImages) [ "--enable-pixbuf" ];
 
   NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
 
diff --git a/nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix b/nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix
index 89191dc302b1..d71d72ce1886 100644
--- a/nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/caja-extensions/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "caja-extensions";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "175v5c05nrdliya23rbqma49alldq67dklmvpq18nq71sfry4pp6";
+    sha256 = "13jkynanqj8snys0if8lv6yx1y0jrm778s2152n4x65hsghc6cw5";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/engrampa/default.nix b/nixpkgs/pkgs/desktops/mate/engrampa/default.nix
index 1f1be3e28577..fce62f9f0160 100644
--- a/nixpkgs/pkgs/desktops/mate/engrampa/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/engrampa/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, pkgconfig, gettext, itstool, libxml2, gtk3, mate, hicolor-icon-theme, wrapGAppsHook }:
+{ stdenv, fetchurl, pkgconfig, gettext, itstool, libxml2, gtk3, file, mate, hicolor-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "engrampa";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "13cak3qgrzqj74x9jq1sf155793v2bqqz4mk4i04g9f9xn3g85fl";
+    sha256 = "0akjnz85qkpiqgj1ccn41rzbfid4l3r3nsm4s9s779ilzd7f097y";
   };
 
   nativeBuildInputs = [
@@ -19,12 +19,16 @@ stdenv.mkDerivation rec {
   buildInputs = [
     libxml2
     gtk3
+    file #libmagic
     mate.caja
     hicolor-icon-theme
     mate.mate-desktop
   ];
 
-  configureFlags = [ "--with-cajadir=$$out/lib/caja/extensions-2.0" ];
+  configureFlags = [
+    "--with-cajadir=$$out/lib/caja/extensions-2.0"
+    "--enable-magic"
+  ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/desktops/mate/eom/default.nix b/nixpkgs/pkgs/desktops/mate/eom/default.nix
index d7c546040895..2824fba2dfeb 100644
--- a/nixpkgs/pkgs/desktops/mate/eom/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/eom/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "eom";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0zzximp2534bky0vac219alafblw6m0lis0gncq92017s6c1mb77";
+    sha256 = "0dralsc0dvs0l38cysdhx6kiaiqlb8qi6g9xz2cm6mjqyq3d3f9f";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix b/nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix
index 4c70c2528066..f0e178ea9e8e 100644
--- a/nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/libmatekbd/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmatekbd";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1sq7gwr9q3hq4q0vx32qqa68qcqf5by9mqyxnq6lwgaq8ydq16ab";
+    sha256 = "17mcxfkvl14p04id3n5kbhpjwjq00c8wmbyciyy2hm7kwdln6zx8";
   };
 
   nativeBuildInputs = [ pkgconfig gettext ];
diff --git a/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix b/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix
index 6bc9fe54ec3a..8b1e68e8b35c 100644
--- a/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/libmatemixer/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmatemixer";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "08vkdp2kzy27xwscwp2jj5nz0yblrka2482l6cx3wl4dnk0rpznm";
+    sha256 = "1n6rq7k66zvfd6sb7h92xihh021w9hysfa4yd1mzjcbb7c62ybqx";
   };
 
   nativeBuildInputs = [ pkgconfig gettext ];
diff --git a/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix b/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix
index 4774339db8b0..3bfdfea06f17 100644
--- a/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/libmateweather/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmateweather";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "094mnlczxq9crjj8z7dzs1zmwscdkbp54l3qjaf4a4bhd8lihv8d";
+    sha256 = "02d7c59pami1fzxg73mp6risa9hvsdpgs68f62wkg09nrppzsk4v";
   };
 
   nativeBuildInputs = [ pkgconfig gettext ];
diff --git a/nixpkgs/pkgs/desktops/mate/marco/default.nix b/nixpkgs/pkgs/desktops/mate/marco/default.nix
index 3d36f51ab145..69beaa3cee7a 100644
--- a/nixpkgs/pkgs/desktops/mate/marco/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/marco/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "marco";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0hcbyv8czymhwz5q9rwig7kkhlhik6y080bls736f3wsbqnnirc2";
+    sha256 = "109b41pjrc1b4slw6sx1lakdhrc46x829vczzk4bz3j15kcszg54";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix b/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix
index 7f77a5668070..2a97bc851da0 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-applets/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-applets";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0nm3amb3v458mxv1mbz9y8f4230gldmydmkkm7vqxsrxbccynkxq";
+    sha256 = "0h70i4x3bk017pgv4zn280682wm58vwdjm7kni91ni8rmblnnvyp";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-backgrounds/default.nix b/nixpkgs/pkgs/desktops/mate/mate-backgrounds/default.nix
index e1f19ca8d695..8e2aa6933ffe 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-backgrounds/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-backgrounds/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-backgrounds";
-  version = "1.24.1";
+  version = "1.24.2";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0b9yx68p9l867bqsl9z2g4wrs8p396ls673jgaliys5snmk8n8dn";
+    sha256 = "1ixb2vlm3dr52ibp4ggrbkf38m3q6i5lxjg4ix82gxbb6h6a3gp5";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-calc/default.nix b/nixpkgs/pkgs/desktops/mate/mate-calc/default.nix
index 2de156d02de8..48c9f37c03af 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-calc/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-calc/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-calc";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0f7hc1gg41kcwcyvsqqg79qylrp0qqymris8qizk2x3cfvvg7261";
+    sha256 = "0imdimq5d5rjq8mkjcrsd683a2bn9acmhc0lmvyw71y0040inbaw";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-common/default.nix b/nixpkgs/pkgs/desktops/mate/mate-common/default.nix
index f8896ae0c2c7..a491798147fb 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-common/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-common/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-common";
-  version = "1.24.1";
+  version = "1.24.2";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1dgp6k2l6dz7x2lnqk4y5xfkld376726hda3mrc777f821kk99nr";
+    sha256 = "0srb2ly5pjq1g0cs8m39nbfv33dvsc2j4g2gw081xis3awzh3lki";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix b/nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix
index c8119a923d15..4c26961ba156 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-control-center/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-control-center";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "192plsh83m2qz7jgakns2yvhqbj53v7i54iwb0z26i2awy0j9rcd";
+    sha256 = "08bai47fsmbxlw2lhig9n6c8sxr24ixkd1spq3j0635yzcqighb0";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix b/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix
index 6a5f8b13bf1f..2e298d14168e 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-desktop/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-desktop";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0l4bbj6nz315s5ndq5sw1jcgi3s1whk59bj12c4mbpsvmlb33adg";
+    sha256 = "1nd1dn8mm1z6x4r68a25q4vzys1a6fmbzc94ss1z1n1872pczs6i";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-media/default.nix b/nixpkgs/pkgs/desktops/mate/mate-media/default.nix
index c02201c855f9..458e4638ada8 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-media/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-media/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-media";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1d5dx79yfqghjaxrdrdh053nfnvkbx8p3ma7j87s7rsvy5irs963";
+    sha256 = "118i4w2i2g3hfgbfn3hjzjkfq8vjj6049r7my3vna9js23b7ab92";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-menus/default.nix b/nixpkgs/pkgs/desktops/mate/mate-menus/default.nix
index 7d418c90b4ae..73f8be24cc38 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-menus/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-menus/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-menus";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1vv4j38h7mrbfrsj99k25z6y7b5dg30fzd2qnhk7pl8ca8s1jhrd";
+    sha256 = "17zc9fn14jykhn30z8iwlw0qwk32ivj6gxgww3xrqvqk0da5yaas";
   };
 
   nativeBuildInputs = [ pkgconfig gettext gobject-introspection ];
diff --git a/nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix b/nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix
index 32d0cc9ed8e4..0a797f4defa0 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-notification-daemon/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-notification-daemon";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0y362b51lb8nq2cw254qc39x8hpficn5rxddzp0fxqxakrh7vcif";
+    sha256 = "1ybzr8mni5pgrspf8hqnisd0r0hwdlgk7n5mzsh7xisbkgivpw2b";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix b/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix
index dce656751898..4b021bcc0991 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-panel/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-panel";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1hrh10pqk8mva1ix2nmsp3cbbn81cgqy0b9lqhsl0b5p0s40i7in";
+    sha256 = "0xblqrhfazd01h0jdmx4hvavkb7f9anbd4rjsk5r6wxhp027l64l";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix b/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix
index 30f1c48fa5f6..c6872cc5beb9 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-power-manager/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-power-manager";
-  version = "1.24.1";
+  version = "1.24.2";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "13ar40x5hs4d4h81q8qsy0agbx5wnarry3mbhws54zydcxd7j20a";
+    sha256 = "0fni41p3kraxwjnx9l5mdspng0zib1gfdxwlaiyq31mh4g79yjyj";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix b/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix
index 1c80b19aa5bb..f05d8a736d5d 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-screensaver/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-screensaver";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0gpw6x9d0b77f14vjl7ghq5dya1mwcnvmgigg00manfwlksr5zby";
+    sha256 = "0imb1z2yvz1h95dzq396c569kkxys9mb2dyc6qxxxcnc5w02a2dw";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix b/nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix
index c7b7d5ba1919..babdbcb4da0e 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-sensors-applet/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-sensors-applet";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1izjgzj3xb93arim8w891x8as85phdmlhdnr2yc8ixg7xpblsq2s";
+    sha256 = "1nb4fy3mcymv7pmnc0czpxgp1sqvs533jwnqv1b5cqby415ljb16";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix b/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix
index 09973e04bc0a..b8b61324574b 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-session-manager/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-session-manager";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "01scj5d1xlri9b2id8gm9kfni9nzhdjdf7rag7fvcxwqp7baz3h3";
+    sha256 = "1zwq8symyp3ijs28pyrknsdi9byf4dpp9wp93ndwdhi0vaip5i51";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix b/nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix
index 30db743c2763..e02323858625 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-settings-daemon/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-settings-daemon";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1hc5a36wqpjv9i2lgrn1h12s8y910xab3phx5vzbzq47kj6m3gw9";
+    sha256 = "0n1ywr3ir5p536s7azdbw2mh40ylqlpx3a74mjrivbms1rpjxyab";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix b/nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix
index 480cf8de1de0..38c6a041e433 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-system-monitor/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mate-system-monitor";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1cb36lrsn4fhsryl2kl4yq0qhp1p4r7k21w3fc2ywjga8fdxx6y5";
+    sha256 = "1i2r4lw6xsk972yp15g5hm8p8xx9pp6jmcvvzbdq80xyx3x898qz";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix b/nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix
index fc030152bcd9..c187aba89775 100644
--- a/nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/mate-terminal/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, pkgconfig, gettext, glib, itstool, libxml2, mate, dconf, gtk3, vte, wrapGAppsHook }:
+{ stdenv, fetchurl, pkgconfig, gettext, glib, itstool, libxml2, mate, dconf, gtk3, vte, pcre2, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "mate-terminal";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0nc23nmbkya2fgf7j65z85dcibwi5akkr8nscqrvk039ckirhk97";
+    sha256 = "0qmyhxmarwkxad8k1m9q1iwx70zhfp6zc2mh74nv26nj4gr3h3am";
   };
 
   buildInputs = [
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
      vte
      gtk3
      dconf
+     pcre2
   ];
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/mate/pluma/default.nix b/nixpkgs/pkgs/desktops/mate/pluma/default.nix
index 5a12ffc37820..94a87f5d5f07 100644
--- a/nixpkgs/pkgs/desktops/mate/pluma/default.nix
+++ b/nixpkgs/pkgs/desktops/mate/pluma/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pluma";
-  version = "1.24.0";
+  version = "1.24.1";
 
   src = fetchurl {
     url = "https://pub.mate-desktop.org/releases/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1vmndhlhy3qkf3xs5kkv0xhbv5ar25pqz0kp17hc4qhgjzycfr0r";
+    sha256 = "1sgc5f480icr2ans6gd3akvcax58mr4jp3zjk3xn7bx1mw9i299f";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix
index cf1fe14c13dd..18ee7bdd844a 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/appcenter/default.nix
@@ -1,4 +1,5 @@
 { stdenv
+, nix-update-script
 , appstream
 , appstream-glib
 , dbus
@@ -23,22 +24,24 @@
 , pkgconfig
 , python3
 , vala
+, polkit
+, libhandy
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "appcenter";
-  version = "3.4.0";
+  version = "3.4.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "04q2gp9yyqsg4jd53rivcmikw52psxijrzfy2vxzjsx8fccd48ra";
+    sha256 = "sha256-8r0DlmG8xlCQ1uFHZQjXG2ls4VBrsRzrVY8Ey3/OYAU=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
@@ -58,17 +61,19 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     appstream
-    elementary-icon-theme
     elementary-gtk-theme
+    elementary-icon-theme
     flatpak
     glib
     granite
     gtk3
     json-glib
     libgee
+    libhandy
     libsoup
     libxml2
     packagekit
+    polkit
   ];
 
   mesonFlags = [
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
index f2f6faedc5ad..0695b6e4006e 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -26,11 +27,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1csxsr2c8qvl97xz9ahwn91z095nzgr0i1mbcb1spljll2sr9lkj";
+    sha256 = "sha256-ctKUtaBU0qvDYquGCPL7tiTwQ7IcqvT7SXRjxETWXbM=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
index 2f29d803b250..e8f0e37620e5 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -25,7 +26,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-calendar";
-  version = "5.0.5";
+  version = "5.1.0";
 
   repoName = "calendar";
 
@@ -33,11 +34,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1dn2h7riajrn619z69626qnr8w6lp62dnm3d4pjkr0g5l4dp1cdb";
+    sha256 = "sha256-b72BmChl/Ql0ljLRcPMNbJcOV4cVqz5D2j+5BGUi4Go=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-camera/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
index 712f2bec8d5e..e7bb60a062d8 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-camera/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -31,11 +32,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "13jg224h2436swd6kdkfs22icg0ja9lshvxwg5bqnb5fshspkjba";
+    sha256 = "sha256-asl5NdSuLItXebxvqGlSEjwWhdButmka12YQAYkQT44=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix
index 086e0cf7a57b..3454ff086c9a 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-code/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -35,11 +36,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "158zrzyyy507rxcbsb5am9768zbakpwrl61ixab57zla7z51l0g0";
+    sha256 = "sha256-4AEayj+K/lOW6jEYmvmdan1kTqqqLL1YzwcU7/3PH5U=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-dock/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
index ee9df9955f40..7cc34f8c82c9 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-dock/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, fetchpatch
 , vala
 , atk
 , cairo
@@ -27,7 +28,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-dock";
-  version = "unstable-2020-02-28";
+  version = "unstable-2020-06-11";
 
   outputs = [ "out" "dev" ];
 
@@ -36,10 +37,18 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "elementary";
     repo = repoName;
-    rev = "ac87d9063dc9c81d90f42f3002ad9c5b49460a82";
-    sha256 = "0lhjzd370fza488dav8n155ss486wqv6y7ldkahwg0c3zvlsvha7";
+    rev = "0a389ee58939d8c91c340df4e5340fc4b23d0b80";
+    sha256 = "01vinik73s0vmk56samgf49zr2bl4wjv44x15sz2cmh744llckja";
   };
 
+  patches = [
+    # Fix double includedir path in plank.pc
+    (fetchpatch {
+      url = "https://github.com/elementary/dock/commit/3bc368e2c4fafcd5b8baca2711c773b0e2441c7c.patch";
+      sha256 = "0gg35phi1cg7ixljc388i0h70w323r1gqzjhanccnsbjpqsgvs3k";
+    })
+  ];
+
   nativeBuildInputs = [
     gettext
     meson
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
index e54841275f6f..29b897012e7d 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-feedback/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -26,11 +27,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0rc4ifs4hd4cj0v028bzc45v64pwx21xylwrhb20jpw61ainfi8s";
+    sha256 = "sha256-GkVnowqGXwnEgplT34Po/BKzC2F/IQE2kIw0SLSLhGU=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch
new file mode 100644
index 000000000000..9bcedac3f035
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/0001-filechooser-module-hardcode-gsettings-for-nixos.patch
@@ -0,0 +1,35 @@
+From f51974c9736c3e28755245d15729578214652343 Mon Sep 17 00:00:00 2001
+Message-Id: <f51974c9736c3e28755245d15729578214652343.1599178185.git-series.worldofpeace@protonmail.ch>
+From: worldofpeace <worldofpeace@protonmail.ch>
+Date: Thu,  3 Sep 2020 20:08:15 -0400
+Subject: [PATCH] filechooser-module: hardcode gsettings for nixos
+
+---
+ filechooser-module/FileChooserDialog.vala | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/filechooser-module/FileChooserDialog.vala b/filechooser-module/FileChooserDialog.vala
+index a70fe10..08fde2c 100644
+--- a/filechooser-module/FileChooserDialog.vala
++++ b/filechooser-module/FileChooserDialog.vala
+@@ -60,10 +60,14 @@ public class CustomFileChooserDialog : Object {
+         /* If not local only during creation, strange bug occurs on fresh installs */
+         chooser_dialog.local_only = true;
+ 
+-        var files_preferences = new Settings ("io.elementary.files.preferences");
++        SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@ELEMENTARY_FILES_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true);
++        SettingsSchema preferences_schema = sss.lookup ("io.elementary.files.preferences", false);
++        SettingsSchema chooser_schema = sss.lookup ("io.elementary.files.file-chooser", false);
++
++        var files_preferences = new Settings.full (preferences_schema, null, null);
+         is_single_click = files_preferences.get_boolean ("single-click");
+ 
+-        var chooser_settings = new Settings ("io.elementary.files.file-chooser");
++        var chooser_settings = new Settings.full (chooser_schema, null, null);
+ 
+         assign_container_box ();
+         remove_gtk_widgets ();
+
+base-commit: 57cb89b64fd2d5c08f4aaf23e8c74bfaa5d0384f
+-- 
+git-series 0.9.1
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix
index 346971d4fb41..9433edc9ce5f 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -16,7 +17,7 @@
 , libnotify
 , libunity
 , pango
-, plank
+, elementary-dock
 , bamf
 , sqlite
 , libdbusmenu-gtk3
@@ -30,7 +31,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-files";
-  version = "4.4.3";
+  version = "4.5.0";
 
   repoName = "files";
 
@@ -40,11 +41,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "14i5icgpsy78mr7w6cav38p7shfk784b6nlxz9y72rbcxky036yc";
+    sha256 = "sha256-wtQW1poX791DAlSFdVV9psnCfBDeVXI2fDZ2GcvvNn8=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
@@ -63,6 +64,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     bamf
+    elementary-dock
     elementary-icon-theme
     granite
     gtk3
@@ -74,13 +76,12 @@ stdenv.mkDerivation rec {
     libnotify
     libunity
     pango
-    plank
     sqlite
     zeitgeist
   ];
 
   patches = [
-    ./hardcode-gsettings.patch
+    ./0001-filechooser-module-hardcode-gsettings-for-nixos.patch
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch
deleted file mode 100644
index 3191f4e3cb2b..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-files/hardcode-gsettings.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/filechooser-module/FileChooserDialog.vala b/filechooser-module/FileChooserDialog.vala
-index cb7c3c49..8b1899d1 100644
---- a/filechooser-module/FileChooserDialog.vala
-+++ b/filechooser-module/FileChooserDialog.vala
-@@ -57,10 +57,15 @@ public class CustomFileChooserDialog : Object {
-         chooser_dialog.deletable = false;
-         chooser_dialog.local_only = false;
- 
--        var settings = new Settings ("io.elementary.files.preferences");
-+        SettingsSchemaSource sss = new SettingsSchemaSource.from_directory ("@ELEMENTARY_FILES_GSETTINGS_PATH@", SettingsSchemaSource.get_default (), true);
-+        SettingsSchema preferences_schema = sss.lookup ("io.elementary.files.preferences", false);
-+        SettingsSchema chooser_schema = sss.lookup ("io.elementary.files.file-chooser", false);
-+
-+        var settings = new Settings.full (preferences_schema, null, null);
-+
-         is_single_click = settings.get_boolean ("single-click");
- 
--        var chooser_settings = new Settings ("io.elementary.files.file-chooser");
-+        var chooser_settings = new Settings.full (chooser_schema, null, null);
- 
-         assign_container_box ();
-         remove_gtk_widgets ();
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix
index 85739a6ec2ec..0e34b29f1de0 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-music/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -37,11 +38,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0cb0mwsp5w2bmjq8ap9mi0jvaqr9fgq00gfrkj0mzb5x5c26hrnw";
+    sha256 = "sha256-3GZoBCu9rF+BnNk9APBzKWO1JYg1XYWwrEvwcjWvYDE=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
index 5c6d34a55a51..d3d931e44fcc 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -41,11 +42,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "09jjic165rmprc2cszsgj2m3j3f5p8v9pxx5mj66a0gj3ar3hfbd";
+    sha256 = "sha256-bTk4shryAWWMrKX3mza6xQ05qpBPf80Ey7fmYgKLUiY=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
index 078d496bf0db..da67ac0aed84 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -25,11 +26,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "179ib2ldvhdx3hks5lqyx2cvlkk3j1qccvlfwh2yd2bl79zpk3ma";
+    sha256 = "sha256-qo55fzp0ieYF5I5uxnCQY066mege06InHL3B3ahYMZ0=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
index f9f81c37a4b9..ddd5c0a0eac3 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , fetchpatch
 , pantheon
 , pkgconfig
@@ -30,11 +31,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "119iwmzbpkj4nmxinqfsh73lx23g8gbl6ha6wc4mc4fq9hpnc9c2";
+    sha256 = "sha256-giVmL0zYEVYJ40ZBQ9dDb4hOx4HaYRt7tUTOu37lMYU=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
index c3da10d1cf39..f51c6c0090d3 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -19,7 +20,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-videos";
-  version = "2.7.1";
+  version = "2.7.2";
 
   repoName = "videos";
 
@@ -27,11 +28,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "00arim4i9bv9mbms1irkp44grkgrfnmqzraswyn1xiz9nvl1bsb9";
+    sha256 = "sha256-MSyhCXsziQ0MD4lGp9X/9odidjT/L+2Aihwd1qCGvB0=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/sideload/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/sideload/default.nix
index 379eede979f6..2fc5d560da0f 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/sideload/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/sideload/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , desktop-file-utils
+, nix-update-script
 , elementary-gtk-theme
 , elementary-icon-theme
 , fetchFromGitHub
@@ -27,11 +28,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0mlc3nm2navzxm8k1rwpbw4w6mv30lmhqybm8jqxd4v8x7my73vq";
+    sha256 = "sha256-eI/j6+lok9axRHV5DCsFY1fDCV+X5zBR7X8rK6odjFY=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
index 6348f7c93a30..9937edc22b5b 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , substituteAll
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -21,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0g8lhdwv9g16kjn7yxnl6x4rscjl2206ljfnghpxc4b5lwhqxxnw";
+    sha256 = "sha256-3PaOIadlEdYvfNZJaoAQVDKdSTfUdn+snCa8tHmDFD0=";
   };
 
   patches = [
@@ -32,7 +33,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
index 770121736568..86db11a3dc31 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , substituteAll
 , meson
@@ -22,11 +23,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1zs2qmglh85ami07dnlq3lfwl5ikc4abvz94a35k6fhfs703lay2";
+    sha256 = "sha256-wis6wNEOOjPLUCT9vRRhMxbKHR2Y2nZArKogSF/FQv8=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
index 9cd92d0a5ed8..b5a8cc766516 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -19,11 +20,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0wzm390g8di4ks3w637a0wl4j7g89j321xkz5msd9058gksvaaxs";
+    sha256 = "sha256-uiu19XyogNR0LX/2IIZM6B1JKAfqDMOHniQ29EAa9XM=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
index a353dee27e58..ab1e0b5280a8 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -20,11 +21,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0ksxx45mm0cvnb5jphyxsf843rn2rgb0yxv9j0ydh2xp4qgvvyva";
+    sha256 = "sha256-avu9Hya3C9g8kGl3D9bLwuZBkNPdwyvLspuBWgvpXU8=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
index 60762b13e019..95a454b36f43 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -22,11 +23,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1kkd75kp24zq84wfmc00brqxximfsi4sqyx8a7rbl7zaspf182xa";
+    sha256 = "sha256-qgsU3NXqH7ryUah7rEnUrsbecV4AsOo4QfgTcWc5bc4=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
index c1017e2dbddd..490c8c57a67c 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -19,11 +20,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0ijzm91gycx8iaf3sd8i07b5899gbryxd6klzjh122d952wsyfcs";
+    sha256 = "sha256-mjmvuSipCRGg/HSa1n1eLyVU1gERNT2ciqgz/0KqX0Y=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch
new file mode 100644
index 000000000000..42900c380627
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/0001-Remove-Install-Unlisted-Engines-function.patch
@@ -0,0 +1,700 @@
+From 4fd6da39ab33a6eef46ee2c64eb4f5595c7fe633 Mon Sep 17 00:00:00 2001
+Message-Id: <4fd6da39ab33a6eef46ee2c64eb4f5595c7fe633.1599180249.git-series.worldofpeace@protonmail.ch>
+From: worldofpeace <worldofpeace@protonmail.ch>
+Date: Thu,  3 Sep 2020 20:43:25 -0400
+Subject: [PATCH] Remove Install Unlisted Engines function
+
+https://github.com/elementary/switchboard-plug-keyboard/issues/324
+---
+ src/Dialogs/InstallEngineDialog.vala           | 140 +------------------
+ src/Dialogs/ProgressDialog.vala                |  82 +----------
+ src/InputMethod/Installer/InstallList.vala     |  73 +---------
+ src/InputMethod/Installer/UbuntuInstaller.vala | 142 +------------------
+ src/InputMethod/Installer/aptd-client.vala     |  93 +------------
+ src/Widgets/InputMethod/AddEnginesPopover.vala |  12 +--
+ src/Widgets/InputMethod/LanguagesRow.vala      |  43 +-----
+ src/meson.build                                |   6 +-
+ 8 files changed, 591 deletions(-)
+ delete mode 100644 src/Dialogs/InstallEngineDialog.vala
+ delete mode 100644 src/Dialogs/ProgressDialog.vala
+ delete mode 100644 src/InputMethod/Installer/InstallList.vala
+ delete mode 100644 src/InputMethod/Installer/UbuntuInstaller.vala
+ delete mode 100644 src/InputMethod/Installer/aptd-client.vala
+ delete mode 100644 src/Widgets/InputMethod/LanguagesRow.vala
+
+diff --git a/src/Dialogs/InstallEngineDialog.vala b/src/Dialogs/InstallEngineDialog.vala
+deleted file mode 100644
+index ffba3a8..0000000
+--- a/src/Dialogs/InstallEngineDialog.vala
++++ /dev/null
+@@ -1,140 +0,0 @@
+-/*
+-* Copyright 2019-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it and/or modify
+-* it under the terms of the GNU General Public License as published by
+-* the Free Software Foundation, either version 3 of the License, or
+-* (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be useful,
+-* but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-* GNU General Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License
+-* along with this program.  If not, see <https://www.gnu.org/licenses/>.
+-*/
+-
+-public class Pantheon.Keyboard.InputMethodPage.InstallEngineDialog : Granite.MessageDialog {
+-    private InstallList? engines_filter;
+-
+-    public InstallEngineDialog (Gtk.Window parent) {
+-        Object (
+-            primary_text: _("Choose an engine to install"),
+-            secondary_text: _("Select an engine from the list to install and use."),
+-            image_icon: new ThemedIcon ("extension"),
+-            transient_for: parent,
+-            buttons: Gtk.ButtonsType.CANCEL
+-        );
+-    }
+-
+-    construct {
+-        var languages_list = new Gtk.ListBox () {
+-            activate_on_single_click = true,
+-            expand = true,
+-            selection_mode = Gtk.SelectionMode.NONE
+-        };
+-
+-        foreach (var language in InstallList.get_all ()) {
+-            var lang = new LanguagesRow (language);
+-            languages_list.add (lang);
+-        }
+-
+-        var back_button = new Gtk.Button.with_label (_("Languages")) {
+-            halign = Gtk.Align.START,
+-            margin = 6
+-        };
+-        back_button.get_style_context ().add_class (Granite.STYLE_CLASS_BACK_BUTTON);
+-
+-        var language_title = new Gtk.Label ("");
+-
+-        var language_header = new Gtk.Box (Gtk.Orientation.HORIZONTAL, 6);
+-        language_header.pack_start (back_button);
+-        language_header.set_center_widget (language_title);
+-
+-        var listbox = new Gtk.ListBox () {
+-            expand = true
+-        };
+-        listbox.set_filter_func (filter_function);
+-        listbox.set_sort_func (sort_function);
+-
+-        foreach (var language in InstallList.get_all ()) {
+-            foreach (var engine in language.get_components ()) {
+-                listbox.add (new EnginesRow (engine));
+-            }
+-        }
+-
+-        var scrolled = new Gtk.ScrolledWindow (null, null);
+-        scrolled.add (listbox);
+-
+-        var engine_list_grid = new Gtk.Grid () {
+-            orientation = Gtk.Orientation.VERTICAL
+-        };
+-        engine_list_grid.get_style_context ().add_class (Gtk.STYLE_CLASS_VIEW);
+-        engine_list_grid.add (language_header);
+-        engine_list_grid.add (new Gtk.Separator (Gtk.Orientation.HORIZONTAL));
+-        engine_list_grid.add (scrolled);
+-
+-        var stack = new Gtk.Stack () {
+-            height_request = 200,
+-            width_request = 300,
+-            transition_type = Gtk.StackTransitionType.SLIDE_LEFT_RIGHT
+-        };
+-        stack.add (languages_list);
+-        stack.add (engine_list_grid);
+-
+-        var frame = new Gtk.Frame (null);
+-        frame.add (stack);
+-
+-        custom_bin.add (frame);
+-        custom_bin.show_all ();
+-
+-        var install_button = add_button (_("Install"), Gtk.ResponseType.OK);
+-        install_button.sensitive = false;
+-        install_button.get_style_context ().add_class (Gtk.STYLE_CLASS_SUGGESTED_ACTION);
+-
+-        languages_list.row_activated.connect ((row) => {
+-            stack.visible_child = engine_list_grid;
+-            language_title.label = ((LanguagesRow) row).language.get_name ();
+-            engines_filter = ((LanguagesRow) row).language;
+-            listbox.invalidate_filter ();
+-            var adjustment = scrolled.get_vadjustment ();
+-            adjustment.set_value (adjustment.lower);
+-        });
+-
+-        back_button.clicked.connect (() => {
+-            stack.visible_child = languages_list;
+-            install_button.sensitive = false;
+-        });
+-
+-        listbox.selected_rows_changed.connect (() => {
+-            foreach (var engines_row in listbox.get_children ()) {
+-                ((EnginesRow) engines_row).selected = false;
+-            }
+-
+-            ((EnginesRow) listbox.get_selected_row ()).selected = true;
+-            install_button.sensitive = true;
+-        });
+-
+-        response.connect ((response_id) => {
+-            if (response_id == Gtk.ResponseType.OK) {
+-                string engine_to_install = ((EnginesRow) listbox.get_selected_row ()).engine_name;
+-                UbuntuInstaller.get_default ().install (engine_to_install);
+-            }
+-        });
+-    }
+-
+-    [CCode (instance_pos = -1)]
+-    private bool filter_function (Gtk.ListBoxRow row) {
+-        if (InstallList.get_language_from_engine_name (((EnginesRow) row).engine_name) == engines_filter) {
+-            return true;
+-        }
+-
+-        return false;
+-    }
+-
+-    [CCode (instance_pos = -1)]
+-    private int sort_function (Gtk.ListBoxRow row1, Gtk.ListBoxRow row2) {
+-        return ((EnginesRow) row1).engine_name.collate (((EnginesRow) row1).engine_name);
+-    }
+-}
+diff --git a/src/Dialogs/ProgressDialog.vala b/src/Dialogs/ProgressDialog.vala
+deleted file mode 100644
+index f110aca..0000000
+--- a/src/Dialogs/ProgressDialog.vala
++++ /dev/null
+@@ -1,82 +0,0 @@
+-/*
+-* Copyright 2011-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it
+-* and/or modify it under the terms of the GNU Lesser General Public License as
+-* published by the Free Software Foundation, either version 3 of the
+-* License, or (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be
+-* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+-* Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License along
+-* with this program. If not, see http://www.gnu.org/licenses/.
+-*/
+-
+-public class Pantheon.Keyboard.InputMethodPage.ProgressDialog : Gtk.Dialog {
+-    public int progress {
+-        set {
+-            if (value >= 100) {
+-                destroy ();
+-            }
+-
+-            progress_bar.fraction = value / 100.0;
+-        }
+-    }
+-
+-    private Gtk.ProgressBar progress_bar;
+-
+-    construct {
+-        var image = new Gtk.Image.from_icon_name ("preferences-desktop-locale", Gtk.IconSize.DIALOG) {
+-            valign = Gtk.Align.START
+-        };
+-
+-        var primary_label = new Gtk.Label (null) {
+-            max_width_chars = 50,
+-            wrap = true,
+-            xalign = 0
+-        };
+-        primary_label.get_style_context ().add_class (Granite.STYLE_CLASS_PRIMARY_LABEL);
+-
+-        unowned UbuntuInstaller installer = UbuntuInstaller.get_default ();
+-        switch (installer.transaction_mode) {
+-            case UbuntuInstaller.TransactionMode.INSTALL:
+-                primary_label.label = _("Installing %s").printf (installer.engine_to_address);
+-                break;
+-            case UbuntuInstaller.TransactionMode.REMOVE:
+-                primary_label.label = _("Removing %s").printf (installer.engine_to_address);
+-                break;
+-        }
+-
+-        progress_bar = new Gtk.ProgressBar () {
+-            hexpand = true,
+-            valign = Gtk.Align.START,
+-            width_request = 300
+-        };
+-
+-        var cancel_button = (Gtk.Button) add_button (_("Cancel"), 0);
+-
+-        installer.bind_property ("install-cancellable", cancel_button, "sensitive");
+-
+-        var grid = new Gtk.Grid () {
+-            column_spacing = 12,
+-            margin = 6,
+-            row_spacing = 6
+-        };
+-        grid.attach (image, 0, 0, 1, 2);
+-        grid.attach (primary_label, 1, 0);
+-        grid.attach (progress_bar, 1, 1);
+-        grid.show_all ();
+-
+-        border_width = 6;
+-        deletable = false;
+-        get_content_area ().add (grid);
+-
+-        cancel_button.clicked.connect (() => {
+-            installer.cancel_install ();
+-            destroy ();
+-        });
+-    }
+-}
+diff --git a/src/InputMethod/Installer/InstallList.vala b/src/InputMethod/Installer/InstallList.vala
+deleted file mode 100644
+index 275c302..0000000
+--- a/src/InputMethod/Installer/InstallList.vala
++++ /dev/null
+@@ -1,73 +0,0 @@
+-/*
+-* 2019-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it and/or modify
+-* it under the terms of the GNU General Public License as published by
+-* the Free Software Foundation, either version 3 of the License, or
+-* (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be useful,
+-* but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-* GNU General Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License
+-* along with this program.  If not, see <https://www.gnu.org/licenses/>.
+-*/
+-
+-public enum Pantheon.Keyboard.InputMethodPage.InstallList {
+-    JA,
+-    KO,
+-    ZH;
+-
+-    public string get_name () {
+-        switch (this) {
+-            case JA:
+-                return _("Japanese");
+-            case KO:
+-                return _("Korean");
+-            case ZH:
+-                return _("Chinese");
+-            default:
+-                assert_not_reached ();
+-        }
+-    }
+-
+-    public string[] get_components () {
+-        switch (this) {
+-            case JA:
+-                return { "ibus-anthy", "ibus-mozc", "ibus-skk" };
+-            case KO:
+-                return { "ibus-hangul" };
+-            case ZH:
+-                return { "ibus-cangjie", "ibus-chewing", "ibus-pinyin" };
+-            default:
+-                assert_not_reached ();
+-        }
+-    }
+-
+-    public static InstallList get_language_from_engine_name (string engine_name) {
+-        switch (engine_name) {
+-            case "ibus-anthy":
+-                return JA;
+-            case "ibus-mozc":
+-                return JA;
+-            case "ibus-skk":
+-                return JA;
+-            case "ibus-hangul":
+-                return KO;
+-            case "ibus-cangjie":
+-                return ZH;
+-            case "ibus-chewing":
+-                return ZH;
+-            case "ibus-pinyin":
+-                return ZH;
+-            default:
+-                assert_not_reached ();
+-        }
+-    }
+-
+-    public static InstallList[] get_all () {
+-        return { JA, KO, ZH };
+-    }
+-}
+diff --git a/src/InputMethod/Installer/UbuntuInstaller.vala b/src/InputMethod/Installer/UbuntuInstaller.vala
+deleted file mode 100644
+index b65aa1f..0000000
+--- a/src/InputMethod/Installer/UbuntuInstaller.vala
++++ /dev/null
+@@ -1,142 +0,0 @@
+-/*
+-* Copyright 2011-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it
+-* and/or modify it under the terms of the GNU Lesser General Public License as
+-* published by the Free Software Foundation, either version 3 of the
+-* License, or (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be
+-* useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+-* Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License along
+-* with this program. If not, see http://www.gnu.org/licenses/.
+-*/
+-
+-public class Pantheon.Keyboard.InputMethodPage.UbuntuInstaller : Object {
+-    private AptdProxy aptd;
+-    private AptdTransactionProxy proxy;
+-
+-    public bool install_cancellable { get; private set; }
+-    public TransactionMode transaction_mode { get; private set; }
+-    public string engine_to_address { get; private set; }
+-
+-    public signal void install_finished (string langcode);
+-    public signal void install_failed ();
+-    public signal void remove_finished (string langcode);
+-    public signal void progress_changed (int progress);
+-
+-    public enum TransactionMode {
+-        INSTALL,
+-        REMOVE,
+-        INSTALL_MISSING,
+-    }
+-
+-    Gee.HashMap<string, string> transactions;
+-
+-    private static GLib.Once<UbuntuInstaller> instance;
+-    public static unowned UbuntuInstaller get_default () {
+-        return instance.once (() => {
+-            return new UbuntuInstaller ();
+-        });
+-    }
+-
+-    private UbuntuInstaller () {}
+-
+-    construct {
+-        transactions = new Gee.HashMap<string, string> ();
+-        aptd = new AptdProxy ();
+-
+-        try {
+-            aptd.connect_to_aptd ();
+-        } catch (Error e) {
+-            warning ("Could not connect to APT daemon");
+-        }
+-    }
+-
+-    public void install (string engine_name) {
+-        transaction_mode = TransactionMode.INSTALL;
+-        engine_to_address = engine_name;
+-        string[] packages = {};
+-        packages += engine_to_address;
+-
+-        foreach (var packet in packages) {
+-            message ("Packet: %s", packet);
+-        }
+-
+-        aptd.install_packages.begin (packages, (obj, res) => {
+-            try {
+-                var transaction_id = aptd.install_packages.end (res);
+-                transactions.@set (transaction_id, "i-" + engine_name);
+-                run_transaction (transaction_id);
+-            } catch (Error e) {
+-                warning ("Could not queue downloads: %s", e.message);
+-            }
+-        });
+-    }
+-
+-    public void cancel_install () {
+-        if (install_cancellable) {
+-            warning ("cancel_install");
+-            try {
+-                proxy.cancel ();
+-            } catch (Error e) {
+-                warning ("cannot cancel installation:%s", e.message);
+-            }
+-        }
+-    }
+-
+-    private void run_transaction (string transaction_id) {
+-        proxy = new AptdTransactionProxy ();
+-        proxy.finished.connect (() => {
+-            on_apt_finshed (transaction_id, true);
+-        });
+-
+-        proxy.property_changed.connect ((prop, val) => {
+-            if (prop == "Progress") {
+-                progress_changed ((int) val.get_int32 ());
+-            }
+-
+-            if (prop == "Cancellable") {
+-                install_cancellable = val.get_boolean ();
+-            }
+-        });
+-
+-        try {
+-            proxy.connect_to_aptd (transaction_id);
+-            proxy.simulate ();
+-
+-            proxy.run ();
+-        } catch (Error e) {
+-            on_apt_finshed (transaction_id, false);
+-            warning ("Could no run transaction: %s", e.message);
+-        }
+-    }
+-
+-    private void on_apt_finshed (string id, bool success) {
+-        if (!success) {
+-            install_failed ();
+-            transactions.unset (id);
+-            return;
+-        }
+-
+-        if (!transactions.has_key (id)) { //transaction already removed
+-            return;
+-        }
+-
+-        var action = transactions.get (id);
+-        var lang = action[2:action.length];
+-
+-        message ("ID %s -> %s", id, success ? "success" : "failed");
+-
+-        if (action[0:1] == "i") { // install
+-            install_finished (lang);
+-        } else {
+-            remove_finished (lang);
+-        }
+-
+-        transactions.unset (id);
+-    }
+-}
+diff --git a/src/InputMethod/Installer/aptd-client.vala b/src/InputMethod/Installer/aptd-client.vala
+deleted file mode 100644
+index ee5c3f5..0000000
+--- a/src/InputMethod/Installer/aptd-client.vala
++++ /dev/null
+@@ -1,93 +0,0 @@
+-/*
+- * Copyright (C) 2012 Canonical Ltd
+- *
+- * This program is free software: you can redistribute it and/or modify
+- * it under the terms of the GNU General Public License version 3 as
+- * published by the Free Software Foundation.
+- *
+- * This program is distributed in the hope that it will be useful,
+- * but WITHOUT ANY WARRANTY; without even the implied warranty of
+- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+- * GNU General Public License for more details.
+- *
+- * You should have received a copy of the GNU General Public License
+- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
+- *
+- * Authored by Pawel Stolowski <pawel.stolowski@canonical.com>
+- */
+-
+-namespace Pantheon.Keyboard.InputMethodPage {
+-    private const string APTD_DBUS_NAME = "org.debian.apt";
+-    private const string APTD_DBUS_PATH = "/org/debian/apt";
+-
+-    /**
+-    * Expose a subset of org.debian.apt interfaces -- only what's needed by applications lens.
+-    */
+-    [DBus (name = "org.debian.apt")]
+-    public interface AptdService : GLib.Object {
+-        public abstract async string install_packages (string[] packages) throws GLib.Error;
+-        public abstract async string remove_packages (string[] packages) throws GLib.Error;
+-        public abstract async void quit () throws GLib.Error;
+-    }
+-
+-    [DBus (name = "org.debian.apt.transaction")]
+-    public interface AptdTransactionService : GLib.Object {
+-        public abstract void run () throws GLib.Error;
+-        public abstract void simulate () throws GLib.Error;
+-        public abstract void cancel () throws GLib.Error;
+-        public signal void finished (string exit_state);
+-        public signal void property_changed (string property, Variant val);
+-    }
+-
+-    public class AptdProxy : GLib.Object {
+-        private AptdService _aptd_service;
+-
+-        public void connect_to_aptd () throws GLib.Error {
+-            _aptd_service = Bus.get_proxy_sync (BusType.SYSTEM, APTD_DBUS_NAME, APTD_DBUS_PATH);
+-        }
+-
+-        public async string install_packages (string[] packages) throws GLib.Error {
+-            string res = yield _aptd_service.install_packages (packages);
+-            return res;
+-        }
+-
+-        public async string remove_packages (string[] packages) throws GLib.Error {
+-            string res = yield _aptd_service.remove_packages (packages);
+-            return res;
+-        }
+-
+-        public async void quit () throws GLib.Error {
+-            yield _aptd_service.quit ();
+-        }
+-    }
+-
+-    public class AptdTransactionProxy : GLib.Object {
+-        public signal void finished (string transaction_id);
+-        public signal void property_changed (string property, Variant variant);
+-
+-        private AptdTransactionService _aptd_service;
+-
+-        public void connect_to_aptd (string transaction_id) throws GLib.Error {
+-            _aptd_service = Bus.get_proxy_sync (BusType.SYSTEM, APTD_DBUS_NAME, transaction_id);
+-            _aptd_service.finished.connect ((exit_state) => {
+-                debug ("aptd transaction finished: %s\n", exit_state);
+-                finished (transaction_id);
+-            });
+-            _aptd_service.property_changed.connect ((prop, variant) => {
+-                property_changed (prop, variant);
+-            });
+-        }
+-
+-        public void simulate () throws GLib.Error {
+-            _aptd_service.simulate ();
+-        }
+-
+-        public void run () throws GLib.Error {
+-            _aptd_service.run ();
+-        }
+-
+-        public void cancel () throws GLib.Error {
+-            _aptd_service.cancel ();
+-        }
+-    }
+-}
+diff --git a/src/Widgets/InputMethod/AddEnginesPopover.vala b/src/Widgets/InputMethod/AddEnginesPopover.vala
+index 46e005d..6b56c6b 100644
+--- a/src/Widgets/InputMethod/AddEnginesPopover.vala
++++ b/src/Widgets/InputMethod/AddEnginesPopover.vala
+@@ -49,8 +49,6 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
+         };
+         scrolled.add (listbox);
+ 
+-        var install_button = new Gtk.Button.with_label (_("Install Unlisted Engines…"));
+-
+         var cancel_button = new Gtk.Button.with_label (_("Cancel"));
+ 
+         var add_button = new Gtk.Button.with_label (_("Add Engine"));
+@@ -61,10 +59,8 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
+             margin = 12,
+             spacing = 6
+         };
+-        button_box.add (install_button);
+         button_box.add (cancel_button);
+         button_box.add (add_button);
+-        button_box.set_child_secondary (install_button, true);
+ 
+         var grid = new Gtk.Grid ();
+         grid.attach (search_entry, 0, 0);
+@@ -92,14 +88,6 @@ public class Pantheon.Keyboard.InputMethodPage.AddEnginesPopover : Gtk.Popover {
+             listbox.invalidate_filter ();
+         });
+ 
+-        install_button.clicked.connect (() => {
+-            popdown ();
+-
+-            var install_dialog = new InstallEngineDialog ((Gtk.Window) get_toplevel ());
+-            install_dialog.run ();
+-            install_dialog.destroy ();
+-        });
+-
+         cancel_button.clicked.connect (() => {
+             popdown ();
+         });
+diff --git a/src/Widgets/InputMethod/LanguagesRow.vala b/src/Widgets/InputMethod/LanguagesRow.vala
+deleted file mode 100644
+index dc064ae..0000000
+--- a/src/Widgets/InputMethod/LanguagesRow.vala
++++ /dev/null
+@@ -1,43 +0,0 @@
+-/*
+-* 2019-2020 elementary, Inc. (https://elementary.io)
+-*
+-* This program is free software: you can redistribute it and/or modify
+-* it under the terms of the GNU General Public License as published by
+-* the Free Software Foundation, either version 3 of the License, or
+-* (at your option) any later version.
+-*
+-* This program is distributed in the hope that it will be useful,
+-* but WITHOUT ANY WARRANTY; without even the implied warranty of
+-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+-* GNU General Public License for more details.
+-*
+-* You should have received a copy of the GNU General Public License
+-* along with this program.  If not, see <https://www.gnu.org/licenses/>.
+-*/
+-
+-public class Pantheon.Keyboard.InputMethodPage.LanguagesRow : Gtk.ListBoxRow {
+-    public InstallList language { get; construct; }
+-
+-    public LanguagesRow (InstallList language) {
+-        Object (language: language);
+-    }
+-
+-    construct {
+-        var label = new Gtk.Label (language.get_name ()) {
+-            halign = Gtk.Align.START,
+-            hexpand = true
+-        };
+-
+-        var caret = new Gtk.Image.from_icon_name ("pan-end-symbolic", Gtk.IconSize.MENU);
+-
+-        var grid = new Gtk.Grid () {
+-            margin = 3,
+-            margin_start = 6,
+-            margin_end = 6
+-        };
+-        grid.add (label);
+-        grid.add (caret);
+-
+-        add (grid);
+-    }
+-}
+diff --git a/src/meson.build b/src/meson.build
+index 28f07c1..a515419 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -16,7 +16,6 @@ plug_files = files(
+     'Widgets/Shortcuts/CustomTree.vala',
+     'Widgets/Layout/Display.vala',
+     'Widgets/Layout/AddLayoutPopover.vala',
+-    'Widgets/InputMethod/LanguagesRow.vala',
+     'Widgets/InputMethod/EnginesRow.vala',
+     'Widgets/InputMethod/AddEnginesPopover.vala',
+     'Views/Shortcuts.vala',
+@@ -36,11 +35,6 @@ plug_files = files(
+     'Layout/AdvancedSettingsGrid.vala',
+     'InputMethod/Utils.vala',
+     'InputMethod/AddEnginesList.vala',
+-    'InputMethod/Installer/UbuntuInstaller.vala',
+-    'InputMethod/Installer/InstallList.vala',
+-    'InputMethod/Installer/aptd-client.vala',
+-    'Dialogs/ProgressDialog.vala',
+-    'Dialogs/InstallEngineDialog.vala',
+     'Dialogs/ConflictDialog.vala',
+ )
+ 
+
+base-commit: 9d9eddeb7da8450a309496c25066f4f78a9d4070
+-- 
+git-series 0.9.1
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
index 10468cdc553b..d1180f37ed06 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , fetchpatch
 , substituteAll
@@ -14,22 +15,27 @@
 , libgnomekbd
 , libxklavier
 , xorg
+, ibus
 , switchboard
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-keyboard";
-  version = "2.3.6";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "08zpw7ygrqmwwznvxkf4xbrgwbjkbwc95sw1ikikg3143ql9qclp";
+    sha256 = "sha256-iuv5NZ7v+rXyFsKB/PvGa/7hm9MIV8E6JnTzEGROlhM=";
   };
 
+  patches = [
+    ./0001-Remove-Install-Unlisted-Engines-function.patch
+  ];
+
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
@@ -45,6 +51,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     granite
     gtk3
+    ibus
     libgee
     libgnomekbd
     libxklavier
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
index c2b973f76160..78a74c59e9ed 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -21,11 +22,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0jfykvdpjlymnks8mhlv9957ybq7srqqq23isjvh0jvc2r3cd7sq";
+    sha256 = "sha256-WJ/GRhZsSwC31HEIjHHWBy9/Skqbwor0tNVTedue3kk=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
index 4a4874e3a326..2ce9aad5666e 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -17,17 +18,17 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-network";
-  version = "2.3.1";
+  version = "2.3.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1k7925qrgjvh1x8ijhkh3p0z4ypgmx3lg21ygr8qhlp7xr3zm8d5";
+    sha256 = "sha256-PYgewxBblhOfOJQSeRaq8xD7qZ3083EvgUjpi92FqyI=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
index 30df180eeb76..37f69a3cc141 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , fetchpatch
 , pantheon
 , meson
@@ -21,11 +22,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "02amm2j6blpfc16p5rm64p8shnppzsg49hz4v196mli5xr1r441h";
+    sha256 = "sha256-MBCSQ+4l0mpS2OTDRJ7+91qo0SWm5nJNYO7SZaSoVQk=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
index 902703bc75e5..16e8c7e66c17 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , fetchpatch
 , pantheon
 , meson
@@ -26,11 +27,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "03h8ii8zz59fpp4fwlvyx3m3550096fn7a6w612b1rbj3dqhlmh9";
+    sha256 = "sha256-CVYKcRty5bBEMNyoY51JAJQy6uh+U+7IvS6V/1GMCA4=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
index a70fee63094f..d877d43d1378 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala, glib
+{ stdenv, fetchFromGitHub, nix-update-script, pantheon, meson, ninja, pkgconfig, vala, glib
 , libgee, granite, gexiv2, elementary-settings-daemon, gtk3, gnome-desktop
-, gala, wingpanel, plank, switchboard, gettext, bamf, fetchpatch }:
+, gala, wingpanel, elementary-dock, switchboard, gettext, bamf, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-pantheon-shell";
@@ -10,11 +10,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1nnsv745inbdqk3xnbcaqmj87vr3kzh5hazbh8v3ib33cpi7wy88";
+    sha256 = "sha256-CHl+4mVjrDg2gusrWOCfI++DZMWKLdvHxG3ZWMjZ2to=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
@@ -29,17 +29,17 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     bamf
+    elementary-dock
     elementary-settings-daemon
+    gala
     gexiv2
     glib
     gnome-desktop
     granite
     gtk3
     libgee
-    gala
-    wingpanel
-    plank
     switchboard
+    wingpanel
   ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
index 7357a790b360..0549a797dbcb 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , substituteAll
 , meson
@@ -25,11 +26,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0zbqv3bnwxapp9b442fjg9fizxmndva8vby5qicx0yy7l68in1xk";
+    sha256 = "sha256-swcbkaHHe9BZxMWvjdRutvYfXXrSCUJWuld1btfYeH0=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
index 8280ba483b86..2e8f05d8416d 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , fetchpatch
 , pantheon
 , meson
@@ -21,11 +22,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1jxpq4rvkrii85imnipbw44zjinq1sc0cq39lssprzfd4g5hjw5n";
+    sha256 = "sha256-tnAJyyPN/Xy1pmlgBpgO2Eb5CeHrRltjQTHmuTPBt8s=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
index e2732f3bd039..fd2a24db3e8a 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , python3
@@ -24,11 +25,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0177lsly8qpqsfas3qc263as77h2k35avhw9708h1v8bllb3l2sb";
+    sha256 = "sha256-Sws6FqUL7QAROInDrcqYAp6j1TCC4aGV0/hi5Kmm5wQ=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
index 55ed654f75fa..47c4928c08b5 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , fetchpatch
 , pantheon
 , meson
@@ -20,11 +21,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1awkz16nydlgi8a2dd6agfnd3qwl2qsvv6wnn8bhaz1kbv1v9kpw";
+    sha256 = "sha256-/M60w14zfAUXspabvTUWlOPRrHvKtCYUio82b034k6s=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
index 671c7d4544af..cab47c94cb99 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -16,17 +17,17 @@
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-sound";
-  version = "2.2.4";
+  version = "2.2.5";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1kwd3cj6kk5dnmhcrmf13adqrhhjv2j6j2i78cpqbi9yv2h7sv9y";
+    sha256 = "sha256-ITgxLZSB4zhSaFKX7Vbf89DGI8ibIcGEQTtLjcGN2tA=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard/default.nix b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard/default.nix
index 4c8e30bdbe8c..1327c4739eb7 100644
--- a/nixpkgs/pkgs/desktops/pantheon/apps/switchboard/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/apps/switchboard/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -23,11 +24,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "12xir2gssr0x21sgm5m620bvd6b6y8dcm26cj4s1wsn8qb59jx9p";
+    sha256 = "sha256-N3WZysLIah40kcyIyhryZpm2FxCmlvp0EB1krZ/IsYs=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
index 9deee9c9abe1..05f1f10a5a7e 100644
--- a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -16,11 +17,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0aqq0d21mqgrfiyhpfa8k51wxw2pia0qlsgp0sli79v7nwn3ykbq";
+    sha256 = "sha256-eE0/LLdnpxOpBvdpioGKV/DOQ5lIuQt9dPnhGkQDGCs=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
index febec3144a96..a12101c04d00 100644
--- a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-icon-theme/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , python3
@@ -20,11 +21,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0rs68cb39r9vq85pr8h3mgmyjpj8bkhkxr5cz4cn5947kf776wg9";
+    sha256 = "sha256-6XFzjpuHpGIZ+azkPuFcSF7p66sDonwLwjvlNBZDRmc=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
index f95e68153058..e18cac7d4ab6 100644
--- a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-sound-theme/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -16,7 +17,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1dc583lq61c361arjl3s44d2k72c46bqvcqv1c3s69f2ndsnxjdz";
+    sha256 = "sha256-v8ludbPCJaMHCxuzjZchTJwpGiF6UJlVMIMFg+lAhbU=";
   };
 
   nativeBuildInputs = [
@@ -26,7 +27,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
index 82f45c95d611..975497cb9e4b 100644
--- a/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/artwork/elementary-wallpapers/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -16,7 +17,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0c63nds2ylqgcp39s13mfwhipgyw8cirn0bhybp291l5g86ii6s3";
+    sha256 = "sha256-Q5sYDXqFhiTu8nABmyND3L8bIXd1BJ3GZQ9TL3SzwzA=";
   };
 
   nativeBuildInputs = [
@@ -26,7 +27,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/default.nix b/nixpkgs/pkgs/desktops/pantheon/default.nix
index edcda8877544..8bae6f8fefe5 100644
--- a/nixpkgs/pkgs/desktops/pantheon/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/default.nix
@@ -23,10 +23,6 @@ lib.makeScope pkgs.newScope (self: with self; {
     wingpanel-indicator-session wingpanel-indicator-sound
   ];
 
-  nixpkgs-github-update = callPackage ./nixpkgs_github_update { };
-
-  updateScript = callPackage ./update.nix { };
-
   maintainers = with pkgs.stdenv.lib.maintainers; [ worldofpeace ];
 
   mutter = pkgs.gnome3.mutter334;
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
index 3215c001a5e7..a8cf30e9732e 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -23,11 +24,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "00z31alwn2skhksrhp2jk75f6jlaipzk91hclx7na4gbcyrw7ahw";
+    sha256 = "sha256-HKrDs2frEWVPpwyGNP+NikrjyplSXJj1hFMLy6kK4wM=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
@@ -83,8 +84,10 @@ stdenv.mkDerivation rec {
     cp -avr ${./launchers} $out/etc/skel/.config/plank/dock1/launchers
 
     # Whitelist wingpanel indicators to be used in the greeter
-    # TODO: is this needed or installed upstream?
-    install -D ${./io.elementary.greeter.whitelist} $out/etc/wingpanel.d/io.elementary.greeter.whitelist
+    # hhttps://github.com/elementary/greeter/blob/fc19752f147c62767cd2097c0c0c0fcce41e5873/debian/io.elementary.greeter.whitelist
+    # wingpanel 2.3.2 renamed this to .allowed to .forbidden
+    # https://github.com/elementary/wingpanel/pull/326
+    install -D ${./io.elementary.greeter.allowed} $out/etc/wingpanel.d/io.elementary.greeter.allowed
   '';
 
   postFixup = ''
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.whitelist b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.allowed
index 0cff31f4f777..0cff31f4f777 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.whitelist
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-default-settings/io.elementary.greeter.allowed
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
index da18ab26e083..de93b0d36834 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , linkFarm
 , substituteAll
 , elementary-greeter
@@ -36,11 +37,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1zrsvbd386f7r3jbvjf8j08v1n5cpzkbjjaj2lxvjn8b81xgwy8j";
+    sha256 = "sha256-Enn+ekALWbk7FVJJuea/rNiwEZDIyb3kyMcZNNraOv8=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
 
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
index 2580907a5923..f435104b3205 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-gsettings-schemas/default.nix
@@ -8,7 +8,7 @@
 , epiphany
 , elementary-settings-daemon
 , gtk3
-, plank
+, elementary-dock
 , gsettings-desktop-schemas
 , extraGSettingsOverrides ? ""
 , extraGSettingsOverridePackages ? []
@@ -17,13 +17,13 @@
 let
 
   gsettingsOverridePackages = [
+    elementary-dock
     elementary-settings-daemon
     epiphany
     gala
-    mutter
     gsettings-desktop-schemas
     gtk3
-    plank
+    mutter
   ] ++ extraGSettingsOverridePackages;
 
 in
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
index 44766c7202b9..31ed7f3672a9 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-onboarding/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , fetchpatch
 , pkgconfig
@@ -28,11 +29,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1cq9smvrnzc12gp6rzcdxc3x0sbgcch246r5m2c7m2561mfg1d5l";
+    sha256 = "sha256-tLTwXA2miHqYqCUbIiBjb2nQB+uN/WzuE4F9m3fVCbM=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
index e8ea57b8bb9a..7610551fb9c1 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-print-shim/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -18,11 +19,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "1w3cfap7j42x14mqpfqdm46hk5xc0v5kv8r6wxcnknr3sfxi8qlp";
+    sha256 = "sha256-l2IUu9Mj22lZ5yajPcsGrJcJDakNu4srCV0Qea5ybPA=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
index 089c9188d6cd..dba3c8895087 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-session-settings/default.nix
@@ -1,7 +1,9 @@
 { stdenv
 , fetchFromGitHub
-, fetchpatch
+, nix-update-script
 , substituteAll
+, desktop-file-utils
+, pkg-config
 , writeScript
 , pantheon
 , gnome-keyring
@@ -16,7 +18,6 @@
 , writeText
 , meson
 , ninja
-, pkg-config
 }:
 
 let
@@ -69,53 +70,43 @@ let
 in
 
 stdenv.mkDerivation rec {
-  pname = "elementary-session-settings";
-  version = "unstable-2019-11-12";
+  pname = "elementary-session-settings-unstable";
+  version = "2020-06-11";
 
   repoName = "session-settings";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = repoName;
-    rev = "f9d5afed16ce447cf6ae3c2d1c1db5eece84daca";
-    sha256 = "0n1m41aapr58rb1ffvfkjq6c6w3f0ynjzzhja50s4di98p4m7y0q";
+    rev = "130c9ae221913032ed18bcf6d21e3dcdba3c4209";
+    sha256 = "0bzg9vbq0ssnxgcb2vxpx6x9zv8ngkm9r3ki5q83m9al9919n0pr";
   };
 
-  patches = [
-    # Map Pantheon required components by g-s-d versions
-    # https://github.com/elementary/session-settings/pull/23
-    (fetchpatch {
-      url = "https://github.com/elementary/session-settings/commit/39918f4ec64fa9ed5affa109d6a692b97ae4ff01.patch";
-      sha256 = "0v2kqcsibymnslnnw4v67yh098znsrhrcycgxkw8vymvwlinc502";
-    })
-  ];
-
   nativeBuildInputs = [
+    desktop-file-utils
     meson
     ninja
     pkg-config
   ];
 
   buildInputs = [
-    elementary-settings-daemon
+    pantheon.elementary-settings-daemon
+    gnome-keyring
+    onboard
+    orca
   ];
 
   mesonFlags = [
-    "-Ddefaults-list=false"
-    "-Dpatched-gsd-autostarts=false"
-    "-Dpatched-ubuntu-autostarts=false"
+    "-Dmimeapps-list=false"
     "-Dfallback-session=GNOME"
+    "-Ddetect-program-prefixes=true"
+    "--sysconfdir=${placeholder "out"}/etc"
   ];
 
   postInstall = ''
     mkdir -p $out/share/applications
     cp -av ${./pantheon-mimeapps.list} $out/share/applications/pantheon-mimeapps.list
 
-    mkdir -p $out/etc/xdg/autostart
-    for package in ${gnome-keyring} ${orca} ${onboard} ${at-spi2-core}; do
-      cp -av $package/etc/xdg/autostart/* $out/etc/xdg/autostart
-    done
-
     cp "${dockitemAutostart}" $out/etc/xdg/autostart/default-elementary-dockitems.desktop
 
     mkdir -p $out/libexec
@@ -127,21 +118,16 @@ stdenv.mkDerivation rec {
     substituteInPlace $out/share/xsessions/pantheon.desktop \
       --replace "gnome-session --session=pantheon" "$out/libexec/pantheon" \
       --replace "wingpanel" "${wingpanel}/bin/wingpanel"
-
-    for f in $out/etc/xdg/autostart/*; do mv "$f" "''${f%.desktop}-pantheon.desktop"; done
-
-    for autostart in $(grep -rl "OnlyShowIn=GNOME;" $out/etc/xdg/autostart)
-    do
-      echo "Patching OnlyShowIn to Pantheon in: $autostart"
-      sed -i "s,OnlyShowIn=GNOME;,OnlyShowIn=Pantheon;," $autostart
-    done
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
-    providedSessions = [ "pantheon" ];
+
+    providedSessions = [
+      "pantheon"
+    ];
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
index 9578c4e025fb..4e6afb9ff89d 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -25,11 +26,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0v8fx58fn309glxi2zxxlnddw8lkmjr025f22ml3p483zkvbcm2c";
+    sha256 = "sha256-TFS29vwDkTtoFcIVAbKskyLemqW9fxE7fQkM61DpDm0=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix
index 624a1bde61d8..349b4cd63b5d 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/gala/default.nix
@@ -1,5 +1,7 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
+, fetchpatch
 , pantheon
 , pkgconfig
 , meson
@@ -18,7 +20,7 @@
 , gnome-desktop
 , mutter
 , clutter
-, plank
+, elementary-dock
 , elementary-icon-theme
 , elementary-settings-daemon
 , wrapGAppsHook
@@ -32,11 +34,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1qd8ynn04rzkki68w4x3ryq6fhlbi6mk359rx86a8ni084fsprh4";
+    sha256 = "sha256-BOarHUEgWqQM6jmVMauJi0JnsM+jE45MnPNnAqz1qOE=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
@@ -56,19 +58,26 @@ stdenv.mkDerivation rec {
   buildInputs = [
     bamf
     clutter
+    elementary-dock
     elementary-icon-theme
-    gnome-desktop
     elementary-settings-daemon
+    gnome-desktop
     granite
     gtk3
     libcanberra
     libcanberra-gtk3
     libgee
     mutter
-    plank
   ];
 
   patches = [
+    # https://github.com/elementary/gala/pull/869
+    # build failure in vala 0.48.7
+    # https://github.com/elementary/gala/pull/869#issuecomment-657147695
+    (fetchpatch {
+      url = "https://github.com/elementary/gala/commit/85d290c75eaa147b704ad34e6c67498071707ee8.patch";
+      sha256 = "19jkvmxidf453qfrxkvi35igxzfz2cm8srwkabvyn9wyd1yhiw0l";
+    })
     ./plugins-dir.patch
     ./use-new-notifications-default.patch
   ];
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
index deb6a958a22b..3e58a2a101a5 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , substituteAll
 , meson
@@ -14,7 +15,7 @@
 , appstream
 , gnome-menus
 , json-glib
-, plank
+, elementary-dock
 , bamf
 , switchboard
 , libunity
@@ -35,11 +36,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0wsfvyp0z6c612nl348dr6sar0qghhfcgkzcx3108x8v743v7rim";
+    sha256 = "sha256-NeazBzkbdQTC6OzPxxyED4OstMkNkUGtCIaZD67fTnM=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
@@ -56,6 +57,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     bamf
+    elementary-dock
     gnome-menus
     granite
     gtk3
@@ -64,7 +66,6 @@ stdenv.mkDerivation rec {
     libhandy
     libsoup
     libunity
-    plank
     switchboard
     wingpanel
     zeitgeist
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
index 979d6af8f0cc..51c87d5f34b2 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -23,11 +24,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0ylbpai05b300h07b94xcmw9xi7qx13l1q38zlg2n95d3c5264dp";
+    sha256 = "sha256-txEjChutJCse/WjgQEfo+MSeeGWdpHUABGCsAqK6i3o=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
index 7de8d3c91dba..09583877fb13 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -19,17 +20,17 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-datetime";
-  version = "2.2.4";
+  version = "2.2.5";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0wrvya9438ncb2rvcz99aa497v95b4yhdw1479iacnb9f94jacns";
+    sha256 = "sha256-rZzZIh4bwZfwQFDbfPDKQtfLMJQ2IdykH1yiV6ckqnw=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
index 120cf8260a9f..712b25d22f45 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -23,11 +24,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0q32qc6jh5w0i1ixkl59pys8r3hxmbig8854q7sxi07vlk9g3i7y";
+    sha256 = "sha256-/sTx0qT7gNj1waQg9OKqHY6MtL+p0NljiIAXKA3DYmA=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
index 652648b6884c..7f1ee7fbfbac 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -21,11 +22,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1ja789m4d3akm3i9fl3kazfcny376xl4apv445mrwkwlvcfyylf1";
+    sha256 = "sha256-wVHvHduUT55rIWRfRWg3Z3jL3FdzUJfiqFONRmpCR8k=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
index 9ec593afe4a8..05d0b0a0beb1 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -14,17 +15,17 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-nightlight";
-  version = "2.0.3";
+  version = "2.0.4";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1ihg5iz69jgcbyzdkcc2fqmr5l34h2d1jjsx7y86ag1jvhljb82r";
+    sha256 = "sha256-0f03XO74ezzS/Uy0mXT4raoazETL/SOVh58sAo9bEIA=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
index d8d5f44b82bc..99ba52212a29 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , fetchpatch
@@ -21,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0qp13iaf2956ss4d6w6vwnzdvb7izqmyh6xrdii7j8gxxwjd4lxm";
+    sha256 = "sha256-tVPSJO/9IXlibLkb6Cv+8azdvuXbcNOI1qYk4VQc4WI=";
   };
 
   patches = [
@@ -34,7 +35,7 @@ stdenv.mkDerivation rec {
   ];
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
index 907b31d930a6..3ad4ab4d662d 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -17,17 +18,17 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-power";
-  version = "2.1.5";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "19zhgzyivf3y416r5xaajx81h87zdhvrrcsagli00gp1f2169q5m";
+    sha256 = "sha256-wjYZXFnzvPSukzh1BNvyaFxKpYm+kNNFm5AsthLXGVE=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
index 14c87036ec8c..4812e2bc91df 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
@@ -1,5 +1,7 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
+, fetchpatch
 , pantheon
 , pkgconfig
 , meson
@@ -20,11 +22,24 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "02inp8xdxfx8qxjdf2nazw46ahp1gv3skd922ma6kgx5w4wxh5l8";
+    sha256 = "sha256-iBbYOeGlv2lUFSK1qcd+4UJlCP/KCtdkx6i73jq6Ngo=";
   };
 
+  patches = [
+    # build failure in vala 0.48.7
+    # https://github.com/elementary/gala/pull/869#issuecomment-657147695
+    (fetchpatch {
+      url = "https://github.com/elementary/wingpanel-indicator-session/commit/ead6971c708eed8b844bd9acd7eed2ab8a97e803.patch";
+      sha256 = "1v7w7zdia82d38ycr5zhckaxgf7gr15hsv05cv5khlki8frryn2x";
+    })
+    (fetchpatch {
+      url = "https://github.com/elementary/wingpanel-indicator-session/commit/85347e676054635ac878fc542bd057398ca70d3e.patch";
+      sha256 = "1vw4zx0qbhxmfzqhdcmwdp4fxvij7n3f5lwcplf5v3k9qsr3wm0n";
+    })
+  ];
+
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
index cd387a9fca48..02f7984eee98 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -18,17 +19,17 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-sound";
-  version = "2.1.5";
+  version = "2.1.6";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0nla8qgn5gb1g2gn7c47m9zw42sarjd0030x3h5kckapsbaxknhp";
+    sha256 = "sha256-WGkxLsbdJ7Z7kolymYpggsVy4cN4CicNKdfCbunklSI=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
index ff9925c53574..08eda9aa3685 100644
--- a/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , wrapGAppsHook
 , pkgconfig
@@ -20,17 +21,17 @@
 
 stdenv.mkDerivation rec {
   pname = "wingpanel";
-  version = "2.3.1";
+  version = "2.3.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0yvn1crylrdc9gq6gc7v4ynb5ii4n0c3bnswfq72p8cs3vvvvv24";
+    sha256 = "sha256-mXi600gufUK81Uks9p4+al0tCI7H9KpizZGyoomp42s=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/granite/default.nix b/nixpkgs/pkgs/desktops/pantheon/granite/default.nix
index 823613778f9d..8b5ad8d5e6b5 100644
--- a/nixpkgs/pkgs/desktops/pantheon/granite/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/granite/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , python3
 , meson
 , ninja
@@ -17,7 +18,7 @@
 
 stdenv.mkDerivation rec {
   pname = "granite";
-  version = "5.4.0";
+  version = "5.5.0";
 
   outputs = [ "out" "dev" ];
 
@@ -25,11 +26,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "0acicv3f9gksb352v88lwap8ailjsxdrfknl2xql7blasbjzl2q0";
+    sha256 = "sha256-ytbjuo9RnYyJ9+LqtWE117dGlNErLl+nmTM22xGGDo8=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/.envrc b/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/.envrc
deleted file mode 100644
index 1d953f4bd735..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/.envrc
+++ /dev/null
@@ -1 +0,0 @@
-use nix
diff --git a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/.formatter.exs b/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/.formatter.exs
deleted file mode 100644
index d2cda26eddc9..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/.formatter.exs
+++ /dev/null
@@ -1,4 +0,0 @@
-# Used by "mix format"
-[
-  inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"]
-]
diff --git a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/.gitignore b/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/.gitignore
deleted file mode 100644
index 877c95f1f63b..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/.gitignore
+++ /dev/null
@@ -1,32 +0,0 @@
-# The directory Mix will write compiled artifacts to.
-_build/
-
-# If you run "mix test --cover", coverage assets end up here.
-cover/
-
-# The directory Mix downloads your dependencies sources to.
-deps/
-
-# Where third-party dependencies like ExDoc output generated docs.
-doc/
-
-# Ignore .fetch files in case you like to edit your project deps locally.
-.fetch
-
-# If the VM crashes, it generates a dump, let's ignore it too.
-erl_crash.dump
-
-# Also ignore archive artifacts (built via "mix archive.build").
-*.ez
-
-# Ignore package tarball (built via "mix hex.build").
-nixpkgs_github_update-*.tar
-
-# Ignore elixir_ls
-.elixir_ls
-
-# mix escript.build result
-nixpkgs_github_update
-
-# lockfile. only because this is nixpkgs.
-mix.lock
diff --git a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/default.nix b/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/default.nix
deleted file mode 100644
index 834291222cf0..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ lib
-, beamPackages
-, makeWrapper
-, common-updater-scripts
-}:
-
-let
-
-  poison_4 = beamPackages.buildMix {
-    name = "poison";
-    version = "4.0.1";
-
-    src = beamPackages.fetchHex {
-      pkg = "poison";
-      version = "4.0.1";
-      sha256 = "098gdz7xzfmnjzgnnv80nl4h3zl8l9czqqd132vlnfabxbz3d25s";
-    };
-  };
-
-
-in
-
-beamPackages.buildMix {
-  name = "nixpkgs-github-update";
-  version = "0.1.0";
-
-  src = lib.cleanSource ./.;
-
-  nativeBuildInputs = [
-    makeWrapper
-  ];
-
-  beamDeps = with beamPackages; [ erlang poison_4 ];
-
-  buildPhase = ''
-    export HEX_OFFLINE=1
-    export HEX_HOME=`pwd`
-    export MIX_ENV=prod
-    export MIX_NO_DEPS=1
-
-    mix escript.build --no-deps-check
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp nixpkgs_github_update $out/bin
-  '';
-
-  postFixup = ''
-    wrapProgram $out/bin/nixpkgs_github_update \
-      --prefix PATH : "${lib.makeBinPath [ common-updater-scripts ]}"
-  '';
-}
diff --git a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/cli.ex b/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/cli.ex
deleted file mode 100644
index e735c4285169..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/cli.ex
+++ /dev/null
@@ -1,71 +0,0 @@
-defmodule NixpkgsGitHubUpdate.CLI do
-  @moduledoc """
-  Run updates on Nix Expressions that use fetchFromGitHub.
-
-  Arguments the script accepts:
-  --attribute <attribute_path>
-
-  Example usage:
-  ```
-  ./nixpkgs_github_update --attribute "notes-up"
-  ```
-  """
-  alias NixpkgsGitHubUpdate.{Nix, GitHubLatestVersion}
-
-  def help do
-    IO.puts("""
-    Run updates on Nix Expressions that use fetchFromGitHub.
-
-    Arguments the script accepts:
-    --attribute <attribute_path>
-
-    Example usage:
-    ./nixpkgs_github_update --attribute "notes-up"
-    """)
-  end
-
-  def main([]) do
-    help()
-  end
-
-  def main(args) do
-    opts = parse_args(args)
-
-    attribute = opts[:attribute]
-
-    case Nix.attribute_exists?(attribute) do
-      true -> update(attribute)
-      _ -> exit("Requested attribute doesn't exist.")
-    end
-  end
-
-  def parse_args(args) do
-    {options, _, _} =
-      args
-      |> OptionParser.parse(strict: [attribute: :string])
-
-    options
-  end
-
-  def update(attribute) do
-    version =
-      Nix.get_owner_repo(attribute)
-      |> GitHubLatestVersion.fetch()
-      |> decode_response()
-      |> construct_version()
-
-    Nix.update_source_version(attribute, version)
-  end
-
-  def decode_response({:ok, response}), do: response
-
-  def decode_response({:error, error}) do
-    IO.puts("Error getting latest release from GitHub: #{error["message"]}")
-    System.halt(2)
-  end
-
-  def construct_version(response) do
-    Map.get(response, "tag_name")
-    |> String.trim_leading("v")
-  end
-end
diff --git a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex b/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex
deleted file mode 100644
index 5333ad154f5b..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/github_latest_version.ex
+++ /dev/null
@@ -1,42 +0,0 @@
-defmodule NixpkgsGitHubUpdate.GitHubLatestVersion do
-  @user_agent 'httpc'
-
-  def fetch({owner, repo}) do
-    endpoint = releases_endpoint(owner, repo)
-    headers = construct_headers()
-
-    :httpc.request(:get, {endpoint, headers}, [], [])
-    |> handle_response
-  end
-
-  def releases_endpoint(owner, repo) do
-    'https://api.github.com/repos/#{owner}/#{repo}/releases/latest'
-  end
-
-  def construct_headers do
-    headers = %{'User-Agent' => @user_agent}
-
-    put_token(headers, get_token())
-    |> Map.to_list
-  end
-
-  defp get_token do
-    System.get_env("OAUTH_TOKEN")
-  end
-
-  defp put_token(headers, token) when token != nil do
-    Map.put_new(headers, 'Authorization', 'token #{String.to_charlist(token)}')
-  end
-
-  defp put_token(headers, _), do: headers
-
-  def handle_response({_, {{_httpv, status_code, _}, _headers, response}}) do
-    {
-      status_code |> check_for_error(),
-      response |> Poison.Parser.parse!(%{})
-    }
-  end
-
-  defp check_for_error(200), do: :ok
-  defp check_for_error(_), do: :error
-end
diff --git a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/nix.ex b/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/nix.ex
deleted file mode 100644
index d5d9af84a6ba..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/lib/nixpkgs_github_update/nix.ex
+++ /dev/null
@@ -1,85 +0,0 @@
-defmodule NixpkgsGitHubUpdate.Nix do
-  def executable do
-    nix = System.find_executable("nix")
-
-    if nix == nil do
-      raise RuntimeError, message: "missing executable for 'nix'"
-    end
-
-    nix
-  end
-
-  def eval!(attribute) do
-    System.cmd(
-      executable(),
-      [
-        "eval",
-        "--json",
-        attribute
-      ],
-      stderr_to_stdout: true
-    )
-    |> handle_eval
-  end
-
-  defp handle_eval({eval_result, 0}) do
-    case eval_result do
-      "" -> eval_result
-      _ -> Poison.Parser.parse!(eval_result, %{})
-    end
-  end
-
-  defp handle_eval({eval_result, _}) do
-    raise RuntimeError, message: "Error running nix eval: #{eval_result}"
-  end
-
-  def attribute_exists?(attribute) do
-    attr_exist_expression = """
-      with import <nixpkgs> {};
-
-      let
-        attrSet = pkgs.lib.attrByPath (pkgs.lib.splitString "." "#{attribute}") null pkgs;
-      in
-        if attrSet == null then false
-        else true
-    """
-
-    eval!("(#{attr_exist_expression})")
-  end
-
-  def update_source_version(attribute, version) do
-    System.cmd("update-source-version", [
-      attribute,
-      version
-    ])
-  end
-
-  def get_url_attr(attribute) do
-    case attribute_exists?("#{attribute}.src.fetchSubmodules") do
-      true -> "url"
-      false -> "urls"
-    end
-  end
-
-  def get_owner_repo(attribute) do
-    url_attr = get_url_attr(attribute)
-
-    eval!("nixpkgs.#{attribute}.src.#{url_attr}")
-    |> case do
-      # It's fetchFromGitHub if we got a list
-      [url | _] ->
-        URI.parse(url).path
-        |> String.split("/archive", trim: true)
-        |> List.first()
-        |> String.split("/", trim: true)
-
-      # It's fetchgit if we got a plain string
-      url ->
-        URI.parse(url).path
-        |> String.split(".git", trim: true)
-        |> List.first()
-        |> String.split("/", trim: true)
-    end
-    |> List.to_tuple()
-  end
-end
diff --git a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/mix.exs b/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/mix.exs
deleted file mode 100644
index 3498c7066a43..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/mix.exs
+++ /dev/null
@@ -1,28 +0,0 @@
-defmodule NixpkgsGitHubUpdate.MixProject do
-  use Mix.Project
-
-  def project do
-    [
-      app: :nixpkgs_github_update,
-      version: "0.1.0",
-      elixir: "~> 1.9",
-      escript: [main_module: NixpkgsGitHubUpdate.CLI],
-      start_permanent: Mix.env() == :prod,
-      deps: deps()
-    ]
-  end
-
-  # Run "mix help compile.app" to learn about applications.
-  def application do
-    [
-      extra_applications: [:logger, :inets, :ssl]
-    ]
-  end
-
-  # Run "mix help deps" to learn about dependencies.
-  defp deps do
-    [
-      {:poison, "~> 4.0.1"}
-    ]
-  end
-end
diff --git a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/shell.nix b/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/shell.nix
deleted file mode 100644
index 0bb4e58a6a12..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/shell.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-with import <nixpkgs> {};
-
-let
-  inherit (lib) optional;
-in
-
-mkShell rec {
-  name = "nixpkgs-github-update-shell";
-
-  buildInputs = [
-    elixir
-    erlang
-    common-updater-scripts
-  ]
-  ++ optional stdenv.isLinux libnotify # For ExUnit Notifier on Linux.
-  ++ optional stdenv.isLinux inotify-tools # For file_system on Linux.
-  ;
-
-}
diff --git a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/test/nix_test.exs b/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/test/nix_test.exs
deleted file mode 100644
index c5a57698fed6..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/test/nix_test.exs
+++ /dev/null
@@ -1,49 +0,0 @@
-defmodule NixTest do
-  @fake_package "asanotehhhuh"
-  @fetchgit_package "polybar"
-  @fetchgithub_package "notes-up"
-
-  use ExUnit.Case
-
-  import NixpkgsGitHubUpdate.Nix
-
-  def check_for_nix(_context) do
-    try do
-      executable()
-    rescue
-      RuntimeError ->
-        IO.puts("You need Nix installed to run these tests.")
-        System.halt(127)
-    end
-
-    :ok
-  end
-
-  setup_all :check_for_nix
-
-  describe "evaluation tests" do
-    test "evaluation handling" do
-      exists_attr = "nixpkgs.#{@fetchgithub_package}"
-
-      assert is_binary(eval!(exists_attr)) == true
-      catch_error(eval!(@fake_package) == 1)
-    end
-
-    # This should always be true or false
-    test "package exists?" do
-      assert attribute_exists?(@fetchgithub_package) == true
-      assert attribute_exists?(@fake_package) == false
-    end
-  end
-
-  test "owner repo" do
-    assert get_url_attr(@fetchgit_package) == "url"
-    assert get_url_attr(@fetchgithub_package) == "urls"
-
-    assert get_owner_repo(@fetchgit_package) ==
-             {@fetchgit_package, @fetchgit_package}
-
-    assert get_owner_repo(@fetchgithub_package) ==
-             {"Philip-Scott", String.capitalize(@fetchgithub_package)}
-  end
-end
diff --git a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/test/test_helper.exs b/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/test/test_helper.exs
deleted file mode 100644
index 869559e709ea..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/nixpkgs_github_update/test/test_helper.exs
+++ /dev/null
@@ -1 +0,0 @@
-ExUnit.start()
diff --git a/nixpkgs/pkgs/desktops/pantheon/services/contractor/default.nix b/nixpkgs/pkgs/desktops/pantheon/services/contractor/default.nix
index 68532bdd8120..76874878ff7d 100644
--- a/nixpkgs/pkgs/desktops/pantheon/services/contractor/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/services/contractor/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , python3
@@ -21,11 +22,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1jzqv7pglhhyrkj1pfk1l624zn1822wyl5dp6gvwn4sk3iqxwwhl";
+    sha256 = "sha256-FHLecRxTE8v3M7cV6rkQKNhPhKFhuhvkzB5C+u7Z+Ms=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix b/nixpkgs/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
index 7f17fb5d5a9d..2213bcb4e377 100644
--- a/nixpkgs/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -25,11 +26,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "09pl1ynrmqjj844np4ww2i18z7kgx5kmj5ggfp8lqmxgsny7g8m3";
+    sha256 = "sha256-o6J3vNWvV0zRde8VWWfpb56PQhSck2sJQVLimq0P9CY=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix b/nixpkgs/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix
index 7eeb156e0281..3bb68475096f 100644
--- a/nixpkgs/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/services/elementary-dpms-helper/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , meson
 , ninja
@@ -20,11 +21,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = repoName;
     rev = version;
-    sha256 = "0svfp0qyb6nx4mjl3jx4aqmb4x24m25jpi75mdis3yfr3c1xz9nh";
+    sha256 = "sha256-0KbfAxvZ+aFjq+XEK4uoRHSyKlaky0FlJd2a5TG4bms=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix b/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
index 905e2cc9aadf..11e0aaee3ad9 100644
--- a/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -21,11 +22,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1lky7pw47d5mdza3bhq0ahdhgdv159ixngdsc1ys6j1kszsfxc1f";
+    sha256 = "sha256-LrDu9NczSKN9YLo922MqYbcHG1QAwzXUb7W0Q/g9ftI=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix b/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
index ca80a2f1df29..ad8cf7e82e93 100644
--- a/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
+++ b/nixpkgs/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pantheon
 , pkgconfig
 , meson
@@ -14,17 +15,17 @@
 
 stdenv.mkDerivation rec {
   pname = "pantheon-agent-polkit";
-  version = "1.0.2";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "1gkispg1wr3fmwhbaaw722hc7cfqvj18gwb1nvv7rz3ghk9ih4jy";
+    sha256 = "sha256-YL1LHnPH7pP0EW9IkjdSEX+VuaAF9uNyFbl47vjVps0=";
   };
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = "pantheon.${pname}";
     };
   };
diff --git a/nixpkgs/pkgs/desktops/pantheon/update.nix b/nixpkgs/pkgs/desktops/pantheon/update.nix
deleted file mode 100644
index 1137c5330169..000000000000
--- a/nixpkgs/pkgs/desktops/pantheon/update.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{ nixpkgs-github-update }:
-
-{ attrPath }:
-
-
-[ "${nixpkgs-github-update}/bin/nixpkgs_github_update" "--attribute" attrPath ]
diff --git a/nixpkgs/pkgs/desktops/plasma-5/3rdparty/addons/caffeine-plus.nix b/nixpkgs/pkgs/desktops/plasma-5/3rdparty/addons/caffeine-plus.nix
new file mode 100644
index 000000000000..66e1255f223a
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/plasma-5/3rdparty/addons/caffeine-plus.nix
@@ -0,0 +1,32 @@
+{ lib, mkDerivation, fetchFromGitHub, extra-cmake-modules
+, kwindowsystem, plasma-framework }:
+
+mkDerivation rec {
+  pname = "plasma-applet-caffeine-plus";
+  version = "1.4";
+
+  src = fetchFromGitHub {
+    owner = "qunxyz";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-/Nz0kSDGok7GjqSQtjH/8q/u6blVTFPO6kfjEyt/jEo=";
+  };
+
+  buildInputs = [
+    kwindowsystem plasma-framework
+  ];
+
+  nativeBuildInputs = [ extra-cmake-modules ];
+
+  cmakeFlags = [
+    "-Wno-dev"
+  ];
+
+  meta = with lib; {
+    description = "Disable screensaver and auto suspend";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ peterhoeg ];
+    inherit (src.meta) homepage;
+    inherit (kwindowsystem.meta) platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/dynamic-workspaces.nix b/nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/dynamic-workspaces.nix
new file mode 100644
index 000000000000..cea788f26403
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/dynamic-workspaces.nix
@@ -0,0 +1,39 @@
+{ lib, mkDerivation, fetchFromGitHub
+, kcoreaddons, kwindowsystem, plasma-framework, systemsettings }:
+
+mkDerivation rec {
+  pname = "dynamic_workspaces";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "d86leader";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1mnwh489i6l8z9s5a1zl7zybkw76pp9fdmmis41mym7r4wz4iznm";
+  };
+
+  buildInputs = [
+    kcoreaddons kwindowsystem plasma-framework systemsettings
+  ];
+
+  dontBuild = true;
+
+  # 1. --global still installs to $HOME/.local/share so we use --packageroot
+  # 2. plasmapkg2 doesn't copy metadata.desktop into place, so we do that manually
+  installPhase = ''
+    runHook preInstall
+
+    plasmapkg2 --type kwinscript --install ${src} --packageroot $out/share/kwin/scripts
+    install -Dm644 ${src}/metadata.desktop $out/share/kservices5/dynamic_workspaces.desktop
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "KWin script that automatically adds/removes virtual desktops";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ samuelgrf ];
+    inherit (src.meta) homepage;
+    inherit (kwindowsystem.meta) platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kwin/scripts/krohnkite.nix b/nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/krohnkite.nix
index abd655db3753..95480bc5b968 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/kwin/scripts/krohnkite.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/krohnkite.nix
@@ -26,7 +26,7 @@ mkDerivation rec {
     plasmapkg2 --type kwinscript --install ${src}/res/ --packageroot $out/share/kwin/scripts
     install -Dm644 ${src}/res/metadata.desktop $out/share/kservices5/krohnkite.desktop
 
-    runHook postInstalll
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kwin/scripts/tiling.nix b/nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/tiling.nix
index d2c68d3cb7b2..8a455cb88826 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/kwin/scripts/tiling.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/3rdparty/kwin/scripts/tiling.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "kwin-tiling";
-  version = "2.2";
+  version = "2.4";
 
   src = fetchFromGitHub {
     owner = "kwin-scripts";
     repo = "kwin-tiling";
     rev = "v${version}";
-    sha256 = "1sx64xv7g9yh3j26zxxrbndv79xam9jq0vs00fczgfv2n0m7j7bl";
+    sha256 = "095slpvipy0zcmbn0l7mdnl9g74jaafkr2gqi09b0by5fkvnbh37";
   };
 
   # This is technically not needed, but we might as well clean up
@@ -31,7 +31,7 @@ mkDerivation rec {
     plasmapkg2 --type kwinscript --install ${src} --packageroot $out/share/kwin/scripts
     install -Dm644 ${src}/metadata.desktop $out/share/kservices5/kwin-script-tiling.desktop
 
-    runHook postInstalll
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/desktops/plasma-5/breeze-plymouth/default.nix b/nixpkgs/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
index 770e549fc2cd..9127b7fecb6e 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/breeze-plymouth/default.nix
@@ -1,7 +1,6 @@
 {
   mkDerivation,
   lib,
-  copyPathsToStore,
   extra-cmake-modules,
   plymouth,
   nixos-icons,
@@ -16,19 +15,21 @@
   bottomColor ? "black"
 }:
 
-let 
+let
   validColors = [ "black" "cardboard_grey" "charcoal_grey" "icon_blue" "paper_white" "plasma_blue" "neon_blue" "neon_green" ];
   resolvedLogoName = if (logoFile != null && logoName == null) then lib.strings.removeSuffix ".png" (baseNameOf(toString logoFile)) else logoName;
 in
   assert lib.asserts.assertOneOf "topColor" topColor validColors;
   assert lib.asserts.assertOneOf "bottomColor" bottomColor validColors;
-  
+
 
 mkDerivation {
   name = "breeze-plymouth";
   nativeBuildInputs = [ extra-cmake-modules ] ++ lib.optionals (logoFile != null) [ imagemagick netpbm perl ];
   buildInputs = [ plymouth ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./install-paths.patch
+  ];
   cmakeFlags = []
     ++ lib.optional (osName      != null) "-DDISTRO_NAME=${osName}"
     ++ lib.optional (osVersion   != null) "-DDISTRO_VERSION=${osVersion}"
@@ -36,7 +37,7 @@ mkDerivation {
     ++ lib.optional (topColor    != null) "-DBACKGROUND_TOP_COLOR=${topColor}"
     ++ lib.optional (bottomColor != null) "-DBACKGROUND_BOTTOM_COLOR=${bottomColor}"
   ;
-  
+
   postPatch = ''
       substituteInPlace cmake/FindPlymouth.cmake --subst-var out
   '' + lib.optionalString (logoFile != null) ''
diff --git a/nixpkgs/pkgs/desktops/plasma-5/breeze-plymouth/series b/nixpkgs/pkgs/desktops/plasma-5/breeze-plymouth/series
deleted file mode 100644
index 8920e7ca5189..000000000000
--- a/nixpkgs/pkgs/desktops/plasma-5/breeze-plymouth/series
+++ /dev/null
@@ -1 +0,0 @@
-install-paths.patch
diff --git a/nixpkgs/pkgs/desktops/plasma-5/default.nix b/nixpkgs/pkgs/desktops/plasma-5/default.nix
index 07b464258149..8ab4b60156c6 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/default.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/default.nix
@@ -36,6 +36,7 @@ let
   };
 
   mkDerivation = libsForQt5.callPackage ({ mkDerivation }: mkDerivation) {};
+  qtbase = libsForQt5.callPackage ({ qtbase }: qtbase) {};
 
   packages = self: with self;
     let
@@ -82,6 +83,7 @@ let
             setupHook = args.setupHook or defaultSetupHook;
 
             meta = {
+              broken = lib.versionAtLeast qtbase.version "5.15";
               license = with lib.licenses; [
                 lgpl21Plus lgpl3Plus bsd2 mit gpl2Plus gpl3Plus fdl12
               ];
@@ -138,6 +140,14 @@ let
       systemsettings = callPackage ./systemsettings.nix {};
       user-manager = callPackage ./user-manager.nix {};
       xdg-desktop-portal-kde = callPackage ./xdg-desktop-portal-kde.nix {};
+
+      thirdParty = let inherit (libsForQt5) callPackage; in {
+        plasma-applet-caffeine-plus = callPackage ./3rdparty/addons/caffeine-plus.nix { };
+        kwin-dynamic-workspaces = callPackage ./3rdparty/kwin/scripts/dynamic-workspaces.nix { };
+        kwin-tiling = callPackage ./3rdparty/kwin/scripts/tiling.nix { };
+        krohnkite = callPackage ./3rdparty/kwin/scripts/krohnkite.nix { };
+      };
+
     };
 in
 lib.makeScope libsForQt5.newScope packages
diff --git a/nixpkgs/pkgs/desktops/plasma-5/fetch.sh b/nixpkgs/pkgs/desktops/plasma-5/fetch.sh
index d871ceb28757..abb5659526f7 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/fetch.sh
+++ b/nixpkgs/pkgs/desktops/plasma-5/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/plasma/5.17.5/ )
+WGET_ARGS=( https://download.kde.org/stable/plasma/5.18.5/ )
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kde-cli-tools.nix b/nixpkgs/pkgs/desktops/plasma-5/kde-cli-tools.nix
index 3364ee2c0632..d84b7bc98019 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/kde-cli-tools.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/kde-cli-tools.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, extra-cmake-modules, kdoctools,
+  lib, mkDerivation, extra-cmake-modules, kdoctools,
   kcmutils, kconfig, kdesu, ki18n, kiconthemes, kinit, kio, kwindowsystem,
   qtsvg, qtx11extras, kactivities, plasma-workspace
 }:
@@ -11,4 +11,18 @@ mkDerivation {
     kcmutils kconfig kdesu ki18n kiconthemes kinit kio kwindowsystem qtsvg
     qtx11extras kactivities plasma-workspace
   ];
+  postInstall = ''
+    # install a symlink in bin so that kdesu can eventually be found in PATH
+    mkdir -p $out/bin
+    ln -s $out/libexec/kf5/kdesu $out/bin
+  '';
+  dontWrapQtApps = true;
+  preFixup = ''
+    for program in $out/bin/*; do
+      wrapQtApp $program
+    done
+
+    # kdesu looks for kdeinit5 in PATH
+    wrapQtApp $out/libexec/kf5/kdesu --suffix PATH : ${lib.getBin kinit}/bin
+  '';
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/0001-gsettings-schemas-path.patch b/nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/0001-gsettings-schemas-path.patch
new file mode 100644
index 000000000000..2fe4672f6757
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/0001-gsettings-schemas-path.patch
@@ -0,0 +1,21 @@
+diff --git a/kded/gtkconfig.cpp b/kded/gtkconfig.cpp
+index 5303636..199c4d5 100644
+--- a/kded/gtkconfig.cpp
++++ b/kded/gtkconfig.cpp
+@@ -41,6 +41,16 @@ GtkConfig::GtkConfig(QObject *parent, const QVariantList&) :
+     kdeglobalsConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kdeglobals")))),
+     kwinConfigWatcher(KConfigWatcher::create(KSharedConfig::openConfig(QStringLiteral("kwinrc"))))
+ {
++    // Add GSETTINGS_SCHEMAS_PATH to the front of XDG_DATA_DIRS.
++    // Normally this would be done by wrapGAppsHook, but this plugin
++    // (shared object) cannot be wrapped.
++    QByteArray xdgdata = qgetenv("XDG_DATA_DIRS");
++    if (!xdgdata.isEmpty()) {
++        xdgdata.push_front(":");
++    }
++    xdgdata.push_front(QByteArray(GSETTINGS_SCHEMAS_PATH));
++    qputenv("XDG_DATA_DIRS", xdgdata);
++
+     QDBusConnection dbus = QDBusConnection::sessionBus();
+     dbus.registerService(QStringLiteral("org.kde.GtkConfig"));
+     dbus.registerObject(QStringLiteral("/GtkConfig"), this, QDBusConnection::ExportScriptableSlots);
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/default.nix b/nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
index 8cfc947d30bd..c1ed6dbd6c6e 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/default.nix
@@ -2,7 +2,7 @@
   mkDerivation,
   extra-cmake-modules, wrapGAppsHook,
   glib, gtk2, gtk3, karchive, kcmutils, kconfigwidgets, ki18n, kiconthemes, kio,
-  knewstuff, gsettings-desktop-schemas
+  knewstuff, gsettings-desktop-schemas, xsettingsd
 }:
 
 mkDerivation {
@@ -11,14 +11,16 @@ mkDerivation {
   dontWrapGApps = true;  # There is nothing to wrap
   buildInputs = [
     ki18n kio glib gtk2 gtk3 karchive kcmutils kconfigwidgets kiconthemes
-    knewstuff gsettings-desktop-schemas
+    knewstuff gsettings-desktop-schemas xsettingsd
   ];
-  patches = [ ./patches/follow-symlinks.patch ./patches/gsettings.patch ];
   cmakeFlags = [
     "-DGTK2_GLIBCONFIG_INCLUDE_DIR=${glib.out}/lib/glib-2.0/include"
     "-DGTK2_GDKCONFIG_INCLUDE_DIR=${gtk2.out}/lib/gtk-2.0/include"
     "-DGLIB_SCHEMAS_DIR=${gsettings-desktop-schemas.out}/"
   ];
+  # The gtkconfig KDED module will crash the daemon if the GSettings schemas
+  # aren't found.
+  patches = [ ./0001-gsettings-schemas-path.patch ];
   preConfigure = ''
     NIX_CFLAGS_COMPILE+=" -DGSETTINGS_SCHEMAS_PATH=\"$GSETTINGS_SCHEMAS_PATH\""
   '';
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/patches/follow-symlinks.patch b/nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/patches/follow-symlinks.patch
deleted file mode 100644
index f30a0a4588fa..000000000000
--- a/nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/patches/follow-symlinks.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 33b25c2e3c7a002c7f726cd79fc4bab22b1299be Mon Sep 17 00:00:00 2001
-From: Thomas Tuegel <ttuegel@gmail.com>
-Date: Tue, 27 Oct 2015 18:07:54 -0500
-Subject: [PATCH] follow symlinks
-
----
- src/appearancegtk2.cpp  | 2 +-
- src/iconthemesmodel.cpp | 2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-Index: kde-gtk-config-5.12.4/src/appearancegtk2.cpp
-===================================================================
---- kde-gtk-config-5.12.4.orig/src/appearancegtk2.cpp
-+++ kde-gtk-config-5.12.4/src/appearancegtk2.cpp
-@@ -69,7 +69,7 @@ QString AppearanceGTK2::themesGtkrcFile(
-     QStringList themes=installedThemes();
-     themes=themes.filter(QRegExp("/"+themeName+"/?$"));
-     if(themes.size()==1) {
--        QDirIterator it(themes.first(), QDirIterator::Subdirectories);
-+        QDirIterator it(themes.first(), QDirIterator::Subdirectories | QDirIterator::FollowSymlinks);
-         while(it.hasNext()) {
-             it.next();
-             if(it.fileName()=="gtkrc") {
-Index: kde-gtk-config-5.12.4/src/iconthemesmodel.cpp
-===================================================================
---- kde-gtk-config-5.12.4.orig/src/iconthemesmodel.cpp
-+++ kde-gtk-config-5.12.4/src/iconthemesmodel.cpp
-@@ -47,7 +47,7 @@ QList<QDir> IconThemesModel::installedTh
- 
-     foreach(const QString& dir, dirs) {
-         QDir userIconsDir(dir);
--        QDirIterator it(userIconsDir.path(), QDir::NoDotAndDotDot|QDir::AllDirs|QDir::NoSymLinks);
-+        QDirIterator it(userIconsDir.path(), QDir::NoDotAndDotDot|QDir::AllDirs);
-         while(it.hasNext()) {
-             QString currentPath = it.next();
-             QDir dir(currentPath);
-Index: kde-gtk-config-5.12.4/src/cursorthemesmodel.cpp
-===================================================================
---- kde-gtk-config-5.12.4.orig/src/cursorthemesmodel.cpp
-+++ kde-gtk-config-5.12.4/src/cursorthemesmodel.cpp
-@@ -47,7 +47,7 @@ QList<QDir> CursorThemesModel::installed
- 
-     foreach(const QString& dir, dirs) {
-         QDir userIconsDir(dir);
--        QDirIterator it(userIconsDir.path(), QDir::NoDotAndDotDot|QDir::AllDirs|QDir::NoSymLinks);
-+        QDirIterator it(userIconsDir.path(), QDir::NoDotAndDotDot|QDir::AllDirs);
-         while(it.hasNext()) {
-             QString currentPath = it.next();
-             QDir dir(currentPath);
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/patches/gsettings.patch b/nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/patches/gsettings.patch
deleted file mode 100644
index 69f7bc4e56a0..000000000000
--- a/nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/patches/gsettings.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/src/gtkconfigkcmodule.cpp b/src/gtkconfigkcmodule.cpp
-index 7b82d50..96831d8 100644
---- a/src/gtkconfigkcmodule.cpp
-+++ b/src/gtkconfigkcmodule.cpp
-@@ -91,6 +91,16 @@ GTKConfigKCModule::GTKConfigKCModule(QWidget* parent, const QVariantList& args )
-     iconsProxyModel->sort(0);
-     ui->cb_icon->setModel(iconsProxyModel);
-     ui->cb_icon_fallback->setModel(iconsProxyModel);
-+
-+    // Add GSETTINGS_SCHEMAS_PATH to the front of XDG_DATA_DIRS.
-+    // Normally this would be done by wrapGAppsHook, but this plugin
-+    // (shared object) cannot be wrapped.
-+    QByteArray xdgdata = qgetenv("XDG_DATA_DIRS");
-+    if (!xdgdata.isEmpty()) {
-+        xdgdata.push_front(":");
-+    }
-+    xdgdata.push_front(QByteArray(GSETTINGS_SCHEMAS_PATH));
-+    qputenv("XDG_DATA_DIRS", xdgdata);
-     
-     m_tempGtk2Preview = QStandardPaths::writableLocation(QStandardPaths::TempLocation)+ "/gtkrc-2.0";
-     m_tempGtk3Preview = QStandardPaths::writableLocation(QStandardPaths::TempLocation)+ "/.config/gtk-3.0/settings.ini";
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/patches/series b/nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/patches/series
deleted file mode 100644
index 7aad1acf6ac4..000000000000
--- a/nixpkgs/pkgs/desktops/plasma-5/kde-gtk-config/patches/series
+++ /dev/null
@@ -1,2 +0,0 @@
-follow-symlinks.patch
-gsettings.patch
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kdeplasma-addons.nix b/nixpkgs/pkgs/desktops/plasma-5/kdeplasma-addons.nix
index 398fc356fc93..f214d4070eec 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/kdeplasma-addons.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/kdeplasma-addons.nix
@@ -1,17 +1,18 @@
 {
   mkDerivation,
   extra-cmake-modules, kdoctools,
-  kconfig, kconfigwidgets, kcoreaddons, kcmutils, kdelibs4support, kio,
-  knewstuff, kross, krunner, kservice, ksysguard, kunitconversion, ibus,
-  plasma-framework, plasma-workspace, qtdeclarative, qtx11extras, kholidays
+  kconfig, kconfigwidgets, kcoreaddons, kcmutils, kdelibs4support, kholidays,
+  kio, knewstuff, kpurpose, kross, krunner, kservice, ksysguard,
+  kunitconversion, ibus, plasma-framework, plasma-workspace, qtdeclarative,
+  qtwebengine, qtx11extras
 }:
 
 mkDerivation {
   name = "kdeplasma-addons";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    kconfig kconfigwidgets kcoreaddons kcmutils kdelibs4support kio knewstuff
-    kross krunner kservice ksysguard kunitconversion ibus plasma-framework
-    plasma-workspace qtdeclarative qtx11extras kholidays
+    kconfig kconfigwidgets kcoreaddons kcmutils kdelibs4support kholidays kio
+    knewstuff kpurpose kross krunner kservice ksysguard kunitconversion ibus
+    plasma-framework plasma-workspace qtdeclarative qtwebengine qtx11extras
   ];
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/khotkeys.nix b/nixpkgs/pkgs/desktops/plasma-5/khotkeys.nix
index 77763c5e203e..ad78d602deca 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/khotkeys.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/khotkeys.nix
@@ -1,6 +1,7 @@
 {
-  mkDerivation,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
+  qtbase,
   kcmutils, kdbusaddons, kdelibs4support, kglobalaccel, ki18n, kio, kxmlgui,
   plasma-framework, plasma-workspace, qtx11extras
 }:
@@ -13,5 +14,5 @@ mkDerivation {
     plasma-framework plasma-workspace qtx11extras
   ];
   outputs = [ "bin" "dev" "out" ];
-  enableParallelBuilding = false;
+  meta.broken = lib.versionOlder qtbase.version "5.14";
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kinfocenter.nix b/nixpkgs/pkgs/desktops/plasma-5/kinfocenter.nix
index b35493929ff3..cf353af58919 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/kinfocenter.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/kinfocenter.nix
@@ -2,8 +2,9 @@
   mkDerivation,
   extra-cmake-modules, kdoctools,
   kcmutils, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons,
-  kdeclarative, kdelibs4support, ki18n, kiconthemes, kio, kpackage, kservice,
-  kwayland, kwidgetsaddons, kxmlgui, libraw1394, libGLU, pciutils, solid
+  kdeclarative, kdelibs4support, ki18n, kiconthemes, kio, kirigami2, kpackage,
+  kservice, kwayland, kwidgetsaddons, kxmlgui, libraw1394, libGLU, pciutils,
+  solid
 }:
 
 mkDerivation {
@@ -11,7 +12,7 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kcmutils kcompletion kconfig kconfigwidgets kcoreaddons kdbusaddons
-    kdeclarative kdelibs4support ki18n kiconthemes kio kpackage kservice
-    kwayland kwidgetsaddons kxmlgui libraw1394 libGLU pciutils solid
+    kdeclarative kdelibs4support ki18n kiconthemes kio kirigami2 kpackage
+    kservice kwayland kwidgetsaddons kxmlgui libraw1394 libGLU pciutils solid
   ];
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kscreen-417316.patch b/nixpkgs/pkgs/desktops/plasma-5/kscreen-417316.patch
deleted file mode 100644
index 92b347e2dbfc..000000000000
--- a/nixpkgs/pkgs/desktops/plasma-5/kscreen-417316.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-https://phabricator.kde.org/file/data/dyr2qr4wrhxg4eahkgd3/PHID-FILE-7d4og3zr4mk53u6lzkk2/D27442.diff
-https://bugs.kde.org/show_bug.cgi?id=417316
-
-diff -ru kscreen-5.17.5-orig/kcm/package/contents/ui/main.qml kscreen-5.17.5/kcm/package/contents/ui/main.qml
---- kscreen-5.17.5-orig/kcm/package/contents/ui/main.qml	2020-01-07 16:28:39.000000000 +0100
-+++ kscreen-5.17.5/kcm/package/contents/ui/main.qml	2020-04-03 17:54:26.097809557 +0200
-@@ -24,8 +24,8 @@
- KCM.SimpleKCM {
-     id: root
- 
--    implicitWidth: units.gridUnit * 30
--    implicitHeight: units.gridUnit * 38
-+    implicitWidth: Kirigami.Units.gridUnit * 32
-+    implicitHeight: Kirigami.Units.gridUnit * 38
- 
-     property int selectedOutput: 0
- 
-@@ -113,7 +113,7 @@
-             id: screen
- 
-             Layout.alignment: Qt.AlignHCenter
--            Layout.preferredWidth: Math.max(root.width * 0.8, units.gridUnit * 26)
-+            Layout.preferredWidth: Math.max(root.width * 0.8, Kirigami.Units.gridUnit * 26)
-             Layout.topMargin: Kirigami.Units.smallSpacing
-             Layout.bottomMargin: Kirigami.Units.largeSpacing * 2
- 
-diff -ru kscreen-5.17.5-orig/kcm/package/contents/ui/Output.qml kscreen-5.17.5/kcm/package/contents/ui/Output.qml
---- kscreen-5.17.5-orig/kcm/package/contents/ui/Output.qml	2020-01-07 16:28:39.000000000 +0100
-+++ kscreen-5.17.5/kcm/package/contents/ui/Output.qml	2020-04-03 17:53:22.491686708 +0200
-@@ -19,6 +19,7 @@
- import QtQuick.Layouts 1.1
- import QtQuick.Controls 2.3 as Controls
- import QtGraphicalEffects 1.0
-+import org.kde.kirigami 2.4 as Kirigami
- 
- Rectangle {
-     id: output
-@@ -77,7 +78,7 @@
- 
-             Controls.Label {
-                 Layout.fillWidth: true
--                Layout.margins: units.smallSpacing
-+                Layout.margins: Kirigami.Units.smallSpacing
- 
-                 text: model.display
-                 wrapMode: Text.Wrap
-@@ -87,7 +88,7 @@
- 
-             Controls.Label {
-                 Layout.fillWidth: true
--                Layout.bottomMargin: units.smallSpacing
-+                Layout.bottomMargin: Kirigami.Units.smallSpacing
- 
-                 text: "(" + model.size.width + "x" + model.size.height + ")"
-                 horizontalAlignment: Text.AlignHCenter
-diff -ru kscreen-5.17.5-orig/kcm/package/contents/ui/Screen.qml kscreen-5.17.5/kcm/package/contents/ui/Screen.qml
---- kscreen-5.17.5-orig/kcm/package/contents/ui/Screen.qml	2020-01-07 16:28:39.000000000 +0100
-+++ kscreen-5.17.5/kcm/package/contents/ui/Screen.qml	2020-04-03 17:53:22.491686708 +0200
-@@ -45,7 +45,7 @@
-     property int xOffset: (width - totalSize.width / relativeFactor) / 2;
-     property int yOffset: (height - totalSize.height / relativeFactor) / 2;
- 
--    implicitHeight: Math.max(root.height * 0.4, units.gridUnit * 13)
-+    implicitHeight: Math.max(root.height * 0.4, Kirigami.Units.gridUnit * 13)
- 
-     Component.onCompleted: background.visible = true;
- 
-@@ -54,7 +54,7 @@
-         anchors {
-             bottom: parent.bottom
-             horizontalCenter: parent.horizontalCenter
--            margins: units.smallSpacing
-+            margins: Kirigami.Units.smallSpacing
-         }
-         spacing: units.smallSpacing
-         Controls.Button {
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kscreen.nix b/nixpkgs/pkgs/desktops/plasma-5/kscreen.nix
index 2f37c4212da4..11b0f38fed05 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/kscreen.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/kscreen.nix
@@ -2,17 +2,16 @@
   mkDerivation,
   extra-cmake-modules,
   kconfig, kcmutils, kconfigwidgets, kdbusaddons, kglobalaccel, ki18n,
-  kwidgetsaddons, kxmlgui, libkscreen, qtdeclarative, qtgraphicaleffects,
+  kwidgetsaddons, kxmlgui, libkscreen, qtdeclarative, qtgraphicaleffects, qtsensors,
   kwindowsystem, kdeclarative, plasma-framework
 }:
 
 mkDerivation {
   name = "kscreen";
-  patches = [ ./kscreen-417316.patch ];
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     kconfig kcmutils kconfigwidgets kdbusaddons kglobalaccel ki18n
-    kwidgetsaddons kxmlgui libkscreen qtdeclarative qtgraphicaleffects
+    kwidgetsaddons kxmlgui libkscreen qtdeclarative qtgraphicaleffects qtsensors
     kwindowsystem kdeclarative plasma-framework
   ];
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/ksysguard.nix b/nixpkgs/pkgs/desktops/plasma-5/ksysguard.nix
index 01e740f74c4b..72793fdf0838 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/ksysguard.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/ksysguard.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation,
   extra-cmake-modules, kdoctools,
-  lm_sensors,
+  libcap, libpcap, lm_sensors,
   kconfig, kcoreaddons, kdelibs4support, ki18n, kiconthemes, kitemviews,
   knewstuff, libksysguard
 }:
@@ -11,6 +11,6 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kconfig kcoreaddons kitemviews knewstuff kiconthemes libksysguard
-    kdelibs4support ki18n lm_sensors
+    kdelibs4support ki18n libcap libpcap lm_sensors
   ];
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix b/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix
index c3e9e2b9c245..78b6909f046d 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/kwin/default.nix
@@ -1,17 +1,18 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
 
   epoxy,libICE, libSM, libinput, libxkbcommon, udev, wayland, xcb-util-cursor,
   xwayland,
 
-  qtdeclarative, qtmultimedia, qtscript, qtx11extras,
+  qtdeclarative, qtmultimedia, qtquickcontrols2, qtscript, qtsensors,
+  qtvirtualkeyboard, qtx11extras,
 
   breeze-qt5, kactivities, kcompletion, kcmutils, kconfig, kconfigwidgets,
   kcoreaddons, kcrash, kdeclarative, kdecoration, kglobalaccel, ki18n,
   kiconthemes, kidletime, kinit, kio, knewstuff, knotifications, kpackage,
   kscreenlocker, kservice, kwayland, kwidgetsaddons, kwindowsystem, kxmlgui,
-  plasma-framework, qtsensors, libcap, libdrm, mesa
+  plasma-framework, libcap, libdrm, mesa
 }:
 
 # TODO (ttuegel): investigate qmlplugindump failure
@@ -23,7 +24,8 @@ mkDerivation {
     epoxy libICE libSM libinput libxkbcommon udev wayland xcb-util-cursor
     xwayland
 
-    qtdeclarative qtmultimedia qtscript qtx11extras qtsensors
+    qtdeclarative qtmultimedia qtquickcontrols2 qtscript qtsensors
+    qtvirtualkeyboard qtx11extras
 
     breeze-qt5 kactivities kcmutils kcompletion kconfig kconfigwidgets
     kcoreaddons kcrash kdeclarative kdecoration kglobalaccel ki18n kiconthemes
diff --git a/nixpkgs/pkgs/desktops/plasma-5/libkscreen/default.nix b/nixpkgs/pkgs/desktops/plasma-5/libkscreen/default.nix
index cf9d70844014..db952944ecaa 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/libkscreen/default.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/libkscreen/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore, propagate,
+  mkDerivation, lib, propagate,
   extra-cmake-modules,
   kwayland, libXrandr, qtbase, qtx11extras
 }:
@@ -12,7 +12,9 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ kwayland libXrandr qtx11extras ];
   outputs = [ "out" "dev" ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./libkscreen-backends-path.patch
+  ];
   preConfigure = ''
     NIX_CFLAGS_COMPILE+=" -DNIXPKGS_LIBKSCREEN_BACKENDS=\"''${!outputBin}/$qtPluginPrefix/kf5/kscreen\""
   '';
diff --git a/nixpkgs/pkgs/desktops/plasma-5/libkscreen/series b/nixpkgs/pkgs/desktops/plasma-5/libkscreen/series
deleted file mode 100644
index 86bf4ab10602..000000000000
--- a/nixpkgs/pkgs/desktops/plasma-5/libkscreen/series
+++ /dev/null
@@ -1 +0,0 @@
-libkscreen-backends-path.patch
diff --git a/nixpkgs/pkgs/desktops/plasma-5/patches/0001-Add-a-logging-category-config-file.patch b/nixpkgs/pkgs/desktops/plasma-5/patches/0001-Add-a-logging-category-config-file.patch
new file mode 100644
index 000000000000..d8d54a117eb2
--- /dev/null
+++ b/nixpkgs/pkgs/desktops/plasma-5/patches/0001-Add-a-logging-category-config-file.patch
@@ -0,0 +1,210 @@
+From e63a0dc2a7b185906a93d60e9d5d6deee4950efc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?M=C3=A9ven=20Car?= <meven.car@enioka.com>
+Date: Wed, 20 May 2020 14:02:07 +0200
+Subject: [PATCH] Add a logging category config file
+
+Makes powerdevil default logging level Warning
+---
+ CMakeLists.txt                     |  2 ++
+ daemon/CMakeLists.txt              |  6 ++++++
+ daemon/actions/dpms/CMakeLists.txt |  2 +-
+ daemon/backends/CMakeLists.txt     |  6 +++---
+ daemon/powerdevil_debug.cpp        | 21 ---------------------
+ daemon/powerdevil_debug.h          | 26 --------------------------
+ kcmodule/activities/CMakeLists.txt |  2 +-
+ kcmodule/common/CMakeLists.txt     |  2 +-
+ kcmodule/profiles/CMakeLists.txt   |  2 +-
+ powerdevil.categories              |  1 +
+ 10 files changed, 16 insertions(+), 54 deletions(-)
+ delete mode 100644 daemon/powerdevil_debug.cpp
+ delete mode 100644 daemon/powerdevil_debug.h
+ create mode 100644 powerdevil.categories
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5ded8f5a..52a7318c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -11,6 +11,7 @@ find_package(ECM ${KF5_MIN_VERSION} REQUIRED NO_MODULE)
+ set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
+ 
+ include(ECMSetupVersion)
++include(ECMQtDeclareLoggingCategory)
+ include(FeatureSummary)
+ include(KDEInstallDirs)
+ include(KDECMakeSettings)
+@@ -76,6 +77,7 @@ add_subdirectory(daemon)
+ add_subdirectory(kcmodule)
+ add_subdirectory(doc)
+ 
++install( FILES powerdevil.categories  DESTINATION  ${KDE_INSTALL_LOGGINGCATEGORIESDIR})
+ install( FILES powerdevil.notifyrc DESTINATION ${KDE_INSTALL_KNOTIFY5RCDIR} )
+ 
+ feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES)
+diff --git a/daemon/CMakeLists.txt b/daemon/CMakeLists.txt
+index 33ca655b..96cc9b7b 100644
+--- a/daemon/CMakeLists.txt
++++ b/daemon/CMakeLists.txt
+@@ -48,6 +48,12 @@ set(powerdevilcore_SRCS
+     kwinkscreenhelpereffect.cpp
+ )
+ 
++ecm_qt_declare_logging_category(powerdevilcore_SRCS
++   HEADER powerdevil_debug.h
++   IDENTIFIER POWERDEVIL
++   CATEGORY_NAME org.kde.powerdevil
++   DEFAULT_SEVERITY Warning)
++
+ kconfig_add_kcfg_files(powerdevilcore_SRCS ../PowerDevilSettings.kcfgc)
+ 
+ # Action DBus Adaptors
+diff --git a/daemon/actions/dpms/CMakeLists.txt b/daemon/actions/dpms/CMakeLists.txt
+index f8ca4e20..3b8bd95b 100644
+--- a/daemon/actions/dpms/CMakeLists.txt
++++ b/daemon/actions/dpms/CMakeLists.txt
+@@ -3,7 +3,7 @@ include_directories(${PowerDevil_SOURCE_DIR}/daemon
+                     ${CMAKE_CURRENT_BINARY_DIR})
+ 
+ set(powerdevildpmsaction_SRCS
+-    ${PowerDevil_SOURCE_DIR}/daemon/powerdevil_debug.cpp
++    ${CMAKE_CURRENT_BINARY_DIR}/../../powerdevil_debug.cpp
+     powerdevildpmsaction.cpp
+     abstractdpmshelper.cpp
+     xcbdpmshelper.cpp
+diff --git a/daemon/backends/CMakeLists.txt b/daemon/backends/CMakeLists.txt
+index 89400446..05c4263e 100644
+--- a/daemon/backends/CMakeLists.txt
++++ b/daemon/backends/CMakeLists.txt
+@@ -4,7 +4,7 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/upower
+                     ${X11_Xrandr_INCLUDE_PATH})
+ 
+ set(powerdevilupowerbackend_SRCS
+-    ${PowerDevil_SOURCE_DIR}/daemon/powerdevil_debug.cpp
++    ${CMAKE_CURRENT_BINARY_DIR}/../powerdevil_debug.cpp
+     upower/upowersuspendjob.cpp
+     upower/login1suspendjob.cpp
+     upower/powerdevilupowerbackend.cpp
+@@ -33,14 +33,14 @@ ${CMAKE_CURRENT_SOURCE_DIR}/upower/dbus/org.freedesktop.UPower.KbdBacklight.xml
+ upower_kbdbacklight_interface)
+ 
+ ## backlight helper executable
+-add_executable(backlighthelper upower/backlighthelper.cpp ${PowerDevil_SOURCE_DIR}/daemon/powerdevil_debug.cpp ${backlighthelper_mocs})
++add_executable(backlighthelper upower/backlighthelper.cpp ${CMAKE_CURRENT_BINARY_DIR}/../powerdevil_debug.cpp ${backlighthelper_mocs})
+ target_link_libraries(backlighthelper Qt5::Core KF5::AuthCore KF5::I18n)
+ install(TARGETS backlighthelper DESTINATION ${KAUTH_HELPER_INSTALL_DIR})
+ kauth_install_helper_files(backlighthelper org.kde.powerdevil.backlighthelper root)
+ kauth_install_actions(org.kde.powerdevil.backlighthelper ${CMAKE_CURRENT_SOURCE_DIR}/upower/backlight_helper_actions.actions)
+ 
+ ## discrete gpu helper executable
+-add_executable(discretegpuhelper upower/discretegpuhelper.cpp ${PowerDevil_SOURCE_DIR}/daemon/powerdevil_debug.cpp ${discretegpuhelper_mocs})
++add_executable(discretegpuhelper upower/discretegpuhelper.cpp ${CMAKE_CURRENT_BINARY_DIR}/../powerdevil_debug.cpp ${discretegpuhelper_mocs})
+ target_link_libraries(discretegpuhelper Qt5::Core KF5::AuthCore)
+ install(TARGETS discretegpuhelper DESTINATION ${KAUTH_HELPER_INSTALL_DIR})
+ kauth_install_helper_files(discretegpuhelper org.kde.powerdevil.discretegpuhelper root)
+diff --git a/daemon/powerdevil_debug.cpp b/daemon/powerdevil_debug.cpp
+deleted file mode 100644
+index 86172c1b..00000000
+--- a/daemon/powerdevil_debug.cpp
++++ /dev/null
+@@ -1,21 +0,0 @@
+-/*  This file is part of the KDE project
+-    Copyright (C) 2014 Hrvoje Senjan <hrvoje.senjan@gmail.com>
+-
+-    This library is free software; you can redistribute it and/or
+-    modify it under the terms of the GNU Library General Public
+-    License as published by the Free Software Foundation; either
+-    version 2 of the License, or (at your option) any later version.
+-
+-    This library is distributed in the hope that it will be useful,
+-    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-    Library General Public License for more details.
+-
+-    You should have received a copy of the GNU Library General Public License
+-    along with this library; see the file COPYING.LIB.  If not, write to
+-    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+-    Boston, MA 02110-1301, USA.
+-*/
+-
+-#include "powerdevil_debug.h"
+-Q_LOGGING_CATEGORY(POWERDEVIL, "powerdevil")
+diff --git a/daemon/powerdevil_debug.h b/daemon/powerdevil_debug.h
+deleted file mode 100644
+index fcd9c10f..00000000
+--- a/daemon/powerdevil_debug.h
++++ /dev/null
+@@ -1,26 +0,0 @@
+-/*  This file is part of the KDE project
+-    Copyright (C) 2014 Hrvoje Senjan <hrvoje.senjan@gmail.com>
+-
+-    This library is free software; you can redistribute it and/or
+-    modify it under the terms of the GNU Library General Public
+-    License as published by the Free Software Foundation; either
+-    version 2 of the License, or (at your option) any later version.
+-
+-    This library is distributed in the hope that it will be useful,
+-    but WITHOUT ANY WARRANTY; without even the implied warranty of
+-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+-    Library General Public License for more details.
+-
+-    You should have received a copy of the GNU Library General Public License
+-    along with this library; see the file COPYING.LIB.  If not, write to
+-    the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+-    Boston, MA 02110-1301, USA.
+-*/
+-
+-#ifndef PROCESSCORE_DEBUG_H
+-#define PROCESSCORE_DEBUG_H
+-
+-#include <QLoggingCategory>
+-Q_DECLARE_LOGGING_CATEGORY(POWERDEVIL)
+-
+-#endif
+diff --git a/kcmodule/activities/CMakeLists.txt b/kcmodule/activities/CMakeLists.txt
+index 41a6da48..6e248e91 100644
+--- a/kcmodule/activities/CMakeLists.txt
++++ b/kcmodule/activities/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ add_definitions(-DTRANSLATION_DOMAIN=\"powerdevilactivitiesconfig\")
+ 
+ set( kcm_powerdevil_activities_SRCS
+-     ${PowerDevil_SOURCE_DIR}/daemon/powerdevil_debug.cpp
++     ${CMAKE_CURRENT_BINARY_DIR}/../../daemon/powerdevil_debug.cpp
+      activitypage.cpp
+      activitywidget.cpp
+      ../common/ErrorOverlay.cpp
+diff --git a/kcmodule/common/CMakeLists.txt b/kcmodule/common/CMakeLists.txt
+index ca483fa7..400b7746 100644
+--- a/kcmodule/common/CMakeLists.txt
++++ b/kcmodule/common/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ add_definitions(-DTRANSLATION_DOMAIN=\"libpowerdevilcommonconfig\")
+ 
+ set( powerdevil_config_common_private_SRCS
+-    ${PowerDevil_SOURCE_DIR}/daemon/powerdevil_debug.cpp
++    ${CMAKE_CURRENT_BINARY_DIR}/../../daemon/powerdevil_debug.cpp
+     actionconfigwidget.cpp
+     actioneditwidget.cpp
+     ErrorOverlay.cpp
+diff --git a/kcmodule/profiles/CMakeLists.txt b/kcmodule/profiles/CMakeLists.txt
+index ac5c96e0..32279089 100644
+--- a/kcmodule/profiles/CMakeLists.txt
++++ b/kcmodule/profiles/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ add_definitions(-DTRANSLATION_DOMAIN=\"powerdevilprofilesconfig\")
+ 
+ set( kcm_powerdevil_profiles_SRCS
+-     ${PowerDevil_SOURCE_DIR}/daemon/powerdevil_debug.cpp
++     ${CMAKE_CURRENT_BINARY_DIR}/../../daemon/powerdevil_debug.cpp
+      EditPage.cpp
+      ${PowerDevil_SOURCE_DIR}/daemon/powerdevilprofilegenerator.cpp
+ )
+diff --git a/powerdevil.categories b/powerdevil.categories
+new file mode 100644
+index 00000000..3147de54
+--- /dev/null
++++ b/powerdevil.categories
+@@ -0,0 +1 @@
++org.kde.powerdevil Powerdevil DEFAULT_SEVERITY [WARNING] IDENTIFIER [POWERDEVIL]
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix b/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix
index 4183b38ba493..8ae48b21f7be 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
 
   boost, fontconfig, ibus, libXcursor, libXft, libcanberra_kde, libpulseaudio,
@@ -12,7 +12,7 @@
   kdeclarative, kded, kdelibs4support, kemoticons, kglobalaccel, ki18n,
   kitemmodels, knewstuff, knotifications, knotifyconfig, kpeople, krunner,
   kscreenlocker, ksysguard, kwallet, kwin, phonon, plasma-framework,
-  plasma-workspace, xf86inputlibinput
+  plasma-workspace, qqc2-desktop-style, xf86inputlibinput
 }:
 
 mkDerivation {
@@ -27,10 +27,13 @@ mkDerivation {
     attica baloo kactivities kactivities-stats kauth kcmutils kdbusaddons
     kdeclarative kded kdelibs4support kemoticons kglobalaccel ki18n kitemmodels
     knewstuff knotifications knotifyconfig kpeople krunner kscreenlocker
-    ksysguard kwallet kwin plasma-framework plasma-workspace
+    ksysguard kwallet kwin plasma-framework plasma-workspace qqc2-desktop-style
   ];
 
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./hwclock-path.patch
+    ./tzdir.patch
+  ];
   postPatch = ''
     sed '1i#include <cmath>' -i kcms/touchpad/src/backends/x11/synapticstouchpad.cpp
   '';
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch b/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch
index a46212af10fb..6c04081ae29a 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch
+++ b/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/hwclock-path.patch
@@ -17,7 +17,7 @@ Index: plasma-desktop-5.8.5/kcms/dateandtime/helper.cpp
  
  void ClockHelper::toHwclock()
  {
--    QString hwclock = KStandardDirs::findExe(QStringLiteral("hwclock"), exePath);
+-    QString hwclock = QStandardPaths::findExecutable(QStringLiteral("hwclock"), exePath.split(QLatin1Char(':')));
 +    QString hwclock = QLatin1String(NIXPKGS_HWCLOCK);
      if (!hwclock.isEmpty()) {
          KProcess::execute(hwclock, QStringList() << QStringLiteral("--systohc"));
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/series b/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/series
deleted file mode 100644
index 26517ba93565..000000000000
--- a/nixpkgs/pkgs/desktops/plasma-5/plasma-desktop/series
+++ /dev/null
@@ -1,2 +0,0 @@
-hwclock-path.patch
-tzdir.patch
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-pa.nix b/nixpkgs/pkgs/desktops/plasma-5/plasma-pa.nix
index b60b5298d6db..e29df104f3c7 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/plasma-pa.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/plasma-pa.nix
@@ -1,15 +1,20 @@
 {
   mkDerivation,
   extra-cmake-modules, kdoctools,
-  gconf, glib, kconfigwidgets, kcoreaddons, kdeclarative, kglobalaccel, ki18n,
-  libcanberra-gtk3, libpulseaudio, plasma-framework, qtdeclarative, kwindowsystem
+  kconfigwidgets, kcoreaddons, kdeclarative, kglobalaccel, ki18n, kwindowsystem, plasma-framework,
+  qtdeclarative,
+  gconf, glib, libcanberra-gtk3, libpulseaudio, sound-theme-freedesktop
 }:
 
 mkDerivation {
   name = "plasma-pa";
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
-    gconf glib kconfigwidgets kcoreaddons kdeclarative kglobalaccel ki18n
-    libcanberra-gtk3 libpulseaudio plasma-framework qtdeclarative kwindowsystem
+    gconf glib libcanberra-gtk3 libpulseaudio sound-theme-freedesktop
+
+    kconfigwidgets kcoreaddons kdeclarative kglobalaccel ki18n plasma-framework
+    kwindowsystem
+
+    qtdeclarative
   ];
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch b/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
index d230e1270bea..120800926296 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
+++ b/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0001-startkde.patch
@@ -1,4 +1,4 @@
-From 1796822e4c97062b919a596ce13db68e2c46c7e8 Mon Sep 17 00:00:00 2001
+From 6477e377fcca39c07ef5f91a55084d7d74715d00 Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
 Date: Tue, 28 Jan 2020 05:00:53 -0600
 Subject: [PATCH 1/2] startkde
@@ -6,11 +6,11 @@ Subject: [PATCH 1/2] startkde
 ---
  startkde/startplasma-waylandsession.cpp |  2 +-
  startkde/startplasma-x11.cpp            |  2 +-
- startkde/startplasma.cpp                | 32 ++++++++-----------------
- 3 files changed, 12 insertions(+), 24 deletions(-)
+ startkde/startplasma.cpp                | 24 ++++++++++--------------
+ 3 files changed, 12 insertions(+), 16 deletions(-)
 
 diff --git a/startkde/startplasma-waylandsession.cpp b/startkde/startplasma-waylandsession.cpp
-index 87c71c6..5fc5314 100644
+index 87c71c6b3..5fc53140e 100644
 --- a/startkde/startplasma-waylandsession.cpp
 +++ b/startkde/startplasma-waylandsession.cpp
 @@ -67,7 +67,7 @@ int main(int /*argc*/, char** /*argv*/)
@@ -23,7 +23,7 @@ index 87c71c6..5fc5314 100644
      cleanupX11();
      out << "startplasma-waylandsession: Done.\n";
 diff --git a/startkde/startplasma-x11.cpp b/startkde/startplasma-x11.cpp
-index 3314b62..14cbe29 100644
+index 3314b6283..14cbe29fa 100644
 --- a/startkde/startplasma-x11.cpp
 +++ b/startkde/startplasma-x11.cpp
 @@ -111,7 +111,7 @@ int main(int /*argc*/, char** /*argv*/)
@@ -36,7 +36,7 @@ index 3314b62..14cbe29 100644
      cleanupPlasmaEnvironment();
      cleanupX11();
 diff --git a/startkde/startplasma.cpp b/startkde/startplasma.cpp
-index e0f7004..8ac41fd 100644
+index 4c9f5cef6..5ea4c2cf1 100644
 --- a/startkde/startplasma.cpp
 +++ b/startkde/startplasma.cpp
 @@ -34,7 +34,7 @@ QTextStream out(stderr);
@@ -48,22 +48,7 @@ index e0f7004..8ac41fd 100644
  }
  
  QStringList allServices(const QLatin1String& prefix)
-@@ -184,14 +184,6 @@ void runEnvironmentScripts()
-         }
-     }
-     sourceFiles(scripts);
--
--    // Make sure that the KDE prefix is first in XDG_DATA_DIRS and that it's set at all.
--    // The spec allows XDG_DATA_DIRS to be not set, but X session startup scripts tend
--    // to set it to a list of paths *not* including the KDE prefix if it's not /usr or
--    // /usr/local.
--    if (!qEnvironmentVariableIsSet("XDG_DATA_DIRS")) {
--        qputenv("XDG_DATA_DIRS", KDE_INSTALL_FULL_DATAROOTDIR ":/usr/share:/usr/local/share");
--    }
- }
- 
- 
-@@ -240,15 +232,15 @@ void setupX11()
+@@ -242,15 +242,15 @@ void setupX11()
  //     If the user has overwritten fonts, the cursor font may be different now
  //     so don't move this up.
  
@@ -84,7 +69,7 @@ index e0f7004..8ac41fd 100644
  }
  
  // TODO: Check if Necessary
-@@ -265,11 +257,7 @@ bool syncDBusEnvironment()
+@@ -267,11 +267,7 @@ bool syncDBusEnvironment()
  {
      int exitCode;
      // At this point all environment variables are set, let's send it to the DBus session server to update the activation environment
@@ -97,7 +82,7 @@ index e0f7004..8ac41fd 100644
      return exitCode == 0;
  }
  
-@@ -285,7 +273,7 @@ void setupFontDpi()
+@@ -287,7 +283,7 @@ void setupFontDpi()
      //TODO port to c++?
      const QByteArray input = "Xft.dpi: " + QByteArray::number(fontsCfg.readEntry("forceFontDPI", 0));
      QProcess p;
@@ -106,7 +91,7 @@ index e0f7004..8ac41fd 100644
      p.setProcessChannelMode(QProcess::ForwardedChannels);
      p.write(input);
      p.closeWriteChannel();
-@@ -307,7 +295,7 @@ QProcess* setupKSplash()
+@@ -309,7 +305,7 @@ QProcess* setupKSplash()
          KConfigGroup ksplashCfg = cfg.group("KSplash");
          if (ksplashCfg.readEntry("Engine", QStringLiteral("KSplashQML")) == QLatin1String("KSplashQML")) {
              p = new QProcess;
@@ -115,7 +100,7 @@ index e0f7004..8ac41fd 100644
          }
      }
      return p;
-@@ -329,7 +317,7 @@ bool startKDEInit()
+@@ -331,7 +327,7 @@ bool startKDEInit()
  {
      // We set LD_BIND_NOW to increase the efficiency of kdeinit.
      // kdeinit unsets this variable before loading applications.
@@ -125,5 +110,5 @@ index e0f7004..8ac41fd 100644
          messageBox(QStringLiteral("startkde: Could not start kdeinit5. Check your installation."));
          return false;
 -- 
-2.23.1
+2.25.1
 
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch b/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch
index 8fa9e1d31cff..366707d27034 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch
+++ b/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/0002-absolute-wallpaper-install-dir.patch
@@ -1,4 +1,4 @@
-From 7c6f939aea290bc3ec7629f26d02441d1d4bcb8a Mon Sep 17 00:00:00 2001
+From f43f15870f14b8fa17ba0765c0d7e2b225fafc3f Mon Sep 17 00:00:00 2001
 From: Thomas Tuegel <ttuegel@mailbox.org>
 Date: Wed, 5 Feb 2020 05:03:11 -0600
 Subject: [PATCH 2/2] absolute-wallpaper-install-dir
@@ -8,15 +8,16 @@ Subject: [PATCH 2/2] absolute-wallpaper-install-dir
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/sddm-theme/theme.conf.cmake b/sddm-theme/theme.conf.cmake
-index ea9a943..c8458ba 100644
+index 8494a5c8a..f723c1e1b 100644
 --- a/sddm-theme/theme.conf.cmake
 +++ b/sddm-theme/theme.conf.cmake
-@@ -2,4 +2,4 @@
+@@ -4,5 +4,5 @@ logo=${KDE_INSTALL_FULL_DATADIR}/sddm/themes/breeze/default-logo.svg
  type=image
  color=#1d99f3
  fontSize=10
--background=${CMAKE_INSTALL_PREFIX}/${WALLPAPER_INSTALL_DIR}/Next/contents/images/5120x2880.png
-+background=${NIXPKGS_BREEZE_WALLPAPERS}/Next/contents/images/5120x2880.png
+-background=${KDE_INSTALL_FULL_WALLPAPERDIR}/Next/contents/images/5120x2880.jpg
++background=${NIXPKGS_BREEZE_WALLPAPERS}/Next/contents/images/5120x2880.jpg
+ needsFullUserModel=false
 -- 
-2.23.1
+2.25.1
 
diff --git a/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/default.nix b/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/default.nix
index 6aa0e3b57382..8df146068cf2 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/default.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/plasma-workspace/default.nix
@@ -11,7 +11,8 @@
   kinit, kjsembed, knewstuff, knotifyconfig, kpackage, kpeople, krunner,
   kscreenlocker, ktexteditor, ktextwidgets, kwallet, kwayland, kwin,
   kxmlrpcclient, libkscreen, libksysguard, libqalculate, networkmanager-qt,
-  phonon, plasma-framework, prison, solid, kholidays,
+  phonon, plasma-framework, prison, solid, kholidays, kquickcharts,
+  appstream-qt,
 
   qtgraphicaleffects, qtquickcontrols, qtquickcontrols2, qtscript, qttools,
   qtwayland, qtx11extras,
@@ -31,7 +32,7 @@ mkDerivation {
     knotifyconfig kpackage kpeople krunner kscreenlocker ktexteditor
     ktextwidgets kwallet kwayland kwin kxmlrpcclient libkscreen libksysguard
     libqalculate networkmanager-qt phonon plasma-framework prison solid
-    kholidays
+    kholidays kquickcharts appstream-qt
 
     qtgraphicaleffects qtquickcontrols qtquickcontrols2 qtscript qtwayland qtx11extras
   ];
@@ -47,6 +48,10 @@ mkDerivation {
     ./0002-absolute-wallpaper-install-dir.patch
   ];
 
+  postPatch = ''
+    substituteInPlace wallpapers/image/wallpaper.knsrc.cmake \
+      --replace '@QtBinariesDir@/qdbus' ${getBin qttools}/bin/qdbus
+  '';
 
   NIX_CFLAGS_COMPILE = [
     ''-DNIXPKGS_XMESSAGE="${getBin xmessage}/bin/xmessage"''
diff --git a/nixpkgs/pkgs/desktops/plasma-5/powerdevil.nix b/nixpkgs/pkgs/desktops/plasma-5/powerdevil.nix
index e53e986060f7..979d69a02f61 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/powerdevil.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/powerdevil.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation,
+  mkDerivation, fetchpatch,
   extra-cmake-modules, kdoctools,
   bluez-qt, kactivities, kauth, kconfig, kdbusaddons, kdelibs4support,
   kglobalaccel, ki18n, kidletime, kio, knotifyconfig, kwayland, libkscreen,
@@ -18,4 +18,19 @@ mkDerivation {
   cmakeFlags = [
     "-DHAVE_DDCUTIL=On"
   ];
+  patches = [
+    # This fixes an issue where 'DDCA_Feature_List*' cannot be converted to
+    # 'DDCA_Feature_List'.
+    # https://bugs.kde.org/show_bug.cgi?id=423605
+    (fetchpatch {
+      url = "https://invent.kde.org/plasma/powerdevil/-/commit/fcb26be2fb279e6ad3b7b814d26a5921d16201eb.patch";
+      sha256 = "0gdyaa0nd1c1d6x2h0m933lascm8zm5sikd99wxmkf7hhaby6k2s";
+    })
+
+    # Reduce log message spam by setting the default log level to Warning.
+    (fetchpatch {
+      url = "https://invent.kde.org/plasma/powerdevil/-/commit/c7590f9065ec9547b7fabad77a548bbc0c693113.patch";
+      sha256 = "077whhi0jrb3bajx357k7n66hv7nchis8jix0nfc1zjvi9fm6pi2";
+    })
+  ];
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/srcs.nix b/nixpkgs/pkgs/desktops/plasma-5/srcs.nix
index fe78f210c17e..6f9214ccd60c 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/srcs.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/srcs.nix
@@ -1,374 +1,390 @@
 # DO NOT EDIT! This file is generated automatically.
-# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/desktops/plasma-5/
+# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/desktops/plasma-5
 { fetchurl, mirror }:
 
 {
   bluedevil = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/bluedevil-5.17.5.tar.xz";
-      sha256 = "22e9c683dfc56a559e652809ade238f8eb0ffb09d5ab042f5cd4b8216f647c09";
-      name = "bluedevil-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/bluedevil-5.18.5.tar.xz";
+      sha256 = "5350efbaee01c78fd451e96bb2aceb7986d45ab05500476d1e95c4e79ec89a66";
+      name = "bluedevil-5.18.5.tar.xz";
     };
   };
   breeze = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/breeze-5.17.5.tar.xz";
-      sha256 = "f89bf857321b18789089efc9271d7bd7b6459a173dd078dd03242775db76c8d7";
-      name = "breeze-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/breeze-5.18.5.tar.xz";
+      sha256 = "1d08dfd24df4a4fcacad1e3759e559e82f6014ba63dc75dc32a24de6cd133563";
+      name = "breeze-5.18.5.tar.xz";
     };
   };
   breeze-grub = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/breeze-grub-5.17.5.tar.xz";
-      sha256 = "591a1d7a510c76a1f2729a61a4d14c0f33db4d1e8ea5dbc87b74f2e7e7e2a2ba";
-      name = "breeze-grub-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/breeze-grub-5.18.5.tar.xz";
+      sha256 = "24c40171601b82d1c7d01eb85d16718a2f46cf23ee792f5524ac89fda3d278b1";
+      name = "breeze-grub-5.18.5.tar.xz";
     };
   };
   breeze-gtk = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/breeze-gtk-5.17.5.tar.xz";
-      sha256 = "6dbd8e7d936840fbaf7016574d07729c9d0791711ad6d371136585ddb8f76e66";
-      name = "breeze-gtk-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/breeze-gtk-5.18.5.tar.xz";
+      sha256 = "41c7e83a28c033903d4fcab3da28a4c74ddb72958e66693a2d2e451f716cb7e9";
+      name = "breeze-gtk-5.18.5.tar.xz";
     };
   };
   breeze-plymouth = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/breeze-plymouth-5.17.5.tar.xz";
-      sha256 = "e95f9eaf04e74383f5e1abe74d999787e408be7a34fd07a4f64e253e35150af0";
-      name = "breeze-plymouth-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/breeze-plymouth-5.18.5.tar.xz";
+      sha256 = "c0d48dc5a02f3236ff657f86ee8cf532cf885a0e8b36bfe79f007e4d5e277281";
+      name = "breeze-plymouth-5.18.5.tar.xz";
     };
   };
   discover = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/discover-5.17.5.tar.xz";
-      sha256 = "986ef367aef59c5a956d4163f987a60cfd3674a300880376ddedc0222769789f";
-      name = "discover-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/discover-5.18.5.tar.xz";
+      sha256 = "d5ce4f4668c50ba9be37e04227db4bbe469e00470c87907f1e217fdcad6e76b6";
+      name = "discover-5.18.5.tar.xz";
     };
   };
   drkonqi = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/drkonqi-5.17.5.tar.xz";
-      sha256 = "756c50f2458a8c564e608ea97244f6b2b3d5fb4a675a8cec29307be1d5ab5457";
-      name = "drkonqi-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/drkonqi-5.18.5.tar.xz";
+      sha256 = "b1a626c4ed2f9de8f8bc3359d8827e7fa6ac17486b8477674e47627fcf6efad1";
+      name = "drkonqi-5.18.5.tar.xz";
     };
   };
   kactivitymanagerd = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kactivitymanagerd-5.17.5.tar.xz";
-      sha256 = "362721c3a9712751fba29cd1f1ef440a1e74561a611f2d171692a4ddc895b3e4";
-      name = "kactivitymanagerd-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kactivitymanagerd-5.18.5.tar.xz";
+      sha256 = "24f32eb4585d427ee62e08a9fa2f057353085c62644d6bec8fb4b2568e507ac7";
+      name = "kactivitymanagerd-5.18.5.tar.xz";
     };
   };
   kde-cli-tools = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kde-cli-tools-5.17.5.tar.xz";
-      sha256 = "d14299ebeaf89854cb89435cfaaa4da1d84bf23a97df23ff8c7f95dae5bec55f";
-      name = "kde-cli-tools-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kde-cli-tools-5.18.5.tar.xz";
+      sha256 = "e3981d1a17111f4e284b787a6e841d7ff47f4fdbca0ad17e105c0a047e5aaaa8";
+      name = "kde-cli-tools-5.18.5.tar.xz";
     };
   };
   kdecoration = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kdecoration-5.17.5.tar.xz";
-      sha256 = "7d8f0128306d436aeba010e47a3dddbcb9fb9fd05ef9308cbad1934914875cd9";
-      name = "kdecoration-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kdecoration-5.18.5.tar.xz";
+      sha256 = "f09856245f2cb08d9013da4c3128b5438f1e2f58af40031eb547ae765f57a9c8";
+      name = "kdecoration-5.18.5.tar.xz";
     };
   };
   kde-gtk-config = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kde-gtk-config-5.17.5.tar.xz";
-      sha256 = "5feff23c756f1fb0ba9ab88c2aed92c0e7c5521c757f5a0cdd057273538f0010";
-      name = "kde-gtk-config-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kde-gtk-config-5.18.5.tar.xz";
+      sha256 = "9d7b1fd8b61f9f99c5a5721ea0227c4562588834a4886d66637f4c092f0e53ab";
+      name = "kde-gtk-config-5.18.5.tar.xz";
     };
   };
   kdeplasma-addons = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kdeplasma-addons-5.17.5.tar.xz";
-      sha256 = "997d6a3542ab1f1fd7fb17580693dc8281ff29b03c82577dbae3fc1ec4cccdb8";
-      name = "kdeplasma-addons-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kdeplasma-addons-5.18.5.tar.xz";
+      sha256 = "1d135a32a7442f79dba4cb4e23221cd2ad1aad36b54fb12bfa91918daf3ff53f";
+      name = "kdeplasma-addons-5.18.5.tar.xz";
     };
   };
   kgamma5 = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kgamma5-5.17.5.tar.xz";
-      sha256 = "3b8fd1539d035d4d39dcde6ca0dd214e6653c98778ac79b9cbf2f7009b155ca9";
-      name = "kgamma5-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kgamma5-5.18.5.tar.xz";
+      sha256 = "3aa89e361646214fb4910409644b941c83a85505d3d8a1d37984598d3e54269f";
+      name = "kgamma5-5.18.5.tar.xz";
     };
   };
   khotkeys = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/khotkeys-5.17.5.tar.xz";
-      sha256 = "cf78b5bfb8568fb4eea592b209bdb79aeac92bd08a580c3b6c08d45dd34a2d56";
-      name = "khotkeys-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/khotkeys-5.18.5.tar.xz";
+      sha256 = "8f02fdf3bbecdc31c305c276fe2b3b2eca6dc10195e65c723ee9148fed81e766";
+      name = "khotkeys-5.18.5.tar.xz";
     };
   };
   kinfocenter = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kinfocenter-5.17.5.tar.xz";
-      sha256 = "679870f10ee6494136d87a897a57a23c2905054d7a83ff11a4e85c204eb9fd9a";
-      name = "kinfocenter-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kinfocenter-5.18.5.tar.xz";
+      sha256 = "a9679bce4cd2d64e6f471c89de6da410237263b02512768f3acd0a4932b12ec5";
+      name = "kinfocenter-5.18.5.tar.xz";
     };
   };
   kmenuedit = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kmenuedit-5.17.5.tar.xz";
-      sha256 = "59beed03298cd9fd6b05d67844794ed6a77be0d1b25b55d5bbcdf72e15e357de";
-      name = "kmenuedit-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kmenuedit-5.18.5.tar.xz";
+      sha256 = "59d998972121662d2835d43ff5be36eca7bf62e66e39fd67b7005e8ef8afd5f6";
+      name = "kmenuedit-5.18.5.tar.xz";
     };
   };
   kscreen = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kscreen-5.17.5.tar.xz";
-      sha256 = "de8a00b33d0254245a53a5c097347aa86709d415754b3e3c675eef8fb4fe5bc0";
-      name = "kscreen-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kscreen-5.18.5.tar.xz";
+      sha256 = "9b6238447a4a38babdff482724ae3d33786b211e8b4224aaadafaad7435f6ba2";
+      name = "kscreen-5.18.5.tar.xz";
     };
   };
   kscreenlocker = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kscreenlocker-5.17.5.tar.xz";
-      sha256 = "078cfaa9f117a985f5c71152bdf4a9f5cb65ef23c0090cfaaccc9539770f138f";
-      name = "kscreenlocker-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kscreenlocker-5.18.5.tar.xz";
+      sha256 = "b4269cd027e1fee721760a22ca5d738d3d98622fa222fcf9e57d2da77a4e18d2";
+      name = "kscreenlocker-5.18.5.tar.xz";
     };
   };
   ksshaskpass = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/ksshaskpass-5.17.5.tar.xz";
-      sha256 = "b09e0d780340fc5a6a65e67a30d08a3f117f31e2dbfbb35579aa4cefb15c3b27";
-      name = "ksshaskpass-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/ksshaskpass-5.18.5.tar.xz";
+      sha256 = "c483c17d6ce2e3dffd54fc812f97b88c32f5def6e8c5e7a526e23f5e7f208cc5";
+      name = "ksshaskpass-5.18.5.tar.xz";
     };
   };
   ksysguard = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/ksysguard-5.17.5.tar.xz";
-      sha256 = "69bc12311dcf363b168a259139d30456ed395ec03b948bd35e992300c7e7bd82";
-      name = "ksysguard-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/ksysguard-5.18.5.tar.xz";
+      sha256 = "4acb352698b612a21a5eccf22042ab46265d50bbf3aa85844bbca762a64c9e2f";
+      name = "ksysguard-5.18.5.tar.xz";
     };
   };
   kwallet-pam = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kwallet-pam-5.17.5.tar.xz";
-      sha256 = "c829c7a44408e58beb87c71f5c70bccd349d285c3fcefb16df98bf2f29357fe9";
-      name = "kwallet-pam-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kwallet-pam-5.18.5.tar.xz";
+      sha256 = "bc4fe3dde503645d6233c3932d3cf74a7f5bf7acefb96bd6dbd224c8919d841a";
+      name = "kwallet-pam-5.18.5.tar.xz";
     };
   };
   kwayland-integration = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kwayland-integration-5.17.5.tar.xz";
-      sha256 = "818b4e14611e26f297ef60427d399edc458a44e113bc092390fa65ecababcedb";
-      name = "kwayland-integration-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kwayland-integration-5.18.5.tar.xz";
+      sha256 = "82d6943d79a9a2a9bce10623adb2c9af396a2dcf258a723bb349aafbde20e6d5";
+      name = "kwayland-integration-5.18.5.tar.xz";
     };
   };
   kwin = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kwin-5.17.5.tar.xz";
-      sha256 = "8517adaf8270d783aea7b3886d86b5abed6a5ec2b5c78b632479597d956baadc";
-      name = "kwin-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kwin-5.18.5.tar.xz";
+      sha256 = "ca39c63fd740432e95490031fd9d5ac003da034582014fa41c2be2b89627ddf8";
+      name = "kwin-5.18.5.tar.xz";
     };
   };
   kwrited = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/kwrited-5.17.5.tar.xz";
-      sha256 = "ca22b1fa3e657fa2e58bf0c9dc1ebff3be8c0e003750223e7a7c5932d5b90823";
-      name = "kwrited-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/kwrited-5.18.5.tar.xz";
+      sha256 = "45ffa31d3d141ce453fb09fd823d7edd8e6c782b353bce22b8c879ad794fd1fe";
+      name = "kwrited-5.18.5.tar.xz";
     };
   };
   libkscreen = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/libkscreen-5.17.5.tar.xz";
-      sha256 = "aa186e5751287701daec4d036aba776a911e4b84ca7eea44dc5fb531875afd94";
-      name = "libkscreen-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/libkscreen-5.18.5.tar.xz";
+      sha256 = "a962319000324200ec1abe3c58b1b8ab71ed4cc7c88a3c7e03a1c8eca86c287c";
+      name = "libkscreen-5.18.5.tar.xz";
     };
   };
   libksysguard = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/libksysguard-5.17.5.tar.xz";
-      sha256 = "f5d237af554d65740a28360e6d8fa39d4912239c5f21288846b1c934897a7e14";
-      name = "libksysguard-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/libksysguard-5.18.5.tar.xz";
+      sha256 = "d4d7030a2869a546a211844aa158dcef3598386cc035a8655529938ba102440b";
+      name = "libksysguard-5.18.5.tar.xz";
     };
   };
   milou = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/milou-5.17.5.tar.xz";
-      sha256 = "b89796e34cc8b6d6d4196169e814249f7b75c1c15763e0b4c1da5c97ccc2c8cf";
-      name = "milou-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/milou-5.18.5.tar.xz";
+      sha256 = "7ec763833c025aa719d1e25f3c5c1c8b6c934a48bf346517e94660e09d8582b2";
+      name = "milou-5.18.5.tar.xz";
     };
   };
   oxygen = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/oxygen-5.17.5.tar.xz";
-      sha256 = "58954374a4b9067365ee5d50b32b1986b2e7dd31e73cbf79fda8d978949943be";
-      name = "oxygen-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/oxygen-5.18.5.tar.xz";
+      sha256 = "479bdfa80b3f2216075470ab4be1e3159a17620870acf276144b9639134609f8";
+      name = "oxygen-5.18.5.tar.xz";
     };
   };
   plasma-browser-integration = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-browser-integration-5.17.5.tar.xz";
-      sha256 = "07bc4285991ab43830873a12b8c07f60e4faea1ec81121db783c425f18a4f87d";
-      name = "plasma-browser-integration-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-browser-integration-5.18.5.tar.xz";
+      sha256 = "3a087a836657b5304e2e0ef9ebefb84ce1f896bfbfc5dbf948d4b3eb7b709383";
+      name = "plasma-browser-integration-5.18.5.tar.xz";
     };
   };
   plasma-desktop = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-desktop-5.17.5.tar.xz";
-      sha256 = "7f741ab026989bdcc68701955fc290d5ead38bf4bc310f18a2f32c64b411ab04";
-      name = "plasma-desktop-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-desktop-5.18.5.tar.xz";
+      sha256 = "aeb106018fd90da79c8a3c444d880282846a842029b1223e7830db2d4b42df9f";
+      name = "plasma-desktop-5.18.5.tar.xz";
     };
   };
   plasma-integration = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-integration-5.17.5.tar.xz";
-      sha256 = "169206bebd790d2fee49cec621c46f6f64a8e20ee3e56bf16ee7373f61cad959";
-      name = "plasma-integration-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-integration-5.18.5.tar.xz";
+      sha256 = "c99b987efb2ab965cc2a55793ef94c7ccb2152ca5d75956a40ec99261ad4b870";
+      name = "plasma-integration-5.18.5.tar.xz";
+    };
+  };
+  plasma-nano = {
+    version = "5.18.5";
+    src = fetchurl {
+      url = "${mirror}/stable/plasma/5.18.5/plasma-nano-5.18.5.tar.xz";
+      sha256 = "d2f29b05894573517cb3336088e102d3604b1c2735e9bbe605119f559f0c6341";
+      name = "plasma-nano-5.18.5.tar.xz";
     };
   };
   plasma-nm = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-nm-5.17.5.tar.xz";
-      sha256 = "2165e47a0654d17735abc97aec287b46b52a2eafccc3591b667ea2755b731255";
-      name = "plasma-nm-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-nm-5.18.5.tar.xz";
+      sha256 = "1e091d01993708220f89501bb8a289279bf527d0593fd9e4b9223e6e8caf9aaa";
+      name = "plasma-nm-5.18.5.tar.xz";
     };
   };
   plasma-pa = {
-    version = "5.17.5";
+    version = "5.18.5";
+    src = fetchurl {
+      url = "${mirror}/stable/plasma/5.18.5/plasma-pa-5.18.5.tar.xz";
+      sha256 = "28765c07f584e7688a85c9761155e606440936de2ebb678917dac2c85f5d0209";
+      name = "plasma-pa-5.18.5.tar.xz";
+    };
+  };
+  plasma-phone-components = {
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-pa-5.17.5.tar.xz";
-      sha256 = "933c6ab1fda52b336a157a48b1ea64b81fd1d84ca08a40a52bfae276cca2bf23";
-      name = "plasma-pa-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-phone-components-5.18.5.tar.xz";
+      sha256 = "d0c091367ae07c71457a0c03d1023ac48d8665385a6a1b0e32f6ae7ad1fa7070";
+      name = "plasma-phone-components-5.18.5.tar.xz";
     };
   };
   plasma-sdk = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-sdk-5.17.5.tar.xz";
-      sha256 = "ff736029b1ae5773991db06f5827d9dcbd8e7a4e9a430c9014c35ddee2c55314";
-      name = "plasma-sdk-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-sdk-5.18.5.tar.xz";
+      sha256 = "5f399231d16d62f9880f953891477f74e0b1f7b931448a4b0fbb97f37acd2fe5";
+      name = "plasma-sdk-5.18.5.tar.xz";
     };
   };
   plasma-tests = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-tests-5.17.5.tar.xz";
-      sha256 = "1b566b7118a5c8d1b25078d331a6bc77f48781010fbd3425d85b137811218982";
-      name = "plasma-tests-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-tests-5.18.5.tar.xz";
+      sha256 = "3251ea30cb3c62de9bba2deb152370ea9e0e56b7506efd655888f1892c18413a";
+      name = "plasma-tests-5.18.5.tar.xz";
     };
   };
   plasma-thunderbolt = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-thunderbolt-5.17.5.tar.xz";
-      sha256 = "3743f9841d269d51f1b1419e24d5cd1b26a0ba5a90e76b531328a8cc43184382";
-      name = "plasma-thunderbolt-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-thunderbolt-5.18.5.tar.xz";
+      sha256 = "c61dc7abe350ead15ca4d6111606aaf19773c38a0307ae8a7d8a7c60b82be5d1";
+      name = "plasma-thunderbolt-5.18.5.tar.xz";
     };
   };
   plasma-vault = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-vault-5.17.5.tar.xz";
-      sha256 = "3e5c6b4dd6c1122b6a221205da506881959ab905e467b74b0536e7f5fe130d71";
-      name = "plasma-vault-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-vault-5.18.5.tar.xz";
+      sha256 = "cae2713823e8c59c7a2beb96d362a15024fe260cf10419ba037e8a798f3c1b41";
+      name = "plasma-vault-5.18.5.tar.xz";
     };
   };
   plasma-workspace = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-workspace-5.17.5.tar.xz";
-      sha256 = "764488e66d52bc3017efb2c1471f57196aa50fbfa3a80637bf48f24955cfba88";
-      name = "plasma-workspace-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-workspace-5.18.5.tar.xz";
+      sha256 = "14e82033be745f4db46a70d319e2c86012295ea31056092bc974004189b92354";
+      name = "plasma-workspace-5.18.5.tar.xz";
     };
   };
   plasma-workspace-wallpapers = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plasma-workspace-wallpapers-5.17.5.tar.xz";
-      sha256 = "8a28ef67b65c340d40ff8f5bfc333ead68e6d8c9e410769c43af847ced9b4ca9";
-      name = "plasma-workspace-wallpapers-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plasma-workspace-wallpapers-5.18.5.tar.xz";
+      sha256 = "f8da3bd7b97a9944639ed0860303b8a7a008905246313e1983367810a3a84d6d";
+      name = "plasma-workspace-wallpapers-5.18.5.tar.xz";
     };
   };
   plymouth-kcm = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/plymouth-kcm-5.17.5.tar.xz";
-      sha256 = "bbd6994f60ed9d63b4e4dd0abe78bf1f9c14b8ecce8ba4355d16cd52a0a86528";
-      name = "plymouth-kcm-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/plymouth-kcm-5.18.5.tar.xz";
+      sha256 = "e8f75dd8c8a45cd706a0a6e62826d1eb4fff9c3912cbaadba8c06e9de915d2e3";
+      name = "plymouth-kcm-5.18.5.tar.xz";
     };
   };
   polkit-kde-agent = {
-    version = "1-5.17.5";
+    version = "1-5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/polkit-kde-agent-1-5.17.5.tar.xz";
-      sha256 = "a79d76a2f584f6567639228fde6f75b3960484f7a65cfc69b6acb6df1de53f5d";
-      name = "polkit-kde-agent-1-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/polkit-kde-agent-1-5.18.5.tar.xz";
+      sha256 = "5e1733cb51c826c6215da4fbbc9c9568240275cf86b9922cd7a643d192a75a91";
+      name = "polkit-kde-agent-1-5.18.5.tar.xz";
     };
   };
   powerdevil = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/powerdevil-5.17.5.tar.xz";
-      sha256 = "27904361e85e1267d933d8f0a0d3be4dc712099ed2eb3cf90959209a4443dd82";
-      name = "powerdevil-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/powerdevil-5.18.5.tar.xz";
+      sha256 = "e000185ee61bff81fe28896a7d6353746c82c7f4d2626792fd22d34b5f49f548";
+      name = "powerdevil-5.18.5.tar.xz";
     };
   };
   sddm-kcm = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/sddm-kcm-5.17.5.tar.xz";
-      sha256 = "e85fb9e014439e8c0e73638112139561aff9a9f71f26c3eafedff5a98a07b33b";
-      name = "sddm-kcm-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/sddm-kcm-5.18.5.tar.xz";
+      sha256 = "cc99c185d701acc7442f33ef17b2396894dcf164f3f583c25105ac3f2528c33b";
+      name = "sddm-kcm-5.18.5.tar.xz";
     };
   };
   systemsettings = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/systemsettings-5.17.5.tar.xz";
-      sha256 = "50fa4d7866639995a6859446fc6a02a73ae05203e8f2ed31221e232ed3491eaf";
-      name = "systemsettings-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/systemsettings-5.18.5.tar.xz";
+      sha256 = "cde5b714261aaa54f937887657c3d3e74814c5447448b989159ee6035be4783b";
+      name = "systemsettings-5.18.5.tar.xz";
     };
   };
   user-manager = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/user-manager-5.17.5.tar.xz";
-      sha256 = "10ed3196063c7dfed3b3f25dd199a48ca39fa86db5d0126ec84a543b1c212f0d";
-      name = "user-manager-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/user-manager-5.18.5.tar.xz";
+      sha256 = "741d293947fa3fb3966f047bab121597bf1071be010684daff4a91626cf54484";
+      name = "user-manager-5.18.5.tar.xz";
     };
   };
   xdg-desktop-portal-kde = {
-    version = "5.17.5";
+    version = "5.18.5";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.17.5/xdg-desktop-portal-kde-5.17.5.tar.xz";
-      sha256 = "a993bd4b86a44c8237a3f4957c2594aa2ca8916204ad866f8af32f7df34740f6";
-      name = "xdg-desktop-portal-kde-5.17.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.18.5/xdg-desktop-portal-kde-5.18.5.tar.xz";
+      sha256 = "807452708a0318b8e21b43f9ec7e016d1de51cac5d8714d70c577bb6f3976224";
+      name = "xdg-desktop-portal-kde-5.18.5.tar.xz";
     };
   };
 }
diff --git a/nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix b/nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
index 1e04eb1e2b00..c03c6a891614 100644
--- a/nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
+++ b/nixpkgs/pkgs/desktops/plasma-5/xdg-desktop-portal-kde.nix
@@ -1,15 +1,18 @@
 {
   mkDerivation,
   extra-cmake-modules, gettext, kdoctools, python,
+  cups, epoxy, mesa, pcre, pipewire,
   kcoreaddons, knotifications, kwayland, kwidgetsaddons, kwindowsystem,
-  cups, pcre, pipewire, kio
+  kirigami2, kdeclarative, plasma-framework, kio
 }:
 
 mkDerivation {
   name = "xdg-desktop-portal-kde";
   nativeBuildInputs = [ extra-cmake-modules gettext kdoctools python ];
   buildInputs = [
-    cups pcre pipewire kio
-    kcoreaddons knotifications kwayland kwidgetsaddons kwindowsystem
+    cups epoxy mesa pcre pipewire
+
+    kio kcoreaddons knotifications kwayland kwidgetsaddons kwindowsystem
+    kirigami2 kdeclarative plasma-framework
   ];
 }
diff --git a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-volumed/default.nix b/nixpkgs/pkgs/desktops/xfce/applications/xfce4-volumed/default.nix
deleted file mode 100644
index aec898161ffb..000000000000
--- a/nixpkgs/pkgs/desktops/xfce/applications/xfce4-volumed/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, makeWrapper
-, gstreamer, gtk2, gst-plugins-base, libnotify
-, keybinder, xfconf, xfce
-}:
-
-let
-  category = "apps";
-
-  # The usual Gstreamer plugins package has a zillion dependencies
-  # that we don't need for a simple mixer, so build a minimal package.
-  gst_plugins_minimal = gst-plugins-base.override {
-    minimalDeps = true;
-  };
-
-in
-
-stdenv.mkDerivation rec {
-  pname  = "xfce4-volumed";
-  version = "0.1.13";
-
-  src = fetchurl {
-    url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "1aa0a1sbf9yzi7bc78kw044m0xzg1li3y4w9kf20wqv5kfjs7v2c";
-  };
-
-  buildInputs =
-    [ gstreamer gst_plugins_minimal gtk2
-      keybinder xfconf libnotify
-    ];
-
-  nativeBuildInputs = [ pkgconfig makeWrapper ];
-
-  postInstall =
-    ''
-      wrapProgram "$out/bin/xfce4-volumed" \
-        --prefix GST_PLUGIN_SYSTEM_PATH : "$GST_PLUGIN_SYSTEM_PATH"
-    '';
-
-  passthru.updateScript = xfce.updateScript {
-    inherit pname version;
-    attrPath = "xfce.${pname}";
-    versionLister = xfce.archiveLister category pname;
-  };
-
-  meta = with stdenv.lib; {
-    homepage = "https://www.xfce.org/projects/xfce4-volumed"; # referenced but inactive
-    description = "A volume keys control daemon for the Xfce desktop environment";
-    license = licenses.gpl3;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.abbradar ];
-  };
-}
diff --git a/nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix b/nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix
index 1a615b8f66a5..cb6f90e5b96e 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/tumbler/default.nix
@@ -14,9 +14,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "tumbler";
-  version = "0.2.8";
+  version = "0.2.9";
 
-  sha256 = "1y9sphaz3izal96v53lps692xxzp5pad1d09kxsmmpm7pic4n1r2";
+  sha256 = "0b3mli40msv35qn67c1m9rn5bigj6ls10l08qk7fa3fwvzl49hmw";
 
   buildInputs = [
     ffmpegthumbnailer
diff --git a/nixpkgs/pkgs/desktops/xfce/core/xfwm4/default.nix b/nixpkgs/pkgs/desktops/xfce/core/xfwm4/default.nix
index 1d119014cab6..7ab12461046b 100644
--- a/nixpkgs/pkgs/desktops/xfce/core/xfwm4/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/core/xfwm4/default.nix
@@ -5,9 +5,9 @@
 mkXfceDerivation {
   category = "xfce";
   pname = "xfwm4";
-  version = "4.14.2";
+  version = "4.14.5";
 
-  sha256 = "1zzc4q1j55hjljksmlyghk58bx7kxyq3scihsr9zgyqc24ww1ks3";
+  sha256 = "0xxprhs8g00ysrl25y6z9agih6wb7n29v5f5m2icaz7yjvj1k9iv";
 
   nativeBuildInputs = [ exo librsvg ];
 
diff --git a/nixpkgs/pkgs/desktops/xfce/default.nix b/nixpkgs/pkgs/desktops/xfce/default.nix
index 579e863bf9c8..09df8d79dca0 100644
--- a/nixpkgs/pkgs/desktops/xfce/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/default.nix
@@ -88,9 +88,6 @@ lib.makeScope pkgs.newScope (self: with self; {
 
   xfdashboard = callPackage ./applications/xfdashboard {};
 
-  # TODO: this repo is inactive for many years. Remove?
-  xfce4-volumed = callPackage ./applications/xfce4-volumed { };
-
   xfce4-volumed-pulse = callPackage ./applications/xfce4-volumed-pulse { };
 
   xfce4-notifyd = callPackage ./applications/xfce4-notifyd { };
@@ -175,7 +172,6 @@ lib.makeScope pkgs.newScope (self: with self; {
   xfce4notifyd = xfce4-notifyd;
   xfce4taskmanager = xfce4-taskmanager;
   xfce4terminal = xfce4-terminal;
-  xfce4volumed = xfce4-volumed;
   xfce4volumed_pulse = xfce4-volumed-pulse;
   xfce4icontheme = xfce4-icon-theme;
   xfwm4themes = xfwm4-themes;
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix
index 220e25068582..d8f612d1a81b 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-eyes-plugin.nix
@@ -6,11 +6,11 @@ in
 
 stdenv.mkDerivation rec {
   pname  = "xfce4-eyes-plugin";
-  version = "4.5.0";
+  version = "4.5.1";
 
   src = fetchurl {
     url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "17gj6fbvvrdzvz61czmia8hqynllsnmhk61fs4aml443cc1h1bpx";
+    sha256 = "1iaszzkagl1mb0cdafrvlfjnjklhhs9y90517par34sjiqbq1dsd";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix
index 00b497c918d8..e9cfbd50f912 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-timer-plugin.nix
@@ -6,11 +6,11 @@ in
 
 stdenv.mkDerivation rec {
   pname  = "xfce4-timer-plugin";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchurl {
     url = "mirror://xfce/src/${category}/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "16vypwwjwfk7nn4n16rfgn0z78jqrmbgxmc1r46269lrwd1m6kif";
+    sha256 = "1qr4m3n2l3rvsizsr3h7fyfajszfalqm7rhvjx2yjj8r3f8x4ljb";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
index 859a580bb70b..ac9f22a9a0cc 100644
--- a/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
+++ b/nixpkgs/pkgs/desktops/xfce/panel-plugins/xfce4-whiskermenu-plugin/default.nix
@@ -3,9 +3,9 @@
 mkXfceDerivation {
   category = "panel-plugins";
   pname = "xfce4-whiskermenu-plugin";
-  version = "2.4.4";
+  version = "2.4.6";
   rev-prefix = "v";
-  sha256 = "08b82j9xp3vzjlc740s9svcjkbsal71ggp23y7dvjqppch7sdxzw";
+  sha256 = "03asfaxqbhawzb3870az7qgid5y7cg3ip8h6r4z8kavcd0b7x4ii";
 
   nativeBuildInputs = [ cmake ];
 
diff --git a/nixpkgs/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix b/nixpkgs/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix
index 04420370ff1c..995789b8c1ba 100644
--- a/nixpkgs/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix
+++ b/nixpkgs/pkgs/development/androidndk-pkgs/androidndk-pkgs.nix
@@ -53,7 +53,9 @@ in
 
 rec {
   # Misc tools
-  binaries = runCommand "ndk-gcc-binutils" {
+  binaries = runCommand "ndk-toolchain-binutils" {
+    pname = "ndk-toolchain-binutils";
+    inherit (androidndk) version;
     isClang = true; # clang based cc, but bintools ld
     nativeBuildInputs = [ makeWrapper ];
     propagatedBuildInputs = [ androidndk ];
diff --git a/nixpkgs/pkgs/development/androidndk-pkgs/default.nix b/nixpkgs/pkgs/development/androidndk-pkgs/default.nix
index 7bb779d1d138..10819d49ed30 100644
--- a/nixpkgs/pkgs/development/androidndk-pkgs/default.nix
+++ b/nixpkgs/pkgs/development/androidndk-pkgs/default.nix
@@ -30,4 +30,34 @@
       androidndk = androidComposition.ndk-bundle;
       targetAndroidndkPkgs = targetPackages.androidndkPkgs_18b;
     };
+
+  "21" =
+    let
+      ndkVersion = "21.0.6113669";
+
+      buildAndroidComposition = buildPackages.buildPackages.androidenv.composeAndroidPackages {
+        includeNDK = true;
+        inherit ndkVersion;
+      };
+
+      androidComposition = androidenv.composeAndroidPackages {
+        includeNDK = true;
+        inherit ndkVersion;
+      };
+    in
+    import ./androidndk-pkgs.nix {
+      inherit (buildPackages)
+        makeWrapper;
+      inherit (pkgs)
+        stdenv
+        runCommand wrapBintoolsWith wrapCCWith;
+      # buildPackages.foo rather than buildPackages.buildPackages.foo would work,
+      # but for splicing messing up on infinite recursion for the variants we
+      # *dont't* use. Using this workaround, but also making a test to ensure
+      # these two really are the same.
+      buildAndroidndk = buildAndroidComposition.ndk-bundle;
+      androidndk = androidComposition.ndk-bundle;
+      targetAndroidndkPkgs = targetPackages.androidndkPkgs_21;
+    };
+
 }
diff --git a/nixpkgs/pkgs/development/arduino/arduino-cli/default.nix b/nixpkgs/pkgs/development/arduino/arduino-cli/default.nix
new file mode 100644
index 000000000000..1b1116a74b5d
--- /dev/null
+++ b/nixpkgs/pkgs/development/arduino/arduino-cli/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, buildGoModule, fetchFromGitHub, buildFHSUserEnv }:
+
+let
+
+  pkg = buildGoModule rec {
+    pname = "arduino-cli";
+    version = "0.12.1";
+
+    src = fetchFromGitHub {
+      owner = "arduino";
+      repo = pname;
+      rev = version;
+      sha256 = "1jlxs4szss2250zp8rz4bislgnzvqhxyp6z48dhx7zaam03hyf0w";
+    };
+
+    subPackages = [ "." ];
+
+    vendorSha256 = "03yj2iar63qm10fw3jh9fvz57c2sqcmngb0mj5jkhbnwf8nl7mhc";
+
+    doCheck = false;
+
+    buildFlagsArray = [
+      "-ldflags=-s -w -X github.com/arduino/arduino-cli/version.versionString=${version} -X github.com/arduino/arduino-cli/version.commit=unknown"
+    ] ++ stdenv.lib.optionals stdenv.isLinux [ "-extldflags '-static'" ];
+
+    meta = with stdenv.lib; {
+      inherit (src.meta) homepage;
+      description = "Arduino from the command line";
+      license = licenses.gpl3Only;
+      maintainers = with maintainers; [ ryantm ];
+    };
+
+  };
+
+# buildFHSUserEnv is needed because the arduino-cli downloads compiler
+# toolchains from the internet that have their interpreters pointed at
+# /lib64/ld-linux-x86-64.so.2
+in buildFHSUserEnv {
+  inherit (pkg) name meta;
+
+  runScript = "${pkg.outPath}/bin/arduino-cli";
+
+  extraInstallCommands = ''
+    mv $out/bin/$name $out/bin/arduino-cli
+  '';
+}
diff --git a/nixpkgs/pkgs/development/arduino/arduino-core/default.nix b/nixpkgs/pkgs/development/arduino/arduino-core/default.nix
index 2a7387c4378a..1c537edd0b42 100644
--- a/nixpkgs/pkgs/development/arduino/arduino-core/default.nix
+++ b/nixpkgs/pkgs/development/arduino/arduino-core/default.nix
@@ -68,13 +68,14 @@ let
     xorg.libXxf86vm
     zlib
   ];
-  teensy_architecture =
-    lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") "linux64"
-    + lib.optionalString (stdenv.hostPlatform.system == "i686-linux") "linux32"
-    + lib.optionalString (stdenv.hostPlatform.system == "aarch64-linux") "linuxaarch64"
-    + lib.optionalString (builtins.match "armv[67]l-linux" stdenv.hostPlatform.system != null) "linuxarm";
-  flavor = ( if withTeensyduino then "teensyduino" else "arduino")
-    + stdenv.lib.optionalString (!withGui) "-core";
+  teensy_architecture = if stdenv.hostPlatform.isx86_32 then "linux32"
+                        else if stdenv.hostPlatform.isx86_64 then "linux64"
+                        else if stdenv.hostPlatform.isAarch64 then "linuxaarch64"
+                        else if stdenv.hostPlatform.isAarch32 then "linuxarm"
+                        else throw "${stdenv.hostPlatform.system} is not supported in teensy";
+
+  flavor = (if withTeensyduino then "teensyduino" else "arduino")
+             + stdenv.lib.optionalString (!withGui) "-core";
 in
 stdenv.mkDerivation rec {
   version = "1.8.12";
@@ -90,28 +91,23 @@ stdenv.mkDerivation rec {
   teensyduino_version = "151";
   teensyduino_src = fetchurl {
     url = "https://www.pjrc.com/teensy/td_${teensyduino_version}/TeensyduinoInstall.${teensy_architecture}";
-    sha256 =
-      lib.optionalString (teensy_architecture == "linux64")
-        "0q8mw9bm2vb5vwa98gwcs6ad164i98hc1qqh2qw029yhwm599pn0"
-      + lib.optionalString (teensy_architecture == "linux32")
-        "1rq6sx0048ab200jy0cz5vznwxi99avidngj42rjnh7kcfas5c4m"
-      + lib.optionalString (teensy_architecture == "linuxaarch64")
-        "09k78dycn1vcpcx37c1dak8bgjv8gs34l89n9r9s0c3rqmv3pg4x"
-      + lib.optionalString (teensy_architecture == "linuxarm")
-        "19j55bq36040rpdpfxcqimda76rkbx137q15bs8nvxj13wrbl4ip";
+    sha256 = {
+      linux64 = "0q8mw9bm2vb5vwa98gwcs6ad164i98hc1qqh2qw029yhwm599pn0";
+      linux32 = "1rq6sx0048ab200jy0cz5vznwxi99avidngj42rjnh7kcfas5c4m";
+      linuxarm = "19j55bq36040rpdpfxcqimda76rkbx137q15bs8nvxj13wrbl4ip";
+      linuxaarch64 = "09k78dycn1vcpcx37c1dak8bgjv8gs34l89n9r9s0c3rqmv3pg4x";
+    }.${teensy_architecture} or (throw "No arduino binaries for ${teensy_architecture}");
   };
   # Used because teensyduino requires jars be a specific size
   arduino_dist_src = fetchurl {
     url = "http://downloads.arduino.cc/arduino-${version}-${teensy_architecture}.tar.xz";
     sha256 =
-      lib.optionalString (teensy_architecture == "linux64")
-        "128f34kkxz7ab6ir5mqyr8d1mgxig8f9jygwxy44pdnq2rk6gmh9"
-      + lib.optionalString (teensy_architecture == "linux32")
-        "11n85lwsn1w4ysfacyw08v85s3f3zvl8j8ac7rld19yxgjslvisi"
-      + lib.optionalString (teensy_architecture == "linuxaarch64")
-        "04v2nhyjhahml6nmz23bfb63c0an4a7zxgcgxqqq442i8vd304wa"
-      + lib.optionalString (teensy_architecture == "linuxarm")
-        "1k8yjivaydm6y16mplrjyblgx7l0wjzm3mjxh5saxrjq7drswmxx";
+      {
+        linux64 = "128f34kkxz7ab6ir5mqyr8d1mgxig8f9jygwxy44pdnq2rk6gmh9";
+        linux32 = "11n85lwsn1w4ysfacyw08v85s3f3zvl8j8ac7rld19yxgjslvisi";
+        linuxarm = "1k8yjivaydm6y16mplrjyblgx7l0wjzm3mjxh5saxrjq7drswmxx";
+        linuxaarch64 = "04v2nhyjhahml6nmz23bfb63c0an4a7zxgcgxqqq442i8vd304wa";
+      }.${teensy_architecture} or (throw "No arduino binaries for ${teensy_architecture}");
   };
 
 
diff --git a/nixpkgs/pkgs/development/arduino/platformio/chrootenv.nix b/nixpkgs/pkgs/development/arduino/platformio/chrootenv.nix
index 01a2fb873aa2..91300bda8f1c 100644
--- a/nixpkgs/pkgs/development/arduino/platformio/chrootenv.nix
+++ b/nixpkgs/pkgs/development/arduino/platformio/chrootenv.nix
@@ -1,4 +1,4 @@
-{ lib, buildFHSUserEnv }:
+{ lib, buildFHSUserEnv, fetchFromGitHub }:
 
 let
   pio-pkgs = pkgs:
@@ -19,6 +19,14 @@ let
       platformio
     ]);
 
+  src = fetchFromGitHub {
+    owner = "platformio";
+    repo = "platformio-core";
+    rev = "v5.0.1";
+    sha256 = "01xh61ldilg6fg95l1p870rld2xffhnl9f9ndvbi5jdn8q634pmw";
+  };
+
+
 in buildFHSUserEnv {
   name = "platformio";
 
@@ -34,7 +42,10 @@ in buildFHSUserEnv {
   };
 
   extraInstallCommands = ''
+    mkdir -p $out/lib/udev/rules.d
+
     ln -s $out/bin/platformio $out/bin/pio
+    ln -s ${src}/scripts/99-platformio-udev.rules $out/lib/udev/rules.d/99-platformio-udev.rules
   '';
 
   runScript = "platformio";
diff --git a/nixpkgs/pkgs/development/arduino/platformio/core.nix b/nixpkgs/pkgs/development/arduino/platformio/core.nix
index 0d333a49d37a..835e0c692e4b 100644
--- a/nixpkgs/pkgs/development/arduino/platformio/core.nix
+++ b/nixpkgs/pkgs/development/arduino/platformio/core.nix
@@ -9,33 +9,57 @@
 let
   args = lib.concatStringsSep " " ((map (e: "--deselect tests/${e}") [
     "commands/test_ci.py::test_ci_boards"
-    "commands/test_ci.py::test_ci_project_conf"
-    "commands/test_ci.py::test_ci_lib_and_board"
     "commands/test_ci.py::test_ci_build_dir"
     "commands/test_ci.py::test_ci_keep_build_dir"
-    "commands/test_init.py::test_init_enable_auto_uploading"
+    "commands/test_ci.py::test_ci_lib_and_board"
+    "commands/test_ci.py::test_ci_project_conf"
     "commands/test_init.py::test_init_custom_framework"
-    "commands/test_init.py::test_init_incorrect_board"
+    "commands/test_init.py::test_init_duplicated_boards"
+    "commands/test_init.py::test_init_enable_auto_uploading"
     "commands/test_init.py::test_init_ide_atom"
     "commands/test_init.py::test_init_ide_eclipse"
-    "commands/test_init.py::test_init_duplicated_boards"
+    "commands/test_init.py::test_init_ide_vscode"
+    "commands/test_init.py::test_init_incorrect_board"
     "commands/test_init.py::test_init_special_board"
-    "commands/test_lib.py::test_search"
-    "commands/test_lib.py::test_install_duplicates"
-    "commands/test_lib.py::test_global_lib_update_check"
-    "commands/test_lib.py::test_global_lib_update"
-    "commands/test_lib.py::test_global_lib_uninstall"
-    "commands/test_lib.py::test_lib_show"
-    "commands/test_lib.py::test_lib_stats"
-    "commands/test_lib.py::test_global_install_registry"
     "commands/test_lib.py::test_global_install_archive"
+    "commands/test_lib.py::test_global_install_registry"
     "commands/test_lib.py::test_global_install_repository"
     "commands/test_lib.py::test_global_lib_list"
+    "commands/test_lib.py::test_global_lib_uninstall"
+    "commands/test_lib.py::test_global_lib_update"
+    "commands/test_lib.py::test_global_lib_update_check"
+    "commands/test_lib.py::test_install_duplicates"
+    "commands/test_lib.py::test_lib_show"
+    "commands/test_lib.py::test_lib_stats"
+    "commands/test_lib.py::test_saving_deps"
+    "commands/test_lib.py::test_search"
+    "commands/test_lib.py::test_update"
+    "commands/test_lib_complex.py::test_global_install_archive"
+    "commands/test_lib_complex.py::test_global_install_registry"
+    "commands/test_lib_complex.py::test_global_install_repository"
+    "commands/test_lib_complex.py::test_global_lib_list"
+    "commands/test_lib_complex.py::test_global_lib_uninstall"
+    "commands/test_lib_complex.py::test_global_lib_update"
+    "commands/test_lib_complex.py::test_global_lib_update_check"
+    "commands/test_lib_complex.py::test_install_duplicates"
+    "commands/test_lib_complex.py::test_lib_show"
+    "commands/test_lib_complex.py::test_lib_stats"
+    "commands/test_lib_complex.py::test_search"
     "commands/test_test.py::test_local_env"
+    "commands/test_test.py::test_multiple_env_build"
+    "commands/test_test.py::test_setup_teardown_are_compilable"
+    "package/test_manager.py::test_download"
+    "package/test_manager.py::test_install_force"
+    "package/test_manager.py::test_install_from_registry"
+    "package/test_manager.py::test_install_lib_depndencies"
+    "package/test_manager.py::test_registry"
+    "package/test_manager.py::test_uninstall"
+    "package/test_manager.py::test_update_with_metadata"
+    "package/test_manager.py::test_update_without_metadata"
     "test_builder.py::test_build_flags"
     "test_builder.py::test_build_unflags"
-    "test_builder.py::test_debug_default_build_flags"
     "test_builder.py::test_debug_custom_build_flags"
+    "test_builder.py::test_debug_default_build_flags"
     "test_misc.py::test_api_cache"
     "test_misc.py::test_ping_internet_ips"
     "test_misc.py::test_platformio_cli"
@@ -51,14 +75,14 @@ let
 
 in buildPythonApplication rec {
   pname = "platformio";
-  version = "4.3.1";
+  version = "5.0.1";
 
   # pypi tarballs don't contain tests - https://github.com/platformio/platformio-core/issues/1964
   src = fetchFromGitHub {
     owner = "platformio";
     repo = "platformio-core";
     rev = "v${version}";
-    sha256 = "1dxnjy60zpkgyrbvbf6b9qi6m37gm8gwjmxwfj30npr1y7rvxwrw";
+    sha256 = "01xh61ldilg6fg95l1p870rld2xffhnl9f9ndvbi5jdn8q634pmw";
   };
 
   propagatedBuildInputs =  [
@@ -82,6 +106,7 @@ in buildPythonApplication rec {
   patches = [
     ./fix-searchpath.patch
     ./use-local-spdx-license-list.patch
+    ./missing-udev-rules-nixos.patch
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/arduino/platformio/missing-udev-rules-nixos.patch b/nixpkgs/pkgs/development/arduino/platformio/missing-udev-rules-nixos.patch
new file mode 100644
index 000000000000..36af82245c53
--- /dev/null
+++ b/nixpkgs/pkgs/development/arduino/platformio/missing-udev-rules-nixos.patch
@@ -0,0 +1,12 @@
+diff --git a/platformio/exception.py b/platformio/exception.py
+index ef1d3bab..445174fc 100644
+--- a/platformio/exception.py
++++ b/platformio/exception.py
+@@ -57,6 +57,7 @@ class MissedUdevRules(InvalidUdevRules):
+     MESSAGE = (
+         "Warning! Please install `99-platformio-udev.rules`. \nMore details: "
+         "https://docs.platformio.org/page/faq.html#platformio-udev-rules"
++        "On NixOS add the platformio package to services.udev.packages"
+     )
+ 
+ 
diff --git a/nixpkgs/pkgs/development/arduino/platformio/use-local-spdx-license-list.patch b/nixpkgs/pkgs/development/arduino/platformio/use-local-spdx-license-list.patch
index 16294a4d6cd6..511d81c3b012 100644
--- a/nixpkgs/pkgs/development/arduino/platformio/use-local-spdx-license-list.patch
+++ b/nixpkgs/pkgs/development/arduino/platformio/use-local-spdx-license-list.patch
@@ -1,16 +1,11 @@
 diff --git a/platformio/package/manifest/schema.py b/platformio/package/manifest/schema.py
-index be49b3ee..d1390a88 100644
+index f293ba5a..a818271f 100644
 --- a/platformio/package/manifest/schema.py
 +++ b/platformio/package/manifest/schema.py
-@@ -240,9 +240,5 @@ class ManifestSchema(BaseSchema):
+@@ -252,5 +252,4 @@ class ManifestSchema(BaseSchema):
      @staticmethod
      @memoized(expire="1h")
      def load_spdx_licenses():
--        r = requests.get(
--            "https://raw.githubusercontent.com/spdx/license-list-data"
--            "/v3.8/json/licenses.json"
--        )
--        r.raise_for_status()
--        return r.json()
-+        import json
+-        spdx_data_url = "https://dl.bintray.com/platformio/dl-misc/spdx-licenses-3.json"
+-        return json.loads(fetch_remote_content(spdx_data_url))
 +        return json.load(open("@SPDX_LICENSE_LIST_DATA@/json/licenses.json"))
diff --git a/nixpkgs/pkgs/development/beam-modules/default.nix b/nixpkgs/pkgs/development/beam-modules/default.nix
index efd68988c9b2..7fbec79cbd46 100644
--- a/nixpkgs/pkgs/development/beam-modules/default.nix
+++ b/nixpkgs/pkgs/development/beam-modules/default.nix
@@ -39,27 +39,22 @@ let
         elixir = elixir_1_10;
 
         elixir_1_10 = lib.callElixir ../interpreters/elixir/1.10.nix {
-          inherit rebar erlang;
+          inherit erlang;
           debugInfo = true;
         };
 
         elixir_1_9 = lib.callElixir ../interpreters/elixir/1.9.nix {
-          inherit rebar erlang;
+          inherit erlang;
           debugInfo = true;
         };
 
         elixir_1_8 = lib.callElixir ../interpreters/elixir/1.8.nix {
-          inherit rebar erlang;
+          inherit erlang;
           debugInfo = true;
         };
 
         elixir_1_7 = lib.callElixir ../interpreters/elixir/1.7.nix {
-          inherit rebar erlang;
-          debugInfo = true;
-        };
-
-        elixir_1_6 = lib.callElixir ../interpreters/elixir/1.6.nix {
-          inherit rebar erlang;
+          inherit erlang;
           debugInfo = true;
         };
 
diff --git a/nixpkgs/pkgs/development/chez-modules/chez-mit/default.nix b/nixpkgs/pkgs/development/chez-modules/chez-mit/default.nix
index fc2c0f7ba4f1..63d6ef2c676f 100644
--- a/nixpkgs/pkgs/development/chez-modules/chez-mit/default.nix
+++ b/nixpkgs/pkgs/development/chez-modules/chez-mit/default.nix
@@ -13,7 +13,6 @@ stdenv.mkDerivation {
   buildInputs = [ chez chez-srfi ];
 
   buildPhase = ''
-    export CHEZSCHEMELIBDIRS=${chez-srfi}/lib/csv9.5-site
     make PREFIX=$out CHEZ=${chez}/bin/scheme
   '';
 
diff --git a/nixpkgs/pkgs/development/chez-modules/chez-scmutils/default.nix b/nixpkgs/pkgs/development/chez-modules/chez-scmutils/default.nix
index 861ff4ff46b7..19fe43da49eb 100644
--- a/nixpkgs/pkgs/development/chez-modules/chez-scmutils/default.nix
+++ b/nixpkgs/pkgs/development/chez-modules/chez-scmutils/default.nix
@@ -13,7 +13,6 @@ stdenv.mkDerivation {
   buildInputs = [ chez chez-srfi chez-mit ];
 
   buildPhase = ''
-    export CHEZSCHEMELIBDIRS=${chez-srfi}/lib/csv9.5-site:${chez-mit}/lib/csv9.5-site
     make PREFIX=$out CHEZ=${chez}/bin/scheme
   '';
 
diff --git a/nixpkgs/pkgs/development/compilers/abcl/default.nix b/nixpkgs/pkgs/development/compilers/abcl/default.nix
index 543ba6036e4a..edcf722f2553 100644
--- a/nixpkgs/pkgs/development/compilers/abcl/default.nix
+++ b/nixpkgs/pkgs/development/compilers/abcl/default.nix
@@ -1,11 +1,11 @@
 {stdenv, fetchurl, ant, jre, jdk}:
 stdenv.mkDerivation rec {
   pname = "abcl";
-  version = "1.7.0";
+  version = "1.7.1";
   # or fetchFromGitHub(owner,repo,rev) or fetchgit(rev)
   src = fetchurl {
     url = "https://common-lisp.net/project/armedbear/releases/${version}/${pname}-src-${version}.tar.gz";
-    sha256 = "0pbn5s22zygk6k0rzjc9g76220628lj1b3057gr0n4grl11p4lx5";
+    sha256 = "09wjcjvriagml740krg9nva5v6bsc3sav86dmb55pjvfpsr1846m";
   };
   configurePhase = ''
     mkdir nix-tools
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/sources.json b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/sources.json
index 80a16465af25..41e7a8eac7df 100644
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/sources.json
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-bin/sources.json
@@ -5,39 +5,45 @@
         "hotspot": {
           "aarch64": {
             "build": "10",
-            "sha256": "04b77f6754aed68528f39750c5cfd6a439190206aff216aa081d62a0e1a794fa",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.6_10.tar.gz",
-            "version": "11.0.6"
+            "sha256": "3b8b8bba6a0472ec7de5271cbf67f11e6ab525de6dd5d4729300375f1d56b7a1",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_aarch64_linux_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
           },
           "armv6l": {
             "build": "10",
-            "sha256": "ab5b76203e54fe7a5221535f6f407efa43153de029a746f60af3cffb7cb5080b",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jdk_arm_linux_hotspot_11.0.6_10.tar.gz",
-            "version": "11.0.6"
+            "sha256": "45c235af67498f87e3dc99642771e57547cf226335eaee8a55d195173e66a2e9",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_arm_linux_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
           },
           "armv7l": {
             "build": "10",
-            "sha256": "ab5b76203e54fe7a5221535f6f407efa43153de029a746f60af3cffb7cb5080b",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jdk_arm_linux_hotspot_11.0.6_10.tar.gz",
-            "version": "11.0.6"
+            "sha256": "45c235af67498f87e3dc99642771e57547cf226335eaee8a55d195173e66a2e9",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_arm_linux_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
           },
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
             "build": "10",
-            "sha256": "330d19a2eaa07ed02757d7a785a77bab49f5ee710ea03b4ee2fa220ddd0feffc",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jdk_x64_linux_hotspot_11.0.6_10.tar.gz",
-            "version": "11.0.6"
+            "sha256": "ee60304d782c9d5654bf1a6b3f38c683921c1711045e1db94525a51b7024a2ca",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_x64_linux_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
           }
         },
         "openj9": {
+          "aarch64": {
+            "build": "10",
+            "sha256": "0be01fdcae330e26c489d8d0d0c98c535a2af8cbd0cdcda211776ab9fcd05086",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10_openj9-0.20.0/OpenJDK11U-jdk_aarch64_linux_openj9_11.0.7_10_openj9-0.20.0.tar.gz",
+            "version": "11.0.7"
+          },
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
             "build": "10",
-            "sha256": "1530172ee98edd129954fcdca1bf725f7b30c8bfc3cdc381c88de96b7d19e690",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10_openj9-0.18.1/OpenJDK11U-jdk_x64_linux_openj9_11.0.6_10_openj9-0.18.1.tar.gz",
-            "version": "11.0.6"
+            "sha256": "526e89f3014fec473b24c10c2464c1343e23703114983fd171b68b1599bba561",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10_openj9-0.20.0/OpenJDK11U-jdk_x64_linux_openj9_11.0.7_10_openj9-0.20.0.tar.gz",
+            "version": "11.0.7"
           }
         }
       },
@@ -45,27 +51,45 @@
         "hotspot": {
           "aarch64": {
             "build": "10",
-            "sha256": "7ed04ed9ed7271528e7f03490f1fd7dfbbc2d391414bd6fe4dd80ec3bad76d30",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jre_aarch64_linux_hotspot_11.0.6_10.tar.gz",
-            "version": "11.0.6"
+            "sha256": "cfe504e9e9621b831a5cfd800a2005dafe90a1d11aa14ee35d7b674d68685698",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jre_aarch64_linux_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
+          },
+          "armv6l": {
+            "build": "10",
+            "sha256": "581bae8efcaa40e209a780baa6f96b7c8c9397965bc6d54533f4fd8599d5c742",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jre_arm_linux_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
+          },
+          "armv7l": {
+            "build": "10",
+            "sha256": "581bae8efcaa40e209a780baa6f96b7c8c9397965bc6d54533f4fd8599d5c742",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jre_arm_linux_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
           },
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
             "build": "10",
-            "sha256": "c5a4e69e2be0e3e5f5bb7c759960b20650967d0f571baad4a7f15b2c03bda352",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jre_x64_linux_hotspot_11.0.6_10.tar.gz",
-            "version": "11.0.6"
+            "sha256": "74b493dd8a884dcbee29682ead51b182d9d3e52b40c3d4cbb3167c2fd0063503",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jre_x64_linux_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
           }
         },
         "openj9": {
+          "aarch64": {
+            "build": "10",
+            "sha256": "37ae26443abb02d2ab041eced9be948f0d20db03183aaf3c159ef682eeeabf9b",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10_openj9-0.20.0/OpenJDK11U-jre_aarch64_linux_openj9_11.0.7_10_openj9-0.20.0.tar.gz",
+            "version": "11.0.7"
+          },
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
             "build": "10",
-            "sha256": "056e4b5f7166f5daa44f36b06c735913bda52831d2e77fa2ac371505c66d10c1",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10_openj9-0.18.1/OpenJDK11U-jre_x64_linux_openj9_11.0.6_10_openj9-0.18.1.tar.gz",
-            "version": "11.0.6"
+            "sha256": "08258a767a6953bde21d15ef3c08e776d83257afa4acc52b55c70e1ac02f0489",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10_openj9-0.20.0/OpenJDK11U-jre_x64_linux_openj9_11.0.7_10_openj9-0.20.0.tar.gz",
+            "version": "11.0.7"
           }
         }
       }
@@ -77,9 +101,9 @@
           "vmType": "hotspot",
           "x86_64": {
             "build": "10",
-            "sha256": "b87102274d983bf6bb0aa6c2c623301d0ff5eb7f61043ffd04abb00f962c2dcd",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jdk_x64_mac_hotspot_11.0.6_10.tar.gz",
-            "version": "11.0.6"
+            "sha256": "0ab1e15e8bd1916423960e91b932d2b17f4c15b02dbdf9fa30e9423280d9e5cc",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_x64_mac_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
           }
         },
         "openj9": {
@@ -87,9 +111,9 @@
           "vmType": "openj9",
           "x86_64": {
             "build": "10",
-            "sha256": "9a5c5b3bb51a82e666c46b2d1bbafa8c2bbc3aae50194858c8f96c5d43a96f64",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10_openj9-0.18.1/OpenJDK11U-jdk_x64_mac_openj9_11.0.6_10_openj9-0.18.1.tar.gz",
-            "version": "11.0.6"
+            "sha256": "a0de749c37802cc233ac58ffde68191a4dc985c71b626e7c0ff53944f743427f",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10.2_openj9-0.20.0/OpenJDK11U-jdk_x64_mac_openj9_11.0.7_10_openj9-0.20.0.tar.gz",
+            "version": "11.0.7"
           }
         }
       },
@@ -99,9 +123,9 @@
           "vmType": "hotspot",
           "x86_64": {
             "build": "10",
-            "sha256": "ab3c2038a32c62843500109d2efb8f5dacdfa1de3cbb713c8226f26dc603cc33",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10/OpenJDK11U-jre_x64_mac_hotspot_11.0.6_10.tar.gz",
-            "version": "11.0.6"
+            "sha256": "931a81f4bed38c48b364db57d4ebdd6e4b4ea1466e9bd0eaf8e0f1e47c4569e9",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jre_x64_mac_hotspot_11.0.7_10.tar.gz",
+            "version": "11.0.7"
           }
         },
         "openj9": {
@@ -109,9 +133,9 @@
           "vmType": "openj9",
           "x86_64": {
             "build": "10",
-            "sha256": "130850133d9701393352c2ce13ab541b4f900ff1f5ddf8257cda624968aada9f",
-            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.6%2B10_openj9-0.18.1/OpenJDK11U-jre_x64_mac_openj9_11.0.6_10_openj9-0.18.1.tar.gz",
-            "version": "11.0.6"
+            "sha256": "0941d739e3230d1d83dc1ee54cff6d17d90331e4f275d00739cb78fba41c5b96",
+            "url": "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10.2_openj9-0.20.0/OpenJDK11U-jre_x64_mac_openj9_11.0.7_10_openj9-0.20.0.tar.gz",
+            "version": "11.0.7"
           }
         }
       }
@@ -122,68 +146,68 @@
       "jdk": {
         "hotspot": {
           "aarch64": {
-            "build": "33",
-            "sha256": "74f4110333ac4239564ed864b1d7d69b7af32af39efcfbde9816e1486cb5ae07",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jdk_aarch64_linux_hotspot_13_33.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "sha256": "0e6081cb51f8a6f3062bef4f4c45dbe1fccfd3f3b4b5d52522a3edb76581e3af",
+            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_aarch64_linux_hotspot_13.0.2_8.tar.gz",
+            "version": "13.0.2"
           },
           "armv6l": {
-            "build": "33",
-            "sha256": "477e1b8d26a220d6d570765e9e0a4a34dbb489fab63a420d0859d173efc59adb",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jdk_arm_linux_hotspot_13_33.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "sha256": "9beec080f2b2a7f6883b024272f4e8d5a0b027325e83647be318215781af1d1a",
+            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_arm_linux_hotspot_13.0.2_8.tar.gz",
+            "version": "13.0.2"
           },
           "armv7l": {
-            "build": "33",
-            "sha256": "477e1b8d26a220d6d570765e9e0a4a34dbb489fab63a420d0859d173efc59adb",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jdk_arm_linux_hotspot_13_33.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "sha256": "9beec080f2b2a7f6883b024272f4e8d5a0b027325e83647be318215781af1d1a",
+            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_arm_linux_hotspot_13.0.2_8.tar.gz",
+            "version": "13.0.2"
           },
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "33",
-            "sha256": "e562caeffa89c834a69a44242d802eae3523875e427f07c05b1902c152638368",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jdk_x64_linux_hotspot_13_33.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "sha256": "9ccc063569f19899fd08e41466f8c4cd4e05058abdb5178fa374cb365dcf5998",
+            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_x64_linux_hotspot_13.0.2_8.tar.gz",
+            "version": "13.0.2"
           }
         },
         "openj9": {
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "33",
-            "sha256": "68ebab0021c719694be8fc868478725a69c5c515cdb62e2933eefe87ba6437df",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33_openj9-0.16.0/OpenJDK13U-jdk_x64_linux_openj9_13_33_openj9-0.16.0.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "sha256": "aeecf6d30d0c847db81d07793cf97e5dc44890c29366d7d9f8f9f397f6c52590",
+            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jdk_x64_linux_openj9_13.0.2_8_openj9-0.18.0.tar.gz",
+            "version": "13.0.2"
           }
         }
       },
       "jre": {
         "hotspot": {
           "aarch64": {
-            "build": "33",
-            "sha256": "2365b7fbba8d9125fb091933aad9f38f8cc1fbb0217cdec9ec75d2000f6d451a",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jre_aarch64_linux_hotspot_13_33.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "sha256": "6c4b69d1609f4c65c576c80d6aa101de80048f8ce5566f890e8fff5349228bae",
+            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jre_aarch64_linux_hotspot_13.0.2_8.tar.gz",
+            "version": "13.0.2"
           },
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "33",
-            "sha256": "73800a0d7c4e81df408a8518d282aa2c001ce4ee15541574c639dfc3564f708f",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jre_x64_linux_hotspot_13_33.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "sha256": "897f16fe8e056395209e35d2384013bd1ff250e717465769079e3f4793628c34",
+            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jre_x64_linux_hotspot_13.0.2_8.tar.gz",
+            "version": "13.0.2"
           }
         },
         "openj9": {
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "33",
-            "sha256": "2ee59be5062a81daa7be85be161cab6b245f9a2e2cbd4769ae9edefaac41e31d",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33_openj9-0.16.0/OpenJDK13U-jre_x64_linux_openj9_13_33_openj9-0.16.0.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "sha256": "a0ab38607811e282f64082edc68a2dea3fa6a5113391efb124a6d7d02883110a",
+            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jre_x64_linux_openj9_13.0.2_8_openj9-0.18.0.tar.gz",
+            "version": "13.0.2"
           }
         }
       }
@@ -194,20 +218,20 @@
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "33",
-            "sha256": "f948be96daba250b6695e22cb51372d2ba3060e4d778dd09c89548889783099f",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jdk_x64_mac_hotspot_13_33.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "sha256": "0ddb24efdf5aab541898d19b7667b149a1a64a8bd039b708fc58ee0284fa7e07",
+            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jdk_x64_mac_hotspot_13.0.2_8.tar.gz",
+            "version": "13.0.2"
           }
         },
         "openj9": {
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "33",
-            "sha256": "583e0defd5c062550896ead7cac383be16f1a81d9b6492dfec26da9af5dcc1c0",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33_openj9-0.16.0/OpenJDK13U-jdk_x64_mac_openj9_13_33_openj9-0.16.0.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "sha256": "dd8d92eec98a3455ec5cd065a0a6672cc1aef280c6a68c507c372ccc1d98fbaa",
+            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jdk_x64_mac_openj9_13.0.2_8_openj9-0.18.0.tar.gz",
+            "version": "13.0.2"
           }
         }
       },
@@ -216,20 +240,20 @@
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "33",
-            "sha256": "1c23efba7908de9a611a98e755602f45381a8f7c957adb3fc4012ab1369a352c",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33/OpenJDK13U-jre_x64_mac_hotspot_13_33.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "sha256": "3149b9ebf0db1eaf2dc152df9efae82003e7971efb1cf550060e6a4798fe8c5c",
+            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8/OpenJDK13U-jre_x64_mac_hotspot_13.0.2_8.tar.gz",
+            "version": "13.0.2"
           }
         },
         "openj9": {
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "33",
-            "sha256": "33a60b78138d50cb02325156c7d1fcf588697749a4401f6c11a3cbefa3033127",
-            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13%2B33_openj9-0.16.0/OpenJDK13U-jre_x64_mac_openj9_13_33_openj9-0.16.0.tar.gz",
-            "version": "13.0.0"
+            "build": "8",
+            "sha256": "6a8a636fca4c7e368241e232a37cd73c9867cdec8f0869fd158b1f58c6128cc2",
+            "url": "https://github.com/AdoptOpenJDK/openjdk13-binaries/releases/download/jdk-13.0.2%2B8_openj9-0.18.0/OpenJDK13U-jre_x64_mac_openj9_13.0.2_8_openj9-0.18.0.tar.gz",
+            "version": "13.0.2"
           }
         }
       }
@@ -241,51 +265,39 @@
         "hotspot": {
           "aarch64": {
             "build": "9",
-            "sha256": "35799a2fd4b467115aff1bc3a54853b5131ba9068e53e1ab0fbe5521a3f2ba83",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jdk_aarch64_linux_hotspot_8u232b09.tar.gz",
-            "version": "8.0.232"
+            "sha256": "536bf397d98174b376da9ed49d2f659d65c7310318d8211444f4b7ba7c15e453",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_aarch64_linux_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           },
           "armv6l": {
             "build": "9",
-            "sha256": "fdd9f61f1b2df74242da54ee3b3231b0123782a917e9673351276da439c7cab1",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jdk_arm_linux_hotspot_8u232b09.tar.gz",
-            "version": "8.0.232"
+            "sha256": "5b401ad3c9b246281bd6df34b1abaf75e10e5cad9c6b26b55232b016e90e411a",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_arm_linux_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           },
           "armv7l": {
             "build": "9",
-            "sha256": "fdd9f61f1b2df74242da54ee3b3231b0123782a917e9673351276da439c7cab1",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jdk_arm_linux_hotspot_8u232b09.tar.gz",
-            "version": "8.0.232"
-          },
-          "armv6l": {
-            "build": "10",
-            "sha256": "7b3d6ade8c25adca01095ba66642132d8c87a1a8caf3883850e34778453afcec",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jdk_arm_linux_hotspot_8u222b10.tar.gz",
-            "version": "8.0.222"
-          },
-          "armv7l": {
-            "build": "10",
-            "sha256": "7b3d6ade8c25adca01095ba66642132d8c87a1a8caf3883850e34778453afcec",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jdk_arm_linux_hotspot_8u222b10.tar.gz",
-            "version": "8.0.222"
+            "sha256": "5b401ad3c9b246281bd6df34b1abaf75e10e5cad9c6b26b55232b016e90e411a",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_arm_linux_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           },
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "8",
-            "sha256": "f39b523c724d0e0047d238eb2bb17a9565a60574cf651206c867ee5fc000ab43",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08/OpenJDK8U-jdk_x64_linux_hotspot_8u242b08.tar.gz",
-            "version": "8.0.242"
+            "build": "9",
+            "sha256": "2b59b5282ff32bce7abba8ad6b9fde34c15a98f949ad8ae43e789bbd78fc8862",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jdk_x64_linux_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           }
         },
         "openj9": {
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "ca785af638b24f9d4df896f5a9f557cc9f1e5fa5e2b1174d6b906e3fd5474c2e",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08_openj9-0.18.1/OpenJDK8U-jdk_x64_linux_openj9_8u242b08_openj9-0.18.1.tar.gz",
-            "version": "8.0.242"
+            "build": "9",
+            "sha256": "910ae847109a6dd1b6cf69baa7615ea2cce8cff787e5a9349a5331ce7604f3a5",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09_openj9-0.20.0/OpenJDK8U-jdk_x64_linux_openj9_8u252b09_openj9-0.20.0.tar.gz",
+            "version": "8.0.252"
           }
         }
       },
@@ -293,51 +305,39 @@
         "hotspot": {
           "aarch64": {
             "build": "9",
-            "sha256": "4540db665260fdc84ae2f191e21beec9168a70a4227718bee5edd317707e2fda",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jre_aarch64_linux_hotspot_8u232b09.tar.gz",
-            "version": "8.0.232"
+            "sha256": "30bba4425497f5b4aabcba7b45db69d582d278fb17357d64c22c9dc6b2d29ca1",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jre_aarch64_linux_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           },
           "armv6l": {
             "build": "9",
-            "sha256": "8ab786fc2fa0a282f5cf57f6040f1976c32c3c5e480e900ce5925de6543f6688",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jre_arm_linux_hotspot_8u232b09.tar.gz",
-            "version": "8.0.232"
+            "sha256": "107699a88f611e0c2d57816be25821ef9b17db860b14402c4e9e5bf0b9cf16fd",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jre_arm_linux_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           },
           "armv7l": {
             "build": "9",
-            "sha256": "8ab786fc2fa0a282f5cf57f6040f1976c32c3c5e480e900ce5925de6543f6688",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u232-b09/OpenJDK8U-jre_arm_linux_hotspot_8u232b09.tar.gz",
-            "version": "8.0.232"
-          },
-          "armv6l": {
-            "build": "10",
-            "sha256": "19de77b74812b90851816bdb991d6473488a10d3ac293c6accf46ae9b1f714a0",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jre_arm_linux_hotspot_8u222b10.tar.gz",
-            "version": "8.0.222"
-          },
-          "armv7l": {
-            "build": "10",
-            "sha256": "19de77b74812b90851816bdb991d6473488a10d3ac293c6accf46ae9b1f714a0",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jre_arm_linux_hotspot_8u222b10.tar.gz",
-            "version": "8.0.222"
+            "sha256": "107699a88f611e0c2d57816be25821ef9b17db860b14402c4e9e5bf0b9cf16fd",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jre_arm_linux_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           },
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "8",
-            "sha256": "5edfaefdbb0469d8b24d61c8aef80c076611053b1738029c0232b9a632fe2708",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08/OpenJDK8U-jre_x64_linux_hotspot_8u242b08.tar.gz",
-            "version": "8.0.242"
+            "build": "9",
+            "sha256": "a93be303ed62398dba9acb0376fb3caf8f488fcde80dc62d0a8e46256b3adfb1",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09/OpenJDK8U-jre_x64_linux_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           }
         },
         "openj9": {
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "985d3134b64c6196d4c9ddbc87af0c62b0e643cef71b29f3d25a8c7811811745",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08_openj9-0.18.1/OpenJDK8U-jre_x64_linux_openj9_8u242b08_openj9-0.18.1.tar.gz",
-            "version": "8.0.242"
+            "build": "9",
+            "sha256": "5c0ab4691ff5f8e69bb14462f2afb8d73d751b01048eacf4b426ed6d6646dc63",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09_openj9-0.20.0/OpenJDK8U-jre_x64_linux_openj9_8u252b09_openj9-0.20.0.tar.gz",
+            "version": "8.0.252"
           }
         }
       }
@@ -348,20 +348,20 @@
           "packageType": "jdk",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "8",
-            "sha256": "06675b7d65bce0313ee1f2e888dd44267e8afeced75e0b39b5ad1f5fdff54e0b",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08/OpenJDK8U-jdk_x64_mac_hotspot_8u242b08.tar.gz",
-            "version": "8.0.242"
+            "build": "9",
+            "sha256": "2caed3ec07d108bda613f9b4614b22a8bdd196ccf2a432a126161cd4077f07a5",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09.1/OpenJDK8U-jdk_x64_mac_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           }
         },
         "openj9": {
           "packageType": "jdk",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "665dc9c8239b7270b007ab9dd7522570e2686e327d89caf57a6aa6e5c6450078",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08_openj9-0.18.1/OpenJDK8U-jdk_x64_mac_openj9_8u242b08_openj9-0.18.1.tar.gz",
-            "version": "8.0.242"
+            "build": "9",
+            "sha256": "f522061a23290bce3423e49025a95b6e78d6f30e2741817e83c8fdba4c0c4ae7",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09.2_openj9-0.20.0/OpenJDK8U-jdk_x64_mac_openj9_8u252b09_openj9-0.20.0.tar.gz",
+            "version": "8.0.252"
           }
         }
       },
@@ -370,23 +370,23 @@
           "packageType": "jre",
           "vmType": "hotspot",
           "x86_64": {
-            "build": "8",
-            "sha256": "fae3777e3441dc7384c339a9054aa7efc40cd2c501625a535c2d4648367ccca3",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08/OpenJDK8U-jre_x64_mac_hotspot_8u242b08.tar.gz",
-            "version": "8.0.242"
+            "build": "9",
+            "sha256": "f8206f0fef194c598de6b206a4773b2e517154913ea0e26c5726091562a034c8",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09.1/OpenJDK8U-jre_x64_mac_hotspot_8u252b09.tar.gz",
+            "version": "8.0.252"
           }
         },
         "openj9": {
           "packageType": "jre",
           "vmType": "openj9",
           "x86_64": {
-            "build": "8",
-            "sha256": "d4a924558ddda0aed671a67f71714b71c25871a7659fd4c505851cf5ee866de5",
-            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u242-b08_openj9-0.18.1/OpenJDK8U-jre_x64_mac_openj9_8u242b08_openj9-0.18.1.tar.gz",
-            "version": "8.0.242"
+            "build": "9",
+            "sha256": "55cce54a39c5748360e2e3fe8edf04469b75a0783514853a5745463979b43c80",
+            "url": "https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u252-b09.2_openj9-0.20.0/OpenJDK8U-jre_x64_mac_openj9_8u252b09_openj9-0.20.0.tar.gz",
+            "version": "8.0.252"
           }
         }
       }
     }
   }
-}
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix b/nixpkgs/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix
index 72ed184357c1..b62b9c95ef6a 100644
--- a/nixpkgs/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix
+++ b/nixpkgs/pkgs/development/compilers/adoptopenjdk-icedtea-web/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "adoptopenjdk-icedtea-web";
 
-  version = "1.8.3";
+  version = "1.8.4";
 
   src = fetchFromGitHub {
     owner = "AdoptOpenJDK";
     repo = "IcedTea-Web";
     rev = "icedtea-web-${version}";
-    sha256 = "0bm5k11i2vgb54ch1bawsmjbwnqnp04saadwm2f2mggmmdc6b1qq";
+    sha256 = "0pxijw9v5k4j840jczglx9qyfd57df390g5jdaz3qafblfg0k10n";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig bc ];
diff --git a/nixpkgs/pkgs/development/compilers/aspectj/default.nix b/nixpkgs/pkgs/development/compilers/aspectj/default.nix
index 94dc813d78a2..8fd47e937c80 100644
--- a/nixpkgs/pkgs/development/compilers/aspectj/default.nix
+++ b/nixpkgs/pkgs/development/compilers/aspectj/default.nix
@@ -1,12 +1,15 @@
 {stdenv, fetchurl, jre}:
 
 stdenv.mkDerivation rec {
-  name = "aspectj-1.5.2";
+  pname = "aspectj";
+  version = "1.9.6";
   builder = ./builder.sh;
 
-  src = fetchurl {
-    url = "http://archive.eclipse.org/tools/aspectj/${name}.jar";
-    sha256 = "1b3mx248dc1xka1vgsl0jj4sm0nfjsqdcj9r9036mvixj1zj3nmh";
+  src = let
+    versionSnakeCase = builtins.replaceStrings ["."] ["_"] version;
+  in fetchurl {
+    url = "https://github.com/eclipse/org.aspectj/releases/download/V${versionSnakeCase}/aspectj-${version}.jar";
+    sha256 = "02jh66l3vw57k9a4dxlga3qh3487r36gyi6k2z2mmqxbpqajslja";
   };
 
   inherit jre;
diff --git a/nixpkgs/pkgs/development/compilers/bigloo/default.nix b/nixpkgs/pkgs/development/compilers/bigloo/default.nix
index 32116048a438..a3bac2b1722c 100644
--- a/nixpkgs/pkgs/development/compilers/bigloo/default.nix
+++ b/nixpkgs/pkgs/development/compilers/bigloo/default.nix
@@ -1,17 +1,29 @@
-{ fetchurl, stdenv, gmp }:
+{ fetchurl, stdenv, autoconf, automake, libtool, gmp
+, darwin
+}:
 
 stdenv.mkDerivation rec {
   pname = "bigloo";
-  version = "4.1a-2";
+  version = "4.3h";
 
   src = fetchurl {
-    url = "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo${version}.tar.gz";
-    sha256 = "09yrz8r0jpj7bda39fdxzrrdyhi851nlfajsyf0b6jxanz6ygcjx";
+    url = "ftp://ftp-sop.inria.fr/indes/fp/Bigloo/bigloo-${version}.tar.gz";
+    sha256 = "0fw08096sf8ma2cncipnidnysxii0h0pc7kcqkjhkhdchknp8vig";
   };
 
+  nativeBuildInputs = [ autoconf automake libtool ];
+
+  buildInputs = stdenv.lib.optional stdenv.isDarwin
+    darwin.apple_sdk.frameworks.ApplicationServices
+  ;
+
   propagatedBuildInputs = [ gmp ];
 
   preConfigure =
+    # For libuv on darwin
+    stdenv.lib.optionalString stdenv.isDarwin ''
+      export LIBTOOLIZE=libtoolize
+    '' +
     # Help libgc's configure.
     '' export CXXCPP="$CXX -E"
     '';
diff --git a/nixpkgs/pkgs/development/compilers/binaryen/0001-Get-rid-of-git-dependency.patch b/nixpkgs/pkgs/development/compilers/binaryen/0001-Get-rid-of-git-dependency.patch
deleted file mode 100644
index 79b053592a95..000000000000
--- a/nixpkgs/pkgs/development/compilers/binaryen/0001-Get-rid-of-git-dependency.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 1c6af6c68ba3f49ae9e942844c739e934339d3b9 Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Sat, 14 Mar 2020 00:37:31 +0100
-Subject: [PATCH] Get rid of git dependency
-
----
- CMakeLists.txt | 15 +--------------
- 1 file changed, 1 insertion(+), 14 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 4acf703e1..4e9bd60b5 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -7,20 +7,7 @@ IF(NOT CMAKE_BUILD_TYPE)
-   SET(CMAKE_BUILD_TYPE "Release")
- ENDIF()
- 
--FIND_PACKAGE(Git QUIET REQUIRED)
--EXECUTE_PROCESS(COMMAND
--             "${GIT_EXECUTABLE}" --git-dir=${CMAKE_CURRENT_SOURCE_DIR}/.git describe --tags
--         RESULT_VARIABLE
--             GIT_HASH_RESULT
--         OUTPUT_VARIABLE
--             GIT_HASH
--         OUTPUT_STRIP_TRAILING_WHITESPACE)
--IF(${GIT_HASH_RESULT})
--  MESSAGE(WARNING "Error running git describe to determine version")
--  SET(BINARYEN_VERSION_INFO "(unable to determine version)")
--ELSE()
--  SET(BINARYEN_VERSION_INFO "${GIT_HASH}")
--ENDIF()
-+SET(BINARYEN_VERSION_INFO "@emscriptenv@")
- CONFIGURE_FILE(config.h.in config.h)
- 
- OPTION(BUILD_STATIC_LIB "Build as a static library" OFF)
--- 
-2.25.0
-
diff --git a/nixpkgs/pkgs/development/compilers/binaryen/default.nix b/nixpkgs/pkgs/development/compilers/binaryen/default.nix
index 651c88704da3..6de4e0fb3047 100644
--- a/nixpkgs/pkgs/development/compilers/binaryen/default.nix
+++ b/nixpkgs/pkgs/development/compilers/binaryen/default.nix
@@ -1,38 +1,23 @@
-{ stdenv, cmake, python3, fetchFromGitHub, emscriptenRev ? null, substituteAll }:
-
-let
-  defaultVersion = "94";
-
-  # Map from git revs to SHA256 hashes
-  sha256s = {
-    version_94 = "1wk20fhyppb2ljni7ifqnsx9kl1kcl6c0svc0qljf0bs6rvr9qdm";
-    "1.39.1" = "0ygm9m5322h4vfpf3j63q32qxk2l26yk62hh7dkb49j51zwl1y3y";
-  };
-in
+{ stdenv, cmake, python3, fetchFromGitHub, fetchpatch, emscripten }:
 
 stdenv.mkDerivation rec {
-  version = if emscriptenRev == null
-            then defaultVersion
-            else "emscripten-${emscriptenRev}";
-  rev = if emscriptenRev == null
-        then "version_${version}"
-        else emscriptenRev;
   pname = "binaryen";
+  version = "96";
 
   src = fetchFromGitHub {
     owner = "WebAssembly";
     repo = "binaryen";
-    sha256 =
-      if builtins.hasAttr rev sha256s
-      then builtins.getAttr rev sha256s
-      else null;
-    inherit rev;
+    rev = "version_${version}";
+    sha256 = "1mqpb6yy87aifpbcy0lczi3bp6kddrwi6d0g6lrhjrdxx2kvbdag";
   };
 
-  patches = stdenv.lib.optional (emscriptenRev != null) (substituteAll {
-    src = ./0001-Get-rid-of-git-dependency.patch;
-    emscriptenv = "1.39.1";
-  });
+  patches = [
+    # Adds --minimize-wasm-changes option required by emscripten 2.0.1
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/WebAssembly/binaryen/pull/3044.patch";
+      sha256 = "1hdbc9h9zhh2d3bl4sqv6v9psfmny715612bwpjdln0ibdvc129s";
+    })
+  ];
 
   nativeBuildInputs = [ cmake python3 ];
 
@@ -43,4 +28,8 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ asppsa ];
     license = licenses.asl20;
   };
+
+  passthru.tests = {
+    inherit emscripten;
+  };
 }
diff --git a/nixpkgs/pkgs/development/compilers/bluespec/default.nix b/nixpkgs/pkgs/development/compilers/bluespec/default.nix
index 49737b48c575..09e76d63235c 100644
--- a/nixpkgs/pkgs/development/compilers/bluespec/default.nix
+++ b/nixpkgs/pkgs/development/compilers/bluespec/default.nix
@@ -6,7 +6,6 @@
 , fontconfig
 , gmp
 , gperf
-, haskell
 , libX11
 , libpoly
 , perl
@@ -14,16 +13,14 @@
 , verilog
 , xorg
 , zlib
+, ghc
 }:
 
 let
   # yices wants a libgmp.a and fails otherwise
   gmpStatic = gmp.override { withStatic = true; };
 
-  # Compiling PreludeBSV fails with more recent GHC versions
-  # > imperative statement (not BVI context)
-  # https://github.com/B-Lang-org/bsc/issues/20#issuecomment-583724030
-  ghcWithPackages = haskell.packages.ghc844.ghc.withPackages (g: (with g; [old-time regex-compat syb]));
+  ghcWithPackages = ghc.withPackages (g: (with g; [old-time regex-compat syb]));
 in stdenv.mkDerivation rec {
   pname = "bluespec";
   version = "unstable-2020.02.09";
diff --git a/nixpkgs/pkgs/development/compilers/bs-platform/build-bs-platform.nix b/nixpkgs/pkgs/development/compilers/bs-platform/build-bs-platform.nix
index 71ba415d6202..18c61d0d923c 100644
--- a/nixpkgs/pkgs/development/compilers/bs-platform/build-bs-platform.nix
+++ b/nixpkgs/pkgs/development/compilers/bs-platform/build-bs-platform.nix
@@ -3,6 +3,7 @@
 
 { stdenv, fetchFromGitHub, ninja, runCommand, nodejs, python3,
   ocaml-version, version, src,
+  patches ? [],
   ocaml ? (import ./ocaml.nix {
     version = ocaml-version;
     inherit stdenv;
@@ -22,7 +23,7 @@ let
 in
 
 stdenv.mkDerivation rec {
-  inherit src version;
+  inherit src version patches;
   pname = "bs-platform";
 
   BS_RELEASE_BUILD = "true";
@@ -34,7 +35,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ nodejs python3 custom-ninja ];
 
-  patchPhase = ''
+  prePatch = ''
     sed -i 's:./configure.py --bootstrap:python3 ./configure.py --bootstrap:' ./scripts/install.js
     mkdir -p ./native/${ocaml-version}/bin
     ln -sf ${ocaml}/bin/*  ./native/${ocaml-version}/bin
@@ -46,7 +47,7 @@ stdenv.mkDerivation rec {
   buildPhase = ''
     # This is an unfortunate name, but it's actually how to build a release
     # binary for BuckleScript
-    node scripts/install.js
+    npm run postinstall
   '';
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/compilers/bs-platform/default.nix b/nixpkgs/pkgs/development/compilers/bs-platform/default.nix
index 0fd696c69f0a..18436bca347d 100644
--- a/nixpkgs/pkgs/development/compilers/bs-platform/default.nix
+++ b/nixpkgs/pkgs/development/compilers/bs-platform/default.nix
@@ -4,14 +4,16 @@ let
 in
 (build-bs-platform rec {
   inherit stdenv runCommand fetchFromGitHub ninja nodejs python3;
-  version = "7.3.2";
+  version = "8.2.0";
   ocaml-version = "4.06.1";
 
+  patches = [ ./jscomp-release-ninja.patch ];
+
   src = fetchFromGitHub {
     owner = "BuckleScript";
     repo = "bucklescript";
     rev = version;
-    sha256 = "1nvp7wiiv149r4qf9bgc84bm4w7s44sjq9i7j103v24wllzz218s";
+    sha256 = "1hql7sxps1k17zmwyha6idq6nw20abpq770l55ry722birclmsmf";
     fetchSubmodules = true;
   };
 }).overrideAttrs (attrs: {
diff --git a/nixpkgs/pkgs/development/compilers/bs-platform/jscomp-release-ninja.patch b/nixpkgs/pkgs/development/compilers/bs-platform/jscomp-release-ninja.patch
new file mode 100644
index 000000000000..96235f921317
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/bs-platform/jscomp-release-ninja.patch
@@ -0,0 +1,16 @@
+ jscomp/others/release.ninja | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/jscomp/others/release.ninja b/jscomp/others/release.ninja
+index 9ea6d11c5..a91ed9c80 100644
+--- a/jscomp/others/release.ninja
++++ b/jscomp/others/release.ninja
+@@ -30,7 +30,7 @@ build others/js_json.cmj : cc_cmi others/js_json.ml | others/js_array2.cmj other
+ build others/js_json.cmi : cc others/js_json.mli | others/js_dict.cmi others/js_null.cmi others/js_string.cmj others/js_types.cmi runtime
+ build others/js_list.cmj : cc_cmi others/js_list.ml | others/js_array2.cmj others/js_list.cmi others/js_vector.cmj runtime
+ build others/js_list.cmi : cc others/js_list.mli | others/js_vector.cmi runtime
+-build others/js_mapperRt.cmj : cc_cmi others/js_mapperRt.ml | others/js_mapperRt.cmi runtime
++build others/js_mapperRt.cmj : cc_cmi others/js_mapperRt.ml | others/js_array2.cmj others/js_mapperRt.cmi runtime
+ build others/js_mapperRt.cmi : cc others/js_mapperRt.mli | runtime
+ build others/js_math.cmi others/js_math.cmj : cc others/js_math.ml | others/js_int.cmj runtime
+ build others/js_null.cmj : cc_cmi others/js_null.ml | others/js_exn.cmj others/js_null.cmi runtime
\ No newline at end of file
diff --git a/nixpkgs/pkgs/development/compilers/ccl/default.nix b/nixpkgs/pkgs/development/compilers/ccl/default.nix
index 573d36cd3f67..8f292e358ae7 100644
--- a/nixpkgs/pkgs/development/compilers/ccl/default.nix
+++ b/nixpkgs/pkgs/development/compilers/ccl/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, bootstrap_cmds, coreutils, glibc, m4, runtimeShell }:
+{ stdenv, fetchurl, runCommand, bootstrap_cmds, coreutils, glibc, m4, runtimeShell }:
 
 let
   options = rec {
     /* TODO: there are also FreeBSD and Windows versions */
     x86_64-linux = {
       arch = "linuxx86";
-      sha256 = "0hs1f3z7crgzvinpj990kv9gvbsipxvcvwbmk54n51nasvc5025q";
+      sha256 = "0d5bsizgpw9hv0jfsf4bp5sf6kxh8f9hgzz9hsjzpfhs3npmmac4";
       runtime = "lx86cl64";
       kernel = "linuxx8664";
     };
@@ -17,26 +17,44 @@ let
     };
     armv7l-linux = {
       arch = "linuxarm";
-      sha256 = "0p0l1dzsygb6i1xxgbipjpxkn46xhq3jm41a34ga1qqp4x8lkr62";
+      sha256 = throw "ccl all-in-one linuxarm archive missing upstream";
       runtime = "armcl";
       kernel = "linuxarm";
     };
     x86_64-darwin = {
       arch = "darwinx86";
-      sha256 = "5adbea3d8b4a2e29af30d141f781c6613844f468c0ccfa11bae908c3e9641939";
+      sha256 = "1l060719k8mjd70lfdnr0hkybk7v88zxvfrsp7ww50q808cjffqk";
       runtime = "dx86cl64";
       kernel = "darwinx8664";
     };
     armv6l-linux = armv7l-linux;
   };
   cfg = options.${stdenv.hostPlatform.system} or (throw "missing source url for platform ${stdenv.hostPlatform.system}");
+
+  # The 1.12 github release of CCL seems to be missing the usual
+  # ccl-1.12-linuxarm.tar.gz tarball, so we build it ourselves here
+  linuxarm-src = runCommand "ccl-1.12-linuxarm.tar.gz" {
+    outer = fetchurl {
+      url = "https://github.com/Clozure/ccl/archive/v1.12.tar.gz";
+      sha256 = "0lmxhll6zgni0l41h4kcf3khbih9r0f8xni6zcfvbi3dzfs0cjkp";
+    };
+    inner = fetchurl {
+      url = "https://github.com/Clozure/ccl/releases/download/v1.12/linuxarm.tar.gz";
+      sha256 = "0x4bjx6cxsjvxyagijhlvmc7jkyxifdvz5q5zvz37028va65243c";
+    };
+  } ''
+    tar xf $outer
+    tar xf $inner -C ccl
+    tar czf $out ccl
+  '';
+
 in
 
 stdenv.mkDerivation rec {
   pname = "ccl";
-  version  = "1.11.5";
+  version  = "1.12";
 
-  src = fetchurl {
+  src = if cfg.arch == "linuxarm" then linuxarm-src else fetchurl {
     url = "https://github.com/Clozure/ccl/releases/download/v${version}/ccl-${version}-${cfg.arch}.tar.gz";
     sha256 = cfg.sha256;
   };
@@ -88,6 +106,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://ccl.clozure.com/";
     maintainers = with maintainers; [ raskin muflax tohl ];
     platforms   = attrNames options;
-    license     = licenses.lgpl21;
+    license     = licenses.asl20;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/chez/default.nix b/nixpkgs/pkgs/development/compilers/chez/default.nix
index 2d2e0df1ec9b..864ccc5a7439 100644
--- a/nixpkgs/pkgs/development/compilers/chez/default.nix
+++ b/nixpkgs/pkgs/development/compilers/chez/default.nix
@@ -65,6 +65,8 @@ stdenv.mkDerivation rec {
     rm -rf $out/lib/csv${version}/examples
   '';
 
+  setupHook = ./setup-hook.sh;
+
   meta = {
     description  = "A powerful and incredibly fast R6RS Scheme compiler";
     homepage     = "https://cisco.github.io/ChezScheme/";
diff --git a/nixpkgs/pkgs/development/compilers/chez/setup-hook.sh b/nixpkgs/pkgs/development/compilers/chez/setup-hook.sh
new file mode 100644
index 000000000000..1d81489bd4e4
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/chez/setup-hook.sh
@@ -0,0 +1,5 @@
+addChezLibraryPath() {
+  addToSearchPath CHEZSCHEMELIBDIRS "$1/lib/csv-site"
+}
+
+addEnvHooks "$targetOffset" addChezLibraryPath
diff --git a/nixpkgs/pkgs/development/compilers/closure/default.nix b/nixpkgs/pkgs/development/compilers/closure/default.nix
index b8b02cb9d68b..7c0d42f1864e 100644
--- a/nixpkgs/pkgs/development/compilers/closure/default.nix
+++ b/nixpkgs/pkgs/development/compilers/closure/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "closure-compiler";
-  version = "20200517";
+  version = "20200719";
 
   src = fetchurl {
     url = "https://dl.google.com/closure-compiler/compiler-${version}.tar.gz";
-    sha256 = "05bbsrxw2nxjlcfc22w1ympi66jnmzymivg29cvidh5n28jgwba2";
+    sha256 = "18095i98mk5kc1vpaf6gvmvhiyl2x4zrcwd7ix5l98jydldiz7wx";
   };
 
   sourceRoot = ".";
diff --git a/nixpkgs/pkgs/development/compilers/copper/default.nix b/nixpkgs/pkgs/development/compilers/copper/default.nix
new file mode 100644
index 000000000000..4d24c78f25f4
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/copper/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, fetchurl
+, libffi
+}:
+stdenv.mkDerivation rec {
+  pname = "copper";
+  version = "4.4";
+  src = fetchurl {
+    url = "https://tibleiz.net/download/copper-${version}-src.tar.gz";
+    sha256 = "1nf0bw143rjhd019yms3k6k531rahl8anidwh6bif0gm7cngfwfw";
+  };
+  buildInputs = [
+    libffi
+  ];
+  postPatch = ''
+    substituteInPlace Makefile --replace "-s scripts/" "scripts/"
+    patchShebangs .
+  '';
+  buildPhase = ''
+    make BACKEND=elf64 boot-elf64
+    make BACKEND=elf64 COPPER=stage3/copper-elf64 copper-elf64
+  '';
+  installPhase = ''
+    make BACKEND=elf64 install prefix=$out
+  '';
+  meta = with stdenv.lib; {
+    description = "Simple imperative language, statically typed with type inference and genericity.";
+    homepage = "https://tibleiz.net/copper/";
+    license = licenses.bsd2;
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/cudatoolkit/common.nix b/nixpkgs/pkgs/development/compilers/cudatoolkit/common.nix
index 2e93c0b661b6..92a684a6fbf8 100644
--- a/nixpkgs/pkgs/development/compilers/cudatoolkit/common.nix
+++ b/nixpkgs/pkgs/development/compilers/cudatoolkit/common.nix
@@ -95,12 +95,33 @@ stdenv.mkDerivation rec {
       cd ..
     done
     ''}
-    ${lib.optionalString (lib.versionAtLeast version "10.1") ''
+    ${lib.optionalString (lib.versionAtLeast version "10.1" && lib.versionOlder version "11") ''
       cd pkg/builds/cuda-toolkit
       mv * $out/
     ''}
+    ${lib.optionalString (lib.versionAtLeast version "11") ''
+      mkdir -p $out/bin $out/lib64 $out/include $out/doc
+      for dir in pkg/builds/* pkg/builds/cuda_nvcc/nvvm pkg/builds/cuda_cupti/extras/CUPTI; do
+        if [ -d $dir/bin ]; then
+          mv $dir/bin/* $out/bin
+        fi
+        if [ -d $dir/doc ]; then
+          (cd $dir/doc && find . -type d -exec mkdir -p $out/doc/\{} \;)
+          (cd $dir/doc && find . \( -type f -o -type l \) -exec mv \{} $out/doc/\{} \;)
+        fi
+        if [ -L $dir/include ] || [ -d $dir/include ]; then
+          (cd $dir/include && find . -type d -exec mkdir -p $out/include/\{} \;)
+          (cd $dir/include && find . \( -type f -o -type l \) -exec mv \{} $out/include/\{} \;)
+        fi
+        if [ -L $dir/lib64 ] || [ -d $dir/lib64 ]; then
+          (cd $dir/lib64 && find . -type d -exec mkdir -p $out/lib64/\{} \;)
+          (cd $dir/lib64 && find . \( -type f -o -type l \) -exec mv \{} $out/lib64/\{} \;)
+        fi
+      done
+      mv pkg/builds/cuda_nvcc/nvvm $out/nvvm
+    ''}
 
-    rm $out/tools/CUDA_Occupancy_Calculator.xls # FIXME: why?
+    rm -f $out/tools/CUDA_Occupancy_Calculator.xls # FIXME: why?
 
     ${lib.optionalString (lib.versionOlder version "10.1") ''
     # let's remove the 32-bit libraries, they confuse the lib64->lib mover
@@ -133,8 +154,9 @@ stdenv.mkDerivation rec {
 
     # Remove OpenCL libraries as they are provided by ocl-icd and driver.
     rm -f $out/lib64/libOpenCL*
-    ${lib.optionalString (lib.versionAtLeast version "10.1") ''
+    ${lib.optionalString (lib.versionAtLeast version "10.1" && (lib.versionOlder version "11")) ''
       mv $out/lib64 $out/lib
+      mv $out/extras/CUPTI/lib64/libcupti* $out/lib
     ''}
 
     # Set compiler for NVCC.
@@ -152,7 +174,7 @@ stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
-    for b in nvvp nsight; do
+    for b in nvvp ${lib.optionalString (lib.versionOlder version "11") "nsight"}; do
       wrapProgram "$out/bin/$b" \
         --set GDK_PIXBUF_MODULE_FILE "$GDK_PIXBUF_MODULE_FILE"
     done
diff --git a/nixpkgs/pkgs/development/compilers/cudatoolkit/default.nix b/nixpkgs/pkgs/development/compilers/cudatoolkit/default.nix
index c3b16293204a..cd4af47a21e3 100644
--- a/nixpkgs/pkgs/development/compilers/cudatoolkit/default.nix
+++ b/nixpkgs/pkgs/development/compilers/cudatoolkit/default.nix
@@ -4,6 +4,7 @@
 , gcc48
 , gcc6
 , gcc7
+, gcc9
 }:
 
 let
@@ -136,4 +137,14 @@ in rec {
   };
 
   cudatoolkit_10 = cudatoolkit_10_2;
+
+  cudatoolkit_11_0 = common {
+    version = "11.0.3";
+    url = "https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda_11.0.3_450.51.06_linux.run";
+    sha256 = "1h4c69nfrgm09jzv8xjnjcvpq8n4gnlii17v3wzqry5d13jc8ydh";
+
+    gcc = gcc9;
+  };
+
+  cudatoolkit_11 = cudatoolkit_11_0;
 }
diff --git a/nixpkgs/pkgs/development/compilers/dasm/default.nix b/nixpkgs/pkgs/development/compilers/dasm/default.nix
index 1eb233b90b7f..6ab729cd3139 100644
--- a/nixpkgs/pkgs/development/compilers/dasm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/dasm/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dasm";
-  version = "2.20.13";
+  version = "2.20.14";
 
   src = fetchFromGitHub {
     owner = "dasm-assembler";
     repo = "dasm";
     rev = version;
-    sha256 = "1nr4kvw42vyc6i4p1c06jlih11rhbjjxc27dc7cx5qj635xf4jcf";
+    sha256 = "09hzw228j43a78624bmq9cam7y1fjs48d3hpjqh2gn8iwnyk0pnp";
   };
 
   configurePhase = false;
diff --git a/nixpkgs/pkgs/development/compilers/dmd/default.nix b/nixpkgs/pkgs/development/compilers/dmd/default.nix
index a6d4f7e1e20a..4bfd6298c8f7 100644
--- a/nixpkgs/pkgs/development/compilers/dmd/default.nix
+++ b/nixpkgs/pkgs/development/compilers/dmd/default.nix
@@ -115,13 +115,21 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  # NOTE: Purity check is disabled for checkPhase because it doesn't fare well
+  # with the DMD linker. See https://github.com/NixOS/nixpkgs/issues/97420
   checkPhase = ''
     cd dmd
-    make -j$NIX_BUILD_CORES -C test -f Makefile PIC=1 CC=$CXX DMD=${pathToDmd} BUILD=release SHELL=$SHELL
+    NIX_ENFORCE_PURITY= \
+      make -j$NIX_BUILD_CORES -C test -f Makefile PIC=1 CC=$CXX DMD=${pathToDmd} BUILD=release SHELL=$SHELL
+
     cd ../druntime
-    make -j$NIX_BUILD_CORES -f posix.mak unittest PIC=1 DMD=${pathToDmd} BUILD=release
+    NIX_ENFORCE_PURITY= \
+      make -j$NIX_BUILD_CORES -f posix.mak unittest PIC=1 DMD=${pathToDmd} BUILD=release
+
     cd ../phobos
-    make -j$NIX_BUILD_CORES -f posix.mak unittest BUILD=release ENABLE_RELEASE=1 PIC=1 DMD=${pathToDmd} DFLAGS="-version=TZDatabaseDir -version=LibcurlPath -J$(pwd)"
+    NIX_ENFORCE_PURITY= \
+      make -j$NIX_BUILD_CORES -f posix.mak unittest BUILD=release ENABLE_RELEASE=1 PIC=1 DMD=${pathToDmd} DFLAGS="-version=TZDatabaseDir -version=LibcurlPath -J$(pwd)"
+
     cd ..
   '';
 
diff --git a/nixpkgs/pkgs/development/compilers/dotnet/build-dotnet.nix b/nixpkgs/pkgs/development/compilers/dotnet/build-dotnet.nix
new file mode 100644
index 000000000000..1162a75d0de2
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/dotnet/build-dotnet.nix
@@ -0,0 +1,92 @@
+{ type
+, version
+, sha512
+}:
+
+assert builtins.elem type [ "aspnetcore" "netcore" "sdk"];
+{ stdenv
+, fetchurl
+, libunwind
+, openssl
+, icu
+, libuuid
+, zlib
+, curl
+}:
+
+let
+  pname = if type == "aspnetcore" then
+    "aspnetcore-runtime"
+  else if type == "netcore" then
+    "dotnet-runtime"
+  else
+    "dotnet-sdk";
+  platform = if stdenv.isDarwin then "osx" else "linux";
+  suffix = {
+    x86_64-linux = "x64";
+    aarch64-linux = "arm64";
+    x86_64-darwin = "x64";
+  }."${stdenv.hostPlatform.system}" or (throw
+    "Unsupported system: ${stdenv.hostPlatform.system}");
+  urls = {
+    aspnetcore = "https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/${version}/${pname}-${version}-${platform}-${suffix}.tar.gz";
+    netcore = "https://dotnetcli.azureedge.net/dotnet/Runtime/${version}/${pname}-${version}-${platform}-${suffix}.tar.gz";
+    sdk = "https://dotnetcli.azureedge.net/dotnet/Sdk/${version}/${pname}-${version}-${platform}-${suffix}.tar.gz";
+  };
+  descriptions = {
+    aspnetcore = "ASP .NET Core runtime ${version}";
+    netcore = ".NET Core runtime ${version}";
+    sdk = ".NET SDK ${version}";
+  };
+in stdenv.mkDerivation rec {
+  inherit pname version;
+
+  rpath = stdenv.lib.makeLibraryPath [
+    curl
+    icu
+    libunwind
+    libuuid
+    openssl
+    stdenv.cc.cc
+    zlib
+  ];
+
+  src = fetchurl {
+    url = builtins.getAttr type urls;
+    sha512 = sha512."${stdenv.hostPlatform.system}" or (throw
+      "Missing hash for host system: ${stdenv.hostPlatform.system}");
+  };
+
+  sourceRoot = ".";
+
+  dontPatchELF = true;
+  noDumpEnvVars = true;
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin
+    cp -r ./ $out
+    ln -s $out/dotnet $out/bin/dotnet
+    runHook postInstall
+  '';
+
+  postFixup = stdenv.lib.optionalString stdenv.isLinux ''
+    patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $out/dotnet
+    patchelf --set-rpath "${rpath}" $out/dotnet
+    find $out -type f -name "*.so" -exec patchelf --set-rpath '$ORIGIN:${rpath}' {} \;
+    find $out -type f -name "apphost" -exec patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" --set-rpath '$ORIGIN:${rpath}' {} \;
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/dotnet --info
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://dotnet.github.io/";
+    description = builtins.getAttr type descriptions;
+    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
+    maintainers = with maintainers; [ kuznero ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/dotnet/buildDotnet.nix b/nixpkgs/pkgs/development/compilers/dotnet/buildDotnet.nix
deleted file mode 100644
index 20abc1c78b9a..000000000000
--- a/nixpkgs/pkgs/development/compilers/dotnet/buildDotnet.nix
+++ /dev/null
@@ -1,74 +0,0 @@
-{ type
-, version
-, sha512
-}:
-assert builtins.elem type [ "aspnetcore" "netcore" "sdk"];
-{ stdenv
-, fetchurl
-, libunwind
-, openssl
-, icu
-, libuuid
-, zlib
-, curl
-}: 
-let pname = if type == "aspnetcore" then "aspnetcore-runtime" else if type == "netcore" then "dotnet-runtime" else "dotnet-sdk";
-    platform = if stdenv.isDarwin then "osx" else "linux";
-    suffix = {
-      x86_64-linux  = "x64";
-      aarch64-linux = "arm64";
-      x86_64-darwin = "x64";
-    }."${stdenv.hostPlatform.system}" or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
-    urls = {
-        aspnetcore = "https://dotnetcli.azureedge.net/dotnet/aspnetcore/Runtime/${version}/${pname}-${version}-${platform}-${suffix}.tar.gz";
-        netcore = "https://dotnetcli.azureedge.net/dotnet/Runtime/${version}/${pname}-${version}-${platform}-${suffix}.tar.gz";
-        sdk = "https://dotnetcli.azureedge.net/dotnet/Sdk/${version}/${pname}-${version}-${platform}-${suffix}.tar.gz";
-    };
-    descriptions = {
-        aspnetcore = "ASP .NET Core runtime ${version}";
-        netcore = ".NET Core runtime ${version}";
-        sdk = ".NET SDK ${version}";
-    };
-in stdenv.mkDerivation rec {
-    inherit pname version;
-
-    rpath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc libunwind libuuid icu openssl zlib curl ];
-
-    src = fetchurl {
-        url = builtins.getAttr type urls;
-        sha512 = sha512."${stdenv.hostPlatform.system}"  or (throw "Missing hash for host system: ${stdenv.hostPlatform.system}");
-    };
-
-    sourceRoot = ".";
-
-    dontPatchELF = true;
-    noDumpEnvVars = true;
-
-    installPhase = ''
-        runHook preInstall
-        mkdir -p $out/bin
-        cp -r ./ $out
-        ln -s $out/dotnet $out/bin/dotnet
-        runHook postInstall
-    '';
-
-    postFixup = stdenv.lib.optionalString stdenv.isLinux ''
-        patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" $out/dotnet
-        patchelf --set-rpath "${rpath}" $out/dotnet
-        find $out -type f -name "*.so" -exec patchelf --set-rpath '$ORIGIN:${rpath}' {} \;
-        find $out -type f -name "apphost" -exec patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" --set-rpath '$ORIGIN:${rpath}' {} \;
-    '';
-
-    doInstallCheck = true;
-    installCheckPhase = ''
-        $out/bin/dotnet --info
-    '';
-
-    meta = with stdenv.lib; {
-        homepage = "https://dotnet.github.io/";
-        description = builtins.getAttr type descriptions;
-        platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
-        maintainers = with maintainers; [ kuznero ];
-        license = licenses.mit;
-    };
-}
diff --git a/nixpkgs/pkgs/development/compilers/dotnet/combinePackages.nix b/nixpkgs/pkgs/development/compilers/dotnet/combine-packages.nix
index 00fb7c6d9b41..00fb7c6d9b41 100644
--- a/nixpkgs/pkgs/development/compilers/dotnet/combinePackages.nix
+++ b/nixpkgs/pkgs/development/compilers/dotnet/combine-packages.nix
diff --git a/nixpkgs/pkgs/development/compilers/dotnet/default.nix b/nixpkgs/pkgs/development/compilers/dotnet/default.nix
index dd1510548a3c..b4d6a0933e9a 100644
--- a/nixpkgs/pkgs/development/compilers/dotnet/default.nix
+++ b/nixpkgs/pkgs/development/compilers/dotnet/default.nix
@@ -4,40 +4,40 @@ dotnetCombined = with dotnetCorePackages; combinePackages [ sdk_3_1 sdk_2_2 sdk_
 */
 { callPackage }:
 let
-  buildDotnet = attrs: callPackage (import ./buildDotnet.nix attrs) {};
+  buildDotnet = attrs: callPackage (import ./build-dotnet.nix attrs) {};
   buildAspNetCore = attrs: buildDotnet (attrs // { type = "aspnetcore"; });
   buildNetCore = attrs: buildDotnet (attrs // { type = "netcore"; });
   buildNetCoreSdk = attrs: buildDotnet (attrs // { type = "sdk"; });
 in
 rec {
-  combinePackages = attrs: callPackage (import ./combinePackages.nix attrs) {};
+  combinePackages = attrs: callPackage (import ./combine-packages.nix attrs) {};
 
-  # v2.1.15 (LTS)
+  # v2.1.22 (LTS)
 
   aspnetcore_2_1 = buildAspNetCore {
-    version = "2.1.16";
+    version = "2.1.22";
     sha512 = {
-      x86_64-linux = "0awdzi8dysbg8xcy4l8wx2sb8gaaklphmwv61qxh7dj6ih4nla34l02xdax1l8nw41znnnqzsa77avglnrz36pckm9mc52m7wc7877h";
+      x86_64-linux = "27v3a69dgnnb4lz5p2dn2qwadb8vpnqwdy6mnnqfp1dl4kgg3izvriz2268if272sy6flcz5lckjlmn0i0i1jci5zypc7x9kykj991l";
       aarch64-linux = null; # no aarch64 version of this package is available
-      x86_64-darwin = "1psqqpin4hipr2hzfp79712d6cag892jx4fx5001nlsynwrdq3vi4liakz4yz41rvk0jyd7f07z90wj97xlxyrqiqcc1fdbgn2q0px9";
+      x86_64-darwin = "0xh06jmzx2cfq51hv9l4h72hbfyh3r0wlla217821gi0hlw6xcc0gb3b4xmqcs240fllqnwrnrwz0axi3xi21wacgn3xbcmzpbi6jml";
     };
   };
 
   netcore_2_1 = buildNetCore {
-    version = "2.1.16";
+    version = "2.1.22";
     sha512 = {
-      x86_64-linux = "07vvmza32hsblpw4zpcksm2gicy4agh0d1fwradqj16y6xbh3frdp87mqgbj5m54mmyfp5bc8c46v1w6dfm1w3y80v2y46aynild45l";
-      aarch64-linux = "27ab982vz9rn2vzpq68dqfzhryfixq3s0apx7vi0cwiray3scgfmf45fm7qj63k9mvaqnk5g69i339109yasw3q5vpvpyjc1ykbi710";
-      x86_64-darwin = "2pxqpcw3djr18m0y124fbd6pz4lb5brlgvpvd9pdirkpsar8dmipsrhxcsk0d902zyxzgj1ac1ygzxsz49xvrkmh6s1m3w5fk8fws2f";
+      x86_64-linux = "0c2b31l59izcxbhz5wzjpjkdl550s5p3aid4vyghq468vyf67pm0npjny50c172b63vw0ikfbps2b2hj16hpifp116gj4b5llmqjhyc";
+      aarch64-linux = "3llai3d2xpgbr7a4ndg9wqfpnb5zb8k07dicc57a6cmniiqyqigyxinhpx2k0l45mbnihjsr5k1rih3r6bwlj241v67iwd2i0dpqd8a";
+      x86_64-darwin = "106mx6a4rwcvq41v54c1yx89156s43n889im9g0q2pvm7054q8b6xm6qrnymzmj5i2i6awyk0z02j5pfiyh35sw9afxb3695ymsb3v8";
     };
   };
 
   sdk_2_1 = buildNetCoreSdk {
-    version = "2.1.804";
+    version = "2.1.810";
     sha512 = {
-      x86_64-linux = "1kbzxcdgyvs94kkm6ikr1j0p0k3zq30d10sl69ig0rgbqbqm4rpqi6dq94jjbw7q3jlwz83vgq3549q38d2s9kalmzv9lmddn2kkc42";
-      aarch64-linux = "2d97xvhxnkdgghqlichkwdxxh641dzkd9hq5xgffgvbqv1qsh31k9yib2q1nsarpnbx0d758bdn2jm2wvsj7nx0gpxlb3nab0b3hc2g";
-      x86_64-darwin = "0fjn18vizgfdbziklhgppnvka5iw2hb4pfi6047i46il8ydb6z1m40cflq436sdf07sivi0mnldg9247qvqrl6f078w3fwnh3bwlac8";
+      x86_64-linux = "388nrba5f7z9syq23xh3k45rzy3iys58s32ya7a0q9mwdf1y3haw7yvbq79cn08741hhqdi73mip8jf50f4s64mbr62ay1p76zsrkj5";
+      aarch64-linux = "2vs8bhk63cjrqkm5n164ahc6bdz58aq9vmhaiyy27krp7wlkz4gpiva9153h7mywhk709l1qc7cddj99qsh2ygv6axjfigbhgrzslqi";
+      x86_64-darwin = "3qxlgbd0np0w8wmp98mhp4cqgva4zglqf7k9kzqbwxfwr5s795kap7rs5w0cy7h0bsvj0ygx3d5nzyn9hp3fsswx4jl4mkvillnvjzy";
     };
   };
 
@@ -77,29 +77,40 @@ rec {
   # v3.1.1 (LTS)
 
   aspnetcore_3_1 = buildAspNetCore {
-    version = "3.1.2";
+    version = "3.1.8";
     sha512 = {
-      x86_64-linux = "27708bk5liz8r39p4dzs41clgq298d49g8ipzdj56pz613vkfyv7bp91666ydz36aazm265j2g9ji3sk1f9kbgv6024zwrly5w9vqrm";
-      aarch64-linux = "2sm5yf376w5dm0za3gbcj251kc909fmlasmlyn70zhqp2jiii075vcqh40racjlwlhsfydx32cw7kgnv238lad5mw5jxy143zql5xl3";
-      x86_64-darwin = "311sihjzg0x5inyrz0px29jikxcibd6l56xfdmxkncgwaikf3663x10dfl246qhz8v0f3lvg2vndgp5icbaqrp8awsnrhsl0vi5d7fh";
+      x86_64-linux = "0i3dqsmh5x2aaagw30zvr0ydmzms5j6xvmwq0yx79r1hncw0zg8w1zq7cxvaddszl13d24wxb8vm4varkiv3fy8z3n2ndmhlqa2qcyw";
+      aarch64-linux = "3f3xky7jqpqwnsg730ka1576ppsspi25xlqsrqmwlbanad0r89lidfppr34nsys9gb5f1vx1zkv73dn4jhl6yawnas9j9f8nhi5mq40";
+      x86_64-darwin = "1gbiizljh80m9sqv4ynvch7si55if43f4ccfd9ynakwm777fddbg8py338l7irnxc5rid3xzw7c0yj5p8f22n38krlxkvr1zcwij68b";
     };
   };
 
   netcore_3_1 = buildNetCore {
-    version = "3.1.2";
+    version = "3.1.8";
     sha512 = {
-      x86_64-linux = "3zwg1anrcni9kagmjxn485bpjvb146hkm7irmikq3v879gjhd2fgpscg226ds83l4pxll3r7lwris6ij952xmy8lsqraapd9111ba14";
-      aarch64-linux = "3hf61d5adlfffy51627ypp36qc5r55g9xwgfxqd0c7vj9bqmpiph673bvqqpr189df9shxr21p94cwrc5n36z72a37vw4ic8ks2yayx";
-      x86_64-darwin = "35flr1p5zpcd77mjsl6qy9ipxc5k9j6pk7ca6mnvqqjf0r3agm3qf8cs5fbraprvkwj8fha3giwbp5xir6050fbb374375idn9x12d8";
+      x86_64-linux = "19gbb92lkfwmx4ic27v5g4cs8qzxiq8cv7sw9pxa8kibgr7lgifvg8dh3pd0i30a78yg5lc3fsdy0jal5i2k049nak72rfhxhrk5yxc";
+      aarch64-linux = "0h0zfj82wafk6brmh35ah1qfxgxs4nm3wc47i14vhvkg78rz25w46rnah88zf9gkllnbhfxkw1ivcl4mm6l4ri9hv9367rr627hybvf";
+      x86_64-darwin = "0zcp77lh6rvj1vlnjnnd9gqrwazn9v572l0x6r7b9pkjjq7fdh5cnjcc1cvkv9rb00mssd9jjv7yjdpv4i8i9hwby85g9bn500qx42c";
     };
   };
 
   sdk_3_1 = buildNetCoreSdk {
-    version = "3.1.102";
+    version = "3.1.402";
     sha512 = {
-      x86_64-linux = "0lmz8ac5j0i4zcq4904kr6qibvyjcm2ckfg27kqyqfii00qmm80xb5sk3i7f06xqkbgkrqkbg9rsldk75akw6m5dxg932j602bxrb4w";
-      aarch64-linux = "34k6cm69gxm7vcd9m6bp47sdx96j32z6lfhb2vjcdznc6xgs2wy8zcang3b1mjm5919dq7v6iysm6ffcpgjhhphy7prlnaqa69q5mks";
-      x86_64-darwin = "00xs87zj94v6yr6xs294bficp6lxpghyfswhnwqfkx62jy80qr5fa2y7s10ich3cbm2daa8dby56iizdvi7rnlvp23gfkq12gq4w1g8";
+      x86_64-linux = "2zdb5cl4swg7kvnla6kgnnwg3kkb3rj2ccizg43fw89h8nacr1klz3zdl5km9l553lvm364dy8xsdwm79bw1ch0qgff6snnbbxlw5a2";
+      aarch64-linux = "1aq8fhsn15362x99dfp72m67zbswrg30xscy1n983mmq76qn5ha6sy8pyj84l7qcs0n1b7akb77qyi3d2ns8bd2wl6s1dacl24gn10p";
+      x86_64-darwin = "1gk6sgd9gdc6nr64mdfj6lhzdi6ixi5c1r0i1b7bhkg2xycx5cnbgjycrpqh17h6wbp68dz4mkg5hf1y3527hdwypa9k0sqdg3yrdb8";
+    };
+  };
+
+  # v5.0.0
+
+  sdk_5_0 = buildNetCoreSdk {
+    version = "5.0.100-rc.1.20452.10";
+    sha512 = {
+      x86_64-linux = "d7e709dacc4bb188c2380060d24bfb5b791240dc33af8499fb4a31e1885a9377dad1d1ebc76847432ea67d5e4ac832a31679dc293e09fa6dade28f5fbbe4db9b";
+      aarch64-linux = "2d04890c71e845d1eb08f5dfbbb9c93024d7a52fb1cc3fd50bd51bc6bd44e455c5c82abc8f04eef23bd012984ae5f86143c600ceb49c4c733935d95d5b68785f";
+      x86_64-darwin = "06bb40273071f3dd1e84ebf58abc7798795d5f1ac298f24bf7109d1597fd52ff31bcbf2b81f86d91d37ae293678d07f8da0469d7cbd318d19a8d718b6629dcac";
     };
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/elm/default.nix b/nixpkgs/pkgs/development/compilers/elm/default.nix
index 625d7adab411..369ea8626204 100644
--- a/nixpkgs/pkgs/development/compilers/elm/default.nix
+++ b/nixpkgs/pkgs/development/compilers/elm/default.nix
@@ -1,6 +1,8 @@
 { lib, stdenv, pkgs
 , haskell, nodejs
-, fetchurl, fetchpatch, makeWrapper, writeScriptBin }:
+, fetchurl, fetchpatch, makeWrapper, writeScriptBin
+  # Rust dependecies
+, rustPlatform, openssl, pkg-config }:
 let
   fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; };
 
@@ -28,18 +30,6 @@ let
             `package/nix/build.sh`
             */
             elm-format = justStaticExecutables (overrideCabal (self.callPackage ./packages/elm-format.nix {}) (drv: {
-              # GHC 8.8.3 support
-              # https://github.com/avh4/elm-format/pull/640
-              patches = [(
-                fetchpatch {
-                  url = "https://github.com/turboMaCk/elm-format/commit/4f4abdc7117ed6ce3335f6cf39b6495b48067b7c.patch";
-                  sha256 = "1zqk6q6w0ph12mnwffgwzf4h1hcgqg0v09ws9q2g5bg2riq4rvd9";
-                }
-              )];
-              # 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;
               jailbreak = true;
             }));
 
@@ -71,56 +61,65 @@ let
       };
   };
 
-  /*
-  Node/NPM based dependecies can be upgraded using script
-  `packages/generate-node-packages.sh`.
-  Packages which rely on `bin-wrap` will fail by default
-  and can be patched using `patchBinwrap` function defined in `packages/patch-binwrap.nix`.
+  /* Node/NPM based dependecies can be upgraded using script `packages/generate-node-packages.sh`.
+
+      * Packages which rely on `bin-wrap` will fail by default
+        and can be patched using `patchBinwrap` function defined in `packages/lib.nix`.
+
+      * Packages which depend on npm installation of elm can be patched using
+        `patchNpmElm` function also defined in `packages/lib.nix`.
   */
-  elmNodePackages =
+  elmLib = import ./packages/lib.nix {
+    inherit lib writeScriptBin stdenv;
+    inherit (hsPkgs.elmPkgs) elm;
+  };
+
+  elmNodePackages = with elmLib;
     let
       nodePkgs = import ./packages/node-composition.nix {
           inherit nodejs pkgs;
           inherit (stdenv.hostPlatform) system;
         };
     in with hsPkgs.elmPkgs; {
-      elm-test = patchBinwrap [elmi-to-json] nodePkgs.elm-test;
-      elm-verify-examples = patchBinwrap [elmi-to-json] nodePkgs.elm-verify-examples;
+
+      elm-test = patchBinwrap [elmi-to-json]
+        nodePkgs.elm-test;
+
+      elm-verify-examples = patchBinwrap [elmi-to-json]
+        nodePkgs.elm-verify-examples;
+
       elm-coverage =
-        let patched = patchBinwrap [elmi-to-json] nodePkgs.elm-coverage;
-        in patched.override {
-          preRebuild = ''
+        let patched = patchNpmElm (patchBinwrap [elmi-to-json] nodePkgs.elm-coverage);
+        in patched.override (old: {
+          # Symlink Elm instrument binary
+          preRebuild = (old.preRebuild or "") + ''
+            # Noop custom installation script
             sed 's/\"install\".*/\"install\":\"echo no-op\"/g' --in-place package.json
 
             # This should not be needed (thanks to binwrap* being nooped) but for some reason it still needs to be done
             # in case of just this package
+            # TODO: investigate
             sed 's/\"install\".*/\"install\":\"echo no-op\",/g' --in-place node_modules/elmi-to-json/package.json
-
-            rm node_modules/elm/install.js
-            echo "console.log('no-op');" > node_modules/elm/install.js
           '';
-
-          # Link Elm instrument binary
-          postInstall = patched.postInstall + ''
+          postInstall = (old.postInstall or "") + ''
             mkdir -p unpacked_bin
             ln -sf ${elm-instrument}/bin/elm-instrument unpacked_bin/elm-instrument
           '';
-        };
+        });
 
-      create-elm-app = patchBinwrap [elmi-to-json] (nodePkgs.create-elm-app.override {
-        preRebuild = ''
-          rm node_modules/elm/install.js
-          echo "console.log('no-op');" > node_modules/elm/install.js
-        '';
-      });
+      create-elm-app = patchNpmElm (patchBinwrap [elmi-to-json]
+        nodePkgs.create-elm-app);
 
       elm-language-server = nodePkgs."@elm-tooling/elm-language-server";
 
+      elm-optimize-level-2 = nodePkgs."elm-optimize-level-2";
+
       inherit (nodePkgs) elm-doc-preview elm-live elm-upgrade elm-xref elm-analyse;
     };
 
-  patchBinwrap = import ./packages/patch-binwrap.nix { inherit lib writeScriptBin stdenv; };
-
 in hsPkgs.elmPkgs // elmNodePackages // {
-  lib = { inherit patchBinwrap; };
+  elm-json = import ./packages/elm-json.nix {
+    inherit rustPlatform fetchurl openssl stdenv pkg-config;
+  };
+  lib = elmLib;
 }
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/elm-format.nix b/nixpkgs/pkgs/development/compilers/elm/packages/elm-format.nix
index e498b4b1494f..ff944cc4b647 100644
--- a/nixpkgs/pkgs/development/compilers/elm/packages/elm-format.nix
+++ b/nixpkgs/pkgs/development/compilers/elm/packages/elm-format.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, fetchgit, ansi-terminal, ansi-wl-pprint, base, binary
+{ mkDerivation, fetchgit, ansi-terminal, ansi-wl-pprint, array, base, binary
 , bytestring, cmark, containers, directory, filepath, free, HUnit
 , indents, json, mtl, optparse-applicative, parsec, process
 , QuickCheck, quickcheck-io, split, stdenv, tasty, tasty-golden
@@ -6,11 +6,11 @@
 }:
 mkDerivation {
   pname = "elm-format";
-  version = "0.8.3";
+  version = "0.8.4";
   src = fetchgit {
     url = "https://github.com/avh4/elm-format";
-    sha256 = "0n6lrqj6mq044hdyraj3ss5cg74dn8k4z05xmwn2apjpm146iaw8";
-    rev = "b97e3593d564a1e069c0a022da8cbd98ca2c5a4b";
+    sha256 = "0cxlhhdjx4h9g03z83pxv91qrysbi0ab92rl52jb0yvkaix989ai";
+    rev = "5bd4fbe591fe8b456160c180cb875ef60bc57890";
   };
   postPatch = ''
     mkdir -p ./generated
@@ -18,15 +18,15 @@ mkDerivation {
     module Build_elm_format where
 
     gitDescribe :: String
-    gitDescribe = "0.8.3"
+    gitDescribe = "0.8.4"
     EOHS
   '';
   isLibrary = false;
   isExecutable = true;
   libraryHaskellDepends = [
-    ansi-terminal ansi-wl-pprint base binary bytestring containers
-    directory filepath free indents json mtl optparse-applicative
-    parsec process split text
+    ansi-terminal ansi-wl-pprint array base binary bytestring
+    containers directory filepath free indents json mtl
+    optparse-applicative parsec process split text
   ];
   executableHaskellDepends = [ base ];
   testHaskellDepends = [
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/elm-json.nix b/nixpkgs/pkgs/development/compilers/elm/packages/elm-json.nix
new file mode 100644
index 000000000000..44d300d254b0
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/elm/packages/elm-json.nix
@@ -0,0 +1,29 @@
+{ rustPlatform, fetchurl, openssl, stdenv, pkg-config }:
+rustPlatform.buildRustPackage rec {
+  pname = "elm-json";
+  version = "0.2.7";
+
+  src = fetchurl {
+    url = "https://github.com/zwilias/elm-json/archive/v${version}.tar.gz";
+    sha256 = "sha256:1b9bhl7rb01ylqjbfd1ccm26lhk4hzwd383rbg89aj2jwjv0w4hs";
+  };
+
+  cargoPatches = [ ./elm-json.patch ];
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ];
+
+  cargoSha256 = "0ylniriq073kpiykamkn9mxdaa6kyiza4pvf7gnfq2h1dvbqa6z7";
+
+  # Tests perform networking and therefore can't work in sandbox
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Install, upgrade and uninstall Elm dependencies";
+    homepage = "https://github.com/zwilias/elm-json";
+    license = licenses.mit;
+    maintainers = [ maintainers.turbomack ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/elm-json.patch b/nixpkgs/pkgs/development/compilers/elm/packages/elm-json.patch
new file mode 100644
index 000000000000..70064d0a4243
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/elm/packages/elm-json.patch
@@ -0,0 +1,48 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index f4d95f5..6830b3d 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -625,14 +625,6 @@ name = "openssl-probe"
+ version = "0.1.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ 
+-[[package]]
+-name = "openssl-src"
+-version = "111.9.0+1.1.1g"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-dependencies = [
+- "cc 1.0.54 (registry+https://github.com/rust-lang/crates.io-index)",
+-]
+-
+ [[package]]
+ name = "openssl-sys"
+ version = "0.9.56"
+@@ -641,7 +633,6 @@ dependencies = [
+  "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
+  "cc 1.0.54 (registry+https://github.com/rust-lang/crates.io-index)",
+  "libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)",
+- "openssl-src 111.9.0+1.1.1g (registry+https://github.com/rust-lang/crates.io-index)",
+  "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
+  "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
+ ]
+@@ -1162,7 +1153,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ "checksum object 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9cbca9424c482ee628fa549d9c812e2cd22f1180b9222c9200fdfa6eb31aecb2"
+ "checksum once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
+ "checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+-"checksum openssl-src 111.9.0+1.1.1g (registry+https://github.com/rust-lang/crates.io-index)" = "a2dbe10ddd1eb335aba3780eb2eaa13e1b7b441d2562fd962398740927f39ec4"
+ "checksum openssl-sys 0.9.56 (registry+https://github.com/rust-lang/crates.io-index)" = "f02309a7f127000ed50594f0b50ecc69e7c654e16d41b4e8156d1b3df8e0b52e"
+ "checksum petgraph 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "29c127eea4a29ec6c85d153c59dc1213f33ec74cead30fe4730aecc88cc1fd92"
+ "checksum pin-project 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)" = "edc93aeee735e60ecb40cf740eb319ff23eab1c5748abfdb5c180e4ce49f7791"
+diff --git a/Cargo.toml b/Cargo.toml
+index adfab25..37ae0c2 100644
+--- a/Cargo.toml
++++ b/Cargo.toml
+@@ -21,7 +21,7 @@ colored = "1.9"
+ dialoguer = "0.6"
+ dirs = "2.0"
+ fs2 = "0.4"
+-isahc = { version = "0.9", features = ["static-ssl"] }
++isahc = "0.9"
+ 
+ [dev-dependencies]
+ assert_cmd = "0.11"
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/generate-node-packages.sh b/nixpkgs/pkgs/development/compilers/elm/packages/generate-node-packages.sh
index 343721208b89..0ffa56eae90a 100755
--- a/nixpkgs/pkgs/development/compilers/elm/packages/generate-node-packages.sh
+++ b/nixpkgs/pkgs/development/compilers/elm/packages/generate-node-packages.sh
@@ -6,7 +6,7 @@ set -eu -o pipefail
 
 rm -f node-env.nix
 $(nix-build $ROOT -A nodePackages.node2nix --no-out-link)/bin/node2nix \
-    --nodejs-10 \
+    --nodejs-12 \
     -i node-packages.json \
     -o node-packages.nix \
     -c node-composition.nix \
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/lib.nix b/nixpkgs/pkgs/development/compilers/elm/packages/lib.nix
new file mode 100644
index 000000000000..12e0600dc231
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/elm/packages/lib.nix
@@ -0,0 +1,43 @@
+{ writeScriptBin, stdenv, lib, elm }:
+let
+  patchBinwrap =
+    let
+      # Patching binwrap by NoOp script
+      binwrap = writeScriptBin "binwrap" ''
+        #! ${stdenv.shell}
+        echo "binwrap called: Returning 0"
+        return 0
+      '';
+      binwrap-install = writeScriptBin "binwrap-install" ''
+        #! ${stdenv.shell}
+        echo "binwrap-install called: Doing nothing"
+      '';
+    in targets: pkg:
+      pkg.override (old: {
+        nativeBuildInputs = (old.nativeBuildInputs or []) ++ [ binwrap binwrap-install ];
+
+        # Manually install targets
+        # by symlinking binaries into `node_modules`
+        postInstall = let
+          binFile = module: lib.strings.removeSuffix ("-" + module.version) module.name;
+        in (old.postInstall or "") + ''
+          ${lib.concatStrings (map (module: ''
+              echo "linking ${binFile module}"
+              ln -sf ${module}/bin/${binFile module} \
+                  node_modules/${binFile module}/bin/${binFile module}
+          '') targets)}
+        '';
+      });
+
+  patchNpmElm = pkg:
+    pkg.override (old: {
+      preRebuild = (old.preRebuild or "") + ''
+        rm node_modules/elm/install.js
+        echo "console.log('Nixpkgs\' version of Elm will be used');" > node_modules/elm/install.js
+      '';
+      postInstall = (old.postInstall or "") + ''
+        ln -sf ${elm}/bin/elm node_modules/elm/bin/elm
+      '';
+    });
+in
+{ inherit patchBinwrap patchNpmElm; }
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/node-composition.nix b/nixpkgs/pkgs/development/compilers/elm/packages/node-composition.nix
index 4add754b5999..9c6bdb2006a1 100644
--- a/nixpkgs/pkgs/development/compilers/elm/packages/node-composition.nix
+++ b/nixpkgs/pkgs/development/compilers/elm/packages/node-composition.nix
@@ -2,7 +2,7 @@
 
 {pkgs ? import <nixpkgs> {
     inherit system;
-  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-10_x"}:
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
 
 let
   nodeEnv = import ../../../node-packages/node-env.nix {
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/node-packages.json b/nixpkgs/pkgs/development/compilers/elm/packages/node-packages.json
index 29d00ef23ecc..a440533b2414 100644
--- a/nixpkgs/pkgs/development/compilers/elm/packages/node-packages.json
+++ b/nixpkgs/pkgs/development/compilers/elm/packages/node-packages.json
@@ -8,5 +8,6 @@
     "elm-upgrade",
     "elm-verify-examples",
     "elm-xref",
-    "create-elm-app"
+    "create-elm-app",
+    "elm-optimize-level-2"
 ]
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/node-packages.nix b/nixpkgs/pkgs/development/compilers/elm/packages/node-packages.nix
index ba1190750432..7a296af4669d 100644
--- a/nixpkgs/pkgs/development/compilers/elm/packages/node-packages.nix
+++ b/nixpkgs/pkgs/development/compilers/elm/packages/node-packages.nix
@@ -4,13 +4,13 @@
 
 let
   sources = {
-    "@babel/cli-7.2.3" = {
+    "@babel/cli-7.8.4" = {
       name = "_at_babel_slash_cli";
       packageName = "@babel/cli";
-      version = "7.2.3";
+      version = "7.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/cli/-/cli-7.2.3.tgz";
-        sha512 = "1h5r08pml55n7xvbgqp701sdr9mz4dykd0aj055qgpwk7rmpvq6c6ac24k3x0q6a0iy5szdd66qq73zhkvk8mwq1jkmw9g6p7vxmybd";
+        url = "https://registry.npmjs.org/@babel/cli/-/cli-7.8.4.tgz";
+        sha512 = "XXLgAm6LBbaNxaGhMAznXXaxtCWfuv6PIDJ9Alsy9JYTOh+j2jJz+L/162kkfU1j/pTSxK1xGmlwI4pdIMkoag==";
       };
     };
     "@babel/code-frame-7.0.0" = {
@@ -19,286 +19,349 @@ let
       version = "7.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz";
-        sha512 = "1n9xn1d8d9ai52qv1n1q1a521hrwi2akjlj4lsidm8xr6hbnx1akh3h2lxnl73mwhix4cv2x5iff3m22r4jvpdnygmpb4lsx6wvdw1r";
+        sha512 = "OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==";
       };
     };
-    "@babel/code-frame-7.8.3" = {
+    "@babel/code-frame-7.10.4" = {
       name = "_at_babel_slash_code-frame";
       packageName = "@babel/code-frame";
-      version = "7.8.3";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz";
+        sha512 = "vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==";
+      };
+    };
+    "@babel/compat-data-7.11.0" = {
+      name = "_at_babel_slash_compat-data";
+      packageName = "@babel/compat-data";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz";
-        sha512 = "3d85pd9lfbm8yrlpn6wj9g56snbnpr9fx0w1b9x26jbirc2xfrvnifwzprp0f6bhqijshgm0q35axic8d11v4j0kq493dapcyk33n3b";
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz";
+        sha512 = "TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==";
       };
     };
-    "@babel/core-7.3.4" = {
+    "@babel/core-7.9.6" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.3.4";
+      version = "7.9.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.3.4.tgz";
-        sha512 = "2n2a167ki533xdbc8n9n3hqa5m3ykxxc8g5p7wn111bgrr9jj7xw2km0dmbglvi5hf85nkb4v7q39l544y9rjnysx6xm8y1wnqjw6wd";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.9.6.tgz";
+        sha512 = "nD3deLvbsApbHAHttzIssYqgb883yU/d9roe4RZymBCDaZryMJDbptVpEpeQuRh4BJ+SYI8le9YGxKvFEvl1Wg==";
       };
     };
-    "@babel/generator-7.9.4" = {
+    "@babel/generator-7.11.4" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.9.4";
+      version = "7.11.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.9.4.tgz";
-        sha512 = "10dhzfcyh1jfi1436lwl0ic1z15x4rd0y1ih2n9j8fq7jss6vrbi0ka558wp7ag366hpixbsn59lsp68i6s3hmvhqpgmjw32rmgqcxf";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.11.4.tgz";
+        sha512 = "Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g==";
       };
     };
-    "@babel/helper-annotate-as-pure-7.8.3" = {
+    "@babel/helper-annotate-as-pure-7.10.4" = {
       name = "_at_babel_slash_helper-annotate-as-pure";
       packageName = "@babel/helper-annotate-as-pure";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz";
-        sha512 = "19zxjzlr2w22hia04020h7cfgvc14ifv25ra5in7c3yi0l7w8r17xmvg62gqn538hpfm5nxq1bxcvn1fgzwxi5ybw2fmi21nqkad3za";
+        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz";
+        sha512 = "XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==";
       };
     };
-    "@babel/helper-builder-binary-assignment-operator-visitor-7.8.3" = {
+    "@babel/helper-builder-binary-assignment-operator-visitor-7.10.4" = {
       name = "_at_babel_slash_helper-builder-binary-assignment-operator-visitor";
       packageName = "@babel/helper-builder-binary-assignment-operator-visitor";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz";
-        sha512 = "2bhyq7n603yhsvhh8if76f9hspd8ywwfac3xbr01xhbk3qglspkw54w34vasds8ngn1vbi8gl2fbplc8g231mqx8swg455jcjdlxqg5";
+        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz";
+        sha512 = "L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==";
       };
     };
-    "@babel/helper-create-regexp-features-plugin-7.8.8" = {
+    "@babel/helper-compilation-targets-7.10.4" = {
+      name = "_at_babel_slash_helper-compilation-targets";
+      packageName = "@babel/helper-compilation-targets";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz";
+        sha512 = "a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==";
+      };
+    };
+    "@babel/helper-create-regexp-features-plugin-7.10.4" = {
       name = "_at_babel_slash_helper-create-regexp-features-plugin";
       packageName = "@babel/helper-create-regexp-features-plugin";
-      version = "7.8.8";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz";
-        sha512 = "2mfpciziyvm031vs1rlwyk7861w57k8bl0dxzsq4iqw70klb81lrili086xx973ksc24jdm1fcyn17zvp9dnlgdyyblhh1b15vlz19d";
+        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz";
+        sha512 = "2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==";
       };
     };
-    "@babel/helper-define-map-7.8.3" = {
+    "@babel/helper-define-map-7.10.5" = {
       name = "_at_babel_slash_helper-define-map";
       packageName = "@babel/helper-define-map";
-      version = "7.8.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz";
-        sha512 = "3z4d17xj2zhm7zk023hs0w9wydxpw5np319d6rlkllcc2zqnxws3m4wdl9lav0chq3p54rfwcmdqqq99qbfp7brnxf6nr38vii831ry";
+        url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz";
+        sha512 = "fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==";
       };
     };
-    "@babel/helper-explode-assignable-expression-7.8.3" = {
+    "@babel/helper-explode-assignable-expression-7.11.4" = {
       name = "_at_babel_slash_helper-explode-assignable-expression";
       packageName = "@babel/helper-explode-assignable-expression";
-      version = "7.8.3";
+      version = "7.11.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz";
-        sha512 = "0iz6s1cb2asrb2iv9kblqv7zdqljaq278iydlnwdrvy4w730nb68c3rzf181w4scfmgmzgc0ykkkj4nkimipgdkxmw3samzrrdixvrp";
+        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz";
+        sha512 = "ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ==";
       };
     };
-    "@babel/helper-function-name-7.8.3" = {
+    "@babel/helper-function-name-7.10.4" = {
       name = "_at_babel_slash_helper-function-name";
       packageName = "@babel/helper-function-name";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz";
-        sha512 = "0w35m1kq2dmsgdgjxvpmg6gxm1rzl1jqf23h3k7pwh9nmwsmqbgv0rzy7fs6dq31dqq6j17bwyww0091r41aj0rl3zi1nj2a1gn0b04";
+        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
+        sha512 = "YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==";
       };
     };
-    "@babel/helper-get-function-arity-7.8.3" = {
+    "@babel/helper-get-function-arity-7.10.4" = {
       name = "_at_babel_slash_helper-get-function-arity";
       packageName = "@babel/helper-get-function-arity";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz";
-        sha512 = "12g2gjipd8svg02d12iqbf0rz4m99g36qccn3f81xij3ac4f7kqzx0407xma49h11j88iz8jil2whj7j96wqpwd67abi23xczwd2l0m";
+        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
+        sha512 = "EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==";
       };
     };
-    "@babel/helper-hoist-variables-7.8.3" = {
+    "@babel/helper-hoist-variables-7.10.4" = {
       name = "_at_babel_slash_helper-hoist-variables";
       packageName = "@babel/helper-hoist-variables";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz";
-        sha512 = "110zw1xx11769dn6nmx1nrl4afckadg5rb4kbnyn717kyyfprvhvz9q4483ziwjk7502k0bl9kzpxv1c56bfr7cfd94n3fwx0n4jbck";
+        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz";
+        sha512 = "wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==";
       };
     };
-    "@babel/helper-member-expression-to-functions-7.8.3" = {
+    "@babel/helper-member-expression-to-functions-7.11.0" = {
       name = "_at_babel_slash_helper-member-expression-to-functions";
       packageName = "@babel/helper-member-expression-to-functions";
-      version = "7.8.3";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz";
-        sha512 = "123n860dm1xyq93wl0qjc6025awwl14371k9glbv23dvh5vdgnssi0ck7jj75lffxswv1pcdamcaqlqqqhsvkrn2q8dkfiwmy109vkw";
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz";
+        sha512 = "JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==";
       };
     };
-    "@babel/helper-module-imports-7.8.3" = {
+    "@babel/helper-module-imports-7.10.4" = {
       name = "_at_babel_slash_helper-module-imports";
       packageName = "@babel/helper-module-imports";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz";
-        sha512 = "0m3mnvpihbbzmv12qzlpms63wlv1krvd9v6m2r3cga0xyvi6aj40fz8vq9yp6cz3qiw6g8iwp6ax20lzagsbr6w2b0cd9m973g72h27";
+        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz";
+        sha512 = "nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==";
       };
     };
-    "@babel/helper-module-transforms-7.9.0" = {
+    "@babel/helper-module-transforms-7.11.0" = {
       name = "_at_babel_slash_helper-module-transforms";
       packageName = "@babel/helper-module-transforms";
-      version = "7.9.0";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz";
-        sha512 = "30gcd0pfjswf9s036nznz9znhb9dwbkzxdb1dyrzvv50vaiyi844s04492jww141ai1k927wx29dly9q1dcc9618g4gg910xp5clnyh";
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz";
+        sha512 = "02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==";
       };
     };
-    "@babel/helper-optimise-call-expression-7.8.3" = {
+    "@babel/helper-optimise-call-expression-7.10.4" = {
       name = "_at_babel_slash_helper-optimise-call-expression";
       packageName = "@babel/helper-optimise-call-expression";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz";
-        sha512 = "0fs3wpyfm9fmnarclkhbj2c5y1b3hnsjm00myhq6nmmmfap9b12a0vg3ryf0pp9396aawx0rmvq1ymj16hnpp7i0avb6w9sgz93da19";
+        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz";
+        sha512 = "n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==";
       };
     };
-    "@babel/helper-plugin-utils-7.8.3" = {
+    "@babel/helper-plugin-utils-7.10.4" = {
       name = "_at_babel_slash_helper-plugin-utils";
       packageName = "@babel/helper-plugin-utils";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz";
-        sha512 = "1jj9ibj72hqv1qm4hvdnk728fi9mihrwhq0xcs2qlxbs8iz9d2zb4a23sm7ny0s42asrdyy2s98shgnqm0rhn2314k6pcyxspiymrwg";
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
+        sha512 = "O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==";
       };
     };
-    "@babel/helper-regex-7.8.3" = {
+    "@babel/helper-regex-7.10.5" = {
       name = "_at_babel_slash_helper-regex";
       packageName = "@babel/helper-regex";
-      version = "7.8.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz";
-        sha512 = "18s59gjlmhr59fb91klimh3l4r3xha8mmddi7iz7ssf3jlz3r4j8fmlqmvjv5c98y1nwgzr7xmg0zvj3n9h23p76lzwiz9gsr178sq5";
+        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz";
+        sha512 = "68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==";
       };
     };
-    "@babel/helper-remap-async-to-generator-7.8.3" = {
+    "@babel/helper-remap-async-to-generator-7.11.4" = {
       name = "_at_babel_slash_helper-remap-async-to-generator";
       packageName = "@babel/helper-remap-async-to-generator";
-      version = "7.8.3";
+      version = "7.11.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz";
-        sha512 = "360dpccwg08h484w138qxqzsq6lwhgp90cmmhsa309drgwi1wd9h463b728cfcip3jyagx3kwdfiyj723lhxf04av00w2hz1sdh634j";
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz";
+        sha512 = "tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA==";
       };
     };
-    "@babel/helper-replace-supers-7.8.6" = {
+    "@babel/helper-replace-supers-7.10.4" = {
       name = "_at_babel_slash_helper-replace-supers";
       packageName = "@babel/helper-replace-supers";
-      version = "7.8.6";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz";
-        sha512 = "0acgcd28lns7vqyj6s66c00yghxy6kk70iifxmd0yyb229mj4k3nlz0pjavalakn8x1izq5sngznn59iw9c1mwcgzbgyjiqs2nh1qrx";
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz";
+        sha512 = "sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==";
       };
     };
-    "@babel/helper-simple-access-7.8.3" = {
+    "@babel/helper-simple-access-7.10.4" = {
       name = "_at_babel_slash_helper-simple-access";
       packageName = "@babel/helper-simple-access";
-      version = "7.8.3";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz";
+        sha512 = "0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==";
+      };
+    };
+    "@babel/helper-skip-transparent-expression-wrappers-7.11.0" = {
+      name = "_at_babel_slash_helper-skip-transparent-expression-wrappers";
+      packageName = "@babel/helper-skip-transparent-expression-wrappers";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz";
-        sha512 = "05xs5m527nwqh8qq916v0yad41rnwm9px7134xh2v13sc4bpygi5vngly5yw9bih573q1l7kxhhkdj358glvhpvwah2aw3r7h799lal";
+        url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz";
+        sha512 = "0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==";
       };
     };
-    "@babel/helper-split-export-declaration-7.8.3" = {
+    "@babel/helper-split-export-declaration-7.11.0" = {
       name = "_at_babel_slash_helper-split-export-declaration";
       packageName = "@babel/helper-split-export-declaration";
-      version = "7.8.3";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz";
-        sha512 = "1sgm6wd88kmizvig5m0ims97vmlylfii72xcw4k01h2wsw3cpc312s1asnjrq5y472hcqfh2mwn8dwpqkpcvs0ssqwnz1c1xhwz47fz";
+        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz";
+        sha512 = "74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==";
       };
     };
-    "@babel/helper-validator-identifier-7.9.0" = {
+    "@babel/helper-validator-identifier-7.10.4" = {
       name = "_at_babel_slash_helper-validator-identifier";
       packageName = "@babel/helper-validator-identifier";
-      version = "7.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz";
-        sha512 = "0gx4vkhiijg7fwwjybwryz8ilwr56ziamj68fnzmam13lbgspdjal8s742nmsc7p84nl87y9sanmd7ywq84wzzmw0gym1yfm101nvz8";
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
+        sha512 = "3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==";
       };
     };
-    "@babel/helper-wrap-function-7.8.3" = {
+    "@babel/helper-wrap-function-7.10.4" = {
       name = "_at_babel_slash_helper-wrap-function";
       packageName = "@babel/helper-wrap-function";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz";
-        sha512 = "08jncd536l4pg9svm19ksyfadg2c0sxd06zgb4ssdgz04vkm5ybb8x9fvn41i04a9pr7p02vbnzwgkqqip91yin1w8dfkq4nnnqj01c";
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz";
+        sha512 = "6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==";
       };
     };
-    "@babel/helpers-7.9.2" = {
+    "@babel/helpers-7.10.4" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.9.2";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz";
-        sha512 = "2j2k8r3s6hwlqg3whjxhsm1cpg030hylh2gimbxvi89f5w4s9j6z525hllf11mrgzcc11zsnlvqhczzgl0zyp2gg6y36gnmap7fy0i7";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz";
+        sha512 = "L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==";
       };
     };
-    "@babel/highlight-7.9.0" = {
+    "@babel/highlight-7.10.4" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz";
-        sha512 = "2qmdx9wdiv4yy36dc1ljghwd45kq6bhsddcbps8qznsrwvg3zjir6pb7nsfg4ypqrq6z2zif0ysjmwybpqp5xpz6rvymv2pbj54z5ll";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz";
+        sha512 = "i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==";
       };
     };
-    "@babel/parser-7.9.4" = {
+    "@babel/parser-7.11.4" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.9.4";
+      version = "7.11.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.9.4.tgz";
-        sha512 = "0fa6q1spz676yd7fadv1k2ki32yskai2zvzg7i3gwqc98n1082zsg6gb2f3d6rrvm53d73i9zlgcww2g343hq48alzxvs6psni3sbkc";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.11.4.tgz";
+        sha512 = "MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA==";
       };
     };
-    "@babel/plugin-proposal-async-generator-functions-7.8.3" = {
+    "@babel/plugin-proposal-async-generator-functions-7.10.5" = {
       name = "_at_babel_slash_plugin-proposal-async-generator-functions";
       packageName = "@babel/plugin-proposal-async-generator-functions";
-      version = "7.8.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz";
-        sha512 = "0rwwfjlp32i4bvax3zzcx990wylgr57wr6x9p6cdf2y145q8b5hjmrgr507d3sgpzmg565c8bzv6ipd44hsyg0vvqarpw1qzwp777rm";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz";
+        sha512 = "cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==";
       };
     };
-    "@babel/plugin-proposal-json-strings-7.8.3" = {
+    "@babel/plugin-proposal-dynamic-import-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-dynamic-import";
+      packageName = "@babel/plugin-proposal-dynamic-import";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz";
+        sha512 = "up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==";
+      };
+    };
+    "@babel/plugin-proposal-json-strings-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-json-strings";
       packageName = "@babel/plugin-proposal-json-strings";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz";
-        sha512 = "3ahyf2462nwk892y4fa4dpzksln13c50zpwkwn0620d98zbs12mwabdx76mmmjrndqxmlka5zivazxq602nrlf8zh328m6kklsm0s18";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz";
+        sha512 = "fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==";
       };
     };
-    "@babel/plugin-proposal-object-rest-spread-7.9.0" = {
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
+      packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz";
+        sha512 = "wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==";
+      };
+    };
+    "@babel/plugin-proposal-numeric-separator-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-numeric-separator";
+      packageName = "@babel/plugin-proposal-numeric-separator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz";
+        sha512 = "73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==";
+      };
+    };
+    "@babel/plugin-proposal-object-rest-spread-7.11.0" = {
       name = "_at_babel_slash_plugin-proposal-object-rest-spread";
       packageName = "@babel/plugin-proposal-object-rest-spread";
-      version = "7.9.0";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz";
-        sha512 = "2ik5r2xl569yrh5l5qdh8q3vd18n7c3wfb92xfl8jx57dzvlqn0ypbjyhd8rgv3xp9rj9rinqkvbjf1zvbvp96bdz1qgaz3lszq22jj";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz";
+        sha512 = "wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==";
       };
     };
-    "@babel/plugin-proposal-optional-catch-binding-7.8.3" = {
+    "@babel/plugin-proposal-optional-catch-binding-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
       packageName = "@babel/plugin-proposal-optional-catch-binding";
-      version = "7.8.3";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz";
+        sha512 = "LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==";
+      };
+    };
+    "@babel/plugin-proposal-optional-chaining-7.11.0" = {
+      name = "_at_babel_slash_plugin-proposal-optional-chaining";
+      packageName = "@babel/plugin-proposal-optional-chaining";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz";
-        sha512 = "1vxbchc54810whpqi4s5v4v86r30k8cnplwl8krkwj5f29nh1pf91ldlh1v7yfhyczxi1bamlzmxjlga1aw5p6pqd00py64kvn1f2fj";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz";
+        sha512 = "v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==";
       };
     };
-    "@babel/plugin-proposal-unicode-property-regex-7.8.8" = {
+    "@babel/plugin-proposal-unicode-property-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
       packageName = "@babel/plugin-proposal-unicode-property-regex";
-      version = "7.8.8";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz";
-        sha512 = "3qaz0kiybhl1f774kv904b7c168i2q3ajpw6ygk4h5llxjlbpk0lr5inzfml5f7y4g0yykzqr1pfbcbfqn5kiwpypq14vi9qdb66n0i";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz";
+        sha512 = "H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==";
       };
     };
     "@babel/plugin-syntax-async-generators-7.8.4" = {
@@ -307,7 +370,16 @@ let
       version = "7.8.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz";
-        sha512 = "0vr768w42hfh5r9hz6rqmx5gh8d6phcx615miv2dyhp68g5w3yy9b24c0i8a340bgv2m9jpd5snjldrsx9mwny4hjqrcz8635kjc9xp";
+        sha512 = "tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==";
+      };
+    };
+    "@babel/plugin-syntax-dynamic-import-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-dynamic-import";
+      packageName = "@babel/plugin-syntax-dynamic-import";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz";
+        sha512 = "5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==";
       };
     };
     "@babel/plugin-syntax-json-strings-7.8.3" = {
@@ -316,7 +388,25 @@ let
       version = "7.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz";
-        sha512 = "08g9zcfg8k58q0bki8ar2b26fadfmmcc3v4znspy4bg0f16mxa5hqqldcc1js74jxcwq45x3q2jx4baq1mf3r3bgglgh7jnd9sa93lm";
+        sha512 = "lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==";
+      };
+    };
+    "@babel/plugin-syntax-nullish-coalescing-operator-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-nullish-coalescing-operator";
+      packageName = "@babel/plugin-syntax-nullish-coalescing-operator";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz";
+        sha512 = "aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==";
+      };
+    };
+    "@babel/plugin-syntax-numeric-separator-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-numeric-separator";
+      packageName = "@babel/plugin-syntax-numeric-separator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz";
+        sha512 = "9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==";
       };
     };
     "@babel/plugin-syntax-object-rest-spread-7.8.3" = {
@@ -325,7 +415,7 @@ let
       version = "7.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz";
-        sha512 = "2a9vg6b6p2rfhcflic2w6rbrbiqrdgj4ra2q20g1qv6ncwmvja2jq8snygwfw1ll1k94rqnbj4hc1fpizgr1v35rfvxqvwr6658r2jy";
+        sha512 = "XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==";
       };
     };
     "@babel/plugin-syntax-optional-catch-binding-7.8.3" = {
@@ -334,331 +424,367 @@ let
       version = "7.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz";
-        sha512 = "3frbi2r4lw5ba5mik8ms5bmzw9kc43s4gs39kfxq1jrcmhi4bjnanxch5jb390g7jw3v8a0d28pw81jagja32j6qgm995imyz8c6lz9";
+        sha512 = "6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==";
       };
     };
-    "@babel/plugin-transform-arrow-functions-7.8.3" = {
+    "@babel/plugin-syntax-optional-chaining-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-optional-chaining";
+      packageName = "@babel/plugin-syntax-optional-chaining";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz";
+        sha512 = "KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==";
+      };
+    };
+    "@babel/plugin-syntax-top-level-await-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-top-level-await";
+      packageName = "@babel/plugin-syntax-top-level-await";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz";
+        sha512 = "ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==";
+      };
+    };
+    "@babel/plugin-transform-arrow-functions-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-arrow-functions";
       packageName = "@babel/plugin-transform-arrow-functions";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz";
-        sha512 = "338cllyizyzn9jldb8b19zzc0kzkrdw37rapvkr7sqw32my3zad5sm4vcbg0bvxkfjna8f7xp4fqb1xn0jlr25vfpwa24mwl3w4bi6h";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz";
+        sha512 = "9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==";
       };
     };
-    "@babel/plugin-transform-async-to-generator-7.8.3" = {
+    "@babel/plugin-transform-async-to-generator-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-async-to-generator";
       packageName = "@babel/plugin-transform-async-to-generator";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz";
-        sha512 = "1alfn84kb2xm5fra8p2zwplf243ncwh74ax888krbhm66ffn9xmaa5ndmlcgqia375zfxrh8fx2jy797wif9pd0wwnqixn3aas7sswa";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz";
+        sha512 = "F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==";
       };
     };
-    "@babel/plugin-transform-block-scoped-functions-7.8.3" = {
+    "@babel/plugin-transform-block-scoped-functions-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-block-scoped-functions";
       packageName = "@babel/plugin-transform-block-scoped-functions";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz";
-        sha512 = "2d0kvarza8mnbqfkyl1xbq32vrr2140a73ixv3qh9qmb1pgnnw678x6mpc8yhlzw6vix3gp6falg48h6swjg6pcsz0kdamhwzc0b3my";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz";
+        sha512 = "WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==";
       };
     };
-    "@babel/plugin-transform-block-scoping-7.8.3" = {
+    "@babel/plugin-transform-block-scoping-7.11.1" = {
       name = "_at_babel_slash_plugin-transform-block-scoping";
       packageName = "@babel/plugin-transform-block-scoping";
-      version = "7.8.3";
+      version = "7.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz";
-        sha512 = "3mp8c45pg6kwvci67fndm7k631ab4799di740limmwb7lrch9c9ma8r743lg6dhw7ail9pas486wybc77dqknrf8qc1hdfidrzdhsd4";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz";
+        sha512 = "00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==";
       };
     };
-    "@babel/plugin-transform-classes-7.9.2" = {
+    "@babel/plugin-transform-classes-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-classes";
       packageName = "@babel/plugin-transform-classes";
-      version = "7.9.2";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz";
-        sha512 = "0qnwdi6360a4j2yifxl76d3plhldndy1p4qnswanbr6ldsc3vllbq22h4majaa5jqg7qfxxhagabrwy154s6nd0nb9gpcgkngfsjbac";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz";
+        sha512 = "2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==";
       };
     };
-    "@babel/plugin-transform-computed-properties-7.8.3" = {
+    "@babel/plugin-transform-computed-properties-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-computed-properties";
       packageName = "@babel/plugin-transform-computed-properties";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz";
-        sha512 = "36fk87d811md1xxgp154k5i7389qwlibklymq8p5frx64628jaybqvxjjg49y7z5fp201n1820n8ddm633xjl4l85mnff5jjhi6561v";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz";
+        sha512 = "JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==";
       };
     };
-    "@babel/plugin-transform-destructuring-7.8.8" = {
+    "@babel/plugin-transform-destructuring-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-destructuring";
       packageName = "@babel/plugin-transform-destructuring";
-      version = "7.8.8";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz";
-        sha512 = "0jl5irg4ra9nwbdqzcbi4kyhwd1sah1f8z3ikw5pmdpj79rn1n7hc3f7xxjizf2x3qd6jagzjiihpbd6x1ksq972innpbinbghnw4kr";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz";
+        sha512 = "+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==";
       };
     };
-    "@babel/plugin-transform-dotall-regex-7.8.3" = {
+    "@babel/plugin-transform-dotall-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-dotall-regex";
       packageName = "@babel/plugin-transform-dotall-regex";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz";
-        sha512 = "0ihnh0bfa5fb3m5wpd5m2nb837kahwcyrzz70x9rs8968qrqf7x6379kgw95l2rpyzmns2589ncr9brh1z5qlc70llc9q37sf7kbfwh";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz";
+        sha512 = "ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==";
       };
     };
-    "@babel/plugin-transform-duplicate-keys-7.8.3" = {
+    "@babel/plugin-transform-duplicate-keys-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-duplicate-keys";
       packageName = "@babel/plugin-transform-duplicate-keys";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz";
-        sha512 = "08ww1bysk4r4s47pp58pw2pdx2f2kxxykdwx1kdsiqgb0z2v0pbfl2d1ni4gcq5g2cmvr8y52zq4sjqdv0lif4liahb8w8v2n44gixk";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz";
+        sha512 = "GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==";
       };
     };
-    "@babel/plugin-transform-exponentiation-operator-7.8.3" = {
+    "@babel/plugin-transform-exponentiation-operator-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-exponentiation-operator";
       packageName = "@babel/plugin-transform-exponentiation-operator";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz";
-        sha512 = "26i4rkcf5lgs5ccx03swkk0kb1z9rjvqvjd7jizzch1ldj5m5s60fh3fxwmraj85b5w1l5y5zcpbi1mvb0r5nw9f0170vx6ijw2j0ng";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz";
+        sha512 = "S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==";
       };
     };
-    "@babel/plugin-transform-for-of-7.9.0" = {
+    "@babel/plugin-transform-for-of-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-for-of";
       packageName = "@babel/plugin-transform-for-of";
-      version = "7.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz";
-        sha512 = "0aphbh180fndrdkpy3vvncgvjx7s260qvx2n6yyfsxprri5gwsz2yn4kf31k0nycwm92zfsss67fqf2nbgyhx1wr3lybh2cx9c2fc4m";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz";
+        sha512 = "ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==";
       };
     };
-    "@babel/plugin-transform-function-name-7.8.3" = {
+    "@babel/plugin-transform-function-name-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-function-name";
       packageName = "@babel/plugin-transform-function-name";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz";
-        sha512 = "04hzrww1ccdhk8gg5g89zxd90paqsfsxxv2d0jld3sr5lxbkhqnwi6hwp27w58cm3hi0qljwr3ilbgkdwpkzy9rdsgliw5v6jfcxvxc";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz";
+        sha512 = "OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==";
       };
     };
-    "@babel/plugin-transform-literals-7.8.3" = {
+    "@babel/plugin-transform-literals-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-literals";
       packageName = "@babel/plugin-transform-literals";
-      version = "7.8.3";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz";
+        sha512 = "Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==";
+      };
+    };
+    "@babel/plugin-transform-member-expression-literals-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-member-expression-literals";
+      packageName = "@babel/plugin-transform-member-expression-literals";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz";
-        sha512 = "38bav1jy57qq8fikvzz2hlmay39i8xg3s12vw1gx3nmm23bxf9dm7h5690700z8mldgc9dxx10sx7z7sgj9fijpgb9ixa3zjbq9yfnx";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz";
+        sha512 = "0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==";
       };
     };
-    "@babel/plugin-transform-modules-amd-7.9.0" = {
+    "@babel/plugin-transform-modules-amd-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-modules-amd";
       packageName = "@babel/plugin-transform-modules-amd";
-      version = "7.9.0";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz";
-        sha512 = "3wj8qylkfbb2mmi5s3r72yh654s27cqc97lcyi3llr15nw93ynf0sh7grakfihh2ihpxx9yr3icfwrfsx2wpjfc7dw1vp1lbl60765x";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz";
+        sha512 = "elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==";
       };
     };
-    "@babel/plugin-transform-modules-commonjs-7.9.0" = {
+    "@babel/plugin-transform-modules-commonjs-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-modules-commonjs";
       packageName = "@babel/plugin-transform-modules-commonjs";
-      version = "7.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz";
-        sha512 = "3rag3vbizrryxgh63crd9b5j9dan0hwnkxzzh0ag6rq6g1jl61bs4bkirlr0mbx2q1wz2ld4ipvh5rc1i9yh2aq98w2manap6n44fdb";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz";
+        sha512 = "Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==";
       };
     };
-    "@babel/plugin-transform-modules-systemjs-7.9.0" = {
+    "@babel/plugin-transform-modules-systemjs-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-modules-systemjs";
       packageName = "@babel/plugin-transform-modules-systemjs";
-      version = "7.9.0";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz";
-        sha512 = "14zkvrxkxqyava1yschic2apfnpgjsxaizwk1aki9say2ksnj2256lfzgrsxi0f94ql35xikfdwx0kjb80y7clmv6fzp8ysz6zq1j0n";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz";
+        sha512 = "f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==";
       };
     };
-    "@babel/plugin-transform-modules-umd-7.9.0" = {
+    "@babel/plugin-transform-modules-umd-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-modules-umd";
       packageName = "@babel/plugin-transform-modules-umd";
-      version = "7.9.0";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz";
-        sha512 = "16ys0wvmbpijqqi3yjfhgbcq0h79wgfbi9d2r2379bw6mmhpaqgps74byy16dj65z9p6h07x8hjijx084bh120l374hzdhm89ga8ddr";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz";
+        sha512 = "mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==";
       };
     };
-    "@babel/plugin-transform-named-capturing-groups-regex-7.8.3" = {
+    "@babel/plugin-transform-named-capturing-groups-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
       packageName = "@babel/plugin-transform-named-capturing-groups-regex";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz";
-        sha512 = "2givr1pfhw82nf5drhqd5is8lyikd8njd0lgj9ixkikxllj8c1hd9nirxigd0yn0af62j6djh71sqixd2id76xh9qx4yg8mqpzlbsvz";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz";
+        sha512 = "V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==";
       };
     };
-    "@babel/plugin-transform-new-target-7.8.3" = {
+    "@babel/plugin-transform-new-target-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-new-target";
       packageName = "@babel/plugin-transform-new-target";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz";
-        sha512 = "0bnq7wb7y55gsll55gvm7w1cdnplmn47sbdxfik4jvy1jayjlg2q4lig22ws8698pfcd8v3p6cq5bvimwnvlwhlgfqrqhlvr358dr22";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz";
+        sha512 = "YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==";
       };
     };
-    "@babel/plugin-transform-object-super-7.8.3" = {
+    "@babel/plugin-transform-object-super-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-object-super";
       packageName = "@babel/plugin-transform-object-super";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz";
-        sha512 = "06hyil9pvnm5jg66c563cs62035ymbf52sn705wr4rpzl3wn5vly5sghlahrjl5xhw4b91yrrm964l0r0i267rsgb36zd08x29mgcg7";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz";
+        sha512 = "5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==";
       };
     };
-    "@babel/plugin-transform-parameters-7.9.3" = {
+    "@babel/plugin-transform-parameters-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-parameters";
       packageName = "@babel/plugin-transform-parameters";
-      version = "7.9.3";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz";
+        sha512 = "xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==";
+      };
+    };
+    "@babel/plugin-transform-property-literals-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-property-literals";
+      packageName = "@babel/plugin-transform-property-literals";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.3.tgz";
-        sha512 = "09al69prgs8rs1fpkvk4a1grhcs2ggkcw80sq3bch8nybafpwfr9drxn8yhg0fyy98l7mwa0ihw5yvxibwb93ir7chn5vk910ax0fkz";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz";
+        sha512 = "ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==";
       };
     };
-    "@babel/plugin-transform-regenerator-7.8.7" = {
+    "@babel/plugin-transform-regenerator-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-regenerator";
       packageName = "@babel/plugin-transform-regenerator";
-      version = "7.8.7";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz";
-        sha512 = "2n9vklnwvsx5nl6p39n3x6ylby7p2l1ymrn9320ggbl2yp95dqfpzh3wlcjkvdswwfgd7zs85jpvqlk2av9kxv0bavlcrvq1603x22c";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz";
+        sha512 = "3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==";
       };
     };
-    "@babel/plugin-transform-runtime-7.3.4" = {
+    "@babel/plugin-transform-reserved-words-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-reserved-words";
+      packageName = "@babel/plugin-transform-reserved-words";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz";
+        sha512 = "hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==";
+      };
+    };
+    "@babel/plugin-transform-runtime-7.9.6" = {
       name = "_at_babel_slash_plugin-transform-runtime";
       packageName = "@babel/plugin-transform-runtime";
-      version = "7.3.4";
+      version = "7.9.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.3.4.tgz";
-        sha512 = "0yb11rhnni08x0l9dhbzz8km2q4g33bpjixvq8hnyp1cghsib2h5xlqrvrl57x7m4h9lakrxd8hhc10cw68r58769wxf0gdxi301aix";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.6.tgz";
+        sha512 = "qcmiECD0mYOjOIt8YHNsAP1SxPooC/rDmfmiSK9BNY72EitdSc7l44WTEklaWuFtbOEBjNhWWyph/kOImbNJ4w==";
       };
     };
-    "@babel/plugin-transform-shorthand-properties-7.8.3" = {
+    "@babel/plugin-transform-shorthand-properties-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-shorthand-properties";
       packageName = "@babel/plugin-transform-shorthand-properties";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz";
-        sha512 = "3rh55yhh4q4sy77lmf2cqpscb553j904j99jjfih53hxiz32hgil33ndvbsdxqw84p6g8dk4xs0q27jnhsnzwr1qiq95l30wzlcil13";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz";
+        sha512 = "AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==";
       };
     };
-    "@babel/plugin-transform-spread-7.8.3" = {
+    "@babel/plugin-transform-spread-7.11.0" = {
       name = "_at_babel_slash_plugin-transform-spread";
       packageName = "@babel/plugin-transform-spread";
-      version = "7.8.3";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz";
-        sha512 = "3p85332hnhff55y3is8q3hvmq1jgr2dkypaz8ydyawhch6x56a2j28vw2aqxd2w7mbra8c2k9gz71k1ar8r4vcd702hm64vv59r6jqa";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz";
+        sha512 = "UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==";
       };
     };
-    "@babel/plugin-transform-sticky-regex-7.8.3" = {
+    "@babel/plugin-transform-sticky-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-sticky-regex";
       packageName = "@babel/plugin-transform-sticky-regex";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz";
-        sha512 = "1dmlmw2s1fmy0jllpwqpkdcrlg9rlggm7gxbm0wc5091afpjr1rqmdvb192zqbbfxmcxlq6acndn1p7i9s5vnczw5dr03w2y796lapm";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz";
+        sha512 = "Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==";
       };
     };
-    "@babel/plugin-transform-template-literals-7.8.3" = {
+    "@babel/plugin-transform-template-literals-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-template-literals";
       packageName = "@babel/plugin-transform-template-literals";
-      version = "7.8.3";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz";
-        sha512 = "1qsqiwghf845xmas44mbh7vhhhqv08wfm8g9v7fq4yrwj3f14zvxlp0wc5hlhwzwbg4487dxhv597a42gkn839z2n5h68d4vh310vgk";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz";
+        sha512 = "V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==";
       };
     };
-    "@babel/plugin-transform-typeof-symbol-7.8.4" = {
+    "@babel/plugin-transform-typeof-symbol-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-typeof-symbol";
       packageName = "@babel/plugin-transform-typeof-symbol";
-      version = "7.8.4";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz";
-        sha512 = "2mfnlkk7zxq37znqknq8z9wrk5g9r1zs2v1f21w1xnnqp69y5f0dcwclaw6khxbv13whzh27rn2b9wl85qamyy63rgy7glx65zb40nr";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz";
+        sha512 = "QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==";
       };
     };
-    "@babel/plugin-transform-unicode-regex-7.8.3" = {
+    "@babel/plugin-transform-unicode-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-unicode-regex";
       packageName = "@babel/plugin-transform-unicode-regex";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz";
-        sha512 = "1kml3kqk32kcwg2snmk38k4xiisyim2nm4g0xji5h9pgzm2bgwad9ad85kddddqmldkc9i3qyrsf7ai8valp3gf8g96g68x6qkf1rzs";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz";
+        sha512 = "wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==";
       };
     };
-    "@babel/preset-env-7.3.4" = {
+    "@babel/preset-env-7.9.6" = {
       name = "_at_babel_slash_preset-env";
       packageName = "@babel/preset-env";
-      version = "7.3.4";
+      version = "7.9.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.3.4.tgz";
-        sha512 = "203xg6r6imb5gaqxzk06ann6568pgn61398ygl79421ybxkj7xcpijxsvlnzd15zjypr20x9a43flg0mnih8bhdsa00gwqahdyjlv6s";
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.6.tgz";
+        sha512 = "0gQJ9RTzO0heXOhzftog+a/WyOuqMrAIugVYxMYf83gh1CQaQDjMtsOpqOwXyDL/5JcWsrCm8l4ju8QC97O7EQ==";
       };
     };
-    "@babel/runtime-7.3.4" = {
-      name = "_at_babel_slash_runtime";
-      packageName = "@babel/runtime";
-      version = "7.3.4";
+    "@babel/preset-modules-0.1.4" = {
+      name = "_at_babel_slash_preset-modules";
+      packageName = "@babel/preset-modules";
+      version = "0.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.3.4.tgz";
-        sha512 = "3m5vxl1yg3z98wjmhhxyxdwmk2a10yj2dvh42zqvjfl43cwqw2ir57gimhwr7n820bs2w1n0z2575i233xqvd7bnmdb0s2jqyffzxr2";
+        url = "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz";
+        sha512 = "J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==";
       };
     };
-    "@babel/runtime-7.9.2" = {
+    "@babel/runtime-7.9.6" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.9.2";
+      version = "7.9.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz";
-        sha512 = "3sh2slrgff4njf77qzi5x2b8l2a2bksb8nfxzcfa0y4vq6g7jcz3vzl1p5kxg96ni206l0z4wvxzm45vr243pzrwv8nwz3fwys86k9l";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.6.tgz";
+        sha512 = "64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==";
       };
     };
-    "@babel/template-7.8.6" = {
+    "@babel/template-7.10.4" = {
       name = "_at_babel_slash_template";
       packageName = "@babel/template";
-      version = "7.8.6";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz";
-        sha512 = "0z8kzrpis50nr4vsyqr77cpqad0xfsacw45jdhwsl89mdzpvy8wcvc0kdy938kb0ll069plxhgy3a3fpag408ci2pb47gxzrhy2rcyd";
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz";
+        sha512 = "ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==";
       };
     };
-    "@babel/traverse-7.9.0" = {
+    "@babel/traverse-7.11.0" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.9.0";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz";
-        sha512 = "3giz5rwk1g73w7f31fpnpf418bk0pkh05npk3vajnybyxhfxj7s5wcs4z1wlj8f055sxv24lspca5ia36cm2pgf3j9qb7x49y7m01lc";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz";
+        sha512 = "ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==";
       };
     };
-    "@babel/types-7.9.0" = {
+    "@babel/types-7.11.0" = {
       name = "_at_babel_slash_types";
       packageName = "@babel/types";
-      version = "7.9.0";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz";
-        sha512 = "2g85q87d2pq07ggy89zwnd847mlxig5blaapazf7940b8vjbff48l2digxcjfi3dg9vnrkv8n4yjz4j8s15nvhry5jk5kz4yllljbq5";
-      };
-    };
-    "@cnakazawa/watch-1.0.4" = {
-      name = "_at_cnakazawa_slash_watch";
-      packageName = "@cnakazawa/watch";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz";
-        sha512 = "2hl7iz90jal2f27hgyb5rbmcp96p182xkmflyj5rsyqqffng8vkzz3fcjvbvcpdykij40ax4yirdc6p68yrmjvai7hr8y93mj20indz";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz";
+        sha512 = "O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==";
       };
     };
     "@hapi/address-2.1.4" = {
@@ -667,7 +793,7 @@ let
       version = "2.1.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz";
-        sha512 = "1sqi7ls27blq5mlm1r1lbkpyyx347q67x6732qsxw0ms2cqxm814wqpfysa3c64ak47qcfmknk2xsjayi0myv1csr7pvcry162lyga0";
+        sha512 = "QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ==";
       };
     };
     "@hapi/bourne-1.3.2" = {
@@ -676,7 +802,7 @@ let
       version = "1.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz";
-        sha512 = "2jaj0r6ay5qf2ayzcsb02495kaxxdflks99g9k8ff9fi2qq8xns3f6vjiq4949af9gxjrzq6n7vxry55y3lskg2vm6ywlps7qflvmfm";
+        sha512 = "1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==";
       };
     };
     "@hapi/hoek-8.5.1" = {
@@ -685,7 +811,7 @@ let
       version = "8.5.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@hapi/hoek/-/hoek-8.5.1.tgz";
-        sha512 = "2ir1zjr8jp78q5v2sm9lh7w5vlb7spdynsy25ndaqgh78d6p9rvmvzc09pzbimbh04p06527jk00jwzadzyffb75jrvbww3r1ny9pn8";
+        sha512 = "yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow==";
       };
     };
     "@hapi/joi-15.1.1" = {
@@ -694,7 +820,7 @@ let
       version = "15.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz";
-        sha512 = "00w6lcx6spr7z1xbkfady5yxfxkiw4f3crds9l6qirvnsp30c026jziafi6km0p5146dygrfs1rz47j9klph7y6zcfcnaqfjgqmyyvs";
+        sha512 = "entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==";
       };
     };
     "@hapi/topo-3.1.6" = {
@@ -703,7 +829,25 @@ let
       version = "3.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz";
-        sha512 = "04mh0ix6qpfggy9if6vjicickw0xydydny3hh2vs1q9gji5fg31jyr25mnagl48pl6mzn2p4dc65fbpm7w53bka7zz033qw679a01ml";
+        sha512 = "tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==";
+      };
+    };
+    "@jest/types-25.5.0" = {
+      name = "_at_jest_slash_types";
+      packageName = "@jest/types";
+      version = "25.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz";
+        sha512 = "OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==";
+      };
+    };
+    "@jest/types-26.3.0" = {
+      name = "_at_jest_slash_types";
+      packageName = "@jest/types";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz";
+        sha512 = "BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==";
       };
     };
     "@mrmlnc/readdir-enhanced-2.2.1" = {
@@ -712,7 +856,7 @@ let
       version = "2.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz";
-        sha512 = "3g9wzm6hszqh30x6hmwc9l4vw51c6a224cp2y9qzlj98vzbwbc4s7lfafi67v8401qagjsdxrndnnannzz6i71krmn8svxwk3lfkwbc";
+        sha512 = "bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==";
       };
     };
     "@nodelib/fs.scandir-2.1.3" = {
@@ -721,7 +865,7 @@ let
       version = "2.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz";
-        sha512 = "07zn0jp8b7nrrpkxwx715n68ncr51xiyz46j8g1fdvy07cr3s60npwhds1difzwdgz762zwirirppmc5dwl5pdqmww1m0zp15hv0sbq";
+        sha512 = "eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==";
       };
     };
     "@nodelib/fs.stat-1.1.3" = {
@@ -730,7 +874,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz";
-        sha512 = "0zx6w7vq6bz1fxg0dhvd9nwbrbvghcln2xmj89p93dq84bm8pdiiddds49wn45wplh8f8mdnkjv2w0cjn3a1i83v3yq22wh4q7jc45j";
+        sha512 = "shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==";
       };
     };
     "@nodelib/fs.stat-2.0.3" = {
@@ -739,7 +883,7 @@ let
       version = "2.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz";
-        sha512 = "2n8008qx9kqgxsgsd22r2xrkm56nwsnwjfws9s4jjmbrk4gz8vfhdw7vp70kn59mqfihkdks6s0101javrpfi7hg8l0qk3nwjp4a03d";
+        sha512 = "bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==";
       };
     };
     "@nodelib/fs.walk-1.2.4" = {
@@ -748,25 +892,34 @@ let
       version = "1.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz";
-        sha512 = "2nsw6dfpkrkm8pxp2d9jlva5mnwqfzssj9r3xlyvrybb26xvjjkw7c0jvfilz08xvvgaanjxvqz6ycqh35avnqwg8mns39biqwmfpym";
+        sha512 = "1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==";
       };
     };
-    "@sindresorhus/is-0.7.0" = {
+    "@sindresorhus/is-0.14.0" = {
       name = "_at_sindresorhus_slash_is";
       packageName = "@sindresorhus/is";
-      version = "0.7.0";
+      version = "0.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-0.7.0.tgz";
-        sha512 = "2ilygr40l2yqbk6lix4xnnnqsq6fxa6sysdxg49bg1ax5gzhwy3bcjbdlk7lndgh9055slpx6fybs3p8mhvbsnnjkmkqzrfy8l5mn1q";
+        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz";
+        sha512 = "9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==";
       };
     };
-    "@sindresorhus/is-2.1.0" = {
+    "@sindresorhus/is-2.1.1" = {
       name = "_at_sindresorhus_slash_is";
       packageName = "@sindresorhus/is";
-      version = "2.1.0";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.0.tgz";
-        sha512 = "0v01lvb36q7cjz2v5spd6h3gcqmw69jmrpa6nsdpdmipxihzn6wv8clkyxibcvxv4b5ajpsz5rg0aiwwhjy7nl0jcwax8sa59zrfwlm";
+        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-2.1.1.tgz";
+        sha512 = "/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==";
+      };
+    };
+    "@szmarczak/http-timer-1.1.2" = {
+      name = "_at_szmarczak_slash_http-timer";
+      packageName = "@szmarczak/http-timer";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz";
+        sha512 = "XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==";
       };
     };
     "@szmarczak/http-timer-4.0.5" = {
@@ -775,7 +928,7 @@ let
       version = "4.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz";
-        sha512 = "06naxv8ahcw0kc4pzg2fzqqrmb0ah6lsi3qvy3s4a5x2fkil74z97yiagbykqanf1b0zrzq4lhrip8sc6fs124kiypaqqdmr7v4091z";
+        sha512 = "PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==";
       };
     };
     "@types/anymatch-1.3.1" = {
@@ -784,7 +937,7 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz";
-        sha512 = "32g2n75z48j6mx4k8iz6hm75q7r6dd24gk40lb02x7bffcjf6zf4ca10g51x8zqd1yr0zq2xny0wrvgfz1ynhmg8hv9l3j1g8yr3q7z";
+        sha512 = "/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==";
       };
     };
     "@types/cacheable-request-6.0.1" = {
@@ -793,7 +946,7 @@ let
       version = "6.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz";
-        sha512 = "2nx7h47i6xjvrbxlp329m2sx4qa8s7fw3c7xycfd6gr6wwfkjvyv1j5z1pf151w09vzhn721bjrh8p1ydba3vc5ljdy064177dnlhfa";
+        sha512 = "ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==";
       };
     };
     "@types/color-name-1.1.1" = {
@@ -802,34 +955,25 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz";
-        sha512 = "0yy21xdbsflgxc7lcl8i2cb4mnw9a518gcj77g39hslrlfanliz7agc4dihnkkhcdpnkas7i2sd5lf9f2i4kaq53axkgir3411qxgxf";
+        sha512 = "rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==";
       };
     };
-    "@types/events-3.0.0" = {
-      name = "_at_types_slash_events";
-      packageName = "@types/events";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz";
-        sha512 = "3v6shgxnlkc7izsc00g8ilpxi1q2mpcmbjyfawyqcj8mwfhlx2cnkm3hj87gsd39yyq33pilb0dbb4cdc8wwhn7dcwj4srg0amrp8qi";
-      };
-    };
-    "@types/glob-7.1.1" = {
+    "@types/glob-7.1.3" = {
       name = "_at_types_slash_glob";
       packageName = "@types/glob";
-      version = "7.1.1";
+      version = "7.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz";
-        sha512 = "3dhbgdkzpgx010hfgkhndrb094kbd3z6s4waicihnl0rp3jk0f0gs8vvzi84xzissrhml1dfgvbdhahzbh75nny1g6429fnqvlp866l";
+        url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz";
+        sha512 = "SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==";
       };
     };
-    "@types/html-minifier-terser-5.0.0" = {
+    "@types/html-minifier-terser-5.1.0" = {
       name = "_at_types_slash_html-minifier-terser";
       packageName = "@types/html-minifier-terser";
-      version = "5.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.0.0.tgz";
-        sha512 = "05y4l2y0vv2pif8awwvi76jy0b19pgwma0d3whwls29q6jzzrwnw1yncza40h1br0zsd980vfwn19hznim1gd031ds634jxh4zm5pmb";
+        url = "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.0.tgz";
+        sha512 = "iYCgjm1dGPRuo12+BStjd1HiVQqhlRhWDOQigNxn023HcjnhsiFz9pc6CzJj4HwDCSQca9bxTL4PxJDbkdm3PA==";
       };
     };
     "@types/http-cache-semantics-4.0.0" = {
@@ -838,7 +982,70 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz";
-        sha512 = "3a59p84bj2kf33npin2307frq0xhm47cvw2rw1xijb53yalq3m4bhxkjl045jraj56nz13xnis7amcnr0bd5x1r7785wf54dv9z4xbk";
+        sha512 = "c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==";
+      };
+    };
+    "@types/http-proxy-1.17.4" = {
+      name = "_at_types_slash_http-proxy";
+      packageName = "@types/http-proxy";
+      version = "1.17.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.4.tgz";
+        sha512 = "IrSHl2u6AWXduUaDLqYpt45tLVCtYv7o4Z0s1KghBCDgIIS9oW5K1H8mZG/A2CfeLdEa7rTd1ACOiHBc1EMT2Q==";
+      };
+    };
+    "@types/istanbul-lib-coverage-2.0.3" = {
+      name = "_at_types_slash_istanbul-lib-coverage";
+      packageName = "@types/istanbul-lib-coverage";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz";
+        sha512 = "sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==";
+      };
+    };
+    "@types/istanbul-lib-report-3.0.0" = {
+      name = "_at_types_slash_istanbul-lib-report";
+      packageName = "@types/istanbul-lib-report";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz";
+        sha512 = "plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==";
+      };
+    };
+    "@types/istanbul-reports-1.1.2" = {
+      name = "_at_types_slash_istanbul-reports";
+      packageName = "@types/istanbul-reports";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz";
+        sha512 = "P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==";
+      };
+    };
+    "@types/istanbul-reports-3.0.0" = {
+      name = "_at_types_slash_istanbul-reports";
+      packageName = "@types/istanbul-reports";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz";
+        sha512 = "nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==";
+      };
+    };
+    "@types/jest-26.0.10" = {
+      name = "_at_types_slash_jest";
+      packageName = "@types/jest";
+      version = "26.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/jest/-/jest-26.0.10.tgz";
+        sha512 = "i2m0oyh8w/Lum7wWK/YOZJakYF8Mx08UaKA1CtbmFeDquVhAEdA7znacsVSf2hJ1OQ/OfVMGN90pw/AtzF8s/Q==";
+      };
+    };
+    "@types/json-schema-7.0.5" = {
+      name = "_at_types_slash_json-schema";
+      packageName = "@types/json-schema";
+      version = "7.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz";
+        sha512 = "7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==";
       };
     };
     "@types/keyv-3.1.1" = {
@@ -847,7 +1054,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz";
-        sha512 = "1bydwp0jnaxaygfaw3xj8g6drxla6vamlgd2533jq8iplf1hfll274n67kcqj465la3k515krc53v8aqz23vnl2avxhsra0574niyrh";
+        sha512 = "MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==";
       };
     };
     "@types/minimatch-3.0.3" = {
@@ -856,25 +1063,25 @@ let
       version = "3.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz";
-        sha512 = "2ff7lcgph45bp2v5zsaxcy00rbh5n5h4njbicwhqilz66pd1lw7xfrpfl4i4ppfcx78zg9cp582b5fjif0dg7r18m44vxfksslvlyml";
+        sha512 = "tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==";
       };
     };
-    "@types/node-13.11.0" = {
+    "@types/node-14.6.2" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "13.11.0";
+      version = "14.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-13.11.0.tgz";
-        sha512 = "32v8pzb6g76fjsp064dr7qqry3f3dbbff56bkzw7qxpzg37kpldx5d61n87183b2s8svx1pid84c225frhy7gp3r6zz4808dfg2dkmq";
+        url = "https://registry.npmjs.org/@types/node/-/node-14.6.2.tgz";
+        sha512 = "onlIwbaeqvZyniGPfdw/TEhKIh79pz66L1q06WUQqJLnAb6wbjvOtepLYTGHTqzdXgBYIE3ZdmqHDGsRsbBz7A==";
       };
     };
-    "@types/q-1.5.2" = {
+    "@types/q-1.5.4" = {
       name = "_at_types_slash_q";
       packageName = "@types/q";
-      version = "1.5.2";
+      version = "1.5.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/q/-/q-1.5.2.tgz";
-        sha512 = "17nxpx18sizfrmzc6d7xcc2pr2xn2cq83vh0hm24wpm8ibdlcq5r0m12gbps0sww2jayl9v7lqplss6nsyy6xc4rcn1s4rpmpg5vvki";
+        url = "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz";
+        sha512 = "1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==";
       };
     };
     "@types/responselike-1.0.0" = {
@@ -883,7 +1090,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz";
-        sha512 = "161bm0d6lm7yvh41bc6yspj5nb36j9v4nx7d3xfqgc3h2cg6z03ik6kfd8cv1q93qwblz5ibp30a7scscxj8vw963d5qz5f7033d5pk";
+        sha512 = "85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==";
       };
     };
     "@types/source-list-map-0.1.2" = {
@@ -892,43 +1099,61 @@ let
       version = "0.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz";
-        sha512 = "2q5qxxw2xrn72030yyfpxzl3b498dw1wbfbb86gk9a4i5mhq3adc2711mfdwyg7ixdy79ax1hdfp0vw0aqzwj32dlyklbbwd75bx4ib";
+        sha512 = "K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==";
       };
     };
-    "@types/tapable-1.0.5" = {
+    "@types/tapable-1.0.6" = {
       name = "_at_types_slash_tapable";
       packageName = "@types/tapable";
-      version = "1.0.5";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.5.tgz";
-        sha512 = "2sv1nmhp8gvylghvxmxvc02zral5hbrhj45cpl5bz7grf36r8mpaihybdvz1nwkkdn325lap4v1q2jbzzy1l3wz2q8bghr6y8rvc0gy";
+        url = "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz";
+        sha512 = "W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==";
       };
     };
-    "@types/uglify-js-3.0.5" = {
+    "@types/uglify-js-3.9.3" = {
       name = "_at_types_slash_uglify-js";
       packageName = "@types/uglify-js";
-      version = "3.0.5";
+      version = "3.9.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.0.5.tgz";
-        sha512 = "0kqcqx89pacasl4g5azinlm111qla4fn4k5ghsmyc9lsh2a2nhlj74zrm1apzw5zvnaxcl86ysym559000n93szj9ln0saj9151pc9g";
+        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.3.tgz";
+        sha512 = "KswB5C7Kwduwjj04Ykz+AjvPcfgv/37Za24O2EDzYNbwyzOo8+ydtvzUfZ5UMguiVu29Gx44l1A6VsPPcmYu9w==";
       };
     };
-    "@types/webpack-4.41.10" = {
+    "@types/webpack-4.41.21" = {
       name = "_at_types_slash_webpack";
       packageName = "@types/webpack";
-      version = "4.41.10";
+      version = "4.41.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.10.tgz";
-        sha512 = "2f211d97906nnasrwxk3c1f6bd5gc9za6vs3dqp6j5rg928kp975xsj7gfk9sbbvrqcfp0mrb6hjw7fd2m3x1dvcjik60mwmalv935w";
+        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.21.tgz";
+        sha512 = "2j9WVnNrr/8PLAB5csW44xzQSJwS26aOnICsP3pSGCEdsu6KYtfQ6QJsVUKHWRnm1bL7HziJsfh5fHqth87yKA==";
       };
     };
-    "@types/webpack-sources-0.1.7" = {
+    "@types/webpack-sources-1.4.2" = {
       name = "_at_types_slash_webpack-sources";
       packageName = "@types/webpack-sources";
-      version = "0.1.7";
+      version = "1.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-1.4.2.tgz";
+        sha512 = "77T++JyKow4BQB/m9O96n9d/UUHWLQHlcqXb9Vsf4F1+wKNrrlWNFPDLKNT92RJnCSL6CieTc+NDXtCVZswdTw==";
+      };
+    };
+    "@types/yargs-15.0.5" = {
+      name = "_at_types_slash_yargs";
+      packageName = "@types/yargs";
+      version = "15.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.7.tgz";
-        sha512 = "0px6j424ivmklnnzd5kspgsq0irlhf086gbcd74ycjhrmgz0wy6sv4lkz7l5p4ddz6fghjkl3j4vlxi99cnkf2h3masv30bjan8f9jz";
+        url = "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz";
+        sha512 = "Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==";
+      };
+    };
+    "@types/yargs-parser-15.0.0" = {
+      name = "_at_types_slash_yargs-parser";
+      packageName = "@types/yargs-parser";
+      version = "15.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz";
+        sha512 = "FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==";
       };
     };
     "@webassemblyjs/ast-1.9.0" = {
@@ -937,7 +1162,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz";
-        sha512 = "08744px0y61c8svh84df8xg0m3905gkz9wfjlp9pkk8j5dnfs66l43qff6d60y1n0igdzwdpf9bvrdy4jwrkcjs1l98ivlvpzj1db0b";
+        sha512 = "C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==";
       };
     };
     "@webassemblyjs/floating-point-hex-parser-1.9.0" = {
@@ -946,7 +1171,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz";
-        sha512 = "10dqii9lv28nj4ls9wv7ys4ckd7v9iz08cb2alpph0xgz44a437yfa6mdzgnkgw5zcgxjy4xqsxv9sfp49ay8c3hdw01w8jbdq6lvjc";
+        sha512 = "TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==";
       };
     };
     "@webassemblyjs/helper-api-error-1.9.0" = {
@@ -955,7 +1180,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz";
-        sha512 = "2dmpj9vdgdq3wjfa9a6jlb6xrg4d25l2an1r41sw91a7psdc9lp793ca7z7i9q2712p7gp42095r50xfsc2fwci9409npjch670phrm";
+        sha512 = "NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==";
       };
     };
     "@webassemblyjs/helper-buffer-1.9.0" = {
@@ -964,7 +1189,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz";
-        sha512 = "04387f8f3q0kk96h7l1js39xg4xy8ja9bxgqpmfpsj17xma1y3p3risra4yh8j3xbiyn4bxqmcgn6zlwv6n0yzw0jrax1iagbijb6m9";
+        sha512 = "qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==";
       };
     };
     "@webassemblyjs/helper-code-frame-1.9.0" = {
@@ -973,7 +1198,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz";
-        sha512 = "1j2zclfh4a784bb015c39kahlmalikwdx0k1xws46iynf1nskcy6szv1cldldn1zhm8ckj8wddfx6idpj3m2qzvw9pda3v4j1s9h40i";
+        sha512 = "ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==";
       };
     };
     "@webassemblyjs/helper-fsm-1.9.0" = {
@@ -982,7 +1207,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz";
-        sha512 = "2bjr61kxvrfhqr7439jkapxcij4cgm9lb32x55qq7hxn07cdkz69aaqvmzqqyir0bn8a1rfblmgvmd53jxg0jgwwjdi1clv2716ix1q";
+        sha512 = "OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==";
       };
     };
     "@webassemblyjs/helper-module-context-1.9.0" = {
@@ -991,7 +1216,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz";
-        sha512 = "3r1d7c1zr0b9f85526k03d1p47kq7qgih4q1fzwxv540aid771cjrmw68f6fipmhzlzxwxhj09q2vrxb96p59v7jd6cplw247r9d41h";
+        sha512 = "MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==";
       };
     };
     "@webassemblyjs/helper-wasm-bytecode-1.9.0" = {
@@ -1000,7 +1225,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz";
-        sha512 = "19im6kssfy0rjipdvz4jp03rjzkwhnvkp1q8zw7mjfx8yf2w7nlxpy5ambbzvlq5jvh8ks6x35nlh0kcmz68hmcqixwfdgjijs55ca7";
+        sha512 = "R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==";
       };
     };
     "@webassemblyjs/helper-wasm-section-1.9.0" = {
@@ -1009,7 +1234,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz";
-        sha512 = "2zs0rl7x9l6adbbiqgw2br1w09b1da351rc69znxakjg9c9wkb227xy374k1zkc7a79rc4q7lgwv9ami3pr4555mipqp4yybpr02wsy";
+        sha512 = "XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==";
       };
     };
     "@webassemblyjs/ieee754-1.9.0" = {
@@ -1018,7 +1243,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz";
-        sha512 = "17f4ncqxsp9b8ssciw5icvf8bxpd732cda6z1jdbddbxl58m3vkjaxpx3ymi4z0y8nnrify698x8g65w38761rjkgr0pzhlwqkgribm";
+        sha512 = "dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==";
       };
     };
     "@webassemblyjs/leb128-1.9.0" = {
@@ -1027,7 +1252,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz";
-        sha512 = "2kz1bim131l0y9pjznjv3qmw030gli8yb3hhd38hjrc2py5h551lgzcsjlrx6pnpwnq9rdsyh3ppkyarymrpnnqncimlmvhjlrp7m8h";
+        sha512 = "ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==";
       };
     };
     "@webassemblyjs/utf8-1.9.0" = {
@@ -1036,7 +1261,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz";
-        sha512 = "3rlyvh0fy205d045jr17hjj8y641hmhkkzk3gq78865jcqm55ff2n3jbalj5121q8li786hm9jg5ggv66qixp7fsb7i9938dfax15hr";
+        sha512 = "GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==";
       };
     };
     "@webassemblyjs/wasm-edit-1.9.0" = {
@@ -1045,7 +1270,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz";
-        sha512 = "33jfv92rsn09qz41blq4a781clr7n5lzpy44zb42fb499mbd1hd4mf0q4l6karmbm8gg552p9ayqgzawz29r2n56gwhrfrldw3g608n";
+        sha512 = "FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==";
       };
     };
     "@webassemblyjs/wasm-gen-1.9.0" = {
@@ -1054,7 +1279,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz";
-        sha512 = "26a9wb1a8jglkv330fkmcg7l4z9v1b8ygn32lw96z2wiq1m65f7b3rqp1f1rhgg72sxdx0zsirs6am97phy66svps3y7k0qisikgwbh";
+        sha512 = "cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==";
       };
     };
     "@webassemblyjs/wasm-opt-1.9.0" = {
@@ -1063,7 +1288,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz";
-        sha512 = "3c2a28pzyrsdrichvzc0v1kik18sb0pwfjkwhbm1cc6xakfw5wgialgqkrrv9c7ibskwh1k75m9xf9v4hmd42xj6676z1i7l2dy0j22";
+        sha512 = "Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==";
       };
     };
     "@webassemblyjs/wasm-parser-1.9.0" = {
@@ -1072,7 +1297,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz";
-        sha512 = "0n0927dbd3wsan69ljwzlp9pi15axs3a11sypfl720s8dm8g0q81kxq0w0qybzgm16fwk073y7ffkhm4gqv0cv496fhkn0iihr29v7p";
+        sha512 = "9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==";
       };
     };
     "@webassemblyjs/wast-parser-1.9.0" = {
@@ -1081,7 +1306,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz";
-        sha512 = "1pkw353ygc8csplwi4nfx5n296wcj4b8yawrl0kxhizq4fdbbsvrhphzzcvx1p8r8ccj9yq2x5yix17q54gyhikcvr74hyhzl095jma";
+        sha512 = "qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==";
       };
     };
     "@webassemblyjs/wast-printer-1.9.0" = {
@@ -1090,7 +1315,7 @@ let
       version = "1.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz";
-        sha512 = "2qb0ghchp4dw0yxp9c4h9iw6m7lk58sz7f9j4kmrvp5hj804kwxdskgbjcc96g3r7f3zwvcyw3nlnr718rml73f8gr727bbvq9jg7fq";
+        sha512 = "2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==";
       };
     };
     "@xtuc/ieee754-1.2.0" = {
@@ -1099,7 +1324,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz";
-        sha512 = "1wczr2c331gq4q6w6nsiylqs6q6dp0j2lvc231826gfrdhr3lcimmyhswp4g0b5p7k7k525gq6gh0wpg65sjlp2s4f0n6ww18m2fzqd";
+        sha512 = "DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==";
       };
     };
     "@xtuc/long-4.2.2" = {
@@ -1108,7 +1333,7 @@ let
       version = "4.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz";
-        sha512 = "00n8akj5s578b8r7vcdz817cnmga21vznz895kygvb0j780968szj171f91b0bgvz880ff7zq025q4087cgxb2fqpyg01sgil2ymq9n";
+        sha512 = "NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==";
       };
     };
     "abbrev-1.1.1" = {
@@ -1117,7 +1342,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
-        sha512 = "38s4f3id97wsb0rg9nm9zvxyq0nvwrmrpa5dzvrkp36mf5ibs98b4z6lvsbrwzzs0sbcank6c7gpp06vcwp9acfhp41rzlhi3ybsxwy";
+        sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
       };
     };
     "accepts-1.3.7" = {
@@ -1126,7 +1351,7 @@ let
       version = "1.3.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
-        sha512 = "2j51dxzbgz22q0k7dhivimfsqx9a0f0h9slfd7n20gz3y1944gx3y7xai54za0x3zhbar6vqiaab2i9p913cwqk414qk3cnrm138pr2";
+        sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
       };
     };
     "acorn-6.4.1" = {
@@ -1135,7 +1360,7 @@ let
       version = "6.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz";
-        sha512 = "1s65pswzbh0155lsrdln08lifgs34zb53vkfl8fvxwnfmrc84vj01m9b31w4n846k7vk8lr5ns6wqf0fxc8xz98vkihldxsgn9ksl35";
+        sha512 = "ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==";
       };
     };
     "address-1.0.3" = {
@@ -1144,16 +1369,16 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/address/-/address-1.0.3.tgz";
-        sha512 = "27dii2i2aw9z3pw09110914532z5dfywxp8gbrfr14737cwy8m0jysam3abmfsbp8g51sd02ys57j5snwly3zfd0vrbli4109rni7ng";
+        sha512 = "z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg==";
       };
     };
-    "ajv-6.12.0" = {
+    "ajv-6.12.4" = {
       name = "ajv";
       packageName = "ajv";
-      version = "6.12.0";
+      version = "6.12.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz";
-        sha512 = "0gkcic96nmpcq311i2jfwbaa961x0mj7mkl7iwk213hyn4jgxbl0a472lcpg9dr7ybacn3i45fj6q0dz3g8rqmva7r14i9la240ba0g";
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz";
+        sha512 = "eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==";
       };
     };
     "ajv-errors-1.0.1" = {
@@ -1162,16 +1387,16 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz";
-        sha512 = "24kqslzd256yc0dckqcg8n1rngyfzdflfznp55hnhkv3rhyzirjhpj31rgiiryyjlw8a64x9ba7hdqkpiwf6jpllwyyyhr7zqxmy90c";
+        sha512 = "DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==";
       };
     };
-    "ajv-keywords-3.4.1" = {
+    "ajv-keywords-3.5.2" = {
       name = "ajv-keywords";
       packageName = "ajv-keywords";
-      version = "3.4.1";
+      version = "3.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz";
-        sha512 = "1lyjmfg70gijr3gjs63qmawfazm5mz8vb1bknyy1vzdif6a30vi3dpwkrlv4j4i5dg56jd3fliqgfq0rxbm98a42jxbgnyxmdn65va4";
+        url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz";
+        sha512 = "5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==";
       };
     };
     "alphanum-sort-1.0.2" = {
@@ -1189,7 +1414,7 @@ let
       version = "3.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz";
-        sha512 = "2n6gl8300ihln724832pvvzrii5c4qjli9xc16s632ywnyrfbv1kmcqg133v25583hqhflpsfi2yhkjy6nhzj0si5v36zhym0cifxc4";
+        sha512 = "hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==";
       };
     };
     "ansi-escapes-3.2.0" = {
@@ -1198,7 +1423,7 @@ let
       version = "3.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
-        sha512 = "12pp3q4c44hrzr2xl9vqjigwjn2wr1j0lhvshl75z5m6a97hqkd047sdcma1inzjvxhpkzk1qkvag7cw3sya32s9wsfasr6xsnnj63h";
+        sha512 = "cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==";
       };
     };
     "ansi-html-0.0.7" = {
@@ -1234,7 +1459,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
-        sha512 = "1v2gfp292kslpvam0l0h1iba35yi0n7dc6qv6fmxsdyfcp6zakkl13vrh3hzsw4zgh50jrrsg7xb2q2hn4g8a0dmf947mfcylymxanm";
+        sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
       };
     };
     "ansi-regex-5.0.0" = {
@@ -1243,7 +1468,7 @@ let
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz";
-        sha512 = "2bgymyprr0q59vfj2qnmnlcbi60jvry6kzdk94nlw3x6176ar5g0qddm8w01bw7fj2hrb4xlb75x4dqs38198sjachhslcfks7rz3kd";
+        sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==";
       };
     };
     "ansi-styles-2.2.1" = {
@@ -1261,7 +1486,7 @@ let
       version = "3.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz";
-        sha512 = "2lgkskkj4c1fsnrksy0yffda0wss84p8lfiazdc7jli7iqnvrxkzbxjzpvx13lm28qw0zkawfxvz2bdiisc72ccy7hx8i8rm4iijgam";
+        sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
       };
     };
     "ansi-styles-4.2.1" = {
@@ -1270,7 +1495,7 @@ let
       version = "4.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz";
-        sha512 = "2619xzd910i29pa6v368sk8jdgjk3yqqvjwbg3hyj6byd3ygcrs3xix3fy03smqgiylhdrkrvyrhhnv1l5pkc64qn7zgmh6rfna6lgm";
+        sha512 = "9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==";
       };
     };
     "anymatch-2.0.0" = {
@@ -1279,7 +1504,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz";
-        sha512 = "03mjsaw6xk4zhvl17fpqn59j4v2bafqs0yfw5y45hl8x97xlihwvjmcx3icnaamvipplnczymvzg4sb4ixwpzak0k3p21c00nqqxmz6";
+        sha512 = "5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==";
       };
     };
     "anymatch-3.1.1" = {
@@ -1288,7 +1513,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz";
-        sha512 = "2776jrfn8kh9r6qhz6s43znnwvqmbqrjsch99hdv21j53sj4njyjhrya67drxk8y7hvi28mjvdjj277jy4qd2zfayrjli3cdbdkkkwq";
+        sha512 = "mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==";
       };
     };
     "aproba-1.2.0" = {
@@ -1297,7 +1522,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
-        sha512 = "13mgnbmdhdq0qncijvpip1l39q1a8labcvj3hc3n1yl2zch106mdkn7p7bd5knvmfkkn1js9nd47nzyjk1himbm8ry8i8gd6mk7mlk3";
+        sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==";
       };
     };
     "argparse-1.0.10" = {
@@ -1306,7 +1531,7 @@ let
       version = "1.0.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
-        sha512 = "17fhywmdjcp8g0ys089i5xg26yajkkg9zg8hyry3fghz75b2pq5vdx997dk5p2sc15r9nsj8rmf4f27g81hi92kzj5q86sdmg5ni553";
+        sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
       };
     };
     "arr-diff-4.0.0" = {
@@ -1324,7 +1549,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz";
-        sha512 = "2vdly17xk5kw7bfzajrjdnw4ml3wrfblx8064n0i4fxlchcscx2mvnwkq2bnnqvbqvdy4vs9ad462lz0rid7khysly9m9vzjiblly1g";
+        sha512 = "L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==";
       };
     };
     "arr-union-3.1.0" = {
@@ -1360,7 +1585,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz";
-        sha512 = "2swmvaw9xcvzv29i247057pq4khyss7gnc0p244v1l2g2p2xpsr47m0dfaf54yscd3fc9njh3kvwly99w8shvd9p5fq6nvwwmqg7mw4";
+        sha512 = "hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==";
       };
     };
     "array-map-0.0.0" = {
@@ -1396,7 +1621,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz";
-        sha512 = "35whnhqnw23y121ilf8kl79pyqb9bjsg32gsazzlmww9zgk22c5jycf0vlkpsnp67rqw05hhw97hxw216hpnm6bxa620lyqwjhb2v0w";
+        sha512 = "HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==";
       };
     };
     "array-uniq-1.0.3" = {
@@ -1432,16 +1657,16 @@ let
       version = "0.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz";
-        sha512 = "1v2z1ll0l8rif8hh0d03jc49kz3p8hym63q8ixbas48w4a8akl413hwn08nx83m89sj3mxl06aa0grp7n8hj6hcbsb2k3fhj913674g";
+        sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
       };
     };
-    "asn1.js-4.10.1" = {
+    "asn1.js-5.4.1" = {
       name = "asn1.js";
       packageName = "asn1.js";
-      version = "4.10.1";
+      version = "5.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz";
-        sha512 = "15j9ms7k6dx08m1wqrvc4958vcrshjjpicpxmz9bflsyk0x2r7w20lxlm27jpyj7cwj6158a0582vifk393hqp0ysn9mlbabqw9qzd7";
+        url = "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz";
+        sha512 = "+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==";
       };
     };
     "assert-1.5.0" = {
@@ -1450,7 +1675,7 @@ let
       version = "1.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz";
-        sha512 = "1n2xh5m359gm4my50j2206n32q2h044lqrl8h122gjn41fizlrh32j1lj7wqfix1iblyvi7zvdgvzbf97f840lr17vfk8ph1imj0fqh";
+        sha512 = "EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==";
       };
     };
     "assert-plus-1.0.0" = {
@@ -1468,7 +1693,7 @@ let
       version = "3.9.12";
       src = fetchurl {
         url = "https://registry.npmjs.org/assets-webpack-plugin/-/assets-webpack-plugin-3.9.12.tgz";
-        sha512 = "0s21gk3wrzrj44dcpsxj8yffp5iwnjccj9h7yn3l7qls5gcw0cgbd25qqd04b192px7kyjyfx9adwp3vxp286g27g15vlsg5gyd79ca";
+        sha512 = "iqXT/CtP013CO+IZJG7f4/KmUnde+nn6FSksAhrGRbT1GODsFU3xocP6A5NkTFoey3XOI9n1ZY0QmX/mY74gNA==";
       };
     };
     "assign-symbols-1.0.0" = {
@@ -1486,7 +1711,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz";
-        sha512 = "0ga6b0jymkw4jrfvjilhfrddml29l1nrvj7r57d140p7rn31mmbni4j9z343v2zzz2zcnlsr2s17kmlgjkyvs9pxrf88an11pm9y77r";
+        sha512 = "+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==";
       };
     };
     "async-0.9.2" = {
@@ -1513,7 +1738,7 @@ let
       version = "2.6.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/async/-/async-2.6.3.tgz";
-        sha512 = "1g679kw2qqpqx1yd4s778r8rw3cv9qwmib5x3klk64kcl5ndw71bljcpav5jkk6grizlpvrqszsbs6fkmnlvcq5fnz2q33mrnb6zyfd";
+        sha512 = "zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==";
       };
     };
     "async-each-1.0.3" = {
@@ -1522,7 +1747,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz";
-        sha512 = "00vbg0zvq40mmvzz9q3klkk5ly5jh75kc8s3bf7j2ff9zivla3wlc8d622gajjq4w66mln5570dc936my6wh08ippfj5jagj51s3xfg";
+        sha512 = "z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==";
       };
     };
     "async-limiter-1.0.1" = {
@@ -1531,7 +1756,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz";
-        sha512 = "0sy81yyf4na58ic2m0ib0prkb9njb1qzl7wf3vlq4hhm4xnwgxaph0lr43gs1sd0rai2xp1h6phlwvni9jiggm94dd54i0wc1cabhvj";
+        sha512 = "csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==";
       };
     };
     "asynckit-0.4.0" = {
@@ -1549,7 +1774,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz";
-        sha512 = "1rbq2rl2ry0y3nkqs3013vgjrnzf03609rg58092r8zkvzzn6v15grhv2yhzb48sz74zmjcj8ix7f5whrfp4zvsxyzrh64fhs9awvjs";
+        sha512 = "Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==";
       };
     };
     "autoprefixer-8.6.5" = {
@@ -1558,7 +1783,7 @@ let
       version = "8.6.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-8.6.5.tgz";
-        sha512 = "25g0ccq9v5sb77q5yhffaxnva8ps64yqp82rzn9jfwl2hpcqbv02175icm0v6c6k4aywnayf6di6cq44agrlzjc6sfbrzp8flvqkd9w";
+        sha512 = "PLWJN3Xo/rycNkx+mp8iBDMTm3FeWe4VmYaZDSqL5QQB9sLsQkG5k8n+LNDFnhh9kdq2K+egL/icpctOmDHwig==";
       };
     };
     "aws-sign2-0.7.0" = {
@@ -1570,13 +1795,13 @@ let
         sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
       };
     };
-    "aws4-1.9.1" = {
+    "aws4-1.10.1" = {
       name = "aws4";
       packageName = "aws4";
-      version = "1.9.1";
+      version = "1.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz";
-        sha512 = "2x4b6c0ny64yv6ljfs6sv82akh200klmnh1m1i18hdj28ksxkr9c0szphnwcasy3g5y3l1wn858wcxnc2gi9q5wql8s678fc61xbhf0";
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz";
+        sha512 = "zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==";
       };
     };
     "babel-extract-comments-1.0.0" = {
@@ -1585,25 +1810,25 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz";
-        sha512 = "1ay21zjvpavyw19hzijli4ax209jw3lxrn2lfzdyd8v29b76r4i35nq4q6iff2zlz88x2py8lkvyczb5l41fnyx0chxlxg5hj5v6rd9";
+        sha512 = "qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==";
       };
     };
-    "babel-loader-8.0.4" = {
+    "babel-loader-8.1.0" = {
       name = "babel-loader";
       packageName = "babel-loader";
-      version = "8.0.4";
+      version = "8.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.4.tgz";
-        sha512 = "2pn5lfvi0s3fhz6fllidilfkz4h9v3l4632p55h9pyzccqda3fgpn2ayywyg2shfcw3y3q900xhkc7k63zyly3myqb9g80k8lv6243y";
+        url = "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz";
+        sha512 = "7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==";
       };
     };
-    "babel-plugin-dynamic-import-node-2.3.0" = {
+    "babel-plugin-dynamic-import-node-2.3.3" = {
       name = "babel-plugin-dynamic-import-node";
       packageName = "babel-plugin-dynamic-import-node";
-      version = "2.3.0";
+      version = "2.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz";
-        sha512 = "2ay3wlyykpjfs9awvl9xigggavibxvbi9hx1mplf87zmqff733aag7hzw89c4f28wf4hxcr404lsp01ndan45yxm9f1q44hjy98bam3";
+        url = "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz";
+        sha512 = "jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==";
       };
     };
     "babel-plugin-syntax-object-rest-spread-6.13.0" = {
@@ -1648,7 +1873,7 @@ let
       version = "6.18.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz";
-        sha512 = "1qk460vyxfs08g8586jdc02wqzyy2y06596qcn1na9bz7yxra6vgh6177qf345xai0virpaz56bkpgmfcrd8yx5l2vjkn49y66h9xdb";
+        sha512 = "q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==";
       };
     };
     "balanced-match-1.0.0" = {
@@ -1666,7 +1891,7 @@ let
       version = "0.11.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/base/-/base-0.11.2.tgz";
-        sha512 = "11dwi4v72034dqafp0qxsg8h6cpn92vv4vf909a9fybd69yfg6gqn4hhav6x59r1wbi8h1qlgfh9np0340mpljv1hc9v9p02giqygp5";
+        sha512 = "5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==";
       };
     };
     "base64-js-1.3.1" = {
@@ -1675,7 +1900,7 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz";
-        sha512 = "3mbfy80f2q6z8fwzch81hn7z0wjjsz6lwzz4jwrgr62pyql94mwi21k0l28xba2q1pydf8hf0jzzvr8w34rjmk135pjpmqfcj5kid4q";
+        sha512 = "mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==";
       };
     };
     "batch-0.6.1" = {
@@ -1702,7 +1927,7 @@ let
       version = "3.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz";
-        sha512 = "3qicqys1bg16slzbzjn3f0fir82r4d1h6lvy5y0cqqwzbs2iaxf93xgi6x47m7l87i102ifjn4qvjbf764gyncsxcqw7lw33mk7y4zs";
+        sha512 = "+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==";
       };
     };
     "big.js-5.2.2" = {
@@ -1711,7 +1936,7 @@ let
       version = "5.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz";
-        sha512 = "2cin34lhbrlligarblnrqnl6f419mkpqd4abjms0y1fk1mxzb6rqvh1sg0zif7bgskirhh6shxnqa444syk4cf87fmndil954xzc8mz";
+        sha512 = "vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==";
       };
     };
     "binary-0.3.0" = {
@@ -1729,16 +1954,16 @@ let
       version = "1.13.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz";
-        sha512 = "0drjfs8xmgc4rfi8nbbx7adsinnc5m0nc96dw3r3gars8zvg1kzay5a7a5s3islf13wmw7q9v15i7d2gdghs1lp6rh2wl6x80hcqzjj";
+        sha512 = "Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==";
       };
     };
-    "binary-extensions-2.0.0" = {
+    "binary-extensions-2.1.0" = {
       name = "binary-extensions";
       packageName = "binary-extensions";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz";
-        sha512 = "2izzpdg2m0av5pzbv1zyjfi15ddz5yk1d4h9cilzc8z6pzq5abcicnm2xx4b2jdrjk2l4h3zfawsxhnbzlgvlv4700q5930k796s69y";
+        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz";
+        sha512 = "1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==";
       };
     };
     "bindings-1.5.0" = {
@@ -1747,7 +1972,7 @@ let
       version = "1.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz";
-        sha512 = "24xpa35sym31k1x9hs78jbmsh58yx7ldkn03d4g5qhmvm0bi5cwqvpn2s6r8hkwhks5mhm81gz878gbp5g9b2s7zniy7gm1z6vvysm7";
+        sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==";
       };
     };
     "binwrap-0.2.2" = {
@@ -1756,7 +1981,7 @@ let
       version = "0.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/binwrap/-/binwrap-0.2.2.tgz";
-        sha512 = "1rh0lsxhj45r639casyzy4jncilkcfygfzz2h7hqm7rjbh0za510z2qmqjbzyrx98618fmcycgraqq115fbwh7n33wi29ipk75azrb3";
+        sha512 = "Y+Wvypk3JhH5GPZAvlwJAWOVH/OsOhQMSj37vySuWHwQivoALplPxfBA8b973rFJI7OS+O+1YmmYXIiEXVMAcw==";
       };
     };
     "bluebird-3.7.2" = {
@@ -1765,16 +1990,25 @@ let
       version = "3.7.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz";
-        sha512 = "2v12rs2wvv94hrlyv0nadxn9x11796k9mk7a8vg0bqsry8m2pbyy9dribalwikh34qkk3rp6gnis849y5z9x5mxzbbdgkfhc3l674sy";
+        sha512 = "XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==";
       };
     };
-    "bn.js-4.11.8" = {
+    "bn.js-4.11.9" = {
       name = "bn.js";
       packageName = "bn.js";
-      version = "4.11.8";
+      version = "4.11.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz";
-        sha512 = "20bg51v29zygy89w84qb64pkjikxfjdsgjs0ry6pvv8fkwn5kd1izrqn022d838q3rcaq8dmy033g7q8b6960j4f8ipan74y9ydimr2";
+        url = "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz";
+        sha512 = "E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==";
+      };
+    };
+    "bn.js-5.1.3" = {
+      name = "bn.js";
+      packageName = "bn.js";
+      version = "5.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz";
+        sha512 = "GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==";
       };
     };
     "body-parser-1.18.2" = {
@@ -1792,7 +2026,7 @@ let
       version = "1.19.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz";
-        sha512 = "2rl5ww96fwgmxdqhqmnknsaafw44vsr2xz7vf7nax8qz9jy8bmmdyawcy6yfny0wm7pi8m2jssakzjc1nin8z8207kv0gclpnrhy4bn";
+        sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
       };
     };
     "bonjour-3.5.0" = {
@@ -1819,7 +2053,7 @@ let
       version = "1.1.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
-        sha512 = "248cnpbbf0p32h53rd3g8wzpgrkaj4p078ra1g6l16f82i6bzkvmhwqan5rk88apbll9ly1476kngd7f7z27i3b3zxpbb3064f8yaw8";
+        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
       };
     };
     "braces-2.3.2" = {
@@ -1828,7 +2062,7 @@ let
       version = "2.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz";
-        sha512 = "3gxrfbb03jf6nh75n99snhv4a9jni48hfc0gkj5yl1cginpqx3d73dnp8snph1fdkc804iz6zg0aqibifjnscjfbpfziw2g7yg5pmv8";
+        sha512 = "aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==";
       };
     };
     "braces-3.0.2" = {
@@ -1837,7 +2071,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz";
-        sha512 = "38dmhgggv4r7xf3chli957yj4gzfv9xhif8zzaqjnxavkrs1qbmj9m84vxh42n1jl9sddy16ryp4g93l1p8dvrc1pbcvk2ippwadjvg";
+        sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
       };
     };
     "brorand-1.1.0" = {
@@ -1855,7 +2089,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz";
-        sha512 = "22gkxh9wf4hjxkyvj427k9r76xkz9vs63s1drwcggbpv0r7qdclzdvw167s7iq8936zak241cc5ck3bqkp6hy99zlkrbcmfl5g8gc7v";
+        sha512 = "+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==";
       };
     };
     "browserify-cipher-1.0.1" = {
@@ -1864,7 +2098,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz";
-        sha512 = "3bz6v63l37ndb18236yjdkbxjcvy4x16a8j7vsqxqprvnkcnkq1hg1ffd1c9zk9a3j555ppnpisfyh0x4adlb8lmpwbfa8i837n9y5h";
+        sha512 = "sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==";
       };
     };
     "browserify-des-1.0.2" = {
@@ -1873,7 +2107,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz";
-        sha512 = "3j1gv3firnsbjppm47ldxbav9rmh3plq026zn728wvhgf19i4r7kxzyyj7hpibhjv61lcm9i4b869yy90c8hfj7w8rmr17p2zbhwah6";
+        sha512 = "BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==";
       };
     };
     "browserify-rsa-4.0.1" = {
@@ -1885,13 +2119,13 @@ let
         sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
       };
     };
-    "browserify-sign-4.0.4" = {
+    "browserify-sign-4.2.1" = {
       name = "browserify-sign";
       packageName = "browserify-sign";
-      version = "4.0.4";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz";
-        sha1 = "aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298";
+        url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz";
+        sha512 = "/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==";
       };
     };
     "browserify-zlib-0.2.0" = {
@@ -1900,7 +2134,7 @@ let
       version = "0.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz";
-        sha512 = "24488d4s6d901hj9d9jdddapmcvmibbdpjq6nv3bpyjx72546fcqa0vripy0ydsrw1jk6bakfzvynh5i9cz0g59hrmn4ph75d3kdpk7";
+        sha512 = "Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==";
       };
     };
     "browserslist-3.2.8" = {
@@ -1909,7 +2143,7 @@ let
       version = "3.2.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/browserslist/-/browserslist-3.2.8.tgz";
-        sha512 = "00i65frm5jkbv8pzc13i02fzd39q0ahh653zzjzhq35pz6p0idajfjqg1b7mnnlvxymihcpmd1cfhwaj51hnqjmh4alrg8sjrq6hxaq";
+        sha512 = "WHVocJYavUwVgVViC0ORikPHQquXwVh939TaelZ4WDqpWgTX/FsGhl/+P4qBUAGcRvtOgDgC+xftNWWp2RUTAQ==";
       };
     };
     "browserslist-4.1.1" = {
@@ -1918,25 +2152,25 @@ let
       version = "4.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/browserslist/-/browserslist-4.1.1.tgz";
-        sha512 = "3clmw7m8rqcpk4qygqml0750q666n48jv76xgw4v7vsff8yyxylgb8lh9hkfx282pg4sj5ggzzysd2gjmaas88nsicyp930xg1jn6jl";
+        sha512 = "VBorw+tgpOtZ1BYhrVSVTzTt/3+vSE3eFUh0N2GCFK1HffceOaf32YS/bs6WiFhjDAblAFrx85jMy3BG9fBK2Q==";
       };
     };
-    "browserslist-4.11.1" = {
+    "browserslist-4.14.0" = {
       name = "browserslist";
       packageName = "browserslist";
-      version = "4.11.1";
+      version = "4.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.11.1.tgz";
-        sha512 = "3kf0caz4k8wilf978inqj6sgcxbsb9y7rc7m54gv7is132s81fc984wmrh8wl8hglcyvkxwwxm0vd2lf5qz8nx2qc6lca7b83gfn90c";
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.14.0.tgz";
+        sha512 = "pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ==";
       };
     };
-    "bser-2.1.1" = {
-      name = "bser";
-      packageName = "bser";
-      version = "2.1.1";
+    "bs-logger-0.2.6" = {
+      name = "bs-logger";
+      packageName = "bs-logger";
+      version = "0.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz";
-        sha512 = "30jby01rqjgx78xnzyysjav12c0cj8dcwd40wprcfh1jn3768cdkb834q1zyf3wivhifi47xqa7jai7x16m1jv1mq4g40f69ws56341";
+        url = "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz";
+        sha512 = "pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==";
       };
     };
     "buffer-4.9.2" = {
@@ -1945,7 +2179,7 @@ let
       version = "4.9.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz";
-        sha512 = "1d85syv6ashl8f3a6h553d185cg3vq6nhjqnc80vr2z3bak0c9xbm1jawfk9zs43xz34yih6h6j3bhb3njkahdqpji12fsc4kfsmby6";
+        sha512 = "xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==";
       };
     };
     "buffer-from-1.1.1" = {
@@ -1954,7 +2188,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz";
-        sha512 = "3c0m16i3fdv3vlq2zz8dakrnhqvs16gvggj485f91fiaa5v0p7pyhamcdw5fggr7djzd8nshmvz4hgbp7714smqxlld2an28q8if1ri";
+        sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==";
       };
     };
     "buffer-indexof-1.1.1" = {
@@ -1963,7 +2197,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz";
-        sha512 = "3bgz1zhq9ng3gypq825f00p9qi9y6z7wvkkf28nhjlyifnb3lk1dkmbya84k0ja79zv8kmmhvalwcnnz92533ip7pnjp3is1w9cxyp3";
+        sha512 = "4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==";
       };
     };
     "buffer-xor-1.0.3" = {
@@ -2008,7 +2242,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz";
-        sha512 = "073ccjmvxf726gcgzy0pksvi8x8r51dq6hyv69sc75ynrin7anwk9q3sqhbbbjhqjjrmq42s5f5gdbcgj2jxai6ldpyq6y2ny78payd";
+        sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
       };
     };
     "cacache-10.0.4" = {
@@ -2017,7 +2251,7 @@ let
       version = "10.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz";
-        sha512 = "0f1zwi8bbiia995410m24xljd0ra0vk579q7rk48p7mrq9nbilx3qa2rnp7hjdwnvx28zfad0rfdcwyq3blzkb3rk8b9yl77crp960f";
+        sha512 = "Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==";
       };
     };
     "cacache-12.0.4" = {
@@ -2026,7 +2260,7 @@ let
       version = "12.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz";
-        sha512 = "00qxfz1yqkizw00vx1948yfzilxv1c4pzxknh5hbwby5cgiyrzb488qwcdff4qdrbwm13skvhpxpshryw30py3s4bpgny98il3lqjvb";
+        sha512 = "a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==";
       };
     };
     "cache-base-1.0.1" = {
@@ -2035,7 +2269,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz";
-        sha512 = "36i943khi87af4gif9r6imjgybqxq9cbd69z2h8p2s2j6scfbhrv7j3n591xl982fmyq29rkwh70a6qdcf3v0piwzfh8n2jf571v9q0";
+        sha512 = "AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==";
       };
     };
     "cacheable-lookup-2.0.1" = {
@@ -2044,16 +2278,16 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz";
-        sha512 = "2714rgpq0wwdfnahlxn4a3g1fr6mf5dj2f3lkl874x991d7ilqvccrja0j4hk8nbc7g7yivvp9b2pf4rrgq3fpj6ghdjwck4fr1phqh";
+        sha512 = "EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==";
       };
     };
-    "cacheable-request-2.1.4" = {
+    "cacheable-request-6.1.0" = {
       name = "cacheable-request";
       packageName = "cacheable-request";
-      version = "2.1.4";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cacheable-request/-/cacheable-request-2.1.4.tgz";
-        sha1 = "0d808801b6342ad33c91df9d0b44dc09b91e5c3d";
+        url = "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz";
+        sha512 = "Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==";
       };
     };
     "cacheable-request-7.0.1" = {
@@ -2062,7 +2296,7 @@ let
       version = "7.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz";
-        sha512 = "1kmzafhx567pf4kbwdg03gxjx0d1l6j8lnb05y7f66kn8c1szz41kawa2jkf4zndaihac3i1yv7yjg6mrkk2lxs2b0wm7h0lqkjdpcn";
+        sha512 = "lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw==";
       };
     };
     "call-me-maybe-1.0.1" = {
@@ -2107,7 +2341,7 @@ let
       version = "4.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz";
-        sha512 = "3llmv9zy6jv6wn9nyxai15vw5zpjjpax70zzsz10gnd55kp1p86x59swnnylp20gjhgdnq5pj4ycfvd85n14bsjf9j82zdqq5cvdxpd";
+        sha512 = "7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==";
       };
     };
     "camelcase-3.0.0" = {
@@ -2125,7 +2359,7 @@ let
       version = "5.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz";
-        sha512 = "0kg17fpj4c7akmpa9x0a3fi5glrc3y5k3ppjcpb3pd02ylg3fnzfdvz0pixd223crbs5980sjaxsk9q8kcqxm5d9cb7rlkv3m614vrg";
+        sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
       };
     };
     "caniuse-api-3.0.0" = {
@@ -2134,25 +2368,16 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz";
-        sha512 = "2xvajfx062fy4i060qa7p4acawzmcpqs69jmklswq856lyzjq6p8vjgm5zi21ll5gxm7vvyc5xsh9bd30v5bppszr59c19zi2wg1i3f";
+        sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001039" = {
+    "caniuse-lite-1.0.30001119" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001039";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001039.tgz";
-        sha512 = "3qyz2ijjl61hkbifqpr2k8nrjw9gqlamp914lagh29kf1az6hkslbklljq5ss31n8lblczdvdi3pjjs2hgq71w52sr8gpyk4icdpv29";
-      };
-    };
-    "capture-exit-2.0.0" = {
-      name = "capture-exit";
-      packageName = "capture-exit";
-      version = "2.0.0";
+      version = "1.0.30001119";
       src = fetchurl {
-        url = "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz";
-        sha512 = "3m6md2j1rsn26hijf0yfbbfnx6w2jrrqhr2b2xwjc9lyzvypidyz5krczc9wb04z1vq4mgb759ljwn7iggiiigijzhp38lk162zy91y";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001119.tgz";
+        sha512 = "Hpwa4obv7EGP+TjkCh/wVvbtNJewxmtg4yVJBLFnxo35vbPapBr138bUWENkb5j5L9JZJ9RXLn4OrXRG/cecPQ==";
       };
     };
     "case-sensitive-paths-webpack-plugin-2.3.0" = {
@@ -2161,7 +2386,7 @@ let
       version = "2.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz";
-        sha512 = "1fzkc65mi135002lk75zd133f7k3cda42n14yb5lc6inqj10xpd2d3zyhc3bjq1k7zfdrlkxq9c26mdz48dpd30bqbmbjxwjjfj11pz";
+        sha512 = "/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ==";
       };
     };
     "caseless-0.12.0" = {
@@ -2179,7 +2404,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/caw/-/caw-2.0.1.tgz";
-        sha512 = "2wa0gi2wljxw00rvqz454sgdr8yy90z8lhprxjc1prwi695lnzrh6sk0qqhp63h9gmbldyvvzfvm8k1jk0sbv6icdawcss441jky3qa";
+        sha512 = "Cg8/ZSBEa8ZVY9HspcGUYaK63d/bN7rqS3CYCzEGUxuYv6UlmcjzDUz2fCFFHyTvUW5Pk0I+3hkA3iXlIj6guA==";
       };
     };
     "chainsaw-0.1.0" = {
@@ -2206,7 +2431,7 @@ let
       version = "2.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz";
-        sha512 = "1yl5ffjp5w65b9ydnw4vp13n563121hs64xbnajif51grhpqmslaqllj24zm1pfaw9ywvdx69n8ppa3riwlps25k5934zgnbf3pmcrr";
+        sha512 = "ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==";
       };
     };
     "chalk-2.4.2" = {
@@ -2215,7 +2440,7 @@ let
       version = "2.4.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
-        sha512 = "2wr55z22i274wadq2cvpxga28a8igq9whc4m1q06sz5sn2hc4amradd5vd02wm92vyfg2qrb0bysd5drv7mfmlb2wqdf939v5zvxn1j";
+        sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
       };
     };
     "chalk-3.0.0" = {
@@ -2224,7 +2449,16 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz";
-        sha512 = "31damxvnvxjdp3hhqfn9nxi6hrw9cmmy5vlf0nqfvns1qhp3ybc0y7viswj1jdxvc0w1f3zapjsl89hx9hcwv2p8jca7m7qczlw2gg0";
+        sha512 = "4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==";
+      };
+    };
+    "chalk-4.1.0" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz";
+        sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==";
       };
     };
     "chardet-0.7.0" = {
@@ -2233,7 +2467,7 @@ let
       version = "0.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz";
-        sha512 = "1qg04aw34n3l68g6s6li7pfdspkj3zmb7qsqf096h19jwc34mv8sbhik4xcx9aazys1ycb5k736f4lql46s0rhl361pmlz1r86j4gwr";
+        sha512 = "mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==";
       };
     };
     "charenc-0.0.2" = {
@@ -2251,7 +2485,7 @@ let
       version = "2.1.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz";
-        sha512 = "21d2yf3364v025ivy6ak1bh61qvvq9llryh8c1rhvrif1kalx0j996x8m0qs717cgl97q5c40awyv8gi8hbmpgfpl6zvkff6xmm8rk6";
+        sha512 = "ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==";
       };
     };
     "chokidar-3.0.2" = {
@@ -2260,7 +2494,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/chokidar/-/chokidar-3.0.2.tgz";
-        sha512 = "0l3pn1afpk9h62fjazidrp2dpgigsqwmpjy92686srm8j8ky8zx8072s00jmvz1mr8g78dj70y0vdg9j1h6m6vfp8sk4di3x3cx30vk";
+        sha512 = "c4PR2egjNjI1um6bamCQ6bUNPDiyofNQruHvKgHQ4gDUP/ITSVSzNsiI5OWtHOsX323i5ha/kk4YmOZ1Ktg7KA==";
       };
     };
     "chokidar-3.2.1" = {
@@ -2269,7 +2503,7 @@ let
       version = "3.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/chokidar/-/chokidar-3.2.1.tgz";
-        sha512 = "3mkp71nvz0h69nzh9z15is5l5lpmcs7nf5nypdv5s47fi1z1an9qm29677y5j6sviwky0kr82z4cild7f6qxgnpnflyq5gr8qz4ygpy";
+        sha512 = "/j5PPkb5Feyps9e+jo07jUZGvkB5Aj953NrI4s8xSVScrAo/RHeILrtdb4uzR7N6aaFFxxJ+gt8mA8HfNpw76w==";
       };
     };
     "chokidar-3.3.0" = {
@@ -2278,7 +2512,16 @@ let
       version = "3.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz";
-        sha512 = "3hbyi14x38mvx936wbajln4g1l8fcyi8fwvcrhf2jqn0yzcyda1d20q67k445j9bvs5kr7jdhd2s07srb2pnm7hxmjngp2k6wn8lsbl";
+        sha512 = "dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==";
+      };
+    };
+    "chokidar-3.4.2" = {
+      name = "chokidar";
+      packageName = "chokidar";
+      version = "3.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz";
+        sha512 = "IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==";
       };
     };
     "chownr-1.1.4" = {
@@ -2287,7 +2530,7 @@ let
       version = "1.1.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz";
-        sha512 = "1b03acmav1awkygrda5h64pn8msd6wda119q553hik728i1j72bfqyq7yzn1x7nmw28hvg9mcyh7krsj8vwsq3karnn55mj6smip7cc";
+        sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==";
       };
     };
     "chrome-trace-event-1.0.2" = {
@@ -2296,7 +2539,16 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz";
-        sha512 = "06mh145f12ppkxn7xdzrvh7rrjg9c770rqai08m8r5i31br1ihc96i63dyn0c4arfl1hl0za33kzy5i09x4agz77c11xv7hb33z7vzm";
+        sha512 = "9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==";
+      };
+    };
+    "ci-info-2.0.0" = {
+      name = "ci-info";
+      packageName = "ci-info";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz";
+        sha512 = "5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==";
       };
     };
     "cipher-base-1.0.4" = {
@@ -2305,7 +2557,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz";
-        sha512 = "3cm9kdc1sv7pakzlhrc1pazdvg9lk4hv31lximwbcrgmwfzg6imxrndszgx9yzlizknfh2b73cr7b5mfcv50bldpyq6jr5s4zknsj1a";
+        sha512 = "Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==";
       };
     };
     "class-utils-0.3.6" = {
@@ -2314,7 +2566,7 @@ let
       version = "0.3.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz";
-        sha512 = "1xcqwmfmsbrm2ck76brwiqjmcza655khgh5szh6wngk357i37sgwsga1pbarwzaz9hvzkriqhq6j0z5mv0pmz61cf9wxvk3y5mlzs58";
+        sha512 = "qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==";
       };
     };
     "clean-css-4.2.3" = {
@@ -2323,7 +2575,7 @@ let
       version = "4.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz";
-        sha512 = "0ad50l577m99sgpcdd49zspq8h9n9i3hhngapg9y5q76s7zwdz3hmaw2kc2jg30lk4z3wlyp9kgiyg71dvg0fg89g1xyr3qvq61dhsm";
+        sha512 = "VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==";
       };
     };
     "cli-cursor-2.1.0" = {
@@ -2344,13 +2596,13 @@ let
         sha1 = "f53b05266a8b1a0b934b3d0821e6e2dc5914ae23";
       };
     };
-    "cli-width-2.2.0" = {
+    "cli-width-2.2.1" = {
       name = "cli-width";
       packageName = "cli-width";
-      version = "2.2.0";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-width/-/cli-width-2.2.0.tgz";
-        sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639";
+        url = "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz";
+        sha512 = "GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==";
       };
     };
     "cliui-3.2.0" = {
@@ -2362,22 +2614,13 @@ let
         sha1 = "120601537a916d29940f934da3b48d585a39213d";
       };
     };
-    "cliui-4.1.0" = {
-      name = "cliui";
-      packageName = "cliui";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz";
-        sha512 = "26knyxdavl3y7kq82vfa094ym3n05vy2h2j5srb9fhhy8l43l0kwlasah5i78jks77zqgc373hbf96xcxv6am042gpbw35x452vwlg0";
-      };
-    };
     "cliui-5.0.0" = {
       name = "cliui";
       packageName = "cliui";
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz";
-        sha512 = "1fg1afsij2xwc4gpqbyhrp3s7q19w7bmii0ghmdv6cdx6giz3v0yqn25i3g7fw2lpi388jpvaf6nf9z2c7xp7w7psrww7569548d1rx";
+        sha512 = "PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==";
       };
     };
     "cliui-6.0.0" = {
@@ -2386,7 +2629,7 @@ let
       version = "6.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz";
-        sha512 = "2nrnc0jqyx39906mqm5rb1svgckj19nfhs2101bm0pmirf4fglfzjzxrfr3si7vfl8bhz84xg9fv8v295y83l6yn8rz0ph2va11pb5p";
+        sha512 = "t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==";
       };
     };
     "clone-response-1.0.2" = {
@@ -2404,7 +2647,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz";
-        sha512 = "1f80c0924lf6b1w99d89a62dbp6sc8mkndhv2gd5lz4l87vca1df8hglf3pd28v1i4x411akwjl3sixwmgf1m8lknw2r78hwqdy77xb";
+        sha512 = "q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==";
       };
     };
     "code-point-at-1.1.0" = {
@@ -2431,7 +2674,7 @@ let
       version = "3.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/color/-/color-3.1.2.tgz";
-        sha512 = "2k8bl73w917gsvrf34vprlahwjr6wj4al3rmhb25388gk1kkjgma55v1a80766b3slgppl1xgkm32f3b0rbqhvrkxcjq1wvfy2cjx5x";
+        sha512 = "vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==";
       };
     };
     "color-convert-1.9.3" = {
@@ -2440,7 +2683,7 @@ let
       version = "1.9.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz";
-        sha512 = "0d5pmdh1dh0qbpjrzdczwqkh0jwf8gxhq71mknwlxqz80h1q6kdrpghq4qfp0y4v650ia2jdihmzpb2n8hg00h72lnx05dgvysi9w21";
+        sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==";
       };
     };
     "color-convert-2.0.1" = {
@@ -2449,7 +2692,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
-        sha512 = "0ljb8898z3dy87kw5y4xzfajw793q0bqvkp039sk5k3bps50mgjg6iz6fz2klal75vgx3zcv4a6jahx0p5n22lsdzqyz2pvr0z044a5";
+        sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
       };
     };
     "color-name-1.1.3" = {
@@ -2467,7 +2710,7 @@ let
       version = "1.1.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
-        sha512 = "102q02y0q23lgfnxmqq3arriahq9jsbkx3pyhcyaqrfzq6zqyiw6xirgn8p36zv5y0znlwbdf620dx537ij4ixn6nqavpcn1gfbxv3l";
+        sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
       };
     };
     "color-string-1.5.3" = {
@@ -2476,7 +2719,7 @@ let
       version = "1.5.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz";
-        sha512 = "11p4cihq5874fmyvwkh0fp4dr2syliqsgg610rw46lsav41l6wcm4bgpkrl34gip3cqncw0ppmqwfknm5v02m1fj8qqk8cnlzk84bbl";
+        sha512 = "dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==";
       };
     };
     "colors-1.0.3" = {
@@ -2494,7 +2737,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz";
-        sha512 = "2saczc8hcdmgns1cp1g1p7g2sq4yksrik0ffvfkhkavmmgx8haqm034a4c9zj8im6kfjh00n2xi360yqfy7vbsi98zri0943r72mrbb";
+        sha512 = "a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==";
       };
     };
     "combined-stream-1.0.8" = {
@@ -2503,7 +2746,7 @@ let
       version = "1.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
-        sha512 = "1v09nkip7zpn3k3prkkg53w331rhczpfgcqb0q42i97nafra43l2khl5zvhd4ar0qmh145nmw7944jy8p108ny0xpgy29gf2wqph0qm";
+        sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
       };
     };
     "commander-2.14.1" = {
@@ -2512,7 +2755,7 @@ let
       version = "2.14.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/commander/-/commander-2.14.1.tgz";
-        sha512 = "11j7mwxfdnhi3yfkhxjvfkg1mzdsi3wq7iygma6ksmj1f7hfs0z8rpfcysqmy85f67mqvzhda3w1lyy1jqxxm31k799sazbipm7b17r";
+        sha512 = "+YR16o3rK53SmWHU3rEM3tPAh2rwb1yPcQX5irVn7mb0gXbwuCCrnkbV5+PBfETdfg1vui07nM6PCG1zndcjQw==";
       };
     };
     "commander-2.17.1" = {
@@ -2521,7 +2764,7 @@ let
       version = "2.17.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/commander/-/commander-2.17.1.tgz";
-        sha512 = "21fbnprzkj53pjsp5wd7f5wa50jrirag11gq351jr8hhrib5gw62kylpvcddv3c2a1vcs1p8llq80wdnflh6lny3frnq7v7l6vi9wy0";
+        sha512 = "wPMUt6FnH2yzG95SA6mzjQOEKUU3aLaDEmzs1ti+1E9h+CsrZghRlqEM/EJ4KscsQVG8uNN4uVreUeT8+drlgg==";
       };
     };
     "commander-2.20.3" = {
@@ -2530,25 +2773,34 @@ let
       version = "2.20.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz";
-        sha512 = "1qqrwy7z476gqa94kjjyyzyi3x49k28ji7znbc65plrp67yzmpa2yyslh6bl965yl4jqb2fwb2ljzhgcvv2xxj8ab86n5rgryc6958s";
+        sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==";
       };
     };
-    "commander-3.0.2" = {
+    "commander-4.1.1" = {
       name = "commander";
       packageName = "commander";
-      version = "3.0.2";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz";
-        sha512 = "2ilf2mvb0dww4ghk17nncvymsankhk01lf7l0vls1dzf25ih2djz36n8xz6xh2rh5iacn1i7azfcfm80wyf0rc81f53q17q400z9ahr";
+        url = "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz";
+        sha512 = "NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==";
       };
     };
-    "commander-4.1.1" = {
+    "commander-5.1.0" = {
       name = "commander";
       packageName = "commander";
-      version = "4.1.1";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz";
-        sha512 = "1cblg9al7s2w55kglhr3skkiw5m55apxk6idj5j0d0nrxi2djizbz9gv3cap5dd16acshaikaxzwx009vzdl08z2zrhik3433rsdqil";
+        url = "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz";
+        sha512 = "P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==";
+      };
+    };
+    "commander-6.1.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-6.1.0.tgz";
+        sha512 = "wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA==";
       };
     };
     "common-tags-1.8.0" = {
@@ -2557,7 +2809,7 @@ let
       version = "1.8.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/common-tags/-/common-tags-1.8.0.tgz";
-        sha512 = "2vvj4chc55svz1wkvkg2r38n3n0qs238fgcjpnn1hrz9w1hd3r23j4dc2vcz61can4c8m0n94bwa9j0j3wcp56wn6zra6mdwz9a1zp8";
+        sha512 = "6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw==";
       };
     };
     "commondir-1.0.1" = {
@@ -2575,7 +2827,7 @@ let
       version = "3.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz";
-        sha512 = "029zalmhpzy6rz52kpc6z465asw21dl1jhmsvijp9z3l9hjvp1zq82r0bsm5d4hc8z17f4hs5drv3pbdy456bmfxs0q1krmikc1z82v";
+        sha512 = "W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==";
       };
     };
     "component-emitter-1.3.0" = {
@@ -2584,7 +2836,7 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz";
-        sha512 = "136ravx3m3gf0ca84sf21hj47wmpqyjzmx6yvhj0b14mga7xcxfcgdc7yj9z8klcbr4yfqzy88fksmf233qx68a9ysw7yh1lixyrpa5";
+        sha512 = "Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==";
       };
     };
     "compressible-2.0.18" = {
@@ -2593,7 +2845,7 @@ let
       version = "2.0.18";
       src = fetchurl {
         url = "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz";
-        sha512 = "13341lfj8d36v6gha16xmv92w4875z8irqdbns3jxlkc3a63aswys5sajq97y1sd42l08inw1l0s51r4l9lv20w6gy14nsxzvnfnp80";
+        sha512 = "AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==";
       };
     };
     "compression-1.7.4" = {
@@ -2602,7 +2854,7 @@ let
       version = "1.7.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz";
-        sha512 = "24kqcbwm455isy2yiyfrdrsh011qi09pbgylw1jws2yfmiwmwp2j8pmax52c41z3x1n84v1j5va29dnxwygkl4pw599b9gx6c7qi94d";
+        sha512 = "jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==";
       };
     };
     "concat-map-0.0.1" = {
@@ -2629,7 +2881,7 @@ let
       version = "1.6.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz";
-        sha512 = "05nnf80j9ls12y3cw2dfnc6rmand3ya5sx9cqn9dgg19ljzdnyfjjv8ig79xi73gr2y4rkfzn9wjip2zzwp5n2d49njd3ki2a1c3cfv";
+        sha512 = "27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==";
       };
     };
     "config-chain-1.1.12" = {
@@ -2638,7 +2890,7 @@ let
       version = "1.1.12";
       src = fetchurl {
         url = "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz";
-        sha512 = "2hg7rni4gx8l765i8qzkp9dv69c8r06i8rxxkkkrsklbd8iz6ingxnp10r4fqqrm9jxy3gp8yp0lzpybwdf27kq49abkyxwrchqwmvb";
+        sha512 = "a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==";
       };
     };
     "connect-history-api-fallback-1.6.0" = {
@@ -2647,7 +2899,7 @@ let
       version = "1.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz";
-        sha512 = "0p9s5aqb76hamj9z64zd53ndh5r1jv76iw97hwrylmwwjprjn1246hrr5nvp5vs1xwwipq6dv7zj4qwywbn3n4cxc3llfdzvbvh37kv";
+        sha512 = "e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==";
       };
     };
     "console-browserify-1.2.0" = {
@@ -2656,7 +2908,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz";
-        sha512 = "168x7bp4xr522yw92himv9xv14q336ps1kkg79qcmarg3q4yzpd52pa8x8zgq11b6996f8053799k6365437si3pk85w5z4y8xiijb4";
+        sha512 = "ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==";
       };
     };
     "constants-browserify-1.0.0" = {
@@ -2683,7 +2935,7 @@ let
       version = "0.5.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz";
-        sha512 = "3976ggkw1lp21a6m3s19blb9a74kq7a0spw47v0m3vvi1k5wiamrsn20slcr9byx80x2la2sppkwjp7x10gc58142dl7412pvpv84qk";
+        sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==";
       };
     };
     "content-type-1.0.4" = {
@@ -2692,7 +2944,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
-        sha512 = "1f4y61wc913jrnga7nny83gzf9l2488q6sl1ry9lbwgh5x5d3va0xcc0xrmjk6gdxl6d4r6rsk800xp5bazhjrx05yx1wpc8c8gg0w4";
+        sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
       };
     };
     "convert-source-map-1.7.0" = {
@@ -2701,7 +2953,7 @@ let
       version = "1.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz";
-        sha512 = "2hgf7brri4yaflx3y24d2cvznsk0km17mq8mp7sb2hhskf45hcamlgf8vzzbimw36lw128bjbf442p2rx96d1bhn9sk044p69gn8lp0";
+        sha512 = "4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==";
       };
     };
     "cookie-0.3.1" = {
@@ -2719,7 +2971,7 @@ let
       version = "0.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz";
-        sha512 = "1g7bscknfpc6zgznz77hvll6cy5m9jv7zg9nkpdqzmgi0vhv75kh8iyqf6rdslkml47l3jihsz7hy0i8x5n6bfx9ba0kvvrp9y7qypq";
+        sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==";
       };
     };
     "cookie-signature-1.0.6" = {
@@ -2737,7 +2989,7 @@ let
       version = "1.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz";
-        sha512 = "3c1ggiqqnjgqlwdnimx94gm176c8rjsrih5qw2lbm642l8x7grx07v065k4j89c1p0adkm7v6sz11drb6j6sp51np2m1cazvycnhrvz";
+        sha512 = "f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==";
       };
     };
     "copy-descriptor-0.1.1" = {
@@ -2755,7 +3007,7 @@ let
       version = "5.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz";
-        sha512 = "1p74sgd6krkddnl160vhab1v634p3n24fy8nzbs7hr9l1snhwxslv3c2xb22599gcc96r3g0m5b9ngx3a17gc3m82ij0xxwj3jlqpiz";
+        sha512 = "P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg==";
       };
     };
     "core-js-2.6.11" = {
@@ -2764,16 +3016,16 @@ let
       version = "2.6.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz";
-        sha512 = "1db6yjq48a8kkrfrxd0miblcf7nk2b4afgpr8dfgjl3jvz3xclvrqmz590hx2h59jh79lgl35r101lw5jqs46qybizdbpgzljjyf277";
+        sha512 = "5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==";
       };
     };
-    "core-js-3.6.4" = {
-      name = "core-js";
-      packageName = "core-js";
-      version = "3.6.4";
+    "core-js-compat-3.6.5" = {
+      name = "core-js-compat";
+      packageName = "core-js-compat";
+      version = "3.6.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz";
-        sha512 = "35hfghyllz0wqcz293wdsy4vry8yjx8m9b7f1gr4s8m528d4vqiva2na7b5mwddj0jzrfhimzvzpm9gvykrbqkm47v9708d4wcq75p2";
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz";
+        sha512 = "7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -2785,31 +3037,22 @@ let
         sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
       };
     };
-    "cosmiconfig-2.2.2" = {
-      name = "cosmiconfig";
-      packageName = "cosmiconfig";
-      version = "2.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz";
-        sha512 = "3j2bwqqxpllfpdbnnjl2n380q8mcvz08p2xi5c7kzhqrscl8f3lmpa11jzsn76b5q2rz4604bffg2vxbbx4rrlmvgr82g8500pmf8qs";
-      };
-    };
     "cosmiconfig-5.2.1" = {
       name = "cosmiconfig";
       packageName = "cosmiconfig";
       version = "5.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz";
-        sha512 = "287zy383n43wsxg7y8jwzzf3slyn945k312ilkg7l7c96j458cy25jab60692lb1zvggrcm28hilkr6vsp2garryggshj1mgaqn1bhz";
+        sha512 = "H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==";
       };
     };
-    "create-ecdh-4.0.3" = {
+    "create-ecdh-4.0.4" = {
       name = "create-ecdh";
       packageName = "create-ecdh";
-      version = "4.0.3";
+      version = "4.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz";
-        sha512 = "1mhn55gf43qsdrp2klyyyxqjsd5mw9l6s51vsfj7wl44pq7ymfw68r8wkd4yd8dd6adg3k6q18sddxfjljr0gbk56lh3cqfyd00gc8r";
+        url = "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz";
+        sha512 = "mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==";
       };
     };
     "create-hash-1.2.0" = {
@@ -2818,7 +3061,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz";
-        sha512 = "055xaldi3hy1bjxhvznh3470j1kq2xk827mxal79bgqik3lblax6s4inxqby27ymgcghl2hn7wnx9fnacmyq3q93hk6y327cc41nkfg";
+        sha512 = "z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==";
       };
     };
     "create-hmac-1.1.7" = {
@@ -2827,7 +3070,7 @@ let
       version = "1.1.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz";
-        sha512 = "0p2jhk94k3as67lhrr1jyljkr0y65snxjzqnix0nifnfcanhilccrzkc47gwlg5wy0m8l1gv12lj78ivgmw5m1ww4f8iylr52bbv49h";
+        sha512 = "MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==";
       };
     };
     "crocks-0.12.1" = {
@@ -2836,7 +3079,7 @@ let
       version = "0.12.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/crocks/-/crocks-0.12.1.tgz";
-        sha512 = "0qic3mmpra56jzjnkqhc1pq1wzzlsacpl4r9a7c1qks0dkfw1lvva0iyqhjkp1zjvyf7d55vcidmlxpc17x4y9pbx858gk600kr386s";
+        sha512 = "2qCRJwBmPlRQXzd50k9gt9PaItultOP8lj/cKSH2Eai9aeBuNqAnDuyolAm9TGn6Pw/4BgbxtPJLU1S+tQ4WMQ==";
       };
     };
     "cross-spawn-5.0.1" = {
@@ -2863,7 +3106,7 @@ let
       version = "6.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz";
-        sha512 = "1csj16gwq9riz0pm73dlxhbnsl1r3ldc5v0aincwj71ambi6xf3kc1kgsbwaakd8rj16k4mrli2syrjd57g6cr81zdzivdd2jn4ndbr";
+        sha512 = "eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==";
       };
     };
     "cross-spawn-7.0.0" = {
@@ -2872,7 +3115,7 @@ let
       version = "7.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.0.tgz";
-        sha512 = "2vnqmy0kzk78wrwyz8533a4li5x1gx1mxj5qi73v17sxis3fsxhamlhblqdn06nkvj09mphm72ivjinpa7l6s3d0xki655nq94gqkz9";
+        sha512 = "6U/8SMK2FBNnB21oQ4+6Nsodxanw1gTkntYA2zBdkFYFu3ZDx65P2ONEXGSvob/QS6REjVHQ9zxzdOafwFdstw==";
       };
     };
     "cross-spawn-7.0.1" = {
@@ -2881,16 +3124,16 @@ let
       version = "7.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz";
-        sha512 = "21fi60ixr252k0gn4mwbd6k36fhbw4mjl75jq6h49yzqm47mgfaapnzb2zb8nvlaf8yxq5n4zzgbb371y3j0z36vx1mmh0jrsizifxv";
+        sha512 = "u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==";
       };
     };
-    "cross-spawn-7.0.2" = {
+    "cross-spawn-7.0.3" = {
       name = "cross-spawn";
       packageName = "cross-spawn";
-      version = "7.0.2";
+      version = "7.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz";
-        sha512 = "33hqaimyh16rpn80vgg92ihza7cvx5xwnxadalkzsag2sifp40w1q90wpm9ayz4k6scqcnc17c8wfmc22qib1khzm582jxp07qqcgiw";
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz";
+        sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==";
       };
     };
     "crypt-0.0.2" = {
@@ -2908,7 +3151,7 @@ let
       version = "3.12.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz";
-        sha512 = "1d3mrhqlay037azmjp2ml5a8yyls9ijdhilv6f0znz0ajgfm972yr9bhm78wqi09p4crc3shgflk50jc63zijsqv777ikkyi2j2qgkz";
+        sha512 = "fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==";
       };
     };
     "css-color-names-0.0.4" = {
@@ -2926,16 +3169,16 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz";
-        sha512 = "02cfxb0d2yngcgfhk64i1sgg22sg0qd0llh8hkd5k7zwm7skwlwdibag8dv0zszdwj1mf2kjg9qb10zxichaafngqa4846jli451k05";
+        sha512 = "BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==";
       };
     };
-    "css-loader-3.4.2" = {
+    "css-loader-3.6.0" = {
       name = "css-loader";
       packageName = "css-loader";
-      version = "3.4.2";
+      version = "3.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-loader/-/css-loader-3.4.2.tgz";
-        sha512 = "36dsndmik7z39c4mvjpjdkjw44n2lnvkafsr6gm0xk9p4ys04j5d2j8m1zkwsmhzcd1jnlgx0hx2lndlzxgjb994fs89ljksv6vi2ld";
+        url = "https://registry.npmjs.org/css-loader/-/css-loader-3.6.0.tgz";
+        sha512 = "M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ==";
       };
     };
     "css-select-1.2.0" = {
@@ -2953,7 +3196,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz";
-        sha512 = "16wjx4f410fs6vdg0hgmf0b437d19f9gx73pbb9bj0l2dkrwiin4kg3rk8as74m6lr29kl05csjms6dwjcwsbssvl3vmh5908nkpa8f";
+        sha512 = "Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==";
       };
     };
     "css-select-base-adapter-0.1.1" = {
@@ -2962,7 +3205,7 @@ let
       version = "0.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz";
-        sha512 = "3prww0p33p31w3r3qw6hlmqabd6s1vgjb73pjv4xiy63nfb56yjhby47zpnj4q19abvvchrkbh7n6hzcgyw34zly8s05ldv25wmw1cd";
+        sha512 = "jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==";
       };
     };
     "css-tree-1.0.0-alpha.37" = {
@@ -2971,7 +3214,7 @@ let
       version = "1.0.0-alpha.37";
       src = fetchurl {
         url = "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz";
-        sha512 = "27dw695h47z8hlav2dn6mcm8fxli9gljif9jiwdxdvg70yn4129lpwwiq53mx4anajcxl28w82zvwjk8w6x34qjhga3x7rb1lk5dk0c";
+        sha512 = "DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==";
       };
     };
     "css-tree-1.0.0-alpha.39" = {
@@ -2980,7 +3223,7 @@ let
       version = "1.0.0-alpha.39";
       src = fetchurl {
         url = "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.39.tgz";
-        sha512 = "2fay50khaq33f27bwnjc7cxvny8xb7y7fnfdrp8ffcxyika56mmbiw8wk05dw1djdvxw5475jn16fy6b14z6zfvyi378001i08y8jzd";
+        sha512 = "7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA==";
       };
     };
     "css-what-2.1.3" = {
@@ -2989,16 +3232,16 @@ let
       version = "2.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz";
-        sha512 = "092jz28b0dcfww936mpi3blcr79h3dzl0ksq69ismfks6q03vfm23d7i271jpvymy7fs9d7mqak1m1vlw6wfpzfhxgj6rmf7yh0zqbb";
+        sha512 = "a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==";
       };
     };
-    "css-what-3.2.1" = {
+    "css-what-3.3.0" = {
       name = "css-what";
       packageName = "css-what";
-      version = "3.2.1";
+      version = "3.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz";
-        sha512 = "0djs0gslzbmmdrlzzd6wqvil6dnjirpdpfb5hxd3gdswxkyj4caxwmak6nabgn6spnm9p0xbb8hlqdwp68fbqp4nfkgqklhr2ian0sv";
+        url = "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz";
+        sha512 = "pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==";
       };
     };
     "cssesc-3.0.0" = {
@@ -3007,7 +3250,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz";
-        sha512 = "1bgy350qm3f9vcr9yssaj62kkfiqf3fkdfw0z7xqy7b9qy4p8774n3460wzsh9a1ra26s1msfs2gnrn9jza21i76mkmvmyar0jzydpx";
+        sha512 = "/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==";
       };
     };
     "cssnano-4.1.10" = {
@@ -3016,7 +3259,7 @@ let
       version = "4.1.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz";
-        sha512 = "1lr95m334m2kzy2l8l9arg688wi21ha5wslfm9kh8ks00j546fzy3sw8m83ccmgkansp56v9xxkgmwjz2kajnnrh08zzqw7bvwg42g7";
+        sha512 = "5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==";
       };
     };
     "cssnano-preset-default-4.0.7" = {
@@ -3025,7 +3268,7 @@ let
       version = "4.0.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz";
-        sha512 = "2q4cndyhj7jwz0mjwpavg3vggb703pmxrg1h06aqlm752q71misnkga66j4imxwpc3fidk5g6pgp05fzp966wsx18grvsm13lghfin7";
+        sha512 = "x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==";
       };
     };
     "cssnano-util-get-arguments-4.0.0" = {
@@ -3052,7 +3295,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz";
-        sha512 = "105dpashgi6r1x5yxknn3c9ksn3bj04hgzy3q1jv4h6l1j3zjgp1nm6kckmc5j58cw9xirccvlpamnbwiynag4jwzr60vxncasrifx8";
+        sha512 = "qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==";
       };
     };
     "cssnano-util-same-parent-4.0.1" = {
@@ -3061,7 +3304,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz";
-        sha512 = "3apdjffzy480hz1vghhhah8a90d1ah2vz624apbn2gn7847v4mpjfz7phwk959wfs11fqp4md9vbb25850fjmhh0f488aiywvjb3hjr";
+        sha512 = "WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==";
       };
     };
     "csso-4.0.3" = {
@@ -3070,7 +3313,7 @@ let
       version = "4.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/csso/-/csso-4.0.3.tgz";
-        sha512 = "0fk58wf7qcd30fdfrrwvhh9swyrlzbz63z9kkmhq2557c32627dzjkh8w2ha000ngbsc6w19249lpbn2wzb3s8978mlflii5fkyrg9l";
+        sha512 = "NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ==";
       };
     };
     "cycle-1.0.3" = {
@@ -3106,7 +3349,7 @@ let
       version = "2.6.9";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
-        sha512 = "0q0fsr8bk1m83z0am0h2xn09vyfcf18adscxms8hclznwks1aihsisd96h8npx0idq5wwnypnqrkyk25m5d9zh3dk7rjs29nybc8bkc";
+        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
       };
     };
     "debug-3.2.6" = {
@@ -3115,16 +3358,16 @@ let
       version = "3.2.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz";
-        sha512 = "1cyv14044rfh792n1hhsa44kk8dk95zk14w96i49gwq6g9wi6h9vn90xaragfy7rvggqvj178l5f16c78g47xgrwhjx3bp7zs6pxscr";
+        sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==";
       };
     };
-    "debug-4.1.1" = {
+    "debug-4.2.0" = {
       name = "debug";
       packageName = "debug";
-      version = "4.1.1";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz";
-        sha512 = "1kmf9j5pka2rsljg5x6shniwmgs9444ksgdn0d3fjmis7yghxxn2zj526s36ip8rmpfni9zpj8z74w7irax32a67j59xw38wk6hi055";
+        url = "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz";
+        sha512 = "IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==";
       };
     };
     "decamelize-1.2.0" = {
@@ -3160,7 +3403,7 @@ let
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz";
-        sha512 = "0rnf28sjgvk6j7kjw5pw6604hzpvbb6w3j8p1rykk7klpyd4568r0adaaiqylsg2xnhz38lxg66zp5bl3zr5wmjbcl6iigf4rdmddjc";
+        sha512 = "TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==";
       };
     };
     "deep-equal-0.2.2" = {
@@ -3178,7 +3421,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz";
-        sha512 = "3r4bwyfb492cwv2lz8slgy0ch8gx4wx1smr39qzjscnqvwswnk3r748qdmh8i5867sdm017rwjj2fgl3d2c3p4qz08mgab20zj5rpy9";
+        sha512 = "yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==";
       };
     };
     "deep-extend-0.6.0" = {
@@ -3187,7 +3430,7 @@ let
       version = "0.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz";
-        sha512 = "0wc0sqg1aqx864bxf8xa4j8ncrc8rcvmiaj1sp3x1np2i8hdjybzjfd0w9gbf1yasmwycwzzg1mz6smr3q42hhv4pjx2qcgwqhg3q9c";
+        sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
       };
     };
     "default-gateway-4.2.0" = {
@@ -3196,7 +3439,16 @@ let
       version = "4.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz";
-        sha512 = "2067xswfnhdrq76l5wqibx50y8r46q0sdbkax2nxq6gq0ljjrrmmq95k99vnkgcz5xc7r1hhv0w7bw978krjxvdmnawam3ma2nhraw7";
+        sha512 = "h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==";
+      };
+    };
+    "defer-to-connect-1.1.3" = {
+      name = "defer-to-connect";
+      packageName = "defer-to-connect";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz";
+        sha512 = "0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==";
       };
     };
     "defer-to-connect-2.0.0" = {
@@ -3205,7 +3457,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz";
-        sha512 = "0i5i9bz9viv04jwx2lnk4485zggbrsnljkfx7dr2n4iaikvgdf8lfmx98wyyq7ba92azw0pr42fxlq2sadwfka64ksjffbg9rvzd0kd";
+        sha512 = "bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg==";
       };
     };
     "define-properties-1.1.3" = {
@@ -3214,7 +3466,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz";
-        sha512 = "1fsa8nx7qgi958fykj36cndsf8ygj3132if6k4a36mkf11bl2j2gn7dn2nz07mfsygkx0415yxrjpzx8j369z1767fvr57nm1h9zjnw";
+        sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==";
       };
     };
     "define-property-0.2.5" = {
@@ -3241,7 +3493,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz";
-        sha512 = "1hrk3pzr4hyhfnrjy1msrlj2zh769x4l35q9fq0a2cy2glq3h1iwjkpmvz39y9idwy71h9hd98lydi92485bzkff1dzm70wbr8vc0lg";
+        sha512 = "jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==";
       };
     };
     "del-4.1.1" = {
@@ -3250,7 +3502,7 @@ let
       version = "4.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/del/-/del-4.1.1.tgz";
-        sha512 = "1fkk8r4abk9009whl0yqapv13rjzj6mr01ghkxpbjkrvr6a6n6hg492mdr72wf3dc13zp3dmzq6z4bzm31h59q7q4anjgrf988sw0a3";
+        sha512 = "QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==";
       };
     };
     "delayed-stream-1.0.0" = {
@@ -3286,7 +3538,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz";
-        sha512 = "085ljc5q2yk3jabd61p91n821q4prv13qalbfni9ybcb900b4mmcdnndi5b5prfs9wybp13asd13shlxgrbsgvyfx7nbgvby6jkhhj3";
+        sha512 = "Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==";
       };
     };
     "destroy-1.0.4" = {
@@ -3304,7 +3556,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz";
-        sha512 = "0mncqs8asq6722qr5jcv5bwi1653nd4s61s9mb9iyk3jkv83w9iynwjfd6ynp1jwsmr7qaspk6yd1x8c05qi9pxikikwfkbnajd3334";
+        sha512 = "ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==";
       };
     };
     "detect-port-alt-1.1.6" = {
@@ -3313,7 +3565,16 @@ let
       version = "1.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz";
-        sha512 = "3jmpnxszsgf863rw2247kalaihrslvrsp49qvnhymgx1skhhsfs51nkf3galxkn5lk39zw9p53xqbpdy620q6j60i2z5acbvy935m76";
+        sha512 = "5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==";
+      };
+    };
+    "diff-sequences-25.2.6" = {
+      name = "diff-sequences";
+      packageName = "diff-sequences";
+      version = "25.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz";
+        sha512 = "Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==";
       };
     };
     "diffie-hellman-5.0.3" = {
@@ -3322,7 +3583,7 @@ let
       version = "5.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz";
-        sha512 = "37186rz3862gn294acnwnm59jwm62x1rz9ca0y5anvmj0a7abs4rhw974qp1j684qpd4rxb8c2kagv21hapxfddr2q72zvyv7ya19lj";
+        sha512 = "kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==";
       };
     };
     "dir-glob-2.2.2" = {
@@ -3331,7 +3592,7 @@ let
       version = "2.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz";
-        sha512 = "2rlgbmwy8bl5xqrwifdqhggx21ac4c8k6vgq7ia2h6cxmaiprrlm1p99cn4hb4dmax9wwk4vx96bc50b7ngxgx74fvqbk0njj5w3lkz";
+        sha512 = "f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==";
       };
     };
     "dir-glob-3.0.1" = {
@@ -3340,7 +3601,7 @@ let
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz";
-        sha512 = "0h761rklv8qk0vhv6ms98gsvdiyk8455iqqh6wh8dfal5xjx87gmmpyg7773zdrxwvhnzw58pan4rdqjfwkhcv653gsbq4is6kxcjjs";
+        sha512 = "WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==";
       };
     };
     "dns-equal-1.0.0" = {
@@ -3358,7 +3619,7 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz";
-        sha512 = "19g682cvkba33mwrism28hibd2nv9xd16k5bj807jx3ih1cc7ff9dn8chmfjnqgglzl6lq3m3jarxng9vbarccgchd0aq118d15yk6i";
+        sha512 = "0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==";
       };
     };
     "dns-txt-2.0.2" = {
@@ -3376,7 +3637,7 @@ let
       version = "0.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz";
-        sha512 = "06bmys00dd8r5s4k2xi892s3xhgwnwj704y2jbpd2bgdm0vvmv0wv81npa6bfb2s7jvk2ny516cxhfy0jpjmj4qhzywlf6zhfjg5pc1";
+        sha512 = "gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==";
       };
     };
     "dom-serializer-0.2.2" = {
@@ -3385,7 +3646,7 @@ let
       version = "0.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz";
-        sha512 = "3v6s9yk4g6cw8chgrba79rbahiqw782013df898df7k7d81n69x2135qashgf23q59zr3w42qncyf4hszlll8knkhv0xccifdplzz6v";
+        sha512 = "2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==";
       };
     };
     "domain-browser-1.2.0" = {
@@ -3394,7 +3655,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz";
-        sha512 = "1fcxv8rzfhs99afvhji7bs5ppxwn9mw040ixdgvkm6iabz72q61arly2lr57086rjn4g2vkb3rkih1cyc7z35kzv1jjciwyrs4g4y4f";
+        sha512 = "jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==";
       };
     };
     "domelementtype-1.3.1" = {
@@ -3403,7 +3664,7 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz";
-        sha512 = "3gmb8frh13hzm986ggv14h63h5033jp045mvy1wrcj9j56j822a86arwq7x743i6glkv1bw6qwqriivypd0icbkzi492cm96kwq28h5";
+        sha512 = "BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==";
       };
     };
     "domelementtype-2.0.1" = {
@@ -3412,7 +3673,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz";
-        sha512 = "00vkhxlz4gkgfqzkp7faclfand3fr36zi4lpr50rjwbx54nfpr2fy612p2ixzpysqi28nfyzznngx5gvgcd13b52iy6ar8q7d88fwz4";
+        sha512 = "5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==";
       };
     };
     "domhandler-2.4.2" = {
@@ -3421,7 +3682,7 @@ let
       version = "2.4.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz";
-        sha512 = "307i53zii3hv9zr3skxhp9pxa09ki0xwx9q1k7mxnq3hanjanlpr1mmavfzz68r2h6cl1bnv2836plrhk02rpa7yfzrpdq73pib88i6";
+        sha512 = "JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==";
       };
     };
     "domutils-1.5.1" = {
@@ -3439,7 +3700,7 @@ let
       version = "1.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz";
-        sha512 = "076s2v293f9jixaddq6qmjc76y3z0kqddmjb4nclydp23y0jzpg6f7h32j6adilfdjxwwhxkclrhc1vn7rbsidvzcq32dkzq9fpc1rf";
+        sha512 = "Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==";
       };
     };
     "dot-case-3.0.3" = {
@@ -3448,7 +3709,7 @@ let
       version = "3.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz";
-        sha512 = "1w5d7iardzdlbrww41km4v8wmhlzbiizk4jvr4n95xdqrwg228v0jfbkvc3vxjvl0vr0d8dfv5wlr8102z3rc7ikcgj92ci1sd0877f";
+        sha512 = "7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==";
       };
     };
     "dot-prop-5.2.0" = {
@@ -3457,25 +3718,25 @@ let
       version = "5.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz";
-        sha512 = "3afnifh0aygp94kbnxph4rkg71zmgx2lwv2hhsja42kvryzcy30k767avsjpbvs6qksnbzifi5blka8c679gg7aw160sjd869l34idq";
+        sha512 = "uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==";
       };
     };
-    "dotenv-5.0.1" = {
+    "dotenv-8.2.0" = {
       name = "dotenv";
       packageName = "dotenv";
-      version = "5.0.1";
+      version = "8.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dotenv/-/dotenv-5.0.1.tgz";
-        sha512 = "2ixnvlqm3fb7javs7yhqb26afyf3wkd3hqpspwrg89mcfwshwyva5473zv7hhh3rrvn0vqywp5vnwkdq9r5mgkhapxhczz3zaw3q2z0";
+        url = "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz";
+        sha512 = "8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==";
       };
     };
-    "duplexer-0.1.1" = {
+    "duplexer-0.1.2" = {
       name = "duplexer";
       packageName = "duplexer";
-      version = "0.1.1";
+      version = "0.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz";
-        sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1";
+        url = "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz";
+        sha512 = "jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==";
       };
     };
     "duplexer3-0.1.4" = {
@@ -3493,7 +3754,7 @@ let
       version = "3.7.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz";
-        sha512 = "3k23dn0v8n7r3ds3v137vmw1vg3ngd6fw3bb4hasa6bm40qasvdaidjwx0wb4gakp8xvdrsckjn0wkmmi90z8a2sswj8cxhznxgrg6k";
+        sha512 = "07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==";
       };
     };
     "ecc-jsbn-0.1.2" = {
@@ -3514,22 +3775,22 @@ let
         sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
       };
     };
-    "electron-to-chromium-1.3.397" = {
+    "electron-to-chromium-1.3.555" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.397";
+      version = "1.3.555";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.397.tgz";
-        sha512 = "3cfkdvg9vdi3s7f5jh2hk2l0gqnfkqd5sw3v22cfx3za6vpfvdhx6hc8779bzwj8isagxxj0hwc9fdxhsx4w0k9fp939jzvkzb1vifd";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.555.tgz";
+        sha512 = "/55x3nF2feXFZ5tdGUOr00TxnUjUgdxhrn+eCJ1FAcoAt+cKQTjQkUC5XF4frMWE1R5sjHk+JueuBalimfe5Pg==";
       };
     };
-    "elliptic-6.5.2" = {
+    "elliptic-6.5.3" = {
       name = "elliptic";
       packageName = "elliptic";
-      version = "6.5.2";
+      version = "6.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz";
-        sha512 = "33kzl02iwbq3pl33ihcdq9nm48yzhfj96183zzra06hp3z6bacz3d99pl74jziwygys4npxbxwnvszz12wl8lpkjw8b4r9ki797p33z";
+        url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz";
+        sha512 = "IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==";
       };
     };
     "elm-0.19.1" = {
@@ -3538,7 +3799,7 @@ let
       version = "0.19.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/elm/-/elm-0.19.1.tgz";
-        sha512 = "1y57kz7w9064cmchjigsn0man2vw8b97fx9a88rxjfmxpqn1v7rdqi0kakivh0d0rkmjllbgz81zl742yq7fsyrfl1qdglrjas4xs5d";
+        sha512 = "rehOtJKZvoYDddlrd7AX5NAf0H+LUllnBg3AHaeaIOKWzw4W316d7Bkhlbo7aSG+hVUVWP2ihKwyYkDi589TfA==";
       };
     };
     "elm-0.19.1-3" = {
@@ -3547,17 +3808,17 @@ let
       version = "0.19.1-3";
       src = fetchurl {
         url = "https://registry.npmjs.org/elm/-/elm-0.19.1-3.tgz";
-        sha512 = "1lmaszcl984nawb51x833i84ywff32l8wm63dkbaglvyc7312kllhqiw79ng3q7i928azlck8iy2xmki71fsqy9qz768mlw01xzlbgb";
+        sha512 = "6y36ewCcVmTOx8lj7cKJs3bhI5qMfoVEigePZ9PhEUNKpwjjML/pU2u2YSpHVAznuCcojoF6KIsrS1Ci7GtVaQ==";
       };
     };
-    "elm-analyse-git://github.com/elm-tooling/elm-analyse#1a665a6e540d7d11b29b3c5e3c52089704325d9c" = {
+    "elm-analyse-git://github.com/elm-tooling/elm-analyse#7f4000cce5ef024fe5e82c7ee1725feef95a9daf" = {
       name = "elm-analyse";
       packageName = "elm-analyse";
-      version = "0.16.5";
+      version = "0.16.6-alpha";
       src = fetchgit {
         url = "git://github.com/elm-tooling/elm-analyse";
-        rev = "1a665a6e540d7d11b29b3c5e3c52089704325d9c";
-        sha256 = "a442bce37ae37a65c1488c66e477c404da1c7f137a6668d89c4b09de845ca374";
+        rev = "7f4000cce5ef024fe5e82c7ee1725feef95a9daf";
+        sha256 = "270cb1adfdeb368dde2b780938f653e9aa46cc97afbe4de828813fef7c30e556";
       };
     };
     "elm-asset-webpack-loader-1.1.2" = {
@@ -3566,7 +3827,7 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/elm-asset-webpack-loader/-/elm-asset-webpack-loader-1.1.2.tgz";
-        sha512 = "0sd764hrl2vzqvidwcpajafn8l24rd25v1bx534y92bvd5da96djd520r1sl0kbbd8n10690r963qs6zrnlz8hhdznvbp1m36vxidcf";
+        sha512 = "jrXYtxk13LXtbxCiT23+RuNhUgbJgGBRW2sCqkMGojTZTFKttL1E8mSUvsIuomUiKLJOSXUZb3HjvwXNkJjTNA==";
       };
     };
     "elm-hot-1.1.4" = {
@@ -3575,7 +3836,16 @@ let
       version = "1.1.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/elm-hot/-/elm-hot-1.1.4.tgz";
-        sha512 = "2grbnfn0995mgsbg3jnzs9b94sk2si3n0fazl66na6lhvfyzj3vzblxn47f1b68hdr2i3l8pvj42wc47dqpynmci7mjg4n5izzczw58";
+        sha512 = "qPDP/o/Fkifriaxaf3E7hHFB5L6Ijihyg8is4A6xna6/h/zebUiNssbQrxywI2oxNUkr6W/leEu/WlIC1tmVnw==";
+      };
+    };
+    "elm-hot-1.1.5" = {
+      name = "elm-hot";
+      packageName = "elm-hot";
+      version = "1.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/elm-hot/-/elm-hot-1.1.5.tgz";
+        sha512 = "HSMlAr6INTV82wkpPNG0zsHoJXo/04GwG7bnhFX8s4zyIbbzuJAovsdo27FAT6/NKx5IVTXGI+IFcK9Z7oN1Tw==";
       };
     };
     "elm-hot-webpack-loader-1.1.6" = {
@@ -3584,7 +3854,7 @@ let
       version = "1.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/elm-hot-webpack-loader/-/elm-hot-webpack-loader-1.1.6.tgz";
-        sha512 = "2s6yhby0lmvjl8979zxpzdqhdwvy21m42ml4mlrh02hcq0zn5zirshwjsazy2rs8bz0j2qmv4cambh5jya1vdjkpv7izzmww7mbg3vx";
+        sha512 = "fY+36uG8/h/PvlO2HZSXBa6qGNkVCwn+QjoL/5WWHOocf7EfYAYFgJlWQqsgNQi/eYO4/dt/OglRuSsFfkFvtA==";
       };
     };
     "elm-test-0.19.1" = {
@@ -3593,7 +3863,7 @@ let
       version = "0.19.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/elm-test/-/elm-test-0.19.1.tgz";
-        sha512 = "2677ylcn8afd1z2hsk628i7dkc8cp4pb6aassgwv6y6cky0w5393ahkydvy39jlqi95gghiybql8ga26m1r7dylp6dsvaviz1kn09jb";
+        sha512 = "SyZgZ/hxq62budS3k0M1Qj1E8fIRvldSxFSm4XfzE6qRRuHAT2a82fxprZRZl1yG2GwnImGmhuKH5hSyjPpzjA==";
       };
     };
     "elm-test-0.19.1-revision2" = {
@@ -3602,16 +3872,16 @@ let
       version = "0.19.1-revision2";
       src = fetchurl {
         url = "https://registry.npmjs.org/elm-test/-/elm-test-0.19.1-revision2.tgz";
-        sha512 = "24qc3z9z059c0dp97lfpsqgigxks6dd8akf14p3wvnvsy5ih3nf4947qc94xfrr0jdql0nnq12727nyyyyz3zrfyy54y85jayckcnyd";
+        sha512 = "zVs2mVeyIE+K9y7/8b333h5xRMDWAoqbBDm7ThLDhyTi7ICxeL3t5uOS4KZCrRk9+4sP6+voSbcBlgr46Q+GiQ==";
       };
     };
-    "elm-webpack-loader-6.0.0" = {
+    "elm-webpack-loader-6.0.1" = {
       name = "elm-webpack-loader";
       packageName = "elm-webpack-loader";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/elm-webpack-loader/-/elm-webpack-loader-6.0.0.tgz";
-        sha512 = "0qd4ac4xsbhp76jaqpcr9skahccpj7vva111bxinnbmcl5p7n5y8ryy539hnzvxq3gy3j3x68ikil2fcvzqaf3mnm3jrwn5ix98m5w3";
+        url = "https://registry.npmjs.org/elm-webpack-loader/-/elm-webpack-loader-6.0.1.tgz";
+        sha512 = "SkltiDAbegaiPxsQq7sxqTyRUXzD4n6UaT9JTZXIYoAjAEi/ogaIbYLQD6Ne5ZaSW3JOo6S/vb+VO5v0qDdirw==";
       };
     };
     "elmi-to-json-1.2.0" = {
@@ -3620,7 +3890,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/elmi-to-json/-/elmi-to-json-1.2.0.tgz";
-        sha512 = "3yyy4v1cp6bqkriy1dhq77dsliafaxpcmacyxyk5gwk7kflw9lafhh6l0lsrqwlb2nb2qp4l7g0qib7pm80c7kqskswlq5zvv7agn6c";
+        sha512 = "zNinzt6/YMr11HgeBlC9Z0UM3qHkYrGsWJTjrCmgBkKnaOLUzTP5K9N3z1RltyunItXtHAxb8DFPvMxlYRPv/Q==";
       };
     };
     "elmi-to-json-1.3.0" = {
@@ -3629,7 +3899,7 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/elmi-to-json/-/elmi-to-json-1.3.0.tgz";
-        sha512 = "0m6ryjnwyvjg5nif66bn9vlpwgrkc6vkrbx15aq4f1in806xm7j2ljdjri8z8syczh651k7bwmsckbwnw8q30g390mrbrnvygkl6vga";
+        sha512 = "6m1D5/Pb5pUrSOOBgRG3fE2mK19nhmLgZ16jj2KWTVIhT+0GIBuDI1iV0Fee27CZH790J7uMcdGWJ7fnVvpsKg==";
       };
     };
     "emoji-regex-7.0.3" = {
@@ -3638,7 +3908,7 @@ let
       version = "7.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz";
-        sha512 = "2s4i22ccvwa2l4xwl9yz6mkyn2kpf58hp1nqiwmmgqlpyr57345i3ll0l4656ryik6a6wz1lgk4vbl6y0dwj5hx2kcbpv0h8924n00b";
+        sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==";
       };
     };
     "emoji-regex-8.0.0" = {
@@ -3647,7 +3917,7 @@ let
       version = "8.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz";
-        sha512 = "3l88qajsl4nn4jy6gfp9fq41z6m68nykklbg1piszmhjgniiw51b3pbnf57lvbw3d6jv3xj1v16z0d5651wzs81q0g0sf4dqp6xha1i";
+        sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==";
       };
     };
     "emojis-list-2.1.0" = {
@@ -3665,7 +3935,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz";
-        sha512 = "3cib7aw0206bfcb324aqh3fsda46mjxghd08gaasxagv6jfc74r2jvcv78rb8h10m879w42nbrn3q8rjifg9s5rclbpr2hzq7bqqk7y";
+        sha512 = "/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==";
       };
     };
     "encodeurl-1.0.2" = {
@@ -3683,16 +3953,16 @@ let
       version = "1.4.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz";
-        sha512 = "3jyw0a0c7m1yxglwk7i5jh8zb3vvx7f9l4frbskxkgf9cyf4i8ww26p8bimnsryrh1dx7lwrxq64vbpjwfcv1svd4lg8m07fa53bv7s";
+        sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==";
       };
     };
-    "enhanced-resolve-4.1.1" = {
+    "enhanced-resolve-4.3.0" = {
       name = "enhanced-resolve";
       packageName = "enhanced-resolve";
-      version = "4.1.1";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz";
-        sha512 = "2w4dww5r1bxbycbb3kq0pdl9v56942678c53j9rwikxf05xd2n5h0b3a6914wxcmzr9wx4m0w56adp3qp21rk1wzkhbybxb9z67djpp";
+        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz";
+        sha512 = "3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==";
       };
     };
     "entities-1.1.2" = {
@@ -3701,16 +3971,16 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz";
-        sha512 = "3dv4zcyi5bjn1q5sd46vapv1y0wilalg5bwh5cf62w8bpiwms4q9c3yhfvvj6fh2fkc3bcdwsjabrs4d3j86ji0c6xkn5vmi4qxjqkz";
+        sha512 = "f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==";
       };
     };
-    "entities-2.0.0" = {
+    "entities-2.0.3" = {
       name = "entities";
       packageName = "entities";
-      version = "2.0.0";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz";
-        sha512 = "0pqz0h0aafqad2dm3qs73sqk6nhgr7icrfqwnxbzysbdkh11grcbssa7m1nkyzc22g9zwpi752fpw5r58rrldhjjlqh4isj89bzpmqg";
+        url = "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz";
+        sha512 = "MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==";
       };
     };
     "errno-0.1.7" = {
@@ -3719,7 +3989,7 @@ let
       version = "0.1.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz";
-        sha512 = "2bdzcjwgdkg5yrvlw6my57pn77k4j7a2pzppwqrq4va9f5bd4b5mzbhwpklhsy1jl7w9sjvnfs30h42nhz2dbdfhagnh8dk6l2d3yii";
+        sha512 = "MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==";
       };
     };
     "error-ex-1.3.2" = {
@@ -3728,16 +3998,16 @@ let
       version = "1.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz";
-        sha512 = "3igrl2amb9mpa9d2z6qghz3ljqd7amjla8ahfs5fdgl0w52pw6gz3y32q5fk229yvfyg3x9kpfygadcm2w0lv4hv4nj25cyd8v4glgd";
+        sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
       };
     };
-    "es-abstract-1.17.5" = {
+    "es-abstract-1.17.6" = {
       name = "es-abstract";
       packageName = "es-abstract";
-      version = "1.17.5";
+      version = "1.17.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz";
-        sha512 = "2kayciqh331d3kp1l8wdsp33kzdc02rv72z6x2327w2i6yks9b7xwxbg1xdrrkhaglr06liqzdjavq9qk9d487sf572rjfv62xml7q5";
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz";
+        sha512 = "Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==";
       };
     };
     "es-to-primitive-1.2.1" = {
@@ -3746,16 +4016,25 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
-        sha512 = "2y6j97j2f10gc52kw7qin10gm24m5hz1qq7ph6jf89y8a9i8vb268f2q0z78qjmngc765y9v0f1ldc5qb10b638yqlabda90sbaa8s0";
+        sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==";
       };
     };
-    "es6-promisify-6.1.0" = {
+    "es6-promisify-6.1.1" = {
       name = "es6-promisify";
       packageName = "es6-promisify";
-      version = "6.1.0";
+      version = "6.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.0.tgz";
-        sha512 = "2pr75bj70p2qd7if8kpmm7pqfgkq9317mvb09q8pfrha2kcvn8g0y3b7a63iwm28wh36d0a681j3zaig10hwk7xasn5n42zzbcj8awc";
+        url = "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.1.tgz";
+        sha512 = "HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==";
+      };
+    };
+    "escalade-3.0.2" = {
+      name = "escalade";
+      packageName = "escalade";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz";
+        sha512 = "gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==";
       };
     };
     "escape-html-1.0.3" = {
@@ -3782,7 +4061,16 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz";
-        sha512 = "3xkdrhqvjj7430kp98pllh0yxbawxp4z1fnvbw5cawjr6mlbgyrd2v3b3kalrx3s515zc731a6ckmb10x9vaizf6sf4b5g84lndr72j";
+        sha512 = "UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==";
+      };
+    };
+    "escape-string-regexp-4.0.0" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
+        sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
       };
     };
     "eslint-scope-4.0.3" = {
@@ -3791,7 +4079,7 @@ let
       version = "4.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz";
-        sha512 = "2p4myi99y1nk5dy7fvmbspjdynigw3dzkhcm7zaiwfyw2wp6j61y0i8mba18ksv9qi2s1wp6w6xhn7471qs631bqwmz8fzmvas6xdd7";
+        sha512 = "p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==";
       };
     };
     "esprima-4.0.1" = {
@@ -3800,7 +4088,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
-        sha512 = "3h999di4dnwxb22lxlb7cbz42nalrv8g8sqdvrkkl5c27gnwhp1rva4039hmq6g1i0y4mfjgx6p4i2vwxxl0zlahfzdd9fl1qbqasvq";
+        sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
       };
     };
     "esrecurse-4.2.1" = {
@@ -3809,7 +4097,7 @@ let
       version = "4.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz";
-        sha512 = "06zyknk70y80n428x20wvjqy5822wgz2yaxzw387njnz3ar6ixzjcxzr2jsl8wrm0m9jpa4ysbcr9znpk6gbkqd7wby084zxw3l317b";
+        sha512 = "64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==";
       };
     };
     "estraverse-4.3.0" = {
@@ -3818,7 +4106,16 @@ let
       version = "4.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz";
-        sha512 = "2kh3lczc7smb84ryllqrdvrknxl3h47khh7li6n9m76mj9jfh1ahz2jm8ffpcaac7i4k8zkf3sc3nczzp7djgqmsi6wrkynywlygnfz";
+        sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==";
+      };
+    };
+    "esutils-2.0.3" = {
+      name = "esutils";
+      packageName = "esutils";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz";
+        sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
       };
     };
     "etag-1.8.1" = {
@@ -3836,25 +4133,25 @@ let
       version = "3.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz";
-        sha512 = "3hv1mm8y1m0ayl0ds213ajdpc0xwalhi1iwvy2zdkg4kys5vdy97s8jz0sfvd91a3xwyy4946wmzk2lc1kpzww94pj307nmw8hm1yxn";
+        sha512 = "tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==";
       };
     };
-    "eventemitter3-4.0.0" = {
+    "eventemitter3-4.0.7" = {
       name = "eventemitter3";
       packageName = "eventemitter3";
-      version = "4.0.0";
+      version = "4.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.0.tgz";
-        sha512 = "05cdww9h7f3kjfmv478p0rcq2ia3lcrvqmsh155hd6wm895i2jn6j68w0ly09c3gjn8hshfdvnh99qchipbclycnb241y993m2d5sm9";
+        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz";
+        sha512 = "8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==";
       };
     };
-    "events-3.1.0" = {
+    "events-3.2.0" = {
       name = "events";
       packageName = "events";
-      version = "3.1.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/events/-/events-3.1.0.tgz";
-        sha512 = "1d21craxji58ccc5l8c39mw7pgk0is7gj1sixm8v1va1zc81hrw8426b9rhrv7z2kwqvix5l7cyfc8awwypj19him6ffd67qbqaxzs6";
+        url = "https://registry.npmjs.org/events/-/events-3.2.0.tgz";
+        sha512 = "/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==";
       };
     };
     "eventsource-0.1.6" = {
@@ -3872,7 +4169,7 @@ let
       version = "1.0.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz";
-        sha512 = "02zyvvhbzxhb7q9pzn867l80whipj03h4nkzjw1r8kppkmgaw0fcgvnkkv11fkfnlcdhkr9f55xrap5qpvbggkad4y4jkymxgpzbfg0";
+        sha512 = "4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==";
       };
     };
     "evp_bytestokey-1.0.3" = {
@@ -3881,16 +4178,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz";
-        sha512 = "1wd18zxd7n42asa63aa4k1bdf58warg29c7c8cdzzkd4r1wva7qwzqnn52h8g8hqwj7bxjkk3ryghajrvz4i27h5bzp30p8hjiqdzgx";
-      };
-    };
-    "exec-sh-0.3.4" = {
-      name = "exec-sh";
-      packageName = "exec-sh";
-      version = "0.3.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz";
-        sha512 = "3a56in0wklcqf6hk0n22z22yg9kzb7y4xj7yfmj2sahbnkjbr5s0sngpzrr60r5rq9b3f0f1m13da5fn9mfz7p3b5nbxgxmrs8lhhdh";
+        sha512 = "/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==";
       };
     };
     "execa-1.0.0" = {
@@ -3899,16 +4187,16 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz";
-        sha512 = "0nbazkdhh5zqw7l7y4ml860h6pbn72x5kp2iaknqbdk0ygcrp3yh6bnq0brzzsyk3f72ard3ss3kp9a2ffsglib3yiamqwm4mrz3mk9";
+        sha512 = "adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==";
       };
     };
-    "execa-4.0.0" = {
+    "execa-4.0.3" = {
       name = "execa";
       packageName = "execa";
-      version = "4.0.0";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/execa/-/execa-4.0.0.tgz";
-        sha512 = "06ajp8gz1276n02cd50rh0q2qfhxrj623shfcc7fq6iafmk43kzwifyfm1nfc7jhkdhn8r4fn2rf9h2bcjsvl2mcpwq81kp0p3x9c15";
+        url = "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz";
+        sha512 = "WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==";
       };
     };
     "expand-brackets-2.1.4" = {
@@ -3944,7 +4232,7 @@ let
       version = "4.17.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz";
-        sha512 = "3i2sxjf2x1r9wbfdyh5ll8ybbnqq6n4xfxdlc4dsqhssljrlih18csqg142lf16lcfcdgsmvf9pff0rzxjw7p0shnlmpajipwxpswlq";
+        sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==";
       };
     };
     "express-ws-2.0.0" = {
@@ -3962,7 +4250,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/express-ws/-/express-ws-4.0.0.tgz";
-        sha512 = "1ih0006jpjcg33hwp2whynvvdcnqy87nbhpv636v3d6vzp8yjbzhfy8nxhi284nh9nj46nyy7ywj2i58j6v1iaqi3v48i1hq31r8k18";
+        sha512 = "KEyUw8AwRET2iFjFsI1EJQrJ/fHeGiJtgpYgEWG3yDv4l/To/m3a2GaYfeGyB3lsWdvbesjF5XCMx+SVBgAAYw==";
       };
     };
     "extend-3.0.2" = {
@@ -3971,7 +4259,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
-        sha512 = "3zad2109w3q3gh46s5msrnzfy2nl581sqpy20b52fs7v5pdjh3irpg7szl3xvh4sfy63218jy8ry6qlnir3baxbbfrb03swkw5swfky";
+        sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
       };
     };
     "extend-shallow-2.0.1" = {
@@ -3998,7 +4286,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz";
-        sha512 = "1xm0arqcf7jp9kgq1g67ss2jvj8kblzbb7dd7sj2gm1g8cj4ilcwnn8vwspz3rh83yjphbl1lvqdyivrji6ccmnp3k2rmk9gl4kii44";
+        sha512 = "hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==";
       };
     };
     "extglob-2.0.4" = {
@@ -4007,7 +4295,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz";
-        sha512 = "2klp0045k4wnaspb9khqx90ddv7rjg997mlyp5qz41sl2yqdrpw8g8wji77qq16aawl4yhvg0f993ln48lja0kfmy0wnbh4g50zlrin";
+        sha512 = "Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==";
       };
     };
     "extsprintf-1.3.0" = {
@@ -4028,13 +4316,13 @@ let
         sha1 = "62cf120234c683785d902348a800ef3e0cc20bc0";
       };
     };
-    "fast-deep-equal-3.1.1" = {
+    "fast-deep-equal-3.1.3" = {
       name = "fast-deep-equal";
       packageName = "fast-deep-equal";
-      version = "3.1.1";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz";
-        sha512 = "1j7wq3vqvfgnpd2sjblnlgryxlic2fsy343fx8w4ywb2mngj1w5afq8fmly8cp9fi66dhz1fhcfpn23g5zasnzs6n1snb83qkkilhgi";
+        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+        sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
       };
     };
     "fast-diff-1.2.0" = {
@@ -4043,7 +4331,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz";
-        sha512 = "3iz2v3js0dw0ds77cg0v543ba30in2ld6ynakphh1g6nbrdpn4qkydrk6m3qa76ckh1nmqh73ck383zj7b7jw6bczjxbxwbkx7si6y4";
+        sha512 = "xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==";
       };
     };
     "fast-glob-2.2.7" = {
@@ -4052,16 +4340,16 @@ let
       version = "2.2.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz";
-        sha512 = "2rwrxvdl61rfj9v6hgif4qilfh3g4kqsjk380f2avp0g3m76h6q7n553gdh0nig13hchkwi7pwyxn0ff5vv90fbcj70jr6f051swll3";
+        sha512 = "g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==";
       };
     };
-    "fast-glob-3.2.2" = {
+    "fast-glob-3.2.4" = {
       name = "fast-glob";
       packageName = "fast-glob";
-      version = "3.2.2";
+      version = "3.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz";
-        sha512 = "3n0a23s3nq6f339d9hw9mw4plbzcdmglhzm09w7azz5fb34xiw60rhhhsvcvqw8c86h3ryfvmk1k624jlf36w3wrrijjhrfivd7qdah";
+        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz";
+        sha512 = "kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==";
       };
     };
     "fast-json-stable-stringify-2.1.0" = {
@@ -4070,16 +4358,16 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
-        sha512 = "0gz06zkjlqc4r59ka14n3vwqjdgn40zd8r115ql3rkwqb7j42frmnsj3axr7p2md8ik52nqjn3myyv8ddavdhl4cq3xz4wbbz07y5wn";
+        sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
       };
     };
-    "fastq-1.7.0" = {
+    "fastq-1.8.0" = {
       name = "fastq";
       packageName = "fastq";
-      version = "1.7.0";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fastq/-/fastq-1.7.0.tgz";
-        sha512 = "1yjamwzvgz5f73c2xc5r4pnhprczp52i9za26qi04w144c7hbjp00s0mykg3b0f23ifgnl5vf54cq7by4gh2bw87sx9lxy7350rvrk0";
+        url = "https://registry.npmjs.org/fastq/-/fastq-1.8.0.tgz";
+        sha512 = "SMIZoZdLh/fgofivvIkmknUXyPnvxRE3DhtZ5Me3Mrsk5gyPL42F0xr51TdRXskBxHfMp+07bcYzfsYEsSQA9Q==";
       };
     };
     "faye-websocket-0.10.0" = {
@@ -4097,16 +4385,7 @@ let
       version = "0.11.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz";
-        sha512 = "0wgmgai5pj0yjcc4gs5b6r94gr8ycsbv1xyjw055cxfy4vm6yrpqp0mpr89ychmzgr5y0mggqrljf9jhb8n5iq63bi3r9yqidpbhv0g";
-      };
-    };
-    "fb-watchman-2.0.1" = {
-      name = "fb-watchman";
-      packageName = "fb-watchman";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz";
-        sha512 = "1b67x7n9c1irns63lipsffgi0zm9kfms6k87mznvhak81dijqvfy26nqr3j5mw41mqb3vbbhxbbmcdgc787laz3kaq45slq0wlwjhqf";
+        sha512 = "D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==";
       };
     };
     "figgy-pudding-3.5.2" = {
@@ -4115,7 +4394,7 @@ let
       version = "3.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz";
-        sha512 = "1pk6h8pjvxp20pk6y7yagg9vfd4b1y29salqya7mf8kr0rhrk970hyy4d97kh8pk14jbnfayhwqlm4s6h7g63b3pid6lzzwy4ingfyi";
+        sha512 = "0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==";
       };
     };
     "figures-2.0.0" = {
@@ -4133,7 +4412,7 @@ let
       version = "1.1.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/file-loader/-/file-loader-1.1.11.tgz";
-        sha512 = "0p00kmxlfgsw0mn4y5h5njv0g1y7gakpygdv6wz318wzpll8zd44r7q0fvym4v837054n04d22r2klkqnckr3k0x2hc2ln79qfphr2c";
+        sha512 = "TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg==";
       };
     };
     "file-uri-to-path-1.0.0" = {
@@ -4142,7 +4421,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
-        sha512 = "0px1qliabg53lwfq4izc9vdll68sd08nlczi2ms5nvg7frm3y6zgy07vdvxywazab26jc723qpmh9a6h3bdp685iddzsmgvfarpx6yi";
+        sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==";
       };
     };
     "filesize-3.6.1" = {
@@ -4151,7 +4430,7 @@ let
       version = "3.6.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz";
-        sha512 = "1rfby2136b86m318244b42lrcx9hc28vz71cv9i84cd5z7dd3cwvj1gx8mykbjh937yyi1h4q5kk3vhjcldc8pkd2f7iapszgbd3a7c";
+        sha512 = "7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==";
       };
     };
     "fill-range-4.0.0" = {
@@ -4169,7 +4448,7 @@ let
       version = "7.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz";
-        sha512 = "2jrai6ri6sni8xyi8yji49ai8vkczbbiw6pb3pd9bcdizb58ncgnhnfmghhw87flm8y96y2z16738lwdyshby665nv60ljcwwbkvsm8";
+        sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
       };
     };
     "finalhandler-1.1.1" = {
@@ -4178,7 +4457,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz";
-        sha512 = "2v4ymv7dvpxpnrid4cn8qni5k5l024zc2qzg8ipkbxwmqjbaiygbx0hvbnr0ywfy0is4ngyhp6ljgjh4wmk6fqc3hd3wyzxil798lb3";
+        sha512 = "Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==";
       };
     };
     "finalhandler-1.1.2" = {
@@ -4187,7 +4466,7 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz";
-        sha512 = "1cfqk6g78cb12b1cki4pbcspsy40d0yny513myqji716njyhc5hrj7ll539kz96m6vn27168hhyqvd52cr5x1cs85mm7igfkrdrq1b8";
+        sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
       };
     };
     "find-0.2.7" = {
@@ -4223,7 +4502,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz";
-        sha512 = "0wjlwmvadzac6hwmxv6hsc16z3285i2y0nkwpg4366flza0rx30s3ncx93xn8hkkpxr493zi5b0h94jczinr87h2m6gbhrl265qzbjf";
+        sha512 = "Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==";
       };
     };
     "find-elm-dependencies-2.0.2" = {
@@ -4232,7 +4511,16 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/find-elm-dependencies/-/find-elm-dependencies-2.0.2.tgz";
-        sha512 = "32n3i133knsr1q5ld28ljk3s9yq2i124q8rg8cdb5ar0bp7wgc2a87cfkwhvql8vwzd35w0qf9bfhfa7g1imdk212y523qwnw4m9klw";
+        sha512 = "nM5UCbccD1G8CGK2GsM7ykG3ksOAl9E+34jiDfl07CAl2OPnLpBVWY2hlxEmIkSBfdJjSopEowWHrO0cI8RhxQ==";
+      };
+    };
+    "find-elm-dependencies-2.0.4" = {
+      name = "find-elm-dependencies";
+      packageName = "find-elm-dependencies";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-elm-dependencies/-/find-elm-dependencies-2.0.4.tgz";
+        sha512 = "x/4w4fVmlD2X4PD9oQ+yh9EyaQef6OtEULdMGBTuWx0Nkppvo2Z/bAiQioW2n+GdRYKypME2b9OmYTw5tw5qDg==";
       };
     };
     "find-parent-dir-0.3.0" = {
@@ -4268,7 +4556,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz";
-        sha512 = "2bg49lifm64h5jqjc20612wrx7cazw9np9ms02ys94kif4li8cp5in4rvmb1c1ssa8yhbsqkgprykkj4lf3jbz8qrgp1mf8c93gl86p";
+        sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==";
       };
     };
     "find-up-4.1.0" = {
@@ -4277,7 +4565,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz";
-        sha512 = "2bi4wmj1qymhj4ap1nay5isn0w7x6ymxp30h5y1jv0hx7q0inmirmr09mn621h4alg0gpv2hjwl6ai2giw6pz7qvb85aqizsh0v14ry";
+        sha512 = "PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==";
       };
     };
     "firstline-1.2.0" = {
@@ -4289,13 +4577,22 @@ let
         sha1 = "c9f4886e7f7fbf0afc12d71941dce06b192aea05";
       };
     };
+    "firstline-1.3.1" = {
+      name = "firstline";
+      packageName = "firstline";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/firstline/-/firstline-1.3.1.tgz";
+        sha512 = "ycwgqtoxujz1dm0kjkBFOPQMESxB9uKc/PlD951dQDIG+tBXRpYZC2UmJb0gDxopQ1ZX6oyRQN3goRczYu7Deg==";
+      };
+    };
     "firstline-2.0.2" = {
       name = "firstline";
       packageName = "firstline";
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/firstline/-/firstline-2.0.2.tgz";
-        sha512 = "317ml53ziaxxnvxxp6fwwxxk2w323334kw64d40asdkir6v10br55qb264xk5i9iqh6q1gpwz0ypfwbnk4vjq9pkw123093imy2d9zh";
+        sha512 = "8KcmfI0jgSECnzdhucm0i7vrwef3BWwgjimW2YkRC5eSFwjb5DibVoA0YvgkYwwxuJi9c+7M7X3b3lX8o9B6wg==";
       };
     };
     "flush-write-stream-1.1.1" = {
@@ -4304,16 +4601,16 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz";
-        sha512 = "3pkp1ymgv73zg0d94la628nagxyngq7zm1jmngx6vjc6vi5d4jkmvfygvgac6w6x929hqljwygaidq2znk3l5xd4apdvxvpas21g7nx";
+        sha512 = "3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==";
       };
     };
-    "follow-redirects-1.11.0" = {
+    "follow-redirects-1.13.0" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.11.0";
+      version = "1.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.11.0.tgz";
-        sha512 = "2c9vyshmpm00crjxya51av36d379damv2inkkqmfdy6j5kizkc2a1s151h35lfzcnyqmx5bpgaxnp8g77dcs35cmk0zgw35x5bv9699";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz";
+        sha512 = "aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==";
       };
     };
     "for-in-1.0.2" = {
@@ -4340,7 +4637,7 @@ let
       version = "2.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz";
-        sha512 = "0jj3hgqp9pmxmfavx6rvdfl3r4yf98clpsarqadz3hq0dxhjlh2ppd9x8bvmaq3nwjdqpdvqx25pwyin4ipixhgsn7s3p9fcc3wllnn";
+        sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==";
       };
     };
     "forwarded-0.1.2" = {
@@ -4394,7 +4691,7 @@ let
       version = "4.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz";
-        sha512 = "05bphjab1lk12dz3qf87dywgpsjsx0f59kpligxqph53yicigij2gsmvkppgyhpi70h3q3id3ymz30c02v3pphakn06k8vm6xsdpamb";
+        sha512 = "q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==";
       };
     };
     "fs-extra-5.0.0" = {
@@ -4403,7 +4700,7 @@ let
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz";
-        sha512 = "1ssfaw678600iy330a73gqk65ns22sz4ng7jwndj1fxahj8qddrsy2w4mr4ikx28qhdj8rf49n428qnl657bbpag9r3g3qv2vhyd8zb";
+        sha512 = "66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==";
       };
     };
     "fs-extra-6.0.1" = {
@@ -4412,7 +4709,7 @@ let
       version = "6.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz";
-        sha512 = "049jki4y8l719y7754fp6v52jm5r8cw8c4qhag4zgglmc0j19k1dhsbdsahijgv9hzvwz8g76009c8cy8xjg6jhb1a7dkb1m288hz0s";
+        sha512 = "GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==";
       };
     };
     "fs-extra-7.0.1" = {
@@ -4421,7 +4718,7 @@ let
       version = "7.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz";
-        sha512 = "05qcmykw9czycnn3r2rrlspzd4dznr4796abdqzw150j7rafnlq8n4wp4dai34swb23lfvhw8s31l1k83vpwxqddyf1k724jq4dm430";
+        sha512 = "YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==";
       };
     };
     "fs-extra-8.1.0" = {
@@ -4430,7 +4727,7 @@ let
       version = "8.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz";
-        sha512 = "3i4dsx067a564yx62qy0gz15zvsihqybmmx56lqz4cbgh4fiv5ikrj53wa1rfcijlnkywx18az05m1541dm04gb51af57561s0506fa";
+        sha512 = "yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==";
       };
     };
     "fs-minipass-1.2.7" = {
@@ -4439,7 +4736,7 @@ let
       version = "1.2.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz";
-        sha512 = "1644yfnzfqikaff5s68dm4qfrblxrz68ynigkyzyixjqazxlli0svj1nxkawz35sv2vb3vjh41f1rhg0j4nr770a53fzqbjc4j94r0r";
+        sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==";
       };
     };
     "fs-readdir-recursive-1.1.0" = {
@@ -4448,7 +4745,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz";
-        sha512 = "129732drwnm77iq4y1xr69pl9iqqhgj4w61ckmna6i923rjpp0rphzbg8bn8rmfsb6cndfswgwwdh9p2y6kf3zbvgs9gnkbamgagmhq";
+        sha512 = "GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==";
       };
     };
     "fs-write-stream-atomic-1.0.10" = {
@@ -4469,22 +4766,22 @@ let
         sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
       };
     };
-    "fsevents-1.2.12" = {
+    "fsevents-1.2.13" = {
       name = "fsevents";
       packageName = "fsevents";
-      version = "1.2.12";
+      version = "1.2.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.12.tgz";
-        sha512 = "38n3fx736zykzjypx7imagh6daz9yl98a8v3lw7xy8qs2k0wa2sdsjrdmhwg914mj648j0wzc02mz7f5ii6ql8nlwyb44vvvcm7y1qs";
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz";
+        sha512 = "oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==";
       };
     };
-    "fsevents-2.1.2" = {
+    "fsevents-2.1.3" = {
       name = "fsevents";
       packageName = "fsevents";
-      version = "2.1.2";
+      version = "2.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz";
-        sha512 = "1j5ssfzy4xklkj74z7q64dpcld4zicsva1ihfys8dwa9l5apv7q350g4vg65nfp58c7aqkai1qmjlc3xshb97p5h3lsrl0r3j407327";
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz";
+        sha512 = "Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==";
       };
     };
     "function-bind-1.1.1" = {
@@ -4493,7 +4790,16 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
-        sha512 = "38chm1mh077ksx6hy2sssfz4q29hf0ncb9k6ila7si54zqcpl5fxd1rh6wi82blqp7jcspf4aynr7jqhbsg2yc9y42xpqqp6c1jz2n8";
+        sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
+      };
+    };
+    "gensync-1.0.0-beta.1" = {
+      name = "gensync";
+      packageName = "gensync";
+      version = "1.0.0-beta.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz";
+        sha512 = "r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==";
       };
     };
     "get-caller-file-1.0.3" = {
@@ -4502,7 +4808,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz";
-        sha512 = "3mw8nv3r73b3lp2pzj116p27flkrv1vq6v0ika46w3xqfinm6gxn38glryibvy834mja8ib4j9cjq27qn164z3793c9g88y79asppny";
+        sha512 = "3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==";
       };
     };
     "get-caller-file-2.0.5" = {
@@ -4511,7 +4817,7 @@ let
       version = "2.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz";
-        sha512 = "0b7da6kb3xqk26cw4i6kb1lk911z06z53if2g8l23hmfpbhl6vfbn8iip55j1yplbqnly2abb9d349r6ky2z570839q3p9z2gf4y88g";
+        sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
       };
     };
     "get-own-enumerable-property-symbols-3.0.2" = {
@@ -4520,7 +4826,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz";
-        sha512 = "3m4dzkl08xi19c8aim6hxfy32zxi969r2zfzz9swbvsl5jzcnxn2x9y19kp9ri7k7qw07rz2m7c5g0134rm1i4i43j5bkyfymbh2i93";
+        sha512 = "I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==";
       };
     };
     "get-proxy-2.1.0" = {
@@ -4529,16 +4835,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/get-proxy/-/get-proxy-2.1.0.tgz";
-        sha512 = "0kjf4p1krvzah7k5yngvvc39b7jnkzqlp3cdab8451zh1q4mxmav111dmycnadv28ja2wvcwvavjl7w550ja7qyw4dx976n0illhrnf";
-      };
-    };
-    "get-stream-3.0.0" = {
-      name = "get-stream";
-      packageName = "get-stream";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz";
-        sha1 = "8e943d1358dc37555054ecbe2edb05aa174ede14";
+        sha512 = "zmZIaQTWnNQb4R4fJUEp/FC51eZsc6EkErspy3xtIYStaq8EB/hDIWipxsal+E8rz0qD7f2sL/NA9Xee4RInJw==";
       };
     };
     "get-stream-4.1.0" = {
@@ -4547,16 +4844,16 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz";
-        sha512 = "3pwlllj9naaqzlc5axbxz4jqg3v533xd9jz945mjd3zmca3hh3pr1dpwc7416kjszw6igk060v6x2dgwpr7m1rd4djavmvr8bhavihq";
+        sha512 = "GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==";
       };
     };
-    "get-stream-5.1.0" = {
+    "get-stream-5.2.0" = {
       name = "get-stream";
       packageName = "get-stream";
-      version = "5.1.0";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz";
-        sha512 = "21v525x0f3qrc6f343xp3wjwwrjf1l3x0lmp34hivvvmdcz0a681s0b9wx4k5r3r8jyhc5kd6dqrwqjhpbl285xg333gkgbxhagayhi";
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz";
+        sha512 = "nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==";
       };
     };
     "get-value-2.0.6" = {
@@ -4583,7 +4880,7 @@ let
       version = "7.1.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz";
-        sha512 = "3a8rf655jknn8ccr4p47spa74d8q4j4znjal0arh502m9pg1iq1cln8qjssv7lhc0gvdfm6zfrha6k3xinilm2swfj756m1jxxcyhl6";
+        sha512 = "hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==";
       };
     };
     "glob-7.1.6" = {
@@ -4592,7 +4889,7 @@ let
       version = "7.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
-        sha512 = "020qv13jbi1v4y5xavf6fw08h9svy4q9p67m4avkrrhgdjmk0c5k3h19bv7k6yn1vfxljpjw9kg81fbdg9v83cjplxvkn3v4v1v21ig";
+        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
       };
     };
     "glob-parent-3.1.0" = {
@@ -4610,7 +4907,7 @@ let
       version = "5.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz";
-        sha512 = "1hi3ypyic536qm0jd2aw65wbaian4vxmgsnprw6p1mdfd75ks5x1mrgkgzl41xr6hnav27fqzpm227rj7qq8vcwb63m37m9cda3wwhn";
+        sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==";
       };
     };
     "glob-to-regexp-0.3.0" = {
@@ -4628,7 +4925,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz";
-        sha512 = "1pgpsvm0rm1fnqmblx77xs67gh8c80nf4dsgcgalhh9phmlp8ahn5w7vzx3xkwyxw3fg33h8vhh3plsycw6fd7c2r76mm7m8w9fkb5h";
+        sha512 = "sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==";
       };
     };
     "global-prefix-1.0.2" = {
@@ -4646,16 +4943,16 @@ let
       version = "11.12.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz";
-        sha512 = "1ab6f0n8yjl3zkl6dwhvxpxh63b4acc7nj7i21z3dx1fz1jv1c3673qpkwiavmcbbf8jlkxapx0x8ybzz5w2yra4ln24lh687y6kq2q";
+        sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==";
       };
     };
-    "globby-11.0.0" = {
+    "globby-11.0.1" = {
       name = "globby";
       packageName = "globby";
-      version = "11.0.0";
+      version = "11.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globby/-/globby-11.0.0.tgz";
-        sha512 = "094y6k3zjiyzmq9xqilgz3p88c5465cmzsxc31gkm7fxb0vj9i2kdvxv28c4izppgrfgvpwwvcbvivlnhcf6rhv0iqfxikpfhba3rwa";
+        url = "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz";
+        sha512 = "iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==";
       };
     };
     "globby-6.1.0" = {
@@ -4682,7 +4979,7 @@ let
       version = "8.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/globby/-/globby-8.0.1.tgz";
-        sha512 = "2kvb22azhxv632w6jbgssa2k29c3vwann1f7g3ra974lg41hcw4s7cbc8260y0kycv93nfvkxsc9wyycsl4xmfjbi5s170ij6ndijm0";
+        sha512 = "oMrYrJERnKBLXNLVTqhm3vPEdJ/b2ZE28xN4YARiix1NOIOBPEpOUnm844K1iu/BkphCaf2WNFwMszv8Soi1pw==";
       };
     };
     "got-10.7.0" = {
@@ -4691,25 +4988,25 @@ let
       version = "10.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/got/-/got-10.7.0.tgz";
-        sha512 = "0k2vbyaqxs8ikrf2fp7jm1q0147bshpmy94wr1wqlqharvgk1wfachm3yxaf8jn70bdmxl4ph3vnb351hrlwp4k27mfb0rxviwc6r39";
+        sha512 = "aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==";
       };
     };
-    "got-8.3.2" = {
+    "got-9.6.0" = {
       name = "got";
       packageName = "got";
-      version = "8.3.2";
+      version = "9.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/got/-/got-8.3.2.tgz";
-        sha512 = "05i0zb81f4c0z48y9mjckyajm586ygznh8y8di5g0qrg3vi9hpbw2q3cf548as8zx9b4g1q5zf2cab43yx21wnan1l0qsz19zjhjdda";
+        url = "https://registry.npmjs.org/got/-/got-9.6.0.tgz";
+        sha512 = "R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==";
       };
     };
-    "graceful-fs-4.2.3" = {
+    "graceful-fs-4.2.4" = {
       name = "graceful-fs";
       packageName = "graceful-fs";
-      version = "4.2.3";
+      version = "4.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz";
-        sha512 = "12xdl6ai5jdxcpcavw2hk4zpiknz7g7f2cvgawzwlzv7cy7qf7riq8ymkgqdqxjkpl1mg627dxa65zc9b0yqhflsmqlfg5q3481azbb";
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz";
+        sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==";
       };
     };
     "gzip-size-5.0.0" = {
@@ -4718,7 +5015,7 @@ let
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/gzip-size/-/gzip-size-5.0.0.tgz";
-        sha512 = "007247c436qdpsvrraz3qgssvq0yzi4xinaydxjprr2dslsynhy09lpnlgd52pxkql3880j340fq4qs4rq6s5qfbgksmji5cyi3n8p6";
+        sha512 = "5iI7omclyqrnWw4XbXAmGhPsABkSIDQonv2K0h61lybgofWa6iZyvrI3r2zsJH4P8Nb64fFVzlvfhs0g7BBxAA==";
       };
     };
     "handle-thing-2.0.1" = {
@@ -4727,7 +5024,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz";
-        sha512 = "174zcs1shwmzgb8dxckn95s38pz30irzkrp8zw1rx5drqydb5x6mn1cnc3m6nklbq0jyilpfcrf9br9zrrxlfpcv0him5sy3k4gh2gm";
+        sha512 = "9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==";
       };
     };
     "har-schema-2.0.0" = {
@@ -4739,13 +5036,13 @@ let
         sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
       };
     };
-    "har-validator-5.1.3" = {
+    "har-validator-5.1.5" = {
       name = "har-validator";
       packageName = "har-validator";
-      version = "5.1.3";
+      version = "5.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
-        sha512 = "3kaldgfsh3lfvgvw31s8b7q345zf7ixjahllncdckcw6qfs3gnbsamdxgs9kfigq7rwmja7v51ghh7y0rsp6q7jmvmbydhh645wxnxh";
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz";
+        sha512 = "nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==";
       };
     };
     "has-1.0.3" = {
@@ -4754,7 +5051,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
-        sha512 = "37vh53c11hws66navka0w9xxm6rcr034bxpyvaldiqz1msafqf0jpi1aqxbaygs53arz9y510qg6dl6vrm285hrxniygs2l8lxnyrvz";
+        sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
       };
     };
     "has-ansi-2.0.0" = {
@@ -4781,7 +5078,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
-        sha512 = "0ylry8j6wanggw1786jw36k056caw516fasjfz5jl945p7g0zl2aqxsjd5fxxfah3hlhrbflnsb88vx42080sfsfbb38aimyi7hja8k";
+        sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
       };
     };
     "has-symbol-support-x-1.4.2" = {
@@ -4790,7 +5087,7 @@ let
       version = "1.4.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz";
-        sha512 = "0kljkjnsw7jnqm8dpf05rd7a59xjfwlbmp1qxs5kdda78zwwqfpkq5ryc2510iyam6v5vbyy0h7bpkwqadajq1ag2zaa7dymyyhwfnx";
+        sha512 = "3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==";
       };
     };
     "has-symbols-1.0.1" = {
@@ -4799,7 +5096,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz";
-        sha512 = "0mb9d5yqvznqmq073hdc4wl7175niiqpkpb7iqqv8p0q6xgmrhfap9ni6iwrx44w8p9vyg8n3zsllil5pdflzlh462dkydymfi2rdrw";
+        sha512 = "PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==";
       };
     };
     "has-to-string-tag-x-1.4.1" = {
@@ -4808,7 +5105,7 @@ let
       version = "1.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz";
-        sha512 = "0bqvhd628h3lrsydbp1xllh7jp23c58j7d4z0x0v9ddffindkk1zfrqmzm28z47ipjp0zxlmzvmlzk98zf9mzjsc47bmp1ydizcmmmx";
+        sha512 = "vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw==";
       };
     };
     "has-value-0.3.1" = {
@@ -4847,13 +5144,13 @@ let
         sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
       };
     };
-    "hash-base-3.0.4" = {
+    "hash-base-3.1.0" = {
       name = "hash-base";
       packageName = "hash-base";
-      version = "3.0.4";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz";
-        sha1 = "5fc8686847ecd73499403319a6b0a3f3f6ae4918";
+        url = "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz";
+        sha512 = "1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==";
       };
     };
     "hash.js-1.1.7" = {
@@ -4862,7 +5159,7 @@ let
       version = "1.1.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz";
-        sha512 = "1f5xc15zpy3b7hssv57xnd92ja5r073zvd2pczvncxmy1jnbjcx716riyr2syvah88qk7328a6fz049mziv2k837093xqxd86r9m8xm";
+        sha512 = "taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==";
       };
     };
     "he-1.2.0" = {
@@ -4871,7 +5168,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz";
-        sha512 = "0dwml2q9r97ga11qbbn5sb46v4g47lx174dz9g1jgxpycknhg1d5dlsij2vja905p8h243jj51hfa5cmzh8n9rdcs8r78lg86fl7z8p";
+        sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
       };
     };
     "hex-color-regex-1.1.0" = {
@@ -4880,7 +5177,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz";
-        sha512 = "16nq2pq6pbpjp3xhvxzyr0qv7vn58pp9h29j8abcxkibz0ibgh9lls5ws73qwhz75nl8wsrjkri8ka6rjm7c41v52md7aifbc61znwp";
+        sha512 = "l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==";
       };
     };
     "hmac-drbg-1.0.1" = {
@@ -4898,7 +5195,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz";
-        sha512 = "1qc7ngn9k1w5lcqx2ygqb2x9f03knfbsym25l6qsp6q9qdcxa4fzwwjsh9d9lm5l1569v19rjp7sdnz11087f4b6sv34rav9rcacabr";
+        sha512 = "eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==";
       };
     };
     "hosted-git-info-2.8.8" = {
@@ -4907,7 +5204,7 @@ let
       version = "2.8.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
-        sha512 = "19a25b4xb3hg00d1nsirc3xfcc07rplbh6msa49rgc8xg5rg38y1z8rfrf0dmll8k4jaml8z337bi6y2cgah66jnwxinn0sch5k7z3z";
+        sha512 = "f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==";
       };
     };
     "hpack.js-2.1.6" = {
@@ -4943,34 +5240,34 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz";
-        sha512 = "2cqjc2vwxqb38sr58kl1gj9vv949wmmnb1i2f3gms2pszqqaf9mjci0q13w3086wia9n7nfxwmk73d68gcjjjkgs1c0w99n0vjkmqrz";
+        sha512 = "P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==";
       };
     };
-    "html-entities-1.2.1" = {
+    "html-entities-1.3.1" = {
       name = "html-entities";
       packageName = "html-entities";
-      version = "1.2.1";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz";
-        sha1 = "0df29351f0721163515dfb9e5543e5f6eed5162f";
+        url = "https://registry.npmjs.org/html-entities/-/html-entities-1.3.1.tgz";
+        sha512 = "rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA==";
       };
     };
-    "html-minifier-terser-5.0.5" = {
+    "html-minifier-terser-5.1.1" = {
       name = "html-minifier-terser";
       packageName = "html-minifier-terser";
-      version = "5.0.5";
+      version = "5.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.0.5.tgz";
-        sha512 = "1xh7yad8rlhvqdxf8nzq146y3ay9ifan1yi8whkpgl2nz04d49g325lbkcwaf2fvhz8xmy0bqq124n7ia6jz8plf63zp1sh10b8a53h";
+        url = "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz";
+        sha512 = "ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==";
       };
     };
-    "html-webpack-plugin-4.0.4" = {
+    "html-webpack-plugin-4.3.0" = {
       name = "html-webpack-plugin";
       packageName = "html-webpack-plugin";
-      version = "4.0.4";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.4.tgz";
-        sha512 = "30npn4h34f7ghwsirydj6icfav14sq5slwk3lpd043jgng2gkii00df1cj6hhldj8d2pmmfvg9aslrgyr2cdanjvw988z658v6i0485";
+        url = "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.3.0.tgz";
+        sha512 = "C0fzKN8yQoVLTelcJxZfJCE+aAvQiY2VUf3UuKrR4a9k5UMWYOtpDLsaXwATbcVCnI05hUS7L9ULQHWLZhyi3w==";
       };
     };
     "htmlparser2-3.10.1" = {
@@ -4979,16 +5276,7 @@ let
       version = "3.10.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz";
-        sha512 = "04y4izmqmlxvcv7fj67dqaiiwrnq75j6n6yv9a6990y6s23lrj6ipbx0y0i57z8gqzq2ddhb2dj2dflskk2ia7wl81vjcfl50v9w212";
-      };
-    };
-    "http-cache-semantics-3.8.1" = {
-      name = "http-cache-semantics";
-      packageName = "http-cache-semantics";
-      version = "3.8.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz";
-        sha512 = "3gsj16kpvygynld5ajbvg8ii3n3bka4waamdzx30wwhz72mdr6wvffm20rfnxwzid9fq49d5g333yjq5dz1qqbnk9bwcmrj9f5bda75";
+        sha512 = "IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==";
       };
     };
     "http-cache-semantics-4.1.0" = {
@@ -4997,7 +5285,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz";
-        sha512 = "1qvqr3inc283iggn9x9wwiv1zb634i5zmlh8dnl2c5n4czaf2yibs4dncrgxfg7zrdfkcali22mvys4pgyhmfqjb57b91qlay9czaki";
+        sha512 = "carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==";
       };
     };
     "http-deceiver-1.2.7" = {
@@ -5033,7 +5321,7 @@ let
       version = "1.7.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz";
-        sha512 = "13c4825kzqlxdqfjrlrwh15ira0bjm9m3b8qcrfzaysiky1m3gb6dv6gcjgpnap9mbl0fajqiibzp1w5r8qnyn8glaj4wgzf6vh2i5r";
+        sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==";
       };
     };
     "http-errors-1.7.3" = {
@@ -5042,16 +5330,16 @@ let
       version = "1.7.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.3.tgz";
-        sha512 = "1zx0vws4k6lcw8j8pgc2yrwfw56s6n2z4dvhd9lcj9l1ywnl9ssianilmrlzr6ravkqxv0xbdqg4cn0q3l72d8h0achvcdbqp8dfd35";
+        sha512 = "ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==";
       };
     };
-    "http-parser-js-0.4.10" = {
+    "http-parser-js-0.5.2" = {
       name = "http-parser-js";
       packageName = "http-parser-js";
-      version = "0.4.10";
+      version = "0.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.10.tgz";
-        sha1 = "92c9c1374c35085f75db359ec56cc257cbb93fa4";
+        url = "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz";
+        sha512 = "opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==";
       };
     };
     "http-proxy-1.17.0" = {
@@ -5060,16 +5348,16 @@ let
       version = "1.17.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz";
-        sha512 = "3z80svhb9hi5fawc8za5qn75lybr53646gfsqm2hkqss4pr186pp7k6f5jnjgw7vrkgjy4yzvb34729q6kvrikn4xgq9gfdg7xsgajd";
+        sha512 = "Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==";
       };
     };
-    "http-proxy-1.18.0" = {
+    "http-proxy-1.18.1" = {
       name = "http-proxy";
       packageName = "http-proxy";
-      version = "1.18.0";
+      version = "1.18.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz";
-        sha512 = "2jhzdgr7gcgj58mf798ak1a638wm4mnp45pk48im1rf03dpw39alpyabd7rqwqgjrilaggnmh6nd3m9pqnyn76q3mw5g7rzjf43d0pk";
+        url = "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz";
+        sha512 = "7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==";
       };
     };
     "http-proxy-middleware-0.19.1" = {
@@ -5078,16 +5366,16 @@ let
       version = "0.19.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz";
-        sha512 = "3fl42r9rpdqm0jrrd2wqws6syv02r8cqgy0j6ddrjvn5p3by8shm0mmbych1g5k9i5agc70x6z2904nrgidkdnlq1pwafqhcf0i6xn8";
+        sha512 = "yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==";
       };
     };
-    "http-proxy-middleware-0.20.0" = {
+    "http-proxy-middleware-0.21.0" = {
       name = "http-proxy-middleware";
       packageName = "http-proxy-middleware";
-      version = "0.20.0";
+      version = "0.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.20.0.tgz";
-        sha512 = "21l9r4302hy4pdns6p52jw6mb3mcjqia6vydc5r1fmhifd5a5xrkwg0pmwgiqb0kyrwy4k47wqkzw8sc5zl0cq7i17rh437pn9l1lkl";
+        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.21.0.tgz";
+        sha512 = "4Arcl5QQ6pRMRJmtM1WVHKHkFAQn5uvw83XuNeqnMTOikDiCoTxv5/vdudhKQsF+1mtaAawrK2SEB1v2tYecdQ==";
       };
     };
     "http-signature-1.2.0" = {
@@ -5114,7 +5402,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz";
-        sha512 = "1kz5n441pr99yhsdpw8sdamc8c44nc6jiipq41iqvsi1djabh15z8vmqkyqy63hjp6da0szqfk2607vfyqh81pav55k6akwz7p2wi28";
+        sha512 = "SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==";
       };
     };
     "i-0.3.6" = {
@@ -5132,7 +5420,7 @@ let
       version = "0.4.19";
       src = fetchurl {
         url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz";
-        sha512 = "0jj1pdq3j9ak8cixn2kjp7ip8hf3xgnb85j4jr32yf9rry620v9072c0kk577mllfk1zl9wzs5ypwzbp7vbhf7j31d5rrqgwb0nldm1";
+        sha512 = "oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==";
       };
     };
     "iconv-lite-0.4.24" = {
@@ -5141,7 +5429,7 @@ let
       version = "0.4.24";
       src = fetchurl {
         url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
-        sha512 = "2n3ygx6km56rdcd5kq52bs2113xqm3vlw2kb9r7pnmxd2qhxrfahp2ngc4w7x8x76fyfpapnixnbjq1i24nc11mj6q7rghwj2fifwxz";
+        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
       };
     };
     "icss-utils-4.1.1" = {
@@ -5150,7 +5438,7 @@ let
       version = "4.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz";
-        sha512 = "0yccn3a8gi1sxrbw7ymv239zs4myhrbavs2wvgv8qn3cjbs4r62f01jgsj26jzlq0vy7ycz400xp6qs5l2g21qvhg5c3j6n1gpnm8g1";
+        sha512 = "4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==";
       };
     };
     "ieee754-1.1.13" = {
@@ -5159,7 +5447,7 @@ let
       version = "1.1.13";
       src = fetchurl {
         url = "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz";
-        sha512 = "179jm8fhl2advz4j63klrp57sm99wvyb5jcxwfr9rhi730ybcxkyfqrr0pmwvir12zjzpkwwvjjkjclwrss7lpab7dg2myqc8izpxz2";
+        sha512 = "4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==";
       };
     };
     "iferr-0.1.5" = {
@@ -5177,16 +5465,16 @@ let
       version = "3.3.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz";
-        sha512 = "2x7za00gs7ipwcq29bslxcdv7j47m28jx14n9ybs5h2icr4024jn5ppmbs6953g2qb3amhs1gg5x0s48ky3mk7ybi36wchsb7kks2ry";
+        sha512 = "Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==";
       };
     };
-    "ignore-5.1.4" = {
+    "ignore-5.1.8" = {
       name = "ignore";
       packageName = "ignore";
-      version = "5.1.4";
+      version = "5.1.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ignore/-/ignore-5.1.4.tgz";
-        sha512 = "3q41bskh27g3dd95nqaf3lg1ck1iv1dbb6hhzg1jqlkk6j80q5sxb4i3n4k6rfw5nmnvrflaxvi281c7cv2ljlsxip6skb4m14x8dik";
+        url = "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz";
+        sha512 = "BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==";
       };
     };
     "immer-1.7.2" = {
@@ -5195,7 +5483,16 @@ let
       version = "1.7.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/immer/-/immer-1.7.2.tgz";
-        sha512 = "32d76qv6hnprfz8mc75aw3nvwh46ydlni7lf6fvw7sqljhqlr7p6pk101mw04zfpj2p08nb71b0zc438ak764qf4z1p5ydx1dryhjp1";
+        sha512 = "4Urocwu9+XLDJw4Tc6ZCg7APVjjLInCFvO4TwGsAYV5zT6YYSor14dsZR0+0tHlDIN92cFUOq+i7fC00G5vTxA==";
+      };
+    };
+    "import-cwd-2.1.0" = {
+      name = "import-cwd";
+      packageName = "import-cwd";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz";
+        sha1 = "aa6cf36e722761285cb371ec6519f53e2435b0a9";
       };
     };
     "import-fresh-2.0.0" = {
@@ -5207,13 +5504,22 @@ let
         sha1 = "d81355c15612d386c61f9ddd3922d4304822a546";
       };
     };
+    "import-from-2.1.0" = {
+      name = "import-from";
+      packageName = "import-from";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz";
+        sha1 = "335db7f2a7affd53aaa471d4b8021dee36b7f3b1";
+      };
+    };
     "import-local-2.0.0" = {
       name = "import-local";
       packageName = "import-local";
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz";
-        sha512 = "04jd526svpmpgya7i580qcb13s9b6bw4s9hng2fsni2gxsz6h8vqxl8gbm5k575yxm5aqhy001rl7p1iy60rsi6371cvynfdpi39avg";
+        sha512 = "b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==";
       };
     };
     "imurmurhash-0.1.4" = {
@@ -5240,7 +5546,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz";
-        sha512 = "3s364ysa3q0sxc852a6rlbx0y8spayvg5csradd7s9vn2fr0ky3xpfhy5kkv6afgji3df7kyiswx296kwfakydii9xygqzxgkwn6a90";
+        sha512 = "IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==";
       };
     };
     "inflight-1.0.6" = {
@@ -5276,7 +5582,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
-        sha512 = "30rw2i1k63pbf0n5dbwly05h95cdp1kj8c9r15gv1cwha141g61k56fx4qwsvhpm1ksnf7agch1wxirs3s0m31wbfvmcqizgrlwdywk";
+        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
       };
     };
     "ini-1.3.5" = {
@@ -5285,7 +5591,7 @@ let
       version = "1.3.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz";
-        sha512 = "1rjbvf1rg5ywhnba08sgagn2qf23lab330qrqmh7d891zap3xpxcyfyj1cblpf0f0rypglcfacybzyrpd4996aa1mbc820awa33k5j5";
+        sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==";
       };
     };
     "inquirer-6.2.0" = {
@@ -5294,7 +5600,7 @@ let
       version = "6.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz";
-        sha512 = "1x0h1ww7c5dqlkxw4l5y64zw0sknw2z3p2zmkbyajahy74ndsb69ah54x4ya8wlv18mk4wdx4f67c37rk5f5hk0chc6ahrjhqdi10a0";
+        sha512 = "QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==";
       };
     };
     "internal-ip-4.3.0" = {
@@ -5303,16 +5609,7 @@ let
       version = "4.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz";
-        sha512 = "05c6ydjyg8633b07vn5g168r5lxwvl5k1mjm55brfx35c1z18195bh67f7cfk4bjvyapxfhh8q5i7pv75k353rfp0rcpkgsa2iw2p2b";
-      };
-    };
-    "into-stream-3.1.0" = {
-      name = "into-stream";
-      packageName = "into-stream";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/into-stream/-/into-stream-3.1.0.tgz";
-        sha1 = "96fb0a936c12babd6ff1752a17d05616abd094c6";
+        sha512 = "S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==";
       };
     };
     "invariant-2.2.4" = {
@@ -5321,7 +5618,7 @@ let
       version = "2.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz";
-        sha512 = "0sa0bflh46zr7zqdifqk3a48bmqlmpikrnmwvgz8nx6979piw2m92qrn1g5xnpjzxn864y2jq3gl84jkws2dad3mlwr6s3fa10my4m6";
+        sha512 = "phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==";
       };
     };
     "invert-kv-1.0.0" = {
@@ -5333,15 +5630,6 @@ let
         sha1 = "104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6";
       };
     };
-    "invert-kv-2.0.0" = {
-      name = "invert-kv";
-      packageName = "invert-kv";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz";
-        sha512 = "0lamd4l8hybnh42bg1nav09fj3h7k31vnvsqbqk3mhbhml32042k8hpixhiapqfssi1jyhnw31mdv9zx0fvxzxqi8igahyh5zznzxf0";
-      };
-    };
     "ip-1.1.5" = {
       name = "ip";
       packageName = "ip";
@@ -5366,7 +5654,7 @@ let
       version = "1.9.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
-        sha512 = "3gcwhv1wa2hb1vljlcmzhvzliks9rj7nzsw165vgy69jakw8g55ky474mj4j41vfbid8viy9nhwn9kx8pfqrikyl29i98zi9vmkz8nh";
+        sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
       };
     };
     "is-absolute-url-2.1.0" = {
@@ -5384,7 +5672,7 @@ let
       version = "3.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz";
-        sha512 = "3ssxj0ds0anzx5qcgn5lcawrsv3br0zbi1qcfpi9sslp4iwzb0hr9aqy3y72rf9c0bwb0h5svy7l341j0arlkyvx2yp85pfgqhqv6d2";
+        sha512 = "opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==";
       };
     };
     "is-accessor-descriptor-0.1.6" = {
@@ -5402,7 +5690,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
-        sha512 = "1qllik6fjwfq17ic0fxwqyll8mrhmcm36xfsq45xc57mq9ah4i4nn4f8fvgb0gx4kpl3jlpkzndp0xlmmf2mh0xmggw6mhw74fng64v";
+        sha512 = "m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==";
       };
     };
     "is-arguments-1.0.4" = {
@@ -5411,7 +5699,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz";
-        sha512 = "0n6f8bxyg7bn669kd50zw62x8fjgbckgkfxs9mnka3iw3mklg60ijk5v312y9hd30jvxawag77nv3c0jr4wkvywn2wlwd3wdd379y64";
+        sha512 = "xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==";
       };
     };
     "is-arrayish-0.2.1" = {
@@ -5429,7 +5717,7 @@ let
       version = "0.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz";
-        sha512 = "1cmy0k81vgz5z55rdyxfnx307053ksyp1lfgyj5jldkqqzmkx1z2k63fvzn7lgj8wdakmsa1mw408rm5xxfpk3avjqbnrb5yl56lm3r";
+        sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==";
       };
     };
     "is-binary-path-1.0.1" = {
@@ -5447,7 +5735,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz";
-        sha512 = "1gldm4swvg3612pg55yjza8dvpv4daf374dijjg8kcmndlq55933pdd7gw4gq4c2aa5fn9vnasz3h9spg3pd8p1rafkr91sxdhi3hb4";
+        sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==";
       };
     };
     "is-buffer-1.1.6" = {
@@ -5456,16 +5744,25 @@ let
       version = "1.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz";
-        sha512 = "3kr8dm9qyklmm2xyiz75s8db90bfilfals4x0g276kncihrrrz0ar4y6dqpvc7pwy7h43jay1bayi1r62x97nzvcswkk4ap18pl1irm";
+        sha512 = "NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==";
       };
     };
-    "is-callable-1.1.5" = {
+    "is-callable-1.2.0" = {
       name = "is-callable";
       packageName = "is-callable";
-      version = "1.1.5";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz";
-        sha512 = "3wmff73yzck45x5shydqswbww8zkl03i43yhy7mm6av9770yvd2gj7xfrc8f45fw2ncn7mwblxvxlcap5rngmklkjiis902qgkay8hi";
+        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz";
+        sha512 = "pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==";
+      };
+    };
+    "is-ci-2.0.0" = {
+      name = "is-ci";
+      packageName = "is-ci";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz";
+        sha512 = "YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==";
       };
     };
     "is-color-stop-1.1.0" = {
@@ -5492,7 +5789,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
-        sha512 = "0ny6kxc752fg3z6fmj8a7fw2lai2y17d9fx0028nvyv1qj0sa30rfryhv9xd7b7is1yfs0val6amsy2b22rh589il10md36a75mgd4d";
+        sha512 = "jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==";
       };
     };
     "is-date-object-1.0.2" = {
@@ -5501,7 +5798,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz";
-        sha512 = "39f971gzwirnxjw4b72c175nbn1hnmrn1wljvbzvxv69hw9vpialhjafh9nkh0g3p26a49zss3rr7pxfww1f6day4s89hmqkm7l6aai";
+        sha512 = "USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==";
       };
     };
     "is-descriptor-0.1.6" = {
@@ -5510,7 +5807,7 @@ let
       version = "0.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz";
-        sha512 = "0gbflcxmd30gzj91y19fylsfalirl6qg71sxjximc8lc2vxkg5h9scnahvxsczymchlx742i8ai489843ys431vyw73rp418jpxiw3a";
+        sha512 = "avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==";
       };
     };
     "is-descriptor-1.0.2" = {
@@ -5519,7 +5816,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz";
-        sha512 = "2v1a9mn2rzz52v8vs3i7njk9pv95fh971yc81xr0zkaw3dff4gbv1zv048xyjysfgwpajbyryk2px8hinwwh0wagblmw6chdbjsrs6r";
+        sha512 = "2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==";
       };
     };
     "is-directory-0.3.1" = {
@@ -5531,6 +5828,15 @@ let
         sha1 = "61339b6f2475fc772fd9c9d83f5c8575dc154ae1";
       };
     };
+    "is-docker-2.1.1" = {
+      name = "is-docker";
+      packageName = "is-docker";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz";
+        sha512 = "ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==";
+      };
+    };
     "is-extendable-0.1.1" = {
       name = "is-extendable";
       packageName = "is-extendable";
@@ -5546,7 +5852,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz";
-        sha512 = "0w73qlx9ynmv2iznw1kll86yd04z4rsz3788nzgh7amcnpsbyxbrs734im9dibqgps6pjyz61s8kp4lcsbjsdfrlc51m1pm2hrxgfba";
+        sha512 = "arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==";
       };
     };
     "is-extglob-2.1.1" = {
@@ -5582,7 +5888,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
-        sha512 = "119fphi7bl53f72b5n0jc61iqlkw6fjmxqhhpbp3ap79vnvp123f3qw5sanin1cfr5cjaa2z0bc6pcdkvbaiz90bc92pc5yxgkscafg";
+        sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
       };
     };
     "is-glob-3.1.0" = {
@@ -5600,7 +5906,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
-        sha512 = "19c23n8r8rfbz5rgs5csbjbpwgxvwi7y6kpsvlylgs2v1r1z2zm18qzzz2g8vnnwaldn5c4qalpc6p88rl0gjrrm278j52ks0m2svg4";
+        sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
       };
     };
     "is-number-3.0.0" = {
@@ -5618,7 +5924,7 @@ let
       version = "7.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz";
-        sha512 = "2g7332xqrb0cm36cn6rwdmgq7sllf9w19sf6jy4w0s4vgqdq1kngsnpz0z49i3vnknk8ms442yjllrdbqxbap9ajprc8yrs91za4l73";
+        sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
       };
     };
     "is-obj-1.0.1" = {
@@ -5636,7 +5942,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz";
-        sha512 = "3rji48hhgd1433ipvrz0v97fcg39v3wz6awfs6advkwlhb032wadkxks4wnncbx6rk9vjp5kza6kmwf1rvkjs4l21qkqwqvfwdq7fkn";
+        sha512 = "drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==";
       };
     };
     "is-object-1.0.1" = {
@@ -5654,7 +5960,7 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz";
-        sha512 = "0aws7clcb9cyvvb4430df9fhfnpg9bl1n07ymzp7jdzia0bvjg25gyd39xp2xhgkgpkqazw8csglblifdql0rpj4kfwg1r26xnkdpn3";
+        sha512 = "w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==";
       };
     };
     "is-path-in-cwd-2.1.0" = {
@@ -5663,7 +5969,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz";
-        sha512 = "12yyg4jlg5mmiy2g0r91hz29v3jh5g2wyhdgs1qrfswx2sp7bfsn5g4632yfxmhrpjcy03bxfj12v93yd6pdykkpsmyz912g1f1rnmc";
+        sha512 = "rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==";
       };
     };
     "is-path-inside-2.1.0" = {
@@ -5672,16 +5978,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz";
-        sha512 = "0b5h3ls9n24ma1wqpfsv7n034ryz86rfn1vkz5g0sih2abi9wrs0vx6w583s6qhcgqa6rx5w5layfz7hlakhxvf07qcnnn36x7s2b62";
-      };
-    };
-    "is-plain-obj-1.1.0" = {
-      name = "is-plain-obj";
-      packageName = "is-plain-obj";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz";
-        sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
+        sha512 = "wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==";
       };
     };
     "is-plain-object-2.0.4" = {
@@ -5690,25 +5987,16 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz";
-        sha512 = "0xgsjz9m3kg5pm36lcchblxk53qay59ya7wi5jgdmz0dsl5b0j2j7wcd48yyfaip1m70mj9aqf8kib02fn62k0hy0vxg2hng60yk4w7";
-      };
-    };
-    "is-promise-2.1.0" = {
-      name = "is-promise";
-      packageName = "is-promise";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz";
-        sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
+        sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==";
       };
     };
-    "is-regex-1.0.5" = {
+    "is-regex-1.1.1" = {
       name = "is-regex";
       packageName = "is-regex";
-      version = "1.0.5";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz";
-        sha512 = "1hqaalcf1yqll2yzm71a1axvid0x87jp41hyicw16rl12rrh6sp6srr9lk7wxm6a1vl3ypw8qyd0imbq8fl2h7yq8l8xawdnkbrclmy";
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz";
+        sha512 = "1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==";
       };
     };
     "is-regexp-1.0.0" = {
@@ -5726,16 +6014,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz";
-        sha512 = "0r8v3dkj5qbfh2wlj4w1msyqsw6j5myvxi88wkw36isscb97yyc2yc1pwm64djrmh1css6jp9p08cx1zb479fg4gv26prciaifdh05a";
-      };
-    };
-    "is-retry-allowed-1.2.0" = {
-      name = "is-retry-allowed";
-      packageName = "is-retry-allowed";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz";
-        sha512 = "134jdgzg4p15g5jvwsmb0bmglmymn1pyk6r2w8q1fm728f15l7k12sqmfngn0mg3vs34gzg12v684fp9c99l6jnv737b6rgmiwd8ij5";
+        sha512 = "qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==";
       };
     };
     "is-root-2.0.0" = {
@@ -5744,7 +6023,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-root/-/is-root-2.0.0.tgz";
-        sha512 = "0z1d0v0af41vz1cwff6262h8zkb0569fwq8yx8gbmrpqp0rc2b3y67b36w2jg4fhv3416m592qqpaarw4g48q9kwjbs63qh9wi4kyhp";
+        sha512 = "F/pJIk8QD6OX5DNhRB7hWamLsUilmkDGho48KbgZ6xg/lmAZXHxzXQ91jzB3yRSw5kdQGGGc4yz8HYhTYIMWPg==";
       };
     };
     "is-stream-1.1.0" = {
@@ -5762,7 +6041,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz";
-        sha512 = "09j5ybpil7bgiffzq9gw66svm3rrgx634aghkwyslbdx382iqpy991cf3kwfk2jh9bi8fjz5wa996wsjwmq21lzz5svgbsld7wk4ajw";
+        sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
       };
     };
     "is-svg-3.0.0" = {
@@ -5771,7 +6050,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz";
-        sha512 = "36jn8w0rn8szd1vpk2pb9b7bnq3bfvwlakxmk1h792hgirxmh5bz8bi5sq6qmz54kx7aq7acbs232gdnwzmdm8jisp1sbbpmqf24bl2";
+        sha512 = "gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==";
       };
     };
     "is-symbol-1.0.3" = {
@@ -5780,7 +6059,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz";
-        sha512 = "1lmzzy2360gfg5639x8mzi5fpc1bgpdx0ffjlqaz9affd0lvvpi7yjwk15jsm1y1l8rf5jahyapv6rm2w3p86gxkghsp0jjlj2s621v";
+        sha512 = "OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==";
       };
     };
     "is-typedarray-1.0.0" = {
@@ -5807,7 +6086,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz";
-        sha512 = "0h9a8zw2ddl25yryp7i376iqjdvlsx4gw93sxy4067dw2yi98m3krfwd9xgi9q5w0idw9rqnyhhncr38xsppyi5izkb7ngai58bawkr";
+        sha512 = "eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==";
       };
     };
     "is-wsl-1.1.0" = {
@@ -5819,6 +6098,15 @@ let
         sha1 = "1f16e4aa22b04d1336b66188a66af3c600c3a66d";
       };
     };
+    "is-wsl-2.2.0" = {
+      name = "is-wsl";
+      packageName = "is-wsl";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz";
+        sha512 = "fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==";
+      };
+    };
     "isarray-1.0.0" = {
       name = "isarray";
       packageName = "isarray";
@@ -5870,16 +6158,34 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/isurl/-/isurl-1.0.0.tgz";
-        sha512 = "3vs53bpdrwiwwcql2xs20jmd8qha27k4iypdhr0b3isgdaj18vz80nhxwvvqxk6y3x5vj3slchxl0r91gjhz487xmkkp52gridg5zyl";
+        sha512 = "1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w==";
       };
     };
-    "js-levenshtein-1.1.6" = {
-      name = "js-levenshtein";
-      packageName = "js-levenshtein";
-      version = "1.1.6";
+    "jest-diff-25.5.0" = {
+      name = "jest-diff";
+      packageName = "jest-diff";
+      version = "25.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz";
+        sha512 = "z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==";
+      };
+    };
+    "jest-get-type-25.2.6" = {
+      name = "jest-get-type";
+      packageName = "jest-get-type";
+      version = "25.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz";
-        sha512 = "3x709s9ph1yxikp636493f7nkd2qbbrv7qrk0xykq9vgmq2sy1gc4h6rhzfqmji1fjqcayvgkppf675sz1429w1cdmb9dhravbl2q2z";
+        url = "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz";
+        sha512 = "DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==";
+      };
+    };
+    "jest-util-26.3.0" = {
+      name = "jest-util";
+      packageName = "jest-util";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-util/-/jest-util-26.3.0.tgz";
+        sha512 = "4zpn6bwV0+AMFN0IYhH/wnzIQzRaYVrz1A8sYnRnj4UXDXbOVtWmlaZkO9mipFqZ13okIfN87aDoJWB7VH6hcw==";
       };
     };
     "js-tokens-4.0.0" = {
@@ -5888,16 +6194,16 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz";
-        sha512 = "0lwyvximqkf1q5w94x2747nj2v035is66vzalrbl3f2gdh9k1m3m29p8zw6r65ps5784x2lxwz8akmv085l4ai358rwbp84axz59lj5";
+        sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
       };
     };
-    "js-yaml-3.13.1" = {
+    "js-yaml-3.14.0" = {
       name = "js-yaml";
       packageName = "js-yaml";
-      version = "3.13.1";
+      version = "3.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz";
-        sha512 = "0kkjjrr0znm2ka89ywc5518c8dw0210z91fm94c7v11l8c96mkjh0ddld5mb7jmmnpzap7vn0fhvr29lma63c9is2ixq3fpp0xxrxk1";
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz";
+        sha512 = "/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==";
       };
     };
     "jsbn-0.1.1" = {
@@ -5924,7 +6230,7 @@ let
       version = "2.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz";
-        sha512 = "20bfkjw0zjachan7rfv75dn5ky7l12xhyz919mdhh9fjn395ss454ykknjza7fwyx09dj89makcs1xi341dvv4k1cvj94739ifbp2rr";
+        sha512 = "OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==";
       };
     };
     "json-buffer-3.0.0" = {
@@ -5942,7 +6248,7 @@ let
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz";
-        sha512 = "14iysr3lrpg8rlrd1q7qv6xwc9abgnfd1yw2wk08lahqhzz6jjrjwxd3k4q6y80p39qp251kdkgxmrx9ydmgglr9k8ag6knyh2pkdg1";
+        sha512 = "4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==";
       };
     };
     "json-parse-better-errors-1.0.2" = {
@@ -5951,7 +6257,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
-        sha512 = "2pv1kaf7gjr0bhr2djaf1i88li7q3v5daz4zm4hz57i4h21jgryihxb5c2h0p0q1vrq1ffyg279hp0vjrg73shvxr5lir6plxjb5fls";
+        sha512 = "mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==";
       };
     };
     "json-schema-0.2.3" = {
@@ -5969,7 +6275,7 @@ let
       version = "0.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
-        sha512 = "1bbgxs4777gn3q3yxi0n792cgz9pimf85pypr0w4wzpb22nr8fl9xi98pkcqd3n4fn7lnzffpq7qwpcl4dqc15py19lwqa2jwgw5dn5";
+        sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
       };
     };
     "json-stable-stringify-1.0.1" = {
@@ -5996,7 +6302,7 @@ let
       version = "3.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz";
-        sha512 = "049m3dzsr3mcgk3g8hw79w9lr296zxs0qmmn45ngfzinyxsvqh6k52i49690bfjlhsv16yrs87vh4nh6lfy80xrdh02haicnnczrgvk";
+        sha512 = "c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==";
       };
     };
     "json5-0.5.1" = {
@@ -6014,16 +6320,16 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz";
-        sha512 = "0xzlb8ipv7y4s06gdr1j09fgp9a8xcjrwy5qq739vgadwzfyslk6xph4f9d8zv7rrc0fg3qn6fpwg3y1mrzf0hbi5qp8yng11cvi938";
+        sha512 = "aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==";
       };
     };
-    "json5-2.1.2" = {
+    "json5-2.1.3" = {
       name = "json5";
       packageName = "json5";
-      version = "2.1.2";
+      version = "2.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz";
-        sha512 = "2ln46a38zniy6a7n5kb5mc4vxs81ylfnp08wg7g0swcpjw1fgscnws4jf9x68wv8f5x911r19wf56j8952k9fqrqvrdv24xhm1hx19j";
+        url = "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz";
+        sha512 = "KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==";
       };
     };
     "jsonfile-2.4.0" = {
@@ -6062,22 +6368,22 @@ let
         sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
       };
     };
-    "keyv-3.0.0" = {
+    "keyv-3.1.0" = {
       name = "keyv";
       packageName = "keyv";
-      version = "3.0.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/keyv/-/keyv-3.0.0.tgz";
-        sha512 = "32ga97c763vprf4sjbb2f7gbngfppq9n1hy4cpq2h4yb1msrhh2zjimxib7p09mzgynm6askbigxlsqsm11p644avp4sf5nmng8f2vs";
+        url = "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz";
+        sha512 = "9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==";
       };
     };
-    "keyv-4.0.0" = {
+    "keyv-4.0.1" = {
       name = "keyv";
       packageName = "keyv";
-      version = "4.0.0";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/keyv/-/keyv-4.0.0.tgz";
-        sha512 = "2i48smwjjjg1l31fm6cflailqiwx8a4f1bcszskxn40zqxg9h2sgi5r04nym2vd9wy630jmdhpn311qybvjsf7w5maz96i2q09sif2k";
+        url = "https://registry.npmjs.org/keyv/-/keyv-4.0.1.tgz";
+        sha512 = "xz6Jv6oNkbhrFCvCP7HQa8AaII8y8LRpoSm661NOKLr4uHuBwhX4epXrPQgF3+xdJnN4Esm5X0xwY4bOlALOtw==";
       };
     };
     "killable-1.0.1" = {
@@ -6086,7 +6392,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz";
-        sha512 = "272kk46rkfh4wq4mispvvy174y6fj8rlnf1m5z8pszpa2igz586k5f8vzz3q3nckxwvkcyqzf48sndd48krwzr9ag22mhjlm4nasfig";
+        sha512 = "LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==";
       };
     };
     "kind-of-3.2.2" = {
@@ -6113,7 +6419,7 @@ let
       version = "5.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz";
-        sha512 = "0zk87sccrjx6pgf9n74v4msnqwq5siyhrkpaklx7yk85ygy5ypcgmyfhbd5mmcyd53x8zcw0gzvp9bhbglziqbhp7a6n5zsf6p08q9l";
+        sha512 = "NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==";
       };
     };
     "kind-of-6.0.3" = {
@@ -6122,7 +6428,7 @@ let
       version = "6.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz";
-        sha512 = "23pm3j7jjxhl5igjj2mg91b2w2x6j39axjy2y7b1z0dp9jgnhxl885znwwvglzhnb5ssdc4v5vy04ks7xpwgzllyy1ngdmxbyxbbi3m";
+        sha512 = "dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==";
       };
     };
     "klaw-2.1.1" = {
@@ -6140,16 +6446,16 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz";
-        sha512 = "3kqxr8xv0rsarmna01c0nhhvkbi9j76r6f2mwa2515dgskwf5dw7ml5iww9bqwr7s8g8yvy8cm8v305b62kqwyav9lsyrc8c6bkd8pc";
+        sha512 = "7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==";
       };
     };
-    "latest-version-4.0.0" = {
+    "latest-version-5.1.0" = {
       name = "latest-version";
       packageName = "latest-version";
-      version = "4.0.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/latest-version/-/latest-version-4.0.0.tgz";
-        sha512 = "37c4yh5igfqlfkxkd25rgnjrksv9xnkj1zc03n0a8zbpgx7rc1xl0ln562x81cm804pwicav8nw8f116bpxhc6bh9ph52chns9k50vg";
+        url = "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz";
+        sha512 = "weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==";
       };
     };
     "lcid-1.0.0" = {
@@ -6161,13 +6467,22 @@ let
         sha1 = "308accafa0bc483a3867b4b6f2b9506251d1b835";
       };
     };
-    "lcid-2.0.0" = {
-      name = "lcid";
-      packageName = "lcid";
-      version = "2.0.0";
+    "leven-3.1.0" = {
+      name = "leven";
+      packageName = "leven";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz";
-        sha512 = "1wcm03j1xmwayngclsgc7xk3rfsn8d3lcas6yfxszjpjwa37nwiia213cxkagdfc56anijwb679bg42ak1w59d0bkq6j47wqdpw9wva";
+        url = "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz";
+        sha512 = "qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==";
+      };
+    };
+    "levenary-1.1.1" = {
+      name = "levenary";
+      packageName = "levenary";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz";
+        sha512 = "mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==";
       };
     };
     "load-json-file-1.1.0" = {
@@ -6185,7 +6500,7 @@ let
       version = "2.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz";
-        sha512 = "13mmy8rws80fp5mw0b7qwq5zvvlwq8v20hykp1npzsc5i5sw426j6sgi77js3lrqzbc8b7gjxhsrf26bi8xnn7ii8q64p2wskrspj96";
+        sha512 = "Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==";
       };
     };
     "loader-utils-1.1.0" = {
@@ -6203,7 +6518,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz";
-        sha512 = "1sdj0mw1y0adq9fpaafpv91yz2ijx06s6fpzjfs0db47cry0q2xjcahr5aksf6vlxp7ripisvjz21hjkkdzrwh8pc3zm7vdq141czd8";
+        sha512 = "qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==";
       };
     };
     "locate-path-2.0.0" = {
@@ -6221,7 +6536,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz";
-        sha512 = "3jbllbkvv54d6k6zss6spzsknz5icscyfclf377jjpndb8mmacq0v9vjr1w07zjn14gaz4d2hfi0yaqk4nvg6hbm16qi70nrkivn0zc";
+        sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==";
       };
     };
     "locate-path-5.0.0" = {
@@ -6230,7 +6545,7 @@ let
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz";
-        sha512 = "3r6llra9imfvg31342986kfkzm34ficva43avn7cng5inb9f5xrnr64jm4pykjjjbjs9np0mhia370ysnf97w4m6jqgnniyjbv71f5p";
+        sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==";
       };
     };
     "lodash-4.17.15" = {
@@ -6239,7 +6554,16 @@ let
       version = "4.17.15";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz";
-        sha512 = "3a41cs1932x00vd7h32v6rfkaak3vhkwv4x0bg27ilhlmbpl95r3abc4vja21k42cdfprsy3sdfcp2xs02sfp1fflf7m3n2gd29q4zk";
+        sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==";
+      };
+    };
+    "lodash-4.17.20" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "4.17.20";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz";
+        sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==";
       };
     };
     "lodash._reinterpolate-3.0.0" = {
@@ -6266,7 +6590,7 @@ let
       version = "4.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz";
-        sha512 = "3y567dmr1cb5vl7mf23r20iwxr6c3pc9p6wmpal1k61x039xys53b76nddyq8ydyyhnzacw1jjgsccfr87p8qjwi1a2g6i428bxi2zk";
+        sha512 = "84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==";
       };
     };
     "lodash.templatesettings-4.2.0" = {
@@ -6275,7 +6599,7 @@ let
       version = "4.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz";
-        sha512 = "1jkf1vq05gx9z319z598cdf335qi0jsg1pfxbxg51fsjr9m6nfrqkdabg43knd3xrr7gchgkclyxnmzpvrszqq9crkay0dpx37hpn5j";
+        sha512 = "stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==";
       };
     };
     "lodash.uniq-4.5.0" = {
@@ -6287,13 +6611,13 @@ let
         sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
       };
     };
-    "loglevel-1.6.7" = {
+    "loglevel-1.7.0" = {
       name = "loglevel";
       packageName = "loglevel";
-      version = "1.6.7";
+      version = "1.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.6.7.tgz";
-        sha512 = "3y57kcbhh98x86dpx7apanxgnkqf5chybr4jnwhzljd3k2n9knm5h7fp9aiv6bzpyvq1xg0qssgg3i47ddiz80h7vahfj6hb8n9x3bi";
+        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.7.0.tgz";
+        sha512 = "i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==";
       };
     };
     "loose-envify-1.4.0" = {
@@ -6302,7 +6626,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz";
-        sha512 = "3fhlaj5f55z0d4f45a5vsyz1r5k40qy6mfbxphjgnz8x4jx4d1g4pz4v2793viw0hk04a1a6zbiqxbjsjzhidp9jmmzhngzd8yb2awp";
+        sha512 = "lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==";
       };
     };
     "lower-case-2.0.1" = {
@@ -6311,16 +6635,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz";
-        sha512 = "2nvzg5awqkqrrj7g32x95c48sghvbqvnisp439rxgh9fkwwkkq7jzpjivsx6bvmrybsr7a6rgazw6554llb26aldiq5fvyb69ya099f";
-      };
-    };
-    "lowercase-keys-1.0.0" = {
-      name = "lowercase-keys";
-      packageName = "lowercase-keys";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.0.tgz";
-        sha1 = "4e3366b39e7f5457e35f1324bdf6f88d0bfc7306";
+        sha512 = "LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==";
       };
     };
     "lowercase-keys-1.0.1" = {
@@ -6329,7 +6644,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz";
-        sha512 = "1a7qa1zn5zl1nf7i6w3299lc3biabfb0w2c30cl770l2dbldvi72nwvjdlinhx7j0ldip82sj710aprdjbmbg782i2pa3jpbgmy6qhv";
+        sha512 = "G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==";
       };
     };
     "lowercase-keys-2.0.0" = {
@@ -6338,7 +6653,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz";
-        sha512 = "2c8fy71cr597nqfq7savid5rdk1msa2pcvxkn504w8bksci9vpm7x3a9yy87zc1lb5chzqnii12rd1h0jpc8k3kxy2c787w5snmg8xn";
+        sha512 = "tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==";
       };
     };
     "lru-cache-4.1.5" = {
@@ -6347,7 +6662,7 @@ let
       version = "4.1.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz";
-        sha512 = "3k64s8pgffvqc84ar3r2jjvxnrll916m1q6s4m2k8pq2gqvlrzy11hdhvx2662fa4x7h1hcpn9wmy4kk28rgk3sj76w2fpn8dn6armi";
+        sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==";
       };
     };
     "lru-cache-5.1.1" = {
@@ -6356,7 +6671,7 @@ let
       version = "5.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz";
-        sha512 = "3vjhn04mjkxbkfb4fh7xnlghlgmqffqp5i1w2vg1ndgh5izv7nwvr8lq1n1hypfs5pm3bvbk7wf3fjm2pavld1hipz0n8rp012l14ra";
+        sha512 = "KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==";
       };
     };
     "make-dir-1.3.0" = {
@@ -6365,7 +6680,7 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz";
-        sha512 = "2qkk2yzlzrfwnmw8l80cn4l91rfin7fmqn81j39s32i8gzijilbmc798wy51bs3m5gqa6dgrns95gals771jbbl4s4jgdl9ni3za3fv";
+        sha512 = "2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==";
       };
     };
     "make-dir-2.1.0" = {
@@ -6374,25 +6689,16 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz";
-        sha512 = "12asfdw6jlwcqjli9xywj755wznjxadmh7q6abrhldss26wdsik8w39dqww20i3ilr9mjam1r80ickwzlp9w7dz15bvqa1wszwmfbrd";
+        sha512 = "LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==";
       };
     };
-    "makeerror-1.0.11" = {
-      name = "makeerror";
-      packageName = "makeerror";
-      version = "1.0.11";
+    "make-error-1.3.6" = {
+      name = "make-error";
+      packageName = "make-error";
+      version = "1.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz";
-        sha1 = "e01a5c9109f2af79660e4e8b9587790184f5a96c";
-      };
-    };
-    "map-age-cleaner-0.1.3" = {
-      name = "map-age-cleaner";
-      packageName = "map-age-cleaner";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
-        sha512 = "3gk1kdfw4z4pjghrxyn53gyb40gbk71ycv5mi2mbidwxg76mbfgkxcn88zkcrjw38mq6vn5kcarw4n5zq79ligh5k1s6gr8fgmg373c";
+        url = "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz";
+        sha512 = "s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==";
       };
     };
     "map-cache-0.2.2" = {
@@ -6413,13 +6719,13 @@ let
         sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
       };
     };
-    "md5-2.2.1" = {
+    "md5-2.3.0" = {
       name = "md5";
       packageName = "md5";
-      version = "2.2.1";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/md5/-/md5-2.2.1.tgz";
-        sha1 = "53ab38d5fe3c8891ba465329ea23fac0540126f9";
+        url = "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz";
+        sha512 = "T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==";
       };
     };
     "md5.js-1.3.5" = {
@@ -6428,7 +6734,7 @@ let
       version = "1.3.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz";
-        sha512 = "29ds70y468n42xivsz4vrgy8rp2x4nxz52z1vkd1k49556gvn74pq998s510g3jgz9972m9yxs6yk1kw752blq97b9w8gaddkwlyay6";
+        sha512 = "xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==";
       };
     };
     "mdn-data-2.0.4" = {
@@ -6437,7 +6743,7 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz";
-        sha512 = "1q3dcqzncmynfxw8fbqvgwk8va8mac3lqpd9blz4knhj88fdmdcc863lscf5mm1h0ak34n9zr7bf7bgdzpqgfk8xr83xsilmhsdfpc9";
+        sha512 = "iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==";
       };
     };
     "mdn-data-2.0.6" = {
@@ -6446,7 +6752,7 @@ let
       version = "2.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.6.tgz";
-        sha512 = "0w2lssr5jjc55m8zhx3c9n9c6qnq9ivsv2fm25d0dr7hkppcmpbrcsqdwdnc8p7c4q0nni2qws676wh8pv7rnr4h93h75v8pnzy62xd";
+        sha512 = "rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA==";
       };
     };
     "media-typer-0.3.0" = {
@@ -6458,15 +6764,6 @@ let
         sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
       };
     };
-    "mem-4.3.0" = {
-      name = "mem";
-      packageName = "mem";
-      version = "4.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz";
-        sha512 = "3znrz98ggx92y1crm2y017k8lriwz4m9y4w451wm0h1jzsq7jgpafymdvgpznvx07l3xw8inznd78zzwyxdzhb0aq8scki9iwdrnzd9";
-      };
-    };
     "memory-fs-0.4.1" = {
       name = "memory-fs";
       packageName = "memory-fs";
@@ -6482,7 +6779,7 @@ let
       version = "0.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz";
-        sha512 = "0cgni6pl3js3s6ylnj3j9sydf6z5sbnpyi42xdh4437rd6c7xgbapzdq84wn8dzxrcf7sva66z7m6mna61sdagfs41078aa9rsjn3cc";
+        sha512 = "jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==";
       };
     };
     "merge-descriptors-1.0.1" = {
@@ -6500,16 +6797,16 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz";
-        sha512 = "3gyvijjr3va5jwglqgv7sqxm4a6nhzhj32sl68ffjf8axkzi5z25g0nl2r2mvw1kjs3z49wxjdclljkk4whzpqka4vzjg9fwylgzfv9";
+        sha512 = "abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==";
       };
     };
-    "merge2-1.3.0" = {
+    "merge2-1.4.1" = {
       name = "merge2";
       packageName = "merge2";
-      version = "1.3.0";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz";
-        sha512 = "1inz1swib3crzbwlqrpy74dhmn520qgzg5lkfmm3k1334lpb98d0xjpa6ydpdgwnp013j1n5m2yqkac4r75w6lbcj94hfj1v40h6gns";
+        url = "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz";
+        sha512 = "8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==";
       };
     };
     "methods-1.1.2" = {
@@ -6527,7 +6824,7 @@ let
       version = "3.1.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz";
-        sha512 = "1r9rsac8gdslsplya0cnzyk6q0bh7m0wnxccdisacr5327k5k0v6f48dzp0022z8qqpzpvxw7sv1gzhvrqn6v5sz7qcvx37by1a8s1i";
+        sha512 = "MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==";
       };
     };
     "micromatch-4.0.2" = {
@@ -6536,7 +6833,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz";
-        sha512 = "3jiz9pr94hycvjgzxbxi0jfz7n142n3z5w14im7i0088lymjpvj8xrapr8s66xcp13ylh374hbpm9ixp8rln55n7lrcll6c4qfnkcfb";
+        sha512 = "y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==";
       };
     };
     "miller-rabin-4.0.1" = {
@@ -6545,7 +6842,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz";
-        sha512 = "12277knznlw4myxmgg6vgkrwmrhj9dyniscrlph3s08ndi2q25v3wrv6rwanvz29v5k5x756xa5yif4xllrghpn3jqaamnr3cp5ypnp";
+        sha512 = "115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==";
       };
     };
     "mime-1.4.1" = {
@@ -6554,7 +6851,7 @@ let
       version = "1.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz";
-        sha512 = "2sz22r1xrnyvq6jg0h6b6cab3s3xdsfqa0n6vl9xv9gq3ppcxrcpg2hqfc41xjwnfwfkr6240l5gys7nds61ch6xcb3gr3fwsl7x398";
+        sha512 = "KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==";
       };
     };
     "mime-1.6.0" = {
@@ -6563,7 +6860,7 @@ let
       version = "1.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz";
-        sha512 = "1x901mk5cdib4xp27v4ivwwr7mhy64r4rk953bzivi5p9lf2bhw88ra2rhkd254xkdx2d3q30zkq239vc4yx4pfsj4hpys8rbr6fif7";
+        sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
       };
     };
     "mime-2.4.3" = {
@@ -6572,34 +6869,34 @@ let
       version = "2.4.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime/-/mime-2.4.3.tgz";
-        sha512 = "1kxc6r0xfiblss3gn102f4akmmm3jgcsj95n1hm8qgy4k8f5z2qn8bym7v4aa52dk68mjdzl9rvrn9sv70k3n9kwnmbiyn4jx2cy2j2";
+        sha512 = "QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw==";
       };
     };
-    "mime-2.4.4" = {
+    "mime-2.4.6" = {
       name = "mime";
       packageName = "mime";
-      version = "2.4.4";
+      version = "2.4.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz";
-        sha512 = "0c4qs0w88nqz2v7441rw9bbsgrsh50cifwmqm2i7c96yz2ncdy35cb5g42zhr6z0wmqqcwq5la04nnf1n4y3zncvgyg8b721hvnc71d";
+        url = "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz";
+        sha512 = "RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==";
       };
     };
-    "mime-db-1.43.0" = {
+    "mime-db-1.44.0" = {
       name = "mime-db";
       packageName = "mime-db";
-      version = "1.43.0";
+      version = "1.44.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz";
-        sha512 = "36x3p6lll5v1g7na92kbba0bpcl36i1argsqn8iy4mgz3zh3llnqhzhfw0l26jqcb0mh9rhhmrx718kvqzchga6y79qdg9884c6r5zv";
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz";
+        sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
       };
     };
-    "mime-types-2.1.26" = {
+    "mime-types-2.1.27" = {
       name = "mime-types";
       packageName = "mime-types";
-      version = "2.1.26";
+      version = "2.1.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz";
-        sha512 = "1cxsgrndjg6jyfqzm74hv6cmy9lil52f1kzkq2niknaiqz20p3yiw0fpgsyld2zrbxr9abpdabz1q6nqa50xr9a0cmbjbi0cqymlnnk";
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz";
+        sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
       };
     };
     "mimic-fn-1.2.0" = {
@@ -6608,7 +6905,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz";
-        sha512 = "1clrrqw75rmpkw0x53axy8va2hq2gzynz9zb58m0xv1nh3lg81cv4dfdy7pk9vrlb9ydwmj6klpicwkv2bjx3m8aj4fi2ph3jxkizwd";
+        sha512 = "jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==";
       };
     };
     "mimic-fn-2.1.0" = {
@@ -6617,7 +6914,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz";
-        sha512 = "1r8csnc32c6rrvy8d5d1g33gba52m1863wdwl7qbancmzn795726im9mrwp20k3d8pl4x4msp7n6wpldvcwkmk5y4cy0h84ka9wx9is";
+        sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==";
       };
     };
     "mimic-response-1.0.1" = {
@@ -6626,7 +6923,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz";
-        sha512 = "32nwz24nh1f2nbpk8i638ff8hsg1ajmc6746abkssjr951z28362k5a92dd1cfr7bd1l9f507cn0pbam04ixfgsaygskv87g6v1r4cg";
+        sha512 = "j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==";
       };
     };
     "mimic-response-2.1.0" = {
@@ -6635,7 +6932,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz";
-        sha512 = "080nd6134s2xyc8jb63q7hqszh9a52py287g4zqw1sy06nq0x9ac8bf2pwx7z9ygj4610ij6nk8a42q4ll4hwjgsg8xwblj7x4s6yn1";
+        sha512 = "wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==";
       };
     };
     "mini-css-extract-plugin-0.4.5" = {
@@ -6644,7 +6941,7 @@ let
       version = "0.4.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.5.tgz";
-        sha512 = "3dnk581xzzd2njvqxkqy7ihwbk9pr4r4qyc0cqn2nkmrdlflldw01vcmhqy3v0jknxhpvjpy7a7v67ljl5n5xh2hxv7mdp4syf5m83n";
+        sha512 = "dqBanNfktnp2hwL2YguV9Jh91PFX7gu7nRLs4TGsbAfAG6WOtlynFRYzwDwmmeSb5uIwHo9nx1ta0f7vAZVp2w==";
       };
     };
     "minimalistic-assert-1.0.1" = {
@@ -6653,7 +6950,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz";
-        sha512 = "3y39pa1xxg7j49vya7xca4p1mg89d0df56hj4yjhpyhmza3g5qvpgp11xs11wkd48zzy7ym970jfbn0ppimmczpijns249j7q05rljj";
+        sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==";
       };
     };
     "minimalistic-crypto-utils-1.0.1" = {
@@ -6671,7 +6968,7 @@ let
       version = "3.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
-        sha512 = "1879a3j85h92ypvb7lpv1dqpcxl49rqnbgs5la18zmj1yqhwl60c2m74254wbr5pp3znckqpkg9dvjyrz6hfz8b9vag5a3j910db4f8";
+        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
       };
     };
     "minimist-1.2.0" = {
@@ -6689,7 +6986,7 @@ let
       version = "1.2.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
-        sha512 = "0pif0kjsr0cdm73cyicn9xdx9zkly45w4akmyfa39lkaf6lzysfr8kr145p54wjk26pbsk0w0qfdds3k4bxy4wl5l210i1b8qsngkql";
+        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
       };
     };
     "minipass-2.9.0" = {
@@ -6698,7 +6995,7 @@ let
       version = "2.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz";
-        sha512 = "1x0k2ycn1r5fig2zy7jj5vjsc7sxdl2a8lidvzsfyhcbrmvyvlbkmb3ga6l8njclvhjz2yrcx57jn26bckzrms017zb2yan1y7d85y3";
+        sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==";
       };
     };
     "minizlib-1.3.3" = {
@@ -6707,7 +7004,7 @@ let
       version = "1.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz";
-        sha512 = "3slcgy5kqasjl8k1n2indaaw0k6j2ipapzxrcqyy2zrwpv8z9w2im5i8c2c73pqdgkd31rwf5bajgv4pm2i6m9jg51cfmp694w0r5p9";
+        sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==";
       };
     };
     "mississippi-2.0.0" = {
@@ -6716,7 +7013,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz";
-        sha512 = "2gnigixsj38hrqchkf6k8wqywihq6l14pg0qb23x3qpjn56vybljv3nz1z7cbzhl952h1xfw28vsqm09pjhpv9zs9sm43rdxazkqync";
+        sha512 = "zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==";
       };
     };
     "mississippi-3.0.0" = {
@@ -6725,7 +7022,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz";
-        sha512 = "2895y9fw0xa9bmwbbkv3ziz5gnvr2b9k6kgh1b815ppwhgpcnbzsmn3bjvd2c1852hfakgnxw5hbn8kr8ff1pfbnm8x0lk3qm5gb3n7";
+        sha512 = "x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==";
       };
     };
     "mixin-deep-1.3.2" = {
@@ -6734,7 +7031,7 @@ let
       version = "1.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz";
-        sha512 = "08fzp03g97vcq1dm4qs3kfjbazfs8h2m99bzdhn9caddpi4xr9bw9n9adlrv24qwfdw2jphwfhjszdwnykawd3ysj4ihp76zygh66jr";
+        sha512 = "WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==";
       };
     };
     "mkdirp-0.5.3" = {
@@ -6743,7 +7040,7 @@ let
       version = "0.5.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.3.tgz";
-        sha512 = "0376f05nckrbra8z0qvw9p5bz1w4vyvalyh8bplzqdlm099dj958xqjckbya4gx36mr8f1fq1iybr0x0z2f9yqdgdhwkivan71a1v9z";
+        sha512 = "P+2gwrFqx8lhew375MQHHeTlY8AuOJSrGf0R5ddkEndUkmwpgUob/vQuBD1V22/Cw1/lJr4x+EjllSezBThzBg==";
       };
     };
     "mkdirp-0.5.5" = {
@@ -6752,16 +7049,25 @@ let
       version = "0.5.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz";
-        sha512 = "32zxwnp110xb9sm0w7xdr51v2zj4k0b07yq702phnac2l8c91mxw6va27y193m42nvnw5dhby2jzg3b24fzjzkdr8337slz8ja81a9l";
+        sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
+      };
+    };
+    "mkdirp-1.0.4" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz";
+        sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==";
       };
     };
-    "moment-2.24.0" = {
+    "moment-2.27.0" = {
       name = "moment";
       packageName = "moment";
-      version = "2.24.0";
+      version = "2.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz";
-        sha512 = "111s7ki890wwh47hr44ps1q5vsh23jpp56dlgvyzz7hg71np9xkrc7k683qvfs7zyijb9fdcwzvinjcnbz36lhn0hg2hhknm7xxypkd";
+        url = "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz";
+        sha512 = "al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==";
       };
     };
     "move-concurrently-1.0.1" = {
@@ -6788,7 +7094,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
-        sha512 = "352z145jr1zx0w6kmlz2jxcaw6j2pwwg9va3x4gk731zw1agka2b213avw12zx6hgn071ibm0f3p80n5cdv896npay4s6jwbrv7w2mn";
+        sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
       };
     };
     "ms-2.1.2" = {
@@ -6797,7 +7103,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
-        sha512 = "3dqfiiw6nxvvi24fndbzlccnjcas99bsd1kz5m2r78lzgpp6vx57jzbmxq3k1m7bsw88rwra0n4848l720fxxn5x20djck3wp3hysdh";
+        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
       };
     };
     "multicast-dns-6.2.3" = {
@@ -6806,7 +7112,7 @@ let
       version = "6.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz";
-        sha512 = "3m42kr8y2s1krl4gzb5xsa9v3h01xalvrgdkj99gyfaq7761asmj5m6kzm70mxb22125gia12g7rmarnzmh09403j8j2cyvx7jqjblf";
+        sha512 = "ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==";
       };
     };
     "multicast-dns-service-types-1.1.0" = {
@@ -6833,7 +7139,7 @@ let
       version = "3.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/mustache/-/mustache-3.2.1.tgz";
-        sha512 = "288avkys1mgcwdv33piblh5i715m64cl4z06ixvr71r4xddk49s4z625i6739hiyakk4j3lqygbjff8ysnpn10j95gs39abawq6yi24";
+        sha512 = "RERvMFdLpaFfSRIEe632yDm5nsd0SDKn8hGmcUwswnyiE5mtdZLDybtHAz6hjJhawokF0hXvGLtx9mrQfm6FkA==";
       };
     };
     "mute-stream-0.0.7" = {
@@ -6851,16 +7157,16 @@ let
       version = "0.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz";
-        sha512 = "001y43826xy43brn2n49xwvg7pjkn95d938fg0sk04jr9x4ak36w247lxnj48xim5c7ljk4czdgdk3myh08darj9qn2anr8x5cdcxly";
+        sha512 = "nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==";
       };
     };
-    "nan-2.14.0" = {
+    "nan-2.14.1" = {
       name = "nan";
       packageName = "nan";
-      version = "2.14.0";
+      version = "2.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz";
-        sha512 = "115f4m91pjscflwskc29clsspd2z02gdbz0dbj63ja8bf67nraw14gvppl4872y9z2f5vbjlkpg1i4625zvalx3gp04vvn2gs7qblr0";
+        url = "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz";
+        sha512 = "isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==";
       };
     };
     "nanomatch-1.2.13" = {
@@ -6869,7 +7175,7 @@ let
       version = "1.2.13";
       src = fetchurl {
         url = "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz";
-        sha512 = "04al0wvh9hw1p9bblk847c5nbi3lcjz2pg5yzpqdzgllk57firrqinn4yk169iddaagdf9s5l987xh43z87w3hm9h0pqv0i7pcix6ky";
+        sha512 = "fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==";
       };
     };
     "ncp-1.0.1" = {
@@ -6887,16 +7193,16 @@ let
       version = "0.6.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
-        sha512 = "0xi79rad0khwah5v2k6pvh8ajjgi7hp3zlkg6gk11pv70ydcq7li0kzcv1gnaf13gmblzhvx7hxs2nhypphb0sp4cggiy4ympndr5c5";
+        sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
       };
     };
-    "neo-async-2.6.1" = {
+    "neo-async-2.6.2" = {
       name = "neo-async";
       packageName = "neo-async";
-      version = "2.6.1";
+      version = "2.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz";
-        sha512 = "1kvffl97cs76iidch6z424p50m0wdryx6h6b1jdgr71bfg035szlxcdl6dz9jy71aj8msvprdq2ilbs9jisbim3g1b4l2bfy3qsc9lb";
+        url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz";
+        sha512 = "Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==";
       };
     };
     "nice-try-1.0.5" = {
@@ -6905,7 +7211,7 @@ let
       version = "1.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz";
-        sha512 = "0swp764n5mcgqfjbm3hsw9iayqy46490y4lvqyk6www0a02bw130mji8lvsvlr34sc29rai5i4vpwwhh76mzplf6ljrlvwyszjphy6n";
+        sha512 = "1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==";
       };
     };
     "no-case-3.0.3" = {
@@ -6914,7 +7220,7 @@ let
       version = "3.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz";
-        sha512 = "17pqh35wma9y45ac1apa90fy5l1rl9g0z85mnqhpzgldgz7i09v2j735mkss3q33ns4zzbzapxsg5qldy8b17q2s95x0zq2ajcky5ks";
+        sha512 = "ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==";
       };
     };
     "node-elm-compiler-5.0.4" = {
@@ -6923,7 +7229,16 @@ let
       version = "5.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-elm-compiler/-/node-elm-compiler-5.0.4.tgz";
-        sha512 = "0k6azydldy2w6xamqcm77lm9brm4hn8vxn0na1i7y1s0ikfiblw7f2kd0qg5i793s7ymms50mqxrjg0kggpklbwj03bcym20kqi62sm";
+        sha512 = "VQsT8QSierYGkHzRed+b4MnccQVF1+qPHunE8jBoU7jD6YpuRqCDPzEoC2zfyEJS80qVnlMZrqobLnyjzX9lJg==";
+      };
+    };
+    "node-elm-compiler-5.0.5" = {
+      name = "node-elm-compiler";
+      packageName = "node-elm-compiler";
+      version = "5.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-elm-compiler/-/node-elm-compiler-5.0.5.tgz";
+        sha512 = "vapB+VkmKMY1NRy7jjpGjzwWbKmtiRfzbgVoV/eROz5Kx30QvY0Nd5Ua7iST+9utrn1aG8cVToXC6UWdEO5BKQ==";
       };
     };
     "node-forge-0.9.0" = {
@@ -6932,16 +7247,7 @@ let
       version = "0.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz";
-        sha512 = "0lhlm8x38i28zwmjycgdcyzcqlb0x3z8scjx7vm3s4ypj99bfj7pmv18yxjsnz532z7g9li2aa1x54hbv61dmvbvm4yj3z9ml6rl17c";
-      };
-    };
-    "node-int64-0.4.0" = {
-      name = "node-int64";
-      packageName = "node-int64";
-      version = "0.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz";
-        sha1 = "87a9065cdb355d3182d8f94ce11188b825c68a3b";
+        sha512 = "7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==";
       };
     };
     "node-libs-browser-2.2.1" = {
@@ -6950,16 +7256,16 @@ let
       version = "2.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz";
-        sha512 = "3jhlmpgvcnjkg1bh3qp6rqp4a4plsih4bcfqkg0by0acj58r2m1x1jlsgw1k114920vlsvwl563lfjh844mpm02ykcs14gxq47xrz47";
+        sha512 = "h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==";
       };
     };
-    "node-releases-1.1.53" = {
+    "node-releases-1.1.60" = {
       name = "node-releases";
       packageName = "node-releases";
-      version = "1.1.53";
+      version = "1.1.60";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.53.tgz";
-        sha512 = "2ww5b7j2zf3ip1ld49jij1c3h7ba402j2p257w9450qqhj0pbf2q3bh4ihs80rl0kx9r84q7qychakxs9z29pczlnhzsybh0p4k77y2";
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz";
+        sha512 = "gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==";
       };
     };
     "node-watch-0.5.5" = {
@@ -6968,7 +7274,7 @@ let
       version = "0.5.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-watch/-/node-watch-0.5.5.tgz";
-        sha512 = "0wamm245lxkvx31zim6cf1hbqwmmy8bvv1jifm1m23fpiwg6jml1bsl9k748wmns914626yhjr0rhiix3g78njir8agvs684vd4vp6g";
+        sha512 = "z9xN2ibI6P0UylFadN7oMcIMsoTeCENC0rZyRM5MVK9AqzSPx+uGqKG6KMPeC/laOV4wOGZq/GH0PTstRNSqOA==";
       };
     };
     "nopt-1.0.10" = {
@@ -6986,7 +7292,7 @@ let
       version = "2.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
-        sha512 = "1wbwhlsm965n61y23wrm50ric9l7rig90wvx7hjdl34np6n1bbqcc67wgm494z303s6y5aj4xjyism3n6kikp40iz9qaizlfhvqr47z";
+        sha512 = "/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==";
       };
     };
     "normalize-path-2.1.1" = {
@@ -7004,7 +7310,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz";
-        sha512 = "0n301s7qa4645iyk3zpcgin8r19p0p8h8g50c3mnnrl9n3m9rpyxv79hjl6miix9daq12s69am1sbskhqnzbabmn2id0nippgj6rrp9";
+        sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
       };
     };
     "normalize-range-0.1.2" = {
@@ -7016,22 +7322,13 @@ let
         sha1 = "2d10c06bdfd312ea9777695a4d28439456b75942";
       };
     };
-    "normalize-url-2.0.1" = {
-      name = "normalize-url";
-      packageName = "normalize-url";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/normalize-url/-/normalize-url-2.0.1.tgz";
-        sha512 = "0rykwifg14xfgm9m6md48rkqqxa2cya4xdsv7jjciacis2nz6dzaccpzyldlpvy14rvihpxbdiysfn49a8x8x5jw84klmxzh9di98qg";
-      };
-    };
     "normalize-url-3.3.0" = {
       name = "normalize-url";
       packageName = "normalize-url";
       version = "3.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz";
-        sha512 = "1k9wdhamvss3wbk5kf7cxyaz3jrdxa6f4n9gk9sxmvhv7y7qlwqf7s6dmvb01pxs6vh03n0ygdxcw6dfsx9swkapcz5l5vfny5lkqjk";
+        sha512 = "U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==";
       };
     };
     "normalize-url-4.5.0" = {
@@ -7040,7 +7337,7 @@ let
       version = "4.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz";
-        sha512 = "02k93b4vrh4rvz479dc5rjv43v54pzz5k5kn21cx6gl2b1c45s3sb29cy4cyifvfl9zqghs9m1f5kcv0hp4cwp8sigyqx9i6p5kpkns";
+        sha512 = "2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==";
       };
     };
     "npm-conf-1.1.3" = {
@@ -7049,7 +7346,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz";
-        sha512 = "1rx44jzcf3byibrwmgyr0598hng4snjfj9bx29xm7bi5y1bqkbvb2krh8z0ccpzv3aps71qwrq55a56l1qkzlan118xyfn9j5nkh9v2";
+        sha512 = "Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==";
       };
     };
     "npm-run-path-2.0.2" = {
@@ -7067,7 +7364,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz";
-        sha512 = "1dw51xws0pd54mna4n5x07w9bh0zn3xdyq1pxf49w79kall1q4625hyi2vpblar83p2yr5xm018v14l9q6fxrwa6khvrvxvjp6id3sb";
+        sha512 = "S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==";
       };
     };
     "nth-check-1.0.2" = {
@@ -7076,7 +7373,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz";
-        sha512 = "0g2sh2g0bndg2df1nsbqm3vw97krfwk37bd4r7sbw2vqxwnbm28xdc33xgjrd4pigwm6sa2g9wlnk3166b51lwv6z7pqjmw7dv4xq2r";
+        sha512 = "WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==";
       };
     };
     "num2fraction-1.2.2" = {
@@ -7103,7 +7400,7 @@ let
       version = "0.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz";
-        sha512 = "1jz644r7ybsq688ifahm64ih3ljqjjskm533bgir20pvc350f9cl0z162scih0r1idx8lpw5f8hxa2pkf0lhbdhr5y6ak2ga5863v3x";
+        sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
       };
     };
     "object-assign-4.1.1" = {
@@ -7124,22 +7421,22 @@ let
         sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
       };
     };
-    "object-inspect-1.7.0" = {
+    "object-inspect-1.8.0" = {
       name = "object-inspect";
       packageName = "object-inspect";
-      version = "1.7.0";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz";
-        sha512 = "19lmsxagwl8zzqckw6p0bdjwjbq2bshicnw78az9ka40d0gjghmdm0ify1n3857fxadv43c6v0g27rk1dl514iwh40a5i3mv0fl9fkb";
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz";
+        sha512 = "jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==";
       };
     };
-    "object-is-1.0.2" = {
+    "object-is-1.1.2" = {
       name = "object-is";
       packageName = "object-is";
-      version = "1.0.2";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-is/-/object-is-1.0.2.tgz";
-        sha512 = "0wsh2mh2v96a9jvknzxad6bxhj8skpsanvcmfldzdj6vlc4y4ffjsjwwpg1awwqwdl0nldilcxpvq00nnd2br7qmlmrqxsrpgws35hj";
+        url = "https://registry.npmjs.org/object-is/-/object-is-1.1.2.tgz";
+        sha512 = "5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ==";
       };
     };
     "object-keys-1.1.1" = {
@@ -7148,7 +7445,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz";
-        sha512 = "0nf2rr25ncya39v7cq274x3w4drfbdrc3iqdwd017s1wndwh9plsjagbvhl6j6l6piipprdsvgfx4vfz8q2piz7bi4bjcll8d4h9q1n";
+        sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==";
       };
     };
     "object-visit-1.0.1" = {
@@ -7166,16 +7463,16 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz";
-        sha512 = "3krdp08gvbxvipalq64qy7bm86znxxdb7ap6bjki235qs17i9fsn6hqd22ga31sqyqa6iyy5xjfnnqc7lsck1kaybwsh154mrxcj4bv";
+        sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==";
       };
     };
-    "object.entries-1.1.1" = {
+    "object.entries-1.1.2" = {
       name = "object.entries";
       packageName = "object.entries";
-      version = "1.1.1";
+      version = "1.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz";
-        sha512 = "2qp48plcipnz0hpb1bjd7qk60f929qsw5i29jhsa11p2ilxn1d1x1c3gyyaakgmi9v3jqrzmlcxydq8szvhqrpb4snrgj8x33n92nla";
+        url = "https://registry.npmjs.org/object.entries/-/object.entries-1.1.2.tgz";
+        sha512 = "BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA==";
       };
     };
     "object.getownpropertydescriptors-2.1.0" = {
@@ -7184,7 +7481,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz";
-        sha512 = "1b08dy2xs3gqhwviks5245b0m3fa6kkdcqi8wldr5cfvkpgwbvdx474k9y5cjnsf2z075gysifxsc39i59fslxrl55kgpa03xmcx7b7";
+        sha512 = "Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==";
       };
     };
     "object.pick-1.3.0" = {
@@ -7202,7 +7499,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz";
-        sha512 = "1w7lyv8q705mag20f36afs0qcnxjnpdg45xxnkq1ilqfd9rnf21fzbh0ib4vhwz0pzjynmqaszrsjccgk6vmgv4jas2pwla1pibjdjr";
+        sha512 = "WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==";
       };
     };
     "obuf-1.1.2" = {
@@ -7211,7 +7508,7 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz";
-        sha512 = "0vcjqppr8sr1in2haifxl9q8v6kgn8pddc4ffkjbx5n2fasb3kdrx7mybkfxqdaqfch2hqrwa87rrwllqd5lrmx73md609682xp0z9x";
+        sha512 = "PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==";
       };
     };
     "on-finished-2.3.0" = {
@@ -7229,7 +7526,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz";
-        sha512 = "2n6994y8y4b146a5wpzzgw779yc227cqkmwsifc3fbn2kc9dzypjigqf72bpgsqrk7gs93l6fk4iqdk752jnsnpr89j58sbabw09455";
+        sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==";
       };
     };
     "once-1.4.0" = {
@@ -7250,13 +7547,13 @@ let
         sha1 = "067428230fd67443b2794b22bba528b6867962d4";
       };
     };
-    "onetime-5.1.0" = {
+    "onetime-5.1.2" = {
       name = "onetime";
       packageName = "onetime";
-      version = "5.1.0";
+      version = "5.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz";
-        sha512 = "3lscn8ddi5nifjriym6zgmh0l8cn60g1d97d8ydnw19ssdyi2s0winvrx0j7gbb05lpf795a5v7wbm1jx54szh3452kbhg1y6815mz4";
+        url = "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz";
+        sha512 = "kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==";
       };
     };
     "open-6.4.0" = {
@@ -7265,7 +7562,16 @@ let
       version = "6.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/open/-/open-6.4.0.tgz";
-        sha512 = "0da91ydfkavxd733v8b3bvcrp681xirng4nyrazinl5bc2y3aacjd2g1bnapmzpp7g85bk42qh064hclbflj7jrkg94gvq5z1aafmr0";
+        sha512 = "IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==";
+      };
+    };
+    "open-7.2.1" = {
+      name = "open";
+      packageName = "open";
+      version = "7.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/open/-/open-7.2.1.tgz";
+        sha512 = "xbYCJib4spUdmcs0g/2mK1nKo/jO2T7INClWd/beL7PFkXRWgr8B23ssDHX/USPn2M2IjDR5UdpYs6I67SnTSA==";
       };
     };
     "opn-5.4.0" = {
@@ -7274,7 +7580,7 @@ let
       version = "5.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/opn/-/opn-5.4.0.tgz";
-        sha512 = "15vx11m9g7ljkb0rahxyxkvlbvf81rlgdbw5n7a5ffj2q80msblibdpy5nbrhhlnraplh0fmf4ksp6c1rqbmvgh4splmzvjslslqpv0";
+        sha512 = "YF9MNdVy/0qvJvDtunAOzFw9iasOQHpVthTCvGzxt61Il64AYSGdK+rYwld7NAfk9qJ7dt+hymBNSc9LNYS+Sw==";
       };
     };
     "opn-5.5.0" = {
@@ -7283,7 +7589,16 @@ let
       version = "5.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz";
-        sha512 = "2qa90jg1bw4yx1an6vbx2cp7lpk6xwa94yrbr6mkpl2h95wl4iinlmlzzy2z5ihm79d4ypkjkf3w5m7cjl79775amsbav5x021fk89y";
+        sha512 = "PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==";
+      };
+    };
+    "opn-6.0.0" = {
+      name = "opn";
+      packageName = "opn";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/opn/-/opn-6.0.0.tgz";
+        sha512 = "I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==";
       };
     };
     "optimize-css-assets-webpack-plugin-5.0.3" = {
@@ -7292,7 +7607,7 @@ let
       version = "5.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz";
-        sha512 = "0l72h39ll7vgrkls1d7xz21s4bpv54wmpzdxylldnwrf6sx70qacgh5jjrdc5i8fzw9caw9bk38hvda7f7w14m2a0nlds2j4jydpmxb";
+        sha512 = "q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA==";
       };
     };
     "options-0.0.6" = {
@@ -7310,7 +7625,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/original/-/original-1.0.2.tgz";
-        sha512 = "038qn5613vi5gjik4pmng7zf2ib4w81hjyzy9dhflj7kw1p1ll09nq63x9rnkyyflkv33lq8bx0fbw1gzlpp4asy24l7adam2bma847";
+        sha512 = "hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==";
       };
     };
     "os-browserify-0.3.0" = {
@@ -7340,15 +7655,6 @@ let
         sha1 = "20f9f17ae29ed345e8bde583b13d2009803c14d9";
       };
     };
-    "os-locale-3.1.0" = {
-      name = "os-locale";
-      packageName = "os-locale";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz";
-        sha512 = "3frcfnhc4914snsnfqyqrz253i5dd31202gbx4dzkp6bvc8f7wnqhfyc89zp662v016gdqa7wb1z2g6p8nzk6cxzwscwn0qii3pgjb7";
-      };
-    };
     "os-tmpdir-1.0.2" = {
       name = "os-tmpdir";
       packageName = "os-tmpdir";
@@ -7358,22 +7664,13 @@ let
         sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
       };
     };
-    "output-file-sync-2.0.1" = {
-      name = "output-file-sync";
-      packageName = "output-file-sync";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/output-file-sync/-/output-file-sync-2.0.1.tgz";
-        sha512 = "36zk3d8yzp1i0lxpbv4fk0j853snx2gzaxkfzcx6vgdylnhj3gs6fdr6jf0qw14amcgagbd9r8pcws46n2pky3740bh4nmvm7i6hf4q";
-      };
-    };
-    "p-cancelable-0.4.1" = {
+    "p-cancelable-1.1.0" = {
       name = "p-cancelable";
       packageName = "p-cancelable";
-      version = "0.4.1";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-0.4.1.tgz";
-        sha512 = "02ipk9sgz2q0msm9h53lxbjvqprh9k6zj8q21dvczv6p6a5d4q5yqcmwj6xm0icmdc94n42plfmwlymnqn4f15pgci5j1zgq81vbmhw";
+        url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz";
+        sha512 = "s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==";
       };
     };
     "p-cancelable-2.0.0" = {
@@ -7382,25 +7679,16 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz";
-        sha512 = "0va49l2crhr6kr1lgbrjc69hz9scdrarzbrzpvddkfdb9wdr16bv48qajb2m0n6fjammxhvj68d4r35wyfy209rnajfv6nccq7dgwy2";
-      };
-    };
-    "p-defer-1.0.0" = {
-      name = "p-defer";
-      packageName = "p-defer";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz";
-        sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
+        sha512 = "wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg==";
       };
     };
-    "p-event-4.1.0" = {
+    "p-event-4.2.0" = {
       name = "p-event";
       packageName = "p-event";
-      version = "4.1.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-event/-/p-event-4.1.0.tgz";
-        sha512 = "2059kalwqi0hxv1rnpk504n5piz0cjqw6ifah5mq9vh9y9g26w70x3imkfp2x1smzz8hrqhzy3w3k5cd993f1wcbzjhgcl2l79ivw72";
+        url = "https://registry.npmjs.org/p-event/-/p-event-4.2.0.tgz";
+        sha512 = "KXatOjCRXXkSePPb1Nbi0p0m+gQAwdlbhi4wQKJPI1HsMQS9g+Sqp2o+QHziPr7eYJyOZet836KoHEVM1mwOrQ==";
       };
     };
     "p-finally-1.0.0" = {
@@ -7412,40 +7700,22 @@ let
         sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
       };
     };
-    "p-is-promise-1.1.0" = {
-      name = "p-is-promise";
-      packageName = "p-is-promise";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-is-promise/-/p-is-promise-1.1.0.tgz";
-        sha1 = "9c9456989e9f6588017b0434d56097675c3da05e";
-      };
-    };
-    "p-is-promise-2.1.0" = {
-      name = "p-is-promise";
-      packageName = "p-is-promise";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz";
-        sha512 = "0z3jpi001p4scg2h40kyy7mjvscz8l9mpdp79lhk9b19lyiz140gbwi8963dr5nrysmkrl0hy52v6ikg2wzfsmk8m6ccasgak1b8xb3";
-      };
-    };
     "p-limit-1.3.0" = {
       name = "p-limit";
       packageName = "p-limit";
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz";
-        sha512 = "3sh18calqxbww99pxc84hldflmj0i915g8npihlmazw8wjqabihi9475v0ll3fhx44sxn35j014j1k5d2xr73q3mpwkmx09n2q1gxxy";
+        sha512 = "vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==";
       };
     };
-    "p-limit-2.2.2" = {
+    "p-limit-2.3.0" = {
       name = "p-limit";
       packageName = "p-limit";
-      version = "2.2.2";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz";
-        sha512 = "36v4kvifp6msn6gaal1pgwy5qi56fbv8295221a6araml7nzxsnw2jfy7i6k7ybxy3dida9xxnyx447s8i8f15m27xklacwfz27wr2q";
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
+        sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
       };
     };
     "p-locate-2.0.0" = {
@@ -7463,7 +7733,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz";
-        sha512 = "14sa2r3zdhvy3sq757d4l21nxrlb7picyigb8zm956bbjadcv22chrfa95wzzrf28z0cyj62b6yihhdc9508q82gs2q3yz8yk1pdvf7";
+        sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==";
       };
     };
     "p-locate-4.1.0" = {
@@ -7472,7 +7742,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz";
-        sha512 = "3n0ljmpk3p2j4aaz345w5gkqr128xkhflcb83k75fgns5ddd4bpx7l0q50w9kwy5792xb8d3dpf8bwgzif3463spf3140rhzmkmkgs7";
+        sha512 = "R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==";
       };
     };
     "p-map-2.1.0" = {
@@ -7481,7 +7751,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz";
-        sha512 = "0bx813aqd3627xffp035h9nimfd19i0l6may47yd0k7x2bngiyp8z31im58ac1nnxy3gdb3yiilagbyqlb7qwc8wdw06f3wjwmgqxnb";
+        sha512 = "y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==";
       };
     };
     "p-retry-3.0.1" = {
@@ -7490,16 +7760,16 @@ let
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz";
-        sha512 = "3gknqxqyn23vmgcqsvnvspzynkbkfn74f3plq72wj54kcyy5f3mbq3lw8pj2gwpmbkqcv7w0wvk3vv54dlny5j5dgv48khkwviqckjw";
+        sha512 = "XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==";
       };
     };
-    "p-timeout-2.0.1" = {
+    "p-timeout-3.2.0" = {
       name = "p-timeout";
       packageName = "p-timeout";
-      version = "2.0.1";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-timeout/-/p-timeout-2.0.1.tgz";
-        sha512 = "0h1wg3bw3pyf3vlnxxfnrs3h33lwbx5n1lz4cz8ivh7bi8vjd6makxf6p1xz1d70ww3gj2ghryhbg6w1myxacgirk51ym23qzksdizk";
+        url = "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz";
+        sha512 = "rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==";
       };
     };
     "p-try-1.0.0" = {
@@ -7517,16 +7787,16 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
-        sha512 = "1skmb50xzdk3qzd1f9l5mw8xp29frkizl63bhb9l1amivqybqb23n2824906vx790hjlwyhhrfzpzr5xr6ilzvy1xyl0ly0ah0wz2a7";
+        sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
       };
     };
-    "package-json-5.0.0" = {
+    "package-json-6.5.0" = {
       name = "package-json";
       packageName = "package-json";
-      version = "5.0.0";
+      version = "6.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/package-json/-/package-json-5.0.0.tgz";
-        sha512 = "0p21ljjj6v8r8a8fvl691yyfy7n79anx5940c80byrdfwimpnvqwiznwagrvshhnvlmawz8c40nwhf37nqwaa44j3mn44p5ahad1q8i";
+        url = "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz";
+        sha512 = "k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==";
       };
     };
     "pako-1.0.11" = {
@@ -7535,7 +7805,7 @@ let
       version = "1.0.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz";
-        sha512 = "1imm2ygnj1himskq6lblzdh3ngc6p9gkvhrbzivalqf3nwafzfglpmbh8wkaz0rsiaxh67jzxbb16m2ygapfcnfwqg9gkdqzkqc24p2";
+        sha512 = "4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==";
       };
     };
     "parallel-transform-1.2.0" = {
@@ -7544,7 +7814,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz";
-        sha512 = "35gr4098wc5ibbrpckgva8l9v50z6mcii4y3kv6wc1ymz3aj2i444y3m2qm2ngf0k02ylqkg3gn7g6awkqfs56ppljy5wmpifcd4srz";
+        sha512 = "P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==";
       };
     };
     "param-case-3.0.3" = {
@@ -7553,16 +7823,16 @@ let
       version = "3.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz";
-        sha512 = "162w23h2rysv24bd7qhl4qhv1fd2rvb0n6ai8vg1q463b0wl5gfsqdcgxyn3484b2bj250rd9i7dqv9y374csdarlmy9mww5755aq2m";
+        sha512 = "VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==";
       };
     };
-    "parse-asn1-5.1.5" = {
+    "parse-asn1-5.1.6" = {
       name = "parse-asn1";
       packageName = "parse-asn1";
-      version = "5.1.5";
+      version = "5.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz";
-        sha512 = "16n59f599pq8832a6c5wyxnqdf4vrqrdnclzs6vp9m2z2h9qmxamjk6xcrl1aal758jyba0pvyz1bkf7npm7achfxxa29jwaygihhwf";
+        url = "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz";
+        sha512 = "RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==";
       };
     };
     "parse-json-2.2.0" = {
@@ -7598,7 +7868,7 @@ let
       version = "1.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
-        sha512 = "2lzxqjq4zp60k9gbskpqz7pr1yvb0c6nygd42sia7n6km2gc0cc844nlc5d6r9sshrjhjvs284143jzvz9wzd4r6xr9dz2k24xrwb0a";
+        sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
       };
     };
     "pascal-case-3.1.1" = {
@@ -7607,7 +7877,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz";
-        sha512 = "10g214vi3ifgjl3g2ficxdnrxdlgdb3qvr7h0cljj0hbd5kmvcigr9k852m63invlksnbcx359wkmywxaw75xh29naspcibl8m8g1sw";
+        sha512 = "XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==";
       };
     };
     "pascalcase-0.1.1" = {
@@ -7625,7 +7895,7 @@ let
       version = "0.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz";
-        sha512 = "2avzhwqw37c6l7a0f276z7qzchzhwppinxhgg6q7by5bskwb7q7sfhwijb6fx4ingbdzb4i1pw6la5pg0izb5s4z69268278gil1ah5";
+        sha512 = "BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==";
       };
     };
     "path-dirname-1.0.2" = {
@@ -7661,7 +7931,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz";
-        sha512 = "3zvnv1dp30y10br2qy98z8760jssvps6g9swamdclgxsmhm14dyq0yacrj0d4mk915qhr1z0yh8l3dyd68wn7h7bgv8d39vjk5m0kva";
+        sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==";
       };
     };
     "path-is-absolute-1.0.1" = {
@@ -7697,7 +7967,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz";
-        sha512 = "3ll9f60sa4xi9iswmzar1hldsdhg1y8wy94wa0qmrcapf0prj95yng3bw7fkbi3jh44jc3hjymxwhxg7j7a2b9incijvywx98vrwfd2";
+        sha512 = "ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==";
       };
     };
     "path-parse-1.0.6" = {
@@ -7706,7 +7976,7 @@ let
       version = "1.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
-        sha512 = "37qw5986wccpwwqckqky509s4nd6zwv200s9r2v6mcf5nsyxgf2x00m4yp918mkkz84sdh4q0kjbg0hhfq4flpz0l6v47hvc57qwa8r";
+        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
       };
     };
     "path-to-regexp-0.1.7" = {
@@ -7733,7 +8003,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz";
-        sha512 = "2z1csf4c3fmlwl0ahk533z5zqkjdf36ccfx11kakl9xran9f5asxm4cxjq4lx1kwqdp8gki786cgpldvgrkvfc7pcvh07j5ssqm8rjg";
+        sha512 = "T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==";
       };
     };
     "path-type-4.0.0" = {
@@ -7742,16 +8012,16 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz";
-        sha512 = "2zw0czk4p8vimrxap6mlnw17lbjrhisby3z1m2j0qdhjcnxlv9lk5d8yxirrqy4ax6ar5qx14rpshmbpvzg9b4mnpzy03aclvqrncl0";
+        sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==";
       };
     };
-    "pbkdf2-3.0.17" = {
+    "pbkdf2-3.1.1" = {
       name = "pbkdf2";
       packageName = "pbkdf2";
-      version = "3.0.17";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz";
-        sha512 = "2s4nd3yv3kkyywvh5rkrvbr6w2h6a4q786v548w895ralcq9cllqzyxr0jgxf911k3zpmzycimsg3ggww3lkrhd3bk9wribrgjaby2k";
+        url = "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz";
+        sha512 = "4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==";
       };
     };
     "pem-1.14.2" = {
@@ -7760,7 +8030,7 @@ let
       version = "1.14.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/pem/-/pem-1.14.2.tgz";
-        sha512 = "0w57ydgr6304raqbf2svkvkxjw6r91kgdk926wljdpybpmr1xr7y94j4sqi63gc4dm6vi5x6wii8kx6p13awzp6i2kp05nrmnvczsac";
+        sha512 = "TOnPtq3ZFnCniOZ+rka4pk8UIze9xG1qI+wNE7EmkiR/cg+53uVvk5QbkWZ7M6RsuOxzz62FW1hlAobJr/lTOA==";
       };
     };
     "performance-now-2.1.0" = {
@@ -7778,7 +8048,7 @@ let
       version = "2.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz";
-        sha512 = "1d2xjd4r28xk5ggmns7n33nvga0ywk30plvs17dr70qwq0jc17p8kmfsm50idvj6xdrj1fikz0yv63x1pychmz90bs6mkj7wvskyhxb";
+        sha512 = "q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==";
       };
     };
     "pify-2.3.0" = {
@@ -7805,7 +8075,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz";
-        sha512 = "3d9a1zsv7ca8ffpp7ffl67vp0ahiq78ix1jl21b4nfklinh2ilwh6c45f93syclab0b49p3cfq8d4agpphrbmf6xgfxgzjv268387xq";
+        sha512 = "uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==";
       };
     };
     "pinkie-2.0.4" = {
@@ -7832,7 +8102,7 @@ let
       version = "1.0.9";
       src = fetchurl {
         url = "https://registry.npmjs.org/pjson/-/pjson-1.0.9.tgz";
-        sha512 = "1sh37y91m7ii0xy1213jw8ja42309mhxzrv0nvnxl77002lfc0m95fjbnwdn6r0cib8js60v54f2r02n4fcwl98jm74m49kfqglj572";
+        sha512 = "4hRJH3YzkUpOlShRzhyxAmThSNnAaIlWZCAb27hd0pVUAXNUAHAO7XZbsPPvsCYwBFEScTmCCL6DGE8NyZ8BdQ==";
       };
     };
     "pkg-dir-2.0.0" = {
@@ -7850,7 +8120,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz";
-        sha512 = "2znan90js3xrk8a8cvzv7vrjma5dgr9hkk4kpcgciyawbjz404a4rpdj6gngx1dc7f1xzmfm3q0an1rq69qyk2cmawhsy98i40pnkpw";
+        sha512 = "/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==";
       };
     };
     "pkg-up-2.0.0" = {
@@ -7880,13 +8150,13 @@ let
         sha1 = "b5418ef0439de5425fc4995042dced14fb2a84ff";
       };
     };
-    "portfinder-1.0.25" = {
+    "portfinder-1.0.28" = {
       name = "portfinder";
       packageName = "portfinder";
-      version = "1.0.25";
+      version = "1.0.28";
       src = fetchurl {
-        url = "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz";
-        sha512 = "0388smj2gw4cwp6pddy75jr5x6sha60s4w055dpxpag7fi9ql9vxrkidnzc1v5h2zp6ra350y8q4n6lqsg0dq12blsm1iavf2f4jjg8";
+        url = "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz";
+        sha512 = "Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==";
       };
     };
     "posix-character-classes-0.1.1" = {
@@ -7904,25 +8174,25 @@ let
       version = "6.0.23";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss/-/postcss-6.0.23.tgz";
-        sha512 = "1m7l8kr2bwwm21ki5jvrkfaxfxg5nqjn4zk9xf0b7rzyq1xz4s64cm5wh34qf0c13vva14wbmvfkwg7yndmcpnmcq9m7pc93vba90xj";
+        sha512 = "soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==";
       };
     };
-    "postcss-7.0.27" = {
+    "postcss-7.0.32" = {
       name = "postcss";
       packageName = "postcss";
-      version = "7.0.27";
+      version = "7.0.32";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz";
-        sha512 = "1sm64zw7m5fj7ni24kn3xcjnncf9c0jva67x209x5bz33kf1yvr9dwd9bwk2csavbh42a5yh2q61n9z2rjivdpxswgxanqwyd609r2s";
+        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz";
+        sha512 = "03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==";
       };
     };
-    "postcss-calc-7.0.2" = {
+    "postcss-calc-7.0.3" = {
       name = "postcss-calc";
       packageName = "postcss-calc";
-      version = "7.0.2";
+      version = "7.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz";
-        sha512 = "2yialb25zhak51b057lni6kr12p4aicp8w8m13krhsjq24ghz99l3v6mp5qhc6ihymc2bfqn1sqckmz5mcph3qwplmr5s90fladk1xf";
+        url = "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.3.tgz";
+        sha512 = "IB/EAEmZhIMEIhG7Ov4x+l47UaXOS1n2f4FBUk/aKllQhtSCxWhTzn0nJgkqN7fo/jcWySvWTSB6Syk9L+31bA==";
       };
     };
     "postcss-colormin-4.0.3" = {
@@ -7931,7 +8201,7 @@ let
       version = "4.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz";
-        sha512 = "0vhqbcpm535dwjglgk0svgxghy7063rwkd7i1rh8ykqmyz9imclbp5blj99i64awgjx6fk68xksqs3r3x6x38vxhx84r96rs00ha92v";
+        sha512 = "WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==";
       };
     };
     "postcss-convert-values-4.0.1" = {
@@ -7940,7 +8210,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz";
-        sha512 = "0jw9v1315cyal4mc0vd8acqy7g8r6hizrx7pldmzin7dnwbb1pj00q6c301cn8dpwkc5wfcphjqw8zwskjx19wrs01abv5vbjiisara";
+        sha512 = "Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==";
       };
     };
     "postcss-discard-comments-4.0.2" = {
@@ -7949,7 +8219,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz";
-        sha512 = "29fj6haa98fxl30bgk20jxngsis7r73k0n6zkc0aydqliqj9vddrx3g03zrxhf5k82pyf6kcbhb151kiff1kfw5vigy92kxdqvsv6s4";
+        sha512 = "RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==";
       };
     };
     "postcss-discard-duplicates-4.0.2" = {
@@ -7958,7 +8228,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz";
-        sha512 = "2hkmiwkgz59h7dvgm53nfwv2pc4ymjx82i1mfrfx3lvh3yc2rj8jpvq7in5cpj26aqlbhr2jzg7slc2qibk810qcsbhhd0gb13izm34";
+        sha512 = "ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==";
       };
     };
     "postcss-discard-empty-4.0.1" = {
@@ -7967,7 +8237,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz";
-        sha512 = "39k3fi493q6ixpvh0rs3ald21h8mnp0vkls85wfgbhyb5x21dz2xb6knc1xav5ygjzkyckl0wmxd9m2qybqmvzq9pii17pk6r7s5n87";
+        sha512 = "B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==";
       };
     };
     "postcss-discard-overridden-4.0.1" = {
@@ -7976,52 +8246,34 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz";
-        sha512 = "179r7sbkc1x3x2mv5g2il2vhx0akmcd61lai2y8ipk8g5vy13pd6nr57xak319ll3wn60mih08y5zz32g2i40sj6dbhvvn381n3d1i1";
+        sha512 = "IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==";
       };
     };
-    "postcss-flexbugs-fixes-3.3.1" = {
+    "postcss-flexbugs-fixes-4.2.1" = {
       name = "postcss-flexbugs-fixes";
       packageName = "postcss-flexbugs-fixes";
-      version = "3.3.1";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-3.3.1.tgz";
-        sha512 = "3xsv14h0z6rs754dhwmmmkcqpbjd9kck8k78ydv7yqcdfyvb370lz2w5mrbvz1igcw7qv8lzd3814bbipkzdcby54ix25zn6w668bzp";
+        url = "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz";
+        sha512 = "9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ==";
       };
     };
-    "postcss-load-config-1.2.0" = {
+    "postcss-load-config-2.1.0" = {
       name = "postcss-load-config";
       packageName = "postcss-load-config";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-1.2.0.tgz";
-        sha1 = "539e9afc9ddc8620121ebf9d8c3673e0ce50d28a";
-      };
-    };
-    "postcss-load-options-1.2.0" = {
-      name = "postcss-load-options";
-      packageName = "postcss-load-options";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-load-options/-/postcss-load-options-1.2.0.tgz";
-        sha1 = "b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c";
-      };
-    };
-    "postcss-load-plugins-2.3.0" = {
-      name = "postcss-load-plugins";
-      packageName = "postcss-load-plugins";
-      version = "2.3.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz";
-        sha1 = "745768116599aca2f009fad426b00175049d8d92";
+        url = "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz";
+        sha512 = "4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==";
       };
     };
-    "postcss-loader-2.1.5" = {
+    "postcss-loader-3.0.0" = {
       name = "postcss-loader";
       packageName = "postcss-loader";
-      version = "2.1.5";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-loader/-/postcss-loader-2.1.5.tgz";
-        sha512 = "2r4igq1b6l10xxgqwf5mhvn2afwjs63d1f1j1ndgxzikd5ncqlanpgirq5syb4kn440lpc24h2dbm04ivhxc2wznpsly9yyk43y8pm5";
+        url = "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz";
+        sha512 = "cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==";
       };
     };
     "postcss-merge-longhand-4.0.11" = {
@@ -8030,7 +8282,7 @@ let
       version = "4.0.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz";
-        sha512 = "2zp1rk4fk9lcg6d4x9yfr1n7zp8kzj5vghnjji9229qv8sbb24ij0y33sj6kwv1m5h7s5a3b72ja7wf1h8rpy5jlxiz4phydb77yp3a";
+        sha512 = "alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==";
       };
     };
     "postcss-merge-rules-4.0.3" = {
@@ -8039,7 +8291,7 @@ let
       version = "4.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz";
-        sha512 = "08rwihmvnqrz9ia48czncj4i50hrii7xgrvdff49a1yb1v28fd8z41bk21j3invi8d3s0x1iihn0598yczm3xwss378rgcvajpvgdsk";
+        sha512 = "U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==";
       };
     };
     "postcss-minify-font-values-4.0.2" = {
@@ -8048,7 +8300,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz";
-        sha512 = "2vdpqczvay1n44i15jg66gf28pj777img4cps6vx830hhif65w6y92zr555xr5c0f46wnkbx9h0idnldzvghf7x7mrlyid7lcxniklg";
+        sha512 = "j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==";
       };
     };
     "postcss-minify-gradients-4.0.2" = {
@@ -8057,7 +8309,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz";
-        sha512 = "3whlz4gqxsd8f0g908qwpqn0bmgm1sz3iscx5i4ys15b1kd4bi8cx01kcvjpa18d567kh38kchb7yr7297xakvp0bzwfxcdag1dz8x8";
+        sha512 = "qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==";
       };
     };
     "postcss-minify-params-4.0.2" = {
@@ -8066,7 +8318,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz";
-        sha512 = "1d4037bvr8ws41rvsrnhcmlx57s6czqxr8wwpwdp9wzrz76wxwn1zxpvq9mdalki6vn3ncm0b63qgiv96f09088zzw15lri675rddqv";
+        sha512 = "G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==";
       };
     };
     "postcss-minify-selectors-4.0.2" = {
@@ -8075,7 +8327,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz";
-        sha512 = "3gaxsjc0lh0lwy3jri4bsx18fsmx34qsh07bk43pqw3pxr04bq66vw88rr7jijdn745pw96dhkagmds32745ra7yrip13d5b24vb50g";
+        sha512 = "D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==";
       };
     };
     "postcss-modules-extract-imports-2.0.0" = {
@@ -8084,16 +8336,16 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz";
-        sha512 = "1cwpb0nbsgvwyxf6kr3wmpnsc0dgyx0mcapbp1103klr5gq7pmg6d423dah9k4sxzxvpz7b62ncjwvlc21ah5k0wl86yj5qsh60p9id";
+        sha512 = "LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==";
       };
     };
-    "postcss-modules-local-by-default-3.0.2" = {
+    "postcss-modules-local-by-default-3.0.3" = {
       name = "postcss-modules-local-by-default";
       packageName = "postcss-modules-local-by-default";
-      version = "3.0.2";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz";
-        sha512 = "0hxy2fkb9wv78ws2ki52j3rx5j2m1xy9yg8k9mcn5cjlynwbf9kykmysiqlrcpax3yan7y35ccvg7mf4cg87x38vdzq5qlcxbqxbkwc";
+        url = "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz";
+        sha512 = "e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==";
       };
     };
     "postcss-modules-scope-2.2.0" = {
@@ -8102,7 +8354,7 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz";
-        sha512 = "1fnivyay60x7kkg653ks8az8palhp4vprn0n0kj75dvc8f761p8q2bvaq95dbspayxzqyjnw4qvwz47wrzyr0kc3rzdg90i6fqj08b3";
+        sha512 = "YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==";
       };
     };
     "postcss-modules-values-3.0.0" = {
@@ -8111,7 +8363,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz";
-        sha512 = "1r2657ijhxmh1dszbwr1k8mdpda7r8w8gj5x4q76bya68pvwyx9vir5y1kg9qqwxhqn5qymldbm5m22cqmwrzhmk51rzbc163kc9zyp";
+        sha512 = "1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==";
       };
     };
     "postcss-normalize-charset-4.0.1" = {
@@ -8120,7 +8372,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz";
-        sha512 = "3g41krdk4hzkzly9kw24zwg3dbmxzaiq9wfsin6c8691f9rv94fz8sxinwg7h5v420h7nvcipqg07dxrmxif8adxnva31snp6pc5ic0";
+        sha512 = "gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==";
       };
     };
     "postcss-normalize-display-values-4.0.2" = {
@@ -8129,7 +8381,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz";
-        sha512 = "2wi1jy4i45d607gv94743b94ii3q66vm059z6zg7hcdvvayalkcjm6ylkpz4dfvh18l3p632cb0z1wvyzzsj00knnavynwcqrra6pfw";
+        sha512 = "3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==";
       };
     };
     "postcss-normalize-positions-4.0.2" = {
@@ -8138,7 +8390,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz";
-        sha512 = "1s6phjg5gbhmhr5ycjw4q6lr5vi8sz542kqhzj41xsbc0nkbas87npz1z3s3rsr30br7pqmdkjj423s0cb2fpsx6hz139ris3zzfmqf";
+        sha512 = "Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==";
       };
     };
     "postcss-normalize-repeat-style-4.0.2" = {
@@ -8147,7 +8399,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz";
-        sha512 = "3wkb4bcky7wf9vs92wq6qcwldzxbnbnrww43fyb5i6vi66gzgs5xlhhm8m0na72hqxk08bzjcn52xwwz7vv7j6d2sl2p98chrss1y5a";
+        sha512 = "qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==";
       };
     };
     "postcss-normalize-string-4.0.2" = {
@@ -8156,7 +8408,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz";
-        sha512 = "1wg89sywdpnm8pck61g313d9igh8cpmqlgv6x6cdixgc98046irm7yq1nwygk5adz990q9h9frskbm358zkfmlgmcm7q3kvvyhi3ca6";
+        sha512 = "RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==";
       };
     };
     "postcss-normalize-timing-functions-4.0.2" = {
@@ -8165,7 +8417,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz";
-        sha512 = "3h7jmkpmrh0yw6w06k28dgfmhn4g4pbkr3p4wc3n7m8psd4z06q4193l59nha3wd3rf6w44j2qzilmb450x7gpgv7xgwx2yvrihkk39";
+        sha512 = "acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==";
       };
     };
     "postcss-normalize-unicode-4.0.1" = {
@@ -8174,7 +8426,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz";
-        sha512 = "311iz04wy12nd657s0l1hs8fm9550gzxjkig30cx6wyc7pxlcfraxfjkzdpi30nqplb9rz6k03y7wdnmvkhislzppz8j2dhmm97rpd1";
+        sha512 = "od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==";
       };
     };
     "postcss-normalize-url-4.0.1" = {
@@ -8183,7 +8435,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz";
-        sha512 = "1a19pc9bvl37skha2a49r50yvfxhg21idcz965v4ir6adhqvy27m40zvmbd27wnlq3djch92xisk6aas9znlk2sxlp7q81ybrl1b6m7";
+        sha512 = "p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==";
       };
     };
     "postcss-normalize-whitespace-4.0.2" = {
@@ -8192,7 +8444,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz";
-        sha512 = "2s0cgihhy92iqlwlsma7llzfnhi0yznf2n0d0bip7hgc3p182l9yywjjzynxah0m04i7xp146awmrzsjnicl7xzwrypl8zc18i11vxl";
+        sha512 = "tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==";
       };
     };
     "postcss-ordered-values-4.1.2" = {
@@ -8201,7 +8453,7 @@ let
       version = "4.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz";
-        sha512 = "01rn75rgd2s1jx2q21jc4vhj7zbjzwma81yy5nzay11vs9vb3c9bimnyvab097ff88a77y73f2561cpxp9ax5qp9dppqsjl3rp8xw6r";
+        sha512 = "2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==";
       };
     };
     "postcss-reduce-initial-4.0.3" = {
@@ -8210,7 +8462,7 @@ let
       version = "4.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz";
-        sha512 = "067nl9p2zm8v4vyxs57iz14gxd5vyjn8vqdf78z197zsp5abrvh65d3lajgj5a06gd544c0gqcc48964p80z7rkdyim9flljr3sd9c0";
+        sha512 = "gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==";
       };
     };
     "postcss-reduce-transforms-4.0.2" = {
@@ -8219,7 +8471,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz";
-        sha512 = "014hrwaf4hyzkglss6k9s77qg6d0ysdh1i71n49ian03j8b0kd1pjm9jzsyx4b436fqz6iz3x1l7pjngja32mwj5q29wh1naj1n4i8h";
+        sha512 = "EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==";
       };
     };
     "postcss-safe-parser-4.0.2" = {
@@ -8228,7 +8480,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz";
-        sha512 = "3b624jkq9r4n23xq425mb6s1wb71m6nvk8h2g9gyq3k7n12z99hb4viy8fnp3wiinxm7mzkpvzxhrkzmb4zvby4ga7v0d4n2j9rw3jk";
+        sha512 = "Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g==";
       };
     };
     "postcss-selector-parser-3.1.2" = {
@@ -8237,7 +8489,7 @@ let
       version = "3.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz";
-        sha512 = "224wav8lxk3x5gjdxig09wdjnnkixl6j941a9z6y8w9dnr0dlgvjrrv36hadqkw12rfg5c483ij2lmpcydf63nr79r1bfcnkgzwkdw7";
+        sha512 = "h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==";
       };
     };
     "postcss-selector-parser-6.0.2" = {
@@ -8246,7 +8498,7 @@ let
       version = "6.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz";
-        sha512 = "031v34kpl4kypkmy5bi46kk3n0dcbczavi0zlcy5r0pzaxc5432rmfjb3fjkap0vni5gh7gvahfr43wdd5ah9120b73933x3r0zd8yz";
+        sha512 = "36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==";
       };
     };
     "postcss-svgo-4.0.2" = {
@@ -8255,7 +8507,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz";
-        sha512 = "27pwrvcvx4w37dz649dsawii4q43znabznk1nqvza2y1lmd4av4mh5ddz68vagghih2k6505680w9l0pddzhwh08as5kh6min735b0b";
+        sha512 = "C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==";
       };
     };
     "postcss-unique-selectors-4.0.1" = {
@@ -8264,7 +8516,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz";
-        sha512 = "2k15zwvbnbqb3diyrk5bbb38jdkyzfq2drvs16frm4ix432djb4y1c8r8p2c0blb6x170c1qjghb3lhc1iaxjlqq588ybpjm9asg5pq";
+        sha512 = "+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==";
       };
     };
     "postcss-value-parser-3.3.1" = {
@@ -8273,16 +8525,16 @@ let
       version = "3.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz";
-        sha512 = "34qs1g2jb9y7k8ydk013zqgkcmwclfa0n4f98kfpqbhczldnk5sbyyyj3zj7mmrqcahx3w9080g7ma4f1q58frlgiw4lmhvl3mq9154";
+        sha512 = "pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==";
       };
     };
-    "postcss-value-parser-4.0.3" = {
+    "postcss-value-parser-4.1.0" = {
       name = "postcss-value-parser";
       packageName = "postcss-value-parser";
-      version = "4.0.3";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz";
-        sha512 = "2p1bcqas3ldbvc3pjzyic1w4kvi5hm5k1apps8vj0dpfw4nl6rca26i6fnjyy8qml78s2spiqn38sv1i2k7kwlc210yx7lddyj7if1p";
+        url = "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz";
+        sha512 = "97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==";
       };
     };
     "prepend-http-2.0.0" = {
@@ -8300,7 +8552,7 @@ let
       version = "5.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz";
-        sha512 = "1v427fxhwc53139189yd8i8y9vb41sm5arjs0ib2i0zbbf16f9bjpwdy44x5zi40r8gklq5xns92k3jiqg6i6w58xwamnzxwf3sncc6";
+        sha512 = "hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==";
       };
     };
     "pretty-error-2.1.1" = {
@@ -8312,13 +8564,13 @@ let
         sha1 = "5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3";
       };
     };
-    "private-0.1.8" = {
-      name = "private";
-      packageName = "private";
-      version = "0.1.8";
+    "pretty-format-25.5.0" = {
+      name = "pretty-format";
+      packageName = "pretty-format";
+      version = "25.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/private/-/private-0.1.8.tgz";
-        sha512 = "2dgznnpxsgy9bgp4kfby1is72blvca4lhmqb3nlja8yiig1v52c12p5yw0aag8jqazhkqvihpxmqf9gsjlg5dr1jb56jxzgnqrazy2n";
+        url = "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz";
+        sha512 = "kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==";
       };
     };
     "process-0.11.10" = {
@@ -8345,7 +8597,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
-        sha512 = "1mgan8li4i2l4y7lsr7snks85n6xg5x693cqmzpid3fkk9br7v5xzgvh1zlfs08zkxn6s0n6qhykr64mszjfyxd77dhmdi1jhx992yy";
+        sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
       };
     };
     "promise-8.1.0" = {
@@ -8354,7 +8606,7 @@ let
       version = "8.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz";
-        sha512 = "3fk4wirp8c5j0drwrlmr69qq3y3ribwfl36dzdaxprq26fd63j7hkmvm4vnnhg5203y40lbpd38sd0akkc8iwqm7pnbyf0bfam00kjv";
+        sha512 = "W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==";
       };
     };
     "promise-inflight-1.0.1" = {
@@ -8390,7 +8642,7 @@ let
       version = "2.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
-        sha512 = "0xy6dm0910h3nsa0ik45yccdfm6f84nl3h9dpkb22crqhdr3mmiczcbrq9z53gq7l2ijxhxi3pzsfzafrzymw4c1nn68ml1y2pdy7vn";
+        sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
       };
     };
     "prr-1.0.1" = {
@@ -8417,7 +8669,7 @@ let
       version = "1.8.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz";
-        sha512 = "0hn7s5bxnn3k2hiqh8fmm7bvq4vd6j0a5hwj09jk31r1ylv6q28g5hl3z70m3gycwfb40vdp04fqi59hdjih3jz0fhszg0s5b7lx1s4";
+        sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
       };
     };
     "public-encrypt-4.0.3" = {
@@ -8426,7 +8678,7 @@ let
       version = "4.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz";
-        sha512 = "3qnsvs746b98ifyv12qj1g6hl6fq25vip5mswhvn3gnl7r32fids6mw3jb0gdcqrrl5x9ik475sf0vx6mbhmif49idkwjwrhbr5lnnd";
+        sha512 = "zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==";
       };
     };
     "pump-2.0.1" = {
@@ -8435,7 +8687,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz";
-        sha512 = "288hcmlwdnqda84ylx9cv413ic0r59k0dp71hy7a200jsb7h1y63277jwdp1jdp13c1b3pl6g2gzr5gjv9p72f5sp7w3p0d34swrqxf";
+        sha512 = "ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==";
       };
     };
     "pump-3.0.0" = {
@@ -8444,7 +8696,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz";
-        sha512 = "31n24fqakqmhzk2ch644gziskmysmrgiwclsdsr0rwk9spgikqpwickbnayap0rynfjlq72s7iny2p35n3qszypr97ws5njkpx741ig";
+        sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==";
       };
     };
     "pumpify-1.5.1" = {
@@ -8453,7 +8705,7 @@ let
       version = "1.5.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz";
-        sha512 = "1sxm2mh7jmxhjqdrpdqrhc61ipk2cjyyyvsn9hmxlxnlpsasyzjdicl98pm63zv30012qhrxl57vdpdnnq2m2hl4w4ybgn7gqimjad0";
+        sha512 = "oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==";
       };
     };
     "punycode-1.3.2" = {
@@ -8480,7 +8732,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
-        sha512 = "381vqgh5xkqzrr6cxbzfykgnnk83m7qgpx3wjwj1hddn3sg2aibjxyr30rajpgv4js0cqknrbzwbfk5ryhiiyigzfjrk3zysy6i26sx";
+        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
       };
     };
     "q-1.5.1" = {
@@ -8498,7 +8750,7 @@ let
       version = "6.5.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz";
-        sha512 = "3waqapyj1k4g135sgj636rmswiaixq19is1rw0rpv4qp6k7dl0a9nwy06m7yl5lbdk9p6xpwwngnggbzlzaz6rh11c86j2nvnnf273r";
+        sha512 = "eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==";
       };
     };
     "qs-6.5.2" = {
@@ -8507,7 +8759,7 @@ let
       version = "6.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
-        sha512 = "0c46ws0x9g3mmkgfmvd78bzvnmv2b8ryg4ah6jvyyqgjv9v994z7xdyvsc4vg9sf98gg7phvy3q1ahgaj5fy3dwzf2rki6bixgl15ip";
+        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
       };
     };
     "qs-6.7.0" = {
@@ -8516,16 +8768,7 @@ let
       version = "6.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz";
-        sha512 = "34x6fm4dnq8m0kps5ann831k8fvx7jzlrcw8vvri0ki2g2ywdrjr8j5y14bvj9c0fd01ndsyx43y6ji51bfhnxk2gr5fpsks52429sl";
-      };
-    };
-    "query-string-5.1.1" = {
-      name = "query-string";
-      packageName = "query-string";
-      version = "5.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz";
-        sha512 = "0kkwn38nmjd6n6byiz52gngvyiw46fbibx9c9p1vzn9g7l11f2jpbs39d4aqajk7kk2a6k69wx5bjgavbg1lh275ih6k84jdnr8wdc2";
+        sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
       };
     };
     "querystring-0.2.0" = {
@@ -8546,13 +8789,13 @@ let
         sha1 = "9ec61f79049875707d69414596fd907a4d711e73";
       };
     };
-    "querystringify-2.1.1" = {
+    "querystringify-2.2.0" = {
       name = "querystringify";
       packageName = "querystringify";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz";
-        sha512 = "1yd3j6k7rr39qm5zsh0k86znfksfcz9rbj48vv2dbsicnvvgzvw1vwl17vk2jlxszwqjiqsj9hy88r74wsdxf8by7a3wia2hk2cpdy3";
+        url = "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz";
+        sha512 = "FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==";
       };
     };
     "randombytes-2.1.0" = {
@@ -8561,7 +8804,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz";
-        sha512 = "2cimbs750ysa2wxsiw9mmc1xqjb8w0c4s22p2mv2n676s8hchvzcl1l5p78jnk62d2jzacpr9zbl9w64kaqnipcbaa25q7ywn47g2dx";
+        sha512 = "vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==";
       };
     };
     "randomfill-1.0.4" = {
@@ -8570,7 +8813,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz";
-        sha512 = "0pm7c7mw7a3qwjr21f8cvxaa2sq5l4svqs51lppn833x0yvz3yx8x4vbd4rswjynykvlgvn4hrpq327pvbzp428f4b1fciy3xnmrfgk";
+        sha512 = "87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==";
       };
     };
     "range-parser-1.2.1" = {
@@ -8579,7 +8822,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
-        sha512 = "15b00vag4wijzsp0lwi9jznpz16n858vq5p1p3dgjrqqil9c6d4x55s1nl1fi4cbq8307bylbvkd9qkhyk6qib8ksh8raibxb3jrf0y";
+        sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
       };
     };
     "raw-body-2.3.2" = {
@@ -8597,7 +8840,7 @@ let
       version = "2.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz";
-        sha512 = "3flyhj96ayiy8is22lwh9sp1yqq9ksym43x22yri2ikzladqqzxj6z657bc0xb5f2wl7qr2ja4byf57c9f7l2d3wqdglxih886zrv70";
+        sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==";
       };
     };
     "rc-1.2.8" = {
@@ -8606,7 +8849,7 @@ let
       version = "1.2.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz";
-        sha512 = "0xhy1n9n3y6cp28f8f0f2mi0xzc7ay1g5nhbp64fyvcwv9q30zq2zvyc5q2d0al8aa0hx101yq2y6d2ln4r5jxnqifh1pd3la1ccxnb";
+        sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==";
       };
     };
     "react-dev-utils-6.1.1" = {
@@ -8615,7 +8858,7 @@ let
       version = "6.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-6.1.1.tgz";
-        sha512 = "3gzi6h19w4dkr566jbw277xi1gvrq8r18x2b0wbz5zwjjj25gs0vr1p4kjyyx03351c2nkm09sfyd4l4j7lw8playqdwm98lzrwj5jf";
+        sha512 = "ThbJ86coVd6wV/QiTo8klDTvdAJ1WsFCGQN07+UkN+QN9CtCSsl/+YuDJToKGeG8X4j9HMGXNKbk2QhPAZr43w==";
       };
     };
     "react-error-overlay-4.0.1" = {
@@ -8624,7 +8867,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-4.0.1.tgz";
-        sha512 = "2viss03mfyx7xkwyfv6kj5p7j03wpjrq0qjkljc1w715n7q9xb8i0ixhy5vvwfibnsydgr0ib9wifx9bpwm5va808d4ylv40q61nxf5";
+        sha512 = "xXUbDAZkU08aAkjtUvldqbvI04ogv+a1XdHxvYuHPYKIVk/42BIOD0zSKTHAWV4+gDy3yGm283z2072rA2gdtw==";
       };
     };
     "react-error-overlay-5.1.6" = {
@@ -8633,7 +8876,16 @@ let
       version = "5.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-5.1.6.tgz";
-        sha512 = "3az1p6ci7r6nf917lkw5lr2plssa9ajmr3l3z77h6vyrsjwbyjbdw3zqzjlil7135bgbvgfg78a9qgmjnz02y5yas1qkv3q6k93wmjz";
+        sha512 = "X1Y+0jR47ImDVr54Ab6V9eGk0Hnu7fVWGeHQSOXHf/C2pF9c6uy3gef8QUeuUiWlNb0i08InPSE5a/KJzNzw1Q==";
+      };
+    };
+    "react-is-16.13.1" = {
+      name = "react-is";
+      packageName = "react-is";
+      version = "16.13.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz";
+        sha512 = "24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==";
       };
     };
     "read-1.0.7" = {
@@ -8678,7 +8930,7 @@ let
       version = "2.3.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
-        sha512 = "0zrh6gjjzwwycwydra51xcrgjgzyqv6dq38bfpwzmlqn702mwb4nj4sjjn499rycqndfk6rby0dksnq72x8pcbvqv0b2893mvq6if0i";
+        sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
       };
     };
     "readable-stream-3.6.0" = {
@@ -8687,7 +8939,7 @@ let
       version = "3.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
-        sha512 = "1s8hs6ax9jwmmw558j3hyfx5lfn7qf66xg0giplz9jci7d8zp2d8vh96dzlis6xzpxfa5b2zbm8nm4mgsr71r6rl3w3qyfanb5qfn05";
+        sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
       };
     };
     "readdirp-2.2.1" = {
@@ -8696,7 +8948,7 @@ let
       version = "2.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz";
-        sha512 = "2yzl88bp25ig1xnrzqmqiwpfxyqkmdw27h3p90a4a58q0964xcijcx4i948msnlvin9f6hn5hmpxj1s90jzkj8aqxr5d04mmzr3z5fl";
+        sha512 = "1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==";
       };
     };
     "readdirp-3.1.3" = {
@@ -8705,7 +8957,7 @@ let
       version = "3.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/readdirp/-/readdirp-3.1.3.tgz";
-        sha512 = "3snxi021w9pg57mc4wmvpch80fscyqwbrbhwb8541kn7z6xray7ncg6ixykk7vx556lfjnyi4cx6dk0a6zcwk0yg4m6jfr3d561zsv4";
+        sha512 = "ZOsfTGkjO2kqeR5Mzr5RYDbTGYneSkdNKX2fOX2P5jF7vMrd/GNnIAUtDldeHHumHUCQ3V05YfWUdxMPAsRu9Q==";
       };
     };
     "readdirp-3.2.0" = {
@@ -8714,7 +8966,7 @@ let
       version = "3.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz";
-        sha512 = "0chzz12q3inpmwm6b4gi7g9n39jp24ah3mmjgss87hfsbx86vnxf49bx9wk2ng66037x2fh0cjf5rgx00c1m86lqlh7r6g9xm13ifbj";
+        sha512 = "crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==";
       };
     };
     "readdirp-3.4.0" = {
@@ -8723,7 +8975,7 @@ let
       version = "3.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz";
-        sha512 = "0cs2zxxilvxnj5n2726vpigp95pyc33q9qimcigd349sr2d3rfiqg6hh6qdraqmnw9fhky8zhl8071s58zp52pb5d2741nrbg9v85yk";
+        sha512 = "0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==";
       };
     };
     "recursive-readdir-2.2.2" = {
@@ -8732,16 +8984,25 @@ let
       version = "2.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz";
-        sha512 = "0bb5d70l5lg02x515r2klvjhhz6xcxdb4ykbx16wq45l822bbsdd8sbki7vb28j17xr7181fmwlzhx3bizvr5xdq6cxpv53sidrq44x";
+        sha512 = "nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==";
+      };
+    };
+    "reflect-metadata-0.1.13" = {
+      name = "reflect-metadata";
+      packageName = "reflect-metadata";
+      version = "0.1.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz";
+        sha512 = "Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==";
       };
     };
-    "regenerate-1.4.0" = {
+    "regenerate-1.4.1" = {
       name = "regenerate";
       packageName = "regenerate";
-      version = "1.4.0";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz";
-        sha512 = "0m5jil0f2yz4js80jxvwilkhq6im5h6h0pa4disk3fsv9lm23lz8ly5219518j47v4fn0h248s9jf5pqhxhcr6z5cmxvbnna0js6vnl";
+        url = "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz";
+        sha512 = "j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==";
       };
     };
     "regenerate-unicode-properties-8.2.0" = {
@@ -8750,7 +9011,7 @@ let
       version = "8.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz";
-        sha512 = "225dbzqx56z4pkl71954di1140528vik4pc7q0zxw4k10k6pq5pdqdvhfry1cyj1waqjg4kacgzvnfxhz5wkhz37pnqybnabdiy7l0p";
+        sha512 = "F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==";
       };
     };
     "regenerator-runtime-0.11.1" = {
@@ -8759,25 +9020,16 @@ let
       version = "0.11.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
-        sha512 = "03d4l8l8cyywh93wf5vw84lq56jh1b1d7jll4ny4z060j9hvx7w5q3q0b8q227jm93749k1c9h86r2pz0bm2xq5vp14g3r2kbvqc2rj";
+        sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==";
       };
     };
-    "regenerator-runtime-0.12.1" = {
+    "regenerator-runtime-0.13.7" = {
       name = "regenerator-runtime";
       packageName = "regenerator-runtime";
-      version = "0.12.1";
+      version = "0.13.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz";
-        sha512 = "0g2nsc66ha0z9d4p7hxi0lhwqilbbg1ff6pz1mpzn8x4yvrg7zadvk08l4ph8h56156g82df6jjyg8nb2j5w7wpi4w5l3pgbxrlip51";
-      };
-    };
-    "regenerator-runtime-0.13.5" = {
-      name = "regenerator-runtime";
-      packageName = "regenerator-runtime";
-      version = "0.13.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz";
-        sha512 = "2a918h23x10x6v446prj8l20irllscvw554hqk8r9pb9vyi7zk7fzcl0bq2dvc218dbpb3chdg9bxx06z7xs5pcrka2j5ja5bq70bk5";
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz";
+        sha512 = "a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==";
       };
     };
     "regenerator-runtime-0.9.6" = {
@@ -8789,13 +9041,13 @@ let
         sha1 = "d33eb95d0d2001a4be39659707c51b0cb71ce029";
       };
     };
-    "regenerator-transform-0.14.4" = {
+    "regenerator-transform-0.14.5" = {
       name = "regenerator-transform";
       packageName = "regenerator-transform";
-      version = "0.14.4";
+      version = "0.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz";
-        sha512 = "1pvch513p14nghc7cnlrrb0isf1sc97asa9nvvk5bq8jkvpilf8j2wqsv8r9qgxyvc15h9gz1c7n73yz1ndlczmlv56px28y0l5m8hi";
+        url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz";
+        sha512 = "eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==";
       };
     };
     "regex-not-1.0.2" = {
@@ -8804,7 +9056,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz";
-        sha512 = "3cggngaj8m70zdn8kghha4mhvavm7jfy5xm2iqi94w4gi5m5irs3nlrgg975w2231y49jnnw7zhsg648pbkl9zb6vwhii83926q7917";
+        sha512 = "J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==";
       };
     };
     "regexp.prototype.flags-1.3.0" = {
@@ -8813,7 +9065,7 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz";
-        sha512 = "24rfa56w9i13nr9hfwm8rnvnsji46alvzzm0m62ahpw6grjpvd4108vbar6i26cgr5vjj04rchzgkgwp4mynwsjcajm7rrxk05k9r6v";
+        sha512 = "2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==";
       };
     };
     "regexpu-core-4.7.0" = {
@@ -8822,34 +9074,34 @@ let
       version = "4.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz";
-        sha512 = "1hpk2aqc7j93nmm07zq652k0cf1yhhwzj7mzxyqygcz5dxcr9kz5qci1izykg1j5gwzh7qa523jryqg4iqsvryqx9rsp7y835fhl3jd";
+        sha512 = "TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==";
       };
     };
-    "registry-auth-token-3.4.0" = {
+    "registry-auth-token-4.2.0" = {
       name = "registry-auth-token";
       packageName = "registry-auth-token";
-      version = "3.4.0";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-3.4.0.tgz";
-        sha512 = "3w8zjx5s044i7wr9bqqgjfkjawg0cajc9j9gmzkqs0i420algjvkd5k27j9pvhx1yq7nvdchsl96zcyjf64n14765q0f18y1wbkmcz0";
+        url = "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz";
+        sha512 = "P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==";
       };
     };
-    "registry-url-3.1.0" = {
+    "registry-url-5.1.0" = {
       name = "registry-url";
       packageName = "registry-url";
-      version = "3.1.0";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/registry-url/-/registry-url-3.1.0.tgz";
-        sha1 = "3d4ef870f73dde1d77f0cf9a381432444e174942";
+        url = "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz";
+        sha512 = "8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==";
       };
     };
-    "regjsgen-0.5.1" = {
+    "regjsgen-0.5.2" = {
       name = "regjsgen";
       packageName = "regjsgen";
-      version = "0.5.1";
+      version = "0.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.1.tgz";
-        sha512 = "35ax8xcn4cw0g7c2295pqza2wg3mmym2dxii4rnlsfgb5ppdr5zxg74wr4hg3cxyhr8qbfirl4rv9968bw4rxrlnwwdrcy3k0cp7b76";
+        url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz";
+        sha512 = "OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==";
       };
     };
     "regjsparser-0.6.4" = {
@@ -8858,7 +9110,7 @@ let
       version = "0.6.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz";
-        sha512 = "0ksbypdbmkzwvi33jcx15lh2h1x3zxl311702paqw4fkjc682zbkqjsh970jd0z9q9la8454p5hd6li40pahl7lygj0f3jgyzpvr0zb";
+        sha512 = "64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==";
       };
     };
     "relateurl-0.2.7" = {
@@ -8885,7 +9137,7 @@ let
       version = "2.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz";
-        sha512 = "0cg3aidnv7kgvxnn1a17s6mzzvvjgr9vsqsdiaim8cz89w8vvjin44668r3xgvbp7zdplcifn5w118bzl3p5rr9q3116r64kr18ph6g";
+        sha512 = "z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==";
       };
     };
     "repeat-element-1.1.3" = {
@@ -8894,7 +9146,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz";
-        sha512 = "3dbpfrs4yh7dd9572m6dc8cxcgqacnvd24xm9licnw1hygqv51a18a84gm04sjssajbm437rq01raggrzmnzk4jnmbnxrnmk78sl4ba";
+        sha512 = "ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==";
       };
     };
     "repeat-string-1.6.1" = {
@@ -8912,7 +9164,7 @@ let
       version = "2.88.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/request/-/request-2.88.0.tgz";
-        sha512 = "2339w6v6d7n7pj0085vkfvk0864gs8kfh1kghbl3smj7s21ny3k265in140frsaipc6bvqbi4k696ic4z13d6a56dfvc653p15822il";
+        sha512 = "NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==";
       };
     };
     "request-2.88.2" = {
@@ -8921,25 +9173,25 @@ let
       version = "2.88.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz";
-        sha512 = "23hm71jcxrwvp33azx8mx3w6dg21fr4w6lwvkvxyf6ckvhk3hz9dk8lzgkbiyzfl9ylhp4n807xp88ppq4gj5h07cmrgxf6nwxfvjrj";
+        sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==";
       };
     };
-    "request-promise-4.2.5" = {
+    "request-promise-4.2.6" = {
       name = "request-promise";
       packageName = "request-promise";
-      version = "4.2.5";
+      version = "4.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/request-promise/-/request-promise-4.2.5.tgz";
-        sha512 = "0748za8mwvj5605cgqxn24sydig74m341wi9x04dar6xid0jmlwdjy0k4haf838p05w1jf79a4r7p4y59n2i7yfmflxj5d45jjdw2b6";
+        url = "https://registry.npmjs.org/request-promise/-/request-promise-4.2.6.tgz";
+        sha512 = "HCHI3DJJUakkOr8fNoCc73E5nU5bqITjOYFMDrKHYOXWXrgD/SBaC7LjwuPymUprRyuF06UK7hd/lMHkmUXglQ==";
       };
     };
-    "request-promise-core-1.1.3" = {
+    "request-promise-core-1.1.4" = {
       name = "request-promise-core";
       packageName = "request-promise-core";
-      version = "1.1.3";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz";
-        sha512 = "00riv5nw32j70g67b1ll1h599bvdbnkgasnwl1m26pfdgdmgr6zaq500mprx5n77yrnhza27vs3c9icb4z5h6wnwmlha6f81bw3d2s0";
+        url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz";
+        sha512 = "TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==";
       };
     };
     "require-directory-2.1.1" = {
@@ -8951,15 +9203,6 @@ let
         sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
       };
     };
-    "require-from-string-1.2.1" = {
-      name = "require-from-string";
-      packageName = "require-from-string";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz";
-        sha1 = "529c9ccef27380adfec9a2f965b649bbee636418";
-      };
-    };
     "require-main-filename-1.0.1" = {
       name = "require-main-filename";
       packageName = "require-main-filename";
@@ -8975,7 +9218,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz";
-        sha512 = "2d0gd2x49nz3hgfwms6326sjw5fx7gqf997dnggc7l084cibgang6wr6ryksky32fvdz1bq72xm73kfxd3lj2qnfyjsp57jq287k8rl";
+        sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
       };
     };
     "requires-port-1.0.0" = {
@@ -8987,13 +9230,13 @@ let
         sha1 = "925d2601d39ac485e091cf0da5c6e694dc3dcaff";
       };
     };
-    "resolve-1.15.1" = {
+    "resolve-1.17.0" = {
       name = "resolve";
       packageName = "resolve";
-      version = "1.15.1";
+      version = "1.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz";
-        sha512 = "3pr5zjp8nh6qfllxnpqx531srx1igzdm28j4zg1y53yzc8qxp16yx01pw8cp7y4frla90gnpv622d6bi6aayi03iqlkb8gdjklji2pk";
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz";
+        sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==";
       };
     };
     "resolve-cwd-2.0.0" = {
@@ -9047,7 +9290,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz";
-        sha512 = "05s3yp7f127kahmmajjyy5fbgvpz4b1d2dfhbv0ifp2b7yw6f1xj2f3vvw7ni08dlhfm37s6hmqp9v8w3xzml8fcxnda1skf6xkqzn4";
+        sha512 = "xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==";
       };
     };
     "restore-cursor-2.0.0" = {
@@ -9065,7 +9308,7 @@ let
       version = "0.1.15";
       src = fetchurl {
         url = "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz";
-        sha512 = "2d7igpgyzdlpx2ni0sql8gsnqk9qivfsw6bn1aklm19kbhgxjzmlazz8szfsbdpjka4gk6i3zf0jqa0llaf7dni636fnbwfmyjmhfad";
+        sha512 = "TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==";
       };
     };
     "retry-0.12.0" = {
@@ -9083,7 +9326,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz";
-        sha512 = "37z410bxpvfjlxmd0rfrzmvd4dl33kqqgi51xp8hbbxxwzdddy5q1b20x9msvqhxvhj93w85fr2hlizsi7rfx91j3gcyzdpqvrwgnak";
+        sha512 = "U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==";
       };
     };
     "revalidator-0.1.8" = {
@@ -9119,7 +9362,7 @@ let
       version = "2.6.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz";
-        sha512 = "242p51rnhbah4ip4k2bqgnn5kx5v7byi6rd7jphxh7g92y8wh523zmqdr3jzyzr156p98kx7igb3mhh3l3fmf1iga06l0zcjmdrw2lv";
+        sha512 = "mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==";
       };
     };
     "rimraf-2.7.1" = {
@@ -9128,7 +9371,7 @@ let
       version = "2.7.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz";
-        sha512 = "3ixwnv4h7x38jd12vyzhx6m6adnfhz1zv881allalyqs8sy3q3zgwldngk4cqslnn2d46l0g91yz8wprmzcsvas9573vp8al9ldns5r";
+        sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==";
       };
     };
     "ripemd160-2.0.2" = {
@@ -9137,25 +9380,16 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz";
-        sha512 = "0hbd4cqbkycj691cj7gm40x3x5w46xk56xkg6n11wskc3k4xbdz1xxxyy6r27rcwipkzp19y1fmpfmb4lgf10l8asn6prdn11m24bla";
+        sha512 = "ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==";
       };
     };
-    "rsvp-4.8.5" = {
-      name = "rsvp";
-      packageName = "rsvp";
-      version = "4.8.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz";
-        sha512 = "2wdl1qh3bdrji9q0whkrhj7gzryfipskamagkg5dq54phmg5c7ifp8va0b8saxs4xmi6c5mlvkh6gbk6r4nqrld4v8ykx5f0ja0xwwx";
-      };
-    };
-    "run-async-2.4.0" = {
+    "run-async-2.4.1" = {
       name = "run-async";
       packageName = "run-async";
-      version = "2.4.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz";
-        sha512 = "2k7xr99g0l8qvqzd66mpwp3wylfay2i27dh5ca3bmr92l5yixlk0dh53z9ljvyrm3mi7jz89il8gq55sgdv8d8p0v96wbkvyy3xp564";
+        url = "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz";
+        sha512 = "tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==";
       };
     };
     "run-parallel-1.1.9" = {
@@ -9164,7 +9398,7 @@ let
       version = "1.1.9";
       src = fetchurl {
         url = "https://registry.npmjs.org/run-parallel/-/run-parallel-1.1.9.tgz";
-        sha512 = "3sl2kbxcwy92faw7zm0z4vql32622mag0bh6dv4bjk7cvc8a9sarvdclr9508hknhl0b7v8kzqvg3klvvff7psmvkfg9hy32i4sfjhc";
+        sha512 = "DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q==";
       };
     };
     "run-queue-1.0.3" = {
@@ -9176,13 +9410,13 @@ let
         sha1 = "e848396f057d223f24386924618e25694161ec47";
       };
     };
-    "rxjs-6.5.5" = {
+    "rxjs-6.6.2" = {
       name = "rxjs";
       packageName = "rxjs";
-      version = "6.5.5";
+      version = "6.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz";
-        sha512 = "0csbv2i7lf85kcn3x59ry96c41zx735f8mmaqzid9vp7xz072bxma44arky971djavsjqkdgss4igp4ljwhbgx81psdg198b3xhix2r";
+        url = "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz";
+        sha512 = "BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==";
       };
     };
     "safe-buffer-5.1.1" = {
@@ -9191,7 +9425,7 @@ let
       version = "5.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz";
-        sha512 = "1p28rllll1w65yzq5azi4izx962399xdsdlfbaynn7vmp981hiss05jhiy9hm7sbbfk3b4dhlcv0zy07fc59mnc07hdv6wcgqkcvawh";
+        sha512 = "kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==";
       };
     };
     "safe-buffer-5.1.2" = {
@@ -9200,16 +9434,16 @@ let
       version = "5.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
-        sha512 = "3xbm0dkya4bc3zwfwpdzbl8ngq0aai5ihlp2v3s39y7162c7wyvv9izj3g8hv6dy6vm2lq48lmfzygk0kxwbjb6xic7k4a329j99p8r";
+        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
       };
     };
-    "safe-buffer-5.2.0" = {
+    "safe-buffer-5.2.1" = {
       name = "safe-buffer";
       packageName = "safe-buffer";
-      version = "5.2.0";
+      version = "5.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz";
-        sha512 = "1pb164cfv1ip3s1rp008433rak88mdcch24q84cbfndg0dzky2ij8vjvsiyx2qf3rg4dgs82zk7vnrd9hkqqdcvp4lbk5ymcr8314bx";
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
+        sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
       };
     };
     "safe-regex-1.1.0" = {
@@ -9236,16 +9470,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
-        sha512 = "2v99f22kh56y72d3s8wrgdvf5n10ry40dh3fwnsxr4d5rfvxdfxfmc3qyqkscnj4f8799jy9bpg6cm21x2d811dr9ib83wjrlmkg6k1";
-      };
-    };
-    "sane-4.1.0" = {
-      name = "sane";
-      packageName = "sane";
-      version = "4.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz";
-        sha512 = "1jdy0h2kdi5d2lnxafnbxnqssf306v0pffvw10jspi9v899n7rxknzs78k7nnrgy1mgyfragq91y4ci7z7xksbp92xw6py80h1g65l6";
+        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
       };
     };
     "sax-1.2.4" = {
@@ -9254,7 +9479,7 @@ let
       version = "1.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz";
-        sha512 = "1dn291mjsda42w8kldlbmngk6dhjxfbvvd5lckyqmwbjaj6069iq3wx0nvcfglwnpddz2qa93lzf4hv77iz43bd2qixa079sjzl799n";
+        sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==";
       };
     };
     "schema-utils-0.4.7" = {
@@ -9263,7 +9488,7 @@ let
       version = "0.4.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.7.tgz";
-        sha512 = "2fx9w14jysc2biw8niqw9cjrw8y73qnrlx5p4l3ksw1k4j3jsnm4lbkkqlckyij6d8fhjl69hzv64cyzwnwlgdm3ny65h1gmi9v1y5z";
+        sha512 = "v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ==";
       };
     };
     "schema-utils-1.0.0" = {
@@ -9272,16 +9497,16 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz";
-        sha512 = "3kgnvyq6cxrlx9xwba75z4wp364mf4y4d66d92zwhjdw8nqg5jxzp1bfl6n5srl0aircw32nmry28a4476cpb3ijqzz78hars4wqvlb";
+        sha512 = "i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==";
       };
     };
-    "schema-utils-2.6.5" = {
+    "schema-utils-2.7.0" = {
       name = "schema-utils";
       packageName = "schema-utils";
-      version = "2.6.5";
+      version = "2.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz";
-        sha512 = "14vmb36crpgskhlwsh3ip0vss6pq08pa5lajyvxa968a61nj2qjva4ww0grfhd3ygzxanwb8v31n1grfd6gs8qz3vav8hp2mk0fx9g4";
+        url = "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz";
+        sha512 = "0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==";
       };
     };
     "select-hose-2.0.0" = {
@@ -9299,7 +9524,7 @@ let
       version = "1.10.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz";
-        sha512 = "165gijv79k6g333d52fwfnna4z0myalk0cywvf9b6pysjfwlib4cvldycwx6yiiy099v9s0yhgvhq1sn21dqy7r85kq4n6y5h2g1kgh";
+        sha512 = "8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==";
       };
     };
     "semver-5.7.1" = {
@@ -9308,7 +9533,7 @@ let
       version = "5.7.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
-        sha512 = "0cl68vp0ymkjpvim4s24v3awyk37d1bfbqrqv4ybwfi8yxga3d8fma2d6bh8dd4i2dsfwca324vaxm5dms61kdlmihdarfgzw6rmaxi";
+        sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
       };
     };
     "semver-6.3.0" = {
@@ -9317,16 +9542,25 @@ let
       version = "6.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz";
-        sha512 = "17wg4dv63jhss5hwqd135zz67r5c30b7a1xz33kfa7knxr0wfypyb8mj2xmc3l71qkxrz569n89xwp5d77m7adn0sr5wzfjlh2m6zvg";
+        sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
       };
     };
-    "semver-7.1.3" = {
+    "semver-7.0.0" = {
       name = "semver";
       packageName = "semver";
-      version = "7.1.3";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz";
+        sha512 = "+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==";
+      };
+    };
+    "semver-7.3.2" = {
+      name = "semver";
+      packageName = "semver";
+      version = "7.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz";
-        sha512 = "32cdpngjcravgf06jc8ny0d3qq8q5a9llmlxvnafjlgqxj6g5l088cx2w27c94rahds21zph8in4b67c5yxk6n2js0j1xc0z36k8hvs";
+        url = "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz";
+        sha512 = "OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==";
       };
     };
     "semver-regex-1.0.0" = {
@@ -9353,7 +9587,7 @@ let
       version = "0.16.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/send/-/send-0.16.2.tgz";
-        sha512 = "1kh8iy2h9x6mqbb0kssb4d966irri0z8g2151jwx47q32dbmds01j9fs2c8hln68dqqh0ims8p450z3xfw6vs8v2k253c1cyla1ibhk";
+        sha512 = "E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==";
       };
     };
     "send-0.17.1" = {
@@ -9362,7 +9596,7 @@ let
       version = "0.17.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz";
-        sha512 = "016qgvxg1si6vn34p7piyc8mhvmav1zscm294wkcjf221y1l9zk5kwk5z6yn1ixspj12df25bpazb2h3fdclcf59xqc2h4w46r4mi86";
+        sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
       };
     };
     "serialize-javascript-1.9.1" = {
@@ -9371,7 +9605,7 @@ let
       version = "1.9.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.9.1.tgz";
-        sha512 = "3a0kvzr1rq0l6v4l587sv58i0xgajs9863srkhxxlzq3dk5mj8r5sag4yyxfidzsbwcbygbg7wdm2nja97kg5n4y9plxsl9hpkzymni";
+        sha512 = "0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==";
       };
     };
     "serialize-javascript-2.1.2" = {
@@ -9380,7 +9614,16 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz";
-        sha512 = "26vhlfjji0jk84cvbcpna4h1nfvdwj19g7rjmvz9mzlm277cpgz7xw9q61yrp3x4amas66fxrz0p2rrndv737j4imw4a5ql0614xkxf";
+        sha512 = "rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==";
+      };
+    };
+    "serialize-javascript-4.0.0" = {
+      name = "serialize-javascript";
+      packageName = "serialize-javascript";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz";
+        sha512 = "GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==";
       };
     };
     "serve-index-1.9.1" = {
@@ -9398,7 +9641,7 @@ let
       version = "1.13.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz";
-        sha512 = "2gkkd7jlmrn2a8d736x3fcij9jj16aglbq6pcivb897g01k1dlrpvb565d3hq9zwafyr60zlcqr5flgd2yqs36s8wxpylxqnck5vyx7";
+        sha512 = "p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==";
       };
     };
     "serve-static-1.14.1" = {
@@ -9407,7 +9650,7 @@ let
       version = "1.14.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz";
-        sha512 = "0551vv6s1vgk5krzdn9cwnybsv6g4cyqpkk1dlkyv1pd8n7m8r7pi12r16bw12dzwl6ghj4qwizjsxc8vl26lv9c61fkq9r059yzji4";
+        sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
       };
     };
     "set-blocking-2.0.0" = {
@@ -9425,7 +9668,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz";
-        sha512 = "15idn47lw67wfq0qfva85xnphqxkzz5apix6gwcnylmqw4ch7bqhq4vzdh53f327agpcg6pdzkbj8m72wm887wd8lqaydw20zbxq497";
+        sha512 = "JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==";
       };
     };
     "setimmediate-1.0.5" = {
@@ -9452,7 +9695,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz";
-        sha512 = "2jlhhawfqdiga1m6if01ks1q3yx56k5vj6wf372589vkswvdflw7224viivxali56b0jjsckpmjy10rj6fcakhw2dbq2psr197kzw86";
+        sha512 = "BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==";
       };
     };
     "setprototypeof-1.1.1" = {
@@ -9461,7 +9704,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
-        sha512 = "01qxzb0a6jrcxa6qh776v04ihqrmcy3qfbp9drfsjhfcsmaqd21mppr3ndj970ixfh6bpm8ai45jyqyzjfjw26pcyd82y6pyrcl1xr6";
+        sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
       };
     };
     "sha.js-2.4.11" = {
@@ -9470,7 +9713,7 @@ let
       version = "2.4.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz";
-        sha512 = "2lihh3p2mrwymrly93ni37b1dvzwbm1jc47iqp66ax4bj41js4mr94wghv3c2agq98bb44nxxddn2n67ab978zk00xx2znw3vj2kha0";
+        sha512 = "QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==";
       };
     };
     "shebang-command-1.2.0" = {
@@ -9488,7 +9731,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz";
-        sha512 = "066cirpvgdn5ywf1lpad9wrzkbk19mdwm662mk09mhlsw16rigayybrp18jna89zbqw06v43nnpbxjzxcx0wsnxmikdfqk96vdnnz4h";
+        sha512 = "kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==";
       };
     };
     "shebang-regex-1.0.0" = {
@@ -9506,7 +9749,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz";
-        sha512 = "3a1nivszhfclgwknyblqnd1nis1i1g3v571pbrhrf2dhpdbnkliswcw10s9k883cnxk01xd2z26x0s7qg0annp0vvwpvisw3cb9vvzg";
+        sha512 = "7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==";
       };
     };
     "shell-quote-1.6.1" = {
@@ -9524,7 +9767,7 @@ let
       version = "3.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz";
-        sha512 = "26893dbicabdw7f4klf18aiw4r88b8ndc9rchbpsaxb3ibvkk37gkffghac7g62clqkhk7szyfwnfxcsfs23wcjq6qm6lxwa3s7hhjm";
+        sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==";
       };
     };
     "simple-swizzle-0.2.2" = {
@@ -9551,7 +9794,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz";
-        sha512 = "3sbrc1b1qf9m7lhlljmnc51k9bl7jbc9zfmdc4z55iafsck65d9ll77bifknvgvgbc0f0a7cvm1b785ab5d1avm27lm7kvnd3fs30k5";
+        sha512 = "ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==";
       };
     };
     "slash-3.0.0" = {
@@ -9560,7 +9803,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz";
-        sha512 = "3cj4cvlh36f0h6f3dslbkwa3y9nnny8qmwbf4kw3xy8vfbg5mypknds3j2cdhf7xg82hm8smdl8cq88xn4nyw1b9677xjwvly2kbm43";
+        sha512 = "g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==";
       };
     };
     "slice-ansi-2.1.0" = {
@@ -9569,7 +9812,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz";
-        sha512 = "2hri697iq2zbwfqga7889i00ry55xb9zj48wf292qn7wk0dyl2ymd1bjph6a79glqyhj4lajd4fyhmxmqdhnpxd55fvjq1hf45rbvs2";
+        sha512 = "Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==";
       };
     };
     "snapdragon-0.8.2" = {
@@ -9578,7 +9821,7 @@ let
       version = "0.8.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz";
-        sha512 = "2b0sap2q0c6qbfkw6znql845b143frn5gkkz4gpirjhgwa2j3wy3jsvrfg51s5c1w1m4nkgis97x9yvmzsc533kap9j3h3zcffqxp0n";
+        sha512 = "FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==";
       };
     };
     "snapdragon-node-2.1.1" = {
@@ -9587,7 +9830,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
-        sha512 = "2gk18pdld8ij1bpa2mdwl8f7i4rl5d4ys3qw31hipj56wslnsfhp1vxp3q36kj1m4f34wzzlvj0282qx5xlflqf978xyqlc2viyaviv";
+        sha512 = "O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==";
       };
     };
     "snapdragon-util-3.0.1" = {
@@ -9596,16 +9839,16 @@ let
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
-        sha512 = "1jsaqma4ycl2iq0761i1w7758z1kq7gbsij4xfb7p5cnw0qa62pszv6pr3j856n3pbxww7wwxs5wvcg2cb6vy020kw3bchashqs9clr";
+        sha512 = "mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==";
       };
     };
-    "sockjs-0.3.19" = {
+    "sockjs-0.3.20" = {
       name = "sockjs";
       packageName = "sockjs";
-      version = "0.3.19";
+      version = "0.3.20";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz";
-        sha512 = "0pn77r3rgi2blxla6ilhf4madx8n0cprzb295mw5knx2hyhiwn60z8n8n8clsb1l0wddcrjj5x4rn24ydf2wnxbrn63xwb5lsa293sp";
+        url = "https://registry.npmjs.org/sockjs/-/sockjs-0.3.20.tgz";
+        sha512 = "SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA==";
       };
     };
     "sockjs-client-1.1.5" = {
@@ -9623,16 +9866,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz";
-        sha512 = "3pa683q7x6az2iwmd2bh0d2zwdkgklkfi4vpkwnxw4b49mgfdjkal83i9lzxlz6f6sqybyvb0mlyw0mmg9mdd76fawvi7izxz48ndp7";
-      };
-    };
-    "sort-keys-2.0.0" = {
-      name = "sort-keys";
-      packageName = "sort-keys";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz";
-        sha1 = "658535584861ec97d730d6cf41822e1f56684128";
+        sha512 = "5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==";
       };
     };
     "source-list-map-2.0.1" = {
@@ -9641,7 +9875,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz";
-        sha512 = "0izwdwncwz4s14qn5ahkb2mpcdpxq2arn5185dlhljns4nylsw2xfm425zi115ik4kz1vfa97qyix3vf3i149dyi1ndq61iaf0knx5a";
+        sha512 = "qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==";
       };
     };
     "source-map-0.5.7" = {
@@ -9659,7 +9893,16 @@ let
       version = "0.6.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
-        sha512 = "3p7hw8p69ikj5mwapmqkacsjnbvdfk5ylyamjg9x5izkl717xvzj0vk3fnmx1n4pf54h5rs7r8ig5kk4jv4ycqqj0hv75cnx6k1lf2j";
+        sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
+      };
+    };
+    "source-map-0.7.3" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz";
+        sha512 = "CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==";
       };
     };
     "source-map-resolve-0.5.3" = {
@@ -9668,16 +9911,16 @@ let
       version = "0.5.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
-        sha512 = "2gq1flmkac2lzw8rs6vpch0sanmv8r9gv6bggwkgxzj3n7gw33lbqzk7nk9vvsckdjjkm132jzbl3nxc69cf9bb7xz4wnhpgd3gxp0y";
+        sha512 = "Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==";
       };
     };
-    "source-map-support-0.5.16" = {
+    "source-map-support-0.5.19" = {
       name = "source-map-support";
       packageName = "source-map-support";
-      version = "0.5.16";
+      version = "0.5.19";
       src = fetchurl {
-        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz";
-        sha512 = "1ayqxcigra517ylxbrvri7jlw55cv0m6a8j9j6060c5xsh519ip69jjp4jk6bqcj5ra5y318k6la6lfhpsj0k8hhkyw1szbj128pz3r";
+        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz";
+        sha512 = "Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==";
       };
     };
     "source-map-url-0.4.0" = {
@@ -9689,31 +9932,31 @@ let
         sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
       };
     };
-    "spdx-correct-3.1.0" = {
+    "spdx-correct-3.1.1" = {
       name = "spdx-correct";
       packageName = "spdx-correct";
-      version = "3.1.0";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz";
-        sha512 = "3qslnh3c2x2g8lar94rladm2rz692d5ds1bp1cpl223jf67jnazl9ipy4n17n7vqvgwimij36gz740nfqr5pyxq8x6n02rd4xj89gcn";
+        url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz";
+        sha512 = "cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==";
       };
     };
-    "spdx-exceptions-2.2.0" = {
+    "spdx-exceptions-2.3.0" = {
       name = "spdx-exceptions";
       packageName = "spdx-exceptions";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz";
-        sha512 = "12c442riig2hk7014ahh40chwirmmsl9dr4cnm2dr2bdbv1lnal8xxwsfx403pqkx7ib06gm2hyyd98kn30kxanjm92yai5y44h0x6r";
+        url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz";
+        sha512 = "/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==";
       };
     };
-    "spdx-expression-parse-3.0.0" = {
+    "spdx-expression-parse-3.0.1" = {
       name = "spdx-expression-parse";
       packageName = "spdx-expression-parse";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
-        sha512 = "351djgqvsgqmfg6h764c2k09dmixczw5073jirm8km6i1yym4xjrzc7g5ckwkidi3gls7s910m4ahl8sh37dsb478j8j3sigbfq63k2";
+        url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz";
+        sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==";
       };
     };
     "spdx-license-ids-3.0.5" = {
@@ -9722,7 +9965,7 @@ let
       version = "3.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz";
-        sha512 = "3sk6sk6r05ikn5qslbh04h54mv4a34wn4d76s800h94padnjydfvvq73ij6jh81yrigspyr50ay878jjwpj2mcq38br371jkb6mdq97";
+        sha512 = "J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==";
       };
     };
     "spdy-4.0.2" = {
@@ -9731,7 +9974,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz";
-        sha512 = "2h06dvjrd0vv66jpc6cnrkvbvihcfvr325dkpbif6kxnvn8zvgpvgj748whffn0sc0lk87yd8l8k6k595fvwbc2ysjy4msh0rjs13mg";
+        sha512 = "r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==";
       };
     };
     "spdy-transport-3.0.0" = {
@@ -9740,7 +9983,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz";
-        sha512 = "1rha3zyhardm434kr4h4y44wxpd49hqzzxqk1d9lqg91bkzfbp6qkh9nahdkkmpgbkc5021x8c8cy1aqnaph5ib1a9hx32j9qadbhl6";
+        sha512 = "hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==";
       };
     };
     "split-1.0.1" = {
@@ -9749,7 +9992,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/split/-/split-1.0.1.tgz";
-        sha512 = "2916kdi862ik0dlvr2wf2kvzmw8i8wk5spbr9wpdcksrkhrl3m0082jj1q4mqzvv50mlah5s4vcy6k18nacbj09kxbzp2pbysh8wg4r";
+        sha512 = "mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==";
       };
     };
     "split-string-3.1.0" = {
@@ -9758,7 +10001,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz";
-        sha512 = "25ih1dx2qb3lawqjxj85znd4l3x8nnigrcdlpfw8064gh2mwxic9bgg5ylgxm9gjl3v8dmyc47rycp8xvqz78jqalg0g9yqj225acrp";
+        sha512 = "NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==";
       };
     };
     "sprintf-js-1.0.3" = {
@@ -9776,7 +10019,7 @@ let
       version = "1.16.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz";
-        sha512 = "0i4jnrxh6i17qij2vfki7qxmk435cnacvg363qg0hya5incfj57akgbas8zcx2cl5pds9jfgfyhqm8wlqz6damsg059gymv99aylx8x";
+        sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==";
       };
     };
     "ssri-5.3.0" = {
@@ -9785,7 +10028,7 @@ let
       version = "5.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz";
-        sha512 = "00qc3iqsi21cc2az3nz36q88psab4ickpzranndk6vmrb6yhn5xsq3kgp21x3lp0406bdaalpb59xy7zzqnl40ans69v3z2l8z8h52x";
+        sha512 = "XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==";
       };
     };
     "ssri-6.0.1" = {
@@ -9794,7 +10037,7 @@ let
       version = "6.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz";
-        sha512 = "107yg08ib4232ppannc6fw8ml8p1fssnvcf88cpq3s5ybq3r5ppxnmc32rp40i0ppbgxcw9q04d5rc90if0q3xyp953swad93biws6x";
+        sha512 = "3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==";
       };
     };
     "stable-0.1.8" = {
@@ -9803,7 +10046,7 @@ let
       version = "0.1.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz";
-        sha512 = "3mw0cg71gcp6hfg3x0snaxcva4yqnifs11vbs3ba4agmcz8njmz70ndk5d8z97441jdvjhvb8aq8r44ngd8z4iw5hpgfmff372nlbwf";
+        sha512 = "ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==";
       };
     };
     "stack-trace-0.0.10" = {
@@ -9830,7 +10073,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz";
-        sha512 = "1xxwqpj713rq1idbmp7mj7cj9dl52lazgpd5x8a9g88jawbkn9xpwbgljl7cvnd0jqkll2zpdj5xy63dlis9l2k8vmx1n1gvyv8456f";
+        sha512 = "zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==";
       };
     };
     "statuses-1.5.0" = {
@@ -9857,7 +10100,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz";
-        sha512 = "2mfvadpwj9mzxps4arl1frxlkz96hfp0sc5pvq76s0ijf8fgw26mm3a721zq3iz1f8155w3a41wkixbdlwn1cavv0mzics796da2zlx";
+        sha512 = "nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==";
       };
     };
     "stream-each-1.2.3" = {
@@ -9866,7 +10109,7 @@ let
       version = "1.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz";
-        sha512 = "0pxki70s41jg18b738qvcwxlcakp6658ksicxkcgg8wp9q97fwp3mv13c5k38k47vxkyyk951k7gzavs3r7b93ackdyznh8zzch4lxy";
+        sha512 = "vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==";
       };
     };
     "stream-http-2.8.3" = {
@@ -9875,7 +10118,7 @@ let
       version = "2.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz";
-        sha512 = "19y2xbs1xzzpjwfdczl21d0d76ahd7013cr3mhfa6a8nbwwv9jpncng8idf0g8hnmnq2mcl3xh912rjlasl06wsz44qw3j7hdya8d7r";
+        sha512 = "+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==";
       };
     };
     "stream-shift-1.0.1" = {
@@ -9884,25 +10127,16 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz";
-        sha512 = "1ai59bc5x8d6a1c37fp2d2gi6q7x6fhza2jsf1sblrdvbza8j14a4xnp20lg65b8lzm0s95m3pqizblbj6ks44qf73gdllhbahaqa02";
+        sha512 = "AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==";
       };
     };
-    "strict-uri-encode-1.1.0" = {
-      name = "strict-uri-encode";
-      packageName = "strict-uri-encode";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz";
-        sha1 = "279b225df1d582b1f54e65addd4352e18faa0713";
-      };
-    };
-    "string-replace-loader-2.2.0" = {
+    "string-replace-loader-2.3.0" = {
       name = "string-replace-loader";
       packageName = "string-replace-loader";
-      version = "2.2.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string-replace-loader/-/string-replace-loader-2.2.0.tgz";
-        sha512 = "134pqnxfq8nmn7k4q06xwvd01cw8009gzr8nlmh071l1qcnvf1cg2km2r3z3rx5ahdw0mvjpls45wlwn3wdzb8v0nfmbi9y5xj7hjsj";
+        url = "https://registry.npmjs.org/string-replace-loader/-/string-replace-loader-2.3.0.tgz";
+        sha512 = "HYBIHStViMKLZC/Lehxy42OuwsBaPzX/LjcF5mkJlE2SnHXmW6SW6eiHABTXnY8ZCm/REbdJ8qnA0ptmIzN0Ng==";
       };
     };
     "string-width-1.0.2" = {
@@ -9920,7 +10154,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz";
-        sha512 = "29s1fqgr4mnhfxwczgdghfmmc1f792m9hysvcjxw2h5lfj8ndf2b6gm02m96qk5m75g4aisijvng4pk618anwbr8i9ay2jyszkqgslw";
+        sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==";
       };
     };
     "string-width-3.1.0" = {
@@ -9929,7 +10163,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz";
-        sha512 = "3bix3jva53vcp1im3aa1y2v1lywkm7ix81gkwkj4915s2675pmw1c9n5x98q1m985hzgwkk1fnc2q78qz7s0fixhf994md3lazxr9xx";
+        sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
       };
     };
     "string-width-4.2.0" = {
@@ -9938,43 +10172,25 @@ let
       version = "4.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz";
-        sha512 = "1xbbkr5nbg13x7hdllv0fd9a9b15b6ddzi41aswxpil3rd3yvjclpyk12p7wman4s8dqrvavgfmamdq764c089k1rpap0md7wjgjk6d";
+        sha512 = "zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==";
       };
     };
-    "string.prototype.trimend-1.0.0" = {
+    "string.prototype.trimend-1.0.1" = {
       name = "string.prototype.trimend";
       packageName = "string.prototype.trimend";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.0.tgz";
-        sha512 = "181zx0q2zkix0hnlhji6z79wdzp5vzp992c1bv2h0gxmcmmyxy19xj184fjvljlncnic3mhv95vn559s8iwcljfhg4dgi5zlqd6fhhh";
-      };
-    };
-    "string.prototype.trimleft-2.1.2" = {
-      name = "string.prototype.trimleft";
-      packageName = "string.prototype.trimleft";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz";
-        sha512 = "15qfz59cpsj9svgvcs24q6h47jfy5zfhg7dy3b8ik3nvf97vhvijy8d51vrprx4z0vfyscg7i2xv9qs960h1pvnmzm1n95m6svk8840";
-      };
-    };
-    "string.prototype.trimright-2.1.2" = {
-      name = "string.prototype.trimright";
-      packageName = "string.prototype.trimright";
-      version = "2.1.2";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz";
-        sha512 = "0b5kvxgqr55r745bccsjz35w9galqf42rm3lf5f4p2i21c4yq5l0fz0s03z4gq1d7yi52i3x6n8fa1n3fhlplc8d49vlaipqvp51m34";
+        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz";
+        sha512 = "LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==";
       };
     };
-    "string.prototype.trimstart-1.0.0" = {
+    "string.prototype.trimstart-1.0.1" = {
       name = "string.prototype.trimstart";
       packageName = "string.prototype.trimstart";
-      version = "1.0.0";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.0.tgz";
-        sha512 = "3ir4q4zbjch2mkkxdn1xq5xb939s03n958b47bs6gkkds4dhljw6w4529vml982kdrf0iiyib54nrnxviaipw790ji8h5ad9n1zq8w8";
+        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz";
+        sha512 = "XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==";
       };
     };
     "string_decoder-0.10.31" = {
@@ -9992,7 +10208,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
-        sha512 = "315yd4vzwrwk3vwj1klf46y1cj2jbvf88066y2rnwhksb98phj46jkxixbwsp3h607w7czy7cby522s7sx8mvspdpdm3s72y2ga3x4z";
+        sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
       };
     };
     "stringify-object-3.3.0" = {
@@ -10001,7 +10217,7 @@ let
       version = "3.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz";
-        sha512 = "2pk4j3smpmlm6jkpqqaqwh2jks1hmg5rfk9kqd9msxm5dh5zlf5c2j0m2khy8iajf65f9zr13zy03yi10pj1jv3yn8a15jy3lba4ymc";
+        sha512 = "rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==";
       };
     };
     "strip-ansi-3.0.1" = {
@@ -10028,7 +10244,7 @@ let
       version = "5.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz";
-        sha512 = "1cf4mpsr46nik5xxyb9wc4cz6c4yymi2ijpfx1nghnkl39l8pgq1sc7q19jzrjkwpn9i7hwg4q3rs4ny3vssrc6506an1lv0bb6rr0f";
+        sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
       };
     };
     "strip-ansi-6.0.0" = {
@@ -10037,7 +10253,7 @@ let
       version = "6.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz";
-        sha512 = "3mjvs0jv5m5npyr79f0br9kc7nr52ghv6p8gnkmm25adgr0psxalfzlanvzbnqfn87jf6vspvbx2r30px94fnyb446xch6zni7cmsq2";
+        sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
       };
     };
     "strip-bom-2.0.0" = {
@@ -10055,7 +10271,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz";
-        sha512 = "0bln256gbzpmrbc1hg4pwkfh9vwncdzgdr6h3bhkmilz5syb1rlsk9rvc6kjqbh6rfhvqv7jwdnppsfdnpdg58444r1mviqaxm7pgwh";
+        sha512 = "kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==";
       };
     };
     "strip-eof-1.0.0" = {
@@ -10073,7 +10289,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz";
-        sha512 = "264panbfx7nxdqgcsb6x1gk226kifd6zpksjmdbjp2xsjirbr91gkcj51ssy2j225n8vd1rjj6wlf4vdqaxyrdrmcpxgp84s1y6zfh6";
+        sha512 = "BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==";
       };
     };
     "strip-json-comments-2.0.1" = {
@@ -10085,13 +10301,13 @@ let
         sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
       };
     };
-    "style-loader-0.21.0" = {
+    "style-loader-0.23.1" = {
       name = "style-loader";
       packageName = "style-loader";
-      version = "0.21.0";
+      version = "0.23.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/style-loader/-/style-loader-0.21.0.tgz";
-        sha512 = "33b6cg091mx8mgafvf8d1815mc55w3rqk0527z2l536z5ipprjwkdpm62qyi71snx625y2kqpr6nqfvvmdv7jn30qz8ip950yq0vrag";
+        url = "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz";
+        sha512 = "XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==";
       };
     };
     "stylehacks-4.0.3" = {
@@ -10100,7 +10316,7 @@ let
       version = "4.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz";
-        sha512 = "3zfkv97pqkc0k51zsjb6dbyhs1lnf05c4vik7klpyzv7chdqqc49038hlm4rpskfy4nhmpjaib22qqzkfwzx6lfw5c4k53hsa9lnsgc";
+        sha512 = "7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==";
       };
     };
     "sums-0.2.4" = {
@@ -10127,7 +10343,7 @@ let
       version = "5.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
-        sha512 = "2ihqi2z38fr1sq2jvwqgjqymncmkhxqz0x3bi97w4b4fn24wsdy71j139p95sb3nfrh3a449n0sqhm1z0jsi04860y8vdy8sp0n6da2";
+        sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
       };
     };
     "supports-color-6.1.0" = {
@@ -10136,7 +10352,7 @@ let
       version = "6.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz";
-        sha512 = "30pwyjmww4d54bf2m6lpw20ly4blhb88sy3gn6qcjih2rfq1s5zsl1nszzwgj2j1gqn3c8mw52df0z26rqyk8flzimb70scdmz67vd9";
+        sha512 = "qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==";
       };
     };
     "supports-color-7.1.0" = {
@@ -10145,7 +10361,16 @@ let
       version = "7.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz";
-        sha512 = "3k12babask2rk5v9n9wdgng00rqac2w5wwvkawlx3brjpqvfpy4j70650ggw5pa7bm5hnn1ppsppsqrcwrvjsk1mxb3vi993yjqh551";
+        sha512 = "oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==";
+      };
+    };
+    "supports-color-7.2.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
+        sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
       };
     };
     "svgo-1.3.2" = {
@@ -10154,7 +10379,7 @@ let
       version = "1.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz";
-        sha512 = "1biic6k5zbjbibabxnqg6cs0hz8vb69zb4kjgwh6nwxqigx23m7gaggva58cpqp7z2a403q9n1sqlfm6yx660nz1dj90iri0sqvy76a";
+        sha512 = "yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==";
       };
     };
     "table-5.4.6" = {
@@ -10163,7 +10388,7 @@ let
       version = "5.4.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/table/-/table-5.4.6.tgz";
-        sha512 = "19b85vbk5rflp8b200akryyzrk92yj7v2pk64mmvy3y00x7ibfcbiqwmba2q14h9rvfsj9bxvmvyfxma4hswy8bw8dpm3hzdvr1qqf2";
+        sha512 = "wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==";
       };
     };
     "tapable-1.1.3" = {
@@ -10172,7 +10397,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz";
-        sha512 = "283f6rp3hhj0lvi5smcvh4mq56mifjchgv6qlnr4qb1xs2fsyb2vy71b308h1285nngcz8q7cbmjp8qqzh0im71mx5wr3v6hrnvyqp1";
+        sha512 = "4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==";
       };
     };
     "tar-4.4.13" = {
@@ -10181,7 +10406,7 @@ let
       version = "4.4.13";
       src = fetchurl {
         url = "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz";
-        sha512 = "10gwhmgx7fh619zv48r2lnm42qr7rw4qa9ph7142rizcn8in9dpi49jbmmv8ism60rcg1a7b4103r598jngi1rcn50sw7b8n1570rf3";
+        sha512 = "w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==";
       };
     };
     "temp-0.9.0" = {
@@ -10190,7 +10415,7 @@ let
       version = "0.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/temp/-/temp-0.9.0.tgz";
-        sha512 = "36zr3d39z8wdb7v4z9inkii3cd1qsc49bf8z2s4ic671dlf2aab95w9z1lg9fivbvwd9cbpghxvfgiz3l3jb1fzwh2d984900yj3xb1";
+        sha512 = "YfUhPQCJoNQE5N+FJQcdPz63O3x3sdT4Xju69Gj4iZe0lBKOtnAMi0SLj9xKhGkcGhsxThvTJ/usxtFPo438zQ==";
       };
     };
     "temp-0.9.1" = {
@@ -10199,25 +10424,25 @@ let
       version = "0.9.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/temp/-/temp-0.9.1.tgz";
-        sha512 = "1w4xzn45b7a3qd9vvwfc80ah8xnbvdw8ng5jfhkdivs7kxc1wyjvlf6zza2wgkf3s7av5izd1bfjazahx3i79cy8zwidmws5f18xjsq";
+        sha512 = "WMuOgiua1xb5R56lE0eH6ivpVmg/lq2OHm4+LtT/xtEtPQ+sz6N3bBM6WZ5FvO1lO4IKIOb43qnhoc4qxP5OeA==";
       };
     };
-    "terser-4.6.10" = {
+    "terser-4.8.0" = {
       name = "terser";
       packageName = "terser";
-      version = "4.6.10";
+      version = "4.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser/-/terser-4.6.10.tgz";
-        sha512 = "16fv61l1ffv807q775lmwr3bffdh60399bcz3jgm32n4g607madq6pk3vhv2kfisgz4lvivihpvxbixl5nsmv66hbh53mx88gfpzcd9";
+        url = "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz";
+        sha512 = "EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==";
       };
     };
-    "terser-webpack-plugin-1.4.3" = {
+    "terser-webpack-plugin-1.4.5" = {
       name = "terser-webpack-plugin";
       packageName = "terser-webpack-plugin";
-      version = "1.4.3";
+      version = "1.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz";
-        sha512 = "2n44cgqgz070skn207m3l6zg3q444p1db54g0j87fcjxwyhmlfvgg3kak5v1ffhg765cdxah1l99kjdcy74mc75nlq7907zbiq5xk20";
+        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz";
+        sha512 = "04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==";
       };
     };
     "text-table-0.2.0" = {
@@ -10253,7 +10478,7 @@ let
       version = "2.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz";
-        sha512 = "14xi6lbly1f37015ny2pzcnf5kaksjmpnhm61gfhwn686w5ac519qb1icxdda974n84f342g0y15kysj1hci2vl40z91aiivyhx2spy";
+        sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==";
       };
     };
     "thunky-1.1.0" = {
@@ -10262,16 +10487,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz";
-        sha512 = "2n8ys98dmv1625inb52cdr421ry82ri2sninmss1njzy9hxrlblw3fkvgr3na4d69glygww3g80bj4pgr9ik1zcm10ki0gd2yf3nxkq";
-      };
-    };
-    "timed-out-4.0.1" = {
-      name = "timed-out";
-      packageName = "timed-out";
-      version = "4.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz";
-        sha1 = "f32eacac5a175bea25d7fab565ab3ed8741ef56f";
+        sha512 = "eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==";
       };
     };
     "timers-browserify-2.0.11" = {
@@ -10280,7 +10496,7 @@ let
       version = "2.0.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz";
-        sha512 = "0lrwqck7qvpvxswx5kmydj9nmn2rwckzzfpdf5mf869fqrs9girj45i80hdv99b81m4g8fgwqx2lqk04k7zars7rldq3r89r3m9aipb";
+        sha512 = "60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==";
       };
     };
     "timsort-0.3.0" = {
@@ -10307,7 +10523,7 @@ let
       version = "0.0.33";
       src = fetchurl {
         url = "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz";
-        sha512 = "0drg2bck1cj8677rgs1l98v7vqaxawcqh6ja87qilwnd719l5y0lzv5ssn3pcwa37fdbg4188y6x15a90vkllyvfpd9v7fai2b8j44d";
+        sha512 = "jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==";
       };
     };
     "tmp-0.1.0" = {
@@ -10316,16 +10532,7 @@ let
       version = "0.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz";
-        sha512 = "0mygbkw1yiz5b0mvdivsmwfaw12w70fjvgd3mn2wny7ggrx69swy5kj11xm3llrv98slhjx9d7pmcd8aa94492r0cfnfv139wmpddi7";
-      };
-    };
-    "tmpl-1.0.4" = {
-      name = "tmpl";
-      packageName = "tmpl";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz";
-        sha1 = "23640dd7b42d00433911140820e5cf440e521dd1";
+        sha512 = "J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==";
       };
     };
     "to-arraybuffer-1.0.1" = {
@@ -10355,13 +10562,22 @@ let
         sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
       };
     };
+    "to-readable-stream-1.0.0" = {
+      name = "to-readable-stream";
+      packageName = "to-readable-stream";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz";
+        sha512 = "Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==";
+      };
+    };
     "to-readable-stream-2.1.0" = {
       name = "to-readable-stream";
       packageName = "to-readable-stream";
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-2.1.0.tgz";
-        sha512 = "3pw9wwllhic73ya7g935mwmw4lrjwxf0vxxngs5iqbwlasxbrv506bas7sqqfmmmf7p9lx0g907ihysaxivv78ln8bj3m5067l1lx53";
+        sha512 = "o3Qa6DGg1CEXshSdvWNX2sN4QHqg03SPq7U6jPXRahlQdl5dK8oXjkU/2/sGrnOZKeGV1zLSO8qPwyKklPPE7w==";
       };
     };
     "to-regex-3.0.2" = {
@@ -10370,7 +10586,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz";
-        sha512 = "03lcq1y1ks55lss37m3cx52f8f4wj85rqsxfxrhi3y8rqa0iiny6df8ardg2f742z870v7xw749lcsxh8yplsmbvaig4rrds1w6asqm";
+        sha512 = "FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==";
       };
     };
     "to-regex-range-2.1.1" = {
@@ -10388,7 +10604,7 @@ let
       version = "5.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz";
-        sha512 = "2qkrna8q80arai14s6f17djc3cgwiilnhibfykwzkif4gs9ny3fmqmxqf56fvc7fjwyr01p97nk1ckd67s8476cslmj3rwp7s5zp4zb";
+        sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==";
       };
     };
     "toidentifier-1.0.0" = {
@@ -10397,7 +10613,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz";
-        sha512 = "1bip1yxcfy4c0yl2kwmj9jyzfg1ixyj564wd1aaf46rabdiasx62yznb8bwn9cki886f353axgca42zma7q9rb4b50lhm1zz7y8g8y9";
+        sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
       };
     };
     "touch-3.1.0" = {
@@ -10406,7 +10622,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz";
-        sha512 = "2a3sk3562y1ihbl06r5g1pzs37mwhhnz8f8vvcc0k8bhykczzgv9dyw71kkz4mbf81iq7wbf2nq7hpy6z6zhanj8s9d6bjk5r9pq72q";
+        sha512 = "WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==";
       };
     };
     "tough-cookie-2.4.3" = {
@@ -10415,7 +10631,7 @@ let
       version = "2.4.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz";
-        sha512 = "2akhyixx49dkqadghzwj53xwfa1aikf0iv04ib9zj0kbilkzxxh16j5c6vfkcwm3cy29y46q3d8lzinsy6ql2cvb1wcw31gzs9jp6s3";
+        sha512 = "Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==";
       };
     };
     "tough-cookie-2.5.0" = {
@@ -10424,7 +10640,7 @@ let
       version = "2.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz";
-        sha512 = "3xgcny117pqhfncr4gbmagzlnjiqqgq0lrvmljdfcdy64nc0xjfcbf1r08dmp1v1m3s51kq0yxc18nl3j9lbpr5bp5lgmi6719yqlly";
+        sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==";
       };
     };
     "traverse-0.3.9" = {
@@ -10445,13 +10661,40 @@ let
         sha1 = "61dbc2d53b69ff6091a12a168fd7d433107e40f1";
       };
     };
-    "tslib-1.11.1" = {
+    "ts-jest-26.3.0" = {
+      name = "ts-jest";
+      packageName = "ts-jest";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ts-jest/-/ts-jest-26.3.0.tgz";
+        sha512 = "Jq2uKfx6bPd9+JDpZNMBJMdMQUC3sJ08acISj8NXlVgR2d5OqslEHOR2KHMgwymu8h50+lKIm0m0xj/ioYdW2Q==";
+      };
+    };
+    "ts-union-2.2.1" = {
+      name = "ts-union";
+      packageName = "ts-union";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ts-union/-/ts-union-2.2.1.tgz";
+        sha512 = "GLHuuu+N+n3mHY8/XzHUbuXf64Xy2nzYUa1/8rNCtkP6pD3mTiSM5OIyxV81ecT33S3i7lbVWdvCtyFmS8rplw==";
+      };
+    };
+    "tslib-1.13.0" = {
       name = "tslib";
       packageName = "tslib";
-      version = "1.11.1";
+      version = "1.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-1.11.1.tgz";
-        sha512 = "0c0k843zya7w9k5snfr3g76wz2vyl99q149safl5g364jjwq839h3qf8c17i8mahdcqc3zj3xgfv0nv9pcxfm8axva0d49w4vqvr5b9";
+        url = "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz";
+        sha512 = "i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==";
+      };
+    };
+    "tsyringe-4.3.0" = {
+      name = "tsyringe";
+      packageName = "tsyringe";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tsyringe/-/tsyringe-4.3.0.tgz";
+        sha512 = "Vzty1M/EQXSsEE8aoIOLl1l793chcPyQAnFJaS1mFDtFvNPY+jknSPwMIF6yfcjua+2GTgwxWFzuA3cjIx4NZA==";
       };
     };
     "tty-browserify-0.0.0" = {
@@ -10487,7 +10730,7 @@ let
       version = "0.10.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz";
-        sha512 = "25w8hvjk21iqndawz9h3713dmahzg2w3nf4ipfkgfnlhzk1jdlq2jadyd6lr1sgidbyxbp97mcgci1zw4qd6b0gjvqglz9cis77si8i";
+        sha512 = "EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==";
       };
     };
     "type-is-1.6.18" = {
@@ -10496,7 +10739,7 @@ let
       version = "1.6.18";
       src = fetchurl {
         url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz";
-        sha512 = "3r7402x79nilhdgk4z21yjh5y9vix8lwlll1kzcn8jd2m89vzksdb6wddia77cxv3iwhd6i5hkv6n7diwjbhpy7y03i2kqlvfplli2f";
+        sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
       };
     };
     "typedarray-0.0.6" = {
@@ -10508,13 +10751,22 @@ let
         sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
       };
     };
+    "typescript-3.9.7" = {
+      name = "typescript";
+      packageName = "typescript";
+      version = "3.9.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz";
+        sha512 = "BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==";
+      };
+    };
     "uglify-es-3.3.10" = {
       name = "uglify-es";
       packageName = "uglify-es";
       version = "3.3.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.10.tgz";
-        sha512 = "31s7k004qjdb42cavkpgszzvz9zm3aw2iv80k1hrykx202x9wb03451l58fhlba1spjgpdq96w7vm6rvavkcwrxj87aynxkq25czz5c";
+        sha512 = "rPzPisCzW68Okj1zNrfa2dR9uEm43SevDmpR6FChoZABFk9dANGnzzBMgHYUXI3609//63fnVkyQ1SQmAMyjww==";
       };
     };
     "uglifyjs-webpack-plugin-1.3.0" = {
@@ -10523,7 +10775,7 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.3.0.tgz";
-        sha512 = "21rq1kl3wanb1w9jp90w5m1anksk2rffnls8sk324lqwwvhyskh64443jm1ixdl5zjf6717khdp3xm23388yyzz1ximqch03mrciwd2";
+        sha512 = "ovHIch0AMlxjD/97j9AYovZxG5wnHOPkL7T1GKochBADp/Zwc44pEWNqpKl1Loupp1WhFg7SlYmHZRUfdAacgw==";
       };
     };
     "ultron-1.0.2" = {
@@ -10541,7 +10793,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz";
-        sha512 = "0x78hsv3jykmjl6qdqlqiz7v5nf06li8b5yvzpj6grnzwbcjch8ngyg55lm8g8mg4znvk7qbryvrr2dxacz3cvyb1nsm64qsw21g0ah";
+        sha512 = "UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==";
       };
     };
     "unicode-canonical-property-names-ecmascript-1.0.4" = {
@@ -10550,7 +10802,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz";
-        sha512 = "2frn6cxiqmhndpdcmrcd2590rx0b4bhn4pvqag2kgif3pqnw52622lpwd0jzz5a9h9jg03yb96m82zf8vvcfrrni43qlxw7fnfwsflc";
+        sha512 = "jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==";
       };
     };
     "unicode-match-property-ecmascript-1.0.4" = {
@@ -10559,7 +10811,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz";
-        sha512 = "2p78i127lk184hfbwyzd4xy6hrgg5gz8s3raf83pqx59rqk2dg339m7dnbi4pvysf7390jpnz84ds8ylwxdf3vynbnzjkbgbs3ji11g";
+        sha512 = "L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==";
       };
     };
     "unicode-match-property-value-ecmascript-1.2.0" = {
@@ -10568,7 +10820,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz";
-        sha512 = "0hxphkw10m0pz129gv1ngjcj5yaw6qk2zvdbx4yp5410lk15pnb7xs2s0gp469650zk66ydd8xp6kicia258vpx4s9gk88mchf90fy2";
+        sha512 = "wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==";
       };
     };
     "unicode-property-aliases-ecmascript-1.1.0" = {
@@ -10577,7 +10829,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz";
-        sha512 = "112w9mql1a57imkl581n0gx21pycfl0cdh5zsfmwxhmv4ipn7g8icjqlvqjsgi2vhahldq2i69qial99fa8ys4qv98fnng93wzai91y";
+        sha512 = "PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==";
       };
     };
     "union-value-1.0.1" = {
@@ -10586,7 +10838,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz";
-        sha512 = "1g7i0bs3sa35zpsrr2l3wsz4j6bqpxgm77kg2fdz89irzw6nrk6j93j61wr134mg9rbf039xa4pp1dw0iqfsv15rkf8jn8y2fdxg5xl";
+        sha512 = "tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==";
       };
     };
     "uniq-1.0.1" = {
@@ -10613,7 +10865,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz";
-        sha512 = "0sp2fs9gsv3l6mc9kdk09z835d54gw04x02dlz9q208mda3f6bmqd4vix4634kv9njvvxcz3iswcj6fwcmszvima7wpv5knia678sjn";
+        sha512 = "Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==";
       };
     };
     "unique-slug-2.0.2" = {
@@ -10622,7 +10874,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz";
-        sha512 = "3dz3f3rqwqssr86c072j9m8m7l98l20b3i75diqrq5l871d647jmdf7pjjml7l83iqvjnb2frz7h6xbs8rpx3rkvk1h5i6swvsap1ff";
+        sha512 = "zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==";
       };
     };
     "universalify-0.1.2" = {
@@ -10631,7 +10883,7 @@ let
       version = "0.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz";
-        sha512 = "29d9b6i7rf460m0c5761z6xzzjdl2q81ri19x5qcnvi9l85jp71f7lbr7bdk7sx3k3sqwcp9vfpmlh7srgfnzlmssr5j0lpj0imw4mc";
+        sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==";
       };
     };
     "unpipe-1.0.0" = {
@@ -10667,7 +10919,7 @@ let
       version = "0.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/unzip-stream/-/unzip-stream-0.3.0.tgz";
-        sha512 = "3j7r4r1rzgz3kisp8d5jk1sckr8f9jxz4ln29wfkl139a6p1qpr4s6cm9581fscqjwc71fqafd4584myll8z31arz3ps8a6qzy62v9l";
+        sha512 = "NG1h/MdGIX3HzyqMjyj1laBCmlPYhcO4xEy7gEqqzGiSLw7XqDQCnY4nYSn5XSaH8mQ6TFkaujrO8d/PIZN85A==";
       };
     };
     "upath-1.2.0" = {
@@ -10676,7 +10928,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz";
-        sha512 = "230pbhzxv0jr9n43qhghbsdbsp1rwalc3rclaqscwjaazi35s6vzw9p66s3ypk6yn3jgpmqflda2yh8j2rlypz9vihasfw5m6jhd739";
+        sha512 = "aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==";
       };
     };
     "upgrade-1.1.0" = {
@@ -10694,7 +10946,7 @@ let
       version = "4.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz";
-        sha512 = "2fz60s71ghl56ddfiiaws81xpiidlbjk69jyjmahz190d2advy9zdbcwh5if4rgg5hxdbfxhkwiipjrnjy8w834bxsmzambd2p4b3r9";
+        sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==";
       };
     };
     "urix-0.1.0" = {
@@ -10721,7 +10973,7 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/url-loader/-/url-loader-1.1.2.tgz";
-        sha512 = "27fp8dsaysmpx7yh2xnc15wngi1qk2n859q75hqjfxaskswh0hl5qxjz7mkk3hrz4v2lf516zfxw5xqd76lvb66pgm165iwdhmf8wbm";
+        sha512 = "dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg==";
       };
     };
     "url-parse-1.4.7" = {
@@ -10730,7 +10982,7 @@ let
       version = "1.4.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz";
-        sha512 = "2bdb8rqxq8xd530jx6q8awb1y9idrvd8cfznrlyc1h8j4ra1icxcssfg7qldhssj6dxvibkvx6rnn1ljkjbxi95l58dn1y35ibrlyvp";
+        sha512 = "d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==";
       };
     };
     "url-parse-lax-3.0.0" = {
@@ -10757,7 +11009,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/use/-/use-3.1.1.tgz";
-        sha512 = "2hzzynss1cv7kn1lf40hqk16qmbf38g7a28m27pcg05mg6vpf7sj0gy175fdscz534fxdi14622rmq3sdpib9c5ypjympjfg5ai40bk";
+        sha512 = "cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==";
       };
     };
     "util-0.10.3" = {
@@ -10775,7 +11027,7 @@ let
       version = "0.11.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/util/-/util-0.11.1.tgz";
-        sha512 = "0fpzl6qczbzr5jniy99vgfxz1k4gdfl13lwwhlfysj22rm18ikfici89wpgv34v67ckays1d500fgk2dlzw95zncn9jvkdygjr40a0x";
+        sha512 = "HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==";
       };
     };
     "util-deprecate-1.0.2" = {
@@ -10793,16 +11045,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz";
-        sha512 = "28cvjkydplc2vpnqff8vylscx8851srnkl54y6i54pl6lhpr6548plvyj833jk2mfaf8h31gbn60s00azd28rzc5q5gm1hgcc1smvlb";
-      };
-    };
-    "util.promisify-1.0.1" = {
-      name = "util.promisify";
-      packageName = "util.promisify";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz";
-        sha512 = "2n8sxd1qdzc7pn348ayx8jm13kvi9wyjkshzwy1fam3aiy8phv8lbikbli433qvnq3ndnqj8yhcf9dgavm2xv6cvzk7cyy7zl5nkll3";
+        sha512 = "i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==";
       };
     };
     "utila-0.4.0" = {
@@ -10838,7 +11081,7 @@ let
       version = "3.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
-        sha512 = "3y9pcli1v8nqryqd2c4pxj9kcv92mjc22z4smg08pdjzrbwda19xmjbzms1dwr04995h4carz9s8mldbiqb8708694lwr501r3q6d0y";
+        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
       };
     };
     "validate-npm-package-license-3.0.4" = {
@@ -10847,7 +11090,7 @@ let
       version = "3.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
-        sha512 = "09vn7gn5jp2c07pxplc11lvk7ybfaz0rp3qzflyiyhnahkfgh76bij31ll5rg01ranlmljrky2q25d1f6bbd0h23pzxxi5z93csd4hf";
+        sha512 = "DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==";
       };
     };
     "vary-1.1.2" = {
@@ -10865,7 +11108,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz";
-        sha512 = "3gn1qs4d8i7gd3qakdk95wn5a5sq2y2nw9zmm6v9fbxi31slyfj9b23m9w5m7qv7j73h936ln9z2i5nwg0kzf6bvar80bqkk7mqcfzy";
+        sha512 = "/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==";
       };
     };
     "verror-1.10.0" = {
@@ -10883,7 +11126,7 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz";
-        sha512 = "00japcjqx1df1bgck837ds0xvg5dr7g4j30a38zhbmanqss2kyxs4p7pgmldlnxpa31js50gydy8x9qi89s4x74iidf6k6nfgqsc5ns";
+        sha512 = "2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==";
       };
     };
     "vscode-jsonrpc-5.0.1" = {
@@ -10892,7 +11135,7 @@ let
       version = "5.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-5.0.1.tgz";
-        sha512 = "384pcmr3aa875r6s41lafcgwbkcahimsdw5933mnnzz2x233q8kl7g7k6lj7r3glmp83pwq338g3h8dmmmmfmbr34861p3hkcz8vwr6";
+        sha512 = "JvONPptw3GAQGXlVV2utDcHx0BiY34FupW/kI6mZ5x06ER5DdPG/tXWMVHjTNULF5uKPOUUD0SaXg5QaubJL0A==";
       };
     };
     "vscode-languageserver-6.1.1" = {
@@ -10901,7 +11144,7 @@ let
       version = "6.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-6.1.1.tgz";
-        sha512 = "06xr3d8zihlfb1rfblzhk4jxy9y8hk4b0yfib0hhnywknif9w3l483wv16msq0a7k44yiq5ynkhid79df1js30y9mbkx4008nk89rqf";
+        sha512 = "DueEpkUAkD5XTR4MLYNr6bQIp/UFR0/IPApgXU3YfCBCB08u2sm9hRCs6DxYZELkk++STPjpcjksR2H8qI3cDQ==";
       };
     };
     "vscode-languageserver-protocol-3.15.3" = {
@@ -10910,7 +11153,7 @@ let
       version = "3.15.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.15.3.tgz";
-        sha512 = "2zyg6f9vc3kac0sl30b3lh5zf92rj7aips62jc261j17214gix4zwa7rgaz20a5m43czchnsg7bdqqv95krbpr91miihhc0fg02xcyf";
+        sha512 = "zrMuwHOAQRhjDSnflWdJG+O2ztMWss8GqUUB8dXLR/FPenwkiBNkMIJJYfSN6sgskvsF0rHAoBowNQfbyZnnvw==";
       };
     };
     "vscode-languageserver-textdocument-1.0.1" = {
@@ -10919,7 +11162,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.1.tgz";
-        sha512 = "1s7rs7mqr3cnpja4fsm58kbni5m6b4qx3ijjavllllhs3gql0nw3pr84kncpmfwn4xzchg95cbzk36cfb9r04mpjcf5j87v6l70k1sh";
+        sha512 = "UIcJDjX7IFkck7cSkNNyzIz5FyvpQfY7sdzVy+wkKN/BLaD4DQ0ppXQrKePomCxTS7RrolK1I0pey0bG9eh8dA==";
       };
     };
     "vscode-languageserver-types-3.15.1" = {
@@ -10928,34 +11171,34 @@ let
       version = "3.15.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.15.1.tgz";
-        sha512 = "1jvind0f20qqmjc1lv1g4dwl0kd07ykb8x9fb6v80bazf3bvr4pn3ppv8rnmcaa1biqn8lfb3bkwm31kghx1dsf35mn8d1b8hylrbzr";
+        sha512 = "+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ==";
       };
     };
-    "vscode-uri-2.1.1" = {
+    "vscode-uri-2.1.2" = {
       name = "vscode-uri";
       packageName = "vscode-uri";
-      version = "2.1.1";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.1.tgz";
-        sha512 = "3s05w58p3l2hmv5dqj3ll07l9rvy06lcr9s3fnzvm27wa3anvnlk6v10w7zmwsafh11pzsgvm17pa29wyfaycagaky5g784dac673vr";
+        url = "https://registry.npmjs.org/vscode-uri/-/vscode-uri-2.1.2.tgz";
+        sha512 = "8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==";
       };
     };
-    "walker-1.0.7" = {
-      name = "walker";
-      packageName = "walker";
-      version = "1.0.7";
+    "watchpack-1.7.4" = {
+      name = "watchpack";
+      packageName = "watchpack";
+      version = "1.7.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz";
-        sha1 = "2f7f9b8fd10d677262b18a884e28d19618e028fb";
+        url = "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz";
+        sha512 = "aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==";
       };
     };
-    "watchpack-1.6.1" = {
-      name = "watchpack";
-      packageName = "watchpack";
-      version = "1.6.1";
+    "watchpack-chokidar2-2.0.0" = {
+      name = "watchpack-chokidar2";
+      packageName = "watchpack-chokidar2";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz";
-        sha512 = "1j6fr0rjlw663ssnc3z7bgv6621zrwj6qsza68h9rbpgy9nl205wp74iyrh62q3l46230qf8awnmdw77fi7vcm2747bcfh5yn2pv0gq";
+        url = "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz";
+        sha512 = "9TyfOyN/zLUbA288wZ8IsMZ+6cbzvsNyEzSBp6e/zkifi6xxbl8SmQ/CxQq32k8NNqrdVEVUVSEf56L4rQ/ZxA==";
       };
     };
     "wbuf-1.7.3" = {
@@ -10964,25 +11207,25 @@ let
       version = "1.7.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz";
-        sha512 = "066j9njgvk6mkjalv1zf1p8w9m2hrl97vz1iw8q6g9zlplhphz54j5j0ma0x9053zhczbyi3k1nr493vgnx1lk22hdwp2glg8x11kiv";
+        sha512 = "O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==";
       };
     };
-    "web-tree-sitter-0.16.2" = {
+    "web-tree-sitter-0.16.4" = {
       name = "web-tree-sitter";
       packageName = "web-tree-sitter";
-      version = "0.16.2";
+      version = "0.16.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.16.2.tgz";
-        sha512 = "2ik05lyzg1xzqrizpfbhxb3ix62zmhs505q85828555saxpwlpffgqig00lm67myj4f24p1qsn42cc2sdms0gk18s0d08i7xsm4f5mz";
+        url = "https://registry.npmjs.org/web-tree-sitter/-/web-tree-sitter-0.16.4.tgz";
+        sha512 = "n1CfuJcJ+dynIx/fmavB6haPx37N3GZvY5HIGIselymDiSwNRC+8pAxOzoB4eVwUBJnbP3+aA8vWttrAZbgs7A==";
       };
     };
-    "webpack-4.42.1" = {
+    "webpack-4.43.0" = {
       name = "webpack";
       packageName = "webpack";
-      version = "4.42.1";
+      version = "4.43.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack/-/webpack-4.42.1.tgz";
-        sha512 = "13b4jgmj0vf8qa13n1cddqaqk28qd1kmfhxqa5gj5sfvhmjjlgkl8rwqjsw4lydilpz39p2m506j91bgm91988if93gf49a50rdhrs8";
+        url = "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz";
+        sha512 = "GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==";
       };
     };
     "webpack-dev-middleware-3.7.2" = {
@@ -10991,16 +11234,16 @@ let
       version = "3.7.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz";
-        sha512 = "27qjisacr2wrfj7r3z5hh2x7nrhadc27vg4kcalrdc7rrn8gnnlk64zf1pqmlkffy8klh8r0dr259v1sf6fjm886j5qlqjvpkcbh46p";
+        sha512 = "1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==";
       };
     };
-    "webpack-dev-server-3.10.3" = {
+    "webpack-dev-server-3.11.0" = {
       name = "webpack-dev-server";
       packageName = "webpack-dev-server";
-      version = "3.10.3";
+      version = "3.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz";
-        sha512 = "1wl6ahwwfvm7620d70by2abmqgvw54mdhr8bxhdnnsvjzincy83rg80vffb1vwm2cvxwdc9qpp7ipq8bqrkf773fi6lbk0qzxxdd2bv";
+        url = "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz";
+        sha512 = "PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==";
       };
     };
     "webpack-log-2.0.0" = {
@@ -11009,7 +11252,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz";
-        sha512 = "191qr8nb4rszy53q0ydqfxr1pirimc3k3bi7mhgin5f15cd7vd28maxanyb248kdivmajhji580fv3a1i584icz3cc9bwvzykd0czvi";
+        sha512 = "cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==";
       };
     };
     "webpack-manifest-plugin-2.2.0" = {
@@ -11018,7 +11261,7 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz";
-        sha512 = "00w35bc3s8hks7621pdrh0396c091yd4kf58y3yw4vldi861kw2m6vwgjfqa4bk4msgaj6d5ndxal1df9a37wpaznrz71walb49hbpm";
+        sha512 = "9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ==";
       };
     };
     "webpack-sources-1.4.3" = {
@@ -11027,34 +11270,43 @@ let
       version = "1.4.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz";
-        sha512 = "1wn7ixcv4b15kj3jn4c08n3pgrrd2kgzm2llh9viqx6a6k3j6rqzd5iksxdkalzaz6iic1q4fjj6wr9wfa07llf5a751mkgg3fx414n";
+        sha512 = "lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==";
       };
     };
-    "websocket-driver-0.7.3" = {
+    "websocket-driver-0.6.5" = {
       name = "websocket-driver";
       packageName = "websocket-driver";
-      version = "0.7.3";
+      version = "0.6.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz";
-        sha512 = "0b5m603phj37lw5vb70ijc77g29cz7vn1w1bs7rhkx1ax3gil0wys841m14gnm3p95lc630hs370dngh68p7aaq69yqw1yvysb5d73f";
+        url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz";
+        sha1 = "5cb2556ceb85f4373c6d8238aa691c8454e13a36";
       };
     };
-    "websocket-extensions-0.1.3" = {
+    "websocket-driver-0.7.4" = {
+      name = "websocket-driver";
+      packageName = "websocket-driver";
+      version = "0.7.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz";
+        sha512 = "b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==";
+      };
+    };
+    "websocket-extensions-0.1.4" = {
       name = "websocket-extensions";
       packageName = "websocket-extensions";
-      version = "0.1.3";
+      version = "0.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz";
-        sha512 = "0d1n4yv45ibxf72hj7qka3j7v53dwn58savfiyvsppqhhrgg3g648ykk5v7fpb53hz85kj87m4f45r7d5iazx4yqgs381z6qnfd98cy";
+        url = "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz";
+        sha512 = "OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==";
       };
     };
-    "whatwg-fetch-2.0.4" = {
+    "whatwg-fetch-3.0.0" = {
       name = "whatwg-fetch";
       packageName = "whatwg-fetch";
-      version = "2.0.4";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz";
-        sha512 = "2g4p2ymmww4wm7cf86xwpb0dndwlxk1gg3brsrj892a4z593h25hyhqv0rmv4hzz4zxv3smmaflsnhilakfpr6y8f2gf3sfd8ckbi3m";
+        url = "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz";
+        sha512 = "9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==";
       };
     };
     "which-1.3.1" = {
@@ -11063,7 +11315,7 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz";
-        sha512 = "0hr4hxkk8yb9fz993bs69pf8z2z2qb6sdpxfxb84sd16lja9fsx444pk1ang1ivmjjv5srnsm6fihdj593w7rwxdh834cdmd9hms4hz";
+        sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==";
       };
     };
     "which-2.0.1" = {
@@ -11072,7 +11324,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/which/-/which-2.0.1.tgz";
-        sha512 = "3ph3rnxyan638n4pzf6cvnky97ss1nn321h1q1zxi848b8x2p3d273mmr4csbvhyy0l608n8a6fn1fc7q7680a4jryx1hpcwij83c9p";
+        sha512 = "N7GBZOTswtB9lkQBZA4+zAXrjEIWAUOB93AvzUiudRzRxhUdLURQ7D/gAIMY1gatT/LTbmbcv8SiYazy3eYB7w==";
       };
     };
     "which-2.0.2" = {
@@ -11081,7 +11333,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/which/-/which-2.0.2.tgz";
-        sha512 = "1nf5j1l1b0k8jmah5l6w4d3f5hmlcn70ghr5d0mmvxjiyq3nf1dfxmnii5945hn32n7mh99mkwj5bk3nwmdy9dxjzpp6nskbm73gch4";
+        sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==";
       };
     };
     "which-module-1.0.0" = {
@@ -11117,7 +11369,7 @@ let
       version = "4.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz";
-        sha512 = "130y345yhgrh3zfgiccy1s6m3z2crx1w6f9cydmvabb489xxjnrm7qg3i1yaggfj3vvs032zaqdmkcx0h8m91zhxp5jwph99yyn9qfn";
+        sha512 = "1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg==";
       };
     };
     "workbox-broadcast-update-4.3.1" = {
@@ -11126,7 +11378,7 @@ let
       version = "4.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz";
-        sha512 = "1n0q0vrpbjhpfwa6ga71qv6pvygbml40kgvkrcnqq4vx8csdy2z9gi9yrnm8vq9cxjz391s7x4c9a541273ml8k9j5r53i56a1ryd1i";
+        sha512 = "MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA==";
       };
     };
     "workbox-build-4.3.1" = {
@@ -11135,7 +11387,7 @@ let
       version = "4.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/workbox-build/-/workbox-build-4.3.1.tgz";
-        sha512 = "33ng87ll8lgd7pwjk7fxky8n3wl2fh2s6wnirm2hyrrwsixiz7alhr89jnnlc0d19yb9sz3lp8dfki7pyaaih6df3i3pb65vnn70xsh";
+        sha512 = "UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw==";
       };
     };
     "workbox-cacheable-response-4.3.1" = {
@@ -11144,7 +11396,7 @@ let
       version = "4.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz";
-        sha512 = "2ksgzx6ybrks9h3apmybh68wkb53psjkacnz7v6lxyjmk8jz2w0pk62pv01yd7vl8pdhg387a0c7apn9qkr03blpq7c5kxs76bnm7j6";
+        sha512 = "Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw==";
       };
     };
     "workbox-core-4.3.1" = {
@@ -11153,7 +11405,7 @@ let
       version = "4.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/workbox-core/-/workbox-core-4.3.1.tgz";
-        sha512 = "0m3cfqadsbnzp5viw4d5ym72532mp0w4kx7w01db1vpxxkmvx8rvq49wjg4a85ia03h1g3lqw02ir5b896d0v9d03qs6c76aa7bsw13";
+        sha512 = "I3C9jlLmMKPxAC1t0ExCq+QoAMd0vAAHULEgRZ7kieCdUd919n53WC0AfvokHNwqRhGn+tIIj7vcb5duCjs2Kg==";
       };
     };
     "workbox-expiration-4.3.1" = {
@@ -11162,7 +11414,7 @@ let
       version = "4.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-4.3.1.tgz";
-        sha512 = "0zwr054a2rjvmlp73a1d6x2cw7x7rvajb8zbl5pm0xlnrh4fy2z1m7nklzvkd79jblxhhfc931n6gkdxsssaavdyspqnhic0j34phmy";
+        sha512 = "vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw==";
       };
     };
     "workbox-google-analytics-4.3.1" = {
@@ -11171,7 +11423,7 @@ let
       version = "4.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz";
-        sha512 = "1v0bql2z41fal9w7zacvclnf5yh2ylnhv2d8ny8l75cl9qznrk3lbagn16raj48yvq5p0vjgsksl4jqyav45c0l11wvwfdfh81a6c67";
+        sha512 = "xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg==";
       };
     };
     "workbox-navigation-preload-4.3.1" = {
@@ -11180,7 +11432,7 @@ let
       version = "4.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz";
-        sha512 = "0xhpw0szfaqspkdmw7nzdfqcvijmxi9kz9wmawaq71kgnn8fd0gbjwqic4signyj68hxd52j7dq66mdn301ggphxdsql785gagzlkib";
+        sha512 = "K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw==";
       };
     };
     "workbox-precaching-4.3.1" = {
@@ -11189,7 +11441,7 @@ let
       version = "4.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-4.3.1.tgz";
-        sha512 = "2ls1a25idywxi2v60aa2snmi0c07ayqp5n7d1yrafjn5hkhsl4sk1j1gx445hf5h8wni4nci0nlkbnn5n7sgsgkzqi84gicczzs0956";
+        sha512 = "piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ==";
       };
     };
     "workbox-range-requests-4.3.1" = {
@@ -11198,7 +11450,7 @@ let
       version = "4.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz";
-        sha512 = "1j267fikkf08y96msxa5vkgaswdhp4jhgirvva3cv8x57yma9dhbbapyivccyryvrfpfvd7jpk5yq67gwll3wlz4nlmqk52vwpy3qab";
+        sha512 = "S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA==";
       };
     };
     "workbox-routing-4.3.1" = {
@@ -11207,7 +11459,7 @@ let
       version = "4.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/workbox-routing/-/workbox-routing-4.3.1.tgz";
-        sha512 = "3xdf0mryy66n2mk28ljbvw9yfvb647w4j10cpxz2dp5n4hvxd25aa1h9k9f3jk1n4smp9gqjd1yxigldrplsysaifn8kq60w2nfsihn";
+        sha512 = "FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g==";
       };
     };
     "workbox-strategies-4.3.1" = {
@@ -11216,7 +11468,7 @@ let
       version = "4.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-4.3.1.tgz";
-        sha512 = "23k6inrsahycsk4ban80q2jw3zy8fydjr6pkp1sjrq28ybcr0pvgpa86038l3yd1sakxkiz32zfyh4n8650lhm7bwfnym36n3kq9zqp";
+        sha512 = "F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw==";
       };
     };
     "workbox-streams-4.3.1" = {
@@ -11225,7 +11477,7 @@ let
       version = "4.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/workbox-streams/-/workbox-streams-4.3.1.tgz";
-        sha512 = "2wbc90ms21pr4fdwp2mifggynwgy4a18rhzs8lj4spz9xjhv85q1561047dq55776agxqqk88k29lwxzvpxw9gyhli2vzszrn5ara70";
+        sha512 = "4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA==";
       };
     };
     "workbox-sw-4.3.1" = {
@@ -11234,7 +11486,7 @@ let
       version = "4.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/workbox-sw/-/workbox-sw-4.3.1.tgz";
-        sha512 = "3vypra50sn2adwr7dwb7g4h75ay9fsyzwnmz4nbdgsjh3sd4l7ikhnbg02kqlqfsbj79nbby0lp7h20z9a61wndh2wy1nlbq2xdsdfj";
+        sha512 = "0jXdusCL2uC5gM3yYFT6QMBzKfBr2XTk0g5TPAV4y8IZDyVNDyj1a8uSXy3/XrvkVTmQvLN4O5k3JawGReXr9w==";
       };
     };
     "workbox-webpack-plugin-4.3.1" = {
@@ -11243,7 +11495,7 @@ let
       version = "4.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-4.3.1.tgz";
-        sha512 = "08lqpz6fx1gh855d9fqj2ac15fsi07zx0pl79068a78bhzdj6rnm2gzwkr17kc5bgvr12nf96d01cp7ipqndz8wdp5h3wqvqdvn77w0";
+        sha512 = "gJ9jd8Mb8wHLbRz9ZvGN57IAmknOipD3W4XNE/Lk/4lqs5Htw4WOQgakQy/o/4CoXQlMCYldaqUg+EJ35l9MEQ==";
       };
     };
     "workbox-window-4.3.1" = {
@@ -11252,7 +11504,7 @@ let
       version = "4.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/workbox-window/-/workbox-window-4.3.1.tgz";
-        sha512 = "0g784xkl3xda99q27b8z0n5jvgnqclcpr9l3a6h2psrcj7ijv13dh4kkqwac1klcqk0garwbjlspvrmfq5d777434vwrrw83qm1d60b";
+        sha512 = "C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg==";
       };
     };
     "worker-farm-1.7.0" = {
@@ -11261,7 +11513,7 @@ let
       version = "1.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz";
-        sha512 = "37m9wq9rvylb71n9kw3qghinwa3x4sggz82k29aall83izni78ijnh8rd6nhas8advw0lbnhby8z74vjlhp3sjsr4qm1wjw6r0kgz5f";
+        sha512 = "rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==";
       };
     };
     "wrap-ansi-2.1.0" = {
@@ -11279,7 +11531,7 @@ let
       version = "5.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
-        sha512 = "3nmsfqfd98a7bgjyhd334y5gzc98nnkipfkmk2z1v4m0acagmpq951d8brmrsxvpnk256fbrp7zkn5n8v02pn4q4zai7zgnvy47yba0";
+        sha512 = "QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==";
       };
     };
     "wrap-ansi-6.2.0" = {
@@ -11288,7 +11540,7 @@ let
       version = "6.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz";
-        sha512 = "1f4kz05shsh3xrqa0saaf5hbjp9kzxm7ykg8jmb6l49q8cfyhkrl45kk85p4jw1h95il3qadmsj2cy44yrbp119fd47jrdi25q4zadg";
+        sha512 = "r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==";
       };
     };
     "wrappy-1.0.2" = {
@@ -11306,7 +11558,7 @@ let
       version = "1.1.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz";
-        sha512 = "3iv2yz706h7wyg563jsfjdykkkxs8j49vz60r6qx5by0npfhs98rgc114kdqs15sc52mldscc22bkfpkrs08cwlqaxx8lfdjn5alwm3";
+        sha512 = "o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==";
       };
     };
     "ws-3.3.1" = {
@@ -11315,7 +11567,7 @@ let
       version = "3.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ws/-/ws-3.3.1.tgz";
-        sha512 = "3y6jiddhkfn0qgl1bq8whpn8s7l4vh981nnjih1k81wa7mxgbj6c9nnayxk1hz4qdxy34f8wbzv6kq6pdcsg7n98a1c5jyhr52fw3zh";
+        sha512 = "8A/uRMnQy8KCQsmep1m7Bk+z/+LIkeF7w+TDMLtX1iZm5Hq9HsUDmgFGaW1ACW5Cj0b2Qo7wCvRhYN2ErUVp/A==";
       };
     };
     "ws-5.2.2" = {
@@ -11324,7 +11576,7 @@ let
       version = "5.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz";
-        sha512 = "0f6ay7yn6xslzh3h66d5krqnp48d9g3ikwk0ijiyyxfkwaqxxf3b0qdswy6ych79mj44315qd16snlnk6m6npc5l0habgy5lc7wb8cd";
+        sha512 = "jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==";
       };
     };
     "ws-6.2.1" = {
@@ -11333,7 +11585,7 @@ let
       version = "6.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz";
-        sha512 = "2l27cfiaw6syjvy6vbpqf5c2swd37bqviizzck6842xlankppm9j1sg79x3m8jpda8v6khcpnm5ssab1b8vf34qpviv41ww5mf8130q";
+        sha512 = "GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==";
       };
     };
     "ws-7.1.1" = {
@@ -11342,7 +11594,16 @@ let
       version = "7.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ws/-/ws-7.1.1.tgz";
-        sha512 = "3f5849ggay87yr83snnkb1p2myb2gk8zswyd5v5m2y0kcvy02bvgi7mn7di8rs7zljpzra5sf1k4d17wyyv48d60ssccyc3d7yl73d3";
+        sha512 = "o41D/WmDeca0BqYhsr3nJzQyg9NF5X8l/UdnFNux9cS3lwB+swm8qGWX5rn+aD6xfBU3rGmtHij7g7x6LxFU3A==";
+      };
+    };
+    "ws-7.3.1" = {
+      name = "ws";
+      packageName = "ws";
+      version = "7.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz";
+        sha512 = "D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==";
       };
     };
     "xmlbuilder-13.0.2" = {
@@ -11351,7 +11612,7 @@ let
       version = "13.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-13.0.2.tgz";
-        sha512 = "00nxfgckvb3i20my8mmpc2s3bp59qxkfy926lv9ynbnfyqw7h5hq8cims6q86nr2wqnxq3b6rjvm28kn7700fmhfndq438xcj5p9v0j";
+        sha512 = "Eux0i2QdDYKbdbA6AM6xE4m6ZTZr4G4xF9kahI2ukSEMCzwce2eX9WlTI5J3s+NU7hpasFsr8hWIONae7LluAQ==";
       };
     };
     "xtend-4.0.2" = {
@@ -11360,7 +11621,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
-        sha512 = "08w1d6fg23v422cfwd55306pfs9n9cqpz6hycahq3adm3n29wmhl9bmpn4vk75rlzgwn7hp4n3idqxvw8c53zbr04h7a98p43b199ic";
+        sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
       };
     };
     "y18n-3.2.1" = {
@@ -11378,7 +11639,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz";
-        sha512 = "3zj75gvpcgiphxpci4ji1znykk9n4cs0aw3dd6inwdvkmxyqn2483vya70lssjwq8alspnpw88vgii21fdrcn2vmfyppzgf4mkvzm5g";
+        sha512 = "r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==";
       };
     };
     "yallist-2.1.2" = {
@@ -11396,16 +11657,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz";
-        sha512 = "3ig31a6zfbdlrs3l77a8avpp17hajryhyq2xk4h3ayc4dmxch146rdk7q1s1jgx9qvmxq125r0xq2bvnq0rq63m75k9y7wglm0hd1bb";
-      };
-    };
-    "yargs-12.0.5" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "12.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz";
-        sha512 = "1kjmh68p4rb4c04s0gk4ra20crfr32h6v9zhj4clrz61xanslza9g3drbf6471mmvqq3vmxk04grmgillx1rsp6v2zim7wqnr6gq71f";
+        sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==";
       };
     };
     "yargs-13.3.2" = {
@@ -11414,16 +11666,16 @@ let
       version = "13.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz";
-        sha512 = "19rg5b2rhj2kg44as5vv9jxmpr39lw250885w6nlfwyhvwd5nxnnx7fc35v7h615i65cik7k3wi7ac20c91kcgfi5wy7blgk31xjz81";
+        sha512 = "AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==";
       };
     };
-    "yargs-15.3.1" = {
+    "yargs-15.4.1" = {
       name = "yargs";
       packageName = "yargs";
-      version = "15.3.1";
+      version = "15.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz";
-        sha512 = "10c3d3i284v9l92r3ayx2z43hf4kw4adrlmp6vrjlcrq7mm3xh62c10q79jx73qm4dymnb9222zjr15n4l5w9pq0pn6xhr3c4fvaqzp";
+        url = "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz";
+        sha512 = "aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==";
       };
     };
     "yargs-6.6.0" = {
@@ -11435,31 +11687,22 @@ let
         sha1 = "782ec21ef403345f830a808ca3d513af56065208";
       };
     };
-    "yargs-parser-11.1.1" = {
-      name = "yargs-parser";
-      packageName = "yargs-parser";
-      version = "11.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz";
-        sha512 = "14iaywclwncdp3p7878q12cqgdc5rbkl0f6ghi9g7k7f4f1bbqi41dc5ki6hnqmy6jbfk0kx88m47vk3igrql5j6i7ar2a3cbyh3a8b";
-      };
-    };
     "yargs-parser-13.1.2" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
       version = "13.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz";
-        sha512 = "375nan6m28q81h8q9a8vmcxgiq7s81yn1ql7zdikac0c4j2kmxdjzmbq14fcp9jm4ilcfzkd9ym4x7c80s7r6g488wf13zz2wsyqmny";
+        sha512 = "3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==";
       };
     };
-    "yargs-parser-18.1.2" = {
+    "yargs-parser-18.1.3" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
-      version = "18.1.2";
+      version = "18.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.2.tgz";
-        sha512 = "00h0d3ibv9x6gi9mz2fxg2an5r23vxsvl2svgj8kz6czjgwmw57rrz7fd4dc88cnd2kva21s6a5gahc616djp5xp1c2vk683lshyll6";
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz";
+        sha512 = "o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==";
       };
     };
     "yargs-parser-4.2.1" = {
@@ -11477,7 +11720,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/yn/-/yn-4.0.0.tgz";
-        sha512 = "214zjzw9f245al1vhnvhw1ac5xq2sa5d34xa8h0hj3ck2x7nbdkx3j2lgd8zf4cb6bnn0ngffcwkbnl2qy9kq17w6f14kxq4j4a5rc6";
+        sha512 = "huWiiCS4TxKc4SfgmTwW1K7JmXPPAmuXWYy4j9qjQo4+27Kni8mGhAAi1cloRWmBe2EqcLgt3IGqQoRL/MtPgg==";
       };
     };
   };
@@ -11489,18 +11732,18 @@ in
     version = "0.16.5";
     src = fetchurl {
       url = "https://registry.npmjs.org/elm-analyse/-/elm-analyse-0.16.5.tgz";
-      sha512 = "0m37f2yxpjlh0b46n8ijx0zxl51swikdsgj8rm61kfy32c45fz98c2a1zxqlwyk98fblc92jc9zg2bhqxgs7civf01ndylwacc61dr3";
+      sha512 = "I7dgGFOc+mYDcDuyo1/HcIn3E5MiMbocStNzivsPSjCUviuEieHdDKZmJJ9uM3IdCu0fdBmRNWQBSOXtXrgzKg==";
     };
     dependencies = [
       sources."accepts-1.3.7"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.4"
       sources."array-flatten-1.1.1"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.1"
       sources."babel-runtime-6.18.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."body-parser-1.19.0"
@@ -11549,7 +11792,7 @@ in
       })
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       (sources."finalhandler-1.1.1" // {
         dependencies = [
@@ -11563,9 +11806,9 @@ in
       sources."fresh-0.5.2"
       sources."fs-extra-2.0.0"
       sources."getpass-0.1.7"
-      sources."graceful-fs-4.2.3"
+      sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."http-errors-1.7.2"
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
@@ -11582,13 +11825,13 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-2.4.0"
       sources."jsprim-1.4.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.4.1"
-      sources."mime-db-1.43.0"
-      sources."mime-types-2.1.26"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
       sources."minimist-1.2.0"
       sources."ms-2.0.0"
       sources."negotiator-0.6.2"
@@ -11614,7 +11857,7 @@ in
       (sources."request-2.88.0" // {
         dependencies = [
           sources."qs-6.5.2"
-          sources."safe-buffer-5.2.0"
+          sources."safe-buffer-5.2.1"
         ];
       })
       sources."safe-buffer-5.1.1"
@@ -11675,12 +11918,12 @@ in
     version = "0.3.0";
     src = fetchurl {
       url = "https://registry.npmjs.org/elm-coverage/-/elm-coverage-0.3.0.tgz";
-      sha512 = "378i24sqwydr323g5n696d0nz12d5ld8496fb3wmznf5fhv7p8ahvgf6a6cjfp78y0i53cr5v5jsa3hmb0xplc3jkrk5s5fn3s4wyaq";
+      sha512 = "WHlO9LCu6DLzlIPR28GqcCgtyy6ZjRKBR+c6yYwy7m2o0D0buuLsr3wsZxJBjZYmwregmWRseUOM3DzHmoiIzg==";
     };
     dependencies = [
       sources."@types/color-name-1.1.1"
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.4"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.1"
@@ -11689,11 +11932,11 @@ in
       sources."astral-regex-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."binary-0.3.0"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."binwrap-0.2.2"
       sources."bluebird-3.7.2"
       sources."brace-expansion-1.1.11"
@@ -11737,6 +11980,7 @@ in
             ];
           })
           sources."fs-extra-8.1.0"
+          sources."lodash-4.17.15"
           sources."which-2.0.1"
         ];
       })
@@ -11745,13 +11989,14 @@ in
       sources."escape-string-regexp-1.0.5"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fill-range-7.0.1"
       sources."find-0.2.9"
       (sources."find-elm-dependencies-2.0.2" // {
         dependencies = [
           sources."firstline-1.2.0"
+          sources."lodash-4.17.15"
         ];
       })
       sources."find-parent-dir-0.3.0"
@@ -11762,14 +12007,14 @@ in
       sources."fs-extra-4.0.3"
       sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.2"
+      sources."fsevents-2.1.3"
       sources."get-caller-file-2.0.5"
       sources."getpass-0.1.7"
       sources."glob-7.1.4"
       sources."glob-parent-5.1.1"
-      sources."graceful-fs-4.2.3"
+      sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-flag-3.0.0"
       sources."http-signature-1.2.0"
       sources."inflight-1.0.6"
@@ -11790,26 +12035,27 @@ in
       sources."jsonfile-4.0.0"
       sources."jsprim-1.4.1"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       (sources."lru-cache-4.1.5" // {
         dependencies = [
           sources."yallist-2.1.2"
         ];
       })
-      sources."mime-db-1.43.0"
-      sources."mime-types-2.1.26"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minipass-2.9.0"
       sources."minizlib-1.3.3"
       sources."mkdirp-0.5.5"
-      sources."moment-2.24.0"
+      sources."moment-2.27.0"
       sources."murmur-hash-js-1.0.0"
       sources."mustache-3.2.1"
       sources."nice-try-1.0.5"
       (sources."node-elm-compiler-5.0.4" // {
         dependencies = [
           sources."cross-spawn-6.0.5"
+          sources."lodash-4.17.15"
           sources."path-key-2.0.1"
         ];
       })
@@ -11819,7 +12065,7 @@ in
       sources."once-1.4.0"
       sources."opn-5.5.0"
       sources."os-tmpdir-1.0.2"
-      sources."p-limit-2.2.2"
+      sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
       sources."path-exists-4.0.0"
@@ -11833,12 +12079,12 @@ in
       sources."qs-6.5.2"
       sources."readdirp-3.1.3"
       sources."request-2.88.2"
-      sources."request-promise-4.2.5"
-      sources."request-promise-core-1.1.3"
+      sources."request-promise-4.2.6"
+      sources."request-promise-core-1.1.4"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
       sources."rimraf-2.6.3"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-5.7.1"
       sources."set-blocking-2.0.0"
@@ -11891,7 +12137,7 @@ in
       sources."xmlbuilder-13.0.2"
       sources."y18n-4.0.0"
       sources."yallist-3.1.1"
-      (sources."yargs-15.3.1" // {
+      (sources."yargs-15.4.1" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."emoji-regex-8.0.0"
@@ -11900,7 +12146,7 @@ in
           sources."strip-ansi-6.0.0"
         ];
       })
-      sources."yargs-parser-18.1.2"
+      sources."yargs-parser-18.1.3"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -11915,293 +12161,130 @@ in
   elm-doc-preview = nodeEnv.buildNodePackage {
     name = "elm-doc-preview";
     packageName = "elm-doc-preview";
-    version = "3.0.4";
+    version = "5.0.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/elm-doc-preview/-/elm-doc-preview-3.0.4.tgz";
-      sha512 = "2cg4fjgjxg94lhak20inr9v05bkr2iyh64acg2msc4dr4jwq97542r115mpyzxc7rxsa2pg3jfflmqv74vy22v9zb9pzqdgh83ipfml";
+      url = "https://registry.npmjs.org/elm-doc-preview/-/elm-doc-preview-5.0.3.tgz";
+      sha512 = "j9wli2wOHYiSMARDCRgAZGZ8JkcJqG4rh5+6rSgy5nVGqyXDEN6HCBX/8AhqtKMFKcuCp9ejx04heCaROlb/Eg==";
     };
     dependencies = [
-      sources."@cnakazawa/watch-1.0.4"
-      sources."@sindresorhus/is-0.7.0"
+      sources."@sindresorhus/is-0.14.0"
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@types/color-name-1.1.1"
       sources."accepts-1.3.7"
-      sources."ansi-styles-3.2.1"
-      sources."anymatch-2.0.0"
-      sources."arr-diff-4.0.0"
-      sources."arr-flatten-1.1.0"
-      sources."arr-union-3.1.0"
+      sources."ansi-styles-4.2.1"
+      sources."anymatch-3.1.1"
       sources."array-flatten-1.1.1"
-      sources."array-unique-0.3.2"
-      sources."assign-symbols-1.0.0"
       sources."async-limiter-1.0.1"
-      sources."atob-2.1.2"
       sources."balanced-match-1.0.0"
-      (sources."base-0.11.2" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
       sources."batch-0.6.1"
+      sources."binary-extensions-2.1.0"
       sources."body-parser-1.19.0"
       sources."brace-expansion-1.1.11"
-      (sources."braces-2.3.2" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."bser-2.1.1"
+      sources."braces-3.0.2"
       sources."bytes-3.1.0"
-      sources."cache-base-1.0.1"
-      (sources."cacheable-request-2.1.4" // {
+      (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."lowercase-keys-1.0.0"
-        ];
-      })
-      sources."capture-exit-2.0.0"
-      sources."chalk-2.4.2"
-      (sources."class-utils-0.3.6" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
+          sources."get-stream-5.2.0"
+          sources."lowercase-keys-2.0.0"
         ];
       })
+      sources."chalk-3.0.0"
+      sources."chokidar-3.4.2"
       sources."clone-response-1.0.2"
-      sources."collection-visit-1.0.0"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
-      sources."commander-3.0.2"
-      sources."component-emitter-1.3.0"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."commander-5.1.0"
       sources."concat-map-0.0.1"
       sources."content-disposition-0.5.3"
       sources."content-type-1.0.4"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."copy-descriptor-0.1.1"
-      sources."core-js-3.6.4"
-      sources."core-util-is-1.0.2"
-      sources."cross-spawn-6.0.5"
+      sources."cross-spawn-7.0.3"
       sources."debug-2.6.9"
-      sources."decode-uri-component-0.2.0"
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
-      sources."define-properties-1.1.3"
-      sources."define-property-2.0.2"
+      sources."defer-to-connect-1.1.3"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      sources."es-abstract-1.17.5"
-      sources."es-to-primitive-1.2.1"
       sources."escape-html-1.0.3"
-      sources."escape-string-regexp-1.0.5"
       sources."etag-1.8.1"
-      sources."exec-sh-0.3.4"
-      (sources."execa-1.0.0" // {
-        dependencies = [
-          sources."get-stream-4.1.0"
-        ];
-      })
-      (sources."expand-brackets-2.1.4" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
       sources."express-4.17.1"
       (sources."express-ws-4.0.0" // {
         dependencies = [
           sources."ws-5.2.2"
         ];
       })
-      (sources."extend-shallow-3.0.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
-      (sources."extglob-2.0.4" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-          sources."extend-shallow-2.0.1"
-        ];
-      })
-      sources."fb-watchman-2.0.1"
-      (sources."fill-range-4.0.0" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
+      sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
-      sources."for-in-1.0.2"
       sources."forwarded-0.1.2"
-      sources."fragment-cache-0.2.1"
       sources."fresh-0.5.2"
-      sources."from2-2.3.0"
       sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.1"
-      sources."get-stream-3.0.0"
-      sources."get-value-2.0.6"
+      sources."fsevents-2.1.3"
+      sources."get-stream-4.1.0"
       sources."glob-7.1.6"
-      sources."got-8.3.2"
-      sources."has-1.0.3"
-      sources."has-flag-3.0.0"
-      sources."has-symbol-support-x-1.4.2"
-      sources."has-symbols-1.0.1"
-      sources."has-to-string-tag-x-1.4.1"
-      sources."has-value-1.0.0"
-      (sources."has-values-1.0.0" // {
-        dependencies = [
-          sources."kind-of-4.0.0"
-        ];
-      })
-      sources."http-cache-semantics-3.8.1"
+      sources."glob-parent-5.1.1"
+      sources."got-9.6.0"
+      sources."has-flag-4.0.0"
+      sources."http-cache-semantics-4.1.0"
       sources."http-errors-1.7.2"
       sources."iconv-lite-0.4.24"
       sources."inflight-1.0.6"
       sources."inherits-2.0.3"
       sources."ini-1.3.5"
-      sources."into-stream-3.1.0"
       sources."ipaddr.js-1.9.1"
-      sources."is-accessor-descriptor-1.0.0"
-      sources."is-buffer-1.1.6"
-      sources."is-callable-1.1.5"
-      sources."is-data-descriptor-1.0.0"
-      sources."is-date-object-1.0.2"
-      sources."is-descriptor-1.0.2"
-      sources."is-extendable-0.1.1"
-      (sources."is-number-3.0.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."is-object-1.0.1"
-      sources."is-plain-obj-1.1.0"
-      sources."is-plain-object-2.0.4"
-      sources."is-regex-1.0.5"
-      sources."is-retry-allowed-1.2.0"
-      sources."is-stream-1.1.0"
-      sources."is-symbol-1.0.3"
-      sources."is-windows-1.0.2"
-      sources."is-wsl-1.1.0"
-      sources."isarray-1.0.0"
+      sources."is-binary-path-2.1.0"
+      sources."is-docker-2.1.1"
+      sources."is-extglob-2.1.1"
+      sources."is-glob-4.0.1"
+      sources."is-number-7.0.0"
+      sources."is-wsl-2.2.0"
       sources."isexe-2.0.0"
-      sources."isobject-3.0.1"
-      sources."isurl-1.0.0"
       sources."json-buffer-3.0.0"
-      sources."keyv-3.0.0"
-      sources."kind-of-6.0.3"
-      sources."latest-version-4.0.0"
+      sources."keyv-3.1.0"
+      sources."latest-version-5.1.0"
       sources."lowercase-keys-1.0.1"
-      sources."makeerror-1.0.11"
-      sources."map-cache-0.2.2"
-      sources."map-visit-1.0.0"
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
-      sources."micromatch-3.1.10"
       sources."mime-1.6.0"
-      sources."mime-db-1.43.0"
-      sources."mime-types-2.1.26"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      (sources."mixin-deep-1.3.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
       sources."ms-2.0.0"
-      sources."nanomatch-1.2.13"
       sources."negotiator-0.6.2"
-      sources."nice-try-1.0.5"
-      sources."node-int64-0.4.0"
-      sources."normalize-path-2.1.1"
-      sources."normalize-url-2.0.1"
-      sources."npm-run-path-2.0.2"
-      sources."object-assign-4.1.1"
-      (sources."object-copy-0.1.0" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."is-accessor-descriptor-0.1.6"
-          sources."is-data-descriptor-0.1.4"
-          (sources."is-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-5.1.0"
-            ];
-          })
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."object-inspect-1.7.0"
-      sources."object-keys-1.1.1"
-      sources."object-visit-1.0.1"
-      sources."object.assign-4.1.0"
-      sources."object.getownpropertydescriptors-2.1.0"
-      sources."object.pick-1.3.0"
+      sources."normalize-path-3.0.0"
+      sources."normalize-url-4.5.0"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
-      sources."opn-5.5.0"
-      sources."p-cancelable-0.4.1"
-      sources."p-finally-1.0.0"
-      sources."p-is-promise-1.1.0"
-      sources."p-timeout-2.0.1"
-      sources."package-json-5.0.0"
+      sources."open-7.2.1"
+      sources."p-cancelable-1.1.0"
+      sources."package-json-6.5.0"
       sources."parseurl-1.3.3"
-      sources."pascalcase-0.1.1"
       sources."path-is-absolute-1.0.1"
-      sources."path-key-2.0.1"
+      sources."path-key-3.1.1"
       sources."path-to-regexp-0.1.7"
-      sources."pify-3.0.0"
-      sources."posix-character-classes-0.1.1"
+      sources."picomatch-2.2.2"
       sources."prepend-http-2.0.0"
-      sources."process-nextick-args-2.0.1"
       sources."proxy-addr-2.0.6"
       sources."pump-3.0.0"
       sources."qs-6.7.0"
-      sources."query-string-5.1.1"
       sources."range-parser-1.2.1"
       sources."raw-body-2.4.0"
       sources."rc-1.2.8"
-      sources."readable-stream-2.3.7"
-      sources."regex-not-1.0.2"
-      sources."registry-auth-token-3.4.0"
-      sources."registry-url-3.1.0"
-      sources."remove-trailing-separator-1.1.0"
-      sources."repeat-element-1.1.3"
-      sources."repeat-string-1.6.1"
-      sources."resolve-url-0.2.1"
+      sources."readdirp-3.4.0"
+      sources."registry-auth-token-4.2.0"
+      sources."registry-url-5.1.0"
       sources."responselike-1.0.2"
-      sources."ret-0.1.15"
       sources."rimraf-2.7.1"
-      sources."rsvp-4.8.5"
       sources."safe-buffer-5.1.2"
-      sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."sane-4.1.0"
-      sources."semver-5.7.1"
+      sources."semver-6.3.0"
       (sources."send-0.17.1" // {
         dependencies = [
           sources."ms-2.1.1"
@@ -12214,111 +12297,24 @@ in
         ];
       })
       sources."serve-static-1.14.1"
-      (sources."set-value-2.0.1" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
       sources."setprototypeof-1.1.1"
-      sources."shebang-command-1.2.0"
-      sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.3"
-      (sources."snapdragon-0.8.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      (sources."snapdragon-node-2.1.1" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
-      (sources."snapdragon-util-3.0.1" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."sort-keys-2.0.0"
-      sources."source-map-0.5.7"
-      sources."source-map-resolve-0.5.3"
-      sources."source-map-url-0.4.0"
-      sources."split-string-3.1.0"
-      (sources."static-extend-0.1.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
       sources."statuses-1.5.0"
-      sources."strict-uri-encode-1.1.0"
-      sources."string.prototype.trimend-1.0.0"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
-      sources."string.prototype.trimstart-1.0.0"
-      sources."string_decoder-1.1.1"
-      sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
-      sources."supports-color-5.5.0"
-      sources."timed-out-4.0.1"
+      sources."supports-color-7.2.0"
       sources."tmp-0.1.0"
-      sources."tmpl-1.0.4"
-      (sources."to-object-path-0.3.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."to-regex-3.0.2"
-      sources."to-regex-range-2.1.1"
+      sources."to-readable-stream-1.0.0"
+      sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
       sources."type-is-1.6.18"
-      sources."union-value-1.0.1"
       sources."unpipe-1.0.0"
-      (sources."unset-value-1.0.0" // {
-        dependencies = [
-          (sources."has-value-0.3.1" // {
-            dependencies = [
-              sources."isobject-2.1.0"
-            ];
-          })
-          sources."has-values-0.1.4"
-        ];
-      })
-      sources."urix-0.1.0"
       sources."url-parse-lax-3.0.0"
-      sources."url-to-options-1.0.1"
-      sources."use-3.1.1"
-      sources."util-deprecate-1.0.2"
-      sources."util.promisify-1.0.1"
       sources."utils-merge-1.0.1"
       sources."vary-1.1.2"
-      sources."walker-1.0.7"
-      sources."which-1.3.1"
+      sources."which-2.0.2"
       sources."wrappy-1.0.2"
-      sources."ws-6.2.1"
+      sources."ws-7.3.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -12333,17 +12329,17 @@ in
   "@elm-tooling/elm-language-server" = nodeEnv.buildNodePackage {
     name = "_at_elm-tooling_slash_elm-language-server";
     packageName = "@elm-tooling/elm-language-server";
-    version = "1.7.1";
+    version = "1.11.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@elm-tooling/elm-language-server/-/elm-language-server-1.7.1.tgz";
-      sha512 = "25ha586wi38w5bh15dvskvixbw8n1ca5y5x3j2593d0nlrlqr69garz2bd444asgad1yvjkf62dfjdswy3nw1l0nrhpphiryd8hlnzx";
+      url = "https://registry.npmjs.org/@elm-tooling/elm-language-server/-/elm-language-server-1.11.0.tgz";
+      sha512 = "GYphbimDGTl9icqLf6ObivJIHnIn/5B7Vc4FsAJD7CwwfjRU0LQZ3uSLNOYMVol8NgxbULXBvJOgojMu3QHJ5Q==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.3"
       sources."@nodelib/fs.stat-2.0.3"
       sources."@nodelib/fs.walk-1.2.4"
       sources."accepts-1.3.7"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.4"
       sources."array-flatten-1.1.1"
       sources."array-union-2.1.0"
       sources."asn1-0.2.4"
@@ -12351,7 +12347,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.1"
       sources."babel-runtime-6.18.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."body-parser-1.19.0"
@@ -12360,13 +12356,13 @@ in
       sources."caseless-0.12.0"
       sources."combined-stream-1.0.8"
       sources."concat-stream-1.5.2"
-      sources."content-disposition-0.5.2"
+      sources."content-disposition-0.5.3"
       sources."content-type-1.0.4"
-      sources."cookie-0.3.1"
+      sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
       sources."core-js-2.6.11"
       sources."core-util-is-1.0.2"
-      sources."cross-spawn-7.0.2"
+      sources."cross-spawn-7.0.3"
       sources."dashdash-1.14.1"
       sources."debug-2.6.9"
       sources."delayed-stream-1.0.0"
@@ -12375,34 +12371,18 @@ in
       sources."dir-glob-3.0.1"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."elm-analyse-git://github.com/elm-tooling/elm-analyse#1a665a6e540d7d11b29b3c5e3c52089704325d9c"
+      sources."elm-analyse-git://github.com/elm-tooling/elm-analyse#7f4000cce5ef024fe5e82c7ee1725feef95a9daf"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."escape-html-1.0.3"
+      sources."escape-string-regexp-4.0.0"
       sources."etag-1.8.1"
-      (sources."execa-4.0.0" // {
+      (sources."execa-4.0.3" // {
         dependencies = [
           sources."is-stream-2.0.0"
         ];
       })
-      (sources."express-4.16.3" // {
-        dependencies = [
-          sources."body-parser-1.18.2"
-          sources."bytes-3.0.0"
-          sources."http-errors-1.6.3"
-          sources."iconv-lite-0.4.19"
-          sources."qs-6.5.1"
-          (sources."raw-body-2.3.2" // {
-            dependencies = [
-              sources."depd-1.1.1"
-              sources."http-errors-1.6.2"
-              sources."setprototypeof-1.0.3"
-            ];
-          })
-          sources."setprototypeof-1.1.0"
-          sources."statuses-1.4.0"
-        ];
-      })
+      sources."express-4.17.1"
       (sources."express-ws-2.0.0" // {
         dependencies = [
           sources."ws-1.1.5"
@@ -12410,35 +12390,31 @@ in
       })
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-diff-1.2.0"
-      sources."fast-glob-3.2.2"
+      sources."fast-glob-3.2.4"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fastq-1.7.0"
+      sources."fastq-1.8.0"
       sources."fill-range-7.0.1"
-      (sources."finalhandler-1.1.1" // {
-        dependencies = [
-          sources."statuses-1.4.0"
-        ];
-      })
+      sources."finalhandler-1.1.2"
       sources."find-0.2.7"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
       sources."forwarded-0.1.2"
       sources."fresh-0.5.2"
       sources."fs-extra-2.0.0"
-      sources."get-stream-5.1.0"
+      sources."get-stream-5.2.0"
       sources."getpass-0.1.7"
       sources."glob-parent-5.1.1"
-      sources."globby-11.0.0"
-      sources."graceful-fs-4.2.3"
+      sources."globby-11.0.1"
+      sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."http-errors-1.7.2"
       sources."http-signature-1.2.0"
       sources."human-signals-1.1.1"
       sources."iconv-lite-0.4.24"
-      sources."ignore-5.1.4"
+      sources."ignore-5.1.8"
       sources."inherits-2.0.3"
       sources."ipaddr.js-1.9.1"
       sources."is-extglob-2.1.1"
@@ -12456,18 +12432,18 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-2.4.0"
       sources."jsprim-1.4.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."merge-stream-2.0.0"
-      sources."merge2-1.3.0"
+      sources."merge2-1.4.1"
       sources."methods-1.1.2"
       sources."micromatch-4.0.2"
-      sources."mime-1.4.1"
-      sources."mime-db-1.43.0"
-      sources."mime-types-2.1.26"
+      sources."mime-1.6.0"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
       sources."mimic-fn-2.1.0"
-      sources."minimist-1.2.0"
+      sources."minimist-1.2.5"
       sources."ms-2.0.0"
       sources."negotiator-0.6.2"
       sources."node-watch-0.5.5"
@@ -12475,8 +12451,8 @@ in
       sources."oauth-sign-0.9.0"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
-      sources."opn-5.4.0"
+      sources."onetime-5.1.2"
+      sources."opn-6.0.0"
       sources."options-0.0.6"
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
@@ -12496,26 +12472,23 @@ in
       sources."range-parser-1.2.1"
       sources."raw-body-2.4.0"
       sources."readable-stream-2.0.6"
+      sources."reflect-metadata-0.1.13"
       sources."regenerator-runtime-0.9.6"
-      (sources."request-2.88.0" // {
+      (sources."request-2.88.2" // {
         dependencies = [
           sources."qs-6.5.2"
-          sources."safe-buffer-5.2.0"
         ];
       })
       sources."reusify-1.0.4"
       sources."run-parallel-1.1.9"
-      sources."rxjs-6.5.5"
-      sources."safe-buffer-5.1.1"
+      sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
-      (sources."send-0.16.2" // {
+      (sources."send-0.17.1" // {
         dependencies = [
-          sources."http-errors-1.6.3"
-          sources."setprototypeof-1.1.0"
-          sources."statuses-1.4.0"
+          sources."ms-2.1.1"
         ];
       })
-      sources."serve-static-1.13.2"
+      sources."serve-static-1.14.1"
       sources."setprototypeof-1.1.1"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
@@ -12530,13 +12503,10 @@ in
       sources."tmp-0.0.31"
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
-      (sources."tough-cookie-2.4.3" // {
-        dependencies = [
-          sources."punycode-1.4.1"
-        ];
-      })
+      sources."tough-cookie-2.5.0"
       sources."traverse-chain-0.1.0"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
+      sources."tsyringe-4.3.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
@@ -12554,8 +12524,8 @@ in
       sources."vscode-languageserver-protocol-3.15.3"
       sources."vscode-languageserver-textdocument-1.0.1"
       sources."vscode-languageserver-types-3.15.1"
-      sources."vscode-uri-2.1.1"
-      sources."web-tree-sitter-0.16.2"
+      sources."vscode-uri-2.1.2"
+      sources."web-tree-sitter-0.16.4"
       sources."which-2.0.2"
       sources."wrappy-1.0.2"
       (sources."ws-3.3.1" // {
@@ -12581,14 +12551,14 @@ in
     version = "4.0.2";
     src = fetchurl {
       url = "https://registry.npmjs.org/elm-live/-/elm-live-4.0.2.tgz";
-      sha512 = "1ri6f1ij6617nk0nsgrdfnzwac2hgisf7rvgrq4m8vny6a8f18bg5kb3bmal5mb51fsns2s3k678l6pal5v45ay1fdwps25kjyd93g0";
+      sha512 = "4I3UvJxF6MubC14VsgtV11B0zBxaaKtdKKsWquoaa5a3UHBIGW83qgTnt/NxOj4omOLfupaftmDaE4yRMTgTcw==";
     };
     dependencies = [
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
       sources."anymatch-3.1.1"
       sources."async-limiter-1.0.1"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."braces-3.0.2"
       sources."chalk-1.1.3"
       sources."charenc-0.0.2"
@@ -12605,7 +12575,7 @@ in
       sources."elm-hot-1.1.4"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      sources."es6-promisify-6.1.0"
+      sources."es6-promisify-6.1.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
       sources."etag-1.8.1"
@@ -12617,14 +12587,9 @@ in
       })
       sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
-      (sources."follow-redirects-1.11.0" // {
-        dependencies = [
-          sources."debug-3.2.6"
-          sources."ms-2.1.2"
-        ];
-      })
+      sources."follow-redirects-1.13.0"
       sources."fresh-0.5.2"
-      sources."fsevents-2.1.2"
+      sources."fsevents-2.1.3"
       sources."get-stream-4.1.0"
       sources."glob-parent-5.1.1"
       sources."has-ansi-2.0.0"
@@ -12643,7 +12608,7 @@ in
       sources."is-wsl-1.1.0"
       sources."isexe-2.0.0"
       sources."lru-cache-4.1.5"
-      sources."md5-2.2.1"
+      sources."md5-2.3.0"
       sources."mime-2.4.3"
       sources."ms-2.0.0"
       sources."nice-try-1.0.5"
@@ -12703,22 +12668,22 @@ in
     version = "0.19.1-revision2";
     src = fetchurl {
       url = "https://registry.npmjs.org/elm-test/-/elm-test-0.19.1-revision2.tgz";
-      sha512 = "24qc3z9z059c0dp97lfpsqgigxks6dd8akf14p3wvnvsy5ih3nf4947qc94xfrr0jdql0nnq12727nyyyyz3zrfyy54y85jayckcnyd";
+      sha512 = "zVs2mVeyIE+K9y7/8b333h5xRMDWAoqbBDm7ThLDhyTi7ICxeL3t5uOS4KZCrRk9+4sP6+voSbcBlgr46Q+GiQ==";
     };
     dependencies = [
       sources."@types/color-name-1.1.1"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.4"
       sources."ansi-styles-4.2.1"
       sources."anymatch-3.1.1"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."binary-0.3.0"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."binwrap-0.2.2"
       sources."bluebird-3.7.2"
       sources."brace-expansion-1.1.11"
@@ -12741,7 +12706,7 @@ in
       sources."elmi-to-json-1.3.0"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fill-range-7.0.1"
       (sources."find-elm-dependencies-2.0.2" // {
@@ -12756,13 +12721,13 @@ in
       sources."fs-extra-8.1.0"
       sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.2"
+      sources."fsevents-2.1.3"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.1"
-      sources."graceful-fs-4.2.3"
+      sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-flag-4.0.0"
       sources."http-signature-1.2.0"
       sources."inflight-1.0.6"
@@ -12781,8 +12746,8 @@ in
       sources."jsonfile-4.0.0"
       sources."jsprim-1.4.1"
       sources."lodash-4.17.15"
-      sources."mime-db-1.43.0"
-      sources."mime-types-2.1.26"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minipass-2.9.0"
@@ -12812,10 +12777,14 @@ in
       sources."qs-6.5.2"
       sources."readdirp-3.2.0"
       sources."request-2.88.2"
-      sources."request-promise-4.2.5"
-      sources."request-promise-core-1.1.3"
+      sources."request-promise-4.2.6"
+      (sources."request-promise-core-1.1.4" // {
+        dependencies = [
+          sources."lodash-4.17.20"
+        ];
+      })
       sources."rimraf-2.6.3"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-5.7.1"
       sources."shebang-command-2.0.0"
@@ -12858,15 +12827,15 @@ in
     version = "0.19.8";
     src = fetchurl {
       url = "https://registry.npmjs.org/elm-upgrade/-/elm-upgrade-0.19.8.tgz";
-      sha512 = "3rqgj507b7yb9ljc0rbfj7fi18h5lh33wvfr1kfdpqklvx3q84jfrma01fwrraxx1jlllhis9r1cpzcbcgmjlvygc2d5frhimbp60sb";
+      sha512 = "SwNzV40wu9IEe35TWR9b7F8WctIRUkpl6F3lzF0AqmYnCcKjbzrxbW6G7DYfA9ICUYjuSLcyYJKm5c86oMiH8w==";
     };
     dependencies = [
-      sources."@sindresorhus/is-2.1.0"
+      sources."@sindresorhus/is-2.1.1"
       sources."@szmarczak/http-timer-4.0.5"
       sources."@types/cacheable-request-6.0.1"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
-      sources."@types/node-13.11.0"
+      sources."@types/node-14.6.2"
       sources."@types/responselike-1.0.0"
       sources."cacheable-lookup-2.0.1"
       sources."cacheable-request-7.0.1"
@@ -12883,9 +12852,9 @@ in
       sources."end-of-stream-1.4.4"
       sources."fs-extra-8.1.0"
       sources."get-proxy-2.1.0"
-      sources."get-stream-5.1.0"
+      sources."get-stream-5.2.0"
       sources."got-10.7.0"
-      sources."graceful-fs-4.2.3"
+      sources."graceful-fs-4.2.4"
       sources."has-symbol-support-x-1.4.2"
       sources."has-to-string-tag-x-1.4.1"
       sources."http-cache-semantics-4.1.0"
@@ -12895,23 +12864,23 @@ in
       sources."isurl-1.0.0"
       sources."json-buffer-3.0.1"
       sources."jsonfile-4.0.0"
-      sources."keyv-4.0.0"
+      sources."keyv-4.0.1"
       sources."lowercase-keys-2.0.0"
       sources."mimic-response-2.1.0"
       sources."normalize-url-4.5.0"
       sources."npm-conf-1.1.3"
       sources."once-1.4.0"
       sources."p-cancelable-2.0.0"
-      sources."p-event-4.1.0"
+      sources."p-event-4.2.0"
       sources."p-finally-1.0.0"
-      sources."p-timeout-2.0.1"
+      sources."p-timeout-3.2.0"
       sources."pify-3.0.0"
       sources."proto-list-1.2.4"
       sources."pump-3.0.0"
       sources."responselike-2.0.0"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safename-1.0.2"
-      sources."semver-7.1.3"
+      sources."semver-7.3.2"
       sources."to-readable-stream-2.1.0"
       sources."tunnel-agent-0.6.0"
       sources."type-fest-0.10.0"
@@ -12937,10 +12906,10 @@ in
     version = "5.0.0";
     src = fetchurl {
       url = "https://registry.npmjs.org/elm-verify-examples/-/elm-verify-examples-5.0.0.tgz";
-      sha512 = "2npciwj93dprxgd9m14wz73q0bq8jqr3wq2027dvphm6jjl6r13yc9v5xl4g72rrjjrb81hnpk5y1q855lzcxbc8h49spb19zwsy0vl";
+      sha512 = "dAOv+U9hXZ0IRGx19mkpCAdf5rUwoJWlzFmcR2gvOzE/QjZUSlPh3e0IIDAfGUuEF8DjfE5CTe31fNtIkkd2rQ==";
     };
     dependencies = [
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.4"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.1"
@@ -12948,11 +12917,11 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."binary-0.3.0"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."binwrap-0.2.2"
       sources."bluebird-3.7.2"
       sources."brace-expansion-1.1.11"
@@ -12991,7 +12960,7 @@ in
       sources."escape-string-regexp-1.0.5"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fill-range-7.0.1"
       (sources."find-elm-dependencies-2.0.2" // {
@@ -13007,14 +12976,14 @@ in
       sources."fs-extra-5.0.0"
       sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.2"
+      sources."fsevents-2.1.3"
       sources."get-caller-file-2.0.5"
       sources."getpass-0.1.7"
       sources."glob-7.1.4"
       sources."glob-parent-5.1.1"
-      sources."graceful-fs-4.2.3"
+      sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-flag-3.0.0"
       sources."http-signature-1.2.0"
       sources."inflight-1.0.6"
@@ -13035,8 +13004,8 @@ in
       sources."jsprim-1.4.1"
       sources."locate-path-3.0.0"
       sources."lodash-4.17.15"
-      sources."mime-db-1.43.0"
-      sources."mime-types-2.1.26"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minipass-2.9.0"
@@ -13055,7 +13024,7 @@ in
       sources."normalize-path-3.0.0"
       sources."oauth-sign-0.9.0"
       sources."once-1.4.0"
-      sources."p-limit-2.2.2"
+      sources."p-limit-2.3.0"
       sources."p-locate-3.0.0"
       sources."p-try-2.2.0"
       sources."path-exists-3.0.0"
@@ -13068,12 +13037,16 @@ in
       sources."qs-6.5.2"
       sources."readdirp-3.1.3"
       sources."request-2.88.2"
-      sources."request-promise-4.2.5"
-      sources."request-promise-core-1.1.3"
+      sources."request-promise-4.2.6"
+      (sources."request-promise-core-1.1.4" // {
+        dependencies = [
+          sources."lodash-4.17.20"
+        ];
+      })
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
       sources."rimraf-2.7.1"
-      sources."safe-buffer-5.2.0"
+      sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."semver-5.7.1"
       sources."set-blocking-2.0.0"
@@ -13127,14 +13100,14 @@ in
     version = "4.1.0";
     src = fetchurl {
       url = "https://registry.npmjs.org/elm-xref/-/elm-xref-4.1.0.tgz";
-      sha512 = "24a79m9qhs2ycldf36p7qyr0dj8jvqja0cycp5gr01nkrdhlin4idh33wbvr7yghh5vbf53j3vbi0r9kjp1crs4cy1jvb80iccxayfv";
+      sha512 = "23nVGYsArS2DZ0RnFq6cKYO49pCjuLULhM+fvBcfA7ZIbKSw5WkDyK9c5hlQEm+JZAPZ43PNcI0yLzTEqaajiA==";
     };
     dependencies = [
       sources."bluebird-3.7.2"
       sources."compare-versions-3.6.0"
       sources."core-util-is-1.0.2"
       sources."fs-extra-6.0.1"
-      sources."graceful-fs-4.2.3"
+      sources."graceful-fs-4.2.4"
       sources."inherits-2.0.4"
       sources."isarray-1.0.0"
       sources."jsonfile-4.0.0"
@@ -13169,86 +13142,108 @@ in
   create-elm-app = nodeEnv.buildNodePackage {
     name = "create-elm-app";
     packageName = "create-elm-app";
-    version = "4.2.4";
+    version = "4.2.26";
     src = fetchurl {
-      url = "https://registry.npmjs.org/create-elm-app/-/create-elm-app-4.2.4.tgz";
-      sha512 = "007cbn1hd7hb48mwrn7sg132vj9y0bw17jwgc2fi5m4z8zi24992qqgkdqzqz3bwh7khh1f0y35fzn6va384rlahmwyykxrj62hpl06";
+      url = "https://registry.npmjs.org/create-elm-app/-/create-elm-app-4.2.26.tgz";
+      sha512 = "m8+dA/ea43gXODN7nnd8zSXSNTtnhSFLK5O9xNSxRWasaLPI6fqO3TsG0MADSV1sB66rmHRFsn5au12ir058DQ==";
     };
     dependencies = [
-      sources."@babel/cli-7.2.3"
-      sources."@babel/code-frame-7.8.3"
-      sources."@babel/core-7.3.4"
-      sources."@babel/generator-7.9.4"
-      sources."@babel/helper-annotate-as-pure-7.8.3"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.8.3"
-      sources."@babel/helper-create-regexp-features-plugin-7.8.8"
-      sources."@babel/helper-define-map-7.8.3"
-      sources."@babel/helper-explode-assignable-expression-7.8.3"
-      sources."@babel/helper-function-name-7.8.3"
-      sources."@babel/helper-get-function-arity-7.8.3"
-      sources."@babel/helper-hoist-variables-7.8.3"
-      sources."@babel/helper-member-expression-to-functions-7.8.3"
-      sources."@babel/helper-module-imports-7.8.3"
-      sources."@babel/helper-module-transforms-7.9.0"
-      sources."@babel/helper-optimise-call-expression-7.8.3"
-      sources."@babel/helper-plugin-utils-7.8.3"
-      sources."@babel/helper-regex-7.8.3"
-      sources."@babel/helper-remap-async-to-generator-7.8.3"
-      sources."@babel/helper-replace-supers-7.8.6"
-      sources."@babel/helper-simple-access-7.8.3"
-      sources."@babel/helper-split-export-declaration-7.8.3"
-      sources."@babel/helper-validator-identifier-7.9.0"
-      sources."@babel/helper-wrap-function-7.8.3"
-      sources."@babel/helpers-7.9.2"
-      sources."@babel/highlight-7.9.0"
-      sources."@babel/parser-7.9.4"
-      sources."@babel/plugin-proposal-async-generator-functions-7.8.3"
-      sources."@babel/plugin-proposal-json-strings-7.8.3"
-      sources."@babel/plugin-proposal-object-rest-spread-7.9.0"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.8.3"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.8.8"
+      sources."@babel/cli-7.8.4"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/compat-data-7.11.0"
+      (sources."@babel/core-7.9.6" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."@babel/generator-7.11.4"
+      sources."@babel/helper-annotate-as-pure-7.10.4"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
+      sources."@babel/helper-compilation-targets-7.10.4"
+      sources."@babel/helper-create-regexp-features-plugin-7.10.4"
+      sources."@babel/helper-define-map-7.10.5"
+      sources."@babel/helper-explode-assignable-expression-7.11.4"
+      sources."@babel/helper-function-name-7.10.4"
+      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-hoist-variables-7.10.4"
+      sources."@babel/helper-member-expression-to-functions-7.11.0"
+      sources."@babel/helper-module-imports-7.10.4"
+      sources."@babel/helper-module-transforms-7.11.0"
+      sources."@babel/helper-optimise-call-expression-7.10.4"
+      sources."@babel/helper-plugin-utils-7.10.4"
+      sources."@babel/helper-regex-7.10.5"
+      sources."@babel/helper-remap-async-to-generator-7.11.4"
+      sources."@babel/helper-replace-supers-7.10.4"
+      sources."@babel/helper-simple-access-7.10.4"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.11.0"
+      sources."@babel/helper-split-export-declaration-7.11.0"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helper-wrap-function-7.10.4"
+      sources."@babel/helpers-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.4"
+      sources."@babel/plugin-proposal-async-generator-functions-7.10.5"
+      sources."@babel/plugin-proposal-dynamic-import-7.10.4"
+      sources."@babel/plugin-proposal-json-strings-7.10.4"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.4"
+      sources."@babel/plugin-proposal-numeric-separator-7.10.4"
+      sources."@babel/plugin-proposal-object-rest-spread-7.11.0"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.10.4"
+      sources."@babel/plugin-proposal-optional-chaining-7.11.0"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.10.4"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
+      sources."@babel/plugin-syntax-dynamic-import-7.8.3"
       sources."@babel/plugin-syntax-json-strings-7.8.3"
+      sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
+      sources."@babel/plugin-syntax-numeric-separator-7.10.4"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
       sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
-      sources."@babel/plugin-transform-arrow-functions-7.8.3"
-      sources."@babel/plugin-transform-async-to-generator-7.8.3"
-      sources."@babel/plugin-transform-block-scoped-functions-7.8.3"
-      sources."@babel/plugin-transform-block-scoping-7.8.3"
-      sources."@babel/plugin-transform-classes-7.9.2"
-      sources."@babel/plugin-transform-computed-properties-7.8.3"
-      sources."@babel/plugin-transform-destructuring-7.8.8"
-      sources."@babel/plugin-transform-dotall-regex-7.8.3"
-      sources."@babel/plugin-transform-duplicate-keys-7.8.3"
-      sources."@babel/plugin-transform-exponentiation-operator-7.8.3"
-      sources."@babel/plugin-transform-for-of-7.9.0"
-      sources."@babel/plugin-transform-function-name-7.8.3"
-      sources."@babel/plugin-transform-literals-7.8.3"
-      sources."@babel/plugin-transform-modules-amd-7.9.0"
-      sources."@babel/plugin-transform-modules-commonjs-7.9.0"
-      sources."@babel/plugin-transform-modules-systemjs-7.9.0"
-      sources."@babel/plugin-transform-modules-umd-7.9.0"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.8.3"
-      sources."@babel/plugin-transform-new-target-7.8.3"
-      sources."@babel/plugin-transform-object-super-7.8.3"
-      sources."@babel/plugin-transform-parameters-7.9.3"
-      sources."@babel/plugin-transform-regenerator-7.8.7"
-      sources."@babel/plugin-transform-runtime-7.3.4"
-      sources."@babel/plugin-transform-shorthand-properties-7.8.3"
-      sources."@babel/plugin-transform-spread-7.8.3"
-      sources."@babel/plugin-transform-sticky-regex-7.8.3"
-      sources."@babel/plugin-transform-template-literals-7.8.3"
-      sources."@babel/plugin-transform-typeof-symbol-7.8.4"
-      sources."@babel/plugin-transform-unicode-regex-7.8.3"
-      sources."@babel/preset-env-7.3.4"
-      (sources."@babel/runtime-7.3.4" // {
-        dependencies = [
-          sources."regenerator-runtime-0.12.1"
-        ];
-      })
-      sources."@babel/template-7.8.6"
-      sources."@babel/traverse-7.9.0"
-      sources."@babel/types-7.9.0"
+      sources."@babel/plugin-syntax-optional-chaining-7.8.3"
+      sources."@babel/plugin-syntax-top-level-await-7.10.4"
+      sources."@babel/plugin-transform-arrow-functions-7.10.4"
+      sources."@babel/plugin-transform-async-to-generator-7.10.4"
+      sources."@babel/plugin-transform-block-scoped-functions-7.10.4"
+      sources."@babel/plugin-transform-block-scoping-7.11.1"
+      sources."@babel/plugin-transform-classes-7.10.4"
+      sources."@babel/plugin-transform-computed-properties-7.10.4"
+      sources."@babel/plugin-transform-destructuring-7.10.4"
+      sources."@babel/plugin-transform-dotall-regex-7.10.4"
+      sources."@babel/plugin-transform-duplicate-keys-7.10.4"
+      sources."@babel/plugin-transform-exponentiation-operator-7.10.4"
+      sources."@babel/plugin-transform-for-of-7.10.4"
+      sources."@babel/plugin-transform-function-name-7.10.4"
+      sources."@babel/plugin-transform-literals-7.10.4"
+      sources."@babel/plugin-transform-member-expression-literals-7.10.4"
+      sources."@babel/plugin-transform-modules-amd-7.10.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.10.4"
+      sources."@babel/plugin-transform-modules-systemjs-7.10.5"
+      sources."@babel/plugin-transform-modules-umd-7.10.4"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.10.4"
+      sources."@babel/plugin-transform-new-target-7.10.4"
+      sources."@babel/plugin-transform-object-super-7.10.4"
+      sources."@babel/plugin-transform-parameters-7.10.5"
+      sources."@babel/plugin-transform-property-literals-7.10.4"
+      sources."@babel/plugin-transform-regenerator-7.10.4"
+      sources."@babel/plugin-transform-reserved-words-7.10.4"
+      sources."@babel/plugin-transform-runtime-7.9.6"
+      sources."@babel/plugin-transform-shorthand-properties-7.10.4"
+      sources."@babel/plugin-transform-spread-7.11.0"
+      sources."@babel/plugin-transform-sticky-regex-7.10.4"
+      sources."@babel/plugin-transform-template-literals-7.10.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.10.4"
+      sources."@babel/plugin-transform-unicode-regex-7.10.4"
+      sources."@babel/preset-env-7.9.6"
+      sources."@babel/preset-modules-0.1.4"
+      sources."@babel/runtime-7.9.6"
+      sources."@babel/template-7.10.4"
+      (sources."@babel/traverse-7.11.0" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."@babel/types-7.11.0"
       sources."@hapi/address-2.1.4"
       sources."@hapi/bourne-1.3.2"
       sources."@hapi/hoek-8.5.1"
@@ -13258,27 +13253,28 @@ in
       sources."@nodelib/fs.stat-1.1.3"
       sources."@types/anymatch-1.3.1"
       sources."@types/color-name-1.1.1"
-      sources."@types/events-3.0.0"
-      sources."@types/glob-7.1.1"
-      sources."@types/html-minifier-terser-5.0.0"
+      sources."@types/glob-7.1.3"
+      sources."@types/html-minifier-terser-5.1.0"
+      sources."@types/http-proxy-1.17.4"
+      sources."@types/json-schema-7.0.5"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.11.0"
-      sources."@types/q-1.5.2"
+      sources."@types/node-14.6.2"
+      sources."@types/q-1.5.4"
       sources."@types/source-list-map-0.1.2"
-      sources."@types/tapable-1.0.5"
-      (sources."@types/uglify-js-3.0.5" // {
+      sources."@types/tapable-1.0.6"
+      (sources."@types/uglify-js-3.9.3" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      (sources."@types/webpack-4.41.10" // {
+      (sources."@types/webpack-4.41.21" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      (sources."@types/webpack-sources-0.1.7" // {
+      (sources."@types/webpack-sources-1.4.2" // {
         dependencies = [
-          sources."source-map-0.6.1"
+          sources."source-map-0.7.3"
         ];
       })
       sources."@webassemblyjs/ast-1.9.0"
@@ -13304,16 +13300,20 @@ in
       sources."accepts-1.3.7"
       sources."acorn-6.4.1"
       sources."address-1.0.3"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.4"
       sources."ajv-errors-1.0.1"
-      sources."ajv-keywords-3.4.1"
+      sources."ajv-keywords-3.5.2"
       sources."alphanum-sort-1.0.2"
       sources."ansi-colors-3.2.4"
       sources."ansi-escapes-3.2.0"
       sources."ansi-html-0.0.7"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-3.2.1"
-      sources."anymatch-3.1.1"
+      (sources."anymatch-2.0.0" // {
+        dependencies = [
+          sources."normalize-path-2.1.1"
+        ];
+      })
       sources."aproba-1.2.0"
       sources."argparse-1.0.10"
       sources."arr-diff-4.0.0"
@@ -13328,7 +13328,11 @@ in
       sources."array-unique-0.3.2"
       sources."asap-2.0.6"
       sources."asn1-0.2.4"
-      sources."asn1.js-4.10.1"
+      (sources."asn1.js-5.4.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       (sources."assert-1.5.0" // {
         dependencies = [
           sources."inherits-2.0.1"
@@ -13338,7 +13342,7 @@ in
       sources."assert-plus-1.0.0"
       (sources."assets-webpack-plugin-3.9.12" // {
         dependencies = [
-          sources."mkdirp-0.5.3"
+          sources."lodash-4.17.15"
         ];
       })
       sources."assign-symbols-1.0.0"
@@ -13353,10 +13357,10 @@ in
         ];
       })
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.1"
       sources."babel-extract-comments-1.0.0"
-      sources."babel-loader-8.0.4"
-      sources."babel-plugin-dynamic-import-node-2.3.0"
+      sources."babel-loader-8.1.0"
+      sources."babel-plugin-dynamic-import-node-2.3.3"
       sources."babel-plugin-syntax-object-rest-spread-6.13.0"
       sources."babel-plugin-transform-object-rest-spread-6.26.0"
       (sources."babel-runtime-6.26.0" // {
@@ -13376,16 +13380,14 @@ in
       sources."bcrypt-pbkdf-1.0.2"
       sources."big.js-5.2.2"
       sources."binary-0.3.0"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-1.13.1"
       sources."bindings-1.5.0"
       sources."binwrap-0.2.2"
       sources."bluebird-3.7.2"
-      sources."bn.js-4.11.8"
+      sources."bn.js-5.1.3"
       (sources."body-parser-1.19.0" // {
         dependencies = [
           sources."bytes-3.1.0"
-          sources."debug-2.6.9"
-          sources."ms-2.0.0"
           sources."qs-6.7.0"
         ];
       })
@@ -13396,15 +13398,29 @@ in
       })
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
+      (sources."braces-2.3.2" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+          sources."is-extendable-0.1.1"
+        ];
+      })
       sources."brorand-1.1.0"
       sources."browserify-aes-1.2.0"
       sources."browserify-cipher-1.0.1"
       sources."browserify-des-1.0.2"
-      sources."browserify-rsa-4.0.1"
-      sources."browserify-sign-4.0.4"
+      (sources."browserify-rsa-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (sources."browserify-sign-4.2.1" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+          sources."safe-buffer-5.2.1"
+        ];
+      })
       sources."browserify-zlib-0.2.0"
-      sources."browserslist-4.11.1"
+      sources."browserslist-4.14.0"
       sources."buffer-4.9.2"
       sources."buffer-from-1.1.1"
       sources."buffer-indexof-1.1.1"
@@ -13421,7 +13437,7 @@ in
       sources."camel-case-4.1.1"
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001039"
+      sources."caniuse-lite-1.0.30001119"
       sources."case-sensitive-paths-webpack-plugin-2.3.0"
       sources."caseless-0.12.0"
       sources."chainsaw-0.1.0"
@@ -13431,11 +13447,7 @@ in
         ];
       })
       sources."chardet-0.7.0"
-      (sources."chokidar-3.3.0" // {
-        dependencies = [
-          sources."glob-parent-5.1.1"
-        ];
-      })
+      sources."chokidar-2.1.8"
       sources."chownr-1.1.4"
       sources."chrome-trace-event-1.0.2"
       sources."cipher-base-1.0.4"
@@ -13463,7 +13475,7 @@ in
       })
       sources."cli-cursor-2.1.0"
       sources."cli-table-0.3.1"
-      sources."cli-width-2.2.0"
+      sources."cli-width-2.2.1"
       (sources."cliui-3.2.0" // {
         dependencies = [
           sources."strip-ansi-3.0.1"
@@ -13478,17 +13490,12 @@ in
       sources."color-string-1.5.3"
       sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
-      sources."commander-2.20.3"
+      sources."commander-4.1.1"
       sources."common-tags-1.8.0"
       sources."commondir-1.0.1"
       sources."component-emitter-1.3.0"
       sources."compressible-2.0.18"
-      (sources."compression-1.7.4" // {
-        dependencies = [
-          sources."debug-2.6.9"
-          sources."ms-2.0.0"
-        ];
-      })
+      sources."compression-1.7.4"
       sources."concat-map-0.0.1"
       sources."concat-stream-1.6.2"
       sources."connect-history-api-fallback-1.6.0"
@@ -13503,38 +13510,39 @@ in
       sources."copy-descriptor-0.1.1"
       (sources."copy-webpack-plugin-5.1.1" // {
         dependencies = [
-          sources."find-cache-dir-2.1.0"
-          sources."find-up-3.0.0"
-          sources."locate-path-3.0.0"
-          sources."make-dir-2.1.0"
-          sources."p-limit-2.2.2"
-          sources."p-locate-3.0.0"
-          sources."p-try-2.2.0"
-          sources."pify-4.0.1"
-          sources."pkg-dir-3.0.0"
+          sources."schema-utils-1.0.0"
         ];
       })
       sources."core-js-2.6.11"
+      (sources."core-js-compat-3.6.5" // {
+        dependencies = [
+          sources."semver-7.0.0"
+        ];
+      })
       sources."core-util-is-1.0.2"
       sources."cosmiconfig-5.2.1"
-      sources."create-ecdh-4.0.3"
+      (sources."create-ecdh-4.0.4" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."create-hash-1.2.0"
       sources."create-hmac-1.1.7"
-      sources."cross-spawn-6.0.5"
+      sources."cross-spawn-7.0.3"
       sources."crypto-browserify-3.12.0"
       sources."css-color-names-0.0.4"
       (sources."css-declaration-sorter-4.0.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
-      (sources."css-loader-3.4.2" // {
+      (sources."css-loader-3.6.0" // {
         dependencies = [
-          sources."postcss-7.0.27"
-          sources."postcss-value-parser-4.0.3"
-          sources."schema-utils-2.6.5"
+          sources."postcss-7.0.32"
+          sources."postcss-value-parser-4.1.0"
+          sources."semver-6.3.0"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
@@ -13550,14 +13558,14 @@ in
       sources."cssesc-3.0.0"
       (sources."cssnano-4.1.10" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."cssnano-preset-default-4.0.7" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
@@ -13566,7 +13574,7 @@ in
       sources."cssnano-util-get-match-4.0.0"
       (sources."cssnano-util-raw-cache-4.0.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
@@ -13582,7 +13590,7 @@ in
       sources."cycle-1.0.3"
       sources."cyclist-1.0.1"
       sources."dashdash-1.14.1"
-      sources."debug-4.1.1"
+      sources."debug-2.6.9"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
       sources."deep-equal-0.2.2"
@@ -13596,7 +13604,6 @@ in
               sources."pify-2.3.0"
             ];
           })
-          sources."pify-4.0.1"
         ];
       })
       sources."delayed-stream-1.0.0"
@@ -13604,13 +13611,12 @@ in
       sources."des.js-1.0.1"
       sources."destroy-1.0.4"
       sources."detect-node-2.0.4"
-      (sources."detect-port-alt-1.1.6" // {
+      sources."detect-port-alt-1.1.6"
+      (sources."diffie-hellman-5.0.3" // {
         dependencies = [
-          sources."debug-2.6.9"
-          sources."ms-2.0.0"
+          sources."bn.js-4.11.9"
         ];
       })
-      sources."diffie-hellman-5.0.3"
       sources."dir-glob-2.2.2"
       sources."dns-equal-1.0.0"
       sources."dns-packet-1.3.1"
@@ -13627,63 +13633,86 @@ in
       sources."domutils-1.5.1"
       sources."dot-case-3.0.3"
       sources."dot-prop-5.2.0"
-      sources."dotenv-5.0.1"
-      sources."duplexer-0.1.1"
+      sources."dotenv-8.2.0"
+      sources."duplexer-0.1.2"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.397"
-      sources."elliptic-6.5.2"
+      sources."electron-to-chromium-1.3.555"
+      (sources."elliptic-6.5.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."elm-0.19.1-3"
       sources."elm-asset-webpack-loader-1.1.2"
-      sources."elm-hot-1.1.4"
+      sources."elm-hot-1.1.5"
       sources."elm-hot-webpack-loader-1.1.6"
       (sources."elm-test-0.19.1-revision2" // {
         dependencies = [
           sources."ansi-styles-4.2.1"
+          sources."anymatch-3.1.1"
+          sources."binary-extensions-2.1.0"
+          sources."braces-3.0.2"
           sources."chalk-3.0.0"
+          sources."chokidar-3.3.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."cross-spawn-7.0.1"
+          sources."fill-range-7.0.1"
           sources."fs-extra-8.1.0"
+          sources."fsevents-2.1.3"
+          sources."glob-parent-5.1.1"
           sources."has-flag-4.0.0"
-          sources."path-key-3.1.1"
-          sources."shebang-command-2.0.0"
-          sources."shebang-regex-3.0.0"
+          sources."is-binary-path-2.1.0"
+          sources."is-number-7.0.0"
+          sources."lodash-4.17.15"
+          sources."readdirp-3.2.0"
           sources."supports-color-7.1.0"
+          sources."to-regex-range-5.0.1"
           sources."which-2.0.1"
         ];
       })
-      sources."elm-webpack-loader-6.0.0"
+      sources."elm-webpack-loader-6.0.1"
       sources."elmi-to-json-1.3.0"
+      sources."emoji-regex-7.0.3"
       sources."emojis-list-3.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      (sources."enhanced-resolve-4.1.1" // {
+      (sources."enhanced-resolve-4.3.0" // {
         dependencies = [
           sources."memory-fs-0.5.0"
         ];
       })
-      sources."entities-2.0.0"
+      sources."entities-2.0.3"
       sources."errno-0.1.7"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
+      sources."escalade-3.0.2"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-2.0.0"
       sources."eslint-scope-4.0.3"
       sources."esprima-4.0.1"
       sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
       sources."etag-1.8.1"
-      sources."eventemitter3-4.0.0"
-      sources."events-3.1.0"
+      sources."eventemitter3-4.0.7"
+      sources."events-3.2.0"
       sources."eventsource-0.1.6"
       sources."evp_bytestokey-1.0.3"
-      sources."execa-1.0.0"
+      (sources."execa-1.0.0" // {
+        dependencies = [
+          sources."cross-spawn-6.0.5"
+          sources."path-key-2.0.1"
+          sources."shebang-command-1.2.0"
+          sources."shebang-regex-1.0.0"
+          sources."which-1.3.1"
+        ];
+      })
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
-          sources."debug-2.6.9"
           sources."define-property-0.2.5"
           sources."extend-shallow-2.0.1"
           (sources."is-accessor-descriptor-0.1.6" // {
@@ -13697,56 +13726,31 @@ in
             ];
           })
           sources."is-descriptor-0.1.6"
+          sources."is-extendable-0.1.1"
           sources."kind-of-5.1.0"
-          sources."ms-2.0.0"
         ];
       })
       sources."expand-tilde-2.0.2"
       (sources."express-4.17.1" // {
         dependencies = [
           sources."array-flatten-1.1.1"
-          sources."debug-2.6.9"
-          sources."ms-2.0.0"
           sources."qs-6.7.0"
         ];
       })
       sources."extend-3.0.2"
-      (sources."extend-shallow-3.0.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
+      sources."extend-shallow-3.0.2"
       sources."external-editor-3.1.0"
       (sources."extglob-2.0.4" // {
         dependencies = [
           sources."define-property-1.0.0"
           sources."extend-shallow-2.0.1"
+          sources."is-extendable-0.1.1"
         ];
       })
       sources."extsprintf-1.3.0"
       sources."eyes-0.1.8"
-      sources."fast-deep-equal-3.1.1"
-      (sources."fast-glob-2.2.7" // {
-        dependencies = [
-          (sources."braces-2.3.2" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
-          (sources."fill-range-4.0.0" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
-          (sources."is-number-3.0.0" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."micromatch-3.1.10"
-          sources."to-regex-range-2.1.1"
-        ];
-      })
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-glob-2.2.7"
       sources."fast-json-stable-stringify-2.1.0"
       sources."faye-websocket-0.11.3"
       sources."figgy-pudding-3.5.2"
@@ -13762,28 +13766,25 @@ in
       })
       sources."file-uri-to-path-1.0.0"
       sources."filesize-3.6.1"
-      sources."fill-range-7.0.1"
-      (sources."finalhandler-1.1.2" // {
+      (sources."fill-range-4.0.0" // {
         dependencies = [
-          sources."debug-2.6.9"
-          sources."ms-2.0.0"
+          sources."extend-shallow-2.0.1"
+          sources."is-extendable-0.1.1"
         ];
       })
-      sources."find-cache-dir-1.0.0"
+      sources."finalhandler-1.1.2"
+      sources."find-cache-dir-2.1.0"
       (sources."find-elm-dependencies-2.0.2" // {
         dependencies = [
           sources."firstline-1.2.0"
+          sources."lodash-4.17.15"
         ];
       })
       sources."find-parent-dir-0.3.0"
-      sources."find-up-2.1.0"
+      sources."find-up-3.0.0"
       sources."firstline-2.0.2"
       sources."flush-write-stream-1.1.1"
-      (sources."follow-redirects-1.11.0" // {
-        dependencies = [
-          sources."debug-3.2.6"
-        ];
-      })
+      sources."follow-redirects-1.13.0"
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
@@ -13796,8 +13797,9 @@ in
       sources."fs-readdir-recursive-1.1.0"
       sources."fs-write-stream-atomic-1.0.10"
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.2"
+      sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
+      sources."gensync-1.0.0-beta.1"
       sources."get-caller-file-1.0.3"
       sources."get-own-enumerable-property-symbols-3.0.2"
       sources."get-stream-4.1.0"
@@ -13811,33 +13813,42 @@ in
       })
       sources."glob-to-regexp-0.3.0"
       sources."global-modules-1.0.0"
-      sources."global-prefix-1.0.2"
+      (sources."global-prefix-1.0.2" // {
+        dependencies = [
+          sources."which-1.3.1"
+        ];
+      })
       sources."globals-11.12.0"
       (sources."globby-7.1.1" // {
         dependencies = [
+          sources."pify-3.0.0"
           sources."slash-1.0.0"
         ];
       })
-      sources."graceful-fs-4.2.3"
-      sources."gzip-size-5.0.0"
+      sources."graceful-fs-4.2.4"
+      (sources."gzip-size-5.0.0" // {
+        dependencies = [
+          sources."pify-3.0.0"
+        ];
+      })
       sources."handle-thing-2.0.1"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."has-symbols-1.0.1"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
-          (sources."is-number-3.0.0" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
           sources."kind-of-4.0.0"
         ];
       })
-      sources."hash-base-3.0.4"
+      (sources."hash-base-3.1.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+          sources."safe-buffer-5.2.1"
+        ];
+      })
       sources."hash.js-1.1.7"
       sources."he-1.2.0"
       sources."hex-color-regex-1.1.0"
@@ -13848,17 +13859,9 @@ in
       sources."hsl-regex-1.0.0"
       sources."hsla-regex-1.0.0"
       sources."html-comment-regex-1.1.2"
-      sources."html-entities-1.2.1"
-      (sources."html-minifier-terser-5.0.5" // {
-        dependencies = [
-          sources."commander-4.1.1"
-        ];
-      })
-      (sources."html-webpack-plugin-4.0.4" // {
-        dependencies = [
-          sources."util.promisify-1.0.0"
-        ];
-      })
+      sources."html-entities-1.3.1"
+      sources."html-minifier-terser-5.1.1"
+      sources."html-webpack-plugin-4.3.0"
       (sources."htmlparser2-3.10.1" // {
         dependencies = [
           sources."entities-1.1.2"
@@ -13871,16 +13874,24 @@ in
           sources."inherits-2.0.3"
         ];
       })
-      sources."http-parser-js-0.4.10"
-      sources."http-proxy-1.18.0"
-      sources."http-proxy-middleware-0.20.0"
+      sources."http-parser-js-0.5.2"
+      sources."http-proxy-1.18.1"
+      (sources."http-proxy-middleware-0.21.0" // {
+        dependencies = [
+          sources."braces-3.0.2"
+          sources."fill-range-7.0.1"
+          sources."is-number-7.0.0"
+          sources."micromatch-4.0.2"
+          sources."to-regex-range-5.0.1"
+        ];
+      })
       sources."http-signature-1.2.0"
       sources."https-browserify-1.0.0"
       sources."i-0.3.6"
       sources."iconv-lite-0.4.24"
       (sources."icss-utils-4.1.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
@@ -13889,17 +13900,10 @@ in
       sources."iferr-0.1.5"
       sources."ignore-3.3.10"
       sources."immer-1.7.2"
+      sources."import-cwd-2.1.0"
       sources."import-fresh-2.0.0"
-      (sources."import-local-2.0.0" // {
-        dependencies = [
-          sources."find-up-3.0.0"
-          sources."locate-path-3.0.0"
-          sources."p-limit-2.2.2"
-          sources."p-locate-3.0.0"
-          sources."p-try-2.2.0"
-          sources."pkg-dir-3.0.0"
-        ];
-      })
+      sources."import-from-2.1.0"
+      sources."import-local-2.0.0"
       sources."imurmurhash-0.1.4"
       sources."indexes-of-1.0.1"
       sources."infer-owner-1.0.4"
@@ -13925,27 +13929,29 @@ in
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arguments-1.0.4"
       sources."is-arrayish-0.2.1"
-      sources."is-binary-path-2.1.0"
+      sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-callable-1.1.5"
+      sources."is-callable-1.2.0"
       sources."is-color-stop-1.1.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
       sources."is-directory-0.3.1"
-      sources."is-extendable-0.1.1"
+      sources."is-extendable-1.0.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-glob-4.0.1"
-      sources."is-number-7.0.0"
+      (sources."is-number-3.0.0" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
       sources."is-obj-2.0.0"
       sources."is-path-cwd-2.2.0"
       sources."is-path-in-cwd-2.1.0"
       sources."is-path-inside-2.1.0"
-      sources."is-plain-obj-1.1.0"
       sources."is-plain-object-2.0.4"
-      sources."is-promise-2.1.0"
-      sources."is-regex-1.0.5"
+      sources."is-regex-1.1.1"
       sources."is-regexp-1.0.0"
       sources."is-resolvable-1.1.0"
       sources."is-root-2.0.0"
@@ -13960,9 +13966,8 @@ in
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
       sources."isstream-0.1.2"
-      sources."js-levenshtein-1.1.6"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
       sources."jsesc-2.5.2"
       sources."json-parse-better-errors-1.0.2"
@@ -13971,7 +13976,7 @@ in
       sources."json-stable-stringify-1.0.1"
       sources."json-stringify-safe-5.0.1"
       sources."json3-3.3.3"
-      sources."json5-2.1.2"
+      sources."json5-2.1.3"
       sources."jsonfile-4.0.0"
       sources."jsonify-0.0.0"
       sources."jsprim-1.4.1"
@@ -13979,6 +13984,8 @@ in
       sources."kind-of-6.0.3"
       sources."last-call-webpack-plugin-3.0.0"
       sources."lcid-1.0.0"
+      sources."leven-3.1.0"
+      sources."levenary-1.1.1"
       (sources."load-json-file-1.1.0" // {
         dependencies = [
           sources."parse-json-2.2.0"
@@ -13991,40 +13998,42 @@ in
           sources."json5-1.0.1"
         ];
       })
-      sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."locate-path-3.0.0"
+      sources."lodash-4.17.20"
       sources."lodash._reinterpolate-3.0.0"
       sources."lodash.memoize-4.1.2"
       sources."lodash.template-4.5.0"
       sources."lodash.templatesettings-4.2.0"
       sources."lodash.uniq-4.5.0"
-      sources."loglevel-1.6.7"
+      sources."loglevel-1.7.0"
       sources."loose-envify-1.4.0"
       sources."lower-case-2.0.1"
       sources."lru-cache-5.1.1"
-      sources."make-dir-1.3.0"
-      sources."map-age-cleaner-0.1.3"
+      sources."make-dir-2.1.0"
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."md5.js-1.3.5"
       sources."mdn-data-2.0.4"
       sources."media-typer-0.3.0"
-      (sources."mem-4.3.0" // {
-        dependencies = [
-          sources."mimic-fn-2.1.0"
-        ];
-      })
       sources."memory-fs-0.4.1"
       sources."merge-descriptors-1.0.1"
-      sources."merge2-1.3.0"
+      sources."merge2-1.4.1"
       sources."methods-1.1.2"
-      sources."micromatch-4.0.2"
-      sources."miller-rabin-4.0.1"
-      sources."mime-2.4.4"
-      sources."mime-db-1.43.0"
-      sources."mime-types-2.1.26"
+      sources."micromatch-3.1.10"
+      (sources."miller-rabin-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."mime-2.4.6"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
       sources."mimic-fn-1.2.0"
-      sources."mini-css-extract-plugin-0.4.5"
+      (sources."mini-css-extract-plugin-0.4.5" // {
+        dependencies = [
+          sources."schema-utils-1.0.0"
+        ];
+      })
       sources."minimalistic-assert-1.0.1"
       sources."minimalistic-crypto-utils-1.0.1"
       sources."minimatch-3.0.4"
@@ -14032,39 +14041,48 @@ in
       sources."minipass-2.9.0"
       sources."minizlib-1.3.3"
       sources."mississippi-3.0.0"
-      (sources."mixin-deep-1.3.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
-      sources."mkdirp-0.5.5"
+      sources."mixin-deep-1.3.2"
+      sources."mkdirp-0.5.3"
       sources."move-concurrently-1.0.1"
-      sources."ms-2.1.2"
+      sources."ms-2.0.0"
       sources."multicast-dns-6.2.3"
       sources."multicast-dns-service-types-1.1.0"
       sources."murmur-hash-js-1.0.0"
       sources."mustache-3.2.1"
       sources."mute-stream-0.0.8"
-      sources."nan-2.14.0"
+      sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
       sources."ncp-1.0.1"
       sources."negotiator-0.6.2"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       sources."nice-try-1.0.5"
       sources."no-case-3.0.3"
-      sources."node-elm-compiler-5.0.4"
+      (sources."node-elm-compiler-5.0.4" // {
+        dependencies = [
+          sources."cross-spawn-6.0.5"
+          sources."lodash-4.17.15"
+          sources."path-key-2.0.1"
+          sources."shebang-command-1.2.0"
+          sources."shebang-regex-1.0.0"
+          sources."which-1.3.1"
+        ];
+      })
       sources."node-forge-0.9.0"
       (sources."node-libs-browser-2.2.1" // {
         dependencies = [
           sources."punycode-1.4.1"
         ];
       })
-      sources."node-releases-1.1.53"
+      sources."node-releases-1.1.60"
       sources."normalize-package-data-2.5.0"
       sources."normalize-path-3.0.0"
       sources."normalize-range-0.1.2"
       sources."normalize-url-3.3.0"
-      sources."npm-run-path-2.0.2"
+      (sources."npm-run-path-2.0.2" // {
+        dependencies = [
+          sources."path-key-2.0.1"
+        ];
+      })
       sources."nth-check-1.0.2"
       sources."num2fraction-1.2.2"
       sources."number-is-nan-1.0.1"
@@ -14083,12 +14101,12 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.7.0"
-      sources."object-is-1.0.2"
+      sources."object-inspect-1.8.0"
+      sources."object-is-1.1.2"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
       sources."object.assign-4.1.0"
-      sources."object.entries-1.1.1"
+      sources."object.entries-1.1.2"
       sources."object.getownpropertydescriptors-2.1.0"
       sources."object.pick-1.3.0"
       sources."object.values-1.1.1"
@@ -14101,22 +14119,18 @@ in
       sources."optimize-css-assets-webpack-plugin-5.0.3"
       sources."original-1.0.2"
       sources."os-browserify-0.3.0"
-      sources."os-homedir-1.0.2"
       sources."os-locale-1.4.0"
       sources."os-tmpdir-1.0.2"
-      sources."output-file-sync-2.0.1"
-      sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
-      sources."p-is-promise-2.1.0"
-      sources."p-limit-1.3.0"
-      sources."p-locate-2.0.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-3.0.0"
       sources."p-map-2.1.0"
       sources."p-retry-3.0.1"
-      sources."p-try-1.0.0"
+      sources."p-try-2.2.0"
       sources."pako-1.0.11"
       sources."parallel-transform-1.2.0"
       sources."param-case-3.0.3"
-      sources."parse-asn1-5.1.5"
+      sources."parse-asn1-5.1.6"
       sources."parse-json-4.0.0"
       sources."parse-passwd-1.0.0"
       sources."parseurl-1.3.3"
@@ -14127,23 +14141,37 @@ in
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-is-inside-1.0.2"
-      sources."path-key-2.0.1"
+      sources."path-key-3.1.1"
       sources."path-parse-1.0.6"
       sources."path-to-regexp-0.1.7"
-      sources."path-type-3.0.0"
-      sources."pbkdf2-3.0.17"
+      (sources."path-type-3.0.0" // {
+        dependencies = [
+          sources."pify-3.0.0"
+        ];
+      })
+      sources."pbkdf2-3.1.1"
       sources."performance-now-2.1.0"
       sources."picomatch-2.2.2"
-      sources."pify-3.0.0"
+      sources."pify-4.0.1"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
-      sources."pkg-dir-2.0.0"
-      sources."pkg-up-2.0.0"
+      sources."pkg-dir-3.0.0"
+      (sources."pkg-up-2.0.0" // {
+        dependencies = [
+          sources."find-up-2.1.0"
+          sources."locate-path-2.0.0"
+          sources."p-limit-1.3.0"
+          sources."p-locate-2.0.0"
+          sources."p-try-1.0.0"
+        ];
+      })
       sources."pkginfo-0.4.1"
-      (sources."portfinder-1.0.25" // {
+      (sources."portfinder-1.0.28" // {
         dependencies = [
           sources."async-2.6.3"
           sources."debug-3.2.6"
+          sources."mkdirp-0.5.5"
+          sources."ms-2.1.2"
         ];
       })
       sources."posix-character-classes-0.1.1"
@@ -14152,90 +14180,82 @@ in
           sources."source-map-0.6.1"
         ];
       })
-      (sources."postcss-calc-7.0.2" // {
+      (sources."postcss-calc-7.0.3" // {
         dependencies = [
-          sources."postcss-7.0.27"
-          sources."postcss-value-parser-4.0.3"
+          sources."postcss-7.0.32"
+          sources."postcss-value-parser-4.1.0"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-colormin-4.0.3" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-convert-values-4.0.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-discard-comments-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-discard-duplicates-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-discard-empty-4.0.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-discard-overridden-4.0.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
-      sources."postcss-flexbugs-fixes-3.3.1"
-      (sources."postcss-load-config-1.2.0" // {
+      (sources."postcss-flexbugs-fixes-4.2.1" // {
         dependencies = [
-          sources."cosmiconfig-2.2.2"
-          sources."parse-json-2.2.0"
-        ];
-      })
-      (sources."postcss-load-options-1.2.0" // {
-        dependencies = [
-          sources."cosmiconfig-2.2.2"
-          sources."parse-json-2.2.0"
-        ];
-      })
-      (sources."postcss-load-plugins-2.3.0" // {
-        dependencies = [
-          sources."cosmiconfig-2.2.2"
-          sources."parse-json-2.2.0"
+          sources."postcss-7.0.32"
+          sources."source-map-0.6.1"
+          sources."supports-color-6.1.0"
         ];
       })
-      (sources."postcss-loader-2.1.5" // {
+      sources."postcss-load-config-2.1.0"
+      (sources."postcss-loader-3.0.0" // {
         dependencies = [
-          sources."schema-utils-0.4.7"
+          sources."postcss-7.0.32"
+          sources."schema-utils-1.0.0"
+          sources."source-map-0.6.1"
+          sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-merge-longhand-4.0.11" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-merge-rules-4.0.3" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."postcss-selector-parser-3.1.2"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
@@ -14243,28 +14263,28 @@ in
       })
       (sources."postcss-minify-font-values-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-minify-gradients-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-minify-params-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-minify-selectors-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."postcss-selector-parser-3.1.2"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
@@ -14272,120 +14292,120 @@ in
       })
       (sources."postcss-modules-extract-imports-2.0.0" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
-      (sources."postcss-modules-local-by-default-3.0.2" // {
+      (sources."postcss-modules-local-by-default-3.0.3" // {
         dependencies = [
-          sources."postcss-7.0.27"
-          sources."postcss-value-parser-4.0.3"
+          sources."postcss-7.0.32"
+          sources."postcss-value-parser-4.1.0"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-modules-scope-2.2.0" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-modules-values-3.0.0" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-normalize-charset-4.0.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-normalize-display-values-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-normalize-positions-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-normalize-repeat-style-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-normalize-string-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-normalize-timing-functions-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-normalize-unicode-4.0.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-normalize-url-4.0.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-normalize-whitespace-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-ordered-values-4.1.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-reduce-initial-4.0.3" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-reduce-transforms-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-safe-parser-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
@@ -14393,14 +14413,14 @@ in
       sources."postcss-selector-parser-6.0.2"
       (sources."postcss-svgo-4.0.2" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
       })
       (sources."postcss-unique-selectors-4.0.1" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
         ];
@@ -14408,7 +14428,6 @@ in
       sources."postcss-value-parser-3.3.1"
       sources."pretty-bytes-5.3.0"
       sources."pretty-error-2.1.1"
-      sources."private-0.1.8"
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
       sources."promise-8.1.0"
@@ -14422,7 +14441,11 @@ in
       sources."prr-1.0.1"
       sources."pseudomap-1.0.2"
       sources."psl-1.8.0"
-      sources."public-encrypt-4.0.3"
+      (sources."public-encrypt-4.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
       sources."pump-3.0.0"
       (sources."pumpify-1.5.1" // {
         dependencies = [
@@ -14434,7 +14457,7 @@ in
       sources."qs-6.5.2"
       sources."querystring-0.2.0"
       sources."querystring-es3-0.2.1"
-      sources."querystringify-2.1.1"
+      sources."querystringify-2.2.0"
       sources."randombytes-2.1.0"
       sources."randomfill-1.0.4"
       sources."range-parser-1.2.1"
@@ -14450,22 +14473,21 @@ in
           sources."big.js-3.2.0"
           sources."browserslist-4.1.1"
           sources."chalk-2.4.1"
-          sources."debug-2.6.9"
+          sources."cross-spawn-6.0.5"
           sources."emojis-list-2.1.0"
           sources."escape-string-regexp-1.0.5"
-          sources."find-up-3.0.0"
           sources."globby-8.0.1"
           sources."json5-0.5.1"
           sources."loader-utils-1.1.0"
-          sources."locate-path-3.0.0"
-          sources."ms-2.0.0"
-          sources."p-limit-2.2.2"
-          sources."p-locate-3.0.0"
-          sources."p-try-2.2.0"
+          sources."path-key-2.0.1"
+          sources."pify-3.0.0"
           sources."react-error-overlay-5.1.6"
+          sources."shebang-command-1.2.0"
+          sources."shebang-regex-1.0.0"
           sources."slash-1.0.0"
           sources."sockjs-client-1.1.5"
           sources."strip-ansi-4.0.0"
+          sources."which-1.3.1"
         ];
       })
       sources."react-error-overlay-4.0.1"
@@ -14483,20 +14505,16 @@ in
         ];
       })
       sources."readable-stream-2.3.7"
-      sources."readdirp-3.2.0"
+      sources."readdirp-2.2.1"
       sources."recursive-readdir-2.2.2"
-      sources."regenerate-1.4.0"
+      sources."regenerate-1.4.1"
       sources."regenerate-unicode-properties-8.2.0"
-      sources."regenerator-runtime-0.13.5"
-      (sources."regenerator-transform-0.14.4" // {
-        dependencies = [
-          sources."@babel/runtime-7.9.2"
-        ];
-      })
+      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-transform-0.14.5"
       sources."regex-not-1.0.2"
       sources."regexp.prototype.flags-1.3.0"
       sources."regexpu-core-4.7.0"
-      sources."regjsgen-0.5.1"
+      sources."regjsgen-0.5.2"
       (sources."regjsparser-0.6.4" // {
         dependencies = [
           sources."jsesc-0.5.0"
@@ -14512,13 +14530,12 @@ in
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
       sources."request-2.88.2"
-      sources."request-promise-4.2.5"
-      sources."request-promise-core-1.1.3"
+      sources."request-promise-4.2.6"
+      sources."request-promise-core-1.1.4"
       sources."require-directory-2.1.1"
-      sources."require-from-string-1.2.1"
       sources."require-main-filename-1.0.1"
       sources."requires-port-1.0.0"
-      sources."resolve-1.15.1"
+      sources."resolve-1.17.0"
       sources."resolve-cwd-2.0.0"
       sources."resolve-dir-1.0.1"
       sources."resolve-from-3.0.0"
@@ -14531,24 +14548,19 @@ in
       sources."rgba-regex-1.0.0"
       sources."rimraf-2.7.1"
       sources."ripemd160-2.0.2"
-      sources."run-async-2.4.0"
+      sources."run-async-2.4.1"
       sources."run-queue-1.0.3"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.2"
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      sources."schema-utils-1.0.0"
+      sources."schema-utils-2.7.0"
       sources."select-hose-2.0.0"
       sources."selfsigned-1.10.7"
       sources."semver-5.7.1"
       (sources."send-0.17.1" // {
         dependencies = [
-          (sources."debug-2.6.9" // {
-            dependencies = [
-              sources."ms-2.0.0"
-            ];
-          })
           sources."mime-1.6.0"
           sources."ms-2.1.1"
         ];
@@ -14556,10 +14568,8 @@ in
       sources."serialize-javascript-2.1.2"
       (sources."serve-index-1.9.1" // {
         dependencies = [
-          sources."debug-2.6.9"
           sources."http-errors-1.6.3"
           sources."inherits-2.0.3"
-          sources."ms-2.0.0"
           sources."setprototypeof-1.1.0"
         ];
       })
@@ -14568,13 +14578,14 @@ in
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
+          sources."is-extendable-0.1.1"
         ];
       })
       sources."setimmediate-1.0.5"
       sources."setprototypeof-1.1.1"
       sources."sha.js-2.4.11"
-      sources."shebang-command-1.2.0"
-      sources."shebang-regex-1.0.0"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
       sources."shell-quote-1.6.1"
       sources."signal-exit-3.0.3"
       (sources."simple-swizzle-0.2.2" // {
@@ -14585,7 +14596,6 @@ in
       sources."slash-2.0.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
-          sources."debug-2.6.9"
           sources."define-property-0.2.5"
           sources."extend-shallow-2.0.1"
           (sources."is-accessor-descriptor-0.1.6" // {
@@ -14599,8 +14609,8 @@ in
             ];
           })
           sources."is-descriptor-0.1.6"
+          sources."is-extendable-0.1.1"
           sources."kind-of-5.1.0"
-          sources."ms-2.0.0"
         ];
       })
       (sources."snapdragon-node-2.1.1" // {
@@ -14613,33 +14623,42 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      (sources."sockjs-0.3.19" // {
+      (sources."sockjs-0.3.20" // {
         dependencies = [
           sources."faye-websocket-0.10.0"
+          sources."websocket-driver-0.6.5"
         ];
       })
       (sources."sockjs-client-1.4.0" // {
         dependencies = [
           sources."debug-3.2.6"
           sources."eventsource-1.0.7"
+          sources."ms-2.1.2"
         ];
       })
       sources."source-list-map-2.0.1"
       sources."source-map-0.5.7"
       sources."source-map-resolve-0.5.3"
-      (sources."source-map-support-0.5.16" // {
+      (sources."source-map-support-0.5.19" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
       sources."source-map-url-0.4.0"
-      sources."spdx-correct-3.1.0"
-      sources."spdx-exceptions-2.2.0"
-      sources."spdx-expression-parse-3.0.0"
+      sources."spdx-correct-3.1.1"
+      sources."spdx-exceptions-2.3.0"
+      sources."spdx-expression-parse-3.0.1"
       sources."spdx-license-ids-3.0.5"
-      sources."spdy-4.0.2"
+      (sources."spdy-4.0.2" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."ms-2.1.2"
+        ];
+      })
       (sources."spdy-transport-3.0.0" // {
         dependencies = [
+          sources."debug-4.2.0"
+          sources."ms-2.1.2"
           sources."readable-stream-3.6.0"
         ];
       })
@@ -14673,16 +14692,14 @@ in
       sources."stream-each-1.2.3"
       sources."stream-http-2.8.3"
       sources."stream-shift-1.0.1"
-      sources."string-replace-loader-2.2.0"
+      sources."string-replace-loader-2.3.0"
       (sources."string-width-1.0.2" // {
         dependencies = [
           sources."strip-ansi-3.0.1"
         ];
       })
-      sources."string.prototype.trimend-1.0.0"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
-      sources."string.prototype.trimstart-1.0.0"
+      sources."string.prototype.trimend-1.0.1"
+      sources."string.prototype.trimstart-1.0.1"
       sources."string_decoder-1.1.1"
       (sources."stringify-object-3.3.0" // {
         dependencies = [
@@ -14697,14 +14714,14 @@ in
       sources."strip-bom-2.0.0"
       sources."strip-comments-1.0.2"
       sources."strip-eof-1.0.0"
-      (sources."style-loader-0.21.0" // {
+      (sources."style-loader-0.23.1" // {
         dependencies = [
-          sources."schema-utils-0.4.7"
+          sources."schema-utils-1.0.0"
         ];
       })
       (sources."stylehacks-4.0.3" // {
         dependencies = [
-          sources."postcss-7.0.27"
+          sources."postcss-7.0.32"
           sources."postcss-selector-parser-3.1.2"
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
@@ -14714,7 +14731,7 @@ in
       (sources."svgo-1.3.2" // {
         dependencies = [
           sources."css-select-2.1.0"
-          sources."css-what-3.2.1"
+          sources."css-what-3.3.0"
           sources."domutils-1.7.0"
         ];
       })
@@ -14725,22 +14742,16 @@ in
           sources."rimraf-2.6.3"
         ];
       })
-      (sources."terser-4.6.10" // {
+      (sources."terser-4.8.0" // {
         dependencies = [
+          sources."commander-2.20.3"
           sources."source-map-0.6.1"
         ];
       })
-      (sources."terser-webpack-plugin-1.4.3" // {
+      (sources."terser-webpack-plugin-1.4.5" // {
         dependencies = [
-          sources."find-cache-dir-2.1.0"
-          sources."find-up-3.0.0"
-          sources."locate-path-3.0.0"
-          sources."make-dir-2.1.0"
-          sources."p-limit-2.2.2"
-          sources."p-locate-3.0.0"
-          sources."p-try-2.2.0"
-          sources."pify-4.0.1"
-          sources."pkg-dir-3.0.0"
+          sources."schema-utils-1.0.0"
+          sources."serialize-javascript-4.0.0"
           sources."source-map-0.6.1"
         ];
       })
@@ -14759,11 +14770,11 @@ in
         ];
       })
       sources."to-regex-3.0.2"
-      sources."to-regex-range-5.0.1"
+      sources."to-regex-range-2.1.1"
       sources."toidentifier-1.0.0"
       sources."tough-cookie-2.5.0"
       sources."traverse-0.3.9"
-      sources."tslib-1.11.1"
+      sources."tslib-1.13.0"
       sources."tty-browserify-0.0.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
@@ -14778,8 +14789,17 @@ in
       (sources."uglifyjs-webpack-plugin-1.3.0" // {
         dependencies = [
           sources."cacache-10.0.4"
+          sources."find-cache-dir-1.0.0"
+          sources."find-up-2.1.0"
+          sources."locate-path-2.0.0"
           sources."lru-cache-4.1.5"
+          sources."make-dir-1.3.0"
           sources."mississippi-2.0.0"
+          sources."p-limit-1.3.0"
+          sources."p-locate-2.0.0"
+          sources."p-try-1.0.0"
+          sources."pify-3.0.0"
+          sources."pkg-dir-2.0.0"
           sources."pump-2.0.1"
           sources."schema-utils-0.4.7"
           sources."serialize-javascript-1.9.1"
@@ -14792,7 +14812,11 @@ in
       sources."unicode-match-property-ecmascript-1.0.4"
       sources."unicode-match-property-value-ecmascript-1.2.0"
       sources."unicode-property-aliases-ecmascript-1.1.0"
-      sources."union-value-1.0.1"
+      (sources."union-value-1.0.1" // {
+        dependencies = [
+          sources."is-extendable-0.1.1"
+        ];
+      })
       sources."uniq-1.0.1"
       sources."uniqs-2.0.0"
       sources."unique-filename-1.1.1"
@@ -14819,7 +14843,11 @@ in
           sources."punycode-1.3.2"
         ];
       })
-      sources."url-loader-1.1.2"
+      (sources."url-loader-1.1.2" // {
+        dependencies = [
+          sources."schema-utils-1.0.0"
+        ];
+      })
       sources."url-parse-1.4.7"
       sources."use-3.1.1"
       (sources."util-0.11.1" // {
@@ -14828,7 +14856,7 @@ in
         ];
       })
       sources."util-deprecate-1.0.2"
-      sources."util.promisify-1.0.1"
+      sources."util.promisify-1.0.0"
       sources."utila-0.4.0"
       sources."utile-0.3.0"
       sources."utils-merge-1.0.1"
@@ -14838,82 +14866,62 @@ in
       sources."vendors-1.0.4"
       sources."verror-1.10.0"
       sources."vm-browserify-1.1.2"
-      (sources."watchpack-1.6.1" // {
-        dependencies = [
-          sources."anymatch-2.0.0"
-          sources."binary-extensions-1.13.1"
-          sources."braces-2.3.2"
-          sources."chokidar-2.1.8"
-          sources."extend-shallow-2.0.1"
-          sources."fill-range-4.0.0"
-          sources."fsevents-1.2.12"
-          sources."is-binary-path-1.0.1"
-          sources."is-number-3.0.0"
-          sources."kind-of-3.2.2"
-          sources."micromatch-3.1.10"
-          sources."normalize-path-2.1.1"
-          sources."readdirp-2.2.1"
-          sources."to-regex-range-2.1.1"
+      (sources."watchpack-1.7.4" // {
+        dependencies = [
+          sources."anymatch-3.1.1"
+          sources."binary-extensions-2.1.0"
+          sources."braces-3.0.2"
+          sources."chokidar-3.4.2"
+          sources."fill-range-7.0.1"
+          sources."fsevents-2.1.3"
+          sources."glob-parent-5.1.1"
+          sources."is-binary-path-2.1.0"
+          sources."is-number-7.0.0"
+          sources."readdirp-3.4.0"
+          sources."to-regex-range-5.0.1"
         ];
       })
+      sources."watchpack-chokidar2-2.0.0"
       sources."wbuf-1.7.3"
-      (sources."webpack-4.42.1" // {
+      (sources."webpack-4.43.0" // {
         dependencies = [
-          sources."braces-2.3.2"
-          sources."extend-shallow-2.0.1"
-          sources."fill-range-4.0.0"
-          sources."is-number-3.0.0"
-          sources."kind-of-3.2.2"
-          sources."micromatch-3.1.10"
-          sources."to-regex-range-2.1.1"
+          sources."schema-utils-1.0.0"
         ];
       })
       sources."webpack-dev-middleware-3.7.2"
-      (sources."webpack-dev-server-3.10.3" // {
+      (sources."webpack-dev-server-3.11.0" // {
         dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."anymatch-2.0.0"
-          sources."binary-extensions-1.13.1"
-          sources."braces-2.3.2"
-          sources."chokidar-2.1.8"
-          (sources."cliui-4.1.0" // {
+          sources."ansi-regex-4.1.0"
+          (sources."cliui-5.0.0" // {
             dependencies = [
-              sources."strip-ansi-4.0.0"
+              sources."strip-ansi-5.2.0"
             ];
           })
-          sources."extend-shallow-2.0.1"
-          sources."fill-range-4.0.0"
-          sources."find-up-3.0.0"
-          sources."fsevents-1.2.12"
+          sources."debug-4.2.0"
+          sources."get-caller-file-2.0.5"
           sources."http-proxy-middleware-0.19.1"
-          sources."invert-kv-2.0.0"
           sources."is-absolute-url-3.0.3"
-          sources."is-binary-path-1.0.1"
           sources."is-fullwidth-code-point-2.0.0"
-          sources."is-number-3.0.0"
-          sources."kind-of-3.2.2"
-          sources."lcid-2.0.0"
-          sources."locate-path-3.0.0"
-          sources."micromatch-3.1.10"
-          sources."normalize-path-2.1.1"
+          sources."ms-2.1.2"
           sources."opn-5.5.0"
-          sources."os-locale-3.1.0"
-          sources."p-limit-2.2.2"
-          sources."p-locate-3.0.0"
-          sources."p-try-2.2.0"
-          sources."readdirp-2.2.1"
+          sources."require-main-filename-2.0.0"
+          sources."schema-utils-1.0.0"
           sources."semver-6.3.0"
-          (sources."string-width-2.1.1" // {
+          (sources."string-width-3.1.0" // {
             dependencies = [
-              sources."strip-ansi-4.0.0"
+              sources."strip-ansi-5.2.0"
             ];
           })
           sources."strip-ansi-3.0.1"
           sources."supports-color-6.1.0"
-          sources."to-regex-range-2.1.1"
           sources."which-module-2.0.0"
-          sources."yargs-12.0.5"
-          sources."yargs-parser-11.1.1"
+          (sources."wrap-ansi-5.1.0" // {
+            dependencies = [
+              sources."strip-ansi-5.2.0"
+            ];
+          })
+          sources."yargs-13.3.2"
+          sources."yargs-parser-13.1.2"
         ];
       })
       sources."webpack-log-2.0.0"
@@ -14927,10 +14935,10 @@ in
           sources."source-map-0.6.1"
         ];
       })
-      sources."websocket-driver-0.7.3"
-      sources."websocket-extensions-0.1.3"
-      sources."whatwg-fetch-2.0.4"
-      sources."which-1.3.1"
+      sources."websocket-driver-0.7.4"
+      sources."websocket-extensions-0.1.4"
+      sources."whatwg-fetch-3.0.0"
+      sources."which-2.0.2"
       sources."which-module-1.0.0"
       (sources."winston-2.1.1" // {
         dependencies = [
@@ -14992,4 +15000,112 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  elm-optimize-level-2 = nodeEnv.buildNodePackage {
+    name = "elm-optimize-level-2";
+    packageName = "elm-optimize-level-2";
+    version = "0.1.3";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/elm-optimize-level-2/-/elm-optimize-level-2-0.1.3.tgz";
+      sha512 = "RC5Pz/U6Hf244j95SIxmO33Cc7XZhj4KYKZCFJYGpeb1YGARciBv2AOikm9pBHErtiKtiJwzEWHBoruhpAZnAQ==";
+    };
+    dependencies = [
+      (sources."@jest/types-25.5.0" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+        ];
+      })
+      sources."@types/color-name-1.1.1"
+      sources."@types/istanbul-lib-coverage-2.0.3"
+      sources."@types/istanbul-lib-report-3.0.0"
+      sources."@types/istanbul-reports-1.1.2"
+      sources."@types/jest-26.0.10"
+      sources."@types/node-14.6.2"
+      sources."@types/yargs-15.0.5"
+      sources."@types/yargs-parser-15.0.0"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-4.2.1"
+      sources."balanced-match-1.0.0"
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."bs-logger-0.2.6"
+      sources."buffer-from-1.1.1"
+      sources."camelcase-5.3.1"
+      sources."chalk-4.1.0"
+      sources."ci-info-2.0.0"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."commander-6.1.0"
+      sources."concat-map-0.0.1"
+      (sources."cross-spawn-6.0.5" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."decamelize-1.2.0"
+      sources."diff-sequences-25.2.6"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fill-range-7.0.1"
+      sources."find-elm-dependencies-2.0.4"
+      sources."firstline-1.3.1"
+      sources."fs.realpath-1.0.0"
+      sources."glob-7.1.6"
+      sources."graceful-fs-4.2.4"
+      sources."has-flag-4.0.0"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."is-ci-2.0.0"
+      sources."is-number-7.0.0"
+      sources."isexe-2.0.0"
+      (sources."jest-diff-25.5.0" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+        ];
+      })
+      sources."jest-get-type-25.2.6"
+      (sources."jest-util-26.3.0" // {
+        dependencies = [
+          sources."@jest/types-26.3.0"
+          sources."@types/istanbul-reports-3.0.0"
+        ];
+      })
+      sources."json5-2.1.3"
+      sources."lodash-4.17.20"
+      sources."lodash.memoize-4.1.2"
+      sources."make-error-1.3.6"
+      sources."micromatch-4.0.2"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."mkdirp-1.0.4"
+      sources."nice-try-1.0.5"
+      sources."node-elm-compiler-5.0.5"
+      sources."once-1.4.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-key-2.0.1"
+      sources."picomatch-2.2.2"
+      sources."pretty-format-25.5.0"
+      sources."react-is-16.13.1"
+      sources."rimraf-2.6.3"
+      sources."semver-7.3.2"
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
+      sources."supports-color-7.2.0"
+      sources."temp-0.9.1"
+      sources."to-regex-range-5.0.1"
+      sources."ts-jest-26.3.0"
+      sources."ts-union-2.2.1"
+      sources."typescript-3.9.7"
+      sources."which-1.3.1"
+      sources."wrappy-1.0.2"
+      sources."yargs-parser-18.1.3"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "A second level of optimization for the Javascript that the Elm Compiler produces.";
+      homepage = "https://github.com/mdgriffith/elm-optimize-level-2#readme";
+      license = "BSD-3-Clause";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
 }
\ No newline at end of file
diff --git a/nixpkgs/pkgs/development/compilers/elm/packages/patch-binwrap.nix b/nixpkgs/pkgs/development/compilers/elm/packages/patch-binwrap.nix
deleted file mode 100644
index 30f54e6f5ac5..000000000000
--- a/nixpkgs/pkgs/development/compilers/elm/packages/patch-binwrap.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ writeScriptBin, stdenv, lib }:
-let
-  # Patching binwrap by NoOp script
-  binwrap = writeScriptBin "binwrap" ''
-    #! ${stdenv.shell}
-    echo "binwrap called: Returning 0"
-    return 0
-  '';
-  binwrap-install = writeScriptBin "binwrap-install" ''
-    #! ${stdenv.shell}
-    echo "binwrap-install called: Doing nothing"
-  '';
-in
-targets:
-pkg:
-pkg.override {
-  nativeBuildInputs = pkg.nativeBuildInputs ++ [ binwrap binwrap-install ];
-
-  # Manually install targets
-  # by symlinking binaries into `node_modules`
-  postInstall = let
-    binFile = module: lib.strings.removeSuffix ("-" + module.version) module.name;
-  in ''
-    ${lib.concatStrings (map (module: ''
-        echo "linking ${binFile module}"
-        ln -sf ${module}/bin/${binFile module} \
-            node_modules/${binFile module}/bin/${binFile module}
-    '') targets)}
-  '';
-}
diff --git a/nixpkgs/pkgs/development/compilers/fasm/bin.nix b/nixpkgs/pkgs/development/compilers/fasm/bin.nix
index c595c86615b8..8013b443162c 100644
--- a/nixpkgs/pkgs/development/compilers/fasm/bin.nix
+++ b/nixpkgs/pkgs/development/compilers/fasm/bin.nix
@@ -3,11 +3,11 @@
 stdenvNoCC.mkDerivation rec {
   pname = "fasm-bin";
 
-  version = "1.73.24";
+  version = "1.73.25";
 
   src = fetchurl {
     url = "https://flatassembler.net/fasm-${version}.tgz";
-    sha256 = "142vxhs8mh8isvlzq7ir0asmqda410phzxmk9gk9b43dldskkj7k";
+    sha256 = "0k3h61mfwslyb34kf4dnapfwl8jxlmrp4dv666wc057hkj047knn";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/compilers/flutter/default.nix b/nixpkgs/pkgs/development/compilers/flutter/default.nix
index afc8fbd7f499..9b9d1f7481d1 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/default.nix
+++ b/nixpkgs/pkgs/development/compilers/flutter/default.nix
@@ -6,26 +6,29 @@ let
     let files = builtins.attrNames (builtins.readDir dir);
     in map (f: dir + ("/" + f)) files;
 in {
-  stable = mkFlutter {
+  mkFlutter = mkFlutter;
+  stable = mkFlutter rec {
     pname = "flutter";
     channel = "stable";
-    version = "1.12.13+hotfix.9";
-    sha256Hash = "1ql3zvmmk5zk47y30lajxaam04q6vr373dayq15jv4vpc0fzif1y";
+    version = "1.17.5";
+    filename = "flutter_linux_${version}-${channel}.tar.xz";
+    sha256Hash = "0kapja3nh7dfhjbn2np02wghijrjnpzsv4hz10fj54hs8hdx19di";
     patches = getPatches ./patches/stable;
   };
-  beta = mkFlutter {
+  beta = mkFlutter rec {
     pname = "flutter-beta";
     channel = "beta";
-    version = "1.15.17";
-    sha256Hash = "0iil6y6y477dhjgzx54ab5m9nj0jg4xl8x4zzd9iwh8m756r7qsd";
+    version = "1.20.0-7.2.pre";
+    filename = "flutter_linux_${version}-${channel}.tar.xz";
+    sha256Hash = "0w89ig5vi4spa95mf08r4vvwni7bzzdlyhvr9sy1a35qmf7j9s6f";
     patches = getPatches ./patches/beta;
   };
   dev = mkFlutter rec {
     pname = "flutter-dev";
     channel = "dev";
-    version = "1.17.0-dev.5.0";
+    version = "1.21.0-1.0.pre";
     filename = "flutter_linux_${version}-${channel}.tar.xz";
-    sha256Hash = "0ks2jf2bd42y2jsc91p33r57q7j3m94d8ihkmlxzwi53x1mwp0pk";
+    sha256Hash = "14rx89jp6ivk3ai7iwbznkr5q445ndh8fppzbxg520kq10s2208r";
     patches = getPatches ./patches/beta;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/flutter/patches/beta/disable-auto-update.patch b/nixpkgs/pkgs/development/compilers/flutter/patches/beta/disable-auto-update.patch
index 42c09c805cb5..cd01577cc10f 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/patches/beta/disable-auto-update.patch
+++ b/nixpkgs/pkgs/development/compilers/flutter/patches/beta/disable-auto-update.patch
@@ -1,24 +1,24 @@
-diff --git a/bin/flutter b/bin/flutter
-index e0c18e235..2c3fb7ddd 100755
---- a/bin/flutter
-+++ b/bin/flutter
-@@ -185,8 +185,6 @@ fi
- # FLUTTER_TOOL_ARGS="--enable-asserts $FLUTTER_TOOL_ARGS"
- # FLUTTER_TOOL_ARGS="$FLUTTER_TOOL_ARGS --observe=65432"
+diff --git a/bin/internal/shared.sh b/bin/internal/shared.sh
+index 702bd9ed5..4d4dc94c6 100755
+--- a/bin/internal/shared.sh
++++ b/bin/internal/shared.sh
+@@ -204,8 +204,6 @@ function shared::execute() {
+   # FLUTTER_TOOL_ARGS="--enable-asserts $FLUTTER_TOOL_ARGS"
+   # FLUTTER_TOOL_ARGS="$FLUTTER_TOOL_ARGS --observe=65432"
  
--(upgrade_flutter) 3< "$PROG_NAME"
+-  upgrade_flutter 7< "$PROG_NAME"
 -
- # FLUTTER_TOOL_ARGS isn't quoted below, because it is meant to be considered as
- # separate space-separated args.
- "$DART" --packages="$FLUTTER_TOOLS_DIR/.packages" $FLUTTER_TOOL_ARGS "$SNAPSHOT_PATH" "$@"
+   BIN_NAME="$(basename "$PROG_NAME")"
+   case "$BIN_NAME" in
+     flutter*)
 diff --git a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
-index 99455ae64..f5b0cb59c 100644
+index 21be933e1..2ea73c4c0 100644
 --- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
 +++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
-@@ -301,13 +301,6 @@ class FlutterCommandRunner extends CommandRunner<void> {
+@@ -294,13 +294,6 @@ class FlutterCommandRunner extends CommandRunner<void> {
+           globals.flutterUsage.suppressAnalytics = true;
          }
  
-         _checkFlutterCopy();
 -        try {
 -          await globals.flutterVersion.ensureVersionFile();
 -        } on FileSystemException catch (e) {
diff --git a/nixpkgs/pkgs/development/compilers/flutter/patches/beta/move-cache.patch b/nixpkgs/pkgs/development/compilers/flutter/patches/beta/move-cache.patch
index 4672d4c625d0..64950d4476ef 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/patches/beta/move-cache.patch
+++ b/nixpkgs/pkgs/development/compilers/flutter/patches/beta/move-cache.patch
@@ -1,5 +1,5 @@
 diff --git a/dev/devicelab/lib/framework/runner.dart b/dev/devicelab/lib/framework/runner.dart
-index 8e511eefd..fbc7d6ac3 100644
+index 8e511eefd..fef3cca8b 100644
 --- a/dev/devicelab/lib/framework/runner.dart
 +++ b/dev/devicelab/lib/framework/runner.dart
 @@ -126,7 +126,7 @@ Future<void> cleanupSystem() async {
@@ -12,31 +12,31 @@ index 8e511eefd..fbc7d6ac3 100644
      if (!Platform.isWindows) {
        await exec(
 diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart
-index 79b06949f..9040ba0a8 100644
+index c680de599..480abfb77 100644
 --- a/packages/flutter_tools/lib/src/asset.dart
 +++ b/packages/flutter_tools/lib/src/asset.dart
-@@ -6,6 +6,7 @@ import 'dart:async';
- 
+@@ -8,6 +8,7 @@ import 'package:meta/meta.dart';
+ import 'package:package_config/package_config.dart';
  import 'package:yaml/yaml.dart';
  
 +import 'base/common.dart';
  import 'base/context.dart';
  import 'base/file_system.dart';
  import 'base/utils.dart';
-@@ -325,7 +326,7 @@ List<_Asset> _getMaterialAssets(String fontSet) {
-     for (final Map<dynamic, dynamic> font in family['fonts']) {
+@@ -392,7 +393,7 @@ List<_Asset> _getMaterialAssets(String fontSet) {
+     for (final Map<dynamic, dynamic> font in (family['fonts'] as List<dynamic>).cast<Map<dynamic, dynamic>>()) {
        final Uri entryUri = globals.fs.path.toUri(font['asset'] as String);
        result.add(_Asset(
 -        baseDir: globals.fs.path.join(Cache.flutterRoot, 'bin', 'cache', 'artifacts', 'material_fonts'),
-+        baseDir: globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'artifacts', 'material_fonts'),
++	baseDir: globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'artifacts', 'material_fonts'),
          relativeUri: Uri(path: entryUri.pathSegments.last),
          entryUri: entryUri,
-       ));
+         package: null,
 diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
-index 715189938..5afb2a0db 100644
+index c0946782c..bdbc35cb8 100644
 --- a/packages/flutter_tools/lib/src/cache.dart
 +++ b/packages/flutter_tools/lib/src/cache.dart
-@@ -189,8 +189,14 @@ class Cache {
+@@ -202,8 +202,15 @@ class Cache {
        return;
      }
      assert(_lock == null);
@@ -46,13 +46,14 @@ index 715189938..5afb2a0db 100644
 +      dir.createSync(recursive: true);
 +      globals.os.chmod(dir, '755');
 +    }
++
      final File lockFile =
 -        globals.fs.file(globals.fs.path.join(flutterRoot, 'bin', 'cache', 'lockfile'));
 +        globals.fs.file(globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'lockfile'));
      try {
        _lock = lockFile.openSync(mode: FileMode.write);
      } on FileSystemException catch (e) {
-@@ -290,7 +296,7 @@ class Cache {
+@@ -306,7 +313,7 @@ class Cache {
      if (_rootOverride != null) {
        return _fileSystem.directory(_fileSystem.path.join(_rootOverride.path, 'bin', 'cache'));
      } else {
diff --git a/nixpkgs/pkgs/development/compilers/flutter/patches/stable/disable-auto-update.patch b/nixpkgs/pkgs/development/compilers/flutter/patches/stable/disable-auto-update.patch
index 16fe504595f3..c77357ea13c5 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/patches/stable/disable-auto-update.patch
+++ b/nixpkgs/pkgs/development/compilers/flutter/patches/stable/disable-auto-update.patch
@@ -1,5 +1,5 @@
 diff --git a/bin/flutter b/bin/flutter
-index 3955f8f39..1e7573d30 100755
+index cdf974233..1f7de1c1b 100755
 --- a/bin/flutter
 +++ b/bin/flutter
 @@ -185,8 +185,6 @@ fi
@@ -12,20 +12,20 @@ index 3955f8f39..1e7573d30 100755
  # separate space-separated args.
  "$DART" --packages="$FLUTTER_TOOLS_DIR/.packages" $FLUTTER_TOOL_ARGS "$SNAPSHOT_PATH" "$@"
 diff --git a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
-index 5e45819d9..ab748b059 100644
+index b3e69714f..a9eb76234 100644
 --- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
 +++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
-@@ -377,13 +377,6 @@ class FlutterCommandRunner extends CommandRunner<void> {
+@@ -301,13 +301,6 @@ class FlutterCommandRunner extends CommandRunner<void> {
          }
  
          _checkFlutterCopy();
 -        try {
--          await FlutterVersion.instance.ensureVersionFile();
+-          await globals.flutterVersion.ensureVersionFile();
 -        } on FileSystemException catch (e) {
--          printError('Failed to write the version file to the artifact cache: "$e".');
--          printError('Please ensure you have permissions in the artifact cache directory.');
+-          globals.printError('Failed to write the version file to the artifact cache: "$e".');
+-          globals.printError('Please ensure you have permissions in the artifact cache directory.');
 -          throwToolExit('Failed to write the version file');
 -        }
-         if (topLevelResults.command?.name != 'upgrade' && topLevelResults['version-check'] as bool) {
-           await FlutterVersion.instance.checkFlutterVersionFreshness();
-         }
+         final bool machineFlag = topLevelResults['machine'] as bool;
+         if (topLevelResults.command?.name != 'upgrade' && topLevelResults['version-check'] as bool && !machineFlag) {
+           await globals.flutterVersion.checkFlutterVersionFreshness();
diff --git a/nixpkgs/pkgs/development/compilers/flutter/patches/stable/move-cache.patch b/nixpkgs/pkgs/development/compilers/flutter/patches/stable/move-cache.patch
index e5719a2867f9..64950d4476ef 100644
--- a/nixpkgs/pkgs/development/compilers/flutter/patches/stable/move-cache.patch
+++ b/nixpkgs/pkgs/development/compilers/flutter/patches/stable/move-cache.patch
@@ -1,5 +1,5 @@
 diff --git a/dev/devicelab/lib/framework/runner.dart b/dev/devicelab/lib/framework/runner.dart
-index 9fae74726..d88d6ecbb 100644
+index 8e511eefd..fef3cca8b 100644
 --- a/dev/devicelab/lib/framework/runner.dart
 +++ b/dev/devicelab/lib/framework/runner.dart
 @@ -126,7 +126,7 @@ Future<void> cleanupSystem() async {
@@ -7,57 +7,58 @@ index 9fae74726..d88d6ecbb 100644
      final String gradlewBinaryName = Platform.isWindows ? 'gradlew.bat' : 'gradlew';
      final Directory tempDir = Directory.systemTemp.createTempSync('flutter_devicelab_shutdown_gradle.');
 -    recursiveCopy(Directory(path.join(flutterDirectory.path, 'bin', 'cache', 'artifacts', 'gradle_wrapper')), tempDir);
-+    recursiveCopy(Directory(path.join(homeDirPath, '.cache', 'flutter', 'artifacts', 'gradle_wrapper')), tempDir);
++    recursiveCopy(Directory(path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'artifacts', 'gradle_wrapper')), tempDir);
      copy(File(path.join(path.join(flutterDirectory.path, 'packages', 'flutter_tools'), 'templates', 'app', 'android.tmpl', 'gradle', 'wrapper', 'gradle-wrapper.properties')), Directory(path.join(tempDir.path, 'gradle', 'wrapper')));
      if (!Platform.isWindows) {
        await exec(
 diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart
-index e6216c737..5ab497092 100644
+index c680de599..480abfb77 100644
 --- a/packages/flutter_tools/lib/src/asset.dart
 +++ b/packages/flutter_tools/lib/src/asset.dart
-@@ -6,6 +6,7 @@ import 'dart:async';
- 
+@@ -8,6 +8,7 @@ import 'package:meta/meta.dart';
+ import 'package:package_config/package_config.dart';
  import 'package:yaml/yaml.dart';
  
 +import 'base/common.dart';
  import 'base/context.dart';
  import 'base/file_system.dart';
- import 'base/platform.dart';
-@@ -326,7 +327,7 @@ List<_Asset> _getMaterialAssets(String fontSet) {
-     for (Map<dynamic, dynamic> font in family['fonts']) {
-       final Uri entryUri = fs.path.toUri(font['asset'] as String);
+ import 'base/utils.dart';
+@@ -392,7 +393,7 @@ List<_Asset> _getMaterialAssets(String fontSet) {
+     for (final Map<dynamic, dynamic> font in (family['fonts'] as List<dynamic>).cast<Map<dynamic, dynamic>>()) {
+       final Uri entryUri = globals.fs.path.toUri(font['asset'] as String);
        result.add(_Asset(
--        baseDir: fs.path.join(Cache.flutterRoot, 'bin', 'cache', 'artifacts', 'material_fonts'),
-+        baseDir: fs.path.join(homeDirPath, '.cache', 'flutter', 'artifacts', 'material_fonts'),
+-        baseDir: globals.fs.path.join(Cache.flutterRoot, 'bin', 'cache', 'artifacts', 'material_fonts'),
++	baseDir: globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'artifacts', 'material_fonts'),
          relativeUri: Uri(path: entryUri.pathSegments.last),
          entryUri: entryUri,
-       ));
+         package: null,
 diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart
-index 5e1950b56..45585f9c0 100644
+index c0946782c..bdbc35cb8 100644
 --- a/packages/flutter_tools/lib/src/cache.dart
 +++ b/packages/flutter_tools/lib/src/cache.dart
-@@ -164,8 +164,14 @@ class Cache {
+@@ -202,8 +202,15 @@ class Cache {
        return;
      }
      assert(_lock == null);
 +
-+    final Directory dir = fs.directory(fs.path.join(homeDirPath, '.cache', 'flutter'));
++    final Directory dir = globals.fs.directory(globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter'));
 +    if (!dir.existsSync()) {
 +      dir.createSync(recursive: true);
-+      os.chmod(dir, '755');
++      globals.os.chmod(dir, '755');
 +    }
++
      final File lockFile =
--        fs.file(fs.path.join(flutterRoot, 'bin', 'cache', 'lockfile'));
-+        fs.file(fs.path.join(homeDirPath, '.cache', 'flutter', 'lockfile'));
+-        globals.fs.file(globals.fs.path.join(flutterRoot, 'bin', 'cache', 'lockfile'));
++        globals.fs.file(globals.fs.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter', 'lockfile'));
      try {
        _lock = lockFile.openSync(mode: FileMode.write);
      } on FileSystemException catch (e) {
-@@ -239,7 +245,7 @@ class Cache {
+@@ -306,7 +313,7 @@ class Cache {
      if (_rootOverride != null) {
-       return fs.directory(fs.path.join(_rootOverride.path, 'bin', 'cache'));
+       return _fileSystem.directory(_fileSystem.path.join(_rootOverride.path, 'bin', 'cache'));
      } else {
--      return fs.directory(fs.path.join(flutterRoot, 'bin', 'cache'));
-+      return fs.directory(fs.path.join(homeDirPath, '.cache', 'flutter'));
+-      return _fileSystem.directory(_fileSystem.path.join(flutterRoot, 'bin', 'cache'));
++      return _fileSystem.directory(_fileSystem.path.join(globals.fsUtils.homeDirPath, '.cache', 'flutter'));
      }
    }
  
diff --git a/nixpkgs/pkgs/development/compilers/fpc/binary.nix b/nixpkgs/pkgs/development/compilers/fpc/binary.nix
index f160150d8b53..c7e3ec30b49f 100644
--- a/nixpkgs/pkgs/development/compilers/fpc/binary.nix
+++ b/nixpkgs/pkgs/development/compilers/fpc/binary.nix
@@ -1,18 +1,24 @@
 { stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "fpc-3.0.0-binary";
+stdenv.mkDerivation rec {
+  pname = "fpc-binary";
+  version = "3.2.0";
 
   src =
     if stdenv.hostPlatform.system == "i686-linux" then
       fetchurl {
-        url = "mirror://sourceforge/project/freepascal/Linux/3.0.0/fpc-3.0.0.i386-linux.tar";
-        sha256 = "0h3f1dgs1zsx7vvk9kg67anjvgw5sslfbmjblif7ishbcp3k3g5k";
+        url = "mirror://sourceforge/project/freepascal/Linux/${version}/fpc-${version}.i386-linux.tar";
+        sha256 = "0y0510b2fbxbqz28967xx8b023k6q9fv5yclfrc1yc9mg8fyn411";
       }
     else if stdenv.hostPlatform.system == "x86_64-linux" then
       fetchurl {
-        url = "mirror://sourceforge/project/freepascal/Linux/3.0.0/fpc-3.0.0.x86_64-linux.tar";
-        sha256 = "1m2xx3nda45cb3zidbjgdr8kddd19zk0khvp7xxdlclszkqscln9";
+        url = "mirror://sourceforge/project/freepascal/Linux/${version}/fpc-${version}-x86_64-linux.tar";
+        sha256 = "0gfbwjvjqlx0562ayyl08khagslrws758al2yhbi4bz5rzk554ni";
+      }
+    else if stdenv.hostPlatform.system == "aarch64-linux" then
+      fetchurl {
+        url = "mirror://sourceforge/project/freepascal/Linux/${version}/fpc-${version}.aarch64-linux.tar";
+        sha256 = "1h481ngg3m8nlsg9mw7rr1bn2c4sj4wzqny9bxyq3xvcral12r71";
       }
     else throw "Not supported on ${stdenv.hostPlatform.system}.";
 
@@ -21,4 +27,4 @@ stdenv.mkDerivation {
   meta = {
     description = "Free Pascal Compiler from a binary distribution";
   };
-} 
+}
diff --git a/nixpkgs/pkgs/development/compilers/fpc/default.nix b/nixpkgs/pkgs/development/compilers/fpc/default.nix
index 42804677dc08..6e7ffefca21f 100644
--- a/nixpkgs/pkgs/development/compilers/fpc/default.nix
+++ b/nixpkgs/pkgs/development/compilers/fpc/default.nix
@@ -3,23 +3,26 @@
 let startFPC = import ./binary.nix { inherit stdenv fetchurl; }; in
 
 stdenv.mkDerivation rec {
-  version = "3.0.4";
+  version = "3.2.0";
   pname = "fpc";
 
   src = fetchurl {
     url = "mirror://sourceforge/freepascal/fpcbuild-${version}.tar.gz";
-    sha256 = "0xjyhlhz846jbnp12y68c7nq4xmp4i65akfbrjyf3r62ybk18rgn";
+    sha256 = "0f38glyn3ffmqww432snhx2b8wyrq0yj1njkp4zh56lqrvm19fgr";
   };
 
   buildInputs = [ startFPC gawk ];
   glibc = stdenv.cc.libc.out;
 
-  preConfigure =
-    if stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux" then ''
-      sed -e "s@'/lib/ld-linux[^']*'@'''@" -i fpcsrc/compiler/systems/t_linux.pas
-      sed -e "s@'/lib64/ld-linux[^']*'@'''@" -i fpcsrc/compiler/systems/t_linux.pas
-      sed -e "s@/lib64[^']*@${glibc}/lib@" -i fpcsrc/compiler/systems/t_linux.pas
-    '' else "";
+  # Patch paths for linux systems. Other platforms will need their own patches.
+  patches = [
+    ./mark-paths.patch # mark paths for later substitution in postPatch
+  ];
+  postPatch = ''
+    # substitute the markers set by the mark-paths patch
+    substituteInPlace fpcsrc/compiler/systems/t_linux.pas --subst-var-by dynlinker-prefix "${glibc}"
+    substituteInPlace fpcsrc/compiler/systems/t_linux.pas --subst-var-by syslibpath "${glibc}/lib"
+  '';
 
   makeFlags = [ "NOGDB=1" "FPC=${startFPC}/bin/fpc" ];
 
diff --git a/nixpkgs/pkgs/development/compilers/fpc/libqt5pas.nix b/nixpkgs/pkgs/development/compilers/fpc/libqt5pas.nix
new file mode 100644
index 000000000000..82cdd394e780
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/fpc/libqt5pas.nix
@@ -0,0 +1,24 @@
+{ stdenv, lazarus, qt5 }:
+
+stdenv.mkDerivation {
+  pname = "libqt5pas";
+  inherit (lazarus) version src;
+
+  sourceRoot = "lazarus/lcl/interfaces/qt5/cbindings";
+
+  postPatch = ''
+    substituteInPlace Qt5Pas.pro \
+      --replace "target.path = \$\$[QT_INSTALL_LIBS]" "target.path = $out/lib"
+  '';
+
+  nativeBuildInputs = with qt5; [ qmake ];
+
+  buildInputs = with qt5; [ qtbase qtx11extras ];
+
+  meta = with stdenv.lib; {
+    description = "Free Pascal Qt5 binding library";
+    homepage = "https://wiki.freepascal.org/Qt5_Interface#libqt5pas";
+    maintainers = with maintainers; [ sikmir ];
+    inherit (lazarus.meta) license platforms;
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/fpc/mark-paths.patch b/nixpkgs/pkgs/development/compilers/fpc/mark-paths.patch
new file mode 100644
index 000000000000..707c5352de7f
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/fpc/mark-paths.patch
@@ -0,0 +1,109 @@
+diff --git a/fpcsrc/compiler/systems/t_linux.pas b/fpcsrc/compiler/systems/t_linux.pas
+index a7398fb9..8e46fec0 100644
+--- a/fpcsrc/compiler/systems/t_linux.pas
++++ b/fpcsrc/compiler/systems/t_linux.pas
+@@ -135,13 +135,13 @@ begin
+       LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib64',true);
+       { /lib64 should be the really first, so add it before everything else }
+       LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib',true);
+-      LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib64',true);
++      LibrarySearchPath.AddLibraryPath(sysrootpath,'=@syslibpath@',true);
+ {$else}
+ {$ifdef powerpc64}
+       if target_info.abi<>abi_powerpc_elfv2 then
+-        LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib64;=/usr/lib64;=/usr/X11R6/lib64',true)
++        LibrarySearchPath.AddLibraryPath(sysrootpath,'=/@syslibpath@;=/usr/lib64;=/usr/X11R6/lib64',true)
+       else
+-        LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib64;=/usr/lib/powerpc64le-linux-gnu;=/usr/X11R6/powerpc64le-linux-gnu',true);
++        LibrarySearchPath.AddLibraryPath(sysrootpath,'=/@syslibpath@;=/usr/lib/powerpc64le-linux-gnu;=/usr/X11R6/powerpc64le-linux-gnu',true);
+ {$else powerpc64}
+       LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib;=/usr/lib;=/usr/X11R6/lib',true);
+ {$endif powerpc64}
+@@ -164,7 +164,7 @@ begin
+       LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib/i386-linux-gnu',true);
+ {$endif i386}
+ {$ifdef aarch64}
+-      LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib/aarch64-linux-gnu',true);
++      LibrarySearchPath.AddLibraryPath(sysrootpath,'=@syslibpath@',true);
+ {$endif aarch64}
+ {$ifdef powerpc}
+       LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib/powerpc-linux-gnu',true);
+@@ -185,53 +185,53 @@ begin
+ end;
+ 
+ {$ifdef m68k}
+-  const defdynlinker='/lib/ld.so.1';
++  const defdynlinker='@dynlinker-prefix@/lib/ld.so.1';
+ {$endif m68k}
+ 
+ {$ifdef i386}
+-  const defdynlinker='/lib/ld-linux.so.2';
++  const defdynlinker='@dynlinker-prefix@/lib/ld-linux.so.2';
+ {$endif}
+ 
+ {$ifdef x86_64}
+-  const defdynlinker='/lib64/ld-linux-x86-64.so.2';
++  const defdynlinker='@dynlinker-prefix@/lib64/ld-linux-x86-64.so.2';
+ {$endif x86_64}
+ 
+ {$ifdef sparc}
+-  const defdynlinker='/lib/ld-linux.so.2';
++  const defdynlinker='@dynlinker-prefix@/lib/ld-linux.so.2';
+ {$endif sparc}
+ 
+ {$ifdef powerpc}
+-  const defdynlinker='/lib/ld.so.1';
++  const defdynlinker='@dynlinker-prefix@/lib/ld.so.1';
+ {$endif powerpc}
+ 
+ {$ifdef powerpc64}
+-  const defdynlinkerv1='/lib64/ld64.so.1';
+-  const defdynlinkerv2='/lib64/ld64.so.2';
++  const defdynlinkerv1='@dynlinker-prefix@/lib64/ld64.so.1';
++  const defdynlinkerv2='@dynlinker-prefix@/lib64/ld64.so.2';
+   var defdynlinker: string;
+ {$endif powerpc64}
+ 
+ {$ifdef arm}
+ {$ifdef FPC_ARMHF}
+-  const defdynlinker='/lib/ld-linux-armhf.so.3';
++  const defdynlinker='@dynlinker-prefix@/lib/ld-linux-armhf.so.3';
+ {$else FPC_ARMHF}
+ {$ifdef FPC_ARMEL}
+-  const defdynlinker='/lib/ld-linux.so.3';
++  const defdynlinker='@dynlinker-prefix@/lib/ld-linux.so.3';
+ {$else FPC_ARMEL}
+-  const defdynlinker='/lib/ld-linux.so.2';
++  const defdynlinker='@dynlinker-prefix@/lib/ld-linux.so.2';
+ {$endif FPC_ARMEL}
+ {$endif FPC_ARMHF}
+ {$endif arm}
+ 
+ {$ifdef aarch64}
+-const defdynlinker='/lib/ld-linux-aarch64.so.1';
++const defdynlinker='@dynlinker-prefix@/lib/ld-linux-aarch64.so.1';
+ {$endif aarch64}
+ 
+ {$ifdef mips}
+-  const defdynlinker='/lib/ld.so.1';
++  const defdynlinker='@dynlinker-prefix@/lib/ld.so.1';
+ {$endif mips}
+ 
+ {$ifdef sparc64}
+-  const defdynlinker='/lib64/ld-linux.so.2';
++  const defdynlinker='@dynlinker-prefix@/lib64/ld-linux.so.2';
+ {$endif sparc64}
+ 
+ 
+@@ -266,9 +266,9 @@ begin
+       libctype:=uclibc;
+     end
+ {$ifdef i386}
+-  else if FileExists(sysrootpath+'/lib/ld-linux.so.1',false) then
++  else if FileExists(sysrootpath+'@dynlinker-prefix@/lib/ld-linux.so.1',false) then
+     begin
+-      DynamicLinker:='/lib/ld-linux.so.1';
++      DynamicLinker:='@dynlinker-prefix@/lib/ld-linux.so.1';
+       libctype:=glibc2;
+     end
+ {$endif i386}
diff --git a/nixpkgs/pkgs/development/compilers/gambit/unstable.nix b/nixpkgs/pkgs/development/compilers/gambit/unstable.nix
index 3ac4f5363195..7284e5b531d8 100644
--- a/nixpkgs/pkgs/development/compilers/gambit/unstable.nix
+++ b/nixpkgs/pkgs/development/compilers/gambit/unstable.nix
@@ -1,13 +1,13 @@
 { callPackage, fetchFromGitHub, gambit-support }:
 
 callPackage ./build.nix {
-  version = "unstable-2020-05-15";
-  git-version = "4.9.3-1109-g3c4d40de";
+  version = "unstable-2020-07-29";
+  git-version = "4.9.3-1232-gbba388b8";
   src = fetchFromGitHub {
     owner = "feeley";
     repo = "gambit";
-    rev = "3c4d40de908ae03ca0e3d854edc2234ef401b36c";
-    sha256 = "1c9a6rys2kiiqb79gvw29nv3dwwk6hmi1q4jk1whcx7mds7q5dvr";
+    rev = "bba388b80ca62a77883a8936d64b03316808696a";
+    sha256 = "0iqlp1mvxz8g32kqrqm0phnnp1i5c4jrapqh2wqwa8fh1vgnizg1";
   };
   gambit-params = gambit-support.unstable-params;
 }
diff --git a/nixpkgs/pkgs/development/compilers/gerbil/gerbil-crypto.nix b/nixpkgs/pkgs/development/compilers/gerbil/gerbil-crypto.nix
new file mode 100644
index 000000000000..12f4726f1c62
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/gerbil/gerbil-crypto.nix
@@ -0,0 +1,27 @@
+{ pkgs, lib, fetchFromGitHub, gerbil-unstable, gerbil-support, gambit-support }:
+
+gerbil-support.gerbilPackage {
+  pname = "gerbil-crypto";
+  version = "unstable-2020-08-01";
+  git-version = "0.0-6-ga228862";
+  gerbil-package = "clan/crypto";
+  gerbil = gerbil-unstable;
+  gerbilInputs = [gerbil-support.gerbilPackages-unstable.gerbil-utils];
+  buildInputs = [pkgs.secp256k1 pkgs.pkg-config];
+  gambit-params = gambit-support.unstable-params;
+  version-path = "version";
+  softwareName = "Gerbil-crypto";
+  src = fetchFromGitHub {
+    owner = "fare";
+    repo = "gerbil-crypto";
+    rev = "a22886260849ec92c3a34bfeedc1574e41e49e33";
+    sha256 = "0qbanw2vnw2ymmr4pr1jap29cyc3icbhyq0apibpfnj2znns7w47";
+  };
+  meta = {
+    description = "Gerbil Crypto: Extra Cryptographic Primitives for Gerbil";
+    homepage    = "https://github.com/fare/gerbil-crypto";
+    license     = lib.licenses.asl20;
+    platforms   = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ fare ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/gerbil/gerbil-ethereum.nix b/nixpkgs/pkgs/development/compilers/gerbil/gerbil-ethereum.nix
new file mode 100644
index 000000000000..9b90cc053e1e
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/gerbil/gerbil-ethereum.nix
@@ -0,0 +1,28 @@
+{ pkgs, lib, fetchFromGitHub, gerbil-unstable, gerbil-support, gambit-support }:
+
+gerbil-support.gerbilPackage {
+  pname = "gerbil-ethereum";
+  version = "unstable-2020-08-02";
+  git-version = "0.0-15-g7cd2dd7";
+  gerbil-package = "mukn/ethereum";
+  gerbil = gerbil-unstable;
+  gerbilInputs = with gerbil-support.gerbilPackages-unstable;
+    [gerbil-utils gerbil-crypto gerbil-poo gerbil-persist];
+  buildInputs = [];
+  gambit-params = gambit-support.unstable-params;
+  version-path = "version";
+  softwareName = "Gerbil-ethereum";
+  src = fetchFromGitHub {
+    owner = "fare";
+    repo = "gerbil-ethereum";
+    rev = "7cd2dd7436b11917d0729dbafe087cfa8ec38f86";
+    sha256 = "0qq3ch2dg735yrj3l2c9pb9qlvz98x3vjfi2xyr4fwr78smpqgb5";
+  };
+  meta = {
+    description = "Gerbil Ethereum: a Scheme alternative to web3.js";
+    homepage    = "https://github.com/fare/gerbil-ethereum";
+    license     = lib.licenses.asl20;
+    platforms   = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ fare ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/gerbil/gerbil-persist.nix b/nixpkgs/pkgs/development/compilers/gerbil/gerbil-persist.nix
new file mode 100644
index 000000000000..1be6684bf440
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/gerbil/gerbil-persist.nix
@@ -0,0 +1,27 @@
+{ pkgs, lib, fetchFromGitHub, gerbil-unstable, gerbil-support, gambit-support }:
+
+gerbil-support.gerbilPackage {
+  pname = "gerbil-persist";
+  version = "unstable-2020-08-02";
+  git-version = "0.0-4-ga3b2bd1";
+  gerbil-package = "clan/persist";
+  gerbil = gerbil-unstable;
+  gerbilInputs = with gerbil-support.gerbilPackages-unstable; [gerbil-utils gerbil-crypto gerbil-poo];
+  buildInputs = [];
+  gambit-params = gambit-support.unstable-params;
+  version-path = "version";
+  softwareName = "Gerbil-persist";
+  src = fetchFromGitHub {
+    owner = "fare";
+    repo = "gerbil-persist";
+    rev = "a3b2bd104612db0e4492737f09f72adea6684483";
+    sha256 = "0mc01wva26ww1i7n8naa95mfw7i6lj8qg0bwsik7gb3dsj2acjvh";
+  };
+  meta = {
+    description = "Gerbil Persist: Persistent data and activities";
+    homepage    = "https://github.com/fare/gerbil-persist";
+    license     = lib.licenses.asl20;
+    platforms   = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ fare ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/gerbil/gerbil-poo.nix b/nixpkgs/pkgs/development/compilers/gerbil/gerbil-poo.nix
new file mode 100644
index 000000000000..55673368eead
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/gerbil/gerbil-poo.nix
@@ -0,0 +1,27 @@
+{ pkgs, lib, fetchFromGitHub, gerbil-unstable, gerbil-support, gambit-support }:
+
+gerbil-support.gerbilPackage {
+  pname = "gerbil-ethereum";
+  version = "unstable-2020-08-02";
+  git-version = "0.0-13-g1014154";
+  gerbil-package = "clan/poo";
+  gerbil = gerbil-unstable;
+  gerbilInputs = with gerbil-support.gerbilPackages-unstable; [gerbil-utils gerbil-crypto];
+  buildInputs = [];
+  gambit-params = gambit-support.unstable-params;
+  version-path = "version";
+  softwareName = "Gerbil-POO";
+  src = fetchFromGitHub {
+    owner = "fare";
+    repo = "gerbil-poo";
+    rev = "1014154fe4943dfbec7524666c831b601ba88559";
+    sha256 = "0g8l5mi007n07qs79m9h3h3am1p7h0kzq7yb49h562b8frh5gp97";
+  };
+  meta = {
+    description = "Gerbil POO: Prototype Object Orientation for Gerbil Scheme";
+    homepage    = "https://github.com/fare/gerbil-poo";
+    license     = lib.licenses.asl20;
+    platforms   = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ fare ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/gerbil/gerbil-support.nix b/nixpkgs/pkgs/development/compilers/gerbil/gerbil-support.nix
index 4e94b6e65de1..e3f4bb0e0d25 100644
--- a/nixpkgs/pkgs/development/compilers/gerbil/gerbil-support.nix
+++ b/nixpkgs/pkgs/development/compilers/gerbil/gerbil-support.nix
@@ -5,6 +5,10 @@ rec {
   # Gerbil libraries
   gerbilPackages-unstable = {
     gerbil-utils = callPackage ./gerbil-utils.nix { };
+    gerbil-crypto = callPackage ./gerbil-crypto.nix { };
+    gerbil-poo = callPackage ./gerbil-poo.nix { };
+    gerbil-persist = callPackage ./gerbil-persist.nix { };
+    gerbil-ethereum = callPackage ./gerbil-ethereum.nix { };
   };
 
   # Use this function in any package that uses Gerbil libraries, to define the GERBIL_LOADPATH.
@@ -13,21 +17,26 @@ rec {
 
   # Use this function to create a Gerbil library. See gerbil-utils as an example.
   gerbilPackage = {
-    pname, version, src, meta, package,
-    git-version ? "", version-path ? "config/version.ss",
+    pname, version, src, meta, gerbil-package,
+    git-version ? "", version-path ? "",
     gerbil ? pkgs.gerbil-unstable,
     gambit-params ? pkgs.gambit-support.stable-params,
     gerbilInputs ? [],
     buildInputs ? [],
-    softwareName ? "" } :
+    softwareName ? ""} :
     let buildInputs_ = buildInputs; in
     gccStdenv.mkDerivation rec {
       inherit src meta pname version;
+      passthru = { inherit gerbil-package version-path ;};
       buildInputs = [ gerbil ] ++ gerbilInputs ++ buildInputs_;
       postPatch = ''
         set -e ;
-        if [ -n "${version-path}" ] ; then
-          echo '(import :clan/utils/version)\n(register-software "${softwareName}" "${git-version}")\n' > "${version-path}"
+        if [ -n "${version-path}.ss" ] ; then
+          echo -e '(import :clan/versioning${builtins.concatStringsSep ""
+                     (map (x : if x.passthru.version-path != ""
+                               then " :${x.passthru.gerbil-package}/${x.passthru.version-path}" else "")
+                          gerbilInputs)
+                     })\n(register-software "${softwareName}" "v${git-version}")\n' > "${passthru.version-path}.ss"
         fi
         patchShebangs . ;
       '';
diff --git a/nixpkgs/pkgs/development/compilers/gerbil/gerbil-utils.nix b/nixpkgs/pkgs/development/compilers/gerbil/gerbil-utils.nix
index 075a63d7bf4c..7e1a9bf05574 100644
--- a/nixpkgs/pkgs/development/compilers/gerbil/gerbil-utils.nix
+++ b/nixpkgs/pkgs/development/compilers/gerbil/gerbil-utils.nix
@@ -2,17 +2,18 @@
 
 gerbil-support.gerbilPackage {
   pname = "gerbil-utils";
-  version = "unstable-2020-05-17";
-  git-version = "33ef720";
-  package = "clan";
+  version = "unstable-2020-08-02";
+  git-version = "0.2-21-g7e7d053";
+  gerbil-package = "clan";
   gerbil = gerbil-unstable;
   gambit-params = gambit-support.unstable-params;
-  version-path = "";
+  version-path = "version";
+  softwareName = "Gerbil-utils";
   src = fetchFromGitHub {
     owner = "fare";
     repo = "gerbil-utils";
-    rev = "33ef720799ba98dc9eec773c662f070af4bac016";
-    sha256 = "0dsb97magbxzjqqfzwq4qwf7i80llv0s1dsy9nkzkvkq8drxlmqf";
+    rev = "7e7d053ec5e78cc58d38cb03baf554d83b31b0c6";
+    sha256 = "078vqdcddfavqq0d9pw430iz1562cgx1ck3fw6dpwxjkyc6m4bms";
   };
   meta = {
     description = "Gerbil Clan: Community curated Collection of Common Utilities";
diff --git a/nixpkgs/pkgs/development/compilers/gerbil/unstable.nix b/nixpkgs/pkgs/development/compilers/gerbil/unstable.nix
index 9de6dc42907a..7b54438b5c9a 100644
--- a/nixpkgs/pkgs/development/compilers/gerbil/unstable.nix
+++ b/nixpkgs/pkgs/development/compilers/gerbil/unstable.nix
@@ -1,13 +1,13 @@
 { callPackage, fetchFromGitHub, gambit-unstable, gambit-support }:
 
 callPackage ./build.nix rec {
-  version = "unstable-2020-05-17";
-  git-version = "0.16-1-g36a31050";
+  version = "unstable-2020-08-02";
+  git-version = "0.16-120-g3f248e13";
   src = fetchFromGitHub {
     owner = "vyzo";
     repo = "gerbil";
-    rev = "36a31050f6c80e7e1a49dfae96a57b2ad0260698";
-    sha256 = "0k3fypam9qx110sjxgzxa1mdf5b631w16s9p5v37cb8ll26vqfiv";
+    rev = "3f248e139dfa11be74284fc812253fbecafbaf31";
+    sha256 = "18v192cypj0nbmfcyflm8qnwp27qwy65m0a19ggs47wwbzhgvgqh";
   };
   inherit gambit-support;
   gambit = gambit-unstable;
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.10.1.nix b/nixpkgs/pkgs/development/compilers/ghc/8.10.1.nix
index c70efe1fdef3..d3835d01e5a2 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/8.10.1.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/8.10.1.nix
@@ -23,6 +23,9 @@
 , # If enabled, use -fPIC when compiling static libs.
   enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
 
+  # aarch64 outputs otherwise exceed 2GB limit
+, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
+
 , # Whether to build dynamic libs for the standard library (on the target
   # platform). Static libs are always built.
   enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
@@ -52,19 +55,30 @@ let
     (targetPlatform != hostPlatform)
     "${targetPlatform.config}-";
 
-  buildMK = ''
+  buildMK = dontStrip: ''
     BuildFlavour = ${ghcFlavour}
     ifneq \"\$(BuildFlavour)\" \"\"
     include mk/flavours/\$(BuildFlavour).mk
     endif
     DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
     INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
-  '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
-    Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
+  ''
+    # We only need to build stage1 on most cross-compilation because
+    # we will be running the compiler on the native system. In some
+    # situations, like native Musl compilation, we need the compiler
+    # to actually link to our new Libc. The iOS simulator is a special
+    # exception because we can’t actually run simulators binaries
+    # ourselves.
+  + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
+    Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
     CrossCompilePrefix = ${targetPrefix}
     HADDOCK_DOCS = NO
     BUILD_SPHINX_HTML = NO
     BUILD_SPHINX_PDF = NO
+  '' + stdenv.lib.optionalString dontStrip ''
+    STRIP_CMD = :
+  '' + stdenv.lib.optionalString (!enableProfiledLibs) ''
+    GhcLibWays = "v dyn"
   '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
     GhcLibHcOpts += -fPIC
     GhcRtsHcOpts += -fPIC
@@ -94,7 +108,7 @@ stdenv.mkDerivation (rec {
   name = "${targetPrefix}ghc-${version}";
 
   src = fetchurl {
-    url = "https://downloads.haskell.org/ghc/8.10.1/ghc-${version}-src.tar.xz";
+    url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
     sha256 = "1xgdl6ig5jzli3bg054vfryfkg0y6wggf68g66c32sr67bw0ffsf";
   };
 
@@ -122,7 +136,7 @@ stdenv.mkDerivation (rec {
     export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
     export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
 
-    echo -n "${buildMK}" > mk/build.mk
+    echo -n "${buildMK dontStrip}" > mk/build.mk
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
   '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
     export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
@@ -235,8 +249,9 @@ stdenv.mkDerivation (rec {
     inherit (ghc.meta) license platforms;
   };
 
-} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
-  dontStrip = true;
+  dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
+
+} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
   dontPatchELF = true;
   noAuditTmpdir = true;
 })
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.10.2-binary.nix b/nixpkgs/pkgs/development/compilers/ghc/8.10.2-binary.nix
new file mode 100644
index 000000000000..baa1d879b53e
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/ghc/8.10.2-binary.nix
@@ -0,0 +1,174 @@
+{ stdenv
+, fetchurl, perl, gcc
+, ncurses6, gmp, glibc, libiconv, numactl
+, llvmPackages
+}:
+
+# Prebuilt only does native
+assert stdenv.targetPlatform == stdenv.hostPlatform;
+
+let
+  useLLVM = !stdenv.targetPlatform.isx86;
+
+  libPath = stdenv.lib.makeLibraryPath ([
+    ncurses6 gmp
+  ] ++ stdenv.lib.optional (stdenv.hostPlatform.isDarwin) libiconv
+    ++ stdenv.lib.optional (stdenv.hostPlatform.isAarch64) numactl);
+
+  libEnvVar = stdenv.lib.optionalString stdenv.hostPlatform.isDarwin "DY"
+    + "LD_LIBRARY_PATH";
+
+  glibcDynLinker = assert stdenv.isLinux;
+    if stdenv.hostPlatform.libc == "glibc" then
+       # Could be stdenv.cc.bintools.dynamicLinker, keeping as-is to avoid rebuild.
+       ''"$(cat $NIX_CC/nix-support/dynamic-linker)"''
+    else
+      "${stdenv.lib.getLib glibc}/lib/ld-linux*";
+
+in
+
+stdenv.mkDerivation rec {
+  version = "8.10.2";
+
+  name = "ghc-${version}-binary";
+
+  # https://downloads.haskell.org/~ghc/8.10.2/
+  src = fetchurl ({
+    i686-linux = {
+      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-i386-deb9-linux.tar.xz";
+      sha256 = "0bvwisl4w0z5z8z0da10m9sv0mhm9na2qm43qxr8zl23mn32mblx";
+    };
+    x86_64-linux = {
+      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-deb10-linux.tar.xz";
+      sha256 = "0chnzy9j23b2wa8clx5arwz8wnjfxyjmz9qkj548z14cqf13slcl";
+    };
+    armv7l-linux = {
+      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-armv7-deb10-linux.tar.xz";
+      sha256 = "1j41cq5d3rmlgz7hzw8f908fs79gc5mn3q5wz277lk8zdf19g75v";
+    };
+    aarch64-linux = {
+      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-aarch64-deb10-linux.tar.xz";
+      sha256 = "14smwl3741ixnbgi0l51a7kh7xjkiannfqx15b72svky0y4l3wjw";
+    };
+    x86_64-darwin = {
+      url = "http://haskell.org/ghc/dist/${version}/ghc-${version}-x86_64-apple-darwin.tar.xz";
+      sha256 = "1hngyq14l4f950hzhh2d204ca2gfc98pc9xdasxihzqd1jq75dzd";
+    };
+  }.${stdenv.hostPlatform.system}
+    or (throw "cannot bootstrap GHC on this platform"));
+
+  nativeBuildInputs = [ perl ];
+  propagatedBuildInputs = stdenv.lib.optionals useLLVM [ llvmPackages.llvm ];
+
+  # Cannot patchelf beforehand due to relative RPATHs that anticipate
+  # the final install location/
+  ${libEnvVar} = libPath;
+
+  postUnpack =
+    # GHC has dtrace probes, which causes ld to try to open /usr/lib/libdtrace.dylib
+    # during linking
+    stdenv.lib.optionalString stdenv.isDarwin ''
+      export NIX_LDFLAGS+=" -no_dtrace_dof"
+      # not enough room in the object files for the full path to libiconv :(
+      for exe in $(find . -type f -executable); do
+        isScript $exe && continue
+        ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib
+        install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib -change /usr/local/lib/gcc/6/libgcc_s.1.dylib ${gcc.cc.lib}/lib/libgcc_s.1.dylib $exe
+      done
+    '' +
+
+    # Some scripts used during the build need to have their shebangs patched
+    ''
+      patchShebangs ghc-${version}/utils/
+      patchShebangs ghc-${version}/configure
+    '' +
+
+    # We have to patch the GMP paths for the integer-gmp package.
+    ''
+      find . -name integer-gmp.buildinfo \
+          -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${gmp.out}/lib@" {} \;
+    '' + stdenv.lib.optionalString stdenv.isDarwin ''
+      find . -name base.buildinfo \
+          -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${libiconv}/lib@" {} \;
+    '' +
+    # Rename needed libraries and binaries, fix interpreter
+    stdenv.lib.optionalString stdenv.isLinux ''
+      find . -type f -perm -0100 -exec patchelf \
+          --replace-needed libncurses${stdenv.lib.optionalString stdenv.is64bit "w"}.so.6 libncurses.so \
+          --interpreter ${glibcDynLinker} {} \;
+
+      sed -i "s|/usr/bin/perl|perl\x00        |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
+      sed -i "s|/usr/bin/gcc|gcc\x00        |" ghc-${version}/ghc/stage2/build/tmp/ghc-stage2
+    '' +
+    # We're kludging a glibc bindist into working with non-glibc...
+    # Here we patch up the use of `__strdup` (part of glibc binary ABI)
+    # to instead use `strdup` since musl doesn't provide __strdup
+    # (`__strdup` is defined to be an alias of `strdup` anyway[1]).
+    # [1] http://refspecs.linuxbase.org/LSB_4.0.0/LSB-Core-generic/LSB-Core-generic/baselib---strdup-1.html
+    # Use objcopy magic to make the change:
+    stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
+      find ./ghc-${version}/rts -name "libHSrts*.a" -exec ''${OBJCOPY:-objcopy} --redefine-sym __strdup=strdup {} \;
+    '';
+
+  # fix for `configure: error: Your linker is affected by binutils #16177`
+  preConfigure = stdenv.lib.optionalString
+    stdenv.targetPlatform.isAarch32
+    "LD=ld.gold";
+
+  configurePlatforms = [ ];
+  configureFlags = [
+    "--with-gmp-libraries=${stdenv.lib.getLib gmp}/lib"
+    "--with-gmp-includes=${stdenv.lib.getDev gmp}/include"
+  ] ++ stdenv.lib.optional stdenv.isDarwin "--with-gcc=${./gcc-clang-wrapper.sh}"
+    ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "--disable-ld-override";
+
+  # No building is necessary, but calling make without flags ironically
+  # calls install-strip ...
+  dontBuild = true;
+
+  # On Linux, use patchelf to modify the executables so that they can
+  # find editline/gmp.
+  postFixup = stdenv.lib.optionalString stdenv.isLinux ''
+    for p in $(find "$out" -type f -executable); do
+      if isELF "$p"; then
+        echo "Patchelfing $p"
+        patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
+      fi
+    done
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    # not enough room in the object files for the full path to libiconv :(
+    for exe in $(find "$out" -type f -executable); do
+      isScript $exe && continue
+      ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib
+      install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib -change /usr/local/lib/gcc/6/libgcc_s.1.dylib ${gcc.cc.lib}/lib/libgcc_s.1.dylib $exe
+    done
+
+    for file in $(find "$out" -name setup-config); do
+      substituteInPlace $file --replace /usr/bin/ranlib "$(type -P ranlib)"
+    done
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    unset ${libEnvVar}
+    # Sanity check, can ghc create executables?
+    cd $TMP
+    mkdir test-ghc; cd test-ghc
+    cat > main.hs << EOF
+      {-# LANGUAGE TemplateHaskell #-}
+      module Main where
+      main = putStrLn \$([|"yes"|])
+    EOF
+    $out/bin/ghc --make main.hs || exit 1
+    echo compilation ok
+    [ $(./main) == "yes" ]
+  '';
+
+  passthru = {
+    targetPrefix = "";
+    enableShared = true;
+  };
+
+  meta.license = stdenv.lib.licenses.bsd3;
+  meta.platforms = ["x86_64-linux" "armv7l-linux" "aarch64-linux" "i686-linux" "x86_64-darwin"];
+}
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.4.4.nix b/nixpkgs/pkgs/development/compilers/ghc/8.10.2.nix
index a4174c47046e..f3d64ced81ee 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/8.4.4.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/8.10.2.nix
@@ -2,12 +2,15 @@
 
 # build-tools
 , bootPkgs
-, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4, sphinx
+, autoconf, automake, coreutils, fetchurl, perl, python3, m4, sphinx
 , bash
 
 , libiconv ? null, ncurses
 
-, useLLVM ? !stdenv.targetPlatform.isx86 || (stdenv.targetPlatform.isMusl && stdenv.hostPlatform != stdenv.targetPlatform) || stdenv.targetPlatform.isiOS
+, # GHC can be built with system libffi or a bundled one.
+  libffi ? null
+
+, useLLVM ? !stdenv.targetPlatform.isx86
 , # LLVM is conceptually a run-time-only depedendency, but for
   # non-x86, we need LLVM to bootstrap later stages, so it becomes a
   # build-time dependency too.
@@ -20,6 +23,9 @@
 , # If enabled, use -fPIC when compiling static libs.
   enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
 
+  # aarch64 outputs otherwise exceed 2GB limit
+, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
+
 , # Whether to build dynamic libs for the standard library (on the target
   # platform). Static libs are always built.
   enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
@@ -29,11 +35,12 @@
 
 , # What flavour to build. An empty string indicates no
   # specific flavour and falls back to ghc default values.
-  ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform) "perf-cross"
-, # Whether to backport https://phabricator.haskell.org/D4388 for
-  # deterministic profiling symbol names, at the cost of a slightly
-  # non-standard GHC API
-  deterministicProfiling ? false
+  ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
+    (if useLLVM then "perf-cross" else "perf-cross-ncg")
+
+, # Whether to disable the large address space allocator
+  # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
+  disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
 }:
 
 assert !enableIntegerSimple -> gmp != null;
@@ -61,6 +68,8 @@ let
     HADDOCK_DOCS = NO
     BUILD_SPHINX_HTML = NO
     BUILD_SPHINX_PDF = NO
+  '' + stdenv.lib.optionalString (!enableProfiledLibs) ''
+    GhcLibWays = "v dyn"
   '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
     GhcLibHcOpts += -fPIC
     GhcRtsHcOpts += -fPIC
@@ -70,6 +79,7 @@ let
 
   # Splicer will pull out correct variations
   libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
+    ++ [libffi]
     ++ stdenv.lib.optional (!enableIntegerSimple) gmp
     ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
 
@@ -85,38 +95,22 @@ let
 
 in
 stdenv.mkDerivation (rec {
-  version = "8.4.4";
+  version = "8.10.2";
   name = "${targetPrefix}ghc-${version}";
 
   src = fetchurl {
     url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
-    sha256 = "1ch4j2asg7pr52ai1hwzykxyj553wndg7wq93i47ql4fllspf48i";
+    sha256 = "02w8n085bw38vyp694j0lfk5wcnwkdaj7hhp0saj71x74533lmww";
   };
 
   enableParallelBuilding = true;
 
   outputs = [ "out" "doc" ];
 
-  patches = [(fetchpatch {
-    url = "https://github.com/haskell/hsc2hs/commit/738f3666c878ee9e79c3d5e819ef8b3460288edf.diff";
-    sha256 = "0plzsbfaq6vb1023lsarrjglwgr9chld4q3m99rcfzx0yx5mibp3";
-    extraPrefix = "utils/hsc2hs/";
-    stripLen = 1;
-  }) (fetchpatch rec { # https://phabricator.haskell.org/D5123
-    url = "http://tarballs.nixos.org/sha256/${sha256}";
-    name = "D5123.diff";
-    sha256 = "0nhqwdamf2y4gbwqxcgjxs0kqx23w9gv5kj0zv6450dq19rji82n";
-  })] ++ stdenv.lib.optional deterministicProfiling
-    (fetchpatch rec {
-      url = "http://tarballs.nixos.org/sha256/${sha256}";
-      name = "D4388.diff";
-      sha256 = "0w6sdcvnqjlnlzpvnzw20b80v150ijjyjvs9548ildc1928j0w7s";
-    })
-    ++ stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch
-    ++ stdenv.lib.optional (targetPlatform.isAarch32 || targetPlatform.isAarch64) (fetchpatch {
-      url = "https://github.com/ghc/ghc/commit/d8495549ba9d194815c2d0eaee6797fc7c00756a.diff";
-      sha256 = "1yjcma507c609bcim4rnxq0gaj2dg4d001jklmbpbqpzqzxkn5sz";
-    });
+  # https://gitlab.haskell.org/ghc/ghc/-/issues/18549 
+  patches = [ 
+    ./issue-18549.patch 
+  ];
 
   postPatch = "patchShebangs .";
 
@@ -167,22 +161,28 @@ stdenv.mkDerivation (rec {
   # TODO(@Ericson2314): Always pass "--target" and always prefix.
   configurePlatforms = [ "build" "host" ]
     ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
+
   # `--with` flags for libraries needed for RTS linker
   configureFlags = [
     "--datadir=$doc/share/doc/ghc"
     "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
+  ] ++ stdenv.lib.optionals (libffi != null) [
+    "--with-system-libffi"
+    "--with-ffi-includes=${targetPackages.libffi.dev}/include"
+    "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
   ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
-    "--with-gmp-includes=${targetPackages.gmp.dev}/include" "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
+    "--with-gmp-includes=${targetPackages.gmp.dev}/include"
+    "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
   ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
-    "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib"
+    "--with-iconv-includes=${libiconv}/include"
+    "--with-iconv-libraries=${libiconv}/lib"
   ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
     "--enable-bootstrap-with-devel-snapshot"
   ] ++ stdenv.lib.optionals useLdGold [
     "CFLAGS=-fuse-ld=gold"
     "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
     "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
-  ] ++ stdenv.lib.optionals (targetPlatform.isDarwin && targetPlatform.isAarch64) [
-    # fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
+  ] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
     "--disable-large-address-space"
   ];
 
@@ -190,7 +190,7 @@ stdenv.mkDerivation (rec {
   strictDeps = true;
 
   # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
-  dontAddExtraLibs = true;
+	dontAddExtraLibs = true;
 
   nativeBuildInputs = [
     perl autoconf automake m4 python3 sphinx
@@ -212,10 +212,6 @@ stdenv.mkDerivation (rec {
   # that in turn causes GHCi to abort
   stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
 
-  # See #63511 - the only unstripped file is the debug rts which isn't meant to
-  # be stripped.
-  dontStrip = true;
-
   checkTarget = "test";
 
   hardeningDisable = [ "format" ] ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie";
@@ -239,7 +235,7 @@ stdenv.mkDerivation (rec {
     inherit enableShared;
 
     # Our Cabal compiler name
-    haskellCompilerName = "ghc-8.4.4";
+    haskellCompilerName = "ghc-${version}";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.6.5-binary.nix b/nixpkgs/pkgs/development/compilers/ghc/8.6.5-binary.nix
index 97793d912895..41af279e83ff 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/8.6.5-binary.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/8.6.5-binary.nix
@@ -78,18 +78,6 @@ stdenv.mkDerivation rec {
       patchShebangs ghc-${version}/configure
     '' +
 
-    # Strip is harmful, see also below. It's important that this happens
-    # first. The GHC Cabal build system makes use of strip by default and
-    # has hardcoded paths to /usr/bin/strip in many places. We replace
-    # those below, making them point to our dummy script.
-    ''
-      mkdir "$TMP/bin"
-      for i in strip; do
-        echo '#! ${stdenv.shell}' > "$TMP/bin/$i"
-        chmod +x "$TMP/bin/$i"
-      done
-      PATH="$TMP/bin:$PATH"
-    '' +
     # We have to patch the GMP paths for the integer-gmp package.
     ''
       find . -name integer-gmp.buildinfo \
@@ -125,17 +113,13 @@ stdenv.mkDerivation rec {
   ] ++ stdenv.lib.optional stdenv.isDarwin "--with-gcc=${./gcc-clang-wrapper.sh}"
     ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "--disable-ld-override";
 
-  # Stripping combined with patchelf breaks the executables (they die
-  # with a segfault or the kernel even refuses the execve). (NIXPKGS-85)
-  dontStrip = true;
-
   # No building is necessary, but calling make without flags ironically
   # calls install-strip ...
   dontBuild = true;
 
   # On Linux, use patchelf to modify the executables so that they can
   # find editline/gmp.
-  preFixup = stdenv.lib.optionalString stdenv.isLinux ''
+  postFixup = stdenv.lib.optionalString stdenv.isLinux ''
     for p in $(find "$out" -type f -executable); do
       if isELF "$p"; then
         echo "Patchelfing $p"
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.6.5.nix b/nixpkgs/pkgs/development/compilers/ghc/8.6.5.nix
index 06266556cf33..a5d2bb5c88d6 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/8.6.5.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/8.6.5.nix
@@ -59,8 +59,15 @@ let
     endif
     DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
     INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
-  '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
-    Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
+  ''
+    # We only need to build stage1 on most cross-compilation because
+    # we will be running the compiler on the native system. In some
+    # situations, like native Musl compilation, we need the compiler
+    # to actually link to our new Libc. The iOS simulator is a special
+    # exception because we can’t actually run simulators binaries
+    # ourselves.
+  + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
+    Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
     CrossCompilePrefix = ${targetPrefix}
     HADDOCK_DOCS = NO
     BUILD_SPHINX_HTML = NO
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.8.2.nix b/nixpkgs/pkgs/development/compilers/ghc/8.8.2.nix
index 305226b34079..371a369496ee 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/8.8.2.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/8.8.2.nix
@@ -52,19 +52,28 @@ let
     (targetPlatform != hostPlatform)
     "${targetPlatform.config}-";
 
-  buildMK = ''
+  buildMK = dontStrip: ''
     BuildFlavour = ${ghcFlavour}
     ifneq \"\$(BuildFlavour)\" \"\"
     include mk/flavours/\$(BuildFlavour).mk
     endif
     DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
     INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
-  '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
-    Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
+  ''
+    # We only need to build stage1 on most cross-compilation because
+    # we will be running the compiler on the native system. In some
+    # situations, like native Musl compilation, we need the compiler
+    # to actually link to our new Libc. The iOS simulator is a special
+    # exception because we can’t actually run simulators binaries
+    # ourselves.
+  + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
+    Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
     CrossCompilePrefix = ${targetPrefix}
     HADDOCK_DOCS = NO
     BUILD_SPHINX_HTML = NO
     BUILD_SPHINX_PDF = NO
+  '' + stdenv.lib.optionalString dontStrip ''
+    STRIP_CMD = :
   '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
     GhcLibHcOpts += -fPIC
     GhcRtsHcOpts += -fPIC
@@ -94,7 +103,7 @@ stdenv.mkDerivation (rec {
   name = "${targetPrefix}ghc-${version}";
 
   src = fetchurl {
-    url = "https://downloads.haskell.org/ghc/8.8.2/ghc-${version}-src.tar.xz";
+    url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
     sha256 = "02qa6wgjpxgakg7hv4zfdlrx9k7zxa5i02wnr6y9fsv8j16sbkh1";
   };
 
@@ -122,7 +131,7 @@ stdenv.mkDerivation (rec {
     export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
     export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
 
-    echo -n "${buildMK}" > mk/build.mk
+    echo -n "${buildMK dontStrip}" > mk/build.mk
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
   '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
     export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
@@ -235,8 +244,9 @@ stdenv.mkDerivation (rec {
     inherit (ghc.meta) license platforms;
   };
 
-} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
-  dontStrip = true;
+  dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
+
+} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
   dontPatchELF = true;
   noAuditTmpdir = true;
 })
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.8.3.nix b/nixpkgs/pkgs/development/compilers/ghc/8.8.3.nix
index b199dc34fa37..e26eacca204b 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/8.8.3.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/8.8.3.nix
@@ -23,6 +23,9 @@
 , # If enabled, use -fPIC when compiling static libs.
   enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
 
+  # aarch64 outputs otherwise exceed 2GB limit
+, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
+
 , # Whether to build dynamic libs for the standard library (on the target
   # platform). Static libs are always built.
   enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
@@ -52,19 +55,30 @@ let
     (targetPlatform != hostPlatform)
     "${targetPlatform.config}-";
 
-  buildMK = ''
+  buildMK = dontStrip: ''
     BuildFlavour = ${ghcFlavour}
     ifneq \"\$(BuildFlavour)\" \"\"
     include mk/flavours/\$(BuildFlavour).mk
     endif
     DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
     INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
-  '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
-    Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
+  ''
+    # We only need to build stage1 on most cross-compilation because
+    # we will be running the compiler on the native system. In some
+    # situations, like native Musl compilation, we need the compiler
+    # to actually link to our new Libc. The iOS simulator is a special
+    # exception because we can’t actually run simulators binaries
+    # ourselves.
+  + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
+    Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
     CrossCompilePrefix = ${targetPrefix}
     HADDOCK_DOCS = NO
     BUILD_SPHINX_HTML = NO
     BUILD_SPHINX_PDF = NO
+  '' + stdenv.lib.optionalString dontStrip ''
+    STRIP_CMD = :
+  '' + stdenv.lib.optionalString (!enableProfiledLibs) ''
+    GhcLibWays = "v dyn"
   '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
     GhcLibHcOpts += -fPIC
     GhcRtsHcOpts += -fPIC
@@ -122,7 +136,7 @@ stdenv.mkDerivation (rec {
     export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
     export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
 
-    echo -n "${buildMK}" > mk/build.mk
+    echo -n "${buildMK dontStrip}" > mk/build.mk
     sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
   '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
     export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
@@ -235,8 +249,9 @@ stdenv.mkDerivation (rec {
     inherit (ghc.meta) license platforms;
   };
 
-} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
-  dontStrip = true;
+  dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
+
+} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
   dontPatchELF = true;
   noAuditTmpdir = true;
 })
diff --git a/nixpkgs/pkgs/development/compilers/ghc/8.8.4.nix b/nixpkgs/pkgs/development/compilers/ghc/8.8.4.nix
new file mode 100644
index 000000000000..22a9e6e25f9f
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/ghc/8.8.4.nix
@@ -0,0 +1,257 @@
+{ stdenv, pkgsBuildTarget, targetPackages
+
+# build-tools
+, bootPkgs
+, autoconf, automake, coreutils, fetchurl, perl, python3, m4, sphinx
+, bash
+
+, libiconv ? null, ncurses
+
+, # GHC can be built with system libffi or a bundled one.
+  libffi ? null
+
+, useLLVM ? !stdenv.targetPlatform.isx86
+, # LLVM is conceptually a run-time-only depedendency, but for
+  # non-x86, we need LLVM to bootstrap later stages, so it becomes a
+  # build-time dependency too.
+  buildLlvmPackages, llvmPackages
+
+, # If enabled, GHC will be built with the GPL-free but slower integer-simple
+  # library instead of the faster but GPLed integer-gmp library.
+  enableIntegerSimple ? !(stdenv.lib.any (stdenv.lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms), gmp
+
+, # If enabled, use -fPIC when compiling static libs.
+  enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
+
+  # aarch64 outputs otherwise exceed 2GB limit
+, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
+
+, # Whether to build dynamic libs for the standard library (on the target
+  # platform). Static libs are always built.
+  enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
+
+, # Whether to build terminfo.
+  enableTerminfo ? !stdenv.targetPlatform.isWindows
+
+, # What flavour to build. An empty string indicates no
+  # specific flavour and falls back to ghc default values.
+  ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
+    (if useLLVM then "perf-cross" else "perf-cross-ncg")
+
+, # Whether to disable the large address space allocator
+  # necessary fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/
+  disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
+}:
+
+assert !enableIntegerSimple -> gmp != null;
+
+let
+  inherit (stdenv) buildPlatform hostPlatform targetPlatform;
+
+  inherit (bootPkgs) ghc;
+
+  # TODO(@Ericson2314) Make unconditional
+  targetPrefix = stdenv.lib.optionalString
+    (targetPlatform != hostPlatform)
+    "${targetPlatform.config}-";
+
+  buildMK = dontStrip: ''
+    BuildFlavour = ${ghcFlavour}
+    ifneq \"\$(BuildFlavour)\" \"\"
+    include mk/flavours/\$(BuildFlavour).mk
+    endif
+    DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
+    INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
+  ''
+    # We only need to build stage1 on most cross-compilation because
+    # we will be running the compiler on the native system. In some
+    # situations, like native Musl compilation, we need the compiler
+    # to actually link to our new Libc. The iOS simulator is a special
+    # exception because we can’t actually run simulators binaries
+    # ourselves.
+  + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
+    Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
+    CrossCompilePrefix = ${targetPrefix}
+    HADDOCK_DOCS = NO
+    BUILD_SPHINX_HTML = NO
+    BUILD_SPHINX_PDF = NO
+  '' + stdenv.lib.optionalString dontStrip ''
+    STRIP_CMD = :
+  '' + stdenv.lib.optionalString (!enableProfiledLibs) ''
+    GhcLibWays = "v dyn"
+  '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
+    GhcLibHcOpts += -fPIC
+    GhcRtsHcOpts += -fPIC
+  '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
+    EXTRA_CC_OPTS += -std=gnu99
+  '';
+
+  # Splicer will pull out correct variations
+  libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
+    ++ [libffi]
+    ++ stdenv.lib.optional (!enableIntegerSimple) gmp
+    ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv;
+
+  toolsForTarget = [
+    pkgsBuildTarget.targetPackages.stdenv.cc
+  ] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm;
+
+  targetCC = builtins.head toolsForTarget;
+
+  # ld.gold is disabled for musl libc due to https://sourceware.org/bugzilla/show_bug.cgi?id=23856
+  # see #84670 and #49071 for more background.
+  useLdGold = targetPlatform.isLinux && !(targetPlatform.useLLVM or false) && !targetPlatform.isMusl;
+
+in
+stdenv.mkDerivation (rec {
+  version = "8.8.4";
+  name = "${targetPrefix}ghc-${version}";
+
+  src = fetchurl {
+    url = "https://downloads.haskell.org/ghc/${version}/ghc-${version}-src.tar.xz";
+    sha256 = "0bgwbxxvdn56l91bp9p5d083gzcfdi6z8l8b17qzjpr3n8w5wl7h";
+  };
+
+  enableParallelBuilding = true;
+
+  outputs = [ "out" "doc" ];
+
+  postPatch = "patchShebangs .";
+
+  # GHC is a bit confused on its cross terminology.
+  preConfigure = ''
+    for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do
+      export "''${env#TARGET_}=''${!env}"
+    done
+    # GHC is a bit confused on its cross terminology, as these would normally be
+    # the *host* tools.
+    export CC="${targetCC}/bin/${targetCC.targetPrefix}cc"
+    export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx"
+    # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177
+    export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString useLdGold ".gold"}"
+    export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as"
+    export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar"
+    export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm"
+    export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib"
+    export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
+    export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
+
+    echo -n "${buildMK dontStrip}" > mk/build.mk
+    sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure
+  '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
+    export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}"
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    export NIX_LDFLAGS+=" -no_dtrace_dof"
+  '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt ''
+    sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets
+  '' + stdenv.lib.optionalString targetPlatform.isMusl ''
+      echo "patching llvm-targets for musl targets..."
+      echo "Cloning these existing '*-linux-gnu*' targets:"
+      grep linux-gnu llvm-targets | sed 's/^/  /'
+      echo "(go go gadget sed)"
+      sed -i 's,\(^.*linux-\)gnu\(.*\)$,\0\n\1musl\2,' llvm-targets
+      echo "llvm-targets now contains these '*-linux-musl*' targets:"
+      grep linux-musl llvm-targets | sed 's/^/  /'
+
+      echo "And now patching to preserve '-musleabi' as done with '-gnueabi'"
+      # (aclocal.m4 is actual source, but patch configure as well since we don't re-gen)
+      for x in configure aclocal.m4; do
+        substituteInPlace $x \
+          --replace '*-android*|*-gnueabi*)' \
+                    '*-android*|*-gnueabi*|*-musleabi*)'
+      done
+  '';
+
+  # TODO(@Ericson2314): Always pass "--target" and always prefix.
+  configurePlatforms = [ "build" "host" ]
+    ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target";
+
+  # `--with` flags for libraries needed for RTS linker
+  configureFlags = [
+    "--datadir=$doc/share/doc/ghc"
+    "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib"
+  ] ++ stdenv.lib.optionals (libffi != null) [
+    "--with-system-libffi"
+    "--with-ffi-includes=${targetPackages.libffi.dev}/include"
+    "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
+  ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
+    "--with-gmp-includes=${targetPackages.gmp.dev}/include"
+    "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
+  ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
+    "--with-iconv-includes=${libiconv}/include"
+    "--with-iconv-libraries=${libiconv}/lib"
+  ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [
+    "--enable-bootstrap-with-devel-snapshot"
+  ] ++ stdenv.lib.optionals useLdGold [
+    "CFLAGS=-fuse-ld=gold"
+    "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold"
+    "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold"
+  ] ++ stdenv.lib.optionals (disableLargeAddressSpace) [
+    "--disable-large-address-space"
+  ];
+
+  # Make sure we never relax`$PATH` and hooks support for compatibility.
+  strictDeps = true;
+
+  # Don’t add -liconv to LDFLAGS automatically so that GHC will add it itself.
+	dontAddExtraLibs = true;
+
+  nativeBuildInputs = [
+    perl autoconf automake m4 python3 sphinx
+    ghc bootPkgs.alex bootPkgs.happy bootPkgs.hscolour
+  ];
+
+  # For building runtime libs
+  depsBuildTarget = toolsForTarget;
+
+  buildInputs = [ perl bash ] ++ (libDeps hostPlatform);
+
+  propagatedBuildInputs = [ targetPackages.stdenv.cc ]
+    ++ stdenv.lib.optional useLLVM llvmPackages.llvm;
+
+  depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform);
+  depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform);
+
+  # required, because otherwise all symbols from HSffi.o are stripped, and
+  # that in turn causes GHCi to abort
+  stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols";
+
+  checkTarget = "test";
+
+  hardeningDisable = [ "format" ] ++ stdenv.lib.optional stdenv.targetPlatform.isMusl "pie";
+
+  postInstall = ''
+    # Install the bash completion file.
+    install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc
+
+    # Patch scripts to include "readelf" and "cat" in $PATH.
+    for i in "$out/bin/"*; do
+      test ! -h $i || continue
+      egrep --quiet '^#!' <(head -n 1 $i) || continue
+      sed -i -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i
+    done
+  '';
+
+  passthru = {
+    inherit bootPkgs targetPrefix;
+
+    inherit llvmPackages;
+    inherit enableShared;
+
+    # Our Cabal compiler name
+    haskellCompilerName = "ghc-${version}";
+  };
+
+  meta = {
+    homepage = "http://haskell.org/ghc";
+    description = "The Glasgow Haskell Compiler";
+    maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ];
+    inherit (ghc.meta) license platforms;
+  };
+
+  dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
+
+} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
+  dontPatchELF = true;
+  noAuditTmpdir = true;
+})
diff --git a/nixpkgs/pkgs/development/compilers/ghc/head.nix b/nixpkgs/pkgs/development/compilers/ghc/head.nix
index a15ef7f7dbf8..6f9f577743f5 100644
--- a/nixpkgs/pkgs/development/compilers/ghc/head.nix
+++ b/nixpkgs/pkgs/development/compilers/ghc/head.nix
@@ -20,14 +20,17 @@
   # build-time dependency too.
   buildLlvmPackages, llvmPackages
 
-, # If enabled, GHC will be built with the GPL-free but slower integer-simple
-  # library instead of the faster but GPLed integer-gmp library.
-  enableIntegerSimple ? !(stdenv.lib.any (stdenv.lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms)
+, # If enabled, GHC will be built with the GPL-free but slightly slower native
+  # bignum backend instead of the faster but GPLed gmp backend.
+  enableNativeBignum ? !(stdenv.lib.any (stdenv.lib.meta.platformMatch stdenv.hostPlatform) gmp.meta.platforms)
 , gmp
 
 , # If enabled, use -fPIC when compiling static libs.
   enableRelocatedStaticLibs ? stdenv.targetPlatform != stdenv.hostPlatform
 
+  # aarch64 outputs otherwise exceed 2GB limit
+, enableProfiledLibs ? !stdenv.targetPlatform.isAarch64
+
 , # Whether to build dynamic libs for the standard library (on the target
   # platform). Static libs are always built.
   enableShared ? !stdenv.targetPlatform.isWindows && !stdenv.targetPlatform.useiOSPrebuilt
@@ -35,7 +38,7 @@
 , # Whether to build terminfo.
   enableTerminfo ? !stdenv.targetPlatform.isWindows
 
-, version ? "8.11.20200505"
+, version ? "8.11.20200824"
 , # What flavour to build. An empty string indicates no
   # specific flavour and falls back to ghc default values.
   ghcFlavour ? stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
@@ -46,7 +49,7 @@
   disableLargeAddressSpace ? stdenv.targetPlatform.isDarwin && stdenv.targetPlatform.isAarch64
 }:
 
-assert !enableIntegerSimple -> gmp != null;
+assert !enableNativeBignum -> gmp != null;
 
 let
   inherit (stdenv) buildPlatform hostPlatform targetPlatform;
@@ -58,19 +61,23 @@ let
     (targetPlatform != hostPlatform)
     "${targetPlatform.config}-";
 
-  buildMK = ''
+  buildMK = dontStrip: ''
     BuildFlavour = ${ghcFlavour}
     ifneq \"\$(BuildFlavour)\" \"\"
     include mk/flavours/\$(BuildFlavour).mk
     endif
     DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
-    INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
+    BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"}
   '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) ''
-    Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"}
+    Stage1Only = ${if (targetPlatform.system == hostPlatform.system && !targetPlatform.isiOS) then "NO" else "YES"}
     CrossCompilePrefix = ${targetPrefix}
     HADDOCK_DOCS = NO
     BUILD_SPHINX_HTML = NO
     BUILD_SPHINX_PDF = NO
+  '' + stdenv.lib.optionalString dontStrip ''
+    STRIP_CMD = :
+  '' + stdenv.lib.optionalString (!enableProfiledLibs) ''
+    GhcLibWays = "v dyn"
   '' + stdenv.lib.optionalString enableRelocatedStaticLibs ''
     GhcLibHcOpts += -fPIC
     GhcRtsHcOpts += -fPIC
@@ -81,7 +88,7 @@ let
   # Splicer will pull out correct variations
   libDeps = platform: stdenv.lib.optional enableTerminfo ncurses
     ++ [libffi]
-    ++ stdenv.lib.optional (!enableIntegerSimple) gmp
+    ++ stdenv.lib.optional (!enableNativeBignum) gmp
     ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv
     ++ stdenv.lib.optional enableDwarf elfutils;
 
@@ -103,8 +110,8 @@ stdenv.mkDerivation (rec {
 
   src = fetchgit {
     url = "https://gitlab.haskell.org/ghc/ghc.git/";
-    rev = "40c71c2cf38b4e134d81b7184a4d5e02949ae70c";
-    sha256 = "04h9rcyzm9w3an1z00hjs062dp7dl19b8pkyxjsypr7a2i9dmvkb";
+    rev = "3f50154591ada9064351ccec4adfe6df53ca2439";
+    sha256 = "1w2p5bc74aswspzvgvrhcb95hvj5ky38rgqqjvrri19z2qyiky6d";
   };
 
   enableParallelBuilding = true;
@@ -132,7 +139,7 @@ stdenv.mkDerivation (rec {
     export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf"
     export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip"
 
-    echo -n "${buildMK}" > mk/build.mk
+    echo -n "${buildMK dontStrip}" > mk/build.mk
     echo ${version} > VERSION
     echo ${src.rev} > GIT_COMMIT_ID
     ./boot
@@ -173,7 +180,7 @@ stdenv.mkDerivation (rec {
     "--with-system-libffi"
     "--with-ffi-includes=${targetPackages.libffi.dev}/include"
     "--with-ffi-libraries=${targetPackages.libffi.out}/lib"
-  ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableIntegerSimple) [
+  ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && !enableNativeBignum) [
     "--with-gmp-includes=${targetPackages.gmp.dev}/include"
     "--with-gmp-libraries=${targetPackages.gmp.out}/lib"
   ] ++ stdenv.lib.optionals (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [
@@ -251,8 +258,9 @@ stdenv.mkDerivation (rec {
     inherit (ghc.meta) license platforms;
   };
 
-} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt {
-  dontStrip = true;
+  dontStrip = (targetPlatform.useAndroidPrebuilt || targetPlatform.isWasm);
+
+} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt{
   dontPatchELF = true;
   noAuditTmpdir = true;
 })
diff --git a/nixpkgs/pkgs/development/compilers/ghc/issue-18549.patch b/nixpkgs/pkgs/development/compilers/ghc/issue-18549.patch
new file mode 100644
index 000000000000..eb30d9d9dd4c
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/ghc/issue-18549.patch
@@ -0,0 +1,296 @@
+From fac083e7ac8a37b61a4082bbbca2848e52fd1bb2 Mon Sep 17 00:00:00 2001
+From: Ben Gamari <ben@smart-cactus.org>
+Date: Sun, 9 Aug 2020 09:15:16 -0400
+Subject: [PATCH] Revert "[linker/rtsSymbols] More linker symbols"
+
+This reverts commit aa2e5863699306920513b216f337de09e29b5bb8.
+---
+ rts/RtsSymbols.c | 224 ++++-------------------------------------------
+ 1 file changed, 17 insertions(+), 207 deletions(-)
+
+diff --git a/rts/RtsSymbols.c b/rts/RtsSymbols.c
+index d10a6900db..b2f90a892d 100644
+--- a/rts/RtsSymbols.c
++++ b/rts/RtsSymbols.c
+@@ -58,6 +58,7 @@
+       SymI_HasProto(signal_handlers)            \
+       SymI_HasProto(stg_sig_install)            \
+       SymI_HasProto(rtsTimerSignal)             \
++      SymI_HasProto(atexit)                     \
+       SymI_NeedsDataProto(nocldstop)
+ #endif
+ 
+@@ -976,213 +977,29 @@
+       RTS_USER_SIGNALS_SYMBOLS                                          \
+       RTS_INTCHAR_SYMBOLS
+ 
++
+ // 64-bit support functions in libgcc.a
+-// See https://gcc.gnu.org/onlinedocs/gccint/Libgcc.html#Libgcc
+-#define RTS_LIBGCC_SYMBOLS_32                          \
+-      SymI_NeedsProto(__fixunsdfdi)                    \
+-      /* 4 The GCC low-level runtime library         */\
+-      /* 4.1.1 Arithmetic functions                  */\
+-      /* SymI_NeedsProto(__ashlsi3) */\
+-      SymI_NeedsProto(__ashldi3) \
+-      /* SymI_NeedsProto(__ashlti3) */\
+-      /* These functions return the result of shifting a left by b bits. */\
+-      /* SymI_NeedsProto(__ashrsi3) */\
+-      SymI_NeedsProto(__ashrdi3) \
+-      /* SymI_NeedsProto(__ashrti3) */\
+-      /* These functions return the result of arithmetically shifting a right by b bits. */\
+-      /* SymI_NeedsProto(__divsi3) */\
+-      SymI_NeedsProto(__divdi3) \
+-      /* SymI_NeedsProto(__divti3) */\
+-      /* These functions return the quotient of the signed division of a and b. */\
+-      /* SymI_NeedsProto(__lshrsi3) */ \
+-      SymI_NeedsProto(__lshrdi3) \
+-      /* SymI_NeedsProto(__lshrti3) */ \
+-      /* These functions return the result of logically shifting a right by b bits. */\
+-      /* SymI_NeedsProto(__modsi3) */ \
+-      SymI_NeedsProto(__moddi3) \
+-      /* SymI_NeedsProto(__modti3) */ \
+-      /* These functions return the remainder of the signed division of a and b. */\
+-      /* SymI_NeedsProto(__mulsi3) */ \
+-      SymI_NeedsProto(__muldi3) \
+-      /* SymI_NeedsProto(__multi3) */ \
+-      /* These functions return the product of a and b. */\
+-      SymI_NeedsProto(__negdi2) \
+-      /* SymI_NeedsProto(__negti2) */ \
+-      /* These functions return the negation of a. */\
+-      /* SymI_NeedsProto(__udivsi3) */ \
+-      SymI_NeedsProto(__udivdi3) \
+-      /* SymI_NeedsProto(__udivti3) */ \
+-      /* These functions return the quotient of the unsigned division of a and b. */\
+-      SymI_NeedsProto(__udivmoddi4) \
+-      /* SymI_NeedsProto(__udivmodti4) */ \
+-      /* These functions calculate both the quotient and remainder of the unsigned division of a and b. The return value is the quotient, and the remainder is placed in variable pointed to by c. */\
+-      /* SymI_NeedsProto(__umodsi3) */ \
+-      SymI_NeedsProto(__umoddi3) \
+-      /* SymI_NeedsProto(__umodti3) */ \
+-      /* These functions return the remainder of the unsigned division of a and b. */\
+-      /* 4.1.2 Comparison functions */\
+-      /* The following functions implement integral comparisons. These functions implement a low-level compare, upon which the higher level comparison operators (such as less than and greater than or equal to) can be constructed. The returned values lie in the range zero to two, to allow the high-level operators to be implemented by testing the returned result using either signed or unsigned comparison. */\
+-      SymI_NeedsProto(__cmpdi2) \
+-      /* SymI_NeedsProto(__cmpti2) */ \
+-      /* These functions perform a signed comparison of a and b. If a is less than b, they return 0; if a is greater than b, they return 2; and if a and b are equal they return 1. */\
+-      SymI_NeedsProto(__ucmpdi2) \
+-      /* SymI_NeedsProto(__ucmpti2) */ \
+-      /* These functions perform an unsigned comparison of a and b. If a is less than b, they return 0; if a is greater than b, they return 2; and if a and b are equal they return 1. */\
+-      /* 4.1.3 Trapping arithmetic functions */\
+-      /* The following functions implement trapping arithmetic. These functions call the libc function abort upon signed arithmetic overflow. */\
+-      SymI_NeedsProto(__absvsi2) \
+-      SymI_NeedsProto(__absvdi2) \
+-      /* These functions return the absolute value of a. */\
+-      /* SymI_NeedsProto(__addvsi3) */ \
+-      SymI_NeedsProto(__addvdi3) \
+-      /* These functions return the sum of a and b; that is a + b. */\
+-      /* SymI_NeedsProto(__mulvsi3) */ \
+-      SymI_NeedsProto(__mulvdi3) \
+-      /* The functions return the product of a and b; that is a * b. */\
+-      SymI_NeedsProto(__negvsi2) \
+-      SymI_NeedsProto(__negvdi2) \
+-      /* These functions return the negation of a; that is -a. */\
+-      /* SymI_NeedsProto(__subvsi3) */ \
+-      SymI_NeedsProto(__subvdi3) \
+-      /* These functions return the difference between b and a; that is a - b. */\
+-      /* 4.1.4 Bit operations */\
+-      SymI_NeedsProto(__clzsi2) \
+-      SymI_NeedsProto(__clzdi2) \
+-      /* SymI_NeedsProto(__clzti2) */ \
+-      /* These functions return the number of leading 0-bits in a, starting at the most significant bit position. If a is zero, the result is undefined. */\
+-      SymI_NeedsProto(__ctzsi2) \
+-      SymI_NeedsProto(__ctzdi2) \
+-      /* SymI_NeedsProto(__ctzti2) */ \
+-      /* These functions return the number of trailing 0-bits in a, starting at the least significant bit position. If a is zero, the result is undefined. */\
+-      SymI_NeedsProto(__ffsdi2) \
+-      /* SymI_NeedsProto(__ffsti2) */ \
+-      /* These functions return the index of the least significant 1-bit in a, or the value zero if a is zero. The least significant bit is index one. */\
+-      SymI_NeedsProto(__paritysi2) \
+-      SymI_NeedsProto(__paritydi2) \
+-      /* SymI_NeedsProto(__parityti2) */\
+-      /* These functions return the value zero if the number of bits set in a is even, and the value one otherwise. */\
+-      SymI_NeedsProto(__popcountsi2) \
+-      SymI_NeedsProto(__popcountdi2) \
+-      /* SymI_NeedsProto(__popcountti2) */ \
+-      /* These functions return the number of bits set in a. */\
+-      SymI_NeedsProto(__bswapsi2) \
+-      SymI_NeedsProto(__bswapdi2)
+-#define RTS_LIBGCC_SYMBOLS_aarch32                     \
+-      /* armv6l                                      */\
+-      /* TODO: should check for __ARM_EABI__         */\
+-      SymI_NeedsProto(__aeabi_d2f) \
+-      SymI_NeedsProto(__aeabi_d2iz) \
+-      SymI_NeedsProto(__aeabi_d2lz) \
+-      SymI_NeedsProto(__aeabi_d2uiz) \
+-      SymI_NeedsProto(__aeabi_d2ulz) \
+-      SymI_NeedsProto(__aeabi_dadd) \
+-      SymI_NeedsProto(__aeabi_dcmpeq) \
+-      SymI_NeedsProto(__aeabi_dcmpge) \
+-      SymI_NeedsProto(__aeabi_dcmpgt) \
+-      SymI_NeedsProto(__aeabi_dcmple) \
+-      SymI_NeedsProto(__aeabi_dcmplt) \
+-      SymI_NeedsProto(__aeabi_dcmpun) \
+-      SymI_NeedsProto(__aeabi_ddiv) \
+-      SymI_NeedsProto(__aeabi_dmul) \
+-      SymI_NeedsProto(__aeabi_dneg) \
+-      SymI_NeedsProto(__aeabi_dsub) \
+-      SymI_NeedsProto(__aeabi_f2d) \
+-      SymI_NeedsProto(__aeabi_f2iz) \
+-      SymI_NeedsProto(__aeabi_f2lz) \
+-      SymI_NeedsProto(__aeabi_f2uiz) \
+-      SymI_NeedsProto(__aeabi_f2ulz) \
+-      SymI_NeedsProto(__aeabi_fadd) \
+-      SymI_NeedsProto(__aeabi_fcmpeq) \
+-      SymI_NeedsProto(__aeabi_fcmpge) \
+-      SymI_NeedsProto(__aeabi_fcmpgt) \
+-      SymI_NeedsProto(__aeabi_fcmple) \
+-      SymI_NeedsProto(__aeabi_fcmplt) \
+-      SymI_NeedsProto(__aeabi_fcmpun) \
+-      SymI_NeedsProto(__aeabi_fdiv) \
+-      SymI_NeedsProto(__aeabi_fmul) \
+-      SymI_NeedsProto(__aeabi_fneg) \
+-      SymI_NeedsProto(__aeabi_fsub) \
+-      SymI_NeedsProto(__aeabi_i2d) \
+-      SymI_NeedsProto(__aeabi_i2f) \
+-      SymI_NeedsProto(__aeabi_idiv) \
+-      SymI_NeedsProto(__aeabi_idivmod) \
+-      SymI_NeedsProto(__aeabi_l2d) \
+-      SymI_NeedsProto(__aeabi_l2f) \
+-      SymI_NeedsProto(__aeabi_lasr) \
+-      SymI_NeedsProto(__aeabi_lcmp) \
+-      SymI_NeedsProto(__aeabi_ldivmod) \
+-      SymI_NeedsProto(__aeabi_llsl) \
+-      SymI_NeedsProto(__aeabi_llsr) \
+-      SymI_NeedsProto(__aeabi_lmul) \
+-      SymI_NeedsProto(__aeabi_ui2d) \
+-      SymI_NeedsProto(__aeabi_ui2f) \
+-      SymI_NeedsProto(__aeabi_uidiv) \
+-      SymI_NeedsProto(__aeabi_uidivmod) \
+-      SymI_NeedsProto(__aeabi_ul2d) \
+-      SymI_NeedsProto(__aeabi_ul2f) \
+-      SymI_NeedsProto(__aeabi_ulcmp) \
+-      SymI_NeedsProto(__aeabi_uldivmod)
+-#define RTS_LIBGCC_SYMBOLS_64                          \
++#if defined(__GNUC__) && SIZEOF_VOID_P <= 4 && !defined(_ABIN32)
++#define RTS_LIBGCC_SYMBOLS                             \
++      SymI_NeedsProto(__divdi3)                        \
++      SymI_NeedsProto(__udivdi3)                       \
++      SymI_NeedsProto(__moddi3)                        \
++      SymI_NeedsProto(__umoddi3)                       \
++      SymI_NeedsProto(__muldi3)                        \
++      SymI_NeedsProto(__ashldi3)                       \
++      SymI_NeedsProto(__ashrdi3)                       \
++      SymI_NeedsProto(__lshrdi3)                       \
++      SymI_NeedsProto(__fixunsdfdi)
++#elif defined(__GNUC__) && SIZEOF_VOID_P == 8
++#define RTS_LIBGCC_SYMBOLS                             \
+       SymI_NeedsProto(__udivti3)                       \
+       SymI_NeedsProto(__umodti3)
+-
+-/* for aarch64                                        */
+-#define RTS_LIBGCC_SYMBOLS_aarch64                     \
+-      SymI_NeedsProto(__netf2)                         \
+-      SymI_NeedsProto(__addtf3)                        \
+-      SymI_NeedsProto(__subtf3)                        \
+-      SymI_NeedsProto(__multf3)                        \
+-      SymI_NeedsProto(__extenddftf2)                   \
+-      SymI_NeedsProto(__fixtfsi)                       \
+-      SymI_NeedsProto(__fixunstfsi)                    \
+-      SymI_NeedsProto(__floatsitf)                     \
+-      SymI_NeedsProto(__floatunsitf)
+-
+-#if defined(__GNUC__) && SIZEOF_VOID_P <= 4 && defined(arm_HOST_OS)
+-#define RTS_LIBGCC_SYMBOLS RTS_LIBGCC_SYMBOLS_32 RTS_LIBGCC_SYMBOLS_aarch32
+-#elif defined(__GNUC__) && SIZEOF_VOID_P <= 4 && !defined(_ABIN32)
+-#define RTS_LIBGCC_SYMBOLS RTS_LIBGCC_SYMBOLS_32
+-#elif defined(__GNUC__) && SIZEOF_VOID_P == 8 && defined(aarch64_HOST_OS)
+-#define RTS_LIBGCC_SYMBOLS RTS_LIBGCC_SYMBOLS_64 RTS_LIBGCC_SYMBOLS_aarch64
+-#elif defined(__GNUC__) && SIZEOF_VOID_P == 8
+-#define RTS_LIBGCC_SYMBOLS RTS_LIBGCC_SYMBOLS_64
+ #else
+ #define RTS_LIBGCC_SYMBOLS
+ #endif
+ 
+-#if !defined(mingw32_HOST_OS) && !defined(DYNAMIC) && (defined(_FORTIFY_SOURCE) || defined(__SSP__))
+-#define RTS_SSP_SYMBOLS                                \
+-      SymI_NeedsProto(__stack_chk_guard)               \
+-      SymI_NeedsProto(__stack_chk_fail)
+-#else
+-#define RTS_SSP_SYMBOLS
+-#endif
+-#if !defined(DYNAMIC) && defined(linux_HOST_OS)
+-// we need these for static musl builds. However when
+-// linking shared objects (DLLs) this will fail, hence
+-// we do not include them when building with -DDYNAMIC
+-#define RTS_LINKER_SYMBOLS                             \
+-      SymI_NeedsProto(__fini_array_start)              \
+-      SymI_NeedsProto(__fini_array_end)
+-#else
+-#define RTS_LINKER_SYMBOLS
+-#endif
+-
+-#if defined(darwin_HOST_OS) && defined(powerpc_HOST_ARCH)
+-      // Symbols that don't have a leading underscore
+-      // on Mac OS X. They have to receive special treatment,
+-      // see machoInitSymbolsWithoutUnderscore()
+-#define RTS_MACHO_NOUNDERLINE_SYMBOLS                   \
+-      SymI_NeedsProto(saveFP)                           \
+-      SymI_NeedsProto(restFP)
+-#endif
+-
+ /* entirely bogus claims about types of these symbols */
+-/* to prevent a bit of define expansion, SymI_NeedsProto is a variadic
+- * macro.  And we'll concat vvv with the __VA_ARGS__. This prevents
+- * vvv from getting macro expanded.
+- */
+-#define SymI_NeedsProto(vvv,...) extern void vvv ## __VA_ARGS__ (void);
++#define SymI_NeedsProto(vvv)  extern void vvv(void);
+ #define SymI_NeedsDataProto(vvv)  extern StgWord vvv[];
+ #if defined(COMPILING_WINDOWS_DLL)
+ #define SymE_HasProto(vvv)    SymE_HasProto(vvv);
+@@ -1209,8 +1026,6 @@ RTS_DARWIN_ONLY_SYMBOLS
+ RTS_OPENBSD_ONLY_SYMBOLS
+ RTS_LIBGCC_SYMBOLS
+ RTS_LIBFFI_SYMBOLS
+-RTS_SSP_SYMBOLS
+-RTS_LINKER_SYMBOLS
+ #undef SymI_NeedsProto
+ #undef SymI_NeedsDataProto
+ #undef SymI_HasProto
+@@ -1230,7 +1045,7 @@ RTS_LINKER_SYMBOLS
+ #define SymE_HasDataProto(vvv) \
+                     SymE_HasProto(vvv)
+ 
+-#define SymI_NeedsProto(vvv,...) SymI_HasProto(vvv ## __VA_ARGS__)
++#define SymI_NeedsProto(vvv) SymI_HasProto(vvv)
+ #define SymI_NeedsDataProto(vvv) SymI_HasDataProto(vvv)
+ #define SymE_NeedsProto(vvv) SymE_HasProto(vvv)
+ #define SymE_NeedsDataProto(vvv) SymE_HasDataProto(vvv)
+@@ -1251,8 +1066,6 @@ RTS_LINKER_SYMBOLS
+ #define SymI_HasProto_deprecated(vvv)   \
+    { #vvv, (void*)0xBAADF00D, true },
+ 
+-void *RTS_DYNAMIC = NULL;
+-
+ RtsSymbolVal rtsSyms[] = {
+       RTS_SYMBOLS
+       RTS_RET_SYMBOLS
+@@ -1264,14 +1077,11 @@ RtsSymbolVal rtsSyms[] = {
+       RTS_LIBGCC_SYMBOLS
+       RTS_LIBFFI_SYMBOLS
+       SymI_HasDataProto(nonmoving_write_barrier_enabled)
+-      RTS_SSP_SYMBOLS
+-      RTS_LINKER_SYMBOLS
+ #if defined(darwin_HOST_OS) && defined(i386_HOST_ARCH)
+       // dyld stub code contains references to this,
+       // but it should never be called because we treat
+       // lazy pointers as nonlazy.
+       { "dyld_stub_binding_helper", (void*)0xDEADBEEF, false },
+ #endif
+-      { "_DYNAMIC", (void*)(&RTS_DYNAMIC), false },
+       { 0, 0, false } /* sentinel */
+ };
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/development/compilers/ghcjs-ng/8.6/dep-overrides.nix b/nixpkgs/pkgs/development/compilers/ghcjs-ng/8.6/dep-overrides.nix
index c54c782fafa6..bbf8a579919f 100644
--- a/nixpkgs/pkgs/development/compilers/ghcjs-ng/8.6/dep-overrides.nix
+++ b/nixpkgs/pkgs/development/compilers/ghcjs-ng/8.6/dep-overrides.nix
@@ -1,11 +1,14 @@
 { haskellLib }:
 
-let inherit (haskellLib) doJailbreak dontHaddock;
+let inherit (haskellLib) doJailbreak dontHaddock dontCheck;
 in self: super: {
+  ghcjs = super.ghcjs.override {
+    shelly = super.shelly_1_8_1;
+  };
   ghc-api-ghcjs = super.ghc-api-ghcjs.override
   {
     happy = self.happy_1_19_5;
   };
-  haddock-library-ghcjs = doJailbreak super.haddock-library-ghcjs;
+  haddock-library-ghcjs = doJailbreak (dontCheck super.haddock-library-ghcjs);
   haddock-api-ghcjs = doJailbreak (dontHaddock super.haddock-api-ghcjs);
 }
diff --git a/nixpkgs/pkgs/development/compilers/ghcjs-ng/default.nix b/nixpkgs/pkgs/development/compilers/ghcjs-ng/default.nix
index 6d56c410aabd..7b6fbc460a95 100644
--- a/nixpkgs/pkgs/development/compilers/ghcjs-ng/default.nix
+++ b/nixpkgs/pkgs/development/compilers/ghcjs-ng/default.nix
@@ -102,7 +102,6 @@ in stdenv.mkDerivation {
 
     inherit passthru;
 
-    meta.broken = true; # build does not succeed
-    meta.platforms = lib.platforms.none;  # passthru.bootPkgs.ghc.meta.platforms;
+    meta.platforms = passthru.bootPkgs.ghc.meta.platforms;
     meta.maintainers = [lib.maintainers.elvishjerricco];
   }
diff --git a/nixpkgs/pkgs/development/compilers/gleam/default.nix b/nixpkgs/pkgs/development/compilers/gleam/default.nix
index 1fa8720a400a..a40065fe579c 100644
--- a/nixpkgs/pkgs/development/compilers/gleam/default.nix
+++ b/nixpkgs/pkgs/development/compilers/gleam/default.nix
@@ -1,19 +1,22 @@
-{ stdenv, rustPlatform, fetchFromGitHub, Security }:
+{ stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "gleam";
-  version = "0.8.0";
+  version = "0.11.2";
 
   src = fetchFromGitHub {
     owner = "gleam-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "05n8a7b63i9946fvbxphfh8n6ib20qnbv44ghlzcjwca9qvlx7i7";
+    sha256 = "1g8yfp1xpkv1lqz8azam40cvrs5cggxlyrb72h8k88br75qmi6hj";
   };
 
-  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
+  nativeBuildInputs = [ pkg-config ];
 
-  cargoSha256 = "1ga5dinkmibkg53bfr6vc0i4bbgyn2y3d5qjf5bd965c1v7ba1jl";
+  buildInputs = [ openssl ] ++
+    stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
+  cargoSha256 = "1gfr6c4i5kx8x3q23s4b4n25z2k6xkxpk12acr4ry97pyj2lr5wq";
 
   meta = with stdenv.lib; {
     description = "A statically typed language for the Erlang VM";
diff --git a/nixpkgs/pkgs/development/compilers/go-jsonnet/default.nix b/nixpkgs/pkgs/development/compilers/go-jsonnet/default.nix
index d85cf1adfe78..04af8e912517 100644
--- a/nixpkgs/pkgs/development/compilers/go-jsonnet/default.nix
+++ b/nixpkgs/pkgs/development/compilers/go-jsonnet/default.nix
@@ -13,7 +13,9 @@ buildGoModule rec {
 
   vendorSha256 = "0nsm4gsbbn8myz4yfi6m7qc3iizhdambsr18iks0clkdn3mi2jn1";
 
-  subPackages = [ "cmd/jsonnet" ];
+  doCheck = false;
+
+  subPackages = [ "cmd/jsonnet" "cmd/jsonnetfmt" ];
 
   meta = with lib; {
     description = "An implementation of Jsonnet in pure Go";
@@ -21,4 +23,4 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ nshalman ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/compilers/go/1.14.nix b/nixpkgs/pkgs/development/compilers/go/1.14.nix
index 560af19e2010..b467c998c3ed 100644
--- a/nixpkgs/pkgs/development/compilers/go/1.14.nix
+++ b/nixpkgs/pkgs/development/compilers/go/1.14.nix
@@ -2,6 +2,7 @@
 , perl, which, pkgconfig, patch, procps, pcre, cacert, Security, Foundation
 , mailcap, runtimeShell
 , buildPackages, pkgsTargetTarget
+, fetchpatch
 }:
 
 let
@@ -30,11 +31,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.14.3";
+  version = "1.14.9";
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "0mmgf74snprdiajgh99jjliwjl5im71qcgm5qrxpnyfisiw3f0lk";
+    sha256 = "0m2581pi1iid39dd0k81r6zypasr8byc6d75nprapg09ri4ci1y6";
   };
 
   # perl is used for testing go vet
@@ -137,6 +138,12 @@ stdenv.mkDerivation rec {
     ./go-1.9-skip-flaky-20072.patch
     ./skip-external-network-tests.patch
     ./skip-nohup-tests.patch
+
+    # fix rare TestDontCacheBrokenHTTP2Conn failure
+    (fetchpatch {
+      url = "https://github.com/golang/go/commit/ea1437a8cdf6bb3c2d2447833a5d06dbd75f7ae4.patch";
+      sha256 = "1lyzy4nf8c34a966vw45j3j7hzpvncq2gqspfxffzkyh17xd8sgy";
+    })
   ] ++ [
     # breaks under load: https://github.com/golang/go/issues/25628
     (if stdenv.isAarch32
@@ -186,8 +193,11 @@ stdenv.mkDerivation rec {
 
     export PATH=$(pwd)/bin:$PATH
 
+    ${optionalString (stdenv.buildPlatform != stdenv.targetPlatform) ''
     # Independent from host/target, CC should produce code for the building system.
+    # We only set it when cross-compiling.
     export CC=${buildPackages.stdenv.cc}/bin/cc
+    ''}
     ulimit -a
   '';
 
diff --git a/nixpkgs/pkgs/development/compilers/go/1.13.nix b/nixpkgs/pkgs/development/compilers/go/1.15.nix
index 48e4d9bdc6c4..8dd48e3396eb 100644
--- a/nixpkgs/pkgs/development/compilers/go/1.13.nix
+++ b/nixpkgs/pkgs/development/compilers/go/1.15.nix
@@ -2,6 +2,7 @@
 , perl, which, pkgconfig, patch, procps, pcre, cacert, Security, Foundation
 , mailcap, runtimeShell
 , buildPackages, pkgsTargetTarget
+, fetchpatch
 }:
 
 let
@@ -30,11 +31,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.13.12";
+  version = "1.15.2";
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "0d5s5rqyzp6ykj4x1dz8infcsmj3gy8djnf63ji971ypwi6jrfhp";
+    sha256 = "0kabkmc3759g5hpsdwh3l8p1fywibnha8c72m8f02lg2rl5rvgr8";
   };
 
   # perl is used for testing go vet
@@ -68,6 +69,14 @@ stdenv.mkDerivation rec {
     # The os test wants to read files in an existing path. Just don't let it be /usr/bin.
     sed -i 's,/usr/bin,'"`pwd`", src/os/os_test.go
     sed -i 's,/bin/pwd,'"`type -P pwd`", src/os/os_test.go
+    # Fails on aarch64
+    sed -i '/TestFallocate/aif true \{ return\; \}' src/cmd/link/internal/ld/fallocate_test.go
+    # Skip this test since ssl patches mess it up.
+    sed -i '/TestLoadSystemCertsLoadColonSeparatedDirs/aif true \{ return\; \}' src/crypto/x509/root_unix_test.go
+    # Disable another PIE test which breaks.
+    sed -i '/TestTrivialPIE/aif true \{ return\; \}' misc/cgo/testshared/shared_test.go
+    # Disable the BuildModePie test
+    sed -i '/TestBuildmodePIE/aif true \{ return\; \}' src/cmd/go/go_test.go
     # Disable the unix socket test
     sed -i '/TestShutdownUnix/aif true \{ return\; \}' src/net/net_test.go
     # Disable the hostname test
@@ -130,18 +139,19 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./remove-tools-1.11.patch
-    ./ssl-cert-file-1.13.patch
-    ./remove-test-pie-1.13.patch
+    ./ssl-cert-file-1.15.patch
+    ./remove-test-pie-1.15.patch
     ./creds-test.patch
     ./go-1.9-skip-flaky-19608.patch
     ./go-1.9-skip-flaky-20072.patch
-    ./skip-external-network-tests.patch
+    ./skip-external-network-tests-1.15.patch
     ./skip-nohup-tests.patch
+    ./skip-cgo-tests-1.15.patch
   ] ++ [
     # breaks under load: https://github.com/golang/go/issues/25628
     (if stdenv.isAarch32
-    then ./skip-test-extra-files-on-aarch32.patch
-    else ./skip-test-extra-files-on-386.patch)
+    then ./skip-test-extra-files-on-aarch32-1.14.patch
+    else ./skip-test-extra-files-on-386-1.14.patch)
   ];
 
   postPatch = ''
@@ -186,8 +196,11 @@ stdenv.mkDerivation rec {
 
     export PATH=$(pwd)/bin:$PATH
 
+    ${optionalString (stdenv.buildPlatform != stdenv.targetPlatform) ''
     # Independent from host/target, CC should produce code for the building system.
+    # We only set it when cross-compiling.
     export CC=${buildPackages.stdenv.cc}/bin/cc
+    ''}
     ulimit -a
   '';
 
@@ -232,7 +245,7 @@ stdenv.mkDerivation rec {
   disallowedReferences = [ goBootstrap ];
 
   meta = with stdenv.lib; {
-    branch = "1.13";
+    branch = "1.15";
     homepage = "http://golang.org/";
     description = "The Go Programming language";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/compilers/go/remove-test-pie-1.13.patch b/nixpkgs/pkgs/development/compilers/go/remove-test-pie-1.15.patch
index 05f18b813f91..f00685feba90 100644
--- a/nixpkgs/pkgs/development/compilers/go/remove-test-pie-1.13.patch
+++ b/nixpkgs/pkgs/development/compilers/go/remove-test-pie-1.15.patch
@@ -1,13 +1,13 @@
 diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go
-index f63c94697c..f02eff7064 100644
+index e1cd4965c3..66bf980fc6 100644
 --- a/src/cmd/dist/test.go
 +++ b/src/cmd/dist/test.go
-@@ -574,29 +574,6 @@ func (t *tester) registerTests() {
+@@ -584,29 +584,6 @@ func (t *tester) registerTests() {
  		})
  	}
  
 -	// Test internal linking of PIE binaries where it is supported.
--	if goos == "linux" && (goarch == "amd64" || goarch == "arm64") {
+-	if t.internalLinkPIE() {
 -		t.tests = append(t.tests, distTest{
 -			name:    "pie_internal",
 -			heading: "internal linking of -buildmode=pie",
@@ -17,7 +17,7 @@ index f63c94697c..f02eff7064 100644
 -			},
 -		})
 -		// Also test a cgo package.
--		if t.cgoEnabled {
+-		if t.cgoEnabled && t.internalLink() {
 -			t.tests = append(t.tests, distTest{
 -				name:    "pie_internal_cgo",
 -				heading: "internal linking of -buildmode=pie",
diff --git a/nixpkgs/pkgs/development/compilers/go/skip-cgo-tests-1.15.patch b/nixpkgs/pkgs/development/compilers/go/skip-cgo-tests-1.15.patch
new file mode 100644
index 000000000000..945d3ef8d126
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/go/skip-cgo-tests-1.15.patch
@@ -0,0 +1,13 @@
+diff --git a/src/cmd/dist/test.go b/src/cmd/dist/test.go
+index e1cd4965c3..0980d044df 100644
+--- a/src/cmd/dist/test.go
++++ b/src/cmd/dist/test.go
+@@ -1136,7 +1136,7 @@ func (t *tester) cgoTest(dt *distTest) error {
+ 					t.addCmd(dt, "misc/cgo/test", t.goTest(), "-buildmode=pie", "-ldflags=-linkmode=internal")
+ 				}
+ 				t.addCmd(dt, "misc/cgo/testtls", t.goTest(), "-buildmode=pie")
+-				t.addCmd(dt, "misc/cgo/nocgo", t.goTest(), "-buildmode=pie")
++				//t.addCmd(dt, "misc/cgo/nocgo", t.goTest(), "-buildmode=pie")
+ 			}
+ 		}
+ 	}
diff --git a/nixpkgs/pkgs/development/compilers/go/skip-external-network-tests-1.15.patch b/nixpkgs/pkgs/development/compilers/go/skip-external-network-tests-1.15.patch
new file mode 100644
index 000000000000..0ea1050cd8e3
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/go/skip-external-network-tests-1.15.patch
@@ -0,0 +1,13 @@
+diff --git a/src/net/dial_test.go b/src/net/dial_test.go
+index 01582489de..5b5faa5424 100644
+--- a/src/net/dial_test.go
++++ b/src/net/dial_test.go
+@@ -990,6 +990,8 @@ func TestDialerControl(t *testing.T) {
+ // except that it won't skip testing on non-mobile builders.
+ func mustHaveExternalNetwork(t *testing.T) {
+ 	t.Helper()
++	t.Skipf("Nix sandbox does not have networking")
++
+ 	mobile := runtime.GOOS == "android" || runtime.GOOS == "darwin" && runtime.GOARCH == "arm64"
+ 	if testenv.Builder() == "" || mobile {
+ 		testenv.MustHaveExternalNetwork(t)
diff --git a/nixpkgs/pkgs/development/compilers/go/skip-test-extra-files-on-386.patch b/nixpkgs/pkgs/development/compilers/go/skip-test-extra-files-on-386.patch
deleted file mode 100644
index afe5aea3d916..000000000000
--- a/nixpkgs/pkgs/development/compilers/go/skip-test-extra-files-on-386.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/src/os/exec/exec_test.go b/src/os/exec/exec_test.go
-index 558345ff63..22129bf022 100644
---- a/src/os/exec/exec_test.go
-+++ b/src/os/exec/exec_test.go
-@@ -593,6 +593,10 @@ func TestExtraFiles(t *testing.T) {
- 		t.Skipf("skipping test on %q", runtime.GOOS)
- 	}
- 
-+	if runtime.GOOS == "linux" && runtime.GOARCH  == "386" {
-+		t.Skipf("skipping test on %q %q", runtime.GOARCH, runtime.GOOS)
-+	}
-+
- 	// Ensure that file descriptors have not already been leaked into
- 	// our environment.
- 	if !testedAlreadyLeaked {
diff --git a/nixpkgs/pkgs/development/compilers/go/skip-test-extra-files-on-aarch32.patch b/nixpkgs/pkgs/development/compilers/go/skip-test-extra-files-on-aarch32.patch
deleted file mode 100644
index f3566b3ddaa2..000000000000
--- a/nixpkgs/pkgs/development/compilers/go/skip-test-extra-files-on-aarch32.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/src/os/exec/exec_test.go b/src/os/exec/exec_test.go
-index 558345ff63..22129bf022 100644
---- a/src/os/exec/exec_test.go
-+++ b/src/os/exec/exec_test.go
-@@ -593,6 +593,10 @@ func TestExtraFiles(t *testing.T) {
- 		t.Skipf("skipping test on %q", runtime.GOOS)
- 	}
- 
-+	if runtime.GOOS == "linux" && runtime.GOARCH  == "arm" {
-+		t.Skipf("skipping test on %q %q", runtime.GOARCH, runtime.GOOS)
-+	}
-+
- 	// Ensure that file descriptors have not already been leaked into
- 	// our environment.
- 	if !testedAlreadyLeaked {
diff --git a/nixpkgs/pkgs/development/compilers/go/ssl-cert-file-1.15.patch b/nixpkgs/pkgs/development/compilers/go/ssl-cert-file-1.15.patch
new file mode 100644
index 000000000000..1884c681ca30
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/go/ssl-cert-file-1.15.patch
@@ -0,0 +1,76 @@
+diff --git a/src/crypto/x509/root_darwin_amd64.go b/src/crypto/x509/root_darwin_amd64.go
+index ce88de025e..258ecc45d1 100644
+--- a/src/crypto/x509/root_darwin_amd64.go
++++ b/src/crypto/x509/root_darwin_amd64.go
+@@ -10,6 +10,7 @@ import (
+ 	"bytes"
+ 	macOS "crypto/x509/internal/macos"
+ 	"fmt"
++	"io/ioutil"
+ 	"os"
+ 	"strings"
+ )
+@@ -25,6 +26,14 @@ func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate
+ var loadSystemRootsWithCgo func() (*CertPool, error)
+ 
+ func loadSystemRoots() (*CertPool, error) {
++	if file := os.Getenv("NIX_SSL_CERT_FILE"); file != "" {
++		data, err := ioutil.ReadFile(file)
++		if err == nil {
++			roots := NewCertPool()
++			roots.AppendCertsFromPEM(data)
++			return roots, nil
++		}
++	}
+ 	var trustedRoots []*Certificate
+ 	untrustedRoots := make(map[string]bool)
+ 
+diff --git a/src/crypto/x509/root_darwin_ios.go b/src/crypto/x509/root_darwin_ios.go
+index 5ecc4911b3..14b4205c00 100644
+--- a/src/crypto/x509/root_darwin_ios.go
++++ b/src/crypto/x509/root_darwin_ios.go
+@@ -6,6 +6,11 @@
+ 
+ package x509
+ 
++import (
++	"io/ioutil"
++	"os"
++)
++
+ func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate, err error) {
+ 	return nil, nil
+ }
+@@ -14,6 +19,14 @@ func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate
+ var loadSystemRootsWithCgo func() (*CertPool, error)
+ 
+ func loadSystemRoots() (*CertPool, error) {
++	if file := os.Getenv("NIX_SSL_CERT_FILE"); file != "" {
++		data, err := ioutil.ReadFile(file)
++		if err == nil {
++			roots := NewCertPool()
++			roots.AppendCertsFromPEM(data)
++			return roots, nil
++		}
++	}
+ 	p := NewCertPool()
+ 	p.AppendCertsFromPEM([]byte(systemRootsPEM))
+ 	return p, nil
+diff --git a/src/crypto/x509/root_unix.go b/src/crypto/x509/root_unix.go
+index b48e618a65..195c1ff25a 100644
+--- a/src/crypto/x509/root_unix.go
++++ b/src/crypto/x509/root_unix.go
+@@ -42,6 +42,13 @@ func (c *Certificate) systemVerify(opts *VerifyOptions) (chains [][]*Certificate
+ 
+ func loadSystemRoots() (*CertPool, error) {
+ 	roots := NewCertPool()
++	if file := os.Getenv("NIX_SSL_CERT_FILE"); file != "" {
++		data, err := ioutil.ReadFile(file)
++		if err == nil {
++			roots.AppendCertsFromPEM(data)
++			return roots, nil
++		}
++	}
+ 
+ 	files := certFiles
+ 	if f := os.Getenv(certFileEnv); f != "" {
diff --git a/nixpkgs/pkgs/development/compilers/hop/default.nix b/nixpkgs/pkgs/development/compilers/hop/default.nix
index f63f4169bc36..fd3ef137ae60 100644
--- a/nixpkgs/pkgs/development/compilers/hop/default.nix
+++ b/nixpkgs/pkgs/development/compilers/hop/default.nix
@@ -1,21 +1,27 @@
 { stdenv, fetchurl, bigloo }:
 
+# Compute the “release” version of bigloo (before the first dash, if any)
+let bigloo-release =
+  let inherit (stdenv.lib) head splitString; in
+  head (splitString "-" (builtins.parseDrvName bigloo.name).version)
+; in
+
 stdenv.mkDerivation rec {
-  name = "hop-2.5.1";
+  name = "hop-3.3.0";
   src = fetchurl {
     url = "ftp://ftp-sop.inria.fr/indes/fp/Hop/${name}.tar.gz";
-    sha256 = "1bvp7pc71bln5yvfj87s8750c6l53wjl6f8m12v62q9926adhwys";
+    sha256 = "14gf9ihmw95zdnxsqhn5jymfivpfq5cg9v0y7yjd5i7c787dncp5";
   };
 
-  buildInputs = [ bigloo ];
-
-  preConfigure = ''
-    export NIX_LDFLAGS="$NIX_LDFLAGS -lbigloogc-4.1a";
+  postPatch = ''
+    substituteInPlace configure --replace "(os-tmp)" '(getenv "TMPDIR")'
   '';
 
+  buildInputs = [ bigloo ];
+
   configureFlags = [
     "--bigloo=${bigloo}/bin/bigloo"
-    "--bigloolibdir=${bigloo}/lib/bigloo/4.1a/"
+    "--bigloolibdir=${bigloo}/lib/bigloo/${bigloo-release}/"
   ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/compilers/idris2/default.nix b/nixpkgs/pkgs/development/compilers/idris2/default.nix
index d2a071b61ddf..5bde4bbb720f 100644
--- a/nixpkgs/pkgs/development/compilers/idris2/default.nix
+++ b/nixpkgs/pkgs/development/compilers/idris2/default.nix
@@ -4,14 +4,14 @@
 
 # Uses scheme to bootstrap the build of idris2
 stdenv.mkDerivation rec {
-  name = "idris2";
-  version = "0.2.0";
+  pname = "idris2";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "idris-lang";
     repo = "Idris2";
     rev = "v${version}";
-    sha256 = "153z6zgb90kglw8rspk8ph5gh5nkplhi27mxai6yqbbjs2glx5d4";
+    sha256 = "044slgl2pwvj939kz3z92n6l182plc5fzng1n4z4k6bg11msqq14";
   };
 
   strictDeps = true;
@@ -30,9 +30,42 @@ stdenv.mkDerivation rec {
 
   checkTarget = "bootstrap-test";
 
-  # idris2 needs to find scheme at runtime to compile
-  postInstall = ''
-    wrapProgram "$out/bin/idris2" --set CHEZ "${chez}/bin/scheme"
+  # TODO: Move this into its own derivation, such that this can be changed
+  #       without having to recompile idris2 every time.
+  postInstall = let
+    includedLibs = [ "base" "contrib" "network" "prelude" ];
+    name = "${pname}-${version}";
+    packagePaths = builtins.map (l: "$out/${name}/" + l) includedLibs;
+    additionalIdris2Paths = builtins.concatStringsSep ":" packagePaths;
+  in ''
+    # Remove existing idris2 wrapper that sets incorrect LD_LIBRARY_PATH
+    rm $out/bin/idris2
+    # Move actual idris2 binary
+    mv $out/bin/idris2_app/idris2.so $out/bin/idris2
+
+    # After moving the binary, there is nothing left in idris2_app that isn't
+    # either contained in lib/ or is useless to us.
+    rm $out/bin/idris2_app/*
+    rmdir $out/bin/idris2_app
+
+    # idris2 needs to find scheme at runtime to compile
+    # idris2 installs packages with --install into the path given by PREFIX.
+    # Since PREFIX is in nix-store, it is immutable so --install does not work.
+    # If the user redefines PREFIX to be able to install packages, idris2 will
+    # not find the libraries and packages since all paths are relative to
+    # PREFIX by default.
+    # We explicitly make all paths to point to nix-store, such that they are
+    # independent of what IDRIS2_PREFIX is. This allows the user to redefine
+    # IDRIS2_PREFIX and use --install as expected.
+    # TODO: Make support libraries their own derivation such that
+    #       overriding LD_LIBRARY_PATH is unnecessary
+    # TODO: Maybe set IDRIS2_PREFIX to the users home directory
+    wrapProgram "$out/bin/idris2" \
+      --set-default CHEZ "${chez}/bin/scheme" \
+      --suffix IDRIS2_LIBS ':' "$out/${name}/lib" \
+      --suffix IDRIS2_DATA ':' "$out/${name}/support" \
+      --suffix IDRIS2_PATH ':' "${additionalIdris2Paths}" \
+      --suffix LD_LIBRARY_PATH ':' "$out/${name}/lib"
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/development/compilers/inform6/default.nix b/nixpkgs/pkgs/development/compilers/inform6/default.nix
new file mode 100644
index 000000000000..1d339a2b14bf
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/inform6/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "inform6";
+  version = "6.34-6.12.2";
+
+  src = fetchurl  {
+    url = "https://ifarchive.org/if-archive/infocom/compilers/inform6/source/inform-${version}.tar.gz";
+    sha256 = "c149f143f2c29a4cb071e578afef8097647cc9e823f7fcfab518ac321d9d259f";
+  };
+
+  buildInputs = [ perl ];
+
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+
+  meta = with stdenv.lib; {
+    description = "Interactive fiction compiler and libraries";
+    longDescription = ''
+      Inform 6 is a C-like programming language for writing interactive fiction
+      (text adventure) games.
+    '';
+    homepage = "https://gitlab.com/DavidGriffith/inform6unix";
+    changelog = "https://gitlab.com/DavidGriffith/inform6unix/-/raw/${version}/NEWS";
+    license = licenses.artistic2;
+    maintainers = with stdenv.lib.maintainers; [ ddelabru ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix b/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix
index 6374846f4407..8ca85817f9e4 100644
--- a/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix
+++ b/nixpkgs/pkgs/development/compilers/intel-graphics-compiler/default.nix
@@ -24,13 +24,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "intel-graphics-compiler";
-  version = "1.0.4062";
+  version = "1.0.4241";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "intel-graphics-compiler";
     rev = "igc-${version}";
-    sha256 = "1fr9mb7s5f0kiwxf04lqbyqbxfsvki0kwnpcy41m3p3la22mqz47";
+    sha256 = "1jp3c67ppl1x4pazr5nzy52615cpx0kyckaridhc0fsmrkgilyxq";
   };
 
   nativeBuildInputs = [ clang cmake bison flex llvm python ];
diff --git a/nixpkgs/pkgs/development/compilers/jasmin/default.nix b/nixpkgs/pkgs/development/compilers/jasmin/default.nix
index ef1b3055190e..7defdc5c689b 100644
--- a/nixpkgs/pkgs/development/compilers/jasmin/default.nix
+++ b/nixpkgs/pkgs/development/compilers/jasmin/default.nix
@@ -1,13 +1,13 @@
 { stdenv
 , fetchurl
 , unzip
-, jdk
+, jdk8
 , ant
 , makeWrapper
-, jre
 , callPackage
 }:
 
+let jre = jdk8.jre; jdk = jdk8; in
 stdenv.mkDerivation rec {
   pname = "jasmin";
   version = "2.4";
diff --git a/nixpkgs/pkgs/development/compilers/jetbrains-jdk/default.nix b/nixpkgs/pkgs/development/compilers/jetbrains-jdk/default.nix
index 1502b243d889..fd3270fa0d08 100644
--- a/nixpkgs/pkgs/development/compilers/jetbrains-jdk/default.nix
+++ b/nixpkgs/pkgs/development/compilers/jetbrains-jdk/default.nix
@@ -2,12 +2,12 @@
 
 openjdk11.overrideAttrs (oldAttrs: rec {
   pname = "jetbrains-jdk";
-  version = "11.0.6-b774";
+  version = "11.0.7-b64";
   src = fetchFromGitHub {
     owner = "JetBrains";
     repo = "JetBrainsRuntime";
     rev = "jb${stdenv.lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "0lx3h74jwa14kr8ybwxbzc4jsjj6xnymvckdsrhqhvrciya7bxzw";
+    sha256 = "1gxqi6dkyriv9j29ppan638w1ns2g9m4q1sq7arf9kwqr05zim90";
   };
   patches = [];
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/compilers/kotlin/default.nix b/nixpkgs/pkgs/development/compilers/kotlin/default.nix
index 4e2810fa893c..88c07fb07cab 100644
--- a/nixpkgs/pkgs/development/compilers/kotlin/default.nix
+++ b/nixpkgs/pkgs/development/compilers/kotlin/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, makeWrapper, jre, unzip }:
 
 let
-  version = "1.3.72";
+  version = "1.4.0";
 in stdenv.mkDerivation {
   inherit version;
   pname = "kotlin";
 
   src = fetchurl {
     url = "https://github.com/JetBrains/kotlin/releases/download/v${version}/kotlin-compiler-${version}.zip";
-    sha256 = "0v6c4vjiflwbjjc1lmiyzrilxwbqcz5ll6ls40zhw70zk23xpl6c";
+    sha256 = "0qgiabpkisqjm9iryidrynqy452vzmpgaw54rd9blr9w7g8r20sr";
   };
 
   propagatedBuildInputs = [ jre ] ;
diff --git a/nixpkgs/pkgs/development/compilers/lobster/default.nix b/nixpkgs/pkgs/development/compilers/lobster/default.nix
new file mode 100644
index 000000000000..f8d31f12cd45
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/lobster/default.nix
@@ -0,0 +1,66 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, callPackage
+
+# Linux deps
+, libGL
+, xorg
+
+# Darwin deps
+, cf-private
+, Cocoa
+, AudioToolbox
+, OpenGL
+, Foundation
+, ForceFeedback
+}:
+
+stdenv.mkDerivation rec {
+  pname = "lobster";
+  version = "unstable-2020-07-27";
+
+  src = fetchFromGitHub {
+    owner = "aardappel";
+    repo = pname;
+    rev = "9d68171494a79c83931426b624a0249a9c51882c";
+    sha256 = "0d4gn71jym662i00rdmynv53ng1lgl81s5lw1sdddgn41wzs28dd";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = if stdenv.isDarwin
+    then [
+      cf-private
+      Cocoa
+      AudioToolbox
+      OpenGL
+      Foundation
+      ForceFeedback
+    ]
+    else [
+      libGL
+      xorg.libX11
+      xorg.libXext
+    ];
+
+  preConfigure = "cd dev";
+  enableParallelBuilding = true;
+
+  passthru.tests = {
+    can-run-hello-world = callPackage ./test-can-run-hello-world.nix {};
+  };
+
+  meta = with stdenv.lib; {
+    homepage = "http://strlen.com/lobster";
+    description = "The Lobster programming language";
+    longDescription = ''
+      Lobster is a programming language that tries to combine the advantages of
+      very static typing and memory management with a very lightweight,
+      friendly and terse syntax, by doing most of the heavy lifting for you.
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/compilers/lobster/test-can-run-hello-world.nix b/nixpkgs/pkgs/development/compilers/lobster/test-can-run-hello-world.nix
new file mode 100644
index 000000000000..ceb0536b582c
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/lobster/test-can-run-hello-world.nix
@@ -0,0 +1,13 @@
+{ stdenv, lobster }:
+
+stdenv.mkDerivation {
+  name = "lobster-test-can-run-hello-world";
+  meta.timeout = 10;
+  buildCommand = ''
+    ${lobster}/bin/lobster \
+      ${lobster}/share/Lobster/samples/rosettacode/hello_world_test.lobster \
+      | grep 'Goodbye, World!'
+    touch $out
+  '';
+}
+
diff --git a/nixpkgs/pkgs/development/compilers/mcpp/default.nix b/nixpkgs/pkgs/development/compilers/mcpp/default.nix
index bf0db4c1f6cd..023bae48b3e9 100644
--- a/nixpkgs/pkgs/development/compilers/mcpp/default.nix
+++ b/nixpkgs/pkgs/development/compilers/mcpp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "mcpp";
@@ -11,6 +11,14 @@ stdenv.mkDerivation rec {
 
   configureFlags = [ "--enable-mcpplib" ];
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2019-14274.patch";
+      url = "https://github.com/h8liu/mcpp/commit/ea453aca2742be6ac43ba4ce0da6f938a7e5a5d8.patch";
+      sha256 = "0svkdr3w9b45v6scgzvggw9nsh6a3k7g19fqk0w3vlckwmk5ydzr";
+    })
+  ];
+
   meta = with stdenv.lib; {
     homepage = "http://mcpp.sourceforge.net/";
     description = "A portable c preprocessor";
diff --git a/nixpkgs/pkgs/development/compilers/mercury/default.nix b/nixpkgs/pkgs/development/compilers/mercury/default.nix
index d534e2483d63..b9225cbd793b 100644
--- a/nixpkgs/pkgs/development/compilers/mercury/default.nix
+++ b/nixpkgs/pkgs/development/compilers/mercury/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mercury";
-  version = "20.01.2";
+  version = "20.06";
 
   src = fetchurl {
     url    = "https://dl.mercurylang.org/release/mercury-srcdist-${version}.tar.gz";
-    sha256 = "084ml6kswgaqjgmib3gq7zjnqsimz3f35w13ff6z0dv4d9csmq4m";
+    sha256 = "1gkr9w8lsdzqykqwd3f1a1phsqv090648i14ilhv8jdg85frdimr";
   };
 
   buildInputs = [ gcc flex bison texinfo jdk erlang makeWrapper
diff --git a/nixpkgs/pkgs/development/compilers/mit-scheme/default.nix b/nixpkgs/pkgs/development/compilers/mit-scheme/default.nix
index b2fa8fba0ddf..a3b320c384f4 100644
--- a/nixpkgs/pkgs/development/compilers/mit-scheme/default.nix
+++ b/nixpkgs/pkgs/development/compilers/mit-scheme/default.nix
@@ -2,12 +2,11 @@
   enableX11 ? false, xlibsWrapper ? null }:
 
 let
-  version = "9.2";
+  version = "10.1.10";
   bootstrapFromC = ! (stdenv.isi686 || stdenv.isx86_64);
 
   arch = if      stdenv.isi686   then "-i386"
-         else if stdenv.isx86_64 then "-x86-64"
-         else                         "";
+         else                         "-x86-64";
 in
 stdenv.mkDerivation {
   name = if enableX11 then "mit-scheme-x11-${version}" else "mit-scheme-${version}";
@@ -20,14 +19,10 @@ stdenv.mkDerivation {
     if stdenv.isi686
     then fetchurl {
       url = "mirror://gnu/mit-scheme/stable.pkg/${version}/mit-scheme-${version}-i386.tar.gz";
-      sha256 = "1fmlpnhf5a75db93phajh4ysbdgrgl72v45lk3kznriprl0a7jc6";
-    } else if stdenv.isx86_64
-    then fetchurl {
+      sha256 = "117lf06vcdbaa5432hwqnskpywc6x8ai0gj99h480a4wzkp3vhy6";
+  } else fetchurl {
       url = "mirror://gnu/mit-scheme/stable.pkg/${version}/mit-scheme-${version}-x86-64.tar.gz";
-      sha256 = "1skzxxhr0iq96bf0j5m7mvf3i4sppfyfa6gpqn34mwgkw1fx8274";
-    } else fetchurl {
-      url = "mirror://gnu/mit-scheme/stable.pkg/${version}/mit-scheme-c-${version}.tar.gz";
-      sha256 = "0w5ib5vsidihb4hb6fma3sp596ykr8izagm57axvgd6lqzwicsjg";
+      sha256 = "1rljv6iddrbssm91c0nn08myj92af36hkix88cc6qwq38xsxs52g";
     };
 
   buildInputs = if enableX11 then [xlibsWrapper] else [];
diff --git a/nixpkgs/pkgs/development/compilers/mlkit/default.nix b/nixpkgs/pkgs/development/compilers/mlkit/default.nix
new file mode 100644
index 000000000000..6fa581452507
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/mlkit/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, mlton }:
+
+stdenv.mkDerivation rec {
+  pname = "mlkit";
+  version = "4.5.0";
+
+  src = fetchFromGitHub {
+    owner = "melsman";
+    repo = "mlkit";
+    rev = "v${version}";
+    sha256 = "0fc0y40qphn02857fv2dvhwzzsvgixzchx9i6i0x80xfv7z68fbh";
+  };
+
+  nativeBuildInputs = [ autoreconfHook mlton ];
+
+  buildFlags = ["mlkit" "mlkit_libs"];
+
+  meta = with stdenv.lib; {
+    description = "Standard ML Compiler and Toolkit";
+    homepage = "https://elsman.com/mlkit/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ athas ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/compilers/mlton/default.nix b/nixpkgs/pkgs/development/compilers/mlton/default.nix
index aaf588851402..e4381774781c 100644
--- a/nixpkgs/pkgs/development/compilers/mlton/default.nix
+++ b/nixpkgs/pkgs/development/compilers/mlton/default.nix
@@ -1,26 +1,21 @@
-{ stdenv, fetchurl, fetchgit, patchelf, gmp }:
+{ callPackage }:
+
 rec {
-  mlton20130715 = import ./20130715.nix {
-    inherit stdenv fetchurl patchelf gmp;
-  };
+  mlton20130715 = callPackage ./20130715.nix {};
 
-  mlton20180207Binary = import ./20180207-binary.nix {
-    inherit stdenv fetchurl patchelf gmp;
-  };
+  mlton20180207Binary = callPackage ./20180207-binary.nix {};
 
-  mlton20180207 = import ./from-git-source.nix {
+  mlton20180207 = callPackage ./from-git-source.nix {
     mltonBootstrap = mlton20180207Binary;
     version = "20180207";
     rev = "on-20180207-release";
     sha256 = "00rdd2di5x1dzac64il9z05m3fdzicjd3226wwjyynv631jj3q2a";
-    inherit stdenv fetchgit gmp;
   };
 
-  mltonHEAD = import ./from-git-source.nix {
+  mltonHEAD = callPackage ./from-git-source.nix {
     mltonBootstrap = mlton20180207Binary;
     version = "HEAD";
     rev = "e149c9917cfbfe6aba5c986a958ed76d5cc6cfde";
     sha256 = "0a0j1i0f0fxw2my1309srq5j3vz0kawrrln01gxms2m5hy5dl50d";
-    inherit stdenv fetchgit gmp;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/mlton/from-git-source.nix b/nixpkgs/pkgs/development/compilers/mlton/from-git-source.nix
index 2585b599caf3..ec0b96bbf23a 100644
--- a/nixpkgs/pkgs/development/compilers/mlton/from-git-source.nix
+++ b/nixpkgs/pkgs/development/compilers/mlton/from-git-source.nix
@@ -6,6 +6,7 @@
 , sha256
 , stdenv
 , version
+, which
 }:
 
 stdenv.mkDerivation {
@@ -16,10 +17,13 @@ stdenv.mkDerivation {
     inherit url rev sha256;
   };
 
+  nativeBuildInputs = [ which ];
+
   buildInputs = [mltonBootstrap gmp];
 
   preBuild = ''
     find . -type f | grep -v -e '\.tgz''$' | xargs sed -i "s@/usr/bin/env bash@$(type -p bash)@"
+    sed -i "s|/tmp|$TMPDIR|" bin/regression
 
     makeFlagsArray=(
       MLTON_VERSION="${version} ${rev}"
diff --git a/nixpkgs/pkgs/development/compilers/mono/generic.nix b/nixpkgs/pkgs/development/compilers/mono/generic.nix
index e4d99dcec955..c510f372666a 100644
--- a/nixpkgs/pkgs/development/compilers/mono/generic.nix
+++ b/nixpkgs/pkgs/development/compilers/mono/generic.nix
@@ -1,4 +1,5 @@
 { stdenv, fetchurl, bison, pkgconfig, glib, gettext, perl, libgdiplus, libX11, callPackage, ncurses, zlib, withLLVM ? false, cacert, Foundation, libobjc, python, version, sha256, autoconf, libtool, automake, cmake, which
+, gnumake42
 , enableParallelBuilding ? true
 , srcArchiveSuffix ? "tar.bz2"
 , extraPatches ? []
@@ -16,6 +17,7 @@ stdenv.mkDerivation rec {
     url = "https://download.mono-project.com/sources/mono/${pname}-${version}.${srcArchiveSuffix}";
   };
 
+  nativeBuildInputs = [ gnumake42 ];
   buildInputs =
     [ bison pkgconfig glib gettext perl libgdiplus libX11 ncurses zlib python autoconf libtool automake cmake which
     ]
diff --git a/nixpkgs/pkgs/development/compilers/mozart/default.nix b/nixpkgs/pkgs/development/compilers/mozart/default.nix
index d2c2d98e4115..025652c74927 100644
--- a/nixpkgs/pkgs/development/compilers/mozart/default.nix
+++ b/nixpkgs/pkgs/development/compilers/mozart/default.nix
@@ -60,7 +60,7 @@ in stdenv.mkDerivation rec {
     # gcc together as compilers and we need clang for the sources generation.
     # However, clang emits tons of warnings about gcc's atomic-base library.
     "-DCMAKE_CXX_FLAGS=-Wno-braced-scalar-init"
-  ] ++ lib.optional stdenv.isDarwin "-DCMAKE_FIND_FRAMEWORK=LAST";
+  ];
 
   fixupPhase = ''
     wrapProgram $out/bin/oz --set OZEMACS ${emacs}/bin/emacs
diff --git a/nixpkgs/pkgs/development/compilers/mruby/default.nix b/nixpkgs/pkgs/development/compilers/mruby/default.nix
index f6a7fc2f1433..eee4f2c64eb7 100644
--- a/nixpkgs/pkgs/development/compilers/mruby/default.nix
+++ b/nixpkgs/pkgs/development/compilers/mruby/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, ruby, bison, fetchFromGitHub }:
+{ stdenv, ruby, bison, rake, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
   pname = "mruby";
-  version = "2.1.0";
+  version = "2.1.2";
 
   src = fetchFromGitHub {
     owner   = "mruby";
     repo    = "mruby";
     rev     = version;
-    sha256  = "1y072c7dh9jf8xwy7kia6cb4dkpspq4zf24ssn7zm5f46p4waxni";
+    sha256  = "0fhfv8pi7i8jn2vgk2n2rjnbnfa12nhj514v8i4k353n7q4pmkh3";
   };
 
-  nativeBuildInputs = [ ruby bison ];
+  nativeBuildInputs = [ ruby bison rake ];
 
   # Necessary so it uses `gcc` instead of `ld` for linking.
   # https://github.com/mruby/mruby/blob/35be8b252495d92ca811d76996f03c470ee33380/tasks/toolchains/gcc.rake#L25
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     mkdir $out
-    cp -R build/host/{bin,lib} $out
+    cp -R include build/host/{bin,lib} $out
   '';
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/development/compilers/nextpnr/default.nix b/nixpkgs/pkgs/development/compilers/nextpnr/default.nix
index cce22207a360..5dfefa612206 100644
--- a/nixpkgs/pkgs/development/compilers/nextpnr/default.nix
+++ b/nixpkgs/pkgs/development/compilers/nextpnr/default.nix
@@ -14,14 +14,14 @@ let
 in
 with stdenv; mkDerivation rec {
   pname = "nextpnr";
-  version = "2020.03.25";
+  version = "2020.08.22";
 
   srcs = [
     (fetchFromGitHub {
       owner  = "YosysHQ";
       repo   = "nextpnr";
-      rev    = "a3ede0293a50c910e7d96319b2084d50f2501a6b";
-      sha256 = "0ikfjva4gqmlx6y7mjamg03ad7x9gnz32ahqv798ynd87svq10aq";
+      rev    = "c8ecb8341ca766e1e7565cc2b652b63eaba67508";
+      sha256 = "1cf9ad7w5x452qdc6m9c3in6v9yzip3n1as978lbdh76f5mc00fv";
       name   = "nextpnr";
     })
     (fetchFromGitHub {
@@ -50,7 +50,7 @@ with stdenv; mkDerivation rec {
       "-DBUILD_TESTS=ON"
       "-DICEBOX_ROOT=${icestorm}/share/icebox"
       "-DTRELLIS_INSTALL_PREFIX=${trellis}"
-      "-DPYTRELLIS_LIBDIR=${trellis}/lib/trellis"
+      "-DTRELLIS_LIBDIR=${trellis}/lib/trellis"
       "-DUSE_OPENMP=ON"
       # warning: high RAM usage
       "-DSERIALIZE_CHIPDB=OFF"
diff --git a/nixpkgs/pkgs/development/compilers/nim/NIM_CONFIG_DIR.patch b/nixpkgs/pkgs/development/compilers/nim/NIM_CONFIG_DIR.patch
new file mode 100644
index 000000000000..61e05b791cf8
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/nim/NIM_CONFIG_DIR.patch
@@ -0,0 +1,23 @@
+diff --git a/compiler/nimconf.nim b/compiler/nimconf.nim
+index a470179bd..73cfa1a23 100644
+--- a/compiler/nimconf.nim
++++ b/compiler/nimconf.nim
+@@ -225,10 +225,15 @@ proc getUserConfigPath*(filename: RelativeFile): AbsoluteFile =
+ proc getSystemConfigPath*(conf: ConfigRef; filename: RelativeFile): AbsoluteFile =
+   # try standard configuration file (installation did not distribute files
+   # the UNIX way)
+-  let p = getPrefixDir(conf)
+-  result = p / RelativeDir"config" / filename
++  let
++    prefix = getPrefixDir(conf)
++    env = getEnv("NIM_CONFIG_PATH")
++  if env != "":
++    result = env.toAbsoluteDir / filename
++  else:
++    result = prefix / RelativeDir"config" / filename
+   when defined(unix):
+-    if not fileExists(result): result = p / RelativeDir"etc/nim" / filename
++    if not fileExists(result): result = prefix / RelativeDir"etc/nim" / filename
+     if not fileExists(result): result = AbsoluteDir"/etc/nim" / filename
+
+ proc loadConfigs*(cfg: RelativeFile; cache: IdentCache; conf: ConfigRef) =
diff --git a/nixpkgs/pkgs/development/compilers/nim/default.nix b/nixpkgs/pkgs/development/compilers/nim/default.nix
index 86518b8db09f..0ec259b66084 100644
--- a/nixpkgs/pkgs/development/compilers/nim/default.nix
+++ b/nixpkgs/pkgs/development/compilers/nim/default.nix
@@ -1,69 +1,239 @@
-# based on https://github.com/nim-lang/Nim/blob/v0.18.0/.travis.yml
+# https://nim-lang.github.io/Nim/packaging.html
 
-{ stdenv, lib, fetchurl, makeWrapper, openssl, pcre, readline,
-  boehmgc, sfml, sqlite }:
-
-stdenv.mkDerivation rec {
-  pname = "nim";
-  version = "1.2.0";
+{ stdenv, lib, fetchgit, fetchurl, makeWrapper, gdb, openssl, pcre, readline
+, boehmgc, sqlite, nim-unwrapped, nim }:
 
+let
+  version = "1.2.6";
   src = fetchurl {
-    url = "https://nim-lang.org/download/${pname}-${version}.tar.xz";
-    sha256 = "0xf56xb42hc92h4xnvk72q4n3ysjbyhf0rg60lc84r9r6wx5i52f";
+    url = "https://nim-lang.org/download/nim-${version}.tar.xz";
+    sha256 = "0zk5qzxayqjw7kq6p92j4008g9bbyilyymhdc5xq9sln5rqym26z";
   };
 
-  enableParallelBuilding = true;
-
-  NIX_LDFLAGS = "-lcrypto -lpcre -lreadline -lgc -lsqlite3";
-
-  # we could create a separate derivation for the "written in c" version of nim
-  # used for bootstrapping, but koch insists on moving the nim compiler around
-  # as part of building it, so it cannot be read-only
-
-  nativeBuildInputs = [
-    makeWrapper
-  ];
-
-  buildInputs = [
-    openssl pcre readline boehmgc sfml sqlite
-  ];
-
-  buildPhase = ''
-    runHook preBuild
-
-    # build.sh wants to write to $HOME/.cache
-    HOME=$TMPDIR
-    sh build.sh
-    ./bin/nim c koch
-    ./koch boot  -d:release \
-                 -d:useGnuReadline \
-                 ${lib.optionals (stdenv.isDarwin || stdenv.isLinux) "-d:nativeStacktrace"}
-    ./koch tools -d:release
-
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    runHook preInstall
-
-    install -Dt $out/bin bin/* koch
-    ./koch install $out
-    mv $out/nim/bin/* $out/bin/ && rmdir $out/nim/bin
-    mv $out/nim/*     $out/     && rmdir $out/nim
-
-    # Fortify hardening appends -O2 to gcc flags which is unwanted for unoptimized nim builds.
-    wrapProgram $out/bin/nim \
-      --run 'NIX_HARDENING_ENABLE=''${NIX_HARDENING_ENABLE/fortify/}' \
-      --suffix PATH : ${lib.makeBinPath [ stdenv.cc ]}
-
-    runHook postInstall
-  '';
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Statically typed, imperative programming language";
     homepage = "https://nim-lang.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ ehmry ];
-    platforms = with platforms; linux ++ darwin; # arbitrary
   };
-}
+
+  parseCpu = platform:
+    with platform;
+    # Derive a Nim CPU identifier
+    if isAarch32 then
+      "arm"
+    else if isAarch64 then
+      "arm64"
+    else if isAlpha then
+      "alpha"
+    else if isAvr then
+      "avr"
+    else if isMips && is32bit then
+      "mips"
+    else if isMips && is64bit then
+      "mips64"
+    else if isMsp430 then
+      "msp430"
+    else if isPowerPC && is32bit then
+      "powerpc"
+    else if isPowerPC && is64bit then
+      "powerpc64"
+    else if isRiscV && is64bit then
+      "riscv64"
+    else if isSparc then
+      "sparc"
+    else if isx86_32 then
+      "i386"
+    else if isx86_64 then
+      "amd64"
+    else
+      abort "no Nim CPU support known for ${config}";
+
+  parseOs = platform:
+    with platform;
+    # Derive a Nim OS identifier
+    if isAndroid then
+      "Android"
+    else if isDarwin then
+      "MacOSX"
+    else if isFreeBSD then
+      "FreeBSD"
+    else if isGenode then
+      "Genode"
+    else if isLinux then
+      "Linux"
+    else if isNetBSD then
+      "NetBSD"
+    else if isNone then
+      "Standalone"
+    else if isOpenBSD then
+      "OpenBSD"
+    else if isWindows then
+      "Windows"
+    else if isiOS then
+      "iOS"
+    else
+      abort "no Nim OS support known for ${config}";
+
+  parsePlatform = p: {
+    cpu = parseCpu p;
+    os = parseOs p;
+  };
+
+  nimHost = parsePlatform stdenv.hostPlatform;
+  nimTarget = parsePlatform stdenv.targetPlatform;
+
+  wrapperInputs = rec {
+
+    bootstrap = stdenv.mkDerivation rec {
+      pname = "nim-bootstrap";
+      version = "0.20.0";
+
+      src = fetchgit {
+        # A Git checkout is much smaller than a GitHub tarball.
+        url = "https://github.com/nim-lang/csources.git";
+        rev = "v" + version;
+        sha256 = "0i6vsfy1sgapx43n226q8m0pvn159sw2mhp50zm3hhb9zfijanis";
+      };
+
+      enableParallelBuilding = true;
+
+      installPhase = ''
+        runHook preInstall
+        install -Dt $out/bin bin/nim
+        runHook postInstall
+      '';
+    };
+
+    unwrapped = stdenv.mkDerivation {
+      pname = "nim-unwrapped";
+      inherit version src;
+
+      buildInputs = [ boehmgc openssl pcre readline sqlite ];
+
+      patches = [
+        ./NIM_CONFIG_DIR.patch
+        # Override compiler configuration via an environmental variable
+
+        ./nixbuild.patch
+        # Load libraries at runtime by absolute path
+      ];
+
+      configurePhase = ''
+        runHook preConfigure
+        cp ${bootstrap}/bin/nim bin/
+        echo 'define:nixbuild' >> config/nim.cfg
+        runHook postConfigure
+      '';
+
+      kochArgs = [
+        "--cpu:${nimHost.cpu}"
+        "--os:${nimHost.os}"
+        "-d:release"
+        "-d:useGnuReadline"
+      ] ++ lib.optional (stdenv.isDarwin || stdenv.isLinux)
+        "-d:nativeStacktrace";
+
+      buildPhase = ''
+        runHook preBuild
+        local HOME=$TMPDIR
+        ./bin/nim c koch
+        ./koch boot $kochArgs --parallelBuild:$NIX_BUILD_CORES
+        ./koch tools $kochArgs --parallelBuild:$NIX_BUILD_CORES
+        runHook postBuild
+      '';
+
+      installPhase = ''
+        runHook preInstall
+        install -Dt $out/bin bin/*
+        ln -sf $out/nim/bin/nim $out/bin/nim
+        ./install.sh $out
+        runHook postInstall
+      '';
+
+      inherit meta;
+    };
+  };
+
+  wrapped = let
+    nim = nim-unwrapped;
+    inherit (stdenv) targetPlatform;
+  in stdenv.mkDerivation {
+    name = "${targetPlatform.config}-nim-wrapper-${nim.version}";
+    inherit (nim) version;
+    preferLocalBuild = true;
+
+    nativeBuildInputs = [ makeWrapper ];
+
+    unpackPhase = ''
+      runHook preUnpack
+      tar xf ${nim.src} nim-$version/config/nim.cfg
+      cd nim-$version
+      runHook postUnpack
+    '';
+
+    dontConfigure = true;
+
+    wrapperArgs = [
+      "--prefix PATH : ${lib.makeBinPath [ stdenv.cc gdb ]}:${
+        placeholder "out"
+      }/bin"
+      "--prefix LD_LIBRARY_PATH : ${
+        lib.makeLibraryPath [ stdenv.cc.libc openssl ]
+      }"
+      "--set NIM_CONFIG_PATH ${placeholder "out"}/etc/nim"
+      ''--set NIX_HARDENING_ENABLE "''${NIX_HARDENING_ENABLE/fortify}"''
+      # Fortify hardening appends -O2 to gcc flags which is unwanted for unoptimized nim builds.
+    ];
+
+    buildPhase = with stdenv;
+      let
+        ccType = if cc.isGNU then
+          "gcc"
+        else if cc.isClang then
+          "clang"
+        else
+          abort "no Nim configuration available for ${cc.name}";
+      in ''
+        runHook preBuild
+        cat >> config/nim.cfg << EOF
+
+        define:nixbuild
+        os = ${nimTarget.os}
+        cpu = ${nimTarget.cpu}
+        cc = ${ccType}
+        EOF
+
+        mkdir -p $out/bin $out/etc/nim
+        export cc=$CC
+        export cxx=$CXX
+        substituteAll config/nim.cfg $out/etc/nim/nim.cfg \
+          --replace "cc = gcc" ""
+
+        for binpath in ${nim}/bin/nim?*; do
+          local binname=`basename $binpath`
+          makeWrapper \
+            $binpath $out/bin/${targetPlatform.config}-$binname \
+            $wrapperArgs
+          ln -s $out/bin/${targetPlatform.config}-$binname $out/bin/$binname
+        done
+
+        makeWrapper \
+          ${nim}/nim/bin/nim $out/bin/${targetPlatform.config}-nim \
+          $wrapperArgs
+        ln -s $out/bin/${targetPlatform.config}-nim $out/bin/nim
+
+        runHook postBuild
+      '';
+
+    dontInstall = true;
+
+    meta = meta // {
+      description = nim.meta.description
+        + " (${targetPlatform.config} wrapper)";
+      platforms = lib.platforms.unix;
+    };
+
+  };
+
+in wrapped // wrapperInputs
diff --git a/nixpkgs/pkgs/development/compilers/nim/nixbuild.patch b/nixpkgs/pkgs/development/compilers/nim/nixbuild.patch
new file mode 100644
index 000000000000..bdfd04744e16
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/nim/nixbuild.patch
@@ -0,0 +1,51 @@
+commit 164ba50fc74b980f77047080b2ae1ea099ae9b27
+Author: Emery Hemingway <ehmry@posteo.net>
+Date:   Mon Sep 7 14:09:22 2020 +0200
+
+    Load libaries by absolute path on NixOS
+    
+    If "nixbuild" is defined then choose dynamic runtime libraries by
+    searching $NIX_LDFLAGS at compile-time.
+    
+    Fix #15194
+
+diff --git a/lib/pure/dynlib.nim b/lib/pure/dynlib.nim
+index f31ae94dd..debed9c07 100644
+--- a/lib/pure/dynlib.nim
++++ b/lib/pure/dynlib.nim
+@@ -56,6 +56,9 @@
+ 
+ import strutils
+ 
++when defined(nixbuild):
++  import os
++
+ type
+   LibHandle* = pointer ## a handle to a dynamically loaded library
+ 
+@@ -95,6 +98,25 @@ proc libCandidates*(s: string, dest: var seq[string]) =
+       libCandidates(prefix & middle & suffix, dest)
+   else:
+     add(dest, s)
++  when defined(nixbuild):
++    # Nix doesn't have a global library directory so
++    # load libraries using an absolute path if one
++    # can be derived from NIX_LDFLAGS.
++    #
++    # During Nix/NixOS packaging the line "define:nixbuild"
++    # should be appended to the ../../config/nim.cfg file
++    # to enable this behavior by default.
++    #
++    var libDirs = split(getEnv("LD_LIBRARY_PATH"), ':')
++    for flag in split(getEnv("NIX_LDFLAGS")):
++      if flag.startsWith("-L"):
++        libDirs.add(flag[2..flag.high])
++    for lib in dest:
++      for dir in libDirs:
++        let abs = dir / lib
++        if existsFile(abs):
++          dest = @[abs]
++          return
+ 
+ proc loadLibPattern*(pattern: string, globalSymbols = false): LibHandle =
+   ## loads a library with name matching `pattern`, similar to what `dlimport`
diff --git a/nixpkgs/pkgs/development/compilers/ocaml/4.11.nix b/nixpkgs/pkgs/development/compilers/ocaml/4.11.nix
index 2702a19d3187..afda8592818f 100644
--- a/nixpkgs/pkgs/development/compilers/ocaml/4.11.nix
+++ b/nixpkgs/pkgs/development/compilers/ocaml/4.11.nix
@@ -1,6 +1,6 @@
 import ./generic.nix {
   major_version = "4";
   minor_version = "11";
-  patch_version = "0+alpha2";
-  sha256 = "131ixp5kkgk9y42vrprhc2x0gpxhkapmdmb26pwkyl58vrbr8xqg";
+  patch_version = "1";
+  sha256 = "0k4521c0p10c5ams6vjv5qkkjhmpkb0bfn04llcz46ah0f3r2jpa";
 }
diff --git a/nixpkgs/pkgs/development/compilers/ocaml/generic.nix b/nixpkgs/pkgs/development/compilers/ocaml/generic.nix
index f2b61ab700da..1558756e16b1 100644
--- a/nixpkgs/pkgs/development/compilers/ocaml/generic.nix
+++ b/nixpkgs/pkgs/development/compilers/ocaml/generic.nix
@@ -10,20 +10,22 @@ let
   safeX11 = stdenv: !(stdenv.isAarch32 || stdenv.isMips);
 in
 
-{ stdenv, fetchurl, ncurses, buildEnv
+{ stdenv, fetchurl, ncurses, buildEnv, libunwind
 , libX11, xorgproto, useX11 ? safeX11 stdenv && !stdenv.lib.versionAtLeast version "4.09"
 , aflSupport ? false
 , flambdaSupport ? false
+, spaceTimeSupport ? false
 }:
 
 assert useX11 -> !stdenv.isAarch32 && !stdenv.isMips;
 assert aflSupport -> stdenv.lib.versionAtLeast version "4.05";
 assert flambdaSupport -> stdenv.lib.versionAtLeast version "4.03";
+assert spaceTimeSupport -> stdenv.lib.versionAtLeast version "4.04";
 
 let
    useNativeCompilers = !stdenv.isMips;
    inherit (stdenv.lib) optional optionals optionalString;
-   name = "ocaml${optionalString aflSupport "+afl"}${optionalString flambdaSupport "+flambda"}-${version}";
+   name = "ocaml${optionalString aflSupport "+afl"}${optionalString spaceTimeSupport "+spacetime"}${optionalString flambdaSupport "+flambda"}-${version}";
 in
 
 let
@@ -53,11 +55,13 @@ stdenv.mkDerivation (args // {
       [ "-x11lib" x11lib "-x11include" x11inc ])
   ++ optional aflSupport (flags "--with-afl" "-afl-instrument")
   ++ optional flambdaSupport (flags "--enable-flambda" "-flambda")
+  ++ optional spaceTimeSupport (flags "--enable-spacetime" "-spacetime")
   ;
 
   buildFlags = [ "world" ] ++ optionals useNativeCompilers [ "bootstrap" "world.opt" ];
   buildInputs = optional (!stdenv.lib.versionAtLeast version "4.07") ncurses
     ++ optionals useX11 [ libX11 xorgproto ];
+  propagatedBuildInputs = optional spaceTimeSupport libunwind;
   installTargets = [ "install" ] ++ optional useNativeCompilers "installopt";
   preConfigure = optionalString (!stdenv.lib.versionAtLeast version "4.04") ''
     CAT=$(type -tp cat)
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/11.nix b/nixpkgs/pkgs/development/compilers/openjdk/11.nix
index ef496f5f7c52..5011fd39e2f0 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/11.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/11.nix
@@ -10,16 +10,17 @@
 
 let
   major = "11";
-  update = ".0.6";
-  build = "ga";
+  minor = "0";
+  update = "8";
+  build = "10";
 
   openjdk = stdenv.mkDerivation rec {
     pname = "openjdk" + lib.optionalString headless "-headless";
-    version = "${major}${update}-${build}";
+    version = "${major}.${minor}.${update}+${build}";
 
     src = fetchurl {
       url = "http://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/jdk-${version}.tar.gz";
-      sha256 = "1w6n0cnz9izpjb3sc870q7a0jz85a6c7fiszymxin10cnsajkzir";
+      sha256 = "1sdncn1bk4h8xxfnmrl1125maqy6mc0v0y1dyifwsa04wasj9hbz";
     };
 
     nativeBuildInputs = [ pkgconfig autoconf ];
@@ -47,6 +48,7 @@ let
 
     configureFlags = [
       "--with-boot-jdk=${openjdk11-bootstrap.home}"
+      "--with-version-pre="
       "--enable-unlimited-crypto"
       "--with-native-debug-symbols=internal"
       "--with-libjpeg=system"
@@ -135,7 +137,7 @@ let
       homepage = "http://openjdk.java.net/";
       license = licenses.gpl2;
       description = "The open-source Java Development Kit";
-      maintainers = with maintainers; [ edwtjo ];
+      maintainers = with maintainers; [ edwtjo asbachb ];
       platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "armv7l-linux" "armv6l-linux" ];
     };
 
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/12.nix b/nixpkgs/pkgs/development/compilers/openjdk/12.nix
index 16c2fd766bce..3576608e13e6 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/12.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/12.nix
@@ -55,6 +55,7 @@ let
 
     configureFlags = [
       "--with-boot-jdk=${openjdk11.home}"
+      "--with-version-pre="
       "--enable-unlimited-crypto"
       "--with-native-debug-symbols=internal"
       "--with-libjpeg=system"
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/13.nix b/nixpkgs/pkgs/development/compilers/openjdk/13.nix
index b3842ba7cad2..31ffb4baf012 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/13.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/13.nix
@@ -55,6 +55,7 @@ let
 
     configureFlags = [
       "--with-boot-jdk=${openjdk13-bootstrap.home}"
+      "--with-version-pre="
       "--enable-unlimited-crypto"
       "--with-native-debug-symbols=internal"
       "--with-libjpeg=system"
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/8.nix b/nixpkgs/pkgs/development/compilers/openjdk/8.nix
index 828df621b6f1..f1379c209b37 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/8.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/8.nix
@@ -19,8 +19,8 @@ let
     aarch64-linux = "aarch64";
   }.${stdenv.system} or (throw "Unsupported platform");
 
-  update = "242";
-  build = "b08";
+  update = "265";
+  build = if stdenv.isAarch64 then "b01" else "ga";
   baseurl = if stdenv.isAarch64 then "https://hg.openjdk.java.net/aarch64-port/jdk8u-shenandoah"
             else "https://hg.openjdk.java.net/jdk8u/jdk8u";
   repover = lib.optionalString stdenv.isAarch64 "aarch64-shenandoah-"
@@ -29,50 +29,50 @@ let
   jdk8 = fetchurl {
              name = "jdk8-${repover}.tar.gz";
              url = "${baseurl}/archive/${repover}.tar.gz";
-             sha256 = if stdenv.isAarch64 then "0qpmr267qcxhmw398zbl1axd161yxn4k4hfz1jlxlmdvg70p7h90"
-                      else "1crs4hmzmgm6fkwfq0d3xz9lph0nd33fngrqv2rz1mkkqcrjx18z";
+             sha256 = if stdenv.isAarch64 then "1a2adw51af064rzlngsdlhs9gl47h3lv6dzvr8swqgl2n93nlbxa"
+                      else "02j1nbf3rxl581fqzc6i3ri6wwxx1dhkmj5klkh5xlp8dkhclr30";
           };
   langtools = fetchurl {
              name = "langtools-${repover}.tar.gz";
              url = "${baseurl}/langtools/archive/${repover}.tar.gz";
-             sha256 = if stdenv.isAarch64 then "1rhhi4kgmxvnyl3ic5p008p1n7zyji5nw99blm1lr5fw7ry7df24"
-                      else "1aaxd1rl7dlk4kxdivvqvripsbn0d5vny0jvjksycsm97vrfiry4";
+             sha256 = if stdenv.isAarch64 then "0hfrbz7421s2barfrfp0fvmh45iksw2zx1z4ykjg3giv8zbmswfm"
+                      else "1r2adp7sn3y45rb5h059qygz18bgmkqr2g2jc9mpzskl5vwsqiw4";
           };
   hotspot = fetchurl {
              name = "hotspot-${repover}.tar.gz";
              url = "${baseurl}/hotspot/archive/${repover}.tar.gz";
-             sha256 = if stdenv.isAarch64 then "0lphrhjqlavd6qlkh7h4sd2bqf5gd0cchkcnvy87703fbd7gy5ii"
-                      else "18i4if16zikgda9k5bgqyx0p2104db23zlnclq512178z0p9yycb";
+             sha256 = if stdenv.isAarch64 then "0g5h74snfl2dj2xwlvb5hgfbqmnbhxax68axadz11mq7r2bhd0lk"
+                      else "10xj8qr499r6nla74bjh4dmq7pkj63iircijk1wyv9xz5v777pcc";
           };
   corba = fetchurl {
              name = "corba-${repover}.tar.gz";
              url = "${baseurl}/corba/archive/${repover}.tar.gz";
-             sha256 = if stdenv.isAarch64 then "18h0v566v420d00na6x4jrs41v4aa39byk15fi8k6dcn0dmirhvg"
-                      else "1298k8p2dsj7xc4h2ayk5nl4ssrcgncn06ysyqrmnwrb8gj8s1w4";
+             sha256 = if stdenv.isAarch64 then "0wfqrpr5m4gnavgsl6zcy2l3c7sgn3yl7yhp2crh9icp44ld2cj9"
+                      else "0lk4jimrafgphffsj5yyyhl6pib0y5xxqcr09bgr2w8sjkp4s04s";
           };
   jdk = fetchurl {
              name = "jdk-${repover}.tar.gz";
              url = "${baseurl}/jdk/archive/${repover}.tar.gz";
-             sha256 = if stdenv.isAarch64 then "0xxy7rkj8ah263nnzkd4mg9dai5qix3l9cyilm47dig5hv7g8aq0"
-                      else "0vqlbks3cy3cnmnrnhbjkqinvp8bcy2h96xvx81cvlza4s2hszvz";
+             sha256 = if stdenv.isAarch64 then "0ss49bv2dzb9vkabpv1ag04wli5722p0a8gqkzqmzw4nj67snfqw"
+                      else "0anbp4vq8bzhqsqxlgjd0dx0irf57x4i5ddbpljl36vy2pi9xsm7";
           };
   jaxws = fetchurl {
              name = "jaxws-${repover}.tar.gz";
              url = "${baseurl}/jaxws/archive/${repover}.tar.gz";
-             sha256 = if stdenv.isAarch64 then "0ajqm2l9g5w5ag5s4vl4ldpbm99pqa6d342hrzvv7psqn3zf6ar5"
-                      else "1wg9fbiz09arj0llavnzrmbhw8nx0dw8dcjkrzxw78rj1cadflzc";
+             sha256 = if stdenv.isAarch64 then "1nwn6mz38app6pk5f1x3vya1x9qfckyl7z6bi62k6mj2c72ikfh5"
+                      else "113d5nx2mp30m6xy2m2wh0nixk45q8abimlszkiq09w1w1ckzpba";
           };
   jaxp = fetchurl {
              name = "jaxp-${repover}.tar.gz";
              url = "${baseurl}/jaxp/archive/${repover}.tar.gz";
-             sha256 = if stdenv.isAarch64 then "03zjh6xvza05abxz9d9j2w9xndw9n07f8lrn6dymj7f4imals831"
-                      else "1i5xrk8r8pcgnc68zrgp3hd1a1nzcm99swpmdnlb424qlg5nnrcf";
+             sha256 = if stdenv.isAarch64 then "1rhgbwvp7xls7r3f5jm69dw7x521vamchv917dwiz1byvm2bwn7s"
+                      else "0nvqidjssmamcrchq15cg3lfv5v3cnrw05a4h20xmhlpgb9im0vj";
           };
   nashorn = fetchurl {
              name = "nashorn-${repover}.tar.gz";
              url = "${baseurl}/nashorn/archive/${repover}.tar.gz";
-             sha256 = if stdenv.isAarch64 then "0n809w264ndxksva9c81x0m1fsyg8c627w571f72xxxl9c1bnrmp"
-                      else "0qlxaz7sriy709vcyzz48s2v4p5h4d31my33whip018c4j5gkfqq";
+             sha256 = if stdenv.isAarch64 then "14gp8q6jw1hq2wlmcalfwn1kgmnq5w9svqnbjww20f25phxkicij"
+                      else "0fm9ldps7ayk7r3wjqiyxp1s6hvi242kl7f92ydkmlxqyfajx60a";
           };
   openjdk8 = stdenv.mkDerivation {
     pname = "openjdk" + lib.optionalString headless "-headless";
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/default.nix b/nixpkgs/pkgs/development/compilers/openjdk/default.nix
index 063976d8765f..e51e55402675 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/default.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/default.nix
@@ -10,7 +10,7 @@
 
 let
   major = "14";
-  update = ".0.1";
+  update = ".0.2";
   build = "-ga";
 
   openjdk = stdenv.mkDerivation rec {
@@ -19,7 +19,7 @@ let
 
     src = fetchurl {
       url = "http://hg.openjdk.java.net/jdk-updates/jdk${major}u/archive/jdk-${version}.tar.gz";
-      sha256 = "0ic7dcrzk62jc65yrshs6xlclmsha7z52bia5s2bkllw1zpmdmip";
+      sha256 = "1s1pc6ihzf0awp4hbaqfxmbica0hnrg8nr7s0yd2hfn7nan8xmf3";
     };
 
     nativeBuildInputs = [ pkgconfig autoconf ];
diff --git a/nixpkgs/pkgs/development/compilers/openjdk/openjfx/14.nix b/nixpkgs/pkgs/development/compilers/openjdk/openjfx/14.nix
index 04bb1fa56274..22b5be7dc69c 100644
--- a/nixpkgs/pkgs/development/compilers/openjdk/openjfx/14.nix
+++ b/nixpkgs/pkgs/development/compilers/openjdk/openjfx/14.nix
@@ -96,7 +96,7 @@ in makePackage {
   postFixup = ''
     # Remove references to bootstrap.
     find "$out" -name \*.so | while read lib; do
-      new_refs="$(patchelf --print-rpath "$lib" | sed -E 's,:?${openjdk11_headless}[^:]*,,')"
+      new_refs="$(patchelf --print-rpath "$lib" | sed -E 's,:?${lib.escape ["+"] openjdk11_headless.outPath}[^:]*,,')"
       patchelf --set-rpath "$new_refs" "$lib"
     done
   '';
diff --git a/nixpkgs/pkgs/development/compilers/oraclejdk/jdk11-linux.nix b/nixpkgs/pkgs/development/compilers/oraclejdk/jdk11-linux.nix
new file mode 100644
index 000000000000..b73270e8dd8c
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/oraclejdk/jdk11-linux.nix
@@ -0,0 +1,54 @@
+{ stdenv
+, requireFile
+, xorg
+, zlib
+, freetype
+, alsaLib
+, setJavaClassPath
+}:
+
+let result = stdenv.mkDerivation rec {
+  pname = "oraclejdk";
+  version = "11.0.8";
+
+  src = requireFile {
+    name = "jdk-${version}_linux-x64_bin.tar.gz";
+    url = "https://www.oracle.com/java/technologies/javase-jdk11-downloads.html";
+    sha256 = "6390878c91e29bad7b2483eb0b470620bd145269600f3b6a9d65724e6f83b6fd";
+  };
+
+  installPhase = ''
+    mv ../$sourceRoot $out
+
+    mkdir -p $out/nix-support
+    printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
+
+    # Set JAVA_HOME automatically.
+    cat <<EOF >> $out/nix-support/setup-hook
+    if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
+    EOF
+  '';
+
+  postFixup = ''
+    rpath="$out/lib/jli:$out/lib/server:$out/lib:${stdenv.lib.strings.makeLibraryPath [ zlib xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXrender freetype alsaLib]}"
+
+    for f in $(find $out -name "*.so") $(find $out -type f -perm -0100); do
+      patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$f" || true
+      patchelf --set-rpath   "$rpath"                                    "$f" || true
+    done
+
+    for f in $(find $out -name "*.so") $(find $out -type f -perm -0100); do
+      if ldd "$f" | fgrep 'not found'; then echo "in file $f"; fi
+    done
+  '';
+
+  passthru.jre = result;
+  passthru.home = result;
+
+  dontStrip = true; # See: https://github.com/NixOS/patchelf/issues/10
+
+  meta = with stdenv.lib; {
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+  };
+}; in result
diff --git a/nixpkgs/pkgs/development/compilers/oraclejdk/jdk14-linux.nix b/nixpkgs/pkgs/development/compilers/oraclejdk/jdk14-linux.nix
new file mode 100644
index 000000000000..427c7cedad15
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/oraclejdk/jdk14-linux.nix
@@ -0,0 +1,54 @@
+{ stdenv
+, requireFile
+, xorg
+, zlib
+, freetype
+, alsaLib
+, setJavaClassPath
+}:
+
+let result = stdenv.mkDerivation rec {
+  pname = "oraclejdk";
+  version = "14.0.2";
+
+  src = requireFile {
+    name = "jdk-${version}_linux-x64_bin.tar.gz";
+    url = "https://www.oracle.com/java/technologies/javase-jdk14-downloads.html";
+    sha256 = "cb811a86926cc0f529d16bec7bd2e25fb73e75125bbd1775cdb9a96998593dde";
+  };
+
+  installPhase = ''
+    mv ../$sourceRoot $out
+
+    mkdir -p $out/nix-support
+    printWords ${setJavaClassPath} > $out/nix-support/propagated-build-inputs
+
+    # Set JAVA_HOME automatically.
+    cat <<EOF >> $out/nix-support/setup-hook
+    if [ -z "\''${JAVA_HOME-}" ]; then export JAVA_HOME=$out; fi
+    EOF
+  '';
+
+  postFixup = ''
+    rpath="$out/lib/jli:$out/lib/server:$out/lib:${stdenv.lib.strings.makeLibraryPath [ stdenv.cc.cc zlib xorg.libX11 xorg.libXext xorg.libXtst xorg.libXi xorg.libXrender freetype alsaLib]}"
+
+    for f in $(find $out -name "*.so") $(find $out -type f -perm -0100); do
+      patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$f" || true
+      patchelf --set-rpath   "$rpath"                                    "$f" || true
+    done
+
+    for f in $(find $out -name "*.so") $(find $out -type f -perm -0100); do
+      if ldd "$f" | fgrep 'not found'; then echo "in file $f"; fi
+    done
+  '';
+
+  passthru.jre = result;
+  passthru.home = result;
+
+  dontStrip = true; # See: https://github.com/NixOS/patchelf/issues/10
+
+  meta = with stdenv.lib; {
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+  };
+}; in result
diff --git a/nixpkgs/pkgs/development/compilers/oraclejdk/jdk8-linux.nix b/nixpkgs/pkgs/development/compilers/oraclejdk/jdk8-linux.nix
index 3c4a2b7850f1..fdea10dcd7e4 100644
--- a/nixpkgs/pkgs/development/compilers/oraclejdk/jdk8-linux.nix
+++ b/nixpkgs/pkgs/development/compilers/oraclejdk/jdk8-linux.nix
@@ -1,10 +1,10 @@
 import ./jdk-linux-base.nix {
   productVersion = "8";
-  patchVersion = "251";
-  sha256.i686-linux = "0c6d25c09459e435570204f1a22a1cb765ce5d62c5bced92c9a9546b7be337f2";
-  sha256.x86_64-linux = "777a8d689e863275a647ae52cb30fd90022a3af268f34fc5b9867ce32f1b374e";
-  sha256.armv7l-linux = "f1b0c979e1b61ec52ebd5e1d0b754d7681d8623b09ac90c69718a553ef9b0cd1";
-  sha256.aarch64-linux = "58baeaab7da97dd5a6b02ad2dcd77c14b3b6ba014029ee67dbc2bd5f0fa98d1b";
+  patchVersion = "261";
+  sha256.i686-linux = "1bl12hd5i53m8d4j8rwkk3bavmzw0ndr88ch5lf5syi7vs5pfjpm";
+  sha256.x86_64-linux = "0d7a92csz8ws5h0pzqmrxq3sz286s57vw0dqq3ciwsqz14df012s";
+  sha256.armv7l-linux = "13dih7zyfgj90bkhnfxhpm88d9kqqrj6w5rzpidmxrjwrsnlndp9";
+  sha256.aarch64-linux = "0zzhs4pcnjss2561b8zrrnacpkb8p49ca0lpdw7hzgsjjj1y146n";
   jceName = "jce_policy-8.zip";
-  sha256JCE = "0n8b6b8qmwb14lllk2lk1q1ahd3za9fnjigz5xn65mpg48whl0pk";
+  sha256JCE = "19n5wadargg3v8x76r7ayag6p2xz1bwhrgdzjs9f4i6fvxz9jr4w";
 }
diff --git a/nixpkgs/pkgs/development/compilers/pforth/default.nix b/nixpkgs/pkgs/development/compilers/pforth/default.nix
index c13d28c6a3bb..ce228c2f1cb5 100644
--- a/nixpkgs/pkgs/development/compilers/pforth/default.nix
+++ b/nixpkgs/pkgs/development/compilers/pforth/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchFromGitHub, fetchpatch }:
 
 stdenv.mkDerivation {
   version = "28";
@@ -10,6 +10,14 @@ stdenv.mkDerivation {
     sha256 = "0k3pmcgybsnwrxy75piyb2420r8d4ij190606js32j99062glr3x";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "gnumake-4.3-fix.patch";
+      url = "https://github.com/philburk/pforth/commit/457cb99f57292bc855e53abcdcb7b12d6681e847.patch";
+      sha256 = "0x1bwx3pqb09ddjhmdli47lnk1ys4ny42819g17kfn8nkjs5hbx7";
+    })
+  ];
+
   makeFlags = [ "SRCDIR=." ];
   makefile = "build/unix/Makefile";
 
diff --git a/nixpkgs/pkgs/development/compilers/polyml/default.nix b/nixpkgs/pkgs/development/compilers/polyml/default.nix
index 657673465375..7b15a988e38a 100644
--- a/nixpkgs/pkgs/development/compilers/polyml/default.nix
+++ b/nixpkgs/pkgs/development/compilers/polyml/default.nix
@@ -2,20 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "polyml";
-  version = "5.8";
+  version = "5.8.1";
 
   prePatch = stdenv.lib.optionalString stdenv.isDarwin ''
     substituteInPlace configure.ac --replace stdc++ c++
   '';
 
-  patches = [
-    (fetchpatch {
-      name = "new-libffi-FFI_SYSV.patch";
-      url = "https://github.com/polyml/polyml/commit/ad32de7f181acaffaba78d5c3d9e5aa6b84a741c.patch";
-      sha256 = "007q3r2h9kfh3c1nv0dyhipmak44q468ab9bwnz4kk4a2dq76n8v";
-    })
-  ];
-
   buildInputs = [ libffi gmp ];
 
   nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin autoreconfHook;
@@ -30,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "polyml";
     repo = "polyml";
     rev = "v${version}";
-    sha256 = "1s7q77bivppxa4vd7gxjj5dbh66qnirfxnkzh1ql69rfx1c057n3";
+    sha256 = "0gcx2fjiwsiazlyfhm7zlrd563blc4fy9w2mspib9divbavaxin6";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/compilers/reason/default.nix b/nixpkgs/pkgs/development/compilers/reason/default.nix
index 5c452d692538..4c0e9c298519 100644
--- a/nixpkgs/pkgs/development/compilers/reason/default.nix
+++ b/nixpkgs/pkgs/development/compilers/reason/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-reason-${version}";
-  version = "3.6.0";
+  version = "3.6.2";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "reason";
-    rev = "2860cc274b1b5b76a71d0e5190bf67a133d6f809";
-    sha256 = "05wcg0gfln85spjfgsij818h2sp4y6s8bvdcwmzv0r8jblr8402b";
+    rev = "6017d6dd930f4989177c3f7c3c20cffbaabaa49a";
+    sha256 = "17wkcl3r0ckhlki9fk0mcwbnd7kpkqm1h0xjw2j2x1097n470df0";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/compilers/rust/1_45.nix b/nixpkgs/pkgs/development/compilers/rust/1_45.nix
index 94c70880dbaa..05db4520f652 100644
--- a/nixpkgs/pkgs/development/compilers/rust/1_45.nix
+++ b/nixpkgs/pkgs/development/compilers/rust/1_45.nix
@@ -11,7 +11,7 @@
 , buildPackages
 , newScope, callPackage
 , CoreFoundation, Security
-, llvmPackages
+, llvmPackages_5
 , pkgsBuildTarget, pkgsBuildBuild
 , makeRustPlatform
 } @ args:
diff --git a/nixpkgs/pkgs/development/compilers/rust/rls/default.nix b/nixpkgs/pkgs/development/compilers/rust/rls/default.nix
index b603675a6f17..06b1b9b1e648 100644
--- a/nixpkgs/pkgs/development/compilers/rust/rls/default.nix
+++ b/nixpkgs/pkgs/development/compilers/rust/rls/default.nix
@@ -49,6 +49,5 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/rust-lang/rls/";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ symphorien ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/rust/rustfmt.nix b/nixpkgs/pkgs/development/compilers/rust/rustfmt.nix
index eb8560ada84a..6215c936c6d0 100644
--- a/nixpkgs/pkgs/development/compilers/rust/rustfmt.nix
+++ b/nixpkgs/pkgs/development/compilers/rust/rustfmt.nix
@@ -26,6 +26,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rust-lang-nursery/rustfmt";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ globin basvandijk ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/sagittarius-scheme/default.nix b/nixpkgs/pkgs/development/compilers/sagittarius-scheme/default.nix
index 4b1358b72472..dcc3457fe112 100644
--- a/nixpkgs/pkgs/development/compilers/sagittarius-scheme/default.nix
+++ b/nixpkgs/pkgs/development/compilers/sagittarius-scheme/default.nix
@@ -16,10 +16,10 @@ let platformLdLibraryPath = if stdenv.isDarwin then "DYLD_FALLBACK_LIBRARY_PATH"
 in
 stdenv.mkDerivation rec {
   pname = "sagittarius-scheme";
-  version = "0.9.6";
+  version = "0.9.7";
   src = fetchurl {
     url = "https://bitbucket.org/ktakashi/${pname}/downloads/sagittarius-${version}.tar.gz";
-    sha256 = "03nvvvfd4gdlvq244zpnikxxajp6w8jj3ymw4bcq83x7zilb2imr";
+    sha256 = "18pjj6f5qvixv5hbl1k4d3jqfcmi9qyx0gz0cjwrzpxa8brpwld8";
   };
   preBuild = ''
            # since we lack rpath during build, need to explicitly add build path
diff --git a/nixpkgs/pkgs/development/compilers/scala/2.13.nix b/nixpkgs/pkgs/development/compilers/scala/2.13.nix
index 04086321bef1..75996c382a8c 100644
--- a/nixpkgs/pkgs/development/compilers/scala/2.13.nix
+++ b/nixpkgs/pkgs/development/compilers/scala/2.13.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, makeWrapper, jre, gnugrep, coreutils }:
 
 stdenv.mkDerivation rec {
-  name = "scala-2.13.2";
+  name = "scala-2.13.3";
 
   src = fetchurl {
     url = "https://www.scala-lang.org/files/archive/${name}.tgz";
-    sha256 = "1gvdxwlhgjmn8i5a8kcp19700rscjq9ylb35p8vj7nqys94zjkap";
+    sha256 = "0zv9w9f6g2cfydsvp8mqcfgv2v3487xp4ca1qndg6v7jrhdp7wy9";
   };
 
   propagatedBuildInputs = [ jre ] ;
diff --git a/nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix b/nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix
index d3f126052f5d..9b0602270672 100644
--- a/nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix
+++ b/nixpkgs/pkgs/development/compilers/scala/dotty-bare.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, makeWrapper, jre, ncurses }:
 
 stdenv.mkDerivation rec {
-  version = "0.23.0-RC1";
+  version = "0.26.0-RC1";
   pname = "dotty-bare";
 
   src = fetchurl {
     url = "https://github.com/lampepfl/dotty/releases/download/${version}/dotty-${version}.tar.gz";
-    sha256 = "0c64dw2qp8mhgsll8viqaiy34wq1ablkbc4bi813a1r4nqg57sv0";
+    sha256 = "16njy9f0lk7q5x5w1k4yqy644005w4cxhq20r8i2qslhxjndz66f";
   };
 
   propagatedBuildInputs = [ jre ncurses.dev ] ;
diff --git a/nixpkgs/pkgs/development/compilers/souffle/default.nix b/nixpkgs/pkgs/development/compilers/souffle/default.nix
index 00d1a2f79600..dbc5c1fa517d 100644
--- a/nixpkgs/pkgs/development/compilers/souffle/default.nix
+++ b/nixpkgs/pkgs/development/compilers/souffle/default.nix
@@ -10,13 +10,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "souffle";
-  version = "1.7.1";
+  version = "2.0.1";
 
   src = fetchFromGitHub {
     owner  = "souffle-lang";
     repo   = "souffle";
     rev    = version;
-    sha256 = "0px8kh5875q2iyza4ylpa6vxpy6qxg0qvn2idk1j6dcdf5pdryph";
+    sha256 = "0f7jwmgv83m85lrb2qwvr4cfwzbqww7pik884xd2593fsfqhpnkn";
   };
 
   nativeBuildInputs = [ autoreconfHook bison flex mcpp doxygen graphviz makeWrapper perl ];
diff --git a/nixpkgs/pkgs/development/compilers/swift/default.nix b/nixpkgs/pkgs/development/compilers/swift/default.nix
index dc19256fc631..c4144532c583 100644
--- a/nixpkgs/pkgs/development/compilers/swift/default.nix
+++ b/nixpkgs/pkgs/development/compilers/swift/default.nix
@@ -183,6 +183,9 @@ stdenv.mkDerivation {
   '';
 
   patchPhase = ''
+    # Glibc 2.31 fix
+    patch -p1 -i ${./patches/swift-llvm.patch}
+
     # Just patch all the things for now, we can focus this later
     patchShebangs $SWIFT_SOURCE_ROOT
 
@@ -258,8 +261,8 @@ stdenv.mkDerivation {
   '';
 
   buildPhase = ''
-    # gcc-6.4.0/include/c++/6.4.0/cstdlib:75:15: fatal error: 'stdlib.h' file not found
-    export NIX_CFLAGS_COMPILE="$(< $NIX_CC/nix-support/libcxx-cxxflags) $NIX_CFLAGS_COMPILE"
+    # explicitly include C++ headers to prevent errors where stdlib.h is not found from cstdlib
+    export NIX_CFLAGS_COMPILE="$(< ${clang}/nix-support/libcxx-cxxflags) $NIX_CFLAGS_COMPILE"
     # During the Swift build, a full local LLVM build is performed and the resulting clang is invoked.
     # This compiler is not using the Nix wrappers, so it needs some help to find things.
     export NIX_LDFLAGS_BEFORE="-rpath ${gccForLibs.lib}/lib -L${gccForLibs.lib}/lib $NIX_LDFLAGS_BEFORE"
diff --git a/nixpkgs/pkgs/development/compilers/swift/patches/swift-llvm.patch b/nixpkgs/pkgs/development/compilers/swift/patches/swift-llvm.patch
new file mode 100644
index 000000000000..fcd9533fd72a
--- /dev/null
+++ b/nixpkgs/pkgs/development/compilers/swift/patches/swift-llvm.patch
@@ -0,0 +1,48 @@
+diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+index bc6675bf4..2f3514b64 100644
+--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc
+@@ -1129,8 +1129,9 @@ CHECK_SIZE_AND_OFFSET(ipc_perm, uid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, gid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, cuid);
+ CHECK_SIZE_AND_OFFSET(ipc_perm, cgid);
+-#if !defined(__aarch64__) || !SANITIZER_LINUX || __GLIBC_PREREQ (2, 21)
+-/* On aarch64 glibc 2.20 and earlier provided incorrect mode field.  */
++#if !SANITIZER_LINUX || __GLIBC_PREREQ (2, 31)
++/* glibc 2.30 and earlier provided 16-bit mode field instead of 32-bit
++   on many architectures.  */
+ CHECK_SIZE_AND_OFFSET(ipc_perm, mode);
+ #endif
+ 
+diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+index de69852d3..652d5cb3b 100644
+--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
+@@ -204,26 +204,13 @@ namespace __sanitizer {
+     u64 __unused1;
+     u64 __unused2;
+ #elif defined(__sparc__)
+-#if defined(__arch64__)
+     unsigned mode;
+-    unsigned short __pad1;
+-#else
+-    unsigned short __pad1;
+-    unsigned short mode;
+     unsigned short __pad2;
+-#endif
+     unsigned short __seq;
+     unsigned long long __unused1;
+     unsigned long long __unused2;
+-#elif defined(__mips__) || defined(__aarch64__) || defined(__s390x__)
+-    unsigned int mode;
+-    unsigned short __seq;
+-    unsigned short __pad1;
+-    unsigned long __unused1;
+-    unsigned long __unused2;
+ #else
+-    unsigned short mode;
+-    unsigned short __pad1;
++    unsigned int mode;
+     unsigned short __seq;
+     unsigned short __pad2;
+ #if defined(__x86_64__) && !defined(_LP64)
diff --git a/nixpkgs/pkgs/development/compilers/tinygo/default.nix b/nixpkgs/pkgs/development/compilers/tinygo/default.nix
index b3176cac78a3..060b95cf8774 100644
--- a/nixpkgs/pkgs/development/compilers/tinygo/default.nix
+++ b/nixpkgs/pkgs/development/compilers/tinygo/default.nix
@@ -14,7 +14,7 @@ buildGoModule rec {
     rev = "v${version}";
     sha256 = "0das5z5y2x1970yi9c4yssxvwrrjhdmsj495q0r5mb02amvc954v";
   };
- 
+
   overrideModAttrs = (_: {
       patches = [];
       preBuild = ''
@@ -27,7 +27,9 @@ buildGoModule rec {
   preBuild = "cp ${gomod} go.mod";
 
   vendorSha256 = "19194dlzpl6zzw2gqybma5pwip71rw8z937f104k6c158qzzgy62";
-  enableParallelBuilding = true;
+
+  doCheck = false;
+
   subPackages = [ "." ];
   buildInputs = [ llvm clang-unwrapped makeWrapper ];
   propagatedBuildInputs = [ lld avrgcc avrdude openocd gcc-arm-embedded ];
@@ -44,6 +46,5 @@ buildGoModule rec {
     description = "Go compiler for small places";
     license = licenses.bsd3;
     maintainers = with maintainers; [ chiiruno ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/compilers/vala/default.nix b/nixpkgs/pkgs/development/compilers/vala/default.nix
index 6afc14688aec..3b4cd1a5a790 100644
--- a/nixpkgs/pkgs/development/compilers/vala/default.nix
+++ b/nixpkgs/pkgs/development/compilers/vala/default.nix
@@ -123,8 +123,8 @@ in rec {
   };
 
   vala_0_48 = generic {
-    version = "0.48.1";
-    sha256 = "1m3igqlryj1161ymksy7666v7mp9l6gy0yfi4cvgd3wh1963jmzb";
+    version = "0.48.7";
+    sha256 = "0lswkb7gj0chas9n3l3dbrm9l71hs77adhvm2v600id2ipi37pi8";
   };
 
   vala = vala_0_48;
diff --git a/nixpkgs/pkgs/development/compilers/wla-dx/default.nix b/nixpkgs/pkgs/development/compilers/wla-dx/default.nix
index f50d9e0598b1..2d3a527fa142 100644
--- a/nixpkgs/pkgs/development/compilers/wla-dx/default.nix
+++ b/nixpkgs/pkgs/development/compilers/wla-dx/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wla-dx";
-  version = "9.8";
+  version = "9.11";
 
   src = fetchFromGitHub {
     owner = "vhelin";
     repo = "wla-dx";
     rev = "v${version}-fix";
-    sha256 = "1dsxhy19nif983lr20vxl099giwzgmzqyh7ass705hkphmwagcv6";
+    sha256 = "0sz1vqafl7ii3z1710sk0ilvczv8pb4b6lkmg9pr7hqj3kaxndii";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/compilers/yosys/default.nix b/nixpkgs/pkgs/development/compilers/yosys/default.nix
index 09e51e4c6471..c3185ca4e0e6 100644
--- a/nixpkgs/pkgs/development/compilers/yosys/default.nix
+++ b/nixpkgs/pkgs/development/compilers/yosys/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname   = "yosys";
-  version = "2020.06.16";
+  version = "2020.08.22";
 
   src = fetchFromGitHub {
     owner  = "YosysHQ";
     repo   = "yosys";
-    rev    = "39ba90a8b84d740b670a9f1df5148b824d441c63";
-    sha256 = "1ncscbhyq4f07d28l32j37y5d84vyqxfx0fbzhb7nzfhplk8hh0s";
+    rev    = "12132b6850747aec99715fdfa3184fe3ebefa015";
+    sha256 = "1v6x1y2f3r8vi7pnkgx374rrv02xgmg9yg23f61n7d1v2rd6y5cc";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/compilers/zig/default.nix b/nixpkgs/pkgs/development/compilers/zig/default.nix
index 20ce0b5ff5ee..6a1e5b9e76e4 100644
--- a/nixpkgs/pkgs/development/compilers/zig/default.nix
+++ b/nixpkgs/pkgs/development/compilers/zig/default.nix
@@ -20,13 +20,6 @@ llvmPackages.stdenv.mkDerivation rec {
     zlib
   ];
 
-  patches = [
-    (substituteAll {
-        src = ./llvm10_polly.patch;
-        llvm_extras = "-Wl,${llvmPackages.llvm}/lib/LLVMPolly.so";
-    })
-  ];
-
   preBuild = ''
     export HOME=$TMPDIR;
   '';
diff --git a/nixpkgs/pkgs/development/compilers/zig/llvm10_polly.patch b/nixpkgs/pkgs/development/compilers/zig/llvm10_polly.patch
deleted file mode 100644
index 72449c35d91f..000000000000
--- a/nixpkgs/pkgs/development/compilers/zig/llvm10_polly.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 97608cddf..e451c0711 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -369,4 +369,5 @@ target_link_libraries(zig_cpp LINK_PUBLIC
-     ${CLANG_LIBRARIES}
-     ${LLD_LIBRARIES}
-     ${LLVM_LIBRARIES}
-+    @llvm_extras@
- )
diff --git a/nixpkgs/pkgs/development/compilers/zulu/8.nix b/nixpkgs/pkgs/development/compilers/zulu/8.nix
index e48fee0a6a59..cb8eb0b8f268 100644
--- a/nixpkgs/pkgs/development/compilers/zulu/8.nix
+++ b/nixpkgs/pkgs/development/compilers/zulu/8.nix
@@ -4,11 +4,11 @@
 , swingSupport ? true }:
 
 let
-  version = "8.28.0.1";
-  openjdk = "8.0.163";
+  version = "8.48.0.53";
+  openjdk = "8.0.265";
 
-  sha256_linux = "1z8s3a948nvv92wybnhkyr27ipibcy45k0zv5h5gp37ynd91df45";
-  sha256_darwin = "0i0prjijsgg0yyycplpp9rlfl428126rqz7bb31pchrhi6jhk699";
+  sha256_linux = "ed32513524b32a83b3b388831c69d1884df5675bd5069c6d1485fd1a060be209";
+  sha256_darwin = "36f189bfbd0255195848835819377474ba9c1c868e3c204633c451c96e21f30a";
 
   platform = if stdenv.isDarwin then "macosx" else "linux";
   hash = if stdenv.isDarwin then sha256_darwin else sha256_linux;
@@ -29,7 +29,7 @@ in stdenv.mkDerivation {
   pname = "zulu";
 
   src = fetchurl {
-    url = "https://cdn.azul.com/zulu/bin/zulu${version}-jdk${openjdk}-${platform}_x64.${extension}";
+    url = "https://cdn.azul.com/zulu/bin/zulu${version}-ca-jdk${openjdk}-${platform}_x64.${extension}";
     sha256 = hash;
   };
 
diff --git a/nixpkgs/pkgs/development/compilers/zulu/default.nix b/nixpkgs/pkgs/development/compilers/zulu/default.nix
index bfaa4c777b32..d91581f5b10f 100644
--- a/nixpkgs/pkgs/development/compilers/zulu/default.nix
+++ b/nixpkgs/pkgs/development/compilers/zulu/default.nix
@@ -4,11 +4,11 @@
 , swingSupport ? true }:
 
 let
-  version = "10.1+11";
-  openjdk = "10";
+  version = "11.41.23";
+  openjdk = "11.0.8";
 
-  sha256_linux = "0g51n2zc7inal29n5ly3mrrfj15c7vl87zb6b2r1q67n4mnbrgm8";
-  sha256_darwin = "1c5ib136nv6gz7ij31mg15nhzrl6zr7kp8spm17zwm1ib82bc73y";
+  sha256_linux = "f8aee4ab30ca11ab3c8f401477df0e455a9d6b06f2710b2d1b1ddcf06067bc79";
+  sha256_darwin = "643c6648cc4374f39e830e4fcb3d68f8667893d487c07eb7091df65937025cc3";
 
   platform = if stdenv.isDarwin then "macosx" else "linux";
   hash = if stdenv.isDarwin then sha256_darwin else sha256_linux;
@@ -29,7 +29,7 @@ in stdenv.mkDerivation {
   pname = "zulu";
 
   src = fetchurl {
-    url = "https://cdn.azul.com/zulu/bin/zulu${version}-jdk${openjdk}-${platform}_x64.${extension}";
+    url = "https://cdn.azul.com/zulu/bin/zulu${version}-ca-jdk${openjdk}-${platform}_x64.${extension}";
     sha256 = hash;
   };
 
diff --git a/nixpkgs/pkgs/development/coq-modules/Cheerios/default.nix b/nixpkgs/pkgs/development/coq-modules/Cheerios/default.nix
index 194a1a0752ad..3f9f3b1ac9cd 100644
--- a/nixpkgs/pkgs/development/coq-modules/Cheerios/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/Cheerios/default.nix
@@ -27,6 +27,6 @@ stdenv.mkDerivation {
   installFlags = [ "COQLIB=$(out)/lib/coq/${coq.coq-version}/" ];
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.6" "8.7" "8.8" "8.9" "8.10" "8.11" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.6" "8.7" "8.8" "8.9" "8.10" "8.11" "8.12" ];
  };
 }
diff --git a/nixpkgs/pkgs/development/coq-modules/InfSeqExt/default.nix b/nixpkgs/pkgs/development/coq-modules/InfSeqExt/default.nix
index e97b44999014..387e41859039 100644
--- a/nixpkgs/pkgs/development/coq-modules/InfSeqExt/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/InfSeqExt/default.nix
@@ -26,6 +26,6 @@ stdenv.mkDerivation {
   installFlags = [ "COQLIB=$(out)/lib/coq/${coq.coq-version}/" ];
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.5" "8.6" "8.7" "8.8" "8.9" "8.10" "8.11" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.5" "8.6" "8.7" "8.8" "8.9" "8.10" "8.11" "8.12" ];
  };
 }
diff --git a/nixpkgs/pkgs/development/coq-modules/QuickChick/default.nix b/nixpkgs/pkgs/development/coq-modules/QuickChick/default.nix
index 7f3c77c75e61..a167b7988dcd 100644
--- a/nixpkgs/pkgs/development/coq-modules/QuickChick/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/QuickChick/default.nix
@@ -27,15 +27,29 @@ let params =
     };
 
     "8.10" = rec {
-      version = "1.2.0";
+      version = "1.2.1";
       rev = "v${version}";
-      sha256 = "1xs4mr3rdb0g44736jb40k370hw3maxdk12jiq1w1dl3q5gfrhah";
+      sha256 = "17vz88xjzxh3q7hs6hnndw61r3hdfawxp5awqpgfaxx4w6ni8z46";
+    };
+
+    "8.11" = rec {
+      version = "1.3.2";
+      rev = "v${version}";
+      sha256 = "0lciwaqv288dh2f13xk2x0lrn6zyrkqy6g4yy927wwzag2gklfrs";
+    };
+
+    "8.12" = rec {
+      version = "1.4.0";
+      rev = "v${version}";
+      sha256 = "068p48pm5yxjc3yv8qwzp25bp9kddvxj81l31mjkyx3sdrsw3kyc";
     };
   };
   param = params.${coq.coq-version};
 in
 
-let recent = stdenv.lib.versionAtLeast coq.coq-version "8.8"; in
+let inherit (stdenv.lib) maintainers optional optionals versionAtLeast; in
+
+let recent = versionAtLeast coq.coq-version "8.8"; in
 
 stdenv.mkDerivation {
 
@@ -51,12 +65,16 @@ stdenv.mkDerivation {
     "substituteInPlace Makefile --replace quickChickTool.byte quickChickTool.native";
 
   buildInputs = [ coq ]
-  ++ (with coq.ocamlPackages; [ ocaml camlp5 findlib ])
-  ++ stdenv.lib.optionals recent
-     (with coq.ocamlPackages; [ ocamlbuild num ])
+  ++ (with coq.ocamlPackages; [ ocaml findlib ])
+  ++ optionals (recent && !versionAtLeast coq.coq-version "8.10")
+       (with coq.ocamlPackages; [ camlp5 ocamlbuild ])
+  ++ optional recent coq.ocamlPackages.num
   ;
   propagatedBuildInputs = [ ssreflect ]
-  ++ stdenv.lib.optionals recent [ coq-ext-lib simple-io ];
+  ++ optionals recent [ coq-ext-lib simple-io ]
+  ++ optional (versionAtLeast coq.coq-version "8.10")
+       coq.ocamlPackages.ocamlbuild
+  ;
 
   enableParallelBuilding = false;
 
@@ -64,7 +82,7 @@ stdenv.mkDerivation {
     make -f Makefile.coq COQLIB=$out/lib/coq/${coq.coq-version}/ install
   '';
 
-  meta = with stdenv.lib; {
+  meta = {
     homepage = "https://github.com/QuickChick/QuickChick";
     description = "Randomized property-based testing plugin for Coq; a clone of Haskell QuickCheck";
     maintainers = with maintainers; [ jwiegley ];
diff --git a/nixpkgs/pkgs/development/coq-modules/Verdi/default.nix b/nixpkgs/pkgs/development/coq-modules/Verdi/default.nix
index 1fd06a9c5560..927cd832452b 100644
--- a/nixpkgs/pkgs/development/coq-modules/Verdi/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/Verdi/default.nix
@@ -32,6 +32,6 @@ stdenv.mkDerivation {
   installFlags = [ "COQLIB=$(out)/lib/coq/${coq.coq-version}/" ];
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.6" "8.7" "8.8" "8.9" "8.10" "8.11" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.6" "8.7" "8.8" "8.9" "8.10" "8.11" "8.12" ];
  };
 }
diff --git a/nixpkgs/pkgs/development/coq-modules/bignums/default.nix b/nixpkgs/pkgs/development/coq-modules/bignums/default.nix
index 0e8cead0b31e..88d7e461a317 100644
--- a/nixpkgs/pkgs/development/coq-modules/bignums/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/bignums/default.nix
@@ -25,6 +25,10 @@ let params = {
         rev = "V8.11.0";
         sha256 = "1xcd7c7qlvs0narfba6px34zq0mz8rffnhxw0kzhhg6i4iw115dp";
       };
+      "8.12" = {
+        rev = "V8.12.0";
+        sha256 = "14ijb3qy2hin3g4djx437jmnswxxq7lkfh3dwh9qvrds9a015yg8";
+      };
     };
     param = params.${coq.coq-version};
 in
diff --git a/nixpkgs/pkgs/development/coq-modules/coq-bits/default.nix b/nixpkgs/pkgs/development/coq-modules/coq-bits/default.nix
index 05dcb7898e50..9665c5400d85 100644
--- a/nixpkgs/pkgs/development/coq-modules/coq-bits/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/coq-bits/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/coq-community/coq-bits";
+    homepage = "https://github.com/coq-community/bits";
     description = "A formalization of bitset operations in Coq";
     license = licenses.asl20;
     maintainers = with maintainers; [ ptival ];
@@ -33,6 +33,6 @@ stdenv.mkDerivation {
   };
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.7" "8.8" "8.9" "8.10" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.7" "8.8" "8.9" "8.10" "8.11" "8.12" ];
   };
 }
diff --git a/nixpkgs/pkgs/development/coq-modules/coq-elpi/default.nix b/nixpkgs/pkgs/development/coq-modules/coq-elpi/default.nix
index 3857146ea605..230320671a7f 100644
--- a/nixpkgs/pkgs/development/coq-modules/coq-elpi/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/coq-elpi/default.nix
@@ -2,9 +2,14 @@
 
 let params = {
   "8.11" = rec {
-    version = "1.4.1";
+    version = "1.6.0_8.11";
     rev = "v${version}";
-    sha256 = "12jwldcianai62y9jnghsjfya5dj6fvc6ilf37c7w037kylx45sd";
+    sha256 = "0ahxjnzmd7kl3gl38kyjqzkfgllncr2ybnw8bvgrc6iddgga7bpq";
+  };
+  "8.12" = rec {
+    version = "1.6.0";
+    rev = "v${version}";
+    sha256 = "0kf99i43mlf750fr7fric764mm495a53mg5kahnbp6zcjcxxrm0b";
   };
 };
   param = params.${coq.coq-version};
diff --git a/nixpkgs/pkgs/development/coq-modules/coq-ext-lib/default.nix b/nixpkgs/pkgs/development/coq-modules/coq-ext-lib/default.nix
index 17f9c2c46114..9cf30e277f3c 100644
--- a/nixpkgs/pkgs/development/coq-modules/coq-ext-lib/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/coq-ext-lib/default.nix
@@ -5,10 +5,11 @@ let params =
     "8.5"  = { version = "0.9.4";  sha256 = "1y66pamgsdxlq2w1338lj626ln70cwj7k53hxcp933g8fdsa4hp0"; };
     "8.6"  = { version = "0.9.5";  sha256 = "1b4cvz3llxin130g13calw5n1zmvi6wdd5yb8a41q7yyn2hd3msg"; };
     "8.7"  = { version = "0.9.7";  sha256 = "00v4bm4glv1hy08c8xsm467az6d1ashrznn8p2bmbmmp52lfg7ag"; };
-    "8.8"  = { version = "0.11.1"; sha256 = "0dmf1p9j8lm0hwaq0af18jxdwg869xi2jm8447zng7krrq3kvkg5"; };
-    "8.9"  = { version = "0.11.1"; sha256 = "0dmf1p9j8lm0hwaq0af18jxdwg869xi2jm8447zng7krrq3kvkg5"; };
-    "8.10" = { version = "0.11.1"; sha256 = "0dmf1p9j8lm0hwaq0af18jxdwg869xi2jm8447zng7krrq3kvkg5"; };
-    "8.11" = { version = "0.11.1"; sha256 = "0dmf1p9j8lm0hwaq0af18jxdwg869xi2jm8447zng7krrq3kvkg5"; };
+    "8.8" = { version = "0.11.2"; sha256 = "0iyka81g26x5n99xic7kqn8vxqjw8rz7vw9rs27iw04lf137vzv6"; };
+    "8.9" = { version = "0.11.2"; sha256 = "0iyka81g26x5n99xic7kqn8vxqjw8rz7vw9rs27iw04lf137vzv6"; };
+    "8.10" = { version = "0.11.2"; sha256 = "0iyka81g26x5n99xic7kqn8vxqjw8rz7vw9rs27iw04lf137vzv6"; };
+    "8.11" = { version = "0.11.2"; sha256 = "0iyka81g26x5n99xic7kqn8vxqjw8rz7vw9rs27iw04lf137vzv6"; };
+    "8.12" = { version = "0.11.2"; sha256 = "0iyka81g26x5n99xic7kqn8vxqjw8rz7vw9rs27iw04lf137vzv6"; };
   };
   param = params.${coq.coq-version};
 in
diff --git a/nixpkgs/pkgs/development/coq-modules/coq-extensible-records/default.nix b/nixpkgs/pkgs/development/coq-modules/coq-extensible-records/default.nix
deleted file mode 100644
index 531c15287616..000000000000
--- a/nixpkgs/pkgs/development/coq-modules/coq-extensible-records/default.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-{ stdenv, fetchFromGitHub, coq }:
-
-let
-  versions = {
-    pre_8_9 = {
-      owner   = "gmalecha";
-      rev     = "1.2.0";
-      version = "1.2.0";
-      sha256  = "0h5m04flqfk0v577syw0v1dw2wf7xrx6jaxv5gpmqzssf5hxafy4";
-    };
-    post_8_9 = {
-      owner   = "Ptival";
-      rev     = "bd7082a3571ee3c111096ff6b5eb28c8d3a99ce5";
-      version = "1.2.0+8.9-fix";
-      sha256  = "0625qd8pyxi0v704fwnawrfw5fk966vnk120il0g6qv42siyck95";
-    };
-  };
-  params =
-    {
-      "8.5"  = versions.pre_8_9;
-      "8.6"  = versions.pre_8_9;
-      "8.7"  = versions.pre_8_9;
-      "8.8"  = versions.pre_8_9;
-      "8.9"  = versions.post_8_9;
-      "8.10" = versions.post_8_9;
-    };
-  param = params.${coq.coq-version};
-in
-
-stdenv.mkDerivation rec {
-  inherit (param) version;
-  name = "coq${coq.coq-version}-coq-extensible-records-${version}";
-
-  src = fetchFromGitHub {
-    inherit (param) owner rev sha256;
-    repo = "coq-extensible-records";
-  };
-
-  buildInputs = [ coq ];
-
-  enableParallelBuilding = true;
-
-  installPhase = ''
-    make -f Makefile.coq COQLIB=$out/lib/coq/${coq.coq-version}/ install
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/gmalecha/coq-extensible-records";
-    description = "Implementation of extensible records in Coq";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ptival ];
-    platforms = coq.meta.platforms;
-  };
-
-  passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.5" "8.6" "8.7" "8.8" "8.9" "8.10" ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/coq-modules/coqhammer/default.nix b/nixpkgs/pkgs/development/coq-modules/coqhammer/default.nix
index 16813ac4f119..56fce9ac526f 100644
--- a/nixpkgs/pkgs/development/coq-modules/coqhammer/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/coqhammer/default.nix
@@ -13,12 +13,16 @@ let
       buildInputs = [ coq.ocamlPackages.camlp5 ];
     };
     "8.10" = {
-      version = "1.2";
-      sha256 = "1ir313mmkgp2c65wgw8c681a15clvri1wb1hyjqmj7ymx4shkl56";
+      version = "1.3";
+      sha256 = "1fj8497ir4m79hyrmmmmrag01001wrby0h24wv6525vz0w5py3cd";
     };
     "8.11" = {
-      version = "1.2";
-      sha256 = "1w317h7r5llyamzn1kqb8j6p5sxks2j8vq8wnpzrx01jqbyibxgy";
+      version = "1.3";
+      sha256 = "08zf8qfna7b9p2myfaz4g7bas3a1q1156x78n5isqivlnqfrjc1b";
+    };
+    "8.12" = {
+      version = "1.3";
+      sha256 = "1q1y3cwhd98pkm98g71fsdjz85bfwgcz2xn7s7wwmiraifv5l6z8";
     };
   };
   param = params.${coq.coq-version};
diff --git a/nixpkgs/pkgs/development/coq-modules/coqprime/default.nix b/nixpkgs/pkgs/development/coq-modules/coqprime/default.nix
index a049fa94d415..f16341ddbd1b 100644
--- a/nixpkgs/pkgs/development/coq-modules/coqprime/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/coqprime/default.nix
@@ -6,6 +6,10 @@ let
           version = "8.8";
           sha256 = "075yjczk79pf1hd3lgdjiz84ilkzfxjh18lgzrhhqp7d3kz5lxp5";
         };
+        v_8_10 = {
+          version = "8.10";
+          sha256 = "0r9gnh5a5ykiiz5h1i8xnzgiydpwc4z9qhndxyya85xq0f910qaz";
+        };
     in
       {
         "8.7" = {
@@ -14,10 +18,12 @@ let
         };
         "8.8" = v_8_8;
         "8.9" = v_8_8;
-        "8.10" = {
-          version = "8.10";
-          sha256 = "0r9gnh5a5ykiiz5h1i8xnzgiydpwc4z9qhndxyya85xq0f910qaz";
-        };
+        "8.10" = v_8_10;
+        "8.11" = v_8_10;
+	"8.12" = {
+	  version = "8.12";
+          sha256 = "1slka4w0pya15js4drx9frj7lxyp3k2lzib8v23givzpnxs8ijdj";
+	};
       };
   param = params.${coq.coq-version};
 in
diff --git a/nixpkgs/pkgs/development/coq-modules/coquelicot/default.nix b/nixpkgs/pkgs/development/coq-modules/coquelicot/default.nix
index 2eb3021ada73..e45077f89fdd 100644
--- a/nixpkgs/pkgs/development/coq-modules/coquelicot/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/coquelicot/default.nix
@@ -3,9 +3,9 @@
 let param =
   if stdenv.lib.versionAtLeast coq.coq-version "8.8"
   then {
-    version = "3.0.3";
-    uid = "38105";
-    sha256 = "0y52lqx1jphv6fwf0d702vzprxmfmxggnh1hy3fznxyl4isfpg4j";
+    version = "3.1.0";
+    uid = "38287";
+    sha256 = "07436wkvnq9jyf7wyhp77bpl157s3qhba1ay5xrkxdi26qdf3h14";
   } else {
     version = "3.0.2";
     uid = "37523";
@@ -37,7 +37,7 @@ stdenv.mkDerivation {
   };
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.5" "8.6" "8.7" "8.8" "8.9" "8.10" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.5" "8.6" "8.7" "8.8" "8.9" "8.10" "8.11" "8.12" ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/coq-modules/dpdgraph/default.nix b/nixpkgs/pkgs/development/coq-modules/dpdgraph/default.nix
index 689745003df2..54654f37bac8 100644
--- a/nixpkgs/pkgs/development/coq-modules/dpdgraph/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/dpdgraph/default.nix
@@ -1,6 +1,10 @@
 { stdenv, fetchFromGitHub, autoreconfHook, coq }:
 
 let params = {
+  "8.12" = {
+    version = "0.6.8";
+    sha256 = "1mj6sknsd53xfb387sp3kdwvl4wn80ck24bfzf3s6mgw1a12vyps";
+  };
   "8.11" = {
     version = "0.6.7";
     sha256 = "01vpi7scvkl4ls1z2k2x9zd65wflzb667idj759859hlz3ps9z09";
diff --git a/nixpkgs/pkgs/development/coq-modules/equations/default.nix b/nixpkgs/pkgs/development/coq-modules/equations/default.nix
index 060fa3b4c81e..5a07d537536c 100644
--- a/nixpkgs/pkgs/development/coq-modules/equations/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/equations/default.nix
@@ -33,9 +33,15 @@ let
     };
 
     "8.11" = {
-      version = "1.2.1";
-      rev = "v1.2.1-8.11";
-      sha256 = "06k0h7lansxs479is3vj5ikg8s5k4c6svnqcwmxbni4wx8bhmg17";
+      version = "1.2.3";
+      rev = "v1.2.3-8.11";
+      sha256 = "1srxz1rws8jsh7402g2x2vcqgjbbsr64dxxj5d2zs48pmhb20csf";
+    };
+
+    "8.12" = {
+      version = "1.2.3";
+      rev = "v1.2.3-8.12";
+      sha256 = "1y0jkvzyz5ssv5vby41p1i8zs7nsdc8g3pzyq73ih9jz8h252643";
     };
   };
   param = params.${coq.coq-version};
diff --git a/nixpkgs/pkgs/development/coq-modules/gappalib/default.nix b/nixpkgs/pkgs/development/coq-modules/gappalib/default.nix
index eb431b9faf25..f6109398da8e 100644
--- a/nixpkgs/pkgs/development/coq-modules/gappalib/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/gappalib/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchurl, which, coq, flocq }:
 
 stdenv.mkDerivation {
-  name = "coq${coq.coq-version}-gappalib-1.4.3";
+  name = "coq${coq.coq-version}-gappalib-1.4.4";
   src = fetchurl {
-    url = "https://gforge.inria.fr/frs/download.php/file/38302/gappalib-coq-1.4.3.tar.gz";
-    sha256 = "108k9dks04wbcqz38pf0zz11hz5imbzimpnkgjrk5gp1hifih370";
+    url = "https://gforge.inria.fr/frs/download.php/file/38338/gappalib-coq-1.4.4.tar.gz";
+    sha256 = "1ds9qp3ml07w5ali0rsczlwgdx4xcgasgbcnpi2lssgj1xpxgfpn";
   };
 
   nativeBuildInputs = [ which ];
@@ -24,7 +24,7 @@ stdenv.mkDerivation {
   };
 
   passthru = {
-    compatibleCoqVersions = stdenv.lib.flip builtins.elem [ "8.8" "8.9" "8.10" "8.11" ];
+    compatibleCoqVersions = stdenv.lib.flip builtins.elem [ "8.8" "8.9" "8.10" "8.11" "8.12" ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/coq-modules/hierarchy-builder/default.nix b/nixpkgs/pkgs/development/coq-modules/hierarchy-builder/default.nix
index ed14217d4f35..9be8459ee9f0 100644
--- a/nixpkgs/pkgs/development/coq-modules/hierarchy-builder/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/hierarchy-builder/default.nix
@@ -2,14 +2,15 @@
 
 let
   versions = {
-      "0.9.1" =  {
-        rev = "v0.9.1";
-        sha256 = "00fibahkmvisr16ffaxfrc00gcijsv9rgk4v8ibmy1jv0iyk875b";
+      "0.10.0" =  {
+        rev = "v0.10.0";
+        sha256 = "1a3vry9nzavrlrdlq3cys3f8kpq3bz447q8c4c7lh2qal61wb32h";
       };
   };
   version = x: versions.${x} // {version = x;};
   params = {
-   "8.11" = version "0.9.1";
+   "8.11" = version "0.10.0";
+   "8.12" = version "0.10.0";
   };
   param = params.${coq.coq-version};
 in
diff --git a/nixpkgs/pkgs/development/coq-modules/interval/default.nix b/nixpkgs/pkgs/development/coq-modules/interval/default.nix
index 9e78a9f38829..e72fe7845c84 100644
--- a/nixpkgs/pkgs/development/coq-modules/interval/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/interval/default.nix
@@ -2,23 +2,41 @@
 , bignums ? null }:
 
 let params =
-  if stdenv.lib.versionAtLeast coq.coq-version "8.7" then {
-    version = "3.4.1";
-    uid = "38104";
-    sha256 = "1zklv2w34k866fpwmw8q692mid5n6s75d2mmhhigrzpx5l3d4z6y";
-  } else {
+  let
+  v3_3 = {
     version = "3.3.0";
     uid = "37077";
     sha256 = "08fdcf3hbwqphglvwprvqzgkg0qbimpyhnqsgv3gac4y1ap0f903";
-  }
-; in
+  };
+  v3_4 = {
+    version = "3.4.2";
+    uid = "38288";
+    sha256 = "00bgzbji0gkazwxhs4q8gz4ccqsa1y1r0m0ravr18ps2h8a8qva5";
+  };
+  v4_0 = {
+    version = "4.0.0";
+    uid = "38339";
+    sha256 = "19sbrv7jnzyxji7irfslhr9ralc0q3gx20nymig5vqbn3vssmgpz";
+  };
+  in {
+    "8.5" = v3_3;
+    "8.6" = v3_3;
+    "8.7" = v3_4;
+    "8.8" = v4_0;
+    "8.9" = v4_0;
+    "8.10" = v4_0;
+    "8.11" = v4_0;
+    "8.12" = v4_0;
+  };
+  param = params."${coq.coq-version}";
+in
 
 stdenv.mkDerivation {
-  name = "coq${coq.coq-version}-interval-${params.version}";
+  name = "coq${coq.coq-version}-interval-${param.version}";
 
   src = fetchurl {
-    url = "https://gforge.inria.fr/frs/download.php/file/${params.uid}/interval-${params.version}.tar.gz";
-    inherit (params) sha256;
+    url = "https://gforge.inria.fr/frs/download.php/file/${param.uid}/interval-${param.version}.tar.gz";
+    inherit (param) sha256;
   };
 
   nativeBuildInputs = [ which ];
@@ -38,8 +56,7 @@ stdenv.mkDerivation {
   };
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.5" "8.6" "8.7" "8.8" "8.9" "8.10" ];
+    compatibleCoqVersions = stdenv.lib.flip builtins.hasAttr params;
   };
 
-
 }
diff --git a/nixpkgs/pkgs/development/coq-modules/iris/default.nix b/nixpkgs/pkgs/development/coq-modules/iris/default.nix
index 0718e518b35c..6826e07d613e 100644
--- a/nixpkgs/pkgs/development/coq-modules/iris/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/iris/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitLab, coq, stdpp }:
 
 stdenv.mkDerivation rec {
-  version = "3.2.0";
+  version = "3.3.0";
   name = "coq${coq.coq-version}-iris-${version}";
   src = fetchFromGitLab {
     domain = "gitlab.mpi-sws.org";
     owner = "iris";
     repo = "iris";
     rev = "iris-${version}";
-    sha256 = "10dfi7qx6j5w6kbmbrf05xh18jwxr9iz5g7y0f6157msgvl081xs";
+    sha256 = "0az4gkp5m8sq0p73dlh0r7ckkzhk7zkg5bndw01bdsy5ywj0vilp";
   };
 
   buildInputs = [ coq ];
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.7" "8.8" "8.9" "8.10" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.9" "8.10" "8.11" "8.12" ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/coq-modules/math-classes/default.nix b/nixpkgs/pkgs/development/coq-modules/math-classes/default.nix
index 9ab77418cce1..73e420b326d9 100644
--- a/nixpkgs/pkgs/development/coq-modules/math-classes/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/math-classes/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
 
   name = "coq${coq.coq-version}-math-classes-${version}";
-  version = "8.9.1";
+  version = "8.11.0";
 
   src = fetchFromGitHub {
     owner = "coq-community";
     repo = "math-classes";
     rev = version;
-    sha256 = "1lw89js07m1wcaycpnyd85sf0snil2rrsfmry9lna2x66ah1mzn5";
+    sha256 = "1hjgncvm1m46lw6264w4dqsy8dbh74vhmzq52x0fba2yqlvy94sf";
   };
 
   buildInputs = [ coq bignums ];
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.6" "8.7" "8.8" "8.9" "8.10" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.6" "8.7" "8.8" "8.9" "8.10" "8.11" ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/coq-modules/mathcomp/default.nix b/nixpkgs/pkgs/development/coq-modules/mathcomp/default.nix
index d4d5f924f52f..8cf502a1943b 100644
--- a/nixpkgs/pkgs/development/coq-modules/mathcomp/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/mathcomp/default.nix
@@ -76,8 +76,8 @@ let
     };
     # versions of coq compatible with released mathcomp versions
     coq-versions     = {
-      "1.11.0"       = flip elem [ "8.7" "8.8" "8.9" "8.10" "8.11" ];
-      "1.11+beta1"   = flip elem [ "8.7" "8.8" "8.9" "8.10" "8.11" ];
+      "1.11.0"       = flip elem [ "8.7" "8.8" "8.9" "8.10" "8.11" "8.12" ];
+      "1.11+beta1"   = flip elem [ "8.7" "8.8" "8.9" "8.10" "8.11" "8.12" ];
       "1.10.0"       = flip elem [ "8.7" "8.8" "8.9" "8.10" "8.11" ];
       "1.9.0"        = flip elem [ "8.7" "8.8" "8.9" "8.10" ];
       "1.8.0"        = flip elem [ "8.7" "8.8" "8.9" ];
diff --git a/nixpkgs/pkgs/development/coq-modules/metalib/default.nix b/nixpkgs/pkgs/development/coq-modules/metalib/default.nix
index a0268a543a5a..862184c1460c 100644
--- a/nixpkgs/pkgs/development/coq-modules/metalib/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/metalib/default.nix
@@ -1,46 +1,23 @@
-{ stdenv, fetchgit, coq, haskellPackages, which, ott
-}:
+{ stdenv, fetchFromGitHub, coq }:
 
 stdenv.mkDerivation rec {
-  name = "metalib-${coq.coq-version}-${version}";
-  version = "20170713";
-
-  src = fetchgit {
-    url = "https://github.com/plclub/metalib.git";
-    rev = "44e40aa082452dd333fc1ca2d2cc55311519bd52";
-    sha256 = "1pra0nvx69q8d4bvpcvh9ngic1cy6z1chi03x56nisfqnc61b6y9";
+  name = "coq${coq.coq-version}-metalib-${version}";
+  version = "20200527";
+
+  src = fetchFromGitHub {
+    owner = "plclub";
+    repo = "metalib";
+    rev = "597fd7d0c93eb159274e84a39d554f10f1efccf8";
+    sha256 = "0wbypc05d2lqfm9qaw98ynr5yc1p0ipsvyc3bh1rk9nz7zwirmjs";
   };
 
-  # The 'lngen' command-line utility is built from Haskell sources
-  lngen = with haskellPackages; mkDerivation {
-    pname = "lngen";
-    version = "0.0.1";
-    src = fetchgit {
-      url = "https://github.com/plclub/lngen";
-      rev = "ea73ad315de33afd25f87ca738c71f358f1cd51c";
-      sha256 = "1a0sj8n3lmsl1wlnqfy176k9lb9s8rl422bvg3ihl2i70ql8wisd";
-    };
-    isLibrary = true;
-    isExecutable = true;
-    libraryHaskellDepends = [ base containers mtl parsec syb ];
-    executableHaskellDepends = [ base ];
-    homepage = "https://github.com/plclub/lngen";
-    description = "Tool for generating Locally Nameless definitions and proofs in Coq, working together with Ott";
-    license = stdenv.lib.licenses.mit;
-  };
+  sourceRoot = "source/Metalib";
 
-  buildInputs = with coq.ocamlPackages; [ ocaml camlp5 which coq lngen ott findlib ];
-  propagatedBuildInputs = [ coq ];
+  buildInputs = [ coq ];
 
   enableParallelBuilding = true;
 
-  buildPhase = ''
-    (cd Metalib; make)
-  '';
-
-  installPhase = ''
-    (cd Metalib; make -f CoqSrc.mk DSTROOT=/ COQLIB=$out/lib/coq/${coq.coq-version}/ install)
-  '';
+  installFlags = "COQMF_COQLIB=$(out)/lib/coq/${coq.coq-version}";
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/plclub/metalib";
@@ -50,7 +27,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.6" "8.7" "8.8" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.10" "8.11" "8.12" ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/coq-modules/paco/default.nix b/nixpkgs/pkgs/development/coq-modules/paco/default.nix
index 9d8a7a315a55..e8958fa1ada5 100644
--- a/nixpkgs/pkgs/development/coq-modules/paco/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/paco/default.nix
@@ -21,6 +21,7 @@ let
     "8.9" = versions.post_8_6;
     "8.10" = versions.post_8_6;
     "8.11" = versions.post_8_6;
+    "8.12" = versions.post_8_6;
   };
   param = params.${coq.coq-version};
 in
diff --git a/nixpkgs/pkgs/development/coq-modules/paramcoq/default.nix b/nixpkgs/pkgs/development/coq-modules/paramcoq/default.nix
index 67e420b4e89e..12d65bdb3d7b 100644
--- a/nixpkgs/pkgs/development/coq-modules/paramcoq/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/paramcoq/default.nix
@@ -20,6 +20,9 @@ let params =
     "8.11" = {
       sha256 = "09c6813988nvq4fpa45s33k70plnhxsblhm7cxxkg0i37mhvigsa";
     };
+    "8.12" = {
+      sha256 = "0qd72r45if4h7c256qdfiimv75zyrs0w0xqij3m866jxaq591v4i";
+    };
   };
   param = params.${coq.coq-version};
 in
diff --git a/nixpkgs/pkgs/development/coq-modules/simple-io/default.nix b/nixpkgs/pkgs/development/coq-modules/simple-io/default.nix
index 07ce35875d1f..82fa215ee9ca 100644
--- a/nixpkgs/pkgs/development/coq-modules/simple-io/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/simple-io/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchFromGitHub, coq, coq-ext-lib }:
 
 stdenv.mkDerivation rec {
-  version = "1.2.0";
+  version = "1.3.0";
   name = "coq${coq.coq-version}-simple-io-${version}";
   src = fetchFromGitHub {
     owner = "Lysxia";
     repo = "coq-simple-io";
     rev = version;
-    sha256 = "1im1vwp7l7ha8swnhgbih0qjg187n8yx14i003nf6yy7p0ryxc9m";
+    sha256 = "1yp7ca36jyl9kz35ghxig45x6cd0bny2bpmy058359p94wc617ax";
   };
 
   buildInputs = [ coq ] ++ (with coq.ocamlPackages; [ ocaml ocamlbuild ]);
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.7" "8.8" "8.9" "8.10" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.7" "8.8" "8.9" "8.10" "8.11" "8.12" ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/coq-modules/stdpp/default.nix b/nixpkgs/pkgs/development/coq-modules/stdpp/default.nix
index 3ba99e87ffb6..28917e73f29f 100644
--- a/nixpkgs/pkgs/development/coq-modules/stdpp/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/stdpp/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "coq${coq.coq-version}-stdpp-${version}";
-  version = "1.2.1";
+  version = "1.4.0";
   src = fetchFromGitLab {
     domain = "gitlab.mpi-sws.org";
     owner = "iris";
     repo = "stdpp";
     rev = "coq-stdpp-${version}";
-    sha256 = "1lczybg1jq9drbi8nzrlb0k199x4n07aawjwfzrl3qqc0w8kmvdz";
+    sha256 = "1m6c7ibwc99jd4cv14v3r327spnfvdf3x2mnq51f9rz99rffk68r";
   };
 
   buildInputs = [ coq ];
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.7" "8.8" "8.9" "8.10" ];
+    compatibleCoqVersions = v: builtins.elem v [ "8.8" "8.9" "8.10" "8.11" "8.12" ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/coq-modules/tlc/default.nix b/nixpkgs/pkgs/development/coq-modules/tlc/default.nix
index 8a10dc388db4..816b22050244 100644
--- a/nixpkgs/pkgs/development/coq-modules/tlc/default.nix
+++ b/nixpkgs/pkgs/development/coq-modules/tlc/default.nix
@@ -1,13 +1,27 @@
-{ stdenv, fetchurl, coq }:
+{ stdenv, fetchurl, fetchFromGitHub, coq }:
 
-stdenv.mkDerivation rec {
-  version = "20181116";
-  name = "coq${coq.coq-version}-tlc-${version}";
+let params =
+  if stdenv.lib.versionAtLeast coq.coq-version "8.10"
+  then rec {
+    version = "20200328";
+    src = fetchFromGitHub {
+      owner = "charguer";
+      repo = "tlc";
+      rev = version;
+      sha256 = "16vzild9gni8zhgb3qhmka47f8zagdh03k6nssif7drpim8233lx";
+    };
+  } else rec {
+    version = "20181116";
+    src = fetchurl {
+      url = "http://tlc.gforge.inria.fr/releases/tlc-${version}.tar.gz";
+      sha256 = "0iv6f6zmrv2lhq3xq57ipmw856ahsql754776ymv5wjm88ld63nm";
+    };
+  }
+; in
 
-  src = fetchurl {
-    url = "http://tlc.gforge.inria.fr/releases/tlc-${version}.tar.gz";
-    sha256 = "0iv6f6zmrv2lhq3xq57ipmw856ahsql754776ymv5wjm88ld63nm";
-  };
+stdenv.mkDerivation {
+  inherit (params) version src;
+  pname = "coq${coq.coq-version}-tlc";
 
   buildInputs = [ coq ];
 
@@ -22,6 +36,6 @@ stdenv.mkDerivation rec {
   };
 
   passthru = {
-    compatibleCoqVersions = stdenv.lib.flip builtins.elem [ "8.6" "8.7" "8.8" "8.9" "8.10" ];
+    compatibleCoqVersions = stdenv.lib.flip builtins.elem [ "8.6" "8.7" "8.8" "8.9" "8.10" "8.11" "8.12" ];
   };
 }
diff --git a/nixpkgs/pkgs/development/dotnet-modules/python-language-server/default.nix b/nixpkgs/pkgs/development/dotnet-modules/python-language-server/default.nix
index 77154485118e..286037b2cce2 100644
--- a/nixpkgs/pkgs/development/dotnet-modules/python-language-server/default.nix
+++ b/nixpkgs/pkgs/development/dotnet-modules/python-language-server/default.nix
@@ -11,7 +11,7 @@
 
 let deps = import ./deps.nix { inherit fetchurl; };
 
-    version = "2020-04-24";
+    version = "2020-06-19";
 
     # Build the nuget source needed for the later build all by itself
     # since it's a time-consuming step that only depends on ./deps.nix.
@@ -49,8 +49,8 @@ stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "python-language-server";
-    rev = "d480cd12649dcff78ed271c92c274fab60c00f2f";
-    sha256 = "0p2sw6w6fymdlxn8r5ndvija2l7rd77f5rddq9n71dxj1nicljh3";
+    rev = "838ba78e00173d639bd90f54d8610ec16b4ba3a2";
+    sha256 = "0nj8l1apcb67gqwy5i49v0f01fs4lvdfmmp4w2hvrpss9if62c1m";
   };
 
   buildInputs = [dotnet-sdk_3 openssl icu];
diff --git a/nixpkgs/pkgs/development/dotnet-modules/python-language-server/deps.nix b/nixpkgs/pkgs/development/dotnet-modules/python-language-server/deps.nix
index 803f33f892d5..6a494e7e5214 100644
--- a/nixpkgs/pkgs/development/dotnet-modules/python-language-server/deps.nix
+++ b/nixpkgs/pkgs/development/dotnet-modules/python-language-server/deps.nix
@@ -29,24 +29,6 @@ in [
   })
 
   (fetchNuGet {
-    name = "LiteDB";
-    version = "4.1.4";
-    sha256 = "1g9258mv3jm9ps2s5wcxbmszh9nqiiw3d9nrfqis8x72jqiqi6js";
-  })
-
-  (fetchNuGet {
-    name = "MSTest.TestAdapter";
-    version = "2.1.0";
-    sha256 = "1g1v8yjnk4nr1c36k3cz116889bnpiw1i1jkmqnpb19wms7sq7cz";
-  })
-
-  (fetchNuGet {
-    name = "MSTest.TestFramework";
-    version = "2.1.0";
-    sha256 = "0mac4h7ylw953chclhz0lrn19yks3bab9dn9x9fpjqi7309gid0p";
-  })
-
-  (fetchNuGet {
     name = "MessagePack";
     version = "2.1.90";
     sha256 = "1j5wjl7aq7nn5ga3j6zaaivdf2wlfyd7w66ak0i7krgrmv26lb8i";
@@ -72,26 +54,14 @@ in [
 
   (fetchNuGet {
     name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
-    version = "3.0.2";
-    sha256 = "0d4r744n3bk4v7ddfjpy5ils150h0693bil3c7v27n84037hqndj";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
     version = "3.0.3";
     sha256 = "1jcqy8i9fzb1pmkazi80yqr09zi5nk30n57i46ggr5ky45jngfq9";
   })
 
   (fetchNuGet {
     name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
-    version = "3.1.2";
-    sha256 = "19wfh9yg4n2khbl7pvf6ngx95m5p8lw4l9y935pv7nh4xgwk02p9";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
-    version = "3.1.3";
-    sha256 = "0kvnzb9xjii48kg30ac63qdf0fn1y8j3nblbrfaqv2aiy6kp0iwn";
+    version = "3.1.8";
+    sha256 = "140zr3nwkmf6xc52gq4iz6ycyh95fxy0jpgn637pkd9z423z8135";
   })
 
   (fetchNuGet {
@@ -101,111 +71,93 @@ in [
   })
 
   (fetchNuGet {
-    name = "Microsoft.CSharp";
-    version = "4.0.1";
-    sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj";
-  })
-
-  (fetchNuGet {
     name = "Microsoft.CodeCoverage";
     version = "16.5.0";
     sha256 = "0610wzn4qyywf9lb4538vwqhprxc4g0g7gjbmnjzvx97jr5nd5mf";
   })
 
   (fetchNuGet {
-    name = "Microsoft.Extensions.FileSystemGlobbing";
-    version = "3.1.2";
-    sha256 = "1zwvzp0607irs7irfbq8vnclg5nj2jpyggw9agm4a32la5ngg27m";
+    name = "Microsoft.CSharp";
+    version = "4.0.1";
+    sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj";
   })
 
   (fetchNuGet {
-    name = "Microsoft.NET.Test.Sdk";
-    version = "16.5.0";
-    sha256 = "19f5bvzci5mmfz81jwc4dax4qdf7w4k67n263383mn8mawf22bfq";
+    name = "Microsoft.Extensions.FileSystemGlobbing";
+    version = "3.1.2";
+    sha256 = "1zwvzp0607irs7irfbq8vnclg5nj2jpyggw9agm4a32la5ngg27m";
   })
 
   (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
-    version = "1.1.0";
-    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+    name = "Microsoft.NetCore.App.Host.linux-x64";
+    version = "3.0.3";
+    sha256 = "19igfvwsjzwkh90gqzabl6pdkyygslj2iwpsxg680phffzr411w4";
   })
 
   (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
-    version = "1.1.1";
-    sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj";
+    name = "Microsoft.NetCore.App.Host.linux-x64";
+    version = "3.1.8";
+    sha256 = "0iawz5mqaf1c4r5cf0ks4wqhgpbqi185l80q4909axh516xsjnvs";
   })
 
   (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
-    version = "2.0.0";
-    sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0";
+    name = "Microsoft.NetCore.App.Ref";
+    version = "3.0.0";
+    sha256 = "1qi382157ln7yngazvr3nskpjkab4x8sqx11l13xyg56vyyjyyiw";
   })
 
   (fetchNuGet {
-    name = "Microsoft.NETCore.Platforms";
+    name = "Microsoft.NetCore.App.Ref";
     version = "3.1.0";
-    sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NETCore.Targets";
-    version = "1.1.0";
-    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
-  })
-
-  (fetchNuGet {
-    name = "Microsoft.NetCore.App.Host.linux-x64";
-    version = "3.0.2";
-    sha256 = "0y14y2x3wbi44i23ndmf4323cii8wrqw9s289gcab3s393l71sf5";
+    sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y";
   })
 
   (fetchNuGet {
-    name = "Microsoft.NetCore.App.Host.linux-x64";
+    name = "Microsoft.NetCore.App.Runtime.linux-x64";
     version = "3.0.3";
-    sha256 = "19igfvwsjzwkh90gqzabl6pdkyygslj2iwpsxg680phffzr411w4";
+    sha256 = "1ykgfnphbkyck0gqbbh5n96w59z2bq47g896ygal1j4nblj3s44v";
   })
 
   (fetchNuGet {
-    name = "Microsoft.NetCore.App.Host.linux-x64";
-    version = "3.1.3";
-    sha256 = "013ibnhsimgqj5l2dqma035xvsvrb47bn65z6xbxgg88383hpgvw";
+    name = "Microsoft.NetCore.App.Runtime.linux-x64";
+    version = "3.1.8";
+    sha256 = "1bv9n9wzsqf9g8h6z10p61xkcx8ad4nnip83qv8yyfvhr4kdmbsa";
   })
 
   (fetchNuGet {
-    name = "Microsoft.NetCore.App.Ref";
-    version = "3.0.0";
-    sha256 = "1qi382157ln7yngazvr3nskpjkab4x8sqx11l13xyg56vyyjyyiw";
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.1.0";
+    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
   })
 
   (fetchNuGet {
-    name = "Microsoft.NetCore.App.Ref";
-    version = "3.1.0";
-    sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y";
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.1.1";
+    sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj";
   })
 
   (fetchNuGet {
-    name = "Microsoft.NetCore.App.Runtime.linux-x64";
-    version = "3.0.2";
-    sha256 = "1h6d0nl495k0bh4my43l578l7m8qwah7ll42aax7jrib2py354f1";
+    name = "Microsoft.NETCore.Platforms";
+    version = "2.0.0";
+    sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0";
   })
 
   (fetchNuGet {
-    name = "Microsoft.NetCore.App.Runtime.linux-x64";
-    version = "3.0.3";
-    sha256 = "1ykgfnphbkyck0gqbbh5n96w59z2bq47g896ygal1j4nblj3s44v";
+    name = "Microsoft.NETCore.Platforms";
+    version = "3.1.0";
+    sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j";
   })
 
   (fetchNuGet {
-    name = "Microsoft.NetCore.App.Runtime.linux-x64";
-    version = "3.1.2";
-    sha256 = "0a332ia5pabnz7mdfc99a5hlc7drnwzlc7cj9b5c3an6dq636p66";
+    name = "Microsoft.NETCore.Targets";
+    version = "1.1.0";
+    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
   })
 
   (fetchNuGet {
-    name = "Microsoft.NetCore.App.Runtime.linux-x64";
-    version = "3.1.3";
-    sha256 = "1ynhzsr8a0hfby2wjhzkdiimj18izgfzp7m2yp3pby2iwb4v3xy9";
+    name = "Microsoft.NET.Test.Sdk";
+    version = "16.5.0";
+    sha256 = "19f5bvzci5mmfz81jwc4dax4qdf7w4k67n263383mn8mawf22bfq";
   })
 
   (fetchNuGet {
@@ -269,21 +221,15 @@ in [
   })
 
   (fetchNuGet {
-    name = "NETStandard.Library";
-    version = "1.6.1";
-    sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
-  })
-
-  (fetchNuGet {
-    name = "NETStandard.Library";
-    version = "2.0.3";
-    sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
+    name = "MSTest.TestAdapter";
+    version = "2.1.0";
+    sha256 = "1g1v8yjnk4nr1c36k3cz116889bnpiw1i1jkmqnpb19wms7sq7cz";
   })
 
   (fetchNuGet {
-    name = "NSubstitute";
-    version = "4.2.1";
-    sha256 = "0wgfjh032qds994fmgxvsg88nhgjrx7p9rnv6z678jm62qi14asy";
+    name = "MSTest.TestFramework";
+    version = "2.1.0";
+    sha256 = "0mac4h7ylw953chclhz0lrn19yks3bab9dn9x9fpjqi7309gid0p";
   })
 
   (fetchNuGet {
@@ -293,9 +239,15 @@ in [
   })
 
   (fetchNuGet {
-    name = "NewtonSoft.Json";
-    version = "12.0.3";
-    sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x";
+    name = "NETStandard.Library";
+    version = "1.6.1";
+    sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
+  })
+
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "2.0.3";
+    sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
   })
 
   (fetchNuGet {
@@ -311,18 +263,342 @@ in [
   })
 
   (fetchNuGet {
+    name = "NewtonSoft.Json";
+    version = "12.0.3";
+    sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x";
+  })
+
+  (fetchNuGet {
     name = "Newtonsoft.Json";
     version = "9.0.1";
     sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r";
   })
 
   (fetchNuGet {
+    name = "NSubstitute";
+    version = "4.2.1";
+    sha256 = "0wgfjh032qds994fmgxvsg88nhgjrx7p9rnv6z678jm62qi14asy";
+  })
+
+  (fetchNuGet {
     name = "NuGet.Frameworks";
     version = "5.0.0";
     sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr";
   })
 
   (fetchNuGet {
+    name = "runtime.any.System.Collections";
+    version = "4.3.0";
+    sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Diagnostics.Tools";
+    version = "4.3.0";
+    sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Diagnostics.Tracing";
+    version = "4.3.0";
+    sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Globalization";
+    version = "4.3.0";
+    sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Globalization.Calendars";
+    version = "4.3.0";
+    sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.IO";
+    version = "4.3.0";
+    sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection";
+    version = "4.3.0";
+    sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection.Extensions";
+    version = "4.3.0";
+    sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection.Primitives";
+    version = "4.3.0";
+    sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Resources.ResourceManager";
+    version = "4.3.0";
+    sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime";
+    version = "4.3.0";
+    sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime.Handles";
+    version = "4.3.0";
+    sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding.Extensions";
+    version = "4.3.0";
+    sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Threading.Tasks";
+    version = "4.3.0";
+    sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va";
+  })
+
+  (fetchNuGet {
+    name = "runtime.any.System.Threading.Timer";
+    version = "4.3.0";
+    sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086";
+  })
+
+  (fetchNuGet {
+    name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
+  })
+
+  (fetchNuGet {
+    name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i";
+  })
+
+  (fetchNuGet {
+    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
+  })
+
+  (fetchNuGet {
+    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "1n06gxwlinhs0w7s8a94r1q3lwqzvynxwd3mp10ws9bg6gck8n4r";
+  })
+
+  (fetchNuGet {
+    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
+  })
+
+  (fetchNuGet {
+    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "0404wqrc7f2yc0wxv71y3nnybvqx8v4j9d47hlscxy759a525mc3";
+  })
+
+  (fetchNuGet {
+    name = "runtime.native.System";
+    version = "4.3.0";
+    sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
+  })
+
+  (fetchNuGet {
+    name = "runtime.native.System.IO.Compression";
+    version = "4.3.0";
+    sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d";
+  })
+
+  (fetchNuGet {
+    name = "runtime.native.System.Net.Http";
+    version = "4.3.0";
+    sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk";
+  })
+
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography.Apple";
+    version = "4.3.0";
+    sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q";
+  })
+
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
+  })
+
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "0zy5r25jppz48i2bkg8b9lfig24xixg6nm3xyr1379zdnqnpm8f6";
+  })
+
+  (fetchNuGet {
+    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
+  })
+
+  (fetchNuGet {
+    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "096ch4n4s8k82xga80lfmpimpzahd2ip1mgwdqgar0ywbbl6x438";
+  })
+
+  (fetchNuGet {
+    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
+  })
+
+  (fetchNuGet {
+    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "1dm8fifl7rf1gy7lnwln78ch4rw54g0pl5g1c189vawavll7p6rj";
+  })
+
+  (fetchNuGet {
+    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple";
+    version = "4.3.0";
+    sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi";
+  })
+
+  (fetchNuGet {
+    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3";
+  })
+
+  (fetchNuGet {
+    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "1m9z1k9kzva9n9kwinqxl97x2vgl79qhqjlv17k9s2ymcyv2bwr6";
+  })
+
+  (fetchNuGet {
+    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
+  })
+
+  (fetchNuGet {
+    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "1cpx56mcfxz7cpn57wvj18sjisvzq8b5vd9rw16ihd2i6mcp3wa1";
+  })
+
+  (fetchNuGet {
+    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
+  })
+
+  (fetchNuGet {
+    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "15gsm1a8jdmgmf8j5v1slfz8ks124nfdhk2vxs2rw3asrxalg8hi";
+  })
+
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
+  })
+
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "0q0n5q1r1wnqmr5i5idsrd9ywl33k0js4pngkwq9p368mbxp8x1w";
+  })
+
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
+  })
+
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.2";
+    sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c";
+  })
+
+  (fetchNuGet {
+    name = "runtime.unix.Microsoft.Win32.Primitives";
+    version = "4.3.0";
+    sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id";
+  })
+
+  (fetchNuGet {
+    name = "runtime.unix.System.Console";
+    version = "4.3.0";
+    sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80";
+  })
+
+  (fetchNuGet {
+    name = "runtime.unix.System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5";
+  })
+
+  (fetchNuGet {
+    name = "runtime.unix.System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix";
+  })
+
+  (fetchNuGet {
+    name = "runtime.unix.System.Net.Primitives";
+    version = "4.3.0";
+    sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4";
+  })
+
+  (fetchNuGet {
+    name = "runtime.unix.System.Net.Sockets";
+    version = "4.3.0";
+    sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12";
+  })
+
+  (fetchNuGet {
+    name = "runtime.unix.System.Private.Uri";
+    version = "4.3.0";
+    sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk";
+  })
+
+  (fetchNuGet {
+    name = "runtime.unix.System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p";
+  })
+
+  (fetchNuGet {
     name = "StreamJsonRpc";
     version = "2.3.103";
     sha256 = "0z8ahxkbbrzsn56ylzlciriiid4bslf6y1rk49wzahwpvzlik1iw";
@@ -1006,316 +1282,4 @@ in [
     sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
   })
 
-  (fetchNuGet {
-    name = "runtime.any.System.Collections";
-    version = "4.3.0";
-    sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Diagnostics.Tools";
-    version = "4.3.0";
-    sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Diagnostics.Tracing";
-    version = "4.3.0";
-    sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Globalization";
-    version = "4.3.0";
-    sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Globalization.Calendars";
-    version = "4.3.0";
-    sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.IO";
-    version = "4.3.0";
-    sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Reflection";
-    version = "4.3.0";
-    sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Reflection.Extensions";
-    version = "4.3.0";
-    sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Reflection.Primitives";
-    version = "4.3.0";
-    sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Resources.ResourceManager";
-    version = "4.3.0";
-    sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Runtime";
-    version = "4.3.0";
-    sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Runtime.Handles";
-    version = "4.3.0";
-    sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Runtime.InteropServices";
-    version = "4.3.0";
-    sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Text.Encoding";
-    version = "4.3.0";
-    sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Text.Encoding.Extensions";
-    version = "4.3.0";
-    sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Threading.Tasks";
-    version = "4.3.0";
-    sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va";
-  })
-
-  (fetchNuGet {
-    name = "runtime.any.System.Threading.Timer";
-    version = "4.3.0";
-    sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086";
-  })
-
-  (fetchNuGet {
-    name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
-  })
-
-  (fetchNuGet {
-    name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "0rwpqngkqiapqc5c2cpkj7idhngrgss5qpnqg0yh40mbyflcxf8i";
-  })
-
-  (fetchNuGet {
-    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
-  })
-
-  (fetchNuGet {
-    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "1n06gxwlinhs0w7s8a94r1q3lwqzvynxwd3mp10ws9bg6gck8n4r";
-  })
-
-  (fetchNuGet {
-    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
-  })
-
-  (fetchNuGet {
-    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "0404wqrc7f2yc0wxv71y3nnybvqx8v4j9d47hlscxy759a525mc3";
-  })
-
-  (fetchNuGet {
-    name = "runtime.native.System";
-    version = "4.3.0";
-    sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
-  })
-
-  (fetchNuGet {
-    name = "runtime.native.System.IO.Compression";
-    version = "4.3.0";
-    sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d";
-  })
-
-  (fetchNuGet {
-    name = "runtime.native.System.Net.Http";
-    version = "4.3.0";
-    sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk";
-  })
-
-  (fetchNuGet {
-    name = "runtime.native.System.Security.Cryptography.Apple";
-    version = "4.3.0";
-    sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q";
-  })
-
-  (fetchNuGet {
-    name = "runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
-  })
-
-  (fetchNuGet {
-    name = "runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "0zy5r25jppz48i2bkg8b9lfig24xixg6nm3xyr1379zdnqnpm8f6";
-  })
-
-  (fetchNuGet {
-    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
-  })
-
-  (fetchNuGet {
-    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "096ch4n4s8k82xga80lfmpimpzahd2ip1mgwdqgar0ywbbl6x438";
-  })
-
-  (fetchNuGet {
-    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
-  })
-
-  (fetchNuGet {
-    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "1dm8fifl7rf1gy7lnwln78ch4rw54g0pl5g1c189vawavll7p6rj";
-  })
-
-  (fetchNuGet {
-    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple";
-    version = "4.3.0";
-    sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi";
-  })
-
-  (fetchNuGet {
-    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3";
-  })
-
-  (fetchNuGet {
-    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "1m9z1k9kzva9n9kwinqxl97x2vgl79qhqjlv17k9s2ymcyv2bwr6";
-  })
-
-  (fetchNuGet {
-    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
-  })
-
-  (fetchNuGet {
-    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "1cpx56mcfxz7cpn57wvj18sjisvzq8b5vd9rw16ihd2i6mcp3wa1";
-  })
-
-  (fetchNuGet {
-    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
-  })
-
-  (fetchNuGet {
-    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "15gsm1a8jdmgmf8j5v1slfz8ks124nfdhk2vxs2rw3asrxalg8hi";
-  })
-
-  (fetchNuGet {
-    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
-  })
-
-  (fetchNuGet {
-    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "0q0n5q1r1wnqmr5i5idsrd9ywl33k0js4pngkwq9p368mbxp8x1w";
-  })
-
-  (fetchNuGet {
-    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.0";
-    sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
-  })
-
-  (fetchNuGet {
-    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
-    version = "4.3.2";
-    sha256 = "1x0g58pbpjrmj2x2qw17rdwwnrcl0wvim2hdwz48lixvwvp22n9c";
-  })
-
-  (fetchNuGet {
-    name = "runtime.unix.Microsoft.Win32.Primitives";
-    version = "4.3.0";
-    sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id";
-  })
-
-  (fetchNuGet {
-    name = "runtime.unix.System.Console";
-    version = "4.3.0";
-    sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80";
-  })
-
-  (fetchNuGet {
-    name = "runtime.unix.System.Diagnostics.Debug";
-    version = "4.3.0";
-    sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5";
-  })
-
-  (fetchNuGet {
-    name = "runtime.unix.System.IO.FileSystem";
-    version = "4.3.0";
-    sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix";
-  })
-
-  (fetchNuGet {
-    name = "runtime.unix.System.Net.Primitives";
-    version = "4.3.0";
-    sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4";
-  })
-
-  (fetchNuGet {
-    name = "runtime.unix.System.Net.Sockets";
-    version = "4.3.0";
-    sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12";
-  })
-
-  (fetchNuGet {
-    name = "runtime.unix.System.Private.Uri";
-    version = "4.3.0";
-    sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk";
-  })
-
-  (fetchNuGet {
-    name = "runtime.unix.System.Runtime.Extensions";
-    version = "4.3.0";
-    sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p";
-  })
-
 ]
diff --git a/nixpkgs/pkgs/development/go-modules/generic/default.nix b/nixpkgs/pkgs/development/go-modules/generic/default.nix
index e19f6a153ca0..de7bd429dab8 100644
--- a/nixpkgs/pkgs/development/go-modules/generic/default.nix
+++ b/nixpkgs/pkgs/development/go-modules/generic/default.nix
@@ -1,4 +1,4 @@
-{ go, cacert, git, lib, removeReferencesTo, stdenv }:
+{ go, cacert, git, lib, removeReferencesTo, stdenv, vend }:
 
 let
   buildGoPackage =
@@ -22,8 +22,9 @@ let
     , vendorSha256
     # Whether to delete the vendor folder supplied with the source.
     , deleteVendor ? false
-
-    , modSha256 ? null
+    # Whether to run the vend tool to regenerate the vendor directory.
+    # This is useful if any dependency contain C files.
+    , runVend ? false
 
     # We want parallel builds by default
     , enableParallelBuilding ? true
@@ -50,6 +51,8 @@ let
 
       deleteFlag = if deleteVendor then "true" else "false";
 
+      vendCommand = if runVend then "${vend}/bin/vend" else "false";
+
       go-modules = if vendorSha256 != null then go.stdenv.mkDerivation (let modArgs = {
 
         name = "${name}-go-modules";
@@ -70,47 +73,58 @@ let
         ];
 
         configurePhase = args.modConfigurePhase or ''
-      runHook preConfigure
+          runHook preConfigure
 
-      export GOCACHE=$TMPDIR/go-cache
-      export GOPATH="$TMPDIR/go"
-      cd "${modRoot}"
-      runHook postConfigure
-    '';
+          export GOCACHE=$TMPDIR/go-cache
+          export GOPATH="$TMPDIR/go"
+          cd "${modRoot}"
+          runHook postConfigure
+        '';
 
         buildPhase = args.modBuildPhase or ''
-      runHook preBuild
+          runHook preBuild
+
+          if [ ${deleteFlag} == "true" ]; then
+            if [ ! -d vendor ]; then
+              echo "vendor folder does not exist, 'deleteVendor' is not needed"
+              exit 10
+            else
+              rm -rf vendor
+            fi
+          fi
 
-      if [ ${deleteFlag} == "true" ]; then
-        rm -rf vendor
-      fi
+          if [ -d vendor ]; then
+            echo "vendor folder exists, please set 'vendorSha256 = null;' in your expression"
+            exit 10
+          fi
 
-      if [ -e vendor ]; then
-        echo "vendor folder exists, please set 'vendorSha256=null;' or 'deleteVendor=true;' in your expression"
-        exit 10
-      fi
-      go mod vendor
-      mkdir -p vendor
+          if [ ${vendCommand} != "false" ]; then
+            echo running vend to rewrite vendor folder
+            ${vendCommand}
+          else
+            go mod vendor
+          fi
+          mkdir -p vendor
 
-      runHook postBuild
-    '';
+          runHook postBuild
+        '';
 
         installPhase = args.modInstallPhase or ''
-      runHook preInstall
+          runHook preInstall
 
-      # remove cached lookup results and tiles
-      cp -r --reflink=auto vendor $out
+          # remove cached lookup results and tiles
+          cp -r --reflink=auto vendor $out
 
-      runHook postInstall
-    '';
+          runHook postInstall
+        '';
 
         dontFixup = true;
       }; in modArgs // (
-        {
-          outputHashMode = "recursive";
-          outputHashAlgo = "sha256";
-          outputHash = vendorSha256;
-        }
+          {
+            outputHashMode = "recursive";
+            outputHashAlgo = "sha256";
+            outputHash = vendorSha256;
+          }
       ) // overrideModAttrs modArgs) else "";
 
       package = go.stdenv.mkDerivation (args // {
@@ -122,109 +136,109 @@ let
         GOFLAGS = "-mod=vendor";
 
         configurePhase = args.configurePhase or ''
-      runHook preConfigure
-
-      export GOCACHE=$TMPDIR/go-cache
-      export GOPATH="$TMPDIR/go"
-      export GOSUMDB=off
-      export GOPROXY=off
-      cd "$modRoot"
-      if [ -n "${go-modules}" ]; then
-          rm -rf vendor
-          ln -s ${go-modules} vendor
-      fi
+          runHook preConfigure
+
+          export GOCACHE=$TMPDIR/go-cache
+          export GOPATH="$TMPDIR/go"
+          export GOSUMDB=off
+          export GOPROXY=off
+          cd "$modRoot"
+          if [ -n "${go-modules}" ]; then
+              rm -rf vendor
+              ln -s ${go-modules} vendor
+          fi
 
-      runHook postConfigure
-    '';
+          runHook postConfigure
+        '';
 
         buildPhase = args.buildPhase or ''
-      runHook preBuild
-
-      buildGoDir() {
-        local d; local cmd;
-        cmd="$1"
-        d="$2"
-        . $TMPDIR/buildFlagsArray
-        echo "$d" | grep -q "\(/_\|examples\|Godeps\|testdata\)" && return 0
-        [ -n "$excludedPackages" ] && echo "$d" | grep -q "$excludedPackages" && return 0
-        local OUT
-        if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" -v -p $NIX_BUILD_CORES $d 2>&1)"; then
-          if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then
-            echo "$OUT" >&2
-            return 1
+          runHook preBuild
+
+          buildGoDir() {
+            local d; local cmd;
+            cmd="$1"
+            d="$2"
+            . $TMPDIR/buildFlagsArray
+            echo "$d" | grep -q "\(/_\|examples\|Godeps\|testdata\)" && return 0
+            [ -n "$excludedPackages" ] && echo "$d" | grep -q "$excludedPackages" && return 0
+            local OUT
+            if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" -v -p $NIX_BUILD_CORES $d 2>&1)"; then
+              if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then
+                echo "$OUT" >&2
+                return 1
+              fi
+            fi
+            if [ -n "$OUT" ]; then
+              echo "$OUT" >&2
+            fi
+            return 0
+          }
+
+          getGoDirs() {
+            local type;
+            type="$1"
+            if [ -n "$subPackages" ]; then
+              echo "$subPackages" | sed "s,\(^\| \),\1./,g"
+            else
+              find . -type f -name \*$type.go -exec dirname {} \; | grep -v "/vendor/" | sort --unique
+            fi
+          }
+
+          if (( "''${NIX_DEBUG:-0}" >= 1 )); then
+            buildFlagsArray+=(-x)
+          fi
+
+          if [ ''${#buildFlagsArray[@]} -ne 0 ]; then
+            declare -p buildFlagsArray > $TMPDIR/buildFlagsArray
+          else
+            touch $TMPDIR/buildFlagsArray
+          fi
+          if [ -z "$enableParallelBuilding" ]; then
+              export NIX_BUILD_CORES=1
           fi
-        fi
-        if [ -n "$OUT" ]; then
-          echo "$OUT" >&2
-        fi
-        return 0
-      }
-
-      getGoDirs() {
-        local type;
-        type="$1"
-        if [ -n "$subPackages" ]; then
-          echo "$subPackages" | sed "s,\(^\| \),\1./,g"
-        else
-          find . -type f -name \*$type.go -exec dirname {} \; | grep -v "/vendor/" | sort --unique
-        fi
-      }
-
-      if (( "''${NIX_DEBUG:-0}" >= 1 )); then
-        buildFlagsArray+=(-x)
-      fi
-
-      if [ ''${#buildFlagsArray[@]} -ne 0 ]; then
-        declare -p buildFlagsArray > $TMPDIR/buildFlagsArray
-      else
-        touch $TMPDIR/buildFlagsArray
-      fi
-      if [ -z "$enableParallelBuilding" ]; then
-          export NIX_BUILD_CORES=1
-      fi
-      for pkg in $(getGoDirs ""); do
-        echo "Building subPackage $pkg"
-        buildGoDir install "$pkg"
-      done
-    '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
-      # normalize cross-compiled builds w.r.t. native builds
-      (
-        dir=$GOPATH/bin/${go.GOOS}_${go.GOARCH}
-        if [[ -n "$(shopt -s nullglob; echo $dir/*)" ]]; then
-          mv $dir/* $dir/..
-        fi
-        if [[ -d $dir ]]; then
-          rmdir $dir
-        fi
-      )
-    '' + ''
-      runHook postBuild
-    '';
-
-        doCheck = args.doCheck or false;
+          for pkg in $(getGoDirs ""); do
+            echo "Building subPackage $pkg"
+            buildGoDir install "$pkg"
+          done
+        '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+          # normalize cross-compiled builds w.r.t. native builds
+          (
+            dir=$GOPATH/bin/${go.GOOS}_${go.GOARCH}
+            if [[ -n "$(shopt -s nullglob; echo $dir/*)" ]]; then
+              mv $dir/* $dir/..
+            fi
+            if [[ -d $dir ]]; then
+              rmdir $dir
+            fi
+          )
+        '' + ''
+          runHook postBuild
+        '';
+
+        doCheck = args.doCheck or true;
         checkPhase = args.checkPhase or ''
-      runHook preCheck
+          runHook preCheck
 
-      for pkg in $(getGoDirs test); do
-        buildGoDir test "$pkg"
-      done
+          for pkg in $(getGoDirs test); do
+            buildGoDir test "$pkg"
+          done
 
-      runHook postCheck
-    '';
+          runHook postCheck
+        '';
 
         installPhase = args.installPhase or ''
-      runHook preInstall
+          runHook preInstall
 
-      mkdir -p $out
-      dir="$GOPATH/bin"
-      [ -e "$dir" ] && cp -r $dir $out
+          mkdir -p $out
+          dir="$GOPATH/bin"
+          [ -e "$dir" ] && cp -r $dir $out
 
-      runHook postInstall
-    '';
+          runHook postInstall
+        '';
 
         preFixup = (args.preFixup or "") + ''
-      find $out/bin -type f -exec ${removeExpr removeReferences} '{}' + || true
-    '';
+          find $out/{bin,libexec,lib} -type f 2>/dev/null | xargs -r ${removeExpr removeReferences} || true
+        '';
 
         strictDeps = true;
 
@@ -245,10 +259,7 @@ let
       };
     in if disabled then
       throw "${package.name} not supported for go ${go.meta.branch}"
-       else if modSha256 != null then
-         lib.warn "modSha256 is deprecated and will be removed in the next release (20.09), use vendorSha256 instead" (
-           import ./old.nix { inherit go cacert git lib removeReferencesTo stdenv; } args')
-       else
-         package;
+    else
+      package;
 in
   buildGoPackage
diff --git a/nixpkgs/pkgs/development/go-modules/generic/old.nix b/nixpkgs/pkgs/development/go-modules/generic/old.nix
deleted file mode 100644
index 42b446b9fa86..000000000000
--- a/nixpkgs/pkgs/development/go-modules/generic/old.nix
+++ /dev/null
@@ -1,229 +0,0 @@
-{ go, cacert, git, lib, removeReferencesTo, stdenv }:
-
-{ name ? "${args'.pname}-${args'.version}"
-, src
-, buildInputs ? []
-, nativeBuildInputs ? []
-, passthru ? {}
-, patches ? []
-
-# A function to override the go-modules derivation
-, overrideModAttrs ? (_oldAttrs : {})
-
-# path to go.mod and go.sum directory
-, modRoot ? "./"
-
-# modSha256 is the sha256 of the vendored dependencies
-#
-# CAUTION: if `null` is used as a value, the derivation won't be a
-# fixed-output derivation but disable the build sandbox instead. Don't use
-# this in nixpkgs as Hydra won't build those packages.
-, modSha256
-
-# We want parallel builds by default
-, enableParallelBuilding ? true
-
-# Disabled flag
-, disabled ? false
-
-# Do not enable this without good reason
-# IE: programs coupled with the compiler
-, allowGoReference ? false
-
-, meta ? {}
-
-, ... }@args':
-
-with builtins;
-
-let
-  args = removeAttrs args' [ "overrideModAttrs" "modSha256" "disabled" ];
-
-  removeReferences = [ ] ++ lib.optional (!allowGoReference) go;
-
-  removeExpr = refs: ''remove-references-to ${lib.concatMapStrings (ref: " -t ${ref}") refs}'';
-
-  go-modules = go.stdenv.mkDerivation (let modArgs = {
-    name = "${name}-go-modules";
-
-    nativeBuildInputs = [ go git cacert ];
-
-    inherit (args) src;
-    inherit (go) GOOS GOARCH;
-
-    patches = args.patches or [];
-
-    GO111MODULE = "on";
-
-    impureEnvVars = lib.fetchers.proxyImpureEnvVars ++ [
-      "GIT_PROXY_COMMAND" "SOCKS_SERVER"
-    ];
-
-    configurePhase = args.modConfigurePhase or ''
-      runHook preConfigure
-
-      export GOCACHE=$TMPDIR/go-cache
-      export GOPATH="$TMPDIR/go"
-      mkdir -p "''${GOPATH}/pkg/mod/cache/download"
-      cd "${modRoot}"
-      runHook postConfigure
-    '';
-
-    buildPhase = args.modBuildPhase or ''
-      runHook preBuild
-
-      go mod download
-
-      runHook postBuild
-    '';
-
-    installPhase = args.modInstallPhase or ''
-      runHook preInstall
-
-      # remove cached lookup results and tiles
-      rm -rf "''${GOPATH}/pkg/mod/cache/download/sumdb"
-      cp -r "''${GOPATH}/pkg/mod/cache/download" $out
-
-      runHook postInstall
-    '';
-
-    dontFixup = true;
-  }; in modArgs // (
-    if modSha256 == null then
-      { __noChroot = true; }
-    else
-      {
-        outputHashMode = "recursive";
-        outputHashAlgo = "sha256";
-        outputHash = modSha256;
-      }
-  ) // overrideModAttrs modArgs);
-
-  package = go.stdenv.mkDerivation (args // {
-    nativeBuildInputs = [ removeReferencesTo go ] ++ nativeBuildInputs;
-
-    inherit (go) GOOS GOARCH;
-
-    GO111MODULE = "on";
-
-    configurePhase = args.configurePhase or ''
-      runHook preConfigure
-
-      export GOCACHE=$TMPDIR/go-cache
-      export GOPATH="$TMPDIR/go"
-      export GOSUMDB=off
-      export GOPROXY=file://${go-modules}
-
-      cd "$modRoot"
-
-      runHook postConfigure
-    '';
-
-    buildPhase = args.buildPhase or ''
-      runHook preBuild
-
-      buildGoDir() {
-        local d; local cmd;
-        cmd="$1"
-        d="$2"
-        . $TMPDIR/buildFlagsArray
-        echo "$d" | grep -q "\(/_\|examples\|Godeps\|testdata\)" && return 0
-        [ -n "$excludedPackages" ] && echo "$d" | grep -q "$excludedPackages" && return 0
-        local OUT
-        if ! OUT="$(go $cmd $buildFlags "''${buildFlagsArray[@]}" -v -p $NIX_BUILD_CORES $d 2>&1)"; then
-          if ! echo "$OUT" | grep -qE '(no( buildable| non-test)?|build constraints exclude all) Go (source )?files'; then
-            echo "$OUT" >&2
-            return 1
-          fi
-        fi
-        if [ -n "$OUT" ]; then
-          echo "$OUT" >&2
-        fi
-        return 0
-      }
-
-      getGoDirs() {
-        local type;
-        type="$1"
-        if [ -n "$subPackages" ]; then
-          echo "$subPackages" | sed "s,\(^\| \),\1./,g"
-        else
-          find . -type f -name \*$type.go -exec dirname {} \; | grep -v "/vendor/" | sort --unique
-        fi
-      }
-
-      if (( "''${NIX_DEBUG:-0}" >= 1 )); then
-        buildFlagsArray+=(-x)
-      fi
-
-      if [ ''${#buildFlagsArray[@]} -ne 0 ]; then
-        declare -p buildFlagsArray > $TMPDIR/buildFlagsArray
-      else
-        touch $TMPDIR/buildFlagsArray
-      fi
-      if [ -z "$enableParallelBuilding" ]; then
-          export NIX_BUILD_CORES=1
-      fi
-      for pkg in $(getGoDirs ""); do
-        echo "Building subPackage $pkg"
-        buildGoDir install "$pkg"
-      done
-    '' + lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
-      # normalize cross-compiled builds w.r.t. native builds
-      (
-        dir=$GOPATH/bin/${go.GOOS}_${go.GOARCH}
-        if [[ -n "$(shopt -s nullglob; echo $dir/*)" ]]; then
-          mv $dir/* $dir/..
-        fi
-        if [[ -d $dir ]]; then
-          rmdir $dir
-        fi
-      )
-    '' + ''
-      runHook postBuild
-    '';
-
-    doCheck = args.doCheck or false;
-    checkPhase = args.checkPhase or ''
-      runHook preCheck
-
-      for pkg in $(getGoDirs test); do
-        buildGoDir test "$pkg"
-      done
-
-      runHook postCheck
-    '';
-
-    installPhase = args.installPhase or ''
-      runHook preInstall
-
-      mkdir -p $out
-      dir="$GOPATH/bin"
-      [ -e "$dir" ] && cp -r $dir $out
-
-      runHook postInstall
-    '';
-
-    preFixup = (args.preFixup or "") + ''
-      find $out/bin -type f -exec ${removeExpr removeReferences} '{}' + || true
-    '';
-
-    strictDeps = true;
-
-    disallowedReferences = lib.optional (!allowGoReference) go;
-
-    passthru = passthru // { inherit go go-modules modSha256; };
-
-    meta = {
-      # Add default meta information
-      platforms = go.meta.platforms or lib.platforms.all;
-    } // meta // {
-      # add an extra maintainer to every package
-      maintainers = (meta.maintainers or []) ++
-                    [ lib.maintainers.kalbasit ];
-    };
-  });
-in if disabled then
-  throw "${package.name} not supported for go ${go.meta.branch}"
-else
-  package
diff --git a/nixpkgs/pkgs/development/go-packages/generic/default.nix b/nixpkgs/pkgs/development/go-packages/generic/default.nix
index 54d1c743bee0..5c54e04652f7 100644
--- a/nixpkgs/pkgs/development/go-packages/generic/default.nix
+++ b/nixpkgs/pkgs/development/go-packages/generic/default.nix
@@ -29,6 +29,9 @@
 # go2nix dependency file
 , goDeps ? null
 
+# Whether to delete the vendor folder supplied with the source.
+, deleteVendor ? false
+
 , dontRenameImports ? false
 
 # Do not enable this without good reason
@@ -96,6 +99,18 @@ let
       mkdir -p "go/src/$(dirname "$goPackagePath")"
       mv "$sourceRoot" "go/src/$goPackagePath"
 
+    '' + lib.optionalString (deleteVendor == true) ''
+      if [ ! -d "go/src/$goPackagePath/vendor" ]; then
+        echo "vendor folder does not exist, 'deleteVendor' is not needed"
+        exit 10
+      else
+        rm -rf "go/src/$goPackagePath/vendor"
+      fi
+    '' + lib.optionalString (goDeps != null) ''
+      if [ -d "go/src/$goPackagePath/vendor" ]; then
+        echo "vendor folder exists, 'goDeps' is not needed"
+        exit 10
+      fi
     '' + lib.flip lib.concatMapStrings goPath ({ src, goPackagePath }: ''
       mkdir goPath
       (cd goPath; unpackFile "${src}")
@@ -211,7 +226,7 @@ let
     '';
 
     preFixup = preFixup + ''
-      find $out/bin -type f -exec ${removeExpr removeReferences} '{}' + || true
+      find $out/{bin,libexec,lib} -type f 2>/dev/null | xargs -r ${removeExpr removeReferences} || true
     '';
 
     strictDeps = true;
diff --git a/nixpkgs/pkgs/development/guile-modules/guile-sdl2/default.nix b/nixpkgs/pkgs/development/guile-modules/guile-sdl2/default.nix
index be885d990ece..061d3c4a1dba 100644
--- a/nixpkgs/pkgs/development/guile-modules/guile-sdl2/default.nix
+++ b/nixpkgs/pkgs/development/guile-modules/guile-sdl2/default.nix
@@ -5,13 +5,13 @@
 let
   name = "${pname}-${version}";
   pname = "guile-sdl2";
-  version = "0.4.0";
+  version = "0.5.0";
 in stdenv.mkDerivation {
   inherit name;
 
   src = fetchurl {
     url = "https://files.dthompson.us/${pname}/${name}.tar.gz";
-    sha256 = "0zcxwgyadwpbhq6h5mv2569c3kalgra26zc186y9fqiyyzmh1v9s";
+    sha256 = "118x0cg7fzbsyrfhy5f9ab7dqp9czgia0ycgzp6sn3nlsdrcnr4m";
   };
 
   nativeBuildInputs = [ libtool pkgconfig ];
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
index 2177630f8bb7..0d170f0e1e47 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-common.nix
@@ -26,6 +26,12 @@ self: super: {
   # successfully with recent versions of the compiler).
   bin-package-db = null;
 
+  # waiting for release: https://github.com/jwiegley/c2hsc/issues/41
+  c2hsc = appendPatch super.c2hsc (pkgs.fetchpatch {
+    url = "https://github.com/jwiegley/c2hsc/commit/490ecab202e0de7fc995eedf744ad3cb408b53cc.patch";
+    sha256 = "1c7knpvxr7p8c159jkyk6w29653z5yzgjjqj11130bbb8mk9qhq7";
+  });
+
   # Some Hackage packages reference this attribute, which exists only in the
   # GHCJS package set. We provide a dummy version here to fix potential
   # evaluation errors.
@@ -45,10 +51,6 @@ self: super: {
   # Needs older QuickCheck version
   attoparsec-varword = dontCheck super.attoparsec-varword;
 
-  # Tests are failing
-  # https://github.com/bos/statistics/issues/123
-  statistics = dontCheck super.statistics;
-
   # These packages (and their reverse deps) cannot be built with profiling enabled.
   ghc-heap-view = disableLibraryProfiling super.ghc-heap-view;
   ghc-datasize = disableLibraryProfiling super.ghc-datasize;
@@ -60,10 +62,6 @@ self: super: {
   mysql-simple = dontCheck super.mysql-simple;
   mysql-haskell = dontCheck super.mysql-haskell;
 
-  # Tests failing, fixed once 0.8.0 is in stackage
-  # https://gitlab.com/twittner/zeromq-haskell/issues/63
-  zeromq4-haskell = dontCheck super.zeromq4-haskell;
-
   # The Hackage tarball is purposefully broken, because it's not intended to be, like, useful.
   # https://git-annex.branchable.com/bugs/bash_completion_file_is_missing_in_the_6.20160527_tarball_on_hackage/
   git-annex = (overrideSrc super.git-annex {
@@ -71,7 +69,7 @@ self: super: {
       name = "git-annex-${super.git-annex.version}-src";
       url = "git://git-annex.branchable.com/";
       rev = "refs/tags/" + super.git-annex.version;
-      sha256 = "0adw72lw3ygls87w6i7hirf26gz991dkm992jb5f0h5nvy6d44pl";
+      sha256 = "19ipaalp9g25zhg44rialwhp2fv5n8q5fzqw72rfcjcca5iy6r72";
     };
   }).override {
     dbus = if pkgs.stdenv.isLinux then self.dbus else null;
@@ -119,19 +117,16 @@ self: super: {
   });
 
   # The Haddock phase fails for one reason or another.
-  bytestring-progress = dontHaddock super.bytestring-progress;
   deepseq-magic = dontHaddock super.deepseq-magic;
   feldspar-signal = dontHaddock super.feldspar-signal; # https://github.com/markus-git/feldspar-signal/issues/1
   hoodle-core = dontHaddock super.hoodle-core;
   hsc3-db = dontHaddock super.hsc3-db;
-  classy-prelude-yesod = dontHaddock super.classy-prelude-yesod; # https://github.com/haskell/haddock/issues/979
 
   # https://github.com/techtangents/ablist/issues/1
   ABList = dontCheck super.ABList;
 
   # sse2 flag due to https://github.com/haskell/vector/issues/47.
-  # dontCheck due to https://github.com/haskell/vector/issues/138
-  vector = dontCheck (if pkgs.stdenv.isi686 then appendConfigureFlag super.vector "--ghc-options=-msse2" else super.vector);
+  vector = if pkgs.stdenv.isi686 then appendConfigureFlag super.vector "--ghc-options=-msse2" else super.vector;
 
   conduit-extra = if pkgs.stdenv.isDarwin
     then super.conduit-extra.overrideAttrs (drv: { __darwinAllowLocalNetworking = true; })
@@ -175,20 +170,14 @@ self: super: {
   # Test suite depends on source code being available
   simple-affine-space = dontCheck super.simple-affine-space;
 
-  # https://github.com/kazu-yamamoto/simple-sendfile/issues/17
-  simple-sendfile = dontCheck super.simple-sendfile;
-
   # Fails no apparent reason. Upstream has been notified by e-mail.
   assertions = dontCheck super.assertions;
 
   # These packages try to execute non-existent external programs.
   cmaes = dontCheck super.cmaes;                        # http://hydra.cryp.to/build/498725/log/raw
   dbmigrations = dontCheck super.dbmigrations;
-  euler = dontCheck super.euler;                        # https://github.com/decomputed/euler/issues/1
   filestore = dontCheck super.filestore;
-  getopt-generics = dontCheck super.getopt-generics;
   graceful = dontCheck super.graceful;
-  Hclip = dontCheck super.Hclip;
   HList = dontCheck super.HList;
   ide-backend = dontCheck super.ide-backend;
   marquise = dontCheck super.marquise;                  # https://github.com/anchor/marquise/issues/69
@@ -213,10 +202,18 @@ self: super: {
   # base bound
   digit = doJailbreak super.digit;
 
-  # 2020-06-05: HACK: does not passes own build suite - `dontCheck`
-  hnix = generateOptparseApplicativeCompletion "hnix" (
-    dontCheck super.hnix
-    );
+  # 2020-06-05: HACK: does not pass own build suite - `dontCheck` We should
+  # generate optparse-applicative completions for the hnix executable.  Sadly
+  # building of the executable has been disabled for ghc < 8.10 in hnix.
+  # Generating the completions should be activated again, once we default to
+  # ghc 8.10.
+  hnix = dontCheck (super.hnix.override {
+    # 2020-09-18: Those packages are all needed by hnix at versions newer than on stackage
+    neat-interpolation = self.neat-interpolation_0_5_1_2; # at least 0.5.1
+    data-fix = self.data-fix_0_3_0; # at least 0.3
+    prettyprinter = self.prettyprinter_1_7_0; # at least 1.7
+
+  });
 
   # Fails for non-obvious reasons while attempting to use doctest.
   search = dontCheck super.search;
@@ -243,7 +240,6 @@ self: super: {
   bloodhound = dontCheck super.bloodhound;
   buildwrapper = dontCheck super.buildwrapper;
   burst-detection = dontCheck super.burst-detection;    # http://hydra.cryp.to/build/496948/log/raw
-  cabal-bounds = dontCheck super.cabal-bounds;          # http://hydra.cryp.to/build/496935/nixlog/1/raw
   cabal-meta = dontCheck super.cabal-meta;              # http://hydra.cryp.to/build/497892/log/raw
   camfort = dontCheck super.camfort;
   cjk = dontCheck super.cjk;
@@ -300,7 +296,6 @@ self: super: {
   hs2048 = dontCheck super.hs2048;
   hsbencher = dontCheck super.hsbencher;
   hsexif = dontCheck super.hsexif;
-  hspec-core = if pkgs.stdenv.isi686 then dontCheck super.hspec-core else super.hspec-core; # tests rely on `Int` being 64-bit; https://github.com/hspec/hspec/issues/431
   hspec-server = dontCheck super.hspec-server;
   HTF = dontCheck super.HTF;
   htsn = dontCheck super.htsn;
@@ -314,12 +309,24 @@ self: super: {
   language-slice = dontCheck super.language-slice;
   ldap-client = dontCheck super.ldap-client;
   lensref = dontCheck super.lensref;
-  lucid = dontCheck super.lucid; #https://github.com/chrisdone/lucid/issues/25
   lvmrun = disableHardening (dontCheck super.lvmrun) ["format"];
+  math-functions = if pkgs.stdenv.isDarwin
+    then dontCheck super.math-functions # "erf table" test fails on Darwin https://github.com/bos/math-functions/issues/63
+    else super.math-functions;
   matplotlib = dontCheck super.matplotlib;
+
+  # Needs the latest version of vty and brick.
+  matterhorn = super.matterhorn.overrideScope (self: super: {
+    brick = self.brick_0_55;
+    vty = self.vty_5_30;
+  });
+
   memcache = dontCheck super.memcache;
   metrics = dontCheck super.metrics;
   milena = dontCheck super.milena;
+  mockery = if pkgs.stdenv.isDarwin
+    then overrideCabal super.mockery (drv: { preCheck = "export TRAVIS=true"; }) # darwin doesn't have sub-second resolution https://github.com/hspec/mockery/issues/11
+    else super.mockery;
   modular-arithmetic = dontCheck super.modular-arithmetic; # tests require a very old Glob (0.7.*)
   nats-queue = dontCheck super.nats-queue;
   netpbm = dontCheck super.netpbm;
@@ -346,7 +353,6 @@ self: super: {
   pwstore-cli = dontCheck super.pwstore-cli;
   quantities = dontCheck super.quantities;
   redis-io = dontCheck super.redis-io;
-  reflex = dontCheck super.reflex; # test suite uses hlint, which has different haskell-src-exts version
   rethinkdb = dontCheck super.rethinkdb;
   Rlang-QQ = dontCheck super.Rlang-QQ;
   safecopy = dontCheck super.safecopy;
@@ -369,6 +375,7 @@ self: super: {
   tickle = dontCheck super.tickle;
   tpdb = dontCheck super.tpdb;
   translatable-intset = dontCheck super.translatable-intset;
+  trifecta = if pkgs.stdenv.hostPlatform.isAarch64 then dontCheck super.trifecta else super.trifecta; # affected by this bug https://gitlab.haskell.org/ghc/ghc/-/issues/15275#note_295461
   ua-parser = dontCheck super.ua-parser;
   unagi-chan = dontCheck super.unagi-chan;
   wai-logger = dontCheck super.wai-logger;
@@ -388,9 +395,6 @@ self: super: {
   # https://github.com/bos/snappy/issues/1
   snappy = dontCheck super.snappy;
 
-  # https://github.com/kim/snappy-framing/issues/3
-  snappy-framing = dontHaddock super.snappy-framing;
-
   # https://ghc.haskell.org/trac/ghc/ticket/9625
   vty = dontCheck super.vty;
 
@@ -403,9 +407,6 @@ self: super: {
   # https://github.com/joeyadams/haskell-stm-delay/issues/3
   stm-delay = dontCheck super.stm-delay;
 
-  # https://github.com/cgaebel/stm-conduit/issues/33
-  stm-conduit = dontCheck super.stm-conduit;
-
   # https://github.com/pixbi/duplo/issues/25
   duplo = dontCheck super.duplo;
 
@@ -431,9 +432,6 @@ self: super: {
   # https://github.com/NixOS/nixpkgs/issues/6350
   paypal-adaptive-hoops = overrideCabal super.paypal-adaptive-hoops (drv: { testTarget = "local"; });
 
-  # https://github.com/vincenthz/hs-asn1/issues/12
-  asn1-encoding = dontCheck super.asn1-encoding;
-
   # Avoid "QuickCheck >=2.3 && <2.10" dependency we cannot fulfill in lts-11.x.
   test-framework = dontCheck super.test-framework;
 
@@ -451,13 +449,10 @@ self: super: {
   apiary-session = dontCheck super.apiary-session;
   apiary-websockets = dontCheck super.apiary-websockets;
 
-  # https://github.com/PaulJohnson/geodetics/issues/1
-  geodetics = dontCheck super.geodetics;
-
   # https://github.com/junjihashimoto/test-sandbox-compose/issues/2
   test-sandbox-compose = dontCheck super.test-sandbox-compose;
 
-  # https://github.com/tych0/xcffib/issues/37
+  # Waiting on language-python 0.5.8 https://github.com/bjpop/language-python/issues/60
   xcffib = dontCheck super.xcffib;
 
   # https://github.com/afcowie/locators/issues/1
@@ -472,6 +467,12 @@ self: super: {
   bytestring-strict-builder = dontCheck super.bytestring-strict-builder;
   bytestring-tree-builder = dontCheck super.bytestring-tree-builder;
 
+  # https://github.com/byteverse/bytebuild/issues/19
+  bytebuild = dontCheck super.bytebuild;
+
+  # https://github.com/andrewthad/haskell-ip/issues/67
+  ip = dontCheck super.ip;
+
   # https://github.com/ndmitchell/shake/issues/206
   # https://github.com/ndmitchell/shake/issues/267
   shake = overrideCabal super.shake (drv: { doCheck = !pkgs.stdenv.isDarwin && false; });
@@ -498,21 +499,12 @@ self: super: {
      then self.buildHaskellPackages.tasty-discover
      else dontCheck super.tasty-discover);
 
-  # generic-deriving bound is too tight
-  # aeson 1.4.6.0 needs Diff 0.4.0 to do tests but nixpkgs is still at 0.3.4
-  # https://github.com/bos/aeson/issues/740
-  aeson = dontCheck (doJailbreak super.aeson);
-
-  # containers >=0.4 && <0.6 is too tight
-  # https://github.com/RaphaelJ/friday/issues/34
+  # Waiting on https://github.com/RaphaelJ/friday/pull/36
   friday = doJailbreak super.friday;
 
   # Won't compile with recent versions of QuickCheck.
   inilist = dontCheck super.inilist;
 
-  # Doesn't accept recent versions of 'base' or QuickCheck.
-  MissingH = dontCheck (doJailbreak super.MissingH);
-
   # https://github.com/yaccz/saturnin/issues/3
   Saturnin = dontCheck super.Saturnin;
 
@@ -525,12 +517,6 @@ self: super: {
   # https://github.com/alphaHeavy/lzma-enumerator/issues/3
   lzma-enumerator = dontCheck super.lzma-enumerator;
 
-  # https://github.com/haskell-hvr/lzma/issues/14
-  lzma = dontCheck super.lzma;
-
-  # https://github.com/BNFC/bnfc/issues/140
-  BNFC = dontCheck super.BNFC;
-
   # FPCO's fork of Cabal won't succeed its test suite.
   Cabal-ide-backend = dontCheck super.Cabal-ide-backend;
 
@@ -545,21 +531,12 @@ self: super: {
   inline-c-win32 = dontDistribute super.inline-c-win32;
   Southpaw = dontDistribute super.Southpaw;
 
-  # https://github.com/yesodweb/serversession/issues/1
-  serversession = dontCheck super.serversession;
-
   # Hydra no longer allows building texlive packages.
   lhs2tex = dontDistribute super.lhs2tex;
 
   # https://ghc.haskell.org/trac/ghc/ticket/9825
   vimus = overrideCabal super.vimus (drv: { broken = pkgs.stdenv.isLinux && pkgs.stdenv.isi686; });
 
-  # https://github.com/hspec/mockery/issues/6
-  mockery = overrideCabal super.mockery (drv: { preCheck = "export TRAVIS=true"; });
-
-  # https://github.com/alphaHeavy/lzma-conduit/issues/5
-  lzma-conduit = dontCheck super.lzma-conduit;
-
   # https://github.com/kazu-yamamoto/logger/issues/42
   logger = dontCheck super.logger;
 
@@ -590,25 +567,10 @@ self: super: {
     sha256 = "13g462qmj8c7if797gnyvf8h0cddmm3xy0pjldw48w8f8sr4qsj0";
   });
 
-  # https://github.com/athanclark/sets/issues/2
-  sets = dontCheck super.sets;
-
   # Install icons, metadata and cli program.
   bustle = overrideCabal super.bustle (drv: {
     buildDepends = [ pkgs.libpcap ];
     buildTools = with pkgs.buildPackages; [ gettext perl help2man ];
-    patches = [
-      # fix build
-      # https://gitlab.freedesktop.org/bustle/bustle/merge_requests/14
-      (pkgs.fetchpatch {
-        url = "https://gitlab.freedesktop.org/bustle/bustle/commit/ee4b81cbc232d47ba9940f1987777b17452e71ff.patch";
-        sha256 = "0v9cvbmrma5jcqcg1narpm1549h0cg8mr6i00qxmq0x6hs04dnwa";
-      })
-      (pkgs.fetchpatch {
-        url = "https://gitlab.freedesktop.org/bustle/bustle/commit/aae6843f51f54679d440fb3813e61355dc8406b9.patch";
-        sha256 = "1a8hr38hd1gdkqhsy56hyl7njw8ci79iigr81aalkb7hn4ckvh2a";
-      })
-    ];
     postInstall = ''
       make install PREFIX=$out
     '';
@@ -676,9 +638,6 @@ self: super: {
   # https://github.com/pxqr/base32-bytestring/issues/4
   base32-bytestring = dontCheck super.base32-bytestring;
 
-  # https://github.com/goldfirere/singletons/issues/122
-  singletons = dontCheck super.singletons;
-
   # Djinn's last release was 2014, incompatible with Semigroup-Monoid Proposal
   # https://github.com/augustss/djinn/pull/8
   djinn = appendPatch super.djinn (pkgs.fetchpatch {
@@ -689,9 +648,6 @@ self: super: {
   # We cannot build this package w/o the C library from <http://www.phash.org/>.
   phash = markBroken super.phash;
 
-  # We get lots of strange compiler errors during the test suite run.
-  jsaddle = dontCheck super.jsaddle;
-
   # https://github.com/Philonous/hs-stun/pull/1
   # Remove if a version > 0.1.0.1 ever gets released.
   stunclient = overrideCabal super.stunclient (drv: {
@@ -703,9 +659,6 @@ self: super: {
   # The standard libraries are compiled separately.
   idris = generateOptparseApplicativeCompletion "idris" (dontCheck super.idris);
 
-  # https://github.com/bos/math-functions/issues/25
-  math-functions = dontCheck super.math-functions;
-
   # build servant docs from the repository
   servant =
     let
@@ -743,10 +696,6 @@ self: super: {
   # https://github.com/bmillwood/applicative-quoters/issues/6
   applicative-quoters = doJailbreak super.applicative-quoters;
 
-  # https://github.com/roelvandijk/terminal-progress-bar/issues/13
-  # Still needed because of HUnit < 1.6
-  terminal-progress-bar = doJailbreak super.terminal-progress-bar;
-
   # https://hydra.nixos.org/build/42769611/nixlog/1/raw
   # note: the library is unmaintained, no upstream issue
   dataenc = doJailbreak super.dataenc;
@@ -769,39 +718,17 @@ self: super: {
   # No upstream issue tracker
   hspec-expectations-pretty-diff = dontCheck super.hspec-expectations-pretty-diff;
 
-  # https://github.com/basvandijk/lifted-base/issues/34
-  # Still needed as HUnit < 1.5
-  lifted-base = doJailbreak super.lifted-base;
-
   # Don't depend on chell-quickcheck, which doesn't compile due to restricting
   # QuickCheck to versions ">=2.3 && <2.9".
   system-filepath = dontCheck super.system-filepath;
 
-  # https://github.com/basvandijk/case-insensitive/issues/24
-  # Still needed as HUnit < 1.6
-  case-insensitive = doJailbreak super.case-insensitive;
-
   # https://github.com/hvr/uuid/issues/28
   uuid-types = doJailbreak super.uuid-types;
   uuid = doJailbreak super.uuid;
 
-  # https://github.com/ekmett/lens/issues/713
-  lens = disableCabalFlag super.lens "test-doctests";
-
-  # https://github.com/haskell/fgl/issues/60
-  # Needed for QuickCheck < 2.10
-  fgl = dontCheck super.fgl;
-  fgl-arbitrary = doJailbreak super.fgl-arbitrary;
-
   # The tests spuriously fail
   libmpd = dontCheck super.libmpd;
 
-  # https://github.com/dan-t/cabal-lenses/issues/6
-  cabal-lenses = doJailbreak super.cabal-lenses;
-
-  # https://github.com/fizruk/http-api-data/issues/49
-  http-api-data = dontCheck super.http-api-data;
-
   # https://github.com/diagrams/diagrams-lib/issues/288
   diagrams-lib = overrideCabal super.diagrams-lib (drv: { doCheck = !pkgs.stdenv.isi686; });
 
@@ -831,9 +758,6 @@ self: super: {
   digestive-functors-blaze = doJailbreak super.digestive-functors-blaze;
   digestive-functors = doJailbreak super.digestive-functors;
 
-  # missing dependencies: doctest ==0.12.*
-  html-entities = doJailbreak super.html-entities;
-
   # https://github.com/takano-akio/filelock/issues/5
   filelock = dontCheck super.filelock;
 
@@ -853,8 +777,7 @@ self: super: {
   grakn = dontCheck (doJailbreak super.grakn);
 
   # test suite requires git and does a bunch of git operations
-  # doJailbreak because of hardcoded time, seems to be fixed upstream
-  restless-git = dontCheck (doJailbreak super.restless-git);
+  restless-git = dontCheck super.restless-git;
 
   # Depends on broken fluid.
   fluid-idl-http-client = markBroken super.fluid-idl-http-client;
@@ -871,20 +794,18 @@ self: super: {
 
   # Needs QuickCheck <2.10, which we don't have.
   edit-distance = doJailbreak super.edit-distance;
-  blaze-markup = doJailbreak super.blaze-markup;
   blaze-html = doJailbreak super.blaze-html;
-  attoparsec = dontCheck super.attoparsec;      # 1 out of 67 tests fails
   int-cast = doJailbreak super.int-cast;
-  nix-derivation = doJailbreak super.nix-derivation;
 
   # Needs QuickCheck <2.10, HUnit <1.6 and base <4.10
   pointfree = doJailbreak super.pointfree;
 
+  # Depends on tasty < 1.x, which we don't have.
+  cryptohash-sha256 = doJailbreak super.cryptohash-sha256;
+
   # Needs tasty-quickcheck ==0.8.*, which we don't have.
-  cryptohash-sha256 = dontCheck super.cryptohash-sha256;
   cryptohash-sha1 = doJailbreak super.cryptohash-sha1;
   cryptohash-md5 = doJailbreak super.cryptohash-md5;
-  text-short = doJailbreak super.text-short;
   gitHUD = dontCheck super.gitHUD;
   githud = dontCheck super.githud;
 
@@ -892,7 +813,6 @@ self: super: {
   config-ini = dontCheck super.config-ini;
 
   # doctest >=0.9 && <0.12
-  genvalidity-property = doJailbreak super.genvalidity-property;
   path = dontCheck super.path;
 
   # Test suite fails due to trying to create directories
@@ -921,14 +841,9 @@ self: super: {
           then dontCheck
           else pkgs.lib.id;
     in doJailbreak (f super.servant-docs); # jailbreak tasty < 1.2 until servant-docs > 0.11.3 is on hackage.
+  snap-templates = doJailbreak super.snap-templates; # https://github.com/snapframework/snap-templates/issues/22
   swagger2 = if (pkgs.stdenv.hostPlatform.isAarch32 || pkgs.stdenv.hostPlatform.isAarch64) then dontHaddock (dontCheck super.swagger2) else super.swagger2;
 
-  # requires a release including https://github.com/haskell-servant/servant-swagger/commit/249530d9f85fe76dfb18b100542f75a27e6a3079
-  servant-swagger = dontCheck super.servant-swagger;
-
-  # Tries to read a file it is not allowed to in the test suite
-  load-env = dontCheck super.load-env;
-
   # Copy hledger man pages from data directory into the proper place. This code
   # should be moved into the cabal2nix generator.
   hledger = overrideCabal super.hledger (drv: {
@@ -971,18 +886,8 @@ self: super: {
     '';
   });
 
-  # https://github.com/haskell-rewriting/term-rewriting/pull/15
-  # remove on next hackage update
-  term-rewriting = doJailbreak super.term-rewriting;
-
-  # https://github.com/GaloisInc/pure-zlib/pull/11
-  pure-zlib = doJailbreak super.pure-zlib;
-
-  # https://github.com/strake/lenz-template.hs/pull/2
-  lenz-template = doJailbreak super.lenz-template;
 
   # https://github.com/haskell-hvr/resolv/pull/6
-  resolv = dontCheck super.resolv;
   resolv_0_1_1_2 = dontCheck super.resolv_0_1_1_2;
 
   # spdx 0.2.2.0 needs older tasty
@@ -1001,41 +906,27 @@ self: super: {
   # Compiles some C++ source which requires these headers
   VulkanMemoryAllocator = addExtraLibrary super.VulkanMemoryAllocator pkgs.vulkan-headers;
 
-  # # Builds only with the latest version of indexed-list-literals.
-  # vector-sized_1_0_3_0 = super.vector-sized_1_0_3_0.override {
-  #   indexed-list-literals = self.indexed-list-literals_0_2_1_1;
-  # };
-
   # https://github.com/dmwit/encoding/pull/3
   encoding = doJailbreak (appendPatch super.encoding ./patches/encoding-Cabal-2.0.patch);
 
   # Work around overspecified constraint on github ==0.18.
   github-backup = doJailbreak super.github-backup;
 
-  # Test suite depends on old QuickCheck 2.10.x.
-  cassava = dontCheck super.cassava;
-
   # Test suite depends on cabal-install
   doctest = dontCheck super.doctest;
 
   # https://github.com/haskell-servant/servant-auth/issues/113
   servant-auth-client = dontCheck super.servant-auth-client;
 
-  # Test has either build errors or fails anyway, depending on the compiler.
-  vector-algorithms = dontCheck super.vector-algorithms;
-
-  # 2020-06-04: HACK: dontCheck - The test suite attempts to use the network.
-  # Should be solved when: https://github.com/dhall-lang/dhall-haskell/issues/1837
-  dhall = generateOptparseApplicativeCompletion "dhall" (dontCheck super.dhall);
-
-  dhall-json =
-    generateOptparseApplicativeCompletions ["dhall-to-json" "dhall-to-yaml"]
-      super.dhall-json;
-
-  dhall-nix =
-    generateOptparseApplicativeCompletion "dhall-to-nix" (
-      super.dhall-nix
-  );
+  # Generate cli completions for dhall.
+  dhall = generateOptparseApplicativeCompletion "dhall" super.dhall;
+  dhall-json = generateOptparseApplicativeCompletions ["dhall-to-json" "dhall-to-yaml"] super.dhall-json;
+  dhall-nix = generateOptparseApplicativeCompletion "dhall-to-nix" (
+    super.dhall-nix.overrideScope (self: super: {
+      dhall = super.dhall_1_35_0;
+      repline = self.repline_0_4_0_0;
+      haskeline = self.haskeline_0_8_1_0;
+    }));
 
   # https://github.com/haskell-hvr/netrc/pull/2#issuecomment-469526558
   netrc = doJailbreak super.netrc;
@@ -1045,8 +936,7 @@ self: super: {
 
   # Generate shell completion.
   cabal2nix = generateOptparseApplicativeCompletion "cabal2nix" super.cabal2nix;
-  stack = generateOptparseApplicativeCompletion "stack" (super.stack.overrideScope (self: super: { http-download = self.http-download_0_2_0_0; }));
-  http-download_0_2_0_0 = dontCheck super.http-download_0_2_0_0;
+  stack = generateOptparseApplicativeCompletion "stack" super.stack;
 
   # musl fixes
   # dontCheck: use of non-standard strptime "%s" which musl doesn't support; only used in test
@@ -1060,13 +950,6 @@ self: super: {
     sha256 = "056rk58v9h114mjx62f41x971xn9p3nhsazcf9zrcyxh1ymrdm8j";
   });
 
-  # Tests require a browser: https://github.com/ku-fpg/blank-canvas/issues/73
-  blank-canvas = dontCheck super.blank-canvas;
-  blank-canvas_0_6_2 = dontCheck super.blank-canvas_0_6_2;
-
-  # needed because of testing-feat >=0.4.0.2 && <1.1
-  language-ecmascript = doJailbreak super.language-ecmascript;
-
   # sexpr is old, broken and has no issue-tracker. Let's fix it the best we can.
   sexpr =
     appendPatch (overrideCabal super.sexpr (drv: {
@@ -1077,9 +960,6 @@ self: super: {
   # https://github.com/haskell/hoopl/issues/50
   hoopl = dontCheck super.hoopl;
 
-  # https://github.com/snapframework/xmlhtml/pull/37
-  xmlhtml = doJailbreak super.xmlhtml;
-
   purescript =
     let
       purescriptWithOverrides = super.purescript.override {
@@ -1098,6 +978,9 @@ self: super: {
     # Generate shell completions
     generateOptparseApplicativeCompletion "purs" dontHaddockPurescript;
 
+  # Generate shell completion for spago
+  spago = generateOptparseApplicativeCompletion "spago" super.spago;
+
   # 2020-06-05: HACK: Package can not pass test suite,
   # Upstream Report: https://github.com/kcsongor/generic-lens/issues/83
   generic-lens = dontCheck super.generic-lens;
@@ -1105,7 +988,7 @@ self: super: {
   # https://github.com/danfran/cabal-macosx/issues/13
   cabal-macosx = dontCheck super.cabal-macosx;
 
-  # https://github.com/DanielG/cabal-helper/issues/59
+  # https://github.com/DanielG/cabal-helper/pull/123
   cabal-helper = doJailbreak super.cabal-helper;
 
   # TODO(Profpatsch): factor out local nix store setup from
@@ -1115,15 +998,12 @@ self: super: {
   # });
   libnix = dontCheck super.libnix;
 
-  # The test suite tries to mess with ALSA, which doesn't work in the build sandbox.
+  # dontCheck: The test suite tries to mess with ALSA, which doesn't work in the build sandbox.
   xmobar = dontCheck super.xmobar;
 
   # https://github.com/mgajda/json-autotype/issues/25
   json-autotype = dontCheck super.json-autotype;
 
-  # Jailbreak tasty < 1.2: https://github.com/phadej/tdigest/issues/30
-  tdigest = doJailbreak super.tdigest; # until tdigest > 0.2.1
-
   # Requires pg_ctl command during tests
   beam-postgres = overrideCabal super.beam-postgres (drv: {
     testToolDepends = (drv.testToolDepends or []) ++ [pkgs.postgresql];
@@ -1137,25 +1017,11 @@ self: super: {
     })];
   });
 
-  # Remove unecessary constraint:
-  # https://github.com/haskell-infra/hackage-trustees/issues/258
-  data-accessor-template = overrideCabal super.data-accessor-template (drv: {
-    postPatch = ''
-      sed -i 's#template-haskell >=2.11 && <2.15#template-haskell#' data-accessor-template.cabal
-    '';
-  });
-
-  # 2020-06-05: HACK: In Nixpkgs currently this is
-  # old pandoc version 2.7.4 to current 2.9.2.1,
-  # test suite failures: https://github.com/jgm/pandoc/issues/5582
-  pandoc = dontCheck super.pandoc;
-
   # Fix build with attr-2.4.48 (see #53716)
   xattr = appendPatch super.xattr ./patches/xattr-fix-build.patch;
 
   # Some tests depend on a postgresql instance
-  # Haddock failure: https://github.com/haskell/haddock/issues/979
-  esqueleto = dontHaddock (dontCheck super.esqueleto);
+  esqueleto = dontCheck super.esqueleto;
 
   # Requires API keys to run tests
   algolia = dontCheck super.algolia;
@@ -1183,9 +1049,6 @@ self: super: {
   # Test suite won't link for no apparent reason.
   constraints-deriving = dontCheck super.constraints-deriving;
 
-  # QuickCheck >=2.3 && <2.13, hspec >=2.1 && <2.7
-  graphviz = dontCheck super.graphviz;
-
   # https://github.com/elliottt/hsopenid/issues/15
   openid = markBroken super.openid;
 
@@ -1198,16 +1061,9 @@ self: super: {
     '';
   });
 
-  # The doctests in universum-1.5.0 are broken.  The doctests in versions of universum after
-  # 1.5.0 should be fixed, so this should be able to be removed.
-  universum = dontCheck super.universum;
-
   # https://github.com/erikd/hjsmin/issues/32
   hjsmin = dontCheck super.hjsmin;
 
-  # https://github.com/blamario/grampa/issues/19
-  rank2classes = dontCheck super.rank2classes;
-
   nix-tools = super.nix-tools.overrideScope (self: super: {
     # Needs https://github.com/peti/hackage-db/pull/9
     hackage-db = super.hackage-db.overrideAttrs (old: {
@@ -1223,9 +1079,6 @@ self: super: {
   # upstream issue: https://github.com/vmchale/atspkg/issues/12
   language-ats = dontCheck super.language-ats;
 
-  # https://github.com/Happstack/web-routes-th/pull/3
-  web-routes-th = doJailbreak super.web-routes-th;
-
   # Remove for hail > 0.2.0.0
   hail = overrideCabal super.hail (drv: {
     patches = [
@@ -1244,18 +1097,9 @@ self: super: {
     ];
   });
 
-  # Needs the corresponding version of haskell-src-exts.
-  haskell-src-exts-simple = super.haskell-src-exts-simple.override { haskell-src-exts = self.haskell-src-exts_1_23_1; };
-
-  # https://github.com/Daniel-Diaz/HaTeX/issues/144
-  HaTeX = dontCheck super.HaTeX;
-
   # https://github.com/kazu-yamamoto/dns/issues/150
   dns = dontCheck super.dns;
 
-  # Support recent versions of fast-logger.
-  spacecookie = doJailbreak super.spacecookie;
-
   # apply patches from https://github.com/snapframework/snap-server/pull/126
   # manually until they are accepted upstream
   snap-server = overrideCabal super.snap-server (drv: {
@@ -1277,9 +1121,6 @@ self: super: {
   # https://github.com/haskell-servant/servant-ekg/issues/15
   servant-ekg = doJailbreak super.servant-ekg;
 
-  # krank-0.1.0 does not accept PyF-0.9.0.0.
-  krank = doJailbreak super.krank;
-
   # the test suite has an overly tight restriction on doctest
   # See https://github.com/ekmett/perhaps/pull/5
   perhaps = doJailbreak super.perhaps;
@@ -1291,59 +1132,10 @@ self: super: {
     '';
   });
 
-  # Several gtk2hs-provided packages at v0.13.8.0 fail to build on Darwin
-  # until we pick up https://github.com/gtk2hs/gtk2hs/pull/293 so apply that
-  # patch here. That single patch is for the gtk2hs super-repo, out of which
-  # we extract the patch for each indvidiual project (glib/gio/pango/gtk/gtk3).
-  glib = appendPatch super.glib (pkgs.fetchpatch {
-    url = "https://github.com/gtk2hs/gtk2hs/commit/1cf2f9bff2427d39986e32880d1383cfff49ab0e.patch";
-    includes = [ "glib.cabal" ];
-    stripLen = 1;
-    sha256 = "1zdss1xgsbijs3kx8dp5a81qryrfc1zm1xrd20whna3dqakf8b7g";
-  });
-  gio = appendPatch super.gio (pkgs.fetchpatch {
-    url = "https://github.com/gtk2hs/gtk2hs/commit/1cf2f9bff2427d39986e32880d1383cfff49ab0e.patch";
-    includes = [ "gio.cabal" ];
-    stripLen = 1;
-    sha256 = "0d72k6gqvgax9jcqi3gz1gqnar7jg8p5065z3mw2fcwvdw46s2zv";
-  });
-  pango = appendPatch super.pango (pkgs.fetchpatch {
-    url = "https://github.com/gtk2hs/gtk2hs/commit/1cf2f9bff2427d39986e32880d1383cfff49ab0e.patch";
-    includes = [ "pango.cabal" ];
-    stripLen = 1;
-    sha256 = "0dc221wlmyhc24h6ybfhbkxmcx4i6bvkbr1zgqidbnj3yp6w0l5w";
-  });
-  # gtk/gtk3 have an additional complication: independent of the above
-  # 0.13.8.0-specific fix, they need to be told on Darwin to use the Quartz
+  # gtk/gtk3 needs to be told on Darwin to use the Quartz
   # rather than X11 backend (see eg https://github.com/gtk2hs/gtk2hs/issues/249).
-  gtk3 =
-    let
-      patchedGtk3 = appendPatch super.gtk3 (pkgs.fetchpatch {
-        url = "https://github.com/gtk2hs/gtk2hs/commit/1cf2f9bff2427d39986e32880d1383cfff49ab0e.patch";
-        includes = [ "gtk3.cabal" ];
-        stripLen = 1;
-        sha256 = "0zvj0dzfwf9bksfhi0m4v0h5aij236gd0qhyr1adpdcjrkd8zbkd";
-      });
-    in
-      # The appendConfigureFlags should remain even after we can drop patchedGtk3.
-      appendConfigureFlags patchedGtk3 (pkgs.lib.optional pkgs.stdenv.isDarwin "-f have-quartz-gtk");
-  gtk =
-    let
-      patchedGtk = appendPatch super.gtk (pkgs.fetchpatch {
-        url = "https://github.com/gtk2hs/gtk2hs/commit/1cf2f9bff2427d39986e32880d1383cfff49ab0e.patch";
-        includes = [ "gtk.cabal-renamed" ];
-        stripLen = 1;
-        sha256 = "0wb0scvmhg8b42hxpns9m6zak3r8b25a2z7wg6vl56n17nb635l7";
-        # One final complication: the gtk cabal file in the source repo (as seen
-        # by the patch) is `gtk.cabal-renamed`, but this gets changed to the usual
-        # `gtk.cabal` before uploading to Hackage by a script.
-        postFetch = ''
-          substituteInPlace $out --replace "-renamed" ""
-        '';
-      });
-    in
-      # The appendConfigureFlags should remain even after we can drop patchedGtk.
-      appendConfigureFlags patchedGtk (pkgs.lib.optional pkgs.stdenv.isDarwin "-f have-quartz-gtk");
+  gtk3 = appendConfigureFlags super.gtk3 (pkgs.lib.optional pkgs.stdenv.isDarwin "-f have-quartz-gtk");
+  gtk = appendConfigureFlags super.gtk (pkgs.lib.optional pkgs.stdenv.isDarwin "-f have-quartz-gtk");
 
   # Chart-tests needs and compiles some modules from Chart itself
   Chart-tests = (addExtraLibrary super.Chart-tests self.QuickCheck).overrideAttrs (old: {
@@ -1352,55 +1144,18 @@ self: super: {
     '';
   });
 
-  # Unnecessary upper bound on vector <0.12.1
-  bitwise-enum = doJailbreak super.bitwise-enum;
-
   # This breaks because of version bounds, but compiles and runs fine.
   # Last commit is 5 years ago, so we likely won't get upstream fixed soon.
   # https://bitbucket.org/rvlm/hakyll-contrib-hyphenation/src/master/
   # Therefore we jailbreak it.
   hakyll-contrib-hyphenation = doJailbreak super.hakyll-contrib-hyphenation;
 
-  # https://github.com/bergmark/feed/issues/43
-  feed = dontCheck super.feed;
-
-  pantry_0_2_0_0 = appendPatches (dontCheck super.pantry_0_2_0_0) [
-    # pantry-0.2.0.0 doesn't build with ghc-8.8, but there is a PR adding support.
-    # https://github.com/commercialhaskell/pantry/pull/6
-    # Currently stack-2.1.3.1 requires pantry-0.2.0.0, but when a newer version of
-    # stack is released, it will probably use the newer pantry version, so we
-    # can completely get rid of pantry-0.2.0.0.
-    (pkgs.fetchpatch {
-      url = "https://github.com/commercialhaskell/pantry/pull/6.diff";
-      sha256 = "0aml06jshpjh3aiscs5av7y33m3d6s6x5pzdvh7pky476izfg87k";
-      excludes = [
-        ".azure/azure-linux-template.yml"
-        ".azure/azure-osx-template.yml"
-        ".azure/azure-windows-template.yml"
-        "package.yaml"
-        "pantry.cabal"
-        "stack-lts-11.yaml"
-        "stack-lts-12.yaml"
-        "stack-nightly.yaml"
-        "stack-windows.yaml"
-        "stack.yaml"
-      ];
-    })
-  ];
-
-  # https://github.com/serokell/nixfmt/pull/62
+  # 2020-06-22: NOTE: > 0.4.0 => rm Jailbreak: https://github.com/serokell/nixfmt/issues/71
   nixfmt = doJailbreak super.nixfmt;
 
-  # https://github.com/phadej/binary-orphans/issues/45
+  # 2020-06-22: NOTE: QuickCheck upstreamed https://github.com/phadej/binary-instances/issues/7
   binary-instances = dontCheck super.binary-instances;
 
-  # Disabling the test suite lets the build succeed on older CPUs
-  # that are unable to run the generated library because they
-  # lack support for AES-NI, like some of our Hydra build slaves
-  # do. See https://github.com/NixOS/nixpkgs/issues/81915 for
-  # details.
-  cryptonite = dontCheck super.cryptonite;
-
   # The test suite depends on an impure cabal-install installation in
   # $HOME, which we don't have in our build sandbox.
   cabal-install-parsers = dontCheck super.cabal-install-parsers;
@@ -1408,14 +1163,6 @@ self: super: {
   # gitit is unbroken in the latest release
   gitit = markUnbroken super.gitit;
 
-  # haskell-ci-0.8 needs cabal-install-parsers ==0.1, but we have 0.2.
-  haskell-ci = doJailbreak super.haskell-ci;
-
-  # Needs the latest version of vty.
-  matterhorn = super.matterhorn.overrideScope (self: super: {
-    vty = self.vty_5_28_2;
-  });
-
   # Test suite requires database
   persistent-mysql = dontCheck super.persistent-mysql;
   persistent-postgresql = dontCheck super.persistent-postgresql;
@@ -1440,16 +1187,11 @@ self: super: {
     sha256 = "097wqn8hxsr50b9mhndg5pjim5jma2ym4ylpibakmmb5m98n17zp";
   });
 
-  # Needs a version that's newer than LTS-15.x provides.
-  weeder = super.weeder.override { generic-lens = self.generic-lens_2_0_0_0;  };
-
+  # polysemy-plugin 0.2.5.0 has constraint ghc-tcplugins-extra (==0.3.*)
+  # This upstream issue is relevant:
+  # https://github.com/polysemy-research/polysemy/issues/322
   polysemy-plugin = super.polysemy-plugin.override {
-    # polysemy-plugin 0.2.5.0 has constraint ghc-tcplugins-extra (==0.3.*)
-    # This upstream issue is relevant:
-    # https://github.com/polysemy-research/polysemy/issues/322
     ghc-tcplugins-extra = self.ghc-tcplugins-extra_0_3_2;
-    # version of Polysemy the plugin goes with
-    polysemy = self.polysemy_1_3_0_0;
   };
 
   # Test suite requires running a database server. Testing is done upstream.
@@ -1465,38 +1207,12 @@ self: super: {
     sha256 = "0xbfhzhzg94b4r5qy5dg1c40liswwpqarrc2chcwgfbfnrmwkfc2";
   });
 
-  # Depends on selective >= 0.4, but the default of selective is 0.3
-  headed-megaparsec = super.headed-megaparsec.override {
-    selective = self.selective_0_4_1;
-  };
-
-  # Needed for ghcide
-  haskell-lsp_0_22_0_0 = super.haskell-lsp_0_22_0_0.override {
-    haskell-lsp-types = self.haskell-lsp-types_0_22_0_0;
-  };
-
   # this will probably need to get updated with every ghcide update,
   # we need an override because ghcide is tracking haskell-lsp closely.
-  ghcide = dontCheck (super.ghcide.override rec {
-    haskell-lsp-types = self.haskell-lsp-types_0_22_0_0;
-    haskell-lsp = self.haskell-lsp_0_22_0_0;
-    hie-bios = self.hie-bios_0_5_0;
-    ghc-check = self.ghc-check_0_3_0_1;
-  });
-
-  # stackage right now is not new enough for hlint-3.0
-  ghc-lib-parser-ex_8_10_0_13 = super.ghc-lib-parser-ex_8_10_0_13.override {
-    ghc-lib-parser = self.ghc-lib-parser_8_10_1_20200523;
-  };
-
-  hlint = super.hlint.override {
-    ghc-lib-parser = self.ghc-lib-parser_8_10_1_20200523;
-    ghc-lib-parser-ex = self.ghc-lib-parser-ex_8_10_0_13;
-    extra = self.extra_1_7_3;
-    filepattern = self.filepattern.override {
-      extra = self.extra_1_7_3;
-    };
-  };
+  ghcide = dontCheck (super.ghcide.overrideScope (self: super: {
+    hie-bios = dontCheck super.hie-bios_0_7_1;
+    lsp-test = dontCheck self.lsp-test_0_11_0_6;
+  }));
 
   # hasn‘t bumped upper bounds
   # upstream: https://github.com/obsidiansystems/which/pull/6
@@ -1506,4 +1222,278 @@ self: super: {
   # through $PATH but they aren't in $PATH
   dhall-lsp-server = dontCheck super.dhall-lsp-server;
 
-} // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
+  # https://github.com/ocharles/weeder/issues/15
+  weeder = doJailbreak super.weeder;
+
+  # Requested version bump on upstream https://github.com/obsidiansystems/constraints-extras/issues/32
+  constraints-extras = doJailbreak super.constraints-extras;
+
+  # Necessary for stack
+  # x509-validation test suite hangs: upstream https://github.com/vincenthz/hs-certificate/issues/120
+  # tls test suite fails: upstream https://github.com/vincenthz/hs-tls/issues/434
+  x509-validation = dontCheck super.x509-validation;
+  tls = dontCheck super.tls;
+
+  patch = appendPatches super.patch [
+    # Upstream PR: https://github.com/reflex-frp/patch/pull/20
+    # Makes tests work with hlint 3
+    (pkgs.fetchpatch {
+      url = "https://github.com/reflex-frp/patch/commit/3ed23a4e4049ee17e64a1a5bbebf1990cdbe033a.patch";
+      sha256 ="1hfa980wln8kzbqw1lr8ddszgcibw25xf12ki2jb9xkl464aynzf";
+    })
+    # Upstream PR: https://github.com/reflex-frp/patch/pull/17
+    # Bumps version dependencies
+    (pkgs.fetchpatch {
+      url = "https://github.com/reflex-frp/patch/commit/a191ed9ded708ed7ff0cf53ad6dafaf54db5b95a.patch";
+      sha256 ="1x9w5fimhk3a0l2aa5z91nqaa6s2irz1775iidd0191m6w25vszp";
+    })
+  ];
+
+  reflex = appendPatches super.reflex [
+    # Upstream PR: https://github.com/reflex-frp/reflex/pull/434
+    # Bump version bounds
+    (pkgs.fetchpatch {
+      url = "https://github.com/reflex-frp/reflex/commit/e6104bdfd7f664f524b6765275490722e376df4d.patch";
+      sha256 ="1awp5p4640cnhfd50dplsvp0kzy6h8r0hpbw1s40blni74r3dhzr";
+    })
+    # Upstream PR: https://github.com/reflex-frp/reflex/pull/436
+    # Fix build with newest dependent-map version
+    (pkgs.fetchpatch {
+      url = "https://github.com/reflex-frp/reflex/commit/dc3bf44d822d70594e3c474fe3869261776c3554.patch";
+      sha256 ="0rbjfj9b8p6zkvd5j4pak5kpgard6cyfvzk750s4xwpc1v84iiqd";
+    })
+    # Upstream PR: https://github.com/reflex-frp/reflex/pull/437
+    # Fix tests with newer dep versions
+    (pkgs.fetchpatch {
+      url = "https://github.com/reflex-frp/reflex/commit/87c74a1b9d9098eae8a56148c59ed4963a5232c2.patch";
+      sha256 ="0qhjjgd6n4fms1hpbblny78c95bfh74izhx9dvrdlnhz6q7xlm9q";
+    })
+  ];
+
+  # Tests disabled and broken override needed because of missing lib chrome-test-utils: https://github.com/reflex-frp/reflex-dom/issues/392
+  # Tests disabled because of very old dep: https://github.com/reflex-frp/reflex-dom/issues/393
+  reflex-dom-core = doDistribute (unmarkBroken (dontCheck (appendPatches super.reflex-dom-core [
+    # Upstream PR: https://github.com/reflex-frp/reflex-dom/pull/388
+    # Fix upper bounds
+    (pkgs.fetchpatch {
+      url = "https://github.com/reflex-frp/reflex-dom/commit/5ef04d8e478f410d2c63603b84af052c9273a533.patch";
+      sha256 ="0d0b819yh8mqw8ih5asdi9qcca2kmggfsi8gf22akfw1n7xvmavi";
+      stripLen = 2;
+      extraPrefix = "";
+    })
+    # Upstream PR: https://github.com/reflex-frp/reflex-dom/pull/394
+    # Bump dependent-map
+    (pkgs.fetchpatch {
+      url = "https://github.com/reflex-frp/reflex-dom/commit/695bd17d5dcdb1bf321ee8858670731637f651db.patch";
+      sha256 ="0llky3i37rakgsw9vqaqmwryv7s91w8ph8xjkh83nxjs14p5zfyk";
+      stripLen = 2;
+      extraPrefix = "";
+    })
+  ])));
+
+  # add unreleased commit fixing version constraint as a patch
+  # Can be removed if https://github.com/lpeterse/haskell-utc/issues/8 is resolved
+  utc = appendPatch super.utc (pkgs.fetchpatch {
+    url = "https://github.com/lpeterse/haskell-utc/commit/e4502c08591e80d411129bb7c0414539f6302aaf.diff";
+    sha256 = "0v6kv1d4syjzgzc2s7a76c6k4vminlcq62n7jg3nn9xd00gwmmv7";
+  });
+
+  # Tests disabled because they assume to run in the whole jsaddle repo and not the hackage tarbal of jsaddle-warp.
+  jsaddle-warp = dontCheck super.jsaddle-warp;
+
+  # 2020-06-24: Jailbreaking because of restrictive test dep bounds
+  # Upstream issue: https://github.com/kowainik/trial/issues/62
+  trial = doJailbreak super.trial;
+
+  # 2020-06-24: Tests are broken in hackage distribution.
+  # See: https://github.com/kowainik/stan/issues/316
+  stan = dontCheck super.stan;
+
+  # 2020-06-24: Tests are broken in hackage distribution.
+  # See: https://github.com/robstewart57/rdf4h/issues/39
+  rdf4h = dontCheck super.rdf4h;
+
+  # hasn't bumped upper bounds
+  # test fails: "floskell-test: styles/base.md: openBinaryFile: does not exist (No such file or directory)"
+  # https://github.com/ennocramer/floskell/issues/48
+  floskell = dontCheck (doJailbreak super.floskell);
+
+  # hasn't bumped upper bounds
+  # test fails because of a "Warning: Unused LANGUAGE pragma"
+  # https://github.com/ennocramer/monad-dijkstra/issues/4
+  monad-dijkstra = dontCheck (doJailbreak super.monad-dijkstra);
+
+  # Fixed upstream but not released to Hackage yet:
+  # https://github.com/k0001/hs-libsodium/issues/2
+  libsodium = overrideCabal super.libsodium (drv: {
+    libraryToolDepends = (drv.libraryToolDepends or []) ++ [self.c2hs];
+  });
+
+  # https://github.com/kowainik/policeman/issues/57
+  policeman = doJailbreak super.policeman;
+
+  # 2020-08-14: gi-pango from stackage is to old for the C libs it links against in nixpkgs.
+  # That's why we need to bump a ton of dependency versions to unbreak them.
+  gi-pango = assert super.gi-pango.version == "1.0.22"; self.gi-pango_1_0_23;
+  haskell-gi-base = assert super.haskell-gi-base.version == "0.23.0"; addBuildDepends (self.haskell-gi-base_0_24_3) [ pkgs.gobject-introspection ];
+  haskell-gi = assert super.haskell-gi.version == "0.23.1"; self.haskell-gi_0_24_4;
+  gi-cairo = assert super.gi-cairo.version == "1.0.23"; self.gi-cairo_1_0_24;
+  gi-glib = assert super.gi-glib.version == "2.0.23"; self.gi-glib_2_0_24;
+  gi-gobject = assert super.gi-gobject.version == "2.0.22"; self.gi-gobject_2_0_24;
+  gi-atk = assert super.gi-atk.version == "2.0.21"; self.gi-atk_2_0_22;
+  gi-gio = assert super.gi-gio.version == "2.0.26"; self.gi-gio_2_0_27;
+  gi-gdk = assert super.gi-gdk.version == "3.0.22"; self.gi-gdk_3_0_23;
+  gi-gtk = assert super.gi-gtk.version == "3.0.33"; self.gi-gtk_3_0_35;
+  gi-gdkpixbuf = assert super.gi-gdkpixbuf.version == "2.0.23"; self.gi-gdkpixbuf_2_0_24;
+
+  # 2020-08-14: Needs some manual patching to be compatible with haskell-gi-base 0.24
+  # Created upstream PR @ https://github.com/ghcjs/jsaddle/pull/119
+  jsaddle-webkit2gtk = appendPatch super.jsaddle-webkit2gtk (pkgs.fetchpatch {
+    url = "https://github.com/ghcjs/jsaddle/compare/9727365...f842748.patch";
+    sha256 = "07l4l999lmlx7sqxf7v4f70rmxhx9r0cjblkgc4n0y6jin4iv1cb";
+    stripLen = 2;
+    extraPrefix = "";
+  });
+
+  # Missing -Iinclude parameter to doc-tests (pull has been accepted, so should be resolved when 0.5.3 released)
+  # https://github.com/lehins/massiv/pull/104
+  massiv = dontCheck super.massiv;
+
+  # Upstream PR: https://github.com/jkff/splot/pull/9
+  splot = appendPatch super.splot (pkgs.fetchpatch {
+    url = "https://github.com/jkff/splot/commit/a6710b05470d25cb5373481cf1cfc1febd686407.patch";
+    sha256 = "1c5ck2ibag2gcyag6rjivmlwdlp5k0dmr8nhk7wlkzq2vh7zgw63";
+  });
+
+  # Version bumps have not been merged by upstream yet.
+  # https://github.com/obsidiansystems/dependent-sum-aeson-orphans/pull/5
+  dependent-sum-aeson-orphans = appendPatch super.dependent-sum-aeson-orphans (pkgs.fetchpatch {
+    url = "https://github.com/obsidiansystems/dependent-sum-aeson-orphans/commit/5a369e433ad7e3eef54c7c3725d34270f6aa48cc.patch";
+    sha256 = "1lzrcicvdg77hd8j2fg37z19amp5yna5xmw1fc06zi0j95csll4r";
+  });
+
+  # Tests are broken because of missing files in hackage tarball.
+  # https://github.com/jgm/commonmark-hs/issues/55
+  commonmark-extensions = dontCheck super.commonmark-extensions;
+
+  # Apply version-bump patch that is not contained in released version yet.
+  # Upstream PR: https://github.com/srid/neuron/pull/304
+  neuron = appendPatch super.neuron (pkgs.fetchpatch {
+    url= "https://github.com/srid/neuron/commit/9ddcb7e9d63b8266d1372ef7c14c13b6b5277990.patch";
+    sha256 = "01f9v3jnl05fnpd624wv3a0j5prcbnf62ysa16fbc0vabw19zv1b";
+    excludes = [ "commonmark-hs/github.json" ];
+    stripLen = 2;
+    extraPrefix = "";
+  });
+
+  # Testsuite trying to run `which haskeline-examples-Test`
+  haskeline_0_8_1_0 = dontCheck super.haskeline_0_8_1_0;
+
+  # Tests for list-t, superbuffer, and stm-containers
+  # depend on HTF and it is broken, 2020-08-23
+  list-t = dontCheck super.list-t;
+  superbuffer = dontCheck super.superbuffer;
+  stm-containers = dontCheck super.stm-containers;
+
+  # Fails with "supports custom headers"
+  Spock-core = dontCheck super.Spock-core;
+
+  # Needed by Hasura  1.3.1
+  dependent-map_0_2_4_0 = super.dependent-map_0_2_4_0.override {
+    dependent-sum = self.dependent-sum_0_4;
+  };
+
+  # Hasura 1.3.1
+  # Because of ghc-heap-view, profiling needs to be disabled.
+  graphql-engine = disableLibraryProfiling( overrideCabal (super.graphql-engine.override {
+     immortal = self.immortal_0_2_2_1;
+     dependent-map = self.dependent-map_0_2_4_0;
+     dependent-sum = self.dependent-sum_0_4;
+     witherable = self.witherable_0_3_2;
+  }) (drv: {
+     # version in cabal file is invalid
+     version = "1.3.1-beta1";
+     # hasura needs VERSION env exported during build
+     preBuild = "export VERSION=1.3.1-beta1";
+  }));
+
+  graphql-parser = super.graphql-parser.override {
+     protolude = self.protolude_0_3_0;
+  };
+
+  # Requires repline 0.4 which is the default only for ghc8101, override for the rest
+  zre = super.zre.override {
+    repline = self.repline_0_4_0_0.override {
+      haskeline = self.haskeline_0_8_1_0;
+    };
+  };
+
+  # https://github.com/bos/statistics/issues/170
+  statistics = dontCheck super.statistics;
+
+  hcoord = overrideCabal super.hcoord (drv: {
+    # Remove when https://github.com/danfran/hcoord/pull/8 is merged.
+    patches = [
+      (pkgs.fetchpatch {
+        url = "https://github.com/danfran/hcoord/pull/8/commits/762738b9e4284139f5c21f553667a9975bad688e.patch";
+        sha256 = "03r4jg9a6xh7w3jz3g4bs7ff35wa4rrmjgcggq51y0jc1sjqvhyz";
+      })
+    ];
+    # Remove when https://github.com/danfran/hcoord/issues/9 is closed.
+    doCheck = false;
+  });
+
+  # Tests rely on `Int` being 64-bit: https://github.com/hspec/hspec/issues/431.
+  # Also, we need QuickCheck-2.14.x to build the test suite, which isn't easy in LTS-16.x.
+  # So let's not go there and just disable the tests altogether.
+  hspec-core = dontCheck super.hspec-core;
+
+  # github.com/ucsd-progsys/liquidhaskell/issues/1729
+  liquidhaskell = super.liquidhaskell.override { Diff = self.Diff_0_3_4; };
+  Diff_0_3_4 = dontCheck super.Diff_0_3_4;
+
+  # We want the latest version of cryptonite. This is a first step towards
+  # resolving https://github.com/NixOS/nixpkgs/issues/81915.
+  cryptonite = doDistribute self.cryptonite_0_27;
+
+  # We want the latest version of Pandoc.
+  hslua = doDistribute self.hslua_1_1_2;
+  jira-wiki-markup = doDistribute self.jira-wiki-markup_1_3_2;
+  pandoc = doDistribute self.pandoc_2_10_1;
+  pandoc-citeproc = doDistribute self.pandoc-citeproc_0_17_0_2;
+  pandoc-types = doDistribute self.pandoc-types_1_21;
+  rfc5051 = doDistribute self.rfc5051_0_2;
+
+  # Upstream forgot to change the Cabal version bounds in the test suite.
+  # See: https://github.com/jaspervdj/stylish-haskell/pull/297
+  # Will be fixed whenever they next bump the version number
+  stylish-haskell = appendPatch super.stylish-haskell (pkgs.fetchpatch {
+    url = "https://github.com/jaspervdj/stylish-haskell/commit/9550aa1cd177aa6fe271d075177109d66a79e67f.patch";
+    sha256 = "1ffnbd2s4fx0ylnnlcyyag119yxb32p5r20b38l39lsa0jwv229f";
+  });
+  # INSERT NEW OVERRIDES ABOVE THIS LINE
+
+} // (let
+  inherit (self) hls-ghcide hls-brittany;
+  hlsScopeOverride = self: super: {
+    # haskell-language-server uses its own fork of ghcide
+    # Test disabled: it seems to freeze (is it just that it takes a long time ?)
+    ghcide = dontCheck hls-ghcide;
+    # we are faster than stack here
+    hie-bios = dontCheck super.hie-bios_0_7_1;
+    lsp-test = dontCheck super.lsp-test_0_11_0_6;
+    # fourmolu can‘t compile with an older aeson
+    aeson = dontCheck super.aeson_1_5_2_0;
+    # brittany has an aeson upper bound of 1.5
+    brittany = hls-brittany;
+    data-tree-print = doJailbreak super.data-tree-print;
+    ghc-exactprint = dontCheck super.ghc-exactprint_0_6_3_2;
+  };
+  in {
+    # jailbreaking for hie-bios 0.7.0 (upstream PR: https://github.com/haskell/haskell-language-server/pull/357)
+    haskell-language-server = dontCheck (doJailbreak (super.haskell-language-server.overrideScope hlsScopeOverride));
+    hls-ghcide = dontCheck (super.hls-ghcide.overrideScope hlsScopeOverride);
+    hls-brittany = dontCheck (super.hls-brittany.overrideScope hlsScopeOverride);
+    fourmolu = dontCheck (super.fourmolu.overrideScope hlsScopeOverride);
+  }
+)  // import ./configuration-tensorflow.nix {inherit pkgs haskellLib;} self super
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
index 4dd08bbd4333..5b4768829431 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.10.x.nix
@@ -61,58 +61,45 @@ self: super: {
   haddock-library = self.haddock-library_1_9_0;
 
   # Jailbreak to fix the build.
-  async = doJailbreak super.async;
-  ChasingBottoms = doJailbreak super.ChasingBottoms;
-  ed25519 = doJailbreak super.ed25519;
-  email-validate = doJailbreak super.email-validate;  # https://github.com/Porges/email-validate-hs/issues/51
-  feed = doJailbreak super.feed;  # https://github.com/bergmark/feed/issues/48
-  hashable = doJailbreak super.hashable;
-  pandoc = doJailbreak super.pandoc;
-  parallel = doJailbreak super.parallel;
-  regex-base = doJailbreak super.regex-base;
-  regex-compat = doJailbreak super.regex-compat;
-  regex-pcre-builtin = doJailbreak super.regex-pcre-builtin;
-  regex-posix = doJailbreak super.regex-posix;
-  regex-tdfa = doJailbreak super.regex-tdfa;
-  split = doJailbreak super.split;
+  base-noprelude = doJailbreak super.base-noprelude;
   system-fileio = doJailbreak super.system-fileio;
-  tar = doJailbreak super.tar;
-  tasty-expected-failure = doJailbreak super.tasty-expected-failure;
-  tasty-rerun = doJailbreak super.tasty-rerun;  # https://github.com/ocharles/tasty-rerun/issues/18
   unliftio-core = doJailbreak super.unliftio-core;
-  vector = doJailbreak super.vector;
-  zlib = doJailbreak super.zlib;
 
   # Use the latest version to fix the build.
-  dhall = self.dhall_1_32_0;
-  ghc-lib-parser-ex = self.ghc-lib-parser-ex_8_10_0_4;
+  dhall = self.dhall_1_35_0;
   lens = self.lens_4_19_2;
-  optics-core = self.optics-core_0_3;
-  repline = self.repline_0_3_0_0;
+  optics = self.optics_0_3;
+  optics-core = self.optics-core_0_3_0_1;
+  optics-extra = self.optics-extra_0_3;
+  optics-th = self.optics-th_0_3_0_2;
+  repline = self.repline_0_4_0_0;
   singletons = self.singletons_2_7;
   th-desugar = self.th-desugar_1_11;
 
+  insert-ordered-containers = super.insert-ordered-containers.override {
+    optics-core = self.optics-core_0_3_0_1;
+    optics-extra = self.optics-extra_0_3.override {
+      optics-core = self.optics-core_0_3_0_1;
+    };
+  };
+
+  # Jailbreaking because monoidal-containers hasn‘t bumped it's base dependency for 8.10.
+  monoidal-containers = doJailbreak super.monoidal-containers;
+
   # `ghc-lib-parser-ex` (see conditionals in its `.cabal` file) does not need
   # the `ghc-lib-parser` dependency on GHC >= 8.8. However, because we have
   # multiple verions of `ghc-lib-parser(-ex)` available, and the default ones
   # are older ones, those older ones will complain. Because we have a newer
   # GHC, we can just set the dependency to `null` as it is not used.
-  ghc-lib-parser-ex_8_10_0_4 = super.ghc-lib-parser-ex_8_10_0_4.override { ghc-lib-parser = null; };
+  ghc-lib-parser-ex = super.ghc-lib-parser-ex.override { ghc-lib-parser = null; };
 
   # Jailbreak to fix the build.
-  aeson-diff = doJailbreak super.aeson-diff;
   brick = doJailbreak super.brick;
-  cabal-plan = doJailbreak super.cabal-plan;
-  cborg = doJailbreak super.cborg;
-  cborg-json = doJailbreak super.cborg-json;
   exact-pi = doJailbreak super.exact-pi;
-  policeman = doJailbreak super.policeman;
-  relude = dontCheck (doJailbreak super.relude);
   serialise = doJailbreak super.serialise;
   setlocale = doJailbreak super.setlocale;
   shellmet = doJailbreak super.shellmet;
-  weeder = doJailbreak super.weeder;    # https://github.com/ocharles/weeder/issues/15
-  xmobar = doJailbreak super.xmobar;
+  shower = doJailbreak super.shower;
 
   # The shipped Setup.hs file is broken.
   csv = overrideCabal super.csv (drv: { preCompileBuildDriver = "rm Setup.hs"; });
@@ -135,4 +122,11 @@ self: super: {
     excludes = ["package.yaml"];
   });
 
+  # hnix 0.9.0 does not provide an executable for ghc < 8.10, so define completions here for now.
+  hnix = generateOptparseApplicativeCompletion "hnix"
+    (overrideCabal super.hnix (drv: {
+      # executable is allowed for ghc >= 8.10 and needs repline
+      executableHaskellDepends = drv.executableToolDepends or [] ++ [ self.repline ];
+    }));
+
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
index 57c38b22ccd8..339fda5d6fbf 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.6.x.nix
@@ -64,6 +64,7 @@ self: super: {
   monad-par = dontCheck super.monad-par;  # https://github.com/simonmar/monad-par/issues/66
   github = dontCheck super.github; # hspec upper bound exceeded; https://github.com/phadej/github/pull/341
   binary-orphans = dontCheck super.binary-orphans; # tasty upper bound exceeded; https://github.com/phadej/binary-orphans/commit/8ce857226595dd520236ff4c51fa1a45d8387b33
+  rebase = doJailbreak super.rebase; # time ==1.9.* is too low
 
   # https://github.com/jgm/skylighting/issues/55
   skylighting-core = dontCheck super.skylighting-core;
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
index c23b15ffef3e..a2562e44527b 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-8.8.x.nix
@@ -41,6 +41,13 @@ self: super: {
   unix = null;
   xhtml = null;
 
+  # Hasura 1.3.1
+  # Because of ghc-heap-view, profiling needs to be disabled.
+  graphql-engine = overrideCabal (super.graphql-engine) (drv: {
+     # GHC 8.8.x needs a revert of https://github.com/hasura/graphql-engine/commit/a77bb0570f4210fb826985e17a84ddcc4c95d3ea
+     patches = [ ./patches/hasura-884-compat.patch ];
+  });
+
   # GHC 8.8.x can build haddock version 2.23.*
   haddock = self.haddock_2_23_1;
   haddock-api = self.haddock-api_2_23_1;
@@ -54,7 +61,6 @@ self: super: {
   async = doJailbreak super.async;
   ChasingBottoms = doJailbreak super.ChasingBottoms;
   chell = doJailbreak super.chell;
-  cryptohash-sha256 = doJailbreak super.cryptohash-sha256;
   Diff = dontCheck super.Diff;
   doctest = doJailbreak super.doctest;
   hashable = doJailbreak super.hashable;
@@ -74,7 +80,6 @@ self: super: {
   # TODO: remove when upstream accepts https://github.com/snapframework/io-streams-haproxy/pull/17
   io-streams-haproxy = doJailbreak super.io-streams-haproxy; # base >=4.5 && <4.13
   snap-server = doJailbreak super.snap-server;
-  xmobar = doJailbreak super.xmobar;
   exact-pi = doJailbreak super.exact-pi;
   time-compat = doJailbreak super.time-compat;
   http-media = doJailbreak super.http-media;
@@ -109,4 +114,16 @@ self: super: {
   # cabal-fmt requires Cabal3
   cabal-fmt = super.cabal-fmt.override { Cabal = self.Cabal_3_2_0_0; };
 
+  # liquidhaskell does not support ghc version 8.8.x.
+  liquid = markBroken super.liquid;
+  liquid-base = markBroken super.liquid-base;
+  liquid-bytestring = markBroken super.liquid-bytestring;
+  liquid-containers = markBroken super.liquid-containers;
+  liquid-ghc-prim = markBroken super.liquid-ghc-prim;
+  liquid-parallel = markBroken super.liquid-parallel;
+  liquid-platform = markBroken super.liquid-platform;
+  liquid-prelude = markBroken super.liquid-prelude;
+  liquid-vector = markBroken super.liquid-vector;
+  liquidhaskell = markBroken super.liquidhaskell;
+
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-head.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-head.nix
index 09755e4cc947..cbfd4b84b2ff 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-head.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-ghc-head.nix
@@ -26,6 +26,7 @@ self: super: {
   filepath = null;
   ghc-boot = null;
   ghc-boot-th = null;
+  ghc-bignum = null;
   ghc-compact = null;
   ghc-heap = null;
   ghci = null;
@@ -47,6 +48,7 @@ self: super: {
   transformers = null;
   unix = null;
   xhtml = null;
+  exceptions = null;
 
   # https://github.com/tibbe/unordered-containers/issues/214
   unordered-containers = dontCheck super.unordered-containers;
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
index 4f4b85b3315c..d474d45d7aaf 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-hackage2nix.yaml
@@ -1,6 +1,6 @@
 # pkgs/development/haskell-modules/configuration-hackage2nix.yaml
 
-compiler: ghc-8.8.3
+compiler: ghc-8.8.4
 
 core-packages:
   - array-0.5.4.0
@@ -64,17 +64,15 @@ core-packages:
 #
 # WARNING: This list is generated semiautomatically based on the most recent
 # LTS package set. If you want to add entries to it, you must do so before the
-# comment saying "# LTS Haskell x.y". Any changes after that commend will be
+# comment saying "# LTS Haskell x.y". Any changes after that comment will be
 # lost the next time `update-stackage.sh` runs.
 default-package-overrides:
-  # Newer versions have test suite failures.
-  - git-annex < 8.20200522
   # This was only intended for ghc-7.0.4, and has very old deps, one hidden behind a flag
   - MissingH ==1.4.2.0
   # gi-gdkx11-4.x requires gtk-4.x, which is still under development and
   # not yet available in Nixpkgs
   - gi-gdkx11 < 4
-  # LTS Haskell 15.15
+  # LTS Haskell 16.15
   - abstract-deque ==0.3
   - abstract-par ==0.3.3
   - AC-Angle ==1.0
@@ -90,6 +88,7 @@ default-package-overrides:
   - aeson-attoparsec ==0.0.0
   - aeson-better-errors ==0.9.1.0
   - aeson-casing ==0.2.0.0
+  - aeson-combinators ==0.0.2.1
   - aeson-compat ==0.3.9
   - aeson-default ==0.9.1.0
   - aeson-diff ==1.1.0.9
@@ -99,11 +98,12 @@ default-package-overrides:
   - aeson-picker ==0.1.0.5
   - aeson-pretty ==0.8.8
   - aeson-qq ==0.8.3
-  - aeson-schemas ==1.0.3
+  - aeson-schemas ==1.2.0
   - aeson-utils ==0.3.0.2
   - aeson-yak ==0.1.1.3
   - aeson-yaml ==1.0.6.0
   - al ==0.1.4.2
+  - alarmclock ==0.7.0.5
   - alerts ==0.1.2.0
   - alex ==3.2.5
   - alg ==0.2.13.1
@@ -206,18 +206,19 @@ default-package-overrides:
   - amazonka-waf ==1.6.1
   - amazonka-workspaces ==1.6.1
   - amazonka-xray ==1.6.1
-  - amqp ==0.19.1
+  - amqp ==0.20.0
+  - amqp-utils ==0.4.4.1
   - annotated-wl-pprint ==0.7.0
   - ansi-terminal ==0.10.3
   - ansi-wl-pprint ==0.6.9
-  - antiope-core ==7.4.5
-  - antiope-dynamodb ==7.4.5
-  - antiope-messages ==7.4.5
-  - antiope-s3 ==7.4.5
-  - antiope-sns ==7.4.5
-  - antiope-sqs ==7.4.5
+  - antiope-core ==7.5.1
+  - antiope-dynamodb ==7.5.1
+  - antiope-messages ==7.5.1
+  - antiope-s3 ==7.5.1
+  - antiope-sns ==7.5.1
+  - antiope-sqs ==7.5.1
   - ANum ==0.2.0.2
-  - apecs ==0.9.1
+  - apecs ==0.9.2
   - apecs-gloss ==0.2.4
   - apecs-physics ==0.4.4
   - api-field-json-th ==0.1.0.2
@@ -227,18 +228,23 @@ default-package-overrides:
   - approximate ==0.3.2
   - app-settings ==0.2.0.12
   - arbor-lru-cache ==0.1.1.1
-  - arbor-postgres ==0.0.5
   - arithmoi ==0.10.0.0
   - array-memoize ==0.6.0
   - arrow-extras ==0.1.0.1
+  - ascii ==1.0.0.2
+  - ascii-case ==1.0.0.2
+  - ascii-char ==1.0.0.2
   - asciidiagram ==1.3.3.3
+  - ascii-group ==1.0.0.2
+  - ascii-predicates ==1.0.0.2
   - ascii-progress ==0.3.3.0
-  - asif ==6.0.4
+  - ascii-superset ==1.0.0.2
+  - ascii-th ==1.0.0.2
   - asn1-encoding ==0.9.6
   - asn1-parse ==0.9.5
   - asn1-types ==0.3.4
-  - assert-failure ==0.1.2.3
-  - assoc ==1.0.1
+  - assert-failure ==0.1.2.5
+  - assoc ==1.0.2
   - astro ==0.4.2.1
   - async ==2.2.2
   - async-extra ==0.2.0.0
@@ -252,40 +258,47 @@ default-package-overrides:
   - attoparsec-base64 ==0.0.0
   - attoparsec-binary ==0.2
   - attoparsec-expr ==0.1.1.2
-  - attoparsec-ip ==0.0.5
   - attoparsec-iso8601 ==1.0.1.0
   - attoparsec-path ==0.0.0.1
-  - attoparsec-uri ==0.0.7
   - audacity ==0.0.2
-  - aur ==6.2.0.1
+  - aur ==7.0.4
+  - aura ==3.1.9
   - authenticate ==1.3.5
   - authenticate-oauth ==1.6.0.1
   - auto ==0.4.3.1
-  - autoexporter ==1.1.16
+  - autoexporter ==1.1.19
   - auto-update ==0.1.6
   - avers ==0.0.17.1
-  - avro ==0.4.7.0
+  - avro ==0.5.2.0
   - aws-cloudfront-signed-cookies ==0.2.0.6
-  - base16-bytestring ==0.1.1.6
+  - bank-holidays-england ==0.2.0.5
+  - base16 ==0.2.1.0
+  - base16-bytestring ==0.1.1.7
+  - base16-lens ==0.1.2.0
+  - base32 ==0.1.1.2
+  - base32-lens ==0.1.0.0
   - base32string ==0.9.1
   - base58string ==0.10.0
-  - base64 ==0.4.1
+  - base64 ==0.4.2.2
   - base64-bytestring ==1.0.0.3
   - base64-bytestring-type ==1.0.1
-  - base64-lens ==0.2.0
+  - base64-lens ==0.3.0
   - base64-string ==0.2
   - base-compat ==0.11.1
   - base-compat-batteries ==0.11.1
   - basement ==0.0.11
+  - base-noprelude ==4.13.0.0
   - base-orphans ==0.8.2
   - base-prelude ==1.3
   - base-unicode-symbols ==0.2.4.2
   - basic-prelude ==0.7.0
-  - bazel-runfiles ==0.7.0.1
+  - bazel-runfiles ==0.12
   - bbdb ==0.8
   - bcrypt ==0.0.11
   - bech32 ==1.0.2
+  - bech32-th ==1.0.2
   - bench ==1.0.12
+  - benchpress ==0.2.2.14
   - between ==0.11.0.0
   - bibtex ==0.1.0.6
   - bifunctors ==5.5.7
@@ -298,11 +311,11 @@ default-package-overrides:
   - binary-ieee754 ==0.1.0.0
   - binary-list ==1.1.1.2
   - binary-orphans ==1.0.1
-  - binary-parser ==0.5.5
+  - binary-parser ==0.5.6
   - binary-parsers ==0.2.4.0
   - binary-search ==1.0.0.3
   - binary-shared ==0.8.3
-  - binary-tagged ==0.2
+  - binary-tagged ==0.3
   - bindings-DSL ==1.0.25
   - bindings-GLFW ==3.3.2.0
   - bindings-libzip ==1.0.1
@@ -310,7 +323,7 @@ default-package-overrides:
   - bins ==0.1.2.0
   - bitarray ==0.0.1.1
   - bits ==0.5.2
-  - bitset-word8 ==0.1.1.1
+  - bitset-word8 ==0.1.1.2
   - bits-extra ==0.0.2.0
   - bitvec ==1.0.3.0
   - blake2 ==0.3.0
@@ -321,7 +334,7 @@ default-package-overrides:
   - blaze-bootstrap ==0.1.0.1
   - blaze-builder ==0.4.1.0
   - blaze-html ==0.9.1.2
-  - blaze-markup ==0.8.2.5
+  - blaze-markup ==0.8.2.7
   - blaze-svg ==0.3.6.1
   - blaze-textual ==0.2.1.0
   - bmp ==1.2.6.3
@@ -342,43 +355,44 @@ default-package-overrides:
   - boxes ==0.1.5
   - brick ==0.52.1
   - brittany ==0.12.1.1
+  - broadcast-chan ==0.2.1.1
   - bsb-http-chunked ==0.0.0.4
   - bson ==0.4.0.1
   - btrfs ==0.2.0.0
   - buffer-builder ==0.2.4.7
   - buffer-pipe ==0.0
   - bugsnag-hs ==0.1.0.3
-  - butcher ==1.3.3.1
+  - butcher ==1.3.3.2
   - bv ==0.5
   - bv-little ==1.1.1
   - byteable ==0.1.1
-  - bytebuild ==0.3.4.0
+  - byte-count-reader ==0.10.1.1
   - bytedump ==1.0
   - byte-order ==0.1.2.0
   - byteorder ==1.0.4
   - bytes ==0.17
   - byteset ==0.1.1.0
-  - byteslice ==0.2.2.0
-  - bytesmith ==0.3.6.0
   - bytestring-builder ==0.10.8.2.0
   - bytestring-conversion ==0.3.1
   - bytestring-lexing ==0.5.0.2
+  - bytestring-mmap ==0.2.2
   - bytestring-strict-builder ==0.4.5.3
   - bytestring-to-vector ==0.3.0.1
   - bytestring-tree-builder ==0.2.7.3
   - bz2 ==1.0.0.1
   - bzlib-conduit ==0.3.0.2
   - c2hs ==0.28.6
+  - cabal-appimage ==0.3.0.0
+  - cabal-debian ==5.0.3
   - cabal-doctest ==1.0.8
-  - cabal-flatpak ==0.1
-  - cabal-plan ==0.6.2.0
-  - cabal-rpm ==2.0.4
+  - cabal-rpm ==2.0.6
   - cache ==0.1.3.0
   - cacophony ==0.10.1
   - calendar-recycling ==0.0.0.1
   - call-stack ==0.2.0
   - can-i-haz ==0.3.1.0
   - ca-province-codes ==1.0.0.0
+  - cardano-coin-selection ==1.0.1
   - carray ==0.1.6.8
   - casa-client ==0.0.1
   - casa-types ==0.0.1
@@ -388,11 +402,11 @@ default-package-overrides:
   - casing ==0.1.4.1
   - cassava ==0.5.2.0
   - cassava-conduit ==0.5.1
-  - cassava-megaparsec ==2.0.1
+  - cassava-megaparsec ==2.0.2
   - cast ==0.1.0.2
   - category ==0.2.5.0
   - cayley-client ==0.4.13
-  - cborg ==0.2.3.0
+  - cborg ==0.2.4.0
   - cborg-json ==0.2.2.0
   - cereal ==0.5.8.1
   - cereal-conduit ==0.8.0
@@ -401,17 +415,22 @@ default-package-overrides:
   - cfenv ==0.1.0.0
   - chan ==0.0.4.1
   - ChannelT ==0.0.0.7
+  - character-cases ==0.1.0.4
   - charset ==0.3.7.1
   - charsetdetect-ae ==1.1.0.4
   - Chart ==1.9.3
   - Chart-diagrams ==1.9.3
   - chaselev-deque ==0.5.0.5
-  - ChasingBottoms ==1.3.1.8
-  - checkers ==0.5.5
+  - ChasingBottoms ==1.3.1.9
+  - cheapskate ==0.1.1.2
+  - cheapskate-highlight ==0.1.0.0
+  - cheapskate-lucid ==0.1.0.0
+  - checkers ==0.5.6
   - checksum ==0.0
   - chimera ==0.3.1.0
+  - chiphunk ==0.1.2.1
   - choice ==0.2.2
-  - chronologique ==0.3.1.1
+  - chronologique ==0.3.1.3
   - chronos ==1.1.1
   - chronos-bench ==0.2.0.2
   - chunked-data ==0.3.1
@@ -420,21 +439,22 @@ default-package-overrides:
   - cipher-des ==0.0.6
   - cipher-rc4 ==0.1.4
   - circle-packing ==0.1.0.6
+  - clash-ghc ==1.2.4
+  - clash-lib ==1.2.4
+  - clash-prelude ==1.2.4
   - classy-prelude ==1.5.0
   - classy-prelude-conduit ==1.5.0
   - classy-prelude-yesod ==1.5.0
   - clay ==0.13.3
   - clientsession ==0.9.1.2
-  - climb ==0.3.1
+  - climb ==0.3.3
   - Clipboard ==2.3.2.0
   - clock ==0.8
   - clock-extras ==0.1.0.2
-  - clr-host ==0.2.1.0
-  - clr-marshal ==0.2.0.0
   - clumpiness ==0.17.0.2
   - ClustalParser ==1.3.0
   - cmark ==0.6
-  - cmark-gfm ==0.2.1
+  - cmark-gfm ==0.2.2
   - cmark-lucid ==0.1.0.0
   - cmdargs ==0.10.20
   - codec-beam ==0.2.0
@@ -442,13 +462,14 @@ default-package-overrides:
   - code-page ==0.2
   - coercible-utils ==0.1.0
   - co-log ==0.4.0.1
+  - co-log-concurrent ==0.5.0.0
   - co-log-core ==0.2.1.1
   - co-log-polysemy ==0.0.1.2
   - Color ==0.1.4
-  - colorful-monoids ==0.2.1.2
+  - colorful-monoids ==0.2.1.3
   - colorize-haskell ==1.0.1
   - colour ==2.3.5
-  - colourista ==0.0.0.0
+  - colourista ==0.1.0.0
   - combinatorial ==0.1.0.1
   - comfort-array ==0.4
   - comfort-graph ==0.0.3.1
@@ -462,42 +483,44 @@ default-package-overrides:
   - composition ==1.0.2.1
   - composition-extra ==2.0.0
   - concise ==0.1.0.1
-  - concurrency ==1.8.1.0
+  - concurrency ==1.11.0.0
   - concurrent-extra ==0.7.0.12
-  - concurrent-output ==1.10.11
+  - concurrent-output ==1.10.12
   - concurrent-split ==0.0.1.1
+  - concurrent-supply ==0.1.8
   - cond ==0.4.1.1
-  - conduit ==1.3.2
+  - conduit ==1.3.2.1
   - conduit-algorithms ==0.0.11.0
   - conduit-combinators ==1.3.0
   - conduit-concurrent-map ==0.1.1
   - conduit-extra ==1.3.5
   - conduit-parse ==0.2.1.0
   - conduit-zstd ==0.0.2.0
-  - conferer ==0.2.0.0
-  - conferer-hspec ==0.2.0.0
-  - conferer-provider-json ==0.2.0.0
-  - conferer-warp ==0.2.0.0
+  - conferer ==0.4.1.1
+  - conferer-hspec ==0.4.0.1
+  - conferer-source-json ==0.4.0.1
+  - conferer-warp ==0.4.0.1
+  - ConfigFile ==1.1.4
   - config-ini ==0.2.4.0
   - configurator ==0.3.0.0
   - configurator-export ==0.1.0.1
+  - configurator-pg ==0.2.4
   - connection ==0.3.1
   - connection-pool ==0.2.2
   - console-style ==0.0.2.1
   - constraint ==0.1.4.0
-  - constraints ==0.11.2
+  - constraints ==0.12
   - constraint-tuples ==0.1.2
-  - contiguous ==0.5
   - contravariant ==1.5.2
-  - contravariant-extras ==0.3.5.1
+  - contravariant-extras ==0.3.5.2
   - control-bool ==0.2.1
   - control-monad-free ==0.6.2
   - control-monad-omega ==0.3.2
   - convertible ==1.1.1.0
   - cookie ==0.4.5
-  - core-data ==0.2.1.5
-  - core-program ==0.2.4.2
-  - core-text ==0.2.3.3
+  - core-data ==0.2.1.8
+  - core-program ==0.2.4.5
+  - core-text ==0.2.3.6
   - countable ==1.0
   - cpio-conduit ==0.7.0
   - cpphs ==1.20.9.1
@@ -509,9 +532,10 @@ default-package-overrides:
   - credential-store ==0.1.2
   - criterion ==1.5.6.2
   - criterion-measurement ==0.1.2.0
-  - cron ==0.6.2
+  - cron ==0.7.0
   - crypto-api ==0.13.3
   - crypto-cipher-types ==0.0.9
+  - cryptocompare ==0.1.1
   - crypto-enigma ==0.1.1.6
   - cryptohash ==0.11.9
   - cryptohash-cryptoapi ==0.1.4
@@ -529,6 +553,7 @@ default-package-overrides:
   - crypto-random-api ==0.2.0
   - crypt-sha512 ==0
   - csp ==1.4.0
+  - css-syntax ==0.1.0.0
   - css-text ==0.1.3.0
   - csv ==0.1.2
   - csv-conduit ==0.7.1.0
@@ -545,15 +570,18 @@ default-package-overrides:
   - cursor-fuzzy-time ==0.0.0.0
   - cursor-gen ==0.3.0.0
   - cutter ==0.0
-  - cyclotomic ==1.0.1
-  - czipwith ==1.0.1.2
+  - cyclotomic ==1.1.1
+  - czipwith ==1.0.1.3
+  - d10 ==0.2.1.6
   - data-accessor ==0.2.3
   - data-accessor-mtl ==0.2.0.4
   - data-accessor-transformers ==0.2.1.7
+  - data-ascii ==1.0.0.2
   - data-binary-ieee754 ==0.4.4
   - data-bword ==0.1.0.1
   - data-checked ==0.3
   - data-clist ==0.1.2.3
+  - data-compat ==0.1.0.2
   - data-default ==0.7.1.1
   - data-default-class ==0.1.2.0
   - data-default-instances-containers ==0.0.1
@@ -564,11 +592,14 @@ default-package-overrides:
   - data-dword ==0.3.2
   - data-endian ==0.1.1
   - data-fix ==0.2.1
+  - data-forest ==0.1.0.8
   - data-has ==0.3.0.0
   - data-interval ==2.0.1
   - data-inttrie ==0.1.4
   - data-lens-light ==0.1.2.2
   - data-memocombinators ==0.5.1
+  - data-msgpack ==0.0.13
+  - data-msgpack-types ==0.0.3
   - data-or ==1.0.0.5
   - data-ordlist ==0.4.7.0
   - data-ref ==0.0.2
@@ -578,25 +609,32 @@ default-package-overrides:
   - data-tree-print ==0.1.0.2
   - dataurl ==0.1.0.0
   - DAV ==1.3.4
-  - dbus ==1.2.15.1
+  - DBFunctor ==0.1.1.1
+  - dbus ==1.2.16
+  - dbus-hslogger ==0.1.0.1
+  - debian ==4.0.2
   - debian-build ==0.10.2.0
   - debug-trace-var ==0.2.0
   - dec ==0.0.3
   - Decimal ==0.5.1
-  - declarative ==0.5.2
+  - declarative ==0.5.3
   - deepseq-generics ==0.2.0.0
+  - deepseq-instances ==0.1.0.1
   - deferred-folds ==0.9.10.1
-  - dejafu ==2.1.0.3
+  - dejafu ==2.3.0.1
   - dense-linear-algebra ==0.1.0.0
+  - depq ==0.4.1.0
   - deque ==0.4.3
   - deriveJsonNoPrefix ==0.1.0.1
-  - deriving-compat ==0.5.8
-  - derulo ==1.0.8
+  - deriving-aeson ==0.2.6
+  - deriving-compat ==0.5.9
+  - derulo ==1.0.9
   - detour-via-sci ==1.0.0
-  - dhall ==1.30.0
-  - dhall-bash ==1.0.28
-  - dhall-json ==1.6.2
-  - dhall-yaml ==1.0.2
+  - dhall ==1.32.0
+  - dhall-bash ==1.0.30
+  - dhall-json ==1.6.4
+  - dhall-lsp-server ==1.0.8
+  - dhall-yaml ==1.1.0
   - diagrams ==1.4
   - diagrams-contrib ==1.4.4
   - diagrams-core ==1.4.2
@@ -605,6 +643,7 @@ default-package-overrides:
   - diagrams-rasterific ==1.4.2
   - diagrams-solve ==0.1.2
   - diagrams-svg ==1.4.3
+  - dialogflow-fulfillment ==0.1.1.3
   - di-core ==1.0.4
   - dictionary-sharing ==0.1.0.0
   - Diff ==0.4.0
@@ -618,35 +657,37 @@ default-package-overrides:
   - distributed-closure ==0.4.2.0
   - distribution-opensuse ==1.1.1
   - distributive ==0.6.2
-  - dl-fedora ==0.7.4
+  - dl-fedora ==0.7.5
   - dlist ==0.8.0.8
   - dlist-instances ==0.1.1.1
   - dlist-nonempty ==0.1.1
   - dns ==4.0.1
   - dockerfile ==0.2.0
-  - doclayout ==0.2.0.1
-  - doctemplates ==0.8
+  - doclayout ==0.3
+  - doctemplates ==0.8.2
   - doctest ==0.16.3
   - doctest-discover ==0.2.0.0
   - doctest-driver-gen ==0.3.0.2
   - doldol ==0.4.1.2
   - do-list ==1.0.1
   - do-notation ==0.1.0.2
-  - dotenv ==0.8.0.4
-  - dotgen ==0.4.2
+  - dotenv ==0.8.0.7
+  - dotgen ==0.4.3
   - dotnet-timespan ==0.0.1.0
   - double-conversion ==2.0.2.0
+  - download ==0.3.2.7
   - drinkery ==0.4
-  - dsp ==0.2.5
+  - dsp ==0.2.5.1
   - dual ==0.1.1.1
   - dual-tree ==0.2.2.1
   - dublincore-xml-conduit ==0.1.0.2
-  - dunai ==0.6.0
+  - dunai ==0.7.0
   - duration ==0.1.0.0
   - dvorak ==0.1.0.0
   - dynamic-state ==0.3.1
   - dyre ==0.8.12
   - eap ==0.9.0.2
+  - earcut ==0.1.0.4
   - Earley ==0.13.0.1
   - easy-file ==0.2.2
   - Ebnf2ps ==1.0.15
@@ -656,15 +697,21 @@ default-package-overrides:
   - edit-distance ==0.2.2.1
   - edit-distance-vector ==1.0.0.4
   - editor-open ==0.6.0.0
-  - egison ==3.10.3
+  - egison ==4.0.3
+  - egison-pattern-src ==0.2.1.0
+  - egison-pattern-src-th-mode ==0.2.1.1
   - either ==5.0.1.1
   - either-both ==0.1.1.1
   - either-unwrap ==1.1
+  - ekg ==0.4.0.15
+  - ekg-core ==0.1.1.7
+  - ekg-json ==0.1.0.6
+  - ekg-statsd ==0.2.5.0
   - elerea ==2.9.0
   - elf ==0.30
   - eliminators ==0.6
   - elm2nix ==0.2
-  - elm-bridge ==0.5.2
+  - elm-bridge ==0.6.1
   - elm-core-sources ==1.0.0
   - elm-export ==0.6.0.1
   - emacs-module ==0.1.1
@@ -686,18 +733,23 @@ default-package-overrides:
   - errors ==2.3.0
   - errors-ext ==0.4.2
   - ersatz ==0.4.8
-  - esqueleto ==3.3.3.0
+  - esqueleto ==3.3.4.0
+  - essence-of-live-coding ==0.1.0.3
+  - essence-of-live-coding-gloss ==0.1.0.3
+  - essence-of-live-coding-pulse ==0.1.0.3
+  - essence-of-live-coding-quickcheck ==0.1.0.3
   - etc ==0.4.1.0
   - eventful-core ==0.2.0
   - eventful-test-helpers ==0.2.0
   - event-list ==0.1.2
+  - eventstore ==1.4.1
   - every ==0.0.1
   - exact-combinatorics ==0.2.0.9
   - exact-pi ==0.5.0.1
   - exception-hierarchy ==0.1.0.3
   - exception-mtl ==0.4.0.1
   - exceptions ==0.10.4
-  - exception-transformers ==0.4.0.8
+  - exception-transformers ==0.4.0.9
   - executable-path ==0.0.3.1
   - exit-codes ==1.0.0
   - exomizer ==1.0.0
@@ -708,60 +760,62 @@ default-package-overrides:
   - extended-reals ==0.2.4.0
   - extensible-effects ==5.0.0.1
   - extensible-exceptions ==0.1.1.4
-  - extra ==1.6.21
+  - extra ==1.7.8
   - extractable-singleton ==0.0.1
   - extrapolate ==0.4.2
   - fail ==4.9.0.0
   - failable ==1.2.4.0
-  - fakedata ==0.5.0
+  - fakedata ==0.6.1
   - farmhash ==0.1.0.5
   - fast-digits ==0.3.0.0
   - fast-logger ==3.0.1
   - fast-math ==1.0.2
-  - fb ==2.0.0
+  - fb ==2.1.1
   - feature-flags ==0.1.0.1
   - fedora-dists ==1.1.2
   - fedora-haskell-tools ==0.9
   - feed ==1.3.0.1
   - FenwickTree ==0.1.2.1
   - fft ==0.1.8.6
-  - fgl ==5.7.0.2
+  - fgl ==5.7.0.3
   - filecache ==0.4.1
-  - file-embed ==0.0.12.0
+  - file-embed ==0.0.11.2
   - file-embed-lzma ==0
-  - filelock ==0.1.1.4
+  - filelock ==0.1.1.5
   - filemanip ==0.3.6.3
+  - file-modules ==0.1.2.4
   - file-path-th ==0.1.0.0
   - filepattern ==0.1.2
   - fileplow ==0.1.0.0
-  - filtrable ==0.1.3.0
+  - filtrable ==0.1.4.0
   - fin ==0.1.1
   - FindBin ==0.0.5
   - fingertree ==0.1.4.2
   - finite-typelits ==0.1.4.2
-  - first-class-families ==0.7.0.0
+  - first-class-families ==0.8.0.0
   - first-class-patterns ==0.3.2.5
   - fitspec ==0.4.8
   - fixed ==0.3
   - fixed-length ==0.2.2
   - fixed-vector ==1.2.0.0
-  - fixed-vector-hetero ==0.5.0.0
+  - fixed-vector-hetero ==0.6.0.0
   - flac ==0.2.0
   - flac-picture ==0.1.2
   - flags-applicative ==0.1.0.2
+  - flat ==0.4.4
   - flat-mcmc ==1.5.1
   - FloatingHex ==0.4
   - floatshow ==0.2.4
-  - flow ==1.0.20
+  - flow ==1.0.21
   - flush-queue ==1.0.0
-  - fmlist ==0.9.3
+  - fmlist ==0.9.4
   - fmt ==0.6.1.2
   - fn ==0.3.0.2
   - focus ==1.0.1.3
   - focuslist ==0.1.0.2
   - foldable1 ==0.1.0.0
   - fold-debounce ==0.2.0.9
-  - fold-debounce-conduit ==0.2.0.4
+  - fold-debounce-conduit ==0.2.0.5
   - foldl ==1.4.6
   - folds ==0.7.5
   - follow-file ==0.0.3
@@ -775,20 +829,23 @@ default-package-overrides:
   - formatting ==6.3.7
   - foundation ==0.0.25
   - free ==5.1.3
-  - free-categories ==0.1.0.0
+  - free-categories ==0.2.0.0
   - freenect ==1.2.1
   - freer-simple ==1.2.1.1
-  - freetype2 ==0.1.2
+  - freetype2 ==0.2.0
   - free-vl ==0.1.4
   - friendly-time ==0.4.1
   - from-sum ==0.2.3.0
   - frontmatter ==0.1.0.2
   - fsnotify ==0.3.0.1
   - fsnotify-conduit ==0.1.1.1
+  - ftp-client ==0.5.1.4
+  - ftp-client-conduit ==0.5.0.5
   - funcmp ==1.9
   - function-builder ==0.3.0.1
   - functor-classes-compat ==1
-  - fused-effects ==1.0.2.0
+  - fused-effects ==1.0.2.2
+  - fusion-plugin ==0.2.1
   - fusion-plugin-types ==0.1.0
   - fuzzcheck ==0.1.1
   - fuzzy ==0.1.0.0
@@ -801,19 +858,21 @@ default-package-overrides:
   - general-games ==1.1.1
   - generic-arbitrary ==0.1.0
   - generic-constraints ==1.1.1.1
-  - generic-data ==0.7.0.0
+  - generic-data ==0.8.3.0
   - generic-deriving ==1.13.1
-  - generic-lens ==1.2.0.1
-  - generic-monoid ==0.1.0.0
+  - generic-lens ==2.0.0.0
+  - generic-lens-core ==2.0.0.0
+  - generic-monoid ==0.1.0.1
+  - generic-optics ==2.0.0.0
   - GenericPretty ==1.2.2
   - generic-random ==1.3.0.1
   - generics-sop ==0.5.1.0
   - generics-sop-lens ==0.2.0.1
-  - genvalidity ==0.10.0.2
+  - genvalidity ==0.11.0.0
   - genvalidity-aeson ==0.3.0.0
-  - genvalidity-bytestring ==0.5.0.1
+  - genvalidity-bytestring ==0.6.0.0
   - genvalidity-containers ==0.8.0.2
-  - genvalidity-criterion ==0.0.0.0
+  - genvalidity-criterion ==0.2.0.0
   - genvalidity-hspec ==0.7.0.4
   - genvalidity-hspec-aeson ==0.3.1.1
   - genvalidity-hspec-binary ==0.2.0.4
@@ -821,8 +880,8 @@ default-package-overrides:
   - genvalidity-hspec-hashable ==0.2.0.5
   - genvalidity-hspec-optics ==0.1.1.2
   - genvalidity-hspec-persistent ==0.0.0.1
-  - genvalidity-mergeful ==0.1.0.0
-  - genvalidity-mergeless ==0.1.0.0
+  - genvalidity-mergeful ==0.2.0.0
+  - genvalidity-mergeless ==0.2.0.0
   - genvalidity-path ==0.3.0.4
   - genvalidity-property ==0.5.0.1
   - genvalidity-scientific ==0.2.1.1
@@ -834,27 +893,33 @@ default-package-overrides:
   - genvalidity-vector ==0.3.0.1
   - geojson ==4.0.2
   - getopt-generics ==0.13.0.4
+  - ghc-byteorder ==4.11.0.0.10
+  - ghc-check ==0.5.0.1
   - ghc-compact ==0.1.0.0
   - ghc-core ==0.5.6
+  - ghc-events ==0.13.0
   - ghc-exactprint ==0.6.2
-  - ghcid ==0.8.6
+  - ghcid ==0.8.7
   - ghci-hexcalc ==0.1.1.0
   - ghcjs-codemirror ==0.0.0.2
-  - ghc-lib ==8.8.3.20200412.1
-  - ghc-lib-parser ==8.8.3.20200412.1
-  - ghc-lib-parser-ex ==8.8.5.8
+  - ghc-lib ==8.10.2.20200916
+  - ghc-lib-parser ==8.10.2.20200916
+  - ghc-lib-parser-ex ==8.10.0.16
+  - ghc-parser ==0.2.2.0
   - ghc-paths ==0.1.0.12
   - ghc-prof ==1.4.1.7
-  - ghc-source-gen ==0.3.0.0
-  - ghc-syntax-highlighter ==0.0.5.0
+  - ghc-source-gen ==0.4.0.0
+  - ghc-syntax-highlighter ==0.0.6.0
   - ghc-tcplugins-extra ==0.4
-  - ghc-typelits-extra ==0.3.3
-  - ghc-typelits-knownnat ==0.7.2
+  - ghc-typelits-extra ==0.4
+  - ghc-typelits-knownnat ==0.7.3
   - ghc-typelits-natnormalise ==0.7.2
-  - ghc-typelits-presburger ==0.3.0.0
+  - ghc-typelits-presburger ==0.3.0.1
   - ghost-buster ==0.1.1.0
   - gi-atk ==2.0.21
   - gi-cairo ==1.0.23
+  - gi-cairo-connector ==0.0.1
+  - gi-cairo-render ==0.0.1
   - gi-dbusmenu ==0.4.7
   - gi-dbusmenugtk3 ==0.4.8
   - gi-gdk ==3.0.22
@@ -866,11 +931,12 @@ default-package-overrides:
   - gi-graphene ==1.0.1
   - gi-gtk ==3.0.33
   - gi-gtk-hs ==0.3.8.1
+  - ginger ==0.10.1.0
   - gingersnap ==0.3.1.0
   - gi-pango ==1.0.22
   - giphy-api ==0.7.0.0
   - githash ==0.1.4.0
-  - github-rest ==1.0.2
+  - github-rest ==1.0.3
   - github-types ==0.2.1
   - gitlab-haskell ==0.1.8
   - gitrev ==1.3.1
@@ -878,8 +944,8 @@ default-package-overrides:
   - gl ==0.9
   - glabrous ==2.0.2
   - GLFW-b ==3.3.0.0
-  - Glob ==0.10.0
-  - gloss ==1.13.1.1
+  - Glob ==0.10.1
+  - gloss ==1.13.1.2
   - gloss-rendering ==1.13.1.1
   - GLURaw ==2.0.0.4
   - GLUT ==2.7.0.15
@@ -891,65 +957,77 @@ default-package-overrides:
   - graph-core ==0.3.0.0
   - graphite ==0.10.0.1
   - graphs ==0.7.1
-  - graphviz ==2999.20.0.4
+  - graphviz ==2999.20.1.0
   - graph-wrapper ==0.2.6.0
   - gravatar ==0.8.0
-  - greskell ==1.0.1.0
-  - greskell-core ==0.1.3.3
-  - greskell-websocket ==0.1.2.3
+  - greskell ==1.1.0.3
+  - greskell-core ==0.1.3.5
+  - greskell-websocket ==0.1.2.4
   - groom ==0.1.2.1
   - group-by-date ==0.1.0.3
   - groups ==0.4.1.0
+  - gtk-sni-tray ==0.1.6.0
+  - gtk-strut ==0.1.3.0
   - guarded-allocation ==0.0.1
   - hackage-db ==2.1.0
   - hackage-security ==0.6.0.1
   - haddock-library ==1.8.0
+  - hadolint ==1.18.0
+  - hadoop-streaming ==0.2.0.3
+  - hakyll ==4.13.4.0
   - half ==0.3
+  - hall-symbols ==0.1.0.6
   - hamtsolo ==1.0.3
   - HandsomeSoup ==0.4.2
+  - hapistrano ==0.4.1.2
+  - happstack-server ==7.6.1
   - happy ==1.19.12
   - HasBigDecimal ==0.1.1
+  - hasbolt ==0.1.4.3
   - hashable ==1.3.0.0
   - hashable-time ==0.2.0.2
   - hashids ==1.0.2.4
   - hashmap ==1.3.3
-  - hashtables ==1.2.3.4
+  - hashtables ==1.2.4.1
   - haskeline ==0.7.5.0
   - haskell-gi ==0.23.1
   - haskell-gi-base ==0.23.0
   - haskell-gi-overloading ==1.0
+  - haskell-igraph ==0.8.0
   - haskell-import-graph ==1.0.4
   - haskell-lexer ==1.1
-  - haskell-lsp ==0.20.0.1
-  - haskell-lsp-types ==0.20.0.0
+  - haskell-lsp ==0.22.0.0
+  - haskell-lsp-types ==0.22.0.0
   - haskell-names ==0.9.9
   - haskell-src ==1.0.3.1
-  - haskell-src-exts ==1.22.0
+  - haskell-src-exts ==1.23.1
   - haskell-src-exts-util ==0.2.5
   - haskell-src-meta ==0.8.5
   - haskey-btree ==0.3.0.1
-  - haskoin-core ==0.10.1
-  - haskoin-node ==0.9.21
+  - haskoin-core ==0.13.4
+  - haskoin-node ==0.13.0
   - hasql ==1.4.3
-  - hasql-optparse-applicative ==0.3.0.5
+  - hasql-optparse-applicative ==0.3.0.6
   - hasql-pool ==0.5.2
   - hasql-transaction ==1.0.0.1
   - hasty-hamiltonian ==1.3.3
+  - HaTeX ==3.22.2.0
   - HaXml ==1.25.5
-  - haxr ==3000.11.4
+  - haxr ==3000.11.4.1
+  - HCodecs ==0.5.2
   - hdaemonize ==0.5.6
   - HDBC ==2.4.0.3
   - HDBC-session ==0.1.2.0
-  - headroom ==0.1.3.0
+  - headroom ==0.2.2.1
   - heap ==1.0.4
   - heaps ==0.3.6.1
-  - heart-core ==0.1.1
   - hebrew-time ==0.1.2
-  - hedgehog ==1.0.2
+  - hedgehog ==1.0.3
   - hedgehog-corpus ==0.2.0
+  - hedgehog-fakedata ==0.0.1.3
   - hedgehog-fn ==1.0
   - hedgehog-quickcheck ==0.1.1
-  - hedis ==0.12.13
+  - hedis ==0.12.14
   - here ==1.2.13
   - heredoc ==0.2.0.0
   - heterocephalus ==1.0.5.3
@@ -960,7 +1038,7 @@ default-package-overrides:
   - hformat ==0.3.3.1
   - hfsevents ==0.1.6
   - hidapi ==0.1.5
-  - hie-bios ==0.4.0
+  - hie-bios ==0.5.1
   - hi-file-parser ==0.1.0.0
   - higher-leveldb ==0.5.0.2
   - highlighting-kate ==0.6.4
@@ -968,7 +1046,8 @@ default-package-overrides:
   - hinotify ==0.4
   - hint ==0.9.0.3
   - hjsmin ==0.2.0.4
-  - hkgr ==0.2.5.2
+  - hkd-default ==1.1.0.0
+  - hkgr ==0.2.6.1
   - hlibcpuid ==0.2.0
   - hlibgit2 ==0.18.0.16
   - hmatrix ==0.20.0.0
@@ -978,7 +1057,9 @@ default-package-overrides:
   - hmatrix-vector-sized ==0.1.3.0
   - hmpfr ==0.4.4
   - hnock ==0.4.0
-  - hoauth2 ==1.11.0
+  - hoauth2 ==1.14.0
+  - hOpenPGP ==2.9.4
+  - hopenpgp-tools ==0.23.1
   - hopfli ==0.2.2.1
   - hosc ==0.17
   - hostname ==1.0
@@ -986,48 +1067,54 @@ default-package-overrides:
   - hourglass ==0.2.12
   - hourglass-orphans ==0.1.0.0
   - hp2pretty ==0.9
-  - hpack ==0.33.1
-  - hpc-codecov ==0.1.0.0
+  - hpack ==0.34.2
+  - hpack-dhall ==0.5.2
+  - hpc-codecov ==0.2.0.0
+  - hpc-lcov ==1.0.1
   - hreader ==1.1.0
   - hreader-lens ==0.1.3.0
   - hruby ==0.3.8
-  - hs-bibutils ==6.8.0.0
+  - hs-bibutils ==6.10.0.0
   - hsc2hs ==0.68.7
   - hscolour ==1.24.4
   - hsdns ==1.8
   - hsebaysdk ==0.4.1.0
   - hsemail ==2.2.0
   - hset ==2.2.0
-  - hs-functors ==0.1.6.0
+  - hs-functors ==0.1.7.1
   - hs-GeoIP ==0.3
   - hsini ==0.5.1.2
   - hsinstall ==2.6
   - HSlippyMap ==3.0.1
   - hslogger ==1.3.1.0
   - hslua ==1.0.3.2
-  - hslua-aeson ==1.0.2
-  - hslua-module-system ==0.2.1
+  - hslua-aeson ==1.0.3
+  - hslua-module-doclayout ==0.1.0
+  - hslua-module-system ==0.2.2
   - hslua-module-text ==0.2.1
-  - HsOpenSSL ==0.11.4.18
+  - HsOpenSSL ==0.11.4.19
   - hsp ==0.10.0
-  - hspec ==2.7.1
+  - hspec ==2.7.4
   - hspec-attoparsec ==0.1.0.2
   - hspec-checkers ==0.1.0.2
   - hspec-contrib ==0.5.1
-  - hspec-core ==2.7.1
-  - hspec-discover ==2.7.1
+  - hspec-core ==2.7.4
+  - hspec-discover ==2.7.4
   - hspec-expectations ==0.8.2
   - hspec-expectations-lifted ==0.10.0
   - hspec-expectations-pretty-diff ==0.7.2.5
-  - hspec-golden ==0.1.0.1
+  - hspec-golden ==0.1.0.3
   - hspec-golden-aeson ==0.7.0.0
+  - hspec-hedgehog ==0.0.1.2
   - hspec-leancheck ==0.0.4
   - hspec-megaparsec ==2.1.0
   - hspec-meta ==2.6.0
-  - hspec-need-env ==0.1.0.4
+  - hspec-need-env ==0.1.0.5
   - hspec-parsec ==0
   - hspec-smallcheck ==0.5.2
+  - hspec-tables ==0.0.1
   - hspec-wai ==0.10.1
+  - hspec-wai-json ==0.10.1
   - hs-php-session ==0.0.9.3
   - hsshellscript ==3.4.5
   - HStringTemplate ==0.8.7
@@ -1042,60 +1129,49 @@ default-package-overrides:
   - html-entities ==1.1.4.3
   - html-entity-map ==0.1.0.0
   - htoml ==1.0.0.3
-  - http2 ==2.0.4
-  - HTTP ==4000.3.14
+  - http2 ==2.0.5
+  - HTTP ==4000.3.15
   - http-api-data ==0.4.1.1
   - http-client ==0.6.4.1
   - http-client-openssl ==0.3.1.0
   - http-client-overrides ==0.1.1.0
   - http-client-tls ==0.3.5.3
-  - http-common ==0.8.2.0
+  - http-common ==0.8.2.1
   - http-conduit ==2.3.7.3
   - http-date ==0.0.8
   - http-directory ==0.1.8
-  - http-download ==0.1.0.1
+  - http-download ==0.2.0.0
   - httpd-shed ==0.4.1.1
   - http-link-header ==1.0.3.1
   - http-media ==0.8.0.0
   - http-reverse-proxy ==0.6.0
-  - http-streams ==0.8.7.1
+  - http-streams ==0.8.7.2
   - http-types ==0.12.3
   - human-readable-duration ==0.2.1.4
   - HUnit ==1.6.0.0
   - HUnit-approx ==1.1.1.1
-  - hunit-dejafu ==2.0.0.3
+  - hunit-dejafu ==2.0.0.4
   - hvect ==0.4.0.0
-  - hvega ==0.5.0.0
-  - hw-balancedparens ==0.3.1.0
+  - hvega ==0.9.1.0
+  - hw-balancedparens ==0.4.1.0
   - hw-bits ==0.7.2.1
   - hw-conduit ==0.2.1.0
   - hw-conduit-merges ==0.2.1.0
   - hw-diagnostics ==0.0.1.0
-  - hw-dsv ==0.4.1.0
   - hweblib ==0.6.3
-  - hw-eliasfano ==0.1.2.0
   - hw-excess ==0.2.3.0
   - hw-fingertree ==0.1.2.0
   - hw-fingertree-strict ==0.1.2.0
   - hw-hedgehog ==0.1.1.0
   - hw-hspec-hedgehog ==0.1.1.0
   - hw-int ==0.0.2.0
-  - hw-ip ==2.4.2.0
-  - hw-json ==1.3.2.0
   - hw-json-simd ==0.1.1.0
-  - hw-json-simple-cursor ==0.1.1.0
-  - hw-json-standard-cursor ==0.2.3.1
   - hw-mquery ==0.2.1.0
-  - hw-packed-vector ==0.2.1.0
   - hw-parser ==0.1.1.0
   - hw-prim ==0.6.3.0
-  - hw-rankselect ==0.13.4.0
-  - hw-rankselect-base ==0.3.4.0
-  - hw-simd ==0.1.2.0
+  - hw-rankselect-base ==0.3.4.1
   - hw-streams ==0.0.1.0
   - hw-string-parse ==0.0.0.4
-  - hw-succinct ==0.1.0.1
-  - hw-xml ==0.5.1.0
   - hxt ==9.3.1.18
   - hxt-charproperties ==9.4.0.0
   - hxt-css ==0.1.0.3
@@ -1108,29 +1184,34 @@ default-package-overrides:
   - hybrid-vectors ==0.2.2
   - hyperloglog ==0.4.3
   - hyphenation ==0.8
+  - hyraxAbif ==0.2.3.21
   - iconv ==0.4.1.3
   - identicon ==0.2.2
   - ieee754 ==0.8.0
   - if ==0.1.0.0
   - iff ==0.0.6
+  - ihaskell ==0.10.1.2
   - ihs ==0.1.0.3
   - ilist ==0.4.0.1
   - imagesize-conduit ==1.1
   - Imlib ==0.1.2
   - immortal ==0.3
+  - immortal-queue ==0.1.0.1
   - include-file ==0.1.0.4
   - incremental-parser ==0.4.0.2
   - indents ==0.5.0.1
   - indexed ==0.1.3
+  - indexed-containers ==0.1.0.2
   - indexed-list-literals ==0.2.1.3
   - indexed-profunctors ==0.1
   - infer-license ==0.2.0
-  - inflections ==0.4.0.5
-  - influxdb ==1.7.1.5
+  - inflections ==0.4.0.6
+  - influxdb ==1.7.1.6
   - ini ==0.4.1
   - inj ==1.0
   - inline-c ==0.9.1.0
   - inline-c-cpp ==0.4.0.2
+  - inliterate ==0.1.0
   - insert-ordered-containers ==0.2.3.1
   - inspection-testing ==0.4.2.4
   - instance-control ==0.1.2.0
@@ -1139,51 +1220,56 @@ default-package-overrides:
   - integer-roots ==1.0
   - integration ==0.2.1
   - intern ==0.9.2
-  - interpolate ==0.2.0
+  - interpolate ==0.2.1
+  - interpolatedstring-perl6 ==1.0.2
   - interpolation ==0.1.1.1
   - interpolator ==1.0.0
-  - IntervalMap ==0.6.1.1
+  - IntervalMap ==0.6.1.2
   - intervals ==0.9.1
-  - intro ==0.6.0.1
+  - intro ==0.7.0.0
   - intset-imperative ==0.1.0.0
   - invariant ==0.5.3
-  - invertible ==0.2.0.5
+  - invertible ==0.2.0.7
+  - invertible-grammar ==0.1.3
   - io-machine ==0.2.0.0
-  - io-manager ==0.1.0.2
+  - io-manager ==0.1.0.3
   - io-memoize ==1.1.1.0
   - io-region ==0.1.1
   - io-storage ==0.3
-  - io-streams ==1.5.1.0
+  - io-streams ==1.5.2.0
   - io-streams-haproxy ==1.0.1.0
-  - ip ==1.7.2
   - ip6addr ==1.0.1
   - iproute ==1.7.9
-  - IPv6Addr ==1.1.4
+  - IPv6Addr ==1.1.5
   - ipynb ==0.1.0.1
-  - ipython-kernel ==0.10.2.0
+  - ipython-kernel ==0.10.2.1
   - irc ==0.6.1.0
   - irc-client ==1.1.1.1
   - irc-conduit ==0.3.0.4
   - irc-ctcp ==0.1.3.0
+  - isbn ==1.0.0.0
   - islink ==0.1.0.0
   - iso3166-country-codes ==0.20140203.8
   - iso639 ==0.1.0.3
   - iso8601-time ==0.1.5
   - iterable ==3.0
+  - it-has ==0.2.0.0
+  - ixset-typed ==0.5
   - ix-shapable ==0.1.0
   - jack ==0.7.1.4
-  - jira-wiki-markup ==1.0.0
-  - jose ==0.8.3
+  - jira-wiki-markup ==1.1.4
+  - jose ==0.8.3.1
   - jose-jwt ==0.8.0
   - js-dgtable ==0.5.2
   - js-flot ==0.8.3
   - js-jquery ==3.3.1
   - json-alt ==1.0.0
-  - json-feed ==1.0.10
+  - json-feed ==1.0.11
   - jsonpath ==0.2.0.0
-  - json-rpc ==1.0.1
+  - json-rpc ==1.0.3
   - json-rpc-generic ==0.2.1.5
   - JuicyPixels ==3.3.5
+  - JuicyPixels-blurhash ==0.1.0.3
   - JuicyPixels-extra ==0.4.1
   - JuicyPixels-scale-dct ==0.1.2
   - junit-xml ==0.1.0.1
@@ -1191,7 +1277,7 @@ default-package-overrides:
   - jwt ==0.10.0
   - kan-extensions ==5.2
   - kanji ==3.4.1
-  - katip ==0.8.4.0
+  - katip ==0.8.5.0
   - kawhi ==0.3.0
   - kazura-queue ==0.1.0.4
   - kdt ==0.2.4
@@ -1202,15 +1288,18 @@ default-package-overrides:
   - kind-generics-th ==0.2.2.0
   - kmeans ==0.1.3
   - koofr-client ==1.0.0.3
-  - kubernetes-webhook-haskell ==0.2.0.2
+  - krank ==0.2.2
+  - kubernetes-webhook-haskell ==0.2.0.3
   - l10n ==0.1.0.1
   - labels ==0.3.3
-  - lackey ==1.0.12
+  - lackey ==1.0.13
   - LambdaHack ==0.9.5.0
   - lame ==0.2.0
-  - language-avro ==0.1.2.0
+  - language-avro ==0.1.3.1
+  - language-bash ==0.9.2
   - language-c ==0.8.3
   - language-c-quote ==0.12.2.1
+  - language-docker ==9.1.1
   - language-haskell-extract ==0.2.4
   - language-java ==0.2.9
   - language-javascript ==0.7.1.0
@@ -1249,65 +1338,74 @@ default-package-overrides:
   - libmpd ==0.9.1.0
   - libyaml ==0.1.2
   - LibZip ==1.0.1
-  - lifted-async ==0.10.0.6
+  - life-sync ==1.1.1.0
+  - lifted-async ==0.10.1.2
   - lifted-base ==0.2.3.12
   - lift-generics ==0.1.3
-  - linear ==1.20.9
-  - linenoise ==0.3.1
+  - line ==4.0.1
+  - linear ==1.21.1
+  - linenoise ==0.3.2
   - linux-file-extents ==0.2.0.0
   - linux-namespaces ==0.1.3.0
   - List ==0.6.2
-  - ListLike ==4.6.3
+  - ListLike ==4.7.2
+  - list-predicate ==0.1.0.1
   - listsafe ==0.1.0.1
-  - list-singleton ==1.0.0.3
+  - list-singleton ==1.0.0.4
   - list-t ==1.0.4
   - ListTree ==0.2.3
+  - little-logger ==0.1.0
+  - little-rio ==0.1.1
   - llvm-hs ==9.0.1
   - llvm-hs-pure ==9.0.0
   - lmdb ==0.2.5
   - load-env ==0.2.1.0
+  - loc ==0.1.3.8
   - loch-th ==0.2.2
   - lockfree-queue ==0.2.3.1
   - log-base ==0.8.0.1
   - log-domain ==0.13
   - logfloat ==0.13.3.3
   - logging ==3.0.5
-  - logging-effect ==1.3.9
   - logging-facade ==0.3.0
   - logging-facade-syslog ==1
-  - logict ==0.7.0.2
+  - logict ==0.7.0.3
   - loop ==0.3.0
   - loopbreaker ==0.1.1.1
   - lrucache ==1.2.0.1
   - lrucaching ==0.3.3
-  - lsp-test ==0.10.2.0
+  - lsp-test ==0.10.3.0
   - lucid ==2.9.12
   - lucid-extras ==0.2.2
   - lukko ==0.1.1.2
   - lzma ==0.0.0.3
   - lzma-conduit ==1.2.1
   - machines ==0.7
+  - magic ==1.1
   - mainland-pretty ==0.7.0.1
   - main-tester ==0.2.0.1
   - makefile ==1.1.0.0
-  - managed ==1.0.7
+  - managed ==1.0.8
   - markdown ==0.1.17.4
   - markdown-unlit ==0.5.0
   - markov-chain ==0.0.3.4
-  - massiv ==0.4.5.0
+  - massiv ==0.5.4.0
   - massiv-io ==0.2.1.0
-  - massiv-test ==0.1.2
+  - massiv-test ==0.1.4
   - mathexpr ==0.3.0.0
-  - math-functions ==0.3.4.0
+  - math-extras ==0.1.1.0
+  - math-functions ==0.3.4.1
   - matplotlib ==0.7.5
   - matrices ==0.5.0
   - matrix ==0.3.6.1
+  - matrix-as-xyz ==0.1.2.2
   - matrix-market-attoparsec ==0.1.1.3
-  - matrix-static ==0.2.1
+  - matrix-static ==0.3
   - maximal-cliques ==0.1.1
   - mbox ==0.3.4
   - mbox-utility ==0.0.3.1
   - mcmc-types ==1.0.3
+  - medea ==1.1.2
   - median-stream ==0.7.0.0
   - megaparsec ==8.0.0
   - megaparsec-tests ==8.0.0
@@ -1315,14 +1413,14 @@ default-package-overrides:
   - memory ==0.15.0
   - MemoTrie ==0.6.10
   - mercury-api ==0.1.0.2
-  - mergeful ==0.1.0.0
-  - mergeless ==0.2.0.2
+  - mergeful ==0.2.0.0
+  - mergeless ==0.3.0.0
   - mersenne-random-pure64 ==0.2.2.0
   - messagepack ==0.5.4
   - metrics ==0.4.1.1
   - mfsolve ==0.3.2.0
   - microlens ==0.4.11.2
-  - microlens-aeson ==2.3.0.4
+  - microlens-aeson ==2.3.1
   - microlens-contra ==0.1.0.2
   - microlens-ghc ==0.4.12
   - microlens-mtl ==0.2.0.1
@@ -1333,20 +1431,21 @@ default-package-overrides:
   - microstache ==1.0.1.1
   - midair ==0.2.0.1
   - midi ==0.2.2.2
-  - mighty-metropolis ==1.2.0
+  - mighty-metropolis ==2.0.0
   - mime-mail ==0.5.0
-  - mime-mail-ses ==0.4.1
+  - mime-mail-ses ==0.4.3
   - mime-types ==0.1.0.9
-  - mini-egison ==0.1.6
+  - mini-egison ==1.0.0
   - minimal-configuration ==0.1.4
   - minimorph ==0.2.2.0
   - minio-hs ==1.5.2
   - miniutter ==0.5.1.0
+  - min-max-pqueue ==0.1.0.2
   - mintty ==0.1.2
-  - miso ==1.4.0.0
+  - miso ==1.6.0.0
   - missing-foreign ==0.1.1
   - MissingH ==1.4.3.0
-  - mixed-types-num ==0.4.0.1
+  - mixed-types-num ==0.4.0.2
   - mixpanel-client ==0.2.1
   - mltool ==0.2.0.1
   - mmap ==0.5.9
@@ -1356,27 +1455,30 @@ default-package-overrides:
   - mmorph ==1.1.3
   - mnist-idx ==0.1.2.8
   - mockery ==0.3.5
-  - mod ==0.1.1.0
+  - mod ==0.1.2.0
+  - model ==0.5
   - modern-uri ==0.3.2.0
   - modular ==0.1.0.8
+  - monad-bayes ==0.1.1.0
   - monad-control ==1.0.2.3
   - monad-control-aligned ==0.0.1.1
   - monad-coroutine ==0.9.0.4
   - monad-extras ==0.6.0
   - monadic-arrays ==0.2.2
   - monad-journal ==0.8.1
-  - monad-logger ==0.3.32
+  - monad-logger ==0.3.35
   - monad-logger-json ==0.1.0.0
   - monad-logger-prefix ==0.1.11
   - monad-loops ==0.4.3
   - monad-memo ==0.5.1
+  - monad-metrics ==0.2.1.4
   - monad-par ==0.3.5
   - monad-parallel ==0.7.2.3
   - monad-par-extras ==0.3.3
   - monad-peel ==0.2.1.2
   - monad-products ==4.0.1
   - MonadPrompt ==1.0.0.5
-  - MonadRandom ==0.5.1.2
+  - MonadRandom ==0.5.2
   - monad-resumption ==0.1.4.0
   - monad-skeleton ==0.1.5
   - monad-st ==0.2.4.1
@@ -1389,23 +1491,28 @@ default-package-overrides:
   - monoid-subclasses ==1.0.1
   - monoid-transformer ==0.0.4
   - mono-traversable ==1.0.15.1
-  - mono-traversable-instances ==0.1.0.0
+  - mono-traversable-instances ==0.1.1.0
   - mono-traversable-keys ==0.1.0
   - more-containers ==0.2.2.0
-  - morpheus-graphql ==0.10.0
+  - morpheus-graphql ==0.12.0
+  - morpheus-graphql-core ==0.12.0
   - mountpoints ==1.0.2
+  - mpi-hs ==0.7.2.0
+  - mpi-hs-binary ==0.1.1.0
+  - mpi-hs-cereal ==0.1.0.0
   - mtl-compat ==0.2.2
   - mtl-prelude ==2.0.3.1
   - multiarg ==0.30.0.10
+  - multi-containers ==0.1.1
   - multimap ==1.2.1
   - multiset ==0.3.4.3
-  - multistate ==0.8.0.2
-  - murmur3 ==1.0.3
+  - multistate ==0.8.0.3
+  - murmur3 ==1.0.4
   - murmur-hash ==0.1.0.9
   - MusicBrainz ==0.4.1
   - mustache ==2.3.1
   - mutable-containers ==0.3.4
-  - mwc-probability ==2.2.0
+  - mwc-probability ==2.3.1
   - mwc-random ==0.14.0.0
   - mx-state-codes ==1.0.0.0
   - mysql ==0.1.7
@@ -1416,7 +1523,6 @@ default-package-overrides:
   - nano-erl ==0.1.0.1
   - nanospec ==0.2.2
   - nats ==1.1.2
-  - natural-arithmetic ==0.1.2.0
   - natural-induction ==0.2.0.0
   - natural-sort ==0.1.2
   - natural-transformation ==0.4
@@ -1437,6 +1543,8 @@ default-package-overrides:
   - network-conduit-tls ==1.3.2
   - network-info ==0.2.0.10
   - network-ip ==0.3.0.3
+  - network-messagepack-rpc ==0.1.2.0
+  - network-messagepack-rpc-websocket ==0.1.1.1
   - network-simple ==0.4.5
   - network-simple-tls ==0.4
   - network-transport ==0.5.4
@@ -1447,11 +1555,10 @@ default-package-overrides:
   - nicify-lib ==1.0.1
   - NineP ==0.0.2.1
   - nix-paths ==1.0.1
-  - NoHoed ==0.1.1
   - nonce ==1.0.7
   - nondeterminism ==1.4
   - non-empty ==0.3.2
-  - nonempty-containers ==0.3.3.0
+  - nonempty-containers ==0.3.4.1
   - nonemptymap ==0.0.6.0
   - non-empty-sequence ==0.2.0.4
   - nonempty-vector ==0.2.0.2
@@ -1459,11 +1566,11 @@ default-package-overrides:
   - not-gloss ==0.7.7.0
   - no-value ==1.0.0.0
   - nowdoc ==0.1.1.0
-  - nqe ==0.6.1
+  - nqe ==0.6.3
   - nsis ==0.3.3
   - numbers ==3000.2.0.2
   - numeric-extras ==0.1
-  - numeric-prelude ==0.4.3.1
+  - numeric-prelude ==0.4.3.2
   - numhask ==0.4.0
   - NumInstances ==1.4
   - numtype-dk ==0.5.0.2
@@ -1472,7 +1579,7 @@ default-package-overrides:
   - ObjectName ==1.1.0.1
   - o-clock ==1.1.0
   - odbc ==0.2.2
-  - oeis2 ==1.0.3
+  - oeis2 ==1.0.4
   - ofx ==0.4.4.0
   - old-locale ==1.0.0.7
   - old-time ==1.1.0.3
@@ -1482,7 +1589,7 @@ default-package-overrides:
   - OneTuple ==0.2.2.1
   - Only ==0.1
   - oo-prototypes ==0.1.0.0
-  - opaleye ==0.6.7004.2
+  - opaleye ==0.6.7006.1
   - OpenAL ==1.7.0.5
   - open-browser ==0.2.1.0
   - openexr-write ==0.1.0.2
@@ -1490,8 +1597,11 @@ default-package-overrides:
   - OpenGLRaw ==3.3.4.0
   - openpgp-asciiarmor ==0.1.2
   - opensource ==0.1.1.0
-  - openssl-streams ==1.2.2.0
-  - opentelemetry ==0.0.0.2
+  - openssl-streams ==1.2.3.0
+  - opentelemetry ==0.4.2
+  - opentelemetry-extra ==0.4.2
+  - opentelemetry-lightstep ==0.4.2
+  - opentelemetry-wai ==0.4.2
   - operational ==0.2.3.5
   - operational-class ==0.3.0.0
   - optics ==0.2
@@ -1503,22 +1613,22 @@ default-package-overrides:
   - options ==1.2.1.1
   - optparse-applicative ==0.15.1.0
   - optparse-generic ==1.3.1
-  - optparse-simple ==0.1.1.2
+  - optparse-simple ==0.1.1.3
   - optparse-text ==0.1.1.0
   - ordered-containers ==0.2.2
-  - ormolu ==0.0.3.1
+  - ormolu ==0.1.2.0
   - overhang ==1.0.0
-  - packcheck ==0.4.2
+  - packcheck ==0.5.1
   - pager ==0.1.1.0
   - pagination ==0.2.1
   - pagure-cli ==0.2
-  - pandoc ==2.9.1.1
-  - pandoc-citeproc ==0.16.4.1
+  - pandoc ==2.9.2.1
+  - pandoc-citeproc ==0.17.0.1
   - pandoc-csv2table ==1.0.8
-  - pandoc-plot ==0.2.2.0
+  - pandoc-plot ==0.6.1.0
   - pandoc-pyplot ==2.3.0.1
   - pandoc-types ==1.20
-  - pantry ==0.4.0.1
+  - pantry ==0.4.0.2
   - papillon ==0.1.1.1
   - parallel ==3.2.2.0
   - parallel-io ==0.3.3
@@ -1533,13 +1643,15 @@ default-package-overrides:
   - parsers ==0.12.10
   - partial-handler ==1.0.3
   - partial-isomorphisms ==0.2.2.1
-  - password ==1.0.0.0
-  - password-instances ==1.0.0.0
-  - path ==0.7.1
+  - partial-semigroup ==0.5.1.8
+  - password ==2.0.1.1
+  - password-instances ==2.0.0.1
+  - path ==0.7.0
   - path-extra ==0.2.0
   - path-io ==1.6.0
   - path-pieces ==0.2.1
-  - pathtype ==0.8.1
+  - path-text-utf8 ==0.0.1.6
+  - pathtype ==0.8.1.1
   - pathwalk ==0.3.1.2
   - pattern-arrows ==0.0.2
   - pcg-random ==0.1.3.6
@@ -1553,7 +1665,7 @@ default-package-overrides:
   - perfect-hash-generator ==0.2.0.6
   - perfect-vector-shuffle ==0.1.1.1
   - persist ==0.1.1.5
-  - persistable-record ==0.6.0.4
+  - persistable-record ==0.6.0.5
   - persistable-types-HDBC-pg ==0.0.3.5
   - persistent ==2.10.5.2
   - persistent-mysql ==2.10.2.3
@@ -1569,7 +1681,7 @@ default-package-overrides:
   - pg-transact ==0.3.1.1
   - phantom-state ==0.2.1.2
   - pid1 ==0.1.2.0
-  - pipes ==4.3.13
+  - pipes ==4.3.14
   - pipes-aeson ==0.4.1.8
   - pipes-attoparsec ==0.5.1.5
   - pipes-binary ==0.4.2
@@ -1589,17 +1701,18 @@ default-package-overrides:
   - pipes-wai ==3.2.0
   - pkcs10 ==0.2.0.0
   - placeholders ==0.1
+  - plaid ==0.1.0.4
   - planb-token-introspection ==0.1.4.0
   - plotlyhs ==0.2.1
   - pointed ==5.0.1
   - pointedlist ==0.6.1
   - pointless-fun ==1.1.0.6
   - poll ==0.0.0.1
-  - poly ==0.3.3.0
+  - poly ==0.4.0.0
   - poly-arity ==0.1.0
   - polynomials-bernstein ==1.1.2
   - polyparse ==1.13
-  - polysemy ==1.2.3.0
+  - polysemy ==1.3.0.0
   - pooled-io ==0.0.2.2
   - port-utils ==0.2.1.0
   - posix-paths ==0.2.1.6
@@ -1609,33 +1722,32 @@ default-package-overrides:
   - postgresql-libpq ==0.9.4.2
   - postgresql-orm ==0.5.1
   - postgresql-simple ==0.6.2
+  - postgrest ==7.0.0
   - post-mess-age ==0.2.1.0
   - pptable ==0.3.0.0
-  - pqueue ==1.4.1.2
+  - pqueue ==1.4.1.3
   - prefix-units ==0.2.0
   - prelude-compat ==0.0.0.2
   - prelude-safeenum ==0.1.1.2
   - prettyclass ==1.0.0.0
   - pretty-class ==1.0.1.1
   - pretty-hex ==1.1
-  - prettyprinter ==1.6.1
-  - prettyprinter-ansi-terminal ==1.1.1.2
+  - prettyprinter ==1.6.2
+  - prettyprinter-ansi-terminal ==1.1.2
   - prettyprinter-compat-annotated-wl-pprint ==1
   - prettyprinter-compat-ansi-wl-pprint ==1.0.1
   - prettyprinter-compat-wl-pprint ==1.0.0.1
-  - prettyprinter-convert-ansi-wl-pprint ==1.1
+  - prettyprinter-convert-ansi-wl-pprint ==1.1.1
   - pretty-relative-time ==0.2.0.0
   - pretty-show ==1.10
-  - pretty-simple ==3.2.2.0
+  - pretty-simple ==3.2.3.0
   - pretty-sop ==0.2.0.3
+  - pretty-terminal ==0.1.0.0
   - pretty-types ==0.3.0.1
   - primes ==0.2.1.0
   - primitive ==0.7.0.1
   - primitive-addr ==0.1.0.2
-  - primitive-extras ==0.8
-  - primitive-offset ==0.2.0.0
   - primitive-unaligned ==0.1.1.1
-  - primitive-unlifted ==0.1.3.0
   - print-console-colors ==0.1.0.0
   - process-extras ==0.7.4
   - product-isomorphic ==0.0.3.3
@@ -1643,52 +1755,56 @@ default-package-overrides:
   - profiterole ==0.1
   - profunctors ==5.5.2
   - projectroot ==0.2.0.1
-  - project-template ==0.2.0.1
-  - prometheus-client ==1.0.0.1
+  - project-template ==0.2.1.0
+  - prometheus-client ==1.0.1
   - promises ==0.3
   - prompt ==0.1.1.2
   - prospect ==0.1.0.0
+  - proto3-wire ==1.1.0
+  - protobuf ==0.2.1.3
   - protobuf-simple ==0.1.1.0
   - protocol-radius ==0.0.1.1
   - protocol-radius-test ==0.1.0.1
-  - proto-lens ==0.6.0.0
-  - proto-lens-arbitrary ==0.1.2.8
-  - proto-lens-optparse ==0.1.1.6
-  - proto-lens-protobuf-types ==0.6.0.0
-  - proto-lens-protoc ==0.6.0.0
-  - proto-lens-runtime ==0.6.0.0
-  - proto-lens-setup ==0.4.0.3
+  - proto-lens ==0.7.0.0
+  - proto-lens-arbitrary ==0.1.2.9
+  - proto-lens-optparse ==0.1.1.7
+  - proto-lens-protobuf-types ==0.7.0.0
+  - proto-lens-protoc ==0.7.0.0
+  - proto-lens-runtime ==0.7.0.0
+  - proto-lens-setup ==0.4.0.4
   - protolude ==0.2.4
   - proxied ==0.3.1
   - psqueues ==0.2.7.2
-  - publicsuffix ==0.20191003
+  - publicsuffix ==0.20200526
   - pulse-simple ==0.1.14
   - pureMD5 ==2.1.3
-  - purescript-bridge ==0.13.0.0
+  - purescript-bridge ==0.14.0.0
   - pushbullet-types ==0.4.1.0
-  - pusher-http-haskell ==1.5.1.13
-  - PyF ==0.9.0.1
+  - pusher-http-haskell ==1.5.1.14
+  - pvar ==0.2.0.0
+  - PyF ==0.9.0.2
   - qchas ==1.1.0.1
   - qm-interpolated-string ==0.3.0.0
-  - qrcode-core ==0.9.3
-  - qrcode-juicypixels ==0.8.1
+  - qrcode-core ==0.9.4
+  - qrcode-juicypixels ==0.8.2
   - quadratic-irrational ==0.1.1
   - QuasiText ==0.1.2.6
   - QuickCheck ==2.13.2
   - quickcheck-arbitrary-adt ==0.3.1.0
   - quickcheck-assertions ==0.3.0
   - quickcheck-classes ==0.6.4.0
-  - quickcheck-classes-base ==0.6.0.0
-  - quickcheck-instances ==0.3.22
+  - quickcheck-classes-base ==0.6.1.0
+  - quickcheck-instances ==0.3.23
   - quickcheck-io ==0.2.0
   - quickcheck-simple ==0.1.1.1
   - quickcheck-special ==0.1.0.6
   - quickcheck-text ==0.1.2.1
-  - quickcheck-transformer ==0.3.1
+  - quickcheck-transformer ==0.3.1.1
   - quickcheck-unicode ==1.0.1.0
+  - quiet ==0.2
   - radius ==0.6.1.0
   - rainbow ==0.34.2.2
-  - rainbox ==0.24.4.0
+  - rainbox ==0.26.0.0
   - ral ==0.1
   - ramus ==0.1.2
   - rando ==0.0.0.4
@@ -1704,21 +1820,22 @@ default-package-overrides:
   - Rasterific ==0.7.5.2
   - rasterific-svg ==0.3.3.2
   - ratel ==1.0.12
+  - rate-limit ==1.4.2
   - ratel-wai ==1.1.3
-  - rattle ==0.1
   - rawfilepath ==0.2.4
   - rawstring-qm ==0.2.3.0
   - raw-strings-qq ==1.1
   - rcu ==0.2.4
-  - rdf ==0.1.0.3
+  - rdf ==0.1.0.4
   - rdtsc ==1.3.0.1
   - re2 ==0.3
   - readable ==0.3.1
   - read-editor ==0.1.0.2
   - read-env-var ==1.0.0.0
+  - reanimate ==0.3.3.0
   - reanimate-svg ==0.9.8.0
-  - rebase ==1.4.1
-  - record-dot-preprocessor ==0.2.5
+  - rebase ==1.6.1
+  - record-dot-preprocessor ==0.2.6
   - record-hasfield ==1.0
   - records-sop ==0.1.0.3
   - recursion-schemes ==5.1.3
@@ -1726,6 +1843,10 @@ default-package-overrides:
   - refact ==0.3.0.2
   - ref-fd ==0.4.0.2
   - reflection ==2.1.6
+  - reform ==0.2.7.4
+  - reform-blaze ==0.2.4.3
+  - reform-hamlet ==0.0.5.3
+  - reform-happstack ==0.2.5.3
   - RefSerialize ==0.4.0
   - regex ==1.1.0.0
   - regex-applicative ==0.3.3.1
@@ -1738,69 +1859,70 @@ default-package-overrides:
   - regex-posix ==0.96.0.0
   - regex-tdfa ==1.3.1.0
   - regex-with-pcre ==1.1.0.0
-  - registry ==0.1.7.1
+  - registry ==0.1.9.3
   - reinterpret-cast ==0.1.0
   - relapse ==1.0.0.0
-  - relational-query ==0.12.2.2
+  - relational-query ==0.12.2.3
   - relational-query-HDBC ==0.7.2.0
   - relational-record ==0.2.2.0
   - relational-schemas ==0.1.8.0
-  - relude ==0.6.0.0
+  - relude ==0.7.0.0
   - renderable ==0.2.0.1
-  - replace-attoparsec ==1.2.2.0
-  - replace-megaparsec ==1.2.1.0
+  - replace-attoparsec ==1.4.1.0
+  - replace-megaparsec ==1.4.2.0
   - repline ==0.2.2.0
-  - req ==3.1.0
+  - req ==3.2.0
   - req-conduit ==1.0.0
-  - rerebase ==1.4.1
+  - rerebase ==1.6.1
   - resolv ==0.1.2.0
   - resource-pool ==0.2.3.2
-  - resourcet ==1.2.4
+  - resourcet ==1.2.4.2
   - result ==0.2.6.0
   - rethinkdb-client-driver ==0.0.25
   - retry ==0.8.1.2
   - rev-state ==0.1.2
-  - rfc1751 ==0.1.2
+  - rfc1751 ==0.1.3
   - rfc5051 ==0.1.0.4
+  - rhine ==0.6.0
+  - rhine-gloss ==0.6.0.1
   - rigel-viz ==0.2.0.0
-  - rio ==0.1.15.1
+  - rio ==0.1.19.0
   - rio-orphans ==0.1.1.0
-  - rio-prettyprint ==0.1.0.0
+  - rio-prettyprint ==0.1.1.0
   - roc-id ==0.1.0.0
   - rocksdb-haskell ==1.0.1
-  - rocksdb-query ==0.3.1
+  - rocksdb-query ==0.3.2
   - roles ==0.2.0.0
   - rope-utf16-splay ==0.3.1.0
   - rosezipper ==0.2
   - rot13 ==0.2.0.1
-  - rpmbuild-order ==0.3
+  - rpmbuild-order ==0.3.1
   - RSA ==2.4.1
   - runmemo ==1.0.0.1
-  - run-st ==0.1.1.0
   - safe ==0.3.19
   - safecopy ==0.10.3
   - safe-decimal ==0.2.0.0
-  - safe-exceptions ==0.1.7.0
+  - safe-exceptions ==0.1.7.1
   - safe-exceptions-checked ==0.1.0
   - safe-foldable ==0.1.0.0
   - safeio ==0.0.5.0
-  - safe-json ==1.1.0
+  - safe-json ==1.1.1
   - safe-money ==0.9
   - SafeSemaphore ==0.10.1
   - salak ==0.3.6
   - salak-yaml ==0.3.5.3
   - saltine ==0.1.1.0
-  - salve ==1.0.9
+  - salve ==1.0.10
   - sample-frame ==0.0.3
   - sample-frame-np ==0.0.4.1
-  - sampling ==0.3.4
+  - sampling ==0.3.5
   - say ==0.1.0.1
   - sbp ==2.6.3
   - scalpel ==0.6.2
   - scalpel-core ==0.6.2
   - scanf ==0.1.0.0
   - scanner ==0.3.1
-  - scheduler ==1.4.2.2
+  - scheduler ==1.4.2.3
   - scientific ==0.3.6.2
   - scotty ==0.11.6
   - scrypt ==0.5.0
@@ -1810,18 +1932,18 @@ default-package-overrides:
   - sdl2-mixer ==1.1.0
   - sdl2-ttf ==2.1.1
   - search-algorithms ==0.3.1
-  - secp256k1-haskell ==0.1.8
+  - secp256k1-haskell ==0.2.5
   - securemem ==0.1.10
   - selda ==0.5.1.0
   - selda-json ==0.1.1.0
-  - selective ==0.3
-  - semialign ==1.1
+  - selective ==0.4.1.1
+  - semialign ==1.1.0.1
   - semialign-indexed ==1.1
   - semialign-optics ==1.1
   - semigroupoid-extras ==5
   - semigroupoids ==5.3.4
   - semigroups ==0.19.1
-  - semirings ==0.5.3
+  - semirings ==0.5.4
   - semiring-simple ==1.0.0.1
   - semver ==0.3.4
   - sendfile ==0.7.11.1
@@ -1832,6 +1954,7 @@ default-package-overrides:
   - serialise ==0.2.3.0
   - servant ==0.16.2
   - servant-auth ==0.3.2.0
+  - servant-auth-docs ==0.2.10.0
   - servant-auth-server ==0.4.5.1
   - servant-auth-swagger ==0.2.10.0
   - servant-blaze ==0.9
@@ -1840,78 +1963,87 @@ default-package-overrides:
   - servant-checked-exceptions-core ==2.2.0.0
   - servant-client ==0.16.0.1
   - servant-client-core ==0.16
-  - servant-conduit ==0.15
+  - servant-conduit ==0.15.1
   - servant-docs ==0.11.4
+  - servant-docs-simple ==0.2.0.1
   - servant-elm ==0.7.2
+  - servant-errors ==0.1.6.0
   - servant-foreign ==0.15
-  - servant-js ==0.9.4.1
+  - servant-js ==0.9.4.2
   - servant-JuicyPixels ==0.3.0.5
   - servant-lucid ==0.9
-  - servant-machines ==0.15
+  - servant-machines ==0.15.1
   - servant-mock ==0.8.5
-  - servant-pipes ==0.15.1
-  - servant-purescript ==0.9.0.4
+  - servant-pipes ==0.15.2
+  - servant-purescript ==0.10.0.0
   - servant-rawm ==0.3.2.0
   - servant-server ==0.16.2
-  - servant-static-th ==0.2.2.1
-  - servant-subscriber ==0.6.0.3
+  - servant-static-th ==0.2.4.0
+  - servant-subscriber ==0.7.0.0
   - servant-swagger ==1.1.7.1
   - servant-swagger-ui ==0.3.4.3.23.11
   - servant-swagger-ui-core ==0.3.3
   - servant-swagger-ui-redoc ==0.3.3.1.22.3
   - servant-websockets ==2.0.0
   - servant-yaml ==0.1.0.1
-  - serverless-haskell ==0.10.5
+  - serverless-haskell ==0.11.3
   - serversession ==1.0.1
   - serversession-frontend-wai ==1.0
   - ses-html ==0.4.0.0
   - set-cover ==0.1.1
   - setenv ==0.1.1.3
   - setlocale ==1.0.0.9
+  - sexp-grammar ==2.1.0
   - SHA ==1.6.4.4
-  - shakespeare ==2.0.24
+  - shake-plus ==0.1.10.0
+  - shakespeare ==2.0.25
   - shared-memory ==0.2.0.0
   - shell-conduit ==4.7.0
   - shell-escape ==0.2.0
   - shellmet ==0.0.3.1
   - shelltestrunner ==1.9
-  - shell-utility ==0.0
+  - shell-utility ==0.1
   - shelly ==1.9.0
   - should-not-typecheck ==2.1.0
-  - show-combinators ==0.1.1.0
+  - show-combinators ==0.2.0.0
   - siggy-chardust ==1.0.0
   - signal ==0.1.0.4
   - silently ==1.2.5.1
   - simple-affine-space ==0.1.1
   - simple-cabal ==0.1.2
-  - simple-cmd ==0.2.1
+  - simple-cmd ==0.2.2
   - simple-cmd-args ==0.1.6
   - simple-log ==0.9.12
   - simple-reflect ==0.3.3
   - simple-sendfile ==0.2.30
   - simplest-sqlite ==0.1.0.2
-  - simple-templates ==0.9.0.0
-  - simple-vec3 ==0.6
-  - simplistic-generics ==0.1.0.0
+  - simple-templates ==1.0.0
+  - simple-vec3 ==0.6.0.1
+  - simplistic-generics ==2.0.0
   - since ==0.0.0
   - singleton-bool ==0.1.5
   - singleton-nats ==0.4.5
   - singletons ==2.6
-  - singletons-presburger ==0.3.0.0
+  - singletons-presburger ==0.3.0.1
   - siphash ==1.0.3
   - sitemap-gen ==0.1.0.0
   - size-based ==0.1.2.0
   - sized ==0.4.0.0
   - skein ==1.0.9.4
+  - skews ==0.1.0.3
   - skip-var ==0.1.1.0
-  - skylighting ==0.8.4
-  - skylighting-core ==0.8.4
+  - skylighting ==0.8.5
+  - skylighting-core ==0.8.5
+  - slack-api ==0.12
   - slist ==0.1.1.0
-  - small-bytearray-builder ==0.3.4.0
-  - smallcheck ==1.1.5
+  - smallcheck ==1.1.7
+  - smash ==0.1.1.0
+  - smash-aeson ==0.1.0.0
+  - smash-lens ==0.1.0.1
+  - smash-microlens ==0.1.0.0
   - smoothie ==0.4.2.11
   - snap-blaze ==0.2.1.5
-  - snap-core ==1.0.4.1
+  - snap-core ==1.0.4.2
   - snap-server ==1.1.1.2
   - snowflake ==0.1.1.1
   - soap ==0.2.3.6
@@ -1925,12 +2057,12 @@ default-package-overrides:
   - sox ==0.2.3.1
   - soxlib ==0.0.3.1
   - sparse-linear-algebra ==0.3.1
-  - sparse-tensor ==0.2.1.3
+  - sparse-tensor ==0.2.1.4
   - spatial-math ==0.5.0.1
   - special-values ==0.1.0.0
   - speculate ==0.4.2
   - speedy-slice ==0.3.1
-  - Spintax ==0.3.4
+  - Spintax ==0.3.5
   - splice ==0.6.1.1
   - split ==0.2.3.4
   - splitmix ==0.0.5
@@ -1939,38 +2071,43 @@ default-package-overrides:
   - sqlcli ==0.2.2.0
   - sqlcli-odbc ==0.2.0.1
   - sql-words ==0.1.6.4
+  - squeather ==0.4.0.0
   - srcloc ==0.5.1.2
   - stache ==2.1.1
+  - stackcollapse-ghc ==0.0.1.2
   - stack-templatizer ==0.1.0.2
   - starter ==0.3.0
   - stateref ==0.3
   - statestack ==0.3
   - StateVar ==1.2
+  - static-text ==0.2.0.6
   - statistics ==0.15.2.0
+  - status-notifier-item ==0.3.0.5
   - stb-image-redux ==0.2.1.3
   - step-function ==0.2
   - stm-chans ==3.0.0.4
   - stm-conduit ==4.0.1
-  - stm-containers ==1.1.0.4
   - stm-delay ==0.1.1.1
   - stm-extras ==0.1.0.3
-  - stm-hamt ==1.2.0.4
   - stm-split ==0.0.2.1
   - stopwatch ==0.1.0.6
   - storable-complex ==0.2.3.0
   - storable-record ==0.0.5
   - storable-tuple ==0.0.3.3
-  - storablevector ==0.2.13
-  - stratosphere ==0.49.0
+  - storablevector ==0.2.13.1
+  - stratosphere ==0.53.0
   - streaming ==0.2.3.0
   - streaming-bytestring ==0.1.6
-  - streaming-commons ==0.2.1.2
+  - streaming-commons ==0.2.2.1
   - streamly ==0.7.2
+  - streamly-bytestring ==0.1.2
   - streams ==3.3
   - strict ==0.3.2
   - strict-base-types ==0.6.1
   - strict-concurrency ==0.2.4.3
   - strict-list ==0.1.5
+  - strict-tuple ==0.1.3
+  - strict-tuple-lens ==0.1.0.1
   - stringbuilder ==0.5.1
   - string-class ==0.1.7.0
   - string-combinators ==0.6.0.5
@@ -1981,11 +2118,14 @@ default-package-overrides:
   - stringsearch ==0.3.6.6
   - string-transform ==1.1.1
   - stripe-concepts ==1.0.2.4
-  - stripe-signature ==1.0.0.4
+  - stripe-signature ==1.0.0.6
   - strive ==5.0.12
   - structs ==0.1.3
+  - structured ==0.1
   - structured-cli ==2.5.2.0
-  - stylish-haskell ==0.10.0.0
+  - stylish-haskell ==0.11.0.3
+  - summoner ==2.0.1.1
+  - summoner-tui ==2.0.1.1
   - sum-type-boilerplate ==0.1.1
   - sundown ==0.6
   - superbuffer ==0.3.1.1
@@ -1994,16 +2134,19 @@ default-package-overrides:
   - svg-tree ==0.6.2.4
   - swagger ==0.3.0
   - swagger2 ==2.5
+  - swish ==0.10.0.4
   - syb ==0.7.1
   - symbol ==0.2.4
   - symengine ==0.1.2.0
+  - symmetry-operations-symbols ==0.0.2.1
   - sysinfo ==0.1.1
   - system-argv0 ==0.1.1
-  - systemd ==2.2.0
+  - systemd ==2.3.0
   - system-fileio ==0.3.16.4
   - system-filepath ==0.4.14
   - system-info ==0.5.1
-  - tabular ==0.2.2.7
+  - tabular ==0.2.2.8
+  - taffybar ==3.2.2
   - tagchup ==0.4.1.1
   - tagged ==0.8.6
   - tagged-binary ==0.2.0.1
@@ -2018,7 +2161,7 @@ default-package-overrides:
   - tardis ==0.4.1.0
   - tasty ==1.2.3
   - tasty-ant-xml ==1.1.6
-  - tasty-dejafu ==2.0.0.4
+  - tasty-dejafu ==2.0.0.6
   - tasty-discover ==4.2.1
   - tasty-expected-failure ==0.11.1.2
   - tasty-golden ==2.3.3.2
@@ -2027,11 +2170,11 @@ default-package-overrides:
   - tasty-hunit ==0.10.0.2
   - tasty-kat ==0.0.3
   - tasty-leancheck ==0.0.1
-  - tasty-lua ==0.2.2
+  - tasty-lua ==0.2.3
   - tasty-program ==1.0.5
   - tasty-quickcheck ==0.10.1.1
   - tasty-rerun ==1.1.17
-  - tasty-silver ==3.1.13
+  - tasty-silver ==3.1.15
   - tasty-smallcheck ==0.8.1
   - tasty-th ==0.1.7
   - tasty-wai ==0.1.1.0
@@ -2039,7 +2182,7 @@ default-package-overrides:
   - TCache ==0.12.1
   - tce-conf ==1.3
   - tdigest ==0.2.1
-  - template-haskell-compat-v0208 ==0.1.2.1
+  - template-haskell-compat-v0208 ==0.1.5
   - temporary ==1.3
   - temporary-rc ==1.2.0.3
   - temporary-resourcet ==0.1.0.1
@@ -2075,30 +2218,35 @@ default-package-overrides:
   - tfp ==1.0.1.1
   - tf-random ==0.5
   - th-abstraction ==0.3.2.0
+  - th-bang-compat ==0.0.1.0
+  - th-constraint-compat ==0.0.1.0
   - th-data-compat ==0.1.0.0
   - th-desugar ==1.10
-  - these ==1.0.1
-  - these-lens ==1
+  - th-env ==0.1.0.2
+  - these ==1.1.1.1
+  - these-lens ==1.0.0.1
   - these-optics ==1
   - th-expand-syns ==0.4.6.0
   - th-extras ==0.0.0.4
   - th-lift ==0.8.1
-  - th-lift-instances ==0.1.16
+  - th-lift-instances ==0.1.17
+  - th-nowq ==0.1.0.5
   - th-orphans ==0.13.10
   - th-printf ==0.7
-  - thread-hierarchy ==0.3.0.1
+  - thread-hierarchy ==0.3.0.2
   - thread-local-storage ==0.2
   - threads ==0.5.1.6
-  - thread-supervisor ==0.1.0.0
-  - threepenny-gui ==0.8.3.2
+  - thread-supervisor ==0.1.0.1
+  - threepenny-gui ==0.9.0.0
   - th-reify-compat ==0.0.1.5
   - th-reify-many ==0.1.9
   - throttle-io-stream ==0.2.0.1
+  - through-text ==0.1.0.0
   - throwable-exceptions ==0.1.0.9
   - th-strict-compat ==0.1.0.1
   - th-test-utils ==1.0.2
   - thyme ==0.3.5.5
-  - tidal ==1.4.9
+  - tidal ==1.5.2
   - tile ==0.3.0.0
   - time-compat ==1.9.3
   - timeit ==2.0
@@ -2109,7 +2257,8 @@ default-package-overrides:
   - time-manager ==0.0.0
   - time-parsers ==0.1.2.1
   - timerep ==2.0.0.2
-  - timezone-olson ==0.1.9
+  - time-units ==1.0.0
+  - timezone-olson ==0.2.0
   - timezone-series ==0.1.9
   - tinylog ==0.15.0
   - titlecase ==1.0.1
@@ -2120,7 +2269,7 @@ default-package-overrides:
   - tmapchan ==0.0.3
   - tmapmvar ==0.0.4
   - tmp-postgres ==1.34.1.0
-  - tomland ==1.2.1.0
+  - tomland ==1.3.0.0
   - tonalude ==0.1.1.0
   - topograph ==1.0.0.1
   - torsor ==0.1
@@ -2145,7 +2294,7 @@ default-package-overrides:
   - tuples-homogenous-h98 ==0.1.1.0
   - tuple-sop ==0.3.1.0
   - tuple-th ==0.2.5
-  - turtle ==1.5.19
+  - turtle ==1.5.20
   - TypeCompose ==0.9.14
   - typed-process ==0.2.6.0
   - typed-uuid ==0.0.0.2
@@ -2168,15 +2317,18 @@ default-package-overrides:
   - tzdata ==0.1.20190911.0
   - ua-parser ==0.7.5.1
   - uglymemo ==0.1.0.1
+  - ulid ==0.3.0.0
   - unagi-chan ==0.4.1.3
   - unbounded-delays ==0.1.1.0
   - unboxed-ref ==0.4.0.0
   - unboxing-vector ==0.1.1.0
   - uncertain ==0.3.1.0
   - unconstrained ==0.1.0.2
+  - unexceptionalio ==0.5.1
+  - unexceptionalio-trans ==0.5.1
   - unicode ==0.0.1.1
   - unicode-show ==0.1.0.4
-  - unicode-transforms ==0.3.6
+  - unicode-transforms ==0.3.7
   - unification-fd ==0.10.0.1
   - union-find ==0.2
   - uniplate ==1.6.12
@@ -2204,13 +2356,13 @@ default-package-overrides:
   - unordered-containers ==0.2.10.0
   - unordered-intmap ==0.1.1
   - unsafe ==0.0
-  - urbit-hob ==0.3.2
+  - urbit-hob ==0.3.3
   - uri-bytestring ==0.3.2.2
-  - uri-bytestring-aeson ==0.1.0.7
-  - uri-encode ==1.5.0.5
+  - uri-bytestring-aeson ==0.1.0.8
+  - uri-encode ==1.5.0.6
   - url ==2.1.3
-  - urlpath ==9.0.1
   - users ==0.5.0.0
+  - utf8-conversions ==0.1.0.4
   - utf8-light ==0.4.2
   - utf8-string ==1.0.1.1
   - util ==0.1.17.1
@@ -2218,10 +2370,11 @@ default-package-overrides:
   - uuid ==1.3.13
   - uuid-types ==1.0.3
   - validation ==1.1
-  - validity ==0.9.0.3
+  - validation-selective ==0.1.0.0
+  - validity ==0.11.0.0
   - validity-aeson ==0.2.0.4
   - validity-bytestring ==0.4.1.1
-  - validity-containers ==0.5.0.3
+  - validity-containers ==0.5.0.4
   - validity-path ==0.4.0.1
   - validity-primitive ==0.0.0.1
   - validity-scientific ==0.2.0.3
@@ -2242,53 +2395,57 @@ default-package-overrides:
   - vector-instances ==3.4
   - vector-mmap ==0.0.3
   - vector-rotcev ==0.1.0.0
-  - vector-sized ==1.4.1.0
+  - vector-sized ==1.4.2
   - vector-space ==0.16
   - vector-split ==1.0.0.2
   - vector-th-unbox ==0.2.1.7
-  - verbosity ==0.3.0.0
+  - verbosity ==0.4.0.0
   - versions ==3.5.4
   - vformat ==0.14.1.0
   - vformat-aeson ==0.1.0.1
   - vformat-time ==0.1.0.0
   - ViennaRNAParser ==1.3.3
   - void ==0.7.3
-  - vty ==5.26
+  - vty ==5.28.2
   - wai ==3.2.2.1
-  - wai-app-static ==3.1.7.1
+  - wai-app-static ==3.1.7.2
   - wai-conduit ==3.0.0.4
   - wai-cors ==0.2.7
   - wai-enforce-https ==0.0.2.1
   - wai-eventsource ==3.0.0
-  - wai-extra ==3.0.29.2
+  - wai-extra ==3.0.31
   - wai-handler-launch ==3.0.3.1
   - wai-logger ==2.3.6
   - wai-middleware-caching ==0.1.0.2
+  - wai-middleware-clacks ==0.1.0.1
   - wai-middleware-static ==0.8.3
   - wai-session ==0.3.3
   - wai-slack-middleware ==0.2.0
   - wai-websockets ==3.0.1.2
-  - warp ==3.3.12
+  - warp ==3.3.13
   - warp-tls ==3.2.12
   - warp-tls-uid ==0.2.0.6
   - wave ==0.2.0
   - wcwidth ==0.0.2
   - webdriver ==0.9.0.1
-  - webex-teams-api ==0.2.0.0
-  - webex-teams-conduit ==0.2.0.0
-  - webex-teams-pipes ==0.2.0.0
+  - webex-teams-api ==0.2.0.1
+  - webex-teams-conduit ==0.2.0.1
+  - webex-teams-pipes ==0.2.0.1
   - webrtc-vad ==0.1.0.3
   - websockets ==0.12.7.1
   - websockets-snap ==0.10.3.1
   - weigh ==0.0.16
   - wide-word ==0.1.1.1
   - wikicfp-scraper ==0.1.0.11
-  - wild-bind ==0.1.2.5
-  - wild-bind-x11 ==0.2.0.9
+  - wild-bind ==0.1.2.6
+  - wild-bind-x11 ==0.2.0.10
   - Win32 ==2.6.1.0
   - Win32-notify ==0.3.0.3
   - windns ==0.1.0.1
+  - witherable-class ==0
+  - within ==0.1.1.0
   - with-location ==0.1.0
+  - with-utf8 ==1.0.2.1
   - witness ==0.4
   - wizards ==1.0.3
   - wl-pprint-annotated ==0.1.0.1
@@ -2298,14 +2455,15 @@ default-package-overrides:
   - word8 ==0.1.3
   - word-trie ==0.3.0
   - word-wrap ==0.4.1
-  - world-peace ==1.0.1.0
+  - world-peace ==1.0.2.0
   - wrap ==0.0.0
   - wreq ==0.5.3.2
   - writer-cps-exceptions ==0.1.0.1
   - writer-cps-mtl ==0.1.1.6
   - writer-cps-transformers ==0.5.6.1
-  - wuss ==1.1.16
-  - X11 ==1.9.1
+  - wss-client ==0.3.0.0
+  - wuss ==1.1.17
+  - X11 ==1.9.2
   - X11-xft ==0.3.1
   - x11-xim ==0.0.9.0
   - x509 ==1.7.5
@@ -2314,10 +2472,11 @@ default-package-overrides:
   - x509-validation ==1.6.11
   - Xauth ==0.1
   - xdg-basedir ==0.2.2
+  - xdg-desktop-entry ==0.1.1.1
   - xdg-userdirs ==0.1.0.2
-  - xeno ==0.3.5.2
+  - xeno ==0.4.2
   - xls ==0.1.3
-  - xlsx ==0.8.0
+  - xlsx ==0.8.1
   - xlsx-tabular ==0.2.2.1
   - xml ==1.3.14
   - xml-basic ==0.1.3.1
@@ -2325,32 +2484,38 @@ default-package-overrides:
   - xml-conduit-writer ==0.1.1.2
   - xmlgen ==0.6.2.2
   - xml-hamlet ==0.5.0.1
+  - xml-helpers ==1.0.0
   - xml-html-qq ==0.1.0.1
   - xml-indexed-cursor ==0.1.1.0
   - xml-lens ==0.2
   - xml-picklers ==0.3.6
   - xml-to-json ==2.0.1
   - xml-to-json-fast ==2.0.0
-  - xml-types ==0.3.6
+  - xml-types ==0.3.8
   - xmonad ==0.15
   - xmonad-contrib ==0.16
   - xmonad-extras ==0.15.2
   - xss-sanitize ==0.3.6
   - xturtle ==0.2.0.0
   - xxhash-ffi ==0.2.0.0
-  - yaml ==0.11.4.0
-  - yesod ==1.6.0.1
+  - yaml ==0.11.5.0
+  - yamlparse-applicative ==0.1.0.1
+  - yesod ==1.6.1.0
   - yesod-auth ==1.6.10
+  - yesod-auth-fb ==1.10.1
   - yesod-auth-hashdb ==1.7.1.2
-  - yesod-bin ==1.6.0.4
+  - yesod-bin ==1.6.0.6
   - yesod-core ==1.6.18
+  - yesod-fb ==0.6.1
   - yesod-form ==1.6.7
+  - yesod-form-bootstrap4 ==3.0.0
   - yesod-gitrev ==0.2.1
   - yesod-newsfeed ==1.7.0.0
   - yesod-persistent ==1.6.0.4
+  - yesod-recaptcha2 ==1.0.1
   - yesod-sitemap ==1.6.0
-  - yesod-static ==1.6.0.1
-  - yesod-test ==1.6.9
+  - yesod-static ==1.6.1.0
+  - yesod-test ==1.6.10
   - yesod-websockets ==0.3.0.2
   - yes-precure5-command ==5.5.3
   - yi-rope ==0.11
@@ -2363,11 +2528,11 @@ default-package-overrides:
   - zeromq4-haskell ==0.8.0
   - zeromq4-patterns ==0.3.1.0
   - zim-parser ==0.2.1.0
-  - zip ==1.3.2
+  - zip ==1.5.0
   - zip-archive ==0.4.1
   - zippers ==0.3
   - zip-stream ==0.2.0.1
-  - zlib ==0.6.2.1
+  - zlib ==0.6.2.2
   - zlib-bindings ==0.1.1.5
   - zlib-lens ==0.1.2.1
   - zot ==0.0.3
@@ -2375,15 +2540,16 @@ default-package-overrides:
 
 extra-packages:
   - aeson < 0.8                         # newer versions don't work with GHC 7.6.x or earlier
-  - ansi-terminal == 0.10.3             # required by cabal-plan, and policeman in ghc-8.8.x
+  - aeson == 1.5.2.0                    # needed for fourmolu 0.1.0.0, but 1.5.3 is to new for our purpose
   - aeson-pretty < 0.8                  # required by elm compiler
+  - Agda == 2.6.1                       # allows the agdaPackage set to be fixed to this version so that it won't break when another agda version is released.
+  - ansi-terminal == 0.10.3             # required by cabal-plan, and policeman in ghc-8.8.x
   - apply-refact < 0.4                  # newer versions don't work with GHC 8.0.x
   - apply-refact == 0.6.0.0             # works with GHC 8.6.x https://hackage.haskell.org/package/apply-refact/changelog
   - apply-refact == 0.7.0.0             # works with GHC 8.8.x https://hackage.haskell.org/package/apply-refact/changelog
   - apply-refact == 0.8.0.0             # works with GHC 8.10.x https://hackage.haskell.org/package/apply-refact/changelog
   - binary > 0.7 && < 0.8               # keep a 7.x major release around for older compilers
   - binary > 0.8 && < 0.9               # keep a 8.x major release around for older compilers
-  - blank-canvas < 0.6.3                # more recent versions depend on base-compat-batteries == 0.10.* but we're on base-compat-0.9.*
   - Cabal == 2.2.*                      # required for jailbreak-cabal etc.
   - Cabal == 2.4.*                      # required for cabal-install etc.
   - colour < 2.3.4                      # newer versions don't support GHC 7.10.x
@@ -2394,10 +2560,12 @@ extra-packages:
   - dbus <1                             # for xmonad-0.26
   - deepseq == 1.3.0.1                  # required to build Cabal with GHC 6.12.3
   - dhall == 1.29.0                     # required for spago 0.14.0.
+  - Diff < 0.4                          # required by liquidhaskell-0.8.10.2: https://github.com/ucsd-progsys/liquidhaskell/issues/1729
   - doctemplates == 0.8                 # required by pandoc-2.9.x
   - generic-deriving == 1.10.5.*        # new versions don't compile with GHC 7.10.x
-  - ghc-check == 0.3.0.1                # only version compatible with ghcide 0.2.0
   - ghc-tcplugins-extra ==0.3.2         # required for polysemy-plugin 0.2.5.0
+  - gi-gdk == 3.0.23                    # required for gi-pango 1.0.23
+  - gi-gtk == 3.0.35                    # required for gi-pango 1.0.23
   - gloss < 1.9.3                       # new versions don't compile with GHC 7.8.x
   - haddock == 2.22.*                   # required on GHC 8.0.x
   - haddock == 2.23.*                   # required on GHC < 8.10.x
@@ -2406,11 +2574,10 @@ extra-packages:
   - happy <1.19.6                       # newer versions break Agda
   - happy == 1.19.9                     # for purescript
   - haskell-gi-overloading == 0.0       # gi-* packages use this dependency to disable overloading support
-  - haskell-lsp == 0.22.*               # required for ghcide 0.2.0
-  - haskell-lsp-types == 0.22.*         # required for ghcide 0.2.0
   - haskell-src-exts == 1.19.*          # required by hindent and structured-haskell-mode
   - hinotify == 0.3.9                   # for xmonad-0.26: https://github.com/kolmodin/hinotify/issues/29
   - hoogle == 5.0.14                    # required by hie-hoogle
+  - hslua == 1.1.2                      # required for pandoc 2.10
   - html-conduit ^>= 1.2                # pre-lts-11.x versions neeed by git-annex 6.20180227
   - http-conduit ^>= 2.2                # pre-lts-11.x versions neeed by git-annex 6.20180227
   - inline-c < 0.6                      # required on GHC 8.0.x
@@ -2421,18 +2588,22 @@ extra-packages:
   - mtl-prelude < 2                     # required for to build postgrest on mtl 2.1.x platforms
   - network == 2.6.3.1                  # newer versions don't compile with GHC 7.4.x and below
   - network == 3.0.*                    # required by network-bsd, HTTP, and many others (2019-04-30)
+  - ormolu == 0.0.5.0                   # required by haskell-language-server
+  - pandoc-types == 1.21                # required by for pandoc_2_10_1
+  - pantry == 0.2.0.0                   # required by stack-2.1.3.1
   - parallel == 3.2.0.3                 # newer versions don't work with GHC 6.12.3
   - patience ^>= 0.1                    # required by chell-0.4.x
-  - pantry == 0.2.0.0                   # required by stack-2.1.3.1
   - persistent >=2.5 && <2.8            # pre-lts-11.x versions neeed by git-annex 6.20180227
   - persistent-sqlite < 2.7             # pre-lts-11.x versions neeed by git-annex 6.20180227
   - prettyprinter == 1.6.1              # required by ghc 8.8.x, and dhall-1.29.0
   - primitive == 0.5.1.*                # required to build alex with GHC 6.12.3
   - QuickCheck < 2                      # required by test-framework-quickcheck and its users
+  - repline == 0.3.*                    # required by dhall-0.32.x
   - resolv == 0.1.1.2                   # required to build cabal-install-3.0.0.0 with pre ghc-8.8.x
   - resourcet ==1.1.*                   # pre-lts-11.x versions neeed by git-annex 6.20180227
   - seqid < 0.2                         # newer versions depend on transformers 0.4.x which we cannot provide in GHC 7.8.x
   - seqid-streams < 0.2                 # newer versions depend on transformers 0.4.x which we cannot provide in GHC 7.8.x
+  - shelly ==1.8.1                      # ghcjs depends on shelly < 1.9
   - split < 0.2                         # newer versions don't work with GHC 6.12.3
   - tar < 0.4.2.0                       # later versions don't work with GHC < 7.6.x
   - transformers == 0.4.3.*             # the latest version isn't supported by mtl yet
@@ -2444,6 +2615,13 @@ extra-packages:
   - yesod-persistent < 1.5              # pre-lts-11.x versions neeed by git-annex 6.20180227
   - yesod-static ^>= 1.5                # pre-lts-11.x versions neeed by git-annex 6.20180227
   - yesod-test ^>= 1.5                  # pre-lts-11.x versions neeed by git-annex 6.20180227
+  - immortal == 0.2.2.1                 # required by Hasura 1.3.1, 2020-08-20
+  - dependent-map == 0.2.4.0            # required by Hasura 1.3.1, 2020-08-20
+  - dependent-sum == 0.4                # required by Hasura 1.3.1, 2020-08-20
+  - witherable == 0.3.2                 # required by Hasura 1.3.1, 2020-08-20
+  - protolude == 0.3.0                  # required by Hasura 1.3.1, 2020-08-20
+  - optics-core == 0.3.0.1              # required by Hasura 1.3.1, 2020-08-20
+  - base-compat == 0.11.1              # required by Hasura 1.3.1, 2020-08-20
 
 package-maintainers:
   peti:
@@ -2480,11 +2658,11 @@ package-maintainers:
     # - pipes-mongodb
     - streaming-wai
   kiwi:
+    - Unique
     - glirc
     - matterhorn
     - mattermost-api
     - mattermost-api-qc
-    - Unique
   psibi:
     - path-pieces
     - persistent
@@ -2495,23 +2673,38 @@ package-maintainers:
     - Agda
   roberth:
     - arion-compose
+    - hercules-ci-agent
+    - hercules-ci-api-core
+    - hercules-ci-api-agent
   cdepillabout:
     - pretty-simple
     - spago
-    - termonad
   rkrzr:
     - icepeak
   terlar:
     - nix-diff
   maralorn:
+    - reflex-dom
     - ghcide
     - cabal-fmt
-    - neuron
     - shh
     - brittany
     - hlint
+    - neuron
     - releaser
     - taskwarrior
+  sorki:
+    - cayene-lpp
+    - data-stm32
+    - gcodehs
+    - nix-derivation
+    - nix-narinfo
+    - ttn
+    # - ttn-client
+    - update-nix-fetchgit
+    - zre
+  utdemir:
+    - nix-tree
 
 unsupported-platforms:
   alsa-mixer:                                   [ x86_64-darwin ]
@@ -2570,16 +2763,26 @@ dont-distribute-packages:
   - accelerate-examples
   - accelerate-fft
   - accelerate-fourier-benchmark
+  - accelerate-io-array
+  - accelerate-io-bmp
+  - accelerate-io-bytestring
+  - accelerate-io-cereal
+  - accelerate-io-JuicyPixels
+  - accelerate-io-repa
+  - accelerate-io-vector
   - accelerate-llvm-ptx
   - bindings-yices
   - boolector
   - ccelerate-cuda
+  - containers-accelerate
   - cplex-hs
   - cublas
+  - cuda # 2020-08-18 because of dependency nvidia-x11
   - cufft
   - cusolver
   - cusparse
   - gloss-raster-accelerate
+  - hashable-accelerate
   - libnvvm
   - matlab
   - nvvm
@@ -2632,7 +2835,6 @@ dont-distribute-packages:
   - reflex-dom-contrib
   - reflex-dom-fragment-shader-canvas
   - reflex-dom-helpers
-  - reflex-dom
   - reflex-jsx
   - sneathlane-haste
   - spike
@@ -2779,6 +2981,7 @@ broken-packages:
   - alerta
   - alex-prelude
   - alfred
+  - alfred-margaret
   - alga
   - algebra-dag
   - algebra-sql
@@ -2811,6 +3014,7 @@ broken-packages:
   - AMI
   - ampersand
   - amqp-conduit
+  - amqp-streamly
   - analyze
   - analyze-client
   - anansi-pandoc
@@ -2883,8 +3087,10 @@ broken-packages:
   - arb-fft
   - arbb-vm
   - arbor-datadog
+  - arbor-monad-counter
   - arbor-monad-metric
   - arbor-monad-metric-datadog
+  - arbor-postgres
   - arbtt
   - archive-libarchive
   - archive-tar-bytestring
@@ -2908,6 +3114,7 @@ broken-packages:
   - arpa
   - arpack
   - array-forth
+  - array-list
   - array-primops
   - arrayfire
   - arraylist
@@ -2922,6 +3129,7 @@ broken-packages:
   - artifact
   - asap
   - ascii
+  - ascii-cows
   - ascii-flatten
   - ascii-string
   - ascii-table
@@ -3021,6 +3229,7 @@ broken-packages:
   - aws-kinesis-client
   - aws-kinesis-reshard
   - aws-lambda
+  - aws-lambda-haskell-runtime-wai
   - aws-mfa-credentials
   - aws-performance-tests
   - aws-route53
@@ -3032,9 +3241,11 @@ broken-packages:
   - aws-sns
   - axel
   - axiom
+  - azimuth-hs
   - azubi
   - azure-acs
   - azure-email
+  - azure-functions-worker
   - azure-service-api
   - azure-servicebus
   - azurify
@@ -3073,6 +3284,8 @@ broken-packages:
   - base-generics
   - base-io-access
   - base32-bytestring
+  - base62
+  - base64-bytes
   - base64-conduit
   - baserock-schema
   - basex-client
@@ -3148,6 +3361,7 @@ broken-packages:
   - binary-protocol-zmq
   - binary-search
   - binary-streams
+  - binary-tagged
   - binary-typed
   - bind-marshal
   - BinderAnn
@@ -3219,12 +3433,16 @@ broken-packages:
   - birch-beer
   - bird
   - BirdPP
+  - birds-of-paradise
   - bisect-binary
+  - bishbosh
   - bit-array
   - bit-stream
+  - bitcoin-address
   - bitcoin-api
   - bitcoin-api-extra
   - bitcoin-block
+  - bitcoin-compact-filters
   - bitcoin-hs
   - bitcoin-rpc
   - bitcoin-script
@@ -3307,7 +3525,10 @@ broken-packages:
   - bot
   - botpp
   - bounded-array
+  - bowntz
   - box
+  - box-csv
+  - box-socket
   - braid
   - brain-bleep
   - Bravo
@@ -3364,8 +3585,10 @@ broken-packages:
   - butter
   - butterflies
   - bv-sized
+  - byline
   - bytable
   - bytearray-parsing
+  - bytelog
   - bytestring-arbitrary
   - bytestring-builder-varword
   - bytestring-class
@@ -3389,9 +3612,7 @@ broken-packages:
   - c0parser
   - c10k
   - c2ats
-  - c2hsc
   - cabal-audit
-  - cabal-bounds
   - cabal-bundle-clib
   - cabal-cache
   - cabal-cargs
@@ -3408,7 +3629,6 @@ broken-packages:
   - cabal-install-bundle
   - cabal-install-ghc72
   - cabal-install-ghc74
-  - cabal-lenses
   - cabal-meta
   - cabal-mon
   - cabal-nirvana
@@ -3465,6 +3685,8 @@ broken-packages:
   - cao
   - cap
   - Capabilities
+  - capability
+  - capataz
   - capnp
   - capped-list
   - capri
@@ -3542,6 +3764,7 @@ broken-packages:
   - cgen
   - cgi-utils
   - cgrep
+  - chainweb-mining-client
   - chalkboard
   - chalkboard-viewer
   - charade
@@ -3550,6 +3773,7 @@ broken-packages:
   - chart-histogram
   - Chart-simple
   - chart-svg
+  - chart-svg-various
   - chart-unit
   - chatter
   - chatty-text
@@ -3693,6 +3917,7 @@ broken-packages:
   - codemonitor
   - codepad
   - codeworld-api
+  - codex
   - codo-notation
   - coin
   - coinbase-exchange
@@ -3747,13 +3972,18 @@ broken-packages:
   - compdata-automata
   - compdata-dags
   - compdata-param
+  - compdoc
   - competition
   - compilation
   - complexity
   - compose-trans
   - composite-aeson
+  - composite-aeson-cofree-list
+  - composite-aeson-path
   - composite-aeson-refined
-  - composite-base
+  - composite-aeson-throw
+  - composite-aeson-writeonly
+  - composite-binary
   - composite-ekg
   - composite-opaleye
   - composite-swagger
@@ -3800,6 +4030,7 @@ broken-packages:
   - confcrypt
   - conferer-hedis
   - conferer-provider-dhall
+  - conferer-provider-json
   - conferer-provider-yaml
   - conferer-snap
   - conffmt
@@ -3832,6 +4063,7 @@ broken-packages:
   - constraint-manip
   - ConstraintKinds
   - constraints-emerge
+  - construct
   - constructible
   - constructive-algebra
   - consul-haskell
@@ -3864,6 +4096,7 @@ broken-packages:
   - Control-Monad-ST2
   - contstuff-monads-tf
   - contstuff-transformers
+  - conversions
   - convert
   - convert-annotation
   - convertible-ascii
@@ -3883,6 +4116,7 @@ broken-packages:
   - CoreDump
   - CoreErlang
   - CoreFoundation
+  - corenlp-parser
   - Coroutine
   - coroutine-enumerator
   - coroutine-iteratee
@@ -3902,6 +4136,7 @@ broken-packages:
   - cparsing
   - CPBrainfuck
   - cpio-conduit
+  - cpkg
   - CPL
   - cplusplus-th
   - cprng-aes-effect
@@ -3953,14 +4188,22 @@ broken-packages:
   - crypto-random-effect
   - crypto-rng
   - crypto-simple
+  - crypto-sodium
   - cryptocipher
   - cryptocompare
   - cryptoconditions
+  - cryptoids
   - cryptol
   - cryptsy-api
   - crystalfontz
   - cse-ghc-plugin
   - csg
+  - csound-catalog
+  - csound-expression
+  - csound-expression-dynamic
+  - csound-expression-opcodes
+  - csound-expression-typed
+  - csound-sampler
   - CSPM-cspm
   - CSPM-FiringRules
   - CSPM-Frontend
@@ -3989,6 +4232,7 @@ broken-packages:
   - curve25519
   - curves
   - custom-prelude
+  - cut-the-crap
   - CV
   - cv-combinators
   - cypher
@@ -4039,6 +4283,7 @@ broken-packages:
   - data-filepath
   - data-fin
   - data-fin-simple
+  - data-fix-cse
   - data-flagset
   - data-forest
   - data-ivar
@@ -4072,6 +4317,7 @@ broken-packages:
   - data-transform
   - data-type
   - data-util
+  - data-validation
   - data-variant
   - database-id-groundhog
   - database-study
@@ -4084,6 +4330,7 @@ broken-packages:
   - datasets
   - DataTreeView
   - dataurl
+  - DataVersion
   - date-conversions
   - dates
   - datetime
@@ -4158,11 +4405,11 @@ broken-packages:
   - delude
   - demarcate
   - denominate
+  - dense
   - dense-int-set
   - dependent-hashmap
   - dependent-monoidal-map
   - dependent-state
-  - dependent-sum-aeson-orphans
   - depends
   - dephd
   - deptrack-core
@@ -4184,6 +4431,7 @@ broken-packages:
   - detour-via-uom
   - deunicode
   - devil
+  - devtools
   - dewdrop
   - dfinity-radix-tree
   - Dflow
@@ -4191,8 +4439,8 @@ broken-packages:
   - dgim
   - dgs
   - dhall-check
+  - dhall-docs
   - dhall-fly
-  - dhall-nix
   - dhall-text
   - dhall-to-cabal
   - dhall-yaml
@@ -4214,6 +4462,7 @@ broken-packages:
   - diagrams-wx
   - dialogflow-fulfillment
   - dib
+  - dice
   - dice-entropy-conduit
   - dice2tex
   - dicom
@@ -4257,6 +4506,7 @@ broken-packages:
   - dirtree
   - discogs-haskell
   - discord-gateway
+  - discord-haskell
   - discord-hs
   - discord-rest
   - discord-types
@@ -4465,6 +4715,7 @@ broken-packages:
   - elm-websocket
   - elynx
   - elynx-markov
+  - elynx-nexus
   - elynx-seq
   - elynx-tools
   - elynx-tree
@@ -4484,6 +4735,7 @@ broken-packages:
   - enchant
   - encoding
   - encoding-io
+  - encryptable
   - engine-io
   - engine-io-growler
   - engine-io-snap
@@ -4505,6 +4757,7 @@ broken-packages:
   - EnumMap
   - enummapmap
   - enummapset-th
+  - env-extra
   - env-parser
   - envstatus
   - epanet-haskell
@@ -4536,10 +4789,9 @@ broken-packages:
   - EsounD
   - espial
   - ess
-  - essence-of-live-coding
-  - essence-of-live-coding-gloss
-  - essence-of-live-coding-pulse
-  - essence-of-live-coding-quickcheck
+  - essence-of-live-coding-gloss-example
+  - essence-of-live-coding-pulse-example
+  - essence-of-live-coding-warp
   - estimators
   - EstProgress
   - estreps
@@ -4558,6 +4810,7 @@ broken-packages:
   - ethereum-client-haskell
   - ethereum-merkle-patricia-db
   - eths-rlp
+  - euler-tour-tree
   - euphoria
   - eurofxref
   - eve
@@ -4620,7 +4873,6 @@ broken-packages:
   - extensible-data
   - extensible-effects-concurrent
   - extensible-skeleton
-  - extensions
   - external-sort
   - Extra
   - extract-dependencies
@@ -4632,6 +4884,7 @@ broken-packages:
   - f-ree-hack-cheats-free-v-bucks-generator
   - Facebook-Password-Hacker-Online-Latest-Version
   - faceted
+  - factory
   - Facts
   - facts
   - factual-api
@@ -4729,6 +4982,7 @@ broken-packages:
   - FileManip
   - FileManipCompat
   - fileneglect
+  - filepath-crypto
   - filepath-io-access
   - FilePather
   - filepather
@@ -4749,14 +5003,15 @@ broken-packages:
   - findhttp
   - fingertree-psqueue
   - fingertree-tf
-  - finitary
   - finitary-derive
+  - finitary-optics
   - FiniteMap
   - firefly-example
   - first-and-last
   - first-class-instances
   - firstify
   - FirstOrderTheory
+  - fishfood
   - fit
   - fits-parse
   - fitsio
@@ -4795,7 +5050,6 @@ broken-packages:
   - flite
   - float-binstring
   - floating-bits
-  - floskell
   - flow-er
   - flow2dot
   - flowdock
@@ -4865,6 +5119,7 @@ broken-packages:
   - frag
   - Frames-beam
   - Frames-dsv
+  - Frames-map-reduce
   - franchise
   - Frank
   - fraxl
@@ -4948,8 +5203,12 @@ broken-packages:
   - funpat
   - funsat
   - funspection
+  - fused-effects-exceptions
+  - fused-effects-optics
+  - fused-effects-random
   - fused-effects-readline
   - fused-effects-squeal
+  - fused-effects-th
   - fusion
   - fusion-plugin
   - futun
@@ -4976,7 +5235,6 @@ broken-packages:
   - gas
   - gbu
   - gc-monitoring-wai
-  - gcodehs
   - gconf
   - gdax
   - gdiff-ig
@@ -5067,6 +5325,7 @@ broken-packages:
   - ghc-parmake
   - ghc-pkg-autofix
   - ghc-pkg-lib
+  - ghc-plugs-out
   - ghc-proofs
   - ghc-session
   - ghc-simple
@@ -5093,20 +5352,25 @@ broken-packages:
   - ghcprofview
   - ght
   - gi-cairo-again
+  - gi-cairo-connector
+  - gi-cairo-render
+  - gi-dbusmenu
+  - gi-dbusmenugtk3
+  - gi-gdkx11
   - gi-graphene
   - gi-gsk
   - gi-gstpbutils
   - gi-gsttag
   - gi-gtk-declarative
   - gi-gtk-declarative-app-simple
+  - gi-gtk-hs
   - gi-gtkosxapplication
   - gi-handy
   - gi-poppler
-  - gi-secret
   - gi-wnck
+  - gi-xlib
   - giak
   - Gifcurry
-  - ginger
   - ginsu
   - gipeda
   - GiST
@@ -5115,6 +5379,7 @@ broken-packages:
   - git-all
   - git-checklist
   - git-config
+  - git-cuk
   - git-date
   - git-fmt
   - git-gpush
@@ -5137,6 +5402,7 @@ broken-packages:
   - github-webhooks
   - githud
   - gitignore
+  - gitit
   - gitlab-api
   - gitlib
   - gitlib-cmdline
@@ -5156,6 +5422,7 @@ broken-packages:
   - glazier-react
   - glazier-react-examples
   - glazier-react-widget
+  - Gleam
   - GLFW
   - GLFW-b-demo
   - GLFW-OGL
@@ -5180,7 +5447,9 @@ broken-packages:
   - gloss-game
   - gloss-raster
   - gloss-sodium
+  - glpk-headers
   - glpk-hs
+  - gltf-codec
   - glue
   - GLUtil
   - gmap
@@ -5204,10 +5473,12 @@ broken-packages:
   - google-drive
   - google-html5-slide
   - google-mail-filters
+  - google-maps-geocoding
   - google-oauth2
   - google-oauth2-easy
   - google-search
   - google-server-api
+  - google-static-maps
   - google-translate
   - GoogleCodeJam
   - GoogleDirections
@@ -5275,6 +5546,7 @@ broken-packages:
   - graphicstools
   - graphmod-plugin
   - graphql
+  - graphql-utils
   - graphql-w-persistent
   - graphted
   - graphtype
@@ -5315,6 +5587,8 @@ broken-packages:
   - gtfs
   - gtfs-realtime
   - gtk-serialized-event
+  - gtk-sni-tray
+  - gtk-strut
   - gtk-toy
   - gtk2hs-hello
   - gtk2hs-rpn
@@ -5398,18 +5672,25 @@ broken-packages:
   - hakismet
   - hakka
   - hako
+  - hakyll
   - hakyll-agda
   - hakyll-blaze-templates
   - hakyll-contrib
   - hakyll-contrib-csv
   - hakyll-contrib-elm
+  - hakyll-contrib-hyphenation
   - hakyll-contrib-links
   - hakyll-convert
+  - hakyll-dhall
   - hakyll-dir-list
+  - hakyll-favicon
   - hakyll-filestore
+  - hakyll-images
   - hakyll-ogmarkup
   - hakyll-R
+  - hakyll-sass
   - hakyll-series
+  - hakyll-shakespeare
   - hakyll-shortcode
   - hakyll-shortcut-links
   - hakyll-typescript
@@ -5437,6 +5718,7 @@ broken-packages:
   - hannahci
   - hans
   - hans-pcap
+  - hanspell
   - haphviz
   - hapistrano
   - happindicator
@@ -5502,6 +5784,7 @@ broken-packages:
   - has-th
   - HasCacBDD
   - hascar
+  - hascard
   - hascas
   - Haschoo
   - HasGP
@@ -5539,10 +5822,12 @@ broken-packages:
   - haskell-docs
   - haskell-eigen-util
   - haskell-exp-parser
+  - haskell-fake-user-agent
   - haskell-formatter
   - haskell-ftp
   - haskell-generate
   - haskell-go-checkers
+  - haskell-google-trends
   - haskell-in-space
   - haskell-kubernetes
   - haskell-lsp-client
@@ -5566,6 +5851,7 @@ broken-packages:
   - haskell-src-exts-prisms
   - haskell-src-exts-qq
   - haskell-src-exts-sc
+  - haskell-src-match
   - haskell-src-meta-mwotton
   - haskell-stack-trace-plugin
   - haskell-token-utils
@@ -5592,6 +5878,7 @@ broken-packages:
   - haskell2020
   - haskell98
   - haskell98libraries
+  - HaskellAnalysisProgram
   - haskelldb
   - haskelldb-connect-hdbc
   - haskelldb-connect-hdbc-catchio-mtl
@@ -5612,6 +5899,7 @@ broken-packages:
   - haskelldb-hsql-sqlite3
   - haskelldb-th
   - haskelldb-wx
+  - haskellish
   - HaskellLM
   - HaskellNet
   - HaskellNet-SSL
@@ -5636,6 +5924,7 @@ broken-packages:
   - haskoin-protocol
   - haskoin-script
   - haskoin-store
+  - haskoin-store-data
   - haskoin-util
   - haskoin-wallet
   - haskoon
@@ -5646,6 +5935,7 @@ broken-packages:
   - haskore-supercollider
   - haskore-synthesizer
   - HaskRel
+  - haskseg
   - hasktorch
   - hasktorch-codegen
   - hasktorch-ffi-th
@@ -5671,11 +5961,13 @@ broken-packages:
   - hasql-dynamic-statements
   - hasql-generic
   - hasql-implicits
-  - hasql-migration
   - hasql-optparse-applicative
   - hasql-postgres
   - hasql-postgres-options
+  - hasql-queue
   - hasql-simple
+  - hasql-th
+  - hasqly-mysql
   - hastache
   - hastache-aeson
   - haste
@@ -5728,7 +6020,6 @@ broken-packages:
   - hcltest
   - hcoap
   - hcom
-  - hcoord
   - hcron
   - hCsound
   - hcube
@@ -5838,6 +6129,7 @@ broken-packages:
   - hexpress
   - hexquote
   - hext
+  - hextra
   - heyefi
   - heyting-algebras
   - hF2
@@ -5960,6 +6252,7 @@ broken-packages:
   - HLogger
   - hlogger
   - hlongurl
+  - hlrdb
   - hls
   - hlwm
   - hly
@@ -6000,7 +6293,6 @@ broken-packages:
   - hobbes
   - hobbits
   - hocilib
-  - hocker
   - hodatime
   - HODE
   - hoe
@@ -6015,12 +6307,12 @@ broken-packages:
   - hol
   - hold-em
   - hole
+  - holmes
   - Holumbus-Searchengine
   - holy-project
   - homeomorphic
   - hommage
   - homoiconic
-  - homotuple
   - homplexity
   - HongoDB
   - honi
@@ -6039,6 +6331,7 @@ broken-packages:
   - hoodle-types
   - hoogle-index
   - hooks-dir
+  - hoop
   - hoopl
   - hoovie
   - hopencc
@@ -6152,6 +6445,7 @@ broken-packages:
   - hsbencher
   - hsbencher-codespeed
   - hsbencher-fusion
+  - hsc3
   - hsc3-auditor
   - hsc3-cairo
   - hsc3-data
@@ -6201,7 +6495,7 @@ broken-packages:
   - hsI2C
   - hsignal
   - hSimpleDB
-  - hsimport
+  - hsinspect-lsp
   - HsJudy
   - hskeleton
   - hslackbuilder
@@ -6313,7 +6607,6 @@ broken-packages:
   - http-client-auth
   - http-client-lens
   - http-client-request-modifiers
-  - http-client-restricted
   - http-client-session
   - http-client-streams
   - http-conduit-browser
@@ -6336,6 +6629,7 @@ broken-packages:
   - http2-client
   - http2-client-exe
   - http2-client-grpc
+  - http2-grpc-proto-lens
   - http2-grpc-proto3-wire
   - https-everywhere-rules
   - https-everywhere-rules-raw
@@ -6373,15 +6667,21 @@ broken-packages:
   - hvega-theme
   - hVOIDP
   - hw-all
+  - hw-balancedparens
   - hw-ci-assist
   - hw-dsv
+  - hw-eliasfano
   - hw-json
   - hw-json-lens
   - hw-json-simd
   - hw-json-simple-cursor
   - hw-json-standard-cursor
   - hw-kafka-avro
+  - hw-prim-bits
+  - hw-rankselect
   - hw-simd
+  - hw-succinct
+  - hw-xml
   - hwall-auth-iitk
   - hweblib
   - hwhile
@@ -6525,6 +6825,7 @@ broken-packages:
   - indextype
   - indices
   - indieweb-algorithms
+  - indigo
   - inf-interval
   - infer-upstream
   - infernal
@@ -6538,8 +6839,8 @@ broken-packages:
   - inilist
   - initialize
   - inject-function
+  - inline-asm
   - inline-java
-  - inline-r
   - inserts
   - inspector-wrecker
   - instana-haskell-trace-sdk
@@ -6556,10 +6857,12 @@ broken-packages:
   - integer-pure
   - integreat
   - intel-aes
+  - intensional-datatys
   - interlude-l
   - InternedData
   - internetmarke
   - intero
+  - interp
   - interpol
   - interpolatedstring-qq
   - interpolatedstring-qq-mwotton
@@ -6571,7 +6874,6 @@ broken-packages:
   - introduction
   - introduction-test
   - intset
-  - invertible-grammar
   - invertible-hlist
   - invertible-syntax
   - io-capture
@@ -6584,7 +6886,6 @@ broken-packages:
   - iostring
   - iothread
   - iotransaction
-  - ip
   - ip2location
   - ip2proxy
   - ipatch
@@ -6692,7 +6993,6 @@ broken-packages:
   - jpeg
   - js-good-parts
   - jsaddle-hello
-  - jsaddle-warp
   - jsaddle-wkwebview
   - JsContracts
   - jsmw
@@ -6732,6 +7032,7 @@ broken-packages:
   - jsonsql
   - jsontsv
   - jsonxlsx
+  - jsop
   - jspath
   - juandelacosa
   - judge
@@ -6780,6 +7081,7 @@ broken-packages:
   - katydid
   - kawaii
   - kawhi
+  - kazura-queue
   - kd-tree
   - kdesrc-build-extra
   - keccak
@@ -6832,6 +7134,7 @@ broken-packages:
   - ks-test
   - KSP
   - ktx
+  - ktx-codec
   - kubernetes-client
   - kubernetes-client-core
   - kuifje
@@ -6904,6 +7207,7 @@ broken-packages:
   - language-csharp
   - language-css
   - language-dart
+  - language-dickinson
   - language-dockerfile
   - language-ecmascript-analysis
   - language-eiffel
@@ -6947,6 +7251,8 @@ broken-packages:
   - latest-npm-version
   - latex-formulae-hakyll
   - latex-formulae-pandoc
+  - latex-svg-hakyll
+  - latex-svg-pandoc
   - LATS
   - launchdarkly-server-sdk
   - launchpad-control
@@ -6979,6 +7285,7 @@ broken-packages:
   - learn
   - learn-physics-examples
   - Learning
+  - learning-hmm
   - leetify
   - legion
   - legion-discovery
@@ -7013,10 +7320,12 @@ broken-packages:
   - lhe
   - lhs2TeX-hl
   - lhslatex
+  - libarchive
   - LibClang
   - libconfig
   - libcspm
   - libexpect
+  - libfuse3
   - libGenI
   - libhbb
   - libinfluxdb
@@ -7092,16 +7401,12 @@ broken-packages:
   - lio-fs
   - lio-simple
   - lipsum-gen
-  - liquid
-  - liquid-fixpoint
-  - liquidhaskell
   - liquidhaskell-cabal
   - Liquorice
   - list-fusion-probe
   - list-mux
   - list-prompt
   - list-remote-forwards
-  - list-t
   - list-t-attoparsec
   - list-t-html-parser
   - list-t-http-client
@@ -7136,8 +7441,6 @@ broken-packages:
   - llvm-general
   - llvm-general-pure
   - llvm-general-quote
-  - llvm-hs
-  - llvm-hs-pretty
   - llvm-ht
   - llvm-pkg-config
   - llvm-pretty
@@ -7160,8 +7463,10 @@ broken-packages:
   - log-postgres
   - log-utils
   - log2json
+  - log4hs
   - logentries
   - logger
+  - logging-effect
   - logging-effect-extra
   - logging-effect-extra-file
   - logging-effect-extra-handler
@@ -7197,7 +7502,6 @@ broken-packages:
   - loopy
   - lord
   - lorem
-  - lorentz
   - loris
   - loshadka
   - lostcities
@@ -7206,11 +7510,13 @@ broken-packages:
   - lp-diagrams
   - lp-diagrams-svg
   - LRU
+  - lrucaching-haxl
   - ls-usb
   - lscabal
   - LslPlus
   - lsystem
   - ltext
+  - lti13
   - ltk
   - LTS
   - lua-bc
@@ -7234,6 +7540,7 @@ broken-packages:
   - lye
   - Lykah
   - lz4-conduit
+  - lz4-frame-conduit
   - lzma-enumerator
   - lzma-streams
   - lzo
@@ -7325,10 +7632,13 @@ broken-packages:
   - math-grads
   - math-interpolate
   - math-metric
+  - math-programming-glpk
+  - math-programming-tests
   - mathblog
   - mathflow
   - mathlink
   - matrix-as-xyz
+  - matrix-lens
   - matrix-market
   - matrix-sized
   - matsuri
@@ -7357,6 +7667,7 @@ broken-packages:
   - mDNSResponder-client
   - mdp
   - mealstrom
+  - mealy
   - MeanShift
   - Measure
   - mecab
@@ -7446,7 +7757,9 @@ broken-packages:
   - ministg
   - minst-idx
   - mios
+  - MIP
   - mirror-tweet
+  - misfortune
   - miso-action-logger
   - miso-examples
   - miss
@@ -7487,7 +7800,7 @@ broken-packages:
   - monad-atom
   - monad-atom-simple
   - monad-branch
-  - monad-dijkstra
+  - monad-classes-logging
   - monad-exception
   - monad-finally
   - monad-fork
@@ -7525,6 +7838,7 @@ broken-packages:
   - MonadCatchIO-transformers
   - MonadCatchIO-transformers-foreign
   - MonadCompose
+  - monadic-recursion-schemes
   - monadiccp
   - monadiccp-gecode
   - Monadius
@@ -7562,8 +7876,8 @@ broken-packages:
   - moo
   - morfette
   - morfeusz
-  - morley
   - morpheus-graphql-cli
+  - morpheus-graphql-client
   - morphisms-functors
   - morphisms-functors-inventory
   - morphisms-objects
@@ -7582,6 +7896,7 @@ broken-packages:
   - mpi-hs-cereal
   - mpi-hs-store
   - mpppc
+  - mprelude
   - mpretty
   - mpris
   - mprover
@@ -7633,6 +7948,7 @@ broken-packages:
   - multibase
   - multifocal
   - multihash
+  - multihash-cryptonite
   - multihash-serialise
   - multilinear
   - multilinear-io
@@ -7673,6 +7989,7 @@ broken-packages:
   - mvc
   - mvc-updates
   - mvclient
+  - mwc-probability-transition
   - mwc-random-accelerate
   - mxnet
   - mxnet-dataiter
@@ -7700,6 +8017,7 @@ broken-packages:
   - n-tuple
   - n2o-protocols
   - n2o-web
+  - NaCl
   - nagios-plugin-ekg
   - nakadi-client
   - named-lock
@@ -7831,7 +8149,6 @@ broken-packages:
   - nix-deploy
   - nix-eval
   - nix-freeze-tree
-  - nix-narinfo
   - nix-tools
   - nixfromnpm
   - nixpkgs-update
@@ -7846,6 +8163,7 @@ broken-packages:
   - nofib-analyse
   - nofib-analyze
   - noise
+  - nom
   - Nomyx
   - Nomyx-Core
   - Nomyx-Language
@@ -7867,6 +8185,8 @@ broken-packages:
   - np-extras
   - np-linear
   - nptools
+  - nri-env-parser
+  - nri-prelude
   - ntp-control
   - ntrip-client
   - null-canvas
@@ -7889,6 +8209,9 @@ broken-packages:
   - numhask-test
   - Nussinov78
   - Nutri
+  - nvim-hs
+  - nvim-hs-contrib
+  - nvim-hs-ghcid
   - NXT
   - NXTDSL
   - nylas
@@ -7928,6 +8251,7 @@ broken-packages:
   - om-actor
   - om-elm
   - om-fail
+  - om-http-logging
   - omaketex
   - ombra
   - Omega
@@ -7938,6 +8262,7 @@ broken-packages:
   - onama
   - ONC-RPC
   - oneormore
+  - online
   - online-csv
   - onpartitions
   - OnRmt
@@ -8048,9 +8373,11 @@ broken-packages:
   - pam
   - pan-os-syslog
   - panda
+  - pandoc-csv2table
   - pandoc-emphasize-code
   - pandoc-filter-graphviz
   - pandoc-include
+  - pandoc-include-code
   - pandoc-japanese-filters
   - pandoc-lens
   - pandoc-markdown-ghci-filter
@@ -8060,6 +8387,7 @@ broken-packages:
   - pandoc-pyplot
   - pandoc-sidenote
   - pandoc-unlit
+  - pandoc-utils
   - PandocAgda
   - pang-a-lambda
   - pangraph
@@ -8083,12 +8411,14 @@ broken-packages:
   - paphragen
   - pappy
   - paprika
+  - par-dual
   - paragon
   - Paraiso
   - Parallel-Arrows-Eden
   - parallel-tasks
   - parallel-tree-search
   - parameterized
+  - parameterized-utils
   - paranoia
   - parco
   - parco-attoparsec
@@ -8130,7 +8460,6 @@ broken-packages:
   - pastis
   - pasty
   - patat
-  - patch
   - patches-vector
   - path-text-utf8
   - Pathfinder
@@ -8162,6 +8491,7 @@ broken-packages:
   - pdf-toolbox-viewer
   - pdfname
   - pdfsplit
+  - pdftotext
   - pdynload
   - peakachu
   - PeanoWitnesses
@@ -8220,6 +8550,7 @@ broken-packages:
   - pg-store
   - pg-transact
   - pgdl
+  - pgf2
   - pgsql-simple
   - pgstream
   - phasechange
@@ -8306,6 +8637,7 @@ broken-packages:
   - plat
   - platinum-parsing
   - PlayingCards
+  - plex
   - plist
   - plist-buddy
   - plocketed
@@ -8345,7 +8677,11 @@ broken-packages:
   - polydata
   - polydata-core
   - polynomial
+  - polysemy-http
+  - polysemy-optics
   - polysemy-RandomFu
+  - polysemy-test
+  - polysemy-webserver
   - polysemy-zoo
   - polyseq
   - polytypeable
@@ -8359,6 +8695,7 @@ broken-packages:
   - pool-conduit
   - pop3-client
   - popenhs
+  - popkey
   - poppler
   - porcupine-core
   - porcupine-http
@@ -8379,6 +8716,7 @@ broken-packages:
   - postgres-websockets
   - postgresql-lo-stream
   - postgresql-named
+  - postgresql-pure
   - postgresql-query
   - postgresql-simple-bind
   - postgresql-simple-named
@@ -8386,6 +8724,9 @@ broken-packages:
   - postgresql-simple-queue
   - postgresql-simple-sop
   - postgresql-simple-typed
+  - postgresql-syntax
+  - postgresql-tx-query
+  - postgresql-tx-squeal
   - postgresql-typed
   - postgresql-typed-lifted
   - postgrest-ws
@@ -8435,13 +8776,15 @@ broken-packages:
   - pretty-ghci
   - pretty-ncols
   - prettyprinter-graphviz
+  - prettyprinter-lucid
   - prettyprinter-vty
   - preview
   - prim
   - prim-array
   - prim-ref
+  - primal
+  - primal-memory
   - primes-type
-  - primitive-extras
   - primitive-indexed
   - primitive-maybe
   - primitive-simd
@@ -8467,6 +8810,7 @@ broken-packages:
   - process-qq
   - process-streaming
   - processing
+  - processmemory
   - procrastinating-variable
   - procstat
   - producer
@@ -8488,6 +8832,7 @@ broken-packages:
   - prolog-graph
   - prolog-graph-lib
   - prologue
+  - prolude
   - prometheus-effect
   - promise
   - pronounce
@@ -8502,6 +8847,7 @@ broken-packages:
   - proteome
   - proto-lens-combinators
   - proto-lens-descriptors
+  - proto-lens-jsonpb
   - proto3-suite
   - protobuf-native
   - protocol-buffers
@@ -8544,6 +8890,7 @@ broken-packages:
   - purescript
   - purescript-iso
   - purescript-tsd-gen
+  - pursuit-client
   - push-notifications
   - push-notify
   - push-notify-apn
@@ -8576,6 +8923,7 @@ broken-packages:
   - quantfin
   - quantum-arrow
   - quantum-random
+  - quarantimer
   - qudb
   - Quelea
   - quenya-verb
@@ -8650,12 +8998,18 @@ broken-packages:
   - random-derive
   - random-eff
   - random-effin
+  - random-extras
+  - random-fu
+  - random-fu-multivariate
   - random-hypergeometric
+  - random-source
   - random-stream
   - RandomDotOrg
+  - Randometer
   - Range
   - range-space
   - rangemin
+  - rank-product
   - rank1dynamic
   - Ranka
   - rapid
@@ -8685,7 +9039,6 @@ broken-packages:
   - rbr
   - rc
   - rclient
-  - rdf4h
   - rdioh
   - react-flux
   - react-flux-servant
@@ -8732,6 +9085,7 @@ broken-packages:
   - redis-hs
   - redis-io
   - redis-simple
+  - rediscaching-haxl
   - redland
   - Redmine
   - reduce-equations
@@ -8744,8 +9098,8 @@ broken-packages:
   - Referees
   - references
   - refh
+  - refined-http-api-data
   - reflection-extras
-  - reflex
   - reflex-animation
   - reflex-backend-socket
   - reflex-backend-wai
@@ -8810,6 +9164,7 @@ broken-packages:
   - relacion
   - relation
   - relational-postgresql8
+  - relational-query-postgresql-pure
   - relative-date
   - relevant-time
   - reload
@@ -8849,6 +9204,7 @@ broken-packages:
   - req-url-extra
   - request-monad
   - require
+  - rescue
   - reserve
   - reservoir
   - resin
@@ -8876,7 +9232,6 @@ broken-packages:
   - rethinkdb-client-driver
   - rethinkdb-model
   - rethinkdb-wereHamster
-  - retrie
   - retryer
   - reverse-geocoding
   - reversi
@@ -8980,8 +9335,10 @@ broken-packages:
   - ruler
   - ruler-core
   - rungekutta
+  - runhs
   - runmany
   - runtime-arbitrary
+  - rvar
   - rws
   - RxHaskell
   - s-expression
@@ -9047,6 +9404,7 @@ broken-packages:
   - SCalendar
   - scalendar
   - scalp-webhooks
+  - scalpel-search
   - scan-vector-machine
   - scc
   - scenegraph
@@ -9079,6 +9437,7 @@ broken-packages:
   - scotty-fay
   - scotty-format
   - scotty-hastache
+  - scotty-haxl
   - scotty-resource
   - scotty-rest
   - scotty-session
@@ -9114,6 +9473,7 @@ broken-packages:
   - secure-sockets
   - secureUDP
   - sednaDBXML
+  - seitz-symbol
   - selectors
   - SelectSequencesFromMSA
   - selenium
@@ -9124,6 +9484,7 @@ broken-packages:
   - Semantique
   - semdoc
   - semi-iso
+  - semialign-extras
   - semibounded-lattices
   - Semigroup
   - semigroupoids-syntax
@@ -9158,6 +9519,7 @@ broken-packages:
   - servant-auth-token-leveldb
   - servant-auth-token-persistent
   - servant-auth-token-rocksdb
+  - servant-avro
   - servant-client-namedargs
   - servant-csharp
   - servant-db
@@ -9191,6 +9553,9 @@ broken-packages:
   - servant-pushbullet-client
   - servant-py
   - servant-quickcheck
+  - servant-rawm-client
+  - servant-rawm-docs
+  - servant-rawm-server
   - servant-reason
   - servant-reflex
   - servant-router
@@ -9202,6 +9567,7 @@ broken-packages:
   - servant-streaming-docs
   - servant-streaming-server
   - servant-swagger-tags
+  - servant-to-elm
   - servant-waargonaut
   - servant-zeppelin
   - servant-zeppelin-client
@@ -9224,7 +9590,6 @@ broken-packages:
   - setoid
   - setters
   - sexp
-  - sexp-grammar
   - sexpr-parser
   - sext
   - SFML
@@ -9240,15 +9605,18 @@ broken-packages:
   - sgrep
   - sh2md
   - sha-streams
+  - sha1
   - shade
   - shadower
   - shake-bindist
   - shake-cabal-build
+  - shake-dhall
   - shake-extras
   - shake-minify
   - shake-pack
   - shake-path
   - shake-persist
+  - shake-plus-extended
   - shakebook
   - shaker
   - shakespeare-babel
@@ -9342,7 +9710,6 @@ broken-packages:
   - SimpleServer
   - simplesmtpclient
   - simseq
-  - single-tuple
   - singleton-dict
   - singleton-typelits
   - singnal
@@ -9351,6 +9718,7 @@ broken-packages:
   - siphon
   - siren-json
   - sirkel
+  - sitepipe
   - sixfiguregroup
   - sized-grid
   - sized-types
@@ -9362,6 +9730,7 @@ broken-packages:
   - skeletons
   - skell
   - skemmtun
+  - skews
   - skulk
   - skylark-client
   - skylighting-lucid
@@ -9374,11 +9743,13 @@ broken-packages:
   - slidemews
   - Slides
   - slim
+  - slip32
   - sloane
   - slot-lambda
   - sloth
   - slug
   - slynx
+  - small-bytearray-builder
   - smallarray
   - smallcheck-laws
   - smallcheck-lens
@@ -9390,6 +9761,7 @@ broken-packages:
   - smartconstructor
   - smartGroup
   - smartword
+  - smash-optics
   - smcdel
   - sme
   - smerdyakov
@@ -9409,6 +9781,7 @@ broken-packages:
   - SMTPClient
   - smtps-gmail
   - smuggler
+  - smuggler2
   - snake
   - snake-game
   - snap-accept
@@ -9421,7 +9794,6 @@ broken-packages:
   - snap-loader-static
   - snap-routes
   - snap-stream
-  - snap-templates
   - snap-testing
   - snap-utils
   - snap-web-routes
@@ -9515,6 +9887,7 @@ broken-packages:
   - spanout
   - sparkle
   - sparrow
+  - spars
   - sparse
   - sparse-lin-alg
   - sparsebit
@@ -9544,12 +9917,10 @@ broken-packages:
   - splines
   - split-morphism
   - splitter
-  - splot
   - Spock
   - Spock-api-ghcjs
   - Spock-api-server
   - Spock-auth
-  - Spock-core
   - Spock-digestive
   - Spock-lucid
   - Spock-worker
@@ -9575,6 +9946,7 @@ broken-packages:
   - sqlvalue-list
   - sqsd-local
   - squeal-postgresql
+  - squeeze
   - sr-extra
   - srcinst
   - sscan
@@ -9616,6 +9988,7 @@ broken-packages:
   - stackage-types
   - stackage-upload
   - stackage2nix
+  - stan
   - standalone-derive-topdown
   - standalone-haddock
   - starling
@@ -9627,6 +10000,7 @@ broken-packages:
   - state-record
   - stateful-mtl
   - stateWriter
+  - static
   - static-canvas
   - static-closure
   - static-tensor
@@ -9654,11 +10028,10 @@ broken-packages:
   - STL
   - STLinkUSB
   - stm-chunked-queues
-  - stm-containers
   - stm-firehose
-  - stm-hamt
   - stm-promise
   - stm-stats
+  - stm-supply
   - STM32-Zombie
   - stmcontrol
   - stochastic
@@ -9690,9 +10063,14 @@ broken-packages:
   - streaming-png
   - streaming-process
   - streaming-sort
+  - streamly-archive
+  - streamly-lmdb
   - streamproc
   - strelka
   - strict-data
+  - strict-lens
+  - strict-optics
+  - strict-tuple-lens
   - StrictBench
   - StrictCheck
   - strictly
@@ -9706,6 +10084,8 @@ broken-packages:
   - stripe-haskell
   - stripe-http-client
   - stripe-http-streams
+  - stripe-scotty
+  - stripe-signature
   - stripe-tests
   - strongswan-sql
   - structural-induction
@@ -9732,8 +10112,6 @@ broken-packages:
   - SuffixStructures
   - sugarhaskell
   - suitable
-  - summoner
-  - summoner-tui
   - sump
   - sunlight
   - sunroof-compiler
@@ -9741,12 +10119,12 @@ broken-packages:
   - sunroof-server
   - super-user-spark
   - superbubbles
-  - superbuffer
   - supercollider-ht
   - supercollider-midi
   - superconstraints
   - superevent
   - supermonad
+  - supernova
   - supero
   - supervisor
   - supervisors
@@ -9770,6 +10148,7 @@ broken-packages:
   - swearjure
   - swf
   - swift-lda
+  - swiss-ephemeris
   - sws
   - syb-extras
   - syb-with-class-instances-text
@@ -9779,6 +10158,7 @@ broken-packages:
   - sym
   - sym-plot
   - symantic
+  - symantic-atom
   - symantic-http-test
   - symantic-lib
   - symantic-xml
@@ -9786,6 +10166,7 @@ broken-packages:
   - symbolic-link
   - symengine
   - symengine-hs
+  - symmetry-operations-symbols
   - sync
   - sync-mht
   - syncthing-hs
@@ -9827,6 +10208,7 @@ broken-packages:
   - Tablify
   - tabloid
   - tabs
+  - taffybar
   - tag-bits
   - tag-stream
   - tagged-exception-core
@@ -9839,6 +10221,7 @@ broken-packages:
   - tagsoup-navigate
   - tagsoup-parsec
   - tagsoup-selection
+  - tagstew
   - tagstream-conduit
   - tai64
   - takahashi
@@ -9853,11 +10236,12 @@ broken-packages:
   - tapioca
   - tar-bytestring
   - target
+  - tart
   - task
   - task-distribution
-  - taskell
   - TaskMonad
   - tasty-auto
+  - tasty-bdd
   - tasty-fail-fast
   - tasty-groundhog-converters
   - tasty-hedgehog-coverage
@@ -9865,6 +10249,8 @@ broken-packages:
   - tasty-jenkins-xml
   - tasty-laws
   - tasty-lens
+  - tasty-mgolden
+  - tasty-quickcheck-laws
   - tasty-stats
   - tateti-tateti
   - Taxonomy
@@ -9893,6 +10279,7 @@ broken-packages:
   - tellbot
   - tempi
   - template-default
+  - template-haskell-optics
   - template-haskell-util
   - template-hsml
   - template-yj
@@ -9903,6 +10290,11 @@ broken-packages:
   - tempus
   - tensor
   - tensor-safe
+  - tensorflow
+  - tensorflow-core-ops
+  - tensorflow-logging
+  - tensorflow-opgen
+  - tensorflow-ops
   - termbox
   - termbox-banana
   - termbox-bindings
@@ -9927,6 +10319,7 @@ broken-packages:
   - test-simple
   - testbench
   - testCom
+  - testcontainers
   - TestExplode
   - testloop
   - testpack
@@ -10035,7 +10428,10 @@ broken-packages:
   - timeseries
   - timespan
   - timeutils
+  - timezone-detect
+  - timezone-olson-th
   - timezone-unix
+  - tini
   - tintin
   - tiny-scheduler
   - TinyLaunchbury
@@ -10104,6 +10500,7 @@ broken-packages:
   - trackit
   - traction
   - tracy
+  - trade-journal
   - traildb
   - trajectory
   - transactional-events
@@ -10142,6 +10539,8 @@ broken-packages:
   - treemap-html-tools
   - TreeStructures
   - Treiber
+  - trek-app
+  - trek-db
   - tremulous-query
   - TrendGraph
   - trhsx
@@ -10182,6 +10581,7 @@ broken-packages:
   - turingMachine
   - turtle-options
   - tweak
+  - twee
   - tweet-hs
   - twentefp-eventloop-graphics
   - twentefp-eventloop-trees
@@ -10197,6 +10597,7 @@ broken-packages:
   - twilio
   - twill
   - twine
+  - twirp
   - twitter
   - twitter-conduit
   - twitter-enumerator
@@ -10270,6 +10671,7 @@ broken-packages:
   - UMM
   - unagi-bloomfilter
   - unamb-custom
+  - unbeliever
   - unbound
   - unbound-generics
   - unbound-kind-generics
@@ -10323,7 +10725,6 @@ broken-packages:
   - unused
   - uom-plugin
   - up
-  - update-nix-fetchgit
   - Updater
   - uploadcare
   - upskirt
@@ -10331,11 +10732,13 @@ broken-packages:
   - urembed
   - uri
   - uri-conduit
+  - uri-encoder
   - uri-enumerator
   - uri-enumerator-file
   - uri-parse
   - uri-template
   - uri-templater
+  - url-bytes
   - url-decoders
   - url-generic
   - URLb
@@ -10355,9 +10758,9 @@ broken-packages:
   - usb-id-database
   - usb-iteratee
   - usb-safe
+  - useragents
   - users-mysql-haskell
   - users-persistent
-  - utc
   - utf8-prelude
   - utf8-validator
   - UTFTConverter
@@ -10375,6 +10778,8 @@ broken-packages:
   - uuagc-cabal
   - uuagc-diagrams
   - uuid-aeson
+  - uuid-bytes
+  - uuid-crypto
   - uvector
   - uvector-algorithms
   - uxadt
@@ -10441,6 +10846,7 @@ broken-packages:
   - verifiable-expressions
   - verify
   - verilog
+  - verismith
   - versioning
   - versioning-servant
   - vflow-types
@@ -10454,6 +10860,7 @@ broken-packages:
   - views
   - vigilance
   - Villefort
+  - vimeta
   - vimus
   - vintage-basic
   - vinyl-gl
@@ -10589,11 +10996,13 @@ broken-packages:
   - webshow
   - websockets-rpc
   - webwire
+  - weekdaze
   - weighted
   - weighted-regexp
   - welshy
   - werewolf
   - werewolf-slack
+  - what4
   - Wheb
   - wheb-mongo
   - wheb-redis
@@ -10603,6 +11012,7 @@ broken-packages:
   - whiskers
   - whitespace
   - whois
+  - wholepixels
   - why3
   - WikimediaParser
   - wikipedia4epub
@@ -10660,6 +11070,7 @@ broken-packages:
   - wsdl
   - wsedit
   - wshterm
+  - wss-client
   - wstunnel
   - wtk
   - wtk-gtk
@@ -10740,6 +11151,7 @@ broken-packages:
   - xmonad-windownames
   - xmpipe
   - XMPP
+  - xor
   - xorshift-plus
   - Xorshift128Plus
   - xournal-builder
@@ -10794,6 +11206,8 @@ broken-packages:
   - yarr
   - yarr-image-io
   - yavie
+  - yaya-test
+  - yaya-unsafe-test
   - ycextra
   - yeamer
   - yeller
@@ -10816,6 +11230,7 @@ broken-packages:
   - yesod-auth-ldap
   - yesod-auth-ldap-mediocre
   - yesod-auth-ldap-native
+  - yesod-auth-lti13
   - yesod-auth-nopassword
   - yesod-auth-oauth2
   - yesod-auth-pam
@@ -10927,6 +11342,7 @@ broken-packages:
   - zeromq4-conduit
   - zeromq4-patterns
   - zeroth
+  - zettelkast
   - ZFS
   - zifter
   - zifter-cabal
@@ -10954,7 +11370,6 @@ broken-packages:
   - zoom-cache-pcm
   - zoom-cache-sndfile
   - zoom-refs
-  - zre
   - zsh-battery
   - zsyntax
   - ztail
diff --git a/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix b/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix
index ec14c565b74e..9be625683732 100644
--- a/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/configuration-nix.nix
@@ -96,6 +96,7 @@ self: super: builtins.intersectAttrs super {
 
   # profiling is disabled to allow C++/C mess to work, which is fixed in GHC 8.8
   cachix = disableLibraryProfiling super.cachix;
+  hercules-ci-agent = disableLibraryProfiling super.hercules-ci-agent;
 
   # avoid compiling twice by providing executable as a separate output (with small closure size)
   niv = enableSeparateBinOutput super.niv;
@@ -442,6 +443,9 @@ self: super: builtins.intersectAttrs super {
                             [ pkgs.darwin.apple_sdk.frameworks.OpenCL ];
   });
 
+  # requires an X11 display in test suite
+  gi-gtk-declarative = dontCheck super.gi-gtk-declarative;
+
   # depends on 'hie' executable
   lsp-test = dontCheck super.lsp-test;
 
@@ -567,9 +571,20 @@ self: super: builtins.intersectAttrs super {
   }));
 
   # Expects z3 to be on path so we replace it with a hard
+  #
+  # The tests expect additional solvers on the path, replace the
+  # available ones also with hard coded paths, and remove the missing
+  # ones from the test.
   sbv = overrideCabal super.sbv (drv: {
     postPatch = ''
-      sed -i -e 's|"z3"|"${pkgs.z3}/bin/z3"|' Data/SBV/Provers/Z3.hs'';
+      sed -i -e 's|"abc"|"${pkgs.abc-verifier}/bin/abc"|' Data/SBV/Provers/ABC.hs
+      sed -i -e 's|"boolector"|"${pkgs.boolector}/bin/boolector"|' Data/SBV/Provers/Boolector.hs
+      sed -i -e 's|"cvc4"|"${pkgs.cvc4}/bin/cvc4"|' Data/SBV/Provers/CVC4.hs
+      sed -i -e 's|"yices-smt2"|"${pkgs.yices}/bin/yices-smt2"|' Data/SBV/Provers/Yices.hs
+      sed -i -e 's|"z3"|"${pkgs.z3}/bin/z3"|' Data/SBV/Provers/Z3.hs
+
+      sed -i -e 's|\[abc, boolector, cvc4, mathSAT, yices, z3, dReal\]|[abc, boolector, cvc4, yices, z3]|' SBVTestSuite/SBVConnectionTest.hs
+   '';
   });
 
   # The test-suite requires a running PostgreSQL server.
@@ -639,31 +654,28 @@ self: super: builtins.intersectAttrs super {
   spago =
     let
       # Spago needs a small patch to work with the latest versions of rio.
-      # https://github.com/purescript/spago/pull/616
-      # This can probably be removed when a version after spago-0.15.1 is released.
+      # https://github.com/purescript/spago/pull/647
       spagoWithPatches = appendPatch super.spago (pkgs.fetchpatch {
-        url = "https://github.com/purescript/spago/pull/616/commits/95b5fa0f1d3bfb07972d1ef5004b8bee8a070667.patch";
-        sha256 = "0v3890lwhddfrq9mhbq92962pkxra8kwbin97wg3s0b02dk65ysc";
+        url = "https://github.com/purescript/spago/pull/647/commits/917ee541a966db74f0f5d11f2f86df0030c35dd7.patch";
+        sha256 = "1nspqgcjk6z90cl9zhard0rn2q979kplcqz72x8xv5mh57zabk0w";
       });
 
-      # Spago basically compiles with LTS-14, but it requires a newer version
-      # of directory.  This is to work around a bug only present on windows, so
-      # we can safely jailbreak spago and use the older directory package from
-      # LTS-14.
+      # spago requires an older version of megaparsec, but it appears to work
+      # fine with newer versions.
       spagoWithOverrides = doJailbreak spagoWithPatches;
 
       # This defines the version of the purescript-docs-search release we are using.
       # This is defined in the src/Spago/Prelude.hs file in the spago source.
-      docsSearchVersion = "v0.0.8";
+      docsSearchVersion = "v0.0.10";
 
       docsSearchAppJsFile = pkgs.fetchurl {
         url = "https://github.com/spacchetti/purescript-docs-search/releases/download/${docsSearchVersion}/docs-search-app.js";
-        sha256 = "00pzi7pgjicpa0mg0al80gh2q1q2lqiyb3kjarpydlmn8dfjny7v";
+        sha256 = "0m5ah29x290r0zk19hx2wix2djy7bs4plh9kvjz6bs9r45x25pa5";
       };
 
       purescriptDocsSearchFile = pkgs.fetchurl {
         url = "https://github.com/spacchetti/purescript-docs-search/releases/download/${docsSearchVersion}/purescript-docs-search";
-        sha256 = "1hsi1hc4p1z2xbw82w2jxmmczw6mravli1r89vrkivb72sqdjya7";
+        sha256 = "0wc1zyhli4m2yykc6i0crm048gyizxh7b81n8xc4yb7ibjqwhyj3";
       };
 
       spagoFixHpack = overrideCabal spagoWithOverrides (drv: {
@@ -718,11 +730,6 @@ self: super: builtins.intersectAttrs super {
   # break infinite recursion with base-orphans
   primitive = dontCheck super.primitive;
 
-  # dhall's tests access the network.
-  dhall_1_29_0 = dontCheck super.dhall_1_29_0;
-  dhall_1_31_1 = dontCheck super.dhall_1_31_1;
-  dhall_1_32_0 = dontCheck super.dhall_1_32_0;
-
   cut-the-crap =
     let path = pkgs.stdenv.lib.makeBinPath [ pkgs.ffmpeg_3 ];
     in overrideCabal (addBuildTool super.cut-the-crap pkgs.makeWrapper) (_drv: {
@@ -755,18 +762,6 @@ self: super: builtins.intersectAttrs super {
     '';
   });
 
-  postgresql-syntax = super.postgresql-syntax.override {
-    rerebase = self.rerebase_1_6_1;
-  };
-
-  rerebase_1_6_1 = super.rerebase_1_6_1.override {
-    rebase = self.rebase_1_6_1;
-  };
-
-  rebase_1_6_1 = super.rebase_1_6_1.override {
-    selective = super.selective_0_4_1;
-  };
-
   # Fix compilation of Setup.hs by removing the module declaration.
   # See: https://github.com/tippenein/guid/issues/1
   guid = overrideCabal (super.guid) (drv: {
@@ -777,4 +772,24 @@ self: super: builtins.intersectAttrs super {
   # Tests disabled as recommended at https://github.com/luke-clifton/shh/issues/39
   shh = dontCheck super.shh;
 
+  # The test suites fail because there's no PostgreSQL database running in our
+  # build sandbox.
+  hasql-queue = dontCheck super.hasql-queue;
+  postgresql-libpq-notify = dontCheck super.postgresql-libpq-notify;
+  postgresql-pure = dontCheck super.postgresql-pure;
+
+  retrie = overrideCabal super.retrie (drv: {
+    testToolDepends = [ pkgs.git pkgs.mercurial ];
+  });
+
+  haskell-language-server = overrideCabal super.haskell-language-server (drv: {
+    postInstall = let
+      inherit (pkgs.lib) concatStringsSep take splitString;
+      ghc_version = self.ghc.version;
+      ghc_major_version = concatStringsSep "." (take 2 (splitString "." ghc_version));
+    in ''
+        ln -s $out/bin/haskell-language-server $out/bin/haskell-language-server-${ghc_version}
+        ln -s $out/bin/haskell-language-server $out/bin/haskell-language-server-${ghc_major_version}
+       '';
+  });
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/generic-builder.nix b/nixpkgs/pkgs/development/haskell-modules/generic-builder.nix
index de5bf631bf0d..afb0087a0289 100644
--- a/nixpkgs/pkgs/development/haskell-modules/generic-builder.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/generic-builder.nix
@@ -21,20 +21,21 @@ in
 , configureFlags ? []
 , buildFlags ? []
 , haddockFlags ? []
-, description ? ""
+, description ? null
 , doCheck ? !isCross && stdenv.lib.versionOlder "7.4" ghc.version
 , doBenchmark ? false
 , doHoogle ? true
 , doHaddockQuickjump ? doHoogle && stdenv.lib.versionAtLeast ghc.version "8.6"
 , editedCabalFile ? null
-, enableLibraryProfiling ? !(ghc.isGhcjs or false)
+# aarch64 outputs otherwise exceed 2GB limit
+, enableLibraryProfiling ? !(ghc.isGhcjs or stdenv.targetPlatform.isAarch64 or false)
 , enableExecutableProfiling ? false
 , profilingDetail ? "exported-functions"
 # TODO enable shared libs for cross-compiling
 , enableSharedExecutables ? false
 , enableSharedLibraries ? (ghc.enableShared or false)
 , enableDeadCodeElimination ? (!stdenv.isDarwin)  # TODO: use -dead_strip for darwin
-, enableStaticLibraries ? !stdenv.hostPlatform.isWindows
+, enableStaticLibraries ? !(stdenv.hostPlatform.isWindows or stdenv.hostPlatform.isWasm)
 , enableHsc2hsViaAsm ? stdenv.hostPlatform.isWindows && stdenv.lib.versionAtLeast ghc.version "8.4"
 , extraLibraries ? [], librarySystemDepends ? [], executableSystemDepends ? []
 # On macOS, statically linking against system frameworks is not supported;
@@ -48,9 +49,8 @@ in
 , isExecutable ? false, isLibrary ? !isExecutable
 , jailbreak ? false
 , license
-  # aarch64 sometimes crashes for -jn with n>1: https://ghc.haskell.org/trac/ghc/ticket/15449
-, enableParallelBuilding ? !stdenv.buildPlatform.isAarch64
-, maintainers ? []
+, enableParallelBuilding ? true
+, maintainers ? null
 , doCoverage ? false
 , doHaddock ? !(ghc.isHaLVM or false)
 , passthru ? {}
@@ -59,14 +59,14 @@ in
 , benchmarkDepends ? [], benchmarkHaskellDepends ? [], benchmarkSystemDepends ? [], benchmarkFrameworkDepends ? []
 , testTarget ? ""
 , broken ? false
-, preCompileBuildDriver ? "", postCompileBuildDriver ? ""
-, preUnpack ? "", postUnpack ? ""
-, patches ? [], patchPhase ? "", prePatch ? "", postPatch ? ""
-, preConfigure ? "", postConfigure ? ""
-, preBuild ? "", postBuild ? ""
-, installPhase ? "", preInstall ? "", postInstall ? ""
-, checkPhase ? "", preCheck ? "", postCheck ? ""
-, preFixup ? "", postFixup ? ""
+, preCompileBuildDriver ? null, postCompileBuildDriver ? null
+, preUnpack ? null, postUnpack ? null
+, patches ? null, patchPhase ? null, prePatch ? "", postPatch ? ""
+, preConfigure ? null, postConfigure ? null
+, preBuild ? null, postBuild ? null
+, installPhase ? null, preInstall ? null, postInstall ? null
+, checkPhase ? null, preCheck ? null, postCheck ? null
+, preFixup ? null, postFixup ? null
 , shellHook ? ""
 , coreSetup ? false # Use only core packages to build Setup.hs.
 , useCpphs ? false
@@ -90,6 +90,7 @@ assert editedCabalFile != null -> revision != null;
 # --enable-static does not work on windows. This is a bug in GHC.
 # --enable-static will pass -staticlib to ghc, which only works for mach-o and elf.
 assert stdenv.hostPlatform.isWindows -> enableStaticLibraries == false;
+assert stdenv.hostPlatform.isWasm -> enableStaticLibraries == false;
 
 let
 
@@ -636,34 +637,34 @@ stdenv.mkDerivation ({
   };
 
   meta = { inherit homepage license platforms; }
-         // optionalAttrs broken               { inherit broken; }
-         // optionalAttrs (description != "")  { inherit description; }
-         // optionalAttrs (maintainers != [])  { inherit maintainers; }
-         // optionalAttrs (hydraPlatforms != null) { inherit hydraPlatforms; }
+         // optionalAttrs (args ? broken)         { inherit broken; }
+         // optionalAttrs (args ? description)    { inherit description; }
+         // optionalAttrs (args ? maintainers)    { inherit maintainers; }
+         // optionalAttrs (args ? hydraPlatforms) { inherit hydraPlatforms; }
          ;
 
 }
-// optionalAttrs (preCompileBuildDriver != "")  { inherit preCompileBuildDriver; }
-// optionalAttrs (postCompileBuildDriver != "") { inherit postCompileBuildDriver; }
-// optionalAttrs (preUnpack != "")      { inherit preUnpack; }
-// optionalAttrs (postUnpack != "")     { inherit postUnpack; }
-// optionalAttrs (patches != [])        { inherit patches; }
-// optionalAttrs (patchPhase != "")     { inherit patchPhase; }
-// optionalAttrs (preConfigure != "")   { inherit preConfigure; }
-// optionalAttrs (postConfigure != "")  { inherit postConfigure; }
-// optionalAttrs (preBuild != "")       { inherit preBuild; }
-// optionalAttrs (postBuild != "")      { inherit postBuild; }
-// optionalAttrs (doBenchmark)          { inherit doBenchmark; }
-// optionalAttrs (checkPhase != "")     { inherit checkPhase; }
-// optionalAttrs (preCheck != "")       { inherit preCheck; }
-// optionalAttrs (postCheck != "")      { inherit postCheck; }
-// optionalAttrs (preInstall != "")     { inherit preInstall; }
-// optionalAttrs (installPhase != "")   { inherit installPhase; }
-// optionalAttrs (postInstall != "")    { inherit postInstall; }
-// optionalAttrs (preFixup != "")       { inherit preFixup; }
-// optionalAttrs (postFixup != "")      { inherit postFixup; }
-// optionalAttrs (dontStrip)            { inherit dontStrip; }
-// optionalAttrs (hardeningDisable != []) { inherit hardeningDisable; }
+// optionalAttrs (args ? preCompileBuildDriver)  { inherit preCompileBuildDriver; }
+// optionalAttrs (args ? postCompileBuildDriver) { inherit postCompileBuildDriver; }
+// optionalAttrs (args ? preUnpack)              { inherit preUnpack; }
+// optionalAttrs (args ? postUnpack)             { inherit postUnpack; }
+// optionalAttrs (args ? patches)                { inherit patches; }
+// optionalAttrs (args ? patchPhase)             { inherit patchPhase; }
+// optionalAttrs (args ? preConfigure)           { inherit preConfigure; }
+// optionalAttrs (args ? postConfigure)          { inherit postConfigure; }
+// optionalAttrs (args ? preBuild)               { inherit preBuild; }
+// optionalAttrs (args ? postBuild)              { inherit postBuild; }
+// optionalAttrs (args ? doBenchmark)            { inherit doBenchmark; }
+// optionalAttrs (args ? checkPhase)             { inherit checkPhase; }
+// optionalAttrs (args ? preCheck)               { inherit preCheck; }
+// optionalAttrs (args ? postCheck)              { inherit postCheck; }
+// optionalAttrs (args ? preInstall)             { inherit preInstall; }
+// optionalAttrs (args ? installPhase)           { inherit installPhase; }
+// optionalAttrs (args ? postInstall)            { inherit postInstall; }
+// optionalAttrs (args ? preFixup)               { inherit preFixup; }
+// optionalAttrs (args ? postFixup)              { inherit postFixup; }
+// optionalAttrs (args ? dontStrip)              { inherit dontStrip; }
+// optionalAttrs (args ? hardeningDisable)       { inherit hardeningDisable; }
 // optionalAttrs (stdenv.buildPlatform.libc == "glibc"){ LOCALE_ARCHIVE = "${glibcLocales}/lib/locale/locale-archive"; }
 )
 )
diff --git a/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix b/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
index 429f6815f281..82eaebd4d032 100644
--- a/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
@@ -791,7 +791,7 @@ self: {
        broken = true;
      }) {};
 
-  "Agda" = callPackage
+  "Agda_2_6_1" = callPackage
     ({ mkDerivation, aeson, alex, array, async, base, binary
      , blaze-html, boxes, bytestring, Cabal, containers, data-hash
      , deepseq, directory, edit-distance, emacs, equivalence, exceptions
@@ -819,16 +819,40 @@ self: {
        libraryToolDepends = [ alex happy ];
        executableHaskellDepends = [ base directory filepath process ];
        executableToolDepends = [ emacs ];
-       postInstall = ''
-         files=("$data/share/ghc-"*"/"*"-ghc-"*"/Agda-"*"/lib/prim/Agda/"{Primitive.agda,Builtin"/"*.agda})
-         for f in "''${files[@]}" ; do
-           $out/bin/agda $f
-         done
-         for f in "''${files[@]}" ; do
-           $out/bin/agda -c --no-main $f
-         done
-         $out/bin/agda-mode compile
-       '';
+       description = "A dependently typed functional programming language and proof assistant";
+       license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       maintainers = with stdenv.lib.maintainers; [ abbradar ];
+     }) {inherit (pkgs) emacs;};
+
+  "Agda" = callPackage
+    ({ mkDerivation, aeson, alex, array, async, base, binary
+     , blaze-html, boxes, bytestring, Cabal, containers, data-hash
+     , deepseq, directory, edit-distance, emacs, equivalence, exceptions
+     , filepath, geniplate-mirror, ghc-compact, gitrev, happy, hashable
+     , hashtables, haskeline, ieee754, mtl, murmur-hash, pretty, process
+     , regex-tdfa, split, stm, strict, template-haskell, text, time
+     , transformers, unordered-containers, uri-encode, zlib
+     }:
+     mkDerivation {
+       pname = "Agda";
+       version = "2.6.1.1";
+       sha256 = "0d4j3n96wyc2crz238q49sb31ll6dfddllb82ry0jnsk8f0ypx2p";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal directory filepath process ];
+       libraryHaskellDepends = [
+         aeson array async base binary blaze-html boxes bytestring
+         containers data-hash deepseq directory edit-distance equivalence
+         exceptions filepath geniplate-mirror ghc-compact gitrev hashable
+         hashtables haskeline ieee754 mtl murmur-hash pretty process
+         regex-tdfa split stm strict template-haskell text time transformers
+         unordered-containers uri-encode zlib
+       ];
+       libraryToolDepends = [ alex happy ];
+       executableHaskellDepends = [ base directory filepath process ];
+       executableToolDepends = [ emacs ];
        description = "A dependently typed functional programming language and proof assistant";
        license = "unknown";
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -1041,6 +1065,20 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "Aoide" = callPackage
+    ({ mkDerivation, base, bytestring, mtl, process, template-haskell
+     }:
+     mkDerivation {
+       pname = "Aoide";
+       version = "0.1.0.2";
+       sha256 = "1nldvg8fwgbvn50prar3vs1nh704s1603fikyg2lhpz754yp0qbc";
+       libraryHaskellDepends = [
+         base bytestring mtl process template-haskell
+       ];
+       description = "A simple music library with the capability of generating .ly and .mid files.";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "ApplePush" = callPackage
     ({ mkDerivation, base, binary, bytestring, haskell98, json, mtl
      , network
@@ -1114,18 +1152,15 @@ self: {
      }) {};
 
   "AspectAG" = callPackage
-    ({ mkDerivation, base, containers, ghc-prim, mtl, tagged
-     , template-haskell, th-strict-compat
+    ({ mkDerivation, base, containers, mtl, poly-rec, requirements
+     , tagged, template-haskell
      }:
      mkDerivation {
        pname = "AspectAG";
-       version = "0.5.0.0";
-       sha256 = "039k40swscsg21b4k4a3q95migvkflcp7sgx2a8gpzanrkx3ckz2";
-       revision = "2";
-       editedCabalFile = "1afrgn3hhkfrb3khfnbj7x9p4dh8j682zjhp5lc7s7syr8zp8pxy";
+       version = "0.6.0.0";
+       sha256 = "09lm1hs9l3h6ndv385adhh0kf9id10fjf0n1bczgzqgxmiykx2kn";
        libraryHaskellDepends = [
-         base containers ghc-prim mtl tagged template-haskell
-         th-strict-compat
+         base containers mtl poly-rec requirements tagged template-haskell
        ];
        description = "Strongly typed Attribute Grammars implemented using type-level programming";
        license = stdenv.lib.licenses.gpl3;
@@ -1309,6 +1344,8 @@ self: {
        pname = "BNFC-meta";
        version = "0.6.1";
        sha256 = "0snackflcjxza4iqbd85fdsmylwr3bj71nsfrs2s2idc3nlxc7ia";
+       revision = "1";
+       editedCabalFile = "1lj92qxjf7gbgifhz1p6jw20079x6772gkbhvpd8ba4956dvzna3";
        libraryHaskellDepends = [
          alex-meta array base fail happy-meta haskell-src-meta syb
          template-haskell
@@ -1528,7 +1565,7 @@ self: {
          base colour diagrams-cairo diagrams-lib directory either-unwrap
          filepath parsec ParsecTools StockholmAlignment SVGFonts text vector
        ];
-       description = "Libary for Hidden Markov Models in HMMER3 format.";
+       description = "Libary for Hidden Markov Models in HMMER3 format";
        license = stdenv.lib.licenses.gpl3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -2054,10 +2091,8 @@ self: {
      }:
      mkDerivation {
        pname = "BlogLiterately";
-       version = "0.8.6.3";
-       sha256 = "02a4mjz9lbx19plkanmdlm730dwphkdi79a5b5hcnrbilcy8k71n";
-       revision = "1";
-       editedCabalFile = "1nhnrchv8lr1clbsfyya4xfqy8qdi8wrfp8364anaq7mpfnslxws";
+       version = "0.8.7";
+       sha256 = "01x8q04bs0qr2vg434yl2mfnshjd6licyard6pjfvhalk2phxcp2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -2251,6 +2286,24 @@ self: {
        broken = true;
      }) {};
 
+  "C-structs" = callPackage
+    ({ mkDerivation, base, doctest, Glob, HUnit, QuickCheck
+     , template-haskell, test-framework, test-framework-hunit
+     , test-framework-quickcheck2
+     }:
+     mkDerivation {
+       pname = "C-structs";
+       version = "0.1.0.1";
+       sha256 = "0b3mqp20am2yn7jbgxxg08rds1c5mxx827app23hrhsl4ysslfkg";
+       libraryHaskellDepends = [ base template-haskell ];
+       testHaskellDepends = [
+         base doctest Glob HUnit QuickCheck template-haskell test-framework
+         test-framework-hunit test-framework-quickcheck2
+       ];
+       description = "C-Structs implementation for Haskell";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "CBOR" = callPackage
     ({ mkDerivation, base, binary, binary-bits, bytestring
      , data-binary-ieee754, doctest, QuickCheck, test-framework
@@ -2511,7 +2564,7 @@ self: {
        version = "0.3.1.0";
        sha256 = "0dlb761kj33v9p53fw44gg4r7j8kcl4jxvvgi7rz0pv8v7nh6255";
        libraryHaskellDepends = [ base ];
-       description = "Definition of a CSP core-language.";
+       description = "Definition of a CSP core-language";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -2912,7 +2965,7 @@ self: {
        version = "0.3";
        sha256 = "10m7l701p3a2w0kxi2b93g2ii6s4s71zyjypqk3mi79siv8yilif";
        libraryHaskellDepends = [ base mtl ];
-       description = "A monad for complex manipulation of a stream.";
+       description = "A monad for complex manipulation of a stream";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -3090,8 +3143,8 @@ self: {
      }:
      mkDerivation {
        pname = "ChasingBottoms";
-       version = "1.3.1.8";
-       sha256 = "1madbhhxi5awh74q0z2mx1la5jbkvx26zvhl4x8237sjzs0k51wx";
+       version = "1.3.1.9";
+       sha256 = "1acsmvdwsgry0i0qhmz0img71gq97wikmn9zgbqppl4n8a1d7bvh";
        libraryHaskellDepends = [
          base containers mtl QuickCheck random syb
        ];
@@ -3332,6 +3385,27 @@ self: {
        broken = true;
      }) {};
 
+  "Color_0_2_0" = callPackage
+    ({ mkDerivation, base, colour, criterion, data-default-class
+     , deepseq, doctest, hspec, HUnit, JuicyPixels, massiv, massiv-test
+     , QuickCheck, random, vector
+     }:
+     mkDerivation {
+       pname = "Color";
+       version = "0.2.0";
+       sha256 = "1w7d1wjssldybbg46s4hc83f96n49v53wyq0sc1q8mkvqdl35vsh";
+       libraryHaskellDepends = [ base data-default-class deepseq vector ];
+       testHaskellDepends = [
+         base colour doctest hspec HUnit JuicyPixels massiv massiv-test
+         QuickCheck random vector
+       ];
+       benchmarkHaskellDepends = [ base colour criterion deepseq random ];
+       description = "Color spaces and conversions between them";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "Combinatorrent" = callPackage
     ({ mkDerivation, array, attoparsec, base, bytestring, cereal
      , containers, deepseq, directory, filepath, hopenssl, hslogger
@@ -3622,7 +3696,7 @@ self: {
        version = "0.1";
        sha256 = "027dv53jrfk46dmiidnnrrdvhyin60i862znp414213w72yjrbhh";
        libraryHaskellDepends = [ base template-haskell ];
-       description = "Practical typed lazy contracts.";
+       description = "Practical typed lazy contracts";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -3745,8 +3819,8 @@ self: {
      }:
      mkDerivation {
        pname = "CouchDB";
-       version = "1.2.2";
-       sha256 = "0imzpwrynr54as3bzx2222vqcnmmrzx6dis5qa2vmclf6yd8q1z8";
+       version = "1.2.3";
+       sha256 = "064savpqn5ppj3sg0jsaqq5625zf0ml6wa0k7x058pmsp9i93c4m";
        libraryHaskellDepends = [
          base bytestring containers HTTP json mtl network network-uri
          utf8-string
@@ -4341,6 +4415,8 @@ self: {
        testHaskellDepends = [ base hspec QuickCheck ];
        description = "Type safe data migrations";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "Deadpan-DDP" = callPackage
@@ -4517,6 +4593,24 @@ self: {
        broken = true;
      }) {};
 
+  "Diff_0_3_4" = callPackage
+    ({ mkDerivation, array, base, directory, pretty, process
+     , QuickCheck, test-framework, test-framework-quickcheck2
+     }:
+     mkDerivation {
+       pname = "Diff";
+       version = "0.3.4";
+       sha256 = "0bqcdvhxx8dmqc3793m6axg813wv9ldz2j37f1wygbbrbbndmdvp";
+       libraryHaskellDepends = [ array base pretty ];
+       testHaskellDepends = [
+         array base directory pretty process QuickCheck test-framework
+         test-framework-quickcheck2
+       ];
+       description = "O(ND) diff algorithm in haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "Diff" = callPackage
     ({ mkDerivation, array, base, directory, pretty, process
      , QuickCheck, test-framework, test-framework-quickcheck2
@@ -5604,7 +5698,7 @@ self: {
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ array base containers haskell98 ];
-       description = "A set of computational morphology tools for Swedish diachronic lexicons.";
+       description = "A set of computational morphology tools for Swedish diachronic lexicons";
        license = "GPL";
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -5639,6 +5733,17 @@ self: {
        broken = true;
      }) {};
 
+  "FSM" = callPackage
+    ({ mkDerivation, base, containers, matrix, vector }:
+     mkDerivation {
+       pname = "FSM";
+       version = "1.0.0";
+       sha256 = "0gsrfzk5g499r7xdhsaag53207bd015jwcrl2f9izmpa6gli5las";
+       libraryHaskellDepends = [ base containers matrix vector ];
+       description = "Basic concepts of finite state machines";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "FTGL" = callPackage
     ({ mkDerivation, base, ftgl }:
      mkDerivation {
@@ -6080,6 +6185,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "FloatingHex_0_5" = callPackage
+    ({ mkDerivation, base, template-haskell }:
+     mkDerivation {
+       pname = "FloatingHex";
+       version = "0.5";
+       sha256 = "0c38062vnjmy3fc5nxwg7sgbfabikaakgdsl34ka229s6w7pm8x3";
+       libraryHaskellDepends = [ base template-haskell ];
+       description = "Read and write hexadecimal floating point numbers";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "Focus" = callPackage
     ({ mkDerivation, base, MissingH, split }:
      mkDerivation {
@@ -6337,8 +6454,8 @@ self: {
      }:
      mkDerivation {
        pname = "Frames";
-       version = "0.6.4";
-       sha256 = "1z1bv3dqna9gp6k2rjnbl54hxkaxl4khdlfy52r0cv51ah8969ri";
+       version = "0.7.0";
+       sha256 = "0g4c8s4v3lg7bnsz8n09zrf8cwyywmxpv97wkwx6xvflknb7z0cc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -6376,7 +6493,7 @@ self: {
          base beam-core beam-migrate beam-postgres bytestring conduit Frames
          generics-sop hspec hspec-core QuickCheck text vinyl
        ];
-       description = "A library for accessing Postgres tables as in-memory data structures.";
+       description = "A library for accessing Postgres tables as in-memory data structures";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -6419,6 +6536,8 @@ self: {
        ];
        description = "Frames wrapper for map-reduce-folds and some extra folds helpers";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "Frank" = callPackage
@@ -6698,10 +6817,12 @@ self: {
      }:
      mkDerivation {
        pname = "GLUtil";
-       version = "0.10.3";
-       sha256 = "09zcb0ijm20nmynqsl585nhn1qaldkp3c8v3y28gn2cj606m8cqr";
+       version = "0.10.4";
+       sha256 = "12bn7519icm7z5j5bqdhplf5gby5c9la57v48p9izs08ll9q9id3";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
-         array base bytestring containers directory filepath hpp JuicyPixels
+         array base bytestring containers directory filepath JuicyPixels
          linear OpenGL OpenGLRaw transformers vector
        ];
        libraryToolDepends = [ hpp ];
@@ -6786,8 +6907,8 @@ self: {
     ({ mkDerivation, async, base, containers, GLFW-b, GPipe, stm }:
      mkDerivation {
        pname = "GPipe-GLFW";
-       version = "1.4.1.2";
-       sha256 = "0i63pxz6bvzixjgi1hbipxhrg7nykd37zii555qhss2m7x4pydak";
+       version = "1.4.1.3";
+       sha256 = "0czrq3zhcxfl9pzypmxpxgn11faqb0kw05m5k3apr4b88prbj1ij";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ async base containers GLFW-b GPipe stm ];
        description = "GLFW OpenGL context creation for GPipe";
@@ -6837,15 +6958,13 @@ self: {
      }:
      mkDerivation {
        pname = "Gamgine";
-       version = "0.5.3";
-       sha256 = "08awl1f1310ifx9gzjrinsv37n7k2yaxvmjaymjh01pawlp3w4gc";
-       revision = "1";
-       editedCabalFile = "1i14r4r8814l8cilp24ypcsbac284m6pvib5037sypgqv72wn044";
+       version = "0.6.0";
+       sha256 = "171mfxq7s719j3h2nfsck2qmwrkmlp3731na6nd81b5x3jvl3ma0";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         array base bytestring composition cpphs data-lens directory
-         filepath GLFW-b ListZipper mtl OpenGLRaw parsec pretty-show
-         StateVar time unordered-containers utility-ht Vec zlib
+         array base bytestring composition data-lens directory filepath
+         GLFW-b ListZipper mtl OpenGLRaw parsec pretty-show StateVar time
+         unordered-containers utility-ht Vec zlib
        ];
        libraryToolDepends = [ cpphs ];
        description = "Some kind of game library or set of utilities";
@@ -7189,6 +7308,8 @@ self: {
        libraryHaskellDepends = [ base mtl split threepenny-gui ];
        description = "HTML Canvas graphics, animations and simulations";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "Glob" = callPackage
@@ -7198,10 +7319,8 @@ self: {
      }:
      mkDerivation {
        pname = "Glob";
-       version = "0.10.0";
-       sha256 = "0953f91f62ncna402vsrfzdcyxhdpjna3bgdw017kad0dfymacs7";
-       revision = "1";
-       editedCabalFile = "0zfd4wimwgnmgqkz9g9jqj2dq2r50wdcqmcz6v7is1zrpwhszk5v";
+       version = "0.10.1";
+       sha256 = "05fknrb114qvfzv6324ngx0fz43cwgrhrc700l3h2is9jinlgr6a";
        libraryHaskellDepends = [
          base containers directory dlist filepath transformers
          transformers-compat
@@ -8814,17 +8933,22 @@ self: {
 
   "HPDF" = callPackage
     ({ mkDerivation, array, base, base64-bytestring, binary, bytestring
-     , containers, errors, HTF, mtl, random, vector, zlib
+     , containers, errors, filepath, HTF, hyphenation, mtl, network-uri
+     , parsec, random, text, vector, zlib
      }:
      mkDerivation {
        pname = "HPDF";
-       version = "1.4.10";
-       sha256 = "1m072rc03yx5y4djmvj87kn6n23d9378v3ipl8lj3vzfjgfzsayy";
-       revision = "1";
-       editedCabalFile = "1djn0a9rk3qrbz31bxj115r65p28fi3wzcrkrnjvzibl3450pq30";
+       version = "1.5.1";
+       sha256 = "0kqbfzcqapxvkg52mixqjhxb79ziyfsfvazbzrwjvhp9nqhikn6y";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base base64-bytestring binary bytestring containers errors
-         mtl random vector zlib
+         filepath hyphenation mtl network-uri parsec random text vector zlib
+       ];
+       executableHaskellDepends = [
+         base filepath network-uri random text vector
        ];
        testHaskellDepends = [ base HTF ];
        description = "Generation of PDF documents";
@@ -9136,7 +9260,7 @@ self: {
          base bytestring DebugTraceHelpers directory filepath HSH
          HStringTemplateHelpers MissingH mtl regex-pcre unix
        ];
-       description = "Convenience functions that use HSH, instances for HSH.";
+       description = "Convenience functions that use HSH, instances for HSH";
        license = "GPL";
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -9314,10 +9438,8 @@ self: {
      }:
      mkDerivation {
        pname = "HTTP";
-       version = "4000.3.14";
-       sha256 = "0yv8mbjicpl7l2017c4dhm49117lblgwpy1llv368wci1vrxf0m6";
-       revision = "1";
-       editedCabalFile = "1inz9grpl9605bbymy6n5y4as54mlykbsiw8wpm5gl6qvxgrf69w";
+       version = "4000.3.15";
+       sha256 = "150m5v125s4jrxzl85jhnh69kp4mjyzhkqp0c1k087008f73csqd";
        libraryHaskellDepends = [
          array base bytestring mtl network network-uri parsec time
        ];
@@ -9852,8 +9974,8 @@ self: {
      }:
      mkDerivation {
        pname = "HasCacBDD";
-       version = "0.1.0.2";
-       sha256 = "1yilx2pl0j4bw3c83kzc1y9wmg67r88gpahbwykff1jjr2xnrsp0";
+       version = "0.1.0.3";
+       sha256 = "04kczdr702kkqa89pm5lc3glq4xqnjy0rszpq7ms1zlj1gwvgckz";
        setupHaskellDepends = [ base Cabal directory ];
        libraryHaskellDepends = [ base process QuickCheck ];
        librarySystemDepends = [ CacBDD ];
@@ -9940,6 +10062,31 @@ self: {
        broken = true;
      }) {};
 
+  "HaskellAnalysisProgram" = callPackage
+    ({ mkDerivation, base, bytestring, cassava, containers, csv
+     , directory, fgl, filepath, graphviz, haskell-src-exts, HUnit
+     , pretty, split, syb, text, vector
+     }:
+     mkDerivation {
+       pname = "HaskellAnalysisProgram";
+       version = "0.1.0";
+       sha256 = "14z8nwvx306822nlna0p7vihrldk87z518c23aka17h3fxwfzzma";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring cassava containers csv directory fgl filepath
+         graphviz haskell-src-exts pretty split syb text vector
+       ];
+       testHaskellDepends = [
+         base bytestring cassava containers csv directory fgl filepath
+         graphviz haskell-src-exts HUnit pretty split syb text vector
+       ];
+       description = "Haskell source code analysis program";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "HaskellForMaths" = callPackage
     ({ mkDerivation, array, base, containers, random }:
      mkDerivation {
@@ -10668,8 +10815,8 @@ self: {
     ({ mkDerivation, base, bytestring, Cabal, network, openssl, time }:
      mkDerivation {
        pname = "HsOpenSSL";
-       version = "0.11.4.18";
-       sha256 = "1nz4d6pwcnv775ncyg85ckx8kkzj2y3h17i40jc0yna8ai7driyx";
+       version = "0.11.4.19";
+       sha256 = "0iy3qrir13kp1c7a0xwj2ngfwhqxqbc5j0vj5mi0w3arv7w0x6ds";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [ base bytestring network time ];
        librarySystemDepends = [ openssl ];
@@ -10682,8 +10829,8 @@ self: {
     ({ mkDerivation, base, bytestring, HsOpenSSL, unix }:
      mkDerivation {
        pname = "HsOpenSSL-x509-system";
-       version = "0.1.0.3";
-       sha256 = "14hzjdpv8ld3nw5fcx451w49vq0s8fhs1zh984vpm85b5ypbgp2v";
+       version = "0.1.0.4";
+       sha256 = "15mp70bqg1lzp971bzp6wym3bwzvxb76hzbgckygbfa722xyymhr";
        libraryHaskellDepends = [ base bytestring HsOpenSSL unix ];
        description = "Use the system's native CA certificate store with HsOpenSSL";
        license = stdenv.lib.licenses.bsd3;
@@ -10812,8 +10959,8 @@ self: {
        pname = "HsYAML-aeson";
        version = "0.2.0.0";
        sha256 = "12sxww260pc0bbpiyirm7911haxhljdi2f08a9ddpbgw8d5n7ffg";
-       revision = "1";
-       editedCabalFile = "1454jwcjaala8drxn7x765bqnzivdys99nl95mbd3yv2c6s1173g";
+       revision = "2";
+       editedCabalFile = "0sf4clxx3i3s6666w3il65fijx2xmgb1mxml9jgc5y40sj3qb3mm";
        libraryHaskellDepends = [
          aeson base bytestring containers HsYAML mtl scientific text
          unordered-containers vector
@@ -11059,8 +11206,8 @@ self: {
      }:
      mkDerivation {
        pname = "IPv6Addr";
-       version = "1.1.4";
-       sha256 = "1bkib3mzbc0lzmi4vqkmihgi9vdcsksgss5rp3czhc893wc3hzah";
+       version = "1.1.5";
+       sha256 = "0fnh77znfkp0d2i6vdvrsnxcdprqjz43in5k36b3yrrzffdrfka7";
        libraryHaskellDepends = [
          aeson attoparsec base iproute network network-info random text
        ];
@@ -11272,8 +11419,8 @@ self: {
      }:
      mkDerivation {
        pname = "IntervalMap";
-       version = "0.6.1.1";
-       sha256 = "0vdlvxvhf7vjyv0mfn6jaj2i2gclqv8419ck32s2jxfcmki5m5g8";
+       version = "0.6.1.2";
+       sha256 = "03smzhwk1zf5na544b0azp49j4gvafqsih9ggwf6yng38yhixwld";
        libraryHaskellDepends = [ base containers deepseq ];
        testHaskellDepends = [ base Cabal containers deepseq QuickCheck ];
        benchmarkHaskellDepends = [
@@ -11609,8 +11756,8 @@ self: {
        pname = "JuicyPixels-blurhash";
        version = "0.1.0.3";
        sha256 = "0kgl2j7990p8q5yrkn0wgaszc9fzva1pc3277j11k1lbjsymz360";
-       revision = "1";
-       editedCabalFile = "05vnd6a4z0r1dg25r2fc2q5krqcw1k0qdxwbhzc7rcnrnnwn0f2d";
+       revision = "2";
+       editedCabalFile = "0phffs6r83sny6zr4zsrppzqy1lgybm6lqgfmbfgwhyvmd544qx6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -12193,6 +12340,8 @@ self: {
        pname = "LambdaHack";
        version = "0.9.5.0";
        sha256 = "1y5345cmwl40p0risziyqlxfa8jv1rm9x6ivv85xhznrsmr0406h";
+       revision = "1";
+       editedCabalFile = "0qaqfyg7a50yibshq63718iyi4z1v017fzp7kbwrnwqmkmdqfa5a";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -12591,10 +12740,8 @@ self: {
      }:
      mkDerivation {
        pname = "ListLike";
-       version = "4.6.3";
-       sha256 = "10vn7gslx4zzjq547cwpzdfb4c5w3nsfis6qr03dr9c4fdzj61lx";
-       revision = "1";
-       editedCabalFile = "1xi5mlk6jm73fdxsjcp41ffr3ygwwykcjf20c122k7hgpkzg1lms";
+       version = "4.7.2";
+       sha256 = "15c1q4rl4kwpgpsdf4x7k17m2fgzimm9915k71cpjiv0sq9b2rn2";
        libraryHaskellDepends = [
          array base bytestring containers deepseq dlist fmlist text
          utf8-string vector
@@ -12607,28 +12754,6 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "ListLike_4_7" = callPackage
-    ({ mkDerivation, array, base, bytestring, containers, deepseq
-     , dlist, fmlist, HUnit, QuickCheck, random, text, utf8-string
-     , vector
-     }:
-     mkDerivation {
-       pname = "ListLike";
-       version = "4.7";
-       sha256 = "1209xa73cxzajp8wx2bw2017vjb84yibm5q5sp0i0ifhi5syv4jl";
-       libraryHaskellDepends = [
-         array base bytestring containers deepseq dlist fmlist text
-         utf8-string vector
-       ];
-       testHaskellDepends = [
-         array base bytestring containers dlist fmlist HUnit QuickCheck
-         random text utf8-string vector
-       ];
-       description = "Generalized support for list-like structures";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
   "ListT" = callPackage
     ({ mkDerivation, base, smallcheck, tasty, tasty-smallcheck
      , transformers, util
@@ -12689,8 +12814,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "LiterateMarkdown";
-       version = "0.1.0.0";
-       sha256 = "0v9j7kqjvkrafxl4ahfqj1xvigim9vnd3kflgqagzccrgx9kz5gv";
+       version = "0.1.0.1";
+       sha256 = "0rgjf6blrg8rq75872bpwp6cn3bg89718cy6ik2m22881zfvr2m7";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [ base ];
@@ -12993,6 +13118,33 @@ self: {
        broken = true;
      }) {};
 
+  "MIP" = callPackage
+    ({ mkDerivation, base, bytestring, bytestring-encoding
+     , case-insensitive, containers, data-default-class, extended-reals
+     , filepath, intern, lattices, megaparsec, mtl, OptDir, process
+     , scientific, stm, tasty, tasty-hunit, tasty-quickcheck, tasty-th
+     , temporary, text, xml-conduit, zlib
+     }:
+     mkDerivation {
+       pname = "MIP";
+       version = "0.1.0.0";
+       sha256 = "0790jcwqjd33i8sqhzxarda8ihhv5iapj0apjmlqjppbipwa6awa";
+       libraryHaskellDepends = [
+         base bytestring bytestring-encoding case-insensitive containers
+         data-default-class extended-reals filepath intern lattices
+         megaparsec mtl OptDir process scientific stm temporary text
+         xml-conduit zlib
+       ];
+       testHaskellDepends = [
+         base containers data-default-class lattices tasty tasty-hunit
+         tasty-quickcheck tasty-th
+       ];
+       description = "Library for using Mixed Integer Programming (MIP)";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "MSQueue" = callPackage
     ({ mkDerivation, base, ghc-prim, monad-loops, ref-mtl, stm }:
      mkDerivation {
@@ -13078,8 +13230,8 @@ self: {
      }:
      mkDerivation {
        pname = "Map";
-       version = "0.1.3.2";
-       sha256 = "03bc7mswiw5n76g34pll6dgz7f46l9gafl1bfanv74p21xjr829g";
+       version = "0.1.3.3";
+       sha256 = "060b50hjl79ikzff1i65xakq8vkqr6pssc5kvw5j6vrd46y4ami4";
        libraryHaskellDepends = [
          base containers either-both filtrable util
        ];
@@ -13088,6 +13240,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "MapWith" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "MapWith";
+       version = "0.2.0.0";
+       sha256 = "1xkyaj83yblf42qawv4nyi8miaynydd8b3ysx62f9y10bqxk7dja";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       benchmarkHaskellDepends = [ base ];
+       description = "mapWith: like fmap, but with additional parameters (isFirst, isLast, etc)";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "Mapping" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -13591,8 +13756,8 @@ self: {
      }:
      mkDerivation {
        pname = "MonadRandom";
-       version = "0.5.1.2";
-       sha256 = "0j1lwg3pp77cf87bk0c1gipzrdvpjcj7bkgi37lcjc7avmlhwvvp";
+       version = "0.5.2";
+       sha256 = "1rjihspfdg2b9bwvbgj36ql595nbza8ddh1bmgz924xmddshcf30";
        libraryHaskellDepends = [
          base mtl primitive random transformers transformers-compat
        ];
@@ -14013,24 +14178,26 @@ self: {
      }) {};
 
   "NaCl" = callPackage
-    ({ mkDerivation, base, bytestring, gdp, hedgehog, HUnit, libsodium
+    ({ mkDerivation, base, bytestring, hedgehog, HUnit, libsodium
      , memory, safe-exceptions, tasty, tasty-discover, tasty-hedgehog
      , tasty-hunit
      }:
      mkDerivation {
        pname = "NaCl";
-       version = "0.0.2.0";
-       sha256 = "0qmca7kgbg25xfdv6dd5793gr1dkwdivqqvd5b6rgq58ypzs8y4v";
+       version = "0.0.3.1";
+       sha256 = "1ff793w4dc34nmd9s9pxdz6nrpqz9wv6bx5j0kxgmjvwzjx9i5ql";
        libraryHaskellDepends = [
-         base bytestring gdp libsodium memory safe-exceptions
+         base bytestring libsodium memory safe-exceptions
        ];
        testHaskellDepends = [
-         base bytestring hedgehog HUnit libsodium tasty tasty-hedgehog
-         tasty-hunit
+         base bytestring hedgehog HUnit libsodium memory safe-exceptions
+         tasty tasty-hedgehog tasty-hunit
        ];
        testToolDepends = [ tasty-discover ];
        description = "Easy-and-safe-to-use high-level Haskell bindings to NaCl";
        license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "NameGenerator" = callPackage
@@ -16129,13 +16296,13 @@ self: {
   "PyF" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, directory
      , filepath, hashable, haskell-src-exts, haskell-src-meta, hspec
-     , HUnit, megaparsec, mtl, process, python3, template-haskell
-     , temporary, text
+     , HUnit, megaparsec, mtl, process, template-haskell, temporary
+     , text
      }:
      mkDerivation {
        pname = "PyF";
-       version = "0.9.0.1";
-       sha256 = "00pmpm2g7161bksc1l5clkghi0sbzh8y0f6xd52gwx9h6zxacns3";
+       version = "0.9.0.2";
+       sha256 = "186kxid40nsxhc4yas6a1jk6ndsycsfrc5k9pfvyhgw720rx2p2c";
        libraryHaskellDepends = [
          base containers haskell-src-exts haskell-src-meta megaparsec mtl
          template-haskell text
@@ -16144,10 +16311,9 @@ self: {
          base bytestring deepseq directory filepath hashable hspec HUnit
          process template-haskell temporary text
        ];
-       testToolDepends = [ python3 ];
        description = "Quasiquotations for a python like interpolated string formater";
        license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs) python3;};
+     }) {};
 
   "QIO" = callPackage
     ({ mkDerivation, base, containers, mtl, old-time, random }:
@@ -16288,16 +16454,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "QuickCheck_2_14" = callPackage
+  "QuickCheck_2_14_1" = callPackage
     ({ mkDerivation, base, containers, deepseq, process, random
      , splitmix, template-haskell, transformers
      }:
      mkDerivation {
        pname = "QuickCheck";
-       version = "2.14";
-       sha256 = "0jiqdk8ma8m68vg6vbxd0s1x0djmfjn1zm06masz7x8rzc3i9gjj";
-       revision = "1";
-       editedCabalFile = "0i8hh6f8y2jxn9hfchhbp9w5mb65fs6yy12z08wyrxxyhr5nllrz";
+       version = "2.14.1";
+       sha256 = "0ms71pphgihmqsvh4v88xd99n8xg3nlz1wxxxcf2vgns32mcbz63";
        libraryHaskellDepends = [
          base containers deepseq random splitmix template-haskell
          transformers
@@ -16785,6 +16949,8 @@ self: {
        executableHaskellDepends = [ base random-fu ];
        description = "Randomness intuition trainer";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "Range" = callPackage
@@ -16871,6 +17037,40 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "Rasterific_0_7_5_3" = callPackage
+    ({ mkDerivation, base, bytestring, containers, dlist, FontyFruity
+     , free, JuicyPixels, mtl, primitive, transformers, vector
+     , vector-algorithms
+     }:
+     mkDerivation {
+       pname = "Rasterific";
+       version = "0.7.5.3";
+       sha256 = "164ivzwrla90baqz6gapmcmi1yg5bk0sczqv4xawx3l7dzkz8ghv";
+       libraryHaskellDepends = [
+         base bytestring containers dlist FontyFruity free JuicyPixels mtl
+         primitive transformers vector vector-algorithms
+       ];
+       description = "A pure haskell drawing engine";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "Rattus" = callPackage
+    ({ mkDerivation, base, Cabal, containers, ghc, simple-affine-space
+     }:
+     mkDerivation {
+       pname = "Rattus";
+       version = "0.3.1";
+       sha256 = "1sfjnfd3jsr095gkzxldb65ivxpyzsaphw2bv2f6svczhjc5b414";
+       setupHaskellDepends = [ base Cabal ];
+       libraryHaskellDepends = [
+         base containers ghc simple-affine-space
+       ];
+       testHaskellDepends = [ base containers ];
+       description = "A modal FRP language";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "ReadArgs" = callPackage
     ({ mkDerivation, base, hspec, system-filepath, text }:
      mkDerivation {
@@ -17117,16 +17317,24 @@ self: {
      }) {};
 
   "RtMidi" = callPackage
-    ({ mkDerivation, base }:
+    ({ mkDerivation, alsaLib, base, deepseq, pretty-simple, tasty
+     , tasty-hunit, unliftio-core, vector
+     }:
      mkDerivation {
        pname = "RtMidi";
-       version = "0.1.1.0";
-       sha256 = "09vs2y6zry4xak0gc6pc6xqinr9sv9z53hdiydxpn6ixam9s0g5r";
-       libraryHaskellDepends = [ base ];
+       version = "0.4.0.0";
+       sha256 = "075j6d7vmihyz33b5ikv2l0c0alnhjzy1wpnzdrca6l201vab2mw";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base deepseq unliftio-core vector ];
+       librarySystemDepends = [ alsaLib ];
+       executableHaskellDepends = [ base pretty-simple vector ];
+       testHaskellDepends = [ base tasty tasty-hunit vector ];
+       description = "Haskell wrapper for RtMidi, the lightweight, cross-platform MIDI I/O library";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {};
+     }) {inherit (pkgs) alsaLib;};
 
   "RxHaskell" = callPackage
     ({ mkDerivation, base, containers, stm, transformers }:
@@ -18190,6 +18398,17 @@ self: {
        broken = true;
      }) {};
 
+  "Shpadoinkle-debug" = callPackage
+    ({ mkDerivation, aeson, base, jsaddle, lens, text, unliftio }:
+     mkDerivation {
+       pname = "Shpadoinkle-debug";
+       version = "0.0.0.1";
+       sha256 = "1yvr3d40aa6sl3gpyr24a5hij63jm2p0jrx0kac7asjihvd6fk2g";
+       libraryHaskellDepends = [ aeson base jsaddle lens text unliftio ];
+       description = "Debugging tools for Shpadoinkle applications";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "Shpadoinkle-examples" = callPackage
     ({ mkDerivation, aeson, base, beam-core, beam-sqlite, bytestring
      , containers, exceptions, file-embed, lens, mtl
@@ -18693,8 +18912,8 @@ self: {
     ({ mkDerivation, attoparsec, base, extra, mtl, mwc-random, text }:
      mkDerivation {
        pname = "Spintax";
-       version = "0.3.4";
-       sha256 = "008b83nnjgpzjr4c2dk1vambzb78dwx59c5cq4p0s8ghp6xl9sk3";
+       version = "0.3.5";
+       sha256 = "1z5sv03h07bf8z6pzxsia9hgf879cmiqdajvx212dk47lysfnm8v";
        libraryHaskellDepends = [
          attoparsec base extra mtl mwc-random text
        ];
@@ -18811,8 +19030,6 @@ self: {
        ];
        description = "Another Haskell web framework for rapid development";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "Spock-digestive" = callPackage
@@ -19267,7 +19484,7 @@ self: {
        version = "0.1.4";
        sha256 = "0rpjd93lsqg3dqfjndm9l1nzyrbfs5nnvc61lmbmbhg0bcy0jms8";
        libraryHaskellDepends = [ base template-haskell ];
-       description = "TH implementation of effects.";
+       description = "TH implementation of effects";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -19501,8 +19718,8 @@ self: {
      }:
      mkDerivation {
        pname = "TeX-my-math";
-       version = "0.201.2.0";
-       sha256 = "1dg06lqh2x9smq6hbcn2gyh2qll9z7v4gbd1ipvf2isdwxc201vk";
+       version = "0.202.0.0";
+       sha256 = "0aiw7ag87kcwz47hasr0k79b9dvm0waf3j2qf5p7l2lld438chsb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -20137,8 +20354,8 @@ self: {
      }:
      mkDerivation {
        pname = "Unique";
-       version = "0.4.7.7";
-       sha256 = "05klzscyvqd67rcyhkbx046i860vpxlfzp52yalfqrlvyyfgg3m2";
+       version = "0.4.7.8";
+       sha256 = "0w82pa6r2a6969w251fbrx0sr1ws8mkg2lwdyjl4qjhl5s28k43i";
        libraryHaskellDepends = [
          base containers extra hashable unordered-containers
        ];
@@ -20483,8 +20700,8 @@ self: {
     ({ mkDerivation, base, bytestring, transformers, vector, vulkan }:
      mkDerivation {
        pname = "VulkanMemoryAllocator";
-       version = "0.3.2";
-       sha256 = "0f94lzb05v4myr1qrpklxhina0iiv7p7zfmjhf2fkd2q1bnffhdw";
+       version = "0.3.7";
+       sha256 = "1y2dmk60dvk8d9n16in98cmin5ckvdx3knwlfzcs0jl6vyh8n51n";
        libraryHaskellDepends = [
          base bytestring transformers vector vulkan
        ];
@@ -20848,12 +21065,12 @@ self: {
        platforms = stdenv.lib.platforms.none;
      }) {};
 
-  "Win32_2_8_5_0" = callPackage
+  "Win32_2_10_0_0" = callPackage
     ({ mkDerivation }:
      mkDerivation {
        pname = "Win32";
-       version = "2.8.5.0";
-       sha256 = "1hvbb9zwp84y5s5hxz7a3g3xqlgcbwrlhhxdprj5qqhkizzb3vai";
+       version = "2.10.0.0";
+       sha256 = "09g61dgw3xvg066qdydw7nxn8vk1nxxwzi1wwr19rkaxhz43149n";
        description = "A binding to Windows Win32 API";
        license = stdenv.lib.licenses.bsd3;
        platforms = stdenv.lib.platforms.none;
@@ -21159,8 +21376,8 @@ self: {
      }:
      mkDerivation {
        pname = "X11";
-       version = "1.9.1";
-       sha256 = "0gg6852mrlgl8zng1j84fismz7k81jr5fk92glgkscf8q6ryg0bm";
+       version = "1.9.2";
+       sha256 = "013yny4dwbs98kp7245j8dv81h4p1cdwn2rsf2hvhsplg6ixkc05";
        libraryHaskellDepends = [ base data-default ];
        librarySystemDepends = [
          libX11 libXext libXinerama libXrandr libXrender libXScrnSaver
@@ -21622,6 +21839,52 @@ self: {
        broken = true;
      }) {inherit (pkgs) readline;};
 
+  "Z-Data" = callPackage
+    ({ mkDerivation, base, case-insensitive, deepseq, ghc-prim
+     , hashable, hspec, hspec-discover, HUnit, integer-gmp, primitive
+     , QuickCheck, quickcheck-instances, scientific, tagged
+     , template-haskell, unordered-containers, word8
+     }:
+     mkDerivation {
+       pname = "Z-Data";
+       version = "0.1.3.1";
+       sha256 = "1iz8yszzxqssd1aqnslglj3wzzrljidflzrb1ywh25rd69sxvh19";
+       libraryHaskellDepends = [
+         base case-insensitive deepseq ghc-prim hashable integer-gmp
+         primitive QuickCheck scientific tagged template-haskell
+         unordered-containers
+       ];
+       libraryToolDepends = [ hspec-discover ];
+       testHaskellDepends = [
+         base hashable hspec HUnit integer-gmp primitive QuickCheck
+         quickcheck-instances scientific word8
+       ];
+       description = "Array, vector and text";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "Z-IO" = callPackage
+    ({ mkDerivation, base, bytestring, exceptions, ghc-prim, hashable
+     , hspec, hspec-discover, HUnit, libuv, primitive, QuickCheck
+     , quickcheck-instances, scientific, stm, time, word8, Z-Data, zlib
+     }:
+     mkDerivation {
+       pname = "Z-IO";
+       version = "0.1.1.2";
+       sha256 = "112gfs89dqpy0yfdqkxfid9fxfdq5zhfxjw38hzlpp1j862y8h7h";
+       libraryHaskellDepends = [
+         base exceptions ghc-prim primitive stm time Z-Data
+       ];
+       libraryPkgconfigDepends = [ libuv ];
+       libraryToolDepends = [ hspec-discover ];
+       testHaskellDepends = [
+         base bytestring hashable hspec HUnit primitive QuickCheck
+         quickcheck-instances scientific word8 Z-Data zlib
+       ];
+       description = "Simple and high performance IO toolkit for Haskell";
+       license = stdenv.lib.licenses.bsd3;
+     }) {inherit (pkgs) libuv;};
+
   "ZEBEDDE" = callPackage
     ({ mkDerivation, base, vect }:
      mkDerivation {
@@ -21971,25 +22234,26 @@ self: {
      }) {};
 
   "accelerate" = callPackage
-    ({ mkDerivation, ansi-terminal, ansi-wl-pprint, base, base-orphans
-     , bytestring, Cabal, cabal-doctest, constraints, containers
-     , cryptonite, deepseq, directory, doctest, exceptions, filepath
-     , ghc-prim, half, hashable, hashtables, hedgehog, lens, mtl, tasty
-     , tasty-expected-failure, tasty-hedgehog, tasty-hunit
-     , template-haskell, terminal-size, transformers, unique, unix
+    ({ mkDerivation, ansi-terminal, base, base-orphans, bytestring
+     , Cabal, cabal-doctest, containers, cryptonite, deepseq, directory
+     , doctest, exceptions, filepath, ghc-prim, half, hashable
+     , hashtables, hedgehog, lens, mtl, prettyprinter
+     , prettyprinter-ansi-terminal, primitive, tasty, template-haskell
+     , terminal-size, text, transformers, unique, unix
      , unordered-containers, vector
      }:
      mkDerivation {
        pname = "accelerate";
-       version = "1.2.0.1";
-       sha256 = "0vglmasqgq0h8fvm9z8l2b3sygqvix8vr6c3n357gkr2mpz6gq8h";
+       version = "1.3.0.0";
+       sha256 = "14md9fbxckgwpbkm7hdj95ny11w5b5cj103r8razg0aw2hgid5sb";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
-         ansi-terminal ansi-wl-pprint base base-orphans bytestring
-         constraints containers cryptonite deepseq directory exceptions
-         filepath ghc-prim half hashable hashtables hedgehog lens mtl tasty
-         tasty-expected-failure tasty-hedgehog tasty-hunit template-haskell
-         terminal-size transformers unique unix unordered-containers vector
+         ansi-terminal base base-orphans bytestring containers cryptonite
+         deepseq directory exceptions filepath ghc-prim half hashable
+         hashtables hedgehog lens mtl prettyprinter
+         prettyprinter-ansi-terminal primitive tasty template-haskell
+         terminal-size text transformers unique unix unordered-containers
+         vector
        ];
        testHaskellDepends = [ base doctest ];
        description = "An embedded language for accelerated array processing";
@@ -22019,7 +22283,7 @@ self: {
      }) {};
 
   "accelerate-bignum" = callPackage
-    ({ mkDerivation, accelerate, accelerate-io, accelerate-llvm
+    ({ mkDerivation, accelerate, accelerate-io-vector, accelerate-llvm
      , accelerate-llvm-native, accelerate-llvm-ptx, base, criterion
      , ghc-prim, hedgehog, llvm-hs-pure, mwc-random, tasty
      , tasty-hedgehog, template-haskell, vector, vector-th-unbox
@@ -22027,10 +22291,8 @@ self: {
      }:
      mkDerivation {
        pname = "accelerate-bignum";
-       version = "0.2.0.0";
-       sha256 = "0xhnd39fb17kb7q5z9z8svn8zlv6j1wxrbkv3vij4f1q2hkqkl0p";
-       revision = "1";
-       editedCabalFile = "0lfsmhky8shyy9xhm0j2as91vrmqqrrn9r0fsv2ljc4xjklg723r";
+       version = "0.3.0.0";
+       sha256 = "1xwqg3d2qilkfx8wmmhp2qq5cas3pnsrpyli3a9z0yxqamibxh33";
        libraryHaskellDepends = [
          accelerate accelerate-llvm accelerate-llvm-native
          accelerate-llvm-ptx base ghc-prim llvm-hs-pure template-haskell
@@ -22040,8 +22302,9 @@ self: {
          tasty tasty-hedgehog
        ];
        benchmarkHaskellDepends = [
-         accelerate accelerate-io accelerate-llvm-native accelerate-llvm-ptx
-         base criterion mwc-random vector vector-th-unbox wide-word
+         accelerate accelerate-io-vector accelerate-llvm-native
+         accelerate-llvm-ptx base criterion mwc-random vector
+         vector-th-unbox wide-word
        ];
        description = "Fixed-length large integer arithmetic for Accelerate";
        license = stdenv.lib.licenses.bsd3;
@@ -22057,8 +22320,8 @@ self: {
      }:
      mkDerivation {
        pname = "accelerate-blas";
-       version = "0.2.0.1";
-       sha256 = "00869y2zrh43sl0rap8bbgnzqdvrrxpc2qhzz0zdfasr3440py6k";
+       version = "0.3.0.0";
+       sha256 = "1ydym6fxvg1b5vx49r8dnn80spsq42ssbg4v01s1djklks054g7y";
        libraryHaskellDepends = [
          accelerate accelerate-llvm accelerate-llvm-native
          accelerate-llvm-ptx base blas-hs bytestring containers cublas cuda
@@ -22151,37 +22414,39 @@ self: {
 
   "accelerate-examples" = callPackage
     ({ mkDerivation, accelerate, accelerate-fft, accelerate-io
-     , accelerate-llvm-native, accelerate-llvm-ptx, ansi-wl-pprint, base
-     , binary, bmp, bytestring, bytestring-lexing, cereal
+     , accelerate-io-bmp, accelerate-io-repa, accelerate-io-vector
+     , accelerate-llvm-native, accelerate-llvm-ptx, ansi-wl-pprint
+     , array, base, binary, bmp, bytestring, bytestring-lexing, cereal
      , colour-accelerate, containers, criterion, criterion-measurement
      , directory, fclabels, filepath, gloss, gloss-accelerate
      , gloss-raster-accelerate, gloss-rendering, HUnit, lens-accelerate
-     , linear, linear-accelerate, matrix-market-attoparsec, mwc-random
-     , normaldistribution, QuickCheck, random, repa, repa-io, scientific
-     , test-framework, test-framework-hunit, test-framework-quickcheck2
-     , vector, vector-algorithms
+     , linear-accelerate, matrix-market-attoparsec, mwc-random
+     , mwc-random-accelerate, normaldistribution, QuickCheck, random
+     , repa, repa-io, scientific, test-framework, test-framework-hunit
+     , test-framework-quickcheck2, vector, vector-algorithms
      }:
      mkDerivation {
        pname = "accelerate-examples";
-       version = "1.2.0.1";
-       sha256 = "0hzk6zas03yhh8xjjrh772knhbvisl0r6q10y4mcq552bcfd8yvj";
+       version = "1.3.0.0";
+       sha256 = "145m2bi8bini6z2jg6g99vnsc3m7pqz4dc9l34j8fg40fw65rwi0";
        configureFlags = [ "-f-opencl" ];
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          accelerate accelerate-llvm-native accelerate-llvm-ptx
          ansi-wl-pprint base containers criterion directory fclabels HUnit
-         linear mwc-random QuickCheck test-framework test-framework-hunit
+         QuickCheck test-framework test-framework-hunit
          test-framework-quickcheck2
        ];
        executableHaskellDepends = [
-         accelerate accelerate-fft accelerate-io base binary bmp bytestring
-         bytestring-lexing cereal colour-accelerate containers criterion
-         criterion-measurement directory fclabels filepath gloss
+         accelerate accelerate-fft accelerate-io accelerate-io-bmp
+         accelerate-io-repa accelerate-io-vector array base binary bmp
+         bytestring bytestring-lexing cereal colour-accelerate containers
+         criterion criterion-measurement directory fclabels filepath gloss
          gloss-accelerate gloss-raster-accelerate gloss-rendering
          lens-accelerate linear-accelerate matrix-market-attoparsec
-         mwc-random normaldistribution random repa repa-io scientific vector
-         vector-algorithms
+         mwc-random mwc-random-accelerate normaldistribution random repa
+         repa-io scientific vector vector-algorithms
        ];
        description = "Examples using the Accelerate library";
        license = stdenv.lib.licenses.bsd3;
@@ -22197,10 +22462,8 @@ self: {
      }:
      mkDerivation {
        pname = "accelerate-fft";
-       version = "1.2.0.0";
-       sha256 = "19p9d59vdd3nq97xjprlb6fz2ajlk6gl37cdyvrm9inag4nnk6lp";
-       revision = "2";
-       editedCabalFile = "096vhbwbkyvjx8znjqnb3lz43kzqq0x7kcfv1gmmbjjrcmwaj2y5";
+       version = "1.3.0.0";
+       sha256 = "1a7cwzbs8r3rvaymrq2kfx83lqb3i7wz0gmz3ppz59f40rxn974x";
        libraryHaskellDepends = [
          accelerate accelerate-llvm accelerate-llvm-native
          accelerate-llvm-ptx base bytestring carray containers cuda cufft
@@ -22279,25 +22542,119 @@ self: {
      }) {};
 
   "accelerate-io" = callPackage
-    ({ mkDerivation, accelerate, array, base, bmp, bytestring, hedgehog
-     , primitive, repa, tasty, tasty-hedgehog, vector
-     }:
+    ({ mkDerivation, accelerate, base }:
      mkDerivation {
        pname = "accelerate-io";
-       version = "1.2.0.0";
-       sha256 = "13pqqsd5pbxmgsxnp9w141mnwscnlmbhxaz6f5jx4ssipnma2pwf";
-       revision = "2";
-       editedCabalFile = "0w8y40p71c6c7cj49n4kanwmsa53s2nydigiiidqp93yxhw0virq";
+       version = "1.3.0.0";
+       sha256 = "048md40pfacxa1mbzncybxzwp9fzmsaq8i94pd8ai677n2zyw5cg";
+       libraryHaskellDepends = [ accelerate base ];
+       description = "Convert between Accelerate arrays and raw pointers";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "accelerate-io-JuicyPixels" = callPackage
+    ({ mkDerivation, accelerate, accelerate-io-vector, base
+     , JuicyPixels, vector
+     }:
+     mkDerivation {
+       pname = "accelerate-io-JuicyPixels";
+       version = "0.1.0.0";
+       sha256 = "0rr43lwmc16r99si1s4nimxxydlsxb6ck45absrxy6vnkln7x185";
        libraryHaskellDepends = [
-         accelerate array base bmp bytestring primitive repa vector
+         accelerate accelerate-io-vector base JuicyPixels vector
        ];
+       description = "Convert between Accelerate arrays and JuicyPixels images";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "accelerate-io-array" = callPackage
+    ({ mkDerivation, accelerate, array, base, hedgehog, primitive
+     , tasty, tasty-hedgehog
+     }:
+     mkDerivation {
+       pname = "accelerate-io-array";
+       version = "0.1.0.0";
+       sha256 = "1gcxd4m3h1xr8ia8z7c8sxznm90h2q3mzwhi5vsv8s1gh7sdym9m";
+       libraryHaskellDepends = [ accelerate array base primitive ];
        testHaskellDepends = [
-         accelerate array base hedgehog tasty tasty-hedgehog vector
+         accelerate array base hedgehog tasty tasty-hedgehog
        ];
-       description = "Read and write Accelerate arrays in various formats";
+       description = "Convert between Accelerate and array";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "accelerate-io-bmp" = callPackage
+    ({ mkDerivation, accelerate, accelerate-io-bytestring, base, bmp }:
+     mkDerivation {
+       pname = "accelerate-io-bmp";
+       version = "0.1.0.0";
+       sha256 = "0x7bkn4j7s9dzlfk4q1lh6fyd4bir1zkm4x37c65nl9g86154sc8";
+       libraryHaskellDepends = [
+         accelerate accelerate-io-bytestring base bmp
+       ];
+       description = "Convert between Accelerate arrays and BMP images";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "accelerate-io-bytestring" = callPackage
+    ({ mkDerivation, accelerate, base, bytestring }:
+     mkDerivation {
+       pname = "accelerate-io-bytestring";
+       version = "0.1.0.0";
+       sha256 = "15j42ahdcqpy4xbpp1xibfbjcrijy0hpfxp4k53qkb9bcqaknyq1";
+       libraryHaskellDepends = [ accelerate base bytestring ];
+       description = "Convert between Accelerate and ByteString";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "accelerate-io-cereal" = callPackage
+    ({ mkDerivation, accelerate, accelerate-io-bytestring, base, cereal
+     }:
+     mkDerivation {
+       pname = "accelerate-io-cereal";
+       version = "0.1.0.0";
+       sha256 = "13im1kmrd2yjxxrmpzp2030jhhq9fm9xa76yl11xwpd82z10a2pl";
+       libraryHaskellDepends = [
+         accelerate accelerate-io-bytestring base cereal
+       ];
+       description = "Binary serialisation of Accelerate arrays using cereal";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "accelerate-io-repa" = callPackage
+    ({ mkDerivation, accelerate, base, repa }:
+     mkDerivation {
+       pname = "accelerate-io-repa";
+       version = "0.1.0.0";
+       sha256 = "084gzvfwz6prwra5393lfm5hgvssxwij0cdf24fq5nahzn7x2wrp";
+       libraryHaskellDepends = [ accelerate base repa ];
+       description = "Convert between Accelerate and Repa arrays";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "accelerate-io-vector" = callPackage
+    ({ mkDerivation, accelerate, base, hedgehog, primitive, tasty
+     , tasty-hedgehog, vector
+     }:
+     mkDerivation {
+       pname = "accelerate-io-vector";
+       version = "0.1.0.0";
+       sha256 = "1nh7n3qj4csxyzvkhkvfr9bii2vmqky51f32pz3bphrwfvhzdrri";
+       libraryHaskellDepends = [ accelerate base primitive vector ];
+       testHaskellDepends = [
+         accelerate base hedgehog tasty tasty-hedgehog vector
+       ];
+       description = "Convert between Accelerate and vector";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "accelerate-kullback-liebler" = callPackage
@@ -22307,8 +22664,10 @@ self: {
      }:
      mkDerivation {
        pname = "accelerate-kullback-liebler";
-       version = "0.1.2.0";
-       sha256 = "16psmn0wakrrym8m98ing4nrh8r7qvbn04b28sicl5jdbfhg1fdn";
+       version = "0.1.2.1";
+       sha256 = "1pvgm5w8m7226wa139h49fd0f5bsrz3a7x30wx3mzjn80acgsm63";
+       revision = "1";
+       editedCabalFile = "1255a274j1ssiy934kl507giyv6zjmwiipqfj72gjik6ss0ih2vz";
        libraryHaskellDepends = [ accelerate base mwc-random-accelerate ];
        testHaskellDepends = [
          accelerate accelerate-llvm-native accelerate-llvm-ptx base
@@ -22327,20 +22686,19 @@ self: {
      }) {};
 
   "accelerate-llvm" = callPackage
-    ({ mkDerivation, abstract-deque, accelerate, base, bytestring
-     , chaselev-deque, containers, data-default-class, deepseq
-     , directory, dlist, exceptions, filepath, llvm-hs, llvm-hs-pure
-     , mtl, mwc-random, primitive, template-haskell
-     , unordered-containers, vector
+    ({ mkDerivation, accelerate, base, bytestring, constraints
+     , containers, data-default-class, deepseq, directory, dlist
+     , exceptions, filepath, llvm-hs, llvm-hs-pure, mtl, primitive
+     , template-haskell, unordered-containers, vector
      }:
      mkDerivation {
        pname = "accelerate-llvm";
-       version = "1.2.0.1";
-       sha256 = "1cv5s7fgkdd3m95vy2rrq2kvzyzxx6vwgsc5nqcmfdp00z8znjhk";
+       version = "1.3.0.0";
+       sha256 = "1fjjfjav11s6grwl6ihqdrzx738bwki0l25qlp4zzz2hi2440qbp";
        libraryHaskellDepends = [
-         abstract-deque accelerate base bytestring chaselev-deque containers
+         accelerate base bytestring constraints containers
          data-default-class deepseq directory dlist exceptions filepath
-         llvm-hs llvm-hs-pure mtl mwc-random primitive template-haskell
+         llvm-hs llvm-hs-pure mtl primitive template-haskell
          unordered-containers vector
        ];
        description = "Accelerate backend component generating LLVM IR";
@@ -22351,19 +22709,19 @@ self: {
 
   "accelerate-llvm-native" = callPackage
     ({ mkDerivation, accelerate, accelerate-llvm, base, bytestring
-     , c2hs, Cabal, cereal, containers, directory, dlist, filepath, ghc
-     , ghc-prim, hashable, libffi, llvm-hs, llvm-hs-pure, lockfree-queue
-     , mtl, template-haskell, time, unique, unix, vector
+     , c2hs, cereal, containers, deepseq, directory, dlist, filepath
+     , ghc, ghc-prim, hashable, libffi, llvm-hs, llvm-hs-pure
+     , lockfree-queue, mtl, template-haskell, unique, unix, vector
      }:
      mkDerivation {
        pname = "accelerate-llvm-native";
-       version = "1.2.0.1";
-       sha256 = "0sml5rj3dnxlv14i4xbs1sadnprjga1iws7fl7sxkyjzxqc04vrj";
+       version = "1.3.0.0";
+       sha256 = "1x4wfbp83ppzknd98k2ad160a8kdqh96qqmyfzdqyvy44iskxcn6";
        libraryHaskellDepends = [
-         accelerate accelerate-llvm base bytestring Cabal cereal containers
-         directory dlist filepath ghc ghc-prim hashable libffi llvm-hs
-         llvm-hs-pure lockfree-queue mtl template-haskell time unique unix
-         vector
+         accelerate accelerate-llvm base bytestring cereal containers
+         deepseq directory dlist filepath ghc ghc-prim hashable libffi
+         llvm-hs llvm-hs-pure lockfree-queue mtl template-haskell unique
+         unix vector
        ];
        libraryToolDepends = [ c2hs ];
        testHaskellDepends = [ accelerate base ];
@@ -22376,17 +22734,18 @@ self: {
   "accelerate-llvm-ptx" = callPackage
     ({ mkDerivation, accelerate, accelerate-llvm, base, bytestring
      , containers, cuda, deepseq, directory, dlist, file-embed, filepath
-     , hashable, llvm-hs, llvm-hs-pure, mtl, nvvm, pretty, process
-     , template-haskell, time, unordered-containers
+     , ghc-heap, hashable, llvm-hs, llvm-hs-pure, mtl, nvvm, pretty
+     , process, template-haskell, unordered-containers
      }:
      mkDerivation {
        pname = "accelerate-llvm-ptx";
-       version = "1.2.0.1";
-       sha256 = "0c9hl19v4si0lnah4l63kqhpxz16zy0wi3cg28gz00mxzgqilivs";
+       version = "1.3.0.0";
+       sha256 = "0bb7p67dv5csbblnaxbm7hkq8y2qknz0yd1f0rav29igsv3a9rfx";
        libraryHaskellDepends = [
          accelerate accelerate-llvm base bytestring containers cuda deepseq
-         directory dlist file-embed filepath hashable llvm-hs llvm-hs-pure
-         mtl nvvm pretty process template-haskell time unordered-containers
+         directory dlist file-embed filepath ghc-heap hashable llvm-hs
+         llvm-hs-pure mtl nvvm pretty process template-haskell
+         unordered-containers
        ];
        testHaskellDepends = [ accelerate base ];
        description = "Accelerate backend for NVIDIA GPUs";
@@ -23806,7 +24165,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "aeson_1_5_1_0" = callPackage
+  "aeson_1_5_2_0" = callPackage
     ({ mkDerivation, attoparsec, base, base-compat
      , base-compat-batteries, base-orphans, base16-bytestring
      , bytestring, containers, deepseq, Diff, directory, dlist, filepath
@@ -23818,8 +24177,8 @@ self: {
      }:
      mkDerivation {
        pname = "aeson";
-       version = "1.5.1.0";
-       sha256 = "0xz27czzvd1ywzv4wkc7gj8pg8jynbkqrybgdg6j0ms5sappc6d0";
+       version = "1.5.2.0";
+       sha256 = "0awk3dss79mmcxpy147mijnd9icvlnm77bq248ibbbzx9y99hdfd";
        libraryHaskellDepends = [
          attoparsec base base-compat-batteries bytestring containers deepseq
          dlist ghc-prim hashable primitive scientific tagged
@@ -23839,6 +24198,39 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "aeson_1_5_4_0" = callPackage
+    ({ mkDerivation, attoparsec, base, base-compat
+     , base-compat-batteries, base-orphans, base16-bytestring
+     , bytestring, containers, data-fix, deepseq, Diff, directory, dlist
+     , filepath, generic-deriving, ghc-prim, hashable, hashable-time
+     , integer-logarithms, primitive, QuickCheck, quickcheck-instances
+     , scientific, strict, tagged, tasty, tasty-golden, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, th-abstraction, these
+     , time, time-compat, unordered-containers, uuid-types, vector
+     }:
+     mkDerivation {
+       pname = "aeson";
+       version = "1.5.4.0";
+       sha256 = "17qgrli6xy3cds5k9ijdsmnl89h48w89mgqqy6kfah1bjlzs3l40";
+       libraryHaskellDepends = [
+         attoparsec base base-compat-batteries bytestring containers
+         data-fix deepseq dlist ghc-prim hashable primitive scientific
+         strict tagged template-haskell text th-abstraction these time
+         time-compat unordered-containers uuid-types vector
+       ];
+       testHaskellDepends = [
+         attoparsec base base-compat base-orphans base16-bytestring
+         bytestring containers data-fix Diff directory dlist filepath
+         generic-deriving ghc-prim hashable hashable-time integer-logarithms
+         QuickCheck quickcheck-instances scientific strict tagged tasty
+         tasty-golden tasty-hunit tasty-quickcheck template-haskell text
+         these time time-compat unordered-containers uuid-types vector
+       ];
+       description = "Fast JSON parsing and encoding";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "aeson-applicative" = callPackage
     ({ mkDerivation, aeson, base, text, unordered-containers }:
      mkDerivation {
@@ -24006,15 +24398,18 @@ self: {
      }) {};
 
   "aeson-deriving" = callPackage
-    ({ mkDerivation, aeson, base, hedgehog, text, unordered-containers
+    ({ mkDerivation, aeson, base, hedgehog, regex-tdfa, text
+     , unordered-containers
      }:
      mkDerivation {
        pname = "aeson-deriving";
-       version = "0.1.0.0";
-       sha256 = "18zdncbvhlpa5v6yvsj30fyrh44hchaps8jjh93z6ji08cb6wdni";
-       libraryHaskellDepends = [ aeson base text unordered-containers ];
+       version = "0.1.1.1";
+       sha256 = "1yqiw8imp30gv3jij4f724yi8mmf6w8fn84kmq9r7yjn7scfz4dj";
+       libraryHaskellDepends = [
+         aeson base regex-tdfa text unordered-containers
+       ];
        testHaskellDepends = [
-         aeson base hedgehog text unordered-containers
+         aeson base hedgehog regex-tdfa text unordered-containers
        ];
        description = "data types for compositional, type-directed serialization";
        license = stdenv.lib.licenses.mit;
@@ -24080,8 +24475,8 @@ self: {
        pname = "aeson-extra";
        version = "0.4.1.3";
        sha256 = "1k15vkyf635nh904diyg931ziwdngikvp7c9c339pys3savf5qr2";
-       revision = "3";
-       editedCabalFile = "04j4af350hfyl01dwxhn6051cgxsaj46f3vy55d1kbwg1ajffdqq";
+       revision = "4";
+       editedCabalFile = "0gwjgxpgq7lncylfpccikmn3jk2jmz54vsgjialhwa26iv9f9n4a";
        libraryHaskellDepends = [
          aeson aeson-compat attoparsec attoparsec-iso8601 base
          base-compat-batteries bytestring containers deepseq exceptions
@@ -24203,6 +24598,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "aeson-helper" = callPackage
+    ({ mkDerivation, aeson, base, text, unordered-containers, vector }:
+     mkDerivation {
+       pname = "aeson-helper";
+       version = "0.1.0.0";
+       sha256 = "0s4gq827i2wyflcaxbhlr8f8svlw8szzmwax9d7vnxk9wy9fw8w0";
+       libraryHaskellDepends = [
+         aeson base text unordered-containers vector
+       ];
+       description = "Aeson helper func";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "aeson-injector" = callPackage
     ({ mkDerivation, aeson, base, bifunctors, containers, deepseq
      , hashable, HUnit, lens, QuickCheck, quickcheck-text, scientific
@@ -24211,8 +24619,8 @@ self: {
      }:
      mkDerivation {
        pname = "aeson-injector";
-       version = "1.1.3.0";
-       sha256 = "0188g4z204dw8gyza5hn3xljwmvfk9jq1wq4gnh43894nbrcm4ji";
+       version = "1.1.4.0";
+       sha256 = "1q8wv9xdw8nw504dxplb3ibskfjqbawmv2694sjwg5cvi8d7fvkn";
        libraryHaskellDepends = [
          aeson base bifunctors deepseq hashable lens servant-docs swagger2
          text unordered-containers
@@ -24474,6 +24882,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "aeson-result" = callPackage
+    ({ mkDerivation, aeson, aeson-helper, base, text }:
+     mkDerivation {
+       pname = "aeson-result";
+       version = "0.1.0.0";
+       sha256 = "10bnzh7vlh42sip0z7mvx5jxrsi7p2s3vqy55pfg2pb17czzly2y";
+       libraryHaskellDepends = [ aeson aeson-helper base text ];
+       description = "API Result for aeson";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "aeson-schema" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, containers
      , directory, fail, filepath, ghc-prim, hashable, hint, HUnit, mtl
@@ -24507,46 +24926,53 @@ self: {
 
   "aeson-schemas" = callPackage
     ({ mkDerivation, aeson, base, bytestring, first-class-families
-     , megaparsec, raw-strings-qq, tasty, tasty-golden, template-haskell
-     , text, th-test-utils, unordered-containers
+     , megaparsec, QuickCheck, raw-strings-qq, tasty, tasty-golden
+     , tasty-hunit, tasty-quickcheck, template-haskell, text
+     , th-test-utils, unordered-containers
      }:
      mkDerivation {
        pname = "aeson-schemas";
-       version = "1.0.3";
-       sha256 = "0fmhqibw6mw9shxh94riqq465njbgjsv539xb6sx7qpkhcck2csi";
-       revision = "3";
-       editedCabalFile = "01vp89mjl7jl80mdl9hqmiz3vs7fjl5mf1p64d3g352xqak3mr7d";
+       version = "1.2.0";
+       sha256 = "1fc8zzpkq6alkbl0v473h8diin8lqpliq6d3bsrh5bfny8yapvpk";
+       revision = "1";
+       editedCabalFile = "1kcsnpb4img9a122yz9lf7s0ils7ppbjyknbck2m8ip977kv04dp";
        libraryHaskellDepends = [
          aeson base bytestring first-class-families megaparsec
          template-haskell text unordered-containers
        ];
        testHaskellDepends = [
-         aeson base bytestring first-class-families megaparsec
-         raw-strings-qq tasty tasty-golden template-haskell text
-         th-test-utils unordered-containers
+         aeson base bytestring first-class-families megaparsec QuickCheck
+         raw-strings-qq tasty tasty-golden tasty-hunit tasty-quickcheck
+         template-haskell text th-test-utils unordered-containers
        ];
        description = "Easily consume JSON data on-demand with type-safety";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "aeson-schemas_1_2_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, first-class-families
-     , megaparsec, QuickCheck, raw-strings-qq, tasty, tasty-golden
-     , tasty-hunit, tasty-quickcheck, template-haskell, text
+  "aeson-schemas_1_3_0" = callPackage
+    ({ mkDerivation, aeson, aeson-qq, base, criterion, deepseq
+     , first-class-families, hashable, hint, interpolate, megaparsec
+     , QuickCheck, raw-strings-qq, tasty, tasty-golden, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, th-orphans
      , th-test-utils, unordered-containers
      }:
      mkDerivation {
        pname = "aeson-schemas";
-       version = "1.2.0";
-       sha256 = "1fc8zzpkq6alkbl0v473h8diin8lqpliq6d3bsrh5bfny8yapvpk";
+       version = "1.3.0";
+       sha256 = "03x9nhbj3ksiy5zg1a4mna279kp26f35zwv7h8iqmzgf59liklbc";
        libraryHaskellDepends = [
-         aeson base bytestring first-class-families megaparsec
+         aeson base first-class-families hashable megaparsec
          template-haskell text unordered-containers
        ];
        testHaskellDepends = [
-         aeson base bytestring first-class-families megaparsec QuickCheck
-         raw-strings-qq tasty tasty-golden tasty-hunit tasty-quickcheck
-         template-haskell text th-test-utils unordered-containers
+         aeson aeson-qq base deepseq first-class-families hashable hint
+         interpolate megaparsec QuickCheck raw-strings-qq tasty tasty-golden
+         tasty-hunit tasty-quickcheck template-haskell text th-orphans
+         th-test-utils unordered-containers
+       ];
+       benchmarkHaskellDepends = [
+         aeson base criterion deepseq first-class-families hashable
+         megaparsec template-haskell text th-test-utils unordered-containers
        ];
        description = "Easily consume JSON data on-demand with type-safety";
        license = stdenv.lib.licenses.bsd3;
@@ -24702,8 +25128,8 @@ self: {
      }:
      mkDerivation {
        pname = "aeson-value-parser";
-       version = "0.19";
-       sha256 = "1v8s1f0zxhvf0r0cr800x363361g7il2wmbah04kr1vl376ydcjy";
+       version = "0.19.2.1";
+       sha256 = "1hv1h0kckjy98l1vd21z1mr6cyg23xzilzs8ppri8b6k731w1bwx";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring hashable megaparsec mtl scientific
          text text-builder transformers unordered-containers vector
@@ -24727,19 +25153,19 @@ self: {
      }) {};
 
   "aeson-with" = callPackage
-    ({ mkDerivation, aeson, base, hashmap, lens, lens-aeson, scientific
-     , text, unordered-containers, vector
+    ({ mkDerivation, aeson, base, lens, lens-aeson, scientific, text
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "aeson-with";
-       version = "0.0.1.0";
-       sha256 = "05xhbcfym586qb0giwr9rayqgyp25bc026kwbn7x5ln4nmzp2x9n";
+       version = "0.1.2.0";
+       sha256 = "0zj8jjsq26i6k8m3zfszpjxnnkar3gmvdw1adl9rxlgha2v5kfz8";
        libraryHaskellDepends = [
-         aeson base hashmap lens lens-aeson scientific text
-         unordered-containers vector
+         aeson base lens lens-aeson scientific text unordered-containers
+         vector
        ];
        description = "withXField combinators for aeson";
-       license = stdenv.lib.licenses.bsd3;
+       license = stdenv.lib.licenses.mit;
      }) {};
 
   "aeson-yak" = callPackage
@@ -24778,6 +25204,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "aeson-yaml_1_1_0_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, string-qq, tasty
+     , tasty-discover, tasty-hunit, text, unordered-containers, vector
+     , yaml
+     }:
+     mkDerivation {
+       pname = "aeson-yaml";
+       version = "1.1.0.0";
+       sha256 = "1kyrh2w3qpzwm7kpb4rkrzi22kqqz1vcjw1f59wdkl8a5hffkv6y";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring text unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring string-qq tasty tasty-discover tasty-hunit
+         unordered-containers yaml
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Output any Aeson value as YAML (pure Haskell library)";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "affection" = callPackage
     ({ mkDerivation, base, bytestring, clock, containers, glib, linear
      , monad-loops, monad-parallel, mtl, OpenGL, sdl2, stm, text, uuid
@@ -25398,8 +25848,8 @@ self: {
      }:
      mkDerivation {
        pname = "alarmclock";
-       version = "0.7.0.4";
-       sha256 = "0am8q26yj29k82y9bsgrlqxam1wllzdnxjbwqx4cgmjkzr7x802j";
+       version = "0.7.0.5";
+       sha256 = "0197phsc4rn5mn155hbmxplxi2ymra1x6lxq16xs6a8zrk4gfkj9";
        libraryHaskellDepends = [
          async base clock stm time unbounded-delays
        ];
@@ -25480,8 +25930,8 @@ self: {
      }:
      mkDerivation {
        pname = "alex-meta";
-       version = "0.3.0.11";
-       sha256 = "0pb6m2h9r3j71iy8ch8kgvssblidlr6r7k12fa1q2v7wi5q2mq91";
+       version = "0.3.0.12";
+       sha256 = "0s0yhkl0ymr50agqnsbscw8926jk4044n6scw086ylhcijx3qmxa";
        libraryHaskellDepends = [
          array base containers haskell-src-meta QuickCheck template-haskell
        ];
@@ -25539,6 +25989,28 @@ self: {
        broken = true;
      }) {};
 
+  "alfred-margaret" = callPackage
+    ({ mkDerivation, base, containers, deepseq, hashable, hspec
+     , hspec-expectations, primitive, QuickCheck, quickcheck-instances
+     , text, vector
+     }:
+     mkDerivation {
+       pname = "alfred-margaret";
+       version = "1.0.0.0";
+       sha256 = "0dapvcxwwd6ylyqxfjf58jink2rh9i6k1lw1ii6j8jb28qfvy400";
+       libraryHaskellDepends = [
+         base containers deepseq hashable primitive text vector
+       ];
+       testHaskellDepends = [
+         base deepseq hspec hspec-expectations QuickCheck
+         quickcheck-instances text
+       ];
+       description = "Fast Aho-Corasick string searching";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "alg" = callPackage
     ({ mkDerivation, base, dual, util }:
      mkDerivation {
@@ -25638,6 +26110,24 @@ self: {
        broken = true;
      }) {};
 
+  "algebra-driven-design" = callPackage
+    ({ mkDerivation, base, bytestring, containers, dlist, file-embed
+     , generic-data, hashable, JuicyPixels, monoid-subclasses
+     , monoidal-containers, mtl, multiset, QuickCheck, quickspec
+     }:
+     mkDerivation {
+       pname = "algebra-driven-design";
+       version = "0.1.1.1";
+       sha256 = "0dp622a70biscjh1r0yyr9mz65g8p2wz60jrzrq8yhs1y4gsigs0";
+       libraryHaskellDepends = [
+         base bytestring containers dlist file-embed generic-data hashable
+         JuicyPixels monoid-subclasses monoidal-containers mtl multiset
+         QuickCheck quickspec
+       ];
+       description = "Companion library for the book Algebra-Driven Design by Sandy Maguire";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "algebra-sql" = callPackage
     ({ mkDerivation, aeson, algebra-dag, ansi-wl-pprint, base
      , bytestring, containers, Decimal, dlist, errors, fgl, filepath
@@ -25685,6 +26175,8 @@ self: {
        pname = "algebraic-classes";
        version = "0.9.4";
        sha256 = "06q0vzixc5dz98ia5ii862ryd9nlfinnmly2l5br8rixsbnks82s";
+       revision = "1";
+       editedCabalFile = "0w3845hl7cppdk3zvhmz0zic7sbcklfircx97wf9dhh40q3qdcmi";
        libraryHaskellDepends = [ base syb template-haskell ];
        description = "Conversions between algebraic classes and F-algebras";
        license = stdenv.lib.licenses.bsd3;
@@ -25861,6 +26353,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "ally-invest" = callPackage
+    ({ mkDerivation, aeson, authenticate-oauth, base, bytestring
+     , http-client, http-client-tls, safe, text, time
+     }:
+     mkDerivation {
+       pname = "ally-invest";
+       version = "0.1.0.0";
+       sha256 = "0n6vz0xd4y4div0p63mnbpng2dqwrsmrdhs25r10xw2wc2bznl79";
+       libraryHaskellDepends = [
+         aeson authenticate-oauth base bytestring http-client
+         http-client-tls safe text time
+       ];
+       testHaskellDepends = [
+         aeson authenticate-oauth base bytestring http-client
+         http-client-tls safe text time
+       ];
+       description = "Ally Invest integration library";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "almost-fix" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -28819,33 +29331,6 @@ self: {
      }:
      mkDerivation {
        pname = "amqp";
-       version = "0.19.1";
-       sha256 = "1802gngl74niszw355caf6x41ayfvyg2hpbckgshp7rlhfqdjabj";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base binary bytestring clock connection containers
-         data-binary-ieee754 monad-control network network-uri split stm
-         text vector
-       ];
-       executableHaskellDepends = [ base containers xml ];
-       testHaskellDepends = [
-         base binary bytestring clock connection containers
-         data-binary-ieee754 hspec hspec-expectations network network-uri
-         split stm text vector
-       ];
-       description = "Client library for AMQP servers (currently only RabbitMQ)";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "amqp_0_20_0" = callPackage
-    ({ mkDerivation, base, binary, bytestring, clock, connection
-     , containers, data-binary-ieee754, hspec, hspec-expectations
-     , monad-control, network, network-uri, split, stm, text, vector
-     , xml
-     }:
-     mkDerivation {
-       pname = "amqp";
        version = "0.20.0";
        sha256 = "1vi8kccvvnym8v4cnsghkiicbjzvkbc7binr12priqmvwvis34rv";
        isLibrary = true;
@@ -28863,7 +29348,6 @@ self: {
        ];
        description = "Client library for AMQP servers (currently only RabbitMQ)";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "amqp-conduit" = callPackage
@@ -28888,6 +29372,24 @@ self: {
        broken = true;
      }) {};
 
+  "amqp-streamly" = callPackage
+    ({ mkDerivation, amqp, base, bytestring, hspec, process, streamly
+     , testcontainers, text
+     }:
+     mkDerivation {
+       pname = "amqp-streamly";
+       version = "0.2.0";
+       sha256 = "0f6w574pq9nl4iq6di99cip4sxn62yrwpjqc22nwlvbqr6bgl79f";
+       libraryHaskellDepends = [ amqp base streamly text ];
+       testHaskellDepends = [
+         amqp base bytestring hspec process streamly testcontainers text
+       ];
+       description = "A simple streamly wrapper for amqp";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "amqp-utils" = callPackage
     ({ mkDerivation, amqp, base, bytestring, connection, containers
      , data-default-class, directory, hinotify, magic, network, process
@@ -28895,8 +29397,8 @@ self: {
      }:
      mkDerivation {
        pname = "amqp-utils";
-       version = "0.4.4.0";
-       sha256 = "07zpmq9sx6lmnma4dxxph0jficghrlfbb568frh3d6fbdiqgmfgl";
+       version = "0.4.4.1";
+       sha256 = "1vs0p7pc6z9mfjd2vns66wnhl8v1n9rbgabyjw0v832m2pwizzmj";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -28904,7 +29406,7 @@ self: {
          directory hinotify magic network process text time tls unix
          utf8-string x509-system
        ];
-       description = "Generic Haskell AMQP tools";
+       description = "AMQP toolset for the command line";
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
@@ -29469,6 +29971,20 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "ansi-terminal_0_11" = callPackage
+    ({ mkDerivation, base, colour }:
+     mkDerivation {
+       pname = "ansi-terminal";
+       version = "0.11";
+       sha256 = "14rp62c7y79n9dmmi7m0l9n3mcq6dh331b4yyyrivm5da6g1nqf6";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base colour ];
+       description = "Simple ANSI terminal support, with Windows compatibility";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "ansi-terminal-game" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, bytestring, cereal
      , clock, exceptions, hspec, linebreak, mintty, mtl, QuickCheck
@@ -29501,8 +30017,8 @@ self: {
        pname = "ansi-wl-pprint";
        version = "0.6.9";
        sha256 = "1b2fg8px98dzbaqyns10kvs8kn6cl1hdq5wb9saz40izrpkyicm7";
-       revision = "1";
-       editedCabalFile = "0bb5fzjjc00932pny1fql40dmpmikfqzbrbmpwr09bfw9aynvzgn";
+       revision = "2";
+       editedCabalFile = "1xrv66v5hqchjhj8a0g3awy1qpsswk2jqb4w4yh3mm1py5s0dlr0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ ansi-terminal base ];
@@ -29681,32 +30197,6 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-core";
-       version = "7.4.5";
-       sha256 = "1hrjq5vr5r12hfin3qb5q5mh1psldi2x9k4hg0yrx112kffvp45c";
-       libraryHaskellDepends = [
-         aeson amazonka amazonka-core base bytestring exceptions
-         generic-lens http-client http-types lens mtl resourcet text
-         transformers unliftio-core
-       ];
-       testHaskellDepends = [
-         aeson aeson-lens amazonka amazonka-core base bytestring exceptions
-         generic-lens hedgehog hspec http-client http-types
-         hw-hspec-hedgehog lens mtl resourcet scientific text transformers
-         unliftio-core
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "antiope-core_7_5_1" = callPackage
-    ({ mkDerivation, aeson, aeson-lens, amazonka, amazonka-core, base
-     , bytestring, exceptions, generic-lens, hedgehog, hspec
-     , hspec-discover, http-client, http-types, hw-hspec-hedgehog, lens
-     , mtl, resourcet, scientific, text, transformers, unliftio-core
-     }:
-     mkDerivation {
-       pname = "antiope-core";
        version = "7.5.1";
        sha256 = "068dsdag8bng2ddzr0vxipmzrfa5x3jq80pmrmc0l86bjvnlsdjr";
        libraryHaskellDepends = [
@@ -29723,7 +30213,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "antiope-dynamodb" = callPackage
@@ -29733,30 +30222,6 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-dynamodb";
-       version = "7.4.5";
-       sha256 = "0zv5r76vg31ybfjl56kli25knrv52z7cv25wzgk8sm6vywn1axif";
-       libraryHaskellDepends = [
-         aeson amazonka amazonka-core amazonka-dynamodb antiope-core base
-         generic-lens lens text unliftio-core unordered-containers
-       ];
-       testHaskellDepends = [
-         amazonka amazonka-core amazonka-dynamodb antiope-core base
-         generic-lens lens text unliftio-core unordered-containers
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
-       license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "antiope-dynamodb_7_5_1" = callPackage
-    ({ mkDerivation, aeson, amazonka, amazonka-core, amazonka-dynamodb
-     , antiope-core, base, generic-lens, hspec-discover, lens, text
-     , unliftio-core, unordered-containers
-     }:
-     mkDerivation {
-       pname = "antiope-dynamodb";
        version = "7.5.1";
        sha256 = "19d7rbz4qqq3pd9nncydgvda798a5ziw21zkpa5d0smfna71zckp";
        libraryHaskellDepends = [
@@ -29801,30 +30266,6 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-messages";
-       version = "7.4.5";
-       sha256 = "07dim004vfaq3646z616pvhsxqqp1w8nl3dxm15hw79cw43ib6q6";
-       libraryHaskellDepends = [
-         aeson amazonka amazonka-core base bytestring generic-lens lens
-         lens-aeson monad-loops network-uri text unliftio-core
-       ];
-       testHaskellDepends = [
-         aeson amazonka amazonka-core base bytestring generic-lens hedgehog
-         hspec hw-hspec-hedgehog lens lens-aeson monad-loops network-uri
-         scientific text unliftio-core
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "antiope-messages_7_5_1" = callPackage
-    ({ mkDerivation, aeson, amazonka, amazonka-core, base, bytestring
-     , generic-lens, hedgehog, hspec, hspec-discover, hw-hspec-hedgehog
-     , lens, lens-aeson, monad-loops, network-uri, scientific, text
-     , unliftio-core
-     }:
-     mkDerivation {
-       pname = "antiope-messages";
        version = "7.5.1";
        sha256 = "01hkq4n5jpfnb9i8ysaj73zknvkhpxb3mnq7csv2dc29ral4vzdp";
        libraryHaskellDepends = [
@@ -29839,7 +30280,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "antiope-optparse-applicative" = callPackage
@@ -29872,34 +30312,6 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-s3";
-       version = "7.4.5";
-       sha256 = "16ras7xk3diaqnqr0dcbwlg4bl51x7kjqwq64l33zxa42bf9wica";
-       libraryHaskellDepends = [
-         aeson amazonka amazonka-core amazonka-s3 antiope-core
-         antiope-messages attoparsec base bytestring conduit conduit-extra
-         deepseq dlist exceptions generic-lens http-types lens mtl
-         network-uri resourcet text time unliftio-core
-       ];
-       testHaskellDepends = [
-         aeson amazonka amazonka-core amazonka-s3 antiope-core attoparsec
-         base bytestring conduit conduit-extra exceptions generic-lens
-         hedgehog hspec http-types hw-hspec-hedgehog lens mtl network-uri
-         resourcet text time unliftio-core
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "antiope-s3_7_5_1" = callPackage
-    ({ mkDerivation, aeson, amazonka, amazonka-core, amazonka-s3
-     , antiope-core, antiope-messages, attoparsec, base, bytestring
-     , conduit, conduit-extra, deepseq, dlist, exceptions, generic-lens
-     , hedgehog, hspec, hspec-discover, http-types, hw-hspec-hedgehog
-     , lens, mtl, network-uri, resourcet, text, time, unliftio-core
-     }:
-     mkDerivation {
-       pname = "antiope-s3";
        version = "7.5.1";
        sha256 = "0nqs90pqk8dfjbrc55f4gdw4ybw2fslbx9z2x8k45mqpri3xwc0y";
        libraryHaskellDepends = [
@@ -29917,7 +30329,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "antiope-shell" = callPackage
@@ -29956,29 +30367,6 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-sns";
-       version = "7.4.5";
-       sha256 = "0f3g8hr8i0p5hkr8zvwvmcng5i4ryjw34wj319mrggxayy9kcf69";
-       libraryHaskellDepends = [
-         aeson amazonka amazonka-core amazonka-sns base bytestring
-         generic-lens lens text time unliftio-core
-       ];
-       testHaskellDepends = [
-         aeson amazonka amazonka-core amazonka-sns base bytestring
-         generic-lens hedgehog hspec hw-hspec-hedgehog lens text time
-         unliftio-core
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "antiope-sns_7_5_1" = callPackage
-    ({ mkDerivation, aeson, amazonka, amazonka-core, amazonka-sns, base
-     , bytestring, generic-lens, hedgehog, hspec, hspec-discover
-     , hw-hspec-hedgehog, lens, text, time, unliftio-core
-     }:
-     mkDerivation {
-       pname = "antiope-sns";
        version = "7.5.1";
        sha256 = "13wzfjqihsi0xw7j869knj82a6k1fi74fywhlqc3bh1xc6wcir7q";
        libraryHaskellDepends = [
@@ -29993,7 +30381,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "antiope-sqs" = callPackage
@@ -30005,32 +30392,6 @@ self: {
      }:
      mkDerivation {
        pname = "antiope-sqs";
-       version = "7.4.5";
-       sha256 = "1q2sq4is1dzqfwq85r9xybw30mgydb6a3ir3xm4mcffv8vs4h3fw";
-       libraryHaskellDepends = [
-         aeson amazonka amazonka-core amazonka-sqs base bytestring conduit
-         generic-lens lens lens-aeson monad-loops mtl network-uri split text
-         unliftio-core unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson amazonka amazonka-core amazonka-sqs base bytestring conduit
-         generic-lens hedgehog hspec hw-hspec-hedgehog lens lens-aeson
-         monad-loops mtl network-uri text time unliftio-core
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "antiope-sqs_7_5_1" = callPackage
-    ({ mkDerivation, aeson, amazonka, amazonka-core, amazonka-sqs, base
-     , bytestring, conduit, generic-lens, hedgehog, hspec
-     , hspec-discover, hw-hspec-hedgehog, lens, lens-aeson, monad-loops
-     , mtl, network-uri, split, text, time, unliftio-core
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "antiope-sqs";
        version = "7.5.1";
        sha256 = "1y3fxqx5595agcnr157q3jap0dmcss8lyij187j9f29y0wkbkzv6";
        libraryHaskellDepends = [
@@ -30046,7 +30407,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Please see the README on Github at <https://github.com/arbor/antiope#readme>";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "antiope-swf" = callPackage
@@ -30113,8 +30473,8 @@ self: {
      }:
      mkDerivation {
        pname = "antlr-haskell";
-       version = "0.1.0.0";
-       sha256 = "057mr0vw299hjjxlcpmwpbpwn6snzdvr73gmwxhh1gqgbh9g4bx4";
+       version = "0.1.0.1";
+       sha256 = "1z796wgc4jnqc2mnrg5lwjazx07355f6jl02s5cq1zycxrlc7ry9";
        libraryHaskellDepends = [
          base containers deepseq hashable haskell-src-meta mtl
          template-haskell text th-lift transformers unordered-containers
@@ -30174,8 +30534,8 @@ self: {
     ({ mkDerivation, base, ghc-prim, integer-gmp }:
      mkDerivation {
        pname = "aop-prelude";
-       version = "0.3.1.0";
-       sha256 = "0zc1pifcr3s5zklm3rp9wjj370x4fwc7xhahdsqmkx67dpfqyiap";
+       version = "0.4.0.0";
+       sha256 = "0jg572zz9lbhpp4bxldrc0gs0ac0f4hfcrxds77gr51xizxfa7cn";
        libraryHaskellDepends = [ base ghc-prim integer-gmp ];
        testHaskellDepends = [ base ghc-prim ];
        description = "prelude for Algebra of Programming";
@@ -30226,6 +30586,18 @@ self: {
        broken = true;
      }) {inherit (pkgs) libaosd;};
 
+  "ap-normalize" = callPackage
+    ({ mkDerivation, base, inspection-testing, transformers }:
+     mkDerivation {
+       pname = "ap-normalize";
+       version = "0.1.0.0";
+       sha256 = "0iqfilamnp0k170af7sw0ydn0cmba7ab06yinkl8vfppf583a4la";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base inspection-testing transformers ];
+       description = "Self-normalizing applicative expressions";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "ap-reflect" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -30289,15 +30661,15 @@ self: {
      }) {};
 
   "apecs" = callPackage
-    ({ mkDerivation, array, base, containers, criterion, linear, mtl
-     , QuickCheck, template-haskell, vector
+    ({ mkDerivation, array, base, containers, criterion, exceptions
+     , linear, mtl, QuickCheck, template-haskell, vector
      }:
      mkDerivation {
        pname = "apecs";
-       version = "0.9.1";
-       sha256 = "1hf4ksv5s5z7842wz2zdmfix3s4xd34j6lcx94qja2h2vvh4c46a";
+       version = "0.9.2";
+       sha256 = "1ca9wpp60jslj63q77v55qql46f20jknfqsz7cjmqns41ml5g3q8";
        libraryHaskellDepends = [
-         array base containers mtl template-haskell vector
+         array base containers exceptions mtl template-haskell vector
        ];
        testHaskellDepends = [ base containers linear QuickCheck vector ];
        benchmarkHaskellDepends = [ base criterion linear ];
@@ -31199,6 +31571,8 @@ self: {
        pname = "apply-refact";
        version = "0.7.0.0";
        sha256 = "1facic5lbc9xih6w1kfr3inwvada6y98n9xgc6iv6r057zr8jfp0";
+       revision = "1";
+       editedCabalFile = "0ilyhm6nz1mkjdq13pgzgplmmfqrv6b5ailyhvbds362pqjqw72q";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -31221,7 +31595,7 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "apply-refact" = callPackage
+  "apply-refact_0_8_0_0" = callPackage
     ({ mkDerivation, base, containers, directory, filemanip, filepath
      , ghc, ghc-exactprint, mtl, optparse-applicative, process, refact
      , silently, syb, tasty, tasty-expected-failure, tasty-golden
@@ -31250,6 +31624,37 @@ self: {
        ];
        description = "Perform refactorings specified by the refact library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "apply-refact" = callPackage
+    ({ mkDerivation, base, containers, directory, extra, filemanip
+     , filepath, ghc, ghc-boot-th, ghc-exactprint, optparse-applicative
+     , process, refact, silently, syb, tasty, tasty-expected-failure
+     , tasty-golden, transformers, unix-compat
+     }:
+     mkDerivation {
+       pname = "apply-refact";
+       version = "0.8.2.1";
+       sha256 = "12dnwsv37bhla7cnqa3h24mnvdk5199lwd5mf845n1r6xqrh2vvp";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers directory extra filemanip ghc ghc-exactprint
+         process refact syb transformers unix-compat
+       ];
+       executableHaskellDepends = [
+         base containers directory extra filemanip filepath ghc ghc-boot-th
+         ghc-exactprint optparse-applicative process refact syb transformers
+         unix-compat
+       ];
+       testHaskellDepends = [
+         base containers directory extra filemanip filepath ghc ghc-boot-th
+         ghc-exactprint optparse-applicative process refact silently syb
+         tasty tasty-expected-failure tasty-golden transformers unix-compat
+       ];
+       description = "Perform refactorings specified by the refact library";
+       license = stdenv.lib.licenses.bsd3;
      }) {};
 
   "apportionment" = callPackage
@@ -31475,6 +31880,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Counter library for submitting metrics to a backend such as datadog";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "arbor-monad-logger" = callPackage
@@ -31566,6 +31973,8 @@ self: {
        ];
        description = "Convenience types and functions for postgresql-simple";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "arbtt" = callPackage
@@ -31580,6 +31989,8 @@ self: {
        pname = "arbtt";
        version = "0.10.2";
        sha256 = "02izfga7nv2saq4d1xwigq41hhbc02830sjppqsqw6vcb8082vs1";
+       revision = "1";
+       editedCabalFile = "10b6ax854a4ig33iwcg21vad4gpgibfpb6xqkxd80hvkrj4gqd62";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -31628,6 +32039,37 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "arch-hs" = callPackage
+    ({ mkDerivation, aeson, algebraic-graphs, base, bytestring, Cabal
+     , colourista, conduit, conduit-extra, containers, deepseq
+     , directory, filepath, hackage-db, megaparsec, microlens
+     , microlens-th, neat-interpolation, optparse-applicative, polysemy
+     , process, req, split, tar-conduit, template-haskell, text
+     }:
+     mkDerivation {
+       pname = "arch-hs";
+       version = "0.0.0.0";
+       sha256 = "0vf27caahc7mm2c8ihffj3p0fxwwig3bjy7raqa6vyh9dgh5pijs";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson algebraic-graphs base bytestring Cabal colourista conduit
+         conduit-extra containers deepseq directory filepath hackage-db
+         megaparsec microlens microlens-th neat-interpolation
+         optparse-applicative polysemy req split tar-conduit
+         template-haskell text
+       ];
+       executableHaskellDepends = [
+         aeson algebraic-graphs base bytestring Cabal colourista conduit
+         conduit-extra containers deepseq directory filepath hackage-db
+         megaparsec microlens microlens-th neat-interpolation
+         optparse-applicative polysemy process req split tar-conduit
+         template-haskell text
+       ];
+       description = "A program generating PKGBUILD for hackage packages";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "archive" = callPackage
     ({ mkDerivation, base, bytestring, debian, debian-mirror, directory
      , Extra, filepath, help, HUnit, mtl, network, old-locale, pretty
@@ -31657,8 +32099,8 @@ self: {
      }:
      mkDerivation {
        pname = "archive-libarchive";
-       version = "1.0.0.0";
-       sha256 = "0pqq76gnk6y71c5wwjhq99y2695v6bfyzjb8gakp6h3jivcpd2gb";
+       version = "1.0.0.1";
+       sha256 = "079wm4c9bahvi693g6655ag9rz9l5g7i4b82q7zm0hz383f94zsl";
        libraryHaskellDepends = [
          base bytestring composition-prelude libarchive
        ];
@@ -31801,16 +32243,17 @@ self: {
   "arduino-copilot" = callPackage
     ({ mkDerivation, base, containers, copilot, copilot-c99
      , copilot-language, directory, filepath, mtl, optparse-applicative
-     , unix
+     , process, temporary
      }:
      mkDerivation {
        pname = "arduino-copilot";
-       version = "1.5.1";
-       sha256 = "0j7j2npipgd6jrlm9gn76ia3xbpnbiicn125ii673qzfgfzmgwrh";
+       version = "1.5.2";
+       sha256 = "04qy06aws4qwg5slakj12jkwvfcrg960spj0g1c42lfb582ybrm6";
        libraryHaskellDepends = [
          base containers copilot copilot-c99 copilot-language directory
-         filepath mtl optparse-applicative unix
+         filepath mtl optparse-applicative temporary
        ];
+       testHaskellDepends = [ base directory process temporary ];
        description = "Arduino programming in haskell using the Copilot stream DSL";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -32167,7 +32610,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "arithmoi_0_11_0_0" = callPackage
+  "arithmoi_0_11_0_1" = callPackage
     ({ mkDerivation, array, base, chimera, constraints, containers
      , deepseq, exact-pi, gauge, integer-gmp, integer-logarithms
      , integer-roots, mod, QuickCheck, quickcheck-classes, random
@@ -32176,8 +32619,8 @@ self: {
      }:
      mkDerivation {
        pname = "arithmoi";
-       version = "0.11.0.0";
-       sha256 = "14zhrlml6029n21h0ihspydg2zr7f93k4lji0nyi23c5y67pi9sk";
+       version = "0.11.0.1";
+       sha256 = "1dz6gpwnyw02lff8xh5vmf1vsknnvnd3vh3iix0r6f1hkf03xi8y";
        configureFlags = [ "-f-llvm" ];
        libraryHaskellDepends = [
          array base chimera constraints containers deepseq exact-pi
@@ -32360,6 +32803,22 @@ self: {
        broken = true;
      }) {};
 
+  "array-list" = callPackage
+    ({ mkDerivation, array, base, doctest, doctest-driver-gen, hspec }:
+     mkDerivation {
+       pname = "array-list";
+       version = "0.2.0.0";
+       sha256 = "17xdkn1p7zfg7rw9sfbv6amfab291gz8fafkl26x38al9khjcgy2";
+       libraryHaskellDepends = [ array base ];
+       testHaskellDepends = [
+         array base doctest doctest-driver-gen hspec
+       ];
+       description = "IsList instances of Array for OverloadedLists extension";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "array-memoize" = callPackage
     ({ mkDerivation, array, base }:
      mkDerivation {
@@ -32707,6 +33166,8 @@ self: {
        libraryHaskellDepends = [ base random-extras random-fu text ];
        description = "A collection of ASCII cows. Moo.";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "ascii-flatten" = callPackage
@@ -33171,8 +33632,8 @@ self: {
     ({ mkDerivation, base, pretty-show, text }:
      mkDerivation {
        pname = "assert-failure";
-       version = "0.1.2.3";
-       sha256 = "1cjl9xa8d4rmzafydcnjl7pnv40hl6q663k37kyx22dyg9frgc68";
+       version = "0.1.2.5";
+       sha256 = "0k8a7g82dsj50djpy2kvhnfljb3y9w9dx9mpymvn6hxd6rir4bpm";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base pretty-show text ];
        description = "Syntactic sugar improving 'assert' and 'error'";
@@ -33245,10 +33706,8 @@ self: {
     ({ mkDerivation, base, bifunctors, tagged }:
      mkDerivation {
        pname = "assoc";
-       version = "1.0.1";
-       sha256 = "1m9n4vp190bvn2wcrd4ggfwa9pi93jp0zgx02mdgywn2zfidw020";
-       revision = "1";
-       editedCabalFile = "1q6sc9v79p2pdm7aa6mfbn824vc01wj267saf2gp86b3wzgp0mrh";
+       version = "1.0.2";
+       sha256 = "0kqlizznjy94fm8zr1ng633yxbinjff7cnsiaqs7m33ix338v66q";
        libraryHaskellDepends = [ base bifunctors tagged ];
        description = "swap and assoc: Symmetric and Semigroupy Bifunctors";
        license = stdenv.lib.licenses.bsd3;
@@ -33876,8 +34335,8 @@ self: {
      }:
      mkDerivation {
        pname = "atom-conduit";
-       version = "0.8.0.0";
-       sha256 = "0vakq72n9q6hk6ysl64qcyrrya2gp2l3s97n3vggwv84p167xqwd";
+       version = "0.9.0.0";
+       sha256 = "0kjdw3x5jsa5hjb36zq93xyp3ac1s4j5vpb52969hckcghmyrabm";
        libraryHaskellDepends = [
          base-noprelude blaze-builder conduit microlens microlens-th parsers
          prettyprinter refined relude safe-exceptions text time timerep
@@ -34077,27 +34536,27 @@ self: {
      }) {};
 
   "ats-pkg" = callPackage
-    ({ mkDerivation, ansi-wl-pprint, base, binary, bytestring, Cabal
-     , cli-setup, composition-prelude, containers, cpphs, dependency
-     , dhall, directory, file-embed, filepath, http-client
-     , http-client-tls, language-ats, libarchive, lzma, microlens, mtl
-     , optparse-applicative, parallel-io, process, shake, shake-ats
-     , shake-c, shake-ext, temporary, text, unix, unix-compat
+    ({ mkDerivation, ansi-wl-pprint, archive-libarchive, archive-sig
+     , base, binary, bytestring, Cabal, cli-setup, composition-prelude
+     , containers, cpphs, dependency, dhall, directory, file-embed
+     , filepath, http-client, http-client-tls, language-ats, lzma
+     , microlens, mtl, optparse-applicative, parallel-io, process, shake
+     , shake-ats, shake-c, shake-ext, temporary, text, unix, unix-compat
      , zip-archive, zlib
      }:
      mkDerivation {
        pname = "ats-pkg";
-       version = "3.5.0.0";
-       sha256 = "0ky17b8s4rg42gr2wwarvlgf0r0zgllrxqcdramsiyh8w9zgmc71";
+       version = "3.5.0.2";
+       sha256 = "1whx2yyjxc3b4s7nrwrxvyz9bwy7n15gmr9m6lcs3zxr7dvwvlmk";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         ansi-wl-pprint base binary bytestring Cabal composition-prelude
-         containers dependency dhall directory file-embed filepath
-         http-client http-client-tls libarchive lzma microlens mtl
-         parallel-io process shake shake-ats shake-c shake-ext text unix
-         unix-compat zip-archive zlib
+         ansi-wl-pprint archive-libarchive archive-sig base binary
+         bytestring Cabal composition-prelude containers dependency dhall
+         directory file-embed filepath http-client http-client-tls lzma
+         microlens mtl parallel-io process shake shake-ats shake-c shake-ext
+         text unix unix-compat zip-archive zlib
        ];
        libraryToolDepends = [ cpphs ];
        executableHaskellDepends = [
@@ -34245,6 +34704,8 @@ self: {
        pname = "attoparsec";
        version = "0.13.2.4";
        sha256 = "1cpgxc17lh4lnpblb3cimpq4ka23bf89q6yvd0jwk7klw5nwsrms";
+       revision = "1";
+       editedCabalFile = "0jlipzz2b1jb8yw22rvnhvbnadzcdf3wkwn4svl3j4m6858s0har";
        libraryHaskellDepends = [
          array base bytestring containers deepseq scientific text
          transformers
@@ -34652,33 +35113,13 @@ self: {
      }) {};
 
   "aur" = callPackage
-    ({ mkDerivation, aeson, base, http-client, http-client-tls, servant
-     , servant-client, tasty, tasty-hunit, text
-     }:
-     mkDerivation {
-       pname = "aur";
-       version = "6.2.0.1";
-       sha256 = "00h5v3b4is5jc11x85cjzq25lsqrlhidibsyn847bl0cpn9292d2";
-       libraryHaskellDepends = [
-         aeson base http-client servant servant-client text
-       ];
-       testHaskellDepends = [
-         base http-client http-client-tls tasty tasty-hunit
-       ];
-       description = "Access metadata from the Arch Linux User Repository";
-       license = stdenv.lib.licenses.gpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "aur_7_0_3" = callPackage
     ({ mkDerivation, aeson, base, bytestring, http-client
      , http-client-tls, http-types, tasty, tasty-hunit, text
      }:
      mkDerivation {
        pname = "aur";
-       version = "7.0.3";
-       sha256 = "0q54p9lb65k8n41gya09k8232y1piyfmks71c2z38kybh783mgg2";
+       version = "7.0.4";
+       sha256 = "0zq1p255qpi1alnhm7k4aj9w4v8y4ybdywbw5w9jbx47imfqqp9y";
        libraryHaskellDepends = [
          aeson base bytestring http-client http-types text
        ];
@@ -34719,8 +35160,8 @@ self: {
      }:
      mkDerivation {
        pname = "aura";
-       version = "3.1.1";
-       sha256 = "18svkf64riag6jp8l1anc3pmkdykzhi83wwzqvw6v84ha7y3kr12";
+       version = "3.1.9";
+       sha256 = "1q248qh2wpm0gq07pihw3gshd3ixjdl1l3bf1cpxabn0gjss4hma";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -34797,8 +35238,8 @@ self: {
        pname = "authenticate-oauth";
        version = "1.6.0.1";
        sha256 = "1hry1zbi7gbyfi94w9cyg6m7ii7xm68jnsph63zxdj2s4ns0ylp0";
-       revision = "1";
-       editedCabalFile = "0pyivmsmlzhpnzpi3jcmqyjjx5a1p7cl1grjyw8571pmxz6735w3";
+       revision = "2";
+       editedCabalFile = "08i6mmk2jqlrd1aksjx02arly7dfpkwc0dwxpr7hs4rbxajbckyr";
        libraryHaskellDepends = [
          base base64-bytestring blaze-builder bytestring crypto-pubkey-types
          data-default http-client http-types random RSA SHA time
@@ -34876,8 +35317,8 @@ self: {
      }:
      mkDerivation {
        pname = "autoapply";
-       version = "0.4";
-       sha256 = "0b7la51399kcj9a4z9j49xd9v2zs172vygs3djz5qid7fsl37pgm";
+       version = "0.4.1";
+       sha256 = "1jgzfdi5p0pns6w7543yp2ljglnmym9qplyb4vafynzg3bjhzvz0";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base logict mtl template-haskell th-desugar transformers
@@ -34894,29 +35335,14 @@ self: {
     ({ mkDerivation, base, Cabal, directory, filepath }:
      mkDerivation {
        pname = "autoexporter";
-       version = "1.1.16";
-       sha256 = "1cr3fdj57p959dgsilnsl5m8ifih6jzxmkpkvgx6hiqxkxkxlzvg";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base Cabal directory filepath ];
-       executableHaskellDepends = [ base Cabal directory filepath ];
-       description = "Automatically re-export modules";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "autoexporter_1_1_17" = callPackage
-    ({ mkDerivation, base, Cabal, directory, filepath }:
-     mkDerivation {
-       pname = "autoexporter";
-       version = "1.1.17";
-       sha256 = "0h2pgbrslfbmwns6jz4gpkp7s82l04215fqzlmzrfm7pck27prcg";
+       version = "1.1.19";
+       sha256 = "0hgxfd5pykl6y1v3asnh46abfmi5fsdp0hs1kf6a2acqsnx9vad7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base Cabal directory filepath ];
        executableHaskellDepends = [ base ];
        description = "Automatically re-export modules";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "autom" = callPackage
@@ -35125,8 +35551,8 @@ self: {
        pname = "avers";
        version = "0.0.17.1";
        sha256 = "1x96fvx0z7z75c39qcggw70qvqnw7kzjf0qqxb3jwg3b0fmdhi8v";
-       revision = "36";
-       editedCabalFile = "12bwnqb8m1z3f84xml7wf8h0lvs5wb67fdhdp5bl1pf42yr94izz";
+       revision = "37";
+       editedCabalFile = "09z2wlr6g1lm4cdbbf0zjbl1j19xs31y126lcbzcs254f8mx5m13";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring clock containers cryptonite
          filepath inflections memory MonadRandom mtl network network-uri
@@ -35271,42 +35697,6 @@ self: {
     ({ mkDerivation, aeson, array, base, base16-bytestring, bifunctors
      , binary, bytestring, containers, data-binary-ieee754, deepseq
      , directory, doctest, doctest-discover, extra, fail, gauge
-     , HasBigDecimal, hashable, hspec, hspec-discover, lens, lens-aeson
-     , mtl, QuickCheck, random, raw-strings-qq, scientific, semigroups
-     , tagged, template-haskell, text, tf-random, time, transformers
-     , unordered-containers, uuid, vector, zlib
-     }:
-     mkDerivation {
-       pname = "avro";
-       version = "0.4.7.0";
-       sha256 = "14s2d2slnk5d1mjava003a61gn5cczx5m7wg4h48nzh8w70y1a9q";
-       libraryHaskellDepends = [
-         aeson array base base16-bytestring bifunctors binary bytestring
-         containers data-binary-ieee754 deepseq fail HasBigDecimal hashable
-         mtl scientific semigroups tagged template-haskell text tf-random
-         time unordered-containers uuid vector zlib
-       ];
-       testHaskellDepends = [
-         aeson array base base16-bytestring bifunctors binary bytestring
-         containers directory doctest doctest-discover extra fail
-         HasBigDecimal hashable hspec lens lens-aeson mtl QuickCheck
-         raw-strings-qq scientific semigroups tagged template-haskell text
-         tf-random time transformers unordered-containers uuid vector zlib
-       ];
-       testToolDepends = [ doctest-discover hspec-discover ];
-       benchmarkHaskellDepends = [
-         aeson base bytestring containers gauge hashable mtl random
-         raw-strings-qq template-haskell text transformers
-         unordered-containers vector
-       ];
-       description = "Avro serialization support for Haskell";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "avro_0_5_2_0" = callPackage
-    ({ mkDerivation, aeson, array, base, base16-bytestring, bifunctors
-     , binary, bytestring, containers, data-binary-ieee754, deepseq
-     , directory, doctest, doctest-discover, extra, fail, gauge
      , generic-lens, HasBigDecimal, hashable, hedgehog, hspec
      , hspec-discover, hw-hspec-hedgehog, lens, lens-aeson, mtl
      , QuickCheck, random, raw-strings-qq, scientific, semigroups
@@ -35338,7 +35728,6 @@ self: {
        ];
        description = "Avro serialization support for Haskell";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "avro-piper" = callPackage
@@ -35351,6 +35740,8 @@ self: {
        pname = "avro-piper";
        version = "1.0.3";
        sha256 = "1vi0mgpqpr74ankl8418npklyfxacxg001vppps22p2da97s3pk1";
+       revision = "1";
+       editedCabalFile = "1405kfnndnh6w4hslahg74rdhk8jmh48j64ps7mval3py8cl5qiv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -35381,8 +35772,8 @@ self: {
      }:
      mkDerivation {
        pname = "avwx";
-       version = "0.3.0.2";
-       sha256 = "02pvh2i1f96k3pyrmdb3jv2ia7mcp8q5pw067psr8k2sw329qadl";
+       version = "0.3.0.3";
+       sha256 = "1yvyyvfgga5gpf6bw5wkaxzwqvvvlzbqlq217h454gzlsm8vlv52";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ attoparsec base HTTP lens parsers text ];
@@ -35846,8 +36237,8 @@ self: {
      }:
      mkDerivation {
        pname = "aws-lambda-haskell-runtime";
-       version = "2.0.6";
-       sha256 = "0czswk0a8ivvq31wc322imxhvhsnzkj6cygny7y3avvnclmrzm0h";
+       version = "3.0.4";
+       sha256 = "1rbgi7f1vymh8q6b074z64jlww5gssbzhpam8k8lcgp0zlvm13n1";
        libraryHaskellDepends = [
          aeson base bytestring case-insensitive http-client http-types path
          path-io safe-exceptions-checked template-haskell text
@@ -35858,6 +36249,31 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "aws-lambda-haskell-runtime-wai" = callPackage
+    ({ mkDerivation, aeson, aws-lambda-haskell-runtime, base, binary
+     , bytestring, case-insensitive, http-types, iproute, network, text
+     , unordered-containers, vault, wai
+     }:
+     mkDerivation {
+       pname = "aws-lambda-haskell-runtime-wai";
+       version = "1.0.2";
+       sha256 = "0bjqrwl2kcnxv8yni2bxaz5x3pgs3j6c4rrgqpv5kfs7yn1ins7w";
+       libraryHaskellDepends = [
+         aeson aws-lambda-haskell-runtime base binary bytestring
+         case-insensitive http-types iproute network text
+         unordered-containers vault wai
+       ];
+       testHaskellDepends = [
+         aeson aws-lambda-haskell-runtime base binary bytestring
+         case-insensitive http-types iproute network text
+         unordered-containers vault wai
+       ];
+       description = "Run wai applications on AWS Lambda";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "aws-lambda-runtime" = callPackage
     ({ mkDerivation, aeson, async, base, base-compat, bytestring
      , containers, deepseq, filepath, http-client, http-media
@@ -36204,6 +36620,26 @@ self: {
        broken = true;
      }) {control-invariants = null;};
 
+  "azimuth-hs" = callPackage
+    ({ mkDerivation, base, data-default-class, exceptions, haskoin-core
+     , hspec, memory, mtl, shelly, text, urbit-hob, web3
+     }:
+     mkDerivation {
+       pname = "azimuth-hs";
+       version = "0.2.1";
+       sha256 = "0gr852mqzd05jhhmszf69r1kk5ja2syq15ac0hdnqzhfzlbq2nrl";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base data-default-class exceptions haskoin-core memory mtl text
+         urbit-hob web3
+       ];
+       testHaskellDepends = [ base hspec shelly text urbit-hob ];
+       description = "Interact with Azimuth from Haskell";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "azubi" = callPackage
     ({ mkDerivation, base, Diff, directory, filepath, hspec, options
      , process, unix
@@ -36263,6 +36699,35 @@ self: {
        broken = true;
      }) {};
 
+  "azure-functions-worker" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, Cabal, containers
+     , directory, filepath, glabrous, http-types, http2-client
+     , http2-client-grpc, http2-grpc-proto-lens, http2-grpc-types
+     , lens-family, lens-family-core, mtl, network-uri
+     , optparse-applicative, proto-lens-protobuf-types
+     , proto-lens-protoc, proto-lens-runtime, proto-lens-setup
+     , raw-strings-qq, stm, text, time
+     }:
+     mkDerivation {
+       pname = "azure-functions-worker";
+       version = "0.0.0.0";
+       sha256 = "0035kmxfnb121mg38xzbyxphwg2r4x63chlywl67b9nz1pwp828x";
+       setupHaskellDepends = [ base Cabal proto-lens-setup ];
+       libraryHaskellDepends = [
+         aeson async base bytestring containers directory filepath glabrous
+         http-types http2-client http2-client-grpc http2-grpc-proto-lens
+         http2-grpc-types lens-family lens-family-core mtl network-uri
+         optparse-applicative proto-lens-protobuf-types proto-lens-runtime
+         raw-strings-qq stm text time
+       ];
+       libraryToolDepends = [ proto-lens-protoc ];
+       testHaskellDepends = [ base ];
+       description = "Azure Functions Worker";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "azure-service-api" = callPackage
     ({ mkDerivation, base, binary, bytestring, case-insensitive
      , certificate, crypto-pubkey-types, http-conduit, hxt, hxt-xpath
@@ -36363,34 +36828,39 @@ self: {
   "b9" = callPackage
     ({ mkDerivation, aeson, async, base, base64-bytestring, bifunctors
      , binary, boxes, bytestring, conduit, conduit-extra, ConfigFile
-     , directory, exceptions, extensible-effects, filepath, free
-     , hashable, hspec, hspec-expectations, lens, monad-control, mtl
-     , optparse-applicative, parallel, parsec, pretty, pretty-show
-     , process, QuickCheck, random, shake, syb, tagged, template, text
-     , time, transformers, unordered-containers, vector, yaml
+     , containers, directory, exceptions, extensible-effects, filepath
+     , free, hashable, hspec, hspec-expectations, lens, monad-control
+     , mtl, neat-interpolation, optparse-applicative, parallel, parsec
+     , pretty, pretty-show, process, QuickCheck, random, shake, syb
+     , tagged, template, text, time, transformers, unordered-containers
+     , vector, yaml
      }:
      mkDerivation {
        pname = "b9";
-       version = "0.5.69.0";
-       sha256 = "0r2iwv3ykh04d7qq9nskrj4m3xwlhhlyxzh38vij65gx8jiy2nwa";
+       version = "2.1.0";
+       sha256 = "0zrblqyq7zm2zya20zaxvcgb489y2kywns72kxyp6ymi2sax586g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson async base base64-bytestring bifunctors binary boxes
-         bytestring conduit conduit-extra ConfigFile directory exceptions
-         extensible-effects filepath free hashable hspec hspec-expectations
-         lens monad-control mtl parallel parsec pretty pretty-show process
+         bytestring conduit conduit-extra ConfigFile containers directory
+         exceptions extensible-effects filepath free hashable hspec
+         hspec-expectations lens monad-control mtl neat-interpolation
+         optparse-applicative parallel parsec pretty pretty-show process
          QuickCheck random shake syb tagged template text time transformers
          unordered-containers vector yaml
        ];
        executableHaskellDepends = [
-         base bytestring directory extensible-effects hspec
-         hspec-expectations lens optparse-applicative text
+         aeson base binary bytestring containers directory
+         extensible-effects filepath hspec hspec-expectations lens
+         neat-interpolation optparse-applicative process QuickCheck shake
+         text unordered-containers vector yaml
        ];
        testHaskellDepends = [
-         aeson base binary bytestring directory extensible-effects hspec
-         hspec-expectations lens QuickCheck text unordered-containers vector
-         yaml
+         aeson base binary bytestring containers directory
+         extensible-effects filepath hspec hspec-expectations lens
+         neat-interpolation optparse-applicative process QuickCheck shake
+         text unordered-containers vector yaml
        ];
        description = "A tool and library for building virtual machine images";
        license = stdenv.lib.licenses.mit;
@@ -36489,8 +36959,8 @@ self: {
      }:
      mkDerivation {
        pname = "backprop";
-       version = "0.2.6.3";
-       sha256 = "0zk3k20c100iwqcvg1xw2vdysn01w4h9jypz08xs849n1a3bp7di";
+       version = "0.2.6.4";
+       sha256 = "0wc71r6l5qgkspl5v76f1d75xwir9jp5kzdl83rq5sviggd458v9";
        libraryHaskellDepends = [
          base containers deepseq microlens primitive reflection transformers
          vector vinyl
@@ -36528,6 +36998,21 @@ self: {
        broken = true;
      }) {};
 
+  "backtracking" = callPackage
+    ({ mkDerivation, base, primes, tasty, tasty-discover, tasty-hunit
+     , transformers
+     }:
+     mkDerivation {
+       pname = "backtracking";
+       version = "0.1.0";
+       sha256 = "0l1isnnld8drsb8jqkf6zd8v61gcy172zk8zdr21yawnkwfr057b";
+       libraryHaskellDepends = [ base transformers ];
+       testHaskellDepends = [ base primes tasty tasty-hunit ];
+       testToolDepends = [ tasty-discover ];
+       description = "A backtracking monad";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "backtracking-exceptions" = callPackage
     ({ mkDerivation, base, either, free, kan-extensions, mtl
      , semigroupoids, semigroups, transformers
@@ -36839,8 +37324,8 @@ self: {
     ({ mkDerivation, base, containers, hspec, QuickCheck, time }:
      mkDerivation {
        pname = "bank-holidays-england";
-       version = "0.2.0.4";
-       sha256 = "1lqjcpxacjkvgy0900av004xsshyjqx1hq1q0ig42f8r6r4cnf3m";
+       version = "0.2.0.5";
+       sha256 = "0n7q9s1vsmh5adkhpgycz8y6q49xqf77fpmm73cw0iqgjly4x9hp";
        libraryHaskellDepends = [ base containers time ];
        testHaskellDepends = [ base containers hspec QuickCheck time ];
        description = "Calculation of bank holidays in England and Wales";
@@ -36874,8 +37359,8 @@ self: {
      }:
      mkDerivation {
        pname = "barbies";
-       version = "2.0.1.0";
-       sha256 = "0d2a1d9w8xlviarlrrnlrfs82zf6gzxv09i6sa4ci1bl8df64wmj";
+       version = "2.0.2.0";
+       sha256 = "0x9wn7whn36b4vsaq008zpcw47rs78dfqcysk8x7yhprxbzn7mi2";
        libraryHaskellDepends = [ base distributive transformers ];
        testHaskellDepends = [
          base distributive QuickCheck tasty tasty-hunit tasty-quickcheck
@@ -37179,6 +37664,18 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "base-prelude_1_4" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "base-prelude";
+       version = "1.4";
+       sha256 = "0nn5v2y9kl7i3n21250m7cvn55lvkmzj22wx6q4kaag5ycwwczrs";
+       libraryHaskellDepends = [ base ];
+       description = "The most complete prelude formed solely from the \"base\" package";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "base-unicode-symbols" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -37214,17 +37711,69 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "base16_0_3_0_1" = callPackage
+    ({ mkDerivation, base, base16-bytestring, bytestring, criterion
+     , deepseq, primitive, QuickCheck, random-bytestring, tasty
+     , tasty-hunit, tasty-quickcheck, text, text-short
+     }:
+     mkDerivation {
+       pname = "base16";
+       version = "0.3.0.1";
+       sha256 = "10id9h9mas4kb4kfiz7hhp2hhwnb9mh92pr327c53jqxi4hazgnd";
+       revision = "2";
+       editedCabalFile = "1ryc4228j4v9mcfjkgallfmww7g19y4awkqyq4j4734rgvkvgslw";
+       libraryHaskellDepends = [
+         base bytestring deepseq primitive text text-short
+       ];
+       testHaskellDepends = [
+         base base16-bytestring bytestring QuickCheck random-bytestring
+         tasty tasty-hunit tasty-quickcheck text text-short
+       ];
+       benchmarkHaskellDepends = [
+         base base16-bytestring bytestring criterion deepseq
+         random-bytestring text
+       ];
+       description = "Fast RFC 4648-compliant Base16 encoding";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "base16-bytestring" = callPackage
     ({ mkDerivation, base, bytestring, ghc-prim }:
      mkDerivation {
        pname = "base16-bytestring";
-       version = "0.1.1.6";
-       sha256 = "0jf40m3yijqw6wd1rwwvviww46fasphaay9m9rgqyhf5aahnbzjs";
+       version = "0.1.1.7";
+       sha256 = "1fk9zvkx005sy4adbyil86svnqhgrvmczmf16ajhzj2wkmkqjmjj";
+       revision = "3";
+       editedCabalFile = "1lrxqhbjsml0q1ahpcx7p0xjy6bj1m6qzjwmv841r5r8jrm2a880";
        libraryHaskellDepends = [ base bytestring ghc-prim ];
+       testHaskellDepends = [ base bytestring ];
        description = "Fast base16 (hex) encoding and decoding for ByteStrings";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "base16-bytestring_1_0_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, deepseq, HUnit
+     , QuickCheck, test-framework, test-framework-hunit
+     , test-framework-quickcheck2
+     }:
+     mkDerivation {
+       pname = "base16-bytestring";
+       version = "1.0.0.0";
+       sha256 = "12bnl2fs0h4hcjpr69xqqngjh0117dlvkv56lxski6g6fnbwps2r";
+       revision = "2";
+       editedCabalFile = "16nmmf3mmkdrssx6i77drh7ac7r6cfb1dnbna62z32h11yyyk49j";
+       libraryHaskellDepends = [ base bytestring ];
+       testHaskellDepends = [
+         base bytestring HUnit QuickCheck test-framework
+         test-framework-hunit test-framework-quickcheck2
+       ];
+       benchmarkHaskellDepends = [ base bytestring criterion deepseq ];
+       description = "RFC 4648-compliant Base16 encodings for ByteStrings";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "base16-lens" = callPackage
     ({ mkDerivation, base, base16, bytestring, Cabal, cabal-doctest
      , doctest, lens, text
@@ -37233,6 +37782,8 @@ self: {
        pname = "base16-lens";
        version = "0.1.2.0";
        sha256 = "1mgy1adhlw2sra8lfc2cklfn9w7jj2f9pilifnnfk2jq6hwalpn8";
+       revision = "1";
+       editedCabalFile = "0ann8lmr7w1p11c0yxb1q1j776hi1dj8xm6xg8c2nq3x396gcnlp";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ base base16 bytestring lens text ];
        testHaskellDepends = [ base doctest lens ];
@@ -37240,6 +37791,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "base16-lens_0_1_3_0" = callPackage
+    ({ mkDerivation, base, base16, bytestring, Cabal, cabal-doctest
+     , doctest, lens, text, text-short
+     }:
+     mkDerivation {
+       pname = "base16-lens";
+       version = "0.1.3.0";
+       sha256 = "1612v5lj99szshz7vm3mr5p4xxcrga1xxcfm9q9zzpnyd5z5vkn2";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         base base16 bytestring lens text text-short
+       ];
+       testHaskellDepends = [ base doctest lens ];
+       description = "Optics for the Base16 library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "base32" = callPackage
     ({ mkDerivation, base, bytestring, criterion, deepseq, memory
      , random-bytestring, tasty, tasty-hunit, text
@@ -37259,6 +37828,32 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "base32_0_2_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, deepseq
+     , ghc-byteorder, memory, QuickCheck, random-bytestring, tasty
+     , tasty-hunit, tasty-quickcheck, text, text-short
+     }:
+     mkDerivation {
+       pname = "base32";
+       version = "0.2.0.0";
+       sha256 = "0xvilxcdcvz07f3qpad35whjd35c9ykicip2cdsd54ysxg71mwzm";
+       revision = "1";
+       editedCabalFile = "0vsc0fq4rihhx4hicfgy1xpfm1bbq4rnwgfs9qzgmwhslffqy2x5";
+       libraryHaskellDepends = [
+         base bytestring deepseq ghc-byteorder text text-short
+       ];
+       testHaskellDepends = [
+         base bytestring memory QuickCheck random-bytestring tasty
+         tasty-hunit tasty-quickcheck text text-short
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion deepseq memory random-bytestring text
+       ];
+       description = "Fast RFC 4648-compliant Base32 encoding";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "base32-bytestring" = callPackage
     ({ mkDerivation, base, bits-extras, bytestring, cpu, criterion
      , hspec, QuickCheck
@@ -37284,6 +37879,8 @@ self: {
        pname = "base32-lens";
        version = "0.1.0.0";
        sha256 = "0yhaaz5y8cwyjcclmjw0hk31388z233041ycfpwm2a3f0vgpilvn";
+       revision = "1";
+       editedCabalFile = "1sj9dc2prfhbc3b7bvxmw6wfq0iql6dwvdx928z13rdc4vwj0nv0";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ base base32 bytestring lens text ];
        testHaskellDepends = [ base doctest lens ];
@@ -37398,58 +37995,34 @@ self: {
        ];
        description = "Base62 encoding and decoding";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "base64" = callPackage
-    ({ mkDerivation, base, base64-bytestring, bytestring, deepseq
-     , gauge, memory, random-bytestring, tasty, tasty-hunit, text
-     }:
-     mkDerivation {
-       pname = "base64";
-       version = "0.4.1";
-       sha256 = "06mwamlqdz90k7nh3x4w0j0mjkbhkns11hvj9zd8d1yw6wy3l4hd";
-       revision = "1";
-       editedCabalFile = "1jvx3wpnfwzxfz5w3bqglqcv539fkk7wivl8ylm126pqh7sjdp5f";
-       libraryHaskellDepends = [ base bytestring text ];
-       testHaskellDepends = [
-         base base64-bytestring bytestring random-bytestring tasty
-         tasty-hunit text
-       ];
-       benchmarkHaskellDepends = [
-         base base64-bytestring bytestring deepseq gauge memory
-         random-bytestring text
-       ];
-       description = "Fast RFC 4648-compliant Base64 encoding";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "base64_0_4_2" = callPackage
     ({ mkDerivation, base, base64-bytestring, bytestring, criterion
-     , deepseq, ghc-byteorder, memory, QuickCheck, quickcheck-instances
-     , random-bytestring, tasty, tasty-hunit, tasty-quickcheck, text
-     , text-short
+     , deepseq, ghc-byteorder, QuickCheck, random-bytestring, tasty
+     , tasty-hunit, tasty-quickcheck, text, text-short
      }:
      mkDerivation {
        pname = "base64";
-       version = "0.4.2";
-       sha256 = "1q3cz1d2zj2bi57g4yrfk1bbfqrcppl6nh0g5fb5dpmf2wdrfv44";
-       revision = "3";
-       editedCabalFile = "1vjzv8d8yd18nz3pvm8003h3gnj1d45c6g74vd2qqawypwcwhm6b";
+       version = "0.4.2.2";
+       sha256 = "05ins0i1561d4gfz6h7fxx8pj8i1qkskz8dgh8pfxa1llzmr856i";
+       revision = "1";
+       editedCabalFile = "1rlvmg18f2d2rdyzvvzk0is4073j5arx9qirgvshjx67kic2lzqm";
        libraryHaskellDepends = [
-         base bytestring ghc-byteorder text text-short
+         base bytestring deepseq ghc-byteorder text text-short
        ];
        testHaskellDepends = [
-         base base64-bytestring bytestring QuickCheck quickcheck-instances
-         random-bytestring tasty tasty-hunit tasty-quickcheck text
-         text-short
+         base base64-bytestring bytestring QuickCheck random-bytestring
+         tasty tasty-hunit tasty-quickcheck text text-short
        ];
        benchmarkHaskellDepends = [
-         base base64-bytestring bytestring criterion deepseq memory
+         base base64-bytestring bytestring criterion deepseq
          random-bytestring text
        ];
-       description = "A modern RFC 4648-compliant Base64 library";
+       description = "Fast RFC 4648-compliant Base64 encoding";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "base64-bytes" = callPackage
@@ -37474,6 +38047,8 @@ self: {
        ];
        description = "Base64 encoding of byte sequences";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "base64-bytestring" = callPackage
@@ -37497,15 +38072,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "base64-bytestring_1_1_0_0" = callPackage
+  "base64-bytestring_1_2_0_0" = callPackage
     ({ mkDerivation, base, bytestring, containers, criterion, deepseq
      , HUnit, QuickCheck, split, test-framework, test-framework-hunit
      , test-framework-quickcheck2
      }:
      mkDerivation {
        pname = "base64-bytestring";
-       version = "1.1.0.0";
-       sha256 = "1adcnkcx4nh3d59k94bkndj0wkgbvchz576qwlpaa7148a86q391";
+       version = "1.2.0.0";
+       sha256 = "1vz4dbbsymjrw5dmb62yw41v126narlb3dpa037hgldlw1fw2iip";
        libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [
          base bytestring containers HUnit QuickCheck split test-framework
@@ -37528,8 +38103,8 @@ self: {
        pname = "base64-bytestring-type";
        version = "1.0.1";
        sha256 = "03kq4rjj6by02rf3hg815jfdqpdk0xygm5f46r2pn8mb99yd01zn";
-       revision = "6";
-       editedCabalFile = "05z53pc1gi62lzl262mc1qx12qqrds6ab6rflwpfcxbp0a67c825";
+       revision = "7";
+       editedCabalFile = "1vry5qh9w1adwyfrlx8x2772knwmdvxgq2nfzng7vybll2cqph4c";
        libraryHaskellDepends = [
          aeson base base-compat base64-bytestring binary bytestring cereal
          deepseq hashable http-api-data QuickCheck serialise text
@@ -37569,23 +38144,6 @@ self: {
      }:
      mkDerivation {
        pname = "base64-lens";
-       version = "0.2.0";
-       sha256 = "0d4lri7wpaxx7hgd7slxj5jl2qkgfairzsga4vajl05g49amyk80";
-       revision = "1";
-       editedCabalFile = "07x38p4zcv05y94gjn5j3j1ydv06vi17fbjnz4ckcgc3ay0dzbzf";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [ base base64 bytestring lens text ];
-       testHaskellDepends = [ base doctest lens ];
-       description = "Optics for the Base64 library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "base64-lens_0_3_0" = callPackage
-    ({ mkDerivation, base, base64, bytestring, Cabal, cabal-doctest
-     , doctest, lens, text
-     }:
-     mkDerivation {
-       pname = "base64-lens";
        version = "0.3.0";
        sha256 = "0gs3cxmglz0hshi4m94zrlc6fix90cvbdmcv2v4j01zwsdg8gv81";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -37593,7 +38151,6 @@ self: {
        testHaskellDepends = [ base doctest lens ];
        description = "Optics for the Base64 library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "base64-string" = callPackage
@@ -37912,15 +38469,16 @@ self: {
 
   "battleplace" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cereal, data-default
-     , hashable, memory, servant, text, vector
+     , hashable, memory, servant, swagger2, template-haskell, text
+     , vector
      }:
      mkDerivation {
        pname = "battleplace";
-       version = "0.1.0.9";
-       sha256 = "1m6nk9zjsckd3s27hmmr2jy6v28bp7n1d6wriqfmhzw7rzydrgjl";
+       version = "0.1.0.10";
+       sha256 = "0a1a7bw30wz0hv5n78l58h5qmr6k5x58dnijll7dgksm51g7c3j8";
        libraryHaskellDepends = [
          aeson base bytestring cereal data-default hashable memory servant
-         text vector
+         swagger2 template-haskell text vector
        ];
        description = "Core definitions for BattlePlace.io service";
        license = stdenv.lib.licenses.mit;
@@ -38043,20 +38601,6 @@ self: {
      }) {};
 
   "bazel-runfiles" = callPackage
-    ({ mkDerivation, base, directory, filepath }:
-     mkDerivation {
-       pname = "bazel-runfiles";
-       version = "0.7.0.1";
-       sha256 = "000awjykargiirnmb3nfqp8dk1p87f5aqx2d07nxrrgflxs7y8ad";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base directory filepath ];
-       executableHaskellDepends = [ base filepath ];
-       description = "Locate Bazel runfiles location";
-       license = stdenv.lib.licenses.asl20;
-     }) {};
-
-  "bazel-runfiles_0_12" = callPackage
     ({ mkDerivation, base, directory, filepath, transformers }:
      mkDerivation {
        pname = "bazel-runfiles";
@@ -38068,7 +38612,6 @@ self: {
        executableHaskellDepends = [ base filepath ];
        description = "Locate Bazel runfiles location";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "bbdb" = callPackage
@@ -38523,6 +39066,34 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "bech32_1_1_0" = callPackage
+    ({ mkDerivation, array, base, base58-bytestring, bytestring
+     , containers, deepseq, extra, hspec, hspec-discover, memory
+     , optparse-applicative, process, QuickCheck, text, vector
+     }:
+     mkDerivation {
+       pname = "bech32";
+       version = "1.1.0";
+       sha256 = "0s7kqy128k71rnpv22awf643djhsyd8ipihx38lvslsxk8klr8i0";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base bytestring containers extra text
+       ];
+       executableHaskellDepends = [
+         base base58-bytestring bytestring extra memory optparse-applicative
+         text
+       ];
+       testHaskellDepends = [
+         base base58-bytestring bytestring containers deepseq extra hspec
+         memory process QuickCheck text vector
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Implementation of the Bech32 cryptocurrency address format (BIP 0173)";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "bech32-th" = callPackage
     ({ mkDerivation, base, bech32, hspec, hspec-discover
      , template-haskell, text
@@ -38646,8 +39217,8 @@ self: {
        pname = "bench";
        version = "1.0.12";
        sha256 = "1sy97qpv6paar2d5syppk6lc06wjx6qyz5aidsmh30jq853nydx6";
-       revision = "1";
-       editedCabalFile = "0sk6vkjwk7g1diwah67ifj7s69qvwi52ngaijkfx5prn0vz24ldn";
+       revision = "2";
+       editedCabalFile = "055482m81h7pijiszdkk2k65p208i3c3pxs955pv6h0gwrialcsh";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -38839,7 +39410,7 @@ self: {
          ghc-paths haskeline haskell-src-exts language-python monads-tf
          parseargs process transformers
        ];
-       description = "An implementation of Python 3.";
+       description = "An implementation of Python 3";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -39183,6 +39754,8 @@ self: {
        pname = "bifunctors";
        version = "5.5.7";
        sha256 = "0cimvd64jzd6dyxjw2kx8wqhd1x0z89pj0ppmsikj4afa3aa5cw8";
+       revision = "1";
+       editedCabalFile = "01jlhshvacdc9pi5il7jd6sphg33nf0iy3nlfkgn19xsrbc7168p";
        libraryHaskellDepends = [
          base base-orphans comonad containers tagged template-haskell
          th-abstraction transformers
@@ -39413,8 +39986,8 @@ self: {
        pname = "binary";
        version = "0.7.6.1";
        sha256 = "0rqhz349w72h1bi79lga5x1d95g59h15srlahxbhfrmy2pycm1cg";
-       revision = "2";
-       editedCabalFile = "0kk10dhawx3lravnlxi2f3n430k0qz3i5p8mpmi0bi6j72ihlddw";
+       revision = "3";
+       editedCabalFile = "0j9wsnqs0hymwwnp4n5qsqnz7lwcvblj3xa1b0yg0h8zwfsrfkci";
        libraryHaskellDepends = [ array base bytestring containers ];
        testHaskellDepends = [
          array base bytestring Cabal containers directory filepath HUnit
@@ -39644,13 +40217,20 @@ self: {
      }) {};
 
   "binary-io" = callPackage
-    ({ mkDerivation, base, binary, bytestring, hspec, process }:
+    ({ mkDerivation, async, base, binary, bytestring, concurrency
+     , deque, exceptions, hspec, process, stm, transformers
+     }:
      mkDerivation {
        pname = "binary-io";
-       version = "0.2.0";
-       sha256 = "1m58zjavqcri55diwz6fspbg5qx3qj3b82ch1g740zdr27ly0bwn";
-       libraryHaskellDepends = [ base binary bytestring ];
-       testHaskellDepends = [ base binary bytestring hspec process ];
+       version = "0.4.0";
+       sha256 = "0yqxrzkria4bycc23ywc6cz12n15cr3lmmcphamwr0ngdgn1lf9i";
+       libraryHaskellDepends = [
+         base binary bytestring concurrency deque exceptions process
+         transformers
+       ];
+       testHaskellDepends = [
+         async base binary bytestring hspec process stm
+       ];
        description = "Read and write values of types that implement Binary";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -39704,21 +40284,18 @@ self: {
      }) {};
 
   "binary-parser" = callPackage
-    ({ mkDerivation, base, base-prelude, bytestring, mtl
+    ({ mkDerivation, base, bytestring, mtl, QuickCheck
      , quickcheck-instances, rerebase, tasty, tasty-hunit
      , tasty-quickcheck, text, transformers
      }:
      mkDerivation {
        pname = "binary-parser";
-       version = "0.5.5";
-       sha256 = "1cs3zrhgnng2h84xnnvqcy6yrdm0xay1494dsa612y590s773aqx";
-       revision = "3";
-       editedCabalFile = "14n41yazmks2qw0v4krxcqw3ac0wdy2z53d0qz0rdjcd94fpghjf";
-       libraryHaskellDepends = [
-         base base-prelude bytestring mtl text transformers
-       ];
+       version = "0.5.6";
+       sha256 = "0s91289qh3xwbjm0zbnjj550asg1l801h5arx35j4msxrbwgcx3g";
+       libraryHaskellDepends = [ base bytestring mtl text transformers ];
        testHaskellDepends = [
-         quickcheck-instances rerebase tasty tasty-hunit tasty-quickcheck
+         QuickCheck quickcheck-instances rerebase tasty tasty-hunit
+         tasty-quickcheck
        ];
        description = "A highly-efficient but limited parser API specialised for bytestrings";
        license = stdenv.lib.licenses.mit;
@@ -39888,41 +40465,6 @@ self: {
      }) {};
 
   "binary-tagged" = callPackage
-    ({ mkDerivation, aeson, array, base, base16-bytestring, bifunctors
-     , binary, binary-instances, bytestring, containers, criterion
-     , cryptohash-sha1, deepseq, generics-sop, hashable, nats
-     , quickcheck-instances, scientific, semigroups, SHA, tagged, tasty
-     , tasty-hunit, tasty-quickcheck, text, time, unordered-containers
-     , vector
-     }:
-     mkDerivation {
-       pname = "binary-tagged";
-       version = "0.2";
-       sha256 = "1pgb2p0kdh9vkmgn509c2v3h9dnhl9vyq2gyisfqvn27g2422c0j";
-       revision = "1";
-       editedCabalFile = "0chv885zl8m7c6281sz8kfr2p7hgcl7xj0yjajjyr9whwfnylfj0";
-       libraryHaskellDepends = [
-         aeson array base base16-bytestring binary bytestring containers
-         cryptohash-sha1 generics-sop hashable scientific tagged text time
-         unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson array base base16-bytestring bifunctors binary
-         binary-instances bytestring containers generics-sop hashable
-         quickcheck-instances scientific tagged tasty tasty-hunit
-         tasty-quickcheck text time unordered-containers vector
-       ];
-       benchmarkHaskellDepends = [
-         aeson array base base16-bytestring binary binary-instances
-         bytestring containers criterion deepseq generics-sop hashable nats
-         scientific semigroups SHA tagged text time unordered-containers
-         vector
-       ];
-       description = "Tagged binary serialisation";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "binary-tagged_0_3" = callPackage
     ({ mkDerivation, array, base, base16-bytestring, binary
      , binary-instances, bytestring, containers, criterion, deepseq
      , QuickCheck, quickcheck-instances, singleton-bool, structured
@@ -39949,6 +40491,7 @@ self: {
        description = "Tagged binary serialisation";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "binary-tree" = callPackage
@@ -40018,8 +40561,8 @@ self: {
     ({ mkDerivation, base, binaryen }:
      mkDerivation {
        pname = "binaryen";
-       version = "0.0.1.1";
-       sha256 = "059j67lq63nzyivsmkwblsmbw8f3x079bng9cb174snp8yra8v8k";
+       version = "0.0.4.0";
+       sha256 = "1kgvzn5m2pq7ncid27n68p9axrdganna08wlp8csg9c22jixg7rg";
        libraryHaskellDepends = [ base ];
        librarySystemDepends = [ binaryen ];
        description = "Haskell bindings to binaryen";
@@ -40684,8 +41227,8 @@ self: {
     ({ mkDerivation, base, bindings-DSL, portaudio, vector }:
      mkDerivation {
        pname = "bindings-portaudio";
-       version = "0.2.1";
-       sha256 = "1i2r01jhf8k7820zzwqbss0z3kxd15pvdz7ss8s9gczv88nwxvxk";
+       version = "0.3";
+       sha256 = "0s8qmkx7psg6b5dbjdb90lz91rkbhfagss1c6idlhqvjjnipps90";
        libraryHaskellDepends = [ base bindings-DSL vector ];
        libraryPkgconfigDepends = [ portaudio ];
        description = "Low-level bindings to portaudio library";
@@ -40786,7 +41329,7 @@ self: {
        libraryHaskellDepends = [ base ];
        librarySystemDepends = [ sipc ];
        executableHaskellDepends = [ base ];
-       description = "Low level bindings to SIPC.";
+       description = "Low level bindings to SIPC";
        license = "LGPL";
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -41215,6 +41758,26 @@ self: {
        broken = true;
      }) {};
 
+  "bip32" = callPackage
+    ({ mkDerivation, base, base16-bytestring, base58-bytestring, binary
+     , bitcoin-hash, bitcoin-keys, bytestring, hedgehog, tasty
+     , tasty-hedgehog, tasty-hunit
+     }:
+     mkDerivation {
+       pname = "bip32";
+       version = "0.2";
+       sha256 = "1ji71m6mdnhqscadrmxs4pwb18cc5j91dhlnqs3d76gk32fyy32q";
+       libraryHaskellDepends = [
+         base base58-bytestring binary bitcoin-hash bitcoin-keys bytestring
+       ];
+       testHaskellDepends = [
+         base base16-bytestring base58-bytestring binary bitcoin-keys
+         bytestring hedgehog tasty tasty-hedgehog tasty-hunit
+       ];
+       description = "BIP-0032: Hierarchical Deterministic Wallets for Bitcoin and other cryptocurrencies";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "birch-beer" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cassava, colour
      , containers, deepseq, diagrams, diagrams-cairo, diagrams-graphviz
@@ -41227,8 +41790,8 @@ self: {
      }:
      mkDerivation {
        pname = "birch-beer";
-       version = "0.2.5.0";
-       sha256 = "11ijdd4j9yi3k2blzh8rpzix3w1hfsz188xqharwsk3sxqjbws5c";
+       version = "0.3.1.1";
+       sha256 = "0v2202zrnli49z4vw4zc6cgxvfqrv51b6p0svp0fdd2f9add4rvm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -41277,12 +41840,14 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "birds-of-paradise";
-       version = "0.1.1.0";
-       sha256 = "1s7d10m6p9zw9m3mkf20k45nna3ayvb4y2r9z3vslm9ahqazk5l8";
+       version = "0.2.0.0";
+       sha256 = "1jkj8li8yxl9kk5i8p63p9jkdcvdznmh473n12dxzimxnh15sf1y";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "Birds of Paradise";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "bisc" = callPackage
@@ -41332,8 +41897,8 @@ self: {
      }:
      mkDerivation {
        pname = "bishbosh";
-       version = "0.0.0.4";
-       sha256 = "0d9mn2jn1iv9x41c1yskfkx9d7papwn863gc1wffcb6aw8wg4mrz";
+       version = "0.0.0.6";
+       sha256 = "0gax0q1i86m0zb3gwfwmy59z8jnpri96dd9y73xbjyy4cjnwc32m";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -41352,6 +41917,8 @@ self: {
        ];
        description = "Plays chess";
        license = "GPL";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "bit-array" = callPackage
@@ -41438,6 +42005,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "bitcoin-address" = callPackage
+    ({ mkDerivation, base, base16-bytestring, base58-bytestring, bech32
+     , binary, bitcoin-hash, bitcoin-keys, bitcoin-script, bytestring
+     , hedgehog, tasty, tasty-hedgehog, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "bitcoin-address";
+       version = "0.1";
+       sha256 = "1pxxscq4giqgkk5dy55lmsypqssdddbwp25a7d3n04x3gd23j5ym";
+       libraryHaskellDepends = [
+         base base58-bytestring bech32 binary bitcoin-hash bitcoin-keys
+         bitcoin-script bytestring text
+       ];
+       testHaskellDepends = [
+         base base16-bytestring bitcoin-keys bitcoin-script bytestring
+         hedgehog tasty tasty-hedgehog tasty-hunit
+       ];
+       description = "Bitcoin address generation and rendering. Parsing coming soon.";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "bitcoin-api" = callPackage
     ({ mkDerivation, aeson, base, base58string, binary, bitcoin-block
      , bitcoin-script, bitcoin-tx, bitcoin-types, bytestring, hexstring
@@ -41510,6 +42100,44 @@ self: {
        broken = true;
      }) {};
 
+  "bitcoin-compact-filters" = callPackage
+    ({ mkDerivation, aeson, base, bitstream, bytestring, cereal
+     , haskoin-core, memory, tasty, tasty-hunit, tasty-quickcheck, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "bitcoin-compact-filters";
+       version = "0.1.0.0";
+       sha256 = "0ikirjf0n0np0l6mjfyfxvp367imbmb3g092m4mq457ja8yp7r8m";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base bitstream bytestring cereal haskoin-core memory text
+         transformers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring cereal haskoin-core tasty tasty-hunit
+         tasty-quickcheck text
+       ];
+       description = "BIP 158 compact block filters";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "bitcoin-hash" = callPackage
+    ({ mkDerivation, base, bytestring, cryptonite, memory, tasty
+     , tasty-hunit, time
+     }:
+     mkDerivation {
+       pname = "bitcoin-hash";
+       version = "0.1";
+       sha256 = "10xg9n1r505p4jh8mz43v48h1b3dck2mki27lkn9d8bh19jzk20k";
+       libraryHaskellDepends = [ base bytestring cryptonite memory ];
+       testHaskellDepends = [ base bytestring tasty tasty-hunit time ];
+       description = "Bitcoin hash primitives";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "bitcoin-hs" = callPackage
     ({ mkDerivation, array, base, binary, bytestring, containers
      , deepseq, directory, filepath, ghc-prim, HTTP, json, mtl, network
@@ -41535,6 +42163,23 @@ self: {
        broken = true;
      }) {};
 
+  "bitcoin-keys" = callPackage
+    ({ mkDerivation, base, base16-bytestring, bytestring, hedgehog
+     , secp256k1-haskell, tasty, tasty-hedgehog, tasty-hunit
+     }:
+     mkDerivation {
+       pname = "bitcoin-keys";
+       version = "0.1";
+       sha256 = "18xdwp3p2r1cv5f84mfl5dj2hd6v2dnvqam8ny9jv9kswn4m66c0";
+       libraryHaskellDepends = [ base bytestring secp256k1-haskell ];
+       testHaskellDepends = [
+         base base16-bytestring bytestring hedgehog tasty tasty-hedgehog
+         tasty-hunit
+       ];
+       description = "Bitcoin keys";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "bitcoin-payment-channel" = callPackage
     ({ mkDerivation, aeson, base, base16-bytestring, base64-bytestring
      , blockchain-restful-address-index-api, bytestring, cereal
@@ -41907,18 +42552,20 @@ self: {
 
   "bitset-word8" = callPackage
     ({ mkDerivation, base, bytestring, containers, criterion, deepseq
-     , hspec, QuickCheck, template-haskell, th-lift-instances, vector
+     , hspec, hspec-discover, QuickCheck, template-haskell
+     , th-lift-instances, vector
      }:
      mkDerivation {
        pname = "bitset-word8";
-       version = "0.1.1.1";
-       sha256 = "1pjjpqfqjnylfs5npnh7w75h9xk5gpkwzaqx0a972wa9h18gih7z";
+       version = "0.1.1.2";
+       sha256 = "06axklmjzwq2s9s3p5m5z0isl4smxhs8hij7zm9c7pd5hj7xhipj";
        libraryHaskellDepends = [
          base containers template-haskell th-lift-instances
        ];
        testHaskellDepends = [
          base containers hspec QuickCheck template-haskell th-lift-instances
        ];
+       testToolDepends = [ hspec-discover ];
        benchmarkHaskellDepends = [
          base bytestring containers criterion deepseq template-haskell
          th-lift-instances vector
@@ -41953,8 +42600,8 @@ self: {
      }:
      mkDerivation {
        pname = "bitstream";
-       version = "0.3.0.0";
-       sha256 = "12cyvrd7za5zh1idi5q4w0qbv0l4kjlsjascz6z4w2877zji7bvh";
+       version = "0.3.0.1";
+       sha256 = "0hkgjmhw7gc6m3yyva097q0z7f1wixlmm1ja0gpg9qkgzx6piyf0";
        libraryHaskellDepends = [
          base base-unicode-symbols bytestring vector
        ];
@@ -42315,34 +42962,6 @@ self: {
        broken = true;
      }) {};
 
-  "blank-canvas_0_6_2" = callPackage
-    ({ mkDerivation, aeson, base, base-compat, base64-bytestring
-     , bytestring, colour, containers, data-default-class, directory
-     , http-types, kansas-comet, mime-types, process, scotty, semigroups
-     , shake, stm, text, text-show, time, transformers, unix, vector
-     , wai, wai-extra, warp
-     }:
-     mkDerivation {
-       pname = "blank-canvas";
-       version = "0.6.2";
-       sha256 = "1qhdvxia8wlnv0ss9dsrxdfw3qsf376ypnpsijz7vxkj9dmzyq84";
-       revision = "5";
-       editedCabalFile = "1csa2lsr4jv9x3867l1nbd1brnvw10q9qla027r19csscx5pg726";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         aeson base base-compat base64-bytestring bytestring colour
-         containers data-default-class http-types kansas-comet mime-types
-         scotty semigroups stm text text-show transformers vector wai
-         wai-extra warp
-       ];
-       testHaskellDepends = [
-         base containers directory process shake stm text time unix vector
-       ];
-       description = "HTML5 Canvas Graphics Library";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
   "blank-canvas" = callPackage
     ({ mkDerivation, aeson, base, base-compat-batteries
      , base64-bytestring, bytestring, colour, containers
@@ -42352,10 +42971,10 @@ self: {
      }:
      mkDerivation {
        pname = "blank-canvas";
-       version = "0.7.1";
-       sha256 = "02w428jpb49yaqzw93121lf1m4pjxi8wniqhnrvqh2zh63gsfws1";
-       revision = "2";
-       editedCabalFile = "0rvdgsmlfkk135qx0y0df5r7sw9xv5i89r84q5ylf32icsivlrr7";
+       version = "0.7.2";
+       sha256 = "1i35z9q122my8vl5iyfn7ys3vqki9rscwpkyaka763qrfj94fvhk";
+       revision = "1";
+       editedCabalFile = "053vfv23ifyi12bh3xzz9qqi59w5ji8yyfmc59398px780bw9w77";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base base-compat-batteries base64-bytestring bytestring
@@ -42392,6 +43011,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "blanks_0_4_1" = callPackage
+    ({ mkDerivation, adjunctions, base, containers, deepseq
+     , distributive, megaparsec, mtl, tasty, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "blanks";
+       version = "0.4.1";
+       sha256 = "0qi2phi7vdq9i6cr8yab8qn4i0f2rxni0dcs063yi0glk1hy1ccx";
+       libraryHaskellDepends = [
+         adjunctions base containers deepseq distributive mtl
+       ];
+       testHaskellDepends = [
+         adjunctions base containers deepseq distributive megaparsec mtl
+         tasty tasty-hunit text
+       ];
+       description = "Fill-in-the-blanks - A library factoring out substitution from ASTs";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "blas" = callPackage
     ({ mkDerivation, base, ieee, QuickCheck, storable-complex }:
      mkDerivation {
@@ -42531,6 +43170,8 @@ self: {
        pname = "blaze-builder";
        version = "0.4.1.0";
        sha256 = "05681dih2d8s96an945wkbwl05w8ddbcfx8n3r3ck79ydyb8pz4i";
+       revision = "1";
+       editedCabalFile = "1p66mh9z3aqgind755xzf39pvl2hwjnwrlwiwyj653yzb1gn6c9j";
        libraryHaskellDepends = [ base bytestring deepseq text ];
        testHaskellDepends = [
          base bytestring HUnit QuickCheck test-framework
@@ -42702,8 +43343,8 @@ self: {
      }:
      mkDerivation {
        pname = "blaze-markup";
-       version = "0.8.2.5";
-       sha256 = "0qbnydx79pappwd4mzmmqq0pilpkiq7f6rqmqzpi2jjyfxlbmlqv";
+       version = "0.8.2.7";
+       sha256 = "1r4fij8qs1z4dfrh6cjzjbnx9f3jyx01zgj15wvy961d8bnqjr4b";
        libraryHaskellDepends = [ base blaze-builder bytestring text ];
        testHaskellDepends = [
          base blaze-builder bytestring containers HUnit QuickCheck tasty
@@ -43153,6 +43794,58 @@ self: {
        broken = true;
      }) {};
 
+  "blucontrol" = callPackage
+    ({ mkDerivation, base, containers, data-default, deepseq, directory
+     , filepath, finite-typelits, hspec, libX11, libXrandr, lifted-base
+     , monad-control, mtl, process, QuickCheck, text, time, transformers
+     , transformers-base, unix, X11
+     }:
+     mkDerivation {
+       pname = "blucontrol";
+       version = "0.2.1.1";
+       sha256 = "087bk9fxjgavrprba7ffyb91jv7ms8k7mlq9s5963lkpdf5636n7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers data-default deepseq directory filepath
+         finite-typelits lifted-base monad-control mtl process text time
+         transformers transformers-base unix X11
+       ];
+       librarySystemDepends = [ libX11 libXrandr ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base data-default deepseq hspec mtl QuickCheck time
+       ];
+       description = "Configurable blue light filter";
+       license = stdenv.lib.licenses.bsd3;
+     }) {inherit (pkgs.xorg) libX11; inherit (pkgs.xorg) libXrandr;};
+
+  "bludigon" = callPackage
+    ({ mkDerivation, base, containers, data-default, deepseq, directory
+     , filepath, finite-typelits, hspec, libX11, libXrandr, lifted-base
+     , monad-control, mtl, process, QuickCheck, text, time, transformers
+     , transformers-base, unix, X11
+     }:
+     mkDerivation {
+       pname = "bludigon";
+       version = "0.1.1.0";
+       sha256 = "1l6rc79wb9822qjrs9zvm53qp6dd0h8lp5sln55wqa0qzq5xq9mk";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers data-default deepseq directory filepath
+         finite-typelits lifted-base monad-control mtl process text time
+         transformers transformers-base unix X11
+       ];
+       librarySystemDepends = [ libX11 libXrandr ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base data-default deepseq hspec mtl QuickCheck time
+       ];
+       description = "Configurable blue light filter";
+       license = stdenv.lib.licenses.bsd3;
+     }) {inherit (pkgs.xorg) libX11; inherit (pkgs.xorg) libXrandr;};
+
   "bluemix-sdk" = callPackage
     ({ mkDerivation, aeson, base, bytestring, http-client, http-types
      , text, vector
@@ -43644,8 +44337,8 @@ self: {
      }:
      mkDerivation {
        pname = "boolector";
-       version = "0.0.0.11";
-       sha256 = "1mj6pjh4vg7dziil68p8k60sn6s721jxdgpsq9kk1h05v67lh5fz";
+       version = "0.0.0.13";
+       sha256 = "0by1pw9i0f9kb81pd3ivi0rz9yxxzvmlg338p45wqf1k583c6jrg";
        libraryHaskellDepends = [
          base containers directory mtl temporary time
        ];
@@ -44163,37 +44856,79 @@ self: {
        ];
        description = "audio-visual pseudo-physical simulation of colliding circles";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "box" = callPackage
-    ({ mkDerivation, async, attoparsec, base, concurrency
-     , contravariant, dejafu, doctest, exceptions, foldl, generic-lens
-     , lens, managed, mtl, pipes, profunctors, protolude, random
-     , streaming, text, time, transformers, transformers-base
-     , typed-process, websockets
+    ({ mkDerivation, attoparsec, base, comonad, concurrency
+     , contravariant, dejafu, doctest, exceptions, generic-lens, lens
+     , mmorph, mtl, numhask, optparse-generic, profunctors, random, text
+     , time, transformers, transformers-base, websockets
      }:
      mkDerivation {
        pname = "box";
-       version = "0.4.0";
-       sha256 = "0vacsh2b6sdsy360513hpij5bdwr74x0aawfm64m7iw3a7909fpj";
+       version = "0.6.0";
+       sha256 = "0kv3j0fh2ahn4x2lgpghhkrbw5y1cy5mdlrriycqv4slrdzaqyks";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         async attoparsec base concurrency contravariant exceptions foldl
-         lens pipes profunctors protolude streaming text time transformers
-         transformers-base typed-process
+         attoparsec base comonad concurrency contravariant exceptions lens
+         mmorph numhask profunctors text time transformers transformers-base
        ];
        executableHaskellDepends = [
-         base concurrency dejafu generic-lens lens managed mtl protolude
-         random streaming text transformers websockets
+         base concurrency dejafu exceptions generic-lens lens mtl numhask
+         optparse-generic random text transformers websockets
        ];
-       testHaskellDepends = [ base doctest ];
+       testHaskellDepends = [ base doctest numhask ];
        description = "boxes";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
+  "box-csv" = callPackage
+    ({ mkDerivation, attoparsec, base, box, doctest, generic-lens, lens
+     , numhask, scientific, text, time
+     }:
+     mkDerivation {
+       pname = "box-csv";
+       version = "0.0.2";
+       sha256 = "09qmxd9mxyag6zx8y5yv7bphycbs35zfkkf7kvkdmjqdk7l7b0fd";
+       libraryHaskellDepends = [
+         attoparsec base box generic-lens lens numhask scientific text time
+       ];
+       testHaskellDepends = [ base doctest numhask ];
+       description = "See readme.md";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "box-socket" = callPackage
+    ({ mkDerivation, base, box, concurrency, doctest, exceptions
+     , generic-lens, lens, numhask, optparse-generic, websockets
+     }:
+     mkDerivation {
+       pname = "box-socket";
+       version = "0.0.2";
+       sha256 = "0wf7smpzczqm0yqnphmp46bgm67nyhj0swn0vxhdgb8z0362szsp";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base box concurrency exceptions generic-lens lens numhask
+         websockets
+       ];
+       executableHaskellDepends = [
+         base box concurrency generic-lens lens numhask optparse-generic
+       ];
+       testHaskellDepends = [ base doctest numhask ];
+       description = "See readme.md";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "box-tuples" = callPackage
     ({ mkDerivation, base, ghc-prim }:
      mkDerivation {
@@ -44415,7 +45150,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "brick_0_54" = callPackage
+  "brick_0_55" = callPackage
     ({ mkDerivation, base, bytestring, config-ini, containers
      , contravariant, data-clist, deepseq, directory, dlist, exceptions
      , filepath, microlens, microlens-mtl, microlens-th, QuickCheck, stm
@@ -44424,8 +45159,10 @@ self: {
      }:
      mkDerivation {
        pname = "brick";
-       version = "0.54";
-       sha256 = "10a20w01wyi6rg883s9gcgkyr8vn317y67bmf7wa71lrhl283khv";
+       version = "0.55";
+       sha256 = "0n51vh8j75a2b6qbfah9k9zrp15m4rkq7fywpp811v93h8zf02fy";
+       revision = "1";
+       editedCabalFile = "1kn5nksvds8njy8zv7bq7gankngfam3dl1if0qvlhsfdl3n3d1zr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -44698,6 +45435,8 @@ self: {
        pname = "broadcast-chan";
        version = "0.2.1.1";
        sha256 = "01r57v2ghfkv37cwh64zs1lrz1rd7is3pa5k7y8h16ws1ddglirg";
+       revision = "1";
+       editedCabalFile = "1kmnsnyb4gz70bka30l35lgm5k131d8lc1hm4b23aml2yskx3m54";
        libraryHaskellDepends = [ base transformers unliftio-core ];
        benchmarkHaskellDepends = [ async base criterion deepseq stm ];
        description = "Closable, fair, single-wakeup channel type that avoids 0 reader space leaks";
@@ -44775,19 +45514,19 @@ self: {
 
   "brok" = callPackage
     ({ mkDerivation, ansi-terminal, attoparsec, base, classy-prelude
-     , connection, directory, file-embed, http-client, http-client-tls
-     , http-conduit, tasty, tasty-discover, tasty-expected-failure
-     , tasty-hunit, template-haskell, text, time
+     , connection, containers, directory, file-embed, http-client
+     , http-client-tls, http-conduit, tasty, tasty-discover
+     , tasty-expected-failure, tasty-hunit, template-haskell, text, time
      }:
      mkDerivation {
        pname = "brok";
-       version = "1.0.0";
-       sha256 = "07zi88xsacacqw6mg87ipic5y72vjpn9mx789bk9gk4jvd69z7x1";
+       version = "1.1.0";
+       sha256 = "0y8gppdyhwwlpw3d0kii2varqd25lxq3813xnjm632h4942l76xv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         ansi-terminal attoparsec base classy-prelude connection directory
-         file-embed http-client http-client-tls http-conduit
+         ansi-terminal attoparsec base classy-prelude connection containers
+         directory file-embed http-client http-client-tls http-conduit
          template-haskell text time
        ];
        executableHaskellDepends = [ base classy-prelude file-embed ];
@@ -44951,8 +45690,8 @@ self: {
        pname = "bsb-http-chunked";
        version = "0.0.0.4";
        sha256 = "0z0f18yc6zlwh29c6175ivfcin325lvi4irpvv0n3cmq7vi0k0ql";
-       revision = "2";
-       editedCabalFile = "0bz62lxdbnwkfr1d4ngm8xi4y1ndpdflbv71s6h43vp5lbd546hr";
+       revision = "3";
+       editedCabalFile = "15hg352id2f4x0dnvv47bdiz6gv5hp5a2mki9yzmhc7ajpk31mdd";
        libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [
          attoparsec base blaze-builder bytestring doctest hedgehog tasty
@@ -45003,8 +45742,8 @@ self: {
     ({ mkDerivation, base, bson, ghc-prim, text }:
      mkDerivation {
        pname = "bson-generic";
-       version = "0.0.8.1";
-       sha256 = "0zl74si1cxpdj3sl7mmrdsdjk8iqpy14y6bgjhj350bx1hb8v7wv";
+       version = "0.0.9";
+       sha256 = "11a8k6rngz5rdgccwnifiydsfc87hlgy4mp6chi30m2jvdq92imb";
        libraryHaskellDepends = [ base bson ghc-prim text ];
        description = "Generic functionality for BSON";
        license = stdenv.lib.licenses.bsd3;
@@ -45412,6 +46151,28 @@ self: {
        broken = true;
      }) {};
 
+  "bugzilla-redhat" = callPackage
+    ({ mkDerivation, aeson, base, blaze-builder, bytestring, connection
+     , containers, http-conduit, http-types, iso8601-time, resourcet
+     , text, time, transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "bugzilla-redhat";
+       version = "0.3.0";
+       sha256 = "1d751f1219ivx9bfdl7xb89w2vns07ciqp4cqcykixnllx2jx18y";
+       revision = "1";
+       editedCabalFile = "145sdnk28sxwz4s1gh0qq6vzm9q6s5433q6w1199cv9585b53kcx";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base blaze-builder bytestring connection containers
+         http-conduit http-types iso8601-time resourcet text time
+         transformers unordered-containers vector
+       ];
+       description = "A Haskell interface to the Bugzilla native REST API";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "build" = callPackage
     ({ mkDerivation, algebraic-graphs, base, containers, extra
      , filepath, mtl, random, transformers
@@ -45671,8 +46432,8 @@ self: {
      }:
      mkDerivation {
        pname = "burrito";
-       version = "1.1.0.1";
-       sha256 = "197lchafv56g8kcxzfgdgkcygi5f8bddxqzhbsvb8c0gwlv7g270";
+       version = "1.2.0.0";
+       sha256 = "1nrb08czlnfcgb7v59vzkffik2w5yp833la4mq6sp6sgnm0ylgya";
        libraryHaskellDepends = [
          base bytestring containers parsec template-haskell text
          transformers
@@ -45770,15 +46531,15 @@ self: {
      }) {};
 
   "bustle" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, cairo, containers, dbus
-     , directory, filepath, gio, glib, gtk3, HUnit, mtl, pango, pcap
-     , process, QuickCheck, system-glib, test-framework
-     , test-framework-hunit, text, time
+    ({ mkDerivation, base, bytestring, Cabal, cairo, containers
+     , directory, filepath, gio, gio-unix, glib, gtk3, HUnit, libpcap
+     , mtl, pango, process, QuickCheck, system-glib, test-framework
+     , test-framework-hunit, text, time, transformers
      }:
      mkDerivation {
        pname = "bustle";
-       version = "0.7.5";
-       sha256 = "0r0ng67b2q9ww0adv1fdrpmgmdyjqv6ksd9g6kkn9cjwnaascq3p";
+       version = "0.8.0";
+       sha256 = "0g2p4s3z0xqng8bhcqml6dvvshmn8xlyhqz77jdcvcvxm7cykcrg";
        configureFlags = [ "-f-hgettext" ];
        isLibrary = false;
        isExecutable = true;
@@ -45786,16 +46547,21 @@ self: {
        setupHaskellDepends = [ base Cabal directory filepath process ];
        libraryPkgconfigDepends = [ system-glib ];
        executableHaskellDepends = [
-         base bytestring cairo containers dbus directory filepath gio glib
-         gtk3 mtl pango pcap process text time
+         base bytestring cairo containers directory filepath gio glib gtk3
+         mtl pango process text time transformers
        ];
+       executableSystemDepends = [ libpcap ];
        testHaskellDepends = [
-         base bytestring cairo containers dbus directory filepath gtk3 HUnit
-         mtl pango pcap QuickCheck test-framework test-framework-hunit text
+         base bytestring cairo containers directory filepath glib gtk3 HUnit
+         mtl pango QuickCheck test-framework test-framework-hunit text
+         transformers
        ];
+       testSystemDepends = [ libpcap ];
+       testPkgconfigDepends = [ gio-unix ];
        description = "Draw sequence diagrams of D-Bus traffic";
        license = stdenv.lib.licenses.lgpl21Plus;
-     }) {system-glib = pkgs.glib;};
+     }) {gio-unix = null; inherit (pkgs) libpcap; 
+         system-glib = pkgs.glib;};
 
   "butcher" = callPackage
     ({ mkDerivation, base, bifunctors, containers, deque, extra, free
@@ -45804,8 +46570,8 @@ self: {
      }:
      mkDerivation {
        pname = "butcher";
-       version = "1.3.3.1";
-       sha256 = "0nqn057b5g8p6nj9xpbg52swiwzncirgfmzp3l1z5d8yn641zp1n";
+       version = "1.3.3.2";
+       sha256 = "06qgqjc8h7dd786wkcwrxpl6bsd66jzywwcnhm52q0cb9678w3qx";
        libraryHaskellDepends = [
          base bifunctors containers deque extra free microlens microlens-th
          mtl multistate pretty transformers unsafe void
@@ -45921,8 +46687,8 @@ self: {
      }:
      mkDerivation {
        pname = "bv-sized";
-       version = "1.0.1";
-       sha256 = "12l69p95z1ihwbfhlm0wyr1bdhs52ng4fvdsqxhgn0bpx9skzw73";
+       version = "1.0.2";
+       sha256 = "0lx7cm7404r71ciksv8g58797k6x02zh337ra88syhj7nzlnij5w";
        libraryHaskellDepends = [
          base bitwise bytestring panic parameterized-utils th-lift
        ];
@@ -45936,21 +46702,27 @@ self: {
      }) {};
 
   "byline" = callPackage
-    ({ mkDerivation, ansi-terminal, base, colour, containers
-     , exceptions, haskeline, mtl, terminfo-hs, text, transformers
+    ({ mkDerivation, ansi-terminal, base, colour, exceptions, free
+     , haskeline, mtl, relude, tasty, tasty-hunit, terminfo-hs, text
      }:
      mkDerivation {
        pname = "byline";
-       version = "0.4.0.0";
-       sha256 = "1q8xb5b194ywm1sacxx47yhicww3m9hpffidgpj6l79fjqivgv09";
+       version = "1.0.0.0";
+       sha256 = "1jwjdjiraq37pr2ysc9h5qqlma6j7rd2dkip2y2f6bx07d1v7fpr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         ansi-terminal base colour containers exceptions haskeline mtl
-         terminfo-hs text transformers
+         ansi-terminal base colour exceptions free haskeline mtl relude
+         terminfo-hs text
+       ];
+       testHaskellDepends = [
+         ansi-terminal base colour exceptions free haskeline mtl relude
+         tasty tasty-hunit terminfo-hs text
        ];
        description = "Library for creating command-line interfaces (colors, menus, etc.)";
        license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "bytable" = callPackage
@@ -45971,8 +46743,8 @@ self: {
      }:
      mkDerivation {
        pname = "byte-count-reader";
-       version = "0.10.0.1";
-       sha256 = "0ibckpy0wz2f8590z92lvkmwcf29lv6sby1y3cz3cihxvp3bw3il";
+       version = "0.10.1.1";
+       sha256 = "0amzhcy60rmiyfp7cgdg7g1xcf7z5zz43kg18i1bwwj565ipb6p8";
        libraryHaskellDepends = [ base extra parsec parsec-numbers text ];
        testHaskellDepends = [
          base extra hspec parsec parsec-numbers text
@@ -46020,33 +46792,6 @@ self: {
 
   "bytebuild" = callPackage
     ({ mkDerivation, base, byteslice, bytestring, gauge
-     , natural-arithmetic, primitive, primitive-offset
-     , primitive-unlifted, QuickCheck, quickcheck-classes, run-st, tasty
-     , tasty-hunit, tasty-quickcheck, text, text-short, vector
-     , wide-word
-     }:
-     mkDerivation {
-       pname = "bytebuild";
-       version = "0.3.4.0";
-       sha256 = "00kda7qz92vfqldq2ksxx8qf1v4kl0wm2w2fxg6m2nkpqfzlv026";
-       libraryHaskellDepends = [
-         base byteslice bytestring natural-arithmetic primitive
-         primitive-offset primitive-unlifted run-st text-short wide-word
-       ];
-       testHaskellDepends = [
-         base byteslice bytestring natural-arithmetic primitive
-         primitive-unlifted QuickCheck quickcheck-classes tasty tasty-hunit
-         tasty-quickcheck text vector wide-word
-       ];
-       benchmarkHaskellDepends = [
-         base byteslice gauge natural-arithmetic primitive text-short
-       ];
-       description = "Serialize to a small byte arrays";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "bytebuild_0_3_5_0" = callPackage
-    ({ mkDerivation, base, byteslice, bytestring, gauge
      , integer-logarithms, natural-arithmetic, primitive
      , primitive-offset, primitive-unlifted, QuickCheck
      , quickcheck-classes, quickcheck-instances, run-st, tasty
@@ -46055,8 +46800,8 @@ self: {
      }:
      mkDerivation {
        pname = "bytebuild";
-       version = "0.3.5.0";
-       sha256 = "15ccfbhrvb6pj9py99qpbdrrfla83797ywmxjry2c7raaz3kpr73";
+       version = "0.3.6.0";
+       sha256 = "15nk9r9mx798kmjl04qf01il1csfjyi3jx44yhi4hmgl66p9fdx3";
        libraryHaskellDepends = [
          base byteslice bytestring integer-logarithms natural-arithmetic
          primitive primitive-offset primitive-unlifted run-st text-short
@@ -46073,7 +46818,6 @@ self: {
        ];
        description = "Serialize to a small byte arrays";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "bytedump" = callPackage
@@ -46129,6 +46873,8 @@ self: {
        ];
        description = "Fast logging";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "byteorder" = callPackage
@@ -46181,27 +46927,6 @@ self: {
   "byteslice" = callPackage
     ({ mkDerivation, base, bytestring, gauge, primitive, primitive-addr
      , primitive-unlifted, quickcheck-classes, run-st, tasty
-     , tasty-hunit, tasty-quickcheck
-     }:
-     mkDerivation {
-       pname = "byteslice";
-       version = "0.2.2.0";
-       sha256 = "0ml3igz9rgrbwvpb883f6sz2j73isxf58iskfpisjgsx8lmgdl4c";
-       libraryHaskellDepends = [
-         base primitive primitive-addr primitive-unlifted run-st
-       ];
-       testHaskellDepends = [
-         base bytestring primitive quickcheck-classes tasty tasty-hunit
-         tasty-quickcheck
-       ];
-       benchmarkHaskellDepends = [ base gauge primitive ];
-       description = "Slicing managed and unmanaged memory";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "byteslice_0_2_3_0" = callPackage
-    ({ mkDerivation, base, bytestring, gauge, primitive, primitive-addr
-     , primitive-unlifted, quickcheck-classes, run-st, tasty
      , tasty-hunit, tasty-quickcheck, tuples, vector
      }:
      mkDerivation {
@@ -46219,7 +46944,6 @@ self: {
        benchmarkHaskellDepends = [ base gauge primitive ];
        description = "Slicing managed and unmanaged memory";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "bytesmith" = callPackage
@@ -46229,8 +46953,8 @@ self: {
      }:
      mkDerivation {
        pname = "bytesmith";
-       version = "0.3.6.0";
-       sha256 = "0idkkmmw5n8dv7hx236s1543n0k6gsj9s0yk6fggbaqydlsxn641";
+       version = "0.3.7.0";
+       sha256 = "13dc4cwiga63wmnw9hl332d8gvqjl4yl0p09z2pkmwl81br7ybrc";
        libraryHaskellDepends = [
          base byteslice bytestring contiguous primitive run-st text-short
          wide-word
@@ -46246,21 +46970,13 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "bytestring_0_10_10_0" = callPackage
-    ({ mkDerivation, base, byteorder, deepseq, directory, dlist
-     , ghc-prim, HUnit, integer-gmp, mtl, QuickCheck, random
-     , test-framework, test-framework-hunit, test-framework-quickcheck2
-     }:
+  "bytestring_0_11_0_0" = callPackage
+    ({ mkDerivation, base, deepseq, ghc-prim, integer-gmp }:
      mkDerivation {
        pname = "bytestring";
-       version = "0.10.10.0";
-       sha256 = "1h94lyyn4fpklm25dsazj9za08m0vz9irafpza90h9j5wx4qpndq";
+       version = "0.11.0.0";
+       sha256 = "03fwkbn52946y2l1ddrqq1jp8l9bhgi0gwxpz1wqqsn6n2vz5rrj";
        libraryHaskellDepends = [ base deepseq ghc-prim integer-gmp ];
-       testHaskellDepends = [
-         base byteorder deepseq directory dlist ghc-prim HUnit mtl
-         QuickCheck random test-framework test-framework-hunit
-         test-framework-quickcheck2
-       ];
        description = "Fast, compact, strict and lazy byte strings with a list interface";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -46455,6 +47171,8 @@ self: {
        pname = "bytestring-lexing";
        version = "0.5.0.2";
        sha256 = "0wrzniawhgpphc6yx1v972gyqxdbv0pizaz9bafahrshyb9svy81";
+       revision = "1";
+       editedCabalFile = "0icnbv83h542vkmn51ykzc4w1g7nl4w6d6lj79909hnwr2g10616";
        libraryHaskellDepends = [ base bytestring ];
        description = "Parse and produce literals efficiently from strict or lazy bytestrings";
        license = stdenv.lib.licenses.bsd2;
@@ -46829,10 +47547,8 @@ self: {
     ({ mkDerivation, base, bytestring, bzip2 }:
      mkDerivation {
        pname = "bzlib";
-       version = "0.5.0.5";
-       sha256 = "0zh130vw719a8d11q5qzc3ilzgv8cqyc2a7r1a131cv1fjnd1rwy";
-       revision = "1";
-       editedCabalFile = "1d4ra5prh2q9h8inpwvrsmkmg1ndisdj47jv06iijpj6xdp5bapl";
+       version = "0.5.1.0";
+       sha256 = "1n599xwyxghf52kam30k1l2qh8cg91h55c2bgchnqyj103hb7nfy";
        libraryHaskellDepends = [ base bytestring ];
        librarySystemDepends = [ bzip2 ];
        description = "Compression and decompression in the bzip2 format";
@@ -46919,8 +47635,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "c-storable";
-       version = "0.2";
-       sha256 = "03ynlm6nbm2hsqp0bpcqj3kp1hbg2pnif44zrgj8rda8dmsczm9j";
+       version = "0.3";
+       sha256 = "0i39cm4sgd8bmx8yhfbdm8625fvig12f5m709v6603v7qdzlygz4";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base ];
        description = "CStorable class";
@@ -46979,6 +47695,19 @@ self: {
        broken = true;
      }) {};
 
+  "c14n" = callPackage
+    ({ mkDerivation, base, bytestring, libxml2 }:
+     mkDerivation {
+       pname = "c14n";
+       version = "0.1.0.1";
+       sha256 = "0j5g36sxz6bp2z0z10d47lqh7rmclx3296zafc5vzns8d884sm0n";
+       libraryHaskellDepends = [ base bytestring ];
+       librarySystemDepends = [ libxml2 ];
+       libraryPkgconfigDepends = [ libxml2 ];
+       description = "Bindings to the c14n implementation in libxml";
+       license = stdenv.lib.licenses.mit;
+     }) {inherit (pkgs) libxml2;};
+
   "c2ats" = callPackage
     ({ mkDerivation, base, containers, HUnit, language-c, pretty
      , regex-posix, test-framework, test-framework-hunit
@@ -47062,8 +47791,6 @@ self: {
        testHaskellDepends = [ base here hspec logging monad-logger text ];
        description = "Convert C API header files to .hsc and .hsc.helper.c files";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "ca" = callPackage
@@ -47160,6 +47887,17 @@ self: {
        broken = true;
      }) {};
 
+  "cabal-auto-expose" = callPackage
+    ({ mkDerivation, base, Cabal, directory, extra, filepath }:
+     mkDerivation {
+       pname = "cabal-auto-expose";
+       version = "0.1.0.0";
+       sha256 = "1dynrsp1j2y1ylmqc3fkz5nfa5slljxgg0x322j64rljgjqglfy2";
+       libraryHaskellDepends = [ base Cabal directory extra filepath ];
+       description = "Build time library that autodetects exposed modules";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "cabal-bounds" = callPackage
     ({ mkDerivation, aeson, base, bytestring, Cabal, cabal-lenses
      , cmdargs, directory, filepath, Glob, lens, lens-aeson, process
@@ -47168,8 +47906,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-bounds";
-       version = "2.2.1";
-       sha256 = "13pqdmghs92rwkg8fkky30sqimq54yzw2y1z5czdsmlj46r8i6ij";
+       version = "2.3.0";
+       sha256 = "106q5imjznbh7x2pvvgfsn8qx1awb00w0mgfrkkzbwnwc3g8jnw3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47180,10 +47918,8 @@ self: {
        testHaskellDepends = [
          base directory filepath Glob process tasty tasty-golden
        ];
-       description = "A command line program for managing the bounds/versions of the dependencies in a cabal file";
+       description = "A command line program for managing the dependency versions in a cabal file";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "cabal-build-programs" = callPackage
@@ -47227,10 +47963,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-cache";
-       version = "1.0.1.8";
-       sha256 = "0yxq73bdw1ai0yv54prcxpm1ygkpa8m0jnznwm975b82qlmplynw";
-       revision = "1";
-       editedCabalFile = "1rikn1g6v8yga0cs031ckxywfcf9g21ww9s5rkjf6lr4xvfqps2s";
+       version = "1.0.1.9";
+       sha256 = "1s28h1lnzdgzg0h3d85rzjrg885qpbvw0998bxiani4kf9xx6nkp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47261,8 +47995,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-cargs";
-       version = "1.2.0";
-       sha256 = "10dqy2i2rq4hq81v2gar2bsq3glx5yg5mwp9a0h7drap69407ygs";
+       version = "1.3.0";
+       sha256 = "08n2n0p3m282yx7cf1nzmlfmw0xikqwrj3l1s8jmx18z2gh0x1h4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47323,8 +48057,32 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-debian";
-       version = "5.0.2";
-       sha256 = "0586sjda7ar8p243m92csz3d35smpzlxvyh09rl4fllgzhazxn5f";
+       version = "5.0.3";
+       sha256 = "11imbizfa65fdqydpxvcdv0a80gsd6szzl33b312myw3il2xr5hi";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-wl-pprint base bifunctors Cabal containers data-default debian
+         deepseq Diff directory exceptions filepath hsemail HUnit lens mtl
+         network-uri newtype-generics optparse-applicative parsec pretty
+         process pureMD5 regex-tdfa syb text unix unliftio utf8-string
+       ];
+       executableHaskellDepends = [ base Cabal debian lens mtl pretty ];
+       description = "Create a Debianization for a Cabal package";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "cabal-debian_5_1" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, base, bifunctors, Cabal
+     , containers, data-default, debian, deepseq, Diff, directory
+     , exceptions, filepath, hsemail, HUnit, lens, mtl, network-uri
+     , newtype-generics, optparse-applicative, parsec, pretty, process
+     , pureMD5, regex-tdfa, syb, text, unix, unliftio, utf8-string
+     }:
+     mkDerivation {
+       pname = "cabal-debian";
+       version = "5.1";
+       sha256 = "14kh2s61m7wm9h0ms4dlpfvqr2gd8fv0w44ar3c3dg5053hwrvny";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47336,6 +48094,7 @@ self: {
        executableHaskellDepends = [ base Cabal debian lens mtl pretty ];
        description = "Create a Debianization for a Cabal package";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "cabal-dependency-licenses" = callPackage
@@ -47400,13 +48159,34 @@ self: {
        pname = "cabal-doctest";
        version = "1.0.8";
        sha256 = "03if74imlhhk7m56nci5f1wclniwqdmwl4hl177040j1gnlac9i0";
-       revision = "1";
-       editedCabalFile = "0z0r7h2y5six2zgfylcwr9g4j78qph35zqglk9lz4za1klvgdprl";
+       revision = "2";
+       editedCabalFile = "05v1awad3d1wvc763xcgvxm4n6n7bs7byc6s14kdbw35zcaddlcb";
        libraryHaskellDepends = [ base Cabal directory filepath ];
        description = "A Setup.hs helper for doctests running";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "cabal-edit" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, directory
+     , filepath, Glob, hackage-db, optparse-applicative, process, store
+     , time
+     }:
+     mkDerivation {
+       pname = "cabal-edit";
+       version = "0.1.0.0";
+       sha256 = "1irk50d1m0zzhp2s5c1qs4nq1ivp5638lapbzlc3ygx92nrskvr7";
+       revision = "1";
+       editedCabalFile = "176sa5lms18gxnswgfil2y1a7qf6w96wavb5kpwic05fnxw6s26m";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring Cabal containers directory filepath Glob hackage-db
+         optparse-applicative process store time
+       ];
+       description = "Cabal utility";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "cabal-file" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, directory, extra
      , filepath, hackage-security, optparse-applicative, simple-cabal
@@ -47453,34 +48233,10 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-flatpak";
-       version = "0.1";
-       sha256 = "0f42sfqf0n7yizvvn6mvb9fbfrqzyanm10v9lk895jg6cryxy20j";
-       revision = "1";
-       editedCabalFile = "05q1bpjvkq7g6q5fx1p44h562i9m6vqffy43arc26zpfgssm59z2";
-       isLibrary = false;
-       isExecutable = true;
-       executableHaskellDepends = [
-         aeson aeson-pretty base bytestring cabal-plan containers
-         cryptohash-sha256 http-client http-client-tls http-types
-         optparse-applicative pathtype shell-utility tar text utility-ht
-         zlib
-       ];
-       description = "Generate a FlatPak manifest from a Cabal package description";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "cabal-flatpak_0_1_0_2" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, cabal-plan
-     , containers, cryptohash-sha256, http-client, http-client-tls
-     , http-types, optparse-applicative, pathtype, shell-utility, tar
-     , text, utility-ht, zlib
-     }:
-     mkDerivation {
-       pname = "cabal-flatpak";
        version = "0.1.0.2";
        sha256 = "1h7yklhqrsgxk841fryxz0sk03zb02p34g1nvwdz6c6mfpwc8y54";
-       revision = "1";
-       editedCabalFile = "0ba63swfx2xd6aw2iq1nkrl9932hvkn3lf7x74wqimcykm4vbws7";
+       revision = "2";
+       editedCabalFile = "0mf387hkxshcbss739c66j0hc1143r9lns3p3aw1l76as9lbdlwj";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -47491,7 +48247,6 @@ self: {
        ];
        description = "Generate a FlatPak manifest from a Cabal package description";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "cabal-fmt" = callPackage
@@ -47501,8 +48256,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-fmt";
-       version = "0.1.3";
-       sha256 = "1d91kmx2q6ygx2avwgi9ihkdazngjf7i3ajyp3cmry5ahvv62x7z";
+       version = "0.1.4";
+       sha256 = "0akc63g7h21nyyr9m0dwjlnxqw8k26zx5s2mzn8zak2q9i88ds1b";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47513,7 +48268,8 @@ self: {
          base bytestring directory filepath optparse-applicative
        ];
        testHaskellDepends = [
-         base bytestring Cabal filepath process tasty tasty-golden
+         base bytestring Cabal containers filepath process tasty
+         tasty-golden
        ];
        doHaddock = false;
        description = "Format .cabal files";
@@ -47581,6 +48337,8 @@ self: {
        pname = "cabal-helper";
        version = "1.1.0.0";
        sha256 = "1f4s46l60s1lcdia7nv2r3y71z5c6pg6ljcc0601abl1aklx303p";
+       revision = "1";
+       editedCabalFile = "08fyxvpqbp0r6hiqxi5wc944phr8zgmkv7hiw71zcavl09c8mvxf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47751,18 +48509,14 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-lenses";
-       version = "0.9.0";
-       sha256 = "0rvkwqzz92p85i9xwcxg3ah4imxh46ficg6yk0l6g9687970gfrg";
-       revision = "1";
-       editedCabalFile = "0snzm6qvalyczmdicff5fsradk3h1bm3cqcax6rmwzr7xa1j43p7";
+       version = "0.10.1";
+       sha256 = "0pjzz5d2s6b2xaqgb7z3ry5zpba84x3iy2hw3a7xq32ciyl3gnhb";
        libraryHaskellDepends = [
          base Cabal lens strict system-fileio system-filepath text
          transformers unordered-containers
        ];
        description = "Lenses and traversals for the Cabal library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "cabal-macosx" = callPackage
@@ -47861,39 +48615,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal-plan";
-       version = "0.6.2.0";
-       sha256 = "0gwbyyj4xih9barg2c589v6z82s0gx98airs6icivg301khg9fzg";
-       revision = "1";
-       editedCabalFile = "0fi1zrq7fdcckqqs32ygj9ngsx0zlqqrnrlz6zirmhif1idcc55k";
-       configureFlags = [ "-fexe" ];
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base base16-bytestring bytestring containers directory
-         filepath text
-       ];
-       executableHaskellDepends = [
-         ansi-terminal async base base-compat bytestring containers
-         directory mtl optics-core optparse-applicative parsec process
-         semialign singleton-bool text these topograph transformers vector
-       ];
-       description = "Library and utility for processing cabal's plan.json file";
-       license = stdenv.lib.licenses.gpl2Plus;
-     }) {};
-
-  "cabal-plan_0_7_0_0" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, async, base, base-compat
-     , base16-bytestring, bytestring, containers, directory, filepath
-     , mtl, optics-core, optparse-applicative, parsec, process
-     , semialign, singleton-bool, text, these, topograph, transformers
-     , vector
-     }:
-     mkDerivation {
-       pname = "cabal-plan";
-       version = "0.7.0.0";
-       sha256 = "1wv375dq50fibzg6xa9vrr8q4lhaqcl254b9a2vc42rrjvhxxmzc";
-       revision = "1";
-       editedCabalFile = "0gc64mgk11nszilkbid351zxh5cpy85kqcc3mrkrw2fsbcga08as";
+       version = "0.7.1.0";
+       sha256 = "01hd6wl80j6njlg3h4rxsf5izyx49bs6v1j5756g2pyxc9h4hrs4";
        configureFlags = [ "-fexe" ];
        isLibrary = true;
        isExecutable = true;
@@ -47908,7 +48631,6 @@ self: {
        ];
        description = "Library and utility for processing cabal's plan.json file";
        license = stdenv.lib.licenses.gpl2Plus;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "cabal-progdeps" = callPackage
@@ -47945,18 +48667,19 @@ self: {
      }) {};
 
   "cabal-rpm" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, directory, filepath
-     , http-client, http-client-tls, http-conduit, optparse-applicative
-     , process, simple-cabal, simple-cmd, simple-cmd-args, time, unix
+    ({ mkDerivation, base, bytestring, Cabal, directory, extra
+     , filepath, http-client, http-client-tls, http-conduit
+     , optparse-applicative, process, simple-cabal, simple-cmd
+     , simple-cmd-args, time, unix
      }:
      mkDerivation {
        pname = "cabal-rpm";
-       version = "2.0.4";
-       sha256 = "0p2g0cci4ylbpkv3r1pfi6pc2iyxghqi8rjrmxz0jxs4x28hb23v";
+       version = "2.0.6";
+       sha256 = "1f27arazgv65ripbcjirs4hl5ywr7a7s0vcr5s7jd7176h8dr35b";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base bytestring Cabal directory filepath http-client
+         base bytestring Cabal directory extra filepath http-client
          http-client-tls http-conduit optparse-applicative process
          simple-cabal simple-cmd simple-cmd-args time unix
        ];
@@ -48237,8 +48960,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal2nix";
-       version = "2.15.3";
-       sha256 = "1l4jhl842g5jmwhmi1gqljkxa8ia80xbk2vmlhg6hlw1nkl9wfrz";
+       version = "2.15.5";
+       sha256 = "1afqk9svs3zy69w3xa1gvsacn25vpxf2rffw2rvhs3wvsasxpb6c";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -48271,8 +48994,8 @@ self: {
      }:
      mkDerivation {
        pname = "cabal2spec";
-       version = "2.6";
-       sha256 = "173qiqpzcvihdv0jd0z15wgxzars0kybcyhxprmypk232c9pa48v";
+       version = "2.6.2";
+       sha256 = "0x1r01fk5mch76zindalvmlkfaca4y1x89zw2dm0d46fncsfgdrv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base Cabal filepath time ];
@@ -48524,6 +49247,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "caching" = callPackage
+    ({ mkDerivation, base, dlist, hashable, mtl, psqueues, ref-tf
+     , transformers
+     }:
+     mkDerivation {
+       pname = "caching";
+       version = "0";
+       sha256 = "0rd8ipnycf1vcxxic99d2swcpcdhaljwvbbr4vlagchl3vifxr56";
+       libraryHaskellDepends = [
+         base dlist hashable mtl psqueues ref-tf transformers
+       ];
+       testHaskellDepends = [
+         base dlist hashable mtl psqueues ref-tf transformers
+       ];
+       description = "Cache combinators";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "cachix" = callPackage
     ({ mkDerivation, async, base, base64-bytestring, boost, bytestring
      , cachix-api, conduit, conduit-extra, containers, cookie
@@ -48627,6 +49368,22 @@ self: {
        broken = true;
      }) {};
 
+  "caerbannog" = callPackage
+    ({ mkDerivation, base, binary, bytestring, hspec, QuickCheck
+     , random
+     }:
+     mkDerivation {
+       pname = "caerbannog";
+       version = "0.6.0.3";
+       sha256 = "0mv10cc50365kz2ad36wivvhcyl43bwxjp71f0n9vq2ndrmb4dna";
+       libraryHaskellDepends = [ base binary bytestring ];
+       testHaskellDepends = [
+         base binary bytestring hspec QuickCheck random
+       ];
+       description = "That rabbit's got a vicious streak a mile wide!";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "caf" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -48677,8 +49434,8 @@ self: {
      }:
      mkDerivation {
        pname = "cairo";
-       version = "0.13.8.0";
-       sha256 = "09g93jzackry9yi4xsd5d6h75z0r7mbw2s2w7wd2af4dmp76l2d9";
+       version = "0.13.8.1";
+       sha256 = "1hpkyhrlg1d24s34kq6d379z8l8fvznm98wpq37haqjma4nl25hk";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal gtk2hs-buildtools ];
        libraryHaskellDepends = [
@@ -48874,29 +49631,29 @@ self: {
   "calamity" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, colour
      , concurrent-extra, containers, data-default-class, data-flags
-     , deepseq, deque, df1, di-polysemy, exceptions, fmt, focus
+     , deepseq, deque, df1, di-core, di-polysemy, exceptions, fmt, focus
      , generic-lens, generic-override, generic-override-aeson, hashable
-     , http-date, http-types, lens, lens-aeson, megaparsec, mtl
-     , polysemy, polysemy-plugin, reflection, safe-exceptions
+     , http-date, http-types, lens, lens-aeson, megaparsec, mime-types
+     , mtl, polysemy, polysemy-plugin, reflection, safe-exceptions
      , scientific, stm, stm-chans, stm-containers, text, text-show, time
-     , typerep-map, unagi-chan, unordered-containers, vector, websockets
-     , wreq-patchable, wuss
+     , typerep-map, unagi-chan, unboxing-vector, unordered-containers
+     , vector, websockets, wreq, wuss
      }:
      mkDerivation {
        pname = "calamity";
-       version = "0.1.11.2";
-       sha256 = "0ahixakv3nfvgjf3ziqw14a134cvhlzybpxqqqz8zc8pi3sgvwmf";
+       version = "0.1.20.1";
+       sha256 = "0nh9x2w8xrmbrkadawq0ab6pvp4v14pr49x18sq9qhi0m922b0p0";
        libraryHaskellDepends = [
          aeson async base bytestring colour concurrent-extra containers
-         data-default-class data-flags deepseq deque df1 di-polysemy
+         data-default-class data-flags deepseq deque df1 di-core di-polysemy
          exceptions fmt focus generic-lens generic-override
          generic-override-aeson hashable http-date http-types lens
-         lens-aeson megaparsec mtl polysemy polysemy-plugin reflection
-         safe-exceptions scientific stm stm-chans stm-containers text
-         text-show time typerep-map unagi-chan unordered-containers vector
-         websockets wreq-patchable wuss
+         lens-aeson megaparsec mime-types mtl polysemy polysemy-plugin
+         reflection safe-exceptions scientific stm stm-chans stm-containers
+         text text-show time typerep-map unagi-chan unboxing-vector
+         unordered-containers vector websockets wreq wuss
        ];
-       description = "A library for writing discord bots";
+       description = "A library for writing discord bots in haskell";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -49045,8 +49802,8 @@ self: {
      }:
      mkDerivation {
        pname = "call-alloy";
-       version = "0.2.0.4";
-       sha256 = "0j1vvnjvgjs11ffy7r5h87vsxywyp51cs8kvqlgi5vnlwb2zfxg9";
+       version = "0.2.0.5";
+       sha256 = "1qgvrvb9la7nsx04ql8qvlsavalyimbsc7j6pdc14pmyqnrh3y60";
        libraryHaskellDepends = [
          base bytestring containers directory file-embed filepath hashable
          lens mtl process split trifecta unix
@@ -49427,6 +50184,8 @@ self: {
        ];
        description = "Extensional capabilities and deriving combinators";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "capataz" = callPackage
@@ -49448,6 +50207,8 @@ self: {
        ];
        description = "OTP-like supervision trees in Haskell";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "capnp" = callPackage
@@ -49464,6 +50225,8 @@ self: {
        pname = "capnp";
        version = "0.6.0.0";
        sha256 = "1w5cp3jp0dm8vf3zmkfpvpz7jl3pamlnxsl75ds3f4xxyx907qcg";
+       revision = "1";
+       editedCabalFile = "158y76rna3z40fwi661fyvmxyfdgs34zi3bxfqc79nc01l7ri8iw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -49813,16 +50576,17 @@ self: {
 
   "casa-abbreviations-and-acronyms" = callPackage
     ({ mkDerivation, base, bytestring, containers, fuzzy, lens
-     , monoid-subclasses, optparse-applicative, these, wreq
+     , monoid-subclasses, optparse-applicative, profunctors, these, wreq
      }:
      mkDerivation {
        pname = "casa-abbreviations-and-acronyms";
-       version = "0.0.7";
-       sha256 = "16xdkbgym1jjqnmx10h3yfq2zw3mzpf7jskssf4nzm6dsvj1msp5";
+       version = "0.0.8";
+       sha256 = "01vfzkd8ap3ambsnzns6j537a21nvml0fa7qbqvk2knzhlyr7lv6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base bytestring containers fuzzy lens monoid-subclasses these wreq
+         base bytestring containers fuzzy lens monoid-subclasses profunctors
+         these wreq
        ];
        executableHaskellDepends = [
          base bytestring containers fuzzy lens monoid-subclasses
@@ -50384,6 +51148,28 @@ self: {
        broken = true;
      }) {};
 
+  "cassava-conduit_0_6_0" = callPackage
+    ({ mkDerivation, array, base, bifunctors, bytestring, cassava
+     , conduit, containers, criterion, mtl, QuickCheck, text
+     }:
+     mkDerivation {
+       pname = "cassava-conduit";
+       version = "0.6.0";
+       sha256 = "114ab0kxy7rj1hps1sy9i0mkj2lp046zjlpll2apmf3mxdminva0";
+       libraryHaskellDepends = [
+         array base bifunctors bytestring cassava conduit containers mtl
+         text
+       ];
+       testHaskellDepends = [
+         base bytestring cassava conduit QuickCheck text
+       ];
+       benchmarkHaskellDepends = [ base criterion ];
+       description = "Conduit interface for cassava package";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "cassava-embed" = callPackage
     ({ mkDerivation, base, bytestring, cassava, template-haskell
      , vector
@@ -50402,14 +51188,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "cassava-generic" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cassava, data-default
+     , text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "cassava-generic";
+       version = "0.1.0.1";
+       sha256 = "0xm2ba4wmx5dbd83zpdyld65ga87fb9ja7hd33y5kba1zbw486g8";
+       libraryHaskellDepends = [
+         aeson base bytestring cassava data-default text
+         unordered-containers vector
+       ];
+       description = "Cassave instances for functor-like datatypes like `Either String a`";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "cassava-megaparsec" = callPackage
     ({ mkDerivation, base, bytestring, cassava, hspec, hspec-megaparsec
      , megaparsec, unordered-containers, vector
      }:
      mkDerivation {
        pname = "cassava-megaparsec";
-       version = "2.0.1";
-       sha256 = "0q4skw98nzy6icmgpwqvgw0c5pqcgi25rf7nmwh2pksvv94pi3p3";
+       version = "2.0.2";
+       sha256 = "03x1462agrfdagklp8c89b8p4z2hd8nbf6d3895sz770zjkawda7";
        libraryHaskellDepends = [
          base bytestring cassava megaparsec unordered-containers vector
        ];
@@ -50797,6 +51599,7 @@ self: {
        testHaskellDepends = [ base base16-bytestring hspec ];
        description = "Cayenne Low Power Payload";
        license = stdenv.lib.licenses.bsd3;
+       maintainers = with stdenv.lib.maintainers; [ sorki ];
      }) {};
 
   "cayley-client" = callPackage
@@ -50885,10 +51688,8 @@ self: {
      }:
      mkDerivation {
        pname = "cborg";
-       version = "0.2.3.0";
-       sha256 = "14y7yckj1xzldadyq8g84dgsdaygf9ss0gd38vjfw62smdjq1in8";
-       revision = "1";
-       editedCabalFile = "0rwliw9xl6y5ypwcywlmr1adqi4c8zi0vghxxarkwh7s5ny34q9f";
+       version = "0.2.4.0";
+       sha256 = "0zrn75jx3lprdagl99r88jfhccalw783fn9jjk9zhy50zypkibil";
        libraryHaskellDepends = [
          array base bytestring containers deepseq ghc-prim half integer-gmp
          primitive text
@@ -50997,8 +51798,8 @@ self: {
      }:
      mkDerivation {
        pname = "cdeps";
-       version = "0.1.3.0";
-       sha256 = "1c237awhrr1r0qz7jll1d7803j1khhz1qq4my2dddsgwfsy57ga3";
+       version = "0.1.3.1";
+       sha256 = "0r8q2i29wb47dkkws6cyy2qgwzgyhcsmx7sixv8n44rxiiv0dhcw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -51637,6 +52438,34 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "chainweb-mining-client" = callPackage
+    ({ mkDerivation, aeson, async, base, bytes, bytestring, Cabal
+     , configuration-tools, connection, containers, cryptonite
+     , exceptions, hashable, hostaddress, http-client, http-client-tls
+     , http-types, lens, loglevel, memory, mwc-random, process, retry
+     , stm, streaming, streaming-events, text, time
+     , unordered-containers, wai-extra
+     }:
+     mkDerivation {
+       pname = "chainweb-mining-client";
+       version = "0.2";
+       sha256 = "1zbqbc3icgz1fb0fgpfi1cf1i7pz2lf3wd82671ks1yixf893ypm";
+       isLibrary = false;
+       isExecutable = true;
+       setupHaskellDepends = [ base Cabal configuration-tools ];
+       executableHaskellDepends = [
+         aeson async base bytes bytestring configuration-tools connection
+         containers cryptonite exceptions hashable hostaddress http-client
+         http-client-tls http-types lens loglevel memory mwc-random process
+         retry stm streaming streaming-events text time unordered-containers
+         wai-extra
+       ];
+       description = "Mining Client for Kadena Chainweb";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "chalk" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -51662,7 +52491,7 @@ self: {
          array base binary bytestring Codec-Image-DevIL containers
          data-reify directory GLUT OpenGLRaw process time
        ];
-       description = "Combinators for building and processing 2D images.";
+       description = "Combinators for building and processing 2D images";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -51675,7 +52504,7 @@ self: {
        version = "0.1";
        sha256 = "1gvnp176j8gd0s6wzq10zpiqkn3wma99pwn3f78wgxm9rh588gh2";
        libraryHaskellDepends = [ array base chalkboard GLUT OpenGL time ];
-       description = "OpenGL based viewer for chalkboard rendered images.";
+       description = "OpenGL based viewer for chalkboard rendered images";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -51785,6 +52614,25 @@ self: {
      }) {};
 
   "character-cases" = callPackage
+    ({ mkDerivation, base, containers, doctest, Glob, here, megaparsec
+     , prettyprinter, template-haskell
+     }:
+     mkDerivation {
+       pname = "character-cases";
+       version = "0.1.0.4";
+       sha256 = "0097d5p1q2l76jb1qm8zsqm7d3qfcr35v2ip0v52i1ri57b03iya";
+       libraryHaskellDepends = [
+         base containers here megaparsec prettyprinter template-haskell
+       ];
+       testHaskellDepends = [
+         base containers doctest Glob here megaparsec prettyprinter
+         template-haskell
+       ];
+       description = "Exposes subspecies types of Char. And naming cases.";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "character-cases_0_1_0_6" = callPackage
     ({ mkDerivation, base, containers, doctest, Glob, megaparsec
      , prettyprinter, template-haskell
      }:
@@ -51801,6 +52649,7 @@ self: {
        ];
        description = "Exposes subspecies types of Char. And naming cases.";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "charade" = callPackage
@@ -51902,34 +52751,57 @@ self: {
      }) {};
 
   "chart-svg" = callPackage
-    ({ mkDerivation, attoparsec, base, bifunctors, Color, containers
-     , foldl, generic-lens, javascript-bridge, lens, lucid, lucid-svg
-     , numhask-space, pretty-simple, protolude, scientific, scotty
-     , tagsoup, text, text-format, time, transformers
-     , unordered-containers, wai-middleware-static, web-rep
+    ({ mkDerivation, attoparsec, base, Color, containers, doctest
+     , generic-lens, lens, lucid, numhask, numhask-space, pretty-simple
+     , scientific, tagsoup, text, time, transformers
+     , unordered-containers, web-rep
      }:
      mkDerivation {
        pname = "chart-svg";
-       version = "0.0.3";
-       sha256 = "04p2ijvsf47j9r1hck5qby6w2x18r8mpk40pywc4wsbgxcdw6rfa";
+       version = "0.1.3";
+       sha256 = "0b3hpxm7xjw8pjhpcla46jdsjhqxxb3ga0jmmj97wn6w971yphi1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         attoparsec base bifunctors Color foldl generic-lens lens lucid
-         lucid-svg numhask-space pretty-simple protolude scientific tagsoup
-         text text-format time transformers web-rep
+         attoparsec base Color generic-lens lens lucid numhask numhask-space
+         pretty-simple scientific tagsoup text time transformers web-rep
        ];
        executableHaskellDepends = [
-         base bifunctors containers generic-lens javascript-bridge lens
-         lucid-svg numhask-space protolude scotty text transformers
-         unordered-containers wai-middleware-static web-rep
+         base containers generic-lens lens lucid numhask numhask-space text
+         transformers unordered-containers web-rep
        ];
+       testHaskellDepends = [ base doctest numhask ];
        description = "Charts in SVG";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
+  "chart-svg-various" = callPackage
+    ({ mkDerivation, base, box, box-csv, box-socket, chart-svg
+     , concurrency, doctest, foldl, lens, lucid, mealy, numhask
+     , numhask-array, numhask-space, text, time, transformers
+     , unordered-containers, web-rep
+     }:
+     mkDerivation {
+       pname = "chart-svg-various";
+       version = "0.0.2";
+       sha256 = "0ckh66pm4f3wp2w08z8bfjbwbxssp74g5chwpk9q9n786iaq9x90";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base box box-csv box-socket chart-svg concurrency foldl lens lucid
+         mealy numhask numhask-array numhask-space text time transformers
+         unordered-containers web-rep
+       ];
+       executableHaskellDepends = [ base numhask ];
+       testHaskellDepends = [ base doctest numhask ];
+       description = "See readme.md";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "chart-unit" = callPackage
     ({ mkDerivation, base, colour, data-default, diagrams-lib
      , diagrams-svg, doctest, foldl, formatting, generic-lens, lens
@@ -52222,8 +53094,8 @@ self: {
     ({ mkDerivation, array, base, QuickCheck, random, semigroupoids }:
      mkDerivation {
        pname = "checkers";
-       version = "0.5.5";
-       sha256 = "1g16603803xzz73md1azlcpd6xz7gkwjpy66l638v6lvipdl9hr9";
+       version = "0.5.6";
+       sha256 = "1b82dz295h37pi6bnkr4r18gkvavrwvsig15955i8hh1rcn2msaz";
        libraryHaskellDepends = [
          array base QuickCheck random semigroupoids
        ];
@@ -52325,8 +53197,8 @@ self: {
      }:
      mkDerivation {
        pname = "chessIO";
-       version = "0.3.1.1";
-       sha256 = "05jwz1nq5wiqdpnwn31wyc4gpryh9b4qzil4rkgx7vhavck2w1ap";
+       version = "0.3.1.2";
+       sha256 = "0x79cgngxbrk43f28pprqq85n54cg2i2chhpycdcnkx16iva5bbf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -52769,14 +53641,14 @@ self: {
      }:
      mkDerivation {
        pname = "chronologique";
-       version = "0.3.1.1";
-       sha256 = "05ly96mdm4nxmn7yz04wq9kgzlq8biaaaxs1mvsc3f8wgcpbqf65";
+       version = "0.3.1.3";
+       sha256 = "0bb75dijnjnhvgik4qf0zqj9q2wfdqyx70gs18cbxkrqg9956fwh";
        libraryHaskellDepends = [ aeson base hourglass text time vector ];
        testHaskellDepends = [
          aeson base bytestring hourglass hspec QuickCheck vector
        ];
        description = "Time to manipulate time";
-       license = stdenv.lib.licenses.bsd3;
+       license = stdenv.lib.licenses.mit;
      }) {};
 
   "chronos" = callPackage
@@ -53109,6 +53981,8 @@ self: {
        pname = "cipher-aes128";
        version = "0.7.0.5";
        sha256 = "1bafr5aa9mjfzdgc6gwapvb9g04pyh4lwhv2x2m1v3ljjglg9d1w";
+       revision = "1";
+       editedCabalFile = "0miqp8jvgsqkgj5rxb2vjwa24ac5kdyy3b2cwxb9z0wk1ixk5ilm";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal process ];
@@ -53322,6 +54196,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "circular" = callPackage
+    ({ mkDerivation, aeson, base, criterion, hspec, hspec-discover
+     , QuickCheck, quickcheck-instances, vector
+     }:
+     mkDerivation {
+       pname = "circular";
+       version = "0.1.1";
+       sha256 = "0kj9sfal78k0ba5djq10xddy2h8lq0grf5cknwcr96j555nlwhk9";
+       libraryHaskellDepends = [ aeson base vector ];
+       testHaskellDepends = [
+         aeson base hspec hspec-discover QuickCheck quickcheck-instances
+         vector
+       ];
+       testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [ aeson base criterion vector ];
+       description = "Circular fixed-sized mutable vectors";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "cirru-parser" = callPackage
     ({ mkDerivation, aeson, base, text, vector }:
      mkDerivation {
@@ -53489,13 +54382,13 @@ self: {
      }) {};
 
   "cl3" = callPackage
-    ({ mkDerivation, base, criterion, QuickCheck, random }:
+    ({ mkDerivation, base, criterion, deepseq, random }:
      mkDerivation {
        pname = "cl3";
-       version = "1.0.0.4";
-       sha256 = "18q5r2m4sr7h8z35nivq2fndmxamyw3217j11na4gq361rq1340v";
-       libraryHaskellDepends = [ base random ];
-       testHaskellDepends = [ base QuickCheck ];
+       version = "2.0.0.0";
+       sha256 = "0ibril0fjhm848za1grvpi6pdcshbxbfjwkflzh7zw4b9y5b7g89";
+       libraryHaskellDepends = [ base deepseq random ];
+       testHaskellDepends = [ base criterion random ];
        benchmarkHaskellDepends = [ base criterion ];
        description = "Clifford Algebra of three dimensional space";
        license = stdenv.lib.licenses.bsd3;
@@ -53505,8 +54398,8 @@ self: {
     ({ mkDerivation, base, cl3, hmatrix }:
      mkDerivation {
        pname = "cl3-hmatrix-interface";
-       version = "1.0.0.1";
-       sha256 = "1fixwb8y2v0zwww6p08rwsq7wfz63aj3zv2yjs9z0rp2xm3mq67w";
+       version = "2.0.0.0";
+       sha256 = "0sa1gaclh7b3mpqiiyqqn2gqfwkwj2ig5yzjk1y0hkzyc7rz4l3k";
        libraryHaskellDepends = [ base cl3 hmatrix ];
        description = "Interface to/from Cl3 and HMatrix";
        license = stdenv.lib.licenses.bsd3;
@@ -53516,8 +54409,8 @@ self: {
     ({ mkDerivation, base, cl3, linear }:
      mkDerivation {
        pname = "cl3-linear-interface";
-       version = "1.0.0.1";
-       sha256 = "1i4f9xxsdzba49h1dv8x14zz1bv1zamhvw2ngi5d6a17qd11g319";
+       version = "2.0.0.0";
+       sha256 = "15431azhvwk2fcd3aca5snpqrp8kf7zdlbyxh99i1xfdhvq4vc78";
        libraryHaskellDepends = [ base cl3 linear ];
        description = "Interface to/from Cl3 and Linear";
        license = stdenv.lib.licenses.bsd3;
@@ -53730,9 +54623,9 @@ self: {
      }) {};
 
   "clash-ghc" = callPackage
-    ({ mkDerivation, array, base, bifunctors, bytestring, clash-lib
-     , clash-prelude, concurrent-supply, containers, deepseq, directory
-     , filepath, ghc, ghc-boot, ghc-prim, ghc-typelits-extra
+    ({ mkDerivation, array, base, bifunctors, bytestring, Cabal
+     , clash-lib, clash-prelude, concurrent-supply, containers, deepseq
+     , directory, filepath, ghc, ghc-boot, ghc-prim, ghc-typelits-extra
      , ghc-typelits-knownnat, ghc-typelits-natnormalise, ghci, hashable
      , haskeline, integer-gmp, lens, mtl, primitive, process, reflection
      , split, template-haskell, text, time, transformers, uniplate, unix
@@ -53740,12 +54633,12 @@ self: {
      }:
      mkDerivation {
        pname = "clash-ghc";
-       version = "1.2.1";
-       sha256 = "0bczw02kgpiczagnv2aq2yjj0g2619gl8dzwpzsvfz5r1p8kp6f3";
+       version = "1.2.4";
+       sha256 = "1xzpz0bkdfvhkk496q4zr7f6ix23dgg6w5r14j5gxy4jb8f8bxln";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         array base bifunctors bytestring clash-lib clash-prelude
+         array base bifunctors bytestring Cabal clash-lib clash-prelude
          concurrent-supply containers deepseq directory filepath ghc
          ghc-boot ghc-prim ghc-typelits-extra ghc-typelits-knownnat
          ghc-typelits-natnormalise ghci hashable haskeline integer-gmp lens
@@ -53762,16 +54655,18 @@ self: {
      , bytestring, clash-prelude, concurrent-supply, containers
      , data-binary-ieee754, data-default, deepseq, directory, dlist
      , errors, exceptions, extra, filepath, ghc, ghc-boot-th
-     , ghc-typelits-knownnat, hashable, haskell-src-meta, hint
-     , integer-gmp, interpolate, lens, mtl, ordered-containers, parsers
-     , prettyprinter, primitive, process, reducers, tasty, tasty-hunit
-     , template-haskell, temporary, text, text-show, time, transformers
-     , trifecta, unordered-containers, vector, vector-binary-instances
+     , ghc-typelits-knownnat, hashable, haskell-src-exts
+     , haskell-src-meta, hint, integer-gmp, interpolate, lens, mtl
+     , ordered-containers, parsers, prettyprinter, primitive, process
+     , reducers, tasty, tasty-hunit, template-haskell, temporary
+     , terminal-size, text, text-show, time, transformers, trifecta
+     , unordered-containers, utf8-string, vector
+     , vector-binary-instances
      }:
      mkDerivation {
        pname = "clash-lib";
-       version = "1.2.1";
-       sha256 = "1l6xibxbkfz91wkl55548wv48gba6n4pmbymb1fbhs43nx3hssil";
+       version = "1.2.4";
+       sha256 = "147cahsid3l6ff8d96ndzli1v79i9lbmad0bkmy0s5vcbgp90q7c";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson ansi-terminal attoparsec base binary bytestring clash-prelude
@@ -53779,12 +54674,14 @@ self: {
          deepseq directory dlist errors exceptions extra filepath ghc
          ghc-boot-th hashable haskell-src-meta hint integer-gmp interpolate
          lens mtl ordered-containers parsers prettyprinter primitive process
-         reducers template-haskell temporary text text-show time
-         transformers trifecta unordered-containers vector
+         reducers template-haskell temporary terminal-size text text-show
+         time transformers trifecta unordered-containers utf8-string vector
          vector-binary-instances
        ];
        testHaskellDepends = [
-         base clash-prelude ghc ghc-typelits-knownnat lens tasty tasty-hunit
+         base clash-prelude concurrent-supply containers data-default
+         deepseq ghc ghc-typelits-knownnat haskell-src-exts lens tasty
+         tasty-hunit template-haskell text transformers unordered-containers
        ];
        description = "CAES Language for Synchronous Hardware - As a Library";
        license = stdenv.lib.licenses.bsd2;
@@ -53812,24 +54709,25 @@ self: {
      , data-binary-ieee754, data-default-class, deepseq, doctest
      , ghc-prim, ghc-typelits-extra, ghc-typelits-knownnat
      , ghc-typelits-natnormalise, half, hashable, hint, integer-gmp
-     , lens, QuickCheck, quickcheck-classes-base, recursion-schemes
-     , reflection, singletons, tasty, tasty-hunit, tasty-quickcheck
-     , template-haskell, text, text-show, th-abstraction, th-lift
-     , th-orphans, time, transformers, type-errors, vector
+     , interpolate, lens, QuickCheck, quickcheck-classes-base
+     , recursion-schemes, reflection, singletons, tasty, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, text-show
+     , th-abstraction, th-lift, th-orphans, time, transformers
+     , type-errors, uniplate, vector
      }:
      mkDerivation {
        pname = "clash-prelude";
-       version = "1.2.1";
-       sha256 = "18smrj545fvry8wj0hvawwcwc9yf1h1nsyyl337yh7xnxq9bycsy";
+       version = "1.2.4";
+       sha256 = "1yizprs6i4y2vyhjj6pvpd5xmdbxyqjwclk6saaws0g3xv008ffg";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          array base bifunctors binary bytestring constraints containers
          data-binary-ieee754 data-default-class deepseq ghc-prim
          ghc-typelits-extra ghc-typelits-knownnat ghc-typelits-natnormalise
-         half hashable integer-gmp lens QuickCheck recursion-schemes
-         reflection singletons template-haskell text text-show
-         th-abstraction th-lift th-orphans time transformers type-errors
-         vector
+         half hashable integer-gmp interpolate lens QuickCheck
+         recursion-schemes reflection singletons template-haskell text
+         text-show th-abstraction th-lift th-orphans time transformers
+         type-errors uniplate vector
        ];
        testHaskellDepends = [
          base doctest ghc-typelits-knownnat hint quickcheck-classes-base
@@ -54119,8 +55017,8 @@ self: {
      }:
      mkDerivation {
        pname = "clckwrks";
-       version = "0.26.0";
-       sha256 = "0yjw0kk241qbh2z6248savy3a99asd3smva1qbplga31232a8025";
+       version = "0.26.1";
+       sha256 = "1n37gllcgq05wgvq4f10vwz7lll6q8an1gak69m50n6fwx8zpb5i";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          acid-state aeson aeson-qq attoparsec base blaze-html bytestring
@@ -54628,8 +55526,8 @@ self: {
      }:
      mkDerivation {
        pname = "climb";
-       version = "0.3.1";
-       sha256 = "0d9f0h0zk9ga349bvdaq6ch9xi3hynadi6r4mcmy7hcigckk2j7r";
+       version = "0.3.3";
+       sha256 = "0d6jscwbjlm21jcdl29c3ix6vd5ly9mjr0ljchzkr6yk7gqk4z24";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -55292,8 +56190,8 @@ self: {
      }:
      mkDerivation {
        pname = "cmark-gfm";
-       version = "0.2.1";
-       sha256 = "1qbhcirg7a0r68l3ifq8q9clnkai5hyhk62jb232bjplrl6y4c23";
+       version = "0.2.2";
+       sha256 = "1skzdg1icmhn0zrkhbnba4200ymah8sd5msk4qfgawrk77zilw7f";
        libraryHaskellDepends = [ base bytestring text ];
        testHaskellDepends = [ base HUnit text ];
        benchmarkHaskellDepends = [
@@ -55438,18 +56336,19 @@ self: {
 
   "cmdargs-browser" = callPackage
     ({ mkDerivation, base, bytestring, cmdargs, directory, filepath
-     , http-types, process, text, transformers, wai, wai-handler-launch
+     , http-types, js-jquery, process, text, transformers, wai
+     , wai-handler-launch
      }:
      mkDerivation {
        pname = "cmdargs-browser";
-       version = "0.1.3";
-       sha256 = "1k0g2vh7sqkblzjsfvyhfiy1fcwkw0i10kgl4n2r68w7v52mmzd0";
+       version = "0.1.4";
+       sha256 = "0rp1k7fl4ci9ngi6ywdiahs5njff2py6y9ya9qv5x123ibxgpz2y";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
        executableHaskellDepends = [
-         base bytestring cmdargs directory filepath http-types process text
-         transformers wai wai-handler-launch
+         base bytestring cmdargs directory filepath http-types js-jquery
+         process text transformers wai wai-handler-launch
        ];
        description = "Helper to enter cmdargs command lines using a web browser";
        license = stdenv.lib.licenses.bsd3;
@@ -55815,8 +56714,8 @@ self: {
      }:
      mkDerivation {
        pname = "cobot-io";
-       version = "0.1.3.5";
-       sha256 = "0h3pray036ddjwxvda5m6x7nx8p3ksaj4fkbw2afwgvn3gl7y991";
+       version = "0.1.3.6";
+       sha256 = "0ry01h9vkr5zyiwp60vqb8mp2lfg3yhfbaz0c7jammk034dszkf1";
        libraryHaskellDepends = [
          array attoparsec base binary bytestring containers data-msgpack
          deepseq http-conduit hyraxAbif lens linear mtl split text vector
@@ -56094,6 +56993,8 @@ self: {
        ];
        description = "A ctags file generator for cabal project dependencies";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "codo-notation" = callPackage
@@ -56630,8 +57531,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "colorful-monoids";
-       version = "0.2.1.2";
-       sha256 = "0y35f21n8xh1xq8i0anbfx034m5wnwhp2ka47vvi3w0iw13zyhhb";
+       version = "0.2.1.3";
+       sha256 = "0yan2vxjdcal7zdh12m5yblcl9d1wcgjr09d3g64p09wdh82y6rq";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        description = "Styled console text output using ANSI escape sequences";
@@ -56758,10 +57659,8 @@ self: {
     ({ mkDerivation, accelerate, base }:
      mkDerivation {
        pname = "colour-accelerate";
-       version = "0.3.0.0";
-       sha256 = "0zvzra2w0sajw0hzg2k25khv8c5j1i17g8dnga70w73f3mmh3gbz";
-       revision = "1";
-       editedCabalFile = "1mbz9wdx396q8gdy6yqsc5vsxrkky9zkxczjblvc9zy542v252cn";
+       version = "0.4.0.0";
+       sha256 = "1j7ff2wb58yf346z2abr1v1yq498fxm498rdf1g62ppf6vkdplw8";
        libraryHaskellDepends = [ accelerate base ];
        description = "Working with colours in Accelerate";
        license = stdenv.lib.licenses.bsd3;
@@ -56792,23 +57691,11 @@ self: {
     ({ mkDerivation, ansi-terminal, base, bytestring, text }:
      mkDerivation {
        pname = "colourista";
-       version = "0.0.0.0";
-       sha256 = "15nzcy3q8iivghprzsvy5l6c98ir085v6nhyymwy2ar0fnhx4hdi";
-       libraryHaskellDepends = [ ansi-terminal base bytestring text ];
-       description = "Convenient interface for printing colourful messages";
-       license = stdenv.lib.licenses.mpl20;
-     }) {};
-
-  "colourista_0_1_0_0" = callPackage
-    ({ mkDerivation, ansi-terminal, base, bytestring, text }:
-     mkDerivation {
-       pname = "colourista";
        version = "0.1.0.0";
        sha256 = "1iglvl6k8vrq45h5r8r2ng575dgg30jfw1zq19zld72914mmvjdz";
        libraryHaskellDepends = [ ansi-terminal base bytestring text ];
        description = "Convenient interface for printing colourful messages";
        license = stdenv.lib.licenses.mpl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "coltrane" = callPackage
@@ -57227,15 +58114,20 @@ self: {
      }) {};
 
   "commander-cli" = callPackage
-    ({ mkDerivation, base, mtl, text, unordered-containers }:
+    ({ mkDerivation, base, bytestring, directory, mtl, process, text
+     , unordered-containers
+     }:
      mkDerivation {
        pname = "commander-cli";
-       version = "0.1.0.0";
-       sha256 = "1ix0pjcq7khpc9b7f9j44akgfdlcssqhqmflsgvqyw5m8bg4qkrd";
+       version = "0.7.0.0";
+       sha256 = "1xrlgfyq59g7x7msrwl58bzg108jkxk0k5sra8la7zwpx46ach4z";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base mtl text unordered-containers ];
-       executableHaskellDepends = [ base mtl text ];
+       libraryHaskellDepends = [
+         base bytestring mtl text unordered-containers
+       ];
+       executableHaskellDepends = [ base directory mtl process text ];
+       testHaskellDepends = [ base text unordered-containers ];
        description = "A command line argument/option parser library built around a monadic metaphor";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -57265,6 +58157,87 @@ self: {
        broken = true;
      }) {};
 
+  "commonmark" = callPackage
+    ({ mkDerivation, base, bytestring, containers, criterion, parsec
+     , QuickCheck, tasty, tasty-hunit, tasty-quickcheck, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "commonmark";
+       version = "0.1.0.2";
+       sha256 = "00rqy02pn4gg0wpwvxyqxvzqg75lvb1qawn4m8rnjq6v43c4g23l";
+       libraryHaskellDepends = [
+         base bytestring containers parsec text transformers
+       ];
+       testHaskellDepends = [
+         base parsec QuickCheck tasty tasty-hunit tasty-quickcheck text
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring containers criterion text transformers
+       ];
+       description = "Pure Haskell commonmark parser";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "commonmark-cli" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, base, bytestring, commonmark
+     , commonmark-extensions, commonmark-pandoc, containers, mtl
+     , pandoc-types, pretty-simple, text
+     }:
+     mkDerivation {
+       pname = "commonmark-cli";
+       version = "0.1.0.1";
+       sha256 = "1k7s7wzphllfydki1ifzab6b4x865vwxg50xldqdar141425s84l";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson ansi-terminal base bytestring commonmark
+         commonmark-extensions commonmark-pandoc containers mtl pandoc-types
+         pretty-simple text
+       ];
+       description = "Command-line commonmark converter and highlighter";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "commonmark-extensions" = callPackage
+    ({ mkDerivation, base, bytestring, commonmark, containers
+     , criterion, emojis, parsec, QuickCheck, tasty, tasty-hunit
+     , tasty-quickcheck, text, transformers
+     }:
+     mkDerivation {
+       pname = "commonmark-extensions";
+       version = "0.2.0.1";
+       sha256 = "08i6167d78b5wf6aqsrjz2sb1qaanwrjzhpfg1jn4grd9g8i2ql6";
+       libraryHaskellDepends = [
+         base bytestring commonmark containers emojis parsec text
+         transformers
+       ];
+       testHaskellDepends = [
+         base commonmark parsec QuickCheck tasty tasty-hunit
+         tasty-quickcheck text
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring commonmark containers criterion text transformers
+       ];
+       description = "Pure Haskell commonmark parser";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "commonmark-pandoc" = callPackage
+    ({ mkDerivation, base, commonmark, commonmark-extensions
+     , containers, pandoc-types, text
+     }:
+     mkDerivation {
+       pname = "commonmark-pandoc";
+       version = "0.2.0.1";
+       sha256 = "12s20s64qad3varxr9bxpvdzx3ajdw58ssmssj9rqqq8k2nlnqh3";
+       libraryHaskellDepends = [
+         base commonmark commonmark-extensions containers pandoc-types text
+       ];
+       description = "Bridge between commonmark and pandoc AST";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "commsec" = callPackage
     ({ mkDerivation, base, bytestring, cipher-aes128, crypto-api
      , network
@@ -57469,6 +58442,20 @@ self: {
        broken = true;
      }) {};
 
+  "compact-sequences" = callPackage
+    ({ mkDerivation, base, mtl, primitive, QuickCheck, tasty
+     , tasty-quickcheck, transformers
+     }:
+     mkDerivation {
+       pname = "compact-sequences";
+       version = "0.2.0.0";
+       sha256 = "0v7s99d7syspgc8z8mhdykyrsjyx0r0vjyf64plidndld2zg0swn";
+       libraryHaskellDepends = [ base mtl primitive transformers ];
+       testHaskellDepends = [ base QuickCheck tasty tasty-quickcheck ];
+       description = "Stacks, queues, and deques with compact representations";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "compact-socket" = callPackage
     ({ mkDerivation, base, binary, bytestring, compact, deepseq
      , directory, filepath, network, unix
@@ -57675,6 +58662,25 @@ self: {
        broken = true;
      }) {};
 
+  "compdoc" = callPackage
+    ({ mkDerivation, aeson, base, composite-aeson
+     , composite-aeson-throw, composite-base, pandoc, pandoc-throw, path
+     , rio, vinyl
+     }:
+     mkDerivation {
+       pname = "compdoc";
+       version = "0.1.0.0";
+       sha256 = "0m7xrl1ki3agp69yczgy396xlb84kggslmqnjglziyg6sziv58ak";
+       libraryHaskellDepends = [
+         aeson base composite-aeson composite-aeson-throw composite-base
+         pandoc pandoc-throw path rio vinyl
+       ];
+       description = "Parse a Pandoc to a composite value";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "compendium-client" = callPackage
     ({ mkDerivation, aeson, base, http-client, language-protobuf
      , megaparsec, servant, servant-client, text
@@ -57896,8 +58902,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-aeson";
-       version = "0.7.1.0";
-       sha256 = "1jv9frfv1ixqyby8zgldp2nkc051fnz0nqwcrnk1mqhav7rf3ilx";
+       version = "0.7.4.0";
+       sha256 = "1k8m89cff8b3yc1af0l9vd13pav2hjy51gcadahn07zpwv1bszfj";
        libraryHaskellDepends = [
          aeson aeson-better-errors base composite-base containers
          contravariant generic-deriving hashable lens mmorph mtl profunctors
@@ -57916,14 +58922,44 @@ self: {
        broken = true;
      }) {};
 
+  "composite-aeson-cofree-list" = callPackage
+    ({ mkDerivation, aeson, base, composite-aeson
+     , composite-aeson-writeonly, free, vector
+     }:
+     mkDerivation {
+       pname = "composite-aeson-cofree-list";
+       version = "0.1.0.0";
+       sha256 = "0jxfisk3zqzhknc2kraq9chh2gx9q00f5lkh0401s0fb4qgdfd0a";
+       libraryHaskellDepends = [
+         aeson base composite-aeson composite-aeson-writeonly free vector
+       ];
+       description = "Print a Cofree [] as a JSON value";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "composite-aeson-path" = callPackage
+    ({ mkDerivation, base, composite-aeson, path }:
+     mkDerivation {
+       pname = "composite-aeson-path";
+       version = "0.7.4.0";
+       sha256 = "08p988iq7y76px61dlj5jq35drmnrf4khi27wpqgh3pg9d96yihx";
+       libraryHaskellDepends = [ base composite-aeson path ];
+       description = "Formatting data for the path library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "composite-aeson-refined" = callPackage
     ({ mkDerivation, aeson-better-errors, base, composite-aeson, mtl
      , refined
      }:
      mkDerivation {
        pname = "composite-aeson-refined";
-       version = "0.7.1.0";
-       sha256 = "12nqw9mg25vblz5my5rrd0w2nwgpvykw0nnlmaibpj7z5z5fnfv6";
+       version = "0.7.4.0";
+       sha256 = "049lrm5iip5y3c9m9x4sjangaigdprj1553sw2vrcvnvn8xfq57s";
        libraryHaskellDepends = [
          aeson-better-errors base composite-aeson mtl refined
        ];
@@ -57933,26 +58969,71 @@ self: {
        broken = true;
      }) {};
 
+  "composite-aeson-throw" = callPackage
+    ({ mkDerivation, aeson, aeson-better-errors, base, composite-aeson
+     , exceptions
+     }:
+     mkDerivation {
+       pname = "composite-aeson-throw";
+       version = "0.1.0.0";
+       sha256 = "0724mf1visv7ay306qngsz41blb28ykw074r6wfki17mfss1kh8y";
+       libraryHaskellDepends = [
+         aeson aeson-better-errors base composite-aeson exceptions
+       ];
+       description = "MonadThrow behaviour for composite-aeson";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "composite-aeson-writeonly" = callPackage
+    ({ mkDerivation, aeson, aeson-better-errors, base, composite-aeson
+     }:
+     mkDerivation {
+       pname = "composite-aeson-writeonly";
+       version = "0.1.0.0";
+       sha256 = "1fr235g96i35ygpvbbvrpyz87d6q7h2bjnlf4asv2dn4a6x40dic";
+       libraryHaskellDepends = [
+         aeson aeson-better-errors base composite-aeson
+       ];
+       description = "WriteOnly indicators for composite-aeson";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "composite-base" = callPackage
-    ({ mkDerivation, base, exceptions, hspec, lens, monad-control, mtl
-     , profunctors, QuickCheck, template-haskell, text, transformers
-     , transformers-base, unliftio-core, vinyl
+    ({ mkDerivation, base, deepseq, exceptions, hspec, lens
+     , monad-control, mtl, profunctors, QuickCheck, template-haskell
+     , text, transformers, transformers-base, unliftio-core, vinyl
      }:
      mkDerivation {
        pname = "composite-base";
-       version = "0.7.1.0";
-       sha256 = "11sbpl43z65gkafz0y69b33irg51ag4hjg7yswaqiwv1b6qn80w4";
+       version = "0.7.4.0";
+       sha256 = "1ml1y1zh8znvaqydwcnv8n69rzmx7zy2bpzr65gy79xbczz3dxwz";
        libraryHaskellDepends = [
-         base exceptions lens monad-control mtl profunctors template-haskell
-         text transformers transformers-base unliftio-core vinyl
-       ];
-       testHaskellDepends = [
-         base exceptions hspec lens monad-control mtl profunctors QuickCheck
+         base deepseq exceptions lens monad-control mtl profunctors
          template-haskell text transformers transformers-base unliftio-core
          vinyl
        ];
+       testHaskellDepends = [
+         base deepseq exceptions hspec lens monad-control mtl profunctors
+         QuickCheck template-haskell text transformers transformers-base
+         unliftio-core vinyl
+       ];
        description = "Shared utilities for composite-* packages";
        license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "composite-binary" = callPackage
+    ({ mkDerivation, base, binary, composite-base }:
+     mkDerivation {
+       pname = "composite-binary";
+       version = "0.7.4.0";
+       sha256 = "07d88krkpplprnw57j4bqi71p8bmj0wz28yw41wgl2p5g2h7zccp";
+       libraryHaskellDepends = [ base binary composite-base ];
+       description = "Orphan binary instances";
+       license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -57962,8 +59043,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-ekg";
-       version = "0.7.1.0";
-       sha256 = "1w2vlbzaxrxj95q3k2vmvzd34d51cz1pj4fv3x34icmp4rx92qvz";
+       version = "0.7.4.0";
+       sha256 = "0y8wnp6n1fvqfrkm1lqv8pdfq7a4k7gaxl3i9dh6xfzyamlghg82";
        libraryHaskellDepends = [
          base composite-base ekg-core lens text vinyl
        ];
@@ -57973,6 +59054,17 @@ self: {
        broken = true;
      }) {};
 
+  "composite-hashable" = callPackage
+    ({ mkDerivation, base, composite-base, hashable }:
+     mkDerivation {
+       pname = "composite-hashable";
+       version = "0.7.4.0";
+       sha256 = "0zwv6m9nzz0g3ngmfznxh6wmprhcgdbfxrsgylnr6990ppk0bmg1";
+       libraryHaskellDepends = [ base composite-base hashable ];
+       description = "Orphan hashable instances";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "composite-opaleye" = callPackage
     ({ mkDerivation, base, bytestring, composite-base, hspec, lens
      , opaleye, postgresql-simple, product-profunctors, profunctors
@@ -57980,8 +59072,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-opaleye";
-       version = "0.7.1.0";
-       sha256 = "1p5nrq5i5ssdiqy38p0qraig8r3z1djfa2hrb7wg5pandiplngr8";
+       version = "0.7.4.0";
+       sha256 = "0nzyslqgh7m9ryqw4rajq2m4kfknqzdq0aqnygyz0sblmgixn4hm";
        libraryHaskellDepends = [
          base bytestring composite-base lens opaleye postgresql-simple
          product-profunctors profunctors template-haskell text vinyl
@@ -58004,8 +59096,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-swagger";
-       version = "0.7.1.0";
-       sha256 = "0npzy42ls7r8i4zldkn3569l5nfdcm905mycd5zda7pkjyyi36q4";
+       version = "0.7.4.0";
+       sha256 = "0a7pcs06m0w0mq60y3hhgn4a36gx5daypc1nh1ndsm6x3q3d99q8";
        libraryHaskellDepends = [
          base composite-base insert-ordered-containers lens swagger2
          template-haskell text vinyl
@@ -58020,6 +59112,28 @@ self: {
        broken = true;
      }) {};
 
+  "composite-tuple" = callPackage
+    ({ mkDerivation, base, composite-base }:
+     mkDerivation {
+       pname = "composite-tuple";
+       version = "0.1.2.0";
+       sha256 = "0y5xz4q5z2lw3jy3fdm5rl19sd969cdpq1a44ar45dpab0qffr41";
+       libraryHaskellDepends = [ base composite-base ];
+       description = "Tuple functions for composite records";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "composite-xstep" = callPackage
+    ({ mkDerivation, base, composite-base, vinyl }:
+     mkDerivation {
+       pname = "composite-xstep";
+       version = "0.1.0.0";
+       sha256 = "18q75ynlywr6yap6nn11x5kzxncn0b6ghmvbg642617pznznpfm9";
+       libraryHaskellDepends = [ base composite-base vinyl ];
+       description = "ReaderT transformer pattern for higher kinded composite data";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "composition" = callPackage
     ({ mkDerivation }:
      mkDerivation {
@@ -58528,22 +59642,6 @@ self: {
      }:
      mkDerivation {
        pname = "concurrency";
-       version = "1.8.1.0";
-       sha256 = "0nw5i85lzh03ppcprzpvrlp3bmdam1z50bp7ddq9mp2ycyjbvrp5";
-       libraryHaskellDepends = [
-         array atomic-primops base exceptions monad-control mtl stm
-         transformers
-       ];
-       description = "Typeclasses, functions, and data types for concurrency and STM";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "concurrency_1_11_0_0" = callPackage
-    ({ mkDerivation, array, atomic-primops, base, exceptions
-     , monad-control, mtl, stm, transformers
-     }:
-     mkDerivation {
-       pname = "concurrency";
        version = "1.11.0.0";
        sha256 = "19a4za0c65gi2a5n882nyi26cgxrsry64rkd3qiqhvzf7m34cjxd";
        libraryHaskellDepends = [
@@ -58552,7 +59650,6 @@ self: {
        ];
        description = "Typeclasses, functions, and data types for concurrency and STM";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "concurrency-benchmarks" = callPackage
@@ -58716,8 +59813,8 @@ self: {
      }:
      mkDerivation {
        pname = "concurrent-output";
-       version = "1.10.11";
-       sha256 = "1d1aaqg5814k59b0iws3fh06p3g2siaj922gkhs75qgncj0my2p3";
+       version = "1.10.12";
+       sha256 = "081wpag1d5znr0ynrjvkc14xl816m88vz9hgfm3g3sp6ak7s3y47";
        libraryHaskellDepends = [
          ansi-terminal async base directory exceptions process stm
          terminal-size text transformers unix
@@ -58991,8 +60088,8 @@ self: {
      }:
      mkDerivation {
        pname = "conduit";
-       version = "1.3.2";
-       sha256 = "0vmcyi3f280b6ll6pcyma4aqrl6m69n6y6x7wplxgsmxz5q7kng3";
+       version = "1.3.2.1";
+       sha256 = "0kyl1zspkp14vrgxgc2zpy9rd9h6aa7m9f385sgshysnhbc7hbg5";
        libraryHaskellDepends = [
          base bytestring directory exceptions filepath mono-traversable mtl
          primitive resourcet text transformers unix unliftio-core vector
@@ -59546,26 +60643,8 @@ self: {
      }:
      mkDerivation {
        pname = "conferer";
-       version = "0.2.0.0";
-       sha256 = "0r666jc016pcpsflxh9lvkxv6fmhnb7agn96gixy8fq3hbksri1v";
-       libraryHaskellDepends = [
-         base bytestring containers directory text
-       ];
-       testHaskellDepends = [
-         base bytestring containers deepseq directory hspec text
-       ];
-       description = "Configuration management library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "conferer_0_4_1_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, directory
-     , hspec, text
-     }:
-     mkDerivation {
-       pname = "conferer";
-       version = "0.4.1.0";
-       sha256 = "10wkzd7418jk6lvjn21h0qyk2lmsx12pvhn5j23b8vim89nb3p1c";
+       version = "0.4.1.1";
+       sha256 = "1fi3sflfkzgxzjv5s0w6ja9dqrlc72lli382j6phqdw3h4qja10d";
        libraryHaskellDepends = [
          base bytestring containers directory text
        ];
@@ -59573,20 +60652,19 @@ self: {
          base bytestring containers deepseq directory hspec text
        ];
        description = "Configuration management library";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
+       license = stdenv.lib.licenses.mpl20;
      }) {};
 
   "conferer-hedis" = callPackage
     ({ mkDerivation, base, conferer, hedis, hspec, text }:
      mkDerivation {
        pname = "conferer-hedis";
-       version = "0.4.0.0";
-       sha256 = "0w6ndawqcc25kq3jzlr907pga69php06sfnmkm2dnw5sw4ws5766";
+       version = "0.4.0.1";
+       sha256 = "0drsyagkdzlkrrq0x43j72804x1i3p4b9pjyqff5jdrr8h9jrv37";
        libraryHaskellDepends = [ base conferer hedis text ];
        testHaskellDepends = [ base conferer hedis hspec text ];
        description = "conferer's FromConfig instances for hedis settings";
-       license = stdenv.lib.licenses.bsd3;
+       license = stdenv.lib.licenses.mpl20;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -59595,25 +60673,12 @@ self: {
     ({ mkDerivation, base, conferer, hspec, hspec-core, text }:
      mkDerivation {
        pname = "conferer-hspec";
-       version = "0.2.0.0";
-       sha256 = "1gqll6ag2bgf05z1jsh5z5m8srz5zq6j9c29zbrdbk2smpp5qgz8";
-       libraryHaskellDepends = [ base conferer hspec-core text ];
-       testHaskellDepends = [ base conferer hspec hspec-core text ];
-       description = "conferer's FromConfig instances for hspec Config";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "conferer-hspec_0_4_0_0" = callPackage
-    ({ mkDerivation, base, conferer, hspec, hspec-core, text }:
-     mkDerivation {
-       pname = "conferer-hspec";
-       version = "0.4.0.0";
-       sha256 = "1zj132a0m043lyk8bi9scvpcyhskivn2hrkcyrbms73i800dd59v";
+       version = "0.4.0.1";
+       sha256 = "1g2dglsvj7caqrvbg1yc08j98ljf71l885kxmmk469ab07j1c5sz";
        libraryHaskellDepends = [ base conferer hspec-core text ];
        testHaskellDepends = [ base conferer hspec hspec-core text ];
        description = "conferer's FromConfig instances for hspec Config";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
+       license = stdenv.lib.licenses.mpl20;
      }) {};
 
   "conferer-provider-dhall" = callPackage
@@ -59644,26 +60709,6 @@ self: {
      }:
      mkDerivation {
        pname = "conferer-provider-json";
-       version = "0.2.0.0";
-       sha256 = "1lb1933r852jm8rf8fn7srhsrggibdissrsnwq7ffbk5l64kcd2v";
-       libraryHaskellDepends = [
-         aeson base bytestring conferer directory text unordered-containers
-         vector
-       ];
-       testHaskellDepends = [
-         aeson aeson-qq base bytestring conferer directory hspec text
-         unordered-containers vector
-       ];
-       description = "conferer's provider for reading json files";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "conferer-provider-json_0_3_0_0" = callPackage
-    ({ mkDerivation, aeson, aeson-qq, base, bytestring, conferer
-     , directory, hspec, text, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "conferer-provider-json";
        version = "0.3.0.0";
        sha256 = "0jrq1cpfhlyq9dvnf4kmx3wqjwz7x18g0hwbg4gkv12spjffpnc9";
        libraryHaskellDepends = [
@@ -59677,6 +60722,7 @@ self: {
        description = "conferer's provider for reading json files";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "conferer-provider-yaml" = callPackage
@@ -59705,8 +60751,8 @@ self: {
      }:
      mkDerivation {
        pname = "conferer-snap";
-       version = "0.4.0.0";
-       sha256 = "1k7pnk3jlrrgky7fb3bf397w5ad9qkh2k42bw5777s35ni3v7955";
+       version = "0.4.0.1";
+       sha256 = "1z5p8zchykp8fc7lag3mi32z4wzb0bxcw5p4j3ya57bqs2xhhsdd";
        libraryHaskellDepends = [
          base conferer snap-core snap-server text
        ];
@@ -59714,7 +60760,7 @@ self: {
          base conferer hspec snap-core snap-server text
        ];
        description = "conferer's FromConfig instances for snap Config";
-       license = stdenv.lib.licenses.bsd3;
+       license = stdenv.lib.licenses.mpl20;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -59725,8 +60771,8 @@ self: {
      }:
      mkDerivation {
        pname = "conferer-source-dhall";
-       version = "0.4.0.0";
-       sha256 = "0s3f0r9q16b08g6kv7vbk7hy48a6bgf5xqalw7n9zkmn4i6qb2cf";
+       version = "0.4.0.1";
+       sha256 = "00i3sk948bg6brf97m41n9s4da4m25n220l5gkddb589li0lq0rk";
        libraryHaskellDepends = [
          base bytestring conferer conferer-source-json dhall dhall-json
          directory text
@@ -59736,7 +60782,7 @@ self: {
          directory hspec text
        ];
        description = "Configuration for reading dhall files";
-       license = stdenv.lib.licenses.bsd3;
+       license = stdenv.lib.licenses.mpl20;
      }) {};
 
   "conferer-source-json" = callPackage
@@ -59745,8 +60791,8 @@ self: {
      }:
      mkDerivation {
        pname = "conferer-source-json";
-       version = "0.4.0.0";
-       sha256 = "0dml6xcs3bx3ay1f415k58xdr5xwy2201ibbi2v5lcs9dcb5vnhb";
+       version = "0.4.0.1";
+       sha256 = "01kfm771qks7b66z0nlv2b108r002xv8bzacr9p6ih7nsbcbiqdn";
        libraryHaskellDepends = [
          aeson base bytestring conferer directory text unordered-containers
          vector
@@ -59756,7 +60802,7 @@ self: {
          unordered-containers vector
        ];
        description = "conferer's source for reading json files";
-       license = stdenv.lib.licenses.bsd3;
+       license = stdenv.lib.licenses.mpl20;
      }) {};
 
   "conferer-source-yaml" = callPackage
@@ -59764,8 +60810,8 @@ self: {
      }:
      mkDerivation {
        pname = "conferer-source-yaml";
-       version = "0.4.0.0";
-       sha256 = "1cpq88z525fw0zabvn4m14shp0pvbchzbmhiby4cyp7qzb5cjiyn";
+       version = "0.4.0.1";
+       sha256 = "0ydciicxd7lxz2b6jmcc8ipyp99rp9gr9s2s2fnhmnhjv0xw6d7a";
        libraryHaskellDepends = [
          base conferer conferer-source-json yaml
        ];
@@ -59773,7 +60819,7 @@ self: {
          base conferer conferer-source-json hspec yaml
        ];
        description = "Configuration for reading yaml files";
-       license = stdenv.lib.licenses.bsd3;
+       license = stdenv.lib.licenses.mpl20;
      }) {};
 
   "conferer-warp" = callPackage
@@ -59781,30 +60827,14 @@ self: {
      }:
      mkDerivation {
        pname = "conferer-warp";
-       version = "0.2.0.0";
-       sha256 = "1ajymzh3jz0ffkaviacl4qdm7n7i8lswkk158vhrhqabpyqpxy6r";
-       libraryHaskellDepends = [ base conferer http-types text wai warp ];
-       testHaskellDepends = [
-         base conferer hspec http-types text wai warp
-       ];
-       description = "conferer's FromConfig instances for warp settings";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "conferer-warp_0_4_0_0" = callPackage
-    ({ mkDerivation, base, conferer, hspec, http-types, text, wai, warp
-     }:
-     mkDerivation {
-       pname = "conferer-warp";
-       version = "0.4.0.0";
-       sha256 = "1xwvk22diwfww82v7q7paq0aqnp5lqqayq4z76lq41zmp1l6nkzc";
+       version = "0.4.0.1";
+       sha256 = "1swvrkfqvpnpw2nihqzgn8rxv0pfbc9cl8wlyfshrqirjm0lhbj3";
        libraryHaskellDepends = [ base conferer http-types text wai warp ];
        testHaskellDepends = [
          base conferer hspec http-types text wai warp
        ];
        description = "conferer's FromConfig instances for warp settings";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
+       license = stdenv.lib.licenses.mpl20;
      }) {};
 
   "confetti" = callPackage
@@ -60036,6 +61066,8 @@ self: {
        pname = "configuration-tools";
        version = "0.5.0";
        sha256 = "0pgx2wzzqxgafgf3qjys05hp89lz4fwczsx0i581n8ngs3p4i0wh";
+       revision = "1";
+       editedCabalFile = "0srscnmj5dhaq0djx0lhcggl53ipn6pw8vgsvgzhhjrbmnn2zb2p";
        setupHaskellDepends = [
          base bytestring Cabal directory filepath process
        ];
@@ -60127,8 +61159,8 @@ self: {
      }:
      mkDerivation {
        pname = "configurator-pg";
-       version = "0.2.3";
-       sha256 = "0vbs52za4smxy8nag08ag2c9mjbpiw1a7ai5vd8is7db9732skfa";
+       version = "0.2.4";
+       sha256 = "07zhvfky3p4wv6hc48hclmgkz465wpbqwx4yfljby82hgnrkdarh";
        libraryHaskellDepends = [
          base containers megaparsec protolude scientific text
        ];
@@ -60296,18 +61328,18 @@ self: {
      }) {};
 
   "connections" = callPackage
-    ({ mkDerivation, base, containers, hedgehog, lawz, rings
-     , semigroupoids
+    ({ mkDerivation, base, containers, finite-typelits, hedgehog
+     , transformers, universe-base
      }:
      mkDerivation {
        pname = "connections";
-       version = "0.0.3";
-       sha256 = "112m18l4apg9djgi9m9pg4222dy7wfkl0z9l98yf92yzw9pq08zv";
+       version = "0.1.0";
+       sha256 = "0lnskpdfgxjbkqlg82i1gxz8dsns36szyw1mv45nlq7jqspfspgp";
        libraryHaskellDepends = [
-         base containers lawz rings semigroupoids
+         base containers finite-typelits transformers universe-base
        ];
-       testHaskellDepends = [ base hedgehog lawz rings ];
-       description = "Partial orders, Galois connections, and lattices";
+       testHaskellDepends = [ base hedgehog ];
+       description = "Orders, Galois connections, and lattices";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -60394,7 +61426,7 @@ self: {
        version = "0.1.0.1";
        sha256 = "16s8y035f30gyla620diwnsqi8lbmmfyxjpj4dlq24d45k5wfnsd";
        libraryHaskellDepends = [ attoparsec base bytestring vector ];
-       description = "Parse ByteStrings of a prescribed length.";
+       description = "Parse ByteStrings of a prescribed length";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -60495,7 +61527,7 @@ self: {
          base containers criterion deepseq nat-sized-numbers QuickCheck
          smallcheck transformers vector
        ];
-       description = "Typeclasses and instances for monads with constraints.";
+       description = "Typeclasses and instances for monads with constraints";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -60593,25 +61625,6 @@ self: {
      }:
      mkDerivation {
        pname = "constraints";
-       version = "0.11.2";
-       sha256 = "10mnhg7p5gk4i3bzldl07qkrihnvmfkgsp32w7p9i7x8cmj5akjq";
-       libraryHaskellDepends = [
-         base binary deepseq ghc-prim hashable mtl semigroups transformers
-         transformers-compat type-equality
-       ];
-       testHaskellDepends = [ base hspec ];
-       testToolDepends = [ hspec-discover ];
-       description = "Constraint manipulation";
-       license = stdenv.lib.licenses.bsd2;
-     }) {};
-
-  "constraints_0_12" = callPackage
-    ({ mkDerivation, base, binary, deepseq, ghc-prim, hashable, hspec
-     , hspec-discover, mtl, semigroups, transformers
-     , transformers-compat, type-equality
-     }:
-     mkDerivation {
-       pname = "constraints";
        version = "0.12";
        sha256 = "08q2fq2xy2ija164k5a178jjffdii57nrx2x9ddz24zh2ld56szj";
        libraryHaskellDepends = [
@@ -60622,7 +61635,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Constraint manipulation";
        license = stdenv.lib.licenses.bsd2;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "constraints-deriving" = callPackage
@@ -60631,8 +61643,10 @@ self: {
      }:
      mkDerivation {
        pname = "constraints-deriving";
-       version = "1.1.1.0";
-       sha256 = "1phgcib4bxbci2n4kh3r1iyp31bbzs6qpnvmxf373hglwyvj9pjy";
+       version = "1.1.1.1";
+       sha256 = "06crlqgr5dswjpb9k0d5wizfl8anyrnapqfvp10amq3lgfg3sriz";
+       revision = "1";
+       editedCabalFile = "1fqk2bd5n52yvqx54ck2ypq9a79m8ihp7057j22rglg3b363k8j0";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal ];
@@ -60668,6 +61682,8 @@ self: {
        pname = "constraints-extras";
        version = "0.3.0.2";
        sha256 = "1n3k5ld6qzq7vlwsqwrm3gsg4z7mk11ah3amazzbvbmxwz8wviys";
+       revision = "2";
+       editedCabalFile = "09mdfzrmnl0mc57n7h0w68i8xgp89y5729p2d2h6qb2qj81qsfq1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base constraints template-haskell ];
@@ -60690,17 +61706,17 @@ self: {
   "construct" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, Cabal, cabal-doctest
      , cereal, directory, doctest, filepath, incremental-parser
-     , markdown-unlit, monoid-subclasses, parsers, rank2classes, tasty
-     , tasty-hunit, text
+     , input-parsers, markdown-unlit, monoid-subclasses, parsers
+     , rank2classes, tasty, tasty-hunit, text
      }:
      mkDerivation {
        pname = "construct";
-       version = "0.2.0.1";
-       sha256 = "1j2xc1j9f71shins5nnj0xg41k4vx2r1jgimnnlcdln2g24v71l2";
+       version = "0.3";
+       sha256 = "06h3b1lbq0gdpzz2q5ga0dpgbvyh186z1brzslrwdmkp8qxx883x";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
-         attoparsec base bytestring cereal incremental-parser
+         attoparsec base bytestring cereal incremental-parser input-parsers
          monoid-subclasses parsers rank2classes text
        ];
        testHaskellDepends = [
@@ -60711,6 +61727,8 @@ self: {
        testToolDepends = [ markdown-unlit ];
        description = "Haskell version of the Construct library for easy specification of file formats";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "constructible" = callPackage
@@ -60779,8 +61797,8 @@ self: {
        pname = "consumers";
        version = "2.2.0.2";
        sha256 = "0nml5hn6n95ngy1qvj6w4rkwa8r6qax0nc2vgimk68bawv4z97qd";
-       revision = "1";
-       editedCabalFile = "150f62zfb5kpa8iwp08fq9gdmv142swfldkjrrjyx0jpvf6qcjxc";
+       revision = "2";
+       editedCabalFile = "0fa67waf0af62kpljdksm00lvh29vm1rddfpjvy5c7lcy2a9ll97";
        libraryHaskellDepends = [
          base containers exceptions extra hpqtypes lifted-base
          lifted-threads log-base monad-control monad-time mtl stm time
@@ -60848,18 +61866,37 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "containers_0_6_2_1" = callPackage
+  "containers_0_6_4_1" = callPackage
     ({ mkDerivation, array, base, deepseq }:
      mkDerivation {
        pname = "containers";
-       version = "0.6.2.1";
-       sha256 = "05h0sc70xy4jm0hvzv0pnqy1sbi61f73whawk46jwcjzyfa5f30k";
+       version = "0.6.4.1";
+       sha256 = "0vn43a7bf49pih9b65b359xf3658d96dpm9j35i8x8j61vlrcsid";
        libraryHaskellDepends = [ array base deepseq ];
        description = "Assorted concrete container types";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "containers-accelerate" = callPackage
+    ({ mkDerivation, accelerate, accelerate-llvm-native, base
+     , containers, half, hashable-accelerate, hedgehog, tasty
+     , tasty-hedgehog
+     }:
+     mkDerivation {
+       pname = "containers-accelerate";
+       version = "0.1.0.0";
+       sha256 = "1bfw5k6nq15szgwjkzd17inmlk0ii0pd6a4lrixi8gyjf6ksm6n1";
+       libraryHaskellDepends = [ accelerate base hashable-accelerate ];
+       testHaskellDepends = [
+         accelerate accelerate-llvm-native base containers half
+         hashable-accelerate hedgehog tasty tasty-hedgehog
+       ];
+       description = "Hashing-based container types";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "containers-benchmark" = callPackage
     ({ mkDerivation, base, bytestring, containers, criterion, deepseq
      , ghc-prim, random
@@ -60894,8 +61931,8 @@ self: {
     ({ mkDerivation, base, base-unicode-symbols, containers }:
      mkDerivation {
        pname = "containers-unicode-symbols";
-       version = "0.3.1.1";
-       sha256 = "0ccv7rqkykfk5wmr73mc0kwrnwyzakgp5x495dgwn5nila3g4ma6";
+       version = "0.3.1.2";
+       sha256 = "006znsrwz3sssvg53mail2xd98hq6y4l83140sd2fzyg4df25js7";
        libraryHaskellDepends = [ base base-unicode-symbols containers ];
        description = "Unicode alternatives for common functions and operators";
        license = stdenv.lib.licenses.bsd3;
@@ -60942,6 +61979,21 @@ self: {
        broken = true;
      }) {};
 
+  "context" = callPackage
+    ({ mkDerivation, async, base, containers, ghc-prim, hspec
+     , hspec-discover
+     }:
+     mkDerivation {
+       pname = "context";
+       version = "0.1.0.0";
+       sha256 = "17w0narhg25ls1rs2xp8x0yxh5jhw52b0c3zgi9ivn99j7c8qrhd";
+       libraryHaskellDepends = [ base containers ];
+       testHaskellDepends = [ async base ghc-prim hspec ];
+       testToolDepends = [ hspec-discover ];
+       description = "Thread-indexed, nested contexts";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "context-free-art" = callPackage
     ({ mkDerivation, base, bifunctors, blaze-markup, blaze-svg
      , directory, HUnit, random, text, text-show
@@ -60990,6 +62042,37 @@ self: {
        broken = true;
      }) {};
 
+  "context-http-client" = callPackage
+    ({ mkDerivation, async, base, bytestring, case-insensitive, context
+     , hspec, hspec-discover, http-client, http-types, stm, wai, warp
+     }:
+     mkDerivation {
+       pname = "context-http-client";
+       version = "0.1.0.0";
+       sha256 = "0ad917jnzqd2idzh6a5j9nvjf2pg7l968vmn38cxgh9hfq3yhwm7";
+       libraryHaskellDepends = [ base context http-client ];
+       testHaskellDepends = [
+         async base bytestring case-insensitive context hspec http-client
+         http-types stm wai warp
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Modify HTTP requests/responses using context";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "context-resource" = callPackage
+    ({ mkDerivation, async, base, context, hspec, hspec-discover }:
+     mkDerivation {
+       pname = "context-resource";
+       version = "0.1.0.0";
+       sha256 = "0695m9hnx8grfmyy7mzd6n3426qc18sh14hy6glhr5nwj9c4k4c2";
+       libraryHaskellDepends = [ base context ];
+       testHaskellDepends = [ async base context hspec ];
+       testToolDepends = [ hspec-discover ];
+       description = "Thread-safe, pool-compatible resource provider";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "context-stack" = callPackage
     ({ mkDerivation, base, classy-prelude, mtl, unordered-containers }:
      mkDerivation {
@@ -61005,6 +62088,24 @@ self: {
        broken = true;
      }) {};
 
+  "context-wai-middleware" = callPackage
+    ({ mkDerivation, async, base, bytestring, case-insensitive, context
+     , hspec, hspec-discover, http-client, http-types, stm, wai, warp
+     }:
+     mkDerivation {
+       pname = "context-wai-middleware";
+       version = "0.1.0.0";
+       sha256 = "0bisqsngccddkamf60qyk4h9w4w80ppks51i4p9bl39kmf7hd65l";
+       libraryHaskellDepends = [ base context wai ];
+       testHaskellDepends = [
+         async base bytestring case-insensitive context hspec http-client
+         http-types stm wai warp
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Add request-specific (or not!) context to your WAI applications";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "contiguous" = callPackage
     ({ mkDerivation, base, deepseq, primitive, primitive-unlifted
      , QuickCheck, quickcheck-classes, quickcheck-instances, random
@@ -61012,8 +62113,8 @@ self: {
      }:
      mkDerivation {
        pname = "contiguous";
-       version = "0.5";
-       sha256 = "0nz3ssh0zc8rs67mk8fmc8plvbjac6mlxdmzk9fw8sj2vx2ssisq";
+       version = "0.5.1";
+       sha256 = "1y02gqgd012zggs7kqxkky0prmbl0k9ji5ynb74i5mym88xrj67h";
        libraryHaskellDepends = [
          base deepseq primitive primitive-unlifted
        ];
@@ -61162,8 +62263,8 @@ self: {
      }:
      mkDerivation {
        pname = "contravariant-extras";
-       version = "0.3.5.1";
-       sha256 = "0r9bg6mrm5whv7inpp9m2agwbnk70vg0v7nrflpxkif81scpq0z9";
+       version = "0.3.5.2";
+       sha256 = "0ikwzg0992j870yp0x2ssf4mv2hw2nml979apg493m72xnvr1jz9";
        libraryHaskellDepends = [
          base contravariant template-haskell template-haskell-compat-v0208
        ];
@@ -61277,14 +62378,14 @@ self: {
      }:
      mkDerivation {
        pname = "control-monad-exception";
-       version = "0.11.2";
-       sha256 = "0vdms5if6c04459ksix5q38l9cflgc5bwnchd422fp2qfji5j14p";
+       version = "0.11.4";
+       sha256 = "124qqhr4w9b224bdfm88dvxfsalcki46yc06swm52jirag06hn6r";
        libraryHaskellDepends = [
          base failure lifted-base monad-control monadloc transformers
          transformers-base
        ];
        description = "Explicitly typed, checked exceptions with stack traces";
-       license = stdenv.lib.licenses.mit;
+       license = stdenv.lib.licenses.publicDomain;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -61528,6 +62629,29 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "conversions" = callPackage
+    ({ mkDerivation, base, bytestring, control-bool, devtools
+     , exceptions, mtl, source-constraints, template-haskell, text
+     , unliftio-core
+     }:
+     mkDerivation {
+       pname = "conversions";
+       version = "0.0.3";
+       sha256 = "1fn7ras17maswl7fw5hdbw02b8wjlzs2gcfwdxrw9xipjbw81hir";
+       libraryHaskellDepends = [
+         base bytestring control-bool devtools exceptions mtl
+         source-constraints template-haskell text unliftio-core
+       ];
+       testHaskellDepends = [
+         base bytestring control-bool devtools exceptions mtl
+         source-constraints template-haskell text unliftio-core
+       ];
+       description = "Injective explicit total and partial conversions";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "convert" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, bytestring, containers
      , data-default, impossible, lens, template-haskell, text
@@ -61886,8 +63010,8 @@ self: {
      }:
      mkDerivation {
        pname = "core-data";
-       version = "0.2.1.5";
-       sha256 = "17lvpbyrr9wm93qprk45n5gf3f6k47f9wf7ays0bfk0hx23chc1n";
+       version = "0.2.1.8";
+       sha256 = "1hgvvkk3m3ykdndmf2hbm59v0pim68jwgl2a6n5hw1dv4xwd3fay";
        libraryHaskellDepends = [
          aeson base bytestring containers core-text hashable prettyprinter
          prettyprinter-ansi-terminal scientific text unordered-containers
@@ -61923,8 +63047,8 @@ self: {
      }:
      mkDerivation {
        pname = "core-program";
-       version = "0.2.4.2";
-       sha256 = "0zs62mn87fdrjwi1dp11hkr7nbb7v3ikxk1ph6cnjdk0di9hrr6a";
+       version = "0.2.4.5";
+       sha256 = "1a2zjdywmgniwcj649f43hri55bh30vz2s00r3yqj3gvhhighi86";
        libraryHaskellDepends = [
          async base bytestring chronologique core-data core-text directory
          exceptions filepath fsnotify hashable hourglass mtl prettyprinter
@@ -61942,8 +63066,8 @@ self: {
      }:
      mkDerivation {
        pname = "core-text";
-       version = "0.2.3.3";
-       sha256 = "0bnbl34fzy497a8ljgcydp490j3684yw8r32jijqyix7y9q2cl2d";
+       version = "0.2.3.6";
+       sha256 = "13sdgym8xhljpc465bq1h066mrcvk77568viklhib255skjl56gn";
        libraryHaskellDepends = [
          base bytestring deepseq fingertree hashable prettyprinter
          prettyprinter-ansi-terminal template-haskell text text-short
@@ -62015,6 +63139,8 @@ self: {
        librarySystemDepends = [ rocksdb ];
        description = "Launches CoreNLP and parses the JSON output";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) rocksdb;};
 
   "cornea" = callPackage
@@ -62246,16 +63372,16 @@ self: {
 
   "country" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, deepseq
-     , ghc-prim, hashable, primitive, QuickCheck, quickcheck-classes
-     , scientific, tasty, tasty-quickcheck, text, unordered-containers
+     , hashable, primitive, QuickCheck, quickcheck-classes, scientific
+     , tasty, tasty-quickcheck, text, unordered-containers
      }:
      mkDerivation {
        pname = "country";
-       version = "0.2";
-       sha256 = "09qimpqgg4zhiiyw13n5r1ckswr5x3m8k1hdx9hwhd52j45zhbkg";
+       version = "0.2.1";
+       sha256 = "0nc9vjwagmih0m8h423lbsamkbxxyzhk3cr9cm7a7wwbl2bddq3a";
        libraryHaskellDepends = [
-         aeson attoparsec base bytestring deepseq ghc-prim hashable
-         primitive scientific text unordered-containers
+         aeson attoparsec base bytestring deepseq hashable primitive
+         scientific text unordered-containers
        ];
        testHaskellDepends = [
          base QuickCheck quickcheck-classes tasty tasty-quickcheck
@@ -62347,8 +63473,8 @@ self: {
     ({ mkDerivation, base, groups, primitive, refined, semirings }:
      mkDerivation {
        pname = "coya";
-       version = "0.1";
-       sha256 = "1s5si8w7s16l6s89gnhzmpyr555njb0gws7xipp017m7130pwgx3";
+       version = "0.1.0.1";
+       sha256 = "0cz4n27akgima9w75ilpg9ngapsh47gw3fdy01fx8z50cll6v02y";
        libraryHaskellDepends = [
          base groups primitive refined semirings
        ];
@@ -62407,8 +63533,10 @@ self: {
      }:
      mkDerivation {
        pname = "cpkg";
-       version = "0.2.5.4";
-       sha256 = "1269zgvcvd18zdmg4rf73mh89a3gcph91fqm46p5h05wz500179w";
+       version = "0.2.5.6";
+       sha256 = "1fvwvaqd9nn4pnblyi874kwb450h85gg2afa6khp4vsz1bybc8ch";
+       revision = "1";
+       editedCabalFile = "07scy0rvrinfiwj4l7gfwi8srnrp3v5w0pbjsqsp738akmlbbgna";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -62425,6 +63553,8 @@ self: {
        testHaskellDepends = [ base hspec hspec-megaparsec megaparsec ];
        description = "Build tool for C";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "cplex-hs" = callPackage
@@ -62890,6 +64020,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "crackNum_2_4" = callPackage
+    ({ mkDerivation, array, base, FloatingHex }:
+     mkDerivation {
+       pname = "crackNum";
+       version = "2.4";
+       sha256 = "1fa9rlknmilc8rnm7yvmjrbc9jydpvk30gj7lq79nqbifig6229a";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ array base FloatingHex ];
+       executableHaskellDepends = [ array base FloatingHex ];
+       description = "Crack various integer, floating-point data formats";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "craft" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async, base
      , bytestring, conduit, conduit-combinators, conduit-extra
@@ -63521,28 +64666,6 @@ self: {
      }:
      mkDerivation {
        pname = "cron";
-       version = "0.6.2";
-       sha256 = "14g4vndj5i1gjg6nbd6h04rzajijflwxzkgnjalsjjfd6fmrny5h";
-       libraryHaskellDepends = [
-         attoparsec base data-default-class mtl mtl-compat old-locale
-         semigroups text time
-       ];
-       testHaskellDepends = [
-         attoparsec base hedgehog semigroups tasty tasty-hedgehog
-         tasty-hunit text time transformers-compat
-       ];
-       benchmarkHaskellDepends = [ attoparsec base criterion text time ];
-       description = "Cron datatypes and Attoparsec parser";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "cron_0_7_0" = callPackage
-    ({ mkDerivation, attoparsec, base, criterion, data-default-class
-     , hedgehog, mtl, mtl-compat, old-locale, semigroups, tasty
-     , tasty-hedgehog, tasty-hunit, text, time, transformers-compat
-     }:
-     mkDerivation {
-       pname = "cron";
        version = "0.7.0";
        sha256 = "0f8jb2pxy89hkdnm20yz88b3j3vgh1a9c1dxiym3150izp34ikd5";
        libraryHaskellDepends = [
@@ -63556,7 +64679,6 @@ self: {
        benchmarkHaskellDepends = [ attoparsec base criterion text time ];
        description = "Cron datatypes and Attoparsec parser";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "cron-compat" = callPackage
@@ -63582,6 +64704,23 @@ self: {
        broken = true;
      }) {};
 
+  "cronus" = callPackage
+    ({ mkDerivation, base, bytestring, comonad, containers, deepseq
+     , hashable, mtl, profunctors, text, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "cronus";
+       version = "0.1.0.0";
+       sha256 = "10mypmm3q1icxdmgqxpvha8igyr6nddwmpbhpxkksaqfgy7a6g63";
+       libraryHaskellDepends = [
+         base bytestring comonad containers deepseq hashable mtl profunctors
+         text transformers unordered-containers vector
+       ];
+       description = "Another bloated standard library";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "cruncher-types" = callPackage
     ({ mkDerivation, aeson, base, containers, hlint, lens, text }:
      mkDerivation {
@@ -63773,8 +64912,8 @@ self: {
        pname = "crypto-enigma";
        version = "0.1.1.6";
        sha256 = "07qxrpwg9r2w2l0d2nrvn703vzsfhchznly93bnr2pfpbwj4iv2z";
-       revision = "3";
-       editedCabalFile = "0djn9pyvhlk964mzqdw0fpczwsvzadcp6jkkryhi8vbvkb88i9rn";
+       revision = "4";
+       editedCabalFile = "0436kl0gsy0hj7dfrqmwz95q3k31af731q484yx2gj9zcma1h1vp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers split text ];
@@ -63782,7 +64921,7 @@ self: {
          ansi-terminal base containers optparse-applicative split text
        ];
        testHaskellDepends = [ base HUnit QuickCheck ];
-       description = "An Enigma machine simulator with display.";
+       description = "An Enigma machine simulator with display";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -63985,22 +65124,26 @@ self: {
      }) {};
 
   "crypto-sodium" = callPackage
-    ({ mkDerivation, base, bytestring, gdp, HUnit, libsodium, memory
-     , NaCl, safe-exceptions, tasty, tasty-discover, tasty-hunit
+    ({ mkDerivation, base, base16-bytestring, bytestring, cereal
+     , hedgehog, HUnit, libsodium, memory, NaCl, safe-exceptions, tasty
+     , tasty-discover, tasty-hedgehog, tasty-hunit
      }:
      mkDerivation {
        pname = "crypto-sodium";
-       version = "0.0.2.0";
-       sha256 = "12sfmxfd5ci3iybl2cv4mil461ga81gv7hywmbrk4d3vjs3lfil8";
+       version = "0.0.3.1";
+       sha256 = "1hjwxbxszhg9z83i6p141avalwi9rjh4v014vh1dcj69dqb7q00h";
        libraryHaskellDepends = [
-         base bytestring gdp libsodium memory NaCl safe-exceptions
+         base bytestring cereal libsodium memory NaCl safe-exceptions
        ];
        testHaskellDepends = [
-         base bytestring HUnit libsodium memory tasty tasty-hunit
+         base base16-bytestring bytestring hedgehog HUnit libsodium memory
+         safe-exceptions tasty tasty-hedgehog tasty-hunit
        ];
        testToolDepends = [ tasty-discover ];
        description = "Easy-and-safe-to-use high-level cryptography based on Sodium";
        license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "crypto-token" = callPackage
@@ -64244,6 +65387,8 @@ self: {
        ];
        description = "Reversable and secure encoding of object ids as a bytestring";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "cryptoids-class" = callPackage
@@ -64277,25 +65422,27 @@ self: {
      }) {};
 
   "cryptol" = callPackage
-    ({ mkDerivation, alex, ansi-terminal, array, base, base-compat
-     , blaze-html, bytestring, containers, criterion, cryptohash-sha1
-     , deepseq, directory, filepath, gitrev, GraphSCC, happy, haskeline
-     , heredoc, monad-control, monadLib, mtl, panic, pretty, process
-     , random, sbv, simple-smt, strict, text, tf-random, time
-     , transformers, transformers-base
+    ({ mkDerivation, alex, ansi-terminal, array, async, base
+     , base-compat, blaze-html, bv-sized, bytestring, containers
+     , criterion, cryptohash-sha1, deepseq, directory, exceptions
+     , filepath, gitrev, GraphSCC, happy, haskeline, heredoc, libBF
+     , monad-control, monadLib, mtl, panic, parameterized-utils, pretty
+     , process, random, sbv, simple-smt, strict, text, tf-random, time
+     , transformers, transformers-base, what4
      }:
      mkDerivation {
        pname = "cryptol";
-       version = "2.8.0";
-       sha256 = "1fqhk7glh1y0a1f0iwdzrljh9k7v06pn0ybhlcs51ph9vs4byqdh";
+       version = "2.9.1";
+       sha256 = "0c484pla89igj77x5n2n50a1la8j4jaqpc0pc58c1pcijffxac5l";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         array base base-compat bytestring containers cryptohash-sha1
-         deepseq directory filepath gitrev GraphSCC heredoc monad-control
-         monadLib mtl panic pretty process random sbv simple-smt strict text
-         tf-random time transformers-base
+         array async base base-compat bv-sized bytestring containers
+         cryptohash-sha1 deepseq directory exceptions filepath gitrev
+         GraphSCC heredoc libBF monad-control monadLib mtl panic
+         parameterized-utils pretty process random sbv simple-smt strict
+         text tf-random time transformers-base what4
        ];
        libraryToolDepends = [ alex happy ];
        executableHaskellDepends = [
@@ -64333,6 +65480,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "cryptonite_0_27" = callPackage
+    ({ mkDerivation, base, basement, bytestring, deepseq, gauge
+     , ghc-prim, integer-gmp, memory, random, tasty, tasty-hunit
+     , tasty-kat, tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "cryptonite";
+       version = "0.27";
+       sha256 = "1c68wvn2b49gijq9day2bzi0axcbdz41ip3j0wdahdhcjfl4a9y8";
+       libraryHaskellDepends = [
+         base basement bytestring deepseq ghc-prim integer-gmp memory
+       ];
+       testHaskellDepends = [
+         base bytestring memory tasty tasty-hunit tasty-kat tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring deepseq gauge memory random
+       ];
+       description = "Cryptography Primitives sink";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "cryptonite-conduit" = callPackage
     ({ mkDerivation, base, bytestring, conduit, conduit-combinators
      , conduit-extra, cryptonite, exceptions, memory, resourcet, tasty
@@ -64506,6 +65676,8 @@ self: {
        ];
        description = "a gallery of Csound instruments";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "csound-expression" = callPackage
@@ -64516,8 +65688,8 @@ self: {
      }:
      mkDerivation {
        pname = "csound-expression";
-       version = "5.3.2";
-       sha256 = "1v3ssy2rfgwz9wwv8kmaifyrphyl5w66p9zmrg1bi0vbzwxnr57q";
+       version = "5.3.3";
+       sha256 = "0g6djh3ijvka6hkw4nhb7vhhyl4i268rdxvnwmm6ayg6a8kg8p0g";
        libraryHaskellDepends = [
          base Boolean colour containers csound-expression-dynamic
          csound-expression-opcodes csound-expression-typed data-default
@@ -64525,22 +65697,27 @@ self: {
        ];
        description = "library to make electronic music";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "csound-expression-dynamic" = callPackage
     ({ mkDerivation, array, base, Boolean, containers, data-default
-     , data-fix, data-fix-cse, hashable, transformers, wl-pprint
+     , data-fix, data-fix-cse, deriving-compat, hashable, transformers
+     , wl-pprint
      }:
      mkDerivation {
        pname = "csound-expression-dynamic";
-       version = "0.3.3";
-       sha256 = "0k4pk96cx2f6rhz18mrdkkz7ic2fdzpqkxf1x596990az7pjg7g3";
+       version = "0.3.5";
+       sha256 = "07xykqpym48bvvs7sa0m12psahsn7z245cd89akv9flkgwjwaa29";
        libraryHaskellDepends = [
          array base Boolean containers data-default data-fix data-fix-cse
-         hashable transformers wl-pprint
+         deriving-compat hashable transformers wl-pprint
        ];
        description = "dynamic core for csound-expression library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "csound-expression-opcodes" = callPackage
@@ -64556,6 +65733,8 @@ self: {
        ];
        description = "opcodes for the library csound-expression";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "csound-expression-typed" = callPackage
@@ -64566,8 +65745,8 @@ self: {
      }:
      mkDerivation {
        pname = "csound-expression-typed";
-       version = "0.2.2.0";
-       sha256 = "19cplqpyd7vhn28z0k8mxmscja05w9xb8q4bbvq5qd0h8liqxsqg";
+       version = "0.2.3.1";
+       sha256 = "02zd41sz1y8qfchdyhgiddi6s1p5081nr5haq04qdmbz5bgpdmbq";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base Boolean colour containers csound-expression-dynamic
@@ -64576,6 +65755,8 @@ self: {
        ];
        description = "typed core for the library csound-expression";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "csound-sampler" = callPackage
@@ -64587,6 +65768,8 @@ self: {
        libraryHaskellDepends = [ base csound-expression transformers ];
        description = "A musical sampler based on Csound";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "csp" = callPackage
@@ -64772,7 +65955,7 @@ self: {
          attoparsec attoparsec-enumerator base bytestring containers
          directory enumerator safe transformers unix-compat
        ];
-       description = "A flexible, fast, enumerator-based CSV parser library for Haskell.";
+       description = "A flexible, fast, enumerator-based CSV parser library for Haskell";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -64969,8 +66152,8 @@ self: {
      }:
      mkDerivation {
        pname = "cublas";
-       version = "0.5.0.0";
-       sha256 = "0s47wrmlb35dpym4dz3688qx8m166i2a9d8pqnfdzxy67zv98g1f";
+       version = "0.6.0.0";
+       sha256 = "0yxyynvf9zlkc8yhra5j1sk1d8hbiqvzbsh02mc1y8hcf8nzyp61";
        setupHaskellDepends = [ base Cabal cuda directory filepath ];
        libraryHaskellDepends = [
          base cuda half storable-complex template-haskell
@@ -65003,11 +66186,12 @@ self: {
      }:
      mkDerivation {
        pname = "cuckoo";
-       version = "0.2.0.1";
-       sha256 = "1q070hzrsm0f1lfxnsk4jmmb9pay98522k2lqncvzg09fm2a687j";
+       version = "0.2.1";
+       sha256 = "1bv39vfg0yzancyya1cdbrcdc0gasp0djcc9ryiwrc3kf9y0nbzn";
        libraryHaskellDepends = [ base memory primitive random vector ];
        testHaskellDepends = [
-         base bytestring cryptonite doctest hashable memory stopwatch
+         base bytestring cryptonite doctest hashable memory primitive
+         stopwatch
        ];
        benchmarkHaskellDepends = [
          base bytestring criterion memory QuickCheck stopwatch
@@ -65051,10 +66235,8 @@ self: {
      }:
      mkDerivation {
        pname = "cuda";
-       version = "0.10.1.0";
-       sha256 = "10lyyc652ic3m4r5agszpv2r99y9fnsdwahb5pd4qiga770v45vp";
-       revision = "1";
-       editedCabalFile = "0y08nr4p6rad1393l0373s4ivq2zvgm8xv0axh5bi6n95j2khkqz";
+       version = "0.10.2.0";
+       sha256 = "0fkjibnnxradhsbasx1mw0c088cfwypnk6a5002rxpzxid5qrp9l";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal directory filepath ];
@@ -65065,6 +66247,7 @@ self: {
        executableHaskellDepends = [ base pretty ];
        description = "FFI binding to the CUDA interface for programming NVIDIA GPUs";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "cudd" = callPackage
@@ -65091,8 +66274,8 @@ self: {
        pname = "cue-sheet";
        version = "2.0.1";
        sha256 = "0papll3xcq2ipmya61jr71gf3zx2swmys829x5sbz7lv6abj9r3i";
-       revision = "1";
-       editedCabalFile = "0md9051a0jp4vkss15dyyf1w7ylpqmvzfdj9xb1rgj95s1x7cx2g";
+       revision = "2";
+       editedCabalFile = "0kblqr8mjmps56a7pbjwnby5ik8grmj15l1qir7q9kbn44x4s8l3";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers exceptions megaparsec mtl QuickCheck
@@ -65113,8 +66296,8 @@ self: {
      }:
      mkDerivation {
        pname = "cufft";
-       version = "0.9.0.1";
-       sha256 = "1cf11ia4i19bpbs0wzkz2hqzc22hh2dvbn8m5frnwild83zal4n3";
+       version = "0.10.0.0";
+       sha256 = "1prma5srgfnhjvf1rvxd1kznv42k4svhk05j93mx1pcx7jd1cmvz";
        setupHaskellDepends = [
          base Cabal cuda directory filepath template-haskell
        ];
@@ -65166,23 +66349,23 @@ self: {
      }) {};
 
   "curl-runnings" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, case-insensitive, clock
-     , cmdargs, connection, directory, hspec, hspec-expectations
-     , http-client-tls, http-conduit, http-types, megaparsec
-     , pretty-simple, raw-strings-qq, regex-posix, tar, text, time
-     , unordered-containers, vector, yaml, zlib
+    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
+     , case-insensitive, clock, cmdargs, connection, directory, hspec
+     , hspec-expectations, http-client-tls, http-conduit, http-types
+     , megaparsec, pretty-simple, raw-strings-qq, regex-posix, tar, text
+     , time, unordered-containers, vector, yaml, zlib
      }:
      mkDerivation {
        pname = "curl-runnings";
-       version = "0.12.0";
-       sha256 = "091csiklwxhc8qjzqh3jmq7qvrr5z5z1mgndbli03wd33jhq5rw8";
+       version = "0.14.0";
+       sha256 = "1f4b44b8sw4fpbkcl3naj5y3d3j8d6sb9lxf7k0vy49aghmw50p6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base bytestring case-insensitive clock connection directory
-         hspec hspec-expectations http-client-tls http-conduit http-types
-         megaparsec pretty-simple regex-posix text time unordered-containers
-         vector yaml
+         aeson base base64-bytestring bytestring case-insensitive clock
+         connection directory hspec hspec-expectations http-client-tls
+         http-conduit http-types megaparsec pretty-simple regex-posix text
+         time unordered-containers vector yaml
        ];
        executableHaskellDepends = [
          aeson base bytestring cmdargs directory http-conduit tar text zlib
@@ -65495,8 +66678,8 @@ self: {
      }:
      mkDerivation {
        pname = "curve25519";
-       version = "0.2.3";
-       sha256 = "0kwn7g479vpmir0vklvj7pw9xav3l463i1apzrqd45paiz88px6k";
+       version = "0.2.5";
+       sha256 = "1j2fc1wv6xx95sicx2m44dm41gdfspb74qmh58592pp5fcv54vbb";
        libraryHaskellDepends = [ base bytestring crypto-api ];
        testHaskellDepends = [
          base bytestring crypto-api DRBG HUnit QuickCheck tagged
@@ -65532,8 +66715,8 @@ self: {
      }:
      mkDerivation {
        pname = "cusolver";
-       version = "0.2.0.0";
-       sha256 = "0v30wm32jcz7jy940y26zcqvjy1058bqf0v44xf73v53dlwkd07a";
+       version = "0.3.0.0";
+       sha256 = "0xskvpjqlckpfrfvnb2afj29p2gnzafq2v98pbvwsprmn60np9mq";
        setupHaskellDepends = [ base Cabal cuda directory filepath ];
        libraryHaskellDepends = [
          base cublas cuda cusparse half storable-complex template-haskell
@@ -65550,8 +66733,8 @@ self: {
      }:
      mkDerivation {
        pname = "cusparse";
-       version = "0.2.0.0";
-       sha256 = "1y6qnxfdcw3ik3mjp4410846pq1l628d02bdasll1xd4r4r87vh6";
+       version = "0.3.0.0";
+       sha256 = "0x2ab7sd7j1mmjns8332mm2nzikprq3w6fbrnbcfk5lz2x0bgir2";
        setupHaskellDepends = [ base Cabal cuda directory filepath ];
        libraryHaskellDepends = [ base cuda half storable-complex ];
        libraryToolDepends = [ c2hs ];
@@ -65574,34 +66757,41 @@ self: {
      }) {};
 
   "cut-the-crap" = callPackage
-    ({ mkDerivation, base, exceptions, generic-lens, hspec, hspec-core
-     , lens, optparse-applicative, optparse-generic, regex-tdfa, shelly
-     , system-filepath, temporary, text, unliftio-core
+    ({ mkDerivation, base, c2hs, exceptions, generic-lens, hspec
+     , hspec-core, lens, optparse-applicative, pocketsphinx, QuickCheck
+     , quickcheck-classes, regex-tdfa, shelly, sphinxbase
+     , system-filepath, temporary, text, time, unliftio-core
      }:
      mkDerivation {
        pname = "cut-the-crap";
-       version = "1.0.0";
-       sha256 = "0mq6hzv48ry3n8y0b60qbf3ddkfk2aqny4c1hzn92mqffhg4r0zr";
+       version = "1.4.2";
+       sha256 = "16l8ar38nl2sgsbwjslhxd8z2wyjmdgmi51sic3vvyv7n6b9mr51";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base exceptions generic-lens lens optparse-applicative
-         optparse-generic regex-tdfa shelly system-filepath temporary text
-         unliftio-core
+         base exceptions generic-lens lens optparse-applicative regex-tdfa
+         shelly system-filepath temporary text time unliftio-core
        ];
+       libraryPkgconfigDepends = [ pocketsphinx sphinxbase ];
+       libraryToolDepends = [ c2hs ];
        executableHaskellDepends = [
-         base exceptions generic-lens lens optparse-applicative
-         optparse-generic regex-tdfa shelly system-filepath temporary text
-         unliftio-core
+         base exceptions generic-lens lens optparse-applicative regex-tdfa
+         shelly system-filepath temporary text time unliftio-core
        ];
+       executablePkgconfigDepends = [ pocketsphinx sphinxbase ];
+       executableToolDepends = [ c2hs ];
        testHaskellDepends = [
          base exceptions generic-lens hspec hspec-core lens
-         optparse-applicative optparse-generic regex-tdfa shelly
-         system-filepath temporary text unliftio-core
+         optparse-applicative QuickCheck quickcheck-classes regex-tdfa
+         shelly system-filepath temporary text time unliftio-core
        ];
+       testPkgconfigDepends = [ pocketsphinx sphinxbase ];
+       testToolDepends = [ c2hs ];
        description = "Cuts out uninteresting parts of videos by detecting silences";
        license = stdenv.lib.licenses.mit;
-     }) {};
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) pocketsphinx; inherit (pkgs) sphinxbase;};
 
   "cutter" = callPackage
     ({ mkDerivation, base, bytestring, explicit-exception, spreadsheet
@@ -65659,24 +66849,6 @@ self: {
      }:
      mkDerivation {
        pname = "cyclotomic";
-       version = "1.0.1";
-       sha256 = "0d2jnpgal88j05jk62p3xwfkarigclgw2hy77ph0lii360wijljh";
-       libraryHaskellDepends = [ arithmoi base containers ];
-       testHaskellDepends = [
-         base HUnit QuickCheck test-framework test-framework-hunit
-         test-framework-quickcheck2 test-framework-smallcheck
-       ];
-       description = "A subfield of the complex numbers for exact calculation";
-       license = stdenv.lib.licenses.gpl3;
-     }) {};
-
-  "cyclotomic_1_1_1" = callPackage
-    ({ mkDerivation, arithmoi, base, containers, HUnit, QuickCheck
-     , test-framework, test-framework-hunit, test-framework-quickcheck2
-     , test-framework-smallcheck
-     }:
-     mkDerivation {
-       pname = "cyclotomic";
        version = "1.1.1";
        sha256 = "1m3977xi7s78h5bcq8gksamqimdm1h0hnjzalg3d63rvanjv4v84";
        libraryHaskellDepends = [ arithmoi base containers ];
@@ -65686,7 +66858,6 @@ self: {
        ];
        description = "A subfield of the complex numbers for exact calculation";
        license = stdenv.lib.licenses.gpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "cypher" = callPackage
@@ -65714,8 +66885,8 @@ self: {
     ({ mkDerivation, base, template-haskell, transformers }:
      mkDerivation {
        pname = "czipwith";
-       version = "1.0.1.2";
-       sha256 = "17zf2blgjp47dahjcprkpymg9kb1ll6386pkr109gjr78f261gs1";
+       version = "1.0.1.3";
+       sha256 = "11v61zmjfdvfi6r0vy9fsj7j4g8hpq42pjhkzqjcksvlwm08bi1d";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base transformers ];
        description = "CZipWith class and deriving via TH";
@@ -65958,38 +67129,43 @@ self: {
 
   "darcs" = callPackage
     ({ mkDerivation, array, async, attoparsec, base, base16-bytestring
-     , binary, bytestring, Cabal, cmdargs, containers, cryptohash, curl
-     , data-ordlist, directory, fgl, filepath, FindBin, graphviz
-     , hashable, haskeline, html, HTTP, HUnit, mmap, mtl, network
-     , network-uri, old-time, parsec, process, QuickCheck, random
-     , regex-applicative, regex-compat-tdfa, sandi, shelly, split, stm
-     , tar, terminfo, test-framework, test-framework-hunit
-     , test-framework-quickcheck2, text, time, transformers, unix
-     , unix-compat, utf8-string, vector, zip-archive, zlib
+     , binary, bytestring, Cabal, cmdargs, conduit, constraints
+     , containers, cryptonite, data-ordlist, directory, exceptions, fgl
+     , filepath, FindBin, hashable, haskeline, html, http-conduit
+     , http-types, HUnit, leancheck, memory, mmap, monad-control, mtl
+     , network, network-uri, old-time, parsec, process, QuickCheck
+     , regex-applicative, regex-compat-tdfa, sandi, split, stm
+     , system-fileio, system-filepath, tar, temporary, terminfo
+     , test-framework, test-framework-hunit, test-framework-leancheck
+     , test-framework-quickcheck2, text, time, transformers
+     , transformers-base, unix, unix-compat, utf8-string, vector
+     , zip-archive, zlib
      }:
      mkDerivation {
        pname = "darcs";
-       version = "2.14.4";
-       sha256 = "0qk70a2i5p69lai0vzrckjql3rz8sfiq5vnpafmscmq8018i2wp7";
+       version = "2.16.2";
+       sha256 = "1nsmaai4l5zas4v1vk92nvh721dykcxrpd4c2v9bh3wi3n2m45qn";
        configureFlags = [ "-fforce-char8-encoding" "-flibrary" ];
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal directory filepath process ];
        libraryHaskellDepends = [
          array async attoparsec base base16-bytestring binary bytestring
-         containers cryptohash data-ordlist directory fgl filepath graphviz
-         hashable haskeline html HTTP mmap mtl network network-uri old-time
-         parsec process random regex-applicative regex-compat-tdfa sandi stm
-         tar terminfo text time transformers unix unix-compat utf8-string
-         vector zip-archive zlib
+         conduit constraints containers cryptonite data-ordlist directory
+         fgl filepath hashable haskeline html http-conduit http-types memory
+         mmap mtl network network-uri old-time parsec process
+         regex-applicative regex-compat-tdfa sandi stm tar temporary
+         terminfo text time transformers unix unix-compat utf8-string vector
+         zip-archive zlib
        ];
-       librarySystemDepends = [ curl ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
-         array base bytestring cmdargs containers directory filepath FindBin
-         HUnit mtl QuickCheck shelly split test-framework
-         test-framework-hunit test-framework-quickcheck2 text transformers
-         zip-archive
+         array async base bytestring cmdargs constraints containers
+         directory exceptions filepath FindBin HUnit leancheck monad-control
+         mtl process QuickCheck split system-fileio system-filepath
+         test-framework test-framework-hunit test-framework-leancheck
+         test-framework-quickcheck2 text time transformers transformers-base
+         unix-compat vector zip-archive
        ];
        doCheck = false;
        postInstall = ''
@@ -65997,8 +67173,8 @@ self: {
          mv contrib/darcs_completion $out/etc/bash_completion.d/darcs
        '';
        description = "a distributed, interactive, smart revision control system";
-       license = stdenv.lib.licenses.gpl2;
-     }) {inherit (pkgs) curl;};
+       license = stdenv.lib.licenses.gpl2Plus;
+     }) {};
 
   "darcs-benchmark" = callPackage
     ({ mkDerivation, base, bytestring, cmdargs, containers, datetime
@@ -67174,15 +68350,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "data-fix_0_3_0" = callPackage
+    ({ mkDerivation, base, deepseq, hashable }:
+     mkDerivation {
+       pname = "data-fix";
+       version = "0.3.0";
+       sha256 = "184rz8ypgrb3sxy9wiaq321d82p689w7dcwkc0qkjlabd7nv6ncy";
+       libraryHaskellDepends = [ base deepseq hashable ];
+       description = "Fixpoint data types";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "data-fix-cse" = callPackage
     ({ mkDerivation, base, containers, data-fix, transformers }:
      mkDerivation {
        pname = "data-fix-cse";
-       version = "0.0.2";
-       sha256 = "1xn6qnir5dss23y8d71dsy78sdk7hczwprxir8v6la15c43rf9p2";
+       version = "0.0.3";
+       sha256 = "1v8ffi5c0sz8q2fla6fab4css3pkjmi0knx5d04mvffhw66bjhbz";
        libraryHaskellDepends = [ base containers data-fix transformers ];
-       description = "Common subexpression elimination for the fixploint types.";
+       description = "Common subexpression elimination for the fixploint types";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "data-flags" = callPackage
@@ -67907,6 +69097,7 @@ self: {
        ];
        description = "ARM SVD and CubeMX XML parser and pretty printer for STM32 family";
        license = stdenv.lib.licenses.bsd3;
+       maintainers = with stdenv.lib.maintainers; [ sorki ];
      }) {};
 
   "data-store" = callPackage
@@ -68106,6 +69297,20 @@ self: {
        broken = true;
      }) {};
 
+  "data-validation" = callPackage
+    ({ mkDerivation, base, containers, hspec, template-haskell }:
+     mkDerivation {
+       pname = "data-validation";
+       version = "0.1.0.2";
+       sha256 = "15mc3m48jnn5fjr3bm02j9raxclqwd8qnb0bx0w2jz5y3asnfx5f";
+       libraryHaskellDepends = [ base containers template-haskell ];
+       testHaskellDepends = [ base containers hspec template-haskell ];
+       description = "A library for creating type safe validations";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "data-variant" = callPackage
     ({ mkDerivation, base, safe }:
      mkDerivation {
@@ -68321,8 +69526,8 @@ self: {
      }:
      mkDerivation {
        pname = "dataflower";
-       version = "0.2.0.0";
-       sha256 = "19b265w70dcaw5xw9y0bhvfng0yyywm8my3c0rp0jqdwacp7c126";
+       version = "0.3.0.0";
+       sha256 = "0nxir4syhbw5spqks3pxj71w781vn8mqxdiig9dqnrv5ks02bqp6";
        libraryHaskellDepends = [
          base hashable mtl pretty-show stm time transformers vector
        ];
@@ -68576,8 +69781,8 @@ self: {
      }:
      mkDerivation {
        pname = "dawg-ord";
-       version = "0.5.1.0";
-       sha256 = "1s92i5z63maq74ni49l282pqbz0r0c22miyjjilipr0wnz7rl4nr";
+       version = "0.5.1.2";
+       sha256 = "1wsxlzljxydcvilkdf8xj21sac0y2ph18vmbznd7psvbwk2q45kf";
        libraryHaskellDepends = [
          base containers mtl transformers vector
        ];
@@ -68785,8 +69990,8 @@ self: {
      }:
      mkDerivation {
        pname = "dbus";
-       version = "1.2.15.1";
-       sha256 = "1fq1ds5lkgysi5cpbwh97233vil6w9djxn6dcp5sjj7r5gb76vj7";
+       version = "1.2.16";
+       sha256 = "103zxllh7nwbbckjblidr45xa13lrpqh9bwhvirrx24g7hsj1y9c";
        libraryHaskellDepends = [
          base bytestring cereal conduit containers deepseq exceptions
          filepath lens network parsec random split template-haskell text
@@ -68990,7 +70195,7 @@ self: {
        libraryHaskellDepends = [
          base containers deepseq parsec transformers wl-pprint
        ];
-       description = "Disciplined Disciple Compiler common utilities.";
+       description = "Disciplined Disciple Compiler common utilities";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -69479,8 +70684,8 @@ self: {
      }:
      mkDerivation {
        pname = "debug-me";
-       version = "1.20190926";
-       sha256 = "0qy2ianwal4v4s0m13yjszk032dp3y6k4p61whwmlp49xmqvwjyb";
+       version = "1.20200820";
+       sha256 = "1pxcycgdd0gmiqabpbjkish31yb2n7bqgwd1fm1na6w6xmjlh58a";
        isLibrary = false;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal filepath ];
@@ -69647,27 +70852,6 @@ self: {
      }:
      mkDerivation {
        pname = "declarative";
-       version = "0.5.2";
-       sha256 = "014spawd3wgasrlfaz0zcz0qf1cnhr9nxm71lzcxjgi8n1gcza0y";
-       libraryHaskellDepends = [
-         base hasty-hamiltonian kan-extensions lens mcmc-types
-         mighty-metropolis mwc-probability pipes primitive speedy-slice
-         transformers
-       ];
-       testHaskellDepends = [ base mwc-probability ];
-       description = "DIY Markov Chains";
-       license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "declarative_0_5_3" = callPackage
-    ({ mkDerivation, base, hasty-hamiltonian, kan-extensions, lens
-     , mcmc-types, mighty-metropolis, mwc-probability, pipes, primitive
-     , speedy-slice, transformers
-     }:
-     mkDerivation {
-       pname = "declarative";
        version = "0.5.3";
        sha256 = "021rhdhj2sji316mkm1fw679w7xb9n51x9pslmj21427q127ycw3";
        libraryHaskellDepends = [
@@ -70081,8 +71265,8 @@ self: {
      }:
      mkDerivation {
        pname = "dejafu";
-       version = "2.1.0.3";
-       sha256 = "0b1akgq9pqrgwyj3smna7d4j6wvi7rm98q2d6ag01p06lcflypkg";
+       version = "2.3.0.1";
+       sha256 = "0klw2knnhqanmfjz2hjrj5sag6bqkh1g6vhgbvyk3d532m748wx1";
        libraryHaskellDepends = [
          base concurrency containers contravariant deepseq exceptions
          leancheck profunctors random transformers
@@ -70091,14 +71275,14 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "dejafu_2_3_0_0" = callPackage
+  "dejafu_2_4_0_0" = callPackage
     ({ mkDerivation, base, concurrency, containers, contravariant
      , deepseq, exceptions, leancheck, profunctors, random, transformers
      }:
      mkDerivation {
        pname = "dejafu";
-       version = "2.3.0.0";
-       sha256 = "09lqniw3gacyykmk23vl4icyhiixdyjps50cwvcmlwd8k4941gwa";
+       version = "2.4.0.0";
+       sha256 = "1kj4ygdbbkr54bqknxk3jqif74jxgpid7cz9vzcm2m15h8q2z9k2";
        libraryHaskellDepends = [
          base concurrency containers contravariant deepseq exceptions
          leancheck profunctors random transformers
@@ -70338,6 +71522,8 @@ self: {
        ];
        description = "Mutable and immutable dense multidimensional arrays";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "dense-int-set" = callPackage
@@ -70419,6 +71605,20 @@ self: {
        broken = true;
      }) {};
 
+  "dependent-map_0_2_4_0" = callPackage
+    ({ mkDerivation, base, containers, dependent-sum }:
+     mkDerivation {
+       pname = "dependent-map";
+       version = "0.2.4.0";
+       sha256 = "0il2naf6gdkvkhscvqd8kg9v911vdhqp9h10z5546mninnyrdcsx";
+       revision = "1";
+       editedCabalFile = "0a5f35d1sgfq1cl1r5bgb5pwfjniiycxiif4ycxglaizp8g5rlr1";
+       libraryHaskellDepends = [ base containers dependent-sum ];
+       description = "Dependent finite maps (partial dependent products)";
+       license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "dependent-map" = callPackage
     ({ mkDerivation, base, constraints-extras, containers
      , dependent-sum
@@ -70466,6 +71666,18 @@ self: {
        broken = true;
      }) {};
 
+  "dependent-sum_0_4" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "dependent-sum";
+       version = "0.4";
+       sha256 = "07hs9s78wiybwjwkal2yq65hdavq0gg1h2ld7wbph61s2nsfrpm8";
+       libraryHaskellDepends = [ base ];
+       description = "Dependent sum type";
+       license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "dependent-sum" = callPackage
     ({ mkDerivation, base, constraints-extras, some }:
      mkDerivation {
@@ -70491,8 +71703,6 @@ self: {
        ];
        description = "JSON instances for DSum, DMap, and Some";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "dependent-sum-template" = callPackage
@@ -70748,6 +71958,19 @@ self: {
        broken = true;
      }) {};
 
+  "derive-lifted-instances" = callPackage
+    ({ mkDerivation, base, bifunctors, reflection, template-haskell }:
+     mkDerivation {
+       pname = "derive-lifted-instances";
+       version = "0.2";
+       sha256 = "1bms5m5hfrq4qg1gxxc045qms9jqrqgbd0695cxqnx9vyr86fpxf";
+       libraryHaskellDepends = [
+         base bifunctors reflection template-haskell
+       ];
+       description = "Derive class instances though various kinds of lifting";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "derive-monoid" = callPackage
     ({ mkDerivation, base, semigroups, template-haskell }:
      mkDerivation {
@@ -70786,6 +72009,8 @@ self: {
        pname = "derive-storable-plugin";
        version = "0.2.3.0";
        sha256 = "0yr9s33drw5l4ckqipqpmgrsrnm18yr4742mmyjqm3x7wai7d99q";
+       revision = "1";
+       editedCabalFile = "0wrynvd305bk3mvm9rbs9vrfb65yhiy2s83r8hs690r1vsw4mdkj";
        libraryHaskellDepends = [ base derive-storable ghc ghci ];
        testHaskellDepends = [
          base derive-storable ghc ghci hspec QuickCheck
@@ -70798,22 +72023,16 @@ self: {
      }) {};
 
   "derive-topdown" = callPackage
-    ({ mkDerivation, base, binary, derive, GenericPretty, haskell-src
-     , mtl, primitive, QuickCheck, simple-sql-parser, syb
-     , template-haskell, th-expand-syns, transformers
+    ({ mkDerivation, base, mtl, primitive, syb, template-haskell
+     , th-expand-syns, transformers
      }:
      mkDerivation {
        pname = "derive-topdown";
-       version = "0.0.2.0";
-       sha256 = "0vs21aq0mcl1p9fwmwvqf61x5ndgfl4i32g9x40x1safj5c594s6";
+       version = "0.0.2.1";
+       sha256 = "05vbbndyx5xw01vk3bs3vk9bmnqq7nlj817jk8ggv23x5yg87daf";
        libraryHaskellDepends = [
          base mtl primitive syb template-haskell th-expand-syns transformers
        ];
-       testHaskellDepends = [
-         base binary derive GenericPretty haskell-src mtl primitive
-         QuickCheck simple-sql-parser syb template-haskell th-expand-syns
-         transformers
-       ];
        description = "Help Haskellers derive class instances for composited data types";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -70865,19 +72084,19 @@ self: {
     ({ mkDerivation, base, base-compat, base-orphans, containers
      , ghc-boot-th, ghc-prim, hspec, hspec-discover, QuickCheck, tagged
      , template-haskell, th-abstraction, transformers
-     , transformers-compat
+     , transformers-compat, void
      }:
      mkDerivation {
        pname = "deriving-compat";
-       version = "0.5.8";
-       sha256 = "1dznwypw0w935z30zi9pf9k4mr5yfl6jfp43nv9vx3f6zy5gip9r";
+       version = "0.5.9";
+       sha256 = "1i0sc77h2902b0xc722v87iwdnwayn1y5mpiy700nclmfrrw2jy4";
        libraryHaskellDepends = [
          base containers ghc-boot-th ghc-prim template-haskell
          th-abstraction transformers transformers-compat
        ];
        testHaskellDepends = [
          base base-compat base-orphans hspec QuickCheck tagged
-         template-haskell transformers transformers-compat
+         template-haskell transformers transformers-compat void
        ];
        testToolDepends = [ hspec-discover ];
        description = "Backports of GHC deriving extensions";
@@ -70909,21 +72128,6 @@ self: {
      }) {};
 
   "derulo" = callPackage
-    ({ mkDerivation, base, doctest }:
-     mkDerivation {
-       pname = "derulo";
-       version = "1.0.8";
-       sha256 = "1qmmhnvzn3dip5y757wmwjj51ah5i5db82ni85xl2ckk1k765v9c";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base ];
-       executableHaskellDepends = [ base ];
-       testHaskellDepends = [ base doctest ];
-       description = "Parse and render JSON simply";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "derulo_1_0_9" = callPackage
     ({ mkDerivation, base, HUnit }:
      mkDerivation {
        pname = "derulo";
@@ -70936,7 +72140,6 @@ self: {
        testHaskellDepends = [ base HUnit ];
        description = "Parse and render JSON simply";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "describe" = callPackage
@@ -71178,8 +72381,8 @@ self: {
      }:
      mkDerivation {
        pname = "devtools";
-       version = "0.0.1";
-       sha256 = "0jlzwvh49x1psxnn6gz75g2pipcmzljgg71b2j1807ia82wn01j3";
+       version = "0.0.3";
+       sha256 = "09lwvi4mbwkhazzmngpblxh2bvvxz1j4ndzsh3bp3nwwwa0xiihm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -71196,6 +72399,8 @@ self: {
        ];
        description = "Haskell development tool agregate";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "dewdrop" = callPackage
@@ -71394,6 +72599,7 @@ self: {
        benchmarkHaskellDepends = [
          base bytestring containers directory gauge serialise text
        ];
+       doCheck = false;
        description = "A configuration language guaranteed to terminate";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -71404,36 +72610,36 @@ self: {
      , base, bytestring, case-insensitive, cborg, cborg-json, containers
      , contravariant, cryptonite, data-fix, deepseq, Diff, directory
      , doctest, dotgen, either, exceptions, filepath, foldl, gauge
-     , generic-random, hashable, haskeline, http-client, http-client-tls
-     , http-types, lens-family-core, megaparsec, memory, mockery, mtl
-     , network-uri, optparse-applicative, parser-combinators, parsers
-     , pretty-simple, prettyprinter, prettyprinter-ansi-terminal
-     , profunctors, QuickCheck, quickcheck-instances, repline
-     , scientific, semigroups, serialise, special-values, spoon, tasty
-     , tasty-expected-failure, tasty-hunit, tasty-quickcheck
-     , template-haskell, text, th-lift-instances, transformers
-     , transformers-compat, turtle, unordered-containers, uri-encode
-     , vector
+     , generic-random, half, hashable, haskeline, http-client
+     , http-client-tls, http-types, lens-family-core, megaparsec, memory
+     , mockery, mtl, network-uri, optparse-applicative
+     , parser-combinators, parsers, pretty-simple, prettyprinter
+     , prettyprinter-ansi-terminal, profunctors, QuickCheck
+     , quickcheck-instances, repline, scientific, semigroups, serialise
+     , special-values, spoon, tasty, tasty-expected-failure, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, text-manipulate
+     , th-lift-instances, transformers, transformers-compat, turtle
+     , unordered-containers, uri-encode, vector
      }:
      mkDerivation {
        pname = "dhall";
-       version = "1.30.0";
-       sha256 = "10aagimwa5ycrq15240ff2g7r0n995waa33vaz0h51nqvncrbgpj";
-       revision = "1";
-       editedCabalFile = "1pazhb3h1rabb80wxh29k5yfp915zqp1gmhcv4mx7ibzv9zw7miq";
+       version = "1.32.0";
+       sha256 = "1imj0bh5365pdizvjbw2wqz0g9hakigf1zm4fr6379qdchxpp90p";
+       revision = "4";
+       editedCabalFile = "17mq04cla4367gb14g8jlzywgg5m3dbz02xxqm6ynyf9k8dnnr2x";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-pretty ansi-terminal atomic-write base bytestring
          case-insensitive cborg cborg-json containers contravariant
          cryptonite data-fix deepseq Diff directory dotgen either exceptions
-         filepath hashable haskeline http-client http-client-tls http-types
-         lens-family-core megaparsec memory mtl network-uri
+         filepath half hashable haskeline http-client http-client-tls
+         http-types lens-family-core megaparsec memory mtl network-uri
          optparse-applicative parser-combinators parsers pretty-simple
          prettyprinter prettyprinter-ansi-terminal profunctors repline
-         scientific serialise template-haskell text th-lift-instances
-         transformers transformers-compat unordered-containers uri-encode
-         vector
+         scientific serialise template-haskell text text-manipulate
+         th-lift-instances transformers transformers-compat
+         unordered-containers uri-encode vector
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
@@ -71441,49 +72647,53 @@ self: {
          either filepath foldl generic-random lens-family-core megaparsec
          mockery prettyprinter QuickCheck quickcheck-instances scientific
          semigroups serialise special-values spoon tasty
-         tasty-expected-failure tasty-hunit tasty-quickcheck text
-         transformers turtle unordered-containers vector
+         tasty-expected-failure tasty-hunit tasty-quickcheck
+         template-haskell text transformers turtle unordered-containers
+         vector
        ];
        benchmarkHaskellDepends = [
          base bytestring containers directory gauge serialise text
        ];
+       doCheck = false;
        description = "A configuration language guaranteed to terminate";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dhall_1_32_0" = callPackage
+  "dhall_1_35_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, atomic-write
      , base, bytestring, case-insensitive, cborg, cborg-json, containers
      , contravariant, cryptonite, data-fix, deepseq, Diff, directory
      , doctest, dotgen, either, exceptions, filepath, foldl, gauge
      , generic-random, half, hashable, haskeline, http-client
      , http-client-tls, http-types, lens-family-core, megaparsec, memory
-     , mockery, mtl, network-uri, optparse-applicative
+     , mmorph, mockery, mtl, network-uri, optparse-applicative
      , parser-combinators, parsers, pretty-simple, prettyprinter
      , prettyprinter-ansi-terminal, profunctors, QuickCheck
-     , quickcheck-instances, repline, scientific, semigroups, serialise
+     , quickcheck-instances, repline, scientific, serialise
      , special-values, spoon, tasty, tasty-expected-failure, tasty-hunit
-     , tasty-quickcheck, template-haskell, text, text-manipulate
-     , th-lift-instances, transformers, transformers-compat, turtle
-     , unordered-containers, uri-encode, vector
+     , tasty-quickcheck, tasty-silver, template-haskell, text
+     , text-manipulate, th-lift-instances, transformers
+     , transformers-compat, turtle, unordered-containers, uri-encode
+     , vector
      }:
      mkDerivation {
        pname = "dhall";
-       version = "1.32.0";
-       sha256 = "1imj0bh5365pdizvjbw2wqz0g9hakigf1zm4fr6379qdchxpp90p";
-       revision = "3";
-       editedCabalFile = "0gy7fqkj775f8ig92wd7bacl48pgjb2gkkdic0rqr57wjrn801nr";
+       version = "1.35.0";
+       sha256 = "19h0afgxqq9da1apx4xx9p4p0f2r6miivc4l1dkhbbvfk2r5wkw3";
+       revision = "1";
+       editedCabalFile = "16hlc738l0w58g5fj6kyr7il24n23a6jbwd6m0xc1sncv74pxh8w";
        isLibrary = true;
        isExecutable = true;
+       enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson aeson-pretty ansi-terminal atomic-write base bytestring
          case-insensitive cborg cborg-json containers contravariant
          cryptonite data-fix deepseq Diff directory dotgen either exceptions
          filepath half hashable haskeline http-client http-client-tls
-         http-types lens-family-core megaparsec memory mtl network-uri
-         optparse-applicative parser-combinators parsers pretty-simple
-         prettyprinter prettyprinter-ansi-terminal profunctors repline
-         scientific serialise template-haskell text text-manipulate
+         http-types lens-family-core megaparsec memory mmorph mtl
+         network-uri optparse-applicative parser-combinators parsers
+         pretty-simple prettyprinter prettyprinter-ansi-terminal profunctors
+         repline scientific serialise template-haskell text text-manipulate
          th-lift-instances transformers transformers-compat
          unordered-containers uri-encode vector
        ];
@@ -71492,14 +72702,14 @@ self: {
          base bytestring cborg containers data-fix deepseq directory doctest
          either filepath foldl generic-random lens-family-core megaparsec
          mockery prettyprinter QuickCheck quickcheck-instances scientific
-         semigroups serialise special-values spoon tasty
-         tasty-expected-failure tasty-hunit tasty-quickcheck
-         template-haskell text transformers turtle unordered-containers
-         vector
+         serialise special-values spoon tasty tasty-expected-failure
+         tasty-hunit tasty-quickcheck tasty-silver template-haskell text
+         transformers turtle unordered-containers vector
        ];
        benchmarkHaskellDepends = [
-         base bytestring containers directory gauge serialise text
+         base bytestring containers directory gauge text
        ];
+       doCheck = false;
        description = "A configuration language guaranteed to terminate";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -71511,8 +72721,10 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-bash";
-       version = "1.0.28";
-       sha256 = "0bvq4x9swnbc37vw08dw2vaj2phm9kyb94jv3vbfmwl1s6yw83zj";
+       version = "1.0.30";
+       sha256 = "1r2xr8c8kzmrxrb8m6f9dzjn81sqxzx97w0406kwrx9vzfj7ci1q";
+       revision = "1";
+       editedCabalFile = "0x7lkh86sr08qm53ycmka1vpxn7y60l01dm6hh70rhzn435ilvj1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -71526,14 +72738,16 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dhall-bash_1_0_30" = callPackage
+  "dhall-bash_1_0_33" = callPackage
     ({ mkDerivation, base, bytestring, containers, dhall
      , neat-interpolation, optparse-generic, shell-escape, text
      }:
      mkDerivation {
        pname = "dhall-bash";
-       version = "1.0.30";
-       sha256 = "1r2xr8c8kzmrxrb8m6f9dzjn81sqxzx97w0406kwrx9vzfj7ci1q";
+       version = "1.0.33";
+       sha256 = "0b920cscim2mqcav0yy4s00gcgjqfybvbmfvnnbvarxswknw8z1v";
+       revision = "1";
+       editedCabalFile = "1r01himc5n19q9675i6i27yrfrx9l362ycsnvk48mcbrbmv1z5lf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -71567,6 +72781,37 @@ self: {
        broken = true;
      }) {};
 
+  "dhall-docs" = callPackage
+    ({ mkDerivation, base, bytestring, containers, cryptonite, dhall
+     , directory, doctest, file-embed, filepath, foldl, HaXml
+     , lens-family-core, lucid, megaparsec, memory, mmark, mtl
+     , optparse-applicative, path, path-io, pretty, prettyprinter, tasty
+     , tasty-hunit, tasty-silver, text, transformers, turtle
+     }:
+     mkDerivation {
+       pname = "dhall-docs";
+       version = "1.0.1";
+       sha256 = "0632l4h72zrddknhha8lz53ynzbdrhb11mvj09qfmr4b1rd01amz";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base bytestring containers cryptonite dhall directory file-embed
+         filepath lens-family-core lucid megaparsec memory mmark mtl
+         optparse-applicative path path-io prettyprinter text transformers
+       ];
+       executableHaskellDepends = [ base dhall ];
+       testHaskellDepends = [
+         base bytestring containers dhall directory doctest filepath foldl
+         HaXml path path-io pretty tasty tasty-hunit tasty-silver text
+         turtle
+       ];
+       description = "Generate HTML docs from a dhall package";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "dhall-fly" = callPackage
     ({ mkDerivation, aeson, aeson-casing, aeson-yaml, base, bytestring
      , dhall, dhall-json, hspec, hspec-discover, optparse-applicative
@@ -71610,10 +72855,10 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-json";
-       version = "1.6.2";
-       sha256 = "044hq25h872rjlcp24fzf0nslxg4a6hmq8ylcljzk003lmq0c2xz";
-       revision = "1";
-       editedCabalFile = "0zljipb4nq0xmdfhqq7vr9c3966mpkd812g4z6xz7ngzrqn41s40";
+       version = "1.6.4";
+       sha256 = "0vr6a02frfk5bh0qj0m4qlc5pp08m29gxp8ixqihrqakkna6409z";
+       revision = "3";
+       editedCabalFile = "09yifah6mfy8k1qi5d2fibw62hjnxfcr7fx3wvyf4n16nq1mhshx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -71632,32 +72877,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "dhall-json_1_6_4" = callPackage
+  "dhall-json_1_7_2" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, aeson-yaml, ansi-terminal
      , base, bytestring, containers, dhall, exceptions, filepath
-     , optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
-     , scientific, tasty, tasty-hunit, text, unordered-containers
-     , vector
+     , lens-family-core, optparse-applicative, prettyprinter
+     , prettyprinter-ansi-terminal, scientific, tasty, tasty-hunit
+     , tasty-silver, text, unordered-containers, vector
      }:
      mkDerivation {
        pname = "dhall-json";
-       version = "1.6.4";
-       sha256 = "0vr6a02frfk5bh0qj0m4qlc5pp08m29gxp8ixqihrqakkna6409z";
-       revision = "3";
-       editedCabalFile = "09yifah6mfy8k1qi5d2fibw62hjnxfcr7fx3wvyf4n16nq1mhshx";
+       version = "1.7.2";
+       sha256 = "189mpnh2fnm1gwc1lvqa3wy9wk2wh8jj3216dvidik545008yvcj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-pretty aeson-yaml base bytestring containers dhall
-         exceptions filepath optparse-applicative prettyprinter scientific
-         text unordered-containers vector
+         exceptions filepath lens-family-core optparse-applicative
+         prettyprinter scientific text unordered-containers vector
        ];
        executableHaskellDepends = [
          aeson aeson-pretty ansi-terminal base bytestring dhall exceptions
          optparse-applicative prettyprinter prettyprinter-ansi-terminal text
        ];
        testHaskellDepends = [
-         aeson base bytestring dhall tasty tasty-hunit text
+         aeson base bytestring dhall tasty tasty-hunit tasty-silver text
        ];
        description = "Convert between Dhall and JSON or YAML";
        license = stdenv.lib.licenses.bsd3;
@@ -71693,10 +72936,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-lsp-server";
-       version = "1.0.7";
-       sha256 = "08nyai9y7s8facdjyfxc1z8dp8qd150y5554vxpvfr98xxj5kf41";
-       revision = "2";
-       editedCabalFile = "19agialwna7mmhljg5w8mmgn9wp59100cpmwa30jy62yfjkpr7x4";
+       version = "1.0.8";
+       sha256 = "1ig90w8iwyq5qwx5rd9zrd0mvrfksn6x1qh0hqxqvjdxrxk9lqnk";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -71714,14 +72955,46 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "dhall-lsp-server_1_0_10" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
+     , data-default, dhall, dhall-json, directory, doctest, filepath
+     , haskell-lsp, haskell-lsp-types, hslogger, lens, lens-family-core
+     , lsp-test, megaparsec, mtl, network-uri, optparse-applicative
+     , prettyprinter, QuickCheck, rope-utf16-splay, tasty, tasty-hspec
+     , text, transformers, unordered-containers, uri-encode
+     }:
+     mkDerivation {
+       pname = "dhall-lsp-server";
+       version = "1.0.10";
+       sha256 = "0z6b3yq8fijxycabwrbqn2z94lb2ak2fmajlxgawyd1723cl2wsb";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty base bytestring containers data-default dhall
+         dhall-json directory filepath haskell-lsp hslogger lens
+         lens-family-core megaparsec mtl network-uri prettyprinter
+         rope-utf16-splay text transformers unordered-containers uri-encode
+       ];
+       executableHaskellDepends = [ base optparse-applicative ];
+       testHaskellDepends = [
+         base directory doctest filepath haskell-lsp-types lsp-test
+         QuickCheck tasty tasty-hspec text
+       ];
+       description = "Language Server Protocol (LSP) server for Dhall";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "dhall-nix" = callPackage
     ({ mkDerivation, base, containers, data-fix, dhall, hnix
      , lens-family-core, neat-interpolation, optparse-generic, text
      }:
      mkDerivation {
        pname = "dhall-nix";
-       version = "1.1.14";
-       sha256 = "1sm7n8539y9944jlc6xk6qx0xssjwz0jjv1505swgi5qcrhdwsij";
+       version = "1.1.17";
+       sha256 = "1c696f0if218pbmir4rmkb6shcgk9acw5g1iwcb2mslshmncbyfd";
+       revision = "1";
+       editedCabalFile = "0vdni3cmx3p6a0p587avja4zg6278fmdfv6jh5h4wfx0b7z1sphg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -71733,8 +73006,27 @@ self: {
        ];
        description = "Dhall to Nix compiler";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
+     }) {};
+
+  "dhall-nixpkgs" = callPackage
+    ({ mkDerivation, aeson, base, data-fix, dhall, foldl, hnix
+     , lens-family-core, megaparsec, mmorph, neat-interpolation
+     , network-uri, optparse-applicative, prettyprinter, text
+     , transformers, turtle
+     }:
+     mkDerivation {
+       pname = "dhall-nixpkgs";
+       version = "1.0.1";
+       sha256 = "1dw3bygs3da7yfcm5h376ppswv3dcny42yqjy7fabyzw72d4586z";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson base data-fix dhall foldl hnix lens-family-core megaparsec
+         mmorph neat-interpolation network-uri optparse-applicative
+         prettyprinter text transformers turtle
+       ];
+       description = "Convert Dhall projects to Nix packages";
+       license = stdenv.lib.licenses.bsd3;
      }) {};
 
   "dhall-text" = callPackage
@@ -71794,8 +73086,10 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-yaml";
-       version = "1.0.2";
-       sha256 = "1fdid65wpxngbfdyisxij8m60x9i6mlq6ll6blf5jq4362ahhf3r";
+       version = "1.1.0";
+       sha256 = "06lwzis9jjfis6rv4r9gd0iq1da5ymcd6jl8x3rbcimg87k9r4bj";
+       revision = "2";
+       editedCabalFile = "1vflfl8j0fjvf5a8mz90d71myii4s2k98186gidxv0dkll8dix9a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -71816,7 +73110,7 @@ self: {
        broken = true;
      }) {};
 
-  "dhall-yaml_1_1_0" = callPackage
+  "dhall-yaml_1_2_2" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring, dhall
      , dhall-json, exceptions, HsYAML, HsYAML-aeson
      , optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
@@ -71824,10 +73118,8 @@ self: {
      }:
      mkDerivation {
        pname = "dhall-yaml";
-       version = "1.1.0";
-       sha256 = "06lwzis9jjfis6rv4r9gd0iq1da5ymcd6jl8x3rbcimg87k9r4bj";
-       revision = "2";
-       editedCabalFile = "1vflfl8j0fjvf5a8mz90d71myii4s2k98186gidxv0dkll8dix9a";
+       version = "1.2.2";
+       sha256 = "1mswyac77p0zpjdfr86x4ddwlnvqz0ibf98hr8q0zm1a9ibds982";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -71988,8 +73280,8 @@ self: {
     ({ mkDerivation, base, df1, di-core, di-df1, di-handle, polysemy }:
      mkDerivation {
        pname = "di-polysemy";
-       version = "0.1.3.1";
-       sha256 = "0gxcpn3x2rwykimzhv473f9sjphja7bzsjxn2r9i9yjl89mjb7y8";
+       version = "0.2.0.0";
+       sha256 = "09n9kjfv6zx016zkglr0ya0gmi18xdgl08iv7pvh41h0mp435aaq";
        libraryHaskellDepends = [
          base df1 di-core di-df1 di-handle polysemy
        ];
@@ -72343,22 +73635,24 @@ self: {
 
   "diagrams-pandoc" = callPackage
     ({ mkDerivation, base, diagrams-builder, diagrams-cairo
-     , diagrams-lib, directory, filepath, linear, optparse-applicative
-     , pandoc-types
+     , diagrams-core, diagrams-lib, diagrams-svg, directory, filepath
+     , hashable, linear, optparse-applicative, pandoc-types, svg-builder
+     , text
      }:
      mkDerivation {
        pname = "diagrams-pandoc";
-       version = "0.3";
-       sha256 = "045592d6xhb7x6kq9r4nvxnayxs25sz3mqph4braym2llhx5khvv";
+       version = "0.3.1";
+       sha256 = "1c23xwagsxb6r7lfsrrh8s959aqiacazqxic4s8cg5q6l9vdn9xm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base diagrams-builder diagrams-cairo diagrams-lib directory
-         filepath linear pandoc-types
+         base diagrams-builder diagrams-cairo diagrams-core diagrams-lib
+         diagrams-svg directory filepath hashable linear pandoc-types
+         svg-builder text
        ];
        executableHaskellDepends = [
          base diagrams-builder diagrams-cairo diagrams-lib directory
-         filepath linear optparse-applicative pandoc-types
+         filepath linear optparse-applicative pandoc-types text
        ];
        description = "A Pandoc filter to express diagrams inline using the Haskell EDSL _Diagrams_";
        license = stdenv.lib.licenses.bsd3;
@@ -72642,6 +73936,8 @@ self: {
        libraryHaskellDepends = [ base parsec random-fu transformers ];
        description = "Simplistic D&D style dice-rolling system";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "dice-entropy-conduit" = callPackage
@@ -72909,8 +74205,8 @@ self: {
      }:
      mkDerivation {
        pname = "differential";
-       version = "0.1.2.0";
-       sha256 = "1mw70yrxi72q55h5xvyds7qp5az7j1qc3xix6ahck17dv5w8fpyl";
+       version = "0.1.2.1";
+       sha256 = "164s372c7pfqnzhvrhxmic0csx3lgwqi06zz5w8zfvkw76md8qh3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -73298,6 +74594,18 @@ self: {
        license = stdenv.lib.licenses.gpl2;
      }) {};
 
+  "dijkstra-simple" = callPackage
+    ({ mkDerivation, base, containers, fingertree, hspec }:
+     mkDerivation {
+       pname = "dijkstra-simple";
+       version = "0.1.0";
+       sha256 = "068jfmkk14fmyd8ars13zi8z716d7ak0mxj3zm5f1zyj31901wz8";
+       libraryHaskellDepends = [ base containers fingertree ];
+       testHaskellDepends = [ base containers fingertree hspec ];
+       description = "A simpler Dijkstra shortest paths implementation";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "dimensional" = callPackage
     ({ mkDerivation, base, criterion, deepseq, doctest, exact-pi, Glob
      , hspec, hspec-discover, ieee754, numtype-dk, QuickCheck
@@ -73448,6 +74756,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "diohsc" = callPackage
+    ({ mkDerivation, asn1-types, base, bytestring, containers
+     , cryptonite, data-default-class, data-hash, directory
+     , drunken-bishop, exceptions, filepath, haskeline, hourglass, iconv
+     , mime, mtl, network, network-uri, parsec, pem, process
+     , regex-compat, safe, temporary, terminal-size, text, tls
+     , transformers, unix, x509, x509-store, x509-validation
+     }:
+     mkDerivation {
+       pname = "diohsc";
+       version = "0.1.2";
+       sha256 = "0ksawn7wspw1f3yaaqyz4sgbl0p9fnidn1jjfwmjs9zrna1cb084";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         asn1-types base bytestring containers cryptonite data-default-class
+         data-hash directory drunken-bishop exceptions filepath haskeline
+         hourglass iconv mime mtl network network-uri parsec pem process
+         regex-compat safe temporary terminal-size text tls transformers
+         unix x509 x509-store x509-validation
+       ];
+       description = "Gemini client";
+       license = stdenv.lib.licenses.gpl3;
+     }) {};
+
   "diophantine" = callPackage
     ({ mkDerivation, array, base, happy }:
      mkDerivation {
@@ -73865,24 +75198,26 @@ self: {
   "discord-haskell" = callPackage
     ({ mkDerivation, aeson, async, base, base64-bytestring, bytestring
      , containers, data-default, emoji, http-client, iso8601-time
-     , JuicyPixels, MonadRandom, req, safe-exceptions, text, time
-     , unordered-containers, vector, websockets, wuss
+     , JuicyPixels, MonadRandom, mtl, req, safe-exceptions, text, time
+     , unliftio, unordered-containers, vector, websockets, wuss
      }:
      mkDerivation {
        pname = "discord-haskell";
-       version = "1.6.0";
-       sha256 = "1abjkssssxj4a7zmb9dq7dgpkrmkjblz5smrj4qd3kpjhai6vs7c";
+       version = "1.8.0";
+       sha256 = "1zh4xf5a8ppfhcnkhai4mi0a7aj7m8qp8hcnyfi6s3nc86k7wj2w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson async base base64-bytestring bytestring containers
          data-default emoji http-client iso8601-time JuicyPixels MonadRandom
-         req safe-exceptions text time unordered-containers vector
-         websockets wuss
+         mtl req safe-exceptions text time unliftio unordered-containers
+         vector websockets wuss
        ];
-       executableHaskellDepends = [ base text ];
+       executableHaskellDepends = [ base text unliftio ];
        description = "Write bots for Discord in Haskell";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "discord-hs" = callPackage
@@ -74902,8 +76237,8 @@ self: {
        pname = "distributive";
        version = "0.6.2";
        sha256 = "1j93zkfffm6s16kgr0j0z87y5ds28rw0r2gyc5ncwcylvrqy4kl2";
-       revision = "1";
-       editedCabalFile = "1m1fv0ar214pqfsa4lbsn2b94npnqpnbg56wp2gim9i896fkdlhs";
+       revision = "2";
+       editedCabalFile = "11y4qanr09880d7sxkhrzrh3cpmqbx001hiqhsr2s75xrnmrpkia";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ base base-orphans tagged transformers ];
        testHaskellDepends = [ base doctest generic-deriving hspec ];
@@ -75081,8 +76416,8 @@ self: {
      }:
      mkDerivation {
        pname = "dl-fedora";
-       version = "0.7.4";
-       sha256 = "092fmla7a0xbnfac6izcj08wsyxbd04n23cjy33c132lqhs5k6w5";
+       version = "0.7.5";
+       sha256 = "1x4gdnb2k1ywvaniif7j2lsbavadaghvcpbdnms3x13s4cg18lyh";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -75108,6 +76443,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "dlist_1_0" = callPackage
+    ({ mkDerivation, base, deepseq, QuickCheck }:
+     mkDerivation {
+       pname = "dlist";
+       version = "1.0";
+       sha256 = "0581a60xw4gw7pmqlmg5w2hr4hm9yjgx4c2z6v63y5xv51rn6g8p";
+       libraryHaskellDepends = [ base deepseq ];
+       testHaskellDepends = [ base QuickCheck ];
+       description = "Difference lists";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "dlist-instances" = callPackage
     ({ mkDerivation, base, dlist, semigroups }:
      mkDerivation {
@@ -75128,8 +76476,8 @@ self: {
        pname = "dlist-nonempty";
        version = "0.1.1";
        sha256 = "0csbspdy43pzvasb5mhs5pz2f49ws78pi253cx7pp84wjx6ads20";
-       revision = "8";
-       editedCabalFile = "134fcrv7lmbhzmgp07vp3fdjbbjrkkracvjf6ma5k2fwcw0wfkff";
+       revision = "9";
+       editedCabalFile = "09qgsqzjnkr5d2lwdz86q3zrikd5hacd62hvvfdqy39kh5wrqn4y";
        libraryHaskellDepends = [
          base base-compat deepseq dlist semigroupoids
        ];
@@ -75392,39 +76740,95 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "dobutokO-effects" = callPackage
+    ({ mkDerivation, base, dobutokO-frequency }:
+     mkDerivation {
+       pname = "dobutokO-effects";
+       version = "0.13.0.0";
+       sha256 = "10xpr7nqhx1djsgcgfr40v7axkl8a0fxx16vrpvr7h525ygyibp5";
+       libraryHaskellDepends = [ base dobutokO-frequency ];
+       description = "A library to deal with SoX effects and possibilities";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "dobutokO-frequency" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "dobutokO-frequency";
+       version = "0.1.1.0";
+       sha256 = "11ngz39dqdcv6xkff9b590cbhd94gx1q71v6cz3birmhvbf8qwrm";
+       libraryHaskellDepends = [ base ];
+       description = "Helps to create experimental music. Working with frequencies and types.";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "dobutokO-poetry" = callPackage
-    ({ mkDerivation, base, mmsyn3, mmsyn6ukr, mmsyn7s, vector }:
+    ({ mkDerivation, base, dobutokO-poetry-general, mmsyn3, mmsyn6ukr
+     , mmsyn7s, uniqueness-periods, vector
+     }:
      mkDerivation {
        pname = "dobutokO-poetry";
-       version = "0.5.0.0";
-       sha256 = "0nahsy5jhvg2q3zvalfr0p0pbjhschsvvly3hi59rp593p2n82hg";
+       version = "0.17.0.0";
+       sha256 = "0swngd363lgyya80jvsyqj5a3mp8lkiirnbvy6kxdrharcqj2ahd";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base mmsyn3 mmsyn6ukr mmsyn7s vector ];
+       libraryHaskellDepends = [
+         base dobutokO-poetry-general mmsyn3 mmsyn6ukr mmsyn7s
+         uniqueness-periods vector
+       ];
        executableHaskellDepends = [
-         base mmsyn3 mmsyn6ukr mmsyn7s vector
+         base dobutokO-poetry-general mmsyn3 mmsyn6ukr mmsyn7s
+         uniqueness-periods vector
        ];
        description = "Helps to order the 7 or less Ukrainian words to obtain somewhat suitable for poetry or music text";
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "dobutokO-poetry-general" = callPackage
+    ({ mkDerivation, base, mmsyn3, mmsyn6ukr, mmsyn7s, vector }:
+     mkDerivation {
+       pname = "dobutokO-poetry-general";
+       version = "0.1.0.0";
+       sha256 = "0gdhihblshxq70av2x8ni7vywdfic750kwq7qsbhagrqr71fvqb1";
+       libraryHaskellDepends = [ base mmsyn3 mmsyn6ukr mmsyn7s vector ];
+       description = "Helps to order the 7 or less words (first of all the Ukrainian ones) to obtain somewhat suitable for poetry or music text";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "dobutokO-poetry-general-languages" = callPackage
+    ({ mkDerivation, base, dobutokO-poetry-general, mmsyn3, mmsyn6ukr
+     , uniqueness-periods-general, vector
+     }:
+     mkDerivation {
+       pname = "dobutokO-poetry-general-languages";
+       version = "0.2.0.0";
+       sha256 = "0gw89nagj1adb70k1li1p1syzgmc6g4lb0yfnjr9caiddq9mi9x5";
+       libraryHaskellDepends = [
+         base dobutokO-poetry-general mmsyn3 mmsyn6ukr
+         uniqueness-periods-general vector
+       ];
+       description = "Helps to order the 7 or less words to obtain somewhat suitable for poetry or music text";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "dobutokO2" = callPackage
     ({ mkDerivation, base, bytestring, directory, mmsyn2, mmsyn3
-     , mmsyn6ukr, mmsyn7l, mmsyn7s, mmsyn7ukr, process, vector
+     , mmsyn6ukr, mmsyn7l, mmsyn7s, mmsyn7ukr, process
+     , uniqueness-periods, vector
      }:
      mkDerivation {
        pname = "dobutokO2";
-       version = "0.41.0.0";
-       sha256 = "1qnlmyxg5qsh63gh7vnjmvshrflfz8ybxcnwdcjr8qwflyfj5kq9";
+       version = "0.43.0.0";
+       sha256 = "0f17ff77m16p951laijqf5w4pfw4pgc6x2ha13472h62dzg8gm2f";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring directory mmsyn2 mmsyn3 mmsyn6ukr mmsyn7l mmsyn7s
-         mmsyn7ukr process vector
+         mmsyn7ukr process uniqueness-periods vector
        ];
        executableHaskellDepends = [
          base bytestring directory mmsyn2 mmsyn3 mmsyn6ukr mmsyn7l mmsyn7s
-         mmsyn7ukr process vector
+         mmsyn7ukr process uniqueness-periods vector
        ];
        description = "Helps to create experimental music from a file (or its part) and a Ukrainian text";
        license = stdenv.lib.licenses.mit;
@@ -75436,8 +76840,8 @@ self: {
      }:
      mkDerivation {
        pname = "dobutokO3";
-       version = "0.1.0.0";
-       sha256 = "09nd465327fz7li2g9gc50lhsqi2a2sbaznmwxld7jsnzm5i9fbm";
+       version = "0.3.0.0";
+       sha256 = "1dbax6j2sdn6cd6crskwr0r90ymxmjk596a9ak8gvlkrwpk1cbdm";
        libraryHaskellDepends = [
          base bytestring directory dobutokO2 mmsyn2 mmsyn3 mmsyn6ukr mmsyn7l
          mmsyn7s mmsyn7ukr process vector
@@ -75452,8 +76856,8 @@ self: {
      }:
      mkDerivation {
        pname = "dobutokO4";
-       version = "0.1.1.0";
-       sha256 = "1q6180z8f0sdrpapvvwzl48g2000ga46m22qj6hbxsiry1hpgmm0";
+       version = "0.8.0.0";
+       sha256 = "073kjv1m3qcrfyk8j8zs5hrc8x0bkyqnw6pa72afhkxq08dzj9y9";
        libraryHaskellDepends = [
          base directory dobutokO2 mmsyn3 mmsyn7l process vector
          vector-doublezip
@@ -75660,24 +77064,6 @@ self: {
      }:
      mkDerivation {
        pname = "doclayout";
-       version = "0.2.0.1";
-       sha256 = "0f6zfb0f4m71irc8wknkdk6xylgncsahhl7ga7rzpr4pxy3bnqak";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [ base mtl safe text ];
-       testHaskellDepends = [
-         base mtl tasty tasty-golden tasty-hunit text
-       ];
-       benchmarkHaskellDepends = [ base criterion mtl text ];
-       description = "A prettyprinting library for laying out text documents";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "doclayout_0_3" = callPackage
-    ({ mkDerivation, base, criterion, mtl, safe, tasty, tasty-golden
-     , tasty-hunit, text
-     }:
-     mkDerivation {
-       pname = "doclayout";
        version = "0.3";
        sha256 = "1wmnwq28jcyd6c80srivsnd5znmyl9sgmwwnlk2crwiiwqadbal7";
        enableSeparateDataOutput = true;
@@ -75688,7 +77074,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion mtl text ];
        description = "A prettyprinting library for laying out text documents";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "docopt" = callPackage
@@ -75746,7 +77131,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "doctemplates" = callPackage
+  "doctemplates_0_8" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, criterion
      , doclayout, filepath, Glob, HsYAML, mtl, parsec, safe, scientific
      , tasty, tasty-golden, tasty-hunit, temporary, text
@@ -75770,9 +77155,10 @@ self: {
        ];
        description = "Pandoc-style document templates";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "doctemplates_0_8_2" = callPackage
+  "doctemplates" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, criterion
      , doclayout, filepath, Glob, HsYAML, mtl, parsec, safe, scientific
      , tasty, tasty-golden, tasty-hunit, temporary, text
@@ -75796,7 +77182,6 @@ self: {
        ];
        description = "Pandoc-style document templates";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "doctest" = callPackage
@@ -75923,6 +77308,32 @@ self: {
        broken = true;
      }) {};
 
+  "doctest-exitcode-stdio" = callPackage
+    ({ mkDerivation, base, doctest-lib, QuickCheck, semigroups
+     , transformers
+     }:
+     mkDerivation {
+       pname = "doctest-exitcode-stdio";
+       version = "0.0";
+       sha256 = "1g3c7yrqq2mwqbmvs8vkx1a3cf0p0x74b7fnn344dsk7bsfpgv0x";
+       libraryHaskellDepends = [
+         base doctest-lib QuickCheck semigroups transformers
+       ];
+       description = "Run doctest's in a Cabal.Test.exitcode-stdio environment";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "doctest-lib" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "doctest-lib";
+       version = "0.1";
+       sha256 = "1vswam0dhw52dihgnzirh18gqs8rj8h6jd7pl6y1mg2f9f9zmih2";
+       libraryHaskellDepends = [ base ];
+       description = "Parts of doctest exposed as library";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "doctest-prop" = callPackage
     ({ mkDerivation, base, doctest, HUnit, QuickCheck }:
      mkDerivation {
@@ -76110,15 +77521,14 @@ self: {
      }) {};
 
   "dom-lt" = callPackage
-    ({ mkDerivation, array, base, containers, criterion, deepseq }:
+    ({ mkDerivation, array, base, containers, criterion, deepseq, HUnit
+     }:
      mkDerivation {
        pname = "dom-lt";
-       version = "0.2.0";
-       sha256 = "15jf1csnqwd56izw5zk6kbp2kk6y0zkgm9ddbwrk0k3ngmdqzkli";
-       revision = "1";
-       editedCabalFile = "1rkjm9ssi7j2klf11b8w1wlw3hg4ybcfxdi2klik6lm5mpb52x7w";
+       version = "0.2.2";
+       sha256 = "0hf0wf4fl671awf87f0r7r4a57cgm88x666081c0wy16qchahffw";
        libraryHaskellDepends = [ array base containers ];
-       testHaskellDepends = [ base containers ];
+       testHaskellDepends = [ base containers HUnit ];
        benchmarkHaskellDepends = [ base containers criterion deepseq ];
        description = "The Lengauer-Tarjan graph dominators algorithm";
        license = stdenv.lib.licenses.bsd3;
@@ -76281,8 +77691,8 @@ self: {
      }:
      mkDerivation {
        pname = "dotenv";
-       version = "0.8.0.4";
-       sha256 = "05dqa91zmxkzkz1dcpx2jxkzhdr4f51gw0qql47da9bllavl0jj4";
+       version = "0.8.0.7";
+       sha256 = "11x7aiflf45rdbbzk33pg8v2x5a4bnbhi6845bi3wpgq7y27210v";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -76339,8 +77749,8 @@ self: {
     ({ mkDerivation, base, containers }:
      mkDerivation {
        pname = "dotgen";
-       version = "0.4.2";
-       sha256 = "148q93qsmqgr5pzdwvpjqfd6bdm1pwzcp2rblfwswx2x8c5f43fg";
+       version = "0.4.3";
+       sha256 = "1jcn5m9342jrdq7jln2v9msf9978ngrx0pq9rrjh8izhvbvph76s";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers ];
@@ -77030,6 +78440,21 @@ self: {
        broken = true;
      }) {};
 
+  "drunken-bishop" = callPackage
+    ({ mkDerivation, array, base, bytestring, pureMD5 }:
+     mkDerivation {
+       pname = "drunken-bishop";
+       version = "0.1.0.0";
+       sha256 = "114728h8zznmjygp1ddjnkklk0pcs8w7in7698k9xi54j6v467gy";
+       revision = "1";
+       editedCabalFile = "1iaq53nvyzh84g91a6p7y4m38v0mcqpw1c18s2fxlzb5zg342zqi";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ array base bytestring pureMD5 ];
+       description = "An implementation of the Drunken Bishop visual fingerprinting algorithm";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "ds-kanren" = callPackage
     ({ mkDerivation, base, containers, logict, QuickCheck, tasty
      , tasty-quickcheck
@@ -77164,14 +78589,14 @@ self: {
     ({ mkDerivation, array, base, containers, QuickCheck, random }:
      mkDerivation {
        pname = "dsp";
-       version = "0.2.5";
-       sha256 = "1lka6l0xf3p7cb9ikzvszwgr7pl3gjm0s5v312p6k4w1fqqsycl5";
+       version = "0.2.5.1";
+       sha256 = "03mhqqnjqjhklmlim6cljq5ik0l4h6lgqffw2i2clqgwj64ky5nf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ array base containers random ];
        testHaskellDepends = [ array base containers QuickCheck ];
        description = "Haskell Digital Signal Processing";
-       license = "GPL";
+       license = stdenv.lib.licenses.gpl2;
      }) {};
 
   "dstring" = callPackage
@@ -77504,21 +78929,6 @@ self: {
      }) {};
 
   "dunai" = callPackage
-    ({ mkDerivation, base, MonadRandom, simple-affine-space
-     , transformers, transformers-base
-     }:
-     mkDerivation {
-       pname = "dunai";
-       version = "0.6.0";
-       sha256 = "00ww23294xq8jh9mlg3rd0yz33vl09vdd176hja3l0yskd8cpbxn";
-       libraryHaskellDepends = [
-         base MonadRandom simple-affine-space transformers transformers-base
-       ];
-       description = "Generalised reactive framework supporting classic, arrowized and monadic FRP";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "dunai_0_7_0" = callPackage
     ({ mkDerivation, base, MonadRandom, simple-affine-space, tasty
      , tasty-hunit, transformers, transformers-base
      }:
@@ -77532,7 +78942,6 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit transformers ];
        description = "Generalised reactive framework supporting classic, arrowized and monadic FRP";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "dunai-core" = callPackage
@@ -77969,7 +79378,7 @@ self: {
        version = "0.1.1.0";
        sha256 = "1agk7q556yf6v776568apvc4dgvxiqfshina12f69ky8afvjr6qz";
        libraryHaskellDepends = [ base containers template-haskell unix ];
-       description = "Automatically derive dynamic linking methods from a data type.";
+       description = "Automatically derive dynamic linking methods from a data type";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -77996,7 +79405,7 @@ self: {
        version = "0.1.0.5";
        sha256 = "0hsy9mgnl2yf94kqxy69wgmr5hjqxpp55qvij3f53sxxywjrxdi2";
        libraryHaskellDepends = [ base primitive vector ];
-       description = "A wrapper around MVector that enables pushing, popping and extending.";
+       description = "A wrapper around MVector that enables pushing, popping and extending";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -78307,8 +79716,8 @@ self: {
     ({ mkDerivation, base, vector }:
      mkDerivation {
        pname = "earcut";
-       version = "0.1.0.2";
-       sha256 = "080picb31ihv0gzxg0nnxx90g0n08l0hz9y57k2jihsibmkszwsi";
+       version = "0.1.0.4";
+       sha256 = "0nssl7n697rzwlfb5lq4kl64j4mrb4i19rp5kzjpmc7iin9fzxsf";
        libraryHaskellDepends = [ base vector ];
        description = "Binding to C++ earcut library";
        license = stdenv.lib.licenses.isc;
@@ -79133,6 +80542,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "effet" = callPackage
+    ({ mkDerivation, base, containers, monad-control, template-haskell
+     , transformers, transformers-base
+     }:
+     mkDerivation {
+       pname = "effet";
+       version = "0.2.0.0";
+       sha256 = "1fh6pyjalrns01sg1rnz2h462xgcmnj6xfg6xg61cdb4zh5i9gpp";
+       libraryHaskellDepends = [
+         base containers monad-control template-haskell transformers
+         transformers-base
+       ];
+       description = "An Effect System based on Type Classes";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "effin" = callPackage
     ({ mkDerivation, base, mtl }:
      mkDerivation {
@@ -79149,43 +80574,6 @@ self: {
   "egison" = callPackage
     ({ mkDerivation, array, base, containers, criterion, deepseq
      , directory, filepath, ghc, ghc-paths, Glob, hashable, haskeline
-     , HUnit, megaparsec, mtl, optparse-applicative, parsec
-     , parser-combinators, prettyprinter, process, random, regex-tdfa
-     , split, test-framework, test-framework-hunit, text, transformers
-     , unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "egison";
-       version = "3.10.3";
-       sha256 = "01j0jgdaq002g8jb8i2chf571zksmjvd6z17jrf7fvn4981lcgqi";
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         array base containers directory ghc ghc-paths hashable haskeline
-         megaparsec mtl optparse-applicative parsec parser-combinators
-         prettyprinter process random regex-tdfa split text transformers
-         unordered-containers vector
-       ];
-       executableHaskellDepends = [
-         array base containers directory filepath ghc ghc-paths haskeline
-         mtl optparse-applicative parsec prettyprinter process split text
-         transformers unordered-containers vector
-       ];
-       testHaskellDepends = [
-         base filepath Glob HUnit mtl test-framework test-framework-hunit
-         transformers
-       ];
-       benchmarkHaskellDepends = [
-         base criterion deepseq mtl transformers
-       ];
-       description = "Programming language with non-linear pattern-matching against non-free data";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "egison_4_0_1" = callPackage
-    ({ mkDerivation, array, base, containers, criterion, deepseq
-     , directory, filepath, ghc, ghc-paths, Glob, hashable, haskeline
      , HUnit, megaparsec, mini-egison, mtl, optparse-applicative, parsec
      , parser-combinators, prettyprinter, process, random, regex-tdfa
      , split, test-framework, test-framework-hunit, text, transformers
@@ -79193,8 +80581,8 @@ self: {
      }:
      mkDerivation {
        pname = "egison";
-       version = "4.0.1";
-       sha256 = "10riz5mczra3ahzgyhv6dbkrz3z93cqa9vg9lpcq8s35yf0scizw";
+       version = "4.0.3";
+       sha256 = "0wav3cbp8yxkx9ajhcfqws9y1xhs36gw01spwi7x7s4l6x7fkqlm";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -79218,7 +80606,6 @@ self: {
        ];
        description = "Programming language with non-linear pattern-matching against non-free data";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "egison-pattern-src" = callPackage
@@ -79242,14 +80629,36 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "egison-pattern-src_0_2_1_1" = callPackage
+    ({ mkDerivation, base, containers, free, megaparsec, mtl
+     , parser-combinators, prettyprinter, recursion-schemes, tasty
+     , tasty-discover, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "egison-pattern-src";
+       version = "0.2.1.1";
+       sha256 = "0zpaxkskpdhq5nm1h6fh1klww4cslz96a3w4fhlaz0v0wdbkbrfs";
+       libraryHaskellDepends = [
+         base containers free megaparsec mtl parser-combinators
+         prettyprinter recursion-schemes text
+       ];
+       testHaskellDepends = [
+         base megaparsec mtl tasty tasty-hunit text
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Manipulating Egison patterns: abstract syntax, parser, and pretty-printer";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "egison-pattern-src-haskell-mode" = callPackage
     ({ mkDerivation, base, egison-pattern-src, haskell-src-exts, mtl
      , tasty, tasty-discover, tasty-hunit, text
      }:
      mkDerivation {
        pname = "egison-pattern-src-haskell-mode";
-       version = "0.2.1.0";
-       sha256 = "0lgvvw23ii0g62b8q67h4mfm2bd07akl2m8dp8855hm16q1b8w8n";
+       version = "0.2.1.1";
+       sha256 = "0k21fi28imqnn2rp5182mjxnrahssbdxay3pzhzj5yyfjp8qymwp";
        libraryHaskellDepends = [
          base egison-pattern-src haskell-src-exts mtl text
        ];
@@ -79268,10 +80677,8 @@ self: {
      }:
      mkDerivation {
        pname = "egison-pattern-src-th-mode";
-       version = "0.2.1.0";
-       sha256 = "0libfs39irdnqfvynmpji21p6nyk2s3zsxhlmsz763aya51ymxpy";
-       revision = "2";
-       editedCabalFile = "1ad2iii6csindqy9kd47zs1c04qj9fyg93iji5fxrb4wgmc90l2a";
+       version = "0.2.1.1";
+       sha256 = "110rykbxkpv9vrqvwdxm0fa73djy2g5swcxzpx61zh6cl4wk949g";
        libraryHaskellDepends = [
          base egison-pattern-src haskell-src-exts haskell-src-meta mtl
          pretty template-haskell text
@@ -79306,8 +80713,8 @@ self: {
      }:
      mkDerivation {
        pname = "egison-tutorial";
-       version = "4.0.0";
-       sha256 = "0kma4i6qhjwcr9dhlgl63gd8f676agigbv1qii7p6fvq3hj38ddg";
+       version = "4.0.1";
+       sha256 = "1g5vhf04b7r2g5kx0f5z9cci0nv55qbnjkvm81cg5yjh41bhffwn";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -79458,6 +80865,21 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "either-result" = callPackage
+    ({ mkDerivation, base, doctest, doctest-discover, hspec
+     , hspec-discover, mtl, transformers
+     }:
+     mkDerivation {
+       pname = "either-result";
+       version = "0.3.1.0";
+       sha256 = "1l4539j0ynn5jl0rh9bhjxlgvr0sn3bf8ws1zrlbfk15524znqhm";
+       libraryHaskellDepends = [ base mtl transformers ];
+       testHaskellDepends = [ base doctest hspec transformers ];
+       testToolDepends = [ doctest-discover hspec-discover ];
+       description = "‘MonadFail’ instance for a wrapper of ‘ExceptT String m a’";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "either-unwrap" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -79749,8 +81171,8 @@ self: {
      }:
      mkDerivation {
        pname = "ekg-statsd";
-       version = "0.2.4.1";
-       sha256 = "1kxrbbxi4ah7ds0pfvbblh4gaij7mn5nn7dylxq7pjsjrgiwl9mj";
+       version = "0.2.5.0";
+       sha256 = "02sgssxk8q9clz0pw7k7dbgxryvkhq46b9mf0nqkvw8r81j4gy92";
        libraryHaskellDepends = [
          base bytestring ekg-core network text time unordered-containers
        ];
@@ -79967,22 +81389,6 @@ self: {
      }:
      mkDerivation {
        pname = "elm-bridge";
-       version = "0.5.2";
-       sha256 = "1ls4c4lrjbmms1kcaz88nnxn3ih3wbx51adjggbvyvfj52bc5cvp";
-       libraryHaskellDepends = [ aeson base template-haskell ];
-       testHaskellDepends = [
-         aeson base containers hspec QuickCheck text
-       ];
-       description = "Derive Elm types and Json code from Haskell types, using aeson's options";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "elm-bridge_0_6_1" = callPackage
-    ({ mkDerivation, aeson, base, containers, hspec, QuickCheck
-     , template-haskell, text
-     }:
-     mkDerivation {
-       pname = "elm-bridge";
        version = "0.6.1";
        sha256 = "0q71zj7vzkwxkn022bn4bqnblwygdrkjypqy65xxadfbqjl9y8gx";
        libraryHaskellDepends = [ aeson base template-haskell ];
@@ -79991,7 +81397,6 @@ self: {
        ];
        description = "Derive Elm types and Json code from Haskell types, using aeson's options";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "elm-build-lib" = callPackage
@@ -80474,119 +81879,126 @@ self: {
      }:
      mkDerivation {
        pname = "elynx";
-       version = "0.2.2";
-       sha256 = "19fj65klv8pyan6n6i0mzcwpsprkhvxirh82hdmr3b3y2zaw10h6";
+       version = "0.4.0";
+       sha256 = "0qhq3h1va7pfcz58mkdw690v88jr3ynk2rrwl0s5qdz8xxvs5n3a";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          aeson base bytestring elynx-tools optparse-applicative slynx tlynx
        ];
        description = "Validate and (optionally) redo ELynx analyses";
-       license = stdenv.lib.licenses.gpl3;
+       license = stdenv.lib.licenses.gpl3Plus;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
   "elynx-markov" = callPackage
-    ({ mkDerivation, base, bytestring, containers, elynx-seq
-     , elynx-tools, elynx-tree, hmatrix, hspec, hspec-megaparsec
-     , integration, math-functions, megaparsec, mwc-random, parallel
-     , primitive, statistics, vector
+    ({ mkDerivation, async, attoparsec, base, bytestring, containers
+     , elynx-seq, elynx-tools, hmatrix, hspec, integration
+     , math-functions, mwc-random, parallel, primitive, statistics
+     , vector
      }:
      mkDerivation {
        pname = "elynx-markov";
-       version = "0.2.2";
-       sha256 = "1w7wxha82xaanfnzyn8ygfpxmk7lalfvzwr157crz8nm59ai4c05";
+       version = "0.4.0";
+       sha256 = "0ikk9xk71xyn1fmhzx59lfyk9skjkvhg19xb2afhcylnbg41f3wz";
        libraryHaskellDepends = [
-         base bytestring containers elynx-seq elynx-tools elynx-tree hmatrix
-         integration math-functions megaparsec mwc-random parallel primitive
-         statistics vector
+         async attoparsec base bytestring containers elynx-seq hmatrix
+         integration math-functions mwc-random parallel primitive statistics
+         vector
        ];
        testHaskellDepends = [
-         base bytestring containers elynx-tools elynx-tree hmatrix hspec
-         hspec-megaparsec integration math-functions megaparsec mwc-random
-         parallel primitive statistics vector
+         base containers elynx-tools hmatrix hspec mwc-random vector
        ];
        description = "Simulate molecular sequences along trees";
-       license = stdenv.lib.licenses.gpl3;
+       license = stdenv.lib.licenses.gpl3Plus;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "elynx-nexus" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, hspec }:
+     mkDerivation {
+       pname = "elynx-nexus";
+       version = "0.4.0";
+       sha256 = "02g67w8xracbasnkha383vz0ls1haxr78ia27k292lx572l17dvv";
+       libraryHaskellDepends = [ attoparsec base bytestring ];
+       testHaskellDepends = [ base hspec ];
+       description = "Import and export Nexus files";
+       license = stdenv.lib.licenses.gpl3Plus;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
   "elynx-seq" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, elynx-tools
-     , hspec, hspec-megaparsec, matrices, megaparsec, mwc-random
-     , parallel, primitive, vector, vector-th-unbox, word8
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, containers
+     , elynx-tools, hspec, matrices, mwc-random, parallel, primitive
+     , vector, vector-th-unbox, word8
      }:
      mkDerivation {
        pname = "elynx-seq";
-       version = "0.2.2";
-       sha256 = "1m09indy34zgx16m2rnmwjf9fvrhi8qcdxpfz7myjl2hxbp8hz1j";
+       version = "0.4.0";
+       sha256 = "03dh4rjdgn580niljgrl0cfw5h2mah8q1252jq3jx8349jxgpcmh";
        libraryHaskellDepends = [
-         aeson base bytestring containers elynx-tools matrices megaparsec
-         mwc-random parallel primitive vector vector-th-unbox word8
+         aeson attoparsec base bytestring containers matrices mwc-random
+         parallel primitive vector vector-th-unbox word8
        ];
        testHaskellDepends = [
-         aeson base bytestring containers elynx-tools hspec hspec-megaparsec
-         matrices megaparsec mwc-random parallel primitive vector
-         vector-th-unbox word8
+         base bytestring elynx-tools hspec matrices vector
        ];
        description = "Handle molecular sequences";
-       license = stdenv.lib.licenses.gpl3;
+       license = stdenv.lib.licenses.gpl3Plus;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
   "elynx-tools" = callPackage
-    ({ mkDerivation, aeson, async, base, base16-bytestring, bytestring
-     , containers, cryptohash-sha256, deepseq, directory, fast-logger
-     , hmatrix, matrices, megaparsec, monad-control, monad-logger
-     , mwc-random, optparse-applicative, parallel, primitive
-     , template-haskell, text, time, transformers, transformers-base
-     , vector, zlib
+    ({ mkDerivation, aeson, attoparsec, base, base16-bytestring
+     , bytestring, cryptohash-sha256, deepseq, directory, fast-logger
+     , hmatrix, monad-control, monad-logger, mwc-random
+     , optparse-applicative, primitive, template-haskell, text, time
+     , transformers, transformers-base, vector, zlib
      }:
      mkDerivation {
        pname = "elynx-tools";
-       version = "0.2.2";
-       sha256 = "0gdnfyag704yfvrakc7d0adh3mb9r1kf1v8cpdrspaxxr77brw9q";
+       version = "0.4.0";
+       sha256 = "0n8rf7y4qxhx35fhbhj4yc541ydsx8qvy66d11sl5a836gmsv0rr";
        libraryHaskellDepends = [
-         aeson async base base16-bytestring bytestring containers
-         cryptohash-sha256 deepseq directory fast-logger hmatrix matrices
-         megaparsec monad-control monad-logger mwc-random
-         optparse-applicative parallel primitive template-haskell text time
-         transformers transformers-base vector zlib
+         aeson attoparsec base base16-bytestring bytestring
+         cryptohash-sha256 deepseq directory fast-logger hmatrix
+         monad-control monad-logger mwc-random optparse-applicative
+         primitive template-haskell text time transformers transformers-base
+         vector zlib
        ];
        description = "Tools for ELynx";
-       license = stdenv.lib.licenses.gpl3;
+       license = stdenv.lib.licenses.gpl3Plus;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
   "elynx-tree" = callPackage
-    ({ mkDerivation, base, bytestring, containers, criterion
-     , elynx-tools, hspec, hspec-megaparsec, math-functions, megaparsec
-     , mwc-random, primitive, QuickCheck, quickcheck-instances
-     , statistics
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, comonad
+     , containers, criterion, deepseq, double-conversion, elynx-nexus
+     , elynx-tools, hspec, math-functions, mwc-random, primitive
+     , QuickCheck, statistics
      }:
      mkDerivation {
        pname = "elynx-tree";
-       version = "0.2.2";
-       sha256 = "00c7rli9vfi1crz9plpc5xgh960ba245kisxihbx54vqlc94b5hj";
+       version = "0.4.0";
+       sha256 = "1j22gkg1971wrih4gs4bxzkghvd3ddj85s6s5mcqhrfxmdnpsn2c";
        libraryHaskellDepends = [
-         base bytestring containers elynx-tools math-functions megaparsec
-         mwc-random primitive statistics
+         aeson attoparsec base bytestring comonad containers deepseq
+         double-conversion elynx-nexus math-functions mwc-random primitive
+         statistics
        ];
        testHaskellDepends = [
-         base bytestring containers elynx-tools hspec hspec-megaparsec
-         math-functions megaparsec mwc-random primitive QuickCheck
-         quickcheck-instances statistics
+         attoparsec base bytestring containers elynx-tools hspec QuickCheck
        ];
        benchmarkHaskellDepends = [
-         base bytestring containers criterion elynx-tools math-functions
-         megaparsec mwc-random primitive statistics
+         base bytestring criterion elynx-tools
        ];
        description = "Handle phylogenetic trees";
-       license = stdenv.lib.licenses.gpl3;
+       license = stdenv.lib.licenses.gpl3Plus;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -81038,6 +82450,31 @@ self: {
        broken = true;
      }) {};
 
+  "encryptable" = callPackage
+    ({ mkDerivation, base, bytestring, cryptonite, esqueleto
+     , generic-arbitrary, hspec, persistent, persistent-template
+     , QuickCheck, quickcheck-instances, text, universum
+     }:
+     mkDerivation {
+       pname = "encryptable";
+       version = "0.1";
+       sha256 = "0svvzk2js91qzcmbsfjcs2qs65a2b5ywgbpnyqidz53dlnbbk2r1";
+       libraryHaskellDepends = [
+         base bytestring cryptonite esqueleto generic-arbitrary hspec
+         persistent persistent-template QuickCheck quickcheck-instances text
+         universum
+       ];
+       testHaskellDepends = [
+         base bytestring cryptonite esqueleto generic-arbitrary hspec
+         persistent persistent-template QuickCheck quickcheck-instances text
+         universum
+       ];
+       description = "Typed encryption with persistent support";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "endo" = callPackage
     ({ mkDerivation, base, between, data-default-class, mtl
      , transformers
@@ -81480,6 +82917,17 @@ self: {
        broken = true;
      }) {};
 
+  "enummaps" = callPackage
+    ({ mkDerivation, base, containers, deepseq }:
+     mkDerivation {
+       pname = "enummaps";
+       version = "0.6.2.1.7";
+       sha256 = "0p4klnhwr10yiv3w209vl1j09280257z0pz626ynbxbff4mh9wg4";
+       libraryHaskellDepends = [ base containers deepseq ];
+       description = "Enum wrappers for IntMap and IntSet";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "enummapset" = callPackage
     ({ mkDerivation, array, base, containers, deepseq, ghc-prim, HUnit
      , QuickCheck, semigroups, test-framework, test-framework-hunit
@@ -81502,10 +82950,8 @@ self: {
     ({ mkDerivation, base, containers, deepseq, template-haskell }:
      mkDerivation {
        pname = "enummapset-th";
-       version = "0.6.1.1";
-       sha256 = "0anmarswk8vvd9c8qhkhgwzmr5h2yq0bdx48ww5lbca1zf6h5hkw";
-       revision = "1";
-       editedCabalFile = "0fyjwcw7ibm0x5k2281q53drwm1ddsmkc890fywcv7r6b9jdx5py";
+       version = "0.6.2";
+       sha256 = "010cldc2jhhizllqj810ani5rffakfzmxm1rj69v5q489fnngswl";
        libraryHaskellDepends = [
          base containers deepseq template-haskell
        ];
@@ -81545,6 +82991,8 @@ self: {
        ];
        description = "Safe helpers for accessing and modifying environment variables";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "env-locale" = callPackage
@@ -82033,6 +83481,20 @@ self: {
        broken = true;
      }) {};
 
+  "errata" = callPackage
+    ({ mkDerivation, base, containers, text }:
+     mkDerivation {
+       pname = "errata";
+       version = "0.1.0.0";
+       sha256 = "193m9c0409jvk6s8acqad3dg5x97mr6814gq0diyc3yc7b7mdmvf";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base containers text ];
+       executableHaskellDepends = [ base containers text ];
+       description = "Source code error pretty printing";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "errno" = callPackage
     ({ mkDerivation, base, mtl }:
      mkDerivation {
@@ -82482,8 +83944,8 @@ self: {
      }:
      mkDerivation {
        pname = "esqueleto";
-       version = "3.3.3.0";
-       sha256 = "19zzqmaciski4ara41djkh1df17nzqw2nfwzc81zv6d3pylaznq1";
+       version = "3.3.4.0";
+       sha256 = "1w46sfh4rrj7lvsdyzwphcv8n00v6kr3padkk8v5lr0r40w5n60r";
        libraryHaskellDepends = [
          aeson attoparsec base blaze-html bytestring conduit containers
          monad-logger persistent resourcet tagged text time transformers
@@ -82533,8 +83995,30 @@ self: {
        ];
        description = "General purpose live coding framework";
        license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "essence-of-live-coding_0_2_4" = callPackage
+    ({ mkDerivation, base, containers, foreign-store, mtl, QuickCheck
+     , syb, test-framework, test-framework-quickcheck2, time
+     , transformers, vector-sized
+     }:
+     mkDerivation {
+       pname = "essence-of-live-coding";
+       version = "0.2.4";
+       sha256 = "04rbbq58ska6qldah0d7s8kdn5hkxka7bap7ca1wksbwbkph6qj1";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers foreign-store syb time transformers vector-sized
+       ];
+       executableHaskellDepends = [ base transformers ];
+       testHaskellDepends = [
+         base containers mtl QuickCheck syb test-framework
+         test-framework-quickcheck2 transformers
+       ];
+       description = "General purpose live coding framework";
+       license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "essence-of-live-coding-gloss" = callPackage
@@ -82550,6 +84034,40 @@ self: {
        ];
        description = "General purpose live coding framework - Gloss backend";
        license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "essence-of-live-coding-gloss_0_2_4" = callPackage
+    ({ mkDerivation, base, essence-of-live-coding, foreign-store, gloss
+     , syb, transformers
+     }:
+     mkDerivation {
+       pname = "essence-of-live-coding-gloss";
+       version = "0.2.4";
+       sha256 = "11hnzax39g7yaqwaaxi3niipamd65mcrdi431fxrspkhgcm1nx2y";
+       libraryHaskellDepends = [
+         base essence-of-live-coding foreign-store gloss syb transformers
+       ];
+       description = "General purpose live coding framework - Gloss backend";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "essence-of-live-coding-gloss-example" = callPackage
+    ({ mkDerivation, base, essence-of-live-coding
+     , essence-of-live-coding-gloss, gloss, syb, transformers
+     }:
+     mkDerivation {
+       pname = "essence-of-live-coding-gloss-example";
+       version = "0.2.4";
+       sha256 = "1npn9973jm8y21gh0cfdiqldmx5s7jb1iw6ka734mpjnx2nr9jzw";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base essence-of-live-coding essence-of-live-coding-gloss gloss syb
+         transformers
+       ];
+       description = "General purpose live coding framework - Gloss example";
+       license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -82567,6 +84085,40 @@ self: {
        ];
        description = "General purpose live coding framework - pulse backend";
        license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "essence-of-live-coding-pulse_0_2_4" = callPackage
+    ({ mkDerivation, base, essence-of-live-coding, foreign-store
+     , pulse-simple, transformers
+     }:
+     mkDerivation {
+       pname = "essence-of-live-coding-pulse";
+       version = "0.2.4";
+       sha256 = "0lhnq85bi22mwnw4fcg9hzr18mdifxlr833pwsc7ch401y2mf1kz";
+       libraryHaskellDepends = [
+         base essence-of-live-coding foreign-store pulse-simple transformers
+       ];
+       description = "General purpose live coding framework - pulse backend";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "essence-of-live-coding-pulse-example" = callPackage
+    ({ mkDerivation, base, essence-of-live-coding
+     , essence-of-live-coding-pulse, pulse-simple, transformers, vector
+     }:
+     mkDerivation {
+       pname = "essence-of-live-coding-pulse-example";
+       version = "0.2.4";
+       sha256 = "0jjafsrjpcprfcly4z4ld98y25lx3gc1faqbd6ms56kyrhs3q1p3";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base essence-of-live-coding essence-of-live-coding-pulse
+         pulse-simple transformers vector
+       ];
+       description = "General purpose live coding framework - pulse backend example";
+       license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -82585,6 +84137,39 @@ self: {
        ];
        description = "General purpose live coding framework - QuickCheck integration";
        license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "essence-of-live-coding-quickcheck_0_2_4" = callPackage
+    ({ mkDerivation, base, boltzmann-samplers, essence-of-live-coding
+     , QuickCheck, syb, transformers
+     }:
+     mkDerivation {
+       pname = "essence-of-live-coding-quickcheck";
+       version = "0.2.4";
+       sha256 = "1ic2wvk4fc7jb6dkfy6fypmyw7hfbn79m51gn4z4c35ddhsfpngd";
+       libraryHaskellDepends = [
+         base boltzmann-samplers essence-of-live-coding QuickCheck syb
+         transformers
+       ];
+       description = "General purpose live coding framework - QuickCheck integration";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "essence-of-live-coding-warp" = callPackage
+    ({ mkDerivation, base, essence-of-live-coding, http-client
+     , http-types, wai, warp
+     }:
+     mkDerivation {
+       pname = "essence-of-live-coding-warp";
+       version = "0.2.4";
+       sha256 = "1p6wcpkx19kspssw34ymp9gsfczzr5b11qghp2ha5gkrp6dw6z9w";
+       libraryHaskellDepends = [
+         base essence-of-live-coding http-types wai warp
+       ];
+       testHaskellDepends = [ base essence-of-live-coding http-client ];
+       description = "General purpose live coding framework";
+       license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -83011,6 +84596,8 @@ self: {
        ];
        description = "Euler tour trees";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "euphoria" = callPackage
@@ -83129,6 +84716,17 @@ self: {
        broken = true;
      }) {};
 
+  "eveff" = callPackage
+    ({ mkDerivation, base, ghc-prim, primitive }:
+     mkDerivation {
+       pname = "eveff";
+       version = "0.1.0.0";
+       sha256 = "1d0bxg1dg66g1yv291cp4jh3xv3caxrddqrwb0g6g1929dl019fa";
+       libraryHaskellDepends = [ base ghc-prim primitive ];
+       description = "Efficient effect handlers based on evidence translation";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "event" = callPackage
     ({ mkDerivation, base, containers, semigroups, transformers }:
      mkDerivation {
@@ -83516,6 +85114,43 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "eventsourcing" = callPackage
+    ({ mkDerivation, base, deepseq, free, hashable, hedgehog, mtl
+     , pipes, psqueues, stm, tasty, tasty-hedgehog, time
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "eventsourcing";
+       version = "0.9.0";
+       sha256 = "0rg9nd0sbqd132a4jzaq0065c5wjaib7iya305j2ql63gilfnjy3";
+       libraryHaskellDepends = [
+         base deepseq free hashable mtl pipes psqueues stm time
+         unordered-containers
+       ];
+       testHaskellDepends = [
+         base deepseq hedgehog mtl pipes stm tasty tasty-hedgehog
+         unordered-containers
+       ];
+       description = "CQRS/ES library";
+       license = stdenv.lib.licenses.isc;
+     }) {};
+
+  "eventsourcing-postgresql" = callPackage
+    ({ mkDerivation, base, bytestring, eventsourcing, hashable, mtl
+     , pipes, postgresql-simple, stm, unordered-containers
+     }:
+     mkDerivation {
+       pname = "eventsourcing-postgresql";
+       version = "0.9.0";
+       sha256 = "0dxa5lgf3lndhqgsmciyv9a6a6qwmwppq4qriasipnp656rcgyf8";
+       libraryHaskellDepends = [
+         base bytestring eventsourcing hashable mtl pipes postgresql-simple
+         stm unordered-containers
+       ];
+       description = "PostgreSQL adaptor for eventsourcing";
+       license = stdenv.lib.licenses.isc;
+     }) {};
+
   "eventstore" = callPackage
     ({ mkDerivation, aeson, array, async, base, bifunctors, bytestring
      , cereal, clock, connection, containers, dns, dotnet-timespan
@@ -83660,15 +85295,15 @@ self: {
 
   "exact-real" = callPackage
     ({ mkDerivation, base, Cabal, cabal-doctest, checkers, criterion
-     , doctest, groups, integer-gmp, memoize, QuickCheck, random, tasty
+     , doctest, groups, integer-gmp, QuickCheck, random, tasty
      , tasty-hunit, tasty-quickcheck, tasty-th
      }:
      mkDerivation {
        pname = "exact-real";
-       version = "0.12.3";
-       sha256 = "1mn5bqx0r1la573bd5g2q0c6cqd68l2rhzyx1ya7fjvp081q1gbh";
+       version = "0.12.4";
+       sha256 = "09i0pi141cmqc09mxgsmdk7n3a0rcmjc7w2j4a0ckf0i41vb9yni";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [ base integer-gmp memoize random ];
+       libraryHaskellDepends = [ base integer-gmp random ];
        testHaskellDepends = [
          base checkers doctest groups QuickCheck random tasty tasty-hunit
          tasty-quickcheck tasty-th
@@ -83790,16 +85425,14 @@ self: {
      }) {};
 
   "exception-transformers" = callPackage
-    ({ mkDerivation, base, HUnit, stm, test-framework
-     , test-framework-hunit, transformers, transformers-compat
+    ({ mkDerivation, base, HUnit, test-framework, test-framework-hunit
+     , transformers, transformers-compat
      }:
      mkDerivation {
        pname = "exception-transformers";
-       version = "0.4.0.8";
-       sha256 = "079vwd0lkv7y5cijpjxsxn6wyba1y22fw9mfirzgjpiswx46isrr";
-       libraryHaskellDepends = [
-         base stm transformers transformers-compat
-       ];
+       version = "0.4.0.9";
+       sha256 = "033z8mhczwf59lh59q3z546gkcsy0bzg98r1qhm3fiq7j11hgd95";
+       libraryHaskellDepends = [ base transformers transformers-compat ];
        testHaskellDepends = [
          base HUnit test-framework test-framework-hunit transformers
          transformers-compat
@@ -83992,8 +85625,8 @@ self: {
      }:
      mkDerivation {
        pname = "exhaustive";
-       version = "1.1.8";
-       sha256 = "1nnylpjrrb6smmgl3d481wpkxpdw26yfa3jlw98p3xgm8k907486";
+       version = "1.1.9";
+       sha256 = "1mpqw30fwv6h5vwkbd5xzc5dn24l0185jzsrx71rmic9nx043xc6";
        libraryHaskellDepends = [
          base generics-sop template-haskell transformers
        ];
@@ -84041,6 +85674,50 @@ self: {
        broken = true;
      }) {inherit (pkgs) exif;};
 
+  "exiftool" = callPackage
+    ({ mkDerivation, aeson, base, base64, bytestring, hashable, process
+     , scientific, string-conversions, temporary, text
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "exiftool";
+       version = "0.1.0.0";
+       sha256 = "015f0ai0x6iv49k4ljz8058509h8z8kkgnp7p9l4s8z54sgqfw8y";
+       revision = "1";
+       editedCabalFile = "06w0g76jddjykbvym2zgcwjsa33alm1rwshhzaw0pqm573mqbp26";
+       libraryHaskellDepends = [
+         aeson base base64 bytestring hashable process scientific
+         string-conversions temporary text unordered-containers vector
+       ];
+       description = "Haskell bindings to ExifTool";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "exigo-schema" = callPackage
+    ({ mkDerivation, aeson, base, binary, bytestring, directory
+     , esqueleto, exceptions, hint, hspec, hspec-core, interpolate
+     , monad-logger, mtl, persistent, persistent-sqlite
+     , persistent-template, QuickCheck, quickcheck-text, resourcet
+     , template-haskell, temporary, text, th-lift-instances
+     }:
+     mkDerivation {
+       pname = "exigo-schema";
+       version = "0.2.0.2";
+       sha256 = "0kaja735bsgzywhfa16wg5kvjc1c89gvm503gxxyhkakacmp2002";
+       libraryHaskellDepends = [
+         aeson base binary bytestring persistent persistent-template
+         template-haskell text th-lift-instances
+       ];
+       testHaskellDepends = [
+         aeson base bytestring directory esqueleto exceptions hint hspec
+         hspec-core interpolate monad-logger mtl persistent
+         persistent-sqlite persistent-template QuickCheck quickcheck-text
+         resourcet template-haskell temporary text
+       ];
+       description = "database schema for exigo marking/assessment tools";
+       license = stdenv.lib.licenses.bsd2;
+     }) {};
+
   "exinst" = callPackage
     ({ mkDerivation, base, binary, bytestring, constraints, deepseq
      , hashable, profunctors, QuickCheck, singletons, tasty, tasty-hunit
@@ -84283,6 +85960,21 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "exotic-list-monads" = callPackage
+    ({ mkDerivation, base, hspec, hspec-core, hspec-discover
+     , QuickCheck
+     }:
+     mkDerivation {
+       pname = "exotic-list-monads";
+       version = "1.0.0";
+       sha256 = "0gi8bkfyw3w53hf6m0g9r0pw68pqh82n8x4zvs8y4wzjiwdipqw3";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base hspec hspec-core QuickCheck ];
+       testToolDepends = [ hspec-discover ];
+       description = "Non-standard monads on lists and non-empty lists";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "exp-cache" = callPackage
     ({ mkDerivation, array, base, containers, criterion, deepseq
      , hashable, HUnit, psqueues, QuickCheck, random, tasty, tasty-hunit
@@ -84779,20 +86471,20 @@ self: {
 
   "extensible" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cassava, comonad
-     , constraints, deepseq, ghc-prim, hashable, lens, membership
-     , monad-skeleton, prettyprinter, primitive, profunctors, QuickCheck
-     , StateVar, tagged, template-haskell, text, th-lift, transformers
-     , unordered-containers, vector
+     , constraints, deepseq, ghc-prim, hashable, incremental, lens
+     , membership, monad-skeleton, prettyprinter, primitive, profunctors
+     , QuickCheck, StateVar, tagged, template-haskell, text, th-lift
+     , transformers, unordered-containers, vector
      }:
      mkDerivation {
        pname = "extensible";
-       version = "0.8";
-       sha256 = "1p5mnzk4x6dk8gyr3n47wlndnqf8w7112whr872355zqyvcxlsq6";
+       version = "0.8.1";
+       sha256 = "189svxwh54zzczrrirlnfyqmv2f12h8qxw9rqq47mn55ch40xnw3";
        libraryHaskellDepends = [
          aeson base bytestring cassava comonad constraints deepseq ghc-prim
-         hashable membership monad-skeleton prettyprinter primitive
-         profunctors QuickCheck StateVar tagged template-haskell text
-         th-lift transformers unordered-containers vector
+         hashable incremental membership monad-skeleton prettyprinter
+         primitive profunctors QuickCheck StateVar tagged template-haskell
+         text th-lift transformers unordered-containers vector
        ];
        testHaskellDepends = [ base lens QuickCheck template-haskell ];
        description = "Extensible, efficient, optics-friendly data types and effects";
@@ -84942,8 +86634,6 @@ self: {
        ];
        description = "Parse Haskell Language Extensions";
        license = stdenv.lib.licenses.mpl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "external-sort" = callPackage
@@ -84963,30 +86653,12 @@ self: {
 
   "extra" = callPackage
     ({ mkDerivation, base, clock, directory, filepath, process
-     , QuickCheck, quickcheck-instances, semigroups, time, unix
-     }:
-     mkDerivation {
-       pname = "extra";
-       version = "1.6.21";
-       sha256 = "1gjx98w4w61g043k6rzc8i34cbxpcigi8lb6i7pp1vwp8w8jm5vl";
-       libraryHaskellDepends = [
-         base clock directory filepath process semigroups time unix
-       ];
-       testHaskellDepends = [
-         base directory filepath QuickCheck quickcheck-instances unix
-       ];
-       description = "Extra functions I use";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "extra_1_7_3" = callPackage
-    ({ mkDerivation, base, clock, directory, filepath, process
      , QuickCheck, quickcheck-instances, time, unix
      }:
      mkDerivation {
        pname = "extra";
-       version = "1.7.3";
-       sha256 = "19dw4y6zk3z2rf7nq1dxfclhlca9a9znb9x2qnpaqa4gz8q3j6na";
+       version = "1.7.8";
+       sha256 = "1sgd08h9p7ywmv08yd1h6z1bpf6pqpj1qn4v7vv7w4la86jmh2yg";
        libraryHaskellDepends = [
          base clock directory filepath process time unix
        ];
@@ -84995,7 +86667,6 @@ self: {
        ];
        description = "Extra functions I use";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "extract-dependencies" = callPackage
@@ -85188,8 +86859,8 @@ self: {
      }:
      mkDerivation {
        pname = "factory";
-       version = "0.3.2.1";
-       sha256 = "1vz273vni9335py69nlc2g92gkvy13rkfa238116g83qjjcx8w1f";
+       version = "0.3.2.2";
+       sha256 = "00nxadfipy92rpg7d3ypgigr51n4sn9jjh6n1gzxfjl6p7vq6myn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -85205,6 +86876,8 @@ self: {
        ];
        description = "Rational arithmetic in an irrational world";
        license = "GPL";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "facts" = callPackage
@@ -85441,8 +87114,8 @@ self: {
      }:
      mkDerivation {
        pname = "fakedata";
-       version = "0.5.0";
-       sha256 = "0xbdbxbj3phrzhg5ifp0s479sjrkm6p3pvvia2i4j1fmq313d9k7";
+       version = "0.6.1";
+       sha256 = "0qqc0hq7lg1s5fpflmnalcsy0043vqd8iiblwa6lvm45h7af8ii2";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers directory exceptions filepath hashable
@@ -85463,30 +87136,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "fakedata_0_6_1" = callPackage
+  "fakedata_0_7_1" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, directory
      , exceptions, filepath, gauge, hashable, hspec, hspec-discover
-     , random, template-haskell, text, time, unordered-containers
-     , vector, yaml
+     , random, string-random, template-haskell, text, time
+     , unordered-containers, vector, yaml
      }:
      mkDerivation {
        pname = "fakedata";
-       version = "0.6.1";
-       sha256 = "0qqc0hq7lg1s5fpflmnalcsy0043vqd8iiblwa6lvm45h7af8ii2";
+       version = "0.7.1";
+       sha256 = "1fbrfndwamwdnklbmyldhn45qxyyc61akbwvw0bmf645l0mkpn12";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring containers directory exceptions filepath hashable
-         random template-haskell text time unordered-containers vector yaml
+         random string-random template-haskell text time
+         unordered-containers vector yaml
        ];
        testHaskellDepends = [
          base bytestring containers directory exceptions filepath hashable
-         hspec hspec-discover random template-haskell text time
-         unordered-containers vector yaml
+         hspec hspec-discover random string-random template-haskell text
+         time unordered-containers vector yaml
        ];
        testToolDepends = [ hspec-discover ];
        benchmarkHaskellDepends = [
          base bytestring containers deepseq directory exceptions filepath
-         gauge hashable random template-haskell text time
+         gauge hashable random string-random template-haskell text time
          unordered-containers vector yaml
        ];
        description = "Library for producing fake data";
@@ -85494,18 +87168,45 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "fakedata-parser" = callPackage
+    ({ mkDerivation, attoparsec, base, hspec, text }:
+     mkDerivation {
+       pname = "fakedata-parser";
+       version = "0.1.0.0";
+       sha256 = "0rf4mr9977p70vsinr3iga6l5wzkxnkxd52j4jmdmrk5b6i3flcp";
+       libraryHaskellDepends = [ attoparsec base text ];
+       testHaskellDepends = [ attoparsec base hspec text ];
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "fakefs" = callPackage
-    ({ mkDerivation, base, containers, hspec, mtl, QuickCheck }:
+    ({ mkDerivation, base, containers, exceptions, hspec, mtl
+     , QuickCheck
+     }:
      mkDerivation {
        pname = "fakefs";
-       version = "0.2.0.1";
-       sha256 = "0szdjrc4m87h9dsb7qg5rpp5avnyzv47mymyihgvmxc22wiyf1c1";
-       libraryHaskellDepends = [ base containers mtl ];
-       testHaskellDepends = [ base containers hspec QuickCheck ];
+       version = "0.3.0.2";
+       sha256 = "16hgahq0j7ry1wdzv9syxk652x3wfhw8svpf1szmql2a32b9928b";
+       libraryHaskellDepends = [ base containers exceptions mtl ];
+       testHaskellDepends = [
+         base containers exceptions hspec QuickCheck
+       ];
        description = "Extensible fake file system for testing";
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "fakepull" = callPackage
+    ({ mkDerivation, base, exceptions, hspec, mtl, QuickCheck }:
+     mkDerivation {
+       pname = "fakepull";
+       version = "0.3.0.2";
+       sha256 = "1dmpq3wm3qsq4bg6d3zs79pbcp3v0pk72fizdviw6dl8hqmpgphl";
+       libraryHaskellDepends = [ base exceptions mtl ];
+       testHaskellDepends = [ base exceptions hspec mtl QuickCheck ];
+       description = "Monad to pull from fake stream-like objects";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "faker" = callPackage
     ({ mkDerivation, base, gimlh, random, split }:
      mkDerivation {
@@ -85657,18 +87358,17 @@ self: {
   "fast-builder" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, criterion
      , deepseq, ghc-prim, process, QuickCheck, scientific, stm
-     , template-haskell, text, true-name, unordered-containers, vector
+     , template-haskell, text, unordered-containers, vector
      }:
      mkDerivation {
        pname = "fast-builder";
-       version = "0.1.2.0";
-       sha256 = "1aa3v14nlcq4ql3f07lan9kg21dqp009yzgb96bxznyigxwf67rp";
+       version = "0.1.2.1";
+       sha256 = "0j11ahdmbni56car4zblwz9yz1qkrr6qbmpbah4fgpiyq6177cn9";
        libraryHaskellDepends = [ base bytestring ghc-prim ];
        testHaskellDepends = [ base bytestring process QuickCheck stm ];
        benchmarkHaskellDepends = [
          aeson base bytestring containers criterion deepseq ghc-prim
-         scientific template-haskell text true-name unordered-containers
-         vector
+         scientific template-haskell text unordered-containers vector
        ];
        description = "Fast ByteString Builder";
        license = stdenv.lib.licenses.publicDomain;
@@ -85721,8 +87421,8 @@ self: {
      }:
      mkDerivation {
        pname = "fast-downward";
-       version = "0.2.0.0";
-       sha256 = "0a2ax0z326mf02p5wyp1d8knxj6afn92n9bqxav2qhkc2v5kijhw";
+       version = "0.2.1.0";
+       sha256 = "1gz1grd2f10pvmmk3klxhnwqg6mrdmgg23r5mblb4dflzpshffk1";
        libraryHaskellDepends = [
          base containers mtl process temporary text transformers
        ];
@@ -85949,8 +87649,8 @@ self: {
      }:
      mkDerivation {
        pname = "fastparser";
-       version = "0.4.0";
-       sha256 = "1pb97h5hpn3fn4r9qz3rx2kb3xrbvbja9yvakbacd03rn3my1pz3";
+       version = "0.5.0";
+       sha256 = "0pxd2f6f0a6kckqmkkafh9zx11x75x1zx1z90snzj3j8s4jcfg4y";
        libraryHaskellDepends = [
          base bytestring bytestring-lexing containers kan-extensions
          microlens thyme transformers vector-space
@@ -86232,32 +87932,6 @@ self: {
      }:
      mkDerivation {
        pname = "fb";
-       version = "2.0.0";
-       sha256 = "0z56cibxp5f616vamj4jm76g2n33w22zz8pc9hhs33lm5m0nlncw";
-       libraryHaskellDepends = [
-         aeson attoparsec base bytestring conduit conduit-extra cryptonite
-         data-default http-client http-conduit http-types memory
-         monad-logger resourcet text time transformers transformers-base
-         unliftio unliftio-core unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base bytestring conduit containers data-default hspec
-         http-conduit HUnit QuickCheck resourcet text time transformers
-         unliftio
-       ];
-       description = "Bindings to Facebook's API";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "fb_2_1_1" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytestring, conduit
-     , conduit-extra, containers, cryptonite, data-default, hspec
-     , http-client, http-conduit, http-types, HUnit, memory
-     , monad-logger, QuickCheck, resourcet, text, time, transformers
-     , transformers-base, unliftio, unliftio-core, unordered-containers
-     }:
-     mkDerivation {
-       pname = "fb";
        version = "2.1.1";
        sha256 = "0j2rckrv1aksfp2wyiyffqg40jl927vs97fk2lyzkscz673jd9s9";
        libraryHaskellDepends = [
@@ -86273,7 +87947,6 @@ self: {
        ];
        description = "Bindings to Facebook's API";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "fb-persistent" = callPackage
@@ -87336,10 +89009,8 @@ self: {
      }:
      mkDerivation {
        pname = "ffunctor";
-       version = "1.2.0";
-       sha256 = "0rq60a7ximvqdxqvijw1isd1d5gwqbjagmws91y0jvxlwmsgzf6w";
-       revision = "2";
-       editedCabalFile = "1mwddp63jdgfzhdcyqs77nv5lsbaw4gj63gcihimfmj5qxlx7zpk";
+       version = "1.2.1";
+       sha256 = "0143i0l4153k1pkql50hb158hcx9iqjj59zwqlhbqq0rr43nza3f";
        libraryHaskellDepends = [ base transformers ];
        testHaskellDepends = [
          aeson base exceptions generic-lens http-client mtl servant
@@ -87358,8 +89029,8 @@ self: {
      }:
      mkDerivation {
        pname = "fgl";
-       version = "5.7.0.2";
-       sha256 = "13zqdwj6j2y5827w3dcx8kl1gini4x938bfh4c5g5jc3b37rlnll";
+       version = "5.7.0.3";
+       sha256 = "04k5grp5d381wkc7sxgcl0sd3z3nlm6l6mmh103vhzh6p49vhs99";
        libraryHaskellDepends = [
          array base containers deepseq transformers
        ];
@@ -87373,8 +89044,8 @@ self: {
     ({ mkDerivation, base, containers, fgl, hspec, QuickCheck }:
      mkDerivation {
        pname = "fgl-arbitrary";
-       version = "0.2.0.5";
-       sha256 = "1wp6v4wb2g6alq4r26da1zmc3g2g2xzca0znf4ldw4552azasaxx";
+       version = "0.2.0.6";
+       sha256 = "1mykbd1r43gpsn10ys8q3nr0i4wnhn6wq23hcici18mxxji11wkc";
        libraryHaskellDepends = [ base fgl QuickCheck ];
        testHaskellDepends = [ base containers fgl hspec QuickCheck ];
        description = "QuickCheck support for fgl";
@@ -87409,10 +89080,8 @@ self: {
     ({ mkDerivation, base-noprelude, integer-gmp, semirings }:
      mkDerivation {
        pname = "fib";
-       version = "0.1";
-       sha256 = "19ppp760993wz4d1w3i5s60k4yqcx40il7l0ak0ylcqqym619zlk";
-       revision = "1";
-       editedCabalFile = "1pi7hhil698v9yk17ncw7raw0sf20yj679jvs2d0p7q8ypl9b1lh";
+       version = "0.1.0.1";
+       sha256 = "17pk2fzgr4jjmpam52vmqg69927gfsl81w61h7q9zsf1vzd0qnix";
        libraryHaskellDepends = [ base-noprelude integer-gmp semirings ];
        description = "fibonacci algebra";
        license = stdenv.lib.licenses.bsd3;
@@ -87573,8 +89242,8 @@ self: {
      }:
      mkDerivation {
        pname = "file-embed";
-       version = "0.0.12.0";
-       sha256 = "13b2bcyifyrs1i9yk0qkj5md68ysnwma7zb1xrb1x2i4z3lk342p";
+       version = "0.0.11.2";
+       sha256 = "0bgysf6z13cmr5lsrhzrkv33sw9x1lkfnga3la2mcakh1aa3ijm4";
        libraryHaskellDepends = [
          base bytestring directory filepath template-haskell
        ];
@@ -87583,6 +89252,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "file-embed_0_0_13_0" = callPackage
+    ({ mkDerivation, base, bytestring, directory, filepath
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "file-embed";
+       version = "0.0.13.0";
+       sha256 = "1sp1qq1ph2gr5a8ismn7n9vijnfwjyh38iqn338wa8mxn2mnhc6i";
+       libraryHaskellDepends = [
+         base bytestring directory filepath template-haskell
+       ];
+       testHaskellDepends = [ base filepath ];
+       description = "Use Template Haskell to embed file contents directly";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "file-embed-lzma" = callPackage
     ({ mkDerivation, base, base-compat, bytestring, directory, filepath
      , lzma, template-haskell, text, th-lift-instances, transformers
@@ -87742,8 +89428,8 @@ self: {
     ({ mkDerivation, async, base, process, unix }:
      mkDerivation {
        pname = "filelock";
-       version = "0.1.1.4";
-       sha256 = "189n4pvq7f4d235smg2iqs2m5rqmnjdxflifq0mnb2qdbc4jjznr";
+       version = "0.1.1.5";
+       sha256 = "06a44i7a956d7xkk2na4090xj2a7b7a228pk4spmccs4x20ymssh";
        libraryHaskellDepends = [ base unix ];
        testHaskellDepends = [ async base process ];
        description = "Portable interface to file locking (flock / LockFileEx)";
@@ -87822,6 +89508,8 @@ self: {
        ];
        description = "Reversable and secure encoding of object ids as filepaths";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "filepath-io-access" = callPackage
@@ -87892,9 +89580,8 @@ self: {
      }:
      mkDerivation {
        pname = "filestore";
-       version = "0.6.4";
-       sha256 = "1z967kviqsy3ma8xdfffx864f7ji6nsrbd5riis0nasm1bbwm8rr";
-       enableSeparateDataOutput = true;
+       version = "0.6.5";
+       sha256 = "0z29273vdqjsrj4vby0gp7d12wg9nkzq9zgqg18db0p5948jw1dh";
        libraryHaskellDepends = [
          base bytestring containers Diff directory filepath old-locale
          parsec process split time utf8-string xml
@@ -88023,16 +89710,31 @@ self: {
      }) {};
 
   "filtrable" = callPackage
-    ({ mkDerivation, base }:
+    ({ mkDerivation, base, transformers }:
      mkDerivation {
        pname = "filtrable";
-       version = "0.1.3.0";
-       sha256 = "1viazb01xnw7siwrsynaxqcjrgc96gqfgmj4vxl5r3lbnb34wdl0";
-       libraryHaskellDepends = [ base ];
+       version = "0.1.4.0";
+       sha256 = "11jas9w611pslc3hanybsdwrh4292zvgigng8y4cv7gm0j908xng";
+       libraryHaskellDepends = [ base transformers ];
        description = "Class of filtrable containers";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "filtrable_0_1_6_0" = callPackage
+    ({ mkDerivation, base, containers, smallcheck, tasty
+     , tasty-smallcheck, transformers
+     }:
+     mkDerivation {
+       pname = "filtrable";
+       version = "0.1.6.0";
+       sha256 = "058jl7wjaxzvcayc9qzpikxvi9x42civ4sb02jh66rcvpndbfh5y";
+       libraryHaskellDepends = [ base containers transformers ];
+       testHaskellDepends = [ base smallcheck tasty tasty-smallcheck ];
+       description = "Class of filtrable containers";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "fin" = callPackage
     ({ mkDerivation, base, dec, deepseq, hashable, inspection-testing
      , QuickCheck, tagged
@@ -88238,8 +89940,6 @@ self: {
        ];
        description = "A better, more type-safe Enum";
        license = stdenv.lib.licenses.gpl3Plus;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "finitary-derive" = callPackage
@@ -88267,6 +89967,26 @@ self: {
        broken = true;
      }) {};
 
+  "finitary-optics" = callPackage
+    ({ mkDerivation, base, finitary, finite-typelits, hedgehog, hspec
+     , hspec-hedgehog, optics-core
+     }:
+     mkDerivation {
+       pname = "finitary-optics";
+       version = "1.0.0.0";
+       sha256 = "0is930yhcd1iqgbxn42ldzbh408inpsprw9psvnx61j6qm6p4cd7";
+       libraryHaskellDepends = [
+         base finitary finite-typelits optics-core
+       ];
+       testHaskellDepends = [
+         base hedgehog hspec hspec-hedgehog optics-core
+       ];
+       description = "Prisms and Isos between finitary types";
+       license = stdenv.lib.licenses.gpl3Plus;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "finite-field" = callPackage
     ({ mkDerivation, base, containers, deepseq, hashable, primes
      , QuickCheck, singletons, tasty, tasty-hunit, tasty-quickcheck
@@ -88399,18 +90119,6 @@ self: {
     ({ mkDerivation, base, doctest, Glob }:
      mkDerivation {
        pname = "first-class-families";
-       version = "0.7.0.0";
-       sha256 = "0dvlmfhnbbrr3yxq4idpipvlxda21qvayx6gk93f66jzcl5726my";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base doctest Glob ];
-       description = "First class type families";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "first-class-families_0_8_0_0" = callPackage
-    ({ mkDerivation, base, doctest, Glob }:
-     mkDerivation {
-       pname = "first-class-families";
        version = "0.8.0.0";
        sha256 = "190jl3vs7glkbm8ap90x9yzlj01yzxd818s3i0w4pz21b6d6sxav";
        revision = "1";
@@ -88419,7 +90127,6 @@ self: {
        testHaskellDepends = [ base doctest Glob ];
        description = "First class type families";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "first-class-instances" = callPackage
@@ -88477,8 +90184,8 @@ self: {
      }:
      mkDerivation {
        pname = "fishfood";
-       version = "0.0.1.9";
-       sha256 = "128m9zhn57jzz5ijkz54mlw70g0d1byp2gisw7wyrgddi0j3x3i5";
+       version = "0.0.1.11";
+       sha256 = "005jljanccyxj7j7lnkralir1lcinka5kapw0nv39pd1ibyc1nrb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -88492,6 +90199,8 @@ self: {
        ];
        description = "Calculates file-size frequency-distribution";
        license = "GPL";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "fit" = callPackage
@@ -88577,13 +90286,13 @@ self: {
      }:
      mkDerivation {
        pname = "fix-imports";
-       version = "2.2.0";
-       sha256 = "0nwl9gxaxjdvgr0ji7r0hh9z43s473rb69dgb3p8ab3kdc3mld11";
+       version = "2.3.0";
+       sha256 = "1ysz764i24l30cclw5zzwkk78di8i9qh136abwlpcxyyw4zy2n6d";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          base containers cpphs deepseq directory filepath haskell-src-exts
-         pretty process split text time uniplate
+         mtl pretty process split text time uniplate
        ];
        testHaskellDepends = [
          base containers cpphs deepseq directory filepath haskell-src-exts
@@ -88806,17 +90515,6 @@ self: {
      }) {};
 
   "fixed-vector-hetero" = callPackage
-    ({ mkDerivation, base, deepseq, fixed-vector, primitive }:
-     mkDerivation {
-       pname = "fixed-vector-hetero";
-       version = "0.5.0.0";
-       sha256 = "1446xsj030xr7zry2pqq0yxv4f0j46jmpisfmp357jb0n9l5kwm3";
-       libraryHaskellDepends = [ base deepseq fixed-vector primitive ];
-       description = "Generic heterogeneous vectors";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "fixed-vector-hetero_0_6_0_0" = callPackage
     ({ mkDerivation, base, Cabal, cabal-doctest, deepseq, doctest
      , fixed-vector, primitive
      }:
@@ -88831,7 +90529,6 @@ self: {
        testHaskellDepends = [ base doctest fixed-vector ];
        description = "Library for working with product types generically";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "fixed-width" = callPackage
@@ -89111,8 +90808,8 @@ self: {
      }:
      mkDerivation {
        pname = "flaccuraterip";
-       version = "0.3.8";
-       sha256 = "0ixk5vbnpnh3j262k5igvnglm4brypsv3b839xc51hlc29q7v9qs";
+       version = "0.3.9";
+       sha256 = "18nziy9x83x34nkfz3bzy1nmj7fxzcpxrkzp9gmb1lvgy9igrric";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -89432,6 +91129,27 @@ self: {
        license = stdenv.lib.licenses.mpl20;
      }) {};
 
+  "flink-statefulfun" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, either
+     , http-media, http-types, lens-family, mtl, proto-lens
+     , proto-lens-protobuf-types, proto-lens-protoc, proto-lens-runtime
+     , proto-lens-setup, servant, servant-server, text, wai, warp
+     }:
+     mkDerivation {
+       pname = "flink-statefulfun";
+       version = "0.2.0.0";
+       sha256 = "1h1pd9yandk1kpcmz3186306001fxjm0g9qmw8ndaq4m4fknj3q6";
+       setupHaskellDepends = [ base Cabal proto-lens-setup ];
+       libraryHaskellDepends = [
+         base bytestring containers either http-media http-types lens-family
+         mtl proto-lens proto-lens-protobuf-types proto-lens-runtime servant
+         servant-server text wai warp
+       ];
+       libraryToolDepends = [ proto-lens-protoc ];
+       description = "Flink stateful functions SDK";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
   "flip-cmd" = callPackage
     ({ mkDerivation, base, process, safe-exceptions }:
      mkDerivation {
@@ -89514,6 +91232,17 @@ self: {
        broken = true;
      }) {};
 
+  "float128" = callPackage
+    ({ mkDerivation, base, integer-gmp }:
+     mkDerivation {
+       pname = "float128";
+       version = "0.1";
+       sha256 = "0f4nrj5qy6j6d9ll22zjkbgvw2rx0x2w7nllhl929zdbmhxrjk73";
+       libraryHaskellDepends = [ base integer-gmp ];
+       description = "FFI bindings for C _Float128";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "floating-bits" = callPackage
     ({ mkDerivation, base, criterion }:
      mkDerivation {
@@ -89548,8 +91277,8 @@ self: {
        pname = "flock";
        version = "0.3.1.8";
        sha256 = "1g1gf7qnlqkl57h28nzxnbzj7v2h73czffp5y7s7jm9vbihcwd4n";
-       revision = "5";
-       editedCabalFile = "19jqvzacd1639r8c8vs2fdng188mjg8i76x0fghda71d7a2jgp97";
+       revision = "6";
+       editedCabalFile = "04cz4avwglnjgmsbkaadlfrzaadcfkcqzrbc4x9nbzi695zs8k21";
        libraryHaskellDepends = [
          base lifted-base monad-control transformers unix
        ];
@@ -89567,8 +91296,8 @@ self: {
      }:
      mkDerivation {
        pname = "floskell";
-       version = "0.10.3";
-       sha256 = "07nr7grav7z378k3v14f21kji0hrgch0q1dwc00iw93zamanda2x";
+       version = "0.10.5";
+       sha256 = "0cm12krcri332yw0zb3k4kakpq30xlfxkyc8i67bniwm7h973hnh";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -89591,23 +91320,9 @@ self: {
        ];
        description = "A flexible Haskell source code pretty printer";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "flow" = callPackage
-    ({ mkDerivation, base, doctest, QuickCheck, template-haskell }:
-     mkDerivation {
-       pname = "flow";
-       version = "1.0.20";
-       sha256 = "1pxb87rmw1ryls8k4g82wy1gg6wxw5n4s4nyn248gnam1xgls9li";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base doctest QuickCheck template-haskell ];
-       description = "Write more understandable Haskell";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "flow_1_0_21" = callPackage
     ({ mkDerivation, base, HUnit }:
      mkDerivation {
        pname = "flow";
@@ -89617,7 +91332,6 @@ self: {
        testHaskellDepends = [ base HUnit ];
        description = "Write more understandable Haskell";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "flow-er" = callPackage
@@ -89635,17 +91349,18 @@ self: {
      }) {};
 
   "flow2dot" = callPackage
-    ({ mkDerivation, base, containers, mtl, parsec, QuickCheck
-     , utf8-string
+    ({ mkDerivation, base, containers, dotgen, mtl, parsec, QuickCheck
      }:
      mkDerivation {
        pname = "flow2dot";
-       version = "0.9.0.3";
-       sha256 = "1pf60wpwsvxxgqkz3zh2qlcyz9pyd8axi41y5y6pn77n9x8p2613";
+       version = "0.9.2";
+       sha256 = "07bnyzcaf5jlhkrsqw6y880z9x5p6y8kh2nfwz4xds9cgk61r18j";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [
-         base containers mtl parsec QuickCheck utf8-string
+       libraryHaskellDepends = [ base containers dotgen mtl parsec ];
+       executableHaskellDepends = [ base containers dotgen mtl parsec ];
+       testHaskellDepends = [
+         base containers dotgen mtl parsec QuickCheck
        ];
        description = "Library and binary to generate sequence/flow diagrams from plain text source";
        license = stdenv.lib.licenses.bsd3;
@@ -90129,8 +91844,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "fmlist";
-       version = "0.9.3";
-       sha256 = "1w9nhm2zybdx4c1lalkajwqr8wcs731lfjld2r8gknd7y96x8pwf";
+       version = "0.9.4";
+       sha256 = "19h95ph7lh7llw6j1v1rssrdi5k7xw8x0iac9rgzss371s2w3g9d";
        libraryHaskellDepends = [ base ];
        description = "FoldMap lists";
        license = stdenv.lib.licenses.bsd3;
@@ -90293,8 +92008,8 @@ self: {
      }:
      mkDerivation {
        pname = "fold-debounce-conduit";
-       version = "0.2.0.4";
-       sha256 = "0mhnc5j8jnmf4rnb5cj75jlyj9xc4gj3dawywcw26zz189j540fj";
+       version = "0.2.0.5";
+       sha256 = "1qvr3wqqv2lvs22ddmalavggp8a4a50d056a50dsz6lcml1k6hdg";
        libraryHaskellDepends = [
          base conduit fold-debounce resourcet stm transformers
          transformers-base
@@ -90338,6 +92053,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "foldl_1_4_8" = callPackage
+    ({ mkDerivation, base, bytestring, comonad, containers
+     , contravariant, criterion, doctest, hashable, mwc-random
+     , primitive, profunctors, semigroupoids, text, transformers
+     , unordered-containers, vector, vector-builder
+     }:
+     mkDerivation {
+       pname = "foldl";
+       version = "1.4.8";
+       sha256 = "1jlrcj9nq8xwlrsny6fzfizai3ilc1zbw38abgf35ryl23r5j6pd";
+       revision = "1";
+       editedCabalFile = "09jz01w3brgd8fwya56qgg0riv9vxzc0r9lkkhkx54nflari2rig";
+       libraryHaskellDepends = [
+         base bytestring comonad containers contravariant hashable
+         mwc-random primitive profunctors semigroupoids text transformers
+         unordered-containers vector vector-builder
+       ];
+       testHaskellDepends = [ base doctest ];
+       benchmarkHaskellDepends = [ base criterion ];
+       description = "Composable, streaming, and efficient left folds";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "foldl-exceptions" = callPackage
     ({ mkDerivation, base, doctest, foldl, safe-exceptions }:
      mkDerivation {
@@ -91280,20 +93019,23 @@ self: {
      }) {};
 
   "fourmolu" = callPackage
-    ({ mkDerivation, base, bytestring, containers, dlist, exceptions
-     , filepath, ghc-lib-parser, gitrev, hspec, hspec-discover, mtl
-     , optparse-applicative, path, path-io, syb, text
+    ({ mkDerivation, aeson, base, bytestring, containers, directory
+     , dlist, exceptions, filepath, ghc-lib-parser, gitrev, hspec
+     , hspec-discover, mtl, optparse-applicative, path, path-io, syb
+     , text, yaml
      }:
      mkDerivation {
        pname = "fourmolu";
-       version = "0.0.6.0";
-       sha256 = "16i5wlwbvk9868nscj1xg5n8j3z56jbv9q4nipcwmzm76i19iqwf";
+       version = "0.1.0.0";
+       sha256 = "1kc7hhaqn7sghbcfj9xg8r1pvrmhawy9y2rhizfxzm7z034bgjyk";
+       revision = "1";
+       editedCabalFile = "1j6g6rzanjbdqf9svhjx0bbsy504xyc6vcn1ac3vgn4vp367wz0y";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         base bytestring containers dlist exceptions ghc-lib-parser mtl syb
-         text
+         aeson base bytestring containers directory dlist exceptions
+         filepath ghc-lib-parser mtl syb text yaml
        ];
        executableHaskellDepends = [
          base ghc-lib-parser gitrev optparse-applicative text
@@ -91655,6 +93397,8 @@ self: {
        pname = "free";
        version = "5.1.3";
        sha256 = "0b9f9jrfgkq13333px6p1faxpcypqvzi0m9dnbj2rm8s79pdcw1c";
+       revision = "1";
+       editedCabalFile = "0w0bxkdsspw1blhr01bb9n98wlmqpgjpdbbp2f50qmhapav2fk30";
        libraryHaskellDepends = [
          base comonad containers distributive exceptions mtl profunctors
          semigroupoids template-haskell transformers transformers-base
@@ -91669,8 +93413,8 @@ self: {
      }:
      mkDerivation {
        pname = "free-algebras";
-       version = "0.0.8.1";
-       sha256 = "07p1nmg88b6nvqi33q80vb2aj6svx9r33ax85ry6d7adkg83s4jz";
+       version = "0.1.0.0";
+       sha256 = "0s5gj52b3s1hg92cs12qk7y2zgsl546livdzps2qm4fmjc394qj3";
        libraryHaskellDepends = [
          base containers data-fix dlist free groups kan-extensions mtl
          transformers
@@ -91687,23 +93431,11 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "free-categories";
-       version = "0.1.0.0";
-       sha256 = "0lzal6vbh1zjcag4dwmhnsv4j66n00gkl0cmf0pssdjwwywxgpwx";
-       libraryHaskellDepends = [ base ];
-       description = "free categories";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "free-categories_0_2_0_0" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "free-categories";
        version = "0.2.0.0";
        sha256 = "0932bvy2cgmancjy4invm9m16w27kawlfmd3zy9xi8sl9a62rp38";
        libraryHaskellDepends = [ base ];
        description = "free categories";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "free-category" = callPackage
@@ -91712,8 +93444,8 @@ self: {
      }:
      mkDerivation {
        pname = "free-category";
-       version = "0.0.4.1";
-       sha256 = "1d7r9mcq4163g665bgzwxhvrk2iiypgss8s3j2lmqccb461s7a4j";
+       version = "0.0.4.2";
+       sha256 = "1nnf7y0m5pv36ka54vmfbhj6v0354gk36r539ss4zzp6jc8mzvdl";
        libraryHaskellDepends = [ base free-algebras ];
        testHaskellDepends = [
          base free-algebras QuickCheck tasty tasty-quickcheck
@@ -91751,16 +93483,17 @@ self: {
      }) {};
 
   "free-functors" = callPackage
-    ({ mkDerivation, algebraic-classes, base, bifunctors, comonad
-     , contravariant, profunctors, template-haskell, transformers
+    ({ mkDerivation, base, bifunctors, comonad, contravariant
+     , derive-lifted-instances, profunctors, template-haskell
+     , transformers
      }:
      mkDerivation {
        pname = "free-functors";
-       version = "1.0.1";
-       sha256 = "1y1cmm4z5s5a1ivs30vwb2rbgc9q24y6z2a9in3azwpgfb1x4fw0";
+       version = "1.1.2";
+       sha256 = "1qkn7irp1zids0dvi7xn17kk8wmwkqnys78qy5n27dhsgi2l1avs";
        libraryHaskellDepends = [
-         algebraic-classes base bifunctors comonad contravariant profunctors
-         template-haskell transformers
+         base bifunctors comonad contravariant derive-lifted-instances
+         profunctors template-haskell transformers
        ];
        description = "Free functors, adjoint to functors that forget class constraints";
        license = stdenv.lib.licenses.bsd3;
@@ -92111,6 +93844,17 @@ self: {
        broken = true;
      }) {};
 
+  "freer-indexed" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "freer-indexed";
+       version = "0.1.0.0";
+       sha256 = "14d5683z37xyahrw6dbcv516lmc8vasl1bc6zvdy3wr4y4g1qyzd";
+       libraryHaskellDepends = [ base ];
+       description = "Freer indexed monad for type-level resource-aware effectual operations";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "freer-simple" = callPackage
     ({ mkDerivation, base, criterion, extensible-effects, free, mtl
      , natural-transformation, QuickCheck, tasty, tasty-hunit
@@ -92275,19 +94019,6 @@ self: {
      }) {};
 
   "freetype2" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "freetype2";
-       version = "0.1.2";
-       sha256 = "00p3zb5iip9ggkapw4jkmpypnl8s7l6q9mrl66q07schi0lq0zji";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base ];
-       description = "Haskell binding for FreeType 2 library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "freetype2_0_2_0" = callPackage
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
        pname = "freetype2";
@@ -92299,7 +94030,6 @@ self: {
        testHaskellDepends = [ base template-haskell ];
        description = "Haskell bindings for FreeType 2 library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "french-cards" = callPackage
@@ -92371,8 +94101,8 @@ self: {
        pname = "friday";
        version = "0.2.3.1";
        sha256 = "04wn36249b7mddhp6r8zycdxixm0ryj3jrc6qjjvl5k138n4j9q8";
-       revision = "1";
-       editedCabalFile = "0n1f4plvrmad6gm8dbsi6g5ghahdwwy2fhgippmnp1ixb65x7d58";
+       revision = "2";
+       editedCabalFile = "1iy2ywz42mwwr2iy7fzfdif8f0vbyl3w9hgy4rkynsmmqc8mmxba";
        libraryHaskellDepends = [
          base containers convertible deepseq primitive ratio-int
          transformers vector
@@ -92911,8 +94641,8 @@ self: {
      }:
      mkDerivation {
        pname = "ftp-client";
-       version = "0.5.1.3";
-       sha256 = "1alk8l8i5izdy5rk5qnig4wn0wd08pgnaixqq874mxwxhpak4c3f";
+       version = "0.5.1.4";
+       sha256 = "0c2xn2q24imrfgsx4zxzi24ciwkrly6n47lc5k5406j5b4znn5lf";
        libraryHaskellDepends = [
          attoparsec base bytestring connection containers exceptions network
          transformers
@@ -93377,25 +95107,27 @@ self: {
      }) {};
 
   "functor-combinators" = callPackage
-    ({ mkDerivation, base, bifunctors, comonad, constraints, containers
-     , dependent-sum, deriving-compat, free, hedgehog, kan-extensions
-     , mmorph, mtl, natural-transformation, nonempty-containers, pointed
-     , profunctors, semigroupoids, tagged, tasty, tasty-hedgehog, these
+    ({ mkDerivation, assoc, base, bifunctors, comonad, constraints
+     , containers, contravariant, dependent-sum, deriving-compat, free
+     , hedgehog, invariant, kan-extensions, mmorph, mtl
+     , natural-transformation, nonempty-containers, pointed, profunctors
+     , semigroupoids, sop-core, tagged, tasty, tasty-hedgehog, these
      , transformers, trivial-constraint, vinyl
      }:
      mkDerivation {
        pname = "functor-combinators";
-       version = "0.2.0.0";
-       sha256 = "0z8r9z08cayyv2ag748aa8550sd2mnj2zagdkf5i5yn3lvhd0k6j";
+       version = "0.3.6.0";
+       sha256 = "0idf896xadp5v5k4m0s087xvvs9008sxw61djqb9v0x08rs5zy8f";
        libraryHaskellDepends = [
-         base bifunctors comonad constraints containers deriving-compat free
-         kan-extensions mmorph mtl natural-transformation
-         nonempty-containers pointed profunctors semigroupoids tagged these
-         transformers trivial-constraint vinyl
+         assoc base bifunctors comonad constraints containers contravariant
+         deriving-compat free invariant kan-extensions mmorph mtl
+         natural-transformation nonempty-containers pointed profunctors
+         semigroupoids sop-core tagged these transformers trivial-constraint
+         vinyl
        ];
        testHaskellDepends = [
          base bifunctors dependent-sum free hedgehog nonempty-containers
-         semigroupoids tasty tasty-hedgehog transformers
+         semigroupoids tasty tasty-hedgehog transformers trivial-constraint
        ];
        description = "Tools for functor combinator-based program design";
        license = stdenv.lib.licenses.bsd3;
@@ -93658,8 +95390,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "funspection";
-       version = "1.0.0.0";
-       sha256 = "0jbzvn06d5kfyiav3fjd6k8sk8dy00pwk2g711nrbmlrljbw7f39";
+       version = "1.0.0.1";
+       sha256 = "0jf8yhk45n06avl9avgmawvazsz585i7jppvcds6pjd8pqdb2qk4";
        libraryHaskellDepends = [ base ];
        description = "Type-level function utilities";
        license = stdenv.lib.licenses.bsd3;
@@ -93669,16 +95401,16 @@ self: {
 
   "fused-effects" = callPackage
     ({ mkDerivation, base, containers, gauge, hedgehog, hedgehog-fn
-     , inspection-testing, markdown-unlit, mtl, tasty, tasty-hedgehog
+     , inspection-testing, markdown-unlit, tasty, tasty-hedgehog
      , tasty-hunit, transformers
      }:
      mkDerivation {
        pname = "fused-effects";
-       version = "1.0.2.0";
-       sha256 = "0dy8m54fm3gndj0bda0savl80w7drj8h113bhbi2439wl3x02y6x";
+       version = "1.0.2.2";
+       sha256 = "1n9nal5kz2gpi58jc7xspj100ibn582f8vgndc9ra84fbp380yy2";
        libraryHaskellDepends = [ base transformers ];
        testHaskellDepends = [
-         base containers hedgehog hedgehog-fn inspection-testing mtl tasty
+         base containers hedgehog hedgehog-fn inspection-testing tasty
          tasty-hedgehog tasty-hunit transformers
        ];
        testToolDepends = [ markdown-unlit ];
@@ -93687,14 +95419,35 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "fused-effects_1_1_0_0" = callPackage
+    ({ mkDerivation, base, containers, gauge, hedgehog, hedgehog-fn
+     , inspection-testing, markdown-unlit, tasty, tasty-hedgehog
+     , tasty-hunit, transformers
+     }:
+     mkDerivation {
+       pname = "fused-effects";
+       version = "1.1.0.0";
+       sha256 = "0ns1h03skgywfm3i5748q9hxvla5769p7hb72zw8yhdfpgwh9rlx";
+       libraryHaskellDepends = [ base transformers ];
+       testHaskellDepends = [
+         base containers hedgehog hedgehog-fn inspection-testing tasty
+         tasty-hedgehog tasty-hunit transformers
+       ];
+       testToolDepends = [ markdown-unlit ];
+       benchmarkHaskellDepends = [ base gauge transformers ];
+       description = "A fast, flexible, fused effect system";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "fused-effects-exceptions" = callPackage
     ({ mkDerivation, base, fused-effects, markdown-unlit, tasty
      , tasty-hunit, transformers
      }:
      mkDerivation {
        pname = "fused-effects-exceptions";
-       version = "1.0.0.0";
-       sha256 = "13ki1fzjsqd762bbc5ia9k4agsa634lflidnzs6lahxmar1sqmid";
+       version = "1.1.0.0";
+       sha256 = "0r5xfv5cknxz21viqcpa8xjd57sbadp2vf7nk7z9j1sd5faprmji";
        libraryHaskellDepends = [ base fused-effects transformers ];
        testHaskellDepends = [
          base fused-effects tasty tasty-hunit transformers
@@ -93702,33 +95455,46 @@ self: {
        testToolDepends = [ markdown-unlit ];
        description = "Handle exceptions thrown in IO with fused-effects";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "fused-effects-lens" = callPackage
     ({ mkDerivation, base, fused-effects, hspec, microlens }:
      mkDerivation {
        pname = "fused-effects-lens";
-       version = "1.2.0.0";
-       sha256 = "1g9shz0fi0maflgdj9lng27424jm3swgl6jl97d3v0k8syybdha6";
+       version = "1.2.0.1";
+       sha256 = "12bm84bfvvjw1rpmjbk445gd7mx42crsp9ba0jbgiyb8ryhzl9lx";
        libraryHaskellDepends = [ base fused-effects microlens ];
        testHaskellDepends = [ base fused-effects hspec microlens ];
        description = "Monadic lens combinators for fused-effects";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "fused-effects-optics" = callPackage
+    ({ mkDerivation, base, fused-effects, optics-core }:
+     mkDerivation {
+       pname = "fused-effects-optics";
+       version = "0.1.0.0";
+       sha256 = "16q5b7b46k4hi8c46kq57dxidh2djzksc7s8jb65k341bbvlsy1w";
+       libraryHaskellDepends = [ base fused-effects optics-core ];
+       description = "Bridge between the optics and fused-effects ecosystems";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "fused-effects-random" = callPackage
-    ({ mkDerivation, base, fused-effects, MonadRandom, random
-     , transformers
-     }:
+    ({ mkDerivation, base, fused-effects, random, transformers }:
      mkDerivation {
        pname = "fused-effects-random";
-       version = "1.0.0.0";
-       sha256 = "14s65ndb5ik47wasn62pd0m5ls02a0v2vinv69jz9z630q9y7ay4";
-       libraryHaskellDepends = [
-         base fused-effects MonadRandom random transformers
-       ];
+       version = "1.1.0.0";
+       sha256 = "0krcyx4hhvkxh0rbfwxb52xgb4rl45dflyx3aw8xryp6wn9my770";
+       libraryHaskellDepends = [ base fused-effects random transformers ];
        description = "Random number generation for fused-effects";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "fused-effects-readline" = callPackage
@@ -93738,8 +95504,8 @@ self: {
      }:
      mkDerivation {
        pname = "fused-effects-readline";
-       version = "0.0.0.0";
-       sha256 = "089f6b3y48ymhd45x1rxmimrwjygkjk3ykhz6nx7cf235d3cg83l";
+       version = "0.1.0.0";
+       sha256 = "1s9s5dbj0gs4y0cngqb7ynykx840n065bixx1c22xz1i481bf52m";
        libraryHaskellDepends = [
          base directory filepath fused-effects haskeline prettyprinter
          prettyprinter-ansi-terminal terminal-size transformers
@@ -93782,6 +95548,24 @@ self: {
        broken = true;
      }) {};
 
+  "fused-effects-th" = callPackage
+    ({ mkDerivation, base, fused-effects, tasty, tasty-hunit
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "fused-effects-th";
+       version = "0.1.0.2";
+       sha256 = "0p1fiy34388154cmj849x5pvrbz3zmrl3dj525wrkj0c10gi234i";
+       libraryHaskellDepends = [ base fused-effects template-haskell ];
+       testHaskellDepends = [
+         base fused-effects tasty tasty-hunit template-haskell
+       ];
+       description = "Template Haskell helpers for fused-effects";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "fusion" = callPackage
     ({ mkDerivation, base, directory, doctest, filepath, pipes-safe
      , transformers, void
@@ -93833,16 +95617,16 @@ self: {
      , directory-tree, dlist, file-embed, filepath, free, gitrev, happy
      , haskeline, language-c-quote, mainland-pretty, megaparsec, mtl
      , neat-interpolation, parallel, parser-combinators, pcg-random
-     , process, process-extras, QuickCheck, regex-tdfa, srcloc, tasty
-     , tasty-hunit, tasty-quickcheck, template-haskell, temporary
-     , terminal-size, text, time, transformers, unordered-containers
-     , utf8-string, vector, vector-binary-instances, versions
-     , zip-archive, zlib
+     , process, process-extras, QuickCheck, regex-tdfa, sexp-grammar
+     , srcloc, tasty, tasty-hunit, tasty-quickcheck, template-haskell
+     , temporary, terminal-size, text, time, transformers
+     , unordered-containers, utf8-string, vector
+     , vector-binary-instances, versions, zip-archive, zlib
      }:
      mkDerivation {
        pname = "futhark";
-       version = "0.15.8";
-       sha256 = "1pdfdfgimvlz741jxyzscj99xjw888mzbar7rjy1zlfqbmac6r9f";
+       version = "0.17.2";
+       sha256 = "16h0s6m6mnzxfbijd979zqbbrdma6gpm7yvg4lxnl5xcw26k57w4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -93850,21 +95634,35 @@ self: {
          cmark-gfm containers directory directory-tree dlist file-embed
          filepath free gitrev haskeline language-c-quote mainland-pretty
          megaparsec mtl neat-interpolation parallel pcg-random process
-         process-extras regex-tdfa srcloc template-haskell temporary
-         terminal-size text time transformers unordered-containers
+         process-extras regex-tdfa sexp-grammar srcloc template-haskell
+         temporary terminal-size text time transformers unordered-containers
          utf8-string vector vector-binary-instances versions zip-archive
          zlib
        ];
        libraryToolDepends = [ alex happy ];
        executableHaskellDepends = [ base text ];
        testHaskellDepends = [
-         base containers megaparsec mtl parser-combinators QuickCheck tasty
-         tasty-hunit tasty-quickcheck text
+         base containers megaparsec mtl parser-combinators QuickCheck
+         sexp-grammar tasty tasty-hunit tasty-quickcheck text
        ];
        description = "An optimising compiler for a functional, array-oriented language";
        license = stdenv.lib.licenses.isc;
      }) {};
 
+  "futhask" = callPackage
+    ({ mkDerivation, base, directory, raw-strings-qq, split }:
+     mkDerivation {
+       pname = "futhask";
+       version = "0.1.0";
+       sha256 = "11cgnalnywm0xrjhzygd9vvff8yd46s886ljvdbmpl01py97kpwx";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base directory raw-strings-qq split ];
+       executableHaskellDepends = [ base directory raw-strings-qq split ];
+       description = "Generate Haskell wrappers for Futhark libraries";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "futun" = callPackage
     ({ mkDerivation, base, bytestring, network, unix }:
      mkDerivation {
@@ -93959,14 +95757,14 @@ self: {
 
   "fuzzy-parse" = callPackage
     ({ mkDerivation, attoparsec, base, containers, hspec
-     , hspec-discover, interpolatedstring-perl6, mtl, text, time
+     , hspec-discover, interpolatedstring-perl6, mtl, safe, text, time
      }:
      mkDerivation {
        pname = "fuzzy-parse";
-       version = "0.1.0.0";
-       sha256 = "0sy5006m6ylvf01b8bnimql6ragmkdigcgiylxdm6y40a7wz34km";
+       version = "0.1.2.0";
+       sha256 = "0mf0bbs1vcxf6vf56n8r908c8jf6f11fyc86mk74b8dgqwjn7xfb";
        libraryHaskellDepends = [
-         attoparsec base containers mtl text time
+         attoparsec base containers mtl safe text time
        ];
        testHaskellDepends = [
          base hspec hspec-discover interpolatedstring-perl6 text
@@ -94623,31 +96421,33 @@ self: {
      }) {};
 
   "gcodehs" = callPackage
-    ({ mkDerivation, ansi-wl-pprint, array, attoparsec, base
-     , bytestring, containers, double-conversion, mtl
+    ({ mkDerivation, ansi-wl-pprint, attoparsec, base, bytestring
+     , containers, double-conversion, hspec, hspec-discover
      , optparse-applicative, pipes, pipes-attoparsec, pipes-bytestring
-     , pipes-parse, pipes-safe, pipes-text, text, vty
+     , pipes-parse, pipes-safe, template-haskell, text, transformers
      }:
      mkDerivation {
        pname = "gcodehs";
-       version = "0.1.1.0";
-       sha256 = "1vlq8r4gf43bxly20l3aimg9p81rf64g35bngmvbkx7l218yvcjn";
+       version = "0.1.2.0";
+       sha256 = "09200kd2li6rlb7anvda5j2yj3ykr4lbm6a8yd887zz7j2j0hgyd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         ansi-wl-pprint array attoparsec base bytestring containers
-         double-conversion mtl pipes pipes-attoparsec pipes-bytestring text
-         vty
+         ansi-wl-pprint attoparsec base bytestring containers
+         double-conversion pipes pipes-attoparsec pipes-bytestring
+         pipes-parse pipes-safe template-haskell text transformers
        ];
        executableHaskellDepends = [
-         attoparsec base bytestring double-conversion optparse-applicative
-         pipes pipes-attoparsec pipes-bytestring pipes-parse pipes-safe
-         pipes-text text
+         attoparsec base bytestring containers double-conversion
+         optparse-applicative pipes pipes-safe text transformers
+       ];
+       testHaskellDepends = [
+         ansi-wl-pprint attoparsec base bytestring hspec hspec-discover text
        ];
+       testToolDepends = [ hspec-discover ];
        description = "GCode processor";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
+       maintainers = with stdenv.lib.maintainers; [ sorki ];
      }) {};
 
   "gconf" = callPackage
@@ -95026,6 +96826,60 @@ self: {
        broken = true;
      }) {};
 
+  "gemini-router" = callPackage
+    ({ mkDerivation, base, gemini-server, network-uri, transformers }:
+     mkDerivation {
+       pname = "gemini-router";
+       version = "0.1.0.0";
+       sha256 = "1k1fa4vi93ijj8yf1sfjgmy5kibs0z77z994pvzs1bm8sx73h8kr";
+       revision = "1";
+       editedCabalFile = "1pb52h8md6g422y5rj7nyy1mkgxccggfal27i42c3qsn8x9frrpz";
+       libraryHaskellDepends = [
+         base gemini-server network-uri transformers
+       ];
+       description = "A simple Happstack-style Gemini router";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "gemini-server" = callPackage
+    ({ mkDerivation, base, bytestring, hslogger, network, network-run
+     , network-uri, text, utf8-string
+     }:
+     mkDerivation {
+       pname = "gemini-server";
+       version = "0.1.0.0";
+       sha256 = "0m98dc66469gbnsra8sp0clrlbyzn817vnd7aini576g5gv4sxr5";
+       revision = "1";
+       editedCabalFile = "091wv6ar78dhhz1y6rknslxc2wh020b50n38928abl0a939gwvh9";
+       libraryHaskellDepends = [
+         base bytestring hslogger network network-run network-uri text
+         utf8-string
+       ];
+       description = "A lightweight server for the Gemini protocol";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "gemini-textboard" = callPackage
+    ({ mkDerivation, base, cache, clock, gemini-router, gemini-server
+     , language-gemini, network-uri, nonce, sqlite-simple, text, time
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gemini-textboard";
+       version = "0.1.0.0";
+       sha256 = "1z8nkrkar4das4kpgsg03hsgg3i5y2639h7sik8cjdvyvwi8dpsn";
+       revision = "1";
+       editedCabalFile = "1h1fxigslzpbsjskrdaqa3gd063r4c7z6vvwaa6dk5d3mf67dbwq";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base cache clock gemini-router gemini-server language-gemini
+         network-uri nonce sqlite-simple text time transformers
+       ];
+       description = "A barebones textboard for the Gemini protocol";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "gemstone" = callPackage
     ({ mkDerivation, array, base, bitmap, bitmap-opengl, containers
      , FTGL, lens, linear, OpenGL, random, SDL, SDL-image, stb-image
@@ -95300,39 +97154,45 @@ self: {
 
   "generic-data" = callPackage
     ({ mkDerivation, base, base-orphans, contravariant, criterion
-     , deepseq, generic-lens, one-liner, show-combinators, tasty
-     , tasty-hunit
+     , deepseq, doctest, generic-lens, ghc-boot-th, Glob, one-liner
+     , QuickCheck, show-combinators, tasty, tasty-hunit
      }:
      mkDerivation {
        pname = "generic-data";
-       version = "0.7.0.0";
-       sha256 = "156d8zx425bpghp903260x1fdgnvwkyd7483mdjdg5l54ff9via8";
+       version = "0.8.3.0";
+       sha256 = "090qwd898sacn0d4ryfhbx0jdcvhy84df5f10929zng7swh88hk7";
        libraryHaskellDepends = [
-         base base-orphans contravariant show-combinators
+         base base-orphans contravariant ghc-boot-th show-combinators
        ];
        testHaskellDepends = [
-         base generic-lens one-liner tasty tasty-hunit
+         base doctest generic-lens Glob one-liner QuickCheck
+         show-combinators tasty tasty-hunit
        ];
        benchmarkHaskellDepends = [ base criterion deepseq ];
        description = "Deriving instances with GHC.Generics and related utilities";
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "generic-data_0_8_3_0" = callPackage
-    ({ mkDerivation, base, base-orphans, contravariant, criterion
-     , deepseq, doctest, generic-lens, ghc-boot-th, Glob, one-liner
+  "generic-data_0_9_1_0" = callPackage
+    ({ mkDerivation, ap-normalize, base, base-orphans, Cabal
+     , cabal-doctest, contravariant, criterion, deepseq, doctest
+     , generic-lens, ghc-boot-th, inspection-testing, one-liner
      , QuickCheck, show-combinators, tasty, tasty-hunit
+     , template-haskell, unordered-containers
      }:
      mkDerivation {
        pname = "generic-data";
-       version = "0.8.3.0";
-       sha256 = "090qwd898sacn0d4ryfhbx0jdcvhy84df5f10929zng7swh88hk7";
+       version = "0.9.1.0";
+       sha256 = "0p58z70wp3vapxrwg7hkr5n6px7hws9398v9shc08c2aigq36kqa";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
-         base base-orphans contravariant ghc-boot-th show-combinators
+         ap-normalize base base-orphans contravariant ghc-boot-th
+         show-combinators
        ];
        testHaskellDepends = [
-         base doctest generic-lens Glob one-liner QuickCheck
-         show-combinators tasty tasty-hunit
+         base doctest generic-lens inspection-testing one-liner QuickCheck
+         show-combinators tasty tasty-hunit template-haskell
+         unordered-containers
        ];
        benchmarkHaskellDepends = [ base criterion deepseq ];
        description = "Deriving instances with GHC.Generics and related utilities";
@@ -95341,15 +97201,17 @@ self: {
      }) {};
 
   "generic-data-surgery" = callPackage
-    ({ mkDerivation, base, first-class-families, generic-data, tasty
-     , tasty-hunit
+    ({ mkDerivation, base, first-class-families, generic-data
+     , show-combinators, tasty, tasty-hunit
      }:
      mkDerivation {
        pname = "generic-data-surgery";
-       version = "0.2.1.0";
-       sha256 = "0mjx8yi4f1wvf5w2wp5vzzrh3z5n6900qsp2lbhd2xzzq4zlvzy7";
+       version = "0.3.0.0";
+       sha256 = "1dg9mg10g0abs21wksplnaqgig42jb6zvk7xqwj2mkl5yln3h9is";
        libraryHaskellDepends = [ base first-class-families generic-data ];
-       testHaskellDepends = [ base generic-data tasty tasty-hunit ];
+       testHaskellDepends = [
+         base generic-data show-combinators tasty tasty-hunit
+       ];
        description = "Surgery for generic data types";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -95423,26 +97285,19 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "generic-lens" = callPackage
-    ({ mkDerivation, base, criterion, deepseq, doctest, HUnit
-     , inspection-testing, lens, profunctors, QuickCheck, tagged, text
-     }:
+  "generic-functor" = callPackage
+    ({ mkDerivation, base }:
      mkDerivation {
-       pname = "generic-lens";
-       version = "1.2.0.1";
-       sha256 = "0dl7xrrrrbcsz6m69liiz6r8jaa7yi1h8ppgxj94r2zi7pjmwvwf";
-       libraryHaskellDepends = [ base profunctors tagged text ];
-       testHaskellDepends = [
-         base doctest HUnit inspection-testing lens profunctors
-       ];
-       benchmarkHaskellDepends = [
-         base criterion deepseq lens QuickCheck
-       ];
-       description = "Generically derive traversals, lenses and prisms";
-       license = stdenv.lib.licenses.bsd3;
+       pname = "generic-functor";
+       version = "0.1.0.0";
+       sha256 = "02anlx3l0zn4hx9pckpdpp93yp1xyqcafpy6rk7s1zpv7nqk12z2";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       description = "Deriving generalized functors with GHC.Generics";
+       license = stdenv.lib.licenses.mit;
      }) {};
 
-  "generic-lens_2_0_0_0" = callPackage
+  "generic-lens" = callPackage
     ({ mkDerivation, base, doctest, generic-lens-core, HUnit
      , inspection-testing, lens, profunctors, text
      }:
@@ -95458,7 +97313,6 @@ self: {
        ];
        description = "Generically derive traversals, lenses and prisms";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "generic-lens-core" = callPackage
@@ -95512,6 +97366,17 @@ self: {
        broken = true;
      }) {};
 
+  "generic-match" = callPackage
+    ({ mkDerivation, base, generics-sop }:
+     mkDerivation {
+       pname = "generic-match";
+       version = "0.3.0.0";
+       sha256 = "1h27gd7f0px3xgan9liqwav8xhl0smn6nhdmi7ggd18mjafa1ngv";
+       libraryHaskellDepends = [ base generics-sop ];
+       description = "First class pattern matching";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "generic-maybe" = callPackage
     ({ mkDerivation, base, bytestring, containers, criterion, deepseq
      , directory, doctest, filepath, generic-deriving, ghc-prim, hlint
@@ -95539,10 +97404,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "generic-monoid";
-       version = "0.1.0.0";
-       sha256 = "0jzhmy6vi38p3cnlvi4hw59zga239y67nszzl7zscx263wsk7q0w";
-       revision = "2";
-       editedCabalFile = "1izxgvh4x0vpbq0k41qihz2cj0cbbvzgf57niqa9zylp7baagy2s";
+       version = "0.1.0.1";
+       sha256 = "1pradfv1i2z73f3vxx78ahmfsdszcgi44kn29aww2hdgf2np5l6g";
        libraryHaskellDepends = [ base ];
        description = "Derive monoid instances for product types";
        license = stdenv.lib.licenses.bsd3;
@@ -96056,27 +97919,12 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity";
-       version = "0.10.0.2";
-       sha256 = "1k6pba9zal7385838b9w9ybhk5742jwfy8bqa921zi08mv7vgqlp";
-       libraryHaskellDepends = [ base QuickCheck random validity ];
-       testHaskellDepends = [ base hspec hspec-core QuickCheck ];
-       description = "Testing utilities for the validity library";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "genvalidity_0_11_0_0" = callPackage
-    ({ mkDerivation, base, hspec, hspec-core, QuickCheck, random
-     , validity
-     }:
-     mkDerivation {
-       pname = "genvalidity";
        version = "0.11.0.0";
        sha256 = "0kqhmgq7p94980br47jd6k9m2vjb62idx8x5hrcmybf0dakyscbl";
        libraryHaskellDepends = [ base QuickCheck random validity ];
        testHaskellDepends = [ base hspec hspec-core QuickCheck ];
        description = "Testing utilities for the validity library";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "genvalidity-aeson" = callPackage
@@ -96102,26 +97950,6 @@ self: {
      }) {};
 
   "genvalidity-bytestring" = callPackage
-    ({ mkDerivation, base, bytestring, deepseq, genvalidity
-     , genvalidity-hspec, hspec, QuickCheck, validity
-     , validity-bytestring
-     }:
-     mkDerivation {
-       pname = "genvalidity-bytestring";
-       version = "0.5.0.1";
-       sha256 = "00ps3aq4dz1id3k50kwqbkng7ygs8yb8fmz7yv9s4byrf5gh7kpq";
-       libraryHaskellDepends = [
-         base bytestring genvalidity QuickCheck validity validity-bytestring
-       ];
-       testHaskellDepends = [
-         base bytestring deepseq genvalidity genvalidity-hspec hspec
-         QuickCheck validity
-       ];
-       description = "GenValidity support for ByteString";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "genvalidity-bytestring_0_6_0_0" = callPackage
     ({ mkDerivation, base, bytestring, criterion, deepseq, genvalidity
      , genvalidity-criterion, genvalidity-hspec, hspec, QuickCheck
      , random, validity, validity-bytestring
@@ -96144,7 +97972,6 @@ self: {
        ];
        description = "GenValidity support for ByteString";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "genvalidity-containers" = callPackage
@@ -96170,24 +97997,32 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "genvalidity-criterion" = callPackage
-    ({ mkDerivation, base, criterion, deepseq, genvalidity, QuickCheck
+  "genvalidity-containers_0_9_0_0" = callPackage
+    ({ mkDerivation, base, containers, criterion, genvalidity
+     , genvalidity-criterion, genvalidity-hspec, genvalidity-property
+     , hspec, QuickCheck, validity, validity-containers
      }:
      mkDerivation {
-       pname = "genvalidity-criterion";
-       version = "0.0.0.0";
-       sha256 = "0fd2079vh0pz3qkii9x7vwslix2mkx5h41ci0bblqxdhvsvbfp9r";
+       pname = "genvalidity-containers";
+       version = "0.9.0.0";
+       sha256 = "0g9drk60pf78j7qqh01a1yjqz93rv5irwhgi27qjda6siii5r3bk";
        libraryHaskellDepends = [
-         base criterion deepseq genvalidity QuickCheck
+         base containers genvalidity QuickCheck validity validity-containers
+       ];
+       testHaskellDepends = [
+         base containers genvalidity genvalidity-hspec genvalidity-property
+         hspec QuickCheck validity validity-containers
        ];
        benchmarkHaskellDepends = [
-         base criterion genvalidity QuickCheck
+         base containers criterion genvalidity genvalidity-criterion
+         QuickCheck
        ];
-       description = "Criterion benchmarks for generators";
+       description = "GenValidity support for containers";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "genvalidity-criterion_0_2_0_0" = callPackage
+  "genvalidity-criterion" = callPackage
     ({ mkDerivation, base, criterion, deepseq, genvalidity, QuickCheck
      }:
      mkDerivation {
@@ -96202,7 +98037,6 @@ self: {
        ];
        description = "Criterion benchmarks for generators";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "genvalidity-hspec" = callPackage
@@ -96346,30 +98180,6 @@ self: {
      }) {};
 
   "genvalidity-mergeful" = callPackage
-    ({ mkDerivation, base, containers, genvalidity
-     , genvalidity-containers, genvalidity-hspec
-     , genvalidity-hspec-aeson, genvalidity-time, genvalidity-uuid
-     , hspec, mergeful, mtl, pretty-show, QuickCheck, random, time, uuid
-     }:
-     mkDerivation {
-       pname = "genvalidity-mergeful";
-       version = "0.1.0.0";
-       sha256 = "04vk1jrn69i61l445y3nyw8pklfgbfcja30ghjvcrxxdf9nlmciy";
-       libraryHaskellDepends = [
-         base containers genvalidity genvalidity-containers genvalidity-time
-         mergeful QuickCheck
-       ];
-       testHaskellDepends = [
-         base containers genvalidity-hspec genvalidity-hspec-aeson
-         genvalidity-uuid hspec mergeful mtl pretty-show QuickCheck random
-         time uuid
-       ];
-       license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "genvalidity-mergeful_0_2_0_0" = callPackage
     ({ mkDerivation, base, containers, criterion, genvalidity
      , genvalidity-containers, genvalidity-criterion, genvalidity-hspec
      , genvalidity-hspec-aeson, genvalidity-time, genvalidity-uuid
@@ -96405,32 +98215,6 @@ self: {
      }:
      mkDerivation {
        pname = "genvalidity-mergeless";
-       version = "0.1.0.0";
-       sha256 = "0bhpbfydh78ia759y9c8hbf6j656g4b6v8j9pjg8chnbx9dzgn1m";
-       libraryHaskellDepends = [
-         base containers genvalidity genvalidity-containers genvalidity-time
-         mergeless QuickCheck
-       ];
-       testHaskellDepends = [
-         base containers genvalidity-hspec genvalidity-hspec-aeson
-         genvalidity-uuid hspec mergeless mtl pretty-show QuickCheck random
-         time uuid
-       ];
-       benchmarkHaskellDepends = [
-         base criterion genvalidity-criterion mergeless
-       ];
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "genvalidity-mergeless_0_2_0_0" = callPackage
-    ({ mkDerivation, base, containers, criterion, genvalidity
-     , genvalidity-containers, genvalidity-criterion, genvalidity-hspec
-     , genvalidity-hspec-aeson, genvalidity-time, genvalidity-uuid
-     , hspec, mergeless, mtl, pretty-show, QuickCheck, random, time
-     , uuid
-     }:
-     mkDerivation {
-       pname = "genvalidity-mergeless";
        version = "0.2.0.0";
        sha256 = "02p71gnih7xcrbfkaw76jjppz19xjv41idbgwqr93lrjs2qdyj7h";
        libraryHaskellDepends = [
@@ -96446,7 +98230,6 @@ self: {
          base criterion genvalidity-criterion mergeless
        ];
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "genvalidity-path" = callPackage
@@ -97104,35 +98887,37 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "ghc-check_0_3_0_1" = callPackage
-    ({ mkDerivation, base, filepath, ghc, ghc-paths, process
-     , template-haskell, transformers
+  "ghc-check" = callPackage
+    ({ mkDerivation, base, containers, directory, filepath, ghc
+     , ghc-paths, process, safe-exceptions, template-haskell
+     , transformers
      }:
      mkDerivation {
        pname = "ghc-check";
-       version = "0.3.0.1";
-       sha256 = "180xqs4g90v9sdjb0b3baqk62gbnw1xkv76wdq5ap49q0730s3vz";
+       version = "0.5.0.1";
+       sha256 = "08z7jgp2gdf1ki69w34i87g5bhrcv2laqsjma5ki97l62bgsr808";
        libraryHaskellDepends = [
-         base filepath ghc ghc-paths process template-haskell transformers
+         base containers directory filepath ghc ghc-paths process
+         safe-exceptions template-haskell transformers
        ];
        description = "detect mismatches between compile-time and run-time versions of the ghc api";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
-  "ghc-check" = callPackage
-    ({ mkDerivation, base, containers, directory, filepath, ghc
-     , ghc-paths, process, template-haskell, transformers
+  "ghc-clippy-plugin" = callPackage
+    ({ mkDerivation, base, dhall, ghc, text, text-icu
+     , text-regex-replace
      }:
      mkDerivation {
-       pname = "ghc-check";
-       version = "0.4.0.0";
-       sha256 = "06d5z2cqfb55qh3y95hjk4l2kxfwck46aiy2bpxmzs6gnp9kqg94";
+       pname = "ghc-clippy-plugin";
+       version = "0.0.0.1";
+       sha256 = "03d49d02bpic43d83a7zrj25wsnxr3868xhh77x7a8qnd25gy5m6";
+       revision = "1";
+       editedCabalFile = "17qdn7fj2kib8dx8nwbhsjzg2h8p5az4yv284df6hsrm099lza8g";
        libraryHaskellDepends = [
-         base containers directory filepath ghc ghc-paths process
-         template-haskell transformers
+         base dhall ghc text text-icu text-regex-replace
        ];
-       description = "detect mismatches between compile-time and run-time versions of the ghc api";
+       description = "Override GHC error messages to the user's liking";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -97385,15 +99170,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "ghc-exactprint_0_6_3" = callPackage
+  "ghc-exactprint_0_6_3_2" = callPackage
     ({ mkDerivation, base, bytestring, containers, Diff, directory
      , filemanip, filepath, free, ghc, ghc-boot, ghc-paths, HUnit, mtl
      , silently, syb
      }:
      mkDerivation {
        pname = "ghc-exactprint";
-       version = "0.6.3";
-       sha256 = "0da4gkirill2rpxr9gl4cbcwpp4a16z9bdgyv5nkdps3msh93214";
+       version = "0.6.3.2";
+       sha256 = "1bzf8mafz20pn7cq2483b9w3hjrwfbb0ahbcb3y7xy5yy52qvmln";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -97413,8 +99198,8 @@ self: {
     ({ mkDerivation, base, directory, filepath, process }:
      mkDerivation {
        pname = "ghc-gc-tune";
-       version = "0.3";
-       sha256 = "0ghp3f86m91zi6kl8zq157717s2p73nwdgln4aiclq830m72ys9w";
+       version = "0.3.2";
+       sha256 = "1q77q0vavypdc9iqf1hrnxzhwj851a9s9qk646w98qkncm4ifblp";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base directory filepath process ];
@@ -97546,27 +99331,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib";
-       version = "8.8.3.20200412.1";
-       sha256 = "07xfj3p8w5964jv5py19p2pbcpbjcbwzpd4b46d43j80abzavgxg";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         array base binary bytestring containers deepseq directory filepath
-         ghc-lib-parser ghc-prim hpc pretty process time transformers unix
-       ];
-       libraryToolDepends = [ alex happy ];
-       description = "The GHC API, decoupled from GHC versions";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "ghc-lib_8_10_1_20200523" = callPackage
-    ({ mkDerivation, alex, array, base, binary, bytestring, containers
-     , deepseq, directory, filepath, ghc-lib-parser, ghc-prim, happy
-     , hpc, pretty, process, time, transformers, unix
-     }:
-     mkDerivation {
-       pname = "ghc-lib";
-       version = "8.10.1.20200523";
-       sha256 = "0qqcygmndgpmjm7hdr81bj298mc0gmnswm4i14r0fwnyc00zr4yy";
+       version = "8.10.2.20200916";
+       sha256 = "0yarxqbl7njqhfycrdz4lr6m04wqhrlsgb9vcq6gbmlizswwxr6g";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
@@ -97575,7 +99341,6 @@ self: {
        libraryToolDepends = [ alex happy ];
        description = "The GHC API, decoupled from GHC versions";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ghc-lib-parser" = callPackage
@@ -97585,8 +99350,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-lib-parser";
-       version = "8.8.3.20200412.1";
-       sha256 = "1bfyi3haq6qz9x5dbnjvf7m7wqrxqmv3i4kdivlh2v416d56apqd";
+       version = "8.10.2.20200916";
+       sha256 = "0azfy14w268by4ydaarjdw7awbd44pgqg03zykzfg7iabyzr2dfk";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers deepseq directory filepath
@@ -97597,53 +99362,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "ghc-lib-parser_8_10_1_20200523" = callPackage
-    ({ mkDerivation, alex, array, base, binary, bytestring, containers
-     , deepseq, directory, filepath, ghc-prim, happy, hpc, pretty
-     , process, time, transformers, unix
-     }:
-     mkDerivation {
-       pname = "ghc-lib-parser";
-       version = "8.10.1.20200523";
-       sha256 = "1g2jki7f1in5c2y80zhz3hxrm4c7m063slxpg1lrvqrgrlwag5cb";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         array base binary bytestring containers deepseq directory filepath
-         ghc-prim hpc pretty process time transformers unix
-       ];
-       libraryToolDepends = [ alex happy ];
-       description = "The GHC API, decoupled from GHC versions";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-     }) {};
-
   "ghc-lib-parser-ex" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, extra
-     , filepath, ghc, ghc-boot, ghc-boot-th, tasty, tasty-hunit
-     , uniplate
-     }:
-     mkDerivation {
-       pname = "ghc-lib-parser-ex";
-       version = "8.8.5.8";
-       sha256 = "1mw1ym5bn39z7lqmxnhhkfqb0kbxddabkafw025wgs54knsghvmk";
-       libraryHaskellDepends = [
-         base bytestring containers extra ghc ghc-boot ghc-boot-th uniplate
-       ];
-       testHaskellDepends = [
-         base directory extra filepath ghc ghc-boot-th tasty tasty-hunit
-       ];
-       description = "Algorithms on GHC parse trees";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "ghc-lib-parser-ex_8_10_0_13" = callPackage
-    ({ mkDerivation, base, bytestring, containers, directory, extra
      , filepath, ghc-lib-parser, tasty, tasty-hunit, uniplate
      }:
      mkDerivation {
        pname = "ghc-lib-parser-ex";
-       version = "8.10.0.13";
-       sha256 = "1prcmcmwf3ib35b5m9ff7d0yrk7xarwqzam6nvkmfa1g1lp3xnjz";
+       version = "8.10.0.16";
+       sha256 = "1kqff62ml38hxwfnfq7ni0z65b3d3l7xqa5c5lxf3kzm9h7bdwb8";
        libraryHaskellDepends = [
          base bytestring containers ghc-lib-parser uniplate
        ];
@@ -97652,7 +99378,6 @@ self: {
        ];
        description = "Algorithms on GHC parse trees";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ghc-make" = callPackage
@@ -97859,6 +99584,23 @@ self: {
        broken = true;
      }) {};
 
+  "ghc-plugs-out" = callPackage
+    ({ mkDerivation, base, ghc, th-printf }:
+     mkDerivation {
+       pname = "ghc-plugs-out";
+       version = "1.0.0.0";
+       sha256 = "0a6zqqwpsz38x07qj8jafjhp1pinb9xh1qs5ld56ms329aml2ymw";
+       isLibrary = false;
+       isExecutable = false;
+       libraryHaskellDepends = [ base ghc th-printf ];
+       testHaskellDepends = [ base ];
+       doHaddock = false;
+       description = "Type checker plugins without the type checking";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "ghc-prim_0_6_1" = callPackage
     ({ mkDerivation, rts }:
      mkDerivation {
@@ -98007,22 +99749,6 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-source-gen";
-       version = "0.3.0.0";
-       sha256 = "1r9mnwwbpc1bzjcbs5q58wrjnwjrsbcvmcv1khswchcfim12lqqk";
-       libraryHaskellDepends = [ base ghc ];
-       testHaskellDepends = [
-         base ghc ghc-paths QuickCheck tasty tasty-hunit tasty-quickcheck
-       ];
-       description = "Constructs Haskell syntax trees for the GHC API";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "ghc-source-gen_0_4_0_0" = callPackage
-    ({ mkDerivation, base, ghc, ghc-paths, QuickCheck, tasty
-     , tasty-hunit, tasty-quickcheck
-     }:
-     mkDerivation {
-       pname = "ghc-source-gen";
        version = "0.4.0.0";
        sha256 = "0ch3nahhbm0lvz0x5dlmiv07rd0a6398bf046byx36fwrkqglswh";
        libraryHaskellDepends = [ base ghc ];
@@ -98031,7 +99757,6 @@ self: {
        ];
        description = "Constructs Haskell syntax trees for the GHC API";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ghc-srcspan-plugin" = callPackage
@@ -98078,23 +99803,6 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-syntax-highlighter";
-       version = "0.0.5.0";
-       sha256 = "09h911wqja56b9j9dwjqv7dlim9rm50vra1bkp8zhnlw9fa2s127";
-       revision = "3";
-       editedCabalFile = "0m41chf24mn78wxp1is38yg6nhkggwjw4r1avzfr2cvmcl0xz0xb";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [ base ghc-lib-parser text ];
-       testHaskellDepends = [ base hspec text ];
-       testToolDepends = [ hspec-discover ];
-       description = "Syntax highlighter for Haskell using lexer of GHC itself";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "ghc-syntax-highlighter_0_0_6_0" = callPackage
-    ({ mkDerivation, base, ghc-lib-parser, hspec, hspec-discover, text
-     }:
-     mkDerivation {
-       pname = "ghc-syntax-highlighter";
        version = "0.0.6.0";
        sha256 = "1dxm4w44y339flwl4ivsmvml3nvzzlxq585by9mm7j56ljlb4aja";
        enableSeparateDataOutput = true;
@@ -98103,24 +99811,24 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Syntax highlighter for Haskell using lexer of GHC itself";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ghc-tags-core" = callPackage
-    ({ mkDerivation, attoparsec, base, bytestring, criterion, deepseq
-     , directory, filepath, filepath-bytestring, ghc, lattices, mtl
-     , pipes, pipes-attoparsec, pipes-bytestring, QuickCheck
+    ({ mkDerivation, attoparsec, base, bytestring, cpphs, criterion
+     , deepseq, directory, filepath, filepath-bytestring, ghc, lattices
+     , mtl, pipes, pipes-attoparsec, pipes-bytestring, QuickCheck
      , quickcheck-instances, tasty, tasty-golden, tasty-quickcheck, text
      , transformers
      }:
      mkDerivation {
        pname = "ghc-tags-core";
-       version = "0.2.0.0";
-       sha256 = "1i7jr8zzkybh1f0ljg3l4airfc4ayy4z7v16avj6j5h3k8dksd3f";
+       version = "0.2.4.0";
+       sha256 = "1h2khrvykywdddnhpy6yg2adfjlzdy6i6zib8km5j2zakmhq9s9j";
        libraryHaskellDepends = [
          attoparsec base bytestring directory filepath-bytestring ghc mtl
          pipes pipes-attoparsec pipes-bytestring text transformers
        ];
+       libraryToolDepends = [ cpphs ];
        testHaskellDepends = [
          attoparsec base bytestring directory filepath filepath-bytestring
          lattices mtl pipes QuickCheck quickcheck-instances tasty
@@ -98138,20 +99846,20 @@ self: {
 
   "ghc-tags-plugin" = callPackage
     ({ mkDerivation, base, bytestring, directory, filepath
-     , filepath-bytestring, ghc, ghc-tags-core, mtl
+     , filepath-bytestring, ghc, ghc-tags-core, lukko, mtl
      , optparse-applicative, pipes, pipes-attoparsec, pipes-bytestring
-     , pipes-safe, text, unix
+     , pipes-safe, text
      }:
      mkDerivation {
        pname = "ghc-tags-plugin";
-       version = "0.2.0.0";
-       sha256 = "0prl25wd8fcga2ndx78rvsyzk4ar9m7wrs10mbcmia9pi4kax7y9";
+       version = "0.2.4.0";
+       sha256 = "1cpfh3cvad2avissri0cs7ghamg2q3nyifyzlj3dndmzbpjrvxy7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring directory filepath filepath-bytestring ghc
-         ghc-tags-core mtl optparse-applicative pipes pipes-attoparsec
-         pipes-bytestring pipes-safe text unix
+         ghc-tags-core lukko mtl optparse-applicative pipes pipes-attoparsec
+         pipes-bytestring pipes-safe text
        ];
        description = "A compiler plugin which generates tags file from GHC parsed syntax tree";
        license = stdenv.lib.licenses.mpl20;
@@ -98218,8 +99926,8 @@ self: {
     ({ mkDerivation, base, bytestring, criterion, text }:
      mkDerivation {
        pname = "ghc-trace-events";
-       version = "0.1.0.1";
-       sha256 = "1krr97njpcxw161fgkm899h1ckwhgivprqyv85hhbbr4d5cg6yby";
+       version = "0.1.2.1";
+       sha256 = "0isxvysjk8z9ya8kbjkbp95wf7b4ixk0bjjy831aqyl6kbrnps84";
        libraryHaskellDepends = [ base bytestring text ];
        benchmarkHaskellDepends = [ base bytestring criterion ];
        description = "Faster traceEvent and traceMarker, and binary object logging for eventlog";
@@ -98234,29 +99942,6 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-typelits-extra";
-       version = "0.3.3";
-       sha256 = "0gdnp7pp3v5742qs9vkg2bh1sws9bcc11z4119fdapflglqq22mc";
-       libraryHaskellDepends = [
-         base containers ghc ghc-prim ghc-tcplugins-extra
-         ghc-typelits-knownnat ghc-typelits-natnormalise integer-gmp
-         transformers
-       ];
-       testHaskellDepends = [
-         base ghc-typelits-knownnat ghc-typelits-natnormalise tasty
-         tasty-hunit
-       ];
-       description = "Additional type-level operations on GHC.TypeLits.Nat";
-       license = stdenv.lib.licenses.bsd2;
-     }) {};
-
-  "ghc-typelits-extra_0_4" = callPackage
-    ({ mkDerivation, base, containers, ghc, ghc-prim
-     , ghc-tcplugins-extra, ghc-typelits-knownnat
-     , ghc-typelits-natnormalise, integer-gmp, tasty, tasty-hunit
-     , transformers
-     }:
-     mkDerivation {
-       pname = "ghc-typelits-extra";
        version = "0.4";
        sha256 = "0511vpwn8hz1hvn58g49l95iqcgqr8l8bqy5qwijy2bzad2nhcbg";
        libraryHaskellDepends = [
@@ -98270,7 +99955,6 @@ self: {
        ];
        description = "Additional type-level operations on GHC.TypeLits.Nat";
        license = stdenv.lib.licenses.bsd2;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ghc-typelits-knownnat" = callPackage
@@ -98280,8 +99964,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-typelits-knownnat";
-       version = "0.7.2";
-       sha256 = "1wdippdn029rpd1v3mk470gyp8v13d2bna8p8q6cn7q7nhm1dhhc";
+       version = "0.7.3";
+       sha256 = "1vz2qjgdv5hv7zrq0hm9f4ly0q3bl1cz2spcqrdpdzhivfff651g";
        libraryHaskellDepends = [
          base ghc ghc-prim ghc-tcplugins-extra ghc-typelits-natnormalise
          template-haskell transformers
@@ -98317,10 +100001,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghc-typelits-presburger";
-       version = "0.3.0.0";
-       sha256 = "1jahwmy2cywnnlvrjizak1wqih7pki9r35qazcz7mih68pd9gnhz";
-       revision = "1";
-       editedCabalFile = "0kh04p9n9q74n84vrzrybkd45alwzhll8m6xwn8nzi1bxpilrhm4";
+       version = "0.3.0.1";
+       sha256 = "0h403zi5lqbpygpqw5469fafz1cgh5mcx96sp0iw4scnmh7z3cj9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -98552,8 +100234,8 @@ self: {
      }:
      mkDerivation {
        pname = "ghcid";
-       version = "0.8.6";
-       sha256 = "00zyf8m3jj72ax7sj0c4j0yivrvj72vqfwra7hzgywf8fc2qxfv1";
+       version = "0.8.7";
+       sha256 = "0yqc1pkfajnr56gnh43sbj50r7c3r41b2jfz07ivgl6phi4frjbq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -98573,47 +100255,55 @@ self: {
 
   "ghcide" = callPackage
     ({ mkDerivation, aeson, array, async, base, base16-bytestring
-     , binary, bytestring, containers, cryptohash-sha1, data-default
-     , deepseq, directory, extra, filepath, fuzzy, ghc, ghc-boot
-     , ghc-boot-th, ghc-check, ghc-paths, ghc-typelits-knownnat, gitrev
+     , binary, bytestring, Chart, Chart-diagrams, containers
+     , cryptohash-sha1, data-default, deepseq, diagrams, diagrams-svg
+     , directory, extra, filepath, fuzzy, ghc, ghc-boot, ghc-boot-th
+     , ghc-check, ghc-paths, ghc-typelits-knownnat, gitrev
      , haddock-library, hashable, haskell-lsp, haskell-lsp-types
-     , hie-bios, hslogger, lens, lsp-test, mtl, network-uri
-     , optparse-applicative, parser-combinators, prettyprinter
-     , prettyprinter-ansi-terminal, QuickCheck, quickcheck-instances
-     , regex-tdfa, rope-utf16-splay, safe-exceptions, shake, sorted-list
-     , stm, syb, tasty, tasty-expected-failure, tasty-hunit
+     , hie-bios, hslogger, implicit-hie-cradle, lens, lsp-test, mtl
+     , network-uri, optparse-applicative, prettyprinter
+     , prettyprinter-ansi-terminal, process, QuickCheck
+     , quickcheck-instances, record-dot-preprocessor, record-hasfield
+     , regex-tdfa, rope-utf16-splay, safe, safe-exceptions, shake
+     , sorted-list, stm, syb, tasty, tasty-expected-failure, tasty-hunit
      , tasty-quickcheck, tasty-rerun, text, time, transformers, unix
-     , unordered-containers, utf8-string
+     , unordered-containers, utf8-string, yaml
      }:
      mkDerivation {
        pname = "ghcide";
-       version = "0.2.0";
-       sha256 = "1zadj34583qp8xz0iv2r0anqh96r94jv13iary5bk1m9zbhf4f7v";
+       version = "0.4.0";
+       sha256 = "0h714pfdjkb4rbq9kz3ilj52nxdvr3c0w5nms5znxjlaysgaqp5l";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson array async base binary bytestring containers data-default
-         deepseq directory extra filepath fuzzy ghc ghc-boot ghc-boot-th
-         haddock-library hashable haskell-lsp haskell-lsp-types hslogger mtl
-         network-uri prettyprinter prettyprinter-ansi-terminal regex-tdfa
-         rope-utf16-splay safe-exceptions shake sorted-list stm syb text
-         time transformers unix unordered-containers utf8-string
+         aeson array async base base16-bytestring binary bytestring
+         containers cryptohash-sha1 data-default deepseq directory extra
+         filepath fuzzy ghc ghc-boot ghc-boot-th ghc-check ghc-paths
+         haddock-library hashable haskell-lsp haskell-lsp-types hie-bios
+         hslogger implicit-hie-cradle mtl network-uri prettyprinter
+         prettyprinter-ansi-terminal regex-tdfa rope-utf16-splay safe
+         safe-exceptions shake sorted-list stm syb text time transformers
+         unix unordered-containers utf8-string
        ];
        executableHaskellDepends = [
-         aeson async base base16-bytestring binary bytestring containers
-         cryptohash-sha1 data-default deepseq directory extra filepath ghc
-         ghc-check ghc-paths gitrev hashable haskell-lsp haskell-lsp-types
-         hie-bios hslogger optparse-applicative shake text time
+         aeson base bytestring containers data-default directory extra
+         filepath gitrev hashable haskell-lsp haskell-lsp-types hie-bios
+         lens lsp-test optparse-applicative process safe-exceptions text
          unordered-containers
        ];
        testHaskellDepends = [
-         aeson base bytestring containers directory extra filepath ghc
-         ghc-typelits-knownnat haddock-library haskell-lsp haskell-lsp-types
-         lens lsp-test network-uri parser-combinators QuickCheck
-         quickcheck-instances rope-utf16-splay shake tasty
+         aeson base binary bytestring containers directory extra filepath
+         ghc ghc-typelits-knownnat haddock-library haskell-lsp
+         haskell-lsp-types lens lsp-test network-uri optparse-applicative
+         process QuickCheck quickcheck-instances record-dot-preprocessor
+         record-hasfield rope-utf16-splay safe safe-exceptions shake tasty
          tasty-expected-failure tasty-hunit tasty-quickcheck tasty-rerun
          text
        ];
+       benchmarkHaskellDepends = [
+         aeson base Chart Chart-diagrams diagrams diagrams-svg directory
+         extra filepath shake text yaml
+       ];
        description = "The core of an IDE";
        license = stdenv.lib.licenses.asl20;
        maintainers = with stdenv.lib.maintainers; [ maralorn ];
@@ -98991,6 +100681,26 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) atk;};
 
+  "gi-atk_2_0_22" = callPackage
+    ({ mkDerivation, atk, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, haskell-gi, haskell-gi-base, haskell-gi-overloading
+     , text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-atk";
+       version = "2.0.22";
+       sha256 = "1jx0wy3a0vzclqpysks3nllvm2163svll1iakh3ar7njba7ihq2x";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ atk ];
+       description = "Atk bindings";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) atk;};
+
   "gi-cairo" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, cairo, containers
      , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
@@ -99014,6 +100724,30 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) cairo;};
 
+  "gi-cairo_1_0_24" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, cairo, containers
+     , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gi-cairo";
+       version = "1.0.24";
+       sha256 = "1g8dvfhsncigi4xrdydp8bxjrcajk1794xb24wpvqpnnbmmykpwk";
+       setupHaskellDepends = [ base Cabal haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ cairo ];
+       preCompileBuildDriver = ''
+         PKG_CONFIG_PATH+=":${cairo}/lib/pkgconfig"
+         setupCompileFlags+=" $(pkg-config --libs cairo-gobject)"
+       '';
+       description = "Cairo bindings";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) cairo;};
+
   "gi-cairo-again" = callPackage
     ({ mkDerivation, base, cairo-core, haskell-gi-base
      , template-haskell
@@ -99044,6 +100778,25 @@ self: {
        ];
        description = "GI friendly Binding to the Cairo library";
        license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "gi-cairo-connector_0_1_0" = callPackage
+    ({ mkDerivation, base, gi-cairo, gi-cairo-render, haskell-gi-base
+     , mtl
+     }:
+     mkDerivation {
+       pname = "gi-cairo-connector";
+       version = "0.1.0";
+       sha256 = "115iy6sd77aabzghdmfpn5w2zqqalrxgbs5i93z49y3vz4wsjiwf";
+       libraryHaskellDepends = [
+         base gi-cairo gi-cairo-render haskell-gi-base mtl
+       ];
+       description = "GI friendly Binding to the Cairo library";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "gi-cairo-render" = callPackage
@@ -99063,6 +100816,27 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "GI friendly Binding to the Cairo library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) cairo;};
+
+  "gi-cairo-render_0_1_0" = callPackage
+    ({ mkDerivation, array, base, bytestring, c2hs, cairo
+     , haskell-gi-base, mtl, text, utf8-string
+     }:
+     mkDerivation {
+       pname = "gi-cairo-render";
+       version = "0.1.0";
+       sha256 = "1b2qxfahs4w288i6w5m0rs74amnm3zp0mj2vsccf34q437yni2gx";
+       libraryHaskellDepends = [
+         array base bytestring haskell-gi-base mtl text utf8-string
+       ];
+       libraryPkgconfigDepends = [ cairo ];
+       libraryToolDepends = [ c2hs ];
+       description = "GI friendly Binding to the Cairo library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) cairo;};
 
   "gi-dbusmenu" = callPackage
@@ -99082,6 +100856,29 @@ self: {
        libraryPkgconfigDepends = [ libdbusmenu ];
        description = "Dbusmenu bindings";
        license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) libdbusmenu;};
+
+  "gi-dbusmenu_0_4_8" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, haskell-gi, haskell-gi-base, haskell-gi-overloading
+     , libdbusmenu, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-dbusmenu";
+       version = "0.4.8";
+       sha256 = "15nvfap39ayw34282br4rch1aias0m1sbapc0nkla8h5ip2naqi6";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ libdbusmenu ];
+       description = "Dbusmenu bindings";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) libdbusmenu;};
 
   "gi-dbusmenugtk3" = callPackage
@@ -99106,6 +100903,34 @@ self: {
        libraryPkgconfigDepends = [ gtk3 libdbusmenu-gtk3 ];
        description = "DbusmenuGtk bindings";
        license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) gtk3; inherit (pkgs) libdbusmenu-gtk3;};
+
+  "gi-dbusmenugtk3_0_4_9" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
+     , gi-dbusmenu, gi-gdk, gi-gdkpixbuf, gi-glib, gi-gobject, gi-gtk
+     , gtk3, haskell-gi, haskell-gi-base, haskell-gi-overloading
+     , libdbusmenu-gtk3, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-dbusmenugtk3";
+       version = "0.4.9";
+       sha256 = "1cni5368ldyblwh0jr6wva8fhi3574d258xzw49prwbjxngmjiv0";
+       setupHaskellDepends = [
+         base Cabal gi-atk gi-dbusmenu gi-gdk gi-gdkpixbuf gi-glib
+         gi-gobject gi-gtk haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-atk gi-dbusmenu gi-gdk gi-gdkpixbuf
+         gi-glib gi-gobject gi-gtk haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gtk3 libdbusmenu-gtk3 ];
+       description = "DbusmenuGtk bindings";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) gtk3; inherit (pkgs) libdbusmenu-gtk3;};
 
   "gi-gdk" = callPackage
@@ -99132,7 +100957,32 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) gtk3;};
 
-  "gi-gdk_4_0_1" = callPackage
+  "gi-gdk_3_0_23" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
+     , gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject, gi-pango, gtk3
+     , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gi-gdk";
+       version = "3.0.23";
+       sha256 = "18v3kb6kmryymmrz0d88nf25priwyh3yzh7raghc5ph2rv7n4w8m";
+       setupHaskellDepends = [
+         base Cabal gi-cairo gi-gdkpixbuf gi-gio gi-glib gi-gobject gi-pango
+         haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-cairo gi-gdkpixbuf gi-gio gi-glib
+         gi-gobject gi-pango haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gtk3 ];
+       description = "Gdk bindings";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) gtk3;};
+
+  "gi-gdk_4_0_2" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
      , gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject, gi-pango, gtk4
      , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
@@ -99140,8 +100990,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gdk";
-       version = "4.0.1";
-       sha256 = "1b2azv7c3c9ni9f258ag2cxy97sh8ax78v0hym0gpvrky741vqwq";
+       version = "4.0.2";
+       sha256 = "0271n81jqwcl7g0li4yv6x42jkcmx4cjs2b6b60g1mz0qq8klhbn";
        setupHaskellDepends = [
          base Cabal gi-cairo gi-gdkpixbuf gi-gio gi-glib gi-gobject gi-pango
          haskell-gi
@@ -99178,6 +101028,28 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) gdk-pixbuf;};
 
+  "gi-gdkpixbuf_2_0_24" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gdk-pixbuf
+     , gi-gio, gi-glib, gi-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gdkpixbuf";
+       version = "2.0.24";
+       sha256 = "00hgfyln0pqx4fmffc24mx818y1lladfc288qq0f03345p5dnbna";
+       setupHaskellDepends = [
+         base Cabal gi-gio gi-glib gi-gobject haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-gio gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gdk-pixbuf ];
+       description = "GdkPixbuf bindings";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) gdk-pixbuf;};
+
   "gi-gdkx11" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
      , gi-gdk, gi-gio, gi-gobject, gi-xlib, gtk3, haskell-gi
@@ -99198,17 +101070,19 @@ self: {
        libraryPkgconfigDepends = [ gtk3 ];
        description = "GdkX11 bindings";
        license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) gtk3;};
 
-  "gi-gdkx11_4_0_1" = callPackage
+  "gi-gdkx11_4_0_2" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
      , gi-gdk, gi-gio, gi-gobject, gi-xlib, gtk4-x11, haskell-gi
      , haskell-gi-base, haskell-gi-overloading, text, transformers
      }:
      mkDerivation {
        pname = "gi-gdkx11";
-       version = "4.0.1";
-       sha256 = "1z7d8vs4l1gzm0nbi0ir2q76jcc9s685s2nhbfflyjsvclr91spm";
+       version = "4.0.2";
+       sha256 = "1z510v5p515i2fyd5kjxcfnyf5lsd0kzgzsnnqw4km186b241fc5";
        setupHaskellDepends = [
          base Cabal gi-cairo gi-gdk gi-gio gi-gobject gi-xlib haskell-gi
        ];
@@ -99221,6 +101095,7 @@ self: {
        description = "GdkX11 bindings";
        license = stdenv.lib.licenses.lgpl21;
        hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {gtk4-x11 = null;};
 
   "gi-ggit" = callPackage
@@ -99230,8 +101105,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-ggit";
-       version = "1.0.8";
-       sha256 = "151qgcwp2spa957nr3jdb9ac35f1r1gyi2d5vzgxy8xzc3993wmq";
+       version = "1.0.9";
+       sha256 = "0qvmppdby40ncd9alnnk8ang90qcaj00c0g0nrq0s0m1ynar8ccd";
        setupHaskellDepends = [
          base Cabal gi-gio gi-glib gi-gobject haskell-gi
        ];
@@ -99263,6 +101138,26 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) glib;};
 
+  "gi-gio_2_0_27" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, glib, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gio";
+       version = "2.0.27";
+       sha256 = "08qc0ahj0qmmibf92m48hv8q2x47q83c6j9a49h11dyc8l4nclx6";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ glib ];
+       description = "Gio bindings";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) glib;};
+
   "gi-girepository" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
      , gi-gobject, gobject-introspection, haskell-gi, haskell-gi-base
@@ -99270,8 +101165,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-girepository";
-       version = "1.0.22";
-       sha256 = "1m7gnam8a46zbbnxgcszv1wn8zgzdrpki6k3fgy5xjnb4gp5pvpj";
+       version = "1.0.23";
+       sha256 = "0a8sis3zayiywi7mgs1g4p7nr9szv392j7bimq5nvva04lj6sdzc";
        setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
        libraryHaskellDepends = [
          base bytestring containers gi-glib gi-gobject haskell-gi
@@ -99301,6 +101196,26 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) glib;};
 
+  "gi-glib_2_0_24" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, glib
+     , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gi-glib";
+       version = "2.0.24";
+       sha256 = "0zrajclbjbq6d6pyvz3s0kjq997w7j8nghi3i89l8fjw16gbmjxn";
+       setupHaskellDepends = [ base Cabal haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ glib ];
+       description = "GLib bindings";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) glib;};
+
   "gi-gobject" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib, glib
      , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
@@ -99320,6 +101235,26 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) glib;};
 
+  "gi-gobject_2_0_24" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib, glib
+     , haskell-gi, haskell-gi-base, haskell-gi-overloading, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "gi-gobject";
+       version = "2.0.24";
+       sha256 = "1i19s7pcs3gnhhyif8y3j7hngmdzfqbgaw52j8dvrz7w11fbx9sj";
+       setupHaskellDepends = [ base Cabal gi-glib haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ glib ];
+       description = "GObject bindings";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) glib;};
+
   "gi-graphene" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
      , gi-gobject, graphene-gobject, haskell-gi, haskell-gi-base
@@ -99341,6 +101276,27 @@ self: {
        broken = true;
      }) {graphene-gobject = null;};
 
+  "gi-graphene_1_0_2" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, graphene-gobject, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-graphene";
+       version = "1.0.2";
+       sha256 = "1mszvx58mdazy8202s0c05hp800b92n21g4rxwvp5k0ms7qz95nq";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ graphene-gobject ];
+       description = "Graphene bindings";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {graphene-gobject = null;};
+
   "gi-gsk" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-cairo
      , gi-gdk, gi-glib, gi-gobject, gi-graphene, gi-pango, gtk4
@@ -99349,8 +101305,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gsk";
-       version = "4.0.1";
-       sha256 = "0645dyifg6d3x03zrzf2andfah32s878rcyqzw891prn2dvga3nx";
+       version = "4.0.2";
+       sha256 = "1jc5jxni87zg475rgjrxv85rpyr20bwxdyfjw060dx4gvnyhxnfs";
        setupHaskellDepends = [
          base Cabal gi-cairo gi-gdk gi-glib gi-gobject gi-graphene gi-pango
          haskell-gi
@@ -99374,8 +101330,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gst";
-       version = "1.0.22";
-       sha256 = "0qicgvy9wm1xs5y6fda8sxdilwfg2y6albdqy3jg2n5qn7c9p0f6";
+       version = "1.0.23";
+       sha256 = "0w4xscgd49d6d00gvsqc210r63c0wj748dqa5ypppr4mzllsm0qv";
        setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
        libraryHaskellDepends = [
          base bytestring containers gi-glib gi-gobject haskell-gi
@@ -99393,8 +101349,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gstaudio";
-       version = "1.0.21";
-       sha256 = "0zrcplkd0hfdfvwq7gbg8wyvsk2an8k5yj342adq1ar0zgfh064n";
+       version = "1.0.22";
+       sha256 = "17x0nmzawr9mqfjjbgk9s35102y4nsvxym9hwgwhh88ijnbhshhs";
        setupHaskellDepends = [
          base Cabal gi-glib gi-gobject gi-gst gi-gstbase haskell-gi
        ];
@@ -99414,8 +101370,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gstbase";
-       version = "1.0.22";
-       sha256 = "1y7hf5kcm4kj185glb298zr6x39m61hvqrdwskk9043nrd8ifcxx";
+       version = "1.0.23";
+       sha256 = "0im25z9pf9j0cxj0b6lbbr3lis9kbvzzvzns65cmargbh1018959";
        setupHaskellDepends = [
          base Cabal gi-glib gi-gobject gi-gst haskell-gi
        ];
@@ -99436,8 +101392,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gstpbutils";
-       version = "1.0.21";
-       sha256 = "15kg01g8cgaw98khf6nrr9sjbfss3a3d43g9zgbbv5h5qnzvjazb";
+       version = "1.0.22";
+       sha256 = "1kq86zc9rcla6xhgi0vf32y6bs3adi5xgkpknld6zl4dq7s70plk";
        setupHaskellDepends = [
          base Cabal gi-glib gi-gobject gi-gst gi-gstaudio gi-gsttag
          gi-gstvideo haskell-gi
@@ -99461,8 +101417,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gsttag";
-       version = "1.0.21";
-       sha256 = "061xy3vx41pgyyg6mcbc7saj50n5zwfc72l8dw54kgv09vykp7ji";
+       version = "1.0.22";
+       sha256 = "0jpqj5kggg2ahvbrnmacjk6n9zg31v0klybkygz4i6i4d6absvf6";
        setupHaskellDepends = [
          base Cabal gi-glib gi-gobject gi-gst gi-gstbase haskell-gi
        ];
@@ -99484,8 +101440,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gstvideo";
-       version = "1.0.22";
-       sha256 = "0fr9pfcfsjajl5cd6p05a4kp83acmllzzdm0kc2nxnr0kmjifi5v";
+       version = "1.0.23";
+       sha256 = "1kb09kal08x7nznc0g8c2n9jfijapdndbnsfs5cvz0p9smvd092i";
        setupHaskellDepends = [
          base Cabal gi-glib gi-gobject gi-gst gi-gstbase haskell-gi
        ];
@@ -99522,7 +101478,32 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) gtk3;};
 
-  "gi-gtk_4_0_1" = callPackage
+  "gi-gtk_3_0_35" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
+     , gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject
+     , gi-pango, gtk3, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gtk";
+       version = "3.0.35";
+       sha256 = "08z6kc9m7xb24d9z08yy3g66l8i7nircnaiy5i82yfl2l4slvz2w";
+       setupHaskellDepends = [
+         base Cabal gi-atk gi-cairo gi-gdk gi-gdkpixbuf gi-gio gi-glib
+         gi-gobject gi-pango haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-atk gi-cairo gi-gdk gi-gdkpixbuf
+         gi-gio gi-glib gi-gobject gi-pango haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ gtk3 ];
+       description = "Gtk bindings";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) gtk3;};
+
+  "gi-gtk_4_0_2" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
      , gi-cairo, gi-gdk, gi-gdkpixbuf, gi-gio, gi-glib, gi-gobject
      , gi-graphene, gi-gsk, gi-pango, gtk4, haskell-gi, haskell-gi-base
@@ -99530,8 +101511,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gtk";
-       version = "4.0.1";
-       sha256 = "1brn4pyjvnc00bwqwf3d77dhbiknak5yjqs9xyk9mknw2pb98ppv";
+       version = "4.0.2";
+       sha256 = "1lmbb3q4f73f7yihnl4qjv7qvzrys3jqsh3dg9wwdg9bxg900ghp";
        setupHaskellDepends = [
          base Cabal gi-atk gi-cairo gi-gdk gi-gdkpixbuf gi-gio gi-glib
          gi-gobject gi-graphene gi-gsk gi-pango haskell-gi
@@ -99608,6 +101589,27 @@ self: {
        ];
        description = "A wrapper for gi-gtk, adding a few more idiomatic API parts on top";
        license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "gi-gtk-hs_0_3_9" = callPackage
+    ({ mkDerivation, base, base-compat, containers, gi-gdk
+     , gi-gdkpixbuf, gi-glib, gi-gobject, gi-gtk, haskell-gi-base, mtl
+     , text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-gtk-hs";
+       version = "0.3.9";
+       sha256 = "1ql14ripivfh1w65wnr6mw64f2vlwi54gz70c8qql9f5szbnjky1";
+       libraryHaskellDepends = [
+         base base-compat containers gi-gdk gi-gdkpixbuf gi-glib gi-gobject
+         gi-gtk haskell-gi-base mtl text transformers
+       ];
+       description = "A wrapper for gi-gtk, adding a few more idiomatic API parts on top";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "gi-gtkosxapplication" = callPackage
@@ -99641,8 +101643,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-gtksource";
-       version = "3.0.22";
-       sha256 = "08b3ffjdgyr5xapx37kkwx3z8fsd42ydvdwk3nvh2ysfq9q86cjh";
+       version = "3.0.23";
+       sha256 = "13rsxjbl62q8zhwqr8jm2fh5njzfa86izqwag4d6aw8xi71wqfrn";
        setupHaskellDepends = [
          base Cabal gi-atk gi-cairo gi-gdk gi-gdkpixbuf gi-gio gi-glib
          gi-gobject gi-gtk gi-pango haskell-gi
@@ -99659,22 +101661,22 @@ self: {
 
   "gi-handy" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-atk
-     , gi-gdk, gi-gio, gi-glib, gi-gobject, gi-gtk, haskell-gi
+     , gi-gdk, gi-gio, gi-glib, gi-gobject, gi-gtk, gi-pango, haskell-gi
      , haskell-gi-base, haskell-gi-overloading, libhandy, text
      , transformers
      }:
      mkDerivation {
        pname = "gi-handy";
-       version = "0.0.6";
-       sha256 = "134dspf2vhwl76g25mjjj3gmdis748qg3rschmypd9w4zr2l651w";
+       version = "0.0.7";
+       sha256 = "0vdmby4wzxzhy9cbpi6i29r2ywq75ndcjpra3nvkavp91ba1y1c1";
        setupHaskellDepends = [
-         base Cabal gi-atk gi-gdk gi-gio gi-glib gi-gobject gi-gtk
+         base Cabal gi-atk gi-gdk gi-gio gi-glib gi-gobject gi-gtk gi-pango
          haskell-gi
        ];
        libraryHaskellDepends = [
          base bytestring containers gi-atk gi-gdk gi-gio gi-glib gi-gobject
-         gi-gtk haskell-gi haskell-gi-base haskell-gi-overloading text
-         transformers
+         gi-gtk gi-pango haskell-gi haskell-gi-base haskell-gi-overloading
+         text transformers
        ];
        libraryPkgconfigDepends = [ libhandy ];
        description = "libhandy bindings";
@@ -99683,6 +101685,25 @@ self: {
        broken = true;
      }) {inherit (pkgs) libhandy;};
 
+  "gi-harfbuzz" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, gi-glib
+     , gi-gobject, harfbuzz, harfbuzz-gobject, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-harfbuzz";
+       version = "0.0.3";
+       sha256 = "1rapwaf8rz18rsai54lq9wcccf9j0ihcafvwhrzvgl17fjqcfqaz";
+       setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject haskell-gi
+         haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ harfbuzz harfbuzz-gobject ];
+       description = "HarfBuzz bindings";
+       license = stdenv.lib.licenses.lgpl21;
+     }) {inherit (pkgs) harfbuzz; harfbuzz-gobject = null;};
+
   "gi-ibus" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, containers, gi-gio
      , gi-glib, gi-gobject, haskell-gi, haskell-gi-base
@@ -99690,8 +101711,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-ibus";
-       version = "1.5.1";
-       sha256 = "1dvybzgckpqyvh9ivaq22x9i8paafglh3pmr4lk6i7zjlamw8kxv";
+       version = "1.5.2";
+       sha256 = "14chw0qhzdxixsqsn2ra31z561kn2zclk15b7hfpfzayqr6dqci1";
        setupHaskellDepends = [
          base Cabal gi-gio gi-glib gi-gobject haskell-gi
        ];
@@ -99711,8 +101732,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-javascriptcore";
-       version = "4.0.21";
-       sha256 = "0zl2lanysqir9qhndai7v4yp6sq671115mi5k9q58rwkmvkm6w04";
+       version = "4.0.22";
+       sha256 = "191ipwjxn94dxz6saapidvjr8bbnl0y3p4f10s6mj6h6pkb5axjb";
        setupHaskellDepends = [ base Cabal gi-glib gi-gobject haskell-gi ];
        libraryHaskellDepends = [
          base bytestring containers gi-glib gi-gobject haskell-gi
@@ -99731,8 +101752,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-notify";
-       version = "0.7.21";
-       sha256 = "13ifi60jlfm9jypf6gam224s5rgq2kd1cj98wfl1dg9crahghbls";
+       version = "0.7.22";
+       sha256 = "0j5cxx9dsxh2wafw4xa7yasr6n98h2qwpm1y08nm7m6i0kwrksap";
        setupHaskellDepends = [
          base Cabal gi-gdkpixbuf gi-glib gi-gobject haskell-gi
        ];
@@ -99752,8 +101773,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-ostree";
-       version = "1.0.12";
-       sha256 = "0j7nd4ylz4whnsdfbn6ra7kvvnx6l6bqv2y57rgk1nnac3cc6201";
+       version = "1.0.13";
+       sha256 = "07k02mffidw18f104crmhayr5nf3v5xcldc8fbmxdinp7wik5c7f";
        setupHaskellDepends = [
          base Cabal gi-gio gi-glib gi-gobject haskell-gi
        ];
@@ -99790,6 +101811,32 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) cairo; inherit (pkgs) pango;};
 
+  "gi-pango_1_0_23" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, cairo, containers
+     , gi-glib, gi-gobject, gi-harfbuzz, haskell-gi, haskell-gi-base
+     , haskell-gi-overloading, pango, text, transformers
+     }:
+     mkDerivation {
+       pname = "gi-pango";
+       version = "1.0.23";
+       sha256 = "18pp83nzqdxzq15g3rm0xym4hdq3f851m6mshlb4f7liy168vpl9";
+       setupHaskellDepends = [
+         base Cabal gi-glib gi-gobject gi-harfbuzz haskell-gi
+       ];
+       libraryHaskellDepends = [
+         base bytestring containers gi-glib gi-gobject gi-harfbuzz
+         haskell-gi haskell-gi-base haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ cairo pango ];
+       preCompileBuildDriver = ''
+         PKG_CONFIG_PATH+=":${cairo}/lib/pkgconfig"
+         setupCompileFlags+=" $(pkg-config --libs cairo-gobject)"
+       '';
+       description = "Pango bindings";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) cairo; inherit (pkgs) pango;};
+
   "gi-pangocairo" = callPackage
     ({ mkDerivation, base, bytestring, Cabal, cairo, containers
      , gi-cairo, gi-glib, gi-gobject, gi-pango, haskell-gi
@@ -99798,8 +101845,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-pangocairo";
-       version = "1.0.23";
-       sha256 = "0la2ga1hprwm4fnia48y0q1cg8il0aq42nwvaj5gndx6id42a1i6";
+       version = "1.0.24";
+       sha256 = "1yya5gsqrkagmm33rsasshlj691nmax47fqdn1p2rnf4aqx1jcqr";
        setupHaskellDepends = [
          base Cabal gi-cairo gi-glib gi-gobject gi-pango haskell-gi
        ];
@@ -99823,8 +101870,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-poppler";
-       version = "0.18.22";
-       sha256 = "0bqmkijnmxi4k30nbn8zsx03i9y7mlp06ikmd2dbxj22lyazqjz4";
+       version = "0.18.24";
+       sha256 = "1n69xzw5w3y27x0vz4i4hi7ypr714ilj9i985ym713kvdfdyz12g";
        setupHaskellDepends = [
          base Cabal gi-cairo gi-gio gi-glib gi-gobject haskell-gi
        ];
@@ -99846,8 +101893,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-secret";
-       version = "0.0.11";
-       sha256 = "1s3vwy0aff4m1rvkbcvfa4zwbbalaiz46ij3ymmsx319v2mwwiib";
+       version = "0.0.12";
+       sha256 = "19mr7mvay2slm5k6afqj0hhy4ddh0advrb5dyzqi75xysx7xagm8";
        setupHaskellDepends = [
          base Cabal gi-gio gi-glib gi-gobject haskell-gi
        ];
@@ -99858,8 +101905,6 @@ self: {
        libraryPkgconfigDepends = [ libsecret ];
        description = "Libsecret bindings";
        license = stdenv.lib.licenses.lgpl21;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) libsecret;};
 
   "gi-soup" = callPackage
@@ -99869,8 +101914,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-soup";
-       version = "2.4.22";
-       sha256 = "0vgvcq9nysw9xfyjddi1qzngw7pfrfx4g1f3zngf56jcvxf8q6rw";
+       version = "2.4.23";
+       sha256 = "109n57ff69xmwhm3lvf0ajid3zl0l9sr1qdnvis06bhcddw9i1ap";
        setupHaskellDepends = [
          base Cabal gi-gio gi-glib gi-gobject haskell-gi
        ];
@@ -99891,8 +101936,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-vte";
-       version = "2.91.25";
-       sha256 = "0h6kqbbdr7zgpq6sfqs2pfx99c7wj1aabpzna9fryn6zhaha8j3c";
+       version = "2.91.27";
+       sha256 = "0a4n8yah3nirwciw0y1i8vpcjqbbk3pw15nd8av109cyxgl8nzx8";
        setupHaskellDepends = [
          base Cabal gi-atk gi-gdk gi-gio gi-glib gi-gobject gi-gtk gi-pango
          haskell-gi
@@ -99938,8 +101983,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-webkit2";
-       version = "4.0.25";
-       sha256 = "1xg4xy24nnz0ngv46m58jkmaka72nv4954g03f6ixpvwappim0vm";
+       version = "4.0.26";
+       sha256 = "0vbsc5zd1m1k47zpq620kzsiyg2g25ag6fvkwj0hdlq24xhyiavr";
        setupHaskellDepends = [
          base Cabal gi-atk gi-cairo gi-gdk gi-gio gi-glib gi-gobject gi-gtk
          gi-javascriptcore gi-soup haskell-gi
@@ -99963,8 +102008,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-webkit2webextension";
-       version = "4.0.24";
-       sha256 = "0lnf173c6myrswk0kdnwkhs925imvcpyvpmy50krqljnv6f2ksxn";
+       version = "4.0.25";
+       sha256 = "0vdzhnaj6d03cgxz3i886cahkfhl8xgcrm37wdcxqydkxx2ybh6h";
        setupHaskellDepends = [
          base Cabal gi-gio gi-gobject gi-gtk gi-javascriptcore gi-soup
          haskell-gi
@@ -99988,8 +102033,8 @@ self: {
      }:
      mkDerivation {
        pname = "gi-wnck";
-       version = "3.0.7";
-       sha256 = "02kgbp3h5ny7y0qmddsfng0a1gqpdmadl6yy45hmk98ws02rk9bx";
+       version = "3.0.9";
+       sha256 = "1cy1nzld3220rg0f1gzr5cw756s5vm9las8p8xyqhjmk3awy0cbp";
        setupHaskellDepends = [
          base Cabal gi-atk gi-gdk gi-gdkpixbuf gi-gobject gi-gtk haskell-gi
        ];
@@ -100022,6 +102067,29 @@ self: {
        libraryPkgconfigDepends = [ xlibsWrapper ];
        description = "xlib bindings";
        license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) xlibsWrapper;};
+
+  "gi-xlib_2_0_9" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, haskell-gi
+     , haskell-gi-base, haskell-gi-overloading, text, transformers
+     , xlibsWrapper
+     }:
+     mkDerivation {
+       pname = "gi-xlib";
+       version = "2.0.9";
+       sha256 = "02n2iz30dkkfqpsc3ngpx0zxrl6fbsafzrjf0im8an783jp3vm80";
+       setupHaskellDepends = [ base Cabal haskell-gi ];
+       libraryHaskellDepends = [
+         base bytestring containers haskell-gi haskell-gi-base
+         haskell-gi-overloading text transformers
+       ];
+       libraryPkgconfigDepends = [ xlibsWrapper ];
+       description = "xlib bindings";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) xlibsWrapper;};
 
   "giak" = callPackage
@@ -100065,8 +102133,8 @@ self: {
      }:
      mkDerivation {
        pname = "ginger";
-       version = "0.10.0.4";
-       sha256 = "0d3wzk10cjwjywf055909ajcxccnhzqqkbq57dn63hqs9ij510gg";
+       version = "0.10.1.0";
+       sha256 = "0579ajr1rng0bd0pml69f6yz4aykvk8zcni0p7ck628qx4jzxihx";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -100086,8 +102154,6 @@ self: {
        ];
        description = "An implementation of the Jinja2 template language in Haskell";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "gingersnap" = callPackage
@@ -100142,8 +102208,8 @@ self: {
      }:
      mkDerivation {
        pname = "gio";
-       version = "0.13.8.0";
-       sha256 = "1wx35fm7jba69x33mhp0h6j0lszi62hmmb1inflx7gax0ncmk2n2";
+       version = "0.13.8.1";
+       sha256 = "00dq87p6nqk4x2n98a6b35l7a4crkmhr36zjk0xsfdsr3lf7zmr6";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal gtk2hs-buildtools ];
        libraryHaskellDepends = [
@@ -100274,82 +102340,10 @@ self: {
      , clientsession, concurrent-output, conduit, connection, containers
      , crypto-api, cryptonite, curl, data-default, DAV, dbus, deepseq
      , directory, disk-free-space, dlist, edit-distance, exceptions
-     , fdo-notify, feed, filepath, filepath-bytestring, free, git, gnupg
-     , hinotify, hslogger, http-client, http-client-tls, http-conduit
-     , http-types, IfElse, lsof, magic, memory, microlens, monad-control
-     , monad-logger, mountpoints, mtl, network, network-bsd
-     , network-info, network-multicast, network-uri, old-locale, openssh
-     , optparse-applicative, path-pieces, perl, persistent
-     , persistent-sqlite, persistent-template, process, QuickCheck
-     , random, regex-tdfa, resourcet, rsync, SafeSemaphore, sandi
-     , securemem, shakespeare, socks, split, stm, stm-chans, tagsoup
-     , tasty, tasty-hunit, tasty-quickcheck, tasty-rerun
-     , template-haskell, text, time, torrent, transformers, unix
-     , unix-compat, unliftio-core, unordered-containers, utf8-string
-     , uuid, vector, wai, wai-extra, warp, warp-tls, wget, which, yesod
-     , yesod-core, yesod-form, yesod-static
-     }:
-     mkDerivation {
-       pname = "git-annex";
-       version = "8.20200501";
-       sha256 = "19rggaymvqy7r61n2rl2nigwdi2hzq5l1afcd5l0k1vbacwgq4jl";
-       configureFlags = [
-         "-fassistant" "-f-benchmark" "-fdbus" "-f-debuglocks" "-fmagicmime"
-         "-fnetworkbsd" "-fpairing" "-fproduction" "-fs3" "-ftorrentparser"
-         "-fwebapp" "-fwebdav"
-       ];
-       isLibrary = false;
-       isExecutable = true;
-       setupHaskellDepends = [
-         base bytestring Cabal data-default directory exceptions filepath
-         filepath-bytestring hslogger IfElse process split transformers
-         unix-compat utf8-string
-       ];
-       executableHaskellDepends = [
-         aeson async attoparsec aws base blaze-builder bloomfilter byteable
-         bytestring case-insensitive clientsession concurrent-output conduit
-         connection containers crypto-api cryptonite data-default DAV dbus
-         deepseq directory disk-free-space dlist edit-distance exceptions
-         fdo-notify feed filepath filepath-bytestring free hinotify hslogger
-         http-client http-client-tls http-conduit http-types IfElse magic
-         memory microlens monad-control monad-logger mountpoints mtl network
-         network-bsd network-info network-multicast network-uri old-locale
-         optparse-applicative path-pieces persistent persistent-sqlite
-         persistent-template process QuickCheck random regex-tdfa resourcet
-         SafeSemaphore sandi securemem shakespeare socks split stm stm-chans
-         tagsoup tasty tasty-hunit tasty-quickcheck tasty-rerun
-         template-haskell text time torrent transformers unix unix-compat
-         unliftio-core unordered-containers utf8-string uuid vector wai
-         wai-extra warp warp-tls yesod yesod-core yesod-form yesod-static
-       ];
-       executableSystemDepends = [
-         bup curl git gnupg lsof openssh perl rsync wget which
-       ];
-       preConfigure = "export HOME=$TEMPDIR; patchShebangs .";
-       postBuild = ''
-         ln -sf dist/build/git-annex/git-annex git-annex
-         ln -sf git-annex git-annex-shell
-       '';
-       installPhase = "make PREFIX=$out BUILDER=: install install-completions";
-       checkPhase = ''PATH+=":$PWD" git-annex test'';
-       enableSharedExecutables = false;
-       description = "manage files with git, without checking their contents into git";
-       license = stdenv.lib.licenses.agpl3;
-       maintainers = with stdenv.lib.maintainers; [ peti ];
-     }) {inherit (pkgs) bup; inherit (pkgs) curl; inherit (pkgs) git; 
-         inherit (pkgs) gnupg; inherit (pkgs) lsof; inherit (pkgs) openssh; 
-         inherit (pkgs) perl; inherit (pkgs) rsync; inherit (pkgs) wget; 
-         inherit (pkgs) which;};
-
-  "git-annex_8_20200522" = callPackage
-    ({ mkDerivation, aeson, async, attoparsec, aws, base, blaze-builder
-     , bloomfilter, bup, byteable, bytestring, Cabal, case-insensitive
-     , clientsession, concurrent-output, conduit, connection, containers
-     , crypto-api, cryptonite, curl, data-default, DAV, dbus, deepseq
-     , directory, disk-free-space, dlist, edit-distance, exceptions
-     , fdo-notify, feed, filepath, filepath-bytestring, free, git, gnupg
-     , hinotify, hslogger, http-client, http-client-tls, http-conduit
-     , http-types, IfElse, lsof, magic, memory, microlens, monad-control
+     , fdo-notify, feed, filepath, filepath-bytestring, free, git
+     , git-lfs, gnupg, hinotify, hslogger, http-client
+     , http-client-restricted, http-client-tls, http-conduit, http-types
+     , IfElse, lsof, magic, memory, microlens, monad-control
      , monad-logger, mountpoints, mtl, network, network-bsd
      , network-info, network-multicast, network-uri, old-locale, openssh
      , optparse-applicative, path-pieces, perl, persistent
@@ -100364,8 +102358,8 @@ self: {
      }:
      mkDerivation {
        pname = "git-annex";
-       version = "8.20200522";
-       sha256 = "1v71k5k9mcj1nq4pb8apx99rgw2rmckr6yshhvjl1dr6j70d67x8";
+       version = "8.20200908";
+       sha256 = "1113inl10f4m0699ba2zglaqlfqvwhqjkqg6r6m1d5rqv5brswb1";
        configureFlags = [
          "-fassistant" "-f-benchmark" "-fdbus" "-f-debuglocks" "-fmagicmime"
          "-fnetworkbsd" "-fpairing" "-fproduction" "-fs3" "-ftorrentparser"
@@ -100374,26 +102368,27 @@ self: {
        isLibrary = false;
        isExecutable = true;
        setupHaskellDepends = [
-         base bytestring Cabal data-default directory exceptions filepath
-         filepath-bytestring hslogger IfElse process split transformers
-         unix-compat utf8-string
+         async base bytestring Cabal data-default directory exceptions
+         filepath filepath-bytestring hslogger IfElse process split
+         transformers unix-compat utf8-string
        ];
        executableHaskellDepends = [
          aeson async attoparsec aws base blaze-builder bloomfilter byteable
          bytestring case-insensitive clientsession concurrent-output conduit
          connection containers crypto-api cryptonite data-default DAV dbus
          deepseq directory disk-free-space dlist edit-distance exceptions
-         fdo-notify feed filepath filepath-bytestring free hinotify hslogger
-         http-client http-client-tls http-conduit http-types IfElse magic
-         memory microlens monad-control monad-logger mountpoints mtl network
-         network-bsd network-info network-multicast network-uri old-locale
-         optparse-applicative path-pieces persistent persistent-sqlite
-         persistent-template process QuickCheck random regex-tdfa resourcet
-         SafeSemaphore sandi securemem shakespeare socks split stm stm-chans
-         tagsoup tasty tasty-hunit tasty-quickcheck tasty-rerun
-         template-haskell text time torrent transformers unix unix-compat
-         unliftio-core unordered-containers utf8-string uuid vector wai
-         wai-extra warp warp-tls yesod yesod-core yesod-form yesod-static
+         fdo-notify feed filepath filepath-bytestring free git-lfs hinotify
+         hslogger http-client http-client-restricted http-client-tls
+         http-conduit http-types IfElse magic memory microlens monad-control
+         monad-logger mountpoints mtl network network-bsd network-info
+         network-multicast network-uri old-locale optparse-applicative
+         path-pieces persistent persistent-sqlite persistent-template
+         process QuickCheck random regex-tdfa resourcet SafeSemaphore sandi
+         securemem shakespeare socks split stm stm-chans tagsoup tasty
+         tasty-hunit tasty-quickcheck tasty-rerun template-haskell text time
+         torrent transformers unix unix-compat unliftio-core
+         unordered-containers utf8-string uuid vector wai wai-extra warp
+         warp-tls yesod yesod-core yesod-form yesod-static
        ];
        executableSystemDepends = [
          bup curl git gnupg lsof openssh perl rsync wget which
@@ -100408,7 +102403,6 @@ self: {
        enableSharedExecutables = false;
        description = "manage files with git, without checking their contents into git";
        license = stdenv.lib.licenses.agpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {inherit (pkgs) bup; inherit (pkgs) curl; inherit (pkgs) git; 
          inherit (pkgs) gnupg; inherit (pkgs) lsof; inherit (pkgs) openssh; 
@@ -100421,8 +102415,8 @@ self: {
      }:
      mkDerivation {
        pname = "git-brunch";
-       version = "1.3.1.0";
-       sha256 = "0k1q3f9hyyagv67mpaj1159vic4kc44nk10nswg0pql38ai5bqvx";
+       version = "1.4.1.0";
+       sha256 = "0jq2i115djl5skkjzxxqdkp2rnw6871xn4aj4ryx9mgfnsd6dfgi";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -100478,6 +102472,27 @@ self: {
        broken = true;
      }) {};
 
+  "git-cuk" = callPackage
+    ({ mkDerivation, ansi-terminal, base, base-noprelude, github
+     , gitrev, optparse-applicative, process, relude, text
+     }:
+     mkDerivation {
+       pname = "git-cuk";
+       version = "0.0.1";
+       sha256 = "176027wag30imq3471c7qi8fdyb5myixlsphyq28394y47yz638i";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-terminal base-noprelude github gitrev optparse-applicative
+         process relude text
+       ];
+       executableHaskellDepends = [ base relude ];
+       description = "Haskell Git Helper Tool";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "git-date" = callPackage
     ({ mkDerivation, base, bytestring, old-locale, QuickCheck
      , test-framework, test-framework-quickcheck2, time, unexceptionalio
@@ -100906,8 +102921,8 @@ self: {
      }:
      mkDerivation {
        pname = "github-backup";
-       version = "1.20191219";
-       sha256 = "0yi0i342qh1wm7j81qa6mhyfjp4psbw4vrpp0m1c9zjbymfpcymk";
+       version = "1.20200721";
+       sha256 = "0d0sc2l6crkr42nwkhbcixlxrywx6gsn6vzgdpwh0r6vxlc83hcw";
        isLibrary = false;
        isExecutable = true;
        setupHaskellDepends = [
@@ -100977,8 +102992,8 @@ self: {
      }:
      mkDerivation {
        pname = "github-release";
-       version = "1.3.3";
-       sha256 = "15im4vsz04sx0iq83xmvk5ak4p7rj33jawk5lxkmv1ajwvklbpk7";
+       version = "1.3.5";
+       sha256 = "0z2sb9avhkq2mgj0pwlji5c2sjxd71628q1i3nhlbajfyms1bsqz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -101000,10 +103015,8 @@ self: {
      }:
      mkDerivation {
        pname = "github-rest";
-       version = "1.0.2";
-       sha256 = "0q4dxr0080pkszq9vv3j2wx89yhy15jjbk5m7wd1mwirgwxv214m";
-       revision = "2";
-       editedCabalFile = "02brididamvd9g938vqirp6d0vmw7cs9w1yk05ic89kxcl55n8mx";
+       version = "1.0.3";
+       sha256 = "0alwix2lvrvv6ba7nrxg6qvvrdci1vbv94yvq29zmsab9lbv6jrb";
        libraryHaskellDepends = [
          aeson base bytestring http-client http-client-tls http-types jwt
          mtl scientific text time transformers unliftio unliftio-core
@@ -101117,8 +103130,8 @@ self: {
      }:
      mkDerivation {
        pname = "github-webhooks";
-       version = "0.14.0";
-       sha256 = "0rjbavfcwhbi817dsvg2q9qmf5ln7mp5kgs1wlq23p0603jgm211";
+       version = "0.15.0";
+       sha256 = "0cmavbh7c59pimspjj42mwlac5jmlgagjsw4239hcsrna5yi4wdz";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring cryptonite deepseq
          deepseq-generics memory text time vector
@@ -101249,6 +103262,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "gitlab-haskell_0_2_3" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, connection, http-conduit
+     , http-types, tasty, tasty-hunit, text, time, transformers
+     , unliftio, unliftio-core
+     }:
+     mkDerivation {
+       pname = "gitlab-haskell";
+       version = "0.2.3";
+       sha256 = "0nsb7rkqflss6bhdvbjbgg2akwavz777icfkpfy97ix9ahq0i1r8";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bytestring connection http-conduit http-types text time
+         transformers unliftio unliftio-core
+       ];
+       testHaskellDepends = [ aeson base bytestring tasty tasty-hunit ];
+       description = "A Haskell library for the GitLab web API";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "gitlib" = callPackage
     ({ mkDerivation, base, base16-bytestring, bytestring, conduit
      , conduit-combinators, containers, directory, exceptions, filepath
@@ -101829,8 +103862,8 @@ self: {
      }:
      mkDerivation {
        pname = "glib";
-       version = "0.13.8.0";
-       sha256 = "18k1drykl3mpmyj43kp9nvkzr9g3allr19ihscmxwc1w9ss6zklw";
+       version = "0.13.8.1";
+       sha256 = "170sbi1gg38sxl4yhd4z716fljlcbf21vgl58p0pcx2adnn2il6w";
        setupHaskellDepends = [ base Cabal gtk2hs-buildtools ];
        libraryHaskellDepends = [
          base bytestring containers text utf8-string
@@ -101890,25 +103923,25 @@ self: {
     ({ mkDerivation, async, attoparsec, base, base64-bytestring
      , bytestring, Cabal, config-schema, config-value, containers
      , directory, filepath, free, gitrev, hashable, hookup, HsOpenSSL
-     , HUnit, irc-core, kan-extensions, lens, network, process, psqueues
-     , regex-tdfa, semigroupoids, split, stm, template-haskell, text
-     , time, transformers, unix, unordered-containers, vector, vty
+     , HUnit, irc-core, kan-extensions, lens, mwc-random, network
+     , process, psqueues, regex-tdfa, semigroupoids, split, stm
+     , template-haskell, text, time, transformers, unix
+     , unordered-containers, vector, vty
      }:
      mkDerivation {
        pname = "glirc";
-       version = "2.35";
-       sha256 = "093cqbvqijjy6xd0fzas13ldrsf9kg59jak88qzl5kks7z9djl0f";
-       revision = "1";
-       editedCabalFile = "14kgfgqyfw5vcm77n5iljxw5n28iclc1hpvi44x4vhrnmfpmq62v";
+       version = "2.36";
+       sha256 = "0s136d0nnw0vs198kzana10ybnka4mx0jyqdf1wsz5m9a4y3cnvj";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal filepath ];
        libraryHaskellDepends = [
          async attoparsec base base64-bytestring bytestring config-schema
          config-value containers directory filepath free gitrev hashable
-         hookup HsOpenSSL irc-core kan-extensions lens network process
-         psqueues regex-tdfa semigroupoids split stm template-haskell text
-         time transformers unix unordered-containers vector vty
+         hookup HsOpenSSL irc-core kan-extensions lens mwc-random network
+         process psqueues regex-tdfa semigroupoids split stm
+         template-haskell text time transformers unix unordered-containers
+         vector vty
        ];
        executableHaskellDepends = [ base lens text vty ];
        testHaskellDepends = [ base HUnit ];
@@ -102065,10 +104098,8 @@ self: {
      }:
      mkDerivation {
        pname = "gloss";
-       version = "1.13.1.1";
-       sha256 = "1bmjwd2vfbxfypr2g23810yyp921m30wxbb6f3m0wkk65iypjnls";
-       revision = "1";
-       editedCabalFile = "1bcjm3issssqxd60jd2y6032y8plcs0sm3wbnha1f6fa3z46z9n0";
+       version = "1.13.1.2";
+       sha256 = "0jyvjpd1gzzb9aiw5708822p8qyw14jj6j19gby9q9wjbpd4sd4d";
        libraryHaskellDepends = [
          base bmp bytestring containers ghc-prim gloss-rendering GLUT OpenGL
        ];
@@ -102077,14 +104108,16 @@ self: {
      }) {};
 
   "gloss-accelerate" = callPackage
-    ({ mkDerivation, accelerate, base, gloss, gloss-rendering }:
+    ({ mkDerivation, accelerate, base, gloss, gloss-rendering
+     , linear-accelerate
+     }:
      mkDerivation {
        pname = "gloss-accelerate";
-       version = "2.0.0.1";
-       sha256 = "106z8kax0m3hzk0381l8m7gxdapl3wf0fdr1ljwb5fgcjc00pac2";
-       revision = "1";
-       editedCabalFile = "0349yyzxn7r82mz4vr71dibzp0sh45b4a06hm0c0z9d7vlxj0sjj";
-       libraryHaskellDepends = [ accelerate base gloss gloss-rendering ];
+       version = "2.1.0.0";
+       sha256 = "1l09li68r04qij11p7rf9dwfv9cdncj7nm6crq6bm834il3zg4zx";
+       libraryHaskellDepends = [
+         accelerate base gloss gloss-rendering linear-accelerate
+       ];
        description = "Extras to interface Gloss and Accelerate";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -102095,10 +104128,8 @@ self: {
     ({ mkDerivation, base, containers, ghc-prim, gloss }:
      mkDerivation {
        pname = "gloss-algorithms";
-       version = "1.13.0.1";
-       sha256 = "0vbqcsvyicb409a60fab0c0shixny4l5z2l15n8hrrr1dsvisf95";
-       revision = "1";
-       editedCabalFile = "140zmk3br0nn98mjc6ri36nk8yl93n4v69zybzv2vc41yxgvnac5";
+       version = "1.13.0.2";
+       sha256 = "0wx546hm1afgq0al5bk1g2qfgg9r520whm6igz18lkc9fsksjfgd";
        libraryHaskellDepends = [ base containers ghc-prim gloss ];
        description = "Data structures and algorithms for working with 2D graphics";
        license = stdenv.lib.licenses.mit;
@@ -102141,8 +104172,8 @@ self: {
      }:
      mkDerivation {
        pname = "gloss-examples";
-       version = "1.13.0.2";
-       sha256 = "1g2l3jjj2mmmw9w45bmasqn9nbbsxxny6zhdvda931r6ryanq8db";
+       version = "1.13.0.3";
+       sha256 = "0bvy9hww3i2mk3fim5spg2fd66mhxz5njil7xjrw6wbjs4ryrr92";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -102216,8 +104247,8 @@ self: {
      }:
      mkDerivation {
        pname = "gloss-raster";
-       version = "1.13.1.1";
-       sha256 = "199b1avi4mils3x9xpk66992id40hdyk0lpjnyyxy8c22s0adgb9";
+       version = "1.13.1.2";
+       sha256 = "0sn1pnkpl76q6lf6w9ji7fh1fcb89vaz2jz9slz7fih2ksrnwlsa";
        libraryHaskellDepends = [
          base containers ghc-prim gloss gloss-rendering repa
        ];
@@ -102233,10 +104264,8 @@ self: {
      }:
      mkDerivation {
        pname = "gloss-raster-accelerate";
-       version = "2.0.0.0";
-       sha256 = "1i0qx9wybr66i1x4n3p8ai2z6qx0k5lac422mhh4rvimcjx2bc9d";
-       revision = "3";
-       editedCabalFile = "0nk901zy01x7v7faa20j0yawqfw3nfl27xr19ip7bn3agmq4sqq2";
+       version = "2.1.0.0";
+       sha256 = "0yxlpz5wqfriijzkhqgjyv3g0wcmdy33ifbziqrdm9phvsjygvza";
        libraryHaskellDepends = [
          accelerate base colour-accelerate gloss gloss-accelerate
        ];
@@ -102273,6 +104302,26 @@ self: {
        broken = true;
      }) {};
 
+  "glpk-headers" = callPackage
+    ({ mkDerivation, base, derive-storable, glpk, tasty, tasty-discover
+     , tasty-hunit
+     }:
+     mkDerivation {
+       pname = "glpk-headers";
+       version = "0.4.1";
+       sha256 = "1r77p0h9iyffl903ag008cb3v21jw021129cfxpr2mp1mgnkhdjd";
+       libraryHaskellDepends = [ base derive-storable ];
+       testHaskellDepends = [
+         base derive-storable tasty tasty-discover tasty-hunit
+       ];
+       testSystemDepends = [ glpk ];
+       testToolDepends = [ tasty-discover ];
+       description = "Low-level Haskell bindings to GLPK";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) glpk;};
+
   "glpk-hs" = callPackage
     ({ mkDerivation, array, base, containers, deepseq, gasp, glpk, mtl
      }:
@@ -102293,6 +104342,26 @@ self: {
        broken = true;
      }) {inherit (pkgs) glpk;};
 
+  "gltf-codec" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring, binary, bytestring
+     , directory, filepath, scientific, shower, text
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "gltf-codec";
+       version = "0.1.0.1";
+       sha256 = "0qdwk4ygvhdp4x8bkw101b50wc8zfb6bb54zpxaxkmva40hcv2c2";
+       libraryHaskellDepends = [
+         aeson base base64-bytestring binary bytestring scientific text
+         unordered-containers vector
+       ];
+       testHaskellDepends = [ base bytestring directory filepath shower ];
+       description = "glTF scene loader";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "glue" = callPackage
     ({ mkDerivation, async, base, ekg-core, hashable, hspec
      , lifted-base, monad-control, monad-loops, QuickCheck
@@ -102808,8 +104877,8 @@ self: {
        pname = "godot-haskell";
        version = "0.1.0.0";
        sha256 = "02nvs84bq4nif235iycjwkxmabvs0avwm2xilpwv8kddv95z1f8i";
-       revision = "3";
-       editedCabalFile = "0dpvraw31gpzzlsy7j7mv99jvmwhldycll1hnbw2iscb5zs2g409";
+       revision = "4";
+       editedCabalFile = "06mb33ll7m24dr6mvzi2r6v0bl6k0680y751563zhz0ybrjypckk";
        libraryHaskellDepends = [
          aeson ansi-wl-pprint base bytestring casing colour containers lens
          linear mtl parsec parsers stm template-haskell text
@@ -105093,6 +107162,26 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "goldplate" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, async, base, bytestring, Diff
+     , directory, filepath, Glob, optparse-applicative, process
+     , regex-pcre-builtin, text, time, unordered-containers
+     }:
+     mkDerivation {
+       pname = "goldplate";
+       version = "0.1.1";
+       sha256 = "0qjqx3yxlyfdj6glych7vwrrh47nrp6xi0vncga2a94hb5sljzzl";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson aeson-pretty async base bytestring Diff directory filepath
+         Glob optparse-applicative process regex-pcre-builtin text time
+         unordered-containers
+       ];
+       description = "A lightweight golden test runner";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "gooey" = callPackage
     ({ mkDerivation, base, renderable, transformers, varying }:
      mkDerivation {
@@ -105229,6 +107318,8 @@ self: {
        ];
        description = "Bindings to the Google Geocoding API (formerly Maps Geocoding API)";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "google-oauth2" = callPackage
@@ -105361,6 +107452,8 @@ self: {
        ];
        description = "Bindings to the Google Maps Static API (formerly Static Maps API)";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "google-translate" = callPackage
@@ -105718,17 +107811,18 @@ self: {
      }) {};
 
   "gotta-go-fast" = callPackage
-    ({ mkDerivation, base, brick, cmdargs, directory, random, text
-     , time, vty, word-wrap
+    ({ mkDerivation, base, brick, cmdargs, directory, file-embed
+     , random, split, text, time, vty, word-wrap
      }:
      mkDerivation {
        pname = "gotta-go-fast";
-       version = "0.1.4.0";
-       sha256 = "15gip4nggw3wxa3k546sqqbiqzhkw5acxwmwy3iv911d61s89gvb";
+       version = "0.3.0.0";
+       sha256 = "067jmp0p21bw7mpsrlpawphjmlq9f85lsfiihp37pvs8sxb36lg9";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base brick cmdargs directory random text time vty word-wrap
+         base brick cmdargs directory file-embed random split text time vty
+         word-wrap
        ];
        description = "A command line utility for practicing typing";
        license = stdenv.lib.licenses.bsd3;
@@ -106593,23 +108687,24 @@ self: {
      }) {};
 
   "graphql" = callPackage
-    ({ mkDerivation, aeson, base, containers, hspec, hspec-expectations
-     , hspec-megaparsec, megaparsec, parser-combinators, QuickCheck
-     , raw-strings-qq, text, transformers, unordered-containers
+    ({ mkDerivation, aeson, base, conduit, containers, exceptions
+     , hspec, hspec-expectations, hspec-megaparsec, megaparsec
+     , parser-combinators, QuickCheck, raw-strings-qq, scientific, text
+     , transformers, unordered-containers
      }:
      mkDerivation {
        pname = "graphql";
-       version = "0.7.0.0";
-       sha256 = "03bfg4whf7blf91x0h4qk6q7f1j7nfvhmqh4ggpnbyxdbyzx9sk4";
-       enableSeparateDataOutput = true;
+       version = "0.10.0.0";
+       sha256 = "0j0l8jmfnn3aw9vmk5z571ly9vk711hsz7cdklc243539vfnsywn";
        libraryHaskellDepends = [
-         aeson base containers megaparsec parser-combinators text
-         transformers unordered-containers
+         aeson base conduit containers exceptions hspec-expectations
+         megaparsec parser-combinators scientific text transformers
+         unordered-containers
        ];
        testHaskellDepends = [
-         aeson base containers hspec hspec-expectations hspec-megaparsec
-         megaparsec parser-combinators QuickCheck raw-strings-qq text
-         transformers unordered-containers
+         aeson base conduit containers exceptions hspec hspec-expectations
+         hspec-megaparsec megaparsec parser-combinators QuickCheck
+         raw-strings-qq scientific text transformers unordered-containers
        ];
        description = "Haskell GraphQL implementation";
        license = stdenv.lib.licenses.bsd3;
@@ -106646,14 +108741,61 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "graphql-client" = callPackage
+    ({ mkDerivation, aeson, aeson-schemas, base, bytestring, file-embed
+     , http-client, http-client-tls, http-types, mtl
+     , optparse-applicative, path, path-io, tasty, tasty-hunit
+     , template-haskell, text, transformers, typed-process
+     , unliftio-core
+     }:
+     mkDerivation {
+       pname = "graphql-client";
+       version = "1.1.0";
+       sha256 = "0yk6nfyyynydrgwc1cdy5235121gw5q4iaapbvixpckz2diidxx7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson aeson-schemas base http-client http-client-tls http-types mtl
+         template-haskell text transformers unliftio-core
+       ];
+       executableHaskellDepends = [
+         aeson aeson-schemas base bytestring file-embed http-client
+         http-client-tls http-types mtl optparse-applicative path path-io
+         template-haskell text transformers typed-process unliftio-core
+       ];
+       testHaskellDepends = [
+         aeson aeson-schemas base http-client http-client-tls http-types mtl
+         tasty tasty-hunit template-haskell text transformers unliftio-core
+       ];
+       description = "A client for Haskell programs to query a GraphQL API";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "graphql-utils" = callPackage
+    ({ mkDerivation, aeson, aeson-helper, base, graphql, text
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "graphql-utils";
+       version = "0.1.0.0";
+       sha256 = "1m0wan1isb1b574q933mm8xd7gnw2qrf2fd7z0sr7bnqlnl6nkjk";
+       libraryHaskellDepends = [
+         aeson aeson-helper base graphql text unordered-containers vector
+       ];
+       description = "GraphQL Utils";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "graphql-w-persistent" = callPackage
     ({ mkDerivation, base, containers, json, text }:
      mkDerivation {
        pname = "graphql-w-persistent";
-       version = "0.9.0.0";
-       sha256 = "1kwrpcrvf6j23lq40j6kyrp6wvya2rb4l6zgn47bwcignac1ag3g";
+       version = "0.9.1.0";
+       sha256 = "0sm0j1d2h6b2d3ksbbdyvzyvwl306mb64yikwkdwp2izfy387lwg";
        libraryHaskellDepends = [ base containers json text ];
-       description = "GraphQL interface middleware for (SQL) databases";
+       description = "GraphQL interface middleware for SQL databases";
        license = stdenv.lib.licenses.isc;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -106716,8 +108858,8 @@ self: {
      }:
      mkDerivation {
        pname = "graphviz";
-       version = "2999.20.0.4";
-       sha256 = "047f6sa5rp0f2npgvdrj5irylh0raf01a6nrjj2vsf1mzb1q83xr";
+       version = "2999.20.1.0";
+       sha256 = "0l0zxgb938hh09qirggbaskq79mgj3s081cnr42y5vm1rp1jir2s";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -106773,7 +108915,7 @@ self: {
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
-       description = "GRASP implementation for the AMMM project.";
+       description = "GRASP implementation for the AMMM project";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -106989,29 +109131,8 @@ self: {
      }:
      mkDerivation {
        pname = "greskell";
-       version = "1.0.1.0";
-       sha256 = "0gknzbaldmziy7lj23g3l8q3ymxdr5vbis109j6r7zbjap1jy0in";
-       libraryHaskellDepends = [
-         aeson base exceptions greskell-core hashable semigroups text
-         transformers unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson base bytestring doctest doctest-discover greskell-core hint
-         hspec text unordered-containers
-       ];
-       description = "Haskell binding for Gremlin graph query language";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "greskell_1_1_0_1" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, doctest, doctest-discover
-     , exceptions, greskell-core, hashable, hint, hspec, semigroups
-     , text, transformers, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "greskell";
-       version = "1.1.0.1";
-       sha256 = "0p9cbkbqmyn79bcg2b83nrl72ga40f17wdzq6s91llxc3s9lvjzk";
+       version = "1.1.0.3";
+       sha256 = "1q3m4m994vmfk80szphfd74vzfq6zp678bdla6v4siwqjskagyn3";
        libraryHaskellDepends = [
          aeson base exceptions greskell-core hashable semigroups text
          transformers unordered-containers vector
@@ -107022,7 +109143,6 @@ self: {
        ];
        description = "Haskell binding for Gremlin graph query language";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "greskell-core" = callPackage
@@ -107032,8 +109152,8 @@ self: {
      }:
      mkDerivation {
        pname = "greskell-core";
-       version = "0.1.3.3";
-       sha256 = "01dknsgns7r25yq62yggv0js356kvd4flkkr9p3ccmmh540vls00";
+       version = "0.1.3.5";
+       sha256 = "08jpgnsnmh9zbm1pw768ik28vhl3m4jz75l8cbxb3whfgwk5vyy4";
        libraryHaskellDepends = [
          aeson base containers hashable scientific semigroups text
          unordered-containers uuid vector
@@ -107053,8 +109173,8 @@ self: {
      }:
      mkDerivation {
        pname = "greskell-websocket";
-       version = "0.1.2.3";
-       sha256 = "0jxckcjpdy1j5bbjdw37rc9sbnyznc7awifmjrcliy2yk1dwdj6w";
+       version = "0.1.2.4";
+       sha256 = "1w5867pdb07jlms3gddx8n3ds94qp4yq1yxcy880vcww2gyb4jda";
        libraryHaskellDepends = [
          aeson async base base64-bytestring bytestring greskell-core
          hashtables safe-exceptions stm text unordered-containers uuid
@@ -107532,6 +109652,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "groups_0_5" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "groups";
+       version = "0.5";
+       sha256 = "1ivz03k5bk6d72bibn8jyq4wkivkyakbmvbrp270b33282a4lkpc";
+       libraryHaskellDepends = [ base ];
+       description = "Groups";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "groups-generic" = callPackage
     ({ mkDerivation, base, generic-data, groups }:
      mkDerivation {
@@ -107858,7 +109990,7 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) gst-plugins-base; inherit (pkgs) gstreamer;};
+     }) {gst-plugins-base = null; gstreamer = null;};
 
   "gt-tools" = callPackage
     ({ mkDerivation, base, containers, extensible-exceptions, haskeline
@@ -107918,8 +110050,8 @@ self: {
      }:
      mkDerivation {
        pname = "gtk";
-       version = "0.15.4";
-       sha256 = "1wm42m4963abqiswkc3ngwf9jm4z9kyyx2h8w064f62ngnkdz84z";
+       version = "0.15.5";
+       sha256 = "096xawq85shmdhsqwpcmidjc4asqgqxsxv0f0xff78169jrdh6a2";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal gtk2hs-buildtools ];
        libraryHaskellDepends = [
@@ -107936,8 +110068,8 @@ self: {
      }:
      mkDerivation {
        pname = "gtk-helpers";
-       version = "0.0.9.1";
-       sha256 = "06clzm1lz0n9z8h8pnggdx710msnwmwcf8kzvp5crdbdi9v7y0di";
+       version = "0.1.0";
+       sha256 = "1h3ddvs28cnr65la0y21plp4bvf2217i5yi2z4wcixjgr0g5lxjv";
        libraryHaskellDepends = [
          array base gio glib gtk mtl process template-haskell
        ];
@@ -108047,6 +110179,8 @@ self: {
        ];
        description = "A standalone StatusNotifierItem/AppIndicator tray";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) gtk3;};
 
   "gtk-strut" = callPackage
@@ -108058,6 +110192,8 @@ self: {
        libraryHaskellDepends = [ base gi-gdk gi-gtk text transformers ];
        description = "Libary for creating strut windows with gi-gtk";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "gtk-toggle-button-list" = callPackage
@@ -108256,8 +110392,8 @@ self: {
      }:
      mkDerivation {
        pname = "gtk3";
-       version = "0.15.4";
-       sha256 = "17g93j8az1gqgf9kxg1k1lls6c0if45bzgbhrc99qgm8s9f2dr1c";
+       version = "0.15.5";
+       sha256 = "1y5wmxxpvhfw1ypli3f48k5bg3hfbx081d9xr5ks8sj3g7f7cf60";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -108270,6 +110406,21 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) gtk3;};
 
+  "gtk3-helpers" = callPackage
+    ({ mkDerivation, array, base, gio, glib, gtk3, mtl, process
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "gtk3-helpers";
+       version = "0.1.0";
+       sha256 = "174sd1qxim74ixmssihbcka372s22f05xpc50wdi0h1nd8mzpk1r";
+       libraryHaskellDepends = [
+         array base gio glib gtk3 mtl process template-haskell
+       ];
+       description = "A collection of auxiliary operations and widgets related to Gtk";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "gtk3-mac-integration" = callPackage
     ({ mkDerivation, array, base, Cabal, containers, glib
      , gtk-mac-integration-gtk3, gtk2hs-buildtools, gtk3, mtl
@@ -109189,8 +111340,8 @@ self: {
      }:
      mkDerivation {
        pname = "hablog";
-       version = "0.6.0";
-       sha256 = "0373kjd67iivrrr6kcjrhcqkk2wrxfx9zz3qn58mhycp8w78biaq";
+       version = "0.7.0";
+       sha256 = "0zz1nhbajxg0nzgrx78xvwj5p4h6b0wjg37hjx58ahlfcxc6gvl6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -109799,6 +111950,8 @@ self: {
        pname = "hackage-security";
        version = "0.6.0.1";
        sha256 = "05rgz31cmp52137j4jk0074z8lfgk8mrf2x56bzw28asmxrv8qli";
+       revision = "4";
+       editedCabalFile = "06d4xqmpqarisxlm0sp87w2z9rl62p08z5ra5swkvfwn36i9zr15";
        libraryHaskellDepends = [
          base base16-bytestring base64-bytestring bytestring Cabal
          containers cryptohash-sha256 directory ed25519 filepath ghc-prim
@@ -110026,34 +112179,35 @@ self: {
 
   "hackport" = callPackage
     ({ mkDerivation, array, async, base, base16-bytestring
-     , base64-bytestring, binary, bytestring, containers, cryptohash
-     , deepseq, directory, ed25519, extensible-exceptions, filepath
-     , ghc-prim, hashable, HTTP, HUnit, MissingH, mtl, network
-     , network-uri, old-locale, old-time, parsec, pretty, process
-     , random, regex-compat, split, stm, tar, template-haskell, text
-     , time, transformers, unix, xml, zlib
+     , base64-bytestring, binary, bytestring, containers
+     , cryptohash-sha256, deepseq, directory, doctest, ed25519
+     , extensible-exceptions, filepath, ghc-prim, hashable, hspec
+     , hspec-discover, HTTP, lukko, mtl, network, network-uri
+     , old-locale, parsec, pretty, process, QuickCheck, random, split
+     , stm, tar, template-haskell, text, time, transformers, unix, xml
+     , zlib
      }:
      mkDerivation {
        pname = "hackport";
-       version = "0.6.4";
-       sha256 = "185b2mincqzla8j675lv4ydi8fvsj3ikyq4g8jivygbkcpawi5f5";
+       version = "0.6.6";
+       sha256 = "0cdwcrk8cqfbfi2kg074zmiq3j5fv3790inwc4hxwhrhv34hz437";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          array async base base16-bytestring base64-bytestring binary
-         bytestring containers cryptohash deepseq directory ed25519
-         extensible-exceptions filepath ghc-prim hashable HTTP MissingH mtl
-         network network-uri old-locale old-time parsec pretty process
-         random regex-compat split stm tar template-haskell text time
-         transformers unix xml zlib
+         bytestring containers cryptohash-sha256 deepseq directory ed25519
+         extensible-exceptions filepath ghc-prim hashable HTTP lukko mtl
+         network network-uri old-locale parsec pretty process random split
+         stm tar template-haskell text time transformers unix xml zlib
        ];
        testHaskellDepends = [
-         array base binary bytestring containers deepseq directory
-         extensible-exceptions filepath HUnit parsec pretty process split
-         text time transformers unix xml
+         array base binary bytestring containers deepseq directory doctest
+         extensible-exceptions filepath hspec mtl parsec pretty process
+         QuickCheck split template-haskell text time transformers unix xml
        ];
+       testToolDepends = [ hspec-discover ];
        description = "Hackage and Portage integration tool";
-       license = "GPL";
+       license = stdenv.lib.licenses.gpl3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -110849,8 +113003,8 @@ self: {
      }:
      mkDerivation {
        pname = "hakyll";
-       version = "4.13.3.0";
-       sha256 = "1wadcvxpr7w1gm1pmi9j8bm6x0i44ik806j73mzfb1d4wb1ck10p";
+       version = "4.13.4.0";
+       sha256 = "0gcs79jmpayndfsmmb40avrgyl4f0f1brprm2l0mvybfah84h2m3";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -110871,6 +113025,8 @@ self: {
        testToolDepends = [ utillinux ];
        description = "A static website compiler library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) utillinux;};
 
   "hakyll-R" = callPackage
@@ -110895,8 +113051,8 @@ self: {
      }:
      mkDerivation {
        pname = "hakyll-agda";
-       version = "0.1.11";
-       sha256 = "19zgpwmip8fcl9sai6ykhrsp4vkzpjnapkyccbg904qa1xwmlf8k";
+       version = "0.1.12";
+       sha256 = "0fa2pw3zaqrxr2in3bb63w7wmch7345lmn84z25s80z0if9qv2x3";
        libraryHaskellDepends = [
          Agda base containers directory filepath hakyll mtl pandoc text
          transformers xhtml
@@ -110984,6 +113140,8 @@ self: {
        libraryHaskellDepends = [ base hakyll hyphenation split tagsoup ];
        description = "automatic hyphenation for Hakyll";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-contrib-links" = callPackage
@@ -111048,6 +113206,8 @@ self: {
        executableHaskellDepends = [ base dhall hakyll ];
        description = "Dhall compiler for Hakyll";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-dir-list" = callPackage
@@ -111060,7 +113220,7 @@ self: {
        libraryHaskellDepends = [
          base containers data-default filepath hakyll
        ];
-       description = "Allow Hakyll to create hierarchical menues from directories.";
+       description = "Allow Hakyll to create hierarchical menues from directories";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -111092,6 +113252,8 @@ self: {
        executableHaskellDepends = [ base hakyll ];
        testHaskellDepends = [ base ];
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-filestore" = callPackage
@@ -111129,6 +113291,8 @@ self: {
        ];
        description = "Hakyll utilities to work with images";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-ogmarkup" = callPackage
@@ -111157,6 +113321,8 @@ self: {
        ];
        description = "Hakyll SASS compiler over hsass";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-series" = callPackage
@@ -111187,6 +113353,8 @@ self: {
        ];
        description = "Hakyll Hamlet compiler";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hakyll-shortcode" = callPackage
@@ -111249,18 +113417,17 @@ self: {
      }) {};
 
   "hal" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, envy
-     , exceptions, http-conduit, http-types, mtl, text, time
+    ({ mkDerivation, aeson, base, bytestring, conduit, conduit-extra
+     , containers, envy, exceptions, http-client, http-conduit
+     , http-types, mtl, text, time
      }:
      mkDerivation {
        pname = "hal";
-       version = "0.4.1";
-       sha256 = "09wmpscvwfdy57haszwnjxwqxqqf5s458h0b1pkk90pskfg7lf1d";
-       revision = "1";
-       editedCabalFile = "0n5b57l3q6wpzd7kbsn11802y1mcpsrs01sszsd5l4l57hkc71gd";
+       version = "0.4.4";
+       sha256 = "0nqxlvbk8lb9c6hh15gn8nd9h2p0rcrllkqjli0ixqil3qpynl76";
        libraryHaskellDepends = [
-         aeson base bytestring containers envy exceptions http-conduit
-         http-types mtl text time
+         aeson base bytestring conduit conduit-extra containers envy
+         exceptions http-client http-conduit http-types mtl text time
        ];
        description = "A runtime environment for Haskell applications running on AWS Lambda";
        license = stdenv.lib.licenses.bsd3;
@@ -111388,9 +113555,9 @@ self: {
      }:
      mkDerivation {
        pname = "hall-symbols";
-       version = "0.1.0.2";
-       sha256 = "05jp1l5v9vz4ai9pbz6nwcm3mzxx0k2nsj85ryi2nl9pkhfwa0l4";
-       libraryHaskellDepends = [ base doctest matrix parsec ];
+       version = "0.1.0.6";
+       sha256 = "1gf0whwmwlrnir01zi5v6bsp0864nh0qjvy59hql27hv12yypdwa";
+       libraryHaskellDepends = [ base matrix parsec ];
        testHaskellDepends = [
          base doctest hspec matrix matrix-as-xyz parsec QuickCheck
        ];
@@ -111680,8 +113847,8 @@ self: {
     ({ mkDerivation, base, containers, random }:
      mkDerivation {
        pname = "hanabi-dealer";
-       version = "0.9.1.0";
-       sha256 = "1gksjmrz1rbkfm2cw1hfz74ws0hyxv3491fw6j2j5f1gjp46fwf7";
+       version = "0.10.2.0";
+       sha256 = "0axqpa1p7lzxym8nyppc3nhbfzis8y71ywi444v3w6syyvh06ygf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers random ];
@@ -111914,6 +114081,39 @@ self: {
        broken = true;
      }) {pfq = null;};
 
+  "hanspell" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, directory, hspec
+     , html-entities, http-client, http-client-tls, http-types
+     , QuickCheck, regex-compat-tdfa, split, text, transformers, unix
+     , utf8-string
+     }:
+     mkDerivation {
+       pname = "hanspell";
+       version = "0.2.2.0";
+       sha256 = "06351wg5y9840nj1ysraa78bixk25vjn64g6fnj3d0zs2qyxd6ca";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson async base bytestring directory html-entities http-client
+         http-client-tls http-types regex-compat-tdfa split text
+         transformers unix utf8-string
+       ];
+       executableHaskellDepends = [
+         aeson async base bytestring directory html-entities http-client
+         http-client-tls http-types regex-compat-tdfa split text
+         transformers unix utf8-string
+       ];
+       testHaskellDepends = [
+         aeson async base bytestring directory hspec html-entities
+         http-client http-client-tls http-types QuickCheck regex-compat-tdfa
+         split text transformers unix utf8-string
+       ];
+       description = "Korean spell checker";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "haphviz" = callPackage
     ({ mkDerivation, base, checkers, hspec, mtl, QuickCheck
      , quickcheck-text, text
@@ -111942,8 +114142,8 @@ self: {
      }:
      mkDerivation {
        pname = "hapistrano";
-       version = "0.4.1.0";
-       sha256 = "1fkjg5q70qpp8y9xkzksfrdfn09psz5pydqw5bd8z4nfwhyivql8";
+       version = "0.4.1.2";
+       sha256 = "0ylahq6hnyzyhh4fb2d21fwisq8a8x5rij6zrzvhcapnir2vkrn0";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -112466,7 +114666,7 @@ self: {
          base containers happstack-data happstack-util mtl syb
          syb-with-class template-haskell
        ];
-       description = "Efficient relational queries on Haskell sets.";
+       description = "Efficient relational queries on Haskell sets";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -112747,6 +114947,22 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
+  "happy_1_20_0" = callPackage
+    ({ mkDerivation, array, base, containers, mtl, process }:
+     mkDerivation {
+       pname = "happy";
+       version = "1.20.0";
+       sha256 = "1346r2x5ravs5fqma65bzjragqbb2g6v41wz9maknwm2jf7kl79v";
+       isLibrary = false;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       executableHaskellDepends = [ array base containers mtl ];
+       testHaskellDepends = [ base process ];
+       description = "Happy is a parser generator for Haskell";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "happy-dot" = callPackage
     ({ mkDerivation, array, base, clock, happy, HUnit, language-dot
      , pretty, transformers, xml
@@ -112786,8 +115002,8 @@ self: {
      }:
      mkDerivation {
        pname = "happy-meta";
-       version = "0.2.0.10";
-       sha256 = "1w6shcydpca5g9dgnki0w2xqr9mf17xa18s8hxxm3z3dd0sp1db9";
+       version = "0.2.0.11";
+       sha256 = "1vgv5fx1fya7wfh3zwdgy0hm0lyzp171gnpp6ymfd6kqmqkl3293";
        libraryHaskellDepends = [
          array base containers fail haskell-src-meta mtl template-haskell
        ];
@@ -112967,8 +115183,8 @@ self: {
      }:
      mkDerivation {
        pname = "harg";
-       version = "0.4.2.0";
-       sha256 = "14a5d73klg7da1pg30as9xnky95jxh1kl0qrzihvgd5m2kybsrb0";
+       version = "0.4.2.1";
+       sha256 = "0fbbf9zxfbyc6mnsybrd81sd87ps6qwks5zv5kmjygc6w8ngh6vh";
        libraryHaskellDepends = [
          aeson barbies base bytestring directory higgledy
          optparse-applicative split text yaml
@@ -113235,6 +115451,43 @@ self: {
        broken = true;
      }) {};
 
+  "hascard" = callPackage
+    ({ mkDerivation, base, brick, containers, directory, filepath
+     , megaparsec, microlens, microlens-platform, mwc-random
+     , optparse-applicative, ordered-containers, process, random-fu
+     , split, strict, tasty, tasty-hunit, tasty-quickcheck, text, vector
+     , vty, word-wrap
+     }:
+     mkDerivation {
+       pname = "hascard";
+       version = "0.4.0.0";
+       sha256 = "1rkcnpv22bfiyzmfdk82531yv6mh6g7imjch9qy8sxda2d73fdm7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base brick containers directory filepath megaparsec microlens
+         microlens-platform mwc-random optparse-applicative
+         ordered-containers process random-fu split strict tasty tasty-hunit
+         tasty-quickcheck text vector vty word-wrap
+       ];
+       executableHaskellDepends = [
+         base brick containers directory filepath megaparsec microlens
+         microlens-platform mwc-random optparse-applicative
+         ordered-containers process random-fu split strict tasty tasty-hunit
+         tasty-quickcheck text vector vty word-wrap
+       ];
+       testHaskellDepends = [
+         base brick containers directory filepath megaparsec microlens
+         microlens-platform mwc-random optparse-applicative
+         ordered-containers process random-fu split strict tasty tasty-hunit
+         tasty-quickcheck text vector vty word-wrap
+       ];
+       description = "A TUI for reviewing notes using 'flashcards' written with markdown-like syntax";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hascas" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers
      , data-binary-ieee754, hspec, mtl, network, safe-exceptions, stm
@@ -113415,6 +115668,18 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hashable-accelerate" = callPackage
+    ({ mkDerivation, accelerate, base, template-haskell }:
+     mkDerivation {
+       pname = "hashable-accelerate";
+       version = "0.1.0.0";
+       sha256 = "04cfwd1vyz4xm87ah3x1avs2yzqi6ygcd3sl70v50g492dfl6738";
+       libraryHaskellDepends = [ accelerate base template-haskell ];
+       description = "A class for types which can be converted into a hash value";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hashable-extras" = callPackage
     ({ mkDerivation, base, bifunctors, bytestring, directory, doctest
      , filepath, hashable, transformers, transformers-compat
@@ -113585,6 +115850,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hashmap-throw" = callPackage
+    ({ mkDerivation, base, exceptions, hashable, hashmap }:
+     mkDerivation {
+       pname = "hashmap-throw";
+       version = "0.1.0.0";
+       sha256 = "0dibdmpb6nyhn37xfdw8wgam4a2w8b3hl04ivg08d1ybq4a4m1k5";
+       libraryHaskellDepends = [ base exceptions hashable hashmap ];
+       description = "Throw behaviour for hashmap lookup";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "hashrename" = callPackage
     ({ mkDerivation, base, bytestring, cryptohash, directory, filepath
      }:
@@ -113638,14 +115914,22 @@ self: {
      }) {};
 
   "hashtables" = callPackage
-    ({ mkDerivation, base, ghc-prim, hashable, primitive, vector }:
+    ({ mkDerivation, base, ghc-prim, hashable, HUnit, mwc-random
+     , primitive, QuickCheck, test-framework, test-framework-hunit
+     , test-framework-quickcheck2, vector
+     }:
      mkDerivation {
        pname = "hashtables";
-       version = "1.2.3.4";
-       sha256 = "1rjmxnr30g4hygiywkpz5p9sanh0abs7ap4zc1kgd8zv04kycp0j";
+       version = "1.2.4.1";
+       sha256 = "0vgggm7bqq55zmqj6qji89bfj3k1rdkikkfhyg81vsqf0f3bzhqa";
        libraryHaskellDepends = [
          base ghc-prim hashable primitive vector
        ];
+       testHaskellDepends = [
+         base ghc-prim hashable HUnit mwc-random primitive QuickCheck
+         test-framework test-framework-hunit test-framework-quickcheck2
+         vector
+       ];
        description = "Mutable hash tables in the ST monad";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -113892,15 +116176,15 @@ self: {
        broken = true;
      }) {};
 
-  "haskeline_0_8_0_0" = callPackage
+  "haskeline_0_8_1_0" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory
      , exceptions, filepath, HUnit, process, stm, terminfo, text
      , transformers, unix
      }:
      mkDerivation {
        pname = "haskeline";
-       version = "0.8.0.0";
-       sha256 = "0gqsa5s0drim9m42hv4wrq61mnvcdylxysfxfw3acncwilfrn9pb";
+       version = "0.8.1.0";
+       sha256 = "0r6skxr45k0qq5vlh9dyl5g5ham994b8z0k3z3v56bi3npvyi6xw";
        configureFlags = [ "-fterminfo" ];
        isLibrary = true;
        isExecutable = true;
@@ -114140,10 +116424,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-ci";
-       version = "0.10.1";
-       sha256 = "12163dy550vzd64ylhibh0s8a19mcyk9rsxv8vjshp4hac4qqiy8";
-       revision = "1";
-       editedCabalFile = "1wi10wwkkzf81nya8p9pybsnbxpixxafdfqwf1x6wz1260ga62jh";
+       version = "0.10.3";
+       sha256 = "18qynghm1aj0qr18v6m3md75p2l3kyhki03798jwhi4kc5qdk2vv";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -114354,13 +116636,13 @@ self: {
      }) {};
 
   "haskell-exp-parser" = callPackage
-    ({ mkDerivation, base, template-haskell }:
+    ({ mkDerivation, base, syb, template-haskell }:
      mkDerivation {
        pname = "haskell-exp-parser";
-       version = "0.1.1";
-       sha256 = "0p4p5ygw068chw6grci8mny2a1bn6nz74jm1q2sj97v7gglglg55";
+       version = "0.1.3";
+       sha256 = "0cswfpdw6sgmd0fhdpyfi2nk0mhvl8xpv4zfkl9l3wdk5ipbcxdf";
        libraryHaskellDepends = [ base template-haskell ];
-       testHaskellDepends = [ base template-haskell ];
+       testHaskellDepends = [ base syb template-haskell ];
        description = "Simple parser parser from Haskell to TemplateHaskell expressions";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -114378,6 +116660,8 @@ self: {
        libraryHaskellDepends = [ base bytestring lens tagsoup wreq ];
        description = "Simple library for retrieving current user agent strings";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "haskell-formatter" = callPackage
@@ -114497,6 +116781,29 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) glib; inherit (pkgs) gobject-introspection;};
 
+  "haskell-gi_0_24_4" = callPackage
+    ({ mkDerivation, ansi-terminal, attoparsec, base, bytestring, Cabal
+     , cabal-doctest, containers, directory, doctest, filepath, glib
+     , gobject-introspection, haskell-gi-base, mtl, pretty-show, process
+     , regex-tdfa, safe, text, transformers, xdg-basedir, xml-conduit
+     }:
+     mkDerivation {
+       pname = "haskell-gi";
+       version = "0.24.4";
+       sha256 = "0q2r8y9ca3w389sx613jz95hg9cssj6g4i2xyi8423nyqvyzms48";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         ansi-terminal attoparsec base bytestring Cabal containers directory
+         filepath haskell-gi-base mtl pretty-show process regex-tdfa safe
+         text transformers xdg-basedir xml-conduit
+       ];
+       libraryPkgconfigDepends = [ glib gobject-introspection ];
+       testHaskellDepends = [ base doctest process ];
+       description = "Generate Haskell bindings for GObject Introspection capable libraries";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) glib; inherit (pkgs) gobject-introspection;};
+
   "haskell-gi-base" = callPackage
     ({ mkDerivation, base, bytestring, containers, glib, text }:
      mkDerivation {
@@ -114509,6 +116816,19 @@ self: {
        license = stdenv.lib.licenses.lgpl21;
      }) {inherit (pkgs) glib;};
 
+  "haskell-gi-base_0_24_3" = callPackage
+    ({ mkDerivation, base, bytestring, containers, glib, text }:
+     mkDerivation {
+       pname = "haskell-gi-base";
+       version = "0.24.3";
+       sha256 = "007qy63s9d6rdhybnd7cfb5jsx0kzg7lbgximxkh5rd66bjbk9pc";
+       libraryHaskellDepends = [ base bytestring containers text ];
+       libraryPkgconfigDepends = [ glib ];
+       description = "Foundation for libraries generated by haskell-gi";
+       license = stdenv.lib.licenses.lgpl21;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) glib;};
+
   "haskell-gi-overloading_0_0" = callPackage
     ({ mkDerivation }:
      mkDerivation {
@@ -114563,6 +116883,8 @@ self: {
        ];
        description = "Simple library for accessing Google Trends";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "haskell-holes-th" = callPackage
@@ -114673,35 +116995,6 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-lsp";
-       version = "0.20.0.1";
-       sha256 = "1yy9j61hlar4y8p58q8a0i3c6qmv5h9f53kk48jsvfa59c3dz92b";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson async attoparsec base bytestring containers data-default
-         directory filepath hashable haskell-lsp-types hslogger lens mtl
-         network-uri rope-utf16-splay sorted-list stm temporary text time
-         unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson base bytestring containers data-default directory filepath
-         hashable hspec lens network-uri QuickCheck quickcheck-instances
-         rope-utf16-splay sorted-list stm text unordered-containers
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Haskell library for the Microsoft Language Server Protocol";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "haskell-lsp_0_22_0_0" = callPackage
-    ({ mkDerivation, aeson, async, attoparsec, base, bytestring
-     , containers, data-default, directory, filepath, hashable
-     , haskell-lsp-types, hslogger, hspec, hspec-discover, lens, mtl
-     , network-uri, QuickCheck, quickcheck-instances, rope-utf16-splay
-     , sorted-list, stm, temporary, text, time, unordered-containers
-     }:
-     mkDerivation {
-       pname = "haskell-lsp";
        version = "0.22.0.0";
        sha256 = "0mh2b3dza633plxp370zhvml50kfx4szk4hrzmcfm6aij2di2l0w";
        isLibrary = true;
@@ -114720,7 +117013,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Haskell library for the Microsoft Language Server Protocol";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "haskell-lsp-client" = callPackage
@@ -114746,23 +117038,6 @@ self: {
      }) {};
 
   "haskell-lsp-types" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, data-default, deepseq
-     , filepath, hashable, lens, network-uri, scientific, text
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "haskell-lsp-types";
-       version = "0.20.0.0";
-       sha256 = "09p0d4vibrm06kj8i1yq9zhnkxl87yg5085l1sy9m20z8j988waq";
-       libraryHaskellDepends = [
-         aeson base bytestring data-default deepseq filepath hashable lens
-         network-uri scientific text unordered-containers
-       ];
-       description = "Haskell library for the Microsoft Language Server Protocol, data types";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "haskell-lsp-types_0_22_0_0" = callPackage
     ({ mkDerivation, aeson, base, binary, bytestring, data-default
      , deepseq, filepath, hashable, lens, network-uri, scientific, text
      , unordered-containers
@@ -114777,7 +117052,6 @@ self: {
        ];
        description = "Haskell library for the Microsoft Language Server Protocol, data types";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "haskell-menu" = callPackage
@@ -115084,17 +117358,17 @@ self: {
 
   "haskell-postgis" = callPackage
     ({ mkDerivation, aeson, base, binary, bytestring, bytestring-lexing
-     , cpu, data-binary-ieee754, hspec, mtl, placeholders, text
+     , cpu, data-binary-ieee754, either, hspec, mtl, placeholders, text
      , unordered-containers, vector
      }:
      mkDerivation {
        pname = "haskell-postgis";
-       version = "0.1.0.2";
-       sha256 = "0p3zdrzfsz3qj3rcx3yihg7vffa261ig5lywrfls5qvqihw62m41";
+       version = "0.2.0";
+       sha256 = "0y3di09hyxr5jhwrdqk2548h09x71pd7f1dhv3g6118pzdfps6nk";
        libraryHaskellDepends = [
          aeson base binary bytestring bytestring-lexing cpu
-         data-binary-ieee754 mtl placeholders text unordered-containers
-         vector
+         data-binary-ieee754 either mtl placeholders text
+         unordered-containers vector
        ];
        testHaskellDepends = [
          aeson base binary bytestring bytestring-lexing cpu
@@ -115238,6 +117512,8 @@ self: {
        pname = "haskell-src";
        version = "1.0.3.1";
        sha256 = "0cjigvshk4b8wqdk0v0hz9ag1kyjjsmqsy4a1m3n28ac008cg746";
+       revision = "1";
+       editedCabalFile = "1li6czcs54wnij6qnvpx6f66iiw023pggb3zl3jvp74qqflcf5sg";
        libraryHaskellDepends = [ array base pretty syb ];
        libraryToolDepends = [ happy ];
        description = "Support for manipulating Haskell source code";
@@ -115274,26 +117550,6 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-src-exts";
-       version = "1.22.0";
-       sha256 = "1wc3w1kkrlagbbbgqflqx4xwqk36wsng7r3wyjflvlas4sf3xmg0";
-       libraryHaskellDepends = [ array base ghc-prim pretty ];
-       libraryToolDepends = [ happy ];
-       testHaskellDepends = [
-         base containers directory filepath mtl pretty-show smallcheck tasty
-         tasty-golden tasty-smallcheck
-       ];
-       doCheck = false;
-       description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "haskell-src-exts_1_23_1" = callPackage
-    ({ mkDerivation, array, base, containers, directory, filepath
-     , ghc-prim, happy, mtl, pretty, pretty-show, smallcheck, tasty
-     , tasty-golden, tasty-smallcheck
-     }:
-     mkDerivation {
-       pname = "haskell-src-exts";
        version = "1.23.1";
        sha256 = "01bcrxs9af4yqpclw43aijmsd1g19qhyzb47blz7vzwz2r3k11b7";
        libraryHaskellDepends = [ array base ghc-prim pretty ];
@@ -115305,7 +117561,6 @@ self: {
        doCheck = false;
        description = "Manipulating Haskell source: abstract syntax, lexer, parser, and pretty-printer";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "haskell-src-exts-observe" = callPackage
@@ -115398,6 +117653,28 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "haskell-src-match" = callPackage
+    ({ mkDerivation, base, containers, filepath, haskell-src-exts
+     , hspec, interpolatedstring-perl6, pretty-simple, split
+     , template-haskell, text, transformers
+     }:
+     mkDerivation {
+       pname = "haskell-src-match";
+       version = "0.0.0.1";
+       sha256 = "0lhdnmzmwxsiw0if600apdvmkbqz44zwr7sypfclixl9c6h31wg0";
+       libraryHaskellDepends = [
+         base containers haskell-src-exts interpolatedstring-perl6
+         pretty-simple split template-haskell transformers
+       ];
+       testHaskellDepends = [
+         base filepath hspec interpolatedstring-perl6 template-haskell text
+       ];
+       description = "Testing code generators piece by piece";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "haskell-src-meta" = callPackage
     ({ mkDerivation, base, containers, haskell-src-exts, HUnit, pretty
      , syb, tasty, tasty-hunit, template-haskell, th-orphans
@@ -115475,8 +117752,8 @@ self: {
      }:
      mkDerivation {
        pname = "haskell-to-elm";
-       version = "0.3.0.0";
-       sha256 = "02gspfwiif3a38fsfv0pxia7lcqyqppf9pnrbirnqdcry721mcvy";
+       version = "0.3.1.0";
+       sha256 = "0gplmz0s874zi8y8m06mlr3lipyffw0p6lfz6snl0sgdmynjg786";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -116284,7 +118561,7 @@ self: {
        version = "1.0.0";
        sha256 = "0j1aqix21pqcsw7skl897pd1ir6hg836g4zb2h5338h4gih6blx0";
        libraryHaskellDepends = [ base haskelldb hsql mtl old-time ];
-       description = "HaskellDB support for HSQL.";
+       description = "HaskellDB support for HSQL";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -116442,6 +118719,8 @@ self: {
        ];
        description = "For parsing Haskell-ish languages";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "haskellscrabble" = callPackage
@@ -116772,54 +119051,55 @@ self: {
      }:
      mkDerivation {
        pname = "haskoin-core";
-       version = "0.10.1";
-       sha256 = "0gfszpi453736lv7amfmknf9sfpxh071lvxfgaxyi3bshr2kibhz";
+       version = "0.13.4";
+       sha256 = "0bxn1jfb2s308gpdiwwnvar606qc3fqnvf6k0hdz2x43pqkc15lb";
        libraryHaskellDepends = [
          aeson array base base16-bytestring bytestring cereal conduit
+         containers cryptonite deepseq entropy hashable memory mtl murmur3
+         network safe scientific secp256k1-haskell split string-conversions
+         text time transformers unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson array base base16-bytestring bytestring cereal conduit
          containers cryptonite deepseq entropy hashable hspec HUnit memory
          mtl murmur3 network QuickCheck safe scientific secp256k1-haskell
          split string-conversions text time transformers
          unordered-containers vector
        ];
-       testHaskellDepends = [
-         aeson base bytestring cereal containers deepseq hspec HUnit mtl
-         QuickCheck safe split string-conversions text unordered-containers
-         vector
-       ];
        testToolDepends = [ hspec-discover ];
        description = "Bitcoin & Bitcoin Cash library for Haskell";
        license = stdenv.lib.licenses.publicDomain;
      }) {};
 
-  "haskoin-core_0_13_6" = callPackage
+  "haskoin-core_0_15_0" = callPackage
     ({ mkDerivation, aeson, array, base, base16-bytestring, bytestring
      , cereal, conduit, containers, cryptonite, deepseq, entropy
-     , hashable, hspec, hspec-discover, HUnit, memory, mtl, murmur3
-     , network, QuickCheck, safe, scientific, secp256k1-haskell, split
-     , string-conversions, text, time, transformers
-     , unordered-containers, vector
+     , hashable, hspec, hspec-discover, HUnit, lens, lens-aeson, memory
+     , mtl, murmur3, network, QuickCheck, safe, scientific
+     , secp256k1-haskell, split, string-conversions, text, time
+     , transformers, unordered-containers, vector
      }:
      mkDerivation {
        pname = "haskoin-core";
-       version = "0.13.6";
-       sha256 = "1xj88wcvsjxhhf7ynxhqsdjc2rc2mcvqwsw6r7ykz6xzap2h9jwz";
+       version = "0.15.0";
+       sha256 = "1mvhp7khbjf3wxvgwgdxgbl8ylb4vhgiirq50dwi62p65w75xw1v";
        libraryHaskellDepends = [
          aeson array base base16-bytestring bytestring cereal conduit
-         containers cryptonite deepseq entropy hashable memory mtl murmur3
-         network QuickCheck safe scientific secp256k1-haskell split
+         containers cryptonite deepseq entropy hashable hspec memory mtl
+         murmur3 network QuickCheck safe scientific secp256k1-haskell split
          string-conversions text time transformers unordered-containers
          vector
        ];
        testHaskellDepends = [
          aeson array base base16-bytestring bytestring cereal conduit
-         containers cryptonite deepseq entropy hashable hspec HUnit memory
-         mtl murmur3 network QuickCheck safe scientific secp256k1-haskell
-         split string-conversions text time transformers
+         containers cryptonite deepseq entropy hashable hspec HUnit lens
+         lens-aeson memory mtl murmur3 network QuickCheck safe scientific
+         secp256k1-haskell split string-conversions text time transformers
          unordered-containers vector
        ];
        testToolDepends = [ hspec-discover ];
        description = "Bitcoin & Bitcoin Cash library for Haskell";
-       license = stdenv.lib.licenses.publicDomain;
+       license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
@@ -116848,17 +119128,17 @@ self: {
      }) {};
 
   "haskoin-node" = callPackage
-    ({ mkDerivation, base, bytestring, cereal, conduit, conduit-extra
-     , containers, data-default, hashable, haskoin-core, hspec
-     , hspec-discover, HUnit, monad-logger, mtl, network, nqe, random
-     , resourcet, rocksdb-haskell, rocksdb-query, safe
+    ({ mkDerivation, base, base64, bytestring, cereal, conduit
+     , conduit-extra, containers, data-default, hashable, haskoin-core
+     , hspec, hspec-discover, HUnit, monad-logger, mtl, network, nqe
+     , random, resourcet, rocksdb-haskell, rocksdb-query, safe
      , string-conversions, text, time, transformers, unliftio
      , unordered-containers
      }:
      mkDerivation {
        pname = "haskoin-node";
-       version = "0.9.21";
-       sha256 = "1yhrxw1j4ynrn7bp1lpnbi13d32pdzg8waf96gx3r6shybb9nx4k";
+       version = "0.13.0";
+       sha256 = "0s6l25n9w4g5r2xafb6x1gdqaghfmrnzh9i3nn64c3g26xzk3vnp";
        libraryHaskellDepends = [
          base bytestring cereal conduit conduit-extra containers
          data-default hashable haskoin-core monad-logger mtl network nqe
@@ -116866,7 +119146,7 @@ self: {
          text time transformers unliftio unordered-containers
        ];
        testHaskellDepends = [
-         base bytestring cereal conduit conduit-extra containers
+         base base64 bytestring cereal conduit conduit-extra containers
          data-default hashable haskoin-core hspec HUnit monad-logger mtl
          network nqe random resourcet rocksdb-haskell rocksdb-query safe
          string-conversions text time transformers unliftio
@@ -116879,34 +119159,35 @@ self: {
        broken = true;
      }) {};
 
-  "haskoin-node_0_13_0" = callPackage
+  "haskoin-node_0_16_0" = callPackage
     ({ mkDerivation, base, base64, bytestring, cereal, conduit
      , conduit-extra, containers, data-default, hashable, haskoin-core
      , hspec, hspec-discover, HUnit, monad-logger, mtl, network, nqe
-     , random, resourcet, rocksdb-haskell, rocksdb-query, safe
+     , random, resourcet, rocksdb-haskell-jprupp, rocksdb-query, safe
      , string-conversions, text, time, transformers, unliftio
      , unordered-containers
      }:
      mkDerivation {
        pname = "haskoin-node";
-       version = "0.13.0";
-       sha256 = "0s6l25n9w4g5r2xafb6x1gdqaghfmrnzh9i3nn64c3g26xzk3vnp";
+       version = "0.16.0";
+       sha256 = "0az8lv5xkbhfff9hq3r0kndz2hp3q6f1h6za85qj8v5755za61c8";
        libraryHaskellDepends = [
          base bytestring cereal conduit conduit-extra containers
          data-default hashable haskoin-core monad-logger mtl network nqe
-         random resourcet rocksdb-haskell rocksdb-query string-conversions
-         text time transformers unliftio unordered-containers
+         random resourcet rocksdb-haskell-jprupp rocksdb-query
+         string-conversions text time transformers unliftio
+         unordered-containers
        ];
        testHaskellDepends = [
          base base64 bytestring cereal conduit conduit-extra containers
          data-default hashable haskoin-core hspec HUnit monad-logger mtl
-         network nqe random resourcet rocksdb-haskell rocksdb-query safe
-         string-conversions text time transformers unliftio
+         network nqe random resourcet rocksdb-haskell-jprupp rocksdb-query
+         safe string-conversions text time transformers unliftio
          unordered-containers
        ];
        testToolDepends = [ hspec-discover ];
-       description = "Haskoin Node P2P library for Bitcoin and Bitcoin Cash";
-       license = stdenv.lib.licenses.publicDomain;
+       description = "P2P library for Bitcoin and Bitcoin Cash";
+       license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -116958,69 +119239,76 @@ self: {
      }) {};
 
   "haskoin-store" = callPackage
-    ({ mkDerivation, aeson, base, base64, bytestring, cereal, conduit
-     , containers, data-default, deepseq, filepath, hashable
-     , haskoin-core, haskoin-node, haskoin-store-data, hedis, hspec
-     , hspec-discover, http-types, monad-logger, mtl, network, nqe
-     , optparse-applicative, QuickCheck, random, rocksdb-haskell
-     , rocksdb-query, scotty, string-conversions, text, time
-     , transformers, unliftio, unordered-containers, wai, warp
+    ({ mkDerivation, aeson, aeson-pretty, base, base64, bytestring
+     , cereal, conduit, containers, data-default, deepseq, filepath
+     , hashable, haskoin-core, haskoin-node, haskoin-store-data, hedis
+     , hspec, hspec-discover, http-types, monad-logger, mtl, network
+     , nqe, optparse-applicative, QuickCheck, random
+     , rocksdb-haskell-jprupp, rocksdb-query, scotty, string-conversions
+     , text, time, transformers, unliftio, unordered-containers, wai
+     , warp
      }:
      mkDerivation {
        pname = "haskoin-store";
-       version = "0.30.1";
-       sha256 = "0g1zx2wwg42rjyymz4hz0cw663k5fprln705ncyn9mkyhxdr4j56";
+       version = "0.37.5";
+       sha256 = "0ac1znif59fzcxcl3nmvrv6v49rzlcgsv138zgjnk7zxarp8alyg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base bytestring cereal conduit containers data-default
-         deepseq hashable haskoin-core haskoin-node haskoin-store-data hedis
-         http-types monad-logger mtl network nqe random rocksdb-haskell
-         rocksdb-query scotty string-conversions text time transformers
-         unliftio unordered-containers wai warp
+         aeson aeson-pretty base bytestring cereal conduit containers
+         data-default deepseq hashable haskoin-core haskoin-node
+         haskoin-store-data hedis http-types monad-logger mtl network nqe
+         random rocksdb-haskell-jprupp rocksdb-query scotty
+         string-conversions text time transformers unliftio
+         unordered-containers wai warp
        ];
        executableHaskellDepends = [
-         aeson base bytestring cereal conduit containers data-default
-         deepseq filepath hashable haskoin-core haskoin-node
+         aeson aeson-pretty base bytestring cereal conduit containers
+         data-default deepseq filepath hashable haskoin-core haskoin-node
          haskoin-store-data monad-logger mtl nqe optparse-applicative random
          string-conversions text time transformers unliftio
          unordered-containers
        ];
        testHaskellDepends = [
-         aeson base base64 bytestring cereal conduit containers data-default
-         deepseq hashable haskoin-core haskoin-node haskoin-store-data hedis
-         hspec http-types monad-logger mtl network nqe QuickCheck random
-         rocksdb-haskell rocksdb-query scotty string-conversions text time
-         transformers unliftio unordered-containers wai warp
+         aeson aeson-pretty base base64 bytestring cereal conduit containers
+         data-default deepseq hashable haskoin-core haskoin-node
+         haskoin-store-data hedis hspec http-types monad-logger mtl network
+         nqe QuickCheck random rocksdb-haskell-jprupp rocksdb-query scotty
+         string-conversions text time transformers unliftio
+         unordered-containers wai warp
        ];
        testToolDepends = [ hspec-discover ];
        description = "Storage and index for Bitcoin and Bitcoin Cash";
-       license = stdenv.lib.licenses.publicDomain;
+       license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
   "haskoin-store-data" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cereal, containers
-     , deepseq, hashable, haskoin-core, hspec, hspec-discover, network
-     , QuickCheck, scotty, string-conversions, text
+     , data-default, deepseq, hashable, haskoin-core, hspec
+     , hspec-discover, http-client, http-types, lens, mtl, network
+     , QuickCheck, scotty, string-conversions, text, wreq
      }:
      mkDerivation {
        pname = "haskoin-store-data";
-       version = "0.30.1";
-       sha256 = "0an2nddirp1rdqagziahcq2zvbazydzyh06yqly3h1g1bbkwn44g";
+       version = "0.37.5";
+       sha256 = "1p8hsnwr0h0sbnwg1kwbal36q4bh3s0daz1a5n2c8xal5xdkbdra";
        libraryHaskellDepends = [
-         aeson base bytestring cereal containers deepseq hashable
-         haskoin-core network scotty string-conversions text
+         aeson base bytestring cereal containers data-default deepseq
+         hashable haskoin-core http-client http-types lens mtl network
+         scotty string-conversions text wreq
        ];
        testHaskellDepends = [
-         aeson base bytestring cereal containers deepseq hashable
-         haskoin-core hspec network QuickCheck scotty string-conversions
-         text
+         aeson base bytestring cereal containers data-default deepseq
+         hashable haskoin-core hspec http-client http-types lens mtl network
+         QuickCheck scotty string-conversions text wreq
        ];
        testToolDepends = [ hspec-discover ];
        description = "Data for Haskoin Store";
-       license = stdenv.lib.licenses.publicDomain;
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "haskoin-util" = callPackage
@@ -117267,6 +119555,8 @@ self: {
        ];
        description = "Simple unsupervised segmentation model";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hasktags" = callPackage
@@ -117576,18 +119866,16 @@ self: {
   "haskus-binary" = callPackage
     ({ mkDerivation, base, bytestring, cereal, criterion, directory
      , doctest, filepath, ghc-prim, haskus-utils, haskus-utils-data
-     , haskus-utils-types, megaparsec, mtl, primitive, QuickCheck, tasty
+     , haskus-utils-types, megaparsec, mtl, QuickCheck, tasty
      , tasty-quickcheck, template-haskell, transformers
      }:
      mkDerivation {
        pname = "haskus-binary";
-       version = "1.4";
-       sha256 = "0riqgfy9ai1vb7555l1w9rfcp10ylg7sbk46ph1f2y00pjbxsmv3";
-       revision = "1";
-       editedCabalFile = "1b1dxsrl6iq97dbjsw90jpy6s37dik245w4jgaj2pgqsw1w1vz5h";
+       version = "1.5";
+       sha256 = "1dvsfkbmca4lr586iaj8yad8csxmimaffwwfqijczafzikysh1ah";
        libraryHaskellDepends = [
          base bytestring cereal directory filepath ghc-prim haskus-utils
-         haskus-utils-data haskus-utils-types megaparsec mtl primitive
+         haskus-utils-data haskus-utils-types megaparsec mtl
          template-haskell transformers
        ];
        testHaskellDepends = [
@@ -117647,16 +119935,16 @@ self: {
      }) {};
 
   "haskus-utils-compat" = callPackage
-    ({ mkDerivation, base, bytestring, directory, filepath
-     , haskus-binary, haskus-utils-data, template-haskell
+    ({ mkDerivation, base, bytestring, directory, filepath, formatting
+     , haskus-binary, haskus-utils-data, template-haskell, text
      }:
      mkDerivation {
        pname = "haskus-utils-compat";
-       version = "1.0";
-       sha256 = "0mgklzs26xhq06gij4cn9iz69z028apmrhafd8cqar3kg75lisyx";
+       version = "1.1";
+       sha256 = "1348wa4hi2nzyvh3x82hrll2lcq98jpmibm9gi771k67qsfza4bj";
        libraryHaskellDepends = [
-         base bytestring directory filepath haskus-binary haskus-utils-data
-         template-haskell
+         base bytestring directory filepath formatting haskus-binary
+         haskus-utils-data template-haskell text
        ];
        description = "Compatibility modules with other external packages (ByteString, etc.)";
        license = stdenv.lib.licenses.bsd3;
@@ -117665,18 +119953,16 @@ self: {
      }) {};
 
   "haskus-utils-data" = callPackage
-    ({ mkDerivation, base, containers, doctest, extra, ghc-prim
+    ({ mkDerivation, base, containers, doctest, ghc-prim
      , haskus-utils-types, mtl, recursion-schemes, transformers
      }:
      mkDerivation {
        pname = "haskus-utils-data";
-       version = "1.2";
-       sha256 = "0dn07zj9v5yl0mpcnblk2y17x30wg8fag4hv9mfp3kn003217f89";
-       revision = "1";
-       editedCabalFile = "0pgaf358jjkpi928rgxs5ly4v8vl7lxrsdrq0gflxfc47ni2mxj8";
+       version = "1.3";
+       sha256 = "0373bb3aqbrw6prn323vy47qq9mfnvmm1lbd9ql1dxgb9px338qn";
        libraryHaskellDepends = [
-         base containers extra ghc-prim haskus-utils-types mtl
-         recursion-schemes transformers
+         base containers ghc-prim haskus-utils-types mtl recursion-schemes
+         transformers
        ];
        testHaskellDepends = [ base doctest ];
        description = "Haskus data utility modules";
@@ -117889,6 +120175,35 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hasql_1_4_4_2" = callPackage
+    ({ mkDerivation, attoparsec, base, base-prelude, bug, bytestring
+     , bytestring-strict-builder, contravariant, contravariant-extras
+     , criterion, dlist, hashable, hashtables, loch-th, mtl
+     , placeholders, postgresql-binary, postgresql-libpq, profunctors
+     , QuickCheck, quickcheck-instances, rebase, rerebase, tasty
+     , tasty-hunit, tasty-quickcheck, text, text-builder, transformers
+     , vector
+     }:
+     mkDerivation {
+       pname = "hasql";
+       version = "1.4.4.2";
+       sha256 = "09j532mcgs9q1gwr7czvcd85byf3ds3gs4nr5cvlajv4ciaym0di";
+       libraryHaskellDepends = [
+         attoparsec base base-prelude bytestring bytestring-strict-builder
+         contravariant contravariant-extras dlist hashable hashtables
+         loch-th mtl placeholders postgresql-binary postgresql-libpq
+         profunctors text text-builder transformers vector
+       ];
+       testHaskellDepends = [
+         bug QuickCheck quickcheck-instances rebase rerebase tasty
+         tasty-hunit tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [ bug criterion rerebase ];
+       description = "An efficient PostgreSQL driver with a flexible mapping API";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hasql-backend" = callPackage
     ({ mkDerivation, base, base-prelude, bytestring, either, free
      , list-t, text, transformers, vector
@@ -117981,8 +120296,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-dynamic-statements";
-       version = "0.2.0.1";
-       sha256 = "087zkb89cr0d3brjrpq414jpwswvzvxkbzvw63ahcvmv7lfgaknh";
+       version = "0.2.0.2";
+       sha256 = "017ngp4h1vhlv7lg3hj7l1qr77hf5pqj404dgdq2lqv1qxr7adjg";
        libraryHaskellDepends = [
          base bytestring containers hasql hasql-implicits ptr
        ];
@@ -118018,15 +120333,15 @@ self: {
 
   "hasql-implicits" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, hasql
-     , network-ip, ptr, scientific, text, time, uuid, vector
+     , network-ip, scientific, text, time, uuid, vector
      }:
      mkDerivation {
        pname = "hasql-implicits";
-       version = "0.1.0.1";
-       sha256 = "1b9j2za960h3sp48mxqk8lxhjsbhs47lnsvyah8p9wahf69qki5f";
+       version = "0.1.0.2";
+       sha256 = "0kg74bqm9mxf3b1gfbkj78zh859pmivvawi4aqk4h34xvmjx7217";
        libraryHaskellDepends = [
-         aeson base bytestring containers hasql network-ip ptr scientific
-         text time uuid vector
+         aeson base bytestring containers hasql network-ip scientific text
+         time uuid vector
        ];
        description = "Implicit definitions for Hasql, such as default codecs for standard types";
        license = stdenv.lib.licenses.mit;
@@ -118052,8 +120367,6 @@ self: {
        ];
        description = "PostgreSQL Schema Migrations";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "hasql-notifications" = callPackage
@@ -118076,8 +120389,6 @@ self: {
        testHaskellDepends = [ base bytestring hasql hspec QuickCheck ];
        description = "LISTEN/NOTIFY support for Hasql";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "hasql-optparse-applicative" = callPackage
@@ -118086,8 +120397,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-optparse-applicative";
-       version = "0.3.0.5";
-       sha256 = "0q5ggbx3xlzq0lv6i6wac9zsf0x4k91cf1n5rg6q96wg90f0dxxq";
+       version = "0.3.0.6";
+       sha256 = "16k6k2qp8avnlsidyjk458lags2633789wvvwdy4xgmiqs1riqr9";
        libraryHaskellDepends = [
          base-prelude hasql hasql-pool optparse-applicative
        ];
@@ -118162,6 +120473,42 @@ self: {
        broken = true;
      }) {};
 
+  "hasql-queue" = callPackage
+    ({ mkDerivation, aeson, async, base, base64-bytestring, bytestring
+     , cryptohash-sha1, exceptions, hasql, here, hspec, hspec-core
+     , hspec-expectations-lifted, monad-control, postgresql-libpq
+     , postgresql-libpq-notify, random, resource-pool, split, stm, text
+     , time, tmp-postgres, transformers
+     }:
+     mkDerivation {
+       pname = "hasql-queue";
+       version = "1.2.0.2";
+       sha256 = "0d8ylf92ydhg12v2rjxxnijzjkkpmws0r1nnxm63w5arwz947n5m";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring exceptions hasql here monad-control
+         postgresql-libpq postgresql-libpq-notify random stm text time
+         transformers
+       ];
+       executableHaskellDepends = [
+         aeson async base base64-bytestring bytestring cryptohash-sha1
+         exceptions hasql here monad-control postgresql-libpq
+         postgresql-libpq-notify random resource-pool stm text time
+         tmp-postgres transformers
+       ];
+       testHaskellDepends = [
+         aeson async base base64-bytestring bytestring cryptohash-sha1
+         exceptions hasql here hspec hspec-core hspec-expectations-lifted
+         monad-control postgresql-libpq postgresql-libpq-notify random
+         resource-pool split stm text time tmp-postgres transformers
+       ];
+       description = "A PostgreSQL backed queue";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hasql-simple" = callPackage
     ({ mkDerivation, aeson, base, bytestring, contravariant, hasql
      , text, time, unordered-containers, vector
@@ -118196,6 +120543,8 @@ self: {
        ];
        description = "Template Haskell utilities for Hasql";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hasql-transaction" = callPackage
@@ -118216,6 +120565,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hasqly-mysql" = callPackage
+    ({ mkDerivation, base, binary, bytestring, dlist, mtl
+     , mysql-haskell, scientific, text, time
+     }:
+     mkDerivation {
+       pname = "hasqly-mysql";
+       version = "0.0.1";
+       sha256 = "1la1lnwcv20jig72hgpgzy8a2ils95y0clhkf5ajvj1whh099g7p";
+       libraryHaskellDepends = [
+         base binary bytestring dlist mtl mysql-haskell scientific text time
+       ];
+       description = "composable SQL generation";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hastache" = callPackage
     ({ mkDerivation, base, blaze-builder, bytestring, containers
      , directory, filepath, HUnit, ieee754, mtl, process, syb, text
@@ -118489,6 +120855,29 @@ self: {
        broken = true;
      }) {};
 
+  "hatexmpp3" = callPackage
+    ({ mkDerivation, base, bytestring, containers, data-default
+     , datetime, gtk3, hslogger, monad-loops, mtl, Network-NineP
+     , pontarius-xmpp, pontarius-xmpp-extras, stm, string-class, text
+     , time, tls, transformers, vector, xml-conduit, xml-types
+     }:
+     mkDerivation {
+       pname = "hatexmpp3";
+       version = "0";
+       sha256 = "0j5428x0yq07x27lgd48fcyc8zix9a0vv8725ch8gr4v9znhwrwc";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring containers data-default datetime gtk3 hslogger
+         monad-loops mtl Network-NineP pontarius-xmpp pontarius-xmpp-extras
+         stm string-class text time tls transformers vector xml-conduit
+         xml-types
+       ];
+       description = "XMPP client with 9P and (optionally) GTK interfaces";
+       license = "unknown";
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hath" = callPackage
     ({ mkDerivation, base, cmdargs, process, split, tasty, tasty-hunit
      , tasty-quickcheck
@@ -118766,8 +121155,8 @@ self: {
      }:
      mkDerivation {
        pname = "haxr";
-       version = "3000.11.4";
-       sha256 = "1pyf0wjifsvsnx7zzhbn8ps0n578r0p89p2ib0nx1rsi2f1x21i5";
+       version = "3000.11.4.1";
+       sha256 = "12f3acc253x88pk20b60z1qzyhbngvg7zzb9j6azbii0hx8yxxhy";
        libraryHaskellDepends = [
          array base base-compat base64-bytestring blaze-builder bytestring
          HaXml HsOpenSSL http-streams http-types io-streams mtl mtl-compat
@@ -119359,8 +121748,6 @@ self: {
        testHaskellDepends = [ base data-default HUnit ieee754 mtl ];
        description = "Easily convert between latitude/longitude, UTM and OSGB";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "hcron" = callPackage
@@ -119397,7 +121784,7 @@ self: {
        executableHaskellDepends = [
          base directory HaskellForMaths QuickCheck text
        ];
-       description = "Virtual Rubik's cube of arbitrary size.";
+       description = "Virtual Rubik's cube of arbitrary size";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -119911,8 +122298,8 @@ self: {
      }:
      mkDerivation {
        pname = "headed-megaparsec";
-       version = "0.1.0.4";
-       sha256 = "1nl66j4fqmjcxkrmhm7jnbqqpw48727wfbb9xn0cz4yy1brivjrb";
+       version = "0.2";
+       sha256 = "1s2alhwmkk5czilm1m2dp72xpbdjhn7yhghrs1aca2js71x5j7qj";
        libraryHaskellDepends = [
          base case-insensitive megaparsec parser-combinators selective
        ];
@@ -119943,47 +122330,49 @@ self: {
 
   "headroom" = callPackage
     ({ mkDerivation, aeson, base, doctest, either, file-embed, hspec
-     , lens, mustache, optparse-applicative, pcre-heavy, pcre-light, rio
-     , template-haskell, text, time, validation, yaml
+     , mustache, optparse-applicative, pcre-light, QuickCheck, rio, time
+     , yaml
      }:
      mkDerivation {
        pname = "headroom";
-       version = "0.1.3.0";
-       sha256 = "0c680vr2kjlx9l9zh6v22jjfgxrwxh9icg1psjxrjfl9zi9kqfb9";
+       version = "0.2.2.1";
+       sha256 = "02s1s6v0fsn5a2anpi91za3dqafcp50lckr4xpir270l66lzdc2g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base either file-embed lens mustache optparse-applicative
-         pcre-heavy pcre-light rio template-haskell text time validation
-         yaml
+         aeson base either file-embed mustache optparse-applicative
+         pcre-light rio time yaml
        ];
        executableHaskellDepends = [ base optparse-applicative rio ];
        testHaskellDepends = [
-         aeson base doctest hspec optparse-applicative rio
+         aeson base doctest hspec optparse-applicative pcre-light QuickCheck
+         rio
        ];
        description = "License Header Manager";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "headroom_0_2_2_1" = callPackage
-    ({ mkDerivation, aeson, base, doctest, either, file-embed, hspec
-     , mustache, optparse-applicative, pcre-light, QuickCheck, rio, time
-     , yaml
+  "headroom_0_3_1_0" = callPackage
+    ({ mkDerivation, aeson, base, data-default-class, doctest, either
+     , file-embed, hspec, microlens, microlens-th, mustache
+     , optparse-applicative, pcre-heavy, pcre-light, QuickCheck, rio
+     , template-haskell, time, yaml
      }:
      mkDerivation {
        pname = "headroom";
-       version = "0.2.2.1";
-       sha256 = "02s1s6v0fsn5a2anpi91za3dqafcp50lckr4xpir270l66lzdc2g";
+       version = "0.3.1.0";
+       sha256 = "0md8yzjq92xc9pq9h8a78irgyka23ck7nlhdbdyfnm2f490fx2yw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base either file-embed mustache optparse-applicative
-         pcre-light rio time yaml
+         aeson base data-default-class either file-embed microlens
+         microlens-th mustache optparse-applicative pcre-heavy pcre-light
+         rio template-haskell time yaml
        ];
        executableHaskellDepends = [ base optparse-applicative rio ];
        testHaskellDepends = [
          aeson base doctest hspec optparse-applicative pcre-light QuickCheck
-         rio
+         rio time
        ];
        description = "License Header Manager";
        license = stdenv.lib.licenses.bsd3;
@@ -120013,6 +122402,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "heapsize" = callPackage
+    ({ mkDerivation, base, criterion, deepseq, ghc-heap, hashable
+     , primitive, unordered-containers
+     }:
+     mkDerivation {
+       pname = "heapsize";
+       version = "0.1";
+       sha256 = "0cmzmz6f572is70sp79fxriywl5d19rcb8c32x22c2yazyl6c6d9";
+       libraryHaskellDepends = [
+         base deepseq ghc-heap hashable primitive unordered-containers
+       ];
+       benchmarkHaskellDepends = [ base criterion deepseq primitive ];
+       description = "Determine the size of runtime data structures";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "heapsort" = callPackage
     ({ mkDerivation, array, base }:
      mkDerivation {
@@ -120046,26 +122451,6 @@ self: {
      }) {};
 
   "heart-core" = callPackage
-    ({ mkDerivation, aeson, aeson-casing, base, containers, exceptions
-     , filepath, hashable, lens, list-t, mtl, newtype-generics, text
-     , unliftio, unliftio-core, unordered-containers
-     }:
-     mkDerivation {
-       pname = "heart-core";
-       version = "0.1.1";
-       sha256 = "1r4137ws74dqk1bva06xv2gs18m4jkg52243yz5dwp65g6h5pb60";
-       libraryHaskellDepends = [
-         aeson aeson-casing base containers exceptions filepath hashable
-         lens list-t mtl newtype-generics text unliftio unliftio-core
-         unordered-containers
-       ];
-       description = "An opinionated library prelude in the UnliftIO style";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "heart-core_0_3_2" = callPackage
     ({ mkDerivation, aeson, aeson-casing, base, containers, deepseq
      , exceptions, filepath, hashable, lens, list-t, mtl
      , newtype-generics, text, unliftio, unliftio-core
@@ -120313,22 +122698,21 @@ self: {
 
   "hedgehog" = callPackage
     ({ mkDerivation, ansi-terminal, async, base, bytestring
-     , concurrent-output, containers, directory, erf, exceptions, fail
-     , lifted-async, mmorph, monad-control, mtl, pretty-show, primitive
-     , random, resourcet, semigroups, stm, template-haskell, text, time
-     , transformers, transformers-base, wl-pprint-annotated
+     , concurrent-output, containers, deepseq, directory, erf
+     , exceptions, fail, lifted-async, mmorph, monad-control, mtl
+     , pretty-show, primitive, random, resourcet, semigroups, stm
+     , template-haskell, text, time, transformers, transformers-base
+     , wl-pprint-annotated
      }:
      mkDerivation {
        pname = "hedgehog";
-       version = "1.0.2";
-       sha256 = "1058d5fcv3hhvlx34a8xkg8r75p93l2yhacdbga8d4radiayy34f";
-       revision = "3";
-       editedCabalFile = "0y9glrf68jx8h8wsrrcdgxwmf0im1rh3g050mf0lk8iv0cdvdd2m";
+       version = "1.0.3";
+       sha256 = "10lv574491zldqzin433z0vqkq43f0v3shjf78j395y0g1jyky9m";
        libraryHaskellDepends = [
          ansi-terminal async base bytestring concurrent-output containers
-         directory erf exceptions fail lifted-async mmorph monad-control mtl
-         pretty-show primitive random resourcet semigroups stm
-         template-haskell text time transformers transformers-base
+         deepseq directory erf exceptions fail lifted-async mmorph
+         monad-control mtl pretty-show primitive random resourcet semigroups
+         stm template-haskell text time transformers transformers-base
          wl-pprint-annotated
        ];
        testHaskellDepends = [
@@ -120375,8 +122759,8 @@ self: {
      }:
      mkDerivation {
        pname = "hedgehog-classes";
-       version = "0.2.5";
-       sha256 = "0rr9d3xajdlfmx92klq1zyi55wrc5ivf2p1jb0a6vxpyk75gy8wg";
+       version = "0.2.5.1";
+       sha256 = "0gyq9dr25sz14yw5x8jlb73l2hzv92r1c6cfan7lygq7z0yaiw6b";
        libraryHaskellDepends = [
          aeson base binary comonad containers hedgehog pretty-show primitive
          semirings silently transformers vector wl-pprint-annotated
@@ -120405,8 +122789,8 @@ self: {
     ({ mkDerivation, base, containers, fakedata, hedgehog, random }:
      mkDerivation {
        pname = "hedgehog-fakedata";
-       version = "0.0.1.1";
-       sha256 = "05s48h0cf599x5psllid0szynvqmfgkrv5cymsgy1b5mdnc868aj";
+       version = "0.0.1.3";
+       sha256 = "0h0cf4y25453n52d4y1ximzdc9l04b17byd9kgjvc3c279866f1i";
        libraryHaskellDepends = [ base fakedata hedgehog random ];
        testHaskellDepends = [ base containers fakedata hedgehog ];
        description = "Use 'fakedata' with 'hedgehog'";
@@ -120544,8 +122928,8 @@ self: {
      }:
      mkDerivation {
        pname = "hedis";
-       version = "0.12.13";
-       sha256 = "1axsv81r1q393m178x89km49pi7w7dci0l48cnjdskdz99jwvywq";
+       version = "0.12.14";
+       sha256 = "14qd248ccijakksbaj72nwz8dx8qg4bifla3p0vsm6v96xb2qjbw";
        libraryHaskellDepends = [
          async base bytestring bytestring-lexing deepseq errors exceptions
          HTTP mtl network network-uri resource-pool scanner stm text time
@@ -120682,6 +123066,8 @@ self: {
        pname = "hedn";
        version = "0.3.0.1";
        sha256 = "02pwwxdgw3kkqwckap9mf015bbd27mgblfz7k4y63v0gppw6fqm7";
+       revision = "1";
+       editedCabalFile = "0nbkc1hj0b5q2c3mcz6v2drq8mrh06aryq7gy8cnhhiqzwflk1fh";
        libraryHaskellDepends = [
          base containers deepseq deriving-compat megaparsec
          parser-combinators prettyprinter scientific template-haskell text
@@ -120762,8 +123148,8 @@ self: {
        pname = "heist";
        version = "1.1.0.1";
        sha256 = "1j4h9fwny4hl2m5lgsd257lvm9057fb0hmnaqjw8a9k4hyx7hmqq";
-       revision = "2";
-       editedCabalFile = "1w9iabqa3pm2160275z6mh658zlyp7vkj18ch064ry3y3a6cymbk";
+       revision = "3";
+       editedCabalFile = "0a456cq72fgdy3wvk6db6yqk3mpib85h7kmwrvdjl7p637dvpxzh";
        libraryHaskellDepends = [
          aeson attoparsec base blaze-builder blaze-html bytestring
          containers directory directory-tree dlist filepath hashable
@@ -121254,6 +123640,119 @@ self: {
        broken = true;
      }) {};
 
+  "hercules-ci-agent" = callPackage
+    ({ mkDerivation, aeson, async, attoparsec, base, base64-bytestring
+     , bdw-gc, binary, binary-conduit, boost, bytestring, cachix
+     , cachix-api, conduit, conduit-extra, containers, directory, dlist
+     , exceptions, filepath, hercules-ci-api-agent, hercules-ci-api-core
+     , hostname, hspec, http-client, http-client-tls, http-conduit
+     , inline-c, inline-c-cpp, katip, lens, lens-aeson, lifted-async
+     , lifted-base, monad-control, mtl, network, network-uri, nix
+     , optparse-applicative, process, protolude, safe-exceptions
+     , servant, servant-auth-client, servant-client, servant-client-core
+     , stm, temporary, text, time, tomland, transformers
+     , transformers-base, unbounded-delays, unix, unliftio
+     , unliftio-core, unordered-containers, uuid, vector, websockets
+     , wuss
+     }:
+     mkDerivation {
+       pname = "hercules-ci-agent";
+       version = "0.7.4";
+       sha256 = "0yj9njd168xpj4har99mbb9rr5dqsbnzqs1061s3czrzlp229z3l";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson async base binary binary-conduit bytestring cachix conduit
+         containers dlist exceptions hercules-ci-api-agent inline-c
+         inline-c-cpp katip lifted-async lifted-base monad-control mtl
+         network-uri optparse-applicative process protolude safe-exceptions
+         stm text time transformers-base unbounded-delays unliftio
+         unliftio-core uuid websockets wuss
+       ];
+       librarySystemDepends = [ boost ];
+       libraryPkgconfigDepends = [ bdw-gc nix ];
+       executableHaskellDepends = [
+         aeson async attoparsec base base64-bytestring binary binary-conduit
+         bytestring cachix cachix-api conduit conduit-extra containers
+         directory dlist exceptions filepath hercules-ci-api-agent
+         hercules-ci-api-core hostname http-client http-client-tls
+         http-conduit inline-c inline-c-cpp katip lens lens-aeson
+         lifted-async lifted-base monad-control mtl network network-uri
+         optparse-applicative process protolude safe-exceptions servant
+         servant-auth-client servant-client servant-client-core stm
+         temporary text time tomland transformers transformers-base unix
+         unliftio unliftio-core unordered-containers uuid vector websockets
+         wuss
+       ];
+       executableSystemDepends = [ boost ];
+       executablePkgconfigDepends = [ bdw-gc nix ];
+       testHaskellDepends = [
+         aeson async attoparsec base binary binary-conduit bytestring
+         conduit containers exceptions filepath hercules-ci-api-agent
+         hercules-ci-api-core hspec katip lifted-async lifted-base
+         monad-control optparse-applicative process protolude
+         safe-exceptions text transformers-base unliftio-core
+       ];
+       doHaddock = false;
+       description = "Runs Continuous Integration tasks on your machines";
+       license = stdenv.lib.licenses.asl20;
+       maintainers = with stdenv.lib.maintainers; [ roberth ];
+     }) {bdw-gc = null; inherit (pkgs) boost; inherit (pkgs) nix;};
+
+  "hercules-ci-api-agent" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring-type, bytestring
+     , containers, cookie, exceptions, hashable, hercules-ci-api-core
+     , hspec, http-api-data, http-media, lens, lens-aeson, memory
+     , network-uri, profunctors, QuickCheck, servant, servant-auth
+     , servant-auth-swagger, servant-swagger, servant-swagger-ui-core
+     , string-conv, swagger2, text, time, uuid, vector
+     }:
+     mkDerivation {
+       pname = "hercules-ci-api-agent";
+       version = "0.2.2.0";
+       sha256 = "1pp0ink132wwj2wzj7ficxzxhj09bl3fm62fmslrl3l579ycbp7d";
+       libraryHaskellDepends = [
+         aeson base base64-bytestring-type bytestring containers cookie
+         exceptions hashable hercules-ci-api-core http-api-data http-media
+         lens lens-aeson memory servant servant-auth servant-auth-swagger
+         servant-swagger servant-swagger-ui-core string-conv swagger2 text
+         time uuid vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers cookie exceptions hashable hspec
+         http-api-data http-media lens memory network-uri profunctors
+         QuickCheck servant servant-auth servant-auth-swagger
+         servant-swagger servant-swagger-ui-core string-conv swagger2 text
+         time uuid
+       ];
+       description = "API definition for Hercules CI Agent to talk to hercules-ci.com or Hercules CI Enterprise";
+       license = stdenv.lib.licenses.asl20;
+       maintainers = with stdenv.lib.maintainers; [ roberth ];
+     }) {};
+
+  "hercules-ci-api-core" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, cookie
+     , exceptions, hashable, http-api-data, http-media, katip, lens
+     , lifted-base, memory, monad-control, safe-exceptions, servant
+     , servant-auth, servant-auth-swagger, servant-swagger
+     , servant-swagger-ui-core, string-conv, swagger2, text, time, uuid
+     }:
+     mkDerivation {
+       pname = "hercules-ci-api-core";
+       version = "0.1.1.0";
+       sha256 = "19qxbarnl65gqg52ysl12nggyc64860chdcl0vm3i3fny4vsqbcq";
+       libraryHaskellDepends = [
+         aeson base bytestring containers cookie exceptions hashable
+         http-api-data http-media katip lens lifted-base memory
+         monad-control safe-exceptions servant servant-auth
+         servant-auth-swagger servant-swagger servant-swagger-ui-core
+         string-conv swagger2 text time uuid
+       ];
+       description = "Types and convenience modules use across Hercules CI API packages";
+       license = stdenv.lib.licenses.asl20;
+       maintainers = with stdenv.lib.maintainers; [ roberth ];
+     }) {};
+
   "here" = callPackage
     ({ mkDerivation, base, haskell-src-meta, mtl, parsec
      , template-haskell
@@ -121286,13 +123785,13 @@ self: {
      }:
      mkDerivation {
        pname = "heredocs";
-       version = "0.1.6";
-       sha256 = "12qsa6vcdc255dx7dc4nfmgy3aam7w6qy92x4811mxx4mxrsr81r";
+       version = "0.2.0.0";
+       sha256 = "1649vhzymizmmi3ggmqxyq4b0fhrpipj4ljy1w7hca2wyh4jm1yw";
        libraryHaskellDepends = [
          base bytestring doctest parsec template-haskell text
        ];
        testHaskellDepends = [ base bytestring doctest text ];
-       description = "heredocument";
+       description = "Heredocument on Haskell";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -121650,52 +124149,52 @@ self: {
 
   "hevm" = callPackage
     ({ mkDerivation, abstract-par, aeson, ansi-wl-pprint, async, base
-     , base16-bytestring, base64-bytestring, binary, brick, bytestring
-     , cereal, containers, cryptonite, data-dword, deepseq, directory
-     , fgl, filepath, ghci-pretty, haskeline, here, HUnit, lens
-     , lens-aeson, megaparsec, memory, monad-par, mtl, multiset
-     , operational, optparse-generic, process, QuickCheck
-     , quickcheck-text, readline, regex-tdfa, restless-git, rosezipper
-     , s-cargot, scientific, secp256k1, tasty, tasty-hunit
-     , tasty-quickcheck, temporary, text, text-format, time
-     , transformers, tree-view, unordered-containers, vector, vty, wreq
+     , base16-bytestring, binary, brick, bytestring, cborg, cereal
+     , containers, cryptonite, data-dword, deepseq, directory, ff, fgl
+     , filepath, free, haskeline, here, HUnit, lens, lens-aeson
+     , megaparsec, memory, monad-par, mtl, multiset, operational
+     , optparse-generic, process, QuickCheck, quickcheck-text
+     , regex-tdfa, restless-git, rosezipper, s-cargot, sbv, scientific
+     , secp256k1, semver-range, tasty, tasty-hunit, tasty-quickcheck
+     , temporary, text, text-format, time, transformers, tree-view
+     , unordered-containers, vector, vty, witherable, wreq
      }:
      mkDerivation {
        pname = "hevm";
-       version = "0.24";
-       sha256 = "0bzhswisrmlw8ajl6mr13vr3a7l0vywl394aihrc0xs6vwgyflh0";
+       version = "0.41.0";
+       sha256 = "13qf0bh47dppqbxv1g07411c1lfmfxl0pm2s3xkwdf7kr219l0hw";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         abstract-par aeson ansi-wl-pprint base base16-bytestring
-         base64-bytestring binary brick bytestring cereal containers
-         cryptonite data-dword deepseq directory fgl filepath ghci-pretty
-         haskeline lens lens-aeson megaparsec memory monad-par mtl multiset
-         operational optparse-generic process QuickCheck quickcheck-text
-         readline restless-git rosezipper s-cargot scientific temporary text
-         text-format time transformers tree-view unordered-containers vector
-         vty wreq
+         abstract-par aeson ansi-wl-pprint base base16-bytestring binary
+         brick bytestring cborg cereal containers cryptonite data-dword
+         deepseq directory fgl filepath free haskeline lens lens-aeson
+         megaparsec memory monad-par mtl multiset operational
+         optparse-generic process QuickCheck quickcheck-text regex-tdfa
+         restless-git rosezipper s-cargot sbv scientific semver-range
+         temporary text text-format time transformers tree-view
+         unordered-containers vector vty witherable wreq
        ];
-       librarySystemDepends = [ secp256k1 ];
+       librarySystemDepends = [ ff secp256k1 ];
        executableHaskellDepends = [
-         aeson ansi-wl-pprint async base base16-bytestring base64-bytestring
-         binary brick bytestring containers cryptonite data-dword deepseq
-         directory filepath ghci-pretty lens lens-aeson memory mtl
-         optparse-generic process QuickCheck quickcheck-text readline
-         regex-tdfa temporary text text-format unordered-containers vector
-         vty
+         aeson ansi-wl-pprint async base base16-bytestring binary brick
+         bytestring containers cryptonite data-dword deepseq directory
+         filepath free lens lens-aeson memory mtl operational
+         optparse-generic process QuickCheck quickcheck-text regex-tdfa sbv
+         temporary text text-format unordered-containers vector vty
        ];
        testHaskellDepends = [
-         base base16-bytestring binary bytestring ghci-pretty here HUnit
-         lens mtl QuickCheck tasty tasty-hunit tasty-quickcheck text vector
+         base base16-bytestring binary bytestring containers free here HUnit
+         lens mtl QuickCheck sbv tasty tasty-hunit tasty-quickcheck text
+         vector
        ];
        testSystemDepends = [ secp256k1 ];
        description = "Ethereum virtual machine evaluator";
        license = stdenv.lib.licenses.agpl3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) secp256k1;};
+     }) {ff = null; inherit (pkgs) secp256k1;};
 
   "hevolisa" = callPackage
     ({ mkDerivation, base, bytestring, cairo, filepath, haskell98 }:
@@ -121739,10 +124238,8 @@ self: {
     ({ mkDerivation, base, bytestring }:
      mkDerivation {
        pname = "hex";
-       version = "0.1.2";
-       sha256 = "1v31xiaivrrn0q2jz8919wvkjplv1kxna5ajhsj701fqxm1i5vhj";
-       revision = "1";
-       editedCabalFile = "0khmrdni6njr4wxgz15yz77l8ar4qm2jj6v0lvfnwqdms4s6i80y";
+       version = "0.2.0";
+       sha256 = "1mc66758254d93m7vab7q6lhn7qphzxd6wyc3v6yq1diy0gji4va";
        libraryHaskellDepends = [ base bytestring ];
        description = "Convert strings into hexadecimal and back";
        license = stdenv.lib.licenses.bsd3;
@@ -121897,10 +124394,8 @@ self: {
      }:
      mkDerivation {
        pname = "hexpat-lens";
-       version = "0.1.8";
-       sha256 = "05c5pjxxsivcbppbl2n8dwyv6zh7azc3l998s2rhgjja55cpfmg0";
-       revision = "1";
-       editedCabalFile = "0z7cqm5alscaspaiz5pgwlcn6njhggyizqb1v5ay4sbac7v8nqlx";
+       version = "0.1.9";
+       sha256 = "0vy96jq415rp6njkvnp4in07j052m68yfr1n1mdcbfd3j5a0dw39";
        libraryHaskellDepends = [
          base bytestring deepseq hexpat hexpat-tagsoup lens
        ];
@@ -122041,6 +124536,19 @@ self: {
        broken = true;
      }) {};
 
+  "hextra" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "hextra";
+       version = "1.1.0.1";
+       sha256 = "0iq6kj7mijxppjghpqx19s79sj6k1jqf21gfi8jqbj6bq7j2cdvj";
+       libraryHaskellDepends = [ base ];
+       description = "Generic and niche utility functions and more for Haskell";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hextream" = callPackage
     ({ mkDerivation, attoparsec, base, base-compat, Cabal
      , cabal-doctest, containers, data-default, doctest, filepath
@@ -122434,22 +124942,23 @@ self: {
   "hgeometry" = callPackage
     ({ mkDerivation, aeson, base, bifunctors, bytestring, containers
      , data-clist, deepseq, dlist, doctest, doctest-discover, fingertree
-     , fixed-vector, hgeometry-combinatorial, hspec, lens, linear
-     , MonadRandom, mtl, primitive, QuickCheck, quickcheck-instances
-     , reflection, semigroupoids, semigroups, template-haskell, text
-     , vector, vector-builder, vinyl, yaml
+     , fixed-vector, hashable, hgeometry-combinatorial, hspec, lens
+     , linear, MonadRandom, mtl, primitive, QuickCheck
+     , quickcheck-instances, random, reflection, semigroupoids
+     , semigroups, template-haskell, text, vector, vector-builder, vinyl
+     , yaml
      }:
      mkDerivation {
        pname = "hgeometry";
-       version = "0.10.0.0";
-       sha256 = "01kf7cmjdr2s172xj25i9vyjpfd0wayh0bjgccxqqy886kxrkhfw";
+       version = "0.11.0.0";
+       sha256 = "1vbj26j06byz9x0c03q5k7fijl31hsi7x9f5wfr2w9g96d7zl3ls";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bifunctors bytestring containers data-clist deepseq
-         dlist fingertree fixed-vector hgeometry-combinatorial hspec lens
-         linear MonadRandom mtl primitive QuickCheck quickcheck-instances
-         reflection semigroupoids semigroups template-haskell text vector
-         vector-builder vinyl yaml
+         dlist fingertree fixed-vector hashable hgeometry-combinatorial
+         hspec lens linear MonadRandom mtl primitive QuickCheck
+         quickcheck-instances random reflection semigroupoids semigroups
+         template-haskell text vector vector-builder vinyl yaml
        ];
        testHaskellDepends = [ base doctest doctest-discover QuickCheck ];
        description = "Geometric Algorithms, Data structures, and Data types";
@@ -122459,22 +124968,23 @@ self: {
   "hgeometry-combinatorial" = callPackage
     ({ mkDerivation, aeson, approximate-equality, base, bifunctors
      , bytestring, containers, contravariant, data-clist, deepseq
-     , directory, dlist, doctest, filepath, fingertree, hspec
-     , hspec-discover, lens, linear, MonadRandom, mtl, QuickCheck
-     , quickcheck-instances, random, reflection, semigroupoids
-     , semigroups, singletons, template-haskell, text, vector
-     , vector-builder, vinyl, yaml
+     , directory, dlist, doctest, filepath, fingertree, hashable, hspec
+     , hspec-discover, lens, linear, MonadRandom, mtl, primitive
+     , QuickCheck, quickcheck-instances, random, reflection
+     , semigroupoids, semigroups, singletons, template-haskell, text
+     , vector, vector-builder, vinyl, yaml
      }:
      mkDerivation {
        pname = "hgeometry-combinatorial";
-       version = "0.10.0.0";
-       sha256 = "0v168wxnzkmylh8gzxzrq0sfq5y2xn3i8r6kqnahc14x1c1jzzk1";
+       version = "0.11.0.0";
+       sha256 = "0qhb4aflqcjjm1qnhq7xsd086pk09gnq7q503ys4kzr8j0knc2j5";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bifunctors bytestring containers contravariant
-         data-clist deepseq dlist fingertree lens MonadRandom mtl QuickCheck
-         quickcheck-instances reflection semigroupoids semigroups
-         template-haskell text vector vector-builder vinyl yaml
+         data-clist deepseq dlist fingertree hashable lens linear
+         MonadRandom mtl primitive QuickCheck quickcheck-instances random
+         reflection semigroupoids semigroups template-haskell text vector
+         vector-builder vinyl yaml
        ];
        testHaskellDepends = [
          approximate-equality base bytestring containers data-clist
@@ -122497,8 +125007,8 @@ self: {
      }:
      mkDerivation {
        pname = "hgeometry-ipe";
-       version = "0.10.0.0";
-       sha256 = "1802yl65sy489s7pk58cd92qvzvdnw9z3ms6jr8wcrs6ipfqsa60";
+       version = "0.11.0.0";
+       sha256 = "0h78rsxc281wxmg27zxzzak0k15mv61i146gzafihrdg9hpbw1lk";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bifunctors bytestring colour containers data-clist
@@ -122723,8 +125233,8 @@ self: {
      }:
      mkDerivation {
        pname = "hgrev";
-       version = "0.2.4";
-       sha256 = "1mmnz6vipl42p2raxn26hjlcrjhrk3xfbvzyxhjl5ciybgi6dc3w";
+       version = "0.2.6";
+       sha256 = "1v1niqvqj6w8nkr3pmjwj7va2f2nv8miwsfqsp3lj3b2i9x6asb2";
        libraryHaskellDepends = [
          aeson base bytestring directory filepath process template-haskell
        ];
@@ -122772,8 +125282,8 @@ self: {
      }:
      mkDerivation {
        pname = "hhp";
-       version = "0.0.2";
-       sha256 = "0c9hcxvkrsz750r7hqviwn19r1slad4y5cj5m8ip84yiww44bfz4";
+       version = "0.0.3";
+       sha256 = "1d9hhsnf21f2v0hcmw5wpj33qdqw6xbcz979lkp2ilk8mxqgwf32";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -123001,10 +125511,8 @@ self: {
      }:
      mkDerivation {
        pname = "hie-bios";
-       version = "0.4.0";
-       sha256 = "1pa8wjj6sml39371f355z46304jzzwpcr62q0qzrpqq8w9017241";
-       revision = "1";
-       editedCabalFile = "12m0hy4lirnr02h0nh2a85cfm8jv7jgqh24fdn29jkc28gpspm72";
+       version = "0.5.1";
+       sha256 = "0b6kll3w8g0nb1ijz8kw39dmiksyaq30nk5b5gmdgjdycz5hp9vm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -123022,17 +125530,20 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "hie-bios_0_5_0" = callPackage
+  "hie-bios_0_7_1" = callPackage
     ({ mkDerivation, aeson, base, base16-bytestring, bytestring
      , conduit, conduit-extra, containers, cryptohash-sha1, deepseq
-     , directory, extra, file-embed, filepath, ghc, hslogger, process
-     , tasty, tasty-hunit, temporary, text, time, transformers
-     , unix-compat, unordered-containers, vector, yaml
+     , directory, extra, file-embed, filepath, ghc, hslogger
+     , hspec-expectations, process, tasty, tasty-expected-failure
+     , tasty-hunit, temporary, text, time, transformers, unix-compat
+     , unordered-containers, vector, yaml
      }:
      mkDerivation {
        pname = "hie-bios";
-       version = "0.5.0";
-       sha256 = "1096d9i4xx1ca9csm2gqi4wnm8q8wya4a5k37qc5ihwix531wx02";
+       version = "0.7.1";
+       sha256 = "00gkr4dbbs70vnd6y90iirss88j8ax714l9jmwdfkmslwd4m2ml8";
+       revision = "3";
+       editedCabalFile = "104cp386qbk6k72s2ld1cl0fny3f53x98zy3w10mlhqyaipqrf17";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -123043,7 +125554,8 @@ self: {
        ];
        executableHaskellDepends = [ base directory filepath ghc ];
        testHaskellDepends = [
-         base directory extra filepath ghc tasty tasty-hunit text
+         base directory extra filepath ghc hspec-expectations tasty
+         tasty-expected-failure tasty-hunit temporary text
          unordered-containers yaml
        ];
        description = "Set up a GHC API session";
@@ -124578,6 +127090,18 @@ self: {
        license = "(BSD-2-Clause OR Apache-2.0)";
      }) {};
 
+  "hkd-default" = callPackage
+    ({ mkDerivation, aeson, base }:
+     mkDerivation {
+       pname = "hkd-default";
+       version = "1.1.0.0";
+       sha256 = "1ff8sfd68a06s7kfc85ww6w5wm7m0f70vd2bi0lbkj0r14rsn7vg";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ aeson base ];
+       description = "Apply default value for optional field of HKD";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "hkd-delta" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -124617,17 +127141,19 @@ self: {
      }) {};
 
   "hkgr" = callPackage
-    ({ mkDerivation, base, directory, filepath, simple-cabal
-     , simple-cmd, simple-cmd-args
+    ({ mkDerivation, base, directory, extra, filepath, simple-cabal
+     , simple-cmd, simple-cmd-args, xdg-basedir
      }:
      mkDerivation {
        pname = "hkgr";
-       version = "0.2.5.2";
-       sha256 = "0n7xxm216jzsvm2si276a0x342iwn0jyfcaq5hfs5l92na456kg2";
+       version = "0.2.6.1";
+       sha256 = "0hq059l3byw3vcxw56z341q56xnb86kdqj5vnn16v29ql677xm26";
        isLibrary = false;
        isExecutable = true;
+       enableSeparateDataOutput = true;
        executableHaskellDepends = [
-         base directory filepath simple-cabal simple-cmd simple-cmd-args
+         base directory extra filepath simple-cabal simple-cmd
+         simple-cmd-args xdg-basedir
        ];
        description = "Simple Hackage release workflow for package maintainers";
        license = stdenv.lib.licenses.gpl3;
@@ -124651,19 +127177,19 @@ self: {
      }) {};
 
   "hlatex" = callPackage
-    ({ mkDerivation, base, base-unicode-symbols, containers, derive
-     , directory, filepath, mtl, process, template-haskell, transformers
-     , uniplate, utf8-string
+    ({ mkDerivation, base, base-unicode-symbols, containers, directory
+     , filepath, mtl, process, template-haskell, transformers, uniplate
+     , utf8-string
      }:
      mkDerivation {
        pname = "hlatex";
-       version = "0.3.1";
-       sha256 = "13ldla8y8nw8fg4xrlqr60xqgs2n5sm72gzx99lqp0a4f84s3a0y";
+       version = "0.3.2";
+       sha256 = "0r4wdnps7m3j94xqab1lf8za5mning132h0micbqp86pnhlqn8g5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base base-unicode-symbols containers derive directory filepath mtl
-         process template-haskell transformers uniplate utf8-string
+         base base-unicode-symbols containers directory filepath mtl process
+         template-haskell transformers uniplate utf8-string
        ];
        description = "A library to build valid LaTeX files";
        license = stdenv.lib.licenses.bsd3;
@@ -124748,8 +127274,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger";
-       version = "1.17.1.1";
-       sha256 = "17c7g4xnwkbi77drqc6w96bp2lw0b86yg1qmm0gsdnli2m93baz4";
+       version = "1.19.1";
+       sha256 = "0wfsyf2q1kf90mj3lxs0m5ghj153axmpkc8xfy12vkz5imnyphfm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -124776,7 +127302,7 @@ self: {
          temporary terminfo text time timeit transformers
          unordered-containers utf8-string utility-ht wizards
        ];
-       description = "Command-line interface for the hledger accounting tool";
+       description = "Command-line interface for the hledger accounting system";
        license = stdenv.lib.licenses.gpl3;
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {};
@@ -124841,23 +127367,23 @@ self: {
      }) {};
 
   "hledger-flow" = callPackage
-    ({ mkDerivation, base, containers, foldl, HUnit
-     , optparse-applicative, stm, text, time, turtle
+    ({ mkDerivation, base, containers, exceptions, foldl, HUnit
+     , optparse-applicative, path, path-io, stm, text, time, turtle
      }:
      mkDerivation {
        pname = "hledger-flow";
-       version = "0.13.2.0";
-       sha256 = "1zajlqbayr6vm45y3901xwgg6acjn8fwx73mm9bnbsbxfzxn4g7d";
+       version = "0.14.2.0";
+       sha256 = "17a21rf2gj9hp7q0q7gg4znwa2j8xgrlxaq15akjn20sqp8l23ni";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base containers foldl stm text time turtle
+         base containers exceptions foldl path path-io stm text time turtle
        ];
        executableHaskellDepends = [
-         base optparse-applicative text turtle
+         base optparse-applicative path text turtle
        ];
        testHaskellDepends = [
-         base containers foldl HUnit stm text turtle
+         base containers foldl HUnit path path-io stm text turtle
        ];
        description = "An hledger workflow focusing on automated statement import and classification";
        license = stdenv.lib.licenses.gpl3;
@@ -124872,8 +127398,10 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-iadd";
-       version = "1.3.11";
-       sha256 = "1pqjyybbnhckz16in6skx3582aykk2yq5bf4ghbhj8iqbm3cczqf";
+       version = "1.3.12";
+       sha256 = "0klrqss2ch4yi50m1rybznzsjg4ahbx7rg9n8w5svpf34fdlp048";
+       revision = "1";
+       editedCabalFile = "0amfrcwklqzpjkgr714d0as57m5ndaywi04d44ygvq2p5jd0h129";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -124901,8 +127429,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-interest";
-       version = "1.5.4";
-       sha256 = "0n3pjd86j43dprpsy1k9x72v8g46dhy3f9244hvwhigyx72ijm6h";
+       version = "1.6.0";
+       sha256 = "0s0pmdm1vk4ib5ncs9mxyzr3dx5m6ji9778kddzqwxc9y9gvq5sq";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -124934,38 +127462,38 @@ self: {
      }) {};
 
   "hledger-lib" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, array, base
+    ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, array, base
      , base-compat-batteries, blaze-markup, bytestring, call-stack
      , cassava, cassava-megaparsec, cmdargs, containers, data-default
-     , Decimal, deepseq, directory, doctest, extra, fgl, file-embed
-     , filepath, Glob, hashtables, megaparsec, mtl, old-time, parsec
+     , Decimal, directory, doctest, extra, fgl, file-embed, filepath
+     , Glob, hashtables, megaparsec, mtl, old-time, parsec
      , parser-combinators, pretty-show, regex-tdfa, safe, split, tabular
      , tasty, tasty-hunit, template-haskell, text, time, timeit
-     , transformers, uglymemo, utf8-string
+     , transformers, uglymemo, unordered-containers, utf8-string
      }:
      mkDerivation {
        pname = "hledger-lib";
-       version = "1.17.1";
-       sha256 = "19vny2l2l45dk0fkpi2lzpzaj7jks2r0zjv8dkpcxlyk8bvqi92c";
+       version = "1.19.1";
+       sha256 = "0py11011r358nmnvwwkc8mlx6mpy36jm8sqlr4i8ihx3x0zjdgya";
        libraryHaskellDepends = [
-         aeson ansi-terminal array base base-compat-batteries blaze-markup
-         bytestring call-stack cassava cassava-megaparsec cmdargs containers
-         data-default Decimal deepseq directory extra fgl file-embed
-         filepath Glob hashtables megaparsec mtl old-time parsec
+         aeson aeson-pretty ansi-terminal array base base-compat-batteries
+         blaze-markup bytestring call-stack cassava cassava-megaparsec
+         cmdargs containers data-default Decimal directory extra fgl
+         file-embed filepath Glob hashtables megaparsec mtl old-time parsec
          parser-combinators pretty-show regex-tdfa safe split tabular tasty
          tasty-hunit template-haskell text time timeit transformers uglymemo
-         utf8-string
+         unordered-containers utf8-string
        ];
        testHaskellDepends = [
-         aeson ansi-terminal array base base-compat-batteries blaze-markup
-         bytestring call-stack cassava cassava-megaparsec cmdargs containers
-         data-default Decimal deepseq directory doctest extra fgl file-embed
-         filepath Glob hashtables megaparsec mtl old-time parsec
+         aeson aeson-pretty ansi-terminal array base base-compat-batteries
+         blaze-markup bytestring call-stack cassava cassava-megaparsec
+         cmdargs containers data-default Decimal directory doctest extra fgl
+         file-embed filepath Glob hashtables megaparsec mtl old-time parsec
          parser-combinators pretty-show regex-tdfa safe split tabular tasty
          tasty-hunit template-haskell text time timeit transformers uglymemo
-         utf8-string
+         unordered-containers utf8-string
        ];
-       description = "Core data types, parsers and functionality for the hledger accounting tools";
+       description = "A reusable library providing the core functionality of hledger";
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
@@ -125022,8 +127550,8 @@ self: {
      }:
      mkDerivation {
        pname = "hledger-ui";
-       version = "1.17.1.1";
-       sha256 = "0cwjjcy4r6dy1w4svmi7jk1yrp654qr8ic33ipg24dh7bl6lqzps";
+       version = "1.19.1";
+       sha256 = "17iz82jr89qxfd7j6q16w2jjr38mb7d94p3rbp0ks01bf4rlq5fl";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -125033,7 +127561,7 @@ self: {
          process safe split text text-zipper time transformers unix vector
          vty
        ];
-       description = "Terminal user interface for the hledger accounting tool";
+       description = "Curses-style terminal interface for the hledger accounting system";
        license = stdenv.lib.licenses.gpl3;
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {};
@@ -125062,15 +127590,16 @@ self: {
      , case-insensitive, clientsession, cmdargs, conduit, conduit-extra
      , containers, data-default, Decimal, directory, extra, filepath
      , hjsmin, hledger, hledger-lib, http-client, http-conduit
-     , http-types, megaparsec, mtl, network, semigroups, shakespeare
+     , http-types, megaparsec, mtl, network, shakespeare
      , template-haskell, text, time, transformers, unix-compat
-     , utf8-string, wai, wai-cors, wai-extra, wai-handler-launch, warp
-     , yaml, yesod, yesod-core, yesod-form, yesod-static
+     , unordered-containers, utf8-string, wai, wai-cors, wai-extra
+     , wai-handler-launch, warp, yaml, yesod, yesod-core, yesod-form
+     , yesod-static
      }:
      mkDerivation {
        pname = "hledger-web";
-       version = "1.17.1";
-       sha256 = "0zcb7a8xchsb093sw9aq30n45rns9v0xknwvigds3ka8yb383krl";
+       version = "1.19.1";
+       sha256 = "03wak0dgxhf7y2mc2az4xcypgz1z1lf65vn6kj98z063pmlwp1b0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -125078,12 +127607,13 @@ self: {
          clientsession cmdargs conduit conduit-extra containers data-default
          Decimal directory extra filepath hjsmin hledger hledger-lib
          http-client http-conduit http-types megaparsec mtl network
-         semigroups shakespeare template-haskell text time transformers
-         unix-compat utf8-string wai wai-cors wai-extra wai-handler-launch
-         warp yaml yesod yesod-core yesod-form yesod-static
+         shakespeare template-haskell text time transformers unix-compat
+         unordered-containers utf8-string wai wai-cors wai-extra
+         wai-handler-launch warp yaml yesod yesod-core yesod-form
+         yesod-static
        ];
        executableHaskellDepends = [ base ];
-       description = "Web interface for the hledger accounting tool";
+       description = "Web-based user interface for the hledger accounting system";
        license = stdenv.lib.licenses.gpl3;
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {};
@@ -125165,8 +127695,8 @@ self: {
     ({ mkDerivation, base, Cabal, directory, hspec, libsass }:
      mkDerivation {
        pname = "hlibsass";
-       version = "0.1.9.0";
-       sha256 = "14rcg48hlbpz4vjk7ydhf58wgnbgsa61q6s7h0n80ak8ih63jdcx";
+       version = "0.1.10.1";
+       sha256 = "0gfbw6d48dqhc6gm9qwxfn4w6j3zs2xgf7c0kwxmgn4464y93dwy";
        configureFlags = [ "-fexternallibsass" ];
        setupHaskellDepends = [ base Cabal directory ];
        libraryHaskellDepends = [ base ];
@@ -125185,8 +127715,8 @@ self: {
      }:
      mkDerivation {
        pname = "hlint";
-       version = "3.1.4";
-       sha256 = "1wshn0vncvf6xc52dfr4s2b3j5h990ibnfx5qpk2hx1absp35qdv";
+       version = "3.2";
+       sha256 = "0g3ay30dwr2v22bybapryl0ykjyqs5ym1i1p7jfky7lp20ri9x1z";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -125298,6 +127828,8 @@ self: {
        ];
        description = "High-level Redis Database";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hlrdb-core" = callPackage
@@ -125330,6 +127862,24 @@ self: {
        broken = true;
      }) {};
 
+  "hls-plugin-api" = callPackage
+    ({ mkDerivation, aeson, base, containers, data-default, Diff, ghc
+     , ghc-boot-th, ghcide, haskell-lsp, hslogger, lens, process
+     , regex-tdfa, shake, text, unordered-containers
+     }:
+     mkDerivation {
+       pname = "hls-plugin-api";
+       version = "0.4.0.0";
+       sha256 = "1fr9j1nf0lkff3fb5vslfvkb42836ncfhhkswn8rq6mwlv0mv03k";
+       libraryHaskellDepends = [
+         aeson base containers data-default Diff ghc ghc-boot-th ghcide
+         haskell-lsp hslogger lens process regex-tdfa shake text
+         unordered-containers
+       ];
+       description = "Haskell Language Server API for plugin communication";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "hlwm" = callPackage
     ({ mkDerivation, base, stm, transformers, unix, X11 }:
      mkDerivation {
@@ -125972,21 +128522,19 @@ self: {
 
   "hmt" = callPackage
     ({ mkDerivation, aeson, array, base, bytestring, colour, containers
-     , data-ordlist, directory, fgl, filepath, lazy-csv, logict
-     , modular-arithmetic, multiset-comb, parsec, permutation, primes
-     , random, safe, split, text
+     , data-ordlist, directory, fgl, filepath, hsc3, lazy-csv, logict
+     , multiset-comb, parsec, permutation, primes, process, random, safe
+     , split, text, time
      }:
      mkDerivation {
        pname = "hmt";
-       version = "0.16";
-       sha256 = "1s6fjyphq57wh15vryj6y493ikaqa3g14x6hj9lg2h6wf6g8042h";
-       revision = "1";
-       editedCabalFile = "0ng1z7s5alciw1r3r0ch8bakabqlind29pssrih09rbnqbqwbmcj";
+       version = "0.18";
+       sha256 = "14c54z5zcg84nvq80yv3j3n6l7nha1l772vg3nsfsgy6fg430xdb";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson array base bytestring colour containers data-ordlist
-         directory fgl filepath lazy-csv logict modular-arithmetic
-         multiset-comb parsec permutation primes random safe split text
+         directory fgl filepath hsc3 lazy-csv logict multiset-comb parsec
+         permutation primes process random safe split text time
        ];
        description = "Haskell Music Theory";
        license = "GPL";
@@ -126066,63 +128614,48 @@ self: {
 
   "hnix" = callPackage
     ({ mkDerivation, aeson, array, base, base16-bytestring, binary
-     , bytestring, comonad, containers, contravariant, criterion
-     , cryptohash-md5, cryptohash-sha1, cryptohash-sha256
-     , cryptohash-sha512, data-fix, deepseq, deriving-compat, Diff
-     , directory, exceptions, filepath, free, generic-random, Glob
-     , hashable, hashing, haskeline, hedgehog, hnix-store-core
-     , http-client, http-client-tls, http-types, interpolate
-     , lens-family, lens-family-core, lens-family-th, logict, megaparsec
-     , monad-control, monadlist, mtl, optparse-applicative
-     , parser-combinators, pretty-show, prettyprinter, process, ref-tf
-     , regex-tdfa, repline, scientific, semialign, semialign-indexed
-     , semigroups, serialise, some, split, syb, tasty, tasty-hedgehog
-     , tasty-hunit, tasty-quickcheck, tasty-th, template-haskell, text
+     , bytestring, comonad, containers, criterion, data-fix, deepseq
+     , deriving-compat, Diff, directory, exceptions, filepath, free
+     , gitrev, Glob, hashable, hashing, hedgehog, hnix-store-core
+     , http-client, http-client-tls, http-types, lens-family
+     , lens-family-core, lens-family-th, logict, megaparsec
+     , monad-control, monadlist, mtl, neat-interpolation
+     , optparse-applicative, parser-combinators, pretty-show
+     , prettyprinter, process, ref-tf, regex-tdfa, scientific, semialign
+     , semialign-indexed, serialise, some, split, syb, tasty
+     , tasty-hedgehog, tasty-hunit, tasty-th, template-haskell, text
      , these, time, transformers, transformers-base, unix
      , unordered-containers, vector, xml
      }:
      mkDerivation {
        pname = "hnix";
-       version = "0.8.0";
-       sha256 = "14ihkzf6garpv9yg34y9mvshwwah9isdq7gy788ffszv306vivhm";
+       version = "0.10.1";
+       sha256 = "19a5pa1ji4hjr3vjvbkjmhnysnd8jcpkzlj9f2qw67h5iagysccy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson array base base16-bytestring binary bytestring comonad
-         containers contravariant cryptohash-md5 cryptohash-sha1
-         cryptohash-sha256 cryptohash-sha512 data-fix deepseq
-         deriving-compat directory exceptions filepath free hashable hashing
-         haskeline hnix-store-core http-client http-client-tls http-types
-         interpolate lens-family lens-family-core lens-family-th logict
-         megaparsec monad-control monadlist mtl optparse-applicative
-         parser-combinators pretty-show prettyprinter process ref-tf
-         regex-tdfa scientific semialign semialign-indexed semigroups
-         serialise some split syb template-haskell text these time
-         transformers transformers-base unix unordered-containers vector xml
-       ];
-       executableHaskellDepends = [
-         aeson base base16-bytestring bytestring comonad containers
-         cryptohash-md5 cryptohash-sha1 cryptohash-sha256 cryptohash-sha512
-         data-fix deepseq exceptions filepath free hashing haskeline mtl
-         optparse-applicative pretty-show prettyprinter ref-tf repline
-         serialise template-haskell text time transformers
-         unordered-containers
-       ];
-       testHaskellDepends = [
-         base base16-bytestring bytestring containers cryptohash-md5
-         cryptohash-sha1 cryptohash-sha256 cryptohash-sha512 data-fix
-         deepseq Diff directory exceptions filepath generic-random Glob
-         hashing hedgehog interpolate megaparsec mtl optparse-applicative
-         pretty-show prettyprinter process serialise split tasty
-         tasty-hedgehog tasty-hunit tasty-quickcheck tasty-th
+         containers data-fix deepseq deriving-compat directory exceptions
+         filepath free gitrev hashable hashing hnix-store-core http-client
+         http-client-tls http-types lens-family lens-family-core
+         lens-family-th logict megaparsec monad-control monadlist mtl
+         neat-interpolation optparse-applicative parser-combinators
+         pretty-show prettyprinter process ref-tf regex-tdfa scientific
+         semialign semialign-indexed serialise some split syb
+         template-haskell text these time transformers transformers-base
+         unix unordered-containers vector xml
+       ];
+       testHaskellDepends = [
+         base base16-bytestring bytestring containers data-fix deepseq Diff
+         directory exceptions filepath Glob hedgehog megaparsec mtl
+         neat-interpolation optparse-applicative pretty-show prettyprinter
+         process serialise split tasty tasty-hedgehog tasty-hunit tasty-th
          template-haskell text time transformers unix unordered-containers
        ];
        benchmarkHaskellDepends = [
-         base base16-bytestring bytestring containers criterion
-         cryptohash-md5 cryptohash-sha1 cryptohash-sha256 cryptohash-sha512
-         data-fix deepseq exceptions filepath hashing mtl
-         optparse-applicative serialise template-haskell text time
-         transformers unordered-containers
+         base base16-bytestring bytestring containers criterion data-fix
+         deepseq exceptions filepath mtl optparse-applicative serialise
+         template-haskell text time transformers unordered-containers
        ];
        description = "Haskell implementation of the Nix language";
        license = stdenv.lib.licenses.bsd3;
@@ -126311,8 +128844,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoauth2";
-       version = "1.11.0";
-       sha256 = "0pf558n93gqksfgsjlvwcly2lq86adkcbqjqsq4p73kwwzs6dka8";
+       version = "1.14.0";
+       sha256 = "0szcg4bvzs8djmq5k47czyk7hv9nassahd0ngd127hcab5afmbxk";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -126324,15 +128857,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "hoauth2_1_14_0" = callPackage
+  "hoauth2_1_15_0" = callPackage
     ({ mkDerivation, aeson, base, binary, bytestring, exceptions
      , http-conduit, http-types, microlens, text, unordered-containers
      , uri-bytestring, uri-bytestring-aeson
      }:
      mkDerivation {
        pname = "hoauth2";
-       version = "1.14.0";
-       sha256 = "0szcg4bvzs8djmq5k47czyk7hv9nassahd0ngd127hcab5afmbxk";
+       version = "1.15.0";
+       sha256 = "12f564jcma8pl1qbc8g258jb92q5bdv3xzl6xr3bin8hln86sz1f";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -126394,16 +128927,17 @@ self: {
      }) {};
 
   "hobbits" = callPackage
-    ({ mkDerivation, base, deepseq, haskell-src-exts, haskell-src-meta
-     , mtl, syb, tagged, template-haskell, th-expand-syns, transformers
+    ({ mkDerivation, base, containers, deepseq, haskell-src-exts
+     , haskell-src-meta, mtl, syb, tagged, template-haskell
+     , th-expand-syns, transformers, vector
      }:
      mkDerivation {
        pname = "hobbits";
-       version = "1.2.4";
-       sha256 = "0hqg29s938hz1hxb7ljv3wnr8iaxwjmi66zjvvy1939g5r6fmdll";
+       version = "1.3";
+       sha256 = "1w8bz1z747dd7vh110iynmsq5n0a84zw1gk7jcxfwl5lpfrqz97s";
        libraryHaskellDepends = [
-         base deepseq haskell-src-exts haskell-src-meta mtl syb tagged
-         template-haskell th-expand-syns transformers
+         base containers deepseq haskell-src-exts haskell-src-meta mtl syb
+         tagged template-haskell th-expand-syns transformers vector
        ];
        description = "A library for canonically representing terms with binding";
        license = stdenv.lib.licenses.bsd3;
@@ -126433,46 +128967,45 @@ self: {
      }) {ocilib = null;};
 
   "hocker" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, ansi-wl-pprint, async, base
-     , bytestring, concurrentoutput, containers, cryptonite, data-fix
-     , deepseq, directory, exceptions, filepath, foldl, hnix
-     , http-client, http-types, lens, lens-aeson, lifted-base, memory
+    ({ mkDerivation, aeson, aeson-pretty, async, base, bytestring
+     , concurrentoutput, containers, cryptonite, data-fix, deepseq
+     , directory, exceptions, filepath, foldl, hnix, http-client
+     , http-types, lens, lens-aeson, lifted-base, megaparsec, memory
      , mtl, neat-interpolation, network, network-uri, nix-paths
      , optional-args, optparse-applicative, optparse-generic, pooled-io
-     , pureMD5, scientific, tar, tasty, tasty-golden, tasty-hunit
-     , tasty-quickcheck, tasty-smallcheck, temporary, text, time
-     , transformers, turtle, unordered-containers, uri-bytestring
-     , vector, wreq, zlib
+     , prettyprinter, pureMD5, scientific, tar, tasty, tasty-golden
+     , tasty-hunit, tasty-quickcheck, tasty-smallcheck, temporary, text
+     , time, transformers, turtle, unordered-containers, uri-bytestring
+     , vector, word8, wreq, zlib
      }:
      mkDerivation {
        pname = "hocker";
-       version = "1.0.5";
-       sha256 = "0xv22kiw44y72asrnk027h9gxpfhjzgdm8sbcy70s4ipn8n62hha";
+       version = "1.0.6";
+       sha256 = "1j6gcb33jf3kcskxyl0s264h5b1rvmcgkrmhrgzw7i3314394xdj";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson aeson-pretty ansi-wl-pprint async base bytestring
-         concurrentoutput containers cryptonite data-fix deepseq directory
-         exceptions filepath foldl hnix http-client http-types lens
-         lens-aeson lifted-base memory mtl neat-interpolation network
+         aeson aeson-pretty async base bytestring concurrentoutput
+         containers cryptonite data-fix deepseq directory exceptions
+         filepath foldl hnix http-client http-types lens lens-aeson
+         lifted-base megaparsec memory mtl neat-interpolation network
          network-uri nix-paths optparse-applicative optparse-generic
-         pooled-io pureMD5 scientific tar temporary text time transformers
-         turtle unordered-containers uri-bytestring vector wreq zlib
+         pooled-io prettyprinter pureMD5 scientific tar temporary text time
+         transformers turtle unordered-containers uri-bytestring vector wreq
+         zlib
        ];
        executableHaskellDepends = [
          base bytestring cryptonite data-fix filepath hnix lens mtl network
          optional-args optparse-applicative optparse-generic temporary text
        ];
        testHaskellDepends = [
-         aeson ansi-wl-pprint base bytestring containers cryptonite mtl
-         network network-uri tasty tasty-golden tasty-hunit tasty-quickcheck
-         tasty-smallcheck text unordered-containers
+         aeson base bytestring containers cryptonite mtl network network-uri
+         prettyprinter tasty tasty-golden tasty-hunit tasty-quickcheck
+         tasty-smallcheck text unordered-containers word8
        ];
        description = "Interact with the docker registry and generate nix build instructions";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "hodatime" = callPackage
@@ -126752,6 +129285,8 @@ self: {
        testToolDepends = [ markdown-unlit tasty-discover ];
        description = "Tools and combinators for solving constraint problems";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "holy-project" = callPackage
@@ -126847,16 +129382,17 @@ self: {
      }) {};
 
   "homotuple" = callPackage
-    ({ mkDerivation, base, OneTuple, Only, single-tuple }:
+    ({ mkDerivation, base, Cabal, directory, OneTuple, Only
+     , single-tuple
+     }:
      mkDerivation {
        pname = "homotuple";
-       version = "0.1.1.0";
-       sha256 = "02ihvyl6hdc879j3mx5ybbkd0iycqxjjmwd3z7dzshf9d5jmw67v";
+       version = "0.1.2.1";
+       sha256 = "1jhw6mby17wz0jiqxjj59qfvcy9dgd8gm5z0ak3qzr1xrd652fa8";
+       setupHaskellDepends = [ base Cabal directory ];
        libraryHaskellDepends = [ base OneTuple Only single-tuple ];
        description = "Homotuple, all whose elements are the same type";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "homplexity" = callPackage
@@ -127243,8 +129779,8 @@ self: {
      }:
      mkDerivation {
        pname = "hoogle";
-       version = "5.0.17.15";
-       sha256 = "0yl2izlxb863a3vxj4dhqn65qnwmmja799bgm004kcmk646r24jx";
+       version = "5.0.18";
+       sha256 = "16vbjivwwjn687cidg0v9bkdyk9mkv4gn6fmaxcfj8m94vrqdbdx";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -127303,10 +129839,8 @@ self: {
      }:
      mkDerivation {
        pname = "hookup";
-       version = "0.3.1.0";
-       sha256 = "0dyx0zgxis4viqgdkky25q93vh3z551m7nssjfr15rqj25w8zb5y";
-       revision = "1";
-       editedCabalFile = "0r92s1dz7bzm2p5wpdqfkmpgzfh3xgyan82b4rkpmq8m888z74w9";
+       version = "0.4";
+       sha256 = "0zfplby1lkbdr3s6icv1p4vii77a2sb3mx0ylp9pjg7f3ic9lw8i";
        libraryHaskellDepends = [
          attoparsec base bytestring HsOpenSSL HsOpenSSL-x509-system network
        ];
@@ -127314,6 +129848,29 @@ self: {
        license = stdenv.lib.licenses.isc;
      }) {};
 
+  "hoop" = callPackage
+    ({ mkDerivation, base, containers, haskell-src-exts
+     , haskell-src-meta, hspec, lens, mtl, parsec, pretty
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "hoop";
+       version = "0.3.0.0";
+       sha256 = "1p6094gwivk4lj3alb3c1w43n7qchga8kdnrz09sfyldcygycss8";
+       libraryHaskellDepends = [
+         base containers haskell-src-exts haskell-src-meta lens mtl parsec
+         pretty template-haskell text
+       ];
+       testHaskellDepends = [
+         base containers haskell-src-exts haskell-src-meta hspec lens mtl
+         parsec pretty template-haskell text
+       ];
+       description = "Object-Oriented Programming in Haskell";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hoopl" = callPackage
     ({ mkDerivation, base, containers, filepath, mtl, parsec
      , test-framework, test-framework-hunit
@@ -127697,6 +130254,24 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "hosc_0_18_1" = callPackage
+    ({ mkDerivation, base, binary, blaze-builder, bytestring
+     , data-binary-ieee754, network, time, transformers
+     }:
+     mkDerivation {
+       pname = "hosc";
+       version = "0.18.1";
+       sha256 = "0ygyvwzsvqv4pihzdm6i3kzkr01nh3qpk9g9f9ap6243yx7003vj";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base binary blaze-builder bytestring data-binary-ieee754 network
+         time transformers
+       ];
+       description = "Haskell Open Sound Control";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hosc-json" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bifunctors, bytestring
      , hosc, json, text, transformers, unordered-containers, utf8-string
@@ -128028,44 +130603,6 @@ self: {
      }:
      mkDerivation {
        pname = "hpack";
-       version = "0.33.1";
-       sha256 = "1asbiw1vajhfjjadrlpcqdl43gqfqa9r44l9d1c2lgiys4fqpdmk";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base bifunctors bytestring Cabal containers cryptonite
-         deepseq directory filepath Glob http-client http-client-tls
-         http-types infer-license pretty scientific text transformers
-         unordered-containers vector yaml
-       ];
-       executableHaskellDepends = [
-         aeson base bifunctors bytestring Cabal containers cryptonite
-         deepseq directory filepath Glob http-client http-client-tls
-         http-types infer-license pretty scientific text transformers
-         unordered-containers vector yaml
-       ];
-       testHaskellDepends = [
-         aeson base bifunctors bytestring Cabal containers cryptonite
-         deepseq directory filepath Glob hspec http-client http-client-tls
-         http-types HUnit infer-license interpolate mockery pretty
-         QuickCheck scientific template-haskell temporary text transformers
-         unordered-containers vector yaml
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "A modern format for Haskell packages";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "hpack_0_34_2" = callPackage
-    ({ mkDerivation, aeson, base, bifunctors, bytestring, Cabal
-     , containers, cryptonite, deepseq, directory, filepath, Glob, hspec
-     , hspec-discover, http-client, http-client-tls, http-types, HUnit
-     , infer-license, interpolate, mockery, pretty, QuickCheck
-     , scientific, template-haskell, temporary, text, transformers
-     , unordered-containers, vector, yaml
-     }:
-     mkDerivation {
-       pname = "hpack";
        version = "0.34.2";
        sha256 = "0sn99v1bndbn1if36i4xj1xqcxpihh6yj8ssixypnpwi5vm7hvyf";
        isLibrary = true;
@@ -128092,7 +130629,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A modern format for Haskell packages";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hpack-convert" = callPackage
@@ -128309,8 +130845,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpath-directory";
-       version = "0.13.4";
-       sha256 = "0cg80zsh0cwkaq4hd6y41afvn340a4byrk6h4dspiksgym5i8ny0";
+       version = "0.14.0";
+       sha256 = "1rv2f0vqbivzqgpk3msxgymqmwp159bi6h2hcdgf65v5j3rhv52n";
        libraryHaskellDepends = [
          base bytestring exceptions hpath-filepath hpath-posix IfElse
          safe-exceptions streamly streamly-bytestring streamly-posix time
@@ -128342,8 +130878,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpath-io";
-       version = "0.13.2";
-       sha256 = "10dph69qsl73k5rjvr5mvcplwgcmq7qylaxmr2yx7hzcjzsdgg4z";
+       version = "0.14.0";
+       sha256 = "12awqghnway7fhcyzyy6dj5f9p1z15gbp31r1781n892w3vvk4l9";
        libraryHaskellDepends = [
          base bytestring exceptions hpath hpath-directory hpath-posix
          safe-exceptions streamly time unix
@@ -128385,27 +130921,6 @@ self: {
      }:
      mkDerivation {
        pname = "hpc-codecov";
-       version = "0.1.0.0";
-       sha256 = "1kr245qsdq60lvg1y9krpd19z9svwi2w9843b39hbv9fxzs7zcia";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         array base bytestring directory filepath hpc
-       ];
-       executableHaskellDepends = [ base ];
-       testHaskellDepends = [
-         base directory filepath tar tasty tasty-hunit
-       ];
-       description = "Generate codecov report from hpc data";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hpc-codecov_0_2_0_0" = callPackage
-    ({ mkDerivation, array, base, bytestring, directory, filepath, hpc
-     , tar, tasty, tasty-hunit
-     }:
-     mkDerivation {
-       pname = "hpc-codecov";
        version = "0.2.0.0";
        sha256 = "0ha97zldwbsx86ji4sjaw9jf7kzgrk41zabzdd1b6sdlf20p883k";
        isLibrary = true;
@@ -128419,7 +130934,6 @@ self: {
        ];
        description = "Generate codecov report from hpc data";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hpc-coveralls" = callPackage
@@ -128456,10 +130970,10 @@ self: {
      }:
      mkDerivation {
        pname = "hpc-lcov";
-       version = "1.0.0";
-       sha256 = "0j2v2dpqj8xrs7z8mn1f71pin1m2arynp8nmai9cd1bqxyrv56a6";
+       version = "1.0.1";
+       sha256 = "01ws5y2vavgm7151dcabw3jwny1prrnzn5b04q76m5gc6a36wivl";
        revision = "1";
-       editedCabalFile = "1h73lhmad57xllygx16kqr7q647y0d1m72gxl9d3n0w5hgdrq5sh";
+       editedCabalFile = "1jv81ywwzvr37zki8hjylj6gfhamq7fi7rpjyk1g0d06ac9ix0zp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers hpc ];
@@ -128525,20 +131039,23 @@ self: {
 
   "hpdft" = callPackage
     ({ mkDerivation, attoparsec, base, binary, bytestring, containers
-     , directory, file-embed, parsec, text, utf8-string, zlib
+     , directory, file-embed, memory, optparse-applicative, parsec
+     , semigroups, text, utf8-string, zlib
      }:
      mkDerivation {
        pname = "hpdft";
-       version = "0.1.0.5";
-       sha256 = "1wcbkxcfwnmfbwfa3dqlqgf825b00x0fvmp4fp3jfxs6s5dyi6lh";
+       version = "0.1.0.6";
+       sha256 = "04r5a9z36dglpfz7j01cz3yizi9l0633rf630ypg2sfxkhn2384w";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          attoparsec base binary bytestring containers directory file-embed
-         parsec text utf8-string zlib
+         memory optparse-applicative parsec semigroups text utf8-string zlib
+       ];
+       executableHaskellDepends = [
+         base bytestring memory optparse-applicative semigroups utf8-string
        ];
-       executableHaskellDepends = [ base bytestring utf8-string ];
        description = "A tool for looking through PDF file using Haskell";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -128675,8 +131192,8 @@ self: {
      }:
      mkDerivation {
        pname = "hpqtypes";
-       version = "1.9.0.0";
-       sha256 = "17w916p4gfzflgvd35d5nxzfch82bwyranvlv28j2qz3dvk15ymn";
+       version = "1.9.1.0";
+       sha256 = "13q20ak0zakwvlc05y187iq2vpvdjx9dlmvmgvv2gjd263sqcgm2";
        setupHaskellDepends = [ base Cabal directory filepath ];
        libraryHaskellDepends = [
          aeson async base bytestring containers exceptions lifted-base
@@ -128706,6 +131223,8 @@ self: {
        pname = "hpqtypes-extras";
        version = "1.10.2.1";
        sha256 = "06vx7llfyidldp5ar80a3dkw14xv19v1s8kc7kf6vs1gb3vx8r5n";
+       revision = "1";
+       editedCabalFile = "0vn0396jhxnrnp8724kpl7yjy4aywa2nm1vb7znz0fmzr0vp54yi";
        libraryHaskellDepends = [
          base base16-bytestring bytestring containers cryptohash exceptions
          fields-json hpqtypes lifted-base log-base monad-control mtl safe
@@ -129219,23 +131738,11 @@ self: {
     ({ mkDerivation, base, syb }:
      mkDerivation {
        pname = "hs-bibutils";
-       version = "6.8.0.0";
-       sha256 = "0syhh413qmajv56gaqz7p3b2yb6f0x9cx8zgds6fa3yzcqw7zasc";
-       libraryHaskellDepends = [ base syb ];
-       description = "Haskell bindings to bibutils, the bibliography conversion utilities";
-       license = "GPL";
-     }) {};
-
-  "hs-bibutils_6_10_0_0" = callPackage
-    ({ mkDerivation, base, syb }:
-     mkDerivation {
-       pname = "hs-bibutils";
        version = "6.10.0.0";
        sha256 = "1wnpy1v5rbii2iwlcc9psnww8pkirv9zl21s64cmbi6q7dv15g3n";
        libraryHaskellDepends = [ base syb ];
        description = "Haskell bindings to bibutils, the bibliography conversion utilities";
        license = "GPL";
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "hs-blake2" = callPackage
@@ -129478,14 +131985,12 @@ self: {
      }) {inherit (pkgs) fltk; fltk_images = null;};
 
   "hs-functors" = callPackage
-    ({ mkDerivation, base, tagged, transformers }:
+    ({ mkDerivation, base, dual, tagged, transformers }:
      mkDerivation {
        pname = "hs-functors";
-       version = "0.1.6.0";
-       sha256 = "197vyl98ddvc55dxwwjd46sdjvh1a9s5qcx2m16smn9gwmx9gq0l";
-       revision = "1";
-       editedCabalFile = "1z4p93nibk1r0cyff4bfpb1rfklq43p75k35fyrk5kcvfa0ds296";
-       libraryHaskellDepends = [ base tagged transformers ];
+       version = "0.1.7.1";
+       sha256 = "1cigaggilr05pgizj11g5c40ln38zb5q8p0igliamkhx7fz3axis";
+       libraryHaskellDepends = [ base dual tagged transformers ];
        description = "Functors from products of Haskell and its dual to Haskell";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -129494,8 +131999,8 @@ self: {
     ({ mkDerivation, base, mtl }:
      mkDerivation {
        pname = "hs-gchart";
-       version = "0.4.1";
-       sha256 = "0nmykgdzkqidxv51bhlcn4zax4zfw26s4l65z3a3405si2s5x459";
+       version = "0.4.2";
+       sha256 = "1kky6fr7s4v3hpnabp95crrd6fd67rq49sbdpjbm4n5gbyby110q";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base mtl ];
        description = "Haskell wrapper for the Google Chart API";
@@ -129554,19 +132059,13 @@ self: {
      }) {};
 
   "hs-ix" = callPackage
-    ({ mkDerivation, base, base-unicode-symbols, criterion, hs-functors
-     , smallcheck, tasty, tasty-smallcheck, util
-     }:
+    ({ mkDerivation, base, hs-functors }:
      mkDerivation {
        pname = "hs-ix";
-       version = "0.1.1.0";
-       sha256 = "1a1plgzbqk4jhf5lyfx82yillcmy38lzlqwsfhnlka5h6f9j10hx";
-       libraryHaskellDepends = [
-         base base-unicode-symbols hs-functors util
-       ];
-       testHaskellDepends = [ base smallcheck tasty tasty-smallcheck ];
-       benchmarkHaskellDepends = [ base criterion ];
-       description = "Indexed monads";
+       version = "0.2.0.0";
+       sha256 = "04dm8c5ilaw4agljfp7k31ln2j5m1shyg4zb3x36rjkbs807z8sf";
+       libraryHaskellDepends = [ base hs-functors ];
+       description = "Indexed applicative functors and monads";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -129658,7 +132157,7 @@ self: {
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {inherit (pkgs) mesos; inherit (pkgs) protobuf;};
+     }) {mesos = null; inherit (pkgs) protobuf;};
 
   "hs-multiaddr" = callPackage
     ({ mkDerivation, base, bytes, bytestring, cereal, either-unwrap
@@ -130449,8 +132948,8 @@ self: {
      }:
      mkDerivation {
        pname = "hsc3";
-       version = "0.17";
-       sha256 = "1k7gm0qk96rm7rphmmwlqh99kn5v79g8szyyhb9cqg3rfv6as1ld";
+       version = "0.18";
+       sha256 = "1j6jdgvvk3pxyky63khszv0cim4b7wbffpcpa098ii98fib0r47i";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base binary bytestring containers data-ordlist directory
@@ -130459,6 +132958,8 @@ self: {
        ];
        description = "Haskell SuperCollider";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hsc3-auditor" = callPackage
@@ -131259,8 +133760,8 @@ self: {
      }:
      mkDerivation {
        pname = "hsendxmpp";
-       version = "0.1.2.1";
-       sha256 = "0affpvnpwy1cih932427i343n9fvc4qnnjy5drkz683q1rdajhvd";
+       version = "0.1.2.2";
+       sha256 = "1zw26rp206w5wq3qb2y35wjis2a3qvyip7k35f3ls4y530gw39bq";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -131522,8 +134023,8 @@ self: {
        pname = "hsimport";
        version = "0.11.0";
        sha256 = "1z55gpwyb2gwjlll2c32g9r4aqpdybjpnjy785z60wpjdl48qwaa";
-       revision = "2";
-       editedCabalFile = "00blkkmxc7ldwa7jywrg32pq0nz7z8sidj56qdy5s8cpzx57gwg8";
+       revision = "3";
+       editedCabalFile = "017yfag3k4j9v9mj5fv7v8s2j7cla97isx8z4q6ks5wfvjvyfpjy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -131538,8 +134039,6 @@ self: {
        doHaddock = false;
        description = "Extend the import list of a Haskell source file";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "hsini" = callPackage
@@ -131588,8 +134087,8 @@ self: {
      }:
      mkDerivation {
        pname = "hsinspect-lsp";
-       version = "0.0.3";
-       sha256 = "0y7y8ldlyajczpiy216jm4inapmpssyri0mv0v7h86xxmgzz5c02";
+       version = "0.0.6";
+       sha256 = "0z02hismrc14yw36ly0xgzavam9n4svwyv0g31yjrg9szyadn1i8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -131608,6 +134107,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "LSP interface over the hsinspect binary";
        license = stdenv.lib.licenses.gpl3Plus;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hsinstall" = callPackage
@@ -131808,15 +134309,38 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {inherit (pkgs) lua5_3;};
 
-  "hslua_1_1_1" = callPackage
+  "hslua_1_1_2" = callPackage
     ({ mkDerivation, base, bytestring, containers, exceptions, lua5_3
      , mtl, QuickCheck, quickcheck-instances, tasty, tasty-hunit
      , tasty-quickcheck, text
      }:
      mkDerivation {
        pname = "hslua";
-       version = "1.1.1";
-       sha256 = "10gga18cg03av05rff9dg1yjmcyk16lv66zd4gwpr4g60091snbl";
+       version = "1.1.2";
+       sha256 = "1cv4lwr91ckscwm2jksrg29ka1z32974xgkcgmna4ibpyjwkslbl";
+       configureFlags = [ "-fsystem-lua" "-f-use-pkgconfig" ];
+       libraryHaskellDepends = [
+         base bytestring containers exceptions mtl text
+       ];
+       librarySystemDepends = [ lua5_3 ];
+       testHaskellDepends = [
+         base bytestring containers exceptions mtl QuickCheck
+         quickcheck-instances tasty tasty-hunit tasty-quickcheck text
+       ];
+       description = "Bindings to Lua, an embeddable scripting language";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {inherit (pkgs) lua5_3;};
+
+  "hslua_1_2_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, exceptions, lua5_3
+     , mtl, QuickCheck, quickcheck-instances, tasty, tasty-hunit
+     , tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "hslua";
+       version = "1.2.0";
+       sha256 = "0a295zqpbrv8a2hw7msz5p7brlswag16sg08dyz399ij6b7q5x0h";
        configureFlags = [ "-fsystem-lua" "-f-use-pkgconfig" ];
        libraryHaskellDepends = [
          base bytestring containers exceptions mtl text
@@ -131838,8 +134362,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-aeson";
-       version = "1.0.2";
-       sha256 = "1v5saxppbnq62ds00a7diadvqg8dnsx0sjlcanjj15h13j3yw964";
+       version = "1.0.3";
+       sha256 = "0qqcf9km39bmw29d2s5zw91rxgmmm8nqfnfs5hkhmsgh5kvaal5h";
        libraryHaskellDepends = [
          aeson base hashable hslua scientific text unordered-containers
          vector
@@ -131868,18 +134392,37 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hslua-module-doclayout_0_2_0" = callPackage
+    ({ mkDerivation, base, doclayout, hslua, tasty, tasty-hunit
+     , tasty-lua, text
+     }:
+     mkDerivation {
+       pname = "hslua-module-doclayout";
+       version = "0.2.0";
+       sha256 = "1ilkyv0wscz2kv0jkn45qc8ng5l1hvvbkwh972zvisys1m3hri4y";
+       libraryHaskellDepends = [ base doclayout hslua text ];
+       testHaskellDepends = [
+         base doclayout hslua tasty tasty-hunit tasty-lua
+       ];
+       description = "Lua module wrapping Text.DocLayout.";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hslua-module-system" = callPackage
     ({ mkDerivation, base, containers, directory, exceptions, hslua
-     , tasty, tasty-hunit, temporary, text
+     , tasty, tasty-hunit, tasty-lua, temporary, text
      }:
      mkDerivation {
        pname = "hslua-module-system";
-       version = "0.2.1";
-       sha256 = "1m7wz3g5c34pyizqw5mllzhsy2vziddhlbhjfwdvd7nhd3p4v3hh";
+       version = "0.2.2";
+       sha256 = "0swl20v40kkh67vn6546a0afjcsq56x3ww854x3pwypxz1p6dyri";
        libraryHaskellDepends = [
          base containers directory exceptions hslua temporary
        ];
-       testHaskellDepends = [ base hslua tasty tasty-hunit text ];
+       testHaskellDepends = [
+         base hslua tasty tasty-hunit tasty-lua text
+       ];
        description = "Lua module wrapper around Haskell's System module";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -131897,6 +134440,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "hslua-module-text_0_3_0" = callPackage
+    ({ mkDerivation, base, bytestring, hslua, tasty, tasty-hunit
+     , tasty-lua, text
+     }:
+     mkDerivation {
+       pname = "hslua-module-text";
+       version = "0.3.0";
+       sha256 = "1y15b38r0xiwcwpzsdr8x8i4y8all2jd3z0j7fvny6lsbna2hf7r";
+       libraryHaskellDepends = [ base bytestring hslua text ];
+       testHaskellDepends = [
+         base hslua tasty tasty-hunit tasty-lua text
+       ];
+       description = "Lua module for text";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hsluv-haskell" = callPackage
     ({ mkDerivation, aeson, base, bytestring, colour, containers }:
      mkDerivation {
@@ -131935,10 +134495,9 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {GraphicsMagick = null; inherit (pkgs) bzip2; freetype2 = null; 
-         inherit (pkgs) jasper; inherit (pkgs) lcms; 
-         inherit (pkgs) libjpeg; inherit (pkgs) libpng; 
-         inherit (pkgs) libxml2; tiff = null; wmflite = null; 
-         inherit (pkgs) zlib;};
+         jasper = null; inherit (pkgs) lcms; inherit (pkgs) libjpeg; 
+         inherit (pkgs) libpng; inherit (pkgs) libxml2; tiff = null; 
+         wmflite = null; inherit (pkgs) zlib;};
 
   "hsmisc" = callPackage
     ({ mkDerivation, base, containers, HUnit, mtl, old-locale, parsec
@@ -132257,8 +134816,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec";
-       version = "2.7.1";
-       sha256 = "1x8rcr7j1azcaw0fg1xzp8j0gr4ias36z09aj24i4xp8pnyfp341";
+       version = "2.7.4";
+       sha256 = "0zql8cl025ai3yx2dhp1sgvmw8n4ngqbrlmb42hcgv26q8qnvhmi";
        libraryHaskellDepends = [
          base hspec-core hspec-discover hspec-expectations QuickCheck
        ];
@@ -132329,10 +134888,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-core";
-       version = "2.7.1";
-       sha256 = "08vk8588lap00hsln8zl64dazbb28lzk4b4h5vnm7xvhg7r21k1c";
-       revision = "1";
-       editedCabalFile = "0aw68sgz2p63y0vg07c1jx2pr8lmhp5c1ck60dlipyxsa00455i6";
+       version = "2.7.4";
+       sha256 = "1k0rs9399m6bzmndc9ybs26mxrzkl9pifrijvknysbaqfcifmq35";
        libraryHaskellDepends = [
          ansi-terminal array base call-stack clock deepseq directory
          filepath hspec-expectations HUnit QuickCheck quickcheck-io random
@@ -132373,8 +134930,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-discover";
-       version = "2.7.1";
-       sha256 = "0r47fm94wa6qrhp8cc1zzkjrxc32rnagfn9m9ga4dm6p6ydw4c8b";
+       version = "2.7.4";
+       sha256 = "02laain23bcnzsl65347qr5knvrmrlhd0kzc0d88kx59lpzm27a0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base directory filepath ];
@@ -132514,8 +135071,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-golden";
-       version = "0.1.0.1";
-       sha256 = "1h29jffq33r5ffcni50ypa03x7qvx8yymdrp5nck9q8ykiivry22";
+       version = "0.1.0.3";
+       sha256 = "1d5ab34n0f1wk1q86qlb7x2b49abzzh08jh7j52nbrvnxld2j64l";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base directory hspec-core ];
@@ -132634,6 +135191,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "hspec-megaparsec_2_2_0" = callPackage
+    ({ mkDerivation, base, containers, hspec, hspec-expectations
+     , megaparsec
+     }:
+     mkDerivation {
+       pname = "hspec-megaparsec";
+       version = "2.2.0";
+       sha256 = "0hyf06gzzqd6sqd76crwxycwgx804sd39z7i0c2vmv1qgsxv82gn";
+       libraryHaskellDepends = [
+         base containers hspec-expectations megaparsec
+       ];
+       testHaskellDepends = [ base hspec hspec-expectations megaparsec ];
+       description = "Utility functions for testing Megaparsec parsers with Hspec";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "hspec-meta" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, call-stack, clock
      , deepseq, directory, filepath, hspec-expectations, HUnit
@@ -132701,8 +135275,8 @@ self: {
      }:
      mkDerivation {
        pname = "hspec-need-env";
-       version = "0.1.0.4";
-       sha256 = "0cb6jr0mqhaylqdky38s8plgs9w8hk1pi135yxggr707bnhwsplg";
+       version = "0.1.0.5";
+       sha256 = "0bgjhzc4m24sbmfyczq1r61gbgm5i1lsgyql88ki4flllscg4hsh";
        libraryHaskellDepends = [ base hspec-core hspec-expectations ];
        testHaskellDepends = [ base hspec hspec-core setenv transformers ];
        description = "Read environment variables for hspec tests";
@@ -133154,7 +135728,7 @@ self: {
        sha256 = "0lz9zjy1xgjjbabbi2hcrvsnfid6c78y2cb2703qjwr93xy54f1f";
        libraryHaskellDepends = [ base hsql old-time ];
        librarySystemDepends = [ unixODBC ];
-       description = "A Haskell Interface to ODBC.";
+       description = "A Haskell Interface to ODBC";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -133168,7 +135742,7 @@ self: {
        sha256 = "0yj0jalpapjvpxmc79yd6bn93ax13pp87dipbg2c9mxf3p38jc9z";
        libraryHaskellDepends = [ base hsql old-time ];
        librarySystemDepends = [ postgresql ];
-       description = "A Haskell Interface to PostgreSQL via the PQ library.";
+       description = "A Haskell Interface to PostgreSQL via the PQ library";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -133514,10 +136088,8 @@ self: {
      }:
      mkDerivation {
        pname = "hstatistics";
-       version = "0.3";
-       sha256 = "1v7f2844p6bjzcwc2pnjyb8zl42kw1x021gcn688dvdxs6cgdwvs";
-       revision = "1";
-       editedCabalFile = "0qcp1kgpwnqphqq1fd92lfp8d0vcf3l6ighsdiqin51qg499xz9w";
+       version = "0.3.1";
+       sha256 = "0pcx1s15ijdj5kxqbwcqf5qvpa8wxac9ph5013cmg1k1yflnqrzh";
        libraryHaskellDepends = [
          array base hmatrix hmatrix-gsl-stats random vector
        ];
@@ -134467,8 +137039,8 @@ self: {
        pname = "htoml-megaparsec";
        version = "2.1.0.3";
        sha256 = "1fpvfrib4igcmwhfms1spxr2b78srhrh4hrflrlgdgdn9x1m5w1x";
-       revision = "2";
-       editedCabalFile = "0vlyr965g1x5hk2mxlp8w4vv9ijq1gbm3i76slkl2aa38bf2i4ki";
+       revision = "3";
+       editedCabalFile = "074r8wr9xar40ybm6wqg2s0k32kiapbjm8k3djp4lz6gjxyw7nc8";
        libraryHaskellDepends = [
          base composition-prelude containers deepseq megaparsec mtl text
          time unordered-containers vector
@@ -134629,6 +137201,32 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "http-api-data_0_4_2" = callPackage
+    ({ mkDerivation, attoparsec, attoparsec-iso8601, base, base-compat
+     , bytestring, containers, cookie, hashable, hspec, hspec-discover
+     , http-types, HUnit, nats, QuickCheck, quickcheck-instances, tagged
+     , text, time-compat, transformers, unordered-containers, uuid-types
+     }:
+     mkDerivation {
+       pname = "http-api-data";
+       version = "0.4.2";
+       sha256 = "0xzfvxxh33ivlnrnzmm19cni3jgb5ph18n9hykkw3d6l3rhwzcnl";
+       libraryHaskellDepends = [
+         attoparsec attoparsec-iso8601 base base-compat bytestring
+         containers cookie hashable http-types tagged text time-compat
+         transformers unordered-containers uuid-types
+       ];
+       testHaskellDepends = [
+         base base-compat bytestring cookie hspec HUnit nats QuickCheck
+         quickcheck-instances text time-compat unordered-containers
+         uuid-types
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Converting to/from HTTP API data like URL pieces, headers and query parameters";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "http-attoparsec" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, http-types }:
      mkDerivation {
@@ -134669,7 +137267,7 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "http-client_0_7_0" = callPackage
+  "http-client_0_7_2_1" = callPackage
     ({ mkDerivation, array, async, base, blaze-builder, bytestring
      , case-insensitive, containers, cookie, deepseq, directory
      , exceptions, filepath, ghc-prim, hspec, http-types, memory
@@ -134678,8 +137276,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-client";
-       version = "0.7.0";
-       sha256 = "1lghzrq3ls8gg64vsz4pc9rppggp4n3s3zcalzz63yvqrjfb767i";
+       version = "0.7.2.1";
+       sha256 = "0b699f07yqa525xqqcs4cn32fryjc2212sv8v83yfqlqwdwzr7jg";
        libraryHaskellDepends = [
          array base blaze-builder bytestring case-insensitive containers
          cookie deepseq exceptions filepath ghc-prim http-types memory
@@ -134838,20 +137436,18 @@ self: {
 
   "http-client-restricted" = callPackage
     ({ mkDerivation, base, connection, data-default, http-client
-     , http-client-tls, network, utf8-string
+     , http-client-tls, network, network-bsd, utf8-string
      }:
      mkDerivation {
        pname = "http-client-restricted";
-       version = "0.0.2";
-       sha256 = "0i9x74r2lnwfbggd3dyccsivlrprglr3i21hc6a9vh868fbhmahn";
+       version = "0.0.3";
+       sha256 = "1xn84430haz2r9ikkxbi6awgpi0ybc7d7gp1plqhxq43ws626sam";
        libraryHaskellDepends = [
          base connection data-default http-client http-client-tls network
-         utf8-string
+         network-bsd utf8-string
        ];
        description = "restricting the servers that http-client will use";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "http-client-session" = callPackage
@@ -134922,8 +137518,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-common";
-       version = "0.8.2.0";
-       sha256 = "14s5a178sb2vm5k00rs21760mds5dz2gs10k9iyn22h01mxyf599";
+       version = "0.8.2.1";
+       sha256 = "1pzi1h9qb6mpzkmv1bfa54vfzrp5jcdlbwj1i7qiricrwhqxh3dk";
        libraryHaskellDepends = [
          base base64-bytestring blaze-builder bytestring case-insensitive
          directory mtl network text transformers unordered-containers
@@ -135054,6 +137650,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "http-date_0_0_9" = callPackage
+    ({ mkDerivation, array, attoparsec, base, bytestring, doctest
+     , hspec, old-locale, time
+     }:
+     mkDerivation {
+       pname = "http-date";
+       version = "0.0.9";
+       sha256 = "0dxrlwaqdimgxr8nziyzgqsrg44dl9gxa060cg0k7ndpnlpcbjwa";
+       libraryHaskellDepends = [ array attoparsec base bytestring time ];
+       testHaskellDepends = [
+         base bytestring doctest hspec old-locale time
+       ];
+       description = "HTTP Date parser/formatter";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "http-directory" = callPackage
     ({ mkDerivation, base, bytestring, hspec, html-conduit, http-client
      , http-client-tls, http-date, http-types, network-uri, text, time
@@ -135102,32 +137715,6 @@ self: {
      }:
      mkDerivation {
        pname = "http-download";
-       version = "0.1.0.1";
-       sha256 = "1f1haybqflprm3gwnxsyi6pyz7k4b5qyiq4wqq81wb7nsrr4h943";
-       libraryHaskellDepends = [
-         base base64-bytestring bytestring conduit conduit-extra cryptonite
-         cryptonite-conduit directory exceptions filepath http-client
-         http-conduit http-types memory path path-io retry rio
-         rio-prettyprint
-       ];
-       testHaskellDepends = [
-         base cryptonite hspec hspec-discover http-client path path-io retry
-         rio rio-prettyprint
-       ];
-       testToolDepends = [ hspec-discover ];
-       description = "Verified downloads with retries";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "http-download_0_2_0_0" = callPackage
-    ({ mkDerivation, base, base64-bytestring, bytestring, conduit
-     , conduit-extra, cryptonite, cryptonite-conduit, directory
-     , exceptions, filepath, hspec, hspec-discover, http-client
-     , http-conduit, http-types, memory, path, path-io, retry, rio
-     , rio-prettyprint
-     }:
-     mkDerivation {
-       pname = "http-download";
        version = "0.2.0.0";
        sha256 = "1wg5jck0h52dysdn0q5xs7gh8cjyq2qr9vaj7qa4fr3am1753n8v";
        libraryHaskellDepends = [
@@ -135143,7 +137730,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Verified downloads with retries";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "http-encodings" = callPackage
@@ -135291,6 +137877,31 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {};
 
+  "http-link-header_1_2_0" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, criterion, directory
+     , errors, hspec, hspec-attoparsec, http-api-data, network-uri
+     , QuickCheck, text, transformers
+     }:
+     mkDerivation {
+       pname = "http-link-header";
+       version = "1.2.0";
+       sha256 = "1y0vr8fi8pap7ixbafp2lxvdk9hh56h370jw7qd11gm2032nnvg9";
+       libraryHaskellDepends = [
+         attoparsec base bytestring errors http-api-data network-uri text
+       ];
+       testHaskellDepends = [
+         attoparsec base bytestring errors hspec hspec-attoparsec
+         http-api-data network-uri QuickCheck text
+       ];
+       benchmarkHaskellDepends = [
+         attoparsec base bytestring criterion directory errors http-api-data
+         network-uri text transformers
+       ];
+       description = "A parser and writer for the HTTP Link header per RFC 5988";
+       license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "http-listen" = callPackage
     ({ mkDerivation, base, bytestring, exceptions, HTTP, network
      , transformers
@@ -135476,6 +138087,21 @@ self: {
        broken = true;
      }) {};
 
+  "http-query" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, http-conduit, network-uri
+     , text
+     }:
+     mkDerivation {
+       pname = "http-query";
+       version = "0.1.0";
+       sha256 = "1j2ad7ym5mkpavlw1fp07n4qlggms04i93l5rv6vg07ljf4imjvs";
+       libraryHaskellDepends = [
+         aeson base bytestring http-conduit network-uri text
+       ];
+       description = "Simple http queries";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "http-querystring" = callPackage
     ({ mkDerivation, base, bytestring, containers, doctest, hspec
      , http-types, QuickCheck
@@ -135582,8 +138208,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-streams";
-       version = "0.8.7.1";
-       sha256 = "0kl668ggxz5wzvziagw9inmmwb0l5x2r00nf4p7wm0pnl8m19l2b";
+       version = "0.8.7.2";
+       sha256 = "1q0lp8hkzfc0srci9y794q5cqkih50r3iw2c32wbx8h502jcvv1q";
        libraryHaskellDepends = [
          aeson attoparsec base base64-bytestring blaze-builder bytestring
          case-insensitive directory HsOpenSSL http-common io-streams mtl
@@ -135680,8 +138306,8 @@ self: {
      }:
      mkDerivation {
        pname = "http2";
-       version = "2.0.4";
-       sha256 = "0rqfx6vvcrlic4sw5xlqzk3xvdsbw13d0ymppx8yjhkkzign6227";
+       version = "2.0.5";
+       sha256 = "1rg6dnkx2yxcdp87r1vdpyxacqv7jgxiq3bb1hjz45v5jk1xj676";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -135780,6 +138406,8 @@ self: {
        ];
        description = "Encoders based on `proto-lens` for gRPC over HTTP2";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "http2-grpc-proto3-wire" = callPackage
@@ -136217,8 +138845,8 @@ self: {
     ({ mkDerivation, base, dejafu, exceptions, HUnit }:
      mkDerivation {
        pname = "hunit-dejafu";
-       version = "2.0.0.3";
-       sha256 = "03kjpc26bpym06ccz0kvbid2n38xdq5j0nd1cywfjbii8zyjmgzg";
+       version = "2.0.0.4";
+       sha256 = "11d52blw31mcsg7c3w1f7khy3vk2p03h4c5z6ja6wb9k5bg4d004";
        libraryHaskellDepends = [ base dejafu exceptions HUnit ];
        description = "Deja Fu support for the HUnit test framework";
        license = stdenv.lib.licenses.mit;
@@ -136428,7 +139056,7 @@ self: {
        executableHaskellDepends = [
          array base bytestring containers kangaroo
        ];
-       description = "Extract function names from Windows DLLs.";
+       description = "Extract function names from Windows DLLs";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -136608,27 +139236,27 @@ self: {
      }:
      mkDerivation {
        pname = "hvega";
-       version = "0.5.0.0";
-       sha256 = "0h587i2wxwdmp24yxw7ggg1ak68mppbjwgjrdfhzzqlwdr69y9k0";
+       version = "0.9.1.0";
+       sha256 = "0gy7f6amg5mvr1lc7s98ld445h4s0j8xjilpdq6c6yy5kgd5hdyp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ aeson base text unordered-containers ];
        testHaskellDepends = [
          aeson aeson-pretty base bytestring containers filepath tasty
-         tasty-golden text
+         tasty-golden text unordered-containers
        ];
        description = "Create Vega-Lite visualizations (version 4) in Haskell";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "hvega_0_9_1_0" = callPackage
+  "hvega_0_10_0_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
      , filepath, tasty, tasty-golden, text, unordered-containers
      }:
      mkDerivation {
        pname = "hvega";
-       version = "0.9.1.0";
-       sha256 = "0gy7f6amg5mvr1lc7s98ld445h4s0j8xjilpdq6c6yy5kgd5hdyp";
+       version = "0.10.0.0";
+       sha256 = "0jp9sfmyvscxn415z3mv5i2kjrwwabwy4v4qc709qkrfgzd9mmwn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ aeson base text unordered-containers ];
@@ -136701,33 +139329,6 @@ self: {
      }) {};
 
   "hw-balancedparens" = callPackage
-    ({ mkDerivation, base, criterion, deepseq, doctest
-     , doctest-discover, hedgehog, hspec, hspec-discover, hw-bits
-     , hw-excess, hw-fingertree, hw-hspec-hedgehog, hw-prim
-     , hw-rankselect-base, transformers, vector
-     }:
-     mkDerivation {
-       pname = "hw-balancedparens";
-       version = "0.3.1.0";
-       sha256 = "1nr3p3qcd72i4av71vf9kxv483mdg13c10dnpynabxfh7vx49vc9";
-       libraryHaskellDepends = [
-         base deepseq hedgehog hspec hw-bits hw-excess hw-fingertree hw-prim
-         hw-rankselect-base vector
-       ];
-       testHaskellDepends = [
-         base doctest doctest-discover hedgehog hspec hw-bits
-         hw-hspec-hedgehog hw-prim hw-rankselect-base transformers vector
-       ];
-       testToolDepends = [ doctest-discover hspec-discover ];
-       benchmarkHaskellDepends = [
-         base criterion hedgehog hw-bits hw-prim vector
-       ];
-       doHaddock = false;
-       description = "Balanced parentheses";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "hw-balancedparens_0_4_1_0" = callPackage
     ({ mkDerivation, base, bytestring, criterion, deepseq, directory
      , doctest, doctest-discover, generic-lens, hedgehog, hspec
      , hspec-discover, hw-bits, hw-excess, hw-fingertree
@@ -136738,6 +139339,8 @@ self: {
        pname = "hw-balancedparens";
        version = "0.4.1.0";
        sha256 = "1ddxg00pwjvlrd4zdx9b9y7hm8rgxsxkvzzvwc34p2y75rivp21l";
+       revision = "1";
+       editedCabalFile = "0mc9lmjc3xrad4jlc9v66078362a791hnrrg9bclg1nq7jicfxgx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -136762,6 +139365,7 @@ self: {
        description = "Balanced parentheses";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hw-bits" = callPackage
@@ -136877,8 +139481,8 @@ self: {
        pname = "hw-dsv";
        version = "0.4.1.0";
        sha256 = "1wv0yg662c3bq4kpgfqfjks59v17i5h3v3mils1qpxn4c57jr3s8";
-       revision = "1";
-       editedCabalFile = "1xhdvqmqm44ky8mbwi64fj3bawqswf58ghlbj2bvk136yflvz2c7";
+       revision = "2";
+       editedCabalFile = "1l7aww6nci05ns7hnk46r20as3xy1j0s5fxsrb5w0x9y2kwvqj61";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -136918,8 +139522,8 @@ self: {
        pname = "hw-dump";
        version = "0.1.1.0";
        sha256 = "14ya18i3xvay5xn8j20b06msqyd49h34w526k1x1fxdp0i2l3rwr";
-       revision = "1";
-       editedCabalFile = "0v310296cxsv92k2rjrc9zrwh7yb7lkjwivndpbh5hv5p8ll0zm6";
+       revision = "2";
+       editedCabalFile = "0p6cbijds7vc8bx9rb8s8bwr9dp4qc91idmd64llgz06d9kmvkcs";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -136953,8 +139557,8 @@ self: {
        pname = "hw-eliasfano";
        version = "0.1.2.0";
        sha256 = "1wqpzznmz6bl88wzhrfcbgi49dw7w7i0p92hyc0m58nanqm1zgnj";
-       revision = "1";
-       editedCabalFile = "0qqshcj482x0yfmb76fj6ng57sf3i0r8daz93kzab8lscarh31j9";
+       revision = "2";
+       editedCabalFile = "0l7h7pr6gpq0xnp4w003q3dxw7pmv2d6kpx2iqfc3nzzpa562ivv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -136978,6 +139582,8 @@ self: {
        ];
        description = "Elias-Fano";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hw-excess" = callPackage
@@ -137104,6 +139710,8 @@ self: {
        pname = "hw-ip";
        version = "2.4.2.0";
        sha256 = "1bvh4fkg1ffr3y8wink62rgkynlcgjhmra7a4w01h1dmw1vb2vfx";
+       revision = "1";
+       editedCabalFile = "19jbgqsmc71apmr6z0n0a2hgfhv9r0bsqa2x55r8grpyr91blpmw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -137135,10 +139743,10 @@ self: {
      }:
      mkDerivation {
        pname = "hw-json";
-       version = "1.3.2.0";
-       sha256 = "00pdd813phgfi9g9xs6r7iw03iifwmlzfb0b424q1cq6d9z37v2f";
-       revision = "2";
-       editedCabalFile = "1lg2l399fnx7vg2bxf6chcwpl9q3pblzrmwzzijxczvyfrsy5m41";
+       version = "1.3.2.1";
+       sha256 = "11lf4nxnkk8l25a44g1pkr9j1w03l69gqjgli5yfj6k68lzml7bf";
+       revision = "1";
+       editedCabalFile = "0l42hlc0icik28isjihqsj4cxzgdj1vzyxwazlyyv4f52liyjk61";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -137154,15 +139762,17 @@ self: {
          optparse-applicative text unordered-containers vector
        ];
        testHaskellDepends = [
-         aeson attoparsec base bytestring doctest doctest-discover hedgehog
-         hspec hw-balancedparens hw-bits hw-hspec-hedgehog
-         hw-json-simple-cursor hw-json-standard-cursor hw-prim hw-rankselect
-         hw-rankselect-base scientific text transformers vector
+         aeson attoparsec base bytestring dlist doctest doctest-discover
+         hedgehog hspec hw-balancedparens hw-bits hw-hspec-hedgehog
+         hw-json-simple-cursor hw-json-standard-cursor hw-mquery hw-prim
+         hw-rankselect hw-rankselect-base scientific text transformers
+         vector
        ];
        testToolDepends = [ doctest-discover hspec-discover ];
        benchmarkHaskellDepends = [
          base bytestring criterion directory hw-json-standard-cursor mmap
        ];
+       doHaddock = false;
        description = "Memory efficient JSON parser";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -137208,6 +139818,8 @@ self: {
        pname = "hw-json-simd";
        version = "0.1.1.0";
        sha256 = "0bpfyx2bd7pcr8y8bfahcdm30bznqixfawraq3xzy476vy9ppa9n";
+       revision = "1";
+       editedCabalFile = "047s5clxvi3l9x80lnf7nrv7myxnvqmh8y7syb2ryv3m549lyv2q";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring hw-prim lens vector ];
@@ -137237,8 +139849,8 @@ self: {
        pname = "hw-json-simple-cursor";
        version = "0.1.1.0";
        sha256 = "1kwxnqsa2mkw5sa8rc9rixjm6f75lyjdaz7f67yyhwls5v4315bl";
-       revision = "2";
-       editedCabalFile = "144afi48rm613gcb8gccfyw5ybx9mzsfzsfq1nvsmlyijl8rgc1x";
+       revision = "3";
+       editedCabalFile = "0zmq1gb9znb84d9igppww6295glnhg5b6xlgadr435cddp5zmhpx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -137277,6 +139889,8 @@ self: {
        pname = "hw-json-standard-cursor";
        version = "0.2.3.1";
        sha256 = "1mpsspp6ba2zqv38a0rcv93mbwb1rb8snmxklf32g02djj8b4vir";
+       revision = "1";
+       editedCabalFile = "0gdvwhj2jmd8dm1yi3kzs0lyw5r4bk7c50s21z1600v36bmzpdm1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -137334,13 +139948,13 @@ self: {
 
   "hw-kafka-client" = callPackage
     ({ mkDerivation, base, bifunctors, bytestring, c2hs, containers
-     , either, hspec, hspec-discover, monad-loops, random, rdkafka, text
+     , either, hspec, hspec-discover, monad-loops, rdkafka, text
      , transformers, unix
      }:
      mkDerivation {
        pname = "hw-kafka-client";
-       version = "3.1.1";
-       sha256 = "109ld374fzrnin94s12ig5hhimjbnh643nbbgp7zdxjpr1qmjcz6";
+       version = "3.1.2";
+       sha256 = "1yqzh9cvs9yr88wa0r26izd35hg2vfzqvzxbx0l6c1apgc3m7hd6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -137349,8 +139963,7 @@ self: {
        librarySystemDepends = [ rdkafka ];
        libraryToolDepends = [ c2hs ];
        testHaskellDepends = [
-         base bifunctors bytestring containers either hspec monad-loops
-         random text transformers
+         base bifunctors bytestring containers either hspec monad-loops text
        ];
        testToolDepends = [ hspec-discover ];
        description = "Kafka bindings for Haskell";
@@ -137414,8 +140027,8 @@ self: {
        pname = "hw-packed-vector";
        version = "0.2.1.0";
        sha256 = "13hly2yzx6kx4j56iksgj4i3wmvg7rmxq57d0g87lmybzhha9q38";
-       revision = "1";
-       editedCabalFile = "070ac32s0azzhnqwrvhnfa18sxn60ayhmlikr6zk4vl1v03y0xbc";
+       revision = "2";
+       editedCabalFile = "0hlmi9w5z7j9ycqjf5avx3b09yglcbx8krypv274j2qrm5fzypr4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -137502,6 +140115,8 @@ self: {
        benchmarkHaskellDepends = [ base criterion vector ];
        description = "Primitive support for bit manipulation";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hw-rankselect" = callPackage
@@ -137516,8 +140131,8 @@ self: {
        pname = "hw-rankselect";
        version = "0.13.4.0";
        sha256 = "0chk3n4vb55px943w0l3q7pxhgbvqm64vn7lkhi7k0l2dpybycp7";
-       revision = "1";
-       editedCabalFile = "03p711rvs3qn9x5rfc90yxrbyp5fqsi9i2wbiwrs3vq6if66vc5z";
+       revision = "2";
+       editedCabalFile = "03lc8cgijr4ysz0i9c4pjhas4cd5ifxs400cr0nbasjvmz27hr3c";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -137541,6 +140156,8 @@ self: {
        doHaddock = false;
        description = "Rank-select";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hw-rankselect-base" = callPackage
@@ -137551,8 +140168,8 @@ self: {
      }:
      mkDerivation {
        pname = "hw-rankselect-base";
-       version = "0.3.4.0";
-       sha256 = "0rfk06fwmvpw2s7m397xm2s0831ad743325pv6yrd7019jcbiayl";
+       version = "0.3.4.1";
+       sha256 = "1s0lqwq0rjmjca6lshfnxqi0c7bzlyflhm45xw1xa9pvqci8439h";
        libraryHaskellDepends = [
          base bits-extra bitvec hw-bits hw-int hw-prim hw-string-parse
          vector
@@ -137659,6 +140276,8 @@ self: {
        ];
        description = "Succint datastructures";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hw-uri" = callPackage
@@ -137673,8 +140292,8 @@ self: {
        pname = "hw-uri";
        version = "0.2.1.0";
        sha256 = "1bwdzvms0n86k7gbkhk0jj3m1pcc9vbjk13kgpchqxpxm971srbs";
-       revision = "1";
-       editedCabalFile = "0bbsv8dj0z6wvgn0ldgvbrhji8mw5514pqwrp4ih8i2mjnfcdh2a";
+       revision = "2";
+       editedCabalFile = "0i6cw8m5g2hasif3q8gk7kpzavpmmk9fgr7vcqvym202ccbyj3dq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -137723,8 +140342,8 @@ self: {
        pname = "hw-xml";
        version = "0.5.1.0";
        sha256 = "0g81kknllbc6v5wx7kgzhh78409njfzr3h7lfdx7ip0nkhhnpmw4";
-       revision = "2";
-       editedCabalFile = "1zi0ma6fmzghlc65dxpznsyiyp4ij7cwz1yw35i0jjm314mhi4va";
+       revision = "3";
+       editedCabalFile = "0b1lkhc6qf5vqafn69bid01k1hi043k7yrpl7pbxfrn154w8afpm";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -137751,6 +140370,8 @@ self: {
        ];
        description = "XML parser based on succinct data structures";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "hwall-auth-iitk" = callPackage
@@ -138146,7 +140767,7 @@ self: {
          base containers directory filepath haskell98 HTTP HUnit hxt network
          parsec process
        ];
-       description = "A collection of tools for processing XML with Haskell (Filter variant).";
+       description = "A collection of tools for processing XML with Haskell (Filter variant)";
        license = "unknown";
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
@@ -138707,6 +141328,8 @@ self: {
        pname = "hyper";
        version = "0.1.0.3";
        sha256 = "0bc2mvxaggdyikdx51qc1li8idmnlw3ha2n3qli6jf1zz8mlqx0s";
+       revision = "1";
+       editedCabalFile = "1qfavgvdlmsip57grhxs0mawh82nxrq4m0mv9z3vam1b9j6nw2cc";
        libraryHaskellDepends = [ base blaze-html deepseq text ];
        description = "Display class for the HyperHaskell graphical Haskell interpreter";
        license = stdenv.lib.licenses.bsd3;
@@ -139020,8 +141643,8 @@ self: {
      }:
      mkDerivation {
        pname = "hzenity";
-       version = "0.3";
-       sha256 = "1kggc8xfdc5ychbciyzipyv6skfvyhrgjcb805vrpkz3l2b8h0g8";
+       version = "0.4";
+       sha256 = "1zyj7wnjcmv5pmgzn6cgly2zalys5i9waik17b4n46kk38f2pv1i";
        libraryHaskellDepends = [
          base containers data-default process process-extras text time
        ];
@@ -139303,6 +141926,17 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ rkrzr ];
      }) {};
 
+  "icfpc2020-galaxy" = callPackage
+    ({ mkDerivation, base, ghc-prim, transformers }:
+     mkDerivation {
+       pname = "icfpc2020-galaxy";
+       version = "0.2.0.0";
+       sha256 = "17m8vp3kikpscagb40972r9a8i6ng8wjc697zdslj5zl95rpyrvd";
+       libraryHaskellDepends = [ base ghc-prim transformers ];
+       description = "A strange message received at the Pegovka observatory";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "icon-fonts" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -139986,8 +142620,8 @@ self: {
      }:
      mkDerivation {
        pname = "ihaskell";
-       version = "0.10.1.1";
-       sha256 = "10rsdcc2l0gkhapvi5vzjc7m2bwv67k4iy3vjkx8i92jk6023y64";
+       version = "0.10.1.2";
+       sha256 = "1gs2j0qgxzf346nlnq0zx12yj528ykxia5r3rlldpf6f01zs89v8";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -140147,8 +142781,8 @@ self: {
     ({ mkDerivation, aeson, base, hvega, ihaskell, text }:
      mkDerivation {
        pname = "ihaskell-hvega";
-       version = "0.3.0.0";
-       sha256 = "1sa65ambh6494lhfgyawn883zfnlvqrd969xzx83w1dk904425gi";
+       version = "0.3.1.0";
+       sha256 = "1zfk58f10r8mkj9wwi4mgqm6hyf2x6zkrxm7rdi8yfvfya38m7fy";
        libraryHaskellDepends = [ aeson base hvega ihaskell text ];
        description = "IHaskell display instance for hvega types";
        license = stdenv.lib.licenses.bsd3;
@@ -140343,7 +142977,7 @@ self: {
        libraryToolDepends = [ alex ];
        executableHaskellDepends = [ array base containers html xhtml ];
        executableToolDepends = [ alex ];
-       description = "A fast syntax highlighting library built with alex.";
+       description = "A fast syntax highlighting library built with alex";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -140358,7 +142992,7 @@ self: {
        revision = "1";
        editedCabalFile = "1wl2sv2g7iwxldk582h1z6a2b3ks4wzk8rx8bflcxwlh6s4kq0s7";
        libraryHaskellDepends = [ base bytestring ];
-       description = "Determine the type of an image by reading the first bytes.";
+       description = "Determine the type of an image by reading the first bytes";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -140678,6 +143312,25 @@ self: {
        broken = true;
      }) {};
 
+  "immortal_0_2_2_1" = callPackage
+    ({ mkDerivation, base, lifted-base, monad-control, stm, tasty
+     , tasty-hunit, transformers, transformers-base
+     }:
+     mkDerivation {
+       pname = "immortal";
+       version = "0.2.2.1";
+       sha256 = "13lddk62byx8w41k80d24q31mmijacnqqz64zrrkls9si2ia2jpd";
+       libraryHaskellDepends = [
+         base lifted-base monad-control stm transformers-base
+       ];
+       testHaskellDepends = [
+         base lifted-base stm tasty tasty-hunit transformers
+       ];
+       description = "Spawn threads that never die (unless told to do so)";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "immortal" = callPackage
     ({ mkDerivation, base, stm, tasty, tasty-hunit, transformers
      , unliftio-core
@@ -140824,8 +143477,8 @@ self: {
      }:
      mkDerivation {
        pname = "implicit-hie";
-       version = "0.1.0.0";
-       sha256 = "1mdavvr4pmkq82yb5qnp77szjraa06ybw7v3fkys83b045plzdr6";
+       version = "0.1.1.0";
+       sha256 = "048y1wbwcp1vs4shgfzvcmbgg8fnm0pw2i7a8488b5kshfzf9syb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -140844,6 +143497,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "implicit-hie-cradle" = callPackage
+    ({ mkDerivation, base, base16-bytestring, bytestring, containers
+     , directory, extra, filepath, hie-bios, hslogger, implicit-hie
+     , process, temporary, text, time, transformers, unix-compat
+     , unordered-containers, vector, yaml
+     }:
+     mkDerivation {
+       pname = "implicit-hie-cradle";
+       version = "0.2.0.1";
+       sha256 = "1l2i05w547sdgh7dhvwvc8x6i100lb2l3zwr6bhjmapdj5sjnqd1";
+       libraryHaskellDepends = [
+         base base16-bytestring bytestring containers directory extra
+         filepath hie-bios hslogger implicit-hie process temporary text time
+         transformers unix-compat unordered-containers vector yaml
+       ];
+       testHaskellDepends = [ base ];
+       description = "Auto generate hie-bios cradles";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "implicit-logging" = callPackage
     ({ mkDerivation, base, mtl, time, transformers }:
      mkDerivation {
@@ -141099,8 +143772,8 @@ self: {
      }:
      mkDerivation {
        pname = "incremental";
-       version = "0.3";
-       sha256 = "0l433m75m89iyb8djfzk7nfysmy11p75a852ib48n4gzkgyvi3mh";
+       version = "0.3.1";
+       sha256 = "0s2hlhszk8aj5zbl64il5c9gccda64bfbgwfl5fvzsdr79qylv40";
        libraryHaskellDepends = [
          aeson base bytestring containers deepseq semigroups text
        ];
@@ -141178,6 +143851,30 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "incremental-parser_0_5" = callPackage
+    ({ mkDerivation, base, bytestring, checkers, criterion, deepseq
+     , input-parsers, monoid-subclasses, parsers, QuickCheck
+     , rank2classes, tasty, tasty-quickcheck, text, transformers
+     }:
+     mkDerivation {
+       pname = "incremental-parser";
+       version = "0.5";
+       sha256 = "1r3lmk8y0rg7fb7633ngp68izd2939yv2123vrcmwrvdha99w0g6";
+       libraryHaskellDepends = [
+         base input-parsers monoid-subclasses parsers rank2classes
+         transformers
+       ];
+       testHaskellDepends = [
+         base checkers monoid-subclasses QuickCheck tasty tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion deepseq monoid-subclasses text
+       ];
+       description = "Generic parser library capable of providing partial results from partial input";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "incremental-sat-solver" = callPackage
     ({ mkDerivation, base, containers, mtl }:
      mkDerivation {
@@ -141504,6 +144201,41 @@ self: {
        broken = true;
      }) {};
 
+  "indigo" = callPackage
+    ({ mkDerivation, base, cleveland, constraints, containers
+     , directory, fmt, hedgehog, hspec-expectations, HUnit, lorentz
+     , megaparsec, morley, morley-prelude, optparse-applicative, process
+     , reflection, shelly, singletons, string-interpolate, summoner
+     , tasty, tasty-discover, tasty-hedgehog, tasty-hunit-compat, text
+     , vinyl, with-utf8
+     }:
+     mkDerivation {
+       pname = "indigo";
+       version = "0.2.2";
+       sha256 = "1ggq5ryq90vmxd4ar93nsfzmmq7b1h3i4piv39220kkpgzz2x291";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base constraints containers lorentz morley morley-prelude
+         reflection singletons vinyl with-utf8
+       ];
+       executableHaskellDepends = [
+         base directory megaparsec morley morley-prelude
+         optparse-applicative process shelly string-interpolate summoner
+         text with-utf8
+       ];
+       testHaskellDepends = [
+         base cleveland containers fmt hedgehog hspec-expectations HUnit
+         lorentz morley morley-prelude singletons tasty tasty-hedgehog
+         tasty-hunit-compat with-utf8
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Convenient imperative eDSL over Lorentz";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {cleveland = null;};
+
   "inf-interval" = callPackage
     ({ mkDerivation, array, base, deepseq, QuickCheck, text, vector }:
      mkDerivation {
@@ -141512,7 +144244,7 @@ self: {
        sha256 = "08fjmza05wlj11mvdjwfcp3fn6k5zi1hsld84805clipd55sbp0r";
        libraryHaskellDepends = [ array base deepseq vector ];
        testHaskellDepends = [ array base deepseq QuickCheck text vector ];
-       description = "Non-contiguous interval data types with potentially infinite ranges.";
+       description = "Non-contiguous interval data types with potentially infinite ranges";
        license = stdenv.lib.licenses.gpl3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -141647,8 +144379,8 @@ self: {
      }:
      mkDerivation {
        pname = "inflections";
-       version = "0.4.0.5";
-       sha256 = "0fdq3iwa2vgb5k19ck6jxzh7f1xsf1kpwx4p3agpdpsrylrcanvb";
+       version = "0.4.0.6";
+       sha256 = "1054v250p86gb1kvbrp60fzwds8v8nsqap1970j7hgk5hjwq1xj1";
        libraryHaskellDepends = [
          base exceptions megaparsec text unordered-containers
        ];
@@ -141682,8 +144414,8 @@ self: {
      }:
      mkDerivation {
        pname = "influxdb";
-       version = "1.7.1.5";
-       sha256 = "1i3qwh8l938f453nf7mbhlhg6xyaxsh8vys13zlz7p26q7knf65g";
+       version = "1.7.1.6";
+       sha256 = "1psx9v95fhlapizhh7jdz4cvynwv9jiqn09z0843lhc74jqf65in";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -141700,7 +144432,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "influxdb_1_7_1_6" = callPackage
+  "influxdb_1_9_0" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, Cabal
      , cabal-doctest, clock, containers, doctest, foldl, http-client
      , http-types, lens, network, optional-args, raw-strings-qq
@@ -141709,8 +144441,8 @@ self: {
      }:
      mkDerivation {
        pname = "influxdb";
-       version = "1.7.1.6";
-       sha256 = "1psx9v95fhlapizhh7jdz4cvynwv9jiqn09z0843lhc74jqf65in";
+       version = "1.9.0";
+       sha256 = "1d580f2j71x0iww0q2mg47jbhjsd83yarrnnmcp9f2bx7cix174v";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -141720,8 +144452,8 @@ self: {
          unordered-containers vector
        ];
        testHaskellDepends = [
-         base containers doctest raw-strings-qq tasty tasty-hunit
-         template-haskell time
+         base containers doctest lens raw-strings-qq tasty tasty-hunit
+         template-haskell time vector
        ];
        description = "Haskell client library for InfluxDB";
        license = stdenv.lib.licenses.bsd3;
@@ -141903,6 +144635,8 @@ self: {
        ];
        description = "Inline some Assembly in ur Haskell!";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "inline-c_0_5_6_1" = callPackage
@@ -141959,6 +144693,32 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "inline-c_0_9_1_2" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, base, bytestring, containers
+     , hashable, hspec, mtl, parsec, parsers, QuickCheck, raw-strings-qq
+     , regex-posix, split, template-haskell, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "inline-c";
+       version = "0.9.1.2";
+       sha256 = "1lvsjjxnjwfnqlq4i5mz2xizpx052nq25wjgm47302akpjzpym6n";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-wl-pprint base bytestring containers hashable mtl parsec
+         parsers template-haskell transformers unordered-containers vector
+       ];
+       testHaskellDepends = [
+         ansi-wl-pprint base containers hashable hspec parsers QuickCheck
+         raw-strings-qq regex-posix split template-haskell transformers
+         unordered-containers vector
+       ];
+       description = "Write Haskell source files including C code inline. No FFI required.";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "inline-c-cpp_0_1_0_0" = callPackage
     ({ mkDerivation, base, inline-c, template-haskell }:
      mkDerivation {
@@ -142006,19 +144766,22 @@ self: {
      }) {};
 
   "inline-java" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, directory, filepath, ghc
-     , hspec, jni, jvm, language-java, mtl, process, template-haskell
-     , temporary, text
+    ({ mkDerivation, base, bytestring, Cabal, criterion, deepseq
+     , directory, filepath, ghc, hspec, jni, jvm, language-java, mtl
+     , process, singletons, template-haskell, temporary, text
      }:
      mkDerivation {
        pname = "inline-java";
-       version = "0.8.4";
-       sha256 = "1ddgwhk40g23lc71f8wbbfck9pqymil0syi14wsawc25sx6zb52v";
+       version = "0.9.1";
+       sha256 = "12p59gf4dk4q00zpjwp0bzgljfa0nhr32x5schg0hj9bgsj6c6pk";
        libraryHaskellDepends = [
          base bytestring Cabal directory filepath ghc jni jvm language-java
          mtl process template-haskell temporary text
        ];
        testHaskellDepends = [ base hspec jni jvm text ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq jni jvm singletons
+       ];
        description = "Java interop via inline Java code in Haskell modules";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -142057,8 +144820,6 @@ self: {
        ];
        description = "Seamlessly call R from Haskell and vice versa. No FFI required.";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) R;};
 
   "inliterate" = callPackage
@@ -142081,6 +144842,22 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "input-parsers" = callPackage
+    ({ mkDerivation, attoparsec, base, binary, bytestring
+     , monoid-subclasses, parsec, parsers, text, transformers
+     }:
+     mkDerivation {
+       pname = "input-parsers";
+       version = "0.1.0.1";
+       sha256 = "0wqp98ly2f9vnqd97q9jphmxqr284aal40dlrgi4hwy216p67vzz";
+       libraryHaskellDepends = [
+         attoparsec base binary bytestring monoid-subclasses parsec parsers
+         text transformers
+       ];
+       description = "Extension of the parsers library with more capability and efficiency";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "inquire" = callPackage
     ({ mkDerivation, aether, base, text }:
      mkDerivation {
@@ -142400,8 +145177,8 @@ self: {
        pname = "int-cast";
        version = "0.2.0.0";
        sha256 = "0s8rqm5d9f4y2sskajsw8ff7q8xp52vwqa18m6bajldp11m9a1p0";
-       revision = "2";
-       editedCabalFile = "1fhc91170q9q9k628wc3dqzdvxfjs97jzg5x7g0ndaqnh60l8cy5";
+       revision = "3";
+       editedCabalFile = "1b99lqxwbhg96iykfr2l7qd388cbx9sf8bln728505qgj6kgsvj7";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [
          base QuickCheck test-framework test-framework-quickcheck2
@@ -142439,8 +145216,8 @@ self: {
        pname = "intcode";
        version = "0.3.0.0";
        sha256 = "0qcws15hn03wnsv1rg93sw9zhwsyvwpiafrmwnyv9v990qap1x8y";
-       revision = "1";
-       editedCabalFile = "1ad9fm65l8rnkm7236ak7v9j7hvj1jswwdcaw0xcsn9znn4xawl0";
+       revision = "2";
+       editedCabalFile = "1yd0i90i910ysc7xflpdnkp4bgp1k6cdcl8p3qwqi07vlngkscxw";
        libraryHaskellDepends = [ base containers primitive ];
        testHaskellDepends = [ base containers doctest primitive ];
        description = "Advent of Code 2019 intcode interpreter";
@@ -142577,6 +145354,44 @@ self: {
        broken = true;
      }) {intel_aes = null;};
 
+  "intensional-datatys" = callPackage
+    ({ mkDerivation, aeson, base, containers, directory, extra
+     , filepath, ghc, hashable, haskeline, mtl, unordered-containers
+     }:
+     mkDerivation {
+       pname = "intensional-datatys";
+       version = "0.2.0.0";
+       sha256 = "194f5z6h1pl5jh26zl1rw3d16q60m04a3wdy16vfvwaj2w1bkgz2";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base containers directory extra filepath ghc hashable
+         haskeline mtl unordered-containers
+       ];
+       testHaskellDepends = [ base ];
+       doHaddock = false;
+       description = "A GHC Core plugin for intensional datatype refinement checking";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "interact" = callPackage
+    ({ mkDerivation, base, bytestring, hspec, main-tester, mtl
+     , silently
+     }:
+     mkDerivation {
+       pname = "interact";
+       version = "0.2.0.0";
+       sha256 = "0fnzhcdyd95z5jll88y8zi9dgr2z55w0ddiv4kfyjxy6jampdypj";
+       libraryHaskellDepends = [ base mtl ];
+       testHaskellDepends = [
+         base bytestring hspec main-tester mtl silently
+       ];
+       description = "instantly create REPL from any function";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "interactive-plot" = callPackage
     ({ mkDerivation, base, containers, data-default-class, microlens
      , microlens-th, MonadRandom, mtl, transformers, vty
@@ -142769,6 +145584,8 @@ self: {
        ];
        description = "Tracery-like randomized text interpolation";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "interpol" = callPackage
@@ -142802,23 +145619,6 @@ self: {
      }:
      mkDerivation {
        pname = "interpolate";
-       version = "0.2.0";
-       sha256 = "1gkaj98yz363v38fv78sqby236mp8yqwqcilx7kr2b9z0w3204bf";
-       libraryHaskellDepends = [ base haskell-src-meta template-haskell ];
-       testHaskellDepends = [
-         base base-compat bytestring haskell-src-meta hspec QuickCheck
-         quickcheck-instances template-haskell text
-       ];
-       description = "String interpolation done right";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "interpolate_0_2_1" = callPackage
-    ({ mkDerivation, base, base-compat, bytestring, haskell-src-meta
-     , hspec, QuickCheck, quickcheck-instances, template-haskell, text
-     }:
-     mkDerivation {
-       pname = "interpolate";
        version = "0.2.1";
        sha256 = "03jrkj9c62w0c2awym8mhpsgpd0jffl50cqwfrm7bbdfhd8dsxi7";
        libraryHaskellDepends = [ base haskell-src-meta template-haskell ];
@@ -142828,7 +145628,6 @@ self: {
        ];
        description = "String interpolation done right";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "interpolatedstring-perl6" = callPackage
@@ -142939,6 +145738,28 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "interpolator_1_1_0_2" = callPackage
+    ({ mkDerivation, aeson, base, containers, either, hspec
+     , mono-traversable, mtl, product-profunctors, profunctors
+     , QuickCheck, template-haskell, text
+     }:
+     mkDerivation {
+       pname = "interpolator";
+       version = "1.1.0.2";
+       sha256 = "1lrng3y109brnm6jlqnbhrdi38qgwlb0lymxjdv2yv71x7rwdgvf";
+       libraryHaskellDepends = [
+         aeson base containers either mono-traversable mtl
+         product-profunctors profunctors QuickCheck template-haskell text
+       ];
+       testHaskellDepends = [
+         aeson base containers either hspec mono-traversable mtl
+         product-profunctors profunctors QuickCheck template-haskell text
+       ];
+       description = "Runtime interpolation of environment variables in records using profunctors";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "interprocess" = callPackage
     ({ mkDerivation, base, typed-process }:
      mkDerivation {
@@ -143000,6 +145821,30 @@ self: {
        broken = true;
      }) {};
 
+  "interval-algebra" = callPackage
+    ({ mkDerivation, base, hspec, QuickCheck, time }:
+     mkDerivation {
+       pname = "interval-algebra";
+       version = "0.1.2";
+       sha256 = "1nhpcrp7r6ba9mqwrfkx0zk7awdw24kh75ggq1wcif6mpir2khkx";
+       libraryHaskellDepends = [ base time ];
+       testHaskellDepends = [ base hspec QuickCheck time ];
+       description = "An implementation of Allen's interval algebra for temporal logic";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "interval-functor" = callPackage
+    ({ mkDerivation, base, hedgehog, transformers }:
+     mkDerivation {
+       pname = "interval-functor";
+       version = "0.0.0.0";
+       sha256 = "0fkpqav61s47mjvfkhbg2hrx6p78v3jrs6vjj75aixccfg4k8n43";
+       libraryHaskellDepends = [ base transformers ];
+       testHaskellDepends = [ base hedgehog ];
+       description = "Intervals of functors";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "intervals" = callPackage
     ({ mkDerivation, array, base, Cabal, cabal-doctest, directory
      , distributive, doctest, filepath, ghc-prim, QuickCheck
@@ -143024,8 +145869,8 @@ self: {
     ({ mkDerivation, base, containers, text, vector, word8 }:
      mkDerivation {
        pname = "intmap-graph";
-       version = "1.1.0.0";
-       sha256 = "0yg88vvq53kbzw2r8i1w1g4am4bkp8qzgy9qsc7wknb3zwlzs89w";
+       version = "1.3.0.0";
+       sha256 = "0g4kf7d4yh29jlb5a2f8awjbmaan2f7m1ybkcihayp83lvjld4v0";
        libraryHaskellDepends = [ base containers text vector word8 ];
        description = "A graph library that allows to explore edges after their type";
        license = stdenv.lib.licenses.bsd3;
@@ -143071,44 +145916,42 @@ self: {
 
   "intro" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, dlist
-     , extra, hashable, lens, mtl, QuickCheck, safe, text, transformers
-     , unordered-containers, writer-cps-mtl
+     , extra, hashable, lens, mtl, optics, QuickCheck, safe, text
+     , transformers, unordered-containers, writer-cps-mtl
      }:
      mkDerivation {
        pname = "intro";
-       version = "0.6.0.1";
-       sha256 = "1kka6dnlyqppjx9ykk3zixfyslr8cf4ja6sa2hgq6h69mmsicp67";
-       revision = "2";
-       editedCabalFile = "12jmy4lp9yrix6hm6cx3kmgprpmlwdyxqckyx53h01iygfpbx3w5";
+       version = "0.7.0.0";
+       sha256 = "18ddkcm77jxqpqjaaqs1qmzvn8zgincrybb3d4zcsggrp6llghc3";
        libraryHaskellDepends = [
          base bytestring containers deepseq dlist extra hashable mtl safe
          text transformers unordered-containers writer-cps-mtl
        ];
        testHaskellDepends = [
          base bytestring containers deepseq dlist extra hashable lens mtl
-         QuickCheck safe text transformers unordered-containers
+         optics QuickCheck safe text transformers unordered-containers
          writer-cps-mtl
        ];
        description = "Safe and minimal prelude";
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "intro_0_7_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, dlist
-     , extra, hashable, lens, mtl, optics, QuickCheck, safe, text
-     , transformers, unordered-containers, writer-cps-mtl
+  "intro_0_9_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, extra, hashable
+     , lens, mtl, optics, QuickCheck, safe, text, transformers
+     , unordered-containers, writer-cps-mtl
      }:
      mkDerivation {
        pname = "intro";
-       version = "0.7.0.0";
-       sha256 = "18ddkcm77jxqpqjaaqs1qmzvn8zgincrybb3d4zcsggrp6llghc3";
+       version = "0.9.0.0";
+       sha256 = "0x48bj9nri2zhsjpwx08nvjmpsjq6zd61npa02zsf357wylxir0x";
        libraryHaskellDepends = [
-         base bytestring containers deepseq dlist extra hashable mtl safe
-         text transformers unordered-containers writer-cps-mtl
+         base bytestring containers extra hashable mtl safe text
+         transformers unordered-containers writer-cps-mtl
        ];
        testHaskellDepends = [
-         base bytestring containers deepseq dlist extra hashable lens mtl
-         optics QuickCheck safe text transformers unordered-containers
+         base bytestring containers extra hashable lens mtl optics
+         QuickCheck safe text transformers unordered-containers
          writer-cps-mtl
        ];
        description = "Safe and minimal prelude";
@@ -143239,8 +146082,8 @@ self: {
      }:
      mkDerivation {
        pname = "invertible";
-       version = "0.2.0.5";
-       sha256 = "1fwdbg0pimi9hfyp20fsvyxpicjd7jxg4vsh5kykkxviyfhxl2ha";
+       version = "0.2.0.7";
+       sha256 = "1ngcmy59cyrg5idcn8a4gxg6ipq88rhhwhdb09gra8jcraq9n7ii";
        libraryHaskellDepends = [
          base haskell-src-meta invariant lens partial-isomorphisms
          semigroupoids template-haskell transformers
@@ -143257,18 +146100,14 @@ self: {
      }:
      mkDerivation {
        pname = "invertible-grammar";
-       version = "0.1.2";
-       sha256 = "1nf7dchcxs8wwd2hgfpf04qd63ws22pafjwb5911lq7da8k1y57j";
-       revision = "4";
-       editedCabalFile = "1574py7cbgig031kh2v52m0w2af0sr0lyaj20makwrm9g8g6k9k8";
+       version = "0.1.3";
+       sha256 = "160hw7p5mpajwmv8fps2gicqj3x3yr9w239pfnv9i5gsf4irnn9n";
        libraryHaskellDepends = [
          base bifunctors containers mtl prettyprinter profunctors semigroups
          tagged template-haskell text transformers
        ];
        description = "Invertible parsing combinators framework";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "invertible-hlist" = callPackage
@@ -143310,6 +146149,17 @@ self: {
        broken = true;
      }) {};
 
+  "involutive-semigroups" = callPackage
+    ({ mkDerivation, base, bytestring, containers, text, vector }:
+     mkDerivation {
+       pname = "involutive-semigroups";
+       version = "0.1.0.0";
+       sha256 = "1nms6w5b8apdz9xlwdqyj9n4m0b192simxg9zl7pv8zkyklyb3aw";
+       libraryHaskellDepends = [ base bytestring containers text vector ];
+       description = "Semigroups with involution";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "io-capture" = callPackage
     ({ mkDerivation, base, bytestring, hspec, hspec-core
      , streaming-bytestring, unix
@@ -143367,8 +146217,8 @@ self: {
     ({ mkDerivation, base, containers }:
      mkDerivation {
        pname = "io-manager";
-       version = "0.1.0.2";
-       sha256 = "0f21h36z2ls0d6g31pcf4kcyfninaxws8w159zy33bwa19saf2mz";
+       version = "0.1.0.3";
+       sha256 = "04584flxw3qwzdnas8nbxp6riw6jfvhgy0kkkzjkxg53y1d8ri3s";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers ];
@@ -143436,10 +146286,8 @@ self: {
      }:
      mkDerivation {
        pname = "io-streams";
-       version = "1.5.1.0";
-       sha256 = "1c7byr943x41nxpc3bnz152fvfbmakafq2958wyf9qiyp2pz18la";
-       revision = "1";
-       editedCabalFile = "0n0qs5lgryh3zxy73j3qbpnxand43yd2bj6pclvyii8apqqp901a";
+       version = "1.5.2.0";
+       sha256 = "1hbabrk5145d77qi23688piaf1wc93n8vaj846n0s3zk953z1lk3";
        configureFlags = [ "-fnointeractivetests" ];
        libraryHaskellDepends = [
          attoparsec base bytestring bytestring-builder network primitive
@@ -143634,8 +146482,6 @@ self: {
        ];
        description = "Library for IP and MAC addresses";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "ip-quoter" = callPackage
@@ -143669,8 +146515,8 @@ self: {
     ({ mkDerivation, base, binary, bytestring, iproute }:
      mkDerivation {
        pname = "ip2proxy";
-       version = "2.2.1";
-       sha256 = "08ywvg39n59i8p66fpapcpj722lkam7pyd38525p3w4z735d8842";
+       version = "3.0.0";
+       sha256 = "1hi1q0kiqqp96w29y9699s66rmyr7k0fp6s7z86ll9n3bmf0a4g4";
        libraryHaskellDepends = [ base binary bytestring iproute ];
        description = "IP2Proxy Haskell package for proxy detection";
        license = stdenv.lib.licenses.mit;
@@ -143746,22 +146592,24 @@ self: {
 
   "ipfs" = callPackage
     ({ mkDerivation, aeson, base, bytestring, directory, directory-tree
-     , doctest, envy, flow, Glob, ip, lens, lens-aeson, monad-logger
-     , QuickCheck, regex-compat, rio, servant-client, servant-server
-     , swagger2, text, vector, yaml
+     , doctest, envy, flow, Glob, http-media, ip, lens, lens-aeson
+     , monad-logger, QuickCheck, regex-compat, rio, servant
+     , servant-client, servant-server, swagger2, text, vector, yaml
      }:
      mkDerivation {
        pname = "ipfs";
-       version = "1.0.2";
-       sha256 = "0mrr67bz283qqz0d70j9gz191l4pi554j3hmcf7pscg87b84rdv5";
+       version = "1.1.5.0";
+       sha256 = "050zj21m4pg8jnpd594p2wc5m3nn4j6cmmv0069mi7kg473dqz2m";
        libraryHaskellDepends = [
-         aeson base bytestring envy flow Glob ip lens monad-logger
-         regex-compat rio servant-client servant-server swagger2 text vector
+         aeson base bytestring envy flow Glob http-media ip lens
+         monad-logger regex-compat rio servant servant-client servant-server
+         swagger2 text vector
        ];
        testHaskellDepends = [
          aeson base bytestring directory directory-tree doctest envy flow
-         Glob ip lens lens-aeson monad-logger QuickCheck regex-compat rio
-         servant-client servant-server swagger2 text vector yaml
+         Glob http-media ip lens lens-aeson monad-logger QuickCheck
+         regex-compat rio servant servant-client servant-server swagger2
+         text vector yaml
        ];
        description = "Access IPFS locally and remotely";
        license = stdenv.lib.licenses.agpl3Plus;
@@ -143941,8 +146789,8 @@ self: {
      }:
      mkDerivation {
        pname = "ipython-kernel";
-       version = "0.10.2.0";
-       sha256 = "0ylqbcs7xdhkm0if18f1cmz4144gx0p4r9wgggbzphfx8v8lhz9a";
+       version = "0.10.2.1";
+       sha256 = "016w7bmji3k1cnnl3vq35zq6fnqdvc2x762zfzv4ync2jz63rq38";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -144038,10 +146886,8 @@ self: {
      }:
      mkDerivation {
        pname = "irc-core";
-       version = "2.7.2";
-       sha256 = "1gpd28lxhqj2xj75nyyififn9434imvm0vqvx7zdw44fvg75lqyq";
-       revision = "1";
-       editedCabalFile = "1xkvy5igrx4ri8gmmwzxs2mq7ih57gps8a592ya6bv1crrm45cy2";
+       version = "2.8";
+       sha256 = "1msn18qxvwywwkqz2mv6d5awk29w3f3jqjdjw7dwvk5k25llmc3l";
        libraryHaskellDepends = [
          attoparsec base base64-bytestring bytestring hashable primitive
          text time vector
@@ -144353,6 +147199,19 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "isbn_1_1_0_1" = callPackage
+    ({ mkDerivation, base, hspec, text }:
+     mkDerivation {
+       pname = "isbn";
+       version = "1.1.0.1";
+       sha256 = "0s7b06a0d37bhb38k2my6g6brn6bywxr59kw2c103dp4y4kzrcpn";
+       libraryHaskellDepends = [ base text ];
+       testHaskellDepends = [ base hspec text ];
+       description = "ISBN Validation and Manipulation";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "isdicom" = callPackage
     ({ mkDerivation, base, directory, doctest, filepath, QuickCheck
      , template-haskell
@@ -145291,6 +148150,44 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "ixset-typed-binary-instance" = callPackage
+    ({ mkDerivation, base, binary, ixset-typed }:
+     mkDerivation {
+       pname = "ixset-typed-binary-instance";
+       version = "0.1.0.2";
+       sha256 = "1jgqc1ys5pvfkha8pyddz5f01qsmv9a83xw0q75njk8zhqajlyvx";
+       libraryHaskellDepends = [ base binary ixset-typed ];
+       description = "Binary instance for ixset-typed";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "ixset-typed-conversions" = callPackage
+    ({ mkDerivation, base, exceptions, free, hashable, ixset-typed
+     , unordered-containers, zipper-extra
+     }:
+     mkDerivation {
+       pname = "ixset-typed-conversions";
+       version = "0.1.2.0";
+       sha256 = "15hxis8m60kfxi65k4sq2wica65whh8l1axw8jkx37yh1fys520x";
+       libraryHaskellDepends = [
+         base exceptions free hashable ixset-typed unordered-containers
+         zipper-extra
+       ];
+       description = "Conversions from ixset-typed to other containers";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "ixset-typed-hashable-instance" = callPackage
+    ({ mkDerivation, base, hashable, ixset-typed }:
+     mkDerivation {
+       pname = "ixset-typed-hashable-instance";
+       version = "0.1.0.2";
+       sha256 = "0bwajqlj1kpis2616lrmcymmag66fkmdrsrj0r3kf8j6090zxmyv";
+       libraryHaskellDepends = [ base hashable ixset-typed ];
+       description = "Hashable instance for ixset-typed";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "ixshader" = callPackage
     ({ mkDerivation, base, ghc-prim, indexed, language-glsl, parsec
      , prettyclass, singletons, template-haskell, text
@@ -145998,8 +148895,8 @@ self: {
     ({ mkDerivation, base, mtl, parsec, tasty, tasty-hunit, text }:
      mkDerivation {
        pname = "jira-wiki-markup";
-       version = "1.0.0";
-       sha256 = "1sl2jjcsqg61si33mxjwpf8zdn56kbbgcwqqqzbgifx2qbv4wmf8";
+       version = "1.1.4";
+       sha256 = "0riwi6i0vvmfffprzd4gklxjivjv1x7cmb2vx43x6n8yfrd75yzv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base mtl parsec text ];
@@ -146009,12 +148906,12 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "jira-wiki-markup_1_3_0" = callPackage
+  "jira-wiki-markup_1_3_2" = callPackage
     ({ mkDerivation, base, mtl, parsec, tasty, tasty-hunit, text }:
      mkDerivation {
        pname = "jira-wiki-markup";
-       version = "1.3.0";
-       sha256 = "01jv2xrp0xkx00fdxglik85mnbnkhgxfyya6kvkm4fgifj111h4s";
+       version = "1.3.2";
+       sha256 = "16vcy9gn6qrzvr99l26az4yi2dy9xngcb1wmj86yl7bmk1hcq3wc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base mtl parsec text ];
@@ -146146,18 +149043,19 @@ self: {
 
   "jni" = callPackage
     ({ mkDerivation, base, bytestring, choice, constraints, containers
-     , cpphs, deepseq, inline-c, jdk, singletons
+     , cpphs, deepseq, hspec, inline-c, jdk, singletons
      }:
      mkDerivation {
        pname = "jni";
-       version = "0.6.1";
-       sha256 = "1z71vp8qskymgd4bjv8wxxjn34n49m28vnph0p0wbxgpz2wpn4hz";
+       version = "0.7.0";
+       sha256 = "0dznaw0aqkmmymabws4dg7d71acgj72gfn5r587bi5gq0x86sgr3";
        libraryHaskellDepends = [
          base bytestring choice constraints containers deepseq inline-c
          singletons
        ];
        librarySystemDepends = [ jdk ];
        libraryToolDepends = [ cpphs ];
+       testHaskellDepends = [ base hspec singletons ];
        description = "Complete JNI raw bindings";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -146256,12 +149154,12 @@ self: {
      }) {};
 
   "joint" = callPackage
-    ({ mkDerivation, base }:
+    ({ mkDerivation, base, transformers }:
      mkDerivation {
        pname = "joint";
-       version = "0.1.6";
-       sha256 = "17vqr8r338ikvqsvrqqs7k93z54g60ibg9x4by34aqjahh5l5gby";
-       libraryHaskellDepends = [ base ];
+       version = "0.1.7";
+       sha256 = "193ygi06hfn1smdhh7fz74lz2gffcvg66cxp6qlvi7m3rbhm1f1l";
+       libraryHaskellDepends = [ base transformers ];
        description = "Trying to compose non-composable";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -146284,16 +149182,19 @@ self: {
      }) {};
 
   "jord" = callPackage
-    ({ mkDerivation, base, criterion, hspec, HUnit }:
+    ({ mkDerivation, base, criterion, hspec, hspec-discover, HUnit
+     , markdown-unlit
+     }:
      mkDerivation {
        pname = "jord";
-       version = "1.0.0.0";
-       sha256 = "0fqc74l2n6z79rdg22svk94k5a2yw8r8djdbd94afjqpyq05dbcq";
+       version = "2.0.0.0";
+       sha256 = "0f4x7di0qjngglyjqgfczvlji5hmk7wr16laxdjr2cyp81aa3vgj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base ];
        executableHaskellDepends = [ base criterion ];
-       testHaskellDepends = [ base hspec HUnit ];
+       testHaskellDepends = [ base hspec HUnit markdown-unlit ];
+       testToolDepends = [ hspec-discover markdown-unlit ];
        description = "Geographical Position Calculations";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -146316,28 +149217,27 @@ self: {
     ({ mkDerivation, aeson, attoparsec, base, base64-bytestring
      , bytestring, concise, containers, cryptonite, hspec, lens, memory
      , monad-time, mtl, network-uri, pem, QuickCheck
-     , quickcheck-instances, safe, semigroups, tasty, tasty-hspec
-     , tasty-quickcheck, template-haskell, text, time
-     , unordered-containers, vector, x509
+     , quickcheck-instances, safe, tasty, tasty-hspec, tasty-quickcheck
+     , template-haskell, text, time, unordered-containers, vector, x509
      }:
      mkDerivation {
        pname = "jose";
-       version = "0.8.3";
-       sha256 = "0izrbjcmsiv67d2vmiqgmnzn27pvs0kvka3rw5x33fwjgq0b3jyv";
+       version = "0.8.3.1";
+       sha256 = "14cbdah9khw8z876c1fn26asp1xa3azn7hh7a04chznmqagnmbmj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson attoparsec base base64-bytestring bytestring concise
          containers cryptonite lens memory monad-time mtl network-uri
-         QuickCheck quickcheck-instances safe semigroups template-haskell
-         text time unordered-containers vector x509
+         QuickCheck quickcheck-instances safe template-haskell text time
+         unordered-containers vector x509
        ];
        testHaskellDepends = [
          aeson attoparsec base base64-bytestring bytestring concise
          containers cryptonite hspec lens memory monad-time mtl network-uri
-         pem QuickCheck quickcheck-instances safe semigroups tasty
-         tasty-hspec tasty-quickcheck template-haskell text time
-         unordered-containers vector x509
+         pem QuickCheck quickcheck-instances safe tasty tasty-hspec
+         tasty-quickcheck template-haskell text time unordered-containers
+         vector x509
        ];
        description = "Javascript Object Signing and Encryption and JSON Web Token library";
        license = stdenv.lib.licenses.asl20;
@@ -146473,8 +149373,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle";
-       version = "0.9.7.0";
-       sha256 = "1hd1ybacng2qydf23dn4qggls2mmz21aay7q947ifdaxg83mv6aq";
+       version = "0.9.7.1";
+       sha256 = "1igkv5lvlbq0xl2dp6d8fp4ybwnwmgrc3r4sfjsric0bj8sq2k86";
        libraryHaskellDepends = [
          aeson attoparsec base base-compat base64-bytestring bytestring
          containers deepseq exceptions filepath ghc-prim http-types lens
@@ -146491,8 +149391,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-clib";
-       version = "0.9.7.0";
-       sha256 = "1n1mafr6gnfzmndjs4w7g813dx2khaq4knkhcaqbr2lsbr5yrmg1";
+       version = "0.9.7.1";
+       sha256 = "07s2iy136dm526mr7q43mxqq9qndg8jbi9kz1652qgl0ivn8lapc";
        libraryHaskellDepends = [
          aeson base base-compat bytestring data-default jsaddle text
        ];
@@ -146506,8 +149406,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-dom";
-       version = "0.9.4.0";
-       sha256 = "0k70x8dv67v585qm9ycb1m32cc47zvr2ka8nbqxazyw09i498h22";
+       version = "0.9.4.1";
+       sha256 = "190r17hfwkkwycj9ikdfvhvfpga30k5rnspib9hi8dygwxgifc6j";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
          base base-compat exceptions jsaddle lens text transformers
@@ -146540,8 +149440,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-warp";
-       version = "0.9.7.0";
-       sha256 = "09pqcnyy2pj48xm8qzs1jyav8a4si0bfw43w0qql74ak137ll60c";
+       version = "0.9.7.1";
+       sha256 = "1piyxxmik1bwdzkz46vgdhdp0gw4p01fww591zqbxzjk6rmrpby0";
        libraryHaskellDepends = [
          aeson base bytestring containers foreign-store http-types jsaddle
          stm text time transformers wai wai-websockets warp websockets
@@ -146555,8 +149455,6 @@ self: {
        ];
        description = "Interface for JavaScript that works with GHCJS and GHC";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "jsaddle-webkit2gtk" = callPackage
@@ -146567,8 +149465,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-webkit2gtk";
-       version = "0.9.7.0";
-       sha256 = "1q4sz2s95pknsr6r8cdqrlmw0b64q4nzllrlhb80knpfxamzyjzp";
+       version = "0.9.7.1";
+       sha256 = "0f2siaid0b03zrjzpb3lr9k9w5np2vml6apd961zd97dghvvhiix";
        libraryHaskellDepends = [
          aeson base bytestring directory gi-gio gi-glib gi-gtk
          gi-javascriptcore gi-webkit2 haskell-gi-base haskell-gi-overloading
@@ -146604,8 +149502,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsaddle-wkwebview";
-       version = "0.9.7.0";
-       sha256 = "04ni6q8x9c5zqmdm1kfp3yygcflpdf5hx4r568fm5b6rjxi3zhf6";
+       version = "0.9.7.1";
+       sha256 = "0dfaysw7fzmv2b62wi5id45f4i0x2vbjp9irbdkmv1h2z3ydwy20";
        libraryHaskellDepends = [
          aeson base bytestring containers data-default directory jsaddle
          text
@@ -146704,6 +149602,8 @@ self: {
        pname = "json-api-lib";
        version = "0.3.0.0";
        sha256 = "14lycfqjp3v6lnr4vqagps80dpvy8z6gs6sqq3qz184xyw4m2ini";
+       revision = "1";
+       editedCabalFile = "16k87v87lq2xf3rbig4229a2gc3p6s9a771g48a95xc0rk4k4hkk";
        libraryHaskellDepends = [
          aeson base containers data-default deepseq lens lens-aeson text
          unordered-containers uri-encode
@@ -146864,15 +149764,13 @@ self: {
 
   "json-bytes-builder" = callPackage
     ({ mkDerivation, aeson, base, base-prelude, bytestring, criterion
-     , rebase, scientific, semigroups, text
+     , rebase, scientific, text
      }:
      mkDerivation {
        pname = "json-bytes-builder";
-       version = "0.5.2";
-       sha256 = "1a7bak30av58739wsxqv8p11nb3ljpj3xfd43yc563z5s3qnchqk";
-       libraryHaskellDepends = [
-         base base-prelude bytestring scientific semigroups text
-       ];
+       version = "0.5.2.1";
+       sha256 = "1h4wnjs1rjl1aq0ldsxmdcxvxgn2c3815640d5dn6ibf2fwlrd3f";
+       libraryHaskellDepends = [ base bytestring scientific text ];
        testHaskellDepends = [ base-prelude bytestring text ];
        benchmarkHaskellDepends = [ aeson criterion rebase ];
        description = "Direct-to-bytes JSON Builder";
@@ -146965,22 +149863,6 @@ self: {
      }:
      mkDerivation {
        pname = "json-feed";
-       version = "1.0.10";
-       sha256 = "09hgpy0xc431ifs59y91glwf9c57yjc8jwwin94w4z3xk8v2qg2v";
-       libraryHaskellDepends = [
-         aeson base bytestring mime-types network-uri tagsoup text time
-       ];
-       testHaskellDepends = [ base bytestring filepath hspec ];
-       description = "JSON Feed";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "json-feed_1_0_11" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, filepath, hspec
-     , mime-types, network-uri, tagsoup, text, time
-     }:
-     mkDerivation {
-       pname = "json-feed";
        version = "1.0.11";
        sha256 = "1h9v71pvzi761ml0dpkmhd7w2l36s1v3rsq9zbshw87762710fy1";
        libraryHaskellDepends = [
@@ -146989,7 +149871,6 @@ self: {
        testHaskellDepends = [ base bytestring filepath hspec ];
        description = "JSON Feed";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "json-fu" = callPackage
@@ -147168,8 +150049,8 @@ self: {
      }:
      mkDerivation {
        pname = "json-rpc";
-       version = "1.0.1";
-       sha256 = "1gghpzaz2p1ib5jgkr0hn0fpzdkkzx9ywc65q3np9n6x6zb2878h";
+       version = "1.0.3";
+       sha256 = "0168hk5sqrxily51m0vlwvarmz59h79520y1ivbf6g38hxm8m60g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -147188,7 +150069,7 @@ self: {
          vector
        ];
        description = "Fully-featured JSON-RPC 2.0 library";
-       license = stdenv.lib.licenses.publicDomain;
+       license = stdenv.lib.licenses.mit;
      }) {};
 
   "json-rpc-client" = callPackage
@@ -147489,7 +150370,7 @@ self: {
          base blaze-builder bytestring containers json2-types mtl old-locale
          parsec pretty time utf8-string
        ];
-       description = "Library provides support for JSON.";
+       description = "Library provides support for JSON";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -147542,8 +150423,8 @@ self: {
      }:
      mkDerivation {
        pname = "json5hs";
-       version = "0.1.2.2";
-       sha256 = "19r1ripvalrhvlqdk0pvm18b4a8sibdwlc60i2yj7da10rdx5cv1";
+       version = "0.1.3.1";
+       sha256 = "18i01c0045c26s80g69wdgyk9aa3pj092z0s6hmq9z5xddid2s8h";
        libraryHaskellDepends = [
          array base bytestring containers mtl pretty syb text
        ];
@@ -147755,6 +150636,32 @@ self: {
        broken = true;
      }) {};
 
+  "jsop" = callPackage
+    ({ mkDerivation, aeson, base, containers, generics-sop, lens
+     , lens-aeson, monoidal-containers, protolude, string-interpolate
+     , tasty, tasty-discover, tasty-hspec, text, unordered-containers
+     }:
+     mkDerivation {
+       pname = "jsop";
+       version = "0.2.0.1";
+       sha256 = "05qacp69pk4fm1b1mrk2ax8f8mbfzsb71bkj2qraa116xym61j38";
+       libraryHaskellDepends = [
+         aeson base containers generics-sop lens lens-aeson
+         monoidal-containers protolude string-interpolate tasty
+         tasty-discover tasty-hspec text unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base containers generics-sop lens lens-aeson
+         monoidal-containers protolude string-interpolate tasty
+         tasty-discover tasty-hspec text unordered-containers
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Cherry picking in JSON objects";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "jspath" = callPackage
     ({ mkDerivation, base, bytestring, bytestring-trie, JSONb
      , utf8-string
@@ -147860,18 +150767,18 @@ self: {
      }) {};
 
   "juicy-gcode" = callPackage
-    ({ mkDerivation, base, configurator, lens, linear, matrix
+    ({ mkDerivation, base, configurator, gitrev, lens, linear, matrix
      , optparse-applicative, svg-tree, text
      }:
      mkDerivation {
        pname = "juicy-gcode";
-       version = "0.1.0.9";
-       sha256 = "02i1d3jfisxiyq63z9z7jlyscywbskmsxkx2xxv7v742xi4w5wrb";
+       version = "0.2.0.1";
+       sha256 = "1jpdxxfg3wdj9kz41a1pklyshrxxakf2bahcc7y1l7p7jklb3lbi";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         base configurator lens linear matrix optparse-applicative svg-tree
-         text
+         base configurator gitrev lens linear matrix optparse-applicative
+         svg-tree text
        ];
        description = "SVG to G-Code converter";
        license = stdenv.lib.licenses.bsd3;
@@ -147882,17 +150789,17 @@ self: {
   "jukebox" = callPackage
     ({ mkDerivation, alex, array, base, containers, directory, dlist
      , filepath, minisat, pretty, process, symbol, transformers
-     , uglymemo
+     , uglymemo, utf8-string
      }:
      mkDerivation {
        pname = "jukebox";
-       version = "0.4.4";
-       sha256 = "0xjyyklwyzblgyakziwyh4420q1fcbqsss35dpxm592wd74wk0mw";
+       version = "0.5.2";
+       sha256 = "1nhz7rf8sczrhph0h9hia1vqxig1bcpc8v6zvxgrywmacl1mnky6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          array base containers directory dlist filepath minisat pretty
-         process symbol transformers uglymemo
+         process symbol transformers uglymemo utf8-string
        ];
        libraryToolDepends = [ alex ];
        executableHaskellDepends = [ base ];
@@ -147987,19 +150894,19 @@ self: {
   "jvm" = callPackage
     ({ mkDerivation, base, bytestring, choice, constraints, criterion
      , deepseq, distributed-closure, exceptions, hspec, jni, singletons
-     , text, vector
+     , template-haskell, text, vector
      }:
      mkDerivation {
        pname = "jvm";
-       version = "0.4.2";
-       sha256 = "1z3lk2f7bmhi8bj4v32fymjr2bf9czjd73qm6gk33z4mxknddwbh";
+       version = "0.5.0";
+       sha256 = "18n0b5bvy5hhq5x4ynbxa3zbqbh4z5isvzgg9h6hgs7366jyrqhf";
        libraryHaskellDepends = [
          base bytestring choice constraints distributed-closure exceptions
-         jni singletons text vector
+         jni singletons template-haskell text vector
        ];
        testHaskellDepends = [ base bytestring hspec jni text ];
        benchmarkHaskellDepends = [
-         base criterion deepseq jni singletons
+         base criterion deepseq jni singletons text
        ];
        description = "Call JVM methods from Haskell";
        license = stdenv.lib.licenses.bsd3;
@@ -148014,8 +150921,8 @@ self: {
      }:
      mkDerivation {
        pname = "jvm-batching";
-       version = "0.1.1";
-       sha256 = "06vxhlpvb8ilj0xm5k7chzpsn0f7m48l7728g2m7likh55rs2dxq";
+       version = "0.1.2";
+       sha256 = "1if6yklllgja48bhaqggvmhsx5klbscx2clq37am7vapic5gydai";
        setupHaskellDepends = [ base Cabal inline-java ];
        libraryHaskellDepends = [
          base bytestring distributed-closure inline-java jni jvm singletons
@@ -148092,8 +150999,8 @@ self: {
      }:
      mkDerivation {
        pname = "jvm-streaming";
-       version = "0.3.1";
-       sha256 = "0kgr2l1gcxy2z30xr89fx1f51h5yycphhh3mpf00wahlkdz7q6wd";
+       version = "0.3.2";
+       sha256 = "16qr1wb8ria2n26irpirfvgr43ibhjfypxbyvzc0vwi941m7np4m";
        setupHaskellDepends = [ base Cabal inline-java jvm-batching ];
        libraryHaskellDepends = [
          base distributed-closure inline-java jni jvm jvm-batching
@@ -148606,8 +151513,8 @@ self: {
      }:
      mkDerivation {
        pname = "katip";
-       version = "0.8.4.0";
-       sha256 = "0hkhvkdyk4m5pdr0yj1lbdwqvrfr7sq49jw683mk0lxjlyc39xm6";
+       version = "0.8.5.0";
+       sha256 = "1kjzsx4fqbknnv158ypg5jhmw7ww1rk1mf99g3dci09xg97wmgjk";
        libraryHaskellDepends = [
          aeson async auto-update base bytestring containers either hostname
          microlens microlens-th monad-control mtl old-locale resourcet
@@ -148933,6 +151840,8 @@ self: {
        ];
        description = "Fast concurrent queues much inspired by unagi-chan";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "kbq-gu" = callPackage
@@ -149112,8 +152021,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-i18n";
-       version = "0.6.0";
-       sha256 = "0xal6xq60yljn53qrxcgsm4jc630za8jfcqxxvlrr9g53kganmpc";
+       version = "0.7.0";
+       sha256 = "0k5cvnkc5r99r4361hn5jrmslvb21y3k2pj0dryiwbs21jwyv213";
        libraryHaskellDepends = [
          base directory filepath glib hgettext MissingK setlocale
          utf8-string
@@ -149128,8 +152037,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "keera-hails-mvc-controller";
-       version = "0.6.0";
-       sha256 = "0k1i443mmw2lrpsrh8dzfzcydfzs305b4np45bfc0hlb6czkc4p6";
+       version = "0.7.0";
+       sha256 = "1j7vhkghdh4hrap7g2xshpd2fw3acgwvi68f2c01mqmfi5dl4z2n";
        libraryHaskellDepends = [ base ];
        description = "Haskell on Gtk rails - Gtk-based controller for MVC applications";
        license = stdenv.lib.licenses.bsd3;
@@ -149141,8 +152050,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-mvc-environment-gtk";
-       version = "0.6.0";
-       sha256 = "0acrafqcjq01qbd68c8ch510ggz3x581jrfx411xh8y0ngk3ydjv";
+       version = "0.7.0";
+       sha256 = "0px1f9jpdgkd253bhgalxk5rxx971s0s2a845h81x6hy9wi7n6mf";
        libraryHaskellDepends = [
          base keera-hails-mvc-model-protectedmodel keera-hails-mvc-view
          keera-hails-mvc-view-gtk
@@ -149159,8 +152068,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-mvc-model-lightmodel";
-       version = "0.6.0";
-       sha256 = "0m2v5dsvjrx42m5psb2yw9jgwzn14yw4l3yswpm469wfdyli88n4";
+       version = "0.7.0";
+       sha256 = "0nklcgsadm2h62jwp8i419dwrsfs885cmglr5n39b7r1zy7dsa0f";
        libraryHaskellDepends = [
          base containers keera-hails-reactivevalues MissingK stm
          template-haskell
@@ -149177,8 +152086,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-mvc-model-protectedmodel";
-       version = "0.6.0";
-       sha256 = "19lb7yxfgrv074z0qcdqa7fdpjx1mgl1djcl6vaz8ydf69qqdyfn";
+       version = "0.7.0";
+       sha256 = "0vz4bcnm2p03c3x6qspii9kylcv4d0qlmzawm6x1f148srrwidi7";
        libraryHaskellDepends = [
          base containers keera-hails-reactivevalues MissingK stm
          template-haskell
@@ -149253,8 +152162,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-cbmvar";
-       version = "0.6.0";
-       sha256 = "0g9fb8h1japh0hp6bn02lcsm5cls1lk4hhyk7rbxfkrfiln1khqi";
+       version = "0.7.0";
+       sha256 = "085zli0s7p8f2ib2882q4qpqlh6czw62626fnrjiks4sff3f31c7";
        libraryHaskellDepends = [
          base keera-callbacks keera-hails-reactivevalues lens
        ];
@@ -149290,8 +152199,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-gtk";
-       version = "0.6.0";
-       sha256 = "1vr0dy8a44fdh4ilwgzm8g5vjdcq9ll145v47ghpn7z7dhlmbgki";
+       version = "0.7.0";
+       sha256 = "1xn5ar20x8kpiv1z6i5gcvm09xjgrdppjyxd2si8nyv7gw173scr";
        libraryHaskellDepends = [
          base bytestring cairo glib gtk gtk-helpers
          keera-hails-reactivevalues mtl transformers
@@ -149309,8 +152218,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-htmldom";
-       version = "0.6.0";
-       sha256 = "1hpkmxdhvvwjly860n4kk4ghw47a0yc92dn1ajkz0fc849zp2mpa";
+       version = "0.7.0";
+       sha256 = "05lz38pffm6k3kbw3g6gkslixq4nc764n1i4dxz9p6zwj27f6svc";
        libraryHaskellDepends = [
          base ghcjs-dom keera-callbacks keera-hails-reactive-cbmvar
          keera-hails-reactivevalues mtl transformers
@@ -149327,8 +152236,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-network";
-       version = "0.6.0";
-       sha256 = "0k0qfh10wv4rabvi2zgwsv97mz7nbvg3rvxfddh6i2hsa48cjvcf";
+       version = "0.7.0";
+       sha256 = "0qn1vz55fpvrx4l3lak0lkx0ggli8smf3r4za3zypgfv3a1q3rxm";
        libraryHaskellDepends = [
          base bytestring keera-hails-reactivevalues network network-bsd
        ];
@@ -149358,8 +152267,8 @@ self: {
     ({ mkDerivation, base, keera-hails-reactivevalues, wx, wxcore }:
      mkDerivation {
        pname = "keera-hails-reactive-wx";
-       version = "0.6.0";
-       sha256 = "1yspys7vqg3xm86j4k0wcih5f9iqi0n7f6vnc83gjl84c8w8zac1";
+       version = "0.7.0";
+       sha256 = "1cpwyqqcdnxc30qmny0rq0ww51vv8g241jwjis1sbs47hvwgvi27";
        libraryHaskellDepends = [
          base keera-hails-reactivevalues wx wxcore
        ];
@@ -149375,8 +152284,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactive-yampa";
-       version = "0.6.0";
-       sha256 = "19zxpl9wypy31nwn2ghjcbkvn5xwqfpp9rprkx5ilax3rjagcqcc";
+       version = "0.7.0";
+       sha256 = "178r5igwnvkbpz1hypiy4l61s3amr4j8bk1yvqc7jvs40cldiw1x";
        libraryHaskellDepends = [
          base keera-callbacks keera-hails-reactivevalues time Yampa
        ];
@@ -149406,8 +152315,8 @@ self: {
      }:
      mkDerivation {
        pname = "keera-hails-reactivevalues";
-       version = "0.6.0";
-       sha256 = "1fji0axzj0558dczvzgkwpxnkszfdk3zgky933pdkpcq1cnjz0d3";
+       version = "0.7.0";
+       sha256 = "1dmsjyvrzh8rdp9kcc8ysar0zw9gaxqh231xaqy17ndfhlmp2nzq";
        libraryHaskellDepends = [ base contravariant ];
        testHaskellDepends = [
          base directory filepath hlint HUnit mtl process QuickCheck
@@ -150057,6 +152966,25 @@ self: {
        broken = true;
      }) {};
 
+  "kmonad" = callPackage
+    ({ mkDerivation, base, cereal, lens, megaparsec, mtl
+     , optparse-applicative, resourcet, rio, time, unix, unliftio
+     }:
+     mkDerivation {
+       pname = "kmonad";
+       version = "0.4.1";
+       sha256 = "1l9980q74q98x9z8xj37bsnc6ywv362cap27n2nwjyc8wsihhc8c";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base cereal lens megaparsec mtl optparse-applicative resourcet rio
+         time unix unliftio
+       ];
+       executableHaskellDepends = [ base ];
+       description = "Advanced keyboard remapping utility";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "kmp-dfa" = callPackage
     ({ mkDerivation, array, base, QuickCheck }:
      mkDerivation {
@@ -150115,8 +153043,8 @@ self: {
      }:
      mkDerivation {
        pname = "knit";
-       version = "0.1.0.0";
-       sha256 = "0ypa7bj89zbkgyryms6nzwhqpp15hs52ynjvisdsng1xpgmf65dy";
+       version = "0.2.0.0";
+       sha256 = "0a1swv5w9fxissxqr2x61qijqyhdxs71fv21fjz4r0kcqywnvy6x";
        libraryHaskellDepends = [
          base bytestring containers deepseq hashtables vector
        ];
@@ -150128,30 +153056,33 @@ self: {
 
   "knit-haskell" = callPackage
     ({ mkDerivation, aeson-pretty, base, base64-bytestring
-     , blaze-colonnade, blaze-html, bytestring, case-insensitive
+     , blaze-colonnade, blaze-html, bytestring, case-insensitive, cereal
      , colonnade, constraints, containers, diagrams-lib, diagrams-svg
-     , directory, Glob, here, http-client, http-client-tls, http-types
-     , hvega, logging-effect, lucid, mtl, network, network-uri, pandoc
-     , plots, polysemy, polysemy-plugin, polysemy-RandomFu, polysemy-zoo
-     , prettyprinter, random, random-fu, random-source, svg-builder
-     , text, time
+     , directory, doctemplates, exceptions, Glob, here, http-client
+     , http-client-tls, http-types, hvega, lucid, monad-control, mtl
+     , network, network-uri, pandoc, plots, polysemy, polysemy-plugin
+     , polysemy-RandomFu, polysemy-zoo, prettyprinter, random, random-fu
+     , random-source, say, stm, store, streamly, streamly-bytestring
+     , svg-builder, text, time, transformers-base
      }:
      mkDerivation {
        pname = "knit-haskell";
-       version = "0.7.0.0";
-       sha256 = "06p802fx328hkl3d9rnbdvlmhh9fyx2l293hg65z5ad96c9xzwas";
+       version = "0.8.0.0";
+       sha256 = "1maq5s4f05fpd98nw2gljqcwgdr62hy5lpcblvybcyp2xqh8fc9i";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson-pretty base base64-bytestring blaze-colonnade blaze-html
-         bytestring case-insensitive colonnade constraints containers
-         diagrams-lib diagrams-svg directory Glob http-client
-         http-client-tls http-types hvega logging-effect lucid mtl network
-         network-uri pandoc polysemy polysemy-plugin polysemy-zoo
-         prettyprinter random random-fu random-source svg-builder text time
+         bytestring case-insensitive cereal colonnade constraints containers
+         diagrams-lib diagrams-svg directory doctemplates exceptions Glob
+         http-client http-client-tls http-types hvega lucid monad-control
+         mtl network network-uri pandoc polysemy polysemy-plugin
+         polysemy-zoo prettyprinter random say stm streamly
+         streamly-bytestring svg-builder text time transformers-base
        ];
        testHaskellDepends = [
-         base blaze-html colonnade containers here hvega mtl plots polysemy
-         polysemy-plugin polysemy-RandomFu random-fu random-source text
+         base blaze-html bytestring colonnade containers here hvega mtl
+         plots polysemy polysemy-plugin polysemy-RandomFu random-fu
+         random-source store streamly text
        ];
        description = "a minimal Rmarkdown sort-of-thing for haskell, by way of Pandoc";
        license = stdenv.lib.licenses.bsd3;
@@ -150230,8 +153161,8 @@ self: {
      }:
      mkDerivation {
        pname = "kontrakcja-templates";
-       version = "0.11";
-       sha256 = "09fivafr368kfj5pp0g9r13jvrihhcwhx9ay2f45qilcpv4qbb1r";
+       version = "0.12";
+       sha256 = "1asmsk3d4wqmiqsxnhaknmnrplrwq6cx6p7n7859rl6x7ac0fjg0";
        libraryHaskellDepends = [
          base containers directory exceptions HStringTemplate html json
          monad-control mtl time transformers transformers-base
@@ -150338,8 +153269,8 @@ self: {
      }:
      mkDerivation {
        pname = "krank";
-       version = "0.2.1";
-       sha256 = "0lg7g5zzjpzjvdzd7ps3dygiqp33891dph35jrf704hkf3ksmqs2";
+       version = "0.2.2";
+       sha256 = "10w6vbpcn9n07s99w02izg7nfizpbq5m5mg6zv46f1llm35jpv6w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -150452,28 +153383,59 @@ self: {
        broken = true;
      }) {egl = null; inherit (pkgs) glew;};
 
+  "ktx-codec" = callPackage
+    ({ mkDerivation, base, binary, bytestring, containers, directory
+     , filepath, shower, text, vector
+     }:
+     mkDerivation {
+       pname = "ktx-codec";
+       version = "0.0.1.1";
+       sha256 = "1qvkcmxilvlwsbp5pidkh3njwsj6k19ybz8jw5mcm90zdhx3gya0";
+       libraryHaskellDepends = [
+         base binary bytestring containers text vector
+       ];
+       testHaskellDepends = [
+         base binary bytestring containers directory filepath shower text
+         vector
+       ];
+       description = "Khronos texture format";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "kubernetes-client" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, connection, containers
-     , data-default-class, hspec, http-client, http-client-tls
-     , kubernetes-client-core, microlens, mtl, pem, safe-exceptions
-     , streaming-bytestring, text, tls, x509, x509-store, x509-system
+    ({ mkDerivation, aeson, attoparsec, base, base64-bytestring
+     , bytestring, connection, containers, data-default-class, either
+     , file-embed, filepath, hoauth2, hspec, hspec-attoparsec
+     , http-client, http-client-tls, jose-jwt, jsonpath
+     , kubernetes-client-core, microlens, mtl, oidc-client, pem
+     , safe-exceptions, stm, streaming-bytestring, text, time, timerep
+     , tls, typed-process, uri-bytestring, x509, x509-store, x509-system
      , x509-validation, yaml
      }:
      mkDerivation {
        pname = "kubernetes-client";
-       version = "0.1.0.1";
-       sha256 = "0fzilm4k7cq3k6vlx01c5gzg4lnrgpfdldbiml4rbiv42f13pr7j";
+       version = "0.2.0.0";
+       sha256 = "07vvp8yb7jx5cgn3siykkh7jdkkcxapclyp09q4n975fzd01waww";
+       revision = "1";
+       editedCabalFile = "18gp9q7myy4yvqv5p1ra12d5g69qrc0r0i8ifzwavj4vc92bhmdc";
        libraryHaskellDepends = [
-         aeson base bytestring connection containers data-default-class
-         http-client http-client-tls kubernetes-client-core microlens mtl
-         pem safe-exceptions streaming-bytestring text tls x509 x509-store
-         x509-system x509-validation
+         aeson attoparsec base base64-bytestring bytestring connection
+         containers data-default-class either filepath hoauth2 http-client
+         http-client-tls jose-jwt jsonpath kubernetes-client-core microlens
+         mtl oidc-client pem safe-exceptions stm streaming-bytestring text
+         time timerep tls typed-process uri-bytestring x509 x509-store
+         x509-system x509-validation yaml
        ];
        testHaskellDepends = [
-         aeson base bytestring connection containers data-default-class
-         hspec http-client http-client-tls kubernetes-client-core microlens
-         mtl pem safe-exceptions streaming-bytestring text tls x509
-         x509-store x509-system x509-validation yaml
+         aeson attoparsec base base64-bytestring bytestring connection
+         containers data-default-class either file-embed filepath hoauth2
+         hspec hspec-attoparsec http-client http-client-tls jose-jwt
+         jsonpath kubernetes-client-core microlens mtl oidc-client pem
+         safe-exceptions stm streaming-bytestring text time timerep tls
+         typed-process uri-bytestring x509 x509-store x509-system
+         x509-validation yaml
        ];
        description = "Client library for Kubernetes";
        license = stdenv.lib.licenses.asl20;
@@ -150491,10 +153453,8 @@ self: {
      }:
      mkDerivation {
        pname = "kubernetes-client-core";
-       version = "0.1.0.1";
-       sha256 = "08sxsc9a9vdsqp71zxnc309cng75k3c57mcmmryhpwwyscvgfnsk";
-       revision = "1";
-       editedCabalFile = "0qzh7zq36q57yfccna1izi1gz9fpki9ngnl8dgf3m6halrxwqlc7";
+       version = "0.2.0.0";
+       sha256 = "03f9h4cb02nj2g49grp3i22djc6zh2bqxl7yxkx1yf70fnqv2zcq";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring case-insensitive containers
          deepseq exceptions http-api-data http-client http-client-tls
@@ -150518,8 +153478,8 @@ self: {
      }:
      mkDerivation {
        pname = "kubernetes-webhook-haskell";
-       version = "0.2.0.2";
-       sha256 = "1zhknc4bpdm3xcynn1jm7yii615sj7xcq3mv31xlx4kc4bh566al";
+       version = "0.2.0.3";
+       sha256 = "1xvc35jibs2nizzp6xgdzzyx6fhgzgqb55a48vl1djbi84s8b4q1";
        libraryHaskellDepends = [
          aeson base base64-bytestring binary bytestring text
          unordered-containers
@@ -150787,25 +153747,12 @@ self: {
     ({ mkDerivation, base, hspec, servant, servant-foreign, text }:
      mkDerivation {
        pname = "lackey";
-       version = "1.0.12";
-       sha256 = "0fc6g9bydh27yv4j45f7g49rq5gdxb1x175q5w9yni5xam5z7hl2";
-       libraryHaskellDepends = [ base servant servant-foreign text ];
-       testHaskellDepends = [ base hspec servant servant-foreign text ];
-       description = "Generate Ruby clients from Servant APIs";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "lackey_1_0_13" = callPackage
-    ({ mkDerivation, base, hspec, servant, servant-foreign, text }:
-     mkDerivation {
-       pname = "lackey";
        version = "1.0.13";
        sha256 = "1a3gpr0gf1dhvy6lcqbgkf0iznjg62yav2xfnzps48wba5585dj0";
        libraryHaskellDepends = [ base servant servant-foreign text ];
        testHaskellDepends = [ base hspec servant servant-foreign text ];
        description = "Generate Ruby clients from Servant APIs";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "lacroix" = callPackage
@@ -150971,8 +153918,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambda-options";
-       version = "1.1.0.0";
-       sha256 = "0ihbwml2l4jyd3h2kj5qz7fxzzkq47xk4fkybhp1rnfzxjlqfib3";
+       version = "1.1.0.1";
+       sha256 = "1lffzazcv3r14fsymkng6l10g65z1brsg8ghz4w4jplilp2i8ly2";
        libraryHaskellDepends = [
          base containers funspection mtl read-bounded
        ];
@@ -151094,8 +154041,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot";
-       version = "5.3";
-       sha256 = "0sw1ghxrgs0zr71icalcs2w03km5bgsrhcwckyil77sjgy0sqx5w";
+       version = "5.3.0.1";
+       sha256 = "0jkp4qr2d37pd0nr074fzrvjn95jg7x7zjwnddsqw5m4m2l1iqsr";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -151113,23 +154060,23 @@ self: {
   "lambdabot-core" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers
      , dependent-map, dependent-sum, dependent-sum-template, directory
-     , edit-distance, filepath, haskeline, hslogger, HTTP, lifted-base
-     , monad-control, mtl, network, network-bsd, parsec, prim-uniq
-     , random, random-fu, random-source, regex-tdfa, SafeSemaphore
-     , split, syb, template-haskell, time, transformers
+     , edit-distance, exceptions, filepath, haskeline, hslogger, HTTP
+     , lifted-base, monad-control, mtl, network, network-bsd, parsec
+     , prim-uniq, random, random-fu, random-source, regex-tdfa
+     , SafeSemaphore, split, syb, template-haskell, time, transformers
      , transformers-base, unix, utf8-string, zlib
      }:
      mkDerivation {
        pname = "lambdabot-core";
-       version = "5.3";
-       sha256 = "1rbqqrpf6pdvn9mwwh6j0mn6p9w4lf54ax4gkrqsczxqv8gf557s";
+       version = "5.3.0.1";
+       sha256 = "05xx68f3gpc7s1k8p81pwphmiznf7niradf52p39rss3nx8rr3ay";
        libraryHaskellDepends = [
          base binary bytestring containers dependent-map dependent-sum
-         dependent-sum-template directory edit-distance filepath haskeline
-         hslogger HTTP lifted-base monad-control mtl network network-bsd
-         parsec prim-uniq random random-fu random-source regex-tdfa
-         SafeSemaphore split syb template-haskell time transformers
-         transformers-base unix utf8-string zlib
+         dependent-sum-template directory edit-distance exceptions filepath
+         haskeline hslogger HTTP lifted-base monad-control mtl network
+         network-bsd parsec prim-uniq random random-fu random-source
+         regex-tdfa SafeSemaphore split syb template-haskell time
+         transformers transformers-base unix utf8-string zlib
        ];
        description = "Lambdabot core functionality";
        license = "GPL";
@@ -151306,8 +154253,8 @@ self: {
      }:
      mkDerivation {
        pname = "lambdabot-xmpp";
-       version = "0.1.0.4";
-       sha256 = "0jgj1vyfw26asnj6zxlfzax6hs3syn29c0abp5b7blzl27iy5pdm";
+       version = "0.1.0.5";
+       sha256 = "1lnha3ivh5hv54k21gl8pir3dbkdlnqdnz5nz5gxcdfajz9bqpxd";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -151751,14 +154698,20 @@ self: {
      }) {};
 
   "language-asn1" = callPackage
-    ({ mkDerivation, base, parsec, syb }:
+    ({ mkDerivation, base, HUnit, parsec, syb, test-framework
+     , test-framework-hunit
+     }:
      mkDerivation {
        pname = "language-asn1";
-       version = "0.5";
-       sha256 = "14aiqk1l1d3bh7dcml4a85xg81583h3r30h5splw0lvcxmbggzp3";
+       version = "0.6";
+       sha256 = "0crhyk69kp14w8917mnfsp8hiilsyw84xyz4ysdw70i78wvb530a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base parsec syb ];
+       executableHaskellDepends = [ base parsec syb ];
+       testHaskellDepends = [
+         base HUnit parsec syb test-framework test-framework-hunit
+       ];
        description = "Parsing of ASN1 definitions";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -151771,10 +154724,8 @@ self: {
      }:
      mkDerivation {
        pname = "language-ats";
-       version = "1.7.10.1";
-       sha256 = "19m9qalh9xiaw6n60zbhs8yqhd0acq08bkx42i44vfmm0917jys3";
-       revision = "1";
-       editedCabalFile = "1g1dqii5hrr016g1n8sjz7qyzrnmy46zsfd9cp7hmkxqgjk35p8k";
+       version = "1.7.10.2";
+       sha256 = "10lanbzbaywyc3a8lq2ndgmpqq2kgpm4vkjxw7gl4irzjn3206yg";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          ansi-wl-pprint array base composition-prelude containers deepseq
@@ -151795,24 +154746,6 @@ self: {
      }:
      mkDerivation {
        pname = "language-avro";
-       version = "0.1.2.0";
-       sha256 = "0cpkkp4v5sqrf6khkhmdvklmhcjc4c4rcfprd5c854vf1zq06hhl";
-       libraryHaskellDepends = [
-         avro base containers directory filepath megaparsec text vector
-       ];
-       testHaskellDepends = [
-         avro base hspec hspec-megaparsec megaparsec text vector
-       ];
-       description = "Language definition and parser for AVRO files";
-       license = stdenv.lib.licenses.asl20;
-     }) {};
-
-  "language-avro_0_1_3_1" = callPackage
-    ({ mkDerivation, avro, base, containers, directory, filepath, hspec
-     , hspec-megaparsec, megaparsec, text, vector
-     }:
-     mkDerivation {
-       pname = "language-avro";
        version = "0.1.3.1";
        sha256 = "0b54041z1sfrd7fck975i8d69agxij6jml6mxlcr41y7ywvizq0l";
        libraryHaskellDepends = [
@@ -151823,7 +154756,6 @@ self: {
        ];
        description = "Language definition and parser for AVRO files";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "language-bash" = callPackage
@@ -151888,6 +154820,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "language-c_0_9" = callPackage
+    ({ mkDerivation, alex, array, base, bytestring, containers, deepseq
+     , directory, filepath, happy, mtl, pretty, process, syb
+     }:
+     mkDerivation {
+       pname = "language-c";
+       version = "0.9";
+       sha256 = "0a2z97ajdbql583jcganadi9frqj09cidqb1hlh0gl6w6aj82kii";
+       libraryHaskellDepends = [
+         array base bytestring containers deepseq directory filepath mtl
+         pretty process syb
+       ];
+       libraryToolDepends = [ alex happy ];
+       testHaskellDepends = [ base directory filepath process ];
+       description = "Analysis and generation of C code";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "language-c-comments" = callPackage
     ({ mkDerivation, alex, array, base, language-c }:
      mkDerivation {
@@ -152059,6 +155010,47 @@ self: {
        broken = true;
      }) {};
 
+  "language-dickinson" = callPackage
+    ({ mkDerivation, alex, array, base, binary, bytestring
+     , composition-prelude, containers, cpphs, criterion, deepseq
+     , directory, filepath, happy, haskeline, microlens, microlens-mtl
+     , mtl, optparse-applicative, pretty-simple, prettyprinter, random
+     , split, tasty, tasty-golden, tasty-hunit, template-haskell, text
+     , transformers, zstd
+     }:
+     mkDerivation {
+       pname = "language-dickinson";
+       version = "1.3.0.4";
+       sha256 = "0ip4ydx174xaykh6jc7jay7jgkwnmzj3vf76l094cjipphr29vam";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         array base binary bytestring composition-prelude containers deepseq
+         directory filepath microlens microlens-mtl mtl prettyprinter random
+         split template-haskell text transformers
+       ];
+       libraryToolDepends = [ alex happy ];
+       executableHaskellDepends = [
+         base binary bytestring containers directory filepath haskeline
+         microlens microlens-mtl mtl optparse-applicative prettyprinter
+         random text zstd
+       ];
+       executableToolDepends = [ cpphs ];
+       testHaskellDepends = [
+         base bytestring filepath pretty-simple prettyprinter tasty
+         tasty-golden tasty-hunit text
+       ];
+       benchmarkHaskellDepends = [
+         base binary bytestring criterion text
+       ];
+       doHaddock = false;
+       description = "A language for generative literature";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "language-docker" = callPackage
     ({ mkDerivation, base, bytestring, containers, data-default-class
      , hspec, HUnit, megaparsec, prettyprinter, QuickCheck, split, text
@@ -152161,7 +155153,7 @@ self: {
        libraryHaskellDepends = [
          base containers language-ecmascript parsec uniplate
        ];
-       description = "JavaScript static analysis library.";
+       description = "JavaScript static analysis library";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -152181,7 +155173,7 @@ self: {
          hashable lens mtl parsec pretty text unordered-containers
        ];
        libraryToolDepends = [ alex ];
-       description = "Parser and pretty printer for the Eiffel language.";
+       description = "Parser and pretty printer for the Eiffel language";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -152215,7 +155207,7 @@ self: {
        sha256 = "16kzdvhxpmfiia68c4y36fv1sjymy7sblba4iz77qqnwfqz3zka4";
        libraryHaskellDepends = [ array base haskell-src parsec syb ];
        libraryToolDepends = [ alex happy ];
-       description = "Fortran lexer and parser, language support, and extensions.";
+       description = "Fortran lexer and parser, language support, and extensions";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -152232,6 +155224,19 @@ self: {
        broken = true;
      }) {};
 
+  "language-gemini" = callPackage
+    ({ mkDerivation, base, text }:
+     mkDerivation {
+       pname = "language-gemini";
+       version = "0.1.0.0";
+       sha256 = "1pfx1vn3bmjmvf019gdw7pfibfg23spvcpg147gy8ymf4yr7rxz6";
+       revision = "1";
+       editedCabalFile = "0gkllr25h5msjvlcx1pch6a4ndm7yymdqh4ya95drc7gns0kz1zc";
+       libraryHaskellDepends = [ base text ];
+       description = "Datatypes and parsing/printing functions to represent the Gemini markup language";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "language-glsl" = callPackage
     ({ mkDerivation, base, HUnit, parsec, prettyclass, test-framework
      , test-framework-hunit
@@ -152734,15 +155739,13 @@ self: {
      }:
      mkDerivation {
        pname = "language-python";
-       version = "0.5.6";
-       sha256 = "10xjxyhfamywpydjrimfyk2379inqyi7k7ps41v0pi657ipvbgkr";
-       revision = "1";
-       editedCabalFile = "0394np5jdxz83qd2mzj0wlvdrp65rxifga4121jq18359r6pcf7f";
+       version = "0.5.8";
+       sha256 = "1mf3czvnh9582klv0c9g7pcn1wx4qjwpvhv8la6afaifv6y5lki2";
        libraryHaskellDepends = [
          array base containers monads-tf pretty transformers utf8-string
        ];
        libraryToolDepends = [ alex happy ];
-       description = "Parsing and pretty printing of Python code.";
+       description = "Parsing and pretty printing of Python code";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -152759,7 +155762,7 @@ self: {
        executableHaskellDepends = [
          base haskell98 language-python xhtml
        ];
-       description = "Generate coloured XHTML for Python code.";
+       description = "Generate coloured XHTML for Python code";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -152769,8 +155772,8 @@ self: {
     ({ mkDerivation, base, language-python }:
      mkDerivation {
        pname = "language-python-test";
-       version = "0.5.4";
-       sha256 = "13pd76xv9bd5jdwfzmbi6074dqcpg4m99xxhycbgj3b6b2kmb4g3";
+       version = "0.5.8";
+       sha256 = "0gsh5sziznzsy623izx7fs1s68xdmgf4vmk8rwhmvh5hhxvyazb6";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [ base language-python ];
@@ -153033,24 +156036,28 @@ self: {
 
   "lapack" = callPackage
     ({ mkDerivation, base, blas-ffi, blaze-html, boxes, ChasingBottoms
-     , comfort-array, data-ref, deepseq, fixed-length
-     , guarded-allocation, hyper, lapack-ffi, lazyio, monoid-transformer
-     , netlib-ffi, non-empty, QuickCheck, quickcheck-transformer, random
-     , semigroups, text, tfp, transformers, unique-logic-tf, utility-ht
+     , comfort-array, data-ref, deepseq, doctest-exitcode-stdio
+     , fixed-length, guarded-allocation, hyper, lapack-ffi, lazyio
+     , monoid-transformer, netlib-ffi, non-empty, QuickCheck
+     , quickcheck-transformer, random, semigroups, text, tfp
+     , transformers, unique-logic-tf, utility-ht
      }:
      mkDerivation {
        pname = "lapack";
-       version = "0.3.1";
-       sha256 = "1w8nndh3gj6vrildxjn13lmi7aqjwbhpqkdj7d21fsfbmhjlgwvr";
+       version = "0.3.2";
+       sha256 = "12h9k8hx3qpfa3ma24glngpk1x9m8h17qzv86sfq54br19ikz5y0";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
          base blas-ffi blaze-html boxes comfort-array deepseq fixed-length
          guarded-allocation hyper lapack-ffi lazyio netlib-ffi non-empty
          semigroups text tfp transformers utility-ht
        ];
        testHaskellDepends = [
-         base ChasingBottoms comfort-array data-ref monoid-transformer
-         netlib-ffi non-empty QuickCheck quickcheck-transformer random
-         semigroups tfp transformers unique-logic-tf utility-ht
+         base ChasingBottoms comfort-array data-ref doctest-exitcode-stdio
+         monoid-transformer netlib-ffi non-empty QuickCheck
+         quickcheck-transformer random semigroups tfp transformers
+         unique-logic-tf utility-ht
        ];
        description = "Numerical Linear Algebra using LAPACK";
        license = stdenv.lib.licenses.bsd3;
@@ -153118,6 +156125,8 @@ self: {
        pname = "lapack-ffi-tools";
        version = "0.1.2.1";
        sha256 = "0hk54psm066acgn24mw5dbbhz4a0nqvyks75302cabijbp524gdh";
+       revision = "1";
+       editedCabalFile = "1h5chlb66ycg96ab56hwqr4qk82l19gq1pg1zfzhfdl5byg24fln";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -153352,6 +156361,8 @@ self: {
        ];
        description = "Use actual LaTeX to render formulae inside Hakyll pages";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "latex-svg-image" = callPackage
@@ -153388,6 +156399,8 @@ self: {
        executableHaskellDepends = [ base latex-svg-image pandoc-types ];
        description = "Render LaTeX formulae in pandoc documents to images with an actual LaTeX";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "lattices" = callPackage
@@ -153426,8 +156439,8 @@ self: {
      }:
      mkDerivation {
        pname = "launchdarkly-server-sdk";
-       version = "2.0.0";
-       sha256 = "0dfs9nq3vcf8w2k1x51pixb4wb47rg9nzyjgfpzx6vip296ivyf7";
+       version = "2.0.1";
+       sha256 = "19jp9809jrh3swvsji5zgbqg4qg5gayv6bj0svq00wyzaisns3dd";
        libraryHaskellDepends = [
          aeson attoparsec base base16-bytestring bytestring
          bytestring-conversion clock containers cryptohash exceptions extra
@@ -153568,8 +156581,8 @@ self: {
      }:
      mkDerivation {
        pname = "layers-game";
-       version = "0.6.0";
-       sha256 = "03a8l2hmirhfnl7s07yq06szmwcr5lz2lapbpp22ryqjr3zpvwf6";
+       version = "0.7.0";
+       sha256 = "1v55940lpp9p67nnnqslzz175cbzs7sfdyinxws9dhwmjvpm4ix8";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -153921,8 +156934,8 @@ self: {
      }:
      mkDerivation {
        pname = "ldap-client";
-       version = "0.4.0";
-       sha256 = "1n15yab8mg12f80rq47ansdxmxj4n6symx11ihy2m4bjn7yq31mk";
+       version = "0.4.1";
+       sha256 = "0m253jicjn8rqdrkcqd75bcrdg7bdq313crx2b54yv5s3mz6cxi2";
        libraryHaskellDepends = [
          asn1-encoding asn1-types async base bytestring connection
          containers fail network semigroups stm text
@@ -154229,6 +157242,8 @@ self: {
        ];
        description = "Yet another library for hidden Markov models";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "leb128" = callPackage
@@ -154256,8 +157271,8 @@ self: {
      }:
      mkDerivation {
        pname = "leb128-cereal";
-       version = "1.0";
-       sha256 = "1qjxcvcgdf4l1wzps7410yv3i5mi3ax17mq2f9wgbfbnm33329i7";
+       version = "1.1";
+       sha256 = "08jmd5v36p2vwlx3rw22h762jp7arq06fsmdipff72bvs2cn0fld";
        libraryHaskellDepends = [ base bytestring cereal ];
        testHaskellDepends = [
          base bytestring tasty tasty-hunit tasty-quickcheck
@@ -154572,12 +157587,10 @@ self: {
     ({ mkDerivation, accelerate, base, lens }:
      mkDerivation {
        pname = "lens-accelerate";
-       version = "0.2.0.0";
-       sha256 = "099vvakv7gq9sr9mh3hxj5byxxb4dw8lw7y1g3c4j1kz4gf2vxfk";
-       revision = "1";
-       editedCabalFile = "0ggm157i4bmgh7k0dv9zncgn4agwk7zn5wvsknxsnfqzy45qabi9";
+       version = "0.3.0.0";
+       sha256 = "1sk3iy5qv24mifx0gwd5z714lf3y3s4zpbff09mqk42whk2sdd0y";
        libraryHaskellDepends = [ accelerate base lens ];
-       description = "Instances to mix lens with accelerate";
+       description = "Instances to mix lens with Accelerate";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -154626,39 +157639,14 @@ self: {
      }) {};
 
   "lens-core" = callPackage
-    ({ mkDerivation, array, base, base-compat, base-orphans, bytestring
-     , Cabal, cabal-doctest, call-stack, comonad, containers, criterion
-     , deepseq, directory, doctest, dual, filepath, foldable1
-     , generic-deriving, ghc-prim, hs-functors, HUnit, mtl, nats
-     , parallel, QuickCheck, semigroups, simple-reflect, tagged
-     , test-framework, test-framework-hunit, test-framework-quickcheck2
-     , test-framework-th, text, transformers, unordered-containers, util
-     , vector
-     }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "lens-core";
-       version = "0.1.0.3";
-       sha256 = "0bnjnnfavgxy600yzmhqcj91awgk420ybr8wi4pghj2pi8z0581v";
-       revision = "1";
-       editedCabalFile = "0dalyxy1a0dkywm9mziiqhg4vcpkmw7g4lvahkw4mi371jkgvb4b";
-       setupHaskellDepends = [ base Cabal cabal-doctest filepath ];
-       libraryHaskellDepends = [
-         array base base-orphans call-stack containers dual foldable1
-         ghc-prim hs-functors mtl tagged transformers util vector
-       ];
-       testHaskellDepends = [
-         base bytestring containers deepseq directory doctest filepath
-         generic-deriving HUnit mtl nats parallel QuickCheck semigroups
-         simple-reflect test-framework test-framework-hunit
-         test-framework-quickcheck2 test-framework-th text transformers
-         unordered-containers vector
-       ];
-       benchmarkHaskellDepends = [
-         base base-compat bytestring comonad containers criterion deepseq
-         generic-deriving transformers unordered-containers vector
-       ];
-       description = "Lenses, Folds and Traversals";
-       license = stdenv.lib.licenses.bsd2;
+       version = "0.2";
+       sha256 = "1q8290h588qbkylig6m7zp899pb8prbdz9k1ynr7f4g8wnjbzbbv";
+       libraryHaskellDepends = [ base ];
+       description = "A placeholder for a future lens core package";
+       license = "(BSD-2-Clause OR Apache-2.0)";
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -154857,8 +157845,8 @@ self: {
        pname = "lens-process";
        version = "0.3.0.2";
        sha256 = "1bv6z7309bq9jv2lzr79bcbwg1pkhy728pnrjnl3c3nv807a3igk";
-       revision = "1";
-       editedCabalFile = "0cfh8yw9b88jvhq6plk9i79akq4w7bpmy6w6f7wjji0lv1mkj15m";
+       revision = "2";
+       editedCabalFile = "1l71hi0a5yn5x9w4br5bzypa25zdlqw6jcb69z3bhb6dx53197ma";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [ base filepath lens process ];
        testHaskellDepends = [
@@ -155105,8 +158093,10 @@ self: {
      }:
      mkDerivation {
        pname = "lentil";
-       version = "1.3.1.0";
-       sha256 = "0jvabc8p69wgf20q3mq0nn9kg6x20gym3xl251vnbyl7chkg9can";
+       version = "1.3.2.0";
+       sha256 = "134f9ijnd1dw2l9k5m1ay643pc4jqmq5kx17cnijb7ff93442s0n";
+       revision = "2";
+       editedCabalFile = "0xijjp1ysybbd9n3f5vcaph1qdad5v9ynp0jia5aaizr34lwx94z";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -155479,6 +158469,21 @@ self: {
        broken = true;
      }) {};
 
+  "libBF" = callPackage
+    ({ mkDerivation, base, deepseq }:
+     mkDerivation {
+       pname = "libBF";
+       version = "0.5.1";
+       sha256 = "0iwbkfbp26z1zmnk28mnkvyh8k0i0bx56wl2jwygdnqvl5lmfv6i";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base deepseq ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       description = "A binding to the libBF library";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "libGenI" = callPackage
     ({ mkDerivation, base, binary, containers, HUnit, mtl, parsec
      , process, QuickCheck
@@ -155506,10 +158511,8 @@ self: {
      }:
      mkDerivation {
        pname = "libarchive";
-       version = "2.2.5.0";
-       sha256 = "0vsrjkg4ijk63rgsl7cqdi1inpnv7ballrg5c5pgrrapwxfb5v4x";
-       revision = "1";
-       editedCabalFile = "1yc1rjcrxsq2f5hadma9fzrxcmxi1wdb03ynskhza2ynz111hjk3";
+       version = "3.0.0.0";
+       sha256 = "0qwnp5jzmlvi7bpbh1dhz3lp91qf5phr8hb7m3h5q0a50d72dqpp";
        setupHaskellDepends = [ base Cabal chs-cabal ];
        libraryHaskellDepends = [
          base bytestring composition-prelude deepseq dlist filepath mtl
@@ -155527,6 +158530,8 @@ self: {
        ];
        description = "Haskell interface to libarchive";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) libarchive;};
 
   "libarchive-conduit" = callPackage
@@ -155628,6 +158633,26 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {ffi = null;};
 
+  "libfuse3" = callPackage
+    ({ mkDerivation, base, bytestring, clock, fuse3, resourcet, time
+     , unix
+     }:
+     mkDerivation {
+       pname = "libfuse3";
+       version = "0.1.1.0";
+       sha256 = "0jnh6by1k42h8kl78anh8lqwhymdz2xgynm82vidsd7jjzanmf3j";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring clock resourcet time unix
+       ];
+       libraryPkgconfigDepends = [ fuse3 ];
+       description = "A Haskell binding for libfuse-3.x";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) fuse3;};
+
   "libgit" = callPackage
     ({ mkDerivation, base, mtl, process }:
      mkDerivation {
@@ -155731,6 +158756,36 @@ self: {
        broken = true;
      }) {};
 
+  "libjwt-typed" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, case-insensitive, casing
+     , containers, criterion, data-default, deepseq, either, exceptions
+     , extra, hspec, hspec-core, jose, jwt, lens, monad-time, proxied
+     , QuickCheck, quickcheck-instances, text, time, transformers
+     , unordered-containers, utf8-string, uuid
+     }:
+     mkDerivation {
+       pname = "libjwt-typed";
+       version = "0.2";
+       sha256 = "0fcxp5v1rak0gazw1vfnc6rjz77xiqr91c78kybw5ca76q0hj005";
+       libraryHaskellDepends = [
+         base bytestring case-insensitive casing data-default either
+         exceptions extra monad-time proxied text time transformers
+         unordered-containers utf8-string uuid
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers data-default either exceptions
+         extra hspec hspec-core jwt monad-time QuickCheck
+         quickcheck-instances text time transformers uuid
+       ];
+       benchmarkHaskellDepends = [
+         aeson base bytestring criterion data-default deepseq either
+         exceptions extra jose lens monad-time QuickCheck text time
+         transformers unordered-containers uuid
+       ];
+       description = "A Haskell implementation of JSON Web Token (JWT)";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
   "liblastfm" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cereal, containers
      , cryptonite, hspec, hspec-expectations-lens, http-client
@@ -156265,8 +159320,8 @@ self: {
      }:
      mkDerivation {
        pname = "libsystemd-journal";
-       version = "1.4.4";
-       sha256 = "1114fv3dvljxkwgxyx9ycpks8bwzj401d4ziri80rkf2ycl0pxc7";
+       version = "1.4.5";
+       sha256 = "01lgfysjclmjhfd1vl36r6xb7zl5i1pzzivzi1qwnih01laa5ix8";
        libraryHaskellDepends = [
          base bytestring hashable hsyslog pipes pipes-safe semigroups text
          transformers uniplate unix-bytestring unordered-containers uuid
@@ -156551,8 +159606,8 @@ self: {
      }:
      mkDerivation {
        pname = "lifted-async";
-       version = "0.10.0.6";
-       sha256 = "1nnhb9sdn5ilwzdrzk9hfchcgvk3kb28fciriqhhxzi2qqzmdxbj";
+       version = "0.10.1.2";
+       sha256 = "04spjv6l7bpdl3wla78yqg8misq5ym6vi4q8d03iaw2kg4cwn95x";
        libraryHaskellDepends = [
          async base constraints lifted-base monad-control transformers-base
        ];
@@ -156754,8 +159809,8 @@ self: {
      }:
      mkDerivation {
        pname = "lightstep-haskell";
-       version = "0.10.2";
-       sha256 = "0lxpmlh50vwdy1rzkln8fh9a4y5xwbmaamf3f6yfrg8djaiqa7xq";
+       version = "0.10.3";
+       sha256 = "0jzhqbm74hzk18pf3n9zswcvxi8wmn06zvvssaxzi9lwm2lk7xrr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -157046,36 +160101,6 @@ self: {
   "linear" = callPackage
     ({ mkDerivation, adjunctions, base, base-orphans, binary, bytes
      , bytestring, Cabal, cabal-doctest, cereal, containers, deepseq
-     , distributive, doctest, ghc-prim, hashable, HUnit, lens
-     , reflection, semigroupoids, semigroups, simple-reflect, tagged
-     , template-haskell, test-framework, test-framework-hunit
-     , transformers, transformers-compat, unordered-containers, vector
-     , void
-     }:
-     mkDerivation {
-       pname = "linear";
-       version = "1.20.9";
-       sha256 = "0h7yqigq593n7wsl7nz6a5f137wznm7y679wsii0ph0zsc4v5af5";
-       revision = "1";
-       editedCabalFile = "13ff7xvw25fpsikcvf0nly2ca614wzv10qyg4sh378p5r8rvfgka";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [
-         adjunctions base base-orphans binary bytes cereal containers
-         deepseq distributive ghc-prim hashable lens reflection
-         semigroupoids semigroups tagged template-haskell transformers
-         transformers-compat unordered-containers vector void
-       ];
-       testHaskellDepends = [
-         base binary bytestring deepseq doctest HUnit lens reflection
-         simple-reflect test-framework test-framework-hunit vector
-       ];
-       description = "Linear Algebra";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "linear_1_21" = callPackage
-    ({ mkDerivation, adjunctions, base, base-orphans, binary, bytes
-     , bytestring, Cabal, cabal-doctest, cereal, containers, deepseq
      , distributive, doctest, ghc-prim, hashable, HUnit, lens, random
      , reflection, semigroupoids, semigroups, simple-reflect, tagged
      , template-haskell, test-framework, test-framework-hunit
@@ -157084,10 +160109,8 @@ self: {
      }:
      mkDerivation {
        pname = "linear";
-       version = "1.21";
-       sha256 = "1i00j740fpxrbdy1kjzwjxqixk975rd0dh6jxk0da622spabym5a";
-       revision = "1";
-       editedCabalFile = "1ld4165qy07iph2d6pq3rxqn8158bciga7m839rhsd1ay4sjxq2d";
+       version = "1.21.1";
+       sha256 = "0rwr8h9ddzbxrfxzdqsy841rj27xbvy73v20r2aml7jqzy0s3gqc";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          adjunctions base base-orphans binary bytes cereal containers
@@ -157101,7 +160124,6 @@ self: {
        ];
        description = "Linear Algebra";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "linear-accelerate" = callPackage
@@ -157110,10 +160132,8 @@ self: {
      }:
      mkDerivation {
        pname = "linear-accelerate";
-       version = "0.6.0.0";
-       sha256 = "1bwqbs4816xrrc0bcf3nllad1an7c8gv2n9d1qv3ybk7s4fw288s";
-       revision = "1";
-       editedCabalFile = "1sf1jqpymhkdl5xn1br13qkw3zyg7pqmmwcczcw19zpgwk4ai19v";
+       version = "0.7.0.0";
+       sha256 = "1rdbmchbvrg5g0ndfppswydn15qbp2k9dvx7wapfpy8971qqf2df";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          accelerate base distributive lens linear
@@ -157370,8 +160390,8 @@ self: {
      }:
      mkDerivation {
        pname = "linenoise";
-       version = "0.3.1";
-       sha256 = "1ywz7msb292wzyppb3icy0l144z5mlk0yp8m2yq85ib6w2vzkqv0";
+       version = "0.3.2";
+       sha256 = "0hs910k358mfx1s1cmrc76f8ra3r34748h22m68a64mspibd2frx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -157398,19 +160418,22 @@ self: {
      }) {};
 
   "lingo" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, directory
-     , filepath, hspec, raw-strings-qq, text, yaml
+    ({ mkDerivation, base, bytestring, containers, directory, filepath
+     , hspec, raw-strings-qq, text, yaml
      }:
      mkDerivation {
        pname = "lingo";
-       version = "0.3.2.0";
-       sha256 = "0qym6svpvxsxbhbppk0lkpp2zbqa13f0njkxnpyz5id581c3v8hx";
-       setupHaskellDepends = [
-         base bytestring Cabal containers directory filepath text yaml
-       ];
+       version = "0.5.0.1";
+       sha256 = "0h57g6r2n9q8asx35prn8p5mn35qnp8cy2pdrrpmrvhq7islwd8s";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
          base bytestring containers filepath raw-strings-qq text yaml
        ];
+       executableHaskellDepends = [
+         base bytestring containers directory filepath raw-strings-qq text
+         yaml
+       ];
        testHaskellDepends = [ base hspec ];
        description = "File extension based programming language detection";
        license = stdenv.lib.licenses.bsd3;
@@ -157716,8 +160739,8 @@ self: {
     ({ mkDerivation, base, bytestring, hashable, unix }:
      mkDerivation {
        pname = "linux-inotify";
-       version = "0.3.0.1";
-       sha256 = "0fir9qajp1vrgr8l6q6h0w2dh4rbi8ibhnni9wl1cnkv5h7rrg1l";
+       version = "0.3.0.2";
+       sha256 = "1dl71xkfjlwjsmv0mqf2fpkfjl3hyzk5q1drsykg7rdblpjfbzlc";
        libraryHaskellDepends = [ base bytestring hashable unix ];
        description = "Thinner binding to the Linux Kernel's inotify interface";
        license = stdenv.lib.licenses.bsd3;
@@ -157841,8 +160864,8 @@ self: {
     ({ mkDerivation, base, bytestring, containers, hashable }:
      mkDerivation {
        pname = "lio";
-       version = "0.11.7.0";
-       sha256 = "17ckrv1ksm2ab91x63h5ia65hckw0zcxfr2mdl6aa2xxscnm4k8h";
+       version = "0.11.7.1";
+       sha256 = "04hcbvxskjji04sxx4jydac62sh6h7jlggn7kfwm8axmwjczjjqs";
        libraryHaskellDepends = [ base bytestring containers hashable ];
        description = "Labeled IO Information Flow Control Library";
        license = stdenv.lib.licenses.mit;
@@ -157947,32 +160970,71 @@ self: {
        benchmarkHaskellDepends = [ aeson attoparsec base criterion text ];
        description = "Liquid template language library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
+     }) {};
+
+  "liquid-base" = callPackage
+    ({ mkDerivation, base, Cabal, liquid-ghc-prim, liquidhaskell }:
+     mkDerivation {
+       pname = "liquid-base";
+       version = "4.14.1.0";
+       sha256 = "0w5pwksyf8fbr8v8j5mshcysxlbz4lxdvmayc3pj8cm8xcdrvzkm";
+       enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal liquidhaskell ];
+       libraryHaskellDepends = [ base liquid-ghc-prim liquidhaskell ];
+       description = "Drop-in base replacement for LiquidHaskell";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "liquid-bytestring" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, liquid-base
+     , liquidhaskell
+     }:
+     mkDerivation {
+       pname = "liquid-bytestring";
+       version = "0.10.10.0";
+       sha256 = "1fkl637zdxpsginnr0gqv68kch0dkr4yhmmmryzqy2h8fxm8gmg7";
+       enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal liquidhaskell ];
+       libraryHaskellDepends = [ bytestring liquid-base liquidhaskell ];
+       description = "LiquidHaskell specs for the bytestring package";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "liquid-containers" = callPackage
+    ({ mkDerivation, base, Cabal, containers, liquid-base
+     , liquidhaskell
+     }:
+     mkDerivation {
+       pname = "liquid-containers";
+       version = "0.6.2.1";
+       sha256 = "07k9sg1q5xvsab2dvikkjb9rpx9rcabs4szm5rbh1m5mqnwivr1l";
+       enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal liquidhaskell ];
+       libraryHaskellDepends = [ containers liquid-base liquidhaskell ];
+       description = "LiquidHaskell specs for the containers package";
+       license = stdenv.lib.licenses.bsd3;
      }) {};
 
   "liquid-fixpoint" = callPackage
     ({ mkDerivation, ansi-terminal, array, ascii-progress, async
      , attoparsec, base, binary, boxes, cereal, cmdargs, containers
-     , deepseq, directory, fgl, filepath, ghc-prim, git, hashable
-     , intern, mtl, nettools, ocaml, parallel, parsec, pretty, process
-     , stm, syb, tasty, tasty-ant-xml, tasty-hunit, tasty-rerun, text
-     , text-format, transformers, unordered-containers, z3
+     , deepseq, directory, fgl, filepath, git, hashable, intern, mtl
+     , nettools, ocaml, parallel, parsec, pretty, process, stm, syb
+     , tasty, tasty-ant-xml, tasty-hunit, tasty-rerun, text, text-format
+     , transformers, unordered-containers, z3
      }:
      mkDerivation {
        pname = "liquid-fixpoint";
-       version = "0.8.0.2";
-       sha256 = "1x8xbcf2xc9hwfpsl1s15qkmgdhr30fff4gp09dvnwi3z4mgi2wf";
-       revision = "1";
-       editedCabalFile = "013q8xj4ib5llyq9wmnx98dprw2zn4rkc1jndavcjjg2cwwrw56w";
+       version = "0.8.10.2";
+       sha256 = "1sdd88p5mz9xfqk9pbn138ixxdrq089iy5imskvhx66dwwrmrr8l";
        configureFlags = [ "-fbuild-external" ];
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          ansi-terminal array ascii-progress async attoparsec base binary
          boxes cereal cmdargs containers deepseq directory fgl filepath
-         ghc-prim hashable intern mtl parallel parsec pretty process syb
-         text text-format transformers unordered-containers
+         hashable intern mtl parallel parsec pretty process syb text
+         text-format transformers unordered-containers
        ];
        executableHaskellDepends = [ base ];
        executableSystemDepends = [ ocaml ];
@@ -157984,48 +161046,115 @@ self: {
        doCheck = false;
        description = "Predicate Abstraction-based Horn-Clause/Implication Constraint Solver";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) git; inherit (pkgs) nettools; 
          inherit (pkgs) ocaml; inherit (pkgs) z3;};
 
+  "liquid-ghc-prim" = callPackage
+    ({ mkDerivation, base, Cabal, ghc-prim, liquidhaskell }:
+     mkDerivation {
+       pname = "liquid-ghc-prim";
+       version = "0.6.1";
+       sha256 = "1zpb0izg4y98xz87ivn6rs5nfshvawrxyb5hc8jzif2p17j0aqpb";
+       enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal liquidhaskell ];
+       libraryHaskellDepends = [ ghc-prim liquidhaskell ];
+       description = "Drop-in ghc-prim replacement for LiquidHaskell";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "liquid-parallel" = callPackage
+    ({ mkDerivation, base, Cabal, liquid-base, liquidhaskell, parallel
+     }:
+     mkDerivation {
+       pname = "liquid-parallel";
+       version = "3.2.2.0";
+       sha256 = "0dg0k1lx74p3lj3vc43wypy5a3lpnww5w456ccp4xy3k83b3c4xd";
+       enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal liquidhaskell ];
+       libraryHaskellDepends = [ liquid-base liquidhaskell parallel ];
+       description = "LiquidHaskell specs for the parallel package";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "liquid-platform" = callPackage
+    ({ mkDerivation }:
+     mkDerivation {
+       pname = "liquid-platform";
+       version = "0.8.10.2";
+       sha256 = "1rhpq04nl9gcm9rwjd261ssn8q59pdcpfna0xwkcv3gmkgirwzgf";
+       isLibrary = false;
+       isExecutable = true;
+       description = "A battery-included platform for LiquidHaskell";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "liquid-prelude" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, containers, liquid-base
+     , liquidhaskell
+     }:
+     mkDerivation {
+       pname = "liquid-prelude";
+       version = "0.8.10.2";
+       sha256 = "0s52kd2x4h24j6z7cjkrarnqr7kp198qal55y84740rllskv3ijh";
+       setupHaskellDepends = [ base Cabal liquidhaskell ];
+       libraryHaskellDepends = [
+         bytestring containers liquid-base liquidhaskell
+       ];
+       description = "General utility modules for LiquidHaskell";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "liquid-vector" = callPackage
+    ({ mkDerivation, base, Cabal, liquid-base, liquidhaskell, vector }:
+     mkDerivation {
+       pname = "liquid-vector";
+       version = "0.12.1.2";
+       sha256 = "1kpa7c5a774ixqky3msp2xnq1nl16hh95azvaxdk0bhizfi3zjy3";
+       enableSeparateDataOutput = true;
+       setupHaskellDepends = [ base Cabal liquidhaskell ];
+       libraryHaskellDepends = [ liquid-base liquidhaskell vector ];
+       description = "LiquidHaskell specs for the vector package";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "liquidhaskell" = callPackage
-    ({ mkDerivation, aeson, base, binary, bytestring, cereal, cmdargs
-     , containers, data-default, deepseq, Diff, directory, filepath
-     , fingertree, ghc, ghc-boot, ghc-paths, ghc-prim, githash, gitrev
-     , hashable, hscolour, liquid-fixpoint, mtl, optparse-applicative
-     , optparse-simple, parsec, pretty, process, stm, syb, tagged, tasty
-     , tasty-ant-xml, tasty-hunit, tasty-rerun, template-haskell
+    ({ mkDerivation, aeson, base, binary, bytestring, Cabal, cereal
+     , cmdargs, containers, data-default, deepseq, Diff, directory
+     , extra, filepath, fingertree, ghc, ghc-boot, ghc-paths, ghc-prim
+     , githash, gitrev, hashable, hscolour, liquid-fixpoint, mtl, optics
+     , optparse-applicative, optparse-simple, parsec, pretty, process
+     , split, stm, string-conv, syb, tagged, tasty, tasty-ant-xml
+     , tasty-golden, tasty-hunit, tasty-rerun, template-haskell
      , temporary, text, time, transformers, unordered-containers, vector
      , z3
      }:
      mkDerivation {
        pname = "liquidhaskell";
-       version = "0.8.6.2";
-       sha256 = "1hqs1zfcz4fprrrcwj3j731ksldviafivk0kv2hprslmz4m1kfb2";
+       version = "0.8.10.2";
+       sha256 = "0byh5lia3kb44sgmilya881dp9il3n5qvrn16brnkvl9xhr9rdyi";
        revision = "1";
-       editedCabalFile = "14mvnjgd65n6j2zlzw0c679zvlik02cn6x8rhxm3rb1155zybjil";
+       editedCabalFile = "13xzhr99z459h6kd7h9y3pyyjnvsxwapjiayjr3yq2nyqhpyjygw";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson base binary bytestring cereal cmdargs containers data-default
-         deepseq Diff directory filepath fingertree ghc ghc-boot ghc-paths
-         ghc-prim githash gitrev hashable hscolour liquid-fixpoint mtl
-         optparse-simple parsec pretty syb template-haskell temporary text
-         time transformers unordered-containers vector
+         aeson base binary bytestring Cabal cereal cmdargs containers
+         data-default deepseq Diff directory extra filepath fingertree ghc
+         ghc-boot ghc-paths ghc-prim githash gitrev hashable hscolour
+         liquid-fixpoint mtl optics optparse-applicative optparse-simple
+         parsec pretty split syb template-haskell temporary text time
+         transformers unordered-containers vector
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
-         base containers directory filepath liquid-fixpoint mtl
-         optparse-applicative parsec process stm syb tagged tasty
-         tasty-ant-xml tasty-hunit tasty-rerun text transformers
+         base containers directory extra filepath ghc liquid-fixpoint mtl
+         optparse-applicative parsec process stm string-conv syb tagged
+         tasty tasty-ant-xml tasty-golden tasty-hunit tasty-rerun text
+         transformers
        ];
        testSystemDepends = [ z3 ];
        description = "Liquid Types for Haskell";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {inherit (pkgs) z3;};
 
   "liquidhaskell-cabal" = callPackage
@@ -158209,23 +161338,11 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "list-singleton";
-       version = "1.0.0.3";
-       sha256 = "1k6kygngf88a8cxy9fvh0snhg4bhd3z7x6l1zsis4wjn0fpfzvrc";
-       libraryHaskellDepends = [ base ];
-       description = "Easily and clearly create lists with only one element in them";
-       license = stdenv.lib.licenses.isc;
-     }) {};
-
-  "list-singleton_1_0_0_4" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "list-singleton";
        version = "1.0.0.4";
        sha256 = "0mb2kwj3gvykwh0iywwzqdnma27nxs1hl1rvnp3qxi893p4ikyiw";
        libraryHaskellDepends = [ base ];
        description = "Easily and clearly create lists with only one element in them";
        license = stdenv.lib.licenses.isc;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "list-t" = callPackage
@@ -158242,8 +161359,6 @@ self: {
        testHaskellDepends = [ base-prelude HTF mmorph mtl-prelude ];
        description = "ListT done right";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "list-t-attoparsec" = callPackage
@@ -158386,8 +161501,8 @@ self: {
      }:
      mkDerivation {
        pname = "list-tuple";
-       version = "0.1.2.0";
-       sha256 = "1v9nsnsgwg17zwzr5kd44wbjqzp1cl6qwz2xwnwrpx8qampckcpw";
+       version = "0.1.3.0";
+       sha256 = "1qd5pr7i9xsym09ly6am3a0id3cwbb8w4xphbsjkv3wrlfv9z9v0";
        setupHaskellDepends = [ base Cabal directory ];
        libraryHaskellDepends = [ base OneTuple Only single-tuple ];
        testHaskellDepends = [
@@ -158437,8 +161552,8 @@ self: {
      }:
      mkDerivation {
        pname = "list-zipper";
-       version = "0.0.9";
-       sha256 = "1926a02k9z97arbr622w1j13h8kik6ba148glpnmnm5kyr8d5xk4";
+       version = "0.0.10";
+       sha256 = "0vnylv1w7lkvlh7kmaz06gbq7fiz6dm44rl2s9r2nrnfslm4bjr3";
        libraryHaskellDepends = [
          base comonad deriving-compat lens mtl semigroupoids semigroups
          transformers
@@ -158608,6 +161723,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "little-rio_0_2_1" = callPackage
+    ({ mkDerivation, base, exceptions, microlens, microlens-mtl, mtl
+     , primitive, resourcet, unliftio-core
+     }:
+     mkDerivation {
+       pname = "little-rio";
+       version = "0.2.1";
+       sha256 = "1fywk5nva88365p9qv866mf1j4jksarv7d9i39m5xxi764wwpzjp";
+       libraryHaskellDepends = [
+         base exceptions microlens microlens-mtl mtl primitive resourcet
+         unliftio-core
+       ];
+       description = "When you need just the RIO monad";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "live-sequencer" = callPackage
     ({ mkDerivation, alsa-core, alsa-seq, base, bytestring, cgi
      , concurrent-split, containers, data-accessor
@@ -159024,8 +162156,6 @@ self: {
        ];
        description = "General purpose LLVM bindings";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {llvm-config = null;};
 
   "llvm-hs-pretty" = callPackage
@@ -159044,10 +162174,8 @@ self: {
          base directory filepath llvm-hs llvm-hs-pure mtl tasty tasty-golden
          tasty-hspec tasty-hunit text transformers
        ];
-       description = "A pretty printer for LLVM IR.";
+       description = "A pretty printer for LLVM IR";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "llvm-hs-pure" = callPackage
@@ -159108,12 +162236,17 @@ self: {
      }) {};
 
   "llvm-pretty" = callPackage
-    ({ mkDerivation, base, containers, monadLib, parsec, pretty }:
+    ({ mkDerivation, base, containers, microlens, microlens-th
+     , monadLib, parsec, pretty, template-haskell, th-abstraction
+     }:
      mkDerivation {
        pname = "llvm-pretty";
-       version = "0.7.1.1";
-       sha256 = "17lb4jfkaxz2ahjfvq2mxnb82k209qg13rhdg76v3j8yahr5z0a2";
-       libraryHaskellDepends = [ base containers monadLib parsec pretty ];
+       version = "0.11.0";
+       sha256 = "17jw5i68fz2vk40dcqf8k7j6j6h8acg4fhnyygb72jbk17md4q94";
+       libraryHaskellDepends = [
+         base containers microlens microlens-th monadLib parsec pretty
+         template-haskell th-abstraction
+       ];
        description = "A pretty printing library inspired by the llvm binding";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -159399,7 +162532,7 @@ self: {
        libraryHaskellDepends = [
          base combinatorial-problems containers erf random
        ];
-       description = "Generalised local search within Haskell, for applications in combinatorial optimisation.";
+       description = "Generalised local search within Haskell, for applications in combinatorial optimisation";
        license = "GPL";
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -159476,19 +162609,21 @@ self: {
      }) {};
 
   "locators" = callPackage
-    ({ mkDerivation, base, bytestring, containers, cryptohash, hspec
-     , HUnit, QuickCheck
+    ({ mkDerivation, base, bytestring, containers, cryptonite, hspec
+     , HUnit, memory, QuickCheck
      }:
      mkDerivation {
        pname = "locators";
-       version = "0.2.4.4";
-       sha256 = "19csw13qbxxv7lr3blx856k2y21sidgpnv56dq45la3f4100jv9d";
-       libraryHaskellDepends = [ base bytestring containers cryptohash ];
+       version = "0.3.0.3";
+       sha256 = "1rjlgjm41mxflq4b7y7cl86mlkdlh5lgxsm40lmy1lwfcx7l2fmq";
+       libraryHaskellDepends = [
+         base bytestring containers cryptonite memory
+       ];
        testHaskellDepends = [
-         base bytestring containers cryptohash hspec HUnit QuickCheck
+         base bytestring containers cryptonite hspec HUnit QuickCheck
        ];
        description = "Human exchangable identifiers and locators";
-       license = stdenv.lib.licenses.bsd3;
+       license = stdenv.lib.licenses.mit;
      }) {};
 
   "loch" = callPackage
@@ -159639,6 +162774,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "log-base_0_9_0_0" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, bytestring, deepseq
+     , exceptions, mmorph, monad-control, monad-time, mtl, semigroups
+     , stm, text, time, transformers-base, unliftio-core
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "log-base";
+       version = "0.9.0.0";
+       sha256 = "0rlwr80636b4rrjgqg7ri5cfz95v9h47r9k413r9wvldfvz2abyg";
+       libraryHaskellDepends = [
+         aeson aeson-pretty base bytestring deepseq exceptions mmorph
+         monad-control monad-time mtl semigroups stm text time
+         transformers-base unliftio-core unordered-containers
+       ];
+       description = "Structured logging solution (base package)";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "log-domain" = callPackage
     ({ mkDerivation, base, binary, bytes, Cabal, cabal-doctest, cereal
      , comonad, deepseq, distributive, doctest, generic-deriving
@@ -159702,18 +162857,19 @@ self: {
 
   "log-elasticsearch" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, base64-bytestring
-     , bloodhound, bytestring, deepseq, http-client, http-client-tls
-     , log-base, semigroups, text, text-show, time, transformers
-     , unordered-containers, vector
+     , bytestring, deepseq, http-client, http-client-tls, http-types
+     , log-base, network-uri, semigroups, text, text-show, time
+     , transformers, unordered-containers, vector
      }:
      mkDerivation {
        pname = "log-elasticsearch";
-       version = "0.10.2.0";
-       sha256 = "0kcixyklnak34v8vmmpw8vpm1mvf3wll6xpcdvfg1c75wc9n1hqy";
+       version = "0.11.0.0";
+       sha256 = "1l64mxk3zmlfsqwlhsq62jp8rawj3jbw9izihg7555q51pbqlg5w";
        libraryHaskellDepends = [
-         aeson aeson-pretty base base64-bytestring bloodhound bytestring
-         deepseq http-client http-client-tls log-base semigroups text
-         text-show time transformers unordered-containers vector
+         aeson aeson-pretty base base64-bytestring bytestring deepseq
+         http-client http-client-tls http-types log-base network-uri
+         semigroups text text-show time transformers unordered-containers
+         vector
        ];
        description = "Structured logging solution (Elasticsearch back end)";
        license = stdenv.lib.licenses.bsd3;
@@ -159729,8 +162885,8 @@ self: {
      }:
      mkDerivation {
        pname = "log-postgres";
-       version = "0.7.1.3";
-       sha256 = "132q4cx0a2malzncm7bscjikpqaaz6fwzz6n8mhqianbpq02s0v1";
+       version = "0.7.1.4";
+       sha256 = "1m96d5486xadypm5iby8rkb979k82md394j5iaik6xk5aavcn6xx";
        libraryHaskellDepends = [
          aeson aeson-pretty base base64-bytestring bytestring deepseq
          hpqtypes http-client lifted-base log-base mtl semigroups split text
@@ -159844,6 +163000,8 @@ self: {
        ];
        description = "A python logging style log library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "logentries" = callPackage
@@ -159941,8 +163099,8 @@ self: {
      }:
      mkDerivation {
        pname = "logging-effect";
-       version = "1.3.9";
-       sha256 = "18g0yw5k0xcpiz3chag61smjc9fi4iy99sv9sqhq8f2v61p355dr";
+       version = "1.3.11";
+       sha256 = "1r5qfip5xl22hq2v27b1lkcknixmc40wm7iya7vs3mrnwyavpmdb";
        libraryHaskellDepends = [
          async base exceptions free monad-control mtl prettyprinter
          semigroups stm stm-delay text time transformers transformers-base
@@ -159954,6 +163112,8 @@ self: {
        ];
        description = "A mtl-style monad transformer for general purpose & compositional logging";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "logging-effect-extra" = callPackage
@@ -160126,8 +163286,8 @@ self: {
     ({ mkDerivation, base, mtl, tasty, tasty-hunit }:
      mkDerivation {
        pname = "logict";
-       version = "0.7.0.2";
-       sha256 = "1xfgdsxg0lp8m0a2cb83rcxrnnc37asfikay2kydi933anh9ihfc";
+       version = "0.7.0.3";
+       sha256 = "0psihirap7mrn3ly1h9dvgvgjsqbqwji8m13fm48zl205mpfh73r";
        libraryHaskellDepends = [ base mtl ];
        testHaskellDepends = [ base mtl tasty tasty-hunit ];
        description = "A backtracking logic-programming monad";
@@ -160461,10 +163621,8 @@ self: {
     ({ mkDerivation, base, integer-gmp }:
      mkDerivation {
        pname = "long-double";
-       version = "0.1";
-       sha256 = "072yfv1kv83k8qc9apks2czr9p6znk46bbbjmsdbcpzyb8byh64j";
-       revision = "2";
-       editedCabalFile = "03x83ycib19k2lmd3spwq2zmylfl5ihammb406fxxqqbyv4jw1mg";
+       version = "0.1.1";
+       sha256 = "0byrpngsh1a8w9n5nbw9lfmj4nmh33avzfh883zw9ya10pfa7x3g";
        libraryHaskellDepends = [ base integer-gmp ];
        description = "FFI bindings for C long double";
        license = stdenv.lib.licenses.bsd3;
@@ -160675,39 +163833,26 @@ self: {
      }) {};
 
   "lorentz" = callPackage
-    ({ mkDerivation, aeson-pretty, base-noprelude, bimap, bytestring
-     , constraints, containers, data-default, filepath
-     , first-class-families, fmt, formatting, ghc-prim, HUnit
-     , interpolate, lens, morley, morley-prelude, mtl, named
-     , optparse-applicative, pretty-terminal, QuickCheck, singletons
-     , spoon, tasty, tasty-discover, tasty-hunit-compat
-     , tasty-quickcheck, template-haskell, text, tezos-bake-monitor-lib
-     , type-spec, unordered-containers, vinyl
+    ({ mkDerivation, aeson-pretty, base, bimap, bytestring, constraints
+     , containers, data-default, first-class-families, fmt, interpolate
+     , lens, morley, morley-prelude, mtl, named, optparse-applicative
+     , pretty-terminal, QuickCheck, singletons, template-haskell, text
+     , unordered-containers, vinyl, with-utf8
      }:
      mkDerivation {
        pname = "lorentz";
-       version = "0.3.0";
-       sha256 = "1kjaif19rbmni4nsa8xczbp7q0lbfspbv9w0nhc24l7jjfmhrcd2";
+       version = "0.6.1";
+       sha256 = "124zqmf200d5gs5bdxbf63z2w0kynxai3hlhf787sdksl3dc4sbl";
        libraryHaskellDepends = [
-         aeson-pretty base-noprelude bimap bytestring constraints containers
-         data-default first-class-families fmt formatting ghc-prim HUnit
-         interpolate lens morley morley-prelude mtl named
-         optparse-applicative pretty-terminal QuickCheck singletons
-         template-haskell text tezos-bake-monitor-lib unordered-containers
-         vinyl
+         aeson-pretty base bimap bytestring constraints containers
+         data-default first-class-families fmt interpolate lens morley
+         morley-prelude mtl named optparse-applicative pretty-terminal
+         QuickCheck singletons template-haskell text unordered-containers
+         vinyl with-utf8
        ];
-       testHaskellDepends = [
-         base-noprelude bimap bytestring constraints containers data-default
-         filepath first-class-families fmt formatting HUnit morley
-         morley-prelude QuickCheck singletons spoon tasty tasty-hunit-compat
-         tasty-quickcheck text type-spec unordered-containers vinyl
-       ];
-       testToolDepends = [ tasty-discover ];
        description = "EDSL for the Michelson Language";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {tezos-bake-monitor-lib = null;};
+     }) {};
 
   "loris" = callPackage
     ({ mkDerivation, base, c2hs, loris, vector }:
@@ -160895,6 +164040,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "lrucaching-haxl" = callPackage
+    ({ mkDerivation, base, hashable, haxl, lrucaching, psqueues }:
+     mkDerivation {
+       pname = "lrucaching-haxl";
+       version = "0.1.0.0";
+       sha256 = "0pn2f671ak1grzjigyvan5wagh9vyqhsz86jfy1z281rd2pw4gk2";
+       libraryHaskellDepends = [ base hashable haxl lrucaching psqueues ];
+       description = "Combine lrucaching and haxl";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "ls-usb" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, base-unicode-symbols
      , cmdtheline, text, usb, usb-id-database, vector
@@ -160943,8 +164101,8 @@ self: {
      }:
      mkDerivation {
        pname = "lsp-test";
-       version = "0.10.2.0";
-       sha256 = "1khqdgc90k9ya58nxsb6dggyyjdp5q9m4bgxmkg15l6qh6mw9zqp";
+       version = "0.10.3.0";
+       sha256 = "1gj6f99k3kd0flh2nbpj5wnhi1ql5rlijw0vf4l53zwxy203r7k8";
        libraryHaskellDepends = [
          aeson aeson-pretty ansi-terminal async base bytestring conduit
          conduit-parse containers data-default Diff directory filepath
@@ -160959,7 +164117,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "lsp-test_0_11_0_1" = callPackage
+  "lsp-test_0_11_0_6" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async, base
      , bytestring, conduit, conduit-parse, containers, data-default
      , Diff, directory, filepath, Glob, haskell-lsp, hspec, lens, mtl
@@ -160968,10 +164126,8 @@ self: {
      }:
      mkDerivation {
        pname = "lsp-test";
-       version = "0.11.0.1";
-       sha256 = "0s2sabykaaklw32z6j9z1m7l22ayc736sih39fhlq83iwgpv1917";
-       revision = "1";
-       editedCabalFile = "08lqzsw41vps1z8zihhsja95h5k73g5gpf689x2ryxn6ch13052v";
+       version = "0.11.0.6";
+       sha256 = "0f32i582rw6b1a3lr3jlddl7ry8v7xnfwhhd5vhhw71kqwafrrbs";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -161061,6 +164217,24 @@ self: {
        broken = true;
      }) {};
 
+  "lti13" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, http-client
+     , http-types, jose-jwt, oidc-client, safe-exceptions, text
+     }:
+     mkDerivation {
+       pname = "lti13";
+       version = "0.1.2.2";
+       sha256 = "18l5sj2rv3lfis6hcaymn8vv7w6dbsnzl9wsfml5vfmlpb4jw8fw";
+       libraryHaskellDepends = [
+         aeson base bytestring containers http-client http-types jose-jwt
+         oidc-client safe-exceptions text
+       ];
+       description = "Core functionality for LTI 1.3.";
+       license = stdenv.lib.licenses.lgpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "ltiv1p1" = callPackage
     ({ mkDerivation, authenticate-oauth, base, blaze-builder
      , bytestring, containers, data-default, http-client, http-types
@@ -161226,6 +164400,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "lucid-cdn" = callPackage
+    ({ mkDerivation, base, lucid }:
+     mkDerivation {
+       pname = "lucid-cdn";
+       version = "0.2.0.1";
+       sha256 = "1y1rszg00kb1qpwrccpjv6l0qkn8cpxawks7ylcw8sbs0h824l73";
+       libraryHaskellDepends = [ base lucid ];
+       description = "Curated list of CDN imports for lucid";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "lucid-colonnade" = callPackage
     ({ mkDerivation, base, colonnade, lucid, text }:
      mkDerivation {
@@ -161679,14 +164864,44 @@ self: {
        broken = true;
      }) {};
 
+  "lz4-frame-conduit" = callPackage
+    ({ mkDerivation, base, bytestring, conduit, conduit-extra
+     , containers, hspec, inline-c, optparse-applicative, QuickCheck
+     , raw-strings-qq, resourcet, template-haskell, text, unliftio
+     , unliftio-core
+     }:
+     mkDerivation {
+       pname = "lz4-frame-conduit";
+       version = "0.1.0.1";
+       sha256 = "0n07cgdwq2miskgqj354hnjghmp555d7n8b39b00sjigdjzkbala";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring conduit conduit-extra containers inline-c
+         raw-strings-qq resourcet template-haskell unliftio unliftio-core
+       ];
+       executableHaskellDepends = [
+         base bytestring conduit conduit-extra optparse-applicative
+         resourcet text
+       ];
+       testHaskellDepends = [
+         base bytestring conduit conduit-extra hspec QuickCheck resourcet
+         unliftio-core
+       ];
+       description = "Conduit implementing the official LZ4 frame streaming format";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "lz4-hs" = callPackage
     ({ mkDerivation, base, bytestring, c2hs, criterion, filepath, tasty
      , tasty-hunit, temporary
      }:
      mkDerivation {
        pname = "lz4-hs";
-       version = "0.1.4.1";
-       sha256 = "15jm8lbwhgp29yvnwsxsmbixvgpxrnw7jc96zwmzbqx365r4dfqr";
+       version = "0.1.5.0";
+       sha256 = "0qqv6n7hjcjkc1pzhwkdr9l1kfb8rqndx2lfm6j4bhmvrwwrn8lw";
        libraryHaskellDepends = [ base bytestring ];
        libraryToolDepends = [ c2hs ];
        testHaskellDepends = [ base bytestring tasty tasty-hunit ];
@@ -162180,8 +165395,8 @@ self: {
      }:
      mkDerivation {
        pname = "mackerel-client";
-       version = "0.2.0";
-       sha256 = "05x0c05h3k8c1qrxmmi4dlj1wxpmfqj6n3man5cqpqp0sxayxv9c";
+       version = "0.3.0";
+       sha256 = "1gzrj2nf3v7d55ddfmjvxijcg78l671b18av25hzsr9ymbbljafb";
        libraryHaskellDepends = [
          aeson base bytestring data-default directory filepath htoml
          http-client http-client-tls http-types parsec split text
@@ -162439,12 +165654,14 @@ self: {
      }) {};
 
   "magma" = callPackage
-    ({ mkDerivation, base, deepseq, profunctors, semigroups }:
+    ({ mkDerivation, base, deepseq, ghc-prim, profunctors, semigroups
+     }:
      mkDerivation {
        pname = "magma";
-       version = "0.5.0.0";
-       sha256 = "17ca22bs44whr597p7shv4fnpngbrb8vdxs6zbglfhb69bgjljyy";
+       version = "0.6.0.0";
+       sha256 = "054drdwpks29mf22imwng8k6i7701yl9hijb4wh2a8wa4axssn9w";
        libraryHaskellDepends = [ base deepseq profunctors semigroups ];
+       testHaskellDepends = [ base ghc-prim ];
        description = "magma is an algebraic structure";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -162814,8 +166031,8 @@ self: {
     ({ mkDerivation, base, transformers }:
      mkDerivation {
        pname = "managed";
-       version = "1.0.7";
-       sha256 = "0wxi6d3kcpc4iyhbrnbapbdgaf46aw0a8d32n2sbs0lbk0pc4c6i";
+       version = "1.0.8";
+       sha256 = "00wzfy9facwgimrilz7bxaigr79w10733h8zfgyhll644p2rnz38";
        libraryHaskellDepends = [ base transformers ];
        description = "A monad for managed values";
        license = stdenv.lib.licenses.bsd3;
@@ -163975,8 +167192,8 @@ self: {
      }:
      mkDerivation {
        pname = "mason";
-       version = "0.2.1";
-       sha256 = "08na34n8f8r9r2z95dfnkvsbc0w76x0ic8yxvpxnykax7n2xhpia";
+       version = "0.2.3";
+       sha256 = "0iwbdkrlbjn44gj0g43lfajx35jbihw4in5pc8by33ajwix43y5j";
        libraryHaskellDepends = [
          array base bytestring ghc-prim integer-gmp network text
        ];
@@ -163985,16 +167202,15 @@ self: {
      }) {};
 
   "massiv" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, cabal-doctest
-     , data-default-class, deepseq, doctest, exceptions
-     , mersenne-random-pure64, primitive, QuickCheck, random, scheduler
-     , splitmix, template-haskell, unliftio-core, vector
+    ({ mkDerivation, base, bytestring, data-default-class, deepseq
+     , doctest, exceptions, mersenne-random-pure64, primitive
+     , QuickCheck, random, scheduler, splitmix, template-haskell
+     , unliftio-core, vector
      }:
      mkDerivation {
        pname = "massiv";
-       version = "0.4.5.0";
-       sha256 = "06mllyp2wax1gbwafxa7sbda96mp4zhfsc3mbcpymxrap2i2c6w1";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.5.4.0";
+       sha256 = "0dmm6x5izmjl1l803fvmxzqrh0jpg56z2aid228a4c44n620dzln";
        libraryHaskellDepends = [
          base bytestring data-default-class deepseq exceptions primitive
          scheduler unliftio-core vector
@@ -164009,42 +167225,43 @@ self: {
        broken = true;
      }) {};
 
-  "massiv_0_5_2_0" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, cabal-doctest
-     , data-default-class, deepseq, doctest, exceptions
-     , mersenne-random-pure64, primitive, QuickCheck, random, scheduler
-     , splitmix, template-haskell, unliftio-core, vector
+  "massiv-io" = callPackage
+    ({ mkDerivation, base, bytestring, Cabal, cabal-doctest, Color
+     , data-default-class, deepseq, doctest, exceptions, filepath, hspec
+     , JuicyPixels, massiv, massiv-test, netpbm, QuickCheck, random
+     , template-haskell, unliftio, vector
      }:
      mkDerivation {
-       pname = "massiv";
-       version = "0.5.2.0";
-       sha256 = "0j44as40bgzjixiga4l06gr3fpgk8vifmz2y12asczxwfv6k0xp1";
+       pname = "massiv-io";
+       version = "0.2.1.0";
+       sha256 = "0p7z4nk0fv9lql17s9d18hi5mrnvr4zry6rghqnhjmhlp97g4yi6";
+       revision = "1";
+       editedCabalFile = "0sqlkva81p748537vwbg0pzgvlx8xs7560rpd0fjcxafhj32m03x";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
-         base bytestring data-default-class deepseq exceptions primitive
-         scheduler unliftio-core vector
+         base bytestring Color data-default-class deepseq exceptions
+         filepath JuicyPixels massiv netpbm unliftio vector
        ];
        testHaskellDepends = [
-         base doctest mersenne-random-pure64 QuickCheck random splitmix
-         template-haskell
+         base bytestring doctest hspec JuicyPixels massiv massiv-test
+         QuickCheck random template-haskell
        ];
-       description = "Massiv (Массив) is an Array Library";
+       description = "Import/export of Image files into massiv Arrays";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
-  "massiv-io" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, cabal-doctest, Color
-     , data-default-class, deepseq, doctest, exceptions, filepath, hspec
-     , JuicyPixels, massiv, massiv-test, netpbm, QuickCheck, random
-     , template-haskell, unliftio, vector
+  "massiv-io_0_3_0_1" = callPackage
+    ({ mkDerivation, base, bytestring, Color, data-default-class
+     , deepseq, doctest, exceptions, filepath, hspec, JuicyPixels
+     , massiv, massiv-test, netpbm, QuickCheck, random, template-haskell
+     , unliftio, vector
      }:
      mkDerivation {
        pname = "massiv-io";
-       version = "0.2.1.0";
-       sha256 = "0p7z4nk0fv9lql17s9d18hi5mrnvr4zry6rghqnhjmhlp97g4yi6";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "0.3.0.1";
+       sha256 = "0r0nkgpdkjwsdxcfys3idk1m7q0paz5c3gx1sx7xwsj7c5gyp5gs";
        libraryHaskellDepends = [
          base bytestring Color data-default-class deepseq exceptions
          filepath JuicyPixels massiv netpbm unliftio vector
@@ -164082,43 +167299,20 @@ self: {
   "massiv-test" = callPackage
     ({ mkDerivation, base, bytestring, containers, data-default
      , data-default-class, deepseq, exceptions, genvalidity-hspec, hspec
-     , massiv, primitive, QuickCheck, scheduler, unliftio, vector
-     }:
-     mkDerivation {
-       pname = "massiv-test";
-       version = "0.1.2";
-       sha256 = "13sp8xw7rbwqgafn3f5f971l9i80cm09fan27cgpx8r8nmyrmhp2";
-       libraryHaskellDepends = [
-         base bytestring data-default-class deepseq exceptions hspec massiv
-         primitive QuickCheck scheduler unliftio vector
-       ];
-       testHaskellDepends = [
-         base bytestring containers data-default deepseq genvalidity-hspec
-         hspec massiv QuickCheck scheduler vector
-       ];
-       description = "Library that contains generators, properties and tests for Massiv Array Library";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "massiv-test_0_1_3" = callPackage
-    ({ mkDerivation, base, bytestring, containers, data-default
-     , data-default-class, deepseq, exceptions, genvalidity-hspec, hspec
      , massiv, mwc-random, primitive, QuickCheck, scheduler, unliftio
      , vector
      }:
      mkDerivation {
        pname = "massiv-test";
-       version = "0.1.3";
-       sha256 = "1pkqaw43vzsh19ycr6pp817wq2k06gpkxqn8i09dkfzddbgymkf6";
+       version = "0.1.4";
+       sha256 = "1qhvph2s6bkw3zb43arq1zvrfyr09phqjwxhzsqxi2x2fcrdyvyn";
        libraryHaskellDepends = [
          base bytestring data-default-class deepseq exceptions hspec massiv
          primitive QuickCheck scheduler unliftio vector
        ];
        testHaskellDepends = [
          base bytestring containers data-default deepseq genvalidity-hspec
-         hspec massiv mwc-random QuickCheck scheduler vector
+         hspec massiv mwc-random primitive QuickCheck scheduler vector
        ];
        description = "Library that contains generators, properties and tests for Massiv Array Library";
        license = stdenv.lib.licenses.bsd3;
@@ -164173,6 +167367,8 @@ self: {
        pname = "matchable";
        version = "0.1.2";
        sha256 = "0wrbq9pqndr9rm8iy3vmz756q77s0ih3y2is0hvv48w89hn5a4r0";
+       revision = "1";
+       editedCabalFile = "15gh6v6wicnl670j6knqcm1a589rdyh1drpk8ia7p4w9lhyav7vk";
        libraryHaskellDepends = [
          base containers hashable tagged unordered-containers vector
        ];
@@ -164189,10 +167385,8 @@ self: {
      }:
      mkDerivation {
        pname = "matchable-th";
-       version = "0.1.0.0";
-       sha256 = "1381zpnpzgng7iwx326bjwi1i3300a0aa0hhp1j5wr0mxad8hyr3";
-       revision = "1";
-       editedCabalFile = "0az3cwf4gy0vhv0zqdvqpvk3j6ckhf1h2946kklvmij7z46x17ql";
+       version = "0.1.1.0";
+       sha256 = "0hmdy38k1il2b0j6bkr3m4f1c8d8rvw21k3rlrd0q345xjx8y8p1";
        libraryHaskellDepends = [
          base matchable template-haskell th-abstraction
        ];
@@ -164245,16 +167439,14 @@ self: {
      }) {};
 
   "math-functions" = callPackage
-    ({ mkDerivation, base, data-default-class, deepseq, erf, primitive
-     , QuickCheck, tasty, tasty-hunit, tasty-quickcheck, vector
-     , vector-th-unbox
+    ({ mkDerivation, base, data-default-class, deepseq, erf, gauge
+     , primitive, QuickCheck, random, tasty, tasty-hunit
+     , tasty-quickcheck, vector, vector-th-unbox
      }:
      mkDerivation {
        pname = "math-functions";
-       version = "0.3.4.0";
-       sha256 = "1r77ifqjxr8waf9ljgggyhl2a7gpqhhsi7m7cnc9v5kxqzgdbn4a";
-       revision = "1";
-       editedCabalFile = "1gyrzczs1df98l2d21xrpqqsxs9yw27pfwl27fx8lshd9n25x5h5";
+       version = "0.3.4.1";
+       sha256 = "13x4whrnacqvmprfi665n5nby8hqlz1pxrglsl81chyk0gy0l2p2";
        libraryHaskellDepends = [
          base data-default-class deepseq primitive vector
        ];
@@ -164262,6 +167454,9 @@ self: {
          base data-default-class deepseq erf primitive QuickCheck tasty
          tasty-hunit tasty-quickcheck vector vector-th-unbox
        ];
+       benchmarkHaskellDepends = [
+         base data-default-class gauge random vector
+       ];
        description = "Collection of tools for numeric computations";
        license = stdenv.lib.licenses.bsd2;
      }) {};
@@ -164311,6 +167506,65 @@ self: {
        broken = true;
      }) {};
 
+  "math-programming" = callPackage
+    ({ mkDerivation, base, containers, mtl, tasty, tasty-discover
+     , tasty-hunit, tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "math-programming";
+       version = "0.4.0";
+       sha256 = "0c154gvx0h1xincmmx2jcrvaivni36ahglbrwx08v8z3wdp51k0m";
+       libraryHaskellDepends = [ base containers mtl text ];
+       testHaskellDepends = [
+         base containers mtl tasty tasty-discover tasty-hunit
+         tasty-quickcheck text
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "A library for formulating and solving math programs";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "math-programming-glpk" = callPackage
+    ({ mkDerivation, base, containers, glpk, glpk-headers
+     , math-programming, math-programming-tests, mtl, tasty
+     , tasty-discover, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "math-programming-glpk";
+       version = "0.4.1";
+       sha256 = "1ikg8a3pspcrk46rr87lnwkhziihzfpjd543bisqs0pl2db1ll5b";
+       libraryHaskellDepends = [
+         base containers glpk-headers math-programming mtl text
+       ];
+       testHaskellDepends = [
+         base containers glpk-headers math-programming
+         math-programming-tests mtl tasty tasty-discover tasty-hunit text
+       ];
+       testSystemDepends = [ glpk ];
+       testToolDepends = [ tasty-discover ];
+       description = "A GLPK backend to the math-programming library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) glpk;};
+
+  "math-programming-tests" = callPackage
+    ({ mkDerivation, base, math-programming, tasty, tasty-hunit
+     , tasty-quickcheck, text
+     }:
+     mkDerivation {
+       pname = "math-programming-tests";
+       version = "0.4.0";
+       sha256 = "01d6yb4zm2jky8jm8jzd1365nhjsa4c50b5a5yx3r7g078lk91pi";
+       libraryHaskellDepends = [
+         base math-programming tasty tasty-hunit tasty-quickcheck text
+       ];
+       description = "Utility functions for testing implementations of the math-programming library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "mathblog" = callPackage
     ({ mkDerivation, base, bytestring, ConfigFile, containers
      , data-default, deepseq, directory, either, filepath, fsnotify
@@ -164432,13 +167686,23 @@ self: {
      }) {};
 
   "matlab" = callPackage
-    ({ mkDerivation, array, base, Cabal, eng, filepath, mat, mx }:
+    ({ mkDerivation, array, base, Cabal, containers, eng, exceptions
+     , filepath, mat, mx, path, profunctors, template-haskell, text
+     }:
      mkDerivation {
        pname = "matlab";
-       version = "0.2.0.0";
-       sha256 = "08kalclinzqxy5l7j115hz6h9nw1g7mf9rzmpz8dblbhbwvj4l7x";
-       libraryHaskellDepends = [ array base Cabal filepath ];
+       version = "0.3.0.0";
+       sha256 = "1ghvmq8izn2rhv19qm3v3cxf8c2ry7jd627d49k4479sj9brs2wb";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base Cabal containers filepath path profunctors
+       ];
        librarySystemDepends = [ eng mat mx ];
+       executableHaskellDepends = [
+         base exceptions filepath path template-haskell text
+       ];
+       executableSystemDepends = [ eng mat mx ];
        description = "Matlab bindings and interface";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -164507,13 +167771,35 @@ self: {
      }:
      mkDerivation {
        pname = "matrix-as-xyz";
-       version = "0.1.1.1";
-       sha256 = "1hca54xrd0ia4vcqpgkjn65qgk35rzrs3hjl6d758dj3gshq30xp";
-       libraryHaskellDepends = [ base hspec matrix parsec QuickCheck ];
+       version = "0.1.2.2";
+       sha256 = "1qblzv6893z6y9jkp2v71g73x35bbizxghliby39fx6kxw6l2j7w";
+       revision = "2";
+       editedCabalFile = "01r2n4ys2z92wkdpky171dbxklynvp5cjf7vi61sf4hjdqih17nf";
+       libraryHaskellDepends = [ base matrix parsec ];
        testHaskellDepends = [
          base doctest hspec matrix parsec QuickCheck
        ];
-       description = "Read and Display representation of matrix like \"x,y,z\"";
+       description = "Read and Display Jones-Faithful notation for spacegroup and planegroup";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "matrix-lens" = callPackage
+    ({ mkDerivation, base, hedgehog, lens, matrix, tasty
+     , tasty-discover, tasty-hedgehog, tasty-hspec, vector
+     }:
+     mkDerivation {
+       pname = "matrix-lens";
+       version = "0.1.0.0";
+       sha256 = "077dwgvm73qlh12ss725ipbry8gqzl3y1xmg6r34r97vcah5a0fy";
+       libraryHaskellDepends = [ base lens matrix vector ];
+       testHaskellDepends = [
+         base hedgehog lens matrix tasty tasty-discover tasty-hedgehog
+         tasty-hspec vector
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Optics for the \"matrix\" package";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -164564,16 +167850,16 @@ self: {
 
   "matrix-sized" = callPackage
     ({ mkDerivation, base, bytestring, bytestring-lexing, conduit
-     , conduit-extra, data-ordlist, ieee754, primitive, singletons
+     , data-ordlist, double-conversion, ieee754, primitive, singletons
      , store, tasty, tasty-quickcheck, vector
      }:
      mkDerivation {
        pname = "matrix-sized";
-       version = "0.1.0";
-       sha256 = "0qmbckk1bmmg8lszdnd8lcgplniqzd53iq1aqv9jky96zdmmrna6";
+       version = "0.1.1";
+       sha256 = "00s08dnyr45c04k4qxydf3sfpyigrg1g8i0671z40m23wpcmzlyd";
        libraryHaskellDepends = [
-         base bytestring bytestring-lexing conduit conduit-extra primitive
-         singletons store vector
+         base bytestring bytestring-lexing conduit double-conversion
+         primitive singletons store vector
        ];
        testHaskellDepends = [
          base conduit data-ordlist ieee754 singletons store tasty
@@ -164591,25 +167877,6 @@ self: {
      }:
      mkDerivation {
        pname = "matrix-static";
-       version = "0.2.1";
-       sha256 = "1jq6f3as18q0z9z8nxf3jsa6fgci9nsp4m4qbr13429m6rl11x1n";
-       libraryHaskellDepends = [
-         base deepseq ghc-typelits-natnormalise matrix vector
-       ];
-       testHaskellDepends = [
-         base deepseq ghc-typelits-natnormalise matrix tasty tasty-hunit
-         vector
-       ];
-       description = "Type-safe matrix operations";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "matrix-static_0_3" = callPackage
-    ({ mkDerivation, base, deepseq, ghc-typelits-natnormalise, matrix
-     , tasty, tasty-hunit, vector
-     }:
-     mkDerivation {
-       pname = "matrix-static";
        version = "0.3";
        sha256 = "0g7vijwj6l8l10276smhycp1h30diy8naykxf184lm87ykx2aamv";
        libraryHaskellDepends = [
@@ -164621,7 +167888,6 @@ self: {
        ];
        description = "Type-safe matrix operations";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "matsuri" = callPackage
@@ -164651,7 +167917,7 @@ self: {
      , config-ini, connection, containers, data-clist, directory
      , filepath, gitrev, hashable, Hclip, mattermost-api
      , mattermost-api-qc, microlens-platform, mtl, network-uri, process
-     , quickcheck-text, random, semigroups, skylighting-core, stm
+     , quickcheck-text, random, semigroups, skylighting-core, split, stm
      , stm-delay, strict, string-conversions, tasty, tasty-hunit
      , tasty-quickcheck, temporary, text, text-zipper, time
      , timezone-olson, timezone-series, transformers, Unique, unix
@@ -164660,8 +167926,8 @@ self: {
      }:
      mkDerivation {
        pname = "matterhorn";
-       version = "50200.8.0";
-       sha256 = "05fkhizjj5vvrsz7db8s7ig36ym02n6mndwaay0md8s7fghjwfiw";
+       version = "50200.10.1";
+       sha256 = "0m4vqxxcqvbgm6flfwqy2w47ada3r29r34yw1gyv02na7gx3rqi1";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -164670,8 +167936,8 @@ self: {
          bytestring cheapskate config-ini connection containers data-clist
          directory filepath gitrev hashable Hclip mattermost-api
          microlens-platform mtl network-uri process random semigroups
-         skylighting-core stm stm-delay strict temporary text text-zipper
-         time timezone-olson timezone-series transformers unix
+         skylighting-core split stm stm-delay strict temporary text
+         text-zipper time timezone-olson timezone-series transformers unix
          unordered-containers utf8-string uuid vector vty word-wrap
          xdg-basedir
        ];
@@ -164699,8 +167965,8 @@ self: {
      }:
      mkDerivation {
        pname = "mattermost-api";
-       version = "50200.5.0";
-       sha256 = "0hfwc85qhz1klwr4baabcrv6n7imfj3xz809dddy2hdfav0y9qgg";
+       version = "50200.7.0";
+       sha256 = "1zqvfp0miql9ha9fcvr84p7yhli5br9kmsn080h058zknyabrl8p";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -164724,8 +167990,8 @@ self: {
      }:
      mkDerivation {
        pname = "mattermost-api-qc";
-       version = "50200.5.0";
-       sha256 = "0gzjzfzfipvpk61zilxw9a1xsgm10lrsl26rvr4h4gjw6mws7bg8";
+       version = "50200.7.0";
+       sha256 = "0gzrbgzynzr5g234dm1qbs9xkddfvm08rv1n12qx0191fzicbf25";
        libraryHaskellDepends = [
          base containers mattermost-api QuickCheck text time
        ];
@@ -165047,6 +168313,33 @@ self: {
        broken = true;
      }) {};
 
+  "mcmc" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, criterion
+     , data-default, directory, double-conversion, hspec, hspec-discover
+     , log-domain, microlens, mwc-random, QuickCheck, statistics, time
+     , transformers, vector, zlib
+     }:
+     mkDerivation {
+       pname = "mcmc";
+       version = "0.2.3";
+       sha256 = "14xf8l3ka7s34sa4rs4xsy7h5jxpl3fhsn959dvf17nsv252s6p8";
+       libraryHaskellDepends = [
+         aeson base bytestring containers data-default directory
+         double-conversion log-domain microlens mwc-random statistics time
+         transformers vector zlib
+       ];
+       testHaskellDepends = [
+         base directory hspec hspec-discover log-domain mwc-random
+         QuickCheck statistics vector
+       ];
+       testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [
+         base criterion log-domain microlens mwc-random statistics vector
+       ];
+       description = "Sample from a posterior using Markov chain Monte Carlo";
+       license = stdenv.lib.licenses.gpl3Plus;
+     }) {};
+
   "mcmc-samplers" = callPackage
     ({ mkDerivation, base, containers, hakaru, hmatrix, mwc-random
      , primitive, statistics
@@ -165201,6 +168494,28 @@ self: {
        broken = true;
      }) {};
 
+  "mealy" = callPackage
+    ({ mkDerivation, adjunctions, backprop, base, containers, doctest
+     , folds, generic-lens, hmatrix, lens, mwc-probability, mwc-random
+     , numhask, numhask-array, primitive, profunctors, tdigest, text
+     , vector, vector-algorithms
+     }:
+     mkDerivation {
+       pname = "mealy";
+       version = "0.0.1";
+       sha256 = "0z7hf1blzhgrjmrf7s2dpgmg73157j476g17i7m52zgfgq4vmym9";
+       libraryHaskellDepends = [
+         adjunctions backprop base containers folds generic-lens hmatrix
+         lens mwc-probability mwc-random numhask numhask-array primitive
+         profunctors tdigest text vector vector-algorithms
+       ];
+       testHaskellDepends = [ base doctest numhask ];
+       description = "See readme.md";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "means" = callPackage
     ({ mkDerivation, base, semigroups }:
      mkDerivation {
@@ -165309,6 +168624,32 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "medea_1_2_0" = callPackage
+    ({ mkDerivation, aeson, algebraic-graphs, base, bytestring
+     , containers, deepseq, directory, filepath, free, hashable, hspec
+     , hspec-core, megaparsec, microlens-ghc, mtl, nonempty-containers
+     , parser-combinators, QuickCheck, quickcheck-instances, scientific
+     , smash, text, unordered-containers, vector, vector-instances
+     }:
+     mkDerivation {
+       pname = "medea";
+       version = "1.2.0";
+       sha256 = "019jfz29gz3d06b5yi7fygqa79lp6c6vbzxcb5ka7d8w0zv7w60v";
+       libraryHaskellDepends = [
+         aeson algebraic-graphs base bytestring containers deepseq free
+         hashable megaparsec microlens-ghc mtl nonempty-containers
+         parser-combinators scientific smash text unordered-containers
+         vector vector-instances
+       ];
+       testHaskellDepends = [
+         aeson base bytestring directory filepath hspec hspec-core mtl
+         QuickCheck quickcheck-instances text unordered-containers vector
+       ];
+       description = "A schema language for JSON";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "mediabus" = callPackage
     ({ mkDerivation, array, async, base, binary, bytestring, cereal
      , conduit, conduit-combinators, conduit-extra, containers
@@ -165512,8 +168853,8 @@ self: {
      }:
      mkDerivation {
        pname = "mega-sdist";
-       version = "0.4.0.1";
-       sha256 = "191saxmdh3705rhci7lz7qzcdzv2zvw9bwa7f5d62500azi13j8v";
+       version = "0.4.1.0";
+       sha256 = "124wa7v8vx82gd04brgv3kphyqs0p5x9hp1vlp39bkha9w1yab7w";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -165526,6 +168867,17 @@ self: {
        broken = true;
      }) {};
 
+  "megalisp" = callPackage
+    ({ mkDerivation, base, megaparsec, mtl, text }:
+     mkDerivation {
+       pname = "megalisp";
+       version = "0.0.1";
+       sha256 = "158j4wc9j8vpi3k095nfsimjavfmrxgzil3d4a3yqphpk96fz9ci";
+       libraryHaskellDepends = [ base megaparsec mtl text ];
+       description = "lisp parser using mega-parsec";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "megaparsec_7_0_5" = callPackage
     ({ mkDerivation, base, bytestring, case-insensitive, containers
      , criterion, deepseq, mtl, parser-combinators, scientific, text
@@ -165567,6 +168919,27 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
+  "megaparsec_9_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, case-insensitive, containers
+     , criterion, deepseq, mtl, parser-combinators, scientific, text
+     , transformers, weigh
+     }:
+     mkDerivation {
+       pname = "megaparsec";
+       version = "9.0.0";
+       sha256 = "1x10f2b14ww306am9w06s23va26ab3vwdh0jk67ql6ybigxh0asi";
+       libraryHaskellDepends = [
+         base bytestring case-insensitive containers deepseq mtl
+         parser-combinators scientific text transformers
+       ];
+       benchmarkHaskellDepends = [
+         base containers criterion deepseq text weigh
+       ];
+       description = "Monadic parser combinators";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "megaparsec-tests" = callPackage
     ({ mkDerivation, base, bytestring, case-insensitive, containers
      , hspec, hspec-discover, hspec-expectations, hspec-megaparsec
@@ -165593,6 +168966,31 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
+  "megaparsec-tests_9_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, case-insensitive, containers
+     , hspec, hspec-discover, hspec-expectations, hspec-megaparsec
+     , megaparsec, mtl, parser-combinators, QuickCheck, scientific, text
+     , transformers
+     }:
+     mkDerivation {
+       pname = "megaparsec-tests";
+       version = "9.0.0";
+       sha256 = "0zm246r8k48mj5v2dxjan7dsrcnw54bcm27swi5mh8c0yb3vcvab";
+       libraryHaskellDepends = [
+         base bytestring containers hspec hspec-expectations
+         hspec-megaparsec megaparsec mtl QuickCheck text transformers
+       ];
+       testHaskellDepends = [
+         base bytestring case-insensitive containers hspec
+         hspec-expectations hspec-megaparsec megaparsec mtl
+         parser-combinators QuickCheck scientific text transformers
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Test utilities and the test suite of Megaparsec";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "meldable-heap" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -166098,8 +169496,8 @@ self: {
        pname = "mercury-api";
        version = "0.1.0.2";
        sha256 = "0ybpc1kai85rflgdr80jd8cvwxaxmbphv82nz2p17502jrmdfkhg";
-       revision = "4";
-       editedCabalFile = "1bx3xrafmf82b9wlvhggv87fwqgpgqxjdgkk9r5b323m9ci2gign";
+       revision = "5";
+       editedCabalFile = "15xgb00cv8srnhfgh7v01b2qijcwapwsbx92jbdss525n3j74d48";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -166136,21 +169534,6 @@ self: {
      }) {};
 
   "mergeful" = callPackage
-    ({ mkDerivation, aeson, base, containers, mtl, text, time, validity
-     , validity-containers, validity-time
-     }:
-     mkDerivation {
-       pname = "mergeful";
-       version = "0.1.0.0";
-       sha256 = "1cw3mrbza5fqrh4qg4bjzw4dv23vwb0aglh0dcwzmzsl23hnvhad";
-       libraryHaskellDepends = [
-         aeson base containers mtl text time validity validity-containers
-         validity-time
-       ];
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "mergeful_0_2_0_0" = callPackage
     ({ mkDerivation, aeson, base, containers, deepseq, mtl, text, time
      , validity, validity-containers, validity-time
      }:
@@ -166163,7 +169546,6 @@ self: {
          validity-containers validity-time
        ];
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "mergeful-persistent" = callPackage
@@ -166198,27 +169580,12 @@ self: {
      }:
      mkDerivation {
        pname = "mergeless";
-       version = "0.2.0.2";
-       sha256 = "0rrqligrrswmyy1gg6ji2q28rb30y1y97sa2bfxd9rgvbx8fgr2g";
-       libraryHaskellDepends = [
-         aeson base containers deepseq mtl validity validity-containers
-       ];
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "mergeless_0_3_0_0" = callPackage
-    ({ mkDerivation, aeson, base, containers, deepseq, mtl, validity
-     , validity-containers
-     }:
-     mkDerivation {
-       pname = "mergeless";
        version = "0.3.0.0";
        sha256 = "14kgfh672fywvrjzb9kzhrnw10lxq44216rwniavn68abkg6yx94";
        libraryHaskellDepends = [
          aeson base containers deepseq mtl validity validity-containers
        ];
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "mergeless-persistent" = callPackage
@@ -166469,7 +169836,7 @@ self: {
        version = "0.0.8";
        sha256 = "0rdw0laqx9kypfwzqb4ir18r07sjxgm4pwfs82bjpwq0gf58nzas";
        libraryHaskellDepends = [ arrows base random Stream ];
-       description = "Generalised local search within Haskell, for applications in combinatorial optimisation.";
+       description = "Generalised local search within Haskell, for applications in combinatorial optimisation";
        license = "GPL";
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -166608,6 +169975,94 @@ self: {
        broken = true;
      }) {};
 
+  "metro" = callPackage
+    ({ mkDerivation, base, binary, bytestring, hashable, hslogger, mtl
+     , transformers, unix-time, unliftio, unordered-containers
+     }:
+     mkDerivation {
+       pname = "metro";
+       version = "0.1.0.2";
+       sha256 = "10633v6325sj08aa825ccj793pp50akj1zpwsg097jdb93w30n4s";
+       libraryHaskellDepends = [
+         base binary bytestring hashable hslogger mtl transformers unix-time
+         unliftio unordered-containers
+       ];
+       description = "A simple tcp and udp socket server framework";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "metro-socket" = callPackage
+    ({ mkDerivation, base, bytestring, directory, hashable, hslogger
+     , metro, mtl, network, transformers, unliftio
+     }:
+     mkDerivation {
+       pname = "metro-socket";
+       version = "0.1.0.0";
+       sha256 = "0ph2w4dwkixg5w3m13giy75zcl1f1kd52lrkbx6v0vf595dhgrcf";
+       libraryHaskellDepends = [
+         base bytestring directory hashable hslogger metro mtl network
+         transformers unliftio
+       ];
+       description = "Socket transport for metro";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "metro-transport-crypto" = callPackage
+    ({ mkDerivation, base, binary, bytestring, cryptonite, metro
+     , QuickCheck, quickcheck-instances, text, unliftio
+     }:
+     mkDerivation {
+       pname = "metro-transport-crypto";
+       version = "0.1.0.0";
+       sha256 = "1w7h47lrmw1zzdi8bp5rxrxidpxl1pf9q7ns38mqwf49xl9yyvz7";
+       libraryHaskellDepends = [
+         base binary bytestring cryptonite metro text unliftio
+       ];
+       testHaskellDepends = [
+         base bytestring cryptonite metro QuickCheck quickcheck-instances
+       ];
+       description = "Crypto transport for metro";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "metro-transport-tls" = callPackage
+    ({ mkDerivation, base, bytestring, data-default-class, metro, pem
+     , tls, x509, x509-store, x509-validation
+     }:
+     mkDerivation {
+       pname = "metro-transport-tls";
+       version = "0.1.0.0";
+       sha256 = "1lsw4s7h4s1m2hm5bwhq2nx0acnaw1377ifdf0xphb1rzgbdacvb";
+       libraryHaskellDepends = [
+         base bytestring data-default-class metro pem tls x509 x509-store
+         x509-validation
+       ];
+       description = "TLS transport for metro";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "metro-transport-websockets" = callPackage
+    ({ mkDerivation, base, bytestring, metro, websockets }:
+     mkDerivation {
+       pname = "metro-transport-websockets";
+       version = "0.1.0.0";
+       sha256 = "1jyy3sssz8ixwqdlf8zph05pfrm6qnf56sjsq8bx6yah9psy92dg";
+       libraryHaskellDepends = [ base bytestring metro websockets ];
+       description = "Websockets transport for metro";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "metro-transport-xor" = callPackage
+    ({ mkDerivation, base, bytestring, metro, unliftio }:
+     mkDerivation {
+       pname = "metro-transport-xor";
+       version = "0.1.0.0";
+       sha256 = "1hx839sxd2lrx6vsxswi4i88x1d1489jcdmh2vbnc2dvnssnqcpv";
+       libraryHaskellDepends = [ base bytestring metro unliftio ];
+       description = "XOR transport for metro";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "metronome" = callPackage
     ({ mkDerivation, base, data-lens, data-lens-template, hosc, stm }:
      mkDerivation {
@@ -166723,6 +170178,34 @@ self: {
        broken = true;
      }) {};
 
+  "micro-gateway" = callPackage
+    ({ mkDerivation, aeson, base, binary, bytestring, case-insensitive
+     , containers, cookie, data-default-class, hslogger, http-client
+     , http-types, network-uri, optparse-applicative, scotty, signature
+     , stm, streaming-commons, text, time, unix-time
+     , unordered-containers, wai, wai-cors, wai-websockets, warp
+     , websockets, yaml
+     }:
+     mkDerivation {
+       pname = "micro-gateway";
+       version = "1.1.0.0";
+       sha256 = "1jb703vcqncxw12cmgmyg63rw6fmfa4mv1685z6vab3xzq7kvxv7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base binary bytestring case-insensitive containers cookie
+         hslogger http-client http-types scotty signature stm text time
+         unix-time unordered-containers wai websockets
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring data-default-class http-client network-uri
+         optparse-applicative scotty streaming-commons text wai-cors
+         wai-websockets warp websockets yaml
+       ];
+       description = "A Micro service gateway";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "micro-recursion-schemes" = callPackage
     ({ mkDerivation, base, cpphs, HUnit, template-haskell
      , th-abstraction
@@ -166893,8 +170376,8 @@ self: {
      }:
      mkDerivation {
        pname = "microlens-aeson";
-       version = "2.3.0.4";
-       sha256 = "0w630kk5bnily1qh41081gqgbwmslrh5ad21899gwnb2r3jripyw";
+       version = "2.3.1";
+       sha256 = "074mzpk7av6i0xf7xy42jpzgljlmyw805md1vz4sqy85m99f0ikr";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring deepseq hashable microlens
          scientific text unordered-containers vector
@@ -167342,25 +170825,6 @@ self: {
      }) {};
 
   "mighty-metropolis" = callPackage
-    ({ mkDerivation, base, containers, kan-extensions, mcmc-types
-     , mwc-probability, pipes, primitive, transformers
-     }:
-     mkDerivation {
-       pname = "mighty-metropolis";
-       version = "1.2.0";
-       sha256 = "1h3ik18vnya6sm0x1s6hxxx5hky0wm2pqm2g3hllcj02cm5hng4d";
-       libraryHaskellDepends = [
-         base kan-extensions mcmc-types mwc-probability pipes primitive
-         transformers
-       ];
-       testHaskellDepends = [ base containers mwc-probability ];
-       description = "The Metropolis algorithm";
-       license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "mighty-metropolis_2_0_0" = callPackage
     ({ mkDerivation, base, containers, foldl, hspec, kan-extensions
      , mcmc-types, mwc-probability, mwc-random, pipes, primitive
      , transformers
@@ -167515,19 +170979,29 @@ self: {
      }) {};
 
   "mime-mail-ses" = callPackage
-    ({ mkDerivation, base, base64-bytestring, byteable, bytestring
-     , conduit, cryptohash, http-client, http-client-tls, http-conduit
-     , http-types, mime-mail, old-locale, text, time, transformers
-     , xml-conduit, xml-types
+    ({ mkDerivation, base, base16-bytestring, base64-bytestring
+     , byteable, bytestring, case-insensitive, conduit, cryptohash
+     , http-client, http-client-tls, http-conduit, http-types, mime-mail
+     , optparse-applicative, tasty, tasty-hunit, text, time, xml-conduit
+     , xml-types
      }:
      mkDerivation {
        pname = "mime-mail-ses";
-       version = "0.4.1";
-       sha256 = "1w6k4cm5yab9dhg7yn6mp7jzk1zdwpnzc6c1xb3vz3rdwp8jjvx7";
+       version = "0.4.3";
+       sha256 = "0v4b0y28kf7mx80z16j82wmaccpggkc262f7cn9g9j2nfayy2xhj";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
-         base base64-bytestring byteable bytestring conduit cryptohash
-         http-client http-client-tls http-conduit http-types mime-mail
-         old-locale text time transformers xml-conduit xml-types
+         base base16-bytestring base64-bytestring byteable bytestring
+         case-insensitive conduit cryptohash http-client http-client-tls
+         http-conduit http-types mime-mail text time xml-conduit xml-types
+       ];
+       executableHaskellDepends = [
+         base http-client http-client-tls mime-mail optparse-applicative
+         text
+       ];
+       testHaskellDepends = [
+         base bytestring case-insensitive tasty tasty-hunit time
        ];
        description = "Send mime-mail messages via Amazon SES";
        license = stdenv.lib.licenses.mit;
@@ -167567,8 +171041,8 @@ self: {
      }:
      mkDerivation {
        pname = "min-max-pqueue";
-       version = "0.1.0.1";
-       sha256 = "09lby8qvjrcdp7ygy4a4dcw8w3y689qzazbcd55249z7ljjw731s";
+       version = "0.1.0.2";
+       sha256 = "0nbvd8w4wj00dbh1zknxqb28wlxi87k3z3snjfqg7zz7j7mvy0jp";
        libraryHaskellDepends = [ base containers ];
        testHaskellDepends = [ base containers hedgehog ];
        benchmarkHaskellDepends = [
@@ -167646,26 +171120,6 @@ self: {
      }) {};
 
   "mini-egison" = callPackage
-    ({ mkDerivation, base, containers, haskell-src-meta, hspec, primes
-     , regex-compat, sort, split, template-haskell
-     }:
-     mkDerivation {
-       pname = "mini-egison";
-       version = "0.1.6";
-       sha256 = "08348nw7xnni81iwcah43x5hi0hyqz286g3zpmkhja8if99l59lj";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base containers haskell-src-meta regex-compat split
-         template-haskell
-       ];
-       executableHaskellDepends = [ base sort ];
-       testHaskellDepends = [ base hspec primes ];
-       description = "Template Haskell Implementation of Egison Pattern Matching";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "mini-egison_1_0_0" = callPackage
     ({ mkDerivation, base, egison-pattern-src
      , egison-pattern-src-th-mode, haskell-src-exts, haskell-src-meta
      , hspec, mtl, primes, recursion-schemes, sort, template-haskell
@@ -167684,7 +171138,6 @@ self: {
        testHaskellDepends = [ base hspec primes ];
        description = "Template Haskell Implementation of Egison Pattern Matching";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "miniball" = callPackage
@@ -167821,6 +171274,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "minimorph_0_3_0_0" = callPackage
+    ({ mkDerivation, base, HUnit, test-framework, test-framework-hunit
+     , text
+     }:
+     mkDerivation {
+       pname = "minimorph";
+       version = "0.3.0.0";
+       sha256 = "1jq2yrvhknnbc4b44nk2k6ynivn6s2j43w8bq1vi8gix7k4sazf4";
+       libraryHaskellDepends = [ base text ];
+       testHaskellDepends = [
+         base HUnit test-framework test-framework-hunit text
+       ];
+       description = "English spelling functions with an emphasis on simplicity";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "minimung" = callPackage
     ({ mkDerivation, base, GLUT, haskell98, unix }:
      mkDerivation {
@@ -167984,7 +171454,7 @@ self: {
          base containers directory filepath monads-tf parsec pretty
          transformers xhtml
        ];
-       description = "an interpreter for an operational semantics for the STG machine.";
+       description = "an interpreter for an operational semantics for the STG machine";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -168021,6 +171491,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "miniutter_0_5_1_1" = callPackage
+    ({ mkDerivation, base, binary, containers, HUnit, minimorph
+     , test-framework, test-framework-hunit, text
+     }:
+     mkDerivation {
+       pname = "miniutter";
+       version = "0.5.1.1";
+       sha256 = "126gwbii4j8j778h7c8vwapn6dya8phbjja37pys4kly0p877mp4";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [ base binary containers minimorph text ];
+       testHaskellDepends = [
+         base containers HUnit test-framework test-framework-hunit text
+       ];
+       description = "Simple English clause creation from arbitrary words";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "minizinc-process" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, directory
      , hashable, process-extras, stringsearch, text
@@ -168141,6 +171629,8 @@ self: {
        executableHaskellDepends = [ monad-loops regex-base regex-pcre ];
        description = "fortune-mod clone";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "mismi-core" = callPackage
@@ -168255,8 +171745,8 @@ self: {
      }:
      mkDerivation {
        pname = "miso";
-       version = "1.4.0.0";
-       sha256 = "067z49ial3dwkbcza54aivdh8r4yx54zmpyxmd6mpyqlv96dv8gc";
+       version = "1.6.0.0";
+       sha256 = "1mzsih2hga62sf33m4cwf1v0107p2ydc32wq7n3hsapzx69sm2j3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -168267,15 +171757,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "miso_1_5_2_0" = callPackage
+  "miso_1_7_1_0" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, http-api-data
      , http-types, lucid, network-uri, servant, servant-lucid, text
      , transformers, vector
      }:
      mkDerivation {
        pname = "miso";
-       version = "1.5.2.0";
-       sha256 = "0lj0phl6zw7rqr60z06n0dmi6svsxky7krd4i88mfz0ypcvq582v";
+       version = "1.7.1.0";
+       sha256 = "1hkfcinwymrff8mmvywhnlzbj5804hwkk4rhzxzhzsycdf4v7a41";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -168304,8 +171794,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "miso-examples";
-       version = "1.5.2.0";
-       sha256 = "0qjppkz1fh5ygjdbjh4mymplxwy3rz01w047hyvx6ysyr4l0vnvg";
+       version = "1.7.1.0";
+       sha256 = "1z6zcydai6k9hj1phws1axdcbvdplhxv833is7pzfv8sq9mfyfsc";
        isLibrary = false;
        isExecutable = true;
        description = "A tasty Haskell front-end framework";
@@ -168412,24 +171902,25 @@ self: {
 
   "miv" = callPackage
     ({ mkDerivation, aeson, async, base, concurrent-output, directory
-     , ghc-prim, hashable, hspec, monad-parallel, process, text, time
-     , unordered-containers, yaml
+     , filepath, ghc-prim, hashable, hspec, monad-parallel, process
+     , text, time, unix-compat, unordered-containers, xdg-basedir, yaml
      }:
      mkDerivation {
        pname = "miv";
-       version = "0.3.0";
-       sha256 = "1s4xkr6mrlwvmxh4v63yzljsz96v5fy9mws8xwmbybqrlpqgc5qy";
+       version = "0.4.2";
+       sha256 = "0yhfinygsb2fnjspg87fx447kajrbldhddm24vxl41741xmwjl8a";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         aeson async base concurrent-output directory ghc-prim hashable
-         monad-parallel process text time unordered-containers yaml
+         aeson async base concurrent-output directory filepath ghc-prim
+         hashable monad-parallel process text time unix-compat
+         unordered-containers xdg-basedir yaml
        ];
        testHaskellDepends = [
          aeson base directory ghc-prim hashable hspec monad-parallel process
          text time unordered-containers yaml
        ];
-       description = "Manage Vim plugins with command";
+       description = "Vim plugin manager written in Haskell";
        license = stdenv.lib.licenses.mit;
      }) {};
 
@@ -168470,8 +171961,8 @@ self: {
      }:
      mkDerivation {
        pname = "mixed-types-num";
-       version = "0.4.0.1";
-       sha256 = "10fkqb4d534nr5yqdybmvrbg3alfjvki4qxg20ma8mwxyiz4wc5g";
+       version = "0.4.0.2";
+       sha256 = "0kirxpnmwwnbxamwpzrxyx69n482xhifqpr5id73pfni7lrd126p";
        libraryHaskellDepends = [
          base hspec hspec-smallcheck mtl QuickCheck smallcheck
          template-haskell
@@ -168633,8 +172124,8 @@ self: {
        pname = "mmark";
        version = "0.0.7.2";
        sha256 = "1wwszzba6fvg0r4q5z2dzashim0nkaxzx4rmjl216kdi08jkp7mm";
-       revision = "1";
-       editedCabalFile = "15mjdasllgy543ipfwapaf3r8lz6i9sxh9ry7xbs0j1gg81px6h6";
+       revision = "3";
+       editedCabalFile = "1ffa76pz544pa3s764lnc38rdmfccyn8z6zn1w76pqb01p0f9k9p";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base case-insensitive containers deepseq dlist email-validate
@@ -168661,8 +172152,8 @@ self: {
        pname = "mmark-cli";
        version = "0.0.5.0";
        sha256 = "15qrp2q1flx9csqvj8zx9w1jqg8pwfi0v7wpia7n7vg09jgydhby";
-       revision = "3";
-       editedCabalFile = "03n7i551lagr4b6587c34ic6c4d9sn9kmnzkff2x1klqaxgb88ld";
+       revision = "5";
+       editedCabalFile = "1ncyh564gk6fhirx97jnr6v2nw3k69kngxd3gbn9wbi6hm6zz238";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -168683,8 +172174,8 @@ self: {
        pname = "mmark-ext";
        version = "0.2.1.2";
        sha256 = "1s44vznj8hkk7iymnzczbglxnw1q84gmm8q9yiwh0jkiw4kdi91c";
-       revision = "1";
-       editedCabalFile = "10dlh96l6fdbpl1slr8v022735z9zkdszd1aziid5ml3gf63ssd8";
+       revision = "3";
+       editedCabalFile = "02i6577qislr0qvgmfamcixpxgb7bh68lg18n3vkq6xbnjxdpwpx";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base foldl ghc-syntax-highlighter lucid microlens mmark modern-uri
@@ -168767,8 +172258,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmsyn6ukr";
-       version = "0.7.3.0";
-       sha256 = "078g7npfal2qry5agqrr13252y7c1n75s0bykdn5s0p5wy5812mj";
+       version = "0.8.1.0";
+       sha256 = "0r5lnx1m57kjfb1cfm9a22l9kn552y6vpfbkxpffi03ni407q65q";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -168788,8 +172279,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmsyn7h";
-       version = "0.7.6.0";
-       sha256 = "0z8r6d7my2hbp8g2l3258461f53kx8zm3fzyq605vk4y9z6k6icb";
+       version = "0.8.0.0";
+       sha256 = "0mj96p3f96brv7cw3mkigngxnmqcn9r1yfghdx1jplrw5wycy80j";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -168810,8 +172301,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmsyn7l";
-       version = "0.6.1.0";
-       sha256 = "194rzng4akd22lb7azpapwbpmc819scsgj0rq160fs9vvl3ji56d";
+       version = "0.8.0.0";
+       sha256 = "0w1k89phzxyq2nwzr0vn313rlp0f7d62vhdvq113pqszbdbjh6gd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -168828,8 +172319,8 @@ self: {
     ({ mkDerivation, base, mmsyn2, mmsyn5, mmsyn6ukr, vector }:
      mkDerivation {
        pname = "mmsyn7s";
-       version = "0.6.7.0";
-       sha256 = "14siy618rby0x9s94cqlpn4ymx6d589vb9f3mnqly7ykf53rwbi3";
+       version = "0.8.0.0";
+       sha256 = "0brcmmlvdd294y35gby1qnb5b5h5mcn6xgwgvffxfmhif7nyxmc5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base mmsyn2 mmsyn5 mmsyn6ukr vector ];
@@ -168844,8 +172335,8 @@ self: {
      }:
      mkDerivation {
        pname = "mmsyn7ukr";
-       version = "0.15.5.0";
-       sha256 = "1bpg1c8mvy51ycg1cx1haskidg3zzpdf29dpm8p2fk4bjc70v0w2";
+       version = "0.17.0.0";
+       sha256 = "069pyv8g9gdzzvnmdqmcrqnxf5zglrqbmcn2v6frfxj7ibd4awif";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -168940,6 +172431,24 @@ self: {
        broken = true;
      }) {};
 
+  "mock-httpd" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, case-insensitive
+     , filepath, http-types, relude, text, wai, warp, yaml
+     }:
+     mkDerivation {
+       pname = "mock-httpd";
+       version = "0.0.0.0";
+       sha256 = "0mv669gvn61by4j7sd4w2hvzr3vpa0szrhgzdciv5g1a0gsh3kk7";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson async base bytestring case-insensitive filepath http-types
+         relude text wai warp yaml
+       ];
+       description = "A HTTP server for testing HTTP clients";
+       license = stdenv.lib.licenses.bsd2;
+     }) {};
+
   "mockazo" = callPackage
     ({ mkDerivation, base, constraints, hspec, multistate, relude
      , template-haskell
@@ -168979,17 +172488,20 @@ self: {
      }) {};
 
   "mod" = callPackage
-    ({ mkDerivation, base, deepseq, integer-gmp, quickcheck-classes
-     , quickcheck-classes-base, semirings, tasty, tasty-quickcheck, time
+    ({ mkDerivation, base, deepseq, integer-gmp, primitive
+     , quickcheck-classes, quickcheck-classes-base, semirings, tasty
+     , tasty-quickcheck, time, vector
      }:
      mkDerivation {
        pname = "mod";
-       version = "0.1.1.0";
-       sha256 = "03v942bd1hqcvikg71639f1p4s2zrx3zpf1yhwfrkl22c62cy99k";
-       libraryHaskellDepends = [ base deepseq integer-gmp semirings ];
+       version = "0.1.2.0";
+       sha256 = "116dm3cid2hh4gii4k806670xz7syxajxmbxka61d43f3719z65y";
+       libraryHaskellDepends = [
+         base deepseq integer-gmp primitive semirings vector
+       ];
        testHaskellDepends = [
-         base quickcheck-classes quickcheck-classes-base semirings tasty
-         tasty-quickcheck
+         base primitive quickcheck-classes quickcheck-classes-base semirings
+         tasty tasty-quickcheck vector
        ];
        benchmarkHaskellDepends = [ base time ];
        description = "Fast type-safe modular arithmetic";
@@ -169056,8 +172568,8 @@ self: {
        pname = "modern-uri";
        version = "0.3.2.0";
        sha256 = "162s88yayalh4vlngman5gz3k0gnszxrksh1wk5227qihbpsiwhb";
-       revision = "1";
-       editedCabalFile = "13a9wh31pm151d1xz00wp2nfs73s2ysr1g97vx91rl2caak14ab0";
+       revision = "3";
+       editedCabalFile = "1md8x7ql885g3n55yfd2kgs4np74d7s6rdzlw69bs4zk8074b4q0";
        libraryHaskellDepends = [
          base bytestring containers contravariant deepseq exceptions
          megaparsec mtl profunctors QuickCheck reflection tagged
@@ -169133,13 +172645,13 @@ self: {
      }) {};
 
   "modular-arithmetic" = callPackage
-    ({ mkDerivation, base, doctest }:
+    ({ mkDerivation, base, doctest, typelits-witnesses }:
      mkDerivation {
        pname = "modular-arithmetic";
-       version = "1.2.1.5";
-       sha256 = "0nrnjyqpyy2c5479wjw5ihkwmiingpw60isdladfgi1cis36pq5f";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base doctest ];
+       version = "2.0.0.1";
+       sha256 = "132cxgrw6lsdkpqi69v1f9jgl5icslwi5qclv4rc03hn0mcnl2sz";
+       libraryHaskellDepends = [ base typelits-witnesses ];
+       testHaskellDepends = [ base doctest typelits-witnesses ];
        description = "A type for integers modulo some constant";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -169568,6 +173080,8 @@ self: {
        ];
        description = "monad-classes based typeclass for Ollie's logging-effect LoggingT";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "monad-codec" = callPackage
@@ -169628,6 +173142,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "monad-control-identity" = callPackage
+    ({ mkDerivation, base, monad-control, transformers
+     , transformers-base
+     }:
+     mkDerivation {
+       pname = "monad-control-identity";
+       version = "0.1.0.3";
+       sha256 = "0nxsyhyvp04xr7js2z8mvmh2w2b2fwv5zzkbgjagm6l51pqpam6q";
+       libraryHaskellDepends = [
+         base monad-control transformers transformers-base
+       ];
+       description = "Stronger classes than monad-control";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "monad-coroutine" = callPackage
     ({ mkDerivation, base, monad-parallel, transformers
      , transformers-compat
@@ -169649,18 +173178,14 @@ self: {
      }:
      mkDerivation {
        pname = "monad-dijkstra";
-       version = "0.1.1.2";
-       sha256 = "1890rnypk3ra4f0f3m7nr31df3x6pmpw6ivid77wj7h9mdp0bdb6";
-       revision = "1";
-       editedCabalFile = "0dwcwwlfkhjl31asr35cy1m26nacz9xjry01cnq1dyaqcg53xjjb";
+       version = "0.1.1.3";
+       sha256 = "13zb3k0rfqpzz3ngmkqhc4zfa6p8nzj9hcsnfilkn8179pwp0qkc";
        libraryHaskellDepends = [
          base containers free mtl psqueues transformers
        ];
        testHaskellDepends = [ base hlint tasty tasty-hspec ];
        description = "A monad transformer for weighted graph searches";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "monad-exception" = callPackage
@@ -169790,6 +173315,20 @@ self: {
        broken = true;
      }) {};
 
+  "monad-introspect" = callPackage
+    ({ mkDerivation, base, coercion-extras, mmorph, mtl, transformers
+     }:
+     mkDerivation {
+       pname = "monad-introspect";
+       version = "0.1.0.0";
+       sha256 = "15c5ind2ddmj7xqps5fvlwl9awvsrpqcwaszlikf697aqjqra1nb";
+       libraryHaskellDepends = [
+         base coercion-extras mmorph mtl transformers
+       ];
+       description = "A reader monad that gives the environment access to the entire transformer stack";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "monad-io-adapter" = callPackage
     ({ mkDerivation, base, exceptions, hspec, monad-control
      , monad-logger, mtl, transformers, transformers-base
@@ -169889,8 +173428,8 @@ self: {
      }:
      mkDerivation {
        pname = "monad-logger";
-       version = "0.3.32";
-       sha256 = "14f1igbrkvwxxyhk58apc7swpzadaimfyaf75hwmsf5xc7xvjxyr";
+       version = "0.3.35";
+       sha256 = "1mrwwv3h3wy84kgphwn6ahjzxab0bzgzzbqla1c3jx02xl9x3q72";
        libraryHaskellDepends = [
          base bytestring conduit conduit-extra exceptions fast-logger
          lifted-base monad-control monad-loops mtl resourcet stm stm-chans
@@ -169942,6 +173481,8 @@ self: {
        pname = "monad-logger-syslog";
        version = "0.1.6.0";
        sha256 = "1n4r0fl043r18683ym3k03sdm3b9wlxfzjgmnxi804kwna639rj3";
+       revision = "1";
+       editedCabalFile = "0177m5h891s49yv924c5yqbfninc6x298vbpmx3fri6cychamgbl";
        libraryHaskellDepends = [
          base bytestring fast-logger hsyslog monad-logger text transformers
        ];
@@ -170033,6 +173574,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "monad-memo_0_5_3" = callPackage
+    ({ mkDerivation, array, base, containers, criterion, primitive
+     , QuickCheck, random, test-framework, test-framework-quickcheck2
+     , transformers, vector
+     }:
+     mkDerivation {
+       pname = "monad-memo";
+       version = "0.5.3";
+       sha256 = "1fqdqqv6gp14vf2kkac34bbn3vaxq80yjz2dgp6n89dcfdkc9y0n";
+       libraryHaskellDepends = [
+         array base containers primitive transformers vector
+       ];
+       testHaskellDepends = [
+         array base containers primitive QuickCheck random test-framework
+         test-framework-quickcheck2 transformers vector
+       ];
+       benchmarkHaskellDepends = [
+         array base containers criterion primitive transformers vector
+       ];
+       description = "Memoization monad transformer";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "monad-mersenne-random" = callPackage
     ({ mkDerivation, base, mersenne-random-pure64 }:
      mkDerivation {
@@ -170434,14 +173999,14 @@ self: {
      }) {};
 
   "monad-supply" = callPackage
-    ({ mkDerivation, base, mtl }:
+    ({ mkDerivation, base, mtl, transformers }:
      mkDerivation {
        pname = "monad-supply";
-       version = "0.7";
-       sha256 = "1786rj4n0rrjpp07gn2y8vwpf6ijkjaim1q34rq7lvbjx1fhr2z5";
-       libraryHaskellDepends = [ base mtl ];
+       version = "0.9";
+       sha256 = "1jknppcw8r0fpqnrgw1y8xjyx5xifzl1dkc0s2ffwkgij4x75saa";
+       libraryHaskellDepends = [ base mtl transformers ];
        description = "Stateful supply monad";
-       license = stdenv.lib.licenses.mit;
+       license = "unknown";
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -170705,14 +174270,16 @@ self: {
      }:
      mkDerivation {
        pname = "monadic-recursion-schemes";
-       version = "0.1.11.0";
-       sha256 = "0gi9g4vwd2wyff2gjjbjyd1hmx8hv55qmj6kl3c0f3mafxg5vfyj";
+       version = "0.1.12.0";
+       sha256 = "0h5syc9p4imlf03qfb1rjsk4rq2kqry522zvw67x122q1xzdnwnw";
        libraryHaskellDepends = [
          base comonad containers free mtl recursion-schemes transformers
        ];
        testHaskellDepends = [ base ];
        description = "Recursion Schemes for Monadic version";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "monadiccp" = callPackage
@@ -170850,7 +174417,7 @@ self: {
        revision = "1";
        editedCabalFile = "11v5zdsb9mp1rxvgcrxcr2xnc610xi16krwa9r4i5d6njmphfbdp";
        libraryHaskellDepends = [ base ];
-       description = "Haskell98 partial maps and filters over MonadPlus.";
+       description = "Haskell98 partial maps and filters over MonadPlus";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -171122,8 +174689,8 @@ self: {
      }:
      mkDerivation {
        pname = "mono-traversable-instances";
-       version = "0.1.0.0";
-       sha256 = "0zh81hvqnracil2nvkx14xzwv9vavsnx739acp6gycdyrs5jpzxm";
+       version = "0.1.1.0";
+       sha256 = "1fnkz8dlfz0bl7mx2p5y96w91zdhdvnzx1a9a8zlfxz06mwarhgb";
        libraryHaskellDepends = [
          base comonad containers dlist dlist-instances mono-traversable
          semigroupoids semigroups transformers vector-instances
@@ -171285,6 +174852,8 @@ self: {
        pname = "monoidal-containers";
        version = "0.6.0.1";
        sha256 = "1j5mfs0ysvwk3jsmq4hlj4l3kasfc28lk1b3xaymf9dw48ac5j82";
+       revision = "1";
+       editedCabalFile = "06agyfnhr4cr42m4zj7xwl5an3skbjvba53a5i6sl9890gx7mml3";
        libraryHaskellDepends = [
          aeson base containers deepseq hashable lens newtype semialign
          semigroups these unordered-containers
@@ -171588,59 +175157,41 @@ self: {
      }) {morfeusz = null;};
 
   "morley" = callPackage
-    ({ mkDerivation, aeson, aeson-casing, aeson-pretty, base-noprelude
-     , base16-bytestring, base58-bytestring, binary, bytestring
-     , constraints, containers, cryptonite, data-default, directory
-     , filepath, first-class-families, fmt, formatting, gauge, ghc-prim
-     , gitrev, hex-text, hspec, hspec-expectations, HUnit, interpolate
-     , lens, megaparsec, memory, morley-prelude, mtl, named
+    ({ mkDerivation, aeson, aeson-casing, aeson-pretty, base
+     , base58-bytestring, binary, bytestring, constraints, containers
+     , cryptonite, data-default, first-class-families, fmt
+     , generic-deriving, gitrev, haskeline, hex-text, interpolate, lens
+     , megaparsec, memory, morley-prelude, mtl, named
      , optparse-applicative, parser-combinators, pretty-simple
      , QuickCheck, quickcheck-arbitrary-adt, quickcheck-instances
-     , show-type, singletons, syb, tasty, tasty-ant-xml, tasty-discover
-     , tasty-hspec, tasty-hunit-compat, tasty-quickcheck
-     , template-haskell, text, tezos-bake-monitor-lib, th-lift
-     , th-lift-instances, time, timerep, transformers-compat
-     , unordered-containers, vector, vinyl, wl-pprint-text
+     , semigroups, show-type, singletons, syb, template-haskell, text
+     , th-lift, th-lift-instances, time, timerep, transformers-compat
+     , unordered-containers, vector, vinyl, with-utf8, wl-pprint-text
      }:
      mkDerivation {
        pname = "morley";
-       version = "1.3.0";
-       sha256 = "1h0p9g2radwnpmq7ay5q2gd0xqaw1f1c51mzdv9xqpnbg2zp2w5b";
+       version = "1.7.0";
+       sha256 = "18vc9d44hjr8sadh4fhlmzw6668lbzw7a2wbsmyh817blhk9jg6k";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson aeson-casing aeson-pretty base-noprelude base16-bytestring
-         base58-bytestring binary bytestring constraints containers
-         cryptonite data-default first-class-families fmt formatting
-         ghc-prim gitrev hex-text hspec hspec-expectations HUnit interpolate
-         lens megaparsec memory morley-prelude mtl named
+         aeson aeson-casing aeson-pretty base base58-bytestring binary
+         bytestring constraints containers cryptonite data-default
+         first-class-families fmt generic-deriving gitrev hex-text
+         interpolate lens megaparsec memory morley-prelude mtl named
          optparse-applicative parser-combinators QuickCheck
-         quickcheck-arbitrary-adt quickcheck-instances show-type singletons
-         syb tasty tasty-ant-xml tasty-hunit-compat tasty-quickcheck
-         template-haskell text tezos-bake-monitor-lib th-lift
-         th-lift-instances time timerep transformers-compat
-         unordered-containers vector vinyl wl-pprint-text
+         quickcheck-arbitrary-adt quickcheck-instances semigroups show-type
+         singletons syb template-haskell text th-lift th-lift-instances time
+         timerep transformers-compat unordered-containers vector vinyl
+         with-utf8 wl-pprint-text
        ];
        executableHaskellDepends = [
-         base-noprelude fmt morley-prelude named optparse-applicative
-         pretty-simple
-       ];
-       testHaskellDepends = [
-         aeson base-noprelude bytestring containers data-default directory
-         filepath fmt formatting hex-text hspec hspec-expectations HUnit
-         lens megaparsec morley-prelude QuickCheck quickcheck-arbitrary-adt
-         quickcheck-instances singletons syb tasty tasty-hspec
-         tasty-hunit-compat tasty-quickcheck text unordered-containers
-       ];
-       testToolDepends = [ tasty-discover ];
-       benchmarkHaskellDepends = [
-         base-noprelude containers gauge megaparsec morley-prelude
+         aeson base bytestring fmt haskeline megaparsec morley-prelude named
+         optparse-applicative pretty-simple text vinyl with-utf8
        ];
        description = "Developer tools for the Michelson Language";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {tezos-bake-monitor-lib = null;};
+     }) {};
 
   "morley-prelude" = callPackage
     ({ mkDerivation, base-noprelude, universum }:
@@ -171674,30 +175225,30 @@ self: {
 
   "morpheus-graphql" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, megaparsec
-     , mtl, scientific, tasty, tasty-hunit, template-haskell, text
-     , th-lift-instances, transformers, unordered-containers, uuid
-     , vector, websockets
+     , morpheus-graphql-core, mtl, scientific, tasty, tasty-hunit
+     , template-haskell, text, transformers, unliftio-core
+     , unordered-containers, uuid, vector, websockets
      }:
      mkDerivation {
        pname = "morpheus-graphql";
-       version = "0.10.0";
-       sha256 = "1aan9afsljd83dm8zj3qg5hna80cp3iqzqrlhy0znr2xg9dlswg1";
+       version = "0.12.0";
+       sha256 = "11f0niq2rv6kyrscl0dgi75vcxrz4vhy4yka2jxhrmx6klzi908p";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson base bytestring containers megaparsec mtl scientific
-         template-haskell text th-lift-instances transformers
+         aeson base bytestring containers megaparsec morpheus-graphql-core
+         mtl scientific template-haskell text transformers unliftio-core
          unordered-containers uuid vector websockets
        ];
        testHaskellDepends = [
-         aeson base bytestring containers megaparsec mtl scientific tasty
-         tasty-hunit template-haskell text th-lift-instances transformers
-         unordered-containers uuid vector websockets
+         aeson base bytestring containers megaparsec morpheus-graphql-core
+         mtl scientific tasty tasty-hunit template-haskell text transformers
+         unliftio-core unordered-containers uuid vector websockets
        ];
        description = "Morpheus GraphQL";
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "morpheus-graphql_0_12_0" = callPackage
+  "morpheus-graphql_0_15_1" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, megaparsec
      , morpheus-graphql-core, mtl, scientific, tasty, tasty-hunit
      , template-haskell, text, transformers, unliftio-core
@@ -171705,8 +175256,8 @@ self: {
      }:
      mkDerivation {
        pname = "morpheus-graphql";
-       version = "0.12.0";
-       sha256 = "11f0niq2rv6kyrscl0dgi75vcxrz4vhy4yka2jxhrmx6klzi908p";
+       version = "0.15.1";
+       sha256 = "1vk1rzrham61pnn5c77rvrn0zb02hc1birxdnyz80sjdap5fk8in";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring containers megaparsec morpheus-graphql-core
@@ -171746,19 +175297,27 @@ self: {
      }) {};
 
   "morpheus-graphql-client" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, morpheus-graphql-core
-     , mtl, template-haskell, text, transformers, unordered-containers
+    ({ mkDerivation, aeson, base, bytestring, directory
+     , morpheus-graphql-core, mtl, tasty, tasty-hunit, template-haskell
+     , text, transformers, unordered-containers
      }:
      mkDerivation {
        pname = "morpheus-graphql-client";
-       version = "0.12.0";
-       sha256 = "15sqs0b86m55asj3rzpw52wcrnmlj6x99icx3b171q19i8wi8wh0";
+       version = "0.15.1";
+       sha256 = "1gmyil518qjn5l30kljrm52fznkib1d1qyxnjhyb535jc9f44zhz";
+       enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring morpheus-graphql-core mtl template-haskell
          text transformers unordered-containers
        ];
+       testHaskellDepends = [
+         aeson base bytestring directory morpheus-graphql-core mtl tasty
+         tasty-hunit template-haskell text transformers unordered-containers
+       ];
        description = "Morpheus GraphQL Client";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "morpheus-graphql-core" = callPackage
@@ -171785,6 +175344,32 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "morpheus-graphql-core_0_15_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, directory, hashable
+     , megaparsec, mtl, scientific, tasty, tasty-hunit, template-haskell
+     , text, th-lift-instances, transformers, unordered-containers
+     , vector
+     }:
+     mkDerivation {
+       pname = "morpheus-graphql-core";
+       version = "0.15.1";
+       sha256 = "0nakm33ybrj8y3ci0a4697dvz8q38z17vr2mkcbm7h14h06kg8wr";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bytestring hashable megaparsec mtl scientific
+         template-haskell text th-lift-instances transformers
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring directory hashable megaparsec mtl scientific
+         tasty tasty-hunit template-haskell text th-lift-instances
+         transformers unordered-containers vector
+       ];
+       description = "Morpheus GraphQL Core";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "morphisms" = callPackage
     ({ mkDerivation }:
      mkDerivation {
@@ -172158,8 +175743,8 @@ self: {
     ({ mkDerivation, base, bytestring, c2hs, monad-loops, mpich }:
      mkDerivation {
        pname = "mpi-hs";
-       version = "0.7.1.2";
-       sha256 = "0dhhvvncmsg6rnb16pi1da4zb82hlwyia0l5xxqz6s7518q0amkh";
+       version = "0.7.2.0";
+       sha256 = "1d68py61h09qshzr3lx66cgs2f2kxzdmy3z35hsf96wi9aqz3fr5";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bytestring monad-loops ];
@@ -172269,20 +175854,22 @@ self: {
 
   "mprelude" = callPackage
     ({ mkDerivation, base, devtools, source-constraints, text
-     , text-conversions
+     , unliftio-core
      }:
      mkDerivation {
        pname = "mprelude";
-       version = "0.1.0";
-       sha256 = "0p7zx0b49dp2vd3mx3knfl9gqbh6sj2znc372bmh6ja57g1kv8ds";
+       version = "0.2.0";
+       sha256 = "0llkcbilz138zlrqmsny74g9ybjf665h7w84g0q0rli9dvjnc4bl";
        libraryHaskellDepends = [
-         base source-constraints text text-conversions
+         base source-constraints text unliftio-core
        ];
        testHaskellDepends = [
-         base devtools source-constraints text text-conversions
+         base devtools source-constraints text unliftio-core
        ];
        description = "A minimalish prelude";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "mpretty" = callPackage
@@ -172454,8 +176041,8 @@ self: {
     ({ mkDerivation, base, hspec }:
      mkDerivation {
        pname = "mr-env";
-       version = "0.1.0.3";
-       sha256 = "01dq9wac3jvbhll3kqjid5xy66hf11r382w8c1hhvmfd5j9bp0n4";
+       version = "0.1.0.4";
+       sha256 = "05f89d0lxmi8w7hgdlqrgxh2abnjghcgjhzmra41p28h26adqnfm";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec ];
        description = "A simple way to read environment variables in Haskell";
@@ -172735,8 +176322,8 @@ self: {
      }:
      mkDerivation {
        pname = "mssql-simple";
-       version = "0.6.0.0";
-       sha256 = "1ijaxamabxwabyvh30blscxxgpbmr55far373nhn98w224b1jddy";
+       version = "0.6.0.1";
+       sha256 = "1qrbrvk4df7179zpjngq6r0xvy3jfv4r1vh88m7knzm75wkg77xx";
        libraryHaskellDepends = [
          base binary bytestring hostname ms-tds mtl network template-haskell
          text time tls uuid-types
@@ -173478,8 +177065,8 @@ self: {
      }:
      mkDerivation {
        pname = "multibase";
-       version = "0.1.0.0";
-       sha256 = "1gvbqq4kd94n7dmcbjb3k24z0qrv13qmi8lhs3yxwch3y13qv60m";
+       version = "0.1.1";
+       sha256 = "08r3imyvgi6ahgfqpjcxfr3xg4zj2cvw4g2lzqs04ncipzrw5rnf";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson base base16-bytestring base32-z-bytestring base58-bytestring
@@ -173580,6 +177167,8 @@ self: {
        testHaskellDepends = [ base cryptonite doctest hedgehog ];
        description = "Self-identifying hashes, implementation of <https://github.com/multiformats/multihash>";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "multihash-serialise" = callPackage
@@ -173965,8 +177554,8 @@ self: {
      }:
      mkDerivation {
        pname = "multistate";
-       version = "0.8.0.2";
-       sha256 = "0hypksjacpjgpkgvjn76fd5rgdz7hi6ri36ihdy0bdhpi83jnhn5";
+       version = "0.8.0.3";
+       sha256 = "0sbrm28rjw4qgpn8p0974ljkgi30d4akbngjm58kf96x9zp7ln8g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -174114,15 +177703,17 @@ self: {
      }:
      mkDerivation {
        pname = "murmur3";
-       version = "1.0.3";
-       sha256 = "0ahzspjgiy8p594x0v45bsvf0k9z94nnvvfcpi8lyq5fwvh82b0h";
+       version = "1.0.4";
+       sha256 = "022sadxhnywbzx8crwkgky7kndxwpaddc89nq3ya4a4ikq3qvbhm";
+       revision = "1";
+       editedCabalFile = "130ign0n566nsrzfp4ipb2sy5hq1ymxdlmqb80zbpdc0rdkqh0x0";
        libraryHaskellDepends = [ base bytestring cereal ];
        testHaskellDepends = [
          base base16-bytestring bytestring HUnit QuickCheck test-framework
          test-framework-hunit test-framework-quickcheck2
        ];
        description = "Pure Haskell implementation of the MurmurHash3 x86_32 algorithm";
-       license = stdenv.lib.licenses.publicDomain;
+       license = stdenv.lib.licenses.mit;
      }) {};
 
   "murmurhash3" = callPackage
@@ -174404,21 +177995,22 @@ self: {
      }) {};
 
   "musicScroll" = callPackage
-    ({ mkDerivation, async, base, bytestring, containers, cryptonite
-     , dbus, deepseq, directory, gi-gtk, gi-gtk-hs, gtk3, mtl, req
-     , sqlite-simple, stm, tagsoup, text, transformers, xdg-basedir
+    ({ mkDerivation, async, base, bytestring, containers, contravariant
+     , cryptonite, dbus, deepseq, directory, gi-gtk, gi-gtk-hs, gtk3
+     , mtl, pipes, pipes-concurrency, req, sqlite-simple, stm, tagsoup
+     , text, transformers, xdg-basedir
      }:
      mkDerivation {
        pname = "musicScroll";
-       version = "0.2.3.3";
-       sha256 = "029k470w8mkqjjan615pbdgzln0fbrcqnpwqhzcc3r79kz4yafzj";
+       version = "0.3.1.0";
+       sha256 = "0ssf841r00zgy8h1l2041hs936mpsqpp4nwr3v6w4b5bva2p9jhn";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         async base bytestring containers cryptonite dbus deepseq directory
-         gi-gtk gi-gtk-hs mtl req sqlite-simple stm tagsoup text
-         transformers xdg-basedir
+         async base bytestring containers contravariant cryptonite dbus
+         deepseq directory gi-gtk gi-gtk-hs mtl pipes pipes-concurrency req
+         sqlite-simple stm tagsoup text transformers xdg-basedir
        ];
        executableHaskellDepends = [ base ];
        executablePkgconfigDepends = [ gtk3 ];
@@ -174470,8 +178062,8 @@ self: {
      }:
      mkDerivation {
        pname = "musicw";
-       version = "0.3.2";
-       sha256 = "1r4fp9bda4hn8alv5w95m0a1qp513zkq9a90fjipw1m6lr21xacw";
+       version = "0.3.5.2";
+       sha256 = "0mn5vnjxqkpd2pgjxmchlih74a1m52v06h6f08kyb26l0sjpbfx7";
        libraryHaskellDepends = [
          array base bytestring containers data-default file-embed ghcjs-base
          ghcjs-dom ghcjs-prim json monad-loops mtl safe text time
@@ -174594,17 +178186,17 @@ self: {
      }) {};
 
   "mutable" = callPackage
-    ({ mkDerivation, base, constraints, criterion, deepseq, directory
-     , generic-lens, generic-lens-core, microlens, microlens-th
-     , primitive, reflection, time, transformers, vector, vinyl
+    ({ mkDerivation, base, criterion, deepseq, directory, generic-lens
+     , generic-lens-core, microlens, microlens-th, primitive
+     , template-haskell, time, transformers, vector, vinyl
      }:
      mkDerivation {
        pname = "mutable";
-       version = "0.1.0.1";
-       sha256 = "1hcyijjq0s71jpa3bwxgk3dbnmyfq07cd8bwssj1aykpaaay3k9j";
+       version = "0.2.2.0";
+       sha256 = "03ahbhnn52mc1wsja3x6cc6ykxx4vqfjb5w5lgi4qiqsc387j16q";
        libraryHaskellDepends = [
-         base constraints generic-lens generic-lens-core primitive
-         reflection transformers vector vinyl
+         base generic-lens generic-lens-core primitive template-haskell
+         transformers vector vinyl
        ];
        benchmarkHaskellDepends = [
          base criterion deepseq directory microlens microlens-th time
@@ -174759,29 +178351,13 @@ self: {
      }:
      mkDerivation {
        pname = "mwc-probability";
-       version = "2.2.0";
-       sha256 = "11zfchdsipfik1vrrx53d8h1j6b8lzrndwnnyvcnz1dqlz0dgqdz";
-       libraryHaskellDepends = [
-         base containers mwc-random primitive transformers
-       ];
-       description = "Sampling function-based probability distributions";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "mwc-probability_2_3_0" = callPackage
-    ({ mkDerivation, base, containers, mwc-random, primitive
-     , transformers
-     }:
-     mkDerivation {
-       pname = "mwc-probability";
-       version = "2.3.0";
-       sha256 = "1rk5n015a24bv49m2qnc66iv5hcw99zk9zflqv99pxxbpia6kiyj";
+       version = "2.3.1";
+       sha256 = "15gpvx1rhr24zvj6pfgyy9g2vnhgym5crmz4py3nly2jcmy9k39z";
        libraryHaskellDepends = [
          base containers mwc-random primitive transformers
        ];
        description = "Sampling function-based probability distributions";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "mwc-probability-transition" = callPackage
@@ -174801,6 +178377,8 @@ self: {
        ];
        description = "A Markov stochastic transition operator with logging";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "mwc-random" = callPackage
@@ -174817,14 +178395,37 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "mwc-random_0_15_0_1" = callPackage
+    ({ mkDerivation, base, bytestring, doctest, gauge, math-functions
+     , mersenne-random, primitive, QuickCheck, random, tasty
+     , tasty-hunit, tasty-quickcheck, time, vector
+     }:
+     mkDerivation {
+       pname = "mwc-random";
+       version = "0.15.0.1";
+       sha256 = "1p8c5g4hb72k90ai39rgpn6cr942i6636l1y0zfp9xgjb3v0a2q3";
+       libraryHaskellDepends = [
+         base math-functions primitive random time vector
+       ];
+       testHaskellDepends = [
+         base bytestring doctest primitive QuickCheck random tasty
+         tasty-hunit tasty-quickcheck vector
+       ];
+       benchmarkHaskellDepends = [
+         base gauge mersenne-random random vector
+       ];
+       doCheck = false;
+       description = "Fast, high quality pseudo random number generation";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "mwc-random-accelerate" = callPackage
     ({ mkDerivation, accelerate, base, mwc-random }:
      mkDerivation {
        pname = "mwc-random-accelerate";
-       version = "0.1.0.0";
-       sha256 = "1qrji6b39zp5wrgz5c59xv06l3khhp4fv2ybdmx4ac5i28yx7yih";
-       revision = "3";
-       editedCabalFile = "1a7xx3mcli9fx5lqg1zxwqbrgzvgbssn3vprh4wp8zg58pqic6ic";
+       version = "0.2.0.0";
+       sha256 = "1a8b36l60p29461y0gacgjzarlyrncl54r7x4zh2rgvs2w7mjdc5";
        libraryHaskellDepends = [ accelerate base mwc-random ];
        description = "Generate Accelerate arrays filled with high quality pseudorandom numbers";
        license = stdenv.lib.licenses.bsd3;
@@ -175330,17 +178931,20 @@ self: {
      }) {};
 
   "myxine-client" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, dependent-map
-     , dependent-sum, file-embed, hashable, http-client, http-types, req
-     , template-haskell, text, transformers, unordered-containers
+    ({ mkDerivation, aeson, async, base, blaze-html, blaze-markup
+     , bytestring, constraints, containers, dependent-map, file-embed
+     , hashable, http-client, http-types, lens, modern-uri, mtl, req
+     , salve, some, spoon, template-haskell, text, transformers
+     , unordered-containers
      }:
      mkDerivation {
        pname = "myxine-client";
-       version = "0.0.0.2";
-       sha256 = "1pfvkdc7pa7x16skdcx355l20qk6574nhkjyzpk9jb7i0wqjqsf8";
+       version = "0.0.1.2";
+       sha256 = "0399pig7nw6k1hjw16mjg7lh6z1vd0xhq625wbx76ispwk6gqifb";
        libraryHaskellDepends = [
-         aeson base bytestring dependent-map dependent-sum file-embed
-         hashable http-client http-types req template-haskell text
+         aeson async base blaze-html blaze-markup bytestring constraints
+         containers dependent-map file-embed hashable http-client http-types
+         lens modern-uri mtl req salve some spoon template-haskell text
          transformers unordered-containers
        ];
        testHaskellDepends = [ bytestring text ];
@@ -175652,6 +179256,46 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "named-servant" = callPackage
+    ({ mkDerivation, base, named, servant }:
+     mkDerivation {
+       pname = "named-servant";
+       version = "0.0.2";
+       sha256 = "0i20c41gwyz5b75sn6a90c3yks4zgkpr5vfb6iqxqxpwyw76g3is";
+       libraryHaskellDepends = [ base named servant ];
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "named-servant-client" = callPackage
+    ({ mkDerivation, base, named, named-servant, servant
+     , servant-client-core
+     }:
+     mkDerivation {
+       pname = "named-servant-client";
+       version = "0.0.2";
+       sha256 = "06a5v4hxb3xafp7745iz8mfd26b4y3j31n2vsivn5v6r0prpi03c";
+       libraryHaskellDepends = [
+         base named named-servant servant servant-client-core
+       ];
+       description = "client support for named-servant";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "named-servant-server" = callPackage
+    ({ mkDerivation, base, named, named-servant, servant
+     , servant-server
+     }:
+     mkDerivation {
+       pname = "named-servant-server";
+       version = "0.0.2";
+       sha256 = "1whsg23kw1qydiy2a59ni57sr97dfhnwlaq7bbgzv2vxmsq2s1g7";
+       libraryHaskellDepends = [
+         base named named-servant servant servant-server
+       ];
+       description = "server support for named-servant";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "named-sop" = callPackage
     ({ mkDerivation, base, singletons, tasty, tasty-hunit, text }:
      mkDerivation {
@@ -176359,15 +180003,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "neat-interpolation_0_5_1" = callPackage
+  "neat-interpolation_0_5_1_2" = callPackage
     ({ mkDerivation, base, megaparsec, QuickCheck, quickcheck-instances
      , rerebase, tasty, tasty-hunit, tasty-quickcheck, template-haskell
      , text
      }:
      mkDerivation {
        pname = "neat-interpolation";
-       version = "0.5.1";
-       sha256 = "0hfyd74f83mxakahgj6q3wy2r1yg1zbsw1750k7zmwaqn3f8gzjz";
+       version = "0.5.1.2";
+       sha256 = "18c48r5qwrapkjh35l5dng3ahkkn1ch47vc4nzjwh4a9va94laln";
        libraryHaskellDepends = [ base megaparsec template-haskell text ];
        testHaskellDepends = [
          QuickCheck quickcheck-instances rerebase tasty tasty-hunit
@@ -176813,8 +180457,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-spider";
-       version = "0.4.3.2";
-       sha256 = "0bmbb9417gf9v4pih55vyvw7z9cy9dpphppmbzb0vdiiz0si8ppi";
+       version = "0.4.3.4";
+       sha256 = "1whn8hkwbqx76vn1550j9fjkjhj7fxp295dcsv5jl25cvxpj5rml";
        libraryHaskellDepends = [
          aeson base containers data-interval extended-reals greskell
          greskell-websocket hashable monad-logger regex-applicative
@@ -176837,8 +180481,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-spider-cli";
-       version = "0.2.0.2";
-       sha256 = "0s4p0w5dwxny2wqh33hzpbw1lyvn6b3lvmxl9mybkdvxjc8gaw2v";
+       version = "0.2.0.4";
+       sha256 = "0g9p1l3pyd8c43fj1h4c29n44257n4awlsqb4g821a62s4mjypwf";
        libraryHaskellDepends = [
          aeson base greskell-core hashable net-spider optparse-applicative
          text
@@ -176858,8 +180502,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-spider-pangraph";
-       version = "0.2.0.1";
-       sha256 = "0n19hlyzb2r9kkkw1ivaify0msjv4iq69rv14cdak8x50dmvn4wq";
+       version = "0.2.0.2";
+       sha256 = "1i7prpj85mbmwqdhfi8q2lxk89a2vv3n4r886sq2nygka0pw0azc";
        libraryHaskellDepends = [
          base bytestring greskell net-spider pangraph text time
        ];
@@ -176879,8 +180523,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-spider-rpl";
-       version = "0.4.1.2";
-       sha256 = "0ks170nwybnkqp64dgkl5zswrh66f9cw3w74i0vp6ypl8cggkwq5";
+       version = "0.4.1.3";
+       sha256 = "0sflq9sg4xnfgfbx2iikvkzrs44kb11s6v23h3q3zwy1kdxakhr8";
        libraryHaskellDepends = [
          aeson base conduit conduit-parse greskell hashable ip monad-logger
          mtl net-spider regex-applicative safe-exceptions text time
@@ -176903,8 +180547,8 @@ self: {
      }:
      mkDerivation {
        pname = "net-spider-rpl-cli";
-       version = "0.1.3.1";
-       sha256 = "0y1bagnlazd7pj240ka1lf970qclf569qbsdxas27pj1pi91jb0r";
+       version = "0.1.3.2";
+       sha256 = "1nqhrfbii58rhh19nxhr9zaqm3pd0yvlshwdwl50xrw7hr0jjxfc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -176942,10 +180586,8 @@ self: {
     ({ mkDerivation, base, bindings-DSL, libsodium }:
      mkDerivation {
        pname = "netcode-io";
-       version = "0.0.1";
-       sha256 = "1xm8fxihjzlbl8zzixmqw3kgq2rsf57c321y5sl2w5i3y8jkxa1n";
-       revision = "1";
-       editedCabalFile = "1xwrhh4nwlkjr03qj3cd655df9gn6ys4hn80k35hc3z3hyi7lzqf";
+       version = "0.0.2";
+       sha256 = "0n66y9cxvljhsz4izbqlrxns5yv32lh6dnqs4ngr1bk5ms9wjps4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base bindings-DSL ];
@@ -177145,8 +180787,8 @@ self: {
        pname = "netrc";
        version = "0.2.0.0";
        sha256 = "11iax3ick0im397jyyjkny7lax9bgrlgk90a25dp2jsglkphfpls";
-       revision = "6";
-       editedCabalFile = "0mn0ar2xhjdsm50kmpw5ndvbyfmc30b3x0bx291d2ml7hqspnnsw";
+       revision = "7";
+       editedCabalFile = "0cmkwkqxzbhrzzwypvmamwcr5ndyk1qc5pjy1rnc50xx7wznw7hf";
        libraryHaskellDepends = [ base bytestring deepseq parsec ];
        testHaskellDepends = [
          base bytestring tasty tasty-golden tasty-quickcheck
@@ -177265,7 +180907,7 @@ self: {
        libraryHaskellDepends = [
          base containers directory filepath mtl nettle-openflow unix
        ];
-       description = "DSL for describing OpenFlow networks, and a compiler generating NetKit labs.";
+       description = "DSL for describing OpenFlow networks, and a compiler generating NetKit labs";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -177283,7 +180925,7 @@ self: {
          array base bimap binary binary-strict bytestring containers HList
          mtl network parsec syb
        ];
-       description = "OpenFlow protocol messages, binary formats, and servers.";
+       description = "OpenFlow protocol messages, binary formats, and servers";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -177422,6 +181064,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "network_3_1_2_0" = callPackage
+    ({ mkDerivation, base, bytestring, deepseq, directory, hspec
+     , hspec-discover, HUnit, QuickCheck, temporary
+     }:
+     mkDerivation {
+       pname = "network";
+       version = "3.1.2.0";
+       sha256 = "07zbaaa4f0rnc4xqg5kbzqivmr9lqz2g6bw01gmqkmh9k9svsap0";
+       revision = "1";
+       editedCabalFile = "079svy0nr035xhz4gd6cila0wvsjl23hi3hq5407m3qdmcf4rkis";
+       libraryHaskellDepends = [ base bytestring deepseq directory ];
+       testHaskellDepends = [
+         base bytestring directory hspec HUnit QuickCheck temporary
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Low-level networking interface";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "network-address" = callPackage
     ({ mkDerivation, base, Cabal, QuickCheck, test-framework
      , test-framework-quickcheck2
@@ -178089,8 +181751,8 @@ self: {
     ({ mkDerivation, base, bytestring, network }:
      mkDerivation {
        pname = "network-run";
-       version = "0.2.3";
-       sha256 = "026l8j1nfgvs3lknn3fvsjj4x4niykhn99h5kywc47347b91xl3n";
+       version = "0.2.4";
+       sha256 = "0w3dmwk03j4n01xkiq8m4sqa27bskh239mpw7m4ihjmkxqcwc5gl";
        libraryHaskellDepends = [ base bytestring network ];
        description = "Simple network runner library";
        license = stdenv.lib.licenses.bsd3;
@@ -178446,8 +182108,8 @@ self: {
      }:
      mkDerivation {
        pname = "network-uri-json";
-       version = "0.3.1.1";
-       sha256 = "0akyhgi79pzhvfq47risrqmr6hi409fnz1ivwpwwfc4laimf3mky";
+       version = "0.4.0.0";
+       sha256 = "1hnsk8xsa89p4ywvyb4xfdk3l16mlhmb73sy1vbgckc7mlv3mmb4";
        libraryHaskellDepends = [ aeson base network-uri text ];
        testHaskellDepends = [
          aeson base hspec network-arbitrary network-uri test-invariant text
@@ -178636,42 +182298,54 @@ self: {
 
   "neuron" = callPackage
     ({ mkDerivation, aeson, aeson-gadt-th, algebraic-graphs, base, clay
-     , containers, data-default, dependent-sum, dependent-sum-template
-     , dhall, directory, exceptions, file-embed, filepath, filepattern
-     , foldl, gitrev, hspec, lucid, megaparsec, mmark, mmark-ext
-     , modern-uri, mtl, optparse-applicative, pandoc, parser-combinators
-     , QuickCheck, relude, rib, shake, text, time, unix, uuid, which
+     , commonmark, commonmark-extensions, commonmark-pandoc, containers
+     , data-default, dependent-sum, dependent-sum-aeson-orphans
+     , dependent-sum-template, dhall, directory, either, exceptions
+     , file-embed, filepath, filepattern, foldl, hspec, HsYAML
+     , iso8601-time, megaparsec, modern-uri, mtl, optparse-applicative
+     , pandoc, pandoc-types, parsec, parser-combinators, QuickCheck
+     , reflex, reflex-dom-core, reflex-dom-pandoc, relude, rib, shake
+     , shower, skylighting-core, tagged, text, time, unix, uuid, which
      , with-utf8
      }:
      mkDerivation {
        pname = "neuron";
-       version = "0.4.0.0";
-       sha256 = "1iw63qnq484zhi2fil050hswz1hl9cvygpqalhbbhnvry3f9bqkf";
+       version = "0.6.0.0";
+       sha256 = "1gqkypmlhv9hl0d3afjllv9a1ld0dw9qxnk9v1qlmgz65g22b6nr";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson algebraic-graphs base containers filepath filepattern
-         megaparsec mmark mtl parser-combinators relude text time
+         aeson aeson-gadt-th algebraic-graphs base clay commonmark
+         commonmark-extensions commonmark-pandoc containers data-default
+         dependent-sum dependent-sum-aeson-orphans dependent-sum-template
+         filepath filepattern HsYAML megaparsec modern-uri mtl pandoc-types
+         parsec parser-combinators reflex reflex-dom-core reflex-dom-pandoc
+         relude tagged text time
        ];
        executableHaskellDepends = [
-         aeson aeson-gadt-th algebraic-graphs base clay containers
-         data-default dependent-sum dependent-sum-template dhall directory
-         exceptions file-embed filepath filepattern foldl gitrev lucid
-         megaparsec mmark mmark-ext modern-uri mtl optparse-applicative
-         pandoc parser-combinators relude rib shake text time unix uuid
-         which with-utf8
+         aeson aeson-gadt-th algebraic-graphs base clay commonmark
+         commonmark-extensions commonmark-pandoc containers data-default
+         dependent-sum dependent-sum-aeson-orphans dependent-sum-template
+         dhall directory either exceptions file-embed filepath filepattern
+         foldl HsYAML iso8601-time megaparsec modern-uri mtl
+         optparse-applicative pandoc pandoc-types parsec parser-combinators
+         reflex reflex-dom-core reflex-dom-pandoc relude rib shake shower
+         skylighting-core tagged text time unix uuid which with-utf8
        ];
        testHaskellDepends = [
-         aeson aeson-gadt-th algebraic-graphs base clay containers
-         data-default dependent-sum dependent-sum-template dhall directory
-         exceptions file-embed filepath filepattern foldl gitrev hspec lucid
-         megaparsec mmark mmark-ext modern-uri mtl optparse-applicative
-         pandoc parser-combinators QuickCheck relude rib shake text time
-         unix uuid which with-utf8
+         aeson aeson-gadt-th algebraic-graphs base clay commonmark
+         commonmark-extensions commonmark-pandoc containers data-default
+         dependent-sum dependent-sum-aeson-orphans dependent-sum-template
+         dhall directory either exceptions file-embed filepath filepattern
+         foldl hspec HsYAML iso8601-time megaparsec modern-uri mtl
+         optparse-applicative pandoc pandoc-types parsec parser-combinators
+         QuickCheck reflex reflex-dom-core reflex-dom-pandoc relude rib
+         shake shower skylighting-core tagged text time unix uuid which
+         with-utf8
        ];
-       description = "Haskell meets Zettelkasten, for your plain-text delight";
-       license = stdenv.lib.licenses.bsd3;
+       description = "Future-proof system for plain-text notes";
+       license = stdenv.lib.licenses.agpl3;
        maintainers = with stdenv.lib.maintainers; [ maralorn ];
      }) {};
 
@@ -178815,6 +182489,8 @@ self: {
        pname = "newtype";
        version = "0.2.2.0";
        sha256 = "1b7bamnd0p8vmxvlg39g5d4a2av49kx10rdyz04ixa28pg8zy01s";
+       revision = "1";
+       editedCabalFile = "0261ljw57c7l7mw3z553s6ak8lmgyqwmfhk1m2jv6snra2i5shs4";
        libraryHaskellDepends = [ base ];
        description = "A typeclass and set of functions for working with newtypes";
        license = stdenv.lib.licenses.bsd3;
@@ -179031,21 +182707,21 @@ self: {
      }) {};
 
   "ngx-export-tools-extra" = callPackage
-    ({ mkDerivation, aeson, ansi-wl-pprint, base, base64, binary
+    ({ mkDerivation, aeson, ansi-wl-pprint, array, base, base64, binary
      , bytestring, case-insensitive, containers, ede
      , enclosed-exceptions, http-client, http-types, ngx-export
-     , ngx-export-tools, snap-core, snap-server, template-haskell, text
-     , time, trifecta, unordered-containers
+     , ngx-export-tools, safe, snap-core, snap-server, template-haskell
+     , text, time, trifecta, unordered-containers
      }:
      mkDerivation {
        pname = "ngx-export-tools-extra";
-       version = "0.4.1.1";
-       sha256 = "15d5dj8mdihj8m559lrfwwpb55nkkkapwd9x84jxsv6pmnh5m0qh";
+       version = "0.5.5.1";
+       sha256 = "0x3c1r0ddbk740182gwv43s2zxr6aj9k6y4npv7vi0fwyxjcqgkj";
        libraryHaskellDepends = [
-         aeson ansi-wl-pprint base base64 binary bytestring case-insensitive
-         containers ede enclosed-exceptions http-client http-types
-         ngx-export ngx-export-tools snap-core snap-server template-haskell
-         text time trifecta unordered-containers
+         aeson ansi-wl-pprint array base base64 binary bytestring
+         case-insensitive containers ede enclosed-exceptions http-client
+         http-types ngx-export ngx-export-tools safe snap-core snap-server
+         template-haskell text time trifecta unordered-containers
        ];
        description = "More extra tools for Nginx haskell module";
        license = stdenv.lib.licenses.bsd3;
@@ -179248,7 +182924,7 @@ self: {
        revision = "1";
        editedCabalFile = "08hgvqbb13n2scs4shqjdyzm7kblgllndk0429pdiwdx21k5391q";
        libraryHaskellDepends = [ base bytestring http-conduit xml ];
-       description = "Haskell interface to the nist random beacon.";
+       description = "Haskell interface to the nist random beacon";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -179274,8 +182950,8 @@ self: {
      }:
      mkDerivation {
        pname = "niv";
-       version = "0.2.13";
-       sha256 = "11znn37j15gzwg6nh6z4k5ijxyyc7gbirnrwlhh4b8868d9axjfy";
+       version = "0.2.18";
+       sha256 = "1jgljmj7msix2vn9nxip9q4754hx4739w4r7sa05l6q4ba5ilwqd";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -179362,6 +183038,7 @@ self: {
        benchmarkHaskellDepends = [ attoparsec base criterion text ];
        description = "Parse and render *.drv files";
        license = stdenv.lib.licenses.bsd3;
+       maintainers = with stdenv.lib.maintainers; [ sorki ];
      }) {};
 
   "nix-diff" = callPackage
@@ -179446,8 +183123,7 @@ self: {
        ];
        description = "Parse and render .narinfo files";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
+       maintainers = with stdenv.lib.maintainers; [ sorki ];
      }) {};
 
   "nix-paths" = callPackage
@@ -179495,6 +183171,47 @@ self: {
        broken = true;
      }) {};
 
+  "nix-tree" = callPackage
+    ({ mkDerivation, aeson, async, base, brick, containers, deepseq
+     , directory, filepath, hashable, hrfsize, lens, parallel, protolude
+     , text, transformers, typed-process, unordered-containers, vty
+     }:
+     mkDerivation {
+       pname = "nix-tree";
+       version = "0.1.1.0";
+       sha256 = "1dciwsw7cv1f73awrqr3gw3zj3mizaw53q3ibkawq9gbfsfg8yiz";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson async base brick containers deepseq directory filepath
+         hashable hrfsize lens parallel protolude text transformers
+         typed-process unordered-containers vty
+       ];
+       description = "Interactively browse a Nix store paths dependencies";
+       license = stdenv.lib.licenses.bsd3;
+       maintainers = with stdenv.lib.maintainers; [ utdemir ];
+     }) {};
+
+  "nixdu" = callPackage
+    ({ mkDerivation, aeson, async, base, brick, containers, deepseq
+     , directory, filepath, hashable, hrfsize, lens, parallel, protolude
+     , text, transformers, typed-process, unordered-containers, vty
+     }:
+     mkDerivation {
+       pname = "nixdu";
+       version = "0.1.0.0";
+       sha256 = "1a9ng3xaiddnmfjzd1dsmxf87114n6ga43w8hsij06p0la84mqq5";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         aeson async base brick containers deepseq directory filepath
+         hashable hrfsize lens parallel protolude text transformers
+         typed-process unordered-containers vty
+       ];
+       description = "Interactively browse a Nix store paths dependencies";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "nixfmt" = callPackage
     ({ mkDerivation, base, cmdargs, directory, filepath, megaparsec
      , parser-combinators, safe-exceptions, text, unix
@@ -179836,6 +183553,48 @@ self: {
        broken = true;
      }) {};
 
+  "noli" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cmark, directory
+     , frontmatter, lucid, regex-compat, text, yaml
+     }:
+     mkDerivation {
+       pname = "noli";
+       version = "0.1.1.0";
+       sha256 = "043rjr7p8jj33bkrl3mz7qbzl1az0v8acmbbzv8a6j6cpdd8vcxr";
+       libraryHaskellDepends = [
+         aeson base bytestring cmark directory frontmatter lucid
+         regex-compat text yaml
+       ];
+       description = "A static site generator";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "nom" = callPackage
+    ({ mkDerivation, algebra, base, base-compat, Cabal, cabal-doctest
+     , containers, data-default, doctest, extra, finite-typelits, flow
+     , hspec, hspec-discover, QuickCheck, syb, template-haskell
+     , TypeCompose, Unique
+     }:
+     mkDerivation {
+       pname = "nom";
+       version = "0.1.0.2";
+       sha256 = "18vgasg9szc88pa61gw6qpasx6l9jx0z9lm36xa96j4ml4vr3ddf";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         algebra base containers data-default extra finite-typelits flow
+         QuickCheck syb TypeCompose Unique
+       ];
+       testHaskellDepends = [
+         base base-compat data-default doctest hspec QuickCheck
+         template-haskell
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Name-binding & alpha-equivalence";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "nominal" = callPackage
     ({ mkDerivation, base, containers }:
      mkDerivation {
@@ -180101,17 +183860,17 @@ self: {
      }) {};
 
   "nonempty-containers" = callPackage
-    ({ mkDerivation, base, comonad, containers, deepseq, hedgehog
-     , hedgehog-fn, nonempty-vector, semigroupoids, tasty
+    ({ mkDerivation, aeson, base, comonad, containers, deepseq
+     , hedgehog, hedgehog-fn, nonempty-vector, semigroupoids, tasty
      , tasty-hedgehog, text, these, vector
      }:
      mkDerivation {
        pname = "nonempty-containers";
-       version = "0.3.3.0";
-       sha256 = "11mrv2vzdqxjx3xn93zlwfxh7z2d5ca5cbsr25y4zv34brn114g2";
+       version = "0.3.4.1";
+       sha256 = "0cpn0f0gnir9w366hw2906316qx5yc06rrrlv67xba1p66507m83";
        libraryHaskellDepends = [
-         base comonad containers deepseq nonempty-vector semigroupoids these
-         vector
+         aeson base comonad containers deepseq nonempty-vector semigroupoids
+         these vector
        ];
        testHaskellDepends = [
          base comonad containers hedgehog hedgehog-fn nonempty-vector
@@ -180257,8 +184016,8 @@ self: {
        pname = "normalization-insensitive";
        version = "2.0.1";
        sha256 = "00nbha984yg4lxnpkyd3q0gbywf7xn5z5ixy3cr9ksn05w6blm1v";
-       revision = "3";
-       editedCabalFile = "1p1pw5llhw0jp1w8yvwd79w06lk7rz74rryppzvw8vpc5axl99bq";
+       revision = "4";
+       editedCabalFile = "1p0vxvp44nzjn7big9m3wj8gvffaxz05c46jalm73fwm8cj54iqf";
        libraryHaskellDepends = [
          base bytestring deepseq hashable text unicode-transforms
        ];
@@ -180350,7 +184109,7 @@ self: {
        version = "0.1.1";
        sha256 = "1mm1j0l3h8qxpk0bis4g1f6zp5407rkq2z5ldyr036frbvfwqaj5";
        libraryHaskellDepends = [ base ];
-       description = "Useful utility functions that only depend on base.";
+       description = "Useful utility functions that only depend on base";
        license = "unknown";
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
@@ -180369,6 +184128,24 @@ self: {
        broken = true;
      }) {};
 
+  "nothunks" = callPackage
+    ({ mkDerivation, base, bytestring, containers, ghc-heap, ghc-prim
+     , hedgehog, random, tasty, tasty-hedgehog, text, time, vector
+     }:
+     mkDerivation {
+       pname = "nothunks";
+       version = "0.1.0.0";
+       sha256 = "1ygkkyl90z99xgxzjl122vqnra7jl3v5cxzrb78z4lfx2mm59yla";
+       libraryHaskellDepends = [
+         base bytestring containers ghc-heap text time vector
+       ];
+       testHaskellDepends = [
+         base containers ghc-prim hedgehog random tasty tasty-hedgehog text
+       ];
+       description = "Examine values for unexpected thunks";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "notifications-tray-icon" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, containers, dbus
      , gi-dbusmenu, gi-gio, gi-glib, github, haskeline, hslogger
@@ -180602,8 +184379,8 @@ self: {
      }:
      mkDerivation {
        pname = "nqe";
-       version = "0.6.1";
-       sha256 = "1l0dydhcqmgf6bamy29sgry8sjirvw3khzjkhpjlb12zl2y75xxd";
+       version = "0.6.3";
+       sha256 = "0wg9cfzgj36dj77m521pqcliqd43i3j6i1bvqgvb8npmzqijag7q";
        libraryHaskellDepends = [
          base conduit containers hashable mtl stm unique unliftio
        ];
@@ -180612,7 +184389,52 @@ self: {
          stm-conduit text unliftio
        ];
        description = "Concurrency library in the style of Erlang/OTP";
-       license = stdenv.lib.licenses.publicDomain;
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "nri-env-parser" = callPackage
+    ({ mkDerivation, base, modern-uri, network-uri, nri-prelude, text
+     }:
+     mkDerivation {
+       pname = "nri-env-parser";
+       version = "0.1.0.0";
+       sha256 = "0y9wwwcnghglxqqa6r0zafvfwcm9vpfzda8f1xacg395vh7v8cnm";
+       libraryHaskellDepends = [
+         base modern-uri network-uri nri-prelude text
+       ];
+       description = "Read environment variables as settings to build 12-factor apps";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "nri-prelude" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, async, auto-update, base
+     , bytestring, concurrent-output, containers, directory, exceptions
+     , filepath, hedgehog, junit-xml, pretty-diff, pretty-show
+     , resourcet, safe-exceptions, tasty, tasty-test-reporter
+     , terminal-size, text, time, vector
+     }:
+     mkDerivation {
+       pname = "nri-prelude";
+       version = "0.1.0.0";
+       sha256 = "1p0hi1j478sgj1ha2psz4dxv9i5bm6n2d3qvzw9lhqd1xd2dib3a";
+       libraryHaskellDepends = [
+         aeson ansi-terminal async auto-update base bytestring
+         concurrent-output containers directory exceptions filepath hedgehog
+         junit-xml pretty-diff pretty-show resourcet safe-exceptions tasty
+         tasty-test-reporter terminal-size text time vector
+       ];
+       testHaskellDepends = [
+         aeson ansi-terminal async auto-update base bytestring
+         concurrent-output containers directory exceptions filepath hedgehog
+         junit-xml pretty-diff pretty-show resourcet safe-exceptions tasty
+         tasty-test-reporter terminal-size text time vector
+       ];
+       description = "A Prelude inspired by the Elm programming language";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "nsis" = callPackage
@@ -181004,8 +184826,8 @@ self: {
      }:
      mkDerivation {
        pname = "numeric-prelude";
-       version = "0.4.3.1";
-       sha256 = "0531yjw1rzbv3snv1lc955350frgf8526slsxbx3ias71krbdr69";
+       version = "0.4.3.2";
+       sha256 = "1vd777ax2yvxknfxp9isgjk7cabjv3q86dgf3hybv78hc4ji5gmq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -181120,13 +184942,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "numhask_0_5_0" = callPackage
-    ({ mkDerivation, base }:
+  "numhask_0_6_0_2" = callPackage
+    ({ mkDerivation, base, bifunctors, mmorph, protolude, text
+     , transformers
+     }:
      mkDerivation {
        pname = "numhask";
-       version = "0.5.0";
-       sha256 = "0lqwpa3kmgphimy48asi6dxa1mhkjkjvn2bsy1sl5mkf2y93gwrb";
-       libraryHaskellDepends = [ base ];
+       version = "0.6.0.2";
+       sha256 = "1x8p92plblqz5kykqci86wjfvb79gsi00l0a5i2r1frs6imjvkjf";
+       libraryHaskellDepends = [
+         base bifunctors mmorph protolude text transformers
+       ];
        description = "numeric classes";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -181134,20 +184960,16 @@ self: {
 
   "numhask-array" = callPackage
     ({ mkDerivation, adjunctions, base, deepseq, distributive, doctest
-     , hedgehog, hmatrix, numhask, numhask-hedgehog, numhask-prelude
-     , protolude, vector
+     , hmatrix, numhask, vector
      }:
      mkDerivation {
        pname = "numhask-array";
-       version = "0.6.0";
-       sha256 = "1pi9rp6j27pbh4ijbzhazznmyz2079b4h1p3sbnsn09bj35zh7z3";
+       version = "0.7.0";
+       sha256 = "1izfym0y9920i2pbzil3z3sn8rzk23lj1rbgj0x0hc7y2p0w5lbm";
        libraryHaskellDepends = [
-         adjunctions base deepseq distributive hmatrix numhask
-         numhask-prelude protolude vector
-       ];
-       testHaskellDepends = [
-         base doctest hedgehog numhask-hedgehog numhask-prelude
+         adjunctions base deepseq distributive hmatrix numhask vector
        ];
+       testHaskellDepends = [ base doctest numhask ];
        description = "n-dimensional arrays";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -181228,18 +185050,17 @@ self: {
 
   "numhask-space" = callPackage
     ({ mkDerivation, adjunctions, base, containers, distributive
-     , doctest, foldl, lattices, protolude, semigroupoids, tdigest, text
-     , time
+     , doctest, numhask, semigroupoids, tdigest, text, time
      }:
      mkDerivation {
        pname = "numhask-space";
-       version = "0.4.0";
-       sha256 = "0p7pr314wm9mqmsn2jwxpr4z7dplb9nq7rih7c3qxc01lla3i59j";
+       version = "0.6.0";
+       sha256 = "0zm64spljv7pvl68b60y7hr46fa82i44j7yk8q6i33nhr78qv7wy";
        libraryHaskellDepends = [
-         adjunctions base containers distributive foldl lattices protolude
-         semigroupoids tdigest text time
+         adjunctions base containers distributive numhask semigroupoids
+         tdigest text time
        ];
-       testHaskellDepends = [ base doctest ];
+       testHaskellDepends = [ base doctest numhask ];
        description = "numerical spaces";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -181361,8 +185182,10 @@ self: {
      }:
      mkDerivation {
        pname = "nvim-hs";
-       version = "2.1.0.3";
-       sha256 = "19834hldpywsg52144i9b372msmw5pcj7v0fwiii14pns4sf6v7v";
+       version = "2.1.0.4";
+       sha256 = "0bg94adja6xvzlv1x849nrfpb0i5mjbp19f9cwhaa4iw1qs532rf";
+       revision = "1";
+       editedCabalFile = "0yzdq8nxf2n7n4ns6frgl5nhgb3vj3nkh7336mz994iydam17wcl";
        libraryHaskellDepends = [
          base bytestring cereal cereal-conduit conduit containers
          data-default deepseq foreign-store hslogger megaparsec messagepack
@@ -181384,6 +185207,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Haskell plugin backend for neovim";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "nvim-hs-contrib" = callPackage
@@ -181407,6 +185232,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Haskell plugin backend for neovim";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "nvim-hs-ghcid" = callPackage
@@ -181427,6 +185254,8 @@ self: {
        executableHaskellDepends = [ base nvim-hs ];
        description = "Neovim plugin that runs ghcid to update the quickfix list";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "nvvm" = callPackage
@@ -181435,12 +185264,14 @@ self: {
      }:
      mkDerivation {
        pname = "nvvm";
-       version = "0.9.0.0";
-       sha256 = "00ggaycs5z2b617kgjv851ahrakd4v8w374qbym19r1ccrxkdhhb";
+       version = "0.10.0.0";
+       sha256 = "188zf4hlqgjj5xgsfvrkynhq8pc29qfkaz6rp61ij3adc30410al";
        setupHaskellDepends = [
          base Cabal cuda directory filepath template-haskell
        ];
-       libraryHaskellDepends = [ base bytestring cuda template-haskell ];
+       libraryHaskellDepends = [
+         base bytestring cuda directory filepath template-haskell
+       ];
        libraryToolDepends = [ c2hs ];
        description = "FFI bindings to NVVM";
        license = stdenv.lib.licenses.bsd3;
@@ -181546,6 +185377,28 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "o-clock_1_2_0" = callPackage
+    ({ mkDerivation, base, doctest, ghc-prim, Glob, hedgehog
+     , markdown-unlit, tasty, tasty-hedgehog, tasty-hspec, type-spec
+     }:
+     mkDerivation {
+       pname = "o-clock";
+       version = "1.2.0";
+       sha256 = "0l8bwv0sagfpyfray4g1nnwb8zl4b2nljwxxwhh71vfhz620vrkx";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base ghc-prim ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base doctest Glob hedgehog markdown-unlit tasty tasty-hedgehog
+         tasty-hspec type-spec
+       ];
+       testToolDepends = [ doctest markdown-unlit ];
+       description = "Type-safe time library";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "oanda-rest-api" = callPackage
     ({ mkDerivation, aeson, base, bytestring, conduit, containers
      , Decimal, hlint, hspec, http-client, http-conduit, HUnit, lens
@@ -181871,6 +185724,18 @@ self: {
        broken = true;
      }) {};
 
+  "ocap-io" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "ocap-io";
+       version = "0.1.1.0";
+       sha256 = "07s3nman83mv6g96naz0aax6pn6h6vrw3linv46895rvfz4vak8k";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       description = "Object capability based IO";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "ochan" = callPackage
     ({ mkDerivation, async, base, bytestring, mtl, oref, text
      , transformers
@@ -182051,8 +185916,8 @@ self: {
      }:
      mkDerivation {
        pname = "odd-jobs";
-       version = "0.2.1";
-       sha256 = "0s0sjy91pq7lqhc75cf6z478b956af7af2959g9qaa879vw9bx2k";
+       version = "0.2.2";
+       sha256 = "1l6nyyn27yjn2gkd6yvdxi5iai5af96srkxia24npl5rna2cngfp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -182150,8 +186015,8 @@ self: {
      }:
      mkDerivation {
        pname = "oeis2";
-       version = "1.0.3";
-       sha256 = "04dbly6ggadmy1bi10x9bbsa6dvynb5g1m5hdrlzv3mpyfahxvwp";
+       version = "1.0.4";
+       sha256 = "1parmfwdxrmvzz81dy8mb9ry4bbp1bvsqsr593zld7hnfx6cvlh9";
        libraryHaskellDepends = [
          aeson base containers http-conduit lens lens-aeson text vector
        ];
@@ -182407,6 +186272,23 @@ self: {
        broken = true;
      }) {};
 
+  "om-http-logging" = callPackage
+    ({ mkDerivation, base, http-types, monad-logger, safe-exceptions
+     , uuid, wai
+     }:
+     mkDerivation {
+       pname = "om-http-logging";
+       version = "0.1.0.0";
+       sha256 = "16swgkk6w7sxnbfdz07vz3pkqjcpq27g1hswqvdxfq5gfq5kgp67";
+       libraryHaskellDepends = [
+         base http-types monad-logger safe-exceptions uuid wai
+       ];
+       description = "om-http-logging";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "omaketex" = callPackage
     ({ mkDerivation, base, optparse-applicative, shakespeare-text
      , shelly, text
@@ -182675,19 +186557,25 @@ self: {
      }) {};
 
   "online" = callPackage
-    ({ mkDerivation, backprop, base, doctest, foldl, tasty, tdigest
-     , vector, vector-algorithms
+    ({ mkDerivation, adjunctions, backprop, base, containers, doctest
+     , foldl, folds, generic-lens, hmatrix, lens, mwc-probability
+     , mwc-random, numhask, numhask-array, primitive, profunctors
+     , tdigest, text, vector, vector-algorithms
      }:
      mkDerivation {
        pname = "online";
-       version = "0.5.0";
-       sha256 = "1z7b2aq0zmd65qdi3s6hq17svkw2v62bap586za6kvnbq8fz5cys";
+       version = "0.6.0";
+       sha256 = "1yr3jq4gpjmgfd9q95n3b0g9ib2xjccc56m8mxlzsjxhnqc149jy";
        libraryHaskellDepends = [
-         backprop base foldl tdigest vector vector-algorithms
+         adjunctions backprop base containers foldl folds generic-lens
+         hmatrix lens mwc-probability mwc-random numhask numhask-array
+         primitive profunctors tdigest text vector vector-algorithms
        ];
-       testHaskellDepends = [ base doctest tasty ];
-       description = "online statistics";
+       testHaskellDepends = [ base doctest numhask ];
+       description = "See readme.md";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "online-csv" = callPackage
@@ -182784,10 +186672,38 @@ self: {
      }:
      mkDerivation {
        pname = "opaleye";
-       version = "0.6.7004.2";
-       sha256 = "0lmfpbrfy6l7nlkjn26smmv3n992b54xnplwm67jjpryaz7psdz1";
+       version = "0.6.7006.1";
+       sha256 = "0qg42qdk6gcziwfvjsjbwyj629grna2ay4pmh8myy3d1rznp6s93";
+       libraryHaskellDepends = [
+         aeson base base16-bytestring bytestring case-insensitive
+         contravariant postgresql-simple pretty product-profunctors
+         profunctors scientific semigroups text time time-locale-compat
+         transformers uuid void
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers contravariant dotenv hspec
+         hspec-discover multiset postgresql-simple product-profunctors
+         profunctors QuickCheck semigroups text time transformers uuid
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "An SQL-generating DSL targeting PostgreSQL";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "opaleye_0_7_1_0" = callPackage
+    ({ mkDerivation, aeson, base, base16-bytestring, bytestring
+     , case-insensitive, containers, contravariant, dotenv, hspec
+     , hspec-discover, multiset, postgresql-simple, pretty
+     , product-profunctors, profunctors, QuickCheck, scientific
+     , semigroups, text, time, time-locale-compat, transformers, uuid
+     , void
+     }:
+     mkDerivation {
+       pname = "opaleye";
+       version = "0.7.1.0";
+       sha256 = "0i4ndy9dd6jb4dzx8a5fv8jsmnmp7p1kx2qr012xj1qjq36sqpy6";
        revision = "1";
-       editedCabalFile = "1gnig6gdpcz6zkzp9x97m9blhgha2z4ksd9pyqpvm6qrdsjpqsfp";
+       editedCabalFile = "1kcgpigl645m1n7ikxx4lnnlqmwh06kndg6mbz69rn5ir7qimv51";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring case-insensitive
          contravariant postgresql-simple pretty product-profunctors
@@ -182795,13 +186711,14 @@ self: {
          transformers uuid void
        ];
        testHaskellDepends = [
-         aeson base containers contravariant dotenv hspec hspec-discover
-         multiset postgresql-simple product-profunctors profunctors
-         QuickCheck semigroups text time transformers uuid
+         aeson base bytestring containers contravariant dotenv hspec
+         hspec-discover multiset postgresql-simple product-profunctors
+         profunctors QuickCheck semigroups text time transformers uuid
        ];
        testToolDepends = [ hspec-discover ];
        description = "An SQL-generating DSL targeting PostgreSQL";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "opaleye-classy" = callPackage
@@ -183021,8 +186938,8 @@ self: {
      }:
      mkDerivation {
        pname = "open-witness";
-       version = "0.4.0.1";
-       sha256 = "04a10cv0iddnvp5my4h00bmmpc2mxz6c5gih5p4iyc7bdq6m0w07";
+       version = "0.5";
+       sha256 = "1p3dd7s7zzjxp29w4n6yrfvlmcnrllz07lgnf2mjdv9lspynids0";
        libraryHaskellDepends = [
          base constraints hashable random template-haskell transformers
          witness
@@ -183094,8 +187011,8 @@ self: {
      }:
      mkDerivation {
        pname = "openapi3-code-generator";
-       version = "0.1.0.4";
-       sha256 = "1bfqw6fpvprwg7132ccxy2hksjbh5s9zcv18blc4q855hc4zzbp5";
+       version = "0.1.0.6";
+       sha256 = "1nf7m27m5l56ms45lldbbqcwz3rcdw5jr3kk7si280h3153yhayc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -183568,10 +187485,8 @@ self: {
      }:
      mkDerivation {
        pname = "openssl-streams";
-       version = "1.2.2.0";
-       sha256 = "0rplym6ayydkpr7x9mw3l13p0vzzfzzxw244d7sd3jcvaxpv0rmr";
-       revision = "1";
-       editedCabalFile = "125bxb2axgpcq7rrpamfq0yz017i0ks9zsykh6hn0ifw3lxj1k29";
+       version = "1.2.3.0";
+       sha256 = "10pnnpzgb5xr811kc9qdk7h2cgn6hk2yiyhnzz8f8p0fjzc0pwjm";
        libraryHaskellDepends = [
          base bytestring HsOpenSSL io-streams network
        ];
@@ -183584,33 +187499,26 @@ self: {
      }) {};
 
   "opentelemetry" = callPackage
-    ({ mkDerivation, async, attoparsec, base, bytestring, clock
-     , exceptions, hashable, random, tasty, tasty-discover, tasty-hunit
-     , tasty-quickcheck, text, unordered-containers
-     }:
+    ({ mkDerivation, base, bytestring, exceptions }:
      mkDerivation {
        pname = "opentelemetry";
-       version = "0.0.0.2";
-       sha256 = "15x7swbr18xks8a9xf1hjwibgqxsjigcyrahbnk72p1n1gxkarjr";
-       libraryHaskellDepends = [
-         attoparsec base bytestring clock exceptions hashable random text
-         unordered-containers
-       ];
-       testHaskellDepends = [
-         async base bytestring tasty tasty-discover tasty-hunit
-         tasty-quickcheck
-       ];
-       testToolDepends = [ tasty-discover ];
+       version = "0.4.2";
+       sha256 = "12myg932dpf6zz38ahf9dmx449dkp9kf9pi79j8bdlz4v2fl3jzj";
+       libraryHaskellDepends = [ base bytestring exceptions ];
        license = stdenv.lib.licenses.asl20;
      }) {};
 
-  "opentelemetry_0_4_2" = callPackage
-    ({ mkDerivation, base, bytestring, exceptions }:
+  "opentelemetry_0_6_1" = callPackage
+    ({ mkDerivation, base, bytestring, exceptions, ghc-trace-events
+     , hashable
+     }:
      mkDerivation {
        pname = "opentelemetry";
-       version = "0.4.2";
-       sha256 = "12myg932dpf6zz38ahf9dmx449dkp9kf9pi79j8bdlz4v2fl3jzj";
-       libraryHaskellDepends = [ base bytestring exceptions ];
+       version = "0.6.1";
+       sha256 = "0i88ciig40gil4gaj95qw28c2racdr2jb6rcpnsf60fzkqc8b3fk";
+       libraryHaskellDepends = [
+         base bytestring exceptions ghc-trace-events hashable
+       ];
        license = stdenv.lib.licenses.asl20;
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
@@ -183651,6 +187559,44 @@ self: {
        broken = true;
      }) {};
 
+  "opentelemetry-extra_0_6_1" = callPackage
+    ({ mkDerivation, aeson, async, base, binary, bytestring, clock
+     , containers, directory, exceptions, filepath, gauge
+     , generic-arbitrary, ghc-events, hashable, hashtables, http-client
+     , http-client-tls, http-types, hvega, opentelemetry, process
+     , QuickCheck, quickcheck-instances, random, scientific, splitmix
+     , stm, tasty, tasty-discover, tasty-hunit, tasty-quickcheck, text
+     , text-show, typed-process, unordered-containers
+     }:
+     mkDerivation {
+       pname = "opentelemetry-extra";
+       version = "0.6.1";
+       sha256 = "0ggxkhcrjj8sg6zf9jnp1j05wwlsay6k95c79j9j3dvw8qy2yjbx";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson async base binary bytestring clock containers directory
+         exceptions filepath ghc-events hashable http-client http-client-tls
+         http-types opentelemetry random scientific splitmix stm text
+         text-show unordered-containers
+       ];
+       executableHaskellDepends = [
+         async base bytestring clock containers directory exceptions
+         filepath hashtables http-client http-client-tls hvega opentelemetry
+         process text typed-process
+       ];
+       testHaskellDepends = [
+         base bytestring generic-arbitrary ghc-events hashable opentelemetry
+         QuickCheck quickcheck-instances splitmix tasty tasty-discover
+         tasty-hunit tasty-quickcheck text text-show unordered-containers
+       ];
+       testToolDepends = [ tasty-discover ];
+       benchmarkHaskellDepends = [ base gauge opentelemetry ];
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "opentelemetry-http-client" = callPackage
     ({ mkDerivation, base, http-client, http-types, opentelemetry, text
      }:
@@ -183694,6 +187640,34 @@ self: {
        broken = true;
      }) {};
 
+  "opentelemetry-lightstep_0_6_1" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, clock, containers
+     , exceptions, filepath, ghc-events, http-client, http-client-tls
+     , http-types, network, opentelemetry, opentelemetry-extra
+     , scientific, splitmix, stm, text, typed-process
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "opentelemetry-lightstep";
+       version = "0.6.1";
+       sha256 = "1a7rrm5aahqh63j0rr7nvd4y3q64m8qr7is0r0a17fwkkpppmyln";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson async base bytestring exceptions http-client http-client-tls
+         http-types network opentelemetry opentelemetry-extra scientific stm
+         text unordered-containers
+       ];
+       executableHaskellDepends = [
+         async base bytestring clock containers exceptions filepath
+         ghc-events http-client http-types opentelemetry opentelemetry-extra
+         splitmix text typed-process unordered-containers
+       ];
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "opentelemetry-wai" = callPackage
     ({ mkDerivation, base, bytestring, http-types, opentelemetry, text
      , wai
@@ -183710,6 +187684,22 @@ self: {
        broken = true;
      }) {};
 
+  "opentelemetry-wai_0_6_1" = callPackage
+    ({ mkDerivation, base, bytestring, http-types, opentelemetry, text
+     , wai
+     }:
+     mkDerivation {
+       pname = "opentelemetry-wai";
+       version = "0.6.1";
+       sha256 = "0g1a044sphd35z9crc8wbxsk4hfh1gpfi4g8rr1k4f842hznj7nf";
+       libraryHaskellDepends = [
+         base bytestring http-types opentelemetry text wai
+       ];
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "opentheory" = callPackage
     ({ mkDerivation, base, opentheory-primitive, QuickCheck }:
      mkDerivation {
@@ -183965,20 +187955,22 @@ self: {
      }) {};
 
   "openweathermap" = callPackage
-    ({ mkDerivation, aeson, base, directory, http-client
-     , optparse-applicative, servant, servant-client, xdg-basedir
+    ({ mkDerivation, aeson, base, directory, http-api-data, http-client
+     , optparse-applicative, servant, servant-client
+     , servant-client-core, time, xdg-basedir
      }:
      mkDerivation {
        pname = "openweathermap";
-       version = "0.1.0";
-       sha256 = "140m5jlbcrz42m5fr7cmq0n7zbdb0gcxwcvlpl0cb6r1vg4xp9qj";
+       version = "0.2.0";
+       sha256 = "1sd8rflm3zakpgm5va9rwdw9si4cbqyvdmpysw55ly6mzgvfxad1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base http-client servant servant-client
+         aeson base http-api-data http-client servant servant-client
+         servant-client-core
        ];
        executableHaskellDepends = [
-         base directory optparse-applicative xdg-basedir
+         base directory optparse-applicative time xdg-basedir
        ];
        description = "Access data at OpenWeatherMap";
        license = stdenv.lib.licenses.publicDomain;
@@ -184079,8 +188071,8 @@ self: {
      }:
      mkDerivation {
        pname = "opml-conduit";
-       version = "0.8.0.0";
-       sha256 = "08j6hm605km4j3w9n8mbwlzhz8avy3m941wgr9rp5dfkasi3s9p3";
+       version = "0.9.0.0";
+       sha256 = "012cnq24dhsiz6dfm23i1kac2pya50x2gj42cvcdhr8navz7czcb";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base case-insensitive conduit conduit-combinators containers
@@ -184191,14 +188183,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "optics-core_0_3" = callPackage
+  "optics-core_0_3_0_1" = callPackage
     ({ mkDerivation, array, base, containers, indexed-profunctors
      , transformers
      }:
      mkDerivation {
        pname = "optics-core";
-       version = "0.3";
-       sha256 = "0gjxbrgp7c9k40782i2hm0pmb4fdrzcwbkq1xsj1835xszzxlp8n";
+       version = "0.3.0.1";
+       sha256 = "01z1rjrmj3jqh3fygqa1asr4azhdnqpix27sdw3ygi5dnbcmn49h";
        libraryHaskellDepends = [
          array base containers indexed-profunctors transformers
        ];
@@ -184259,14 +188251,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "optics-th_0_3" = callPackage
+  "optics-th_0_3_0_2" = callPackage
     ({ mkDerivation, base, containers, mtl, optics-core, tagged
      , template-haskell, th-abstraction, transformers
      }:
      mkDerivation {
        pname = "optics-th";
-       version = "0.3";
-       sha256 = "1k8kwii9jn1gjswkf7p5j5yvq7p9z8rs09ak78s5lmvxkh4c7035";
+       version = "0.3.0.2";
+       sha256 = "1mxi4bwgpl02g7clbs4m5p16i64s5lp13811yhg66i50rnqwpw40";
        libraryHaskellDepends = [
          base containers mtl optics-core template-haskell th-abstraction
          transformers
@@ -184314,8 +188306,8 @@ self: {
      }:
      mkDerivation {
        pname = "optima";
-       version = "0.4";
-       sha256 = "0ryrz9739g1zql9ldll2ilfiyazgz5xixk31wajdqz0xdzqg3bbl";
+       version = "0.4.0.1";
+       sha256 = "029bizcajhmvkgmr7yb95bbhi00bnvhnlx4crbx06wridhz2lp23";
        libraryHaskellDepends = [
          attoparsec attoparsec-data base optparse-applicative text
          text-builder
@@ -184495,6 +188487,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "optparse-applicative_0_16_0_0" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, base, bytestring, process
+     , QuickCheck, transformers, transformers-compat
+     }:
+     mkDerivation {
+       pname = "optparse-applicative";
+       version = "0.16.0.0";
+       sha256 = "0aybamakg9zjac0b78lhfa1bvilkb76yryis6h0pf5j1khrkri89";
+       libraryHaskellDepends = [
+         ansi-wl-pprint base process transformers transformers-compat
+       ];
+       testHaskellDepends = [ base bytestring QuickCheck ];
+       description = "Utilities and combinators for parsing command line options";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "optparse-applicative-simple" = callPackage
     ({ mkDerivation, attoparsec, attoparsec-data, base-prelude
      , optparse-applicative, rerebase, text
@@ -184517,8 +188526,8 @@ self: {
     ({ mkDerivation, base, mtl }:
      mkDerivation {
        pname = "optparse-declarative";
-       version = "0.3.0";
-       sha256 = "1avy0g6jk34jbfp1xzqcyhb4j53knsbzx1pssl4b5f6nn981mbj8";
+       version = "0.3.1";
+       sha256 = "1s3bkkn5a8bgkbqdsf5ir18r0j0r2r0agz04q2ccafd26d8xdx2s";
        libraryHaskellDepends = [ base mtl ];
        description = "Declarative command line option parser";
        license = stdenv.lib.licenses.mit;
@@ -184556,6 +188565,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "optparse-generic_1_4_3" = callPackage
+    ({ mkDerivation, base, bytestring, Only, optparse-applicative
+     , system-filepath, text, time, transformers, void
+     }:
+     mkDerivation {
+       pname = "optparse-generic";
+       version = "1.4.3";
+       sha256 = "18ih1r28hlml9wysqrzljmgi6q90s3k6jaaa7a5i48vr9bl3prs8";
+       libraryHaskellDepends = [
+         base bytestring Only optparse-applicative system-filepath text time
+         transformers void
+       ];
+       description = "Auto-generate a command-line parser for your datatype";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "optparse-helper" = callPackage
     ({ mkDerivation, base, optparse-applicative }:
      mkDerivation {
@@ -184577,8 +188603,8 @@ self: {
      }:
      mkDerivation {
        pname = "optparse-simple";
-       version = "0.1.1.2";
-       sha256 = "1r00hkri42vyx552l8hcd1779fxiyl9w4k0pql915zsprirn8w82";
+       version = "0.1.1.3";
+       sha256 = "1wymqhac2sngkka8w880gq6y1kk3xs0flbv4mrhfgzrplhax8r9k";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -184885,8 +188911,8 @@ self: {
      }:
      mkDerivation {
        pname = "org-mode-lucid";
-       version = "1.3.0";
-       sha256 = "0a6iy2x0k9r3072zx0sf4k27xnihwckyd1h2pcqd61sxkgf3qkn3";
+       version = "1.5.0";
+       sha256 = "1vy8agbcrd81zskfwmrmz63vdif6a2wllr910nmg0jgqxbrd8wn1";
        libraryHaskellDepends = [
          base containers hashable lucid org-mode text
        ];
@@ -185060,6 +189086,34 @@ self: {
        broken = true;
      }) {};
 
+  "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.5.0";
+       sha256 = "1sf22silpj89sldd7wanlr34nsv77bq0cf4i0q1x2r20pz7s4w4m";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         base bytestring containers dlist exceptions ghc-lib-parser mtl syb
+         text
+       ];
+       executableHaskellDepends = [
+         base ghc-lib-parser gitrev optparse-applicative text
+       ];
+       testHaskellDepends = [
+         base containers filepath hspec path path-io text
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "A formatter for Haskell source code";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "ormolu" = callPackage
     ({ mkDerivation, base, bytestring, containers, dlist, exceptions
      , filepath, ghc-lib-parser, gitrev, hspec, hspec-discover, mtl
@@ -185067,10 +189121,10 @@ self: {
      }:
      mkDerivation {
        pname = "ormolu";
-       version = "0.0.3.1";
-       sha256 = "0pvnswbxi09fddnn012sha3fbmm30yzlzh2x1asw9ahjk3a3bdlg";
-       revision = "1";
-       editedCabalFile = "1prm2lip6w9fg8gaywdnxqcf2bcikcmnb2gi46nma3dfniipzbnq";
+       version = "0.1.2.0";
+       sha256 = "14ndqfcbx0y71d3q5i7d0scbvg9nd5qr5pdn7qvylxlkgpbc77qp";
+       revision = "2";
+       editedCabalFile = "07p7342972b2ffi46ll8jgbnlx97g7imzpl819hzc0yd2pjn4jn9";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -185089,15 +189143,15 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "ormolu_0_1_0_0" = callPackage
+  "ormolu_0_1_3_0" = callPackage
     ({ mkDerivation, base, bytestring, containers, dlist, exceptions
      , filepath, ghc-lib-parser, gitrev, hspec, hspec-discover, mtl
      , optparse-applicative, path, path-io, syb, text
      }:
      mkDerivation {
        pname = "ormolu";
-       version = "0.1.0.0";
-       sha256 = "1wpdj04hpnkk60swhx9d9cyazkgkjn2kkzmix7q1mil7hq23ynnp";
+       version = "0.1.3.0";
+       sha256 = "13s8irk1w7yrh9algbnvv5hjvnxmi3fndz34rncp33cyfnjv18j7";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -185117,18 +189171,41 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "orthotope" = callPackage
+    ({ mkDerivation, base, deepseq, dlist, HUnit, pretty, QuickCheck
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
+     , vector
+     }:
+     mkDerivation {
+       pname = "orthotope";
+       version = "0.1.0.0";
+       sha256 = "0nx97r1svhzayf0f4chj8mprqp524hliffnw5y612lwsx41c671k";
+       libraryHaskellDepends = [
+         base deepseq dlist pretty QuickCheck vector
+       ];
+       testHaskellDepends = [
+         base deepseq HUnit QuickCheck test-framework test-framework-hunit
+         test-framework-quickcheck2 vector
+       ];
+       description = "Multidimensional arrays inspired by APL";
+       license = stdenv.lib.licenses.asl20;
+     }) {};
+
   "os-release" = callPackage
-    ({ mkDerivation, base, containers, hlint, hspec, parsec, process
-     , regex-compat, temporary, transformers
+    ({ mkDerivation, aeson, base, bytestring, filepath, hspec
+     , hspec-megaparsec, megaparsec, pretty-simple, safe-exceptions
+     , tasty, tasty-golden, tasty-hspec, text, unordered-containers
      }:
      mkDerivation {
        pname = "os-release";
-       version = "0.2.2";
-       sha256 = "19rc9l7i1zq67r5i223pd9m6c1fyy98c29wdhsk5qsb1q7z5f4x9";
-       libraryHaskellDepends = [ base containers parsec transformers ];
+       version = "1.0.1";
+       sha256 = "05ajgnihm82ikxgvfnam0msn7id2apiyin9757jrc8wfsh3xvkmx";
+       libraryHaskellDepends = [
+         aeson base megaparsec safe-exceptions text unordered-containers
+       ];
        testHaskellDepends = [
-         base containers hlint hspec parsec process regex-compat temporary
-         transformers
+         base bytestring filepath hspec hspec-megaparsec megaparsec
+         pretty-simple tasty tasty-golden tasty-hspec text
        ];
        description = "/etc/os-release helpers";
        license = stdenv.lib.licenses.bsd3;
@@ -185539,19 +189616,6 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "packcheck";
-       version = "0.4.2";
-       sha256 = "0za6ravq945g9gdm6sbxqklnkg56saap0kjg5ra42dabd1ma4iys";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base ];
-       benchmarkHaskellDepends = [ base ];
-       description = "Universal build and CI testing for Haskell packages";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "packcheck_0_5_1" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "packcheck";
        version = "0.5.1";
        sha256 = "05hwcmg67vicrig7syfxkpbsaqfjzlik4jq8ijz2gdkh7v3czrvr";
        libraryHaskellDepends = [ base ];
@@ -185559,7 +189623,6 @@ self: {
        benchmarkHaskellDepends = [ base ];
        description = "Universal build and CI testing for Haskell packages";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "packdeps" = callPackage
@@ -185569,8 +189632,10 @@ self: {
      }:
      mkDerivation {
        pname = "packdeps";
-       version = "0.4.5";
-       sha256 = "07nsnxxs5y77w0v5dxw9mqgq98s3riws5846qshlnhq4l5q73php";
+       version = "0.6.0.0";
+       sha256 = "10hrsshzljs6yjzgpw6kpdc4fx4xrbafwicpapcmmj1y66rj00dz";
+       revision = "1";
+       editedCabalFile = "02akm54nkfw8jzc8b1b49pkbn4h73s5f968gyafmnq9jla0rcsjg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -185578,7 +189643,7 @@ self: {
          time
        ];
        executableHaskellDepends = [
-         base Cabal containers optparse-applicative process semigroups
+         base Cabal containers optparse-applicative process semigroups text
        ];
        description = "Check your cabal packages for lagging dependencies";
        license = stdenv.lib.licenses.bsd3;
@@ -185627,7 +189692,7 @@ self: {
          base binary criterion deepseq mtl unordered-containers vector
          vector-binary-instances
        ];
-       description = "Generation and traversal of highly compressed directed acyclic word graphs.";
+       description = "Generation and traversal of highly compressed directed acyclic word graphs";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -185995,8 +190060,8 @@ self: {
     ({ mkDerivation, base, c2hs, pam }:
      mkDerivation {
        pname = "pam";
-       version = "0.1";
-       sha256 = "1lmkq12p18qavx2c7xrnha56017y0f21ri4l3cqal4fb8zy0g5nj";
+       version = "0.2.0.0";
+       sha256 = "0j4hm7ph0iszf8wyqpy5jiplr14jj37z2yvgcgy7p5ab5p5r38gx";
        libraryHaskellDepends = [ base ];
        librarySystemDepends = [ pam ];
        libraryToolDepends = [ c2hs ];
@@ -186049,60 +190114,6 @@ self: {
      }) {};
 
   "pandoc" = callPackage
-    ({ mkDerivation, aeson, aeson-pretty, attoparsec, base
-     , base64-bytestring, binary, blaze-html, blaze-markup, bytestring
-     , case-insensitive, cmark-gfm, containers, criterion, data-default
-     , deepseq, Diff, directory, doclayout, doctemplates, emojis
-     , exceptions, executable-path, filepath, Glob, haddock-library
-     , hslua, hslua-module-system, hslua-module-text, HsYAML, HTTP
-     , http-client, http-client-tls, http-types, ipynb, jira-wiki-markup
-     , JuicyPixels, mtl, network, network-uri, pandoc-types, parsec
-     , process, QuickCheck, random, safe, scientific, SHA, skylighting
-     , skylighting-core, split, syb, tagsoup, tasty, tasty-golden
-     , tasty-hunit, tasty-lua, tasty-quickcheck, temporary, texmath
-     , text, text-conversions, time, unicode-transforms, unix
-     , unordered-containers, vector, weigh, xml, zip-archive, zlib
-     }:
-     mkDerivation {
-       pname = "pandoc";
-       version = "2.9.1.1";
-       sha256 = "0vc1ld57nv27gwq4mq0wdal8k2wxvsc0f3m2jwq9nkq7wbpwa8cx";
-       configureFlags = [ "-fhttps" "-f-trypandoc" ];
-       isLibrary = true;
-       isExecutable = true;
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         aeson aeson-pretty attoparsec base base64-bytestring binary
-         blaze-html blaze-markup bytestring case-insensitive cmark-gfm
-         containers data-default deepseq directory doclayout doctemplates
-         emojis exceptions filepath Glob haddock-library hslua
-         hslua-module-system hslua-module-text HsYAML HTTP http-client
-         http-client-tls http-types ipynb jira-wiki-markup JuicyPixels mtl
-         network network-uri pandoc-types parsec process random safe
-         scientific SHA skylighting skylighting-core split syb tagsoup
-         temporary texmath text text-conversions time unicode-transforms
-         unix unordered-containers vector xml zip-archive zlib
-       ];
-       executableHaskellDepends = [ base ];
-       testHaskellDepends = [
-         base base64-bytestring bytestring containers Diff directory
-         doctemplates executable-path filepath Glob hslua mtl pandoc-types
-         process QuickCheck tasty tasty-golden tasty-hunit tasty-lua
-         tasty-quickcheck temporary text time xml zip-archive
-       ];
-       benchmarkHaskellDepends = [
-         base bytestring containers criterion mtl text time weigh
-       ];
-       postInstall = ''
-         mkdir -p $out/share/man/man1
-         mv "man/"*.1 $out/share/man/man1/
-       '';
-       description = "Conversion between markup formats";
-       license = stdenv.lib.licenses.gpl2;
-       maintainers = with stdenv.lib.maintainers; [ peti ];
-     }) {};
-
-  "pandoc_2_9_2_1" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec, base-compat
      , base-noprelude, base64-bytestring, binary, blaze-html
      , blaze-markup, bytestring, case-insensitive, cmark-gfm, containers
@@ -186156,6 +190167,63 @@ self: {
        '';
        description = "Conversion between markup formats";
        license = stdenv.lib.licenses.gpl2;
+       maintainers = with stdenv.lib.maintainers; [ peti ];
+     }) {};
+
+  "pandoc_2_10_1" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, attoparsec, base
+     , base64-bytestring, binary, blaze-html, blaze-markup, bytestring
+     , case-insensitive, commonmark, commonmark-extensions
+     , commonmark-pandoc, connection, containers, criterion
+     , data-default, deepseq, Diff, directory, doclayout, doctemplates
+     , emojis, exceptions, executable-path, filepath, Glob
+     , haddock-library, hslua, hslua-module-system, hslua-module-text
+     , HsYAML, HTTP, http-client, http-client-tls, http-types, ipynb
+     , jira-wiki-markup, JuicyPixels, mtl, network, network-uri
+     , pandoc-types, parsec, process, QuickCheck, random, safe
+     , scientific, SHA, skylighting, skylighting-core, split, syb
+     , tagsoup, tasty, tasty-golden, tasty-hunit, tasty-lua
+     , tasty-quickcheck, temporary, texmath, text, text-conversions
+     , time, unicode-transforms, unix, unordered-containers, weigh, xml
+     , zip-archive, zlib
+     }:
+     mkDerivation {
+       pname = "pandoc";
+       version = "2.10.1";
+       sha256 = "16i2sc5nf2gx5aykbd0jmbjcj2ivj5941bvkdj4dxlvy1adlr2lk";
+       configureFlags = [ "-fhttps" "-f-trypandoc" ];
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty attoparsec base base64-bytestring binary
+         blaze-html blaze-markup bytestring case-insensitive commonmark
+         commonmark-extensions commonmark-pandoc connection containers
+         data-default deepseq directory doclayout doctemplates emojis
+         exceptions filepath Glob haddock-library hslua hslua-module-system
+         hslua-module-text HsYAML HTTP http-client http-client-tls
+         http-types ipynb jira-wiki-markup JuicyPixels mtl network
+         network-uri pandoc-types parsec process random safe scientific SHA
+         skylighting skylighting-core split syb tagsoup temporary texmath
+         text text-conversions time unicode-transforms unix
+         unordered-containers xml zip-archive zlib
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base base64-bytestring bytestring containers Diff directory
+         doctemplates exceptions executable-path filepath Glob hslua mtl
+         pandoc-types process QuickCheck tasty tasty-golden tasty-hunit
+         tasty-lua tasty-quickcheck temporary text time xml zip-archive
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring containers criterion mtl text time weigh
+       ];
+       postInstall = ''
+         mkdir -p $out/share/man/man1
+         mv "man/"*.1 $out/share/man/man1/
+       '';
+       description = "Conversion between markup formats";
+       license = stdenv.lib.licenses.gpl2Plus;
        hydraPlatforms = stdenv.lib.platforms.none;
        maintainers = with stdenv.lib.maintainers; [ peti ];
      }) {};
@@ -186170,8 +190238,10 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-citeproc";
-       version = "0.16.4.1";
-       sha256 = "1jbd6g82sn3546kimm0p6n7spfqr3b4dssjkr5v679jwb5w6hwmx";
+       version = "0.17.0.1";
+       sha256 = "0hi31h4jxamnyw0jsbwnbzy9gkp3a03mhsgwy9w73hi13lywxrgk";
+       revision = "1";
+       editedCabalFile = "0z1gnaagylsjx8f1i49bp4zhcx2hlkc3w9wkwzsvvjq0qcfgzis0";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -186195,7 +190265,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "pandoc-citeproc_0_17" = callPackage
+  "pandoc-citeproc_0_17_0_2" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring
      , Cabal, containers, data-default, directory, filepath, hs-bibutils
      , HsYAML, HsYAML-aeson, libyaml, mtl, network, old-locale, pandoc
@@ -186205,8 +190275,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-citeproc";
-       version = "0.17";
-       sha256 = "1cgmv8zdiqcbls7c6rqdd154z5r90p9wxrdy6nwmxma8qfmfgaa7";
+       version = "0.17.0.2";
+       sha256 = "1wp16zz740klyn5jr8qxn21zf1waym3pzzv5l6k08w2l6z54d20b";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -186237,8 +190307,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-citeproc-preamble";
-       version = "1.3";
-       sha256 = "1lnsklvqvi9569wxdkyk2qwc33mm5d3n28xj64847i8g9af2jqs9";
+       version = "1.6";
+       sha256 = "0xx2l0xjx0baaqmdnk29knxxhwfix1wrg7zysvgilf33zsvdc5a8";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -186257,8 +190327,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-crossref";
-       version = "0.3.6.3";
-       sha256 = "1528cn5phcsc2x3h69p64sm7jap34ca3dsdh5qw2jx1vmgn42mi5";
+       version = "0.3.8.1";
+       sha256 = "15h484xq015jy65mzaqjqyi4ppnqfrdvvj1llmp8k00vb2xcrzrr";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -186297,6 +190367,8 @@ self: {
        executableHaskellDepends = [ base csv pandoc pandoc-types ];
        description = "Convert CSV to Pandoc Table Markdown";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "pandoc-emphasize-code" = callPackage
@@ -186306,8 +190378,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-emphasize-code";
-       version = "0.2.4";
-       sha256 = "0fz0pkxx64d8bvrsg9s704mhhw9djq74x56dbv5w3y65nch8p3a5";
+       version = "0.3.0";
+       sha256 = "02bg6aippqbjzx1dqzq63qh4ggm6pyw6p8p5iay9ldxdgx4jicnc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -186407,6 +190479,8 @@ self: {
        ];
        description = "A Pandoc filter for including code from source files";
        license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "pandoc-japanese-filters" = callPackage
@@ -186519,31 +190593,38 @@ self: {
      }) {};
 
   "pandoc-plot" = callPackage
-    ({ mkDerivation, base, containers, data-default-class, deepseq
-     , directory, filepath, hashable, hspec, hspec-expectations, mtl
-     , open-browser, optparse-applicative, pandoc, pandoc-types
-     , parallel-io, shakespeare, tasty, tasty-hspec, tasty-hunit
-     , template-haskell, temporary, text, turtle, typed-process, yaml
+    ({ mkDerivation, async, base, bytestring, containers, criterion
+     , data-default-class, deepseq, directory, filepath, githash
+     , hashable, hspec, hspec-expectations, mtl, open-browser
+     , optparse-applicative, pandoc, pandoc-types, shakespeare, tasty
+     , tasty-hspec, tasty-hunit, template-haskell, temporary, text
+     , turtle, typed-process, yaml
      }:
      mkDerivation {
        pname = "pandoc-plot";
-       version = "0.2.2.0";
-       sha256 = "15xs3rrqc7hygmmiylfykdqhqsr7giqdhw3hmmnff8s8k708qv33";
+       version = "0.6.1.0";
+       sha256 = "0jyhb1ab6h990r159a3gdw0cbxxvjrjsd35yyca5bd5rqxzlvnay";
+       revision = "1";
+       editedCabalFile = "1kn5k6xrjs1gh273hc8zrp85w8g72g3rz79v5n4qk33n0pg6ydvw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base containers data-default-class directory filepath hashable mtl
-         pandoc pandoc-types parallel-io shakespeare temporary text turtle
-         typed-process yaml
+         async base bytestring containers data-default-class directory
+         filepath hashable mtl pandoc pandoc-types shakespeare temporary
+         text turtle typed-process yaml
        ];
        executableHaskellDepends = [
-         base data-default-class deepseq directory filepath open-browser
+         base deepseq directory filepath githash open-browser
          optparse-applicative pandoc pandoc-types template-haskell temporary
          text
        ];
        testHaskellDepends = [
-         base data-default-class directory filepath hspec hspec-expectations
-         mtl pandoc-types tasty tasty-hspec tasty-hunit temporary text
+         base containers data-default-class directory filepath hspec
+         hspec-expectations mtl pandoc-types tasty tasty-hspec tasty-hunit
+         temporary text
+       ];
+       benchmarkHaskellDepends = [
+         base criterion pandoc-types template-haskell text
        ];
        description = "A Pandoc filter to include figures generated from code blocks using your plotting toolkit of choice";
        license = stdenv.lib.licenses.gpl2;
@@ -186551,39 +190632,37 @@ self: {
        broken = true;
      }) {};
 
-  "pandoc-plot_0_5_0_0" = callPackage
-    ({ mkDerivation, async, base, bytestring, containers, criterion
-     , data-default-class, deepseq, directory, filepath, githash
-     , hashable, hspec, hspec-expectations, mtl, open-browser
-     , optparse-applicative, pandoc, pandoc-types, shakespeare, tasty
-     , tasty-hspec, tasty-hunit, template-haskell, temporary, text
-     , turtle, typed-process, yaml
+  "pandoc-plot_0_9_3_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, criterion
+     , data-default, directory, filepath, githash, hashable, hspec
+     , hspec-expectations, lifted-async, mtl, optparse-applicative
+     , pandoc, pandoc-types, shakespeare, tagsoup, tasty, tasty-hspec
+     , tasty-hunit, template-haskell, text, typed-process, yaml
      }:
      mkDerivation {
        pname = "pandoc-plot";
-       version = "0.5.0.0";
-       sha256 = "1wgk3q46am59if4b5s6pkabllsyy4xv47zs5h1lywdij3g4r4898";
+       version = "0.9.3.0";
+       sha256 = "0zhxniymm9szgv0xczq570s0pziiwhm2sbry0jxxqq8d0vdimxyq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         async base bytestring containers data-default-class directory
-         filepath hashable mtl pandoc pandoc-types shakespeare temporary
-         text turtle typed-process yaml
+         base bytestring containers data-default directory filepath hashable
+         lifted-async mtl pandoc pandoc-types shakespeare tagsoup text
+         typed-process yaml
        ];
        executableHaskellDepends = [
-         base deepseq directory filepath githash open-browser
-         optparse-applicative pandoc pandoc-types template-haskell temporary
-         text
+         base containers directory filepath githash optparse-applicative
+         pandoc pandoc-types template-haskell text typed-process
        ];
        testHaskellDepends = [
-         base data-default-class directory filepath hspec hspec-expectations
-         mtl pandoc-types tasty tasty-hspec tasty-hunit temporary text
+         base containers directory filepath hspec hspec-expectations
+         pandoc-types tasty tasty-hspec tasty-hunit text
        ];
        benchmarkHaskellDepends = [
          base criterion pandoc-types template-haskell text
        ];
        description = "A Pandoc filter to include figures generated from code blocks using your plotting toolkit of choice";
-       license = stdenv.lib.licenses.gpl2;
+       license = stdenv.lib.licenses.gpl2Plus;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -186653,6 +190732,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "pandoc-throw" = callPackage
+    ({ mkDerivation, base, exceptions, pandoc }:
+     mkDerivation {
+       pname = "pandoc-throw";
+       version = "0.1.0.0";
+       sha256 = "1i737mv2sgm65c53ggrxnscga92fya5khb5nhgbg1nnqgy2sjkm8";
+       libraryHaskellDepends = [ base exceptions pandoc ];
+       description = "MonadThrow behaviour for Pandoc";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "pandoc-types" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, criterion
      , deepseq, ghc-prim, HUnit, QuickCheck, string-qq, syb
@@ -186663,6 +190753,31 @@ self: {
        pname = "pandoc-types";
        version = "1.20";
        sha256 = "0wz89ywyhvxz8daw4ia132kg6ynx5y4wva4g899wvq4kyjy1dixa";
+       revision = "1";
+       editedCabalFile = "16l4gy0v34nrb6z3pag6i3gl6m4af5j6wg6yzyiga124xpqzhql3";
+       libraryHaskellDepends = [
+         aeson base bytestring containers deepseq ghc-prim QuickCheck syb
+         text transformers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers HUnit QuickCheck string-qq syb
+         test-framework test-framework-hunit test-framework-quickcheck2 text
+       ];
+       benchmarkHaskellDepends = [ base criterion text ];
+       description = "Types for representing a structured document";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "pandoc-types_1_21" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, criterion
+     , deepseq, ghc-prim, HUnit, QuickCheck, string-qq, syb
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
+     , text, transformers
+     }:
+     mkDerivation {
+       pname = "pandoc-types";
+       version = "1.21";
+       sha256 = "1wbb0hhjiw0b66kj1ck3qipwgdac5v7qvjaqszsz5fll3cqp4sna";
        libraryHaskellDepends = [
          aeson base bytestring containers deepseq ghc-prim QuickCheck syb
          text transformers
@@ -186674,6 +190789,31 @@ self: {
        benchmarkHaskellDepends = [ base criterion text ];
        description = "Types for representing a structured document";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "pandoc-types_1_22" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, criterion
+     , deepseq, ghc-prim, HUnit, QuickCheck, string-qq, syb
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
+     , text, transformers
+     }:
+     mkDerivation {
+       pname = "pandoc-types";
+       version = "1.22";
+       sha256 = "0kr5n9yw59513pw2rjc65qs55iq0prn16prk4781arqdh7g7a09q";
+       libraryHaskellDepends = [
+         aeson base bytestring containers deepseq ghc-prim QuickCheck syb
+         text transformers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers HUnit QuickCheck string-qq syb
+         test-framework test-framework-hunit test-framework-quickcheck2 text
+       ];
+       benchmarkHaskellDepends = [ base criterion text ];
+       description = "Types for representing a structured document";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pandoc-unlit" = callPackage
@@ -186706,6 +190846,8 @@ self: {
        ];
        description = "Utility functions to work with Pandoc in Haskell applications";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "pandoc-vimhl" = callPackage
@@ -186730,8 +190872,8 @@ self: {
     ({ mkDerivation }:
      mkDerivation {
        pname = "pandora";
-       version = "0.2.8";
-       sha256 = "0p556y2a54zmmdr6gnlkjb8xjcyibcr8vvlk3krwqc4zkr6rwv0s";
+       version = "0.3.0";
+       sha256 = "1k9b714rb9cgapn0vgwymrq7ma1lmq6klmlv37c6gqmb1c5k7ijh";
        description = "A box of patterns and paradigms";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -186764,8 +190906,8 @@ self: {
      }:
      mkDerivation {
        pname = "pango";
-       version = "0.13.8.0";
-       sha256 = "1skyfj0phd5hzpk86lj7qx0g6n09b1cfijlf759p7v34f47g6w2s";
+       version = "0.13.8.1";
+       sha256 = "0by8ada93srgapdg78n8hyk5xsqb7n54mjacvplwwsbrd1b7m9j0";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal filepath gtk2hs-buildtools ];
        libraryHaskellDepends = [
@@ -186949,8 +191091,8 @@ self: {
      }:
      mkDerivation {
        pname = "pantry";
-       version = "0.4.0.1";
-       sha256 = "182aiwwgrsdj9f4x71q1grj674d91djp4q6bz2l51ly5dsjy5wbf";
+       version = "0.4.0.2";
+       sha256 = "13rrd64qn96r9w623lns4cngalc2c0p2z1xzc0wv35kr3psnxwb4";
        libraryHaskellDepends = [
          aeson ansi-terminal base bytestring Cabal casa-client casa-types
          conduit conduit-extra containers cryptonite cryptonite-conduit
@@ -186976,7 +191118,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "pantry_0_5_0_0" = callPackage
+  "pantry_0_5_1_3" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, bytestring, Cabal
      , casa-client, casa-types, conduit, conduit-extra, containers
      , cryptonite, cryptonite-conduit, digest, exceptions, filelock
@@ -186990,8 +191132,8 @@ self: {
      }:
      mkDerivation {
        pname = "pantry";
-       version = "0.5.0.0";
-       sha256 = "1v5nnmrg62phnwym8cw6bjld8impdmrkq9cwxmyrab48gjwds41l";
+       version = "0.5.1.3";
+       sha256 = "0yx30zhyq0wbda6z8a9lvp8c83b3nj4l2s8lcxnvwgnzkanvlkss";
        libraryHaskellDepends = [
          aeson ansi-terminal base bytestring Cabal casa-client casa-types
          conduit conduit-extra containers cryptonite cryptonite-conduit
@@ -187529,6 +191671,8 @@ self: {
        ];
        description = "ParDual class for Parallel <-> Sequential";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "par-traverse" = callPackage
@@ -187687,8 +191831,8 @@ self: {
      }:
      mkDerivation {
        pname = "parameterized-utils";
-       version = "2.1.0";
-       sha256 = "0jfl75a1282lb50v1jw3ghmnwp1fp0fmwgj46lw87rm6vc2qlzhb";
+       version = "2.1.1";
+       sha256 = "18z0ykpvr7m8ffqpqwnclnyifig61n9l41w3hn39f37455z1dy39";
        libraryHaskellDepends = [
          base base-orphans constraints containers deepseq ghc-prim hashable
          hashtables lens mtl template-haskell text th-abstraction vector
@@ -187699,6 +191843,8 @@ self: {
        ];
        description = "Classes and data structures for working with data-kind indexed types";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "paramtree" = callPackage
@@ -187868,6 +192014,30 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "paripari_0_7_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, parser-combinators, random
+     , tasty, tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "paripari";
+       version = "0.7.0.0";
+       sha256 = "0c5vgnzgmqcrcsaw1l5fy0lh20ns22ych8ydkq7yzb8wr3y4nvr5";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring parser-combinators text
+       ];
+       executableHaskellDepends = [
+         base bytestring parser-combinators text
+       ];
+       testHaskellDepends = [
+         base bytestring parser-combinators random tasty tasty-hunit text
+       ];
+       description = "Parser combinators with fast-path and slower fallback for error reporting";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "parport" = callPackage
     ({ mkDerivation, array, base }:
      mkDerivation {
@@ -187917,6 +192087,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "parse-gcstats" = callPackage
+    ({ mkDerivation, attoparsec, base, conduit, conduit-extra, filepath
+     , tasty, tasty-golden, text, unordered-containers
+     }:
+     mkDerivation {
+       pname = "parse-gcstats";
+       version = "0.1.0.0";
+       sha256 = "07l2jy59grxqnn90kyj13zg7b5x8j21apcywf6m4yws41j8il0nc";
+       libraryHaskellDepends = [
+         attoparsec base text unordered-containers
+       ];
+       testHaskellDepends = [
+         attoparsec base conduit conduit-extra filepath tasty tasty-golden
+         text
+       ];
+       description = "Parse machine-readable GHC GC stats";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "parse-help" = callPackage
     ({ mkDerivation, attoparsec, base, cmdargs, containers
      , data-default, file-location, template-haskell, text, th-lift
@@ -188196,8 +192385,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "parsek";
-       version = "1.0.1.3";
-       sha256 = "184cbw9gz3vv2jbr2wzkygv25y70jayxd8d76pgpvjcaps4qqxp7";
+       version = "1.0.2.0";
+       sha256 = "05hi14wn6pzhknahyvjkw4cg9qfy20krig2pkx00r4s095zmpqza";
        libraryHaskellDepends = [ base ];
        description = "Parallel Parsing Processes";
        license = stdenv.lib.licenses.gpl3;
@@ -188237,8 +192426,8 @@ self: {
        pname = "parser-combinators-tests";
        version = "1.2.1";
        sha256 = "0iy4iajpjka1diy660x3mvmh8kldwf3svwdmvlxh26dsqy2s8sx8";
-       revision = "1";
-       editedCabalFile = "07isz6d136dkbr1aykznfi3dr3dp18x14548af207rd29x51g0di";
+       revision = "2";
+       editedCabalFile = "07j1y8iqljaqyqhy37db2xvs7y9z91r3sndzmz4gga7w2jpkhq2b";
        isLibrary = false;
        isExecutable = false;
        testHaskellDepends = [
@@ -188676,23 +192865,6 @@ self: {
      }) {};
 
   "password" = callPackage
-    ({ mkDerivation, base, bytestring, doctest, QuickCheck
-     , quickcheck-instances, scrypt, tasty, tasty-quickcheck, text
-     }:
-     mkDerivation {
-       pname = "password";
-       version = "1.0.0.0";
-       sha256 = "08igga8jd7g0lnakmn8lq7ssyqwkknp0lbnlhbq4qwin9n8pzl0c";
-       libraryHaskellDepends = [ base scrypt text ];
-       testHaskellDepends = [
-         base bytestring doctest QuickCheck quickcheck-instances scrypt
-         tasty tasty-quickcheck text
-       ];
-       description = "plain-text password and hashed password datatypes and functions";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "password_2_0_1_1" = callPackage
     ({ mkDerivation, base, base-compat, base64, bytestring, Cabal
      , cabal-doctest, cryptonite, doctest, memory, QuickCheck
      , quickcheck-instances, scrypt, tasty, tasty-quickcheck
@@ -188702,6 +192874,8 @@ self: {
        pname = "password";
        version = "2.0.1.1";
        sha256 = "1fi39w79p7jaw85i5r8f4flw7s1n2ljxj5ci9gda6a556015w1p8";
+       revision = "1";
+       editedCabalFile = "1r27scxmkmvw8nbcg4x3k10ibq4qhrmpwgnqbnz32g1fvw7mlxg3";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base base64 bytestring cryptonite memory text
@@ -188713,28 +192887,9 @@ self: {
        ];
        description = "Hashing and checking of passwords";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "password-instances" = callPackage
-    ({ mkDerivation, aeson, base, doctest, http-api-data, password
-     , persistent, QuickCheck, quickcheck-instances
-     }:
-     mkDerivation {
-       pname = "password-instances";
-       version = "1.0.0.0";
-       sha256 = "0i87ij207i4zvmgji457dimhpmy8hs7ddwpqr86riyscdvzvml91";
-       libraryHaskellDepends = [
-         aeson base http-api-data password persistent
-       ];
-       testHaskellDepends = [
-         base doctest QuickCheck quickcheck-instances
-       ];
-       description = "typeclass instances for password package";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "password-instances_2_0_0_1" = callPackage
     ({ mkDerivation, aeson, base, base-compat, Cabal, cabal-doctest
      , doctest, http-api-data, password, persistent, QuickCheck
      , quickcheck-instances, tasty, tasty-hunit, tasty-quickcheck
@@ -188755,7 +192910,6 @@ self: {
        ];
        description = "typeclass instances for password package";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "passwords" = callPackage
@@ -188818,28 +192972,28 @@ self: {
      }) {};
 
   "patat" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, ansi-wl-pprint, base
+    ({ mkDerivation, aeson, ansi-terminal, ansi-wl-pprint, async, base
      , base64-bytestring, bytestring, colour, containers, directory
      , filepath, mtl, network, network-uri, optparse-applicative, pandoc
-     , process, QuickCheck, skylighting, tasty, tasty-hunit
-     , tasty-quickcheck, terminal-size, text, time, unordered-containers
-     , yaml
+     , pandoc-types, process, QuickCheck, skylighting, tasty
+     , tasty-hunit, tasty-quickcheck, terminal-size, text, time
+     , unordered-containers, yaml
      }:
      mkDerivation {
        pname = "patat";
-       version = "0.8.4.3";
-       sha256 = "1zz007l9ap9qlhgwr7jjavr6h5r1cnr9wflyxpvjmdzmn6ch74w4";
+       version = "0.8.6.1";
+       sha256 = "1n9qw4wmh7aqmnkqdc6v12rs80vipnszr4744nlkasq6jlzijw0c";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson ansi-terminal ansi-wl-pprint base base64-bytestring
+         aeson ansi-terminal ansi-wl-pprint async base base64-bytestring
          bytestring colour containers directory filepath mtl network
-         network-uri optparse-applicative pandoc process skylighting
-         terminal-size text time unordered-containers yaml
+         network-uri optparse-applicative pandoc pandoc-types process
+         skylighting terminal-size text time unordered-containers yaml
        ];
        executableHaskellDepends = [ base ];
        testHaskellDepends = [
-         base directory QuickCheck tasty tasty-hunit tasty-quickcheck
+         base directory QuickCheck tasty tasty-hunit tasty-quickcheck text
        ];
        description = "Terminal-based presentations using Pandoc";
        license = stdenv.lib.licenses.gpl2;
@@ -188865,8 +193019,6 @@ self: {
        testHaskellDepends = [ base directory filemanip filepath hlint ];
        description = "Infrastructure for writing patches which act on other types";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "patch-combinators" = callPackage
@@ -188935,15 +193087,17 @@ self: {
      }:
      mkDerivation {
        pname = "path";
-       version = "0.7.1";
-       sha256 = "1z2gj4108827lb03f7cdqhijjgqjvv9glzrzfv96cxkwgi6y38jx";
+       version = "0.7.0";
+       sha256 = "1dl7yjmkcdm3wlbj1s5qvkl31apl3dnwz5jc8h3hdq0w722x4a5k";
+       revision = "1";
+       editedCabalFile = "0ph5qs50lm8ac58v8df0mmivqfilb1wz14568q06aws6gwj9qqpi";
        libraryHaskellDepends = [
          aeson base deepseq exceptions filepath hashable template-haskell
          text
        ];
        testHaskellDepends = [
          aeson base bytestring filepath genvalidity genvalidity-hspec
-         genvalidity-property hspec mtl QuickCheck template-haskell validity
+         genvalidity-property hspec mtl QuickCheck validity
        ];
        description = "Support for well-typed paths";
        license = stdenv.lib.licenses.bsd3;
@@ -188972,6 +193126,28 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "path-binary-instance" = callPackage
+    ({ mkDerivation, base, binary, path }:
+     mkDerivation {
+       pname = "path-binary-instance";
+       version = "0.1.0.1";
+       sha256 = "19ck3ja66vcgl90wyw6r9d2h50kdv9gjs7sxjgciam6v6867vb0y";
+       libraryHaskellDepends = [ base binary path ];
+       description = "Binary instance for Path";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "path-extensions" = callPackage
+    ({ mkDerivation, base, exceptions, path }:
+     mkDerivation {
+       pname = "path-extensions";
+       version = "0.1.1.0";
+       sha256 = "0pvjb26arsj892addi9x26v8naislh87x6av70k8fjnsish3pnj5";
+       libraryHaskellDepends = [ base exceptions path ];
+       description = "Enumeration of common filetype extensions for use with the path library";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "path-extra" = callPackage
     ({ mkDerivation, attoparsec, base, path, QuickCheck
      , quickcheck-instances, tasty, tasty-quickcheck, text
@@ -188997,8 +193173,8 @@ self: {
        pname = "path-io";
        version = "1.6.0";
        sha256 = "0hcdxxwkhdhm59p6x74k1fsgsrqfa100c83cslm1h9ln0anj1r3k";
-       revision = "1";
-       editedCabalFile = "1kwrkpmwmar8nwaar02m3kfy24vl3kzm0m3iq0d4ryd84a6a0dax";
+       revision = "3";
+       editedCabalFile = "0rd7svl3jxzqnf8l2h4f7xwlv8av67y85bwmr40954disq714l74";
        libraryHaskellDepends = [
          base containers directory dlist exceptions filepath path temporary
          time transformers unix-compat
@@ -189011,6 +193187,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "path-like" = callPackage
+    ({ mkDerivation, base, path }:
+     mkDerivation {
+       pname = "path-like";
+       version = "0.2.0.2";
+       sha256 = "1hr58zcgcybd34zzas5kf0jgcm5z2wdlbhskwj9233503nnlwkq9";
+       libraryHaskellDepends = [ base path ];
+       description = "PathLike, FileLike and DirLike type classes for the Path library";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "path-pieces" = callPackage
     ({ mkDerivation, base, hspec, HUnit, QuickCheck, text, time }:
      mkDerivation {
@@ -189041,6 +193228,17 @@ self: {
        broken = true;
      }) {};
 
+  "path-utils" = callPackage
+    ({ mkDerivation, base, exceptions, path, split, text }:
+     mkDerivation {
+       pname = "path-utils";
+       version = "0.1.0.0";
+       sha256 = "1abva4kfmj00ahd44rgzr6mk41y84gkvc6z7vwqz7m2g3r4zsxm2";
+       libraryHaskellDepends = [ base exceptions path split text ];
+       description = "Handful of simple utility functions for the path library";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "pathfinding" = callPackage
     ({ mkDerivation, base, containers }:
      mkDerivation {
@@ -189091,8 +193289,8 @@ self: {
        pname = "paths";
        version = "0.2.0.0";
        sha256 = "18pzjlnmx7w79riig7qzyhw13jla92lals9lwayl23qr02ndna4v";
-       revision = "2";
-       editedCabalFile = "0r5nm9qqqa4nkz6aymhh62lfmmkjip25a4lk441a108i1ngkjl5m";
+       revision = "3";
+       editedCabalFile = "15h5fqql4jj950lm5yddpxczcbslckq9sg2ygdgqlmahjw8mwnnf";
        libraryHaskellDepends = [
          base bytestring deepseq directory filepath template-haskell text
          time
@@ -189107,8 +193305,8 @@ self: {
      }:
      mkDerivation {
        pname = "pathtype";
-       version = "0.8.1";
-       sha256 = "03rlj8klzxqimjv44h07xbij0acr63pddxppq9yfjlyggmaxrrnm";
+       version = "0.8.1.1";
+       sha256 = "0322q8wd4mbp7q0cgym6mf2dxg2srp76r38kprxl9ik53s3y3p67";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -189239,6 +193437,22 @@ self: {
        broken = true;
      }) {};
 
+  "pava" = callPackage
+    ({ mkDerivation, base, criterion, hspec, hspec-discover, mwc-random
+     , vector
+     }:
+     mkDerivation {
+       pname = "pava";
+       version = "0.1.0.0";
+       sha256 = "0pi8pgfha113064fxl9vmd72drxxlj6zld4fqrf3y2qwhyikka5v";
+       libraryHaskellDepends = [ base vector ];
+       testHaskellDepends = [ base hspec hspec-discover vector ];
+       testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [ base criterion mwc-random vector ];
+       description = "Greatest convex majorants and least concave minorants";
+       license = stdenv.lib.licenses.gpl3Plus;
+     }) {};
+
   "paymill" = callPackage
     ({ mkDerivation, base, hspec }:
      mkDerivation {
@@ -189830,19 +194044,26 @@ self: {
      }) {};
 
   "pdftotext" = callPackage
-    ({ mkDerivation, base, bytestring, hspec, hspec-discover
-     , poppler-cpp, text
+    ({ mkDerivation, aeson, ansi-wl-pprint, base, bytestring, hspec
+     , hspec-discover, optparse-applicative, poppler-cpp, range, text
      }:
      mkDerivation {
        pname = "pdftotext";
-       version = "0.0.1.0";
-       sha256 = "1agxbrcpsw8s0qsv6i0vxvzvskzn5abd42l7ab2na75v9fs8p4l8";
+       version = "0.1.0.0";
+       sha256 = "01zdcggm5p52j7bwimfhk5x5mjnbpz4iz8g5jq3lnnc3ddd0ab6y";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [ base bytestring text ];
        libraryPkgconfigDepends = [ poppler-cpp ];
+       executableHaskellDepends = [
+         aeson ansi-wl-pprint base optparse-applicative range text
+       ];
        testHaskellDepends = [ base hspec text ];
        testToolDepends = [ hspec-discover ];
        description = "Extracts text from PDF using poppler";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {poppler-cpp = null;};
 
   "pdynload" = callPackage
@@ -190233,6 +194454,25 @@ self: {
        broken = true;
      }) {};
 
+  "percent-encoder" = callPackage
+    ({ mkDerivation, array, base, bytestring, criterion, network-uri
+     , QuickCheck, quickcheck-instances
+     }:
+     mkDerivation {
+       pname = "percent-encoder";
+       version = "0.0.0.0";
+       sha256 = "1aqa25kydhvf9jiqk5a928fmgi9g94d2b44gkq8vqlzbq0azi126";
+       libraryHaskellDepends = [ array base bytestring ];
+       testHaskellDepends = [
+         base bytestring QuickCheck quickcheck-instances
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion network-uri
+       ];
+       description = "Percent encode/decode ByteStrings";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "percent-format" = callPackage
     ({ mkDerivation, base, leancheck }:
      mkDerivation {
@@ -190267,6 +194507,8 @@ self: {
        pname = "perceptual-hash";
        version = "0.1.3.5";
        sha256 = "0f36sy9ixwbx55m3634lr0hrhllj68wv5jilzq0xik2171g3rx2p";
+       revision = "1";
+       editedCabalFile = "0s67w3sc480vrmdjr67y6gjyhfik6v2lrh99abcgj6ikgiwx2lbf";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -190337,12 +194579,12 @@ self: {
      }:
      mkDerivation {
        pname = "perf";
-       version = "0.6.0";
-       sha256 = "1cn2f3hisw5r99m459zalcgfgdr54f8wsp1wlg48jjvgvsx5dj0k";
+       version = "0.7.0";
+       sha256 = "140fy74sq3b1k6px008yz2pr9ikikd68llzc411qs3nclwzasxgx";
        libraryHaskellDepends = [
          base containers deepseq foldl rdtsc text time transformers
        ];
-       testHaskellDepends = [ base doctest ];
+       testHaskellDepends = [ base deepseq doctest rdtsc ];
        description = "Low-level run time measurement";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -190510,6 +194752,103 @@ self: {
        broken = true;
      }) {};
 
+  "periodic-client" = callPackage
+    ({ mkDerivation, base, binary, byteable, bytestring, hslogger
+     , metro, metro-socket, mtl, periodic-common, resource-pool
+     , transformers, unliftio
+     }:
+     mkDerivation {
+       pname = "periodic-client";
+       version = "1.1.7.1";
+       sha256 = "0d9ngiq064fajiy2c4sddpgr93ia13iv83rdnvbk05x7agi0srjb";
+       libraryHaskellDepends = [
+         base binary byteable bytestring hslogger metro metro-socket mtl
+         periodic-common resource-pool transformers unliftio
+       ];
+       description = "Periodic task system haskell client";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "periodic-client-exe" = callPackage
+    ({ mkDerivation, base, binary, boxes, bytestring
+     , data-default-class, deepseq, http-types, metro, metro-socket
+     , metro-transport-tls, metro-transport-websockets
+     , metro-transport-xor, periodic-client, periodic-common, process
+     , scotty, streaming-commons, text, unix-time, unliftio, warp
+     , websockets
+     }:
+     mkDerivation {
+       pname = "periodic-client-exe";
+       version = "1.1.7.1";
+       sha256 = "0mgcvkc4sw7f1idjnhcj6qinnm3w47as6zjx2s8cxyfxn0ma73ll";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base binary boxes bytestring data-default-class deepseq http-types
+         metro metro-socket metro-transport-tls metro-transport-websockets
+         metro-transport-xor periodic-client periodic-common process scotty
+         streaming-commons text unix-time unliftio warp websockets
+       ];
+       description = "Periodic task system haskell client executables";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "periodic-common" = callPackage
+    ({ mkDerivation, base, binary, byteable, bytestring, entropy
+     , hashable, hslogger, metro, text, unliftio, vector
+     }:
+     mkDerivation {
+       pname = "periodic-common";
+       version = "1.1.7.0";
+       sha256 = "17rbzps7s4vwpf6390lz158hj1m5w6b791v8srg4mz9wd493iwbg";
+       libraryHaskellDepends = [
+         base binary byteable bytestring entropy hashable hslogger metro
+         text unliftio vector
+       ];
+       description = "Periodic task system common";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "periodic-polynomials" = callPackage
+    ({ mkDerivation, base, vector }:
+     mkDerivation {
+       pname = "periodic-polynomials";
+       version = "0.2.0.0";
+       sha256 = "1y7hj8cjdy5zpp7sg7yfaafcid7ssf23g4az6fwk2hrcrk97sf2i";
+       libraryHaskellDepends = [ base vector ];
+       description = "A library for working with periodic polynomials (very basic functionality)";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "periodic-server" = callPackage
+    ({ mkDerivation, async, base, base64-bytestring, binary, byteable
+     , bytestring, direct-sqlite, entropy, filepath, hslogger, metro
+     , metro-socket, metro-transport-tls, metro-transport-websockets
+     , metro-transport-xor, mtl, network, periodic-common
+     , postgresql-simple, psqueues, resource-pool, stm, transformers
+     , unliftio, unordered-containers
+     }:
+     mkDerivation {
+       pname = "periodic-server";
+       version = "1.1.7.1";
+       sha256 = "1gvx5n86xm14yp07ag57mw5pfig0ldpnwmg1y4vrj003k046n29p";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         async base base64-bytestring binary byteable bytestring
+         direct-sqlite entropy filepath hslogger metro mtl network
+         periodic-common postgresql-simple psqueues resource-pool stm
+         transformers unliftio unordered-containers
+       ];
+       executableHaskellDepends = [
+         base bytestring hslogger metro metro-socket metro-transport-tls
+         metro-transport-websockets metro-transport-xor periodic-common
+         unliftio
+       ];
+       description = "Periodic task system haskell server";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "perm" = callPackage
     ({ mkDerivation, base, catch-fd, HUnit, mtl, test-framework
      , test-framework-hunit, transformers
@@ -190599,6 +194938,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "persist-state" = callPackage
+    ({ mkDerivation, base, bytestring, containers, ghc-prim, QuickCheck
+     , test-framework, test-framework-quickcheck2, text
+     }:
+     mkDerivation {
+       pname = "persist-state";
+       version = "0.2.0.0";
+       sha256 = "1jmrba3nmd9qvvgmm1zz0qrhikzjdcg6rc38f4q3gq6yw4rap4kj";
+       libraryHaskellDepends = [
+         base bytestring containers ghc-prim text
+       ];
+       testHaskellDepends = [
+         base bytestring QuickCheck test-framework
+         test-framework-quickcheck2 text
+       ];
+       description = "Serialization library with state and leb128 encoding";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "persist2er" = callPackage
     ({ mkDerivation, base, optparse-applicative, persistent, text }:
      mkDerivation {
@@ -190619,24 +194977,6 @@ self: {
   "persistable-record" = callPackage
     ({ mkDerivation, array, base, containers, dlist, names-th
      , product-isomorphic, quickcheck-simple, template-haskell
-     , th-data-compat, transformers
-     }:
-     mkDerivation {
-       pname = "persistable-record";
-       version = "0.6.0.4";
-       sha256 = "1ygqllybclw9mm0n05vh635wbz6qlsl2yhas3fxr3xhwsrrvwfkd";
-       libraryHaskellDepends = [
-         array base containers dlist names-th product-isomorphic
-         template-haskell th-data-compat transformers
-       ];
-       testHaskellDepends = [ base quickcheck-simple ];
-       description = "Binding between SQL database values and haskell records";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "persistable-record_0_6_0_5" = callPackage
-    ({ mkDerivation, array, base, containers, dlist, names-th
-     , product-isomorphic, quickcheck-simple, template-haskell
      , th-bang-compat, th-constraint-compat, th-data-compat
      , transformers
      }:
@@ -190652,7 +194992,6 @@ self: {
        testHaskellDepends = [ base quickcheck-simple ];
        description = "Binding between SQL database values and haskell records";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "persistable-types-HDBC-pg" = callPackage
@@ -190952,8 +195291,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent-mongoDB";
-       version = "2.10.0.0";
-       sha256 = "1z895y21raak3x9qw05hgif5qyvr6c7pkc59wzg7irk8mxijyf4n";
+       version = "2.10.0.1";
+       sha256 = "194cxlxyaxwzgm7a7q8530bh842s5s1vmq33pclldp78nfy1dczm";
        libraryHaskellDepends = [
          aeson base bson bytestring cereal conduit http-api-data mongoDB
          network path-pieces persistent resource-pool resourcet text time
@@ -191151,6 +195490,29 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "persistent-qq_2_9_2" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, fast-logger
+     , haskell-src-meta, hspec, HUnit, monad-logger, mtl, persistent
+     , persistent-sqlite, persistent-template, resourcet
+     , template-haskell, text, unliftio
+     }:
+     mkDerivation {
+       pname = "persistent-qq";
+       version = "2.9.2";
+       sha256 = "1nks3b420g447i3bvlpf3f41ry8jkfkl60m9yl48vyxgbpcjq523";
+       libraryHaskellDepends = [
+         base haskell-src-meta mtl persistent template-haskell text
+       ];
+       testHaskellDepends = [
+         aeson base bytestring fast-logger haskell-src-meta hspec HUnit
+         monad-logger mtl persistent persistent-sqlite persistent-template
+         resourcet template-haskell text unliftio
+       ];
+       description = "Provides a quasi-quoter for raw SQL for persistent";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "persistent-ratelimit" = callPackage
     ({ mkDerivation, base, time, yesod }:
      mkDerivation {
@@ -191158,31 +195520,30 @@ self: {
        version = "0.3.0.0";
        sha256 = "05h7wlw82ljjic50qhzlldhidz344id1fpf0yaxrhqvx7wkgyi2m";
        libraryHaskellDepends = [ base time yesod ];
-       description = "A library for rate limiting activities with a persistent backend.";
+       description = "A library for rate limiting activities with a persistent backend";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
 
   "persistent-redis" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, binary, bytestring, hedis
-     , http-api-data, monad-control, mtl, path-pieces, persistent
-     , persistent-template, scientific, template-haskell, text, time
-     , transformers, utf8-string
+    ({ mkDerivation, aeson, base, binary, bytestring, hedis
+     , http-api-data, mtl, path-pieces, persistent, persistent-template
+     , scientific, template-haskell, text, time, transformers
+     , utf8-string
      }:
      mkDerivation {
        pname = "persistent-redis";
-       version = "2.5.2.2";
-       sha256 = "1mkdc3s39h0zqzf86zzwyfxfpc4fasrhpfdypkj8mkljbh7v1i1l";
+       version = "2.5.2.5";
+       sha256 = "0h2bwr5svj36n3axnrgnrzkysg4ywf9d97x4fwwsjgn01gwr262k";
        libraryHaskellDepends = [
-         aeson attoparsec base binary bytestring hedis http-api-data
-         monad-control mtl path-pieces persistent scientific text time
-         transformers utf8-string
+         aeson base binary bytestring hedis http-api-data mtl path-pieces
+         persistent scientific text time transformers utf8-string
        ];
        testHaskellDepends = [
-         aeson attoparsec base binary bytestring hedis http-api-data
-         monad-control mtl path-pieces persistent persistent-template
-         scientific template-haskell text time transformers utf8-string
+         aeson base binary bytestring hedis http-api-data mtl path-pieces
+         persistent persistent-template scientific template-haskell text
+         time transformers utf8-string
        ];
        description = "Backend for persistent library using Redis";
        license = stdenv.lib.licenses.bsd3;
@@ -191322,6 +195683,8 @@ self: {
        pname = "persistent-template";
        version = "2.8.2.3";
        sha256 = "1y96aj5i3c1j2ls6980l8lfjj9b3vfmp3766xk5af1870vj1s1lf";
+       revision = "1";
+       editedCabalFile = "0ilgcn3k72b2zm53yy4na4y0f8xfrlw6s5w3xhhavg6blyw971j7";
        libraryHaskellDepends = [
          aeson base bytestring containers http-api-data monad-control
          monad-logger path-pieces persistent template-haskell text
@@ -191339,7 +195702,7 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ psibi ];
      }) {};
 
-  "persistent-template_2_8_3_0" = callPackage
+  "persistent-template_2_8_3_1" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, criterion
      , deepseq, deepseq-generics, file-embed, hspec, http-api-data
      , monad-control, monad-logger, path-pieces, persistent, QuickCheck
@@ -191348,8 +195711,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent-template";
-       version = "2.8.3.0";
-       sha256 = "0ss6xa8lg6fg7ch9b2ps2s0nn87dp070xwm23z33mj2m5jd6n7kr";
+       version = "2.8.3.1";
+       sha256 = "1g42j4pqf40wj6b9zzyvimrfvrpvjfzigydsx2wkr5dld909izb0";
        libraryHaskellDepends = [
          aeson base bytestring containers http-api-data monad-control
          monad-logger path-pieces persistent template-haskell text
@@ -191413,6 +195776,30 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "persistent-test_2_0_3_2" = callPackage
+    ({ mkDerivation, aeson, base, blaze-html, bytestring, conduit
+     , containers, exceptions, hspec, hspec-expectations, HUnit
+     , monad-control, monad-logger, mtl, path-pieces, persistent
+     , persistent-template, QuickCheck, quickcheck-instances, random
+     , resourcet, text, time, transformers, transformers-base, unliftio
+     , unliftio-core, unordered-containers
+     }:
+     mkDerivation {
+       pname = "persistent-test";
+       version = "2.0.3.2";
+       sha256 = "0d7a6m4qm6xzyv7h2fqn9hgv7r7q6dwh7x04ddsrygjxdgpwgqf3";
+       libraryHaskellDepends = [
+         aeson base blaze-html bytestring conduit containers exceptions
+         hspec hspec-expectations HUnit monad-control monad-logger mtl
+         path-pieces persistent persistent-template QuickCheck
+         quickcheck-instances random resourcet text time transformers
+         transformers-base unliftio unliftio-core unordered-containers
+       ];
+       description = "Tests for Persistent";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "persistent-typed-db" = callPackage
     ({ mkDerivation, aeson, base, bytestring, conduit, esqueleto, hspec
      , http-api-data, monad-logger, path-pieces, persistent
@@ -191762,6 +196149,20 @@ self: {
        broken = true;
      }) {};
 
+  "pgf2" = callPackage
+    ({ mkDerivation, base, containers, gu, pgf, pretty }:
+     mkDerivation {
+       pname = "pgf2";
+       version = "1.2.1";
+       sha256 = "10nbwhdirhlsh68f14z8y75wlbs9f9xcn8cbgkf47m74x71jqqb3";
+       libraryHaskellDepends = [ base containers pretty ];
+       librarySystemDepends = [ gu pgf ];
+       description = "Bindings to the C version of the PGF runtime";
+       license = stdenv.lib.licenses.lgpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {gu = null; inherit (pkgs) pgf;};
+
   "pgm" = callPackage
     ({ mkDerivation, array, base, bytestring, parsec }:
      mkDerivation {
@@ -192022,6 +196423,17 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "phonetic-languages-ukrainian" = callPackage
+    ({ mkDerivation, base, mmsyn2, mmsyn5, vector }:
+     mkDerivation {
+       pname = "phonetic-languages-ukrainian";
+       version = "0.2.2.0";
+       sha256 = "0f59pzl4309hx65djnzn6wm3pkapzr2rkkcr41b65smlxh4pzzs7";
+       libraryHaskellDepends = [ base mmsyn2 mmsyn5 vector ];
+       description = "Prepares Ukrainian text to be used as a phonetic language text";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "phooey" = callPackage
     ({ mkDerivation, array, base, mtl, reactive, TypeCompose, wx
      , wxcore
@@ -192283,10 +196695,8 @@ self: {
     ({ mkDerivation, base, containers, network, stm, text }:
      mkDerivation {
        pname = "pickle";
-       version = "1.0.0.0";
-       sha256 = "066vla7x4ls59rhx9adr4lqx9yi5d047vcy90wgqh3lmnm7nj77m";
-       revision = "1";
-       editedCabalFile = "10fbbygp1w79h8spmcdwz56vl0gw761rfvb731fhmsvm35390jd9";
+       version = "1.0.1.0";
+       sha256 = "13c1n06v6mh9lyplfg0y1gdijk2mhxg4ln59v7i2z4j1y65y8cz9";
        libraryHaskellDepends = [ base containers network stm text ];
        description = "Instant StatsD in Haskell";
        license = stdenv.lib.licenses.mit;
@@ -192592,20 +197002,24 @@ self: {
      }) {};
 
   "pine" = callPackage
-    ({ mkDerivation, base, containers, sdl2, sdl2-image, stm, text }:
+    ({ mkDerivation, base, containers, linear, mtl, sdl2, sdl2-image
+     , stm, text
+     }:
      mkDerivation {
        pname = "pine";
-       version = "0.1.0.2";
-       sha256 = "0896l27g1cmrvkq2b1bdy7sfr6z0jg2pk1mvhwr1n3f0gwgiy36i";
+       version = "0.1.0.3";
+       sha256 = "08m5d4wvqbkw9db0v79yrhqv9pcncl6x6zpix1861lqbw613i4iw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base containers sdl2 sdl2-image stm text
+         base containers linear mtl sdl2 sdl2-image stm text
        ];
        executableHaskellDepends = [
-         base containers sdl2 sdl2-image stm text
+         base containers linear mtl sdl2 sdl2-image stm text
+       ];
+       testHaskellDepends = [
+         base containers linear mtl sdl2 sdl2-image stm text
        ];
-       testHaskellDepends = [ base containers sdl2 sdl2-image stm text ];
        description = "Functional 2D Game Framework";
        license = stdenv.lib.licenses.zlib;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -192775,15 +197189,15 @@ self: {
 
   "pipes" = callPackage
     ({ mkDerivation, base, criterion, exceptions, mmorph, mtl
-     , optparse-applicative, QuickCheck, semigroups, test-framework
+     , optparse-applicative, QuickCheck, test-framework
      , test-framework-quickcheck2, transformers, void
      }:
      mkDerivation {
        pname = "pipes";
-       version = "4.3.13";
-       sha256 = "1ch3xr5f5if0psd3lsyrpkwrgh36synnzqcpimghprys68l4zfkn";
+       version = "4.3.14";
+       sha256 = "11r8cqy98w1y0avgn53x1fzqxpdfg7wvwwkfppnk9yip0lkcp3yv";
        libraryHaskellDepends = [
-         base exceptions mmorph mtl semigroups transformers void
+         base exceptions mmorph mtl transformers void
        ];
        testHaskellDepends = [
          base mtl QuickCheck test-framework test-framework-quickcheck2
@@ -193333,8 +197747,8 @@ self: {
        pname = "pipes-group";
        version = "1.0.12";
        sha256 = "1issfj3syi6lfbcdn3bhlbnlh86s92ldsb04c4ac69xipsgyhwqk";
-       revision = "2";
-       editedCabalFile = "1y7fh0vc6iknyxizp5hrgkkjzp2hl3ygjyxgsq6b9kh74h2hbbrp";
+       revision = "3";
+       editedCabalFile = "1mqqwv9w65c59lv97k9185rw8dvfcm4bk5n4z18hhgsrcjyr76n9";
        libraryHaskellDepends = [
          base free pipes pipes-parse transformers
        ];
@@ -194489,6 +198903,8 @@ self: {
        ];
        description = "run a subprocess, combining stdout and stderr";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "plist" = callPackage
@@ -194571,8 +198987,8 @@ self: {
      }:
      mkDerivation {
        pname = "plot";
-       version = "0.2.3.10";
-       sha256 = "0dva2kvf3193qc7zb9ydmzpffaj9lm6qy79n5zv66jnbccyp36lf";
+       version = "0.2.3.11";
+       sha256 = "0img30argzgxcgwam3iqc3xasgizbbcrghd2vkmqahmv7g3l36di";
        libraryHaskellDepends = [
          array base cairo colour hmatrix mtl pango transformers
        ];
@@ -194788,8 +199204,8 @@ self: {
      }:
      mkDerivation {
        pname = "plugins";
-       version = "1.6.0";
-       sha256 = "0wbmvcb2j4qi29yrmvjfhdf8251lam5yiqshk9gf6dlprz2kvww1";
+       version = "1.6.1";
+       sha256 = "004mfq0d10s26sgk12zrhgmxcfxnhvdyajr48scxf5rh1fv9440i";
        libraryHaskellDepends = [
          array base Cabal containers directory filepath ghc ghc-paths
          ghc-prim haskell-src process random split
@@ -195377,29 +199793,6 @@ self: {
      }) {};
 
   "poly" = callPackage
-    ({ mkDerivation, base, deepseq, gauge, primitive, QuickCheck
-     , quickcheck-classes, semirings, tasty, tasty-quickcheck, vector
-     , vector-algorithms
-     }:
-     mkDerivation {
-       pname = "poly";
-       version = "0.3.3.0";
-       sha256 = "1hj77nzyfipsycy77h8ccsx4iyy47ljjv0j8ckihxhaq36g0fpan";
-       revision = "1";
-       editedCabalFile = "0iv4363iq22hkwrkgsijgv8ykvj26q895rsbzrrzkydblf4psra9";
-       libraryHaskellDepends = [
-         base deepseq primitive semirings vector vector-algorithms
-       ];
-       testHaskellDepends = [
-         base QuickCheck quickcheck-classes semirings tasty tasty-quickcheck
-         vector
-       ];
-       benchmarkHaskellDepends = [ base deepseq gauge semirings vector ];
-       description = "Polynomials";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "poly_0_4_0_0" = callPackage
     ({ mkDerivation, base, deepseq, gauge, mod, primitive, QuickCheck
      , quickcheck-classes, semirings, tasty, tasty-quickcheck, vector
      , vector-algorithms
@@ -195418,7 +199811,6 @@ self: {
        benchmarkHaskellDepends = [ base deepseq gauge semirings vector ];
        description = "Polynomials";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "poly-arity" = callPackage
@@ -195456,6 +199848,17 @@ self: {
        broken = true;
      }) {};
 
+  "poly-rec" = callPackage
+    ({ mkDerivation, base, requirements }:
+     mkDerivation {
+       pname = "poly-rec";
+       version = "0.6.0.0";
+       sha256 = "1csi81i0j3hk2gsc3c0rx939i67b0mj2pi064giw20yspqqjrp27";
+       libraryHaskellDepends = [ base requirements ];
+       description = "Polykinded extensible records";
+       license = stdenv.lib.licenses.gpl3;
+     }) {};
+
   "polyToMonoid" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -195586,42 +199989,6 @@ self: {
   "polysemy" = callPackage
     ({ mkDerivation, async, base, Cabal, cabal-doctest, containers
      , criterion, doctest, first-class-families, free, freer-simple
-     , hspec, hspec-discover, inspection-testing, loopbreaker, mtl, stm
-     , syb, template-haskell, th-abstraction, transformers, type-errors
-     , type-errors-pretty, unagi-chan
-     }:
-     mkDerivation {
-       pname = "polysemy";
-       version = "1.2.3.0";
-       sha256 = "0vb0k3kmzsjw45p220nw780wlax1r7mv56j06vkzqclkf8s5jky3";
-       revision = "2";
-       editedCabalFile = "0dzmkna6jb2im9kdslp90z6ynk2qzzg2j495i3y933ywdavvci93";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
-       libraryHaskellDepends = [
-         async base containers first-class-families loopbreaker mtl stm syb
-         template-haskell th-abstraction transformers type-errors
-         type-errors-pretty unagi-chan
-       ];
-       testHaskellDepends = [
-         async base containers doctest first-class-families hspec
-         inspection-testing loopbreaker mtl stm syb template-haskell
-         th-abstraction transformers type-errors type-errors-pretty
-         unagi-chan
-       ];
-       testToolDepends = [ hspec-discover ];
-       benchmarkHaskellDepends = [
-         async base containers criterion first-class-families free
-         freer-simple loopbreaker mtl stm syb template-haskell
-         th-abstraction transformers type-errors type-errors-pretty
-         unagi-chan
-       ];
-       description = "Higher-order, low-boilerplate, zero-cost free monads";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "polysemy_1_3_0_0" = callPackage
-    ({ mkDerivation, async, base, Cabal, cabal-doctest, containers
-     , criterion, doctest, first-class-families, free, freer-simple
      , hspec, hspec-discover, inspection-testing, mtl, QuickCheck, stm
      , syb, template-haskell, th-abstraction, transformers, type-errors
      , type-errors-pretty, unagi-chan
@@ -195630,8 +199997,8 @@ self: {
        pname = "polysemy";
        version = "1.3.0.0";
        sha256 = "0p5g1n5b0dfkadqpqf2ka25dblimwqhxwx5ax0mxwixb0jwd0pvb";
-       revision = "1";
-       editedCabalFile = "02fkrfdn7pwslc9yffgx3fis8ag36m3dhigw67ns1s16gsf5a7dz";
+       revision = "2";
+       editedCabalFile = "1dn5897ggd6rf5ffl6k52x4ghncgv2ls14nppayw9l9zi1mfjxps";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          async base containers first-class-families mtl QuickCheck stm syb
@@ -195652,7 +200019,6 @@ self: {
        ];
        description = "Higher-order, low-boilerplate, zero-cost free monads";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "polysemy-RandomFu" = callPackage
@@ -195678,6 +200044,52 @@ self: {
        broken = true;
      }) {};
 
+  "polysemy-http" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, base, bytestring
+     , case-insensitive, co-log-core, co-log-polysemy, composition
+     , containers, data-default, either, hedgehog, http-client
+     , http-client-tls, http-conduit, http-types, lens, network
+     , polysemy, polysemy-plugin, relude, servant, servant-client
+     , servant-server, string-interpolate, tasty, tasty-hedgehog
+     , template-haskell, text, warp
+     }:
+     mkDerivation {
+       pname = "polysemy-http";
+       version = "0.2.0.4";
+       sha256 = "1qznm0r7yc831hlgnyf2rmdd6nk2865qcjhzyc2djqv0mw4yg6ak";
+       libraryHaskellDepends = [
+         aeson ansi-terminal base bytestring case-insensitive co-log-core
+         co-log-polysemy composition containers data-default either
+         http-client http-client-tls http-conduit http-types lens polysemy
+         polysemy-plugin relude string-interpolate template-haskell text
+       ];
+       testHaskellDepends = [
+         aeson ansi-terminal base bytestring case-insensitive co-log-core
+         co-log-polysemy composition containers data-default either hedgehog
+         http-client http-client-tls http-conduit http-types lens network
+         polysemy polysemy-plugin relude servant servant-client
+         servant-server string-interpolate tasty tasty-hedgehog
+         template-haskell text warp
+       ];
+       description = "Polysemy effect for http-client";
+       license = "BSD-2-Clause-Patent";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "polysemy-optics" = callPackage
+    ({ mkDerivation, base, optics, polysemy, polysemy-zoo }:
+     mkDerivation {
+       pname = "polysemy-optics";
+       version = "0.1.0.0";
+       sha256 = "1ym2da08wy5pbdijrvn769w644dyma8hc010f8phqjnpkhq4j0z5";
+       libraryHaskellDepends = [ base optics polysemy polysemy-zoo ];
+       description = "Optics for Polysemy";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "polysemy-plugin" = callPackage
     ({ mkDerivation, base, Cabal, cabal-doctest, containers, doctest
      , ghc, ghc-tcplugins-extra, hspec, hspec-discover
@@ -195686,8 +200098,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-plugin";
-       version = "0.2.5.0";
-       sha256 = "1ymry3ppc5cl9agvkbxks155xnxr9cv39p77j05ychnhv9r4vjsh";
+       version = "0.2.5.1";
+       sha256 = "14iz5p5g57ki9lbjyy8i3lx7xk2qmrc8dqkd94jrbilsvn4m5gf3";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          base containers ghc ghc-tcplugins-extra polysemy syb transformers
@@ -195701,6 +200113,54 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "polysemy-test" = callPackage
+    ({ mkDerivation, base, containers, either, hedgehog, path, path-io
+     , polysemy, polysemy-plugin, relude, string-interpolate, tasty
+     , tasty-hedgehog, text, transformers
+     }:
+     mkDerivation {
+       pname = "polysemy-test";
+       version = "0.3.0.1";
+       sha256 = "0xy5ax03qy7936jxhbx3wi341z8r00bmjifha83izgi664hzb5fs";
+       libraryHaskellDepends = [
+         base containers either hedgehog path path-io polysemy
+         polysemy-plugin relude string-interpolate tasty tasty-hedgehog text
+         transformers
+       ];
+       testHaskellDepends = [
+         base containers either hedgehog path path-io polysemy
+         polysemy-plugin relude string-interpolate tasty tasty-hedgehog text
+         transformers
+       ];
+       description = "Polysemy effects for testing";
+       license = "BSD-2-Clause-Patent";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "polysemy-webserver" = callPackage
+    ({ mkDerivation, base, bytestring, hspec, http-conduit, http-types
+     , polysemy, polysemy-plugin, text, wai, wai-websockets, warp
+     , websockets
+     }:
+     mkDerivation {
+       pname = "polysemy-webserver";
+       version = "0.2.1.0";
+       sha256 = "1kzswc20c2a720r46krphwckp6bcgkinw59immjpwvixxdfd0bma";
+       libraryHaskellDepends = [
+         base bytestring http-types polysemy polysemy-plugin wai
+         wai-websockets warp websockets
+       ];
+       testHaskellDepends = [
+         base bytestring hspec http-conduit http-types polysemy
+         polysemy-plugin text wai wai-websockets warp websockets
+       ];
+       description = "Start web servers from within a Polysemy effect stack";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "polysemy-zoo" = callPackage
     ({ mkDerivation, async, base, compact, constraints, containers
      , contravariant, exceptions, ghc-prim, hspec, hspec-discover, mtl
@@ -195968,8 +200428,8 @@ self: {
      }:
      mkDerivation {
        pname = "pontarius-xmpp-extras";
-       version = "0.1.0.3";
-       sha256 = "055ir657g8rcxd419h5fjpk30ifb4r7639gxpsnjy3930x0azcb4";
+       version = "0.1.0.4";
+       sha256 = "1mf65mdkykn0s0mqix82m9psj2vrz9rc7i8gzfdv1iarlxzz5qab";
        libraryHaskellDepends = [
          base data-default pontarius-xmpp text time xml-types
        ];
@@ -196094,8 +200554,10 @@ self: {
      }:
      mkDerivation {
        pname = "popkey";
-       version = "0.1.0.0";
-       sha256 = "1fx7qsc5kl3iq013kgdjhz0crzh7kiffqq1aj14fxlhjyp8k8v6m";
+       version = "0.1.0.1";
+       sha256 = "1nlbd54q7npxm9hk4f289md6rch0sqnl236iimwsrwllpq6rbxbz";
+       revision = "2";
+       editedCabalFile = "1wpbwyya9fcdiyqs6lrbcxw7d64vn12kc7n63h2wjxrizjhfs6n6";
        libraryHaskellDepends = [
          base bitvec bytestring containers hw-bits hw-prim hw-rankselect
          hw-rankselect-base store text vector
@@ -196104,6 +200566,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Static key-value storage backed by poppy";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "poppler" = callPackage
@@ -196539,10 +201003,8 @@ self: {
     ({ mkDerivation, base, bytestring, process, unix, util }:
      mkDerivation {
        pname = "posix-pty";
-       version = "0.2.1.1";
-       sha256 = "1fdvzmk7v7lasyhwinl9wqxq8c67balyyygyb1bzljj3hzn0rid2";
-       revision = "1";
-       editedCabalFile = "1dhxxwlv69bczi7mbhdd9f3s9nnjb4b3jf9mlgdjg7wxqh84zrgi";
+       version = "0.2.2";
+       sha256 = "1wwpvjnc252miyqmg5ffvf6ba60kj1i7iknyxrpkmh3zhz31vyws";
        libraryHaskellDepends = [ base bytestring process unix ];
        librarySystemDepends = [ util ];
        testHaskellDepends = [ base bytestring process ];
@@ -196611,8 +201073,8 @@ self: {
      }:
      mkDerivation {
        pname = "posplyu";
-       version = "0.1.0";
-       sha256 = "1whdihlfcgjy4na86qhhhixa0l494005shfxs5ns61qsdw7mwflk";
+       version = "0.1.0.1";
+       sha256 = "09yafx5d82h4vsx2pp2hccwy74b7nhbys971g86qcg6yf24ha621";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -196720,35 +201182,32 @@ self: {
      }) {};
 
   "postgres-websockets" = callPackage
-    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
-     , containers, contravariant, either, envparse, hasql
-     , hasql-notifications, hasql-pool, hspec, hspec-wai, hspec-wai-json
-     , http-types, jose, lens, postgresql-libpq, protolude, retry, stm
-     , stm-containers, stringsearch, text, time, transformers
-     , unordered-containers, wai, wai-app-static, wai-extra
-     , wai-websockets, warp, websockets
+    ({ mkDerivation, aeson, alarmclock, async, auto-update, base
+     , base64-bytestring, bytestring, contravariant, either, envparse
+     , hasql, hasql-notifications, hasql-pool, hspec, hspec-wai
+     , hspec-wai-json, http-types, jose, lens, lens-aeson, network
+     , postgresql-libpq, protolude, retry, stm, stm-containers
+     , stringsearch, text, time, unordered-containers, wai
+     , wai-app-static, wai-extra, wai-websockets, warp, websockets
      }:
      mkDerivation {
        pname = "postgres-websockets";
-       version = "0.6.1.1";
-       sha256 = "18lsn8c4nd4rw3df9g5w684f7ggrxq9a3calj1ipqz1nf50mwbqx";
+       version = "0.9.0.0";
+       sha256 = "1c7has1vyp8i3my5126m8ciimcyyv4prav94wpl861gz7npdqxym";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base bytestring contravariant either hasql
-         hasql-notifications hasql-pool http-types jose lens
-         postgresql-libpq protolude retry stm stm-containers stringsearch
-         text time unordered-containers wai wai-websockets websockets
-       ];
-       executableHaskellDepends = [
-         base base64-bytestring bytestring envparse hasql hasql-pool
-         http-types protolude text time transformers wai wai-app-static
-         wai-extra warp
+         aeson alarmclock async auto-update base base64-bytestring
+         bytestring contravariant either envparse hasql hasql-notifications
+         hasql-pool http-types jose lens postgresql-libpq protolude retry
+         stm stm-containers stringsearch text time unordered-containers wai
+         wai-app-static wai-extra wai-websockets warp websockets
        ];
+       executableHaskellDepends = [ base protolude ];
        testHaskellDepends = [
-         aeson base containers hasql hasql-notifications hasql-pool hspec
-         hspec-wai hspec-wai-json http-types protolude stm
-         unordered-containers wai-extra
+         aeson base hasql hasql-notifications hasql-pool hspec hspec-wai
+         hspec-wai-json http-types lens lens-aeson network protolude stm
+         time unordered-containers wai-extra websockets
        ];
        description = "Middleware to map LISTEN/NOTIFY messages to Websockets";
        license = stdenv.lib.licenses.bsd3;
@@ -196785,6 +201244,36 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "postgresql-binary_0_12_3_1" = callPackage
+    ({ mkDerivation, aeson, base, base-prelude, binary-parser
+     , bytestring, bytestring-strict-builder, containers, conversion
+     , conversion-bytestring, conversion-text, criterion, json-ast
+     , loch-th, network-ip, placeholders, postgresql-libpq, QuickCheck
+     , quickcheck-instances, rerebase, scientific, tasty, tasty-hunit
+     , tasty-quickcheck, text, time, transformers, unordered-containers
+     , uuid, vector
+     }:
+     mkDerivation {
+       pname = "postgresql-binary";
+       version = "0.12.3.1";
+       sha256 = "0frdyhzdrfnrqmf15all0g817p7i6asj46hzk87rw52qbfiyag2v";
+       libraryHaskellDepends = [
+         aeson base base-prelude binary-parser bytestring
+         bytestring-strict-builder containers loch-th network-ip
+         placeholders scientific text time transformers unordered-containers
+         uuid vector
+       ];
+       testHaskellDepends = [
+         aeson conversion conversion-bytestring conversion-text json-ast
+         loch-th network-ip placeholders postgresql-libpq QuickCheck
+         quickcheck-instances rerebase tasty tasty-hunit tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [ criterion rerebase ];
+       description = "Encoders and decoders for the PostgreSQL's binary format";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "postgresql-common" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, postgresql-simple }:
      mkDerivation {
@@ -196901,6 +201390,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {inherit (pkgs) postgresql;};
 
+  "postgresql-libpq-notify" = callPackage
+    ({ mkDerivation, async, base, hspec, postgres-options
+     , postgresql-libpq, stm, text, tmp-postgres
+     }:
+     mkDerivation {
+       pname = "postgresql-libpq-notify";
+       version = "0.2.0.0";
+       sha256 = "06k63ix0d836w4x7q49m003wrxpbnnlvhmvbvk8mn9752xv55vkc";
+       libraryHaskellDepends = [ base postgresql-libpq stm ];
+       testHaskellDepends = [
+         async base hspec postgres-options postgresql-libpq text
+         tmp-postgres
+       ];
+       description = "Minimal dependency PostgreSQL notifications library";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "postgresql-lo-stream" = callPackage
     ({ mkDerivation, base, bytestring, io-streams, lifted-base
      , monad-loops, mtl, postgresql-simple
@@ -196963,52 +201469,75 @@ self: {
        license = "GPL";
      }) {};
 
+  "postgresql-placeholder-converter" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, hspec
+     , hspec-discover, mtl, utf8-string
+     }:
+     mkDerivation {
+       pname = "postgresql-placeholder-converter";
+       version = "0.1.0.0";
+       sha256 = "1dprqv0r00nrx6m0byqfzpb91h5kz3nxd0w0m21150l68sj2d8ys";
+       revision = "1";
+       editedCabalFile = "0mla1cibyc13bz7gvv5b31il8nyp0vjfi8xqgpynbjfq7d4fjnnc";
+       libraryHaskellDepends = [
+         attoparsec base bytestring mtl utf8-string
+       ];
+       testHaskellDepends = [ base hspec ];
+       testToolDepends = [ hspec-discover ];
+       description = "Converter for question mark style and dollar sign style of PostgreSQL SQL";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "postgresql-pure" = callPackage
     ({ mkDerivation, attoparsec, base, base16-bytestring, bytestring
-     , cassava, clock, containers, convertible, cryptohash-md5
-     , data-default-class, deepseq, doctest, double-conversion, HDBC
-     , HDBC-postgresql, HDBC-session, homotuple, hourglass, hspec
-     , hspec-core, HUnit, list-tuple, memory, mtl, network, old-time
-     , Only, optparse-applicative, persistable-record, postgres-wire
-     , postgresql-binary, postgresql-libpq, postgresql-simple
-     , postgresql-typed, pretty-hex, QuickCheck, random-shuffle
+     , Cabal, cassava, clock, containers, convertible, cryptohash-md5
+     , data-default-class, deepseq, directory, doctest
+     , double-conversion, filepath, HDBC, HDBC-postgresql, HDBC-session
+     , homotuple, hourglass, hspec, hspec-core, HUnit, list-tuple
+     , memory, mtl, network, old-time, OneTuple, Only
+     , optparse-applicative, persistable-record, postgresql-binary
+     , postgresql-libpq, postgresql-placeholder-converter
+     , postgresql-simple, pretty-hex, QuickCheck, random-shuffle
      , relational-query, relational-query-HDBC, relational-record
      , safe-exceptions, scientific, single-tuple, text, time
      , utf8-string, vector
      }:
      mkDerivation {
        pname = "postgresql-pure";
-       version = "0.1.2.0";
-       sha256 = "1dsjciaryxqizhg33axlcvj7i0h9xi4hz956kijqvmy0lb0bjscf";
+       version = "0.2.2.0";
+       sha256 = "16k03m1yy8ca5rik4av76p883nvmk0w4ak9pva2i5l57vv8d8hc6";
+       setupHaskellDepends = [ base Cabal directory filepath ];
        libraryHaskellDepends = [
          attoparsec base base16-bytestring bytestring containers convertible
          cryptohash-md5 data-default-class double-conversion HDBC homotuple
-         list-tuple memory mtl network Only postgresql-binary pretty-hex
-         safe-exceptions scientific single-tuple text time utf8-string
+         list-tuple memory mtl network OneTuple Only postgresql-binary
+         postgresql-placeholder-converter pretty-hex safe-exceptions
+         scientific single-tuple text time utf8-string
        ];
        testHaskellDepends = [
          attoparsec base base16-bytestring bytestring containers convertible
          cryptohash-md5 data-default-class doctest double-conversion HDBC
          HDBC-postgresql HDBC-session homotuple hspec hspec-core HUnit
-         list-tuple memory mtl network old-time Only persistable-record
-         postgresql-binary pretty-hex QuickCheck relational-query
-         relational-query-HDBC relational-record safe-exceptions scientific
-         single-tuple text time utf8-string
+         list-tuple memory mtl network old-time OneTuple Only
+         persistable-record postgresql-binary
+         postgresql-placeholder-converter pretty-hex QuickCheck
+         relational-query relational-query-HDBC relational-record
+         safe-exceptions scientific single-tuple text time utf8-string
        ];
        benchmarkHaskellDepends = [
          attoparsec base base16-bytestring bytestring cassava clock
          containers convertible cryptohash-md5 data-default-class deepseq
          double-conversion HDBC homotuple hourglass list-tuple memory mtl
-         network Only optparse-applicative postgres-wire postgresql-binary
-         postgresql-libpq postgresql-simple postgresql-typed pretty-hex
-         random-shuffle safe-exceptions scientific single-tuple text time
-         utf8-string vector
+         network OneTuple Only optparse-applicative postgresql-binary
+         postgresql-libpq postgresql-placeholder-converter postgresql-simple
+         pretty-hex random-shuffle safe-exceptions scientific single-tuple
+         text time utf8-string vector
        ];
        description = "pure Haskell PostgreSQL driver";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
-     }) {postgres-wire = null;};
+     }) {};
 
   "postgresql-query" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, blaze-builder, bytestring
@@ -197183,8 +201712,8 @@ self: {
      }:
      mkDerivation {
        pname = "postgresql-simple-opts";
-       version = "0.6.0.0";
-       sha256 = "0zsr0zgn5y1bpj98aq00v7xd0p3kmfk692djw0rp6ikw1390bbdb";
+       version = "0.6.0.1";
+       sha256 = "09b213lz0405c5x82g9vwpa7blrbi86m77r1wyd8m4hlviid3s7q";
        libraryHaskellDepends = [
          base bytestring data-default either envy generic-deriving
          optparse-applicative optparse-generic postgres-options
@@ -197287,8 +201816,8 @@ self: {
      }:
      mkDerivation {
        pname = "postgresql-syntax";
-       version = "0.3.0.2";
-       sha256 = "1gl0k3idcgpnahh8mv01mjzhc4yx6i3f7shfa7mqhcgs6r1ccdhz";
+       version = "0.3.0.3";
+       sha256 = "0zylrzd8dfks1jdx1yq1i2n2a7sxa8b04h6km9lx3bdpbpv84y7i";
        libraryHaskellDepends = [
          base bytestring case-insensitive fast-builder hashable
          headed-megaparsec megaparsec parser-combinators text text-builder
@@ -197300,6 +201829,8 @@ self: {
        ];
        description = "PostgreSQL AST parsing and rendering";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "postgresql-transactional" = callPackage
@@ -197315,6 +201846,80 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "postgresql-tx" = callPackage
+    ({ mkDerivation, base, transformers }:
+     mkDerivation {
+       pname = "postgresql-tx";
+       version = "0.1.0.0";
+       sha256 = "1jvrdyllmgd0v9w2wxqr1g70f6gza1wyb13j38ww2r2nvqzhp330";
+       libraryHaskellDepends = [ base transformers ];
+       description = "A safe transaction monad for use with various PostgreSQL Haskell libraries";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "postgresql-tx-monad-logger" = callPackage
+    ({ mkDerivation, base, monad-logger, postgresql-tx }:
+     mkDerivation {
+       pname = "postgresql-tx-monad-logger";
+       version = "0.1.0.0";
+       sha256 = "0y1x2d2r61ayhln0l2c5i3ivv97zpwyiaw1hymghpv4vwnlihv1y";
+       libraryHaskellDepends = [ base monad-logger postgresql-tx ];
+       description = "postgresql-tx interfacing for use with monad-logger";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "postgresql-tx-query" = callPackage
+    ({ mkDerivation, base, monad-logger, mtl, postgresql-query
+     , postgresql-simple, postgresql-tx, postgresql-tx-monad-logger
+     , transformers
+     }:
+     mkDerivation {
+       pname = "postgresql-tx-query";
+       version = "0.1.0.0";
+       sha256 = "0a7khw9ncc8k5cpi63kw598hvg3ycm1lchz46aw06pndcdzr54sv";
+       libraryHaskellDepends = [
+         base monad-logger mtl postgresql-query postgresql-simple
+         postgresql-tx postgresql-tx-monad-logger transformers
+       ];
+       description = "postgresql-tx interfacing for use with postgresql-query";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "postgresql-tx-simple" = callPackage
+    ({ mkDerivation, base, postgresql-simple, postgresql-tx
+     , transformers
+     }:
+     mkDerivation {
+       pname = "postgresql-tx-simple";
+       version = "0.1.0.0";
+       sha256 = "1k03wqqzsvmmd7wh9gnlg9h12v2xnzd1vc9396sl1krg29l8373p";
+       libraryHaskellDepends = [
+         base postgresql-simple postgresql-tx transformers
+       ];
+       description = "postgresql-tx interfacing for use with postgresql-simple";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "postgresql-tx-squeal" = callPackage
+    ({ mkDerivation, base, bytestring, generics-sop, postgresql-libpq
+     , postgresql-tx, records-sop, squeal-postgresql
+     }:
+     mkDerivation {
+       pname = "postgresql-tx-squeal";
+       version = "0.1.0.0";
+       sha256 = "08wfdy6hlpwkv3njh33igskv489kk8zbsd1nk24fvql1w215gsa4";
+       libraryHaskellDepends = [
+         base bytestring generics-sop postgresql-libpq postgresql-tx
+         records-sop squeal-postgresql
+       ];
+       description = "postgresql-tx interfacing for use with squeal-postgresql";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "postgresql-typed" = callPackage
     ({ mkDerivation, aeson, array, attoparsec, base, binary, bytestring
      , containers, convertible, criterion, cryptonite, data-default
@@ -197324,8 +201929,8 @@ self: {
      }:
      mkDerivation {
        pname = "postgresql-typed";
-       version = "0.6.1.0";
-       sha256 = "1p7bcwbjb0pi96d9zad8kmlb2w3g06g4xra33xmmskynmsdyc0r9";
+       version = "0.6.1.2";
+       sha256 = "0l2fkndiyb3yglgrj7mlmlsgg6qjgjzbh4przqk999c8cfr6bc66";
        libraryHaskellDepends = [
          aeson array attoparsec base binary bytestring containers cryptonite
          data-default haskell-src-meta HDBC memory network old-locale
@@ -197379,8 +201984,56 @@ self: {
      }:
      mkDerivation {
        pname = "postgrest";
+       version = "7.0.0";
+       sha256 = "03iya4w39qp25ms8m58mw6pvlriw80h6rdg1cb7az7353m2ndzys";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson ansi-wl-pprint base base64-bytestring bytestring
+         case-insensitive cassava configurator-pg containers contravariant
+         contravariant-extras cookie either gitrev hasql hasql-pool
+         hasql-transaction heredoc HTTP http-types insert-ordered-containers
+         interpolatedstring-perl6 jose lens lens-aeson network-uri
+         optparse-applicative parsec protolude Ranged-sets regex-tdfa
+         scientific swagger2 text time unordered-containers vector wai
+         wai-cors wai-extra wai-middleware-static
+       ];
+       executableHaskellDepends = [
+         auto-update base base64-bytestring bytestring directory either
+         hasql hasql-pool hasql-transaction network protolude retry text
+         time unix wai warp
+       ];
+       testHaskellDepends = [
+         aeson aeson-qq async auto-update base base64-bytestring bytestring
+         case-insensitive cassava containers contravariant hasql hasql-pool
+         hasql-transaction heredoc hspec hspec-wai hspec-wai-json http-types
+         lens lens-aeson monad-control process protolude regex-tdfa text
+         time transformers-base wai wai-extra
+       ];
+       description = "REST API for any Postgres database";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "postgrest_7_0_1" = callPackage
+    ({ mkDerivation, aeson, aeson-qq, ansi-wl-pprint, async
+     , auto-update, base, base64-bytestring, bytestring
+     , case-insensitive, cassava, configurator-pg, containers
+     , contravariant, contravariant-extras, cookie, directory, either
+     , gitrev, hasql, hasql-pool, hasql-transaction, heredoc, hspec
+     , hspec-wai, hspec-wai-json, HTTP, http-types
+     , insert-ordered-containers, interpolatedstring-perl6, jose, lens
+     , lens-aeson, monad-control, network, network-uri
+     , optparse-applicative, parsec, process, protolude, Ranged-sets
+     , regex-tdfa, retry, scientific, swagger2, text, time
+     , transformers-base, unix, unordered-containers, vector, wai
+     , wai-cors, wai-extra, wai-middleware-static, warp
+     }:
+     mkDerivation {
+       pname = "postgrest";
        version = "7.0.1";
        sha256 = "1cn69dinfv3y8ymsa364b9b0ly3dg80and902gamymb9v89jpsgf";
+       revision = "3";
+       editedCabalFile = "0nqj6m3i6n4lwvpaavs76rbqb2gmc01sz9nl2hqd3vry9acxyvkf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -197407,6 +202060,7 @@ self: {
        ];
        description = "REST API for any Postgres database";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "postgrest-ws" = callPackage
@@ -197860,10 +202514,8 @@ self: {
     ({ mkDerivation, base, deepseq, QuickCheck }:
      mkDerivation {
        pname = "pqueue";
-       version = "1.4.1.2";
-       sha256 = "1v4zhv2sc1zsw91hvnarkjhayx2dnf7ccxz6rrhsqpcs0szaranj";
-       revision = "1";
-       editedCabalFile = "1la186z2np3nv06p0485xwg342gyjp7a2ikg73qs7mbg086352zs";
+       version = "1.4.1.3";
+       sha256 = "1sz7hlnfd86hbwrgqxczmsjsl1ki0ryi9dgzscxlsgjkdgcdia2p";
        libraryHaskellDepends = [ base deepseq ];
        testHaskellDepends = [ base deepseq QuickCheck ];
        description = "Reliable, persistent, fast priority queues";
@@ -198075,27 +202727,29 @@ self: {
      }) {};
 
   "predicate-typed" = callPackage
-    ({ mkDerivation, aeson, base, binary, bytestring, comonad
-     , containers, deepseq, directory, doctest, ghc-prim, hashable, lens
+    ({ mkDerivation, aeson, aeson-pretty, base, binary, bytestring
+     , comonad, containers, deepseq, directory, doctest, hashable, lens
      , mtl, pcre-heavy, pcre-light, pretty, pretty-terminal, QuickCheck
-     , safe, stm, tasty, tasty-hunit, tasty-quickcheck, template-haskell
-     , text, th-lift, these, time, tree-view
+     , safe, stm, string-conversions, tasty, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, th-lift, these, time
+     , tree-view
      }:
      mkDerivation {
        pname = "predicate-typed";
-       version = "0.6.0.1";
-       sha256 = "1izg98ql496qn8dvn3blz2654bhy8901x7hfh0dxqqzrm1gi5bf4";
+       version = "0.7.3.0";
+       sha256 = "124f9bdvq30xaadg6020q0pmfv56mpkw25ws306xp8mfs61g1src";
        libraryHaskellDepends = [
-         aeson base binary bytestring comonad containers deepseq directory
-         ghc-prim hashable lens mtl pcre-heavy pcre-light pretty
-         pretty-terminal QuickCheck safe template-haskell text th-lift these
-         time tree-view
+         aeson aeson-pretty base binary bytestring comonad containers
+         deepseq directory hashable lens mtl pcre-heavy pcre-light pretty
+         pretty-terminal QuickCheck safe string-conversions template-haskell
+         text th-lift these time tree-view
        ];
        testHaskellDepends = [
-         aeson base binary bytestring comonad containers deepseq directory
-         doctest ghc-prim hashable lens mtl pcre-heavy pcre-light pretty
-         pretty-terminal QuickCheck safe stm tasty tasty-hunit
-         tasty-quickcheck template-haskell text th-lift these time tree-view
+         aeson aeson-pretty base binary bytestring comonad containers
+         deepseq directory doctest hashable lens mtl pcre-heavy pcre-light
+         pretty pretty-terminal QuickCheck safe stm string-conversions tasty
+         tasty-hunit tasty-quickcheck template-haskell text th-lift these
+         time tree-view
        ];
        description = "Predicates, Refinement types and Dsl";
        license = stdenv.lib.licenses.bsd3;
@@ -198449,8 +203103,8 @@ self: {
      }:
      mkDerivation {
        pname = "preql";
-       version = "0.2";
-       sha256 = "062px686v2rlpc2bplva900vk35k7hdvxrpjj9dfkj02knqmjxi7";
+       version = "0.3";
+       sha256 = "03zdkxlkvqyccvi682w0inxl70fvzi4l56kicp9qrb661jaqvy9q";
        libraryHaskellDepends = [
          aeson array base binary-parser bytestring bytestring-strict-builder
          contravariant free mtl postgresql-binary postgresql-libpq
@@ -198578,8 +203232,8 @@ self: {
        pname = "pretty-compact";
        version = "3.0";
        sha256 = "06m8n5rx1d62hwd017ss8nlxas5ia57lgxddm2hv2046938a5wm8";
-       revision = "2";
-       editedCabalFile = "04c309cdfrfwh031g8syyrwwn0lxdjj9f7d8szabscm19zwbi399";
+       revision = "3";
+       editedCabalFile = "08wmmcqsh7yv1h9g0kmg2w84w7b1ljw2wxz81gjg91z0ig3f3zs2";
        libraryHaskellDepends = [ base base-compat containers ];
        benchmarkHaskellDepends = [
          aeson base base-compat bytestring criterion deepseq pretty text
@@ -198758,8 +203412,8 @@ self: {
      }:
      mkDerivation {
        pname = "pretty-simple";
-       version = "3.2.2.0";
-       sha256 = "092vv0dvyab0vjchhw6cvc3x3wp7qb04q6n6ibjvpg472x3hnl3z";
+       version = "3.2.3.0";
+       sha256 = "1sr66sawacv0ks0znip0jxpz98lvjacara8sqfm53i0pqf8c0qla";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -198775,20 +203429,21 @@ self: {
        maintainers = with stdenv.lib.maintainers; [ cdepillabout ];
      }) {};
 
-  "pretty-simple_3_2_3_0" = callPackage
-    ({ mkDerivation, ansi-terminal, base, Cabal, cabal-doctest
-     , containers, criterion, doctest, Glob, mtl, QuickCheck
-     , template-haskell, text, transformers
+  "pretty-simple_4_0_0_0" = callPackage
+    ({ mkDerivation, base, Cabal, cabal-doctest, containers, criterion
+     , doctest, Glob, mtl, prettyprinter, prettyprinter-ansi-terminal
+     , QuickCheck, template-haskell, text, transformers
      }:
      mkDerivation {
        pname = "pretty-simple";
-       version = "3.2.3.0";
-       sha256 = "1sr66sawacv0ks0znip0jxpz98lvjacara8sqfm53i0pqf8c0qla";
+       version = "4.0.0.0";
+       sha256 = "1srvx854ml2gffnkxr2fm12xk8syjsk078rfzrq0a3idwgv46myw";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
-         ansi-terminal base containers mtl text transformers
+         base containers mtl prettyprinter prettyprinter-ansi-terminal text
+         transformers
        ];
        testHaskellDepends = [
          base doctest Glob QuickCheck template-haskell
@@ -198876,7 +203531,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "prettyprinter" = callPackage
+  "prettyprinter_1_6_1" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, base-compat, bytestring
      , containers, deepseq, doctest, gauge, mtl, pgp-wordlist
      , QuickCheck, quickcheck-instances, random, tasty, tasty-hunit
@@ -198899,17 +203554,74 @@ self: {
        ];
        description = "A modern, easy to use, well-documented, extensible pretty-printer";
        license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "prettyprinter" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, base, base-compat, bytestring
+     , containers, deepseq, doctest, gauge, mtl, pgp-wordlist
+     , QuickCheck, quickcheck-instances, random, tasty, tasty-hunit
+     , tasty-quickcheck, text, transformers
+     }:
+     mkDerivation {
+       pname = "prettyprinter";
+       version = "1.6.2";
+       sha256 = "023hfz75xgvyymbipyph7xmaaki2d5qa6fh4lx9adl1h4s8g34yi";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base text ];
+       testHaskellDepends = [
+         base bytestring doctest pgp-wordlist QuickCheck
+         quickcheck-instances tasty tasty-hunit tasty-quickcheck text
+       ];
+       benchmarkHaskellDepends = [
+         ansi-wl-pprint base base-compat containers deepseq gauge mtl
+         QuickCheck random text transformers
+       ];
+       description = "A modern, easy to use, well-documented, extensible pretty-printer";
+       license = stdenv.lib.licenses.bsd2;
+     }) {};
+
+  "prettyprinter_1_7_0" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, base, base-compat, bytestring
+     , containers, deepseq, doctest, gauge, mtl, pgp-wordlist
+     , QuickCheck, quickcheck-instances, random, tasty, tasty-hunit
+     , tasty-quickcheck, text, transformers
+     }:
+     mkDerivation {
+       pname = "prettyprinter";
+       version = "1.7.0";
+       sha256 = "19z04sn0kqxgwcyfn5igjmbxw13xsb3mdhdidkb3kzswib78f6sr";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base text ];
+       testHaskellDepends = [
+         base bytestring doctest pgp-wordlist QuickCheck
+         quickcheck-instances tasty tasty-hunit tasty-quickcheck text
+       ];
+       benchmarkHaskellDepends = [
+         ansi-wl-pprint base base-compat containers deepseq gauge mtl
+         QuickCheck random text transformers
+       ];
+       description = "A modern, easy to use, well-documented, extensible pretty-printer";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "prettyprinter-ansi-terminal" = callPackage
-    ({ mkDerivation, ansi-terminal, base, doctest, prettyprinter, text
+    ({ mkDerivation, ansi-terminal, base, base-compat, containers
+     , deepseq, doctest, gauge, prettyprinter, QuickCheck, text
      }:
      mkDerivation {
        pname = "prettyprinter-ansi-terminal";
-       version = "1.1.1.2";
-       sha256 = "0ha6vz707qzb5ky7kdsnw2zgphg2dnxrpbrxy8gaw119vwhb9q6k";
+       version = "1.1.2";
+       sha256 = "168p5b7fzqs0g8ld26d3k78afgdx4r21dv0hw8ka2c08p4w76sz2";
        libraryHaskellDepends = [ ansi-terminal base prettyprinter text ];
        testHaskellDepends = [ base doctest ];
+       benchmarkHaskellDepends = [
+         base base-compat containers deepseq gauge prettyprinter QuickCheck
+         text
+       ];
        description = "ANSI terminal backend for the »prettyprinter« package";
        license = stdenv.lib.licenses.bsd2;
      }) {};
@@ -198963,10 +203675,8 @@ self: {
      }:
      mkDerivation {
        pname = "prettyprinter-convert-ansi-wl-pprint";
-       version = "1.1";
-       sha256 = "03565w1qvqgdr1g2nwj3d2xpqbx04xm45pjfkb9d6jb2fww2v65q";
-       revision = "1";
-       editedCabalFile = "1c4zcscmvq0vbdgnp7n0avv8si5jshl4kw2qd1lqmhr28kj8x45f";
+       version = "1.1.1";
+       sha256 = "0bgf2np1ymy6zsd1qacndgyipcf0bamw1wkkikaq57npbb7psc41";
        libraryHaskellDepends = [
          ansi-terminal ansi-wl-pprint base prettyprinter
          prettyprinter-ansi-terminal text
@@ -198980,10 +203690,23 @@ self: {
     ({ mkDerivation, base, graphviz, prettyprinter, text }:
      mkDerivation {
        pname = "prettyprinter-graphviz";
-       version = "0.1.1.1";
-       sha256 = "1cpzqvy9w8ims5hqhv5v18r0dgj3708gprdrjxbja13nfsb6bsg9";
+       version = "1.0.0.2";
+       sha256 = "1bbbnhdigh31hbsh2abmr65bk3q927cdbm8j2qsvy4472ksylzpl";
        libraryHaskellDepends = [ base graphviz prettyprinter text ];
-       description = "a prettyprinter backend for graphviz";
+       description = "A prettyprinter backend for graphviz";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "prettyprinter-lucid" = callPackage
+    ({ mkDerivation, base, lucid, prettyprinter, text }:
+     mkDerivation {
+       pname = "prettyprinter-lucid";
+       version = "0.1.0.1";
+       sha256 = "0m8dbxzs22zbahpr6r1frlfqyw581wyg92vswm3gi2qqpj406djh";
+       libraryHaskellDepends = [ base lucid prettyprinter text ];
+       description = "A prettyprinter backend for lucid";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -199100,6 +203823,43 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {};
 
+  "primal" = callPackage
+    ({ mkDerivation, base, deepseq, doctest, template-haskell
+     , transformers
+     }:
+     mkDerivation {
+       pname = "primal";
+       version = "0.2.0.0";
+       sha256 = "1vr6rrg4hapivlny2bi47swhm2rwjdzrsxz4r97d4gdydr5vphln";
+       libraryHaskellDepends = [ base deepseq transformers ];
+       testHaskellDepends = [ base doctest template-haskell ];
+       description = "Primeval world of Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "primal-memory" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, deepseq, doctest
+     , primal, primitive, QuickCheck, random, template-haskell, text
+     }:
+     mkDerivation {
+       pname = "primal-memory";
+       version = "0.2.0.0";
+       sha256 = "00yw3m0bjgm3pns60clfy6g905ylwkipw82rwqx3aacgny1hbjy0";
+       libraryHaskellDepends = [ base bytestring deepseq primal text ];
+       testHaskellDepends = [
+         base bytestring doctest primal QuickCheck template-haskell
+       ];
+       benchmarkHaskellDepends = [
+         base criterion deepseq primal primitive random
+       ];
+       description = "Unified interface for memory managemenet";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "primes" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -199173,6 +203933,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "primitive_0_7_1_0" = callPackage
+    ({ mkDerivation, base, base-orphans, deepseq, ghc-prim, QuickCheck
+     , quickcheck-classes-base, semigroups, tagged, tasty
+     , tasty-quickcheck, transformers, transformers-compat
+     }:
+     mkDerivation {
+       pname = "primitive";
+       version = "0.7.1.0";
+       sha256 = "1w53i4mk248g58xrffmksznr4nmn2bbbycajzpcqfxx5ybyyrsvb";
+       libraryHaskellDepends = [ base deepseq transformers ];
+       testHaskellDepends = [
+         base base-orphans ghc-prim QuickCheck quickcheck-classes-base
+         semigroups tagged tasty tasty-quickcheck transformers
+         transformers-compat
+       ];
+       description = "Primitive memory-related operations";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "primitive-addr" = callPackage
     ({ mkDerivation, base, primitive }:
      mkDerivation {
@@ -199263,8 +204043,6 @@ self: {
        ];
        description = "Extras for the \"primitive\" library";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "primitive-foreign" = callPackage
@@ -199485,6 +204263,17 @@ self: {
        broken = true;
      }) {};
 
+  "print-info" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "print-info";
+       version = "0.1.3.0";
+       sha256 = "02wl9hq7jkz4yzkb744xwgnbss0w2sdpi02d3ms2q5rvc03ixnh6";
+       libraryHaskellDepends = [ base ];
+       description = "Can be used to coordinate the printing output";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "printcess" = callPackage
     ({ mkDerivation, base, containers, hspec, HUnit, lens, mtl
      , QuickCheck, transformers
@@ -199645,9 +204434,8 @@ self: {
      }:
      mkDerivation {
        pname = "probability";
-       version = "0.2.6";
-       sha256 = "12qzgn9jb9hvbpbkb75ad55yhmhai945rvdbamx6zspbrjlsb9sz";
-       enableSeparateDataOutput = true;
+       version = "0.2.7";
+       sha256 = "1m494ya9yv25jdi9wm90zz8c16vq1kv73sgc6w3950020hsbfqj9";
        libraryHaskellDepends = [
          base containers random transformers utility-ht
        ];
@@ -199712,16 +204500,14 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "process_1_6_9_0" = callPackage
+  "process_1_6_10_0" = callPackage
     ({ mkDerivation, base, bytestring, deepseq, directory, filepath
      , unix
      }:
      mkDerivation {
        pname = "process";
-       version = "1.6.9.0";
-       sha256 = "1shxwl392swdqffxdg2940y3yiml24iww9cy2pk89pv8r89x7yzy";
-       revision = "2";
-       editedCabalFile = "17m1xsxbg7fmmp0x7yj5y50xdf69cvs5v79609nhxm59zsbffb9p";
+       version = "1.6.10.0";
+       sha256 = "01c50qhrsvymbifa3lzyq6g4hmj6jl3awjp1jmbhdkmfdfaq3v16";
        libraryHaskellDepends = [ base deepseq directory filepath unix ];
        testHaskellDepends = [ base bytestring directory ];
        description = "Process libraries";
@@ -199882,7 +204668,7 @@ self: {
          semigroups tasty tasty-hunit text transformers transformers-compat
          void
        ];
-       description = "Streaming interface to system processes.";
+       description = "Streaming interface to system processes";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -199920,7 +204706,7 @@ self: {
          base data-default GLUT hsnoise NumInstances OpenGL random time
          transformers utf8-string vector-space
        ];
-       description = "Computer graphics for kids and artists with Processing implemented in Haskell.";
+       description = "Computer graphics for kids and artists with Processing implemented in Haskell";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -199933,6 +204719,8 @@ self: {
        libraryHaskellDepends = [ base binary bytestring process ];
        description = "C bindings for the gnu-extension functions process_vm_readv and process_vm_writev";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "processor-creative-kit" = callPackage
@@ -200067,6 +204855,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "product-profunctors_0_11_0_1" = callPackage
+    ({ mkDerivation, base, bifunctors, contravariant, criterion
+     , deepseq, profunctors, tagged, template-haskell
+     }:
+     mkDerivation {
+       pname = "product-profunctors";
+       version = "0.11.0.1";
+       sha256 = "0lwwjnpxgkgk02179j8jj9c1zvaw4f406i9gm7ngqczl8y796q3l";
+       libraryHaskellDepends = [
+         base bifunctors contravariant profunctors tagged template-haskell
+       ];
+       testHaskellDepends = [ base profunctors ];
+       benchmarkHaskellDepends = [ base criterion deepseq ];
+       description = "product-profunctors";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "prof-flamegraph" = callPackage
     ({ mkDerivation, base, optparse-applicative }:
      mkDerivation {
@@ -200436,10 +205242,8 @@ self: {
      }:
      mkDerivation {
        pname = "project-template";
-       version = "0.2.0.1";
-       sha256 = "1p69ww4rhah2qxragl615wl4a6mk4x9w09am8knmz3s4lxpljlpb";
-       revision = "1";
-       editedCabalFile = "0lq3sqnq0nr0gbvgzp0lqdl3j3mqdmdlf8xsw0j3pjh581xj3k0a";
+       version = "0.2.1.0";
+       sha256 = "0ac43x36i6b595jhflif1qqhri1rrqw90ama5n7rsh0ffnzyb69d";
        libraryHaskellDepends = [
          base base64-bytestring bytestring conduit conduit-extra containers
          directory filepath mtl resourcet text transformers
@@ -200504,8 +205308,8 @@ self: {
      }:
      mkDerivation {
        pname = "prolog";
-       version = "0.3";
-       sha256 = "02i79irax13rny953k6fvswsgbif9nnvysnnbq3k4w37b3g5maiv";
+       version = "0.3.2";
+       sha256 = "1clh7gfqh2yf17jc453y8cc8qcga9h0j5a60nfr1sjd5byr8j8ab";
        libraryHaskellDepends = [
          base containers mtl parsec syb template-haskell th-lift
          transformers
@@ -200575,6 +205379,24 @@ self: {
        broken = true;
      }) {};
 
+  "prolude" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, mongoDB, safe-exceptions
+     , scientific, text, time, vector
+     }:
+     mkDerivation {
+       pname = "prolude";
+       version = "0.0.0.0";
+       sha256 = "0ys3hx9924giy008ddm0z6m20wf9b4i893wkjpxx4jkda9m155x2";
+       libraryHaskellDepends = [
+         aeson base bytestring mongoDB safe-exceptions scientific text time
+         vector
+       ];
+       description = "ITProTV's custom prelude";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "prometheus" = callPackage
     ({ mkDerivation, atomic-primops, base, bytestring, containers
      , http-client, http-client-tls, http-types, network-uri, text
@@ -200582,8 +205404,8 @@ self: {
      }:
      mkDerivation {
        pname = "prometheus";
-       version = "2.1.3";
-       sha256 = "1z8mar0l8kh8wd0hsv4ckgnr5ha1vsx83afg63z9pwmv5l3phj0q";
+       version = "2.2.2";
+       sha256 = "11r3ckkv4fzgc5lgfvhgkngjvikzmapahh162grzdj6j47nm3hsf";
        libraryHaskellDepends = [
          atomic-primops base bytestring containers http-client
          http-client-tls http-types network-uri text transformers wai warp
@@ -200600,8 +205422,8 @@ self: {
      }:
      mkDerivation {
        pname = "prometheus-client";
-       version = "1.0.0.1";
-       sha256 = "0jmxmq4f3p8jlg7h5wlq0kk6z749fr4gmac5x9gim0mjjga6q0r7";
+       version = "1.0.1";
+       sha256 = "1gyclzl16dkq7yw84x0ppgmyav7scl4jvwq9b5ihzxy45crcdhin";
        libraryHaskellDepends = [
          atomic-primops base bytestring clock containers deepseq exceptions
          mtl stm text transformers transformers-compat utf8-string
@@ -200653,8 +205475,8 @@ self: {
      }:
      mkDerivation {
        pname = "prometheus-metrics-ghc";
-       version = "1.0.1";
-       sha256 = "18816z271daza8yl6sqagv4y26f977d66s26kvjq680pykcflxwx";
+       version = "1.0.1.1";
+       sha256 = "0afa29ym9jvagm8n99axj2qy6m4ps6qd07k1wlyb64078yc2nqn9";
        libraryHaskellDepends = [
          base prometheus-client text utf8-string
        ];
@@ -200669,8 +205491,8 @@ self: {
      }:
      mkDerivation {
        pname = "prometheus-proc";
-       version = "0.1.2.0";
-       sha256 = "0lia1r6bjh0m55s7nrfhn76v58yai8brlpi0q193wh0ypsg71j9l";
+       version = "0.1.3.0";
+       sha256 = "0pljmmas8wsigwd3m2ddjzn9mbsgsh0hbf1kz7301w8g5hnjfx03";
        libraryHaskellDepends = [
          base directory filepath prometheus-client regex-applicative text
          unix unix-memory
@@ -200679,6 +205501,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "prometheus-wai-middleware" = callPackage
+    ({ mkDerivation, async, base, clock, containers, http-types
+     , prometheus, text, wai, warp
+     }:
+     mkDerivation {
+       pname = "prometheus-wai-middleware";
+       version = "1.0.1.0";
+       sha256 = "1srp4j7841wfc29x5x8wkykjdqzdln26s219zrq15f5vir14lpar";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base clock containers http-types prometheus text wai
+       ];
+       executableHaskellDepends = [
+         async base http-types prometheus wai warp
+       ];
+       description = "Instrument a wai application with various metrics";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "promise" = callPackage
     ({ mkDerivation, async, base }:
      mkDerivation {
@@ -200785,8 +205627,8 @@ self: {
      }:
      mkDerivation {
        pname = "propellor";
-       version = "5.10.2";
-       sha256 = "1yagzlpn6myj46ihcy8v43kxjf8kba42q5vahy22aanpwbp9lij8";
+       version = "5.12";
+       sha256 = "0j2w2j6df965fhh828y6x55p70wi4r7plrlzzgzxxhq0lhjdjyr0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -201014,27 +205856,6 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens";
-       version = "0.6.0.0";
-       sha256 = "0k2j5b8dxvjx2gxjw5r7pc7r0qiihc2a5j2y3q0hmqljn423zcx6";
-       enableSeparateDataOutput = true;
-       libraryHaskellDepends = [
-         base bytestring containers deepseq ghc-prim lens-family parsec
-         pretty primitive profunctors tagged text transformers vector
-       ];
-       testHaskellDepends = [
-         base bytestring QuickCheck tasty tasty-quickcheck vector
-       ];
-       description = "A lens-based implementation of protocol buffers in Haskell";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "proto-lens_0_7_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, ghc-prim
-     , lens-family, parsec, pretty, primitive, profunctors, QuickCheck
-     , tagged, tasty, tasty-quickcheck, text, transformers, vector
-     }:
-     mkDerivation {
-       pname = "proto-lens";
        version = "0.7.0.0";
        sha256 = "1dg73jwc9mis7igxdj3chkb8fz9a25wxw3d6nz11r98z3ambd8rs";
        enableSeparateDataOutput = true;
@@ -201047,7 +205868,6 @@ self: {
        ];
        description = "A lens-based implementation of protocol buffers in Haskell";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "proto-lens-arbitrary" = callPackage
@@ -201056,21 +205876,6 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-arbitrary";
-       version = "0.1.2.8";
-       sha256 = "0jms2wldjnv455gc3mf232500nidh9vh8g07fw7sdc4m2clch043";
-       libraryHaskellDepends = [
-         base bytestring containers lens-family proto-lens QuickCheck text
-       ];
-       description = "Arbitrary instances for proto-lens";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "proto-lens-arbitrary_0_1_2_9" = callPackage
-    ({ mkDerivation, base, bytestring, containers, lens-family
-     , proto-lens, QuickCheck, text
-     }:
-     mkDerivation {
-       pname = "proto-lens-arbitrary";
        version = "0.1.2.9";
        sha256 = "0ndh8jr9aybjpf1p6a6zs2qjci0z7h3c3v3i5hf28ls8w2g8zr4x";
        libraryHaskellDepends = [
@@ -201078,7 +205883,6 @@ self: {
        ];
        description = "Arbitrary instances for proto-lens";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "proto-lens-combinators" = callPackage
@@ -201128,33 +205932,22 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-jsonpb";
-       version = "0.2.0.0";
-       sha256 = "01m88qfi5lak15n14zlxb5yjyi67h5m47czkzirhi0a615v8bwbr";
+       version = "0.2.0.2";
+       sha256 = "1r98841byxkg5941yjrw15n56i0x68qr3gk29bimwcfifdf0idm2";
        libraryHaskellDepends = [
          aeson attoparsec base base64-bytestring bytestring
          proto-lens-runtime text vector
        ];
        description = "JSON protobuf encoding for proto-lens";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "proto-lens-optparse" = callPackage
     ({ mkDerivation, base, optparse-applicative, proto-lens, text }:
      mkDerivation {
        pname = "proto-lens-optparse";
-       version = "0.1.1.6";
-       sha256 = "105vrzx5qbcby3g1l7fd3alwlsaf0prjnhmy4i4cv9qrkg6qn34q";
-       libraryHaskellDepends = [
-         base optparse-applicative proto-lens text
-       ];
-       description = "Adapting proto-lens to optparse-applicative ReadMs";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "proto-lens-optparse_0_1_1_7" = callPackage
-    ({ mkDerivation, base, optparse-applicative, proto-lens, text }:
-     mkDerivation {
-       pname = "proto-lens-optparse";
        version = "0.1.1.7";
        sha256 = "0fskg0y66qp81z2x2r6jyvrisn7asmbynnq1zq2j97dn7003nqpa";
        libraryHaskellDepends = [
@@ -201162,7 +205955,6 @@ self: {
        ];
        description = "Adapting proto-lens to optparse-applicative ReadMs";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "proto-lens-protobuf-types" = callPackage
@@ -201172,24 +205964,6 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-protobuf-types";
-       version = "0.6.0.0";
-       sha256 = "1mnd8v9wryv59qrc44r5xkibndr5jpa8b7lb1k7hnk5261dffmc7";
-       setupHaskellDepends = [ base Cabal proto-lens-setup ];
-       libraryHaskellDepends = [
-         base lens-family proto-lens proto-lens-runtime text
-       ];
-       libraryToolDepends = [ proto-lens-protoc protobuf ];
-       description = "Basic protocol buffer message types";
-       license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs) protobuf;};
-
-  "proto-lens-protobuf-types_0_7_0_0" = callPackage
-    ({ mkDerivation, base, Cabal, lens-family, proto-lens
-     , proto-lens-protoc, proto-lens-runtime, proto-lens-setup, protobuf
-     , text
-     }:
-     mkDerivation {
-       pname = "proto-lens-protobuf-types";
        version = "0.7.0.0";
        sha256 = "1db0z3394g1fzw80ilxldbvy7m3a4piks0fk2wmlaw5k6bza82c7";
        setupHaskellDepends = [ base Cabal proto-lens-setup ];
@@ -201199,7 +205973,6 @@ self: {
        libraryToolDepends = [ proto-lens-protoc protobuf ];
        description = "Basic protocol buffer message types";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) protobuf;};
 
   "proto-lens-protoc" = callPackage
@@ -201209,27 +205982,6 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-protoc";
-       version = "0.6.0.0";
-       sha256 = "1gi7k48rpmzh3awgdki4b2cg2plh8n8fv397iv6h1ly8jh5p8imr";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [ base filepath ];
-       libraryToolDepends = [ protobuf ];
-       executableHaskellDepends = [
-         base bytestring containers filepath ghc ghc-paths ghc-source-gen
-         lens-family pretty proto-lens proto-lens-runtime text
-       ];
-       description = "Protocol buffer compiler for the proto-lens library";
-       license = stdenv.lib.licenses.bsd3;
-     }) {inherit (pkgs) protobuf;};
-
-  "proto-lens-protoc_0_7_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, filepath, ghc
-     , ghc-paths, ghc-source-gen, lens-family, pretty, proto-lens
-     , proto-lens-runtime, protobuf, text
-     }:
-     mkDerivation {
-       pname = "proto-lens-protoc";
        version = "0.7.0.0";
        sha256 = "1k060lr5d54mzj6c7d2k19vg2432mfnp66wr7gs1qcgpj19q9yvs";
        isLibrary = true;
@@ -201242,7 +205994,6 @@ self: {
        ];
        description = "Protocol buffer compiler for the proto-lens library";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) protobuf;};
 
   "proto-lens-runtime" = callPackage
@@ -201251,22 +206002,6 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-runtime";
-       version = "0.6.0.0";
-       sha256 = "0wxfa4q88i1d4zqv9nybw6hrh5lw84vmkzy5iqw2hzwjym0p3wcn";
-       libraryHaskellDepends = [
-         base bytestring containers deepseq filepath lens-family proto-lens
-         text vector
-       ];
-       doHaddock = false;
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "proto-lens-runtime_0_7_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, filepath
-     , lens-family, proto-lens, text, vector
-     }:
-     mkDerivation {
-       pname = "proto-lens-runtime";
        version = "0.7.0.0";
        sha256 = "0qxangmbldzdvm9qdvhw1cnjakx0zrxrq0nbscqvih2m2yzaxhad";
        libraryHaskellDepends = [
@@ -201275,7 +206010,6 @@ self: {
        ];
        doHaddock = false;
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "proto-lens-setup" = callPackage
@@ -201284,22 +206018,6 @@ self: {
      }:
      mkDerivation {
        pname = "proto-lens-setup";
-       version = "0.4.0.3";
-       sha256 = "1di6nxx94d01rpclmcfc0gzf8x4qp61haw40mr2i9djxwczvrqbd";
-       libraryHaskellDepends = [
-         base bytestring Cabal containers deepseq directory filepath process
-         proto-lens-protoc temporary text
-       ];
-       description = "Cabal support for codegen with proto-lens";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "proto-lens-setup_0_4_0_4" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, containers, deepseq
-     , directory, filepath, process, proto-lens-protoc, temporary, text
-     }:
-     mkDerivation {
-       pname = "proto-lens-setup";
        version = "0.4.0.4";
        sha256 = "09ka0x4ril0lw3ppx2q26zw2r9g2cszsyqrbwy0amw78g1kxma8v";
        libraryHaskellDepends = [
@@ -201308,7 +206026,6 @@ self: {
        ];
        description = "Cabal support for codegen with proto-lens";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "proto3-suite" = callPackage
@@ -201319,14 +206036,13 @@ self: {
      , insert-ordered-containers, lens, mtl, neat-interpolation
      , optparse-applicative, optparse-generic, parsec, parsers, pretty
      , pretty-show, proto3-wire, QuickCheck, quickcheck-instances
-     , range-set-list, safe, semigroups, swagger2, system-filepath
-     , tasty, tasty-hunit, tasty-quickcheck, text, transformers, turtle
-     , vector
+     , range-set-list, safe, swagger2, system-filepath, tasty
+     , tasty-hunit, tasty-quickcheck, text, transformers, turtle, vector
      }:
      mkDerivation {
        pname = "proto3-suite";
-       version = "0.4.0.0";
-       sha256 = "0pmd7fhw4y90h1qffmgxkqijdscqw0qj7nhj0pvrvz1av6svhvr1";
+       version = "0.4.0.2";
+       sha256 = "0mk1yhpq2q6jv7z3ipdq5dw5sij39y7lv5gaslzxkbvs2kan7d4m";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -201335,8 +206051,8 @@ self: {
          bytestring cereal containers contravariant deepseq filepath foldl
          hashable haskell-src insert-ordered-containers lens mtl
          neat-interpolation parsec parsers pretty pretty-show proto3-wire
-         QuickCheck quickcheck-instances safe semigroups swagger2
-         system-filepath text transformers turtle vector
+         QuickCheck quickcheck-instances safe swagger2 system-filepath text
+         transformers turtle vector
        ];
        executableHaskellDepends = [
          base containers mtl optparse-applicative optparse-generic
@@ -201345,8 +206061,8 @@ self: {
        testHaskellDepends = [
          aeson attoparsec base base64-bytestring bytestring cereal
          containers deepseq doctest generic-arbitrary mtl pretty-show
-         proto3-wire QuickCheck semigroups swagger2 tasty tasty-hunit
-         tasty-quickcheck text transformers turtle vector
+         proto3-wire QuickCheck swagger2 tasty tasty-hunit tasty-quickcheck
+         text transformers turtle vector
        ];
        description = "A low level library for writing out data in the Protocol Buffers wire format";
        license = stdenv.lib.licenses.asl20;
@@ -201377,6 +206093,30 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "proto3-wire_1_2_0" = callPackage
+    ({ mkDerivation, base, bytestring, cereal, containers, deepseq
+     , doctest, ghc-prim, hashable, parameterized, primitive, QuickCheck
+     , safe, tasty, tasty-hunit, tasty-quickcheck, text, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "proto3-wire";
+       version = "1.2.0";
+       sha256 = "1xrnrh4njnw6af8xxg9xhcxrscg0g644jx4l9an4iqz6xmjp2nk2";
+       libraryHaskellDepends = [
+         base bytestring cereal containers deepseq ghc-prim hashable
+         parameterized primitive QuickCheck safe text transformers
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base bytestring cereal doctest QuickCheck tasty tasty-hunit
+         tasty-quickcheck text transformers vector
+       ];
+       description = "A low-level implementation of the Protocol Buffers (version 3) wire format";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "protobuf" = callPackage
     ({ mkDerivation, base, base-orphans, bytestring, cereal, containers
      , data-binary-ieee754, deepseq, hex, HUnit, mtl, QuickCheck, tagged
@@ -201448,6 +206188,17 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "protocol" = callPackage
+    ({ mkDerivation, base, freer-indexed, singletons }:
+     mkDerivation {
+       pname = "protocol";
+       version = "0.1.0.1";
+       sha256 = "16pbhfggw46jdjyljqr6dr0mlzmfhvwmw3lg1s5rp90zg4jgvha0";
+       libraryHaskellDepends = [ base freer-indexed singletons ];
+       description = "Model distributed system as type-level multi-party protocol";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "protocol-buffers" = callPackage
     ({ mkDerivation, aeson, array, base, base16-bytestring, binary
      , bytestring, containers, directory, filepath, mtl, parsec, syb
@@ -201666,8 +206417,8 @@ self: {
      }:
      mkDerivation {
        pname = "provenience";
-       version = "0.1.0.1";
-       sha256 = "0z2lsyx59wk663y4p0xwl5sjrl1h3aqlqwig2xhvv9a1cf2bzzd3";
+       version = "0.1.1.0";
+       sha256 = "020kfw1laishiqy8npg2f2llq7dv1djii0d0khjfw7f1scy4x10n";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -201769,8 +206520,8 @@ self: {
        pname = "pseudo-boolean";
        version = "0.1.9.0";
        sha256 = "00n5mf7abprhr9xvh3k1mw40jn4l94wwxpc2h0546h0n9v7srb1b";
-       revision = "1";
-       editedCabalFile = "14lgfxazr83nmbcdprygx2add8233hsq1hpdsiffx5zprgvr78vv";
+       revision = "2";
+       editedCabalFile = "1njlypxh9p0dfqywgqgyzgx9h822d37jbnnd9zbl0ci99k1247g6";
        libraryHaskellDepends = [
          attoparsec base bytestring bytestring-builder containers deepseq
          dlist hashable megaparsec parsec void
@@ -201835,6 +206586,21 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "psql-utils" = callPackage
+    ({ mkDerivation, aeson, base, hashable, postgresql-simple
+     , resource-pool, time
+     }:
+     mkDerivation {
+       pname = "psql-utils";
+       version = "0.2.0.1";
+       sha256 = "0vqi45v5ghv36gqmqc0ddhm4rwc0zg9qckl0bf7klwiiczs52smq";
+       libraryHaskellDepends = [
+         aeson base hashable postgresql-simple resource-pool time
+       ];
+       description = "PostgreSQL Simple util tools";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "psqueues" = callPackage
     ({ mkDerivation, array, base, containers, criterion, deepseq
      , fingertree-psqueue, ghc-prim, hashable, HUnit, mtl, PSQueue
@@ -201894,8 +206660,8 @@ self: {
      }:
      mkDerivation {
        pname = "ptr";
-       version = "0.16.7";
-       sha256 = "1mnwx657mcg0c0hg71z6kglxckjxc7xsypy00m7lsj37l6bpfnjr";
+       version = "0.16.7.2";
+       sha256 = "0d00albfv3zbbq54x9i8riwbpi61mpz7ymr8y1whag2lrw4diyna";
        libraryHaskellDepends = [
          base bytestring contravariant profunctors text time vector
        ];
@@ -201933,23 +206699,6 @@ self: {
      }:
      mkDerivation {
        pname = "publicsuffix";
-       version = "0.20191003";
-       sha256 = "1birj2k23v93w89mcrn522mqyfipv3smrdhag6k6pgsi628gihx7";
-       revision = "1";
-       editedCabalFile = "1diqb9knkhlryyygzs959zwd5d60wdkbmlza76cmsizkqq4vzhds";
-       libraryHaskellDepends = [ base filepath template-haskell ];
-       testHaskellDepends = [ base hspec ];
-       benchmarkHaskellDepends = [ base criterion random ];
-       description = "The publicsuffix list exposed as proper Haskell types";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "publicsuffix_0_20200526" = callPackage
-    ({ mkDerivation, base, criterion, filepath, hspec, random
-     , template-haskell
-     }:
-     mkDerivation {
-       pname = "publicsuffix";
        version = "0.20200526";
        sha256 = "0sipkr4mzhha5w4236jj6j8assy565yf085aqa3awwqi28674mbb";
        libraryHaskellDepends = [ base filepath template-haskell ];
@@ -201957,7 +206706,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion random ];
        description = "The publicsuffix list exposed as proper Haskell types";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "publicsuffixlist" = callPackage
@@ -202006,8 +206754,8 @@ self: {
      }:
      mkDerivation {
        pname = "publish";
-       version = "2.1.0";
-       sha256 = "03fwk0ami5xxqacqb8gikqzxdp7cavvni5bmxd5bi1lvavk49sh7";
+       version = "2.1.3";
+       sha256 = "1d16pz8nlqdvlp4d1129k71vzdyql1szhk158b446k988akmgaq8";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -202442,8 +207190,8 @@ self: {
      }:
      mkDerivation {
        pname = "purebred-email";
-       version = "0.4.1";
-       sha256 = "0fkdmd0glp8p2dyzfpm3ah6nbfw4jqfzx7ai6yl2f9yrssb0ckp9";
+       version = "0.4.2";
+       sha256 = "18cjifncnxi4c3xxkgvvvay56h2a0zs83505xf1a9fkz5n8iwqby";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -202504,6 +207252,8 @@ self: {
        pname = "purescript";
        version = "0.13.8";
        sha256 = "0sh9z3ir3jiwmi5h95v9p7j746xxidg1hrxha89c0zl6vr4sq7vh";
+       revision = "1";
+       editedCabalFile = "1ilnqfxscwkr0jl09y1dwi2aabwnghd0l22lm32jgfyq04njpc2a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -202562,26 +207312,6 @@ self: {
      }:
      mkDerivation {
        pname = "purescript-bridge";
-       version = "0.13.0.0";
-       sha256 = "0jai0vrfw997w7gjs168bk8n2xjw30hnhd82pch5n58w1sy6n6ib";
-       libraryHaskellDepends = [
-         base containers directory filepath generic-deriving lens mtl text
-         transformers
-       ];
-       testHaskellDepends = [
-         base containers hspec hspec-expectations-pretty-diff text
-       ];
-       description = "Generate PureScript data types from Haskell data types";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "purescript-bridge_0_14_0_0" = callPackage
-    ({ mkDerivation, base, containers, directory, filepath
-     , generic-deriving, hspec, hspec-expectations-pretty-diff, lens
-     , mtl, text, transformers
-     }:
-     mkDerivation {
-       pname = "purescript-bridge";
        version = "0.14.0.0";
        sha256 = "1gplvmkx2c8ksk25wdinhwwbmqa5czbd4nwdgn4sa9ci10f2i4a3";
        libraryHaskellDepends = [
@@ -202593,7 +207323,6 @@ self: {
        ];
        description = "Generate PureScript data types from Haskell data types";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "purescript-bundle-fast" = callPackage
@@ -202682,6 +207411,8 @@ self: {
        executableHaskellDepends = [ base text ];
        description = "A cli client for pursuit";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "push-notifications" = callPackage
@@ -202856,8 +207587,8 @@ self: {
      }:
      mkDerivation {
        pname = "pusher-http-haskell";
-       version = "1.5.1.13";
-       sha256 = "0hdipa1i5l4d60i70c1li585jc4biq0af6l826rzfhlpwjgzlh7z";
+       version = "1.5.1.14";
+       sha256 = "0gfn5rfyyhbrl6sq7b6qyg86afww60c9g8y65m0qci6c91jbrv3a";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring cryptonite hashable
          http-client http-types memory text time transformers
@@ -202868,8 +207599,30 @@ self: {
          http-client http-types QuickCheck scientific text time transformers
          unordered-containers vector
        ];
-       description = "Haskell client library for the Pusher HTTP API";
+       description = "Haskell client library for the Pusher Channels HTTP API";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "pusher-http-haskell_2_0_0_1" = callPackage
+    ({ mkDerivation, aeson, base, base16-bytestring, bytestring
+     , cryptonite, hashable, hspec, http-client, http-client-tls
+     , http-types, memory, QuickCheck, text, time, unordered-containers
+     }:
+     mkDerivation {
+       pname = "pusher-http-haskell";
+       version = "2.0.0.1";
+       sha256 = "05f4p4rnx2gy1f17d83sfpnxrfniq710pyai97gwi4ks3f4avk5a";
+       libraryHaskellDepends = [
+         aeson base base16-bytestring bytestring cryptonite hashable
+         http-client http-client-tls http-types memory text time
+         unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring hspec QuickCheck text unordered-containers
+       ];
+       description = "Haskell client library for the Pusher Channels HTTP API";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "pusher-ws" = callPackage
@@ -203330,6 +208083,26 @@ self: {
        broken = true;
      }) {};
 
+  "qlinear" = callPackage
+    ({ mkDerivation, base, haskell-src-exts, haskell-src-meta, hspec
+     , linear, parsec, split, template-haskell
+     }:
+     mkDerivation {
+       pname = "qlinear";
+       version = "0.1.2.0";
+       sha256 = "1q1xd3sh5b5kjp9wb24v2z9dbjk75dwk286f0gda4y460h4zkp8z";
+       libraryHaskellDepends = [
+         base haskell-src-exts haskell-src-meta linear parsec split
+         template-haskell
+       ];
+       testHaskellDepends = [
+         base haskell-src-exts haskell-src-meta hspec linear parsec split
+         template-haskell
+       ];
+       description = "Typesafe library for linear algebra";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "qm-interpolated-string" = callPackage
     ({ mkDerivation, base, bytestring, haskell-src-meta, hspec
      , template-haskell, text
@@ -203451,8 +208224,8 @@ self: {
      }:
      mkDerivation {
        pname = "qrcode-core";
-       version = "0.9.3";
-       sha256 = "08kp0qp7kvld99kk2iwr6cxpxji2w9vjydivqc3nwxbk5ay2mpjg";
+       version = "0.9.4";
+       sha256 = "1drjx73qslga81bhby0h000icrvnhhlv36n6i37j8524x9ir2gn0";
        libraryHaskellDepends = [
          base binary bytestring case-insensitive containers dlist primitive
          text vector
@@ -203467,8 +208240,8 @@ self: {
      }:
      mkDerivation {
        pname = "qrcode-juicypixels";
-       version = "0.8.1";
-       sha256 = "0yd22dygh2z8i0yhgdgr1m25ag9bdkpmd1ciq4iq42k0yhk6iqx9";
+       version = "0.8.2";
+       sha256 = "0kiyi084hmd2l50fd8miwgw0y94sd1lkf34jw7z3sb33bbp70f3g";
        libraryHaskellDepends = [
          base base64-bytestring bytestring JuicyPixels qrcode-core text
          vector
@@ -203744,6 +208517,8 @@ self: {
        ];
        description = "Coronavirus quarantine timer web app for your things";
        license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "qudb" = callPackage
@@ -204097,15 +208872,15 @@ self: {
 
   "quickcheck-classes-base" = callPackage
     ({ mkDerivation, base, base-orphans, bifunctors, containers
-     , contravariant, fail, QuickCheck, semigroups, tagged, transformers
+     , contravariant, fail, QuickCheck, tagged, transformers
      }:
      mkDerivation {
        pname = "quickcheck-classes-base";
-       version = "0.6.0.0";
-       sha256 = "193jbr3fy2451gx0hzw82xrzxp6mxz5ics6yaybbz1a3dhlz53yx";
+       version = "0.6.1.0";
+       sha256 = "0yzljsy74njmbav90hgraxhjx0l86zggakfw0j3k7maz9376jvax";
        libraryHaskellDepends = [
          base base-orphans bifunctors containers contravariant fail
-         QuickCheck semigroups tagged transformers
+         QuickCheck tagged transformers
        ];
        description = "QuickCheck common typeclasses from `base`";
        license = stdenv.lib.licenses.bsd3;
@@ -204153,21 +208928,21 @@ self: {
   "quickcheck-instances" = callPackage
     ({ mkDerivation, array, base, base-compat, bytestring
      , case-insensitive, containers, hashable, old-time, QuickCheck
-     , scientific, splitmix, tagged, text, time, time-compat
+     , scientific, splitmix, tagged, text, these, time, time-compat
      , transformers, transformers-compat, unordered-containers
      , uuid-types, vector
      }:
      mkDerivation {
        pname = "quickcheck-instances";
-       version = "0.3.22";
-       sha256 = "14asr9r7da3w7p4hjj51w2yb002nz8x0np8hdz9z4yjvi60vyrax";
-       revision = "4";
-       editedCabalFile = "0wx4jcmiv6f3iwc92wf4l2j9025bv4997rn2ycl08ld585m1xlgv";
+       version = "0.3.23";
+       sha256 = "1gig5dwgsahpgdz0cm06wf9lbjnh0qmr5qrlk9bc3v72pa8knc0i";
+       revision = "1";
+       editedCabalFile = "1lir5ryv2b1hn5n5fbgs9syram71zv4p4chb9xzkxvbszl5inw8k";
        libraryHaskellDepends = [
          array base base-compat bytestring case-insensitive containers
-         hashable old-time QuickCheck scientific splitmix tagged text time
-         time-compat transformers transformers-compat unordered-containers
-         uuid-types vector
+         hashable old-time QuickCheck scientific splitmix tagged text these
+         time time-compat transformers transformers-compat
+         unordered-containers uuid-types vector
        ];
        testHaskellDepends = [
          base containers QuickCheck tagged uuid-types
@@ -204177,23 +208952,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "quickcheck-instances_0_3_23" = callPackage
-    ({ mkDerivation, array, base, base-compat, bytestring
-     , case-insensitive, containers, hashable, old-time, QuickCheck
-     , scientific, splitmix, tagged, text, these, time, time-compat
-     , transformers, transformers-compat, unordered-containers
-     , uuid-types, vector
+  "quickcheck-instances_0_3_24" = callPackage
+    ({ mkDerivation, array, base, bytestring, case-insensitive
+     , containers, data-fix, hashable, integer-logarithms, old-time
+     , QuickCheck, scientific, splitmix, strict, tagged, text, these
+     , time, time-compat, transformers, transformers-compat
+     , unordered-containers, uuid-types, vector
      }:
      mkDerivation {
        pname = "quickcheck-instances";
-       version = "0.3.23";
-       sha256 = "1gig5dwgsahpgdz0cm06wf9lbjnh0qmr5qrlk9bc3v72pa8knc0i";
-       revision = "1";
-       editedCabalFile = "1lir5ryv2b1hn5n5fbgs9syram71zv4p4chb9xzkxvbszl5inw8k";
+       version = "0.3.24";
+       sha256 = "0jvb3d43hc1sa8aal1gjpwmrh65mswi72yssb98bj5hca4z8grk5";
        libraryHaskellDepends = [
-         array base base-compat bytestring case-insensitive containers
-         hashable old-time QuickCheck scientific splitmix tagged text these
-         time time-compat transformers transformers-compat
+         array base bytestring case-insensitive containers data-fix hashable
+         integer-logarithms old-time QuickCheck scientific splitmix strict
+         tagged text these time time-compat transformers transformers-compat
          unordered-containers uuid-types vector
        ];
        testHaskellDepends = [
@@ -204469,8 +209242,8 @@ self: {
     ({ mkDerivation, base, QuickCheck, random, transformers }:
      mkDerivation {
        pname = "quickcheck-transformer";
-       version = "0.3.1";
-       sha256 = "1jbn17gp2f5ppm83vs2gd3fcbkv3km45qfjgr6qz532ks1a8k0fl";
+       version = "0.3.1.1";
+       sha256 = "0al0p44qi9j829zcnv43kqf4pxaxr6fb48vkq1an15hdk6svx11j";
        libraryHaskellDepends = [ base QuickCheck random transformers ];
        description = "A GenT monad transformer for QuickCheck library";
        license = stdenv.lib.licenses.mit;
@@ -204511,6 +209284,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "quickjs-hs" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, exceptions
+     , HUnit, inline-c, mtl, QuickCheck, scientific, string-conv, tasty
+     , tasty-hunit, tasty-quickcheck, text, time, transformers
+     , unliftio-core, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "quickjs-hs";
+       version = "0.1.2.1";
+       sha256 = "0dbypa7p3x5j2nmbw2qvs4aik74jfkfa9b0mmv2290p6sj9ag1hd";
+       revision = "1";
+       editedCabalFile = "0f18980s2sky2fnrdnadyhivjhbzxcq9m3isnji8q2gbzpbywca7";
+       libraryHaskellDepends = [
+         aeson base bytestring containers exceptions inline-c mtl scientific
+         string-conv text time transformers unliftio-core
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base exceptions HUnit QuickCheck tasty tasty-hunit
+         tasty-quickcheck text unordered-containers vector
+       ];
+       description = "Wrapper for the QuickJS Javascript Engine";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "quicklz" = callPackage
     ({ mkDerivation, base, bytestring, QuickCheck, test-framework
      , test-framework-quickcheck2
@@ -204590,10 +209388,8 @@ self: {
      }:
      mkDerivation {
        pname = "quickspec";
-       version = "2.1.2";
-       sha256 = "0igqwa195qgps5vla2a4f83rq4vdq739i94kbzzmbnniylx9wgdw";
-       revision = "1";
-       editedCabalFile = "0r1jmxcm08mhfxz6gggnnpgcwm4zd3zm76p5lj37h04cvq6kyaa5";
+       version = "2.1.5";
+       sha256 = "0j8mcn9616r40hdl0jy6mqac7i31mhlsgv421m1hc8pj1kabpc0i";
        libraryHaskellDepends = [
          base constraints containers data-lens-light dlist QuickCheck
          quickcheck-instances random spoon template-haskell transformers
@@ -205453,25 +210249,6 @@ self: {
      }:
      mkDerivation {
        pname = "rainbox";
-       version = "0.24.4.0";
-       sha256 = "13532qzpvlq976049bdfyqzhb4g843ij3b7w654xqb2ng9q4inwz";
-       libraryHaskellDepends = [
-         base bytestring containers lens rainbow text
-       ];
-       testHaskellDepends = [
-         base bytestring containers lens QuickCheck rainbow tasty
-         tasty-quickcheck text
-       ];
-       description = "Two-dimensional box pretty printing, with colors";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "rainbox_0_26_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, lens, QuickCheck
-     , rainbow, tasty, tasty-quickcheck, text
-     }:
-     mkDerivation {
-       pname = "rainbox";
        version = "0.26.0.0";
        sha256 = "07hh904p0mlc3iww184849yps80kwrhdna9nr840m2qyd81m37d1";
        libraryHaskellDepends = [
@@ -205483,7 +210260,6 @@ self: {
        ];
        description = "Two-dimensional box pretty printing, with colors";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "rake" = callPackage
@@ -205643,7 +210419,7 @@ self: {
        sha256 = "14fnk2q702qm0mh30r9kznbh4ikpv4fsd5mrnwphm5d06vmq6hq9";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base haskell98 ];
-       description = "'$' in reverse.";
+       description = "'$' in reverse";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -205756,6 +210532,32 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "random_1_2_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, doctest
+     , gauge, mtl, mwc-random, primitive, rdtsc, smallcheck, split
+     , splitmix, tasty, tasty-expected-failure, tasty-hunit
+     , tasty-smallcheck, time, unliftio, vector
+     }:
+     mkDerivation {
+       pname = "random";
+       version = "1.2.0";
+       sha256 = "1pmr7zbbqg58kihhhwj8figf5jdchhi7ik2apsyxbgsqq3vrqlg4";
+       revision = "2";
+       editedCabalFile = "1pjpv8rzbwhr881ayxbvz4filvx3qkdx13pa21407p5fiyf208a3";
+       libraryHaskellDepends = [ base bytestring deepseq mtl splitmix ];
+       testHaskellDepends = [
+         base bytestring containers doctest mwc-random primitive smallcheck
+         tasty tasty-expected-failure tasty-hunit tasty-smallcheck unliftio
+         vector
+       ];
+       benchmarkHaskellDepends = [
+         base gauge mtl rdtsc split splitmix time
+       ];
+       description = "Pseudo-random number generation";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "random-access-file" = callPackage
     ({ mkDerivation, base, bytestring, concurrent-extra, containers
      , criterion, directory, lrucaching, mwc-random, random, stm, unix
@@ -205872,23 +210674,27 @@ self: {
        ];
        description = "Additional functions for random values";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "random-fu" = callPackage
     ({ mkDerivation, base, erf, math-functions, monad-loops, mtl
-     , random-shuffle, random-source, rvar, syb, template-haskell
-     , transformers, vector
+     , random, random-shuffle, random-source, rvar, syb
+     , template-haskell, transformers, vector
      }:
      mkDerivation {
        pname = "random-fu";
-       version = "0.2.7.4";
-       sha256 = "13dgx069lvdfxm7l2q2l6d7q0gd3wp41b8l4l6wmhlfbl5xici3m";
+       version = "0.2.7.7";
+       sha256 = "1jk5qv7iddbqcyciih9vfylrwhbcabmy348waw5c7gchabxvqrl4";
        libraryHaskellDepends = [
-         base erf math-functions monad-loops mtl random-shuffle
+         base erf math-functions monad-loops mtl random random-shuffle
          random-source rvar syb template-haskell transformers vector
        ];
        description = "Random number generation";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "random-fu-multivariate" = callPackage
@@ -205901,6 +210707,8 @@ self: {
        testHaskellDepends = [ base ];
        description = "Multivariate distributions for random-fu";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "random-hypergeometric" = callPackage
@@ -205951,14 +210759,16 @@ self: {
      }:
      mkDerivation {
        pname = "random-source";
-       version = "0.3.0.8";
-       sha256 = "0kjvpmxhff6id99hhgjp3vvb4vlhs3shkrh1n5cbfm7450lpmmn2";
+       version = "0.3.0.11";
+       sha256 = "0lwqbd0h495srgi2p8fsmsfk5hv5m3f6cxm12j61xx94fdyn98sv";
        libraryHaskellDepends = [
          base flexible-defaults mersenne-random-pure64 mtl mwc-random
          primitive random stateref syb template-haskell th-extras
        ];
        description = "Generic basis for random number generators";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "random-stream" = callPackage
@@ -206180,6 +210990,8 @@ self: {
        ];
        description = "Find the rank product of a data set";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "rank1dynamic" = callPackage
@@ -206658,28 +211470,6 @@ self: {
      }) {};
 
   "rattle" = callPackage
-    ({ mkDerivation, base, bytestring, cryptohash-sha256, deepseq
-     , directory, extra, filepath, filepattern, hashable, shake, time
-     , transformers, unordered-containers
-     }:
-     mkDerivation {
-       pname = "rattle";
-       version = "0.1";
-       sha256 = "10ra58lqhi9pn92rgyv6lkz7036kbq9gr6ly5w1lqdayla10fqhr";
-       revision = "2";
-       editedCabalFile = "0h37mx0iv53jdmsqla40fsnnmkzld6a2r0468ylbhgi2arrda0w9";
-       libraryHaskellDepends = [
-         base bytestring cryptohash-sha256 deepseq directory extra filepath
-         hashable shake time transformers unordered-containers
-       ];
-       testHaskellDepends = [ base directory extra filepattern shake ];
-       description = "Forward build system, with caching and speculation";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "rattle_0_2" = callPackage
     ({ mkDerivation, async, base, bytestring, Cabal, cmdargs
      , cryptohash-sha256, deepseq, directory, extra, filepath
      , filepattern, hashable, heaps, js-dgtable, js-flot, js-jquery
@@ -206722,8 +211512,8 @@ self: {
      }:
      mkDerivation {
        pname = "rattletrap";
-       version = "9.1.3";
-       sha256 = "01schszjdy1dvmbr3ml1fxncm7a3bvjvfnvhwc6r8lwfmz4vm3hc";
+       version = "9.1.4";
+       sha256 = "189nyd8zbylmc2r65m4vag1h47d6gzcrvp6k81yhlci8bqcddncp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -207037,10 +211827,8 @@ self: {
      }:
      mkDerivation {
        pname = "rdf";
-       version = "0.1.0.3";
-       sha256 = "0bypvzr4xj3nvq839slhjcl6lzs4zp34yg6q3hdkwa5vgall6x2s";
-       revision = "1";
-       editedCabalFile = "0x5zdjbyrpap5qs40yl0m96fcgy11f6s5r3v0n8n5904cxa5sqy3";
+       version = "0.1.0.4";
+       sha256 = "1ncvh2rkxmy3k3scrpf7zyambvr94s5hq6n2yb4h7f5yx6xzr0wk";
        libraryHaskellDepends = [
          attoparsec base bytestring deepseq dlist fgl text transformers
        ];
@@ -207054,22 +211842,22 @@ self: {
   "rdf4h" = callPackage
     ({ mkDerivation, algebraic-graphs, attoparsec, base, binary
      , bytestring, containers, criterion, deepseq, directory, exceptions
-     , filepath, hashable, hgal, html-entities, http-conduit, HUnit
+     , filepath, hashable, html-entities, http-conduit, HUnit
      , lifted-base, mmorph, mtl, network-uri, parsec, parsers
      , QuickCheck, safe, selective, tasty, tasty-hunit, tasty-quickcheck
      , text, unordered-containers, xeno
      }:
      mkDerivation {
        pname = "rdf4h";
-       version = "4.0.0";
-       sha256 = "10436ff2pp3jxjkfaqg71d1hrn7xq6dpp5xd6gbkf22a1hq4g93b";
+       version = "4.0.2";
+       sha256 = "1gkz1i1v2509aa5c9jp2lgmsnnsr7d1314gq3xmcs21dfgf7xibw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          algebraic-graphs attoparsec base binary bytestring containers
-         deepseq exceptions filepath hashable hgal html-entities
-         http-conduit lifted-base mmorph mtl network-uri parsec parsers
-         selective text unordered-containers xeno
+         deepseq exceptions filepath hashable html-entities http-conduit
+         lifted-base mmorph mtl network-uri parsec parsers selective text
+         unordered-containers xeno
        ];
        executableHaskellDepends = [ base containers text ];
        testHaskellDepends = [
@@ -207079,8 +211867,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion deepseq text ];
        description = "A library for RDF processing in Haskell";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "rdioh" = callPackage
@@ -207313,8 +212099,8 @@ self: {
      }:
      mkDerivation {
        pname = "reactive-banana-automation";
-       version = "0.5.3";
-       sha256 = "15jp5rawypxzbbyi9xi6jkds3mns7fpfkvzrzbqd7dvaj4mzzz0g";
+       version = "0.5.4";
+       sha256 = "1ir2m6d13hg8i4w4vfpnvjv6dvnjmrz2bwl7n6lsac95pm0hbjs3";
        libraryHaskellDepends = [
          base reactive-banana stm time transformers
        ];
@@ -207348,8 +212134,8 @@ self: {
      }:
      mkDerivation {
        pname = "reactive-banana-gi-gtk";
-       version = "0.4.0.2";
-       sha256 = "136wzp6v9g6k5aa6w5wh0n96qcq9lm7h0lc87pk170ypymadp6ak";
+       version = "0.4.1.0";
+       sha256 = "021fkmwgymmlf1ha03y9rdimbck7sglmg4cjpdf76z01r6hpzbrb";
        libraryHaskellDepends = [
          base gi-gtk haskell-gi-base reactive-banana text transformers
        ];
@@ -207585,8 +212371,8 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "read-bounded";
-       version = "0.1.1.2";
-       sha256 = "1h525al4aavplyimhxsvk96cajl8m7rnlqq3wxh9gqlc1sy4ywcg";
+       version = "0.1.1.3";
+       sha256 = "0b2syhxan3fpf9h1zq3izpb8bgsl4qrk975afy3r2ji6dhjq81cl";
        libraryHaskellDepends = [ base ];
        description = "Class for reading bounded values";
        license = stdenv.lib.licenses.bsd3;
@@ -207657,6 +212443,26 @@ self: {
        broken = true;
      }) {};
 
+  "readability" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, html-conduit
+     , http-conduit, optparse-applicative, text, xml-conduit
+     }:
+     mkDerivation {
+       pname = "readability";
+       version = "0.1.0.0";
+       sha256 = "1px8fjwglcrh6vp2j8jcbslc6izgaj8cnl0w7g997gps62jbqn34";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring containers html-conduit text xml-conduit
+       ];
+       executableHaskellDepends = [
+         aeson base http-conduit optparse-applicative text xml-conduit
+       ];
+       description = "Extracts text of main article from HTML document";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "readable" = callPackage
     ({ mkDerivation, base, bytestring, text }:
      mkDerivation {
@@ -207727,19 +212533,20 @@ self: {
 
   "readme-lhs" = callPackage
     ({ mkDerivation, attoparsec, base, blaze-html, containers, doctest
-     , foldl, pandoc, pandoc-types, protolude, text, transformers
+     , foldl, numhask, pandoc, pandoc-types, scientific, tdigest, text
+     , transformers
      }:
      mkDerivation {
        pname = "readme-lhs";
-       version = "0.6.0";
-       sha256 = "0q47r8dbmvmpk8fa6s4lwv5i9g4fhbyhd6c350h9ic55nqg04svv";
+       version = "0.7.0";
+       sha256 = "0sgfqx34yzlvn2999wh2681gk6dan9nrlkzd3indybkmal9mc80b";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         attoparsec base blaze-html containers foldl pandoc pandoc-types
-         protolude text transformers
+         attoparsec base blaze-html containers foldl numhask pandoc
+         pandoc-types scientific tdigest text transformers
        ];
-       executableHaskellDepends = [ base protolude text ];
+       executableHaskellDepends = [ base numhask text ];
        testHaskellDepends = [ base containers doctest ];
        description = "See readme.md";
        license = stdenv.lib.licenses.bsd3;
@@ -207837,6 +212644,42 @@ self: {
        license = stdenv.lib.licenses.publicDomain;
      }) {};
 
+  "reanimate_1_0_0_0" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, array, attoparsec, base
+     , base64-bytestring, bytestring, cassava, cereal, colour
+     , containers, cubicbezier, directory, filelock, filepath
+     , fingertree, fsnotify, geojson, ghcid, hashable, hgeometry
+     , hgeometry-combinatorial, JuicyPixels, lens, linear, matrix, mtl
+     , neat-interpolation, open-browser, optparse-applicative, parallel
+     , process, QuickCheck, random, random-shuffle, reanimate-svg, split
+     , tasty, tasty-expected-failure, tasty-golden, tasty-hunit
+     , tasty-quickcheck, tasty-rerun, temporary, text, time
+     , unordered-containers, vector, vector-space, websockets, xml
+     }:
+     mkDerivation {
+       pname = "reanimate";
+       version = "1.0.0.0";
+       sha256 = "0abjz0yw2d4i84j37hx24k3nmjz946fj200v43hhpwbjiydb1cnn";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson ansi-terminal array attoparsec base base64-bytestring
+         bytestring cassava cereal colour containers cubicbezier directory
+         filelock filepath fingertree fsnotify geojson ghcid hashable
+         hgeometry hgeometry-combinatorial JuicyPixels lens linear matrix
+         mtl neat-interpolation open-browser optparse-applicative parallel
+         process random random-shuffle reanimate-svg split temporary text
+         time unordered-containers vector vector-space websockets xml
+       ];
+       testHaskellDepends = [
+         base bytestring directory filepath linear process QuickCheck tasty
+         tasty-expected-failure tasty-golden tasty-hunit tasty-quickcheck
+         tasty-rerun temporary text vector
+       ];
+       description = "Animation library based on SVGs";
+       license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "reanimate-svg" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, containers
      , double-conversion, hspec, JuicyPixels, lens, linear, mtl
@@ -207857,6 +212700,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "reanimate-svg_0_11_0_0" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, containers
+     , double-conversion, hashable, JuicyPixels, lens, linear, mtl
+     , scientific, text, transformers, vector, xml
+     }:
+     mkDerivation {
+       pname = "reanimate-svg";
+       version = "0.11.0.0";
+       sha256 = "0cgyz2vf6yqkydxbx73blyr0fz0i50i0bdlnzs0r6ypdpsk5hqxy";
+       libraryHaskellDepends = [
+         attoparsec base bytestring containers double-conversion hashable
+         JuicyPixels lens linear mtl scientific text transformers vector xml
+       ];
+       description = "SVG file loader and serializer";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "reason-export" = callPackage
     ({ mkDerivation, base, bytestring, containers, Diff, directory
      , formatting, hashable, hspec, hspec-core, HUnit, mtl, QuickCheck
@@ -207905,43 +212766,42 @@ self: {
      }) {};
 
   "rebase" = callPackage
-    ({ mkDerivation, base, base-prelude, bifunctors, bytestring
-     , comonad, containers, contravariant, contravariant-extras, deepseq
-     , dlist, either, fail, hashable, mtl, profunctors, scientific
-     , selective, semigroupoids, semigroups, stm, text, time
-     , transformers, unordered-containers, uuid, vector, void
+    ({ mkDerivation, base, bifunctors, bytestring, comonad, containers
+     , contravariant, contravariant-extras, deepseq, dlist, either
+     , hashable, mtl, profunctors, scientific, selective, semigroupoids
+     , semigroups, stm, text, time, transformers, unordered-containers
+     , uuid, vector, void
      }:
      mkDerivation {
        pname = "rebase";
-       version = "1.4.1";
-       sha256 = "13fvhsxkzrghl6d2isjsxjkfkbkpnfgbdb20lc1z7izqjkvjj8rc";
+       version = "1.6.1";
+       sha256 = "020aw7wlgx8nqbq6ara13szgxw2q0n0hx3vrsn2lfp53b2jdsvax";
        libraryHaskellDepends = [
-         base base-prelude bifunctors bytestring comonad containers
-         contravariant contravariant-extras deepseq dlist either fail
-         hashable mtl profunctors scientific selective semigroupoids
-         semigroups stm text time transformers unordered-containers uuid
-         vector void
+         base bifunctors bytestring comonad containers contravariant
+         contravariant-extras deepseq dlist either hashable mtl profunctors
+         scientific selective semigroupoids semigroups stm text time
+         transformers unordered-containers uuid vector void
        ];
        description = "A more progressive alternative to the \"base\" package";
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "rebase_1_6_1" = callPackage
+  "rebase_1_9" = callPackage
     ({ mkDerivation, base, bifunctors, bytestring, comonad, containers
      , contravariant, contravariant-extras, deepseq, dlist, either
-     , hashable, mtl, profunctors, scientific, selective, semigroupoids
-     , semigroups, stm, text, time, transformers, unordered-containers
-     , uuid, vector, void
+     , hashable, hashable-time, mtl, profunctors, scientific, selective
+     , semigroupoids, stm, text, time, transformers
+     , unordered-containers, uuid, vector, vector-instances, void
      }:
      mkDerivation {
        pname = "rebase";
-       version = "1.6.1";
-       sha256 = "020aw7wlgx8nqbq6ara13szgxw2q0n0hx3vrsn2lfp53b2jdsvax";
+       version = "1.9";
+       sha256 = "0ab6qds4r0m7sj821mggpcj4xc5mrqsqn6ammlxm5ifis8k9rxma";
        libraryHaskellDepends = [
          base bifunctors bytestring comonad containers contravariant
-         contravariant-extras deepseq dlist either hashable mtl profunctors
-         scientific selective semigroupoids semigroups stm text time
-         transformers unordered-containers uuid vector void
+         contravariant-extras deepseq dlist either hashable hashable-time
+         mtl profunctors scientific selective semigroupoids stm text time
+         transformers unordered-containers uuid vector vector-instances void
        ];
        description = "A more progressive alternative to the \"base\" package";
        license = stdenv.lib.licenses.mit;
@@ -207970,6 +212830,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "recommender-als" = callPackage
+    ({ mkDerivation, base, containers, data-default-class, hmatrix
+     , parallel, random, vector
+     }:
+     mkDerivation {
+       pname = "recommender-als";
+       version = "0.2.1.1";
+       sha256 = "0qc91hn42mc2pmljb836chdas1jzsrqbg44cjylx31y0y72dmhdq";
+       libraryHaskellDepends = [
+         base containers data-default-class hmatrix parallel random vector
+       ];
+       description = "Recommendations using alternating least squares algorithm";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "record" = callPackage
     ({ mkDerivation, base, base-prelude, basic-lens, template-haskell
      , transformers
@@ -208011,8 +212886,8 @@ self: {
      }:
      mkDerivation {
        pname = "record-dot-preprocessor";
-       version = "0.2.5";
-       sha256 = "10f054da8iz38mplgbq4j78r4jl4l07iridd89ivk9d366z1c0ly";
+       version = "0.2.6";
+       sha256 = "0xnlzs74nxcw6yms5zbd50wnzy3n0i91rf0ss9ywc9bw18d2lbmh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base extra ghc uniplate ];
@@ -208190,8 +213065,8 @@ self: {
     ({ mkDerivation, base, composition-prelude }:
      mkDerivation {
        pname = "recursion";
-       version = "2.2.4.1";
-       sha256 = "09r4a9h4rd48nqdn08v3mvibqvgb0ym05142jrk0qqq8f4la3dni";
+       version = "2.2.4.2";
+       sha256 = "15ahlgm0dilapk0y5jhwdvrims7nyzdsbdccq4x9jj0ddsszqr02";
        libraryHaskellDepends = [ base composition-prelude ];
        description = "A recursion schemes library for Haskell";
        license = stdenv.lib.licenses.bsd3;
@@ -208216,6 +213091,24 @@ self: {
        license = stdenv.lib.licenses.bsd2;
      }) {};
 
+  "recursion-schemes_5_2" = callPackage
+    ({ mkDerivation, base, base-orphans, comonad, containers, data-fix
+     , free, HUnit, template-haskell, th-abstraction, transformers
+     }:
+     mkDerivation {
+       pname = "recursion-schemes";
+       version = "5.2";
+       sha256 = "093fndxfnl2x8d7pyg0749w5hk1bhsrgzwl8qgaxvih49xqjc35z";
+       libraryHaskellDepends = [
+         base base-orphans comonad containers data-fix free template-haskell
+         th-abstraction transformers
+       ];
+       testHaskellDepends = [ base HUnit template-haskell transformers ];
+       description = "Representing common recursion patterns as higher-order functions";
+       license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "recursion-schemes-ext" = callPackage
     ({ mkDerivation, base, composition-prelude, criterion, deepseq
      , hspec, lens, recursion-schemes
@@ -208361,8 +213254,8 @@ self: {
      }:
      mkDerivation {
        pname = "redis";
-       version = "0.14.1";
-       sha256 = "02r97k08n9gyrfmbm6qgb8dddivaiprp50hs79a5bnxvvl6vmq9b";
+       version = "0.14.2";
+       sha256 = "0l52adcr6wvdqixg9nd837pn8qqdx99zv74wmw63k5497p4mbw2y";
        libraryHaskellDepends = [
          base bytestring concurrent-extra containers exceptions mtl network
          old-time utf8-string
@@ -208457,6 +213350,23 @@ self: {
        broken = true;
      }) {};
 
+  "rediscaching-haxl" = callPackage
+    ({ mkDerivation, aeson, async, base, bytestring, hashable, haxl
+     , hedis, network, time
+     }:
+     mkDerivation {
+       pname = "rediscaching-haxl";
+       version = "0.1.0.0";
+       sha256 = "0mgmrcw1p9q4njrmjal9ckxkli8wb2g12njqaj6xlkin2xz5ym8j";
+       libraryHaskellDepends = [
+         aeson async base bytestring hashable haxl hedis network time
+       ];
+       description = "Combine redis caching and haxl";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "redland" = callPackage
     ({ mkDerivation, base, deepseq, raptor2, redland }:
      mkDerivation {
@@ -208607,8 +213517,8 @@ self: {
      }:
      mkDerivation {
        pname = "ref-extras";
-       version = "0.1.1";
-       sha256 = "0cv8h2v7vp6gv2lslzc7rpagaa871bi5drzml3090wna1kqnd0nq";
+       version = "0.2.0";
+       sha256 = "17f5cjzbhx4ay7qyd5p667hmzg8ps9jnkass5mi423lzly9nyr09";
        libraryHaskellDepends = [
          base hashable little-rio microlens stm unliftio unliftio-core
          unordered-containers
@@ -208741,18 +213651,16 @@ self: {
      }) {};
 
   "refined" = callPackage
-    ({ mkDerivation, aeson, base, deepseq, doctest, exceptions, mtl
-     , prettyprinter, QuickCheck, template-haskell, transformers
+    ({ mkDerivation, aeson, base, bytestring, deepseq, doctest
+     , exceptions, mtl, QuickCheck, template-haskell, text, these-skinny
      }:
      mkDerivation {
        pname = "refined";
-       version = "0.4.4";
-       sha256 = "1xld5fc3nzsr43agvdlv0hbdbnrrsgy0n2a7mfrcc0n3s6rjbdcw";
-       revision = "1";
-       editedCabalFile = "184w9aj60hxm2bq9n29zakqzhi0kf4dqj7cwib31vilpwd0vgfvx";
+       version = "0.6.1";
+       sha256 = "124sqpcii62jh2n2vfskg9jc8ic4hhlwmwim40f6a0dmhdnsh8lx";
        libraryHaskellDepends = [
-         aeson base deepseq exceptions mtl prettyprinter QuickCheck
-         template-haskell transformers
+         aeson base bytestring deepseq exceptions mtl QuickCheck
+         template-haskell text these-skinny
        ];
        testHaskellDepends = [ base doctest QuickCheck ];
        description = "Refinement types with static and runtime checking";
@@ -208768,6 +213676,8 @@ self: {
        libraryHaskellDepends = [ base http-api-data refined text ];
        description = "http-api-data instances for refined types";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "refinery" = callPackage
@@ -208866,8 +213776,6 @@ self: {
        ];
        description = "Higher-order Functional Reactive Programming";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "reflex-animation" = callPackage
@@ -208945,8 +213853,8 @@ self: {
        pname = "reflex-basic-host";
        version = "0.2.0.1";
        sha256 = "1bax3rcrwi3447wd7apramw0f248ddksl8lrdjgrph26bbh8vc1i";
-       revision = "1";
-       editedCabalFile = "11bzd169wpdn57d7krgx9bw4x5qzskp9d5abdn74x6ipy34cj5ml";
+       revision = "2";
+       editedCabalFile = "0nqr2nxrq1xplcapr6yy8fx4x85qiqz609f7rzz656zah7cfm8dl";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -208974,7 +213882,7 @@ self: {
        ];
        description = "Functional Reactive Web Apps with Reflex";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
+       maintainers = with stdenv.lib.maintainers; [ maralorn ];
      }) {};
 
   "reflex-dom-colonnade" = callPackage
@@ -209090,6 +213998,25 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "reflex-dom-pandoc" = callPackage
+    ({ mkDerivation, aeson, base, binary, bytestring, clay, constraints
+     , containers, data-default, lens, lens-aeson, modern-uri, mtl
+     , pandoc-types, ref-tf, reflex, reflex-dom-core, safe, skylighting
+     , text, time
+     }:
+     mkDerivation {
+       pname = "reflex-dom-pandoc";
+       version = "0.2.0.0";
+       sha256 = "0kf46l2pf0n7p59nm57541pnjr86dzjwzp4cbxqdr6a757zcfyny";
+       libraryHaskellDepends = [
+         aeson base binary bytestring clay constraints containers
+         data-default lens lens-aeson modern-uri mtl pandoc-types ref-tf
+         reflex reflex-dom-core safe skylighting text time
+       ];
+       description = "Render Pandoc documents to HTML using reflex-dom";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "reflex-dom-retractable" = callPackage
     ({ mkDerivation, base, containers, jsaddle, mtl, ref-tf, reflex
      , reflex-dom
@@ -209173,8 +214100,8 @@ self: {
      }:
      mkDerivation {
        pname = "reflex-ghci";
-       version = "0.1.4.0";
-       sha256 = "16kd9slfm6kczgcmh4n42gyxpyykz6s6hafkgsh66lcd7a1d85s8";
+       version = "0.1.4.1";
+       sha256 = "0505glpxc6yf7nwkgz9l2m8diqm39sal7vg9h1g8f8i3x6ab1rw3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -209666,6 +214593,30 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "regex-applicative_0_3_4" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, containers
+     , criterion, deepseq, filtrable, megaparsec, parsec, parsers
+     , parsers-megaparsec, smallcheck, tasty, tasty-hunit
+     , tasty-smallcheck, transformers
+     }:
+     mkDerivation {
+       pname = "regex-applicative";
+       version = "0.3.4";
+       sha256 = "0di66pi2kq5rrsn0k6pwakzwa0bgi9jfb2csm72kp5gzqdws8s8p";
+       libraryHaskellDepends = [ base containers filtrable transformers ];
+       testHaskellDepends = [
+         base containers filtrable smallcheck tasty tasty-hunit
+         tasty-smallcheck transformers
+       ];
+       benchmarkHaskellDepends = [
+         attoparsec base bytestring criterion deepseq megaparsec parsec
+         parsers parsers-megaparsec
+       ];
+       description = "Regex-based parsing with applicative interface";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "regex-applicative-text" = callPackage
     ({ mkDerivation, base, regex-applicative, text }:
      mkDerivation {
@@ -210198,8 +215149,8 @@ self: {
      }:
      mkDerivation {
        pname = "regexchar";
-       version = "0.9.0.17";
-       sha256 = "1vkljfqilk0sfwnww1b907lqsdqxd8fdy64kf4vg26r89rzcd5i9";
+       version = "0.9.0.18";
+       sha256 = "1xrv67w6pr3jc8rcmzsfr6ga1g3zcsq1qb327c9viqhj40s5rarm";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -210222,8 +215173,8 @@ self: {
      }:
      mkDerivation {
        pname = "regexdot";
-       version = "0.12.2.1";
-       sha256 = "0s8jbkhhlhhdadwf7d8hy1cjs05mlf1r3czc861llwqrshys3c8c";
+       version = "0.12.2.2";
+       sha256 = "0kaqinn8v6hc67rmj89sl6chagzycz61x5ng8cxxpap0zcxwx4ya";
        libraryHaskellDepends = [
          base data-default deepseq extra parallel parsec toolshed
        ];
@@ -210390,8 +215341,8 @@ self: {
      }:
      mkDerivation {
        pname = "registry";
-       version = "0.1.7.1";
-       sha256 = "163mkxrd30hxhp4awd05b3qxhqrg18lzl4m9m5r74j82s0yhq7l0";
+       version = "0.1.9.3";
+       sha256 = "1x418lv2nnw5ryrinciq1dg7wgmz0zsvv8v3mfrp38rx5x88hbic";
        libraryHaskellDepends = [
          base containers exceptions hashable mmorph mtl protolude resourcet
          semigroupoids semigroups template-haskell text transformers-base
@@ -210692,28 +215643,6 @@ self: {
     ({ mkDerivation, array, base, bytestring, containers, dlist
      , names-th, persistable-record, product-isomorphic
      , quickcheck-simple, sql-words, template-haskell, text
-     , th-reify-compat, time, time-locale-compat, transformers
-     }:
-     mkDerivation {
-       pname = "relational-query";
-       version = "0.12.2.2";
-       sha256 = "0768cw6c5chzdcwshjjniysik5d1yj7zvhwncqnn0wgy4gp6kzjv";
-       libraryHaskellDepends = [
-         array base bytestring containers dlist names-th persistable-record
-         product-isomorphic sql-words template-haskell text th-reify-compat
-         time time-locale-compat transformers
-       ];
-       testHaskellDepends = [
-         base containers product-isomorphic quickcheck-simple transformers
-       ];
-       description = "Typeful, Modular, Relational, algebraic query engine";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "relational-query_0_12_2_3" = callPackage
-    ({ mkDerivation, array, base, bytestring, containers, dlist
-     , names-th, persistable-record, product-isomorphic
-     , quickcheck-simple, sql-words, template-haskell, text
      , th-constraint-compat, th-reify-compat, time, time-locale-compat
      , transformers
      }:
@@ -210732,7 +215661,6 @@ self: {
        ];
        description = "Typeful, Modular, Relational, algebraic query engine";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "relational-query-HDBC" = callPackage
@@ -210759,6 +215687,34 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "relational-query-postgresql-pure" = callPackage
+    ({ mkDerivation, base, containers, data-default-class, dlist
+     , HDBC-postgresql, HDBC-session, homotuple, hspec, list-tuple
+     , names-th, persistable-record, postgresql-placeholder-converter
+     , postgresql-pure, product-isomorphic, relational-query
+     , relational-query-HDBC, relational-schemas, sql-words
+     , template-haskell, transformers, utf8-string
+     }:
+     mkDerivation {
+       pname = "relational-query-postgresql-pure";
+       version = "0.1.1.0";
+       sha256 = "1fxr9sfmva9b24z2pxbg72wa1j682cdk63lilmsk4i0343skrnr7";
+       libraryHaskellDepends = [
+         base containers dlist homotuple list-tuple names-th
+         persistable-record postgresql-placeholder-converter postgresql-pure
+         product-isomorphic relational-query relational-schemas sql-words
+         template-haskell transformers utf8-string
+       ];
+       testHaskellDepends = [
+         base data-default-class HDBC-postgresql HDBC-session hspec
+         postgresql-pure relational-query relational-query-HDBC
+       ];
+       description = "The connector of relational-record and postgresql-pure";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "relational-record" = callPackage
     ({ mkDerivation, base, persistable-record
      , persistable-types-HDBC-pg, product-isomorphic, relational-query
@@ -210863,6 +215819,19 @@ self: {
        broken = true;
      }) {};
 
+  "reliable-io" = callPackage
+    ({ mkDerivation, base, bindings-DSL }:
+     mkDerivation {
+       pname = "reliable-io";
+       version = "0.0.1";
+       sha256 = "0dbp5s8acn6fzcvlplkn4dbcn06l6jsvwilcz45kchss7p4j3gvx";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base bindings-DSL ];
+       description = "Bindings to the low-level reliable.io library.";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "relit" = callPackage
     ({ mkDerivation, base, regex-base, template-haskell }:
      mkDerivation {
@@ -210913,29 +215882,6 @@ self: {
 
   "relude" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, doctest
-     , gauge, ghc-prim, Glob, hashable, hedgehog, mtl, QuickCheck, stm
-     , text, transformers, unordered-containers
-     }:
-     mkDerivation {
-       pname = "relude";
-       version = "0.6.0.0";
-       sha256 = "0idf1r6hv9aksvis08z5bmnzc03k713609zcpy33655qwyl28fic";
-       libraryHaskellDepends = [
-         base bytestring containers deepseq ghc-prim hashable mtl stm text
-         transformers unordered-containers
-       ];
-       testHaskellDepends = [
-         base bytestring doctest Glob hedgehog QuickCheck text
-       ];
-       benchmarkHaskellDepends = [
-         base containers gauge unordered-containers
-       ];
-       description = "Custom prelude from Kowainik";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "relude_0_7_0_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, doctest
      , gauge, ghc-prim, Glob, hashable, hedgehog, mtl, stm, text
      , transformers, unordered-containers
      }:
@@ -210953,7 +215899,6 @@ self: {
        benchmarkHaskellDepends = [ base gauge unordered-containers ];
        description = "Safe, performant, user-friendly and lightweight Haskell Standard Library";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "remark" = callPackage
@@ -211410,8 +216355,8 @@ self: {
        pname = "repa-io";
        version = "3.4.1.1";
        sha256 = "1nm9kfin6fv016r02l74c9hf8pr1rz7s33i833cqpyw8m6bcmnxm";
-       revision = "4";
-       editedCabalFile = "1lswfxmfn31gm2ayqwns9q9kpbad69scxpq6ybyzxkb9jd0jx4bl";
+       revision = "5";
+       editedCabalFile = "1v9bza21a3h0pkaxs628jjfli157d44i757da250fxwwamk8sg88";
        libraryHaskellDepends = [
          base binary bmp bytestring old-time repa vector
        ];
@@ -211570,55 +216515,30 @@ self: {
      }:
      mkDerivation {
        pname = "replace-attoparsec";
-       version = "1.2.2.0";
-       sha256 = "1byrd62j7aafjn959xciam6s17zjvrisfi6q4y6ndvla77rg09cm";
-       libraryHaskellDepends = [ attoparsec base bytestring text ];
-       testHaskellDepends = [
-         attoparsec base bytestring Cabal parsers text
-       ];
-       description = "Find, replace, and edit text patterns with Attoparsec parsers (instead of regex)";
-       license = stdenv.lib.licenses.bsd2;
-     }) {};
-
-  "replace-attoparsec_1_4_0_0" = callPackage
-    ({ mkDerivation, attoparsec, base, bytestring, Cabal, parsers, text
-     }:
-     mkDerivation {
-       pname = "replace-attoparsec";
-       version = "1.4.0.0";
-       sha256 = "1w0dlwfipli94g3fbqh118pmwgyzgrcwp32s60sk7a78cbr5mic4";
+       version = "1.4.1.0";
+       sha256 = "0g913l7vvxz65pfl6cyni8827wri5iyj4jszvyrxzav58z4ybi20";
        libraryHaskellDepends = [ attoparsec base bytestring text ];
        testHaskellDepends = [
          attoparsec base bytestring Cabal parsers text
        ];
        description = "Find, replace, and split string patterns with Attoparsec parsers (instead of regex)";
        license = stdenv.lib.licenses.bsd2;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "replace-megaparsec" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, megaparsec, text }:
-     mkDerivation {
-       pname = "replace-megaparsec";
-       version = "1.2.1.0";
-       sha256 = "1k00a6xqdk8fgcja0v0flydk3afrpdrn4cf1csin7waqkl2kwvrb";
-       libraryHaskellDepends = [ base bytestring megaparsec text ];
-       testHaskellDepends = [ base bytestring Cabal megaparsec text ];
-       description = "Find, replace, and edit text patterns with Megaparsec parsers";
-       license = stdenv.lib.licenses.bsd2;
-     }) {};
-
-  "replace-megaparsec_1_4_1_0" = callPackage
-    ({ mkDerivation, base, bytestring, Cabal, megaparsec, text }:
+    ({ mkDerivation, base, bytestring, Cabal, megaparsec
+     , parser-combinators, text
+     }:
      mkDerivation {
        pname = "replace-megaparsec";
-       version = "1.4.1.0";
-       sha256 = "0a51fsdmjq3iaamdnwslyrv99psh03qhqk8j0k3ikbjxqj3md3br";
-       libraryHaskellDepends = [ base bytestring megaparsec text ];
+       version = "1.4.2.0";
+       sha256 = "0d3p138aqyp1f9bhq85vgzw67vis3cqlp6k90hlfiyq14ry5ck6f";
+       libraryHaskellDepends = [
+         base bytestring megaparsec parser-combinators text
+       ];
        testHaskellDepends = [ base bytestring Cabal megaparsec text ];
        description = "Find, replace, and split string patterns with Megaparsec parsers (instead of regex)";
        license = stdenv.lib.licenses.bsd2;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "replica" = callPackage
@@ -211706,6 +216626,23 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "repline_0_4_0_0" = callPackage
+    ({ mkDerivation, base, containers, exceptions, haskeline, mtl
+     , process
+     }:
+     mkDerivation {
+       pname = "repline";
+       version = "0.4.0.0";
+       sha256 = "1dspwi28krinkxdd7waq4y6plz0dfmzz72885p9pcqp1r14qrhj3";
+       libraryHaskellDepends = [
+         base containers exceptions haskeline mtl process
+       ];
+       testHaskellDepends = [ base containers mtl process ];
+       description = "Haskeline wrapper for GHCi-like REPL interfaces";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "repo-based-blog" = callPackage
     ({ mkDerivation, base, blaze-html, containers, data-default
      , directory, dyre, filepath, filestore, hspec, hspec-discover
@@ -211851,25 +216788,24 @@ self: {
      , bytestring, case-insensitive, connection, hspec, hspec-core
      , hspec-discover, http-api-data, http-client, http-client-tls
      , http-types, modern-uri, monad-control, mtl, QuickCheck, retry
-     , text, time, transformers, transformers-base, unordered-containers
+     , template-haskell, text, time, transformers, transformers-base
+     , unordered-containers
      }:
      mkDerivation {
        pname = "req";
-       version = "3.1.0";
-       sha256 = "0j53bbhyhjy2q91lnvpwldjsck57p72y5l815c9mi0gzihchyksb";
-       revision = "2";
-       editedCabalFile = "008s2zd1hxfxw9vpvk0ax6fg4q0rshn13f9kgngfvg6diicgsn5h";
+       version = "3.2.0";
+       sha256 = "1r6fkhn99v6vil8khd23pdai3j6wgn724cy00q5x20fn3jz88ksw";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson authenticate-oauth base blaze-builder bytestring
          case-insensitive connection http-api-data http-client
-         http-client-tls http-types modern-uri monad-control mtl retry text
-         time transformers transformers-base
+         http-client-tls http-types modern-uri monad-control mtl retry
+         template-haskell text time transformers transformers-base
        ];
        testHaskellDepends = [
          aeson base blaze-builder bytestring case-insensitive hspec
          hspec-core http-client http-types modern-uri monad-control mtl
-         QuickCheck retry text time unordered-containers
+         QuickCheck retry template-haskell text time unordered-containers
        ];
        testToolDepends = [ hspec-discover ];
        doCheck = false;
@@ -211877,24 +216813,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "req_3_2_0" = callPackage
+  "req_3_6_0" = callPackage
     ({ mkDerivation, aeson, authenticate-oauth, base, blaze-builder
-     , bytestring, case-insensitive, connection, hspec, hspec-core
-     , hspec-discover, http-api-data, http-client, http-client-tls
-     , http-types, modern-uri, monad-control, mtl, QuickCheck, retry
-     , template-haskell, text, time, transformers, transformers-base
-     , unordered-containers
+     , bytestring, case-insensitive, connection, exceptions, hspec
+     , hspec-core, hspec-discover, http-api-data, http-client
+     , http-client-tls, http-types, modern-uri, monad-control, mtl
+     , QuickCheck, retry, template-haskell, text, time, transformers
+     , transformers-base, unliftio-core, unordered-containers
      }:
      mkDerivation {
        pname = "req";
-       version = "3.2.0";
-       sha256 = "1r6fkhn99v6vil8khd23pdai3j6wgn724cy00q5x20fn3jz88ksw";
+       version = "3.6.0";
+       sha256 = "1ks9iqnnsa8m65ndyblyndb95fc4r4xachq1zrik04adxrdj3b50";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson authenticate-oauth base blaze-builder bytestring
-         case-insensitive connection http-api-data http-client
+         case-insensitive connection exceptions http-api-data http-client
          http-client-tls http-types modern-uri monad-control mtl retry
          template-haskell text time transformers transformers-base
+         unliftio-core
        ];
        testHaskellDepends = [
          aeson base blaze-builder bytestring case-insensitive hspec
@@ -212037,6 +216974,17 @@ self: {
        broken = true;
      }) {};
 
+  "requirements" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "requirements";
+       version = "0.6.0.0";
+       sha256 = "1s0s3p0dy07222ks83w3spfw9df33q5lggqv3dw4m9hd5x16a6zi";
+       libraryHaskellDepends = [ base ];
+       description = "Abstraction to manage user defined Type Errors";
+       license = stdenv.lib.licenses.gpl3;
+     }) {};
+
   "rere" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring, clock
      , containers, criterion, derp, fin, parsec, QuickCheck
@@ -212067,19 +217015,19 @@ self: {
     ({ mkDerivation, rebase }:
      mkDerivation {
        pname = "rerebase";
-       version = "1.4.1";
-       sha256 = "19a3pwi801kfaflnag9n7zzxapcjfpqpykr6rq8b6axhyqj3vxim";
+       version = "1.6.1";
+       sha256 = "0lyi925jk6jbi3qc5xmv61ag07ff9d3xxmf9hfjlblqw2y9fsy93";
        libraryHaskellDepends = [ rebase ];
        description = "Reexports from \"base\" with a bunch of other standard libraries";
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "rerebase_1_6_1" = callPackage
+  "rerebase_1_9" = callPackage
     ({ mkDerivation, rebase }:
      mkDerivation {
        pname = "rerebase";
-       version = "1.6.1";
-       sha256 = "0lyi925jk6jbi3qc5xmv61ag07ff9d3xxmf9hfjlblqw2y9fsy93";
+       version = "1.9";
+       sha256 = "0r5c5rg6k7ampphi3amqrvca3sh9p99947mx0fkqg4rqbwij3274";
        libraryHaskellDepends = [ rebase ];
        description = "Reexports from \"base\" with a bunch of other standard libraries";
        license = stdenv.lib.licenses.mit;
@@ -212112,6 +217060,36 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "rescue" = callPackage
+    ({ mkDerivation, base, criterion, directory, directory-tree
+     , doctest, exceptions, ghc, Glob, hlint, hspec, hspec-core
+     , hspec-expectations, lens-aeson, mtl, QuickCheck
+     , quickcheck-instances, rio, tasty, tasty-hspec, tasty-hunit
+     , tasty-rerun, tasty-smallcheck, text, transformers, world-peace
+     , yaml
+     }:
+     mkDerivation {
+       pname = "rescue";
+       version = "0.2.1";
+       sha256 = "1rb7apdlpm69695hcpimmyjn5ar8lld8q1hgag86jsww5dfn2mp7";
+       libraryHaskellDepends = [
+         base exceptions ghc mtl text transformers world-peace
+       ];
+       testHaskellDepends = [
+         base directory directory-tree doctest exceptions ghc Glob hlint
+         hspec hspec-core hspec-expectations lens-aeson mtl QuickCheck
+         quickcheck-instances rio tasty tasty-hspec tasty-hunit tasty-rerun
+         tasty-smallcheck text transformers world-peace yaml
+       ];
+       benchmarkHaskellDepends = [
+         base criterion exceptions ghc mtl text transformers world-peace
+       ];
+       description = "More understandable exceptions";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "reserve" = callPackage
     ({ mkDerivation, base, base-compat, bytestring, directory, hspec
      , http-conduit, http-kit, http-types, network, process, QuickCheck
@@ -212383,8 +217361,8 @@ self: {
      }:
      mkDerivation {
        pname = "resourcet";
-       version = "1.2.4";
-       sha256 = "017v0r9qk4d7dd04dc03ghghyk1d4qj82gligyzg5fdz2rkg8i8x";
+       version = "1.2.4.2";
+       sha256 = "11zb4figcs22hjaq6zsknf70kf9k2bxnw6w03ab9kl9s0i10iwhp";
        libraryHaskellDepends = [
          base containers exceptions mtl primitive transformers unliftio-core
        ];
@@ -212844,8 +217822,6 @@ self: {
        ];
        description = "A powerful, easy-to-use codemodding tool for Haskell";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "retry" = callPackage
@@ -213228,14 +218204,14 @@ self: {
      }:
      mkDerivation {
        pname = "rfc1751";
-       version = "0.1.2";
-       sha256 = "1jls5g6lch4mdspbyzx1kgysa21i2cid68qpvk9z7ggz4lbfhid3";
+       version = "0.1.3";
+       sha256 = "1f68rss3y64g2s7dmzb635986vf682gb1yvv4x720b29gh65dahk";
        libraryHaskellDepends = [ base bytestring cereal vector ];
        testHaskellDepends = [
          base bytestring cereal hspec QuickCheck vector
        ];
        description = "RFC-1751 library for Haskell";
-       license = stdenv.lib.licenses.publicDomain;
+       license = stdenv.lib.licenses.mit;
      }) {};
 
   "rfc3339" = callPackage
@@ -213263,6 +218239,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "rfc5051_0_2" = callPackage
+    ({ mkDerivation, base, containers, text }:
+     mkDerivation {
+       pname = "rfc5051";
+       version = "0.2";
+       sha256 = "0nri7js5ymywh2gi3li25wrkl1nf712qhbzw5hn46fib83qsq73k";
+       libraryHaskellDepends = [ base containers text ];
+       testHaskellDepends = [ base text ];
+       description = "Simple unicode collation as per RFC5051";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "rg" = callPackage
     ({ mkDerivation, array, base, fmt, possibly, tasty, tasty-hunit
      , text, unordered-containers, vector
@@ -213310,6 +218299,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "rhine_0_7_0" = callPackage
+    ({ mkDerivation, base, containers, deepseq, dunai, free
+     , MonadRandom, random, simple-affine-space, time, transformers
+     , vector-sized
+     }:
+     mkDerivation {
+       pname = "rhine";
+       version = "0.7.0";
+       sha256 = "1qnwz48ji3vsb9f44xvidhq6z1p7q06g3k8v7cnbxc54zav076p2";
+       libraryHaskellDepends = [
+         base containers deepseq dunai free MonadRandom random
+         simple-affine-space time transformers vector-sized
+       ];
+       description = "Functional Reactive Programming with type-level clocks";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "rhine-gloss" = callPackage
     ({ mkDerivation, base, dunai, gloss, rhine }:
      mkDerivation {
@@ -213324,6 +218331,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "rhine-gloss_0_7_0" = callPackage
+    ({ mkDerivation, base, dunai, gloss, rhine, transformers }:
+     mkDerivation {
+       pname = "rhine-gloss";
+       version = "0.7.0";
+       sha256 = "1ldaw9ijd9kcn1x5cd5ch9yz95sb671np4aaa6mqa4sf8w4yjl0m";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base dunai gloss rhine transformers ];
+       executableHaskellDepends = [ base ];
+       description = "Gloss backend for Rhine";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "rhythm-game-tutorial" = callPackage
     ({ mkDerivation, base, call, containers, lens, mtl, objective
      , split
@@ -213418,28 +218440,28 @@ self: {
   "rib" = callPackage
     ({ mkDerivation, aeson, async, base-noprelude, binary, clay
      , cmdargs, containers, dhall, directory, exceptions, filepath
-     , foldl, fsnotify, hspec, lucid, megaparsec, mmark, mmark-ext
-     , modern-uri, mtl, optparse-applicative, pandoc
-     , pandoc-include-code, pandoc-types, QuickCheck, relude
-     , safe-exceptions, shake, text, time, wai, wai-app-static, warp
+     , foldl, fsnotify, hspec, iso8601-time, lucid, megaparsec, mmark
+     , mmark-ext, modern-uri, mtl, optparse-applicative, pandoc
+     , pandoc-types, QuickCheck, relude, safe-exceptions, shake, text
+     , time, wai, wai-app-static, warp
      }:
      mkDerivation {
        pname = "rib";
-       version = "0.10.0.0";
-       sha256 = "129riz7843x9h2c9iz9wdcngj74x3rrvlbmd9y7ymmrh5d2kq1qv";
+       version = "0.12.0.0";
+       sha256 = "1fx8jxghzhs5knpvvj6gzm8pv36g4xa928pgsbwkbnmw9j406myn";
        libraryHaskellDepends = [
          aeson async base-noprelude binary clay cmdargs containers dhall
-         directory exceptions filepath foldl fsnotify lucid megaparsec mmark
-         mmark-ext modern-uri mtl optparse-applicative pandoc
-         pandoc-include-code pandoc-types relude safe-exceptions shake text
-         time wai wai-app-static warp
+         directory exceptions filepath foldl fsnotify iso8601-time lucid
+         megaparsec mmark mmark-ext modern-uri mtl optparse-applicative
+         pandoc pandoc-types relude safe-exceptions shake text time wai
+         wai-app-static warp
        ];
        testHaskellDepends = [
          aeson async base-noprelude binary clay cmdargs containers dhall
-         directory exceptions filepath foldl fsnotify hspec lucid megaparsec
-         mmark mmark-ext modern-uri mtl optparse-applicative pandoc
-         pandoc-include-code pandoc-types QuickCheck relude safe-exceptions
-         shake text time wai wai-app-static warp
+         directory exceptions filepath foldl fsnotify hspec iso8601-time
+         lucid megaparsec mmark mmark-ext modern-uri mtl
+         optparse-applicative pandoc pandoc-types QuickCheck relude
+         safe-exceptions shake text time wai wai-app-static warp
        ];
        description = "Static site generator based on Shake";
        license = stdenv.lib.licenses.bsd3;
@@ -213690,12 +218712,17 @@ self: {
      }) {};
 
   "ring-buffers" = callPackage
-    ({ mkDerivation, base, contiguous, primitive, semirings }:
+    ({ mkDerivation, base, contiguous, HUnit, primitive
+     , primitive-unlifted, QuickCheck, semirings
+     }:
      mkDerivation {
        pname = "ring-buffers";
-       version = "0.1.0.1";
-       sha256 = "1k67nsphmk6x3lvym5n6i1vbv1rfzwgrcxszivjjsy6nxsl00m52";
-       libraryHaskellDepends = [ base contiguous primitive semirings ];
+       version = "0.1.1";
+       sha256 = "1xzvbygwp4zqz1nsbmb70062grzqw3jdwgbaaxn7hgirinims64h";
+       libraryHaskellDepends = [
+         base contiguous primitive primitive-unlifted semirings
+       ];
+       testHaskellDepends = [ base HUnit primitive QuickCheck ];
        description = "mutable ring buffers with atomic updates in GHC Haskell";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -213720,39 +218747,14 @@ self: {
 
   "rio" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, directory
-     , exceptions, filepath, hashable, hspec, microlens, mtl, primitive
-     , process, QuickCheck, text, time, typed-process, unix, unliftio
-     , unliftio-core, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "rio";
-       version = "0.1.15.1";
-       sha256 = "05mkxjwy9vp6ldzj5wci1frd2chvbg3l4vw1q8bpjdsj8svr2g5i";
-       libraryHaskellDepends = [
-         base bytestring containers deepseq directory exceptions filepath
-         hashable microlens mtl primitive process text time typed-process
-         unix unliftio unliftio-core unordered-containers vector
-       ];
-       testHaskellDepends = [
-         base bytestring containers deepseq directory exceptions filepath
-         hashable hspec microlens mtl primitive process QuickCheck text time
-         typed-process unix unliftio unliftio-core unordered-containers
-         vector
-       ];
-       description = "A standard library for Haskell";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "rio_0_1_16_0" = callPackage
-    ({ mkDerivation, base, bytestring, containers, deepseq, directory
      , exceptions, filepath, hashable, hspec, microlens, microlens-mtl
      , mtl, primitive, process, QuickCheck, text, time, typed-process
      , unix, unliftio, unliftio-core, unordered-containers, vector
      }:
      mkDerivation {
        pname = "rio";
-       version = "0.1.16.0";
-       sha256 = "0s8hfx1zkakv7hbhks133dcb6c2yg0chpv4wmbrl24wp9yd5fy1s";
+       version = "0.1.19.0";
+       sha256 = "04kvpirwz86pj7izaa0la601xyqnqzsspg43z10vxnc1whjp5rsm";
        libraryHaskellDepends = [
          base bytestring containers deepseq directory exceptions filepath
          hashable microlens microlens-mtl mtl primitive process text time
@@ -213767,7 +218769,6 @@ self: {
        ];
        description = "A standard library for Haskell";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "rio-orphans" = callPackage
@@ -213796,10 +218797,8 @@ self: {
      }:
      mkDerivation {
        pname = "rio-prettyprint";
-       version = "0.1.0.0";
-       sha256 = "0n8ldc73i0954c6s8jh0hibxrisp84yh5pcxv3x3q0wg4v2xvr0m";
-       revision = "2";
-       editedCabalFile = "1hvhjqy7kfk7fglx1rw8axscy0dfzqwd1564awnwdhvmf8silkkn";
+       version = "0.1.1.0";
+       sha256 = "1h092l46pfm6k3n0vb6c67gb64kahzc97qv45rhvp0cq2y5bqykf";
        libraryHaskellDepends = [
          aeson annotated-wl-pprint ansi-terminal array base Cabal colour mtl
          path rio text
@@ -214173,8 +219172,8 @@ self: {
      }:
      mkDerivation {
        pname = "rng-utils";
-       version = "0.3.0";
-       sha256 = "1fj6x5ihjsbw1cypdifccv2nkbx5gvax9aclypanlv5fw2qsr1h8";
+       version = "0.3.1";
+       sha256 = "0wpyq1lxqcxkzvswfq9sc916alck68g3z5xb04brzxhvwzgppwnq";
        libraryHaskellDepends = [ base bytestring random ];
        testHaskellDepends = [
          base bytestring hedgehog tasty tasty-hedgehog
@@ -214230,6 +219229,27 @@ self: {
        broken = true;
      }) {};
 
+  "roboservant" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, hedgehog, mtl
+     , servant, servant-client, servant-flatten, servant-server
+     , string-conversions
+     }:
+     mkDerivation {
+       pname = "roboservant";
+       version = "0.1.0.2";
+       sha256 = "1dbzwczmjms6phzf3r6igy1q33gkwsdirdabd2rr0i2qp0lynshv";
+       libraryHaskellDepends = [
+         base bytestring containers hedgehog mtl servant servant-client
+         servant-flatten servant-server string-conversions
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers hedgehog mtl servant
+         servant-client servant-flatten servant-server string-conversions
+       ];
+       description = "Automatic session-aware servant testing";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "robot" = callPackage
     ({ mkDerivation, base, containers, exceptions, transformers, xhb }:
      mkDerivation {
@@ -214320,18 +219340,25 @@ self: {
      }) {};
 
   "rock" = callPackage
-    ({ mkDerivation, base, containers, dependent-map, dependent-sum
-     , deriving-compat, mtl, protolude, transformers
+    ({ mkDerivation, base, constraints, constraints-extras
+     , dependent-hashmap, dependent-sum, deriving-compat, hashable
+     , hedgehog, lifted-base, monad-control, mtl, transformers
+     , transformers-base, unordered-containers
      }:
      mkDerivation {
        pname = "rock";
-       version = "0.2.0.0";
-       sha256 = "0h4z2ss4g9zshxpfallmbqw121jk1dv7q5s3ww39rhglw3j4dj9k";
+       version = "0.3.0.0";
+       sha256 = "1hssz23kifpmcv0vjnrymr4cj1f3m8z7kvvkyzsfh3ysc493514i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base containers dependent-map dependent-sum deriving-compat mtl
-         protolude transformers
+         base constraints-extras dependent-hashmap dependent-sum
+         deriving-compat hashable lifted-base monad-control mtl transformers
+         transformers-base unordered-containers
+       ];
+       testHaskellDepends = [
+         base constraints constraints-extras dependent-hashmap dependent-sum
+         hashable hedgehog mtl unordered-containers
        ];
        description = "A build system for incremental, parallel, and demand-driven computations";
        license = stdenv.lib.licenses.bsd3;
@@ -214361,14 +219388,34 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {inherit (pkgs) rocksdb;};
 
+  "rocksdb-haskell-jprupp" = callPackage
+    ({ mkDerivation, base, bytestring, data-default, directory, hspec
+     , QuickCheck, rocksdb, string-conversions, unliftio
+     }:
+     mkDerivation {
+       pname = "rocksdb-haskell-jprupp";
+       version = "2.1.3";
+       sha256 = "01hn77v6qjj6dx2g3ddff5q1b3wj0yqplhmxs1c8hndbn5alk0pv";
+       libraryHaskellDepends = [
+         base bytestring data-default directory unliftio
+       ];
+       librarySystemDepends = [ rocksdb ];
+       testHaskellDepends = [
+         base bytestring data-default directory hspec QuickCheck
+         string-conversions unliftio
+       ];
+       description = "Haskell bindings for RocksDB";
+       license = stdenv.lib.licenses.bsd3;
+     }) {inherit (pkgs) rocksdb;};
+
   "rocksdb-query" = callPackage
     ({ mkDerivation, base, bytestring, cereal, conduit, data-default
      , hspec, resourcet, rocksdb-haskell, unliftio
      }:
      mkDerivation {
        pname = "rocksdb-query";
-       version = "0.3.1";
-       sha256 = "072l4f5xb5prsbs7d7j12mwxy0rlrsnqf6w7g09xmq7n3mz0sv0f";
+       version = "0.3.2";
+       sha256 = "07bp96sfcj34f4vgi3bynxykrad672hlg9d8rsxc0xxai8iamzrm";
        libraryHaskellDepends = [
          base bytestring cereal conduit resourcet rocksdb-haskell unliftio
        ];
@@ -214376,7 +219423,28 @@ self: {
          base cereal data-default hspec rocksdb-haskell unliftio
        ];
        description = "RocksDB database querying library for Haskell";
-       license = stdenv.lib.licenses.publicDomain;
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "rocksdb-query_0_4_2" = callPackage
+    ({ mkDerivation, base, bytestring, cereal, conduit, data-default
+     , hspec, resourcet, rocksdb-haskell-jprupp, unliftio
+     }:
+     mkDerivation {
+       pname = "rocksdb-query";
+       version = "0.4.2";
+       sha256 = "1sh88q0vq0b13ig6vmwi8wa73d45qxdkbbc29zphch6p2z4n81wq";
+       libraryHaskellDepends = [
+         base bytestring cereal conduit resourcet rocksdb-haskell-jprupp
+         unliftio
+       ];
+       testHaskellDepends = [
+         base cereal data-default hspec rocksdb-haskell-jprupp unliftio
+       ];
+       description = "RocksDB database querying library for Haskell";
+       license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -214592,8 +219660,8 @@ self: {
      }:
      mkDerivation {
        pname = "ron";
-       version = "0.10";
-       sha256 = "1qw1kyrd3z5fag4a9w2nibcc3m68cr75jplp2pvwvkcmbl23alar";
+       version = "0.11";
+       sha256 = "1sdgjxz609m1ddcby29g5sd9bmh20wav3q4ab4bmsfl5ar2yq53i";
        libraryHaskellDepends = [
          aeson attoparsec base binary bytestring containers hashable
          integer-gmp mtl scientific template-haskell text time
@@ -214954,6 +220022,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {inherit (pkgs) gmp; inherit (pkgs) mpfr;};
 
+  "rounded-hw" = callPackage
+    ({ mkDerivation, array, base, Cabal, deepseq, doctest, gauge, hspec
+     , integer-logarithms, long-double, primitive, QuickCheck, random
+     , tagged, vector
+     }:
+     mkDerivation {
+       pname = "rounded-hw";
+       version = "0.1.0.0";
+       sha256 = "0kmbp7x7avadsn09zfcjd54x5b6vvc527ybmmmnaklvfdzf8r88x";
+       setupHaskellDepends = [ base Cabal ];
+       libraryHaskellDepends = [
+         array base deepseq integer-logarithms long-double primitive tagged
+         vector
+       ];
+       testHaskellDepends = [
+         array base deepseq doctest hspec integer-logarithms long-double
+         primitive QuickCheck random vector
+       ];
+       benchmarkHaskellDepends = [
+         array base deepseq gauge integer-logarithms primitive vector
+       ];
+       description = "Directed rounding for built-in floating types";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "rounding" = callPackage
     ({ mkDerivation, array, base, numeric-extras }:
      mkDerivation {
@@ -215095,19 +220188,19 @@ self: {
      }) {};
 
   "row-types" = callPackage
-    ({ mkDerivation, base, constraints, criterion, deepseq
-     , generic-lens, hashable, profunctors, text, unordered-containers
+    ({ mkDerivation, base, constraints, deepseq, gauge, generic-lens
+     , hashable, profunctors, text, unordered-containers
      }:
      mkDerivation {
        pname = "row-types";
-       version = "0.4.0.0";
-       sha256 = "146wcmy65wls6s8z333z9xqdb0m89dwjbfd9vshldkd1g9kgbck7";
+       version = "1.0.0.0";
+       sha256 = "03qavr0d3ivap1n9nq7ks7yiappmzvirczi796y1krm0kgi25djy";
        libraryHaskellDepends = [
          base constraints deepseq generic-lens hashable profunctors text
          unordered-containers
        ];
        testHaskellDepends = [ base generic-lens ];
-       benchmarkHaskellDepends = [ base criterion deepseq ];
+       benchmarkHaskellDepends = [ base deepseq gauge ];
        description = "Open Records and Variants";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -215229,8 +220322,8 @@ self: {
      }:
      mkDerivation {
        pname = "rpmbuild-order";
-       version = "0.3";
-       sha256 = "1w5c1nd1w75bk39payczbh4kwn5rizpv9dzgdwssa8d9f0na10lr";
+       version = "0.3.1";
+       sha256 = "1xa4crcqm4avkpdcksj610gpzk7crfkwa2pk2nn1qsmjsrixfc2b";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -215241,6 +220334,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "rpmbuild-order_0_4_3_1" = callPackage
+    ({ mkDerivation, base, bytestring, case-insensitive, containers
+     , directory, extra, fgl, filepath, hspec, optparse-applicative
+     , process, simple-cmd, simple-cmd-args, unix
+     }:
+     mkDerivation {
+       pname = "rpmbuild-order";
+       version = "0.4.3.1";
+       sha256 = "01k1lw0gxxsnl4wqzsynl6xkrnim5fjmdj6jb6b0bgd5jd1y0fyj";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base case-insensitive containers directory extra fgl filepath
+         process
+       ];
+       executableHaskellDepends = [
+         base bytestring directory extra fgl optparse-applicative
+         simple-cmd-args
+       ];
+       testHaskellDepends = [ base extra hspec simple-cmd unix ];
+       description = "Order RPM packages by dependencies";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "rrule" = callPackage
     ({ mkDerivation, base, hspec, megaparsec, parser-combinators, text
      , time
@@ -215746,6 +220864,27 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "runhs" = callPackage
+    ({ mkDerivation, base, bytestring, directory, file-embed, hspec
+     , process, terminal-size, text, word-wrap, yaml
+     }:
+     mkDerivation {
+       pname = "runhs";
+       version = "1.0.0.8";
+       sha256 = "177xak0p91xn827cnpa374l94lmmym2yrrcsxzjd9752hdzyw7k3";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring file-embed process terminal-size text word-wrap
+         yaml
+       ];
+       testHaskellDepends = [ base directory hspec process ];
+       description = "Stack wrapper for single-file Haskell programs";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "runmany" = callPackage
     ({ mkDerivation, async, base, bytestring, optparse-applicative
      , process, stm
@@ -215812,13 +220951,15 @@ self: {
      }:
      mkDerivation {
        pname = "rvar";
-       version = "0.2.0.4";
-       sha256 = "0p67lbzcbbm5bkhv0x380bdald6kaqlf968ay2q8qj69izpvk181";
+       version = "0.2.0.6";
+       sha256 = "1lwcmv3x3v7sjxkil7754sh085y5r5h9zkca39czjhyyzxsqiq81";
        libraryHaskellDepends = [
          base MonadPrompt mtl random-source transformers
        ];
        description = "Random Variables";
        license = stdenv.lib.licenses.publicDomain;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "rwlock" = callPackage
@@ -215996,10 +221137,8 @@ self: {
      }:
      mkDerivation {
        pname = "safe-exceptions";
-       version = "0.1.7.0";
-       sha256 = "0sd0zfsm9pcll5bzzj523rbn45adjrnavdkz52hgmdjjgdcdrk8q";
-       revision = "6";
-       editedCabalFile = "0x82m44qwf3fls3ypbdca958l9hhfqyfip6rzzxi7648f0sasv21";
+       version = "0.1.7.1";
+       sha256 = "0gkxacfiqp55xzbmpz5i5c4kqma8jal49q7c8gl9n9qq5c5dvxjb";
        libraryHaskellDepends = [ base deepseq exceptions transformers ];
        testHaskellDepends = [ base hspec void ];
        description = "Safe, consistent, and easy exception handling";
@@ -216095,10 +221234,8 @@ self: {
      }:
      mkDerivation {
        pname = "safe-json";
-       version = "1.1.0";
-       sha256 = "18zsf2dccgf755a8g4ar3zc7ilmampsrvqa6f9p27zrayl7j87hw";
-       revision = "2";
-       editedCabalFile = "0qaqvczy8v4ghx6d0hjc2hk29z02l8ya5y3ii3rr7bp47b1z8z0i";
+       version = "1.1.1";
+       sha256 = "1307fm7kmls0sd2gb5zcl75rcxxy550ksaf145s54c06qjcihhjg";
        libraryHaskellDepends = [
          aeson base bytestring containers dlist hashable scientific tasty
          tasty-hunit tasty-quickcheck text time unordered-containers
@@ -216292,6 +221429,21 @@ self: {
        broken = true;
      }) {};
 
+  "safe-tensor" = callPackage
+    ({ mkDerivation, base, constraints, containers, deepseq, hmatrix
+     , mtl, singletons
+     }:
+     mkDerivation {
+       pname = "safe-tensor";
+       version = "0.2.1.0";
+       sha256 = "00s8p7bp72wjpz4mbxn79xg6cllyl2c6fn952w2nykyrapzpxhxm";
+       libraryHaskellDepends = [
+         base constraints containers deepseq hmatrix mtl singletons
+       ];
+       description = "Dependently typed tensor algebra";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "safecopy" = callPackage
     ({ mkDerivation, array, base, bytestring, cereal, containers
      , generic-data, HUnit, lens, lens-action, old-time, QuickCheck
@@ -216522,20 +221674,20 @@ self: {
      }) {};
 
   "sak" = callPackage
-    ({ mkDerivation, base, brotli, bytestring, bz2, cpphs, directory
-     , filepath, lz4-hs, lzlib, lzma, lzo, optparse-applicative
-     , parallel-io, snappy-lazy, zlib, zstd
+    ({ mkDerivation, base, bytestring, bz2, cpphs, directory, filepath
+     , lz4-hs, lzlib, lzma, lzo, optparse-applicative, parallel-io
+     , unix-compat, zlib, zstd
      }:
      mkDerivation {
        pname = "sak";
-       version = "0.1.2.5";
-       sha256 = "1xz3g7ksq1v8239xq2cddprlq4g8imid002w7wak15kv8aqvil1l";
+       version = "0.1.3.0";
+       sha256 = "1khws0z9v91vz722k6y0b99ffy2vd04myvpww4p1i32396dhczln";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
        executableHaskellDepends = [
-         base brotli bytestring bz2 directory filepath lz4-hs lzlib lzma lzo
-         optparse-applicative parallel-io snappy-lazy zlib zstd
+         base bytestring bz2 directory filepath lz4-hs lzlib lzma lzo
+         optparse-applicative parallel-io unix-compat zlib zstd
        ];
        executableToolDepends = [ cpphs ];
        description = "Compression command-line tool";
@@ -216574,8 +221726,8 @@ self: {
        pname = "salak";
        version = "0.3.6";
        sha256 = "00qyd09az0ldfidfgcki8z3r9gcpxmss3iyr99as5bky29rlz9n3";
-       revision = "1";
-       editedCabalFile = "1ra0bbk3xkfsy5p78q57abjwmn95kmfjpvsldm4s1455bg2yhi26";
+       revision = "3";
+       editedCabalFile = "0cdp6gy3r92vhpmq2i7yg4xxmnj95dyfvaf8gm05v6wl8l6rihfy";
        libraryHaskellDepends = [
          base bytestring containers data-default directory dlist exceptions
          filepath hashable heaps megaparsec mtl scientific text time
@@ -216679,18 +221831,6 @@ self: {
      }) {inherit (pkgs) libsodium;};
 
   "salve" = callPackage
-    ({ mkDerivation, base, doctest }:
-     mkDerivation {
-       pname = "salve";
-       version = "1.0.9";
-       sha256 = "1anh6v4dfvy1ymffz3y77rlj859mmjamf026f2fqlagmql2lbj73";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base doctest ];
-       description = "Semantic version numbers and constraints";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "salve_1_0_10" = callPackage
     ({ mkDerivation, base, HUnit }:
      mkDerivation {
        pname = "salve";
@@ -216700,7 +221840,6 @@ self: {
        testHaskellDepends = [ base HUnit ];
        description = "Semantic version numbers and constraints";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "salvia" = callPackage
@@ -216856,8 +221995,8 @@ self: {
      }:
      mkDerivation {
        pname = "sampling";
-       version = "0.3.4";
-       sha256 = "1cwx64llg6x6dnsld6lx6bmb4cljz8abqp0d6vmh4wk11vzjsly0";
+       version = "0.3.5";
+       sha256 = "13xkq8p656xybbpvkxp42qkkgc1majp18w384ap7l4sbxrxif7kv";
        libraryHaskellDepends = [
          base containers foldl mwc-random primitive vector
        ];
@@ -217297,31 +222436,31 @@ self: {
      }) {};
 
   "sbv" = callPackage
-    ({ mkDerivation, array, async, base, bytestring, containers
-     , crackNum, criterion, deepseq, directory, doctest, filepath
-     , generic-deriving, ghc, Glob, hlint, mtl, pretty, process
-     , QuickCheck, random, syb, tasty, tasty-golden, tasty-hunit
-     , tasty-quickcheck, template-haskell, time, transformers, z3
+    ({ mkDerivation, array, async, base, bench-show, bytestring
+     , containers, crackNum, deepseq, directory, doctest, filepath
+     , gauge, Glob, hlint, mtl, pretty, process, QuickCheck, random
+     , silently, syb, tasty, tasty-golden, tasty-hunit, tasty-quickcheck
+     , template-haskell, time, transformers, z3
      }:
      mkDerivation {
        pname = "sbv";
-       version = "8.6";
-       sha256 = "01y3dg8gprddn2477cw8k5a9a2gn0330qbpqyc3l2zbnwf3a2yga";
+       version = "8.8";
+       sha256 = "0xm05g9kxh38jjbssnhyw6c8q4rsyjndm2b8r36cqwx0n607zvgy";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         array async base containers crackNum deepseq directory filepath
-         generic-deriving ghc mtl pretty process QuickCheck random syb
-         template-haskell time transformers
+         array async base containers crackNum deepseq directory filepath mtl
+         pretty process QuickCheck random syb template-haskell time
+         transformers
        ];
        testHaskellDepends = [
          base bytestring containers crackNum directory doctest filepath Glob
-         hlint mtl QuickCheck random syb tasty tasty-golden tasty-hunit
-         tasty-quickcheck template-haskell
+         hlint mtl QuickCheck random tasty tasty-golden tasty-hunit
+         tasty-quickcheck
        ];
        testSystemDepends = [ z3 ];
        benchmarkHaskellDepends = [
-         base containers crackNum criterion deepseq directory filepath mtl
-         process random syb
+         base bench-show containers crackNum deepseq directory filepath
+         gauge mtl process random silently syb time
        ];
        description = "SMT Based Verification: Symbolic Haskell theorem prover using SMT solving";
        license = stdenv.lib.licenses.bsd3;
@@ -217334,8 +222473,8 @@ self: {
      }:
      mkDerivation {
        pname = "sbvPlugin";
-       version = "0.11";
-       sha256 = "19gji0aqdi232x3y3vkpblwr6y63n7in92dq48ax67h6bqxwg5g2";
+       version = "0.12";
+       sha256 = "1c413kqbznl1cc3l4lbpk3d8c2jzl62znf7zm89x5dcw7wyfpz0y";
        libraryHaskellDepends = [
          base containers ghc ghc-prim mtl sbv template-haskell
        ];
@@ -217565,6 +222704,24 @@ self: {
        license = stdenv.lib.licenses.asl20;
      }) {};
 
+  "scalpel-search" = callPackage
+    ({ mkDerivation, base, hspec, scalpel, scalpel-core, tagsoup, text
+     , uri
+     }:
+     mkDerivation {
+       pname = "scalpel-search";
+       version = "0.1.0.0";
+       sha256 = "0qq8q9z3s37wcc6iwygn2hfh72k5kak93vmsvl3wn0k04lrivg60";
+       libraryHaskellDepends = [ base scalpel-core tagsoup text uri ];
+       testHaskellDepends = [
+         base hspec scalpel scalpel-core tagsoup text uri
+       ];
+       description = "scalpel scrapers for search engines";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "scan" = callPackage
     ({ mkDerivation, base, parsec }:
      mkDerivation {
@@ -217806,18 +222963,14 @@ self: {
      }) {};
 
   "scheduler" = callPackage
-    ({ mkDerivation, async, atomic-primops, base, Cabal, cabal-doctest
-     , criterion, deepseq, doctest, exceptions, genvalidity-hspec, hspec
-     , monad-par, mwc-random, parallel, primitive, QuickCheck, streamly
+    ({ mkDerivation, atomic-primops, base, deepseq, doctest, exceptions
+     , genvalidity-hspec, hspec, mwc-random, primitive, QuickCheck
      , template-haskell, unliftio, unliftio-core, vector
      }:
      mkDerivation {
        pname = "scheduler";
-       version = "1.4.2.2";
-       sha256 = "0mzwm7lr089hbv08c58l3ahiid8w1cysvjl9q6vb46x3wpa3fwia";
-       revision = "1";
-       editedCabalFile = "0a6xcidya383ygzmz76di3dj1c8xm6ra5zb8fp517lk50s3ly3kl";
-       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       version = "1.4.2.3";
+       sha256 = "0xf5gmla5h0k0a84f7b5xyk98xr72a9mygjlg5c913vc29i31ccx";
        libraryHaskellDepends = [
          atomic-primops base deepseq exceptions primitive unliftio-core
        ];
@@ -217825,9 +222978,6 @@ self: {
          base deepseq doctest genvalidity-hspec hspec mwc-random QuickCheck
          template-haskell unliftio vector
        ];
-       benchmarkHaskellDepends = [
-         async base criterion deepseq monad-par parallel streamly unliftio
-       ];
        description = "Work stealing scheduler";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -218360,8 +223510,8 @@ self: {
        pname = "scotty";
        version = "0.12";
        sha256 = "1lpggpdzgjk23mq7aa64yylds5dbm4ynhcvbarqihjxabvh7xmz1";
-       revision = "1";
-       editedCabalFile = "1g1j4v3hvvbi48pn32d671x3vg41x2pjbpj9vgagiqlqmz9pkrn5";
+       revision = "2";
+       editedCabalFile = "1a5xv44fkjxw6ggp415543zbb1mrkdi05kprf5y8rv3wc8avnssd";
        libraryHaskellDepends = [
          aeson base base-compat-batteries blaze-builder bytestring
          case-insensitive data-default-class exceptions fail http-types
@@ -218509,6 +223659,19 @@ self: {
        broken = true;
      }) {};
 
+  "scotty-haxl" = callPackage
+    ({ mkDerivation, base, haxl, scotty, text }:
+     mkDerivation {
+       pname = "scotty-haxl";
+       version = "0.1.0.0";
+       sha256 = "06wcvjpaar8zd2y6p9j4pxs4l7rkw84s1kmcvacafkw43h1d2bx2";
+       libraryHaskellDepends = [ base haxl scotty text ];
+       description = "Combine scotty and haxl";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "scotty-params-parser" = callPackage
     ({ mkDerivation, base-prelude, matcher, scotty, success, text
      , transformers, unordered-containers
@@ -218614,6 +223777,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "scotty-utils" = callPackage
+    ({ mkDerivation, aeson, aeson-result, base, http-types, scotty
+     , text
+     }:
+     mkDerivation {
+       pname = "scotty-utils";
+       version = "0.1.0.0";
+       sha256 = "0f77b5xmr5gwswz15i5833karfr1qvyaaiy58khd75n9awfx5jqv";
+       libraryHaskellDepends = [
+         aeson aeson-result base http-types scotty text
+       ];
+       description = "Scotty utils library";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "scotty-view" = callPackage
     ({ mkDerivation, base, scotty, text, transformers }:
      mkDerivation {
@@ -219163,24 +224341,24 @@ self: {
      }) {};
 
   "sdr" = callPackage
-    ({ mkDerivation, array, base, bytestring, cairo, cereal, Chart
-     , Chart-cairo, colour, containers, criterion, Decimal
-     , dynamic-graph, fftwRaw, GLFW-b, mwc-random, OpenGL
-     , optparse-applicative, pango, pipes, pipes-bytestring
+    ({ mkDerivation, array, base, bytestring, bytestring-to-vector
+     , cairo, cereal, Chart, Chart-cairo, colour, containers, criterion
+     , Decimal, dynamic-graph, fftwRaw, GLFW-b, mwc-random, network
+     , OpenGL, optparse-applicative, pango, pipes, pipes-bytestring
      , pipes-concurrency, primitive, pulse-simple, QuickCheck, rtlsdr
      , storable-complex, test-framework, test-framework-quickcheck2
      , time, transformers, tuple, vector
      }:
      mkDerivation {
        pname = "sdr";
-       version = "0.1.0.12";
-       sha256 = "0nikrpcyb5mihc70cfvxy24bl80jjnabc8dc8y056yx54759jkk8";
+       version = "0.1.0.13";
+       sha256 = "1ip89ddkzzfq2qvpm0ha321hhgx50lphf0s1yd84gw458fsw0ma7";
        libraryHaskellDepends = [
-         array base bytestring cairo cereal Chart Chart-cairo colour
-         containers Decimal dynamic-graph fftwRaw GLFW-b mwc-random OpenGL
-         optparse-applicative pango pipes pipes-bytestring pipes-concurrency
-         primitive pulse-simple rtlsdr storable-complex time transformers
-         tuple vector
+         array base bytestring bytestring-to-vector cairo cereal Chart
+         Chart-cairo colour containers Decimal dynamic-graph fftwRaw GLFW-b
+         mwc-random network OpenGL optparse-applicative pango pipes
+         pipes-bytestring pipes-concurrency primitive pulse-simple rtlsdr
+         storable-complex time transformers tuple vector
        ];
        testHaskellDepends = [
          base primitive QuickCheck storable-complex test-framework
@@ -219422,13 +224600,13 @@ self: {
 
   "secp256k1-haskell" = callPackage
     ({ mkDerivation, base, base16-bytestring, bytestring, cereal
-     , deepseq, entropy, hashable, hspec, hspec-discover, HUnit, mtl
-     , QuickCheck, secp256k1, string-conversions
+     , deepseq, entropy, hashable, hspec, hspec-discover, HUnit
+     , monad-par, mtl, QuickCheck, secp256k1, string-conversions
      }:
      mkDerivation {
        pname = "secp256k1-haskell";
-       version = "0.1.8";
-       sha256 = "0ymmgcvlw4wrmnn0r6nmmpk0djihpappiywwfxvmnq8brqdkf3jk";
+       version = "0.2.5";
+       sha256 = "12hv8fi2acvv0pmk9scsw584sj2b9hfacr7bhbrry10sihrd4xv4";
        libraryHaskellDepends = [
          base base16-bytestring bytestring cereal deepseq entropy hashable
          QuickCheck string-conversions
@@ -219436,34 +224614,35 @@ self: {
        libraryPkgconfigDepends = [ secp256k1 ];
        testHaskellDepends = [
          base base16-bytestring bytestring cereal deepseq entropy hashable
-         hspec HUnit mtl QuickCheck string-conversions
+         hspec HUnit monad-par mtl QuickCheck string-conversions
        ];
        testToolDepends = [ hspec-discover ];
-       description = "Bindings for secp256k1 library from Bitcoin Core";
-       license = stdenv.lib.licenses.publicDomain;
+       description = "Bindings for secp256k1";
+       license = stdenv.lib.licenses.mit;
      }) {inherit (pkgs) secp256k1;};
 
-  "secp256k1-haskell_0_2_2" = callPackage
+  "secp256k1-haskell_0_4_0" = callPackage
     ({ mkDerivation, base, base16-bytestring, bytestring, cereal
-     , deepseq, entropy, hashable, hspec, hspec-discover, HUnit, mtl
-     , QuickCheck, secp256k1, string-conversions
+     , deepseq, entropy, hashable, hspec, hspec-discover, HUnit
+     , monad-par, mtl, QuickCheck, secp256k1, string-conversions
+     , unliftio
      }:
      mkDerivation {
        pname = "secp256k1-haskell";
-       version = "0.2.2";
-       sha256 = "10yz62z5s23b0q4pla8047cv5ksrd78j9l8y156b0yjjnmlxd013";
+       version = "0.4.0";
+       sha256 = "07hgfrr98g42sia5bssch7lrajx7y6fz98f13ly5rjkm5brw0zba";
        libraryHaskellDepends = [
          base base16-bytestring bytestring cereal deepseq entropy hashable
-         QuickCheck string-conversions
+         QuickCheck string-conversions unliftio
        ];
        libraryPkgconfigDepends = [ secp256k1 ];
        testHaskellDepends = [
          base base16-bytestring bytestring cereal deepseq entropy hashable
-         hspec HUnit mtl QuickCheck string-conversions
+         hspec HUnit monad-par mtl QuickCheck string-conversions unliftio
        ];
        testToolDepends = [ hspec-discover ];
-       description = "Bindings for secp256k1 library from Bitcoin Core";
-       license = stdenv.lib.licenses.publicDomain;
+       description = "Bindings for secp256k1";
+       license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {inherit (pkgs) secp256k1;};
 
@@ -219611,6 +224790,27 @@ self: {
        broken = true;
      }) {sedna = null;};
 
+  "seitz-symbol" = callPackage
+    ({ mkDerivation, base, doctest, hspec, matrix, matrix-as-xyz
+     , parsec, symmetry-operations-symbols
+     }:
+     mkDerivation {
+       pname = "seitz-symbol";
+       version = "0.1.0.0";
+       sha256 = "1x6374xaqgrf9ygjb9rffhpn1y5fla2gf0b0xj93r3bj6pf1w0qh";
+       libraryHaskellDepends = [
+         base matrix matrix-as-xyz parsec symmetry-operations-symbols
+       ];
+       testHaskellDepends = [
+         base doctest hspec matrix matrix-as-xyz parsec
+         symmetry-operations-symbols
+       ];
+       description = "Read and Display Seitz Symbol";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "selda" = callPackage
     ({ mkDerivation, base, bytestring, containers, exceptions, mtl
      , random, text, time, uuid-types
@@ -219619,6 +224819,8 @@ self: {
        pname = "selda";
        version = "0.5.1.0";
        sha256 = "1gd7fdgqw6q507wn7h1pln9wb7kh65vd7iv0s1ydg54r36qdlrgl";
+       revision = "1";
+       editedCabalFile = "0sdzfgsmgw20idxnvvf4sbp8bkl3n7qa7qkphv63pfmqvzyplkwg";
        libraryHaskellDepends = [
          base bytestring containers exceptions mtl random text time
          uuid-types
@@ -219633,6 +224835,8 @@ self: {
        pname = "selda-json";
        version = "0.1.1.0";
        sha256 = "1ai24qmz5nkpqx0zd24ix0ci5aqiccfy57fkf8f87swrv28101l8";
+       revision = "1";
+       editedCabalFile = "1gajzv8zhj8i3bxzjh81vjn8j2igh3nrawfpddvxg1ayb5l2d2y0";
        libraryHaskellDepends = [ aeson base bytestring selda text ];
        description = "JSON support for the Selda database library";
        license = stdenv.lib.licenses.mit;
@@ -219646,6 +224850,8 @@ self: {
        pname = "selda-postgresql";
        version = "0.1.8.1";
        sha256 = "0dxycilvxjbi1cy9c0rzq9ywh48i2lh37j77a5i1x6v1625h51mk";
+       revision = "1";
+       editedCabalFile = "10qlb9yswjsvpj1f7dmm0amkq52g00f1kc2xqh1d7vfkvkb2bhk6";
        libraryHaskellDepends = [
          base bytestring exceptions postgresql-binary postgresql-libpq selda
          selda-json text time uuid-types
@@ -219662,6 +224868,8 @@ self: {
        pname = "selda-sqlite";
        version = "0.1.7.1";
        sha256 = "1a1rik32h8ijd98v98db1il10ap76rqdwmjwhj0hc0h77mm6qdfb";
+       revision = "1";
+       editedCabalFile = "05zdf07fizf97yby0ld4qkd5padxg9fhmpfiiii4jl7xklccnl6p";
        libraryHaskellDepends = [
          base bytestring direct-sqlite directory exceptions selda text time
          uuid-types
@@ -219698,25 +224906,8 @@ self: {
      }:
      mkDerivation {
        pname = "selective";
-       version = "0.3";
-       sha256 = "135lq99h1iaip44d5kh7wpb3fcf8f6ypn5rxngm5agazy6ia42as";
-       libraryHaskellDepends = [ base containers transformers ];
-       testHaskellDepends = [
-         base containers mtl QuickCheck tasty tasty-expected-failure
-         tasty-quickcheck transformers
-       ];
-       description = "Selective applicative functors";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "selective_0_4_1" = callPackage
-    ({ mkDerivation, base, containers, mtl, QuickCheck, tasty
-     , tasty-expected-failure, tasty-quickcheck, transformers
-     }:
-     mkDerivation {
-       pname = "selective";
-       version = "0.4.1";
-       sha256 = "1pwbfayh4s6afhkgyvyq187m4vcnyvy3frb1zxjs7xjb2sxp9r80";
+       version = "0.4.1.1";
+       sha256 = "1ix9080g4qcs3w89bmilr6f84kg6vw9hyx5cs5hiw9xnp7dh4sdc";
        libraryHaskellDepends = [ base containers transformers ];
        testHaskellDepends = [
          base containers mtl QuickCheck tasty tasty-expected-failure
@@ -219724,7 +224915,6 @@ self: {
        ];
        description = "Selective applicative functors";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "selectors" = callPackage
@@ -219838,21 +225028,19 @@ self: {
 
   "semantic-source" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, deepseq
-     , doctest, generic-monoid, hashable, hedgehog, lingo, pathtype
-     , QuickCheck, semilattices, tasty, tasty-hedgehog, tasty-hunit
-     , text
+     , hashable, hedgehog, lingo, pathtype, semilattices, tasty
+     , tasty-hedgehog, tasty-hunit, text
      }:
      mkDerivation {
        pname = "semantic-source";
-       version = "0.1.0.0";
-       sha256 = "179rxsn1cyh77yn7vzmii38ipgcjpavlyf5xbx4j8zzgh1jklmc5";
+       version = "0.1.0.1";
+       sha256 = "1v4q9yc91lrx02wdhxp1njzm8g9qlwr40593lwcn6bxlad5sk6yd";
        libraryHaskellDepends = [
-         aeson base bytestring containers deepseq generic-monoid hashable
-         lingo pathtype semilattices text
+         aeson base bytestring containers deepseq hashable lingo pathtype
+         semilattices text
        ];
        testHaskellDepends = [
-         base doctest hedgehog QuickCheck tasty tasty-hedgehog tasty-hunit
-         text
+         base hedgehog tasty tasty-hedgehog tasty-hunit text
        ];
        description = "Types and functionality for working with source code";
        license = stdenv.lib.licenses.mit;
@@ -219911,19 +225099,16 @@ self: {
      }) {};
 
   "semialign" = callPackage
-    ({ mkDerivation, base, base-compat, containers, hashable
-     , semigroupoids, tagged, these, transformers, unordered-containers
-     , vector
+    ({ mkDerivation, base, containers, hashable, semigroupoids, tagged
+     , these, transformers, unordered-containers, vector
      }:
      mkDerivation {
        pname = "semialign";
-       version = "1.1";
-       sha256 = "1n47w9c6i6azb4w65rzhci00v6p9c0s1w1givd2q3smkgyziiqpk";
-       revision = "2";
-       editedCabalFile = "1s0gja9kig4j550kjgrknf6kyw8qns9fksrdm0rvv7bmf30dwh8n";
+       version = "1.1.0.1";
+       sha256 = "11qs4imy3cq4cx9mm6g30r6qk3rngqrmz7lkl5379gs1yvgvs44q";
        libraryHaskellDepends = [
-         base base-compat containers hashable semigroupoids tagged these
-         transformers unordered-containers vector
+         base containers hashable semigroupoids tagged these transformers
+         unordered-containers vector
        ];
        description = "Align and Zip type-classes from the common Semialign ancestor";
        license = stdenv.lib.licenses.bsd3;
@@ -219945,6 +225130,8 @@ self: {
        testHaskellDepends = [ base doctest QuickCheck ];
        description = "Extra functions for working with Semialigns";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "semialign-indexed" = callPackage
@@ -220149,15 +225336,16 @@ self: {
      }) {};
 
   "semirings" = callPackage
-    ({ mkDerivation, base, containers, hashable, integer-gmp
-     , unordered-containers
+    ({ mkDerivation, base, base-compat-batteries, containers, hashable
+     , integer-gmp, unordered-containers
      }:
      mkDerivation {
        pname = "semirings";
-       version = "0.5.3";
-       sha256 = "16qdh0d5mazxkzpa0xsiv635771zspzbiqmy5qy2rcsxb79p36lc";
+       version = "0.5.4";
+       sha256 = "16lsxg0nzi7d4kr5xibgy9q46fxrga10yzh0jy4jzpyy5axwwysw";
        libraryHaskellDepends = [
-         base containers hashable integer-gmp unordered-containers
+         base base-compat-batteries containers hashable integer-gmp
+         unordered-containers
        ];
        description = "two monoids as one, in holy haskimony";
        license = stdenv.lib.licenses.bsd3;
@@ -220491,8 +225679,8 @@ self: {
     ({ mkDerivation, base, mtl, transformers }:
      mkDerivation {
        pname = "seqid";
-       version = "0.6.1";
-       sha256 = "0gqmnckrrs85cwz2jvp2ip7a5c5qfbav4nb9d8bxax093jziz301";
+       version = "0.6.2";
+       sha256 = "07xxpdrr3lqqnzcxbync46c0kz3d2i7k4day630a6x6zmzpyay0i";
        libraryHaskellDepends = [ base mtl transformers ];
        description = "Sequence ID production and consumption";
        license = stdenv.lib.licenses.bsd3;
@@ -220514,8 +225702,8 @@ self: {
     ({ mkDerivation, base, io-streams, seqid }:
      mkDerivation {
        pname = "seqid-streams";
-       version = "0.7.1";
-       sha256 = "0yasm87kjhdq13zacpd4qa3kssalwvkipf3rz2cq1dgdgps5mxf7";
+       version = "0.7.2";
+       sha256 = "0dd0vxs216ri0hdkz49hzzrryil7hhqb55cc9z6ca8f337imanm8";
        libraryHaskellDepends = [ base io-streams seqid ];
        description = "Sequence ID IO-Streams";
        license = stdenv.lib.licenses.bsd3;
@@ -220613,6 +225801,30 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "sequence-formats_1_5_1_3" = callPackage
+    ({ mkDerivation, attoparsec, base, bytestring, containers, errors
+     , exceptions, foldl, hspec, lens-family, pipes, pipes-attoparsec
+     , pipes-bytestring, pipes-safe, tasty, tasty-hunit, transformers
+     , vector
+     }:
+     mkDerivation {
+       pname = "sequence-formats";
+       version = "1.5.1.3";
+       sha256 = "1662lfwmss1zrz357r1rm6spyb81fnsf2gzg54yrrx55lq3zki1m";
+       libraryHaskellDepends = [
+         attoparsec base bytestring containers errors exceptions foldl
+         lens-family pipes pipes-attoparsec pipes-bytestring pipes-safe
+         transformers vector
+       ];
+       testHaskellDepends = [
+         base bytestring containers foldl hspec pipes pipes-safe tasty
+         tasty-hunit transformers vector
+       ];
+       description = "A package with basic parsing utilities for several Bioinformatic data formats";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "sequenceTools" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, bytestring, foldl, hspec
      , lens-family, optparse-applicative, pipes, pipes-group
@@ -220946,7 +226158,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant_0_17" = callPackage
+  "servant_0_18" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base-compat, bifunctors
      , bytestring, case-insensitive, deepseq, hspec, hspec-discover
      , http-api-data, http-media, http-types, mmorph, mtl, network-uri
@@ -220955,8 +226167,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant";
-       version = "0.17";
-       sha256 = "0hrqwb9cin6wbwwqaw68i84ai46897ir4gy4issc6ya2qqmfq1ks";
+       version = "0.18";
+       sha256 = "1dcb92q8w2fim087plspf1hs2gq2hdfiaggp71jqbljhnznlf5vj";
        libraryHaskellDepends = [
          aeson attoparsec base base-compat bifunctors bytestring
          case-insensitive deepseq http-api-data http-media http-types mmorph
@@ -221362,6 +226574,8 @@ self: {
        ];
        description = "Avro content type for Servant";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "servant-blaze" = callPackage
@@ -221503,7 +226717,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-client_0_17" = callPackage
+  "servant-client_0_18" = callPackage
     ({ mkDerivation, aeson, base, base-compat, bytestring, containers
      , deepseq, entropy, exceptions, hspec, hspec-discover
      , http-api-data, http-client, http-media, http-types, HUnit
@@ -221514,8 +226728,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-client";
-       version = "0.17";
-       sha256 = "0161v6kfj4mm5rixw5lbm8sc2dng300xbwgdhi4d0fqxrx12kij7";
+       version = "0.18";
+       sha256 = "17m0cakf4apdrpq7wic9mbxcn2hd9cwh9xrcbxshabfffgkq791i";
        libraryHaskellDepends = [
          base base-compat bytestring containers deepseq exceptions
          http-client http-media http-types kan-extensions monad-control mtl
@@ -221557,7 +226771,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-client-core_0_17" = callPackage
+  "servant-client-core_0_18" = callPackage
     ({ mkDerivation, aeson, base, base-compat, base64-bytestring
      , bytestring, containers, deepseq, exceptions, free, hspec
      , hspec-discover, http-media, http-types, network-uri, QuickCheck
@@ -221565,8 +226779,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-client-core";
-       version = "0.17";
-       sha256 = "1xskvmdr4998hj19wvhyb5rs5x193792f1b6ia7r21qdzp9garff";
+       version = "0.18";
+       sha256 = "198kixjiy34z05vavs18wb2kp62pk5bzr5cl7dvhkl73alvj3rhn";
        libraryHaskellDepends = [
          aeson base base-compat base64-bytestring bytestring containers
          deepseq exceptions free http-media http-types network-uri safe
@@ -221609,10 +226823,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-conduit";
-       version = "0.15";
-       sha256 = "0mpnkqcls4mrxfd3ksy53k7vvm0hildj21b8mdy53z993wq1blfz";
-       revision = "3";
-       editedCabalFile = "0adximf4hg3bf7d9mkcjdsp5klg787ryb1hy3j49fg39l1rszac4";
+       version = "0.15.1";
+       sha256 = "1vy3ihypb0zm2yd16rq120qw3898i3c0mahh2jysssv65g0avdwp";
        libraryHaskellDepends = [
          base bytestring conduit mtl resourcet servant unliftio-core
        ];
@@ -221736,7 +226948,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-docs_0_11_5" = callPackage
+  "servant-docs_0_11_6" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, base-compat, bytestring
      , case-insensitive, hashable, http-media, http-types, lens, servant
      , string-conversions, tasty, tasty-golden, tasty-hunit, text
@@ -221744,8 +226956,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-docs";
-       version = "0.11.5";
-       sha256 = "0i51f33w5bz8j6jj9j5ivg7kll510nc0hmkhdrh3q0qagbpwryfx";
+       version = "0.11.6";
+       sha256 = "07qabs5xi6dw8anmrnl2135fps901k4y1s2xywgdxhqyg01rljhq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -221974,14 +227186,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-foreign_0_15_1" = callPackage
+  "servant-foreign_0_15_2" = callPackage
     ({ mkDerivation, base, base-compat, hspec, hspec-discover
      , http-types, lens, servant, text
      }:
      mkDerivation {
        pname = "servant-foreign";
-       version = "0.15.1";
-       sha256 = "024pd3a5pf4gqx5y2is7n38a7qyfanw13w5jy4j5a81zjmfxnwk7";
+       version = "0.15.2";
+       sha256 = "0vxm80cnd4w8zpyq7brnnjmcarb0vj7xgikwpc0il1w6hjgis7vl";
        libraryHaskellDepends = [
          base base-compat http-types lens servant text
        ];
@@ -222143,8 +227355,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-http-streams";
-       version = "0.17";
-       sha256 = "1nyp6ijb8219yfbxrq2mz59m1vfpr56rbfn9j9zmx4pcvnb903xc";
+       version = "0.18";
+       sha256 = "1krpmmzjc1vagcy8rdgcl3zm8zlfjf8ikicaqrqp6d95f8bz4kaz";
        libraryHaskellDepends = [
          base base-compat bytestring case-insensitive containers deepseq
          exceptions http-common http-media http-streams http-types
@@ -222237,8 +227449,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-js";
-       version = "0.9.4.1";
-       sha256 = "004snd07q29g08smvrwmpypg75g9rxdvk5bfyfyxxmj47wh4734d";
+       version = "0.9.4.2";
+       sha256 = "15n5s3i491cxjxj70wa8yhpipaz47q46s04l4ysc64wgijlnm8xy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -222257,8 +227469,8 @@ self: {
     ({ mkDerivation, aeson, base, servant }:
      mkDerivation {
        pname = "servant-jsonrpc";
-       version = "1.0.1";
-       sha256 = "0hizazwng0pcxd8p0n04xlgrx3vbr7nwc2k9s143q6yc6hp0dlj4";
+       version = "1.1.0";
+       sha256 = "0qy2al8waycarh5973c43bdd9g4a9032waknjsbykhflwglvwmv5";
        libraryHaskellDepends = [ aeson base servant ];
        description = "JSON-RPC messages and endpoints";
        license = stdenv.lib.licenses.bsd3;
@@ -222272,8 +227484,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-jsonrpc-client";
-       version = "1.0.1";
-       sha256 = "0s9ii02mfgyissyq4dbs9cqm3shrgiysjkhwgs6c0s30qqakjald";
+       version = "1.1.0";
+       sha256 = "0d18qajwpq6np0a61i5qm1z7iwvqrmgixg627diwr1xh4ws1ij8d";
        libraryHaskellDepends = [
          aeson base servant servant-client-core servant-jsonrpc
        ];
@@ -222289,8 +227501,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-jsonrpc-server";
-       version = "2.0.0";
-       sha256 = "0svnbsxzwfxdbyjhgq1hxxpjv96dzqkwg44bnq24lc5jk7j244sk";
+       version = "2.1.0";
+       sha256 = "09byg58qm4r9kbcxzr6jbyg5ziih58p0za8ihq4y8w60mznpb055";
        libraryHaskellDepends = [
          aeson base containers mtl servant servant-jsonrpc servant-server
        ];
@@ -222343,14 +227555,14 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-lucid_0_9_0_1" = callPackage
+  "servant-lucid_0_9_0_2" = callPackage
     ({ mkDerivation, base, http-media, lucid, servant, servant-server
      , text, wai, warp
      }:
      mkDerivation {
        pname = "servant-lucid";
-       version = "0.9.0.1";
-       sha256 = "1jhs9qy36vccy90s24cd9bmhqs604xqd9m8a4fbkjxrcpgdzfjgq";
+       version = "0.9.0.2";
+       sha256 = "0l68dffx746j3p2l5x59cj5cdng2dw6vjq5x5h44m0ccbsmlckpz";
        libraryHaskellDepends = [ base http-media lucid servant text ];
        testHaskellDepends = [ base lucid servant-server wai warp ];
        description = "Servant support for lucid";
@@ -222365,10 +227577,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-machines";
-       version = "0.15";
-       sha256 = "137c0svvwvkh3ad8cc5q5vygci3c5951hbwlhk09znqaqycck35i";
-       revision = "4";
-       editedCabalFile = "1p8ld4cxwsirlwz5ihrz6fyxbary4llxsnby42vjnhl19gylhdmk";
+       version = "0.15.1";
+       sha256 = "0k8abcc72s5bzcf2vmjkxxjnhk45rww6hr3l93msm2510hi6gda4";
        libraryHaskellDepends = [ base bytestring machines mtl servant ];
        testHaskellDepends = [
          base base-compat bytestring http-client http-media machines servant
@@ -222446,7 +227656,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-mock_0_8_6" = callPackage
+  "servant-mock_0_8_7" = callPackage
     ({ mkDerivation, aeson, base, base-compat, bytestring
      , bytestring-conversion, hspec, hspec-discover, hspec-wai
      , http-types, QuickCheck, servant, servant-server, transformers
@@ -222454,8 +227664,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-mock";
-       version = "0.8.6";
-       sha256 = "1cr5davd7ldcm2a4f33mi74rk6qlgdqg7vzzfpf8kgxrc97syrrd";
+       version = "0.8.7";
+       sha256 = "0j8c9wb1njrl77hp94frlnjpbk2axlkcgbcyax6s4pmf9v3c8j6x";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -222477,24 +227687,30 @@ self: {
 
   "servant-multipart" = callPackage
     ({ mkDerivation, array, base, bytestring, directory, http-client
-     , http-media, lens, network, random, resourcet, servant
+     , http-media, http-types, lens, network, random, resourcet, servant
      , servant-client, servant-client-core, servant-docs
-     , servant-foreign, servant-server, text, transformers, wai
-     , wai-extra, warp
+     , servant-foreign, servant-server, string-conversions, tasty
+     , tasty-wai, text, transformers, wai, wai-extra, warp
      }:
      mkDerivation {
        pname = "servant-multipart";
-       version = "0.11.5";
-       sha256 = "19bz03y1fv0px30zw5q8394573d482lgchclihbnyg26w7xhmzha";
+       version = "0.11.6";
+       sha256 = "0yzr5hv2ki9ig4g6735bjnzv6mkpgj5l68g9hlvp9g9i0ryxqahn";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
          array base bytestring directory http-media lens random resourcet
          servant servant-client-core servant-docs servant-foreign
-         servant-server text transformers wai wai-extra
+         servant-server string-conversions text transformers wai wai-extra
        ];
-       testHaskellDepends = [
+       executableHaskellDepends = [
          base bytestring http-client network servant servant-client
          servant-client-core servant-server text transformers wai warp
        ];
+       testHaskellDepends = [
+         base bytestring http-types servant-server string-conversions tasty
+         tasty-wai text
+       ];
        description = "multipart/form-data (e.g file upload) support for servant";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -222613,10 +227829,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-pipes";
-       version = "0.15.1";
-       sha256 = "1r2n7f8x7adl117zlswf4ji5yxib2v80wh7wbhwklvd86dbzyrby";
-       revision = "1";
-       editedCabalFile = "0xm07qxw0szffm8krbvj2kdflwlx2ixlhp5scaj3fhwivycyayvg";
+       version = "0.15.2";
+       sha256 = "1r5irq09j64iapi5n9mzsph984r5f7cyr6zz4sw3xqh648dmf75h";
        libraryHaskellDepends = [
          base bytestring monad-control mtl pipes pipes-safe servant
        ];
@@ -222694,29 +227908,6 @@ self: {
      }:
      mkDerivation {
        pname = "servant-purescript";
-       version = "0.9.0.4";
-       sha256 = "07h00hazz4hvhhslfa8hm2jqpxmj0kqz0yw7a4vk002r027daryi";
-       libraryHaskellDepends = [
-         aeson base bytestring containers directory filepath http-types lens
-         mainland-pretty purescript-bridge servant servant-foreign
-         servant-server servant-subscriber text
-       ];
-       testHaskellDepends = [
-         aeson base containers lens mainland-pretty purescript-bridge
-         servant servant-foreign servant-subscriber text
-       ];
-       description = "Generate PureScript accessor functions for you servant API";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "servant-purescript_0_10_0_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, directory
-     , filepath, http-types, lens, mainland-pretty, purescript-bridge
-     , servant, servant-foreign, servant-server, servant-subscriber
-     , text
-     }:
-     mkDerivation {
-       pname = "servant-purescript";
        version = "0.10.0.0";
        sha256 = "07q4nvdhhzyc3xkad130nkv7ckgmj6fmhrpryzpjdvddgq9320b4";
        libraryHaskellDepends = [
@@ -222730,7 +227921,6 @@ self: {
        ];
        description = "Generate PureScript accessor functions for you servant API";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "servant-pushbullet-client" = callPackage
@@ -222787,8 +227977,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-quickcheck";
-       version = "0.0.8.0";
-       sha256 = "0zzbl8qp6pi5a59zbnaq3bfzxldfcb5xykkzp5czzgaj09ypxpgw";
+       version = "0.0.10.0";
+       sha256 = "072q2nxapx9p1fkcs862a9irjhlg0sfpbr72a1m9a5lrfhf9ahmc";
        libraryHaskellDepends = [
          aeson base base-compat-batteries bytestring case-insensitive clock
          data-default-class hspec http-client http-media http-types mtl
@@ -222835,6 +228025,66 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "servant-rawm_1_0_0_0" = callPackage
+    ({ mkDerivation, base, servant }:
+     mkDerivation {
+       pname = "servant-rawm";
+       version = "1.0.0.0";
+       sha256 = "05gv21y7vzw7gdbsk0nax47rnn4isjmx7hbbwilsv0cj7l8qm1bk";
+       libraryHaskellDepends = [ base servant ];
+       description = "Embed a raw 'Application' in a Servant API";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "servant-rawm-client" = callPackage
+    ({ mkDerivation, base, servant-client-core, servant-rawm }:
+     mkDerivation {
+       pname = "servant-rawm-client";
+       version = "1.0.0.1";
+       sha256 = "0ldjhmmfdh0jpfaz4sg1b9n5l23wza3w0m8bvvf80gvl7p6fk0fj";
+       libraryHaskellDepends = [ base servant-client-core servant-rawm ];
+       description = "The client implementation of servant-rawm";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "servant-rawm-docs" = callPackage
+    ({ mkDerivation, base, http-media, http-types, lens, servant-docs
+     , servant-rawm
+     }:
+     mkDerivation {
+       pname = "servant-rawm-docs";
+       version = "1.0.0.1";
+       sha256 = "1s11qzgl4lgc1xg2znski1d20a4hdnm1b2wxswm140fxm82p6gad";
+       libraryHaskellDepends = [
+         base http-media http-types lens servant-docs servant-rawm
+       ];
+       description = "Documentation generator for 'RawM' endpoints";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "servant-rawm-server" = callPackage
+    ({ mkDerivation, base, bytestring, filepath, resourcet
+     , servant-rawm, servant-server, wai, wai-app-static
+     }:
+     mkDerivation {
+       pname = "servant-rawm-server";
+       version = "1.0.0.1";
+       sha256 = "06ivhd132cp98s2kcwg2mcmh6gj01hpw2kyp5azywrzhcr1nspq9";
+       libraryHaskellDepends = [
+         base bytestring filepath resourcet servant-rawm servant-server wai
+         wai-app-static
+       ];
+       description = "The server implementation of servant-rawm";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "servant-reason" = callPackage
     ({ mkDerivation, aeson, base, Diff, directory, hspec, HUnit
      , interpolate, lens, mockery, process, reason-export, servant
@@ -222865,8 +228115,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-reflex";
-       version = "0.3.4";
-       sha256 = "1k7dkzs2lsdjj94ai7p225zm09l9sgbxpb4av14xgy9m54rih5kk";
+       version = "0.3.5";
+       sha256 = "0b4ppjnfas6pwypd16vkq98q1fs0l7cw32hhliv582xfvc0v3k8l";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -222949,6 +228199,28 @@ self: {
        broken = true;
      }) {};
 
+  "servant-seo" = callPackage
+    ({ mkDerivation, aeson, base, binary, blaze-markup, bytestring
+     , Cabal, cabal-doctest, containers, directory, doctest, filepath
+     , http-media, lens, QuickCheck, servant, servant-blaze
+     , servant-server, text, warp, xml-conduit
+     }:
+     mkDerivation {
+       pname = "servant-seo";
+       version = "0.1.2";
+       sha256 = "0jia9wmwj3lyxygl1vj082bqgmk8bpccmaza5hr2qh4yq9rhrm1f";
+       setupHaskellDepends = [ base Cabal cabal-doctest ];
+       libraryHaskellDepends = [
+         aeson base binary blaze-markup bytestring containers http-media
+         lens servant servant-blaze servant-server text warp xml-conduit
+       ];
+       testHaskellDepends = [
+         base directory doctest filepath QuickCheck
+       ];
+       description = "Generate Robots.txt and Sitemap.xml specification for your servant API.";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "servant-server" = callPackage
     ({ mkDerivation, aeson, base, base-compat, base64-bytestring
      , bytestring, Cabal, cabal-doctest, containers, directory, doctest
@@ -222988,7 +228260,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-server_0_17" = callPackage
+  "servant-server_0_18" = callPackage
     ({ mkDerivation, aeson, base, base-compat, base64-bytestring
      , bytestring, containers, directory, exceptions, filepath, hspec
      , hspec-discover, hspec-wai, http-api-data, http-media, http-types
@@ -222999,10 +228271,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-server";
-       version = "0.17";
-       sha256 = "11y7cb8r8bzkx3fb2cd5cbazxy87n0f4wm14qdxsz2g81k262k5l";
-       revision = "1";
-       editedCabalFile = "1kbdga7bi7slgcskqc3sb1xwmwif52dj8gvkxcskaw0b9xbdynhs";
+       version = "0.18";
+       sha256 = "0knbzr6ls9p2wjn3kfggy99gxavl817xw48m53plhf2r4s4vjrw8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -223081,8 +228351,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-snap";
-       version = "0.8.5";
-       sha256 = "12ihxmi6c6zypzx6ijj0yhl0mppk40zkyhkv3g3kx3mgx50qs5yq";
+       version = "0.9.0";
+       sha256 = "1csfxhdfn4qchxw6n1ysj4mc4ncywdxp326nqjy4b19cxrnkgjsw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -223136,8 +228406,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-static-th";
-       version = "0.2.2.1";
-       sha256 = "15i5sgi30m5y8capc10k4hsaldzglvmknfq6sr1mrrzc9z9c3lrm";
+       version = "0.2.4.0";
+       sha256 = "1xmikym19kq912apmh6zcdjzbz23mhn580pvsy5ll35ylqziaflk";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -223254,32 +228524,6 @@ self: {
      }:
      mkDerivation {
        pname = "servant-subscriber";
-       version = "0.6.0.3";
-       sha256 = "1h1nqjmnn129ir2k9dvc6izak3hh0bvz6rpqhdf55gvxl3dbbiqi";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson async attoparsec base blaze-builder bytestring
-         case-insensitive containers directory filepath http-types lens
-         lifted-base monad-control monad-logger network-uri servant
-         servant-foreign servant-server stm text time transformers wai
-         wai-websockets warp websockets
-       ];
-       executableHaskellDepends = [ base purescript-bridge ];
-       description = "When REST is not enough ...";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "servant-subscriber_0_7_0_0" = callPackage
-    ({ mkDerivation, aeson, async, attoparsec, base, blaze-builder
-     , bytestring, case-insensitive, containers, directory, filepath
-     , http-types, lens, lifted-base, monad-control, monad-logger
-     , network-uri, purescript-bridge, servant, servant-foreign
-     , servant-server, stm, text, time, transformers, wai
-     , wai-websockets, warp, websockets
-     }:
-     mkDerivation {
-       pname = "servant-subscriber";
        version = "0.7.0.0";
        sha256 = "1c1g6jx36n5n5qjw82854vkbg7mavmrj7vz97vc1zzk5w54wsj8k";
        isLibrary = true;
@@ -223294,7 +228538,6 @@ self: {
        executableHaskellDepends = [ base purescript-bridge ];
        description = "When REST is not enough ...";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "servant-swagger" = callPackage
@@ -223327,7 +228570,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "servant-swagger_1_1_8" = callPackage
+  "servant-swagger_1_1_10" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, base-compat, bytestring
      , Cabal, cabal-doctest, directory, doctest, filepath, hspec
      , hspec-discover, http-media, insert-ordered-containers, lens
@@ -223337,8 +228580,8 @@ self: {
      }:
      mkDerivation {
        pname = "servant-swagger";
-       version = "1.1.8";
-       sha256 = "16zmrakgiwf9rb9bvw3mjbmkqixyms42ymh7g1vyvz399plfn0c7";
+       version = "1.1.10";
+       sha256 = "0y6zylhs4z0nfz75d4i2azcq0yh2bd4inanwblx4035dgkk1q78a";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson aeson-pretty base base-compat bytestring hspec http-media
@@ -223357,16 +228600,16 @@ self: {
      }) {};
 
   "servant-swagger-tags" = callPackage
-    ({ mkDerivation, base, containers, lens, servant, servant-mock
-     , servant-server, servant-swagger, swagger2, text
+    ({ mkDerivation, base, insert-ordered-containers, lens, servant
+     , servant-mock, servant-server, servant-swagger, swagger2, text
      }:
      mkDerivation {
        pname = "servant-swagger-tags";
-       version = "0.1.0.0";
-       sha256 = "1938kr3jcpwy8imias0bk7xqp0v3ijajpdfdpgibyphklfqnck64";
+       version = "0.1.0.1";
+       sha256 = "1hl0baa739a5kdg274b8cwyd5h5iam9bxj3ql96ljwdp9j2cnv2v";
        libraryHaskellDepends = [
-         base containers lens servant servant-mock servant-server
-         servant-swagger swagger2 text
+         base insert-ordered-containers lens servant servant-mock
+         servant-server servant-swagger swagger2 text
        ];
        description = "Swagger Tags for Servant";
        license = stdenv.lib.licenses.bsd3;
@@ -223468,6 +228711,8 @@ self: {
        ];
        description = "Automatically generate Elm clients for Servant APIs";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "servant-tracing" = callPackage
@@ -223708,41 +228953,41 @@ self: {
   "serverless-haskell" = callPackage
     ({ mkDerivation, aeson, aeson-casing, amazonka-core
      , amazonka-kinesis, amazonka-s3, base, bytestring, case-insensitive
-     , hspec, hspec-discover, http-types, iproute, lens, network
-     , network-simple, raw-strings-qq, text, time, unix
+     , hspec, hspec-discover, http-client, http-types, iproute, lens
+     , raw-strings-qq, safe-exceptions, text, time, unix
      , unordered-containers
      }:
      mkDerivation {
        pname = "serverless-haskell";
-       version = "0.10.5";
-       sha256 = "187pah3k88vp27k1imwj1mqxavd9zykms3is517xrp209ldx5kw1";
+       version = "0.11.3";
+       sha256 = "14jaykiwi5xzf9cvkkk35gqgk203yah1ln0skr7gi847bh95v7qf";
        libraryHaskellDepends = [
          aeson aeson-casing amazonka-core amazonka-kinesis amazonka-s3 base
-         bytestring case-insensitive http-types iproute lens network
-         network-simple text time unix unordered-containers
+         bytestring case-insensitive http-client http-types iproute lens
+         safe-exceptions text time unix unordered-containers
        ];
        testHaskellDepends = [
          aeson aeson-casing amazonka-core amazonka-kinesis amazonka-s3 base
-         bytestring case-insensitive hspec hspec-discover http-types iproute
-         lens network network-simple raw-strings-qq text time unix
-         unordered-containers
+         bytestring case-insensitive hspec hspec-discover http-client
+         http-types iproute lens raw-strings-qq safe-exceptions text time
+         unix unordered-containers
        ];
        testToolDepends = [ hspec-discover ];
        description = "Deploying Haskell code onto AWS Lambda using Serverless";
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "serverless-haskell_0_11_3" = callPackage
+  "serverless-haskell_0_12_2" = callPackage
     ({ mkDerivation, aeson, aeson-casing, amazonka-core
      , amazonka-kinesis, amazonka-s3, base, bytestring, case-insensitive
      , hspec, hspec-discover, http-client, http-types, iproute, lens
-     , raw-strings-qq, safe-exceptions, text, time, unix
+     , raw-strings-qq, safe-exceptions, text, time, transformers, unix
      , unordered-containers
      }:
      mkDerivation {
        pname = "serverless-haskell";
-       version = "0.11.3";
-       sha256 = "14jaykiwi5xzf9cvkkk35gqgk203yah1ln0skr7gi847bh95v7qf";
+       version = "0.12.2";
+       sha256 = "0x61rqv7w0qjnjpkd1hsy1ixdnxv5abicfdglsr62nazhchnh717";
        libraryHaskellDepends = [
          aeson aeson-casing amazonka-core amazonka-kinesis amazonka-s3 base
          bytestring case-insensitive http-client http-types iproute lens
@@ -223752,7 +228997,7 @@ self: {
          aeson aeson-casing amazonka-core amazonka-kinesis amazonka-s3 base
          bytestring case-insensitive hspec hspec-discover http-client
          http-types iproute lens raw-strings-qq safe-exceptions text time
-         unix unordered-containers
+         transformers unix unordered-containers
        ];
        testToolDepends = [ hspec-discover ];
        description = "Deploying Haskell code onto AWS Lambda using Serverless";
@@ -223769,6 +229014,8 @@ self: {
        pname = "serversession";
        version = "1.0.1";
        sha256 = "08j8v6a2018bmvwsb7crdg0ajak74jggb073pdpx9s0pf3cfzyrz";
+       revision = "2";
+       editedCabalFile = "0i5faxzxgvpfylmrr175f8l4asyh4phncc90jkfag53gnspcv028";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring data-default hashable nonce
          path-pieces text time transformers unordered-containers
@@ -224067,6 +229314,8 @@ self: {
        pname = "set-cover";
        version = "0.1.1";
        sha256 = "04jjcmjll0azz24rx91p0dp5b8ya5jc0qacr21764ri1dbkfflgw";
+       revision = "1";
+       editedCabalFile = "0x5hn43xcfsygjc048mvzk6g8dx51pr5csvvqr6pns8jmz5awkf8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -224194,8 +229443,8 @@ self: {
        pname = "setlocale";
        version = "1.0.0.9";
        sha256 = "18b6xafspzxrmz5m9r9nzy3z053crqi59xc8n8aqd4gw0pvqdcrv";
-       revision = "1";
-       editedCabalFile = "01i087l8v129q90jf09khaw5p4iqix5s17gzgfz2pbi030zhb82h";
+       revision = "2";
+       editedCabalFile = "0l0hlxhjspm05hxd06972ilw4c3ni72mnzcyljg3a01i8pxi53cl";
        libraryHaskellDepends = [ base ];
        description = "Haskell bindings to setlocale";
        license = stdenv.lib.licenses.bsd3;
@@ -224365,8 +229614,35 @@ self: {
        ];
        description = "Invertible grammar combinators for S-expressions";
        license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "sexp-grammar_2_2_1" = callPackage
+    ({ mkDerivation, alex, array, base, bytestring, containers
+     , criterion, deepseq, happy, invertible-grammar, prettyprinter
+     , QuickCheck, recursion-schemes, scientific, semigroups, tasty
+     , tasty-hunit, tasty-quickcheck, text, utf8-string
+     }:
+     mkDerivation {
+       pname = "sexp-grammar";
+       version = "2.2.1";
+       sha256 = "0nf3b3cibqi2jv9jg742jknqpfgwvc7iwjw7a2jgpf55nrgs6lvz";
+       libraryHaskellDepends = [
+         array base bytestring containers deepseq invertible-grammar
+         prettyprinter recursion-schemes scientific semigroups text
+         utf8-string
+       ];
+       libraryToolDepends = [ alex happy ];
+       testHaskellDepends = [
+         base containers invertible-grammar prettyprinter QuickCheck
+         scientific semigroups tasty tasty-hunit tasty-quickcheck text
+         utf8-string
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion deepseq text
+       ];
+       description = "Invertible grammar combinators for S-expressions";
+       license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "sexp-show" = callPackage
@@ -224624,6 +229900,8 @@ self: {
        ];
        description = "SHA-1 Hash";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "shade" = callPackage
@@ -224739,10 +230017,8 @@ self: {
      }:
      mkDerivation {
        pname = "shake";
-       version = "0.19";
-       sha256 = "1579as1ni0n5zjnrqbp3s8gss34pl690g7jnq5i3kb3d118awk3b";
-       revision = "1";
-       editedCabalFile = "1w6yvk30nj6mcl0w5lj9j6q4vqjllp4r8wady3hbly8jpxjdq7dc";
+       version = "0.19.1";
+       sha256 = "14znwscqdhac421igz26r0p1im9p0zawxzmi3hh1lhmxc5fprk2n";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -224774,8 +230050,8 @@ self: {
      }:
      mkDerivation {
        pname = "shake-ats";
-       version = "1.10.4.1";
-       sha256 = "14b1yiw0bhj81pj1dhax7pdf9c68iwlndqg5c3n3c2p6qlcbbd8f";
+       version = "1.10.4.2";
+       sha256 = "0j230aijhnz1r07yx7ya452jz72926m93pdhfdrq5613mgy7l22n";
        libraryHaskellDepends = [
          base binary cdeps dependency directory hs2ats language-ats
          microlens shake shake-c shake-cabal shake-ext text
@@ -224805,8 +230081,8 @@ self: {
     ({ mkDerivation, base, cdeps, composition-prelude, shake }:
      mkDerivation {
        pname = "shake-c";
-       version = "0.4.3.0";
-       sha256 = "1cnmwn63kx43khgy3n00sqla8pw11h7almir31zm0dzgld11znix";
+       version = "0.4.5.0";
+       sha256 = "1bhi4rfvhin16c4xhx50dxjhr2gfpngasv7fps9fhm6is372ln9v";
        libraryHaskellDepends = [ base cdeps composition-prelude shake ];
        description = "Library for building C code with shake";
        license = stdenv.lib.licenses.bsd3;
@@ -224857,16 +230133,21 @@ self: {
      }) {};
 
   "shake-dhall" = callPackage
-    ({ mkDerivation, base, containers, dhall, filepath, shake, text }:
+    ({ mkDerivation, base, containers, dhall, directory, filepath
+     , shake, tasty, tasty-hunit, text
+     }:
      mkDerivation {
        pname = "shake-dhall";
-       version = "0.1.0.0";
-       sha256 = "1nhc6sfzsr7adv6xh8r2fyp64gzkiv563xqwmvhmk3pi3zxnlcll";
+       version = "0.1.1.3";
+       sha256 = "1crakjnib9hvqph8f0wn0ii0y4hp9vix40kd8fpz85mdqfsynf5q";
        libraryHaskellDepends = [
-         base containers dhall filepath shake text
+         base containers dhall directory filepath shake text
        ];
+       testHaskellDepends = [ base tasty tasty-hunit ];
        description = "Dhall dependencies";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "shake-elm" = callPackage
@@ -224909,14 +230190,15 @@ self: {
      }) {};
 
   "shake-futhark" = callPackage
-    ({ mkDerivation, base, containers, filepath, futhark, shake, text
+    ({ mkDerivation, base, containers, directory, filepath, futhark
+     , shake, text
      }:
      mkDerivation {
        pname = "shake-futhark";
-       version = "0.1.0.0";
-       sha256 = "1wxp025dmlal1nm7f7s16pzgx42sawfcnz3lv6krilhr7ynb92ss";
+       version = "0.2.0.0";
+       sha256 = "1lal2dwgiw9c9k8lpcqagx5hy9bs8mqciiy5ghndahpf1fwf510m";
        libraryHaskellDepends = [
-         base containers filepath futhark shake text
+         base containers directory filepath futhark shake text
        ];
        description = "Dependency tracking for Futhark";
        license = stdenv.lib.licenses.bsd3;
@@ -225036,49 +230318,84 @@ self: {
      }) {};
 
   "shake-plus" = callPackage
-    ({ mkDerivation, base, comonad, extra, hashable, path, rio, shake
+    ({ mkDerivation, aeson, base, comonad, extra, path, rio, shake
      , within
      }:
      mkDerivation {
        pname = "shake-plus";
-       version = "0.1.4.1";
-       sha256 = "1sy93fyc6vwwvdhl1pcnhl3f86k3ywf5ajp9zbv3n93dz7nfyvkm";
+       version = "0.1.10.0";
+       sha256 = "0jp0b593162y2m9mxrh4fhgvjiwyxx4zk5spmr46aby5hhrgdwcr";
        libraryHaskellDepends = [
-         base comonad extra hashable path rio shake within
+         aeson base comonad extra path rio shake within
        ];
        description = "Re-export of Shake using well-typed paths and ReaderT";
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "shake-plus_0_3_3_0" = callPackage
+    ({ mkDerivation, base, extra, path, rio, shake }:
+     mkDerivation {
+       pname = "shake-plus";
+       version = "0.3.3.0";
+       sha256 = "13a5n6gh1msrygi671lk5y83shcd75yz64x3r2smxif5hsfazwqv";
+       libraryHaskellDepends = [ base extra path rio shake ];
+       description = "Re-export of Shake using well-typed paths and ReaderT";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
+  "shake-plus-extended" = callPackage
+    ({ mkDerivation, aeson, base, binary-instances, comonad, extra
+     , http-conduit, ixset-typed, ixset-typed-binary-instance
+     , ixset-typed-hashable-instance, path, path-binary-instance, rio
+     , shake, shake-plus, within
+     }:
+     mkDerivation {
+       pname = "shake-plus-extended";
+       version = "0.4.1.0";
+       sha256 = "18gicl8l3biw4xnhlp3sxp19a5s3fry766d7mq7j5q9fzidq31rb";
+       libraryHaskellDepends = [
+         aeson base binary-instances comonad extra http-conduit ixset-typed
+         ixset-typed-binary-instance ixset-typed-hashable-instance path
+         path-binary-instance rio shake shake-plus within
+       ];
+       description = "Experimental extensions to shake-plus";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "shakebook" = callPackage
-    ({ mkDerivation, aeson, aeson-with, base, comonad, comonad-extras
-     , doctemplates, extra, feed, free, lens, lens-aeson, mustache
-     , optparse-applicative, pandoc, pandoc-types, path, relude, rio
-     , shake, shake-plus, slick, split, tasty, tasty-golden, text-time
-     , within, zipper-extra
+    ({ mkDerivation, aeson, aeson-better-errors, aeson-with, base
+     , binary, binary-instances, comonad, comonad-extras
+     , composite-aeson, composite-base, doctemplates, feed, free
+     , hashable-time, http-conduit, ixset-typed, ixset-typed-conversions
+     , lens, lens-aeson, lucid, lucid-cdn, mtl, mustache, pandoc
+     , pandoc-types, path, path-extensions, rio, shake-plus
+     , shake-plus-extended, sitemap-gen, slick, split, tasty
+     , tasty-golden, text-time, vinyl, zipper-extra
      }:
      mkDerivation {
        pname = "shakebook";
-       version = "0.4.0.0";
-       sha256 = "1qj1zybxizxg9bbvpdq5ac6dar2dh8i60zlhy6dxf4jjpimii7h7";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.11.0.0";
+       sha256 = "0h6pq3y7ll5l83a682mwk60zipsm91w0srgrigdgi7l4wdhn7qzb";
        libraryHaskellDepends = [
-         aeson aeson-with base comonad comonad-extras doctemplates extra
-         feed free lens lens-aeson mustache pandoc pandoc-types path relude
-         rio shake shake-plus slick split text-time within zipper-extra
-       ];
-       executableHaskellDepends = [
-         aeson aeson-with base comonad comonad-extras doctemplates extra
-         feed free lens lens-aeson mustache optparse-applicative pandoc
-         pandoc-types path relude rio shake shake-plus slick split text-time
-         within zipper-extra
+         aeson aeson-better-errors aeson-with base binary binary-instances
+         comonad comonad-extras composite-aeson composite-base doctemplates
+         feed free hashable-time http-conduit ixset-typed
+         ixset-typed-conversions lens lens-aeson lucid lucid-cdn mtl
+         mustache pandoc pandoc-types path path-extensions rio shake-plus
+         shake-plus-extended sitemap-gen slick split text-time vinyl
+         zipper-extra
        ];
        testHaskellDepends = [
-         aeson aeson-with base comonad comonad-extras doctemplates extra
-         feed free lens lens-aeson mustache pandoc pandoc-types path relude
-         rio shake shake-plus slick split tasty tasty-golden text-time
-         within zipper-extra
+         aeson aeson-better-errors aeson-with base binary binary-instances
+         comonad comonad-extras composite-aeson composite-base doctemplates
+         feed free hashable-time http-conduit ixset-typed
+         ixset-typed-conversions lens lens-aeson lucid lucid-cdn mtl
+         mustache pandoc pandoc-types path path-extensions rio shake-plus
+         shake-plus-extended sitemap-gen slick split tasty tasty-golden
+         text-time vinyl zipper-extra
        ];
        description = "Shake-based technical documentation generator; HTML & PDF";
        license = stdenv.lib.licenses.mit;
@@ -225133,17 +230450,17 @@ self: {
   "shakespeare" = callPackage
     ({ mkDerivation, aeson, base, blaze-html, blaze-markup, bytestring
      , containers, directory, exceptions, ghc-prim, hspec, HUnit, parsec
-     , process, scientific, template-haskell, text, time, transformers
-     , unordered-containers, vector
+     , process, scientific, template-haskell, text, th-lift, time
+     , transformers, unordered-containers, vector
      }:
      mkDerivation {
        pname = "shakespeare";
-       version = "2.0.24";
-       sha256 = "1fpkq5av7xyffsgghj5b85i8pzpnmkfcyjawhfm5lyhqpq1g5wh3";
+       version = "2.0.25";
+       sha256 = "1fjv3yg425d87d3dih0l3ff95g5a5yp9w85m58sjara6xqivj9s4";
        libraryHaskellDepends = [
          aeson base blaze-html blaze-markup bytestring containers directory
          exceptions ghc-prim parsec process scientific template-haskell text
-         time transformers unordered-containers vector
+         th-lift time transformers unordered-containers vector
        ];
        testHaskellDepends = [
          aeson base blaze-html blaze-markup bytestring containers directory
@@ -225516,6 +230833,30 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "shell-conduit_5_0_0" = callPackage
+    ({ mkDerivation, async, base, bytestring, conduit, conduit-extra
+     , directory, filepath, hspec, hspec-expectations, monads-tf
+     , process, resourcet, semigroups, split, template-haskell, text
+     , transformers, unix, unliftio
+     }:
+     mkDerivation {
+       pname = "shell-conduit";
+       version = "5.0.0";
+       sha256 = "02zilgrb64x0rk4b4bihprwq9fr5gydzj003y3fq8ryf7r60g41w";
+       libraryHaskellDepends = [
+         async base bytestring conduit conduit-extra directory filepath
+         monads-tf process resourcet semigroups split template-haskell text
+         transformers unix unliftio
+       ];
+       testHaskellDepends = [
+         base bytestring conduit conduit-extra hspec hspec-expectations
+         template-haskell
+       ];
+       description = "Write shell scripts with Conduit";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "shell-escape" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers, vector }:
      mkDerivation {
@@ -225561,23 +230902,11 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "shell-utility";
-       version = "0.0";
-       sha256 = "1s3482vxllmmjbcqbwsrql9ka6zng7qbbqk3kfjs6dvkcs710hbs";
-       libraryHaskellDepends = [ base ];
-       description = "Utility functions for writing command-line programs";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "shell-utility_0_1" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "shell-utility";
        version = "0.1";
        sha256 = "1n15v0avvkxvczmyjc6g4z9axr5c61n8jlpa1cm4xr3qk7spm1mi";
        libraryHaskellDepends = [ base ];
        description = "Utility functions for writing command-line programs";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "shellish" = callPackage
@@ -225697,6 +231026,38 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "shelly_1_8_1" = callPackage
+    ({ mkDerivation, async, base, bytestring, containers, directory
+     , enclosed-exceptions, exceptions, filepath, hspec, hspec-contrib
+     , HUnit, lifted-async, lifted-base, monad-control, mtl, process
+     , system-fileio, system-filepath, text, time, transformers
+     , transformers-base, unix, unix-compat
+     }:
+     mkDerivation {
+       pname = "shelly";
+       version = "1.8.1";
+       sha256 = "023fbvbqs5gdwm30j5517gbdcc7fvz0md70dgwgpypkskj3i926y";
+       revision = "1";
+       editedCabalFile = "0crf0m077wky76f5nav2p9q4fa5q4yhv5l4bq9hd073dzdaywhz0";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         async base bytestring containers directory enclosed-exceptions
+         exceptions lifted-async lifted-base monad-control mtl process
+         system-fileio system-filepath text time transformers
+         transformers-base unix unix-compat
+       ];
+       testHaskellDepends = [
+         async base bytestring containers directory enclosed-exceptions
+         exceptions filepath hspec hspec-contrib HUnit lifted-async
+         lifted-base monad-control mtl process system-fileio system-filepath
+         text time transformers transformers-base unix unix-compat
+       ];
+       description = "shell-like (systems) programming in Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "shelly" = callPackage
     ({ mkDerivation, async, base, bytestring, containers, directory
      , enclosed-exceptions, exceptions, filepath, hspec, hspec-contrib
@@ -225768,8 +231129,8 @@ self: {
      }:
      mkDerivation {
        pname = "shh";
-       version = "0.7.0.8";
-       sha256 = "1f8r8wymdbv8j2m3apdw75xqq2c1s4wr694qhxljvwa9r0s326wf";
+       version = "0.7.1.0";
+       sha256 = "03b8h6sjnrlksvpr9f451469j5xngqpb6g3hyxmxp7h7h4xrsvq2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -225809,8 +231170,8 @@ self: {
      }:
      mkDerivation {
        pname = "shift";
-       version = "0.2.1.2";
-       sha256 = "1g3qvk3b6qiawrjvzxv6nbr71zxb8c5rsi4agjhq8d1d6g9m9f42";
+       version = "0.2.1.3";
+       sha256 = "1b0587db6qk3hrr9sfxxcwi86wqzwr2qy035q9vvcxfr8sh0i3xg";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -226040,20 +231401,6 @@ self: {
     ({ mkDerivation, base }:
      mkDerivation {
        pname = "show-combinators";
-       version = "0.1.1.0";
-       sha256 = "02h2fvmw22v1mpxlxn9c6p7as3xspvspdphybxapac4s50mvyfnm";
-       revision = "1";
-       editedCabalFile = "1zr6xw4fvgx187yiqy7n0r9mnasyv1hxg2q9xzw3lmsf4z3xz6y7";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base ];
-       description = "Combinators to write Show instances";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "show-combinators_0_2_0_0" = callPackage
-    ({ mkDerivation, base }:
-     mkDerivation {
-       pname = "show-combinators";
        version = "0.2.0.0";
        sha256 = "07ds87ldl9165hj3k5h84iawc6vqlbggni3dg1nhbxww1spxn0n9";
        revision = "1";
@@ -226062,7 +231409,6 @@ self: {
        testHaskellDepends = [ base ];
        description = "Combinators to write Show instances";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "show-please" = callPackage
@@ -226310,7 +231656,7 @@ self: {
        version = "0.1.0.1";
        sha256 = "19zjwzh3i8ql5xz9rvmbz7n2l3z7dcq683ikrpvqx3wxnc06058m";
        libraryHaskellDepends = [ base ];
-       description = "Sieve is an implementation of the Sieve abstract data type.";
+       description = "Sieve is an implementation of the Sieve abstract data type";
        license = stdenv.lib.licenses.gpl2;
      }) {};
 
@@ -226423,6 +231769,53 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "signable" = callPackage
+    ({ mkDerivation, aeson, asn1-encoding, asn1-types, base
+     , base64-bytestring, binary, bytestring, casing, cryptonite
+     , directory, generic-arbitrary, hspec, memory, microlens, pem
+     , proto-lens, proto-lens-arbitrary, proto-lens-runtime, QuickCheck
+     , quickcheck-instances, secp256k1-haskell, text, universum
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "signable";
+       version = "0.2";
+       sha256 = "1p1g6jhxgskl890g84nw8d465pan9d3prbc4jvyn8502bx00w01s";
+       libraryHaskellDepends = [
+         asn1-encoding asn1-types base binary bytestring casing cryptonite
+         memory microlens pem proto-lens proto-lens-runtime
+         secp256k1-haskell text universum
+       ];
+       testHaskellDepends = [
+         aeson asn1-encoding asn1-types base base64-bytestring binary
+         bytestring casing cryptonite directory generic-arbitrary hspec
+         memory microlens pem proto-lens proto-lens-arbitrary
+         proto-lens-runtime QuickCheck quickcheck-instances
+         secp256k1-haskell text universum unordered-containers
+       ];
+       description = "Deterministic serialisation and signatures with proto-lens support";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "signable-haskell-protoc" = callPackage
+    ({ mkDerivation, base, bytestring, casing, containers, ghc
+     , ghc-paths, ghc-source-gen, lens-family, proto-lens
+     , proto-lens-protoc, proto-lens-runtime, text
+     }:
+     mkDerivation {
+       pname = "signable-haskell-protoc";
+       version = "0.2";
+       sha256 = "1qipgv7xihnnj0mbw8469cj2vsyb367msc3lk1dfy8gjlfdl6nc3";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring casing containers ghc ghc-paths ghc-source-gen
+         lens-family proto-lens proto-lens-protoc proto-lens-runtime text
+       ];
+       description = "Deterministic serialisation and signatures with proto-lens support";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "signal" = callPackage
     ({ mkDerivation, base, unix }:
      mkDerivation {
@@ -226455,6 +231848,23 @@ self: {
        broken = true;
      }) {};
 
+  "signature" = callPackage
+    ({ mkDerivation, aeson, base, byteable, bytestring
+     , case-insensitive, cryptohash, hexstring, scientific, text
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "signature";
+       version = "0.1.1.0";
+       sha256 = "0ciwxpmcdw5zn6005qpafx2q005bbyalr7zw22kj7grm95ffp5xq";
+       libraryHaskellDepends = [
+         aeson base byteable bytestring case-insensitive cryptohash
+         hexstring scientific text unordered-containers vector
+       ];
+       description = "Hmac sha256 signature json and http payload";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "signed-multiset" = callPackage
     ({ mkDerivation, base, containers }:
      mkDerivation {
@@ -226664,12 +232074,14 @@ self: {
      }) {};
 
   "simple-cmd" = callPackage
-    ({ mkDerivation, base, directory, filepath, process, unix }:
+    ({ mkDerivation, base, directory, extra, filepath, process, unix }:
      mkDerivation {
        pname = "simple-cmd";
-       version = "0.2.1";
-       sha256 = "1b35hsxr63n3nbpjdf7ailsmp4yk6k8nscx8xxv453v0r3v89hss";
-       libraryHaskellDepends = [ base directory filepath process unix ];
+       version = "0.2.2";
+       sha256 = "0pf9nfh8xcz0y9l9w7hj305r8gqdaz6hmrjkd7h3yb7ql7j6538w";
+       libraryHaskellDepends = [
+         base directory extra filepath process unix
+       ];
        description = "Simple String-based process commands";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -226798,8 +232210,8 @@ self: {
     ({ mkDerivation, base, doctest, integer-gmp }:
      mkDerivation {
        pname = "simple-enumeration";
-       version = "0.2";
-       sha256 = "0792fcn7mxvhdvsqgc335lcyp89zcdk3fbfqyckz9fsmf6382hv4";
+       version = "0.2.1";
+       sha256 = "16m3i3703yb2921nq1hk4ap3s7yrxsyczw2anziv6wvy4xq252qr";
        libraryHaskellDepends = [ base integer-gmp ];
        testHaskellDepends = [ base doctest ];
        description = "Finite or countably infinite sequences of values";
@@ -227218,10 +232630,8 @@ self: {
     ({ mkDerivation, base, process }:
      mkDerivation {
        pname = "simple-smt";
-       version = "0.9.4";
-       sha256 = "0sbwgyw2a5p85yddvmvzk85709qjqny3xgps7zg9k17m9d5bwdm0";
-       revision = "1";
-       editedCabalFile = "13y564gh7qndkdxnrdx5zbqnkcb5bgg074al92c9rqxd9c66wx4k";
+       version = "0.9.5";
+       sha256 = "0bwb3r2gqm81nmf0hc0mgj8vp2a48kmzx0h7h42lprp4d4irwmy2";
        libraryHaskellDepends = [ base process ];
        description = "A simple way to interact with an SMT solver process";
        license = stdenv.lib.licenses.bsd3;
@@ -227311,24 +232721,6 @@ self: {
      }:
      mkDerivation {
        pname = "simple-templates";
-       version = "0.9.0.0";
-       sha256 = "09s81syr45dvrqski4gz96ynmv8gb3zwyy4n6a7frv49z843phda";
-       libraryHaskellDepends = [
-         aeson attoparsec base scientific text unordered-containers vector
-       ];
-       testHaskellDepends = [
-         aeson attoparsec base hspec HUnit scientific vector
-       ];
-       description = "A basic template language for the Simple web framework";
-       license = stdenv.lib.licenses.lgpl3;
-     }) {};
-
-  "simple-templates_1_0_0" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, hspec, HUnit, scientific
-     , text, unordered-containers, vector
-     }:
-     mkDerivation {
-       pname = "simple-templates";
        version = "1.0.0";
        sha256 = "0vm30fdjm5fydv4ns3z2cvmqadyxb47kvj8nzwkk5jff35jaglrf";
        libraryHaskellDepends = [
@@ -227339,7 +232731,6 @@ self: {
        ];
        description = "A basic template language for the Simple web framework";
        license = stdenv.lib.licenses.lgpl3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "simple-text-format" = callPackage
@@ -227396,25 +232787,6 @@ self: {
      }:
      mkDerivation {
        pname = "simple-vec3";
-       version = "0.6";
-       sha256 = "1vw03xlnf8hj6rlcgpblg3swcbvqj4qp04zdv3a9j2a47j780qhh";
-       libraryHaskellDepends = [ base QuickCheck vector ];
-       testHaskellDepends = [
-         base doctest doctest-driver-gen tasty tasty-quickcheck
-       ];
-       benchmarkHaskellDepends = [ base criterion vector ];
-       description = "Three-dimensional vectors of doubles with basic operations";
-       license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "simple-vec3_0_6_0_1" = callPackage
-    ({ mkDerivation, base, criterion, doctest, doctest-driver-gen
-     , QuickCheck, tasty, tasty-quickcheck, vector
-     }:
-     mkDerivation {
-       pname = "simple-vec3";
        version = "0.6.0.1";
        sha256 = "0m1aa480gnw9bxzpx4hg6pa896lmc56cdfg33fvfkngvcfbfb13m";
        libraryHaskellDepends = [ base QuickCheck vector ];
@@ -227650,17 +233022,6 @@ self: {
      }) {};
 
   "simplistic-generics" = callPackage
-    ({ mkDerivation, base, comonad, kind-apply }:
-     mkDerivation {
-       pname = "simplistic-generics";
-       version = "0.1.0.0";
-       sha256 = "11z02m4dr9p2y29xwhy6a3l2cz2np164c8cwp0a0b9vkhphw4y1j";
-       libraryHaskellDepends = [ base comonad kind-apply ];
-       description = "Generic programming without too many type classes";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "simplistic-generics_2_0_0" = callPackage
     ({ mkDerivation, base, containers, deepseq, kind-apply, mtl
      , template-haskell
      }:
@@ -227673,7 +233034,6 @@ self: {
        ];
        description = "Generic programming without too many type classes";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "simseq" = callPackage
@@ -227752,8 +233112,6 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "a class for single tuple implementations";
        license = stdenv.lib.licenses.asl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "singlethongs" = callPackage
@@ -227871,8 +233229,8 @@ self: {
      }:
      mkDerivation {
        pname = "singletons-presburger";
-       version = "0.3.0.0";
-       sha256 = "06djkc6y5clv0q903i04gaq0vri3nkk307znb418y0rfdh6czzwx";
+       version = "0.3.0.1";
+       sha256 = "1j7azll9cjg5gcvpw8aq1hia1njg4bm8llwms1v941gwi7gk481m";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -228067,6 +233425,8 @@ self: {
        ];
        description = "A simple to understand static site generator";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "sixel" = callPackage
@@ -228153,6 +233513,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "sized_0_8_0_0" = callPackage
+    ({ mkDerivation, base, constraints, containers, deepseq
+     , equational-reasoning, ghc-typelits-knownnat
+     , ghc-typelits-presburger, hashable, hspec, inspection-testing
+     , lens, mono-traversable, singletons, subcategories
+     , template-haskell, th-lift, these, type-natural, vector
+     }:
+     mkDerivation {
+       pname = "sized";
+       version = "0.8.0.0";
+       sha256 = "1jwarhc0xi4h5860whi6s9n36qijlh6j6rnxx71dnlsrinfdsn2m";
+       libraryHaskellDepends = [
+         base constraints containers deepseq equational-reasoning
+         ghc-typelits-knownnat ghc-typelits-presburger hashable lens
+         mono-traversable singletons subcategories these type-natural vector
+       ];
+       testHaskellDepends = [
+         base containers hspec inspection-testing mono-traversable
+         singletons subcategories template-haskell th-lift vector
+       ];
+       description = "Sized sequence data-types";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "sized-grid" = callPackage
     ({ mkDerivation, adjunctions, aeson, ansi-terminal, base, comonad
      , constraints, distributive, generics-sop, HUnit, lens
@@ -228390,6 +233775,8 @@ self: {
        ];
        description = "A very quick-and-dirty WebSocket server";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "skip-list" = callPackage
@@ -228457,20 +233844,48 @@ self: {
      }) {};
 
   "skylighting" = callPackage
-    ({ mkDerivation, base, binary, bytestring, containers
-     , skylighting-core
+    ({ mkDerivation, base, binary, blaze-html, bytestring, containers
+     , directory, filepath, pretty-show, skylighting-core, text
      }:
      mkDerivation {
        pname = "skylighting";
-       version = "0.8.4";
-       sha256 = "08fy9c3ms6xwzxispgksf1cji9mvcyy8swaj3dwvc2dc66h06xky";
+       version = "0.8.5";
+       sha256 = "1b8m0spspp060p5hkl2qxarh3cwji0shq5kdwz2w93kiyl8hk8sv";
+       configureFlags = [ "-fexecutable" ];
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base binary bytestring containers skylighting-core
+       ];
+       executableHaskellDepends = [
+         base blaze-html bytestring containers directory filepath
+         pretty-show text
+       ];
+       description = "syntax highlighting library";
+       license = stdenv.lib.licenses.gpl2;
+     }) {};
+
+  "skylighting_0_10_0_2" = callPackage
+    ({ mkDerivation, base, binary, blaze-html, bytestring, containers
+     , directory, filepath, pretty-show, skylighting-core, text
+     }:
+     mkDerivation {
+       pname = "skylighting";
+       version = "0.10.0.2";
+       sha256 = "0m2z4hmv2m6h6kmvn8n3fskwyhq6pj28bjfvs61qg9pnga3xbf26";
+       configureFlags = [ "-fexecutable" ];
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base binary bytestring containers skylighting-core
        ];
+       executableHaskellDepends = [
+         base blaze-html bytestring containers directory filepath
+         pretty-show text
+       ];
        description = "syntax highlighting library";
        license = stdenv.lib.licenses.gpl2;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "skylighting-core" = callPackage
@@ -228483,8 +233898,8 @@ self: {
      }:
      mkDerivation {
        pname = "skylighting-core";
-       version = "0.8.4";
-       sha256 = "0wyhiark5d1r1hi04xiq14ykikr9yd4dmzqbr7qswl05b0bk7gam";
+       version = "0.8.5";
+       sha256 = "1azcq7g8c4p18q4akk7rl0bczjvp0vl4mnqvsfmzcdf7sdjlg9f7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -228505,6 +233920,38 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "skylighting-core_0_10_0_2" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, attoparsec, base
+     , base64-bytestring, binary, blaze-html, bytestring
+     , case-insensitive, colour, containers, criterion, Diff, directory
+     , filepath, HUnit, hxt, mtl, pretty-show, QuickCheck, random, safe
+     , tasty, tasty-golden, tasty-hunit, tasty-quickcheck, text
+     , transformers, utf8-string
+     }:
+     mkDerivation {
+       pname = "skylighting-core";
+       version = "0.10.0.2";
+       sha256 = "07gdvmz8lvqkzzgnxakx015g2ijmqd2jmni1phz6x79xf9q7s5vw";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson ansi-terminal attoparsec base base64-bytestring binary
+         blaze-html bytestring case-insensitive colour containers directory
+         filepath hxt mtl safe text transformers utf8-string
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers Diff directory filepath HUnit
+         pretty-show QuickCheck random tasty tasty-golden tasty-hunit
+         tasty-quickcheck text utf8-string
+       ];
+       benchmarkHaskellDepends = [
+         base containers criterion directory filepath text
+       ];
+       description = "syntax highlighting library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "skylighting-extensions" = callPackage
     ({ mkDerivation, base, containers, skylighting, skylighting-modding
      , text
@@ -228654,8 +234101,8 @@ self: {
      }:
      mkDerivation {
        pname = "slack-progressbar";
-       version = "0.1.0.0";
-       sha256 = "0jdjl8cs29jlk7likvvci4l435rgngj2a4fnj258rq2ws3c5zxgn";
+       version = "0.1.0.1";
+       sha256 = "12iy8d0mvk0gcs65pb797qm9kx7d9wpa5gdkg4mvb4r13vqb5x9d";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -228876,6 +234323,28 @@ self: {
        broken = true;
      }) {};
 
+  "slip32" = callPackage
+    ({ mkDerivation, base, base16-bytestring, bech32, binary, bip32
+     , bitcoin-keys, bytestring, hedgehog, tasty, tasty-hedgehog
+     , tasty-hunit, text
+     }:
+     mkDerivation {
+       pname = "slip32";
+       version = "0.2.1";
+       sha256 = "00ivmrdw79n543s7rb1bzpp9xn6i1gys8zbad20lams20f7a01fa";
+       libraryHaskellDepends = [
+         base bech32 binary bip32 bitcoin-keys bytestring text
+       ];
+       testHaskellDepends = [
+         base base16-bytestring bip32 bitcoin-keys bytestring hedgehog tasty
+         tasty-hedgehog tasty-hunit text
+       ];
+       description = "SLIP-0032: Extended serialization format for BIP-32 wallets";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "slist" = callPackage
     ({ mkDerivation, base, doctest, Glob }:
      mkDerivation {
@@ -228996,29 +234465,25 @@ self: {
      }) {};
 
   "slynx" = callPackage
-    ({ mkDerivation, async, base, bytestring, containers, elynx-markov
-     , elynx-seq, elynx-tools, elynx-tree, hmatrix, megaparsec
-     , monad-logger, mwc-random, optparse-applicative, scientific, text
+    ({ mkDerivation, async, attoparsec, base, bytestring, containers
+     , elynx-markov, elynx-seq, elynx-tools, elynx-tree, hmatrix
+     , monad-logger, mwc-random, optparse-applicative, statistics, text
      , transformers, vector
      }:
      mkDerivation {
        pname = "slynx";
-       version = "0.2.2";
-       sha256 = "0jja57dcalxd1qp7fj338jwbpaxm1l3ika2zyd9rv3dk2k1xn6rj";
+       version = "0.4.0";
+       sha256 = "10a6nqpr422c80vmzjx1r2wgbhkc2kjn7kvmavc0cx1752wn79kc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         async base bytestring containers elynx-markov elynx-seq elynx-tools
-         elynx-tree hmatrix megaparsec monad-logger mwc-random
-         optparse-applicative scientific text transformers vector
-       ];
-       executableHaskellDepends = [
-         async base bytestring containers elynx-seq elynx-tools hmatrix
-         megaparsec monad-logger mwc-random optparse-applicative scientific
-         text transformers vector
+         async attoparsec base bytestring containers elynx-markov elynx-seq
+         elynx-tools elynx-tree hmatrix monad-logger mwc-random
+         optparse-applicative statistics text transformers vector
        ];
+       executableHaskellDepends = [ base ];
        description = "Handle molecular sequences";
-       license = stdenv.lib.licenses.gpl3;
+       license = stdenv.lib.licenses.gpl3Plus;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -229033,6 +234498,8 @@ self: {
        doHaddock = false;
        description = "Serialize to bytes";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "smallarray" = callPackage
@@ -229071,18 +234538,28 @@ self: {
      }) {};
 
   "smallcheck" = callPackage
-    ({ mkDerivation, base, ghc-prim, logict, mtl, pretty }:
+    ({ mkDerivation, base, logict, mtl, pretty }:
      mkDerivation {
        pname = "smallcheck";
-       version = "1.1.5";
-       sha256 = "195fj7w3v03d1y1nm2ylavzrwxjcdbq0lb6zsw1dwyx5jmwfc84h";
-       revision = "1";
-       editedCabalFile = "1zhhmad21sv0201hd7fahq769xpmzcj352l0sfalcwqs4kbc3mg0";
-       libraryHaskellDepends = [ base ghc-prim logict mtl pretty ];
+       version = "1.1.7";
+       sha256 = "0dcnwg1mn1v57fbm9g5a94qfqwp9a6nzvxlwyxca4vf27qn9wpyh";
+       libraryHaskellDepends = [ base logict mtl pretty ];
        description = "A property-based testing library";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "smallcheck_1_2_0" = callPackage
+    ({ mkDerivation, base, logict, mtl, pretty }:
+     mkDerivation {
+       pname = "smallcheck";
+       version = "1.2.0";
+       sha256 = "1y6rh1g7pi99jqq32xdv79yli9hmbfwjqg8ix1z2i2qkqqkr5iyn";
+       libraryHaskellDepends = [ base logict mtl pretty ];
+       description = "A property-based testing library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "smallcheck-kind-generics" = callPackage
     ({ mkDerivation, base, gauge, kind-generics, kind-generics-th
      , smallcheck
@@ -229132,18 +234609,19 @@ self: {
 
   "smallcheck-series" = callPackage
     ({ mkDerivation, base, bytestring, containers, doctest, Glob
-     , logict, smallcheck, text, transformers
+     , logict, smallcheck, tasty, tasty-hunit, tasty-smallcheck, text
+     , transformers
      }:
      mkDerivation {
        pname = "smallcheck-series";
-       version = "0.6.1";
-       sha256 = "07kjbci4wxi6g9m0k0fqpxm8p2kxspyrcmg175vb3bp008vqb931";
-       revision = "2";
-       editedCabalFile = "1944nax2aq32cd8i335nc511zis3lcwkclkh5caigsfs34kwwglg";
+       version = "0.7.0.0";
+       sha256 = "11pb4k0y8fqfkq5ajspn5nnliskvk8qp02dzpcjrzqk27da2iwb6";
        libraryHaskellDepends = [
          base bytestring containers logict smallcheck text transformers
        ];
-       testHaskellDepends = [ base doctest Glob ];
+       testHaskellDepends = [
+         base doctest Glob smallcheck tasty tasty-hunit tasty-smallcheck
+       ];
        description = "Extra SmallCheck series and utilities";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -229356,8 +234834,8 @@ self: {
     ({ mkDerivation, base, lens, smash }:
      mkDerivation {
        pname = "smash-lens";
-       version = "0.1.0.0";
-       sha256 = "05f2swr4qv3x12fwpyxa0ph90awgf484gn9y8rlxlvql0h213rnm";
+       version = "0.1.0.1";
+       sha256 = "1j7v3713aahp3vh7dswrkdfrnksi1zlw9iv9zanhb714s6anyq66";
        libraryHaskellDepends = [ base lens smash ];
        testHaskellDepends = [ base ];
        description = "Optics for the `smash` library";
@@ -229376,6 +234854,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "smash-optics" = callPackage
+    ({ mkDerivation, base, optics-core, smash }:
+     mkDerivation {
+       pname = "smash-optics";
+       version = "0.1.0.1";
+       sha256 = "1jf60vx8hlmyjgap91fvwn0p0hnazpcimshhkz5lsys0ynd4pcwh";
+       libraryHaskellDepends = [ base optics-core smash ];
+       description = "Optics for the `smash` library using `optics-core`";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "smcdel" = callPackage
     ({ mkDerivation, ansi-terminal, array, base, containers, criterion
      , cudd, directory, file-embed, filepath, graphviz, HasCacBDD, hspec
@@ -229671,18 +235162,17 @@ self: {
 
   "smtp-mail" = callPackage
     ({ mkDerivation, array, base, base16-bytestring, base64-bytestring
-     , bytestring, connection, cryptohash, filepath, mime-mail, network
-     , network-bsd, text
+     , bytestring, connection, cryptonite, filepath, memory, mime-mail
+     , network, network-bsd, text
      }:
      mkDerivation {
        pname = "smtp-mail";
-       version = "0.2.0.0";
-       sha256 = "0qazfkh03rnrijan037bjspskbsma5x04gcavmn0g744f7xldcaz";
-       revision = "1";
-       editedCabalFile = "1kv84kywyj8f7iypzdq6a32wwkk8318khhy4x3p9q6mlvgv8275r";
+       version = "0.3.0.0";
+       sha256 = "0q81m4mi43cd0f1azm6984xw3qw2s6ygszdn86j5z3g5sjj5dax4";
        libraryHaskellDepends = [
          array base base16-bytestring base64-bytestring bytestring
-         connection cryptohash filepath mime-mail network network-bsd text
+         connection cryptonite filepath memory mime-mail network network-bsd
+         text
        ];
        description = "Simple email sending via SMTP";
        license = stdenv.lib.licenses.bsd3;
@@ -229770,24 +235260,25 @@ self: {
 
   "smuggler2" = callPackage
     ({ mkDerivation, base, containers, directory, filepath, ghc
-     , ghc-exactprint, ghc-paths, syb, tasty, tasty-golden
-     , typed-process
+     , ghc-boot, ghc-exactprint, ghc-paths, split, syb, tasty
+     , tasty-golden, typed-process
      }:
      mkDerivation {
        pname = "smuggler2";
-       version = "0.3.2.2";
-       sha256 = "0j9pwb0v78x70qr3dmwrfc2250z8wm481r8k5n0xdf2m44aix31r";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.3.6.1";
+       sha256 = "1wr7qskz75dr0zzhg5gzpjci70rhlcwzlx3cavii7199kvm8axhd";
        libraryHaskellDepends = [
-         base containers directory filepath ghc ghc-exactprint syb
+         base containers directory filepath ghc ghc-boot ghc-exactprint
+         split syb
        ];
-       executableHaskellDepends = [ base ];
        testHaskellDepends = [
-         base filepath ghc-paths tasty tasty-golden typed-process
+         base containers directory filepath ghc ghc-paths tasty tasty-golden
+         typed-process
        ];
        description = "GHC Source Plugin that helps to minimise imports and generate explicit exports";
        license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "snake" = callPackage
@@ -229830,8 +235321,8 @@ self: {
      }:
      mkDerivation {
        pname = "snap";
-       version = "1.1.3.0";
-       sha256 = "09iwyam3k9a90xm99pm54h74f8llfz2jm0i8rrdqwayjy5xq2w3i";
+       version = "1.1.3.1";
+       sha256 = "1zq7yz5w9ms8zm5z4c05awkdarqbmb7pp13y9c1x04qfd5ba4c47";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring cereal clientsession configurator
          containers directory directory-tree dlist fail filepath hashable
@@ -229954,10 +235445,8 @@ self: {
      }:
      mkDerivation {
        pname = "snap-core";
-       version = "1.0.4.1";
-       sha256 = "19dmfqbsfyk1rkjnnrnajpjfam2xjxgmpfmx10yr5qffgza7gcf0";
-       revision = "1";
-       editedCabalFile = "0m8vsgrj96a0y9h09szg7gxv9f26yizh4k181ri2sp7ki8p5p7lg";
+       version = "1.0.4.2";
+       sha256 = "0zxdhx4wk70bkn71574lyz3zhq79yy98rv05r4564rd100xw3fqs";
        libraryHaskellDepends = [
          attoparsec base bytestring bytestring-builder case-insensitive
          containers directory filepath hashable HUnit io-streams lifted-base
@@ -230078,8 +235567,8 @@ self: {
      }:
      mkDerivation {
        pname = "snap-loader-dynamic";
-       version = "1.0.0.1";
-       sha256 = "1z0f0lsrqdsw7fmfaq8n0jcam8nh5nmpg72q4lapqazlna78ww7x";
+       version = "1.0.0.2";
+       sha256 = "170a40fv9ary6lpllys95fby2xbpq3cg33sswk92vwpr4wjhx1lw";
        libraryHaskellDepends = [
          base directory directory-tree hint mtl snap-core template-haskell
          time unix
@@ -230094,10 +235583,8 @@ self: {
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
        pname = "snap-loader-static";
-       version = "1.0.0.0";
-       sha256 = "04i9fn84101w8ybns8m2830zlw2vvg81pzrs0vmj6s691y3ivxas";
-       revision = "3";
-       editedCabalFile = "07f2j0fsw6hhg6qjzfis72ka9dd7iijx09lwypp2mk0qsx6y63bi";
+       version = "1.0.0.1";
+       sha256 = "0598xvy2jk6xc4xhhjqy2v8f5s7k8x13v4wadw8r37h81jpbic00";
        libraryHaskellDepends = [ base template-haskell ];
        description = "Snap static loader";
        license = stdenv.lib.licenses.bsd3;
@@ -230164,6 +235651,8 @@ self: {
        pname = "snap-server";
        version = "1.1.1.2";
        sha256 = "1qprlgn59n9layslshpkizzjbsbd87v5h35iylva58vfnwwlmz77";
+       revision = "1";
+       editedCabalFile = "0bzda5wah6x4cx8g4m6ml4jkcn852i4cxvcgb61jxmwf910arbax";
        configureFlags = [ "-fopenssl" ];
        isLibrary = true;
        isExecutable = true;
@@ -230226,8 +235715,6 @@ self: {
        ];
        description = "Scaffolding CLI for the Snap Framework";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "snap-testing" = callPackage
@@ -231551,8 +237038,8 @@ self: {
      }:
      mkDerivation {
        pname = "socket";
-       version = "0.8.2.0";
-       sha256 = "176px9n2f8mnxi3r2sqshrpbp7i11fskch1nkjhgqzq917sz0zgb";
+       version = "0.8.3.0";
+       sha256 = "0gd0rw6mpzlimvcn3jiw7l0q9h4l3rhfr2n5hhg6k0bkklqp6rbr";
        libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [
          async base bytestring QuickCheck tasty tasty-hunit tasty-quickcheck
@@ -231580,10 +237067,10 @@ self: {
     ({ mkDerivation, base, socket }:
      mkDerivation {
        pname = "socket-icmp";
-       version = "0.1.0.0";
-       sha256 = "14lfvbhcq1ri9bfc0qiymh8qv8b7q78lzfbr5qsarh8rb85ii2vj";
+       version = "0.1.0.1";
+       sha256 = "1wvrdgz0ybacbzg91vi8jiswr02lj7hz61cksmcfii2qsmzpfgb7";
        libraryHaskellDepends = [ base socket ];
-       description = "Definitions for ICMP with the `socket` library";
+       description = "Definitions for using ICMP with the `socket` library";
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
@@ -232065,20 +237552,29 @@ self: {
      }) {};
 
   "souffle-haskell" = callPackage
-    ({ mkDerivation, base, deepseq, directory, filepath, hspec, mtl
-     , process, template-haskell, temporary, text, type-errors-pretty
-     , vector
+    ({ mkDerivation, array, base, containers, deepseq, directory, extra
+     , filepath, hedgehog, hspec, hspec-hedgehog, megaparsec, mtl
+     , neat-interpolation, process, template-haskell, temporary, text
+     , type-errors-pretty, vector
      }:
      mkDerivation {
        pname = "souffle-haskell";
-       version = "0.2.3";
-       sha256 = "10yl690vbznsa2z9lk2ix6jd8xkx5kriqqblbdr8mlkdzxxv5z6q";
+       version = "2.0.1";
+       sha256 = "1imnmgx2wpxx2g51ajcsvnrpwvw97wmind9wzfirfx4l7zr3cp7d";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
-         base deepseq directory filepath mtl process template-haskell
-         temporary text type-errors-pretty vector
+         array base containers deepseq directory filepath mtl process
+         template-haskell temporary text type-errors-pretty vector
+       ];
+       executableHaskellDepends = [
+         array base containers deepseq directory extra filepath megaparsec
+         mtl process template-haskell temporary text type-errors-pretty
+         vector
        ];
        testHaskellDepends = [
-         base deepseq directory filepath hspec mtl process template-haskell
+         array base containers deepseq directory filepath hedgehog hspec
+         hspec-hedgehog mtl neat-interpolation process template-haskell
          temporary text type-errors-pretty vector
        ];
        description = "Souffle Datalog bindings for Haskell";
@@ -232172,8 +237668,8 @@ self: {
      }:
      mkDerivation {
        pname = "source-constraints";
-       version = "0.0.1";
-       sha256 = "0i9p63lbcmc78pp0bvym2zdfvrncrzchkw1xbak6idj3ikb1ljpx";
+       version = "0.0.2";
+       sha256 = "0dni6f4b8la60zq3n8ffklwnk9h6qm9lsddjqh812dw3f2jmllzz";
        libraryHaskellDepends = [
          attoparsec base bytestring filepath ghc syb text
        ];
@@ -232491,6 +237987,19 @@ self: {
        broken = true;
      }) {};
 
+  "spars" = callPackage
+    ({ mkDerivation, base, containers }:
+     mkDerivation {
+       pname = "spars";
+       version = "0.1.0.0";
+       sha256 = "1q1vpwrr96k41p9zj5x7mjd3817iq9a762q3jfqkwd0cb41iyka6";
+       libraryHaskellDepends = [ base containers ];
+       description = "A sparse set-based parsing library for Haskell";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "sparse" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, contravariant
      , criterion, deepseq, directory, doctest, filepath, hlint
@@ -232569,8 +238078,8 @@ self: {
      }:
      mkDerivation {
        pname = "sparse-tensor";
-       version = "0.2.1.3";
-       sha256 = "1fcckwp9k3ky669ai62x26pgz0irir4ngk0m6g1659fsn3f2gdc8";
+       version = "0.2.1.4";
+       sha256 = "10caf86g33hcccmpicxfjh0jq3z9d7vs4jafl0f8zhy09dirq8bn";
        setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
          ad base bytestring cereal containers deepseq ghc-typelits-knownnat
@@ -232749,7 +238258,7 @@ self: {
          aeson base blaze-markup bytestring cereal deepseq hashable
          mwc-random path-pieces primitive safecopy text uuid
        ];
-       description = "Simple data types that help me here and there.";
+       description = "Simple data types that help me here and there";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -232955,8 +238464,8 @@ self: {
     ({ mkDerivation, base, composition-prelude }:
      mkDerivation {
        pname = "spherical";
-       version = "0.1.2.2";
-       sha256 = "014fmxgzymyfa82qabc90avjyv4yp7c0s88kkmp02pvpkmjd6p24";
+       version = "0.1.3.0";
+       sha256 = "1h014k4yi0aachbbni011a1jkzi31lrxhpi8h5q5f2vkgb18k1g4";
        libraryHaskellDepends = [ base composition-prelude ];
        description = "Geometry on a sphere";
        license = stdenv.lib.licenses.bsd3;
@@ -233216,8 +238725,8 @@ self: {
     ({ mkDerivation, base, containers, ghc, hlint, stm }:
      mkDerivation {
        pname = "splint";
-       version = "1.0.1.1";
-       sha256 = "14rwj7dbzg01lv4abwrgxjianwnshnycsmxcckw1hhqc8wx9jdac";
+       version = "1.0.1.2";
+       sha256 = "0b7czphkra6q6a5xm30pjh5b4cdvz87fzb2pv17dpxai0mb3c0r6";
        libraryHaskellDepends = [ base containers ghc hlint stm ];
        description = "HLint as a GHC source plugin";
        license = stdenv.lib.licenses.isc;
@@ -233324,7 +238833,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "splitmix_0_1" = callPackage
+  "splitmix_0_1_0_1" = callPackage
     ({ mkDerivation, async, base, base-compat, base-compat-batteries
      , bytestring, clock, containers, criterion, deepseq, HUnit
      , math-functions, process, random, test-framework
@@ -233332,8 +238841,8 @@ self: {
      }:
      mkDerivation {
        pname = "splitmix";
-       version = "0.1";
-       sha256 = "1yhbh6zsklz5fbas2v69xd2qi3xvk4zidzl0acv17fyxa9rwh48w";
+       version = "0.1.0.1";
+       sha256 = "0ahr3zxx0n9pjxpldrphqx5rhanar6alq3km7qvszipa8r46jjsd";
        libraryHaskellDepends = [ base deepseq time ];
        testHaskellDepends = [
          async base base-compat base-compat-batteries bytestring containers
@@ -233382,8 +238891,6 @@ self: {
        ];
        description = "A tool for visualizing the lifecycle of many concurrent multi-staged processes";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "spool" = callPackage
@@ -233429,6 +238936,17 @@ self: {
        broken = true;
      }) {};
 
+  "spork" = callPackage
+    ({ mkDerivation, base, deepseq }:
+     mkDerivation {
+       pname = "spork";
+       version = "0.4.0";
+       sha256 = "1mkcb9qi9d3izf3nhn0bmiiwfhvak6ky71wq7qnrq3imsarrni6s";
+       libraryHaskellDepends = [ base deepseq ];
+       description = "Catch errors from pure computations in a Maybe/Either";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "spoty" = callPackage
     ({ mkDerivation, aeson, base, bytestring, lens, lens-aeson, pipes
      , text, unordered-containers, wreq
@@ -233967,8 +239485,8 @@ self: {
      }:
      mkDerivation {
        pname = "squeeze";
-       version = "1.0.4.17";
-       sha256 = "10nm5jim5cw7qmkdr1j7665g646kay53w8n5rcsp1jz3lglpymdw";
+       version = "1.0.4.19";
+       sha256 = "0zb4nbgwlifzaw28g09qhvvjk8a795zww0b746bj98wgzyxp6a50";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -233982,30 +239500,32 @@ self: {
        ];
        description = "A file-packing application";
        license = "GPL";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "sr-extra" = callPackage
-    ({ mkDerivation, base, bytestring, bzlib, Cabal, cereal, containers
-     , Diff, directory, exceptions, fgl, filemanip, filepath
-     , generic-data, hslogger, HUnit, lens, ListLike, mmorph, mtl
-     , network-uri, pretty, process, process-extras, pureMD5, QuickCheck
-     , random, safecopy, show-combinators, show-please, syb
+    ({ mkDerivation, base, base64-bytestring, bytestring, bzlib, Cabal
+     , cereal, containers, Diff, directory, exceptions, fgl, filemanip
+     , filepath, generic-data, hslogger, HUnit, lens, ListLike, mmorph
+     , mtl, network-uri, pretty, process, process-extras, pureMD5
+     , QuickCheck, random, safecopy, show-combinators, show-please, syb
      , template-haskell, text, th-lift, th-lift-instances, th-orphans
      , time, transformers, unexceptionalio-trans, unix, Unixutils
      , userid, uuid, uuid-orphans, uuid-types, zlib
      }:
      mkDerivation {
        pname = "sr-extra";
-       version = "1.72.3";
-       sha256 = "0jm7r0lxcwppc85rpyasq6grqqkcwhxs0clwyasicqklkcx2l5xw";
+       version = "1.80";
+       sha256 = "03xm9km8wzvz8g1czj320k00xf2dzdi8rm74l7xdr9h7bxcwyh84";
        libraryHaskellDepends = [
-         base bytestring bzlib Cabal cereal containers Diff directory
-         exceptions fgl filemanip filepath generic-data hslogger HUnit lens
-         ListLike mmorph mtl network-uri pretty process process-extras
-         pureMD5 QuickCheck random safecopy show-combinators show-please syb
-         template-haskell text th-lift th-lift-instances th-orphans time
-         transformers unexceptionalio-trans unix Unixutils userid uuid
-         uuid-orphans uuid-types zlib
+         base base64-bytestring bytestring bzlib Cabal cereal containers
+         Diff directory exceptions fgl filemanip filepath generic-data
+         hslogger HUnit lens ListLike mmorph mtl network-uri pretty process
+         process-extras pureMD5 QuickCheck random safecopy show-combinators
+         show-please syb template-haskell text th-lift th-lift-instances
+         th-orphans time transformers unexceptionalio-trans unix Unixutils
+         userid uuid uuid-orphans uuid-types zlib
        ];
        description = "Module limbo";
        license = stdenv.lib.licenses.bsd3;
@@ -234119,6 +239639,8 @@ self: {
        pname = "ssh";
        version = "0.3.2";
        sha256 = "1gr64sv802n9l72lp608xxi9nbh165dzn22m52s0yc35vf717rq1";
+       revision = "1";
+       editedCabalFile = "1y5c3z86mi7fc0awlvmq85y40nhws4591njjs85xj0grxrizx5bg";
        libraryHaskellDepends = [
          asn1-encoding asn1-types base base64-string binary bytestring
          cereal containers crypto-api crypto-pubkey-types
@@ -234329,9 +239851,10 @@ self: {
     ({ mkDerivation, base, ghc-prim }:
      mkDerivation {
        pname = "stable-marriage";
-       version = "0.1.3.0";
-       sha256 = "04nd7c34gsx6njiwqzzx14ff745naam1cxc0cr4s7yyr9h7ikdai";
+       version = "0.2.0.0";
+       sha256 = "1qxns33mmr1nxw6gabi5s1i70ksp0ls54q7cf95fy7vs1nwngz0n";
        libraryHaskellDepends = [ base ghc-prim ];
+       testHaskellDepends = [ base ghc-prim ];
        description = "algorithms around stable marriage";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -234408,6 +239931,43 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "stache_2_2_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, criterion
+     , deepseq, directory, file-embed, filepath, gitrev, hspec
+     , hspec-discover, hspec-megaparsec, megaparsec, mtl
+     , optparse-applicative, template-haskell, text
+     , unordered-containers, vector, yaml
+     }:
+     mkDerivation {
+       pname = "stache";
+       version = "2.2.0";
+       sha256 = "09cfj8hs2249gqf0nrlv9b8vg8gmxabs7ndxasphxdd0rb1y3z3g";
+       revision = "2";
+       editedCabalFile = "1p435wl5c50wjz5s07p102dlyg3pby7n918gp4za0crgb8fi99xh";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers deepseq directory filepath
+         megaparsec mtl template-haskell text unordered-containers vector
+       ];
+       executableHaskellDepends = [
+         aeson base filepath gitrev optparse-applicative text
+         unordered-containers yaml
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers file-embed hspec hspec-megaparsec
+         megaparsec template-haskell text yaml
+       ];
+       testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [
+         aeson base criterion deepseq megaparsec text
+       ];
+       description = "Mustache templates for Haskell";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "stack" = callPackage
     ({ mkDerivation, aeson, annotated-wl-pprint, ansi-terminal, array
      , async, attoparsec, base, base64-bytestring, bytestring, Cabal
@@ -234430,8 +239990,8 @@ self: {
      }:
      mkDerivation {
        pname = "stack";
-       version = "2.3.1";
-       sha256 = "1l17jdkr6ca3hwm4v8bshq2zbadqhb35hk2gfjy2dri1mdibcsdr";
+       version = "2.3.3";
+       sha256 = "1j2z8cgb9c56g39dh5ff2sri3r3vxddy6ymznkywn6d7c1z4j7qs";
        configureFlags = [
          "-fdisable-git-info" "-fhide-dependency-versions"
          "-fsupported-build"
@@ -234527,6 +240087,23 @@ self: {
        broken = true;
      }) {};
 
+  "stack-clean-old" = callPackage
+    ({ mkDerivation, base, directory, extra, filepath, simple-cmd
+     , simple-cmd-args
+     }:
+     mkDerivation {
+       pname = "stack-clean-old";
+       version = "0.1";
+       sha256 = "12q3x0lj8mjhfr6zrizl7995qca28qccjfqwhriciv35l4sny9md";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base directory extra filepath simple-cmd simple-cmd-args
+       ];
+       description = "Clean away old stack build artefacts";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "stack-fix" = callPackage
     ({ mkDerivation, base, options, text, turtle }:
      mkDerivation {
@@ -235218,8 +240795,8 @@ self: {
      }:
      mkDerivation {
        pname = "stackcollapse-ghc";
-       version = "0.0.1";
-       sha256 = "0skpikc7yvdqcdaxqiyav4dk6k0sqng9160dgi4yfx54f5za1a64";
+       version = "0.0.1.2";
+       sha256 = "17ypxfscz9y7w6jh06133j779837dhdiq2a378mc73ji2m5fia1s";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -235234,6 +240811,30 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "stackcollapse-ghc_0_0_1_3" = callPackage
+    ({ mkDerivation, base, bytestring, containers, extra, foldl, hspec
+     , hspec-golden, recursion-schemes, rosezipper, safe, text
+     , transformers, utf8-string
+     }:
+     mkDerivation {
+       pname = "stackcollapse-ghc";
+       version = "0.0.1.3";
+       sha256 = "05271x47b2aik2msfm9f6jsazb174p667acwyd84vs73nygpbmdk";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base bytestring containers extra foldl recursion-schemes rosezipper
+         safe text transformers
+       ];
+       testHaskellDepends = [
+         base bytestring containers extra foldl hspec hspec-golden
+         recursion-schemes rosezipper safe text transformers utf8-string
+       ];
+       description = "Program to fold GHC prof files into flamegraph input";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "stacked-dag" = callPackage
     ({ mkDerivation, base, containers, doctest, graphviz
      , optparse-applicative, text
@@ -235288,6 +240889,39 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "stan" = callPackage
+    ({ mkDerivation, array, base, base64, blaze-html, bytestring, clay
+     , colourista, containers, cryptohash-sha1, dir-traverse, directory
+     , extensions, filepath, ghc, ghc-boot-th, gitrev, hedgehog, hspec
+     , hspec-hedgehog, microaeson, optparse-applicative, pretty-simple
+     , process, relude, slist, text, tomland, trial
+     , trial-optparse-applicative, trial-tomland, unordered-containers
+     }:
+     mkDerivation {
+       pname = "stan";
+       version = "0.0.1.0";
+       sha256 = "13q0pf0vjh19w9sshxa45gbfmhv707sizx6mf5s35003654a0bxm";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         array base base64 blaze-html bytestring clay colourista containers
+         cryptohash-sha1 dir-traverse directory extensions filepath ghc
+         ghc-boot-th gitrev microaeson optparse-applicative pretty-simple
+         process relude slist text tomland trial trial-optparse-applicative
+         trial-tomland unordered-containers
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base containers filepath ghc hedgehog hspec hspec-hedgehog
+         optparse-applicative relude text tomland trial unordered-containers
+       ];
+       doHaddock = false;
+       description = "Haskell STatic ANalyser";
+       license = stdenv.lib.licenses.mpl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "standalone-derive-topdown" = callPackage
     ({ mkDerivation, base, mtl, template-haskell }:
      mkDerivation {
@@ -235495,10 +241129,8 @@ self: {
      }:
      mkDerivation {
        pname = "stateWriter";
-       version = "0.2.10";
-       sha256 = "0g1r7zn1ahky9wmqbimjryca3hkylx15xpqwhc42gkyf7h7kq2b8";
-       revision = "1";
-       editedCabalFile = "19zp7wy2k6f5dqw0wfj9wzarjgfr20nvw5rmqiv79h66qssjl9i6";
+       version = "0.3.0";
+       sha256 = "0l8x758ywgz3c6fhyw1ajaqnq98l2ra39cj4yl2873z89q2cxdlp";
        libraryHaskellDepends = [ base mtl transformers ];
        testHaskellDepends = [ base free hspec mtl QuickCheck ];
        benchmarkHaskellDepends = [
@@ -235609,6 +241241,8 @@ self: {
        ];
        description = "Type-safe and interoperable static values and closures";
        license = stdenv.lib.licenses.gpl3Plus;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "static-canvas" = callPackage
@@ -235959,8 +241593,8 @@ self: {
      }:
      mkDerivation {
        pname = "staversion";
-       version = "0.2.3.6";
-       sha256 = "0887cn2bcs9py30yla07camjhzgsmi1dh83grh9iv2hb360sc92k";
+       version = "0.2.3.7";
+       sha256 = "0mrkm7gr6s27dngws7p3mcfyp9pdvyr25mg9nd3ygklaql74jmng";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -236347,6 +241981,18 @@ self: {
        hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
+  "stm-actor" = callPackage
+    ({ mkDerivation, base, hspec, mtl, stm, stm-queue, transformers }:
+     mkDerivation {
+       pname = "stm-actor";
+       version = "0.2.2.0";
+       sha256 = "1xarn8gc3m38zrcwhvihb5z2m7qfjy4wf8sfczzwf8wsm72cdvl0";
+       libraryHaskellDepends = [ base mtl stm stm-queue transformers ];
+       testHaskellDepends = [ base hspec mtl stm stm-queue ];
+       description = "A simplistic actor model based on STM";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "stm-channelize" = callPackage
     ({ mkDerivation, base, stm }:
      mkDerivation {
@@ -236429,8 +242075,6 @@ self: {
        ];
        description = "Containers for STM";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "stm-delay" = callPackage
@@ -236500,8 +242144,6 @@ self: {
        ];
        description = "STM-specialised Hash Array Mapped Trie";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "stm-io-hooks" = callPackage
@@ -236562,6 +242204,22 @@ self: {
        broken = true;
      }) {};
 
+  "stm-queue" = callPackage
+    ({ mkDerivation, async, base, criterion, deepseq, hspec, stm, time
+     }:
+     mkDerivation {
+       pname = "stm-queue";
+       version = "0.1.2.0";
+       sha256 = "06l5gavmf4x6vp54p1h27nnm5nnw6f8p82v5np93b25inc67vz4h";
+       libraryHaskellDepends = [ base stm ];
+       testHaskellDepends = [ async base hspec stm ];
+       benchmarkHaskellDepends = [
+         async base criterion deepseq hspec stm time
+       ];
+       description = "An implementation of a real-time concurrent queue";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "stm-queue-extras" = callPackage
     ({ mkDerivation, base, stm, stm-chans }:
      mkDerivation {
@@ -236622,6 +242280,8 @@ self: {
        testHaskellDepends = [ async base QuickCheck random Unique ];
        description = "STM wrapper around Control.Concurrent.Supply.";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "stm-tlist" = callPackage
@@ -236853,8 +242513,8 @@ self: {
      }:
      mkDerivation {
        pname = "storablevector";
-       version = "0.2.13";
-       sha256 = "1zmr738vwnhnyxbikayqnaz31ilv2qlmscp6iqgl7adcfbal4dzq";
+       version = "0.2.13.1";
+       sha256 = "06fgxbnc5vwmiv7dxywj7ncjhmxv0wjs0bys5hza6mrwn3sw5r2w";
        libraryHaskellDepends = [
          base deepseq non-negative QuickCheck semigroups syb transformers
          unsafe utility-ht
@@ -236901,63 +242561,60 @@ self: {
     ({ mkDerivation, array, async, base, base-orphans
      , base64-bytestring, bifunctors, bytestring, cereal, cereal-vector
      , clock, containers, contravariant, criterion, cryptohash, deepseq
-     , directory, fail, filepath, free, ghc-prim, hashable, hspec
+     , directory, filepath, free, ghc-prim, hashable, hspec
      , hspec-smallcheck, integer-gmp, lifted-base, monad-control
-     , mono-traversable, network, primitive, resourcet, safe, semigroups
-     , smallcheck, store-core, syb, template-haskell, text, th-lift
+     , mono-traversable, network, primitive, resourcet, safe, smallcheck
+     , store-core, syb, template-haskell, text, th-lift
      , th-lift-instances, th-orphans, th-reify-many, th-utilities, time
      , transformers, unordered-containers, vector
      , vector-binary-instances, void, weigh
      }:
      mkDerivation {
        pname = "store";
-       version = "0.7.4";
-       sha256 = "1lipkzhdr6m5555r2p3s5g5i2am9kg34dznfakcsxv5z20vzd31z";
+       version = "0.7.7";
+       sha256 = "152blmvnp8k0bh9bw6ddzmb2rhs0a36v1k0fza39n88sldx504s3";
        libraryHaskellDepends = [
          array async base base-orphans base64-bytestring bifunctors
          bytestring containers contravariant cryptohash deepseq directory
-         fail filepath free ghc-prim hashable hspec hspec-smallcheck
-         integer-gmp lifted-base monad-control mono-traversable network
-         primitive resourcet safe semigroups smallcheck store-core syb
-         template-haskell text th-lift th-lift-instances th-orphans
-         th-reify-many th-utilities time transformers unordered-containers
-         vector void
+         filepath free ghc-prim hashable hspec hspec-smallcheck integer-gmp
+         lifted-base monad-control mono-traversable network primitive
+         resourcet safe smallcheck store-core syb template-haskell text
+         th-lift th-lift-instances th-orphans th-reify-many th-utilities
+         time transformers unordered-containers vector void
        ];
        testHaskellDepends = [
          array async base base-orphans base64-bytestring bifunctors
          bytestring clock containers contravariant cryptohash deepseq
-         directory fail filepath free ghc-prim hashable hspec
-         hspec-smallcheck integer-gmp lifted-base monad-control
-         mono-traversable network primitive resourcet safe semigroups
-         smallcheck store-core syb template-haskell text th-lift
-         th-lift-instances th-orphans th-reify-many th-utilities time
-         transformers unordered-containers vector void
+         directory filepath free ghc-prim hashable hspec hspec-smallcheck
+         integer-gmp lifted-base monad-control mono-traversable network
+         primitive resourcet safe smallcheck store-core syb template-haskell
+         text th-lift th-lift-instances th-orphans th-reify-many
+         th-utilities time transformers unordered-containers vector void
        ];
        benchmarkHaskellDepends = [
          array async base base-orphans base64-bytestring bifunctors
          bytestring cereal cereal-vector containers contravariant criterion
-         cryptohash deepseq directory fail filepath free ghc-prim hashable
-         hspec hspec-smallcheck integer-gmp lifted-base monad-control
-         mono-traversable network primitive resourcet safe semigroups
-         smallcheck store-core syb template-haskell text th-lift
-         th-lift-instances th-orphans th-reify-many th-utilities time
-         transformers unordered-containers vector vector-binary-instances
-         void weigh
+         cryptohash deepseq directory filepath free ghc-prim hashable hspec
+         hspec-smallcheck integer-gmp lifted-base monad-control
+         mono-traversable network primitive resourcet safe smallcheck
+         store-core syb template-haskell text th-lift th-lift-instances
+         th-orphans th-reify-many th-utilities time transformers
+         unordered-containers vector vector-binary-instances void weigh
        ];
        description = "Fast binary serialization";
        license = stdenv.lib.licenses.mit;
      }) {};
 
   "store-core" = callPackage
-    ({ mkDerivation, base, bytestring, fail, ghc-prim, primitive, text
+    ({ mkDerivation, base, bytestring, ghc-prim, primitive, text
      , transformers
      }:
      mkDerivation {
        pname = "store-core";
-       version = "0.4.4.2";
-       sha256 = "184f3whh7kzc2fkm1mgllg06f002z8shayz1b8cvhal3qg1qahf9";
+       version = "0.4.4.3";
+       sha256 = "1b0fpv8wdp9lcvqplls548xrh336cb1m617fzd0ysbzqhhg5r3fv";
        libraryHaskellDepends = [
-         base bytestring fail ghc-prim primitive text transformers
+         base bytestring ghc-prim primitive text transformers
        ];
        description = "Fast and lightweight binary serialization";
        license = stdenv.lib.licenses.mit;
@@ -236970,8 +242627,8 @@ self: {
      }:
      mkDerivation {
        pname = "store-streaming";
-       version = "0.2.0.0";
-       sha256 = "0fhcv0lvmhdc53fx9y2dvvykvap7dz4asnajy95kpwhaz6z1xc2k";
+       version = "0.2.0.3";
+       sha256 = "0b164ixsqgrar4riqlm3ip5rfbinapk6md7hnz32gzcmrgav283q";
        libraryHaskellDepends = [
          async base bytestring conduit free resourcet store store-core
          streaming-commons text transformers
@@ -237028,8 +242685,8 @@ self: {
      }:
      mkDerivation {
        pname = "stratosphere";
-       version = "0.49.0";
-       sha256 = "18qw7m0h9nlg0vicg3rr7dghmpdfnrpd0ayqyi60c1ifzk4ys4sf";
+       version = "0.53.0";
+       sha256 = "0842sfn7vspbq5kc6rx7i2mvmk6zap87233khybbmvrzzyrp0sp2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -237045,15 +242702,15 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
-  "stratosphere_0_53_0" = callPackage
+  "stratosphere_0_59_1" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, containers
      , hashable, hspec, hspec-discover, lens, template-haskell, text
      , unordered-containers
      }:
      mkDerivation {
        pname = "stratosphere";
-       version = "0.53.0";
-       sha256 = "0842sfn7vspbq5kc6rx7i2mvmk6zap87233khybbmvrzzyrp0sp2";
+       version = "0.59.1";
+       sha256 = "1gcvz8gpyj495jr5qa2jx2yay7ip3hs1dd4bqckmam8llyz2gvxv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -237369,14 +243026,14 @@ self: {
      }:
      mkDerivation {
        pname = "streaming-bracketed";
-       version = "0.1.0.1";
-       sha256 = "1czzx0xraxpdm9qffx435m64nhib66gvgpvf8ian6iqwzdf09z60";
+       version = "0.1.1.0";
+       sha256 = "0lrk2x7c90sw9l9d5vr0zsa8v9q8sg3qqziin46219694y0vy32h";
        libraryHaskellDepends = [ base streaming ];
        testHaskellDepends = [
          base containers directory doctest filepath streaming
          streaming-commons tasty tasty-hunit
        ];
-       description = "A resource management decorator for \"streaming\".";
+       description = "A resource management decorator for \"streaming\"";
        license = stdenv.lib.licenses.mit;
      }) {};
 
@@ -237453,8 +243110,8 @@ self: {
      }:
      mkDerivation {
        pname = "streaming-commons";
-       version = "0.2.1.2";
-       sha256 = "05pwziz8cybp6zh70jsmsdchy5qlkgdjj2jf7ggqrgps5m5nsapa";
+       version = "0.2.2.1";
+       sha256 = "1pc13vz4n0a8lrvc2ck3r3ph10819n9pysklwqabg83q92zl0s9h";
        libraryHaskellDepends = [
          array async base bytestring directory network process random stm
          text transformers unix zlib
@@ -237608,8 +243265,8 @@ self: {
      }:
      mkDerivation {
        pname = "streaming-osm";
-       version = "1.0.1";
-       sha256 = "0rsyp7lzsj254i7r6gak48fwlpkbq9i7aw4mjdmym4y55mhj1d64";
+       version = "1.0.2";
+       sha256 = "0szw191ixqdm1cbmz0i987mm3ipr0aydjw3vq4q0yky4q7wkimc6";
        libraryHaskellDepends = [
          attoparsec base bytestring containers resourcet streaming
          streaming-attoparsec streaming-bytestring text transformers vector
@@ -237673,8 +243330,8 @@ self: {
      }:
      mkDerivation {
        pname = "streaming-postgresql-simple";
-       version = "0.2.0.4";
-       sha256 = "1qdfqp1w7pszks4iqbvgqsxmr2c6bx81jgkyz9k8wfz7vajg6f67";
+       version = "0.2.0.5";
+       sha256 = "1gaj099hxdvyzmzz6z0s1kzv3qqv3py609jz7cp2j3f6497dhdqa";
        libraryHaskellDepends = [
          base bytestring exceptions postgresql-libpq postgresql-simple
          resourcet safe-exceptions streaming transformers
@@ -237742,6 +243399,8 @@ self: {
        pname = "streaming-utils";
        version = "0.2.0.0";
        sha256 = "05cgcypwxrhhf3xyxggwiz0v3193hf8h7vripqjam38f8ji3lxhk";
+       revision = "1";
+       editedCabalFile = "0wfk7bq5kpm6cn28z8mjlr1w5y2gp7bkm1xng1myy3jzyjwr68ph";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring http-client http-client-tls
          json-stream mtl network network-simple pipes resourcet streaming
@@ -237794,6 +243453,8 @@ self: {
        pname = "streamly";
        version = "0.7.2";
        sha256 = "007i3rfza0v8zy34lq9ipq2biarg82prmd1vxr5f2zz5xln37wrm";
+       revision = "1";
+       editedCabalFile = "15fyfvf0g2l678426fz91fqf3qgi44dagqdxh6i6am3vh0nvvg1d";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -237809,6 +243470,45 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "streamly-archive" = callPackage
+    ({ mkDerivation, archive, base, bytestring, cryptonite, directory
+     , filepath, QuickCheck, streamly, tar, tasty, tasty-hunit
+     , tasty-quickcheck, temporary, zlib
+     }:
+     mkDerivation {
+       pname = "streamly-archive";
+       version = "0.0.1";
+       sha256 = "055jcqndkzg14c2fvkncn9034bw60n8s8yjkkjx7kqrj9p0kp01a";
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [ base bytestring streamly ];
+       librarySystemDepends = [ archive ];
+       testHaskellDepends = [
+         base bytestring cryptonite directory filepath QuickCheck streamly
+         tar tasty tasty-hunit tasty-quickcheck temporary zlib
+       ];
+       testSystemDepends = [ archive ];
+       description = "Stream data from archives using the streamly library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {archive = null;};
+
+  "streamly-binary" = callPackage
+    ({ mkDerivation, base, binary, bytestring, hspec, QuickCheck
+     , streamly
+     }:
+     mkDerivation {
+       pname = "streamly-binary";
+       version = "1.0.0.1";
+       sha256 = "16pl68dhhknda7ag1mjhwa14d3rdns70rzwvm947p8n3bv8yxsar";
+       libraryHaskellDepends = [ base binary bytestring streamly ];
+       testHaskellDepends = [
+         base binary bytestring hspec QuickCheck streamly
+       ];
+       description = "Integration of streamly and binary";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "streamly-bytestring" = callPackage
     ({ mkDerivation, base, bytestring, deepseq, directory, filepath
      , gauge, hspec, hspec-discover, quickcheck-instances, random
@@ -237872,6 +243572,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "streamly-lmdb" = callPackage
+    ({ mkDerivation, async, base, bytestring, directory, lmdb
+     , QuickCheck, streamly, tasty, tasty-quickcheck, temporary
+     }:
+     mkDerivation {
+       pname = "streamly-lmdb";
+       version = "0.1.0";
+       sha256 = "0yccaszb6fbasmlwq3iqci7gin8kf7hgmlcjfsq0pdqw32lnmcbn";
+       libraryHaskellDepends = [ async base bytestring streamly ];
+       librarySystemDepends = [ lmdb ];
+       testHaskellDepends = [
+         async base bytestring directory QuickCheck streamly tasty
+         tasty-quickcheck temporary
+       ];
+       testSystemDepends = [ lmdb ];
+       description = "Stream data to or from LMDB databases using the streamly library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) lmdb;};
+
   "streamly-posix" = callPackage
     ({ mkDerivation, base, bytestring, filepath, hpath-posix, hspec
      , hspec-discover, safe-exceptions, streamly, streamly-bytestring
@@ -237989,6 +243710,23 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "strict_0_4" = callPackage
+    ({ mkDerivation, assoc, base, binary, bytestring, deepseq, ghc-prim
+     , hashable, text, these, transformers
+     }:
+     mkDerivation {
+       pname = "strict";
+       version = "0.4";
+       sha256 = "0gs5fqsrwsc3y5w6fp91p9frgh7h42kd9smyg04cw284d5wfx7r7";
+       libraryHaskellDepends = [
+         assoc base binary bytestring deepseq ghc-prim hashable text these
+         transformers
+       ];
+       description = "Strict data types and String IO";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "strict-base" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -238018,6 +243756,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "strict-base-types_0_7" = callPackage
+    ({ mkDerivation, aeson, base, quickcheck-instances, strict
+     , strict-lens
+     }:
+     mkDerivation {
+       pname = "strict-base-types";
+       version = "0.7";
+       sha256 = "079pa6w3f5i5kv1v6mwhp2k0siyywnk3igm93y2kaz37f352x5jn";
+       libraryHaskellDepends = [
+         aeson base quickcheck-instances strict strict-lens
+       ];
+       description = "Strict variants of the types provided in base";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "strict-concurrency" = callPackage
     ({ mkDerivation, base, deepseq }:
      mkDerivation {
@@ -238090,6 +243844,19 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "strict-lens" = callPackage
+    ({ mkDerivation, base, lens, strict }:
+     mkDerivation {
+       pname = "strict-lens";
+       version = "0.4";
+       sha256 = "16sqk7kvg8322f0aflnsb7v76p1c1xfvn3h0hxgvmkb5ll1ak92y";
+       libraryHaskellDepends = [ base lens strict ];
+       description = "Lenses for types in strict package";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "strict-list" = callPackage
     ({ mkDerivation, base, hashable, QuickCheck, quickcheck-instances
      , rerebase, semigroupoids, tasty, tasty-hunit, tasty-quickcheck
@@ -238107,6 +243874,19 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "strict-optics" = callPackage
+    ({ mkDerivation, base, optics-core, strict }:
+     mkDerivation {
+       pname = "strict-optics";
+       version = "0.4";
+       sha256 = "1xy5yziq37h37irbg3win7risxc46s143iqqh95lqv08fybk5b09";
+       libraryHaskellDepends = [ base optics-core strict ];
+       description = "Optics for types in strict package";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "strict-tuple" = callPackage
     ({ mkDerivation, base, bifunctors, deepseq, hashable }:
      mkDerivation {
@@ -238132,6 +243912,8 @@ self: {
        libraryHaskellDepends = [ base lens strict-tuple ];
        description = "Optics for the `strict-tuple` library";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "strict-types" = callPackage
@@ -238289,8 +244071,8 @@ self: {
        pname = "string-interpolate";
        version = "0.2.1.0";
        sha256 = "0wply8lqfhc1xnqxq88xwygwqxbq86gjrwphygbn7nz66g2abgda";
-       revision = "1";
-       editedCabalFile = "1xp470mrm3srvmvk6xznx9wim8xwsz93pskpv4hnk2ra3a7lr2lr";
+       revision = "2";
+       editedCabalFile = "00dsrl53aggn0d45cv3c7w6x82qhz3a059w957s9i3qdqfphbvx9";
        libraryHaskellDepends = [
          base bytestring haskell-src-exts haskell-src-meta split
          template-haskell text text-conversions utf8-string
@@ -238308,6 +244090,36 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "string-interpolate_0_3_0_1" = callPackage
+    ({ mkDerivation, base, base16-bytestring, bytestring, criterion
+     , deepseq, formatting, haskell-src-exts, haskell-src-meta, hspec
+     , hspec-core, interpolate, neat-interpolation, QuickCheck
+     , quickcheck-instances, quickcheck-text, quickcheck-unicode, split
+     , template-haskell, text, text-conversions, unordered-containers
+     , utf8-string
+     }:
+     mkDerivation {
+       pname = "string-interpolate";
+       version = "0.3.0.1";
+       sha256 = "119h30jnn7c30zs922q1dlnfl30svniflfvhrapalcgkgaw4sybg";
+       libraryHaskellDepends = [
+         base base16-bytestring bytestring haskell-src-exts haskell-src-meta
+         split template-haskell text text-conversions utf8-string
+       ];
+       testHaskellDepends = [
+         base bytestring hspec hspec-core QuickCheck quickcheck-instances
+         quickcheck-text quickcheck-unicode template-haskell text
+         unordered-containers
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion deepseq formatting interpolate
+         neat-interpolation QuickCheck text
+       ];
+       description = "Haskell string/text/bytestring interpolation that just works";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "string-isos" = callPackage
     ({ mkDerivation, base, bytestring, mono-traversable, safe, text
      , type-iso
@@ -238369,8 +244181,8 @@ self: {
      }:
      mkDerivation {
        pname = "string-random";
-       version = "0.1.2.0";
-       sha256 = "1jw05cvzzmma28xvak517y8gb7gjsdmr5iafgz5snxikcjzav0l2";
+       version = "0.1.3.0";
+       sha256 = "18yni8zm51x65i5h1c4sr9msd5fqa3fnh3zm0dck2wk364xz7dsy";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -238593,8 +244405,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-core";
-       version = "2.5.0";
-       sha256 = "06b5qx20zkvaqvn98jqmq0vqrpkgfvab5wjq7lwlcdm9nn7nrsgi";
+       version = "2.6.2";
+       sha256 = "00bjr71lawn1ar18vm3p849ffr6r6fmgwn2ksg4vas5rmmy2vwib";
        libraryHaskellDepends = [
          aeson base bytestring mtl text time transformers
          unordered-containers
@@ -238609,8 +244421,8 @@ self: {
     ({ mkDerivation, base, stripe-core, stripe-http-client }:
      mkDerivation {
        pname = "stripe-haskell";
-       version = "2.5.0";
-       sha256 = "0qazqygkg6hlfvz6wg3gk2am7qnxzsfqjqh6mgyandz9l141pyx5";
+       version = "2.6.2";
+       sha256 = "02ydf9i632r2clhvf1f9v0yx7vmpmh37mch1jshazrw3my6sq1vl";
        libraryHaskellDepends = [ base stripe-core stripe-http-client ];
        description = "Stripe API for Haskell";
        license = stdenv.lib.licenses.mit;
@@ -238624,8 +244436,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-http-client";
-       version = "2.5.0";
-       sha256 = "1386d2bhql56kazxx89icl1j5ikhhza2cv934x19s5lqsl8089yi";
+       version = "2.6.2";
+       sha256 = "0xz8dc2mh5mscc3mp5n4h2sch1winpaf7sy1w4s87vv68304jfg3";
        libraryHaskellDepends = [
          aeson base bytestring http-client http-client-tls http-types
          stripe-core text
@@ -238675,6 +244487,8 @@ self: {
        ];
        description = "Listen for Stripe webhook events with Scotty";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "stripe-signature" = callPackage
@@ -238683,8 +244497,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-signature";
-       version = "1.0.0.4";
-       sha256 = "1gsw1a1x4a46fiihwqsh2706nsrjy00mv881fmc1aab7ln2cmzkg";
+       version = "1.0.0.6";
+       sha256 = "0lp3fli9g5yvlxy8f0md2d3wv6z45mw0929b8c0y2xkcsdjvpp5l";
        libraryHaskellDepends = [
          base base16-bytestring bytestring cryptonite memory stripe-concepts
          text
@@ -238692,6 +244506,8 @@ self: {
        testHaskellDepends = [ base bytestring text ];
        description = "Verification of Stripe webhook signatures";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "stripe-tests" = callPackage
@@ -238701,8 +244517,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripe-tests";
-       version = "2.5.0";
-       sha256 = "0jqxzdriaysf2lya8p9lc1ind2m4b4nz15dn7vb3sx74vw6lp4s3";
+       version = "2.6.2";
+       sha256 = "06r1jyf6rjmnd6p2grfs0s0f5x6sswsxw9ip7x81rh9cz5qdshdg";
        libraryHaskellDepends = [
          aeson base bytestring free hspec hspec-core mtl random stripe-core
          text time transformers unordered-containers
@@ -238736,8 +244552,8 @@ self: {
      }:
      mkDerivation {
        pname = "stripeapi";
-       version = "0.1.0.0";
-       sha256 = "18qprai04gmpqzlqlqi8rabhljriqb2ph2g3iy2glq8yf3cnvc1n";
+       version = "0.1.0.2";
+       sha256 = "1zls2k2bzrkwcqav8s416gjsc4rp6glb4rv0ljkjab55ym3fkbqq";
        libraryHaskellDepends = [
          aeson base bytestring ghc-prim http-client http-conduit http-types
          mtl scientific text time transformers unordered-containers vector
@@ -239140,42 +244956,12 @@ self: {
      , directory, file-embed, filepath, haskell-src-exts, HsYAML
      , HsYAML-aeson, HUnit, mtl, optparse-applicative, random
      , semigroups, strict, syb, test-framework, test-framework-hunit
-     }:
-     mkDerivation {
-       pname = "stylish-haskell";
-       version = "0.10.0.0";
-       sha256 = "1ribq5fnfg7bwzj7h8br2jnpjnw905dzr9yysx3h9nkw1593rw56";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         aeson base bytestring Cabal containers directory file-embed
-         filepath haskell-src-exts HsYAML HsYAML-aeson mtl semigroups syb
-       ];
-       executableHaskellDepends = [
-         aeson base bytestring Cabal containers directory file-embed
-         filepath haskell-src-exts HsYAML HsYAML-aeson mtl
-         optparse-applicative strict syb
-       ];
-       testHaskellDepends = [
-         aeson base bytestring Cabal containers directory file-embed
-         filepath haskell-src-exts HsYAML HsYAML-aeson HUnit mtl random syb
-         test-framework test-framework-hunit
-       ];
-       description = "Haskell code prettifier";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "stylish-haskell_0_11_0_0" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, Cabal, containers
-     , directory, file-embed, filepath, haskell-src-exts, HsYAML
-     , HsYAML-aeson, HUnit, mtl, optparse-applicative, random
-     , semigroups, strict, syb, test-framework, test-framework-hunit
      , text
      }:
      mkDerivation {
        pname = "stylish-haskell";
-       version = "0.11.0.0";
-       sha256 = "124dn46ddxfcjyrmwjwijqan0dd55zzx9nwckg1df8b6al6k0x3j";
+       version = "0.11.0.3";
+       sha256 = "10svl5q95n9i76rqvlxibi784qzvdyg8qfl1xwk7c32y84nyfibn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -239195,7 +244981,6 @@ self: {
        ];
        description = "Haskell code prettifier";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "stylist" = callPackage
@@ -239291,6 +245076,35 @@ self: {
        broken = true;
      }) {};
 
+  "subcategories" = callPackage
+    ({ mkDerivation, base, bytestring, containers, data-default, foldl
+     , hashable, inspection-testing, mono-traversable, pointed
+     , primitive, QuickCheck, reflection, semialign, tasty
+     , tasty-discover, tasty-expected-failure, tasty-hunit
+     , tasty-quickcheck, template-haskell, text, these
+     , unordered-containers, vector, vector-algorithms, vector-builder
+     }:
+     mkDerivation {
+       pname = "subcategories";
+       version = "0.1.0.0";
+       sha256 = "0rrvlwfyjmv4wpvm9dbr4vxbmlr24pzdfwvz3hkshgxnrc58gslw";
+       libraryHaskellDepends = [
+         base containers data-default foldl hashable mono-traversable
+         pointed primitive reflection semialign template-haskell text these
+         unordered-containers vector vector-algorithms vector-builder
+       ];
+       testHaskellDepends = [
+         base bytestring containers data-default foldl hashable
+         inspection-testing mono-traversable pointed primitive QuickCheck
+         reflection semialign tasty tasty-expected-failure tasty-hunit
+         tasty-quickcheck template-haskell text these unordered-containers
+         vector vector-algorithms vector-builder
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Subcategories induced by class constraints";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "subhask" = callPackage
     ({ mkDerivation, approximate, array, base, bloomfilter, bytes
      , bytestring, cassava, containers, criterion, deepseq, erf, gamma
@@ -239583,6 +245397,18 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "summer" = callPackage
+    ({ mkDerivation, base, vector }:
+     mkDerivation {
+       pname = "summer";
+       version = "0.1.2.0";
+       sha256 = "1xcfw3f4y53a9jdj2a7jy32pp5pcvqsv78gblkjj1bxvsijwa4ab";
+       libraryHaskellDepends = [ base vector ];
+       testHaskellDepends = [ base ];
+       description = "An implementation of extensible products and sums";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "summoner" = callPackage
     ({ mkDerivation, aeson, base, colourista, containers, directory
      , filepath, generic-data, gitrev, hedgehog, hspec, hspec-hedgehog
@@ -239608,8 +245434,6 @@ self: {
        ];
        description = "Tool for scaffolding fully configured batteries-included production-level Haskell projects";
        license = stdenv.lib.licenses.mpl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "summoner-tui" = callPackage
@@ -239629,8 +245453,6 @@ self: {
        executableHaskellDepends = [ base relude ];
        description = "Tool for scaffolding fully configured batteries-included production-level Haskell projects using TUI";
        license = stdenv.lib.licenses.mpl20;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "sump" = callPackage
@@ -239808,8 +245630,6 @@ self: {
        ];
        description = "Efficiently build a bytestring from smaller chunks";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "supercollider-ht" = callPackage
@@ -239932,6 +245752,28 @@ self: {
        broken = true;
      }) {};
 
+  "supernova" = callPackage
+    ({ mkDerivation, aeson, async, base, bifunctor, binary, bytestring
+     , crc32c, exceptions, lens-family-core, lens-family-th, logging
+     , managed, mtl, network, proto-lens, proto-lens-runtime, streamly
+     , text
+     }:
+     mkDerivation {
+       pname = "supernova";
+       version = "0.0.3";
+       sha256 = "1k04k71x42h56n6qzdcviya9alwxgch846l1xcl17zc34rs4p79v";
+       libraryHaskellDepends = [
+         async base bifunctor binary bytestring crc32c exceptions
+         lens-family-core lens-family-th logging managed mtl network
+         proto-lens proto-lens-runtime text
+       ];
+       testHaskellDepends = [ aeson async base bytestring streamly text ];
+       description = "Apache Pulsar client for Haskell";
+       license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "supero" = callPackage
     ({ mkDerivation, base, containers, cpphs, directory, filepath
      , haskell-src-exts, mtl, process, time, uniplate
@@ -239958,8 +245800,8 @@ self: {
      }:
      mkDerivation {
        pname = "superrecord";
-       version = "0.5.0.1";
-       sha256 = "0l1zimami83701djj47nk3izb10m6jxszq52zwmb8411dbn9pclb";
+       version = "0.5.1.0";
+       sha256 = "0dg1h7213vinlm6vmdr73xh81j0ysvs7mqmphwr58d3ymn12mfqa";
        libraryHaskellDepends = [
          aeson base bytestring constraints deepseq ghc-prim mtl text
        ];
@@ -239994,8 +245836,8 @@ self: {
        pname = "supervisors";
        version = "0.2.0.0";
        sha256 = "0q6r211sbb9dyrplr61xajbwcfvz7z93401mhqxhw3pz55vyrg8i";
-       revision = "1";
-       editedCabalFile = "1p91gji7qgvash13d4c6av573czk70p89g9i4x8gnklzbrpz2qg7";
+       revision = "2";
+       editedCabalFile = "0pnxmbw3wb0dcbhpl583ffd991iv3zy4xf6xi5z3qhn5qh8nrmz1";
        libraryHaskellDepends = [
          async base containers safe-exceptions stm
        ];
@@ -240526,6 +246368,28 @@ self: {
        broken = true;
      }) {};
 
+  "sweet-egison" = callPackage
+    ({ mkDerivation, backtracking, base, criterion, egison-pattern-src
+     , egison-pattern-src-th-mode, haskell-src-exts, haskell-src-meta
+     , logict, primes, tasty, tasty-discover, tasty-hunit
+     , template-haskell, transformers
+     }:
+     mkDerivation {
+       pname = "sweet-egison";
+       version = "0.1.1.0";
+       sha256 = "1zd1l2gbg7dp53d4jzki6k8jqxdvqgy5gl6jdy325hx1fycrixql";
+       libraryHaskellDepends = [
+         backtracking base egison-pattern-src egison-pattern-src-th-mode
+         haskell-src-exts haskell-src-meta logict template-haskell
+         transformers
+       ];
+       testHaskellDepends = [ base primes tasty tasty-hunit ];
+       testToolDepends = [ tasty-discover ];
+       benchmarkHaskellDepends = [ base criterion ];
+       description = "Shallow embedding implementation of non-linear pattern matching";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "swf" = callPackage
     ({ mkDerivation, base, mtl, pretty }:
      mkDerivation {
@@ -240563,8 +246427,8 @@ self: {
      }:
      mkDerivation {
        pname = "swish";
-       version = "0.10.0.3";
-       sha256 = "0cl34mqbda1k4spv86y8v5x0d89lv80b8dxymc7iw5hpjks1cdx3";
+       version = "0.10.0.4";
+       sha256 = "0rad5rx8hxh0ay4q0lfbn4jggvl3wf3chhjf34rpppzdd6b7r75m";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -240577,10 +246441,26 @@ self: {
          base containers hashable HUnit network-uri old-locale semigroups
          test-framework test-framework-hunit text time
        ];
-       description = "A semantic web toolkit.";
+       description = "A semantic web toolkit";
        license = stdenv.lib.licenses.lgpl21;
      }) {};
 
+  "swiss-ephemeris" = callPackage
+    ({ mkDerivation, base, directory, hspec, hspec-discover, QuickCheck
+     }:
+     mkDerivation {
+       pname = "swiss-ephemeris";
+       version = "1.2.0.0";
+       sha256 = "1inzvwm7z562q07r5h8prxpn4g1ywza88a7rv95yx8634fcy1bsl";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base directory hspec QuickCheck ];
+       testToolDepends = [ hspec-discover ];
+       description = "Haskell bindings for the Swiss Ephemeris C library";
+       license = stdenv.lib.licenses.gpl2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "sws" = callPackage
     ({ mkDerivation, asn1-encoding, asn1-types, base, bytestring
      , containers, cryptonite, directory, filepath, hourglass
@@ -240769,6 +246649,40 @@ self: {
        broken = true;
      }) {};
 
+  "symantic-atom" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, hashable
+     , megaparsec, symantic-xml, tasty, tasty-golden, text, time
+     , transformers, treeseq
+     }:
+     mkDerivation {
+       pname = "symantic-atom";
+       version = "0.0.0.20200523";
+       sha256 = "05lw93cx4zpwy7mq4ad6ly2wl51japczxcpss64svklwl78awcz2";
+       libraryHaskellDepends = [
+         base containers megaparsec symantic-xml text time transformers
+         treeseq
+       ];
+       testHaskellDepends = [
+         base bytestring containers deepseq hashable megaparsec symantic-xml
+         tasty tasty-golden text time transformers treeseq
+       ];
+       description = "Library for reading and writing Atom";
+       license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "symantic-base" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "symantic-base";
+       version = "0.0.2.20200708";
+       sha256 = "1yvlvsr38b1ydplpz1jldy816sngmic273iajcmhr73rlyzk5y3d";
+       libraryHaskellDepends = [ base ];
+       description = "Basic symantics for writing Embedded Domain-Specific Languages (EDSL)";
+       license = stdenv.lib.licenses.gpl3;
+     }) {};
+
   "symantic-cli" = callPackage
     ({ mkDerivation, base, bytestring, containers, megaparsec
      , symantic-document, text, transformers
@@ -240970,25 +246884,25 @@ self: {
      }) {};
 
   "symantic-xml" = callPackage
-    ({ mkDerivation, base, bytestring, containers, data-default-class
-     , deepseq, filepath, hashable, hxt-charproperties, megaparsec, safe
-     , tasty, tasty-golden, text, transformers, treeseq
-     , unordered-containers
+    ({ mkDerivation, base, bytestring, containers, deepseq, hashable
+     , hxt-charproperties, megaparsec, symantic-base, tasty
+     , tasty-golden, text, transformers, treeseq, unordered-containers
      }:
      mkDerivation {
        pname = "symantic-xml";
-       version = "1.0.0.20190223";
-       sha256 = "0mqx0ysp9c4zzljjgl0w68k5r8qgv2h35cfq0mqvijcjq5dgiflp";
+       version = "2.0.0.20200523";
+       sha256 = "1fz68n63i32rkyvmz99wyg20xhdniqqm1fds0xn320gi2z35092b";
+       revision = "1";
+       editedCabalFile = "1dvfglys9jza910wr7r7kda1jisbk9gj3d6rfccaip78hyra1z8l";
        libraryHaskellDepends = [
-         base bytestring containers data-default-class filepath hashable
-         hxt-charproperties megaparsec safe text transformers treeseq
-         unordered-containers
+         base bytestring containers hashable hxt-charproperties megaparsec
+         symantic-base text transformers treeseq unordered-containers
        ];
        testHaskellDepends = [
-         base bytestring containers data-default-class deepseq filepath
-         hashable megaparsec tasty tasty-golden text transformers treeseq
+         base bytestring containers deepseq hashable megaparsec
+         symantic-base tasty tasty-golden text transformers treeseq
        ];
-       description = "Library for reading, validating and writing a subset of the XML format";
+       description = "Library for reading, validating and writing XML";
        license = stdenv.lib.licenses.gpl3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -241115,6 +247029,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "symmetry-operations-symbols" = callPackage
+    ({ mkDerivation, base, doctest, hspec, matrix, matrix-as-xyz
+     , parsec, QuickCheck
+     }:
+     mkDerivation {
+       pname = "symmetry-operations-symbols";
+       version = "0.0.2.1";
+       sha256 = "0y9m1z72kh8lhmig0lpp67p3s74s706y6lbzlr5hk47mpcw7fymh";
+       libraryHaskellDepends = [ base matrix matrix-as-xyz parsec ];
+       testHaskellDepends = [
+         base doctest hspec matrix matrix-as-xyz parsec QuickCheck
+       ];
+       description = "Derivation of symbols and coordinate triplets Library";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "symon" = callPackage
     ({ mkDerivation, ansi-terminal, base, monad-loops, random }:
      mkDerivation {
@@ -242007,20 +247939,6 @@ self: {
     ({ mkDerivation, base, bytestring, network, transformers, unix }:
      mkDerivation {
        pname = "systemd";
-       version = "2.2.0";
-       sha256 = "18z0wc71k3wwxfighwk4y03aprf5sd94vadzbyjysrac2np1qz20";
-       libraryHaskellDepends = [
-         base bytestring network transformers unix
-       ];
-       testHaskellDepends = [ base network unix ];
-       description = "Systemd facilities (Socket activation, Notify)";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "systemd_2_3_0" = callPackage
-    ({ mkDerivation, base, bytestring, network, transformers, unix }:
-     mkDerivation {
-       pname = "systemd";
        version = "2.3.0";
        sha256 = "1fa65j996snrdq83kh3jzzs2dsf2ddsscx596p03ykgknz1q1f16";
        libraryHaskellDepends = [
@@ -242029,7 +247947,6 @@ self: {
        testHaskellDepends = [ base network unix ];
        description = "Systemd facilities (Socket activation, Notify)";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "systemstats" = callPackage
@@ -242143,7 +248060,7 @@ self: {
        libraryHaskellDepends = [
          base containers ghc-prim mtl Takusen template-haskell time
        ];
-       description = "Transito Abierto: convenience library when using Takusen and Oracle.";
+       description = "Transito Abierto: convenience library when using Takusen and Oracle";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -242186,8 +248103,8 @@ self: {
      }:
      mkDerivation {
        pname = "table-layout";
-       version = "0.9.0.0";
-       sha256 = "1dbh2j0520xfab6sn0zmi05xw8kv20pqqwk57b1h1xa01mh68xld";
+       version = "0.9.0.1";
+       sha256 = "09lj27z5jnnzj0piyr9g3g76j4i0wcmvz65zk839ssaqymmnl9cg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -242200,7 +248117,7 @@ self: {
          base data-default-class data-default-instances-base hspec HUnit
          QuickCheck
        ];
-       description = "Layout text as grid or table";
+       description = "Format tabular data as grid or table";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -242343,8 +248260,8 @@ self: {
     ({ mkDerivation, base, csv, html, mtl }:
      mkDerivation {
        pname = "tabular";
-       version = "0.2.2.7";
-       sha256 = "1ysgq7rrks7f98nnvxil8xz1q27hxdgz4szbjhqwzbwd209dmy0k";
+       version = "0.2.2.8";
+       sha256 = "0z936gh8n8i8qdkagyxwd9gqq13skd5fv013vdvwsibrxkm0czfb";
        libraryHaskellDepends = [ base csv html mtl ];
        description = "Two-dimensional data tables with rendering functions";
        license = stdenv.lib.licenses.bsd3;
@@ -242394,6 +248311,8 @@ self: {
        executablePkgconfigDepends = [ gtk3 ];
        description = "A desktop bar similar to xmobar, but with more GUI";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) gtk3;};
 
   "tag-bits" = callPackage
@@ -242790,6 +248709,28 @@ self: {
        broken = true;
      }) {};
 
+  "tagstew" = callPackage
+    ({ mkDerivation, base, bytestring, compact, tagsoup, text
+     , unicode-show, unordered-containers, utf8-string
+     }:
+     mkDerivation {
+       pname = "tagstew";
+       version = "0";
+       sha256 = "0l49w51s0r7n2kc8254sasaj0b8fg3hf1ykyy6wsiyyn394592j6";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring compact tagsoup text unordered-containers
+       ];
+       executableHaskellDepends = [
+         base bytestring tagsoup unicode-show utf8-string
+       ];
+       description = "Black magic tagsoup";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "tagstream-conduit" = callPackage
     ({ mkDerivation, attoparsec, base, blaze-builder, bytestring
      , case-insensitive, conduit, conduit-extra, data-default, hspec
@@ -243164,6 +249105,8 @@ self: {
        pname = "tar-bytestring";
        version = "0.6.3.2";
        sha256 = "10jmxjs808n3vcp997d42dy6256j67rk729awiviv2i76r7anzlv";
+       revision = "1";
+       editedCabalFile = "04m7im7k9f0qqs5bin9zdgvn1cv45m08cffbli1wb25navnrpwl8";
        libraryHaskellDepends = [
          array base bytestring containers deepseq hpath-directory
          hpath-filepath hpath-posix safe-exceptions these time unix word8
@@ -243281,6 +249224,8 @@ self: {
        ];
        description = "Terminal Art";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "task" = callPackage
@@ -243351,8 +249296,8 @@ self: {
      }:
      mkDerivation {
        pname = "taskell";
-       version = "1.9.3.0";
-       sha256 = "06pdfi5bw2ga0pizq01x35gp8f90c8gr4ivbm5k4a7xv6pwr8mf0";
+       version = "1.10.1";
+       sha256 = "1s05jwsfzjvgfcyd4n4ykzxld11mkf5gnyd9crl5ry5pg77iqw72";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -243369,8 +249314,6 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "A command-line kanban board/task manager";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "taskpool" = callPackage
@@ -243400,8 +249343,8 @@ self: {
        pname = "taskwarrior";
        version = "0.3.0.0";
        sha256 = "1h24d799q1s6b36hd40bxa4c9m1izkgh6j7p2jv1p6cxngz28ni0";
-       revision = "1";
-       editedCabalFile = "063b4k4zppvnv6xzk72d4fji203abckwcsg2b1z387p66y3x0914";
+       revision = "2";
+       editedCabalFile = "16ikncs4aail9ymd2nx9n67b5d64cwk7m6kcbwvji0iggbikmsiv";
        libraryHaskellDepends = [
          aeson base bytestring containers process random text time
          unordered-containers uuid
@@ -243490,12 +249433,39 @@ self: {
        broken = true;
      }) {};
 
+  "tasty-bdd" = callPackage
+    ({ mkDerivation, aeson, aeson-qq, base, exceptions, free, HUnit
+     , microlens, microlens-th, mtl, pretty, pretty-show
+     , qm-interpolated-string, regex-posix, tagged, tasty
+     , tasty-expected-failure, tasty-fail-fast, tasty-hunit, temporary
+     , text, transformers, tree-diff
+     }:
+     mkDerivation {
+       pname = "tasty-bdd";
+       version = "0.1.0.1";
+       sha256 = "1da1983hampnkkm6kwxp8w1bkhzic27qbnkckkmsziaz8kbkhcpi";
+       libraryHaskellDepends = [
+         base exceptions free HUnit microlens microlens-th mtl pretty
+         pretty-show tagged tasty tasty-fail-fast tasty-hunit temporary text
+         transformers tree-diff
+       ];
+       testHaskellDepends = [
+         aeson aeson-qq base exceptions HUnit mtl qm-interpolated-string
+         regex-posix tasty tasty-expected-failure tasty-fail-fast
+         tasty-hunit temporary text transformers
+       ];
+       description = "BDD tests language and tasty provider";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "tasty-dejafu" = callPackage
     ({ mkDerivation, base, dejafu, random, tagged, tasty }:
      mkDerivation {
        pname = "tasty-dejafu";
-       version = "2.0.0.4";
-       sha256 = "0jryp6kndaaxfjd4vsws18igx9ivd36iqyqdbjpxmxbx34d1h6kn";
+       version = "2.0.0.6";
+       sha256 = "0iw7yqb52cxw3fgp9did73wk41c1jxvdxx4vg0rna32bc0d7rwyh";
        libraryHaskellDepends = [ base dejafu random tagged tasty ];
        description = "Deja Fu support for the Tasty test framework";
        license = stdenv.lib.licenses.mit;
@@ -243540,6 +249510,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "tasty-expected-failure_0_12_1" = callPackage
+    ({ mkDerivation, base, hedgehog, tagged, tasty, tasty-golden
+     , tasty-hedgehog, tasty-hunit, unbounded-delays
+     }:
+     mkDerivation {
+       pname = "tasty-expected-failure";
+       version = "0.12.1";
+       sha256 = "1r4xljml8w55q6qpjj94ig2yic398624fld3dwjfcbaldgbacpmm";
+       libraryHaskellDepends = [ base tagged tasty unbounded-delays ];
+       testHaskellDepends = [
+         base hedgehog tasty tasty-golden tasty-hedgehog tasty-hunit
+       ];
+       description = "Mark tasty tests as failure expected";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "tasty-fail-fast" = callPackage
     ({ mkDerivation, base, containers, directory, stm, tagged, tasty
      , tasty-golden, tasty-hunit, tasty-tap
@@ -243632,8 +249619,8 @@ self: {
        pname = "tasty-hedgehog";
        version = "1.0.0.2";
        sha256 = "1vsv3m6brhshpqm8qixz97m7h0nx67cj6ira4cngbk7mf5rqylv5";
-       revision = "2";
-       editedCabalFile = "1v4jp3xk5ikik638vkyf2jxkhaf2n6fsw8zxqxxjv65x60082kl7";
+       revision = "4";
+       editedCabalFile = "0z47ssv9030px81sxivhw5jp7yfpr6r6anlf03slks31jkzvx4gl";
        libraryHaskellDepends = [ base hedgehog tagged tasty ];
        testHaskellDepends = [
          base hedgehog tasty tasty-expected-failure
@@ -243874,8 +249861,8 @@ self: {
      }:
      mkDerivation {
        pname = "tasty-lua";
-       version = "0.2.2";
-       sha256 = "0m75dffrj6ziaalrch91kzj76ki0chbf33pi7mrx0c1gzmpvn8gv";
+       version = "0.2.3";
+       sha256 = "0kpmp51wyqbjv3nsrnybpms7flsl2bznqp8gf27zv2f5kraa77vk";
        libraryHaskellDepends = [
          base bytestring file-embed hslua tasty text
        ];
@@ -243906,6 +249893,8 @@ self: {
        ];
        description = "Golden testing provider for tasty with muti-line diff output";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "tasty-program" = callPackage
@@ -243951,6 +249940,8 @@ self: {
        testHaskellDepends = [ base QuickCheck tasty ];
        description = "Pre-built tasty trees for checking lawful class properties using QuickCheck";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "tasty-rerun" = callPackage
@@ -243979,8 +249970,8 @@ self: {
      }:
      mkDerivation {
        pname = "tasty-silver";
-       version = "3.1.13";
-       sha256 = "1sd9xgjcvlnw338dn5rcy5la7gw15yvg4xl85ym7aav5fr97apfs";
+       version = "3.1.15";
+       sha256 = "07iiaw5q5jb6bxm5ys1s6bliw0qxsqp100awzxwkwfia03i1iz8z";
        libraryHaskellDepends = [
          ansi-terminal async base bytestring containers deepseq directory
          filepath mtl optparse-applicative process process-extras regex-tdfa
@@ -244417,6 +250408,8 @@ self: {
        pname = "tdlib";
        version = "0.3.0";
        sha256 = "1aa7f6jb021gx9lidhbrnvaq01jyxhrr7bslq0n5b89wqwng9zfm";
+       revision = "1";
+       editedCabalFile = "1syyxdbq44wiw7lc86qyvrv5swc596b987xf0r7h77xz6dj6q601";
        libraryHaskellDepends = [
          aeson base bytestring containers monad-loops polysemy
          polysemy-plugin stm tdlib-types text unordered-containers
@@ -244439,8 +250432,8 @@ self: {
      }:
      mkDerivation {
        pname = "tdlib-gen";
-       version = "0.2.0";
-       sha256 = "0bd0lh0sgyyc1ngdrk5lalj22wz6zhag9r8389b16kr2xbxm4p3d";
+       version = "0.4.0";
+       sha256 = "08p2zy8q114aklz5rcrddmwc1xd9hg1fwgb83j5cmck8p3w53h16";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -244466,8 +250459,8 @@ self: {
      }:
      mkDerivation {
        pname = "tdlib-types";
-       version = "0.3.0";
-       sha256 = "0whg2cz51h2wnmaj6m7vfxbg7zcbg6svawd50y3671biff15n7z2";
+       version = "0.4.0";
+       sha256 = "0vb4pvmd40gwzx9a48c0ydj9q555r1mjlfsar9f0bq2kkzdx7d78";
        libraryHaskellDepends = [
          aeson base base64-bytestring-type bytestring language-tl polysemy
          polysemy-plugin tdlib-gen text
@@ -244650,22 +250643,23 @@ self: {
 
   "telegram-bot-simple" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, cron
-     , hashable, http-api-data, http-client, http-client-tls
+     , filepath, hashable, http-api-data, http-client, http-client-tls
      , monad-control, mtl, pretty-show, profunctors, servant
-     , servant-client, split, stm, template-haskell, text, time
-     , transformers, unordered-containers
+     , servant-client, servant-multipart, split, stm, template-haskell
+     , text, time, transformers, unordered-containers
      }:
      mkDerivation {
        pname = "telegram-bot-simple";
-       version = "0.3.0";
-       sha256 = "196zb03nj37qfmxgn5lagjdl759bgmnr1vsh26dbbv1zsmlp0pva";
+       version = "0.3.1";
+       sha256 = "09r64kgvgc5xx4wa5mxlc6fi4cf5qa81j7334wr7niv88fs659yb";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson aeson-pretty base bytestring cron hashable http-api-data
-         http-client http-client-tls monad-control mtl pretty-show
-         profunctors servant servant-client split stm template-haskell text
-         time transformers unordered-containers
+         aeson aeson-pretty base bytestring cron filepath hashable
+         http-api-data http-client http-client-tls monad-control mtl
+         pretty-show profunctors servant servant-client servant-multipart
+         split stm template-haskell text time transformers
+         unordered-containers
        ];
        executableHaskellDepends = [
          aeson aeson-pretty base bytestring cron hashable http-api-data
@@ -244712,8 +250706,8 @@ self: {
      }:
      mkDerivation {
        pname = "telegram-types";
-       version = "0.4.0";
-       sha256 = "1giv1d713rfdc8svcba2ws8mv6g957f7v1dm3qr9p8082nry2llm";
+       version = "0.4.1";
+       sha256 = "0zw5in801d7sxavjs28ra026xganca0b21qv4pwhk967vzsf12yy";
        libraryHaskellDepends = [
          aeson base bytestring deriving-aeson filepath generic-lens lens
          mime-types open-union servant servant-multipart text time
@@ -244869,13 +250863,28 @@ self: {
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
        pname = "template-haskell-compat-v0208";
-       version = "0.1.2.1";
-       sha256 = "1c8m1z46j6azvxd6hrr76rb7gq6bxfwg3j8m25p260hrss595c06";
+       version = "0.1.5";
+       sha256 = "1s1ynp568i7y5v062kliia46c3cmaijslf2hlmdkkqfdvf8fmzp1";
        libraryHaskellDepends = [ base template-haskell ];
        description = "A backwards compatibility layer for Template Haskell newer than 2.8";
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "template-haskell-optics" = callPackage
+    ({ mkDerivation, base, containers, optics-core, template-haskell }:
+     mkDerivation {
+       pname = "template-haskell-optics";
+       version = "0.1";
+       sha256 = "019njh3w321dsyx892snxl16arypf04mw415s8f1771wcd3l4q8n";
+       libraryHaskellDepends = [
+         base containers optics-core template-haskell
+       ];
+       description = "Optics for template-haskell types";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "template-haskell-util" = callPackage
     ({ mkDerivation, base, GenericPretty, ghc-prim, template-haskell }:
      mkDerivation {
@@ -245257,6 +251266,8 @@ self: {
        ];
        description = "TensorFlow bindings";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {libtensorflow = null;};
 
   "tensorflow-core-ops" = callPackage
@@ -245277,6 +251288,8 @@ self: {
        ];
        description = "Haskell wrappers for Core Tensorflow Ops";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "tensorflow-logging" = callPackage
@@ -245305,6 +251318,8 @@ self: {
        ];
        description = "TensorBoard related functionality";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "tensorflow-mnist" = callPackage
@@ -245357,6 +251372,8 @@ self: {
        ];
        description = "Code generation for TensorFlow operations";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "tensorflow-ops" = callPackage
@@ -245386,6 +251403,8 @@ self: {
        ];
        description = "Friendly layer around TensorFlow bindings";
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "tensorflow-proto" = callPackage
@@ -245485,16 +251504,14 @@ self: {
      }) {};
 
   "termbox" = callPackage
-    ({ mkDerivation, array, base, c2hs }:
+    ({ mkDerivation, base }:
      mkDerivation {
        pname = "termbox";
-       version = "0.2.0";
-       sha256 = "04y1wj65c6nhv08jd83ihvph45fs5279px4ivm5cinnz5m721jqg";
+       version = "0.3.0";
+       sha256 = "1vi2ssylwvc6xqnhpnvc9q9c70glbf6s63rmyblc53g4qra2wkah";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ array base ];
-       libraryToolDepends = [ c2hs ];
-       executableHaskellDepends = [ base ];
+       libraryHaskellDepends = [ base ];
        description = "termbox bindings";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -245505,10 +251522,8 @@ self: {
     ({ mkDerivation, base, reactive-banana, termbox }:
      mkDerivation {
        pname = "termbox-banana";
-       version = "0.2.0";
-       sha256 = "1n4775ahmm4h1vn1michsqp5l2j62py5wddnvcipb8225dcq8xsi";
-       revision = "1";
-       editedCabalFile = "123hndfs6x2ljwfh7izpikyv5v2d9hq122ddkk5nncnpbnb4bba5";
+       version = "0.3.0";
+       sha256 = "07nn1jff33zb80vhzkw48fik5d5w7j7q982ihpsbb6gbqp5azx5s";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base reactive-banana termbox ];
@@ -245681,14 +251696,13 @@ self: {
      , focuslist, genvalidity-containers, genvalidity-hspec, gi-gdk
      , gi-gio, gi-glib, gi-gtk, gi-pango, gi-vte, gtk3, haskell-gi-base
      , hedgehog, inline-c, lens, mono-traversable, pcre2, pretty-simple
-     , QuickCheck, singletons, tasty, tasty-hedgehog, tasty-hspec
-     , template-haskell, text, transformers, vte_291, xml-conduit
-     , xml-html-qq, yaml
+     , QuickCheck, tasty, tasty-hedgehog, tasty-hspec, template-haskell
+     , text, transformers, vte_291, xml-conduit, xml-html-qq, yaml
      }:
      mkDerivation {
        pname = "termonad";
-       version = "3.1.0.1";
-       sha256 = "0arh308hyv6jxj6sjscfdi5n35n4mcxc8kqrjlk6054lm4b9yhxx";
+       version = "4.0.0.1";
+       sha256 = "0axsmlly8qa5rpakkp1iryypgzswpqjphcl0mgvwa34dsh2hqmyn";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -245698,8 +251712,7 @@ self: {
          data-default directory distributive dyre file-embed filepath
          focuslist gi-gdk gi-gio gi-glib gi-gtk gi-pango gi-vte
          haskell-gi-base inline-c lens mono-traversable pretty-simple
-         QuickCheck singletons text transformers xml-conduit xml-html-qq
-         yaml
+         QuickCheck text transformers xml-conduit xml-html-qq yaml
        ];
        libraryPkgconfigDepends = [ gtk3 pcre2 vte_291 ];
        executableHaskellDepends = [ base ];
@@ -245709,7 +251722,6 @@ self: {
        ];
        description = "Terminal emulator configurable in Haskell";
        license = stdenv.lib.licenses.bsd3;
-       maintainers = with stdenv.lib.maintainers; [ cdepillabout ];
      }) {inherit (pkgs) gtk3; inherit (pkgs) pcre2; 
          vte_291 = pkgs.vte;};
 
@@ -246333,6 +252345,30 @@ self: {
        broken = true;
      }) {};
 
+  "testcontainers" = callPackage
+    ({ mkDerivation, aeson, aeson-optics, base, bytestring, exceptions
+     , hspec, hspec-discover, mtl, network, optics-core, process
+     , resourcet, tasty, tasty-discover, tasty-hspec, tasty-hunit, text
+     , unliftio-core
+     }:
+     mkDerivation {
+       pname = "testcontainers";
+       version = "0.2.0.0";
+       sha256 = "0drdi2qqgiw499lwvkdc5yn8x7mys6l4p47jcz0af62fczpa5dnh";
+       libraryHaskellDepends = [
+         aeson aeson-optics base bytestring exceptions mtl network
+         optics-core process resourcet tasty text unliftio-core
+       ];
+       testHaskellDepends = [
+         base hspec tasty tasty-discover tasty-hspec tasty-hunit text
+       ];
+       testToolDepends = [ hspec-discover tasty-discover ];
+       description = "Docker containers for your integration tests";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "testing-feat" = callPackage
     ({ mkDerivation, base, QuickCheck, size-based
      , testing-type-modifiers
@@ -246523,6 +252559,29 @@ self: {
        license = stdenv.lib.licenses.gpl2;
      }) {};
 
+  "texmath_0_12_0_3" = 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.3";
+       sha256 = "06293ng7s9mn05vf5wlw2691gjzh6nmg717rxmbzr96zjv3731ri";
+       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
@@ -246605,12 +252664,12 @@ self: {
      }) {};
 
   "text-ansi" = callPackage
-    ({ mkDerivation, base, text, text-builder }:
+    ({ mkDerivation, base, text }:
      mkDerivation {
        pname = "text-ansi";
-       version = "0.1.0";
-       sha256 = "08klbx8jwam3ngxh8kv6z83yh5sbsyb0glycsb1w4zdr8ijsyd3z";
-       libraryHaskellDepends = [ base text text-builder ];
+       version = "0.1.0.1";
+       sha256 = "1qy5qqwm41xcxc5bs0aicdm40vnz1rm8mgmxzfxvjnwc9p28pyb3";
+       libraryHaskellDepends = [ base text ];
        description = "Text styling for ANSI terminals";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -246681,6 +252740,8 @@ self: {
        pname = "text-conversions";
        version = "0.3.0";
        sha256 = "089c56vdj9xysqfr1hnvbnrghlg83q6w10xk02gflpsidcpvwmhp";
+       revision = "1";
+       editedCabalFile = "1rw2fi2y77599zmkacf2y06jmxkasydmkkknkmg5xg29hw64a82i";
        libraryHaskellDepends = [
          base base16-bytestring base64-bytestring bytestring errors text
        ];
@@ -247250,8 +253311,8 @@ self: {
        pname = "text-show-instances";
        version = "3.8.3";
        sha256 = "11v335p3wzf9ijqlkls5mk4m16dfak8fckn4gj7mahs8c7l9lm5d";
-       revision = "5";
-       editedCabalFile = "1czi0gl7kxc64kk8v36xw2ln0vjj2pls3x9nmh754nvdg0616jfj";
+       revision = "6";
+       editedCabalFile = "1masflbb26zg8l0xiz2pzy6i9sh9pc3hqfd6y3vcvyxg0wg96cxf";
        libraryHaskellDepends = [
          base base-compat-batteries bifunctors binary containers directory
          ghc-boot-th haskeline hpc old-locale old-time pretty random
@@ -247294,8 +253355,8 @@ self: {
      }:
      mkDerivation {
        pname = "text-time";
-       version = "0.2.0";
-       sha256 = "14pk5h7mswdr6dpiw7m4z64dadgrdpw77inyq6kmwaskqc1whqng";
+       version = "0.3.1";
+       sha256 = "1p0vdhvpcz07wiam3hsi7fixknb6shxlhvg624vksacg06qkck41";
        libraryHaskellDepends = [ attoparsec base formatting text time ];
        testHaskellDepends = [
          attoparsec base Cabal formatting hspec QuickCheck text time
@@ -247975,8 +254036,8 @@ self: {
      }:
      mkDerivation {
        pname = "th-lift-instances";
-       version = "0.1.16";
-       sha256 = "08ivlz37ir2xyl8ch5x4n2gb34rgk5ryaybfr2xbfc4ah4zfjfav";
+       version = "0.1.17";
+       sha256 = "0k59j460dcr9vidmww2has78g3zx2wl0cjlpqc1laqai9w8klda5";
        libraryHaskellDepends = [
          base bytestring containers template-haskell text th-lift
          transformers vector
@@ -248137,6 +254198,26 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "th-test-utils_1_1_0" = callPackage
+    ({ mkDerivation, base, bytestring, tasty, tasty-golden, tasty-hunit
+     , template-haskell, th-orphans, transformers
+     }:
+     mkDerivation {
+       pname = "th-test-utils";
+       version = "1.1.0";
+       sha256 = "12a8yp9wfl40afa3ps8jg3axcaah018pangjm0fzzga2awr1wzwk";
+       libraryHaskellDepends = [
+         base template-haskell th-orphans transformers
+       ];
+       testHaskellDepends = [
+         base bytestring tasty tasty-golden tasty-hunit template-haskell
+         th-orphans transformers
+       ];
+       description = "Utility functions for testing Template Haskell code";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "th-to-exp" = callPackage
     ({ mkDerivation, base, hspec, template-haskell }:
      mkDerivation {
@@ -248238,15 +254319,15 @@ self: {
      }) {};
 
   "theatre" = callPackage
-    ({ mkDerivation, base, base-prelude, contravariant, semigroups
-     , slave-thread, unagi-chan
+    ({ mkDerivation, base, contravariant, semigroups, slave-thread
+     , unagi-chan
      }:
      mkDerivation {
        pname = "theatre";
-       version = "1";
-       sha256 = "1jwa4851rvac084gb70bqfwarwv6rjhqcs7b48md5kaad3zvgbd2";
+       version = "1.0.0.1";
+       sha256 = "0vcli8i0vrxv8fzjdyp684fvp7640xmwc3yawz12mfvxcpgrs2xq";
        libraryHaskellDepends = [
-         base base-prelude contravariant semigroups slave-thread unagi-chan
+         base contravariant semigroups slave-thread unagi-chan
        ];
        description = "Minimalistic actor library";
        license = stdenv.lib.licenses.mit;
@@ -248255,25 +254336,26 @@ self: {
      }) {};
 
   "themoviedb" = callPackage
-    ({ mkDerivation, aeson, base, binary, bytestring, http-client
-     , http-client-tls, http-types, mtl, tasty, tasty-hunit, text
-     , text-binary, time, time-locale-compat, transformers
+    ({ mkDerivation, aeson, base, http-client, http-client-tls
+     , http-types, mtl, relude, tasty, tasty-hunit, text, time
      }:
      mkDerivation {
        pname = "themoviedb";
-       version = "1.1.5.2";
-       sha256 = "0pp603wvq03m56w0y12abjqbfv712aj3k6ki69jq60l9pxj4nni4";
+       version = "1.2.0.0";
+       sha256 = "1dchnsk9mx2v01apj5ilnsl3w9vj6f5pkqrm9701zw7rcp7xds0w";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base binary bytestring http-client http-client-tls http-types
-         mtl text text-binary time time-locale-compat transformers
+         aeson base http-client http-client-tls http-types mtl relude text
+         time
        ];
        executableHaskellDepends = [
-         base text time time-locale-compat transformers
+         aeson base http-client http-client-tls http-types mtl relude text
+         time
        ];
        testHaskellDepends = [
-         base bytestring tasty tasty-hunit text time
+         aeson base http-client http-client-tls http-types mtl relude tasty
+         tasty-hunit text time
        ];
        description = "Haskell API bindings for http://themoviedb.org";
        license = stdenv.lib.licenses.mit;
@@ -248356,48 +254438,23 @@ self: {
      }) {};
 
   "these" = callPackage
-    ({ mkDerivation, aeson, assoc, base, base-compat, binary, deepseq
-     , hashable, QuickCheck, semigroupoids, unordered-containers
-     }:
+    ({ mkDerivation, assoc, base, binary, deepseq, hashable }:
      mkDerivation {
        pname = "these";
-       version = "1.0.1";
-       sha256 = "1k0pi65g7cm9hzdw6my6bzz2zvddkmj1qs45ymqmi316bpiixk3r";
-       revision = "4";
-       editedCabalFile = "06w5wyiq9cbbk1r9ga1ib2d8phlbs483kxp7ql8ygpapdd2a5nsq";
-       libraryHaskellDepends = [
-         aeson assoc base base-compat binary deepseq hashable QuickCheck
-         semigroupoids unordered-containers
-       ];
-       description = "An either-or-both data type";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "these_1_1" = callPackage
-    ({ mkDerivation, assoc, base, base-compat, binary, deepseq
-     , hashable
-     }:
-     mkDerivation {
-       pname = "these";
-       version = "1.1";
-       sha256 = "0dxi9jwahibn2sgnqsr5kgm91i2nqibzc4r4s04jwwpjwhcyn2xv";
-       libraryHaskellDepends = [
-         assoc base base-compat binary deepseq hashable
-       ];
+       version = "1.1.1.1";
+       sha256 = "027m1gd7i6jf2ppfkld9qrv3xnxg276587pmx10z9phpdvswk66p";
+       libraryHaskellDepends = [ assoc base binary deepseq hashable ];
        description = "An either-or-both data type";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "these-lens" = callPackage
-    ({ mkDerivation, base, base-compat, lens, these }:
+    ({ mkDerivation, base, lens, these }:
      mkDerivation {
        pname = "these-lens";
-       version = "1";
-       sha256 = "144ly13qng95mwnfis8dm7n3843z3w2vp4212qawbpw8hw921c7y";
-       revision = "3";
-       editedCabalFile = "0nb0irhnj9xvhnyl13bmp86my0idhhqslmszi3jvggr5sk3jzi8a";
-       libraryHaskellDepends = [ base base-compat lens these ];
+       version = "1.0.0.1";
+       sha256 = "15c05lgmlfm1pijsa3gfvmrsgmbfl5f7mpzzqasm72ip7y8la696";
+       libraryHaskellDepends = [ base lens these ];
        description = "Lenses for These";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -248507,14 +254564,15 @@ self: {
      }) {};
 
   "thread-hierarchy" = callPackage
-    ({ mkDerivation, base, containers, hspec, stm }:
+    ({ mkDerivation, base, containers, hspec, hspec-discover, stm }:
      mkDerivation {
        pname = "thread-hierarchy";
-       version = "0.3.0.1";
-       sha256 = "0d2wbm75f59vj1h18afdhb1wqyclv5gpgj6pyrhbcnf7aa2490c1";
+       version = "0.3.0.2";
+       sha256 = "1bhx1s7xwf4gb8qjbbifwl5cq3gfc1girrmzm4vr0fj05myk9xph";
        libraryHaskellDepends = [ base containers stm ];
        testHaskellDepends = [ base containers hspec stm ];
-       description = "Simple Haskel thread management in hierarchical manner";
+       testToolDepends = [ hspec-discover ];
+       description = "Simple Haskell thread management in hierarchical manner";
        license = stdenv.lib.licenses.mit;
      }) {};
 
@@ -248533,20 +254591,41 @@ self: {
 
   "thread-supervisor" = callPackage
     ({ mkDerivation, base, clock, containers, data-default, hspec
-     , QuickCheck, unliftio
+     , hspec-discover, QuickCheck, unliftio
      }:
      mkDerivation {
        pname = "thread-supervisor";
-       version = "0.1.0.0";
-       sha256 = "1gn2h4c84fdhppwjzkj9sr2rggc5q7193lf1n8c6ggzz6k2cj2rs";
+       version = "0.1.0.1";
+       sha256 = "0x10i81cvp5m5rx48mdhrxcs5rpcmbr2xrv3aq9s3lqdchy2vqzy";
+       libraryHaskellDepends = [
+         base clock containers data-default unliftio
+       ];
+       testHaskellDepends = [
+         base clock data-default hspec QuickCheck unliftio
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "A simplified implementation of Erlang/OTP like supervisor over thread";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "thread-supervisor_0_2_0_0" = callPackage
+    ({ mkDerivation, base, clock, containers, data-default, hspec
+     , hspec-discover, QuickCheck, unliftio
+     }:
+     mkDerivation {
+       pname = "thread-supervisor";
+       version = "0.2.0.0";
+       sha256 = "1k42k6c2h0xs7h4gcfsjghr5jp1q2w7ay1drlfw2ghl8zmfh2pnv";
        libraryHaskellDepends = [
          base clock containers data-default unliftio
        ];
        testHaskellDepends = [
          base clock data-default hspec QuickCheck unliftio
        ];
+       testToolDepends = [ hspec-discover ];
        description = "A simplified implementation of Erlang/OTP like supervisor over thread";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "threadPool" = callPackage
@@ -248724,8 +254803,10 @@ self: {
      }:
      mkDerivation {
        pname = "threepenny-gui";
-       version = "0.8.3.2";
-       sha256 = "0l18slr09dn4vq9avc1l724cqfv1xclx32f0gnvkcwksg6yjig0r";
+       version = "0.9.0.0";
+       sha256 = "0mvx661xk3nzvvxcda4vdk2ka7mff8jbpib1x59n230w80bc5sja";
+       revision = "1";
+       editedCabalFile = "0g07sdc3r1cg16m5nbhwaa95zr7kbzag60f8han5pnp67c79n67i";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -249101,18 +255182,17 @@ self: {
 
   "tidal" = callPackage
     ({ mkDerivation, base, bifunctors, bytestring, clock, colour
-     , containers, criterion, deepseq, hosc, microspec, mwc-random
-     , network, parsec, primitive, random, text, transformers, vector
-     , weigh
+     , containers, criterion, deepseq, hosc, microspec, network, parsec
+     , primitive, random, text, transformers, vector, weigh
      }:
      mkDerivation {
        pname = "tidal";
-       version = "1.4.9";
-       sha256 = "0np32jnvqmnnqy166a17i367c5j5xc9mniqzr0x76wk7mb5zlwzj";
+       version = "1.5.2";
+       sha256 = "03y1hfwc5frbqhcwvvfr6ykas0sy6pw982sgdgkvd3l0wbmnhdrz";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bifunctors bytestring clock colour containers deepseq hosc
-         mwc-random network parsec primitive random text transformers vector
+         network parsec primitive random text transformers vector
        ];
        testHaskellDepends = [ base containers microspec parsec ];
        benchmarkHaskellDepends = [ base criterion weigh ];
@@ -249120,21 +255200,21 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
-  "tidal_1_5_2" = callPackage
+  "tidal_1_6_1" = callPackage
     ({ mkDerivation, base, bifunctors, bytestring, clock, colour
      , containers, criterion, deepseq, hosc, microspec, network, parsec
      , primitive, random, text, transformers, vector, weigh
      }:
      mkDerivation {
        pname = "tidal";
-       version = "1.5.2";
-       sha256 = "03y1hfwc5frbqhcwvvfr6ykas0sy6pw982sgdgkvd3l0wbmnhdrz";
+       version = "1.6.1";
+       sha256 = "13n9s0s04bddl16xq86anz7a9fqcm7j3xfqn5y1mni5j1h7hn2k2";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bifunctors bytestring clock colour containers deepseq hosc
          network parsec primitive random text transformers vector
        ];
-       testHaskellDepends = [ base containers microspec parsec ];
+       testHaskellDepends = [ base containers deepseq microspec parsec ];
        benchmarkHaskellDepends = [ base criterion weigh ];
        description = "Pattern language for improvised music";
        license = stdenv.lib.licenses.gpl3;
@@ -249962,13 +256042,13 @@ self: {
      }) {};
 
   "timer-wheel" = callPackage
-    ({ mkDerivation, atomic-primops, base, psqueues, random, vector }:
+    ({ mkDerivation, atomic-primops, base, psqueues, vector }:
      mkDerivation {
        pname = "timer-wheel";
-       version = "0.2.0.1";
-       sha256 = "1m3bv095kbm4ksva3plhggkq2c0jf441wm994l57jfmlcng2i4xy";
+       version = "0.3.0";
+       sha256 = "16v663mcsj0h17x4jriq50dps3m3f8wqcsm19kl48vrs7f4mp07s";
        libraryHaskellDepends = [ atomic-primops base psqueues vector ];
-       testHaskellDepends = [ base random ];
+       testHaskellDepends = [ base ];
        description = "A timer wheel";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -249999,8 +256079,8 @@ self: {
      }:
      mkDerivation {
        pname = "timers";
-       version = "0.2.0.3";
-       sha256 = "0q4w41jdhf5ildcdl94lgfn06fg275hf04dpah3l6vva24d8alj5";
+       version = "0.2.0.4";
+       sha256 = "031jladbn54gr5jcljpw5r1hr82403gd6g9vszcv2pj8z82p21ab";
        libraryHaskellDepends = [
          base lifted-base monad-control suspend transformers-base
        ];
@@ -250127,22 +256207,28 @@ self: {
        broken = true;
      }) {};
 
-  "timezone-olson" = callPackage
-    ({ mkDerivation, base, binary, bytestring, extensible-exceptions
-     , time, timezone-series
+  "timezone-detect" = callPackage
+    ({ mkDerivation, base, directory, hspec, hspec-discover, time
+     , timezone-olson, timezone-series
      }:
      mkDerivation {
-       pname = "timezone-olson";
-       version = "0.1.9";
-       sha256 = "05abywx1nrcaz0nqzfy4zw62bc5qd7pdfnjvv4drxkwv084ha8rj";
+       pname = "timezone-detect";
+       version = "0.3.0.0";
+       sha256 = "10pv88wmz8zqr1h3zh66skbkma2zz3gvwjaalnpfz5ii2dgl27yy";
        libraryHaskellDepends = [
-         base binary bytestring extensible-exceptions time timezone-series
+         base time timezone-olson timezone-series
        ];
-       description = "A pure Haskell parser and renderer for binary Olson timezone files";
-       license = stdenv.lib.licenses.bsd3;
+       testHaskellDepends = [
+         base directory hspec time timezone-olson timezone-series
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Haskell bindings for the zone-detect C library; plus tz-aware utils";
+       license = stdenv.lib.licenses.gpl2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
-  "timezone-olson_0_2_0" = callPackage
+  "timezone-olson" = callPackage
     ({ mkDerivation, base, binary, bytestring, extensible-exceptions
      , time, timezone-series
      }:
@@ -250155,7 +256241,6 @@ self: {
        ];
        description = "A pure Haskell parser and renderer for binary Olson timezone files";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "timezone-olson-th" = callPackage
@@ -250171,6 +256256,8 @@ self: {
        ];
        description = "Load TimeZoneSeries from an Olson file at compile time";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "timezone-series" = callPackage
@@ -250217,6 +256304,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "tini" = callPackage
+    ({ mkDerivation, base, QuickCheck }:
+     mkDerivation {
+       pname = "tini";
+       version = "0.1.0.0";
+       sha256 = "0y0z2jqgkvfp1sk9ba5v46acdfa7q8kyhlwavknmjpmx3h82yjv6";
+       revision = "1";
+       editedCabalFile = "1s9drf14xkvrjdm7bd8k9swy0bvxxwfirmjzdwj96qmmrfjsrm83";
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base QuickCheck ];
+       description = "Tiny INI file and configuration library with a minimal dependency footprint";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "tintin" = callPackage
     ({ mkDerivation, base, clay, containers, data-has, directory
      , frontmatter, inflections, inliterate, lucid, optparse-generic
@@ -250544,7 +256647,7 @@ self: {
        sha256 = "1snw5cdkyqyninqqqwa6qfndfmwfr4lkdg0v94267g7xbwcqjj8h";
        libraryHaskellDepends = [ base containers network-uri text ];
        testHaskellDepends = [ base HUnit network-uri text ];
-       description = "This project separates subdomains, domains, and top-level-domains from URLs.";
+       description = "This project separates subdomains, domains, and top-level-domains from URLs";
        license = stdenv.lib.licenses.mit;
      }) {};
 
@@ -250573,6 +256676,29 @@ self: {
        broken = true;
      }) {};
 
+  "tldr_0_8_0" = callPackage
+    ({ mkDerivation, ansi-terminal, base, bytestring, cmark, containers
+     , directory, filepath, optparse-applicative, semigroups, tasty
+     , tasty-golden, text, typed-process
+     }:
+     mkDerivation {
+       pname = "tldr";
+       version = "0.8.0";
+       sha256 = "02by0mj2mk2k8xwcn92zd0cns8fj6fibi0wx5h2zlnm5aj53nffv";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-terminal base bytestring cmark containers directory filepath
+         optparse-applicative semigroups text typed-process
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [ base tasty tasty-golden ];
+       description = "Haskell tldr client";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "tls" = callPackage
     ({ mkDerivation, asn1-encoding, asn1-types, async, base, bytestring
      , cereal, cryptonite, data-default-class, gauge, hourglass, memory
@@ -250656,32 +256782,25 @@ self: {
      }) {};
 
   "tlynx" = callPackage
-    ({ mkDerivation, aeson, array, base, bytestring, comonad
+    ({ mkDerivation, aeson, attoparsec, base, bytestring, comonad
      , containers, elynx-tools, elynx-tree, gnuplot, lifted-async
-     , megaparsec, monad-logger, mwc-random, optparse-applicative
-     , parallel, primitive, scientific, statistics, text, transformers
-     , vector
+     , monad-logger, mwc-random, optparse-applicative, parallel
+     , statistics, text, transformers, vector
      }:
      mkDerivation {
        pname = "tlynx";
-       version = "0.2.2";
-       sha256 = "0hf70zvcndjmlwbd2n2ncbl89xi2xmkr7ymq48hmdlg3vp0bdz62";
+       version = "0.4.0";
+       sha256 = "1gsyyw8bvlc15z6hy7cd9w6v6wgjg9ra19w9vp6kajlyzyw5j1kw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson array base bytestring comonad containers elynx-tools
-         elynx-tree gnuplot lifted-async megaparsec monad-logger mwc-random
-         optparse-applicative parallel primitive scientific statistics text
-         transformers vector
-       ];
-       executableHaskellDepends = [
-         aeson array base bytestring comonad containers elynx-tools gnuplot
-         lifted-async megaparsec monad-logger mwc-random
-         optparse-applicative parallel primitive scientific statistics text
-         transformers vector
+         aeson attoparsec base bytestring comonad containers elynx-tools
+         elynx-tree gnuplot lifted-async monad-logger mwc-random
+         optparse-applicative parallel statistics text transformers vector
        ];
+       executableHaskellDepends = [ base ];
        description = "Handle phylogenetic trees";
-       license = stdenv.lib.licenses.gpl3;
+       license = stdenv.lib.licenses.gpl3Plus;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
      }) {};
@@ -250977,8 +257096,8 @@ self: {
        pname = "token-bucket";
        version = "0.1.0.1";
        sha256 = "1l3axqdkrjf28pxhrvdvlpf9wi79czsfvhi33w4v2wbj0g00j9ii";
-       revision = "5";
-       editedCabalFile = "049d9bk5f8qa6d7gjgg4nqd56xz1mrxr1rxcwxsrk4vkqcpmzs6q";
+       revision = "6";
+       editedCabalFile = "15p4iycphz4q58kgq00kmz0ik0hzv3vx47k2dkp93xavb0dny46v";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base time ];
        description = "Rate limiter using lazy bucket algorithm";
@@ -251214,38 +257333,36 @@ self: {
 
   "tomland" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, directory
-     , hashable, hedgehog, hspec-megaparsec, markdown-unlit, megaparsec
-     , mtl, parser-combinators, tasty, tasty-discover, tasty-hedgehog
-     , tasty-hspec, tasty-silver, text, time, transformers
-     , unordered-containers
+     , hashable, hedgehog, hspec, hspec-golden, hspec-hedgehog
+     , hspec-megaparsec, markdown-unlit, megaparsec, mtl
+     , parser-combinators, text, time, transformers
+     , unordered-containers, validation-selective
      }:
      mkDerivation {
        pname = "tomland";
-       version = "1.2.1.0";
-       sha256 = "0bzwmk3zw2lzhppgr73b5v3i4qz0hxn1zag665vpakq6knssj7qy";
-       revision = "1";
-       editedCabalFile = "00lb4ivrqrj5yqnfz5ji3vjaa284img9xhkjvrzc291bs83vl4kr";
+       version = "1.3.0.0";
+       sha256 = "15bzq3frgpqxvvs9r6x8fc66w6rixh81d19ps1x0hr46gcj7b1i4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring containers deepseq hashable megaparsec mtl
          parser-combinators text time transformers unordered-containers
+         validation-selective
        ];
        executableHaskellDepends = [
-         base containers hashable text time unordered-containers
+         base bytestring containers hashable text time unordered-containers
        ];
        executableToolDepends = [ markdown-unlit ];
        testHaskellDepends = [
-         base bytestring containers directory hashable hedgehog
-         hspec-megaparsec megaparsec tasty tasty-hedgehog tasty-hspec
-         tasty-silver text time unordered-containers
+         base bytestring containers directory hashable hedgehog hspec
+         hspec-golden hspec-hedgehog hspec-megaparsec megaparsec text time
+         unordered-containers
        ];
-       testToolDepends = [ tasty-discover ];
        description = "Bidirectional TOML serialization";
        license = stdenv.lib.licenses.mpl20;
      }) {};
 
-  "tomland_1_3_0_0" = callPackage
+  "tomland_1_3_1_0" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, directory
      , hashable, hedgehog, hspec, hspec-golden, hspec-hedgehog
      , hspec-megaparsec, markdown-unlit, megaparsec, mtl
@@ -251254,8 +257371,8 @@ self: {
      }:
      mkDerivation {
        pname = "tomland";
-       version = "1.3.0.0";
-       sha256 = "15bzq3frgpqxvvs9r6x8fc66w6rixh81d19ps1x0hr46gcj7b1i4";
+       version = "1.3.1.0";
+       sha256 = "17909a8aapbrsa0yb642ij80k64dg2dam1v3rsvc3rm07ik61x42";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -251522,8 +257639,8 @@ self: {
      }:
      mkDerivation {
        pname = "toolshed";
-       version = "0.18.0.1";
-       sha256 = "0sw7fxcqr1pfb7kjzvra56ji6nl02175rscb1s4bvw6rrq7xjb6v";
+       version = "0.18.0.2";
+       sha256 = "0iaq3fgx67w7jf3qc5rvxsnbc0y159psqd44klhm8lyvdb6rd4kh";
        libraryHaskellDepends = [
          array base containers data-default deepseq directory filepath
          QuickCheck random
@@ -252083,6 +258200,29 @@ self: {
        broken = true;
      }) {};
 
+  "tracing-control" = callPackage
+    ({ mkDerivation, aeson, base, base16-bytestring, bytestring
+     , case-insensitive, containers, hspec, http-client, lifted-base
+     , monad-control, mtl, network, random, stm, stm-lifted, text, time
+     , transformers, transformers-base
+     }:
+     mkDerivation {
+       pname = "tracing-control";
+       version = "0.0.6";
+       sha256 = "06hw4199yggvqlg3f1qhf67x8ij3v4kj5l79rhnngsqkpgl1yaww";
+       libraryHaskellDepends = [
+         aeson base base16-bytestring bytestring case-insensitive containers
+         http-client lifted-base monad-control mtl network random stm
+         stm-lifted text time transformers transformers-base
+       ];
+       testHaskellDepends = [
+         base containers hspec lifted-base monad-control mtl stm stm-lifted
+         text
+       ];
+       description = "Distributed tracing";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "tracked-files" = callPackage
     ({ mkDerivation, base, directory, hspec, process, text }:
      mkDerivation {
@@ -252169,6 +258309,40 @@ self: {
        broken = true;
      }) {};
 
+  "trade-journal" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cassava, containers
+     , data-default, gmp, hedgehog, here, HUnit, lens, megaparsec, mpfr
+     , mtl, optparse-applicative, pretty, pretty-show, profunctors
+     , split, tasty, tasty-hedgehog, tasty-hunit, text, time
+     , transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "trade-journal";
+       version = "0.0.1";
+       sha256 = "1zmpqwrgwf26l9gwcavhgq8d9w0bc9c5sjqkr0i7d1rbiqiqf94j";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring cassava containers data-default lens
+         megaparsec mtl pretty pretty-show profunctors split text time
+         transformers unordered-containers vector
+       ];
+       librarySystemDepends = [ gmp mpfr ];
+       executableHaskellDepends = [
+         aeson base bytestring cassava containers lens megaparsec mtl
+         optparse-applicative pretty-show text time transformers
+         unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base bytestring cassava containers hedgehog here HUnit lens
+         megaparsec mtl pretty-show tasty tasty-hedgehog tasty-hunit text
+         time transformers unordered-containers
+       ];
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {inherit (pkgs) gmp; inherit (pkgs) mpfr;};
+
   "traildb" = callPackage
     ({ mkDerivation, base, bytestring, cereal, containers, criterion
      , deepseq, directory, exceptions, Judy, primitive, profunctors
@@ -252387,8 +258561,8 @@ self: {
      }:
      mkDerivation {
        pname = "transformers-abort";
-       version = "0.6.0.1";
-       sha256 = "0qd4nzrmp03mbikwmvabbygx3dv9c2v7lpp2cvrz96y9gj0a3k2a";
+       version = "0.6.0.3";
+       sha256 = "0svqpgwkg06k2hnhxxlx4nwn45r52azqa2gnrz8j538k75kzlglq";
        libraryHaskellDepends = [
          base monad-control pointed semigroupoids transformers
          transformers-base
@@ -252590,20 +258764,20 @@ self: {
      }) {};
 
   "transient" = callPackage
-    ({ mkDerivation, atomic-primops, base, bytestring, containers
-     , directory, mtl, primitive, random, stm, time, transformers
+    ({ mkDerivation, base, bytestring, containers, directory, mtl
+     , random, stm, time, transformers
      }:
      mkDerivation {
        pname = "transient";
-       version = "0.6.3";
-       sha256 = "02zy60hilgagxa08j7bvd35wkpap5dzffc5af258hxiy0gdpdw0a";
+       version = "0.7.0.0";
+       sha256 = "11hiywgfv73bf128dd7h48790d356hl39fx3s54x3cri3gymwkkd";
        libraryHaskellDepends = [
-         atomic-primops base bytestring containers directory mtl primitive
-         random stm time transformers
+         base bytestring containers directory mtl random stm time
+         transformers
        ];
        testHaskellDepends = [
-         atomic-primops base bytestring containers directory mtl random stm
-         time transformers
+         base bytestring containers directory mtl random stm time
+         transformers
        ];
        description = "composing programs with multithreading, events and distributed computing";
        license = stdenv.lib.licenses.mit;
@@ -252612,34 +258786,37 @@ self: {
      }) {};
 
   "transient-universe" = callPackage
-    ({ mkDerivation, base, bytestring, case-insensitive, containers
-     , directory, filepath, hashable, HTTP, iproute, mtl, network
-     , network-info, network-uri, process, random, stm, TCache, text
-     , time, transformers, transient, vector, websockets
+    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
+     , case-insensitive, containers, directory, filepath, hashable, HTTP
+     , iproute, mtl, network, network-info, network-uri, old-time
+     , process, random, stm, TCache, text, time, transformers, transient
+     , vector, websockets
      }:
      mkDerivation {
        pname = "transient-universe";
-       version = "0.5.0.0";
-       sha256 = "1d3bp4xjpi28ph7fa9wm49ssg53jfvlq77ka0zvrkilw1j6f8v3l";
+       version = "0.6.0.1";
+       sha256 = "1dhgp2z0q90pnz13s88pbg6ppwl9ic7g04ikla3hg2jh019lgb1r";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base bytestring case-insensitive containers directory filepath
-         hashable HTTP iproute mtl network network-info network-uri process
-         random stm TCache text time transformers transient vector
-         websockets
+         aeson base base64-bytestring bytestring case-insensitive containers
+         directory filepath hashable HTTP iproute mtl network network-info
+         network-uri old-time process random stm TCache text time
+         transformers transient vector websockets
        ];
        executableHaskellDepends = [
-         base bytestring case-insensitive containers directory filepath
-         hashable HTTP mtl network network-info network-uri process random
-         stm TCache text time transformers transient vector websockets
+         aeson base base64-bytestring bytestring case-insensitive containers
+         directory filepath hashable HTTP mtl network network-info
+         network-uri old-time process random stm TCache text time
+         transformers transient vector websockets
        ];
        testHaskellDepends = [
-         base bytestring case-insensitive containers directory filepath
-         hashable HTTP mtl network network-info network-uri process random
-         stm TCache text time transformers transient vector websockets
+         aeson base base64-bytestring bytestring case-insensitive containers
+         directory filepath hashable HTTP mtl network network-info
+         network-uri old-time process random stm TCache text time
+         transformers transient vector websockets
        ];
-       description = "Remote execution and map-reduce: distributed computing for Transient";
+       description = "fully composable remote execution for the creation of distributed systems";
        license = stdenv.lib.licenses.mit;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -252997,8 +259174,8 @@ self: {
        pname = "tree-diff";
        version = "0.1";
        sha256 = "1156nbqn0pn9lp4zjsy4vv5g5wmy4zxwmbqdgvq349rydynh3ng3";
-       revision = "4";
-       editedCabalFile = "0zl94ppd94szvmqa7vnpbcr2zfppbqm4k6isidzks2mz2ji9dc1i";
+       revision = "5";
+       editedCabalFile = "1b60x9cgp7hn42hc97q866ybhg5hx3sp45j6gngpbwryg29r2p4h";
        libraryHaskellDepends = [
          aeson ansi-terminal ansi-wl-pprint base base-compat bytestring
          bytestring-builder containers hashable parsec parsers pretty
@@ -253051,17 +259228,16 @@ self: {
      }) {};
 
   "tree-sitter" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, containers, directory
-     , filepath, fused-effects, hedgehog, split, template-haskell, text
-     , unordered-containers
+    ({ mkDerivation, base, bytestring, containers, directory, filepath
+     , hedgehog, split, template-haskell, unordered-containers
      }:
      mkDerivation {
        pname = "tree-sitter";
-       version = "0.9.0.1";
-       sha256 = "1khkc2v87i9vgbakc3gh1rmrakz43n4lglx50vvckp192in4svzm";
+       version = "0.9.0.2";
+       sha256 = "1jw70m7z7yj4d2ivgynh8z7n5ndd978r21012hxj93sy87axz7mf";
        libraryHaskellDepends = [
-         aeson base bytestring containers directory filepath fused-effects
-         split template-haskell text unordered-containers
+         base bytestring containers directory filepath split
+         template-haskell unordered-containers
        ];
        testHaskellDepends = [ base hedgehog ];
        description = "Unstable bindings for the tree-sitter parsing library";
@@ -253072,8 +259248,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-go";
-       version = "0.5.0.1";
-       sha256 = "0v6vk0nqalk01xl0nmjmy4m14wmdij1cd1gs93is3gc3wvj0ljin";
+       version = "0.5.0.2";
+       sha256 = "0zl8q96xffi4cqd3yl44x64q9440qragg8735lzwwfl8nayx78bj";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for Go";
@@ -253084,8 +259260,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-haskell";
-       version = "0.3.0.0";
-       sha256 = "1hkxlhx3bm78p133cvimqjr8gl0arxdch0j33pz4dfg6fs8wbx1z";
+       version = "0.3.0.1";
+       sha256 = "194rws181v8pv3w9zxx9h8fqnilivwrdw27hwlps30kmmk26rraq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base tree-sitter ];
@@ -253097,8 +259273,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-java";
-       version = "0.7.0.1";
-       sha256 = "1z2x6nyl57xrnyf2jbkypg5zf8cw3rv9788piil6c30cyimbay4r";
+       version = "0.7.0.2";
+       sha256 = "1im1cwf20f02i244ggb5xl1cblkxr4rjk5h1c91vhzfv1hja37sn";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for Java";
@@ -253109,8 +259285,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-json";
-       version = "0.7.0.1";
-       sha256 = "1rb5g43z318pkwj4g4zqknxad3gwjpadr20vr3x6pif8zn5fc5ib";
+       version = "0.7.0.2";
+       sha256 = "02ly1dj4l8l1cvi5ymwqv85l0jdq9dixcpgqgyy1d744d214gg4g";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for JSON";
@@ -253121,8 +259297,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-php";
-       version = "0.4.0.0";
-       sha256 = "14qylmzcpn3zn35lbyimyy1sk5v34lqpdn2yn2ly3kg1cphkh50g";
+       version = "0.5.0.1";
+       sha256 = "05nfsw1mk27xiqr9ca8bky437xqin4zqb1mammcjpyi9qif9zzbh";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for PHP";
@@ -253133,8 +259309,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-python";
-       version = "0.9.0.2";
-       sha256 = "08k54r62hgdb2gpn8gv4nnr8sflcrkpfd1hmmzb552wzkaca9b1n";
+       version = "0.9.0.3";
+       sha256 = "1bjiddhm0zj01s7785xr7yldsbd1agbj4nc9cyxvkadxmf7cha7h";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for Python";
@@ -253145,8 +259321,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-ql";
-       version = "0.1.0.3";
-       sha256 = "0sxfjkdbajk3q5qpy0y51q1srvp3lnch1jvypppcz3ria59svhzx";
+       version = "0.1.0.4";
+       sha256 = "0pawzp1q160h6ccl2dkngrgkyxjs1szsyxjn55clbv4jla3zypni";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for QL";
@@ -253157,8 +259333,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-ruby";
-       version = "0.5.0.2";
-       sha256 = "143nh0c34gdhs9jz9vwmh6alds5n1771jzqaa2zf6pkvsc3cpsfp";
+       version = "0.5.0.3";
+       sha256 = "097wrscdjlr5nqyx2d3076gppfv3xm299b6iya5g50z24g5izfxn";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for Ruby";
@@ -253169,8 +259345,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-rust";
-       version = "0.1.0.0";
-       sha256 = "1ba8b19nq48fvfn5gcc15mbr65n9fxz4hx1b04h9fbmd4bx6haaj";
+       version = "0.1.0.1";
+       sha256 = "0h8dbr4pn1qnqlg0fs1f6jxasjpfjs4j6x4h86dhz6sw3fih9g00";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for Rust";
@@ -253181,8 +259357,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-tsx";
-       version = "0.5.0.1";
-       sha256 = "1pihhq3m8fhkrbqv8fl6l09hlzmwp10w119irhc05nmc2a6hq1jn";
+       version = "0.5.0.2";
+       sha256 = "0ir4n732wd5i6m8jkkrwah7091i147pxbaa2mpl56zg8nya52490";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for TSX";
@@ -253193,8 +259369,8 @@ self: {
     ({ mkDerivation, base, tree-sitter }:
      mkDerivation {
        pname = "tree-sitter-typescript";
-       version = "0.5.0.1";
-       sha256 = "069xal3kgbsw8swsw0q697c7h0n32fj2cf7wx1nsd79w87nkd80r";
+       version = "0.5.0.2";
+       sha256 = "0qlwiks80861f9prps4x5ag6ivi9ihp8rq416jmmgmc3bj72bkfi";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [ base tree-sitter ];
        description = "Tree-sitter grammar/parser for TypeScript";
@@ -253348,6 +259524,66 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "trek-app" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, async, base
+     , base64-bytestring, bytestring, cryptohash-sha256, directory
+     , filepath, hspec, hspec-discover, optparse-applicative
+     , optparse-generic, pg-transact, postgres-options
+     , postgresql-simple, postgresql-simple-opts, process, resource-pool
+     , semigroups, split, temporary, time, time-qq, tmp-postgres
+     , trek-db
+     }:
+     mkDerivation {
+       pname = "trek-app";
+       version = "0.1.0.0";
+       sha256 = "0ilnzmxxjaza1nbvp51j17s29a70m5n92vnbrz3ys1k41hw5qpby";
+       isLibrary = true;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty base base64-bytestring bytestring
+         cryptohash-sha256 directory filepath optparse-applicative
+         optparse-generic pg-transact postgres-options postgresql-simple
+         postgresql-simple-opts process semigroups split time trek-db
+       ];
+       executableHaskellDepends = [ base optparse-generic ];
+       testHaskellDepends = [
+         async base directory filepath hspec hspec-discover optparse-generic
+         postgres-options postgresql-simple postgresql-simple-opts
+         resource-pool split temporary time time-qq tmp-postgres trek-db
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "A PostgreSQL Database Migrator";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "trek-db" = callPackage
+    ({ mkDerivation, async, base, bytestring, containers
+     , cryptohash-sha1, hspec, hspec-discover, hspec-expectations-lifted
+     , pg-transact, postgresql-simple, resource-pool, semigroups, text
+     , time, time-qq, tmp-postgres
+     }:
+     mkDerivation {
+       pname = "trek-db";
+       version = "0.1.0.0";
+       sha256 = "13yc7d3a641nhfam9r05qqbfcmh61z27gsj3v3ldhli6ar3i1p92";
+       libraryHaskellDepends = [
+         base bytestring containers cryptohash-sha1 pg-transact
+         postgresql-simple semigroups text time
+       ];
+       testHaskellDepends = [
+         async base hspec hspec-discover hspec-expectations-lifted
+         pg-transact postgresql-simple resource-pool time-qq tmp-postgres
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "A PostgreSQL Database Migrator";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "trek-lens" = callPackage
     ({ mkDerivation, base, lens, logict, mtl, trek }:
      mkDerivation {
@@ -253388,6 +259624,44 @@ self: {
        broken = true;
      }) {};
 
+  "trial" = callPackage
+    ({ mkDerivation, base, colourista, dlist, doctest, hedgehog, hspec
+     , hspec-hedgehog, splitmix
+     }:
+     mkDerivation {
+       pname = "trial";
+       version = "0.0.0.0";
+       sha256 = "0lnq80983bg2cjim3fy8rwisn55f6acqwp67w7791kzfdwshxkww";
+       libraryHaskellDepends = [ base colourista dlist ];
+       testHaskellDepends = [
+         base dlist doctest hedgehog hspec hspec-hedgehog splitmix
+       ];
+       description = "Trial Data Structure";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
+  "trial-optparse-applicative" = callPackage
+    ({ mkDerivation, base, optparse-applicative, trial }:
+     mkDerivation {
+       pname = "trial-optparse-applicative";
+       version = "0.0.0.0";
+       sha256 = "1h8pfznf1dp9z3r2kl2ljgmxxkfp3va9yqba00fyvw85lna2aggn";
+       libraryHaskellDepends = [ base optparse-applicative trial ];
+       description = "Trial helper functions for optparse-applicative";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
+  "trial-tomland" = callPackage
+    ({ mkDerivation, base, text, tomland, trial }:
+     mkDerivation {
+       pname = "trial-tomland";
+       version = "0.0.0.0";
+       sha256 = "12klfq5ajn4bjrws633pfdc2zhpkwvwmrm7269xfh252fjwk1x23";
+       libraryHaskellDepends = [ base text tomland trial ];
+       description = "Trial helper functions for tomland";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
   "triangulation" = callPackage
     ({ mkDerivation, array, base, collada-types, haskell98, tuple
      , vector, vector-algorithms
@@ -253467,8 +259741,8 @@ self: {
        pname = "trifecta";
        version = "2.1";
        sha256 = "0fr326lzf38m20h2g4189nsyml9w3128924zbd3cd93cgfqcc9bs";
-       revision = "1";
-       editedCabalFile = "17s7wrc7zmvh1lf0ky96j7797rdgxrc10man8kf1nr24907pxw91";
+       revision = "2";
+       editedCabalFile = "17b0wxwgf52xdm597x0ybq1g2yrvfihl32jpd989xsm6n7s7y21a";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          ansi-terminal array base blaze-builder blaze-html blaze-markup
@@ -253642,8 +259916,8 @@ self: {
        pname = "true-name";
        version = "0.1.0.3";
        sha256 = "0s74fi3zfzk3apvwjz1c0k0ij24kdvlrn8lply9c04kyd20fyc66";
-       revision = "1";
-       editedCabalFile = "0x56r3wyrrsckx6kdvr4v9janrby5qa21fjqwg9k211765c9ddj6";
+       revision = "2";
+       editedCabalFile = "0rb9wbkbz6hsm9cz0j954a9hdyyw80r55vr99pp70ljf0ysgk9w2";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base containers template-haskell time ];
        description = "Template Haskell hack to violate module abstractions";
@@ -253980,6 +260254,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "ttc_0_2_3_0" = callPackage
+    ({ mkDerivation, base, bytestring, tasty, tasty-hunit
+     , template-haskell, text
+     }:
+     mkDerivation {
+       pname = "ttc";
+       version = "0.2.3.0";
+       sha256 = "0yp92aa62xzzgnlwaw45p8cp9m3w2mmpdr3r2h3zw3dcqvq6hx1l";
+       libraryHaskellDepends = [ base bytestring template-haskell text ];
+       testHaskellDepends = [
+         base bytestring tasty tasty-hunit template-haskell text
+       ];
+       description = "Textual Type Classes";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "ttl-hashtables" = callPackage
     ({ mkDerivation, base, clock, containers, data-default, failable
      , hashable, hashtables, hspec, mtl, transformers
@@ -254018,6 +260309,7 @@ self: {
        ];
        description = "Things Tracker Network JSON Types";
        license = stdenv.lib.licenses.bsd3;
+       maintainers = with stdenv.lib.maintainers; [ sorki ];
      }) {};
 
   "ttn-client" = callPackage
@@ -254411,29 +260703,49 @@ self: {
 
   "turtle" = callPackage
     ({ mkDerivation, ansi-wl-pprint, async, base, bytestring, clock
-     , containers, criterion, directory, doctest, exceptions, fail
-     , foldl, hostname, managed, optional-args, optparse-applicative
-     , process, semigroups, stm, streaming-commons, system-fileio
-     , system-filepath, temporary, text, time, transformers, unix
-     , unix-compat
+     , containers, criterion, directory, doctest, exceptions, foldl
+     , hostname, managed, optional-args, optparse-applicative, process
+     , stm, streaming-commons, system-fileio, system-filepath, temporary
+     , text, time, transformers, unix, unix-compat
      }:
      mkDerivation {
        pname = "turtle";
-       version = "1.5.19";
-       sha256 = "06hxmhz1i6f5r8k3bf5h54g4ahjsvxhv44sa4xiy52rz6qp0211g";
+       version = "1.5.20";
+       sha256 = "1dk8ddp1p77l7gbg81ryqrkaxhrj3an24mx572b5wmhmjmbjfk9l";
        libraryHaskellDepends = [
          ansi-wl-pprint async base bytestring clock containers directory
          exceptions foldl hostname managed optional-args
-         optparse-applicative process semigroups stm streaming-commons
-         system-fileio system-filepath temporary text time transformers unix
-         unix-compat
+         optparse-applicative process stm streaming-commons system-fileio
+         system-filepath temporary text time transformers unix unix-compat
        ];
-       testHaskellDepends = [
-         base doctest fail system-filepath temporary
+       testHaskellDepends = [ base doctest system-filepath temporary ];
+       benchmarkHaskellDepends = [ base criterion text ];
+       description = "Shell programming, Haskell-style";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
+  "turtle_1_5_21" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, async, base, bytestring, clock
+     , containers, criterion, directory, doctest, exceptions, foldl
+     , hostname, managed, optional-args, optparse-applicative, process
+     , stm, streaming-commons, system-fileio, system-filepath, temporary
+     , text, time, transformers, unix, unix-compat
+     }:
+     mkDerivation {
+       pname = "turtle";
+       version = "1.5.21";
+       sha256 = "0sb1xnmvqby1lcg3p92v0nkpxnm2qk0gcn41mxxgp3xdm24vkz36";
+       libraryHaskellDepends = [
+         ansi-wl-pprint async base bytestring clock containers directory
+         exceptions foldl hostname managed optional-args
+         optparse-applicative process stm streaming-commons system-fileio
+         system-filepath temporary text time transformers unix unix-compat
        ];
+       testHaskellDepends = [ base doctest system-filepath temporary ];
        benchmarkHaskellDepends = [ base criterion text ];
        description = "Shell programming, Haskell-style";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "turtle-options" = callPackage
@@ -254494,6 +260806,8 @@ self: {
        ];
        description = "An equational theorem prover";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "twee-lib" = callPackage
@@ -254619,7 +260933,7 @@ self: {
        libraryHaskellDepends = [
          base twentefp-eventloop-graphics twentefp-number
        ];
-       description = "RoseTree type and show functions for lab assignment of University of Twente.";
+       description = "RoseTree type and show functions for lab assignment of University of Twente";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -254872,8 +261186,8 @@ self: {
      }:
      mkDerivation {
        pname = "twirp";
-       version = "0.2.0.0";
-       sha256 = "00dc6bil998fdvb5p0r2782cy3nknw6s8k5a0cv4yqmha4iyn32m";
+       version = "0.2.0.1";
+       sha256 = "05np0zvnvy8wrm9lirrkwhd0n8f44j4xwr6lrywxxy9r00mx8bbl";
        libraryHaskellDepends = [
          aeson base bytestring http-media http-types proto-lens
          proto-lens-jsonpb proto-lens-runtime servant text wai
@@ -254884,6 +261198,8 @@ self: {
        ];
        description = "Haskell twirp foundations";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "twisty" = callPackage
@@ -255360,6 +261676,8 @@ self: {
        pname = "type-errors";
        version = "0.2.0.0";
        sha256 = "1d1fi4ij18q39rpibc056mgvly75zqixkba4l8bn307c62f50k8p";
+       revision = "1";
+       editedCabalFile = "157fjnr98fn5943siqwk1rd2wwnzd7nlbkbkzvdqv7d723cmh126";
        libraryHaskellDepends = [
          base first-class-families syb template-haskell th-abstraction
        ];
@@ -255658,6 +261976,25 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "type-natural_0_9_0_0" = callPackage
+    ({ mkDerivation, base, constraints, equational-reasoning
+     , ghc-typelits-natnormalise, ghc-typelits-presburger, singletons
+     , singletons-presburger, template-haskell
+     }:
+     mkDerivation {
+       pname = "type-natural";
+       version = "0.9.0.0";
+       sha256 = "1jg8qqha60mxj7mrbi69jbcniayksyggi2s7fxy88ap4ay1hky3a";
+       libraryHaskellDepends = [
+         base constraints equational-reasoning ghc-typelits-natnormalise
+         ghc-typelits-presburger singletons singletons-presburger
+         template-haskell
+       ];
+       description = "Type-level natural and proofs of their properties";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "type-of-html" = callPackage
     ({ mkDerivation, base, blaze-html, bytestring, containers
      , criterion, deepseq, double-conversion, ghc, ghc-paths, ghc-prim
@@ -255975,8 +262312,8 @@ self: {
      }:
      mkDerivation {
        pname = "typed-encoding";
-       version = "0.4.1.0";
-       sha256 = "00zyza0n7gc2jqlwcwl1lj6zfsl10j2b4d0d8axycl20b9g0a5xs";
+       version = "0.5.0.0";
+       sha256 = "05hzcyp1lsf3dakdv3kqdl0hw6pz5mzh644d3k8lasrhrmx8l583";
        libraryHaskellDepends = [
          base base64-bytestring bytestring symbols text
        ];
@@ -256373,8 +262710,8 @@ self: {
      }:
      mkDerivation {
        pname = "typesafe-precure";
-       version = "0.7.7.1";
-       sha256 = "0yjw4fm7n7qdb9rib7q5nirnw0cdvqy2g05lidxw5pkgdbi9np3m";
+       version = "0.7.9.1";
+       sha256 = "0vw0mbkii7j5rr5fp370j8grq355cg0ddw55f24gbjw1z0wc71hx";
        libraryHaskellDepends = [
          aeson aeson-pretty autoexporter base bytestring dlist
          monad-skeleton template-haskell text th-data-compat
@@ -256704,14 +263041,14 @@ self: {
      }:
      mkDerivation {
        pname = "ucd";
-       version = "0.0.1.3";
-       sha256 = "1za494jgm3zml4ik203863kwni6pz5dsw6ssn06bjbyk7l7pbg33";
+       version = "0.0.1.4";
+       sha256 = "0a4zzfz4dz8zxn8idnbd4zbhia5b8qf7pgdc9vrffwrx57nlin4a";
        setupHaskellDepends = [
          base Cabal containers directory regex-applicative util
        ];
-       libraryHaskellDepends = [ base util ];
-       testHaskellDepends = [ base util ];
-       benchmarkHaskellDepends = [ base gauge util ];
+       libraryHaskellDepends = [ base ];
+       testHaskellDepends = [ base ];
+       benchmarkHaskellDepends = [ base gauge ];
        description = "Unicode Character Database — Predicates on characters specified by Unicode";
        license = stdenv.lib.licenses.bsd3;
      }) {};
@@ -257037,8 +263374,8 @@ self: {
     ({ mkDerivation, base, io-streams, unagi-chan }:
      mkDerivation {
        pname = "unagi-streams";
-       version = "0.2.6";
-       sha256 = "1mw5h7dizrh4bg1avah201chfl96lapaj3141czfs9w8hyq4lp9h";
+       version = "0.2.7";
+       sha256 = "11vr8zxyksqb2np6f77d9ai6xrb7fpfjbgv191h3pppcanysm4w3";
        libraryHaskellDepends = [ base io-streams unagi-chan ];
        description = "Unagi Chan IO-Streams";
        license = stdenv.lib.licenses.bsd3;
@@ -257073,26 +263410,18 @@ self: {
      }) {};
 
   "unbeliever" = callPackage
-    ({ mkDerivation, async, base, bytestring, chronologique, containers
-     , core-data, core-program, core-text, deepseq, directory
-     , exceptions, filepath, fingertree, fsnotify, gauge, hashable
-     , hourglass, hspec, megaparsec, mtl, prettyprinter
-     , prettyprinter-ansi-terminal, safe-exceptions, scientific, stm
-     , template-haskell, terminal-size, text, text-short, transformers
-     , unix, unordered-containers
+    ({ mkDerivation, base, bytestring, core-data, core-program
+     , core-text, fingertree, gauge, hashable, hspec, safe-exceptions
+     , text, text-short
      }:
      mkDerivation {
        pname = "unbeliever";
-       version = "0.10.0.5";
-       sha256 = "1h0zy19vfhg1x671yhfsr1rbpr7c9jhbr0lxhj7cb25jm94hjajw";
+       version = "0.10.0.6";
+       sha256 = "08rw2krphvs2z0ic19mfwlz3fcmpnbwbpvp7ks22pasi2zy45sb2";
        libraryHaskellDepends = [ base core-data core-program core-text ];
        testHaskellDepends = [
-         async base bytestring chronologique containers core-data
-         core-program core-text deepseq directory exceptions filepath
-         fingertree fsnotify hashable hourglass hspec megaparsec mtl
-         prettyprinter prettyprinter-ansi-terminal safe-exceptions
-         scientific stm template-haskell terminal-size text text-short
-         transformers unix unordered-containers
+         base bytestring core-data core-program core-text fingertree
+         hashable hspec safe-exceptions text text-short
        ];
        benchmarkHaskellDepends = [
          base bytestring core-data core-program core-text gauge text
@@ -257100,6 +263429,8 @@ self: {
        doHaddock = false;
        description = "Opinionated Haskell Interoperability";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "unbound" = callPackage
@@ -257376,8 +263707,8 @@ self: {
        pname = "unfoldable";
        version = "1.0";
        sha256 = "0ilzv4ks76f9fx12ilsam0v232fm2mvvsz6s50p0nllldwgkgm6a";
-       revision = "1";
-       editedCabalFile = "167jqv6cw9d1c9n0j2sxp5asaaqbh6ay3g8nyg8ndy96jnjb34zb";
+       revision = "2";
+       editedCabalFile = "0lnqjgh8nyq6w94swn0m7syl0bx6a2ml7s9sqp449inpdb8f8jaj";
        libraryHaskellDepends = [
          base containers ghc-prim one-liner QuickCheck random transformers
        ];
@@ -257626,22 +263957,22 @@ self: {
      }) {};
 
   "unicode-transforms" = callPackage
-    ({ mkDerivation, base, bitarray, bytestring, deepseq, filepath
-     , gauge, getopt-generics, optparse-applicative, path, path-io
-     , QuickCheck, split, text
+    ({ mkDerivation, base, bytestring, deepseq, filepath, gauge
+     , getopt-generics, ghc-prim, hspec, path, path-io, QuickCheck
+     , split, text
      }:
      mkDerivation {
        pname = "unicode-transforms";
-       version = "0.3.6";
-       sha256 = "1akscvyssif4hki3g6hy0jmjyr8cqly1whzvzj0km2b3qh0x09l3";
+       version = "0.3.7";
+       sha256 = "0pgxb4znvr39n0f7y5q0bdajc4l96zsih0a43n90qjlhj9084rp8";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base bitarray bytestring text ];
+       libraryHaskellDepends = [ base bytestring ghc-prim text ];
        testHaskellDepends = [
-         base deepseq getopt-generics QuickCheck split text
+         base deepseq getopt-generics hspec QuickCheck split text
        ];
        benchmarkHaskellDepends = [
-         base deepseq filepath gauge optparse-applicative path path-io text
+         base deepseq filepath gauge path path-io text
        ];
        description = "Unicode normalization";
        license = stdenv.lib.licenses.bsd3;
@@ -257942,6 +264273,124 @@ self: {
        broken = true;
      }) {};
 
+  "uniqueness-periods" = callPackage
+    ({ mkDerivation, base, mmsyn6ukr, vector }:
+     mkDerivation {
+       pname = "uniqueness-periods";
+       version = "0.2.0.0";
+       sha256 = "1r5wnc9gdinxigqf9sb58k8rvbkbqmn71d2gxpg1xz3fgxs35cqq";
+       libraryHaskellDepends = [ base mmsyn6ukr vector ];
+       description = "Can be used to produce the 'uniquenessPeriods' function and related functionality";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "uniqueness-periods-general" = callPackage
+    ({ mkDerivation, base, vector }:
+     mkDerivation {
+       pname = "uniqueness-periods-general";
+       version = "0.2.0.0";
+       sha256 = "117svylwp76rgygc1fa871qz0ghv5hsfj7lr63zy1r3zcakak45q";
+       libraryHaskellDepends = [ base vector ];
+       description = "Can be used to produce the similar to 'String.Ukrainian.UniquenessPeriods' functions.";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "uniqueness-periods-vector" = callPackage
+    ({ mkDerivation, base, vector }:
+     mkDerivation {
+       pname = "uniqueness-periods-vector";
+       version = "0.3.0.0";
+       sha256 = "139xs292irnsw7574nsrpw5dqsg0g7j71p2jvq6h2bl9wnndsi8b";
+       libraryHaskellDepends = [ base vector ];
+       description = "Generalization of the uniqueness-periods and uniqueness-periods-general packages functionality";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "uniqueness-periods-vector-common" = callPackage
+    ({ mkDerivation, base, vector }:
+     mkDerivation {
+       pname = "uniqueness-periods-vector-common";
+       version = "0.3.0.0";
+       sha256 = "1dw1j10ambqcjr42jb5p9kwdzpz943dw6pgiivxs41iq2w6nibp6";
+       libraryHaskellDepends = [ base vector ];
+       description = "Generalization of the dobutokO-poetry-general package functionality";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "uniqueness-periods-vector-examples" = callPackage
+    ({ mkDerivation, base, mmsyn6ukr, parallel
+     , phonetic-languages-ukrainian, print-info
+     , uniqueness-periods-vector, uniqueness-periods-vector-common
+     , uniqueness-periods-vector-filters
+     , uniqueness-periods-vector-general
+     , uniqueness-periods-vector-properties
+     , uniqueness-periods-vector-stats, vector
+     }:
+     mkDerivation {
+       pname = "uniqueness-periods-vector-examples";
+       version = "0.6.1.0";
+       sha256 = "1l1vb0awbgdv2vfkzzl4qmd29xkmncim8zjsf4936vr1q6va1v0m";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base mmsyn6ukr parallel phonetic-languages-ukrainian print-info
+         uniqueness-periods-vector uniqueness-periods-vector-common
+         uniqueness-periods-vector-filters uniqueness-periods-vector-general
+         uniqueness-periods-vector-properties
+         uniqueness-periods-vector-stats vector
+       ];
+       description = "Examples of usage for the uniqueness-periods-vector series of packages";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "uniqueness-periods-vector-filters" = callPackage
+    ({ mkDerivation, base, mmsyn2, vector }:
+     mkDerivation {
+       pname = "uniqueness-periods-vector-filters";
+       version = "0.2.0.0";
+       sha256 = "0xzc5nymcgvr0n90266fwzy1c6kwv28wmxhwpq8yl1jjsj99dsbm";
+       libraryHaskellDepends = [ base mmsyn2 vector ];
+       description = "A library allows to change the structure of the 'RealFrac' function output";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "uniqueness-periods-vector-general" = callPackage
+    ({ mkDerivation, base, print-info, uniqueness-periods-vector-common
+     , vector
+     }:
+     mkDerivation {
+       pname = "uniqueness-periods-vector-general";
+       version = "0.4.2.0";
+       sha256 = "1ixw5lf2p4wnjsm9989nvsp01aznirb2awhasvlbp0bhgqaj0zmq";
+       libraryHaskellDepends = [
+         base print-info uniqueness-periods-vector-common vector
+       ];
+       description = "Generalization of the functionality of the dobutokO-poetry-general-languages package";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "uniqueness-periods-vector-properties" = callPackage
+    ({ mkDerivation, base, uniqueness-periods-vector, vector }:
+     mkDerivation {
+       pname = "uniqueness-periods-vector-properties";
+       version = "0.3.1.0";
+       sha256 = "0dpbda0p0f6mw5akyfvlj02ih59x0ajmbm3mnykw43xql8jvjarw";
+       libraryHaskellDepends = [ base uniqueness-periods-vector vector ];
+       description = "Metrices for the maximum element for the uniqueness-periods-vector packages family";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "uniqueness-periods-vector-stats" = callPackage
+    ({ mkDerivation, base, ghc-prim }:
+     mkDerivation {
+       pname = "uniqueness-periods-vector-stats";
+       version = "0.1.2.0";
+       sha256 = "1k98rdjq4i38lrnradfpdzk25b312h65m4mzbyjjzn7hzfra86gn";
+       libraryHaskellDepends = [ base ghc-prim ];
+       description = "A very basic descriptive statistics";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "unit" = callPackage
     ({ mkDerivation, base, hspec }:
      mkDerivation {
@@ -257972,8 +264421,8 @@ self: {
      }:
      mkDerivation {
        pname = "units";
-       version = "2.4.1.2";
-       sha256 = "0ipjkwcawchgfbldm56y6xb31qs6ifj7lvw4xabl2jjb6j5f0sr6";
+       version = "2.4.1.3";
+       sha256 = "1ksrw65ci9j8qnqj6cxpdmdb9b3k4k9w8ld3j4h00r2vkcqgn9qg";
        libraryHaskellDepends = [
          base containers deepseq lens linear mtl multimap singletons syb
          template-haskell th-desugar units-parser vector-space
@@ -258311,6 +264760,32 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "universum_1_7_1" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, doctest
+     , gauge, ghc-prim, Glob, hashable, hedgehog, microlens
+     , microlens-mtl, mtl, safe-exceptions, stm, tasty, tasty-hedgehog
+     , text, transformers, unordered-containers, utf8-string, vector
+     }:
+     mkDerivation {
+       pname = "universum";
+       version = "1.7.1";
+       sha256 = "0jsdzhy0h5d6znnrdgzr29b6qkriidck5s6yp52pci30rfv1d29z";
+       libraryHaskellDepends = [
+         base bytestring containers deepseq ghc-prim hashable microlens
+         microlens-mtl mtl safe-exceptions stm text transformers
+         unordered-containers utf8-string vector
+       ];
+       testHaskellDepends = [
+         base bytestring doctest Glob hedgehog tasty tasty-hedgehog text
+       ];
+       benchmarkHaskellDepends = [
+         base containers gauge text unordered-containers
+       ];
+       description = "Custom prelude used in Serokell";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "unix_2_7_2_2" = callPackage
     ({ mkDerivation, base, bytestring, time }:
      mkDerivation {
@@ -258658,6 +265133,29 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "unordered-containers_0_2_12_0" = callPackage
+    ({ mkDerivation, base, bytestring, ChasingBottoms, containers
+     , deepseq, gauge, hashable, hashmap, HUnit, mtl, QuickCheck, random
+     , test-framework, test-framework-hunit, test-framework-quickcheck2
+     }:
+     mkDerivation {
+       pname = "unordered-containers";
+       version = "0.2.12.0";
+       sha256 = "085x73b2cfab85nkbwmcvc5i6v8kbnpbiv35gnmgw44zlm7an7a8";
+       libraryHaskellDepends = [ base deepseq hashable ];
+       testHaskellDepends = [
+         base ChasingBottoms containers hashable HUnit QuickCheck random
+         test-framework test-framework-hunit test-framework-quickcheck2
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring containers deepseq gauge hashable hashmap mtl
+         random
+       ];
+       description = "Efficient hashing-based container types";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "unordered-containers-rematch" = callPackage
     ({ mkDerivation, base, hashable, hspec, HUnit, rematch
      , unordered-containers
@@ -259043,8 +265541,8 @@ self: {
      }:
      mkDerivation {
        pname = "up";
-       version = "1.0.0.5";
-       sha256 = "1b41pqj2v6j0vgj7j18wlparbbkvf92xcfr59lvgf9k8xvarl43k";
+       version = "2.0.0.0";
+       sha256 = "1m07w91dq5db5kjv5w4m5hvh6a19rv4m9vz3pq80zng2c1w4qyb8";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -259081,25 +265579,24 @@ self: {
      }) {};
 
   "update-nix-fetchgit" = callPackage
-    ({ mkDerivation, aeson, ansi-wl-pprint, async, base, bytestring
-     , data-fix, errors, hnix, process, text, time, transformers
-     , trifecta, uniplate, utf8-string
+    ({ mkDerivation, aeson, async, base, bytestring, data-fix, errors
+     , hnix, prettyprinter, process, text, time, transformers, trifecta
+     , uniplate, utf8-string
      }:
      mkDerivation {
        pname = "update-nix-fetchgit";
-       version = "0.1.0.0";
-       sha256 = "1chl1a4vjd9iqyd2kp67f9v8h260c6jlfzcr8m11x0w0h592ly52";
+       version = "0.1.1.0";
+       sha256 = "0zk4rgpdgn2wa6x4js7sgxpa9gfly2fwd1vws5m73kh61ja7286h";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson ansi-wl-pprint async base bytestring data-fix errors hnix
+         aeson async base bytestring data-fix errors hnix prettyprinter
          process text time transformers trifecta uniplate utf8-string
        ];
        executableHaskellDepends = [ base text ];
        description = "A program to update fetchgit values in Nix expressions";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
+       maintainers = with stdenv.lib.maintainers; [ sorki ];
      }) {};
 
   "update-repos" = callPackage
@@ -259172,21 +265669,6 @@ self: {
      }:
      mkDerivation {
        pname = "urbit-hob";
-       version = "0.3.2";
-       sha256 = "0zs9gwnik7l587apf4giiii6jc4l6a7gj3ygfcab1gd58wfwwm6f";
-       libraryHaskellDepends = [ base bytestring murmur3 text vector ];
-       testHaskellDepends = [ base hspec hspec-core QuickCheck text ];
-       benchmarkHaskellDepends = [ base criterion deepseq ];
-       description = "Hoon-style atom manipulation and printing functions";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "urbit-hob_0_3_3" = callPackage
-    ({ mkDerivation, base, bytestring, criterion, deepseq, hspec
-     , hspec-core, murmur3, QuickCheck, text, vector
-     }:
-     mkDerivation {
-       pname = "urbit-hob";
        version = "0.3.3";
        sha256 = "1w38bsjis13lh6jry2rln3xbc9ap7lk3dhi6rb6kddashjyibfr0";
        libraryHaskellDepends = [ base bytestring murmur3 text vector ];
@@ -259194,7 +265676,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion deepseq ];
        description = "Hoon-style atom manipulation and printing functions";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "ureader" = callPackage
@@ -259289,19 +265770,6 @@ self: {
     ({ mkDerivation, aeson, base, bytestring, text, uri-bytestring }:
      mkDerivation {
        pname = "uri-bytestring-aeson";
-       version = "0.1.0.7";
-       sha256 = "16zg0fsxzdii72119jyhn2g2gy7j6pk7r8i7w5hk9a353kmvb43y";
-       libraryHaskellDepends = [
-         aeson base bytestring text uri-bytestring
-       ];
-       description = "Aeson instances for URI Bytestring";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "uri-bytestring-aeson_0_1_0_8" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, text, uri-bytestring }:
-     mkDerivation {
-       pname = "uri-bytestring-aeson";
        version = "0.1.0.8";
        sha256 = "02bm5r0i1anwy3wv2xdfhnsmmgllv5vs7npy01fpmp91x7dcqak1";
        libraryHaskellDepends = [
@@ -259309,7 +265777,6 @@ self: {
        ];
        description = "Aeson instances for URI Bytestring";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "uri-conduit" = callPackage
@@ -259336,8 +265803,8 @@ self: {
      }:
      mkDerivation {
        pname = "uri-encode";
-       version = "1.5.0.5";
-       sha256 = "11miwb5vvnn17m92ykz1pzg9x6s8fbpz3mmsyqs2s4b3mn55haz8";
+       version = "1.5.0.6";
+       sha256 = "1w74dqvcl0s26p1s7rszmfj3zphv4bcflpp54iq1kxsrqpd1bbv8";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -259347,6 +265814,27 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "uri-encoder" = callPackage
+    ({ mkDerivation, base, bytestring, criterion, network-uri
+     , QuickCheck, quickcheck-instances, vector
+     }:
+     mkDerivation {
+       pname = "uri-encoder";
+       version = "0.0.0.0";
+       sha256 = "0nrvk039k0pr79nbp78rhav46q2hsns23zzlfgzn878w6shzhyxs";
+       libraryHaskellDepends = [ base bytestring vector ];
+       testHaskellDepends = [
+         base bytestring QuickCheck quickcheck-instances vector
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring criterion network-uri
+       ];
+       description = "A uri encoder to make your strings less readable";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "uri-enumerator" = callPackage
     ({ mkDerivation, base, bytestring, containers, enumerator, failure
      , network, text, transformers
@@ -259455,6 +265943,31 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "url-bytes" = callPackage
+    ({ mkDerivation, base, byteslice, bytesmith, bytestring, deepseq
+     , gauge, HUnit, primitive, tasty, tasty-hunit, template-haskell
+     , uri-bytestring, weigh
+     }:
+     mkDerivation {
+       pname = "url-bytes";
+       version = "0.1.0.0";
+       sha256 = "0nbxnmz1m2icg3vvdndr4zydwr8nbgxhb70ak2jzc6d92c3vhvqi";
+       libraryHaskellDepends = [
+         base byteslice bytesmith primitive template-haskell
+       ];
+       testHaskellDepends = [
+         base byteslice HUnit primitive tasty tasty-hunit
+       ];
+       benchmarkHaskellDepends = [
+         base byteslice bytestring deepseq gauge primitive uri-bytestring
+         weigh
+       ];
+       description = "Memory efficient url type and parser";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "url-decoders" = callPackage
     ({ mkDerivation, base, base-prelude, binary-parser, bytestring
      , criterion, http-types, QuickCheck, quickcheck-instances, rerebase
@@ -259760,6 +266273,8 @@ self: {
        executableHaskellDepends = [ base random-fu text ];
        description = "A collection of user agents";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "userid" = callPackage
@@ -259880,8 +266395,6 @@ self: {
        ];
        description = "A pragmatic time and date library";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
      }) {};
 
   "utf" = callPackage
@@ -260219,15 +266732,16 @@ self: {
      }) {};
 
   "uuagc" = callPackage
-    ({ mkDerivation, array, base, containers, directory, filepath
-     , ghc-prim, haskell-src-exts, mtl, uuagc-cabal, uulib
+    ({ mkDerivation, array, base, Cabal, containers, directory
+     , filepath, ghc-prim, haskell-src-exts, mtl, uuagc-cabal, uulib
      }:
      mkDerivation {
        pname = "uuagc";
-       version = "0.9.52.2";
-       sha256 = "1wqva95nmz9yx9b60jjwkpb73pq9m4g9l4iq739xnj6llwckpb8y";
+       version = "0.9.53";
+       sha256 = "0cij4kf8f2151xz2q935bn9bhrqig9alc008vds7cw6pkb32ngz6";
        isLibrary = true;
        isExecutable = true;
+       setupHaskellDepends = [ base Cabal ];
        libraryHaskellDepends = [
          array base containers directory filepath ghc-prim haskell-src-exts
          mtl uuagc-cabal uulib
@@ -260269,8 +266783,8 @@ self: {
      }:
      mkDerivation {
        pname = "uuagc-cabal";
-       version = "1.1.0.0";
-       sha256 = "0bdvrxdbs9672gfmf3r2j2nasc7map2jr191crf1d0jhmg6dmlzj";
+       version = "1.2.0.0";
+       sha256 = "1hb567h06zdhrrysb99d0c63ih5p1ii2jl0ng2l304w71m35pk2z";
        libraryHaskellDepends = [
          base Cabal containers directory filepath mtl process uulib
        ];
@@ -260284,8 +266798,8 @@ self: {
     ({ mkDerivation, base, diagrams-lib, SVGFonts }:
      mkDerivation {
        pname = "uuagc-diagrams";
-       version = "0.1.1.0";
-       sha256 = "16sf4kbjgxsi3amdpr3nqg15f2gmjvf3w2wh6pn72zhjqsbnfnmz";
+       version = "0.1.2.0";
+       sha256 = "0x4dhbzl5xvs3mrg7256hg673nbr4k6kjszyavjs61klcq58asm7";
        libraryHaskellDepends = [ base diagrams-lib SVGFonts ];
        description = "Utility for drawing attribute grammar pictures with the diagrams package";
        license = stdenv.lib.licenses.bsd3;
@@ -260352,17 +266866,16 @@ self: {
      }) {};
 
   "uuid-bytes" = callPackage
-    ({ mkDerivation, base, byteslice, bytesmith, HUnit
-     , natural-arithmetic, primitive, small-bytearray-builder, tasty
-     , tasty-hunit, wide-word
+    ({ mkDerivation, base, bytebuild, byteslice, bytesmith, HUnit
+     , natural-arithmetic, primitive, tasty, tasty-hunit, wide-word
      }:
      mkDerivation {
        pname = "uuid-bytes";
-       version = "0.1.1.0";
-       sha256 = "13kskg9j847w3f01pf0r24kf1nnfz5srfp268ip5n55ji26h5cmr";
+       version = "0.1.2.0";
+       sha256 = "08sfxj0900pgpbvasi2n2x93qwglir2ijc43fpn5xf0gq7z2b25r";
        libraryHaskellDepends = [
-         base byteslice bytesmith natural-arithmetic primitive
-         small-bytearray-builder wide-word
+         base bytebuild byteslice bytesmith natural-arithmetic primitive
+         wide-word
        ];
        testHaskellDepends = [
          base byteslice HUnit natural-arithmetic primitive tasty tasty-hunit
@@ -260370,6 +266883,8 @@ self: {
        ];
        description = "UUID parsing using byteverse packages";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "uuid-crypto" = callPackage
@@ -260388,6 +266903,8 @@ self: {
        ];
        description = "Reversable and secure encoding of object ids as uuids";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "uuid-le" = callPackage
@@ -260436,8 +266953,8 @@ self: {
        pname = "uuid-types";
        version = "1.0.3";
        sha256 = "1zdka5jnm1h6k36w3nr647yf3b5lqb336g3fkprhd6san9x52xlj";
-       revision = "2";
-       editedCabalFile = "1lmlmng4lph57cljga3r9jy2axdls5mllsb2xzcwy2a34wgidarc";
+       revision = "3";
+       editedCabalFile = "0znx08r25sgs5j7ix8i9aikhgad0kc9i6vgkg0g3jzxk5haal9sf";
        libraryHaskellDepends = [
          base binary bytestring deepseq hashable random text
        ];
@@ -260462,6 +266979,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "uusi" = callPackage
+    ({ mkDerivation, base, Cabal, colourista, directory, microlens
+     , optparse-applicative, process, text
+     }:
+     mkDerivation {
+       pname = "uusi";
+       version = "0.0.0.0";
+       sha256 = "0wii4azq5aj8d1c8n5plsfqqvf9x5s4qw82mhvjhnzja3d6cck4f";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base Cabal colourista directory microlens optparse-applicative
+         process text
+       ];
+       description = "A program removing all version constraints of dependencies in .cabal file";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "uvector" = callPackage
     ({ mkDerivation, base, ghc-prim }:
      mkDerivation {
@@ -260673,8 +267208,8 @@ self: {
      }:
      mkDerivation {
        pname = "vado";
-       version = "0.0.12";
-       sha256 = "0qirhdzbcx5mqlbgh24ckcmivi38hqr53im9g6cydzslnk7ys41w";
+       version = "0.0.13";
+       sha256 = "04cdzlbcx95r7x3nz0r676c376j0lfiidp0160maw651in2a3b5f";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -260873,25 +267408,12 @@ self: {
     ({ mkDerivation, base, hspec }:
      mkDerivation {
        pname = "validity";
-       version = "0.9.0.3";
-       sha256 = "1iqn07n1fv54waln0jj9hf3pivxiz138hzm38z0cdl8yj76qgx7x";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base hspec ];
-       description = "Validity typeclass";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "validity_0_11_0_0" = callPackage
-    ({ mkDerivation, base, hspec }:
-     mkDerivation {
-       pname = "validity";
        version = "0.11.0.0";
        sha256 = "1jawa7d37al29zp2b5hba9w348g926ckbxp51l9bprii5v47lyln";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec ];
        description = "Validity typeclass";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "validity-aeson" = callPackage
@@ -260926,8 +267448,8 @@ self: {
     ({ mkDerivation, base, containers, validity }:
      mkDerivation {
        pname = "validity-containers";
-       version = "0.5.0.3";
-       sha256 = "064sd52y3cmfz9j1yhfz6wsm3993mnh9xgyzy6jzd4cdfmh19sdd";
+       version = "0.5.0.4";
+       sha256 = "1qw5p60dr54d2wh49y6x33hbks4d74m8pr5zygblzk0y70warqld";
        libraryHaskellDepends = [ base containers validity ];
        description = "Validity instances for containers";
        license = stdenv.lib.licenses.mit;
@@ -260993,6 +267515,18 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "validity-time_0_4_0_0" = callPackage
+    ({ mkDerivation, base, time, validity }:
+     mkDerivation {
+       pname = "validity-time";
+       version = "0.4.0.0";
+       sha256 = "02lwa2w84m4mm2lpg5dhg5p0ndba5r152bjm4iy76y2qsfkva0ap";
+       libraryHaskellDepends = [ base time validity ];
+       description = "Validity instances for time";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "validity-unordered-containers" = callPackage
     ({ mkDerivation, base, hashable, unordered-containers, validity }:
      mkDerivation {
@@ -261764,8 +268298,8 @@ self: {
     ({ mkDerivation, base, vector }:
      mkDerivation {
        pname = "vector-doublezip";
-       version = "0.1.0.0";
-       sha256 = "0s5mmwc0s88cdwhb9m0hrphgkiwff2ipic0cln911qll7bxfprgl";
+       version = "0.2.0.0";
+       sha256 = "0z98f0fjn90x3azdbsnjpx61r9lna9hb67bjnmmhvil9a7hpd65x";
        libraryHaskellDepends = [ base vector ];
        description = "Some special functions to work with Vector (with zip)";
        license = stdenv.lib.licenses.mit;
@@ -261804,15 +268338,19 @@ self: {
      }) {};
 
   "vector-fftw" = callPackage
-    ({ mkDerivation, base, fftw, primitive, storable-complex, vector }:
+    ({ mkDerivation, base, fftw, primitive, QuickCheck
+     , storable-complex, test-framework, test-framework-quickcheck2
+     , vector
+     }:
      mkDerivation {
        pname = "vector-fftw";
-       version = "0.1.3.8";
-       sha256 = "0xlr4566hh6lnpinzrk623a96jnb8mp8mq6cymlsl8y38qx36jp6";
-       revision = "3";
-       editedCabalFile = "0wh7sa71gl1ssqqd4axyvwxlmkfb0n3hm90imjvg0vsp7g2y7zs0";
+       version = "0.1.4.0";
+       sha256 = "1ns5jhdx585s3jmcslscibf7ryaya3ca1shc4ysrikrp1mzx1jky";
        libraryHaskellDepends = [ base primitive storable-complex vector ];
        librarySystemDepends = [ fftw ];
+       testHaskellDepends = [
+         base QuickCheck test-framework test-framework-quickcheck2 vector
+       ];
        description = "A binding to the fftw library for one-dimensional vectors";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -261950,8 +268488,8 @@ self: {
      }:
      mkDerivation {
        pname = "vector-sized";
-       version = "1.4.1.0";
-       sha256 = "14l6c8l8l29f6kdffknd70kkccfjcf105i1zd0kchgsgjnr9p6l1";
+       version = "1.4.2";
+       sha256 = "02a7jzik6a6w1xb6bwpvl6hmii6jgi9wr0q7p48bfbq0mlqjv42h";
        libraryHaskellDepends = [
          adjunctions base binary comonad deepseq distributive
          finite-typelits hashable indexed-list-literals primitive vector
@@ -262180,23 +268718,6 @@ self: {
      }) {};
 
   "verbosity" = callPackage
-    ({ mkDerivation, base, binary, data-default-class, deepseq, dhall
-     , generic-lens, serialise
-     }:
-     mkDerivation {
-       pname = "verbosity";
-       version = "0.3.0.0";
-       sha256 = "0wzhkzgd6yxzdkmd2n8hwhrfyh5n88xs0hkil9l98wjh3mnn1qja";
-       revision = "1";
-       editedCabalFile = "11nw7xwvfc4aqnl9wibgfx0adzpnfbz58cjhcanf04j8pjk609lf";
-       libraryHaskellDepends = [
-         base binary data-default-class deepseq dhall generic-lens serialise
-       ];
-       description = "Simple enum that encodes application verbosity";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "verbosity_0_4_0_0" = callPackage
     ({ mkDerivation, base, binary, deepseq, dhall, generic-lens
      , serialise
      }:
@@ -262209,7 +268730,6 @@ self: {
        ];
        description = "Simple enum that encodes application verbosity";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "verdict" = callPackage
@@ -262342,6 +268862,8 @@ self: {
        benchmarkHaskellDepends = [ base criterion lens ];
        description = "Random verilog generation and simulator testing";
        license = stdenv.lib.licenses.gpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "versioning" = callPackage
@@ -262613,7 +269135,7 @@ self: {
        version = "1.0";
        sha256 = "0kzwp58lki3jvx09n6w8rc97idhy947xqik72p2fqjyigkymv04h";
        libraryHaskellDepends = [ base mtl ];
-       description = "Views allow you to run a State monad on part of a state.";
+       description = "Views allow you to run a State monad on part of a state";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -262662,29 +269184,31 @@ self: {
      }) {};
 
   "vimeta" = callPackage
-    ({ mkDerivation, aeson, base, byline, bytestring, containers
-     , directory, either, filepath, http-client, http-client-tls
-     , http-types, mtl, old-locale, optparse-applicative, parsec
-     , process, temporary, text, themoviedb, time, time-locale-compat
-     , transformers, xdg-basedir, yaml
+    ({ mkDerivation, aeson, base, byline, bytestring, directory
+     , exceptions, filepath, http-client, http-client-tls, http-types
+     , mtl, optparse-applicative, parsec, process, relude, temporary
+     , text, themoviedb, time, yaml
      }:
      mkDerivation {
        pname = "vimeta";
-       version = "0.2.5.1";
-       sha256 = "1v46b0215mcyhxma3ascg3paz683j8xqsf4czs8syx4amyls36qg";
-       revision = "1";
-       editedCabalFile = "1na8qghd918ck1pg058anbh9iy3w4x7hf72ygfwfy23hw00wn5j4";
+       version = "0.3.0.0";
+       sha256 = "0npz5mx9w6srz5p0is3yzgfwssakdycv8h0h38ff7q0sivq3pfnv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base byline bytestring containers directory either filepath
-         http-client http-client-tls http-types mtl old-locale
-         optparse-applicative parsec process temporary text themoviedb time
-         time-locale-compat transformers xdg-basedir yaml
+         aeson base byline bytestring directory exceptions filepath
+         http-client http-client-tls http-types mtl optparse-applicative
+         parsec process relude temporary text themoviedb time yaml
+       ];
+       executableHaskellDepends = [
+         aeson base byline bytestring directory exceptions filepath
+         http-client http-client-tls http-types mtl optparse-applicative
+         parsec process relude temporary text themoviedb time yaml
        ];
-       executableHaskellDepends = [ base ];
        description = "Frontend for video metadata tagging tools";
        license = stdenv.lib.licenses.bsd2;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "vimus" = callPackage
@@ -262748,8 +269272,8 @@ self: {
      }:
      mkDerivation {
        pname = "vinyl";
-       version = "0.12.2";
-       sha256 = "1h5q5y3ni7vx48rmammf66nzjmbclwh5n1c41gln8fm98n6n96yn";
+       version = "0.13.0";
+       sha256 = "1ks5rzv3b5fjgcy4g54wxnfqa450ifyap18pq2sb2c8a6bkh3qlh";
        libraryHaskellDepends = [ array base ghc-prim ];
        testHaskellDepends = [
          aeson base doctest hspec lens lens-aeson microlens mtl
@@ -263321,27 +269845,28 @@ self: {
      }) {inherit (pkgs) vte;};
 
   "vty" = callPackage
-    ({ mkDerivation, base, blaze-builder, bytestring, Cabal, containers
-     , deepseq, directory, filepath, hashable, HUnit, microlens
-     , microlens-mtl, microlens-th, mtl, parallel, parsec, QuickCheck
-     , quickcheck-assertions, random, smallcheck, stm, string-qq
-     , terminfo, test-framework, test-framework-hunit
-     , test-framework-smallcheck, text, transformers, unix, utf8-string
-     , vector
+    ({ mkDerivation, ansi-terminal, base, binary, blaze-builder
+     , bytestring, Cabal, containers, deepseq, directory, filepath
+     , hashable, HUnit, microlens, microlens-mtl, microlens-th, mtl
+     , parallel, parsec, QuickCheck, quickcheck-assertions, random
+     , smallcheck, stm, string-qq, terminfo, test-framework
+     , test-framework-hunit, test-framework-smallcheck, text
+     , transformers, unix, utf8-string, vector
      }:
      mkDerivation {
        pname = "vty";
-       version = "5.26";
-       sha256 = "03iznvkdm11blzx09il96262qpgc4mmi3qzarhl8grrijkgzxj4x";
+       version = "5.28.2";
+       sha256 = "0jfiha8hwpdpnz4i7d94dsgcrfd20y0kjp9crn3ds2jx8kln1prv";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base blaze-builder bytestring containers deepseq directory filepath
-         hashable microlens microlens-mtl microlens-th mtl parallel parsec
-         stm terminfo text transformers unix utf8-string vector
+         ansi-terminal base binary blaze-builder bytestring containers
+         deepseq directory filepath hashable microlens microlens-mtl
+         microlens-th mtl parallel parsec stm terminfo text transformers
+         unix utf8-string vector
        ];
        executableHaskellDepends = [
-         base containers microlens microlens-mtl mtl
+         base containers directory filepath microlens microlens-mtl mtl
        ];
        testHaskellDepends = [
          base blaze-builder bytestring Cabal containers deepseq HUnit
@@ -263354,7 +269879,7 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "vty_5_28_2" = callPackage
+  "vty_5_30" = callPackage
     ({ mkDerivation, ansi-terminal, base, binary, blaze-builder
      , bytestring, Cabal, containers, deepseq, directory, filepath
      , hashable, HUnit, microlens, microlens-mtl, microlens-th, mtl
@@ -263365,8 +269890,8 @@ self: {
      }:
      mkDerivation {
        pname = "vty";
-       version = "5.28.2";
-       sha256 = "0jfiha8hwpdpnz4i7d94dsgcrfd20y0kjp9crn3ds2jx8kln1prv";
+       version = "5.30";
+       sha256 = "1c2azy8pp39hn098dbssl6z8xf63hf52drdqgw7wl856ka2dsakj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -263467,8 +269992,8 @@ self: {
     ({ mkDerivation, base, bytestring, transformers, vector, vulkan }:
      mkDerivation {
        pname = "vulkan";
-       version = "3.4";
-       sha256 = "1wwbhz9p3psrfirmzygfjlpak17gyc8qhrqgf0qd7835phid7vxb";
+       version = "3.6.6";
+       sha256 = "09mq11jqrd9sgx4xcy3xxji21yfhzl9a49mh5fp80y2mxsxdl0v9";
        libraryHaskellDepends = [ base bytestring transformers vector ];
        librarySystemDepends = [ vulkan ];
        description = "Bindings to the Vulkan graphics API";
@@ -263671,10 +270196,10 @@ self: {
      }:
      mkDerivation {
        pname = "wai-app-static";
-       version = "3.1.7.1";
-       sha256 = "10k6jb450p89r6dgpnwh428gg0wfw2qbx9n126jkvbchcjr1f4v8";
+       version = "3.1.7.2";
+       sha256 = "138gd5482psq0wbm8s1az672lksi7vbavq6ayiyjkliivf6xpry8";
        revision = "1";
-       editedCabalFile = "0bkmml30rzifvb7nxddj3pxczk0kniahra19mjn0qrkzy1n5752p";
+       editedCabalFile = "1q7zwjasysgbp9rdp75535igd7s6mhi2bnl4pzsn6vbyfw3qnsxd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -263733,6 +270258,22 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "wai-control" = callPackage
+    ({ mkDerivation, base, monad-control-identity, transformers-base
+     , wai, wai-websockets, websockets
+     }:
+     mkDerivation {
+       pname = "wai-control";
+       version = "0.1.0.2";
+       sha256 = "0ygcqxyp8mmw81rrlk20ziyghi6snrzyyqgfllbh5b6jhx6z017h";
+       libraryHaskellDepends = [
+         base monad-control-identity transformers-base wai wai-websockets
+         websockets
+       ];
+       description = "Run wai Applications in IO based monads";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "wai-cors" = callPackage
     ({ mkDerivation, attoparsec, base, base-unicode-symbols, bytestring
      , case-insensitive, directory, filepath, http-types, mtl, network
@@ -263851,7 +270392,7 @@ self: {
 
   "wai-extra" = callPackage
     ({ mkDerivation, aeson, ansi-terminal, base, base64-bytestring
-     , bytestring, case-insensitive, containers, cookie
+     , bytestring, call-stack, case-insensitive, containers, cookie
      , data-default-class, deepseq, directory, fast-logger, hspec
      , http-types, http2, HUnit, iproute, network, old-locale, resourcet
      , streaming-commons, text, time, transformers, unix, unix-compat
@@ -263859,12 +270400,12 @@ self: {
      }:
      mkDerivation {
        pname = "wai-extra";
-       version = "3.0.29.2";
-       sha256 = "00r65l7xmvhc1jx5fq134q1sysx7ja5dzyhv5x55gmnxmqr0p107";
+       version = "3.0.31";
+       sha256 = "1kyid5h7pssgqigmggvx6jh9ip848dkyaslnxi58hhddx0m50vs3";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson ansi-terminal base base64-bytestring bytestring
+         aeson ansi-terminal base base64-bytestring bytestring call-stack
          case-insensitive containers cookie data-default-class deepseq
          directory fast-logger http-types http2 iproute network old-locale
          resourcet streaming-commons text time transformers unix unix-compat
@@ -263878,6 +270419,36 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "wai-extra_3_1_0" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, base, base64-bytestring
+     , bytestring, call-stack, case-insensitive, containers, cookie
+     , data-default-class, deepseq, directory, fast-logger, hspec
+     , http-types, http2, HUnit, iproute, network, old-locale, resourcet
+     , streaming-commons, text, time, transformers, unix, unix-compat
+     , vault, void, wai, wai-logger, word8, zlib
+     }:
+     mkDerivation {
+       pname = "wai-extra";
+       version = "3.1.0";
+       sha256 = "1x316vfqkkhmvvvb2g8ag7ycpjsdarmkj4872g5bm44c2419gvvk";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson ansi-terminal base base64-bytestring bytestring call-stack
+         case-insensitive containers cookie data-default-class deepseq
+         directory fast-logger http-types http2 HUnit iproute network
+         old-locale resourcet streaming-commons text time transformers unix
+         unix-compat vault void wai wai-logger word8 zlib
+       ];
+       testHaskellDepends = [
+         base bytestring case-insensitive cookie fast-logger hspec
+         http-types http2 HUnit resourcet text time transformers wai zlib
+       ];
+       description = "Provides some basic WAI handlers and middleware";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "wai-frontend-monadcgi" = callPackage
     ({ mkDerivation, base, bytestring, case-insensitive, cgi
      , containers, http-types, transformers, wai
@@ -265054,6 +271625,24 @@ self: {
        broken = true;
      }) {};
 
+  "wai-saml2" = callPackage
+    ({ mkDerivation, base, base64-bytestring, bytestring, c14n
+     , cryptonite, data-default-class, http-types, mtl, text, time
+     , vault, wai, wai-extra, x509, x509-store, xml-conduit
+     }:
+     mkDerivation {
+       pname = "wai-saml2";
+       version = "0.2.1.0";
+       sha256 = "0yljqfrrp426pn17fq28arw3ygrb3i84fr28r0hns0cv4a4sz4gx";
+       libraryHaskellDepends = [
+         base base64-bytestring bytestring c14n cryptonite
+         data-default-class http-types mtl text time vault wai wai-extra
+         x509 x509-store xml-conduit
+       ];
+       description = "SAML2 assertion validation as WAI middleware";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "wai-secure-cookies" = callPackage
     ({ mkDerivation, base, bytestring, cryptonite, hspec
      , hspec-expectations, hspec-wai, http-types, memory, protolude
@@ -265061,8 +271650,8 @@ self: {
      }:
      mkDerivation {
        pname = "wai-secure-cookies";
-       version = "0.1.0.4";
-       sha256 = "0m77h2xnm3h3axchvmbylrhm4s7d31zxsv0bgqvmh9zhydr90d2v";
+       version = "0.1.0.5";
+       sha256 = "0v3gz70z968yk563g9n72v8l7mhqhkbjb9gy15s5zpf3apv1cf00";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -265156,20 +271745,21 @@ self: {
 
   "wai-session-postgresql" = callPackage
     ({ mkDerivation, base, bytestring, cereal, cookie, data-default
-     , entropy, postgresql-simple, resource-pool, text, time
+     , entropy, hspec, postgresql-simple, resource-pool, text, time
      , transformers, wai, wai-session
      }:
      mkDerivation {
        pname = "wai-session-postgresql";
-       version = "0.2.1.2";
-       sha256 = "10xc34a1l6g2lr8b4grvv17281689gdb8q1vh3kkip5lk7fp1m9r";
+       version = "0.2.1.3";
+       sha256 = "1l3ws8bkflrk5gnvw0dd98fw83kfhf78mn9z6l2v6yv3gvdfzj6l";
        libraryHaskellDepends = [
          base bytestring cereal cookie data-default entropy
          postgresql-simple resource-pool text time transformers wai
          wai-session
        ];
        testHaskellDepends = [
-         base bytestring data-default postgresql-simple text wai-session
+         base bytestring data-default hspec postgresql-simple text
+         wai-session
        ];
        description = "PostgreSQL backed Wai session store";
        license = stdenv.lib.licenses.bsd3;
@@ -265396,6 +271986,24 @@ self: {
        broken = true;
      }) {};
 
+  "wakame" = callPackage
+    ({ mkDerivation, base, doctest, QuickCheck, sop-core, tasty
+     , tasty-discover, tasty-hspec, tasty-quickcheck, text, time
+     }:
+     mkDerivation {
+       pname = "wakame";
+       version = "0.1.0.0";
+       sha256 = "1wm87z7ag1xzvf4lxqg3xz62ac8i5b9ljzlg85vphcfadsj9khh7";
+       libraryHaskellDepends = [ base sop-core ];
+       testHaskellDepends = [
+         base doctest QuickCheck sop-core tasty tasty-discover tasty-hspec
+         tasty-quickcheck text time
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Functions to manipulate records";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "waldo" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec, base
      , blaze-builder, browscap, bytestring, case-insensitive, conduit
@@ -265463,8 +272071,8 @@ self: {
        pname = "warc";
        version = "1.0.4";
        sha256 = "1mxfm8kdvm0l1lnzma4n9mriz94ypckxqcz1f34fa3n1j3ckc45b";
-       revision = "5";
-       editedCabalFile = "1h0pm3zhyzhayfiknqzljayj50gzaagmian81fs94nb6hs5sww5p";
+       revision = "6";
+       editedCabalFile = "0s563lg70ks3s6plvwi79glq6vkrh7n769fh6l6b4pvj7vp604cj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -265493,8 +272101,8 @@ self: {
      }:
      mkDerivation {
        pname = "warp";
-       version = "3.3.12";
-       sha256 = "0fgglpgg2m3nfngymwgzvn467nsg2r0ff36v3xi8jdqwy9x9ia49";
+       version = "3.3.13";
+       sha256 = "1yqgfx7bsjk97dxcrqwddfhi8mdw0q6cbgs5abaxqjlxh3rhihdx";
        libraryHaskellDepends = [
          array async auto-update base bsb-http-chunked bytestring
          case-insensitive containers ghc-prim hashable http-date http-types
@@ -265577,8 +272185,8 @@ self: {
     ({ mkDerivation, base, network, systemd, unix, wai, warp }:
      mkDerivation {
        pname = "warp-systemd";
-       version = "0.1.0.0";
-       sha256 = "1cfm70dapcxd7ddxs7x0qqlv5w5kr3hasspvg292ik5f5bn40m91";
+       version = "0.1.1.0";
+       sha256 = "1gi9xkaa3wi5n2vhmlc7s4zm48l2fakwnd7bw007hzfqi17zz13x";
        libraryHaskellDepends = [ base network systemd unix wai warp ];
        description = "Socket activation and other systemd integration for the Warp web server (WAI)";
        license = stdenv.lib.licenses.bsd3;
@@ -265602,6 +272210,23 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "warp-tls_3_3_0" = callPackage
+    ({ mkDerivation, base, bytestring, cryptonite, data-default-class
+     , network, streaming-commons, tls, tls-session-manager, wai, warp
+     }:
+     mkDerivation {
+       pname = "warp-tls";
+       version = "3.3.0";
+       sha256 = "03fwwggl6lhxs7swwylgpk9j8g5szq2h871nfbgs6xzr1b5hpas1";
+       libraryHaskellDepends = [
+         base bytestring cryptonite data-default-class network
+         streaming-commons tls tls-session-manager wai warp
+       ];
+       description = "HTTP over TLS support for Warp via the TLS package";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "warp-tls-uid" = callPackage
     ({ mkDerivation, base, bytestring, data-default, network
      , streaming-commons, tls, unix, wai, warp, warp-tls, x509
@@ -265953,8 +272578,8 @@ self: {
      }:
      mkDerivation {
        pname = "web-inv-route";
-       version = "0.1.2.2";
-       sha256 = "0cbf46d1a55y7j2d84crhfdsgy0c2x0rfmvhhwxxh5pigg846cd2";
+       version = "0.1.2.3";
+       sha256 = "1xk6f3z7pcn5bmr2259yvv9l9wbfyycb7990dffz4b802ahxf1xv";
        libraryHaskellDepends = [
          base bytestring case-insensitive containers happstack-server
          hashable http-types invertible network-uri snap-core text
@@ -266041,18 +272666,17 @@ self: {
 
   "web-push" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, binary, bytestring
-     , cryptonite, exceptions, hspec, http-client, http-types, jose
-     , memory, mtl, random, text, time, transformers
-     , unordered-containers
+     , cryptonite, hspec, http-client, http-types, lens, memory, random
+     , safe-exceptions, text, time, transformers
      }:
      mkDerivation {
        pname = "web-push";
-       version = "0.1.2.0";
-       sha256 = "1c9l6fl8fpz4jd9p1m8w42hknnklak8j4gjakcm4qdbw86c4w3kk";
+       version = "0.3";
+       sha256 = "1l03apm5l0a8p8ir418jzfvgsbrpzbh8ks6rbgjxkyz2wj0if2mi";
        libraryHaskellDepends = [
          aeson base base64-bytestring binary bytestring cryptonite
-         exceptions http-client http-types jose memory mtl random text time
-         transformers unordered-containers
+         http-client http-types lens memory random safe-exceptions text time
+         transformers
        ];
        testHaskellDepends = [
          base base64-bytestring binary bytestring hspec
@@ -266064,31 +272688,28 @@ self: {
      }) {};
 
   "web-rep" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bifunctors, box, clay
-     , doctest, foldl, generic-lens, interpolatedstring-perl6
-     , javascript-bridge, language-javascript, lens, lucid, lucid-svg
-     , mmorph, mtl, optparse-generic, scotty, streaming, tasty
-     , tasty-hspec, text, text-format, transformers
-     , unordered-containers, wai, wai-extra, wai-middleware-static
+    ({ mkDerivation, attoparsec, base, box, box-socket, clay
+     , concurrency, doctest, generic-lens, interpolatedstring-perl6
+     , language-javascript, lens, lucid, mtl, numhask, optparse-generic
+     , scotty, tasty, tasty-hspec, text, transformers
+     , unordered-containers, wai-middleware-static, wai-websockets
+     , websockets
      }:
      mkDerivation {
        pname = "web-rep";
-       version = "0.5.0";
-       sha256 = "0av64gnh4gq8vxqclzn91776g5xpkvlix1v61wbk065lwc5znv26";
+       version = "0.7.0";
+       sha256 = "1045b19rjs1hgw92kq8z6wzm7jmx8k73ad9z4m2vzv1jwjhbgin4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson attoparsec base bifunctors box clay foldl generic-lens
-         interpolatedstring-perl6 javascript-bridge language-javascript lens
-         lucid lucid-svg mmorph mtl scotty streaming text text-format
-         transformers unordered-containers wai-middleware-static
-       ];
-       executableHaskellDepends = [
-         attoparsec base box lens lucid optparse-generic scotty text wai
-         wai-extra wai-middleware-static
+         attoparsec base box box-socket clay concurrency generic-lens
+         interpolatedstring-perl6 language-javascript lens lucid mtl numhask
+         scotty text transformers unordered-containers wai-middleware-static
+         wai-websockets websockets
        ];
+       executableHaskellDepends = [ base numhask optparse-generic ];
        testHaskellDepends = [
-         base doctest lens lucid tasty tasty-hspec text
+         base doctest lens lucid numhask tasty tasty-hspec text
        ];
        description = "representations of a web page";
        license = stdenv.lib.licenses.mit;
@@ -266270,37 +272891,37 @@ self: {
 
   "web3" = callPackage
     ({ mkDerivation, aeson, async, attoparsec, base, base58string
-     , basement, bytestring, cereal, cryptonite, data-default, errors
-     , exceptions, generics-sop, hspec, hspec-contrib, hspec-discover
-     , hspec-expectations, http-client, http-client-tls, http-media
-     , http-types, machines, memory, microlens, microlens-aeson
-     , microlens-mtl, microlens-th, mtl, network, OneTuple, parsec
-     , random, relapse, servant, servant-client, split, stm, tagged, tar
-     , template-haskell, text, time, transformers, unordered-containers
-     , uuid-types, vinyl, websockets
+     , basement, bitvec, bytestring, cereal, cryptonite, data-default
+     , errors, exceptions, generics-sop, hspec, hspec-contrib
+     , hspec-discover, hspec-expectations, http-client, http-client-tls
+     , http-media, http-types, machines, memory, microlens
+     , microlens-aeson, microlens-mtl, microlens-th, mtl, network
+     , OneTuple, parsec, random, relapse, servant, servant-client, split
+     , stm, tagged, tar, template-haskell, text, time, transformers
+     , unordered-containers, uuid-types, vector, vinyl, websockets
      }:
      mkDerivation {
        pname = "web3";
-       version = "0.9.0.0";
-       sha256 = "19814hp7ngwv5g16yi1sldshrzy3kk0flgqhhh6dd48vr0p4n8f8";
+       version = "0.9.1.0";
+       sha256 = "12nx9hgwx61yj44iym7na9jxf05jry3aa82j2s8l5rpw3qdv7dis";
        libraryHaskellDepends = [
-         aeson async attoparsec base base58string basement bytestring cereal
-         cryptonite data-default errors exceptions generics-sop hspec
+         aeson async attoparsec base base58string basement bitvec bytestring
+         cereal cryptonite data-default errors exceptions generics-sop hspec
          http-client http-client-tls http-media http-types machines memory
          microlens microlens-aeson microlens-mtl microlens-th mtl network
          OneTuple parsec relapse servant servant-client tagged tar
          template-haskell text transformers unordered-containers uuid-types
-         vinyl websockets
+         vector vinyl websockets
        ];
        testHaskellDepends = [
-         aeson async attoparsec base base58string basement bytestring cereal
-         cryptonite data-default errors exceptions generics-sop hspec
+         aeson async attoparsec base base58string basement bitvec bytestring
+         cereal cryptonite data-default errors exceptions generics-sop hspec
          hspec-contrib hspec-discover hspec-expectations http-client
          http-client-tls http-media http-types machines memory microlens
          microlens-aeson microlens-mtl microlens-th mtl network OneTuple
          parsec random relapse servant servant-client split stm tagged tar
          template-haskell text time transformers unordered-containers
-         uuid-types vinyl websockets
+         uuid-types vector vinyl websockets
        ];
        testToolDepends = [ hspec-discover ];
        description = "Web3 API for Haskell";
@@ -266361,6 +272982,25 @@ self: {
        broken = true;
      }) {};
 
+  "webauthn" = callPackage
+    ({ mkDerivation, aeson, asn1-encoding, asn1-types, base
+     , base16-bytestring, base64-bytestring, bytestring, cborg, cereal
+     , containers, cryptonite, hashable, memory, serialise, text, x509
+     , x509-validation
+     }:
+     mkDerivation {
+       pname = "webauthn";
+       version = "0";
+       sha256 = "1nmrxpc0q7bs4z7gnkxbm02qpp8c2rn48hxi52y1k4iqglp9mmp0";
+       libraryHaskellDepends = [
+         aeson asn1-encoding asn1-types base base16-bytestring
+         base64-bytestring bytestring cborg cereal containers cryptonite
+         hashable memory serialise text x509 x509-validation
+       ];
+       description = "Web Authentication API";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "webby" = callPackage
     ({ mkDerivation, aeson, base-noprelude, binary, bytestring
      , formatting, http-api-data, http-types, relude, resourcet, tasty
@@ -266580,14 +273220,14 @@ self: {
 
   "webex-teams-api" = callPackage
     ({ mkDerivation, aeson, async, attoparsec, base, bitset-word8
-     , bytestring, conduit, data-default, hspec, http-conduit
-     , http-types, network-uri, optparse-applicative, text, utf8-string
-     , wai, warp
+     , bytestring, conduit, data-default, hspec, hspec-discover
+     , http-conduit, http-types, network-uri, optparse-applicative, text
+     , utf8-string, wai, warp
      }:
      mkDerivation {
        pname = "webex-teams-api";
-       version = "0.2.0.0";
-       sha256 = "02x4g10r0rl1g4fbqkj8zxcbz64g8dck4d77f0gswkadsn5y6mkp";
+       version = "0.2.0.1";
+       sha256 = "11qivxmp0cx3jsrpbp2zdfjhjrcd960ycbr08li3d327ff2qhdsh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -266602,20 +273242,21 @@ self: {
          aeson async attoparsec base bytestring data-default hspec
          http-conduit http-types network-uri text wai warp
        ];
+       testToolDepends = [ hspec-discover ];
        description = "A Haskell bindings for Webex Teams API";
        license = stdenv.lib.licenses.mit;
      }) {};
 
   "webex-teams-conduit" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, conduit
-     , data-default, hspec, http-client, http-conduit, http-types
-     , network-uri, optparse-applicative, text, utf8-string, wai, warp
-     , webex-teams-api
+     , data-default, hspec, hspec-discover, http-client, http-conduit
+     , http-types, network-uri, optparse-applicative, text, utf8-string
+     , wai, warp, webex-teams-api
      }:
      mkDerivation {
        pname = "webex-teams-conduit";
-       version = "0.2.0.0";
-       sha256 = "0p9ffj3qm84c7m4w5bfpn53vcs96p7gdlyk87mjmc9h9i6v7sz0d";
+       version = "0.2.0.1";
+       sha256 = "0ig4krcvc256lyrqvj6g4kjklln5m7sm44c4bvbgkgr3lmrpfkr7";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base conduit webex-teams-api ];
@@ -266627,20 +273268,21 @@ self: {
          aeson async base bytestring conduit data-default hspec http-conduit
          http-types network-uri text wai warp webex-teams-api
        ];
+       testToolDepends = [ hspec-discover ];
        description = "Conduit wrapper of Webex Teams List API";
        license = stdenv.lib.licenses.mit;
      }) {};
 
   "webex-teams-pipes" = callPackage
     ({ mkDerivation, aeson, async, base, bytestring, data-default
-     , hspec, http-client, http-conduit, http-types, network-uri
-     , optparse-applicative, pipes, text, utf8-string, wai, warp
-     , webex-teams-api
+     , hspec, hspec-discover, http-client, http-conduit, http-types
+     , network-uri, optparse-applicative, pipes, text, utf8-string, wai
+     , warp, webex-teams-api
      }:
      mkDerivation {
        pname = "webex-teams-pipes";
-       version = "0.2.0.0";
-       sha256 = "001ilf2yj6q8rqcagjlh28rad191jyjjr1cpk6cf84v66isdbykp";
+       version = "0.2.0.1";
+       sha256 = "094wvrnv0609gp0iya34pciw2hc5wi7fax5wjwr3n1lmwdgf7i4g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base pipes webex-teams-api ];
@@ -266652,6 +273294,7 @@ self: {
          aeson async base bytestring data-default hspec http-conduit
          http-types network-uri pipes text wai warp webex-teams-api
        ];
+       testToolDepends = [ hspec-discover ];
        description = "Pipes wrapper of Webex Teams List API";
        license = stdenv.lib.licenses.mit;
      }) {};
@@ -266676,6 +273319,32 @@ self: {
        broken = true;
      }) {};
 
+  "webgear-server" = callPackage
+    ({ mkDerivation, aeson, base, base64-bytestring, bytestring
+     , bytestring-conversion, case-insensitive, http-api-data
+     , http-types, mtl, network, QuickCheck, quickcheck-instances, tasty
+     , tasty-hunit, tasty-quickcheck, template-haskell, text
+     , unordered-containers, wai
+     }:
+     mkDerivation {
+       pname = "webgear-server";
+       version = "0.2.0";
+       sha256 = "0fyyb4f4dab24as2dv5vbvacwcvp9bcrwyr483yiqn3fhm7975nr";
+       libraryHaskellDepends = [
+         aeson base base64-bytestring bytestring bytestring-conversion
+         case-insensitive http-api-data http-types mtl network
+         template-haskell text unordered-containers wai
+       ];
+       testHaskellDepends = [
+         aeson base base64-bytestring bytestring bytestring-conversion
+         case-insensitive http-api-data http-types mtl network QuickCheck
+         quickcheck-instances tasty tasty-hunit tasty-quickcheck
+         template-haskell text unordered-containers wai
+       ];
+       description = "Composable, type-safe library to build HTTP API servers";
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
   "webidl" = callPackage
     ({ mkDerivation, base, bytestring, HSFFIG, LEXER, parsec, pretty
      , utf8-env, utf8-string
@@ -266756,8 +273425,8 @@ self: {
     ({ mkDerivation, base, Cabal, gtk2hs-buildtools, webkitgtk }:
      mkDerivation {
        pname = "webkit2gtk3-javascriptcore";
-       version = "0.14.4.0";
-       sha256 = "0njp5m8m9qz7ra9z8ni103bnicfshiixxy44na8m3mzjqrchczww";
+       version = "0.14.4.1";
+       sha256 = "0bi42gpw0cf5ymnwlffnfdq68jfvk0j4qcnqv8lvwz2vp1ngs23j";
        setupHaskellDepends = [ base Cabal gtk2hs-buildtools ];
        libraryHaskellDepends = [ base ];
        libraryPkgconfigDepends = [ webkitgtk ];
@@ -267049,18 +273718,18 @@ self: {
   "weeder" = callPackage
     ({ mkDerivation, algebraic-graphs, base, bytestring, containers
      , dhall, directory, filepath, generic-lens, ghc, lens, mtl
-     , optparse-applicative, regex-tdfa, transformers
+     , optparse-applicative, regex-tdfa, text, transformers
      }:
      mkDerivation {
        pname = "weeder";
-       version = "2.0.1";
-       sha256 = "1x5hgyp3zcwz63wcwh8bqalckcb7baakj39zwymifirxvhkws1xz";
+       version = "2.1.2";
+       sha256 = "0jhdpv4032334ag46jm6d6nc3pdkccq74fkfzijslz798zh9sqmj";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          algebraic-graphs base bytestring containers dhall directory
          filepath generic-lens ghc lens mtl optparse-applicative regex-tdfa
-         transformers
+         text transformers
        ];
        executableHaskellDepends = [
          base bytestring containers directory filepath ghc
@@ -267078,8 +273747,8 @@ self: {
      }:
      mkDerivation {
        pname = "weekdaze";
-       version = "0.0.0.1";
-       sha256 = "13nxi6gqm4by2y6wd3vwj0rqjircpfng0nz5h2spci2jrbmv52d3";
+       version = "0.0.0.3";
+       sha256 = "1khnizhk45qbjrxq24bfs183wbmrdxax7k09mjm9717wb350v6k6";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -267097,6 +273766,8 @@ self: {
        ];
        description = "A school-timetable problem-solver";
        license = "GPL";
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "weigh" = callPackage
@@ -267239,6 +273910,42 @@ self: {
        broken = true;
      }) {};
 
+  "what4" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, attoparsec, base, bifunctors
+     , bimap, bv-sized, bytestring, containers, data-binary-ieee754
+     , deepseq, deriving-compat, directory, exceptions, extra, filepath
+     , fingertree, ghc-prim, hashable, hashtables, hedgehog, io-streams
+     , lens, mtl, panic, parameterized-utils, process, QuickCheck
+     , scientific, tasty, tasty-hedgehog, tasty-hunit, tasty-quickcheck
+     , template-haskell, temporary, text, th-abstraction, transformers
+     , unordered-containers, utf8-string, vector, versions, zenc
+     }:
+     mkDerivation {
+       pname = "what4";
+       version = "1.0";
+       sha256 = "0yyyq2gzl7srjq6inj1dqdhpxd58r1rhjajwxi0gr5pmxfzv7k8w";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         ansi-wl-pprint attoparsec base bifunctors bimap bv-sized bytestring
+         containers data-binary-ieee754 deepseq deriving-compat directory
+         exceptions extra filepath fingertree ghc-prim hashable hashtables
+         io-streams lens mtl panic parameterized-utils process scientific
+         template-haskell temporary text th-abstraction transformers
+         unordered-containers utf8-string vector versions zenc
+       ];
+       executableHaskellDepends = [ base parameterized-utils ];
+       testHaskellDepends = [
+         base bv-sized bytestring containers data-binary-ieee754 hedgehog
+         parameterized-utils QuickCheck tasty tasty-hedgehog tasty-hunit
+         tasty-quickcheck text transformers versions
+       ];
+       description = "Solver-agnostic symbolic values support for issuing queries";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "wheb-mongo" = callPackage
     ({ mkDerivation, base, bson, mongoDB, mtl, text, Wheb }:
      mkDerivation {
@@ -267380,6 +274087,8 @@ self: {
          random-fu random-shuffle random-source relude temporary time
        ];
        license = stdenv.lib.licenses.asl20;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "why3" = callPackage
@@ -267495,8 +274204,8 @@ self: {
      }:
      mkDerivation {
        pname = "wild-bind";
-       version = "0.1.2.5";
-       sha256 = "14k1y5klxjvkdh0r041sd6a3jzmylb718azfmz45403lrnh96nq9";
+       version = "0.1.2.6";
+       sha256 = "1sfwz7qwlfhvdkw8f0xmywi7m3b3yd7p5hlrjndlqs8h2k8c7809";
        libraryHaskellDepends = [
          base containers semigroups text transformers
        ];
@@ -267549,8 +274258,8 @@ self: {
      }:
      mkDerivation {
        pname = "wild-bind-x11";
-       version = "0.2.0.9";
-       sha256 = "1x3qqnampyxi6bg6279xsw38324fs5gndy1mylp6dndlcf6pw30z";
+       version = "0.2.0.10";
+       sha256 = "0wq6jhaq2mh476mwjqc6ianqvvrywlvrkcwh7acdxznz2djkgjm5";
        libraryHaskellDepends = [
          base containers fold-debounce mtl semigroups stm text transformers
          wild-bind X11
@@ -267645,8 +274354,8 @@ self: {
      }:
      mkDerivation {
        pname = "winery";
-       version = "1.2";
-       sha256 = "13ngxcvkixd4dpwkgmiz6w6rczj9jc4hhs39sgmln7y6cb3sfkih";
+       version = "1.3";
+       sha256 = "0l22647x0j3487kl8f27hn31lprh0cz906h75azvgn9h8s8hpqmr";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -267829,6 +274538,26 @@ self: {
        license = stdenv.lib.licenses.gpl3;
      }) {};
 
+  "witherable_0_3_2" = callPackage
+    ({ mkDerivation, base, base-orphans, containers, hashable
+     , monoidal-containers, transformers, transformers-compat
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "witherable";
+       version = "0.3.2";
+       sha256 = "1iqf3kc9h599lbiym8rf9b4fhj31lqwm1cxqz6x02q9dxyrcprmi";
+       revision = "1";
+       editedCabalFile = "01mprffm41km3pm5nlpsp2ig2izgl6ll9ylrym3dg01f9609aa0z";
+       libraryHaskellDepends = [
+         base base-orphans containers hashable monoidal-containers
+         transformers transformers-compat unordered-containers vector
+       ];
+       description = "filterable traversable";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "witherable" = callPackage
     ({ mkDerivation, base, base-orphans, containers, hashable, lens
      , monoidal-containers, transformers, transformers-compat
@@ -267876,6 +274605,22 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "within_0_2_0_1" = callPackage
+    ({ mkDerivation, base, comonad, exceptions, free, hashable, path
+     , path-like
+     }:
+     mkDerivation {
+       pname = "within";
+       version = "0.2.0.1";
+       sha256 = "1yzfzizx45ngvvbshgw9z8hxl8z7vcr1gann6wnxq4b9669h29ic";
+       libraryHaskellDepends = [
+         base comonad exceptions free hashable path path-like
+       ];
+       description = "A value within another path";
+       license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "witness" = callPackage
     ({ mkDerivation, base, constraints, semigroupoids, transformers }:
      mkDerivation {
@@ -267889,6 +274634,22 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "witness_0_5" = callPackage
+    ({ mkDerivation, base, constraints, countable, semigroupoids
+     , transformers
+     }:
+     mkDerivation {
+       pname = "witness";
+       version = "0.5";
+       sha256 = "0888969dypgykmhp33nar4a6yhrbd5i6agnbq415ni5cfdx1c2cr";
+       libraryHaskellDepends = [
+         base constraints countable semigroupoids transformers
+       ];
+       description = "values that witness types";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+     }) {};
+
   "witty" = callPackage
     ({ mkDerivation, base, bytestring, network, unix }:
      mkDerivation {
@@ -268671,8 +275432,8 @@ self: {
      }:
      mkDerivation {
        pname = "world-peace";
-       version = "1.0.1.0";
-       sha256 = "1fx7y9h1yyjc5xn1mpbkwas6p6h06rivzndb545z1qnnp583vzwp";
+       version = "1.0.2.0";
+       sha256 = "05r4ils0imcv31sx6h82mwcwcrasrfs6kkip3frdsbf0aizgzcdb";
        libraryHaskellDepends = [ aeson base deepseq profunctors tagged ];
        testHaskellDepends = [
          base doctest Glob should-not-typecheck tasty tasty-hunit text
@@ -268867,6 +275628,21 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "wreq-helper" = callPackage
+    ({ mkDerivation, aeson, aeson-result, base, bytestring, http-client
+     , lens, text, wreq
+     }:
+     mkDerivation {
+       pname = "wreq-helper";
+       version = "0.1.0.0";
+       sha256 = "18kmh3swa3bbrkfj1dldi7iy6brdvyhfrbdn8gsz2kcarvhnv5f2";
+       libraryHaskellDepends = [
+         aeson aeson-result base bytestring http-client lens text wreq
+       ];
+       description = "Wreq response process";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "wreq-patchable" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, attoparsec
      , authenticate-oauth, base, base16-bytestring, base64-bytestring
@@ -269269,6 +276045,8 @@ self: {
        testHaskellDepends = [ base bytestring envy hspec skews text ];
        description = "A-little-higher-level WebSocket client";
        license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "wstunnel" = callPackage
@@ -269374,7 +276152,7 @@ self: {
        revision = "1";
        editedCabalFile = "1jszf2hdipr9iry6pcdhhk42aglcq6m3zvg9rgmnickfdzd4k71h";
        libraryHaskellDepends = [ base containers time vector-space ];
-       description = "Pure Haskell PostScript and SVG generation.";
+       description = "Pure Haskell PostScript and SVG generation";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -269437,20 +276215,6 @@ self: {
      }:
      mkDerivation {
        pname = "wuss";
-       version = "1.1.16";
-       sha256 = "1rhc0i4bkx09iv291531mawll9h89bp57xmpkwg0j3kfklilcavl";
-       libraryHaskellDepends = [
-         base bytestring connection network websockets
-       ];
-       description = "Secure WebSocket (WSS) clients";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "wuss_1_1_17" = callPackage
-    ({ mkDerivation, base, bytestring, connection, network, websockets
-     }:
-     mkDerivation {
-       pname = "wuss";
        version = "1.1.17";
        sha256 = "03raxspm7k5byx2gg5a2avgf7c3idcjq0vd7jh01vpv1mamap712";
        libraryHaskellDepends = [
@@ -269458,7 +276222,6 @@ self: {
        ];
        description = "Secure WebSocket (WSS) clients";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "wx" = callPackage
@@ -269870,8 +276633,8 @@ self: {
      }:
      mkDerivation {
        pname = "xcffib";
-       version = "0.9.0";
-       sha256 = "0nxy4dfwz1wgj6dvg1jp3k4zblwpgiydmv7p20s5scyzgii8jsfk";
+       version = "0.10.0";
+       sha256 = "163fiyppb40xd4wibvjkya86630hlhn1ij0i5xlc547gazawhz4a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -269997,20 +276760,20 @@ self: {
      }) {};
 
   "xdot" = callPackage
-    ({ mkDerivation, base, cairo, graphviz, gtk3, mtl, polyparse, text
-     , transformers
+    ({ mkDerivation, base, cairo, deepseq, graphviz, gtk3, mtl
+     , polyparse, text, transformers
      }:
      mkDerivation {
        pname = "xdot";
-       version = "0.3.0.1";
-       sha256 = "0gdfaviib1hnsnkq65d71v90xl09rdyqm9n3wjkdplxz9rj5d6mh";
+       version = "0.3.0.2";
+       sha256 = "0k3lklghlj51nslv8pi8anj78hls2srmdr6hz5yibfhvycpib0c2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base cairo graphviz gtk3 mtl polyparse text
+         base cairo deepseq graphviz gtk3 mtl polyparse text
        ];
        executableHaskellDepends = [
-         base cairo graphviz gtk3 text transformers
+         base cairo deepseq graphviz gtk3 text transformers
        ];
        description = "Parse Graphviz xdot files and interactively view them using GTK and Cairo";
        license = stdenv.lib.licenses.bsd3;
@@ -270019,51 +276782,25 @@ self: {
      }) {};
 
   "xeno" = callPackage
-    ({ mkDerivation, array, base, bytestring, criterion, deepseq
-     , ghc-prim, hexml, hexpat, hspec, mtl, mutable-containers, vector
-     , weigh, xml
-     }:
-     mkDerivation {
-       pname = "xeno";
-       version = "0.3.5.2";
-       sha256 = "0xfhdi5d0y3rlsmzczdg8b896l9q31nify1vsq0vfqqhfn75pw8l";
-       libraryHaskellDepends = [
-         array base bytestring deepseq mtl mutable-containers vector
-       ];
-       testHaskellDepends = [ base bytestring hexml hspec ];
-       benchmarkHaskellDepends = [
-         base bytestring criterion deepseq ghc-prim hexml hexpat weigh xml
-       ];
-       description = "A fast event-based XML parser in pure Haskell";
-       license = stdenv.lib.licenses.bsd3;
-     }) {};
-
-  "xeno_0_4_1" = callPackage
     ({ mkDerivation, array, base, bytestring, bytestring-mmap, bzlib
      , criterion, deepseq, filepath, ghc-prim, hexml, hexpat, hspec, mtl
      , mutable-containers, time, vector, weigh, xml
      }:
      mkDerivation {
        pname = "xeno";
-       version = "0.4.1";
-       sha256 = "0pnmbi6w4l1i8m5vjxgxpcx98b5rphm32ykzcvgdnvahv8mrqycy";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.4.2";
+       sha256 = "0dvjzh7yyijwy2d6215wlxlln9h0ng6bnqasfh38prp6sllxk25j";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          array base bytestring deepseq mtl mutable-containers vector
        ];
-       executableHaskellDepends = [
-         base bytestring bytestring-mmap deepseq hexml time weigh
-       ];
        testHaskellDepends = [ base bytestring hexml hspec ];
        benchmarkHaskellDepends = [
-         base bytestring bzlib criterion deepseq filepath ghc-prim hexml
-         hexpat weigh xml
+         base bytestring bytestring-mmap bzlib criterion deepseq filepath
+         ghc-prim hexml hexpat time weigh xml
        ];
        description = "A fast event-based XML parser in pure Haskell";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "xenstore" = callPackage
@@ -270424,8 +277161,8 @@ self: {
      }:
      mkDerivation {
        pname = "xlsx";
-       version = "0.8.0";
-       sha256 = "1wp2ybkf5z4x87a73yygi3g1nqjy6pfb1wdwyvmjqk64ibjz0p7d";
+       version = "0.8.1";
+       sha256 = "1prb6369af2w0rni2ha32yzd9r17yi0xnyn1dzwdzq03maxikgy9";
        libraryHaskellDepends = [
          attoparsec base base64-bytestring binary-search bytestring conduit
          containers data-default deepseq errors extra filepath lens mtl
@@ -270488,8 +277225,8 @@ self: {
        pname = "xml";
        version = "1.3.14";
        sha256 = "0g814lj7vaxvib2g3r734221k80k7ap9czv9hinifn8syals3l9j";
-       revision = "1";
-       editedCabalFile = "130xwqmgmg9vp988mppm5ivz1r5qbivb270fz2rwl4q0x04czdzd";
+       revision = "2";
+       editedCabalFile = "15cxa19dp8nqvrrp0bmndkdas2jzg573x8ri75r6kiv8r4vkv8y7";
        libraryHaskellDepends = [ base bytestring text ];
        description = "A simple XML library";
        license = stdenv.lib.licenses.bsd3;
@@ -271098,8 +277835,8 @@ self: {
     ({ mkDerivation, base, deepseq, text }:
      mkDerivation {
        pname = "xml-types";
-       version = "0.3.6";
-       sha256 = "1jgqxsa9p2q3h6nymbfmvhldqrqlwrhrzmwadlyc0li50x0d8dwr";
+       version = "0.3.8";
+       sha256 = "102cm0nvfmf9gn8hvn5z8qvmg931laczs33wwd5iyz9bc37f9mfs";
        libraryHaskellDepends = [ base deepseq text ];
        description = "Basic types for representing XML";
        license = stdenv.lib.licenses.mit;
@@ -271335,16 +278072,16 @@ self: {
   "xmobar" = callPackage
     ({ mkDerivation, alsa-core, alsa-mixer, async, base, bytestring
      , containers, dbus, directory, extensible-exceptions, filepath
-     , hinotify, hspec, http-conduit, http-types, iwlib, libmpd, libXpm
-     , libXrandr, libXrender, mtl, old-locale, parsec, parsec-numbers
-     , process, regex-compat, stm, temporary, time, timezone-olson
-     , timezone-series, transformers, unix, utf8-string, wirelesstools
-     , X11, X11-xft
+     , gauge, hinotify, hspec, http-client-tls, http-conduit, http-types
+     , iwlib, libmpd, libXpm, libXrandr, libXrender, mtl, old-locale
+     , parsec, parsec-numbers, process, regex-compat, stm, temporary
+     , time, timezone-olson, timezone-series, transformers, unix
+     , utf8-string, wirelesstools, X11, X11-xft
      }:
      mkDerivation {
        pname = "xmobar";
-       version = "0.33";
-       sha256 = "1hr3qqykc5givcpcwrr9f2y920jmiinmxm5mcy6qgpgymgwqb618";
+       version = "0.36";
+       sha256 = "0kqnadgsqn7m3zw2vk22ssf4aw67rij9l1lpjfsnv2qw0m5apsdl";
        configureFlags = [
          "-fwith_alsa" "-fwith_conduit" "-fwith_datezone" "-fwith_dbus"
          "-fwith_inotify" "-fwith_iwlib" "-fwith_mpd" "-fwith_mpris"
@@ -271355,10 +278092,10 @@ self: {
        isExecutable = true;
        libraryHaskellDepends = [
          alsa-core alsa-mixer async base bytestring containers dbus
-         directory extensible-exceptions filepath hinotify http-conduit
-         http-types iwlib libmpd mtl old-locale parsec parsec-numbers
-         process regex-compat stm time timezone-olson timezone-series
-         transformers unix utf8-string X11 X11-xft
+         directory extensible-exceptions filepath hinotify http-client-tls
+         http-conduit http-types iwlib libmpd mtl old-locale parsec
+         parsec-numbers process regex-compat stm time timezone-olson
+         timezone-series transformers unix utf8-string X11 X11-xft
        ];
        librarySystemDepends = [
          libXpm libXrandr libXrender wirelesstools
@@ -271371,6 +278108,7 @@ self: {
          filepath hspec mtl old-locale parsec parsec-numbers process
          regex-compat stm temporary time transformers unix X11
        ];
+       benchmarkHaskellDepends = [ base gauge mtl ];
        description = "A Minimalistic Text Based Status Bar";
        license = stdenv.lib.licenses.bsd3;
        platforms = [ "i686-linux" "x86_64-linux" ];
@@ -271675,6 +278413,8 @@ self: {
        ];
        description = "Efficient XOR masking";
        license = stdenv.lib.licenses.gpl2Plus;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "xorshift" = callPackage
@@ -271841,40 +278581,40 @@ self: {
     ({ mkDerivation, aeson, aeson-options, async, base, bytestring
      , cmark-gfm, containers, data-default, deepseq, directory
      , directory-tree, filepath, fmt, Glob, hspec, hspec-discover
-     , http-client, http-types, lens, mtl, o-clock, optparse-applicative
-     , pretty-terminal, QuickCheck, req, roman-numerals
-     , template-haskell, text, text-metrics, th-lift-instances
-     , th-utilities, universum, with-utf8, yaml
+     , http-client, http-types, lens, modern-uri, mtl, o-clock
+     , optparse-applicative, pretty-terminal, QuickCheck, req
+     , roman-numerals, template-haskell, text, text-metrics
+     , th-lift-instances, th-utilities, universum, with-utf8, yaml
      }:
      mkDerivation {
        pname = "xrefcheck";
-       version = "0.1.1.2";
-       sha256 = "177pxga1jylm5kgnx0bj6sf2vsspgy24inpx7sk49hf297fnykll";
+       version = "0.1.2";
+       sha256 = "0m3cya6rfx7ypq4sp172z9fnnl6n11v98f6bj003phrapl6s0vnn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          aeson aeson-options async base bytestring cmark-gfm containers
          data-default deepseq directory directory-tree filepath fmt Glob
-         http-client http-types lens mtl o-clock optparse-applicative
-         pretty-terminal req roman-numerals template-haskell text
-         text-metrics th-lift-instances th-utilities universum with-utf8
-         yaml
+         http-client http-types lens modern-uri mtl o-clock
+         optparse-applicative pretty-terminal req roman-numerals
+         template-haskell text text-metrics th-lift-instances th-utilities
+         universum with-utf8 yaml
        ];
        executableHaskellDepends = [
          aeson aeson-options async base bytestring cmark-gfm containers
          data-default deepseq directory directory-tree filepath fmt Glob
-         http-client http-types lens mtl o-clock optparse-applicative
-         pretty-terminal req roman-numerals template-haskell text
-         text-metrics th-lift-instances th-utilities universum with-utf8
-         yaml
+         http-client http-types lens modern-uri mtl o-clock
+         optparse-applicative pretty-terminal req roman-numerals
+         template-haskell text text-metrics th-lift-instances th-utilities
+         universum with-utf8 yaml
        ];
        testHaskellDepends = [
          aeson aeson-options async base bytestring cmark-gfm containers
          data-default deepseq directory directory-tree filepath fmt Glob
-         hspec http-client http-types lens mtl o-clock optparse-applicative
-         pretty-terminal QuickCheck req roman-numerals template-haskell text
-         text-metrics th-lift-instances th-utilities universum with-utf8
-         yaml
+         hspec http-client http-types lens modern-uri mtl o-clock
+         optparse-applicative pretty-terminal QuickCheck req roman-numerals
+         template-haskell text text-metrics th-lift-instances th-utilities
+         universum with-utf8 yaml
        ];
        testToolDepends = [ hspec-discover ];
        license = stdenv.lib.licenses.mpl20;
@@ -272496,8 +279236,8 @@ self: {
      }:
      mkDerivation {
        pname = "yaml";
-       version = "0.11.4.0";
-       sha256 = "0v69d10ni6ydj4g63ajcmnx6a2j3kbl91vpz678l7k5mkd3chkns";
+       version = "0.11.5.0";
+       sha256 = "1bfdsqckzql50j6ni4fa1470cvkmfiy4skb98cdwnj4rss5p93mj";
        configureFlags = [ "-fsystem-libyaml" ];
        isLibrary = true;
        isExecutable = true;
@@ -272523,8 +279263,8 @@ self: {
      }:
      mkDerivation {
        pname = "yaml-combinators";
-       version = "1.1.1.2";
-       sha256 = "13f5z4xq5k8ss3x0afw21cylhpmr1mzsnrj9ck5531p407rj3glw";
+       version = "1.1.2";
+       sha256 = "0435m79lqah778g95ds628j5bilfggzyn9hzc309xh47h4mxl92m";
        libraryHaskellDepends = [
          aeson base bytestring generics-sop scientific text transformers
          unordered-containers vector yaml
@@ -272914,6 +279654,25 @@ self: {
        broken = true;
      }) {};
 
+  "yapb" = callPackage
+    ({ mkDerivation, base, bytestring, directory, hashable, network
+     , process, regex-tdfa
+     }:
+     mkDerivation {
+       pname = "yapb";
+       version = "0.1.1";
+       sha256 = "1zbk2whfi09wzx9ql4dhkbg50s7v45y309avxljypg7z9i9pvx3x";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring directory hashable network process regex-tdfa
+       ];
+       executableHaskellDepends = [ base regex-tdfa ];
+       testHaskellDepends = [ base ];
+       description = "Yet Another Parser Builder (YAPB)";
+       license = stdenv.lib.licenses.bsd3;
+     }) {};
+
   "yarn-lock" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, containers, either
      , megaparsec, neat-interpolation, protolude, quickcheck-instances
@@ -273088,6 +279847,8 @@ self: {
        ];
        description = "Test suites for `yaya`";
        license = stdenv.lib.licenses.agpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "yaya-unsafe" = callPackage
@@ -273119,6 +279880,8 @@ self: {
        ];
        description = "Test suites for `yaya-unsafe`";
        license = stdenv.lib.licenses.agpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
      }) {};
 
   "ycextra" = callPackage
@@ -273345,18 +280108,18 @@ self: {
 
   "yesod" = callPackage
     ({ mkDerivation, aeson, base, bytestring, conduit
-     , data-default-class, directory, fast-logger, monad-logger
-     , semigroups, shakespeare, streaming-commons, template-haskell
+     , data-default-class, directory, fast-logger, file-embed
+     , monad-logger, shakespeare, streaming-commons, template-haskell
      , text, unix, unordered-containers, wai, wai-extra, wai-logger
      , warp, yaml, yesod-core, yesod-form, yesod-persistent
      }:
      mkDerivation {
        pname = "yesod";
-       version = "1.6.0.1";
-       sha256 = "113qm6x4q2s08l5423j1ksc3bdlbf9pxj4y9p8nf36gbz6dy6xqh";
+       version = "1.6.1.0";
+       sha256 = "1jk55fm58ywp69khacw8n3qk2aybsrlh4bkinjgrah3w01kflmyw";
        libraryHaskellDepends = [
          aeson base bytestring conduit data-default-class directory
-         fast-logger monad-logger semigroups shakespeare streaming-commons
+         fast-logger file-embed monad-logger shakespeare streaming-commons
          template-haskell text unix unordered-containers wai wai-extra
          wai-logger warp yaml yesod-core yesod-form yesod-persistent
        ];
@@ -273522,16 +280285,17 @@ self: {
 
   "yesod-auth-basic" = callPackage
     ({ mkDerivation, base, base64-bytestring, bytestring, exceptions
-     , hlint, hspec, text, wai, word8, yesod, yesod-test
+     , hspec, monad-control, text, wai, word8, yesod, yesod-test
      }:
      mkDerivation {
        pname = "yesod-auth-basic";
-       version = "0.1.0.2";
-       sha256 = "0b4vyf731wb7idmbqz7n8zm4p7i7y66x94ph7kaxv1jvq05k7bxa";
+       version = "0.1.0.3";
+       sha256 = "0qm65ml82waxapq3v19k6x33cghgg6wg72p5h2j1ii329dv6293b";
        libraryHaskellDepends = [
-         base base64-bytestring bytestring exceptions text wai word8 yesod
+         base base64-bytestring bytestring exceptions monad-control text wai
+         word8 yesod
        ];
-       testHaskellDepends = [ base hlint hspec text yesod yesod-test ];
+       testHaskellDepends = [ base hspec text yesod yesod-test ];
        description = "Yesod Middleware for HTTP Basic Authentication";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
@@ -273734,6 +280498,30 @@ self: {
        broken = true;
      }) {};
 
+  "yesod-auth-lti13" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, base, base64-bytestring
+     , bytestring, containers, cryptonite, http-client, http-conduit
+     , jose-jwt, load-env, lti13, microlens, oidc-client, random
+     , safe-exceptions, text, time, warp, yesod, yesod-auth, yesod-core
+     }:
+     mkDerivation {
+       pname = "yesod-auth-lti13";
+       version = "0.1.2.2";
+       sha256 = "0r1hbnij2dyka1jgxrql9ymfcdc1y60x593a3dmnnw86qksbkb8r";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson aeson-pretty base base64-bytestring bytestring containers
+         cryptonite http-client http-conduit jose-jwt load-env lti13
+         microlens oidc-client random safe-exceptions text time warp yesod
+         yesod-auth yesod-core
+       ];
+       description = "A yesod-auth plugin for LTI 1.3";
+       license = stdenv.lib.licenses.lgpl3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "yesod-auth-nopassword" = callPackage
     ({ mkDerivation, base, blaze-markup, http-types, pwstore-fast, text
      , uuid, yesod-auth, yesod-core, yesod-form
@@ -273769,20 +280557,21 @@ self: {
      }) {};
 
   "yesod-auth-oauth2" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, errors, hoauth2, hspec
-     , http-client, http-conduit, http-types, microlens, random
-     , safe-exceptions, text, uri-bytestring, yesod-auth, yesod-core
+    ({ mkDerivation, aeson, base, bytestring, cryptonite, errors
+     , hoauth2, hspec, http-client, http-conduit, http-types, memory
+     , microlens, safe-exceptions, text, uri-bytestring, yesod-auth
+     , yesod-core
      }:
      mkDerivation {
        pname = "yesod-auth-oauth2";
-       version = "0.6.1.2";
-       sha256 = "07jm60q1fbdk53ncirbi8clsimg28k9j12kaq0vx2apn2rlmdy2w";
+       version = "0.6.1.5";
+       sha256 = "1awd16wli7g746sf5aqkzb0nglcbji3pl5yyximhb2ab2gjl2ank";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson base bytestring errors hoauth2 http-client http-conduit
-         http-types microlens random safe-exceptions text uri-bytestring
-         yesod-auth yesod-core
+         aeson base bytestring cryptonite errors hoauth2 http-client
+         http-conduit http-types memory microlens safe-exceptions text
+         uri-bytestring yesod-auth yesod-core
        ];
        testHaskellDepends = [ base hspec uri-bytestring ];
        description = "OAuth 2.0 authentication plugins";
@@ -273857,8 +280646,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-bin";
-       version = "1.6.0.4";
-       sha256 = "0wz44w4c86513ss81a18rknkrkalxyj2g4rlq324ykqwwkihlr1a";
+       version = "1.6.0.6";
+       sha256 = "044xk75pymw6limz08zicxp4lw8jqf6f2ilj8i2qw2h419w3ry9f";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -274034,6 +280823,45 @@ self: {
        pname = "yesod-core";
        version = "1.6.18";
        sha256 = "1hm0frswqcj34scvapszdryjfmnrqq5fhf5hv7qcz8sj3qf46zkd";
+       revision = "1";
+       editedCabalFile = "14n8l28k6gykym9b3m9kw2j1m8dmiajxqgydpnrr7v75a64xqas9";
+       libraryHaskellDepends = [
+         aeson auto-update base blaze-html blaze-markup bytestring
+         case-insensitive cereal clientsession conduit conduit-extra
+         containers cookie deepseq fast-logger http-types memory
+         monad-logger mtl parsec path-pieces primitive random resourcet
+         shakespeare template-haskell text time transformers unix-compat
+         unliftio unordered-containers vector wai wai-extra wai-logger warp
+         word8
+       ];
+       testHaskellDepends = [
+         async base bytestring clientsession conduit conduit-extra
+         containers cookie hspec hspec-expectations http-types HUnit network
+         path-pieces random resourcet shakespeare streaming-commons
+         template-haskell text transformers unliftio wai wai-extra warp
+       ];
+       benchmarkHaskellDepends = [
+         base blaze-html bytestring gauge shakespeare text
+       ];
+       description = "Creation of type-safe, RESTful web applications";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "yesod-core_1_6_18_4" = callPackage
+    ({ mkDerivation, aeson, async, auto-update, base, blaze-html
+     , blaze-markup, bytestring, case-insensitive, cereal, clientsession
+     , conduit, conduit-extra, containers, cookie, deepseq, fast-logger
+     , gauge, hspec, hspec-expectations, http-types, HUnit, memory
+     , monad-logger, mtl, network, parsec, path-pieces, primitive
+     , random, resourcet, shakespeare, streaming-commons
+     , template-haskell, text, time, transformers, unix-compat, unliftio
+     , unordered-containers, vector, wai, wai-extra, wai-logger, warp
+     , word8
+     }:
+     mkDerivation {
+       pname = "yesod-core";
+       version = "1.6.18.4";
+       sha256 = "1i69k0782prgf3wzi714fx0g3jsd654kncn62c7sijsbs0zc6h5h";
        libraryHaskellDepends = [
          aeson auto-update base blaze-html blaze-markup bytestring
          case-insensitive cereal clientsession conduit conduit-extra
@@ -274054,6 +280882,7 @@ self: {
        ];
        description = "Creation of type-safe, RESTful web applications";
        license = stdenv.lib.licenses.mit;
+       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "yesod-crud" = callPackage
@@ -274637,6 +281466,30 @@ self: {
        license = stdenv.lib.licenses.mit;
      }) {};
 
+  "yesod-page-cursor" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, hspec
+     , hspec-expectations-lifted, http-link-header, http-types, lens
+     , lens-aeson, monad-logger, mtl, network-uri, persistent
+     , persistent-sqlite, persistent-template, scientific, text, time
+     , unliftio, unliftio-core, wai-extra, yesod, yesod-core, yesod-test
+     }:
+     mkDerivation {
+       pname = "yesod-page-cursor";
+       version = "2.0.0.0";
+       sha256 = "0dlr16jkv104siq7r7ff02x60dy6bvhrgq43s5g8iydc9khafai8";
+       libraryHaskellDepends = [
+         aeson base bytestring containers http-link-header network-uri text
+         unliftio yesod-core
+       ];
+       testHaskellDepends = [
+         aeson base bytestring hspec hspec-expectations-lifted
+         http-link-header http-types lens lens-aeson monad-logger mtl
+         persistent persistent-sqlite persistent-template scientific text
+         time unliftio unliftio-core wai-extra yesod yesod-core yesod-test
+       ];
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "yesod-paginate" = callPackage
     ({ mkDerivation, base, template-haskell, yesod }:
      mkDerivation {
@@ -274992,15 +281845,14 @@ self: {
 
   "yesod-recaptcha2" = callPackage
     ({ mkDerivation, aeson, base, classy-prelude, http-conduit
-     , yesod-auth, yesod-core, yesod-form
+     , yesod-core, yesod-form
      }:
      mkDerivation {
        pname = "yesod-recaptcha2";
-       version = "1.0.0";
-       sha256 = "1hg5g90ld4jc1ggi6rg0si35rr8r8dq79a221zjzs37hsla2cr7i";
+       version = "1.0.1";
+       sha256 = "0mf9n016jxiq6ayq80fv9zldfjh9yskcq8p9grfr0dl8njj88yn5";
        libraryHaskellDepends = [
-         aeson base classy-prelude http-conduit yesod-auth yesod-core
-         yesod-form
+         aeson base classy-prelude http-conduit yesod-core yesod-form
        ];
        description = "yesod recaptcha2";
        license = stdenv.lib.licenses.mit;
@@ -275194,14 +282046,14 @@ self: {
      , blaze-builder, bytestring, conduit, containers, cryptonite
      , cryptonite-conduit, css-text, data-default, directory, file-embed
      , filepath, hashable, hjsmin, hspec, http-types, HUnit, memory
-     , mime-types, process, template-haskell, text, transformers
+     , mime-types, process, rio, template-haskell, text, transformers
      , unix-compat, unordered-containers, wai, wai-app-static, wai-extra
      , yesod-core, yesod-test
      }:
      mkDerivation {
        pname = "yesod-static";
-       version = "1.6.0.1";
-       sha256 = "1jd0ryfr2vyrwasyvbqmc6j4ngv1lgz78w427f169l7gyl1firxb";
+       version = "1.6.1.0";
+       sha256 = "18f5hm9ncvkzl8bkn39cg841z0k5iqs5w45afsyk9y6k98pjd54p";
        libraryHaskellDepends = [
          async attoparsec base base64-bytestring blaze-builder bytestring
          conduit containers cryptonite cryptonite-conduit css-text
@@ -275214,8 +282066,9 @@ self: {
          async base base64-bytestring bytestring conduit containers
          cryptonite cryptonite-conduit data-default directory file-embed
          filepath hjsmin hspec http-types HUnit memory mime-types process
-         template-haskell text transformers unix-compat unordered-containers
-         wai wai-app-static wai-extra yesod-core yesod-test
+         rio template-haskell text transformers unix-compat
+         unordered-containers wai wai-app-static wai-extra yesod-core
+         yesod-test
        ];
        description = "Static file serving subsite for Yesod Web Framework";
        license = stdenv.lib.licenses.mit;
@@ -275331,35 +282184,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-test";
-       version = "1.6.9";
-       sha256 = "0v25lqq7hgd5lggnyfd9kamkzd4126rd7vlhc131n253n4by4yak";
-       libraryHaskellDepends = [
-         aeson attoparsec base blaze-builder blaze-html bytestring
-         case-insensitive conduit containers cookie hspec-core html-conduit
-         http-types HUnit memory network pretty-show semigroups text time
-         transformers wai wai-extra xml-conduit xml-types yesod-core
-       ];
-       testHaskellDepends = [
-         base bytestring containers cookie hspec html-conduit http-types
-         HUnit text unliftio unliftio-core wai wai-extra xml-conduit
-         yesod-core yesod-form
-       ];
-       description = "integration testing for WAI/Yesod Applications";
-       license = stdenv.lib.licenses.mit;
-     }) {};
-
-  "yesod-test_1_6_9_1" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, blaze-builder, blaze-html
-     , bytestring, case-insensitive, conduit, containers, cookie, hspec
-     , hspec-core, html-conduit, http-types, HUnit, memory, network
-     , pretty-show, semigroups, text, time, transformers, unliftio
-     , unliftio-core, wai, wai-extra, xml-conduit, xml-types, yesod-core
-     , yesod-form
-     }:
-     mkDerivation {
-       pname = "yesod-test";
-       version = "1.6.9.1";
-       sha256 = "01dr3p51nxxj8ihhivi3sdrg1xhjj7pvkzgz59ph823hhh9yd3cx";
+       version = "1.6.10";
+       sha256 = "0vw6yg5b22a6flbl822z23k0l23as5mmxjcdnj2zgjjv5i713yfx";
        libraryHaskellDepends = [
          aeson attoparsec base blaze-builder blaze-html bytestring
          case-insensitive conduit containers cookie hspec-core html-conduit
@@ -275373,7 +282199,6 @@ self: {
        ];
        description = "integration testing for WAI/Yesod Applications";
        license = stdenv.lib.licenses.mit;
-       hydraPlatforms = stdenv.lib.platforms.none;
      }) {};
 
   "yesod-test-json" = callPackage
@@ -275588,15 +282413,20 @@ self: {
      }) {};
 
   "yhseq" = callPackage
-    ({ mkDerivation, base, hspec, hspec-discover }:
+    ({ mkDerivation, base, containers, hspec, hspec-discover, vector }:
      mkDerivation {
        pname = "yhseq";
-       version = "0.2.1.2";
-       sha256 = "1mxjfbnic6pn4jnyc83afpmgq4wnb09f72d359pwx693mfi6vbiy";
-       libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base hspec hspec-discover ];
+       version = "0.3.0.1";
+       sha256 = "1daipppqia4ig7xa9wxy2g3gcxrcwhxm1g6j5l81v56vfh0smg9r";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [ base containers vector ];
+       executableHaskellDepends = [ base containers vector ];
+       testHaskellDepends = [
+         base containers hspec hspec-discover vector
+       ];
        testToolDepends = [ hspec-discover ];
-       description = "Calculation of Y-sequence Hexirp edition";
+       description = "Calculation of YH sequence system";
        license = stdenv.lib.licenses.asl20;
      }) {};
 
@@ -276504,8 +283334,8 @@ self: {
      }:
      mkDerivation {
        pname = "z3";
-       version = "408.1";
-       sha256 = "1r54d289rdfvxqk0774hhh0x2kj8zsh7graahqwwp76r911jb8bp";
+       version = "408.2";
+       sha256 = "1fjf9pfj3fhhcd0ak8rm6m5im2il8n5d21z8yv5c32xnsgj7z89a";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers transformers ];
@@ -276513,7 +283343,7 @@ self: {
        testHaskellDepends = [ base hspec QuickCheck ];
        description = "Bindings for the Z3 Theorem Prover";
        license = stdenv.lib.licenses.bsd3;
-     }) {gomp = null; inherit (pkgs) z3;};
+     }) {inherit (pkgs) gomp; inherit (pkgs) z3;};
 
   "z3-encoding" = callPackage
     ({ mkDerivation, base, containers, hspec, mtl, z3 }:
@@ -276638,6 +283468,55 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
+  "zenacy-html" = callPackage
+    ({ mkDerivation, base, bytestring, containers, criterion
+     , data-default, dlist, extra, HUnit, mtl, pretty-show
+     , raw-strings-qq, safe, safe-exceptions, test-framework
+     , test-framework-hunit, text, transformers, vector, word8
+     }:
+     mkDerivation {
+       pname = "zenacy-html";
+       version = "2.0.2";
+       sha256 = "12m953skm4ms6y211ahjrr6gkmrh4p3h2snpcpg1fc039nxgkc9p";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring containers data-default dlist extra mtl pretty-show
+         safe safe-exceptions text transformers vector word8
+       ];
+       executableHaskellDepends = [
+         base bytestring containers data-default dlist extra pretty-show
+         text vector
+       ];
+       testHaskellDepends = [
+         base bytestring containers data-default dlist extra HUnit mtl
+         pretty-show raw-strings-qq test-framework test-framework-hunit text
+         transformers
+       ];
+       benchmarkHaskellDepends = [
+         base bytestring containers criterion data-default dlist pretty-show
+         raw-strings-qq text
+       ];
+       description = "A standard compliant HTML parsing library";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
+  "zenacy-unicode" = callPackage
+    ({ mkDerivation, base, bytestring, HUnit, test-framework
+     , test-framework-hunit, text, vector, word8
+     }:
+     mkDerivation {
+       pname = "zenacy-unicode";
+       version = "1.0.0";
+       sha256 = "03sksmmmn380nvh0f139g63b4yx42ziimv79xjja7yx6mhaa0pqf";
+       libraryHaskellDepends = [ base bytestring vector word8 ];
+       testHaskellDepends = [
+         base bytestring HUnit test-framework test-framework-hunit text
+       ];
+       description = "Unicode utilities for Haskell";
+       license = stdenv.lib.licenses.mit;
+     }) {};
+
   "zenc" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -276714,8 +283593,8 @@ self: {
      }:
      mkDerivation {
        pname = "zeolite-lang";
-       version = "0.7.0.2";
-       sha256 = "0n51sbivvzjnspwp2j4mxsm552b0ay7hgmlvj16xy5w17z8r9pg2";
+       version = "0.8.0.0";
+       sha256 = "1ahr69w65hd70jc0jrc3dfz1gnjqxlg9w24djzm6826wskg31fa9";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -276733,38 +283612,34 @@ self: {
      }) {};
 
   "zephyr" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, ansi-wl-pprint, base
+    ({ mkDerivation, aeson, ansi-terminal, ansi-wl-pprint, async, base
      , base-compat, boxes, bytestring, containers, directory, filepath
      , formatting, Glob, hspec, hspec-core, HUnit, language-javascript
      , mtl, optparse-applicative, process, purescript, QuickCheck, safe
-     , text, transformers, transformers-base, transformers-compat
-     , utf8-string
+     , text, transformers, utf8-string
      }:
      mkDerivation {
        pname = "zephyr";
-       version = "0.2.1";
-       sha256 = "0yhpy1dwh1axbh3xgxn97vnh616pywz56r7gy6sfvqaxj9bqviha";
+       version = "0.3.2";
+       sha256 = "0p0n4p4792jdivgqdwf2brbkrw6b5rxfzfq9ph0sjw7h3gkj1was";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         aeson ansi-terminal base base-compat boxes bytestring containers
-         directory filepath formatting Glob language-javascript mtl
-         optparse-applicative purescript safe text transformers
-         transformers-base transformers-compat utf8-string
+         aeson ansi-terminal base base-compat boxes containers formatting
+         language-javascript mtl purescript safe text
        ];
        executableHaskellDepends = [
-         aeson ansi-terminal ansi-wl-pprint base base-compat bytestring
-         containers directory filepath formatting Glob language-javascript
-         mtl optparse-applicative purescript text transformers
-         transformers-base transformers-compat utf8-string
+         aeson ansi-terminal ansi-wl-pprint async base bytestring containers
+         directory filepath formatting Glob language-javascript mtl
+         optparse-applicative purescript text transformers utf8-string
        ];
        testHaskellDepends = [
-         aeson ansi-terminal base base-compat bytestring containers
-         directory filepath hspec hspec-core HUnit language-javascript mtl
-         optparse-applicative process purescript QuickCheck text
-         transformers transformers-base transformers-compat utf8-string
+         aeson base base-compat containers directory hspec hspec-core HUnit
+         language-javascript mtl optparse-applicative process purescript
+         QuickCheck text transformers utf8-string
        ];
-       description = "Zephyr tree shaking for PureScript Language";
+       testToolDepends = [ purescript ];
+       description = "Zephyr, tree-shaking for the PureScript language";
        license = stdenv.lib.licenses.mpl20;
        hydraPlatforms = stdenv.lib.platforms.none;
        broken = true;
@@ -277000,6 +283875,32 @@ self: {
        broken = true;
      }) {};
 
+  "zettelkast" = callPackage
+    ({ mkDerivation, base, containers, directory, filepath, lens, mtl
+     , optparse-generic, pandoc, pandoc-types, pointed, process, text
+     , time, transformers
+     }:
+     mkDerivation {
+       pname = "zettelkast";
+       version = "0.1.0.0";
+       sha256 = "111383ddpalaiwbq5plyi02v2givv21xnxb4j0fb31k8ssmkgbqj";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base containers directory filepath lens mtl pandoc pandoc-types
+         pointed process text time
+       ];
+       executableHaskellDepends = [
+         base containers directory lens optparse-generic process text time
+         transformers
+       ];
+       testHaskellDepends = [ base ];
+       description = "Command-line utility for working with zettelkast files";
+       license = stdenv.lib.licenses.bsd3;
+       hydraPlatforms = stdenv.lib.platforms.none;
+       broken = true;
+     }) {};
+
   "zifter" = callPackage
     ({ mkDerivation, ansi-terminal, async, base, colour, directory
      , exceptions, filepath, genvalidity, genvalidity-hspec
@@ -277186,6 +284087,23 @@ self: {
        license = stdenv.lib.licenses.gpl2Plus;
      }) {};
 
+  "zio" = callPackage
+    ({ mkDerivation, base, mtl, transformers, unexceptionalio
+     , unexceptionalio-trans
+     }:
+     mkDerivation {
+       pname = "zio";
+       version = "0.1.0.0";
+       sha256 = "001bkysr4n5azly7cmn7xbgw0bg00ib4yg83klz0k0b5217wg982";
+       libraryHaskellDepends = [
+         base mtl transformers unexceptionalio unexceptionalio-trans
+       ];
+       testHaskellDepends = [
+         base mtl transformers unexceptionalio unexceptionalio-trans
+       ];
+       license = stdenv.lib.licenses.mpl20;
+     }) {};
+
   "zip" = callPackage
     ({ mkDerivation, base, bytestring, bzlib-conduit, case-insensitive
      , cereal, conduit, conduit-extra, containers, digest, directory
@@ -277195,8 +284113,10 @@ self: {
      }:
      mkDerivation {
        pname = "zip";
-       version = "1.3.2";
-       sha256 = "0nmqp34w82wzlkip9zk05dy4yjnwy8dc2k7n1kq0rrdsb9zsc360";
+       version = "1.5.0";
+       sha256 = "00lqf0bw6abxdj9rs658blbhabzr1fd1w9dh0qflyxqkd8fqj7h5";
+       revision = "1";
+       editedCabalFile = "08r12h84zp55lfqh53srmivf4xzyq2yyyiw12ja73ipnb0y2ag7i";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -277214,24 +284134,24 @@ self: {
        license = stdenv.lib.licenses.bsd3;
      }) {};
 
-  "zip_1_5_0" = callPackage
+  "zip_1_6_0" = callPackage
     ({ mkDerivation, base, bytestring, bzlib-conduit, case-insensitive
-     , cereal, conduit, conduit-extra, containers, digest, directory
-     , dlist, exceptions, filepath, hspec, monad-control, mtl
+     , cereal, conduit, conduit-extra, conduit-zstd, containers, digest
+     , directory, dlist, exceptions, filepath, hspec, monad-control, mtl
      , QuickCheck, resourcet, temporary, text, time, transformers
      , transformers-base
      }:
      mkDerivation {
        pname = "zip";
-       version = "1.5.0";
-       sha256 = "00lqf0bw6abxdj9rs658blbhabzr1fd1w9dh0qflyxqkd8fqj7h5";
+       version = "1.6.0";
+       sha256 = "1k00g2952yf3iyq1p6pjn307zsxsc9j3iq6lih3rr8vysiijivcx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base bytestring bzlib-conduit case-insensitive cereal conduit
-         conduit-extra containers digest directory dlist exceptions filepath
-         monad-control mtl resourcet text time transformers
-         transformers-base
+         conduit-extra conduit-zstd containers digest directory dlist
+         exceptions filepath monad-control mtl resourcet text time
+         transformers transformers-base
        ];
        executableHaskellDepends = [ base filepath ];
        testHaskellDepends = [
@@ -277373,8 +284293,8 @@ self: {
      }:
      mkDerivation {
        pname = "zipper-extra";
-       version = "0.1.2.0";
-       sha256 = "1734kq6q64ilvxdssjgzyhgm8wpdwbwn59n5v23z40jvqwzy1c62";
+       version = "0.1.3.2";
+       sha256 = "0cq21hf40qp025ir9kihsp6b09bsrlgiqd5cfq688w57c2vhcmci";
        libraryHaskellDepends = [
          base comonad comonad-extras exceptions split
        ];
@@ -277465,10 +284385,8 @@ self: {
      }:
      mkDerivation {
        pname = "zlib";
-       version = "0.6.2.1";
-       sha256 = "1l11jraslcrp9d4wnhwfyhwk4fsiq1aq8i6vj81vcq1m2zzi1y7h";
-       revision = "1";
-       editedCabalFile = "0i9g71jvdw22bi9bi8dm5khwzcsv6cv8yadmf7afklg4xigxykfk";
+       version = "0.6.2.2";
+       sha256 = "1fii0qfc60lfp93vwb78p2fv3jjyklgdhw4ms262z6cysq6qkd84";
        libraryHaskellDepends = [ base bytestring ];
        librarySystemDepends = [ zlib ];
        testHaskellDepends = [
@@ -277758,36 +284676,36 @@ self: {
 
   "zre" = callPackage
     ({ mkDerivation, async, attoparsec, base, binary, bytestring
-     , config-ini, containers, data-default, directory, filepath
-     , lifted-async, monad-control, mtl, network, network-bsd
-     , network-info, network-multicast, optparse-applicative, process
-     , QuickCheck, quickcheck-instances, random, repline, sockaddr, stm
-     , text, time, transformers-base, uuid, zeromq4-haskell
+     , cereal, containers, data-default, directory, filepath
+     , lifted-async, lifted-base, monad-control, mtl, network
+     , network-bsd, network-info, network-multicast
+     , optparse-applicative, process, QuickCheck, quickcheck-instances
+     , random, repline, sockaddr, stm, text, time, transformers-base
+     , uuid, zeromq4-haskell
      }:
      mkDerivation {
        pname = "zre";
-       version = "0.1.0.2";
-       sha256 = "09h1vsnm9p4yds8k4k7c5ixn8q6cikwkiw6wxf7srl9bbrwxhj9l";
+       version = "0.1.4.0";
+       sha256 = "1877q8qshp88sghnys6a52c6sjc9qxxg062j473fjyv0vc4cpy4d";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         async attoparsec base binary bytestring config-ini containers
-         data-default directory filepath monad-control mtl network
-         network-bsd network-info network-multicast optparse-applicative
-         process random sockaddr stm text time transformers-base uuid
-         zeromq4-haskell
+         async attoparsec base binary bytestring cereal containers
+         data-default directory filepath lifted-async lifted-base
+         monad-control mtl network network-bsd network-info
+         network-multicast optparse-applicative process random sockaddr stm
+         text time transformers-base uuid zeromq4-haskell
        ];
        executableHaskellDepends = [
-         async base bytestring lifted-async monad-control mtl repline stm
-         time
+         async base bytestring lifted-async monad-control mtl
+         optparse-applicative repline stm time
        ];
        testHaskellDepends = [
          base bytestring QuickCheck quickcheck-instances uuid
        ];
        description = "ZRE protocol implementation";
        license = stdenv.lib.licenses.bsd3;
-       hydraPlatforms = stdenv.lib.platforms.none;
-       broken = true;
+       maintainers = with stdenv.lib.maintainers; [ sorki ];
      }) {};
 
   "zsdd" = callPackage
@@ -277864,8 +284782,8 @@ self: {
        pname = "ztail";
        version = "1.2.0.2";
        sha256 = "05vpq3kiv1xrby2k1qn41s42cxxxblcgxpnw1sgyznx63pal2hx1";
-       revision = "1";
-       editedCabalFile = "0d0cpgb0v849zxl12c2gkm3x4nmyfycka1pcfix43lawx62rky8s";
+       revision = "2";
+       editedCabalFile = "16w0hgjvj45azdgkzvykiznds5sa38mq9xf5022r7qfhpvps65y0";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
diff --git a/nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix b/nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix
index 9a2ff6f4a2ad..7cd4547d9042 100644
--- a/nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/non-hackage-packages.nix
@@ -10,10 +10,27 @@ self: super: {
   multi-ghc-travis = throw ("haskellPackages.multi-ghc-travis has been renamed"
     + " to haskell-ci, which is now on hackage");
 
+  dconf2nix = self.callPackage ../tools/haskell/dconf2nix/dconf2nix.nix { };
+
   # https://github.com/channable/vaultenv/issues/1
   vaultenv = self.callPackage ../tools/haskell/vaultenv { };
 
   # spago is not released to Hackage.
   # https://github.com/spacchetti/spago/issues/512
   spago = self.callPackage ../tools/purescript/spago/spago.nix { };
+
+  # HLS and its fork of ghcide that it uses
+  # both are auto-generated by pkgs/development/tools/haskell/haskell-language-server/update.sh
+  haskell-language-server = self.callPackage ../tools/haskell/haskell-language-server { };
+  hls-ghcide = self.callPackage ../tools/haskell/haskell-language-server/hls-ghcide.nix { };
+  hls-brittany = self.callPackage ../tools/haskell/haskell-language-server/hls-brittany.nix { };
+
+  # cabal2nix --revision <rev> https://github.com/hasura/ci-info-hs.git
+  ci-info = self.callPackage ../misc/haskell/hasura/ci-info {};
+  # cabal2nix --revision <rev> https://github.com/hasura/pg-client-hs.git
+  pg-client = self.callPackage ../misc/haskell/hasura/pg-client {};
+  # cabal2nix --revision <rev> https://github.com/hasura/graphql-parser-hs.git
+  graphql-parser = self.callPackage ../misc/haskell/hasura/graphql-parser {};
+  # cabal2nix  --subpath server --maintainer offline --no-check --revision 1.2.1 https://github.com/hasura/graphql-engine.git
+  graphql-engine = self.callPackage ../misc/haskell/hasura/graphql-engine {};
 }
diff --git a/nixpkgs/pkgs/development/haskell-modules/patches/hasura-884-compat.patch b/nixpkgs/pkgs/development/haskell-modules/patches/hasura-884-compat.patch
new file mode 100644
index 000000000000..bc000ba9cca2
--- /dev/null
+++ b/nixpkgs/pkgs/development/haskell-modules/patches/hasura-884-compat.patch
@@ -0,0 +1,26 @@
+diff --git server/src-lib/Hasura/GraphQL/Transport/WebSocket/Server.hs server/src-lib/Hasura/GraphQL/Transport/WebSocket/Server.hs
+index 6cb70cf0..0c3789cd 100644
+--- server/src-lib/Hasura/GraphQL/Transport/WebSocket/Server.hs
++++ server/src-lib/Hasura/GraphQL/Transport/WebSocket/Server.hs
+@@ -45,7 +45,7 @@ import           GHC.AssertNF
+ import qualified ListT
+ import qualified Network.WebSockets                   as WS
+ import qualified StmContainers.Map                    as STMMap
+-import qualified System.IO.Error                      as E
++--import qualified System.IO.Error                      as E
+ 
+ import qualified Hasura.Logging                       as L
+ 
+@@ -287,12 +287,6 @@ createServerApp (WSServer logger@(L.Logger writeLog) serverStatus) wsHandlers !p
+           let rcv = forever $ do
+                 -- Process all messages serially (important!), in a separate thread:
+                 msg <- liftIO $ 
+-                  -- Re-throw "receiveloop: resource vanished (Connection reset by peer)" :
+-                  --   https://github.com/yesodweb/wai/blob/master/warp/Network/Wai/Handler/Warp/Recv.hs#L112 
+-                  -- as WS exception signaling cleanup below. It's not clear why exactly this gets 
+-                  -- raised occasionally; I suspect an equivalent handler is missing from WS itself.
+-                  -- Regardless this should be safe:
+-                  handleJust (guard . E.isResourceVanishedError) (\()-> throw WS.ConnectionClosed) $
+                     WS.receiveData conn
+                 writeLog $ WSLog wsId (EMessageReceived $ TBS.fromLBS msg) Nothing
+                 _hOnMessage wsHandlers wsConn msg
diff --git a/nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix b/nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix
index 3b8d906cecef..32fa46fd04ac 100644
--- a/nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix
+++ b/nixpkgs/pkgs/development/haskell-modules/with-packages-wrapper.nix
@@ -105,15 +105,6 @@ symlinkJoin {
         --set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}"
     fi
 
-    # ghcide does package discovery without calling our ghc wrapper.
-    if [[ -x "$out/bin/ghcide" ]]; then
-      wrapProgram $out/bin/ghcide  \
-          --set "NIX_${ghcCommandCaps}"        "$out/bin/${ghcCommand}"     \
-          --set "NIX_${ghcCommandCaps}PKG"     "$out/bin/${ghcCommand}-pkg" \
-          --set "NIX_${ghcCommandCaps}_DOCDIR" "${docDir}"                  \
-          --set "NIX_${ghcCommandCaps}_LIBDIR" "${libDir}"
-    fi
-
   '' + (lib.optionalString (stdenv.targetPlatform.isDarwin && !isGhcjs && !stdenv.targetPlatform.isiOS) ''
     # Work around a linker limit in macOS Sierra (see generic-builder.nix):
     local packageConfDir="$out/lib/${ghc.name}/package.conf.d";
diff --git a/nixpkgs/pkgs/development/interpreters/acl2/0001-Fix-some-paths-for-Nix-build.patch b/nixpkgs/pkgs/development/interpreters/acl2/0001-Fix-some-paths-for-Nix-build.patch
new file mode 100644
index 000000000000..2b7f8b6a53b1
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/acl2/0001-Fix-some-paths-for-Nix-build.patch
@@ -0,0 +1,190 @@
+From 43d23211dd7d22b5264ed06d446f89d632125da8 Mon Sep 17 00:00:00 2001
+From: Keshav Kini <keshav.kini@gmail.com>
+Date: Sat, 30 May 2020 21:27:47 -0700
+Subject: [PATCH 1/2] Fix some paths for Nix build
+
+---
+ books/build/features.sh                       |  1 +
+ .../ipasir/load-ipasir-sharedlib-raw.lsp      | 16 +++----
+ books/projects/smtlink/config.lisp            |  2 +-
+ books/projects/smtlink/examples/examples.lisp |  4 +-
+ books/projects/smtlink/smtlink-config         |  2 +-
+ .../cl+ssl-20181018-git/src/reload.lisp       | 48 ++-----------------
+ .../shellpool-20150505-git/src/main.lisp      | 20 +-------
+ 7 files changed, 15 insertions(+), 78 deletions(-)
+
+diff --git a/books/build/features.sh b/books/build/features.sh
+index c8493d51a..def853f53 100755
+--- a/books/build/features.sh
++++ b/books/build/features.sh
+@@ -84,6 +84,7 @@ fi
+ 
+ 
+ echo "Determining whether an ipasir shared library is installed" 1>&2
++IPASIR_SHARED_LIBRARY=${IPASIR_SHARED_LIBRARY:-@libipasirglucose4@/lib/libipasirglucose4.so}
+ if [[ $IPASIR_SHARED_LIBRARY != '' ]];
+ then
+     if [[ -e $IPASIR_SHARED_LIBRARY ]];
+diff --git a/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp b/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp
+index c6b0b3185..5ac5c675a 100644
+--- a/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp
++++ b/books/centaur/ipasir/load-ipasir-sharedlib-raw.lsp
+@@ -28,13 +28,9 @@
+ ;
+ ; Original authors: Sol Swords <sswords@centtech.com>
+ 
+-(er-let* ((libname (acl2::getenv$ "IPASIR_SHARED_LIBRARY" acl2::*the-live-state*)))
+-         (if libname
+-             (handler-case 
+-               (cffi::load-foreign-library libname)
+-               (error () (er hard? 'load-ipasir-shardlib-raw
+-                             "Couldn't load the specified ipasir shared library, ~s0."
+-                             libname)))
+-           (er hard? 'load-ipasir-shardlib-raw
+-               "Couldn't load an ipasir library because the ~
+-                IPASIR_SHARED_LIBRARY environment variable was unset.")))
++(let ((libname "@libipasirglucose4@/lib/libipasirglucose4.so"))
++  (handler-case
++      (cffi::load-foreign-library libname)
++    (error () (er hard? 'load-ipasir-shardlib-raw
++                  "Couldn't load the specified ipasir shared library, ~s0."
++                  libname))))
+diff --git a/books/projects/smtlink/config.lisp b/books/projects/smtlink/config.lisp
+index c74073174..8d92355f7 100644
+--- a/books/projects/smtlink/config.lisp
++++ b/books/projects/smtlink/config.lisp
+@@ -51,7 +51,7 @@ where the system books are."))
+     (make-smtlink-config :interface-dir interface-dir
+                          :smt-module "ACL2_to_Z3"
+                          :smt-class "ACL22SMT"
+-                         :smt-cmd "/usr/bin/env python"
++                         :smt-cmd "python"
+                          :pythonpath "")))
+ 
+ ;; -----------------------------------------------------------------
+diff --git a/books/projects/smtlink/examples/examples.lisp b/books/projects/smtlink/examples/examples.lisp
+index bc66e0165..24f0d639c 100644
+--- a/books/projects/smtlink/examples/examples.lisp
++++ b/books/projects/smtlink/examples/examples.lisp
+@@ -75,7 +75,7 @@ Subgoal 2
+ Subgoal 2.2
+ Subgoal 2.2'
+ Using default SMT-trusted-cp...
+-; SMT solver: `/usr/bin/env python /tmp/py_file/smtlink.w59zR`: 0.52 sec, 7,904 bytes
++; SMT solver: `python /tmp/py_file/smtlink.w59zR`: 0.52 sec, 7,904 bytes
+ Proved!
+ Subgoal 2.2''
+ Subgoal 2.1
+@@ -139,7 +139,7 @@ read back into ACL2.  Below are the outputs from this clause processor called
+ 
+ @({
+ Using default SMT-trusted-cp...
+-; SMT solver: `/usr/bin/env python /tmp/py_file/smtlink.w59zR`: 0.52 sec, 7,904 bytes
++; SMT solver: `python /tmp/py_file/smtlink.w59zR`: 0.52 sec, 7,904 bytes
+ Proved!
+ })
+ 
+diff --git a/books/projects/smtlink/smtlink-config b/books/projects/smtlink/smtlink-config
+index 0d2703545..0f58904ea 100644
+--- a/books/projects/smtlink/smtlink-config
++++ b/books/projects/smtlink/smtlink-config
+@@ -1 +1 @@
+-smt-cmd=/usr/bin/env python
++smt-cmd=python
+diff --git a/books/quicklisp/bundle/software/cl+ssl-20181018-git/src/reload.lisp b/books/quicklisp/bundle/software/cl+ssl-20181018-git/src/reload.lisp
+index 3f6aa35d0..ac4012363 100644
+--- a/books/quicklisp/bundle/software/cl+ssl-20181018-git/src/reload.lisp
++++ b/books/quicklisp/bundle/software/cl+ssl-20181018-git/src/reload.lisp
+@@ -20,54 +20,12 @@
+ (in-package :cl+ssl)
+ 
+ (cffi:define-foreign-library libcrypto
+-  (:openbsd "libcrypto.so")
+-  (:darwin (:or "/opt/local/lib/libcrypto.dylib" ;; MacPorts
+-                "/sw/lib/libcrypto.dylib"        ;; Fink
+-                "/usr/local/opt/openssl/lib/libcrypto.dylib" ;; Homebrew
+-                "/usr/local/lib/libcrypto.dylib" ;; personalized install
+-                "libcrypto.dylib"                ;; default system libcrypto, which may have insufficient crypto
+-                "/usr/lib/libcrypto.dylib")))
++  (t "@openssl@/lib/libcrypto.so"))
+ 
+ (cffi:define-foreign-library libssl
+-  (:windows (:or "libssl32.dll" "ssleay32.dll"))
+-  ;; The default OS-X libssl seems have had insufficient crypto algos
+-  ;; (missing TLSv1_[1,2]_XXX methods,
+-  ;; see https://github.com/cl-plus-ssl/cl-plus-ssl/issues/56)
+-  ;; so first try to load possible custom installations of libssl
+-  (:darwin (:or "/opt/local/lib/libssl.dylib" ;; MacPorts
+-                "/sw/lib/libssl.dylib"        ;; Fink
+-                "/usr/local/opt/openssl/lib/libssl.dylib" ;; Homebrew
+-                "/usr/local/lib/libssl.dylib" ;; personalized install
+-                "libssl.dylib"                ;; default system libssl, which may have insufficient crypto
+-                "/usr/lib/libssl.dylib"))
+-  (:solaris (:or "/lib/64/libssl.so"
+-                 "libssl.so.0.9.8" "libssl.so" "libssl.so.4"))
+-  ;; Unlike some other systems, OpenBSD linker,
+-  ;; when passed library name without versions at the end,
+-  ;; will locate the library with highest macro.minor version,
+-  ;; so we can just use just "libssl.so".
+-  ;; More info at https://github.com/cl-plus-ssl/cl-plus-ssl/pull/2.
+-  (:openbsd "libssl.so")
+-  ((and :unix (not :cygwin)) (:or "libssl.so.1.0.2m"
+-                                  "libssl.so.1.0.2k"
+-                                  "libssl.so.1.0.2"
+-                                  "libssl.so.1.0.1l"
+-                                  "libssl.so.1.0.1j"
+-                                  "libssl.so.1.0.1e"
+-                                  "libssl.so.1.0.1"
+-                                  "libssl.so.1.0.0q"
+-                                  "libssl.so.1.0.0"
+-                                  "libssl.so.0.9.8ze"
+-                                  "libssl.so.0.9.8"
+-                                  "libssl.so.10"
+-                                  "libssl.so.4"
+-                                  "libssl.so"))
+-  (:cygwin "cygssl-1.0.0.dll")
+-  (t (:default "libssl3")))
+-
+-(cffi:define-foreign-library libeay32
+-  (:windows "libeay32.dll"))
++  (t "@openssl@/lib/libssl.so"))
+ 
++(cffi:define-foreign-library libeay32)
+ 
+ (unless (member :cl+ssl-foreign-libs-already-loaded
+                 *features*)
+diff --git a/books/quicklisp/bundle/software/shellpool-20150505-git/src/main.lisp b/books/quicklisp/bundle/software/shellpool-20150505-git/src/main.lisp
+index cda8dc94c..11035ea09 100644
+--- a/books/quicklisp/bundle/software/shellpool-20150505-git/src/main.lisp
++++ b/books/quicklisp/bundle/software/shellpool-20150505-git/src/main.lisp
+@@ -106,26 +106,8 @@
+ ; Glue
+ 
+ 
+-#-sbcl
+ (defun find-bash ()
+-  #+windows "bash.exe"
+-  #-windows "bash")
+-
+-#+sbcl
+-;; SBCL (on Linux, at least) won't successfully run "bash" all by itself.  So,
+-;; on SBCL, try to find a likely bash.  BOZO this probably isn't great.  It
+-;; would be better to search the user's PATH for which bash to use.
+-(let ((found-bash))
+-  (defun find-bash ()
+-    (or found-bash
+-        (let ((paths-to-try '("/bin/bash"
+-                              "/usr/bin/bash"
+-                              "/usr/local/bin/bash")))
+-          (loop for path in paths-to-try do
+-                (when (cl-fad::file-exists-p path)
+-                  (setq found-bash path)
+-                  (return-from find-bash path)))
+-          (error "Bash not found among ~s" paths-to-try)))))
++  "@bash@/bin/bash")
+ 
+ #+(or allegro lispworks)
+ (defstruct bashprocess
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/development/interpreters/acl2/0002-Restrict-RDTSC-to-x86.patch b/nixpkgs/pkgs/development/interpreters/acl2/0002-Restrict-RDTSC-to-x86.patch
new file mode 100644
index 000000000000..74af5adef649
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/acl2/0002-Restrict-RDTSC-to-x86.patch
@@ -0,0 +1,29 @@
+From b0ccf68f277d0bd5e6fc9d41742f31ddda99a955 Mon Sep 17 00:00:00 2001
+From: Keshav Kini <keshav.kini@gmail.com>
+Date: Mon, 1 Jun 2020 21:42:24 -0700
+Subject: [PATCH 2/2] Restrict RDTSC to x86
+
+Backported from [1].  According to Curtis Dunham, this should fix the ACL2 base
+system build on ARM.
+
+[1]: https://github.com/acl2/acl2/commit/292fa2ccc6217e6307d7bb8373eb90f5d258ea5e
+---
+ memoize-raw.lisp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/memoize-raw.lisp b/memoize-raw.lisp
+index 205e78653..478198dee 100644
+--- a/memoize-raw.lisp
++++ b/memoize-raw.lisp
+@@ -189,7 +189,7 @@
+ ;; RDTSC nonsense, but we still can report mysterious results since we have no
+ ;; clue about which core we are running on in CCL (or, presumably, SBCL).
+ 
+-#+(or ccl sbcl)
++#+(and (or ccl sbcl) x86-64)
+ (eval-when
+  (:execute :compile-toplevel :load-toplevel)
+  (when #+ccl (fboundp 'ccl::rdtsc)
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/development/interpreters/acl2/default.nix b/nixpkgs/pkgs/development/interpreters/acl2/default.nix
index 39b243a0ce6a..e3c62aae9833 100644
--- a/nixpkgs/pkgs/development/interpreters/acl2/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/acl2/default.nix
@@ -1,15 +1,19 @@
-{ stdenv, fetchFromGitHub,
-  # perl, which, nettools,
-  sbcl }:
-
-let hashes = {
-  "8.0" = "1x1giy2c1y6krg3kf8pf9wrmvk981shv0pxcwi483yjqm90xng4r";
-  "8.3" = "0c0wimaf16nrr3d6cxq6p7nr7rxffvpmn66hkpwc1m6zpcipf0y5";
-};
-revs = {
-  "8.0" = "8.0";
-  "8.3" = "8.3";
-};
+{ stdenv, callPackage, fetchFromGitHub, writeShellScriptBin, substituteAll
+, sbcl, bash, which, perl, nettools
+, openssl, glucose, minisat, abc-verifier, z3, python2
+, certifyBooks ? true
+} @ args:
+
+let
+  # Disable immobile space so we don't run out of memory on large books; see
+  # http://www.cs.utexas.edu/users/moore/acl2/current/HTML/installation/requirements.html#Obtaining-SBCL
+  sbcl = args.sbcl.override { disableImmobileSpace = true; };
+
+  # Wrap to add `-model` argument because some of the books in 8.3 need this.
+  # Fixed upstream (https://github.com/acl2/acl2/commit/0359538a), so this can
+  # be removed in ACL2 8.4.
+  glucose = writeShellScriptBin "glucose" ''exec ${args.glucose}/bin/glucose -model "$@"'';
+
 in stdenv.mkDerivation rec {
   pname = "acl2";
   version = "8.3";
@@ -17,62 +21,117 @@ in stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "acl2-devel";
     repo = "acl2-devel";
-    rev = revs.${version};
-    sha256 = hashes.${version};
+    rev = "${version}";
+    sha256 = "0c0wimaf16nrr3d6cxq6p7nr7rxffvpmn66hkpwc1m6zpcipf0y5";
   };
 
-  buildInputs = [ sbcl
-    # which perl nettools
+  libipasirglucose4 = callPackage ./libipasirglucose4 { };
+
+  patches = [
+    (substituteAll {
+      src = ./0001-Fix-some-paths-for-Nix-build.patch;
+      inherit bash libipasirglucose4;
+      openssl = openssl.out;
+    })
+    ./0002-Restrict-RDTSC-to-x86.patch
   ];
 
+  buildInputs = [
+    # ACL2 itself only needs a Common Lisp compiler/interpreter:
+    sbcl
+  ] ++ stdenv.lib.optionals certifyBooks [
+    # To build community books, we need Perl and a couple of utilities:
+    which perl nettools
+    # Some of the books require one or more of these external tools:
+    openssl.out glucose minisat abc-verifier libipasirglucose4
+    z3 (python2.withPackages (ps: [ ps.z3 ]))
+  ];
+
+  # NOTE: Parallel building can be memory-intensive depending on the number of
+  # concurrent jobs.  For example, this build has been seen to use >120GB of
+  # RAM on an 85 core machine.
   enableParallelBuilding = true;
 
-  phases = "unpackPhase installPhase";
+  preConfigure = ''
+    # When certifying books, ACL2 doesn't like $HOME not existing.
+    export HOME=$(pwd)/fake-home
+  '' + stdenv.lib.optionalString certifyBooks ''
+    # Some books also care about $USER being nonempty.
+    export USER=nobody
+  '';
 
-  installSuffix = "acl2";
+  postConfigure = ''
+    # ACL2 and its books need to be built in place in the out directory because
+    # the proof artifacts are not relocatable. Since ACL2 mostly expects
+    # everything to exist in the original source tree layout, we put it in
+    # $out/share/${pname} and create symlinks in $out/bin as necessary.
+    mkdir -p $out/share/${pname}
+    cp -pR . $out/share/${pname}
+    cd $out/share/${pname}
+  '';
+
+  preBuild = "mkdir -p $HOME";
+  makeFlags="LISP=${sbcl}/bin/sbcl";
+
+  doCheck = true;
+  checkTarget = "mini-proveall";
 
   installPhase = ''
-    mkdir -p $out/share/${installSuffix}
     mkdir -p $out/bin
-    cp -R . $out/share/${installSuffix}
-    cd $out/share/${installSuffix}
+    ln -s $out/share/${pname}/saved_acl2           $out/bin/${pname}
+  '' + stdenv.lib.optionalString certifyBooks ''
+    ln -s $out/share/${pname}/books/build/cert.pl  $out/bin/${pname}-cert
+    ln -s $out/share/${pname}/books/build/clean.pl $out/bin/${pname}-clean
+  '';
 
-    # make ACL2 image
-    make LISP=${sbcl}/bin/sbcl
+  preDistPhases = [ (if certifyBooks then "certifyBooksPhase" else "removeBooksPhase") ];
 
-    # The community books don't build properly under Nix yet.
-    rm -rf books
-    #make ACL2=$out/share/saved_acl2 USE_QUICKLISP=1 regression-everything
+  certifyBooksPhase = ''
+    # Certify the community books
+    pushd $out/share/${pname}/books
+    makeFlags="ACL2=$out/share/${pname}/saved_acl2"
+    buildFlags="everything"
+    buildPhase
+    popd
+  '';
 
-    cp saved_acl2 $out/bin/acl2
+  removeBooksPhase = ''
+    # Delete the community books
+    rm -rf $out/share/${pname}/books
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "An interpreter and a prover for a Lisp dialect";
     longDescription = ''
-      ACL2 is a logic and programming language in which you can model
-      computer systems, together with a tool to help you prove
-      properties of those models. "ACL2" denotes "A Computational
-      Logic for Applicative Common Lisp".
-
-      ACL2 is part of the Boyer-Moore family of provers, for which its
-      authors have received the 2005 ACM Software System Award.
-
-      NOTE: In nixpkgs, the community books that usually ship with
-      ACL2 have been removed because it is not currently possible to
-      build them with Nix.
-    '';
+      ACL2 is a logic and programming language in which you can model computer
+      systems, together with a tool to help you prove properties of those
+      models. "ACL2" denotes "A Computational Logic for Applicative Common
+      Lisp".
+
+      ACL2 is part of the Boyer-Moore family of provers, for which its authors
+      have received the 2005 ACM Software System Award.
+
+      This package installs the main ACL2 executable ${pname}, as well as the
+      build tools cert.pl and clean.pl, renamed to ${pname}-cert and
+      ${pname}-clean.
+
+    '' + (if certifyBooks then ''
+      The community books are also included and certified with the `make
+      everything` target.
+    '' else ''
+      The community books are not included in this package.
+    '');
     homepage = "http://www.cs.utexas.edu/users/moore/acl2/";
     downloadPage = "https://github.com/acl2-devel/acl2-devel/releases";
-    # There are a bunch of licenses in the community books, but since
-    # they currently get deleted during the build, we don't mention
-    # their licenses here.  ACL2 proper is released under a BSD
-    # 3-clause license.
-    #license = with stdenv.lib.licenses;
-    #[ free bsd3 mit gpl2 llgpl21 cc0 publicDomain ];
-    license = stdenv.lib.licenses.bsd3;
-    maintainers = with stdenv.lib.maintainers; [ kini raskin ];
-    platforms = stdenv.lib.platforms.all;
-    broken = stdenv.isAarch64 && stdenv.isLinux;
+    license = with licenses; [
+      # ACL2 itself is bsd3
+      bsd3
+    ] ++ optionals certifyBooks [
+      # The community books are mostly bsd3 or mit but with a few
+      # other things thrown in.
+      mit gpl2 llgpl21 cc0 publicDomain unfreeRedistributable
+    ];
+    maintainers = with maintainers; [ kini raskin ];
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/acl2/libipasirglucose4/0001-Support-shared-library-build.patch b/nixpkgs/pkgs/development/interpreters/acl2/libipasirglucose4/0001-Support-shared-library-build.patch
new file mode 100644
index 000000000000..c78fa1ab925a
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/acl2/libipasirglucose4/0001-Support-shared-library-build.patch
@@ -0,0 +1,46 @@
+From 0f48e046f44624f4d4d8255ac5bd26397a38f16c Mon Sep 17 00:00:00 2001
+From: Keshav Kini <keshav.kini@gmail.com>
+Date: Sun, 23 Feb 2020 14:09:30 -0800
+Subject: [PATCH] Support shared library build
+
+Patch taken from [the ACL2 Books documentation][1].
+
+- Add " -fPIC" to the CXXFLAGS to build position-independent code,
+  required for shared libraries.
+
+- Add the line "export CXXFLAGS" below the setting of CXXFLAGS, so that
+  those flags apply to the recursive make of the core solver library.
+
+- Fix a typo: replace the occurrence of "CXXLAGS" with "CXXFLAGS".
+
+[1]: http://www.cs.utexas.edu/users/moore/acl2/v8-2/combined-manual/index.html?topic=IPASIR____BUILDING-AN-IPASIR-SOLVER-LIBRARY
+---
+ makefile | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/makefile b/makefile
+index 07121de..4e85c4b 100755
+--- a/makefile
++++ b/makefile
+@@ -29,7 +29,8 @@ TARGET=libipasir$(SIG).a
+ 
+ CXX=g++  
+ 
+-CXXFLAGS= -g -std=c++11 -Wall -DNDEBUG -O3
++CXXFLAGS= -g -std=c++11 -Wall -DNDEBUG -O3 -fPIC
++export CXXFLAGS
+ 
+ #-----------------------------------------------------------------------#
+ #- REQUIRED TOP RULES --------------------------------------------------#
+@@ -67,7 +68,7 @@ libipasir$(SIG).a: .FORCE
+ #-----------------------------------------------------------------------#
+ 
+ ipasir$(NAME)glue.o: ipasir$(NAME)glue.cc ipasir.h makefile
+-	$(CXX) -g  -std=c++11 $(CXXLAGS) \
++	$(CXX) -g  -std=c++11 $(CXXFLAGS) \
+ 	  -DVERSION=\"$(VERSION)\" \
+ 	  -I$(DIR) -I$(DIR)/core -c ipasir$(NAME)glue.cc
+ 
+-- 
+2.23.1
+
diff --git a/nixpkgs/pkgs/development/interpreters/acl2/libipasirglucose4/default.nix b/nixpkgs/pkgs/development/interpreters/acl2/libipasirglucose4/default.nix
new file mode 100644
index 000000000000..5186cd69584e
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/acl2/libipasirglucose4/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, zlib, unzip }:
+
+stdenv.mkDerivation rec {
+  pname = "libipasirglucose4";
+  # This library has no version number AFAICT (beyond generally being based on
+  # Glucose 4.x), but it was submitted to the 2017 SAT competition so let's use
+  # that as the version number, I guess.
+  version = "2017";
+
+  src = fetchurl {
+    url = "https://baldur.iti.kit.edu/sat-competition-2017/solvers/incremental/glucose-ipasir.zip";
+    sha256 = "0xchgady9vwdh8frmc8swz6va53igp2wj1y9sshd0g7549n87wdj";
+  };
+  nativeBuildInputs = [ unzip ];
+
+  buildInputs = [ zlib ];
+
+  sourceRoot = "sat/glucose4";
+  patches = [ ./0001-Support-shared-library-build.patch ];
+
+  postBuild = ''
+    g++ -shared -Wl,-soname,libipasirglucose4.so -o libipasirglucose4.so \
+        ipasirglucoseglue.o libipasirglucose4.a
+  '';
+
+  installPhase = ''
+    install -D libipasirglucose4.so $out/lib/libipasirglucose4.so
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Shared library providing IPASIR interface to the Glucose SAT solver";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ kini ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/interpreters/alda/default.nix b/nixpkgs/pkgs/development/interpreters/alda/default.nix
new file mode 100644
index 000000000000..3e5273d63290
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/alda/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchurl, jre }:
+
+stdenv.mkDerivation rec {
+  pname = "alda";
+  version = "1.4.2";
+
+  src = fetchurl {
+    url = "https://github.com/alda-lang/alda/releases/download/${version}/alda";
+    sha256 = "1d0412jw37gh1y7i8cmaml8r4sn516i6pxmm8m16yprqmz6glx28";
+  };
+
+  dontUnpack = true;
+
+  installPhase = ''
+    install -Dm755 $src $out/bin/alda
+    sed -i -e '1 s!java!${jre}/bin/java!' $out/bin/alda
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A music programming language for musicians.";
+    homepage = "https://alda.io";
+    license = licenses.epl10;
+    maintainers = [ maintainers.ericdallo ];
+    platforms = jre.meta.platforms;
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/interpreters/chibi/default.nix b/nixpkgs/pkgs/development/interpreters/chibi/default.nix
index f0de3f640918..7bf4c0fd52d0 100644
--- a/nixpkgs/pkgs/development/interpreters/chibi/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/chibi/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, makeWrapper }:
 let
-  version = "0.8";
+  version = "0.9.1";
   name = "chibi-scheme-${version}";
 in
 stdenv.mkDerivation {
@@ -18,7 +18,7 @@ stdenv.mkDerivation {
     owner = "ashinn";
     repo = "chibi-scheme";
     rev = version;
-    sha256 = "0269d5fhaz7nqjb41vh7yz63mp5s4z08fn4sspwc06z32xksigw9";
+    sha256 = "0nd63i924ifh39cba1hd4sbi6vh1cb73v97nrn4bf8rrjh3k8pdi";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/interpreters/clojure/TDEPS-150.patch b/nixpkgs/pkgs/development/interpreters/clojure/TDEPS-150.patch
deleted file mode 100644
index 611134e8e3fa..000000000000
--- a/nixpkgs/pkgs/development/interpreters/clojure/TDEPS-150.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- a/clojure
-+++ b/clojure
-@@ -317,17 +317,17 @@ if "$stale" || "$pom"; then
-     tools_args+=("--threads" "$threads")
-   fi
-   if "$trace"; then
-     tools_args+=("--trace")
-   fi
- fi
-
- # If stale, run make-classpath to refresh cached classpath
--if [[ "$stale" = true && "$describe" = false ]]; then
-+if [[ "$stale" = true && "$describe" = false && -z "$force_cp" ]]; then
-   if "$verbose"; then
-     echo "Refreshing classpath"
-   fi
-
-   "$JAVA_CMD" -classpath "$tools_cp" clojure.main -m clojure.tools.deps.alpha.script.make-classpath2 --config-user "$config_user" --config-project "$config_project" --libs-file "$libs_file" --cp-file "$cp_file" --jvm-file "$jvm_file" --main-file "$main_file" "${tools_args[@]}"
- fi
-
- if "$describe"; then
---
-2.25.0
diff --git a/nixpkgs/pkgs/development/interpreters/clojure/default.nix b/nixpkgs/pkgs/development/interpreters/clojure/default.nix
index e8c3e7b098ab..39db54babe44 100644
--- a/nixpkgs/pkgs/development/interpreters/clojure/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/clojure/default.nix
@@ -1,34 +1,38 @@
-{ stdenv, fetchurl, jdk11, rlwrap, makeWrapper }:
+{ stdenv, fetchurl, installShellFiles, jdk, rlwrap, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "clojure";
-  version = "1.10.1.507";
+  version = "1.10.1.645";
 
   src = fetchurl {
     url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz";
-    sha256 = "1k0jwa3481g3mkalwlb9gkcz9aq9zjpwmzckv823fr2d8djp41cc";
+    sha256 = "1z6a9an8ls992y4japmzdxay7c5d2z9s2q1xl4g615r23jwpcsf9";
   };
 
-  patches = [ ./TDEPS-150.patch ];
-
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [
+    installShellFiles
+    makeWrapper
+  ];
 
   installPhase =
     let
-      binPath = stdenv.lib.makeBinPath [ rlwrap jdk11 ];
+      binPath = stdenv.lib.makeBinPath [ rlwrap jdk ];
     in
-      ''
-        mkdir -p $out/libexec
-        cp clojure-tools-${version}.jar $out/libexec
-        cp example-deps.edn $out
-        cp deps.edn $out
+    ''
+      mkdir -p $out/libexec
+      cp clojure-tools-${version}.jar $out/libexec
+      cp example-deps.edn $out
+      cp deps.edn $out
+      cp clj_exec.clj $out
+
+      substituteInPlace clojure --replace PREFIX $out
 
-        substituteInPlace clojure --replace PREFIX $out
+      install -Dt $out/bin clj clojure
+      wrapProgram $out/bin/clj --prefix PATH : $out/bin:${binPath}
+      wrapProgram $out/bin/clojure --prefix PATH : $out/bin:${binPath}
 
-        install -Dt $out/bin clj clojure
-        wrapProgram $out/bin/clj --prefix PATH : $out/bin:${binPath}
-        wrapProgram $out/bin/clojure --prefix PATH : $out/bin:${binPath}
-      '';
+      installManPage clj.1 clojure.1
+    '';
 
   doInstallCheck = true;
   installCheckPhase = ''
diff --git a/nixpkgs/pkgs/development/interpreters/eff/default.nix b/nixpkgs/pkgs/development/interpreters/eff/default.nix
index c848ebc60479..cfd3bbbda4c3 100644
--- a/nixpkgs/pkgs/development/interpreters/eff/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/eff/default.nix
@@ -14,6 +14,10 @@ stdenv.mkDerivation {
     sha256 = "1fslfj5d7fhj3f7kh558b8mk5wllwyq4rnhfkyd96fpy144sdcka";
   };
 
+  postPatch = ''
+    substituteInPlace setup.ml --replace js_of_ocaml.ocamlbuild js_of_ocaml-ocamlbuild
+  '';
+
   buildInputs = [ which ] ++ (with ocamlPackages; [
     ocaml findlib ocamlbuild menhir js_of_ocaml js_of_ocaml-ocamlbuild
   ]);
diff --git a/nixpkgs/pkgs/development/interpreters/elixir/1.10.nix b/nixpkgs/pkgs/development/interpreters/elixir/1.10.nix
index d63a94d98d6d..04f4b5af240b 100644
--- a/nixpkgs/pkgs/development/interpreters/elixir/1.10.nix
+++ b/nixpkgs/pkgs/development/interpreters/elixir/1.10.nix
@@ -3,7 +3,7 @@
 # How to obtain `sha256`:
 # nix-prefetch-url --unpack https://github.com/elixir-lang/elixir/archive/v${version}.tar.gz
 mkDerivation {
-  version = "1.10.3";
-  sha256 = "18bqqqzvhr1zj491wc3d36a310mg1wcs12npp70zfmgqrc60q65a";
+  version = "1.10.4";
+  sha256 = "16j4rmm3ix088fvxhvyjqf1hnfg7wiwa87gml3b2mrwirdycbinv";
   minimumOTPVersion = "21";
 }
diff --git a/nixpkgs/pkgs/development/interpreters/elixir/1.6.nix b/nixpkgs/pkgs/development/interpreters/elixir/1.6.nix
deleted file mode 100644
index 94dffd1f763d..000000000000
--- a/nixpkgs/pkgs/development/interpreters/elixir/1.6.nix
+++ /dev/null
@@ -1,7 +0,0 @@
-{ mkDerivation }:
-
-mkDerivation {
-  version = "1.6.6";
-  sha256 = "1wl8rfpw0dxacq4f7xf6wjr8v2ww5691d0cfw9pzw7phd19vazgl";
-  minimumOTPVersion = "19";
-}
diff --git a/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix b/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix
index 54b046beaab2..f821baf66c5d 100644
--- a/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix
+++ b/nixpkgs/pkgs/development/interpreters/elixir/generic-builder.nix
@@ -1,4 +1,4 @@
-{ pkgs, stdenv, fetchFromGitHub, erlang, rebar, makeWrapper,
+{ pkgs, stdenv, fetchFromGitHub, erlang, makeWrapper,
   coreutils, curl, bash, debugInfo ? false }:
 
 { baseName ? "elixir"
@@ -20,7 +20,7 @@ in
 
     inherit src version;
 
-    buildInputs = [ erlang rebar makeWrapper ];
+    buildInputs = [ erlang makeWrapper ];
 
     LANG = "C.UTF-8";
     LC_TYPE = "C.UTF-8";
@@ -32,10 +32,6 @@ in
     buildFlags = optional debugInfo "ERL_COMPILER_OPTIONS=debug_info";
 
     preBuild = ''
-      # The build process uses ./rebar. Link it to the nixpkgs rebar
-      rm -vf rebar
-      ln -s ${rebar}/bin/rebar rebar
-
       patchShebangs lib/elixir/generate_app.escript || true
 
       substituteInPlace Makefile \
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/R23.nix b/nixpkgs/pkgs/development/interpreters/erlang/R23.nix
new file mode 100644
index 000000000000..d42508c2ef96
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/erlang/R23.nix
@@ -0,0 +1,13 @@
+{ mkDerivation }:
+
+# How to obtain `sha256`:
+# nix-prefetch-url --unpack https://github.com/erlang/otp/archive/OTP-${version}.tar.gz
+mkDerivation {
+  version = "23.0.3";
+  sha256 = "133aw1ffkxdf38na3smmvn5qwwlalh4r4a51793h1wkhdzkyl6mv";
+
+  prePatch = ''
+    substituteInPlace make/configure.in --replace '`sw_vers -productVersion`' "''${MACOSX_DEPLOYMENT_TARGET:-10.12}"
+    substituteInPlace erts/configure.in --replace '-Wl,-no_weak_imports' ""
+  '';
+}
diff --git a/nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix b/nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix
index f80e1f344f7f..18b658ae37ce 100644
--- a/nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix
+++ b/nixpkgs/pkgs/development/interpreters/erlang/generic-builder.nix
@@ -1,8 +1,10 @@
 { pkgs, stdenv, fetchFromGitHub, makeWrapper, gawk, gnum4, gnused
 , libxml2, libxslt, ncurses, openssl, perl, autoconf
-, openjdk ? null # javacSupport
+# TODO: use jdk https://github.com/NixOS/nixpkgs/pull/89731
+, openjdk8 ? null # javacSupport
 , unixODBC ? null # odbcSupport
 , libGL ? null, libGLU ? null, wxGTK ? null, wxmac ? null, xorg ? null # wxSupport
+, parallelBuild ? false
 , withSystemd ? stdenv.isLinux, systemd # systemd support in epmd
 }:
 
@@ -16,7 +18,7 @@
 , enableThreads ? true
 , enableSmpSupport ? true
 , enableKernelPoll ? true
-, javacSupport ? false, javacPackages ? [ openjdk ]
+, javacSupport ? false, javacPackages ? [ openjdk8 ]
 , odbcSupport ? false, odbcPackages ? [ unixODBC ]
 , wxSupport ? true, wxPackages ? [ libGL libGLU wxGTK xorg.libX11 ]
 , preUnpack ? "", postUnpack ? ""
@@ -35,7 +37,7 @@ assert wxSupport -> (if stdenv.isDarwin
   else libGL != null && libGLU != null && wxGTK != null && xorg != null);
 
 assert odbcSupport -> unixODBC != null;
-assert javacSupport -> openjdk != null;
+assert javacSupport -> openjdk8 != null;
 
 let
   inherit (stdenv.lib) optional optionals optionalAttrs optionalString;
@@ -60,7 +62,7 @@ in stdenv.mkDerivation ({
   debugInfo = enableDebugInfo;
 
   # On some machines, parallel build reliably crashes on `GEN    asn1ct_eval_ext.erl` step
-  enableParallelBuilding = false;
+  enableParallelBuilding = parallelBuild;
 
   # Clang 4 (rightfully) thinks signed comparisons of pointers with NULL are nonsense
   prePatch = ''
@@ -88,7 +90,8 @@ in stdenv.mkDerivation ({
     ++ optional odbcSupport "--with-odbc=${unixODBC}"
     ++ optional wxSupport "--enable-wx"
     ++ optional withSystemd "--enable-systemd"
-    ++ optional stdenv.isDarwin "--enable-darwin-64bit";
+    ++ optional stdenv.isDarwin "--enable-darwin-64bit"
+    ++ configureFlags;
 
   # install-docs will generate and install manpages and html docs
   # (PDFs are generated only when fop is available).
@@ -130,7 +133,6 @@ in stdenv.mkDerivation ({
 // optionalAttrs (postUnpack != "")     { inherit postUnpack; }
 // optionalAttrs (patches != [])        { inherit patches; }
 // optionalAttrs (patchPhase != "")     { inherit patchPhase; }
-// optionalAttrs (configureFlags != []) { inherit configureFlags; }
 // optionalAttrs (configurePhase != "") { inherit configurePhase; }
 // optionalAttrs (preConfigure != "")   { inherit preConfigure; }
 // optionalAttrs (postConfigure != "")  { inherit postConfigure; }
diff --git a/nixpkgs/pkgs/development/interpreters/evcxr/default.nix b/nixpkgs/pkgs/development/interpreters/evcxr/default.nix
index 4430298beb5f..11b9cd1ba505 100644
--- a/nixpkgs/pkgs/development/interpreters/evcxr/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/evcxr/default.nix
@@ -2,21 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "evcxr";
-  version = "0.5.1";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "evcxr";
-    rev = "582ce09f216d4812f7d152f6eedf0b034fc4dbbd";
-    sha256 = "12hlqgh74z8vmd7fkxh4vk3dqp8hlhzkxnbyywk6nphi562n6w5w";
+    rev = "v${version}";
+    sha256 = "144xqi19d2nj9qgmhpx6d1kfhx9vfkmk7rnq6nzybpx4mbbl3ki2";
   };
 
-  cargoSha256 = "0yr8vwlpfsg47sg0032yrsdcgxyky0hy4963zkh0pmjykbyqkb3h";
+  cargoSha256 = "07lzxh0wh6azrlzfaacg29zmkn8jdnkdqbwgd5ajy79y8nii3c7z";
 
   nativeBuildInputs = [ pkgconfig makeWrapper cmake ];
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
   postInstall = ''
     wrapProgram $out/bin/evcxr --prefix PATH : ${stdenv.lib.makeBinPath [ cargo gcc ]}
+    wrapProgram $out/bin/evcxr_jupyter --prefix PATH : ${stdenv.lib.makeBinPath [ cargo gcc ]}
     rm $out/bin/testing_runtime
   '';
 
@@ -25,6 +26,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/google/evcxr";
     license = licenses.asl20;
     maintainers = with maintainers; [ protoben ma27 ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/gauche/default.nix b/nixpkgs/pkgs/development/interpreters/gauche/default.nix
index 26a30ef2cd3c..58653fae8908 100644
--- a/nixpkgs/pkgs/development/interpreters/gauche/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/gauche/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     "--with-iconv=${libiconv}"
     "--with-dbm=gdbm"
     "--with-zlib=${zlib}"
-    "--with-ca-bundle=$NIX_SSL_CERT_FILE"
+    "--with-ca-bundle=${cacert}/etc/ssl/certs/ca-bundle.crt"
     # TODO: Enable slib
     #       Current slib in nixpkgs is specialized to Guile
     # "--with-slib=${slibGuile}/lib/slib"
diff --git a/nixpkgs/pkgs/development/interpreters/groovy/default.nix b/nixpkgs/pkgs/development/interpreters/groovy/default.nix
index 1572f5e4be2c..97e997bdd693 100644
--- a/nixpkgs/pkgs/development/interpreters/groovy/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/groovy/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "groovy";
-  version = "3.0.2";
+  version = "3.0.3";
 
   src = fetchurl {
     url = "http://dl.bintray.com/groovy/maven/apache-groovy-binary-${version}.zip";
-    sha256 = "1ddw3fqrmwh4w6z6xgck4jhmq33rwgbmpjw07g12ri1vgw4xks9w";
+    sha256 = "0xdm70b61pdj8z3g08az16y9b6cpz5hv7iwvwfyfyxrjdi47h419";
   };
 
   buildInputs = [ unzip makeWrapper ];
diff --git a/nixpkgs/pkgs/development/interpreters/guile/2.0.nix b/nixpkgs/pkgs/development/interpreters/guile/2.0.nix
index b5b83e180254..5b26b38dbd4e 100644
--- a/nixpkgs/pkgs/development/interpreters/guile/2.0.nix
+++ b/nixpkgs/pkgs/development/interpreters/guile/2.0.nix
@@ -59,7 +59,7 @@
   # "libgcc_s.so.1 must be installed for pthread_cancel to work".
 
   # don't have "libgcc_s.so.1" on darwin
-  LDFLAGS = stdenv.lib.optionalString (!stdenv.isDarwin) "-lgcc_s";
+  LDFLAGS = stdenv.lib.optionalString (!stdenv.isDarwin && !stdenv.hostPlatform.isMusl) "-lgcc_s";
 
   configureFlags = [ "--with-libreadline-prefix" ]
     ++ stdenv.lib.optionals stdenv.isSunOS [
diff --git a/nixpkgs/pkgs/development/interpreters/hy/default.nix b/nixpkgs/pkgs/development/interpreters/hy/default.nix
index a3aca532b0f3..a8890b048fbe 100644
--- a/nixpkgs/pkgs/development/interpreters/hy/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/hy/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "hy";
-  version = "0.18.0";
+  version = "0.19.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "04dfwm336gw61fmgwikvh0cnxk682p19b4w555wl5d7mlym4rwj2";
+    sha256 = "05k05qmiiysiwdc05sxmanwhv1crfwbb3l8swxfisbzbvmv1snis";
   };
 
   checkInputs = with python3Packages; [ flake8 pytest ];
diff --git a/nixpkgs/pkgs/development/interpreters/j/default.nix b/nixpkgs/pkgs/development/interpreters/j/default.nix
index e2bf921f882a..b7f8b63d54ad 100644
--- a/nixpkgs/pkgs/development/interpreters/j/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/j/default.nix
@@ -5,12 +5,12 @@
 stdenv.mkDerivation rec {
   pname = "j";
   version = "901";
-  jtype = "release-e";
+  jtype = "release-f";
   src = fetchFromGitHub {
     owner = "jsoftware";
     repo = "jsource";
     rev = "j${version}-${jtype}";
-    sha256 = "13ky37rrl6mc66fckrdnrw64gmvq1qlv6skzd513lab4d0wigshw";
+    sha256 = "1776021m0j1aanzwg60by83n53pw7i6afd5wplfzczwk8bywax4p";
     name = "jsource";
   };
 
@@ -27,6 +27,9 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  # Causes build failure due to warning
+  hardeningDisable = stdenv.lib.optional stdenv.cc.isClang "strictoverflow";
+
   buildPhase = ''
     export SOURCE_DIR=$(pwd)
     export HOME=$TMPDIR
diff --git a/nixpkgs/pkgs/development/interpreters/janet/default.nix b/nixpkgs/pkgs/development/interpreters/janet/default.nix
index 32312401f963..113a582392fe 100644
--- a/nixpkgs/pkgs/development/interpreters/janet/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/janet/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "janet";
-  version = "1.10.0";
+  version = "1.12.2";
 
   src = fetchFromGitHub {
     owner = "janet-lang";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0kx3c4v0481b4xx239w10ajwp8ngq8smxzh3m77dazd89r997n1g";
+    sha256 = "0if514zdmbjvvrsa9x5yfvg2b14sz53yaka12g3yhwkq8ls3qk0c";
   };
 
   nativeBuildInputs = [ meson ninja ];
diff --git a/nixpkgs/pkgs/development/interpreters/joker/default.nix b/nixpkgs/pkgs/development/interpreters/joker/default.nix
index 823ab6d10990..7f773882d8f9 100644
--- a/nixpkgs/pkgs/development/interpreters/joker/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/joker/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "joker";
-  version = "0.15.4";
+  version = "0.15.6";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "candid82";
     repo = "joker";
-    sha256 = "1ad6cdqadd1zs9zh85zyhdiiv6ir28k28w034vzsx5zaipvy4kml";
+    sha256 = "1yi9q8ibia6gz6s30i3bjrbmlhj6knrb3d73113dxrs8abi1mkbh";
   };
 
   vendorSha256 = "031ban30kx84r54fj9aq96pwkz9nqh4p9yzs4l8i1wqmy52rldvl";
 
+  doCheck = false;
+
   preBuild = ''
     go generate ./...
   '';
@@ -23,7 +25,6 @@ buildGoModule rec {
     homepage = "https://github.com/candid82/joker";
     description = "A small Clojure interpreter and linter written in Go";
     license = licenses.epl10;
-    platforms = platforms.all;
     maintainers = with maintainers; [ andrestylianos ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/interpreters/jruby/default.nix b/nixpkgs/pkgs/development/interpreters/jruby/default.nix
index 79cb1c7154b5..8d27bfb64f8b 100644
--- a/nixpkgs/pkgs/development/interpreters/jruby/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/jruby/default.nix
@@ -2,15 +2,15 @@
 
 let
 # The version number here is whatever is reported by the RUBY_VERSION string
-rubyVersion = callPackage ../ruby/ruby-version.nix {} "2" "3" "3" "";
+rubyVersion = callPackage ../ruby/ruby-version.nix {} "2" "5" "7" "";
 jruby = stdenv.mkDerivation rec {
   pname = "jruby";
 
-  version = "9.2.11.1";
+  version = "9.2.13.0";
 
   src = fetchurl {
     url = "https://s3.amazonaws.com/jruby.org/downloads/${version}/jruby-bin-${version}.tar.gz";
-    sha256 = "1p4ml5rqidqllc7z85zn2q4pyyih71j0gb71wl43j4v74p44j17i";
+    sha256 = "0n5glz6xm3skrfihzn3g5awdxpjsqn2k8k46gv449rk2l50w5a3k";
   };
 
   buildInputs = [ makeWrapper ];
@@ -40,17 +40,22 @@ jruby = stdenv.mkDerivation rec {
      EOF
   '';
 
+  postFixup = ''
+    PATH=$out/bin:$PATH patchShebangs $out/bin
+  '';
+
   passthru = rec {
     rubyEngine = "jruby";
     gemPath = "lib/${rubyEngine}/gems/${rubyVersion.libDir}";
     libPath = "lib/${rubyEngine}/${rubyVersion.libDir}";
   };
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Ruby interpreter written in Java";
     homepage = "http://jruby.org/";
-    license = with stdenv.lib.licenses; [ cpl10 gpl2 lgpl21 ];
-    platforms = stdenv.lib.platforms.unix;
+    license = with licenses; [ cpl10 gpl2 lgpl21 ];
+    platforms = platforms.unix;
+    maintainers = [ maintainers.fzakaria ];
   };
 };
 in jruby.overrideAttrs (oldAttrs: {
diff --git a/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix b/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix
index 3f0fa7303ebb..afb5dd9c5b64 100644
--- a/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix
+++ b/nixpkgs/pkgs/development/interpreters/luajit/2.0.nix
@@ -1,10 +1,10 @@
 { self, callPackage, lib }:
 callPackage ./default.nix {
   inherit self;
-  version = "2.0.5-2020-03-20";
-  rev = "e613105";
+  version = "2.0.5-2020-08-09";
+  rev = "e296f56";
   isStable = true;
-  sha256 = "0k843z90s4hi0qhri6ixy8sv21nig8jwbznpqgqg845ji530kqj7";
+  sha256 = "0g4wvpmmrxj8ir6yi86gg93khy8ri7x4w091jihpxsmn670da21f";
   extraMeta = { # this isn't precise but it at least stops the useless Hydra build
     platforms = with lib; filter (p: p != "aarch64-linux")
       (platforms.linux ++ platforms.darwin);
diff --git a/nixpkgs/pkgs/development/interpreters/luajit/2.1.nix b/nixpkgs/pkgs/development/interpreters/luajit/2.1.nix
index b5a7894e98d9..cb0320c7c7cf 100644
--- a/nixpkgs/pkgs/development/interpreters/luajit/2.1.nix
+++ b/nixpkgs/pkgs/development/interpreters/luajit/2.1.nix
@@ -1,8 +1,8 @@
 { self, callPackage }:
 callPackage ./default.nix {
   inherit self;
-  version = "2.1.0-2020-03-20";
-  rev = "9143e86";
+  version = "2.1.0-2020-08-27";
+  rev = "ff1e72a";
   isStable = false;
-  sha256 = "1zw1yr0375d6jr5x20zvkvk76hkaqamjynbswpl604w6r6id070b";
+  sha256 = "0rlh5y48jbxnamr3a5i3szzh7y9ycvq052rw6m82gdhrb1jlamdz";
 }
diff --git a/nixpkgs/pkgs/development/interpreters/luajit/default.nix b/nixpkgs/pkgs/development/interpreters/luajit/default.nix
index 9bc76c44937f..9658186b9c09 100644
--- a/nixpkgs/pkgs/development/interpreters/luajit/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/luajit/default.nix
@@ -104,6 +104,6 @@ stdenv.mkDerivation rec {
     homepage    = "http://luajit.org";
     license     = licenses.mit;
     platforms   = platforms.linux ++ platforms.darwin;
-    maintainers = with maintainers; [ thoughtpolice smironov vcunat andir ];
+    maintainers = with maintainers; [ thoughtpolice smironov vcunat andir lblasc ];
   } // extraMeta;
 }
diff --git a/nixpkgs/pkgs/development/interpreters/octave/default.nix b/nixpkgs/pkgs/development/interpreters/octave/default.nix
index 06d69ed8117f..d9766108596a 100644
--- a/nixpkgs/pkgs/development/interpreters/octave/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/octave/default.nix
@@ -1,4 +1,7 @@
 { stdenv
+# Note: either stdenv.mkDerivation or, for octaveFull, the qt-5 mkDerivation
+# with wrapQtAppsHook (comes from libsForQt5.callPackage)
+, mkDerivation
 , fetchurl
 , gfortran
 , ncurses
@@ -55,7 +58,7 @@
 
 assert (!blas.isILP64) && (!lapack.isILP64);
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   version = "5.2.0";
   pname = "octave";
 
diff --git a/nixpkgs/pkgs/development/interpreters/perl/default.nix b/nixpkgs/pkgs/development/interpreters/perl/default.nix
index 27ccb6f22c69..991c385cedca 100644
--- a/nixpkgs/pkgs/development/interpreters/perl/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/perl/default.nix
@@ -28,7 +28,7 @@ let
 
     # TODO: Add a "dev" output containing the header files.
     outputs = [ "out" "man" "devdoc" ] ++
-      optional crossCompiling "dev";
+      optional crossCompiling "mini";
     setOutputFlags = false;
 
     disallowedReferences = [ stdenv.cc ];
@@ -73,7 +73,7 @@ let
     # Miniperl needs -lm. perl needs -lrt.
     configureFlags =
       (if crossCompiling
-       then [ "-Dlibpth=\"\"" "-Dglibpth=\"\"" ]
+       then [ "-Dlibpth=\"\"" "-Dglibpth=\"\"" "-Ddefault_inc_excludes_dot" ]
        else [ "-de" "-Dcc=cc" ])
       ++ [
         "-Uinstallusrbinperl"
@@ -144,13 +144,13 @@ let
           --replace "$man" /no-such-path
       '' + optionalString crossCompiling
       ''
-        mkdir -p $dev/lib/perl5/cross_perl/${version}
+        mkdir -p $mini/lib/perl5/cross_perl/${version}
         for dir in cnf/{stub,cpan}; do
-          cp -r $dir/* $dev/lib/perl5/cross_perl/${version}
+          cp -r $dir/* $mini/lib/perl5/cross_perl/${version}
         done
 
-        mkdir -p $dev/bin
-        install -m755 miniperl $dev/bin/perl
+        mkdir -p $mini/bin
+        install -m755 miniperl $mini/bin/perl
 
         export runtimeArch="$(ls $out/lib/perl5/site_perl/${version})"
         # wrapProgram should use a runtime-native SHELL by default, but
@@ -161,9 +161,9 @@ let
         # miniperl can't load the native modules there. However, it can
         # (and sometimes needs to) load and run some of the pure perl
         # code there, so we add it anyway. When needed, stubs can be put
-        # into $dev/lib/perl5/cross_perl/${version}.
-        wrapProgram $dev/bin/perl --prefix PERL5LIB : \
-          "$dev/lib/perl5/cross_perl/${version}:$out/lib/perl5/${version}:$out/lib/perl5/${version}/$runtimeArch"
+        # into $mini/lib/perl5/cross_perl/${version}.
+        wrapProgram $mini/bin/perl --prefix PERL5LIB : \
+          "$mini/lib/perl5/cross_perl/${version}:$out/lib/perl5/${version}:$out/lib/perl5/${version}/$runtimeArch"
       ''; # */
 
     meta = {
@@ -175,11 +175,11 @@ let
       priority = 6; # in `buildEnv' (including the one inside `perl.withPackages') the library files will have priority over files in `perl`
     };
   } // optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) rec {
-    crossVersion = "1.3.4"; # Jun 2, 2020
+    crossVersion = "15ca5359f99698ef0a199bc307b7956c08907abc"; # Aug 27, 2020
 
     perl-cross-src = fetchurl {
       url = "https://github.com/arsv/perl-cross/archive/${crossVersion}.tar.gz";
-      sha256 = "15wvlafhpsh9h66s3vazhx46hf8ik75473acrvf6722ijd1wpz45";
+      sha256 = "0pcwv2ac02i2l0fjc8drdw70q6gwbypj2c5a53x2449m919v37h9";
     };
 
     depsBuildBuild = [ buildPackages.stdenv.cc makeWrapper ];
@@ -196,14 +196,6 @@ let
   });
 in {
   # Maint version
-  perl528 = common {
-    perl = pkgs.perl528;
-    buildPerl = buildPackages.perl528;
-    version = "5.28.3";
-    sha256 = "052if351m81yhaab429i1kv77v9b15qm0g48kr6y2yjrc7bc3jdg";
-  };
-
-  # Maint version
   perl530 = common {
     perl = pkgs.perl530;
     buildPerl = buildPackages.perl530;
@@ -211,11 +203,19 @@ in {
     sha256 = "0vs0wwwlw47sswxaflkk4hw0y45cmc7arxx788kwpbminy5lrq1j";
   };
 
+  # Maint version
+  perl532 = common {
+    perl = pkgs.perl532;
+    buildPerl = buildPackages.perl532;
+    version = "5.32.0";
+    sha256 = "1d6001cjnpxfv79000bx00vmv2nvdz7wrnyas451j908y7hirszg";
+  };
+
   # the latest Devel version
   perldevel = common {
     perl = pkgs.perldevel;
     buildPerl = buildPackages.perldevel;
-    version = "5.32.0-RC0";
-    sha256 = "02i6n1xa4j0ksp014yy8q0j7scjcy5mr0yd4iash2ryrrfv5yw5k";
+    version = "5.33.1";
+    sha256 = "1rlnqqqzyhal79ys5dv7fwm3mg81s43dwks28b74x2gcmsngjnw9";
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/perl/setup-hook-cross.sh b/nixpkgs/pkgs/development/interpreters/perl/setup-hook-cross.sh
index 95aae0b2670f..a7aad6f2453e 100644
--- a/nixpkgs/pkgs/development/interpreters/perl/setup-hook-cross.sh
+++ b/nixpkgs/pkgs/development/interpreters/perl/setup-hook-cross.sh
@@ -9,4 +9,4 @@ addPerlLibPath () {
     addToSearchPath PERL5LIB $1/lib/perl5/site_perl/@version@/@runtimeArch@
 }
 
-addEnvHooks "$targetOffset" addPerlLibPath
+addEnvHooks "$hostOffset" addPerlLibPath
diff --git a/nixpkgs/pkgs/development/interpreters/php/default.nix b/nixpkgs/pkgs/development/interpreters/php/default.nix
index b56824c77238..8921cf78aa83 100644
--- a/nixpkgs/pkgs/development/interpreters/php/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/php/default.nix
@@ -8,7 +8,7 @@ let
     { callPackage, lib, stdenv, nixosTests, config, fetchurl, makeWrapper
     , symlinkJoin, writeText, autoconf, automake, bison, flex, libtool
     , pkgconfig, re2c, apacheHttpd, libargon2, libxml2, pcre, pcre2
-    , systemd, valgrind
+    , systemd, system-sendmail, valgrind, xcbuild
 
     , version
     , sha256
@@ -143,7 +143,8 @@ let
 
           enableParallelBuilding = true;
 
-          nativeBuildInputs = [ autoconf automake bison flex libtool pkgconfig re2c ];
+          nativeBuildInputs = [ autoconf automake bison flex libtool pkgconfig re2c ]
+            ++ lib.optional stdenv.isDarwin xcbuild;
 
           buildInputs =
             # PCRE extension
@@ -177,7 +178,10 @@ let
             ++ lib.optional (!cliSupport) "--disable-cli"
             ++ lib.optional fpmSupport    "--enable-fpm"
             ++ lib.optional pearSupport [ "--with-pear=$(out)/lib/php/pear" "--enable-xml" "--with-libxml" ]
-            ++ lib.optional (pearSupport && (lib.versionOlder version "7.4")) "--enable-libxml"
+            ++ lib.optionals (pearSupport && (lib.versionOlder version "7.4")) [
+              "--enable-libxml"
+              "--with-libxml-dir=${libxml2.dev}"
+            ]
             ++ lib.optional pharSupport   "--enable-phar"
             ++ lib.optional phpdbgSupport "--enable-phpdbg"
 
@@ -191,6 +195,10 @@ let
             ++ lib.optional systemdSupport "--with-fpm-systemd"
             ++ lib.optional valgrindSupport "--with-valgrind=${valgrind.dev}"
             ++ lib.optional ztsSupport "--enable-maintainer-zts"
+
+
+            # Sendmail
+            ++ [ "PROG_SENDMAIL=${system-sendmail}/bin/sendmail" ]
           ;
 
           hardeningDisable = [ "bindnow" ];
@@ -263,25 +271,17 @@ let
           };
         };
 
-  php72base = callPackage generic (_args // {
-    version = "7.2.29";
-    sha256 = "08xry2fgqgg8s0ym1hh11wkbr36av3zq1bn4krbciw1b7x8gb8ga";
-
-    # https://bugs.php.net/bug.php?id=76826
-    extraPatches = lib.optional stdenv.isDarwin ./php72-darwin-isfinite.patch;
-  });
-
   php73base = callPackage generic (_args // {
-    version = "7.3.16";
-    sha256 = "0bh499v9dfgh9k51w4rird1slb9rh9whp5h37fb84c98d992s1xq";
+    version = "7.3.20";
+    sha256 = "1pl9bjwvdva2yx4sh465z9cr4bnr8mvv008w71sy1kqsj6a7ivf6";
 
     # https://bugs.php.net/bug.php?id=76826
     extraPatches = lib.optional stdenv.isDarwin ./php73-darwin-isfinite.patch;
   });
 
   php74base = callPackage generic (_args // {
-    version = "7.4.6";
-    sha256 = "0j133pfwa823d4jhx2hkrrzjl4hswvz00b1z58r5c82xd5sr9vd6";
+    version = "7.4.8";
+    sha256 = "0ql01sfg8l7y2bfwmnjxnfw9irpibnz57ssck24b00y00nkd6j3a";
   });
 
   defaultPhpExtensions = { all, ... }: with all; ([
@@ -297,8 +297,7 @@ let
 
   php74 = php74base.withExtensions defaultPhpExtensions;
   php73 = php73base.withExtensions defaultPhpExtensionsWithHash;
-  php72 = php72base.withExtensions defaultPhpExtensionsWithHash;
 
 in {
-  inherit php72 php73 php74;
+  inherit php73 php74;
 }
diff --git a/nixpkgs/pkgs/development/interpreters/php/php72-darwin-isfinite.patch b/nixpkgs/pkgs/development/interpreters/php/php72-darwin-isfinite.patch
deleted file mode 100644
index ea2e3e28f2cc..000000000000
--- a/nixpkgs/pkgs/development/interpreters/php/php72-darwin-isfinite.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-diff --git a/Zend/configure.ac b/Zend/configure.ac
-index b95c1360b8..fe16c86007 100644
---- a/Zend/configure.ac
-+++ b/Zend/configure.ac
-@@ -60,7 +60,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
- #include <math.h>
- 
- #ifndef zend_isnan
--#if HAVE_DECL_ISNAN && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISNAN && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_isnan(a) isnan(a)
- #elif defined(HAVE_FPCLASS)
- #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
-@@ -69,7 +69,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
- #endif
- #endif
- 
--#if HAVE_DECL_ISINF && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISINF && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_isinf(a) isinf(a)
- #elif defined(INFINITY)
- /* Might not work, but is required by ISO C99 */
-@@ -80,7 +80,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
- #define zend_isinf(a) 0
- #endif
- 
--#if HAVE_DECL_ISFINITE && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISFINITE && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_finite(a) isfinite(a)
- #elif defined(HAVE_FINITE)
- #define zend_finite(a) finite(a)
-diff --git a/configure.ac b/configure.ac
-index d3f3cacd07..ddbf712ba2 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -68,7 +68,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
- #include <math.h>
- 
- #ifndef zend_isnan
--#if HAVE_DECL_ISNAN && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISNAN && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_isnan(a) isnan(a)
- #elif defined(HAVE_FPCLASS)
- #define zend_isnan(a) ((fpclass(a) == FP_SNAN) || (fpclass(a) == FP_QNAN))
-@@ -77,7 +77,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
- #endif
- #endif
- 
--#if HAVE_DECL_ISINF && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISINF && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_isinf(a) isinf(a)
- #elif defined(INFINITY)
- /* Might not work, but is required by ISO C99 */
-@@ -88,7 +88,7 @@ int zend_sprintf(char *buffer, const char *format, ...);
- #define zend_isinf(a) 0
- #endif
- 
--#if HAVE_DECL_ISFINITE && (!defined(__cplusplus) || __cplusplus < 201103L)
-+#if HAVE_DECL_ISFINITE && (defined(__APPLE__) || defined(__APPLE_CC__) || !defined(__cplusplus) || __cplusplus < 201103L)
- #define zend_finite(a) isfinite(a)
- #elif defined(HAVE_FINITE)
- #define zend_finite(a) finite(a)
diff --git a/nixpkgs/pkgs/development/interpreters/php/zlib-darwin-tests.patch b/nixpkgs/pkgs/development/interpreters/php/zlib-darwin-tests.patch
new file mode 100644
index 000000000000..ef61f0a87845
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/php/zlib-darwin-tests.patch
@@ -0,0 +1,44 @@
+diff --git a/ext/zlib/tests/bug55544.phpt b/ext/zlib/tests/bug55544.phpt
+index a0d22f4fcebf4846da6781f424f87821626de5ea..e650fe6909f555d04834f4c08f7fd0d354b783e2 100644
+--- a/ext/zlib/tests/bug55544.phpt
++++ b/ext/zlib/tests/bug55544.phpt
+@@ -6,6 +6,9 @@ extension_loaded("zlib") or die("skip");
+ if (substr(PHP_OS, 0, 3) == 'WIN') {
+        die("skip not for windows");
+ }
++if (PHP_OS == "Darwin") {
++       die("skip not for darwin");
++}
+ ?>
+ --INI--
+ output_handler=ob_gzhandler
+diff --git a/ext/zlib/tests/gzencode_variation1.phpt b/ext/zlib/tests/gzencode_variation1.phpt
+index c966b2cbc5b7..2f953168fa22 100644
+--- a/ext/zlib/tests/gzencode_variation1.phpt
++++ b/ext/zlib/tests/gzencode_variation1.phpt
+@@ -10,6 +10,10 @@ if( substr(PHP_OS, 0, 3) == "WIN" ) {
+ if (!extension_loaded("zlib")) {
+ 	print "skip - ZLIB extension not loaded";
+ }
++
++if (PHP_OS == "Darwin") {
++    print "skip - OS is encoded in headers, tested header is non Darwin";
++}
+ ?>
+ --FILE--
+ <?php
+diff --git a/ext/zlib/tests/gzencode_variation2.phpt b/ext/zlib/tests/gzencode_variation2.phpt
+index 94ac42a5f1cd..9160cf519751 100644
+--- a/ext/zlib/tests/gzencode_variation2.phpt
++++ b/ext/zlib/tests/gzencode_variation2.phpt
+@@ -10,6 +10,10 @@ if( substr(PHP_OS, 0, 3) == "WIN" ) {
+ if (!extension_loaded("zlib")) {
+ 	print "skip - ZLIB extension not loaded";
+ }
++
++if (PHP_OS == "Darwin") {
++    print "skip - OS is encoded in headers, tested header is non Darwin";
++}
+ ?>
+ --FILE--
+ <?php
diff --git a/nixpkgs/pkgs/development/interpreters/picolisp/default.nix b/nixpkgs/pkgs/development/interpreters/picolisp/default.nix
index c49437717c15..1511698c9215 100644
--- a/nixpkgs/pkgs/development/interpreters/picolisp/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/picolisp/default.nix
@@ -3,10 +3,10 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "picoLisp";
-  version = "19.12";
+  version = "20.6";
   src = fetchurl {
     url = "https://www.software-lab.de/${pname}-${version}.tgz";
-    sha256 = "10np0mhihr47r3201617zccrvzpkhdl1jwvz7zimk8kxpriydq2j";
+    sha256 = "0l51x98bn1hh6kv40sdgp0x09pzg5i8yxbcjvm9n5bxsd6bbk5w2";
   };
   buildInputs = [makeWrapper openssl] ++ optional stdenv.is64bit jdk;
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/CVE-2019-20907.patch b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/CVE-2019-20907.patch
new file mode 100644
index 000000000000..cf67ae2b51be
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/CVE-2019-20907.patch
@@ -0,0 +1,24 @@
+From 5a8d121a1f3ef5ad7c105ee378cc79a3eac0c7d4 Mon Sep 17 00:00:00 2001
+From: Rishi <rishi_devan@mail.com>
+Date: Wed, 15 Jul 2020 13:51:00 +0200
+Subject: [PATCH] bpo-39017: Avoid infinite loop in the tarfile module
+ (GH-21454)
+
+Avoid infinite loop when reading specially crafted TAR files using the tarfile module
+(CVE-2019-20907).
+---
+ Lib/tarfile.py                                    |   2 ++
+
+diff --git a/Lib/tarfile.py b/Lib/tarfile.py
+index e2b60532f6..6769066cab 100755
+--- a/Lib/tarfile.py
++++ b/Lib/tarfile.py
+@@ -1249,6 +1249,8 @@ class TarInfo(object):
+ 
+             length, keyword = match.groups()
+             length = int(length)
++            if length == 0:
++                raise InvalidHeaderError("invalid header")
+             value = buf[match.end(2) + 1:match.start(1) + length - 1]
+ 
+             # Normally, we could just use "utf-8" as the encoding and "strict"
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix
index 62aae7b22129..2cfaa69a4c8b 100644
--- a/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/2.7/default.nix
@@ -90,6 +90,9 @@ let
 
       # Backport from CPython 3.8 of a good list of tests to run for PGO.
       ./profile-task.patch
+
+      # Patch is likely to go away in the next release (if there is any)
+      ./CVE-2019-20907.patch
     ] ++ optionals (x11Support && stdenv.isDarwin) [
       ./use-correct-tcl-tk-on-darwin.patch
     ] ++ optionals stdenv.isLinux [
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/3.8/0001-On-all-posix-systems-not-just-Darwin-set-LDSHARED-if.patch b/nixpkgs/pkgs/development/interpreters/python/cpython/3.8/0001-On-all-posix-systems-not-just-Darwin-set-LDSHARED-if.patch
new file mode 100644
index 000000000000..0c26300d9c06
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/3.8/0001-On-all-posix-systems-not-just-Darwin-set-LDSHARED-if.patch
@@ -0,0 +1,33 @@
+From 1911995b1a1252d80bf2b9651840e185a1a6baf5 Mon Sep 17 00:00:00 2001
+From: Hong Xu <hong@topbug.net>
+Date: Thu, 25 Jul 2019 10:25:55 -0700
+Subject: [PATCH] On all posix systems, not just Darwin, set LDSHARED (if not
+ set) according to CC
+
+This patch is slightly different from https://bugs.python.org/issue24935
+, except that we now handle LDSHARED according to CC on all posix
+systems, not just Darwin or Linux.
+---
+ Lib/distutils/sysconfig.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
+index 37feae5df7..9fdce6896d 100644
+--- a/Lib/distutils/sysconfig.py
++++ b/Lib/distutils/sysconfig.py
+@@ -199,10 +199,10 @@ def customize_compiler(compiler):
+ 
+         if 'CC' in os.environ:
+             newcc = os.environ['CC']
+-            if (sys.platform == 'darwin'
++            if (os.name == 'posix'
+                     and 'LDSHARED' not in os.environ
+                     and ldshared.startswith(cc)):
+-                # On OS X, if CC is overridden, use that as the default
++                # On POSIX systems, if CC is overridden, use that as the default
+                 #       command for LDSHARED as well
+                 ldshared = newcc + ldshared[len(cc):]
+             cc = newcc
+-- 
+2.25.1
+
diff --git a/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix b/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix
index 59067276f76e..b25d613eb7f3 100644
--- a/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/cpython/default.nix
@@ -9,6 +9,7 @@
 , readline
 , sqlite
 , tcl ? null, tk ? null, tix ? null, libX11 ? null, xorgproto ? null, x11Support ? false
+, bluez ? null, bluezSupport ? false
 , zlib
 , self
 , configd
@@ -45,6 +46,9 @@ assert x11Support -> tcl != null
                   && tk != null
                   && xorgproto != null
                   && libX11 != null;
+
+assert bluezSupport -> bluez != null;
+
 with stdenv.lib;
 
 let
@@ -73,6 +77,7 @@ let
   buildInputs = filter (p: p != null) ([
     zlib bzip2 expat lzma libffi gdbm sqlite readline ncurses openssl ]
     ++ optionals x11Support [ tcl tk libX11 xorgproto ]
+    ++ optionals (bluezSupport && stdenv.isLinux) [ bluez ]
     ++ optionals stdenv.isDarwin [ configd ]);
 
   hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
@@ -145,9 +150,14 @@ in with passthru; stdenv.mkDerivation {
           sha256 = "1h18lnpx539h5lfxyk379dxwr8m2raigcjixkf133l4xy3f4bzi2";
         }
     )
+  ] ++ [
+    # LDSHARED now uses $CC instead of gcc. Fixes cross-compilation of extension modules.
+    ./3.8/0001-On-all-posix-systems-not-just-Darwin-set-LDSHARED-if.patch
   ];
 
   postPatch = ''
+    substituteInPlace Lib/subprocess.py \
+      --replace "'/bin/sh'" "'${bash}/bin/sh'"
   '' + optionalString (x11Support && (tix != null)) ''
     substituteInPlace "Lib/tkinter/tix.py" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'"
   '';
@@ -281,6 +291,13 @@ in with passthru; stdenv.mkDerivation {
     find $out -name "*.py" | ${pythonForBuildInterpreter} -OO -m compileall -q -f -x "lib2to3" -i -
     '' + optionalString stripBytecode ''
     find $out -type d -name __pycache__ -print0 | xargs -0 -I {} rm -rf "{}"
+    '' + ''
+    # *strip* shebang from libpython gdb script - it should be dual-syntax and
+    # interpretable by whatever python the gdb in question is using, which may
+    # not even match the major version of this python. doing this after the
+    # bytecode compilations for the same reason.
+    mkdir -p $out/share/gdb
+    sed '/^#!/d' Tools/gdb/libpython.py > $out/share/gdb/libpython.py
   '';
 
   preFixup = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
@@ -298,6 +315,8 @@ in with passthru; stdenv.mkDerivation {
     pythonForBuild buildPackages.bash
   ];
 
+  separateDebugInfo = true;
+
   inherit passthru;
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/interpreters/python/default.nix b/nixpkgs/pkgs/development/interpreters/python/default.nix
index 9516257cf16d..ce357b6f58e3 100644
--- a/nixpkgs/pkgs/development/interpreters/python/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, lib }:
+{ pkgs }:
 
 with pkgs;
 
@@ -63,28 +63,15 @@ in {
     inherit passthruFun;
   };
 
-  python35 = callPackage ./cpython {
-    self = python35;
-    sourceVersion = {
-      major = "3";
-      minor = "5";
-      patch = "9";
-      suffix = "";
-    };
-    sha256 = "0jdh9pvx6m6lfz2liwvvhn7vks7qrysqgwn517fkpxb77b33fjn2";
-    inherit (darwin) configd;
-    inherit passthruFun;
-  };
-
   python36 = callPackage ./cpython {
     self = python36;
     sourceVersion = {
       major = "3";
       minor = "6";
-      patch = "10";
+      patch = "12";
       suffix = "";
     };
-    sha256 = "1pj0mz1xl27khi250p29c0y99vxg662js8zp71aprkf8i8wkr0qa";
+    sha256 = "cJU6m11okdkuZdGEw1EhJqFYFL7hXh7/LdzOBDNOmpk=";
     inherit (darwin) configd;
     inherit passthruFun;
   };
@@ -94,10 +81,10 @@ in {
     sourceVersion = {
       major = "3";
       minor = "7";
-      patch = "7";
+      patch = "9";
       suffix = "";
     };
-    sha256 = "0di1y2cna823qgk6sd2lvpjdm3g2qikdd50i2bjd330dpzqsk806";
+    sha256 = "008v6g1jkrjrdmiqlgjlq6msbbj848bvkws6ppwva1ahn03k14li";
     inherit (darwin) configd;
     inherit passthruFun;
   };
@@ -107,10 +94,10 @@ in {
     sourceVersion = {
       major = "3";
       minor = "8";
-      patch = "3";
+      patch = "5";
       suffix = "";
     };
-    sha256 = "0r2qg4pdvv52ld5dd95fl6lzzsxxxhbsxmymwcphh6624g3mxayz";
+    sha256 = "1c43dbv9lvlp3ynqmgdi4rh8q94swanhqarqrdx62zmigpakw073";
     inherit (darwin) configd;
     inherit passthruFun;
   };
@@ -121,9 +108,9 @@ in {
       major = "3";
       minor = "9";
       patch = "0";
-      suffix = "a4";
+      suffix = "rc1";
     };
-    sha256 = "0qzy0wlq0izxk8ii28gy70v138g6xnz9sgsxpyayls2j04l6b5vz";
+    sha256 = "0w6wvyy9fbvfvrmhvmlb5gq18haagywk9hjkp1knjdarfczag9zv";
     inherit (darwin) configd;
     inherit passthruFun;
   };
@@ -158,10 +145,10 @@ in {
     self = pypy27;
     sourceVersion = {
       major = "7";
-      minor = "1";
+      minor = "3";
       patch = "1";
     };
-    sha256 = "0yq6ln1ic476sasp8zs4mg5i9524l1p96qwanp486rr1yza1grlg";
+    sha256 = "08ckkhd0ix6j9873a7gr507c72d4cmnv5lwvprlljdca9i8p2dzs";
     pythonVersion = "2.7";
     db = db.override { dbmSupport = !stdenv.isDarwin; };
     python = python27;
@@ -174,10 +161,10 @@ in {
     self = pypy36;
     sourceVersion = {
       major = "7";
-      minor = "1";
+      minor = "3";
       patch = "1";
     };
-    sha256 = "1hqvnran7d2dzj5555n7q680dyzhmbklz04pvkxgb5j604v7kkx1";
+    sha256 = "10zsk8jby8j6visk5mzikpb1cidvz27qq4pfpa26jv53klic6b0c";
     pythonVersion = "3.6";
     db = db.override { dbmSupport = !stdenv.isDarwin; };
     python = python27;
@@ -191,13 +178,12 @@ in {
     self = pythonInterpreters.pypy27_prebuilt;
     sourceVersion = {
       major = "7";
-      minor = "1";
+      minor = "3";
       patch = "1";
     };
-    sha256 = "0rlx4x9xy9h989w6sy4h7lknm00956r30c5gjxwsvf8fhvq9xc3k"; # linux64
+    sha256 = "18xc5kwidj5hjwbr0w8v1nfpg5l4lk01z8cn804zfyyz8xjqhx5y"; # linux64
     pythonVersion = "2.7";
     inherit passthruFun;
-    ncurses = ncurses5;
   };
 
   pypy36_prebuilt = callPackage ./pypy/prebuilt.nix {
@@ -205,13 +191,12 @@ in {
     self = pythonInterpreters.pypy36_prebuilt;
     sourceVersion = {
       major = "7";
-      minor = "1";
+      minor = "3";
       patch = "1";
     };
-    sha256 = "1c1xx6dm1n4xvh1vd3rcvyyixm5jm9rvzisji1a5bc9l38xzc540"; # linux64
+    sha256 = "04nv0mkalaliphbjw7y0pmb372bxwjzwmcsqkf9kwsik99kg2z7n"; # linux64
     pythonVersion = "3.6";
     inherit passthruFun;
-    ncurses = ncurses5;
   };
 
   graalpython37 = callPackage ./graalpython/default.nix {
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix b/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix
index 4d736426f3bf..d14eb9cbb09d 100644
--- a/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/default.nix
@@ -1,5 +1,6 @@
 # Hooks for building Python packages.
 { python
+, lib
 , callPackage
 , makeSetupHook
 , disabledIf
@@ -97,6 +98,16 @@ in rec {
       };
     } ./python-namespaces-hook.sh) {};
 
+  pythonRecompileBytecodeHook = callPackage ({ }:
+    makeSetupHook {
+      name = "python-recompile-bytecode-hook";
+      substitutions = {
+        inherit pythonInterpreter pythonSitePackages;
+        compileArgs = lib.concatStringsSep " " (["-q" "-f" "-i -"] ++ lib.optionals isPy3k ["-j $NIX_BUILD_CORES"]);
+        bytecodeName = if isPy3k then "__pycache__" else "*.pyc";
+      };
+    } ./python-recompile-bytecode-hook.sh ) {};
+
   pythonRemoveBinBytecodeHook = callPackage ({ }:
     makeSetupHook {
       name = "python-remove-bin-bytecode-hook";
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/pip-install-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/pip-install-hook.sh
index 4eefe22d3f28..770739b36bde 100644
--- a/nixpkgs/pkgs/development/interpreters/python/hooks/pip-install-hook.sh
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/pip-install-hook.sh
@@ -11,7 +11,9 @@ pipInstallPhase() {
     export PYTHONPATH="$out/@pythonSitePackages@:$PYTHONPATH"
 
     pushd dist || return 1
-    @pythonInterpreter@ -m pip install ./*.whl --no-index --prefix="$out" --no-cache $pipInstallFlags --build tmpbuild
+    mkdir tmpbuild
+    NIX_PIP_INSTALL_TMPDIR=tmpbuild @pythonInterpreter@ -m pip install ./*.whl --no-index --prefix="$out" --no-cache $pipInstallFlags
+    rm -rf tmpbuild
     popd || return 1
 
     runHook postInstall
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/python-recompile-bytecode-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/python-recompile-bytecode-hook.sh
new file mode 100644
index 000000000000..649d0c17ea0c
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/python-recompile-bytecode-hook.sh
@@ -0,0 +1,24 @@
+# Setup hook for recompiling bytecode.
+# https://github.com/NixOS/nixpkgs/issues/81441
+echo "Sourcing python-recompile-bytecode-hook.sh"
+
+# Remove all bytecode from the $out output. Then, recompile only site packages folder
+# Note this effectively duplicates `python-remove-bin-bytecode`, but long-term
+# this hook should be removed again.
+
+pythonRecompileBytecodePhase () {
+    # TODO: consider other outputs than $out
+
+    items="$(find "$out" -name "@bytecodeName@")"
+    if [[ -n $items ]]; then
+        for pycache in $items; do
+            rm -rf "$pycache"
+        done
+    fi
+
+    find "$out"/@pythonSitePackages@ -name "*.py" -exec @pythonInterpreter@ -OO -m compileall @compileArgs@ {} +
+}
+
+if [ -z "${dontUsePythonRecompileBytecode-}" ]; then
+    postPhases+=" pythonRecompileBytecodePhase"
+fi
diff --git a/nixpkgs/pkgs/development/interpreters/python/hooks/python-remove-bin-bytecode-hook.sh b/nixpkgs/pkgs/development/interpreters/python/hooks/python-remove-bin-bytecode-hook.sh
index 2add23f23165..1180694294db 100644
--- a/nixpkgs/pkgs/development/interpreters/python/hooks/python-remove-bin-bytecode-hook.sh
+++ b/nixpkgs/pkgs/development/interpreters/python/hooks/python-remove-bin-bytecode-hook.sh
@@ -1,9 +1,9 @@
-# Setup hook for detecting conflicts in Python packages
+# Setup hook for removing bytecode from the bin folder
 echo "Sourcing python-remove-bin-bytecode-hook.sh"
 
-# Check if we have two packages with the same name in the closure and fail.
-# If this happens, something went wrong with the dependencies specs.
-# Intentionally kept in a subdirectory, see catch_conflicts/README.md.
+# The bin folder is added to $PATH and should only contain executables.
+# It may happen there are executables with a .py extension for which
+# bytecode is generated. This hook removes that bytecode.
 
 pythonRemoveBinBytecodePhase () {
     if [ -d "$out/bin" ]; then
diff --git a/nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix b/nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix
index 22938a455852..c3be76790ebd 100644
--- a/nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/mk-python-derivation.nix
@@ -17,6 +17,7 @@
 , pythonCatchConflictsHook
 , pythonImportsCheckHook
 , pythonNamespacesHook
+, pythonRecompileBytecodeHook
 , pythonRemoveBinBytecodeHook
 , pythonRemoveTestsDirHook
 , setuptoolsBuildHook
@@ -80,6 +81,8 @@
 # "setuptools" : Install a common setuptools/distutils based package. This builds a wheel.
 # "wheel" : Install from a pre-compiled wheel.
 # "flit" : Install a flit package. This builds a wheel.
+# "pyproject": Install a package using a ``pyproject.toml`` file (PEP517). This builds a wheel.
+# "egg": Install a package from an egg.
 # "other" : Provide your own buildPhase and installPhase.
 , format ? "setuptools"
 
@@ -104,77 +107,81 @@ let
     "disabled" "checkPhase" "checkInputs" "doCheck" "doInstallCheck" "dontWrapPythonPrograms" "catchConflicts" "format"
   ]) // {
 
-  name = namePrefix + name;
-
-  nativeBuildInputs = [
-    python
-    wrapPython
-    ensureNewerSourcesForZipFilesHook  # move to wheel installer (pip) or builder (setuptools, flit, ...)?
-    pythonRemoveTestsDirHook
-  ] ++ lib.optionals catchConflicts [
-    setuptools pythonCatchConflictsHook
-  ] ++ lib.optionals removeBinBytecode [
-    pythonRemoveBinBytecodeHook
-  ] ++ lib.optionals (lib.hasSuffix "zip" (attrs.src.name or "")) [
-    unzip
-  ] ++ lib.optionals (format == "setuptools") [
-    setuptoolsBuildHook
-  ] ++ lib.optionals (format == "flit") [
-    flitBuildHook
-  ] ++ lib.optionals (format == "pyproject") [
-    pipBuildHook
-  ] ++ lib.optionals (format == "wheel") [
-    wheelUnpackHook
-  ] ++ lib.optionals (format == "egg") [
-    eggUnpackHook eggBuildHook eggInstallHook
-  ] ++ lib.optionals (!(format == "other") || dontUsePipInstall) [
-    pipInstallHook
-  ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [
-    # This is a test, however, it should be ran independent of the checkPhase and checkInputs
-    pythonImportsCheckHook
-  ] ++ lib.optionals (python.pythonAtLeast "3.3") [
-    # Optionally enforce PEP420 for python3
-    pythonNamespacesHook
-  ] ++ nativeBuildInputs;
-
-  buildInputs = buildInputs ++ pythonPath;
-
-  propagatedBuildInputs = propagatedBuildInputs ++ [ python ];
-
-  inherit strictDeps;
-
-  LANG = "${if python.stdenv.isDarwin then "en_US" else "C"}.UTF-8";
-
-  # Python packages don't have a checkPhase, only an installCheckPhase
-  doCheck = false;
-  doInstallCheck = attrs.doCheck or true;
-  installCheckInputs = [
-  ] ++ lib.optionals (format == "setuptools") [
-    # Longer-term we should get rid of this and require
-    # users of this function to set the `installCheckPhase` or
-    # pass in a hook that sets it.
-    setuptoolsCheckHook
-  ] ++ checkInputs;
-
-  postFixup = lib.optionalString (!dontWrapPythonPrograms) ''
-    wrapPythonPrograms
-  '' + attrs.postFixup or '''';
-
-  # Python packages built through cross-compilation are always for the host platform.
-  disallowedReferences = lib.optionals (python.stdenv.hostPlatform != python.stdenv.buildPlatform) [ python.pythonForBuild ];
-
-  meta = {
-    # default to python's platforms
-    platforms = python.meta.platforms;
-    isBuildPythonPackage = python.meta.platforms;
-  } // meta;
-} // lib.optionalAttrs (attrs?checkPhase) {
-  # If given use the specified checkPhase, otherwise use the setup hook.
-  # Longer-term we should get rid of `checkPhase` and use `installCheckPhase`.
-  installCheckPhase = attrs.checkPhase;
-}));
-
-passthru.updateScript = let
-    filename = builtins.head (lib.splitString ":" self.meta.position);
-  in attrs.passthru.updateScript or [ update-python-libraries filename ];
+    name = namePrefix + name;
+
+    nativeBuildInputs = [
+      python
+      wrapPython
+      ensureNewerSourcesForZipFilesHook  # move to wheel installer (pip) or builder (setuptools, flit, ...)?
+      pythonRecompileBytecodeHook  # Remove when solved https://github.com/NixOS/nixpkgs/issues/81441
+      pythonRemoveTestsDirHook
+    ] ++ lib.optionals catchConflicts [
+      setuptools pythonCatchConflictsHook
+    ] ++ lib.optionals removeBinBytecode [
+      pythonRemoveBinBytecodeHook
+    ] ++ lib.optionals (lib.hasSuffix "zip" (attrs.src.name or "")) [
+      unzip
+    ] ++ lib.optionals (format == "setuptools") [
+      setuptoolsBuildHook
+    ] ++ lib.optionals (format == "flit") [
+      flitBuildHook
+    ] ++ lib.optionals (format == "pyproject") [
+      pipBuildHook
+    ] ++ lib.optionals (format == "wheel") [
+      wheelUnpackHook
+    ] ++ lib.optionals (format == "egg") [
+      eggUnpackHook eggBuildHook eggInstallHook
+    ] ++ lib.optionals (!(format == "other") || dontUsePipInstall) [
+      pipInstallHook
+    ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [
+      # This is a test, however, it should be ran independent of the checkPhase and checkInputs
+      pythonImportsCheckHook
+    ] ++ lib.optionals (python.pythonAtLeast "3.3") [
+      # Optionally enforce PEP420 for python3
+      pythonNamespacesHook
+    ] ++ nativeBuildInputs;
+
+    buildInputs = buildInputs ++ pythonPath;
+
+    propagatedBuildInputs = propagatedBuildInputs ++ [ python ];
+
+    inherit strictDeps;
+
+    LANG = "${if python.stdenv.isDarwin then "en_US" else "C"}.UTF-8";
+
+    # Python packages don't have a checkPhase, only an installCheckPhase
+    doCheck = false;
+    doInstallCheck = attrs.doCheck or true;
+    installCheckInputs = [
+    ] ++ lib.optionals (format == "setuptools") [
+      # Longer-term we should get rid of this and require
+      # users of this function to set the `installCheckPhase` or
+      # pass in a hook that sets it.
+      setuptoolsCheckHook
+    ] ++ checkInputs;
+
+    postFixup = lib.optionalString (!dontWrapPythonPrograms) ''
+      wrapPythonPrograms
+    '' + attrs.postFixup or '''';
+
+    # Python packages built through cross-compilation are always for the host platform.
+    disallowedReferences = lib.optionals (python.stdenv.hostPlatform != python.stdenv.buildPlatform) [ python.pythonForBuild ];
+
+    # For now, revert recompilation of bytecode.
+    dontUsePythonRecompileBytecode = true;
+
+    meta = {
+      # default to python's platforms
+      platforms = python.meta.platforms;
+      isBuildPythonPackage = python.meta.platforms;
+    } // meta;
+  } // lib.optionalAttrs (attrs?checkPhase) {
+    # If given use the specified checkPhase, otherwise use the setup hook.
+    # Longer-term we should get rid of `checkPhase` and use `installCheckPhase`.
+    installCheckPhase = attrs.checkPhase;
+  }));
+
+  passthru.updateScript = let
+      filename = builtins.head (lib.splitString ":" self.meta.position);
+    in attrs.passthru.updateScript or [ update-python-libraries filename ];
 in lib.extendDerivation true passthru self
diff --git a/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix b/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix
index e5828fdd3740..10073602071a 100644
--- a/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/pypy/default.nix
@@ -34,7 +34,7 @@ in with passthru; stdenv.mkDerivation rec {
   inherit pname version;
 
   src = fetchurl {
-    url = "https://bitbucket.org/pypy/pypy/get/release-pypy${pythonVersion}-v${version}.tar.bz2";
+    url = "https://bitbucket.org/pypy/pypy/downloads/pypy${pythonVersion}-v${version}-src.tar.bz2";
     inherit sha256;
   };
 
@@ -75,13 +75,6 @@ in with passthru; stdenv.mkDerivation rec {
   postPatch = ''
     substituteInPlace "lib-python/${if isPy3k then "3/tkinter/tix.py" else "2.7/lib-tk/Tix.py"}" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'"
 
-    # hint pypy to find nix ncurses
-    substituteInPlace pypy/module/_minimal_curses/fficurses.py \
-      --replace "/usr/include/ncurses/curses.h" "${ncurses.dev}/include/curses.h" \
-      --replace "ncurses/curses.h" "${ncurses.dev}/include/curses.h" \
-      --replace "ncurses/term.h" "${ncurses.dev}/include/term.h" \
-      --replace "libraries=['curses']" "libraries=['ncurses']"
-
     sed -i "s@libraries=\['sqlite3'\]\$@libraries=['sqlite3'], include_dirs=['${sqlite.dev}/include'], library_dirs=['${sqlite.out}/lib']@" lib_pypy/_sqlite3_build.py
   '';
 
@@ -137,7 +130,7 @@ in with passthru; stdenv.mkDerivation rec {
     ln -s $out/${executable}-c/${executable}-c $out/bin/${executable}
 
     # other packages expect to find stuff according to libPrefix
-    ln -s $out/${executable}/include $out/include/${libPrefix}
+    ln -s $out/${executable}-c/include $out/include/${libPrefix}
     ln -s $out/${executable}-c/lib-python/${if isPy3k then "3" else pythonVersion} $out/lib/${libPrefix}
 
     ${stdenv.lib.optionalString stdenv.isDarwin ''
diff --git a/nixpkgs/pkgs/development/interpreters/python/pypy/prebuilt.nix b/nixpkgs/pkgs/development/interpreters/python/pypy/prebuilt.nix
index 0ebd33648343..1522047a3806 100644
--- a/nixpkgs/pkgs/development/interpreters/python/pypy/prebuilt.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/pypy/prebuilt.nix
@@ -8,10 +8,9 @@
 , zlib
 , openssl_1_0_2
 , expat
-, libffi
-, ncurses
-, tcl
-, tk
+, ncurses6
+, tcl-8_5
+, tk-8_5
 # For the Python package set
 , packageOverrides ? (self: super: {})
 , sourceVersion
@@ -46,10 +45,9 @@ let
     zlib
     openssl_1_0_2
     expat
-    libffi
-    ncurses
-    tcl
-    tk
+    ncurses6
+    tcl-8_5
+    tk-8_5
   ];
 
 in with passthru; stdenv.mkDerivation {
@@ -66,6 +64,7 @@ in with passthru; stdenv.mkDerivation {
     mkdir -p $out/lib
     echo "Moving files to $out"
     mv -t $out bin include lib-python lib_pypy site-packages
+    mv lib/libffi.so.6* $out/lib/
 
     mv $out/bin/libpypy*-c.so $out/lib/
 
@@ -78,8 +77,8 @@ in with passthru; stdenv.mkDerivation {
              $out/bin/pypy*
 
     pushd $out
-    find {lib,lib_pypy*} -name "*.so" -exec patchelf --replace-needed "libbz2.so.1.0" "libbz2.so.1" {} \;
-    find {lib,lib_pypy*} -name "*.so" -exec patchelf --set-rpath ${stdenv.lib.makeLibraryPath deps} {} \;
+    find {lib,lib_pypy*} -name "*.so" -exec patchelf --remove-needed libncursesw.so.6 --replace-needed libtinfow.so.6 libncursesw.so.6 {} \;
+    find {lib,lib_pypy*} -name "*.so" -exec patchelf --set-rpath ${stdenv.lib.makeLibraryPath deps}:$out/lib {} \;
 
     echo "Removing bytecode"
     find . -name "__pycache__" -type d -depth -exec rm -rf {} \;
diff --git a/nixpkgs/pkgs/development/interpreters/python/tests.nix b/nixpkgs/pkgs/development/interpreters/python/tests.nix
index 03a3b9537090..dcfa41cc308e 100644
--- a/nixpkgs/pkgs/development/interpreters/python/tests.nix
+++ b/nixpkgs/pkgs/development/interpreters/python/tests.nix
@@ -6,67 +6,81 @@
 }:
 
 let
-  envs = let
-    inherit python;
-    pythonEnv = python.withPackages(ps: with ps; [ ]);
-    pythonVirtualEnv = python.withPackages(ps: with ps; [ virtualenv ]);
-  in {
-    # Plain Python interpreter
-    plain = rec {
-      env = python;
-      interpreter = env.interpreter;
-      is_venv = "False";
-      is_nixenv = "False";
-      is_virtualenv = "False";
-    };
-  } // lib.optionalAttrs (!python.isPyPy) {
-    # Use virtualenv from a Nix env.
-    nixenv-virtualenv = rec {
-      env = runCommand "${python.name}-virtualenv" {} ''
-        ${pythonVirtualEnv.interpreter} -m virtualenv $out
-      '';
-      interpreter = "${env}/bin/${python.executable}";
-      is_venv = "False";
-      is_nixenv = "True";
-      is_virtualenv = "True";
-    };
-  } // lib.optionalAttrs (python.implementation != "graal") {
-    # Python Nix environment (python.buildEnv)
-    nixenv = rec {
-      env = pythonEnv;
-      interpreter = env.interpreter;
-      is_venv = "False";
-      is_nixenv = "True";
-      is_virtualenv = "False";
-    };
-  } // lib.optionalAttrs (python.isPy3k && (!python.isPyPy)) rec {
-    # Venv built using plain Python
-    # Python 2 does not support venv
-    # TODO: PyPy executable name is incorrect, it should be pypy-c or pypy-3c instead of pypy and pypy3.
-    plain-venv = rec {
-      env = runCommand "${python.name}-venv" {} ''
-        ${python.interpreter} -m venv $out
-      '';
-      interpreter = "${env}/bin/${python.executable}";
-      is_venv = "True";
-      is_nixenv = "False";
-      is_virtualenv = "False";
-    };
+  environmentTests = let
+    envs = let
+      inherit python;
+      pythonEnv = python.withPackages(ps: with ps; [ ]);
+      pythonVirtualEnv = python.withPackages(ps: with ps; [ virtualenv ]);
+    in {
+      # Plain Python interpreter
+      plain = rec {
+        env = python;
+        interpreter = env.interpreter;
+        is_venv = "False";
+        is_nixenv = "False";
+        is_virtualenv = "False";
+      };
+    } // lib.optionalAttrs (!python.isPyPy) {
+      # Use virtualenv from a Nix env.
+      nixenv-virtualenv = rec {
+        env = runCommand "${python.name}-virtualenv" {} ''
+          ${pythonVirtualEnv.interpreter} -m virtualenv $out
+        '';
+        interpreter = "${env}/bin/${python.executable}";
+        is_venv = "False";
+        is_nixenv = "True";
+        is_virtualenv = "True";
+      };
+    } // lib.optionalAttrs (python.implementation != "graal") {
+      # Python Nix environment (python.buildEnv)
+      nixenv = rec {
+        env = pythonEnv;
+        interpreter = env.interpreter;
+        is_venv = "False";
+        is_nixenv = "True";
+        is_virtualenv = "False";
+      };
+    } // lib.optionalAttrs (python.isPy3k && (!python.isPyPy)) rec {
+      # Venv built using plain Python
+      # Python 2 does not support venv
+      # TODO: PyPy executable name is incorrect, it should be pypy-c or pypy-3c instead of pypy and pypy3.
+      plain-venv = rec {
+        env = runCommand "${python.name}-venv" {} ''
+          ${python.interpreter} -m venv $out
+        '';
+        interpreter = "${env}/bin/${python.executable}";
+        is_venv = "True";
+        is_nixenv = "False";
+        is_virtualenv = "False";
+      };
 
-  } // lib.optionalAttrs (python.pythonAtLeast "3.8") {
-    # Venv built using Python Nix environment (python.buildEnv)
-    # TODO: Cannot create venv from a  nix env
-    # Error: Command '['/nix/store/ddc8nqx73pda86ibvhzdmvdsqmwnbjf7-python3-3.7.6-venv/bin/python3.7', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
-    nixenv-venv = rec {
-      env = runCommand "${python.name}-venv" {} ''
-        ${pythonEnv.interpreter} -m venv $out
-      '';
-      interpreter = "${env}/bin/${pythonEnv.executable}";
-      is_venv = "True";
-      is_nixenv = "True";
-      is_virtualenv = "False";
+    } // lib.optionalAttrs (python.pythonAtLeast "3.8") {
+      # Venv built using Python Nix environment (python.buildEnv)
+      # TODO: Cannot create venv from a  nix env
+      # Error: Command '['/nix/store/ddc8nqx73pda86ibvhzdmvdsqmwnbjf7-python3-3.7.6-venv/bin/python3.7', '-Im', 'ensurepip', '--upgrade', '--default-pip']' returned non-zero exit status 1.
+      nixenv-venv = rec {
+        env = runCommand "${python.name}-venv" {} ''
+          ${pythonEnv.interpreter} -m venv $out
+        '';
+        interpreter = "${env}/bin/${pythonEnv.executable}";
+        is_venv = "True";
+        is_nixenv = "True";
+        is_virtualenv = "False";
+      };
     };
-  };
+
+    testfun = name: attrs: runCommand "${python.name}-tests-${name}" ({
+      inherit (python) pythonVersion;
+    } // attrs) ''
+      cp -r ${./tests/test_environments} tests
+      chmod -R +w tests
+      substituteAllInPlace tests/test_python.py
+      ${attrs.interpreter} -m unittest discover --verbose tests #/test_python.py
+      mkdir $out
+      touch $out/success
+    '';
+
+  in lib.mapAttrs testfun envs;
 
   # All PyPy package builds are broken at the moment
   integrationTests = lib.optionalAttrs (python.pythonAtLeast "3.7"  && (!python.isPyPy)) rec {
@@ -76,15 +90,6 @@ let
     };
   };
 
-  testfun = name: attrs: runCommand "${python.name}-tests-${name}" ({
-    inherit (python) pythonVersion;
-  } // attrs) ''
-    cp -r ${./tests} tests
-    chmod -R +w tests
-    substituteAllInPlace tests/test_python.py
-    ${attrs.interpreter} -m unittest discover --verbose tests #/test_python.py
-    mkdir $out
-    touch $out/success
-  '';
 
-in lib.mapAttrs testfun envs // integrationTests
+
+in environmentTests // integrationTests
diff --git a/nixpkgs/pkgs/development/interpreters/python/tests/test_python.py b/nixpkgs/pkgs/development/interpreters/python/tests/test_environments/test_python.py
index 0fc4b8a9e91c..0fc4b8a9e91c 100644
--- a/nixpkgs/pkgs/development/interpreters/python/tests/test_python.py
+++ b/nixpkgs/pkgs/development/interpreters/python/tests/test_environments/test_python.py
diff --git a/nixpkgs/pkgs/development/interpreters/racket/default.nix b/nixpkgs/pkgs/development/interpreters/racket/default.nix
index 1db01c0d7758..b62df6e837b8 100644
--- a/nixpkgs/pkgs/development/interpreters/racket/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/racket/default.nix
@@ -46,7 +46,7 @@ in
 
 stdenv.mkDerivation rec {
   pname = "racket";
-  version = "7.7"; # always change at once with ./minimal.nix
+  version = "7.8"; # always change at once with ./minimal.nix
 
   src = (stdenv.lib.makeOverridable ({ name, sha256 }:
     fetchurl {
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
     }
   )) {
     name = "${pname}-${version}";
-    sha256 = "0cx5h3k0n58cb442qzp3jlc7n1b9dbaxv9blg2rjil2rn119yrb2";
+    sha256 = "19z3dayybcra277s4gk2mppalwawd93f2b16xyrb6d7rbbfz7j9j";
   };
 
   FONTCONFIG_FILE = fontsConf;
diff --git a/nixpkgs/pkgs/development/interpreters/racket/minimal.nix b/nixpkgs/pkgs/development/interpreters/racket/minimal.nix
index a4a7a5c12cd4..02aed6e8929c 100644
--- a/nixpkgs/pkgs/development/interpreters/racket/minimal.nix
+++ b/nixpkgs/pkgs/development/interpreters/racket/minimal.nix
@@ -5,7 +5,7 @@ racket.overrideAttrs (oldAttrs: rec {
   name = "racket-minimal-${oldAttrs.version}";
   src = oldAttrs.src.override {
     inherit name;
-    sha256 = "1lxcd4ix8q3089xql48hwccxvcpkinfxwxnc6fhcjdgzqcyxh3ln";
+    sha256 = "0bbglf9vfacpm2hn3lskhvc8cpg6z088fbnzpqsn17z8qdk8yvb3";
   };
 
   meta = oldAttrs.meta // {
diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/default.nix b/nixpkgs/pkgs/development/interpreters/rakudo/default.nix
index 2833a4d5673a..0c708cd3171e 100644
--- a/nixpkgs/pkgs/development/interpreters/rakudo/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/rakudo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rakudo";
-  version = "2020.05.1";
+  version = "2020.08.2";
 
   src = fetchurl {
     url    = "https://www.rakudo.org/dl/rakudo/rakudo-${version}.tar.gz";
-    sha256 = "1m4xpghhgi7iijbzvr7bzkay7k93bwpvdg58jp31csrwdzz4q5z1";
+    sha256 = "16qsq6alvk2x44x39j2fzxigvm5cvmz85i0nkjcw0wz29yyf8lch";
   };
 
   buildInputs = [ icu zlib gmp perl ];
diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix b/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix
index a7b57c9287ac..702fccd7b6bd 100644
--- a/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix
+++ b/nixpkgs/pkgs/development/interpreters/rakudo/moarvm.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "moarvm";
-  version = "2020.05";
+  version = "2020.08";
 
   src = fetchurl {
     url = "https://www.moarvm.org/releases/MoarVM-${version}.tar.gz";
-    sha256 = "0jw29846nky7gz129knjcx58qr7nbn8j7hs8k92i11zaj73d4s4k";
+    sha256 = "1gq7z4z5lnkai01721waawkkal82sdmyra05nnbfb1986mq5xpiy";
    };
 
   buildInputs = [ perl ] ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices ApplicationServices ];
diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix b/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix
index 40133287f9e0..3f5f7afcfed4 100644
--- a/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix
+++ b/nixpkgs/pkgs/development/interpreters/rakudo/nqp.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "nqp";
-  version = "2020.05";
+  version = "2020.08.2";
 
   src = fetchurl {
-    url    = "https://github.com/perl6/nqp/releases/download/${version}/nqp-${version}.tar.gz";
-    sha256 = "0xxm0vlra1g467cxc5v65p8pc46w7r9wkcddjl8nk2lnvgcr46r9";
+    url    = "https://github.com/raku/nqp/releases/download/${version}/nqp-${version}.tar.gz";
+    sha256 = "14zr1swprxl284k0h1w72pcypj24sga15170ylaqjb8wxy8h1mqw";
   };
 
   buildInputs = [ perl ];
diff --git a/nixpkgs/pkgs/development/interpreters/rakudo/zef.nix b/nixpkgs/pkgs/development/interpreters/rakudo/zef.nix
index 5c8fe16408b4..c82053446933 100644
--- a/nixpkgs/pkgs/development/interpreters/rakudo/zef.nix
+++ b/nixpkgs/pkgs/development/interpreters/rakudo/zef.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zef";
-  version = "0.8.4";
+  version = "0.8.5";
 
   src = fetchFromGitHub {
     owner = "ugexe";
     repo = "zef";
     rev = "v${version}";
-    sha256 = "02a3awnjr1mgb9275xvp3xms80vcxkq55ffi8sbjzxpwyadj5y5k";
+    sha256 = "17a5ns0ph8626q3b4wv9v2n0zqmhqbqyzjzxa387kr19qs933yy6";
   };
 
   buildInputs = [ rakudo makeWrapper ];
diff --git a/nixpkgs/pkgs/development/interpreters/red/default.nix b/nixpkgs/pkgs/development/interpreters/red/default.nix
index e1460ec51a22..554dc81bffb9 100644
--- a/nixpkgs/pkgs/development/interpreters/red/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/red/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "red";
-  version = "0.6.3";
+  version = "0.6.4";
   src = fetchFromGitHub {
-    rev = "6a43c767fa2e85d668b83f749158a18e62c30f70";
+    rev = "755eb943ccea9e78c2cab0f20b313a52404355cb";
     owner = "red";
     repo = "red";
-    sha256 = "1zh6xc728bs7r4v5jz1jjrdk0xd838xsxmvy9gfg75a3zffm0slr";
+    sha256 = "sha256:045rrg9666zczgrwyyyglivzdzja103s52b0fzj7hqmr1fz68q37";
   };
 
   rebol = fetchurl {
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
     ${r2} -qw red.r tests/hello.red
 
     # Compiling the Red console...
-    ${r2} -qw red.r -r environment/console/console.red
+    ${r2} -qw red.r -r environment/console/CLI/console.red
 
     # Generating docs...
     cd docs
diff --git a/nixpkgs/pkgs/development/interpreters/ruby/default.nix b/nixpkgs/pkgs/development/interpreters/ruby/default.nix
index 867f6a15fa9d..d90a2f4f971b 100644
--- a/nixpkgs/pkgs/development/interpreters/ruby/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/ruby/default.nix
@@ -132,7 +132,7 @@ let
         # https://github.com/ruby/ruby/commit/97a5af62a318fcd93a4e5e4428d576c0280ddbae
         buildFlags = lib.optionals atLeast27 [ "REVISION_LATEST=0" ];
 
-        configureFlags = ["--enable-shared" "--enable-pthread" "--with-soname=ruby_${tag}"]
+        configureFlags = ["--enable-shared" "--enable-pthread" "--with-soname=ruby-${version}"]
           ++ op useRailsExpress "--with-baseruby=${baseruby}/bin/ruby"
           ++ op (!docSupport) "--disable-install-doc"
           ++ ops stdenv.isDarwin [
diff --git a/nixpkgs/pkgs/development/interpreters/shen-sbcl/default.nix b/nixpkgs/pkgs/development/interpreters/shen-sbcl/default.nix
new file mode 100644
index 000000000000..6d10669d20d8
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/shen-sbcl/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, fetchurl
+, shen-sources
+, sbcl
+}:
+
+stdenv.mkDerivation rec {
+  name = "shen-sbcl-${version}";
+  version = "3.0.3";
+  src = fetchurl {
+    url = "https://github.com/Shen-Language/shen-cl/releases/download/v${version}/shen-cl-v${version}-sources.tar.gz";
+    sha256 = "0mc10jlrxqi337m6ngwbr547zi4qgk69g1flz5dsddjy5x41j0yz";
+  };
+  buildInputs = [
+    sbcl shen-sources
+  ];
+  buildPhase = ''
+    ln -s ${shen-sources} kernel
+    make sbcl
+  '';
+  installPhase = ''
+    mkdir -p $out
+    install -m755 -D bin/sbcl/shen $out/bin/shen-sbcl
+  '';
+  meta = with stdenv.lib; {
+    homepage = https://shenlanguage.org;
+    description = "Port of Shen running on Steel Bank Common Lisp";
+    platforms = sbcl.meta.platforms;
+    maintainers = with maintainers; [ bsima ];
+    license = licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/interpreters/shen-sources/default.nix b/nixpkgs/pkgs/development/interpreters/shen-sources/default.nix
new file mode 100644
index 000000000000..f35631daa282
--- /dev/null
+++ b/nixpkgs/pkgs/development/interpreters/shen-sources/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  name = "shen-sources-${version}";
+  version = "22.3";
+
+  src = fetchurl {
+    url = "https://github.com/Shen-Language/shen-sources/releases/download/shen-${version}/ShenOSKernel-${version}.tar.gz";
+    sha256 = "16jaliga3bia0f8c8ja1y22wanbnbriv31qfqdc87a4p4dx9c77q";
+  };
+
+  buildInputs = [];
+  buildPhase = "";
+  installPhase = ''
+    mkdir -p $out
+    cp . $out -R
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://shenlanguage.org;
+    description = "Source code for the Shen Language";
+    platforms = platforms.all;
+    maintainers = with maintainers; [ bsima ];
+    license = licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/interpreters/spidermonkey/68.nix b/nixpkgs/pkgs/development/interpreters/spidermonkey/68.nix
index 7100a730a61b..36d28f62e2e1 100644
--- a/nixpkgs/pkgs/development/interpreters/spidermonkey/68.nix
+++ b/nixpkgs/pkgs/development/interpreters/spidermonkey/68.nix
@@ -7,11 +7,11 @@ let
   python3Env = buildPackages.python3.withPackages (p: [p.six]);
 in stdenv.mkDerivation rec {
   pname = "spidermonkey";
-  version = "68.7.0";
+  version = "68.10.0";
 
   src = fetchurl {
     url = "mirror://mozilla/firefox/releases/${version}esr/source/firefox-${version}esr.source.tar.xz";
-    sha256 = "0w3mad0r4khcd7hfmm3xix9x6mp5yp8g8kyh18vanfnjqdls0gmd";
+    sha256 = "0azdinwqjfv2q37gqpxmfvzsk86pvsi6cjaq1310zs26gric5j1f";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/interpreters/wasmer/default.nix b/nixpkgs/pkgs/development/interpreters/wasmer/default.nix
index 404c0731c349..c620b1686ea6 100644
--- a/nixpkgs/pkgs/development/interpreters/wasmer/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/wasmer/default.nix
@@ -35,6 +35,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://wasmer.io/";
     license = licenses.mit;
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix b/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix
index dd6e3eb4a7f4..f7ef111bc667 100644
--- a/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix
+++ b/nixpkgs/pkgs/development/interpreters/wasmtime/default.nix
@@ -2,17 +2,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wasmtime";
-  version = "0.16.0";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = "${pname}";
     rev = "v${version}";
-    sha256 = "1zlljqkkcw8h94ff1w47sqn9pn0zal06s06i8nciv5i2d1xaqg5n";
+    sha256 = "0gb8xk27ych553b7knflbbks9q64m39v40sdirycm6prqfnfrnm8";
     fetchSubmodules = true;
   };
 
-  cargoSha256 = "1hb7l7a76lgbji0qm9qd80m35cp346hyi4rphfk6p80v142cw8hh";
+  cargoSha256 = "1dqaxpwfm234yjwrhglzvsqhh2fr5nsx7bpk7bmycyk6lml8vxy7";
 
   nativeBuildInputs = [ python cmake clang ];
   buildInputs = [ llvmPackages.libclang ] ++
diff --git a/nixpkgs/pkgs/development/java-modules/jogl/default.nix b/nixpkgs/pkgs/development/java-modules/jogl/default.nix
index 574629d8efd3..d4e5f1b62bf7 100644
--- a/nixpkgs/pkgs/development/java-modules/jogl/default.nix
+++ b/nixpkgs/pkgs/development/java-modules/jogl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, ant, jdk, git, xorg, udev, libGL, libGLU }:
+{ stdenv, fetchgit, ant, jdk8, git, xorg, udev, libGL, libGLU }:
 
 {
   jogl_2_3_2 =
@@ -28,7 +28,8 @@
           -exec sed -i 's@"libGLU.so"@"${libGLU}/lib/libGLU.so"@' {} \;
       '';
 
-      nativeBuildInputs = [ jdk ant git ];
+      # TODO: upgrade to jdk https://github.com/NixOS/nixpkgs/pull/89731
+      nativeBuildInputs = [ jdk8 ant git ];
       buildInputs = [ udev xorg.libX11 xorg.libXrandr xorg.libXcursor xorg.libXt xorg.libXxf86vm xorg.libXrender ];
 
       buildPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/CGAL/cgal_path.patch b/nixpkgs/pkgs/development/libraries/CGAL/cgal_path.patch
new file mode 100644
index 000000000000..68eec5fbb21f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/CGAL/cgal_path.patch
@@ -0,0 +1,15 @@
+--- Installation/cmake/modules/CGALConfig_install.cmake.in.original	2019-07-10 10:39:12.377022659 -0700
++++ Installation/cmake/modules/CGALConfig_install.cmake.in	2019-07-10 10:47:24.310154928 -0700
+@@ -45,9 +45,9 @@
+ set(CGAL_SHARED_LINKER_FLAGS_DEBUG_INIT   "@CMAKE_SHARED_LINKER_FLAGS_DEBUG@" )
+ set(CGAL_BUILD_TYPE_INIT                  "@CMAKE_BUILD_TYPE@" )
+
+-set(CGAL_INCLUDE_DIRS  "${CGAL_INSTALL_PREFIX}/@CGAL_INSTALL_INC_DIR@" )
+-set(CGAL_MODULES_DIR   "${CGAL_INSTALL_PREFIX}/@CGAL_INSTALL_CMAKE_DIR@" )
+-set(CGAL_LIBRARIES_DIR "${CGAL_INSTALL_PREFIX}/@CGAL_INSTALL_LIB_DIR@" )
++set(CGAL_INCLUDE_DIRS  "@CGAL_INSTALL_INC_DIR@" )
++set(CGAL_MODULES_DIR   "@CGAL_INSTALL_CMAKE_DIR@" )
++set(CGAL_LIBRARIES_DIR "@CGAL_INSTALL_LIB_DIR@" )
+
+ # If CGAL_ImageIO is built, tell if it was linked with Zlib.
+ set(CGAL_ImageIO_USE_ZLIB                 "@CGAL_ImageIO_USE_ZLIB@" )
diff --git a/nixpkgs/pkgs/development/libraries/CGAL/default.nix b/nixpkgs/pkgs/development/libraries/CGAL/default.nix
index 16a643e2a7ff..97ddab1a32e5 100644
--- a/nixpkgs/pkgs/development/libraries/CGAL/default.nix
+++ b/nixpkgs/pkgs/development/libraries/CGAL/default.nix
@@ -1,14 +1,20 @@
-{ stdenv, fetchFromGitHub, cmake, boost, gmp, mpfr }:
+{ stdenv
+, fetchFromGitHub
+, cmake
+, boost
+, gmp
+, mpfr
+}:
 
 stdenv.mkDerivation rec {
-  version = "5.0.2";
-  name = "cgal-" + version;
+  pname = "cgal";
+  version = "5.0.3";
 
   src = fetchFromGitHub {
     owner = "CGAL";
     repo = "releases";
     rev = "CGAL-${version}";
-    sha256 = "0w97knzw85mljrmns8fxjqinx0fqwls9g91mk434ryf6ciy6yign";
+    sha256 = "1p22dwrzzvbmrfjr6m3dac55nq8pp0b9afp3vz6239yp3gf2fcws";
   };
 
   # note: optional component libCGAL_ImageIO would need zlib and opengl;
@@ -16,6 +22,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ boost gmp mpfr ];
   nativeBuildInputs = [ cmake ];
 
+  patches = [ ./cgal_path.patch ];
+
   doCheck = false;
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/libraries/LASzip/LASzip2.nix b/nixpkgs/pkgs/development/libraries/LASzip/LASzip2.nix
new file mode 100644
index 000000000000..2eb309631289
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/LASzip/LASzip2.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl, cmake }:
+
+stdenv.mkDerivation rec {
+  version = "2.2.0";
+  pname = "LASzip";
+
+  src = fetchurl {
+    url = "https://github.com/LASzip/LASzip/archive/v${version}.tar.gz";
+    sha256 = "b8e8cc295f764b9d402bc587f3aac67c83ed8b39f1cb686b07c168579c61fbb2";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    description = "Turn quickly bulky LAS files into compact LAZ files without information loss";
+    homepage = "https://laszip.org";
+    license = licenses.lgpl2;
+    maintainers = [ maintainers.michelk ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/LASzip/default.nix b/nixpkgs/pkgs/development/libraries/LASzip/default.nix
index fb747dc9f33c..0300aa37f0f9 100644
--- a/nixpkgs/pkgs/development/libraries/LASzip/default.nix
+++ b/nixpkgs/pkgs/development/libraries/LASzip/default.nix
@@ -1,15 +1,19 @@
-{ stdenv, fetchurl, cmake }:
+{ stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
-  version = "2.2.0";
+  version = "3.4.3";
   pname = "LASzip";
 
-  src = fetchurl {
-    url = "https://github.com/LASzip/LASzip/archive/v${version}.tar.gz";
-    sha256 = "b8e8cc295f764b9d402bc587f3aac67c83ed8b39f1cb686b07c168579c61fbb2";
+  src = fetchFromGitHub {
+    owner = "LASzip";
+    repo = "LASzip";
+    rev = version;
+    sha256 = "09lcsgxwv0jq50fhsgfhx0npbf1zcwn3hbnq6q78fshqksbxmz7m";
   };
 
-  buildInputs = [cmake];
+  nativeBuildInputs = [
+    cmake
+  ];
 
   meta = {
     description = "Turn quickly bulky LAS files into compact LAZ files without information loss";
diff --git a/nixpkgs/pkgs/development/libraries/SDL2/default.nix b/nixpkgs/pkgs/development/libraries/SDL2/default.nix
index 5f3d42b4da37..31624bee2fb3 100644
--- a/nixpkgs/pkgs/development/libraries/SDL2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/SDL2/default.nix
@@ -42,9 +42,14 @@ stdenv.mkDerivation rec {
     substituteInPlace include/SDL_opengl_glext.h \
       --replace "typedef ptrdiff_t GLsizeiptr;" "typedef signed long int khronos_ssize_t; typedef khronos_ssize_t GLsizeiptr;" \
       --replace "typedef ptrdiff_t GLintptr;" "typedef signed long int khronos_intptr_t; typedef khronos_intptr_t GLintptr;"
+
+    substituteInPlace configure \
+      --replace 'WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`' 'WAYLAND_SCANNER=`pkg-config --variable=wayland_scanner wayland-scanner`'
   '';
 
-  nativeBuildInputs = [ pkgconfig ];
+  depsBuildBuild = [ pkgconfig ];
+
+  nativeBuildInputs = [ pkgconfig ] ++ optionals waylandSupport [ wayland ];
 
   propagatedBuildInputs = dlopenPropagatedBuildInputs;
 
diff --git a/nixpkgs/pkgs/development/libraries/adns/default.nix b/nixpkgs/pkgs/development/libraries/adns/default.nix
index 2f468c7f4c1f..db5284e91278 100644
--- a/nixpkgs/pkgs/development/libraries/adns/default.nix
+++ b/nixpkgs/pkgs/development/libraries/adns/default.nix
@@ -1,11 +1,8 @@
-{ stdenv, fetchurl }:
+{ stdenv, lib, fetchurl, gnum4 }:
 
-let
-  version = "1.5.1";
-in
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "adns";
-  inherit version;
+  version = "1.6.0";
 
   src = fetchurl {
     urls = [
@@ -13,25 +10,38 @@ stdenv.mkDerivation {
       "ftp://ftp.chiark.greenend.org.uk/users/ian/adns/adns-${version}.tar.gz"
       "mirror://gnu/adns/adns-${version}.tar.gz"
     ];
-    sha256 = "1ssfh94ck6kn98nf2yy6743srpgqgd167va5ja3bwx42igqjc42v";
+    sha256 = "1pi0xl07pav4zm2jrbrfpv43s1r1q1y12awgak8k7q41m5jp4hpv";
   };
 
+  nativeBuildInputs = [ gnum4 ];
+
   preConfigure =
-    stdenv.lib.optionalString stdenv.isDarwin "sed -i -e 's|-Wl,-soname=$(SHLIBSONAME)||' configure";
+    lib.optionalString stdenv.isDarwin "sed -i -e 's|-Wl,-soname=$(SHLIBSONAME)||' configure";
 
   # https://www.mail-archive.com/nix-dev@cs.uu.nl/msg01347.html for details.
   doCheck = false;
 
-  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
-    install_name_tool -id $out/lib/libadns.so.1.5 $out/lib/libadns.so.1.5
+  postInstall = let suffix = lib.versions.majorMinor version;
+  in lib.optionalString stdenv.isDarwin ''
+    install_name_tool -id $out/lib/libadns.so.${suffix} $out/lib/libadns.so.${suffix}
+  '';
+
+  # darwin executables fail, but I don't want to fail the 100-500 packages depending on this lib
+  doInstallCheck = !stdenv.isDarwin;
+  installCheckPhase = ''
+    set -eo pipefail
+
+    for prog in $out/bin/*; do
+      $prog --help > /dev/null && echo $(basename $prog) shows usage
+    done
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "http://www.chiark.greenend.org.uk/~ian/adns/";
     description = "Asynchronous DNS Resolver Library";
-    license = stdenv.lib.licenses.lgpl2;
+    license = licenses.lgpl2;
 
-    platforms = stdenv.lib.platforms.unix;
-    maintainers = [ stdenv.lib.maintainers.peti ];
+    platforms = platforms.unix;
+    maintainers = [ maintainers.peti ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/afflib/default.nix b/nixpkgs/pkgs/development/libraries/afflib/default.nix
index 716517262616..030ff73f97f8 100644
--- a/nixpkgs/pkgs/development/libraries/afflib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/afflib/default.nix
@@ -3,23 +3,24 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "3.7.18";
+  version = "3.7.19";
   pname = "afflib";
 
   src = fetchFromGitHub {
     owner = "sshock";
     repo = "AFFLIBv3";
     rev = "v${version}";
-    sha256 = "0963gw316p4nyxa9zxmgif29p8i99k898av2g78g28dxafqj3w8c";
+    sha256 = "1qs843yi33yqbp0scqirn753lxzg762rz6xy2h3f8f77fijqj2qb";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
-  buildInputs = [ zlib curl expat fuse openssl python3 ];
+  buildInputs = [ zlib curl expat openssl python3 ]
+    ++ stdenv.lib.optionals stdenv.isLinux [ fuse ];
 
   meta = {
     homepage = "http://afflib.sourceforge.net/";
     description = "Advanced forensic format library";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
     license = stdenv.lib.licenses.bsdOriginal;
     maintainers = [ stdenv.lib.maintainers.raskin ];
     inherit version;
diff --git a/nixpkgs/pkgs/development/libraries/agda/agda-categories/default.nix b/nixpkgs/pkgs/development/libraries/agda/agda-categories/default.nix
index 9eb68b5a64ac..13ca6c52d71a 100644
--- a/nixpkgs/pkgs/development/libraries/agda/agda-categories/default.nix
+++ b/nixpkgs/pkgs/development/libraries/agda/agda-categories/default.nix
@@ -1,14 +1,14 @@
 { lib, mkDerivation, fetchFromGitHub, standard-library }:
 
 mkDerivation rec {
-  version = "0.1";
+  version = "0.1.3.1";
   pname = "agda-categories";
 
   src = fetchFromGitHub {
     owner = "agda";
     repo = "agda-categories";
-    rev = "release/v${version}";
-    sha256 = "0m4pjy92jg6zfziyv0bxv5if03g8k4413ld8c3ii2xa8bzfn04m2";
+    rev = "v${version}";
+    sha256 = "08mc20qaz9vp5rhi60rh8wvjkg5aby3bgwwdhfnxha1663qf1q24";
   };
 
   buildInputs = [ standard-library ];
@@ -18,11 +18,6 @@ mkDerivation rec {
     description = "A new Categories library";
     license = licenses.bsd3;
     platforms = platforms.unix;
-    # agda categories takes a lot of memory to build.
-    # This can be removed if this is eventually fixed upstream.
-    hydraPlatforms = [];
-    # Waiting for release 0.2 for this to work
-    broken = true;
     maintainers = with maintainers; [ alexarice turion ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/agda/agda-prelude/default.nix b/nixpkgs/pkgs/development/libraries/agda/agda-prelude/default.nix
index 2bec10c02dd1..f13cc6982365 100644
--- a/nixpkgs/pkgs/development/libraries/agda/agda-prelude/default.nix
+++ b/nixpkgs/pkgs/development/libraries/agda/agda-prelude/default.nix
@@ -1,14 +1,14 @@
 { stdenv, mkDerivation, fetchFromGitHub }:
 
 mkDerivation rec {
-  version = "compat-2.6.0";
+  version = "compat-2.6.1";
   pname = "agda-prelude";
 
   src = fetchFromGitHub {
     owner = "UlfNorell";
     repo = "agda-prelude";
     rev = version;
-    sha256 = "0brg61qrf8izqav80qpx77dbdxvlnsxyy0v7hmlrmhg68b5lp38y";
+    sha256 = "128rbhd32qlq2nq3wgqni4ih58zzwvs9pkn9j8236ycxxp6x81sl";
   };
 
   preConfigure = ''
@@ -18,15 +18,11 @@ mkDerivation rec {
     cd ..
   '';
 
-  everythingFile = "./Everything.agda";
-
   meta = with stdenv.lib; {
     homepage = "https://github.com/UlfNorell/agda-prelude";
     description = "Programming library for Agda";
     license = stdenv.lib.licenses.mit;
     platforms = stdenv.lib.platforms.unix;
-    # broken since Agda 2.6.1
-    broken = true;
     maintainers = with maintainers; [ mudri alexarice turion ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/agda/generic/default.nix b/nixpkgs/pkgs/development/libraries/agda/generic/default.nix
new file mode 100644
index 000000000000..1287e08bda1d
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/agda/generic/default.nix
@@ -0,0 +1,31 @@
+{ lib, mkDerivation, fetchFromGitHub, standard-library }:
+
+mkDerivation rec {
+  pname = "generic";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    repo = "Generic";
+    owner = "effectfully";
+    rev = "v${version}";
+    sha256 = "121121rg3daaqp91845fbyws6g28hyj1ywmh12n54r3nicb35g5q";
+  };
+
+  buildInputs = [
+    standard-library
+  ];
+
+  preBuild = ''
+    echo "module Everything where" > Everything.agda
+	  find src -name '*.agda' | sed -e 's/src\///;s/\//./g;s/\.agda$//;s/^/import /' >> Everything.agda
+  '';
+
+  meta = with lib; {
+    description =
+      "A library for doing generic programming in Agda";
+    homepage = src.meta.homepage;
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ alexarice turion ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/alembic/default.nix b/nixpkgs/pkgs/development/libraries/alembic/default.nix
index 0c3ba0abaa9a..1bb79a64ba10 100644
--- a/nixpkgs/pkgs/development/libraries/alembic/default.nix
+++ b/nixpkgs/pkgs/development/libraries/alembic/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec
 {
   pname = "alembic";
-  version = "1.7.12";
+  version = "1.7.14";
 
   src = fetchFromGitHub {
     owner = "alembic";
     repo = "alembic";
     rev = version;
-    sha256 = "0a9icrv6pwh2b73lywq1aj7i19pmzpg59iy3ngal8vq4zdciylqc";
+    sha256 = "0yri063v7j5jsvqbmlwr0hf2d1a55dgc1nj85rf10sxqhijwzk55";
   };
 
   outputs = [ "bin" "dev" "out" "lib" ];
diff --git a/nixpkgs/pkgs/development/libraries/allegro/default.nix b/nixpkgs/pkgs/development/libraries/allegro/default.nix
index 6071f63255d9..99d75225036e 100644
--- a/nixpkgs/pkgs/development/libraries/allegro/default.nix
+++ b/nixpkgs/pkgs/development/libraries/allegro/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, texinfo, libXext, xorgproto, libX11
+{ stdenv, fetchurl, texinfo6_5, libXext, xorgproto, libX11
 , libXpm, libXt, libXcursor, alsaLib, cmake, zlib, libpng, libvorbis
 , libXxf86dga, libXxf86misc
 , libXxf86vm, openal, libGLU, libGL }:
@@ -14,10 +14,11 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./nix-unstable-sandbox-fix.patch
+    ./encoding.patch
   ];
 
   buildInputs = [
-    texinfo libXext xorgproto libX11 libXpm libXt libXcursor
+    texinfo6_5 libXext xorgproto libX11 libXpm libXt libXcursor
     alsaLib cmake zlib libpng libvorbis libXxf86dga libXxf86misc
     libXxf86vm openal libGLU libGL
   ];
diff --git a/nixpkgs/pkgs/development/libraries/allegro/encoding.patch b/nixpkgs/pkgs/development/libraries/allegro/encoding.patch
new file mode 100644
index 000000000000..1dca94752801
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/allegro/encoding.patch
@@ -0,0 +1,10 @@
+--- allegro-4.4.3/docs/src/allegro._tx.orig     2019-02-02 20:28:46.000000000 +0100
++++ allegro-4.4.3/docs/src/allegro._tx  2019-11-04 11:12:39.352699777 +0100
+@@ -23,6 +23,7 @@
+ @man_shortdesc_force1=allegro
+ @man_shortdesc_force2=Allegro game programming library.
+ @$\input texinfo
++@$@documentencoding ISO-8859-1
+ @$@setfilename allegro.inf
+ @$@settitle Allegro Manual
+ @$@setchapternewpage odd
\ No newline at end of file
diff --git a/nixpkgs/pkgs/development/libraries/amdvlk/default.nix b/nixpkgs/pkgs/development/libraries/amdvlk/default.nix
new file mode 100644
index 000000000000..1f75892b9ac8
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/amdvlk/default.nix
@@ -0,0 +1,99 @@
+{ stdenv
+, lib
+, fetchRepoProject
+, cmake
+, ninja
+, patchelf
+, perl
+, pkgconfig
+, python3
+, expat
+, libdrm
+, ncurses
+, openssl
+, wayland
+, xorg
+, zlib
+}:
+let
+
+  suffix = if stdenv.system == "x86_64-linux" then "64" else "32";
+
+in stdenv.mkDerivation rec {
+  pname = "amdvlk";
+  version = "2020.Q3.5";
+
+  src = fetchRepoProject {
+    name = "${pname}-src";
+    manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
+    rev = "refs/tags/v-${version}";
+    sha256 = "08fj3cg3axnwadlpfim23g5nyjl69044fqxdr57af6y79441njay";
+  };
+
+  buildInputs = [
+    expat
+    ncurses
+    openssl
+    wayland
+    xorg.libX11
+    xorg.libxcb
+    xorg.xcbproto
+    xorg.libXext
+    xorg.libXrandr
+    xorg.libXft
+    xorg.libxshmfence
+    zlib
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    ninja
+    patchelf
+    perl
+    pkgconfig
+    python3
+  ];
+
+  rpath = lib.makeLibraryPath [
+    libdrm
+    openssl
+    stdenv.cc.cc.lib
+    xorg.libX11
+    xorg.libxcb
+    xorg.libxshmfence
+  ];
+
+  cmakeDir = "../drivers/xgl";
+
+  # LTO is disabled in gcc for i686 as of #66528
+  cmakeFlags = stdenv.lib.optionals stdenv.is32bit ["-DXGL_ENABLE_LTO=OFF"];
+
+  postPatch = stdenv.lib.optionalString stdenv.is32bit ''
+    substituteInPlace drivers/pal/cmake/PalCompilerOptions.cmake \
+      --replace "pal_setup_gcc_ipo()" ""
+  '';
+
+  installPhase = ''
+    install -Dm755 -t $out/lib icd/amdvlk${suffix}.so
+    install -Dm644 -t $out/share/vulkan/icd.d ../drivers/AMDVLK/json/Redhat/amd_icd${suffix}.json
+
+    substituteInPlace $out/share/vulkan/icd.d/amd_icd${suffix}.json --replace \
+      "/usr/lib64" "$out/lib"
+    substituteInPlace $out/share/vulkan/icd.d/amd_icd${suffix}.json --replace \
+      "/usr/lib" "$out/lib"
+
+    patchelf --set-rpath "$rpath" $out/lib/amdvlk${suffix}.so
+  '';
+
+  # Keep the rpath, otherwise vulkaninfo and vkcube segfault
+  dontPatchELF = true;
+
+  meta = with stdenv.lib; {
+    description = "AMD Open Source Driver For Vulkan";
+    homepage = "https://github.com/GPUOpen-Drivers/AMDVLK";
+    changelog = "https://github.com/GPUOpen-Drivers/AMDVLK/releases/tag/v-${version}";
+    license = licenses.mit;
+    platforms = [ "x86_64-linux" "i686-linux" ];
+    maintainers = with maintainers; [ danieldk Flakebi ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/aml/default.nix b/nixpkgs/pkgs/development/libraries/aml/default.nix
new file mode 100644
index 000000000000..0b753618ba6a
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/aml/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, meson, pkg-config, ninja }:
+
+stdenv.mkDerivation rec {
+  pname = "aml";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "any1";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1pmiflkd9idnf6p0rnmccqqlj87k8crz9ixpx6rix671vnpk0xzi";
+  };
+
+  nativeBuildInputs = [ meson pkg-config ninja ];
+
+  meta = with stdenv.lib; {
+    description = "Another main loop";
+    inherit (src.meta) homepage;
+    license = licenses.isc;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/apache-activemq/default.nix b/nixpkgs/pkgs/development/libraries/apache-activemq/default.nix
index c09fb8d91ee1..8490541546b5 100644
--- a/nixpkgs/pkgs/development/libraries/apache-activemq/default.nix
+++ b/nixpkgs/pkgs/development/libraries/apache-activemq/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "apache-activemq";
-  version = "5.15.13";
+  version = "5.16.0";
 
   src = fetchurl {
-    sha256 = "1hzapnd0lbiid243xiaz8kv67al8griccjj4dabml62hqhrk9k96";
+    sha256 = "0x68l4n0v2jqmbawdgpghmhnchpg1jsvxzskj6s4hjll6hdgb6fk";
     url = "mirror://apache/activemq/${version}/${pname}-${version}-bin.tar.gz";
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/appindicator-sharp/default.nix b/nixpkgs/pkgs/development/libraries/appindicator-sharp/default.nix
new file mode 100644
index 000000000000..9eff4e3895ba
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/appindicator-sharp/default.nix
@@ -0,0 +1,43 @@
+{
+  autoreconfHook,
+  fetchFromGitHub,
+  lib,
+  libappindicator,
+  mono,
+  gtk-sharp-3_0,
+  pkg-config,
+  stdenv,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "appindicator-sharp";
+  version = "5a79cde93da6d68a4b1373f1ce5796c3c5fe1b37";
+
+  src = fetchFromGitHub {
+    owner = "stsundermann";
+    repo = "appindicator-sharp";
+    rev = version;
+    sha256 = "sha256:1i0vqbp05l29f5v9ygp7flm4s05pcnn5ivl578mxmhb51s7ncw6l";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    mono
+    pkg-config
+  ];
+
+  buildInputs = [
+    gtk-sharp-3_0
+    libappindicator
+  ];
+
+  ac_cv_path_MDOC = "no";
+  installFlagsArray = ["GAPIXMLDIR=/tmp/gapixml"];
+
+  meta = {
+    description = "Bindings for appindicator using gobject-introspection";
+    homepage = "https://github.com/stsundermann/appindicator-sharp";
+    license = lib.licenses.lgpl3Only;
+    maintainers = with lib.maintainers; [ kevincox ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/appstream/default.nix b/nixpkgs/pkgs/development/libraries/appstream/default.nix
index bffd281d0de4..45f27b38a63d 100644
--- a/nixpkgs/pkgs/development/libraries/appstream/default.nix
+++ b/nixpkgs/pkgs/development/libraries/appstream/default.nix
@@ -1,18 +1,20 @@
 { stdenv, fetchFromGitHub, meson, ninja, pkgconfig, gettext
 , xmlto, docbook_xsl, docbook_xml_dtd_45, libxslt
 , libstemmer, glib, xapian, libxml2, libyaml, gobject-introspection
-, pcre, itstool, gperf, vala
+, pcre, itstool, gperf, vala, lmdb, libsoup
 }:
 
 stdenv.mkDerivation rec {
   pname = "appstream";
-  version = "0.12.6";
+  version = "0.12.11";
+
+  outputs = [ "out" "dev" ];
 
   src = fetchFromGitHub {
     owner  = "ximion";
     repo   = "appstream";
-    rev    = "APPSTREAM_${stdenv.lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "0hbl26aw3g2hag7z4di9z59qz057qcywrxpnnmp86z7rngvjbqpx";
+    rev    = "v${version}";
+    sha256 = "sha256-bCDyMwQdn9Csxs2hy4dm+LjtxK4+YBK6yDkAdhu1QVU=";
   };
 
   nativeBuildInputs = [
@@ -21,7 +23,7 @@ stdenv.mkDerivation rec {
     gobject-introspection itstool vala
   ];
 
-  buildInputs = [ libstemmer pcre glib xapian libxml2 libyaml gperf ];
+  buildInputs = [ libstemmer pcre glib xapian libxml2 libyaml gperf lmdb libsoup ];
 
   prePatch = ''
     substituteInPlace meson.build \
@@ -47,6 +49,6 @@ stdenv.mkDerivation rec {
       can be consumed by other software.
     '';
     license     = licenses.lgpl21Plus;
-    platforms   = platforms.linux;
+    platforms   = platforms.unix;
  };
 }
diff --git a/nixpkgs/pkgs/development/libraries/appstream/qt.nix b/nixpkgs/pkgs/development/libraries/appstream/qt.nix
index 22f1566ad0ac..c9fc96b32512 100644
--- a/nixpkgs/pkgs/development/libraries/appstream/qt.nix
+++ b/nixpkgs/pkgs/development/libraries/appstream/qt.nix
@@ -1,17 +1,24 @@
-{ stdenv, appstream, qtbase, qttools }:
+{ stdenv, mkDerivation, appstream, qtbase, qttools }:
 
 # TODO: look into using the libraries from the regular appstream derivation as we keep duplicates here
 
-stdenv.mkDerivation {
+mkDerivation {
   pname = "appstream-qt";
   inherit (appstream) version src prePatch;
 
+  outputs = [ "out" "dev" ];
+
   buildInputs = appstream.buildInputs ++ [ appstream qtbase ];
 
   nativeBuildInputs = appstream.nativeBuildInputs ++ [ qttools ];
 
   mesonFlags = appstream.mesonFlags ++ [ "-Dqt=true" ];
 
+  postFixup = ''
+    sed -i "$dev/lib/cmake/AppStreamQt/AppStreamQtConfig.cmake" \
+      -e "/INTERFACE_INCLUDE_DIRECTORIES/ s@\''${PACKAGE_PREFIX_DIR}@$dev@"
+  '';
+
   meta = appstream.meta // {
     description = "Software metadata handling library - Qt";
  };
diff --git a/nixpkgs/pkgs/development/libraries/argp-standalone/default.nix b/nixpkgs/pkgs/development/libraries/argp-standalone/default.nix
index 6544c4811875..f961c577aa7d 100644
--- a/nixpkgs/pkgs/development/libraries/argp-standalone/default.nix
+++ b/nixpkgs/pkgs/development/libraries/argp-standalone/default.nix
@@ -50,7 +50,7 @@ stdenv.mkDerivation {
   meta = with stdenv.lib; {
     homepage = "https://www.lysator.liu.se/~nisse/misc/";
     description = "Standalone version of arguments parsing functions from GLIBC";
-    platforms = with platforms; darwin ++ [ "x86_64-linux" ];
+    platforms = with platforms; darwin ++ linux;
     maintainers = with maintainers; [ amar1729 ];
     license = licenses.gpl2;
   };
diff --git a/nixpkgs/pkgs/development/libraries/armadillo/default.nix b/nixpkgs/pkgs/development/libraries/armadillo/default.nix
index ecf337fc375a..a4d359b985b2 100644
--- a/nixpkgs/pkgs/development/libraries/armadillo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/armadillo/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "armadillo";
-  version = "9.900.1";
+  version = "9.900.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
-    sha256 = "0dfn6wbr7mrh1nzg2rj642p4sycwchf0k743ipgdwvyh4ihsvmsk";
+    sha256 = "02pwhf3y2qq50dswjvfcijaw938d1zi1hxr17msv2x1ahlvff5fn";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/arrow-cpp/default.nix b/nixpkgs/pkgs/development/libraries/arrow-cpp/default.nix
index b559ef96f439..2c9bced41925 100644
--- a/nixpkgs/pkgs/development/libraries/arrow-cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/arrow-cpp/default.nix
@@ -1,9 +1,16 @@
-{ stdenv, lib, fetchurl, fetchFromGitHub, fetchpatch, fixDarwinDylibNames, autoconf, boost
-, brotli, cmake, flatbuffers, gflags, glog, gtest, lz4, perl
-, python3, rapidjson, snappy, thrift, which, zlib, zstd
+{ stdenv, lib, fetchurl, fetchFromGitHub, fetchpatch, fixDarwinDylibNames
+, autoconf, boost, brotli, cmake, flatbuffers, gflags, glog, gtest, lz4
+, perl, python3, rapidjson, snappy, thrift, utf8proc, which, zlib, zstd
 , enableShared ? true }:
 
 let
+  arrow-testing = fetchFromGitHub {
+    owner = "apache";
+    repo = "arrow-testing";
+    rev = "f552c4dcd2ae3d14048abd20919748cce5276ade";
+    sha256 = "1smaidk5k2q6xdav7qp74ak34vvwv5qyfqw0szi573awsrsrahr8";
+  };
+
   parquet-testing = fetchFromGitHub {
     owner = "apache";
     repo = "parquet-testing";
@@ -13,14 +20,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "arrow-cpp";
-  version = "0.17.1";
+  version = "1.0.0";
 
   src = fetchurl {
     url =
       "mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz";
-    sha256 = "18lyvbibfdw3w77cy5whbq7c6mshn5fg2bhvgw7v226a7cs1rifb";
+    sha256 = "0hzjrhr4brqpmy9f8fbj9p5a482ya8kjhkycz6maa0w2nkzbkpc6";
   };
-
   sourceRoot = "apache-arrow-${version}/cpp";
 
   ARROW_JEMALLOC_URL = fetchurl {
@@ -32,19 +38,31 @@ in stdenv.mkDerivation rec {
     sha256 = "1xl7z0vwbn5iycg7amka9jd6hxd8nmfk7nahi4p9w2bnw9f0wcrl";
   };
 
+  ARROW_MIMALLOC_URL = fetchurl {
+    # From
+    # ./cpp/cmake_modules/ThirdpartyToolchain.cmake
+    # ./cpp/thirdparty/versions.txt
+    url =
+      "https://github.com/microsoft/mimalloc/archive/v1.6.3.tar.gz";
+    sha256 = "0pia8b4acv1w8qzcpc9i1a2fasnn3rmp996k0l87p2di0lbls0w5";
+  };
+
   patches = [
     # patch to fix python-test
     ./darwin.patch
-
-    # fix musl build
+    # Properly exported static targets. Remove at the next version bump.
     (fetchpatch {
-      url = "https://github.com/apache/arrow/commit/de4168786dfd8ab932f48801e0a7a6b8a370c19d.diff";
-      sha256 = "1nl4y1rwdl0gn67v7l05ibc4lwkn6x7fhwbmslmm08cqmwfjsx3y";
+      url = "https://github.com/apache/arrow/commit/b040600b39a4f803b704934252665f9440dd1276.patch";
+      sha256 = "1mvw29ybcsz77zprmsk41blxmrj8ywayg7ghf6xkkf98907ws8m8";
+      includes = [ "*.cmake" ];
+      stripLen = 1;
+    })
+    (fetchpatch {
+      url = "https://github.com/apache/arrow/commit/81d3f2657b17436d6d5a6af9aaf6f36c3f5e4ac9.patch";
+      sha256 = "18fmzr5f79hvx2qpyfgvvl98p4zgzfxrmrd1d2basp0w0da1ciqs";
+      includes = [ "*CMakeLists.txt" "*.cmake" "*.cmake.in" ];
       stripLen = 1;
     })
-  ] ++ lib.optionals (!enableShared) [
-    # The shared jemalloc lib is unused and breaks in static mode due to missing -fpic.
-    ./jemalloc-disable-shared.patch
   ];
 
   nativeBuildInputs = [
@@ -63,6 +81,7 @@ in stdenv.mkDerivation rec {
     rapidjson
     snappy
     thrift
+    utf8proc
     zlib
     zstd
   ] ++ lib.optionals enableShared [
@@ -71,15 +90,17 @@ in stdenv.mkDerivation rec {
   ];
 
   preConfigure = ''
-    substituteInPlace cmake_modules/FindLz4.cmake --replace CMAKE_STATIC_LIBRARY CMAKE_SHARED_LIBRARY
-
     patchShebangs build-support/
   '';
 
   cmakeFlags = [
     "-DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON"
+    "-DARROW_BUILD_SHARED=${if enableShared then "ON" else "OFF"}"
+    "-DARROW_BUILD_STATIC=${if enableShared then "OFF" else "ON"}"
     "-DARROW_BUILD_TESTS=ON"
+    "-DARROW_VERBOSE_THIRDPARTY_BUILD=ON"
     "-DARROW_DEPENDENCY_SOURCE=SYSTEM"
+    "-DARROW_DEPENDENCY_USE_SHARED=${if enableShared then "ON" else "OFF"}"
     "-DARROW_PLASMA=ON"
     # Disable Python for static mode because openblas is currently broken there.
     "-DARROW_PYTHON=${if enableShared then "ON" else "OFF"}"
@@ -87,24 +108,23 @@ in stdenv.mkDerivation rec {
     "-DARROW_WITH_BROTLI=ON"
     "-DARROW_WITH_LZ4=ON"
     "-DARROW_WITH_SNAPPY=ON"
+    "-DARROW_WITH_UTF8PROC=ON"
     "-DARROW_WITH_ZLIB=ON"
     "-DARROW_WITH_ZSTD=ON"
+    "-DARROW_MIMALLOC=ON"
     # Parquet options:
     "-DARROW_PARQUET=ON"
     "-DPARQUET_BUILD_EXECUTABLES=ON"
   ] ++ lib.optionals (!enableShared) [
-    "-DARROW_BUILD_SHARED=OFF"
-    "-DARROW_BOOST_USE_SHARED=OFF"
-    "-DARROW_GFLAGS_USE_SHARED=OFF"
-    "-DARROW_PROTOBUF_USE_SHARED=OFF"
     "-DARROW_TEST_LINKAGE=static"
-    "-DOPENSSL_USE_STATIC_LIBS=ON"
   ] ++ lib.optionals stdenv.isDarwin [
     "-DCMAKE_SKIP_BUILD_RPATH=OFF" # needed for tests
     "-DCMAKE_INSTALL_RPATH=@loader_path/../lib" # needed for tools executables
   ] ++ lib.optional (!stdenv.isx86_64) "-DARROW_USE_SIMD=OFF";
 
   doInstallCheck = true;
+  ARROW_TEST_DATA =
+    if doInstallCheck then "${arrow-testing}/data" else null;
   PARQUET_TEST_DATA =
     if doInstallCheck then "${parquet-testing}/data" else null;
   installCheckInputs = [ perl which ];
diff --git a/nixpkgs/pkgs/development/libraries/arrow-cpp/jemalloc-disable-shared.patch b/nixpkgs/pkgs/development/libraries/arrow-cpp/jemalloc-disable-shared.patch
deleted file mode 100644
index 564f67273886..000000000000
--- a/nixpkgs/pkgs/development/libraries/arrow-cpp/jemalloc-disable-shared.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/cmake_modules/ThirdpartyToolchain.cmake b/cmake_modules/ThirdpartyToolchain.cmake
---- a/cmake_modules/ThirdpartyToolchain.cmake
-+++ b/cmake_modules/ThirdpartyToolchain.cmake
-@@ -1317,6 +1317,7 @@ if(ARROW_JEMALLOC)
-               "--with-jemalloc-prefix=je_arrow_"
-               "--with-private-namespace=je_arrow_private_"
-               "--without-export"
-+              "--disable-shared"
-               # Don't override operator new()
-               "--disable-cxx" "--disable-libdl"
-               # See https://github.com/jemalloc/jemalloc/issues/1237
diff --git a/nixpkgs/pkgs/development/libraries/asio/1.12.nix b/nixpkgs/pkgs/development/libraries/asio/1.12.nix
deleted file mode 100644
index 94fe4c703670..000000000000
--- a/nixpkgs/pkgs/development/libraries/asio/1.12.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{callPackage, ... } @ args:
-
-callPackage ./generic.nix (args // {
-  version = "1.12.1";
-  sha256 = "0nln45662kg799ykvqx5m9z9qcsmadmgg6r5najryls7x16in2d9";
-})
diff --git a/nixpkgs/pkgs/development/libraries/asio/default.nix b/nixpkgs/pkgs/development/libraries/asio/default.nix
new file mode 100644
index 000000000000..9c89b27d371f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/asio/default.nix
@@ -0,0 +1,6 @@
+{callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // {
+  version = "1.16.1";
+  sha256 = "1333ca6lnsdck4fsgjpbqf4lagxsnbg9970wxlsrinmwvdvdnwg2";
+})
diff --git a/nixpkgs/pkgs/development/libraries/asio/generic.nix b/nixpkgs/pkgs/development/libraries/asio/generic.nix
index f1ea8a084187..d83a48e61b8a 100644
--- a/nixpkgs/pkgs/development/libraries/asio/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/asio/generic.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation {
     homepage = "http://asio.sourceforge.net/";
     description = "Cross-platform C++ library for network and low-level I/O programming";
     license = licenses.boost;
-    broken = stdenv.isDarwin;  # test when updating to >=1.12.1
+    broken = stdenv.isDarwin && stdenv.lib.versionOlder version "1.16.1";
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/aspell/dictionaries.nix b/nixpkgs/pkgs/development/libraries/aspell/dictionaries.nix
index 1d7b7a6f98b5..32405d6a5251 100644
--- a/nixpkgs/pkgs/development/libraries/aspell/dictionaries.nix
+++ b/nixpkgs/pkgs/development/libraries/aspell/dictionaries.nix
@@ -274,10 +274,10 @@ in rec {
 
   de = buildOfficialDict {
     language = "de";
-    version = "20030222-1";
+    version = "20161207-7-0";
     fullName = "German";
     filename = "aspell6";
-    sha256 = "01p92qj66cqb346gk7hjfynaap5sbcn85xz07kjfdq623ghr8v5s";
+    sha256 = "0wamclvp66xfmv5wff96v6gdlnfv4y8lx3f8wvxyzm5imwgms4n2";
   };
 
   de-alt = buildOfficialDict {
@@ -694,18 +694,18 @@ in rec {
 
   pt_BR = buildOfficialDict {
     language = "pt_BR";
-    version = "20090702-0";
+    version = "20131030-12-0";
     fullName = "Brazilian Portuguese";
     filename = "aspell6";
-    sha256 = "1y09lx9zf2rnp55r16b2vgj953l3538z1vaqgflg9mdvm555bz3p";
+    sha256 = "1xqlpk21s93c6blkdnpk7l62q9fxjvzdv2x86chl8p2x1gdrj3gb";
   };
 
   pt_PT = buildOfficialDict {
     language = "pt_PT";
-    version = "20070510-0";
+    version = "20190329-1-0";
     fullName = "Portuguese";
     filename = "aspell6";
-    sha256 = "1mnr994cwlag6shy8865ky99lymysiln07mbldcncahg90dagdxq";
+    sha256 = "0ld0d0ily4jqifjfsxfv4shbicz6ymm2gk56fq9gbzra1j4qnw75";
   };
 
   qu = buildOfficialDict {
diff --git a/nixpkgs/pkgs/development/libraries/assimp/default.nix b/nixpkgs/pkgs/development/libraries/assimp/default.nix
index a6f27f4476b8..c1972aa1ca81 100644
--- a/nixpkgs/pkgs/development/libraries/assimp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/assimp/default.nix
@@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
     homepage = "http://assimp.sourceforge.net/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ehmry ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/attr/default.nix b/nixpkgs/pkgs/development/libraries/attr/default.nix
index d8afa5a7de12..d69d475f7370 100644
--- a/nixpkgs/pkgs/development/libraries/attr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/attr/default.nix
@@ -19,10 +19,7 @@ stdenv.mkDerivation rec {
 
   patches = [
     # fix fakechroot: https://github.com/dex4er/fakechroot/issues/57
-    (fetchurl {
-      url = "https://git.savannah.nongnu.org/cgit/attr.git/patch/?id=14adc898a36948267bfe5c63b399996879e94c98";
-      sha256 = "0gja54fz79a9ma6b4mprnjxq77l5yg2z9xknlwhmkcrfnam02qxp";
-    })
+    ./syscall.patch
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/attr/syscall.patch b/nixpkgs/pkgs/development/libraries/attr/syscall.patch
new file mode 100644
index 000000000000..be2cfb3928b4
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/attr/syscall.patch
@@ -0,0 +1,120 @@
+From 14adc898a36948267bfe5c63b399996879e94c98 Mon Sep 17 00:00:00 2001
+From: Andreas Gruenbacher <agruenba@redhat.com>
+Date: Fri, 17 Aug 2018 14:07:31 +0200
+Subject: Switch back to syscall()
+
+Switch back to syscall() for the *xattr system calls.  The current
+mechanism of forwarding those calls to glibc breaks libraries like
+libfakeroot (fakeroot) and libasan (the gcc address sanitizer; gcc
+-fsanitize=address).
+
+Those libraries provide wrappers for functions defined in other shared
+libraries, usually glibc, do their own processing, and forward calls to
+the original symbols looke dup via dlsym(RTLD_NEXT, "symbol_name").  In
+our case, dlsym returns the libattr_*xattr wrappers.  However, when our
+wrappers try calling glibc, they end up calling the libfakeroot /
+libasan wrappers instead because those override the original symbols =>
+recursion.
+
+The libattr_*xattr wrappers will only be used when symbols are looked up
+at runtime (dlopen / dlsym).  Programs linking against libattr will
+directly use the glibc provided symbols.  Therefore, the slightly worse
+performance of syscall() won't affect any of the "normal" users of
+libattr.
+---
+ libattr/syscalls.c | 26 ++++++++++++++------------
+ 1 file changed, 14 insertions(+), 12 deletions(-)
+
+diff --git a/libattr/syscalls.c b/libattr/syscalls.c
+index 3013aa0..721ad7f 100644
+--- a/libattr/syscalls.c
++++ b/libattr/syscalls.c
+@@ -22,6 +22,8 @@
+ 
+ #include "config.h"
+ 
++#include <unistd.h>
++#include <sys/syscall.h>
+ #include <sys/xattr.h>
+ 
+ #ifdef HAVE_VISIBILITY_ATTRIBUTE
+@@ -31,67 +33,67 @@
+ int libattr_setxattr(const char *path, const char *name,
+ 		     void *value, size_t size, int flags)
+ {
+-	return setxattr(path, name, value, size, flags);
++	return syscall(__NR_setxattr, path, name, value, size, flags);
+ }
+ 
+ int libattr_lsetxattr(const char *path, const char *name,
+ 		      void *value, size_t size, int flags)
+ {
+-	return lsetxattr(path, name, value, size, flags);
++	return syscall(__NR_lsetxattr, path, name, value, size, flags);
+ }
+ 
+ int libattr_fsetxattr(int filedes, const char *name,
+ 		      void *value, size_t size, int flags)
+ {
+-	return fsetxattr(filedes, name, value, size, flags);
++	return syscall(__NR_fsetxattr, filedes, name, value, size, flags);
+ }
+ 
+ ssize_t libattr_getxattr(const char *path, const char *name,
+ 			 void *value, size_t size)
+ {
+-	return getxattr(path, name, value, size);
++	return syscall(__NR_getxattr, path, name, value, size);
+ }
+ 
+ ssize_t libattr_lgetxattr(const char *path, const char *name,
+ 			  void *value, size_t size)
+ {
+-	return lgetxattr(path, name, value, size);
++	return syscall(__NR_lgetxattr, path, name, value, size);
+ }
+ 
+ ssize_t libattr_fgetxattr(int filedes, const char *name,
+ 			  void *value, size_t size)
+ {
+-	return fgetxattr(filedes, name, value, size);
++	return syscall(__NR_fgetxattr, filedes, name, value, size);
+ }
+ 
+ ssize_t libattr_listxattr(const char *path, char *list, size_t size)
+ {
+-	return listxattr(path, list, size);
++	return syscall(__NR_listxattr, path, list, size);
+ }
+ 
+ ssize_t libattr_llistxattr(const char *path, char *list, size_t size)
+ {
+-	return llistxattr(path, list, size);
++	return syscall(__NR_llistxattr, path, list, size);
+ }
+ 
+ ssize_t libattr_flistxattr(int filedes, char *list, size_t size)
+ {
+-	return flistxattr(filedes, list, size);
++	return syscall(__NR_flistxattr, filedes, list, size);
+ }
+ 
+ int libattr_removexattr(const char *path, const char *name)
+ {
+-	return removexattr(path, name);
++	return syscall(__NR_removexattr, path, name);
+ }
+ 
+ int libattr_lremovexattr(const char *path, const char *name)
+ {
+-	return lremovexattr(path, name);
++	return syscall(__NR_lremovexattr, path, name);
+ }
+ 
+ int libattr_fremovexattr(int filedes, const char *name)
+ {
+-	return fremovexattr(filedes, name);
++	return syscall(__NR_fremovexattr, filedes, name);
+ }
+ 
+ #ifdef HAVE_VISIBILITY_ATTRIBUTE
diff --git a/nixpkgs/pkgs/development/libraries/audiality2/default.nix b/nixpkgs/pkgs/development/libraries/audiality2/default.nix
new file mode 100644
index 000000000000..a311c5f5479f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/audiality2/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+# The two audio backends:
+, SDL2
+, jack2
+}:
+
+stdenv.mkDerivation rec {
+  pname = "audiality2";
+  version = "1.9.4";
+
+  src = fetchFromGitHub {
+    owner = "olofson";
+    repo = "audiality2";
+    rev = "v${version}";
+    sha256 = "0ipqna7a9mxqm0fl9ggwhbc7i9yxz3jfyi0w3dymjp40v7jw1n20";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    SDL2
+    jack2
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A realtime scripted modular audio engine for video games and musical applications";
+    homepage = "http://audiality.org";
+    license = licenses.zlib;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fgaz ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/libraries/audio/libmysofa/default.nix b/nixpkgs/pkgs/development/libraries/audio/libmysofa/default.nix
index 5324fe0685d6..c2b2725c19cc 100644
--- a/nixpkgs/pkgs/development/libraries/audio/libmysofa/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/libmysofa/default.nix
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
   buildInputs = [ zlib ];
 
-  cmakeFlags = [ "-DBUILD_TESTS=OFF" ];
+  cmakeFlags = [ "-DBUILD_TESTS=OFF" "-DCODE_COVERAGE=OFF" ];
 
   meta = with stdenv.lib; {
     description = "Reader for AES SOFA files to get better HRTFs";
diff --git a/nixpkgs/pkgs/development/libraries/audio/lv2/default.nix b/nixpkgs/pkgs/development/libraries/audio/lv2/default.nix
index bb2645beda7f..dac985846469 100644
--- a/nixpkgs/pkgs/development/libraries/audio/lv2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/audio/lv2/default.nix
@@ -12,11 +12,13 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig wafHook ];
   buildInputs = [ gtk2 libsndfile python3 ];
 
+  wafConfigureFlags = stdenv.lib.optionals stdenv.isDarwin [ "--lv2dir=${placeholder "out"}/lib/lv2" ];
+
   meta = with stdenv.lib; {
     homepage = "https://lv2plug.in";
     description = "A plugin standard for audio systems";
     license = licenses.mit;
     maintainers = [ maintainers.goibhniu ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/audio/mbelib/default.nix b/nixpkgs/pkgs/development/libraries/audio/mbelib/default.nix
new file mode 100644
index 000000000000..1fda3a919264
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/audio/mbelib/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "mbelib";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "szechyjs";
+    repo = "mbelib";
+    rev = "v${version}";
+    sha256 = "0v6b7nf8fgxy7vzgcwffqyql5zhldrz30c88k1ylbjp78hwh4rif";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+  preCheck = ''
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD
+    export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}$PWD
+  '';
+
+  meta = with stdenv.lib; {
+    description = "P25 Phase 1 and ProVoice vocoder";
+    homepage = https://github.com/szechyjs/mbelib;
+    license = licenses.isc;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ andrew-d ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/avahi/default.nix b/nixpkgs/pkgs/development/libraries/avahi/default.nix
index 4c7e5321f555..3f36b87af704 100644
--- a/nixpkgs/pkgs/development/libraries/avahi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/avahi/default.nix
@@ -1,5 +1,5 @@
 { fetchurl, fetchpatch, stdenv, pkgconfig, libdaemon, dbus, perlPackages
-, expat, gettext, intltool, glib, libiconv
+, expat, gettext, intltool, glib, libiconv, writeShellScriptBin
 , gtk3Support ? false, gtk3 ? null
 , qt4 ? null
 , qt4Support ? false
@@ -9,6 +9,11 @@
 
 assert qt4Support -> qt4 != null;
 
+let
+  # despite the configure script claiming it supports $PKG_CONFIG, it doesnt respect it
+  pkgconfig-helper = writeShellScriptBin "pkg-config" ''exec $PKG_CONFIG "$@"'';
+in
+
 stdenv.mkDerivation rec {
   name = "avahi${stdenv.lib.optionalString withLibdnssdCompat "-compat"}-${version}";
   version = "0.7";
@@ -18,6 +23,11 @@ stdenv.mkDerivation rec {
     sha256 = "0128n7jlshw4bpx0vg8lwj8qwdisjxi7mvniwfafgnkzzrfrpaap";
   };
 
+  prePatch = ''
+    substituteInPlace configure \
+      --replace pkg-config "$PKG_CONFIG"
+  '';
+
   patches = [
     ./no-mkdir-localstatedir.patch
     (fetchpatch {
@@ -35,7 +45,7 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs =
     stdenv.lib.optionals withPython (with python.pkgs; [ python pygobject3 dbus-python ]);
 
-  nativeBuildInputs = [ pkgconfig gettext intltool glib ];
+  nativeBuildInputs = [ pkgconfig pkgconfig-helper gettext intltool glib ];
 
   configureFlags =
     [ "--disable-qt3" "--disable-gdbm" "--disable-mono"
diff --git a/nixpkgs/pkgs/development/libraries/ayatana-ido/default.nix b/nixpkgs/pkgs/development/libraries/ayatana-ido/default.nix
new file mode 100644
index 000000000000..66ead87daa07
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/ayatana-ido/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub
+, pkgconfig, autoreconfHook
+, gtk3, gobject-introspection, gtk-doc, vala
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ayatana-ido";
+  version = "0.8.0";
+
+  src = fetchFromGitHub {
+    owner = "AyatanaIndicators";
+    repo = pname;
+    rev = version;
+    sha256 = "1jmdvvgrgicpnpnygc24qcisqb9y026541gb6lw6fwapvc9aj73p";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook gtk-doc vala ];
+
+  buildInputs = [ gtk3 gobject-introspection ];
+
+  meta = with stdenv.lib; {
+    description = "Ayatana Display Indicator Objects";
+    homepage = "https://github.com/AyatanaIndicators/ayatana-ido";
+    changelog = "https://github.com/AyatanaIndicators/ayatana-ido/blob/${version}/ChangeLog";
+    license = [ licenses.gpl3 licenses.lgpl21 ];
+    maintainers = [ maintainers.nickhu ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/babl/default.nix b/nixpkgs/pkgs/development/libraries/babl/default.nix
index 12547bcb4c75..0b6c2ce064a8 100644
--- a/nixpkgs/pkgs/development/libraries/babl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/babl/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "babl";
-  version = "0.1.78";
+  version = "0.1.80";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://download.gimp.org/pub/babl/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "F9VJNjO/9VhdnzdbxN9ZJRV80ccMzXwipjW+dcFyUjo=";
+    sha256 = "13jgq2i1xkbqw9ijy8sy5iabf5jkviqi0wxlpjcm0n22mwwwqp7p";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/bctoolbox/default.nix b/nixpkgs/pkgs/development/libraries/bctoolbox/default.nix
index 22578dad38db..d99ee57ef9e0 100644
--- a/nixpkgs/pkgs/development/libraries/bctoolbox/default.nix
+++ b/nixpkgs/pkgs/development/libraries/bctoolbox/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "bctoolbox";
-  version = "4.3.1";
+  version = "4.4.0";
 
   nativeBuildInputs = [ cmake bcunit ];
   buildInputs = [ mbedtls ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "1y91jcrma4kjqpm6w5ahlygjsyvx7l8zjrjvq7g2n39jmw175cvs";
+    sha256 = "1r3ymwk10ry6mz4zd08q7l5msq7h15931l7f0clw2siqs8r81x7c";
   };
 
   # Do not build static libraries
diff --git a/nixpkgs/pkgs/development/libraries/bzrtp/default.nix b/nixpkgs/pkgs/development/libraries/bzrtp/default.nix
index 2eb5a2dfcffb..d54539d9f25a 100644
--- a/nixpkgs/pkgs/development/libraries/bzrtp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/bzrtp/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "bzrtp";
-  version = "4.3.1";
+  version = "4.4.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "14fqp6r9rf7z6j5phbsrdxlbjak03hs8kb94b6jgcrcdxrxhy3fy";
+    sha256 = "1yjmsbqmymzl4r7sba6w4a2yld8m6hzafr6jf7sj0syhwpnc3zv6";
   };
 
   buildInputs = [ bctoolbox sqlite ];
diff --git a/nixpkgs/pkgs/development/libraries/c-blosc/default.nix b/nixpkgs/pkgs/development/libraries/c-blosc/default.nix
index 85905778e803..59daf15d416b 100644
--- a/nixpkgs/pkgs/development/libraries/c-blosc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/c-blosc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "c-blosc";
-  version = "1.18.1";
+  version = "1.20.0";
 
   src = fetchFromGitHub {
     owner = "Blosc";
     repo = "c-blosc";
     rev = "v${version}";
-    sha256 = "1ywq8j70149859vvs19wgjq89d6xsvvmvm2n1dmkzpchxgrvnw70";
+    sha256 = "1rhv9na9cdp2j81a981s2y69c7m9apdiylf9j51dij0lm1m0ljdr";
   };
 
   buildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/caf/default.nix b/nixpkgs/pkgs/development/libraries/caf/default.nix
index 605df2381016..74ca27f2e3c0 100644
--- a/nixpkgs/pkgs/development/libraries/caf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/caf/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "actor-framework";
-  version = "0.17.5";
+  version = "0.17.6";
 
   src = fetchFromGitHub {
     owner = "actor-framework";
     repo = "actor-framework";
     rev = version;
-    sha256 = "1w7sanxhh4sv4ap3ildqzlziazcy7ydx2pbjjrf3k60lcwq0lzn6";
+    sha256 = "03pi2jcdvdxncvv3hmzlamask0db1fc5l79k9rgq9agl0swd0mnz";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/cairo/default.nix b/nixpkgs/pkgs/development/libraries/cairo/default.nix
index 0a5aee79fed2..f6356ed0c81a 100644
--- a/nixpkgs/pkgs/development/libraries/cairo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cairo/default.nix
@@ -9,14 +9,14 @@
 , x11XrenderSupport ? x11Support, libXrender
 , xcbSupport ? !stdenv.isDarwin, libxcb # no longer experimental since 1.12
 , libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
-, glSupport ? config.cairo.gl or (libGLSupported && stdenv.isLinux)
+, glSupport ? x11Support && config.cairo.gl or (libGLSupported && stdenv.isLinux)
 , libGL ? null # libGLU libGL is no longer a big dependency
 , darwin
 }:
 
 assert fontconfigSupport -> freetypeSupport;
 assert x11XrenderSupport -> x11Support;
-assert glSupport -> libGL != null;
+assert glSupport -> x11Support && libGL != null;
 
 let
   version = "1.16.0";
diff --git a/nixpkgs/pkgs/development/libraries/capnproto/default.nix b/nixpkgs/pkgs/development/libraries/capnproto/default.nix
index 9020ccf08b5b..ad2517f25890 100644
--- a/nixpkgs/pkgs/development/libraries/capnproto/default.nix
+++ b/nixpkgs/pkgs/development/libraries/capnproto/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "capnproto";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchurl {
     url = "https://capnproto.org/capnproto-c++-${version}.tar.gz";
-    sha256 = "0hfdnhlbskagzgvby8wy6lrxj53zfzpfqimbhga68c0ji2yw1969";
+    sha256 = "03f1862ljdshg7d0rg3j7jzgm3ip55kzd2y91q7p0racax3hxx6i";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/libraries/catch2/default.nix b/nixpkgs/pkgs/development/libraries/catch2/default.nix
index ec3c04856fe3..49b2e9be02ca 100644
--- a/nixpkgs/pkgs/development/libraries/catch2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/catch2/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "catch2";
-  version = "2.12.2";
+  version = "2.12.3";
 
   src = fetchFromGitHub {
     owner = "catchorg";
     repo = "Catch2";
     rev = "v${version}";
-    sha256="17fr2k0jhdcrmmvvb9d8igmjbyads3hkdrakvmrpgc82srm78jcc";
+    sha256="0rp30754frp88wbl17ksr40mmffw5xibq73blgx9jj42d7nl891x";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/cddlib/default.nix b/nixpkgs/pkgs/development/libraries/cddlib/default.nix
index 76b5390fb693..a9a10fc6317b 100644
--- a/nixpkgs/pkgs/development/libraries/cddlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cddlib/default.nix
@@ -7,12 +7,12 @@
 
 stdenv.mkDerivation rec {
   pname = "cddlib";
-  version = "0.94j";
+  version = "0.94l";
   src = fetchFromGitHub {
     owner = "cddlib";
     repo = "cddlib";
     rev = version;
-    sha256 = "1z03ljy3rrr0qq5gq54vynnif6fn0xhn05g90nnv0dpyc3ps8lzp";
+    sha256 = "0934a0i2m2bamlibi4cbrf1md1pz7dp35jbfamb0k7x644sayl4k";
   };
   buildInputs = [gmp];
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/cgui/default.nix b/nixpkgs/pkgs/development/libraries/cgui/default.nix
index 39ed74d00750..d6c550a8da87 100644
--- a/nixpkgs/pkgs/development/libraries/cgui/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cgui/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation rec {
     description = "A multiplatform basic GUI library";
     maintainers = [ maintainers.raskin ];
     platforms = platforms.linux;
+    license = licenses.free;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/check/default.nix b/nixpkgs/pkgs/development/libraries/check/default.nix
index 0a51e7e592b1..be000e457c40 100644
--- a/nixpkgs/pkgs/development/libraries/check/default.nix
+++ b/nixpkgs/pkgs/development/libraries/check/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "check";
-  version = "0.14.0";
+  version = "0.15.2";
 
   src = fetchurl {
     url = "https://github.com/libcheck/check/releases/download/${version}/check-${version}.tar.gz";
-    sha256 = "02zkfiyklckmivrfvdsrlzvzphkdsgjrz3igncw05dv5pshhq3xx";
+    sha256 = "02m25y9m46pb6n46s51av62kpd936lkfv3b13kfpckgvmh5lxpm8";
   };
 
   # Test can randomly fail: https://hydra.nixos.org/build/7243912
diff --git a/nixpkgs/pkgs/development/libraries/chromaprint/default.nix b/nixpkgs/pkgs/development/libraries/chromaprint/default.nix
index 9da5a80f6205..12f844aa5958 100644
--- a/nixpkgs/pkgs/development/libraries/chromaprint/default.nix
+++ b/nixpkgs/pkgs/development/libraries/chromaprint/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, boost, ffmpeg_3 }:
+{ lib, stdenv, fetchurl, cmake, boost, ffmpeg, darwin, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "chromaprint";
@@ -11,7 +11,8 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ boost ffmpeg_3 ];
+  buildInputs = [ boost ffmpeg ] ++ lib.optionals stdenv.isDarwin
+    (with darwin.apple_sdk.frameworks; [Accelerate CoreGraphics CoreVideo zlib]);
 
   cmakeFlags = [ "-DBUILD_EXAMPLES=ON" "-DBUILD_TOOLS=ON" ];
 
@@ -20,6 +21,6 @@ stdenv.mkDerivation rec {
     description = "AcoustID audio fingerprinting library";
     maintainers = with maintainers; [ ehmry ];
     license = licenses.lgpl21Plus;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/cimg/default.nix b/nixpkgs/pkgs/development/libraries/cimg/default.nix
index 312f927767dd..1963534ae51e 100644
--- a/nixpkgs/pkgs/development/libraries/cimg/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cimg/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cimg";
-  version = "2.9.1";
+  version = "2.9.2";
 
   src = fetchFromGitHub {
     owner = "dtschump";
     repo = "CImg";
     rev = "v.${version}";
-    sha256 = "0vl7dscbms4834gm1000sp17pr714pbqwicn40pbl85mxr3pnjp3";
+    sha256 = "sha256-7v8651yDkxTdRMoGhEl4d/k7mxYwfIwW/rkuyjqVGwY=";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/cm256cc/default.nix b/nixpkgs/pkgs/development/libraries/cm256cc/default.nix
index aaf409981024..eaddcb86f546 100644
--- a/nixpkgs/pkgs/development/libraries/cm256cc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cm256cc/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/f4exb/cm256cc";
     platforms = platforms.linux;
     maintainers = with maintainers; [ alkeryn ];
+    license = licenses.gpl3;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/coin3d/default.nix b/nixpkgs/pkgs/development/libraries/coin3d/default.nix
index 634ac27058bb..7fd676372534 100644
--- a/nixpkgs/pkgs/development/libraries/coin3d/default.nix
+++ b/nixpkgs/pkgs/development/libraries/coin3d/default.nix
@@ -1,14 +1,14 @@
-{ fetchFromBitbucket, stdenv, boost, cmake, libGL, libGLU }:
+{ fetchFromGitHub, stdenv, boost, cmake, libGL, libGLU }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "coin";
-  version = "unstable-2019-06-12";
+  version = "4.0.0";
 
-  src = fetchFromBitbucket {
-    owner = "Coin3D";
+  src = fetchFromGitHub {
+    owner = "coin3d";
     repo = "coin";
-    rev = "8d860d7ba112b22c4e9b289268fd8b3625ab81d3";
-    sha256 = "1cpncljqvw28k5wvpgchv593nayhby5gwpvbnyllc9hb9ms816xn";
+    rev = "Coin-${version}";
+    sha256 = "1ayg0hl8wanhadahm5xbghghxw1qjwqbrs3dl3ngnff027hsyf8p";
   };
 
   postPatch = ''
@@ -18,11 +18,11 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ cmake ];
   buildInputs = [ boost libGL libGLU ];
 
-  meta = {
-    homepage = "https://bitbucket.org/Coin3D/coin/wiki/Home";
-    license = stdenv.lib.licenses.gpl2Plus;
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/coin3d/coin";
+    license = licenses.bsd3;
     description = "High-level, retained-mode toolkit for effective 3D graphics development";
-    maintainers = [ stdenv.lib.maintainers.viric ];
-    platforms = stdenv.lib.platforms.linux;
+    maintainers = with maintainers; [ gebner viric ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/console-bridge/default.nix b/nixpkgs/pkgs/development/libraries/console-bridge/default.nix
new file mode 100644
index 000000000000..e2370ecce647
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/console-bridge/default.nix
@@ -0,0 +1,23 @@
+{ lib, stdenv, fetchFromGitHub, cmake, validatePkgConfig }:
+
+stdenv.mkDerivation rec {
+  pname = "console-bridge";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "ros";
+    repo = "console_bridge";
+    rev = version;
+    sha256 = "18qycrjnf7v8n5bipij91jsv7ap98z5dsp93w2gz9rah4lfjb80q";
+  };
+
+  nativeBuildInputs = [ cmake validatePkgConfig ];
+
+  meta = with lib; {
+    description = "A ROS-independent package for logging that seamlessly pipes into rosconsole/rosout for ROS-dependent packages";
+    homepage = "https://github.com/ros/console_bridge";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ lopsided98 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/cpp-hocon/default.nix b/nixpkgs/pkgs/development/libraries/cpp-hocon/default.nix
index 01da4753b0e6..47ec7a1a6eb4 100644
--- a/nixpkgs/pkgs/development/libraries/cpp-hocon/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cpp-hocon/default.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "cpp-hocon";
-  version = "0.2.2";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
-    sha256 = "1c8zy4hi0182k0vfx5l8bjq1iv7lvvw1zi4vy3429s898rx7z3d3";
+    sha256 = "0b24anpwkmvbsn5klnr58vxksw00ci9pjhwzx7a61kplyhsaiydw";
     rev = version;
     repo = "cpp-hocon";
     owner = "puppetlabs";
   };
 
-  NIX_CFLAGS_COMPILE = "-Wno-error=catch-value";
+  NIX_CFLAGS_COMPILE = "-Wno-error";
 
   nativeBuildInputs = [ cmake ];
 
@@ -21,10 +21,10 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     inherit (src.meta) homepage;
-    description = " A C++ port of the Typesafe Config library";
+    description = "A C++ port of the Typesafe Config library";
     license = licenses.asl20;
     maintainers = [ maintainers.womfoo ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/libraries/cpp-utilities/default.nix b/nixpkgs/pkgs/development/libraries/cpp-utilities/default.nix
index 4b2520d714bd..cbe628aaf4ee 100644
--- a/nixpkgs/pkgs/development/libraries/cpp-utilities/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cpp-utilities/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cpp-utilities";
-  version = "5.4.0";
+  version = "5.6.0";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = pname;
     rev = "v${version}";
-    sha256 = "18sy1jrz5adzy7c8k42kqlpicc4h0igimjqwaa6m9swwkhwiqqjz";
+    sha256 = "0998pyrxicpalm2w1wmv7qrfhzgr45kl6xh9gv0zxhx2a4xjqq5v";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/crc32c/default.nix b/nixpkgs/pkgs/development/libraries/crc32c/default.nix
index 1da2f210c5cf..b9c12b1889c2 100644
--- a/nixpkgs/pkgs/development/libraries/crc32c/default.nix
+++ b/nixpkgs/pkgs/development/libraries/crc32c/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, fetchFromGitHub, cmake, gflags }:
+{ stdenv, lib, fetchFromGitHub, cmake, gflags
+, staticOnly ? false }:
+
 stdenv.mkDerivation rec {
   pname = "crc32c";
   version = "1.1.0";
@@ -14,6 +16,7 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
   buildInputs = [ gflags ];
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isAarch64 "-march=armv8-a+crc";
+  cmakeFlags = lib.optionals (!staticOnly) [ "-DBUILD_SHARED_LIBS=1"  ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/google/crc32c";
diff --git a/nixpkgs/pkgs/development/libraries/crcpp/default.nix b/nixpkgs/pkgs/development/libraries/crcpp/default.nix
new file mode 100644
index 000000000000..c26578804baf
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/crcpp/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "crcpp";
+  version = "1.0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "d-bahr";
+    repo = "CRCpp";
+    rev = "release-${version}";
+    sha256 = "138w97kfxnv8rcnvggba6fcxgbgq8amikkmy3jhqfn6xzy6zaimh";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/include
+    cp inc/CRC.h $out/include
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/d-bahr/CRCpp";
+    description = "Easy to use and fast C++ CRC library";
+    platforms = platforms.all;
+    maintainers = [ maintainers.ivar ];
+    license = licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/curlcpp/default.nix b/nixpkgs/pkgs/development/libraries/curlcpp/default.nix
index 9f2710f42a46..ead4d1b76bd6 100644
--- a/nixpkgs/pkgs/development/libraries/curlcpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/curlcpp/default.nix
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
     description = "Object oriented C++ wrapper for CURL";
     platforms = platforms.unix;
     license = licenses.mit;
-    maintainers = with maintainers; [ juliendehos rszibele ];
+    maintainers = with maintainers; [ rszibele ];
   };
 }
 
diff --git a/nixpkgs/pkgs/development/libraries/cutelyst/default.nix b/nixpkgs/pkgs/development/libraries/cutelyst/default.nix
index 94d9776b54d2..d5e83f0410c4 100644
--- a/nixpkgs/pkgs/development/libraries/cutelyst/default.nix
+++ b/nixpkgs/pkgs/development/libraries/cutelyst/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cutelyst";
-  version = "2.11.0";
+  version = "2.12.0";
 
   src = fetchFromGitHub {
     owner = "cutelyst";
     repo = "cutelyst";
     rev = "v${version}";
-    sha256 = "1c4cjzx6jkqlblcfc7pkx66py43576y6rky19j7rjiap724q2yk9";
+    sha256 = "1ngacc7ackp08hajby0xvzpvnqahwm2dbxmisw7j7qs1lqrx9k3n";
   };
 
   nativeBuildInputs = [ cmake pkgconfig wrapQtAppsHook ];
diff --git a/nixpkgs/pkgs/development/libraries/dav1d/default.nix b/nixpkgs/pkgs/development/libraries/dav1d/default.nix
index 799375ba44d5..0889fdd0d8f4 100644
--- a/nixpkgs/pkgs/development/libraries/dav1d/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dav1d/default.nix
@@ -9,14 +9,14 @@ assert useVulkan -> withExamples;
 
 stdenv.mkDerivation rec {
   pname = "dav1d";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchFromGitLab {
     domain = "code.videolan.org";
     owner = "videolan";
     repo = pname;
     rev = version;
-    sha256 = "0zmn4ald518vgs3cc0ga227aimr38h16mkliq5j8mg6p9dn7nx1w";
+    sha256 = "1yawrbaazj6a2rvvb58k6kh492fjxdwlm94bl6ipry0fqmz0rlnl";
   };
 
   nativeBuildInputs = [ meson ninja nasm pkgconfig ];
diff --git a/nixpkgs/pkgs/development/libraries/dbus/default.nix b/nixpkgs/pkgs/development/libraries/dbus/default.nix
index 049623d3d911..3598d8d938e0 100644
--- a/nixpkgs/pkgs/development/libraries/dbus/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dbus/default.nix
@@ -20,11 +20,11 @@ assert enableSystemd -> systemd != null;
 
 stdenv.mkDerivation rec {
   pname = "dbus";
-  version = "1.12.18";
+  version = "1.12.20";
 
   src = fetchurl {
     url = "https://dbus.freedesktop.org/releases/dbus/dbus-${version}.tar.gz";
-    sha256 = "01jkm6shm76bl3cflmnn37dv6nkph0w1akbqpklyac02hiq4vkv4";
+    sha256 = "1zp5gpx61v1cpqf2zwb1cidhp9xylvw49d3zydkxqk6b1qa20xpp";
   };
 
   patches = lib.optional stdenv.isSunOS ./implement-getgrouplist.patch;
diff --git a/nixpkgs/pkgs/development/libraries/dbxml/default.nix b/nixpkgs/pkgs/development/libraries/dbxml/default.nix
index 4913cfe28473..a0005f1bf720 100644
--- a/nixpkgs/pkgs/development/libraries/dbxml/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dbxml/default.nix
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "a8fc8f5e0c3b6e42741fa4dfc3b878c982ff8f5e5f14843f6a7e20d22e64251a";
   };
 
+  outputs = [ "bin" "dev" "out" ];
+
   patches = [
     ./cxx11.patch
     ./incorrect-optimization.patch
diff --git a/nixpkgs/pkgs/development/libraries/dclib/default.nix b/nixpkgs/pkgs/development/libraries/dclib/default.nix
index 6b42af05c117..a9929ea2adda 100644
--- a/nixpkgs/pkgs/development/libraries/dclib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dclib/default.nix
@@ -10,7 +10,10 @@ stdenv.mkDerivation {
 
   buildInputs = [libxml2 openssl bzip2];
 
-  meta = {
-    platforms = stdenv.lib.platforms.linux;
+  meta = with stdenv.lib; {
+    description = "Peer-to-Peer file sharing client";
+    homepage = "http://dcgui.berlios.de";
+    platforms = platforms.linux;
+    license = [ licenses.openssl licenses.gpl2 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/dlib/default.nix b/nixpkgs/pkgs/development/libraries/dlib/default.nix
index e584c3e9d9b1..43ac2530cc13 100644
--- a/nixpkgs/pkgs/development/libraries/dlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dlib/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dlib";
-  version = "19.20";
+  version = "19.21";
 
   src = fetchFromGitHub {
     owner = "davisking";
     repo = "dlib";
     rev ="v${version}";
-    sha256 = "10b5hrprlls0nhljx18ys8cms7bgqirvhxlx6gbvbprbi6q16f9r";
+    sha256 = "00jwklnl21l3hlvb0bjc6rl3hgi88vxb41dsn4m0kh436c9v0rl3";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/docopt_cpp/default.nix b/nixpkgs/pkgs/development/libraries/docopt_cpp/default.nix
index 5c4e71a4f871..36b791ccc98c 100644
--- a/nixpkgs/pkgs/development/libraries/docopt_cpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/docopt_cpp/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, cmake, python }:
 
 stdenv.mkDerivation rec {
-  version = "0.6.2";
+  version = "0.6.3";
   pname = "docopt.cpp";
 
   src = fetchFromGitHub {
     owner = "docopt";
     repo = "docopt.cpp";
     rev = "v${version}";
-    sha256 = "1rgkc8nsc2zz2lkyai0y68vrd6i6kbq63hm3vdza7ab6ghq0n1dd";
+    sha256 = "0cz3vv7g5snfbsqcf3q8bmd6kv5qp84gj3avwkn4vl00krw13bl7";
   };
 
   nativeBuildInputs = [ cmake python ];
@@ -17,6 +17,12 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  postPatch = ''
+    substituteInPlace docopt.pc.in \
+      --replace "@CMAKE_INSTALL_PREFIX@/@CMAKE_INSTALL_LIBDIR@" \
+                "@CMAKE_INSTALL_LIBDIR@"
+  '';
+
   checkPhase = "LD_LIBRARY_PATH=$(pwd) python ./run_tests";
 
   meta = with stdenv.lib; {
@@ -27,4 +33,3 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ knedlsepp ];
   };
 }
-
diff --git a/nixpkgs/pkgs/development/libraries/doctest/default.nix b/nixpkgs/pkgs/development/libraries/doctest/default.nix
index f3ed36db31c9..5a2561056876 100644
--- a/nixpkgs/pkgs/development/libraries/doctest/default.nix
+++ b/nixpkgs/pkgs/development/libraries/doctest/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "doctest";
-  version = "2.3.8";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "onqtam";
     repo = "doctest";
     rev = version;
-    sha256 = "16w907750jnp98vdzkn72lzwy1zyryaqvfi80lbdp398pj23rq65";
+    sha256 = "1yi95saqv8qb3ix6w8d7ffvs7qbwvqmq6wblckhxhicxxdxk85cd";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/dqlite/default.nix b/nixpkgs/pkgs/development/libraries/dqlite/default.nix
index aed7dc59bcbc..49435ec67184 100644
--- a/nixpkgs/pkgs/development/libraries/dqlite/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dqlite/default.nix
@@ -1,17 +1,15 @@
 { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, file, libco-canonical
 , libuv, raft-canonical, sqlite-replication }:
 
-with stdenv.lib;
-
 stdenv.mkDerivation rec {
   pname = "dqlite";
-  version = "1.4.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = pname;
     rev = "v${version}";
-    sha256 = "04h3wbfv6bkzzmcwaja33x2qkj3czn0p6fgbdgqd1xli8sx2c2k4";
+    sha256 = "0h7ypigj1b6xbspzc35y89jkp84v8rqiv9qgkyqlqylr7mcw952a";
   };
 
   nativeBuildInputs = [ autoreconfHook file pkgconfig ];
@@ -22,17 +20,17 @@ stdenv.mkDerivation rec {
     sqlite-replication
   ];
 
-  # tests hang for ever on x86_64-linux
+  # tests fail
   doCheck = false;
 
   outputs = [ "dev" "out" ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = ''
       Expose a SQLite database over the network and replicate it across a
       cluster of peers
     '';
-    homepage = "https://github.com/CanonicalLtd/dqlite/";
+    homepage = "https://dqlite.io/";
     license = licenses.asl20;
     maintainers = with maintainers; [ joko wucke13 ];
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/development/libraries/draco/default.nix b/nixpkgs/pkgs/development/libraries/draco/default.nix
new file mode 100644
index 000000000000..f8b806482aca
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/draco/default.nix
@@ -0,0 +1,34 @@
+{ stdenv, fetchFromGitHub, cmake
+}:
+
+stdenv.mkDerivation rec {
+  version = "1.3.6";
+  pname = "draco";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = "draco";
+    rev = version;
+    sha256 = "06adhz8gsnns6q98yzjm64xs04qp2fhm9bv0wxny68rkw0bh95a0";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = [
+    # Fake these since we are building from a tarball
+    "-Ddraco_git_hash=${version}"
+    "-Ddraco_git_desc=${version}"
+
+    "-DBUILD_UNITY_PLUGIN=1"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Library for compressing and decompressing 3D geometric meshes and point clouds";
+    homepage = "https://google.github.io/draco/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jansol ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/duckdb/default.nix b/nixpkgs/pkgs/development/libraries/duckdb/default.nix
index e37856abe2bd..dde0806add4a 100644
--- a/nixpkgs/pkgs/development/libraries/duckdb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/duckdb/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "duckdb";
-  version = "0.1.7";
+  version = "0.2.1";
 
   src = fetchFromGitHub {
     owner = "cwida";
     repo = "duckdb";
     rev = "v${version}";
-    sha256 = "1pz2q9c3803w8vbqiz9lag4g1kgl4ff9xca0kpcz72ap39pbp5jk";
+    sha256 = "18l4qdzfm8k9ggn49r3h99cbcmmq01byzkxps3pvmq8q246hb55x";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/dxflib/default.nix b/nixpkgs/pkgs/development/libraries/dxflib/default.nix
index 8d8b41e0609b..1b63d8805fd9 100644
--- a/nixpkgs/pkgs/development/libraries/dxflib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/dxflib/default.nix
@@ -1,12 +1,40 @@
-{stdenv, fetchurl}:
+{ stdenv
+, fetchurl
+, qmake
+}:
 
 stdenv.mkDerivation rec {
-  version = "3.12.2";
+  version = "3.17.0";
   pname = "dxflib";
   src = fetchurl {
-    url = "http://www.qcad.org/archives/dxflib/${pname}-${version}.src.tar.gz";
-    sha256 = "20ad9991eec6b0f7a3cc7c500c044481a32110cdc01b65efa7b20d5ff9caefa9";
+    url = "http://www.qcad.org/archives/dxflib/${pname}-${version}-src.tar.gz";
+    sha256 = "09yjgzh8677pzkkr7a59pql5d11451c22pxksk2my30mapxsri96";
   };
+  nativeBuildInputs = [
+    qmake
+  ];
+  preConfigure = ''
+    sed -i 's/CONFIG += staticlib/CONFIG += shared/' dxflib.pro
+  '';
+  installPhase = ''
+    install -d -m 0755 $out/lib
+    cp -pr *.so* $out/lib
+    install -d -m 0755 $out/include/dxflib
+    cp -pr src/*.h $out/include/dxflib
+    # Generate pkgconfig file
+    install -d -m 0755 $out/lib/pkgconfig
+    cat << 'EOF' > $out/lib/pkgconfig/dxflib.pc
+    prefix=${placeholder "out"}
+    libdir=${placeholder "out"}/lib
+    includedir=${placeholder "out"}/include
+    Name: dxflib
+    Description: A C++ library for reading and writing DXF files
+    Version: %{version}
+    Libs: -L${placeholder "out"}/lib -ldxflib
+    Cflags: -I${placeholder "out"}/include/dxflib
+    EOF
+  '';
+  doCheck = true;
 
   meta = {
     maintainers = with stdenv.lib.maintainers; [raskin];
@@ -14,4 +42,3 @@ stdenv.mkDerivation rec {
     description = ''DXF file format library'';
   };
 }
-
diff --git a/nixpkgs/pkgs/development/libraries/embree/default.nix b/nixpkgs/pkgs/development/libraries/embree/default.nix
new file mode 100644
index 000000000000..2d83b9bbfab8
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/embree/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, ispc, tbb, glfw,
+  openimageio, libjpeg, libpng, libpthreadstubs, libX11 }:
+
+stdenv.mkDerivation rec {
+  pname = "embree";
+  version = "3.11.0";
+
+  src = fetchFromGitHub {
+    owner = "embree";
+    repo = "embree";
+    rev = "v${version}";
+    sha256 = "0v5gqi8jp09xxcbyyknji83412bq4l0w35b6hnrqxycgdrnf7hkr";
+  };
+
+  postPatch = ''
+    # Fix duplicate /nix/store/.../nix/store/.../ paths
+    sed -i "s|SET(EMBREE_ROOT_DIR .*)|set(EMBREE_ROOT_DIR $out)|" \
+      common/cmake/embree-config.cmake
+    sed -i "s|$""{EMBREE_ROOT_DIR}/||" common/cmake/embree-config.cmake
+  '';
+
+  cmakeFlags = [
+    "-DEMBREE_TUTORIALS=OFF"
+    "-DEMBREE_RAY_MASK=ON"
+  ];
+
+  nativeBuildInputs = [ ispc pkgconfig cmake ];
+  buildInputs = [ tbb glfw openimageio libjpeg libpng libX11 libpthreadstubs ];
+
+  meta = with stdenv.lib; {
+    description = "High performance ray tracing kernels from Intel";
+    homepage = "https://embree.github.io/";
+    maintainers = with maintainers; [ hodapp gebner ];
+    license = licenses.asl20;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/enchant/2.x.nix b/nixpkgs/pkgs/development/libraries/enchant/2.x.nix
index 65d85eddbe40..b7b86de92c01 100644
--- a/nixpkgs/pkgs/development/libraries/enchant/2.x.nix
+++ b/nixpkgs/pkgs/development/libraries/enchant/2.x.nix
@@ -1,7 +1,7 @@
 { stdenv
 , fetchurl
 , aspell
-, pkgconfig
+, pkg-config
 , glib
 , hunspell
 , hspell
@@ -10,17 +10,17 @@
 
 stdenv.mkDerivation rec {
   pname = "enchant";
-  version = "2.2.8";
+  version = "2.2.11";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://github.com/AbiWord/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "0m9m564qqwbssvvf7y3dlz1yxzqsjiqy1yd2zsmb3l0d7y2y5df7";
+    sha256 = "opxXd8TkX8rCWVwVxJ1tKqQ0+l58mT3/P582e2X+Ryo=";
   };
 
   nativeBuildInputs = [
-    pkgconfig
+    pkg-config
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/ethash/default.nix b/nixpkgs/pkgs/development/libraries/ethash/default.nix
index 3522ff231ab1..749005e09a98 100644
--- a/nixpkgs/pkgs/development/libraries/ethash/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ethash/default.nix
@@ -3,14 +3,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ethash";
-  version = "0.4.4";
+  version = "0.5.2";
 
   src =
     fetchFromGitHub {
       owner = "chfast";
       repo = "ethash";
       rev = "v${version}";
-      sha256 = "1gfs8s4nv2ikkn3rhzifr0dx5m0c1kpnhmzf8x6zlwhw3qwlc98w";
+      sha256 = "0shr3m33raxy9j2mpm3q9mdbchs3nhgfaywidyxgmwqaiw1xpyif";
     };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/exiv2/default.nix b/nixpkgs/pkgs/development/libraries/exiv2/default.nix
index 8a6dfd1983ef..a845e8998e78 100644
--- a/nixpkgs/pkgs/development/libraries/exiv2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/exiv2/default.nix
@@ -15,37 +15,38 @@
 
 stdenv.mkDerivation rec {
   pname = "exiv2";
-  version = "0.27.2";
+  version = "0.27.3";
+
+  outputs = [ "out" "dev" "doc" "man" ];
 
   src = fetchFromGitHub {
     owner = "exiv2";
     repo  = "exiv2";
     rev = "v${version}";
-    sha256 = "0n8il52yzbmvbkryrl8waz7hd9a2fdkw8zsrmhyh63jlvmmc31gf";
+    sha256 = "0d294yhcdw8ziybyd4rp5hzwknzik2sm0cz60ff7fljacv75bjpy";
   };
 
   patches = [
-    # included in next release
+    # Fix aarch64 build https://github.com/Exiv2/exiv2/pull/1271
     (fetchpatch {
-      name = "cve-2019-20421.patch";
-      url = "https://github.com/Exiv2/exiv2/commit/a82098f4f90cd86297131b5663c3dec6a34470e8.patch";
-      sha256 = "16r19qb9l5j43ixm5jqid9sdv5brlkk1wq0w79rm5agxq4kblfyc";
-      excludes = [ "tests/bugfixes/github/test_issue_1011.py" "test/data/Jp2Image_readMetadata_loop.poc" ];
+      name = "cmake-fix-aarch64.patch";
+      url = "https://github.com/Exiv2/exiv2/commit/bbe0b70840cf28b7dd8c0b7e9bb1b741aeda2efd.patch";
+      sha256 = "13zw1mn0ag0jrz73hqjhdsh1img7jvj5yddip2k2sb5phy04rzfx";
     })
-  ];
 
-  cmakeFlags = [
-    "-DEXIV2_BUILD_PO=ON"
-    "-DEXIV2_BUILD_DOC=ON"
-    # the cmake package does not handle absolute CMAKE_INSTALL_INCLUDEDIR correctly
-    # (setting it to an absolute path causes include files to go to $out/$out/include,
-    #  because the absolute path is interpreted with root at $out).
-    "-DCMAKE_INSTALL_INCLUDEDIR=include"
-    "-DCMAKE_INSTALL_LIBDIR=lib"
+    # Use correct paths with multiple outputs
+    # https://github.com/Exiv2/exiv2/pull/1275
+    (fetchpatch {
+      url = "https://github.com/Exiv2/exiv2/commit/48f2c9dbbacc0ef84c8ebf4cb1a603327f0b8750.patch";
+      sha256 = "vjB3+Ld4c/2LT7nq6uatYwfHTh+HeU5QFPFXuNLpIPA=";
+    })
+    # https://github.com/Exiv2/exiv2/pull/1294
+    (fetchpatch {
+      url = "https://github.com/Exiv2/exiv2/commit/306c8a6fd4ddd70e76043ab255734720829a57e8.patch";
+      sha256 = "0D/omxYxBPGUu3uSErlf48dc6Ukwc2cEN9/J3e7a9eU=";
+    })
   ];
 
-  outputs = [ "out" "dev" "doc" "man" ];
-
   nativeBuildInputs = [
     cmake
     doxygen
@@ -65,7 +66,13 @@ stdenv.mkDerivation rec {
     which
   ];
 
+  cmakeFlags = [
+    "-DEXIV2_ENABLE_NLS=ON"
+    "-DEXIV2_BUILD_DOC=ON"
+  ];
+
   buildFlags = [
+    "all"
     "doc"
   ];
 
@@ -77,7 +84,6 @@ stdenv.mkDerivation rec {
   preCheck = ''
     patchShebangs ../test/
     mkdir ../test/tmp
-    export LD_LIBRARY_PATH="$(realpath ../build/lib)"
 
     ${stdenv.lib.optionalString (stdenv.isAarch64 || stdenv.isAarch32) ''
       # Fix tests on arm
@@ -86,19 +92,16 @@ stdenv.mkDerivation rec {
     ''}
 
     ${stdenv.lib.optionalString stdenv.isDarwin ''
-      export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}`pwd`/lib
+      export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}$PWD/lib
       # Removing tests depending on charset conversion
       substituteInPlace ../test/Makefile --replace "conversions.sh" ""
       rm -f ../tests/bugfixes/redmine/test_issue_460.py
       rm -f ../tests/bugfixes/redmine/test_issue_662.py
+      rm -f ../tests/bugfixes/github/test_issue_1046.py
      ''}
   '';
 
-  postCheck = ''
-    (cd ../tests/ && python3 runner.py)
-  '';
-
-  # With cmake we have to enable samples or there won't be
+  # With CMake we have to enable samples or there won't be
   # a tests target. This removes them.
   postInstall = ''
     ( cd "$out/bin"
@@ -108,12 +111,11 @@ stdenv.mkDerivation rec {
     )
   '';
 
-  enableParallelBuilding = true;
-
   meta = with stdenv.lib; {
     homepage = "https://www.exiv2.org/";
     description = "A library and command-line utility to manage image metadata";
     platforms = platforms.all;
     license = licenses.gpl2Plus;
+    maintainers = [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/faac/default.nix b/nixpkgs/pkgs/development/libraries/faac/default.nix
index 0f3cb9b27b90..c8ec81f79e51 100644
--- a/nixpkgs/pkgs/development/libraries/faac/default.nix
+++ b/nixpkgs/pkgs/development/libraries/faac/default.nix
@@ -30,7 +30,6 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Open source MPEG-4 and MPEG-2 AAC encoder";
-    homepage    = "https://www.audiocoding.com/faac.html";
     license     = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ codyopel ];
     platforms   = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/faad2/default.nix b/nixpkgs/pkgs/development/libraries/faad2/default.nix
index 1a6d67ba8052..6842f191abe3 100644
--- a/nixpkgs/pkgs/development/libraries/faad2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/faad2/default.nix
@@ -1,47 +1,26 @@
-{stdenv, fetchurl
+{stdenv, fetchFromGitHub, autoreconfHook
 , drmSupport ? false # Digital Radio Mondiale
 }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "faad2";
-  version = "2.8.8";
+  version = "2.9.2";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/faac/${pname}-${version}.tar.gz";
-    sha256 = "1db37ydb6mxhshbayvirm5vz6j361bjim4nkpwjyhmy4ddfinmhl";
+  src = fetchFromGitHub {
+    owner = "knik0";
+    repo = "faad2";
+    rev = builtins.replaceStrings [ "." ] [ "_" ] version;
+    sha256 = "0rdi6bmyryhkwf4mpprrsp78m6lv1nppav2f0lf1ywifm92ng59c";
   };
 
-  patches = let
-    fp = { ver ? "2.8.8-3", pname, name ? (pname + ".patch"), sha256 }: fetchurl {
-      url = "https://salsa.debian.org/multimedia-team/faad2/raw/debian/${ver}"
-          + "/debian/patches/${pname}.patch?inline=false";
-      inherit name sha256;
-    };
-  in [
-    (fp {
-      # critical bug addressed in vlc 3.0.7 (but we use system-provided faad)
-      pname = "0004-Fix-a-couple-buffer-overflows";
-      sha256 = "1mwycdfagz6wpda9j3cp7lf93crgacpa8rwr58p3x0i5cirnnmwq";
-    })
-    (fp {
-      name = "CVE-2018-20362.patch";
-      pname = "0009-syntax.c-check-for-syntax-element-inconsistencies";
-      sha256 = "1z849l5qyvhyn5pvm6r07fa50nrn8nsqnrka2nnzgkhxlhvzpa81";
-    })
-    (fp {
-      name = "CVE-2018-20194.patch";
-      pname = "0010-sbr_hfadj-sanitize-frequency-band-borders";
-      sha256 = "1b1kbz4mv0zhpq8h3djnvqafh1gn12nikk9v3jrxyryywacirah4";
-    })
-  ];
-
   configureFlags = []
     ++ optional drmSupport "--with-drm";
 
+  nativeBuildInputs = [ autoreconfHook ];
+
   meta = {
     description = "An open source MPEG-4 and MPEG-2 AAC decoder";
-    homepage    = "https://www.audiocoding.com/faad2.html";
     license     = licenses.gpl2;
     maintainers = with maintainers; [ codyopel ];
     platforms   = platforms.all;
diff --git a/nixpkgs/pkgs/development/libraries/farstream/default.nix b/nixpkgs/pkgs/development/libraries/farstream/default.nix
index 763caa811e34..0ce0f56d710e 100644
--- a/nixpkgs/pkgs/development/libraries/farstream/default.nix
+++ b/nixpkgs/pkgs/development/libraries/farstream/default.nix
@@ -29,6 +29,11 @@ stdenv.mkDerivation rec {
       url = "https://gitlab.freedesktop.org/farstream/farstream/commit/73891c28fa27d5e65a71762e826f13747d743588.patch";
       sha256 = "19pw1m8xhxyf5yhl6k898w240ra2k0m28gfv858x70c4wl786lrn";
     })
+    # Fix build with newer gnumake.
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/farstream/farstream/-/commit/54987d44.diff";
+      sha256 = "02pka68p2j1wg7768rq7afa5wl9xv82wp86q7izrmwwnxdmz4zyg";
+    })
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/faudio/default.nix b/nixpkgs/pkgs/development/libraries/faudio/default.nix
index 7bc0790f049a..eb6ed5e21014 100644
--- a/nixpkgs/pkgs/development/libraries/faudio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/faudio/default.nix
@@ -3,14 +3,14 @@
 #TODO: tests
 
 stdenv.mkDerivation rec {
-	pname = "faudio";
-  version = "20.06";
+  pname = "faudio";
+  version = "20.08";
 
   src = fetchFromGitHub {
     owner = "FNA-XNA";
     repo = "FAudio";
     rev = version;
-    sha256 = "1dyx9l7ldhlbb77ca3wk0l218589blvh78mdfyzpk9k1izk2yih1";
+    sha256 = "1fs0h5wl0ndix61mz7h59c15kpqikrk7nn1rc7m2a44jiw8mzdnx";
   };
 
 	nativeBuildInputs = [cmake];
diff --git a/nixpkgs/pkgs/development/libraries/fcft/default.nix b/nixpkgs/pkgs/development/libraries/fcft/default.nix
new file mode 100644
index 000000000000..0c5d2b334ac2
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/fcft/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, lib, fetchgit, pkg-config, meson, ninja, scdoc
+,freetype, fontconfig, pixman, tllist, check }:
+
+stdenv.mkDerivation rec {
+  pname = "fcft";
+  version = "2.2.6";
+
+  src = fetchgit {
+    url = "https://codeberg.org/dnkl/fcft.git";
+    rev = "${version}";
+    sha256 = "06zywvvgrch9k4d07bir2sxddwsli2gzpvlvjfcwbrj3bw5x6j1b";
+  };
+
+  nativeBuildInputs = [ pkg-config meson ninja scdoc ];
+  buildInputs = [ freetype fontconfig pixman tllist ];
+  checkInputs = [ check ];
+
+  mesonFlags = [ "--buildtype=release" ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://codeberg.org/dnkl/fcft";
+    description = "Simple library for font loading and glyph rasterization";
+    maintainers = with maintainers; [ fionera ];
+    license = licenses.mit;
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg-full/default.nix b/nixpkgs/pkgs/development/libraries/ffmpeg-full/default.nix
index 95be159b2e19..c23fb87f2fae 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg-full/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg-full/default.nix
@@ -110,6 +110,7 @@
 , openjpeg ? null # JPEG 2000 de/encoder
 , opensslExtlib ? false, openssl ? null
 , libpulseaudio ? null # Pulseaudio input support
+, rav1e ? null # AV1 encoder (focused on speed and safety)
 , rtmpdump ? null # RTMP[E] support
 #, libquvi ? null # Quvi input support
 , samba ? null # Samba protocol
@@ -118,6 +119,7 @@
 #, shine ? null # Fixed-point MP3 encoder
 , soxr ? null # Resampling via soxr
 , speex ? null # Speex de/encoder
+, srt ? null # Secure Reliable Transport (SRT) protocol
 #, twolame ? null # MP2 encoder
 #, utvideo ? null # Ut Video de/encoder
 , vid-stab ? null # Video stabilization
@@ -242,8 +244,6 @@ stdenv.mkDerivation rec {
   pname = "ffmpeg-full";
   inherit (ffmpeg) src version;
 
-  patches = [ ./prefer-libdav1d-over-libaom.patch ];
-
   prePatch = ''
     patchShebangs .
   '' + stdenv.lib.optionalString stdenv.isDarwin ''
@@ -357,6 +357,7 @@ stdenv.mkDerivation rec {
     #(enableFeature (libnut != null) "libnut")
     (enableFeature (libopus != null) "libopus")
     (enableFeature (librsvg != null) "librsvg")
+    (enableFeature (srt != null) "libsrt")
     (enableFeature (libssh != null) "libssh")
     (enableFeature (libtheora != null) "libtheora")
     (enableFeature (if isLinux then libv4l != null else false) "libv4l2")
@@ -383,6 +384,7 @@ stdenv.mkDerivation rec {
     (enableFeature (opensslExtlib && gplLicensing) "openssl")
     (enableFeature (libpulseaudio != null) "libpulse")
     #(enableFeature quvi "libquvi")
+    (enableFeature (rav1e != null) "librav1e")
     (enableFeature (rtmpdump != null) "librtmp")
     #(enableFeature (schroedinger != null) "libschroedinger")
     (enableFeature (SDL2 != null) "sdl2")
@@ -419,8 +421,8 @@ stdenv.mkDerivation rec {
     bzip2 celt dav1d fontconfig freetype frei0r fribidi game-music-emu gnutls gsm
     libjack2 ladspaH lame libaom libass libbluray libbs2b libcaca libdc1394 libmodplug libmysofa
     libogg libopus librsvg libssh libtheora libvdpau libvorbis libvpx libwebp libX11
-    libxcb libXv libXext lzma openal openjpeg libpulseaudio rtmpdump opencore-amr
-    samba SDL2 soxr speex vid-stab vo-amrwbenc wavpack x264 x265 xavs xvidcore
+    libxcb libXv libXext lzma openal openjpeg libpulseaudio rav1e rtmpdump opencore-amr
+    samba SDL2 soxr speex srt vid-stab vo-amrwbenc wavpack x264 x265 xavs xvidcore
     zeromq4 zlib
   ] ++ optionals openglExtlib [ libGL libGLU ]
     ++ optionals nonfreeLicensing [ fdk_aac openssl ]
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg-full/prefer-libdav1d-over-libaom.patch b/nixpkgs/pkgs/development/libraries/ffmpeg-full/prefer-libdav1d-over-libaom.patch
deleted file mode 100644
index 789bfc2674fa..000000000000
--- a/nixpkgs/pkgs/development/libraries/ffmpeg-full/prefer-libdav1d-over-libaom.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff --git a/libavcodec/allcodecs.c b/libavcodec/allcodecs.c
-index d2f9a39ce5..2342399a8e 100644
---- a/libavcodec/allcodecs.c
-+++ b/libavcodec/allcodecs.c
-@@ -679,13 +679,13 @@ extern AVCodec ff_pcm_mulaw_at_encoder;
- extern AVCodec ff_pcm_mulaw_at_decoder;
- extern AVCodec ff_qdmc_at_decoder;
- extern AVCodec ff_qdm2_at_decoder;
-+extern AVCodec ff_libdav1d_decoder;
- extern AVCodec ff_libaom_av1_decoder;
- extern AVCodec ff_libaom_av1_encoder;
- extern AVCodec ff_libaribb24_decoder;
- extern AVCodec ff_libcelt_decoder;
- extern AVCodec ff_libcodec2_encoder;
- extern AVCodec ff_libcodec2_decoder;
--extern AVCodec ff_libdav1d_decoder;
- extern AVCodec ff_libdavs2_decoder;
- extern AVCodec ff_libfdk_aac_encoder;
- extern AVCodec ff_libfdk_aac_decoder;
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/2.8.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/2.8.nix
index 5d1f93a9e049..309cd2b3b356 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/2.8.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/2.8.nix
@@ -1,7 +1,7 @@
 { callPackage, ... } @ args:
 
 callPackage ./generic.nix (rec {
-  version = "${branch}.16";
+  version = "${branch}.17";
   branch = "2.8";
-  sha256 = "0lfmfd6rhywis9rblkxv33rpwfga9xv261fq4cn3pkx1izih7ybk";
+  sha256 = "05bnhvs2f82aq95z1wd3wr42sljdfq4kiyzqwhpji983mndx14vl";
 } // args)
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/3.4.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/3.4.nix
index 6c16b55dfe8d..629fdba5673a 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/3.4.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/3.4.nix
@@ -6,7 +6,7 @@
 
 callPackage ./generic.nix (rec {
   version = branch;
-  branch = "3.4.7";
-  sha256 = "0hj91gjps92f4w3yyqss89yrs6s75574hbj5gz9g5affd6294yhc";
+  branch = "3.4.8";
+  sha256 = "1d0r4yja2dkkyhdwx1migq46gsrcbajiv66263a5sq5bfr9dqkch";
   darwinFrameworks = [ Cocoa CoreMedia ];
 } // args)
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix
index 1a7c619a122c..7e3941d3f378 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/4.nix
@@ -5,8 +5,8 @@
 }@args:
 
 callPackage ./generic.nix (rec {
-  version = "4.2.3";
-  branch = "4.2";
-  sha256 = "0pkrariwjv25k7inwshch7b5820ly3hsp991amyb60rkqc8v4zi1";
+  version = "4.3.1";
+  branch = "4.3";
+  sha256 = "1nghcpm2r9ir2h6xpqfn9381jq6aiwlkwlnyplxywvkbjiisr97l";
   darwinFrameworks = [ Cocoa CoreMedia VideoToolbox ];
 } // args)
diff --git a/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix b/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
index 5b98884c1fc5..d763fb513545 100644
--- a/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/ffmpeg/generic.nix
@@ -126,6 +126,7 @@ stdenv.mkDerivation rec {
     # Docs
       (ifMinVer "0.6" "--disable-doc")
     # External Libraries
+      "--enable-libass"
       "--enable-bzlib"
       "--enable-gnutls"
       (ifMinVer "1.0" "--enable-fontconfig")
diff --git a/nixpkgs/pkgs/development/libraries/flatbuffers/default.nix b/nixpkgs/pkgs/development/libraries/flatbuffers/default.nix
index 825e052ad873..0b0e0fd9e22c 100644
--- a/nixpkgs/pkgs/development/libraries/flatbuffers/default.nix
+++ b/nixpkgs/pkgs/development/libraries/flatbuffers/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, fetchpatch, cmake }:
 
-stdenv.mkDerivation (rec {
+stdenv.mkDerivation rec {
   pname = "flatbuffers";
-  version = "1.11.0";
+  version = "1.12.0";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "flatbuffers";
     rev = "v${version}";
-    sha256 = "1gl8pnykzifh7pnnvl80f5prmj5ga60dp44inpv9az2k9zaqx3qr";
+    sha256 = "0f7xd66vc1lzjbn7jzd5kyqrgxpsfxi4zc7iymhb5xrwyxipjl1g";
   };
 
   preConfigure = stdenv.lib.optional stdenv.buildPlatform.isDarwin ''
@@ -36,12 +36,4 @@ stdenv.mkDerivation (rec {
     platforms = stdenv.lib.platforms.unix;
     homepage = "https://google.github.io/flatbuffers/";
   };
-} // stdenv.lib.optionalAttrs stdenv.hostPlatform.isMusl {
-  # Remove when updating to the next version.
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/google/flatbuffers/commit/2b52494047fb6e97af03e1801b42adc7ed3fd78a.diff";
-      sha256 = "01k07ws0f4w7nnl8nli795wgjm4p94lxd3kva4yf7nf3pg4p8arx";
-    })
-  ];
-})
+}
diff --git a/nixpkgs/pkgs/development/libraries/flatpak/default.nix b/nixpkgs/pkgs/development/libraries/flatpak/default.nix
index ceca7e24fb6e..6f8634c01ef8 100644
--- a/nixpkgs/pkgs/development/libraries/flatpak/default.nix
+++ b/nixpkgs/pkgs/development/libraries/flatpak/default.nix
@@ -1,21 +1,23 @@
 { stdenv
 , fetchurl
-, autoreconfHook
+, fetchpatch
+, autoconf
+, automake
+, libtool
 , docbook_xml_dtd_412
 , docbook_xml_dtd_42
 , docbook_xml_dtd_43
-, docbook_xsl
+, docbook-xsl-nons
 , which
 , libxml2
 , gobject-introspection
 , gtk-doc
 , intltool
 , libxslt
-, pkgconfig
+, pkg-config
 , xmlto
 , appstream-glib
 , substituteAll
-, glibcLocales
 , yacc
 , xdg-dbus-proxy
 , p11-kit
@@ -39,6 +41,7 @@
 , nixosTests
 , libsoup
 , lzma
+, zstd
 , ostree
 , polkit
 , python3
@@ -54,14 +57,14 @@
 
 stdenv.mkDerivation rec {
   pname = "flatpak";
-  version = "1.6.3";
+  version = "1.8.2";
 
   # TODO: split out lib once we figure out what to do with triggerdir
-  outputs = [ "out" "dev" "man" "doc" "installedTests" ];
+  outputs = [ "out" "dev" "man" "doc" "devdoc" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/flatpak/flatpak/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "17s8nqdxd4xdy7ag9bw06adxccha78jmlsa3zpqnl3qh92pg0hji";
+    sha256 = "eSZiXffCKCpe4aizwxevU9QKZjsbxrGKLch0fiZQhbA=";
   };
 
   patches = [
@@ -69,7 +72,7 @@ stdenv.mkDerivation rec {
     # https://github.com/flatpak/flatpak/issues/1460
     (substituteAll {
       src = ./fix-test-paths.patch;
-      inherit coreutils gettext glibcLocales socat gtk3;
+      inherit coreutils gettext socat gtk3;
       smi = shared-mime-info;
       dfu = desktop-file-utils;
       hicolorIconTheme = hicolor-icon-theme;
@@ -101,21 +104,31 @@ stdenv.mkDerivation rec {
 
     # But we want the GDK_PIXBUF_MODULE_FILE from the wrapper affect the icon validator.
     ./validate-icon-pixbuf.patch
+
+    # Fix `flatpak/test-oci-registry@{user,system}.wrap.test` installed tests.
+    # https://github.com/flatpak/flatpak/pull/3762
+    (fetchpatch {
+      url = "https://github.com/flatpak/flatpak/commit/c1447dadecd50f384b6d11dac18b014245267d00.patch";
+      sha256 = "UAA/wGr8/aMbx5MV+8Ilro2kgKkx2QOn88lDUjCgeDA=";
+    })
   ];
 
   nativeBuildInputs = [
-    autoreconfHook
+    autoconf
+    automake
+    libtool
     libxml2
+    # TODO: replace with docbook_xml_dtd_45 https://github.com/flatpak/flatpak/pull/3760
     docbook_xml_dtd_412
     docbook_xml_dtd_42
     docbook_xml_dtd_43
-    docbook_xsl
+    docbook-xsl-nons
     which
     gobject-introspection
     gtk-doc
     intltool
     libxslt
-    pkgconfig
+    pkg-config
     xmlto
     appstream-glib
     yacc
@@ -134,6 +147,7 @@ stdenv.mkDerivation rec {
     libseccomp
     libsoup
     lzma
+    # zstd # TODO: broken paths in .pc file
     polkit
     python3
     systemd
@@ -166,6 +180,7 @@ stdenv.mkDerivation rec {
     "--with-system-dbus-proxy=${xdg-dbus-proxy}/bin/xdg-dbus-proxy"
     "--with-dbus-config-dir=${placeholder "out"}/share/dbus-1/system.d"
     "--localstatedir=/var"
+    "--enable-gtk-doc"
     "--enable-installed-tests"
   ];
 
@@ -174,9 +189,24 @@ stdenv.mkDerivation rec {
     "installed_test_metadir=${placeholder "installedTests"}/share/installed-tests/flatpak"
   ];
 
-  postPatch = ''
+  postPatch = let
+    vsc-py = python3.withPackages (pp: [
+      pp.pyparsing
+    ]);
+  in ''
     patchShebangs buildutil
     patchShebangs tests
+    PATH=${stdenv.lib.makeBinPath [vsc-py]}:$PATH patchShebangs --build variant-schema-compiler/variant-schema-compiler
+  '';
+
+  preConfigure = ''
+    # TODO: remove the condition once autogen.sh is shipped in the tarball
+    # https://github.com/flatpak/flatpak/pull/3761
+    if [[ -f autogen.sh ]]; then
+        NOCONFIGURE=1 ./autogen.sh
+    else
+        autoreconf --install --force --verbose
+    fi
   '';
 
   passthru = {
diff --git a/nixpkgs/pkgs/development/libraries/flatpak/fix-test-paths.patch b/nixpkgs/pkgs/development/libraries/flatpak/fix-test-paths.patch
index 8ea2f0159a31..dcba66681858 100644
--- a/nixpkgs/pkgs/development/libraries/flatpak/fix-test-paths.patch
+++ b/nixpkgs/pkgs/development/libraries/flatpak/fix-test-paths.patch
@@ -1,5 +1,5 @@
 diff --git a/app/flatpak-builtins-build-export.c b/app/flatpak-builtins-build-export.c
-index 5de89d62..bf6bdb52 100644
+index 43fd0563..4067bd36 100644
 --- a/app/flatpak-builtins-build-export.c
 +++ b/app/flatpak-builtins-build-export.c
 @@ -458,7 +458,7 @@ validate_desktop_file (GFile      *desktop_file,
@@ -12,10 +12,10 @@ index 5de89d62..bf6bdb52 100644
      {
        if (!g_error_matches (local_error, G_SPAWN_ERROR, G_SPAWN_ERROR_NOENT))
 diff --git a/tests/libtest.sh b/tests/libtest.sh
-index e64be49f..a9a53e12 100644
+index acb2095b..b361da16 100644
 --- a/tests/libtest.sh
 +++ b/tests/libtest.sh
-@@ -367,7 +367,7 @@ if [ -z "${FLATPAK_BWRAP:-}" ]; then
+@@ -431,7 +431,7 @@ if [ -z "${FLATPAK_BWRAP:-}" ]; then
      # running installed-tests: assume we know what we're doing
      _flatpak_bwrap_works=true
  elif ! "$FLATPAK_BWRAP" --unshare-ipc --unshare-net --unshare-pid \
@@ -24,7 +24,7 @@ index e64be49f..a9a53e12 100644
      _flatpak_bwrap_works=false
  else
      _flatpak_bwrap_works=true
-@@ -440,7 +440,7 @@ dbus-daemon --fork --config-file=session.conf --print-address=3 --print-pid=4 \
+@@ -504,7 +504,7 @@ dbus-daemon --fork --config-file=session.conf --print-address=3 --print-pid=4 \
  export DBUS_SESSION_BUS_ADDRESS="$(cat dbus-session-bus-address)"
  DBUS_SESSION_BUS_PID="$(cat dbus-session-bus-pid)"
  
@@ -33,7 +33,7 @@ index e64be49f..a9a53e12 100644
      assert_not_reached "Failed to start dbus-daemon"
  fi
  
-@@ -449,7 +449,7 @@ gdb_bt () {
+@@ -519,7 +519,7 @@ commit_to_path () {
  }
  
  cleanup () {
@@ -43,10 +43,10 @@ index e64be49f..a9a53e12 100644
      fusermount -u $XDG_RUNTIME_DIR/doc || :
      kill $(jobs -p) &> /dev/null || true
 diff --git a/tests/make-test-app.sh b/tests/make-test-app.sh
-index e51e21a6..7d39efb5 100755
+index 612f914f..4b890da2 100755
 --- a/tests/make-test-app.sh
 +++ b/tests/make-test-app.sh
-@@ -149,13 +149,13 @@ msgid "Hello world"
+@@ -151,13 +151,13 @@ msgid "Hello world"
  msgstr "Hallo Welt"
  EOF
  mkdir -p ${DIR}/files/de/share/de/LC_MESSAGES
@@ -63,10 +63,10 @@ index e51e21a6..7d39efb5 100755
  flatpak build-finish ${DIR}
  mkdir -p repos
 diff --git a/tests/make-test-runtime.sh b/tests/make-test-runtime.sh
-index 5d2c309b..cf61a3cf 100755
+index af289625..7db51c17 100755
 --- a/tests/make-test-runtime.sh
 +++ b/tests/make-test-runtime.sh
-@@ -25,9 +25,10 @@ EOF
+@@ -28,9 +28,10 @@ EOF
  
  # On Debian derivatives, /usr/sbin and /sbin aren't in ordinary users'
  # PATHs, but ldconfig is kept in /sbin
@@ -78,7 +78,7 @@ index 5d2c309b..cf61a3cf 100755
  mkdir -p ${DIR}/usr/bin
  mkdir -p ${DIR}/usr/lib
  ln -s ../lib ${DIR}/usr/lib64
-@@ -37,48 +38,24 @@ if test -f /sbin/ldconfig.real; then
+@@ -40,40 +41,17 @@ if test -f /sbin/ldconfig.real; then
  else
      cp `which ldconfig` ${DIR}/usr/bin
  fi
@@ -129,11 +129,18 @@ index 5d2c309b..cf61a3cf 100755
  done
  ln -s bash ${DIR}/usr/bin/sh
  
+@@ -84,11 +62,13 @@ echo "Hello world, from a runtime$EXTRA"
+ EOF
+ chmod a+x ${DIR}/usr/bin/runtime_hello.sh
+ 
 -# We copy the C.UTF8 locale and call it en_US. Its a bit of a lie, but
 -# the real en_US locale is often not available, because its in the
 -# local archive.
 -mkdir -p ${DIR}/usr/lib/locale/
 -cp -r /usr/lib/locale/C.* ${DIR}/usr/lib/locale/en_US
++# We do not copy C.UTF8 locale because it is in locale archive and
++# that is already copied with glibc.
++
 +mv ${DIR}/nix/store ${DIR}/usr/store # files outside /usr are not permitted, we will have to replace /nix/store with /usr/store
 +chmod -R u+w ${DIR} # nix store has read-only directories which would cause problems during clean-up, files need to be writable for sed
 +find ${DIR} -type f -print0 | xargs -0 sed -i 's~/nix/store/~/usr/store/~g' # replace hardcoded paths
@@ -142,10 +149,10 @@ index 5d2c309b..cf61a3cf 100755
  if [ x$COLLECTION_ID != x ]; then
      collection_args=--collection-id=${COLLECTION_ID}
 diff --git a/tests/testlibrary.c b/tests/testlibrary.c
-index 44ae28e3..76bf619f 100644
+index 509ce6cc..6a333c9c 100644
 --- a/tests/testlibrary.c
 +++ b/tests/testlibrary.c
-@@ -1343,7 +1343,7 @@ check_bwrap_support (void)
+@@ -1399,7 +1399,7 @@ check_bwrap_support (void)
      {
        gint exit_code = 0;
        char *argv[] = { (char *) bwrap, "--unshare-ipc", "--unshare-net",
diff --git a/nixpkgs/pkgs/development/libraries/fontconfig/2.10.nix b/nixpkgs/pkgs/development/libraries/fontconfig/2.10.nix
deleted file mode 100644
index f4cc29892451..000000000000
--- a/nixpkgs/pkgs/development/libraries/fontconfig/2.10.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, freetype, expat
-}:
-
-stdenv.mkDerivation rec {
-  name = "fontconfig-2.10.2";
-
-  src = fetchurl {
-    url = "http://fontconfig.org/release/${name}.tar.bz2";
-    sha256 = "0llraqw86jmw4vzv7inskp3xxm2gc64my08iwq5mzncgfdbfza4f";
-  };
-
-  outputs = [ "bin" "dev" "lib" "out" ]; # $out contains all the config
-
-  propagatedBuildInputs = [ freetype ];
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ expat ];
-
-  configureFlags = [
-    "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}"
-    "--sysconfdir=/etc"
-    "--with-cache-dir=/var/cache/fontconfig"
-    "--disable-docs"
-    "--with-default-fonts="
-  ] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
-    "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}"
-  ];
-
-  enableParallelBuilding = true;
-
-  doCheck = true;
-
-  # Don't try to write to /var/cache/fontconfig at install time.
-  installFlags = [ "sysconfdir=$(out)/etc" "fc_cachedir=$(TMPDIR)/dummy" "RUN_FC_CACHE_TEST=false" ];
-
-  passthru = {
-    # Empty for backward compatibility, there was no versioning before 2.11
-    configVersion = "";
-  };
-
-  meta = with stdenv.lib; {
-    description = "A library for font customization and configuration";
-    homepage = "http://fontconfig.org/";
-    license = licenses.bsd2; # custom but very bsd-like
-    platforms = platforms.all;
-    maintainers = [ maintainers.vcunat ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/fontconfig/config-compat.patch b/nixpkgs/pkgs/development/libraries/fontconfig/config-compat.patch
deleted file mode 100644
index e86f08fb553c..000000000000
--- a/nixpkgs/pkgs/development/libraries/fontconfig/config-compat.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-commit 05c6adf8104b4321d3a3716a7b9feb6bf223ed0c (HEAD, nixpkgs)
-Author: Vladimír Čunát <vcunat@gmail.com>
-Date:   Tue Nov 4 12:24:25 2014 +0100
-
-    add check for /etc/fonts/@configVersion@/fonts.conf
-    
-    It's checked between FONTCONFIG_FILE and the usual /etc/fonts/fonts.conf.
-    Also, hardcode /etc/fonts/fonts.conf to prevent accidental override.
-
-diff --git a/src/fccfg.c b/src/fccfg.c
-index 6377fd7..e9eb10a 100644
---- a/src/fccfg.c
-+++ b/src/fccfg.c
-@@ -2070,8 +2070,13 @@ FcConfigFilename (const FcChar8 *url)
-     if (!url || !*url)
-     {
- 	url = (FcChar8 *) getenv ("FONTCONFIG_FILE");
-+	if (!url) {
-+	    static const FcChar8 *cfPath = "/etc/fonts/@configVersion@/fonts.conf";
-+	    if (access (cfPath, R_OK) == 0)
-+		url = cfPath;
-+	}
- 	if (!url)
--	    url = (FcChar8 *) FONTCONFIG_FILE;
-+	    url = (FcChar8 *) "/etc/fonts/fonts.conf";
-     }
-     file = 0;
- 
diff --git a/nixpkgs/pkgs/development/libraries/fontconfig/default.nix b/nixpkgs/pkgs/development/libraries/fontconfig/default.nix
index 0518cb257ab2..72df121200e0 100644
--- a/nixpkgs/pkgs/development/libraries/fontconfig/default.nix
+++ b/nixpkgs/pkgs/development/libraries/fontconfig/default.nix
@@ -1,47 +1,86 @@
-{ stdenv, substituteAll, fetchurl
-, pkgconfig, freetype, expat, libxslt, gperf, dejavu_fonts
+{ stdenv
+, fetchpatch
+, substituteAll
+, fetchurl
+, pkg-config
+, freetype
+, expat
+, libxslt
+, gperf
+, dejavu_fonts
+, autoreconfHook
 }:
 
-/** Font configuration scheme
- - ./config-compat.patch makes fontconfig try the following root configs, in order:
-    $FONTCONFIG_FILE, /etc/fonts/${configVersion}/fonts.conf, /etc/fonts/fonts.conf
-    This is done not to override config of pre-2.11 versions (which just blow up)
-    and still use *global* font configuration at both NixOS or non-NixOS.
- - NixOS creates /etc/fonts/${configVersion}/fonts.conf link to $out/etc/fonts/fonts.conf,
-    and other modifications should go to /etc/fonts/${configVersion}/conf.d
- - See ./make-fonts-conf.xsl for config details.
-
-*/
-
-let
-  configVersion = "2.11"; # bump whenever fontconfig breaks compatibility with older configurations
-in
 stdenv.mkDerivation rec {
   pname = "fontconfig";
-  version = "2.12.6";
+  version = "2.13.92";
 
   src = fetchurl {
-    url = "http://fontconfig.org/release/${pname}-${version}.tar.bz2";
-    sha256 = "05zh65zni11kgnhg726gjbrd55swspdvhqbcnj5a5xh8gn03036g";
+    url = "http://fontconfig.org/release/${pname}-${version}.tar.xz";
+    sha256 = "0kkfsvxcvcphm9zcgsh646gix3qn4spz555wa1jp5hbq70l62vjh";
   };
 
   patches = [
-    (substituteAll {
-      src = ./config-compat.patch;
-      inherit configVersion;
+    # Fix fonts not being loaded when missing included configs that have ignore_missing="yes".
+    # https://bugzilla.redhat.com/show_bug.cgi?id=1744377
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/fcada522913e5e07efa6367eff87ace9f06d24c8.patch";
+      sha256 = "1jbm3vw45b3qjnqrh2545v1k8vmb29c09v2wj07jnrq3lnchbvmn";
     })
 
+    # Register JoyPixels as an emoji font.
     # https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/67
-    ./fix-joypixels.patch
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/65087ac7ce4cc5f2109967c1380b474955dcb590.patch";
+      sha256 = "1dkrbqx1c1d8yfnx0igvv516wanw2ksrpm3fbpm2h9nw0hccwqvm";
+    })
+
+    # Fix invalid DTD in reset-dirs.
+    # https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/78
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/a4aa66a858f1ecd375c5efe5916398281f73f794.patch";
+      sha256 = "1j4ky8jhpllfm1lh2if34xglh2hl79nsa0xxgzxpj9sx6h4v99j5";
+    })
+
+    # Do not include its tags, they are external now and only cause warnings with old fontconfig clients.
+    # https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/97
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/528b17b2837c3b102acd90cc7548d07bacaccb1f.patch";
+      sha256 = "1zf4wcd2xlprh805jalfy8ja5c2qzgkh4fwd1m9d638nl9gx932m";
+    })
+    # https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/100
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/37c7c748740bf6f2468d59e67951902710240b34.patch";
+      sha256 = "1rz5zrfwhpn9g49wrzzrmdglj78pbvpnw8ksgsw6bxq8l5d84jfr";
+    })
+
+    # Show warning instead of error when encountering unknown attribute in config.
+    # https://gitlab.freedesktop.org/fontconfig/fontconfig/merge_requests/111
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/fontconfig/fontconfig/commit/409b37c62780728755c908991c912a6b16f2389c.patch";
+      sha256 = "zJFh37QErSAINPGFkFVJyhYRP27BuIN7PIgoDl/PIwI=";
+    })
   ];
 
   outputs = [ "bin" "dev" "lib" "out" ]; # $out contains all the config
 
-  propagatedBuildInputs = [ freetype ];
-  nativeBuildInputs = [ pkgconfig gperf libxslt ];
-  buildInputs = [ expat ];
+  nativeBuildInputs = [
+    gperf
+    libxslt
+    pkg-config
+    autoreconfHook
+  ];
+
+  buildInputs = [
+    expat
+  ];
+
+  propagatedBuildInputs = [
+    freetype
+  ];
 
   configureFlags = [
+    "--sysconfdir=/etc"
     "--with-arch=${stdenv.hostPlatform.parsed.cpu.name}"
     "--with-cache-dir=/var/cache/fontconfig" # otherwise the fallback is in $out/
     "--disable-docs"
@@ -55,23 +94,22 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
-  # Don't try to write to /var/cache/fontconfig at install time.
-  installFlags = [ "fc_cachedir=$(TMPDIR)/dummy" "RUN_FC_CACHE_TEST=false" ];
+  installFlags = [
+    # Don't try to write to /var/cache/fontconfig at install time.
+    "fc_cachedir=$(TMPDIR)/dummy"
+    "RUN_FC_CACHE_TEST=false"
+    "sysconfdir=${placeholder "out"}/etc"
+  ];
 
   postInstall = ''
     cd "$out/etc/fonts"
     xsltproc --stringparam fontDirectories "${dejavu_fonts.minimal}" \
-      --stringparam fontconfigConfigVersion "${configVersion}" \
       --path $out/share/xml/fontconfig \
       ${./make-fonts-conf.xsl} $out/etc/fonts/fonts.conf \
       > fonts.conf.tmp
     mv fonts.conf.tmp $out/etc/fonts/fonts.conf
   '';
 
-  passthru = {
-    inherit configVersion;
-  };
-
   meta = with stdenv.lib; {
     description = "A library for font customization and configuration";
     homepage = "http://fontconfig.org/";
diff --git a/nixpkgs/pkgs/development/libraries/fontconfig/fix-joypixels.patch b/nixpkgs/pkgs/development/libraries/fontconfig/fix-joypixels.patch
deleted file mode 100644
index d5654063fe89..000000000000
--- a/nixpkgs/pkgs/development/libraries/fontconfig/fix-joypixels.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- a/conf.d/45-generic.conf
-+++ b/conf.d/45-generic.conf
-@@ -5,6 +5,10 @@
- 
- <!-- Emoji -->
- 
-+	<alias binding="same">
-+		<family>JoyPixels</family>
-+		<default><family>emoji</family></default>
-+	</alias>
- 	<alias binding="same">
- 		<family>Emoji Two</family>
- 		<default><family>emoji</family></default>
---- a/conf.d/60-generic.conf
-+++ b/conf.d/60-generic.conf
-@@ -29,6 +29,7 @@
- 	<alias binding="same">
- 		<family>emoji</family>
- 		<prefer>
-+			<family>JoyPixels</family>
- 			<family>Emoji Two</family>
- 			<family>Emoji One</family>
- 			<!-- System fonts -->
diff --git a/nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-cache.nix b/nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-cache.nix
index f1a2e865bb73..47884b9c3b92 100644
--- a/nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-cache.nix
+++ b/nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-cache.nix
@@ -16,7 +16,7 @@ runCommand "fc-cache"
 
     cat > fonts.conf << EOF
     <?xml version='1.0'?>
-    <!DOCTYPE fontconfig SYSTEM 'fonts.dtd'>
+    <!DOCTYPE fontconfig SYSTEM 'urn:fontconfig:fonts.dtd'>
     <fontconfig>
       <include>${fontconfig.out}/etc/fonts/fonts.conf</include>
       <cachedir>$out</cachedir>
diff --git a/nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-conf.nix b/nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-conf.nix
index b18d72e0a228..493f662d0ce3 100644
--- a/nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-conf.nix
+++ b/nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-conf.nix
@@ -9,8 +9,6 @@ runCommand "fonts.conf"
   }
   ''
     xsltproc --stringparam fontDirectories "$fontDirectories" \
-      --stringparam fontconfig "${fontconfig.out}" \
-      --stringparam fontconfigConfigVersion "${fontconfig.configVersion}" \
       --path ${fontconfig.out}/share/xml/fontconfig \
       ${./make-fonts-conf.xsl} ${fontconfig.out}/etc/fonts/fonts.conf \
       > $out
diff --git a/nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl b/nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl
index dddbbe9e516b..ed51b62a1d08 100644
--- a/nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl
+++ b/nixpkgs/pkgs/development/libraries/fontconfig/make-fonts-conf.xsl
@@ -12,11 +12,9 @@
                 extension-element-prefixes="str"
                 >
 
-  <xsl:output method='xml' encoding="UTF-8" doctype-system="fonts.dtd" />
+  <xsl:output method='xml' encoding="UTF-8" doctype-system="urn:fontconfig:fonts.dtd" />
 
   <xsl:param name="fontDirectories" />
-  <xsl:param name="fontconfig" />
-  <xsl:param name="fontconfigConfigVersion" />
 
   <xsl:template match="/fontconfig">
 
@@ -28,8 +26,8 @@
       <!-- /var/cache/fontconfig is useful for non-nixos systems -->
       <cachedir>/var/cache/fontconfig</cachedir>
 
-      <!-- versioned system-wide config -->
-      <include ignore_missing="yes">/etc/fonts/<xsl:value-of select="$fontconfigConfigVersion" />/conf.d</include>
+      <!-- system-wide config -->
+      <include ignore_missing="yes">/etc/fonts/conf.d</include>
 
       <dir prefix="xdg">fonts</dir>
       <xsl:for-each select="str:tokenize($fontDirectories)">
@@ -40,6 +38,11 @@
       <!-- nix user profile -->
       <dir>~/.nix-profile/lib/X11/fonts</dir>
       <dir>~/.nix-profile/share/fonts</dir>
+
+      <!-- FHS paths for non-NixOS platforms -->
+      <dir>/usr/share/fonts</dir>
+      <dir>/usr/local/share/fonts</dir>
+
       <!-- nix default profile -->
       <dir>/nix/var/nix/profiles/default/lib/X11/fonts</dir>
       <dir>/nix/var/nix/profiles/default/share/fonts</dir>
diff --git a/nixpkgs/pkgs/development/libraries/freeimage/default.nix b/nixpkgs/pkgs/development/libraries/freeimage/default.nix
index 878299f725a6..c31f858850c9 100644
--- a/nixpkgs/pkgs/development/libraries/freeimage/default.nix
+++ b/nixpkgs/pkgs/development/libraries/freeimage/default.nix
@@ -1,5 +1,8 @@
 { lib, stdenv, fetchurl, unzip, darwin }:
 
+# TODO: consider unvendoring various dependencies (libpng, libjpeg,
+# libwebp, zlib, ...)
+
 stdenv.mkDerivation {
   name = "freeimage-3.18.0";
 
@@ -50,5 +53,7 @@ stdenv.mkDerivation {
     license = "GPL";
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; unix;
+    # see https://github.com/NixOS/nixpkgs/issues/77653
+    broken = stdenv.isAarch64;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/gbenchmark/default.nix b/nixpkgs/pkgs/development/libraries/gbenchmark/default.nix
index cafbe116b1ce..e2734c6b1998 100644
--- a/nixpkgs/pkgs/development/libraries/gbenchmark/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gbenchmark/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gbenchmark";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "benchmark";
     rev = "v${version}";
-    sha256 = "0r9dbg4cbk47gwmayys31a83m3y67k0kh1f6pl8i869rbd609ndh";
+    sha256 = "16xlk8h4mfszl4rig22fgpj9kw312az22981ph6pmkf35xsvvv66";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/gdal/default.nix b/nixpkgs/pkgs/development/libraries/gdal/default.nix
index 7f3e796bbf1b..72135f1a62d4 100644
--- a/nixpkgs/pkgs/development/libraries/gdal/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gdal/default.nix
@@ -7,13 +7,14 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "gdal";
-  version = "3.0.4";
+  # broken with poppler 20.08, however, can't fetch patches cleanly
+  version = "3.1.2.post2020-08-26";
 
   src = fetchFromGitHub {
     owner = "OSGeo";
     repo = "gdal";
-    rev = "v${version}";
-    sha256 = "00a7q9wv8s1bmdhqxvixkq2afr8aibg3pkc76gg50r8lavf6j84c";
+    rev = "9a8df672204a8b3b33c36e09a32f747e21166fe9";
+    sha256 = "1n25jma4x1l7slwxk702q77r84vxr90fyn4c3zpkr07q1b8wqql9";
   };
 
   sourceRoot = "source/gdal";
@@ -57,7 +58,7 @@ stdenv.mkDerivation rec {
     "--with-proj=${proj.dev}" # optional
     "--with-geos=${geos}/bin/geos-config" # optional
     "--with-hdf4=${hdf4.dev}" # optional
-    "--with-xml2=${libxml2.dev}/bin/xml2-config" # optional
+    "--with-xml2=yes" # optional
     (if netcdfSupport then "--with-netcdf=${netcdf}" else "")
   ];
 
diff --git a/nixpkgs/pkgs/development/libraries/gdcm/default.nix b/nixpkgs/pkgs/development/libraries/gdcm/default.nix
index 745c96f57943..a4b5752e887d 100644
--- a/nixpkgs/pkgs/development/libraries/gdcm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gdcm/default.nix
@@ -1,29 +1,39 @@
-{ stdenv, fetchurl, cmake, vtk_7, darwin }:
+{ stdenv, fetchurl, cmake, vtk_7, darwin
+, enablePython ? false, python ? null,  swig ? null}:
 
 stdenv.mkDerivation rec {
-  version = "3.0.6";
+  version = "3.0.7";
   pname = "gdcm";
 
   src = fetchurl {
     url = "mirror://sourceforge/gdcm/${pname}-${version}.tar.bz2";
-    sha256 = "048ycvhk143cvsf09r7vwmp4sm9ah9bh5pbbrl366m5a4sp7fr89";
+    sha256 = "1mm1190fv059k2vrilh3znm8z1ilygwld1iazdgh5s04mi1qljni";
   };
 
   dontUseCmakeBuildDir = true;
-  preConfigure = ''
-    cmakeDir=$PWD
-    mkdir ../build
-    cd ../build
-  '';
 
   cmakeFlags = [
     "-DGDCM_BUILD_APPLICATIONS=ON"
     "-DGDCM_BUILD_SHARED_LIBS=ON"
     "-DGDCM_USE_VTK=ON"
+  ]
+  ++ stdenv.lib.optional enablePython [
+    "-DGDCM_WRAP_PYTHON:BOOL=ON"
+    "-DGDCM_INSTALL_PYTHONMODULE_DIR=${placeholder "out"}/${python.sitePackages}"
   ];
 
+  preConfigure = ''
+    cmakeDir=$PWD
+    mkdir ../build
+    cd ../build
+  '';
+
   enableParallelBuilding = true;
-  buildInputs = [ cmake vtk_7 ] ++ stdenv.lib.optional stdenv.isDarwin [ darwin.apple_sdk.frameworks.ApplicationServices darwin.apple_sdk.frameworks.Cocoa ];
+  buildInputs = [ cmake vtk_7 ]
+    ++ stdenv.lib.optional stdenv.isDarwin [
+      darwin.apple_sdk.frameworks.ApplicationServices
+      darwin.apple_sdk.frameworks.Cocoa
+    ] ++ stdenv.lib.optional enablePython [ swig python ];
   propagatedBuildInputs = [ ];
 
   meta = with stdenv.lib; {
@@ -37,4 +47,3 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
   };
 }
-
diff --git a/nixpkgs/pkgs/development/libraries/gdk-pixbuf/xlib.nix b/nixpkgs/pkgs/development/libraries/gdk-pixbuf/xlib.nix
index 53414d921288..edc5ce525635 100644
--- a/nixpkgs/pkgs/development/libraries/gdk-pixbuf/xlib.nix
+++ b/nixpkgs/pkgs/development/libraries/gdk-pixbuf/xlib.nix
@@ -12,7 +12,7 @@
 
 stdenv.mkDerivation rec {
   pname = "gdk-pixbuf-xlib";
-  version = "2019-10-19-unstable";
+  version = "2020-06-11-unstable";
 
   outputs = [ "out" "dev" "devdoc" ];
 
@@ -20,8 +20,8 @@ stdenv.mkDerivation rec {
     domain = "gitlab.gnome.org";
     owner = "Archive";
     repo = "gdk-pixbuf-xlib";
-    rev = "19482794a621d542b223219940e836257d4ae2c9";
-    sha256 = "7Qv6tyjR0/iFXYHx5jPhvLLLt0Ms2nzpyWw02oXTkZc=";
+    rev = "3116b8ae55501cf48d16970aa2b50a5530e15223";
+    sha256 = "15wisf2xld3cr7lprnic8fvwpcmww4rydwc1bn2zilyi52vzl2zd";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/gdl/default.nix b/nixpkgs/pkgs/development/libraries/gdl/default.nix
index 32cf4ac2a7b6..338d0b6b91b0 100644
--- a/nixpkgs/pkgs/development/libraries/gdl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gdl/default.nix
@@ -23,6 +23,6 @@ stdenv.mkDerivation rec {
     homepage = "https://developer.gnome.org/gdl/";
     maintainers = teams.gnome.members;
     license = licenses.gpl2;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/gegl/4.0.nix b/nixpkgs/pkgs/development/libraries/gegl/4.0.nix
index 85699a8828b0..66bbd55ec457 100644
--- a/nixpkgs/pkgs/development/libraries/gegl/4.0.nix
+++ b/nixpkgs/pkgs/development/libraries/gegl/4.0.nix
@@ -35,14 +35,14 @@
 
 stdenv.mkDerivation rec {
   pname = "gegl";
-  version = "0.4.24";
+  version = "0.4.26";
 
   outputs = [ "out" "dev" "devdoc" ];
   outputBin = "dev";
 
   src = fetchurl {
     url = "https://download.gimp.org/pub/gegl/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "d2VJnyc0Gw0WAy5mUxnLwSh2SD/2qUT83ySpxY4+JUo=";
+    sha256 = "097427icgpgvcx40019b3dm8m84cchz79pixzpz648drs8p1wdqg";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/gensio/default.nix b/nixpkgs/pkgs/development/libraries/gensio/default.nix
index 684bad14dda5..daca5fc0bdb1 100644
--- a/nixpkgs/pkgs/development/libraries/gensio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gensio/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gensio";
-  version = "2.0.5";
+  version = "2.1.4";
 
   src = fetchFromGitHub {
     owner = "cminyard";
     repo = "${pname}";
     rev = "v${version}";
-    sha256 = "1j6c6vmnip24pxafk29y312vif1xlryymv7aaxgqp9ca3s91nlrf";
+    sha256 = "0c44qhhrknjl7sp94q34z7nv7bvnlqs8wzm385661liy4mnfn4dc";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/geos/default.nix b/nixpkgs/pkgs/development/libraries/geos/default.nix
index 4e7ce1d5ac85..60fc4067c0c5 100644
--- a/nixpkgs/pkgs/development/libraries/geos/default.nix
+++ b/nixpkgs/pkgs/development/libraries/geos/default.nix
@@ -12,6 +12,9 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ python ];
 
+  # https://trac.osgeo.org/geos/ticket/993
+  configureFlags = stdenv.lib.optional stdenv.isAarch32 "--disable-inline";
+
   meta = with stdenv.lib; {
     description = "C++ port of the Java Topology Suite (JTS)";
     homepage = "https://trac.osgeo.org/geos";
diff --git a/nixpkgs/pkgs/development/libraries/gettext/default.nix b/nixpkgs/pkgs/development/libraries/gettext/default.nix
index 46e52c7988e6..ec186db515d4 100644
--- a/nixpkgs/pkgs/development/libraries/gettext/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gettext/default.nix
@@ -1,4 +1,9 @@
-{ stdenv, lib, fetchurl, libiconv, xz, fetchpatch }:
+{ stdenv, lib, fetchurl, libiconv, xz }:
+
+# Note: this package is used for bootstrapping fetchurl, and thus
+# cannot use fetchpatch! All mutable patches (generated by GitHub or
+# cgit) that are needed here should be included directly in Nixpkgs as
+# files.
 
 # Note: this package is used for bootstrapping fetchurl, and thus
 # cannot use fetchpatch! All mutable patches (generated by GitHub or
@@ -7,21 +12,15 @@
 
 stdenv.mkDerivation rec {
   pname = "gettext";
-  version = "0.20.1";
+  version = "0.21";
 
   src = fetchurl {
     url = "mirror://gnu/gettext/${pname}-${version}.tar.gz";
-    sha256 = "0p3zwkk27wm2m2ccfqm57nj7vqkmfpn7ja1nf65zmhz8qqs5chb6";
+    sha256 = "04kbg1sx0ncfrsbr85ggjslqkzzb243fcw9nyh3rrv1a22ihszf7";
   };
   patches = [
     ./absolute-paths.diff
-    ./gettext.git-2336451ed68d91ff4b5ae1acbc1eca30e47a86a9.patch
-  ]
-  ++ lib.optional stdenv.isDarwin
-      (fetchpatch {
-        url = "https://git.savannah.gnu.org/cgit/gettext.git/patch?id=ec0e6b307456ceab352669ae6bccca9702108753";
-        sha256 = "0xqs01c7xl7vmw6bqvsmrzxxjxk2a4spcdpmlwm3b4hi2wc2lxnf";
-      });
+  ];
 
   outputs = [ "out" "man" "doc" "info" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/gettext/gettext.git-2336451ed68d91ff4b5ae1acbc1eca30e47a86a9.patch b/nixpkgs/pkgs/development/libraries/gettext/gettext.git-2336451ed68d91ff4b5ae1acbc1eca30e47a86a9.patch
deleted file mode 100644
index 4a19b11507ac..000000000000
--- a/nixpkgs/pkgs/development/libraries/gettext/gettext.git-2336451ed68d91ff4b5ae1acbc1eca30e47a86a9.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 2336451ed68d91ff4b5ae1acbc1eca30e47a86a9 Mon Sep 17 00:00:00 2001
-From: Bruno Haible <bruno@clisp.org>
-Date: Sun, 19 May 2019 13:10:06 +0200
-Subject: [PATCH] msgmerge: Fix behaviour of --for-msgfmt on PO files with no
- translations.
-
-Reported by Don Lawrence <dlawrence@iecok.com>
-in <https://lists.freedesktop.org/archives/p11-glue/2019-May/000700.html>
-via Daiki Ueno
-in <https://lists.gnu.org/archive/html/bug-gettext/2019-05/msg00124.html>.
-
-* gettext-tools/src/msgmerge.c (main): Treat force_po like true if for_msgfmt
-is true.
-* gettext-tools/tests/msgmerge-26: Add test of PO file with no translations.
----
- gettext-tools/src/msgmerge.c    |  4 ++--
- gettext-tools/tests/msgmerge-26 | 36 +++++++++++++++++++++++++++++++++---
- 2 files changed, 35 insertions(+), 5 deletions(-)
-
-diff --git a/gettext-tools/src/msgmerge.c b/gettext-tools/src/msgmerge.c
-index cd762c0..92c9b7a 100644
---- a/gettext-tools/src/msgmerge.c
-+++ b/gettext-tools/src/msgmerge.c
-@@ -520,8 +520,8 @@ There is NO WARRANTY, to the extent permitted by law.\n\
-   else
-     {
-       /* Write the merged message list out.  */
--      msgdomain_list_print (result, output_file, output_syntax, force_po,
--                            false);
-+      msgdomain_list_print (result, output_file, output_syntax,
-+                            for_msgfmt || force_po, false);
-     }
- 
-   exit (EXIT_SUCCESS);
-diff --git a/gettext-tools/tests/msgmerge-26 b/gettext-tools/tests/msgmerge-26
-index cd3862e..b86f7a0 100755
---- a/gettext-tools/tests/msgmerge-26
-+++ b/gettext-tools/tests/msgmerge-26
-@@ -73,7 +73,37 @@ msgstr "Papaya"
- EOF
- 
- : ${DIFF=diff}
--${DIFF} mm-test26.ok mm-test26.out
--result=$?
-+${DIFF} mm-test26.ok mm-test26.out || Exit 1
- 
--exit $result
-+# Test with a PO file that has no translated messages.
-+
-+cat <<\EOF > mm-test26a.in1
-+msgid ""
-+msgstr ""
-+"Content-Type: text/plain; charset=UTF-8\n"
-+
-+msgid "Hello world"
-+msgstr "Hallo Welt"
-+EOF
-+
-+cat <<\EOF > mm-test26a.in2
-+msgid ""
-+msgstr ""
-+"Content-Type: text/plain; charset=ASCII\n"
-+
-+msgid "Hello, world!"
-+msgstr ""
-+EOF
-+
-+: ${MSGMERGE=msgmerge}
-+${MSGMERGE} --for-msgfmt -o mm-test26a.tmp mm-test26a.in1 mm-test26a.in2 \
-+    || Exit 1
-+LC_ALL=C tr -d '\r' < mm-test26a.tmp > mm-test26a.out || Exit 1
-+
-+cat <<\EOF > mm-test26a.ok
-+msgid ""
-+msgstr "Content-Type: text/plain; charset=UTF-8\n"
-+EOF
-+
-+: ${DIFF=diff}
-+${DIFF} mm-test26a.ok mm-test26a.out || Exit 1
--- 
-1.9.1
-
diff --git a/nixpkgs/pkgs/development/libraries/gfbgraph/default.nix b/nixpkgs/pkgs/development/libraries/gfbgraph/default.nix
index 9fd26b1dfe8e..4718e6ac015a 100644
--- a/nixpkgs/pkgs/development/libraries/gfbgraph/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gfbgraph/default.nix
@@ -1,22 +1,36 @@
 { stdenv, fetchurl, pkgconfig, glib, librest, gnome-online-accounts
-, gnome3, libsoup, json-glib, gobject-introspection }:
+, gnome3, libsoup, json-glib, gobject-introspection
+, gtk-doc, pkgs, docbook-xsl-nons, autoconf, automake, libtool }:
 
 stdenv.mkDerivation rec {
   pname = "gfbgraph";
-  version = "0.2.3";
+  version = "0.2.4";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1dp0v8ia35fxs9yhnqpxj3ir5lh018jlbiwifjfn8ayy7h47j4fs";
+    sha256 = "0yck7dwvjk16a52nafjpi0a39rxwmg0w833brj45acz76lgkjrb0";
   };
 
-  nativeBuildInputs = [ pkgconfig gobject-introspection ];
+  nativeBuildInputs = [
+    pkgconfig gobject-introspection gtk-doc
+    docbook-xsl-nons autoconf automake libtool
+  ];
   buildInputs = [ glib gnome-online-accounts ];
   propagatedBuildInputs = [ libsoup json-glib librest ];
 
-  configureFlags = [ "--enable-introspection" ];
+  configureFlags = [ "--enable-introspection" "--enable-gtk-doc" ];
+
+  prePatch = ''
+    patchShebangs autogen.sh
+    substituteInPlace autogen.sh \
+      --replace "which" "${pkgs.which}/bin/which"
+  '';
+
+  preConfigure = ''
+    NOCONFIGURE=1 ./autogen.sh
+  '';
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/development/libraries/gjs/default.nix b/nixpkgs/pkgs/development/libraries/gjs/default.nix
index 357bf076459a..1cad5c0deb96 100644
--- a/nixpkgs/pkgs/development/libraries/gjs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gjs/default.nix
@@ -29,11 +29,11 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "gjs";
-  version = "1.64.3";
+  version = "1.64.4";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gjs/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1rl524rmdbpmp5xdkm8dx3znq47l7dgvh192x80zjf8wc1af35lx";
+    sha256 = "0k6l2qc2vkws34zrgdhl57qxf0jjkar2iziz6qn4n1w7va73mk53";
   };
 
   outputs = [ "out" "dev" "installedTests" ];
diff --git a/nixpkgs/pkgs/development/libraries/gl2ps/default.nix b/nixpkgs/pkgs/development/libraries/gl2ps/default.nix
index 85a9944fcf7b..172531f9dc7c 100644
--- a/nixpkgs/pkgs/development/libraries/gl2ps/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gl2ps/default.nix
@@ -1,17 +1,27 @@
-{ stdenv, fetchurl, cmake
-, zlib, libGL, libGLU, libpng, freeglut }:
+{ stdenv
+, fetchurl
+, cmake
+, zlib
+, libGL
+, libGLU
+, libpng
+, freeglut
+}:
 
 stdenv.mkDerivation rec {
-  version = "1.4.2";
   pname = "gl2ps";
+  version = "1.4.2";
 
   src = fetchurl {
     url = "http://geuz.org/gl2ps/src/${pname}-${version}.tgz";
     sha256 = "1sgzv547h7hrskb9qd0x5yp45kmhvibjwj2mfswv95lg070h074d";
   };
 
-  buildInputs = [
+  nativeBuildInputs = [
     cmake
+  ];
+
+  buildInputs = [
     zlib
     libGL
     libGLU
diff --git a/nixpkgs/pkgs/development/libraries/glib/default.nix b/nixpkgs/pkgs/development/libraries/glib/default.nix
index 47e372cf9a36..88848deec412 100644
--- a/nixpkgs/pkgs/development/libraries/glib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/glib/default.nix
@@ -16,9 +16,6 @@ with stdenv.lib;
 assert stdenv.isLinux -> utillinuxMinimal != null;
 
 # TODO:
-# * Add gio-module-fam
-#     Problem: cyclic dependency on gamin
-#     Possible solution: build as a standalone module, set env. vars
 # * Make it build without python
 #     Problem: an example (test?) program needs it.
 #     Possible solution: disable compilation of this example somehow
@@ -48,11 +45,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "glib";
-  version = "2.64.3";
+  version = "2.64.5";
 
   src = fetchurl {
     url = "mirror://gnome/sources/glib/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "08pbgiv5m3rica4ydvwvpq5mrxbyswx7l1jzjc2ch52xjabvr77y";
+    sha256 = "04fczq693wivkqd2qxvvi3sncqgznsvzfiiwsll1rbayf795pgcw";
   };
 
   patches = optionals stdenv.isDarwin [
diff --git a/nixpkgs/pkgs/development/libraries/glibc/2.27-CVE-2019-19126.patch b/nixpkgs/pkgs/development/libraries/glibc/2.27-CVE-2019-19126.patch
deleted file mode 100644
index 2c558f53b735..000000000000
--- a/nixpkgs/pkgs/development/libraries/glibc/2.27-CVE-2019-19126.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Adapted from https://sourceware.org/git/gitweb.cgi?p=glibc.git;a=patch;h=4d5cfeb510125345cb41431afc9022492994cffa, omitting changes to NEWS
-diff --git a/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h b/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h
-index 1943691..ac694c0 100644
---- a/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h
-+++ b/sysdeps/unix/sysv/linux/x86_64/64/dl-librecon.h
-@@ -31,7 +31,8 @@
-    environment variable, LD_PREFER_MAP_32BIT_EXEC.  */
- #define EXTRA_LD_ENVVARS \
-   case 21:								  \
--    if (memcmp (envline, "PREFER_MAP_32BIT_EXEC", 21) == 0)		  \
-+    if (!__libc_enable_secure						  \
-+	&& memcmp (envline, "PREFER_MAP_32BIT_EXEC", 21) == 0)		  \
-       GLRO(dl_x86_cpu_features).feature[index_arch_Prefer_MAP_32BIT_EXEC] \
- 	|= bit_arch_Prefer_MAP_32BIT_EXEC;				  \
-     break;
--- 
-2.9.3
-
diff --git a/nixpkgs/pkgs/development/libraries/glibc/2.31-cve-2020-10029.patch b/nixpkgs/pkgs/development/libraries/glibc/2.31-cve-2020-10029.patch
new file mode 100644
index 000000000000..8334398e8912
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/glibc/2.31-cve-2020-10029.patch
@@ -0,0 +1,79 @@
+diff --git a/sysdeps/ieee754/ldbl-96/Makefile b/sysdeps/ieee754/ldbl-96/Makefile
+index 995e90d6da..318628aed6 100644
+--- a/sysdeps/ieee754/ldbl-96/Makefile
++++ b/sysdeps/ieee754/ldbl-96/Makefile
+@@ -17,5 +17,6 @@
+ # <https://www.gnu.org/licenses/>.
+ 
+ ifeq ($(subdir),math)
+-tests += test-canonical-ldbl-96 test-totalorderl-ldbl-96
++tests += test-canonical-ldbl-96 test-totalorderl-ldbl-96 test-sinl-pseudo
++CFLAGS-test-sinl-pseudo.c += -fstack-protector-all
+ endif
+diff --git a/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c b/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c
+index 5f742321ae..bcdf20179f 100644
+--- a/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c
++++ b/sysdeps/ieee754/ldbl-96/e_rem_pio2l.c
+@@ -210,6 +210,18 @@ __ieee754_rem_pio2l (long double x, long double *y)
+       return 0;
+     }
+ 
++  if ((i0 & 0x80000000) == 0)
++    {
++      /* Pseudo-zero and unnormal representations are not valid
++	 representations of long double.  We need to avoid stack
++	 corruption in __kernel_rem_pio2, which expects input in a
++	 particular normal form, but those representations do not need
++	 to be consistently handled like any particular floating-point
++	 value.  */
++      y[1] = y[0] = __builtin_nanl ("");
++      return 0;
++    }
++
+   /* Split the 64 bits of the mantissa into three 24-bit integers
+      stored in a double array.  */
+   exp = j0 - 23;
+--- /dev/null
++++ b/sysdeps/ieee754/ldbl-96/test-sinl-pseudo.c
+@@ -0,0 +1,41 @@
++/* Test sinl for pseudo-zeros and unnormals for ldbl-96 (bug 25487).
++   Copyright (C) 2020 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <math.h>
++#include <math_ldbl.h>
++#include <stdint.h>
++
++static int
++do_test (void)
++{
++  for (int i = 0; i < 64; i++)
++    {
++      uint64_t sig = i == 63 ? 0 : 1ULL << i;
++      long double ld;
++      SET_LDOUBLE_WORDS (ld, 0x4141,
++			 sig >> 32, sig & 0xffffffffULL);
++      /* The requirement is that no stack overflow occurs when the
++	 pseudo-zero or unnormal goes through range reduction.  */
++      volatile long double ldr;
++      ldr = sinl (ld);
++      (void) ldr;
++    }
++  return 0;
++}
++
++#include <support/test-driver.c>
diff --git a/nixpkgs/pkgs/development/libraries/glibc/common.nix b/nixpkgs/pkgs/development/libraries/glibc/common.nix
index 85856fc366d9..0b2f34c7b765 100644
--- a/nixpkgs/pkgs/development/libraries/glibc/common.nix
+++ b/nixpkgs/pkgs/development/libraries/glibc/common.nix
@@ -41,9 +41,9 @@
 } @ args:
 
 let
-  version = "2.30";
+  version = "2.31";
   patchSuffix = "";
-  sha256 = "1bxqpg91d02qnaz837a5kamm0f43pr1il4r9pknygywsar713i72";
+  sha256 = "05zxkyz9bv3j9h0xyid1rhvh3klhsmrpkf3bcs6frvlgyr2gwilj";
 in
 
 assert withLinuxHeaders -> linuxHeaders != null;
@@ -113,8 +113,8 @@ stdenv.mkDerivation ({
       })
 
       ./fix-x64-abi.patch
-      ./2.27-CVE-2019-19126.patch
       ./2.30-cve-2020-1752.patch
+      ./2.31-cve-2020-10029.patch
     ]
     ++ lib.optional stdenv.hostPlatform.isMusl ./fix-rpc-types-musl-conflicts.patch
     ++ lib.optional stdenv.buildPlatform.isDarwin ./darwin-cross-build.patch;
diff --git a/nixpkgs/pkgs/development/libraries/glibmm/default.nix b/nixpkgs/pkgs/development/libraries/glibmm/default.nix
index dff122d38d12..53e924b1325a 100644
--- a/nixpkgs/pkgs/development/libraries/glibmm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/glibmm/default.nix
@@ -11,7 +11,12 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ pkgconfig gnum4 ];
+  nativeBuildInputs = [
+    pkgconfig
+    gnum4
+    glib # for glib-compile-schemas
+  ];
+
   buildInputs = stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
     Cocoa
   ]);
diff --git a/nixpkgs/pkgs/development/libraries/gloox/default.nix b/nixpkgs/pkgs/development/libraries/gloox/default.nix
index 7e5d7e9fa9a3..ef731b3c35a6 100644
--- a/nixpkgs/pkgs/development/libraries/gloox/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gloox/default.nix
@@ -11,7 +11,7 @@ assert idnSupport -> libidn != null;
 with stdenv.lib;
 
 let
-  version = "1.0.23";
+  version = "1.0.24";
 in
 stdenv.mkDerivation {
   pname = "gloox";
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://camaya.net/download/gloox-${version}.tar.bz2";
-    sha256 = "12jz8glg9zmyk0iyv1ywf5i0hq93dfq8lvn6lyjgy8730w66mjwp";
+    sha256 = "1jgrd07qr9jvbb5hcmhrqz4w4lvwc51m30jls1fgxf1f5az6455f";
   };
 
   buildInputs = [ ]
diff --git a/nixpkgs/pkgs/development/libraries/gnu-config/default.nix b/nixpkgs/pkgs/development/libraries/gnu-config/default.nix
index e45ec957eb93..5acab2a70e08 100644
--- a/nixpkgs/pkgs/development/libraries/gnu-config/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gnu-config/default.nix
@@ -1,21 +1,20 @@
 { stdenv, fetchurl }:
 
 let
-  rev = "a8d79c3130da83c7cacd6fee31b9acc53799c406";
+  rev = "e78c96e5288993aaea3ec44e5c6ee755c668da79";
 
   # Don't use fetchgit as this is needed during Aarch64 bootstrapping
   configGuess = fetchurl {
     url = "https://git.savannah.gnu.org/cgit/config.git/plain/config.guess?id=${rev}";
-    sha256 = "0qbq49gr2cmf4gzrjvrmpwxxgzl3vap1xm902xa8pkcqdvriq0qw";
+    sha256 = "sha256-TSLpYIDGSp1flqCBi2Sgg9IWDV5bcO+Hn2Menv3R6KU=";
   };
   configSub = fetchurl {
     url = "https://git.savannah.gnu.org/cgit/config.git/plain/config.sub?id=${rev}";
-    sha256 = "0i699axqfkxk9mgv1hlms5r44pf0s642yz75ajjjpwzhw4d5pnv4";
+    sha256 = "sha256-DkCGDN/DE3phQ1GO/Ua5ZPPtp0Ya93PnW3yfSK8EV9s=";
   };
-in
-stdenv.mkDerivation {
+in stdenv.mkDerivation {
   pname = "gnu-config";
-  version = "2019-04-15";
+  version = "2020-05-04";
 
   buildCommand = ''
     mkdir -p $out
diff --git a/nixpkgs/pkgs/development/libraries/goffice/default.nix b/nixpkgs/pkgs/development/libraries/goffice/default.nix
index 308a4db28006..46b40d00d780 100644
--- a/nixpkgs/pkgs/development/libraries/goffice/default.nix
+++ b/nixpkgs/pkgs/development/libraries/goffice/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "goffice";
-  version = "0.10.47";
+  version = "0.10.48";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0xmigfdzvmlpa0fw79mf3xwchmxc8rlidryn5syv8bz7msmrb215";
+    sha256 = "1z6f3q8fxkd1ysqrwdxdi0844zqa00vjpf07gq8mh3kal8picfd4";
   };
 
   nativeBuildInputs = [ pkgconfig intltool ];
diff --git a/nixpkgs/pkgs/development/libraries/gperftools/default.nix b/nixpkgs/pkgs/development/libraries/gperftools/default.nix
index 039231c01423..91b2c2929a48 100644
--- a/nixpkgs/pkgs/development/libraries/gperftools/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gperftools/default.nix
@@ -1,14 +1,31 @@
-{ stdenv, fetchurl, libunwind }:
+{ stdenv, fetchurl, fetchpatch, autoreconfHook, libunwind }:
 
 stdenv.mkDerivation rec {
-  name = "gperftools-2.7";
+  name = "gperftools-2.8";
 
   src = fetchurl {
     url = "https://github.com/gperftools/gperftools/releases/download/${name}/${name}.tar.gz";
-    sha256 = "1jb30zxmw7h9qxa8yi76rfxj4ssk60rv8n9y41m6pzqfk9lwis0y";
+    sha256 = "0gjiplvday50x695pwjrysnvm5wfvg2b0gmqf6b4bdi8sv6yl394";
   };
 
-  buildInputs = stdenv.lib.optional stdenv.isLinux libunwind;
+  patches = [
+    # Add the --disable-general-dynamic-tls configure option:
+    # https://bugzilla.redhat.com/show_bug.cgi?id=1483558
+    (fetchpatch {
+      url = "https://src.fedoraproject.org/rpms/gperftools/raw/f62d87a34f56f64fb8eb86727e34fbc2d3f5294a/f/gperftools-2.7.90-disable-generic-dynamic-tls.patch";
+      sha256 = "02falhpaqkl27hl1dib4yvmhwsddmgbw0krb46w31fyf3awb2ydv";
+    })
+  ];
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  # tcmalloc uses libunwind in a way that works correctly only on non-ARM linux
+  buildInputs = stdenv.lib.optional (stdenv.isLinux && !(stdenv.isAarch64 || stdenv.isAarch32)) libunwind;
+
+  # Disable general dynamic TLS on AArch to support dlopen()'ing the library:
+  # https://bugzilla.redhat.com/show_bug.cgi?id=1483558
+  configureFlags = stdenv.lib.optional (stdenv.isAarch32 || stdenv.isAarch64)
+    "--disable-general-dynamic-tls";
 
   prePatch = stdenv.lib.optionalString stdenv.isDarwin ''
     substituteInPlace Makefile.am --replace stdc++ c++
diff --git a/nixpkgs/pkgs/development/libraries/gpgme/default.nix b/nixpkgs/pkgs/development/libraries/gpgme/default.nix
index 1c4f63142a9b..ed07d8ba0580 100644
--- a/nixpkgs/pkgs/development/libraries/gpgme/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gpgme/default.nix
@@ -14,22 +14,15 @@ in
 
 stdenv.mkDerivation rec {
   pname = "gpgme";
-  version = "1.13.1";
+  version = "1.14.0";
 
   src = fetchurl {
     url = "mirror://gnupg/gpgme/${pname}-${version}.tar.bz2";
-    sha256 = "0imyjfryvvjdbai454p70zcr95m94j9xnzywrlilqdw2fqi0pqy4";
+    sha256 = "01s3rlspykbm9vmi5rfbdm3d20ip6yni69r48idqzlmhlq8ggwff";
   };
 
   patches = [
-    # Fix tests with gnupg > 2.2.19
-    # https://dev.gnupg.org/T4820
-    (fetchpatch {
-      name = "cff600f1f65a2164ab25ff2b039cba008776ce62.patch";
-      url = "http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=patch;h=cff600f1f65a2164ab25ff2b039cba008776ce62";
-      sha256 = "0ds3pvcws37q4hr4g5iwg2b98fj6whvhhcbm9c8f1kgp7dlpdw7n";
-    })
-    (fetchpatch {
+    (fetchpatch { # gpg: Send --with-keygrip when listing keys
       name = "c4cf527ea227edb468a84bf9b8ce996807bd6992.patch";
       url = "http://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=patch;h=c4cf527ea227edb468a84bf9b8ce996807bd6992";
       sha256 = "0y0b0lb2nq5p9kx13b59b2jaz157mvflliw1qdvg1v1hynvgb8m4";
@@ -79,6 +72,7 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     homepage = "https://gnupg.org/software/gpgme/index.html";
+    changelog = "https://git.gnupg.org/cgi-bin/gitweb.cgi?p=gpgme.git;a=blob;f=NEWS;hb=refs/tags/gpgme-${version}";
     description = "Library for making GnuPG easier to use";
     longDescription = ''
       GnuPG Made Easy (GPGME) is a library designed to make access to GnuPG
diff --git a/nixpkgs/pkgs/development/libraries/grantlee/5/default.nix b/nixpkgs/pkgs/development/libraries/grantlee/5/default.nix
index 09bf92224858..4eef2d407d8e 100644
--- a/nixpkgs/pkgs/development/libraries/grantlee/5/default.nix
+++ b/nixpkgs/pkgs/development/libraries/grantlee/5/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation, lib, copyPathsToStore, fetchurl, qtbase, qtscript, cmake }:
+{ mkDerivation, lib, fetchurl, qtbase, qtscript, cmake }:
 
 mkDerivation rec {
   pname = "grantlee";
@@ -14,7 +14,10 @@ mkDerivation rec {
   buildInputs = [ qtbase qtscript ];
   nativeBuildInputs = [ cmake ];
 
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./grantlee-nix-profiles.patch
+    ./grantlee-no-canonicalize-filepath.patch
+  ];
 
   outputs = [ "out" "dev" ];
   postFixup =
diff --git a/nixpkgs/pkgs/development/libraries/grantlee/5/series b/nixpkgs/pkgs/development/libraries/grantlee/5/series
deleted file mode 100644
index 9c4015a1c197..000000000000
--- a/nixpkgs/pkgs/development/libraries/grantlee/5/series
+++ /dev/null
@@ -1,2 +0,0 @@
-grantlee-nix-profiles.patch
-grantlee-no-canonicalize-filepath.patch
diff --git a/nixpkgs/pkgs/development/libraries/graphene/default.nix b/nixpkgs/pkgs/development/libraries/graphene/default.nix
index e540604c9cb9..ee147d82afdb 100644
--- a/nixpkgs/pkgs/development/libraries/graphene/default.nix
+++ b/nixpkgs/pkgs/development/libraries/graphene/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , pkgconfig
 , meson
 , ninja
@@ -15,7 +16,7 @@
 
 stdenv.mkDerivation rec {
   pname = "graphene";
-  version = "1.10.0";
+  version = "1.10.2";
 
   outputs = [ "out" "devdoc" "installedTests" ];
 
@@ -23,7 +24,7 @@ stdenv.mkDerivation rec {
     owner = "ebassi";
     repo = pname;
     rev = version;
-    sha256 = "16vqwih5bfxv7r3mm7iiha804rpsxzxjfrs4kx76d9q5yg2hayxr";
+    sha256 = "1ljhhjafi1nlndjswx7mg0d01zci90wz77yvz5w8bd9mm8ssw38s";
   };
 
   patches = [
@@ -62,6 +63,10 @@ stdenv.mkDerivation rec {
     tests = {
       installedTests = nixosTests.installed-tests.graphene;
     };
+
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/libraries/grpc/default.nix b/nixpkgs/pkgs/development/libraries/grpc/default.nix
index ab497eadb6d6..b5d4db8b4198 100644
--- a/nixpkgs/pkgs/development/libraries/grpc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/grpc/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchFromGitHub, fetchpatch, cmake, zlib, c-ares, pkgconfig, openssl, protobuf, gflags, abseil-cpp }:
 
 stdenv.mkDerivation rec {
-  version = "1.29.0"; # N.B: if you change this, change pythonPackages.grpcio-tools to a matching version too
+  version = "1.32.0"; # N.B: if you change this, change pythonPackages.grpcio-tools to a matching version too
   pname = "grpc";
   src = fetchFromGitHub {
     owner = "grpc";
     repo = "grpc";
     rev = "v${version}";
-    sha256 = "1n604grkf2amzrmwcz6am0rpbp3yfb062lpgmhv943hj8wk7xw27";
+    sha256 = "0v48h0j0gxcp9s63z1ibwgz4416qd6iq728la80y6gl8rklrqf0c";
     fetchSubmodules = true;
   };
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/gssdp/default.nix b/nixpkgs/pkgs/development/libraries/gssdp/default.nix
index 8ad92eb833a4..0a808b71a71c 100644
--- a/nixpkgs/pkgs/development/libraries/gssdp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gssdp/default.nix
@@ -16,13 +16,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gssdp";
-  version = "1.2.2";
+  version = "1.2.3";
 
   outputs = [ "out" "bin" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/gssdp/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "195hi10vrsvh6i927mm6rm1ld5sxah3h5sr3bsjm90vb8lxrxfya";
+    sha256 = "1s57i8a8wnnxnsfl27cq4503dkdlzbrhry5zpg23sfqfffvdqqx2";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix
index f4810feada87..9c4f3ee0251d 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/core/default.nix
@@ -99,7 +99,7 @@ stdenv.mkDerivation rec {
   postInstall = ''
     for prog in "$dev/bin/"*; do
         # We can't use --suffix here due to quoting so we craft the export command by hand
-        wrapProgram "$prog" --run "export GST_PLUGIN_SYSTEM_PATH=\$GST_PLUGIN_SYSTEM_PATH"$\{GST_PLUGIN_SYSTEM_PATH:+:\}"\$(unset _tmp; for profile in \$NIX_PROFILES; do _tmp="\$profile/lib/gstreamer-1.0''$\{_tmp:+:\}\$_tmp"; done; printf "\$_tmp")"
+        wrapProgram "$prog" --run 'export GST_PLUGIN_SYSTEM_PATH=$GST_PLUGIN_SYSTEM_PATH''${GST_PLUGIN_SYSTEM_PATH:+:}$(unset _tmp; for profile in $NIX_PROFILES; do _tmp="$profile/lib/gstreamer-1.0''${_tmp:+:}$_tmp"; done; printf '%s' "$_tmp")'
     done
   '';
 
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/default.nix
index 94d71760a7f8..e7e11db61298 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/default.nix
@@ -23,7 +23,7 @@ rec {
     inherit gst-plugins-base gstreamer gst-plugins-bad;
   };
 
-  gst-validate = callPackage ./validate { inherit gst-plugins-base; };
+  gst-validate = callPackage ./validate { inherit gstreamer gst-plugins-base; };
 
   # note: gst-python is in ./python/default.nix - called under pythonPackages
 }
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix
deleted file mode 100644
index 804d80b8e1d1..000000000000
--- a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gnonlin/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, fetchurl, pkgconfig, gst-plugins-base, gstreamer }:
-
-stdenv.mkDerivation rec {
-  name = "gnonlin-0.10.17";
-
-  src = fetchurl {
-    urls = [
-      "https://gstreamer.freedesktop.org/src/gnonlin/${name}.tar.bz2"
-      "mirror://gentoo/distfiles/${name}.tar.bz2"
-      ];
-    sha256 = "0dc9kvr6i7sh91cyhzlbx2bchwg84rfa4679ccppzjf0y65dv8p4";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gst-plugins-base gstreamer ];
-
-  meta = {
-    homepage = "https://gstreamer.freedesktop.org/modules/gnonlin.html";
-    description = "Gstreamer Non-Linear Multimedia Editing Plugins";
-    license = stdenv.lib.licenses.gpl2Plus;
-    platforms = stdenv.lib.platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-bad/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-bad/default.nix
deleted file mode 100644
index cd37a513184d..000000000000
--- a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-bad/default.nix
+++ /dev/null
@@ -1,36 +0,0 @@
-{ fetchurl, stdenv, pkgconfig, glib, gstreamer, gst-plugins-base
-, libdvdnav, libdvdread, orc }:
-
-stdenv.mkDerivation rec {
-  name = "gst-plugins-bad-0.10.23";
-
-  src = fetchurl {
-    urls = [
-      "${meta.homepage}/src/gst-plugins-bad/${name}.tar.bz2"
-      "mirror://gentoo/distfiles/${name}.tar.bz2"
-      ];
-    sha256 = "148lw51dm6pgw8vc6v0fpvm7p233wr11nspdzmvq7bjp2cd7vbhf";
-  };
-
-  postInstall = ''
-    # Fixes CVE-2016-9447
-    # Does not actually impact NSF playback
-    rm -v $out/lib/gstreamer-0.10/libgstnsf.so
-  '';
-
-  buildInputs =
-    [ pkgconfig glib gstreamer gst-plugins-base libdvdnav libdvdread orc ];
-
-  enableParallelBuilding = true;
-
-  meta = {
-    homepage = "https://gstreamer.freedesktop.org";
-
-    description = "‘Bad’ (potentially low quality) plug-ins for GStreamer";
-
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.linux;
-
-    license = stdenv.lib.licenses.lgpl2Plus;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix
deleted file mode 100644
index ad978e903f8f..000000000000
--- a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/default.nix
+++ /dev/null
@@ -1,60 +0,0 @@
-{ fetchurl, fetchpatch, stdenv, pkgconfig, gstreamer, xorg, alsaLib, cdparanoia
-, libogg, libtheora, libvorbis, freetype, pango, liboil, glib, cairo, orc
-, libintl
-, ApplicationServices
-, # Whether to build no plugins that have external dependencies
-  # (except the ALSA plugin).
-  minimalDeps ? false
-}:
-
-stdenv.mkDerivation rec {
-  name = "gst-plugins-base-0.10.36";
-
-  src = fetchurl {
-    urls = [
-      "${meta.homepage}/src/gst-plugins-base/${name}.tar.xz"
-      "mirror://gentoo/distfiles/${name}.tar.xz"
-      ];
-    sha256 = "0jp6hjlra98cnkal4n6bdmr577q8mcyp3c08s3a02c4hjhw5rr0z";
-  };
-
-  patches = [
-    ./gcc-4.9.patch
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/commit/f672277509705c4034bc92a141eefee4524d15aa.patch";
-      name = "CVE-2019-9928.patch";
-      sha256 = "1dlamsmyr7chrb6vqqmwikqvvqcx5l7k72p98448qm6k59ndnimc";
-    })
-  ];
-
-  postPatch = ''
-    sed -i 's@/bin/echo@echo@g' configure
-    sed -i -e 's/^   /\t/' docs/{libs,plugins}/Makefile.in
-  '';
-
-  outputs = [ "out" "dev" ];
-
-  # TODO : v4l, libvisual
-  buildInputs =
-    [ pkgconfig glib cairo orc libintl ]
-    # can't build alsaLib on darwin
-    ++ stdenv.lib.optional (!stdenv.isDarwin) alsaLib
-    ++ stdenv.lib.optionals (!minimalDeps)
-      [ xorg.xlibsWrapper xorg.libXv libogg libtheora libvorbis freetype pango
-        liboil ]
-    # can't build cdparanoia on darwin
-    ++ stdenv.lib.optional (!minimalDeps && !stdenv.isDarwin) cdparanoia
-    ++ stdenv.lib.optional stdenv.isDarwin ApplicationServices;
-
-  propagatedBuildInputs = [ gstreamer ];
-
-  postInstall = "rm -rf $out/share/gtk-doc";
-
-  meta = with stdenv.lib; {
-    homepage    = "https://gstreamer.freedesktop.org";
-    description = "Base plug-ins for GStreamer";
-    license     = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ lovek323 ];
-    platforms   = platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch
deleted file mode 100644
index fd9f6ea240d2..000000000000
--- a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-base/gcc-4.9.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-https://bugzilla.gnome.org/show_bug.cgi?id=670690
-
-From 9bd5a7ae5435469c3557a3d70e762791cb3dc5c7 Mon Sep 17 00:00:00 2001
-From: Antoine Jacoutot <ajacoutot@gnome.org>
-Date: Mon, 20 Jan 2014 15:44:09 +0100
-Subject: [PATCH] audioresample: fix build on BSD
-
-On i386, EMMINTRIN is defined but not usable without sse so check for
-__SSE__ and __SSE2__ as well.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=670690
----
- gst/audioresample/resample.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/gst/audioresample/resample.c b/gst/audioresample/resample.c
-index 98d006c..481fa01 100644
---- a/gst/audioresample/resample.c
-+++ b/gst/audioresample/resample.c
-@@ -77,13 +77,13 @@
- #define EXPORT G_GNUC_INTERNAL
- 
- #ifdef _USE_SSE
--#ifndef HAVE_XMMINTRIN_H
-+#if !defined(__SSE__) || !defined(HAVE_XMMINTRIN_H)
- #undef _USE_SSE
- #endif
- #endif
- 
- #ifdef _USE_SSE2
--#ifndef HAVE_EMMINTRIN_H
-+#if !defined(__SSE2__) || !defined(HAVE_XMMINTRIN_H)
- #undef _USE_SSE2
- #endif
- #endif
--- 
-1.8.5.3
-
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix
deleted file mode 100644
index 225bcc7e263e..000000000000
--- a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ fetchurl, stdenv, lib, pkgconfig, gst-plugins-base, aalib, cairo
-, flac, libjpeg, speex, libpng, libdv, libcaca, libvpx
-, taglib, libpulseaudio, gdk-pixbuf, orc
-, glib, gstreamer, bzip2, libsoup, libshout, ncurses, libintl
-, # Whether to build no plugins that have external dependencies
-  # (except the PulseAudio plugin).
-  minimalDeps ? false
-}:
-
-stdenv.mkDerivation rec {
-  name = "gst-plugins-good-0.10.31";
-
-  src = fetchurl {
-    urls = [
-      "${meta.homepage}/src/gst-plugins-good/${name}.tar.bz2"
-      "mirror://gentoo/distfiles/${name}.tar.bz2"
-      ];
-    sha256 = "1ijswgcrdp243mfsyza31fpzq6plz40p4b83vkr2x4x7807889vy";
-  };
-
-  patches = [ ./v4l.patch ./linux-headers-3.9.patch ];
-
-  configureFlags = [ "--enable-experimental" "--disable-oss" ];
-
-  buildInputs =
-    [ pkgconfig glib gstreamer gst-plugins-base libintl ]
-    ++ lib.optional stdenv.isLinux libpulseaudio
-    ++ lib.optionals (!minimalDeps)
-      [ aalib libcaca cairo libdv flac libjpeg libpng speex
-        taglib bzip2 libvpx gdk-pixbuf orc libsoup libshout ];
-
-  enableParallelBuilding = true;
-
-  postInstall = lib.optionalString (!minimalDeps) ''
-    substituteInPlace $out/lib/gstreamer-0.10/libgstaasink.la \
-      --replace "${ncurses.dev}/lib" "${ncurses.out}/lib"
-  '';
-
-  # fails 1 out of 65 tests with "Could not read TLS certificate from '../../tests/files/test-cert.pem': TLS support is not available"
-  doCheck = false;
-
-  meta = {
-    homepage = "https://gstreamer.freedesktop.org";
-
-    description = "`Good' plug-ins for GStreamer";
-
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.unix;
-
-    license = stdenv.lib.licenses.lgpl2Plus;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/linux-headers-3.9.patch b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/linux-headers-3.9.patch
deleted file mode 100644
index f13d3a166714..000000000000
--- a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/linux-headers-3.9.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/media-plugins/gst-plugins-v4l2/files/gst-plugins-v4l2-0.10.31-linux-headers-3.9.patch
-
-From 8e633d2059cb835448021cf79becb487aff10975 Mon Sep 17 00:00:00 2001
-From: Bastien Nocera <hadess@hadess.net>
-Date: Mon, 18 Mar 2013 14:59:35 +0000
-Subject: v4l2: fix compilation against newer kernel headers as on FC19
-
----
-diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c
-index 07d390a..4c10f4f 100644
---- a/sys/v4l2/v4l2_calls.c
-+++ b/sys/v4l2/v4l2_calls.c
-@@ -291,8 +291,12 @@ gst_v4l2_fill_lists (GstV4l2Object * v4l2object)
-         break;
-       case V4L2_CID_HFLIP:
-       case V4L2_CID_VFLIP:
-+#ifndef V4L2_CID_PAN_RESET
-       case V4L2_CID_HCENTER:
-+#endif
-+#ifndef V4L2_CID_TILT_RESET
-       case V4L2_CID_VCENTER:
-+#endif
- #ifdef V4L2_CID_PAN_RESET
-       case V4L2_CID_PAN_RESET:
- #endif
---
-cgit v0.9.0.2-2-gbebe
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/v4l.patch b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/v4l.patch
deleted file mode 100644
index 22cff574134f..000000000000
--- a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-good/v4l.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -ru -x '*~' gst-plugins-good-0.10.31-orig/sys/v4l2/gstv4l2bufferpool.c gst-plugins-good-0.10.31/sys/v4l2/gstv4l2bufferpool.c
---- gst-plugins-good-0.10.31-orig/sys/v4l2/gstv4l2bufferpool.c	2011-12-30 14:59:13.000000000 +0100
-+++ gst-plugins-good-0.10.31/sys/v4l2/gstv4l2bufferpool.c	2013-01-28 17:41:25.549523708 +0100
-@@ -181,7 +181,6 @@
-     GST_LOG_OBJECT (pool->v4l2elem, "  MMAP offset:  %u",
-         ret->vbuffer.m.offset);
-   GST_LOG_OBJECT (pool->v4l2elem, "  length:    %u", ret->vbuffer.length);
--  GST_LOG_OBJECT (pool->v4l2elem, "  input:     %u", ret->vbuffer.input);
- 
-   data = (guint8 *) v4l2_mmap (0, ret->vbuffer.length,
-       PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd,
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-ugly/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-ugly/default.nix
deleted file mode 100644
index 5321fc379cc9..000000000000
--- a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-plugins-ugly/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ fetchurl, stdenv, pkgconfig, glib, gstreamer, gst-plugins-base
-, libmad, libdvdread, a52dec, x264, orc, lame, libintl }:
-
-stdenv.mkDerivation rec {
-  name = "gst-plugins-ugly-0.10.19";
-
-  src = fetchurl {
-    urls = [
-      "${meta.homepage}/src/gst-plugins-ugly/${name}.tar.bz2"
-      "mirror://gentoo/distfiles/${name}.tar.bz2"
-      ];
-    sha256 = "1w4d5iz9ffvh43l261zdp997i6s2iwd61lflf755s3sw4xch1a8w";
-  };
-
-  buildInputs =
-    [ pkgconfig glib gstreamer gst-plugins-base libmad libdvdread a52dec x264 orc lame libintl ];
-
-  enableParallelBuilding = true;
-
-  meta = {
-    homepage = "https://gstreamer.freedesktop.org";
-
-    description = "‘Ugly’ (potentially patent-encumbered) plug-ins for GStreamer";
-
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.unix;
-
-    license = stdenv.lib.licenses.lgpl2Plus;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-python/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-python/default.nix
deleted file mode 100644
index 4c56039bd0a3..000000000000
--- a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-python/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ fetchurl, stdenv, pkgconfig, python2Packages, gstreamer, gst-plugins-base
-}:
-
-let
-  inherit (python2Packages) python pygobject2;
-in stdenv.mkDerivation rec {
-  name = "gst-python-0.10.22";
-
-  src = fetchurl {
-    urls = [
-      "${meta.homepage}/src/gst-python/${name}.tar.bz2"
-      "mirror://gentoo/distfiles/${name}.tar.bz2"
-      ];
-    sha256 = "0y1i4n5m1diljqr9dsq12anwazrhbs70jziich47gkdwllcza9lg";
-  };
-
-  hardeningDisable = [ "bindnow" ];
-
-  # Need to disable the testFake test case due to bug in pygobject.
-  # See https://bugzilla.gnome.org/show_bug.cgi?id=692479
-  patches = [ ./disable-testFake.patch ];
-
-  buildInputs =
-    [ pkgconfig gst-plugins-base pygobject2 ]
-    ;
-
-  propagatedBuildInputs = [ gstreamer python ];
-
-  meta = {
-    homepage = "https://gstreamer.freedesktop.org";
-
-    description = "Python bindings for GStreamer";
-
-    license = stdenv.lib.licenses.lgpl2Plus;
-    platforms = stdenv.lib.platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-python/disable-testFake.patch b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-python/disable-testFake.patch
deleted file mode 100644
index d0c9960e5d22..000000000000
--- a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gst-python/disable-testFake.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-diff -Nurp gst-python-0.10.22.orig/testsuite/test_bin.py gst-python-0.10.22/testsuite/test_bin.py
---- gst-python-0.10.22.orig/testsuite/test_bin.py	2014-10-29 18:58:00.921827721 +0100
-+++ gst-python-0.10.22/testsuite/test_bin.py	2014-10-29 19:00:32.019353092 +0100
-@@ -131,52 +131,6 @@ class BinAddRemove(TestCase):
-         self.assertRaises(gst.AddError, self.bin.add, src, sink)
-         self.bin.remove(src, sink)
-         self.assertRaises(gst.RemoveError, self.bin.remove, src, sink)
--
--class Preroll(TestCase):
--    def setUp(self):
--        TestCase.setUp(self)
--        self.bin = gst.Bin('bin')
--
--    def tearDown(self):
--        # FIXME: wait for state change thread to settle down
--        while self.bin.__gstrefcount__ > 1:
--            time.sleep(0.1)
--        self.assertEquals(self.bin.__gstrefcount__, 1)
--        del self.bin
--        TestCase.tearDown(self)
--
--    def testFake(self):
--        src = gst.element_factory_make('fakesrc')
--        sink = gst.element_factory_make('fakesink')
--        self.bin.add(src)
--
--        # bin will go to paused, src pad task will start and error out
--        self.bin.set_state(gst.STATE_PAUSED)
--        ret = self.bin.get_state()
--        self.assertEquals(ret[0], gst.STATE_CHANGE_SUCCESS)
--        self.assertEquals(ret[1], gst.STATE_PAUSED)
--        self.assertEquals(ret[2], gst.STATE_VOID_PENDING)
--
--        # adding the sink will cause the bin to go in preroll mode
--        gst.debug('adding sink and setting to PAUSED, should cause preroll')
--        self.bin.add(sink)
--        sink.set_state(gst.STATE_PAUSED)
--        ret = self.bin.get_state(timeout=0)
--        self.assertEquals(ret[0], gst.STATE_CHANGE_ASYNC)
--        self.assertEquals(ret[1], gst.STATE_PAUSED)
--        self.assertEquals(ret[2], gst.STATE_PAUSED)
--
--        # to actually complete preroll, we need to link and re-enable fakesrc
--        src.set_state(gst.STATE_READY)
--        src.link(sink)
--        src.set_state(gst.STATE_PAUSED)
--        ret = self.bin.get_state()
--        self.assertEquals(ret[0], gst.STATE_CHANGE_SUCCESS)
--        self.assertEquals(ret[1], gst.STATE_PAUSED)
--        self.assertEquals(ret[2], gst.STATE_VOID_PENDING)
--
--        self.bin.set_state(gst.STATE_NULL)
--        self.bin.get_state()
-  
- class ConstructorTest(TestCase):
-     def testGood(self):
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/darwin.patch b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/darwin.patch
deleted file mode 100644
index 67dfc34434db..000000000000
--- a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/darwin.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/gst/gstdatetime.c b/gst/gstdatetime.c
-index 60f709f..cdc7e75 100644
---- a/gst/gstdatetime.c
-+++ b/gst/gstdatetime.c
-@@ -21,8 +21,8 @@
- #include "config.h"
- #endif
- 
--#include "glib-compat-private.h"
- #include "gst_private.h"
-+#include "glib-compat-private.h"
- #include "gstdatetime.h"
- #include <glib.h>
- #include <math.h>
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix
deleted file mode 100644
index b78f6148e487..000000000000
--- a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/default.nix
+++ /dev/null
@@ -1,89 +0,0 @@
-{ fetchurl, fetchpatch, stdenv, autoreconfHook
-, perl, bison, flex, pkgconfig, glib, libxml2, libintl, libunwind
-}:
-
-stdenv.mkDerivation rec {
-  name = "gstreamer-0.10.36";
-
-  src = fetchurl {
-    urls =
-      [ "${meta.homepage}/src/gstreamer/${name}.tar.xz"
-        "mirror://gentoo/distfiles/${name}.tar.xz"
-      ];
-    sha256 = "1nkid1n2l3rrlmq5qrf5yy06grrkwjh3yxl5g0w58w0pih8allci";
-  };
-
-  outputs = [ "out" "dev" ];
-
-  nativeBuildInputs = [ autoreconfHook flex perl pkgconfig libintl bison glib ];
-  buildInputs = stdenv.lib.optional stdenv.isDarwin libunwind;
-  propagatedBuildInputs = [ glib libxml2 ];
-
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/flathub/com.xnview.XnRetro/raw/fec03bbe240f45aa10d7d4eea9d6f066d9b6ac9c/gstreamer-0.10.36-bison3.patch";
-      sha256 = "05aarg3yzl5jx3z5838ixv392g0r3kbsi2vfqniaxmidhnfzij2y";
-    })
-    (fetchpatch {
-      url = "https://github.com/GStreamer/common/commit/03a0e5736761a72d4ed880e8c485bbf9e4a8ea47.patch";
-      sha256 = "0rin3x01yy78ky3smmhbwlph18hhym18q4x9w6ddiqajg5lk4xhm";
-      extraPrefix = "common/";
-      stripLen = 1;
-    })
-    (fetchpatch {
-      url = "https://github.com/GStreamer/common/commit/8aadeaaa8a948d7ce62008789ab03e9aa514c2b9.patch";
-      sha256 = "0n2mqvq2al7jr2hflhz4l781i3jya5a9i725jvy508ambpgycz3x";
-      extraPrefix = "common/";
-      stripLen = 1;
-    })
-    (fetchpatch {
-      url = "https://github.com/GStreamer/common/commit/7bb2bcecda471a0d514a964365a78150f3ee5747.patch";
-      sha256 = "0famdj70m7wjvr1dpy7iywhrkqxmrshxz0rizz1bixgp42dvkhbq";
-      extraPrefix = "common/";
-      stripLen = 1;
-    })
-  ] ++
-    # See https://trac.macports.org/ticket/40783 for explanation of patch
-    stdenv.lib.optional stdenv.isDarwin ./darwin.patch;
-
-  postPatch = ''
-    sed -i -e 's/^   /\t/' docs/gst/Makefile.in docs/libs/Makefile.in docs/plugins/Makefile.in
-  '';
-
-  configureFlags = [
-    "--disable-examples"
-    "--localstatedir=/var"
-    "--disable-gtk-doc"
-    "--disable-docbook"
-  ];
-
-  doCheck = false; # fails. 2 tests crash
-
-  postInstall = ''
-    # Hm, apparently --disable-gtk-doc is ignored...
-    rm -rf $out/share/gtk-doc
-  '';
-
-  setupHook = ./setup-hook.sh;
-
-  meta = {
-    homepage = "https://gstreamer.freedesktop.org";
-
-    description = "Library for constructing graphs of media-handling components";
-
-    longDescription = ''
-      GStreamer is a library for constructing graphs of media-handling
-      components.  The applications it supports range from simple
-      Ogg/Vorbis playback, audio/video streaming to complex audio
-      (mixing) and video (non-linear editing) processing.
-
-      Applications can take advantage of advances in codec and filter
-      technology transparently.  Developers can add new codecs and
-      filters by writing a simple plugin with a clean, generic
-      interface.
-    '';
-
-    license = stdenv.lib.licenses.lgpl2Plus;
-    platforms = stdenv.lib.platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/setup-hook.sh b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/setup-hook.sh
deleted file mode 100644
index 636e20b732b4..000000000000
--- a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamer/setup-hook.sh
+++ /dev/null
@@ -1,8 +0,0 @@
-addGstreamerLibPath () {
-    if test -d "$1/lib/gstreamer-0.10"
-    then
-        export GST_PLUGIN_SYSTEM_PATH="${GST_PLUGIN_SYSTEM_PATH-}${GST_PLUGIN_SYSTEM_PATH:+:}$1/lib/gstreamer-0.10"
-    fi
-}
-
-addEnvHooks "$hostOffset" addGstreamerLibPath
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamermm/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamermm/default.nix
deleted file mode 100644
index 24197b04b73f..000000000000
--- a/nixpkgs/pkgs/development/libraries/gstreamer/legacy/gstreamermm/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ stdenv, fetchurl, glibmm, gstreamer, gst-plugins-base, libsigcxx, libxmlxx, pkgconfig }:
-
-let
-  ver_maj = "0.10";
-  ver_min = "11";
-in
-stdenv.mkDerivation {
-  name = "gstreamermm-${ver_maj}.${ver_min}";
-
-  src = fetchurl {
-    url    = "mirror://gnome/sources/gstreamermm/${ver_maj}/gstreamermm-${ver_maj}.${ver_min}.tar.xz";
-    sha256 = "12b5f377363594a69cb79f2f5cd0a8b1813ca6553680c3216e6354cfd682ebc6";
-  };
- 
-  doCheck = false; # Tests require pulseaudio in /homeless-shelter
-
-  propagatedBuildInputs = [
-    glibmm gstreamer gst-plugins-base libsigcxx libxmlxx
-  ];
-
-  nativeBuildInputs = [ pkgconfig ];
-
-  meta = with stdenv.lib; {
-    description = "C++ bindings for the GStreamer streaming multimedia library";
-    homepage = "https://www.gtkmm.org/";
-    license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ plcplc ];
-    platforms = platforms.unix;
-  };
-
-}
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix b/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
index dfb18754c839..92e8a45a4f6f 100644
--- a/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/default.nix
@@ -20,6 +20,15 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
+  patches = [
+    # To use split outputs, we need this so double prefix won't be used in the
+    # pkg-config files. Hopefully, this won't be needed on the next release,
+    # _if_
+    # https://gitlab.freedesktop.org/gstreamer/gst-rtsp-server/merge_requests/1
+    # will be merged. For the current release, this merge request won't apply.
+    ./fix_pkgconfig_includedir.patch
+  ];
+
   nativeBuildInputs = [
     meson
     ninja
diff --git a/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/fix_pkgconfig_includedir.patch b/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/fix_pkgconfig_includedir.patch
new file mode 100644
index 000000000000..d31fe19fb0fe
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/gstreamer/rtsp-server/fix_pkgconfig_includedir.patch
@@ -0,0 +1,15 @@
+diff --git i/pkgconfig/meson.build w/pkgconfig/meson.build
+index 8ed8299..594cbfe 100644
+--- i/pkgconfig/meson.build
++++ w/pkgconfig/meson.build
+@@ -2,8 +2,8 @@ pkgconf = configuration_data()
+ 
+ pkgconf.set('prefix', get_option('prefix'))
+ pkgconf.set('exec_prefix', '${prefix}')
+-pkgconf.set('libdir', '${prefix}/@0@'.format(get_option('libdir')))
+-pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir')))
++pkgconf.set('libdir', join_paths(get_option('prefix'), get_option('libdir')))
++pkgconf.set('includedir', join_paths(get_option('prefix'), get_option('includedir')))
+ pkgconf.set('GST_API_VERSION', api_version)
+ pkgconf.set('VERSION', gst_version)
+ 
diff --git a/nixpkgs/pkgs/development/libraries/gthree/default.nix b/nixpkgs/pkgs/development/libraries/gthree/default.nix
index 04d7c8d8f4d4..2da9847f3cb4 100644
--- a/nixpkgs/pkgs/development/libraries/gthree/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gthree/default.nix
@@ -3,10 +3,10 @@
 , fetchpatch
 , ninja
 , meson
-, pkgconfig
+, pkg-config
 , gobject-introspection
 , gtk-doc
-, docbook_xsl
+, docbook-xsl-nons
 , docbook_xml_dtd_43
 , glib
 , gtk3
@@ -17,7 +17,7 @@
 
 stdenv.mkDerivation rec {
   pname = "gthree";
-  version = "0.2.0";
+  version = "0.9.0";
 
   outputs = [ "out" "dev" "devdoc" ];
 
@@ -25,32 +25,42 @@ stdenv.mkDerivation rec {
     owner = "alexlarsson";
     repo = "gthree";
     rev = version;
-    sha256 = "16ap1ampnzsyhrs84b168d6889lh8sjr2j5sqv9mdbnnhy72p5cd";
+    sha256 = "09fcnjc3j21lh5fjf067wm35sb4qni4vgzing61kixnn2shy79iy";
   };
 
+  patches = [
+    # Add option for disabling examples
+    (fetchpatch {
+      url = "https://github.com/alexlarsson/gthree/commit/75f05c40aba9d5f603d8a3c490c3406c1fe06776.patch";
+      sha256 = "PBwLz4DLhC+7BtypVTFMFiF3hKAJeskU3XBKFHa3a84=";
+    })
+  ];
+
   nativeBuildInputs = [
     ninja
     meson
-    pkgconfig
+    pkg-config
     gtk-doc
-    docbook_xsl
+    docbook-xsl-nons
     docbook_xml_dtd_43
     gobject-introspection
   ];
 
   buildInputs = [
     epoxy
+    json-glib
   ];
 
   propagatedBuildInputs = [
     glib
     gtk3
     graphene
-    json-glib
   ];
 
   mesonFlags = [
     "-Dgtk_doc=${if stdenv.isDarwin then "false" else "true"}"
+    # Data for examples is useless when the example programs are not installed.
+    "-Dexamples=false"
   ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/libraries/gtk-layer-shell/default.nix b/nixpkgs/pkgs/development/libraries/gtk-layer-shell/default.nix
index c00e8035f18b..14f822432ee3 100644
--- a/nixpkgs/pkgs/development/libraries/gtk-layer-shell/default.nix
+++ b/nixpkgs/pkgs/development/libraries/gtk-layer-shell/default.nix
@@ -2,7 +2,10 @@
 , fetchFromGitHub
 , meson
 , ninja
-, pkgconfig
+, pkg-config
+, gtk-doc
+, docbook-xsl-nons
+, docbook_xml_dtd_43
 , wayland
 , gtk3
 , gobject-introspection
@@ -10,30 +13,39 @@
 
 stdenv.mkDerivation rec {
   pname = "gtk-layer-shell";
-  version = "0.1.0";
+  version = "0.2.0";
+
+  outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchFromGitHub {
     owner = "wmww";
     repo = "gtk-layer-shell";
     rev = "v${version}";
-    sha256 = "1fwvlbwp5w1zly6mksvlzbx18ikq4bh7pdj9q0k94qlj6x2zdwg8";
+    sha256 = "0kas84z44p3vz92sljbnahh43wfj69knqsy1za729j8phrlwqdmg";
   };
 
   nativeBuildInputs = [
-    meson ninja pkgconfig
+    meson
+    ninja
+    pkg-config
+    gobject-introspection
+    gtk-doc
+    docbook-xsl-nons
+    docbook_xml_dtd_43
   ];
 
   buildInputs = [
-    wayland gtk3 gobject-introspection
+    wayland
+    gtk3
   ];
 
   mesonFlags = [
-    "-Dout=${placeholder "out"}"
+    "-Ddocs=true"
   ];
 
   meta = with stdenv.lib; {
     description = "A library to create panels and other desktop components for Wayland using the Layer Shell protocol";
-    license = licenses.mit;
+    license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ eonpatapon ];
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/libraries/gtk-sharp/3.0.nix b/nixpkgs/pkgs/development/libraries/gtk-sharp/3.0.nix
index f8f1f20cc2fd..49405c655e15 100644
--- a/nixpkgs/pkgs/development/libraries/gtk-sharp/3.0.nix
+++ b/nixpkgs/pkgs/development/libraries/gtk-sharp/3.0.nix
@@ -1,4 +1,8 @@
-{ stdenv, fetchurl, pkgconfig, mono
+{ stdenv
+, fetchurl
+, fetchpatch
+, pkgconfig
+, mono
 , glib
 , pango
 , gtk3
@@ -14,29 +18,32 @@
 , monoDLLFixer
 }:
 
-stdenv.mkDerivation {
-  name = "gtk-sharp-2.99.3";
+stdenv.mkDerivation rec {
+  pname = "gtk-sharp";
+  version = "2.99.3";
 
   builder = ./builder.sh;
   src = fetchurl {
-    #"mirror://gnome/sources/gtk-sharp/2.99/gtk-sharp-2.99.3.tar.xz";
-    url = "http://ftp.gnome.org/pub/GNOME/sources/gtk-sharp/2.99/gtk-sharp-2.99.3.tar.xz";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "18n3l9zcldyvn4lwi8izd62307mkhz873039nl6awrv285qzah34";
   };
 
-  # patch bad usage of glib, which wasn't tolerated anymore
-  # prePatch = ''
-  #   for f in glib/glue/{thread,list,slist}.c; do
-  #     sed -i 's,#include <glib/.*\.h>,#include <glib.h>,g' "$f"
-  #   done
-  # '';
-
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
     mono glib pango gtk3 GConf libglade libgnomecanvas
     libgtkhtml libgnomeui libgnomeprint libgnomeprintui gtkhtml libxml2
   ];
 
+  patches = [
+    # Fixes MONO_PROFILE_ENTER_LEAVE undeclared when compiling against newer versions of mono.
+    # @see https://github.com/mono/gtk-sharp/pull/266
+    (fetchpatch {
+      name = "MONO_PROFILE_ENTER_LEAVE.patch";
+      url = "https://github.com/mono/gtk-sharp/commit/401df51bc461de93c1a78b6a7a0d5adc63cf186c.patch";
+      sha256 = "0hrkcr5a7wkixnyp60v4d6j3arsb63h54rd30lc5ajfjb3p92kcf";
+    })
+  ];
+
   dontStrip = true;
 
   inherit monoDLLFixer;
@@ -47,6 +54,5 @@ stdenv.mkDerivation {
 
   meta = {
     platforms = stdenv.lib.platforms.linux;
-    broken = true; # 2018-09-21, build has failed since 2018-04-28
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/gtk/3.x.nix b/nixpkgs/pkgs/development/libraries/gtk/3.x.nix
index aec5c4d2dedf..bf78d15d39c6 100644
--- a/nixpkgs/pkgs/development/libraries/gtk/3.x.nix
+++ b/nixpkgs/pkgs/development/libraries/gtk/3.x.nix
@@ -48,7 +48,7 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "gtk+3";
-  version = "3.24.20";
+  version = "3.24.21";
 
   outputs = [ "out" "dev" ] ++ optional withGtkDoc "devdoc";
   outputBin = "dev";
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://gnome/sources/gtk+/${stdenv.lib.versions.majorMinor version}/gtk+-${version}.tar.xz";
-    sha256 = "1wqxkd3xnqwihcawncp9mkf9bv5a5fg5i4ahm6klpl782vvnkb1d";
+    sha256 = "0llgq2adzn9p3bfq9rv2dhscmvzs35jp3glrfvy3vs1mrpknmsmf";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/gtksourceview/4.x.nix b/nixpkgs/pkgs/development/libraries/gtksourceview/4.x.nix
index 1a80a1b6fac9..565b7f782d57 100644
--- a/nixpkgs/pkgs/development/libraries/gtksourceview/4.x.nix
+++ b/nixpkgs/pkgs/development/libraries/gtksourceview/4.x.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gtksourceview";
-  version = "4.6.0";
+  version = "4.6.1";
 
   src = fetchurl {
-    url = "mirror://gnome/sources/gtksourceview/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "11csdnb5xj1gkn1shynp3jdsfhhi7ks3apgmavfan0p6n85f64sc";
+    url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+    sha256 = "0x7q9lwgrc4kkciy7vgwd80v2ji7plyqiqbvkvx2yqarmfkqgx33";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/harfbuzz/default.nix b/nixpkgs/pkgs/development/libraries/harfbuzz/default.nix
index c2a924c7e023..8110f13d14ca 100644
--- a/nixpkgs/pkgs/development/libraries/harfbuzz/default.nix
+++ b/nixpkgs/pkgs/development/libraries/harfbuzz/default.nix
@@ -1,27 +1,34 @@
-{ stdenv, fetchurl, pkgconfig, glib, freetype, cairo, libintl
+{ stdenv, fetchFromGitHub, pkgconfig, glib, freetype, cairo, libintl
+, meson, ninja
+, gobject-introspection
 , icu, graphite2, harfbuzz # The icu variant uses and propagates the non-icu one.
 , ApplicationServices, CoreText
 , withCoreText ? false
 , withIcu ? false # recommended by upstream as default, but most don't needed and it's big
 , withGraphite2 ? true # it is small and major distros do include it
-, python
+, python3
+, gtk-doc, docbook-xsl-nons, docbook_xml_dtd_43
 }:
 
 let
-  version = "2.6.4";
+  version = "2.7.1";
   inherit (stdenv.lib) optional optionals optionalString;
+  mesonFeatureFlag = opt: b:
+    "-D${opt}=${if b then "enabled" else "disabled"}";
 in
 
 stdenv.mkDerivation {
   name = "harfbuzz${optionalString withIcu "-icu"}-${version}";
 
-  src = fetchurl {
-    url = "https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${version}.tar.xz";
-    sha256 = "04iwq13w6zkdhljmsxrzgg4fyh04qnwfn57rgrl9kmijc7cvh4wl";
+  src = fetchFromGitHub {
+    owner  = "harfbuzz";
+    repo   = "harfbuzz";
+    rev    = version;
+    sha256 = "172jmwp666xbs6yy1pc2495gnkz8xw11b8zkz3j19jxlvvp4mxcs";
   };
 
   postPatch = ''
-    patchShebangs src/gen-def.py
+    patchShebangs src/*.py
     patchShebangs test
   '' + stdenv.lib.optionalString stdenv.isDarwin ''
     # ApplicationServices.framework headers have cast-align warnings.
@@ -29,17 +36,26 @@ stdenv.mkDerivation {
       --replace '#pragma GCC diagnostic error   "-Wcast-align"' ""
   '';
 
-  outputs = [ "out" "dev" ];
+  outputs = [ "out" "dev" "devdoc" ];
   outputBin = "dev";
 
-  configureFlags = [
-    # not auto-detected by default
-    "--with-graphite2=${if withGraphite2 then "yes" else "no"}"
-    "--with-icu=${if withIcu then "yes" else "no"}"
-  ]
-    ++ stdenv.lib.optional withCoreText "--with-coretext=yes";
+  mesonFlags = [
+    (mesonFeatureFlag "graphite" withGraphite2)
+    (mesonFeatureFlag "icu" withIcu)
+    (mesonFeatureFlag "coretext" withCoreText)
+  ];
 
-  nativeBuildInputs = [ pkgconfig libintl ];
+  nativeBuildInputs = [
+    meson
+    ninja
+    gobject-introspection
+    libintl
+    pkgconfig
+    python3
+    gtk-doc
+    docbook-xsl-nons
+    docbook_xml_dtd_43
+  ];
 
   buildInputs = [ glib freetype cairo ] # recommended by upstream
     ++ stdenv.lib.optionals withCoreText [ ApplicationServices CoreText ];
@@ -48,11 +64,10 @@ stdenv.mkDerivation {
     ++ optional withGraphite2 graphite2
     ++ optionals withIcu [ icu harfbuzz ];
 
-  checkInputs = [ python ];
-  doInstallCheck = false; # fails, probably a bug
+  doCheck = true;
 
   # Slightly hacky; some pkgs expect them in a single directory.
-  postInstall = optionalString withIcu ''
+  postFixup = optionalString withIcu ''
     rm "$out"/lib/libharfbuzz.* "$dev/lib/pkgconfig/harfbuzz.pc"
     ln -s {'${harfbuzz.out}',"$out"}/lib/libharfbuzz.la
     ln -s {'${harfbuzz.dev}',"$dev"}/lib/pkgconfig/harfbuzz.pc
@@ -64,12 +79,9 @@ stdenv.mkDerivation {
 
   meta = with stdenv.lib; {
     description = "An OpenType text shaping engine";
-    homepage = "http://www.freedesktop.org/wiki/Software/HarfBuzz";
-    downloadPage = "https://www.freedesktop.org/software/harfbuzz/release/";
+    homepage = "https://harfbuzz.github.io/";
     maintainers = [ maintainers.eelco ];
     license = licenses.mit;
     platforms = with platforms; linux ++ darwin;
-    inherit version;
-    updateWalker = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/herqq/default.nix b/nixpkgs/pkgs/development/libraries/herqq/default.nix
index d3433246b780..8dc0df3a9f2f 100644
--- a/nixpkgs/pkgs/development/libraries/herqq/default.nix
+++ b/nixpkgs/pkgs/development/libraries/herqq/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, qt5, unzip, fetchFromGitHub, qtmultimedia }:
+{ stdenv, unzip, fetchFromGitHub, qmake, qtmultimedia, qtbase }:
 
 stdenv.mkDerivation rec {
   version = "2.1.0";
   pname = "herqq";
 
-  nativeBuildInputs = [ qt5.qmake ];
-  buildInputs = [ qt5.qtbase unzip qtmultimedia ];
+  nativeBuildInputs = [ qmake ];
+  buildInputs = [ qtbase unzip qtmultimedia ];
   preConfigure = "cd herqq";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/development/libraries/hiredis/default.nix b/nixpkgs/pkgs/development/libraries/hiredis/default.nix
index 4055cb8eb71e..2f7fe184845d 100644
--- a/nixpkgs/pkgs/development/libraries/hiredis/default.nix
+++ b/nixpkgs/pkgs/development/libraries/hiredis/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hiredis";
-  version = "0.14.1";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "redis";
     repo = "hiredis";
     rev = "v${version}";
-    sha256 = "1r93ssniiv610pj6d78i1cngism0cdv2k8cmzy7jf9klf76jiwfq";
+    sha256 = "01xnynm9d56a0alb5wxbfayakybm5pnr12icj9mqkn4xxihbnbgr";
   };
 
   PREFIX = "\${out}";
diff --git a/nixpkgs/pkgs/development/libraries/hivex/default.nix b/nixpkgs/pkgs/development/libraries/hivex/default.nix
index 113a49138e15..d0afea119df0 100644
--- a/nixpkgs/pkgs/development/libraries/hivex/default.nix
+++ b/nixpkgs/pkgs/development/libraries/hivex/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "hivex";
-  version = "1.3.18";
+  version = "1.3.19";
 
   src = fetchurl {
     url = "http://libguestfs.org/download/hivex/${pname}-${version}.tar.gz";
-    sha256 = "0ibl186l6rd9qj4rqccfwbg1nnx6z07vspkhk656x6zav67ph7la";
+    sha256 = "0qppahpf7jq950nf8ial47h90nyqgnsffsj3zgdjjwkn958wq0ji";
   };
 
   patches = [ ./hivex-syms.patch ];
diff --git a/nixpkgs/pkgs/development/libraries/hpx/default.nix b/nixpkgs/pkgs/development/libraries/hpx/default.nix
index 3ced1c121c65..b6d6b6887525 100644
--- a/nixpkgs/pkgs/development/libraries/hpx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/hpx/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hpx";
-  version = "1.4.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "STEllAR-GROUP";
     repo = "hpx";
     rev = version;
-    sha256 = "0yjsrb11hlfwbiw0xi71ami9nrvz6jwj160h9qgl50icd79ngn46";
+    sha256 = "10hgjavhvn33y3k5j3l1326x13bxffghg2arxjrh7i7zd3qprfv5";
   };
 
   buildInputs = [ boost hwloc gperftools ];
diff --git a/nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix b/nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix
index a330691c6a58..2cdc30109d90 100644
--- a/nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix
+++ b/nixpkgs/pkgs/development/libraries/hunspell/dictionaries.nix
@@ -754,4 +754,33 @@ in rec {
     readmeFile = "README_sk.txt";
     license = with stdenv.lib.licenses; [ gpl2 lgpl21 mpl11 ];
   };
+
+  /* DANISH */
+
+  da_DK = da-dk;
+  da-dk = mkDict rec {
+    name = "hunspell-dict-da-dk-${version}";
+    version = "2.5.137";
+
+    src = fetchurl {
+      url = "https://stavekontrolden.dk/dictionaries/da_DK/da_DK-${version}.oxt";
+      sha256 = "16y0smkg1mq0133r1fbw5ak6s2xw39281knk5ivhanakayq789qx";
+    };
+
+    shortName = "da-dk";
+    shortDescription = "Danish (Danmark)";
+    dictFileName = "da_DK";
+    readmeFile = "README_da_DK.txt";
+    nativeBuildInputs = [ unzip ];
+    unpackCmd = ''
+      unzip $src ${dictFileName}.dic ${dictFileName}.aff ${readmeFile} -d ${dictFileName}
+    '';
+
+    meta = with stdenv.lib; {
+      description = "Hunspell dictionary for Danish (Denmark) from Stavekontrolden";
+      homepage = "https://github.com/jeppebundsgaard/stavekontrolden";
+      license = with stdenv.lib.licenses; [ gpl2Only lgpl21Only mpl11 ];
+      maintainers = with maintainers; [ louisdk1 ];
+    };
+  };
 }
diff --git a/nixpkgs/pkgs/development/libraries/igraph/default.nix b/nixpkgs/pkgs/development/libraries/igraph/default.nix
index fcb5e7918d96..6a55359e168b 100644
--- a/nixpkgs/pkgs/development/libraries/igraph/default.nix
+++ b/nixpkgs/pkgs/development/libraries/igraph/default.nix
@@ -4,28 +4,34 @@
 
 stdenv.mkDerivation rec {
   pname = "igraph";
-  version = "0.7.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "igraph";
     repo = pname;
     rev = version;
-    sha256 = "1wsy0r511gk069il6iqjs27q8cjvqz20gf0a7inybx1bw84845z8";
+    sha256 = "015yh9s19lmxm7l1ld8adlsqh1lrmzicl801saixdwl9w05hfva4";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
   buildInputs = [ flex yacc zlib libxml2 ];
 
-  # This file is normally generated by igraph's bootstrap.sh, but we can do it
-  # ourselves. ~ C.
+  # Normally, igraph wants us to call bootstrap.sh, which will call
+  # tools/getversion.sh. Instead, we're going to put the version directly
+  # where igraph wants, and then let autoreconfHook do the rest of the
+  # bootstrap. ~ C.
   postPatch = ''
-    echo "${version}" > VERSION
+    echo "${version}" > IGRAPH_VERSION
   '';
 
+  doCheck = true;
+
   meta = {
     description = "The network analysis package";
     homepage = "https://igraph.org/";
     license = lib.licenses.gpl2;
+    # NB: Known to fail tests on aarch64.
+    platforms = [ "x86_64-linux" ] ++ lib.platforms.darwin;
     maintainers = [ lib.maintainers.MostAwesomeDude ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/ilmbase/cross.patch b/nixpkgs/pkgs/development/libraries/ilmbase/cross.patch
deleted file mode 100644
index 207a440a0d85..000000000000
--- a/nixpkgs/pkgs/development/libraries/ilmbase/cross.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From: Helmut Grohne <>
-Subject: compile build tools with the build architecture compiler
-
-Patch-Source: https://github.com/openexr/openexr/issues/221
-
-Index: ilmbase-2.2.0/configure.ac
-===================================================================
---- ilmbase-2.2.0.orig/configure.ac
-+++ ilmbase-2.2.0/configure.ac
-@@ -28,6 +28,7 @@
- AC_PROG_LN_S
- AC_PROG_LIBTOOL
- AC_PROG_MAKE_SET
-+AX_PROG_CXX_FOR_BUILD
- 
- dnl
- dnl PKGCONFIG preparations
-Index: ilmbase-2.2.0/Half/Makefile.am
-===================================================================
---- ilmbase-2.2.0.orig/Half/Makefile.am
-+++ ilmbase-2.2.0/Half/Makefile.am
-@@ -17,9 +17,11 @@
- 
- CLEANFILES = eLut eLut.h toFloat toFloat.h
- 
--eLut_SOURCES = eLut.cpp
-+eLut$(EXEEXT): eLut.cpp
-+	$(CXX_FOR_BUILD) $(CXXFLAGS_FOR_BUILD) $< -o $@
- 
--toFloat_SOURCES = toFloat.cpp
-+toFloat$(EXEEXT): toFloat.cpp
-+	$(CXX_FOR_BUILD) $(CXXFLAGS_FOR_BUILD) $< -o $@
- 
- eLut.h:	eLut
- 	./eLut > eLut.h
diff --git a/nixpkgs/pkgs/development/libraries/ilmbase/default.nix b/nixpkgs/pkgs/development/libraries/ilmbase/default.nix
index 9d2479c2e0b3..68bd677cf777 100644
--- a/nixpkgs/pkgs/development/libraries/ilmbase/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ilmbase/default.nix
@@ -1,7 +1,7 @@
 { stdenv
+, lib
 , buildPackages
 , cmake
-, libtool
 , openexr
 }:
 
@@ -11,22 +11,23 @@ stdenv.mkDerivation rec {
 
   # the project no longer provides separate tarballs. We may even want to merge
   # the ilmbase package into openexr in the future.
-  src = openexr.src;
-
-  sourceRoot = "source/IlmBase";
+  inherit (openexr) src patches;
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ cmake libtool ];
+  nativeBuildInputs = [ cmake ];
   depsBuildBuild = [ buildPackages.stdenv.cc ];
 
-  patches = [ ./cross.patch ];
-
   # fails 1 out of 1 tests with
   # "lt-ImathTest: testBoxAlgo.cpp:892: void {anonymous}::boxMatrixTransform(): Assertion `b21 == b2' failed"
   # at least on i686. spooky!
   doCheck = stdenv.isx86_64;
 
+  preConfigure = ''
+    # Need to cd after patches for openexr patches to apply.
+    cd IlmBase
+  '';
+
   meta = with stdenv.lib; {
     description = " A library for 2D/3D vectors and matrices and other mathematical objects, functions and data types for computer graphics";
     homepage = "https://www.openexr.com/";
diff --git a/nixpkgs/pkgs/development/libraries/imlib2/default.nix b/nixpkgs/pkgs/development/libraries/imlib2/default.nix
index 36b1063531e4..458b3d29d520 100644
--- a/nixpkgs/pkgs/development/libraries/imlib2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/imlib2/default.nix
@@ -12,11 +12,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "imlib2";
-  version = "1.6.1";
+  version = "1.7.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/enlightenment/${pname}-${version}.tar.bz2";
-    sha256 = "0v8n3dswx7rxqfd0q03xwc7j2w1mv8lv18rdxv487a1xw5vklfad";
+    sha256 = "0zdk4afdrrr1539f2q15zja19j4wwfmpswzws2ffgflcnhywlxhr";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/impy/default.nix b/nixpkgs/pkgs/development/libraries/impy/default.nix
new file mode 100644
index 000000000000..c865b25c0009
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/impy/default.nix
@@ -0,0 +1,44 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, libpng
+, zlib
+, giflib
+, libjpeg
+, SDL2
+}:
+
+stdenv.mkDerivation rec {
+  pname = "impy";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    owner = "bcampbell";
+    repo = "impy";
+    rev = "v${version}";
+    sha256 = "1h45xjms56radhknspyx17a12dpnm7xgqm1x1chy42aw5ic8b5qf";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    libpng
+    zlib
+    giflib
+    libjpeg
+    SDL2
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A simple library for loading/saving images and animations, written in C";
+    homepage = "https://github.com/bcampbell/impy";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix b/nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix
index 23b26c9a8908..89305baaee80 100644
--- a/nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/intel-gmmlib/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-gmmlib";
-  version = "20.1.1";
+  version = "20.2.5";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "gmmlib";
     rev    = "${pname}-${version}";
-    sha256 = "0k130yiq8n34ppddpgl7kwq5w2y7n49jxiyk7x52y773m97xd6y1";
+    sha256 = "0jg3kc74iqmbclx77a6dp4h85va8wi210x4zf5jypiq35c57r8hh";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -20,6 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     description = "Intel Graphics Memory Management Library";
     platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ jfrankenau ];
+    maintainers = with maintainers; [ danieldk ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/intel-media-driver/default.nix b/nixpkgs/pkgs/development/libraries/intel-media-driver/default.nix
index 366e34ddf4d9..c43787c29dd0 100644
--- a/nixpkgs/pkgs/development/libraries/intel-media-driver/default.nix
+++ b/nixpkgs/pkgs/development/libraries/intel-media-driver/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-media-driver";
-  version = "20.1.1";
+  version = "20.2.0";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "media-driver";
     rev    = "intel-media-${version}";
-    sha256 = "1mww20c9r7a57njqa2835ayjvk46lrv2yks9a2y8i0s5qzdi8m1i";
+    sha256 = "02a9wm7cz0nkpyfwic4a0dfm9bx1d2sybgh5rv0c618pl41mla33";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/intel-media-sdk/default.nix b/nixpkgs/pkgs/development/libraries/intel-media-sdk/default.nix
index a49320fef498..83d901780c57 100644
--- a/nixpkgs/pkgs/development/libraries/intel-media-sdk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/intel-media-sdk/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-media-sdk";
-  version = "20.1.1";
+  version = "20.2.1";
 
   src = fetchurl {
     url = "https://github.com/Intel-Media-SDK/MediaSDK/archive/intel-mediasdk-${version}.tar.gz";
-    sha256 = "1p13b4abslq31pbgqf0bzs2ixns85yfdsm94326h2vcg0q7hqc24";
+    sha256 = "0m3ipfdknpgrdwiywlinl4sfkfrvyv7wmq1j83pmbr54z067sgg1";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/nixpkgs/pkgs/development/libraries/itk/4.x.nix b/nixpkgs/pkgs/development/libraries/itk/4.x.nix
index cd8e70a99767..112b77650d29 100644
--- a/nixpkgs/pkgs/development/libraries/itk/4.x.nix
+++ b/nixpkgs/pkgs/development/libraries/itk/4.x.nix
@@ -1,11 +1,14 @@
-{ stdenv, fetchurl, cmake, libX11, libuuid, xz, vtk_7 }:
+{ stdenv, fetchFromGitHub, cmake, libX11, libuuid, xz, vtk_7, Cocoa }:
 
 stdenv.mkDerivation rec {
-  name = "itk-4.13.2";
+  pname = "itk";
+  version = "4.13.3";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/itk/InsightToolkit-4.13.2.tar.xz";
-    sha256 = "19cgfpd63gqrvc3m27m394gy2d7w79g5y6lvznb5qqr49lihbgns";
+  src = fetchFromGitHub {
+    owner = "InsightSoftwareConsortium";
+    repo = "ITK";
+    rev = "v${version}";
+    sha256 = "067vkh39jxcvyvn69qjh4vi3wa7vdvm9m6qsg3jmnmm7gzw0kjlm";
   };
 
   cmakeFlags = [
@@ -22,11 +25,11 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   nativeBuildInputs = [ cmake xz ];
-  buildInputs = [ libX11 libuuid vtk_7 ];
+  buildInputs = [ libX11 libuuid vtk_7 ] ++ stdenv.lib.optionals stdenv.isDarwin [ Cocoa ];
 
   meta = {
     description = "Insight Segmentation and Registration Toolkit";
-    homepage = "http://www.itk.org/";
+    homepage = "https://www.itk.org/";
     license = stdenv.lib.licenses.asl20;
     maintainers = with stdenv.lib.maintainers; [viric];
     platforms = with stdenv.lib.platforms; linux ++ darwin;
diff --git a/nixpkgs/pkgs/development/libraries/itk/default.nix b/nixpkgs/pkgs/development/libraries/itk/default.nix
index 84dedfa0b3b6..1288242faf2c 100644
--- a/nixpkgs/pkgs/development/libraries/itk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/itk/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "itk";
-  version = "5.1.0";
+  version = "5.1.1";
 
   src = fetchFromGitHub {
     owner = "InsightSoftwareConsortium";
     repo = "ITK";
     rev = "v${version}";
-    sha256 = "0rvkp00xj1js60021jv2ydyl74wvbyb205gm9d7hf8gy2q456hgl";
+    sha256 = "1z7rmqrhgl7hfb3d0077kvp8vpi05r2zk3qyqzmv7bzbal5sqqhv";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/jabcode/default.nix b/nixpkgs/pkgs/development/libraries/jabcode/default.nix
new file mode 100644
index 000000000000..c875e4a39435
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/jabcode/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, fetchFromGitHub
+, lib
+, subproject ? "library" # one of "library", "reader" or  "writer"
+, zlib, libpng, libtiff
+, jabcode 
+}:
+let
+  subdir = lib.getAttr subproject {
+    "library" = "jabcode";
+    "reader" = "jabcodeReader";
+    "writer" = "jabcodeWriter";
+  };
+in stdenv.mkDerivation rec {
+  pname = "jabcode-${subproject}";
+  version = "git-2020-05-13";
+  src = fetchFromGitHub {
+    repo = "jabcode";
+    owner = "jabcode";
+    rev = "a7c25d4f248078f257b014e31c791bfcfcd083e1";
+    sha256 = "1c4cv9b0d7r4bxzkwzdv9h651ziq822iya6fbyizm57n1nzdkk4s";
+  };
+
+  nativeBuildInputs =
+    [ zlib libpng libtiff ]
+    ++ lib.optionals (subproject != "library") [ jabcode ];
+
+  preConfigure = "cd src/${subdir}";
+
+  installPhase = if subproject == "library" then ''
+    mkdir -p $out/lib
+    cp build/* $out/lib
+  '' else ''
+    mkdir -p $out/bin
+    cp -RT bin $out/bin
+  '';
+
+  meta = with lib; {
+    description = "A high-capacity 2D color bar code (${subproject})";
+    longDescription = "JAB Code (Just Another Bar Code) is a high-capacity 2D color bar code, which can encode more data than traditional black/white (QR) codes. This is the ${subproject} part.";
+    homepage = "https://jabcode.org/";
+    license = licenses.lgpl21;
+    maintainers = [ maintainers.xaverdh ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/jasper/default.nix b/nixpkgs/pkgs/development/libraries/jasper/default.nix
deleted file mode 100644
index cd7b1cf4fd10..000000000000
--- a/nixpkgs/pkgs/development/libraries/jasper/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{ stdenv, fetchFromGitHub, fetchpatch, libjpeg, cmake }:
-
-stdenv.mkDerivation rec {
-  pname = "jasper";
-  version = "2.0.16";
-
-  src = fetchFromGitHub {
-    repo = "jasper";
-    owner = "mdadams";
-    rev = "version-${version}";
-    sha256 = "05l75yd1zsxwv25ykwwwjs8961szv7iywf16nc6vc6qpby27ckv6";
-  };
-
-  patches = [
-    (fetchpatch {
-      name = "CVE-2018-9055.patch";
-      url = "http://paste.opensuse.org/view/raw/330751ce";
-      sha256 = "0m798m6c4v9yyhql7x684j5kppcm6884n1rrb9ljz8p9aqq2jqnm";
-    })
-  ];
-
-
-  # newer reconf to recognize a multiout flag
-  nativeBuildInputs = [ cmake ];
-  propagatedBuildInputs = [ libjpeg ];
-
-  configureFlags = [ "--enable-shared" ];
-
-  outputs = [ "bin" "dev" "out" "man" ];
-
-  enableParallelBuilding = true;
-
-  doCheck = false; # fails
-
-  postInstall = ''
-    moveToOutput bin "$bin"
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = "https://www.ece.uvic.ca/~frodo/jasper/";
-    description = "JPEG2000 Library";
-    platforms = platforms.unix;
-    license = licenses.jasper;
-    maintainers = with maintainers; [ pSub ];
-    knownVulnerabilities = [
-      "Numerous CVE unsolved upstream"
-      "See: https://github.com/NixOS/nixpkgs/pull/57681#issuecomment-475857499"
-      "See: https://github.com/mdadams/jasper/issues/208"
-    ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/java/commons/lang/default.nix b/nixpkgs/pkgs/development/libraries/java/commons/lang/default.nix
index 96d2a76df018..bd0f7c273e79 100644
--- a/nixpkgs/pkgs/development/libraries/java/commons/lang/default.nix
+++ b/nixpkgs/pkgs/development/libraries/java/commons/lang/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "3.10";
+  version = "3.11";
   pname = "commons-lang";
 
   src = fetchurl {
     url    = "mirror://apache/commons/lang/binaries/commons-lang3-${version}-bin.tar.gz";
-    sha256 = "144057jrx1jral6dnnb039h3k8rnrx0nj3ii428s725jfhazg68f";
+    sha256 = "08w7zg9v48rlaq0n17dnph8jydz9srh1pl3ffs3xdfsg9a7axjm4";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/java/dbus-java/default.nix b/nixpkgs/pkgs/development/libraries/java/dbus-java/default.nix
index 5e5741516508..0133138b4784 100644
--- a/nixpkgs/pkgs/development/libraries/java/dbus-java/default.nix
+++ b/nixpkgs/pkgs/development/libraries/java/dbus-java/default.nix
@@ -1,5 +1,6 @@
-{stdenv, fetchurl, gettext, jdk, libmatthew_java}:
+{stdenv, fetchurl, gettext, jdk8, libmatthew_java}:
 
+let jdk = jdk8; in
 stdenv.mkDerivation {
   name = "dbus-java-2.7";
   src = fetchurl {
diff --git a/nixpkgs/pkgs/development/libraries/java/hsqldb/default.nix b/nixpkgs/pkgs/development/libraries/java/hsqldb/default.nix
index d9139ec1d823..88f32866b0d0 100644
--- a/nixpkgs/pkgs/development/libraries/java/hsqldb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/java/hsqldb/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "hsqldb";
-  version = "2.5.0";
+  version = "2.5.1";
   underscoreMajMin = stdenv.lib.strings.replaceChars ["."] ["_"] (stdenv.lib.versions.majorMinor version);
 
   src = fetchurl {
     url = "mirror://sourceforge/project/hsqldb/hsqldb/hsqldb_${underscoreMajMin}/hsqldb-${version}.zip";
-    sha256 = "0s64w7qq5vayrzcmdhrdfmd6iqqv6x6fpiq9lpy2gva3dckv3q6j";
+    sha256 = "0yd9px85y036bp3q1assj3fgaykxrwnhnc7cbjgic39cykfy5hrg";
   };
 
   nativeBuildInputs = [ unzip makeWrapper ];
diff --git a/nixpkgs/pkgs/development/libraries/java/jzmq/default.nix b/nixpkgs/pkgs/development/libraries/java/jzmq/default.nix
deleted file mode 100644
index 5bc0f15b205d..000000000000
--- a/nixpkgs/pkgs/development/libraries/java/jzmq/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, zeromq3, jdk }:
-
-stdenv.mkDerivation rec {
-  pname = "jzmq";
-  version = "3.1.0";
-
-  src = fetchFromGitHub {
-    owner = "zeromq";
-    repo = "jzmq";
-    rev = "v${version}";
-    sha256 = "1wlzs604mgmqmrgpk4pljx2nrlxzdfi3r8k59qlm90fx8qkqkc63";
-  };
-
-  nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  buildInputs = [ zeromq3 jdk ];
-
-  preConfigure = ''
-    ${if stdenv.hostPlatform.system == "x86_64-darwin" then
-      '' sed -i -e 's~/Headers~/include~' -e 's~_JNI_INC_SUBDIRS=\".*\"~_JNI_INC_SUBDIRS=\"darwin\"~' configure
-      '' else ""}
-  '';
-
-  meta = {
-    homepage = "http://www.zeromq.org";
-    description = "Java bindings for ZeroMQ";
-    platforms = stdenv.lib.platforms.unix;
-    license = stdenv.lib.licenses.lgpl3;
-    maintainers = [ stdenv.lib.maintainers.vizanto ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/java/lombok/default.nix b/nixpkgs/pkgs/development/libraries/java/lombok/default.nix
index f48c4821d923..5928d99b6c24 100644
--- a/nixpkgs/pkgs/development/libraries/java/lombok/default.nix
+++ b/nixpkgs/pkgs/development/libraries/java/lombok/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "lombok-1.18.10";
+  name = "lombok-1.18.12";
 
   src = fetchurl {
     url = "https://projectlombok.org/downloads/${name}.jar";
-    sha256 = "1ymjwxg01dq8qq89hx23yvk5h46hwfb8ihbqbvabmz1vh9afjdi8";
+    sha256 = "01jl6i5wzjxyk36fcq6ji90x9h143gvnwhv86cbkqaxhxh41af29";
   };
 
   buildCommand = ''
diff --git a/nixpkgs/pkgs/development/libraries/jbig2dec/default.nix b/nixpkgs/pkgs/development/libraries/jbig2dec/default.nix
index 22d38a080cab..a6eb56423954 100644
--- a/nixpkgs/pkgs/development/libraries/jbig2dec/default.nix
+++ b/nixpkgs/pkgs/development/libraries/jbig2dec/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     patchShebangs test_jbig2dec.py
   '';
 
-  buildInputs = [ autoreconfHook ];
+  nativeBuildInputs = [ autoreconfHook ];
 
   checkInputs = [ python3 ];
   doCheck = true;
diff --git a/nixpkgs/pkgs/development/libraries/json-c/default.nix b/nixpkgs/pkgs/development/libraries/json-c/default.nix
index 81ebc7baeb06..164f7c44ba9d 100644
--- a/nixpkgs/pkgs/development/libraries/json-c/default.nix
+++ b/nixpkgs/pkgs/development/libraries/json-c/default.nix
@@ -1,21 +1,31 @@
-{ stdenv, fetchurl, autoconf }:
+{ stdenv, fetchurl, fetchpatch, cmake }:
 
 stdenv.mkDerivation rec {
-  name = "json-c-0.13.1";
+  name = "json-c-0.14";
   src = fetchurl {
     url    = "https://s3.amazonaws.com/json-c_releases/releases/${name}-nodoc.tar.gz";
-    sha256 = "0ch1v18wk703bpbyzj7h1mkwvsw4rw4qdwvgykscypvqq10678ll";
+    sha256 = "1yia8417qljmczs9w3rn4c4i2p2iywq098pgrj11s81599j4x4cr";
   };
 
+  patches = [
+    # https://nvd.nist.gov/vuln/detail/CVE-2020-12762
+    (fetchpatch {
+      name = "CVE-2020-12762.patch";
+      url = "https://github.com/json-c/json-c/commit/5d6fa331418d49f1bd488553fd1cfa9ab023fabb.patch";
+      sha256 = "0aar7kgbycqxnhh0lrr61adfbb903nbapalhs5i6h8anxwy1ylcm";
+    })
+  ];
+
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ autoconf ];  # for autoheader
+  nativeBuildInputs = [ cmake ];
 
   meta = with stdenv.lib; {
     description = "A JSON implementation in C";
     homepage    = "https://github.com/json-c/json-c/wiki";
     maintainers = with maintainers; [ lovek323 ];
     platforms   = platforms.unix;
+    license = licenses.mit;
 
     longDescription = ''
       JSON-C implements a reference counting object model that allows you to
diff --git a/nixpkgs/pkgs/development/libraries/jsoncpp/default.nix b/nixpkgs/pkgs/development/libraries/jsoncpp/default.nix
index 155103af3c4e..8635c1fb40d2 100644
--- a/nixpkgs/pkgs/development/libraries/jsoncpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/jsoncpp/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, python, fetchpatch }:
+{ stdenv, fetchFromGitHub, cmake, python, validatePkgConfig, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "jsoncpp";
@@ -28,10 +28,16 @@ stdenv.mkDerivation rec {
     export LD_LIBRARY_PATH="`pwd`/src/lib_json''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
   '';
 
-  nativeBuildInputs = [ cmake python ];
+  nativeBuildInputs = [ cmake python validatePkgConfig ];
 
-  # fix inverted sense in isAnyCharRequiredQuoting on arm. See: https://github.com/open-source-parsers/jsoncpp/pull/1120
-  patches = stdenv.lib.optionals (stdenv.isAarch64 || stdenv.isAarch32) [
+  patches = [
+    # Fix generation of pkg-config file (https://github.com/open-source-parsers/jsoncpp/pull/1199)
+    (fetchpatch {
+      url = "https://github.com/open-source-parsers/jsoncpp/commit/b05a21342a646a986b11c28ba6b19665756d21d2.patch";
+      sha256 = "0dn4cvvkcp9mnxbzyaqb49z6bv5yqsx1wlf1lyki1n2rni2hn63p";
+    })
+  ] ++ stdenv.lib.optionals (stdenv.isAarch64 || stdenv.isAarch32) [
+    # fix inverted sense in isAnyCharRequiredQuoting on arm. See: https://github.com/open-source-parsers/jsoncpp/pull/1120
     (fetchpatch {
       url = "https://github.com/open-source-parsers/jsoncpp/commit/9093358efae9e5981aa60013487fc7215f040a59.patch";
       sha256 = "1wiqp70sck2md14sfc0zdkblqk9750cl55ykf9d6b9vs1ifzzzq5";
diff --git a/nixpkgs/pkgs/development/libraries/jxrlib/default.nix b/nixpkgs/pkgs/development/libraries/jxrlib/default.nix
index e119c75ff8dd..f0f5b9d77934 100644
--- a/nixpkgs/pkgs/development/libraries/jxrlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/jxrlib/default.nix
@@ -13,6 +13,12 @@ stdenv.mkDerivation rec {
     sha256 = "0rk3hbh00nw0wgbfbqk1szrlfg3yq7w6ar16napww3nrlm9cj65w";
   };
 
+  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+    substituteInPlace Makefile \
+      --replace '-shared' '-dynamiclib -undefined dynamic_lookup' \
+      --replace '.so' '.dylib'
+  '';
+
   nativeBuildInputs = [ python ];
 
   makeFlags = [ "DIR_INSTALL=$(out)" "SHARED=1" ];
@@ -21,7 +27,7 @@ stdenv.mkDerivation rec {
     description = "Implementation of the JPEG XR image codec standard";
     homepage = "https://jxrlib.codeplex.com";
     license = licenses.bsd2;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ romildo ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/default.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/default.nix
index 1db37bc78790..02e25692ef16 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/default.nix
@@ -83,7 +83,7 @@ let
 
           in mkDerivation (args // {
             name = "${name}-${version}";
-            inherit meta outputs setupHook src;
+            inherit meta outputs setupHook src version;
           });
 
       };
@@ -112,6 +112,7 @@ let
       kitemmodels = callPackage ./kitemmodels.nix {};
       kitemviews = callPackage ./kitemviews.nix {};
       kplotting = callPackage ./kplotting.nix {};
+      kquickcharts = callPackage ./kquickcharts.nix {};
       kwayland = callPackage ./kwayland.nix {};
       kwidgetsaddons = callPackage ./kwidgetsaddons.nix {};
       kwindowsystem = callPackage ./kwindowsystem {};
@@ -146,10 +147,11 @@ let
       kbookmarks = callPackage ./kbookmarks.nix {};
       kcmutils = callPackage ./kcmutils {};
       kconfigwidgets = callPackage ./kconfigwidgets {};
+      kdav = callPackage ./kdav.nix {};
       kdeclarative = callPackage ./kdeclarative.nix {};
       kded = callPackage ./kded.nix {};
       kdesignerplugin = callPackage ./kdesignerplugin.nix {};
-      kdesu = callPackage ./kdesu.nix {};
+      kdesu = callPackage ./kdesu {};
       kdewebkit = callPackage ./kdewebkit.nix {};
       kemoticons = callPackage ./kemoticons.nix {};
       kglobalaccel = callPackage ./kglobalaccel.nix {};
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix
index 3a3f066ad33b..645d05afc2be 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/default.nix
@@ -1,9 +1,11 @@
-{ mkDerivation, lib, copyPathsToStore, cmake, pkgconfig }:
+{ mkDerivation, lib, cmake, pkgconfig }:
 
 mkDerivation {
   name = "extra-cmake-modules";
 
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./nix-lib-path.patch
+  ];
 
   outputs = [ "out" ];  # this package has no runtime components
 
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/series b/nixpkgs/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/series
deleted file mode 100644
index b4569e50a5f7..000000000000
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/extra-cmake-modules/series
+++ /dev/null
@@ -1 +0,0 @@
-nix-lib-path.patch
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh b/nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh
index b7e6d7814711..839b2eb466d5 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/frameworks/5.68/ )
+WGET_ARGS=(https://download.kde.org/stable/frameworks/5.73/)
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kauth/default.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kauth/default.nix
index c94c8b91ecd2..0a513d6eed94 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kauth/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kauth/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore, propagate,
+  mkDerivation, lib, propagate,
   extra-cmake-modules, kcoreaddons, polkit-qt, qttools
 }:
 
@@ -9,7 +9,9 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ polkit-qt qttools ];
   propagatedBuildInputs = [ kcoreaddons ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./cmake-install-paths.patch
+  ];
   # library stores reference to plugin path,
   # separating $out from $bin would create a reference cycle
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kauth/series b/nixpkgs/pkgs/development/libraries/kde-frameworks/kauth/series
deleted file mode 100644
index d2689425c387..000000000000
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kauth/series
+++ /dev/null
@@ -1 +0,0 @@
-cmake-install-paths.patch
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/kcmutils-follow-symlinks.patch b/nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/0001-kcmutils-follow-symlinks.patch
index cc041b9aa3b8..32adca6d2e05 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/kcmutils-follow-symlinks.patch
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/0001-kcmutils-follow-symlinks.patch
@@ -1,8 +1,17 @@
+From 4d5dcc309fba688aa1db8dd915a0abdf07f61e81 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Mon, 13 Jul 2020 11:23:36 -0500
+Subject: [PATCH] kcmutils follow symlinks
+
+---
+ src/kpluginselector.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
 diff --git a/src/kpluginselector.cpp b/src/kpluginselector.cpp
-index 137c865..097ab75 100644
+index 46deef5..2eacb9f 100644
 --- a/src/kpluginselector.cpp
 +++ b/src/kpluginselector.cpp
-@@ -303,7 +303,7 @@ void KPluginSelector::addPlugins(const QString &componentName,
+@@ -309,7 +309,7 @@ void KPluginSelector::addPlugins(const QString &componentName,
      QStringList desktopFileNames;
      const QStringList dirs = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, componentName + QStringLiteral("/kpartplugins"), QStandardPaths::LocateDirectory);
      for (const QString &dir : dirs) {
@@ -11,3 +20,6 @@ index 137c865..097ab75 100644
          while (it.hasNext()) {
              desktopFileNames.append(it.next());
          }
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
index 0c661dcdd48e..ab14529be01e 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules,
   kconfigwidgets, kcoreaddons, kdeclarative, ki18n, kiconthemes, kitemviews,
   kpackage, kservice, kxmlgui, qtdeclarative,
@@ -14,5 +14,7 @@ mkDerivation {
     qtdeclarative
   ];
   propagatedBuildInputs = [ kconfigwidgets kservice ];
-  patches = (copyPathsToStore (lib.readPathsFromFile ./. ./series));
+  patches = [
+    ./0001-kcmutils-follow-symlinks.patch
+  ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/kcmutils-debug-module-loader.patch b/nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/kcmutils-debug-module-loader.patch
deleted file mode 100644
index f966064f9291..000000000000
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/kcmutils-debug-module-loader.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Index: kcmutils-5.33.0/src/kcmoduleloader.cpp
-===================================================================
---- kcmutils-5.33.0.orig/src/kcmoduleloader.cpp
-+++ kcmutils-5.33.0/src/kcmoduleloader.cpp
-@@ -95,7 +95,7 @@ KCModule *KCModuleLoader::loadModule(const KCModuleInfo &mod, ErrorReporting rep
-         KPluginLoader loader(KPluginLoader::findPlugin(QLatin1String("kcms/") + mod.service()->library()));
-         KPluginFactory* factory = loader.factory();
-         if (!factory) {
--            qWarning() << "Couldn't load plugin:" << loader.errorString();
-+            qWarning() << "Error loading KCM plugin" << mod.service()->library() << loader.errorString();
-         } else {
-             std::unique_ptr<KQuickAddons::ConfigModule> cm(factory->create<KQuickAddons::ConfigModule>(nullptr, args2));
-             if (!cm) {
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/series b/nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/series
deleted file mode 100644
index f2c22554a455..000000000000
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kcmutils/series
+++ /dev/null
@@ -1,2 +0,0 @@
-kcmutils-follow-symlinks.patch
-kcmutils-debug-module-loader.patch
diff --git a/nixpkgs/pkgs/applications/kde/kdav.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kdav.nix
index 800c92511de2..a03cca3fdf26 100644
--- a/nixpkgs/pkgs/applications/kde/kdav.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kdav.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, kdepimTeam,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   kcoreaddons, kio, qtxmlpatterns,
 }:
@@ -8,7 +8,6 @@ mkDerivation {
   name = "kdav";
   meta = {
     license = with lib.licenses; [ gpl2 lgpl21 fdl12 ];
-    maintainers = kdepimTeam;
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ kcoreaddons kio qtxmlpatterns ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
index 7e3de9d4d141..5eced8832877 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kdelibs4support/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   docbook_xml_dtd_45, extra-cmake-modules, kdoctools,
   kauth, karchive, kcompletion, kconfig, kconfigwidgets, kcoreaddons, kcrash,
   kdbusaddons, kded, kdesignerplugin, kemoticons, kglobalaccel, kguiaddons,
@@ -11,7 +11,9 @@
 mkDerivation {
   name = "kdelibs4support";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./nix-kde-include-dir.patch
+  ];
   setupHook = ./setup-hook.sh;
   nativeBuildInputs = [ extra-cmake-modules qttools ];
   propagatedNativeBuildInputs = [ kdoctools ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kdelibs4support/series b/nixpkgs/pkgs/development/libraries/kde-frameworks/kdelibs4support/series
deleted file mode 100644
index 9b08ab208774..000000000000
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kdelibs4support/series
+++ /dev/null
@@ -1 +0,0 @@
-nix-kde-include-dir.patch
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kdesu.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kdesu/default.nix
index df60511b5115..cd7055c4ea82 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kdesu.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kdesu/default.nix
@@ -11,4 +11,5 @@ mkDerivation {
   buildInputs = [ kcoreaddons ki18n kpty kservice qtbase ];
   propagatedBuildInputs = [ kpty ];
   outputs = [ "out" "dev" ];
+  patches = [ ./kdesu-search-for-wrapped-daemon-first.patch ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kdesu/kdesu-search-for-wrapped-daemon-first.patch b/nixpkgs/pkgs/development/libraries/kde-frameworks/kdesu/kdesu-search-for-wrapped-daemon-first.patch
new file mode 100644
index 000000000000..f82bf828e8e9
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kdesu/kdesu-search-for-wrapped-daemon-first.patch
@@ -0,0 +1,38 @@
+From 01af4d2a098e5819c09bca37568941dcd4b89d0b Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
+Date: Thu, 16 Jul 2020 13:21:42 -0300
+Subject: [PATCH] Search for the daemon first in /run/wrappers/bin
+
+If looking first in libexec, the eventually wrapped one in
+/run/wrappers/bin can not be found.
+---
+ src/client.cpp | 13 ++++++++-----
+ 1 file changed, 8 insertions(+), 5 deletions(-)
+
+diff --git a/src/client.cpp b/src/client.cpp
+index 44fbacd..6b5abf5 100644
+--- a/src/client.cpp
++++ b/src/client.cpp
+@@ -378,11 +378,14 @@ int KDEsuClient::stopServer()
+ 
+ static QString findDaemon()
+ {
+-    QString daemon = QFile::decodeName(CMAKE_INSTALL_FULL_LIBEXECDIR_KF5 "/kdesud");
+-    if (!QFile::exists(daemon)) { // if not in libexec, find it in PATH
+-        daemon = QStandardPaths::findExecutable(QStringLiteral("kdesud"));
+-        if (daemon.isEmpty()) {
+-            qCWarning(KSU_LOG) << "kdesud daemon not found.";
++    QString daemon = QFile::decodeName("/run/wrappers/bin/kdesud");
++    if (!QFile::exists(daemon)) { // if not in wrappers
++        daemon = QFile::decodeName(CMAKE_INSTALL_FULL_LIBEXECDIR_KF5 "/kdesud");
++        if (!QFile::exists(daemon)) { // if not in libexec, find it in PATH
++            daemon = QStandardPaths::findExecutable(QStringLiteral("kdesud"));
++            if (daemon.isEmpty()) {
++                qCWarning(KSU_LOG) << "kdesud daemon not found.";
++            }
+         }
+     }
+     return daemon;
+-- 
+2.27.0
+
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
index 90a7116f42ad..47831f0f5d92 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules,
   attr, ebook_tools, exiv2, ffmpeg_3, karchive, kcoreaddons, ki18n, poppler, qtbase, qtmultimedia, taglib
 }:
@@ -12,5 +12,7 @@ mkDerivation {
     attr ebook_tools exiv2 ffmpeg_3 karchive kcoreaddons ki18n poppler qtbase qtmultimedia
     taglib
   ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./cmake-install-paths.patch
+  ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/series b/nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/series
deleted file mode 100644
index d2689425c387..000000000000
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kfilemetadata/series
+++ /dev/null
@@ -1 +0,0 @@
-cmake-install-paths.patch
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
index 8faac005f2ac..76bf0fd05370 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kiconthemes/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules,
   breeze-icons, karchive, kcoreaddons, kconfigwidgets, ki18n, kitemviews,
   qtbase, qtsvg, qttools,
@@ -8,7 +8,9 @@
 mkDerivation {
   name = "kiconthemes";
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./default-theme-breeze.patch
+  ];
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     breeze-icons karchive kcoreaddons kconfigwidgets ki18n kitemviews
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kiconthemes/series b/nixpkgs/pkgs/development/libraries/kde-frameworks/kiconthemes/series
deleted file mode 100644
index ab5cc8a3edb2..000000000000
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kiconthemes/series
+++ /dev/null
@@ -1 +0,0 @@
-default-theme-breeze.patch
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/default.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/default.nix
index 116f475e2f8c..654f6e20604a 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore, writeScript,
+  mkDerivation, lib, writeScript,
   extra-cmake-modules, kdoctools,
   kconfig, kcrash, ki18n, kio, kparts, kservice, kwindowsystem, plasma-framework
 }:
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/series b/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/series
deleted file mode 100644
index 9195a4e8e6b0..000000000000
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kinit/series
+++ /dev/null
@@ -1,3 +0,0 @@
-kinit-libpath.patch
-start_kdeinit-path.patch
-kdeinit-extra_libs.patch
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kio/default.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kio/default.nix
index fee21a6a9235..434496c7b9a9 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kio/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools, qttools,
   karchive, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons,
   kdbusaddons, ki18n, kiconthemes, kitemviews, kjobwidgets, knotifications,
@@ -21,5 +21,8 @@ mkDerivation {
     kxmlgui qtbase qttools solid
   ];
   outputs = [ "out" "dev" ];
-  patches = (copyPathsToStore (lib.readPathsFromFile ./. ./series));
+  patches = [
+    ./samba-search-path.patch
+    ./kio-debug-module-loader.patch
+  ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch b/nixpkgs/pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch
index 3e18d304c307..d39ffbfde644 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kio/samba-search-path.patch
@@ -1,28 +1,14 @@
-Index: kio-5.17.0/src/core/ksambashare.cpp
-===================================================================
---- kio-5.17.0.orig/src/core/ksambashare.cpp
-+++ kio-5.17.0/src/core/ksambashare.cpp
-@@ -67,13 +67,18 @@ KSambaSharePrivate::~KSambaSharePrivate(
- 
+diff --git a/src/core/ksambashare.cpp b/src/core/ksambashare.cpp
+index 1895783..9fe7286 100644
+--- a/src/core/ksambashare.cpp
++++ b/src/core/ksambashare.cpp
+@@ -73,8 +73,7 @@ KSambaSharePrivate::~KSambaSharePrivate()
  bool KSambaSharePrivate::isSambaInstalled()
  {
--    if (QFile::exists(QStringLiteral("/usr/sbin/smbd"))
--            || QFile::exists(QStringLiteral("/usr/local/sbin/smbd"))) {
--        return true;
-+    const QByteArray pathEnv = qgetenv("PATH");
-+    if (!pathEnv.isEmpty()) {
-+        QLatin1Char pathSep(':');
-+        QStringList paths = QFile::decodeName(pathEnv).split(pathSep, QString::SkipEmptyParts);
-+        for (QStringList::iterator it = paths.begin(); it != paths.end(); ++it) {
-+            it->append(QStringLiteral("/smbd"));
-+            if (QFile::exists(*it)) {
-+                return true;
-+            }
-+        }
+     const bool daemonExists =
+-        !QStandardPaths::findExecutable(QStringLiteral("smbd"),
+-                                       {QStringLiteral("/usr/sbin/"), QStringLiteral("/usr/local/sbin/")}).isEmpty();
++        !QStandardPaths::findExecutable(QStringLiteral("smbd")).isEmpty();
+     if (!daemonExists) {
+         qCDebug(KIO_CORE_SAMBASHARE) << "KSambaShare: Could not find smbd";
      }
- 
--    //qDebug() << "Samba is not installed!";
--
-     return false;
- }
- 
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kio/series b/nixpkgs/pkgs/development/libraries/kde-frameworks/kio/series
deleted file mode 100644
index 5330c40a3306..000000000000
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kio/series
+++ /dev/null
@@ -1,2 +0,0 @@
-samba-search-path.patch
-kio-debug-module-loader.patch
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/knewstuff.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/knewstuff.nix
index df384648e6a3..a6b811c0ad63 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/knewstuff.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/knewstuff.nix
@@ -2,7 +2,7 @@
   mkDerivation, lib, fetchpatch,
   extra-cmake-modules,
   attica, karchive, kcompletion, kconfig, kcoreaddons, ki18n, kiconthemes,
-  kio, kitemviews, kservice, ktextwidgets, kwidgetsaddons, kxmlgui, qtbase,
+  kio, kitemviews, kpackage, kservice, ktextwidgets, kwidgetsaddons, kxmlgui, qtbase,
   qtdeclarative, kirigami2,
 }:
 
@@ -12,6 +12,7 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     karchive kcompletion kconfig kcoreaddons ki18n kiconthemes kio kitemviews
+    kpackage
     ktextwidgets kwidgetsaddons qtbase qtdeclarative kirigami2
   ];
   propagatedBuildInputs = [ attica kservice kxmlgui ];
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kpackage/default.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
index 6779faa50cdc..6bd42420b85d 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kpackage/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules, kdoctools,
   karchive, kconfig, kcoreaddons, ki18n, qtbase,
 }:
@@ -9,5 +9,8 @@ mkDerivation {
   meta = { maintainers = [ lib.maintainers.ttuegel ]; };
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [ karchive kconfig kcoreaddons ki18n qtbase ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./allow-external-paths.patch
+    ./qdiriterator-follow-symlinks.patch
+  ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kpackage/series b/nixpkgs/pkgs/development/libraries/kde-frameworks/kpackage/series
deleted file mode 100644
index 9b7f076efc70..000000000000
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kpackage/series
+++ /dev/null
@@ -1,2 +0,0 @@
-allow-external-paths.patch
-qdiriterator-follow-symlinks.patch
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kquickcharts.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kquickcharts.nix
new file mode 100644
index 000000000000..5a06d4c1cad8
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kquickcharts.nix
@@ -0,0 +1,15 @@
+{
+  mkDerivation, lib,
+  extra-cmake-modules,
+  qtquickcontrols2,
+}:
+
+mkDerivation {
+  name = "kquickcharts";
+  meta = {
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  nativeBuildInputs = [ extra-cmake-modules ];
+  propagatedBuildInputs = [ qtquickcontrols2 ];
+  outputs = [ "out" "dev" ];
+}
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/krunner.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/krunner.nix
index 826999f2f9be..990c3c4fdf9b 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/krunner.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/krunner.nix
@@ -1,17 +1,19 @@
 {
-  mkDerivation, lib,
+  mkDerivation, lib, fetchpatch,
   extra-cmake-modules,
   kconfig, kcoreaddons, ki18n, kio, kservice, plasma-framework, qtbase,
   qtdeclarative, solid, threadweaver, kwindowsystem
 }:
 
-mkDerivation {
-  name = "krunner";
-  meta = { maintainers = [ lib.maintainers.ttuegel ]; };
-  nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [
-    kconfig kcoreaddons ki18n kio kservice qtdeclarative solid
-    threadweaver
-  ];
-  propagatedBuildInputs = [ plasma-framework qtbase kwindowsystem ];
-}
+let
+  self = mkDerivation {
+    name = "krunner";
+    meta = { maintainers = [ lib.maintainers.ttuegel ]; };
+    nativeBuildInputs = [ extra-cmake-modules ];
+    buildInputs = [
+      kconfig kcoreaddons ki18n kio kservice qtdeclarative solid
+      threadweaver
+    ];
+    propagatedBuildInputs = [ plasma-framework qtbase kwindowsystem ];
+  };
+in self
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kservice/default.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kservice/default.nix
index 356e6537a4fd..630582ecf763 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kservice/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kservice/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   bison, extra-cmake-modules, flex,
   kconfig, kcoreaddons, kcrash, kdbusaddons, kdoctools, ki18n, kwindowsystem,
   qtbase, shared-mime-info,
@@ -15,5 +15,8 @@ mkDerivation {
   ];
   propagatedBuildInputs = [ kconfig kcoreaddons ];
   propagatedUserEnvPkgs = [ shared-mime-info ]; # for kbuildsycoca5
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./qdiriterator-follow-symlinks.patch
+    ./no-canonicalize-path.patch
+  ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kservice/series b/nixpkgs/pkgs/development/libraries/kde-frameworks/kservice/series
deleted file mode 100644
index 3ce22dbd35a0..000000000000
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kservice/series
+++ /dev/null
@@ -1,2 +0,0 @@
-qdiriterator-follow-symlinks.patch
-no-canonicalize-path.patch
\ No newline at end of file
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kwayland.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kwayland.nix
index c19836ed7a72..36e0ddc3f94c 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kwayland.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kwayland.nix
@@ -1,7 +1,7 @@
 {
   mkDerivation, lib, propagateBin,
   extra-cmake-modules,
-  qtbase, wayland, wayland-protocols
+  plasma-wayland-protocols, qtbase, wayland, wayland-protocols
 }:
 
 mkDerivation {
@@ -11,7 +11,7 @@ mkDerivation {
     broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
   };
   nativeBuildInputs = [ extra-cmake-modules ];
-  buildInputs = [ wayland wayland-protocols ];
+  buildInputs = [ plasma-wayland-protocols wayland wayland-protocols ];
   propagatedBuildInputs = [ qtbase ];
   setupHook = propagateBin; # XDG_CONFIG_DIRS
 }
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
index c075adf02941..1e77b63f7c9a 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/kwindowsystem/default.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, lib, copyPathsToStore,
+  mkDerivation, lib,
   extra-cmake-modules,
   libpthreadstubs, libXdmcp,
   qtbase, qttools, qtx11extras
@@ -14,7 +14,9 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [ libpthreadstubs libXdmcp qttools qtx11extras ];
   propagatedBuildInputs = [ qtbase ];
-  patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
+  patches = [
+    ./platform-plugins-path.patch
+  ];
   preConfigure = ''
     NIX_CFLAGS_COMPILE+=" -DNIXPKGS_QT_PLUGIN_PATH=\"''${!outputBin}/$qtPluginPrefix\""
   '';
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/kwindowsystem/series b/nixpkgs/pkgs/development/libraries/kde-frameworks/kwindowsystem/series
deleted file mode 100644
index 2cd02056ff81..000000000000
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/kwindowsystem/series
+++ /dev/null
@@ -1 +0,0 @@
-platform-plugins-path.patch
diff --git a/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix b/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix
index ffea42c130f7..070b11f6bfb5 100644
--- a/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix
+++ b/nixpkgs/pkgs/development/libraries/kde-frameworks/srcs.nix
@@ -4,659 +4,667 @@
 
 {
   attica = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/attica-5.68.0.tar.xz";
-      sha256 = "9b4001a32831c9bae1d44161247acd5e6d3048ca2ece98c2c756c72a1464b9e9";
-      name = "attica-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/attica-5.73.0.tar.xz";
+      sha256 = "011240a6ff59e2b39bcf6d4ba6128e6e60c6318c185e7316a71cfec28e69c69a";
+      name = "attica-5.73.0.tar.xz";
     };
   };
   baloo = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/baloo-5.68.0.tar.xz";
-      sha256 = "4b599fb279ef92dc4f575847767c370f2633b27e884e372c3f7b92f08917865e";
-      name = "baloo-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/baloo-5.73.0.tar.xz";
+      sha256 = "887077ae3e090d673d2ffe7eb869a0ab6f5d14e9dae2dccd619e4689699a2dfe";
+      name = "baloo-5.73.0.tar.xz";
     };
   };
   bluez-qt = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/bluez-qt-5.68.0.tar.xz";
-      sha256 = "99889cac874820e83a32bee938b6cc8e25dca6a3013d4a589ac7b8f5d32b4224";
-      name = "bluez-qt-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/bluez-qt-5.73.0.tar.xz";
+      sha256 = "70264edb82b2627c0ec3740374b90b8402e0f432fe4a10650fa3d22191d8cfd4";
+      name = "bluez-qt-5.73.0.tar.xz";
     };
   };
   breeze-icons = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/breeze-icons-5.68.0.tar.xz";
-      sha256 = "750fff6560abfa85a2243187d14f1b8f1d3d1c4097d84cbf8c58d2f48102fe8d";
-      name = "breeze-icons-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/breeze-icons-5.73.0.tar.xz";
+      sha256 = "b6caff26f69008a3e0d53ae5fcfcf070b70ad1b17d407daecbbabeb6a606a08b";
+      name = "breeze-icons-5.73.0.tar.xz";
     };
   };
   extra-cmake-modules = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/extra-cmake-modules-5.68.0.tar.xz";
-      sha256 = "4d60869ca96a323b56f00b40c4728a70dfebe2132bbae040442a6a2ef90e2d6e";
-      name = "extra-cmake-modules-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/extra-cmake-modules-5.73.0.tar.xz";
+      sha256 = "c5e3ef0253f7d5ab3adf9185950e34fd620a3d5baaf3bcc15892f971fc3274c4";
+      name = "extra-cmake-modules-5.73.0.tar.xz";
     };
   };
   frameworkintegration = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/frameworkintegration-5.68.0.tar.xz";
-      sha256 = "5bb3c2e56b2c4c41d8a472363f80445fd3fc28656e6a3163d48ed826a133985a";
-      name = "frameworkintegration-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/frameworkintegration-5.73.0.tar.xz";
+      sha256 = "21ef7f1a6d48f9fb14ccac9bc37e803c92cf83c9e235a5ca8bd7eb08fd0a6fb3";
+      name = "frameworkintegration-5.73.0.tar.xz";
     };
   };
   kactivities = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kactivities-5.68.0.tar.xz";
-      sha256 = "1853135feb6adfec252e6fab0b1472450422afd5998a9a31d942e8672fbe7111";
-      name = "kactivities-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kactivities-5.73.0.tar.xz";
+      sha256 = "5098f2535175ac12da91568ca554e3f5d970ae05415da1a8ba17305cb8ac3a1a";
+      name = "kactivities-5.73.0.tar.xz";
     };
   };
   kactivities-stats = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kactivities-stats-5.68.0.tar.xz";
-      sha256 = "fb645db4685113dfd98834f48d8941529fee53d5e26ec5e36cfee8a9bfae97ae";
-      name = "kactivities-stats-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kactivities-stats-5.73.0.tar.xz";
+      sha256 = "df4b00c52e83608b2dd7345cd220143e07b65cb431cead5e9abb1e4ffd6ecd5a";
+      name = "kactivities-stats-5.73.0.tar.xz";
     };
   };
   kapidox = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kapidox-5.68.0.tar.xz";
-      sha256 = "4f60582cb0771c38733989f192694636b1c93ecae290bfbe551030dd397e976e";
-      name = "kapidox-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kapidox-5.73.0.tar.xz";
+      sha256 = "b49ff6673906817ed95a3de56535594de02a9f95bcb2726abe52d0c0e0161be5";
+      name = "kapidox-5.73.0.tar.xz";
     };
   };
   karchive = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/karchive-5.68.0.tar.xz";
-      sha256 = "518f07629d87e5778e1d8ce066f5590941472d9fffa7bd74819759be5c6edf0d";
-      name = "karchive-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/karchive-5.73.0.tar.xz";
+      sha256 = "25481ebbba8f58d9ab45bde804ab0d873c45550b482e27e7856b362cd9aa434f";
+      name = "karchive-5.73.0.tar.xz";
     };
   };
   kauth = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kauth-5.68.0.tar.xz";
-      sha256 = "b9a7cd724709ea188852f7656fbeda2dc3cc40cc5d09573049c2680c0edbd41f";
-      name = "kauth-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kauth-5.73.0.tar.xz";
+      sha256 = "e334705bfc3f81c5e2f66315d40badd26d88426128432788f790ebefce1694d9";
+      name = "kauth-5.73.0.tar.xz";
     };
   };
   kbookmarks = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kbookmarks-5.68.0.tar.xz";
-      sha256 = "80dc06188a5e1d960d46f527bd82d9b79df75a785164fa29a088a7b705abbf84";
-      name = "kbookmarks-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kbookmarks-5.73.0.tar.xz";
+      sha256 = "b925ec1b8a1b4a2b7f2526fdbc7761de065b3c9573e41ac274773ed1b576aa51";
+      name = "kbookmarks-5.73.0.tar.xz";
     };
   };
   kcalendarcore = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kcalendarcore-5.68.0.tar.xz";
-      sha256 = "50ffbe4feb9a602c09e130d6f10f0f260fa7625bc266003697895e1d716d6ba9";
-      name = "kcalendarcore-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kcalendarcore-5.73.0.tar.xz";
+      sha256 = "e3486b41b833c0ba72f839d8a61bdffaf9b3ece3da20f478c2981b3296e7b713";
+      name = "kcalendarcore-5.73.0.tar.xz";
     };
   };
   kcmutils = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kcmutils-5.68.0.tar.xz";
-      sha256 = "a688d54286fe11b23e11e2100536a513a332d2a7d784fcbebeaccbfb980d83d1";
-      name = "kcmutils-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kcmutils-5.73.0.tar.xz";
+      sha256 = "b28bf672bbe21e8d1b4e6ea924c1bb318c81c43dcbb86bebb3f5775e18945ca9";
+      name = "kcmutils-5.73.0.tar.xz";
     };
   };
   kcodecs = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kcodecs-5.68.0.tar.xz";
-      sha256 = "5f1e6ae3a51ca817aa0a5082ce4ce5490cb527388ef1888a642fb374c5e2bb48";
-      name = "kcodecs-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kcodecs-5.73.0.tar.xz";
+      sha256 = "3bcb22b4f3b2f164759ab912d117c3b4b50695ae38d524f2cfb79a29488cce67";
+      name = "kcodecs-5.73.0.tar.xz";
     };
   };
   kcompletion = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kcompletion-5.68.0.tar.xz";
-      sha256 = "642d68b4c472e11a8861a61238297633be288bfd72c13547707754f1ae2be33a";
-      name = "kcompletion-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kcompletion-5.73.0.tar.xz";
+      sha256 = "72b0650e5ae9f30ad4ec30b55e660c826d93edfda0ef4f9436f226cbb8a9705a";
+      name = "kcompletion-5.73.0.tar.xz";
     };
   };
   kconfig = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kconfig-5.68.0.tar.xz";
-      sha256 = "c3bf138a7a4d002475f2483987baf40a61cda7d491c3cc292dd2c6da726ee898";
-      name = "kconfig-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kconfig-5.73.0.tar.xz";
+      sha256 = "6046bbb8da5f3261aac7f868bfa8a8ce1015a3a8257fe0b2d37dce9e2bc3952e";
+      name = "kconfig-5.73.0.tar.xz";
     };
   };
   kconfigwidgets = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kconfigwidgets-5.68.0.tar.xz";
-      sha256 = "f50421e9dbb6669e8d7c10605f7779ad03f30ea7c9c4451a70a7be66cd9df995";
-      name = "kconfigwidgets-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kconfigwidgets-5.73.0.tar.xz";
+      sha256 = "ed8a0a8158f895aebd46c4a725f77178d942cd9476a864a615a9df343da51f8e";
+      name = "kconfigwidgets-5.73.0.tar.xz";
     };
   };
   kcontacts = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kcontacts-5.68.0.tar.xz";
-      sha256 = "532f1e89c7412e971db8c431d627d38144470ddf5c978a7fa9348e418b6cd3c3";
-      name = "kcontacts-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kcontacts-5.73.0.tar.xz";
+      sha256 = "4351bf80f5a5417ba7e99fe557a851d1c7173fd7511fc1426375c66692e748bb";
+      name = "kcontacts-5.73.0.tar.xz";
     };
   };
   kcoreaddons = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kcoreaddons-5.68.0.tar.xz";
-      sha256 = "c578ae30b4161e45e672d613d2d9c5575a849d21909d9817f90a441044df65d7";
-      name = "kcoreaddons-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kcoreaddons-5.73.0.tar.xz";
+      sha256 = "24a7713eaef2f40e648a586e22b030192321f9fecdbae77013b00446fa0d6d51";
+      name = "kcoreaddons-5.73.0.tar.xz";
     };
   };
   kcrash = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kcrash-5.68.0.tar.xz";
-      sha256 = "60daf2cee87c652619b098b688edce6f993c7960783159cd8be9d9145df29f7f";
-      name = "kcrash-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kcrash-5.73.0.tar.xz";
+      sha256 = "49b6f4d6109ddf3a6b93f833f59483e5a1a748e4b829c4739fdaaaef59c9b583";
+      name = "kcrash-5.73.0.tar.xz";
+    };
+  };
+  kdav = {
+    version = "5.73.0";
+    src = fetchurl {
+      url = "${mirror}/stable/frameworks/5.73/kdav-5.73.0.tar.xz";
+      sha256 = "03c8af96e7bb1b1d2d633e54c6362c7c2de078b8aba5654042b7a11d968efa31";
+      name = "kdav-5.73.0.tar.xz";
     };
   };
   kdbusaddons = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kdbusaddons-5.68.0.tar.xz";
-      sha256 = "839fe42f9ac8df353f87245110fd7b515a8eb29f0840f54481bd89e5175bf1af";
-      name = "kdbusaddons-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kdbusaddons-5.73.0.tar.xz";
+      sha256 = "f7f7e57b4d4650cf90a191b08b1fe874d0005c34163b9177dcc787415841e8ba";
+      name = "kdbusaddons-5.73.0.tar.xz";
     };
   };
   kdeclarative = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kdeclarative-5.68.0.tar.xz";
-      sha256 = "96a032bcb360e0ffcfe51d4d2f6153786682c2f967592bffcf15b9e6cd4cd3ae";
-      name = "kdeclarative-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kdeclarative-5.73.0.tar.xz";
+      sha256 = "713ae2ea41e1bac8f6d47cffa376d62c7805eb3e4cc41c3168c1f1b2ca70a598";
+      name = "kdeclarative-5.73.0.tar.xz";
     };
   };
   kded = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kded-5.68.0.tar.xz";
-      sha256 = "b03afe48fbdbd7d92c46b3b60bdb4b825f77e1a9d00c16a5f236b24a0135e4b7";
-      name = "kded-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kded-5.73.0.tar.xz";
+      sha256 = "f21647a5f35eebaa9bf12b5d5da25c24611c1971f94f27c510d22a48c79b0895";
+      name = "kded-5.73.0.tar.xz";
     };
   };
   kdelibs4support = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/portingAids/kdelibs4support-5.68.0.tar.xz";
-      sha256 = "2fca7bf9d31b081e7568631b6b6d2f7847068217261e47ef0dea106470c22df1";
-      name = "kdelibs4support-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/portingAids/kdelibs4support-5.73.0.tar.xz";
+      sha256 = "ca6f58c97b331d130a555b950c36cd7f625ca923fd185b0f73e20ac5b98c5d9b";
+      name = "kdelibs4support-5.73.0.tar.xz";
     };
   };
   kdesignerplugin = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/portingAids/kdesignerplugin-5.68.0.tar.xz";
-      sha256 = "ae433e0eeaf0007312b1f32fc4349cf26c34617a5a9951ae4155c5c4e4009b72";
-      name = "kdesignerplugin-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/portingAids/kdesignerplugin-5.73.0.tar.xz";
+      sha256 = "379db9fd0ec135706630dbd54e1b446e51dd3b64189754c281993d761c1d20b2";
+      name = "kdesignerplugin-5.73.0.tar.xz";
     };
   };
   kdesu = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kdesu-5.68.0.tar.xz";
-      sha256 = "427ba50bcd14308980cbdfdc77a6b7419277942a42d83da72ff3afbc1ec78903";
-      name = "kdesu-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kdesu-5.73.0.tar.xz";
+      sha256 = "4dd07697decad6a544025178732bd279ef64766e1929a2135f6de58b1092944d";
+      name = "kdesu-5.73.0.tar.xz";
     };
   };
   kdewebkit = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/portingAids/kdewebkit-5.68.0.tar.xz";
-      sha256 = "181b14bd80e9f34aa2f896d39aca5be91f65d65bfaaf47660e91fdd98b7f36a2";
-      name = "kdewebkit-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/portingAids/kdewebkit-5.73.0.tar.xz";
+      sha256 = "d8208c4f7a98b6749c793649e2e5fbe3939e253289a9f6b74b559f6546b34b0b";
+      name = "kdewebkit-5.73.0.tar.xz";
     };
   };
   kdnssd = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kdnssd-5.68.0.tar.xz";
-      sha256 = "3369da85c0088c375f2123a82132fb84490c46ebc8e9cd1253c795ef45fd4403";
-      name = "kdnssd-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kdnssd-5.73.0.tar.xz";
+      sha256 = "bee7f654f704d928b1219b75a289042474c1450e9f8acb02a905a4a177bc5b7d";
+      name = "kdnssd-5.73.0.tar.xz";
     };
   };
   kdoctools = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kdoctools-5.68.0.tar.xz";
-      sha256 = "93f5bee9dfaacacacfbeb3e915b192b5e645c1d01057b0cea4081c9ae5285670";
-      name = "kdoctools-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kdoctools-5.73.0.tar.xz";
+      sha256 = "d8dd74776d47e009d4a204d69a78428603ca99317095d7b7edca49c3d93b1b5d";
+      name = "kdoctools-5.73.0.tar.xz";
     };
   };
   kemoticons = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kemoticons-5.68.0.tar.xz";
-      sha256 = "e03fe81ad34e107dc5fe61f9bf424ecef7716bf8a62f8abb78fd3f6bd6806f56";
-      name = "kemoticons-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kemoticons-5.73.0.tar.xz";
+      sha256 = "0c0a26b029a8fd3d8db97bac931feb7834912aa2f7680660e98d91e868d10778";
+      name = "kemoticons-5.73.0.tar.xz";
     };
   };
   kfilemetadata = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kfilemetadata-5.68.0.tar.xz";
-      sha256 = "c2a8aee8243efa30fc921b7f50b390b47ee2cf83aa83b125a530a25de6d6fe21";
-      name = "kfilemetadata-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kfilemetadata-5.73.0.tar.xz";
+      sha256 = "1ae217aab920741e445211e20b1b60dfcf80f4a6d1864aa63321dac7c3802894";
+      name = "kfilemetadata-5.73.0.tar.xz";
     };
   };
   kglobalaccel = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kglobalaccel-5.68.0.tar.xz";
-      sha256 = "2eb710a3f29cbc8b7875fb3e8315d7c8e3b5bb93867e0a34cd5cdbac690bcbbf";
-      name = "kglobalaccel-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kglobalaccel-5.73.0.tar.xz";
+      sha256 = "0062db9adde4dab0be6b64430010c0a5653355d0d1680abc9ec8e71988ff871f";
+      name = "kglobalaccel-5.73.0.tar.xz";
     };
   };
   kguiaddons = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kguiaddons-5.68.0.tar.xz";
-      sha256 = "cdbf694e92b47358c2e2c31917bf5f01382042c2cb99b65faf3bc00a0eb52c64";
-      name = "kguiaddons-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kguiaddons-5.73.0.tar.xz";
+      sha256 = "45b4c5e0195abd79930635bbf20886b15b1b68b13fe4c56068579b91ef147350";
+      name = "kguiaddons-5.73.0.tar.xz";
     };
   };
   kholidays = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kholidays-5.68.0.tar.xz";
-      sha256 = "067a544c22f5988cf959a475b66ed62e419b975b3ee22810667a076f3d50dbba";
-      name = "kholidays-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kholidays-5.73.0.tar.xz";
+      sha256 = "b0ae4b77aa7c183959bc18baa09a1a4f7208fcad2a238c1590377bf6cf8b68ab";
+      name = "kholidays-5.73.0.tar.xz";
     };
   };
   khtml = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/portingAids/khtml-5.68.0.tar.xz";
-      sha256 = "af97da0a5d877c928d98690c3629a8f9788b29b27f583c9e3e26144a6abb9dcc";
-      name = "khtml-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/portingAids/khtml-5.73.0.tar.xz";
+      sha256 = "378a5aaa6c796d313a63b4cf1365cdd980f2bc21e9033354f2f1317d1db9c262";
+      name = "khtml-5.73.0.tar.xz";
     };
   };
   ki18n = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/ki18n-5.68.0.tar.xz";
-      sha256 = "2c59dd55d032c95710e338e376a31bf11d799bceba8ebfdb148c8b77067a1e92";
-      name = "ki18n-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/ki18n-5.73.0.tar.xz";
+      sha256 = "97eef22d6cdd65c57edfe54fa9760a69005e15b7d8f4270f6185916c33e14689";
+      name = "ki18n-5.73.0.tar.xz";
     };
   };
   kiconthemes = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kiconthemes-5.68.0.tar.xz";
-      sha256 = "ac3f322f2644dd0468cd2b07cc0c7f853f1ac4bc714fe532bbe92e88141f6729";
-      name = "kiconthemes-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kiconthemes-5.73.0.tar.xz";
+      sha256 = "4490109a0a42675e4cd3497433e10fd4be24ef644a283edf46b308314d130356";
+      name = "kiconthemes-5.73.0.tar.xz";
     };
   };
   kidletime = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kidletime-5.68.0.tar.xz";
-      sha256 = "cd6309d403ea36553abc99af4fa7e4ed3f8b3b2c55d14887ef09d68e5627b3e7";
-      name = "kidletime-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kidletime-5.73.0.tar.xz";
+      sha256 = "52a8af3f061101c406a592ec277a2c84846e3910af1d3dbfc3e15beb9cfd24a2";
+      name = "kidletime-5.73.0.tar.xz";
     };
   };
   kimageformats = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kimageformats-5.68.0.tar.xz";
-      sha256 = "498fab29d19f10f2c91c796134f959b2cf3ce8372087b5eeb62f07e62af85949";
-      name = "kimageformats-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kimageformats-5.73.0.tar.xz";
+      sha256 = "473d0f67d5357bbf08aa4f4504ceaceabc720b1f5433b456ddc5f8ad0d7e3b8b";
+      name = "kimageformats-5.73.0.tar.xz";
     };
   };
   kinit = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kinit-5.68.0.tar.xz";
-      sha256 = "fa136996eaaa7d2adb5a341c2b7a1abe86d8139c6f18999e0b0dc0220e512559";
-      name = "kinit-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kinit-5.73.0.tar.xz";
+      sha256 = "0c61e90f3db83b4dc5f2438cf7880a02b600a5739cb05e5ee372aeff98b8b770";
+      name = "kinit-5.73.0.tar.xz";
     };
   };
   kio = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kio-5.68.0.tar.xz";
-      sha256 = "9cc2fb2da84d6661a90eac81eb12c2e37921a5c34cbc1975f48d613e5a9d9eef";
-      name = "kio-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kio-5.73.0.tar.xz";
+      sha256 = "05da159e6cf5ef9aa4dd7ede86ce28a5581624a1b3f0b4718c5b7e30c4aa2a66";
+      name = "kio-5.73.0.tar.xz";
     };
   };
   kirigami2 = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kirigami2-5.68.0.tar.xz";
-      sha256 = "ad5f78afc916e9cb26f23918a6eb1983d4a57aa7e4f7314a8c23fb81e0fcaf4b";
-      name = "kirigami2-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kirigami2-5.73.0.tar.xz";
+      sha256 = "9b2a097071f77804f6f2f2a478e5db602c8b5fee00de34fc44842f31223401bb";
+      name = "kirigami2-5.73.0.tar.xz";
     };
   };
   kitemmodels = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kitemmodels-5.68.0.tar.xz";
-      sha256 = "4f435db4362832cf63e49896229affd07f125567931fc499751d37ac3bafb149";
-      name = "kitemmodels-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kitemmodels-5.73.0.tar.xz";
+      sha256 = "6569e289ac9263d87ef6641fe2f3914b9ace6814832ac9c61825b1c6805ae371";
+      name = "kitemmodels-5.73.0.tar.xz";
     };
   };
   kitemviews = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kitemviews-5.68.0.tar.xz";
-      sha256 = "5196885ac42347d67779df61a03d7f9c54f38053ff91348ef6fdc08439b4742f";
-      name = "kitemviews-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kitemviews-5.73.0.tar.xz";
+      sha256 = "ec29707d789bee58c47ee538319560a168642f69e96cacb78818825e47177727";
+      name = "kitemviews-5.73.0.tar.xz";
     };
   };
   kjobwidgets = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kjobwidgets-5.68.0.tar.xz";
-      sha256 = "a11ba51ed0ab330f9a921cf0a61e604c27d88c1c2ea477a875bc0a0cd228a292";
-      name = "kjobwidgets-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kjobwidgets-5.73.0.tar.xz";
+      sha256 = "61d105c8f17dcfb85ad6c1e3bd2423ebeb430b9c290d193229bc953ac174f2bf";
+      name = "kjobwidgets-5.73.0.tar.xz";
     };
   };
   kjs = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/portingAids/kjs-5.68.0.tar.xz";
-      sha256 = "18e3d7c667aec21e9e4d0d4730ad32a10475b7db5a574a674a8b90a6f9e0cd0e";
-      name = "kjs-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/portingAids/kjs-5.73.0.tar.xz";
+      sha256 = "97b52557212a33d59a4b3a8c34ea8a94cd5f840fb0798e770164d3cb1e755be5";
+      name = "kjs-5.73.0.tar.xz";
     };
   };
   kjsembed = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/portingAids/kjsembed-5.68.0.tar.xz";
-      sha256 = "e9b9ac63f06447ffc6870806eb1507f0281281bae907fdbae42ee87a2b926db2";
-      name = "kjsembed-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/portingAids/kjsembed-5.73.0.tar.xz";
+      sha256 = "cc9896930c01a6bdbfaddada9516380c9a54e5d719836f1788d8e3a74108e1d3";
+      name = "kjsembed-5.73.0.tar.xz";
     };
   };
   kmediaplayer = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/portingAids/kmediaplayer-5.68.0.tar.xz";
-      sha256 = "aa07466ea27b2e042e03d76fe3a23c570ba6521f57a2a51dc0ddf32fc8276db0";
-      name = "kmediaplayer-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/portingAids/kmediaplayer-5.73.0.tar.xz";
+      sha256 = "69aa3bbedfc8b9a0dd9f4ac260cded9d7b5894477bf4b5b09065d0aae8e44ab2";
+      name = "kmediaplayer-5.73.0.tar.xz";
     };
   };
   knewstuff = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/knewstuff-5.68.0.tar.xz";
-      sha256 = "f7c13b133f8b87ceece2d33d3f69215912b3b8c1dbb92ac39a1a6a0a42b7c93a";
-      name = "knewstuff-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/knewstuff-5.73.0.tar.xz";
+      sha256 = "7669e62973f7e228975a07f15bb1c7f716edd81ce82d5f578a80b1f501abda1e";
+      name = "knewstuff-5.73.0.tar.xz";
     };
   };
   knotifications = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/knotifications-5.68.0.tar.xz";
-      sha256 = "646bd3bac073fbf4f19f9047360325c933751d605cf1311f4c922d7457fbda51";
-      name = "knotifications-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/knotifications-5.73.0.tar.xz";
+      sha256 = "c8e9f36716db33baca93a0386d3bb6426408eee3843eb5854bdd8ad7579f372c";
+      name = "knotifications-5.73.0.tar.xz";
     };
   };
   knotifyconfig = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/knotifyconfig-5.68.0.tar.xz";
-      sha256 = "36c7c93964f2b9b584d73de1757f75d6ee8bb29ebe860e8fd6905354d2f10145";
-      name = "knotifyconfig-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/knotifyconfig-5.73.0.tar.xz";
+      sha256 = "641a167a58856e99036d44b3e7472b44cdfbbf68e5d75b9af988d0b71dc10af4";
+      name = "knotifyconfig-5.73.0.tar.xz";
     };
   };
   kpackage = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kpackage-5.68.0.tar.xz";
-      sha256 = "49727d89f1ca7ee504397d6e8b5cd25c26cd0061596b26d8ab2b64e3987d2d16";
-      name = "kpackage-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kpackage-5.73.0.tar.xz";
+      sha256 = "480b1e11733fe272d1a5680afea39bcc940f01bd3d1267be0981e3c92e098c4f";
+      name = "kpackage-5.73.0.tar.xz";
     };
   };
   kparts = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kparts-5.68.0.tar.xz";
-      sha256 = "fd17d0b0ff41d66c122530bbd8d1187f3271382207f63237ce72147865bf6d29";
-      name = "kparts-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kparts-5.73.0.tar.xz";
+      sha256 = "5546d2a474c80a601ba013642775682b087d086bd26d0b0d025b68d680c98bf2";
+      name = "kparts-5.73.0.tar.xz";
     };
   };
   kpeople = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kpeople-5.68.0.tar.xz";
-      sha256 = "1cae86d527d650d9fa311f6007cc33b5dcd858bcfe4eb7cae65b5402205c4675";
-      name = "kpeople-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kpeople-5.73.0.tar.xz";
+      sha256 = "9e0d3119c168f7843251c808cc149de15c1fd692062f431972023fdaa84d21c4";
+      name = "kpeople-5.73.0.tar.xz";
     };
   };
   kplotting = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kplotting-5.68.0.tar.xz";
-      sha256 = "ccae7f90c016a1c517db820f352bb962f600678efdc4ac6b12e33d2c48f5c268";
-      name = "kplotting-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kplotting-5.73.0.tar.xz";
+      sha256 = "b5055ed9a3149c059623d88875816e9fac8d6d25d29fdfd48e0d8a16dfe01b14";
+      name = "kplotting-5.73.0.tar.xz";
     };
   };
   kpty = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kpty-5.68.0.tar.xz";
-      sha256 = "35b838cff80311db52d83e1f61bc365277d54929742ee34265f36a12ce7689e3";
-      name = "kpty-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kpty-5.73.0.tar.xz";
+      sha256 = "d3bf99062589dbd1dbe302c8ed2528845f245e7f0f17ca865cdd100f7589ce9c";
+      name = "kpty-5.73.0.tar.xz";
     };
   };
   kquickcharts = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kquickcharts-5.68.0.tar.xz";
-      sha256 = "2cfb78bc2a7659a8c4ca6b072ff586c44e6da64e10b84a0fb0c5e3f03c944628";
-      name = "kquickcharts-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kquickcharts-5.73.0.tar.xz";
+      sha256 = "e37e13a5d907d872679eab38ba8e983b2fb98a11e07a3c15d32cfaad09075cfe";
+      name = "kquickcharts-5.73.0.tar.xz";
     };
   };
   kross = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/portingAids/kross-5.68.0.tar.xz";
-      sha256 = "2f5a79a2097f84bfd2033ca183abdbf6626f6e5dc2c6f781c312f15c97dace33";
-      name = "kross-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/portingAids/kross-5.73.0.tar.xz";
+      sha256 = "aa27b434da981f64c40985a61ee041417667844c6077c9fb52456635be67546e";
+      name = "kross-5.73.0.tar.xz";
     };
   };
   krunner = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/krunner-5.68.0.tar.xz";
-      sha256 = "4575ae1d658d32c15f9d57dc30616073e9d143d1a7f9632556906ef10e82e3b8";
-      name = "krunner-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/krunner-5.73.0.tar.xz";
+      sha256 = "b4e8427083b6546327eeb36b05a7e438e58f922d4cc5ae0c24cd8241924e9e09";
+      name = "krunner-5.73.0.tar.xz";
     };
   };
   kservice = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kservice-5.68.0.tar.xz";
-      sha256 = "c774ce1738081c17e6e105e506aa89c22a9db07e73972d4b18ce733ec8ad0a8a";
-      name = "kservice-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kservice-5.73.0.tar.xz";
+      sha256 = "a64bf7543870240f0d8f8c2bcf43759d98962ba94a4ed34bd23232df25bb408b";
+      name = "kservice-5.73.0.tar.xz";
     };
   };
   ktexteditor = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/ktexteditor-5.68.0.tar.xz";
-      sha256 = "dad373d4c136d113cca1ee6d700753563b7348813ff3229db670eedc63980cd6";
-      name = "ktexteditor-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/ktexteditor-5.73.0.tar.xz";
+      sha256 = "032b3ac31aa099ed67471f78401d13cf318646b0b9b5e20bb94796ac3ed6cf18";
+      name = "ktexteditor-5.73.0.tar.xz";
     };
   };
   ktextwidgets = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/ktextwidgets-5.68.0.tar.xz";
-      sha256 = "23b354469afed21c840ca36e2bb5b2b383ed5c4ec3690bb009e273c39fbe00c0";
-      name = "ktextwidgets-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/ktextwidgets-5.73.0.tar.xz";
+      sha256 = "2a8b086fce8136b5b4af4a28b417343fb66148c1961e5d65bf40ccae2d4386e5";
+      name = "ktextwidgets-5.73.0.tar.xz";
     };
   };
   kunitconversion = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kunitconversion-5.68.0.tar.xz";
-      sha256 = "39ec06e2439306ce5b5efe5fe972d201e8c8e5fda634652cdc01c58427574adb";
-      name = "kunitconversion-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kunitconversion-5.73.0.tar.xz";
+      sha256 = "97d008e8bdb2d1f89d2093294a8be0b13b0e0160658fa7d3de6c99a5fd5e2935";
+      name = "kunitconversion-5.73.0.tar.xz";
     };
   };
   kwallet = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kwallet-5.68.0.tar.xz";
-      sha256 = "7524eeffdde3166df182f0dbf0f3f461905547bfd7a06387c7c503cd1ab75ecf";
-      name = "kwallet-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kwallet-5.73.0.tar.xz";
+      sha256 = "4a9c8a538054fc51b30679d5180d09bb6d12a833f595a8d6875b6d4c29074de1";
+      name = "kwallet-5.73.0.tar.xz";
     };
   };
   kwayland = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kwayland-5.68.0.tar.xz";
-      sha256 = "7c99bfac8f4bff457a5384c846be776c385649ced76be0f48699c6e12de24e7c";
-      name = "kwayland-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kwayland-5.73.0.tar.xz";
+      sha256 = "ee34a490a7bbc5e83eb36a6ac70492a76cb054d3077d0a8db216fd8b07f27bfe";
+      name = "kwayland-5.73.0.tar.xz";
     };
   };
   kwidgetsaddons = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kwidgetsaddons-5.68.0.tar.xz";
-      sha256 = "b4ff96b4ec6365e5f9e4da5e651da99be491799a4e6cfd982d0838dda39844ac";
-      name = "kwidgetsaddons-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kwidgetsaddons-5.73.0.tar.xz";
+      sha256 = "0722d853747b85ca7d46f278dc99c28b872185406b97b811523c1aa9b5e75eb6";
+      name = "kwidgetsaddons-5.73.0.tar.xz";
     };
   };
   kwindowsystem = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kwindowsystem-5.68.0.tar.xz";
-      sha256 = "859c930a04c2588f792bfb9a28ed40b226db632b15c2851b186301b70d4c825a";
-      name = "kwindowsystem-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kwindowsystem-5.73.0.tar.xz";
+      sha256 = "0e27ad2cd5e4699efdc02daec181b4ffb0b9e31ec4c96f0f67899804aebbcde8";
+      name = "kwindowsystem-5.73.0.tar.xz";
     };
   };
   kxmlgui = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kxmlgui-5.68.0.tar.xz";
-      sha256 = "6310e9a725a982d3b70672367c5858727437fe08c8e409458e48b6015c7bf10e";
-      name = "kxmlgui-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/kxmlgui-5.73.0.tar.xz";
+      sha256 = "093131f5f51497ec61e99bd3e19de9421643d3f6ddf0099a823a3d624596ebcb";
+      name = "kxmlgui-5.73.0.tar.xz";
     };
   };
   kxmlrpcclient = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/kxmlrpcclient-5.68.0.tar.xz";
-      sha256 = "e49f2ab649aafb292e01dacefb7b6f28fc596606764bef61e7ce622b67241324";
-      name = "kxmlrpcclient-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/portingAids/kxmlrpcclient-5.73.0.tar.xz";
+      sha256 = "c0d089c389f59bb7cb6fba629f3e122e70fda19a69f419ff8bd1d9fcee95a047";
+      name = "kxmlrpcclient-5.73.0.tar.xz";
     };
   };
   modemmanager-qt = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/modemmanager-qt-5.68.0.tar.xz";
-      sha256 = "9c0febf18a04b69e47cffdb4563390a79a4a673da856502cbf50d5c7707670ec";
-      name = "modemmanager-qt-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/modemmanager-qt-5.73.0.tar.xz";
+      sha256 = "87f3864b2b53b4e309bca1feefa613455f60e4699969a569694f6813447e1fcd";
+      name = "modemmanager-qt-5.73.0.tar.xz";
     };
   };
   networkmanager-qt = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/networkmanager-qt-5.68.0.tar.xz";
-      sha256 = "6a9bea5e6d58f5322848114e4e827edadee6b5a890a3549446ff23a568325e2c";
-      name = "networkmanager-qt-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/networkmanager-qt-5.73.0.tar.xz";
+      sha256 = "b909feafc0a9a18b59744e0f1973c5357f67bbd50b59afa82cf55955dae7d41f";
+      name = "networkmanager-qt-5.73.0.tar.xz";
     };
   };
   oxygen-icons5 = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/oxygen-icons5-5.68.0.tar.xz";
-      sha256 = "75a8113e567d8cbba57bda3c8829d116d58ebf6bc5ace88aed7700b28a00c463";
-      name = "oxygen-icons5-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/oxygen-icons5-5.73.0.tar.xz";
+      sha256 = "662cd9644e393c69dccb538cdd4280253be812f80704c992ada228c0c32c2bbc";
+      name = "oxygen-icons5-5.73.0.tar.xz";
     };
   };
   plasma-framework = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/plasma-framework-5.68.0.tar.xz";
-      sha256 = "d27c7a62231784ecad1246f8a81b02fd6db2e9818244a06650fd6c972a69ea74";
-      name = "plasma-framework-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/plasma-framework-5.73.0.tar.xz";
+      sha256 = "e5415143f0a08cd75cf758b0692021d2a2febdcb1364e2aa1e5c8fbeee148c93";
+      name = "plasma-framework-5.73.0.tar.xz";
     };
   };
   prison = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/prison-5.68.0.tar.xz";
-      sha256 = "22e2b8e9ca06e4fb7ab91afeddbaebe6e2b6792bbcd5ba6c440c6fad0df176b7";
-      name = "prison-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/prison-5.73.0.tar.xz";
+      sha256 = "a2b135ffdf1af240366f3fb077c02c02094fb1706c6e84fab5186802544a5b87";
+      name = "prison-5.73.0.tar.xz";
     };
   };
   purpose = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/purpose-5.68.0.tar.xz";
-      sha256 = "c8c8f8244b568e52b4c02b89b71611bb8ba7cd07173645caa022b4bd90b41ab0";
-      name = "purpose-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/purpose-5.73.0.tar.xz";
+      sha256 = "6f4d440cb708b636430e3206f879ca5c2e6cdfcf62f92ce173d43e291fbeed32";
+      name = "purpose-5.73.0.tar.xz";
     };
   };
   qqc2-desktop-style = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/qqc2-desktop-style-5.68.0.tar.xz";
-      sha256 = "0f522861e5757de6a1205c86a2e5f8d2a7375c96eac1ece95d03a35858dc7b03";
-      name = "qqc2-desktop-style-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/qqc2-desktop-style-5.73.0.tar.xz";
+      sha256 = "290b3637be0c3740e92cdbb1421aef8bf1a8df36218f9d7d120e8422d14c3fdd";
+      name = "qqc2-desktop-style-5.73.0.tar.xz";
     };
   };
   solid = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/solid-5.68.0.tar.xz";
-      sha256 = "472c1934b3c9cf917f28ac0e5b0864de442b96852744c301d88d8ab7269d74c3";
-      name = "solid-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/solid-5.73.0.tar.xz";
+      sha256 = "7366b64438a1ca7a42126e67d352e371227b46418ce961321d358f2eb90c0933";
+      name = "solid-5.73.0.tar.xz";
     };
   };
   sonnet = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/sonnet-5.68.0.tar.xz";
-      sha256 = "079c4f5fcb9fe670e1242b18648e178aaa01eb81dbdfc881805eea1ec585bd67";
-      name = "sonnet-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/sonnet-5.73.0.tar.xz";
+      sha256 = "009f76fc4317e407d30c4e162a807d620a95217f5db271a14b1f9fc4339d232c";
+      name = "sonnet-5.73.0.tar.xz";
     };
   };
   syndication = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/syndication-5.68.0.tar.xz";
-      sha256 = "0715fc1b7312b5081521b781d0878d88cc70dcb77272ee173cecca03cc221fd3";
-      name = "syndication-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/syndication-5.73.0.tar.xz";
+      sha256 = "2a65972ef5183edb0bd8b3804dae129ae8f4a4469287711e77fc636e90b8a954";
+      name = "syndication-5.73.0.tar.xz";
     };
   };
   syntax-highlighting = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/syntax-highlighting-5.68.0.tar.xz";
-      sha256 = "a857c743aa60b21eea7e4b986e8b195882aa2c18358412e767e68d93ce35e134";
-      name = "syntax-highlighting-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/syntax-highlighting-5.73.0.tar.xz";
+      sha256 = "51ed4a68ba42d0dc88d91a0c11ac55ada199b7e93b0ff74b80b5e9304fe8901b";
+      name = "syntax-highlighting-5.73.0.tar.xz";
     };
   };
   threadweaver = {
-    version = "5.68.0";
+    version = "5.73.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.68/threadweaver-5.68.0.tar.xz";
-      sha256 = "e28c0bfff375b3e1e9e4eec72f0a804f3f41c4ec5fd59af9b951708d229eff64";
-      name = "threadweaver-5.68.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.73/threadweaver-5.73.0.tar.xz";
+      sha256 = "7e1152a1cf73f841c3be5d73cb0d5e6e29ec700be859c94275c5c00e49488d38";
+      name = "threadweaver-5.73.0.tar.xz";
     };
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/kdsoap/default.nix b/nixpkgs/pkgs/development/libraries/kdsoap/default.nix
new file mode 100644
index 000000000000..dde2e5cb1a77
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/kdsoap/default.nix
@@ -0,0 +1,39 @@
+{ mkDerivation, lib, fetchurl
+, cmake
+, qtbase
+}:
+
+let
+  version = "1.9.0";
+in
+
+mkDerivation {
+  pname = "kdsoap";
+  inherit version;
+  meta = {
+    description = "A Qt-based client-side and server-side SOAP component";
+    longDescription = ''
+      KD Soap is a Qt-based client-side and server-side SOAP component.
+
+      It can be used to create client applications for web services and also
+      provides the means to create web services without the need for any further
+      component such as a dedicated web server.
+    '';
+    license = with lib.licenses; [ gpl2 gpl3 lgpl21 ];
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+  src = fetchurl {
+    url = "https://github.com/KDAB/KDSoap/releases/download/kdsoap-${version}/kdsoap-${version}.tar.gz";
+    sha256 = "0a28k48cmagqxhaayyrqnxsx1zbvw4f06dgs16kl33xhbinn5fg3";
+  };
+  outputs = [ "out" "dev" ];
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ qtbase ];
+  postInstall = ''
+    moveToOutput bin/kdwsdl2cpp "$dev"
+    sed -i "$out/lib/cmake/KDSoap/KDSoapTargets.cmake" \
+        -e "/^  INTERFACE_INCLUDE_DIRECTORIES/ c   INTERFACE_INCLUDE_DIRECTORIES \"$dev/include\""
+    sed -i "$out/lib/cmake/KDSoap/KDSoapTargets-release.cmake" \
+        -e "s@$out/bin@$dev/bin@"
+  '';
+}
diff --git a/nixpkgs/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix b/nixpkgs/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix
index 3704cbb7794c..a42f1c0a513c 100644
--- a/nixpkgs/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix
+++ b/nixpkgs/pkgs/development/libraries/khronos-ocl-icd-loader/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "khronos-ocl-icd-loader-${version}";
-  version = "2020.03.13";
+  version = "2020.06.16";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "OpenCL-ICD-Loader";
     rev = "v${version}";
-    sha256 = "0zk6fyfrklx8a848613rfcx0y4yn0dsxkxzzl9pgdh9i6qdfjj9k";
+    sha256 = "0v2yi6d3g5qshzy6pjic09c5irwgds106yvr93q62f32psfblnmy";
   };
 
   patches = stdenv.lib.lists.optional withTracing ./tracing.patch;
diff --git a/nixpkgs/pkgs/development/libraries/kmsxx/default.nix b/nixpkgs/pkgs/development/libraries/kmsxx/default.nix
index 740248a7ae8f..5bd311af2d85 100644
--- a/nixpkgs/pkgs/development/libraries/kmsxx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kmsxx/default.nix
@@ -3,14 +3,14 @@
 
 stdenv.mkDerivation {
   pname = "kmsxx";
-  version = "2020-02-14";
+  version = "2020-08-04";
 
   src = fetchFromGitHub {
     owner = "tomba";
     repo = "kmsxx";
     fetchSubmodules = true;
-    rev = "7c5e645112a899ad018219365c3898b0e896353f";
-    sha256 = "1hj4gk4gwlvpjprjbrmrbrzqjhdgszsndrb1i4f9z7mjvdv8gij2";
+    rev = "38bee3092f2d477f1baebfcae464f888d3d04bbe";
+    sha256 = "0xz4m9bk0naawxwpx5cy1j3cm6c8c9m5y551csk88y88x1g0z0xh";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/libraries/kpmcore/default.nix b/nixpkgs/pkgs/development/libraries/kpmcore/default.nix
index 52e6264843bf..7903fc746390 100644
--- a/nixpkgs/pkgs/development/libraries/kpmcore/default.nix
+++ b/nixpkgs/pkgs/development/libraries/kpmcore/default.nix
@@ -3,15 +3,12 @@
 , libatasmart, parted
 , utillinux }:
 
-let
+stdenv.mkDerivation rec {
   pname = "kpmcore";
-
-in stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
   version = "3.3.0";
 
   src = fetchurl {
-    url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
+    url = "mirror://kde/stable/${pname}/${version}/src/${pname}-${version}.tar.xz";
     sha256 = "0s6v0jfrhjg31ri5p6h9n4w29jvasf5dj954j3vfpzl91lygmmmq";
   };
 
@@ -24,12 +21,14 @@ in stdenv.mkDerivation rec {
 
     utillinux # needs blkid (note that this is not provided by utillinux-compat)
   ];
+
   nativeBuildInputs = [ extra-cmake-modules ];
+
   enableParallelBuilding = true;
 
   meta = with stdenv.lib; {
     maintainers = with lib.maintainers; [ peterhoeg ];
-    # The build requires at least Qt 5.12:
-    broken = lib.versionOlder qtbase.version "5.12.0";
+    # The build requires at least Qt 5.14:
+    broken = lib.versionOlder qtbase.version "5.14";
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/lcms2/default.nix b/nixpkgs/pkgs/development/libraries/lcms2/default.nix
index 2de11a3bd406..0cf622858900 100644
--- a/nixpkgs/pkgs/development/libraries/lcms2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lcms2/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libtiff, libjpeg, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "lcms2-2.9";
+  name = "lcms2-2.11";
 
   src = fetchurl {
     url = "mirror://sourceforge/lcms/${name}.tar.gz";
-    sha256 = "083xisy6z01zhm7p7rgk4bx9d6zlr8l20qkfv1g29ylnhgwzvij8";
+    sha256 = "0bkpf315925lhmd9i4mzjnkq5dh255r1lms0c0vzzkfpwk4bjjfw";
   };
 
   outputs = [ "bin" "dev" "out" ];
diff --git a/nixpkgs/pkgs/development/libraries/ldb/default.nix b/nixpkgs/pkgs/development/libraries/ldb/default.nix
index 33a9974211f6..9810234eefa6 100644
--- a/nixpkgs/pkgs/development/libraries/ldb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ldb/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ldb";
-  version = "2.1.3";
+  version = "2.2.0";
 
   src = fetchurl {
     url = "mirror://samba/ldb/${pname}-${version}.tar.gz";
-    sha256 = "0xkps414ndb87abla7dlv44ndnfg5r5vwgmkm3ngcq9knbv1x6w7";
+    sha256 = "0pxxb3sn9lignkf80kndd84shxqk9m2qwimz62gzb6khd4bvajqk";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/leatherman/default.nix b/nixpkgs/pkgs/development/libraries/leatherman/default.nix
index 8a34f05f6cf0..4623e5ca70ef 100644
--- a/nixpkgs/pkgs/development/libraries/leatherman/default.nix
+++ b/nixpkgs/pkgs/development/libraries/leatherman/default.nix
@@ -2,21 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "leatherman";
-  version = "1.12.0";
+  version = "1.12.1";
 
   src = fetchFromGitHub {
-    sha256 = "00qigglp67a14ki4dhjxd3j540a80rkmzhysx7hra8v2rgbsqgj8";
+    sha256 = "1mgd7jqfg6f0y2yrh2m1njlwrpd15kas88776jdd5fsl7gvb5khn";
     rev = version;
     repo = "leatherman";
     owner = "puppetlabs";
   };
 
-  NIX_CFLAGS_COMPILE = builtins.toString [
-    "-Wno-error=ignored-qualifiers"
-    "-Wno-error=class-memaccess"
-    "-Wno-error=catch-value"
-    "-Wno-error=deprecated-copy"
-  ];
+  NIX_CFLAGS_COMPILE = "-Wno-error";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ boost curl ruby ];
@@ -28,7 +23,7 @@ stdenv.mkDerivation rec {
     description = "A collection of C++ and CMake utility libraries";
     license = licenses.asl20;
     maintainers = [ maintainers.womfoo ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/libraries/leptonica/default.nix b/nixpkgs/pkgs/development/libraries/leptonica/default.nix
index 456a14f72b1d..a0f0814fec53 100644
--- a/nixpkgs/pkgs/development/libraries/leptonica/default.nix
+++ b/nixpkgs/pkgs/development/libraries/leptonica/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "leptonica";
-  version = "1.79.0";
+  version = "1.80.0";
 
   src = fetchurl {
     url = "http://www.leptonica.org/source/${pname}-${version}.tar.gz";
-    sha256 = "1n004gv1dj3pq1fcnfdclvvx5nang80336aa67nvs3nnqp4ncn84";
+    sha256 = "192bs676ind8627f0v3v8d1q7r4xwc7q0zvbdbxn1fgvmv14d77c";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/nixpkgs/pkgs/development/libraries/libLAS/default.nix b/nixpkgs/pkgs/development/libraries/libLAS/default.nix
index 818e2ad85b00..95569c0a8132 100644
--- a/nixpkgs/pkgs/development/libraries/libLAS/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libLAS/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, boost, cmake, gdal, libgeotiff, libtiff, LASzip, fixDarwinDylibNames }:
+{ stdenv, fetchurl, boost, cmake, gdal, libgeotiff, libtiff, LASzip2, fixDarwinDylibNames }:
 
 stdenv.mkDerivation rec {
   name = "libLAS-1.8.1";
@@ -9,13 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "0xjfxb3ydvr2258ji3spzyf81g9caap19ql2pk91wiivqsc4mnws";
   };
 
-  buildInputs = [ boost cmake gdal libgeotiff libtiff LASzip ]
+  buildInputs = [ boost cmake gdal libgeotiff libtiff LASzip2 ]
                 ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
 
   cmakeFlags = [
     "-DGDAL_CONFIG=${gdal}/bin/gdal-config"
     "-DWITH_LASZIP=ON"
-    "-DLASZIP_INCLUDE_DIR=${LASzip}/include"
+    # libLAS is currently not compatible with LASzip 3,
+    # see https://github.com/libLAS/libLAS/issues/144.
+    "-DLASZIP_INCLUDE_DIR=${LASzip2}/include"
     "-DCMAKE_EXE_LINKER_FLAGS=-pthread"
   ];
 
diff --git a/nixpkgs/pkgs/development/libraries/libaacs/default.nix b/nixpkgs/pkgs/development/libraries/libaacs/default.nix
index 2b3ef8c99c81..d6c90ee172b6 100644
--- a/nixpkgs/pkgs/development/libraries/libaacs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libaacs/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libaacs";
-  version  = "0.10.0";
+  version  = "0.11.0";
 
   src = fetchurl {
     url = "http://get.videolan.org/libaacs/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "1zhjdcph8sqx7ak35s22kc736icwq135jlypggkp6vqyyygb3xlk";
+    sha256 = "11skjqjlldmbjkyxdcz4fmcn6y4p95r1xagbcnjy4ndnzf0l723d";
   };
 
   buildInputs = [ libgcrypt libgpgerror ];
diff --git a/nixpkgs/pkgs/development/libraries/libappindicator/default.nix b/nixpkgs/pkgs/development/libraries/libappindicator/default.nix
index dc0542c21267..7a7ad22756c7 100644
--- a/nixpkgs/pkgs/development/libraries/libappindicator/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libappindicator/default.nix
@@ -1,11 +1,11 @@
 # TODO: Resolve the issues with the Mono bindings.
 
-{ stdenv, fetchurl, fetchpatch, lib
+{ stdenv, fetchgit, lib
 , pkgconfig, autoreconfHook
 , glib, dbus-glib, gtkVersion ? "3"
 , gtk2 ? null, libindicator-gtk2 ? null, libdbusmenu-gtk2 ? null
 , gtk3 ? null, libindicator-gtk3 ? null, libdbusmenu-gtk3 ? null
-, vala, gobject-introspection
+, gtk-doc, vala, gobject-introspection
 , monoSupport ? false, mono ? null, gtk-sharp-2_0 ? null
  }:
 
@@ -15,18 +15,17 @@ with lib;
 stdenv.mkDerivation rec {
   name = let postfix = if gtkVersion == "2" && monoSupport then "sharp" else "gtk${gtkVersion}";
           in "libappindicator-${postfix}-${version}";
-  version = "${versionMajor}.${versionMinor}";
-  versionMajor = "12.10";
-  versionMinor = "0";
+  version = "12.10.1+20.10.20200706.1";
 
   outputs = [ "out" "dev" ];
 
-  src = fetchurl {
-    url = "${meta.homepage}/${versionMajor}/${version}/+download/libappindicator-${version}.tar.gz";
-    sha256 = "17xlqd60v0zllrxp8bgq3k5a1jkj0svkqn8rzllcyjh8k0gpr46m";
+  src = fetchgit {
+    url = "https://git.launchpad.net/ubuntu/+source/libappindicator";
+    rev = "fe25e53bc7e39cd59ad6b3270cd7a6a9c78c4f44";
+    sha256 = "0xjvbl4gn7ra2fs6gn2g9s787kzb5cg9hv79iqsz949rxh4iw32d";
   };
 
-  nativeBuildInputs = [ pkgconfig autoreconfHook vala gobject-introspection ];
+  nativeBuildInputs = [ pkgconfig autoreconfHook vala gobject-introspection gtk-doc ];
 
   propagatedBuildInputs =
     if gtkVersion == "2"
@@ -39,14 +38,9 @@ stdenv.mkDerivation rec {
     then [ libindicator-gtk2 ] ++ optionals monoSupport [ mono gtk-sharp-2_0 ]
     else [ libindicator-gtk3 ]);
 
-  patches = [
-    # Remove python2 from libappindicator.
-    (fetchpatch {
-      name = "no-python.patch";
-      url = "https://src.fedoraproject.org/rpms/libappindicator/raw/8508f7a52437679fd95a79b4630373f08315f189/f/nopython.patch";
-      sha256 = "18b1xzvwsbhhfpbzf5zragij4g79pa04y1dk6v5ci1wsjvii725s";
-    })
-  ];
+  preAutoreconf = ''
+    gtkdocize
+  '';
 
   configureFlags = [
     "CFLAGS=-Wno-error"
diff --git a/nixpkgs/pkgs/development/libraries/libayatana-appindicator/default.nix b/nixpkgs/pkgs/development/libraries/libayatana-appindicator/default.nix
new file mode 100644
index 000000000000..84ecbc81ca57
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libayatana-appindicator/default.nix
@@ -0,0 +1,49 @@
+{ stdenv, fetchFromGitHub, lib
+, pkgconfig, autoreconfHook , gtk-doc
+, gtkVersion ? "3"
+, gtk2, libayatana-indicator-gtk2, libdbusmenu-gtk2
+, gtk3, libayatana-indicator-gtk3, libdbusmenu-gtk3
+, dbus-glib, python2, python2Packages
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libayatana-appindicator-gtk${gtkVersion}";
+  version = "0.5.4";
+
+  src = fetchFromGitHub {
+    owner = "AyatanaIndicators";
+    repo = "libayatana-appindicator";
+    rev = version;
+    sha256 = "0bqjqb7gabdk7mifk8azi630qw39z978f973fx2ylgdgr4a66j1v";
+  };
+
+  patchPhase = ''
+    substituteInPlace configure.ac \
+      --replace "codegendir pygtk-2.0" "codegendir pygobject-2.0"
+  '';
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook gtk-doc ];
+
+  buildInputs = [ dbus-glib python2 python2Packages.pygtk ]
+    ++ lib.lists.optional (gtkVersion == "2") libayatana-indicator-gtk2
+    ++ lib.lists.optional (gtkVersion == "3") libayatana-indicator-gtk3;
+
+  propagatedBuildInputs =
+    lib.lists.optionals (gtkVersion == "2") [ gtk2 libdbusmenu-gtk2 ]
+    ++ lib.lists.optionals (gtkVersion == "3") [ gtk3 libdbusmenu-gtk3 ];
+
+  preAutoreconf = ''
+    gtkdocize
+  '';
+
+  configureFlags = [ "--with-gtk=${gtkVersion}" ];
+
+  meta = with stdenv.lib; {
+    description = "Ayatana Application Indicators Shared Library";
+    homepage = "https://github.com/AyatanaIndicators/libayatana-appindicator";
+    changelog = "https://github.com/AyatanaIndicators/libayatana-appindicator/blob/${version}/ChangeLog";
+    license = [ licenses.gpl3 licenses.lgpl21 ];
+    maintainers = [ maintainers.nickhu ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libayatana-indicator/default.nix b/nixpkgs/pkgs/development/libraries/libayatana-indicator/default.nix
new file mode 100644
index 000000000000..778e06aa95ce
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libayatana-indicator/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, lib
+, pkgconfig, autoreconfHook
+, gtkVersion ? "3"
+, gtk2
+, gtk3
+, ayatana-ido
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libayatana-indicator-gtk${gtkVersion}";
+  version = "0.6.3";
+
+  src = fetchFromGitHub {
+    owner = "AyatanaIndicators";
+    repo = "libayatana-indicator";
+    rev = version;
+    sha256 = "1q9wmaw6pckwyrv0s7wkqzm1yrk031pbz4xbr8cwn75ixqyfcb28";
+  };
+
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
+
+  buildInputs = [ ayatana-ido ]
+    ++ lib.lists.optionals (gtkVersion == "2") [ gtk2 ]
+    ++ lib.lists.optionals (gtkVersion == "3") [ gtk3 ];
+
+  configureFlags = [ "--with-gtk=${gtkVersion}" ];
+
+  meta = with stdenv.lib; {
+    description = "Ayatana Indicators Shared Library";
+    homepage = "https://github.com/AyatanaIndicators/libayatana-indicator";
+    changelog = "https://github.com/AyatanaIndicators/libayatana-indicator/blob/${version}/ChangeLog";
+    license = licenses.gpl3;
+    maintainers = [ maintainers.nickhu ];
+    platforms = platforms.x86_64;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libbacktrace/default.nix b/nixpkgs/pkgs/development/libraries/libbacktrace/default.nix
new file mode 100644
index 000000000000..0032941f870e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libbacktrace/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, callPackage, fetchFromGitHub, enableStatic ? false, enableShared ? true }:
+let
+  yesno = b: if b then "yes" else "no";
+in stdenv.mkDerivation rec {
+  pname = "libbacktrace";
+  version = "2020-05-13";
+  src = fetchFromGitHub {
+    owner = "ianlancetaylor";
+    repo = pname;
+    rev = "9b7f216e867916594d81e8b6118f092ac3fcf704";
+    sha256 = "0qr624v954gnfkmpdlfk66sxz3acyfmv805rybsaggw5gz5sd1nh";
+  };
+  configureFlags = [
+    "--enable-static=${yesno enableStatic}"
+    "--enable-shared=${yesno enableShared}"
+  ];
+  meta = with stdenv.lib; {
+    description = "A C library that may be linked into a C/C++ program to produce symbolic backtraces";
+    homepage = https://github.com/ianlancetaylor/libbacktrace;
+    maintainers = with maintainers; [ twey ];
+    license = with licenses; [ bsd3 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libbap/default.nix b/nixpkgs/pkgs/development/libraries/libbap/default.nix
index 09cbafa17bff..411c3ae740f2 100644
--- a/nixpkgs/pkgs/development/libraries/libbap/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libbap/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation {
   pname = "libbap";
-  version = "master-2019-04-05";
+  version = "master-2019-11-15";
 
   src = fetchFromGitHub {
     owner = "BinaryAnalysisPlatform";
     repo = "bap-bindings";
-    rev = "1a89db62f1239a15d310b400f74e151c0a64f37f";
-    sha256 = "0mln9adjgxzhjmjayq06ahgiay4vj5kmnzdxqz3nsik9h3npycd6";
+    rev = "1a30dd3e1df18c432a83a7038b555662d6982ae3";
+    sha256 = "140gmak2kymh3r0fagb6ms66lmvwhhqj8pcd3qxc1p4ar330fwrh";
   };
 
   nativeBuildInputs = [ autoreconfHook which ];
diff --git a/nixpkgs/pkgs/development/libraries/libblockdev/default.nix b/nixpkgs/pkgs/development/libraries/libblockdev/default.nix
index 4982157c3ba0..7628212800f4 100644
--- a/nixpkgs/pkgs/development/libraries/libblockdev/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libblockdev/default.nix
@@ -6,13 +6,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "libblockdev";
-  version = "2.23";
+  version = "2.24";
 
   src = fetchFromGitHub {
     owner = "storaged-project";
     repo = "libblockdev";
     rev = "${version}-1";
-    sha256 = "09gp9h05vy3llhnrg98gny8g57kgwnbi8522qyzjwyv7nmhs4zhz";
+    sha256 = "1gzwlwdv0jyb3lh2n016limy2ngfdsa05x7jvg9llf2ls672nq89";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
diff --git a/nixpkgs/pkgs/development/libraries/libblocksruntime/default.nix b/nixpkgs/pkgs/development/libraries/libblocksruntime/default.nix
index 7863e596e1b8..aff56994f498 100644
--- a/nixpkgs/pkgs/development/libraries/libblocksruntime/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libblocksruntime/default.nix
@@ -24,4 +24,10 @@ stdenv.mkDerivation {
   doCheck = false; # hasdescriptor.c test fails, hrm.
 
   installPhase = ''prefix="/" DESTDIR=$out ./installlib'';
+
+  meta = with stdenv.lib; {
+    description = "Installs the BlocksRuntime library from the compiler-rt";
+    homepage = "https://github.com/mackyle/blocksruntime";
+    license = licenses.mit;
+  };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libbytesize/default.nix b/nixpkgs/pkgs/development/libraries/libbytesize/default.nix
index ec14b2a6091e..c93a59d462fe 100644
--- a/nixpkgs/pkgs/development/libraries/libbytesize/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libbytesize/default.nix
@@ -4,7 +4,7 @@
 }:
 
 let
-  version = "2.3";
+  version = "2.4";
 in stdenv.mkDerivation rec {
   pname = "libbytesize";
   inherit version;
@@ -13,7 +13,7 @@ in stdenv.mkDerivation rec {
     owner = "storaged-project";
     repo = "libbytesize";
     rev = version;
-    sha256 = "1nrlmn63k0ix1yzn8v4lni5n5b4c0b6w9f33p1ig113ymmdvcc0h";
+    sha256 = "1kq0hnw2yxjdmcrwvgp0x4j1arkka23k8vp2l6nqcw9lc15x18fp";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
diff --git a/nixpkgs/pkgs/development/libraries/libcint/default.nix b/nixpkgs/pkgs/development/libraries/libcint/default.nix
index 4a83175f66bf..55ba8d7b3017 100644
--- a/nixpkgs/pkgs/development/libraries/libcint/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcint/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libcint";
-  version = "3.0.20";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "sunqm";
     repo = "libcint";
     rev = "v${version}";
-    sha256 = "0iqqq568q9sxppr08rvmpyjq0n82pm04x9rxhh3mf20x1ds7ngj5";
+    sha256 = "0z1gavi7aacx68fmyzy90vzv5kff844lnxc6habs6y377dr3rwwy";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/libcrafter/default.nix b/nixpkgs/pkgs/development/libraries/libcrafter/default.nix
index d91032126eb4..20bcc9183ec4 100644
--- a/nixpkgs/pkgs/development/libraries/libcrafter/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcrafter/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libcrafter";
-  version = "0.3";
+  version = "1.0";
 
   src = fetchzip {
     url = "https://github.com/pellegre/libcrafter/archive/version-${version}.zip";
-    sha256 = "04lpmshh4wb1dav03p6rnskpd1zmmvhv80xwn8v7l8faps5gvjp4";
+    sha256 = "1d2vgxawdwk2zg3scxclxdby1rhghmivly8azdjja89kw7gls9xl";
   };
 
   preConfigure = "cd libcrafter";
diff --git a/nixpkgs/pkgs/development/libraries/libcryptui/default.nix b/nixpkgs/pkgs/development/libraries/libcryptui/default.nix
index e3db41c73e1a..829d16e59d06 100644
--- a/nixpkgs/pkgs/development/libraries/libcryptui/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libcryptui/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, intltool, glib, gnome3, gtk3, gnupg20, gpgme, dbus-glib, libgnome-keyring }:
+{ stdenv, fetchurl, autoreconfHook, pkgconfig, intltool, glib, gnome3, gtk3, gnupg22, gpgme, dbus-glib, libgnome-keyring }:
 
 stdenv.mkDerivation rec {
   pname = "libcryptui";
@@ -9,8 +9,12 @@ stdenv.mkDerivation rec {
     sha256 = "0rh8wa5k2iwbwppyvij2jdxmnlfjbna7kbh2a5n7zw4nnjkx3ski";
   };
 
-  nativeBuildInputs = [ pkgconfig intltool ];
-  buildInputs = [ glib gtk3 gnupg20 gpgme dbus-glib libgnome-keyring ];
+  patches = [
+    ./fix-gnupg-2.2.patch # based on https://gitlab.gnome.org/GNOME/libcryptui/-/commit/b05e301d1b264a5d8f07cb96e5edc243d99bff79.patch
+  ];
+
+  nativeBuildInputs = [ pkgconfig intltool autoreconfHook ];
+  buildInputs = [ glib gtk3 gnupg22 gpgme dbus-glib libgnome-keyring ];
   propagatedBuildInputs = [ dbus-glib ];
 
   passthru = {
diff --git a/nixpkgs/pkgs/development/libraries/libcryptui/fix-gnupg-2.2.patch b/nixpkgs/pkgs/development/libraries/libcryptui/fix-gnupg-2.2.patch
new file mode 100644
index 000000000000..50d5e0c82c1c
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libcryptui/fix-gnupg-2.2.patch
@@ -0,0 +1,26 @@
+From b05e301d1b264a5d8f07cb96e5edc243d99bff79 Mon Sep 17 00:00:00 2001
+From: Antoine Jacoutot <ajacoutot@gnome.org>
+Date: Fri, 10 Nov 2017 08:55:55 +0100
+Subject: [PATCH] Accept GnuPG 2.2.x as supported version
+
+https://bugzilla.gnome.org/show_bug.cgi?id=790152
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4486e7b2..be5b28b4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -95,7 +95,7 @@ AC_ARG_ENABLE(gpg-check,
+ 	DO_CHECK=$enableval, DO_CHECK=yes)
+ 
+ if test	"$DO_CHECK" = "yes"; then
+-	accepted_versions="1.2 1.4 2.0"
++	accepted_versions="1.2 1.4 2.0 2.2"
+ 	AC_PATH_PROGS(GNUPG, [gpg gpg2], no)
+ 	AC_DEFINE_UNQUOTED(GNUPG, "$GNUPG", [Path to gpg executable.])
+ 	ok="no"
+-- 
+GitLab
+
diff --git a/nixpkgs/pkgs/development/libraries/libde265/default.nix b/nixpkgs/pkgs/development/libraries/libde265/default.nix
index c9f45280bdad..7c136dd7805d 100644
--- a/nixpkgs/pkgs/development/libraries/libde265/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libde265/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, autoreconfHook, pkgconfig }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.5";
+  version = "1.0.6";
   pname = "libde265";
 
   src = fetchFromGitHub {
     owner = "strukturag";
     repo = "libde265";
     rev = "v${version}";
-    sha256 = "1qisj8ryzbknam3hk81rq70fsd9mcpxm898bqygvbsmbwyvmz3pg";
+    sha256 = "0ipccyavlgf7hfzx1g8bvzg62xq10vcxvwgq70r3z3j6mdvmrzjp";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/nixpkgs/pkgs/development/libraries/libdigidoc/default.nix b/nixpkgs/pkgs/development/libraries/libdigidoc/default.nix
index 0acab6023312..5936853dcbcb 100644
--- a/nixpkgs/pkgs/development/libraries/libdigidoc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdigidoc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, cmake, openssl, pcsclite, opensc, libxml2 }:
+{ stdenv, fetchurl, cmake, openssl, pcsclite, opensc, libxml2, Security }:
 
 stdenv.mkDerivation rec {
 
@@ -12,13 +12,16 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ openssl pcsclite opensc libxml2 ];
+  buildInputs = [ openssl pcsclite opensc libxml2 ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ Security ];
+
+  cmakeFlags = stdenv.lib.optionals stdenv.isDarwin [ "-DFRAMEWORK=OFF" ];
 
   meta = with stdenv.lib; {
     description = "Library for creating DigiDoc signature files";
-    homepage = "http://www.id.ee/";
+    homepage = "https://github.com/open-eid/libdigidoc";
     license = licenses.lgpl2;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = [ maintainers.jagajaga ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix b/nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix
index 4052f6e45d72..940093ed4ba4 100644
--- a/nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdigidocpp/default.nix
@@ -2,12 +2,12 @@
 , xercesc, xml-security-c, pkgconfig, xsd, zlib, xalanc, xxd }:
 
 stdenv.mkDerivation rec {
-  version = "3.14.2";
+  version = "3.14.3";
   pname = "libdigidocpp";
 
   src = fetchurl {
      url = "https://github.com/open-eid/libdigidocpp/releases/download/v${version}/libdigidocpp-${version}.tar.gz";
-     sha256 = "0d3p72gvnj00bxl6lzh6n5x1r37wj54mzzv700gngcvr3m62lkbv";
+     sha256 = "1hq1q2frqnm4wxcfr7vn8kqwyfdz3hx22w40kn69zh140pig6jc5";
   };
 
   nativeBuildInputs = [ cmake pkgconfig xxd ];
diff --git a/nixpkgs/pkgs/development/libraries/libdrm/cross-build-nm-path.patch b/nixpkgs/pkgs/development/libraries/libdrm/cross-build-nm-path.patch
index 478534e65e51..547ef0d09691 100644
--- a/nixpkgs/pkgs/development/libraries/libdrm/cross-build-nm-path.patch
+++ b/nixpkgs/pkgs/development/libraries/libdrm/cross-build-nm-path.patch
@@ -17,18 +17,17 @@ Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
  2 files changed, 7 insertions(+), 1 deletion(-)
 
 diff --git a/meson.build b/meson.build
-index e292554a..64607139 100644
---- a/meson.build
-+++ b/meson.build
-@@ -327,7 +327,7 @@ pkg.generate(
- )
- 
- env_test = environment()
--env_test.set('NM', find_program('nm').path())
-+env_test.set('NM', find_program(get_option('nm-path')).path())
- 
- if with_libkms
-   subdir('libkms')
+--- meson.build.orig	2020-06-18 11:13:57.716321962 +0200
++++ meson.build	2020-06-18 11:19:50.456861311 +0200
+@@ -45,7 +45,7 @@
+ cc = meson.get_compiler('c')
+
+ symbols_check = find_program('symbols-check.py')
+-prog_nm = find_program('nm')
++prog_nm = find_program(get_option('nm-path'))
+
+ # Check for atomics
+ intel_atomics = false
 diff --git a/meson_options.txt b/meson_options.txt
 index 8af33f1c..b4f46a52 100644
 --- a/meson_options.txt
diff --git a/nixpkgs/pkgs/development/libraries/libdrm/default.nix b/nixpkgs/pkgs/development/libraries/libdrm/default.nix
index 0d6ff189765f..328c85830fbf 100644
--- a/nixpkgs/pkgs/development/libraries/libdrm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libdrm/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libdrm";
-  version = "2.4.100";
+  version = "2.4.102";
 
   src = fetchurl {
-    url = "https://dri.freedesktop.org/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "0p8a1l3a3s40i81mawm8nhrbk7p97ss05qkawp1yx73c30lchz67";
+    url = "https://dri.freedesktop.org/${pname}/${pname}-${version}.tar.xz";
+    sha256 = "0nx0bd9dhymdsd99v4ifib77yjirkvkxf5hzdkbr7qr8dhrzkjwb";
   };
 
   outputs = [ "out" "dev" "bin" ];
@@ -17,15 +17,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ libpthreadstubs libpciaccess ]
     ++ lib.optional withValgrind valgrind-light;
 
-  patches = [ ./cross-build-nm-path.patch ] ++
-    lib.optionals stdenv.hostPlatform.isMusl [
-      # Fix tests not building on musl because they use the glibc-specific
-      # (non-POSIX) `ioctl()` type signature. See #66441.
-      (fetchpatch {
-        url = "https://raw.githubusercontent.com/openembedded/openembedded-core/30a2af80f5f8c8ddf0f619e4f50451b02baa22dd/meta/recipes-graphics/drm/libdrm/musl-ioctl.patch";
-        sha256 = "0rdmh4k5kb80hhk1sdhlil30yf0s8d8w0fnq0hzyvw3ir1mki3by";
-      })
-    ];
+  patches = [ ./cross-build-nm-path.patch ];
 
   postPatch = ''
     for a in */*-symbol-check ; do
diff --git a/nixpkgs/pkgs/development/libraries/libe57format/default.nix b/nixpkgs/pkgs/development/libraries/libe57format/default.nix
new file mode 100644
index 000000000000..6bb48c9530c8
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libe57format/default.nix
@@ -0,0 +1,55 @@
+{
+  stdenv,
+  cmake,
+  fetchFromGitHub,
+  boost,
+  xercesc,
+  icu,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libe57format";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner = "asmaloney";
+    repo = "libE57Format";
+    rev = "v${version}";
+    sha256 = "05z955q68wjbd9gc5fw32nqg69xc82n2x75j5vchxzkgnn3adcpi";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  buildInputs = [
+    boost
+    icu
+    xercesc
+  ];
+
+  # The build system by default builds ONLY static libraries, and with
+  # `-DE57_BUILD_SHARED=ON` builds ONLY shared libraries, see:
+  #     https://github.com/asmaloney/libE57Format/issues/48
+  #     https://github.com/asmaloney/libE57Format/blob/f657d470da5f0d185fe371c4c011683f6e30f0cb/CMakeLists.txt#L82-L89
+  # We support building both by building statically and then
+  # building an .so file here manually.
+  # The way this is written makes this Linux-only for now.
+  postInstall = ''
+    cd $out/lib
+    g++ -Wl,--no-undefined -shared -o libE57FormatShared.so -L. -Wl,-whole-archive -lE57Format -Wl,-no-whole-archive -lxerces-c
+    mv libE57FormatShared.so libE57Format.so
+
+    if [ "$dontDisableStatic" -ne "1" ]; then
+      rm libE57Format.a
+    fi
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Library for reading & writing the E57 file format (fork of E57RefImpl)";
+    homepage = "https://github.com/asmaloney/libE57Format";
+    license = licenses.boost;
+    maintainers = with maintainers; [ chpatrick nh2 ];
+    platforms = platforms.linux; # because of the .so buiding in `postInstall` above
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libebml/default.nix b/nixpkgs/pkgs/development/libraries/libebml/default.nix
index cbfcf5af042b..29c4b4c3b09f 100644
--- a/nixpkgs/pkgs/development/libraries/libebml/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libebml/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libebml";
-  version = "1.3.10";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner  = "Matroska-Org";
     repo   = "libebml";
     rev    = "release-${version}";
-    sha256 = "1vn0g4hsygrm29qvnzhrblpwjcy2x6swf799ibxv3bzpi1j0gris";
+    sha256 = "052v4mjynndj9xgfl4lmlsnx9ai0pah0kjyr5fm34l7gj8vhc5s7";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/nixpkgs/pkgs/development/libraries/libevdev/default.nix b/nixpkgs/pkgs/development/libraries/libevdev/default.nix
index c769006e0bff..fdd5e20640ad 100644
--- a/nixpkgs/pkgs/development/libraries/libevdev/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libevdev/default.nix
@@ -2,22 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libevdev";
-  version = "1.9.0";
+  version = "1.9.1";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "17pb5375njb1r05xmk0r57a2j986ihglh2n5nqcylbag4rj8mqg7";
+    sha256 = "1jvsphdrs1i54ccjcn6ll26jy42am7h28lbsvwa6pmxgqm43qq7m";
   };
 
-  patches = [
-    # Fix libevdev-python tests on aarch64
-    # https://gitlab.freedesktop.org/libevdev/libevdev/merge_requests/63
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/libevdev/libevdev/commit/66113fe84f62bab3a672a336eb10b255d2aa5ce7.patch";
-      sha256 = "gZKr/P+/OqU69IGslP8CQlcGuyzA/ulcm+nGwHdis58=";
-    })
-  ];
-
   nativeBuildInputs = [ python3 ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/libraries/libevent/default.nix b/nixpkgs/pkgs/development/libraries/libevent/default.nix
index eaa2933505c4..880ba746bb9e 100644
--- a/nixpkgs/pkgs/development/libraries/libevent/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libevent/default.nix
@@ -6,11 +6,11 @@ assert sslSupport -> openssl != null;
 
 stdenv.mkDerivation rec {
   pname = "libevent";
-  version = "2.1.11";
+  version = "2.1.12";
 
   src = fetchurl {
     url = "https://github.com/libevent/libevent/releases/download/release-${version}-stable/libevent-${version}-stable.tar.gz";
-    sha256 = "0g988zqm45sj1hlhhz4il5z4dpi5dl74hzjwzl4md37a09iaqnx6";
+    sha256 = "1fq30imk8zd26x8066di3kpc5zyfc5z6frr3zll685zcx4dxxrlj";
   };
 
   # libevent_openssl is moved into its own output, so that openssl isn't present
diff --git a/nixpkgs/pkgs/development/libraries/libfilezilla/default.nix b/nixpkgs/pkgs/development/libraries/libfilezilla/default.nix
index 3bd549519943..455d42e30502 100644
--- a/nixpkgs/pkgs/development/libraries/libfilezilla/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libfilezilla/default.nix
@@ -1,24 +1,27 @@
 { stdenv
 , fetchurl
-
+, autoreconfHook
 , gettext
 , gnutls
 , nettle
 , pkgconfig
+, libiconv
+, ApplicationServices
 }:
 
 stdenv.mkDerivation rec {
   pname = "libfilezilla";
-  version = "0.22.0";
+  version = "0.24.1";
 
   src = fetchurl {
     url = "https://download.filezilla-project.org/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "0ylgxw1lxdqvayy5285mlfrkr9cvsgasy2zci6g6mv9rng261xn5";
+    sha256 = "sha256-/dW07hkWr3sdQC591GfwXfdiS7ZfuVoIdaA3EuzC1v0=";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig ];
 
-  buildInputs = [ gettext gnutls nettle ];
+  buildInputs = [ gettext gnutls nettle ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv ApplicationServices ];
 
   enableParallelBuilding = true;
 
@@ -27,6 +30,6 @@ stdenv.mkDerivation rec {
     description = "A modern C++ library, offering some basic functionality to build high-performing, platform-independent programs";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ pSub ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libgaminggear/default.nix b/nixpkgs/pkgs/development/libraries/libgaminggear/default.nix
index 1b528b98e858..c0aa67238bff 100644
--- a/nixpkgs/pkgs/development/libraries/libgaminggear/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgaminggear/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, cmake, pkgconfig, gettext
 , gtk2, libcanberra, libnotify, pcre, sqlite, xorg
+, harfbuzz
 }:
 
 stdenv.mkDerivation rec {
@@ -27,6 +28,9 @@ stdenv.mkDerivation rec {
     "-DINSTALL_LIBDIR=lib"
   ];
 
+  # https://sourceforge.net/p/libgaminggear/discussion/general/thread/b43a776b3a/
+  NIX_CFLAGS_COMPILE = [ "-I${harfbuzz.dev}/include/harfbuzz" ];
+
   postFixup = ''
     moveToOutput bin "$bin"
   '';
diff --git a/nixpkgs/pkgs/development/libraries/libgcrypt/default.nix b/nixpkgs/pkgs/development/libraries/libgcrypt/default.nix
index a3d515c50472..d49fa37325aa 100644
--- a/nixpkgs/pkgs/development/libraries/libgcrypt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgcrypt/default.nix
@@ -6,11 +6,11 @@ assert enableCapabilities -> stdenv.isLinux;
 
 stdenv.mkDerivation rec {
   pname = "libgcrypt";
-  version = "1.8.5";
+  version = "1.8.6";
 
   src = fetchurl {
     url = "mirror://gnupg/libgcrypt/${pname}-${version}.tar.bz2";
-    sha256 = "1hvsazms1bfd769q0ngl0r9g5i4m9mpz9jmvvrdzyzk3rfa2ljiv";
+    sha256 = "0xdrsxgqw5v7szshjdgdv60rgpvzzaqic32ahqrzr6bvc402gfhc";
   };
 
   outputs = [ "out" "dev" "info" ];
@@ -30,6 +30,10 @@ stdenv.mkDerivation rec {
   configureFlags = [ "--with-libgpg-error-prefix=${libgpgerror.dev}" ]
    ++ stdenv.lib.optional stdenv.hostPlatform.isMusl "--disable-asm";
 
+  # Necessary to generate correct assembly when compiling for aarch32 on
+  # aarch64
+  configurePlatforms = [ "host" "build" ];
+
   # Make sure libraries are correct for .pc and .la files
   # Also make sure includes are fixed for callers who don't use libgpgcrypt-config
   postFixup = ''
diff --git a/nixpkgs/pkgs/development/libraries/libgdiplus/default.nix b/nixpkgs/pkgs/development/libraries/libgdiplus/default.nix
index 1ff02a8709d4..70043d1132d0 100644
--- a/nixpkgs/pkgs/development/libraries/libgdiplus/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgdiplus/default.nix
@@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
 
   configureFlags = stdenv.lib.optional stdenv.cc.isClang "--host=${stdenv.hostPlatform.system}";
 
+  enableParallelBuilding = true;
+
   buildInputs =
     [ glib cairo fontconfig libtiff giflib
       libjpeg libpng libXrender libexif
diff --git a/nixpkgs/pkgs/development/libraries/libglvnd/default.nix b/nixpkgs/pkgs/development/libraries/libglvnd/default.nix
index 92cde8aef4cf..3a4737d483bf 100644
--- a/nixpkgs/pkgs/development/libraries/libglvnd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libglvnd/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libglvnd";
-  version = "1.3.1";
+  version = "1.3.2";
 
   src = fetchFromGitHub {
     owner = "NVIDIA";
     repo = "libglvnd";
     rev = "v${version}";
-    sha256 = "0mkzdzdxjxjl794rblq4mq33wmb8ikqmfswbqdbr8gw2kw4wlhdl";
+    sha256 = "10x7fgb114r4gikdg6flszl3kwzcb9y5qa7sj9936mk0zxhjaylz";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig python3 addOpenGLRunpath ];
diff --git a/nixpkgs/pkgs/development/libraries/libgpg-error/default.nix b/nixpkgs/pkgs/development/libraries/libgpg-error/default.nix
index 1e49a72096a3..972ca4c04a57 100644
--- a/nixpkgs/pkgs/development/libraries/libgpg-error/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgpg-error/default.nix
@@ -34,6 +34,16 @@ in stdenv.mkDerivation (rec {
   '' + lib.optionalString (stdenv.hostPlatform.isAarch32 && stdenv.hostPlatform.isMusl) ''
     ln -s src/syscfg/lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.arm-unknown-linux-musleabihf.h
     ln -s src/syscfg/lock-obj-pub.arm-unknown-linux-gnueabi.h src/syscfg/lock-obj-pub.linux-musleabihf.h
+  ''
+  # This file was accidentally excluded from the sdist until
+  # 013720333c6ec1d38791689bc49ba039d98e16b3, post release.
+  # TODO make unconditional next mass rebuild
+  + lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
+    cp ${fetchurl {
+      url = "https://raw.githubusercontent.com/gpg/libgpg-error/50e62b36ea01ed25d12c443088b85d4f41a2b3e1/src/gen-lock-obj.sh";
+      sha256 = "10cslipa6npalj869asaamj0w941dhmx0yjafpyyh69ypsg2m2c3";
+    }} ./src/gen-lock-obj.sh
+    chmod +x ./src/gen-lock-obj.sh
   '';
 
   outputs = [ "out" "dev" "info" ];
diff --git a/nixpkgs/pkgs/development/libraries/libgpiod/default.nix b/nixpkgs/pkgs/development/libraries/libgpiod/default.nix
index 6d77a28d55f3..68078bbc9a03 100644
--- a/nixpkgs/pkgs/development/libraries/libgpiod/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgpiod/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libgpiod";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchurl {
     url = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-${version}.tar.gz";
-    sha256 = "14iv8iwyvfznyifhkqz1bjh24dvb03gmpjn8v3fs6h734l93vvw5";
+    sha256 = "1bknh7kn5gxc8xwf913lsdm9zgn1bwj42nsnp6kbkyn6ip7s6c4r";
   };
 
   buildInputs = [ kmod ] ++ lib.optionals enablePython [ python3 ncurses ];
diff --git a/nixpkgs/pkgs/development/libraries/libguestfs/default.nix b/nixpkgs/pkgs/development/libraries/libguestfs/default.nix
index 411ae0a33160..234e1164893e 100644
--- a/nixpkgs/pkgs/development/libraries/libguestfs/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libguestfs/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig, autoreconfHook, makeWrapper
 , ncurses, cpio, gperf, cdrkit, flex, bison, qemu, pcre, augeas, libxml2
-, acl, libcap, libcap_ng, libconfig, systemd, fuse, yajl, libvirt, hivex
+, acl, libcap, libcap_ng, libconfig, systemd, fuse, yajl, libvirt, hivex, db
 , gmp, readline, file, numactl, xen, libapparmor, jansson
 , getopt, perlPackages, ocamlPackages
 , appliance ? null
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     ncurses cpio gperf jansson
     cdrkit flex bison qemu pcre augeas libxml2 acl libcap libcap_ng libconfig
-    systemd fuse yajl libvirt gmp readline file hivex
+    systemd fuse yajl libvirt gmp readline file hivex db
     numactl xen libapparmor getopt perlPackages.ModuleBuild
   ] ++ (with perlPackages; [ perl libintl_perl GetoptLong SysVirt ])
     ++ (with ocamlPackages; [ ocaml findlib ocamlbuild ocaml_libvirt gettext-stub ounit ])
diff --git a/nixpkgs/pkgs/development/libraries/libgumath/default.nix b/nixpkgs/pkgs/development/libraries/libgumath/default.nix
index 27a10507a58d..55e89d876649 100644
--- a/nixpkgs/pkgs/development/libraries/libgumath/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgumath/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation {
   pname = "libgumath";
-  version = "unstable-2018-11-27";
+  version = "unstable-2019-08-01";
 
   src = fetchFromGitHub {
-    owner = "plures";
+    owner = "xnd-project";
     repo = "gumath";
-    rev = "5a9d27883b40432246d6a93cd6133157267fd166";
-    sha256 = "0w2qzp7anxd1wzkvv5r2pdkkpgrnqzgrq47lrvpqc1i1wqzcwf0w";
+    rev = "360ed454105ac5615a7cb7d216ad25bc4181b876";
+    sha256 = "1wprkxpmjrk369fpw8rbq51r7jvqkcndqs209y7p560cnagmsxc6";
   };
 
   buildInputs = [ libndtypes libxnd ];
diff --git a/nixpkgs/pkgs/development/libraries/libgweather/default.nix b/nixpkgs/pkgs/development/libraries/libgweather/default.nix
index 51ee70f070c6..5493343fc239 100644
--- a/nixpkgs/pkgs/development/libraries/libgweather/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libgweather/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libgweather";
-  version = "3.36.0";
+  version = "3.36.1";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "0bd30g3facfcgf18y2110xhc7ijly313y49mpwdkvl482z0fxzyj";
+    sha256 = "0l74hc02rvzm4p530y539a67jwb080fqdaazdl8j0fr3xvq0j9yy";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig gettext vala gtk-doc docbook_xsl docbook_xml_dtd_43 gobject-introspection python3 ];
diff --git a/nixpkgs/pkgs/development/libraries/libhdhomerun/default.nix b/nixpkgs/pkgs/development/libraries/libhdhomerun/default.nix
index bcab7faa4127..73d53bdccd73 100644
--- a/nixpkgs/pkgs/development/libraries/libhdhomerun/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libhdhomerun/default.nix
@@ -1,12 +1,16 @@
-{ stdenv, fetchgit }:
+{ stdenv, fetchurl }:
 
-stdenv.mkDerivation {
-  name = "libhdhomerun-1efbcb";
+# libhdhomerun requires UDP port 65001 to be open in order to detect and communicate with tuners.
+# If your firewall is enabled, make sure to have something like:
+#   networking.firewall.allowedUDPPorts = [ 65001 ];
 
-  src = fetchgit {
-    url = "git://github.com/Silicondust/libhdhomerun.git";
-    rev = "1efbcb2b87b17a82f2b3d873d1c9cc1c6a3a9b77";
-    sha256 = "11iyrfs98xb50n9iqnwfphmmnn5w3mq2l9cjjpf8qp29cvs33cgy";
+stdenv.mkDerivation rec {
+  pname = "libhdhomerun";
+  version = "20200521";
+
+  src = fetchurl {
+    url = "https://download.silicondust.com/hdhomerun/libhdhomerun_${version}.tgz";
+    sha256 = "0s0683bwyd10n3r2sanlyd07ii3fmi3vl9w9a2rwlpcclzq3h456";
   };
 
   patchPhase = stdenv.lib.optionalString stdenv.isDarwin ''
@@ -23,10 +27,9 @@ stdenv.mkDerivation {
 
   meta = with stdenv.lib; {
     description = "Implements the libhdhomerun protocol for use with Silicondust HDHomeRun TV tuners";
-    homepage = "https://github.com/Silicondust/libhdhomerun";
-    repositories.git = "https://github.com/Silicondust/libhdhomerun.git";
-    license = stdenv.lib.licenses.lgpl2;
-    platforms = stdenv.lib.platforms.unix;
+    homepage = "https://www.silicondust.com/support/linux";
+    license = licenses.lgpl21Only;
+    platforms = platforms.unix;
     maintainers = [ maintainers.titanous ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libheif/default.nix b/nixpkgs/pkgs/development/libraries/libheif/default.nix
index d147820cff1c..fd527eb415b9 100644
--- a/nixpkgs/pkgs/development/libraries/libheif/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libheif/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libheif";
-  version = "1.7.0";
+  version = "1.8.0";
 
   outputs = [ "bin" "out" "dev" "man" ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "strukturag";
     repo = "libheif";
     rev = "v${version}";
-    sha256 = "0alri5h486ck9b5z6wwrmlpzydhz58l223z3zxkizqrzxlllhr6p";
+    sha256 = "15az44qdqp2vncdfv1bzdl30977kvqxcb2bhx4x3q6vcxnm1xfgg";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/nixpkgs/pkgs/development/libraries/libidn/default.nix b/nixpkgs/pkgs/development/libraries/libidn/default.nix
index a0df28a66993..e936f3fd92a2 100644
--- a/nixpkgs/pkgs/development/libraries/libidn/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libidn/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, libiconv }:
 
 stdenv.mkDerivation rec {
-  name = "libidn-1.35";
+  name = "libidn-1.36";
 
   src = fetchurl {
     url = "mirror://gnu/libidn/${name}.tar.gz";
-    sha256 = "07pyy0afqikfq51z5kbzbj9ldbd12mri0zvx0mfv3ds6bc0g26pi";
+    sha256 = "0f20n634whpmdwr81c2r0vxxjwchgkvhsr1i8s2bm0ad6h473dhl";
   };
 
   outputs = [ "bin" "dev" "out" "info" "devdoc" ];
diff --git a/nixpkgs/pkgs/development/libraries/libiio/default.nix b/nixpkgs/pkgs/development/libraries/libiio/default.nix
index 03324c15d8f7..3c3ccf27884f 100644
--- a/nixpkgs/pkgs/development/libraries/libiio/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libiio/default.nix
@@ -1,49 +1,63 @@
-{ stdenv, fetchFromGitHub
-, cmake, flex, bison
-, libxml2, python
-, libusb1, runtimeShell
+{ stdenv
+, fetchFromGitHub
+, cmake
+, flex
+, bison
+, libxml2
+, python
+, libusb1
+, runtimeShell
+, lib
 }:
 
 stdenv.mkDerivation rec {
   pname = "libiio";
-  version = "0.20";
+  version = "0.21";
+
+  outputs = [ "out" "lib" "dev" "python" ];
 
   src = fetchFromGitHub {
-    owner  = "analogdevicesinc";
-    repo   = "libiio";
-    rev    = "refs/tags/v${version}";
-    sha256 = "1929gvizkqmm9cwh3vihxxszfxvgcp5saq9q6chdk3fpdhzajc00";
+    owner = "analogdevicesinc";
+    repo = "libiio";
+    rev = "v${version}";
+    sha256 = "0psw67mzysdb8fkh8xpcwicm7z94k8plkcc8ymxyvl6inshq0mc7";
   };
 
-  outputs = [ "out" "lib" "dev" "python" ];
+  nativeBuildInputs = [
+    cmake
+    flex
+    bison
+  ];
+
+  buildInputs = [
+    python
+    libxml2
+    libusb1
+  ] ++ lib.optional python.isPy3k python.pkgs.setuptools;
 
-  nativeBuildInputs = [ cmake flex bison ];
-  buildInputs = [ libxml2 libusb1 ];
+  cmakeFlags = [
+    "-DUDEV_RULES_INSTALL_DIR=${placeholder "out"}/lib/udev/rules.d"
+    "-DPYTHON_BINDINGS=on"
+  ];
 
   postPatch = ''
+    # Hardcode path to the shared library into the bindings.
+    sed "s#@libiio@#$lib/lib/libiio${stdenv.hostPlatform.extensions.sharedLibrary}#g" ${./hardcode-library-path.patch} | patch -p1
+
     substituteInPlace libiio.rules.cmakein \
       --replace /bin/sh ${runtimeShell}
   '';
 
-  # since we can't expand $out in cmakeFlags
-  preConfigure = ''
-    cmakeFlags="$cmakeFlags -DUDEV_RULES_INSTALL_DIR=$out/etc/udev/rules.d"
-  '';
-
   postInstall = ''
-    mkdir -p $python/lib/${python.libPrefix}/site-packages/
-    touch $python/lib/${python.libPrefix}/site-packages/
-    cp ../bindings/python/iio.py $python/lib/${python.libPrefix}/site-packages/
-
-    substitute ../bindings/python/iio.py $python/lib/${python.libPrefix}/site-packages/iio.py \
-      --replace 'libiio.so.0' $lib/lib/libiio.so.0
+    # Move Python bindings into a separate output.
+    moveToOutput ${python.sitePackages} "$python"
   '';
 
   meta = with stdenv.lib; {
     description = "API for interfacing with the Linux Industrial I/O Subsystem";
-    homepage    = "https://github.com/analogdevicesinc/libiio";
-    license     = licenses.lgpl21;
-    platforms   = platforms.linux;
+    homepage = "https://github.com/analogdevicesinc/libiio";
+    license = licenses.lgpl21Plus;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ thoughtpolice ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libiio/hardcode-library-path.patch b/nixpkgs/pkgs/development/libraries/libiio/hardcode-library-path.patch
new file mode 100644
index 000000000000..dad35851cdc6
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libiio/hardcode-library-path.patch
@@ -0,0 +1,38 @@
+diff --git a/bindings/python/iio.py b/bindings/python/iio.py
+index 5306daa..f8962ee 100644
+--- a/bindings/python/iio.py
++++ b/bindings/python/iio.py
+@@ -229,9 +229,9 @@ if "Windows" in _system():
+     _iiolib = "libiio.dll"
+ else:
+     # Non-windows, possibly Posix system
+-    _iiolib = "iio"
++    _iiolib = "@libiio@"
+ 
+-_lib = _cdll(find_library(_iiolib), use_errno=True, use_last_error=True)
++_lib = _cdll(_iiolib, use_errno=True, use_last_error=True)
+ 
+ _get_backends_count = _lib.iio_get_backends_count
+ _get_backends_count.restype = c_uint
+diff --git a/bindings/python/setup.py.cmakein b/bindings/python/setup.py.cmakein
+index cd14e2e..516c409 100644
+--- a/bindings/python/setup.py.cmakein
++++ b/bindings/python/setup.py.cmakein
+@@ -62,7 +62,7 @@ class InstallWrapper(install):
+             _iiolib = "libiio.dll"
+         else:
+             # Non-windows, possibly Posix system
+-            _iiolib = "iio"
++            _iiolib = "@libiio@"
+         try:
+             import os
+ 
+@@ -72,7 +72,7 @@ class InstallWrapper(install):
+                 fulllibpath = find_recursive(destdir, "libiio.so")
+                 _lib = _cdll(fulllibpath, use_errno=True, use_last_error=True)
+             else:
+-                _lib = _cdll(find_library(_iiolib), use_errno=True, use_last_error=True)
++                _lib = _cdll(_iiolib, use_errno=True, use_last_error=True)
+             if not _lib._name:
+                 raise OSError
+         except OSError:
diff --git a/nixpkgs/pkgs/development/libraries/libinput/default.nix b/nixpkgs/pkgs/development/libraries/libinput/default.nix
index 148d334b946a..576a2fec921a 100644
--- a/nixpkgs/pkgs/development/libraries/libinput/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libinput/default.nix
@@ -27,11 +27,11 @@ in
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "libinput";
-  version = "1.15.5";
+  version = "1.16.1";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/libinput/${pname}-${version}.tar.xz";
-    sha256 = "15ww4jl3lcxyi8m8idg8canklbqv729gnwpkz7r98c1w8a7zq3m9";
+    sha256 = "e6fRru3RUWi7IdF+nmKKocJ5V5Y6Qjo/6jk4pQF1hTk=";
   };
 
   outputs = [ "bin" "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/libinsane/default.nix b/nixpkgs/pkgs/development/libraries/libinsane/default.nix
index 0b0f1b36edce..cbc4c001b151 100644
--- a/nixpkgs/pkgs/development/libraries/libinsane/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libinsane/default.nix
@@ -17,7 +17,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libinsane";
-  version = "1.0.4";
+  version = "1.0.7";
 
   outputs = [ "out" "dev" "devdoc" ];
 
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
     group = "World";
     owner = "OpenPaperwork";
     rev = version;
-    sha256 = "1qk0s4m87yqa75h27bl7m03g4gamln43wn4159h7dcnwc36hdzw6";
+    sha256 = "03r6niyzfahnlpvhn68h59i6926ciwz88krqbf0akd9f42y9zf2k";
   };
 
   nativeBuildInputs = [ meson pkg-config ninja doxygen gtk-doc docbook_xsl gobject-introspection vala ];
diff --git a/nixpkgs/pkgs/development/libraries/libipt/default.nix b/nixpkgs/pkgs/development/libraries/libipt/default.nix
index cb4db488dc42..79ae927fc24b 100644
--- a/nixpkgs/pkgs/development/libraries/libipt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libipt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libipt";
-  version = "2.0.1";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "libipt";
     rev = "v${version}";
-    sha256 = "19y1lk5z1rf8xmr08m8zrpjkgr5as83b96xyaxwn67m2wz58mpmh";
+    sha256 = "095agnk7r2sq5yas6c1ri8fmsl55n4l5hkl6j5l397p9nxvxvrkc";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix b/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix
index 72d8b9677499..36838341fe21 100644
--- a/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libjpeg-turbo/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, cmake, nasm, enableStatic ? false }:
+{ stdenv, fetchurl, fetchpatch, cmake, nasm, enableStatic ? false, enableShared ? true }:
 
 stdenv.mkDerivation rec {
 
@@ -18,6 +18,12 @@ stdenv.mkDerivation rec {
         url = "https://github.com/libjpeg-turbo/libjpeg-turbo/commit/a2291b252de1413a13db61b21863ae7aea0946f3.patch";
         sha256 = "0nc5vcch5h52gpi07h08zf8br58q8x81q2hv871hrn0dinb53vym";
       })
+
+      (fetchpatch {
+        name = "cve-2020-13790.patch";
+        url = "https://github.com/libjpeg-turbo/libjpeg-turbo/commit/3de15e0c344d.diff";
+        sha256 = "0hm5i6qir5w3zxb0xvqdh4jyvbfg7xnd28arhyfsaclfz9wdb0pb";
+      })
     ] ++
     stdenv.lib.optional (stdenv.hostPlatform.libc or null == "msvcrt")
       ./mingw-boolean.patch;
@@ -28,6 +34,7 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DENABLE_STATIC=${if enableStatic then "1" else "0"}"
+    "-DENABLE_SHARED=${if enableShared then "1" else "0"}"
   ];
 
   doInstallCheck = true;
diff --git a/nixpkgs/pkgs/development/libraries/libkml/default.nix b/nixpkgs/pkgs/development/libraries/libkml/default.nix
index d619101c2331..690d9b9801ca 100644
--- a/nixpkgs/pkgs/development/libraries/libkml/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libkml/default.nix
@@ -26,6 +26,9 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     "-DBUILD_TESTING=ON"
+  # Darwin tests require rpath for libs in build dir
+  ] ++ stdenv.lib.optional stdenv.isDarwin [
+    "-DCMAKE_SKIP_BUILD_RPATH=OFF"
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/libksba/default.nix b/nixpkgs/pkgs/development/libraries/libksba/default.nix
index 2f0da5edf4e1..d627bf81cba2 100644
--- a/nixpkgs/pkgs/development/libraries/libksba/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libksba/default.nix
@@ -1,11 +1,11 @@
 { buildPackages, stdenv, fetchurl, gettext, libgpgerror }:
 
 stdenv.mkDerivation rec {
-  name = "libksba-1.3.5";
+  name = "libksba-1.4.0";
 
   src = fetchurl {
     url = "mirror://gnupg/libksba/${name}.tar.bz2";
-    sha256 = "0h53q4sns1jz1pkmhcz5wp9qrfn9f5g9i3vjv6dafwzzlvblyi21";
+    sha256 = "1dj1razn35srkgadx3i30yr0q037cr0dn54m6a54vxgh3zlsirmz";
   };
 
   outputs = [ "out" "dev" "info" ];
diff --git a/nixpkgs/pkgs/development/libraries/liblinear/default.nix b/nixpkgs/pkgs/development/libraries/liblinear/default.nix
index af09b1241de6..86d306d0a07f 100644
--- a/nixpkgs/pkgs/development/libraries/liblinear/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liblinear/default.nix
@@ -1,35 +1,37 @@
-{ stdenv, fetchurl, fixDarwinDylibNames }:
+{ stdenv, fetchFromGitHub, fixDarwinDylibNames }:
 
-stdenv.mkDerivation rec {
+let
+  soVersion = "4";
+in stdenv.mkDerivation rec {
   pname = "liblinear";
-  version = "2.30";
+  version = "2.41";
 
-  src = fetchurl {
-    url = "https://www.csie.ntu.edu.tw/~cjlin/liblinear/liblinear-${version}.tar.gz";
-    sha256 = "1b66jpg9fdwsq7r52fccr8z7nqcivrin5d8zg2f134ygqqwp0748";
+  src = fetchFromGitHub {
+    owner = "cjlin1";
+    repo = "liblinear";
+    rev = "v${builtins.replaceStrings ["."] [""] version}";
+    sha256 = "1mykrzka2wxnvvjh21hisabs5fsxqzdhkxw9m08h24c58vfiwsd8";
   };
 
-  buildPhase = ''
-    make
-    make lib
-  '';
+  outputs = [ "bin" "dev" "out" ];
+
+  nativeBuildInputs = stdenv.lib.optionals stdenv.isDarwin [ fixDarwinDylibNames ];
+
+  buildFlags = [ "lib" "predict" "train" ];
 
   installPhase = ''
-    mkdir -p $out/lib $out/bin $out/include
     ${if stdenv.isDarwin then ''
-      cp liblinear.so.3 $out/lib/liblinear.3.dylib
-      ln -s $out/lib/liblinear.3.dylib $out/lib/liblinear.dylib
+      install -D liblinear.so.${soVersion} $out/lib/liblinear.${soVersion}.dylib
+      ln -s $out/lib/liblinear.${soVersion}.dylib $out/lib/liblinear.dylib
     '' else ''
-      cp liblinear.so.3 $out/lib/liblinear.so.3
-      ln -s $out/lib/liblinear.so.3 $out/lib/liblinear.so
+      install -Dt $out/lib liblinear.so.${soVersion}
+      ln -s $out/lib/liblinear.so.${soVersion} $out/lib/liblinear.so
     ''}
-    cp train $out/bin/liblinear-train
-    cp predict $out/bin/liblinear-predict
-    cp linear.h $out/include
+    install -D train $bin/bin/liblinear-train
+    install -D predict $bin/bin/liblinear-predict
+    install -Dm444 -t $dev/include linear.h
   '';
 
-  nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin [ fixDarwinDylibNames ];
-
   meta = with stdenv.lib; {
     description = "A library for large linear classification";
     homepage = "https://www.csie.ntu.edu.tw/~cjlin/liblinear/";
diff --git a/nixpkgs/pkgs/development/libraries/liblouis/default.nix b/nixpkgs/pkgs/development/libraries/liblouis/default.nix
index 5d0459b4f308..c394e3dc4d54 100644
--- a/nixpkgs/pkgs/development/libraries/liblouis/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liblouis/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "liblouis";
-  version = "3.14.0";
+  version = "3.15.0";
 
   src = fetchFromGitHub {
     owner = "liblouis";
     repo = "liblouis";
     rev = "v${version}";
-    sha256 = "0v6w8b9r994mkkbm2gqgd7k5yfmdhgbabh0j1gmn375nyvhy4qqh";
+    sha256 = "1ljy5xsy7vf2r0ix0d7bqcr6qvr6897f8madsx9zlm1mrj31n5px";
   };
 
   outputs = [ "out" "dev" "man" "info" "doc" ];
diff --git a/nixpkgs/pkgs/development/libraries/libmatroska/default.nix b/nixpkgs/pkgs/development/libraries/libmatroska/default.nix
index 2d56a6db766e..5d065636a922 100644
--- a/nixpkgs/pkgs/development/libraries/libmatroska/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmatroska/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libmatroska";
-  version = "1.5.2";
+  version = "1.6.2";
 
   src = fetchFromGitHub {
     owner  = "Matroska-Org";
     repo   = "libmatroska";
     rev    = "release-${version}";
-    sha256 = "057iib6p62x31g1ikdjsjzmqzjlajqx6p74h7y4r524pzgb27fzy";
+    sha256 = "0yhr9hhgljva1fx3b0r4s3wkkypdfgsysbl35a4g3krkbhaa9rsd";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/nixpkgs/pkgs/development/libraries/libmaxminddb/default.nix b/nixpkgs/pkgs/development/libraries/libmaxminddb/default.nix
index 493f1b5ce614..94a4b9ec57c6 100644
--- a/nixpkgs/pkgs/development/libraries/libmaxminddb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmaxminddb/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmaxminddb";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchurl {
     url = meta.homepage + "/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0mnimbaxnnarlw7g1rh8lpxsyf7xnmzwcczcc3lxw8xyf6ljln6x";
+    sha256 = "0fd4a4sxiiwzbd5h74wl1ijnb7xybjyybb7q41vdq3w8nk3zdzd5";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/libraries/libmbim/default.nix b/nixpkgs/pkgs/development/libraries/libmbim/default.nix
index 9e40133170aa..0e9a3784f383 100644
--- a/nixpkgs/pkgs/development/libraries/libmbim/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmbim/default.nix
@@ -1,23 +1,33 @@
-{ stdenv, fetchurl, pkgconfig, glib, python3, systemd, libgudev }:
+{ stdenv
+, fetchurl
+, pkg-config
+, gobject-introspection
+, glib
+, python3
+, systemd
+, libgudev
+}:
 
 stdenv.mkDerivation rec {
   pname = "libmbim";
-  version = "1.22.0";
+  version = "1.24.2";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/libmbim/${pname}-${version}.tar.xz";
-    sha256 = "0f0zmbvnhdsqbf3hw5bimq67n57mhd8yad1ia823cb6i3kmph1sw";
+    sha256 = "1r41d4yddp8rgccxrkz9vg5lbrj3dr5vy71d8igrr147k44qq69j";
   };
 
   outputs = [ "out" "dev" "man" ];
 
   configureFlags = [
     "--with-udev-base-dir=${placeholder "out"}/lib/udev"
+    "--enable-introspection"
   ];
 
   nativeBuildInputs = [
-    pkgconfig
+    pkg-config
     python3
+    gobject-introspection
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/libmediainfo/default.nix b/nixpkgs/pkgs/development/libraries/libmediainfo/default.nix
index ab7bb7e6cb9f..e6650db85cc7 100644
--- a/nixpkgs/pkgs/development/libraries/libmediainfo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmediainfo/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, autoreconfHook, pkgconfig, libzen, zlib }:
 
 stdenv.mkDerivation rec {
-  version = "20.03";
+  version = "20.08";
   pname = "libmediainfo";
   src = fetchurl {
     url = "https://mediaarea.net/download/source/libmediainfo/${version}/libmediainfo_${version}.tar.xz";
-    sha256 = "0wkzj5s34m8dvy7hif4h8f90q8ncrzd930gij1zzw3h5nw732j38";
+    sha256 = "19n8h9jq42b6r3dbag77fzwfksfywszmzpi636w87fvc1nqldlqj";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/nixpkgs/pkgs/development/libraries/libmicrohttpd/default.nix b/nixpkgs/pkgs/development/libraries/libmicrohttpd/default.nix
index c160b678be74..4a7a228150ce 100644
--- a/nixpkgs/pkgs/development/libraries/libmicrohttpd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmicrohttpd/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmicrohttpd";
-  version = "0.9.70";
+  version = "0.9.71";
 
   src = fetchurl {
     url = "mirror://gnu/libmicrohttpd/${pname}-${version}.tar.gz";
-    sha256 = "01vkjy89b1ylmh22dy5yza2r414nfwcfixxh3v29nvzrjv9s7l4h";
+    sha256 = "10mii4mifmfs3v7kgciqml7f0fj7ljp0sngrx64pnwmgbzl4bx78";
   };
 
   outputs = [ "out" "dev" "devdoc" "info" ];
diff --git a/nixpkgs/pkgs/development/libraries/libmodulemd/1.nix b/nixpkgs/pkgs/development/libraries/libmodulemd/1.nix
deleted file mode 100644
index 174296375e08..000000000000
--- a/nixpkgs/pkgs/development/libraries/libmodulemd/1.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ libmodulemd, fetchurl }:
-
-libmodulemd.overrideAttrs(old: rec {
-  name = "libmodulemd-${version}";
-  version = "1.8.15";
-
-  # Removes py output since there's no overrides here
-  outputs = [ "out" "devdoc" ];
-
-  patches = [
-    # Checks for glib docs in glib's prefix
-    # but they're installed to another
-    ./dont-check-docs.patch
-  ];
-
-  src = fetchurl {
-    url = "https://github.com/fedora-modularity/libmodulemd/releases/download/${name}/modulemd-${version}.tar.xz";
-    sha256 = "0gz8p3qzji3cx0r57sy3gn4dhigg4k7pcxj3lmjcjn13vxh5rm7z";
-  };
-
-})
diff --git a/nixpkgs/pkgs/development/libraries/libmodulemd/dont-check-docs.patch b/nixpkgs/pkgs/development/libraries/libmodulemd/dont-check-docs.patch
deleted file mode 100644
index 38ad5683692b..000000000000
--- a/nixpkgs/pkgs/development/libraries/libmodulemd/dont-check-docs.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff --git a/meson.build b/meson.build
-index 155c9e7..9125372 100644
---- a/meson.build
-+++ b/meson.build
-@@ -60,15 +60,15 @@ sh = find_program('sh')
- sed = find_program('sed')
- test = find_program('test')
- 
--ret = run_command ([test, '-e', join_paths(glib_docpath, 'glib/index.html')])
--if ret.returncode() != 0
--  error('Missing documentation for GLib.')
--endif
--
--ret = run_command ([test, '-e', join_paths(glib_docpath, 'gobject/index.html')])
--if ret.returncode() != 0
--  error('Missing documentation for GObject.')
--endif
-+# ret = run_command ([test, '-e', join_paths(glib_docpath, 'glib/index.html')])
-+# if ret.returncode() != 0
-+#   error('Missing documentation for GLib.')
-+# endif
-+
-+# ret = run_command ([test, '-e', join_paths(glib_docpath, 'gobject/index.html')])
-+# if ret.returncode() != 0
-+#   error('Missing documentation for GObject.')
-+# endif
- 
- python_name = get_option('python_name')
- 
diff --git a/nixpkgs/pkgs/development/libraries/libmpc/default.nix b/nixpkgs/pkgs/development/libraries/libmpc/default.nix
index c0459e393fa7..79fa17437819 100644
--- a/nixpkgs/pkgs/development/libraries/libmpc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmpc/default.nix
@@ -8,7 +8,7 @@
 # files.
 
 let
-  version = "1.1.0";
+  version = "1.2.0";
 in
 stdenv.mkDerivation {
   pname = "libmpc";
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://gnu/mpc/mpc-${version}.tar.gz";
-    sha256 = "0biwnhjm3rx3hc0rfpvyniky4lpzsvdcwhmcn7f0h4iw2hwcb1b9";
+    sha256 = "19pxx3gwhwl588v496g3aylhcw91z1dk1d5x3a8ik71sancjs3z9";
   };
 
   buildInputs = [ gmp mpfr ];
diff --git a/nixpkgs/pkgs/development/libraries/libmysqlconnectorcpp/default.nix b/nixpkgs/pkgs/development/libraries/libmysqlconnectorcpp/default.nix
index 71fbda7b4713..ecec1e79492c 100644
--- a/nixpkgs/pkgs/development/libraries/libmysqlconnectorcpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libmysqlconnectorcpp/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libmysqlconnectorcpp";
-  version = "8.0.20";
+  version = "8.0.21";
 
   src = fetchurl {
     url = "https://cdn.mysql.com/Downloads/Connector-C++/mysql-connector-c++-${version}-src.tar.gz";
-    sha256 = "1jrrbfy6sw4pni72c1hgvchx1zzfpnamp34sjnv82mlvsp8ypsjh";
+    sha256 = "08z40419aip26z6ss30g59mvnddb8dfam82l556jyj3gxs0irqbh";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/libndctl/default.nix b/nixpkgs/pkgs/development/libraries/libndctl/default.nix
index 7a8d1877bc7e..7c4c49baffab 100644
--- a/nixpkgs/pkgs/development/libraries/libndctl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libndctl/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libndctl";
-  version = "68";
+  version = "69";
 
   src = fetchFromGitHub {
     owner  = "pmem";
     repo   = "ndctl";
     rev    = "v${version}";
-    sha256 = "0xmim7z4qp6x2ggndnbwd940c73pa1qlf3hxyn3qh5pyr69nh9y8";
+    sha256 = "1l7p0ycj27d4z07gf9qp796xpg16kfsg3rwx6plhilbhip1as4w7";
   };
 
   outputs = [ "out" "lib" "man" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/libndtypes/default.nix b/nixpkgs/pkgs/development/libraries/libndtypes/default.nix
index ffb2f56d67e0..d27c1ba376d1 100644
--- a/nixpkgs/pkgs/development/libraries/libndtypes/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libndtypes/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation {
   pname = "libndtypes";
-  version = "unstable-2018-11-27";
+  version = "unstable-2019-08-01";
 
   src = fetchFromGitHub {
-    owner = "plures";
+    owner = "xnd-project";
     repo = "ndtypes";
-    rev = "4d810d0c4d54c81a7136f313f0ae6623853d574a";
-    sha256 = "1kk1sa7f17ffh49jc1qlizlsj536fr3s4flb6x4rjyi81rp7psb9";
+    rev = "3ce6607c96d8fe67b72cc0c97bf595620cdd274e";
+    sha256 = "18303q0jfar1lmi4krp94plczb455zcgw772f9lb8xa5p0bkhx01";
   };
 
   # Override linker with cc (symlink to either gcc or clang)
diff --git a/nixpkgs/pkgs/development/libraries/libnftnl/default.nix b/nixpkgs/pkgs/development/libraries/libnftnl/default.nix
index 4aac04a4d028..f9def04f99b7 100644
--- a/nixpkgs/pkgs/development/libraries/libnftnl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libnftnl/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, pkgconfig, libmnl }:
 
 stdenv.mkDerivation rec {
-  version = "1.1.5";
+  version = "1.1.7";
   pname = "libnftnl";
 
   src = fetchurl {
     url = "https://netfilter.org/projects/${pname}/files/${pname}-${version}.tar.bz2";
-    sha256 = "1wqlxf76bkqf3qhka9sw32qhb2ni20q1k6rn3iril2kw482lvpk6";
+    sha256 = "13zd90bfrr0q3j0l0cbc8kiizccw6n8gp727kqnfljh024zw3nr0";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/development/libraries/libngspice/default.nix b/nixpkgs/pkgs/development/libraries/libngspice/default.nix
index 3f5ba26d5a4b..e1b9e4f0bdca 100644
--- a/nixpkgs/pkgs/development/libraries/libngspice/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libngspice/default.nix
@@ -21,6 +21,6 @@ stdenv.mkDerivation rec {
     homepage = "http://ngspice.sourceforge.net";
     license = with licenses; [ bsd3 gpl2Plus lgpl2Plus ]; # See https://sourceforge.net/p/ngspice/ngspice/ci/master/tree/COPYING
     maintainers = with maintainers; [ bgamari ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libnsl/default.nix b/nixpkgs/pkgs/development/libraries/libnsl/default.nix
index 1e925eb7b476..76aa3c99e335 100644
--- a/nixpkgs/pkgs/development/libraries/libnsl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libnsl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libnsl";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "thkukuk";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1chzqhcgh0yia9js8mh92cmhyka7rh32ql6b3mgdk26n94dqzs8b";
+    sha256 = "1dayj5i4bh65gn7zkciacnwv2a0ghm6nn58d78rsi4zby4lyj5w5";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/nixpkgs/pkgs/development/libraries/liboping/default.nix b/nixpkgs/pkgs/development/libraries/liboping/default.nix
index 1b2d83b84d0a..956538b76240 100644
--- a/nixpkgs/pkgs/development/libraries/liboping/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liboping/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ncurses ? null, perl ? null }:
+{ stdenv, fetchurl, ncurses ? null, perl ? null, lib }:
 
 stdenv.mkDerivation rec {
   name = "liboping-1.10.0";
@@ -8,7 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "1n2wkmvw6n80ybdwkjq8ka43z2x8mvxq49byv61b52iyz69slf7b";
   };
 
-  NIX_CFLAGS_COMPILE = "-Wno-error=format-truncation";
+  NIX_CFLAGS_COMPILE = lib.optionalString
+    stdenv.cc.isGNU "-Wno-error=format-truncation";
 
   buildInputs = [ ncurses perl ];
 
diff --git a/nixpkgs/pkgs/development/libraries/libosmium/default.nix b/nixpkgs/pkgs/development/libraries/libosmium/default.nix
index 29edf37d80ef..830465fb113c 100644
--- a/nixpkgs/pkgs/development/libraries/libosmium/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libosmium/default.nix
@@ -2,18 +2,20 @@
 
 stdenv.mkDerivation rec {
   pname = "libosmium";
-  version = "2.15.5";
+  version = "2.15.6";
 
   src = fetchFromGitHub {
     owner = "osmcode";
     repo = "libosmium";
     rev = "v${version}";
-    sha256 = "1f21dzzkxzi74hv17fs9kb2w6indqvvm4lkxclz4j4x98k8q3n59";
+    sha256 = "0rqy18bbakp41f44y5id9ixh0ar2dby46z17p4115z8k1vv9znq2";
   };
 
   nativeBuildInputs = [ cmake ];
+
   buildInputs = [ protozero zlib bzip2 expat boost ];
 
+  doCheck = true;
 
   meta = with stdenv.lib; {
     description = "Fast and flexible C++ library for working with OpenStreetMap data";
diff --git a/nixpkgs/pkgs/development/libraries/libpcap/default.nix b/nixpkgs/pkgs/development/libraries/libpcap/default.nix
index d9cb91e4fb3b..604fd3ee4465 100644
--- a/nixpkgs/pkgs/development/libraries/libpcap/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libpcap/default.nix
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     ++ optionals withBluez [ bluez.dev pkgconfig ];
 
   # We need to force the autodetection because detection doesn't
-  # work in pure build enviroments.
+  # work in pure build environments.
   configureFlags = [
     ("--with-pcap=" + {
       linux = "linux";
@@ -29,7 +29,9 @@ stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
-    rm -f $out/lib/libpcap.a
+    if [ "$dontDisableStatic" -ne "1" ]; then
+      rm -f $out/lib/libpcap.a
+    fi
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/development/libraries/libpfm/default.nix b/nixpkgs/pkgs/development/libraries/libpfm/default.nix
index 3398d3feb94f..b29aeb2930a7 100644
--- a/nixpkgs/pkgs/development/libraries/libpfm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libpfm/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, enableShared ? true }:
 
 stdenv.mkDerivation (rec {
-  version = "4.10.1";
+  version = "4.11.0";
   pname = "libpfm";
 
   src = fetchurl {
     url = "mirror://sourceforge/perfmon2/libpfm4/${pname}-${version}.tar.gz";
-    sha256 = "0jabhjx77yppr7x38bkfww6n2a480gj62rw0qp7prhdmg19mf766";
+    sha256 = "1k7yp6xfsglp2b6271r622sjinlbys0dk24n9iiv656y5f3zi9ax";
   };
 
   makeFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/libpipeline/default.nix b/nixpkgs/pkgs/development/libraries/libpipeline/default.nix
index bf80562a0b19..be3ab953c0a5 100644
--- a/nixpkgs/pkgs/development/libraries/libpipeline/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libpipeline/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "libpipeline-1.5.1";
+  name = "libpipeline-1.5.3";
 
   src = fetchurl {
     url = "mirror://savannah/libpipeline/${name}.tar.gz";
-    sha256 = "0bwh5xz5f2czwb7f564jz1mp4znm8pldnvf65fs0hpw4gmmp0cyn";
+    sha256 = "1c5dl017xil2ssb6a5vg927bnsbc9vymfgi9ahvqbb8gypx0igsx";
   };
 
   patches = stdenv.lib.optionals stdenv.isDarwin [ ./fix-on-osx.patch ];
diff --git a/nixpkgs/pkgs/development/libraries/libplacebo/default.nix b/nixpkgs/pkgs/development/libraries/libplacebo/default.nix
index cee6d3f1845b..dc3e5e30c743 100644
--- a/nixpkgs/pkgs/development/libraries/libplacebo/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libplacebo/default.nix
@@ -1,33 +1,47 @@
 { stdenv
 , fetchFromGitLab
+, fetchpatch
 , meson
 , ninja
-, pkgconfig
+, pkg-config
+, python3Packages
 , vulkan-headers
 , vulkan-loader
 , shaderc
 , glslang
 , lcms2
+, epoxy
 }:
 
 stdenv.mkDerivation rec {
   pname = "libplacebo";
-  version = "1.29.1";
+  version = "2.72.0";
 
   src = fetchFromGitLab {
     domain = "code.videolan.org";
     owner = "videolan";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ly5bwy0pwgvqigpaak8hnig5hksjwf0pzvj3mdv3j2f6f7ya2zz";
+    sha256 = "1yhf9xyxdawbihsx89dpjlac800wrmpwx63rphad2nj225y9q40f";
   };
 
-  postPatch = "substituteInPlace meson.build --replace 1.29.0 1.29.1";
+  patches = [
+    # to work with latest glslang, remove on release >2.72.0
+    (fetchpatch {
+      url = "https://code.videolan.org/videolan/libplacebo/-/commit/523056828ab86c2f17ea65f432424d48b6fdd389.patch";
+      sha256 = "051vhd0l3yad1fzn5zayi08kqs9an9j8p7m63kgqyfv1ksnydpcs";
+    })
+    (fetchpatch {
+      url = "https://code.videolan.org/videolan/libplacebo/-/commit/82e3be1839379791b58e98eb049415b42888d5b0.patch";
+      sha256 = "0nklj9gfiwkbbj6wfm1ck33hphaxrvzb84c4h2nfj88bapnlm90l";
+    })
+  ];
 
   nativeBuildInputs = [
     meson
     ninja
-    pkgconfig
+    pkg-config
+    python3Packages.Mako
   ];
 
   buildInputs = [
@@ -36,13 +50,25 @@ stdenv.mkDerivation rec {
     shaderc
     glslang
     lcms2
+    epoxy
+  ];
+
+  mesonFlags = [
+    "-Dvulkan-registry=${vulkan-headers}/share/vulkan/registry/vk.xml"
   ];
 
   meta = with stdenv.lib; {
     description = "Reusable library for GPU-accelerated video/image rendering primitives";
+    longDescription = ''
+      Reusable library for GPU-accelerated image/view processing primitives and
+      shaders, as well a batteries-included, extensible, high-quality rendering
+      pipeline (similar to mpv's vo_gpu). Supports Vulkan, OpenGL and Metal (via
+      MoltenVK).
+    '';
     homepage = "https://code.videolan.org/videolan/libplacebo";
+    changelog = "https://code.videolan.org/videolan/libplacebo/-/tags/v${version}";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ tadeokondrak ];
+    maintainers = with maintainers; [ primeos tadeokondrak ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libpqxx/default.nix b/nixpkgs/pkgs/development/libraries/libpqxx/default.nix
index a710e09a454f..feb9c7e65147 100644
--- a/nixpkgs/pkgs/development/libraries/libpqxx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libpqxx/default.nix
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     description = "A C++ library to access PostgreSQL databases";
     homepage = "http://pqxx.org/development/libpqxx/";
     license = lib.licenses.bsd3;
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.eelco ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libpwquality/default.nix b/nixpkgs/pkgs/development/libraries/libpwquality/default.nix
index bd45cb529f1a..5d83b137b8e6 100644
--- a/nixpkgs/pkgs/development/libraries/libpwquality/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libpwquality/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, autoreconfHook, perl, cracklib, python3 }:
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, perl, cracklib, python3, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "libpwquality";
@@ -11,8 +11,21 @@ stdenv.mkDerivation rec {
     sha256 = "0n4pjhm7wfivk0wizggaxq4y4mcxic876wcarjabkp5z9k14y36h";
   };
 
-  nativeBuildInputs = [ autoreconfHook perl ];
-  buildInputs = [ cracklib python3 ];
+  nativeBuildInputs = [ autoreconfHook perl python3 ];
+  buildInputs = [ cracklib ];
+
+  patches = lib.optional stdenv.hostPlatform.isStatic [
+    (fetchpatch {
+      name = "static-build.patch";
+      url = "https://github.com/libpwquality/libpwquality/pull/40.patch";
+      sha256 = "1ypccq437wxwgddd98cvd330jfm7jscdlzlyxgy05g6yzrr68xyk";
+    })
+  ];
+
+  configureFlags = lib.optional stdenv.hostPlatform.isStatic [
+    # Python binding generates a shared library which are unavailable with musl build
+    "--disable-python-bindings"
+  ];
 
   meta = with lib; {
     description = "Password quality checking and random password generation library";
diff --git a/nixpkgs/pkgs/development/libraries/libqalculate/default.nix b/nixpkgs/pkgs/development/libraries/libqalculate/default.nix
index 8acfcb4b7513..11816beee040 100644
--- a/nixpkgs/pkgs/development/libraries/libqalculate/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libqalculate/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libqalculate";
-  version = "3.8.0";
+  version = "3.13.0";
 
   src = fetchFromGitHub {
     owner = "qalculate";
     repo = "libqalculate";
     rev = "v${version}";
-    sha256 = "1vbaza9c7159xf2ym90l0xkyj2mp6c3hbghhsqn29yvz08fda9df";
+    sha256 = "0nd0hrnp0a9p7hy6l6s45kfd267r7qg91aqn8g2dyam5hngskayk";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/nixpkgs/pkgs/development/libraries/libqmi/default.nix b/nixpkgs/pkgs/development/libraries/libqmi/default.nix
index ec72578ba278..e8db7501534c 100644
--- a/nixpkgs/pkgs/development/libraries/libqmi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libqmi/default.nix
@@ -1,22 +1,24 @@
-{ stdenv, fetchurl, pkgconfig, glib, python3, libgudev, libmbim }:
+{ stdenv, fetchurl, pkg-config, gobject-introspection, glib, python3, libgudev, libmbim }:
 
 stdenv.mkDerivation rec {
   pname = "libqmi";
-  version = "1.24.12";
+  version = "1.26.2";
 
   src = fetchurl {
     url = "https://www.freedesktop.org/software/libqmi/${pname}-${version}.tar.xz";
-    sha256 = "0scb8a2kh0vnzx6kxanfy2s2slnfppvrwg202rxv30m8p2i92frd";
+    sha256 = "00vvvfq74awg6mk0si1cdv79f6z6wqx11h47nl78a1h7zsr6fd0k";
   };
 
   outputs = [ "out" "dev" "devdoc" ];
 
   configureFlags = [
     "--with-udev-base-dir=${placeholder "out"}/lib/udev"
+    "--enable-introspection"
   ];
 
   nativeBuildInputs = [
-    pkgconfig
+    pkg-config
+    gobject-introspection
     python3
   ];
 
diff --git a/nixpkgs/pkgs/development/libraries/libqtav/default.nix b/nixpkgs/pkgs/development/libraries/libqtav/default.nix
index 00a87402fa3f..fc577d7e5082 100644
--- a/nixpkgs/pkgs/development/libraries/libqtav/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libqtav/default.nix
@@ -1,7 +1,7 @@
 { mkDerivation, lib, fetchFromGitHub, extra-cmake-modules
 , qtbase, qtmultimedia, qtquick1, qttools
 , libGL, libX11
-, libass, openal, ffmpeg_3, libuchardet
+, libass, openal, ffmpeg, libuchardet
 , alsaLib, libpulseaudio, libva
 }:
 
@@ -9,19 +9,19 @@ with lib;
 
 mkDerivation rec {
   pname = "libqtav";
-  version = "1.12.0";
+  version = "git-2020-09-10";
 
   nativeBuildInputs = [ extra-cmake-modules qttools ];
   buildInputs = [
     qtbase qtmultimedia qtquick1
     libGL libX11
-    libass openal ffmpeg_3 libuchardet
+    libass openal ffmpeg libuchardet
     alsaLib libpulseaudio libva
   ];
 
   src = fetchFromGitHub {
-    sha256 = "03ii9l38l3fsr27g42fx4151ipzkip2kr4akdr8x28sx5r9rr5m2";
-    rev = "v${version}";
+    sha256 = "0qwrk40dihkbwmm7krz6qaqyn9v3qdjnd2k9b4s3a67x4403pib3";
+    rev = "2a470d2a8d2fe22fae969bee5d594909a07b350a";
     repo = "QtAV";
     owner = "wang-bin";
     fetchSubmodules = true;
@@ -48,4 +48,3 @@ mkDerivation rec {
     platforms = platforms.linux;
   };
 }
-
diff --git a/nixpkgs/pkgs/development/libraries/libraw/default.nix b/nixpkgs/pkgs/development/libraries/libraw/default.nix
index 69169c7e9af7..b190d36acb52 100644
--- a/nixpkgs/pkgs/development/libraries/libraw/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libraw/default.nix
@@ -1,21 +1,16 @@
-{ stdenv, fetchurl, lcms2, pkgconfig
-, jasper ? null, withJpeg2k ? false
-# disable JPEG2000 support by default as jasper has many CVE
-}:
+{ stdenv, fetchurl, lcms2, pkgconfig }:
 
 stdenv.mkDerivation rec {
   pname = "libraw";
-  version = "0.19.5";
+  version = "0.20.0";
 
   src = fetchurl {
     url = "https://www.libraw.org/data/LibRaw-${version}.tar.gz";
-    sha256 = "1x827sh6vl8j3ll2ihkcr234y07f31hi1v7sl08jfw3irkbn58j0";
+    sha256 = "18wlsvj6c1rv036ph3695kknpgzc3lk2ikgshy8417yfl8ykh2hz";
   };
 
   outputs = [ "out" "lib" "dev" "doc" ];
 
-  buildInputs = stdenv.lib.optionals withJpeg2k [ jasper ];
-
   propagatedBuildInputs = [ lcms2 ];
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/development/libraries/librealsense/default.nix b/nixpkgs/pkgs/development/libraries/librealsense/default.nix
index 21f80f80efa0..55171cd3de4e 100644
--- a/nixpkgs/pkgs/development/libraries/librealsense/default.nix
+++ b/nixpkgs/pkgs/development/libraries/librealsense/default.nix
@@ -1,8 +1,13 @@
-{ stdenv, fetchFromGitHub, cmake, libusb1, ninja, pkgconfig }:
+{ stdenv, config, lib, fetchFromGitHub, cmake, libusb1, ninja, pkgconfig, gcc
+, cudaSupport ? config.cudaSupport or false, cudatoolkit
+, enablePython ? false, pythonPackages ? null }:
+
+assert cudaSupport -> cudatoolkit != null;
+assert enablePython -> pythonPackages != null;
 
 stdenv.mkDerivation rec {
   pname = "librealsense";
-  version = "2.35.2";
+  version = "2.38.0";
 
   outputs = [ "out" "dev" ];
 
@@ -10,11 +15,17 @@ stdenv.mkDerivation rec {
     owner = "IntelRealSense";
     repo = pname;
     rev = "v${version}";
-    sha256 = "14vf76vlyhh7b4yjzsnqpg1x3wdhwxrf1syvgf8wyxbjwb9plw82";
+    sha256 = "12rs0gklgzn8bplqjmaxixk04pr870i333mmcp9i5bhkn8x86zbx";
   };
 
   buildInputs = [
     libusb1
+    gcc.cc.lib
+  ] ++ lib.optional cudaSupport cudatoolkit
+    ++ lib.optional enablePython pythonPackages.python;
+
+  patches = lib.optionals enablePython [
+    ./py_sitepackage_dir.patch
   ];
 
   nativeBuildInputs = [
@@ -23,7 +34,22 @@ stdenv.mkDerivation rec {
     pkgconfig
   ];
 
-  cmakeFlags = [ "-DBUILD_EXAMPLES=false" ];
+  cmakeFlags = [
+    "-DBUILD_EXAMPLES=ON"
+    "-DBUILD_GRAPHICAL_EXAMPLES=OFF"
+    "-DBUILD_GLSL_EXTENSIONS=OFF"
+  ] ++ lib.optionals enablePython [
+    "-DBUILD_PYTHON_BINDINGS:bool=true"
+    "-DXXNIX_PYTHON_SITEPACKAGES=${placeholder "out"}/${pythonPackages.python.sitePackages}"
+  ] ++ lib.optional cudaSupport "-DBUILD_WITH_CUDA:bool=true";
+
+  # ensure python package contains its __init__.py. for some reason the install
+  # script does not do this, and it's questionable if intel knows it should be
+  # done
+  # ( https://github.com/IntelRealSense/meta-intel-realsense/issues/20 )
+  postInstall = lib.optionalString enablePython  ''
+    cp ../wrappers/python/pyrealsense2/__init__.py $out/${pythonPackages.python.sitePackages}/pyrealsense2
+  '';
 
   meta = with stdenv.lib; {
     description = "A cross-platform library for Intel® RealSense™ depth cameras (D400 series and the SR300)";
diff --git a/nixpkgs/pkgs/development/libraries/librealsense/py_sitepackage_dir.patch b/nixpkgs/pkgs/development/libraries/librealsense/py_sitepackage_dir.patch
new file mode 100644
index 000000000000..99b567a429ed
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/librealsense/py_sitepackage_dir.patch
@@ -0,0 +1,15 @@
+--- a/wrappers/python/CMakeLists.txt
++++ b/wrappers/python/CMakeLists.txt
+@@ -10,11 +10,11 @@
+ if (CMAKE_VERSION VERSION_LESS 3.12)
+   find_package(PythonInterp REQUIRED)
+   find_package(PythonLibs REQUIRED)
+-  set(PYTHON_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}/pyrealsense2" CACHE PATH "Installation directory for Python bindings")
++  set(PYTHON_INSTALL_DIR "${XXNIX_PYTHON_SITEPACKAGES}/pyrealsense2" CACHE PATH "Installation directory for Python bindings")
+   set(CMAKECONFIG_PY_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/pyrealsense2")
+ else()
+   find_package(Python REQUIRED COMPONENTS Interpreter Development)
+-  set(PYTHON_INSTALL_DIR "${Python_SITEARCH}/pyrealsense2" CACHE PATH "Installation directory for Python bindings")
++  set(PYTHON_INSTALL_DIR "${XXNIX_PYTHON_SITEPACKAGES}/pyrealsense2" CACHE PATH "Installation directory for Python bindings")
+   set(CMAKECONFIG_PY_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/pyrealsense2")
+ endif()
diff --git a/nixpkgs/pkgs/development/libraries/libredwg/default.nix b/nixpkgs/pkgs/development/libraries/libredwg/default.nix
new file mode 100644
index 000000000000..71667460e239
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libredwg/default.nix
@@ -0,0 +1,43 @@
+{ lib, stdenv, fetchFromGitHub, autoreconfHook, pkg-config, texinfo, pcre2
+, enablePython ? false, python, swig, libxml2, ncurses
+}:
+let
+  isPython3 = enablePython && python.pythonAtLeast "3";
+in
+stdenv.mkDerivation rec {
+  pname = "libredwg";
+  version = "0.10.1.3707";
+
+  src = fetchFromGitHub {
+    owner = "LibreDWG";
+    repo = pname;
+    rev = version;
+    sha256 = "009n96lx4ahf05ryvm09z0l9956vz94r8pliyb88j0jficl0pxkf";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config texinfo ] 
+    ++ lib.optional enablePython swig;
+
+  buildInputs = [ pcre2 ]
+    ++ lib.optionals enablePython [ python ]
+    # configurePhase fails with python 3 when ncurses is missing
+    ++ lib.optional isPython3 ncurses
+  ;
+
+  # prevent python tests from running when not building with python
+  configureFlags = lib.optional (!enablePython) "--disable-python";
+
+  doCheck = true;
+
+  # the "xmlsuite" test requires the libxml2 c library as well as the python module
+  checkInputs = lib.optionals enablePython [ libxml2 libxml2.dev ];
+
+  meta = with lib; {
+    description = "Free implementation of the DWG file format";
+    homepage = "https://savannah.gnu.org/projects/libredwg/";
+    maintainers = with maintainers; [ tweber ];
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libressl/default.nix b/nixpkgs/pkgs/development/libraries/libressl/default.nix
index 285d7b607e7b..bb9fb7772892 100644
--- a/nixpkgs/pkgs/development/libraries/libressl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libressl/default.nix
@@ -63,20 +63,13 @@ let
   };
 
 in {
-
-  libressl_2_9 = generic {
-    version = "2.9.2";
-    sha256 = "1m6mz515dcbrbnyz8hrpdfjzdmj1c15vbgnqxdxb89g3z9kq3iy4";
-    patches = stdenv.lib.optional stdenv.hostPlatform.isMusl [
-      (fetchpatch {
-        url = "https://github.com/libressl-portable/portable/pull/529/commits/a747aacc23607c993cc481378782b2c7dd5bc53b.patch";
-        sha256 = "0wbrcscdkjpk4mhh7f3saghi4smia4lhf7fl6la3ahhgx1krn5zm";
-      })
-    ];
-  };
-
   libressl_3_0 = generic {
     version = "3.0.2";
     sha256 = "13ir2lpxz8y1m151k7lrx306498nzfhwlvgkgv97v5cvywmifyyz";
   };
+
+  libressl_3_1 = generic {
+    version = "3.1.3";
+    sha256 = "184znscbkww65aavy2p4v4xncalp1ni19c2w5yvfq4pnmhb06sy7";
+  };
 }
diff --git a/nixpkgs/pkgs/development/libraries/librseq/default.nix b/nixpkgs/pkgs/development/libraries/librseq/default.nix
index d4619ba4320e..4fd8bb7e33a4 100644
--- a/nixpkgs/pkgs/development/libraries/librseq/default.nix
+++ b/nixpkgs/pkgs/development/libraries/librseq/default.nix
@@ -4,22 +4,29 @@
 
 stdenv.mkDerivation rec {
   pname = "librseq";
-  version = "0.1.0pre54_${builtins.substring 0 7 src.rev}";
+  version = "0.1.0pre70_${builtins.substring 0 7 src.rev}";
 
   src = fetchFromGitHub {
     owner  = "compudj";
     repo   = "librseq";
-    rev    = "152600188dd214a0b2c6a8c66380e50c6ad27154";
-    sha256 = "0mivjmgdkgrr6z2gz3k6q6wgnvyvw9xzy65f6ipvqva68sxhk0mx";
+    rev    = "d1cdec98d476b16ca5e2d9d7eabcf9f1c97e6111";
+    sha256 = "0vgillrxc1knq591gjj99x2ws6q1xpm5dmfrhsxisngfpcnjr10v";
   };
 
-  outputs = [ "out" "dev" ];
+  outputs = [ "out" "dev" "man" ];
   nativeBuildInputs = [ autoreconfHook ];
   buildInputs = [ linuxHeaders ];
 
+  installTargets = [ "install" "install-man" ];
+
+  doCheck = true;
   separateDebugInfo = true;
   enableParallelBuilding = true;
 
+  patchPhase = ''
+    patchShebangs tests
+  '';
+
   # The share/ subdir only contains a doc/ with a README.md that just describes
   # how to compile the library, which clearly isn't very useful! So just get
   # rid of it anyway.
diff --git a/nixpkgs/pkgs/development/libraries/librsvg/default.nix b/nixpkgs/pkgs/development/libraries/librsvg/default.nix
index afd1df51e5be..fb61b50346d1 100644
--- a/nixpkgs/pkgs/development/libraries/librsvg/default.nix
+++ b/nixpkgs/pkgs/development/libraries/librsvg/default.nix
@@ -4,14 +4,14 @@
 
 let
   pname = "librsvg";
-  version = "2.48.4";
+  version = "2.48.8";
 in
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "0vlmgisf87dz4vcl1ypcw7g211wkyvhydv6ksf1p6mgdbkw3mdi8";
+    sha256 = "14i6xzghcidv64cyd3g0wdjbl82rph737yxn9s3x29nzpcjs707l";
   };
 
   outputs = [ "out" "dev" "installedTests" ];
diff --git a/nixpkgs/pkgs/development/libraries/libseccomp/default.nix b/nixpkgs/pkgs/development/libraries/libseccomp/default.nix
index f3816c2ef0c9..6ea0e6be465b 100644
--- a/nixpkgs/pkgs/development/libraries/libseccomp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libseccomp/default.nix
@@ -1,17 +1,18 @@
-{ stdenv, fetchurl, getopt, makeWrapper, utillinux }:
+{ stdenv, fetchurl, getopt, utillinux, gperf }:
 
 stdenv.mkDerivation rec {
   pname = "libseccomp";
-  version = "2.4.3";
+  version = "2.5.0";
 
   src = fetchurl {
     url = "https://github.com/seccomp/libseccomp/releases/download/v${version}/libseccomp-${version}.tar.gz";
-    sha256 = "07crwxqzvl5k2b90a47ii9wgvi09s9hsy5b5jddw9ylp351d25fg";
+    sha256 = "1wql62cg8f95cwpy057cl764nni9g4sdn5lqj68x22kjs8w71yhz";
   };
 
   outputs = [ "out" "lib" "dev" "man" ];
 
-  buildInputs = [ getopt makeWrapper ];
+  nativeBuildInputs = [ gperf ];
+  buildInputs = [ getopt ];
 
   patchPhase = ''
     patchShebangs .
@@ -25,13 +26,14 @@ stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "High level library for the Linux Kernel seccomp filter";
-    homepage    = "https://github.com/seccomp/libseccomp";
-    license     = licenses.lgpl21;
-    platforms   = platforms.linux;
+    homepage = "https://github.com/seccomp/libseccomp";
+    license = licenses.lgpl21;
+    platforms = platforms.linux;
     badPlatforms = [
       "alpha-linux"
-      "riscv64-linux" "riscv32-linux"
-      "sparc-linux" "sparc64-linux"
+      "riscv32-linux"
+      "sparc-linux"
+      "sparc64-linux"
     ];
     maintainers = with maintainers; [ thoughtpolice ];
   };
diff --git a/nixpkgs/pkgs/development/libraries/libsidplayfp/default.nix b/nixpkgs/pkgs/development/libraries/libsidplayfp/default.nix
index 7acda3c0a8f6..95f7beff88ad 100644
--- a/nixpkgs/pkgs/development/libraries/libsidplayfp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsidplayfp/default.nix
@@ -1,34 +1,41 @@
-{ stdenv, fetchurl, pkgconfig
-, docSupport ? true, doxygen ? null, graphviz ? null }:
+{ stdenv
+, lib
+, fetchurl
+, pkgconfig
+, docSupport ? true
+, doxygen ? null
+, graphviz ? null
+}:
 
 assert docSupport -> doxygen != null && graphviz != null;
-
+let
+  inherit (lib) optionals optionalString;
+  inherit (lib.versions) majorMinor;
+in
 stdenv.mkDerivation rec {
   pname = "libsidplayfp";
-  major = "1";
-  minor = "8";
-  level = "7";
-  version = "${major}.${minor}.${level}";
+  version = "2.0.4";
 
   src = fetchurl {
-    url = "mirror://sourceforge/sidplay-residfp/${pname}/${major}.${minor}/${pname}-${version}.tar.gz";
-    sha256 = "14k1sbdcbhykwfcadq5lbpnm9xp2r7vs7fyi84h72g89y8pjg0da";
+    url = "mirror://sourceforge/sidplay-residfp/${pname}/${majorMinor version}/${pname}-${version}.tar.gz";
+    sha256 = "0d866czmnmhnhb2j37rlrdphjdi2b75kak9barm9xqwg2z0nmmhz";
   };
 
   nativeBuildInputs = [ pkgconfig ]
-    ++ stdenv.lib.optionals docSupport [ doxygen graphviz ];
+    ++ optionals docSupport [ doxygen graphviz ];
 
   installTargets = [ "install" ]
-    ++ stdenv.lib.optionals docSupport [ "doc" ];
+    ++ optionals docSupport [ "doc" ];
 
-  outputs = [ "out" ] ++ stdenv.lib.optionals docSupport [ "doc" ];
+  outputs = [ "out" ]
+    ++ optionals docSupport [ "doc" ];
 
-  postInstall = stdenv.lib.optionalString docSupport ''
+  postInstall = optionalString docSupport ''
     mkdir -p $doc/share/doc/libsidplayfp
     mv docs/html $doc/share/doc/libsidplayfp/
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A library to play Commodore 64 music derived from libsidplay2";
     homepage = "https://sourceforge.net/projects/sidplay-residfp/";
     license = with licenses; [ gpl2Plus ];
diff --git a/nixpkgs/pkgs/development/libraries/libsignon-glib/default.nix b/nixpkgs/pkgs/development/libraries/libsignon-glib/default.nix
index 77a43872d4ea..1f453dc291e4 100644
--- a/nixpkgs/pkgs/development/libraries/libsignon-glib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsignon-glib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, pkgconfig, meson, ninja, vala, python3, gtk-doc, docbook_xsl, docbook_xml_dtd_43, docbook_xml_dtd_412, glib, check, gobject-introspection }:
+{ stdenv, fetchgit, nix-update-script, pkgconfig, meson, ninja, vala, python3, gtk-doc, docbook_xsl, docbook_xml_dtd_43, docbook_xml_dtd_412, glib, check, gobject-introspection }:
 
 stdenv.mkDerivation rec {
   pname = "libsignon-glib";
@@ -42,6 +42,12 @@ stdenv.mkDerivation rec {
     patchShebangs build-aux/gen-error-map.py
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = pname;
+    };
+  };
+
   meta = with stdenv.lib; {
     description = "A library for managing single signon credentials which can be used from GLib applications";
     homepage = "https://gitlab.com/accounts-sso/libsignon-glib";
diff --git a/nixpkgs/pkgs/development/libraries/libslirp/default.nix b/nixpkgs/pkgs/development/libraries/libslirp/default.nix
index ee31e22628c8..0413d8a8abc4 100644
--- a/nixpkgs/pkgs/development/libraries/libslirp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libslirp/default.nix
@@ -8,14 +8,14 @@
 
 stdenv.mkDerivation rec {
   pname = "libslirp";
-  version = "4.3.0";
+  version = "4.3.1";
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "slirp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1hajbdwx20a48hp8kv6jqbjvnzjvcdqmbjfsymzy2xa80idqkfab";
+    sha256 = "0pzgjj2x2vrjshrzrl2x39xp5lgwg4b4y9vs8xvadh1ycl10v3fv";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/libsvm/default.nix b/nixpkgs/pkgs/development/libraries/libsvm/default.nix
index 0709f3867e45..5dc4deb30be9 100644
--- a/nixpkgs/pkgs/development/libraries/libsvm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libsvm/default.nix
@@ -10,18 +10,19 @@ stdenv.mkDerivation rec {
   };
 
   buildPhase = ''
-  make
-  make lib
+    make
+    make lib
   '';
 
   installPhase = let
     libSuff = stdenv.hostPlatform.extensions.sharedLibrary;
   in ''
-    mkdir -p $out/lib $out/bin $out/include;
-    cp libsvm.so.2 $out/lib/libsvm.2${libSuff};
-    ln -s $out/lib/libsvm.2${libSuff} $out/lib/libsvm${libSuff};
-    cp svm-scale svm-train svm-predict $out/bin;
-    cp svm.h $out/include;
+    install -D libsvm.so.2 $out/lib/libsvm.2${libSuff}
+    ln -s $out/lib/libsvm.2${libSuff} $out/lib/libsvm${libSuff}
+    install -Dt $out/bin/ svm-scale svm-train svm-predict
+    install -Dm644 -t $out/include svm.h
+    mkdir $out/include/libsvm
+    ln -s $out/include/svm.h $out/include/libsvm/svm.h
   '';
 
   postFixup = stdenv.lib.optionalString stdenv.isDarwin ''
diff --git a/nixpkgs/pkgs/development/libraries/libthreadar/default.nix b/nixpkgs/pkgs/development/libraries/libthreadar/default.nix
new file mode 100644
index 000000000000..ed19fab6d994
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libthreadar/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchurl }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  version = "1.3.0";
+  pname = "libthreadar";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/libthreadar/${pname}-${version}.tar.gz";
+    sha256 = "0g2wxykawlsj6ma9slbbk0bxynqvmkwhaln2fiwc21x7nhjvpn9z";
+  };
+
+  outputs = [ "out" "dev" ];
+
+  configureFlags = [
+    "--disable-build-html"
+  ];
+
+  postInstall = ''
+    # Disable html help
+    rm -r "$out"/share
+  '';
+
+  meta = {
+    homepage = "http://libthreadar.sourceforge.net/";
+    description = ''
+      Libthreadar is a C++ library providing a small set of C++ classes to manipulate
+      threads in a very simple and efficient way from your C++ code.
+    '';
+    maintainers = with maintainers; [ izorkin ];
+    license = licenses.lgpl3;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/libtomcrypt/default.nix b/nixpkgs/pkgs/development/libraries/libtomcrypt/default.nix
index d9e9df59324d..4587701011dd 100644
--- a/nixpkgs/pkgs/development/libraries/libtomcrypt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libtomcrypt/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libtool }:
+{ stdenv, fetchurl, fetchpatch, libtool }:
 
 stdenv.mkDerivation rec {
   pname = "libtomcrypt";
@@ -9,6 +9,14 @@ stdenv.mkDerivation rec {
     sha256 = "113vfrgapyv72lalhd3nkw7jnks8az0gcb5wqn9hj19nhcxlrbcn";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2019-17362.patch";
+      url = "https://github.com/libtom/libtomcrypt/pull/508/commits/25c26a3b7a9ad8192ccc923e15cf62bf0108ef94.patch";
+      sha256 = "1bwsj0pwffxw648wd713z3xcyrbxc2z646psrzp38ys564fjh5zf";
+    })
+  ];
+
   nativeBuildInputs = [ libtool ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/libtsm/darwin.patch b/nixpkgs/pkgs/development/libraries/libtsm/darwin.patch
deleted file mode 100644
index d447be456e0e..000000000000
--- a/nixpkgs/pkgs/development/libraries/libtsm/darwin.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 4e7b7b1124bfbccb43820997164b00720bf5ca31 Mon Sep 17 00:00:00 2001
-From: Florian Gilcher <florian.gilcher@asquera.de>
-Date: Sun, 23 Mar 2014 23:05:44 +0100
-Subject: [PATCH] Remove GCC specific flags
-
----
- Makefile.am | 10 ++--------
- 1 file changed, 2 insertions(+), 8 deletions(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index f1e872b..c011f02 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -69,11 +69,7 @@ AM_CFLAGS = \
- AM_CPPFLAGS = \
- 	-include $(top_builddir)/config.h \
- 	-I $(srcdir)/src
--AM_LDFLAGS = \
--	-Wl,--as-needed \
--	-Wl,--gc-sections \
--	-Wl,-z,relro \
--	-Wl,-z,now
-+AM_LDFLAGS =
- 
- if BUILD_ENABLE_DEBUG
- AM_CFLAGS += -g
-@@ -134,9 +130,7 @@ libtsm_la_CPPFLAGS = $(AM_CPPFLAGS)
- libtsm_la_LIBADD = libshl.la
- EXTRA_libtsm_la_DEPENDENCIES = $(top_srcdir)/docs/libtsm.sym
- libtsm_la_LDFLAGS = \
--	$(AM_LDFLAGS) \
--	-version-info $(LIBTSM_CURRENT):$(LIBTSM_REVISION):$(LIBTSM_AGE) \
--	-Wl,--version-script="$(top_srcdir)/docs/libtsm.sym"
-+	$(AM_LDFLAGS)
- 
- if BUILD_HAVE_XKBCOMMON
- libtsm_la_CPPFLAGS += $(XKBCOMMON_CFLAGS)
diff --git a/nixpkgs/pkgs/development/libraries/libtsm/default.nix b/nixpkgs/pkgs/development/libraries/libtsm/default.nix
index ebeb927aaa47..21108fa108e4 100644
--- a/nixpkgs/pkgs/development/libraries/libtsm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libtsm/default.nix
@@ -1,23 +1,21 @@
-{ stdenv, lib, fetchurl, libxkbcommon, pkgconfig, autoreconfHook }:
+{ stdenv, fetchFromGitHub, libxkbcommon, pkgconfig, cmake }:
 
 stdenv.mkDerivation rec {
-  name = "libtsm-3";
+  pname = "libtsm";
+  version = "4.0.1";
 
-  src = fetchurl {
-    url = "https://freedesktop.org/software/kmscon/releases/${name}.tar.xz";
-    sha256 = "01ygwrsxfii0pngfikgqsb4fxp8n1bbs47l7hck81h9b9bc1ah8i";
+  src = fetchFromGitHub {
+    owner = "Aetf";
+    repo = "libtsm";
+    rev = "v${version}";
+    sha256 = "0mwn91i5h5d518i1s05y7hzv6bc13vzcvxszpfh77473iwg4wprx";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ libxkbcommon ] ++ lib.optionals stdenv.isDarwin [
-    autoreconfHook
-  ];
+  buildInputs = [ libxkbcommon ];
 
-  configureFlags = [ "--disable-debug" ];
+  nativeBuildInputs = [ cmake pkgconfig ];
 
-  patches = lib.optional stdenv.isDarwin ./darwin.patch;
-
-  meta = with lib; {
+  meta = with stdenv.lib; {
     description = "Terminal-emulator State Machine";
     homepage = "http://www.freedesktop.org/wiki/Software/kmscon/libtsm/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/libraries/libu2f-host/default.nix b/nixpkgs/pkgs/development/libraries/libu2f-host/default.nix
index f033aa9f610f..a9c62673115a 100644
--- a/nixpkgs/pkgs/development/libraries/libu2f-host/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libu2f-host/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, json_c, hidapi }:
+{ stdenv, fetchurl, fetchpatch, pkgconfig, json_c, hidapi }:
 
 stdenv.mkDerivation rec {
   pname = "libu2f-host";
@@ -9,6 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "0vrivl1dwql6nfi48z6dy56fwy2z13d7abgahgrs2mcmqng7hra2";
   };
 
+  patches = [
+    # remove after updating to next release
+    (fetchpatch {
+      name = "json-c-0.14-support.patch";
+      url = "https://github.com/Yubico/libu2f-host/commit/840f01135d2892f45e71b9e90405de587991bd03.patch";
+      sha256 = "0xplx394ppsbsb4h4l8b9m4dv9shbl0zyck3y26vbm9i1g981ki7";
+    })
+  ];
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ json_c hidapi ];
 
diff --git a/nixpkgs/pkgs/development/libraries/libu2f-server/default.nix b/nixpkgs/pkgs/development/libraries/libu2f-server/default.nix
index be5658914d17..cd961cde1d28 100644
--- a/nixpkgs/pkgs/development/libraries/libu2f-server/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libu2f-server/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, json_c, openssl, check, file, help2man, which, gengetopt }:
+{ stdenv, fetchurl, fetchpatch, pkgconfig, json_c, openssl, check, file, help2man, which, gengetopt }:
 
 stdenv.mkDerivation rec {
   name = "libu2f-server-1.1.0";
@@ -7,6 +7,15 @@ stdenv.mkDerivation rec {
     sha256 = "0xx296nmmqa57w0v5p2kasl5zr1ms2gh6qi4lhv6xvzbmjp3rkcd";
   };
 
+  patches = [
+    # remove after updating to next release
+    (fetchpatch {
+      name = "json-c-0.14-support.patch";
+      url = "https://github.com/Yubico/libu2f-server/commit/f7c4983b31909299c47bf9b2627c84b6bfe225de.patch";
+      sha256 = "10q66w3paii1yhfdmjskpip078fk9p3sjllbqx1yx71qbjki55b0";
+    })
+  ];
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ json_c openssl check file help2man which gengetopt ];
 
diff --git a/nixpkgs/pkgs/development/libraries/libunibreak/default.nix b/nixpkgs/pkgs/development/libraries/libunibreak/default.nix
index 5b5491768891..d30c84b52a2e 100644
--- a/nixpkgs/pkgs/development/libraries/libunibreak/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libunibreak/default.nix
@@ -1,17 +1,23 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchFromGitHub, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "libunibreak";
-  version = "1.1";
+  version = "4.3";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/vimgadgets/libunibreak/${version}/${pname}-${version}.tar.gz";
-    sha256 = "02657l426bk5d8h42b9ixxy1clc50mx4bzwg02nkdhs09wqw32wn";
+  src = let
+      rev_version = stdenv.lib.replaceStrings ["."] ["_"] version;
+  in fetchFromGitHub {
+    owner = "adah1972";
+    repo = pname;
+    rev = "libunibreak_${rev_version}";
+    sha256 = "19g3ixs1ycisfdnzd8v7j5r49h0x0hshchk9qwlz4i0mjv825plx";
   };
 
+  nativeBuildInputs = [ autoreconfHook ];
+
   meta = with stdenv.lib; {
-    homepage = "http://vimgadgets.sourceforge.net/libunibreak/";
-    description = "A library implementing a line breaking algorithm as described in Unicode 6.0.0 Standard";
+    homepage = "https://github.com/adah1972/libunibreak";
+    description = "Implementation of line breaking and word breaking algorithms as in the Unicode standard";
     license = licenses.zlib;
     platforms = platforms.unix;
     maintainers = [ maintainers.coroa ];
diff --git a/nixpkgs/pkgs/development/libraries/liburing/default.nix b/nixpkgs/pkgs/development/libraries/liburing/default.nix
index 519023bb27e1..e02978122093 100644
--- a/nixpkgs/pkgs/development/libraries/liburing/default.nix
+++ b/nixpkgs/pkgs/development/libraries/liburing/default.nix
@@ -4,12 +4,12 @@
 
 stdenv.mkDerivation rec {
   pname = "liburing";
-  version = "0.6pre600_${builtins.substring 0 8 src.rev}";
+  version = "0.7";
 
   src = fetchgit {
     url    = "http://git.kernel.dk/${pname}";
-    rev    = "f2e1f3590f7bed3040bd1691676b50839f7d5c39";
-    sha256 = "0wg0pgcbilbb2wg08hsvd18q1m8vdk46b3piz7qb1pvgyq01idj2";
+    rev    = "liburing-${version}";
+    sha256 = "15z44l7y4c6s6dlf7v8lq4znlsjbja2r4ifbni0l8cdcnq0w3zh3";
   };
 
   separateDebugInfo = true;
diff --git a/nixpkgs/pkgs/development/libraries/libusb/fix-headers.patch b/nixpkgs/pkgs/development/libraries/libusb-compat/fix-headers.patch
index ea9cbc34978e..ea9cbc34978e 100644
--- a/nixpkgs/pkgs/development/libraries/libusb/fix-headers.patch
+++ b/nixpkgs/pkgs/development/libraries/libusb-compat/fix-headers.patch
diff --git a/nixpkgs/pkgs/development/libraries/libusb1/default.nix b/nixpkgs/pkgs/development/libraries/libusb1/default.nix
index 5d6a20b13a4d..a3323c8e026b 100644
--- a/nixpkgs/pkgs/development/libraries/libusb1/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libusb1/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     sha256 = "0mxbpg01kgbk5nh6524b0m4xk7ywkyzmc3yhi5asqcsd3rbhjj98";
   };
 
-  outputs = [ "out" "dev" ]; # get rid of propagating systemd closure
+  outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
   propagatedBuildInputs =
@@ -31,8 +31,6 @@ stdenv.mkDerivation rec {
 
   dontDisableStatic = withStatic;
 
-  NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
-
   configureFlags = stdenv.lib.optional (!enableSystemd) "--disable-udev";
 
   preFixup = stdenv.lib.optionalString enableSystemd ''
diff --git a/nixpkgs/pkgs/development/libraries/libuv/default.nix b/nixpkgs/pkgs/development/libraries/libuv/default.nix
index e22bcdd86b4f..cf73a64f6752 100644
--- a/nixpkgs/pkgs/development/libraries/libuv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libuv/default.nix
@@ -1,14 +1,14 @@
 { stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, pkgconfig, ApplicationServices, CoreServices }:
 
 stdenv.mkDerivation rec {
-  version = "1.38.0";
+  version = "1.38.1";
   pname = "libuv";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "04598jglikma5plfiprnw4pcxwp7b6aqxphxs65pdd5xira6dz0s";
+    sha256 = "0cvabjhi53qw94zyjkqamx0c607ayydfb4f3djx2gj8ab2p7s29n";
   };
 
   postPatch = let
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
       "getaddrinfo_fail" "getaddrinfo_fail_sync"
       "threadpool_multiple_event_loops" # times out on slow machines
       "get_passwd" # passed on NixOS but failed on other Linuxes
-      "tcp_writealot" # times out sometimes
+      "tcp_writealot" "udp_multicast_join" "udp_multicast_join6" # times out sometimes
     ] ++ stdenv.lib.optionals stdenv.isDarwin [
         # Sometimes: timeout (no output), failed uv_listen. Someone
         # should report these failures to libuv team. There tests should
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
         "tcp_open" "tcp_write_queue_order" "tcp_try_write" "tcp_writealot"
         "multiple_listen" "delayed_accept"
         "shutdown_close_tcp" "shutdown_eof" "shutdown_twice" "callback_stack"
-        "tty_pty" "condvar_5" "hrtime"
+        "tty_pty" "condvar_5" "hrtime" "udp_multicast_join"
         # Tests that fail when sandboxing is enabled.
         "fs_event_close_in_callback" "fs_event_watch_dir" "fs_event_error_reporting"
         "fs_event_watch_dir_recursive" "fs_event_watch_file"
diff --git a/nixpkgs/pkgs/development/libraries/libva/default.nix b/nixpkgs/pkgs/development/libraries/libva/default.nix
index d0bd2ecc009b..7f690f0997b0 100644
--- a/nixpkgs/pkgs/development/libraries/libva/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libva/default.nix
@@ -7,29 +7,16 @@
 
 stdenv.mkDerivation rec {
   name = "libva-${lib.optionalString minimal "minimal-"}${version}";
-  version = "2.7.1"; # Also update the hash for libva-utils!
+  version = "2.8.0"; # Also update the hash for libva-utils!
 
   # update libva-utils and vaapiIntel as well
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "libva";
     rev    = version;
-    sha256 = "0ywasac7z3hwggj8szp83sbxi2naa0a3amblx64y7i1hyyrn0csq";
+    sha256 = "190cq173jzp5rkrczi8gzbwa0y3xk253v4wd205a5ilfngm7srns";
   };
 
-  patches = [
-    (fetchpatch { # meson: Allow for libdir and includedir to be absolute paths
-      url = "https://github.com/intel/libva/commit/de902e2905abff635f3bb151718cc52caa3f669c.patch";
-      sha256 = "1lpc8qzvsxnlsh9g0ab5lja204zxz8rr2p973pfihcw7dcxc3gia";
-    })
-  ];
-
-  postPatch = ''
-    # Remove the execute bit from all source code files
-    # https://github.com/intel/libva/commit/dbd2cd635f33af1422cbc2079af0a7e68671c102
-    chmod -x va/va{,_dec_av1,_trace,_vpp}.h
-  '';
-
   outputs = [ "dev" "out" ];
 
   nativeBuildInputs = [ meson pkg-config ninja wayland ];
diff --git a/nixpkgs/pkgs/development/libraries/libva-utils/default.nix b/nixpkgs/pkgs/development/libraries/libva/utils.nix
index 90f1849aee02..5b9f4cdd8aa3 100644
--- a/nixpkgs/pkgs/development/libraries/libva-utils/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libva/utils.nix
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner  = "intel";
     repo   = "libva-utils";
     rev    = version;
-    sha256 = "13a0dccphi4cpr2cx45kg4djxsssi3d1fcjrkx27b16xiayp5lx9";
+    sha256 = "081hw2jnj64bpqwh9p41n5caqzm6dnj1ggnvvc5wrf4m2z1h2bjb";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config ];
diff --git a/nixpkgs/pkgs/development/libraries/libversion/default.nix b/nixpkgs/pkgs/development/libraries/libversion/default.nix
index cee04fa79e43..a26aa9b56941 100644
--- a/nixpkgs/pkgs/development/libraries/libversion/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libversion/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake }:
+{ stdenv, fetchFromGitHub, cmake, lib }:
 
 stdenv.mkDerivation rec {
   pname = "libversion";
@@ -13,6 +13,10 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ];
 
+  cmakeFlags = lib.optional stdenv.isDarwin [
+    "-DCMAKE_SKIP_BUILD_RPATH=OFF" # needed for tests
+  ];
+
   preCheck = ''
     export LD_LIBRARY_PATH=/build/source/build/libversion/''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
   '';
diff --git a/nixpkgs/pkgs/development/libraries/libvirt/default.nix b/nixpkgs/pkgs/development/libraries/libvirt/default.nix
index 3c0cc9751e3b..27f345a9c834 100644
--- a/nixpkgs/pkgs/development/libraries/libvirt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libvirt/default.nix
@@ -17,19 +17,19 @@ let
   buildFromTarball = stdenv.isDarwin;
 in stdenv.mkDerivation rec {
   pname = "libvirt";
-  version = "6.2.0";
+  version = "6.3.0";
 
   src =
     if buildFromTarball then
       fetchurl {
         url = "http://libvirt.org/sources/${pname}-${version}.tar.xz";
-        sha256 = "1c8grqf751blsgs15wx2p05wvankdrady6290vwc85v94cgqij5f";
+        sha256 = "1xcng497hs1gary3pz3fp590a4r1kqs4d0d8k5p370j0scw981kl";
       }
     else
       fetchgit {
         url = "git://libvirt.org/libvirt.git";
         rev = "v${version}";
-        sha256 = "1wyihi8bhwsck9b7f3b8yhlz145sjdyyj3ykjiszrqnp0y99xxy2";
+        sha256 = "129b3p72jlb40dsidak3nvpssv75xx2v99y63gzp5k074fp8y8x4";
         fetchSubmodules = true;
       };
 
@@ -65,6 +65,7 @@ in stdenv.mkDerivation rec {
   dontAddDisableDepTrack = true;
 
   configureFlags = [
+    "--with-runstatedir=/run" # TODO: remove when autoconf 1.70 is released
     "--localstatedir=/var"
     "--sysconfdir=/var/lib"
     "--with-libpcap"
@@ -97,6 +98,7 @@ in stdenv.mkDerivation rec {
   ];
 
   installFlags = [
+    "runstatedir=${placeholder "out"}/run"
     "localstatedir=$(TMPDIR)/var"
     "sysconfdir=$(out)/var/lib"
   ];
diff --git a/nixpkgs/pkgs/development/libraries/libvmaf/default.nix b/nixpkgs/pkgs/development/libraries/libvmaf/default.nix
index fb494909c838..9f7e84558f7d 100644
--- a/nixpkgs/pkgs/development/libraries/libvmaf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libvmaf/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, fetchFromGitHub, meson, ninja }:
+{ stdenv, fetchFromGitHub, meson, ninja, nasm }:
 
 stdenv.mkDerivation rec {
   pname = "libvmaf";
-  version = "1.5.1";
+  version = "1.5.3";
 
   src = fetchFromGitHub {
     owner = "netflix";
     repo = "vmaf";
     rev = "v${version}";
-    sha256 = "10fw53k9k4aq4p2qi5qkfjfnhldw4p5bbmxggf8220gfa95nvyl3";
+    sha256 = "0x3l3g0hgrrjh3ygmxr1pd3rd5589s07c7id35nvj76ch5b7gy63";
   };
 
   sourceRoot = "source/libvmaf";
 
-  nativeBuildInputs = [ meson ninja ];
+  nativeBuildInputs = [ meson ninja nasm ];
   outputs = [ "out" "dev" ];
   doCheck = true;
 
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/Netflix/vmaf";
     description = "Perceptual video quality assessment based on multi-method fusion (VMAF)";
     platforms = platforms.unix;
-    license = licenses.asl20;
+    license = licenses.bsd2Patent;
     maintainers = [ maintainers.cfsmp3 maintainers.marsam ];
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/libvncserver/default.nix b/nixpkgs/pkgs/development/libraries/libvncserver/default.nix
index c9adad6f6454..c4e82b1c326c 100644
--- a/nixpkgs/pkgs/development/libraries/libvncserver/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libvncserver/default.nix
@@ -7,9 +7,9 @@ let
   s = # Generated upstream information
   rec {
     pname = "libvncserver";
-    version = "0.9.12";
+    version = "0.9.13";
     url = "https://github.com/LibVNC/libvncserver/archive/LibVNCServer-${version}.tar.gz";
-    sha256 = "1226hb179l914919f5nm2mlf8rhaarqbf48aa649p4rwmghyx9vm"; # unpacked archive checksum
+    sha256 = "0zz0hslw8b1p3crnfy3xnmrljik359h83dpk64s697dqdcrzy141"; # unpacked archive checksum
   };
 in
 stdenv.mkDerivation {
@@ -17,18 +17,7 @@ stdenv.mkDerivation {
   src = fetchzip {
     inherit (s) url sha256;
   };
-  patches = [
-    (fetchpatch {
-      name = "CVE-2018-20750.patch";
-      url = "https://github.com/LibVNC/libvncserver/commit/09e8fc02f59f16e2583b34fe1a270c238bd9ffec.patch";
-      sha256 = "004h50786nvjl3y3yazpsi2b767vc9gqrwm1ralj3zgy47kwfhqm";
-    })
-    (fetchpatch {
-      name = "CVE-2019-15681.patch";
-      url = "https://github.com/LibVNC/libvncserver/commit/d01e1bb4246323ba6fcee3b82ef1faa9b1dac82a.patch";
-      sha256 = "0hf0ss7all2m50z2kan4mck51ws44yim4ymn8p0d991y465y6l9s";
-    })
-  ];
+
   nativeBuildInputs = [ cmake ];
   buildInputs = [
     libjpeg openssl libgcrypt libpng
diff --git a/nixpkgs/pkgs/development/libraries/libwacom/default.nix b/nixpkgs/pkgs/development/libraries/libwacom/default.nix
index c33317550b5f..7c71dc4388b8 100644
--- a/nixpkgs/pkgs/development/libraries/libwacom/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libwacom/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libwacom";
-  version = "1.3";
+  version = "1.5";
 
   outputs = [ "out" "dev" ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "linuxwacom";
     repo = "libwacom";
     rev = "libwacom-${version}";
-    sha256 = "12g8jb67wj6sgg9ar2w8kkw1m1431rn9nd0j64qkrd3vy9g4l0hk";
+    sha256 = "1a3qkzpkag1vqd2xl7b7f2b8kbg1y1g6gg5ydzb1ppyqw3zdjf9x";
   };
 
   nativeBuildInputs = [ pkgconfig meson ninja doxygen ];
diff --git a/nixpkgs/pkgs/development/libraries/libwebsockets/default.nix b/nixpkgs/pkgs/development/libraries/libwebsockets/default.nix
index ddafc9bc6594..c56781931f3f 100644
--- a/nixpkgs/pkgs/development/libraries/libwebsockets/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libwebsockets/default.nix
@@ -16,8 +16,13 @@ let
 
     nativeBuildInputs = [ cmake ];
 
-    cmakeFlags = [ "-DLWS_WITH_PLUGINS=ON" ];
-    NIX_CFLAGS_COMPILE = "-Wno-error=unused-but-set-variable";
+    cmakeFlags = [
+      "-DLWS_WITH_PLUGINS=ON"
+      "-DLWS_WITH_IPV6=ON"
+      "-DLWS_WITH_SOCKS5=ON"
+    ];
+
+    NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isGNU "-Wno-error=unused-but-set-variable";
 
     meta = with stdenv.lib; {
       description = "Light, portable C library for websockets";
diff --git a/nixpkgs/pkgs/development/libraries/libwhereami/default.nix b/nixpkgs/pkgs/development/libraries/libwhereami/default.nix
index 8e190f998d56..59e349b4e6a1 100644
--- a/nixpkgs/pkgs/development/libraries/libwhereami/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libwhereami/default.nix
@@ -2,16 +2,16 @@
 
 stdenv.mkDerivation rec {
   pname = "libwhereami";
-  version = "0.3.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
-    sha256 = "16xjb6zp60ma76aa3kq3q8i8zn0n61gf39fny12cny8nggwjpbww";
+    sha256 = "05fc28dri2h858kxbvldk5b6wd5is3fjcdsiqj3nxf95i66bb3xp";
     rev = version;
     repo = "libwhereami";
     owner = "puppetlabs";
   };
 
-  NIX_CFLAGS_COMPILE = "-Wno-error=catch-value";
+  NIX_CFLAGS_COMPILE = "-Wno-error";
 
   nativeBuildInputs = [ cmake ];
 
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     description = "Library to report hypervisor information from inside a VM";
     license = licenses.asl20;
     maintainers = [ maintainers.womfoo ];
-    platforms = with platforms; [ "i686-linux" "x86_64-linux" ]; # fails on aarch64
+    platforms = with platforms; [ "i686-linux" "x86_64-linux" "x86_64-darwin" ]; # fails on aarch64
   };
 
 }
diff --git a/nixpkgs/pkgs/development/libraries/libxls/default.nix b/nixpkgs/pkgs/development/libraries/libxls/default.nix
index 2b28499864a7..d555ecea06df 100644
--- a/nixpkgs/pkgs/development/libraries/libxls/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxls/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "libxls";
-  version = "1.5.2";
+  version = "1.5.3";
 
   src = fetchurl {
     url = "https://github.com/libxls/libxls/releases/download/v${version}/libxls-${version}.tar.gz";
-    sha256 = "1akadsyl10rp101ccjmrxr7933c3v641k377bn74jv6cdkcm4zld";
+    sha256 = "0rl513wpq5qh7wkmdk4g9c68rzffv3mcbz48p4xyg4969zrx8lnm";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/development/libraries/libxml2/default.nix b/nixpkgs/pkgs/development/libraries/libxml2/default.nix
index 7c39d8039067..5e290b25832d 100644
--- a/nixpkgs/pkgs/development/libraries/libxml2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxml2/default.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchurl, fetchpatch
-, zlib, xz, python, ncurses, findXMLCatalogs
+, zlib, xz, libintl, python, gettext, ncurses, findXMLCatalogs
 , pythonSupport ? stdenv.buildPlatform == stdenv.hostPlatform
 , icuSupport ? false, icu ? null
 , enableShared ? stdenv.hostPlatform.libc != "msvcrt"
@@ -44,7 +44,10 @@ stdenv.mkDerivation rec {
     ++ lib.optional (enableStatic && enableShared) "static";
 
   buildInputs = lib.optional pythonSupport python
+    ++ lib.optional (pythonSupport && python?isPy2 && python.isPy2) gettext
     ++ lib.optional (pythonSupport && python?isPy3 && python.isPy3) ncurses
+    ++ lib.optional (stdenv.isDarwin &&
+                     pythonSupport && python?isPy2 && python.isPy2) libintl
     # Libxml2 has an optional dependency on liblzma.  However, on impure
     # platforms, it may end up using that from /usr/lib, and thus lack a
     # RUNPATH for that, leading to undefined references for its users.
diff --git a/nixpkgs/pkgs/development/libraries/libxmlb/default.nix b/nixpkgs/pkgs/development/libraries/libxmlb/default.nix
index f559a4e50509..97e8d23c0700 100644
--- a/nixpkgs/pkgs/development/libraries/libxmlb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxmlb/default.nix
@@ -15,7 +15,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libxmlb";
-  version = "0.1.15";
+  version = "0.2.1";
 
   outputs = [ "out" "lib" "dev" "devdoc" "installedTests" ];
 
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     owner = "hughsie";
     repo = "libxmlb";
     rev = version;
-    sha256 = "1mb73pnfwqc4mm0lm16yfn0lj495h8hcciprb2v6wgy3ifnnjxib";
+    sha256 = "XD66YfD8fjaqp5pkcR8qNh7Srjh+atAIC2qkDTF7KdM=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/libxnd/default.nix b/nixpkgs/pkgs/development/libraries/libxnd/default.nix
index 7313b2582bea..1fac0d86d4c7 100644
--- a/nixpkgs/pkgs/development/libraries/libxnd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxnd/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation {
   pname = "libxnd";
-  version = "unstable-2018-11-27";
+  version = "unstable-2019-08-01";
 
   src = fetchFromGitHub {
-    owner = "plures";
+    owner = "xnd-project";
     repo = "xnd";
-    rev = "8a9f3bd1d01d872828b40bc9dbd0bc0184524da3";
-    sha256 = "10jh2kqvhpzwy50adayh9az7z2lm16yxy4flrh99alzzbqdyls44";
+    rev = "6f305cd40d90b4f3fc2fe51ae144b433d186a6cc";
+    sha256 = "1n31d64qwlc7m3qkzbafhp0dgrvgvkdx89ykj63kll7r1n3yk59y";
   };
 
   buildInputs = [ libndtypes ];
@@ -28,6 +28,14 @@ stdenv.mkDerivation {
       "--with-libs=${libndtypes}/lib"
   ];
 
+  # other packages which depend on libxnd seem to expect overflow.h, but
+  # it doesn't seem to be included in the installed headers. for now this
+  # works, but the generic name of the header could produce problems
+  # with collisions down the line.
+  postInstall = ''
+    cp libxnd/overflow.h $out/include/overflow.h
+  '';
+
   doCheck = true;
 
   meta = {
diff --git a/nixpkgs/pkgs/development/libraries/libxsmm/default.nix b/nixpkgs/pkgs/development/libraries/libxsmm/default.nix
index 25c85948608a..394347277f6a 100644
--- a/nixpkgs/pkgs/development/libraries/libxsmm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libxsmm/default.nix
@@ -1,9 +1,11 @@
-{ stdenv, fetchFromGitHub, coreutils, gfortran7, gnused
-, python27, utillinux, which, bash
+{ stdenv, fetchFromGitHub, coreutils, gfortran, gnused
+, python3, utillinux, which
+
+, enableStatic ? false
 }:
 
 let
-  version = "1.15";
+  version = "1.16.1";
 in stdenv.mkDerivation {
   pname = "libxsmm";
   inherit version;
@@ -11,31 +13,40 @@ in stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "hfp";
     repo = "libxsmm";
-    rev = "refs/tags/${version}";
-    sha256 = "1406qk7k2k4qfqy4psqk55iihsrx91w8kjgsa82jxj50nl9nw5nj";
+    rev = version;
+    sha256 = "1c1qj6hcdfx11bvilnly92vgk1niisd2bjw1s8vfyi2f7ws1wnp0";
   };
 
-  buildInputs = [
+  nativeBuildInputs = [
     coreutils
-    gfortran7
+    gfortran
     gnused
-    python27
+    python3
     utillinux
     which
   ];
 
+  enableParallelBuilding = true;
+
+  dontConfigure = true;
+
+  makeFlags = let
+    static = if enableStatic then "1" else "0";
+  in [
+    "OMP=1"
+    "PREFIX=$(out)"
+    "STATIC=${static}"
+  ];
+
   prePatch = ''
     patchShebangs .
   '';
 
-  makeFlags = [ "PREFIX=$(out)" ];
-
   meta = with stdenv.lib; {
     description = "Library targeting Intel Architecture for specialized dense and sparse matrix operations, and deep learning primitives";
     license = licenses.bsd3;
     homepage = "https://github.com/hfp/libxsmm";
     platforms = platforms.linux;
     maintainers = with stdenv.lib.maintainers; [ chessai ];
-    inherit version;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/libyaml/default.nix b/nixpkgs/pkgs/development/libraries/libyaml/default.nix
index 7f723cf2ef8e..37b8ebcc3efa 100644
--- a/nixpkgs/pkgs/development/libraries/libyaml/default.nix
+++ b/nixpkgs/pkgs/development/libraries/libyaml/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libyaml";
-  version = "0.2.4";
+  version = "0.2.5";
 
   src = fetchFromGitHub {
     owner = "yaml";
     repo = "libyaml";
     rev = version;
-    sha256 = "04z25mvw86jhzyrj0h8mlgisvj9glc5ww9g0cymzjfsd7z33gnmy";
+    sha256 = "18zsnsxc53pans4a01cs4401a2cjk3qi098hi440pj4zijifgcsb";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/development/libraries/lime/default.nix b/nixpkgs/pkgs/development/libraries/lime/default.nix
index 3ebcc7ad78a6..aa34ff2e927c 100644
--- a/nixpkgs/pkgs/development/libraries/lime/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lime/default.nix
@@ -9,7 +9,7 @@
 
 stdenv.mkDerivation rec {
   pname = "lime";
-  version = "4.3.1";
+  version = "4.4.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.linphone.org";
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     group = "BC";
     repo = pname;
     rev = version;
-    sha256 = "1ilpp9ai4sah23ngnxisvmwhrv5jkk5f831yp7smpl225z5nv83g";
+    sha256 = "14jg1zisjbzflw3scfqdbwy48wq3cp93l867vigb8l40lkc6n26z";
   };
 
   buildInputs = [ bctoolbox soci belle-sip sqlite ];
diff --git a/nixpkgs/pkgs/development/libraries/lyra/default.nix b/nixpkgs/pkgs/development/libraries/lyra/default.nix
index c0220e6e21db..8d5d083d82b0 100644
--- a/nixpkgs/pkgs/development/libraries/lyra/default.nix
+++ b/nixpkgs/pkgs/development/libraries/lyra/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lyra";
-  version = "1.4";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "bfgroup";
     repo = "lyra";
     rev = version;
-    sha256 = "08g6kqaj079aq7i6c1pwj778lrr3yk188wn1byxdd6zqpwrsv71q";
+    sha256 = "0xil6b055csnrvxxmby5x9njf166bri472jxwzshc49cz7svhhpk";
   };
 
   nativeBuildInputs = [ meson ninja ];
diff --git a/nixpkgs/pkgs/development/libraries/mailcore2/default.nix b/nixpkgs/pkgs/development/libraries/mailcore2/default.nix
index 75e3439db813..d5f20f6761c2 100644
--- a/nixpkgs/pkgs/development/libraries/mailcore2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mailcore2/default.nix
@@ -5,13 +5,13 @@
 stdenv.mkDerivation rec {
   pname = "mailcore2";
 
-  version = "0.6.3";
+  version = "0.6.4";
 
   src = fetchFromGitHub {
     owner  = "MailCore";
     repo   = "mailcore2";
     rev    = version;
-    sha256 = "0yxynvfmifpw9hdhv499a813hb2ynan74r353lhcdajkkm7w8br5";
+    sha256 = "0a69q11z194fdfwyazjyyylx57sqs9j4lz7jwh5qcws8syqgb23z";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/development/libraries/malcontent/better-separation.patch b/nixpkgs/pkgs/development/libraries/malcontent/better-separation.patch
index cd91760bff59..ef42650e249d 100644
--- a/nixpkgs/pkgs/development/libraries/malcontent/better-separation.patch
+++ b/nixpkgs/pkgs/development/libraries/malcontent/better-separation.patch
@@ -1,18 +1,42 @@
+commit 363c5be465dd6dde35c3d31abd7b5cca9b1f3a9f
+Author: Jan Tojnar <jtojnar@gmail.com>
+Date:   Thu Jul 23 18:49:03 2020 +0200
+
+    Improve separation between malcontent and malcontent-ui packages
+    
+    These artefacts go into both packages by default:
+    
+    * malcontent-control – a CLI tool
+    * PAM module
+    * gettext locale data
+    * help pages ✨
+    * AccountService/D-Bus interfaces
+    * Polkit com.endlessm.ParentalControls rules and policy
+    
+    Items marked with ✨ will go to ui package, while the rest is installed with the base library.
+    
+    See also the packaging done by upstream in Endless:
+    https://github.com/endlessm/malcontent/tree/5482b7eb99aee9b8c344629bc078e193d3c26ffc/debian
+    
+    Cannot upstream this since they are worried about maintainability:
+    https://gitlab.freedesktop.org/pwithnall/malcontent/merge_requests/38#note_437946
+
 diff --git a/meson.build b/meson.build
-index a6c477d..f7b2f0a 100644
+index 6e1dfa5..196350b 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -125,8 +125,8 @@ test_env = [
+@@ -123,9 +123,8 @@ test_env = [
    'LC_ALL=C.UTF-8',
  ]
  
 -subdir('accounts-service')
+-subdir('help')
  if not get_option('use_system_libmalcontent')
 +  subdir('accounts-service')
    subdir('libmalcontent')
  else
    libmalcontent_api_version = '0'
-@@ -137,11 +137,17 @@ endif
+@@ -136,11 +135,16 @@ endif
  if get_option('ui').enabled()
    subdir('libmalcontent-ui')
  endif
@@ -22,14 +46,13 @@ index a6c477d..f7b2f0a 100644
 +endif
  if get_option('ui').enabled()
    subdir('malcontent-control')
- endif
--subdir('pam')
++  subdir('help')
++endif
 +if not get_option('use_system_libmalcontent')
 +  subdir('pam')
-+endif
- subdir('po')
++  subdir('po')
+ endif
+-subdir('pam')
+-subdir('po')
  
--meson.add_install_script('build-aux/meson_post_install.py')
-+if get_option('ui').enabled()
-+  meson.add_install_script('build-aux/meson_post_install.py')
-+endif
+ meson.add_install_script('build-aux/meson_post_install.py')
diff --git a/nixpkgs/pkgs/development/libraries/malcontent/default.nix b/nixpkgs/pkgs/development/libraries/malcontent/default.nix
index f574ab196930..97cc4f7ff2a6 100644
--- a/nixpkgs/pkgs/development/libraries/malcontent/default.nix
+++ b/nixpkgs/pkgs/development/libraries/malcontent/default.nix
@@ -3,7 +3,7 @@
 , fetchpatch
 , meson
 , ninja
-, pkgconfig
+, pkg-config
 , gobject-introspection
 , wrapGAppsHook
 , glib
@@ -19,16 +19,16 @@
 
 stdenv.mkDerivation rec {
   pname = "malcontent";
-  version = "0.7.0";
+  version = "0.9.0";
 
-  outputs = [ "bin" "out" "dev" "man" "installedTests" ];
+  outputs = [ "bin" "out" "lib" "pam" "dev" "man" "installedTests" ];
 
   src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "pwithnall";
     repo = pname;
     rev = version;
-    sha256 = "0lxakzj75pvpgwbjfyfkg0gyzvry00zhc9h9cd8f0wksg7mabzbh";
+    sha256 = "DEtibrGgHSgRjaarAzizzLN1xsJKXl+LCQ29FmpPoJo=";
   };
 
   patches = [
@@ -37,19 +37,12 @@ stdenv.mkDerivation rec {
 
     # Do not build things that are part of malcontent-ui package
     ./better-separation.patch
-
-    # Fix pam installed test
-    # https://gitlab.freedesktop.org/pwithnall/malcontent/merge_requests/50
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/pwithnall/malcontent/commit/5d102eeb0604e65fc977ca77d4b249e986e634cc.patch";
-      sha256 = "1vs35zfp2sa2rps5h1240h73kvlspmv7mfr6f8mcbzvhj1wgzw74";
-    })
   ];
 
   nativeBuildInputs = [
     meson
     ninja
-    pkgconfig
+    pkg-config
     gobject-introspection
     wrapGAppsHook
   ];
@@ -72,6 +65,7 @@ stdenv.mkDerivation rec {
   mesonFlags = [
     "-Dinstalled_tests=true"
     "-Dinstalled_test_prefix=${placeholder "installedTests"}"
+    "-Dpamlibdir=${placeholder "pam"}/lib/security"
     "-Dui=disabled"
   ];
 
@@ -83,6 +77,13 @@ stdenv.mkDerivation rec {
       --replace "/bin/false" "${coreutils}/bin/false"
   '';
 
+  postInstall = ''
+    # `giDiscoverSelf` only picks up paths in `out` output.
+    # This needs to be in `postInstall` so that it runs before
+    # `gappsWrapperArgsHook` that runs as one of `preFixupPhases`.
+    addToSearchPath GI_TYPELIB_PATH "$lib/lib/girepository-1.0"
+  '';
+
   passthru = {
     tests = {
       installedTests = nixosTests.installed-tests.malcontent;
@@ -90,6 +91,10 @@ stdenv.mkDerivation rec {
   };
 
   meta = with stdenv.lib; {
+    # We need to install Polkit & AccountsService data files in `out`
+    # but `buildEnv` only uses `bin` when both `bin` and `out` are present.
+    outputsToInstall = [ "bin" "out" "man" ];
+
     description = "Parental controls library";
     homepage = "https://gitlab.freedesktop.org/pwithnall/malcontent";
     license = licenses.lgpl21Plus;
diff --git a/nixpkgs/pkgs/development/libraries/malcontent/ui.nix b/nixpkgs/pkgs/development/libraries/malcontent/ui.nix
index af1fa6b41387..54382cfc0d57 100644
--- a/nixpkgs/pkgs/development/libraries/malcontent/ui.nix
+++ b/nixpkgs/pkgs/development/libraries/malcontent/ui.nix
@@ -3,6 +3,7 @@
 , ninja
 , pkg-config
 , gobject-introspection
+, itstool
 , wrapGAppsHook
 , glib
 , accountsservice
@@ -10,6 +11,7 @@
 , flatpak
 , malcontent
 , gtk3
+, appstream-glib
 , desktop-file-utils
 , polkit
 , glib-testing
@@ -20,7 +22,7 @@ stdenv.mkDerivation rec {
 
   inherit (malcontent) version src;
 
-  outputs = [ "bin" "out" "dev" ];
+  outputs = [ "out" "lib" "dev" ];
 
   patches = [
     # Allow installing installed tests to a separate output.
@@ -35,11 +37,13 @@ stdenv.mkDerivation rec {
     ninja
     pkg-config
     gobject-introspection
+    itstool
     desktop-file-utils
     wrapGAppsHook
   ];
 
   buildInputs = [
+    appstream-glib
     dbus
     polkit
     glib-testing
diff --git a/nixpkgs/pkgs/development/libraries/marisa/default.nix b/nixpkgs/pkgs/development/libraries/marisa/default.nix
index 9a4d178d3d27..99d82970fe06 100644
--- a/nixpkgs/pkgs/development/libraries/marisa/default.nix
+++ b/nixpkgs/pkgs/development/libraries/marisa/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "marisa";
-  version = "0.2.5";
+  version = "0.2.6";
 
   src = fetchFromGitHub {
     owner = "s-yata";
     repo = "marisa-trie";
     rev = "v${version}";
-    sha256 = "0z4bf55np08q3cbi6gvj3cpw3zp8kf2d0jq6k74pjk066m7rapbb";
+    sha256 = "1hy8hfksizk1af6kg8z3b9waiz6d5ggd73fiqcvmhfgra36dscyq";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/libraries/medfile/default.nix b/nixpkgs/pkgs/development/libraries/medfile/default.nix
index 7a5688a1b71f..246bdb1480c0 100644
--- a/nixpkgs/pkgs/development/libraries/medfile/default.nix
+++ b/nixpkgs/pkgs/development/libraries/medfile/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "medfile";
-  version = "4.0.0";
+  version = "4.1.0";
 
   src = fetchurl {
     url = "http://files.salome-platform.org/Salome/other/med-${version}.tar.gz";
-    sha256 = "017h9p0x533fm4gn6pwc8kmp72rvqmcn6vznx72nkkl2b05yjx54";
+    sha256 = "1khzclkrd1yn9mz3g14ndgpsbj8j50v8dsjarcj6kkn9zgbbazc4";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/libraries/mesa/default.nix b/nixpkgs/pkgs/development/libraries/mesa/default.nix
index 03977c74f11d..cf452fded14e 100644
--- a/nixpkgs/pkgs/development/libraries/mesa/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mesa/default.nix
@@ -31,7 +31,7 @@ with stdenv.lib;
 let
   # Release calendar: https://www.mesa3d.org/release-calendar.html
   # Release frequency: https://www.mesa3d.org/releasing.html#schedule
-  version = "20.0.7"; # Update only to the final (last planned) release (i.e. X.Y.MAX)?
+  version = "20.1.7";
   branch  = versions.major version;
 in
 
@@ -46,7 +46,7 @@ stdenv.mkDerivation {
       "ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz"
       "ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
     ];
-    sha256 = "0y517qpdg6v6dsdgzb365p03m30511sbyh8pq0mcvhvjwy7javpy";
+    sha256 = "1252mgwiy05nz8mm4gjkzmnjfvdz5yv1shnsr837cdnan86dvsad";
   };
 
   prePatch = "patchShebangs .";
@@ -58,7 +58,22 @@ stdenv.mkDerivation {
     ./missing-includes.patch # dev_t needs sys/stat.h, time_t needs time.h, etc.-- fixes build w/musl
     ./opencl-install-dir.patch
     ./disk_cache-include-dri-driver-path-in-cache-key.patch
-  ] # do not prefix user provided dri-drivers-path
+    ./link-radv-with-ld_args_build_id.patch
+  ]
+    ++ lib.optionals stdenv.hostPlatform.isMusl [
+      # Fix `-Werror=int-conversion` pthread warnings on musl.
+      # TODO: Remove when https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6121 is merged and available
+      (fetchpatch {
+        name = "nine_debug-Make-tid-more-type-correct";
+        # Patch adjusted for version `20.1`, before the big mesa dirs change
+        # `gallium: rename 'state tracker' to 'frontend'`.
+        # Patch for versions after that change is at
+        #     https://gitlab.freedesktop.org/mesa/mesa/commit/aebbf819df6d1e3b4745ef16d0e833300ad67044.patch
+        url = "https://gitlab.freedesktop.org/nh2/mesa/commit/3385c49684375f1153a52ed7ccda3f5135268a41.patch";
+        sha256 = "1ci694sqjll44c9g2md4krhk6qlvq51r7ad5rnnfdnf3l8ys0i50";
+      })
+    ]
+    # do not prefix user provided dri-drivers-path
     ++ lib.optional (lib.versionOlder version "19.0.0") (fetchpatch {
       url = "https://gitlab.freedesktop.org/mesa/mesa/commit/f6556ec7d126b31da37c08d7cb657250505e01a0.patch";
       sha256 = "0z6phi8hbrbb32kkp1js7ggzviq7faz1ria36wi4jbc4in2392d9";
@@ -81,6 +96,12 @@ stdenv.mkDerivation {
     substituteInPlace meson.build --replace \
       "find_program('pkg-config')" \
       "find_program('${buildPackages.pkg-config.targetPrefix}pkg-config')"
+
+    # The drirc.d directory cannot be installed to $drivers as that would cause a cyclic dependency:
+    substituteInPlace src/util/xmlconfig.c --replace \
+      'DATADIR "/drirc.d"' '"${placeholder "out"}/drirc.d"'
+    substituteInPlace src/util/meson.build --replace \
+      "get_option('datadir')" "'${placeholder "out"}'"
   '';
 
   outputs = [ "out" "dev" "drivers" ] ++ lib.optional enableOSMesa "osmesa";
@@ -88,6 +109,7 @@ stdenv.mkDerivation {
   # TODO: Figure out how to enable opencl without having a runtime dependency on clang
   mesonFlags = [
     "--sysconfdir=/etc"
+    "--datadir=${placeholder "drivers"}/share" # Vendor files
 
     # Don't build in debug mode
     # https://gitlab.freedesktop.org/mesa/mesa/blob/master/docs/meson.html#L327
@@ -158,9 +180,6 @@ stdenv.mkDerivation {
       mv $out/lib/lib*_mesa* $drivers/lib
     fi
 
-    # move vendor files
-    mv $out/share/ $drivers/
-
     # Update search path used by glvnd
     for js in $drivers/share/glvnd/egl_vendor.d/*.json; do
       substituteInPlace "$js" --replace '"libEGL_' '"'"$drivers/lib/libEGL_"
diff --git a/nixpkgs/pkgs/development/libraries/mesa/link-radv-with-ld_args_build_id.patch b/nixpkgs/pkgs/development/libraries/mesa/link-radv-with-ld_args_build_id.patch
new file mode 100644
index 000000000000..0a660332392d
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/mesa/link-radv-with-ld_args_build_id.patch
@@ -0,0 +1,25 @@
+From b49bcb6eece322b70fc2e8b0c8498f5a38ea7b82 Mon Sep 17 00:00:00 2001
+From: David McFarland <corngood@gmail.com>
+Date: Sun, 26 Jul 2020 17:29:49 -0300
+Subject: [PATCH] link radv with ld_args_build_id
+
+This is needed for radv_device_get_cache_uuid to work correctly.
+---
+ src/amd/vulkan/meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/amd/vulkan/meson.build b/src/amd/vulkan/meson.build
+index eec026e8f60..a07a0821938 100644
+--- a/src/amd/vulkan/meson.build
++++ b/src/amd/vulkan/meson.build
+@@ -183,7 +183,7 @@ libvulkan_radeon = shared_library(
+   ],
+   c_args : [c_vis_args, no_override_init_args, radv_flags],
+   cpp_args : [cpp_vis_args, radv_flags],
+-  link_args : [ld_args_bsymbolic, ld_args_gc_sections, libvulkan_radeon_ld_args],
++  link_args : [ld_args_build_id, ld_args_bsymbolic, ld_args_gc_sections, libvulkan_radeon_ld_args],
+   link_depends : [libvulkan_radeon_link_depends,],
+   install : true,
+ )
+--
+2.28.0
diff --git a/nixpkgs/pkgs/development/libraries/mimalloc/default.nix b/nixpkgs/pkgs/development/libraries/mimalloc/default.nix
index bf6c5b1baf34..997fd2ab6346 100644
--- a/nixpkgs/pkgs/development/libraries/mimalloc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mimalloc/default.nix
@@ -7,13 +7,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname   = "mimalloc";
-  version = "1.6.3";
+  version = "1.6.4";
 
   src = fetchFromGitHub {
     owner  = "microsoft";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "0hk30adrm0s1g5flfaqfr3lc72y3hlmhqnyrqd7p0y91rsaw86b9";
+    sha256 = "0b6ymi2a9is2q6n49dvlnjxknikj0rfff5ygbc4n7894h5mllvvr";
   };
 
   nativeBuildInputs = [ cmake ninja ];
diff --git a/nixpkgs/pkgs/development/libraries/mimetic/default.nix b/nixpkgs/pkgs/development/libraries/mimetic/default.nix
index 06b6653f4e76..0147a2973053 100644
--- a/nixpkgs/pkgs/development/libraries/mimetic/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mimetic/default.nix
@@ -11,6 +11,8 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ cutee ];
 
+  patches = stdenv.lib.optional stdenv.isAarch64 ./narrowing.patch;
+
   meta = with stdenv.lib; {
     description = "MIME handling library";
     homepage    = "http://www.codesink.org/mimetic_mime_library.html";
diff --git a/nixpkgs/pkgs/development/libraries/mimetic/narrowing.patch b/nixpkgs/pkgs/development/libraries/mimetic/narrowing.patch
new file mode 100644
index 000000000000..676e29376c7d
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/mimetic/narrowing.patch
@@ -0,0 +1,32 @@
+diff -ru a/mimetic/codec/base64.cxx b/mimetic/codec/base64.cxx
+--- a/mimetic/codec/base64.cxx	2014-06-17 10:12:00.000000000 +0200
++++ b/mimetic/codec/base64.cxx	2020-07-30 20:54:10.212742011 +0200
+@@ -14,19 +14,19 @@
+     "0123456789+/=";
+ 
+ const char Base64::sDecTable[] = {
+-        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
+-        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
+-        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
+-        -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,
+-        -1,-1,-1,62,-1,-1,-1,63,52,53,
+-        54,55,56,57,58,59,60,61,-1,-1,
+-        -1, eq_sign, -1,-1,-1, 0, 1, 2, 3, 4, 
++        255,255,255,255,255,255,255,255,255,255,
++        255,255,255,255,255,255,255,255,255,255,
++        255,255,255,255,255,255,255,255,255,255,
++        255,255,255,255,255,255,255,255,255,255,
++        255,255,255,62,255,255,255,63,52,53,
++        54,55,56,57,58,59,60,61,255,255,
++        255, eq_sign, 255,255,255, 0, 1, 2, 3, 4, 
+          5, 6, 7, 8, 9,10,11,12,13,14,
+         15,16,17,18,19,20,21,22,23,24,
+-        25,-1,-1,-1,-1,-1,-1,26,27,28,
++        25,255,255,255,255,255,255,26,27,28,
+         29,30,31,32,33,34,35,36,37,38,
+         39,40,41,42,43,44,45,46,47,48,
+-        49,50,51,-1
++        49,50,51,255
+ };
+ 
+ const int Base64::sDecTableSz = sizeof(Base64::sDecTable) / sizeof(char);
diff --git a/nixpkgs/pkgs/development/libraries/mlt/default.nix b/nixpkgs/pkgs/development/libraries/mlt/default.nix
index 5b54e0894e18..8c73343f208b 100644
--- a/nixpkgs/pkgs/development/libraries/mlt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mlt/default.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchFromGitHub, makeWrapper
 , SDL, ffmpeg, frei0r, libjack2, libdv, libsamplerate
 , libvorbis, libxml2, movit, pkgconfig, sox
-, gtk2
+, gtk2, genericUpdater, common-updater-scripts
 }:
 
 stdenv.mkDerivation rec {
   pname = "mlt";
-  version = "6.20.0";
+  version = "6.22.1";
 
   src = fetchFromGitHub {
     owner = "mltframework";
     repo = "mlt";
     rev = "v${version}";
-    sha256 = "14kayzas2wisyw0z27qkcm4qnxbdb7bqa0hg7gaj5kbm3nvsnafk";
+    sha256 = "0jxv848ykw0csbnayrd710ylw46m0picfv7rpzsxz1vh4jzs395k";
   };
 
   buildInputs = [
@@ -38,6 +38,12 @@ stdenv.mkDerivation rec {
     sed -i $out/lib/mlt/libmltopengl.so -e "s|$s|$t|g"
   '';
 
+  passthru.updateScript = genericUpdater {
+    inherit pname version;
+    versionLister = "${common-updater-scripts}/bin/list-git-tags ${src.meta.homepage}";
+    rev-prefix = "v";
+  };
+
   meta = with stdenv.lib; {
     description = "Open source multimedia framework, designed for television broadcasting";
     homepage = "https://www.mltframework.org";
diff --git a/nixpkgs/pkgs/development/libraries/mlt/qt-5.nix b/nixpkgs/pkgs/development/libraries/mlt/qt-5.nix
index f0b45753df01..3dcbda68135f 100644
--- a/nixpkgs/pkgs/development/libraries/mlt/qt-5.nix
+++ b/nixpkgs/pkgs/development/libraries/mlt/qt-5.nix
@@ -1,19 +1,19 @@
 { stdenv, fetchFromGitHub, SDL, ffmpeg, frei0r, libjack2, libdv, libsamplerate
 , libvorbis, libxml2, makeWrapper, movit, pkgconfig, sox, qtbase, qtsvg
-, fftw, vid-stab, opencv3, ladspa-sdk
+, fftw, vid-stab, opencv3, ladspa-sdk, genericUpdater, common-updater-scripts
 }:
 
 let inherit (stdenv.lib) getDev; in
 
 stdenv.mkDerivation rec {
   pname = "mlt";
-  version = "6.20.0";
+  version = "6.22.1";
 
   src = fetchFromGitHub {
     owner = "mltframework";
     repo = "mlt";
     rev = "v${version}";
-    sha256 = "14kayzas2wisyw0z27qkcm4qnxbdb7bqa0hg7gaj5kbm3nvsnafk";
+    sha256 = "0jxv848ykw0csbnayrd710ylw46m0picfv7rpzsxz1vh4jzs395k";
   };
 
   buildInputs = [
@@ -57,11 +57,18 @@ stdenv.mkDerivation rec {
     inherit ffmpeg;
   };
 
+  passthru.updateScript = genericUpdater {
+    inherit pname version;
+    versionLister = "${common-updater-scripts}/bin/list-git-tags ${src.meta.homepage}";
+    rev-prefix = "v";
+  };
+
   meta = with stdenv.lib; {
     description = "Open source multimedia framework, designed for television broadcasting";
     homepage = "https://www.mltframework.org/";
     license = licenses.gpl3;
     maintainers = [ maintainers.goibhniu ];
     platforms = platforms.linux;
+    broken = versionAtLeast qtbase.version "5.15";
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/mp4v2/default.nix b/nixpkgs/pkgs/development/libraries/mp4v2/default.nix
index 8fe1477aa63d..9601ae1eea30 100644
--- a/nixpkgs/pkgs/development/libraries/mp4v2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mp4v2/default.nix
@@ -1,39 +1,39 @@
-{ stdenv, lib, fetchurl }:
+{ stdenv, lib, fetchFromGitHub, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "mp4v2-2.0.0";
-
-  src = fetchurl {
-    url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/mp4v2/${name}.tar.bz2";
-    sha256 = "0f438bimimsvxjbdp4vsr8hjw2nwggmhaxgcw07g2z361fkbj683";
+  pname = "mp4v2";
+  version = "4.1.3";
+
+  src = fetchFromGitHub {
+    # 2020-06-20: THE current upstream, maintained and used in distros fork.
+    owner = "TechSmith";
+    repo = "mp4v2";
+    rev = "Release-ThirdParty-MP4v2-${version}";
+    sha256 = "053a0lgy819sbz92cfkq0vmkn2ky39bva554pj4ypky1j6vs04fv";
   };
 
   patches = [
     (fetchurl {
-      name = "gcc-7.patch";
-      url = "https://src.fedoraproject.org/cgit/rpms/libmp4v2.git/plain/"
-          + "0004-Fix-GCC7-build.patch?id=d7aeedabb";
+      # 2020-06-19: NOTE: # Fix build with C++11
+      # Close when https://github.com/TechSmith/mp4v2/pull/36 merged/closed.
+      url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/libmp4v2-c++11.patch?id=203f5a72bc97ffe089b424c47b07dd9eaea35713";
       sha256 = "0sbn0il7lmk77yrjyb4f0a3z3h8gsmdkscvz5n9hmrrrhrwf672w";
     })
   ];
 
-  buildFlags = [ "CXXFLAGS=-std=c++03" ];
-
   # `faac' expects `mp4.h'.
   postInstall = "ln -s mp4v2/mp4v2.h $out/include/mp4.h";
 
-  hardeningDisable = [ "format" ];
-
   enableParallelBuilding = true;
 
   meta = {
-    description = "Abandoned library. Provides functions to read, create, and modify mp4 files";
+    description = "Provides functions to read, create, and modify mp4 files";
     longDescription = ''
       MP4v2 library provides an API to work with mp4 files
       as defined by ISO-IEC:14496-1:2001 MPEG-4 Systems.
       This container format is derived from Apple's QuickTime format.
     '';
-    homepage = "https://code.google.com/archive/p/mp4v2/";
+    homepage = "https://github.com/TechSmith/mp4v2";
     maintainers = [ lib.maintainers.Anton-Latukha ];
     platforms = lib.platforms.unix;
     license = lib.licenses.mpl11;
diff --git a/nixpkgs/pkgs/development/libraries/mpfr/default.nix b/nixpkgs/pkgs/development/libraries/mpfr/default.nix
index 9fc717ef38af..4a744b7483ea 100644
--- a/nixpkgs/pkgs/development/libraries/mpfr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mpfr/default.nix
@@ -6,7 +6,7 @@
 # files.
 
 stdenv.mkDerivation rec {
-  version = "4.0.2";
+  version = "4.1.0";
   pname = "mpfr";
 
   src = fetchurl {
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
       #"https://www.mpfr.org/${name}/${name}.tar.xz"
       "mirror://gnu/mpfr/${pname}-${version}.tar.xz"
     ];
-    sha256 = "12m3amcavhpqygc499s3fzqlb8f2j2rr7fkqsm10xbjfc04fffqx";
+    sha256 = "0zwaanakrqjf84lfr5hfsdr7hncwv9wj0mchlr7cmxigfgqs760c";
   };
 
   outputs = [ "out" "dev" "doc" "info" ];
diff --git a/nixpkgs/pkgs/development/libraries/mtxclient/default.nix b/nixpkgs/pkgs/development/libraries/mtxclient/default.nix
index 22b664423055..842d144005d7 100644
--- a/nixpkgs/pkgs/development/libraries/mtxclient/default.nix
+++ b/nixpkgs/pkgs/development/libraries/mtxclient/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mtxclient";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "Nheko-Reborn";
     repo = "mtxclient";
     rev = "v${version}";
-    sha256 = "0vf5xmn6yfi5lvskfgrdmnalvclzrapcrml92bj9qaa8vq8mfsf2";
+    sha256 = "1dg4dq20g0ah62j5s3gpsxqq4ny7lxkxdxa9q6g54hdwkrb9ms7x";
   };
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/muparserx/default.nix b/nixpkgs/pkgs/development/libraries/muparserx/default.nix
new file mode 100644
index 000000000000..2c5bde316b4a
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/muparserx/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "muparserx";
+  version = "4.0.8";
+
+  src = fetchFromGitHub {
+    owner = "beltoforion";
+    repo = "muparserx";
+    rev = "v${version}";
+    sha256 = "097pkdffv0phr0345hy06mjm5pfy259z13plsvbxvcmds80wl48v";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=Release"
+  ];
+
+  doCheck = true;
+  checkPhase = ''
+    echo "***Muparserx self-test***"
+    echo "quit" | ./example > test_result.log
+    cat test_result.log
+    if grep -Fqi "failed" test_result.log; then
+      echo ">=1 muparserx tests failed"
+      exit 1
+    else
+      echo -e "\nmuparserx tests succeeded"
+    fi
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A C++ Library for Parsing Expressions with Strings, Complex Numbers, Vectors, Matrices and more.";
+    homepage = "https://beltoforion.de/en/muparserx/";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ drewrisinger ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/nanomsg/default.nix b/nixpkgs/pkgs/development/libraries/nanomsg/default.nix
index 7e96d60840d1..5772581d5ec1 100644
--- a/nixpkgs/pkgs/development/libraries/nanomsg/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nanomsg/default.nix
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "01ddfzjlkf2dgijrmm3j3j8irccsnbgfvjcnwslsfaxnrmrq5s64";
   };
 
-  buildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   meta = with stdenv.lib; {
     description= "Socket library that provides several common communication patterns";
diff --git a/nixpkgs/pkgs/development/libraries/nanopb/default.nix b/nixpkgs/pkgs/development/libraries/nanopb/default.nix
index a63d367b800d..cafc5c85f21a 100644
--- a/nixpkgs/pkgs/development/libraries/nanopb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nanopb/default.nix
@@ -50,6 +50,8 @@ in stdenv.mkDerivation rec {
       --subst-var-by python ${pythonRuntime}/bin/python \
       --subst-var-by out $out
     chmod +x $out/bin/protoc-gen-nanopb
+
+    cp ../pb_common.c ../pb_decode.c ../pb_encode.c $out/include/
   '';
 
   passthru.tests = {
diff --git a/nixpkgs/pkgs/development/libraries/ndi/default.nix b/nixpkgs/pkgs/development/libraries/ndi/default.nix
index ec39bbd65937..c0e1816c0e12 100644
--- a/nixpkgs/pkgs/development/libraries/ndi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ndi/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "ndi";
-  fullVersion = "4.5.1";
+  fullVersion = "4.5.3";
   version = builtins.head (builtins.splitVersion fullVersion);
 
   src = requireFile rec {
     name    = "InstallNDISDK_v${version}_Linux.tar.gz";
-    sha256  = "04l57cfc88cdqa9015h5g1csr7xfjxp75x8qz8bsqk1dizp9ir6r";
+    sha256  = "0w9f4a4a3xzg0nvmvrlda1wwkyi0m5aqvk07immmwgg7f1z1sqj5";
     message = ''
       In order to use NDI SDK version ${fullVersion}, you need to comply with
       NewTek's license and download the appropriate Linux tarball from:
diff --git a/nixpkgs/pkgs/development/libraries/neatvnc/default.nix b/nixpkgs/pkgs/development/libraries/neatvnc/default.nix
index 127f25a50bea..dfc1a1571587 100644
--- a/nixpkgs/pkgs/development/libraries/neatvnc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/neatvnc/default.nix
@@ -1,24 +1,25 @@
 { stdenv, fetchFromGitHub, meson, pkg-config, ninja
-, pixman, libuv, gnutls, libdrm
-# libjpeg_turbo: Optional, for tight encoding (disabled because experimental)
-, enableCpuAcceleration ? false # Whether to use CPU extensions (e.g. AVX)
+, pixman, gnutls, libdrm, libjpeg_turbo, zlib, aml
 }:
 
 stdenv.mkDerivation rec {
   pname = "neatvnc";
-  version = "0.1.0";
+  version = "0.3.1";
 
   src = fetchFromGitHub {
     owner = "any1";
     repo = pname;
     rev = "v${version}";
-    sha256 = "04wcpwxlcf0bczcs97j21346mn6finfj7xgc2dsrwrw9xq8qa7wc";
+    sha256 = "1209dzlmqf5p1cqzf6kss5inwgj644ynrh9qgpjf1kskqwfxn1c4";
   };
 
-  nativeBuildInputs = [ meson pkg-config ninja ];
-  buildInputs = [ pixman libuv gnutls libdrm ];
+  postPatch = ''
+    substituteInPlace meson.build --replace \
+      "version: '0.2.0'" "version: '${version}'"
+  '';
 
-  patches = stdenv.lib.optional (!enableCpuAcceleration) ./disable-cpu-acceleration.patch;
+  nativeBuildInputs = [ meson pkg-config ninja ];
+  buildInputs = [ pixman gnutls libdrm libjpeg_turbo zlib aml ];
 
   meta = with stdenv.lib; {
     description = "A VNC server library";
@@ -30,6 +31,7 @@ stdenv.mkDerivation rec {
       - Interoperability with the Freedesktop.org ecosystem
     '';
     inherit (src.meta) homepage;
+    changelog = "https://github.com/any1/neatvnc/releases/tag/v${version}";
     license = licenses.isc;
     platforms = platforms.linux;
     maintainers = with maintainers; [ primeos ];
diff --git a/nixpkgs/pkgs/development/libraries/neatvnc/disable-cpu-acceleration.patch b/nixpkgs/pkgs/development/libraries/neatvnc/disable-cpu-acceleration.patch
deleted file mode 100644
index 97b77c02df48..000000000000
--- a/nixpkgs/pkgs/development/libraries/neatvnc/disable-cpu-acceleration.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/meson.build b/meson.build
-index 31dd8b8..8761087 100644
---- a/meson.build
-+++ b/meson.build
-@@ -21,12 +21,6 @@ endif
- 
- cpu = host_machine.cpu_family()
- 
--if cpu == 'x86_64'
--	c_args += '-mavx'
--elif cpu == 'arm'
--	c_args += '-mfpu=neon'
--endif
--
- add_project_arguments(c_args, language: 'c')
- 
- cc = meson.get_compiler('c')
diff --git a/nixpkgs/pkgs/development/libraries/netcdf/default.nix b/nixpkgs/pkgs/development/libraries/netcdf/default.nix
index 2e16f58d9fb5..fecc4100f5e6 100644
--- a/nixpkgs/pkgs/development/libraries/netcdf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/netcdf/default.nix
@@ -3,6 +3,7 @@
 , hdf5
 , m4
 , curl # for DAP
+, removeReferencesTo
 }:
 
 let
@@ -26,7 +27,7 @@ in stdenv.mkDerivation rec {
     done
   '';
 
-  nativeBuildInputs = [ m4 ];
+  nativeBuildInputs = [ m4 removeReferencesTo ];
   buildInputs = [ hdf5 curl mpi ];
 
   passthru = {
@@ -42,6 +43,12 @@ in stdenv.mkDerivation rec {
   ]
   ++ (stdenv.lib.optionals mpiSupport [ "--enable-parallel-tests" "CC=${mpi}/bin/mpicc" ]);
 
+  disallowedReferences = [ stdenv.cc ];
+
+  postFixup = ''
+    remove-references-to -t ${stdenv.cc} "$(readlink -f $out/lib/libnetcdf.settings)"
+  '';
+
   doCheck = !mpiSupport;
 
   meta = {
diff --git a/nixpkgs/pkgs/development/libraries/nghttp2/default.nix b/nixpkgs/pkgs/development/libraries/nghttp2/default.nix
index 3294674e178e..c9ccf63f8895 100644
--- a/nixpkgs/pkgs/development/libraries/nghttp2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nghttp2/default.nix
@@ -27,11 +27,11 @@ let inherit (stdenv.lib) optional optionals optionalString; in
 
 stdenv.mkDerivation rec {
   pname = "nghttp2";
-  version = "1.40.0";
+  version = "1.41.0";
 
   src = fetchurl {
     url = "https://github.com/${pname}/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2";
-    sha256 = "0kyrgd4s2pq51ps5z385kw1hn62m8qp7c4h6im0g4ibrf89qwxc2";
+    sha256 = "0h12wz72paxnj8l9vv2qfgfbmj20c6pz6xbilb7ns9zcwxwa0p34";
   };
 
   outputs = [ "bin" "out" "dev" "lib" ]
diff --git a/nixpkgs/pkgs/development/libraries/notify-sharp/default.nix b/nixpkgs/pkgs/development/libraries/notify-sharp/default.nix
index 403b0326bb5a..58d35767d1e0 100644
--- a/nixpkgs/pkgs/development/libraries/notify-sharp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/notify-sharp/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, fetchFromGitHub, pkgconfig, autoreconfHook
+{ stdenv, fetchFromGitLab, pkgconfig, autoreconfHook
 , mono, gtk-sharp-3_0, dbus-sharp-1_0, dbus-sharp-glib-1_0 }:
 
 stdenv.mkDerivation rec {
   pname = "notify-sharp";
   version = "3.0.3";
 
-  src = fetchFromGitHub {
-    owner = "GNOME";
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "Archive";
     repo = "notify-sharp";
 
     rev = version;
diff --git a/nixpkgs/pkgs/development/libraries/ntirpc/default.nix b/nixpkgs/pkgs/development/libraries/ntirpc/default.nix
new file mode 100644
index 000000000000..40f8d55462da
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/ntirpc/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, cmake
+, krb5, liburcu , libtirpc
+} :
+
+stdenv.mkDerivation rec {
+  pname = "ntirpc";
+  version = "3.3";
+
+  src = fetchFromGitHub {
+    owner = "nfs-ganesha";
+    repo = "ntirpc";
+    rev = "v${version}";
+    sha256 = "08vc2z9sl1p9mk1mx0zn4xv7dw12gamhciy41fbavm90iavf3vqm";
+  };
+
+  postPatch = ''
+    substituteInPlace ntirpc/netconfig.h --replace "/etc/netconfig" "$out/etc/netconfig"
+  '';
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ krb5 liburcu ];
+
+  postInstall = ''
+    mkdir -p $out/etc
+
+    # Library needs a netconfig to run.
+    # Steal the file from libtirpc
+    cp ${libtirpc}/etc/netconfig $out/etc/
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Transport-independent RPC (TI-RPC)";
+    homepage = "https://github.com/nfs-ganesha/ntirpc";
+    maintainers = [ maintainers.markuskowa ];
+    platforms = platforms.linux;
+    license = licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/nuspell/default.nix b/nixpkgs/pkgs/development/libraries/nuspell/default.nix
index 57c47c79f843..7de16c7c1199 100644
--- a/nixpkgs/pkgs/development/libraries/nuspell/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nuspell/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nuspell";
-  version = "3.1.1";
+  version = "3.1.2";
 
   src = fetchFromGitHub {
     owner = "nuspell";
     repo = "nuspell";
     rev = "v${version}";
-    sha256 = "18zz3rdzlb3knzsd98vw8cfyb3iq0ilipnlz7rz10zgb5ail73s2";
+    sha256 = "0wbb6dwmzlsyy224y0liis0azgzwbjdvcyzc31pw1aw6vbp36na6";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ronn ];
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     description = "Free and open source C++ spell checking library";
     homepage = "https://nuspell.github.io/";
     maintainers = with maintainers; [ fpletz ];
+    license = licenses.gpl3;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/nv-codec-headers/default.nix b/nixpkgs/pkgs/development/libraries/nv-codec-headers/default.nix
index f74030a02df8..8d3c2179bff9 100644
--- a/nixpkgs/pkgs/development/libraries/nv-codec-headers/default.nix
+++ b/nixpkgs/pkgs/development/libraries/nv-codec-headers/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "nv-codec-headers";
-  version = "9.0.18.1";
+  version = "9.1.23.1";
 
   src = fetchgit {
     url = "https://git.videolan.org/git/ffmpeg/nv-codec-headers.git";
     rev = "n${version}";
-    sha256 = "0354fivb92ix341jds7a7qn3mgwimrnxbganhlhr4vayj25c3hw5";
+    sha256 = "1xfvb3mhz6wfx9c732888xa82ivaig903lhvvrqqzs31qfznsplh";
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
diff --git a/nixpkgs/pkgs/development/libraries/olm/default.nix b/nixpkgs/pkgs/development/libraries/olm/default.nix
index d5c230862333..66ed41e8eadb 100644
--- a/nixpkgs/pkgs/development/libraries/olm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/olm/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "olm";
-  version = "3.1.4";
+  version = "3.1.5";
 
   src = fetchurl {
     url = "https://matrix.org/git/olm/-/archive/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0f7azjxc77n4ib9nj3cwyk3vhk8r2dsyf7id6nvqyxqxwxn95a8w";
+    sha256 = "15l6cf029ghfk5bf8ii6nyy86gc90ji8n5hspjhj1xmzmk61xb4j";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/oneDNN/default.nix b/nixpkgs/pkgs/development/libraries/oneDNN/default.nix
index 7d9adca074c6..1fb0f03d305d 100644
--- a/nixpkgs/pkgs/development/libraries/oneDNN/default.nix
+++ b/nixpkgs/pkgs/development/libraries/oneDNN/default.nix
@@ -5,24 +5,26 @@
 # https://github.com/oneapi-src/oneDNN#oneapi-deep-neural-network-library-onednn
 stdenv.mkDerivation rec {
   pname = "oneDNN";
-  version = "1.4";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "oneapi-src";
     repo = "oneDNN";
     rev = "v${version}";
-    sha256 = "162fb0c7klahz2irchhyxympi4fq4yp284apc53cadbss41mzld9";
+    sha256 = "1rdq2rb4f9xbk2a07fpqgvd9mx1r5gwpm0jr8rra815bzddam8zh";
   };
 
   outputs = [ "out" "dev" "doc" ];
 
   nativeBuildInputs = [ cmake ];
 
-  doCheck = true;
+  # Tests fail on some Hydra builders, because they do not support SSE4.2.
+  doCheck = false;
 
   # The test driver doesn't add an RPath to the build libdir
   preCheck = ''
-    export LD_LIBRARY_PATH=$PWD/src
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/src
+    export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}$PWD/src
   '';
 
   # The cmake install gets tripped up and installs a nix tree into $out, in
@@ -33,10 +35,10 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "oneAPI Deep Neural Network Library (oneDNN)";
-    homepage = "https://01.org/dnnl";
+    homepage = "https://01.org/oneDNN";
     changelog = "https://github.com/oneapi-src/oneDNN/releases/tag/v${version}";
     license = licenses.asl20;
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.all;
     maintainers = with maintainers; [ alexarice bhipple ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/onnxruntime/default.nix b/nixpkgs/pkgs/development/libraries/onnxruntime/default.nix
index 7d0a9342aa7b..06d0d194cd59 100644
--- a/nixpkgs/pkgs/development/libraries/onnxruntime/default.nix
+++ b/nixpkgs/pkgs/development/libraries/onnxruntime/default.nix
@@ -4,17 +4,22 @@
 
 stdenv.mkDerivation rec {
   pname = "onnxruntime";
-  version = "1.2.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "microsoft";
     repo = "onnxruntime";
     rev = "v${version}";
-    sha256 = "1alhb7nvlxrr9yf757gs4hkzksbk3mxyv5zcmmpl82ibl65vh55k";
+    sha256 = "0rbk1jbfc447x2wybz2hsba6w1ij0fq21996l52cqv39898lvy9d";
     # TODO: use nix-versions of grpc, onnx, eigen, googletest, etc.
     # submodules increase src size and compile times significantly
     # not currently feasible due to how integrated cmake build is with git
     fetchSubmodules = true;
+    # Remove unicode file names which leads to different checksums on HFS+
+    # vs. other filesystems because of unicode normalisation.
+    postFetch = ''
+      rm -rf $out/winml/test/collateral/models/UnicodePath/
+    '';
   };
 
   # TODO: build server, and move .so's to lib output
@@ -36,8 +41,7 @@ stdenv.mkDerivation rec {
   cmakeFlags = [
     "-Donnxruntime_USE_OPENMP=ON"
     "-Donnxruntime_BUILD_SHARED_LIB=ON"
-    # flip back to ON next release
-    "-Donnxruntime_ENABLE_LTO=OFF" # https://github.com/microsoft/onnxruntime/issues/2828
+    "-Donnxruntime_ENABLE_LTO=ON"
   ];
 
   # ContribOpTest.StringNormalizerTest sets locale to en_US.UTF-8"
diff --git a/nixpkgs/pkgs/development/libraries/opencascade-occt/7.3.nix b/nixpkgs/pkgs/development/libraries/opencascade-occt/7.3.nix
new file mode 100644
index 000000000000..83b1cfc2addf
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/opencascade-occt/7.3.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchurl, fetchpatch, cmake, ninja, tcl, tk,
+  libGL, libGLU, libXext, libXmu, libXi }:
+
+stdenv.mkDerivation rec {
+  pname = "opencascade-occt";
+  version = "7.3.0p3";
+  commit = "V${builtins.replaceStrings ["."] ["_"] version}";
+
+  src = fetchurl {
+    name = "occt-${commit}.tar.gz";
+    url = "https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=${commit};sf=tgz";
+    sha256 = "0k9c3ypcnjcilq1dhsf6xxbd52gyq4h5rchvp30k3c8ph4ris5pz";
+  };
+
+  nativeBuildInputs = [ cmake ninja ];
+  buildInputs = [ tcl tk libGL libGLU libXext libXmu libXi ];
+
+  meta = with stdenv.lib; {
+    description = "Open CASCADE Technology, libraries for 3D modeling and numerical simulation";
+    homepage = "https://www.opencascade.org/";
+    license = licenses.lgpl21;  # essentially...
+    # The special exception defined in the file OCCT_LGPL_EXCEPTION.txt
+    # are basically about making the license a little less share-alike.
+    maintainers = with maintainers; [ amiloradovsky ];
+    platforms = platforms.all;
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/libraries/opencascade-occt/default.nix b/nixpkgs/pkgs/development/libraries/opencascade-occt/default.nix
index 83b1cfc2addf..f0016555c046 100644
--- a/nixpkgs/pkgs/development/libraries/opencascade-occt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/opencascade-occt/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "opencascade-occt";
-  version = "7.3.0p3";
+  version = "7.4.0p1";
   commit = "V${builtins.replaceStrings ["."] ["_"] version}";
 
   src = fetchurl {
     name = "occt-${commit}.tar.gz";
     url = "https://git.dev.opencascade.org/gitweb/?p=occt.git;a=snapshot;h=${commit};sf=tgz";
-    sha256 = "0k9c3ypcnjcilq1dhsf6xxbd52gyq4h5rchvp30k3c8ph4ris5pz";
+    sha256 = "0b9hs3akx1f3hhg4zdip6qdv04ssqqcf9kk12amkidgvsl73z2hs";
   };
 
   nativeBuildInputs = [ cmake ninja ];
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21;  # essentially...
     # The special exception defined in the file OCCT_LGPL_EXCEPTION.txt
     # are basically about making the license a little less share-alike.
-    maintainers = with maintainers; [ amiloradovsky ];
+    maintainers = with maintainers; [ amiloradovsky gebner ];
     platforms = platforms.all;
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/opencascade/default.nix b/nixpkgs/pkgs/development/libraries/opencascade/default.nix
index 8334bf195f7b..c0b2366ab7fc 100644
--- a/nixpkgs/pkgs/development/libraries/opencascade/default.nix
+++ b/nixpkgs/pkgs/development/libraries/opencascade/default.nix
@@ -1,6 +1,9 @@
 { stdenv, fetchFromGitHub, fetchpatch, libGL, libGLU, libXmu, cmake, ninja,
-  pkgconfig, fontconfig, freetype, expat, freeimage, vtk }:
+  pkgconfig, fontconfig, freetype, expat, freeimage, vtk, gl2ps, tbb,
+  OpenCL, Cocoa
+}:
 
+with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "opencascade-oce";
   version = "0.18.3";
@@ -13,13 +16,21 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ cmake ninja pkgconfig ];
-  buildInputs = [ libGL libGLU libXmu freetype fontconfig expat freeimage vtk ];
+  buildInputs = [
+    libGL libGLU libXmu freetype fontconfig expat freeimage vtk
+    gl2ps tbb
+  ]
+    ++ optionals stdenv.isDarwin [OpenCL Cocoa]
+  ;
 
   cmakeFlags = [
     "-DOCE_INSTALL_PREFIX=${placeholder "out"}"
     "-DOCE_WITH_FREEIMAGE=ON"
     "-DOCE_WITH_VTK=ON"
-  ];
+    "-DOCE_WITH_GL2PS=ON"
+    "-DOCE_MULTITHREAD_LIBRARY=TBB"
+  ]
+  ++ optionals stdenv.isDarwin ["-DOCE_OSX_USE_COCOA=ON" "-DOCE_WITH_OPENCL=ON"];
 
   patches = [
     # Use fontconfig instead of hardcoded directory list
@@ -33,6 +44,10 @@ stdenv.mkDerivation rec {
       url = "https://github.com/tpaviot/oce/commit/3b44656e93270d782009b06ec4be84d2a13f8126.patch";
       sha256 = "1ccakkcwy5g0184m23x0mnh22i0lk45xm8kgiv5z3pl7nh35dh8k";
     })
+    (fetchpatch {
+      url = "https://github.com/tpaviot/oce/commit/cf50d078cd5fac03a48fd204938bd240930a08dc.patch";
+      sha256 = "1xv94hcvggmb1c8vqwic1aiw9jw1sxk8mqbaak9xs9ycfqdvgdyc";
+    })
   ];
 
   postPatch = ''
@@ -41,11 +56,11 @@ stdenv.mkDerivation rec {
       --replace FONTCONFIG_LIBRARIES FONTCONFIG_LINK_LIBRARIES
   '';
 
-  meta = with stdenv.lib; {
+  meta = {
     description = "Open CASCADE Technology, libraries for 3D modeling and numerical simulation";
     homepage = "https://github.com/tpaviot/oce";
     maintainers = [ maintainers.viric ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     license = licenses.lgpl21;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/opencl-clhpp/default.nix b/nixpkgs/pkgs/development/libraries/opencl-clhpp/default.nix
index bf45bc90f197..1486ea93175b 100644
--- a/nixpkgs/pkgs/development/libraries/opencl-clhpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/opencl-clhpp/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "opencl-clhpp";
-  version = "2.0.11";
+  version = "2.0.12";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "OpenCL-CLHPP";
     rev = "v${version}";
-    sha256 = "0a0n0f1lb86cwfm0ndzykcn965vz1v0n9n3rfmkiwrzkdhc9iy2y";
+    sha256 = "04g3mg2cpbi048fxxkghra81bpxzqr4r3gspx5mvqipx1lzypsci";
   };
 
   nativeBuildInputs = [ cmake python ];
diff --git a/nixpkgs/pkgs/development/libraries/opencl-headers/default.nix b/nixpkgs/pkgs/development/libraries/opencl-headers/default.nix
index 682a547d8f33..aaf6390d00a5 100644
--- a/nixpkgs/pkgs/development/libraries/opencl-headers/default.nix
+++ b/nixpkgs/pkgs/development/libraries/opencl-headers/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   name = "opencl-headers-${version}";
-  version = "2020.03.13";
+  version = "2020.06.16";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "OpenCL-Headers";
     rev = "v${version}";
-    sha256 = "1d9ibiwicaj17757h9yyjc9i2hny8d8npn4spbjscins8972z3hw";
+    sha256 = "0viiwhfqccw90r3mr45ab3wyhabpdrihplj5842brn5ny0ayh73z";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/opencv/3.x.nix b/nixpkgs/pkgs/development/libraries/opencv/3.x.nix
index 1597eb7913a5..2ad2d016c9fd 100644
--- a/nixpkgs/pkgs/development/libraries/opencv/3.x.nix
+++ b/nixpkgs/pkgs/development/libraries/opencv/3.x.nix
@@ -9,7 +9,6 @@
 , enableTIFF      ? true, libtiff
 , enableWebP      ? true, libwebp
 , enableEXR ?     !stdenv.isDarwin, openexr, ilmbase
-, enableJPEG2K    ? false, jasper  # disable jasper by default (many CVE)
 , enableEigen     ? true, eigen
 , enableOpenblas  ? true, openblas, blas, lapack
 , enableContrib   ? true
@@ -187,7 +186,6 @@ stdenv.mkDerivation {
     ++ lib.optional enableTIFF libtiff
     ++ lib.optional enableWebP libwebp
     ++ lib.optionals enableEXR [ openexr ilmbase ]
-    ++ lib.optional enableJPEG2K jasper
     ++ lib.optional enableFfmpeg ffmpeg_3
     ++ lib.optionals (enableFfmpeg && stdenv.isDarwin)
                      [ VideoDecodeAcceleration bzip2 ]
@@ -225,7 +223,6 @@ stdenv.mkDerivation {
     "-DBUILD_DOCS=${printEnabled enableDocs}"
     (opencvFlag "IPP" enableIpp)
     (opencvFlag "TIFF" enableTIFF)
-    (opencvFlag "JASPER" enableJPEG2K)
     (opencvFlag "WEBP" enableWebP)
     (opencvFlag "JPEG" enableJPEG)
     (opencvFlag "PNG" enablePNG)
diff --git a/nixpkgs/pkgs/development/libraries/opencv/4.x.nix b/nixpkgs/pkgs/development/libraries/opencv/4.x.nix
index dd71b10728d8..adeab6b44948 100644
--- a/nixpkgs/pkgs/development/libraries/opencv/4.x.nix
+++ b/nixpkgs/pkgs/development/libraries/opencv/4.x.nix
@@ -9,7 +9,6 @@
 , enableTIFF      ? true, libtiff
 , enableWebP      ? true, libwebp
 , enableEXR ?     !stdenv.isDarwin, openexr, ilmbase
-, enableJPEG2K    ? false, jasper  # disable jasper by default (many CVE)
 , enableEigen     ? true, eigen
 , enableOpenblas  ? true, openblas, blas, lapack
 , enableContrib   ? true
@@ -32,7 +31,7 @@
 , enableDC1394    ? false, libdc1394
 , enableDocs      ? false, doxygen, graphviz-nox
 
-, AVFoundation, Cocoa, VideoDecodeAcceleration, bzip2
+, AVFoundation, Cocoa, VideoDecodeAcceleration, CoreMedia, MediaToolbox, bzip2
 }:
 
 assert blas.implementation == "openblas" && lapack.implementation == "openblas";
@@ -203,7 +202,6 @@ stdenv.mkDerivation {
     ++ lib.optional enableTIFF libtiff
     ++ lib.optional enableWebP libwebp
     ++ lib.optionals enableEXR [ openexr ilmbase ]
-    ++ lib.optional enableJPEG2K jasper
     ++ lib.optional enableFfmpeg ffmpeg_3
     ++ lib.optionals (enableFfmpeg && stdenv.isDarwin)
                      [ VideoDecodeAcceleration bzip2 ]
@@ -219,7 +217,7 @@ stdenv.mkDerivation {
     ++ lib.optionals enableTesseract [ tesseract leptonica ]
     ++ lib.optional enableTbb tbb
     ++ lib.optionals enableCuda [ cudatoolkit nvidia-optical-flow-sdk ]
-    ++ lib.optionals stdenv.isDarwin [ bzip2 AVFoundation Cocoa VideoDecodeAcceleration ]
+    ++ lib.optionals stdenv.isDarwin [ bzip2 AVFoundation Cocoa VideoDecodeAcceleration CoreMedia MediaToolbox ]
     ++ lib.optionals enableDocs [ doxygen graphviz-nox ];
 
   propagatedBuildInputs = lib.optional enablePython pythonPackages.numpy;
@@ -242,7 +240,6 @@ stdenv.mkDerivation {
     "-DBUILD_DOCS=${printEnabled enableDocs}"
     (opencvFlag "IPP" enableIpp)
     (opencvFlag "TIFF" enableTIFF)
-    (opencvFlag "JASPER" enableJPEG2K)
     (opencvFlag "WEBP" enableWebP)
     (opencvFlag "JPEG" enableJPEG)
     (opencvFlag "PNG" enablePNG)
@@ -258,7 +255,6 @@ stdenv.mkDerivation {
   ] ++ lib.optionals stdenv.isDarwin [
     "-DWITH_OPENCL=OFF"
     "-DWITH_LAPACK=OFF"
-    "-DBUILD_opencv_videoio=OFF"
   ] ++ lib.optionals enablePython [
     "-DOPENCV_SKIP_PYTHON_LOADER=ON"
   ];
diff --git a/nixpkgs/pkgs/development/libraries/opencv/default.nix b/nixpkgs/pkgs/development/libraries/opencv/default.nix
index 06a3d5f194fb..d71c210fb6f6 100644
--- a/nixpkgs/pkgs/development/libraries/opencv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/opencv/default.nix
@@ -6,7 +6,6 @@
 , enablePNG ? true, libpng
 , enableTIFF ? true, libtiff
 , enableEXR ? (!stdenv.isDarwin), openexr, ilmbase
-, enableJPEG2K ? false, jasper  # disable jasper by default (many CVE)
 , enableFfmpeg ? false, ffmpeg_3
 , enableGStreamer ? false, gst_all_1
 , enableEigen ? true, eigen
@@ -50,7 +49,6 @@ stdenv.mkDerivation rec {
     ++ lib.optional enablePNG libpng
     ++ lib.optional enableTIFF libtiff
     ++ lib.optionals enableEXR [ openexr ilmbase ]
-    ++ lib.optional enableJPEG2K jasper
     ++ lib.optional enableFfmpeg ffmpeg_3
     ++ lib.optionals enableGStreamer (with gst_all_1; [ gstreamer gst-plugins-base ])
     ++ lib.optional enableEigen eigen
@@ -65,7 +63,6 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = [
     (opencvFlag "TIFF" enableTIFF)
-    (opencvFlag "JASPER" enableJPEG2K)
     (opencvFlag "JPEG" enableJPEG)
     (opencvFlag "PNG" enablePNG)
     (opencvFlag "OPENEXR" enableEXR)
diff --git a/nixpkgs/pkgs/development/libraries/opendht/default.nix b/nixpkgs/pkgs/development/libraries/opendht/default.nix
index c8b1205bc91b..f9b2e07fb423 100644
--- a/nixpkgs/pkgs/development/libraries/opendht/default.nix
+++ b/nixpkgs/pkgs/development/libraries/opendht/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "opendht";
-  version = "2.1.3";
+  version = "2.1.4";
 
   src = fetchFromGitHub {
     owner = "savoirfairelinux";
     repo = "opendht";
     rev = version;
-    sha256 = "0qz9mdkanz4vd38bdpwvcwvbpzf19i6019rmqw3k1vh5mh22ljhr";
+    sha256 = "1ax26ri1ifb6s8ppd28jmanka9yf8mw3np65q2h4djhhik0phhal";
   };
 
   nativeBuildInputs =
diff --git a/nixpkgs/pkgs/development/libraries/opendmarc/default.nix b/nixpkgs/pkgs/development/libraries/opendmarc/default.nix
new file mode 100644
index 000000000000..9b45cc244f26
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/opendmarc/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, libmilter, perl, perlPackages, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "opendmarc";
+  version = "1.3.3";
+
+  src = fetchFromGitHub {
+    owner = "trusteddomainproject";
+    repo = "opendmarc";
+    rev = "rel-opendmarc-${builtins.replaceStrings [ "." ] [ "-" ] version}";
+    sha256 = "sha256-SQH85FLfVEEtYhR1+A1XxCDMiTjDgLQX6zifbLxCa5c=";
+  };
+
+  outputs = [ "bin" "dev" "out" "doc" ];
+
+  buildInputs = [ perl ];
+  nativeBuildInputs = [ autoreconfHook makeWrapper ];
+
+  postPatch = ''
+    substituteInPlace configure.ac --replace '	docs/Makefile' ""
+    patchShebangs contrib reports
+  '';
+
+  configureFlags = [
+    "--with-milter=${libmilter}"
+  ];
+
+  postFixup = ''
+    for b in $bin/bin/opendmarc-{expire,import,params,reports}; do
+      wrapProgram $b --set PERL5LIB ${perlPackages.makeFullPerlPath (with perlPackages; [ Switch DBI DBDmysql HTTPMessage ])}
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A free open source software implementation of the DMARC specification";
+    homepage = "http://www.trusteddomain.org/opendmarc/";
+    license = with licenses; [ bsd3 sendmail ];
+    maintainers = with maintainers; [ ajs124 das_j ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/openexr/default.nix b/nixpkgs/pkgs/development/libraries/openexr/default.nix
index 425afc70f37c..b33b284f45cb 100644
--- a/nixpkgs/pkgs/development/libraries/openexr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openexr/default.nix
@@ -4,26 +4,33 @@
 , fetchFromGitHub
 , zlib
 , ilmbase
-, fetchpatch 
+, fetchpatch
 , cmake
-, libtool
 }:
+
 stdenv.mkDerivation rec {
   pname = "openexr";
-  version = "2.4.1";
+  version = "2.5.3";
+
+  outputs = [ "bin" "dev" "out" "doc" ];
 
   src = fetchFromGitHub {
     owner = "AcademySoftwareFoundation";
     repo = "openexr";
     rev = "v${version}";
-    sha256 = "020gyl8zv83ag6gbcchmqiyx9rh2jca7j8n52zx1gk4rck7kwc01";
+    sha256 = "xyYdRrwAYdnRZmErIK0tZspguqtrXvixO5+6nMDoOh8=";
   };
 
-  outputs = [ "bin" "dev" "out" "doc" ];
-  nativeBuildInputs = [ cmake libtool ];
-  propagatedBuildInputs = [ ilmbase zlib ];
+  patches = [
+    # Fix pkg-config paths
+    (fetchpatch {
+      url = "https://github.com/AcademySoftwareFoundation/openexr/commit/6442fb71a86c09fb0a8118b6dbd93bcec4883a3c.patch";
+      sha256 = "bwD5WTKPT4DjOJDnPXIvT5hJJkH0b71Vo7qupWO9nPA=";
+    })
+  ];
 
-  enableParallelBuilding = true;
+  nativeBuildInputs = [ cmake ];
+  propagatedBuildInputs = [ ilmbase zlib ];
 
   meta = with stdenv.lib; {
     description = "A high dynamic-range (HDR) image file format";
diff --git a/nixpkgs/pkgs/development/libraries/openfst/default.nix b/nixpkgs/pkgs/development/libraries/openfst/default.nix
index db644287d2e1..f652c5ee7b7c 100644
--- a/nixpkgs/pkgs/development/libraries/openfst/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openfst/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "openfst";
-  version = "1.7.7";
+  version = "1.7.9";
 
   src = fetchurl {
     url = "http://www.openfst.org/twiki/pub/FST/FstDownload/${pname}-${version}.tar.gz";
-    sha256 = "1gpkpkls78xlidqq241scdz9vagxl8c4ksc4lqj4ycwx6vzyliij";
+    sha256 = "1pmx1yhn2gknj0an0zwqmzgwjaycapi896244np50a8y3nrsw6ck";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/opengrm-ngram/default.nix b/nixpkgs/pkgs/development/libraries/opengrm-ngram/default.nix
new file mode 100644
index 000000000000..ab546c6d0d45
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/opengrm-ngram/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, autoreconfHook, fetchurl, openfst }:
+
+stdenv.mkDerivation rec {
+  pname = "opengrm-ngram";
+  version = "1.3.11";
+
+  src = fetchurl {
+    url = "http://www.openfst.org/twiki/pub/GRM/NGramDownload/ngram-${version}.tar.gz";
+    sha256 = "0wwpcj8qncdr9f2pmi0vhlw277dyxr85ygdi8g57xp2ifysigm05";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  buildInputs = [ openfst ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Library to make and modify n-gram language models encoded as weighted finite-state transducers";
+    homepage = "http://www.openfst.org/twiki/bin/view/GRM/NGramLibrary";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mic92 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/openimagedenoise/default.nix b/nixpkgs/pkgs/development/libraries/openimagedenoise/default.nix
index 5cecc33564e4..2ac74c6c240b 100644
--- a/nixpkgs/pkgs/development/libraries/openimagedenoise/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openimagedenoise/default.nix
@@ -1,18 +1,16 @@
-{ stdenv, fetchFromGitHub, cmake, tbb, python }:
+{ stdenv, fetchzip, cmake, tbb, python, ispc }:
 
 stdenv.mkDerivation rec {
   pname = "openimagedenoise";
-  version = "1.1.0";
+  version = "1.2.2";
 
-  src = fetchFromGitHub {
-    owner = "OpenImageDenoise";
-    repo = "oidn";
-    rev = "v${version}";
-    sha256 = "032s7vablqnmrcc4xf2c94kwj0kbcd64bram10g0yc42fg0a3r9m";
-    fetchSubmodules = true;
+  # The release tarballs include pretrained weights, which would otherwise need to be fetched with git-lfs
+  src = fetchzip {
+    url = "https://github.com/OpenImageDenoise/oidn/releases/download/v${version}/oidn-${version}.src.tar.gz";
+    sha256 = "0wyaarjxkzlvljmpnr7qm06ma2wl1aik3z664gwpzhizswygk6yp";
   };
 
-  nativeBuildInputs = [ cmake python ];
+  nativeBuildInputs = [ cmake python ispc ];
   buildInputs = [ tbb ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/libraries/openldap/default.nix b/nixpkgs/pkgs/development/libraries/openldap/default.nix
index a4274f064e56..7f9c2dbf3ee9 100644
--- a/nixpkgs/pkgs/development/libraries/openldap/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openldap/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl, cyrus_sasl, db, groff, libtool }:
 
 stdenv.mkDerivation rec {
-  name = "openldap-2.4.50";
+  name = "openldap-2.4.51";
 
   src = fetchurl {
     url = "https://www.openldap.org/software/download/OpenLDAP/openldap-release/${name}.tgz";
-    sha256 = "1f46nlfwmys110j36sifm7ah8m8f3s10c3vaiikmmigmifapvdaw";
+    sha256 = "0qmy2jkk6v9iqwrsdsn8s7lwzaplr01a2mgf21r6nl66lig7g47l";
   };
 
   # TODO: separate "out" and "bin"
@@ -23,7 +23,8 @@ stdenv.mkDerivation rec {
     "STRIP="
     "prefix=$(out)"
     "moduledir=$(out)/lib/modules"
-  ] ++ stdenv.lib.optionals stdenv.isDarwin [ "CC=cc" ];
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
 
   configureFlags = [
     "--enable-overlays"
@@ -40,8 +41,8 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optional stdenv.isFreeBSD "--with-pic";
 
   postBuild = ''
-    make $makeFlags -C contrib/slapd-modules/passwd/sha2
-    make $makeFlags -C contrib/slapd-modules/passwd/pbkdf2
+    make $makeFlags CC=$CC -C contrib/slapd-modules/passwd/sha2
+    make $makeFlags CC=$CC -C contrib/slapd-modules/passwd/pbkdf2
   '';
 
   doCheck = false; # needs a running LDAP server
diff --git a/nixpkgs/pkgs/development/libraries/openmpi/default.nix b/nixpkgs/pkgs/development/libraries/openmpi/default.nix
index 5c185f630d98..95c2a9c3fcf4 100644
--- a/nixpkgs/pkgs/development/libraries/openmpi/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openmpi/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, fetchpatch, gfortran, perl, libnl
 , rdma-core, zlib, numactl, libevent, hwloc, targetPackages, symlinkJoin
-, libpsm2, libfabric
+, libpsm2, libfabric, pmix, ucx
 
 # Enable CUDA support
 , cudaSupport ? false, cudatoolkit ? null
@@ -13,13 +13,12 @@
 
 # Enable libfabric support (necessary for Omnipath networks) on x86_64 linux
 , fabricSupport ? stdenv.isLinux && stdenv.isx86_64
-
 }:
 
 assert !cudaSupport || cudatoolkit != null;
 
 let
-  version = "4.0.4";
+  version = "4.0.5";
 
   cudatoolkit_joined = symlinkJoin {
     name = "${cudatoolkit.name}-unsplit";
@@ -31,7 +30,7 @@ in stdenv.mkDerivation rec {
 
   src = with stdenv.lib.versions; fetchurl {
     url = "https://www.open-mpi.org/software/ompi/v${major version}.${minor version}/downloads/${pname}-${version}.tar.bz2";
-    sha256 = "1i0slg2dxjdgw513aml1n9dsbdxn2fimi2b5712d5r9z4ar4xqj7";
+    sha256 = "02f0r9d3xgs08svkmj8v7lzviyxqnkk4yd3z0wql550xnriki3y5";
   };
 
   postPatch = ''
@@ -46,7 +45,7 @@ in stdenv.mkDerivation rec {
   '';
 
   buildInputs = with stdenv; [ gfortran zlib ]
-    ++ lib.optionals isLinux [ libnl numactl ]
+    ++ lib.optionals isLinux [ libnl numactl pmix ucx ]
     ++ lib.optionals cudaSupport [ cudatoolkit ]
     ++ [ libevent hwloc ]
     ++ lib.optional (isLinux || isFreeBSD) rdma-core
@@ -55,8 +54,12 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ perl ];
 
   configureFlags = with stdenv; lib.optional (!cudaSupport) "--disable-mca-dso"
-    ++ lib.optional isLinux  "--with-libnl=${libnl.dev}"
-    ++ lib.optional enableSGE "--with-sge"
+    ++ lib.optionals isLinux  [
+      "--with-libnl=${libnl.dev}"
+      "--with-pmix=${pmix}"
+      "--with-pmix-libdir=${pmix}/lib"
+      "--enable-mpi-cxx"
+    ] ++ lib.optional enableSGE "--with-sge"
     ++ lib.optional enablePrefix "--enable-mpirun-prefix-by-default"
     # TODO: add UCX support, which is recommended to use with cuda for the most robust OpenMPI build
     # https://github.com/openucx/ucx
diff --git a/nixpkgs/pkgs/development/libraries/openscenegraph/default.nix b/nixpkgs/pkgs/development/libraries/openscenegraph/default.nix
index a86171852164..4ded4770fc81 100644
--- a/nixpkgs/pkgs/development/libraries/openscenegraph/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openscenegraph/default.nix
@@ -2,7 +2,6 @@
   libX11, libXinerama, libXrandr, libGLU, libGL,
   glib, ilmbase, libxml2, pcre, zlib,
   jpegSupport ? true, libjpeg,
-  jasperSupport ? false, jasper,  # disable jasper by default (many CVE)
   exrSupport ? false, openexr,
   gifSupport ? true, giflib,
   pngSupport ? true, libpng,
@@ -42,7 +41,6 @@ stdenv.mkDerivation rec {
     libX11 libXinerama libXrandr libGLU libGL
     glib ilmbase libxml2 pcre zlib
   ] ++ lib.optional jpegSupport libjpeg
-    ++ lib.optional jasperSupport jasper
     ++ lib.optional exrSupport openexr
     ++ lib.optional gifSupport giflib
     ++ lib.optional pngSupport libpng
diff --git a/nixpkgs/pkgs/development/libraries/openxr-loader/default.nix b/nixpkgs/pkgs/development/libraries/openxr-loader/default.nix
index 47f9afe18619..e03752872f9a 100644
--- a/nixpkgs/pkgs/development/libraries/openxr-loader/default.nix
+++ b/nixpkgs/pkgs/development/libraries/openxr-loader/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "openxr-loader";
-  version = "1.0.9";
+  version = "1.0.11";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "OpenXR-SDK-Source";
     rev = "release-${version}";
-    sha256 = "0xm5bwbsv2qlx1mg9zr98q7rm5hginrff4z0ahv7jrqrzv24acp7";
+    sha256 = "0f3x5h0hdjiqgjf5mzzlprbhrbyabxllrjmlzgc9fv5rgqyyphj5";
   };
 
   nativeBuildInputs = [ cmake python3 ];
diff --git a/nixpkgs/pkgs/development/libraries/orcania/default.nix b/nixpkgs/pkgs/development/libraries/orcania/default.nix
index 2f8765f9a725..4a01de54a6d9 100644
--- a/nixpkgs/pkgs/development/libraries/orcania/default.nix
+++ b/nixpkgs/pkgs/development/libraries/orcania/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchFromGitHub, cmake, check, subunit }:
 stdenv.mkDerivation rec {
   pname = "orcania";
-  version = "2.1.0";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "babelouest";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zp2rk267dfmfap6qsyn7maivrpid8s3rkicwk1q5v6j20cgh1f8";
+    sha256 = "0l035zbzyv623h5186rk6iq1097rxx64iwnk4s2c7l9gzv9wyapp";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/orocos-kdl/default.nix b/nixpkgs/pkgs/development/libraries/orocos-kdl/default.nix
new file mode 100644
index 000000000000..094ee544649d
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/orocos-kdl/default.nix
@@ -0,0 +1,26 @@
+{ lib, stdenv, fetchFromGitHub, cmake, eigen }:
+
+stdenv.mkDerivation rec {
+  pname = "orocos-kdl";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "orocos";
+    repo = "orocos_kinematics_dynamics";
+    rev = "v${version}";
+    sha256 = "0qj56j231h0rnjbglakammxn2lwmhy5f2qa37v1f6pcn81dn13vv";
+  };
+
+  sourceRoot = "source/orocos_kdl";
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ eigen ];
+
+  meta = with lib; {
+    description = "Kinematics and Dynamics Library";
+    homepage = "https://www.orocos.org/kdl.html";
+    license = licenses.lgpl21Only;
+    maintainers = with maintainers; [ lopsided98 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/p11-kit/default.nix b/nixpkgs/pkgs/development/libraries/p11-kit/default.nix
index 204de957f3df..46f520e41e4a 100644
--- a/nixpkgs/pkgs/development/libraries/p11-kit/default.nix
+++ b/nixpkgs/pkgs/development/libraries/p11-kit/default.nix
@@ -4,19 +4,24 @@
 
 stdenv.mkDerivation rec {
   pname = "p11-kit";
-  version = "0.23.20";
+  version = "0.23.21";
 
   src = fetchFromGitHub {
     owner = "p11-glue";
     repo = pname;
     rev = version;
-    sha256 = "00xxhzgd7cpin9nzwrrzykvhjwqg5l45p0cq2gv68y3sxq2p9q6y";
+    sha256 = "1w24brn8j3vwfp07p2hldw2ci06pk1cx1dvjk8jjxkccp20fk958";
   };
 
   outputs = [ "out" "dev"];
   outputBin = "dev";
 
-  nativeBuildInputs = [ autoreconfHook pkgconfig which ];
+  # for cross platform builds of p11-kit, libtasn1 in nativeBuildInputs
+  # provides the asn1Parser binary on the hostPlatform needed for building.
+  # at the same time, libtasn1 in buildInputs provides the libasn1 library
+  # to link against for the target platform.
+  # hence, libtasn1 is required in both native and build inputs.
+  nativeBuildInputs = [ autoreconfHook pkgconfig which libtasn1 ];
   buildInputs = [ gettext libffi libiconv libtasn1 ];
 
   autoreconfPhase = ''
diff --git a/nixpkgs/pkgs/development/libraries/packr/default.nix b/nixpkgs/pkgs/development/libraries/packr/default.nix
index ec2de274ccb2..017cb25a9d17 100644
--- a/nixpkgs/pkgs/development/libraries/packr/default.nix
+++ b/nixpkgs/pkgs/development/libraries/packr/default.nix
@@ -20,6 +20,8 @@ let p2 = buildGoModule rec {
 
   vendorSha256 = "12yq121b0bn8z12091fyqhhz421kgx4z1nskrkvbxlhyc47bwyrp";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "The simple and easy way to embed static files into Go binaries";
     homepage = "https://github.com/gobuffalo/packr";
@@ -42,6 +44,8 @@ p1 = buildGoModule rec {
 
   vendorSha256 = "0m3yj8ww4a16j56p8d8w0sdnyx0g2bkd8zg0l4d8vb72mvg5asga";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "The simple and easy way to embed static files into Go binaries";
     homepage = "https://github.com/gobuffalo/packr";
@@ -53,4 +57,4 @@ in
 symlinkJoin{
     name = "packr";
     paths = [p1 p2];
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/libraries/pango/default.nix b/nixpkgs/pkgs/development/libraries/pango/default.nix
index 358ae3df9911..e3bdba9b3b1b 100644
--- a/nixpkgs/pkgs/development/libraries/pango/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pango/default.nix
@@ -9,15 +9,26 @@ with stdenv.lib;
 
 let
   pname = "pango";
-  version = "1.44.7";
+  version = "1.45.3";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "07qvxa2sk90chp1l12han6vxvy098mc37sdqcznyywyv2g6bd9b6";
+    sha256 = "0zg6gvzk227q997jf1c9p7j5ra87nm008hlgq6q8na9xmgmw2x8z";
   };
 
+  patches = [
+    # Fix issue with Pango loading unsupported formats that
+    # breaks mixed x11/opentype font packages.
+    # See https://gitlab.gnome.org/GNOME/pango/issues/457
+    # Remove on next release.
+    (fetchpatch {
+      url = "https://gitlab.gnome.org/GNOME/pango/commit/fe1ee773310bac83d8e5d3c062b13a51fb5fb4ad.patch";
+      sha256 = "1px66g31l2jx4baaqi4md59wlmvw0ywgspn6zr919fxl4h1kkh0h";
+    })
+  ];
+
   # FIXME: docs fail on darwin
   outputs = [ "bin" "dev" "out" ] ++ optional (!stdenv.isDarwin) "devdoc";
 
diff --git a/nixpkgs/pkgs/development/libraries/pc-ble-driver/default.nix b/nixpkgs/pkgs/development/libraries/pc-ble-driver/default.nix
new file mode 100644
index 000000000000..7d7dbd53383b
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/pc-ble-driver/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, git, cmake, catch2, asio, udev, IOKit }:
+
+stdenv.mkDerivation rec {
+  pname = "pc-ble-driver";
+  version = "4.1.1";
+
+  src = fetchFromGitHub {
+    owner = "NordicSemiconductor";
+    repo = "pc-ble-driver";
+    rev = "v${version}";
+    sha256 = "1llhkpbdbsq9d91m873vc96bprkgpb5wsm5fgs1qhzdikdhg077q";
+  };
+
+  cmakeFlags = [
+    "-DNRF_BLE_DRIVER_VERSION=${version}"
+  ];
+
+  nativeBuildInputs = [ cmake git ];
+  buildInputs = [ catch2 asio ];
+
+  propagatedBuildInputs = [
+
+  ] ++ stdenv.lib.optionals stdenv.isDarwin [
+    IOKit
+  ] ++ stdenv.lib.optionals stdenv.isLinux [
+    udev
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Desktop library for Bluetooth low energy development";
+    homepage = "https://github.com/NordicSemiconductor/pc-ble-driver";
+    license = licenses.unfreeRedistributable;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ jschievink ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/pcl/default.nix b/nixpkgs/pkgs/development/libraries/pcl/default.nix
index 506c78aca8a5..cb1bcdd1bf75 100644
--- a/nixpkgs/pkgs/development/libraries/pcl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pcl/default.nix
@@ -4,13 +4,13 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "pcl-1.11.0";
+  name = "pcl-1.11.1";
 
   src = fetchFromGitHub {
     owner = "PointCloudLibrary";
     repo = "pcl";
     rev = name;
-    sha256 = "0nr3j71gh1v8x6wjr7a7xyr0438sw7vf621a5kbw4lmsxbj55k8g";
+    sha256 = "1cli2rxqsk6nxp36p5mgvvahjz8hm4fb68yi8cf9nw4ygbcvcwb1";
   };
 
   enableParallelBuilding = true;
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     homepage = "http://pointclouds.org/";
+    broken = stdenv.lib.versionAtLeast qtbase.version "5.15";
     description = "Open project for 2D/3D image and point cloud processing";
     license = stdenv.lib.licenses.bsd3;
     maintainers = with stdenv.lib.maintainers; [viric];
diff --git a/nixpkgs/pkgs/development/libraries/pcre2/default.nix b/nixpkgs/pkgs/development/libraries/pcre2/default.nix
index d39b91355b98..b127eb0a31e2 100644
--- a/nixpkgs/pkgs/development/libraries/pcre2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pcre2/default.nix
@@ -11,8 +11,7 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--enable-pcre2-16"
     "--enable-pcre2-32"
-    "--enable-jit"
-  ];
+  ] ++ stdenv.lib.optional (!stdenv.hostPlatform.isRiscV) "--enable-jit";
 
   outputs = [ "bin" "dev" "out" "doc" "man" "devdoc" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/pdal/default.nix b/nixpkgs/pkgs/development/libraries/pdal/default.nix
new file mode 100644
index 000000000000..2059b4db7fbd
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/pdal/default.nix
@@ -0,0 +1,98 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, pkg-config
+# , openscenegraph
+, curl
+, gdal
+, hdf5-cpp
+, LASzip
+, libe57format
+, libgeotiff
+, libxml2
+, postgresql
+, tiledb
+, xercesc
+, zlib
+, zstd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pdal";
+  version = "2.1.0";
+
+  src = fetchFromGitHub {
+    owner = "PDAL";
+    repo = "PDAL";
+    rev = version;
+    sha256 = "0zb3zjqgmjjryb648c1hmwh1nfa7893bjzbqpmr6shjxvzgnj9p6";
+  };
+
+  patches = [
+    # Fix duplicate paths like
+    #     /nix/store/7iafqfmjdlxqim922618wg87cclrpznr-PDAL-2.1.0//nix/store/7iafqfmjdlxqim922618wg87cclrpznr-PDAL-2.1.0/lib
+    # similar to https://github.com/NixOS/nixpkgs/pull/82654.
+    # TODO Remove on release > 2.1.0
+    (fetchpatch {
+      name = "pdal-Fixup-install-config.patch";
+      url = "https://github.com/PDAL/PDAL/commit/2f887ef624db50c6e20f091f34bb5d3e65b5c5c8.patch";
+      sha256 = "0pdw9v5ypq7w9i7qzgal110hjb9nqi386jvy3x2h4vf1dyalzid8";
+    })
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    # openscenegraph
+    curl
+    gdal
+    hdf5-cpp
+    LASzip
+    libe57format
+    libgeotiff
+    libxml2
+    postgresql
+    tiledb
+    xercesc
+    zlib
+    zstd
+  ];
+
+  cmakeFlags = [
+    "-DBUILD_PLUGIN_E57=ON"
+    "-DBUILD_PLUGIN_HDF=ON"
+    "-DBUILD_PLUGIN_PGPOINTCLOUD=ON"
+    "-DBUILD_PLUGIN_TILEDB=ON"
+
+    # Plugins that can probably be made working relatively easily:
+    # As of writing, seems to be incompatible (build error):
+    #     error: no matching function for call to 'osg::TriangleFunctor<pdal::CollectTriangles>::operator()(const Vec3&, const Vec3&, const Vec3&)'
+    "-DBUILD_PLUGIN_OPENSCENEGRAPH=OFF" # requires OpenGL
+
+    # Plugins can probably not be made work easily:
+    "-DBUILD_PLUGIN_CPD=OFF"
+    "-DBUILD_PLUGIN_FBX=OFF" # Autodesk FBX SDK is gratis+proprietary; not packaged in nixpkgs
+    "-DBUILD_PLUGIN_GEOWAVE=OFF"
+    "-DBUILD_PLUGIN_I3S=OFF"
+    "-DBUILD_PLUGIN_ICEBRIDGE=OFF"
+    "-DBUILD_PLUGIN_MATLAB=OFF"
+    "-DBUILD_PLUGIN_MBIO=OFF"
+    "-DBUILD_PLUGIN_MRSID=OFF"
+    "-DBUILD_PLUGIN_NITF=OFF"
+    "-DBUILD_PLUGIN_OCI=OFF"
+    "-DBUILD_PLUGIN_RDBLIB=OFF" # Riegl rdblib is proprietary; not packaged in nixpkgs
+    "-DBUILD_PLUGIN_RIVLIB=OFF"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "PDAL is Point Data Abstraction Library. GDAL for point cloud data.";
+    homepage = "https://pdal.io";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ nh2 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/pdf2xml/default.nix b/nixpkgs/pkgs/development/libraries/pdf2xml/default.nix
index 08d57cda6c18..855df954eb14 100644
--- a/nixpkgs/pkgs/development/libraries/pdf2xml/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pdf2xml/default.nix
@@ -32,7 +32,9 @@ stdenv.mkDerivation {
     cp exe/* $out/bin
   '';
 
-  meta = {
-    platforms = stdenv.lib.platforms.unix;
+  meta = with stdenv.lib; {
+    description = "PDF to XML converter";
+    platforms = platforms.unix;
+    license = licenses.gpl2;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/phonetisaurus/default.nix b/nixpkgs/pkgs/development/libraries/phonetisaurus/default.nix
new file mode 100644
index 000000000000..126a91fe2900
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/phonetisaurus/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, fetchFromGitHub
+, openfst
+, pkg-config
+, python3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "phonetisaurus";
+  version = "2020-07-31";
+
+  src = fetchFromGitHub {
+    owner = "AdolfVonKleist";
+    repo = pname;
+    rev = "2831870697de5b4fbcb56a6e1b975e0e1ea10deb";
+    sha256 = "1b18s5zz0l0fhqh9n9jnmgjz2hzprwzf6hx5a12zibmmam3qyriv";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ python3 openfst ];
+
+  meta = with stdenv.lib; {
+    description = "Framework for Grapheme-to-phoneme models for speech recognition using the OpenFst framework";
+    inherit (src.meta) homepage;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ mic92 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/phonon/backends/vlc.nix b/nixpkgs/pkgs/development/libraries/phonon/backends/vlc.nix
index d152afd45340..d54ee6e56304 100644
--- a/nixpkgs/pkgs/development/libraries/phonon/backends/vlc.nix
+++ b/nixpkgs/pkgs/development/libraries/phonon/backends/vlc.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, cmake, phonon, pkgconfig, vlc
+{ stdenv, lib, fetchurl, cmake, phonon, pkgconfig, libvlc
 , extra-cmake-modules, qttools, qtbase, qtx11extras
 , debug ? false
 }:
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     phonon
-    vlc
+    libvlc
     qtbase
     qtx11extras
   ];
diff --git a/nixpkgs/pkgs/development/libraries/physics/hepmc2/default.nix b/nixpkgs/pkgs/development/libraries/physics/hepmc2/default.nix
index 41908e0383bf..b27d947ea5c4 100644
--- a/nixpkgs/pkgs/development/libraries/physics/hepmc2/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/hepmc2/default.nix
@@ -2,28 +2,25 @@
 
 stdenv.mkDerivation rec {
   pname = "hepmc";
-  version = "2.06.10";
+  version = "2.06.11";
 
   src = fetchurl {
     url = "http://hepmc.web.cern.ch/hepmc/releases/HepMC-${version}.tar.gz";
-    sha256 = "190i9jlnwz1xpc495y0xc70s4zdqb9s2zdq1zkjy2ivl7ygdvpjs";
+    sha256 = "1pp89bs05nv60wjk1690ndwh4dsd5mk20bzsd4a2lklysdifvb6f";
   };
 
-  patches = [ ./in_source.patch ];
-  buildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   cmakeFlags = [
     "-Dmomentum:STRING=GEV"
     "-Dlength:STRING=MM"
   ];
 
-  enableParallelBuilding = true;
-
-  meta = {
+  meta = with stdenv.lib; {
     description = "The HepMC package is an object oriented event record written in C++ for High Energy Physics Monte Carlo Generators";
-    license     = stdenv.lib.licenses.gpl2;
+    license     = licenses.lgpl21;
     homepage    = "http://hepmc.web.cern.ch/hepmc/";
-    platforms   = stdenv.lib.platforms.unix;
-    maintainers = with stdenv.lib.maintainers; [ veprbl ];
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ veprbl ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/physics/hepmc2/in_source.patch b/nixpkgs/pkgs/development/libraries/physics/hepmc2/in_source.patch
deleted file mode 100644
index 836a56558691..000000000000
--- a/nixpkgs/pkgs/development/libraries/physics/hepmc2/in_source.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -37,21 +37,6 @@ message(STATUS "default momentum and length are ${HEPMC_DEFAULT_MOM_UNIT} ${HEPM
- # find the HepMC cmake modules
- set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules ${CMAKE_MODULE_PATH})
- 
--# make sure we are not building from within the source code directory
--string(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" in_source)
--string( REGEX MATCH "${CMAKE_SOURCE_DIR}/" in_source_subdir
--"${CMAKE_BINARY_DIR}")
--if (in_source OR in_source_subdir)
--  message(FATAL_ERROR "
--ERROR: In source builds of this project are not allowed.
--A separate build directory is required.
--Please create one and run cmake from the build directory.
--Also note that cmake has just added files to your source code directory.
--We suggest getting a new copy of the source code.
--Otherwise, delete `CMakeCache.txt' and the directory `CMakeFiles'.
--  ")
--endif ()
--
- # build_docs is OFF (false) by default
- if ( build_docs )
-    message(STATUS "documents WILL be built and installed" )
diff --git a/nixpkgs/pkgs/development/libraries/physics/hepmc3/default.nix b/nixpkgs/pkgs/development/libraries/physics/hepmc3/default.nix
index a07c3c19a1bb..10b789f514f9 100644
--- a/nixpkgs/pkgs/development/libraries/physics/hepmc3/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/hepmc3/default.nix
@@ -3,19 +3,21 @@
 let
   pythonVersion = with stdenv.lib.versions; "${major python.version}${minor python.version}";
   withPython = python != null;
+  # ensure that root is built with the same python interpreter, as it links against numpy
+  root_py = if withPython then root.override { inherit python; } else root;
 in
 
 stdenv.mkDerivation rec {
   pname = "hepmc3";
-  version = "3.2.0";
+  version = "3.2.2";
 
   src = fetchurl {
     url = "http://hepmc.web.cern.ch/hepmc/releases/HepMC3-${version}.tar.gz";
-    sha256 = "1z491x3blqs0a2jxmhzhmh4kqdw3ddcbvw69gidg4w6icdvkhcpi";
+    sha256 = "0h9dbsbbf3y7iia27ms9cy4pfk2yyrkdnxcqsbvkhkl0izvv930f";
   };
 
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ root ]
+  buildInputs = [ root_py ]
     ++ stdenv.lib.optional withPython python;
 
   cmakeFlags = [
@@ -31,6 +33,12 @@ stdenv.mkDerivation rec {
       --replace 'readlink' '${coreutils}/bin/readlink'
   '';
 
+  doInstallCheck = withPython;
+  # prevent nix from trying to dereference a null python
+  installCheckPhase = stdenv.lib.optionalString withPython ''
+    PYTHONPATH=${placeholder "out"}/${python.sitePackages} python -c 'import pyHepMC3'
+  '';
+
   meta = with stdenv.lib; {
     description = "The HepMC package is an object oriented, C++ event record for High Energy Physics Monte Carlo generators and simulation";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/libraries/physics/lhapdf/default.nix b/nixpkgs/pkgs/development/libraries/physics/lhapdf/default.nix
index 8d4e91265f5e..7d412f86596d 100644
--- a/nixpkgs/pkgs/development/libraries/physics/lhapdf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/lhapdf/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "lhapdf";
-  version = "6.2.3";
+  version = "6.3.0";
 
   src = fetchurl {
     url = "https://www.hepforge.org/archive/lhapdf/LHAPDF-${version}.tar.gz";
-    sha256 = "1l9dv37k4jz18wahyfm9g53nyl81v5bgqgy4dllbcmvcqpfkmrnn";
+    sha256 = "0pcvigpjqzfng06n98bshhhpimiqfg416ak8lz8jdgp6nxr8fkgd";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/libraries/physics/rivet/default.nix b/nixpkgs/pkgs/development/libraries/physics/rivet/default.nix
index bcf986346ac3..abf37def8c3f 100644
--- a/nixpkgs/pkgs/development/libraries/physics/rivet/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/rivet/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "rivet";
-  version = "3.1.1";
+  version = "3.1.2";
 
   src = fetchurl {
     url = "https://www.hepforge.org/archive/rivet/Rivet-${version}.tar.bz2";
-    sha256 = "1cgr9jyfd9r7dwbk8fr3rys5dc74cmbx368441jvqngqymmb563w";
+    sha256 = "0yjpx7n6ry3pfgkf7d7v7mcc3yv7681kf8nq2b1fgspl8jbd0hf0";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix b/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix
index 9d4d60949c19..1a8d5a6fd390 100644
--- a/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix
+++ b/nixpkgs/pkgs/development/libraries/physics/yoda/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yoda";
-  version = "1.8.2";
+  version = "1.8.3";
 
   src = fetchurl {
     url = "https://www.hepforge.org/archive/yoda/YODA-${version}.tar.bz2";
-    sha256 = "1nqbv334iwdvbsc5bw8g936cxzc1hyzv9r8kjy4v124vrw8qqmc9";
+    sha256 = "12msmjiajvy2xj2m64n2fxblai5xg06a829wi7scsc7nw2jhxpfr";
   };
 
   nativeBuildInputs = with python.pkgs; [ cython makeWrapper ];
diff --git a/nixpkgs/pkgs/development/libraries/pipewire/default.nix b/nixpkgs/pkgs/development/libraries/pipewire/default.nix
index 21dcf5af3159..cb5073f50c15 100644
--- a/nixpkgs/pkgs/development/libraries/pipewire/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pipewire/default.nix
@@ -33,7 +33,7 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "pipewire";
-  version = "0.3.6";
+  version = "0.3.7";
 
   outputs = [ "out" "lib" "dev" "doc" ];
 
@@ -42,16 +42,9 @@ stdenv.mkDerivation rec {
     owner = "pipewire";
     repo = "pipewire";
     rev = version;
-    sha256 = "0g149vyaigf4gzm764fcgxxci9niw19z0af9afs4diwq5xzr1qd3";
+    sha256 = "04l66p0wj553gp2zf3vwwh6jbr1vkf6wrq4za9zlm9dn144am4j2";
   };
 
-  patches = [ (fetchpatch {
-    # Brought by https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/263,
-    # should be part of > 0.3.6
-    url = "https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/d1162f28efd502fcb973e172867970f5cc8d7a6b.patch";
-    sha256 = "0ng34yin5726cvv0nll1b2xigyq6mj6j516l3xi0ys1i2g2fyby9";
-  })];
-
   nativeBuildInputs = [
     doxygen
     graphviz
diff --git a/nixpkgs/pkgs/development/libraries/pkger/default.nix b/nixpkgs/pkgs/development/libraries/pkger/default.nix
index 09c48ff8b0ab..8c8fd4f8fd6b 100644
--- a/nixpkgs/pkgs/development/libraries/pkger/default.nix
+++ b/nixpkgs/pkgs/development/libraries/pkger/default.nix
@@ -6,17 +6,19 @@
 
 buildGoModule rec {
   pname = "pkger";
-  version = "0.17.0";
+  version = "0.17.1";
 
   src = fetchFromGitHub {
     owner = "markbates";
     repo = "pkger";
     rev = "v${version}";
-    sha256 = "195ba1avkpm9ssgakngv8j72k7yq2xna3xmm5m8l6c5g7lf91kkp";
+    sha256 = "12zcvsd6bv581wwhahp1wy903495s51lw86b99cfihwmxc5qw6ww";
   };
 
   vendorSha256 = "1b9gpym6kb4hpdbrixphfh1qylmqr265jrmcd4vxb87ahvrsrvgp";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Embed static files in Go binaries (replacement for gobuffalo/packr) ";
     homepage = "https://github.com/markbates/pkger";
diff --git a/nixpkgs/pkgs/development/libraries/plasma-wayland-protocols/default.nix b/nixpkgs/pkgs/development/libraries/plasma-wayland-protocols/default.nix
new file mode 100644
index 000000000000..2d3a5239d7b7
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/plasma-wayland-protocols/default.nix
@@ -0,0 +1,25 @@
+{ mkDerivation, fetchurl, lib
+, extra-cmake-modules
+, qtbase
+}:
+
+mkDerivation rec {
+  pname = "plasma-wayland-protocols";
+  version = "1.1.1";
+
+  src = fetchurl {
+    url = "mirror://kde/stable/${pname}/${version}/${pname}-${version}.tar.xz";
+    sha256 = "sha256-xUkzg9EVFxw0NeqaIbOWaGBjKoRFRP+sj1SJBDalHTg=";
+  };
+
+  nativeBuildInputs = [ extra-cmake-modules ];
+
+  buildInputs = [ qtbase ];
+
+  meta = {
+    description = "Plasma Wayland Protocols";
+    license = lib.licenses.lgpl21Plus;
+    platforms = qtbase.meta.platforms;
+    maintainers = [ lib.maintainers.ttuegel ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/pmix/default.nix b/nixpkgs/pkgs/development/libraries/pmix/default.nix
new file mode 100644
index 000000000000..c8d8be4e8cbf
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/pmix/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, perl, autoconf, automake
+, libtool, flex, libevent, hwloc, munge, zlib
+} :
+
+let
+  version = "3.1.5";
+
+in stdenv.mkDerivation {
+  pname = "pmix";
+  inherit version;
+
+  src = fetchFromGitHub {
+    repo = "openpmix";
+    owner = "openpmix";
+    rev = "v${version}";
+    sha256 = "0fvfsig20amcigyn4v3gcdxc0jif44vqg37b8zzh0s8jqqj7jz5w";
+  };
+
+  postPatch = ''
+    patchShebangs ./autogen.pl
+    patchShebangs ./config
+  '';
+
+  nativeBuildInputs = [ perl autoconf automake libtool flex ];
+
+  buildInputs = [ libevent hwloc munge zlib ];
+
+  configureFlags = [
+    "--with-libevent=${libevent.dev}"
+    "--with-munge=${munge}"
+    "--with-hwloc=${hwloc.dev}"
+  ];
+
+  preConfigure = ''
+    ./autogen.pl
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Process Management Interface for HPC environments";
+    homepage = "https://openpmix.github.io/";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.markuskowa ];
+    platforms = platforms.linux;
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/libraries/poppler/default.nix b/nixpkgs/pkgs/development/libraries/poppler/default.nix
index 93b49524dc1d..074868251d0a 100644
--- a/nixpkgs/pkgs/development/libraries/poppler/default.nix
+++ b/nixpkgs/pkgs/development/libraries/poppler/default.nix
@@ -12,11 +12,11 @@ let
 in
 stdenv.mkDerivation rec {
   name = "poppler-${suffix}-${version}";
-  version = "0.88.0"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too!
+  version = "20.08.0"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too!
 
   src = fetchurl {
     url = "${meta.homepage}/poppler-${version}.tar.xz";
-    sha256 = "1isns9s484irq9ir4hbhpyqf6af2xzswh2pfrvk1k9d5x423hidl";
+    sha256 = "19gchq6fpa00ic5rn1zmjzxx85cif4hbdrsjcfd2aqxz9gqgwrdf";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/prometheus-client-c/default.nix b/nixpkgs/pkgs/development/libraries/prometheus-client-c/default.nix
new file mode 100644
index 000000000000..57f4ef5956f6
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/prometheus-client-c/default.nix
@@ -0,0 +1,71 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, libmicrohttpd
+}:
+let
+  build =
+    { pname
+    , subdir
+    , buildInputs ? [ ]
+    , description
+    }:
+    stdenv.mkDerivation rec {
+      inherit pname;
+      version = "0.1.1";
+
+      src = fetchFromGitHub {
+        owner = "digitalocean";
+        repo = "prometheus-client-c";
+        rev = "v${version}";
+        sha256 = "0g69s24xwrv5974acshrhnp6i8rpby8c6bhz15m3d8kpgjw3cm8f";
+      };
+
+      nativeBuildInputs = [ cmake ];
+      inherit buildInputs;
+
+      # These patches will be in 0.1.2
+      patches = [
+        # Required so CMAKE_INSTALL_PREFIX is honored, otherwise it
+        # installs headers in /usr/include (absolute)
+        (
+          fetchpatch {
+            url = "https://github.com/digitalocean/prometheus-client-c/commit/5fcedeb506b7d47dd7bab35797f2c3f23db6fe10.patch";
+            sha256 = "10hzg8v5jcgxz224kdq0nha9vs78wz098b0ys7gig2iwgrg018fy";
+          }
+        )
+        (
+          fetchpatch {
+            url = "https://github.com/digitalocean/prometheus-client-c/commit/0c15e7e45ad0c3726593591fdd7d8f2fde845fe3.patch";
+            sha256 = "06899v1xz3lpsdxww4p3q7pv8nrymnibncdc472056znr5fidlp0";
+          }
+        )
+      ];
+
+      preConfigure = ''
+        cd ${subdir}
+      '';
+
+      meta = {
+        homepage = "https://github.com/digitalocean/prometheus-client-c/";
+        inherit description;
+        platforms = stdenv.lib.platforms.unix;
+        license = stdenv.lib.licenses.asl20;
+        maintainers = [ stdenv.lib.maintainers.cfsmp3 ];
+      };
+    };
+in
+rec {
+  libprom = build {
+    pname = "libprom";
+    subdir = "prom";
+    description = "A Prometheus Client in C";
+  };
+  libpromhttp = build {
+    pname = "libpromhttp";
+    subdir = "promhttp";
+    buildInputs = [ libmicrohttpd libprom ];
+    description = "A Prometheus HTTP Endpoint in C";
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/protobuf/3.12.nix b/nixpkgs/pkgs/development/libraries/protobuf/3.12.nix
index 00d9ec7f96fc..6ea64a023800 100644
--- a/nixpkgs/pkgs/development/libraries/protobuf/3.12.nix
+++ b/nixpkgs/pkgs/development/libraries/protobuf/3.12.nix
@@ -1,6 +1,6 @@
 { callPackage, ... }:
 
 callPackage ./generic-v3.nix {
-  version = "3.12.0";
-  sha256 = "0ac0v7mx2sf4hwf61074bgh2m1q0rs88c7gc6v910sd7cw7gql3a";
+  version = "3.12.4";
+  sha256 = "1gzvnd0g5hmx5ln39w7p4z4qphw87ksgsa1fgbpvi8d0asmwab2p";
 }
diff --git a/nixpkgs/pkgs/development/libraries/protobuf/3.13.nix b/nixpkgs/pkgs/development/libraries/protobuf/3.13.nix
new file mode 100644
index 000000000000..3e3740a7c501
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/protobuf/3.13.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... }:
+
+callPackage ./generic-v3.nix {
+  version = "3.13.0";
+  sha256 = "1nqsvi2yfr93kiwlinz8z7c68ilg1j75b2vcpzxzvripxx5h6xhd";
+}
diff --git a/nixpkgs/pkgs/development/libraries/protolock/default.nix b/nixpkgs/pkgs/development/libraries/protolock/default.nix
index 2bdaa3ab7b6f..b923898cc996 100644
--- a/nixpkgs/pkgs/development/libraries/protolock/default.nix
+++ b/nixpkgs/pkgs/development/libraries/protolock/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0ap1iwcapvvvmwgdc4zbsp8mglrhbswkdgm4dw8baw8qk0nlci6y";
 
+  doCheck = false;
+
   postInstall = ''
     rm $out/bin/plugin*
   '';
@@ -23,4 +25,4 @@ buildGoModule rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ groodt ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/libraries/qca-qt5/default.nix b/nixpkgs/pkgs/development/libraries/qca-qt5/default.nix
index 77f4e1b9053b..06de3f7c5693 100644
--- a/nixpkgs/pkgs/development/libraries/qca-qt5/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qca-qt5/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "qca-qt5";
-  version = "2.2.1";
+  version = "2.3.1";
 
   src = fetchurl {
     url = "http://download.kde.org/stable/qca/${version}/qca-${version}.tar.xz";
-    sha256 = "00kv1vsrc8fp556hm8s6yw3240vx3l4067q6vfxrb3gdwgcd45np";
+    sha256 = "sha256-wThREJq+/EYjNwmJ+uOnRb9rGss8KhOolYU5gj6XTks=";
   };
 
   buildInputs = [ openssl qtbase ];
diff --git a/nixpkgs/pkgs/development/libraries/qgnomeplatform/default.nix b/nixpkgs/pkgs/development/libraries/qgnomeplatform/default.nix
index a82d048b32b2..3ff642bbfb98 100644
--- a/nixpkgs/pkgs/development/libraries/qgnomeplatform/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qgnomeplatform/default.nix
@@ -1,6 +1,7 @@
 { mkDerivation
 , lib
 , fetchFromGitHub
+, nix-update-script
 , pkgconfig
 , gtk3
 , glib
@@ -52,7 +53,7 @@ mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/development/libraries/qoauth/default.nix b/nixpkgs/pkgs/development/libraries/qoauth/default.nix
index 85682e2c2a29..41e4b80d9c3a 100644
--- a/nixpkgs/pkgs/development/libraries/qoauth/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qoauth/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, qt5, qca2-qt5 }:
+{ stdenv, fetchurl, qtbase, qmake, qca-qt5 }:
 
 stdenv.mkDerivation {
   name = "qoauth-2.0.0";
@@ -15,15 +15,15 @@ stdenv.mkDerivation {
         -e '/features.path =/ s|$$\[QMAKE_MKSPECS\]|$$NIX_OUTPUT_DEV/mkspecs|'
   '';
 
-  buildInputs = [ qt5.qtbase qca2-qt5 ];
-  nativeBuildInputs = [ qt5.qmake ];
+  buildInputs = [ qtbase qca-qt5 ];
+  nativeBuildInputs = [ qmake ];
 
-  NIX_CFLAGS_COMPILE = "-I${qca2-qt5}/include/Qca-qt5/QtCrypto";
+  NIX_CFLAGS_COMPILE = "-I${qca-qt5}/include/Qca-qt5/QtCrypto";
   NIX_LDFLAGS = "-lqca-qt5";
 
   meta = with stdenv.lib; {
     description = "Qt library for OAuth authentication";
-    inherit (qt5.qtbase.meta) platforms;
+    inherit (qtbase.meta) platforms;
     license = licenses.lgpl21;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/qpdf/default.nix b/nixpkgs/pkgs/development/libraries/qpdf/default.nix
index b324bfed5aa7..9405e18edabd 100644
--- a/nixpkgs/pkgs/development/libraries/qpdf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qpdf/default.nix
@@ -1,24 +1,20 @@
-{ stdenv, fetchurl, libjpeg, zlib, perl }:
+{ stdenv, fetchFromGitHub, libjpeg, zlib, perl }:
 
-let version = "9.1.1";
-in
 stdenv.mkDerivation rec {
   pname = "qpdf";
-  inherit version;
+  version = "10.0.1";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/qpdf/qpdf/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0dj27wb9xg6pg95phbflfvy9rwxn1gh3kc4n175g0pf41r0zrim2";
+  src = fetchFromGitHub {
+    owner = "qpdf";
+    repo = "qpdf";
+    rev = "release-qpdf-${version}";
+    sha256 = "0g3rqf4wd1n9cms7ra1jnszsgw5bygv37jq2l20d8z5fajckhyyi";
   };
 
   nativeBuildInputs = [ perl ];
 
   buildInputs = [ zlib libjpeg ];
 
-  postPatch = ''
-    patchShebangs qpdf/fix-qdf
-  '';
-
   preCheck = ''
     patchShebangs qtest/bin/qtest-driver
   '';
diff --git a/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix b/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix
index 1c972e5440ce..3deea882bb6c 100644
--- a/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-4.x/4.8/default.nix
@@ -3,8 +3,7 @@
 , libXfixes, libXrandr, libSM, freetype, fontconfig, zlib, libjpeg, libpng
 , libmng, which, libGLU, openssl, dbus, cups, pkgconfig
 , libtiff, glib, icu, libmysqlclient, postgresql, sqlite, perl, coreutils, libXi
-, buildMultimedia ? stdenv.isLinux, alsaLib, gstreamer, gst-plugins-base
-, buildWebkit ? (stdenv.isLinux || stdenv.isDarwin)
+, alsaLib
 , libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , flashplayerFix ? false, gdk-pixbuf
 , gtkStyle ? stdenv.hostPlatform == stdenv.buildPlatform, gtk2
@@ -177,7 +176,7 @@ stdenv.mkDerivation rec {
     "-exceptions" "-xmlpatterns"
 
     "-make" "libs" "-make" "tools" "-make" "translations"
-    "-no-phonon" (mk buildWebkit "webkit") (mk buildMultimedia "multimedia") "-audio-backend"
+    "-no-phonon" "-no-webkit" "-no-multimedia" "-audio-backend"
   ]) ++ [
     "-${if demos then "" else "no"}make" "demos"
     "-${if examples then "" else "no"}make" "examples"
@@ -190,9 +189,7 @@ stdenv.mkDerivation rec {
     [ libXrender libXrandr libXinerama libXcursor libXext libXfixes libXv libXi
       libSM zlib libpng openssl dbus freetype fontconfig glib ]
         # Qt doesn't directly need GLU (just GL), but many apps use, it's small and doesn't remain a runtime-dep if not used
-    ++ lib.optional libGLSupported libGLU
-    ++ lib.optional ((buildWebkit || buildMultimedia) && stdenv.isLinux ) alsaLib
-    ++ lib.optionals (buildWebkit || buildMultimedia) [ gstreamer gst-plugins-base ];
+    ++ lib.optional libGLSupported libGLU;
 
   # The following libraries are only used in plugins
   buildInputs =
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix
index bdefca45a9af..fcceb6d6cf2b 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.12/default.nix
@@ -38,14 +38,14 @@ let
   mirror = "https://download.qt.io";
   srcs = import ./srcs.nix { inherit fetchurl; inherit mirror; } // {
     # Community port of the now unmaintained upstream qtwebkit.
-    qtwebkit = {
+    qtwebkit = rec {
       src = fetchFromGitHub {
-        owner = "annulen";
-        repo = "webkit";
-        rev = "4ce8ebc4094512b9916bfa5984065e95ac97c9d8";
-        sha256 = "05h1xnxzbf7sp3plw5dndsvpf6iigh0bi4vlj4svx0hkf1giakjf";
+        owner = "qtwebkit";
+        repo = "qtwebkit";
+        rev = "qtwebkit-${version}";
+        sha256 = "11lc5sk10d9cyg8jqkbgkqiap72b9rax7hy61nm90zw9749y2yfg";
       };
-      version = "5.212-alpha-01-26-2018";
+      version = "5.212.0-alpha4";
     };
   };
 
@@ -97,13 +97,21 @@ let
         url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/qtbug-77037-workaround.patch?h=packages/qt5-webengine&id=fc77d6b3d5ec74e421b58f199efceb2593cbf951";
         sha256 = "1gv733qfdn9746nbqqxzyjx4ijjqkkb7zb71nxax49nna5bri3am";
       })
-    ]
-      ++ optional stdenv.isDarwin ./qtwebengine-darwin-no-platform-check.patch;
-    qtwebkit = [ ./qtwebkit.patch ]
-      ++ optionals stdenv.isDarwin [
-        ./qtwebkit-darwin-no-readline.patch
-        ./qtwebkit-darwin-no-qos-classes.patch
-      ];
+    ] ++ optionals stdenv.isDarwin [
+      ./qtwebengine-darwin-no-platform-check.patch
+      ./qtwebengine-darwin-fix-failed-static-assertion.patch
+    ];
+    qtwebkit = [
+      (fetchpatch {
+        name = "qtwebkit-bison-3.7-build.patch";
+        url = "https://github.com/qtwebkit/qtwebkit/commit/d92b11fea65364fefa700249bd3340e0cd4c5b31.patch";
+        sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n";
+      })
+      ./qtwebkit.patch
+    ] ++ optionals stdenv.isDarwin [
+      ./qtwebkit-darwin-no-readline.patch
+      ./qtwebkit-darwin-no-qos-classes.patch
+    ];
     qttools = [ ./qttools.patch ];
   };
 
@@ -158,6 +166,7 @@ let
       qtquickcontrols2 = callPackage ../modules/qtquickcontrols2.nix {};
       qtscript = callPackage ../modules/qtscript.nix {};
       qtsensors = callPackage ../modules/qtsensors.nix {};
+      qtserialbus = callPackage ../modules/qtserialbus.nix {};
       qtserialport = callPackage ../modules/qtserialport.nix {};
       qtspeech = callPackage ../modules/qtspeech.nix {};
       qtsvg = callPackage ../modules/qtsvg.nix {};
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-fix-failed-static-assertion.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-fix-failed-static-assertion.patch
new file mode 100644
index 000000000000..510e25f56a4d
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-fix-failed-static-assertion.patch
@@ -0,0 +1,31 @@
+Fix a following build error:
+
+In file included from ../../3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm:7:
+../../3rdparty/chromium/base/bind.h:59:3: error: static_assert failed "Bound argument |i| of type |Arg| cannot be forwarded as |Unwrapped| to the bound functor, which declares it as |Param|."
+  static_assert(
+  ^
+../../3rdparty/chromium/base/bind.h:91:7: note: in instantiation of template class 'base::internal::AssertConstructible<1, long, long, const long &, NSError *>' requested here
+    : AssertConstructible<Ns, Args, std::decay_t<Args>, Unwrapped, Params>... {
+      ^
+../../3rdparty/chromium/base/bind.h:213:27: note: in instantiation of template class 'base::internal::AssertBindArgsValidity<std::__1::integer_sequence<unsigned long, 0, 1>, base::internal::TypeList<base::WeakPtr<device::BluetoothRemoteGattCharacteristicMac>, long>, base::internal::TypeList<device::BluetoothRemoteGattCharacteristicMac *, const long &>, base::internal::TypeList<device::BluetoothRemoteGattCharacteristicMac *, NSError *> >' requested here
+  static_assert(internal::AssertBindArgsValidity<
+                          ^
+../../3rdparty/chromium/base/bind.h:242:16: note: in instantiation of function template specialization 'base::BindRepeating<void (device::BluetoothRemoteGattCharacteristicMac::*)(NSError *), base::WeakPtr<device::BluetoothRemoteGattCharacteristicMac>, long>' requested here
+  return base::BindRepeating(std::forward<Functor>(functor),
+               ^
+../../3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm:211:15: note: in instantiation of function template specialization 'base::Bind<void (device::BluetoothRemoteGattCharacteristicMac::*)(NSError *), base::WeakPtr<device::BluetoothRemoteGattCharacteristicMac>, long>' requested here
+        base::Bind(&BluetoothRemoteGattCharacteristicMac::DidWriteValue,
+              ^
+
+Resurrected from https://github.com/NixOS/nixpkgs/blob/ddcf01bca6c7a7a7f096bec836a1e6a707ad473d/pkgs/development/libraries/qt-5/5.11/qtwebengine-clang-fix.patch because the same problem is present in 5.12 when compiling on macOS.
+
+--- a/src/3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm
++++ b/src/3rdparty/chromium/device/bluetooth/bluetooth_remote_gatt_characteristic_mac.mm
+@@ -209,7 +209,7 @@ void BluetoothRemoteGattCharacteristicMac::WriteRemoteCharacteristic(
+     base::ThreadTaskRunnerHandle::Get()->PostTask(
+         FROM_HERE,
+         base::Bind(&BluetoothRemoteGattCharacteristicMac::DidWriteValue,
+-                   weak_ptr_factory_.GetWeakPtr(), nil));
++                   weak_ptr_factory_.GetWeakPtr(), nullptr));
+   }
+ }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch
index 546e753144d0..8ed3fe59a5a2 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.12/qtwebengine-darwin-no-platform-check.patch
@@ -1,4 +1,18 @@
+diff --git a/configure.pri b/configure.pri
+index 897bea54..6f834c20 100644
+--- a/configure.pri
++++ b/configure.pri
+@@ -269,7 +269,7 @@ defineReplace(webEngineGetMacOSVersion) {
+ }
+ 
+ defineReplace(webEngineGetMacOSSDKVersion) {
+-    value = $$system("/usr/bin/xcodebuild -sdk $$QMAKE_MAC_SDK -version ProductVersion 2>/dev/null")
++    value = $$system("xcrun --show-sdk-version")
+     return($$value)
+ }
+ 
 diff --git a/mkspecs/features/platform.prf b/mkspecs/features/platform.prf
+index 35eb6b89..7eed640a 100644
 --- a/mkspecs/features/platform.prf
 +++ b/mkspecs/features/platform.prf
 @@ -40,8 +40,6 @@ defineTest(isPlatformSupported) {
@@ -19,15 +33,39 @@ diff --git a/mkspecs/features/platform.prf b/mkspecs/features/platform.prf
      }
    } else {
      skipBuild("Unknown platform. Qt WebEngine only supports Linux, Windows, and macOS.")
+@@ -111,7 +107,7 @@ defineTest(isMinOSXSDKVersion) {
+     requested_minor = $$2
+     requested_patch = $$3
+     isEmpty(requested_patch): requested_patch = 0
+-    WEBENGINE_OSX_SDK_PRODUCT_VERSION = $$system("/usr/bin/xcodebuild -sdk $$QMAKE_MAC_SDK -version ProductVersion 2>/dev/null")
++    WEBENGINE_OSX_SDK_PRODUCT_VERSION = $$system("xcrun --show-sdk-version")
+     export(WEBENGINE_OSX_SDK_PRODUCT_VERSION)
+     isEmpty(WEBENGINE_OSX_SDK_PRODUCT_VERSION) {
+         skipBuild("Could not resolve SDK product version for \'$$QMAKE_MAC_SDK\'.")
 diff --git a/src/core/config/mac_osx.pri b/src/core/config/mac_osx.pri
+index 4426901c..3aa6057e 100644
 --- a/src/core/config/mac_osx.pri
 +++ b/src/core/config/mac_osx.pri
-@@ -5,8 +5,6 @@ load(functions)
+@@ -5,16 +5,16 @@ load(functions)
  # otherwise query for it.
  QMAKE_MAC_SDK_VERSION = $$eval(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.SDKVersion)
  isEmpty(QMAKE_MAC_SDK_VERSION) {
 -     QMAKE_MAC_SDK_VERSION = $$system("/usr/bin/xcodebuild -sdk $${QMAKE_MAC_SDK} -version SDKVersion 2>/dev/null")
--     isEmpty(QMAKE_MAC_SDK_VERSION): error("Could not resolve SDK version for \'$${QMAKE_MAC_SDK}\'")
++     QMAKE_MAC_SDK_VERSION = $$system("xcrun --show-sdk-version")
+      isEmpty(QMAKE_MAC_SDK_VERSION): error("Could not resolve SDK version for \'$${QMAKE_MAC_SDK}\'")
  }
-
+ 
  QMAKE_CLANG_DIR = "/usr"
+-QMAKE_CLANG_PATH = $$eval(QMAKE_MAC_SDK.macx-clang.$${QMAKE_MAC_SDK}.QMAKE_CXX)
+-!isEmpty(QMAKE_CLANG_PATH) {
+-    clang_dir = $$clean_path("$$dirname(QMAKE_CLANG_PATH)/../")
+-    exists($$clang_dir): QMAKE_CLANG_DIR = $$clang_dir
+-}
++# QMAKE_CLANG_PATH = $$eval(QMAKE_MAC_SDK.macx-clang.$${QMAKE_MAC_SDK}.QMAKE_CXX)
++# !isEmpty(QMAKE_CLANG_PATH) {
++#     clang_dir = $$clean_path("$$dirname(QMAKE_CLANG_PATH)/../")
++#     exists($$clang_dir): QMAKE_CLANG_DIR = $$clang_dir
++# }
+ 
+ QMAKE_CLANG_PATH = "$${QMAKE_CLANG_DIR}/bin/clang++"
+ message("Using clang++ from $${QMAKE_CLANG_PATH}")
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix
new file mode 100644
index 000000000000..469157a5f727
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/default.nix
@@ -0,0 +1,182 @@
+/*
+
+# Updates
+
+Before a major version update, make a copy of this directory. (We like to
+keep the old version around for a short time after major updates.) Add a
+top-level attribute to `top-level/all-packages.nix`.
+
+1. Update the URL in `pkgs/development/libraries/qt-5/$VERSION/fetch.sh`.
+2. From the top of the Nixpkgs tree, run
+   `./maintainers/scripts/fetch-kde-qt.sh > pkgs/development/libraries/qt-5/$VERSION/srcs.nix`.
+3. Check that the new packages build correctly.
+4. Commit the changes and open a pull request.
+
+*/
+
+{
+  newScope,
+  stdenv, fetchurl, fetchpatch, fetchFromGitHub, makeSetupHook, makeWrapper,
+  bison, cups ? null, harfbuzz, libGL, perl,
+  gstreamer, gst-plugins-base, gtk3, dconf,
+  llvmPackages_5,
+
+  # options
+  developerBuild ? false,
+  decryptSslTraffic ? false,
+  debug ? false,
+}:
+
+with stdenv.lib;
+
+let
+
+  qtCompatVersion = srcs.qtbase.version;
+
+  stdenvActual = if stdenv.cc.isClang then llvmPackages_5.stdenv else stdenv;
+
+  mirror = "https://download.qt.io";
+  srcs = import ./srcs.nix { inherit fetchurl; inherit mirror; } // {
+    # qtwebkit does not have an official release tarball on the qt mirror and is
+    # mostly maintained by the community.
+    qtwebkit = rec {
+      src = fetchFromGitHub {
+        owner = "qt";
+        repo = "qtwebkit";
+        rev = "v${version}";
+        sha256 = "0x8rng96h19xirn7qkz3lydal6v4vn00bcl0s3brz36dfs0z8wpg";
+      };
+      version = "5.212.0-alpha4";
+    };
+  };
+
+  patches = {
+    qtbase =
+      optionals stdenv.isDarwin [
+        ./qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
+        ./qtbase.patch.d/0002-qtbase-mac.patch
+      ]
+      ++ [
+        ./qtbase.patch.d/0003-qtbase-mkspecs.patch
+        ./qtbase.patch.d/0004-qtbase-replace-libdir.patch
+        ./qtbase.patch.d/0005-qtbase-cmake.patch
+        ./qtbase.patch.d/0006-qtbase-gtk3.patch
+        ./qtbase.patch.d/0007-qtbase-xcursor.patch
+        ./qtbase.patch.d/0008-qtbase-tzdir.patch
+        ./qtbase.patch.d/0009-qtbase-qtpluginpath.patch
+        ./qtbase.patch.d/0010-qtbase-assert.patch
+        ./qtbase.patch.d/0011-fix-header_module.patch
+      ];
+    qtdeclarative = [ ./qtdeclarative.patch ];
+    qtscript = [ ./qtscript.patch ];
+    qtserialport = [ ./qtserialport.patch ];
+    qtwebengine = [ ]
+      ++ optional stdenv.isDarwin ./qtwebengine-darwin-no-platform-check.patch;
+    qtwebkit = [
+      (fetchpatch {
+        name = "qtwebkit-bison-3.7-build.patch";
+        url = "https://github.com/qtwebkit/qtwebkit/commit/d92b11fea65364fefa700249bd3340e0cd4c5b31.patch";
+        sha256 = "0h8ymfnwgkjkwaankr3iifiscsvngqpwb91yygndx344qdiw9y0n";
+      })
+      ./qtwebkit.patch
+    ] ++ optionals stdenv.isDarwin [
+      ./qtwebkit-darwin-no-readline.patch
+      ./qtwebkit-darwin-no-qos-classes.patch
+    ];
+    qttools = [ ./qttools.patch ];
+  };
+
+  qtModule =
+    import ../qtModule.nix
+    {
+      inherit perl;
+      inherit (stdenv) lib;
+      # Use a variant of mkDerivation that does not include wrapQtApplications
+      # to avoid cyclic dependencies between Qt modules.
+      mkDerivation =
+        import ../mkDerivation.nix
+        { inherit (stdenv) lib; inherit debug; wrapQtAppsHook = null; }
+        stdenvActual.mkDerivation;
+    }
+    { inherit self srcs patches; };
+
+  addPackages = self: with self;
+    let
+      callPackage = self.newScope { inherit qtCompatVersion qtModule srcs; };
+    in {
+
+      mkDerivationWith =
+        import ../mkDerivation.nix
+        { inherit (stdenv) lib; inherit debug; inherit (self) wrapQtAppsHook; };
+
+      mkDerivation = mkDerivationWith stdenvActual.mkDerivation;
+
+      qtbase = callPackage ../modules/qtbase.nix {
+        inherit (srcs.qtbase) src version;
+        patches = patches.qtbase;
+        inherit bison cups harfbuzz libGL;
+        withGtk3 = true; inherit dconf gtk3;
+        inherit developerBuild decryptSslTraffic;
+      };
+
+      qtcharts = callPackage ../modules/qtcharts.nix {};
+      qtconnectivity = callPackage ../modules/qtconnectivity.nix {};
+      qtdeclarative = callPackage ../modules/qtdeclarative.nix {};
+      qtdoc = callPackage ../modules/qtdoc.nix {};
+      qtgraphicaleffects = callPackage ../modules/qtgraphicaleffects.nix {};
+      qtimageformats = callPackage ../modules/qtimageformats.nix {};
+      qtlocation = callPackage ../modules/qtlocation.nix {};
+      qtmacextras = callPackage ../modules/qtmacextras.nix {};
+      qtmultimedia = callPackage ../modules/qtmultimedia.nix {
+        inherit gstreamer gst-plugins-base;
+      };
+      qtnetworkauth = callPackage ../modules/qtnetworkauth.nix {};
+      qtquick1 = null;
+      qtquickcontrols = callPackage ../modules/qtquickcontrols.nix {};
+      qtquickcontrols2 = callPackage ../modules/qtquickcontrols2.nix {};
+      qtscript = callPackage ../modules/qtscript.nix {};
+      qtsensors = callPackage ../modules/qtsensors.nix {};
+      qtserialport = callPackage ../modules/qtserialport.nix {};
+      qtspeech = callPackage ../modules/qtspeech.nix {};
+      qtsvg = callPackage ../modules/qtsvg.nix {};
+      qtscxml = callPackage ../modules/qtscxml.nix {};
+      qttools = callPackage ../modules/qttools.nix {};
+      qttranslations = callPackage ../modules/qttranslations.nix {};
+      qtvirtualkeyboard = callPackage ../modules/qtvirtualkeyboard.nix {};
+      qtwayland = callPackage ../modules/qtwayland.nix {};
+      qtwebchannel = callPackage ../modules/qtwebchannel.nix {};
+      qtwebengine = callPackage ../modules/qtwebengine.nix {};
+      qtwebglplugin = callPackage ../modules/qtwebglplugin.nix {};
+      qtwebkit = callPackage ../modules/qtwebkit.nix {};
+      qtwebsockets = callPackage ../modules/qtwebsockets.nix {};
+      qtwebview = callPackage ../modules/qtwebview.nix {};
+      qtx11extras = callPackage ../modules/qtx11extras.nix {};
+      qtxmlpatterns = callPackage ../modules/qtxmlpatterns.nix {};
+
+      env = callPackage ../qt-env.nix {};
+      full = env "qt-full-${qtbase.version}" ([
+        qtcharts qtconnectivity qtdeclarative qtdoc qtgraphicaleffects
+        qtimageformats qtlocation qtmultimedia qtquickcontrols qtquickcontrols2
+        qtscript qtsensors qtserialport qtsvg qttools qttranslations
+        qtvirtualkeyboard qtwebchannel qtwebengine qtwebkit qtwebsockets
+        qtwebview qtx11extras qtxmlpatterns
+      ] ++ optional (!stdenv.isDarwin) qtwayland
+        ++ optional (stdenv.isDarwin) qtmacextras);
+
+      qmake = makeSetupHook {
+        deps = [ self.qtbase.dev ];
+        substitutions = {
+          fix_qmake_libtool = ../hooks/fix-qmake-libtool.sh;
+        };
+      } ../hooks/qmake-hook.sh;
+
+      wrapQtAppsHook = makeSetupHook {
+        deps =
+          [ self.qtbase.dev makeWrapper ]
+          ++ optional stdenv.isLinux self.qtwayland.dev;
+      } ../hooks/wrap-qt-apps-hook.sh;
+    };
+
+   self = makeScope newScope addPackages;
+
+in self
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/fetch.sh b/nixpkgs/pkgs/development/libraries/qt-5/5.14/fetch.sh
new file mode 100644
index 000000000000..2d266b529776
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/fetch.sh
@@ -0,0 +1 @@
+WGET_ARGS=( http://download.qt.io/official_releases/qt/5.14/5.14.2/submodules/ )
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
new file mode 100644
index 000000000000..0951b6646ab7
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
@@ -0,0 +1,411 @@
+From a5848991db270ffdd9f2fa05220475bb3194d12f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
+Date: Fri, 3 Apr 2020 21:07:58 +0200
+Subject: [PATCH 01/10] qtbase-mkspecs-mac
+
+---
+ mkspecs/common/mac.conf               |   2 +-
+ mkspecs/features/mac/default_post.prf | 206 --------------------------
+ mkspecs/features/mac/default_pre.prf  |  58 --------
+ mkspecs/features/mac/sdk.mk           |  25 ----
+ mkspecs/features/mac/sdk.prf          |  61 --------
+ 5 files changed, 1 insertion(+), 351 deletions(-)
+ delete mode 100644 mkspecs/features/mac/sdk.mk
+ delete mode 100644 mkspecs/features/mac/sdk.prf
+
+diff --git a/mkspecs/common/mac.conf b/mkspecs/common/mac.conf
+index 61bea952b2..9909dae726 100644
+--- a/mkspecs/common/mac.conf
++++ b/mkspecs/common/mac.conf
+@@ -23,7 +23,7 @@ QMAKE_INCDIR_OPENGL     = \
+ 
+ QMAKE_FIX_RPATH         = install_name_tool -id
+ 
+-QMAKE_LFLAGS_RPATH      = -Wl,-rpath,
++QMAKE_LFLAGS_RPATH      =
+ QMAKE_LFLAGS_GCSECTIONS = -Wl,-dead_strip
+ 
+ QMAKE_LFLAGS_REL_RPATH  =
+diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf
+index ba163efc18..b80ec1e801 100644
+--- a/mkspecs/features/mac/default_post.prf
++++ b/mkspecs/features/mac/default_post.prf
+@@ -68,212 +68,6 @@ qt {
+     }
+ }
+ 
+-# Add the same default rpaths as Xcode does for new projects.
+-# This is especially important for iOS/tvOS/watchOS where no other option is possible.
+-!no_default_rpath {
+-    uikit: QMAKE_RPATHDIR += @executable_path/Frameworks
+-    else: QMAKE_RPATHDIR += @executable_path/../Frameworks
+-    equals(TEMPLATE, lib):!plugin:lib_bundle: QMAKE_RPATHDIR += @loader_path/Frameworks
+-}
+-
+-# Don't pass -headerpad_max_install_names when using Bitcode.
+-# In that case the linker emits a warning stating that the flag is ignored when
+-# used with bitcode, for reasons that cannot be determined (rdar://problem/20748962).
+-# Using this flag is also unnecessary in practice on UIKit platforms since they
+-# are sandboxed, and only UIKit platforms support bitcode to begin with.
+-!bitcode: QMAKE_LFLAGS += $$QMAKE_LFLAGS_HEADERPAD
+-
+-app_extension_api_only {
+-    QMAKE_CFLAGS              += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
+-    QMAKE_CXXFLAGS            += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
+-    QMAKE_CXXFLAGS_PRECOMPILE += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
+-    QMAKE_LFLAGS              += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
+-}
+-
+-macx-xcode {
+-    qmake_pkginfo_typeinfo.name = QMAKE_PKGINFO_TYPEINFO
+-    !isEmpty(QMAKE_PKGINFO_TYPEINFO): \
+-        qmake_pkginfo_typeinfo.value = $$QMAKE_PKGINFO_TYPEINFO
+-    else: \
+-        qmake_pkginfo_typeinfo.value = "????"
+-    QMAKE_MAC_XCODE_SETTINGS += qmake_pkginfo_typeinfo
+-
+-    bundle_version = $$VERSION
+-    isEmpty(bundle_version): bundle_version = 1.0.0
+-
+-    l = $$split(bundle_version, '.') 0 0  # make sure there are at least three
+-    VER_MAJ = $$member(l, 0, 0)
+-    VER_MIN = $$member(l, 1, 1)
+-    VER_PAT = $$member(l, 2, 2)
+-    unset(l)
+-
+-    qmake_full_version.name = QMAKE_FULL_VERSION
+-    qmake_full_version.value = $${VER_MAJ}.$${VER_MIN}.$${VER_PAT}
+-    QMAKE_MAC_XCODE_SETTINGS += qmake_full_version
+-
+-    qmake_short_version.name = QMAKE_SHORT_VERSION
+-    qmake_short_version.value = $${VER_MAJ}.$${VER_MIN}
+-    QMAKE_MAC_XCODE_SETTINGS += qmake_short_version
+-
+-    !isEmpty(QMAKE_XCODE_DEBUG_INFORMATION_FORMAT) {
+-        debug_information_format.name = DEBUG_INFORMATION_FORMAT
+-        debug_information_format.value = $$QMAKE_XCODE_DEBUG_INFORMATION_FORMAT
+-        debug_information_format.build = debug
+-        QMAKE_MAC_XCODE_SETTINGS += debug_information_format
+-    }
+-
+-    QMAKE_XCODE_ARCHS =
+-
+-    arch_device.name = "ARCHS[sdk=$${device.sdk}*]"
+-    arch_device.value = $$QMAKE_APPLE_DEVICE_ARCHS
+-    QMAKE_XCODE_ARCHS += $$QMAKE_APPLE_DEVICE_ARCHS
+-    QMAKE_MAC_XCODE_SETTINGS += arch_device
+-
+-    simulator {
+-        arch_simulator.name = "ARCHS[sdk=$${simulator.sdk}*]"
+-        arch_simulator.value = $$QMAKE_APPLE_SIMULATOR_ARCHS
+-        QMAKE_XCODE_ARCHS += $$QMAKE_APPLE_SIMULATOR_ARCHS
+-        QMAKE_MAC_XCODE_SETTINGS += arch_simulator
+-    }
+-
+-    only_active_arch.name = ONLY_ACTIVE_ARCH
+-    only_active_arch.value = YES
+-    only_active_arch.build = debug
+-    QMAKE_MAC_XCODE_SETTINGS += only_active_arch
+-} else {
+-    device|!simulator: VALID_DEVICE_ARCHS = $$QMAKE_APPLE_DEVICE_ARCHS
+-    simulator: VALID_SIMULATOR_ARCHS = $$QMAKE_APPLE_SIMULATOR_ARCHS
+-    VALID_ARCHS = $$VALID_DEVICE_ARCHS $$VALID_SIMULATOR_ARCHS
+-
+-    isEmpty(VALID_ARCHS): \
+-        error("QMAKE_APPLE_DEVICE_ARCHS or QMAKE_APPLE_SIMULATOR_ARCHS must contain at least one architecture")
+-
+-    single_arch: VALID_ARCHS = $$first(VALID_ARCHS)
+-
+-    ACTIVE_ARCHS = $(filter $(EXPORT_VALID_ARCHS), $(ARCHS))
+-    ARCH_ARGS = $(foreach arch, $(if $(EXPORT_ACTIVE_ARCHS), $(EXPORT_ACTIVE_ARCHS), $(EXPORT_VALID_ARCHS)), -arch $(arch))
+-
+-    QMAKE_EXTRA_VARIABLES += VALID_ARCHS ACTIVE_ARCHS ARCH_ARGS
+-
+-    arch_flags = $(EXPORT_ARCH_ARGS)
+-
+-    QMAKE_CFLAGS += $$arch_flags
+-    QMAKE_CXXFLAGS += $$arch_flags
+-    QMAKE_LFLAGS += $$arch_flags
+-
+-    QMAKE_PCH_ARCHS = $$VALID_ARCHS
+-
+-    macos: deployment_target = $$QMAKE_MACOSX_DEPLOYMENT_TARGET
+-    ios: deployment_target = $$QMAKE_IOS_DEPLOYMENT_TARGET
+-    tvos: deployment_target = $$QMAKE_TVOS_DEPLOYMENT_TARGET
+-    watchos: deployment_target = $$QMAKE_WATCHOS_DEPLOYMENT_TARGET
+-
+-    # If we're doing a simulator and device build, device and simulator
+-    # architectures use different paths and flags for the sysroot and
+-    # deployment target switch, so we must multiplex them across multiple
+-    # architectures using -Xarch. Otherwise we fall back to the simple path.
+-    # This is not strictly necessary, but results in cleaner command lines
+-    # and makes it easier for people to override EXPORT_VALID_ARCHS to limit
+-    # individual rules to a different set of architecture(s) from the overall
+-    # build (such as machtest in QtCore).
+-    simulator:device {
+-        QMAKE_XARCH_CFLAGS =
+-        QMAKE_XARCH_LFLAGS =
+-        QMAKE_EXTRA_VARIABLES += QMAKE_XARCH_CFLAGS QMAKE_XARCH_LFLAGS
+-
+-        for (arch, VALID_ARCHS) {
+-            contains(VALID_SIMULATOR_ARCHS, $$arch) {
+-                sdk = $$simulator.sdk
+-                version_identifier = $$simulator.deployment_identifier
+-            } else {
+-                sdk = $$device.sdk
+-                version_identifier = $$device.deployment_identifier
+-            }
+-
+-            version_min_flags = \
+-                -Xarch_$${arch} \
+-                -m$${version_identifier}-version-min=$$deployment_target
+-            QMAKE_XARCH_CFLAGS_$${arch} = $$version_min_flags \
+-                -Xarch_$${arch} \
+-                -isysroot$$xcodeSDKInfo(Path, $$sdk)
+-            QMAKE_XARCH_LFLAGS_$${arch} = $$version_min_flags \
+-                -Xarch_$${arch} \
+-                -Wl,-syslibroot,$$xcodeSDKInfo(Path, $$sdk)
+-
+-            QMAKE_XARCH_CFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS_$${arch})
+-            QMAKE_XARCH_LFLAGS += $(EXPORT_QMAKE_XARCH_LFLAGS_$${arch})
+-
+-            QMAKE_EXTRA_VARIABLES += \
+-                QMAKE_XARCH_CFLAGS_$${arch} \
+-                QMAKE_XARCH_LFLAGS_$${arch}
+-        }
+-
+-        QMAKE_CFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS)
+-        QMAKE_CXXFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS)
+-        QMAKE_LFLAGS += $(EXPORT_QMAKE_XARCH_LFLAGS)
+-    } else {
+-        simulator {
+-            version_identifier = $$simulator.deployment_identifier
+-            sysroot_path  = $$xcodeSDKInfo(Path, $$simulator.sdk)
+-        } else {
+-            version_identifier = $$device.deployment_identifier
+-            sysroot_path  = $$xcodeSDKInfo(Path, $$device.sdk)
+-        }
+-        version_min_flag = -m$${version_identifier}-version-min=$$deployment_target
+-        QMAKE_CFLAGS += -isysroot $$sysroot_path $$version_min_flag
+-        QMAKE_CXXFLAGS += -isysroot $$sysroot_path $$version_min_flag
+-        QMAKE_LFLAGS += -Wl,-syslibroot,$$sysroot_path $$version_min_flag
+-    }
+-
+-    # Enable precompiled headers for multiple architectures
+-    QMAKE_CFLAGS_USE_PRECOMPILE =
+-    for (arch, VALID_ARCHS) {
+-        icc_pch_style: \
+-            use_flag = "-pch-use "
+-        else: \
+-            use_flag = -include
+-
+-        # Only use Xarch with multi-arch, as the option confuses ccache
+-        count(VALID_ARCHS, 1, greaterThan): \
+-            QMAKE_CFLAGS_USE_PRECOMPILE += \
+-                -Xarch_$${arch}
+-
+-        QMAKE_CFLAGS_USE_PRECOMPILE += \
+-            $${use_flag}${QMAKE_PCH_OUTPUT_$${arch}}
+-    }
+-    icc_pch_style {
+-        QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE -include ${QMAKE_PCH_INPUT}
+-        QMAKE_CFLAGS_USE_PRECOMPILE =
+-    } else {
+-        QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
+-        QMAKE_OBJCFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
+-        QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
+-    }
+-
+-    QMAKE_PCH_OUTPUT_EXT = _${QMAKE_PCH_ARCH}$${QMAKE_PCH_OUTPUT_EXT}
+-}
+-
+-!equals(sdk_version, $$QMAKE_MAC_SDK_VERSION) {
+-    # Explicit SDK version has been set, respect that
+-    QMAKE_LFLAGS += -Wl,-sdk_version -Wl,$$sdk_version
+-}
+-
+-cache(QMAKE_XCODE_DEVELOPER_PATH, stash)
+-!isEmpty(QMAKE_XCODE_VERSION): \
+-    cache(QMAKE_XCODE_VERSION, stash)
+-
+-QMAKE_XCODE_LIBRARY_SUFFIX = $$qtPlatformTargetSuffix()
+-
+-xcode_product_bundle_identifier_setting.name = PRODUCT_BUNDLE_IDENTIFIER
+-xcode_product_bundle_identifier_setting.value = $$QMAKE_TARGET_BUNDLE_PREFIX
+-isEmpty(xcode_product_bundle_identifier_setting.value): \
+-    xcode_product_bundle_identifier_setting.value = "com.yourcompany"
+-xcode_product_bundle_target = $$QMAKE_BUNDLE
+-isEmpty(xcode_product_bundle_target): \
+-    xcode_product_bundle_target = ${PRODUCT_NAME:rfc1034identifier}
+-xcode_product_bundle_identifier_setting.value = "$${xcode_product_bundle_identifier_setting.value}.$${xcode_product_bundle_target}"
+-QMAKE_MAC_XCODE_SETTINGS += xcode_product_bundle_identifier_setting
+-
+ !macx-xcode {
+     generate_xcode_project.commands = @$(QMAKE) -spec macx-xcode \"$(EXPORT__PRO_FILE_)\" $$QMAKE_ARGS
+     generate_xcode_project.target = xcodeproj
+diff --git a/mkspecs/features/mac/default_pre.prf b/mkspecs/features/mac/default_pre.prf
+index e3534561a5..3b01424e67 100644
+--- a/mkspecs/features/mac/default_pre.prf
++++ b/mkspecs/features/mac/default_pre.prf
+@@ -1,60 +1,2 @@
+ CONFIG = asset_catalogs rez $$CONFIG
+ load(default_pre)
+-
+-isEmpty(QMAKE_XCODE_DEVELOPER_PATH) {
+-    # Get path of Xcode's Developer directory
+-    QMAKE_XCODE_DEVELOPER_PATH = $$system("/usr/bin/xcode-select --print-path 2>/dev/null")
+-    isEmpty(QMAKE_XCODE_DEVELOPER_PATH): \
+-        error("Xcode path is not set. Please use xcode-select to choose Xcode installation path.")
+-
+-    # Make sure Xcode path is valid
+-    !exists($$QMAKE_XCODE_DEVELOPER_PATH): \
+-        error("Xcode is not installed in $${QMAKE_XCODE_DEVELOPER_PATH}. Please use xcode-select to choose Xcode installation path.")
+-}
+-
+-isEmpty(QMAKE_XCODEBUILD_PATH): \
+-    QMAKE_XCODEBUILD_PATH = $$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null")
+-
+-!isEmpty(QMAKE_XCODEBUILD_PATH) {
+-    # Make sure Xcode is set up properly
+-    !system("/usr/bin/xcrun xcodebuild -license check 2>/dev/null"): \
+-        error("Xcode not set up properly. You need to confirm the license agreement by running 'sudo xcrun xcodebuild -license accept'.")
+-
+-    isEmpty(QMAKE_XCODE_VERSION) {
+-        # Extract Xcode version using xcodebuild
+-        xcode_version = $$system("/usr/bin/xcrun xcodebuild -version")
+-        QMAKE_XCODE_VERSION = $$member(xcode_version, 1)
+-        isEmpty(QMAKE_XCODE_VERSION): error("Could not resolve Xcode version.")
+-        unset(xcode_version)
+-    }
+-}
+-
+-isEmpty(QMAKE_TARGET_BUNDLE_PREFIX) {
+-    QMAKE_XCODE_PREFERENCES_FILE = $$(HOME)/Library/Preferences/com.apple.dt.Xcode.plist
+-    exists($$QMAKE_XCODE_PREFERENCES_FILE): \
+-        QMAKE_TARGET_BUNDLE_PREFIX = $$system("/usr/libexec/PlistBuddy -c 'print IDETemplateOptions:bundleIdentifierPrefix' $$QMAKE_XCODE_PREFERENCES_FILE 2>/dev/null")
+-
+-    !isEmpty(_QMAKE_CACHE_):!isEmpty(QMAKE_TARGET_BUNDLE_PREFIX): \
+-        cache(QMAKE_TARGET_BUNDLE_PREFIX)
+-}
+-
+-QMAKE_ASSET_CATALOGS_APP_ICON = AppIcon
+-
+-# Make the default debug info format for static debug builds
+-# DWARF instead of DWARF with dSYM. This cuts down build times
+-# for application debug builds significantly, as Xcode doesn't
+-# have to pull out all the DWARF info from the Qt static libs
+-# and put it into a dSYM file. We don't need that dSYM file in
+-# the first place, since the information is available in the
+-# object files inside the archives (static libraries).
+-macx-xcode:qtConfig(static): \
+-    QMAKE_XCODE_DEBUG_INFORMATION_FORMAT = dwarf
+-
+-# This variable is used by the xcode_dynamic_library_suffix
+-# feature, which allows Xcode to choose the Qt libraries to link to
+-# at build time, depending on the current Xcode SDK and configuration.
+-QMAKE_XCODE_LIBRARY_SUFFIX_SETTING = QT_LIBRARY_SUFFIX
+-
+-xcode_copy_phase_strip_setting.name = COPY_PHASE_STRIP
+-xcode_copy_phase_strip_setting.value = NO
+-QMAKE_MAC_XCODE_SETTINGS += xcode_copy_phase_strip_setting
+diff --git a/mkspecs/features/mac/sdk.mk b/mkspecs/features/mac/sdk.mk
+deleted file mode 100644
+index c40f58c987..0000000000
+--- a/mkspecs/features/mac/sdk.mk
++++ /dev/null
+@@ -1,25 +0,0 @@
+-
+-ifeq ($(QT_MAC_SDK_NO_VERSION_CHECK),)
+-    CHECK_SDK_COMMAND = /usr/bin/xcrun --sdk $(EXPORT_QMAKE_MAC_SDK) -show-sdk-version 2>&1
+-    CURRENT_MAC_SDK_VERSION := $(shell DEVELOPER_DIR=$(EXPORT_QMAKE_XCODE_DEVELOPER_PATH) $(CHECK_SDK_COMMAND))
+-    ifneq ($(CURRENT_MAC_SDK_VERSION),$(EXPORT_QMAKE_MAC_SDK_VERSION))
+-        # We don't want to complain about out of date SDK unless the target needs to be remade.
+-        # This covers use-cases such as running 'make check' after moving the build to a
+-        # computer without Xcode or with a different Xcode version.
+-        TARGET_UP_TO_DATE := $(shell QT_MAC_SDK_NO_VERSION_CHECK=1 $(MAKE) --question $(QMAKE_TARGET) && echo 1 || echo 0)
+-        ifeq ($(TARGET_UP_TO_DATE),0)
+-            ifneq ($(findstring missing DEVELOPER_DIR path,$(CURRENT_MAC_SDK_VERSION)),)
+-                $(info The developer dir $(EXPORT_QMAKE_XCODE_DEVELOPER_PATH) is no longer valid.)
+-            else ifneq ($(findstring SDK "$(EXPORT_QMAKE_MAC_SDK)" cannot be located,$(CURRENT_MAC_SDK_VERSION)),)
+-                $(info The developer dir $(EXPORT_QMAKE_XCODE_DEVELOPER_PATH) no longer contains the $(EXPORT_QMAKE_MAC_SDK_VERSION) platform SDK.)
+-            else ifneq ($(CURRENT_MAC_SDK_VERSION),)
+-                $(info The platform SDK has been changed from version $(EXPORT_QMAKE_MAC_SDK_VERSION) to version $(CURRENT_MAC_SDK_VERSION).)
+-            else
+-                $(info Unknown error resolving current platform SDK version.)
+-            endif
+-            $(info This requires a fresh build. Please wipe the build directory completely,)
+-            $(info including any .qmake.stash and .qmake.cache files generated by qmake.)
+-            $(error ^)
+-        endif
+-    endif
+-endif
+diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf
+deleted file mode 100644
+index 3a9c2778bb..0000000000
+--- a/mkspecs/features/mac/sdk.prf
++++ /dev/null
+@@ -1,61 +0,0 @@
+-
+-isEmpty(QMAKE_MAC_SDK): \
+-    error("QMAKE_MAC_SDK must be set when using CONFIG += sdk.")
+-
+-contains(QMAKE_MAC_SDK, .*/.*): \
+-    error("QMAKE_MAC_SDK can only contain short-form SDK names (eg. macosx, iphoneos)")
+-
+-defineReplace(xcodeSDKInfo) {
+-    info = $$1
+-    equals(info, "Path"): \
+-        infoarg = --show-sdk-path
+-    equals(info, "PlatformPath"): \
+-        infoarg = --show-sdk-platform-path
+-    equals(info, "SDKVersion"): \
+-        infoarg = --show-sdk-version
+-    sdk = $$2
+-    isEmpty(sdk): \
+-        sdk = $$QMAKE_MAC_SDK
+-
+-    isEmpty(QMAKE_MAC_SDK.$${sdk}.$${info}) {
+-        QMAKE_MAC_SDK.$${sdk}.$${info} = $$system("/usr/bin/xcrun --sdk $$sdk $$infoarg 2>/dev/null")
+-        # --show-sdk-platform-path won't work for Command Line Tools; this is fine
+-        # only used by the XCTest backend to testlib
+-        isEmpty(QMAKE_MAC_SDK.$${sdk}.$${info}):if(!isEmpty(QMAKE_XCODEBUILD_PATH)|!equals(infoarg, "--show-sdk-platform-path")): \
+-            error("Could not resolve SDK $$info for \'$$sdk\' using $$infoarg")
+-        cache(QMAKE_MAC_SDK.$${sdk}.$${info}, set stash, QMAKE_MAC_SDK.$${sdk}.$${info})
+-    }
+-
+-    return($$eval(QMAKE_MAC_SDK.$${sdk}.$${info}))
+-}
+-
+-QMAKE_MAC_SDK_PATH = $$xcodeSDKInfo(Path)
+-QMAKE_MAC_SDK_PLATFORM_PATH = $$xcodeSDKInfo(PlatformPath)
+-QMAKE_MAC_SDK_VERSION = $$xcodeSDKInfo(SDKVersion)
+-
+-isEmpty(QMAKE_EXPORT_INCDIR_OPENGL) {
+-    QMAKE_EXPORT_INCDIR_OPENGL = $$QMAKE_INCDIR_OPENGL
+-    sysrootified =
+-    for(val, QMAKE_INCDIR_OPENGL): sysrootified += $${QMAKE_MAC_SDK_PATH}$$val
+-    QMAKE_INCDIR_OPENGL = $$sysrootified
+-}
+-
+-QMAKESPEC_NAME = $$basename(QMAKESPEC)
+-
+-# Resolve SDK version of various tools
+-for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_LINK QMAKE_LINK_SHLIB QMAKE_ACTOOL QMAKE_LINK_C QMAKE_LINK_C_SHLIB)) {
+-    tool_variable = QMAKE_MAC_SDK.$${QMAKESPEC_NAME}.$${QMAKE_MAC_SDK}.$${tool}
+-    !isEmpty($$tool_variable) {
+-        $$tool = $$eval($$tool_variable)
+-        next()
+-    }
+-
+-    value = $$eval($$tool)
+-    isEmpty(value): next()
+-
+-    sysrooted = $$system("/usr/bin/xcrun -sdk $$QMAKE_MAC_SDK -find $$first(value) 2>/dev/null")
+-    isEmpty(sysrooted): next()
+-
+-    $$tool = $$sysrooted $$member(value, 1, -1)
+-    cache($$tool_variable, set stash, $$tool)
+-}
+-- 
+2.25.1
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0002-qtbase-mac.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0002-qtbase-mac.patch
new file mode 100644
index 000000000000..2e28466c5032
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0002-qtbase-mac.patch
@@ -0,0 +1,116 @@
+From ccaa916eab33093704293bc911eedd85fbe5f160 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
+Date: Fri, 3 Apr 2020 21:15:27 +0200
+Subject: [PATCH 02/10] qtbase-mac
+
+---
+ src/corelib/kernel/qcore_mac_p.h | 16 ++++++++++++++--
+ src/testlib/qappletestlogger.cpp |  2 +-
+ src/testlib/qappletestlogger_p.h |  2 +-
+ src/testlib/qtestcase.cpp        |  2 +-
+ src/testlib/qtestlog.cpp         |  2 +-
+ src/testlib/qtestlog_p.h         |  2 +-
+ 6 files changed, 19 insertions(+), 7 deletions(-)
+
+diff --git a/src/corelib/kernel/qcore_mac_p.h b/src/corelib/kernel/qcore_mac_p.h
+index 535d3579b2..3d70bf39c1 100644
+--- a/src/corelib/kernel/qcore_mac_p.h
++++ b/src/corelib/kernel/qcore_mac_p.h
+@@ -225,7 +225,7 @@ private:
+ 
+ // --------------------------------------------------------------------------
+ 
+-#if !defined(QT_BOOTSTRAPPED)
++#if 0
+ 
+ QT_END_NAMESPACE
+ #include <os/activity.h>
+@@ -303,7 +303,19 @@ QT_MAC_WEAK_IMPORT(_os_activity_current);
+ 
+ #define QT_APPLE_SCOPED_LOG_ACTIVITY(...) QAppleLogActivity scopedLogActivity = QT_APPLE_LOG_ACTIVITY(__VA_ARGS__).enter();
+ 
+-#endif // !defined(QT_BOOTSTRAPPED)
++#else // !defined(QT_BOOTSTRAPPED)
++
++#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT3(...)
++#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT2(...)
++#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT(...)
++
++#define QT_APPLE_LOG_ACTIVITY2(...)
++#define QT_APPLE_LOG_ACTIVITY1(...)
++#define QT_APPLE_LOG_ACTIVITY(...)
++
++#define QT_APPLE_SCOPED_LOG_ACTIVITY(...)
++
++#endif
+ 
+ // -------------------------------------------------------------------------
+ 
+diff --git a/src/testlib/qappletestlogger.cpp b/src/testlib/qappletestlogger.cpp
+index dfeadebdef..2a74330c1d 100644
+--- a/src/testlib/qappletestlogger.cpp
++++ b/src/testlib/qappletestlogger.cpp
+@@ -43,7 +43,7 @@
+ 
+ QT_BEGIN_NAMESPACE
+ 
+-#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
++#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
+ 
+ using namespace QTestPrivate;
+ 
+diff --git a/src/testlib/qappletestlogger_p.h b/src/testlib/qappletestlogger_p.h
+index 62c6d95c5a..f8e0a3b767 100644
+--- a/src/testlib/qappletestlogger_p.h
++++ b/src/testlib/qappletestlogger_p.h
+@@ -57,7 +57,7 @@
+ 
+ QT_BEGIN_NAMESPACE
+ 
+-#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
++#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
+ class QAppleTestLogger : public QAbstractTestLogger
+ {
+ public:
+diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
+index 70733a692a..8bcda17858 100644
+--- a/src/testlib/qtestcase.cpp
++++ b/src/testlib/qtestcase.cpp
+@@ -852,7 +852,7 @@ Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, const char *const argv[], bool
+ 
+     bool addFallbackLogger = !explicitLoggerRequested;
+ 
+-#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
++#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
+     // Any explicitly requested loggers will be added by now, so we can check if they use stdout
+     const bool safeToAddAppleLogger = !AppleUnifiedLogger::willMirrorToStderr() || !QTestLog::loggerUsingStdout();
+     if (safeToAddAppleLogger && QAppleTestLogger::debugLoggingEnabled()) {
+diff --git a/src/testlib/qtestlog.cpp b/src/testlib/qtestlog.cpp
+index f3ebf343c5..9b4f526b2e 100644
+--- a/src/testlib/qtestlog.cpp
++++ b/src/testlib/qtestlog.cpp
+@@ -465,7 +465,7 @@ void QTestLog::addLogger(LogMode mode, const char *filename)
+     case QTestLog::TAP:
+         logger = new QTapTestLogger(filename);
+         break;
+-#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
++#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
+     case QTestLog::Apple:
+         logger = new QAppleTestLogger;
+         break;
+diff --git a/src/testlib/qtestlog_p.h b/src/testlib/qtestlog_p.h
+index fff36f290d..f737ccf064 100644
+--- a/src/testlib/qtestlog_p.h
++++ b/src/testlib/qtestlog_p.h
+@@ -72,7 +72,7 @@ public:
+ 
+     enum LogMode {
+         Plain = 0, XML, LightXML, XunitXML, CSV, TeamCity, TAP
+-#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
++#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
+         , Apple
+ #endif
+ #if defined(HAVE_XCTEST)
+-- 
+2.25.1
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0003-qtbase-mkspecs.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0003-qtbase-mkspecs.patch
new file mode 100644
index 000000000000..b704d0dc8722
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0003-qtbase-mkspecs.patch
@@ -0,0 +1,464 @@
+From 1cb5581d7f20bf87ac8d67a7295447a78a1d9645 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
+Date: Sat, 4 Apr 2020 00:25:52 +0200
+Subject: [PATCH 03/10] qtbase-mkspecs
+
+---
+ mkspecs/features/create_cmake.prf             | 51 +++---------
+ .../data/cmake/Qt5BasicConfig.cmake.in        | 80 +------------------
+ mkspecs/features/qml_module.prf               |  2 +-
+ mkspecs/features/qml_plugin.prf               |  2 +-
+ mkspecs/features/qt_app.prf                   |  2 +-
+ mkspecs/features/qt_build_paths.prf           |  4 +-
+ mkspecs/features/qt_docs.prf                  | 10 +--
+ mkspecs/features/qt_example_installs.prf      |  2 +-
+ mkspecs/features/qt_functions.prf             |  2 +-
+ mkspecs/features/qt_installs.prf              | 22 ++---
+ mkspecs/features/qt_plugin.prf                |  2 +-
+ 11 files changed, 38 insertions(+), 141 deletions(-)
+
+diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf
+index 0e71fd0015..ba071d9a70 100644
+--- a/mkspecs/features/create_cmake.prf
++++ b/mkspecs/features/create_cmake.prf
+@@ -21,7 +21,7 @@ load(cmake_functions)
+ # at cmake time whether package has been found via a symlink, and correct
+ # that to an absolute path. This is only done for installations to
+ # the /usr or / prefix.
+-CMAKE_INSTALL_LIBS_DIR = $$cmakeTargetPath($$[QT_INSTALL_LIBS])
++CMAKE_INSTALL_LIBS_DIR = $$cmakeTargetPath($$NIX_OUTPUT_OUT/lib/)
+ contains(CMAKE_INSTALL_LIBS_DIR, ^(/usr)?/lib(64)?.*): CMAKE_USR_MOVE_WORKAROUND = $$CMAKE_INSTALL_LIBS_DIR
+ 
+ CMAKE_OUT_DIR = $$MODULE_BASE_OUTDIR/lib/cmake
+@@ -77,45 +77,20 @@ split_incpath {
+         $$cmake_extra_source_includes.output
+ }
+ 
+-CMAKE_INCLUDE_DIR = $$cmakeRelativePath($$[QT_INSTALL_HEADERS], $$[QT_INSTALL_PREFIX])
+-contains(CMAKE_INCLUDE_DIR, "^\\.\\./.*") {
+-    CMAKE_INCLUDE_DIR = $$[QT_INSTALL_HEADERS]/
+-    CMAKE_INCLUDE_DIR_IS_ABSOLUTE = True
+-}
++CMAKE_INCLUDE_DIR = $$NIX_OUTPUT_DEV/include/
++CMAKE_INCLUDE_DIR_IS_ABSOLUTE = True
+ 
+-CMAKE_LIB_DIR = $$cmakeRelativePath($$[QT_INSTALL_LIBS], $$[QT_INSTALL_PREFIX])
+-contains(CMAKE_LIB_DIR,"^\\.\\./.*") {
+-    CMAKE_LIB_DIR = $$[QT_INSTALL_LIBS]/
+-    CMAKE_LIB_DIR_IS_ABSOLUTE = True
+-} else {
+-    CMAKE_RELATIVE_INSTALL_LIBS_DIR = $$cmakeRelativePath($$[QT_INSTALL_PREFIX], $$[QT_INSTALL_LIBS])
+-    # We need to go up another two levels because the CMake files are
+-    # installed in $${CMAKE_LIB_DIR}/cmake/Qt5$${CMAKE_MODULE_NAME}
+-    CMAKE_RELATIVE_INSTALL_DIR = "$${CMAKE_RELATIVE_INSTALL_LIBS_DIR}../../"
+-}
++CMAKE_BIN_DIR = $$NIX_OUTPUT_BIN/bin/
++CMAKE_BIN_DIR_IS_ABSOLUTE = True
+ 
+-CMAKE_BIN_DIR = $$cmakeRelativePath($$[QT_HOST_BINS], $$[QT_INSTALL_PREFIX])
+-contains(CMAKE_BIN_DIR, "^\\.\\./.*") {
+-    CMAKE_BIN_DIR = $$[QT_HOST_BINS]/
+-    CMAKE_BIN_DIR_IS_ABSOLUTE = True
+-}
++CMAKE_LIB_DIR = $$NIX_OUTPUT_OUT/lib/
++CMAKE_LIB_DIR_IS_ABSOLUTE = True
+ 
+-CMAKE_PLUGIN_DIR = $$cmakeRelativePath($$[QT_INSTALL_PLUGINS], $$[QT_INSTALL_PREFIX])
+-contains(CMAKE_PLUGIN_DIR, "^\\.\\./.*") {
+-    CMAKE_PLUGIN_DIR = $$[QT_INSTALL_PLUGINS]/
+-    CMAKE_PLUGIN_DIR_IS_ABSOLUTE = True
+-}
++CMAKE_PLUGIN_DIR = $$NIX_OUTPUT_PLUGIN/
++CMAKE_PLUGIN_DIR_IS_ABSOLUTE = True
+ 
+-win32:!static:!staticlib {
+-    CMAKE_DLL_DIR = $$cmakeRelativePath($$[QT_INSTALL_BINS], $$[QT_INSTALL_PREFIX])
+-    contains(CMAKE_DLL_DIR, "^\\.\\./.*") {
+-        CMAKE_DLL_DIR = $$[QT_INSTALL_BINS]/
+-        CMAKE_DLL_DIR_IS_ABSOLUTE = True
+-    }
+-} else {
+-    CMAKE_DLL_DIR = $$CMAKE_LIB_DIR
+-    CMAKE_DLL_DIR_IS_ABSOLUTE = $$CMAKE_LIB_DIR_IS_ABSOLUTE
+-}
++CMAKE_DLL_DIR = $$NIX_OUTPUT_OUT/lib/
++CMAKE_DLL_DIR_IS_ABSOLUTE = True
+ 
+ static|staticlib:CMAKE_STATIC_TYPE = true
+ 
+@@ -258,7 +233,7 @@ contains(CONFIG, plugin) {
+ 
+     cmake_qt5_plugin_file.files = $$cmake_target_file.output
+     static|staticlib: cmake_qt5_plugin_file.files += $$cmake_qt5_plugin_import_file.output
+-    cmake_qt5_plugin_file.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME}
++    cmake_qt5_plugin_file.path = $$NIX_OUTPUT_OUT/lib/cmake/Qt5$${CMAKE_MODULE_NAME}
+     INSTALLS += cmake_qt5_plugin_file
+ 
+     return()
+@@ -396,7 +371,7 @@ exists($$cmake_macros_file.input) {
+     cmake_qt5_module_files.files += $$cmake_macros_file.output
+ }
+ 
+-cmake_qt5_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME}
++cmake_qt5_module_files.path = $$NIX_OUTPUT_OUT/lib/cmake/Qt5$${CMAKE_MODULE_NAME}
+ 
+ # We are generating cmake files. Most developers of Qt are not aware of cmake,
+ # so we require automatic tests to be available. The only module which should
+diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+index 1099a761ce..87679b7e68 100644
+--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
++++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+@@ -3,30 +3,6 @@ if (CMAKE_VERSION VERSION_LESS 3.1.0)
+     message(FATAL_ERROR \"Qt 5 $${CMAKE_MODULE_NAME} module requires at least CMake version 3.1.0\")
+ endif()
+ 
+-!!IF !isEmpty(CMAKE_USR_MOVE_WORKAROUND)
+-!!IF !isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\")
+-!!ELSE
+-get_filename_component(_IMPORT_PREFIX \"${CMAKE_CURRENT_LIST_FILE}\" PATH)
+-# Use original install prefix when loaded through a
+-# cross-prefix symbolic link such as /lib -> /usr/lib.
+-get_filename_component(_realCurr \"${_IMPORT_PREFIX}\" REALPATH)
+-get_filename_component(_realOrig \"$$CMAKE_INSTALL_LIBS_DIR/cmake/Qt5$${CMAKE_MODULE_NAME}\" REALPATH)
+-if(_realCurr STREQUAL _realOrig)
+-    get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$CMAKE_INSTALL_LIBS_DIR/$${CMAKE_RELATIVE_INSTALL_LIBS_DIR}\" ABSOLUTE)
+-else()
+-    get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
+-endif()
+-unset(_realOrig)
+-unset(_realCurr)
+-unset(_IMPORT_PREFIX)
+-!!ENDIF
+-!!ELIF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
+-!!ELSE
+-set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\")
+-!!ENDIF
+-
+ !!IF !equals(TEMPLATE, aux)
+ # For backwards compatibility only. Use Qt5$${CMAKE_MODULE_NAME}_VERSION instead.
+ set(Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING "$$eval(QT.$${MODULE}.VERSION)")
+@@ -146,11 +122,7 @@ macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATI
+       IsDebugAndRelease)
+     set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
+ 
+-!!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
+-!!ELSE
+     set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
+-!!ENDIF
+     _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location})
+     set(_deps
+         ${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}
+@@ -210,11 +182,7 @@ macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATI
+ !!ENDIF
+ 
+ !!IF !isEmpty(CMAKE_WINDOWS_BUILD)
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_implib \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+-!!ELSE
+     set(imported_implib \"IMPORTED_IMPLIB_${Configuration}\" \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+-!!ENDIF
+     _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_implib})
+     if(NOT \"${IMPLIB_LOCATION}\" STREQUAL \"\")
+         set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES
+@@ -230,24 +198,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+ !!IF !no_module_headers
+ !!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK)
+     set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS
+-      \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework\"
+-      \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework/Headers\"
++      \"$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework\"
++      \"$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework/Headers\"
+     )
+ !!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES)
+     set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/\"
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/$${MODULE_INCNAME}\"
+-    )
+-!!ELSE
+-    set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\")
+-!!ENDIF
+-!!ELSE
+-!!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE)
+-    set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}\")
+-!!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES)
+-    set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION\"
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION/$${MODULE_INCNAME}\"
++      \"$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework/Versions/$$section(VERSION, .,0, 0)/Headers/$$VERSION/\"
++      \"$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework/Versions/$$section(VERSION, .,0, 0)/Headers/$$VERSION/$${MODULE_INCNAME}\"
+     )
+ !!ELSE
+     set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\")
+@@ -263,7 +220,6 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+     set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\")
+ !!ENDIF
+ !!ENDIF
+-!!ENDIF
+ !!IF !isEmpty(CMAKE_ADD_SOURCE_INCLUDE_DIRS)
+     include(\"${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake\" OPTIONAL)
+ !!ENDIF
+@@ -465,25 +421,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+ !!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD)
+ !!IF isEmpty(CMAKE_DEBUG_TYPE)
+ !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE
+     if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE
+         _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" \"\" $${CMAKE_DEBUG_AND_RELEASE})
+ !!ELSE // CMAKE_STATIC_WINDOWS_BUILD
+     if (EXISTS
+-!!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\"
+-!!ELSE
+         \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\"
+-!!ENDIF
+       AND EXISTS
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ELSE
+         \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ENDIF
+         _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" $${CMAKE_DEBUG_AND_RELEASE})
+ !!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
+     endif()
+@@ -502,25 +446,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+ !!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD)
+ !!IF isEmpty(CMAKE_RELEASE_TYPE)
+ !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+-!!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE
+     if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+-!!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE
+         _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" $${CMAKE_DEBUG_AND_RELEASE})
+ !!ELSE // CMAKE_STATIC_WINDOWS_BUILD
+     if (EXISTS
+-!!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_RELEASE}\"
+-!!ELSE
+         \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\"
+-!!ENDIF
+       AND EXISTS
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+-!!ELSE
+         \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+-!!ENDIF
+         _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" $${CMAKE_DEBUG_AND_RELEASE})
+ !!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
+     endif()
+@@ -542,11 +474,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+           IsDebugAndRelease)
+         set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
+ 
+-!!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE)
+-        set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\")
+-!!ELSE
+         set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\")
+-!!ENDIF
+         _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location})
+         set_target_properties(Qt5::${Plugin} PROPERTIES
+             \"IMPORTED_LOCATION_${Configuration}\" ${imported_location}
+diff --git a/mkspecs/features/qml_module.prf b/mkspecs/features/qml_module.prf
+index c0b50416c9..cabe39b22e 100644
+--- a/mkspecs/features/qml_module.prf
++++ b/mkspecs/features/qml_module.prf
+@@ -51,7 +51,7 @@ builtin_resources {
+ # Install rules
+ qmldir.base = $$qmldir_path
+ qmldir.files = $$qmldir_file
+-qmldir.path = $$[QT_INSTALL_QML]/$$TARGETPATH
++qmldir.path = $$NIX_OUTPUT_QML/$$TARGETPATH
+ 
+ qmlfiles.base = $$_PRO_FILE_PWD_
+ qmlfiles.files = $$fq_aux_qml_files
+diff --git a/mkspecs/features/qml_plugin.prf b/mkspecs/features/qml_plugin.prf
+index f1c5658b04..029595e721 100644
+--- a/mkspecs/features/qml_plugin.prf
++++ b/mkspecs/features/qml_plugin.prf
+@@ -50,7 +50,7 @@ load(qt_build_paths)
+ 
+ DESTDIR = $$MODULE_BASE_OUTDIR/qml/$$TARGETPATH
+ 
+-target.path = $$[QT_INSTALL_QML]/$$TARGETPATH
++target.path = $$NIX_OUTPUT_QML/$$TARGETPATH
+ INSTALLS += target
+ 
+ # Some final setup
+diff --git a/mkspecs/features/qt_app.prf b/mkspecs/features/qt_app.prf
+index 8354f30eea..62028fef8e 100644
+--- a/mkspecs/features/qt_app.prf
++++ b/mkspecs/features/qt_app.prf
+@@ -30,7 +30,7 @@ host_build:force_bootstrap {
+     target.path = $$[QT_HOST_BINS]
+ } else {
+     !build_pass:qtConfig(debug_and_release): CONFIG += release
+-    target.path = $$[QT_INSTALL_BINS]
++    target.path = $$NIX_OUTPUT_BIN/bin
+     CONFIG += relative_qt_rpath  # Qt's tools and apps should be relocatable
+ }
+ INSTALLS += target
+diff --git a/mkspecs/features/qt_build_paths.prf b/mkspecs/features/qt_build_paths.prf
+index 3bb3823a8e..655b7b7db8 100644
+--- a/mkspecs/features/qt_build_paths.prf
++++ b/mkspecs/features/qt_build_paths.prf
+@@ -24,6 +24,6 @@ exists($$MODULE_BASE_INDIR/.git): \
+ !force_independent {
+     # If the module is not built independently, everything ends up in qtbase.
+     # This is the case in non-prefix builds, except for selected modules.
+-    MODULE_BASE_OUTDIR = $$[QT_HOST_PREFIX]
+-    MODULE_QMAKE_OUTDIR = $$[QT_HOST_PREFIX]
++    MODULE_BASE_OUTDIR = $$NIX_OUTPUT_OUT
++    MODULE_QMAKE_OUTDIR = $$NIX_OUTPUT_OUT
+ }
+diff --git a/mkspecs/features/qt_docs.prf b/mkspecs/features/qt_docs.prf
+index 095bf15dac..4cc977bea5 100644
+--- a/mkspecs/features/qt_docs.prf
++++ b/mkspecs/features/qt_docs.prf
+@@ -65,7 +65,7 @@ QMAKE_DOCS_OUTPUTDIR = $$QMAKE_DOCS_BASE_OUTDIR/$$QMAKE_DOCS_TARGETDIR
+ 
+ QDOC += -outputdir $$shell_quote($$QMAKE_DOCS_OUTPUTDIR)
+ !build_online_docs: \
+-    QDOC += -installdir $$shell_quote($$[QT_INSTALL_DOCS])
++    QDOC += -installdir $$shell_quote($$NIX_OUTPUT_DOC)
+ PREP_DOC_INDEXES =
+ DOC_INDEXES =
+ !isEmpty(QTREPOS) {
+@@ -84,8 +84,8 @@ DOC_INDEXES =
+         DOC_INDEXES += -indexdir $$shell_quote($$qrep/doc)
+ } else {
+     prepare_docs: \
+-        PREP_DOC_INDEXES += -indexdir $$shell_quote($$[QT_INSTALL_DOCS/get])
+-    DOC_INDEXES += -indexdir $$shell_quote($$[QT_INSTALL_DOCS/get])
++        PREP_DOC_INDEXES += -indexdir $$shell_quote($$NIX_OUTPUT_DOC)
++    DOC_INDEXES += -indexdir $$shell_quote($$NIX_OUTPUT_DOC)
+ }
+ 
+ qtattributionsscanner.target = qtattributionsscanner
+@@ -108,12 +108,12 @@ prepare_docs {
+     qch_docs.commands = $$QHELPGENERATOR $$shell_quote($$QMAKE_DOCS_OUTPUTDIR/$${QMAKE_DOCS_TARGET}.qhp) -o $$shell_quote($$QMAKE_DOCS_BASE_OUTDIR/$${QMAKE_DOCS_TARGET}.qch)
+ 
+     inst_html_docs.files = $$QMAKE_DOCS_OUTPUTDIR
+-    inst_html_docs.path = $$[QT_INSTALL_DOCS]
++    inst_html_docs.path = $$NIX_OUTPUT_DOC
+     inst_html_docs.CONFIG += no_check_exist directory no_default_install no_build
+     INSTALLS += inst_html_docs
+ 
+     inst_qch_docs.files = $$QMAKE_DOCS_BASE_OUTDIR/$${QMAKE_DOCS_TARGET}.qch
+-    inst_qch_docs.path = $$[QT_INSTALL_DOCS]
++    inst_qch_docs.path = $$NIX_OUTPUT_DOC
+     inst_qch_docs.CONFIG += no_check_exist no_default_install no_build
+     INSTALLS += inst_qch_docs
+ 
+diff --git a/mkspecs/features/qt_example_installs.prf b/mkspecs/features/qt_example_installs.prf
+index 72b47bce27..d59e949e78 100644
+--- a/mkspecs/features/qt_example_installs.prf
++++ b/mkspecs/features/qt_example_installs.prf
+@@ -90,7 +90,7 @@ sourcefiles += \
+     $$SOURCES $$HEADERS $$FORMS $$RESOURCES $$TRANSLATIONS \
+     $$DBUS_ADAPTORS $$DBUS_INTERFACES
+ addInstallFiles(sources.files, $$sourcefiles)
+-sources.path = $$[QT_INSTALL_EXAMPLES]/$$probase
++sources.path = $$NIX_OUTPUT_DEV/share/examples/$$probase
+ INSTALLS += sources
+ 
+ check_examples {
+diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
+index 7777e615bd..abeb03a663 100644
+--- a/mkspecs/features/qt_functions.prf
++++ b/mkspecs/features/qt_functions.prf
+@@ -87,7 +87,7 @@ defineTest(qtHaveModule) {
+ defineTest(qtPrepareTool) {
+     cmd = $$eval(QT_TOOL.$${2}.binary)
+     isEmpty(cmd) {
+-        cmd = $$[QT_HOST_BINS]/$$2
++        cmd = $$system("command -v $$2")
+         exists($${cmd}.pl) {
+             $${1}_EXE = $${cmd}.pl
+             cmd = perl -w $$system_path($${cmd}.pl)
+diff --git a/mkspecs/features/qt_installs.prf b/mkspecs/features/qt_installs.prf
+index 1ebca17366..a8f958eae8 100644
+--- a/mkspecs/features/qt_installs.prf
++++ b/mkspecs/features/qt_installs.prf
+@@ -12,16 +12,10 @@
+ #library
+ !qt_no_install_library {
+     win32 {
+-       host_build: \
+-           dlltarget.path = $$[QT_HOST_BINS]
+-       else: \
+-           dlltarget.path = $$[QT_INSTALL_BINS]
++       dlltarget.path = $$NIX_OUTPUT_BIN/bin
+        INSTALLS += dlltarget
+     }
+-    host_build: \
+-        target.path = $$[QT_HOST_LIBS]
+-    else: \
+-        target.path = $$[QT_INSTALL_LIBS]
++    target.path = $$NIX_OUTPUT_OUT/lib
+     !static: target.CONFIG = no_dll
+     INSTALLS += target
+ }
+@@ -29,35 +23,35 @@
+ #headers
+ qt_install_headers {
+     gen_headers.files = $$SYNCQT.GENERATED_HEADER_FILES
+-    gen_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME
++    gen_headers.path = $$NIX_OUTPUT_DEV/include/$$MODULE_INCNAME
+     INSTALLS += gen_headers
+ 
+     targ_headers.files = $$SYNCQT.HEADER_FILES $$SYNCQT.INJECTED_HEADER_FILES
+-    targ_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME
++    targ_headers.path = $$NIX_OUTPUT_DEV/include/$$MODULE_INCNAME
+     INSTALLS += targ_headers
+ 
+     private_headers.files = $$SYNCQT.PRIVATE_HEADER_FILES $$SYNCQT.INJECTED_PRIVATE_HEADER_FILES
+-    private_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/private
++    private_headers.path = $$NIX_OUTPUT_DEV/include/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/private
+     generated_privates: \
+         private_headers.CONFIG += no_check_exist
+     INSTALLS += private_headers
+ 
+     qpa_headers.files = $$SYNCQT.QPA_HEADER_FILES
+-    qpa_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/qpa
++    qpa_headers.path = $$NIX_OUTPUT_DEV/include/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/qpa
+     INSTALLS += qpa_headers
+ }
+ 
+ #module
+ qt_install_module {
+     !isEmpty(MODULE_PRI) {
+-        pritarget.path = $$[QT_HOST_DATA]/mkspecs/modules
++        pritarget.path = $$NIX_OUTPUT_DEV/mkspecs/modules
+         pritarget.files = $$MODULE_PRI
+         INSTALLS += pritarget
+     } else: isEmpty(MODULE_PRIVATE_PRI) {
+         warning("Project $$basename(_PRO_FILE_) is a module, but has not defined MODULE_PRI, which is required for Qt to expose the module to other projects.")
+     }
+     !isEmpty(MODULE_PRIVATE_PRI) {
+-        privpritarget.path = $$[QT_HOST_DATA]/mkspecs/modules
++        privpritarget.path = $$NIX_OUTPUT_DEV/mkspecs/modules
+         privpritarget.files = $$MODULE_PRIVATE_PRI
+         INSTALLS += privpritarget
+     }
+diff --git a/mkspecs/features/qt_plugin.prf b/mkspecs/features/qt_plugin.prf
+index 573d717eea..024c624cb6 100644
+--- a/mkspecs/features/qt_plugin.prf
++++ b/mkspecs/features/qt_plugin.prf
+@@ -88,7 +88,7 @@ CONFIG(static, static|shared)|prefix_build {
+     }
+ }
+ 
+-target.path = $$[QT_INSTALL_PLUGINS]/$$PLUGIN_TYPE
++target.path = $$NIX_OUTPUT_PLUGIN/$$PLUGIN_TYPE
+ INSTALLS += target
+ 
+ qt_libinfix_plugins: TARGET = $$TARGET$$QT_LIBINFIX
+-- 
+2.25.1
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0004-qtbase-replace-libdir.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0004-qtbase-replace-libdir.patch
new file mode 100644
index 000000000000..86ea2e75d9be
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0004-qtbase-replace-libdir.patch
@@ -0,0 +1,68 @@
+From 1cae0c31c9849615190ee175ebf929b3aca13fe0 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
+Date: Sat, 4 Apr 2020 00:27:41 +0200
+Subject: [PATCH 04/10] qtbase-replace-libdir
+
+---
+ mkspecs/features/qt_common.prf | 20 ++------------------
+ mkspecs/features/qt_module.prf |  5 +----
+ 2 files changed, 3 insertions(+), 22 deletions(-)
+
+diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf
+index c24f2c6062..0d72ce7286 100644
+--- a/mkspecs/features/qt_common.prf
++++ b/mkspecs/features/qt_common.prf
+@@ -31,32 +31,16 @@ contains(TEMPLATE, .*lib) {
+         rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
+     else: \
+         rplbase = $$MODULE_BASE_OUTDIR
+-    host_build {
+-        qqt_libdir = \$\$\$\$[QT_HOST_LIBS]
+-        qt_libdir = $$[QT_HOST_LIBS]
+-    } else {
+-        qqt_libdir = \$\$\$\$[QT_INSTALL_LIBS]
+-        qt_libdir = $$[QT_INSTALL_LIBS]
+-    }
++    qt_libdir = $$NIX_OUTPUT_OUT/lib
+     contains(QMAKE_DEFAULT_LIBDIRS, $$qt_libdir) {
+-        lib_replace0.match = $$rplbase/lib/
+-        lib_replace0.replace = $$qqt_libdir/
+-        lib_replace0.CONFIG = path
+-        QMAKE_PRL_INSTALL_REPLACE += lib_replace0
+         lib_replace.match = "[^ ']*$$rplbase/lib"
+         lib_replace.replace =
+     } else {
+         lib_replace.match = $$rplbase/lib
+-        lib_replace.replace = $$qqt_libdir
++        lib_replace.replace = $$qt_libdir
+     }
+     lib_replace.CONFIG = path
+     QMAKE_PRL_INSTALL_REPLACE += lib_replace
+-    !equals(qt_libdir, $$rplbase/lib) {
+-        qtlibdir_replace.match = $$qt_libdir
+-        qtlibdir_replace.replace = $$qqt_libdir
+-        qtlibdir_replace.CONFIG = path
+-        QMAKE_PRL_INSTALL_REPLACE += qtlibdir_replace
+-    }
+ }
+ 
+ # The remainder of this file must not apply to host tools/libraries,
+diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
+index 828a9621b9..b9e5d35026 100644
+--- a/mkspecs/features/qt_module.prf
++++ b/mkspecs/features/qt_module.prf
+@@ -305,10 +305,7 @@ load(qt_targets)
+ }
+ !lib_bundle:unix {
+     CONFIG += create_libtool
+-    host_build: \
+-        QMAKE_LIBTOOL_LIBDIR = $$[QT_HOST_LIBS]
+-    else: \
+-        QMAKE_LIBTOOL_LIBDIR = "=$$[QT_INSTALL_LIBS/raw]"
++    QMAKE_LIBTOOL_LIBDIR = $$NIX_OUTPUT_OUT/lib
+     !isEmpty(lib_replace0.match) {
+         ltlib_replace0.match = $$lib_replace0.match
+         ltlib_replace0.replace = $$QMAKE_LIBTOOL_LIBDIR/
+-- 
+2.25.1
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0005-qtbase-cmake.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0005-qtbase-cmake.patch
new file mode 100644
index 000000000000..85a729563417
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0005-qtbase-cmake.patch
@@ -0,0 +1,194 @@
+From 7e93d1330e1f8c8cd68334201ad100b8c05c9ab5 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Tue, 17 Sep 2019 05:34:28 -0500
+Subject: [PATCH 05/10] qtbase-cmake
+
+---
+ mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in  |  2 +-
+ mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in |  4 ++--
+ src/corelib/Qt5CoreConfigExtras.cmake.in             | 10 +++++-----
+ src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in    |  2 +-
+ .../Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in  |  2 +-
+ src/dbus/Qt5DBusConfigExtras.cmake.in                | 12 ++----------
+ src/gui/Qt5GuiConfigExtras.cmake.in                  |  6 +++---
+ src/widgets/Qt5WidgetsConfigExtras.cmake.in          |  2 +-
+ 8 files changed, 16 insertions(+), 24 deletions(-)
+
+diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+index 87679b7e68..57060e6470 100644
+--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
++++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+@@ -474,7 +474,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+           IsDebugAndRelease)
+         set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
+ 
+-        set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\")
++        set(imported_location \"${PLUGIN_LOCATION}\")
+         _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location})
+         set_target_properties(Qt5::${Plugin} PROPERTIES
+             \"IMPORTED_LOCATION_${Configuration}\" ${imported_location}
+diff --git a/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in b/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in
+index 7b70cfed09..e700cfa539 100644
+--- a/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in
++++ b/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in
+@@ -53,10 +53,10 @@ set_property(TARGET Qt5::$$CMAKE_PLUGIN_NAME PROPERTY INTERFACE_SOURCES
+ !!ENDIF
+ 
+ !!IF !isEmpty(CMAKE_RELEASE_TYPE)
+-_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\" $${CMAKE_DEBUG_AND_RELEASE})
++_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_DIR}$${CMAKE_PLUGIN_LOCATION_RELEASE}\" $${CMAKE_DEBUG_AND_RELEASE})
+ !!ENDIF
+ !!IF !isEmpty(CMAKE_DEBUG_TYPE)
+-_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\" $${CMAKE_DEBUG_AND_RELEASE})
++_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_DIR}$${CMAKE_PLUGIN_LOCATION_DEBUG}\" $${CMAKE_DEBUG_AND_RELEASE})
+ !!ENDIF
+ 
+ list(APPEND Qt5$${CMAKE_MODULE_NAME}_PLUGINS Qt5::$$CMAKE_PLUGIN_NAME)
+diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in
+index 9b672327ef..319ba94d6d 100644
+--- a/src/corelib/Qt5CoreConfigExtras.cmake.in
++++ b/src/corelib/Qt5CoreConfigExtras.cmake.in
+@@ -3,7 +3,7 @@ if (NOT TARGET Qt5::qmake)
+     add_executable(Qt5::qmake IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+@@ -18,7 +18,7 @@ if (NOT TARGET Qt5::moc)
+     add_executable(Qt5::moc IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+@@ -35,7 +35,7 @@ if (NOT TARGET Qt5::rcc)
+     add_executable(Qt5::rcc IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+@@ -118,7 +118,7 @@ if (NOT TARGET Qt5::WinMain)
+ !!IF !isEmpty(CMAKE_RELEASE_TYPE)
+     set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
++    set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
+ !!ENDIF
+@@ -132,7 +132,7 @@ if (NOT TARGET Qt5::WinMain)
+     set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
+ 
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
++    set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
+ !!ENDIF
+diff --git a/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in b/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in
+index c357237d0e..6f0c75de3c 100644
+--- a/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in
++++ b/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in
+@@ -1,6 +1,6 @@
+ 
+ !!IF isEmpty(CMAKE_HOST_DATA_DIR_IS_ABSOLUTE)
+-set(_qt5_corelib_extra_includes \"${_qt5Core_install_prefix}/$${CMAKE_HOST_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
++set(_qt5_corelib_extra_includes \"$$NIX_OUTPUT_DEV/$${CMAKE_HOST_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
+ !!ELSE
+ set(_qt5_corelib_extra_includes \"$${CMAKE_HOST_DATA_DIR}mkspecs/$${CMAKE_MKSPEC}\")
+ !!ENDIF
+diff --git a/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in b/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in
+index 706304cf34..546420f6ad 100644
+--- a/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in
++++ b/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in
+@@ -1,6 +1,6 @@
+ 
+ !!IF isEmpty(CMAKE_INSTALL_DATA_DIR_IS_ABSOLUTE)
+-set(_qt5_corelib_extra_includes \"${_qt5Core_install_prefix}/$${CMAKE_INSTALL_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
++set(_qt5_corelib_extra_includes \"$$NIX_OUTPUT_DEV/$${CMAKE_INSTALL_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
+ !!ELSE
+ set(_qt5_corelib_extra_includes \"$${CMAKE_INSTALL_DATA_DIR}mkspecs/$${CMAKE_MKSPEC}\")
+ !!ENDIF
+diff --git a/src/dbus/Qt5DBusConfigExtras.cmake.in b/src/dbus/Qt5DBusConfigExtras.cmake.in
+index 1d947159e2..b36865fc48 100644
+--- a/src/dbus/Qt5DBusConfigExtras.cmake.in
++++ b/src/dbus/Qt5DBusConfigExtras.cmake.in
+@@ -2,11 +2,7 @@
+ if (NOT TARGET Qt5::qdbuscpp2xml)
+     add_executable(Qt5::qdbuscpp2xml IMPORTED)
+ 
+-!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
+-!!ELSE
+-    set(imported_location \"$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
+-!!ENDIF
++    set(imported_location \"$$NIX_OUTPUT_DEV/bin/qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
+     _qt5_DBus_check_file_exists(${imported_location})
+ 
+     set_target_properties(Qt5::qdbuscpp2xml PROPERTIES
+@@ -17,11 +13,7 @@ endif()
+ if (NOT TARGET Qt5::qdbusxml2cpp)
+     add_executable(Qt5::qdbusxml2cpp IMPORTED)
+ 
+-!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
+-!!ELSE
+-    set(imported_location \"$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
+-!!ENDIF
++    set(imported_location \"$$NIX_OUTPUT_DEV/bin/qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
+     _qt5_DBus_check_file_exists(${imported_location})
+ 
+     set_target_properties(Qt5::qdbusxml2cpp PROPERTIES
+diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in
+index 84dbbfebd4..8ad0720c5c 100644
+--- a/src/gui/Qt5GuiConfigExtras.cmake.in
++++ b/src/gui/Qt5GuiConfigExtras.cmake.in
+@@ -2,7 +2,7 @@
+ !!IF !isEmpty(CMAKE_ANGLE_EGL_DLL_RELEASE)
+ 
+ !!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE)
+-set(Qt5Gui_EGL_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR/QtANGLE\")
++set(Qt5Gui_EGL_INCLUDE_DIRS \"$$NIX_OUTPUT_DEV/$$CMAKE_INCLUDE_DIR/QtANGLE\")
+ !!ELSE
+ set(Qt5Gui_EGL_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR/QtANGLE\")
+ !!ENDIF
+@@ -17,13 +17,13 @@ macro(_populate_qt5gui_gl_target_properties TargetName Configuration LIB_LOCATIO
+     set_property(TARGET Qt5::${TargetName} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
+ 
+ !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Gui_install_prefix}/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
++    set(imported_location \"$$NIX_OUTPUT_OUT/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
+ !!ENDIF
+ 
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_implib \"${_qt5Gui_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
++    set(imported_implib \"$$NIX_OUTPUT_OUT/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+ !!ELSE
+     set(imported_implib \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+ !!ENDIF
+diff --git a/src/widgets/Qt5WidgetsConfigExtras.cmake.in b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
+index 99d87e2e46..a4eab2aa72 100644
+--- a/src/widgets/Qt5WidgetsConfigExtras.cmake.in
++++ b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
+@@ -3,7 +3,7 @@ if (NOT TARGET Qt5::uic)
+     add_executable(Qt5::uic IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Widgets_install_prefix}/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+-- 
+2.25.1
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0006-qtbase-gtk3.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0006-qtbase-gtk3.patch
new file mode 100644
index 000000000000..6ce0e5d0c433
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0006-qtbase-gtk3.patch
@@ -0,0 +1,48 @@
+From 1ad04525cdd342e3c8a750323fb3a61b93fee753 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Tue, 17 Sep 2019 05:35:33 -0500
+Subject: [PATCH 06/10] qtbase-gtk3
+
+---
+ src/plugins/platformthemes/gtk3/main.cpp | 17 ++++++++++++++++-
+ 1 file changed, 16 insertions(+), 1 deletion(-)
+
+diff --git a/src/plugins/platformthemes/gtk3/main.cpp b/src/plugins/platformthemes/gtk3/main.cpp
+index fb1c425d8e..bb8bab9795 100644
+--- a/src/plugins/platformthemes/gtk3/main.cpp
++++ b/src/plugins/platformthemes/gtk3/main.cpp
+@@ -39,6 +39,7 @@
+ 
+ #include <qpa/qplatformthemeplugin.h>
+ #include "qgtk3theme.h"
++#include <QFile>
+ 
+ QT_BEGIN_NAMESPACE
+ 
+@@ -54,8 +55,22 @@ public:
+ QPlatformTheme *QGtk3ThemePlugin::create(const QString &key, const QStringList &params)
+ {
+     Q_UNUSED(params);
+-    if (!key.compare(QLatin1String(QGtk3Theme::name), Qt::CaseInsensitive))
++    if (!key.compare(QLatin1String(QGtk3Theme::name), Qt::CaseInsensitive)) {
++
++#ifdef NIXPKGS_QGTK3_XDG_DATA_DIRS
++        QStringList XDG_DATA_DIRS = QFile::decodeName(qgetenv("XDG_DATA_DIRS")).split(':');
++        XDG_DATA_DIRS << QLatin1String(NIXPKGS_QGTK3_XDG_DATA_DIRS);
++        qputenv("XDG_DATA_DIRS", QFile::encodeName(XDG_DATA_DIRS.join(':')));
++#endif
++
++#ifdef NIXPKGS_QGTK3_GIO_EXTRA_MODULES
++        QStringList GIO_EXTRA_MODULES = QFile::decodeName(qgetenv("GIO_EXTRA_MODULES")).split(':');
++        GIO_EXTRA_MODULES << QLatin1String(NIXPKGS_QGTK3_GIO_EXTRA_MODULES);
++        qputenv("GIO_EXTRA_MODULES", QFile::encodeName(GIO_EXTRA_MODULES.join(':')));
++#endif
++
+         return new QGtk3Theme;
++    }
+ 
+     return 0;
+ }
+-- 
+2.25.1
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0007-qtbase-xcursor.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0007-qtbase-xcursor.patch
new file mode 100644
index 000000000000..6a92a9528303
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0007-qtbase-xcursor.patch
@@ -0,0 +1,29 @@
+From cc953cc3f736fabef1f5c211964f30be719fb35e Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Tue, 17 Sep 2019 05:35:58 -0500
+Subject: [PATCH 07/10] qtbase-xcursor
+
+---
+ src/plugins/platforms/xcb/qxcbcursor.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/plugins/platforms/xcb/qxcbcursor.cpp b/src/plugins/platforms/xcb/qxcbcursor.cpp
+index fbadab4d50..c83ce0af5b 100644
+--- a/src/plugins/platforms/xcb/qxcbcursor.cpp
++++ b/src/plugins/platforms/xcb/qxcbcursor.cpp
+@@ -317,10 +317,10 @@ QXcbCursor::QXcbCursor(QXcbConnection *conn, QXcbScreen *screen)
+ #if QT_CONFIG(xcb_xlib) && QT_CONFIG(library)
+     static bool function_ptrs_not_initialized = true;
+     if (function_ptrs_not_initialized) {
+-        QLibrary xcursorLib(QLatin1String("Xcursor"), 1);
++        QLibrary xcursorLib(QLatin1String(NIXPKGS_LIBXCURSOR), 1);
+         bool xcursorFound = xcursorLib.load();
+         if (!xcursorFound) { // try without the version number
+-            xcursorLib.setFileName(QLatin1String("Xcursor"));
++            xcursorLib.setFileName(QLatin1String(NIXPKGS_LIBXCURSOR));
+             xcursorFound = xcursorLib.load();
+         }
+         if (xcursorFound) {
+-- 
+2.25.1
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0008-qtbase-tzdir.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0008-qtbase-tzdir.patch
new file mode 100644
index 000000000000..71653a0e36e0
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0008-qtbase-tzdir.patch
@@ -0,0 +1,64 @@
+From 882343ea200fe28810bf217a820816affe885a39 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Tue, 17 Sep 2019 05:36:25 -0500
+Subject: [PATCH 08/10] qtbase-tzdir
+
+---
+ src/corelib/time/qtimezoneprivate_tz.cpp | 31 +++++++++++++++---------
+ 1 file changed, 19 insertions(+), 12 deletions(-)
+
+diff --git a/src/corelib/time/qtimezoneprivate_tz.cpp b/src/corelib/time/qtimezoneprivate_tz.cpp
+index 3c2695a789..e75735f88f 100644
+--- a/src/corelib/time/qtimezoneprivate_tz.cpp
++++ b/src/corelib/time/qtimezoneprivate_tz.cpp
+@@ -75,7 +75,11 @@ typedef QHash<QByteArray, QTzTimeZone> QTzTimeZoneHash;
+ // Parse zone.tab table, assume lists all installed zones, if not will need to read directories
+ static QTzTimeZoneHash loadTzTimeZones()
+ {
+-    QString path = QStringLiteral("/usr/share/zoneinfo/zone.tab");
++    // Try TZDIR first, in case we're running on NixOS.
++    QString path = QFile::decodeName(qgetenv("TZDIR")) + QStringLiteral("/zone.tab");
++    // Fallback to traditional paths in case we are not on NixOS.
++    if (!QFile::exists(path))
++        path = QStringLiteral("/usr/share/zoneinfo/zone.tab");
+     if (!QFile::exists(path))
+         path = QStringLiteral("/usr/lib/zoneinfo/zone.tab");
+ 
+@@ -658,20 +662,23 @@ void QTzTimeZonePrivate::init(const QByteArray &ianaId)
+         if (!tzif.open(QIODevice::ReadOnly))
+             return;
+     } else {
+-        // Open named tz, try modern path first, if fails try legacy path
+-        tzif.setFileName(QLatin1String("/usr/share/zoneinfo/") + QString::fromLocal8Bit(ianaId));
++        // Try TZDIR first, in case we're running on NixOS
++        tzif.setFileName(QFile::decodeName(qgetenv("TZDIR")) + QStringLiteral("/") + QString::fromLocal8Bit(ianaId));
+         if (!tzif.open(QIODevice::ReadOnly)) {
+-            tzif.setFileName(QLatin1String("/usr/lib/zoneinfo/") + QString::fromLocal8Bit(ianaId));
++            tzif.setFileName(QLatin1String("/usr/share/zoneinfo/") + QString::fromLocal8Bit(ianaId));
+             if (!tzif.open(QIODevice::ReadOnly)) {
+-                // ianaId may be a POSIX rule, taken from $TZ or /etc/TZ
+-                const QByteArray zoneInfo = ianaId.split(',').at(0);
+-                const char *begin = zoneInfo.constBegin();
+-                if (PosixZone::parse(begin, zoneInfo.constEnd()).hasValidOffset()
+-                    && (begin == zoneInfo.constEnd()
+-                        || PosixZone::parse(begin, zoneInfo.constEnd()).hasValidOffset())) {
+-                    m_id = m_posixRule = ianaId;
++                tzif.setFileName(QLatin1String("/usr/lib/zoneinfo/") + QString::fromLocal8Bit(ianaId));
++                if (!tzif.open(QIODevice::ReadOnly)) {
++                    // ianaId may be a POSIX rule, taken from $TZ or /etc/TZ
++                    const QByteArray zoneInfo = ianaId.split(',').at(0);
++                    const char *begin = zoneInfo.constBegin();
++                    if (PosixZone::parse(begin, zoneInfo.constEnd()).hasValidOffset()
++                        && (begin == zoneInfo.constEnd()
++                            || PosixZone::parse(begin, zoneInfo.constEnd()).hasValidOffset())) {
++                        m_id = m_posixRule = ianaId;
++                    }
++                    return;
+                 }
+-                return;
+             }
+         }
+     }
+-- 
+2.25.1
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0009-qtbase-qtpluginpath.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0009-qtbase-qtpluginpath.patch
new file mode 100644
index 000000000000..009fe14838e7
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0009-qtbase-qtpluginpath.patch
@@ -0,0 +1,19 @@
+--- qtbase-everywhere-src-5.14.2/src/corelib/kernel/qcoreapplication.cpp	2020-03-27 10:49:31.000000000 +0100
++++ qtbase-everywhere-src-5.14.2/src/corelib/kernel/qcoreapplication.cpp.patched	2020-05-09 15:03:03.968084088 +0200
+@@ -2691,6 +2691,16 @@
+         QStringList *app_libpaths = new QStringList;
+         coreappdata()->app_libpaths.reset(app_libpaths);
+
++        // Add library paths derived from PATH
++        const QStringList paths = QFile::decodeName(qgetenv("PATH")).split(':');
++        const QString plugindir = QStringLiteral("../" NIXPKGS_QT_PLUGIN_PREFIX);
++        for (const QString &path: paths) {
++            if (!path.isEmpty()) {
++                app_libpaths->append(QDir::cleanPath(path + QDir::separator() + plugindir));
++            }
++        }
++
++
+         auto setPathsFromEnv = [&](QString libPathEnv) {
+             if (!libPathEnv.isEmpty()) {
+                 QStringList paths = libPathEnv.split(QDir::listSeparator(), QString::SkipEmptyParts);
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0010-qtbase-assert.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0010-qtbase-assert.patch
new file mode 100644
index 000000000000..e10f97607326
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0010-qtbase-assert.patch
@@ -0,0 +1,32 @@
+From c8893a4e0a1b46796e39b4a338358fdb45685cba Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Tue, 17 Sep 2019 05:37:04 -0500
+Subject: [PATCH 09/10] qtbase-assert
+
+---
+ src/testlib/qtestassert.h | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/src/testlib/qtestassert.h b/src/testlib/qtestassert.h
+index 6498ea84ef..d821ced7fc 100644
+--- a/src/testlib/qtestassert.h
++++ b/src/testlib/qtestassert.h
+@@ -44,10 +44,13 @@
+ 
+ QT_BEGIN_NAMESPACE
+ 
+-
++#if defined(QT_NO_DEBUG) && !defined(QT_FORCE_ASSERTS)
++#define QTEST_ASSERT(cond) do { } while ((false) && (cond))
++#define QTEST_ASSERT_X(cond, where, what) do { } while ((false) && (cond))
++#else
+ #define QTEST_ASSERT(cond) do { if (!(cond)) qt_assert(#cond,__FILE__,__LINE__); } while (false)
+-
+ #define QTEST_ASSERT_X(cond, where, what) do { if (!(cond)) qt_assert_x(where, what,__FILE__,__LINE__); } while (false)
++#endif
+ 
+ QT_END_NAMESPACE
+ 
+-- 
+2.25.1
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0011-fix-header_module.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0011-fix-header_module.patch
new file mode 100644
index 000000000000..4358097dddf2
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtbase.patch.d/0011-fix-header_module.patch
@@ -0,0 +1,25 @@
+From 4c488fdb457e63924383fb7f8ad45bed3df49480 Mon Sep 17 00:00:00 2001
+From: Will Dietz <w@wdtz.org>
+Date: Mon, 30 Sep 2019 20:15:40 -0500
+Subject: [PATCH 10/10] fix header_module
+
+---
+ mkspecs/features/qt_module.prf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
+index 16b39031bc..1ac3d6fe59 100644
+--- a/mkspecs/features/qt_module.prf
++++ b/mkspecs/features/qt_module.prf
+@@ -84,7 +84,7 @@ header_module {
+         CONFIG  += qt_no_install_library
+ 
+     # Allow creation of .prl, .la and .pc files.
+-    target.path = $$[QT_INSTALL_LIBS]
++    target.path = $$NIX_OUTPUT_OUT/lib
+     target.CONFIG += dummy_install
+     INSTALLS    += target
+ } else {
+-- 
+2.25.1
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtdeclarative.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtdeclarative.patch
new file mode 100644
index 000000000000..8f5b5d4790fb
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtdeclarative.patch
@@ -0,0 +1,33 @@
+diff --git a/src/qml/qml/qqmlimport.cpp b/src/qml/qml/qqmlimport.cpp
+index 005db4248..685c5b1b2 100644
+--- a/src/qml/qml/qqmlimport.cpp
++++ b/src/qml/qml/qqmlimport.cpp
+@@ -1760,6 +1760,15 @@ QQmlImportDatabase::QQmlImportDatabase(QQmlEngine *e)
+     QString installImportsPath =  QLibraryInfo::location(QLibraryInfo::Qml2ImportsPath);
+     addImportPath(installImportsPath);
+ 
++    // Add import paths derived from PATH
++    const QStringList paths = QFile::decodeName(qgetenv("PATH")).split(':');
++    const QString qmldir = QStringLiteral("../" NIXPKGS_QML2_IMPORT_PREFIX);
++    for (const QString &path: paths) {
++        if (!path.isEmpty()) {
++            addImportPath(QDir::cleanPath(path + QDir::separator() + qmldir));
++        }
++    }
++
+     // env import paths
+     if (Q_UNLIKELY(!qEnvironmentVariableIsEmpty("QML2_IMPORT_PATH"))) {
+         const QString envImportPath = qEnvironmentVariable("QML2_IMPORT_PATH");
+diff --git a/tools/qmlcachegen/qmlcache.prf b/tools/qmlcachegen/qmlcache.prf
+index 537eaf62e..e21de58f6 100644
+--- a/tools/qmlcachegen/qmlcache.prf
++++ b/tools/qmlcachegen/qmlcache.prf
+@@ -26,7 +26,7 @@ defineReplace(qmlCacheOutputFileName) {
+ }
+ 
+ qmlcacheinst.base = $$QMLCACHE_DESTDIR
+-qmlcacheinst.path = $$[QT_INSTALL_QML]/$$TARGETPATH
++qmlcacheinst.path = $$NIX_OUTPUT_QML/$$TARGETPATH
+ qmlcacheinst.CONFIG = no_check_exist
+ 
+ qmlcachegen.input = CACHEGEN_FILES
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtscript.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtscript.patch
new file mode 100644
index 000000000000..5508dec1280e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtscript.patch
@@ -0,0 +1,13 @@
+diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
+index 1f6d25e..087c3fb 100644
+--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
++++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
+@@ -81,7 +81,7 @@
+ #include <pthread.h>
+ #elif PLATFORM(GTK)
+ #include <wtf/gtk/GOwnPtr.h>
+-typedef struct _GMutex GMutex;
++typedef union _GMutex GMutex;
+ typedef struct _GCond GCond;
+ #endif
+ 
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtserialport.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtserialport.patch
new file mode 100644
index 000000000000..f25524e80bcf
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtserialport.patch
@@ -0,0 +1,22 @@
+diff --git a/src/serialport/qtudev_p.h b/src/serialport/qtudev_p.h
+index af2dab2..8e17f64 100644
+--- a/src/serialport/qtudev_p.h
++++ b/src/serialport/qtudev_p.h
+@@ -111,9 +111,17 @@ inline QFunctionPointer resolveSymbol(QLibrary *udevLibrary, const char *symbolN
+ inline bool resolveSymbols(QLibrary *udevLibrary)
+ {
+     if (!udevLibrary->isLoaded()) {
++#ifdef NIXPKGS_LIBUDEV
++        udevLibrary->setFileNameAndVersion(QLatin1String(NIXPKGS_LIBUDEV), 1);
++#else
+         udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 1);
++#endif
+         if (!udevLibrary->load()) {
++#ifdef NIXPKGS_LIBUDEV
++            udevLibrary->setFileNameAndVersion(QLatin1String(NIXPKGS_LIBUDEV), 0);
++#else
+             udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 0);
++#endif
+             if (!udevLibrary->load()) {
+                 qWarning("Failed to load the library: %s, supported version(s): %i and %i", qPrintable(udevLibrary->fileName()), 1, 0);
+                 return false;
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qttools.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qttools.patch
new file mode 100644
index 000000000000..8ae12198ca25
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qttools.patch
@@ -0,0 +1,15 @@
+--- a/src/macdeployqt/shared/shared.cpp
++++ b/src/macdeployqt/shared/shared.cpp
+@@ -1241,6 +1241,12 @@ bool deployQmlImports(const QString &appBundlePath, DeploymentInfo deploymentInf
+     if (!QFile(qmlImportScannerPath).exists())
+         qmlImportScannerPath = QCoreApplication::applicationDirPath() + "/qmlimportscanner";
+ 
++#ifdef NIXPKGS_QMLIMPORTSCANNER
++    // Fallback: Nixpkgs hardcoded path
++    if (!QFile(qmlImportScannerPath).exists())
++        qmlImportScannerPath = NIXPKGS_QMLIMPORTSCANNER;
++#endif
++
+     // Verify that we found a qmlimportscanner binary
+     if (!QFile(qmlImportScannerPath).exists()) {
+         LogError() << "qmlimportscanner not found at" << qmlImportScannerPath;
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebengine-darwin-no-platform-check.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebengine-darwin-no-platform-check.patch
new file mode 100644
index 000000000000..546e753144d0
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebengine-darwin-no-platform-check.patch
@@ -0,0 +1,33 @@
+diff --git a/mkspecs/features/platform.prf b/mkspecs/features/platform.prf
+--- a/mkspecs/features/platform.prf
++++ b/mkspecs/features/platform.prf
+@@ -40,8 +40,6 @@ defineTest(isPlatformSupported) {
+   } else:osx {
+     # FIXME: Try to get it back down to 8.2 for building on OS X 10.11
+     !isMinXcodeVersion(8, 3, 3) {
+-      skipBuild("Using Xcode version $$QMAKE_XCODE_VERSION, but at least version 8.3.3 is required to build Qt WebEngine.")
+-      return(false)
+     }
+     !clang|intel_icc {
+         skipBuild("Qt WebEngine on macOS requires Clang.")
+@@ -54,8 +52,6 @@ defineTest(isPlatformSupported) {
+       return(false)
+     }
+     !isMinOSXSDKVersion(10, 12): {
+-      skipBuild("Building Qt WebEngine requires a macOS SDK version of 10.12 or newer. Current version is $${WEBENGINE_OSX_SDK_PRODUCT_VERSION}.")
+-      return(false)
+     }
+   } else {
+     skipBuild("Unknown platform. Qt WebEngine only supports Linux, Windows, and macOS.")
+diff --git a/src/core/config/mac_osx.pri b/src/core/config/mac_osx.pri
+--- a/src/core/config/mac_osx.pri
++++ b/src/core/config/mac_osx.pri
+@@ -5,8 +5,6 @@ load(functions)
+ # otherwise query for it.
+ QMAKE_MAC_SDK_VERSION = $$eval(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.SDKVersion)
+ isEmpty(QMAKE_MAC_SDK_VERSION) {
+-     QMAKE_MAC_SDK_VERSION = $$system("/usr/bin/xcodebuild -sdk $${QMAKE_MAC_SDK} -version SDKVersion 2>/dev/null")
+-     isEmpty(QMAKE_MAC_SDK_VERSION): error("Could not resolve SDK version for \'$${QMAKE_MAC_SDK}\'")
+ }
+
+ QMAKE_CLANG_DIR = "/usr"
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-qos-classes.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-qos-classes.patch
new file mode 100644
index 000000000000..a7087f517623
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-qos-classes.patch
@@ -0,0 +1,11 @@
+diff --git a/Source/cmake/OptionsQt.cmake b/Source/cmake/OptionsQt.cmake
+--- a/Source/cmake/OptionsQt.cmake
++++ b/Source/cmake/OptionsQt.cmake
+@@ -683,7 +683,6 @@ if (WIN32 AND COMPILER_IS_GCC_OR_CLANG)
+ endif ()
+ 
+ if (APPLE)
+-    SET_AND_EXPOSE_TO_BUILD(HAVE_QOS_CLASSES 1)
+ endif ()
+ 
+ if (ENABLE_MATHML)
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-readline.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-readline.patch
new file mode 100644
index 000000000000..26d189d86019
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit-darwin-no-readline.patch
@@ -0,0 +1,45 @@
+diff --git a/Source/JavaScriptCore/shell/CMakeLists.txt b/Source/JavaScriptCore/shell/CMakeLists.txt
+--- a/Source/JavaScriptCore/shell/CMakeLists.txt
++++ b/Source/JavaScriptCore/shell/CMakeLists.txt
+@@ -9,7 +9,6 @@ set(JSC_LIBRARIES
+ )
+ 
+ if (WTF_OS_MAC_OS_X)
+-    list(APPEND JSC_LIBRARIES edit)
+ endif ()
+ 
+ if ("${JavaScriptCore_LIBRARY_TYPE}" MATCHES "STATIC")
+diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
+--- a/Source/WTF/wtf/Platform.h
++++ b/Source/WTF/wtf/Platform.h
+@@ -563,7 +563,6 @@
+ #if PLATFORM(IOS)
+ 
+ #define HAVE_NETWORK_EXTENSION 1
+-#define HAVE_READLINE 1
+ #if USE(APPLE_INTERNAL_SDK)
+ #define USE_CFNETWORK 1
+ #endif
+@@ -650,7 +649,6 @@
+ #define HAVE_MADV_DONTNEED 1
+ #define HAVE_MERGESORT 1
+ #define HAVE_PTHREAD_SETNAME_NP 1
+-#define HAVE_READLINE 1
+ #define HAVE_SYS_TIMEB_H 1
+ 
+ #if !PLATFORM(GTK) && !PLATFORM(QT)
+diff --git a/Source/WTF/wtf/PlatformMac.cmake b/Source/WTF/wtf/PlatformMac.cmake
+--- a/Source/WTF/wtf/PlatformMac.cmake
++++ b/Source/WTF/wtf/PlatformMac.cmake
+@@ -2,11 +2,9 @@ set(WTF_LIBRARY_TYPE SHARED)
+ 
+ find_library(COCOA_LIBRARY Cocoa)
+ find_library(COREFOUNDATION_LIBRARY CoreFoundation)
+-find_library(READLINE_LIBRARY Readline)
+ list(APPEND WTF_LIBRARIES
+     ${COREFOUNDATION_LIBRARY}
+     ${COCOA_LIBRARY}
+-    ${READLINE_LIBRARY}
+     libicucore.dylib
+ )
+ 
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit.patch
new file mode 100644
index 000000000000..b94a4b76cbab
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/qtwebkit.patch
@@ -0,0 +1,12 @@
+diff --git a/Source/WebKit2/PlatformQt.cmake b/Source/WebKit2/PlatformQt.cmake
+--- a/Source/WebKit2/PlatformQt.cmake
++++ b/Source/WebKit2/PlatformQt.cmake
+@@ -261,6 +261,7 @@
+ list(APPEND WebKit2_SYSTEM_INCLUDE_DIRECTORIES
+     ${GLIB_INCLUDE_DIRS}
+     ${GSTREAMER_INCLUDE_DIRS}
++    ${GSTREAMER_PBUTILS_INCLUDE_DIRS}
+     ${Qt5Quick_INCLUDE_DIRS}
+     ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
+     ${SQLITE_INCLUDE_DIR}
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.14/srcs.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.14/srcs.nix
new file mode 100644
index 000000000000..6ac958442f49
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.14/srcs.nix
@@ -0,0 +1,342 @@
+# DO NOT EDIT! This file is generated automatically.
+# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/5.14
+{ fetchurl, mirror }:
+
+{
+  qt3d = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qt3d-everywhere-src-5.14.2.tar.xz";
+      sha256 = "9da82f1cc4b7d416d31ec96224c59d221473a48f6e579eef978f7d2e3932c674";
+      name = "qt3d-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtactiveqt = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtactiveqt-everywhere-src-5.14.2.tar.xz";
+      sha256 = "b53517d5d128719773a2941ba52da10acd7aa3149948862bc08c98f5b64152a9";
+      name = "qtactiveqt-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtandroidextras = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtandroidextras-everywhere-src-5.14.2.tar.xz";
+      sha256 = "4a8fd92b5c49a663cf0bd492804eaf1574d11137e2cbdd41d6bf5fad0c3c4d76";
+      name = "qtandroidextras-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtbase = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtbase-everywhere-src-5.14.2.tar.xz";
+      sha256 = "48b9e79220941665a9dd827548c6428f7aa3052ccba8f4f7e039a94aa1d2b28a";
+      name = "qtbase-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtcharts = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtcharts-everywhere-src-5.14.2.tar.xz";
+      sha256 = "adb25203ea748d886cc3d8993c20def702115eccea311594592058134ba83bb7";
+      name = "qtcharts-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtconnectivity = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtconnectivity-everywhere-src-5.14.2.tar.xz";
+      sha256 = "abe67b3e3a775e2a2e27c62a5391f37007ffbe72bce58b96116995616cfcbc28";
+      name = "qtconnectivity-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtdatavis3d = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtdatavis3d-everywhere-src-5.14.2.tar.xz";
+      sha256 = "723c03db2d2805b1be4ca534ac7bc867a1a21894d33a7e9261a382f3fa9d0e20";
+      name = "qtdatavis3d-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtdeclarative = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtdeclarative-everywhere-src-5.14.2.tar.xz";
+      sha256 = "a3c4617adc9760347c93d2eb6c25d22f620cd22f44afa0494eb499a805831650";
+      name = "qtdeclarative-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtdoc = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtdoc-everywhere-src-5.14.2.tar.xz";
+      sha256 = "5a55cdb55af35eb222d06179567851c175f24a3732f7dee5be073df4a893172b";
+      name = "qtdoc-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtgamepad = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtgamepad-everywhere-src-5.14.2.tar.xz";
+      sha256 = "f77daadb4755cf760e11812264259fb103396fd1b06df1e06b5df162081c8d03";
+      name = "qtgamepad-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtgraphicaleffects = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtgraphicaleffects-everywhere-src-5.14.2.tar.xz";
+      sha256 = "487a7f858244a08264363733055a8cf8b00e77c658c5608cc462817d15e4b50f";
+      name = "qtgraphicaleffects-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtimageformats = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtimageformats-everywhere-src-5.14.2.tar.xz";
+      sha256 = "733eca0165c15e046b106039c989dac7f6bc2ecf215396d965ed065369264f8c";
+      name = "qtimageformats-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtlocation = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtlocation-everywhere-src-5.14.2.tar.xz";
+      sha256 = "c37708bc396f6dac397b49a6a268d5edb39e1c8296ca2337ce9e80bde04775cc";
+      name = "qtlocation-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtlottie = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtlottie-everywhere-src-5.14.2.tar.xz";
+      sha256 = "55d1392dc92cbec11263084360075dc5fc3fdc25c1969adfbdec84299b285978";
+      name = "qtlottie-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtmacextras = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtmacextras-everywhere-src-5.14.2.tar.xz";
+      sha256 = "d12587b46c84a7822194fc3ccf46f7c18ff3b31566d3dde4f5fe772f1d8776e5";
+      name = "qtmacextras-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtmultimedia = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtmultimedia-everywhere-src-5.14.2.tar.xz";
+      sha256 = "7acd8ede6835314206e407b35b668f0add67544577fb51fe67afb03137fb9fe9";
+      name = "qtmultimedia-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtnetworkauth = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtnetworkauth-everywhere-src-5.14.2.tar.xz";
+      sha256 = "4f00513dd18598487d02187b80b54c669662cf8a8f2573858c7f9282d7b9265e";
+      name = "qtnetworkauth-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtpurchasing = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtpurchasing-everywhere-src-5.14.2.tar.xz";
+      sha256 = "69b087001e8fcec5bb49ca333d5f44e6b7eb09f76421dc792fc9cd76dee9e851";
+      name = "qtpurchasing-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtquick3d = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtquick3d-everywhere-src-5.14.2.tar.xz";
+      sha256 = "0640696d501f2b0bf57f64e98f30bfa3e1cc19c11c0e05e43d4fdb0d20488b2e";
+      name = "qtquick3d-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtquickcontrols = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtquickcontrols-everywhere-src-5.14.2.tar.xz";
+      sha256 = "d55def1dd4ee1250bd6a4e76849f4e362368b6411c2216d5f669c761216d4461";
+      name = "qtquickcontrols-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtquickcontrols2 = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtquickcontrols2-everywhere-src-5.14.2.tar.xz";
+      sha256 = "faf7d349d8f4a8db36cd3c62a5724bcf689300f2fdb7dc1ea034392aab981560";
+      name = "qtquickcontrols2-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtquicktimeline = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtquicktimeline-everywhere-src-5.14.2.tar.xz";
+      sha256 = "83a45d0998cbc77f8094854a477ab1ac0838ae7fd822563d995df40149893a9e";
+      name = "qtquicktimeline-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtremoteobjects = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtremoteobjects-everywhere-src-5.14.2.tar.xz";
+      sha256 = "a6a601c4f4aab6fe41a462dae57033819f697e3317240a382cee45c08be614d6";
+      name = "qtremoteobjects-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtscript = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtscript-everywhere-src-5.14.2.tar.xz";
+      sha256 = "e9fd487ccb3cbf00e86b0b803aa79e9f6bbe7a337b8e97d069e040c3e0789bfe";
+      name = "qtscript-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtscxml = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtscxml-everywhere-src-5.14.2.tar.xz";
+      sha256 = "030cea352a56074f577200f967ef37c959b2767127de61f766f59b0d99763790";
+      name = "qtscxml-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtsensors = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtsensors-everywhere-src-5.14.2.tar.xz";
+      sha256 = "bccfca6910b0383d8f65823496ff5011abed2fa8fd446b4b27333d0fd7bb8c61";
+      name = "qtsensors-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtserialbus = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtserialbus-everywhere-src-5.14.2.tar.xz";
+      sha256 = "0b7762175a649a40c4dd619c5de61d772235dc86099343278e2c3229d0836a91";
+      name = "qtserialbus-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtserialport = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtserialport-everywhere-src-5.14.2.tar.xz";
+      sha256 = "a6d977dd723ad4d3368b5163691405b8852f809974a96ec54103494e834aea21";
+      name = "qtserialport-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtspeech = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtspeech-everywhere-src-5.14.2.tar.xz";
+      sha256 = "5e9e8ea62f0207ba894df1e136df0af9fc5443c7817d28c39f0ea2bbae9ec6da";
+      name = "qtspeech-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtsvg = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtsvg-everywhere-src-5.14.2.tar.xz";
+      sha256 = "c7d7faa01a3e7a6e4d38fafcec5529a488258218749779e6fa0e09a21173b5a1";
+      name = "qtsvg-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qttools = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qttools-everywhere-src-5.14.2.tar.xz";
+      sha256 = "5bb0cf7832b88eb6bc9d4289f98307eb14b16a453ad6cf42cca13c4fe1a053c5";
+      name = "qttools-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qttranslations = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qttranslations-everywhere-src-5.14.2.tar.xz";
+      sha256 = "2088ebee9f5dd0336c9fd11436899a95b7ce0141ce072290de1e8f315d82d1a6";
+      name = "qttranslations-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtvirtualkeyboard = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtvirtualkeyboard-everywhere-src-5.14.2.tar.xz";
+      sha256 = "364f3338563e617e7c964a37170b415b546c5f82965e781271f9dada3e3868d7";
+      name = "qtvirtualkeyboard-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtwayland = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtwayland-everywhere-src-5.14.2.tar.xz";
+      sha256 = "d31633ca718fb407cf70870613d45d0ed80aa04c058586ac3036bae1aff7832a";
+      name = "qtwayland-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtwebchannel = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtwebchannel-everywhere-src-5.14.2.tar.xz";
+      sha256 = "7d1dc8441523638c3d455c7d408ec65aebc073acab80e24063865f929231f874";
+      name = "qtwebchannel-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtwebengine = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtwebengine-everywhere-src-5.14.2.tar.xz";
+      sha256 = "e169d6a75d8c397e04f843bc1b9585950fb9a001255cd18d6293f66fa8a6c947";
+      name = "qtwebengine-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtwebglplugin = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtwebglplugin-everywhere-src-5.14.2.tar.xz";
+      sha256 = "eb4118910b65d03d8448658ac1646e860d337e59b82d6575beda21824e313417";
+      name = "qtwebglplugin-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtwebsockets = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtwebsockets-everywhere-src-5.14.2.tar.xz";
+      sha256 = "f06e62b18313fe1b40a35566e79645de4a8e7ac9f7717d1d98a06c5b49afca84";
+      name = "qtwebsockets-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtwebview = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtwebview-everywhere-src-5.14.2.tar.xz";
+      sha256 = "c61f9213ee84fd7408898c0194468208ffb51af9d257e87e6b53daf24f65ff4b";
+      name = "qtwebview-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtwinextras = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtwinextras-everywhere-src-5.14.2.tar.xz";
+      sha256 = "980f1bc31b37c8597c0bac55f69ecf00d1677218ce82f7bc3933236cb6d907f2";
+      name = "qtwinextras-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtx11extras = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtx11extras-everywhere-src-5.14.2.tar.xz";
+      sha256 = "be9a84a03a2ee81771215264e5dff7a996d04be6192b8cdaa1d41e319a81545a";
+      name = "qtx11extras-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+  qtxmlpatterns = {
+    version = "5.14.2";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.14/5.14.2/submodules/qtxmlpatterns-everywhere-src-5.14.2.tar.xz";
+      sha256 = "219a876665345e3801baff71f31f30f5495c1cb9ab23fbbd27602632c80fcfb7";
+      name = "qtxmlpatterns-everywhere-src-5.14.2.tar.xz";
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix
new file mode 100644
index 000000000000..1a90c610a5b5
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/default.nix
@@ -0,0 +1,176 @@
+/*
+
+# Updates
+
+Before a major version update, make a copy of this directory. (We like to
+keep the old version around for a short time after major updates.) Add a
+top-level attribute to `top-level/all-packages.nix`.
+
+1. Update the URL in `pkgs/development/libraries/qt-5/$VERSION/fetch.sh`.
+2. From the top of the Nixpkgs tree, run
+   `./maintainers/scripts/fetch-kde-qt.sh > pkgs/development/libraries/qt-5/$VERSION/srcs.nix`.
+3. Check that the new packages build correctly.
+4. Commit the changes and open a pull request.
+
+*/
+
+{
+  newScope,
+  stdenv, fetchurl, fetchpatch, fetchFromGitHub, makeSetupHook, makeWrapper,
+  bison, cups ? null, harfbuzz, libGL, perl,
+  gstreamer, gst-plugins-base, gtk3, dconf,
+  llvmPackages_5,
+
+  # options
+  developerBuild ? false,
+  decryptSslTraffic ? false,
+  debug ? false,
+}:
+
+with stdenv.lib;
+
+let
+
+  qtCompatVersion = srcs.qtbase.version;
+
+  stdenvActual = if stdenv.cc.isClang then llvmPackages_5.stdenv else stdenv;
+
+  mirror = "https://download.qt.io";
+  srcs = import ./srcs.nix { inherit fetchurl; inherit mirror; } // {
+    # qtwebkit does not have an official release tarball on the qt mirror and is
+    # mostly maintained by the community.
+    qtwebkit = rec {
+      src = fetchFromGitHub {
+        owner = "qt";
+        repo = "qtwebkit";
+        rev = "v${version}";
+        sha256 = "0x8rng96h19xirn7qkz3lydal6v4vn00bcl0s3brz36dfs0z8wpg";
+      };
+      version = "5.212.0-alpha4";
+    };
+  };
+
+  patches = {
+    qtbase =
+      optionals stdenv.isDarwin [
+        ./qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
+        ./qtbase.patch.d/0002-qtbase-mac.patch
+      ]
+      ++ [
+        ./qtbase.patch.d/0003-qtbase-mkspecs.patch
+        ./qtbase.patch.d/0004-qtbase-replace-libdir.patch
+        ./qtbase.patch.d/0005-qtbase-cmake.patch
+        ./qtbase.patch.d/0006-qtbase-gtk3.patch
+        ./qtbase.patch.d/0007-qtbase-xcursor.patch
+        ./qtbase.patch.d/0008-qtbase-tzdir.patch
+        ./qtbase.patch.d/0009-qtbase-qtpluginpath.patch
+        ./qtbase.patch.d/0010-qtbase-assert.patch
+        ./qtbase.patch.d/0011-fix-header_module.patch
+      ];
+    qtdeclarative = [ ./qtdeclarative.patch ];
+    qtscript = [ ./qtscript.patch ];
+    qtserialport = [ ./qtserialport.patch ];
+    qtwebengine = [ ]
+      ++ optional stdenv.isDarwin ./qtwebengine-darwin-no-platform-check.patch;
+    qtwebkit = [ ./qtwebkit.patch ]
+      ++ optionals stdenv.isDarwin [
+        ./qtwebkit-darwin-no-readline.patch
+        ./qtwebkit-darwin-no-qos-classes.patch
+      ];
+    qttools = [ ./qttools.patch ];
+  };
+
+  qtModule =
+    import ../qtModule.nix
+    {
+      inherit perl;
+      inherit (stdenv) lib;
+      # Use a variant of mkDerivation that does not include wrapQtApplications
+      # to avoid cyclic dependencies between Qt modules.
+      mkDerivation =
+        import ../mkDerivation.nix
+        { inherit (stdenv) lib; inherit debug; wrapQtAppsHook = null; }
+        stdenvActual.mkDerivation;
+    }
+    { inherit self srcs patches; };
+
+  addPackages = self: with self;
+    let
+      callPackage = self.newScope { inherit qtCompatVersion qtModule srcs; };
+    in {
+
+      mkDerivationWith =
+        import ../mkDerivation.nix
+        { inherit (stdenv) lib; inherit debug; inherit (self) wrapQtAppsHook; };
+
+      mkDerivation = mkDerivationWith stdenvActual.mkDerivation;
+
+      qtbase = callPackage ../modules/qtbase.nix {
+        inherit (srcs.qtbase) src version;
+        patches = patches.qtbase;
+        inherit bison cups harfbuzz libGL;
+        withGtk3 = true; inherit dconf gtk3;
+        inherit developerBuild decryptSslTraffic;
+      };
+
+      qtcharts = callPackage ../modules/qtcharts.nix {};
+      qtconnectivity = callPackage ../modules/qtconnectivity.nix {};
+      qtdeclarative = callPackage ../modules/qtdeclarative.nix {};
+      qtdoc = callPackage ../modules/qtdoc.nix {};
+      qtgraphicaleffects = callPackage ../modules/qtgraphicaleffects.nix {};
+      qtimageformats = callPackage ../modules/qtimageformats.nix {};
+      qtlocation = callPackage ../modules/qtlocation.nix {};
+      qtmacextras = callPackage ../modules/qtmacextras.nix {};
+      qtmultimedia = callPackage ../modules/qtmultimedia.nix {
+        inherit gstreamer gst-plugins-base;
+      };
+      qtnetworkauth = callPackage ../modules/qtnetworkauth.nix {};
+      qtquick1 = null;
+      qtquickcontrols = callPackage ../modules/qtquickcontrols.nix {};
+      qtquickcontrols2 = callPackage ../modules/qtquickcontrols2.nix {};
+      qtscript = callPackage ../modules/qtscript.nix {};
+      qtsensors = callPackage ../modules/qtsensors.nix {};
+      qtserialport = callPackage ../modules/qtserialport.nix {};
+      qtspeech = callPackage ../modules/qtspeech.nix {};
+      qtsvg = callPackage ../modules/qtsvg.nix {};
+      qtscxml = callPackage ../modules/qtscxml.nix {};
+      qttools = callPackage ../modules/qttools.nix {};
+      qttranslations = callPackage ../modules/qttranslations.nix {};
+      qtvirtualkeyboard = callPackage ../modules/qtvirtualkeyboard.nix {};
+      qtwayland = callPackage ../modules/qtwayland.nix {};
+      qtwebchannel = callPackage ../modules/qtwebchannel.nix {};
+      qtwebengine = callPackage ../modules/qtwebengine.nix {};
+      qtwebglplugin = callPackage ../modules/qtwebglplugin.nix {};
+      qtwebkit = callPackage ../modules/qtwebkit.nix {};
+      qtwebsockets = callPackage ../modules/qtwebsockets.nix {};
+      qtwebview = callPackage ../modules/qtwebview.nix {};
+      qtx11extras = callPackage ../modules/qtx11extras.nix {};
+      qtxmlpatterns = callPackage ../modules/qtxmlpatterns.nix {};
+
+      env = callPackage ../qt-env.nix {};
+      full = env "qt-full-${qtbase.version}" ([
+        qtcharts qtconnectivity qtdeclarative qtdoc qtgraphicaleffects
+        qtimageformats qtlocation qtmultimedia qtquickcontrols qtquickcontrols2
+        qtscript qtsensors qtserialport qtsvg qttools qttranslations
+        qtvirtualkeyboard qtwebchannel qtwebengine qtwebkit qtwebsockets
+        qtwebview qtx11extras qtxmlpatterns
+      ] ++ optional (!stdenv.isDarwin) qtwayland
+        ++ optional (stdenv.isDarwin) qtmacextras);
+
+      qmake = makeSetupHook {
+        deps = [ self.qtbase.dev ];
+        substitutions = {
+          fix_qmake_libtool = ../hooks/fix-qmake-libtool.sh;
+        };
+      } ../hooks/qmake-hook.sh;
+
+      wrapQtAppsHook = makeSetupHook {
+        deps =
+          [ self.qtbase.dev makeWrapper ]
+          ++ optional stdenv.isLinux self.qtwayland.dev;
+      } ../hooks/wrap-qt-apps-hook.sh;
+    };
+
+   self = makeScope newScope addPackages;
+
+in self
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/fetch.sh b/nixpkgs/pkgs/development/libraries/qt-5/5.15/fetch.sh
new file mode 100644
index 000000000000..97829a133ca5
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/fetch.sh
@@ -0,0 +1 @@
+WGET_ARGS=( http://download.qt.io/official_releases/qt/5.15/5.15.0/submodules/ )
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
new file mode 100644
index 000000000000..ba4c54b228c8
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0001-qtbase-mkspecs-mac.patch
@@ -0,0 +1,411 @@
+From 5ec1d1009d9943f20e82ffc087deabb31d447e75 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
+Date: Fri, 3 Apr 2020 21:07:58 +0200
+Subject: [PATCH 01/11] qtbase-mkspecs-mac
+
+---
+ mkspecs/common/mac.conf               |   2 +-
+ mkspecs/features/mac/default_post.prf | 206 --------------------------
+ mkspecs/features/mac/default_pre.prf  |  58 --------
+ mkspecs/features/mac/sdk.mk           |  25 ----
+ mkspecs/features/mac/sdk.prf          |  61 --------
+ 5 files changed, 1 insertion(+), 351 deletions(-)
+ delete mode 100644 mkspecs/features/mac/sdk.mk
+ delete mode 100644 mkspecs/features/mac/sdk.prf
+
+diff --git a/mkspecs/common/mac.conf b/mkspecs/common/mac.conf
+index 61bea952b2..9909dae726 100644
+--- a/mkspecs/common/mac.conf
++++ b/mkspecs/common/mac.conf
+@@ -23,7 +23,7 @@ QMAKE_INCDIR_OPENGL     = \
+ 
+ QMAKE_FIX_RPATH         = install_name_tool -id
+ 
+-QMAKE_LFLAGS_RPATH      = -Wl,-rpath,
++QMAKE_LFLAGS_RPATH      =
+ QMAKE_LFLAGS_GCSECTIONS = -Wl,-dead_strip
+ 
+ QMAKE_LFLAGS_REL_RPATH  =
+diff --git a/mkspecs/features/mac/default_post.prf b/mkspecs/features/mac/default_post.prf
+index 92a9112bca..b80ec1e801 100644
+--- a/mkspecs/features/mac/default_post.prf
++++ b/mkspecs/features/mac/default_post.prf
+@@ -68,212 +68,6 @@ qt {
+     }
+ }
+ 
+-# Add the same default rpaths as Xcode does for new projects.
+-# This is especially important for iOS/tvOS/watchOS where no other option is possible.
+-!no_default_rpath {
+-    uikit: QMAKE_RPATHDIR += @executable_path/Frameworks
+-    else: QMAKE_RPATHDIR += @executable_path/../Frameworks
+-    equals(TEMPLATE, lib):!plugin:lib_bundle: QMAKE_RPATHDIR += @loader_path/Frameworks
+-}
+-
+-# Don't pass -headerpad_max_install_names when using Bitcode.
+-# In that case the linker emits a warning stating that the flag is ignored when
+-# used with bitcode, for reasons that cannot be determined (rdar://problem/20748962).
+-# Using this flag is also unnecessary in practice on UIKit platforms since they
+-# are sandboxed, and only UIKit platforms support bitcode to begin with.
+-!bitcode: QMAKE_LFLAGS += $$QMAKE_LFLAGS_HEADERPAD
+-
+-app_extension_api_only {
+-    QMAKE_CFLAGS              += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
+-    QMAKE_CXXFLAGS            += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
+-    QMAKE_CXXFLAGS_PRECOMPILE += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
+-    QMAKE_LFLAGS              += $$QMAKE_CFLAGS_APPLICATION_EXTENSION
+-}
+-
+-macx-xcode {
+-    qmake_pkginfo_typeinfo.name = QMAKE_PKGINFO_TYPEINFO
+-    !isEmpty(QMAKE_PKGINFO_TYPEINFO): \
+-        qmake_pkginfo_typeinfo.value = $$QMAKE_PKGINFO_TYPEINFO
+-    else: \
+-        qmake_pkginfo_typeinfo.value = "????"
+-    QMAKE_MAC_XCODE_SETTINGS += qmake_pkginfo_typeinfo
+-
+-    bundle_version = $$VERSION
+-    isEmpty(bundle_version): bundle_version = 1.0.0
+-
+-    l = $$split(bundle_version, '.') 0 0  # make sure there are at least three
+-    VER_MAJ = $$member(l, 0, 0)
+-    VER_MIN = $$member(l, 1, 1)
+-    VER_PAT = $$member(l, 2, 2)
+-    unset(l)
+-
+-    qmake_full_version.name = QMAKE_FULL_VERSION
+-    qmake_full_version.value = $${VER_MAJ}.$${VER_MIN}.$${VER_PAT}
+-    QMAKE_MAC_XCODE_SETTINGS += qmake_full_version
+-
+-    qmake_short_version.name = QMAKE_SHORT_VERSION
+-    qmake_short_version.value = $${VER_MAJ}.$${VER_MIN}
+-    QMAKE_MAC_XCODE_SETTINGS += qmake_short_version
+-
+-    !isEmpty(QMAKE_XCODE_DEBUG_INFORMATION_FORMAT) {
+-        debug_information_format.name = DEBUG_INFORMATION_FORMAT
+-        debug_information_format.value = $$QMAKE_XCODE_DEBUG_INFORMATION_FORMAT
+-        debug_information_format.build = debug
+-        QMAKE_MAC_XCODE_SETTINGS += debug_information_format
+-    }
+-
+-    QMAKE_XCODE_ARCHS =
+-
+-    arch_device.name = "ARCHS[sdk=$${device.sdk}*]"
+-    arch_device.value = $$QMAKE_APPLE_DEVICE_ARCHS
+-    QMAKE_XCODE_ARCHS += $$QMAKE_APPLE_DEVICE_ARCHS
+-    QMAKE_MAC_XCODE_SETTINGS += arch_device
+-
+-    simulator {
+-        arch_simulator.name = "ARCHS[sdk=$${simulator.sdk}*]"
+-        arch_simulator.value = $$QMAKE_APPLE_SIMULATOR_ARCHS
+-        QMAKE_XCODE_ARCHS += $$QMAKE_APPLE_SIMULATOR_ARCHS
+-        QMAKE_MAC_XCODE_SETTINGS += arch_simulator
+-    }
+-
+-    only_active_arch.name = ONLY_ACTIVE_ARCH
+-    only_active_arch.value = YES
+-    only_active_arch.build = debug
+-    QMAKE_MAC_XCODE_SETTINGS += only_active_arch
+-} else {
+-    device|!simulator: VALID_DEVICE_ARCHS = $$QMAKE_APPLE_DEVICE_ARCHS
+-    simulator: VALID_SIMULATOR_ARCHS = $$QMAKE_APPLE_SIMULATOR_ARCHS
+-    VALID_ARCHS = $$VALID_DEVICE_ARCHS $$VALID_SIMULATOR_ARCHS
+-
+-    isEmpty(VALID_ARCHS): \
+-        error("QMAKE_APPLE_DEVICE_ARCHS or QMAKE_APPLE_SIMULATOR_ARCHS must contain at least one architecture")
+-
+-    single_arch: VALID_ARCHS = $$first(VALID_ARCHS)
+-
+-    ACTIVE_ARCHS = $(filter $(EXPORT_VALID_ARCHS), $(ARCHS))
+-    ARCH_ARGS = $(foreach arch, $(if $(EXPORT_ACTIVE_ARCHS), $(EXPORT_ACTIVE_ARCHS), $(EXPORT_VALID_ARCHS)), -arch $(arch))
+-
+-    QMAKE_EXTRA_VARIABLES += VALID_ARCHS ACTIVE_ARCHS ARCH_ARGS
+-
+-    arch_flags = $(EXPORT_ARCH_ARGS)
+-
+-    QMAKE_CFLAGS += $$arch_flags
+-    QMAKE_CXXFLAGS += $$arch_flags
+-    QMAKE_LFLAGS += $$arch_flags
+-
+-    QMAKE_PCH_ARCHS = $$VALID_ARCHS
+-
+-    macos: deployment_target = $$QMAKE_MACOSX_DEPLOYMENT_TARGET
+-    ios: deployment_target = $$QMAKE_IOS_DEPLOYMENT_TARGET
+-    tvos: deployment_target = $$QMAKE_TVOS_DEPLOYMENT_TARGET
+-    watchos: deployment_target = $$QMAKE_WATCHOS_DEPLOYMENT_TARGET
+-
+-    # If we're doing a simulator and device build, device and simulator
+-    # architectures use different paths and flags for the sysroot and
+-    # deployment target switch, so we must multiplex them across multiple
+-    # architectures using -Xarch. Otherwise we fall back to the simple path.
+-    # This is not strictly necessary, but results in cleaner command lines
+-    # and makes it easier for people to override EXPORT_VALID_ARCHS to limit
+-    # individual rules to a different set of architecture(s) from the overall
+-    # build (such as machtest in QtCore).
+-    simulator:device {
+-        QMAKE_XARCH_CFLAGS =
+-        QMAKE_XARCH_LFLAGS =
+-        QMAKE_EXTRA_VARIABLES += QMAKE_XARCH_CFLAGS QMAKE_XARCH_LFLAGS
+-
+-        for (arch, VALID_ARCHS) {
+-            contains(VALID_SIMULATOR_ARCHS, $$arch) {
+-                sdk = $$simulator.sdk
+-                version_identifier = $$simulator.deployment_identifier
+-            } else {
+-                sdk = $$device.sdk
+-                version_identifier = $$device.deployment_identifier
+-            }
+-
+-            version_min_flags = \
+-                -Xarch_$${arch} \
+-                -m$${version_identifier}-version-min=$$deployment_target
+-            QMAKE_XARCH_CFLAGS_$${arch} = $$version_min_flags \
+-                -Xarch_$${arch} \
+-                -isysroot$$xcodeSDKInfo(Path, $$sdk)
+-            QMAKE_XARCH_LFLAGS_$${arch} = $$version_min_flags \
+-                -Xarch_$${arch} \
+-                -isysroot$$xcodeSDKInfo(Path, $$sdk)
+-
+-            QMAKE_XARCH_CFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS_$${arch})
+-            QMAKE_XARCH_LFLAGS += $(EXPORT_QMAKE_XARCH_LFLAGS_$${arch})
+-
+-            QMAKE_EXTRA_VARIABLES += \
+-                QMAKE_XARCH_CFLAGS_$${arch} \
+-                QMAKE_XARCH_LFLAGS_$${arch}
+-        }
+-
+-        QMAKE_CFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS)
+-        QMAKE_CXXFLAGS += $(EXPORT_QMAKE_XARCH_CFLAGS)
+-        QMAKE_LFLAGS += $(EXPORT_QMAKE_XARCH_LFLAGS)
+-    } else {
+-        simulator {
+-            version_identifier = $$simulator.deployment_identifier
+-            sysroot_path  = $$xcodeSDKInfo(Path, $$simulator.sdk)
+-        } else {
+-            version_identifier = $$device.deployment_identifier
+-            sysroot_path  = $$xcodeSDKInfo(Path, $$device.sdk)
+-        }
+-        version_min_flag = -m$${version_identifier}-version-min=$$deployment_target
+-        QMAKE_CFLAGS += -isysroot $$sysroot_path $$version_min_flag
+-        QMAKE_CXXFLAGS += -isysroot $$sysroot_path $$version_min_flag
+-        QMAKE_LFLAGS += -isysroot $$sysroot_path $$version_min_flag
+-    }
+-
+-    # Enable precompiled headers for multiple architectures
+-    QMAKE_CFLAGS_USE_PRECOMPILE =
+-    for (arch, VALID_ARCHS) {
+-        icc_pch_style: \
+-            use_flag = "-pch-use "
+-        else: \
+-            use_flag = -include
+-
+-        # Only use Xarch with multi-arch, as the option confuses ccache
+-        count(VALID_ARCHS, 1, greaterThan): \
+-            QMAKE_CFLAGS_USE_PRECOMPILE += \
+-                -Xarch_$${arch}
+-
+-        QMAKE_CFLAGS_USE_PRECOMPILE += \
+-            $${use_flag}${QMAKE_PCH_OUTPUT_$${arch}}
+-    }
+-    icc_pch_style {
+-        QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE -include ${QMAKE_PCH_INPUT}
+-        QMAKE_CFLAGS_USE_PRECOMPILE =
+-    } else {
+-        QMAKE_CXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
+-        QMAKE_OBJCFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
+-        QMAKE_OBJCXXFLAGS_USE_PRECOMPILE = $$QMAKE_CFLAGS_USE_PRECOMPILE
+-    }
+-
+-    QMAKE_PCH_OUTPUT_EXT = _${QMAKE_PCH_ARCH}$${QMAKE_PCH_OUTPUT_EXT}
+-}
+-
+-!equals(sdk_version, $$QMAKE_MAC_SDK_VERSION) {
+-    # Explicit SDK version has been set, respect that
+-    QMAKE_LFLAGS += -Wl,-sdk_version -Wl,$$sdk_version
+-}
+-
+-cache(QMAKE_XCODE_DEVELOPER_PATH, stash)
+-!isEmpty(QMAKE_XCODE_VERSION): \
+-    cache(QMAKE_XCODE_VERSION, stash)
+-
+-QMAKE_XCODE_LIBRARY_SUFFIX = $$qtPlatformTargetSuffix()
+-
+-xcode_product_bundle_identifier_setting.name = PRODUCT_BUNDLE_IDENTIFIER
+-xcode_product_bundle_identifier_setting.value = $$QMAKE_TARGET_BUNDLE_PREFIX
+-isEmpty(xcode_product_bundle_identifier_setting.value): \
+-    xcode_product_bundle_identifier_setting.value = "com.yourcompany"
+-xcode_product_bundle_target = $$QMAKE_BUNDLE
+-isEmpty(xcode_product_bundle_target): \
+-    xcode_product_bundle_target = ${PRODUCT_NAME:rfc1034identifier}
+-xcode_product_bundle_identifier_setting.value = "$${xcode_product_bundle_identifier_setting.value}.$${xcode_product_bundle_target}"
+-QMAKE_MAC_XCODE_SETTINGS += xcode_product_bundle_identifier_setting
+-
+ !macx-xcode {
+     generate_xcode_project.commands = @$(QMAKE) -spec macx-xcode \"$(EXPORT__PRO_FILE_)\" $$QMAKE_ARGS
+     generate_xcode_project.target = xcodeproj
+diff --git a/mkspecs/features/mac/default_pre.prf b/mkspecs/features/mac/default_pre.prf
+index e3534561a5..3b01424e67 100644
+--- a/mkspecs/features/mac/default_pre.prf
++++ b/mkspecs/features/mac/default_pre.prf
+@@ -1,60 +1,2 @@
+ CONFIG = asset_catalogs rez $$CONFIG
+ load(default_pre)
+-
+-isEmpty(QMAKE_XCODE_DEVELOPER_PATH) {
+-    # Get path of Xcode's Developer directory
+-    QMAKE_XCODE_DEVELOPER_PATH = $$system("/usr/bin/xcode-select --print-path 2>/dev/null")
+-    isEmpty(QMAKE_XCODE_DEVELOPER_PATH): \
+-        error("Xcode path is not set. Please use xcode-select to choose Xcode installation path.")
+-
+-    # Make sure Xcode path is valid
+-    !exists($$QMAKE_XCODE_DEVELOPER_PATH): \
+-        error("Xcode is not installed in $${QMAKE_XCODE_DEVELOPER_PATH}. Please use xcode-select to choose Xcode installation path.")
+-}
+-
+-isEmpty(QMAKE_XCODEBUILD_PATH): \
+-    QMAKE_XCODEBUILD_PATH = $$system("/usr/bin/xcrun -find xcodebuild 2>/dev/null")
+-
+-!isEmpty(QMAKE_XCODEBUILD_PATH) {
+-    # Make sure Xcode is set up properly
+-    !system("/usr/bin/xcrun xcodebuild -license check 2>/dev/null"): \
+-        error("Xcode not set up properly. You need to confirm the license agreement by running 'sudo xcrun xcodebuild -license accept'.")
+-
+-    isEmpty(QMAKE_XCODE_VERSION) {
+-        # Extract Xcode version using xcodebuild
+-        xcode_version = $$system("/usr/bin/xcrun xcodebuild -version")
+-        QMAKE_XCODE_VERSION = $$member(xcode_version, 1)
+-        isEmpty(QMAKE_XCODE_VERSION): error("Could not resolve Xcode version.")
+-        unset(xcode_version)
+-    }
+-}
+-
+-isEmpty(QMAKE_TARGET_BUNDLE_PREFIX) {
+-    QMAKE_XCODE_PREFERENCES_FILE = $$(HOME)/Library/Preferences/com.apple.dt.Xcode.plist
+-    exists($$QMAKE_XCODE_PREFERENCES_FILE): \
+-        QMAKE_TARGET_BUNDLE_PREFIX = $$system("/usr/libexec/PlistBuddy -c 'print IDETemplateOptions:bundleIdentifierPrefix' $$QMAKE_XCODE_PREFERENCES_FILE 2>/dev/null")
+-
+-    !isEmpty(_QMAKE_CACHE_):!isEmpty(QMAKE_TARGET_BUNDLE_PREFIX): \
+-        cache(QMAKE_TARGET_BUNDLE_PREFIX)
+-}
+-
+-QMAKE_ASSET_CATALOGS_APP_ICON = AppIcon
+-
+-# Make the default debug info format for static debug builds
+-# DWARF instead of DWARF with dSYM. This cuts down build times
+-# for application debug builds significantly, as Xcode doesn't
+-# have to pull out all the DWARF info from the Qt static libs
+-# and put it into a dSYM file. We don't need that dSYM file in
+-# the first place, since the information is available in the
+-# object files inside the archives (static libraries).
+-macx-xcode:qtConfig(static): \
+-    QMAKE_XCODE_DEBUG_INFORMATION_FORMAT = dwarf
+-
+-# This variable is used by the xcode_dynamic_library_suffix
+-# feature, which allows Xcode to choose the Qt libraries to link to
+-# at build time, depending on the current Xcode SDK and configuration.
+-QMAKE_XCODE_LIBRARY_SUFFIX_SETTING = QT_LIBRARY_SUFFIX
+-
+-xcode_copy_phase_strip_setting.name = COPY_PHASE_STRIP
+-xcode_copy_phase_strip_setting.value = NO
+-QMAKE_MAC_XCODE_SETTINGS += xcode_copy_phase_strip_setting
+diff --git a/mkspecs/features/mac/sdk.mk b/mkspecs/features/mac/sdk.mk
+deleted file mode 100644
+index c40f58c987..0000000000
+--- a/mkspecs/features/mac/sdk.mk
++++ /dev/null
+@@ -1,25 +0,0 @@
+-
+-ifeq ($(QT_MAC_SDK_NO_VERSION_CHECK),)
+-    CHECK_SDK_COMMAND = /usr/bin/xcrun --sdk $(EXPORT_QMAKE_MAC_SDK) -show-sdk-version 2>&1
+-    CURRENT_MAC_SDK_VERSION := $(shell DEVELOPER_DIR=$(EXPORT_QMAKE_XCODE_DEVELOPER_PATH) $(CHECK_SDK_COMMAND))
+-    ifneq ($(CURRENT_MAC_SDK_VERSION),$(EXPORT_QMAKE_MAC_SDK_VERSION))
+-        # We don't want to complain about out of date SDK unless the target needs to be remade.
+-        # This covers use-cases such as running 'make check' after moving the build to a
+-        # computer without Xcode or with a different Xcode version.
+-        TARGET_UP_TO_DATE := $(shell QT_MAC_SDK_NO_VERSION_CHECK=1 $(MAKE) --question $(QMAKE_TARGET) && echo 1 || echo 0)
+-        ifeq ($(TARGET_UP_TO_DATE),0)
+-            ifneq ($(findstring missing DEVELOPER_DIR path,$(CURRENT_MAC_SDK_VERSION)),)
+-                $(info The developer dir $(EXPORT_QMAKE_XCODE_DEVELOPER_PATH) is no longer valid.)
+-            else ifneq ($(findstring SDK "$(EXPORT_QMAKE_MAC_SDK)" cannot be located,$(CURRENT_MAC_SDK_VERSION)),)
+-                $(info The developer dir $(EXPORT_QMAKE_XCODE_DEVELOPER_PATH) no longer contains the $(EXPORT_QMAKE_MAC_SDK_VERSION) platform SDK.)
+-            else ifneq ($(CURRENT_MAC_SDK_VERSION),)
+-                $(info The platform SDK has been changed from version $(EXPORT_QMAKE_MAC_SDK_VERSION) to version $(CURRENT_MAC_SDK_VERSION).)
+-            else
+-                $(info Unknown error resolving current platform SDK version.)
+-            endif
+-            $(info This requires a fresh build. Please wipe the build directory completely,)
+-            $(info including any .qmake.stash and .qmake.cache files generated by qmake.)
+-            $(error ^)
+-        endif
+-    endif
+-endif
+diff --git a/mkspecs/features/mac/sdk.prf b/mkspecs/features/mac/sdk.prf
+deleted file mode 100644
+index 3a9c2778bb..0000000000
+--- a/mkspecs/features/mac/sdk.prf
++++ /dev/null
+@@ -1,61 +0,0 @@
+-
+-isEmpty(QMAKE_MAC_SDK): \
+-    error("QMAKE_MAC_SDK must be set when using CONFIG += sdk.")
+-
+-contains(QMAKE_MAC_SDK, .*/.*): \
+-    error("QMAKE_MAC_SDK can only contain short-form SDK names (eg. macosx, iphoneos)")
+-
+-defineReplace(xcodeSDKInfo) {
+-    info = $$1
+-    equals(info, "Path"): \
+-        infoarg = --show-sdk-path
+-    equals(info, "PlatformPath"): \
+-        infoarg = --show-sdk-platform-path
+-    equals(info, "SDKVersion"): \
+-        infoarg = --show-sdk-version
+-    sdk = $$2
+-    isEmpty(sdk): \
+-        sdk = $$QMAKE_MAC_SDK
+-
+-    isEmpty(QMAKE_MAC_SDK.$${sdk}.$${info}) {
+-        QMAKE_MAC_SDK.$${sdk}.$${info} = $$system("/usr/bin/xcrun --sdk $$sdk $$infoarg 2>/dev/null")
+-        # --show-sdk-platform-path won't work for Command Line Tools; this is fine
+-        # only used by the XCTest backend to testlib
+-        isEmpty(QMAKE_MAC_SDK.$${sdk}.$${info}):if(!isEmpty(QMAKE_XCODEBUILD_PATH)|!equals(infoarg, "--show-sdk-platform-path")): \
+-            error("Could not resolve SDK $$info for \'$$sdk\' using $$infoarg")
+-        cache(QMAKE_MAC_SDK.$${sdk}.$${info}, set stash, QMAKE_MAC_SDK.$${sdk}.$${info})
+-    }
+-
+-    return($$eval(QMAKE_MAC_SDK.$${sdk}.$${info}))
+-}
+-
+-QMAKE_MAC_SDK_PATH = $$xcodeSDKInfo(Path)
+-QMAKE_MAC_SDK_PLATFORM_PATH = $$xcodeSDKInfo(PlatformPath)
+-QMAKE_MAC_SDK_VERSION = $$xcodeSDKInfo(SDKVersion)
+-
+-isEmpty(QMAKE_EXPORT_INCDIR_OPENGL) {
+-    QMAKE_EXPORT_INCDIR_OPENGL = $$QMAKE_INCDIR_OPENGL
+-    sysrootified =
+-    for(val, QMAKE_INCDIR_OPENGL): sysrootified += $${QMAKE_MAC_SDK_PATH}$$val
+-    QMAKE_INCDIR_OPENGL = $$sysrootified
+-}
+-
+-QMAKESPEC_NAME = $$basename(QMAKESPEC)
+-
+-# Resolve SDK version of various tools
+-for(tool, $$list(QMAKE_CC QMAKE_CXX QMAKE_FIX_RPATH QMAKE_AR QMAKE_RANLIB QMAKE_LINK QMAKE_LINK_SHLIB QMAKE_ACTOOL QMAKE_LINK_C QMAKE_LINK_C_SHLIB)) {
+-    tool_variable = QMAKE_MAC_SDK.$${QMAKESPEC_NAME}.$${QMAKE_MAC_SDK}.$${tool}
+-    !isEmpty($$tool_variable) {
+-        $$tool = $$eval($$tool_variable)
+-        next()
+-    }
+-
+-    value = $$eval($$tool)
+-    isEmpty(value): next()
+-
+-    sysrooted = $$system("/usr/bin/xcrun -sdk $$QMAKE_MAC_SDK -find $$first(value) 2>/dev/null")
+-    isEmpty(sysrooted): next()
+-
+-    $$tool = $$sysrooted $$member(value, 1, -1)
+-    cache($$tool_variable, set stash, $$tool)
+-}
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0002-qtbase-mac.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0002-qtbase-mac.patch
new file mode 100644
index 000000000000..4271b64679d7
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0002-qtbase-mac.patch
@@ -0,0 +1,118 @@
+From a9ba67d3db7390d9ddc46751346e70b0a522711a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
+Date: Fri, 3 Apr 2020 21:15:27 +0200
+Subject: [PATCH 02/11] qtbase-mac
+
+---
+ src/corelib/kernel/qcore_mac_p.h | 16 ++++++++++++++--
+ src/testlib/qappletestlogger.cpp |  2 +-
+ src/testlib/qappletestlogger_p.h |  2 +-
+ src/testlib/qtestcase.cpp        |  2 +-
+ src/testlib/qtestlog.cpp         |  2 +-
+ src/testlib/qtestlog_p.h         |  4 ++--
+ 6 files changed, 20 insertions(+), 8 deletions(-)
+
+diff --git a/src/corelib/kernel/qcore_mac_p.h b/src/corelib/kernel/qcore_mac_p.h
+index 535d3579b2..3d70bf39c1 100644
+--- a/src/corelib/kernel/qcore_mac_p.h
++++ b/src/corelib/kernel/qcore_mac_p.h
+@@ -225,7 +225,7 @@ private:
+ 
+ // --------------------------------------------------------------------------
+ 
+-#if !defined(QT_BOOTSTRAPPED)
++#if 0
+ 
+ QT_END_NAMESPACE
+ #include <os/activity.h>
+@@ -303,7 +303,19 @@ QT_MAC_WEAK_IMPORT(_os_activity_current);
+ 
+ #define QT_APPLE_SCOPED_LOG_ACTIVITY(...) QAppleLogActivity scopedLogActivity = QT_APPLE_LOG_ACTIVITY(__VA_ARGS__).enter();
+ 
+-#endif // !defined(QT_BOOTSTRAPPED)
++#else // !defined(QT_BOOTSTRAPPED)
++
++#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT3(...)
++#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT2(...)
++#define QT_APPLE_LOG_ACTIVITY_WITH_PARENT(...)
++
++#define QT_APPLE_LOG_ACTIVITY2(...)
++#define QT_APPLE_LOG_ACTIVITY1(...)
++#define QT_APPLE_LOG_ACTIVITY(...)
++
++#define QT_APPLE_SCOPED_LOG_ACTIVITY(...)
++
++#endif
+ 
+ // -------------------------------------------------------------------------
+ 
+diff --git a/src/testlib/qappletestlogger.cpp b/src/testlib/qappletestlogger.cpp
+index dfeadebdef..2a74330c1d 100644
+--- a/src/testlib/qappletestlogger.cpp
++++ b/src/testlib/qappletestlogger.cpp
+@@ -43,7 +43,7 @@
+ 
+ QT_BEGIN_NAMESPACE
+ 
+-#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
++#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
+ 
+ using namespace QTestPrivate;
+ 
+diff --git a/src/testlib/qappletestlogger_p.h b/src/testlib/qappletestlogger_p.h
+index 62c6d95c5a..f8e0a3b767 100644
+--- a/src/testlib/qappletestlogger_p.h
++++ b/src/testlib/qappletestlogger_p.h
+@@ -57,7 +57,7 @@
+ 
+ QT_BEGIN_NAMESPACE
+ 
+-#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
++#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
+ class QAppleTestLogger : public QAbstractTestLogger
+ {
+ public:
+diff --git a/src/testlib/qtestcase.cpp b/src/testlib/qtestcase.cpp
+index f45999c7fa..d5b525dc12 100644
+--- a/src/testlib/qtestcase.cpp
++++ b/src/testlib/qtestcase.cpp
+@@ -849,7 +849,7 @@ Q_TESTLIB_EXPORT void qtest_qParseArgs(int argc, const char *const argv[], bool
+ 
+     bool addFallbackLogger = !explicitLoggerRequested;
+ 
+-#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
++#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
+     // Any explicitly requested loggers will be added by now, so we can check if they use stdout
+     const bool safeToAddAppleLogger = !AppleUnifiedLogger::willMirrorToStderr() || !QTestLog::loggerUsingStdout();
+     if (safeToAddAppleLogger && QAppleTestLogger::debugLoggingEnabled()) {
+diff --git a/src/testlib/qtestlog.cpp b/src/testlib/qtestlog.cpp
+index a388780532..63ab965101 100644
+--- a/src/testlib/qtestlog.cpp
++++ b/src/testlib/qtestlog.cpp
+@@ -465,7 +465,7 @@ void QTestLog::addLogger(LogMode mode, const char *filename)
+     case QTestLog::TAP:
+         logger = new QTapTestLogger(filename);
+         break;
+-#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
++#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
+     case QTestLog::Apple:
+         logger = new QAppleTestLogger;
+         break;
+diff --git a/src/testlib/qtestlog_p.h b/src/testlib/qtestlog_p.h
+index ddaf14ed9b..0c49c93a88 100644
+--- a/src/testlib/qtestlog_p.h
++++ b/src/testlib/qtestlog_p.h
+@@ -74,8 +74,8 @@ public:
+     Q_DISABLE_COPY_MOVE(QTestLog)
+ 
+     enum LogMode {
+-        Plain = 0, XML, LightXML, JUnitXML, CSV, TeamCity, TAP
+-#if defined(QT_USE_APPLE_UNIFIED_LOGGING)
++        Plain = 0, XML, LightXML, XunitXML, CSV, TeamCity, TAP
++#if defined(QT_USE_APPLE_UNIFIED_LOGGING) && 0
+         , Apple
+ #endif
+ #if defined(HAVE_XCTEST)
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0003-qtbase-mkspecs.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0003-qtbase-mkspecs.patch
new file mode 100644
index 000000000000..9f8ef67ab5d9
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0003-qtbase-mkspecs.patch
@@ -0,0 +1,464 @@
+From 82771c437957b3684ce296997d795432756aa8b1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
+Date: Sat, 4 Apr 2020 00:25:52 +0200
+Subject: [PATCH 03/11] qtbase-mkspecs
+
+---
+ mkspecs/features/create_cmake.prf             | 51 +++---------
+ .../data/cmake/Qt5BasicConfig.cmake.in        | 80 +------------------
+ mkspecs/features/qml_module.prf               |  2 +-
+ mkspecs/features/qml_plugin.prf               |  2 +-
+ mkspecs/features/qt_app.prf                   |  2 +-
+ mkspecs/features/qt_build_paths.prf           |  4 +-
+ mkspecs/features/qt_docs.prf                  | 10 +--
+ mkspecs/features/qt_example_installs.prf      |  2 +-
+ mkspecs/features/qt_functions.prf             |  2 +-
+ mkspecs/features/qt_installs.prf              | 22 ++---
+ mkspecs/features/qt_plugin.prf                |  2 +-
+ 11 files changed, 38 insertions(+), 141 deletions(-)
+
+diff --git a/mkspecs/features/create_cmake.prf b/mkspecs/features/create_cmake.prf
+index 24ed125f12..f0666a1986 100644
+--- a/mkspecs/features/create_cmake.prf
++++ b/mkspecs/features/create_cmake.prf
+@@ -21,7 +21,7 @@ load(cmake_functions)
+ # at cmake time whether package has been found via a symlink, and correct
+ # that to an absolute path. This is only done for installations to
+ # the /usr or / prefix.
+-CMAKE_INSTALL_LIBS_DIR = $$cmakeTargetPath($$[QT_INSTALL_LIBS])
++CMAKE_INSTALL_LIBS_DIR = $$cmakeTargetPath($$NIX_OUTPUT_OUT/lib/)
+ contains(CMAKE_INSTALL_LIBS_DIR, ^(/usr)?/lib(64)?.*): CMAKE_USR_MOVE_WORKAROUND = $$CMAKE_INSTALL_LIBS_DIR
+ 
+ CMAKE_OUT_DIR = $$MODULE_BASE_OUTDIR/lib/cmake
+@@ -77,45 +77,20 @@ split_incpath {
+         $$cmake_extra_source_includes.output
+ }
+ 
+-CMAKE_INCLUDE_DIR = $$cmakeRelativePath($$[QT_INSTALL_HEADERS], $$[QT_INSTALL_PREFIX])
+-contains(CMAKE_INCLUDE_DIR, "^\\.\\./.*") {
+-    CMAKE_INCLUDE_DIR = $$[QT_INSTALL_HEADERS]/
+-    CMAKE_INCLUDE_DIR_IS_ABSOLUTE = True
+-}
++CMAKE_INCLUDE_DIR = $$NIX_OUTPUT_DEV/include/
++CMAKE_INCLUDE_DIR_IS_ABSOLUTE = True
+ 
+-CMAKE_LIB_DIR = $$cmakeRelativePath($$[QT_INSTALL_LIBS], $$[QT_INSTALL_PREFIX])
+-contains(CMAKE_LIB_DIR,"^\\.\\./.*") {
+-    CMAKE_LIB_DIR = $$[QT_INSTALL_LIBS]/
+-    CMAKE_LIB_DIR_IS_ABSOLUTE = True
+-} else {
+-    CMAKE_RELATIVE_INSTALL_LIBS_DIR = $$cmakeRelativePath($$[QT_INSTALL_PREFIX], $$[QT_INSTALL_LIBS])
+-    # We need to go up another two levels because the CMake files are
+-    # installed in $${CMAKE_LIB_DIR}/cmake/Qt5$${CMAKE_MODULE_NAME}
+-    CMAKE_RELATIVE_INSTALL_DIR = "$${CMAKE_RELATIVE_INSTALL_LIBS_DIR}../../"
+-}
++CMAKE_BIN_DIR = $$NIX_OUTPUT_BIN/bin/
++CMAKE_BIN_DIR_IS_ABSOLUTE = True
+ 
+-CMAKE_BIN_DIR = $$cmakeRelativePath($$[QT_HOST_BINS], $$[QT_INSTALL_PREFIX])
+-contains(CMAKE_BIN_DIR, "^\\.\\./.*") {
+-    CMAKE_BIN_DIR = $$[QT_HOST_BINS]/
+-    CMAKE_BIN_DIR_IS_ABSOLUTE = True
+-}
++CMAKE_LIB_DIR = $$NIX_OUTPUT_OUT/lib/
++CMAKE_LIB_DIR_IS_ABSOLUTE = True
+ 
+-CMAKE_PLUGIN_DIR = $$cmakeRelativePath($$[QT_INSTALL_PLUGINS], $$[QT_INSTALL_PREFIX])
+-contains(CMAKE_PLUGIN_DIR, "^\\.\\./.*") {
+-    CMAKE_PLUGIN_DIR = $$[QT_INSTALL_PLUGINS]/
+-    CMAKE_PLUGIN_DIR_IS_ABSOLUTE = True
+-}
++CMAKE_PLUGIN_DIR = $$NIX_OUTPUT_PLUGIN/
++CMAKE_PLUGIN_DIR_IS_ABSOLUTE = True
+ 
+-win32:!static:!staticlib {
+-    CMAKE_DLL_DIR = $$cmakeRelativePath($$[QT_INSTALL_BINS], $$[QT_INSTALL_PREFIX])
+-    contains(CMAKE_DLL_DIR, "^\\.\\./.*") {
+-        CMAKE_DLL_DIR = $$[QT_INSTALL_BINS]/
+-        CMAKE_DLL_DIR_IS_ABSOLUTE = True
+-    }
+-} else {
+-    CMAKE_DLL_DIR = $$CMAKE_LIB_DIR
+-    CMAKE_DLL_DIR_IS_ABSOLUTE = $$CMAKE_LIB_DIR_IS_ABSOLUTE
+-}
++CMAKE_DLL_DIR = $$NIX_OUTPUT_OUT/lib/
++CMAKE_DLL_DIR_IS_ABSOLUTE = True
+ 
+ static|staticlib:CMAKE_STATIC_TYPE = true
+ 
+@@ -258,7 +233,7 @@ contains(CONFIG, plugin) {
+ 
+     cmake_qt5_plugin_file.files = $$cmake_target_file.output
+     static|staticlib: cmake_qt5_plugin_file.files += $$cmake_qt5_plugin_import_file.output
+-    cmake_qt5_plugin_file.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME}
++    cmake_qt5_plugin_file.path = $$NIX_OUTPUT_OUT/lib/cmake/Qt5$${CMAKE_MODULE_NAME}
+     INSTALLS += cmake_qt5_plugin_file
+ 
+     return()
+@@ -400,7 +375,7 @@ exists($$cmake_macros_file.input) {
+     cmake_qt5_module_files.files += $$cmake_macros_file.output
+ }
+ 
+-cmake_qt5_module_files.path = $$[QT_INSTALL_LIBS]/cmake/Qt5$${CMAKE_MODULE_NAME}
++cmake_qt5_module_files.path = $$NIX_OUTPUT_OUT/lib/cmake/Qt5$${CMAKE_MODULE_NAME}
+ 
+ # We are generating cmake files. Most developers of Qt are not aware of cmake,
+ # so we require automatic tests to be available. The only module which should
+diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+index 309798a767..b6c3ab8609 100644
+--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
++++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+@@ -2,30 +2,6 @@ if (CMAKE_VERSION VERSION_LESS 3.1.0)
+     message(FATAL_ERROR \"Qt 5 $${CMAKE_MODULE_NAME} module requires at least CMake version 3.1.0\")
+ endif()
+ 
+-!!IF !isEmpty(CMAKE_USR_MOVE_WORKAROUND)
+-!!IF !isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\")
+-!!ELSE
+-get_filename_component(_IMPORT_PREFIX \"${CMAKE_CURRENT_LIST_FILE}\" PATH)
+-# Use original install prefix when loaded through a
+-# cross-prefix symbolic link such as /lib -> /usr/lib.
+-get_filename_component(_realCurr \"${_IMPORT_PREFIX}\" REALPATH)
+-get_filename_component(_realOrig \"$$CMAKE_INSTALL_LIBS_DIR/cmake/Qt5$${CMAKE_MODULE_NAME}\" REALPATH)
+-if(_realCurr STREQUAL _realOrig)
+-    get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$CMAKE_INSTALL_LIBS_DIR/$${CMAKE_RELATIVE_INSTALL_LIBS_DIR}\" ABSOLUTE)
+-else()
+-    get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
+-endif()
+-unset(_realOrig)
+-unset(_realCurr)
+-unset(_IMPORT_PREFIX)
+-!!ENDIF
+-!!ELIF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-get_filename_component(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"${CMAKE_CURRENT_LIST_DIR}/$${CMAKE_RELATIVE_INSTALL_DIR}\" ABSOLUTE)
+-!!ELSE
+-set(_qt5$${CMAKE_MODULE_NAME}_install_prefix \"$$[QT_INSTALL_PREFIX]\")
+-!!ENDIF
+-
+ !!IF !equals(TEMPLATE, aux)
+ # For backwards compatibility only. Use Qt5$${CMAKE_MODULE_NAME}_VERSION instead.
+ set(Qt5$${CMAKE_MODULE_NAME}_VERSION_STRING "$$eval(QT.$${MODULE}.VERSION)")
+@@ -145,11 +121,7 @@ macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATI
+       IsDebugAndRelease)
+     set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
+ 
+-!!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
+-!!ELSE
+     set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
+-!!ENDIF
+     _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location})
+     set(_deps
+         ${_Qt5$${CMAKE_MODULE_NAME}_LIB_DEPENDENCIES}
+@@ -209,11 +181,7 @@ macro(_populate_$${CMAKE_MODULE_NAME}_target_properties Configuration LIB_LOCATI
+ !!ENDIF
+ 
+ !!IF !isEmpty(CMAKE_WINDOWS_BUILD)
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_implib \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+-!!ELSE
+     set(imported_implib \"IMPORTED_IMPLIB_${Configuration}\" \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+-!!ENDIF
+     _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_implib})
+     if(NOT \"${IMPLIB_LOCATION}\" STREQUAL \"\")
+         set_target_properties(Qt5::$${CMAKE_MODULE_NAME} PROPERTIES
+@@ -229,24 +197,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+ !!IF !no_module_headers
+ !!IF !isEmpty(CMAKE_BUILD_IS_FRAMEWORK)
+     set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS
+-      \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework\"
+-      \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework/Headers\"
++      \"$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework\"
++      \"$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework/Headers\"
+     )
+ !!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES)
+     set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/\"
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework/Versions/$$section(VERSION, ., 0, 0)/Headers/$$VERSION/$${MODULE_INCNAME}\"
+-    )
+-!!ELSE
+-    set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\")
+-!!ENDIF
+-!!ELSE
+-!!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE)
+-    set(_Qt5$${CMAKE_MODULE_NAME}_OWN_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR\" \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}\")
+-!!IF isEmpty(CMAKE_NO_PRIVATE_INCLUDES)
+-    set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION\"
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_INCLUDE_DIR}$${MODULE_INCNAME}/$$VERSION/$${MODULE_INCNAME}\"
++      \"$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework/Versions/$$section(VERSION, .,0, 0)/Headers/$$VERSION/\"
++      \"$${CMAKE_LIB_DIR}$${CMAKE_QT_STEM}.framework/Versions/$$section(VERSION, .,0, 0)/Headers/$$VERSION/$${MODULE_INCNAME}\"
+     )
+ !!ELSE
+     set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\")
+@@ -262,7 +219,6 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+     set(Qt5$${CMAKE_MODULE_NAME}_PRIVATE_INCLUDE_DIRS \"\")
+ !!ENDIF
+ !!ENDIF
+-!!ENDIF
+ !!IF !isEmpty(CMAKE_ADD_SOURCE_INCLUDE_DIRS)
+     include(\"${CMAKE_CURRENT_LIST_DIR}/ExtraSourceIncludes.cmake\" OPTIONAL)
+ !!ENDIF
+@@ -499,25 +455,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+ !!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD)
+ !!IF isEmpty(CMAKE_DEBUG_TYPE)
+ !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE
+     if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE
+         _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" \"\" $${CMAKE_DEBUG_AND_RELEASE})
+ !!ELSE // CMAKE_STATIC_WINDOWS_BUILD
+     if (EXISTS
+-!!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_DEBUG}\"
+-!!ELSE
+         \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\"
+-!!ENDIF
+       AND EXISTS
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ELSE
+         \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" )
+-!!ENDIF
+         _populate_$${CMAKE_MODULE_NAME}_target_properties(DEBUG \"$${CMAKE_LIB_FILE_LOCATION_DEBUG}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_DEBUG}\" $${CMAKE_DEBUG_AND_RELEASE})
+ !!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
+     endif()
+@@ -536,25 +480,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+ !!IF !isEmpty(CMAKE_FIND_OTHER_LIBRARY_BUILD)
+ !!IF isEmpty(CMAKE_RELEASE_TYPE)
+ !!IF !isEmpty(CMAKE_STATIC_WINDOWS_BUILD)
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    if (EXISTS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+-!!ELSE // CMAKE_LIB_DIR_IS_ABSOLUTE
+     if (EXISTS \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+-!!ENDIF // CMAKE_LIB_DIR_IS_ABSOLUTE
+         _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" \"\" $${CMAKE_DEBUG_AND_RELEASE})
+ !!ELSE // CMAKE_STATIC_WINDOWS_BUILD
+     if (EXISTS
+-!!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_DLL_DIR}$${CMAKE_LIB_FILE_LOCATION_RELEASE}\"
+-!!ELSE
+         \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\"
+-!!ENDIF
+       AND EXISTS
+-!!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-        \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+-!!ELSE
+         \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" )
+-!!ENDIF
+         _populate_$${CMAKE_MODULE_NAME}_target_properties(RELEASE \"$${CMAKE_LIB_FILE_LOCATION_RELEASE}\" \"$${CMAKE_IMPLIB_FILE_LOCATION_RELEASE}\" $${CMAKE_DEBUG_AND_RELEASE})
+ !!ENDIF // CMAKE_STATIC_WINDOWS_BUILD
+     endif()
+@@ -581,11 +513,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+           IsDebugAndRelease)
+         set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
+ 
+-!!IF isEmpty(CMAKE_PLUGIN_DIR_IS_ABSOLUTE)
+-        set(imported_location \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\")
+-!!ELSE
+         set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\")
+-!!ENDIF
+         _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location})
+         set_target_properties(Qt5::${Plugin} PROPERTIES
+             \"IMPORTED_LOCATION_${Configuration}\" ${imported_location}
+diff --git a/mkspecs/features/qml_module.prf b/mkspecs/features/qml_module.prf
+index c0b50416c9..cabe39b22e 100644
+--- a/mkspecs/features/qml_module.prf
++++ b/mkspecs/features/qml_module.prf
+@@ -51,7 +51,7 @@ builtin_resources {
+ # Install rules
+ qmldir.base = $$qmldir_path
+ qmldir.files = $$qmldir_file
+-qmldir.path = $$[QT_INSTALL_QML]/$$TARGETPATH
++qmldir.path = $$NIX_OUTPUT_QML/$$TARGETPATH
+ 
+ qmlfiles.base = $$_PRO_FILE_PWD_
+ qmlfiles.files = $$fq_aux_qml_files
+diff --git a/mkspecs/features/qml_plugin.prf b/mkspecs/features/qml_plugin.prf
+index 1b67435787..24a1f78c17 100644
+--- a/mkspecs/features/qml_plugin.prf
++++ b/mkspecs/features/qml_plugin.prf
+@@ -50,7 +50,7 @@ load(qt_build_paths)
+ 
+ DESTDIR = $$MODULE_BASE_OUTDIR/qml/$$TARGETPATH
+ 
+-target.path = $$[QT_INSTALL_QML]/$$TARGETPATH
++target.path = $$NIX_OUTPUT_QML/$$TARGETPATH
+ INSTALLS += target
+ 
+ # Some final setup
+diff --git a/mkspecs/features/qt_app.prf b/mkspecs/features/qt_app.prf
+index 8354f30eea..62028fef8e 100644
+--- a/mkspecs/features/qt_app.prf
++++ b/mkspecs/features/qt_app.prf
+@@ -30,7 +30,7 @@ host_build:force_bootstrap {
+     target.path = $$[QT_HOST_BINS]
+ } else {
+     !build_pass:qtConfig(debug_and_release): CONFIG += release
+-    target.path = $$[QT_INSTALL_BINS]
++    target.path = $$NIX_OUTPUT_BIN/bin
+     CONFIG += relative_qt_rpath  # Qt's tools and apps should be relocatable
+ }
+ INSTALLS += target
+diff --git a/mkspecs/features/qt_build_paths.prf b/mkspecs/features/qt_build_paths.prf
+index 3bb3823a8e..655b7b7db8 100644
+--- a/mkspecs/features/qt_build_paths.prf
++++ b/mkspecs/features/qt_build_paths.prf
+@@ -24,6 +24,6 @@ exists($$MODULE_BASE_INDIR/.git): \
+ !force_independent {
+     # If the module is not built independently, everything ends up in qtbase.
+     # This is the case in non-prefix builds, except for selected modules.
+-    MODULE_BASE_OUTDIR = $$[QT_HOST_PREFIX]
+-    MODULE_QMAKE_OUTDIR = $$[QT_HOST_PREFIX]
++    MODULE_BASE_OUTDIR = $$NIX_OUTPUT_OUT
++    MODULE_QMAKE_OUTDIR = $$NIX_OUTPUT_OUT
+ }
+diff --git a/mkspecs/features/qt_docs.prf b/mkspecs/features/qt_docs.prf
+index 095bf15dac..4cc977bea5 100644
+--- a/mkspecs/features/qt_docs.prf
++++ b/mkspecs/features/qt_docs.prf
+@@ -65,7 +65,7 @@ QMAKE_DOCS_OUTPUTDIR = $$QMAKE_DOCS_BASE_OUTDIR/$$QMAKE_DOCS_TARGETDIR
+ 
+ QDOC += -outputdir $$shell_quote($$QMAKE_DOCS_OUTPUTDIR)
+ !build_online_docs: \
+-    QDOC += -installdir $$shell_quote($$[QT_INSTALL_DOCS])
++    QDOC += -installdir $$shell_quote($$NIX_OUTPUT_DOC)
+ PREP_DOC_INDEXES =
+ DOC_INDEXES =
+ !isEmpty(QTREPOS) {
+@@ -84,8 +84,8 @@ DOC_INDEXES =
+         DOC_INDEXES += -indexdir $$shell_quote($$qrep/doc)
+ } else {
+     prepare_docs: \
+-        PREP_DOC_INDEXES += -indexdir $$shell_quote($$[QT_INSTALL_DOCS/get])
+-    DOC_INDEXES += -indexdir $$shell_quote($$[QT_INSTALL_DOCS/get])
++        PREP_DOC_INDEXES += -indexdir $$shell_quote($$NIX_OUTPUT_DOC)
++    DOC_INDEXES += -indexdir $$shell_quote($$NIX_OUTPUT_DOC)
+ }
+ 
+ qtattributionsscanner.target = qtattributionsscanner
+@@ -108,12 +108,12 @@ prepare_docs {
+     qch_docs.commands = $$QHELPGENERATOR $$shell_quote($$QMAKE_DOCS_OUTPUTDIR/$${QMAKE_DOCS_TARGET}.qhp) -o $$shell_quote($$QMAKE_DOCS_BASE_OUTDIR/$${QMAKE_DOCS_TARGET}.qch)
+ 
+     inst_html_docs.files = $$QMAKE_DOCS_OUTPUTDIR
+-    inst_html_docs.path = $$[QT_INSTALL_DOCS]
++    inst_html_docs.path = $$NIX_OUTPUT_DOC
+     inst_html_docs.CONFIG += no_check_exist directory no_default_install no_build
+     INSTALLS += inst_html_docs
+ 
+     inst_qch_docs.files = $$QMAKE_DOCS_BASE_OUTDIR/$${QMAKE_DOCS_TARGET}.qch
+-    inst_qch_docs.path = $$[QT_INSTALL_DOCS]
++    inst_qch_docs.path = $$NIX_OUTPUT_DOC
+     inst_qch_docs.CONFIG += no_check_exist no_default_install no_build
+     INSTALLS += inst_qch_docs
+ 
+diff --git a/mkspecs/features/qt_example_installs.prf b/mkspecs/features/qt_example_installs.prf
+index 15b373ba40..5c373fe1d5 100644
+--- a/mkspecs/features/qt_example_installs.prf
++++ b/mkspecs/features/qt_example_installs.prf
+@@ -91,7 +91,7 @@ sourcefiles += \
+     $$SOURCES $$HEADERS $$FORMS $$RESOURCES $$TRANSLATIONS \
+     $$DBUS_ADAPTORS $$DBUS_INTERFACES
+ addInstallFiles(sources.files, $$sourcefiles)
+-sources.path = $$[QT_INSTALL_EXAMPLES]/$$probase
++sources.path = $$NIX_OUTPUT_DEV/share/examples/$$probase
+ INSTALLS += sources
+ 
+ check_examples {
+diff --git a/mkspecs/features/qt_functions.prf b/mkspecs/features/qt_functions.prf
+index 7777e615bd..abeb03a663 100644
+--- a/mkspecs/features/qt_functions.prf
++++ b/mkspecs/features/qt_functions.prf
+@@ -87,7 +87,7 @@ defineTest(qtHaveModule) {
+ defineTest(qtPrepareTool) {
+     cmd = $$eval(QT_TOOL.$${2}.binary)
+     isEmpty(cmd) {
+-        cmd = $$[QT_HOST_BINS]/$$2
++        cmd = $$system("command -v $$2")
+         exists($${cmd}.pl) {
+             $${1}_EXE = $${cmd}.pl
+             cmd = perl -w $$system_path($${cmd}.pl)
+diff --git a/mkspecs/features/qt_installs.prf b/mkspecs/features/qt_installs.prf
+index 1ebca17366..a8f958eae8 100644
+--- a/mkspecs/features/qt_installs.prf
++++ b/mkspecs/features/qt_installs.prf
+@@ -12,16 +12,10 @@
+ #library
+ !qt_no_install_library {
+     win32 {
+-       host_build: \
+-           dlltarget.path = $$[QT_HOST_BINS]
+-       else: \
+-           dlltarget.path = $$[QT_INSTALL_BINS]
++       dlltarget.path = $$NIX_OUTPUT_BIN/bin
+        INSTALLS += dlltarget
+     }
+-    host_build: \
+-        target.path = $$[QT_HOST_LIBS]
+-    else: \
+-        target.path = $$[QT_INSTALL_LIBS]
++    target.path = $$NIX_OUTPUT_OUT/lib
+     !static: target.CONFIG = no_dll
+     INSTALLS += target
+ }
+@@ -29,35 +23,35 @@
+ #headers
+ qt_install_headers {
+     gen_headers.files = $$SYNCQT.GENERATED_HEADER_FILES
+-    gen_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME
++    gen_headers.path = $$NIX_OUTPUT_DEV/include/$$MODULE_INCNAME
+     INSTALLS += gen_headers
+ 
+     targ_headers.files = $$SYNCQT.HEADER_FILES $$SYNCQT.INJECTED_HEADER_FILES
+-    targ_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME
++    targ_headers.path = $$NIX_OUTPUT_DEV/include/$$MODULE_INCNAME
+     INSTALLS += targ_headers
+ 
+     private_headers.files = $$SYNCQT.PRIVATE_HEADER_FILES $$SYNCQT.INJECTED_PRIVATE_HEADER_FILES
+-    private_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/private
++    private_headers.path = $$NIX_OUTPUT_DEV/include/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/private
+     generated_privates: \
+         private_headers.CONFIG += no_check_exist
+     INSTALLS += private_headers
+ 
+     qpa_headers.files = $$SYNCQT.QPA_HEADER_FILES
+-    qpa_headers.path = $$[QT_INSTALL_HEADERS]/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/qpa
++    qpa_headers.path = $$NIX_OUTPUT_DEV/include/$$MODULE_INCNAME/$$VERSION/$$MODULE_INCNAME/qpa
+     INSTALLS += qpa_headers
+ }
+ 
+ #module
+ qt_install_module {
+     !isEmpty(MODULE_PRI) {
+-        pritarget.path = $$[QT_HOST_DATA]/mkspecs/modules
++        pritarget.path = $$NIX_OUTPUT_DEV/mkspecs/modules
+         pritarget.files = $$MODULE_PRI
+         INSTALLS += pritarget
+     } else: isEmpty(MODULE_PRIVATE_PRI) {
+         warning("Project $$basename(_PRO_FILE_) is a module, but has not defined MODULE_PRI, which is required for Qt to expose the module to other projects.")
+     }
+     !isEmpty(MODULE_PRIVATE_PRI) {
+-        privpritarget.path = $$[QT_HOST_DATA]/mkspecs/modules
++        privpritarget.path = $$NIX_OUTPUT_DEV/mkspecs/modules
+         privpritarget.files = $$MODULE_PRIVATE_PRI
+         INSTALLS += privpritarget
+     }
+diff --git a/mkspecs/features/qt_plugin.prf b/mkspecs/features/qt_plugin.prf
+index 573d717eea..024c624cb6 100644
+--- a/mkspecs/features/qt_plugin.prf
++++ b/mkspecs/features/qt_plugin.prf
+@@ -88,7 +88,7 @@ CONFIG(static, static|shared)|prefix_build {
+     }
+ }
+ 
+-target.path = $$[QT_INSTALL_PLUGINS]/$$PLUGIN_TYPE
++target.path = $$NIX_OUTPUT_PLUGIN/$$PLUGIN_TYPE
+ INSTALLS += target
+ 
+ qt_libinfix_plugins: TARGET = $$TARGET$$QT_LIBINFIX
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0004-qtbase-replace-libdir.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0004-qtbase-replace-libdir.patch
new file mode 100644
index 000000000000..bbfc93897873
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0004-qtbase-replace-libdir.patch
@@ -0,0 +1,68 @@
+From 30d3906ff5e8671e9c97c5336c6c549656c0e293 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
+Date: Sat, 4 Apr 2020 00:27:41 +0200
+Subject: [PATCH 04/11] qtbase-replace-libdir
+
+---
+ mkspecs/features/qt_common.prf | 20 ++------------------
+ mkspecs/features/qt_module.prf |  5 +----
+ 2 files changed, 3 insertions(+), 22 deletions(-)
+
+diff --git a/mkspecs/features/qt_common.prf b/mkspecs/features/qt_common.prf
+index 8df94aa4ee..414029f31c 100644
+--- a/mkspecs/features/qt_common.prf
++++ b/mkspecs/features/qt_common.prf
+@@ -31,32 +31,16 @@ contains(TEMPLATE, .*lib)|contains(TEMPLATE, aux) {
+         rplbase = $$dirname(_QMAKE_SUPER_CACHE_)/[^/][^/]*
+     else: \
+         rplbase = $$MODULE_BASE_OUTDIR
+-    host_build {
+-        qqt_libdir = \$\$\$\$[QT_HOST_LIBS]
+-        qt_libdir = $$[QT_HOST_LIBS]
+-    } else {
+-        qqt_libdir = \$\$\$\$[QT_INSTALL_LIBS]
+-        qt_libdir = $$[QT_INSTALL_LIBS]
+-    }
++    qt_libdir = $$NIX_OUTPUT_OUT/lib
+     contains(QMAKE_DEFAULT_LIBDIRS, $$qt_libdir) {
+-        lib_replace0.match = $$rplbase/lib/
+-        lib_replace0.replace = $$qqt_libdir/
+-        lib_replace0.CONFIG = path
+-        QMAKE_PRL_INSTALL_REPLACE += lib_replace0
+         lib_replace.match = "[^ ']*$$rplbase/lib"
+         lib_replace.replace =
+     } else {
+         lib_replace.match = $$rplbase/lib
+-        lib_replace.replace = $$qqt_libdir
++        lib_replace.replace = $$qt_libdir
+     }
+     lib_replace.CONFIG = path
+     QMAKE_PRL_INSTALL_REPLACE += lib_replace
+-    !equals(qt_libdir, $$rplbase/lib) {
+-        qtlibdir_replace.match = $$qt_libdir
+-        qtlibdir_replace.replace = $$qqt_libdir
+-        qtlibdir_replace.CONFIG = path
+-        QMAKE_PRL_INSTALL_REPLACE += qtlibdir_replace
+-    }
+ }
+ contains(TEMPLATE, .*lib)|darwin {
+     if(!host_build|!cross_compile):qtConfig(reduce_exports): CONFIG += hide_symbols
+diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
+index 828a9621b9..b9e5d35026 100644
+--- a/mkspecs/features/qt_module.prf
++++ b/mkspecs/features/qt_module.prf
+@@ -305,10 +305,7 @@ load(qt_targets)
+ }
+ !lib_bundle:unix {
+     CONFIG += create_libtool
+-    host_build: \
+-        QMAKE_LIBTOOL_LIBDIR = $$[QT_HOST_LIBS]
+-    else: \
+-        QMAKE_LIBTOOL_LIBDIR = "=$$[QT_INSTALL_LIBS/raw]"
++    QMAKE_LIBTOOL_LIBDIR = $$NIX_OUTPUT_OUT/lib
+     !isEmpty(lib_replace0.match) {
+         ltlib_replace0.match = $$lib_replace0.match
+         ltlib_replace0.replace = $$QMAKE_LIBTOOL_LIBDIR/
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0005-qtbase-cmake.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0005-qtbase-cmake.patch
new file mode 100644
index 000000000000..19646df1666f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0005-qtbase-cmake.patch
@@ -0,0 +1,194 @@
+From 7871fbcefc7596a458cec005edafd9d4962baea3 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Tue, 17 Sep 2019 05:34:28 -0500
+Subject: [PATCH 05/11] qtbase-cmake
+
+---
+ mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in  |  2 +-
+ mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in |  4 ++--
+ src/corelib/Qt5CoreConfigExtras.cmake.in             | 10 +++++-----
+ src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in    |  2 +-
+ .../Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in  |  2 +-
+ src/dbus/Qt5DBusConfigExtras.cmake.in                | 12 ++----------
+ src/gui/Qt5GuiConfigExtras.cmake.in                  |  6 +++---
+ src/widgets/Qt5WidgetsConfigExtras.cmake.in          |  2 +-
+ 8 files changed, 16 insertions(+), 24 deletions(-)
+
+diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+index b6c3ab8609..edb6a89316 100644
+--- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
++++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in
+@@ -513,7 +513,7 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME})
+           IsDebugAndRelease)
+         set_property(TARGET Qt5::${Plugin} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
+ 
+-        set(imported_location \"$${CMAKE_PLUGIN_DIR}${PLUGIN_LOCATION}\")
++        set(imported_location \"${PLUGIN_LOCATION}\")
+         _qt5_$${CMAKE_MODULE_NAME}_check_file_exists(${imported_location})
+         set_target_properties(Qt5::${Plugin} PROPERTIES
+             \"IMPORTED_LOCATION_${Configuration}\" ${imported_location}
+diff --git a/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in b/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in
+index b550a52c60..dbd3243885 100644
+--- a/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in
++++ b/mkspecs/features/data/cmake/Qt5PluginTarget.cmake.in
+@@ -53,10 +53,10 @@ set_property(TARGET Qt5::$$CMAKE_PLUGIN_NAME PROPERTY INTERFACE_SOURCES
+ !!ENDIF
+ 
+ !!IF !isEmpty(CMAKE_RELEASE_TYPE)
+-_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_LOCATION_RELEASE}\" $${CMAKE_DEBUG_AND_RELEASE})
++_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME RELEASE \"$${CMAKE_PLUGIN_DIR}$${CMAKE_PLUGIN_LOCATION_RELEASE}\" $${CMAKE_DEBUG_AND_RELEASE})
+ !!ENDIF
+ !!IF !isEmpty(CMAKE_DEBUG_TYPE)
+-_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_LOCATION_DEBUG}\" $${CMAKE_DEBUG_AND_RELEASE})
++_populate_$${CMAKE_MODULE_NAME}_plugin_properties($$CMAKE_PLUGIN_NAME DEBUG \"$${CMAKE_PLUGIN_DIR}$${CMAKE_PLUGIN_LOCATION_DEBUG}\" $${CMAKE_DEBUG_AND_RELEASE})
+ !!ENDIF
+ 
+ list(APPEND Qt5$${CMAKE_MODULE_NAME}_PLUGINS Qt5::$$CMAKE_PLUGIN_NAME)
+diff --git a/src/corelib/Qt5CoreConfigExtras.cmake.in b/src/corelib/Qt5CoreConfigExtras.cmake.in
+index 4c1c3a612b..bb8ab08143 100644
+--- a/src/corelib/Qt5CoreConfigExtras.cmake.in
++++ b/src/corelib/Qt5CoreConfigExtras.cmake.in
+@@ -6,7 +6,7 @@ if (NOT TARGET Qt5::qmake)
+     add_executable(Qt5::qmake IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}qmake$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+@@ -21,7 +21,7 @@ if (NOT TARGET Qt5::moc)
+     add_executable(Qt5::moc IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}moc$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+@@ -38,7 +38,7 @@ if (NOT TARGET Qt5::rcc)
+     add_executable(Qt5::rcc IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}rcc$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+@@ -121,7 +121,7 @@ if (NOT TARGET Qt5::WinMain)
+ !!IF !isEmpty(CMAKE_RELEASE_TYPE)
+     set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
++    set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_RELEASE}\")
+ !!ENDIF
+@@ -135,7 +135,7 @@ if (NOT TARGET Qt5::WinMain)
+     set_property(TARGET Qt5::WinMain APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
+ 
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Core_install_prefix}/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
++    set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_LIB_DIR}$${CMAKE_WINMAIN_FILE_LOCATION_DEBUG}\")
+ !!ENDIF
+diff --git a/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in b/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in
+index c357237d0e..6f0c75de3c 100644
+--- a/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in
++++ b/src/corelib/Qt5CoreConfigExtrasMkspecDir.cmake.in
+@@ -1,6 +1,6 @@
+ 
+ !!IF isEmpty(CMAKE_HOST_DATA_DIR_IS_ABSOLUTE)
+-set(_qt5_corelib_extra_includes \"${_qt5Core_install_prefix}/$${CMAKE_HOST_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
++set(_qt5_corelib_extra_includes \"$$NIX_OUTPUT_DEV/$${CMAKE_HOST_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
+ !!ELSE
+ set(_qt5_corelib_extra_includes \"$${CMAKE_HOST_DATA_DIR}mkspecs/$${CMAKE_MKSPEC}\")
+ !!ENDIF
+diff --git a/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in b/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in
+index 706304cf34..546420f6ad 100644
+--- a/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in
++++ b/src/corelib/Qt5CoreConfigExtrasMkspecDirForInstall.cmake.in
+@@ -1,6 +1,6 @@
+ 
+ !!IF isEmpty(CMAKE_INSTALL_DATA_DIR_IS_ABSOLUTE)
+-set(_qt5_corelib_extra_includes \"${_qt5Core_install_prefix}/$${CMAKE_INSTALL_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
++set(_qt5_corelib_extra_includes \"$$NIX_OUTPUT_DEV/$${CMAKE_INSTALL_DATA_DIR}/mkspecs/$${CMAKE_MKSPEC}\")
+ !!ELSE
+ set(_qt5_corelib_extra_includes \"$${CMAKE_INSTALL_DATA_DIR}mkspecs/$${CMAKE_MKSPEC}\")
+ !!ENDIF
+diff --git a/src/dbus/Qt5DBusConfigExtras.cmake.in b/src/dbus/Qt5DBusConfigExtras.cmake.in
+index a814678f7b..b13b964ec8 100644
+--- a/src/dbus/Qt5DBusConfigExtras.cmake.in
++++ b/src/dbus/Qt5DBusConfigExtras.cmake.in
+@@ -2,11 +2,7 @@
+ if (NOT TARGET Qt5::qdbuscpp2xml)
+     add_executable(Qt5::qdbuscpp2xml IMPORTED)
+ 
+-!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
+-!!ELSE
+-    set(imported_location \"$${CMAKE_BIN_DIR}qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
+-!!ENDIF
++    set(imported_location \"$$NIX_OUTPUT_DEV/bin/qdbuscpp2xml$$CMAKE_BIN_SUFFIX\")
+     _qt5_DBus_check_file_exists(${imported_location})
+ 
+     set_target_properties(Qt5::qdbuscpp2xml PROPERTIES
+@@ -17,11 +13,7 @@ endif()
+ if (NOT TARGET Qt5::qdbusxml2cpp)
+     add_executable(Qt5::qdbusxml2cpp IMPORTED)
+ 
+-!!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5DBus_install_prefix}/$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
+-!!ELSE
+-    set(imported_location \"$${CMAKE_BIN_DIR}qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
+-!!ENDIF
++    set(imported_location \"$$NIX_OUTPUT_DEV/bin/qdbusxml2cpp$$CMAKE_BIN_SUFFIX\")
+     _qt5_DBus_check_file_exists(${imported_location})
+ 
+     set_target_properties(Qt5::qdbusxml2cpp PROPERTIES
+diff --git a/src/gui/Qt5GuiConfigExtras.cmake.in b/src/gui/Qt5GuiConfigExtras.cmake.in
+index 84dbbfebd4..8ad0720c5c 100644
+--- a/src/gui/Qt5GuiConfigExtras.cmake.in
++++ b/src/gui/Qt5GuiConfigExtras.cmake.in
+@@ -2,7 +2,7 @@
+ !!IF !isEmpty(CMAKE_ANGLE_EGL_DLL_RELEASE)
+ 
+ !!IF isEmpty(CMAKE_INCLUDE_DIR_IS_ABSOLUTE)
+-set(Qt5Gui_EGL_INCLUDE_DIRS \"${_qt5$${CMAKE_MODULE_NAME}_install_prefix}/$$CMAKE_INCLUDE_DIR/QtANGLE\")
++set(Qt5Gui_EGL_INCLUDE_DIRS \"$$NIX_OUTPUT_DEV/$$CMAKE_INCLUDE_DIR/QtANGLE\")
+ !!ELSE
+ set(Qt5Gui_EGL_INCLUDE_DIRS \"$$CMAKE_INCLUDE_DIR/QtANGLE\")
+ !!ENDIF
+@@ -17,13 +17,13 @@ macro(_populate_qt5gui_gl_target_properties TargetName Configuration LIB_LOCATIO
+     set_property(TARGET Qt5::${TargetName} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${Configuration})
+ 
+ !!IF isEmpty(CMAKE_DLL_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Gui_install_prefix}/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
++    set(imported_location \"$$NIX_OUTPUT_OUT/$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_DLL_DIR}${LIB_LOCATION}\")
+ !!ENDIF
+ 
+ !!IF isEmpty(CMAKE_LIB_DIR_IS_ABSOLUTE)
+-    set(imported_implib \"${_qt5Gui_install_prefix}/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
++    set(imported_implib \"$$NIX_OUTPUT_OUT/$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+ !!ELSE
+     set(imported_implib \"$${CMAKE_LIB_DIR}${IMPLIB_LOCATION}\")
+ !!ENDIF
+diff --git a/src/widgets/Qt5WidgetsConfigExtras.cmake.in b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
+index 83d8004a08..ca0b8e4bfb 100644
+--- a/src/widgets/Qt5WidgetsConfigExtras.cmake.in
++++ b/src/widgets/Qt5WidgetsConfigExtras.cmake.in
+@@ -3,7 +3,7 @@ if (NOT TARGET Qt5::uic)
+     add_executable(Qt5::uic IMPORTED)
+ 
+ !!IF isEmpty(CMAKE_BIN_DIR_IS_ABSOLUTE)
+-    set(imported_location \"${_qt5Widgets_install_prefix}/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
++    set(imported_location \"$$NIX_OUTPUT_DEV/$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
+ !!ELSE
+     set(imported_location \"$${CMAKE_BIN_DIR}uic$$CMAKE_BIN_SUFFIX\")
+ !!ENDIF
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0006-qtbase-gtk3.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0006-qtbase-gtk3.patch
new file mode 100644
index 000000000000..48f4c9b3f99e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0006-qtbase-gtk3.patch
@@ -0,0 +1,48 @@
+From 7a9f4f875053aed8ab387161eea623bf8325cfa8 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Tue, 17 Sep 2019 05:35:33 -0500
+Subject: [PATCH 06/11] qtbase-gtk3
+
+---
+ src/plugins/platformthemes/gtk3/main.cpp | 17 ++++++++++++++++-
+ 1 file changed, 16 insertions(+), 1 deletion(-)
+
+diff --git a/src/plugins/platformthemes/gtk3/main.cpp b/src/plugins/platformthemes/gtk3/main.cpp
+index 860fc3a26e..8cd4663d49 100644
+--- a/src/plugins/platformthemes/gtk3/main.cpp
++++ b/src/plugins/platformthemes/gtk3/main.cpp
+@@ -39,6 +39,7 @@
+ 
+ #include <qpa/qplatformthemeplugin.h>
+ #include "qgtk3theme.h"
++#include <QFile>
+ 
+ QT_BEGIN_NAMESPACE
+ 
+@@ -54,8 +55,22 @@ public:
+ QPlatformTheme *QGtk3ThemePlugin::create(const QString &key, const QStringList &params)
+ {
+     Q_UNUSED(params);
+-    if (!key.compare(QLatin1String(QGtk3Theme::name), Qt::CaseInsensitive))
++    if (!key.compare(QLatin1String(QGtk3Theme::name), Qt::CaseInsensitive)) {
++
++#ifdef NIXPKGS_QGTK3_XDG_DATA_DIRS
++        QStringList XDG_DATA_DIRS = QFile::decodeName(qgetenv("XDG_DATA_DIRS")).split(':');
++        XDG_DATA_DIRS << QLatin1String(NIXPKGS_QGTK3_XDG_DATA_DIRS);
++        qputenv("XDG_DATA_DIRS", QFile::encodeName(XDG_DATA_DIRS.join(':')));
++#endif
++
++#ifdef NIXPKGS_QGTK3_GIO_EXTRA_MODULES
++        QStringList GIO_EXTRA_MODULES = QFile::decodeName(qgetenv("GIO_EXTRA_MODULES")).split(':');
++        GIO_EXTRA_MODULES << QLatin1String(NIXPKGS_QGTK3_GIO_EXTRA_MODULES);
++        qputenv("GIO_EXTRA_MODULES", QFile::encodeName(GIO_EXTRA_MODULES.join(':')));
++#endif
++
+         return new QGtk3Theme;
++    }
+ 
+     return nullptr;
+ }
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0007-qtbase-xcursor.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0007-qtbase-xcursor.patch
new file mode 100644
index 000000000000..617b0684df65
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0007-qtbase-xcursor.patch
@@ -0,0 +1,29 @@
+From 707098eada20ba074e642a73248de74407bc261c Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Tue, 17 Sep 2019 05:35:58 -0500
+Subject: [PATCH 07/11] qtbase-xcursor
+
+---
+ src/plugins/platforms/xcb/qxcbcursor.cpp | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/plugins/platforms/xcb/qxcbcursor.cpp b/src/plugins/platforms/xcb/qxcbcursor.cpp
+index 42c7a52bd4..ba670ddb44 100644
+--- a/src/plugins/platforms/xcb/qxcbcursor.cpp
++++ b/src/plugins/platforms/xcb/qxcbcursor.cpp
+@@ -317,10 +317,10 @@ QXcbCursor::QXcbCursor(QXcbConnection *conn, QXcbScreen *screen)
+ #if QT_CONFIG(xcb_xlib) && QT_CONFIG(library)
+     static bool function_ptrs_not_initialized = true;
+     if (function_ptrs_not_initialized) {
+-        QLibrary xcursorLib(QLatin1String("Xcursor"), 1);
++        QLibrary xcursorLib(QLatin1String(NIXPKGS_LIBXCURSOR), 1);
+         bool xcursorFound = xcursorLib.load();
+         if (!xcursorFound) { // try without the version number
+-            xcursorLib.setFileName(QLatin1String("Xcursor"));
++            xcursorLib.setFileName(QLatin1String(NIXPKGS_LIBXCURSOR));
+             xcursorFound = xcursorLib.load();
+         }
+         if (xcursorFound) {
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0008-qtbase-tzdir.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0008-qtbase-tzdir.patch
new file mode 100644
index 000000000000..319de315bfb7
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0008-qtbase-tzdir.patch
@@ -0,0 +1,64 @@
+From da003b582ee8823b29b1ff5c0aca8e06e7741b94 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Tue, 17 Sep 2019 05:36:25 -0500
+Subject: [PATCH 08/11] qtbase-tzdir
+
+---
+ src/corelib/time/qtimezoneprivate_tz.cpp | 31 +++++++++++++++---------
+ 1 file changed, 19 insertions(+), 12 deletions(-)
+
+diff --git a/src/corelib/time/qtimezoneprivate_tz.cpp b/src/corelib/time/qtimezoneprivate_tz.cpp
+index 01f9a6cce0..910338205a 100644
+--- a/src/corelib/time/qtimezoneprivate_tz.cpp
++++ b/src/corelib/time/qtimezoneprivate_tz.cpp
+@@ -77,7 +77,11 @@ typedef QHash<QByteArray, QTzTimeZone> QTzTimeZoneHash;
+ // Parse zone.tab table, assume lists all installed zones, if not will need to read directories
+ static QTzTimeZoneHash loadTzTimeZones()
+ {
+-    QString path = QStringLiteral("/usr/share/zoneinfo/zone.tab");
++    // Try TZDIR first, in case we're running on NixOS.
++    QString path = QFile::decodeName(qgetenv("TZDIR")) + QStringLiteral("/zone.tab");
++    // Fallback to traditional paths in case we are not on NixOS.
++    if (!QFile::exists(path))
++        path = QStringLiteral("/usr/share/zoneinfo/zone.tab");
+     if (!QFile::exists(path))
+         path = QStringLiteral("/usr/lib/zoneinfo/zone.tab");
+ 
+@@ -672,20 +676,23 @@ QTzTimeZoneCacheEntry QTzTimeZoneCache::findEntry(const QByteArray &ianaId)
+         if (!tzif.open(QIODevice::ReadOnly))
+             return ret;
+     } else {
+-        // Open named tz, try modern path first, if fails try legacy path
+-        tzif.setFileName(QLatin1String("/usr/share/zoneinfo/") + QString::fromLocal8Bit(ianaId));
++        // Try TZDIR first, in case we're running on NixOS
++        tzif.setFileName(QFile::decodeName(qgetenv("TZDIR")) + QStringLiteral("/") + QString::fromLocal8Bit(ianaId));
+         if (!tzif.open(QIODevice::ReadOnly)) {
+-            tzif.setFileName(QLatin1String("/usr/lib/zoneinfo/") + QString::fromLocal8Bit(ianaId));
++            tzif.setFileName(QLatin1String("/usr/share/zoneinfo/") + QString::fromLocal8Bit(ianaId));
+             if (!tzif.open(QIODevice::ReadOnly)) {
+-                // ianaId may be a POSIX rule, taken from $TZ or /etc/TZ
+-                const QByteArray zoneInfo = ianaId.split(',').at(0);
+-                const char *begin = zoneInfo.constBegin();
+-                if (PosixZone::parse(begin, zoneInfo.constEnd()).hasValidOffset()
+-                    && (begin == zoneInfo.constEnd()
+-                        || PosixZone::parse(begin, zoneInfo.constEnd()).hasValidOffset())) {
+-                    ret.m_posixRule = ianaId;
++                tzif.setFileName(QLatin1String("/usr/lib/zoneinfo/") + QString::fromLocal8Bit(ianaId));
++                if (!tzif.open(QIODevice::ReadOnly)) {
++                    // ianaId may be a POSIX rule, taken from $TZ or /etc/TZ
++                    const QByteArray zoneInfo = ianaId.split(',').at(0);
++                    const char *begin = zoneInfo.constBegin();
++                    if (PosixZone::parse(begin, zoneInfo.constEnd()).hasValidOffset()
++                        && (begin == zoneInfo.constEnd()
++                            || PosixZone::parse(begin, zoneInfo.constEnd()).hasValidOffset())) {
++                        ret.m_posixRule = ianaId;
++                    }
++                    return ret;
+                 }
+-                return ret;
+             }
+         }
+     }
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0009-qtbase-qtpluginpath.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0009-qtbase-qtpluginpath.patch
new file mode 100644
index 000000000000..28013ec10482
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0009-qtbase-qtpluginpath.patch
@@ -0,0 +1,33 @@
+From 9fc6efaf774a8716932c98c0b0ea6408ed2614c2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Milan=20P=C3=A4ssler?= <me@pbb.lc>
+Date: Sun, 10 May 2020 12:47:28 +0200
+Subject: [PATCH 09/11] qtbase-qtpluginpath
+
+---
+ src/corelib/kernel/qcoreapplication.cpp | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/src/corelib/kernel/qcoreapplication.cpp b/src/corelib/kernel/qcoreapplication.cpp
+index 5fdcc9b914..1a126ef359 100644
+--- a/src/corelib/kernel/qcoreapplication.cpp
++++ b/src/corelib/kernel/qcoreapplication.cpp
+@@ -2691,6 +2691,16 @@ QStringList QCoreApplication::libraryPathsLocked()
+         QStringList *app_libpaths = new QStringList;
+         coreappdata()->app_libpaths.reset(app_libpaths);
+ 
++        // Add library paths derived from PATH
++        const QStringList paths = QFile::decodeName(qgetenv("PATH")).split(':');
++        const QString plugindir = QStringLiteral("../" NIXPKGS_QT_PLUGIN_PREFIX);
++        for (const QString &path: paths) {
++            if (!path.isEmpty()) {
++                app_libpaths->append(QDir::cleanPath(path + QDir::separator() + plugindir));
++            }
++        }
++
++
+         auto setPathsFromEnv = [&](QString libPathEnv) {
+             if (!libPathEnv.isEmpty()) {
+                 QStringList paths = libPathEnv.split(QDir::listSeparator(), Qt::SkipEmptyParts);
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0010-qtbase-assert.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0010-qtbase-assert.patch
new file mode 100644
index 000000000000..c5b099c4ca35
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0010-qtbase-assert.patch
@@ -0,0 +1,32 @@
+From 015845b3c320d02691f28373097d1e6dbbac79f7 Mon Sep 17 00:00:00 2001
+From: Thomas Tuegel <ttuegel@mailbox.org>
+Date: Tue, 17 Sep 2019 05:37:04 -0500
+Subject: [PATCH 10/11] qtbase-assert
+
+---
+ src/testlib/qtestassert.h | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/src/testlib/qtestassert.h b/src/testlib/qtestassert.h
+index 6498ea84ef..d821ced7fc 100644
+--- a/src/testlib/qtestassert.h
++++ b/src/testlib/qtestassert.h
+@@ -44,10 +44,13 @@
+ 
+ QT_BEGIN_NAMESPACE
+ 
+-
++#if defined(QT_NO_DEBUG) && !defined(QT_FORCE_ASSERTS)
++#define QTEST_ASSERT(cond) do { } while ((false) && (cond))
++#define QTEST_ASSERT_X(cond, where, what) do { } while ((false) && (cond))
++#else
+ #define QTEST_ASSERT(cond) do { if (!(cond)) qt_assert(#cond,__FILE__,__LINE__); } while (false)
+-
+ #define QTEST_ASSERT_X(cond, where, what) do { if (!(cond)) qt_assert_x(where, what,__FILE__,__LINE__); } while (false)
++#endif
+ 
+ QT_END_NAMESPACE
+ 
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0011-fix-header_module.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0011-fix-header_module.patch
new file mode 100644
index 000000000000..98738656114d
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtbase.patch.d/0011-fix-header_module.patch
@@ -0,0 +1,25 @@
+From 2bce8511877db1db532e1437e7140b1d55633f86 Mon Sep 17 00:00:00 2001
+From: Will Dietz <w@wdtz.org>
+Date: Mon, 30 Sep 2019 20:15:40 -0500
+Subject: [PATCH 11/11] fix header_module
+
+---
+ mkspecs/features/qt_module.prf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf
+index b9e5d35026..9924271042 100644
+--- a/mkspecs/features/qt_module.prf
++++ b/mkspecs/features/qt_module.prf
+@@ -84,7 +84,7 @@ header_module {
+         CONFIG  += qt_no_install_library
+ 
+     # Allow creation of .prl, .la and .pc files.
+-    target.path = $$[QT_INSTALL_LIBS]
++    target.path = $$NIX_OUTPUT_OUT/lib
+     target.CONFIG += dummy_install
+     INSTALLS    += target
+ } else {
+-- 
+2.25.4
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtdeclarative.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtdeclarative.patch
new file mode 100644
index 000000000000..d9c721e6946c
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtdeclarative.patch
@@ -0,0 +1,114 @@
+diff --git a/src/particles/particles.pro b/src/particles/particles.pro
+index aaaa83419a..58aee00036 100644
+--- a/src/particles/particles.pro
++++ b/src/particles/particles.pro
+@@ -20,6 +20,6 @@ QMLTYPES_FILENAME = plugins.qmltypes
+ QMLTYPES_INSTALL_DIR = $$[QT_INSTALL_QML]/QtQuick/Particles.2
+ QML_IMPORT_NAME = QtQuick.Particles
+ IMPORT_VERSION = 2.$$QT_MINOR_VERSION
+-CONFIG += qmltypes install_qmltypes install_metatypes
++CONFIG += qmltypes install_qmltypes
+ 
+ load(qt_module)
+diff --git a/src/qml/qml.pro b/src/qml/qml.pro
+index e39a8319b6..90c0331278 100644
+--- a/src/qml/qml.pro
++++ b/src/qml/qml.pro
+@@ -72,6 +72,6 @@ QMLTYPES_FILENAME = plugins.qmltypes
+ QMLTYPES_INSTALL_DIR = $$[QT_INSTALL_QML]/QtQml
+ QML_IMPORT_NAME = QtQml
+ IMPORT_VERSION = 2.$$QT_MINOR_VERSION
+-CONFIG += qmltypes install_qmltypes install_metatypes
++CONFIG += qmltypes install_qmltypes
+ 
+ load(qt_module)
+diff --git a/src/qmlmodels/qmlmodels.pro b/src/qmlmodels/qmlmodels.pro
+index 4ac093556d..112e2c2be0 100644
+--- a/src/qmlmodels/qmlmodels.pro
++++ b/src/qmlmodels/qmlmodels.pro
+@@ -68,6 +68,6 @@ QMLTYPES_FILENAME = plugins.qmltypes
+ QMLTYPES_INSTALL_DIR = $$[QT_INSTALL_QML]/QtQml/Models.2
+ QML_IMPORT_NAME = QtQml.Models
+ IMPORT_VERSION = 2.$$QT_MINOR_VERSION
+-CONFIG += qmltypes install_qmltypes install_metatypes
++CONFIG += qmltypes install_qmltypes
+ 
+ load(qt_module)
+diff --git a/src/qmltest/qmltest.pro b/src/qmltest/qmltest.pro
+index c2e8068fc6..79dba368f7 100644
+--- a/src/qmltest/qmltest.pro
++++ b/src/qmltest/qmltest.pro
+@@ -34,7 +34,7 @@ QMLTYPES_FILENAME = plugins.qmltypes
+ QMLTYPES_INSTALL_DIR = $$[QT_INSTALL_QML]/Qt/test/qtestroot
+ QML_IMPORT_NAME = Qt.test.qtestroot
+ QML_IMPORT_VERSION = 1.0
+-CONFIG += qmltypes install_qmltypes install_metatypes
++CONFIG += qmltypes install_qmltypes
+ 
+ # Install qmldir
+ qmldir.files = $$PWD/qmldir
+diff --git a/src/qmlworkerscript/qmlworkerscript.pro b/src/qmlworkerscript/qmlworkerscript.pro
+index 84466062e1..79885455cc 100644
+--- a/src/qmlworkerscript/qmlworkerscript.pro
++++ b/src/qmlworkerscript/qmlworkerscript.pro
+@@ -23,6 +23,6 @@ QMLTYPES_FILENAME = plugins.qmltypes
+ QMLTYPES_INSTALL_DIR = $$[QT_INSTALL_QML]/QtQml/WorkerScript.2
+ QML_IMPORT_NAME = QtQml.WorkerScript
+ IMPORT_VERSION = 2.$$QT_MINOR_VERSION
+-CONFIG += qmltypes install_qmltypes install_metatypes
++CONFIG += qmltypes install_qmltypes
+ 
+ load(qt_module)
+diff --git a/src/quick/quick.pro b/src/quick/quick.pro
+index f2d49cf939..c401b04c4e 100644
+--- a/src/quick/quick.pro
++++ b/src/quick/quick.pro
+@@ -52,4 +52,4 @@ QMLTYPES_FILENAME = plugins.qmltypes
+ QMLTYPES_INSTALL_DIR = $$[QT_INSTALL_QML]/QtQuick.2
+ QML_IMPORT_NAME = QtQuick
+ IMPORT_VERSION = 2.$$QT_MINOR_VERSION
+-CONFIG += qmltypes install_qmltypes install_metatypes
++CONFIG += qmltypes install_qmltypes
+diff --git a/src/quickshapes/quickshapes.pro b/src/quickshapes/quickshapes.pro
+index 4dbd3e5e46..0c6b186fc8 100644
+--- a/src/quickshapes/quickshapes.pro
++++ b/src/quickshapes/quickshapes.pro
+@@ -36,4 +36,4 @@ QMLTYPES_FILENAME = plugins.qmltypes
+ QMLTYPES_INSTALL_DIR = $$[QT_INSTALL_QML]/QtQuick/Shapes
+ QML_IMPORT_NAME = QtQuick.Shapes
+ IMPORT_VERSION = 1.$$QT_MINOR_VERSION
+-CONFIG += qmltypes install_qmltypes install_metatypes
++CONFIG += qmltypes install_qmltypes
+diff --git a/src/qml/qml/qqmlimport.cpp b/src/qml/qml/qqmlimport.cpp
+index 005db4248..685c5b1b2 100644
+--- a/src/qml/qml/qqmlimport.cpp
++++ b/src/qml/qml/qqmlimport.cpp
+@@ -1760,6 +1760,15 @@ QQmlImportDatabase::QQmlImportDatabase(QQmlEngine *e)
+     QString installImportsPath =  QLibraryInfo::location(QLibraryInfo::Qml2ImportsPath);
+     addImportPath(installImportsPath);
+ 
++    // Add import paths derived from PATH
++    const QStringList paths = QFile::decodeName(qgetenv("PATH")).split(':');
++    const QString qmldir = QStringLiteral("../" NIXPKGS_QML2_IMPORT_PREFIX);
++    for (const QString &path: paths) {
++        if (!path.isEmpty()) {
++            addImportPath(QDir::cleanPath(path + QDir::separator() + qmldir));
++        }
++    }
++
+     // env import paths
+     if (Q_UNLIKELY(!qEnvironmentVariableIsEmpty("QML2_IMPORT_PATH"))) {
+         const QString envImportPath = qEnvironmentVariable("QML2_IMPORT_PATH");
+diff --git a/tools/qmlcachegen/qmlcache.prf b/tools/qmlcachegen/qmlcache.prf
+index 537eaf62ea..e21de58f64 100644
+--- a/tools/qmlcachegen/qmlcache.prf
++++ b/tools/qmlcachegen/qmlcache.prf
+@@ -26,7 +26,7 @@ defineReplace(qmlCacheOutputFileName) {
+ }
+ 
+ qmlcacheinst.base = $$QMLCACHE_DESTDIR
+-qmlcacheinst.path = $$[QT_INSTALL_QML]/$$TARGETPATH
++qmlcacheinst.path = $$NIX_OUTPUT_QML/$$TARGETPATH
+ qmlcacheinst.CONFIG = no_check_exist
+ 
+ qmlcachegen.input = CACHEGEN_FILES
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtscript.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtscript.patch
new file mode 100644
index 000000000000..5508dec1280e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtscript.patch
@@ -0,0 +1,13 @@
+diff --git a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
+index 1f6d25e..087c3fb 100644
+--- a/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
++++ b/src/3rdparty/javascriptcore/JavaScriptCore/wtf/Threading.h
+@@ -81,7 +81,7 @@
+ #include <pthread.h>
+ #elif PLATFORM(GTK)
+ #include <wtf/gtk/GOwnPtr.h>
+-typedef struct _GMutex GMutex;
++typedef union _GMutex GMutex;
+ typedef struct _GCond GCond;
+ #endif
+ 
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtserialport.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtserialport.patch
new file mode 100644
index 000000000000..f25524e80bcf
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtserialport.patch
@@ -0,0 +1,22 @@
+diff --git a/src/serialport/qtudev_p.h b/src/serialport/qtudev_p.h
+index af2dab2..8e17f64 100644
+--- a/src/serialport/qtudev_p.h
++++ b/src/serialport/qtudev_p.h
+@@ -111,9 +111,17 @@ inline QFunctionPointer resolveSymbol(QLibrary *udevLibrary, const char *symbolN
+ inline bool resolveSymbols(QLibrary *udevLibrary)
+ {
+     if (!udevLibrary->isLoaded()) {
++#ifdef NIXPKGS_LIBUDEV
++        udevLibrary->setFileNameAndVersion(QLatin1String(NIXPKGS_LIBUDEV), 1);
++#else
+         udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 1);
++#endif
+         if (!udevLibrary->load()) {
++#ifdef NIXPKGS_LIBUDEV
++            udevLibrary->setFileNameAndVersion(QLatin1String(NIXPKGS_LIBUDEV), 0);
++#else
+             udevLibrary->setFileNameAndVersion(QStringLiteral("udev"), 0);
++#endif
+             if (!udevLibrary->load()) {
+                 qWarning("Failed to load the library: %s, supported version(s): %i and %i", qPrintable(udevLibrary->fileName()), 1, 0);
+                 return false;
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qttools.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qttools.patch
new file mode 100644
index 000000000000..8ae12198ca25
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qttools.patch
@@ -0,0 +1,15 @@
+--- a/src/macdeployqt/shared/shared.cpp
++++ b/src/macdeployqt/shared/shared.cpp
+@@ -1241,6 +1241,12 @@ bool deployQmlImports(const QString &appBundlePath, DeploymentInfo deploymentInf
+     if (!QFile(qmlImportScannerPath).exists())
+         qmlImportScannerPath = QCoreApplication::applicationDirPath() + "/qmlimportscanner";
+ 
++#ifdef NIXPKGS_QMLIMPORTSCANNER
++    // Fallback: Nixpkgs hardcoded path
++    if (!QFile(qmlImportScannerPath).exists())
++        qmlImportScannerPath = NIXPKGS_QMLIMPORTSCANNER;
++#endif
++
+     // Verify that we found a qmlimportscanner binary
+     if (!QFile(qmlImportScannerPath).exists()) {
+         LogError() << "qmlimportscanner not found at" << qmlImportScannerPath;
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebengine-darwin-no-platform-check.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebengine-darwin-no-platform-check.patch
new file mode 100644
index 000000000000..546e753144d0
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebengine-darwin-no-platform-check.patch
@@ -0,0 +1,33 @@
+diff --git a/mkspecs/features/platform.prf b/mkspecs/features/platform.prf
+--- a/mkspecs/features/platform.prf
++++ b/mkspecs/features/platform.prf
+@@ -40,8 +40,6 @@ defineTest(isPlatformSupported) {
+   } else:osx {
+     # FIXME: Try to get it back down to 8.2 for building on OS X 10.11
+     !isMinXcodeVersion(8, 3, 3) {
+-      skipBuild("Using Xcode version $$QMAKE_XCODE_VERSION, but at least version 8.3.3 is required to build Qt WebEngine.")
+-      return(false)
+     }
+     !clang|intel_icc {
+         skipBuild("Qt WebEngine on macOS requires Clang.")
+@@ -54,8 +52,6 @@ defineTest(isPlatformSupported) {
+       return(false)
+     }
+     !isMinOSXSDKVersion(10, 12): {
+-      skipBuild("Building Qt WebEngine requires a macOS SDK version of 10.12 or newer. Current version is $${WEBENGINE_OSX_SDK_PRODUCT_VERSION}.")
+-      return(false)
+     }
+   } else {
+     skipBuild("Unknown platform. Qt WebEngine only supports Linux, Windows, and macOS.")
+diff --git a/src/core/config/mac_osx.pri b/src/core/config/mac_osx.pri
+--- a/src/core/config/mac_osx.pri
++++ b/src/core/config/mac_osx.pri
+@@ -5,8 +5,6 @@ load(functions)
+ # otherwise query for it.
+ QMAKE_MAC_SDK_VERSION = $$eval(QMAKE_MAC_SDK.$${QMAKE_MAC_SDK}.SDKVersion)
+ isEmpty(QMAKE_MAC_SDK_VERSION) {
+-     QMAKE_MAC_SDK_VERSION = $$system("/usr/bin/xcodebuild -sdk $${QMAKE_MAC_SDK} -version SDKVersion 2>/dev/null")
+-     isEmpty(QMAKE_MAC_SDK_VERSION): error("Could not resolve SDK version for \'$${QMAKE_MAC_SDK}\'")
+ }
+
+ QMAKE_CLANG_DIR = "/usr"
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebkit-darwin-no-qos-classes.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebkit-darwin-no-qos-classes.patch
new file mode 100644
index 000000000000..a7087f517623
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebkit-darwin-no-qos-classes.patch
@@ -0,0 +1,11 @@
+diff --git a/Source/cmake/OptionsQt.cmake b/Source/cmake/OptionsQt.cmake
+--- a/Source/cmake/OptionsQt.cmake
++++ b/Source/cmake/OptionsQt.cmake
+@@ -683,7 +683,6 @@ if (WIN32 AND COMPILER_IS_GCC_OR_CLANG)
+ endif ()
+ 
+ if (APPLE)
+-    SET_AND_EXPOSE_TO_BUILD(HAVE_QOS_CLASSES 1)
+ endif ()
+ 
+ if (ENABLE_MATHML)
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebkit-darwin-no-readline.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebkit-darwin-no-readline.patch
new file mode 100644
index 000000000000..26d189d86019
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebkit-darwin-no-readline.patch
@@ -0,0 +1,45 @@
+diff --git a/Source/JavaScriptCore/shell/CMakeLists.txt b/Source/JavaScriptCore/shell/CMakeLists.txt
+--- a/Source/JavaScriptCore/shell/CMakeLists.txt
++++ b/Source/JavaScriptCore/shell/CMakeLists.txt
+@@ -9,7 +9,6 @@ set(JSC_LIBRARIES
+ )
+ 
+ if (WTF_OS_MAC_OS_X)
+-    list(APPEND JSC_LIBRARIES edit)
+ endif ()
+ 
+ if ("${JavaScriptCore_LIBRARY_TYPE}" MATCHES "STATIC")
+diff --git a/Source/WTF/wtf/Platform.h b/Source/WTF/wtf/Platform.h
+--- a/Source/WTF/wtf/Platform.h
++++ b/Source/WTF/wtf/Platform.h
+@@ -563,7 +563,6 @@
+ #if PLATFORM(IOS)
+ 
+ #define HAVE_NETWORK_EXTENSION 1
+-#define HAVE_READLINE 1
+ #if USE(APPLE_INTERNAL_SDK)
+ #define USE_CFNETWORK 1
+ #endif
+@@ -650,7 +649,6 @@
+ #define HAVE_MADV_DONTNEED 1
+ #define HAVE_MERGESORT 1
+ #define HAVE_PTHREAD_SETNAME_NP 1
+-#define HAVE_READLINE 1
+ #define HAVE_SYS_TIMEB_H 1
+ 
+ #if !PLATFORM(GTK) && !PLATFORM(QT)
+diff --git a/Source/WTF/wtf/PlatformMac.cmake b/Source/WTF/wtf/PlatformMac.cmake
+--- a/Source/WTF/wtf/PlatformMac.cmake
++++ b/Source/WTF/wtf/PlatformMac.cmake
+@@ -2,11 +2,9 @@ set(WTF_LIBRARY_TYPE SHARED)
+ 
+ find_library(COCOA_LIBRARY Cocoa)
+ find_library(COREFOUNDATION_LIBRARY CoreFoundation)
+-find_library(READLINE_LIBRARY Readline)
+ list(APPEND WTF_LIBRARIES
+     ${COREFOUNDATION_LIBRARY}
+     ${COCOA_LIBRARY}
+-    ${READLINE_LIBRARY}
+     libicucore.dylib
+ )
+ 
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebkit.patch b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebkit.patch
new file mode 100644
index 000000000000..b94a4b76cbab
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/qtwebkit.patch
@@ -0,0 +1,12 @@
+diff --git a/Source/WebKit2/PlatformQt.cmake b/Source/WebKit2/PlatformQt.cmake
+--- a/Source/WebKit2/PlatformQt.cmake
++++ b/Source/WebKit2/PlatformQt.cmake
+@@ -261,6 +261,7 @@
+ list(APPEND WebKit2_SYSTEM_INCLUDE_DIRECTORIES
+     ${GLIB_INCLUDE_DIRS}
+     ${GSTREAMER_INCLUDE_DIRS}
++    ${GSTREAMER_PBUTILS_INCLUDE_DIRS}
+     ${Qt5Quick_INCLUDE_DIRS}
+     ${Qt5Quick_PRIVATE_INCLUDE_DIRS}
+     ${SQLITE_INCLUDE_DIR}
+
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/5.15/srcs.nix b/nixpkgs/pkgs/development/libraries/qt-5/5.15/srcs.nix
new file mode 100644
index 000000000000..c88e896286ee
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/5.15/srcs.nix
@@ -0,0 +1,342 @@
+# DO NOT EDIT! This file is generated automatically.
+# Command: ./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/qt-5/5.15
+{ fetchurl, mirror }:
+
+{
+  qt3d = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qt3d-everywhere-src-5.15.0.tar.xz";
+      sha256 = "61856f0c453b79e98b7a1e65ea8f59976fa78230ffa8dec959b5f4b45383dffd";
+      name = "qt3d-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtactiveqt = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtactiveqt-everywhere-src-5.15.0.tar.xz";
+      sha256 = "1b455eacfb9ef49912d7a79040ea409a6ab88dfa192d313e6b5e02a79d741b51";
+      name = "qtactiveqt-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtandroidextras = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtandroidextras-everywhere-src-5.15.0.tar.xz";
+      sha256 = "c9019185221e94e37e250c84acaebfb7b2f5342e8ad60cdcff052ac2b85ec671";
+      name = "qtandroidextras-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtbase = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtbase-everywhere-src-5.15.0.tar.xz";
+      sha256 = "9e7af10aece15fa9500369efde69cb220eee8ec3a6818afe01ce1e7d484824c5";
+      name = "qtbase-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtcharts = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtcharts-everywhere-src-5.15.0.tar.xz";
+      sha256 = "44a24fc16abcaf9ae97ecf3215f6f3b44ebdb3b73bcb4ed3549a51519e4883a7";
+      name = "qtcharts-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtconnectivity = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtconnectivity-everywhere-src-5.15.0.tar.xz";
+      sha256 = "f911fb8f8bf3a9958785d0378d25ced8989047938b7138d619854a94fa0b27dd";
+      name = "qtconnectivity-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtdatavis3d = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtdatavis3d-everywhere-src-5.15.0.tar.xz";
+      sha256 = "8f07747f371f7c515c667240a795105c89aa83c08d88ee92fa1ef7efccea10a3";
+      name = "qtdatavis3d-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtdeclarative = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtdeclarative-everywhere-src-5.15.0.tar.xz";
+      sha256 = "9c3c93fb7d340b2f7d738d12408c047318c78973cb45bfc5ff6b3a57e1fef699";
+      name = "qtdeclarative-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtdoc = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtdoc-everywhere-src-5.15.0.tar.xz";
+      sha256 = "07ca8db98c317f25cc9a041c48a6824baf63893bf5b535d6f8d266dea8c7659f";
+      name = "qtdoc-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtgamepad = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtgamepad-everywhere-src-5.15.0.tar.xz";
+      sha256 = "dda54d9f90897944bed5e6af48a904a677fd97eb6f57ab08a2b232c431caf31a";
+      name = "qtgamepad-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtgraphicaleffects = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtgraphicaleffects-everywhere-src-5.15.0.tar.xz";
+      sha256 = "0d2ea4bc73b9df13a4b739dcbc1e3c7b298c7e682f7f9252b232e3bde7b63eda";
+      name = "qtgraphicaleffects-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtimageformats = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtimageformats-everywhere-src-5.15.0.tar.xz";
+      sha256 = "83f32101b1a898fcb8ed6f11a657d1125484ac0c2223014b61849d9010efebc8";
+      name = "qtimageformats-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtlocation = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtlocation-everywhere-src-5.15.0.tar.xz";
+      sha256 = "c68b0778a521e5522641c41b1778999dd408ebfda1e0de166a83743268be5f3f";
+      name = "qtlocation-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtlottie = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtlottie-everywhere-src-5.15.0.tar.xz";
+      sha256 = "2053f474dcd7184fdcae2507f47af6527f6ca25b4424483f9265853c3626c833";
+      name = "qtlottie-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtmacextras = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtmacextras-everywhere-src-5.15.0.tar.xz";
+      sha256 = "95a8c35b30373224cdd6d1ca0bdda1a314b20e91551a4824e8ca7e50ce8ff439";
+      name = "qtmacextras-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtmultimedia = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtmultimedia-everywhere-src-5.15.0.tar.xz";
+      sha256 = "0708d867697f392dd3600c5c1c88f5c61b772a5250a4d059dca67b844af0fbd7";
+      name = "qtmultimedia-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtnetworkauth = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtnetworkauth-everywhere-src-5.15.0.tar.xz";
+      sha256 = "96c6107f6e85662a05f114c5b9bd3503a3100bd940e1494c73a99e77f9e7cf85";
+      name = "qtnetworkauth-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtpurchasing = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtpurchasing-everywhere-src-5.15.0.tar.xz";
+      sha256 = "2127f180c4889055d88e2b402b62be80a5a213a0e48d2056cc9a01d9913b3a16";
+      name = "qtpurchasing-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtquick3d = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtquick3d-everywhere-src-5.15.0.tar.xz";
+      sha256 = "6d3b91b653ba5e33fd5b37cd785ded6cf1dd83d35250c3addb77eb35f90e52cb";
+      name = "qtquick3d-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtquickcontrols = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtquickcontrols-everywhere-src-5.15.0.tar.xz";
+      sha256 = "7072cf4cd27e9f18b36b1c48dec7c79608cf87ba847d3fc3de133f220ec1acee";
+      name = "qtquickcontrols-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtquickcontrols2 = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtquickcontrols2-everywhere-src-5.15.0.tar.xz";
+      sha256 = "839abda9b58cd8656b2e5f46afbb484e63df466481ace43318c4c2022684648f";
+      name = "qtquickcontrols2-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtquicktimeline = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtquicktimeline-everywhere-src-5.15.0.tar.xz";
+      sha256 = "16ffeb733ba15815121fca5705ed5220ce0a0eb2ec0431ad0d55da9426a03c00";
+      name = "qtquicktimeline-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtremoteobjects = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtremoteobjects-everywhere-src-5.15.0.tar.xz";
+      sha256 = "86fcfdce77f13c7babdec4dc1d0c4b7b6b02e40120a4250dc59e911c53c08abf";
+      name = "qtremoteobjects-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtscript = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtscript-everywhere-src-5.15.0.tar.xz";
+      sha256 = "02dc21b309621876a89671be27cea86a58e74a96aa28da65fe1b37a3aad29373";
+      name = "qtscript-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtscxml = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtscxml-everywhere-src-5.15.0.tar.xz";
+      sha256 = "9c3a72bf5ebd07553b0049cc1943f04cff93b7e53bde8c81d652422dbf12ff72";
+      name = "qtscxml-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtsensors = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtsensors-everywhere-src-5.15.0.tar.xz";
+      sha256 = "12b17ed6cbe6c49c8ab71958bc5d8ad1c42bf20e2fa72613ede11001e98144da";
+      name = "qtsensors-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtserialbus = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtserialbus-everywhere-src-5.15.0.tar.xz";
+      sha256 = "cee067c84d025e221b83d109b58ea16c4d2dc0af0aea45cc6724acd33a1b7379";
+      name = "qtserialbus-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtserialport = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtserialport-everywhere-src-5.15.0.tar.xz";
+      sha256 = "ba19369069a707dffddca8d9c477bb2bb4aa26630dfee6792254c4bf9bd57a67";
+      name = "qtserialport-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtspeech = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtspeech-everywhere-src-5.15.0.tar.xz";
+      sha256 = "7219a878c14a24d0ca18d52df1717361b13aee96ac9790baf9ad2b383492dd61";
+      name = "qtspeech-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtsvg = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtsvg-everywhere-src-5.15.0.tar.xz";
+      sha256 = "ee4d287e2e205ca8c08921b9cbe0fc58bf46be080b5359ad4d7fbdee44aeee0d";
+      name = "qtsvg-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qttools = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qttools-everywhere-src-5.15.0.tar.xz";
+      sha256 = "ddbcb49aab3a2e3672582c6e2e7bec0058feff790f67472343c79e2895e0e437";
+      name = "qttools-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qttranslations = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qttranslations-everywhere-src-5.15.0.tar.xz";
+      sha256 = "45c43268d9df50784d4d8ca345fce9288a1055fd074ac0ef508097f7aeba22fe";
+      name = "qttranslations-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtvirtualkeyboard = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtvirtualkeyboard-everywhere-src-5.15.0.tar.xz";
+      sha256 = "f22f9204ab65578d9c8aa832a8a39108f826e00a7d391c7884ff490c587f34be";
+      name = "qtvirtualkeyboard-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtwayland = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwayland-everywhere-src-5.15.0.tar.xz";
+      sha256 = "084133e10bfbd32a28125639660c59975f23457bba6a79b30a25802cec76a9fb";
+      name = "qtwayland-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtwebchannel = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwebchannel-everywhere-src-5.15.0.tar.xz";
+      sha256 = "ea80510b363e6f92ce99932f06d176e43459c4a5159fe97b5ef96fcfbab5ed4f";
+      name = "qtwebchannel-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtwebengine = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwebengine-everywhere-src-5.15.0.tar.xz";
+      sha256 = "c38e2fda7ed1b7d5a90f26abf231ec0715d78a5bc39a94673d8e39d75f04c5df";
+      name = "qtwebengine-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtwebglplugin = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwebglplugin-everywhere-src-5.15.0.tar.xz";
+      sha256 = "f7b81f25ddf7b3a0046daa7224bc1e18c8b754b00b1a33775f30f827a5cdca15";
+      name = "qtwebglplugin-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtwebsockets = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwebsockets-everywhere-src-5.15.0.tar.xz";
+      sha256 = "87c2f6542778f9b65b3f208740c1d0db643fd0bede21404b9abb265355da5092";
+      name = "qtwebsockets-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtwebview = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwebview-everywhere-src-5.15.0.tar.xz";
+      sha256 = "b87ea205ce79c6b438ebe596e91fa80ba11f6aac7e89ffbf52b337d0fc8d6660";
+      name = "qtwebview-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtwinextras = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtwinextras-everywhere-src-5.15.0.tar.xz";
+      sha256 = "d77f2cb2ce83bdbfd0a970bc8d7d11c96b2df16befc257d6594f79dfd92abff0";
+      name = "qtwinextras-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtx11extras = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtx11extras-everywhere-src-5.15.0.tar.xz";
+      sha256 = "c72b6c188284facddcf82835af048240e721dc8d6d9e8a7bd71d76fd876881a1";
+      name = "qtx11extras-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+  qtxmlpatterns = {
+    version = "5.15.0";
+    src = fetchurl {
+      url = "${mirror}/official_releases/qt/5.15/5.15.0/submodules/qtxmlpatterns-everywhere-src-5.15.0.tar.xz";
+      sha256 = "2752cf2aa25ebfda89c3736457e27b3d0c7c7ed290dcfd52c209f9f905998507";
+      name = "qtxmlpatterns-everywhere-src-5.15.0.tar.xz";
+    };
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix
index 5eaca56684fa..cc6e45e3ebde 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtbase.nix
@@ -8,7 +8,7 @@
   darwin, libiconv,
 
   dbus, fontconfig, freetype, glib, harfbuzz, icu, libX11, libXcomposite,
-  libXcursor, libXext, libXi, libXrender, libinput, libjpeg, libpng, libtiff,
+  libXcursor, libXext, libXi, libXrender, libinput, libjpeg, libpng,
   libxcb, libxkbcommon, libxml2, libxslt, openssl, pcre16, pcre2, sqlite, udev,
   xcbutil, xcbutilimage, xcbutilkeysyms, xcbutilrenderutil, xcbutilwm,
   zlib,
@@ -48,7 +48,7 @@ stdenv.mkDerivation {
       harfbuzz icu
 
       # Image formats
-      libjpeg libpng libtiff
+      libjpeg libpng
       (if compareVersion "5.9.0" < 0 then pcre16 else pcre2)
     ]
     ++ (
@@ -295,8 +295,8 @@ stdenv.mkDerivation {
       "-make tools"
       ''-${lib.optionalString (!buildExamples) "no"}make examples''
       ''-${lib.optionalString (!buildTests) "no"}make tests''
-      "-v"
     ]
+    ++ lib.optional (compareVersion "5.15.0" < 0) "-v"
 
     ++ (
       if stdenv.isDarwin
@@ -311,8 +311,9 @@ stdenv.mkDerivation {
       else
         [
           "-${lib.optionalString (compareVersion "5.9.0" < 0) "no-"}rpath"
-
-          "-system-xcb"
+        ]
+        ++ lib.optional (compareVersion "5.15.0" < 0) "-system-xcb"
+        ++ [
           "-xcb"
           "-qpa xcb"
           "-L" "${libX11.out}/lib"
@@ -327,7 +328,9 @@ stdenv.mkDerivation {
           ''-${lib.optionalString (cups == null) "no-"}cups''
           "-dbus-linked"
           "-glib"
-          "-system-libjpeg"
+        ]
+        ++ lib.optional (compareVersion "5.15.0" < 0) "-system-libjpeg"
+        ++ [
           "-system-libpng"
         ]
         ++ lib.optional withGtk3 "-gtk"
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtimageformats.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtimageformats.nix
index 1a7726070be3..9c80507b7c70 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtimageformats.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtimageformats.nix
@@ -1,6 +1,7 @@
-{ qtModule, qtbase }:
+{ qtModule, qtbase, libtiff }:
 
 qtModule {
   name = "qtimageformats";
   qtInputs = [ qtbase ];
+  propagatedBuildInputs = [ libtiff ];
 }
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix
index d0bab88b2f21..42ed23bb6dc9 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtmultimedia.nix
@@ -1,5 +1,5 @@
 { qtModule, stdenv, qtbase, qtdeclarative, pkgconfig
-, alsaLib, gstreamer, gst-plugins-base, libpulseaudio
+, alsaLib, gstreamer, gst-plugins-base, libpulseaudio, wayland
 }:
 
 with stdenv.lib;
@@ -8,8 +8,9 @@ qtModule {
   name = "qtmultimedia";
   qtInputs = [ qtbase qtdeclarative ];
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gstreamer gst-plugins-base libpulseaudio]
-    ++ optional (stdenv.isLinux) alsaLib;
+  buildInputs = [ gstreamer gst-plugins-base libpulseaudio ]
+    ++ optional (stdenv.isLinux) alsaLib
+    ++ optional (versionAtLeast qtbase.version "5.14.0" && stdenv.isLinux) wayland;
   outputs = [ "bin" "dev" "out" ];
   qmakeFlags = [ "GST_VERSION=1.0" ];
   NIX_LDFLAGS = optionalString (stdenv.isDarwin) "-lobjc";
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialbus.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialbus.nix
new file mode 100644
index 000000000000..48968a254c65
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtserialbus.nix
@@ -0,0 +1,6 @@
+{ qtModule, qtbase, qtserialport }:
+
+qtModule {
+  name = "qtserialbus";
+  qtInputs = [ qtbase qtserialport ];
+}
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qttools.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qttools.nix
index c38eb0105e12..fae90972978f 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qttools.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qttools.nix
@@ -11,6 +11,8 @@ qtModule {
   postPatch = ''
     sed -i "src/linguist/linguist.pro" \
         -e '/^cmake_linguist_config_version_file.input =/ s|$$\[QT_HOST_DATA.*\]|${getDev qtbase}|'
+    sed -i "src/qtattributionsscanner/qtattributionsscanner.pro" \
+        -e '/^cmake_qattributionsscanner_config_version_file.input =/ s|$$\[QT_HOST_DATA.*\]|${getDev qtbase}|'
   '';
 
   devTools = [
@@ -20,14 +22,18 @@ qtModule {
     "bin/qdoc"
     "bin/lconvert"
     "bin/designer"
-    "bin/qtattributesscanner"
+    "bin/qtattributionsscanner"
     "bin/lrelease"
+    "bin/lrelease-pro"
     "bin/pixeltool"
     "bin/lupdate"
+    "bin/lupdate-pro"
     "bin/qtdiag"
     "bin/qhelpgenerator"
     "bin/qtplugininfo"
     "bin/qthelpconverter"
+    "bin/lprodump"
+    "bin/qdistancefieldgenerator"
   ] ++ optionals stdenv.isDarwin [
     "bin/macdeployqt"
   ];
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
index 512060701e2d..049b0349a4f8 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebengine.nix
@@ -13,9 +13,9 @@
 , systemd
 , enableProprietaryCodecs ? true
 , gn
-, cups, darwin, openbsm, runCommand, xcbuild
+, cups, darwin, openbsm, runCommand, xcbuild, writeScriptBin
 , ffmpeg_3 ? null
-, lib, stdenv
+, lib, stdenv, fetchpatch
 }:
 
 with stdenv.lib;
@@ -38,6 +38,17 @@ qtModule {
   # which cannot be set at the same time as -Wformat-security
   hardeningDisable = [ "format" ];
 
+  patches = [
+    # Fix build with bison-3.7: https://code.qt.io/cgit/qt/qtwebengine-chromium.git/commit/?id=1a53f599
+    (fetchpatch {
+      name = "qtwebengine-bison-3.7-build.patch";
+      url = "https://code.qt.io/cgit/qt/qtwebengine-chromium.git/patch/?id=1a53f599";
+      sha256 = "1nqpyn5fq37q7i9nasag6i14lnz0d7sld5ikqhlm8qwq9d7gbmjy";
+      stripLen = 1;
+      extraPrefix = "src/3rdparty/";
+    })
+  ];
+
   postPatch =
     # Patch Chromium build tools
     ''
@@ -51,6 +62,13 @@ qtModule {
       substituteInPlace ./src/3rdparty/chromium/v8/gypfiles/standalone.gypi \
         --replace /bin/echo ${coreutils}/bin/echo
     ''
+    # Prevent Chromium build script from making the path to `clang` relative to
+    # the build directory.  `clang_base_path` is the value of `QMAKE_CLANG_DIR`
+    # from `src/core/config/mac_osx.pri`.
+    + optionalString stdenv.isDarwin ''
+      substituteInPlace ./src/3rdparty/chromium/build/toolchain/mac/BUILD.gn \
+        --replace 'prefix = rebase_path("$clang_base_path/bin/", root_build_dir)' 'prefix = "$clang_base_path/bin/"'
+    ''
     # Patch library paths in Qt sources
     + ''
       sed -i \
@@ -61,7 +79,7 @@ qtModule {
     ''
     # Patch library paths in Chromium sources
     + optionalString (!stdenv.isDarwin) ''
-      sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${systemd.lib}/lib/\1!' \
+      sed -i -e '/lib_loader.*Load/s!"\(libudev\.so\)!"${lib.getLib systemd}/lib/\1!' \
         src/3rdparty/chromium/device/udev_linux/udev?_loader.cc
 
       sed -i -e '/libpci_loader.*Load/s!"\(libpci\.so\)!"${pciutils}/lib/\1!' \
@@ -69,32 +87,15 @@ qtModule {
     ''
     + optionalString stdenv.isDarwin (''
       substituteInPlace src/core/config/mac_osx.pri \
-        --replace /usr ${stdenv.cc}
+        --replace 'QMAKE_CLANG_DIR = "/usr"' 'QMAKE_CLANG_DIR = "${stdenv.cc}"'
     ''
+     # Following is required to prevent a build error:
+     # ninja: error: '/nix/store/z8z04p0ph48w22rqzx7ql67gy8cyvidi-SDKs/MacOSX10.12.sdk/usr/include/mach/exc.defs', needed by 'gen/third_party/crashpad/crashpad/util/mach/excUser.c', missing and no known rule to make it
     + (optionalString (lib.versionAtLeast qtCompatVersion "5.11") ''
       substituteInPlace src/3rdparty/chromium/third_party/crashpad/crashpad/util/BUILD.gn \
         --replace '$sysroot/usr' "${darwin.xnu}"
     '')
     + ''
-
-    cat <<EOF > src/3rdparty/chromium/build/mac/find_sdk.py
-#!/usr/bin/env python
-print("${darwin.apple_sdk.sdk}")
-print("10.12.0")
-EOF
-
-    cat <<EOF > src/3rdparty/chromium/build/config/mac/sdk_info.py
-#!/usr/bin/env python
-print('xcode_version="0910"')
-print('xcode_version_int=910')
-print('xcode_build="9B55"')
-print('machine_os_build="17E199"')
-print('sdk_path=""')
-print('sdk_version="10.10"')
-print('sdk_platform_path=""')
-print('sdk_build="17B41"')
-EOF
-
     # Apple has some secret stuff they don't share with OpenBSM
     substituteInPlace src/3rdparty/chromium/base/mac/mach_port_broker.mm \
       --replace "audit_token_to_pid(msg.trailer.msgh_audit)" "msg.trailer.msgh_audit.val[5]"
@@ -111,8 +112,8 @@ EOF
     # TODO: investigate and fix properly
     "-march=westmere"
   ] ++ lib.optionals stdenv.isDarwin [
-    "-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_10"
-    "-DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_10"
+    "-DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_12"
+    "-DMAC_OS_X_VERSION_MIN_REQUIRED=MAC_OS_X_VERSION_10_12"
 
     #
     # Prevent errors like
@@ -189,6 +190,7 @@ EOF
     CoreWLAN
     Quartz
     Cocoa
+    LocalAuthentication
 
     openbsm
     libunwind
@@ -197,6 +199,21 @@ EOF
   buildInputs = optionals stdenv.isDarwin (with darwin; [
     cups
 
+    # `sw_vers` is used by `src/3rdparty/chromium/build/config/mac/sdk_info.py`
+    # to get some information about the host platform.
+    (writeScriptBin "sw_vers" ''
+      #!${stdenv.shell}
+
+      while [ $# -gt 0 ]; do
+        case "$1" in
+          -buildVersion) echo "17E199";;
+        *) break ;;
+
+        esac
+        shift
+      done
+    '')
+
     # For sandbox.h include
     (runCommand "MacOS_SDK_sandbox.h" {} ''
       install -Dm444 "${lib.getDev darwin.apple_sdk.sdk}"/include/sandbox.h "$out"/include/sandbox.h
diff --git a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix
index 1133623483af..b31e57f38065 100644
--- a/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix
+++ b/nixpkgs/pkgs/development/libraries/qt-5/modules/qtwebkit.nix
@@ -71,5 +71,8 @@ qtModule {
   # Hack to avoid TMPDIR in RPATHs.
   preFixup = ''rm -rf "$(pwd)" && mkdir "$(pwd)" '';
 
-  meta.maintainers = with stdenv.lib.maintainers; [ abbradar periklis ];
+  meta = {
+    broken = lib.versionAtLeast qtbase.version "5.15";
+    maintainers = with stdenv.lib.maintainers; [ abbradar periklis ];
+  };
 }
diff --git a/nixpkgs/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix b/nixpkgs/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix
index f17165b5ed34..2120c6938571 100644
--- a/nixpkgs/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qtstyleplugin-kvantum-qt4/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "qtstyleplugin-kvantum-qt4";
-  version = "0.15.2";
+  version = "0.15.3";
 
   src = fetchFromGitHub {
     owner = "tsujan";
     repo = "Kvantum";
     rev = "V${version}";
-    sha256 = "0cv0lxyi2sr0k7f03rsh1j28avdxd0l0480jsa95ca3d2lq392g3";
+    sha256 = "0jq3y63c36nr2rprg7im9ik112p5zvhj46vzgxfbnpvskmg0cchm";
   };
 
   nativeBuildInputs = [ qmake4Hook ];
diff --git a/nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix b/nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix
index ac5755f7c3d9..1970dd183c1c 100644
--- a/nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix
+++ b/nixpkgs/pkgs/development/libraries/qtstyleplugins/default.nix
@@ -10,6 +10,8 @@ mkDerivation {
     sha256 = "085wyn85nrmzr8nv5zv7fi2kqf8rp1gnd30h72s30j55xvhmxvmy";
   };
 
+  patches = [ ./fix-build-against-Qt-5.15.patch ];
+
   nativeBuildInputs = [ pkgconfig qmake ];
   buildInputs = [ gtk2 ];
 
diff --git a/nixpkgs/pkgs/development/libraries/qtstyleplugins/fix-build-against-Qt-5.15.patch b/nixpkgs/pkgs/development/libraries/qtstyleplugins/fix-build-against-Qt-5.15.patch
new file mode 100644
index 000000000000..7eb744158204
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/qtstyleplugins/fix-build-against-Qt-5.15.patch
@@ -0,0 +1,44 @@
+From 335dbece103e2cbf6c7cf819ab6672c2956b17b3 Mon Sep 17 00:00:00 2001
+From: Fabian Vogt <fvogt@suse.de>
+Date: Thu, 28 May 2020 12:35:42 +0200
+Subject: [PATCH] fix build against Qt 5.15
+
+With 0a93db4d82c051164923a10e4382b12de9049b45 ("Unify application
+palette handling between QGuiApplication and QApplication")
+QApplicationPrivate::setSystemPalette is no longer used and necessary.
+---
+ src/plugins/styles/gtk2/qgtkstyle.cpp   | 2 ++
+ src/plugins/styles/gtk2/qgtkstyle_p.cpp | 2 ++
+ 2 files changed, 4 insertions(+)
+
+diff --git a/src/plugins/styles/gtk2/qgtkstyle.cpp b/src/plugins/styles/gtk2/qgtkstyle.cpp
+index 36169c9..2544593 100644
+--- a/src/plugins/styles/gtk2/qgtkstyle.cpp
++++ b/src/plugins/styles/gtk2/qgtkstyle.cpp
+@@ -440,7 +440,9 @@ void QGtkStyle::polish(QApplication *app)
+     // not supported as these should be entirely determined by
+     // current Gtk settings
+     if (app->desktopSettingsAware() && d->isThemeAvailable()) {
++#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
+         QApplicationPrivate::setSystemPalette(standardPalette());
++#endif
+         QApplicationPrivate::setSystemFont(d->getThemeFont());
+         d->applyCustomPaletteHash();
+         if (!d->isKDE4Session())
+diff --git a/src/plugins/styles/gtk2/qgtkstyle_p.cpp b/src/plugins/styles/gtk2/qgtkstyle_p.cpp
+index e57b3d8..e71beb0 100644
+--- a/src/plugins/styles/gtk2/qgtkstyle_p.cpp
++++ b/src/plugins/styles/gtk2/qgtkstyle_p.cpp
+@@ -508,7 +508,9 @@ void QGtkStyleUpdateScheduler::updateTheme()
+       if (oldTheme != QGtkStylePrivate::getThemeName()) {
+           oldTheme = QGtkStylePrivate::getThemeName();
+           QPalette newPalette = qApp->style()->standardPalette();
++#if QT_VERSION < QT_VERSION_CHECK(5, 15, 0)
+           QApplicationPrivate::setSystemPalette(newPalette);
++#endif
+           QApplication::setPalette(newPalette);
+           if (!QGtkStylePrivate::instances.isEmpty()) {
+               QGtkStylePrivate::instances.last()->initGtkWidgets();
+-- 
+2.26.2
+
diff --git a/nixpkgs/pkgs/development/libraries/quazip/default.nix b/nixpkgs/pkgs/development/libraries/quazip/default.nix
index 4ca3be7fe797..c399298b8f86 100644
--- a/nixpkgs/pkgs/development/libraries/quazip/default.nix
+++ b/nixpkgs/pkgs/development/libraries/quazip/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "quazip";
-  version = "0.9";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "stachenov";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0psvf3d9akyyx3bckc9325nmbp97xiagf8la4vhca5xn2f430fbn";
+    sha256 = "11icgwv2xyxhd1hm1add51xv54zwkcqkg85d1xqlgiigvbm196iq";
   };
 
   buildInputs = [ zlib qtbase ];
diff --git a/nixpkgs/pkgs/development/libraries/qwt/6.nix b/nixpkgs/pkgs/development/libraries/qwt/6.nix
index 54af3f3084a9..1a29bb90fbb4 100644
--- a/nixpkgs/pkgs/development/libraries/qwt/6.nix
+++ b/nixpkgs/pkgs/development/libraries/qwt/6.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, qtbase, qtsvg, qttools, qmake }:
 
 stdenv.mkDerivation rec {
-  name = "qwt-6.1.4";
+  name = "qwt-6.1.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/qwt/${name}.tar.bz2";
-    sha256 = "1navkcnmn0qz8kzsyqmk32d929zl72l0b580w1ica7z5559j2a8m";
+    sha256 = "0hf0mpca248xlqn7xnzkfj8drf19gdyg5syzklvq8pibxiixwxj0";
   };
 
   propagatedBuildInputs = [ qtbase qtsvg qttools ];
diff --git a/nixpkgs/pkgs/development/libraries/qwt/6_qt4.nix b/nixpkgs/pkgs/development/libraries/qwt/6_qt4.nix
index 04bc0d7ed22e..4b7aa9cf7f98 100644
--- a/nixpkgs/pkgs/development/libraries/qwt/6_qt4.nix
+++ b/nixpkgs/pkgs/development/libraries/qwt/6_qt4.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, qt4, qmake4Hook, AGL }:
 
 stdenv.mkDerivation rec {
-  name = "qwt-6.1.4";
+  name = "qwt-6.1.5";
 
   src = fetchurl {
     url = "mirror://sourceforge/qwt/${name}.tar.bz2";
-    sha256 = "1navkcnmn0qz8kzsyqmk32d929zl72l0b580w1ica7z5559j2a8m";
+    sha256 = "0hf0mpca248xlqn7xnzkfj8drf19gdyg5syzklvq8pibxiixwxj0";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/raft-canonical/default.nix b/nixpkgs/pkgs/development/libraries/raft-canonical/default.nix
index ed3d7ae9e701..68c4a95d0b68 100644
--- a/nixpkgs/pkgs/development/libraries/raft-canonical/default.nix
+++ b/nixpkgs/pkgs/development/libraries/raft-canonical/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "raft-canonical";
-  version = "0.9.18";
+  version = "0.9.23";
 
   src = fetchFromGitHub {
     owner = "canonical";
     repo = "raft";
     rev = "v${version}";
-    sha256 = "0f613aiyxqskz9d10f7r37ar9ngqsf9qsyk3jjf7s5l14wh6vl5k";
+    sha256 = "0swn95cf11fqczllmxr0nj3ig532rw4n3w6g3ckdnqka8520xjyr";
   };
 
   nativeBuildInputs = [ autoreconfHook file pkgconfig ];
@@ -18,13 +18,7 @@ stdenv.mkDerivation rec {
     substituteInPlace configure --replace /usr/bin/ " "
   '';
 
-  # test fails
-  #
-  #append/finalizeSegment                                      [ ERROR ]
-  #Error: test/integration/test_uv_append.c:264: assertion failed: test_dir_has_file(f->dir, "0000000000000001-0000000000000004") is not true
-  #Error: child killed by signal 6 (Aborted)
-
-  doCheck = false;
+  doCheck = true;
 
   outputs = [ "dev" "out" ];
 
diff --git a/nixpkgs/pkgs/development/libraries/randomx/default.nix b/nixpkgs/pkgs/development/libraries/randomx/default.nix
index 5b0c2b8a6578..6de7ecdfef36 100644
--- a/nixpkgs/pkgs/development/libraries/randomx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/randomx/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "randomX";
-  version = "1.1.7";
+  version = "1.1.8";
 
   nativeBuildInputs = [ cmake ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "tevador";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1d42dw4zrd7mzfqs6gwk27jj6lsh6pwv85p1ckx9dxy8mw3m52ah";
+    sha256 = "13h2cw8drq7xn3v8fbpxrlsl8zq3fs8gd2pc1pv28ahr9qqjz1gc";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/libraries/rang/default.nix b/nixpkgs/pkgs/development/libraries/rang/default.nix
new file mode 100644
index 000000000000..b3d300baca2e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/rang/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchFromGitHub, cmake }:
+stdenv.mkDerivation rec {
+  pname = "rang";
+  version = "v3.1.0";
+  src = fetchFromGitHub {
+    "owner" = "agauniyal";
+    repo = "rang";
+    "rev" = "cabe04d6d6b05356fa8f9741704924788f0dd762";
+    "sha256" = "0v2pz0l2smagr3j4abjccshg4agaccfz79m5ayvrvqq5d4rlds0s";
+  };
+  nativeBuildInputs = [ cmake ];
+  meta = with stdenv.lib; {
+    description =
+      "A Minimal, Header only Modern c++ library for terminal goodies";
+    homepage = "https://agauniyal.github.io/rang/";
+    license = licenses.unlicense;
+    maintainers = [ maintainers.HaoZeke ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/range-v3/default.nix b/nixpkgs/pkgs/development/libraries/range-v3/default.nix
index 024b67721cae..a583239b52e0 100644
--- a/nixpkgs/pkgs/development/libraries/range-v3/default.nix
+++ b/nixpkgs/pkgs/development/libraries/range-v3/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "range-v3";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner = "ericniebler";
     repo = "range-v3";
     rev = version;
-    sha256 = "1h9h5j7pdi0afpip9ncq76h1xjhvb8bnm585q17afz2l4fydy8qj";
+    sha256 = "18230bg4rq9pmm5f8f65j444jpq56rld4fhmpham8q3vr1c1bdjh";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Experimental range library for C++11/14/17";
     homepage = "https://github.com/ericniebler/range-v3";
+    changelog = "https://github.com/ericniebler/range-v3/releases/tag/${version}";
     license = licenses.boost;
     platforms = platforms.all;
     maintainers = with maintainers; [ primeos xwvvvvwx ];
diff --git a/nixpkgs/pkgs/development/libraries/rdkafka/default.nix b/nixpkgs/pkgs/development/libraries/rdkafka/default.nix
index 7539d45627f1..308fadbdfd8e 100644
--- a/nixpkgs/pkgs/development/libraries/rdkafka/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rdkafka/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rdkafka";
-  version = "1.4.2";
+  version = "1.4.4";
 
   src = fetchFromGitHub {
     owner = "edenhill";
     repo = "librdkafka";
     rev = "v${version}";
-    sha256 = "05mgrdzacn9kdpr68r5j0cvsvl54s52glnsc1ww9rcxx6p7hq1ly";
+    sha256 = "0y4m29wyvhhxb7fap9z07zwgcqlr4ifwynf8a7yp5ldjpzfzxpix";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/development/libraries/readosm/default.nix b/nixpkgs/pkgs/development/libraries/readosm/default.nix
index 8bf3200e295b..6aed49d65e35 100644
--- a/nixpkgs/pkgs/development/libraries/readosm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/readosm/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, expat, zlib, geos, libspatialite }:
 
 stdenv.mkDerivation rec {
-  name = "readosm-1.1.0";
+  name = "readosm-1.1.0a";
 
   src = fetchurl {
     url = "https://www.gaia-gis.it/gaia-sins/readosm-sources/${name}.tar.gz";
-    sha256 = "1v20pnda67imjd70fn0zw30aar525xicy3d3v49md5cvqklws265";
+    sha256 = "0igif2bxf4dr82glxz9gyx5mmni0r2dsnx9p9k6pxv3c4lfhaz6v";
   };
 
   buildInputs = [ expat zlib geos libspatialite ];
diff --git a/nixpkgs/pkgs/development/libraries/redkite/default.nix b/nixpkgs/pkgs/development/libraries/redkite/default.nix
new file mode 100644
index 000000000000..be6bf0d7fa0a
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/redkite/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitLab, cmake, cairo }:
+
+stdenv.mkDerivation rec {
+  pname = "redkite";
+  version = "1.0.3";
+
+  src = fetchFromGitLab {
+    owner = "iurie-sw";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1m2db7c791fi33snkjwnvlxapmf879g5r8azlkx7sr6vp2s0jq2k";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ cairo ];
+
+  meta = {
+    homepage = "https://gitlab.com/iurie-sw/redkite";
+    description = "A small GUI toolkit";
+    license = stdenv.lib.licenses.gpl3Plus;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.magnetophon ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/relibc/default.nix b/nixpkgs/pkgs/development/libraries/relibc/default.nix
index a1787ce24bb5..43e02fc87586 100644
--- a/nixpkgs/pkgs/development/libraries/relibc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/relibc/default.nix
@@ -1,27 +1,72 @@
-{ stdenvNoCC, buildPackages, fetchurl }:
+{ stdenvNoCC, buildPackages, makeRustPlatform }:
 
-stdenvNoCC.mkDerivation {
-  name = "binary-relibc-latest";
+let
+  rpath = stdenvNoCC.lib.makeLibraryPath [
+    buildPackages.stdenv.cc.libc
+    "$out"
+  ];
+  bootstrapCrossRust = stdenvNoCC.mkDerivation {
+    name = "binary-redox-rust";
+    
+    src = fetchTarball {
+      name = "redox-rust-toolchain-bin.tar.gz";
+      url = "https://www.dropbox.com/s/33r92en0t47l1ei/redox-rust-toolchain-bin.tar.gz?dl=1";
+      sha256 = "1g17qp2q6b88p04yclkw6amm374pqlakrmw9kd86vw8z4g70jkxm";
+    };
 
-  # snapshot of https://static.redox-os.org/toolchain/x86_64-unknown-redox/relibc-install.tar.gz
-  src = fetchurl {
-    name = "relibc-install.tar.gz";
-    url = "https://gateway.pinata.cloud/ipfs/QmNp6fPTjPA6LnCYvW1UmbAHcPpU7tqZhstfSpSXMJCRwp";
-    sha256 = "1hjdzrj67jdag3pm8h2dqh6xipbfxr6f4navdra6q1h83gl7jkd9";
+    dontBuild = true;
+    dontPatchELF = true;
+    dontStrip = true;
+    installPhase = ''
+      mkdir $out/
+      cp -r * $out/
+
+      find $out/ -executable -type f -exec patchelf \
+          --set-interpreter "${buildPackages.stdenv.cc.libc}/lib/ld-linux-x86-64.so.2" \
+          --set-rpath "${rpath}" \
+          "{}" \;
+      find $out/ -name "*.so" -type f -exec patchelf \
+          --set-rpath "${rpath}" \
+          "{}" \;
+    '';
+
+    meta.platforms = with stdenvNoCC.lib; platforms.redox ++ platforms.linux;
+  };
+
+  redoxRustPlatform = buildPackages.makeRustPlatform {
+    rustc = bootstrapCrossRust;
+    cargo = bootstrapCrossRust;
   };
 
-  # to avoid "unpacker produced multiple directories"
-  unpackPhase = "unpackFile $src";
+in
+redoxRustPlatform.buildRustPackage rec {
+  pname = "relibc";
+  version = "latest";
+
+  LD_LIBRARY_PATH = "${buildPackages.zlib}/lib";
 
-  dontBuild = true;
-  dontPatchELF = true;
-  dontStrip = true;
-  installPhase = ''
-    mkdir $out/
-    cp -r x86_64-unknown-redox/* $out/
-    rm -rf $out/bin
+  src = buildPackages.fetchgit {
+    url = "https://gitlab.redox-os.org/redox-os/relibc/";
+    rev = "5af8e3ca35ad401014a867ac1a0cc3b08dee682b";
+    sha256 = "1j4wsga9psl453031izkl3clkvm31d1wg4y8f3yqqvhml2aliws5";
+    fetchSubmodules = true;
+  };
+
+  RUSTC_BOOTSTRAP = 1;
+
+  dontInstall = true;
+  dontFixup = true;
+  doCheck = false;
+
+  postBuild = ''
+    mkdir -p $out
+    DESTDIR=$out make install
   '';
 
+  TARGET = buildPackages.rust.toRustTarget stdenvNoCC.targetPlatform;
+
+  cargoSha256 = "1fzz7ba3ga57x1cbdrcfrdwwjr70nh4skrpxp4j2gak2c3scj6rz";
+
   meta = with stdenvNoCC.lib; {
     homepage = "https://gitlab.redox-os.org/redox-os/relibc";
     description = "C Library in Rust for Redox and Linux";
diff --git a/nixpkgs/pkgs/development/libraries/rlottie/default.nix b/nixpkgs/pkgs/development/libraries/rlottie/default.nix
new file mode 100644
index 000000000000..a77c851ebca4
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/rlottie/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, meson, ninja, pkg-config }:
+
+stdenv.mkDerivation rec {
+  pname = "rlottie";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    owner = "Samsung";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-8KQ0ZnVg5rTb44IYnn02WBSe2SA5UGUOSLEdmmscUDs=";
+  };
+
+  nativeBuildInputs = [ meson ninja pkg-config ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/Samsung/rlottie";
+    description = "A platform independent standalone c++ library for rendering vector based animations and art in realtime.";
+    license = licenses.unfree; # Mixed, see https://github.com/Samsung/rlottie/blob/master/COPYING
+    platforms = platforms.all;
+    maintainers = with maintainers; [ CRTified ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/rnnoise-plugin/default.nix b/nixpkgs/pkgs/development/libraries/rnnoise-plugin/default.nix
new file mode 100644
index 000000000000..efc8857e235e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/rnnoise-plugin/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, SDL2, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "rnnoise-plugin";
+  version = "0.9";
+
+  src = fetchFromGitHub {
+    owner = "werman";
+    repo = "noise-suppression-for-voice";
+    rev = "v${version}";
+    sha256 = "18bq5b50xw3d4r1ildinafpg3isb9y216430h4mm9wr3ir7h76a7";
+  };
+
+  buildInputs = [ cmake ];
+
+  cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" ];
+
+  meta = with stdenv.lib; {
+    description = "A real-time noise suppression plugin for voice based on Xiph's RNNoise";
+    homepage = "https://github.com/werman/noise-suppression-for-voice";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ panaeon ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/robin-map/default.nix b/nixpkgs/pkgs/development/libraries/robin-map/default.nix
index 10b7510468ee..9c0774f925bc 100644
--- a/nixpkgs/pkgs/development/libraries/robin-map/default.nix
+++ b/nixpkgs/pkgs/development/libraries/robin-map/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "robin-map";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "Tessil";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0y532zg0aaqz3fpv785n2drwpnryaclr53drpqimnbf3cs0jw997";
+    sha256 = "1li70vwsksva9c4yly90hjafgqfixi1g6d52qq9p6r60vqc4pkjj";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/rocclr/default.nix b/nixpkgs/pkgs/development/libraries/rocclr/default.nix
new file mode 100644
index 000000000000..2034b658dc7f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/rocclr/default.nix
@@ -0,0 +1,64 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, rocm-cmake
+, clang
+, rocm-comgr
+, rocm-opencl-runtime
+, rocm-runtime
+, rocm-thunk
+, libelf
+, libglvnd
+, libX11
+, numactl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rocclr";
+  version = "3.8.0";
+
+  src = fetchFromGitHub {
+    owner = "ROCm-Developer-Tools";
+    repo = "ROCclr";
+    rev = "rocm-${version}";
+    sha256 = "05vh70qh6jb7038b1rcmz24bg4an0nw98bv2vn3jcyygj4dr3fmf";
+  };
+
+  nativeBuildInputs = [ cmake rocm-cmake ];
+
+  buildInputs = [ clang rocm-comgr rocm-runtime rocm-thunk ];
+
+  propagatedBuildInputs = [ libelf libglvnd libX11 numactl ];
+
+  prePatch = ''
+    substituteInPlace CMakeLists.txt \
+      --replace 'set(ROCCLR_EXPORTS_FILE "''${CMAKE_CURRENT_BINARY_DIR}/amdrocclr_staticTargets.cmake")' \
+        'set(ROCCLR_EXPORTS_FILE "''${CMAKE_INSTALL_LIBDIR}/cmake/amdrocclr_staticTargets.cmake")' \
+      --replace 'set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ''${CMAKE_CURRENT_BINARY_DIR}/lib)' \
+        'set (CMAKE_LIBRARY_OUTPUT_DIRECTORY ''${CMAKE_INSTALL_LIBDIR})' \
+      --replace 'find_library( OpenCL REQUIRED' 'find_library( OpenCL'
+    substituteInPlace device/comgrctx.cpp \
+      --replace "libamd_comgr.so" "${rocm-comgr}/lib/libamd_comgr.so"
+  '';
+
+  cmakeFlags = [
+    "-DOPENCL_DIR=${rocm-opencl-runtime.src}"
+  ];
+
+  preFixup = ''
+    ln -s $out/include/compiler/lib/include/* $out/include
+    substituteInPlace $out/lib/cmake/rocclr/ROCclrConfig.cmake \
+      --replace "/build/source/build" "$out"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Radeon Open Compute common language runtime";
+    homepage = "https://github.com/ROCm-Developer-Tools/ROCclr";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danieldk ];
+    # rocclr seems to have some AArch64 ifdefs, but does not seem
+    # to be supported yet by the build infrastructure. Recheck in
+    # the future.
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/rocksdb/default.nix b/nixpkgs/pkgs/development/libraries/rocksdb/default.nix
index 6606f57bc4b1..9bc3770f21e0 100644
--- a/nixpkgs/pkgs/development/libraries/rocksdb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/rocksdb/default.nix
@@ -1,42 +1,49 @@
-{ stdenv, fetchFromGitHub, fetchpatch
-, cmake, ninja
-, bzip2, lz4, snappy, zlib, zstd
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, ninja
+, bzip2
+, lz4
+, snappy
+, zlib
+, zstd
 , enableLite ? false
 }:
 
 stdenv.mkDerivation rec {
   pname = "rocksdb";
-  version = "6.4.6";
+  version = "6.10.2";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0s0n4p1b4jzmslz9d2xd4ajra0m6l9x26mjwlbgw0klxjggmy8qn";
+    sha256 = "1f2wqb6px812ijcivq3rsknqgkv01wblc6sd8wavhrw8qljgr3s1";
   };
 
   nativeBuildInputs = [ cmake ninja ];
+
   buildInputs = [ bzip2 lz4 snappy zlib zstd ];
 
   patches = [
-    # https://github.com/facebook/rocksdb/pull/6076
+    # Without this change private dependencies are exported.
+    # Can be removed after the next release.
+    # https://github.com/facebook/rocksdb/pull/6790
     (fetchpatch {
-      url = "https://github.com/facebook/rocksdb/commit/c0be4b2ff1a5393419673fab961cb9b09ba38752.diff";
-      sha256 = "1f2wg9kqlmf2hiiihmbp8m5fr2wnn7896g6i9yg9hdgi40pw30w6";
+      url = "https://github.com/facebook/rocksdb/commit/07204837ce8d66e1e6e4893178f3fd040f9c1044.patch";
+      sha256 = "17097ybkhy0i089zzkpvcj65c7g5skvjvdzi1k09x4i1d719wm39";
     })
   ];
 
-  postPatch = ''
-    substituteInPlace CMakeLists.txt --replace "find_package(zlib " "find_package(ZLIB "
-  '';
-
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isGNU "-Wno-error=deprecated-copy -Wno-error=pessimizing-move";
 
   cmakeFlags = [
     "-DPORTABLE=1"
     "-DWITH_JEMALLOC=0"
     "-DWITH_JNI=0"
-    "-DWITH_TESTS=0"
+    "-DWITH_BENCHMARK_TOOLS=0"
+    "-DWITH_TESTS=1"
     "-DWITH_TOOLS=0"
     "-DWITH_BZ2=1"
     "-DWITH_LZ4=1"
diff --git a/nixpkgs/pkgs/development/libraries/rocm-comgr/default.nix b/nixpkgs/pkgs/development/libraries/rocm-comgr/default.nix
new file mode 100644
index 000000000000..916af5434996
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/rocm-comgr/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub, cmake, clang, device-libs, lld, llvm }:
+
+stdenv.mkDerivation rec {
+  pname = "rocm-comgr";
+  version = "3.8.0";
+
+  src = fetchFromGitHub {
+    owner = "RadeonOpenCompute";
+    repo = "ROCm-CompilerSupport";
+    rev = "rocm-${version}";
+    sha256 = "05gs282kqnz7lf3b8r1908zk05dbzdx02ar2ns2900fas1l27qc1";
+  };
+
+  sourceRoot = "source/lib/comgr";
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ clang device-libs lld llvm ];
+
+  cmakeFlags = [
+    "-DCLANG=${clang}/bin/clang"
+    "-DCMAKE_BUILD_TYPE=Release"
+    "-DCMAKE_C_COMPILER=${clang}/bin/clang"
+    "-DCMAKE_CXX_COMPILER=${clang}/bin/clang++"
+    "-DCMAKE_PREFIX_PATH=${llvm}/lib/cmake/llvm"
+    "-DLLD_INCLUDE_DIRS=${lld.src}/include"
+    "-DLLVM_TARGETS_TO_BUILD=\"AMDGPU;X86\""
+  ];
+
+  # The comgr build tends to link against the static LLVM libraries
+  # *and* the dynamic library. Linking against both causes errors
+  # about command line options being registered twice. This patch
+  # removes the static library linking.
+  patchPhase = ''
+    sed -e '/^llvm_map_components_to_libnames/,/[[:space:]]*Symbolize)/d' \
+        -i CMakeLists.txt
+  '';
+
+  meta = with stdenv.lib; {
+    description = "APIs for compiling and inspecting AMDGPU code objects";
+    homepage = "https://github.com/RadeonOpenCompute/ROCm-CompilerSupport/tree/amd-stg-open/lib/comgr";
+    license = licenses.ncsa;
+    maintainers = with maintainers; [ danieldk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/rocm-device-libs/default.nix b/nixpkgs/pkgs/development/libraries/rocm-device-libs/default.nix
new file mode 100644
index 000000000000..bf302ff227c5
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/rocm-device-libs/default.nix
@@ -0,0 +1,40 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, clang
+, clang-unwrapped
+, lld
+, llvm
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rocm-device-libs";
+  version = "3.8.0";
+
+  src = fetchFromGitHub {
+    owner = "RadeonOpenCompute";
+    repo = "ROCm-Device-Libs";
+    rev = "rocm-${version}";
+    sha256 = "0kgsp22rbg09q09n36j1vfs9v8x0liap3ycnqyn1g7dxy38kqmi4";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ clang lld llvm ];
+
+  cmakeBuildType = "Release";
+
+  cmakeFlags = [
+    "-DCMAKE_PREFIX_PATH=${llvm}/lib/cmake/llvm;${clang-unwrapped}/lib/cmake/clang"
+    "-DLLVM_TARGETS_TO_BUILD='AMDGPU;X86'"
+    "-DCLANG=${clang}/bin/clang"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Set of AMD-specific device-side language runtime libraries";
+    homepage = "https://github.com/RadeonOpenCompute/ROCm-Device-Libs";
+    license = licenses.ncsa;
+    maintainers = with maintainers; [ danieldk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/rocm-opencl-icd/default.nix b/nixpkgs/pkgs/development/libraries/rocm-opencl-icd/default.nix
new file mode 100644
index 000000000000..5f2188f6e7e6
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/rocm-opencl-icd/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, rocm-opencl-runtime }:
+
+stdenv.mkDerivation rec {
+  pname = "rocm-opencl-icd";
+  version = rocm-opencl-runtime.version;
+
+  dontUnpack = true;
+
+  installPhase = ''
+    mkdir -p $out/etc/OpenCL/vendors
+    echo "${rocm-opencl-runtime}/lib/libamdocl64.so" > $out/etc/OpenCL/vendors/amdocl64.icd
+  '';
+
+  meta = with stdenv.lib; {
+    description = "OpenCL ICD definition for AMD GPUs using the ROCm stack";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danieldk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/rocm-opencl-runtime/default.nix b/nixpkgs/pkgs/development/libraries/rocm-opencl-runtime/default.nix
new file mode 100644
index 000000000000..6504ae100434
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/rocm-opencl-runtime/default.nix
@@ -0,0 +1,83 @@
+{ stdenv
+, fetchFromGitHub
+, addOpenGLRunpath
+, cmake
+, rocm-cmake
+, clang
+, clang-unwrapped
+, glew
+, libglvnd
+, libX11
+, lld
+, llvm
+, mesa
+, python2
+, rocclr
+, rocm-comgr
+, rocm-device-libs
+, rocm-runtime
+, rocm-thunk
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rocm-opencl-runtime";
+  version = "3.8.0";
+
+  src = fetchFromGitHub {
+    owner = "RadeonOpenCompute";
+    repo = "ROCm-OpenCL-Runtime";
+    rev = "rocm-${version}";
+    sha256 = "07zc6ww92nsq1z0gcp1sfhqsk0jkrjnv9cnw5akh471f7n7jiznm";
+  };
+
+  nativeBuildInputs = [ cmake rocm-cmake ];
+
+  buildInputs = [
+    clang
+    clang-unwrapped
+    glew
+    libglvnd
+    libX11
+    lld
+    llvm
+    mesa
+    python2
+    rocclr
+    rocm-comgr
+    rocm-device-libs
+    rocm-runtime
+    rocm-thunk
+  ];
+
+  cmakeFlags = [
+    "-DAMDGPU_TARGET_TRIPLE='amdgcn-amd-amdhsa'"
+    "-DCLANG_OPTIONS_APPEND=-Wno-bitwise-conditional-parentheses"
+    "-DClang_DIR=${clang-unwrapped}/lib/cmake/clang"
+    "-DLIBROCclr_STATIC_DIR=${rocclr}/lib/cmake"
+    "-DLLVM_DIR=${llvm.out}/lib/cmake/llvm"
+    "-DUSE_COMGR_LIBRARY='yes'"
+  ];
+
+  dontStrip = true;
+
+  # Remove clinfo, which is already provided through the
+  # `clinfo` package.
+  postInstall = ''
+    rm -rf $out/bin
+  '';
+
+  # Fix the ICD installation path for NixOS
+  postPatch = ''
+    substituteInPlace khronos/icd/loader/linux/icd_linux.c \
+      --replace 'ICD_VENDOR_PATH' '"${addOpenGLRunpath.driverLink}/etc/OpenCL/vendors/"'
+    echo 'add_dependencies(amdocl64 OpenCL)' >> amdocl/CMakeLists.txt
+  '';
+
+  meta = with stdenv.lib; {
+    description = "OpenCL runtime for AMD GPUs, part of the ROCm stack";
+    homepage = "https://github.com/RadeonOpenCompute/ROCm-OpenCL-Runtime";
+    license = with licenses; [ asl20 mit ];
+    maintainers = with maintainers; [ danieldk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/rocm-runtime/default.nix b/nixpkgs/pkgs/development/libraries/rocm-runtime/default.nix
new file mode 100644
index 000000000000..57635a3470cb
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/rocm-runtime/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, fetchFromGitHub
+, addOpenGLRunpath
+, clang-unwrapped
+, cmake
+, xxd
+, elfutils
+, llvm
+, rocm-device-libs
+, rocm-thunk }:
+
+stdenv.mkDerivation rec {
+  pname = "rocm-runtime";
+  version = "3.8.0";
+
+  src = fetchFromGitHub {
+    owner = "RadeonOpenCompute";
+    repo = "ROCR-Runtime";
+    rev = "rocm-${version}";
+    sha256 = "1lm4cbx1d727zll85vjc1kykc72mk82nfhyyhjljv82gd4mnz00c";
+  };
+
+  sourceRoot = "source/src";
+
+  nativeBuildInputs = [ cmake xxd ];
+
+  buildInputs = [ clang-unwrapped elfutils llvm ];
+
+  cmakeFlags = [
+   "-DBITCODE_DIR=${rocm-device-libs}/lib"
+   "-DCMAKE_PREFIX_PATH=${rocm-thunk}"
+  ];
+
+  postPatch = ''
+    patchShebangs image/blit_src/create_hsaco_ascii_file.sh
+  '';
+
+  fixupPhase = ''
+    rm -rf $out/hsa
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Platform runtime for ROCm";
+    homepage = "https://github.com/RadeonOpenCompute/ROCR-Runtime";
+    license = with licenses; [ ncsa ];
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/rocm-thunk/default.nix b/nixpkgs/pkgs/development/libraries/rocm-thunk/default.nix
new file mode 100644
index 000000000000..ba780ae4bd6b
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/rocm-thunk/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, numactl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "rocm-thunk";
+  version = "3.8.0";
+
+  src = fetchFromGitHub {
+    owner = "RadeonOpenCompute";
+    repo = "ROCT-Thunk-Interface";
+    rev = "rocm-${version}";
+    sha256 = "00xrwxndah2frdggqniz1j4s46ha3dav8qlnxm3gk9m4b80m774k";
+  };
+
+  preConfigure = ''
+    export cmakeFlags="$cmakeFlags "
+  '';
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [ numactl ];
+
+  postInstall = ''
+    cp -r $src/include $out
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Radeon open compute thunk interface";
+    homepage = "https://github.com/RadeonOpenCompute/ROCT-Thunk-Interface";
+    license = with licenses; [ bsd2 mit ];
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/science/biology/nifticlib/default.nix b/nixpkgs/pkgs/development/libraries/science/biology/nifticlib/default.nix
index 37055259e7c8..572c31dd1e52 100644
--- a/nixpkgs/pkgs/development/libraries/science/biology/nifticlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/biology/nifticlib/default.nix
@@ -1,22 +1,30 @@
-{ stdenv, fetchurl, cmake, zlib }:
+{ stdenv, fetchFromGitHub, cmake, zlib }:
 
 stdenv.mkDerivation rec {
-  pname    = "nifticlib";
-  pversion = "2.0.0";
-  name  = "${pname}-${pversion}";
+  pname = "nifticlib";
+  version = "3.0.1";
 
-  src = fetchurl {
-    url    = "mirror://sourceforge/project/niftilib/${pname}/${pname}_2_0_0/${name}.tar.gz";
-    sha256 = "123z9bwzgin5y8gi5ni8j217k7n683whjsvg0lrpii9flgk8isd3";
+  src = fetchFromGitHub {
+    owner = "NIFTI-Imaging";
+    repo = "nifti_clib";
+    rev = "v${version}";
+    sha256 = "0hamm6nvbjdjjd5md4jahzvn5559frigxaiybnjkh59ckxwb1hy4";
   };
 
+  cmakeFlags = [ "-DDOWNLOAD_TEST_DATA=OFF" ];
+
   nativeBuildInputs = [ cmake ];
   buildInputs = [ zlib ];
 
-  doCheck = false; # fails 7 out of 293 tests
+  checkPhase = ''
+    runHook preCheck
+    ctest -LE 'NEEDS_DATA'
+    runHook postCheck
+  '';
+  doCheck = true;
 
   meta = with stdenv.lib; {
-    homepage = "https://sourceforge.net/projects/niftilib";
+    homepage = "https://nifti-imaging.github.io";
     description = "Medical imaging format C API";
     maintainers = with maintainers; [ bcdarwin ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/libraries/science/math/amd-blis/default.nix b/nixpkgs/pkgs/development/libraries/science/math/amd-blis/default.nix
new file mode 100644
index 000000000000..9bddba0261fe
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/math/amd-blis/default.nix
@@ -0,0 +1,67 @@
+{ stdenv
+, fetchFromGitHub
+, perl
+, python3
+
+# Enable BLAS interface with 64-bit integer width.
+, blas64 ? false
+
+# Target architecture, use "zen" or "zen2", optimization for Zen and
+# other families is pretty much mutually exclusive in the AMD fork of
+# BLIS.
+, withArchitecture ? "zen"
+
+# Enable OpenMP-based threading.
+, withOpenMP ? true
+}:
+
+let
+  threadingSuffix = if withOpenMP then "-mt" else "";
+  blasIntSize = if blas64 then "64" else "32";
+in stdenv.mkDerivation rec {
+  pname = "amd-blis";
+  version = "2.2";
+
+  src = fetchFromGitHub {
+    owner = "amd";
+    repo = "blis";
+    rev = version;
+    sha256 = "1b2f5bwi0gkw2ih2rb7wfzn3m9hgg7k270kg43rmzpr2acpy86xa";
+  };
+
+  inherit blas64;
+
+  nativeBuildInputs = [
+    perl
+    python3
+  ];
+
+  doCheck = true;
+
+  enableParallelBuilding = true;
+
+  configureFlags = [
+    "--enable-cblas"
+    "--blas-int-size=${blasIntSize}"
+  ] ++ stdenv.lib.optionals withOpenMP [ "--enable-threading=openmp" ]
+    ++ [ withArchitecture ];
+
+  postPatch = ''
+    patchShebangs configure build/flatten-headers.py
+  '';
+
+  postInstall = ''
+    ln -s $out/lib/libblis${threadingSuffix}.so.2 $out/lib/libblas.so.3
+    ln -s $out/lib/libblis${threadingSuffix}.so.2 $out/lib/libcblas.so.3
+    ln -s $out/lib/libblas.so.3 $out/lib/libblas.so
+    ln -s $out/lib/libcblas.so.3 $out/lib/libcblas.so
+  '';
+
+  meta = with stdenv.lib; {
+    description = "BLAS-compatible library optimized for AMD CPUs";
+    homepage = "https://developer.amd.com/amd-aocl/blas-library/";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.danieldk ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/science/math/amd-libflame/add-lapacke.diff b/nixpkgs/pkgs/development/libraries/science/math/amd-libflame/add-lapacke.diff
new file mode 100644
index 000000000000..3e3ef1e60ff5
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/math/amd-libflame/add-lapacke.diff
@@ -0,0 +1,34 @@
+diff --git a/Makefile b/Makefile
+index 5549ce30..ac2ee51e 100644
+--- a/Makefile
++++ b/Makefile
+@@ -583,14 +583,14 @@ endif
+ 
+ # --- Shared library linker rules ---
+ 
+-$(LIBFLAME_SO_PATH): $(MK_ALL_FLAMEC_OBJS)
++$(LIBFLAME_SO_PATH): $(MK_ALL_FLAMEC_OBJS) $(LAPACKE_A_PATH)
+ ifeq ($(ENABLE_VERBOSE),yes)
+ ifeq ($(FLA_ENABLE_MAX_ARG_LIST_HACK),yes)
+ 	$(CAT) $(AR_OBJ_LIST_FILE) | xargs -n$(AR_CHUNK_SIZE) $(AR) $(ARFLAGS) $(LIBFLAME_A)
+ ifeq ($(OS_NAME),Darwin)
+-	$(LINKER) $(SOFLAGS) -o $@ -Wl,-force_load,$(LIBFLAME_A) $(LDFLAGS)
++	$(LINKER) $(SOFLAGS) -o $@ -Wl,-force_load,$(LIBFLAME_A),$(LAPACKE_A_PATH) $(LDFLAGS)
+ else
+-	$(LINKER) $(SOFLAGS) -o $@ -Wl,--whole-archive,$(LIBFLAME_A),--no-whole-archive $(LDFLAGS)
++	$(LINKER) $(SOFLAGS) -o $@ -Wl,--whole-archive,$(LIBFLAME_A),$(LAPACKE_A_PATH)--no-whole-archive $(LDFLAGS)
+ endif
+ else
+ #	NOTE: Can't use $^ automatic variable as long as $(AR_OBJ_LIST_FILE) is in
+@@ -602,9 +602,9 @@ else
+ ifeq ($(FLA_ENABLE_MAX_ARG_LIST_HACK),yes)
+ 	@$(CAT) $(AR_OBJ_LIST_FILE) | xargs -n$(AR_CHUNK_SIZE) $(AR) $(ARFLAGS) $(LIBFLAME_A)
+ ifeq ($(OS_NAME),Darwin)
+-	@$(LINKER) $(SOFLAGS) -o $@ -Wl,-force_load,$(LIBFLAME_A) $(LDFLAGS)
++	@$(LINKER) $(SOFLAGS) -o $@ -Wl,-force_load,$(LIBFLAME_A),$(LAPACKE_A_PATH) $(LDFLAGS)
+ else
+-	@$(LINKER) $(SOFLAGS) -o $@ -Wl,--whole-archive,$(LIBFLAME_A),--no-whole-archive $(LDFLAGS)
++	@$(LINKER) $(SOFLAGS) -o $@ -Wl,--whole-archive,$(LIBFLAME_A),$(LAPACKE_A_PATH),--no-whole-archive $(LDFLAGS)
+ endif
+ else
+ #	NOTE: Can't use $^ automatic variable as long as $(AR_OBJ_LIST_FILE) is in
diff --git a/nixpkgs/pkgs/development/libraries/science/math/amd-libflame/default.nix b/nixpkgs/pkgs/development/libraries/science/math/amd-libflame/default.nix
new file mode 100644
index 000000000000..1e331bca695c
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/math/amd-libflame/default.nix
@@ -0,0 +1,72 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, gfortran
+, python3
+, amd-blis
+
+, withOpenMP ? true
+}:
+
+stdenv.mkDerivation rec {
+  pname = "amd-libflame";
+  version = "2.2";
+
+  src = fetchFromGitHub {
+    owner = "amd";
+    repo = "libflame";
+    rev = version;
+    sha256 = "1s8zvq6p843jb52lrbxra7vv0wzmifs4j36z9bp7wf3xr20a0zi5";
+  };
+
+  patches = [
+    # The LAPACKE interface is compiled as a separate static library,
+    # we want the main dynamic library to provide LAPACKE symbols.
+    # This patch adds lapacke.a to the shared library as well.
+    ./add-lapacke.diff
+  ];
+
+  nativeBuildInputs = [ gfortran python3 ];
+
+  buildInputs = [ amd-blis ];
+
+  configureFlags = [
+    # Build a dynamic library with a LAPACK interface.
+    "--disable-static-build"
+    "--enable-dynamic-build"
+    "--enable-lapack2flame"
+
+    # Use C BLAS interface.
+    "--enable-cblas-interfaces"
+
+    # Avoid overloading maximum number of arguments.
+    "--enable-max-arg-list-hack"
+
+    # libflame by default leaves BLAS symbols unresolved and leaves it
+    # up to the application to explicitly link to a BLAS. This is
+    # problematic for us, since then the BLAS library becomes an
+    # implicit dependency. Moreover, since the point of the AMD forks
+    # is to optimized for recent AMD CPUs, link against AMD BLIS.
+    "LDFLAGS=-lcblas"
+  ]
+  ++ lib.optionals withOpenMP [ "--enable-multithreading=openmp" ];
+
+  enableParallelBuilding = true;
+
+  postPatch = ''
+    patchShebangs build
+  '';
+
+  postInstall = ''
+    ln -s $out/lib/libflame.so.${version} $out/lib/liblapack.so.3
+    ln -s $out/lib/libflame.so.${version} $out/lib/liblapacke.so.3
+  '';
+
+  meta = with stdenv.lib; {
+    description = "LAPACK-compatible linear algebra library optimized for AMD CPUs";
+    homepage = "https://developer.amd.com/amd-aocl/blas-library/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ danieldk ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/science/math/arpack/default.nix b/nixpkgs/pkgs/development/libraries/science/math/arpack/default.nix
index 0829557d0f3d..02d51f0c419b 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/arpack/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/arpack/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
   ];
 
   preCheck = if stdenv.isDarwin then ''
-    export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}`pwd`/lib
+    export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}`pwd`/lib:${blas}/lib:${lapack}/lib
   '' else ''
     export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}`pwd`/lib
   '' + ''
diff --git a/nixpkgs/pkgs/development/libraries/science/math/blis/default.nix b/nixpkgs/pkgs/development/libraries/science/math/blis/default.nix
new file mode 100644
index 000000000000..42ba4f25204e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/math/blis/default.nix
@@ -0,0 +1,64 @@
+{ stdenv
+, fetchFromGitHub
+, perl
+, python3
+
+# Enable BLAS interface with 64-bit integer width.
+, blas64 ? false
+
+# Target architecture. x86_64 builds Intel and AMD kernels.
+, withArchitecture ? "x86_64"
+
+# Enable OpenMP-based threading.
+, withOpenMP ? true
+}:
+
+let
+  blasIntSize = if blas64 then "64" else "32";
+in stdenv.mkDerivation rec {
+  pname = "blis";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "flame";
+    repo = "blis";
+    rev = version;
+    sha256 = "13g9kg7x8j9icg4frdq3wpl2cmp0jnh93mw48daa7ym399w17423";
+  };
+
+  inherit blas64;
+
+  nativeBuildInputs = [
+    perl
+    python3
+  ];
+
+  doCheck = true;
+
+  enableParallelBuilding = true;
+
+  configureFlags = [
+    "--enable-cblas"
+    "--blas-int-size=${blasIntSize}"
+  ] ++ stdenv.lib.optionals withOpenMP [ "--enable-threading=openmp" ]
+    ++ [ withArchitecture ];
+
+  postPatch = ''
+    patchShebangs configure build/flatten-headers.py
+  '';
+
+  postInstall = ''
+    ln -s $out/lib/libblis.so.3 $out/lib/libblas.so.3
+    ln -s $out/lib/libblis.so.3 $out/lib/libcblas.so.3
+    ln -s $out/lib/libblas.so.3 $out/lib/libblas.so
+    ln -s $out/lib/libcblas.so.3 $out/lib/libcblas.so
+  '';
+
+  meta = with stdenv.lib; {
+    description = "BLAS-compatible linear algebra library";
+    homepage = "https://github.com/flame/blis";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.danieldk ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/science/math/cliquer/default.nix b/nixpkgs/pkgs/development/libraries/science/math/cliquer/default.nix
index c473fcedde3a..e56952abcb28 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/cliquer/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/cliquer/default.nix
@@ -4,7 +4,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.21";
+  version = "1.22";
   pname = "cliquer";
 
   # autotoolized version of the original cliquer
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     owner = "dimpase";
     repo = "autocliquer";
     rev = "v${version}";
-    sha256 = "180i4qj1a25qfp75ig2d3144xfpb1dgcgpha0iqqghd7di4awg7z";
+    sha256 = "00gcmrhi2fjn8b246w5a3b0pl7p6haxy5wjvd9kcqib1xanz59z4";
   };
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/development/libraries/science/math/cudnn/default.nix b/nixpkgs/pkgs/development/libraries/science/math/cudnn/default.nix
index 765d634a91f9..9495366eaaa8 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/cudnn/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/cudnn/default.nix
@@ -1,4 +1,4 @@
-{ callPackage, cudatoolkit_7, cudatoolkit_7_5, cudatoolkit_8, cudatoolkit_9_0, cudatoolkit_9_1, cudatoolkit_9_2, cudatoolkit_10_0, cudatoolkit_10_1, cudatoolkit_10_2 }:
+{ callPackage, cudatoolkit_7, cudatoolkit_7_5, cudatoolkit_8, cudatoolkit_9_0, cudatoolkit_9_1, cudatoolkit_9_2, cudatoolkit_10_0, cudatoolkit_10_1, cudatoolkit_10_2, cudatoolkit_11_0 }:
 
 let
   generic = args: callPackage (import ./generic.nix (removeAttrs args ["cudatoolkit"])) {
@@ -80,4 +80,13 @@ in rec {
   };
 
   cudnn_cudatoolkit_10 = cudnn_cudatoolkit_10_1;
+
+  cudnn_cudatoolkit_11_0 = generic rec {
+    version = "8.0.2";
+    cudatoolkit = cudatoolkit_11_0;
+    srcName = "cudnn-${cudatoolkit.majorVersion}-linux-x64-v8.0.2.39.tgz";
+    sha256 = "0ib3v3bgcdxarqapkxngw1nwl0c2a7zz392ns7w9ipcficl4cbv7";
+  };
+
+  cudnn_cudatoolkit_11 = cudnn_cudatoolkit_11_0;
 }
diff --git a/nixpkgs/pkgs/development/libraries/science/math/cudnn/generic.nix b/nixpkgs/pkgs/development/libraries/science/math/cudnn/generic.nix
index 5a17e807bd43..e727218c0555 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/cudnn/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/cudnn/generic.nix
@@ -37,7 +37,15 @@ stdenv.mkDerivation {
   # Set RUNPATH so that libcuda in /run/opengl-driver(-32)/lib can be found.
   # See the explanation in addOpenGLRunpath.
   postFixup = ''
-    addOpenGLRunpath $out/lib/lib*.so
+    for lib in $out/lib/lib*.so; do
+      # patchelf fails on libcudnn_cnn_infer due to it being too big.
+      # Most programs will still get the RPATH since they link to
+      # other things.
+      # (https://github.com/NixOS/patchelf/issues/222)
+      if [ "$(basename $lib)" != libcudnn_cnn_infer.so ]; then
+        addOpenGLRunpath $lib
+      fi
+    done
   '';
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/science/math/itpp/default.nix b/nixpkgs/pkgs/development/libraries/science/math/itpp/default.nix
new file mode 100644
index 000000000000..d7fae9ae4799
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/math/itpp/default.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, fetchurl
+, cmake
+, gtest
+, blas
+, fftw
+, liblapack
+, gfortran
+}:
+
+stdenv.mkDerivation rec {
+  pname = "it++";
+  version = "4.3.1";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/itpp/itpp-${version}.tar.bz2";
+    sha256 = "0xxqag9wi0lg78xgw7b40rp6wxqp5grqlbs9z0ifvdfzqlhpcwah";
+  };
+
+  nativeBuildInputs = [ cmake gfortran ];
+  buildInputs = [
+    fftw
+    liblapack
+
+    # NOTE: OpenBLAS doesn't work here because IT++ doesn't pass aligned
+    # buffers, which causes segfaults in the optimized kernels :-(
+    blas
+  ];
+
+  cmakeFlags = [
+    "-DBLAS_FOUND:BOOL=TRUE"
+    "-DBLAS_LIBRARIES:STRING=${blas}/lib/libblas.so"
+    "-DLAPACK_FOUND:BOOL=TRUE"
+    "-DLAPACK_LIBRARIES:STRING=${liblapack}/lib/liblapack.so"
+    "-DGTEST_DIR:PATH=${gtest.src}/googletest"
+  ];
+
+  enableParallelBuilding = true;
+
+  doCheck = true;
+
+  checkPhase = ''
+    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH''${LD_LIBRARY_PATH:+:}$PWD/itpp
+    export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH''${DYLD_LIBRARY_PATH:+:}$PWD/itpp
+    ./gtests/itpp_gtests
+  '';
+
+  meta = with stdenv.lib; {
+    description = "IT++ is a C++ library of mathematical, signal processing and communication classes and functions.";
+    homepage = http://itpp.sourceforge.net/;
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ andrew-d ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/science/math/libtorch/bin.nix b/nixpkgs/pkgs/development/libraries/science/math/libtorch/bin.nix
new file mode 100644
index 000000000000..3ae462705868
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/math/libtorch/bin.nix
@@ -0,0 +1,111 @@
+{ callPackage
+, stdenv
+, fetchzip
+, lib
+
+, addOpenGLRunpath
+, patchelf
+, fixDarwinDylibNames
+
+, cudaSupport
+, nvidia_x11
+}:
+
+let
+  version = "1.6.0";
+  device = if cudaSupport then "cuda" else "cpu";
+  srcs = import ./binary-hashes.nix;
+  unavailable = throw "libtorch is not available for this platform";
+in stdenv.mkDerivation {
+  inherit version;
+  pname = "libtorch";
+
+  src = fetchzip srcs."${stdenv.targetPlatform.system}-${device}" or unavailable;
+
+  nativeBuildInputs =
+    if stdenv.isDarwin then [ fixDarwinDylibNames ]
+    else [ addOpenGLRunpath patchelf ]
+      ++ stdenv.lib.optionals cudaSupport [ addOpenGLRunpath ];
+
+  buildInputs = [
+    stdenv.cc.cc
+  ] ++ lib.optionals cudaSupport [ nvidia_x11 ];
+
+  dontBuild = true;
+  dontConfigure = true;
+  dontStrip = true;
+
+  installPhase = ''
+    # Copy headers and CMake files.
+    install -Dm755 -t $dev/lib lib/*.a
+    cp -r include $dev
+    cp -r share $dev
+
+    install -Dm755 -t $out/lib lib/*${stdenv.hostPlatform.extensions.sharedLibrary}*
+
+    # We do not care about Java support...
+    rm -f $out/lib/lib*jni* 2> /dev/null || true
+  '';
+
+  postFixup = let
+    libPaths = [ stdenv.cc.cc.lib ]
+      ++ stdenv.lib.optionals cudaSupport [ nvidia_x11 ];
+    rpath = stdenv.lib.makeLibraryPath libPaths;
+  in stdenv.lib.optionalString stdenv.isLinux ''
+    find $out/lib -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
+      echo "setting rpath for $lib..."
+      patchelf --set-rpath "${rpath}:$out/lib" "$lib"
+      ${lib.optionalString cudaSupport ''
+        addOpenGLRunpath "$lib"
+      ''}
+    done
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    install_name_tool -change @rpath/libshm.dylib $out/lib/libshm.dylib $out/lib/libtorch_python.dylib
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libtorch_python.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libtorch_python.dylib
+    install_name_tool -change @rpath/libtorch.dylib $out/lib/libtorch.dylib $out/lib/libtorch_python.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libtorch_python.dylib
+
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libtorch.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libtorch.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libtorch.dylib
+
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libtorch_cpu.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libtorch_cpu.dylib
+    install_name_tool -change @rpath/libtensorpipe.dylib $out/lib/libtensorpipe.dylib $out/lib/libtorch_cpu.dylib
+
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libcaffe2_observers.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libcaffe2_observers.dylib
+    install_name_tool -change @rpath/libtorch.dylib $out/lib/libtorch.dylib $out/lib/libcaffe2_observers.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libcaffe2_observers.dylib
+
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libcaffe2_module_test_dynamic.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libcaffe2_module_test_dynamic.dylib
+    install_name_tool -change @rpath/libtorch.dylib $out/lib/libtorch.dylib $out/lib/libcaffe2_module_test_dynamic.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libcaffe2_module_test_dynamic.dylib
+
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libcaffe2_detectron_ops.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libcaffe2_detectron_ops.dylib
+    install_name_tool -change @rpath/libtorch.dylib $out/lib/libtorch.dylib $out/lib/libcaffe2_detectron_ops.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libcaffe2_detectron_ops.dylib
+
+    install_name_tool -change @rpath/libc10.dylib $out/lib/libc10.dylib $out/lib/libshm.dylib
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libshm.dylib
+    install_name_tool -change @rpath/libtorch.dylib $out/lib/libtorch.dylib $out/lib/libshm.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libshm.dylib
+
+    install_name_tool -change @rpath/libiomp5.dylib $out/lib/libiomp5.dylib $out/lib/libtorch_global_deps.dylib
+    install_name_tool -change @rpath/libtorch_cpu.dylib $out/lib/libtorch_cpu.dylib $out/lib/libtorch_global_deps.dylib
+  '';
+
+  outputs = [ "out" "dev" ];
+
+  passthru.tests = callPackage ./test { };
+
+  meta = with stdenv.lib; {
+    description = "C++ API of the PyTorch machine learning framework";
+    homepage = "https://pytorch.org/";
+    license = licenses.unfree; # Includes CUDA and Intel MKL.
+    platforms = with platforms; linux ++ darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix b/nixpkgs/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix
new file mode 100644
index 000000000000..92a2e05e0ba3
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix
@@ -0,0 +1,14 @@
+{
+  x86_64-darwin-cpu = {
+    url = "https://download.pytorch.org/libtorch/cpu/libtorch-macos-1.6.0.zip";
+    sha256 = "0d4n7la31qzl4s9pwvm07la7q6lhcwiww0yjpfz3kw6nvx84p22r";
+  };
+  x86_64-linux-cpu = {
+    url = "https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-1.6.0%2Bcpu.zip";
+    sha256 = "1975b4zvyihzh89vnwspw0vf9qr05sxj8939vcrlmv3gzvdspcxz";
+  };
+  x86_64-linux-cuda = {
+    url = "https://download.pytorch.org/libtorch/cu102/libtorch-cxx11-abi-shared-with-deps-1.6.0.zip";
+    sha256 = "127qnfyi1faqbm40sbnsyqxjhrqj82bzwqyz7c1hs2bm0zgrrpya";
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/science/math/libtorch/test/CMakeLists.txt b/nixpkgs/pkgs/development/libraries/science/math/libtorch/test/CMakeLists.txt
new file mode 100644
index 000000000000..b302449ef772
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/math/libtorch/test/CMakeLists.txt
@@ -0,0 +1,4 @@
+find_package(Torch REQUIRED)
+set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")
+add_executable(test test.cpp)
+target_link_libraries(test "${TORCH_LIBRARIES}")
diff --git a/nixpkgs/pkgs/development/libraries/science/math/libtorch/test/default.nix b/nixpkgs/pkgs/development/libraries/science/math/libtorch/test/default.nix
new file mode 100644
index 000000000000..d661ec28db98
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/math/libtorch/test/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, cmake, libtorch-bin, symlinkJoin }:
+
+stdenv.mkDerivation {
+  pname = "libtorch-test";
+  version = libtorch-bin.version;
+
+  src = ./.;
+
+  postPatch = ''
+    cat CMakeLists.txt
+  '';
+
+  makeFlags = [ "VERBOSE=1" ];
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ libtorch-bin ];
+
+  installPhase = ''
+    touch $out
+  '';
+
+  checkPhase = ''
+    ./test
+  '';
+}
diff --git a/nixpkgs/pkgs/development/libraries/science/math/libtorch/test/test.cpp b/nixpkgs/pkgs/development/libraries/science/math/libtorch/test/test.cpp
new file mode 100644
index 000000000000..5537724ce5f6
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/math/libtorch/test/test.cpp
@@ -0,0 +1,7 @@
+#include <torch/torch.h>
+#include <iostream>
+
+int main() {
+  torch::Tensor tensor = torch::eye(3);
+  std::cout << tensor << std::endl;
+}
diff --git a/nixpkgs/pkgs/development/libraries/science/math/magma/default.nix b/nixpkgs/pkgs/development/libraries/science/math/magma/default.nix
index dbe162c60b34..2079ace021b6 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/magma/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/magma/default.nix
@@ -1,19 +1,21 @@
-{ stdenv, fetchurl, cmake, gfortran, cudatoolkit, libpthreadstubs, lapack, blas }:
+{ stdenv, fetchurl, cmake, gfortran, ninja, cudatoolkit, libpthreadstubs, lapack, blas }:
 
 with stdenv.lib;
 
-let version = "2.5.0";
+let version = "2.5.3";
 
 in stdenv.mkDerivation {
   pname = "magma";
   inherit version;
   src = fetchurl {
     url = "https://icl.cs.utk.edu/projectsfiles/magma/downloads/magma-${version}.tar.gz";
-    sha256 = "0czspk93cv1fy37zyrrc9k306q4yzfxkhy1y4lj937dx8rz5rm2g";
+    sha256 = "1xjy3irdx0w1zyhvn4x47zni5fwsh6z97xd4yqldz8zrm5lx40n6";
     name = "magma-${version}.tar.gz";
   };
 
-  buildInputs = [ gfortran cudatoolkit libpthreadstubs cmake lapack blas ];
+  nativeBuildInputs = [ gfortran cmake ninja ];
+
+  buildInputs = [ cudatoolkit libpthreadstubs lapack blas ];
 
   doCheck = false;
 
@@ -32,7 +34,7 @@ in stdenv.mkDerivation {
     mkdir -p $out/lib/pkgconfig
     cp -a ../include/*.h $out/include
     #cp -a sparse-iter/include/*.h $out/include
-    cp -a lib/*.a $out/lib
+    cp -a lib/*.so $out/lib
     cat ../lib/pkgconfig/magma.pc.in                   | \
     sed -e s:@INSTALL_PREFIX@:"$out":          | \
     sed -e s:@CFLAGS@:"-I$out/include":    | \
@@ -48,4 +50,6 @@ in stdenv.mkDerivation {
     platforms = platforms.unix;
     maintainers = with maintainers; [ tbenst ];
   };
+
+  passthru.cudatoolkit = cudatoolkit;
 }
diff --git a/nixpkgs/pkgs/development/libraries/science/math/mkl/default.nix b/nixpkgs/pkgs/development/libraries/science/math/mkl/default.nix
index 19f988d965c4..2be3baed4497 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/mkl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/mkl/default.nix
@@ -19,14 +19,18 @@ let
   # Darwin is pinned to 2019.3 because the DMG does not unpack; see here for details:
   # https://github.com/matthewbauer/undmg/issues/4
   year = if stdenvNoCC.isDarwin then "2019" else "2020";
-  spot = if stdenvNoCC.isDarwin then "3" else "1";
-  rel = if stdenvNoCC.isDarwin then "199" else "217";
+  spot = if stdenvNoCC.isDarwin then "3" else "3";
+  rel = if stdenvNoCC.isDarwin then "199" else "279";
+
+  # Replace `openmpSpot` by `spot` after 2020.3. Release 2020.03
+  # adresses performance regressions and does not update OpenMP.
+  openmpSpot = if stdenvNoCC.isDarwin then spot else "2";
 
   rpm-ver = "${year}.${spot}-${rel}-${year}.${spot}-${rel}";
 
   # Intel openmp uses its own versioning, but shares the spot release patch.
   openmp = if stdenvNoCC.isDarwin then "19.0" else "19.1";
-  openmp-ver = "${openmp}.${spot}-${rel}-${openmp}.${spot}-${rel}";
+  openmp-ver = "${openmp}.${openmpSpot}-${rel}-${openmp}.${openmpSpot}-${rel}";
 
   shlibExt = stdenvNoCC.hostPlatform.extensions.sharedLibrary;
 
@@ -42,8 +46,8 @@ in stdenvNoCC.mkDerivation {
       })
     else
       (fetchurl {
-        url = "https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16533/l_mkl_${version}.tgz";
-        sha256 = "0v86hrqg15mbc78m9qk8dbkaaq3mlwashgbf9n79kxpl1gilnah8";
+        url = "https://registrationcenter-download.intel.com/akdlm/irc_nas/tec/16903/l_mkl_${version}.tgz";
+        sha256 = "013shn3c823bjfssq4jyl3na5lbzj99s09ds608ljqllri7473ib";
       });
 
   nativeBuildInputs = [ validatePkgConfig ] ++ (if stdenvNoCC.isDarwin
diff --git a/nixpkgs/pkgs/development/libraries/science/math/nccl/default.nix b/nixpkgs/pkgs/development/libraries/science/math/nccl/default.nix
index 5f38d45fc4d8..eb194c0e9e47 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/nccl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/nccl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "nccl-${version}-cuda-${cudatoolkit.majorVersion}";
-  version = "2.4.8-1";
+  version = "2.7.8-1";
 
   src = fetchFromGitHub {
     owner = "NVIDIA";
     repo = "nccl";
     rev = "v${version}";
-    sha256 = "05m66y64rgsdyybvjybhy6clikwv438b1m484ikai78fb2b7mvyq";
+    sha256 = "0xxiwaw239dc9g015fka3k1nvm5zyl00dzgxnwzkang61dys9wln";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/libraries/science/math/openblas/default.nix b/nixpkgs/pkgs/development/libraries/science/math/openblas/default.nix
index 318922d7f25d..89d88bdf564a 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/openblas/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/openblas/default.nix
@@ -99,12 +99,12 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "openblas";
-  version = "0.3.9";
+  version = "0.3.10";
   src = fetchFromGitHub {
     owner = "xianyi";
     repo = "OpenBLAS";
     rev = "v${version}";
-    sha256 = "0nq51j45shb32n6086xff3x374kx5qhr2cwjzvppx4s2z0ahflal";
+    sha256 = "174id98ga82bhz2v7sy9yj6pqy0h0088p3mkdikip69p9rh3d17b";
   };
 
   inherit blas64;
diff --git a/nixpkgs/pkgs/development/libraries/science/math/openlibm/default.nix b/nixpkgs/pkgs/development/libraries/science/math/openlibm/default.nix
index 7517ca9c6cb5..560f39e4e99a 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/openlibm/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/openlibm/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "openlibm";
-  version = "0.7.0";
+  version = "0.7.1";
   src = fetchurl {
     url = "https://github.com/JuliaLang/openlibm/archive/v${version}.tar.gz";
-    sha256 = "18q6mrq4agvlpvhix2k13qcyvqqzh30vj7b329dva64035rzg68n";
+    sha256 = "0yg8sfibr38hpb4s5ri7i0ivp96c7khdwhlxngjiymvl3jvm5cnl";
   };
 
   makeFlags = [ "prefix=$(out)" ];
diff --git a/nixpkgs/pkgs/development/libraries/science/math/or-tools/default.nix b/nixpkgs/pkgs/development/libraries/science/math/or-tools/default.nix
index a69ae5af15f3..926f7ba4789c 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/or-tools/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/or-tools/default.nix
@@ -1,20 +1,16 @@
 { stdenv, fetchFromGitHub, cmake, abseil-cpp, gflags, which
-, lsb-release, glog, protobuf3_11, cbc, zlib
+, lsb-release, glog, protobuf, cbc, zlib
 , ensureNewerSourcesForZipFilesHook, python, swig }:
 
-let
-  protobuf = protobuf3_11;
-  pythonProtobuf = python.pkgs.protobuf.override { inherit protobuf; };
-
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "or-tools";
-  version = "7.6";
+  version = "7.7";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "or-tools";
     rev = "v${version}";
-    sha256 = "0605q3y7vh7x7m9azrbkx44blq12zrab6v28b9wmpcn1lmykbw1b";
+    sha256 = "06ig9a1afmzgzcg817y0rdq49ahll0q9y7bhhg9d89x6zy959ypv";
   };
 
   # The original build system uses cmake which does things like pull
@@ -33,7 +29,7 @@ in stdenv.mkDerivation rec {
 
   makeFlags = [
     "prefix=${placeholder "out"}"
-    "PROTOBUF_PYTHON_DESC=${pythonProtobuf}/${python.sitePackages}/google/protobuf/descriptor_pb2.py"
+    "PROTOBUF_PYTHON_DESC=${python.pkgs.protobuf}/${python.sitePackages}/google/protobuf/descriptor_pb2.py"
   ];
   buildFlags = [ "cc" "pypi_archive" ];
 
@@ -54,7 +50,7 @@ in stdenv.mkDerivation rec {
   ];
   propagatedBuildInputs = [
     abseil-cpp gflags glog protobuf cbc
-    pythonProtobuf python.pkgs.six
+    python.pkgs.protobuf python.pkgs.six
   ];
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/libraries/science/math/osqp/default.nix b/nixpkgs/pkgs/development/libraries/science/math/osqp/default.nix
new file mode 100644
index 000000000000..9cd062d21f2f
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/science/math/osqp/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "osqp";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "oxfordcontrol";
+    repo = "osqp";
+    rev = "v${version}";
+    sha256 = "1gwk1bqsk0rd85zf7xplbwq822y5pnxjmqc14jj6knqbab9afvrs";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    description = "A quadratic programming solver using operator splitting";
+    homepage = "https://osqp.org";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ taktoa ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/science/math/petsc/default.nix b/nixpkgs/pkgs/development/libraries/science/math/petsc/default.nix
index 6eeeda9e9284..82a0d063570d 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/petsc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/petsc/default.nix
@@ -1,28 +1,38 @@
-{ stdenv , fetchurl , blas , gfortran , lapack , python }:
+{ stdenv , darwin , fetchurl , blas , gfortran , lapack , python }:
 
 stdenv.mkDerivation rec {
   pname = "petsc";
-  version = "3.13.1";
+  version = "3.13.4";
 
   src = fetchurl {
     url = "http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/petsc-${version}.tar.gz";
-    sha256 = "0pr604b9pnryl9q0q5arlhs0xdx7wslca0sbz0pzs9qylmz775qp";
+    sha256 = "1n2paqw5c0ja392s1qhp7q2ypwav8s5drxxz2w5m2cn31vbspy1c";
   };
 
-  nativeBuildInputs = [ blas gfortran.cc.lib lapack python ];
+  nativeBuildInputs = [ blas gfortran gfortran.cc.lib lapack python ];
 
-  prePatch = stdenv.lib.optionalString stdenv.isDarwin ''
+  # Upstream does some hot she-py-bang stuff, this change streamlines that
+  # process. The original script in upstream is both a shell script and a
+  # python script, where the shellscript just finds a suitable python
+  # interpreter to execute the python script. See
+  # https://github.com/NixOS/nixpkgs/pull/89299#discussion_r450203444
+  # for more details.
+  prePatch = ''
+    substituteInPlace configure \
+      --replace /bin/sh /usr/bin/python
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
     substituteInPlace config/install.py \
-      --replace /usr/bin/install_name_tool install_name_tool
+      --replace /usr/bin/install_name_tool ${darwin.cctools}/bin/install_name_tool
   '';
 
   preConfigure = ''
+    export FC="${gfortran}/bin/gfortran" F77="${gfortran}/bin/gfortran"
     patchShebangs .
     configureFlagsArray=(
       $configureFlagsArray
       "--CC=$CC"
       "--with-cxx=$CXX"
-      "--with-fc=0"
+      "--with-fc=$FC"
       "--with-mpi=0"
       "--with-blas-lib=[${blas}/lib/libblas.so,${gfortran.cc.lib}/lib/libgfortran.a]"
       "--with-lapack-lib=[${lapack}/lib/liblapack.so,${gfortran.cc.lib}/lib/libgfortran.a]"
diff --git a/nixpkgs/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix b/nixpkgs/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix
index 5a2c28d3c022..1c910a4f75bb 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/suitesparse-graphblas/default.nix
@@ -6,7 +6,7 @@
 
 stdenv.mkDerivation rec {
   pname = "suitesparse-graphblas";
-  version = "3.2.2";
+  version = "3.3.3";
 
   outputs = [ "out" "dev" ];
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
     owner = "DrTimothyAldenDavis";
     repo = "GraphBLAS";
     rev = "v${version}";
-    sha256 = "04hprrgj0f44ml2f0w4jfwgrvy8l2s6ya0c9xc8gwlbmkc7a4c62";
+    sha256 = "1nmygb2yny0mdqp0mc6760gbxklq1jjm0c6s39qkdwzf3n9f8j7p";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/science/math/suitesparse/default.nix b/nixpkgs/pkgs/development/libraries/science/math/suitesparse/default.nix
index f0480e1e2381..d50e065efc61 100644
--- a/nixpkgs/pkgs/development/libraries/science/math/suitesparse/default.nix
+++ b/nixpkgs/pkgs/development/libraries/science/math/suitesparse/default.nix
@@ -57,29 +57,6 @@ stdenv.mkDerivation rec {
     "library"
   ];
 
-  # Likely fixed after 5.7.2
-  # https://github.com/DrTimothyAldenDavis/SuiteSparse/commit/f6daae26ee391e475e2295e77c839aa7c1a8b784
-  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
-    # The fixDarwinDylibNames in nixpkgs can't seem to fix all the libraries.
-    # We manually fix them up here.
-    fixDarwinDylibNames() {
-        local flags=()
-        local old_id
-
-        for fn in "$@"; do
-            flags+=(-change "$PWD/lib/$(basename "$fn")" "$fn")
-        done
-
-        for fn in "$@"; do
-            if [ -L "$fn" ]; then continue; fi
-            echo "$fn: fixing dylib"
-            install_name_tool -id "$fn" "''${flags[@]}" "$fn"
-        done
-    }
-
-    fixDarwinDylibNames $(find "$out" -name "*.dylib")
-  '';
-
   meta = with stdenv.lib; {
     homepage = "http://faculty.cse.tamu.edu/davis/suitesparse.html";
     description = "A suite of sparse matrix algorithms";
diff --git a/nixpkgs/pkgs/development/libraries/seasocks/default.nix b/nixpkgs/pkgs/development/libraries/seasocks/default.nix
index 144eb56c955f..241046b09fe8 100644
--- a/nixpkgs/pkgs/development/libraries/seasocks/default.nix
+++ b/nixpkgs/pkgs/development/libraries/seasocks/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "seasocks";
-  version = "1.4.3";
+  version = "1.4.4";
 
   src = fetchFromGitHub {
     owner = "mattgodbolt";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1c2gc0k9wgbgn7y7wmq2ylp0gvdbmagc1x8c4jwbsncl1gy6x4g2";
+    sha256 = "1f9a3mx3yjmr5qry4rc1c7mrx3348iifxm7d8sj8yd41kqnzmfv4";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/serd/default.nix b/nixpkgs/pkgs/development/libraries/serd/default.nix
index 6829275e99e4..88fd1ea82d3b 100644
--- a/nixpkgs/pkgs/development/libraries/serd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/serd/default.nix
@@ -16,6 +16,6 @@ stdenv.mkDerivation rec {
     description = "A lightweight C library for RDF syntax which supports reading and writing Turtle and NTriples";
     license = licenses.mit;
     maintainers = [ maintainers.goibhniu ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/serf/default.nix b/nixpkgs/pkgs/development/libraries/serf/default.nix
index 2742ba1577b3..92dde2111fc8 100644
--- a/nixpkgs/pkgs/development/libraries/serf/default.nix
+++ b/nixpkgs/pkgs/development/libraries/serf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, apr, scons, openssl, aprutil, zlib, kerberos
+{ stdenv, fetchurl, apr, sconsPackages, openssl, aprutil, zlib, kerberos
 , pkgconfig, libiconv }:
 
 stdenv.mkDerivation rec {
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "1k47gbgpp52049andr28y28nbwh9m36bbb0g8p0aka3pqlhjv72l";
   };
 
-  nativeBuildInputs = [ pkgconfig scons.py2 ];
+  nativeBuildInputs = [ pkgconfig sconsPackages.scons_3_1_2 ];
   buildInputs = [ apr openssl aprutil zlib libiconv ]
     ++ stdenv.lib.optional (!stdenv.isCygwin) kerberos;
 
diff --git a/nixpkgs/pkgs/development/libraries/serialdv/default.nix b/nixpkgs/pkgs/development/libraries/serialdv/default.nix
index 178cee5e69ac..d711cd9fc80f 100644
--- a/nixpkgs/pkgs/development/libraries/serialdv/default.nix
+++ b/nixpkgs/pkgs/development/libraries/serialdv/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/f4exb/serialdv";
     platforms = platforms.linux;
     maintainers = with maintainers; [ alkeryn ];
+    license = licenses.gpl3;
   };
 }
 
diff --git a/nixpkgs/pkgs/development/libraries/simgear/default.nix b/nixpkgs/pkgs/development/libraries/simgear/default.nix
index ab4fd2c7bf27..3a7c0b3c410b 100644
--- a/nixpkgs/pkgs/development/libraries/simgear/default.nix
+++ b/nixpkgs/pkgs/development/libraries/simgear/default.nix
@@ -4,7 +4,7 @@
 , curl
 }:
 let
-  version = "2020.1.1";
+  version = "2020.1.3";
   shortVersion = builtins.substring 0 6 version;
 in
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/flightgear/release-${shortVersion}/${pname}-${version}.tar.bz2";
-    sha256 = "1z52r28xg05q6hdlh4szzfjlpgkvbdyn2dpaji9b57y58ccrqsfh";
+    sha256 = "1l8kiicm0klbx0b05994vqd8a8wj7k0djbbg41a6i3q5d17jrnk6";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/libraries/snap7/default.nix b/nixpkgs/pkgs/development/libraries/snap7/default.nix
new file mode 100644
index 000000000000..3419c4c6c2a6
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/snap7/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, lib, fetchFromGitHub, fetchzip, p7zip }:
+
+stdenv.mkDerivation rec {
+  pname = "snap7";
+  version = "1.4.2";
+
+  src = fetchzip {
+    url = "mirror://sourceforge/snap7/${version}/snap7-full-${version}.7z";
+    sha256 = "1n5gs8bwb6g9vfllf3x12r5yzqzapmlq1bmc6hl854b8vkg30y8c";
+    postFetch = ''
+      ${p7zip}/bin/7z x $downloadedFile
+      mkdir $out
+      cp -r snap7-full-${version}/* $out/
+    '';
+  };
+
+  outputs = [ "out" "dev" "doc" ];
+
+  makefile = "x86_64_linux.mk";
+  makeFlags = [ "LibInstall=$(out)/lib" ];
+
+  preBuild = "cd build/unix";
+  preInstall = ''
+    mkdir -p $out/lib
+    mkdir -p $dev/include
+    mkdir -p $doc/share
+    cp $src/examples/cpp/snap7.h $dev/include
+    cp -r $src/doc $doc/share/
+  '';
+
+  meta = with lib; {
+    homepage = "http://snap7.sourceforge.net/";
+    description = "Step7 Open Source Ethernet Communication Suite";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ freezeboy ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/soil/default.nix b/nixpkgs/pkgs/development/libraries/soil/default.nix
index 10a60c36987c..cf0896170c17 100644
--- a/nixpkgs/pkgs/development/libraries/soil/default.nix
+++ b/nixpkgs/pkgs/development/libraries/soil/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, unzip, mesa, libX11 }:
+{ stdenv, fetchurl, unzip, mesa, libX11, libGL }:
 
 stdenv.mkDerivation {
   name = "soil";
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
     sha256 = "00gpwp9dldzhsdhksjvmbhsd2ialraqbv6v6dpikdmpncj6mnc52";
   };
 
-  buildInputs = [ unzip mesa libX11 ];
+  buildInputs = [ unzip mesa libGL libX11 ];
 
   sourceRoot = "Simple OpenGL Image Library/projects/makefile";
   preBuild   = "mkdir obj";
diff --git a/nixpkgs/pkgs/development/libraries/sope/default.nix b/nixpkgs/pkgs/development/libraries/sope/default.nix
index 9d0b3bf76b36..2c73ff24df2a 100644
--- a/nixpkgs/pkgs/development/libraries/sope/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sope/default.nix
@@ -1,13 +1,13 @@
 { gnustep, lib, fetchFromGitHub , libxml2, openssl_1_1
 , openldap, mysql, libmysqlclient, postgresql }: with lib; gnustep.stdenv.mkDerivation rec {
   pname = "sope";
-  version = "4.3.2";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "inverse-inc";
     repo = pname;
     rev = "SOPE-${version}";
-    sha256 = "0ny1ihx38gd25w8f3dfybyswvyjfljvb2fhfmkajgg6hhjrkfar2";
+    sha256 = "sha256-7NM9wcyHDSVmjjqu489Ff3iJgl9VM+UBF3XYWoiHHTg=";
   };
 
   nativeBuildInputs = [ gnustep.make ];
diff --git a/nixpkgs/pkgs/development/libraries/soqt/default.nix b/nixpkgs/pkgs/development/libraries/soqt/default.nix
index ff7c670ca0dc..de11407e12b9 100644
--- a/nixpkgs/pkgs/development/libraries/soqt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/soqt/default.nix
@@ -1,26 +1,23 @@
-{ fetchhg, stdenv, coin3d, qt5, cmake, pkgconfig }:
+{ fetchurl, stdenv, coin3d, qtbase, cmake, pkgconfig }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "soqt";
-  version = "1.6.0a";
+  version = "1.6.0";
 
-  src = fetchhg {
-    url = "https://bitbucket.org/Coin3D/soqt";
-    rev = "5f2afb4890e0059eb27e1671f980d10ebfb9e762";
-    sha256 = "0j9lsci4cx95v16l0jaky0vzh4lbdliwz7wc17442ihjaqiqmv8m";
-    fetchSubrepos = true;
+  src = fetchurl {
+    url = "https://github.com/coin3d/soqt/releases/download/SoQt-${version}/soqt-${version}-src.tar.gz";
+    sha256 = "07qfljy286vb7y1p93205zn9sp1lpn0rcrqm5010gj87kzsmllwz";
   };
 
-  buildInputs = [ coin3d qt5.qtbase ];
+  buildInputs = [ coin3d qtbase ];
 
   nativeBuildInputs = [ cmake pkgconfig ];
 
-  meta = {
-    homepage = "https://bitbucket.org/Coin3D/coin/wiki/Home";
-    license = stdenv.lib.licenses.gpl2Plus;
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/coin3d/soqt";
+    license = licenses.bsd3;
     description = "Glue between Coin high-level 3D visualization library and Qt";
-
-    maintainers = [ stdenv.lib.maintainers.viric ];
-    platforms = stdenv.lib.platforms.linux;
+    maintainers = with maintainers; [ gebner viric ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/sord/default.nix b/nixpkgs/pkgs/development/libraries/sord/default.nix
index 5258f4d408b6..eb91ec2986a3 100644
--- a/nixpkgs/pkgs/development/libraries/sord/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sord/default.nix
@@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
     description = "A lightweight C library for storing RDF data in memory";
     license = licenses.mit;
     maintainers = [ maintainers.goibhniu ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/sparsehash/default.nix b/nixpkgs/pkgs/development/libraries/sparsehash/default.nix
index 6845c616e9c1..6007560a11ff 100644
--- a/nixpkgs/pkgs/development/libraries/sparsehash/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sparsehash/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  name = "sparsehash-2.0.3";
+  name = "sparsehash-2.0.4";
 
   src = fetchFromGitHub {
     owner = "sparsehash";
     repo = "sparsehash";
     rev = name;
-    sha256 = "0m3f0cnpnpf6aak52wn8xbrrdw8p0yhq8csgc8nlvf9zp8c402na";
+    sha256 = "1pf1cjvcjdmb9cd6gcazz64x0cd2ndpwh6ql2hqpypjv725xwxy7";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/libraries/spdk/default.nix b/nixpkgs/pkgs/development/libraries/spdk/default.nix
index e8d4f3eb4e07..1b5abe16f370 100644
--- a/nixpkgs/pkgs/development/libraries/spdk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/spdk/default.nix
@@ -1,24 +1,54 @@
-{ stdenv, fetchFromGitHub, python, cunit, dpdk, libaio, libbsd, libuuid, numactl, openssl }:
+{ stdenv
+, fetchurl
+, fetchFromGitHub
+, fetchpatch
+, ncurses
+, python3
+, cunit
+, dpdk
+, libaio
+, libbsd
+, libuuid
+, numactl
+, openssl
+}:
 
-stdenv.mkDerivation rec {
+let
+  dpdk-compat-patch = fetchurl {
+    url = "https://review.spdk.io/gerrit/plugins/gitiles/spdk/spdk/+/6acb9a58755856fb9316baf9dbbb7239dc6b9446%5E%21/?format=TEXT";
+    sha256 = "18q0956fkjw19r29hp16x4pygkfv01alj9cld2wlqqyfgp41nhn0";
+  };
+in stdenv.mkDerivation rec {
   pname = "spdk";
-  version = "20.01.1";
+  version = "20.04.1";
 
   src = fetchFromGitHub {
     owner = "spdk";
     repo = "spdk";
     rev = "v${version}";
-    sha256 = "1ci0kj0bv5jp5yipa8g0q0ah71qv6pjvvban1ad0v24f7lq4xh0w";
+    sha256 = "ApMyGamPrMalzZLbVkJlcwatiB8dOJmoxesdjkWZElk=";
   };
 
-  patches = [ ./spdk-dpdk-meson.patch ];
+  patches = [
+    ./spdk-dpdk-meson.patch
+    # https://review.spdk.io/gerrit/c/spdk/spdk/+/3134
+    (fetchpatch {
+      url = "https://github.com/spdk/spdk/commit/c954b5b722c5c163774d3598458ff726c48852ab.patch";
+      sha256 = "1n149hva5qxmpr0nmav10nya7zklafxi136f809clv8pag84g698";
+    })
+  ];
 
-  nativeBuildInputs = [ python ];
+  nativeBuildInputs = [
+    python3
+  ];
 
-  buildInputs = [ cunit dpdk libaio libbsd libuuid numactl openssl ];
+  buildInputs = [
+    cunit dpdk libaio libbsd libuuid numactl openssl ncurses
+  ];
 
   postPatch = ''
     patchShebangs .
+    base64 -d ${dpdk-compat-patch} | patch -p1
   '';
 
   configureFlags = [ "--with-dpdk=${dpdk}" ];
diff --git a/nixpkgs/pkgs/development/libraries/spdlog/default.nix b/nixpkgs/pkgs/development/libraries/spdlog/default.nix
index add1dcf10cb0..22266bfd4b01 100644
--- a/nixpkgs/pkgs/development/libraries/spdlog/default.nix
+++ b/nixpkgs/pkgs/development/libraries/spdlog/default.nix
@@ -35,8 +35,8 @@ let
 in
 {
   spdlog_1 = generic {
-    version = "1.6.0";
-    sha256 = "15fn8nd9xj7wrxcg9n4fjffid790qg2m366rx2lq2fc9v9walrxs";
+    version = "1.7.0";
+    sha256 = "1ryaa22ppj60461hcdb8nk7jwj84arp4iw4lyw594py92g4vnx3j";
   };
 
   spdlog_0 = generic {
diff --git a/nixpkgs/pkgs/development/libraries/speechd/default.nix b/nixpkgs/pkgs/development/libraries/speechd/default.nix
index eab6c1d446cd..fbf399cb246e 100644
--- a/nixpkgs/pkgs/development/libraries/speechd/default.nix
+++ b/nixpkgs/pkgs/development/libraries/speechd/default.nix
@@ -39,11 +39,11 @@ let
       throw "You need to enable at least one output module.";
 in stdenv.mkDerivation rec {
   pname = "speech-dispatcher";
-  version = "0.9.1";
+  version = "0.10.1";
 
   src = fetchurl {
     url = "https://github.com/brailcom/speechd/releases/download/${version}/${pname}-${version}.tar.gz";
-    sha256 = "16bg52hnkrsrs7kgbzanb34b9zb6fqxwj0a9bmsxmj1skkil1h1p";
+    sha256 = "0j2lfzkmbsxrrgjw6arzvnfd4jn5pxab28xsk2djssr2ydb9x309";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/sqlite/analyzer.nix b/nixpkgs/pkgs/development/libraries/sqlite/analyzer.nix
index cf8a9aaa7326..d0100edd345b 100644
--- a/nixpkgs/pkgs/development/libraries/sqlite/analyzer.nix
+++ b/nixpkgs/pkgs/development/libraries/sqlite/analyzer.nix
@@ -6,11 +6,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "sqlite-analyzer";
-  version = "3.32.2";
+  version = "3.33.0";
 
   src = assert version == sqlite.version; fetchurl {
     url = "https://sqlite.org/2020/sqlite-src-${archiveVersion version}.zip";
-    sha256 = "1jqhs896cvp9l399mjpbv1x2qbfvq875l1vrgnl3zc4ffdjxs9z0";
+    sha256 = "1f09srlrmcab1sf8j2d89s2kvknlbxk7mbsiwpndw9mall27dgwh";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/development/libraries/sqlite/default.nix b/nixpkgs/pkgs/development/libraries/sqlite/default.nix
index 35d3d062ab78..4393b6314614 100644
--- a/nixpkgs/pkgs/development/libraries/sqlite/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sqlite/default.nix
@@ -10,12 +10,12 @@ in
 
 stdenv.mkDerivation rec {
   pname = "sqlite";
-  version = "3.32.2";
+  version = "3.33.0";
 
-  # NB! Make sure to update analyzer.nix src (in the same directory).
+  # NB! Make sure to update ./tools.nix src (in the same directory).
   src = fetchurl {
     url = "https://sqlite.org/2020/sqlite-autoconf-${archiveVersion version}.tar.gz";
-    sha256 = "1130bcd70s2vlsq0d638pb5qrw9kwqvjswnp2dfypghx9hjz3gid";
+    sha256 = "05dvdfaxd552gj5p7k0i72sfam7lykaw1g2pfn52jnppqx42qshh";
   };
 
   outputs = [ "bin" "dev" "out" ];
diff --git a/nixpkgs/pkgs/development/libraries/sqlite/tools.nix b/nixpkgs/pkgs/development/libraries/sqlite/tools.nix
new file mode 100644
index 000000000000..3ac1f617862e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/sqlite/tools.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, unzip, sqlite, tcl, Foundation }:
+
+let
+  archiveVersion = import ./archive-version.nix stdenv.lib;
+  mkTool = { pname, makeTarget, description, homepage }: stdenv.mkDerivation rec {
+    inherit pname;
+    version = "3.33.0";
+
+    src = assert version == sqlite.version; fetchurl {
+      url = "https://sqlite.org/2020/sqlite-src-${archiveVersion version}.zip";
+      sha256 = "1f09srlrmcab1sf8j2d89s2kvknlbxk7mbsiwpndw9mall27dgwh";
+    };
+
+    nativeBuildInputs = [ unzip ];
+    buildInputs = [ tcl ] ++ stdenv.lib.optional stdenv.isDarwin Foundation;
+
+    makeFlags = [ makeTarget ];
+
+    installPhase = "install -Dt $out/bin ${makeTarget}";
+
+    meta = with stdenv.lib; {
+      inherit description homepage;
+      downloadPage = http://sqlite.org/download.html;
+      license = licenses.publicDomain;
+      maintainers = with maintainers; [ pesterhazy johnazoidberg ];
+      platforms = platforms.unix;
+    };
+  };
+in
+{
+  sqldiff = mkTool {
+    pname = "sqldiff";
+    makeTarget = "sqldiff";
+    description = "A tool that displays the differences between SQLite databases";
+    homepage = "https://www.sqlite.org/sqldiff.html";
+  };
+  sqlite-analyzer = mkTool {
+    pname = "sqlite-analyzer";
+    makeTarget = "sqlite3_analyzer";
+    description = "A tool that shows statistics about SQLite databases";
+    homepage = "https://www.sqlite.org/sqlanalyze.html";
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/strigi/default.nix b/nixpkgs/pkgs/development/libraries/strigi/default.nix
deleted file mode 100644
index 33a2ae25b121..000000000000
--- a/nixpkgs/pkgs/development/libraries/strigi/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ stdenv, fetchurl, cmake, qt4, perl, bzip2, libxml2, exiv2
-, clucene_core, fam, zlib, dbus, pkgconfig
-}:
-
-stdenv.mkDerivation rec {
-  pname = "strigi";
-  version = "0.7.8";
-
-  src = fetchurl {
-    url = "https://www.vandenoever.info/software/strigi/${pname}-${version}.tar.bz2";
-    sha256 = "12grxzqwnvbyqw7q1gnz42lypadxmq89vk2qpxczmpmc4nk63r23";
-  };
-
-  includeAllQtDirs = true;
-
-  CLUCENE_HOME = clucene_core;
-
-  buildInputs =
-    [ zlib bzip2 libxml2 qt4 exiv2 clucene_core fam dbus.out ];
-
-  nativeBuildInputs = [ cmake pkgconfig perl ];
-
-  patches = [ ./export_bufferedstream.patch ./gcc6.patch ];
-
-  enableParallelBuilding = true;
-
-  # Strigi installs some libraries in an incorrect place
-  # ($out/$out/lib instead of $out/lib), so move them to the right
-  # place.
-  postInstall =
-    ''
-      mv $out/$out/lib/* $out/lib
-      rm -rf $out/nix
-    '';
-
-  meta = {
-    homepage = "http://strigi.sourceforge.net";
-    description = "A very fast and efficient crawler to index data on your harddrive";
-    license = "LGPL";
-    maintainers = with stdenv.lib.maintainers; [ sander ];
-    inherit (qt4.meta) platforms;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/strigi/export_bufferedstream.patch b/nixpkgs/pkgs/development/libraries/strigi/export_bufferedstream.patch
deleted file mode 100644
index 4c6b34fe1bec..000000000000
--- a/nixpkgs/pkgs/development/libraries/strigi/export_bufferedstream.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -u -r strigi-0.7.8/libstreams/include/strigi/bufferedstream.h strigi-0.7.8_new/libstreams/include/strigi/bufferedstream.h
---- strigi-0.7.8/libstreams/include/strigi/bufferedstream.h	2013-02-05 13:34:57.000000000 -0800
-+++ strigi-0.7.8_new/libstreams/include/strigi/bufferedstream.h	2013-07-14 17:01:54.000000000 -0700
-@@ -34,7 +34,7 @@
-  * BufferedStream will do the rest.
-  */
- template <class T>
--class BufferedStream : public StreamBase<T> {
-+class STRIGI_EXPORT BufferedStream : public StreamBase<T> {
- private:
-     StreamBuffer<T> buffer;
-     bool finishedWritingToBuffer;
diff --git a/nixpkgs/pkgs/development/libraries/strigi/gcc6.patch b/nixpkgs/pkgs/development/libraries/strigi/gcc6.patch
deleted file mode 100644
index b46f6c52b823..000000000000
--- a/nixpkgs/pkgs/development/libraries/strigi/gcc6.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-https://sourceforge.net/p/strigi/patches/4/
-
-and a fix for
-
-/tmp/nix-build-strigi-0.7.8.drv-0/strigi-0.7.8/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp:325:37: error: no matching function for call to 'make_pair(std::__cxx11::string, std::__cxx11::string&)'
-             wchartoutf8(name), value));
-
-diff -Naur strigi-0.7.8.old/libstreamanalyzer/cmake/MacroCheckGccVisibility.cmake strigi-0.7.8/libstreamanalyzer/cmake/MacroCheckGccVisibility.cmake
---- strigi-0.7.8.old/libstreamanalyzer/cmake/MacroCheckGccVisibility.cmake	2013-02-05 16:34:52.000000000 -0500
-+++ strigi-0.7.8/libstreamanalyzer/cmake/MacroCheckGccVisibility.cmake	2016-05-14 11:39:54.586260564 -0400
-@@ -15,7 +15,7 @@
-    # get the gcc version
-    exec_program(${CMAKE_C_COMPILER} ARGS ${CMAKE_C_COMPILER_ARG1} --version OUTPUT_VARIABLE _gcc_version_info)
- 
--   string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]" _gcc_version "${_gcc_version_info}")
-+   string (REGEX MATCH "[3456789]\\.[0-9]\\.[0-9]" _gcc_version "${_gcc_version_info}")
-    # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the patch level, handle this here:
-    if (NOT _gcc_version)
-       string (REGEX REPLACE ".*\\(GCC\\).* ([34]\\.[0-9]) .*" "\\1.0" _gcc_version "${_gcc_version_info}")
-diff -Naur strigi-0.7.8.old/libstreams/cmake/MacroCheckGccVisibility.cmake strigi-0.7.8/libstreams/cmake/MacroCheckGccVisibility.cmake
---- strigi-0.7.8.old/libstreams/cmake/MacroCheckGccVisibility.cmake	2013-02-05 16:34:57.000000000 -0500
-+++ strigi-0.7.8/libstreams/cmake/MacroCheckGccVisibility.cmake	2016-05-14 11:40:11.340134414 -0400
-@@ -15,7 +15,7 @@
-    # get the gcc version
-    exec_program(${CMAKE_C_COMPILER} ARGS ${CMAKE_C_COMPILER_ARG1} --version OUTPUT_VARIABLE _gcc_version_info)
- 
--   string (REGEX MATCH "[345]\\.[0-9]\\.[0-9]" _gcc_version "${_gcc_version_info}")
-+   string (REGEX MATCH "[3456789]\\.[0-9]\\.[0-9]" _gcc_version "${_gcc_version_info}")
-    # gcc on mac just reports: "gcc (GCC) 3.3 20030304 ..." without the patch level, handle this here:
-    if (NOT _gcc_version)
-       string (REGEX REPLACE ".*\\(GCC\\).* ([34]\\.[0-9]) .*" "\\1.0" _gcc_version "${_gcc_version_info}")
-
-diff -ru strigi-0.7.8-orig/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp strigi-0.7.8/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp
---- strigi-0.7.8-orig/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp	2013-02-05 22:34:52.000000000 +0100
-+++ strigi-0.7.8/libstreamanalyzer/plugins/indexers/clucenengindexer/cluceneindexreader.cpp	2017-07-31 10:56:27.067902643 +0200
-@@ -321,8 +321,7 @@
-         string size = value;
-         doc.size = atoi(size.c_str());
-     } else {
--        doc.properties.insert(make_pair<const string, string>(
--            wchartoutf8(name), value));
-+        doc.properties.emplace(wchartoutf8(name), value);
-     }
- }
- Variant
diff --git a/nixpkgs/pkgs/development/libraries/sundials/2.x.nix b/nixpkgs/pkgs/development/libraries/sundials/2.x.nix
index b54e537fb823..ae22f0be1797 100644
--- a/nixpkgs/pkgs/development/libraries/sundials/2.x.nix
+++ b/nixpkgs/pkgs/development/libraries/sundials/2.x.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     description = "Suite of nonlinear differential/algebraic equation solvers";
     homepage    = "https://computation.llnl.gov/projects/sundials";
     platforms   = platforms.all;
-    maintainers = with maintainers; [ flokli idontgetoutmuch ];
+    maintainers = with maintainers; [ idontgetoutmuch ];
     license     = licenses.bsd3;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/sundials/default.nix b/nixpkgs/pkgs/development/libraries/sundials/default.nix
index 46cf437d72ca..e1b4d375282e 100644
--- a/nixpkgs/pkgs/development/libraries/sundials/default.nix
+++ b/nixpkgs/pkgs/development/libraries/sundials/default.nix
@@ -5,20 +5,35 @@
 , blas
 , lapack
 , gfortran
-, lapackSupport ? true }:
+, suitesparse
+, lapackSupport ? true
+, kluSupport ? true }:
 
 assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "sundials";
-  version = "5.1.0";
+  version = "5.3.0";
+
+  buildInputs = [
+    python
+  ] ++ stdenv.lib.optionals (lapackSupport) [
+    gfortran
+    blas
+    lapack
+  ]
+  # KLU support is based on Suitesparse.
+  # It is tested upstream according to the section 1.1.4 of
+  # [INSTALL_GUIDE.pdf](https://raw.githubusercontent.com/LLNL/sundials/master/INSTALL_GUIDE.pdf)
+  ++ stdenv.lib.optionals (kluSupport) [
+    suitesparse
+  ];
 
-  buildInputs = [ python ] ++ stdenv.lib.optionals (lapackSupport) [ gfortran blas lapack ];
   nativeBuildInputs = [ cmake ];
 
   src = fetchurl {
     url = "https://computation.llnl.gov/projects/${pname}/download/${pname}-${version}.tar.gz";
-    sha256 = "08cvzmbr2qc09ayq4f5j07lw97hl06q4dl26vh4kh822mm7x28pv";
+    sha256 = "19xwi7pz35s2nqgldm6r0jl2k0bs36zhbpnmmzc56s1n3bhzgpw8";
   };
 
   patches = [
@@ -35,6 +50,10 @@ stdenv.mkDerivation rec {
     "-DSUNDIALS_INDEX_TYPE=int32_t"
     "-DLAPACK_ENABLE=ON"
     "-DLAPACK_LIBRARIES=${lapack}/lib/liblapack${stdenv.hostPlatform.extensions.sharedLibrary}"
+  ] ++ stdenv.lib.optionals (kluSupport) [
+    "-DKLU_ENABLE=ON"
+    "-DKLU_INCLUDE_DIR=${suitesparse.dev}/include"
+    "-DKLU_LIBRARY_DIR=${suitesparse}/lib"
   ];
 
   doCheck = true;
@@ -44,7 +63,7 @@ stdenv.mkDerivation rec {
     description = "Suite of nonlinear differential/algebraic equation solvers";
     homepage    = "https://computation.llnl.gov/projects/sundials";
     platforms   = platforms.all;
-    maintainers = with maintainers; [ flokli idontgetoutmuch ];
+    maintainers = with maintainers; [ idontgetoutmuch ];
     license     = licenses.bsd3;
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/swiften/default.nix b/nixpkgs/pkgs/development/libraries/swiften/default.nix
index 19bacdd2a614..2fe20cc9e882 100644
--- a/nixpkgs/pkgs/development/libraries/swiften/default.nix
+++ b/nixpkgs/pkgs/development/libraries/swiften/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, python, fetchurl, openssl, boost, scons }:
+{ stdenv, python, fetchurl, openssl, boost, sconsPackages }:
 stdenv.mkDerivation rec {
   pname = "swiften";
   version = "4.0.2";
 
-  nativeBuildInputs = [ scons.py2 ];
+  nativeBuildInputs = [ sconsPackages.scons_3_1_2 ];
   buildInputs           = [ python ];
   propagatedBuildInputs = [ openssl boost ];
 
diff --git a/nixpkgs/pkgs/development/libraries/swiftshader/default.nix b/nixpkgs/pkgs/development/libraries/swiftshader/default.nix
new file mode 100644
index 000000000000..3965f46bd8d8
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/swiftshader/default.nix
@@ -0,0 +1,63 @@
+{ stdenv, fetchgit, python3, cmake, jq, libX11, libXext }:
+
+stdenv.mkDerivation rec {
+  pname = "swiftshader";
+  version = "2020-06-17";
+
+  src = fetchgit {
+    url = "https://swiftshader.googlesource.com/SwiftShader";
+    rev = "763957e6b4fc1aa360ab19c4109b8b26686783e8";
+    sha256 = "0sdh48swx0qyq2nfkv1nggs14am0qc7z239qrxb69p2ddqm76g1s";
+  };
+
+  nativeBuildInputs = [ cmake python3 jq ];
+  buildInputs = [ libX11 libXext ];
+
+  # Make sure we include the drivers and icd files in the output as the cmake
+  # generated install command only puts in the spirv-tools stuff.
+  installPhase = ''
+    runHook preInstall
+
+    #
+    # Vulkan driver
+    #
+    vk_so_path="$out/lib/libvk_swiftshader.so"
+    mkdir -p "$(dirname "$vk_so_path")"
+    mv Linux/libvk_swiftshader.so "$vk_so_path"
+
+    vk_icd_json="$out/share/vulkan/icd.d/vk_swiftshader_icd.json"
+    mkdir -p "$(dirname "$vk_icd_json")"
+    jq ".ICD.library_path = \"$vk_so_path\"" <Linux/vk_swiftshader_icd.json >"$vk_icd_json"
+
+    #
+    # GL driver
+    #
+    gl_so_path="$out/lib/libEGL.so"
+    mkdir -p "$(dirname "$gl_so_path")"
+    mv Linux/libEGL.so "$gl_so_path"
+
+    gl_icd_json="$out/share/glvnd/egl_vendor.d/swiftshader.json"
+    mkdir -p "$(dirname "$gl_icd_json")"
+    cat >"$gl_icd_json" <<EOF
+    {
+      "file_format_version" : "1.0.0",
+      "ICD" : {
+          "library_path" : "$gl_so_path"
+      }
+    }
+    EOF
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description =
+      "A high-performance CPU-based implementation of the Vulkan, OpenGL ES, and Direct3D 9 graphics APIs";
+    homepage = "https://opensource.google/projects/swiftshader";
+    license = licenses.asl20;
+    # Should be possible to support Darwin by changing the install phase with
+    # 's/Linux/Darwin/' and 's/so/dylib/' or something similar.
+    platforms = [ "i686-linux" "x86_64-linux" "armv7l-linux" "mipsel-linux" ];
+    maintainers = with maintainers; [ expipiplus1 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/tbb/default.nix b/nixpkgs/pkgs/development/libraries/tbb/default.nix
index 18f9e541acd4..8f045802d3af 100644
--- a/nixpkgs/pkgs/development/libraries/tbb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tbb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, compiler ? if stdenv.cc.isClang then "clang" else null, stdver ? null }:
+{ stdenv, fetchFromGitHub, fixDarwinDylibNames, compiler ? if stdenv.cc.isClang then "clang" else null, stdver ? null }:
 
 with stdenv.lib; stdenv.mkDerivation rec {
   pname = "tbb";
@@ -11,6 +11,8 @@ with stdenv.lib; stdenv.mkDerivation rec {
     sha256 = "1a39nflw7b2n51jfp3fdprnkpgzaspzww1dckfvaigflfli9s8rj";
   };
 
+  nativeBuildInputs = optional stdenv.isDarwin fixDarwinDylibNames;
+
   makeFlags = optional (compiler != null) "compiler=${compiler}"
     ++ optional (stdver != null) "stdver=${stdver}";
 
diff --git a/nixpkgs/pkgs/development/libraries/telepathy/qt/default.nix b/nixpkgs/pkgs/development/libraries/telepathy/qt/default.nix
index b8e438819db3..2addb86246dd 100644
--- a/nixpkgs/pkgs/development/libraries/telepathy/qt/default.nix
+++ b/nixpkgs/pkgs/development/libraries/telepathy/qt/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchurl, cmake, qtbase, pkgconfig, python2Packages, dbus-glib, dbus
+{ stdenv, fetchurl, cmake, qtbase, pkgconfig, python3Packages, dbus-glib, dbus
 , telepathy-farstream, telepathy-glib, fetchpatch }:
 
 let
-  inherit (python2Packages) python dbus-python;
+  inherit (python3Packages) python dbus-python;
 in stdenv.mkDerivation rec {
-  name = "telepathy-qt-0.9.7";
+  name = "telepathy-qt-0.9.8";
 
   src = fetchurl {
     url = "https://telepathy.freedesktop.org/releases/telepathy-qt/${name}.tar.gz";
-    sha256 = "0krxd4hhfx6r0ja19wh3848j7gn1rv8jrnakgmkbmi7bww5x7fi1";
+    sha256 = "bf8e2a09060addb80475a4938105b9b41d9e6837999b7a00e5351783857e18ad";
   };
 
   nativeBuildInputs = [ cmake pkgconfig python ];
@@ -16,14 +16,6 @@ in stdenv.mkDerivation rec {
   buildInputs = [ dbus-glib ];
   checkInputs = [ dbus.daemon dbus-python ];
 
-  patches = [
-    # https://github.com/TelepathyIM/telepathy-qt/issues/25
-    (fetchpatch {
-      url = "https://github.com/TelepathyIM/telepathy-qt/commit/d654dc70dbec7097e96e6d96ca74ab1b5b00ef8c.patch";
-      sha256 = "1jzd9b9rqh3c8xlq8dr7c0r8aabzf5ywv2gpkk6phh3xwngzrfbh";
-    })
-  ];
-
   # No point in building tests if they are not run
   # On 0.9.7, they do not even build with QT4
   cmakeFlags = stdenv.lib.optional (!doCheck) "-DENABLE_TESTS=OFF";
diff --git a/nixpkgs/pkgs/development/libraries/tiledb/default.nix b/nixpkgs/pkgs/development/libraries/tiledb/default.nix
index 3ebfd4ea919b..2726ed7f237b 100644
--- a/nixpkgs/pkgs/development/libraries/tiledb/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tiledb/default.nix
@@ -16,19 +16,26 @@
 , python
 , gtest
 , doxygen
+, fixDarwinDylibNames
 }:
 
 stdenv.mkDerivation rec {
   pname = "tiledb";
-  version = "1.7.7";
+  version = "2.0.7";
 
   src = fetchFromGitHub {
     owner = "TileDB-Inc";
     repo = "TileDB";
     rev = version;
-    sha256 = "0vpbyxi8k29c7sjpk86y5w3yyp5fn62q5xvbw061wgp7vrprf8bm";
+    sha256 = "00g8ibsbnl4wjfx3qg4qy6s7z6dsj898j0yqfhw1gjr1pb5dsapb";
   };
 
+  # (bundled) blosc headers have a warning on some archs that it will be using
+  # unaccelerated routines.
+  cmakeFlags = [
+    "-DTILEDB_WERROR=0"
+  ];
+
   nativeBuildInputs = [
     clang-tools
     cmake
@@ -53,7 +60,7 @@ stdenv.mkDerivation rec {
     openssl
     boost
     libpqxx
-  ];
+  ] ++ lib.optional stdenv.isDarwin fixDarwinDylibNames;
 
   # emulate the process of pulling catch down
   postPatch = ''
@@ -65,11 +72,15 @@ stdenv.mkDerivation rec {
 
   installTargets = [ "install-tiledb" "doc" ];
 
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    install_name_tool -add_rpath ${tbb}/lib $out/lib/libtiledb.dylib
+  '';
+
   meta = with lib; {
     description = "TileDB allows you to manage the massive dense and sparse multi-dimensional array data";
     homepage = "https://github.com/TileDB-Inc/TileDB";
     license = licenses.mit;
-    platforms = [ "x86_64-linux"];
+    platforms = platforms.unix;
     maintainers = with maintainers; [ rakesh4g ];
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/timezonemap/default.nix b/nixpkgs/pkgs/development/libraries/timezonemap/default.nix
new file mode 100644
index 000000000000..131d66e45cce
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/timezonemap/default.nix
@@ -0,0 +1,65 @@
+{ stdenv
+, autoreconfHook
+, fetchbzr
+, pkgconfig
+, gtk3
+, glib
+, file
+, gobject-introspection
+, json-glib
+, libsoup
+}:
+
+stdenv.mkDerivation rec {
+  pname = "timezonemap";
+  version = "0.4.5";
+
+  src = fetchbzr {
+    url = "lp:timezonemap";
+    rev = "58";
+    sha256 = "1qdp5f9zd8c02bf0mq4w15rlhz2g51phml5qg9asdyfd1715f8n0";
+  };
+
+  nativeBuildInputs = [
+    pkgconfig
+    autoreconfHook
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    gtk3
+    glib
+    json-glib
+    libsoup
+  ];
+
+  configureFlags = [
+    "CFLAGS=-Wno-error"
+    "--sysconfdir=/etc"
+    "--localstatedir=/var"
+  ];
+
+  installFlags = [
+    "sysconfdir=${placeholder "out"}/etc"
+    "localstatedir=\${TMPDIR}"
+  ];
+
+  preConfigure = ''
+    for f in {configure,m4/libtool.m4}; do
+      substituteInPlace $f\
+        --replace /usr/bin/file ${file}/bin/file
+    done
+  '';
+
+  postPatch = ''
+    sed "s|/usr/share/libtimezonemap|$out/share/libtimezonemap|g" -i ./src/tz.h
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://launchpad.net/timezonemap";
+    description = "A GTK+3 Timezone Map Widget";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.mkg20001 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/tinycbor/default.nix b/nixpkgs/pkgs/development/libraries/tinycbor/default.nix
new file mode 100644
index 000000000000..62f2a8071852
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/tinycbor/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "tinycbor";
+  version = "0.5.3";
+
+  src = fetchFromGitHub {
+    owner = "intel";
+    repo = "tinycbor";
+    rev = "v${version}";
+    sha256 = "11y6liyd3fvc28d3dinii16sxgwgg2p29p41snc4h82dvvx5bb2b";
+  };
+
+  makeFlags = [ "prefix=$(out)" ];
+
+  meta = with stdenv.lib; {
+    description = "Concise Binary Object Representation (CBOR) Library";
+    homepage = "https://github.com/intel/tinycbor";
+    license = licenses.mit;
+    maintainers = with maintainers; [ oxzi ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/tk/generic.nix b/nixpkgs/pkgs/development/libraries/tk/generic.nix
index 745be0be922f..1cbf4026cb88 100644
--- a/nixpkgs/pkgs/development/libraries/tk/generic.nix
+++ b/nixpkgs/pkgs/development/libraries/tk/generic.nix
@@ -19,7 +19,7 @@ stdenv.mkDerivation {
   postInstall = ''
     ln -s $out/bin/wish* $out/bin/wish
     cp ../{unix,generic}/*.h $out/include
-    ln -s $out/lib/libtk${tcl.release}.so $out/lib/libtk.so
+    ln -s $out/lib/libtk${tcl.release}${stdenv.hostPlatform.extensions.sharedLibrary} $out/lib/libtk${stdenv.hostPlatform.extensions.sharedLibrary}
   ''
   + stdenv.lib.optionalString (stdenv.isDarwin) ''
     cp ../macosx/*.h $out/include
diff --git a/nixpkgs/pkgs/development/libraries/tllist/default.nix b/nixpkgs/pkgs/development/libraries/tllist/default.nix
new file mode 100644
index 000000000000..a17b3e415d51
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/tllist/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, fetchgit, meson, ninja }:
+
+stdenv.mkDerivation rec {
+  pname = "tllist";
+  version = "1.0.2";
+
+  src = fetchgit {
+    url = "https://codeberg.org/dnkl/tllist.git";
+    rev = "${version}";
+    sha256 = "095wly66z9n2r6h318rackgl4g1w9l1vj96367ngcw7rpva9yppl";
+  };
+
+  nativeBuildInputs = [
+    meson ninja
+  ];
+
+  meta = with lib; {
+    homepage = "https://codeberg.org/dnkl/tllist";
+    description = "C header file only implementation of a typed linked list";
+    maintainers = with maintainers; [ fionera ];
+    license = licenses.mit;
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/tremor/default.nix b/nixpkgs/pkgs/development/libraries/tremor/default.nix
index c2cb8a836bfa..722094f859c5 100644
--- a/nixpkgs/pkgs/development/libraries/tremor/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tremor/default.nix
@@ -1,10 +1,12 @@
-{ stdenv, fetchgit, autoreconfHook, pkgconfig, libogg }:
+{ stdenv, fetchFromGitLab, autoreconfHook, pkgconfig, libogg }:
 
 stdenv.mkDerivation {
   name = "tremor-unstable-2018-03-16";
 
-  src = fetchgit {
-    url = "https://git.xiph.org/tremor.git";
+  src = fetchFromGitLab {
+    owner = "xiph";
+    repo = "tremor";
+    domain = "gitlab.xiph.org";
     rev = "562307a4a7082e24553f3d2c55dab397a17c4b4f";
     sha256 = "0m07gq4zfgigsiz8b518xyb19v7qqp76qmp7lb262825vkqzl3zq";
   };
diff --git a/nixpkgs/pkgs/development/libraries/tweeny/default.nix b/nixpkgs/pkgs/development/libraries/tweeny/default.nix
index d3c30028ba47..f2de470288de 100644
--- a/nixpkgs/pkgs/development/libraries/tweeny/default.nix
+++ b/nixpkgs/pkgs/development/libraries/tweeny/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tweeny";
-  version = "3.1.0";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "mobius3";
     repo = "tweeny";
     rev = "v${version}";
-    sha256 = "0qvby57g9a2m4afd1mgard3k7nm4ynbvali7nzm1qn3ygdmqid7n";
+    sha256 = "0zk7p21i54hfz0l50617i3gxhxh0n9yy86n2fxg8m26cvf4yhsj7";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/libraries/uci/default.nix b/nixpkgs/pkgs/development/libraries/uci/default.nix
index e3bdea8c8890..aa2a88653bb3 100644
--- a/nixpkgs/pkgs/development/libraries/uci/default.nix
+++ b/nixpkgs/pkgs/development/libraries/uci/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation {
   pname = "uci";
-  version = "unstable-2020-01-27";
+  version = "unstable-2020-04-27";
 
   src = fetchgit {
     url = "https://git.openwrt.org/project/uci.git";
-    rev = "e8d83732f9eb571dce71aa915ff38a072579610b";
-    sha256 = "1si8dh8zzw4j6m7387qciw2akfvl7c4779s8q5ns2ys6dn4sz6by";
+    rev = "ec8d3233948603485e1b97384113fac9f1bab5d6";
+    sha256 = "0p765l8znvwhzhgkq7dp36w62k5rmzav59vgdqmqq1bjmlz1yyi6";
   };
 
   hardeningDisable = [ "all" ];
diff --git a/nixpkgs/pkgs/development/libraries/ucx/default.nix b/nixpkgs/pkgs/development/libraries/ucx/default.nix
index 9ec8ca660cfd..1961e8aef680 100644
--- a/nixpkgs/pkgs/development/libraries/ucx/default.nix
+++ b/nixpkgs/pkgs/development/libraries/ucx/default.nix
@@ -3,7 +3,7 @@
 }:
 
 let
-  version = "1.7.0";
+  version = "1.8.1";
 
 in stdenv.mkDerivation {
   name = "ucx-${version}";
@@ -12,7 +12,7 @@ in stdenv.mkDerivation {
     owner = "openucx";
     repo = "ucx";
     rev = "v${version}";
-    sha256 = "149p8s7jrg7pbbq0hw0qm8va119bsl19q4scgk94vjqliyc1s33h";
+    sha256 = "0yfnx4shgydkp447kipavjzgl6z58jan6l7znhdi8ry4zbgk568a";
   };
 
   nativeBuildInputs = [ autoreconfHook doxygen ];
diff --git a/nixpkgs/pkgs/development/libraries/unicorn-emu/default.nix b/nixpkgs/pkgs/development/libraries/unicorn-emu/default.nix
index 7917b6954064..3e10f492eb98 100644
--- a/nixpkgs/pkgs/development/libraries/unicorn-emu/default.nix
+++ b/nixpkgs/pkgs/development/libraries/unicorn-emu/default.nix
@@ -1,17 +1,25 @@
-{ stdenv, fetchurl, pkgconfig, python }:
+{ stdenv, fetchurl, pkgconfig, python, cmocka, hexdump, writeScriptBin, binutils-unwrapped }:
 
 stdenv.mkDerivation rec {
   pname = "unicorn-emulator";
-  version = "1.0.1";
+  version = "1.0.2-rc4";
 
   src = fetchurl {
     url    = "https://github.com/unicorn-engine/unicorn/archive/${version}.tar.gz";
-    sha256 = "0z01apwmvhvdldm372ww9pjfn45awkw3m90c0h4v0nj0ihmlysis";
+    sha256 = "05w43jq3r97l3c8ggc745ai8m5l93p1b6q6cfp1zwzz6hl5kifiv";
   };
 
-  configurePhase = '' patchShebangs make.sh '';
-  buildPhase = '' ./make.sh '' + stdenv.lib.optionalString stdenv.isDarwin "macos-universal-no";
-  installPhase = '' env PREFIX=$out ./make.sh install '';
+  PREFIX = placeholder "out";
+  MACOS_UNIVERSAL = stdenv.lib.optionalString stdenv.isDarwin "no";
+  NIX_CFLAGS_COMPILE = "-Wno-error";
+
+  doCheck = !stdenv.isDarwin;
+
+  checkInputs = [
+    cmocka
+    hexdump
+    python.pkgs.setuptools
+  ];
 
   nativeBuildInputs = [ pkgconfig python ];
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/libraries/urdfdom-headers/default.nix b/nixpkgs/pkgs/development/libraries/urdfdom-headers/default.nix
new file mode 100644
index 000000000000..91fc747b84a6
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/urdfdom-headers/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, validatePkgConfig }:
+
+stdenv.mkDerivation rec {
+  pname = "urdfdom-headers";
+  version = "1.0.5";
+
+  src = fetchFromGitHub {
+    owner = "ros";
+    repo = "urdfdom_headers";
+    rev = version;
+    sha256 = "1abzhcyv2vad8l36vy0fcz9kpgns834la7hf9zal962bwycqnkmg";
+  };
+
+  patches = [
+    # Fix CMake relative install dir assumptions (https://github.com/ros/urdfdom_headers/pull/66)
+    (fetchpatch {
+      url = "https://github.com/ros/urdfdom_headers/commit/990fd233b1a3ff68872a3552f3ea5ccbe105848c.patch";
+      sha256 = "1hxf2kw3mkll3fzvsby104b2m854bdpiy9gr3r9ysmw2r537gqdy";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake validatePkgConfig ];
+
+  meta = with lib; {
+    description = "URDF (U-Robot Description Format) headers provides core data structure headers for URDF";
+    homepage = "https://github.com/ros/urdfdom_headers";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ lopsided98 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/urdfdom/default.nix b/nixpkgs/pkgs/development/libraries/urdfdom/default.nix
new file mode 100644
index 000000000000..1b75851c93d0
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/urdfdom/default.nix
@@ -0,0 +1,39 @@
+{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake, pkg-config, validatePkgConfig
+, tinyxml, boost, urdfdom-headers, console-bridge }:
+
+stdenv.mkDerivation rec {
+  pname = "urdfdom";
+  version = "1.0.4";
+
+  src = fetchFromGitHub {
+    owner = "ros";
+    repo = pname;
+    rev = version;
+    sha256 = "0wambq06d7dvja25zcv4agc055q9rmf3xkrnxy8lsf4nic7ra2rr";
+  };
+
+  patches = [
+    # Fix CMake saying console-bridge 1.0 is incompatible
+    (fetchpatch {
+      url = "https://github.com/ros/urdfdom/commit/6faba176d41cf39114785a3e029013f941ed5a0e.patch";
+      sha256 = "1pn9hcg5wkkc7y28sbkxvffqxgvazzsp3g1xmz6h055v4f9ikjbs";
+    })
+    # Fix CMake relative install dir assumptions (https://github.com/ros/urdfdom/pull/142)
+    (fetchpatch {
+      url = "https://github.com/ros/urdfdom/commit/707c97c3d1f739ba0ab6e93e1bf7cd01d68a8c07.patch";
+      sha256 = "10bv7sv7gfy6lj8z5bkw7v291y12fbrrxsiqxqjxg4i65rfg92ng";
+    })
+  ];
+
+  nativeBuildInputs = [ cmake pkg-config validatePkgConfig ];
+  buildInputs = [ tinyxml boost ];
+  propagatedBuildInputs = [ urdfdom-headers console-bridge ];
+
+  meta = with lib; {
+    description = "Provides core data structures and a simple XML parser for populating the class data structures from an URDF file";
+    homepage = "https://github.com/ros/urdfdom";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ lopsided98 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/utf8cpp/default.nix b/nixpkgs/pkgs/development/libraries/utf8cpp/default.nix
new file mode 100644
index 000000000000..a2aac1241cd8
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/utf8cpp/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "utf8cpp";
+  version = "3.1.1";
+
+  src = fetchFromGitHub {
+    owner = "nemtrif";
+    repo = "utfcpp";
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "1s2pda75488z7c3w3a6qv31bj239248696yk5j2a1drbg2x1dpfh";
+  };
+
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=None"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DINSTALL_GTEST=OFF"
+  ];
+
+  nativeBuildInputs = [ cmake ];
+
+  doCheck = true;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/nemtrif/utfcpp";
+    description = "UTF-8 with C++ in a Portable Way";
+    license = licenses.free;
+    maintainers = with maintainers; [ jobojeha ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/utf8proc/default.nix b/nixpkgs/pkgs/development/libraries/utf8proc/default.nix
index 13a9855b62e2..e08aea2e1ee5 100644
--- a/nixpkgs/pkgs/development/libraries/utf8proc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/utf8proc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "utf8proc";
@@ -11,7 +11,17 @@ stdenv.mkDerivation rec {
     sha256 = "1xlkazhdnja4lksn5c9nf4bln5gjqa35a8gwlam5r0728w0h83qq";
   };
 
-  makeFlags = [ "prefix=$(out)" ];
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=ON"
+  ];
+
+  # the pkg-config file is not created in the cmake installation
+  # process, so we use the Makefile and install it manually
+  # see https://github.com/JuliaStrings/utf8proc/issues/198
+  preConfigure = "make libutf8proc.pc prefix=$out";
+  postInstall = "install -Dm644 ../libutf8proc.pc -t $out/lib/pkgconfig/";
 
   meta = with stdenv.lib; {
     description = "A clean C library for processing UTF-8 Unicode data";
diff --git a/nixpkgs/pkgs/development/libraries/vaapi-intel/default.nix b/nixpkgs/pkgs/development/libraries/vaapi-intel/default.nix
index c61429324edd..81edb9caea0d 100644
--- a/nixpkgs/pkgs/development/libraries/vaapi-intel/default.nix
+++ b/nixpkgs/pkgs/development/libraries/vaapi-intel/default.nix
@@ -1,38 +1,32 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, gnum4, pkgconfig, python2
+{ stdenv, fetchFromGitHub, autoreconfHook, gnum4, pkg-config, python3
 , intel-gpu-tools, libdrm, libva, libX11, libGL, wayland, libXext
 , enableHybridCodec ? false, vaapi-intel-hybrid
 }:
 
 stdenv.mkDerivation rec {
   pname = "intel-vaapi-driver";
-  version = "2.4.0";
+  version = "2.4.1";
 
   src = fetchFromGitHub {
     owner  = "intel";
     repo   = "intel-vaapi-driver";
     rev    = version;
-    sha256 = "019w0hvjc9l85yqhy01z2bvvljq208nkb43ai2v377l02krgcrbl";
+    sha256 = "1cidki3av9wnkgwi7fklxbg3bh6kysf8w3fk2qadjr05a92mx3zp";
   };
 
-  patchPhase = ''
-    patchShebangs ./src/shaders/gpp.py
-  '';
-
-  preConfigure = ''
-    sed -i -e "s,LIBVA_DRIVERS_PATH=.*,LIBVA_DRIVERS_PATH=$out/lib/dri," configure
-  '';
+  # Set the correct install path:
+  LIBVA_DRIVERS_PATH = "${placeholder "out"}/lib/dri";
 
   postInstall = stdenv.lib.optionalString enableHybridCodec ''
     ln -s ${vaapi-intel-hybrid}/lib/dri/* $out/lib/dri/
   '';
 
   configureFlags = [
-    "--enable-drm"
     "--enable-x11"
     "--enable-wayland"
   ] ++ stdenv.lib.optional enableHybridCodec "--enable-hybrid-codec";
 
-  nativeBuildInputs = [ autoreconfHook gnum4 pkgconfig python2 ];
+  nativeBuildInputs = [ autoreconfHook gnum4 pkg-config python3 ];
 
   buildInputs = [ intel-gpu-tools libdrm libva libX11 libXext libGL wayland ]
     ++ stdenv.lib.optional enableHybridCodec vaapi-intel-hybrid;
@@ -42,8 +36,18 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     homepage = "https://01.org/linuxmedia";
     license = licenses.mit;
-    description = "Intel driver for the VAAPI library";
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ ];
+    description = "VA-API user mode driver for Intel GEN Graphics family";
+    longDescription = ''
+      This VA-API video driver backend provides a bridge to the GEN GPUs through
+      the packaging of buffers and commands to be sent to the i915 driver for
+      exercising both hardware and shader functionality for video decode,
+      encode, and processing.
+      VA-API is an open-source library and API specification, which provides
+      access to graphics hardware acceleration capabilities for video
+      processing. It consists of a main library and driver-specific acceleration
+      backends for each supported hardware vendor.
+    '';
+    platforms = [ "x86_64-linux" "i686-linux" ];
+    maintainers = with maintainers; [ primeos ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/vid-stab/default.nix b/nixpkgs/pkgs/development/libraries/vid-stab/default.nix
index e22396f8aa39..2921719e7554 100644
--- a/nixpkgs/pkgs/development/libraries/vid-stab/default.nix
+++ b/nixpkgs/pkgs/development/libraries/vid-stab/default.nix
@@ -1,22 +1,25 @@
-{ stdenv, fetchurl, cmake }:
+{ stdenv, fetchFromGitHub, cmake, openmp }:
 
 stdenv.mkDerivation rec {
-  pname = "vid-stab";
-  version = "0.98b";
-  
-  src = fetchurl {
-    url = "https://github.com/georgmartius/vid.stab/archive/release-${version}.tar.gz";
-    sha256 = "09fh6xbd1f5xp3il3dpvr87skmnp2mm2hfmg4s9rvj4y8zvhn3sk";
+  pname = "vid.stab";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "georgmartius";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0a3frpm2kdbx7vszhg64p3alisag73bcspl7fp3a2f1kgq7rbh38";
   };
 
   nativeBuildInputs = [ cmake ];
-  
+
+  buildInputs = stdenv.lib.optionals stdenv.cc.isClang [ openmp ];
+
   meta = with stdenv.lib; {
     description = "Video stabilization library";
-    homepage    = "http://public.hronopik.de/vid.stab/";
-    license     = licenses.gpl2;
+    homepage = "http://public.hronopik.de/vid.stab/";
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ codyopel ];
-    platforms   = platforms.all;
+    platforms = platforms.all;
   };
 }
-
diff --git a/nixpkgs/pkgs/development/libraries/vmmlib/default.nix b/nixpkgs/pkgs/development/libraries/vmmlib/default.nix
index 21c186a67327..f191a9764378 100644
--- a/nixpkgs/pkgs/development/libraries/vmmlib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/vmmlib/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, blas
+{ stdenv, fetchFromGitHub, cmake, pkgconfig, boost, lapack
 , Accelerate, CoreGraphics, CoreVideo
 }:
 
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [ pkgconfig cmake ];
-  buildInputs = [ boost blas ]
+  buildInputs = [ boost lapack ]
     ++ stdenv.lib.optionals stdenv.isDarwin [ Accelerate CoreGraphics CoreVideo ];
 
   enableParallelBuilding = true;
@@ -30,11 +30,11 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "A vector and matrix math library implemented using C++ templates";
 
-    longDescription = ''vmmlib is a vector and matrix math library implemented 
-            using C++ templates. Its basic functionality includes a vector 
-            and a matrix class, with additional functionality for the 
+    longDescription = ''vmmlib is a vector and matrix math library implemented
+            using C++ templates. Its basic functionality includes a vector
+            and a matrix class, with additional functionality for the
             often-used 3d and 4d vectors and 3x3 and 4x4 matrices.
-            More advanced functionality include solvers, frustum 
+            More advanced functionality include solvers, frustum
             computations and frustum culling classes, and spatial data structures'';
 
     license     = licenses.bsd2;
@@ -43,4 +43,3 @@ stdenv.mkDerivation rec {
     platforms   = platforms.all;
   };
 }
-
diff --git a/nixpkgs/pkgs/development/libraries/vtk/9.x.nix b/nixpkgs/pkgs/development/libraries/vtk/9.x.nix
new file mode 100644
index 000000000000..455431ec3415
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/vtk/9.x.nix
@@ -0,0 +1,95 @@
+{ stdenv, mkDerivation, fetchurl, cmake, libGLU, libGL, libX11, xorgproto, libXt, libtiff
+, fetchpatch
+, enableQt ? false, qtbase, qtx11extras, qttools
+, enablePython ? false, python ? null
+# Darwin support
+, Cocoa, CoreServices, DiskArbitration, IOKit, CFNetwork, Security, GLUT, OpenGL
+, ApplicationServices, CoreText, IOSurface, ImageIO, xpc, libobjc }:
+
+with stdenv.lib;
+
+let
+  os = stdenv.lib.optionalString;
+  majorVersion = "9.0";
+  minorVersion = "1";
+  version = "${majorVersion}.${minorVersion}";
+in
+
+mkDerivation rec {
+  name = "vtk-${os enableQt "qvtk-"}${version}";
+  src = fetchurl {
+    url = "${meta.homepage}files/release/${majorVersion}/VTK-${version}.tar.gz";
+    sha256 = "1ir2lq9i45ls374lcmjzw0nrm5l5hnm1w47lg8g8d0n2j7hsaf8v";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ libtiff ]
+    ++ optionals enableQt [ qtbase qtx11extras qttools ]
+    ++ optionals stdenv.isLinux [
+      libGLU
+      libGL
+      libX11
+      xorgproto
+      libXt
+    ] ++ optionals stdenv.isDarwin [
+      xpc
+      Cocoa
+      CoreServices
+      DiskArbitration
+      IOKit
+      CFNetwork
+      Security
+      ApplicationServices
+      CoreText
+      IOSurface
+      ImageIO
+      OpenGL
+      GLUT
+    ]
+    ++ optional enablePython [
+      python
+    ];
+  propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin [ libobjc ];
+
+  preBuild = ''
+    export LD_LIBRARY_PATH="$(pwd)/lib";
+  '';
+
+  # Shared libraries don't work, because of rpath troubles with the current
+  # nixpkgs cmake approach. It wants to call a binary at build time, just
+  # built and requiring one of the shared objects.
+  # At least, we use -fPIC for other packages to be able to use this in shared
+  # objects.
+  cmakeFlags = [
+    "-DCMAKE_C_FLAGS=-fPIC"
+    "-DCMAKE_CXX_FLAGS=-fPIC"
+    "-DVTK_USE_SYSTEM_TIFF=1"
+    "-DOPENGL_INCLUDE_DIR=${libGL}/include"
+    "-DCMAKE_INSTALL_LIBDIR=lib"
+    "-DCMAKE_INSTALL_INCLUDEDIR=include"
+    "-DCMAKE_INSTALL_BINDIR=bin"
+  ]
+    ++ optionals enableQt [ "-DVTK_Group_Qt:BOOL=ON" ]
+    ++ optionals stdenv.isDarwin [ "-DOPENGL_INCLUDE_DIR=${OpenGL}/Library/Frameworks" ]
+    ++ optionals enablePython [
+      "-DVTK_WRAP_PYTHON:BOOL=ON"
+      "-DVTK_PYTHON_VERSION:STRING=3"
+    ];
+
+  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+    sed -i 's|COMMAND vtkHashSource|COMMAND "DYLD_LIBRARY_PATH=''${VTK_BINARY_DIR}/lib" ''${VTK_BINARY_DIR}/bin/vtkHashSource-${majorVersion}|' ./Parallel/Core/CMakeLists.txt
+    sed -i 's/fprintf(output, shift)/fprintf(output, "%s", shift)/' ./ThirdParty/libxml2/vtklibxml2/xmlschemas.c
+    sed -i 's/fprintf(output, shift)/fprintf(output, "%s", shift)/g' ./ThirdParty/libxml2/vtklibxml2/xpath.c
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Open source libraries for 3D computer graphics, image processing and visualization";
+    homepage = "https://www.vtk.org/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ tfmoraes ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/vulkan-loader/default.nix b/nixpkgs/pkgs/development/libraries/vulkan-loader/default.nix
index e650a28c61e5..8b5aa7428638 100644
--- a/nixpkgs/pkgs/development/libraries/vulkan-loader/default.nix
+++ b/nixpkgs/pkgs/development/libraries/vulkan-loader/default.nix
@@ -17,7 +17,9 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   preConfigure = ''
-    substituteInPlace loader/vulkan.pc.in --replace 'includedir=''${prefix}/include' 'includedir=${vulkan-headers}/include'
+    substituteInPlace loader/vulkan.pc.in \
+      --replace 'includedir=''${prefix}/include' 'includedir=${vulkan-headers}/include' \
+      --replace 'libdir=''${exec_prefix}/@CMAKE_INSTALL_LIBDIR@' 'libdir=@CMAKE_INSTALL_LIBDIR@'
   '';
 
   cmakeFlags = [
diff --git a/nixpkgs/pkgs/development/libraries/wasilibc/default.nix b/nixpkgs/pkgs/development/libraries/wasilibc/default.nix
index fb8c0e0fa215..bca025d622af 100644
--- a/nixpkgs/pkgs/development/libraries/wasilibc/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wasilibc/default.nix
@@ -20,10 +20,11 @@ stdenv.mkDerivation {
     ln -s $out/share/wasm32-wasi/undefined-symbols.txt $out/lib/wasi.imports
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "WASI libc implementation for WebAssembly";
     homepage    = "https://wasi.dev";
-    platforms   = lib.platforms.wasi;
-    maintainers = [ lib.maintainers.matthewbauer ];
+    platforms   = platforms.wasi;
+    maintainers = [ maintainers.matthewbauer ];
+    license = with licenses; [ asl20 mit llvm-exception ];
   };
 }
diff --git a/nixpkgs/pkgs/development/libraries/waylandpp/default.nix b/nixpkgs/pkgs/development/libraries/waylandpp/default.nix
index 5b02ce826add..5fc466cec201 100644
--- a/nixpkgs/pkgs/development/libraries/waylandpp/default.nix
+++ b/nixpkgs/pkgs/development/libraries/waylandpp/default.nix
@@ -16,13 +16,13 @@ assert docSupport -> doxygen != null;
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "waylandpp";
-  version = "0.2.7";
+  version = "0.2.8";
 
   src = fetchFromGitHub {
     owner = "NilsBrause";
     repo = pname;
     rev = version;
-    sha256 = "1r4m0xhvwpcqxrqvp3hz1bzlkxqj2jiymd5r6hj8xjzz536hyprz";
+    sha256 = "1kxiqab48p0n97pwg8c2zx56wqq32m3rcq7qd2pjj33ipcanb3qq";
   };
 
   cmakeFlags = [ 
diff --git a/nixpkgs/pkgs/development/libraries/wcslib/default.nix b/nixpkgs/pkgs/development/libraries/wcslib/default.nix
index 0b57d0993190..2b3414df1a4b 100644
--- a/nixpkgs/pkgs/development/libraries/wcslib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wcslib/default.nix
@@ -1,14 +1,14 @@
 { fetchurl,  stdenv, flex }:
 
 stdenv.mkDerivation rec {
-  version = "7.2";
+  version = "7.3.1";
   pname = "wcslib";
 
   buildInputs = [ flex ];
 
   src = fetchurl {
     url = "ftp://ftp.atnf.csiro.au/pub/software/wcslib/${pname}-${version}.tar.bz2";
-    sha256 ="0fbf6ypq7ag9dmjn65ja5vbfxswb6511bja8rbna25wmhns9x5b3";
+    sha256 ="0p0bp3jll9v2094a8908vk82m7j7qkjqzkngm1r9qj1v6l6j5z6c";
   };
 
   prePatch = ''
diff --git a/nixpkgs/pkgs/development/libraries/webkit2-sharp/default.nix b/nixpkgs/pkgs/development/libraries/webkit2-sharp/default.nix
new file mode 100644
index 000000000000..b8a476b3b332
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/webkit2-sharp/default.nix
@@ -0,0 +1,49 @@
+{
+  stdenv,
+  autoreconfHook,
+  fetchFromGitHub,
+  gtk-sharp-3_0,
+  lib,
+  libxslt,
+  mono,
+  pkg-config,
+  webkitgtk,
+}:
+
+stdenv.mkDerivation rec {
+  pname = "webkit2-sharp";
+  version = "a59fd76dd730432c76b12ee6347ea66567107ab9";
+
+  src = fetchFromGitHub {
+    owner = "hbons";
+    repo = "webkit2-sharp";
+    rev = version;
+    sha256 = "sha256:0a7vx81zvzn2wq4q2mqrxvlps1mqk28lm1gpfndqryxm4iiw28vc";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+    libxslt
+    mono
+    pkg-config
+  ];
+
+  buildInputs = [
+    gtk-sharp-3_0
+    webkitgtk
+  ];
+
+  ac_cv_path_MONODOCER = "no";
+  installFlagsArray = ["GAPIXMLDIR=/tmp/gapixml"];
+
+  passthru = {
+    inherit webkitgtk;
+  };
+
+  meta = {
+    description = "C# bindings for WebKit 2 with GTK+ 3";
+    homepage = "https://github.com/hbons/webkit2-sharp";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ kevincox ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/webkitgtk/default.nix b/nixpkgs/pkgs/development/libraries/webkitgtk/default.nix
index 53d0ae966b2d..d60e56763a17 100644
--- a/nixpkgs/pkgs/development/libraries/webkitgtk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/webkitgtk/default.nix
@@ -43,6 +43,7 @@
 , sqlite
 , enableGtk2Plugins ? false
 , gtk2 ? null
+, enableGLES ? true
 , gst-plugins-base
 , gst-plugins-bad
 , woff2
@@ -61,13 +62,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "webkitgtk";
-  version = "2.28.2";
+  version = "2.28.4";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "https://webkitgtk.org/releases/${pname}-${version}.tar.xz";
-    sha256 = "1g9hik3bprki5s9d7y5288q5irwckbzajr6rnlvjrlnqrwjkblmr";
+    sha256 = "0r4lkk21pny2g4mmsw0ds14m5hhjys1l47gvy59dfgihr7l546c2";
   };
 
   patches = optionals stdenv.isLinux [
@@ -167,7 +168,7 @@ stdenv.mkDerivation rec {
     "-DUSE_ACCELERATE=0"
     "-DUSE_SYSTEM_MALLOC=ON"
   ] ++ optional (!enableGtk2Plugins) "-DENABLE_PLUGIN_PROCESS_GTK2=OFF"
-    ++ optional stdenv.isLinux "-DENABLE_GLES2=ON";
+    ++ optional (stdenv.isLinux && enableGLES) "-DENABLE_GLES2=ON";
 
   postPatch = ''
     patchShebangs .
diff --git a/nixpkgs/pkgs/development/libraries/wiiuse/default.nix b/nixpkgs/pkgs/development/libraries/wiiuse/default.nix
new file mode 100644
index 000000000000..4dcc8a47105e
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/wiiuse/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, bluez
+}:
+stdenv.mkDerivation rec {
+
+  pname = "WiiUse";
+  version = "0.15.5";
+
+  src = fetchFromGitHub {
+    owner = "wiiuse";
+    repo = "wiiuse";
+    rev = "${version}";
+    sha256 = "05gc3s0wxx7ga4g32yyibyxdh46rm9bbslblrc72ynrjxq98sg13";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ (lib.getDev bluez) ];
+
+  cmakeFlags = [ "-DBUILD_EXAMPLE_SDL=NO" ];
+
+  meta = with lib; {
+    description = "Feature complete cross-platform Wii Remote access library";
+    license = licenses.gpl3;
+    homepage = "https://github.com/wiiuse/wiiuse";
+    maintainers = with maintainers; [ shamilton ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/libraries/wlroots/default.nix b/nixpkgs/pkgs/development/libraries/wlroots/default.nix
index 46a1fc45d816..67faad8cd74f 100644
--- a/nixpkgs/pkgs/development/libraries/wlroots/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wlroots/default.nix
@@ -28,12 +28,6 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [ "-Dlogind-provider=systemd" ];
 
-  postInstall = ''
-    # Copy the library to $examples
-    mkdir -p $examples/lib
-    cp -P libwlroots* $examples/lib/
-  '';
-
   postFixup = ''
     # Install ALL example programs to $examples:
     # screencopy dmabuf-capture input-inhibitor layer-shell idle-inhibit idle
diff --git a/nixpkgs/pkgs/development/libraries/wolfssl/default.nix b/nixpkgs/pkgs/development/libraries/wolfssl/default.nix
index 2815520f5179..30fc90ec8c09 100644
--- a/nixpkgs/pkgs/development/libraries/wolfssl/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wolfssl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wolfssl";
-  version = "4.4.0";
+  version = "4.5.0";
 
   src = fetchFromGitHub {
     owner = "wolfSSL";
     repo = "wolfssl";
     rev = "v${version}-stable";
-    sha256 = "1bgkxqgxwa5dvi7fkna64wpcs552f3yxvs6fh6d32v7vg88vpfx9";
+    sha256 = "138ppnwkqkfi7nnqpd0b93dqaph72ma65m9286bz2qzlis1x8r0v";
   };
 
   configureFlags = [ "--enable-all" ];
diff --git a/nixpkgs/pkgs/development/libraries/wxsqlite3/default.nix b/nixpkgs/pkgs/development/libraries/wxsqlite3/default.nix
index 9bea7f5e848b..9d80e5de4497 100644
--- a/nixpkgs/pkgs/development/libraries/wxsqlite3/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wxsqlite3/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wxsqlite3";
-  version = "4.5.1";
+  version = "4.6.0";
 
   src = fetchFromGitHub {
     owner = "utelle";
     repo = "wxsqlite3";
     rev = "v${version}";
-    sha256 = "0090f7r3blks18vifkna4l890fwaya58ajh9qblbw9065zj5hrm3";
+    sha256 = "0snsysfrr5h66mybls8r8k781v732dlfn4jdnmk348jgvny275fj";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/development/libraries/wxwidgets/2.8/default.nix b/nixpkgs/pkgs/development/libraries/wxwidgets/2.8/default.nix
index 98cf0d58479b..deb7d19c0de1 100644
--- a/nixpkgs/pkgs/development/libraries/wxwidgets/2.8/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wxwidgets/2.8/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, gtk2, libXinerama, libSM, libXxf86vm, xorgproto
-, gstreamer, gst-plugins-base, GConf, libX11, cairo
+, libX11, cairo
 , libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , withMesa ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , libGLU ? null, libGL ? null
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
     sha256 = "1l1w4i113csv3bd5r8ybyj0qpxdq83lj6jrc5p7cc10mkwyiagqz";
   };
 
-  buildInputs = [ gtk2 libXinerama libSM libXxf86vm xorgproto gstreamer gst-plugins-base GConf libX11 cairo ]
+  buildInputs = [ gtk2 libXinerama libSM libXxf86vm xorgproto libX11 cairo ]
     ++ optional withMesa libGLU;
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/development/libraries/wxwidgets/2.9/default.nix b/nixpkgs/pkgs/development/libraries/wxwidgets/2.9/default.nix
index 3812c81a5197..5db7cfc26ba9 100644
--- a/nixpkgs/pkgs/development/libraries/wxwidgets/2.9/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wxwidgets/2.9/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, gtk2, libXinerama, libSM, libXxf86vm, xorgproto
-, gstreamer, gst-plugins-base, GConf, setfile
+, setfile
 , libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , withMesa ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , libGLU ? null, libGL ? null
@@ -32,8 +32,7 @@ stdenv.mkDerivation {
   ];
 
   buildInputs =
-    [ gtk2 libXinerama libSM libXxf86vm xorgproto gstreamer
-      gst-plugins-base GConf ]
+    [ gtk2 libXinerama libSM libXxf86vm xorgproto ]
     ++ optional withMesa libGLU
     ++ optionals stdenv.isDarwin [ setfile Carbon Cocoa Kernel QuickTime ];
 
@@ -42,7 +41,7 @@ stdenv.mkDerivation {
   propagatedBuildInputs = optional stdenv.isDarwin AGL;
 
   configureFlags =
-    [ "--enable-gtk2" "--disable-precomp-headers" "--enable-mediactrl"
+    [ "--enable-gtk2" "--disable-precomp-headers"
       (if compat24 then "--enable-compat24" else "--disable-compat24")
       (if compat26 then "--enable-compat26" else "--disable-compat26") ]
     ++ optional unicode "--enable-unicode"
diff --git a/nixpkgs/pkgs/development/libraries/wxwidgets/3.0/default.nix b/nixpkgs/pkgs/development/libraries/wxwidgets/3.0/default.nix
index da29eacdc0e9..df90342a972e 100644
--- a/nixpkgs/pkgs/development/libraries/wxwidgets/3.0/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wxwidgets/3.0/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, fetchurl, pkgconfig
 , libXinerama, libSM, libXxf86vm
-, gtk2, GConf ? null, gtk3
-, xorgproto, gstreamer, gst-plugins-base, setfile
+, gtk2, gtk3
+, xorgproto, gst_all_1, setfile
 , libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , withMesa ? libGLSupported
 , libGLU ? null, libGL ? null
@@ -30,8 +30,8 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    libXinerama libSM libXxf86vm xorgproto gstreamer gst-plugins-base
-  ] ++ optionals withGtk2 [ gtk2 GConf ]
+    libXinerama libSM libXxf86vm xorgproto gst_all_1.gstreamer gst_all_1.gst-plugins-base
+  ] ++ optionals withGtk2 [ gtk2 ]
     ++ optional (!withGtk2) gtk3
     ++ optional withMesa libGLU
     ++ optional withWebKit webkitgtk
diff --git a/nixpkgs/pkgs/development/libraries/wxwidgets/3.1/default.nix b/nixpkgs/pkgs/development/libraries/wxwidgets/3.1/default.nix
index 790968a88f76..44e6fe49b489 100644
--- a/nixpkgs/pkgs/development/libraries/wxwidgets/3.1/default.nix
+++ b/nixpkgs/pkgs/development/libraries/wxwidgets/3.1/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, fetchurl, pkgconfig
 , libXinerama, libSM, libXxf86vm
-, gtk2, GConf ? null, gtk3
-, xorgproto, gstreamer, gst-plugins-base, setfile
+, gtk2, gtk3
+, xorgproto, gst_all_1, setfile
 , libGLSupported ? stdenv.lib.elem stdenv.hostPlatform.system stdenv.lib.platforms.mesaPlatforms
 , withMesa ? libGLSupported, libGLU ? null, libGL ? null
 , compat28 ? false, compat30 ? true, unicode ? true
@@ -18,19 +18,19 @@ assert withWebKit -> webkitgtk != null;
 assert assertMsg (withGtk2 -> withWebKit == false) "wxGTK31: You cannot enable withWebKit when using withGtk2.";
 
 stdenv.mkDerivation rec {
-  version = "3.1.2";
+  version = "3.1.3";
   pname = "wxwidgets";
 
   src = fetchFromGitHub {
     owner = "wxWidgets";
     repo = "wxWidgets";
     rev = "v${version}";
-    sha256 = "0gfdhb7xq5vzasm7s1di39nchv42zsp0dmn4v6knzb7mgsb107wb";
+    sha256 = "022mby78q7n0bhd4mph04hz93c9qamnvzv3h1s26r839k28760f4";
   };
 
   buildInputs = [
-    libXinerama libSM libXxf86vm xorgproto gstreamer gst-plugins-base
-  ] ++ optionals withGtk2 [ gtk2 GConf ]
+    libXinerama libSM libXxf86vm xorgproto gst_all_1.gstreamer gst_all_1.gst-plugins-base
+  ] ++ optionals withGtk2 [ gtk2 ]
     ++ optional (!withGtk2) gtk3
     ++ optional withMesa libGLU
     ++ optional withWebKit webkitgtk
diff --git a/nixpkgs/pkgs/development/libraries/x265/default.nix b/nixpkgs/pkgs/development/libraries/x265/default.nix
index cfa19e5419f8..48ed6cf46802 100644
--- a/nixpkgs/pkgs/development/libraries/x265/default.nix
+++ b/nixpkgs/pkgs/development/libraries/x265/default.nix
@@ -1,7 +1,6 @@
 { stdenv, fetchurl, fetchpatch, cmake, nasm, numactl
 , numaSupport ? stdenv.hostPlatform.isLinux && (stdenv.hostPlatform.isx86 || stdenv.hostPlatform.isAarch64)  # Enabled by default on NUMA platforms
 , debugSupport ? false # Run-time sanity checks (debugging)
-, highbitdepthSupport ? false # false=8bits per channel, true=10/12bits per channel
 , werrorSupport ? false # Warnings as errors
 , ppaSupport ? false # PPA profiling instrumentation
 , vtuneSupport ? false # Vtune profiling instrumentation
@@ -13,10 +12,17 @@
 let
   mkFlag = optSet: flag: if optSet then "-D${flag}=ON" else "-D${flag}=OFF";
   inherit (stdenv) is64bit;
-in
 
-stdenv.mkDerivation rec {
-  pname = "x265";
+  cmakeFlagsAll = [
+    "-DSTATIC_LINK_CRT=OFF"
+    (mkFlag debugSupport "CHECKED_BUILD")
+    (mkFlag ppaSupport "ENABLE_PPA")
+    (mkFlag vtuneSupport "ENABLE_VTUNE")
+    (mkFlag custatsSupport "DETAILED_CU_STATS")
+    (mkFlag unittestsSupport "ENABLE_TESTS")
+    (mkFlag werrorSupport "WARNINGS_AS_ERRORS")
+  ];
+
   version = "3.2";
 
   src = fetchurl {
@@ -27,8 +33,6 @@ stdenv.mkDerivation rec {
     sha256 = "0fqkhfhr22gzavxn60cpnj3agwdf5afivszxf3haj5k1sny7jk9n";
   };
 
-  enableParallelBuilding = true;
-
   patches = [
     # Fix build on ARM (#406)
     (fetchpatch {
@@ -37,22 +41,56 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  buildLib = has12Bit: stdenv.mkDerivation rec {
+    name = "libx265-${if has12Bit then "12" else "10"}-${version}";
+    inherit src patches;
+    enableParallelBuilding = true;
+
+    postPatch = ''
+      sed -i 's/unknown/${version}/g' source/cmake/version.cmake
+    '';
+
+    cmakeLibFlags = [
+      "-DENABLE_CLI=OFF"
+      "-DENABLE_SHARED=OFF"
+      "-DENABLE_HDR10_PLUS=ON"
+      "-DEXPORT_C_API=OFF"
+      "-DHIGH_BIT_DEPTH=ON"
+    ];
+    cmakeFlags = [(mkFlag has12Bit "MAIN12")] ++ cmakeLibFlags ++ cmakeFlagsAll;
+
+    preConfigure = ''
+      cd source
+    '';
+
+    nativeBuildInputs = [cmake nasm] ++ stdenv.lib.optional numaSupport numactl;
+  };
+
+  libx265-10 = buildLib false;
+  libx265-12 = buildLib true;
+in
+
+stdenv.mkDerivation rec {
+  pname = "x265";
+  inherit version src patches;
+
+  enableParallelBuilding = true;
+
   postPatch = ''
     sed -i 's/unknown/${version}/g' source/cmake/version.cmake
   '';
 
   cmakeFlags = [
-    (mkFlag debugSupport "CHECKED_BUILD")
-    "-DSTATIC_LINK_CRT=OFF"
-    (mkFlag (highbitdepthSupport && is64bit) "HIGH_BIT_DEPTH")
-    (mkFlag werrorSupport "WARNINGS_AS_ERRORS")
-    (mkFlag ppaSupport "ENABLE_PPA")
-    (mkFlag vtuneSupport "ENABLE_VTUNE")
-    (mkFlag custatsSupport "DETAILED_CU_STATS")
     "-DENABLE_SHARED=ON"
+    "-DHIGH_BIT_DEPTH=OFF"
+    "-DENABLE_HDR10_PLUS=OFF"
+  ] ++ stdenv.lib.optionals is64bit [
+    "-DEXTRA_LIB=${libx265-10}/lib/libx265.a;${libx265-12}/lib/libx265.a"
+    "-DLINKED_10BIT=ON"
+    "-DLINKED_12BIT=ON"
+  ] ++ [
     (mkFlag cliSupport "ENABLE_CLI")
-    (mkFlag unittestsSupport "ENABLE_TESTS")
-  ];
+  ] ++ cmakeFlagsAll;
 
   preConfigure = ''
     cd source
diff --git a/nixpkgs/pkgs/development/libraries/xapian/default.nix b/nixpkgs/pkgs/development/libraries/xapian/default.nix
index ef50bf31a367..195aea5c2f18 100644
--- a/nixpkgs/pkgs/development/libraries/xapian/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xapian/default.nix
@@ -18,6 +18,7 @@ let
     nativeBuildInputs = [ autoreconfHook ];
 
     doCheck = true;
+    AUTOMATED_TESTING = true; # https://trac.xapian.org/changeset/8be35f5e1/git
 
     patches = stdenv.lib.optionals stdenv.isDarwin [ ./skip-flaky-darwin-test.patch ];
 
@@ -37,5 +38,5 @@ let
     };
   };
 in {
-  xapian_1_4 = generic "1.4.15" "1sjhz6vgql801rdgl6vrsjj0vy1mwlkcxjx6nr7h27m031cyjs5i";
+  xapian_1_4 = generic "1.4.17" "0bjpaavdckl4viznr8gbq476fvg648sj4rks2vacmc51vrb8bsxm";
 }
diff --git a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
index 994c2864e7f1..90265d61c837 100644
--- a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal-gtk/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "xdg-desktop-portal-gtk";
-  version = "1.6.0";
+  version = "1.7.1";
 
   src = fetchFromGitHub {
     owner = "flatpak";
     repo = pname;
     rev = version;
-    sha256 = "1gpbjkfkrpk96krc1zbccrq7sih282mg303ifxaaxbnj6d8drm5h";
+    sha256 = "183iha9dxmvprn99ymgz17jx1lyn1fj5jyj6ghxl716zn9mxmird";
   };
 
   nativeBuildInputs = [
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
     gsettings-desktop-schemas
     gtk3
     gnome3.gnome-desktop
+    gnome3.gnome-settings-daemon # schemas needed for settings api (fonts, etc)
   ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix
index 02c039b8eaba..b06edc632730 100644
--- a/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xdg-desktop-portal/default.nix
@@ -6,7 +6,7 @@
 , pkgconfig
 , libxml2
 , glib
-, pipewire_0_2
+, pipewire
 , fontconfig
 , flatpak
 , gsettings-desktop-schemas
@@ -21,7 +21,7 @@
 
 stdenv.mkDerivation rec {
   pname = "xdg-desktop-portal";
-  version = "1.6.0";
+  version = "1.7.2";
 
   outputs = [ "out" "installedTests" ];
 
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     owner = "flatpak";
     repo = pname;
     rev = version;
-    sha256 = "0fbsfpilwbv7j6cimsmmz6g0r96bw0ziwyk9z4zg2rd1mfkmmp9a";
+    sha256 = "0rkwpsmbn3d3spkzc2zsd50l2r8pp4la390zcpsawaav8w7ql7xm";
   };
 
   patches = [
@@ -49,7 +49,7 @@ stdenv.mkDerivation rec {
 
   buildInputs = [
     glib
-    pipewire_0_2
+    pipewire
     fontconfig
     flatpak
     acl
@@ -61,10 +61,6 @@ stdenv.mkDerivation rec {
     json-glib
   ];
 
-  # Seems to get stuck after "PASS: test-portals 39 /portal/inhibit/monitor"
-  # TODO: investigate!
-  doCheck = false;
-
   configureFlags = [
     "--enable-installed-tests"
   ];
diff --git a/nixpkgs/pkgs/development/libraries/xmlsec/default.nix b/nixpkgs/pkgs/development/libraries/xmlsec/default.nix
index 1a18dfce85d5..a1e6afd48b93 100644
--- a/nixpkgs/pkgs/development/libraries/xmlsec/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xmlsec/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchurl, libxml2, gnutls, libxslt, pkgconfig, libgcrypt, libtool
-, openssl, nss, makeWrapper }:
+, openssl, nss, lib, runCommandCC, writeText }:
 
+lib.fix (self:
 let
   version = "1.2.28";
 in
@@ -13,9 +14,16 @@ stdenv.mkDerivation {
     sha256 = "1m12caglhyx08g8lh2sl3nkldlpryzdx2d572q73y3m33s0w9vhk";
   };
 
+  patches = [
+    ./lt_dladdsearchdir.patch
+  ];
+  postPatch = ''
+    substituteAllInPlace src/dl.c
+  '';
+
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ makeWrapper pkgconfig ];
+  nativeBuildInputs = [ pkgconfig ];
 
   buildInputs = [ libxml2 gnutls libxslt libgcrypt libtool openssl nss ];
 
@@ -34,8 +42,26 @@ stdenv.mkDerivation {
     moveToOutput "lib/xmlsec1Conf.sh" "$dev"
   '';
 
-  postFixup = ''
-    wrapProgram "$out/bin/xmlsec1" --prefix LD_LIBRARY_PATH ":" "$out/lib"
+  passthru.tests.libxmlsec1-crypto = runCommandCC "libxmlsec1-crypto-test"
+    {
+      nativeBuildInputs = [ pkgconfig ];
+      buildInputs = [ self libxml2 libxslt libtool ];
+    } ''
+    $CC $(pkg-config --cflags --libs xmlsec1) -o crypto-test ${writeText "crypto-test.c" ''
+      #include <xmlsec/xmlsec.h>
+      #include <xmlsec/crypto.h>
+
+      int main(int argc, char **argv) {
+        return xmlSecInit() ||
+          xmlSecCryptoDLLoadLibrary(argc > 1 ? argv[1] : 0) ||
+          xmlSecCryptoInit();
+      }
+    ''}
+
+    for crypto in "" gcrypt gnutls nss openssl; do
+      ./crypto-test $crypto
+    done
+    touch $out
   '';
 
   meta = {
@@ -47,3 +73,4 @@ stdenv.mkDerivation {
     updateWalker = true;
   };
 }
+)
diff --git a/nixpkgs/pkgs/development/libraries/xmlsec/lt_dladdsearchdir.patch b/nixpkgs/pkgs/development/libraries/xmlsec/lt_dladdsearchdir.patch
new file mode 100644
index 000000000000..17dedb0d6c81
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/xmlsec/lt_dladdsearchdir.patch
@@ -0,0 +1,16 @@
+diff --git a/src/dl.c b/src/dl.c
+index b13f9d46..d761855b 100644
+--- a/src/dl.c
++++ b/src/dl.c
+@@ -346,6 +346,11 @@ xmlSecCryptoDLInit(void) {
+         xmlSecIOError("lt_dlinit", NULL, NULL);
+         return(-1);
+     }
++    ret = lt_dladdsearchdir("@out@/lib");
++    if(ret != 0) {
++      xmlSecIOError("lt_dladdsearchdir", NULL, NULL);
++      return(-1);
++    }
+ #endif /* XMLSEC_DL_LIBLTDL */
+ 
+     return(0);
diff --git a/nixpkgs/pkgs/development/libraries/xxHash/default.nix b/nixpkgs/pkgs/development/libraries/xxHash/default.nix
index 9d2ed44cb4bb..e572e8bb31ff 100644
--- a/nixpkgs/pkgs/development/libraries/xxHash/default.nix
+++ b/nixpkgs/pkgs/development/libraries/xxHash/default.nix
@@ -2,18 +2,18 @@
 
 stdenv.mkDerivation rec {
   pname = "xxHash";
-  version = "0.7.3";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "Cyan4973";
     repo = "xxHash";
     rev = "v${version}";
-    sha256 = "0bin0jch6lbzl4f8y052a7azfgq2n7iwqihzgqmcccv5vq4vcx5a";
+    sha256 = "0hpbzdd6kfki5f61g103vp7pfczqkdj0js63avl0ss552jfb8h96";
   };
 
   outputs = [ "out" "dev" ];
 
-  makeFlags = [ "PREFIX=$(out)" "INCLUDEDIR=$(dev)/include" ];
+  makeFlags = [ "PREFIX=$(dev)" "EXEC_PREFIX=$(out)" ];
 
   meta = with stdenv.lib; {
     description = "Extremely fast hash algorithm";
diff --git a/nixpkgs/pkgs/development/libraries/yder/default.nix b/nixpkgs/pkgs/development/libraries/yder/default.nix
index 11eda01a76a8..df36f48648d4 100644
--- a/nixpkgs/pkgs/development/libraries/yder/default.nix
+++ b/nixpkgs/pkgs/development/libraries/yder/default.nix
@@ -4,13 +4,13 @@
 assert withSystemd -> systemd != null;
 stdenv.mkDerivation rec {
   pname = "yder";
-  version = "1.4.10";
+  version = "1.4.12";
 
   src = fetchFromGitHub {
     owner = "babelouest";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1m1aw4im1vvddkl7mknq0h0nj0x2zpql3r17lxhw4mmib05zbdgj";
+    sha256 = "1cmla7rpwvsj1b3jhp9q8y3ni5n8rsqxib87yhh07b7xnlhy0gcj";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/libraries/zeromq/3.x.nix b/nixpkgs/pkgs/development/libraries/zeromq/3.x.nix
deleted file mode 100644
index 29981f358a57..000000000000
--- a/nixpkgs/pkgs/development/libraries/zeromq/3.x.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, fetchurl, libuuid }:
-
-stdenv.mkDerivation rec {
-  name = "zeromq-3.2.5";
-
-  src = fetchurl {
-    url = "http://download.zeromq.org/${name}.tar.gz";
-    sha256 = "0911r7q4i1x9gnfinj39vx08fnz59mf05vl75zdkws36lib3wr89";
-  };
-
-  buildInputs = [ libuuid ];
-
-  doCheck = false; # fails all the tests (ctest)
-
-  meta = with stdenv.lib; {
-    branch = "3";
-    homepage = "http://www.zeromq.org";
-    description = "The Intelligent Transport Layer";
-    license = licenses.gpl3;
-    platforms = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/development/libraries/zimg/default.nix b/nixpkgs/pkgs/development/libraries/zimg/default.nix
index f5913137e1c2..afb13a03cbbf 100644
--- a/nixpkgs/pkgs/development/libraries/zimg/default.nix
+++ b/nixpkgs/pkgs/development/libraries/zimg/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zimg";
-  version = "2.9.3";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     owner  = "sekrit-twc";
     repo   = "zimg";
     rev    = "release-${version}";
-    sha256 = "1dqyrq3p8bkgvj4ci50ac342hjnhyz6xxvhiwp7wpi3v3nbj7s02";
+    sha256 = "1mpns443ifbkbaxsw6yy8z01l7815259pxzd7s006npr0dxnc8ng";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/development/libraries/zlog/default.nix b/nixpkgs/pkgs/development/libraries/zlog/default.nix
index 4788613a3dcf..f0ca99b76679 100644
--- a/nixpkgs/pkgs/development/libraries/zlog/default.nix
+++ b/nixpkgs/pkgs/development/libraries/zlog/default.nix
@@ -1,33 +1,23 @@
-{ stdenv, fetchzip }:
+{ stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  version = "1.2.14";
+  version = "1.2.15";
   pname = "zlog";
 
-  src = fetchzip {
-    name = "${pname}-${version}-src";
-    url = "https://github.com/HardySimpson/zlog/archive/${version}.tar.gz";
-    sha256 = "1qcrfmh2vbarkx7ij3gwk174qmgmhm2j336bfaakln1ixd9lkxa5";
+  src = fetchFromGitHub {
+    owner = "HardySimpson";
+    repo = pname;
+    rev = version;
+    sha256 = "10hzifgpml7jm43y6v8c8q0cr9ziyx9qxznafxyw6glhnlqnb7pb";
   };
 
-  configurePhase = ''
-    sed -i 's;-Werror;;' src/makefile
-  '';
-
-  buildPhase = ''
-    mkdir -p $out
-    make PREFIX=$out
-  '';
-
-  installPhase = ''
-    make PREFIX=$out install
-  '';
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   meta = with stdenv.lib; {
     description= "Reliable, high-performance, thread safe, flexible, clear-model, pure C logging library";
-    homepage = "http://hardysimpson.github.com/zlog";
+    homepage = "https://hardysimpson.github.io/zlog/";
     license = licenses.lgpl21;
-    platforms = platforms.linux; # cannot test on something else
+    platforms = platforms.unix;
     maintainers = [ maintainers.matthiasbeyer ];
   };
 
diff --git a/nixpkgs/pkgs/development/libraries/zziplib/default.nix b/nixpkgs/pkgs/development/libraries/zziplib/default.nix
index 670a911cb6eb..228dfdcf77a4 100644
--- a/nixpkgs/pkgs/development/libraries/zziplib/default.nix
+++ b/nixpkgs/pkgs/development/libraries/zziplib/default.nix
@@ -1,7 +1,6 @@
 { stdenv
-, cmake
+, perl
 , pkg-config
-, ninja
 , fetchFromGitHub
 , fetchpatch
 , zip
@@ -23,12 +22,6 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
-    # Fix ninja parsing
-    (fetchpatch {
-      url = "https://github.com/gdraheim/zziplib/commit/75e22f3c365b62acbad8d8645d5404242800dfba.patch";
-      sha256 = "IB0am3K0x4+Ug1CKvowTtkS8JD6zHJJ247A7guJOw80=";
-    })
-
     # Install man pages
     (fetchpatch {
       url = "https://github.com/gdraheim/zziplib/commit/5583ccc7a247ee27556ede344e93d3ac1dc72e9b.patch";
@@ -44,9 +37,8 @@ stdenv.mkDerivation rec {
   ];
 
   nativeBuildInputs = [
-    cmake
+    perl
     pkg-config
-    ninja # make fails, unable to find test2.zip
     zip
     python3
     xmlto
@@ -60,10 +52,6 @@ stdenv.mkDerivation rec {
     unzip
   ];
 
-  cmakeFlags = [
-    "-DCMAKE_SKIP_BUILD_RPATH=OFF" # for tests
-  ];
-
   # tests are broken (https://github.com/gdraheim/zziplib/issues/20),
   # and test/zziptests.py requires network access
   # (https://github.com/gdraheim/zziplib/issues/24)
diff --git a/nixpkgs/pkgs/development/lisp-modules/asdf/3.1.nix b/nixpkgs/pkgs/development/lisp-modules/asdf/3.1.nix
index 0e5c6a400872..445295830b25 100644
--- a/nixpkgs/pkgs/development/lisp-modules/asdf/3.1.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/asdf/3.1.nix
@@ -35,6 +35,6 @@ stdenv.mkDerivation {
     description = ''Standard software-system definition library for Common Lisp'';
     license = stdenv.lib.licenses.mit ;
     maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/lisp-modules/asdf/default.nix b/nixpkgs/pkgs/development/lisp-modules/asdf/default.nix
index 25d179fe9689..2b1b846d319e 100644
--- a/nixpkgs/pkgs/development/lisp-modules/asdf/default.nix
+++ b/nixpkgs/pkgs/development/lisp-modules/asdf/default.nix
@@ -36,6 +36,6 @@ stdenv.mkDerivation {
     description = ''Standard software-system definition library for Common Lisp'';
     license = stdenv.lib.licenses.mit ;
     maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = stdenv.lib.platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/lisp-modules/iterate.darcs-context b/nixpkgs/pkgs/development/lisp-modules/iterate.darcs-context
deleted file mode 100644
index 533faaec8e77..000000000000
--- a/nixpkgs/pkgs/development/lisp-modules/iterate.darcs-context
+++ /dev/null
@@ -1,116 +0,0 @@
-
-Context:
-
-[make the #L reader macro standard conformant by not assuming anything about the representation of quasiquoted forms.
-Douglas Katzman <dougk@google.com>**20140423044759
- Ignore-this: ccdda48acdf7b2033ac0f51ed48582fc
-] 
-
-[fix for test for.previous.var-with-type-declaration
-Jan Moringen <jmoringe@techfak.uni-bielefeld.de>**20140129144214
- Ignore-this: a617d046d90816827d370d3bbf38d2df
-] 
-
-[housekeeping
-attila.lendvai@gmail.com**20140129143709
- Ignore-this: a05c5fbace98b282a464b829711e064f
-] 
-
-[added test for.previous.var-with-type-declaration
-attila.lendvai@gmail.com**20140129143435
- Ignore-this: 6e9f419e118724c660d519c3fa9f8dd2
-] 
-
-[added a restart to remove conflicting clauses
-Russ Tyndall <russ@acceleration.net>**20120508185107
- Ignore-this: b7c4c6eec565dd435b8e9e5403fcb0a8
-] 
-
-[added new failing test bug/collect-at-beginning, as reported by Paul Sexton
-attila.lendvai@gmail.com**20121218144220
- Ignore-this: d55e7c22deeaf89b90d03d7ef01179d6
-] 
-
-[Fix: If both AT BEGINNING and RESULT-TYPE are specified, RESULT-TYPE was ignored.
-attila.lendvai@gmail.com**20120509225435
- Ignore-this: 20cf116df585ffedfbe63ce7a4092249
- 
- Patched by Ilya Perminov
-] 
-
-[fix package nickname in case sensitive mode
-attila.lendvai@gmail.com**20110927152614
- Ignore-this: fb1ba1d418b4a20a0cd4e697d943a0e6
-] 
-
-[move list-of-forms? out of the #L eval-when, because it's also used by other parts of iterate
-attila.lendvai@gmail.com**20110119161133
- Ignore-this: 97545988c4a3eab02434f222120b1a1
-] 
-
-[added bug/walk.2
-attila.lendvai@gmail.com**20100603093335
- Ignore-this: faa1bd48d0450e76652552bb47bcff02
-] 
-
-[first-time-p bugfix: return-code :body must return list of forms
-Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070525141533
- if-first-time not declared obsolete
- documentation strings for (iter:display-iterate-clauses) complete
-] 
-
-[fix defmacro-driver example in manual
-Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070525081443] 
-
-[Use @:, @. and two spaces between sentences
-Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070525080932
- Move section on predicate (first-time-p) outside of gathering clauses
- Various typos and some clarifications
-] 
-
-[document *list-end-test* removal in FOR...IN+ON
-Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070525074338] 
-
-[Renamed back to sharpL-reader
-attila.lendvai@gmail.com**20070506100744] 
-
-[Fix sharpL reader, add :execute to the eval-when to make (load "iterate" :compiling t) work on clisp
-attila.lendvai@gmail.com**20070506100704] 
-
-[Convert manual to Texinfo.
-Luis Oliveira <loliveira@common-lisp.net>**20060713142915] 
-
-[make FOR...IN/ON with dotted lists work like LOOP
-hoehle@users.sourceforge.net**20070503130604
- More precisely, FOR ON accepts dotted lists, FOR IN errors out.
- As a result, iterate::*list-end-test* was eliminated.
- Behaviour is now constant and does not depend on some special variable.
- Note: Documentation not yet updated, pending move to Texinfo.
-] 
-
-[walk-tagbody: more testcases
-Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070503095309] 
-
-[walk-tagbody must not macroexpand symbol/tags among its statements
-Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070404124132] 
-
-[add ELSE test cases, remove GNU Arch tag
-Joerg-Cyril Hoehle <hoehle@users.sourceforge.net>**20070503093008] 
-
-[Clean up #L stuff, do not leave #L enabled after loading iterate
-attila.lendvai@gmail.com**20070426153431] 
-
-[Set *list-end-test* to 'endp instead of 'atom, so (iter (for foo :in something-non-list)) fails instead of silently exists
-attila.lendvai@gmail.com**20070215151652] 
-
-[wrap code in progns, to avoid possiblity of multiple nil tags in tagbody
- Henrik Hjelte <henrik@evahjelte.com>**20061025145324] 
-
-[test to detect bug, more than one nil tag in tagbody
- Henrik Hjelte <henrik@evahjelte.com>**20061025145128] 
-
-[Added release.sh
-attila.lendvai@gmail.com**20060506155953] 
-
-[TAG 1.4.3
-attila.lendvai@gmail.com**20060505134701] 
diff --git a/nixpkgs/pkgs/development/lua-modules/generated-packages.nix b/nixpkgs/pkgs/development/lua-modules/generated-packages.nix
index 7eae27d85c6f..f9c91c3a8a6a 100644
--- a/nixpkgs/pkgs/development/lua-modules/generated-packages.nix
+++ b/nixpkgs/pkgs/development/lua-modules/generated-packages.nix
@@ -155,9 +155,9 @@ cassowary = buildLuarocksPackage {
   propagatedBuildInputs = [ lua penlight ];
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/simoncozens/cassowary.lua";
-    description = "The cassowary constraint solver.";
-    maintainers = with maintainers; [ marsam ];
+    homepage = "https://github.com/sile-typesetter/cassowary.lua";
+    description = "The cassowary constraint solver";
+    maintainers = with maintainers; [ marsam alerque ];
     license.fullName = "Apache 2";
   };
 };
@@ -691,6 +691,74 @@ lua-messagepack = buildLuarocksPackage {
     license.fullName = "MIT/X11";
   };
 };
+lua-resty-http = buildLuarocksPackage {
+  pname = "lua-resty-http";
+  version = "0.15-0";
+
+  src = fetchurl {
+    url    = mirror://luarocks/lua-resty-http-0.15-0.src.rock;
+    sha256 = "1121abcz9y8kis2wdg7i1m75y8lplk3k49v02y804bywbl2km4fz";
+  };
+  disabled = (luaOlder "5.1");
+  propagatedBuildInputs = [ lua ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/ledgetech/lua-resty-http";
+    description = "Lua HTTP client cosocket driver for OpenResty / ngx_lua.";
+    license.fullName = "2-clause BSD";
+  };
+};
+lua-resty-jwt = buildLuarocksPackage {
+  pname = "lua-resty-jwt";
+  version = "0.2.2-0";
+
+  src = fetchurl {
+    url    = mirror://luarocks/lua-resty-jwt-0.2.2-0.src.rock;
+    sha256 = "1a4wwiwcjwgr59g2940a2h0i6n1c7xjy2px5bls3x5br4shwhswa";
+  };
+  disabled = (luaOlder "5.1");
+  propagatedBuildInputs = [ lua ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/cdbattags/lua-resty-jwt";
+    description = "JWT for ngx_lua and LuaJIT.";
+    license.fullName = "Apache License Version 2";
+  };
+};
+lua-resty-openidc = buildLuarocksPackage {
+  pname = "lua-resty-openidc";
+  version = "1.7.2-1";
+
+  src = fetchurl {
+    url    = mirror://luarocks/lua-resty-openidc-1.7.2-1.src.rock;
+    sha256 = "01mya69r4fncfrpqh5pn2acg18q3slds8zm976qgkjby0pzwzzw7";
+  };
+  disabled = (luaOlder "5.1");
+  propagatedBuildInputs = [ lua lua-resty-http lua-resty-session lua-resty-jwt ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/zmartzone/lua-resty-openidc";
+    description = "A library for NGINX implementing the OpenID Connect Relying Party (RP) and the OAuth 2.0 Resource Server (RS) functionality";
+    license.fullName = "Apache 2.0";
+  };
+};
+lua-resty-session = buildLuarocksPackage {
+  pname = "lua-resty-session";
+  version = "3.6-1";
+
+  src = fetchurl {
+    url    = mirror://luarocks/lua-resty-session-3.6-1.src.rock;
+    sha256 = "1r5626x247d1vi5bzqfk11bl4d5c39h1iqj6mgndnwpnz43cag5i";
+  };
+  disabled = (luaOlder "5.1");
+  propagatedBuildInputs = [ lua ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/bungle/lua-resty-session";
+    description = "Session Library for OpenResty – Flexible and Secure";
+    license.fullName = "BSD";
+  };
+};
 lua-term = buildLuarocksPackage {
   pname = "lua-term";
   version = "0.7-1";
@@ -1376,17 +1444,18 @@ nvim-client = buildLuarocksPackage {
 };
 penlight = buildLuarocksPackage {
   pname = "penlight";
-  version = "1.7.0-1";
+  version = "1.8.0-1";
 
   src = fetchurl {
-    url    = "mirror://luarocks/penlight-1.7.0-1.src.rock";
-    sha256 = "0rr56vc33b2knr5qmfdjrb1wk98lyp3zmlyzz6m15v2s1s5yxgah";
+    url    = "mirror://luarocks/penlight-1.8.0-1.src.rock";
+    sha256 = "05x00dgsa79wzq187ww6i8j0s74nh2c852awni7xfshxgihwhc42";
   };
   propagatedBuildInputs = [ luafilesystem ];
 
   meta = with stdenv.lib; {
     homepage = "http://tieske.github.io/Penlight";
     description = "Lua utility libraries loosely based on the Python standard libraries";
+    maintainers = with maintainers; [ alerque ];
     license.fullName = "MIT/X11";
   };
 };
@@ -1407,6 +1476,23 @@ rapidjson = buildLuarocksPackage {
     license.fullName = "MIT";
   };
 };
+readline = buildLuarocksPackage {
+  pname = "readline";
+  version = "2.6-0";
+
+  src = fetchurl {
+    url    = mirror://luarocks/readline-2.6-0.src.rock;
+    sha256 = "1fvz7nqvkdazp30wn5n62n8i97qrfgznbykdpf8cnflqfpd1shms";
+  };
+  disabled = (luaOlder "5.1") || (luaAtLeast "5.4");
+  propagatedBuildInputs = [ lua luaposix ];
+
+  meta = with stdenv.lib; {
+    homepage = "http://www.pjb.com.au/comp/lua/readline.html";
+    description = "Interface to the readline library";
+    license.fullName = "MIT/X11";
+  };
+};
 say = buildLuarocksPackage {
   pname = "say";
   version = "1.3-1";
@@ -1482,24 +1568,6 @@ stdlib = buildLuarocksPackage {
     license.fullName = "MIT/X11";
   };
 };
-pulseaudio = buildLuarocksPackage {
-  pname = "pulseaudio";
-  version = "0.2-1";
-
-  src = fetchurl {
-    url    = "mirror://luarocks/pulseaudio-0.2-1.src.rock";
-    sha256 = "06w8fmwddrpm02yam818yi30gghw4ckb18zljjncy3x0zfijyhz7";
-  };
-  disabled = (luaOlder "5.1");
-  propagatedBuildInputs = [ lua ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/doronbehar/lua-pulseaudio";
-    description = "Bindings to libpulse";
-    maintainers = with maintainers; [ doronbehar ];
-    license.fullName = "Apache v2.0";
-  };
-};
 vstruct = buildLuarocksPackage {
   pname = "vstruct";
   version = "2.0.2-1";
diff --git a/nixpkgs/pkgs/development/lua-modules/luaexpat.patch b/nixpkgs/pkgs/development/lua-modules/luaexpat.patch
new file mode 100644
index 000000000000..3dd609108426
--- /dev/null
+++ b/nixpkgs/pkgs/development/lua-modules/luaexpat.patch
@@ -0,0 +1,36 @@
+diff --git a/src/lxplib.c b/src/lxplib.c
+index 1c972db..5712611 100644
+--- a/src/lxplib.c
++++ b/src/lxplib.c
+@@ -590,7 +590,7 @@ static void set_info (lua_State *L) {
+ /*
+ ** Adapted from Lua 5.2.0
+ */
+-static void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup) {
++static void compat_luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup) {
+   luaL_checkstack(L, nup, "too many upvalues");
+   for (; l->name != NULL; l++) {  /* fill the table with given functions */
+     int i;
+@@ -602,6 +602,8 @@ static void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup) {
+   }
+   lua_pop(L, nup);  /* remove upvalues */
+ }
++#else
++#define compat_luaL_setfuncs(L, reg, nup) luaL_setfuncs(L, reg, nup)
+ #endif
+ 
+ 
+@@ -612,11 +614,11 @@ int luaopen_lxp (lua_State *L) {
+ 	lua_pushvalue(L, -2);
+ 	lua_rawset(L, -3);
+ 
+-	luaL_setfuncs (L, lxp_meths, 0);
++	compat_luaL_setfuncs (L, lxp_meths, 0);
+ 	lua_pop (L, 1); /* remove metatable */
+ 
+ 	lua_newtable (L);
+-	luaL_setfuncs (L, lxp_funcs, 0);
++	compat_luaL_setfuncs (L, lxp_funcs, 0);
+ 	set_info (L);
+ 	return 1;
+ }
diff --git a/nixpkgs/pkgs/development/lua-modules/overrides.nix b/nixpkgs/pkgs/development/lua-modules/overrides.nix
index 94edbd0737b7..6416d59a71e2 100644
--- a/nixpkgs/pkgs/development/lua-modules/overrides.nix
+++ b/nixpkgs/pkgs/development/lua-modules/overrides.nix
@@ -204,6 +204,9 @@ with super;
     externalDeps = [
       { name = "EXPAT"; dep = pkgs.expat; }
     ];
+    patches = [
+      ./luaexpat.patch
+    ];
   });
 
   # TODO Somehow automatically amend buildInputs for things that need luaffi
@@ -328,12 +331,20 @@ with super;
     '';
   });
 
-  pulseaudio = super.pulseaudio.override({
-    buildInputs = [
-      pkgs.libpulseaudio
-    ];
-    nativeBuildInputs = [
-      pkgs.pulseaudio pkgs.pkgconfig
-    ];
+  readline = (super.readline.override ({
+    unpackCmd = ''
+      unzip "$curSrc"
+      tar xf *.tar.gz
+    '';
+    propagatedBuildInputs = super.readline.propagatedBuildInputs ++ [ pkgs.readline ];
+    extraVariables = rec {
+      READLINE_INCDIR = "${pkgs.readline.dev}/include";
+      HISTORY_INCDIR = READLINE_INCDIR;
+    };
+  })).overrideAttrs (old: {
+    # Without this, source root is wrongly set to ./readline-2.6/doc
+    setSourceRoot = ''
+      sourceRoot=./readline-2.6
+    '';
   });
 }
diff --git a/nixpkgs/pkgs/development/misc/h3/default.nix b/nixpkgs/pkgs/development/misc/h3/default.nix
index 2b82cc2c0ae5..32f65c0925c3 100644
--- a/nixpkgs/pkgs/development/misc/h3/default.nix
+++ b/nixpkgs/pkgs/development/misc/h3/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "h3";
-  version = "3.6.3";
+  version = "3.6.4";
 
   src = fetchFromGitHub {
     owner = "uber";
     repo = "h3";
     rev = "v${version}";
-    sha256 = "1zgq496m2pk2c1l0r1di0p39nxwza00kxzqa971qd4xgbrvd4w55";
+    sha256 = "1a4scs5n9srq6sjkz8d60ffzpc6aadkxmk1i3hdj081j0jzsrpf7";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/servers/hasura/ci-info.nix b/nixpkgs/pkgs/development/misc/haskell/hasura/ci-info/default.nix
index 53c85a2e5ba1..53c85a2e5ba1 100644
--- a/nixpkgs/pkgs/servers/hasura/ci-info.nix
+++ b/nixpkgs/pkgs/development/misc/haskell/hasura/ci-info/default.nix
diff --git a/nixpkgs/pkgs/servers/hasura/graphql-engine.nix b/nixpkgs/pkgs/development/misc/haskell/hasura/graphql-engine/default.nix
index 05ba895be080..0bd68afae4b8 100644
--- a/nixpkgs/pkgs/servers/hasura/graphql-engine.nix
+++ b/nixpkgs/pkgs/development/misc/haskell/hasura/graphql-engine/default.nix
@@ -17,18 +17,18 @@
 , text-builder, text-conversions, th-lift-instances, these, time
 , transformers, transformers-base, unix, unordered-containers
 , uri-encode, uuid, vector, wai, wai-websockets, warp, websockets
-, wreq, x509, yaml, zlib
+, wreq, x509, yaml, zlib, witherable, semialign, validation, cron
 }:
 mkDerivation {
   pname = "graphql-engine";
   version = "1.0.0";
   src = fetchgit {
     url = "https://github.com/hasura/graphql-engine.git";
-    sha256 = "0hg44zl3gqa8lq7kggwgmgbsgdc7zrv5cxs507vilg11xklsbz4l";
-    rev = "27b0b59361cebecd074bd59123f602e7b013bac1";
+    sha256 = "sha256-tNKoi3dtoXj0nn4qBgLBroo7SgX7SdVaHtBqjs1S3hQ=";
+    rev = "1e3eb035d3c915032ba23e502bcb0132b4d54202";
     fetchSubmodules = true;
   };
-  postUnpack = "sourceRoot+=/server; echo source root reset to $sourceRoot";
+ postUnpack = "sourceRoot+=/server; echo source root reset to $sourceRoot";
   isLibrary = true;
   isExecutable = true;
   libraryHaskellDepends = [
@@ -48,6 +48,8 @@ mkDerivation {
     th-lift-instances these time transformers transformers-base unix
     unordered-containers uri-encode uuid vector wai wai-websockets warp
     websockets wreq x509 yaml zlib
+    witherable semialign validation
+    cron
   ];
   executableHaskellDepends = [
     base bytestring pg-client text text-conversions
diff --git a/nixpkgs/pkgs/servers/hasura/graphql-parser.nix b/nixpkgs/pkgs/development/misc/haskell/hasura/graphql-parser/default.nix
index 8066bb83dd0a..991b5384d5c2 100644
--- a/nixpkgs/pkgs/servers/hasura/graphql-parser.nix
+++ b/nixpkgs/pkgs/development/misc/haskell/hasura/graphql-parser/default.nix
@@ -5,11 +5,11 @@
 }:
 mkDerivation {
   pname = "graphql-parser";
-  version = "0.1.0.0";
+  version = "0.1.0.1";
   src = fetchgit {
     url = "https://github.com/hasura/graphql-parser-hs.git";
-    sha256 = "0vz0sqqmr1l02d3f1pc5k7rm7vpxmg5d5ijvdcwdm34yw6x5lz1v";
-    rev = "623ad78aa46e7ba2ef1aa58134ad6136b0a85071";
+    sha256 = "sha256-oem/h0AQPk7eSM/P6wMoWV9KirxutE4hnQWwrpQ6TGk=";
+    rev = "ba8e26fef1488cf3c8c08e86f02730f56ec84e1f";
     fetchSubmodules = true;
   };
   libraryHaskellDepends = [
@@ -29,6 +29,7 @@ mkDerivation {
     template-haskell text text-builder th-lift-instances
     unordered-containers vector
   ];
+  doCheck = false;
   prePatch = "hpack";
   homepage = "https://github.com/hasura/graphql-parser-hs#readme";
   license = stdenv.lib.licenses.bsd3;
diff --git a/nixpkgs/pkgs/servers/hasura/pg-client.nix b/nixpkgs/pkgs/development/misc/haskell/hasura/pg-client/default.nix
index 725e5e7f6408..725e5e7f6408 100644
--- a/nixpkgs/pkgs/servers/hasura/pg-client.nix
+++ b/nixpkgs/pkgs/development/misc/haskell/hasura/pg-client/default.nix
diff --git a/nixpkgs/pkgs/development/misc/msp430/mspdebug.nix b/nixpkgs/pkgs/development/misc/msp430/mspdebug.nix
index 3c7ff00151a4..471dd5b31229 100644
--- a/nixpkgs/pkgs/development/misc/msp430/mspdebug.nix
+++ b/nixpkgs/pkgs/development/misc/msp430/mspdebug.nix
@@ -1,10 +1,22 @@
-{ stdenv, fetchFromGitHub, libusb-compat-0_1, readline ? null }:
+{ stdenv
+, fetchFromGitHub
+, autoPatchelfHook
+, libusb-compat-0_1
+, readline ? null
+, enableReadline ? true
+, hidapi ? null
+, pkg-config ? null
+, mspds ? null
+, enableMspds ? false
+}:
 
-let
+assert stdenv.isDarwin -> hidapi != null && pkg-config != null;
+assert enableReadline -> readline != null;
+assert enableMspds -> mspds != null;
+
+stdenv.mkDerivation rec {
   version = "0.25";
-in stdenv.mkDerivation {
   pname = "mspdebug";
-  inherit version;
   src = fetchFromGitHub {
     owner = "dlbeer";
     repo = "mspdebug";
@@ -12,9 +24,34 @@ in stdenv.mkDerivation {
     sha256 = "0prgwb5vx6fd4bj12ss1bbb6axj2kjyriyjxqrzd58s5jyyy8d3c";
   };
 
-  buildInputs = [ libusb-compat-0_1 readline ];
-  makeFlags = [ "PREFIX=$(out)" "INSTALL=install" ] ++
-    (if readline == null then [ "WITHOUT_READLINE=1" ] else []);
+  enableParallelBuilding = true;
+  nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin pkg-config
+  ++ stdenv.lib.optional (enableMspds && stdenv.isLinux) autoPatchelfHook;
+  buildInputs = [ libusb-compat-0_1 ]
+  ++ stdenv.lib.optional stdenv.isDarwin hidapi
+  ++ stdenv.lib.optional enableReadline readline;
+
+  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+    # TODO: remove once a new 0.26+ release is made
+    substituteInPlace drivers/tilib_api.c --replace .so ${stdenv.hostPlatform.extensions.sharedLibrary}
+
+    # Makefile only uses pkg-config if it detects homebrew
+    substituteInPlace Makefile --replace brew true
+  '';
+
+  # TODO: wrap with MSPDEBUG_TILIB_PATH env var instead of these rpath fixups in 0.26+
+  runtimeDependencies = stdenv.lib.optional enableMspds mspds;
+  postFixup = stdenv.lib.optionalString (enableMspds && stdenv.isDarwin) ''
+    # autoPatchelfHook only works on linux so...
+    for dep in $runtimeDependencies; do
+      install_name_tool -add_rpath $dep/lib $out/bin/$pname
+    done
+  '';
+
+  installFlags = [ "PREFIX=$(out)" "INSTALL=install" ];
+  makeFlags = [ "UNAME_S=$(unameS)" ] ++
+    stdenv.lib.optional (!enableReadline) "WITHOUT_READLINE=1";
+  unameS = stdenv.lib.optionalString stdenv.isDarwin "Darwin";
 
   meta = with stdenv.lib; {
     description = "A free programmer, debugger, and gdb proxy for MSP430 MCUs";
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/build-tools.nix b/nixpkgs/pkgs/development/mobile/androidenv/build-tools.nix
index e648c83fa17d..536a025d15b4 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/build-tools.nix
+++ b/nixpkgs/pkgs/development/mobile/androidenv/build-tools.nix
@@ -3,7 +3,7 @@
 deployAndroidPackage {
   inherit package os;
   buildInputs = [ autoPatchelfHook makeWrapper ] ++
-    lib.optionals (os == "linux") [ pkgs.glibc pkgs.zlib pkgs.ncurses5 pkgs_i686.glibc pkgs_i686.zlib pkgs_i686.ncurses5 ];
+    lib.optionals (os == "linux") [ pkgs.glibc pkgs.zlib pkgs.ncurses5 pkgs_i686.glibc pkgs_i686.zlib pkgs_i686.ncurses5 pkgs.libcxx ];
   patchInstructions = ''
     ${lib.optionalString (os == "linux") ''
       addAutoPatchelfSearchPath $packageBaseDir/lib
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/compose-android-packages.nix b/nixpkgs/pkgs/development/mobile/androidenv/compose-android-packages.nix
index f98547011bde..794de2276645 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/compose-android-packages.nix
+++ b/nixpkgs/pkgs/development/mobile/androidenv/compose-android-packages.nix
@@ -1,4 +1,4 @@
-{requireFile, autoPatchelfHook, pkgs, pkgs_i686, licenseAccepted ? false}:
+{requireFile, autoPatchelfHook, pkgs, pkgsHostHost, pkgs_i686, licenseAccepted ? false}:
 
 { toolsVersion ? "25.2.5"
 , platformToolsVersion ? "29.0.6"
@@ -14,7 +14,7 @@
 , lldbVersions ? [ ]
 , cmakeVersions ? [ ]
 , includeNDK ? false
-, ndkVersion ? "18.1.5063045"
+, ndkVersion ? "21.0.6113669"
 , useGoogleAPIs ? false
 , useGoogleTVAddOns ? false
 , includeExtras ? []
@@ -144,7 +144,7 @@ rec {
   ) cmakeVersions;
 
   ndk-bundle = import ./ndk-bundle {
-    inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs lib platform-tools;
+    inherit deployAndroidPackage os autoPatchelfHook makeWrapper pkgs pkgsHostHost lib platform-tools;
     package = packages.ndk-bundle.${ndkVersion};
   };
 
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/convertaddons.xsl b/nixpkgs/pkgs/development/mobile/androidenv/convertaddons.xsl
index 73f58ff5cdec..20f007eca048 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/convertaddons.xsl
+++ b/nixpkgs/pkgs/development/mobile/androidenv/convertaddons.xsl
@@ -36,13 +36,13 @@
       archives = {
       <xsl:for-each select="archives/archive[not(host-os)]">
         all = fetchurl {
-          url = <xsl:call-template name="repository-url"/>;
+          url = "<xsl:call-template name="repository-url"/>";
           sha1 = "<xsl:value-of select="complete/checksum" />";
         };
       </xsl:for-each>
       <xsl:for-each select="archives/archive[host-os and not(host-os = 'windows')]">
         <xsl:value-of select="host-os" /> = fetchurl {
-          url = <xsl:call-template name="repository-url"/>;
+          url = "<xsl:call-template name="repository-url"/>";
           sha1 = "<xsl:value-of select="complete/checksum" />";
         };
       </xsl:for-each>
@@ -60,13 +60,13 @@
       archives = {
       <xsl:for-each select="archives/archive[not(host-os)]">
         all = fetchurl {
-          url = <xsl:call-template name="repository-url"/>;
+          url = "<xsl:call-template name="repository-url"/>";
           sha1 = "<xsl:value-of select="complete/checksum" />";
         };
       </xsl:for-each>
       <xsl:for-each select="archives/archive[host-os and not(host-os = 'windows')]">
         <xsl:value-of select="host-os" /> = fetchurl {
-          url = <xsl:call-template name="repository-url"/>;
+          url = "<xsl:call-template name="repository-url"/>";
           sha1 = "<xsl:value-of select="complete/checksum" />";
         };
       </xsl:for-each>
@@ -108,13 +108,13 @@
       archives = {
       <xsl:for-each select="archives/archive[not(host-os)]">
         all = fetchurl {
-          url = <xsl:call-template name="repository-url"/>;
+          url = "<xsl:call-template name="repository-url"/>";
           sha1 = "<xsl:value-of select="complete/checksum" />";
         };
       </xsl:for-each>
       <xsl:for-each select="archives/archive[host-os and not(host-os = 'windows')]">
         <xsl:value-of select="host-os" /> = fetchurl {
-          url = <xsl:call-template name="repository-url"/>;
+          url = "<xsl:call-template name="repository-url"/>";
           sha1 = "<xsl:value-of select="complete/checksum" />";
         };
       </xsl:for-each>
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/convertpackages.xsl b/nixpkgs/pkgs/development/mobile/androidenv/convertpackages.xsl
index 5c36deb73c08..edc9074a8984 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/convertpackages.xsl
+++ b/nixpkgs/pkgs/development/mobile/androidenv/convertpackages.xsl
@@ -98,13 +98,13 @@
     archives = {
       <xsl:for-each select="archives/archive[not(host-os)]">
         all = fetchurl {
-          url = <xsl:call-template name="repository-url"/>;
+          url = !<xsl:call-template name="repository-url"/>";
           sha1 = "<xsl:value-of select="complete/checksum" />";
         };
       </xsl:for-each>
       <xsl:for-each select="archives/archive[host-os and not(host-os = 'windows')]">
         <xsl:value-of select="host-os" /> = fetchurl {
-        url = <xsl:call-template name="repository-url"/>;
+        url = "<xsl:call-template name="repository-url"/>";
         sha1 = "<xsl:value-of select="complete/checksum" />";
       };
       </xsl:for-each>
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/convertsystemimages.xsl b/nixpkgs/pkgs/development/mobile/androidenv/convertsystemimages.xsl
index de57041f1923..947950badb4b 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/convertsystemimages.xsl
+++ b/nixpkgs/pkgs/development/mobile/androidenv/convertsystemimages.xsl
@@ -64,7 +64,7 @@
     displayName = "</xsl:text><xsl:value-of select="display-name" /><xsl:text>";
     archives.all = fetchurl {</xsl:text>
     <xsl:for-each select="archives/archive"><xsl:text>
-      url = </xsl:text><xsl:call-template name="repository-url"/><xsl:text>;
+      url = "</xsl:text><xsl:call-template name="repository-url"/><xsl:text>";
       sha1 = "</xsl:text><xsl:value-of select="complete/checksum" /><xsl:text>";</xsl:text>
     </xsl:for-each><xsl:text>
     };
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/default.nix b/nixpkgs/pkgs/development/mobile/androidenv/default.nix
index 14882bc22438..a13b98cf945c 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/default.nix
+++ b/nixpkgs/pkgs/development/mobile/androidenv/default.nix
@@ -1,4 +1,4 @@
-{ config, pkgs ? import <nixpkgs> {}
+{ config, pkgs ? import <nixpkgs> {}, pkgsHostHost ? pkgs.pkgsHostHost
 , pkgs_i686 ? import <nixpkgs> { system = "i686-linux"; }
 , licenseAccepted ? config.android_sdk.accept_license or false
 }:
@@ -6,7 +6,7 @@
 rec {
   composeAndroidPackages = import ./compose-android-packages.nix {
     inherit (pkgs) requireFile autoPatchelfHook;
-    inherit pkgs pkgs_i686 licenseAccepted;
+    inherit pkgs pkgsHostHost pkgs_i686 licenseAccepted;
   };
 
   buildApp = import ./build-app.nix {
@@ -15,7 +15,7 @@ rec {
   };
 
   emulateApp = import ./emulate-app.nix {
-    inherit (pkgs) stdenv lib;
+    inherit (pkgs) stdenv lib runtimeShell;
     inherit composeAndroidPackages;
   };
 
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/deploy-androidpackage.nix b/nixpkgs/pkgs/development/mobile/androidenv/deploy-androidpackage.nix
index 839a14f7033c..4f9db98c0062 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/deploy-androidpackage.nix
+++ b/nixpkgs/pkgs/development/mobile/androidenv/deploy-androidpackage.nix
@@ -5,7 +5,8 @@ let
   extraParams = removeAttrs args [ "package" "os" "buildInputs" "patchInstructions" ];
 in
 stdenv.mkDerivation ({
-  name = package.name + "-" + package.revision;
+  pname = package.name;
+  version = package.revision;
   src = if os != null && builtins.hasAttr os package.archives then package.archives.${os} else package.archives.all;
   buildInputs = [ unzip ] ++ buildInputs;
   preferLocalBuild = true;
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/emulate-app.nix b/nixpkgs/pkgs/development/mobile/androidenv/emulate-app.nix
index 6273d75cc380..83be06a31419 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/emulate-app.nix
+++ b/nixpkgs/pkgs/development/mobile/androidenv/emulate-app.nix
@@ -1,4 +1,4 @@
-{ composeAndroidPackages, stdenv, lib }:
+{ composeAndroidPackages, stdenv, lib, runtimeShell }:
 { name, app ? null
 , platformVersion ? "16", abiVersion ? "armeabi-v7a", systemImageType ? "default"
 , enableGPU ? false, extraAVDFiles ? []
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
     mkdir -p $out/bin
 
     cat > $out/bin/run-test-emulator << "EOF"
-    #! ${stdenv.shell} -e
+    #!${runtimeShell} -e
 
     # We need a TMPDIR
     if [ "$TMPDIR" = "" ]
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/generated/addons.nix b/nixpkgs/pkgs/development/mobile/androidenv/generated/addons.nix
index 23a55595cce0..231e5b8ea22f 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/generated/addons.nix
+++ b/nixpkgs/pkgs/development/mobile/androidenv/generated/addons.nix
@@ -672,70 +672,6 @@
     };
     
 
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout-solver:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-alpha4.zip";
-          sha1 = "2aa2aceecc6ba172742d0af0b43f11d03924eeb8";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout-solver:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-alpha4.zip";
-          sha1 = "2aa2aceecc6ba172742d0af0b43f11d03924eeb8";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout-solver:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-alpha4.zip";
-          sha1 = "2aa2aceecc6ba172742d0af0b43f11d03924eeb8";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha8" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-alpha8";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-alpha8";
-      revision = "1";
-      displayName = "Solver for ConstraintLayout 1.0.0-alpha8";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-solver-1.0.0-alpha8.zip";
-          sha1 = "cd13d16a8f0198c1d6040ec8b1d0d4e5bb7feb6a";
-        };
-      
-      };
-    };
-    
-
     "extras;m2repository;com;android;support;constraint;constraint-layout-solver;1.0.0-alpha8" = {
       name = "extras-m2repository-com-android-support-constraint-constraint-layout-solver-1.0.0-alpha8";
       path = "extras/m2repository/com/android/support/constraint/constraint-layout-solver/1.0.0-alpha8";
@@ -896,70 +832,6 @@
     };
     
 
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-alpha4.zip";
-          sha1 = "645a9be1f0c1177301e71cd0ddccf1dd67c554fe";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-alpha4.zip";
-          sha1 = "645a9be1f0c1177301e71cd0ddccf1dd67c554fe";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha4" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-alpha4";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha4";
-      revision = "1";
-      displayName = "com.android.support.constraint:constraint-layout:1.0.0-alpha4";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-alpha4.zip";
-          sha1 = "645a9be1f0c1177301e71cd0ddccf1dd67c554fe";
-        };
-      
-      };
-    };
-    
-
-    "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha8" = {
-      name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-alpha8";
-      path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha8";
-      revision = "1";
-      displayName = "ConstraintLayout for Android 1.0.0-alpha8";
-      archives = {
-      
-        all = fetchurl {
-          url = "https://dl.google.com/android/repository/com.android.support.constraint-constraint-layout-1.0.0-alpha8.zip";
-          sha1 = "7912ba03b04831f918f523648f118c4ee4da7604";
-        };
-      
-      };
-    };
-    
-
     "extras;m2repository;com;android;support;constraint;constraint-layout;1.0.0-alpha8" = {
       name = "extras-m2repository-com-android-support-constraint-constraint-layout-1.0.0-alpha8";
       path = "extras/m2repository/com/android/support/constraint/constraint-layout/1.0.0-alpha8";
diff --git a/nixpkgs/pkgs/development/mobile/androidenv/ndk-bundle/default.nix b/nixpkgs/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
index b81fab1ed76f..ca305e0398d5 100644
--- a/nixpkgs/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
+++ b/nixpkgs/pkgs/development/mobile/androidenv/ndk-bundle/default.nix
@@ -1,18 +1,24 @@
-{deployAndroidPackage, lib, package, os, autoPatchelfHook, makeWrapper, pkgs, platform-tools}:
+{ lib, pkgs, pkgsHostHost, makeWrapper, autoPatchelfHook
+, deployAndroidPackage, package, os, platform-tools
+}:
 
 let
-  runtime_paths = lib.makeBinPath [ pkgs.coreutils pkgs.file pkgs.findutils pkgs.gawk pkgs.gnugrep pkgs.gnused pkgs.jdk pkgs.python3 pkgs.which ] + ":${platform-tools}/platform-tools";
+  runtime_paths = lib.makeBinPath (with pkgsHostHost; [
+    coreutils file findutils gawk gnugrep gnused jdk python3 which
+  ]) + ":${platform-tools}/platform-tools";
 in
 deployAndroidPackage {
   inherit package os;
   buildInputs = [ autoPatchelfHook makeWrapper pkgs.python2 ]
     ++ lib.optional (os == "linux") [ pkgs.glibc pkgs.stdenv.cc.cc pkgs.ncurses5 pkgs.zlib pkgs.libcxx.out ];
-  patchInstructions = lib.optionalString (os == "linux") ''
+  patchInstructions = lib.optionalString (os == "linux") (''
     patchShebangs .
 
+  '' + lib.optionalString (builtins.compareVersions (lib.getVersion package) "21" > 0) ''
     patch -p1 \
       --no-backup-if-mismatch < ${./make_standalone_toolchain.py_18.patch}
     wrapProgram $(pwd)/build/tools/make_standalone_toolchain.py --prefix PATH : "${runtime_paths}"
+  '' + ''
 
     # TODO: allow this stuff
     rm -rf docs tests
@@ -46,6 +52,6 @@ deployAndroidPackage {
     do
         ln -sf ../libexec/android-sdk/ndk-bundle/$i $out/bin/$i
     done
-  '';
+  '');
   noAuditTmpdir = true; # Audit script gets invoked by the build/ component in the path for the make standalone script
 }
diff --git a/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile-beta.lock b/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile-beta.lock
index 933331b635bf..98963ba41282 100644
--- a/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile-beta.lock
+++ b/nixpkgs/pkgs/development/mobile/cocoapods/Gemfile-beta.lock
@@ -2,25 +2,26 @@ GEM
   remote: https://rubygems.org/
   specs:
     CFPropertyList (3.0.2)
-    activesupport (4.2.11.3)
-      i18n (~> 0.7)
+    activesupport (5.2.4.3)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 0.7, < 2)
       minitest (~> 5.1)
-      thread_safe (~> 0.3, >= 0.3.4)
       tzinfo (~> 1.1)
-    algoliasearch (1.27.2)
+    addressable (2.7.0)
+      public_suffix (>= 2.0.2, < 5.0)
+    algoliasearch (1.27.3)
       httpclient (~> 2.8, >= 2.8.3)
       json (>= 1.5.1)
     atomos (0.1.3)
     claide (1.0.3)
-    cocoapods (1.9.3)
-      activesupport (>= 4.0.2, < 5)
+    cocoapods (1.10.0.beta.2)
+      addressable (~> 2.6)
       claide (>= 1.0.2, < 2.0)
-      cocoapods-core (= 1.9.3)
+      cocoapods-core (= 1.10.0.beta.2)
       cocoapods-deintegrate (>= 1.0.3, < 2.0)
-      cocoapods-downloader (>= 1.2.2, < 2.0)
+      cocoapods-downloader (>= 1.4.0, < 2.0)
       cocoapods-plugins (>= 1.0.0, < 2.0)
       cocoapods-search (>= 1.0.0, < 2.0)
-      cocoapods-stats (>= 1.0.0, < 2.0)
       cocoapods-trunk (>= 1.4.0, < 2.0)
       cocoapods-try (>= 1.1.0, < 2.0)
       colored2 (~> 3.1)
@@ -30,55 +31,57 @@ GEM
       molinillo (~> 0.6.6)
       nap (~> 1.0)
       ruby-macho (~> 1.4)
-      xcodeproj (>= 1.14.0, < 2.0)
-    cocoapods-core (1.9.3)
-      activesupport (>= 4.0.2, < 6)
+      xcodeproj (>= 1.17.0, < 2.0)
+    cocoapods-core (1.10.0.beta.2)
+      activesupport (> 5.0, < 6)
+      addressable (~> 2.6)
       algoliasearch (~> 1.0)
       concurrent-ruby (~> 1.1)
       fuzzy_match (~> 2.0.4)
       nap (~> 1.0)
       netrc (~> 0.11)
+      public_suffix
       typhoeus (~> 1.0)
     cocoapods-deintegrate (1.0.4)
-    cocoapods-downloader (1.3.0)
+    cocoapods-downloader (1.4.0)
     cocoapods-plugins (1.0.0)
       nap
     cocoapods-search (1.0.0)
-    cocoapods-stats (1.1.0)
     cocoapods-trunk (1.5.0)
       nap (>= 0.8, < 2.0)
       netrc (~> 0.11)
     cocoapods-try (1.2.0)
     colored2 (3.1.2)
-    concurrent-ruby (1.1.6)
+    concurrent-ruby (1.1.7)
     escape (0.0.4)
     ethon (0.12.0)
       ffi (>= 1.3.0)
-    ffi (1.12.2)
+    ffi (1.13.1)
     fourflusher (2.3.1)
     fuzzy_match (2.0.4)
     gh_inspector (1.1.3)
     httpclient (2.8.3)
-    i18n (0.9.5)
+    i18n (1.8.5)
       concurrent-ruby (~> 1.0)
-    json (2.3.0)
+    json (2.3.1)
     minitest (5.14.1)
     molinillo (0.6.6)
-    nanaimo (0.2.6)
+    nanaimo (0.3.0)
     nap (1.1.0)
     netrc (0.11.0)
+    public_suffix (4.0.5)
     ruby-macho (1.4.0)
     thread_safe (0.3.6)
     typhoeus (1.4.0)
       ethon (>= 0.9.0)
     tzinfo (1.2.7)
       thread_safe (~> 0.1)
-    xcodeproj (1.16.0)
+    xcodeproj (1.18.0)
       CFPropertyList (>= 2.3.3, < 4.0)
       atomos (~> 0.1.3)
       claide (>= 1.0.2, < 2.0)
       colored2 (~> 3.1)
-      nanaimo (~> 0.2.6)
+      nanaimo (~> 0.3.0)
 
 PLATFORMS
   ruby
diff --git a/nixpkgs/pkgs/development/mobile/cocoapods/gemset-beta.nix b/nixpkgs/pkgs/development/mobile/cocoapods/gemset-beta.nix
index 375d2899ac6a..b456f728b4c4 100644
--- a/nixpkgs/pkgs/development/mobile/cocoapods/gemset-beta.nix
+++ b/nixpkgs/pkgs/development/mobile/cocoapods/gemset-beta.nix
@@ -1,14 +1,25 @@
 {
   activesupport = {
-    dependencies = ["i18n" "minitest" "thread_safe" "tzinfo"];
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wp36wi3r3dscmcr0q6sbz13hr5h911c24ar7zrmmcy7p32ial2i";
+      sha256 = "02fdawr3wyvpzpja3r7mvb8lmn2mm5jdw502bx3ncr2sy2nw1kx6";
       type = "gem";
     };
-    version = "4.2.11.3";
+    version = "5.2.4.3";
+  };
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+      type = "gem";
+    };
+    version = "2.7.0";
   };
   algoliasearch = {
     dependencies = ["httpclient" "json"];
@@ -16,10 +27,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b3xk42ry6dlsqn379p884zdi4iyra67xh45rwl6vcrwmrnbq7f0";
+      sha256 = "1z94dnx0rljsfa3k24i1nc0vf1nfk3bbk89nqc6n1ax25h4fs5sw";
       type = "gem";
     };
-    version = "1.27.2";
+    version = "1.27.3";
   };
   atomos = {
     groups = ["default"];
@@ -52,26 +63,26 @@
     version = "1.0.3";
   };
   cocoapods = {
-    dependencies = ["activesupport" "claide" "cocoapods-core" "cocoapods-deintegrate" "cocoapods-downloader" "cocoapods-plugins" "cocoapods-search" "cocoapods-stats" "cocoapods-trunk" "cocoapods-try" "colored2" "escape" "fourflusher" "gh_inspector" "molinillo" "nap" "ruby-macho" "xcodeproj"];
+    dependencies = ["addressable" "claide" "cocoapods-core" "cocoapods-deintegrate" "cocoapods-downloader" "cocoapods-plugins" "cocoapods-search" "cocoapods-trunk" "cocoapods-try" "colored2" "escape" "fourflusher" "gh_inspector" "molinillo" "nap" "ruby-macho" "xcodeproj"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0zqj1878izp34cn7552q2djs3zd4a5ylyv0af3yxbz34z0qllk60";
+      sha256 = "0jf5q75h410b6gymy86j4zy9yhb6n28wa7hrk8p7y2dsafdzbric";
       type = "gem";
     };
-    version = "1.9.3";
+    version = "1.10.0.beta.2";
   };
   cocoapods-core = {
-    dependencies = ["activesupport" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "typhoeus"];
+    dependencies = ["activesupport" "addressable" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "public_suffix" "typhoeus"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sn1561sdhq2bh35pmi9nhq1adjcgdkhxybd9pxcjs75zmqzpz13";
+      sha256 = "0vrw6v5fp0m903ghvfwaw3mbxrr68x7hz9bj34rj4icirwp4ifyl";
       type = "gem";
     };
-    version = "1.9.3";
+    version = "1.10.0.beta.2";
   };
   cocoapods-deintegrate = {
     groups = ["default"];
@@ -88,10 +99,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08vn0pgcyn6w6fq5xjd7szv2h9s5rzl17kyidnd7fl5qdmzc9c54";
+      sha256 = "1j03hxvz3m82fwgx3jayw0y2iqm7zpacn88r6nfj2arkbjxmvjwz";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.4.0";
   };
   cocoapods-plugins = {
     dependencies = ["nap"];
@@ -114,16 +125,6 @@
     };
     version = "1.0.0";
   };
-  cocoapods-stats = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "1xhdh5v94p6l612rwrk290nd2hdfx8lbaqfbkmj34md218kilqww";
-      type = "gem";
-    };
-    version = "1.1.0";
-  };
   cocoapods-trunk = {
     dependencies = ["nap" "netrc"];
     groups = ["default"];
@@ -160,10 +161,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
       type = "gem";
     };
-    version = "1.1.6";
+    version = "1.1.7";
   };
   escape = {
     groups = ["default"];
@@ -191,10 +192,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
+      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
       type = "gem";
     };
-    version = "1.12.2";
+    version = "1.13.1";
   };
   fourflusher = {
     groups = ["default"];
@@ -242,20 +243,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "038qvz7kd3cfxk8bvagqhakx68pfbnmghpdkx7573wbf0maqp9a3";
+      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
       type = "gem";
     };
-    version = "0.9.5";
+    version = "1.8.5";
   };
   json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
+      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.3.1";
   };
   minitest = {
     groups = ["default"];
@@ -282,10 +283,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ajfyaqjw3dzykk612yw8sm21savfqy292hgps8h8l4lvxww1lz6";
+      sha256 = "0xi36h3f7nm8bc2k0b6svpda1lyank2gf872lxjbhw3h95hdrbma";
       type = "gem";
     };
-    version = "0.2.6";
+    version = "0.3.0";
   };
   nap = {
     groups = ["default"];
@@ -307,6 +308,16 @@
     };
     version = "0.11.0";
   };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g";
+      type = "gem";
+    };
+    version = "4.0.5";
+  };
   ruby-macho = {
     groups = ["default"];
     platforms = [];
@@ -355,9 +366,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bkk8y6lzd86w9yx72hd1nil3fkk5f0v3il9vm554gzpl6dhc2bi";
+      sha256 = "18idiqfbvyrcyflccwy4qw125psckrnqy7ggci33m8f3zs8h7hnm";
       type = "gem";
     };
-    version = "1.16.0";
+    version = "1.18.0";
   };
 }
\ No newline at end of file
diff --git a/nixpkgs/pkgs/development/node-packages/default.nix b/nixpkgs/pkgs/development/node-packages/default.nix
index 43750127e244..4e48a5771646 100644
--- a/nixpkgs/pkgs/development/node-packages/default.nix
+++ b/nixpkgs/pkgs/development/node-packages/default.nix
@@ -48,19 +48,16 @@ let
       meta.broken = since "12";
     };
 
-    bitwarden-cli = pkgs.lib.overrideDerivation super."@bitwarden/cli" (drv: {
-      name = "bitwarden-cli-${drv.version}";
+    # NOTE: this is a stub package to fetch npm dependencies for
+    # ../../applications/video/epgstation
+    epgstation = super."epgstation-../../applications/video/epgstation".override (drv: {
+      meta = drv.meta // {
+        broken = true; # not really broken, see the comment above
+      };
     });
 
-    ios-deploy = super.ios-deploy.override (drv: {
-      nativeBuildInputs = drv.nativeBuildInputs or [] ++ [ pkgs.buildPackages.rsync ];
-      preRebuild = ''
-        LD=$CC
-        tmp=$(mktemp -d)
-        ln -s /usr/bin/xcodebuild $tmp
-        export PATH="$PATH:$tmp"
-      '';
-      meta.platforms = [ pkgs.lib.platforms.darwin ];
+    bitwarden-cli = pkgs.lib.overrideDerivation super."@bitwarden/cli" (drv: {
+      name = "bitwarden-cli-${drv.version}";
     });
 
     fast-cli = super."fast-cli-1.x".override {
@@ -80,6 +77,36 @@ let
       nativeBuildInputs = drv.nativeBuildInputs or [] ++ [ pkgs.psc-package self.pulp ];
     });
 
+    mirakurun = super.mirakurun.override rec {
+      nativeBuildInputs = with pkgs; [ makeWrapper ];
+      postInstall = let
+        runtimeDeps = [ nodejs ] ++ (with pkgs; [ bash which v4l_utils ]);
+      in
+      ''
+        substituteInPlace $out/lib/node_modules/mirakurun/processes.json \
+          --replace "/usr/local" ""
+
+        # XXX: Files copied from the Nix store are non-writable, so they need
+        # to be given explicit write permissions
+        substituteInPlace $out/lib/node_modules/mirakurun/lib/Mirakurun/config.js \
+          --replace 'fs.copyFileSync("config/server.yml", path);' \
+                    'fs.copyFileSync("config/server.yml", path); fs.chmodSync(path, 0o644);' \
+          --replace 'fs.copyFileSync("config/tuners.yml", path);' \
+                    'fs.copyFileSync("config/tuners.yml", path); fs.chmodSync(path, 0o644);' \
+          --replace 'fs.copyFileSync("config/channels.yml", path);' \
+                    'fs.copyFileSync("config/channels.yml", path); fs.chmodSync(path, 0o644);'
+
+        # XXX: The original mirakurun command uses PM2 to manage the Mirakurun
+        # server.  However, we invoke the server directly and let systemd
+        # manage it to avoid complication. This is okay since no features
+        # unique to PM2 is currently being used.
+        makeWrapper ${nodejs}/bin/npm $out/bin/mirakurun \
+          --add-flags "start" \
+          --run "cd $out/lib/node_modules/mirakurun" \
+          --prefix PATH : ${pkgs.lib.makeBinPath runtimeDeps}
+      '';
+    };
+
     node-inspector = super.node-inspector.override {
       buildInputs = [ self.node-pre-gyp ];
       meta.broken = since "10";
@@ -93,7 +120,7 @@ let
     };
 
     node-red = super.node-red.override {
-      meta.broken = since "10";
+      buildInputs = [ self.node-pre-gyp ];
     };
 
     pnpm = super.pnpm.override {
@@ -140,10 +167,44 @@ let
       '';
     };
 
+    tsun = super.tsun.overrideAttrs (oldAttrs: {
+      buildInputs = oldAttrs.buildInputs ++ [ pkgs.makeWrapper ];
+      postInstall = ''
+        wrapProgram "$out/bin/tsun" \
+        --prefix NODE_PATH : ${self.typescript}/lib/node_modules
+      '';
+    });
+
     stf = super.stf.override {
       meta.broken = since "10";
     };
 
+    vega-cli = super.vega-cli.override {
+      nativeBuildInputs = [ pkgs.pkgconfig ];
+      buildInputs = with pkgs; [
+        super.node-pre-gyp
+        pixman
+        cairo
+        pango
+        libjpeg
+      ];
+    };
+
+    vega-lite = super.vega-lite.override {
+        # npx tries to install vega from scratch at vegalite runtime if it
+        # can't find it. We thus replace it with a direct call to the nix
+        # derivation. This might not be necessary anymore in future vl
+        # versions: https://github.com/vega/vega-lite/issues/6863.
+        postInstall = ''
+          substituteInPlace $out/lib/node_modules/vega-lite/bin/vl2pdf \
+            --replace "npx -p vega vg2pdf"  "${self.vega-cli}/bin/vg2pdf"
+          substituteInPlace $out/lib/node_modules/vega-lite/bin/vl2svg \
+            --replace "npx -p vega vg2svg"  "${self.vega-cli}/bin/vg2svg"
+          substituteInPlace $out/lib/node_modules/vega-lite/bin/vl2png \
+            --replace "npx -p vega vg2png"  "${self.vega-cli}/bin/vg2png"
+        '';
+    };
+
     webtorrent-cli = super.webtorrent-cli.override {
       buildInputs = [ self.node-gyp-build ];
     };
@@ -155,6 +216,8 @@ let
         # https://sharp.pixelplumbing.com/install
         vips
 
+        libsecret
+        self.node-gyp-build
         self.node-pre-gyp
       ];
     };
diff --git a/nixpkgs/pkgs/development/node-packages/node-packages.json b/nixpkgs/pkgs/development/node-packages/node-packages.json
index f26c7885dfb6..ba8488bda2ad 100644
--- a/nixpkgs/pkgs/development/node-packages/node-packages.json
+++ b/nixpkgs/pkgs/development/node-packages/node-packages.json
@@ -3,6 +3,7 @@
 , "@antora/cli"
 , "@antora/site-generator-default"
 , "@bitwarden/cli"
+, "@nestjs/cli"
 , "@vue/cli"
 , "@webassemblyjs/cli"
 , "@webassemblyjs/repl"
@@ -60,17 +61,20 @@
 , "csslint"
 , "dat"
 , "dhcp"
+, "diagnostic-languageserver"
 , "dockerfile-language-server-nodejs"
 , "elasticdump"
 , "elm-oracle"
 , "emoj"
 , "emojione"
+, {"epgstation": "../../applications/video/epgstation"}
 , "escape-string-regexp"
 , "eslint"
 , "eslint_d"
 , {"fast-cli": "1.x"}
 , "fkill-cli"
 , "forever"
+, "get-graphql-schema"
 , "git-run"
 , "git-ssb"
 , "git-standup"
@@ -89,7 +93,6 @@
 , "indium"
 , "insect"
 , "ionic"
-, "ios-deploy"
 , { "iosevka-build-deps": "../../data/fonts/iosevka" }
 , "jake"
 , "javascript-typescript-langserver"
@@ -114,12 +117,14 @@
 , {"lumo-build-deps": "../interpreters/clojurescript/lumo" }
 , "madoko"
 , "markdown-link-check"
+, "mastodon-bot"
 , "mathjax"
 , "meat"
-, "meguca"
+, "mirakurun"
 , "mocha"
 , "multi-file-swagger"
 , "neovim"
+, "netlify-cli"
 , "nijs"
 , "node-gyp"
 , "node-gyp-build"
@@ -134,6 +139,7 @@
 , "ocaml-language-server"
 , "parcel-bundler"
 , "parsoid"
+, "patch-package"
 , "peerflix"
 , "peerflix-server"
 , "pnpm"
@@ -141,9 +147,13 @@
 , "prettier"
 , "pscid"
 , "pulp"
+, "purescript-language-server"
 , "purescript-psa"
+, "purty"
+, "pyright"
 , "react-native-cli"
 , "react-tools"
+, "redoc-cli"
 , "reveal.js"
 , "rollup"
 , { "rust-analyzer-build-deps": "../../misc/vscode-extensions/rust-analyzer/build-deps" }
@@ -189,8 +199,13 @@
 , "typescript-language-server"
 , "uglify-js"
 , "ungit"
+, "vega-cli"
+, "vega-lite"
+, "vim-language-server"
 , "vscode-css-languageserver-bin"
 , "vscode-html-languageserver-bin"
+, "vscode-json-languageserver-bin"
+, { "vscode-lldb-build-deps": "../../misc/vscode-extensions/vscode-lldb/build-deps" }
 , "vue-cli"
 , "vue-language-server"
 , "web-ext"
diff --git a/nixpkgs/pkgs/development/node-packages/node-packages.nix b/nixpkgs/pkgs/development/node-packages/node-packages.nix
index 69045fa7d615..8d56372af252 100644
--- a/nixpkgs/pkgs/development/node-packages/node-packages.nix
+++ b/nixpkgs/pkgs/development/node-packages/node-packages.nix
@@ -22,67 +22,139 @@ let
         sha512 = "t4WmWoGV9gyzypwG3y3JlcK2t8fKLtvzBA7xEoFTj9SMPvOuLsf13uh4ikK0RRaaa9RPPWLgFUdOyIRaQvCpwQ==";
       };
     };
-    "@angular-devkit/architect-0.901.7" = {
+    "@analytics/cookie-utils-0.2.3" = {
+      name = "_at_analytics_slash_cookie-utils";
+      packageName = "@analytics/cookie-utils";
+      version = "0.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@analytics/cookie-utils/-/cookie-utils-0.2.3.tgz";
+        sha512 = "RiMAVpSluRbWb2hlT9wMJ0r2l+MUZzScYjY+w2iWRzjOr9Zzzs4tYzJT6Sd94PDz3LzCuf4aGOwS6pkKXTEBLw==";
+      };
+    };
+    "@analytics/core-0.6.2" = {
+      name = "_at_analytics_slash_core";
+      packageName = "@analytics/core";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@analytics/core/-/core-0.6.2.tgz";
+        sha512 = "qXBfef5/HK5RZkGlkVqRKnjFQuPZejU6NLqnzx/DH3EU28w7a7IgUN+qZ2VSWFr3aMtNJ0qVybfHDxcJBtrLtQ==";
+      };
+    };
+    "@analytics/storage-utils-0.2.4" = {
+      name = "_at_analytics_slash_storage-utils";
+      packageName = "@analytics/storage-utils";
+      version = "0.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@analytics/storage-utils/-/storage-utils-0.2.4.tgz";
+        sha512 = "VHRggJbRY8vHIADWVwbq9cZux0L9LdmlN31XA3daVAI4gMkKdQEocxB7KqGDt6SfIJ3NYi/qh1nRJGooYmTBiA==";
+      };
+    };
+    "@angular-devkit/architect-0.1001.2" = {
       name = "_at_angular-devkit_slash_architect";
       packageName = "@angular-devkit/architect";
-      version = "0.901.7";
+      version = "0.1001.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.901.7.tgz";
-        sha512 = "yW/PUEqle55QihOFbmeNXaVTodhfeXkteoFDUpz+YpX3xiQDXDtNbIJSzKOQTojtBKdSMKMvZkQLr+RAa7/1EA==";
+        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1001.2.tgz";
+        sha512 = "05o12amjZ8NNIFehKm/lFYf12xvCclC7V5tGl/9+V7g/3pQqakwAjCysgb9T+ETffhmKhMnE8XdAJZqF7YrDcw==";
       };
     };
-    "@angular-devkit/core-9.1.7" = {
+    "@angular-devkit/core-10.0.7" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "9.1.7";
+      version = "10.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-10.0.7.tgz";
+        sha512 = "pXaZgsQ8LHpRx4QGAUYDE8GwBQLAtoqPh6oUCwRJwBExm5rl13OGPTBWewHiq0ysV/SnFXvOjxwAaHQvC1AgZw==";
+      };
+    };
+    "@angular-devkit/core-10.1.2" = {
+      name = "_at_angular-devkit_slash_core";
+      packageName = "@angular-devkit/core";
+      version = "10.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-10.1.2.tgz";
+        sha512 = "LMxesiCuXRe3UzPdRouXsC1W73/q6rVtACVoD5GdzmmnZ7cRh7oiwonqT0lEXIKQikMsZUasUOXHD2HoKV6BoA==";
+      };
+    };
+    "@angular-devkit/core-9.1.12" = {
+      name = "_at_angular-devkit_slash_core";
+      packageName = "@angular-devkit/core";
+      version = "9.1.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.12.tgz";
+        sha512 = "D/GnBeSlmdgGn7EhuE32HuPuRAjvUuxi7Q6WywBI8PSsXKAGnrypghBwMATNnOA24//CgbW2533Y9VWHaeXdeA==";
+      };
+    };
+    "@angular-devkit/schematics-10.0.7" = {
+      name = "_at_angular-devkit_slash_schematics";
+      packageName = "@angular-devkit/schematics";
+      version = "10.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.0.7.tgz";
+        sha512 = "eyyYPgpjtr3h7WbnNbkDubJ/p+8TgKU6abWd+NmBfTvyeHrpVFUYZabNRcdXwUDSVzfTQKdmLynIkESj/KROrg==";
+      };
+    };
+    "@angular-devkit/schematics-10.1.2" = {
+      name = "_at_angular-devkit_slash_schematics";
+      packageName = "@angular-devkit/schematics";
+      version = "10.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-9.1.7.tgz";
-        sha512 = "guvolu9Cl+qYMTtedLZD9wCqustJjdqzJ2psD2C1Sr1LrX9T0mprmDldR/YnhsitThveJEb6sM/0EvqWxoSvKw==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-10.1.2.tgz";
+        sha512 = "gS5yP8ntw3/v9zBK9kBsp5r4gYlp8cLvJ3oWLZmSvdzzbm/QznPnRKqNm72AptKrlxRFX0xyrJ7vjtLWcssqxA==";
       };
     };
-    "@angular-devkit/schematics-9.1.7" = {
+    "@angular-devkit/schematics-9.1.12" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "9.1.7";
+      version = "9.1.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.12.tgz";
+        sha512 = "+GYnUzmIy1/QpYitCC8mI7jcrViGHTtOKvvDPEFjU2nggjNEQaMmsHcdIsjrqggEc23ZZyebNAIewT8CMkJyrQ==";
+      };
+    };
+    "@angular-devkit/schematics-cli-0.1000.7" = {
+      name = "_at_angular-devkit_slash_schematics-cli";
+      packageName = "@angular-devkit/schematics-cli";
+      version = "0.1000.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.1.7.tgz";
-        sha512 = "oeHPJePBcPp/bd94jHQeFUnft93PGF5iJiKV9szxqS8WWC5OMZ5eK7icRY0PwvLyfenspAZxdZcNaqJqPMul5A==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-0.1000.7.tgz";
+        sha512 = "5zXO0WfyRySZudv2/EEC/UVfG75y7TGrdMfVZNc1WP0SB54psA0U3Z3jT+6Y9VjdjmXdxjVfybhuOzZ4I1fs0Q==";
       };
     };
-    "@antora/asciidoc-loader-2.3.3" = {
+    "@antora/asciidoc-loader-2.3.4" = {
       name = "_at_antora_slash_asciidoc-loader";
       packageName = "@antora/asciidoc-loader";
-      version = "2.3.3";
+      version = "2.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-2.3.3.tgz";
-        sha512 = "4dPwCnpKUrME8PZLImOD3BBcyxpaA9tAtySPKACDJPkXc24GcfjI59QbSc+shG1fKptOGaDk68O2ZMu/Gpmlhw==";
+        url = "https://registry.npmjs.org/@antora/asciidoc-loader/-/asciidoc-loader-2.3.4.tgz";
+        sha512 = "IQ0d/hnOCGZXzTYUwKAw2BlyRMI4Kg/zu7XejQ6ERIncjuUUv/+PhlzVxoJNT0r9uasJFHDlZ7l3X53Hn+MUuQ==";
       };
     };
-    "@antora/content-aggregator-2.3.3" = {
+    "@antora/content-aggregator-2.3.4" = {
       name = "_at_antora_slash_content-aggregator";
       packageName = "@antora/content-aggregator";
-      version = "2.3.3";
+      version = "2.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-2.3.3.tgz";
-        sha512 = "ehr0VmPltRCmKuSIT5idSnI7S2sn/q9UHBdB85GsvxOqgfM08lnkZrxbdiVqmg+06rLi8qUUCLB3dI4RZ8+xvw==";
+        url = "https://registry.npmjs.org/@antora/content-aggregator/-/content-aggregator-2.3.4.tgz";
+        sha512 = "ZwlGm/t90PUnGVo+pir71O+wC+gyXnVuhoAed+9bBLjsiGI7EGUzwUEXSZqHRSihPx5XLFj6pZinoCGX+uabcw==";
       };
     };
-    "@antora/content-classifier-2.3.3" = {
+    "@antora/content-classifier-2.3.4" = {
       name = "_at_antora_slash_content-classifier";
       packageName = "@antora/content-classifier";
-      version = "2.3.3";
+      version = "2.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-2.3.3.tgz";
-        sha512 = "VLnOIuL0uRasQsXJ8m2vjpAFdEkpWfs1L32OuVupQ1SwjpUAvJz46W3pVg9qxxEWRRjtidCvcc3KY0LI6X0Jvw==";
+        url = "https://registry.npmjs.org/@antora/content-classifier/-/content-classifier-2.3.4.tgz";
+        sha512 = "DR4I6dLSZEFOS3T0F/hYwLf3AGY2Rb3e9j8V8ygEFzdP8OySAAZWyTjjJPF4pJZqjWtqD7s7S1f5/cCI83977Q==";
       };
     };
-    "@antora/document-converter-2.3.3" = {
+    "@antora/document-converter-2.3.4" = {
       name = "_at_antora_slash_document-converter";
       packageName = "@antora/document-converter";
-      version = "2.3.3";
+      version = "2.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/document-converter/-/document-converter-2.3.3.tgz";
-        sha512 = "mGdDHRxYPts3QiT/thYVoQz1QgFXN6ZFU2jgjX0VmCzcIwKGK0TOgzbp+1A3V0o92VAISEmrjC812orbtHeKqA==";
+        url = "https://registry.npmjs.org/@antora/document-converter/-/document-converter-2.3.4.tgz";
+        sha512 = "Fo2SKdX3BlNrvfQEBOi2II+YmYzdEqKQ5+lO2pzxJuNBfqN0kJJYYk30jFPR27h6QuU43U/XZgufyDt+FjfdZg==";
       };
     };
     "@antora/expand-path-helper-1.0.0" = {
@@ -94,85 +166,85 @@ let
         sha512 = "hg3y6M3OvRTb7jtLAnwwloYDxafbyKYttcf16kGCXvP7Wqosh7c+Ag+ltaZ7VSebpzpphO/umb/BXdpU7rxapw==";
       };
     };
-    "@antora/navigation-builder-2.3.3" = {
+    "@antora/navigation-builder-2.3.4" = {
       name = "_at_antora_slash_navigation-builder";
       packageName = "@antora/navigation-builder";
-      version = "2.3.3";
+      version = "2.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-2.3.3.tgz";
-        sha512 = "dx8PPFPvRBF+KInDXZU8k5dJ3sIVh1VvfsZhPUI27d5HMi+FRa0le8PK0OK5Hms4ixY/c1lXGcCAPFt0aH4Lxw==";
+        url = "https://registry.npmjs.org/@antora/navigation-builder/-/navigation-builder-2.3.4.tgz";
+        sha512 = "55I7p9tNTernQ/YR1+mp6RRXMV5EcU8q20Tdodt3mazdm3ObTe9E9XVAvUDFmDzRA27D0eb06jVRwLoth1gHYA==";
       };
     };
-    "@antora/page-composer-2.3.3" = {
+    "@antora/page-composer-2.3.4" = {
       name = "_at_antora_slash_page-composer";
       packageName = "@antora/page-composer";
-      version = "2.3.3";
+      version = "2.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/page-composer/-/page-composer-2.3.3.tgz";
-        sha512 = "yp1bHj5twD8TbBn8MHwe7488EB+xVmbyFJBvV2GLMyiWN7DnlCaW/AaCiw05vsU4mDAd+MQ8P+KeNhDRZnlU2w==";
+        url = "https://registry.npmjs.org/@antora/page-composer/-/page-composer-2.3.4.tgz";
+        sha512 = "xY0O9X87DzcoP6k/5Jx55ysy0iQIhgav3q1JbOQK/FoYQYHbiQgmVWOjJdqh5nZw57ih3yE20JROPuYqOYuUZA==";
       };
     };
-    "@antora/playbook-builder-2.3.3" = {
+    "@antora/playbook-builder-2.3.4" = {
       name = "_at_antora_slash_playbook-builder";
       packageName = "@antora/playbook-builder";
-      version = "2.3.3";
+      version = "2.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-2.3.3.tgz";
-        sha512 = "X9S38WgX2diZISNF4QKdF4ZfdND4ySsMlI26Iz4iybxf7xNlUJE1lAk9RM57Ooq543lEUNSnYHpECb1tog2BNw==";
+        url = "https://registry.npmjs.org/@antora/playbook-builder/-/playbook-builder-2.3.4.tgz";
+        sha512 = "iPjBndcoZhWqpN608WOkXKUUD94b3JX38igebshiT5/NRINJbeEclpdEX/gPv8D1Z1JcrSVGURZQO1uML76dkg==";
       };
     };
-    "@antora/redirect-producer-2.3.3" = {
+    "@antora/redirect-producer-2.3.4" = {
       name = "_at_antora_slash_redirect-producer";
       packageName = "@antora/redirect-producer";
-      version = "2.3.3";
+      version = "2.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-2.3.3.tgz";
-        sha512 = "69QtpB9wPVsg7/ykJq8zYUrHywSOtfgJEizxK+GmWharjZyrMReNB7IX1pg7Dk8qI6CGB0OOkhIYC41nGmuhmg==";
+        url = "https://registry.npmjs.org/@antora/redirect-producer/-/redirect-producer-2.3.4.tgz";
+        sha512 = "148amiLc+1Pod6kluAOBke8OATFWFUW3LZdTPFVfqX1lJolCp5ciOnGciy52sIIysSyVkQUjotEUhqGO9Af1EQ==";
       };
     };
-    "@antora/site-mapper-2.3.3" = {
+    "@antora/site-mapper-2.3.4" = {
       name = "_at_antora_slash_site-mapper";
       packageName = "@antora/site-mapper";
-      version = "2.3.3";
+      version = "2.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-2.3.3.tgz";
-        sha512 = "ERMGWl6s9B42crML7Tt4alPdJ/diSE6zQUSIMbbK7biI1EzjwxUCgKQ5lRJllUuGAdcXuYWQLGrpj/CWJzUXXA==";
+        url = "https://registry.npmjs.org/@antora/site-mapper/-/site-mapper-2.3.4.tgz";
+        sha512 = "GVghn6ausIWZlUfbEEdDD4YB7M1mWJAUMokyha9sE5w0gyYoWwukKWQiwCwk/JhvnwXunMLhEUm6y2nrHEmlLw==";
       };
     };
-    "@antora/site-publisher-2.3.3" = {
+    "@antora/site-publisher-2.3.4" = {
       name = "_at_antora_slash_site-publisher";
       packageName = "@antora/site-publisher";
-      version = "2.3.3";
+      version = "2.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-2.3.3.tgz";
-        sha512 = "LAavxXd3wmH0hWqNkKMgQuj/fjE08BTO6zYR51KLBO798h0f7H0OgyBI+p8c7l/QANpAfjaWyBpbR1zOxnLCMQ==";
+        url = "https://registry.npmjs.org/@antora/site-publisher/-/site-publisher-2.3.4.tgz";
+        sha512 = "7xI/5OdjKq5tkdGzE0ABkl/QpIcgtnof+rnIWZweQKeQtA3LWutvEHtdIeXLQt0oNZmE/kf45FwC2XCg9/ptDg==";
       };
     };
-    "@antora/ui-loader-2.3.3" = {
+    "@antora/ui-loader-2.3.4" = {
       name = "_at_antora_slash_ui-loader";
       packageName = "@antora/ui-loader";
-      version = "2.3.3";
+      version = "2.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-2.3.3.tgz";
-        sha512 = "bQVb6PE34iDmZj6wZZzYm3rLjguxoSqHZj4QReVQsOle/LdIwl48hV9Iz/Pivy9NtVCui9LL/lmSQzMt0G0jkw==";
+        url = "https://registry.npmjs.org/@antora/ui-loader/-/ui-loader-2.3.4.tgz";
+        sha512 = "eorTmZW7zc6ZHgGLt3Vrq7mzPuobPeJnyfli50/m/DIQ91slkqjPKUYGcq4paPEz6IWoa7LT2ZwtwA5KzMyTPg==";
       };
     };
-    "@apollo/federation-0.16.2" = {
+    "@apollo/federation-0.20.0" = {
       name = "_at_apollo_slash_federation";
       packageName = "@apollo/federation";
-      version = "0.16.2";
+      version = "0.20.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollo/federation/-/federation-0.16.2.tgz";
-        sha512 = "pjTkcl1KGxLZOPpVyTygZNuLxZJCCMvGVonPJMoFzQYt63/o0DwpwbcNlbvpdryWjjFgvi5diqJxRFGuxndEPA==";
+        url = "https://registry.npmjs.org/@apollo/federation/-/federation-0.20.0.tgz";
+        sha512 = "Q2eGSjrArtY04FSVIxUK3/JaVDDw4aJZBRl0+UZ1dwrpk6YtBpydW2u4X6dPTnBqRDpKVGVmc9gkQr8d3LpcKA==";
       };
     };
-    "@apollo/protobufjs-1.0.4" = {
+    "@apollo/protobufjs-1.0.5" = {
       name = "_at_apollo_slash_protobufjs";
       packageName = "@apollo/protobufjs";
-      version = "1.0.4";
+      version = "1.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.0.4.tgz";
-        sha512 = "EE3zx+/D/wur/JiLp6VCiw1iYdyy1lCJMf8CGPkLeDt5QJrN4N8tKFx33Ah4V30AUQzMk7Uz4IXKZ1LOj124gA==";
+        url = "https://registry.npmjs.org/@apollo/protobufjs/-/protobufjs-1.0.5.tgz";
+        sha512 = "ZtyaBH1icCgqwIGb3zrtopV2D5Q8yxibkJzlaViM08eOhTQc7rACdYu0pfORFfhllvdMZ3aq69vifYHszY4gNA==";
       };
     };
     "@apollographql/apollo-tools-0.4.8" = {
@@ -220,13 +292,22 @@ let
         sha512 = "fDj5rWlTi/czvUS5t7V7I45Ai6bOO3Z7JARYj21Y2xxfbRGtJi6h8FvLX0N/EbzQgo/fiZc/HAhtfwn+OCjD7A==";
       };
     };
-    "@apollographql/graphql-playground-html-1.6.24" = {
+    "@apollographql/graphql-playground-html-1.6.26" = {
       name = "_at_apollographql_slash_graphql-playground-html";
       packageName = "@apollographql/graphql-playground-html";
-      version = "1.6.24";
+      version = "1.6.26";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.26.tgz";
+        sha512 = "XAwXOIab51QyhBxnxySdK3nuMEUohhDsHQ5Rbco/V1vjlP75zZ0ZLHD9dTpXTN8uxKxopb2lUvJTq+M4g2Q0HQ==";
+      };
+    };
+    "@ardatan/aggregate-error-0.0.6" = {
+      name = "_at_ardatan_slash_aggregate-error";
+      packageName = "@ardatan/aggregate-error";
+      version = "0.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@apollographql/graphql-playground-html/-/graphql-playground-html-1.6.24.tgz";
-        sha512 = "8GqG48m1XqyXh4mIZrtB5xOhUwSsh1WsrrsaZQOEYYql3YN9DEu9OOSg0ILzXHZo/h2Q74777YE4YzlArQzQEQ==";
+        url = "https://registry.npmjs.org/@ardatan/aggregate-error/-/aggregate-error-0.0.6.tgz";
+        sha512 = "vyrkEHG1jrukmzTPtyWB4NLPauUw5bQeg4uhn8f+1SSynmrOcyvlb1GKQjjgoBzElLdfXCRYX8UnBlhklOHYRQ==";
       };
     };
     "@azu/format-text-1.0.1" = {
@@ -247,283 +328,301 @@ let
         sha1 = "e70187f8a862e191b1bce6c0268f13acd3a56b20";
       };
     };
-    "@babel/code-frame-7.10.1" = {
+    "@babel/code-frame-7.10.4" = {
       name = "_at_babel_slash_code-frame";
       packageName = "@babel/code-frame";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz";
-        sha512 = "IGhtTmpjGbYzcEDOw7DcQtbQSXcG9ftmAXtWTu9V936vDye4xjjekktFAtgZsWpzTj/X01jocB46mTywm/4SZw==";
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz";
+        sha512 = "vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==";
       };
     };
-    "@babel/compat-data-7.10.1" = {
+    "@babel/compat-data-7.11.0" = {
       name = "_at_babel_slash_compat-data";
       packageName = "@babel/compat-data";
-      version = "7.10.1";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.10.1.tgz";
-        sha512 = "CHvCj7So7iCkGKPRFUfryXIkU2gSBw7VSZFYLsqVhrS47269VK2Hfi9S/YcublPMW8k1u2bQBlbDruoQEm4fgw==";
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz";
+        sha512 = "TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==";
       };
     };
-    "@babel/core-7.10.2" = {
+    "@babel/core-7.11.6" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.10.2";
+      version = "7.11.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.10.2.tgz";
-        sha512 = "KQmV9yguEjQsXqyOUGKjS4+3K8/DlOCE2pZcq4augdQmtTy5iv5EHtmMSJ7V4c1BIPjuwtZYqYLCq9Ga+hGBRQ==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz";
+        sha512 = "Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==";
       };
     };
-    "@babel/generator-7.10.2" = {
+    "@babel/generator-7.11.4" = {
       name = "_at_babel_slash_generator";
       packageName = "@babel/generator";
-      version = "7.10.2";
+      version = "7.11.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz";
-        sha512 = "AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==";
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.11.4.tgz";
+        sha512 = "Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g==";
       };
     };
-    "@babel/helper-annotate-as-pure-7.10.1" = {
+    "@babel/generator-7.11.6" = {
+      name = "_at_babel_slash_generator";
+      packageName = "@babel/generator";
+      version = "7.11.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz";
+        sha512 = "DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==";
+      };
+    };
+    "@babel/helper-annotate-as-pure-7.10.4" = {
       name = "_at_babel_slash_helper-annotate-as-pure";
       packageName = "@babel/helper-annotate-as-pure";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.1.tgz";
-        sha512 = "ewp3rvJEwLaHgyWGe4wQssC2vjks3E80WiUe2BpMb0KhreTjMROCbxXcEovTrbeGVdQct5VjQfrv9EgC+xMzCw==";
+        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz";
+        sha512 = "XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==";
       };
     };
-    "@babel/helper-builder-binary-assignment-operator-visitor-7.10.1" = {
+    "@babel/helper-builder-binary-assignment-operator-visitor-7.10.4" = {
       name = "_at_babel_slash_helper-builder-binary-assignment-operator-visitor";
       packageName = "@babel/helper-builder-binary-assignment-operator-visitor";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.1.tgz";
-        sha512 = "cQpVq48EkYxUU0xozpGCLla3wlkdRRqLWu1ksFMXA9CM5KQmyyRpSEsYXbao7JUkOw/tAaYKCaYyZq6HOFYtyw==";
+        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz";
+        sha512 = "L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==";
       };
     };
-    "@babel/helper-builder-react-jsx-7.10.1" = {
+    "@babel/helper-builder-react-jsx-7.10.4" = {
       name = "_at_babel_slash_helper-builder-react-jsx";
       packageName = "@babel/helper-builder-react-jsx";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.1.tgz";
-        sha512 = "KXzzpyWhXgzjXIlJU1ZjIXzUPdej1suE6vzqgImZ/cpAsR/CC8gUcX4EWRmDfWz/cs6HOCPMBIJ3nKoXt3BFuw==";
+        url = "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz";
+        sha512 = "5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==";
       };
     };
-    "@babel/helper-builder-react-jsx-experimental-7.10.1" = {
+    "@babel/helper-builder-react-jsx-experimental-7.11.5" = {
       name = "_at_babel_slash_helper-builder-react-jsx-experimental";
       packageName = "@babel/helper-builder-react-jsx-experimental";
-      version = "7.10.1";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.10.1.tgz";
-        sha512 = "irQJ8kpQUV3JasXPSFQ+LCCtJSc5ceZrPFVj6TElR6XCHssi3jV8ch3odIrNtjJFRZZVbrOEfJMI79TPU/h1pQ==";
+        url = "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.11.5.tgz";
+        sha512 = "Vc4aPJnRZKWfzeCBsqTBnzulVNjABVdahSPhtdMD3Vs80ykx4a87jTHtF/VR+alSrDmNvat7l13yrRHauGcHVw==";
       };
     };
-    "@babel/helper-compilation-targets-7.10.2" = {
+    "@babel/helper-compilation-targets-7.10.4" = {
       name = "_at_babel_slash_helper-compilation-targets";
       packageName = "@babel/helper-compilation-targets";
-      version = "7.10.2";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz";
-        sha512 = "hYgOhF4To2UTB4LTaZepN/4Pl9LD4gfbJx8A34mqoluT8TLbof1mhUlYuNWTEebONa8+UlCC4X0TEXu7AOUyGA==";
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz";
+        sha512 = "a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==";
       };
     };
-    "@babel/helper-create-class-features-plugin-7.10.2" = {
+    "@babel/helper-create-class-features-plugin-7.10.5" = {
       name = "_at_babel_slash_helper-create-class-features-plugin";
       packageName = "@babel/helper-create-class-features-plugin";
-      version = "7.10.2";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.2.tgz";
-        sha512 = "5C/QhkGFh1vqcziq1vAL6SI9ymzUp8BCYjFpvYVhWP4DlATIb3u5q3iUd35mvlyGs8fO7hckkW7i0tmH+5+bvQ==";
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz";
+        sha512 = "0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==";
       };
     };
-    "@babel/helper-create-regexp-features-plugin-7.10.1" = {
+    "@babel/helper-create-regexp-features-plugin-7.10.4" = {
       name = "_at_babel_slash_helper-create-regexp-features-plugin";
       packageName = "@babel/helper-create-regexp-features-plugin";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.1.tgz";
-        sha512 = "Rx4rHS0pVuJn5pJOqaqcZR4XSgeF9G/pO/79t+4r7380tXFJdzImFnxMU19f83wjSrmKHq6myrM10pFHTGzkUA==";
+        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz";
+        sha512 = "2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==";
       };
     };
-    "@babel/helper-define-map-7.10.1" = {
+    "@babel/helper-define-map-7.10.5" = {
       name = "_at_babel_slash_helper-define-map";
       packageName = "@babel/helper-define-map";
-      version = "7.10.1";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.1.tgz";
-        sha512 = "+5odWpX+OnvkD0Zmq7panrMuAGQBu6aPUgvMzuMGo4R+jUOvealEj2hiqI6WhxgKrTpFoFj0+VdsuA8KDxHBDg==";
+        url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz";
+        sha512 = "fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==";
       };
     };
-    "@babel/helper-explode-assignable-expression-7.10.1" = {
+    "@babel/helper-explode-assignable-expression-7.11.4" = {
       name = "_at_babel_slash_helper-explode-assignable-expression";
       packageName = "@babel/helper-explode-assignable-expression";
-      version = "7.10.1";
+      version = "7.11.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.1.tgz";
-        sha512 = "vcUJ3cDjLjvkKzt6rHrl767FeE7pMEYfPanq5L16GRtrXIoznc0HykNW2aEYkcnP76P0isoqJ34dDMFZwzEpJg==";
+        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz";
+        sha512 = "ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ==";
       };
     };
-    "@babel/helper-function-name-7.10.1" = {
+    "@babel/helper-function-name-7.10.4" = {
       name = "_at_babel_slash_helper-function-name";
       packageName = "@babel/helper-function-name";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.1.tgz";
-        sha512 = "fcpumwhs3YyZ/ttd5Rz0xn0TpIwVkN7X0V38B9TWNfVF42KEkhkAAuPCQ3oXmtTRtiPJrmZ0TrfS0GKF0eMaRQ==";
+        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
+        sha512 = "YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==";
       };
     };
-    "@babel/helper-get-function-arity-7.10.1" = {
+    "@babel/helper-get-function-arity-7.10.4" = {
       name = "_at_babel_slash_helper-get-function-arity";
       packageName = "@babel/helper-get-function-arity";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.1.tgz";
-        sha512 = "F5qdXkYGOQUb0hpRaPoetF9AnsXknKjWMZ+wmsIRsp5ge5sFh4c3h1eH2pRTTuy9KKAA2+TTYomGXAtEL2fQEw==";
+        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
+        sha512 = "EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==";
       };
     };
-    "@babel/helper-hoist-variables-7.10.1" = {
+    "@babel/helper-hoist-variables-7.10.4" = {
       name = "_at_babel_slash_helper-hoist-variables";
       packageName = "@babel/helper-hoist-variables";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.1.tgz";
-        sha512 = "vLm5srkU8rI6X3+aQ1rQJyfjvCBLXP8cAGeuw04zeAM2ItKb1e7pmVmLyHb4sDaAYnLL13RHOZPLEtcGZ5xvjg==";
+        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz";
+        sha512 = "wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==";
       };
     };
-    "@babel/helper-member-expression-to-functions-7.10.1" = {
+    "@babel/helper-member-expression-to-functions-7.11.0" = {
       name = "_at_babel_slash_helper-member-expression-to-functions";
       packageName = "@babel/helper-member-expression-to-functions";
-      version = "7.10.1";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.1.tgz";
-        sha512 = "u7XLXeM2n50gb6PWJ9hoO5oO7JFPaZtrh35t8RqKLT1jFKj9IWeD1zrcrYp1q1qiZTdEarfDWfTIP8nGsu0h5g==";
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz";
+        sha512 = "JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==";
       };
     };
-    "@babel/helper-module-imports-7.10.1" = {
+    "@babel/helper-module-imports-7.10.4" = {
       name = "_at_babel_slash_helper-module-imports";
       packageName = "@babel/helper-module-imports";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.1.tgz";
-        sha512 = "SFxgwYmZ3HZPyZwJRiVNLRHWuW2OgE5k2nrVs6D9Iv4PPnXVffuEHy83Sfx/l4SqF+5kyJXjAyUmrG7tNm+qVg==";
+        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz";
+        sha512 = "nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==";
       };
     };
-    "@babel/helper-module-transforms-7.10.1" = {
+    "@babel/helper-module-transforms-7.11.0" = {
       name = "_at_babel_slash_helper-module-transforms";
       packageName = "@babel/helper-module-transforms";
-      version = "7.10.1";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.10.1.tgz";
-        sha512 = "RLHRCAzyJe7Q7sF4oy2cB+kRnU4wDZY/H2xJFGof+M+SJEGhZsb+GFj5j1AD8NiSaVBJ+Pf0/WObiXu/zxWpFg==";
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz";
+        sha512 = "02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==";
       };
     };
-    "@babel/helper-optimise-call-expression-7.10.1" = {
+    "@babel/helper-optimise-call-expression-7.10.4" = {
       name = "_at_babel_slash_helper-optimise-call-expression";
       packageName = "@babel/helper-optimise-call-expression";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.1.tgz";
-        sha512 = "a0DjNS1prnBsoKx83dP2falChcs7p3i8VMzdrSbfLhuQra/2ENC4sbri34dz/rWmDADsmF1q5GbfaXydh0Jbjg==";
+        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz";
+        sha512 = "n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==";
       };
     };
-    "@babel/helper-plugin-utils-7.10.1" = {
+    "@babel/helper-plugin-utils-7.10.4" = {
       name = "_at_babel_slash_helper-plugin-utils";
       packageName = "@babel/helper-plugin-utils";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.1.tgz";
-        sha512 = "fvoGeXt0bJc7VMWZGCAEBEMo/HAjW2mP8apF5eXK0wSqwLAVHAISCWRoLMBMUs2kqeaG77jltVqu4Hn8Egl3nA==";
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
+        sha512 = "O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==";
       };
     };
-    "@babel/helper-regex-7.10.1" = {
+    "@babel/helper-regex-7.10.5" = {
       name = "_at_babel_slash_helper-regex";
       packageName = "@babel/helper-regex";
-      version = "7.10.1";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.1.tgz";
-        sha512 = "7isHr19RsIJWWLLFn21ubFt223PjQyg1HY7CZEMRr820HttHPpVvrsIN3bUOo44DEfFV4kBXO7Abbn9KTUZV7g==";
+        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz";
+        sha512 = "68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==";
       };
     };
-    "@babel/helper-remap-async-to-generator-7.10.1" = {
+    "@babel/helper-remap-async-to-generator-7.11.4" = {
       name = "_at_babel_slash_helper-remap-async-to-generator";
       packageName = "@babel/helper-remap-async-to-generator";
-      version = "7.10.1";
+      version = "7.11.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.1.tgz";
-        sha512 = "RfX1P8HqsfgmJ6CwaXGKMAqbYdlleqglvVtht0HGPMSsy2V6MqLlOJVF/0Qyb/m2ZCi2z3q3+s6Pv7R/dQuZ6A==";
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz";
+        sha512 = "tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA==";
       };
     };
-    "@babel/helper-replace-supers-7.10.1" = {
+    "@babel/helper-replace-supers-7.10.4" = {
       name = "_at_babel_slash_helper-replace-supers";
       packageName = "@babel/helper-replace-supers";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.1.tgz";
-        sha512 = "SOwJzEfpuQwInzzQJGjGaiG578UYmyi2Xw668klPWV5n07B73S0a9btjLk/52Mlcxa+5AdIYqws1KyXRfMoB7A==";
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz";
+        sha512 = "sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==";
       };
     };
-    "@babel/helper-simple-access-7.10.1" = {
+    "@babel/helper-simple-access-7.10.4" = {
       name = "_at_babel_slash_helper-simple-access";
       packageName = "@babel/helper-simple-access";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.1.tgz";
-        sha512 = "VSWpWzRzn9VtgMJBIWTZ+GP107kZdQ4YplJlCmIrjoLVSi/0upixezHCDG8kpPVTBJpKfxTH01wDhh+jS2zKbw==";
+        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz";
+        sha512 = "0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==";
       };
     };
-    "@babel/helper-split-export-declaration-7.10.1" = {
+    "@babel/helper-skip-transparent-expression-wrappers-7.11.0" = {
+      name = "_at_babel_slash_helper-skip-transparent-expression-wrappers";
+      packageName = "@babel/helper-skip-transparent-expression-wrappers";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz";
+        sha512 = "0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==";
+      };
+    };
+    "@babel/helper-split-export-declaration-7.11.0" = {
       name = "_at_babel_slash_helper-split-export-declaration";
       packageName = "@babel/helper-split-export-declaration";
-      version = "7.10.1";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.1.tgz";
-        sha512 = "UQ1LVBPrYdbchNhLwj6fetj46BcFwfS4NllJo/1aJsT+1dLTEnXJL0qHqtY7gPzF8S2fXBJamf1biAXV3X077g==";
+        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz";
+        sha512 = "74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==";
       };
     };
-    "@babel/helper-validator-identifier-7.10.1" = {
+    "@babel/helper-validator-identifier-7.10.4" = {
       name = "_at_babel_slash_helper-validator-identifier";
       packageName = "@babel/helper-validator-identifier";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.1.tgz";
-        sha512 = "5vW/JXLALhczRCWP0PnFDMCJAchlBvM7f4uk/jXritBnIa6E1KmqmtrS3yn1LAnxFBypQ3eneLuXjsnfQsgILw==";
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
+        sha512 = "3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==";
       };
     };
-    "@babel/helper-wrap-function-7.10.1" = {
+    "@babel/helper-wrap-function-7.10.4" = {
       name = "_at_babel_slash_helper-wrap-function";
       packageName = "@babel/helper-wrap-function";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.1.tgz";
-        sha512 = "C0MzRGteVDn+H32/ZgbAv5r56f2o1fZSA/rj/TYo8JEJNHg+9BdSmKBUND0shxWRztWhjlT2cvHYuynpPsVJwQ==";
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz";
+        sha512 = "6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==";
       };
     };
-    "@babel/helpers-7.10.1" = {
+    "@babel/helpers-7.10.4" = {
       name = "_at_babel_slash_helpers";
       packageName = "@babel/helpers";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.1.tgz";
-        sha512 = "muQNHF+IdU6wGgkaJyhhEmI54MOZBKsFfsXFhboz1ybwJ1Kl7IHlbm2a++4jwrmY5UYsgitt5lfqo1wMFcHmyw==";
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz";
+        sha512 = "L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==";
       };
     };
-    "@babel/highlight-7.10.1" = {
+    "@babel/highlight-7.10.4" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.1.tgz";
-        sha512 = "8rMof+gVP8mxYZApLF/JgNDAkdKa+aJt3ZYxF8z6+j/hpeXL7iMsKCPHa2jNMHu/qqBwzQF4OHNoYi8dMA/rYg==";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz";
+        sha512 = "i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==";
       };
     };
-    "@babel/parser-7.10.2" = {
+    "@babel/parser-7.11.5" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.10.2";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz";
-        sha512 = "PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz";
+        sha512 = "X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==";
       };
     };
     "@babel/plugin-external-helpers-7.8.3" = {
@@ -535,103 +634,121 @@ let
         sha512 = "mx0WXDDiIl5DwzMtzWGRSPugXi9BxROS05GQrhLNbEamhBiicgn994ibwkyiBH+6png7bm/yA7AUsvHyCXi4Vw==";
       };
     };
-    "@babel/plugin-proposal-async-generator-functions-7.10.1" = {
+    "@babel/plugin-proposal-async-generator-functions-7.10.5" = {
       name = "_at_babel_slash_plugin-proposal-async-generator-functions";
       packageName = "@babel/plugin-proposal-async-generator-functions";
-      version = "7.10.1";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.1.tgz";
-        sha512 = "vzZE12ZTdB336POZjmpblWfNNRpMSua45EYnRigE2XsZxcXcIyly2ixnTJasJE4Zq3U7t2d8rRF7XRUuzHxbOw==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz";
+        sha512 = "cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==";
       };
     };
-    "@babel/plugin-proposal-class-properties-7.10.1" = {
+    "@babel/plugin-proposal-class-properties-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-class-properties";
       packageName = "@babel/plugin-proposal-class-properties";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.1.tgz";
-        sha512 = "sqdGWgoXlnOdgMXU+9MbhzwFRgxVLeiGBqTrnuS7LC2IBU31wSsESbTUreT2O418obpfPdGUR2GbEufZF1bpqw==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz";
+        sha512 = "vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==";
       };
     };
-    "@babel/plugin-proposal-dynamic-import-7.10.1" = {
+    "@babel/plugin-proposal-dynamic-import-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-dynamic-import";
       packageName = "@babel/plugin-proposal-dynamic-import";
-      version = "7.10.1";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz";
+        sha512 = "up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==";
+      };
+    };
+    "@babel/plugin-proposal-export-namespace-from-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-export-namespace-from";
+      packageName = "@babel/plugin-proposal-export-namespace-from";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.1.tgz";
-        sha512 = "Cpc2yUVHTEGPlmiQzXj026kqwjEQAD9I4ZC16uzdbgWgitg/UHKHLffKNCQZ5+y8jpIZPJcKcwsr2HwPh+w3XA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz";
+        sha512 = "aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==";
       };
     };
-    "@babel/plugin-proposal-json-strings-7.10.1" = {
+    "@babel/plugin-proposal-json-strings-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-json-strings";
       packageName = "@babel/plugin-proposal-json-strings";
-      version = "7.10.1";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz";
+        sha512 = "fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==";
+      };
+    };
+    "@babel/plugin-proposal-logical-assignment-operators-7.11.0" = {
+      name = "_at_babel_slash_plugin-proposal-logical-assignment-operators";
+      packageName = "@babel/plugin-proposal-logical-assignment-operators";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.1.tgz";
-        sha512 = "m8r5BmV+ZLpWPtMY2mOKN7wre6HIO4gfIiV+eOmsnZABNenrt/kzYBwrh+KOfgumSWpnlGs5F70J8afYMSJMBg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz";
+        sha512 = "/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==";
       };
     };
-    "@babel/plugin-proposal-nullish-coalescing-operator-7.10.1" = {
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
       packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.1.tgz";
-        sha512 = "56cI/uHYgL2C8HVuHOuvVowihhX0sxb3nnfVRzUeVHTWmRHTZrKuAh/OBIMggGU/S1g/1D2CRCXqP+3u7vX7iA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz";
+        sha512 = "wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==";
       };
     };
-    "@babel/plugin-proposal-numeric-separator-7.10.1" = {
+    "@babel/plugin-proposal-numeric-separator-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-numeric-separator";
       packageName = "@babel/plugin-proposal-numeric-separator";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.1.tgz";
-        sha512 = "jjfym4N9HtCiNfyyLAVD8WqPYeHUrw4ihxuAynWj6zzp2gf9Ey2f7ImhFm6ikB3CLf5Z/zmcJDri6B4+9j9RsA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz";
+        sha512 = "73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==";
       };
     };
-    "@babel/plugin-proposal-object-rest-spread-7.10.1" = {
+    "@babel/plugin-proposal-object-rest-spread-7.11.0" = {
       name = "_at_babel_slash_plugin-proposal-object-rest-spread";
       packageName = "@babel/plugin-proposal-object-rest-spread";
-      version = "7.10.1";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.1.tgz";
-        sha512 = "Z+Qri55KiQkHh7Fc4BW6o+QBuTagbOp9txE+4U1i79u9oWlf2npkiDx+Rf3iK3lbcHBuNy9UOkwuR5wOMH3LIQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz";
+        sha512 = "wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==";
       };
     };
-    "@babel/plugin-proposal-optional-catch-binding-7.10.1" = {
+    "@babel/plugin-proposal-optional-catch-binding-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
       packageName = "@babel/plugin-proposal-optional-catch-binding";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.1.tgz";
-        sha512 = "VqExgeE62YBqI3ogkGoOJp1R6u12DFZjqwJhqtKc2o5m1YTUuUWnos7bZQFBhwkxIFpWYJ7uB75U7VAPPiKETA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz";
+        sha512 = "LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==";
       };
     };
-    "@babel/plugin-proposal-optional-chaining-7.10.1" = {
+    "@babel/plugin-proposal-optional-chaining-7.11.0" = {
       name = "_at_babel_slash_plugin-proposal-optional-chaining";
       packageName = "@babel/plugin-proposal-optional-chaining";
-      version = "7.10.1";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.1.tgz";
-        sha512 = "dqQj475q8+/avvok72CF3AOSV/SGEcH29zT5hhohqqvvZ2+boQoOr7iGldBG5YXTO2qgCgc2B3WvVLUdbeMlGA==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz";
+        sha512 = "v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==";
       };
     };
-    "@babel/plugin-proposal-private-methods-7.10.1" = {
+    "@babel/plugin-proposal-private-methods-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-private-methods";
       packageName = "@babel/plugin-proposal-private-methods";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.1.tgz";
-        sha512 = "RZecFFJjDiQ2z6maFprLgrdnm0OzoC23Mx89xf1CcEsxmHuzuXOdniEuI+S3v7vjQG4F5sa6YtUp+19sZuSxHg==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz";
+        sha512 = "wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==";
       };
     };
-    "@babel/plugin-proposal-unicode-property-regex-7.10.1" = {
+    "@babel/plugin-proposal-unicode-property-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
       packageName = "@babel/plugin-proposal-unicode-property-regex";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.1.tgz";
-        sha512 = "JjfngYRvwmPwmnbRZyNiPFI8zxCZb8euzbCG/LxyKdeTb59tVciKo9GK9bi6JYKInk1H11Dq9j/zRqIH4KigfQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz";
+        sha512 = "H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==";
       };
     };
     "@babel/plugin-syntax-async-generators-7.8.4" = {
@@ -652,13 +769,13 @@ let
         sha512 = "wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==";
       };
     };
-    "@babel/plugin-syntax-class-properties-7.10.1" = {
+    "@babel/plugin-syntax-class-properties-7.10.4" = {
       name = "_at_babel_slash_plugin-syntax-class-properties";
       packageName = "@babel/plugin-syntax-class-properties";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.1.tgz";
-        sha512 = "Gf2Yx/iRs1JREDtVZ56OrjjgFHCaldpTnuy9BHla10qyVT3YkIIGEtoDWhyop0ksu1GvNjHIoYRBqm3zoR1jyQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz";
+        sha512 = "GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==";
       };
     };
     "@babel/plugin-syntax-dynamic-import-7.8.3" = {
@@ -670,13 +787,31 @@ let
         sha512 = "5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==";
       };
     };
-    "@babel/plugin-syntax-flow-7.10.1" = {
+    "@babel/plugin-syntax-export-namespace-from-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-export-namespace-from";
+      packageName = "@babel/plugin-syntax-export-namespace-from";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz";
+        sha512 = "MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==";
+      };
+    };
+    "@babel/plugin-syntax-flow-7.10.4" = {
       name = "_at_babel_slash_plugin-syntax-flow";
       packageName = "@babel/plugin-syntax-flow";
-      version = "7.10.1";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz";
+        sha512 = "yxQsX1dJixF4qEEdzVbst3SZQ58Nrooz8NV9Z9GL4byTE25BvJgl5lf0RECUf0fh28rZBb/RYTWn/eeKwCMrZQ==";
+      };
+    };
+    "@babel/plugin-syntax-import-meta-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-import-meta";
+      packageName = "@babel/plugin-syntax-import-meta";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.1.tgz";
-        sha512 = "b3pWVncLBYoPP60UOTc7NMlbtsHQ6ITim78KQejNHK6WJ2mzV5kCcg4mIWpasAfJEgwVTibwo2e+FU7UEIKQUg==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz";
+        sha512 = "Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==";
       };
     };
     "@babel/plugin-syntax-json-strings-7.8.3" = {
@@ -688,22 +823,22 @@ let
         sha512 = "lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==";
       };
     };
-    "@babel/plugin-syntax-jsx-7.10.1" = {
+    "@babel/plugin-syntax-jsx-7.10.4" = {
       name = "_at_babel_slash_plugin-syntax-jsx";
       packageName = "@babel/plugin-syntax-jsx";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.1.tgz";
-        sha512 = "+OxyOArpVFXQeXKLO9o+r2I4dIoVoy6+Uu0vKELrlweDM3QJADZj+Z+5ERansZqIZBcLj42vHnDI8Rz9BnRIuQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz";
+        sha512 = "KCg9mio9jwiARCB7WAcQ7Y1q+qicILjoK8LP/VkPkEKaf5dkaZZK1EcTe91a3JJlZ3qy6L5s9X52boEYi8DM9g==";
       };
     };
-    "@babel/plugin-syntax-logical-assignment-operators-7.10.1" = {
+    "@babel/plugin-syntax-logical-assignment-operators-7.10.4" = {
       name = "_at_babel_slash_plugin-syntax-logical-assignment-operators";
       packageName = "@babel/plugin-syntax-logical-assignment-operators";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.1.tgz";
-        sha512 = "XyHIFa9kdrgJS91CUH+ccPVTnJShr8nLGc5bG2IhGXv5p1Rd+8BleGE5yzIg2Nc1QZAdHDa0Qp4m6066OL96Iw==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz";
+        sha512 = "d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==";
       };
     };
     "@babel/plugin-syntax-nullish-coalescing-operator-7.8.3" = {
@@ -715,13 +850,13 @@ let
         sha512 = "aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==";
       };
     };
-    "@babel/plugin-syntax-numeric-separator-7.10.1" = {
+    "@babel/plugin-syntax-numeric-separator-7.10.4" = {
       name = "_at_babel_slash_plugin-syntax-numeric-separator";
       packageName = "@babel/plugin-syntax-numeric-separator";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.1.tgz";
-        sha512 = "uTd0OsHrpe3tH5gRPTxG8Voh99/WCU78vIm5NMRYPAqC8lR4vajt6KkCAknCHrx24vkPdd/05yfdGSB4EIY2mg==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz";
+        sha512 = "9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==";
       };
     };
     "@babel/plugin-syntax-object-rest-spread-7.8.3" = {
@@ -751,382 +886,382 @@ let
         sha512 = "KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==";
       };
     };
-    "@babel/plugin-syntax-top-level-await-7.10.1" = {
+    "@babel/plugin-syntax-top-level-await-7.10.4" = {
       name = "_at_babel_slash_plugin-syntax-top-level-await";
       packageName = "@babel/plugin-syntax-top-level-await";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.1.tgz";
-        sha512 = "hgA5RYkmZm8FTFT3yu2N9Bx7yVVOKYT6yEdXXo6j2JTm0wNxgqaGeQVaSHRjhfnQbX91DtjFB6McRFSlcJH3xQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz";
+        sha512 = "ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==";
       };
     };
-    "@babel/plugin-syntax-typescript-7.10.1" = {
+    "@babel/plugin-syntax-typescript-7.10.4" = {
       name = "_at_babel_slash_plugin-syntax-typescript";
       packageName = "@babel/plugin-syntax-typescript";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.1.tgz";
-        sha512 = "X/d8glkrAtra7CaQGMiGs/OGa6XgUzqPcBXCIGFCpCqnfGlT0Wfbzo/B89xHhnInTaItPK8LALblVXcUOEh95Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz";
+        sha512 = "oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ==";
       };
     };
-    "@babel/plugin-transform-arrow-functions-7.10.1" = {
+    "@babel/plugin-transform-arrow-functions-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-arrow-functions";
       packageName = "@babel/plugin-transform-arrow-functions";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.1.tgz";
-        sha512 = "6AZHgFJKP3DJX0eCNJj01RpytUa3SOGawIxweHkNX2L6PYikOZmoh5B0d7hIHaIgveMjX990IAa/xK7jRTN8OA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz";
+        sha512 = "9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==";
       };
     };
-    "@babel/plugin-transform-async-to-generator-7.10.1" = {
+    "@babel/plugin-transform-async-to-generator-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-async-to-generator";
       packageName = "@babel/plugin-transform-async-to-generator";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.1.tgz";
-        sha512 = "XCgYjJ8TY2slj6SReBUyamJn3k2JLUIiiR5b6t1mNCMSvv7yx+jJpaewakikp0uWFQSF7ChPPoe3dHmXLpISkg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz";
+        sha512 = "F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==";
       };
     };
-    "@babel/plugin-transform-block-scoped-functions-7.10.1" = {
+    "@babel/plugin-transform-block-scoped-functions-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-block-scoped-functions";
       packageName = "@babel/plugin-transform-block-scoped-functions";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.1.tgz";
-        sha512 = "B7K15Xp8lv0sOJrdVAoukKlxP9N59HS48V1J3U/JGj+Ad+MHq+am6xJVs85AgXrQn4LV8vaYFOB+pr/yIuzW8Q==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz";
+        sha512 = "WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==";
       };
     };
-    "@babel/plugin-transform-block-scoping-7.10.1" = {
+    "@babel/plugin-transform-block-scoping-7.11.1" = {
       name = "_at_babel_slash_plugin-transform-block-scoping";
       packageName = "@babel/plugin-transform-block-scoping";
-      version = "7.10.1";
+      version = "7.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.1.tgz";
-        sha512 = "8bpWG6TtF5akdhIm/uWTyjHqENpy13Fx8chg7pFH875aNLwX8JxIxqm08gmAT+Whe6AOmaTeLPe7dpLbXt+xUw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz";
+        sha512 = "00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==";
       };
     };
-    "@babel/plugin-transform-classes-7.10.1" = {
+    "@babel/plugin-transform-classes-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-classes";
       packageName = "@babel/plugin-transform-classes";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.1.tgz";
-        sha512 = "P9V0YIh+ln/B3RStPoXpEQ/CoAxQIhRSUn7aXqQ+FZJ2u8+oCtjIXR3+X0vsSD8zv+mb56K7wZW1XiDTDGiDRQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz";
+        sha512 = "2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==";
       };
     };
-    "@babel/plugin-transform-computed-properties-7.10.1" = {
+    "@babel/plugin-transform-computed-properties-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-computed-properties";
       packageName = "@babel/plugin-transform-computed-properties";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.1.tgz";
-        sha512 = "mqSrGjp3IefMsXIenBfGcPXxJxweQe2hEIwMQvjtiDQ9b1IBvDUjkAtV/HMXX47/vXf14qDNedXsIiNd1FmkaQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz";
+        sha512 = "JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==";
       };
     };
-    "@babel/plugin-transform-destructuring-7.10.1" = {
+    "@babel/plugin-transform-destructuring-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-destructuring";
       packageName = "@babel/plugin-transform-destructuring";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.1.tgz";
-        sha512 = "V/nUc4yGWG71OhaTH705pU8ZSdM6c1KmmLP8ys59oOYbT7RpMYAR3MsVOt6OHL0WzG7BlTU076va9fjJyYzJMA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz";
+        sha512 = "+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==";
       };
     };
-    "@babel/plugin-transform-dotall-regex-7.10.1" = {
+    "@babel/plugin-transform-dotall-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-dotall-regex";
       packageName = "@babel/plugin-transform-dotall-regex";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.1.tgz";
-        sha512 = "19VIMsD1dp02RvduFUmfzj8uknaO3uiHHF0s3E1OHnVsNj8oge8EQ5RzHRbJjGSetRnkEuBYO7TG1M5kKjGLOA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz";
+        sha512 = "ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==";
       };
     };
-    "@babel/plugin-transform-duplicate-keys-7.10.1" = {
+    "@babel/plugin-transform-duplicate-keys-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-duplicate-keys";
       packageName = "@babel/plugin-transform-duplicate-keys";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.1.tgz";
-        sha512 = "wIEpkX4QvX8Mo9W6XF3EdGttrIPZWozHfEaDTU0WJD/TDnXMvdDh30mzUl/9qWhnf7naicYartcEfUghTCSNpA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz";
+        sha512 = "GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==";
       };
     };
-    "@babel/plugin-transform-exponentiation-operator-7.10.1" = {
+    "@babel/plugin-transform-exponentiation-operator-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-exponentiation-operator";
       packageName = "@babel/plugin-transform-exponentiation-operator";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.1.tgz";
-        sha512 = "lr/przdAbpEA2BUzRvjXdEDLrArGRRPwbaF9rvayuHRvdQ7lUTTkZnhZrJ4LE2jvgMRFF4f0YuPQ20vhiPYxtA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz";
+        sha512 = "S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==";
       };
     };
-    "@babel/plugin-transform-flow-strip-types-7.10.1" = {
+    "@babel/plugin-transform-flow-strip-types-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-flow-strip-types";
       packageName = "@babel/plugin-transform-flow-strip-types";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.1.tgz";
-        sha512 = "i4o0YwiJBIsIx7/liVCZ3Q2WkWr1/Yu39PksBOnh/khW2SwIFsGa5Ze+MSon5KbDfrEHP9NeyefAgvUSXzaEkw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.10.4.tgz";
+        sha512 = "XTadyuqNst88UWBTdLjM+wEY7BFnY2sYtPyAidfC7M/QaZnSuIZpMvLxqGT7phAcnGyWh/XQFLKcGf04CnvxSQ==";
       };
     };
-    "@babel/plugin-transform-for-of-7.10.1" = {
+    "@babel/plugin-transform-for-of-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-for-of";
       packageName = "@babel/plugin-transform-for-of";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.1.tgz";
-        sha512 = "US8KCuxfQcn0LwSCMWMma8M2R5mAjJGsmoCBVwlMygvmDUMkTCykc84IqN1M7t+agSfOmLYTInLCHJM+RUoz+w==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz";
+        sha512 = "ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==";
       };
     };
-    "@babel/plugin-transform-function-name-7.10.1" = {
+    "@babel/plugin-transform-function-name-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-function-name";
       packageName = "@babel/plugin-transform-function-name";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.1.tgz";
-        sha512 = "//bsKsKFBJfGd65qSNNh1exBy5Y9gD9ZN+DvrJ8f7HXr4avE5POW6zB7Rj6VnqHV33+0vXWUwJT0wSHubiAQkw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz";
+        sha512 = "OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==";
       };
     };
-    "@babel/plugin-transform-literals-7.10.1" = {
+    "@babel/plugin-transform-literals-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-literals";
       packageName = "@babel/plugin-transform-literals";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.1.tgz";
-        sha512 = "qi0+5qgevz1NHLZroObRm5A+8JJtibb7vdcPQF1KQE12+Y/xxl8coJ+TpPW9iRq+Mhw/NKLjm+5SHtAHCC7lAw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz";
+        sha512 = "Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==";
       };
     };
-    "@babel/plugin-transform-member-expression-literals-7.10.1" = {
+    "@babel/plugin-transform-member-expression-literals-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-member-expression-literals";
       packageName = "@babel/plugin-transform-member-expression-literals";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.1.tgz";
-        sha512 = "UmaWhDokOFT2GcgU6MkHC11i0NQcL63iqeufXWfRy6pUOGYeCGEKhvfFO6Vz70UfYJYHwveg62GS83Rvpxn+NA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz";
+        sha512 = "0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==";
       };
     };
-    "@babel/plugin-transform-modules-amd-7.10.1" = {
+    "@babel/plugin-transform-modules-amd-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-modules-amd";
       packageName = "@babel/plugin-transform-modules-amd";
-      version = "7.10.1";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.1.tgz";
-        sha512 = "31+hnWSFRI4/ACFr1qkboBbrTxoBIzj7qA69qlq8HY8p7+YCzkCT6/TvQ1a4B0z27VeWtAeJd6pr5G04dc1iHw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz";
+        sha512 = "elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==";
       };
     };
-    "@babel/plugin-transform-modules-commonjs-7.10.1" = {
+    "@babel/plugin-transform-modules-commonjs-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-modules-commonjs";
       packageName = "@babel/plugin-transform-modules-commonjs";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.1.tgz";
-        sha512 = "AQG4fc3KOah0vdITwt7Gi6hD9BtQP/8bhem7OjbaMoRNCH5Djx42O2vYMfau7QnAzQCa+RJnhJBmFFMGpQEzrg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz";
+        sha512 = "Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==";
       };
     };
-    "@babel/plugin-transform-modules-systemjs-7.10.1" = {
+    "@babel/plugin-transform-modules-systemjs-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-modules-systemjs";
       packageName = "@babel/plugin-transform-modules-systemjs";
-      version = "7.10.1";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.1.tgz";
-        sha512 = "ewNKcj1TQZDL3YnO85qh9zo1YF1CHgmSTlRQgHqe63oTrMI85cthKtZjAiZSsSNjPQ5NCaYo5QkbYqEw1ZBgZA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz";
+        sha512 = "f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==";
       };
     };
-    "@babel/plugin-transform-modules-umd-7.10.1" = {
+    "@babel/plugin-transform-modules-umd-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-modules-umd";
       packageName = "@babel/plugin-transform-modules-umd";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.1.tgz";
-        sha512 = "EIuiRNMd6GB6ulcYlETnYYfgv4AxqrswghmBRQbWLHZxN4s7mupxzglnHqk9ZiUpDI4eRWewedJJNj67PWOXKA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz";
+        sha512 = "mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==";
       };
     };
-    "@babel/plugin-transform-named-capturing-groups-regex-7.8.3" = {
+    "@babel/plugin-transform-named-capturing-groups-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
       packageName = "@babel/plugin-transform-named-capturing-groups-regex";
-      version = "7.8.3";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz";
-        sha512 = "f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz";
+        sha512 = "V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==";
       };
     };
-    "@babel/plugin-transform-new-target-7.10.1" = {
+    "@babel/plugin-transform-new-target-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-new-target";
       packageName = "@babel/plugin-transform-new-target";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.1.tgz";
-        sha512 = "MBlzPc1nJvbmO9rPr1fQwXOM2iGut+JC92ku6PbiJMMK7SnQc1rytgpopveE3Evn47gzvGYeCdgfCDbZo0ecUw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz";
+        sha512 = "YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==";
       };
     };
-    "@babel/plugin-transform-object-super-7.10.1" = {
+    "@babel/plugin-transform-object-super-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-object-super";
       packageName = "@babel/plugin-transform-object-super";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.1.tgz";
-        sha512 = "WnnStUDN5GL+wGQrJylrnnVlFhFmeArINIR9gjhSeYyvroGhBrSAXYg/RHsnfzmsa+onJrTJrEClPzgNmmQ4Gw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz";
+        sha512 = "5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==";
       };
     };
-    "@babel/plugin-transform-parameters-7.10.1" = {
+    "@babel/plugin-transform-parameters-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-parameters";
       packageName = "@babel/plugin-transform-parameters";
-      version = "7.10.1";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.1.tgz";
-        sha512 = "tJ1T0n6g4dXMsL45YsSzzSDZCxiHXAQp/qHrucOq5gEHncTA3xDxnd5+sZcoQp+N1ZbieAaB8r/VUCG0gqseOg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz";
+        sha512 = "xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==";
       };
     };
-    "@babel/plugin-transform-property-literals-7.10.1" = {
+    "@babel/plugin-transform-property-literals-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-property-literals";
       packageName = "@babel/plugin-transform-property-literals";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.1.tgz";
-        sha512 = "Kr6+mgag8auNrgEpbfIWzdXYOvqDHZOF0+Bx2xh4H2EDNwcbRb9lY6nkZg8oSjsX+DH9Ebxm9hOqtKW+gRDeNA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz";
+        sha512 = "ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==";
       };
     };
-    "@babel/plugin-transform-react-jsx-7.10.1" = {
+    "@babel/plugin-transform-react-jsx-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-react-jsx";
       packageName = "@babel/plugin-transform-react-jsx";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.1.tgz";
-        sha512 = "MBVworWiSRBap3Vs39eHt+6pJuLUAaK4oxGc8g+wY+vuSJvLiEQjW1LSTqKb8OUPtDvHCkdPhk7d6sjC19xyFw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz";
+        sha512 = "L+MfRhWjX0eI7Js093MM6MacKU4M6dnCRa/QPDwYMxjljzSCzzlzKzj9Pk4P3OtrPcxr2N3znR419nr3Xw+65A==";
       };
     };
-    "@babel/plugin-transform-regenerator-7.10.1" = {
+    "@babel/plugin-transform-regenerator-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-regenerator";
       packageName = "@babel/plugin-transform-regenerator";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.1.tgz";
-        sha512 = "B3+Y2prScgJ2Bh/2l9LJxKbb8C8kRfsG4AdPT+n7ixBHIxJaIG8bi8tgjxUMege1+WqSJ+7gu1YeoMVO3gPWzw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz";
+        sha512 = "3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==";
       };
     };
-    "@babel/plugin-transform-reserved-words-7.10.1" = {
+    "@babel/plugin-transform-reserved-words-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-reserved-words";
       packageName = "@babel/plugin-transform-reserved-words";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.1.tgz";
-        sha512 = "qN1OMoE2nuqSPmpTqEM7OvJ1FkMEV+BjVeZZm9V9mq/x1JLKQ4pcv8riZJMNN3u2AUGl0ouOMjRr2siecvHqUQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz";
+        sha512 = "hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==";
       };
     };
-    "@babel/plugin-transform-runtime-7.10.1" = {
+    "@babel/plugin-transform-runtime-7.11.5" = {
       name = "_at_babel_slash_plugin-transform-runtime";
       packageName = "@babel/plugin-transform-runtime";
-      version = "7.10.1";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.10.1.tgz";
-        sha512 = "4w2tcglDVEwXJ5qxsY++DgWQdNJcCCsPxfT34wCUwIf2E7dI7pMpH8JczkMBbgBTNzBX62SZlNJ9H+De6Zebaw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.5.tgz";
+        sha512 = "9aIoee+EhjySZ6vY5hnLjigHzunBlscx9ANKutkeWTJTx6m5Rbq6Ic01tLvO54lSusR+BxV7u4UDdCmXv5aagg==";
       };
     };
-    "@babel/plugin-transform-shorthand-properties-7.10.1" = {
+    "@babel/plugin-transform-shorthand-properties-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-shorthand-properties";
       packageName = "@babel/plugin-transform-shorthand-properties";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.1.tgz";
-        sha512 = "AR0E/lZMfLstScFwztApGeyTHJ5u3JUKMjneqRItWeEqDdHWZwAOKycvQNCasCK/3r5YXsuNG25funcJDu7Y2g==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz";
+        sha512 = "AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==";
       };
     };
-    "@babel/plugin-transform-spread-7.10.1" = {
+    "@babel/plugin-transform-spread-7.11.0" = {
       name = "_at_babel_slash_plugin-transform-spread";
       packageName = "@babel/plugin-transform-spread";
-      version = "7.10.1";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.1.tgz";
-        sha512 = "8wTPym6edIrClW8FI2IoaePB91ETOtg36dOkj3bYcNe7aDMN2FXEoUa+WrmPc4xa1u2PQK46fUX2aCb+zo9rfw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz";
+        sha512 = "UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==";
       };
     };
-    "@babel/plugin-transform-sticky-regex-7.10.1" = {
+    "@babel/plugin-transform-sticky-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-sticky-regex";
       packageName = "@babel/plugin-transform-sticky-regex";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.1.tgz";
-        sha512 = "j17ojftKjrL7ufX8ajKvwRilwqTok4q+BjkknmQw9VNHnItTyMP5anPFzxFJdCQs7clLcWpCV3ma+6qZWLnGMA==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz";
+        sha512 = "Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==";
       };
     };
-    "@babel/plugin-transform-template-literals-7.10.1" = {
+    "@babel/plugin-transform-template-literals-7.10.5" = {
       name = "_at_babel_slash_plugin-transform-template-literals";
       packageName = "@babel/plugin-transform-template-literals";
-      version = "7.10.1";
+      version = "7.10.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.1.tgz";
-        sha512 = "t7B/3MQf5M1T9hPCRG28DNGZUuxAuDqLYS03rJrIk2prj/UV7Z6FOneijhQhnv/Xa039vidXeVbvjK2SK5f7Gg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz";
+        sha512 = "V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==";
       };
     };
-    "@babel/plugin-transform-typeof-symbol-7.10.1" = {
+    "@babel/plugin-transform-typeof-symbol-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-typeof-symbol";
       packageName = "@babel/plugin-transform-typeof-symbol";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.1.tgz";
-        sha512 = "qX8KZcmbvA23zDi+lk9s6hC1FM7jgLHYIjuLgULgc8QtYnmB3tAVIYkNoKRQ75qWBeyzcoMoK8ZQmogGtC/w0g==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz";
+        sha512 = "QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==";
       };
     };
-    "@babel/plugin-transform-typescript-7.10.1" = {
+    "@babel/plugin-transform-typescript-7.11.0" = {
       name = "_at_babel_slash_plugin-transform-typescript";
       packageName = "@babel/plugin-transform-typescript";
-      version = "7.10.1";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.10.1.tgz";
-        sha512 = "v+QWKlmCnsaimLeqq9vyCsVRMViZG1k2SZTlcZvB+TqyH570Zsij8nvVUZzOASCRiQFUxkLrn9Wg/kH0zgy5OQ==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz";
+        sha512 = "edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w==";
       };
     };
-    "@babel/plugin-transform-unicode-escapes-7.10.1" = {
+    "@babel/plugin-transform-unicode-escapes-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-unicode-escapes";
       packageName = "@babel/plugin-transform-unicode-escapes";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.1.tgz";
-        sha512 = "zZ0Poh/yy1d4jeDWpx/mNwbKJVwUYJX73q+gyh4bwtG0/iUlzdEu0sLMda8yuDFS6LBQlT/ST1SJAR6zYwXWgw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz";
+        sha512 = "y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==";
       };
     };
-    "@babel/plugin-transform-unicode-regex-7.10.1" = {
+    "@babel/plugin-transform-unicode-regex-7.10.4" = {
       name = "_at_babel_slash_plugin-transform-unicode-regex";
       packageName = "@babel/plugin-transform-unicode-regex";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.1.tgz";
-        sha512 = "Y/2a2W299k0VIUdbqYm9X2qS6fE0CUBhhiPpimK6byy7OJ/kORLlIX+J6UrjgNu5awvs62k+6RSslxhcvVw2Tw==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz";
+        sha512 = "wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==";
       };
     };
-    "@babel/polyfill-7.7.0" = {
+    "@babel/polyfill-7.11.5" = {
       name = "_at_babel_slash_polyfill";
       packageName = "@babel/polyfill";
-      version = "7.7.0";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.7.0.tgz";
-        sha512 = "/TS23MVvo34dFmf8mwCisCbWGrfhbiWZSwBo6HkADTBhUa2Q/jWltyY/tpofz/b6/RIhqaqQcquptCirqIhOaQ==";
+        url = "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.11.5.tgz";
+        sha512 = "FunXnE0Sgpd61pKSj2OSOs1D44rKTD3pGOfGilZ6LGrrIH0QEtJlTjqOqdF8Bs98JmjfGhni2BBkTfv9KcKJ9g==";
       };
     };
-    "@babel/preset-env-7.10.2" = {
+    "@babel/preset-env-7.11.5" = {
       name = "_at_babel_slash_preset-env";
       packageName = "@babel/preset-env";
-      version = "7.10.2";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.2.tgz";
-        sha512 = "MjqhX0RZaEgK/KueRzh+3yPSk30oqDKJ5HP5tqTSB1e2gzGS3PLy7K0BIpnp78+0anFuSwOeuCf1zZO7RzRvEA==";
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.5.tgz";
+        sha512 = "kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA==";
       };
     };
-    "@babel/preset-flow-7.10.1" = {
+    "@babel/preset-flow-7.10.4" = {
       name = "_at_babel_slash_preset-flow";
       packageName = "@babel/preset-flow";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.10.1.tgz";
-        sha512 = "FuQsibb5PaX07fF1XUO5gjjxdEZbcJv8+ugPDaeFEsBIvUTib8hCtEJow/c2F0jq9ZUjpHCQ8IQKNHRvKE1kJQ==";
+        url = "https://registry.npmjs.org/@babel/preset-flow/-/preset-flow-7.10.4.tgz";
+        sha512 = "XI6l1CptQCOBv+ZKYwynyswhtOKwpZZp5n0LG1QKCo8erRhqjoQV6nvx61Eg30JHpysWQSBwA2AWRU3pBbSY5g==";
       };
     };
-    "@babel/preset-modules-0.1.3" = {
+    "@babel/preset-modules-0.1.4" = {
       name = "_at_babel_slash_preset-modules";
       packageName = "@babel/preset-modules";
-      version = "0.1.3";
+      version = "0.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz";
-        sha512 = "Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==";
+        url = "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz";
+        sha512 = "J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==";
       };
     };
     "@babel/preset-stage-2-7.8.3" = {
@@ -1138,94 +1273,130 @@ let
         sha512 = "dStnEQgejNYIHFNACdDCigK4BF7wgW6Zahv9Dc2un7rGjbeVtZhBfR3sy0I7ZJOhBexkFxVdMZ5hqmll7BFShw==";
       };
     };
-    "@babel/preset-typescript-7.10.1" = {
+    "@babel/preset-typescript-7.10.4" = {
       name = "_at_babel_slash_preset-typescript";
       packageName = "@babel/preset-typescript";
-      version = "7.10.1";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.10.1.tgz";
-        sha512 = "m6GV3y1ShiqxnyQj10600ZVOFrSSAa8HQ3qIUk2r+gcGtHTIRw0dJnFLt1WNXpKjtVw7yw1DAPU/6ma2ZvgJuA==";
+        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.10.4.tgz";
+        sha512 = "SdYnvGPv+bLlwkF2VkJnaX/ni1sMNetcGI1+nThF1gyv6Ph8Qucc4ZZAjM5yZcE/AKRXIOTZz7eSRDWOEjPyRQ==";
       };
     };
-    "@babel/register-7.10.1" = {
+    "@babel/register-7.11.5" = {
       name = "_at_babel_slash_register";
       packageName = "@babel/register";
-      version = "7.10.1";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/register/-/register-7.10.1.tgz";
-        sha512 = "sl96+kB3IA2B9EzpwwBmYadOT14vw3KaXOknGDbJaZCOj52GDA4Tivudq9doCJcB+bEIKCEARZYwRgBBsCGXyg==";
+        url = "https://registry.npmjs.org/@babel/register/-/register-7.11.5.tgz";
+        sha512 = "CAml0ioKX+kOAvBQDHa/+t1fgOt3qkTIz0TrRtRAT6XY0m5qYZXR85k6/sLCNPMGhYDlCFHCYuU0ybTJbvlC6w==";
       };
     };
-    "@babel/runtime-7.10.2" = {
+    "@babel/runtime-7.11.2" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
-      version = "7.10.2";
+      version = "7.11.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.2.tgz";
-        sha512 = "6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==";
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz";
+        sha512 = "TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==";
       };
     };
-    "@babel/runtime-7.7.7" = {
-      name = "_at_babel_slash_runtime";
-      packageName = "@babel/runtime";
-      version = "7.7.7";
+    "@babel/template-7.10.4" = {
+      name = "_at_babel_slash_template";
+      packageName = "@babel/template";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.7.7.tgz";
-        sha512 = "uCnC2JEVAu8AKB5do1WRIsvrdJ0flYx/A/9f/6chdacnEZ7LmavjdsDXr5ksYBegxtuTPR5Va9/+13QF/kFkCA==";
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz";
+        sha512 = "ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==";
       };
     };
-    "@babel/runtime-7.9.2" = {
-      name = "_at_babel_slash_runtime";
-      packageName = "@babel/runtime";
-      version = "7.9.2";
+    "@babel/traverse-7.11.5" = {
+      name = "_at_babel_slash_traverse";
+      packageName = "@babel/traverse";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz";
-        sha512 = "NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz";
+        sha512 = "EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==";
       };
     };
-    "@babel/runtime-corejs3-7.10.2" = {
-      name = "_at_babel_slash_runtime-corejs3";
-      packageName = "@babel/runtime-corejs3";
-      version = "7.10.2";
+    "@babel/types-7.10.4" = {
+      name = "_at_babel_slash_types";
+      packageName = "@babel/types";
+      version = "7.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.10.2.tgz";
-        sha512 = "+a2M/u7r15o3dV1NEizr9bRi+KUVnrs/qYxF0Z06DAPx/4VCWaz1WA7EcbE+uqGgt39lp5akWGmHsTseIkHkHg==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.10.4.tgz";
+        sha512 = "UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg==";
       };
     };
-    "@babel/template-7.10.1" = {
-      name = "_at_babel_slash_template";
-      packageName = "@babel/template";
-      version = "7.10.1";
+    "@babel/types-7.11.5" = {
+      name = "_at_babel_slash_types";
+      packageName = "@babel/types";
+      version = "7.11.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/template/-/template-7.10.1.tgz";
-        sha512 = "OQDg6SqvFSsc9A0ej6SKINWrpJiNonRIniYondK2ViKhB06i3c0s+76XUft71iqBEe9S1OKsHwPAjfHnuvnCig==";
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz";
+        sha512 = "bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==";
       };
     };
-    "@babel/traverse-7.10.1" = {
-      name = "_at_babel_slash_traverse";
-      packageName = "@babel/traverse";
-      version = "7.10.1";
+    "@bugsnag/browser-7.3.5" = {
+      name = "_at_bugsnag_slash_browser";
+      packageName = "@bugsnag/browser";
+      version = "7.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.10.1.tgz";
-        sha512 = "C/cTuXeKt85K+p08jN6vMDz8vSV0vZcI0wmQ36o6mjbuo++kPMdpOYw23W2XH04dbRt9/nMEfA4W3eR21CD+TQ==";
+        url = "https://registry.npmjs.org/@bugsnag/browser/-/browser-7.3.5.tgz";
+        sha512 = "Zs54UH7rXJTQbcuKDr6a4Qn2SDHr7cq7XLd5EHuLCJ6OMBktBlM8vZSf1sOiCBE2EE2g/kC2rk6VJktsRIaUEA==";
       };
     };
-    "@babel/types-7.10.2" = {
-      name = "_at_babel_slash_types";
-      packageName = "@babel/types";
-      version = "7.10.2";
+    "@bugsnag/core-7.3.5" = {
+      name = "_at_bugsnag_slash_core";
+      packageName = "@bugsnag/core";
+      version = "7.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@bugsnag/core/-/core-7.3.5.tgz";
+        sha512 = "7zKFLcA6m9aaQ1p1AQx2iRaT3gE/MJqy0vGa/RhlKNdgMdMKYRGECWxJE66firvJT5ZwL7Bu11IkK6sLWHCBaw==";
+      };
+    };
+    "@bugsnag/cuid-3.0.0" = {
+      name = "_at_bugsnag_slash_cuid";
+      packageName = "@bugsnag/cuid";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@bugsnag/cuid/-/cuid-3.0.0.tgz";
+        sha512 = "LOt8aaBI+KvOQGneBtpuCz3YqzyEAehd1f3nC5yr9TIYW1+IzYKa2xWS4EiMz5pPOnRPHkyyS5t/wmSmN51Gjg==";
+      };
+    };
+    "@bugsnag/js-7.3.5" = {
+      name = "_at_bugsnag_slash_js";
+      packageName = "@bugsnag/js";
+      version = "7.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz";
-        sha512 = "AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==";
+        url = "https://registry.npmjs.org/@bugsnag/js/-/js-7.3.5.tgz";
+        sha512 = "5KCeFEM7ntww2UbxbgW94TEwLHKzVLepDd8TNZeae2rdInt+fTc4o9oS0QxgubdLZHdLo9LNt8GTghl6F/9NwQ==";
       };
     };
-    "@chemzqm/neovim-5.1.9" = {
+    "@bugsnag/node-7.3.5" = {
+      name = "_at_bugsnag_slash_node";
+      packageName = "@bugsnag/node";
+      version = "7.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@bugsnag/node/-/node-7.3.5.tgz";
+        sha512 = "eN06NgphKYikBq/AXpiLO9tNx1H7cz8C78oQnR5fj2POulj+Zm9njr9dM6DEzGIvBDt952SwwcOA73jAiOmztQ==";
+      };
+    };
+    "@bugsnag/safe-json-stringify-6.0.0" = {
+      name = "_at_bugsnag_slash_safe-json-stringify";
+      packageName = "@bugsnag/safe-json-stringify";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@bugsnag/safe-json-stringify/-/safe-json-stringify-6.0.0.tgz";
+        sha512 = "htzFO1Zc57S8kgdRK9mLcPVTW1BY2ijfH7Dk2CeZmspTWKdKqSo1iwmqrq2WtRjFlo8aRZYgLX0wFrDXF/9DLA==";
+      };
+    };
+    "@chemzqm/neovim-5.2.6" = {
       name = "_at_chemzqm_slash_neovim";
       packageName = "@chemzqm/neovim";
-      version = "5.1.9";
+      version = "5.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@chemzqm/neovim/-/neovim-5.1.9.tgz";
-        sha512 = "lV60tnl2jcJZj3Hb+IDg6uz2zsjsB2hIGAiaW5a452SlVeLmuUoDsy2WaqRbFqcIHZKG5GTP3ttnOlB+ltHWhg==";
+        url = "https://registry.npmjs.org/@chemzqm/neovim/-/neovim-5.2.6.tgz";
+        sha512 = "9R4k2fvsX79dsNjxEjJaAlhdAZKx/DBGPHOXR3TVwJhX0TFPi9fvmHqJ8YFkAOweAVTXaiOdHv/LMerSBsA5Pw==";
       };
     };
     "@cliqz-oss/firefox-client-0.3.1" = {
@@ -1264,13 +1435,13 @@ let
         sha512 = "sR9Go0U6puXoXyW9UgIiIQhRcJ8jVOvGl4BptUiXAtheMs72WcakZ1udh6J0ZOivr3o8jAM+MTCHLP8FZMbVpQ==";
       };
     };
-    "@cronvel/get-pixels-3.3.1" = {
+    "@cronvel/get-pixels-3.4.0" = {
       name = "_at_cronvel_slash_get-pixels";
       packageName = "@cronvel/get-pixels";
-      version = "3.3.1";
+      version = "3.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cronvel/get-pixels/-/get-pixels-3.3.1.tgz";
-        sha512 = "jgDb8vGPkpjRDbiYyHTI2Bna4HJysjPNSiERzBnRJjCR/YqC3u0idTae0tmNECsaZLOpAWmlK9wiIwnLGIT9Bg==";
+        url = "https://registry.npmjs.org/@cronvel/get-pixels/-/get-pixels-3.4.0.tgz";
+        sha512 = "do5jDoX9oCR/dGHE4POVQ3PYDCmQ2Fow4CA72UL4WoE8zUImA/0lChczjfl+ucNjE4sXFWUnzoO6j4WzrUvLnw==";
       };
     };
     "@cycle/dom-18.3.0" = {
@@ -1327,6 +1498,15 @@ let
         sha1 = "cbc4b9a68981bf0b501ccd06a9058acd65309bf7";
       };
     };
+    "@dabh/diagnostics-2.0.2" = {
+      name = "_at_dabh_slash_diagnostics";
+      packageName = "@dabh/diagnostics";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz";
+        sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==";
+      };
+    };
     "@emmetio/extract-abbreviation-0.1.6" = {
       name = "_at_emmetio_slash_extract-abbreviation";
       packageName = "@emmetio/extract-abbreviation";
@@ -1336,13 +1516,67 @@ let
         sha512 = "Ce3xE2JvTSEbASFbRbA1gAIcMcZWdS2yUYRaQbeM0nbOzaZrUYfa3ePtcriYRZOZmr+CkKA+zbjhvTpIOAYVcw==";
       };
     };
-    "@endemolshinegroup/cosmiconfig-typescript-loader-1.0.1" = {
+    "@emmetio/extract-abbreviation-0.2.0" = {
+      name = "_at_emmetio_slash_extract-abbreviation";
+      packageName = "@emmetio/extract-abbreviation";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emmetio/extract-abbreviation/-/extract-abbreviation-0.2.0.tgz";
+        sha512 = "eWIRoybKwQ0LkZw7aSULPFS+r2kp0+HdJlnw0HaE6g3AKbMNL4Ogwm2OTA9gNWZ5zdp6daOAOHFqjDqqhE5y/g==";
+      };
+    };
+    "@emotion/is-prop-valid-0.8.8" = {
+      name = "_at_emotion_slash_is-prop-valid";
+      packageName = "@emotion/is-prop-valid";
+      version = "0.8.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-0.8.8.tgz";
+        sha512 = "u5WtneEAr5IDG2Wv65yhunPSMLIpuKsbuOktRojfrEiEvRyC85LgPMZI63cr7NUqT8ZIGdSVg8ZKGxIug4lXcA==";
+      };
+    };
+    "@emotion/memoize-0.7.4" = {
+      name = "_at_emotion_slash_memoize";
+      packageName = "@emotion/memoize";
+      version = "0.7.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emotion/memoize/-/memoize-0.7.4.tgz";
+        sha512 = "Ja/Vfqe3HpuzRsG1oBtWTHk2PGZ7GR+2Vz5iYGelAw8dx32K0y7PjVuxK6z1nMpZOqAFsRUPCkK1YjJ56qJlgw==";
+      };
+    };
+    "@emotion/stylis-0.8.5" = {
+      name = "_at_emotion_slash_stylis";
+      packageName = "@emotion/stylis";
+      version = "0.8.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emotion/stylis/-/stylis-0.8.5.tgz";
+        sha512 = "h6KtPihKFn3T9fuIrwvXXUOwlx3rfUvfZIcP5a6rh8Y7zjE3O06hT5Ss4S/YI1AYhuZ1kjaE/5EaOOI2NqSylQ==";
+      };
+    };
+    "@emotion/unitless-0.7.5" = {
+      name = "_at_emotion_slash_unitless";
+      packageName = "@emotion/unitless";
+      version = "0.7.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@emotion/unitless/-/unitless-0.7.5.tgz";
+        sha512 = "OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==";
+      };
+    };
+    "@endemolshinegroup/cosmiconfig-typescript-loader-1.0.2" = {
       name = "_at_endemolshinegroup_slash_cosmiconfig-typescript-loader";
       packageName = "@endemolshinegroup/cosmiconfig-typescript-loader";
-      version = "1.0.1";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.1.tgz";
-        sha512 = "bhUR9035PbgL6A/nfLayjoqKo4W7hCtzxqVxq2cgDB+Ndpsa3dGIr71/ymgY3vCTCQaufkFxAcEeoECyJ498CA==";
+        url = "https://registry.npmjs.org/@endemolshinegroup/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-1.0.2.tgz";
+        sha512 = "ZHkXKq2XFFmAUdmSZrmqUSIrRM4O9gtkdpxMmV+LQl7kScUnbo6pMnXu6+FTDgZ12aW6SDoZoOJfS56WD+Eu6A==";
+      };
+    };
+    "@eslint/eslintrc-0.1.3" = {
+      name = "_at_eslint_slash_eslintrc";
+      packageName = "@eslint/eslintrc";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.1.3.tgz";
+        sha512 = "4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA==";
       };
     };
     "@evocateur/libnpmaccess-3.1.2" = {
@@ -1381,6 +1615,87 @@ let
         sha512 = "EI552lf0aG2nOV8NnZpTxNo2PcXKPmDbF9K8eCBFQdIZwHNGN/mi815fxtmUMa2wTa1yndotICIDt/V0vpEx2w==";
       };
     };
+    "@exodus/schemasafe-1.0.0-rc.2" = {
+      name = "_at_exodus_slash_schemasafe";
+      packageName = "@exodus/schemasafe";
+      version = "1.0.0-rc.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@exodus/schemasafe/-/schemasafe-1.0.0-rc.2.tgz";
+        sha512 = "W98NvvOe/Med3o66xTO03pd7a2omZebH79PV64gSE+ceDdU8uxQhFTa7ISiD1kseyqyOrMyW5/MNdsGEU02i3Q==";
+      };
+    };
+    "@fluentui/date-time-utilities-7.8.1" = {
+      name = "_at_fluentui_slash_date-time-utilities";
+      packageName = "@fluentui/date-time-utilities";
+      version = "7.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/date-time-utilities/-/date-time-utilities-7.8.1.tgz";
+        sha512 = "2FsR7scZ6yS9h7MEUAunpLLYpHp4z7+DVgGlIBlNeL7YD5Vl0msj4pn7zRd1pcGfvoQfkWz3+ju3rBBl4LV4wQ==";
+      };
+    };
+    "@fluentui/dom-utilities-1.1.1" = {
+      name = "_at_fluentui_slash_dom-utilities";
+      packageName = "@fluentui/dom-utilities";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/dom-utilities/-/dom-utilities-1.1.1.tgz";
+        sha512 = "w40gi8fzCpwa7U8cONiuu8rszPStkVOL/weDf5pCbYEb1gdaV7MDPSNkgM6IV0Kz+k017noDgK9Fv4ru1Dwz1g==";
+      };
+    };
+    "@fluentui/keyboard-key-0.2.12" = {
+      name = "_at_fluentui_slash_keyboard-key";
+      packageName = "@fluentui/keyboard-key";
+      version = "0.2.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/keyboard-key/-/keyboard-key-0.2.12.tgz";
+        sha512 = "t3yIbbPKJubb22vQ/FIWwS9vFAzaPYzFxKWPHVWLtxs/P+5yL+LD3B16DRtYreWAdl9CZvEbos58ChLZ0KHwSQ==";
+      };
+    };
+    "@fluentui/react-7.139.0" = {
+      name = "_at_fluentui_slash_react";
+      packageName = "@fluentui/react";
+      version = "7.139.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/react/-/react-7.139.0.tgz";
+        sha512 = "Y3u80PnrK/ZnTlezo+Syfvy8UXkHEpwCHNW8hjezfOkhPVVI8fpmrPeHy2dDnqah5HDbuC6KUU9owWg/UojSCw==";
+      };
+    };
+    "@fluentui/react-focus-7.16.5" = {
+      name = "_at_fluentui_slash_react-focus";
+      packageName = "@fluentui/react-focus";
+      version = "7.16.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-7.16.5.tgz";
+        sha512 = "FlRqYSzkptXuKvsIiI9m1tf7g5pRcbu9S9rK6c8pHax/kDRsBuDRW2OajxjVYR36B6IyAgYjylWdk6zBJI5oSQ==";
+      };
+    };
+    "@fluentui/react-icons-0.3.4" = {
+      name = "_at_fluentui_slash_react-icons";
+      packageName = "@fluentui/react-icons";
+      version = "0.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/react-icons/-/react-icons-0.3.4.tgz";
+        sha512 = "/6xyGL7EQVCn9TP1eV+VjKS0HuC7WGZHs0t604E40LEE1HCIbXx7Jm1KDlMqP36n1W8XVDgyEZlffTmEOVGRkg==";
+      };
+    };
+    "@fluentui/react-window-provider-0.3.3" = {
+      name = "_at_fluentui_slash_react-window-provider";
+      packageName = "@fluentui/react-window-provider";
+      version = "0.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/react-window-provider/-/react-window-provider-0.3.3.tgz";
+        sha512 = "MVPf2hqOQ17LAZsuvGcr3oOHksAskUm+fCYdXFhbVoAgsCDVTIuH6i8XgHFd6YjBtzjZmI4+k/3NTQfDqBX8EQ==";
+      };
+    };
+    "@fluentui/theme-0.3.2" = {
+      name = "_at_fluentui_slash_theme";
+      packageName = "@fluentui/theme";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@fluentui/theme/-/theme-0.3.2.tgz";
+        sha512 = "Yt4VK2NKTc+Sao0+ZguXiQ0ZpN74h+7c+7YAyxaao2R/nwSHSnmH42VVlzBN+aL5kYDrbQ4P9Z8zPIwKEZ1u3A==";
+      };
+    };
     "@graphql-cli/common-4.0.0" = {
       name = "_at_graphql-cli_slash_common";
       packageName = "@graphql-cli/common";
@@ -1399,94 +1714,94 @@ let
         sha512 = "oJZb4PScX25ZGObpw9n7/bJBE7R0oF6hJ4ABe+WvMqSCI3kxaReMTgJJNIrxpmbXscxWM8U1ndLefP5IjPcU7Q==";
       };
     };
-    "@graphql-toolkit/common-0.10.7" = {
-      name = "_at_graphql-toolkit_slash_common";
-      packageName = "@graphql-toolkit/common";
-      version = "0.10.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-toolkit/common/-/common-0.10.7.tgz";
-        sha512 = "epcJvmIAo+vSEY76F0Dj1Ef6oeewT5pdMe1obHj7LHXN9V22O86aQzwdEEm1iG91qROqSw/apcDnSCMjuVeQVA==";
-      };
-    };
-    "@graphql-toolkit/core-0.10.7" = {
-      name = "_at_graphql-toolkit_slash_core";
-      packageName = "@graphql-toolkit/core";
-      version = "0.10.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-toolkit/core/-/core-0.10.7.tgz";
-        sha512 = "LXcFLG7XcRJrPz/xD+0cExzLx/ptVynDM20650/FbmHbKOU50d9mSbcsrzAOq/3f4q3HrRDssvn0f6pPm0EHMg==";
-      };
-    };
-    "@graphql-toolkit/graphql-file-loader-0.10.7" = {
-      name = "_at_graphql-toolkit_slash_graphql-file-loader";
-      packageName = "@graphql-toolkit/graphql-file-loader";
-      version = "0.10.7";
+    "@graphql-tools/delegate-6.2.3" = {
+      name = "_at_graphql-tools_slash_delegate";
+      packageName = "@graphql-tools/delegate";
+      version = "6.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-toolkit/graphql-file-loader/-/graphql-file-loader-0.10.7.tgz";
-        sha512 = "6tUIuw/YBlm0VyVgXgMrOXsEQ+WpXVgr2NQwHNzmZo82kPGqImveq7A2D3gBWLyVTcinDScRcKJMxM4kCF5T0A==";
+        url = "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-6.2.3.tgz";
+        sha512 = "j4P7RaI5J9AvGcfBDITO6bZDeSvjMgDby2smn3L2dmXpPfMYh00KRRSZjzdMwSkLxi+0octh9buUAeCdvVMkKQ==";
       };
     };
-    "@graphql-toolkit/json-file-loader-0.10.7" = {
-      name = "_at_graphql-toolkit_slash_json-file-loader";
-      packageName = "@graphql-toolkit/json-file-loader";
-      version = "0.10.7";
+    "@graphql-tools/graphql-file-loader-6.2.3" = {
+      name = "_at_graphql-tools_slash_graphql-file-loader";
+      packageName = "@graphql-tools/graphql-file-loader";
+      version = "6.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-toolkit/json-file-loader/-/json-file-loader-0.10.7.tgz";
-        sha512 = "nVISrODqvn5LiQ4nKL5pz1Let/W1tuj2viEwrNyTS+9mcjaCE2nhV5MOK/7ZY0cR+XeA4N2u65EH1lQd63U3Cw==";
+        url = "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.2.3.tgz";
+        sha512 = "9K+foDqfcJXf2jNNOWWZnV+PdxJkKmzAY58qlbFEFfUeRC6ZmOA9B3vTkcFadVdSwIsaWHhaxqHrNAD+OfkAyQ==";
       };
     };
-    "@graphql-toolkit/schema-merging-0.10.7" = {
-      name = "_at_graphql-toolkit_slash_schema-merging";
-      packageName = "@graphql-toolkit/schema-merging";
-      version = "0.10.7";
+    "@graphql-tools/import-6.2.3" = {
+      name = "_at_graphql-tools_slash_import";
+      packageName = "@graphql-tools/import";
+      version = "6.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-toolkit/schema-merging/-/schema-merging-0.10.7.tgz";
-        sha512 = "VngxJbVdRfXYhdMLhL90pqN+hD/2XTZwhHPGvpWqmGQhT6roc98yN3xyDyrWFYYsuiY4gTexdmrHQ3d7mzitwA==";
+        url = "https://registry.npmjs.org/@graphql-tools/import/-/import-6.2.3.tgz";
+        sha512 = "2ftXR84aPy2ueAEEGw/yFvYGPbvJYs2m18FEODhAq5z4P285ZlCMluxTUR9yNjumzgQP5Eer4fl64ztsdJvCyg==";
       };
     };
-    "@graphql-toolkit/url-loader-0.10.7" = {
-      name = "_at_graphql-toolkit_slash_url-loader";
-      packageName = "@graphql-toolkit/url-loader";
-      version = "0.10.7";
+    "@graphql-tools/json-file-loader-6.2.3" = {
+      name = "_at_graphql-tools_slash_json-file-loader";
+      packageName = "@graphql-tools/json-file-loader";
+      version = "6.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-toolkit/url-loader/-/url-loader-0.10.7.tgz";
-        sha512 = "Ec3T4Zuo63LwG+RfK2ryz8ChPfncBf8fiSJ1xr68FtLDVznDNulvlNKFbfREE5koWejwsnJrjLCv6IX5IbhExg==";
+        url = "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-6.2.3.tgz";
+        sha512 = "7v445KZLVB3owbibu2HsFmVSsdDOn0NzYSqIXaaIZ7saqoVtG8etSt699kLw5gJM3j0Kjm7XDz9tK60Apes/xg==";
       };
     };
-    "@graphql-tools/load-6.0.9" = {
+    "@graphql-tools/load-6.2.3" = {
       name = "_at_graphql-tools_slash_load";
       packageName = "@graphql-tools/load";
-      version = "6.0.9";
+      version = "6.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-6.0.9.tgz";
-        sha512 = "JDlLbkLlxjFF/of+HF3c+UnoK2AEgqeVS5xH6re60Khp2DiBvWOivACvPx4VxF49NLnvu1BYsGxxH0BGPbAA3A==";
+        url = "https://registry.npmjs.org/@graphql-tools/load/-/load-6.2.3.tgz";
+        sha512 = "3wmzrwf7tVY8rDRT2jxfQKlKgSB6P8OordFoOxpk1qNP2vmkUN9tWKxaI1ANkdm+et1D3ovUHeSoW6jKscnUAA==";
       };
     };
-    "@graphql-tools/merge-6.0.9" = {
+    "@graphql-tools/merge-6.2.3" = {
       name = "_at_graphql-tools_slash_merge";
       packageName = "@graphql-tools/merge";
-      version = "6.0.9";
+      version = "6.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.0.9.tgz";
-        sha512 = "aOYgziSQnlubdaCFuPS5MNu9hmhMMfl65xvkZN1k5L/kP6rGN6SyjfeUEEzveOFgIYJbYxQEoxySD9gBAm8PiQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/merge/-/merge-6.2.3.tgz";
+        sha512 = "qSSxdM2AKjnAHuChcnxIfzsGej78B56EE6ZD3tXMtKJOMQMhk4T4yXnKRHEw8fw7ZtNk/KqCmb6LJHy8Ws8frg==";
       };
     };
-    "@graphql-tools/schema-6.0.9" = {
+    "@graphql-tools/schema-6.2.3" = {
       name = "_at_graphql-tools_slash_schema";
       packageName = "@graphql-tools/schema";
-      version = "6.0.9";
+      version = "6.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-6.0.9.tgz";
-        sha512 = "lemY+UeZRVmMYPvszCKvPfaR+R0dR2FgqjhESzlNWBbLhHuCewilTzYuQ+A+o8hQxdtPGIHfNPGf6A0ZZ70jWw==";
+        url = "https://registry.npmjs.org/@graphql-tools/schema/-/schema-6.2.3.tgz";
+        sha512 = "CV5vDfQhXidssLK5hjT55FfwRAvBoGW53lVBl0rbXrbsSX7H9iVHdUf4UaDIlMc6WcnnzOrRiue/khHz3rzDEg==";
       };
     };
-    "@graphql-tools/utils-6.0.9" = {
+    "@graphql-tools/url-loader-6.2.3" = {
+      name = "_at_graphql-tools_slash_url-loader";
+      packageName = "@graphql-tools/url-loader";
+      version = "6.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-6.2.3.tgz";
+        sha512 = "cV/VR/lT1bHxwhrZlyG+sevl4zU0zZQHS7+TelTfAdKGrSswEozK98pPjkFP57+6ghitH6XoHUE91hFxtaODsA==";
+      };
+    };
+    "@graphql-tools/utils-6.2.3" = {
       name = "_at_graphql-tools_slash_utils";
       packageName = "@graphql-tools/utils";
-      version = "6.0.9";
+      version = "6.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-6.0.9.tgz";
-        sha512 = "WtX+t64SCN9VejKA/gdtm2sHPOX8D1G1tAyrrKH7hnh6RaCmQwYkhs/f6tBnTTYOIBy7yVYNoXzqiv/tmOkAOQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/utils/-/utils-6.2.3.tgz";
+        sha512 = "eOhZy4y23r6AddokBqvFpQybtHvhTyZCc3VFWn8eIqF92vre90UKHbCX6Cf6VBo6i7l0ZwChPPbUzEiHOk+HJQ==";
+      };
+    };
+    "@graphql-tools/wrap-6.2.3" = {
+      name = "_at_graphql-tools_slash_wrap";
+      packageName = "@graphql-tools/wrap";
+      version = "6.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-6.2.3.tgz";
+        sha512 = "bxMXobcuKy8r7jKefQx5VH3FSyXVHKfDWfJ65Kq4oAC2+d7DUlpr3HZ6BWoMhfgUf6s6PPM26Us00TGsUQlAGg==";
       };
     };
     "@gulp-sourcemaps/identity-map-1.0.2" = {
@@ -1687,6 +2002,15 @@ let
         sha512 = "Y8CEoVwXb4QwA6Y/9uDkn0Xfz0finGkieuV0xkdF9UtZGJeLukD5nLkaVrVsODB1ojRWlaoD0AJZpVHCSnJEvg==";
       };
     };
+    "@jest/types-24.9.0" = {
+      name = "_at_jest_slash_types";
+      packageName = "@jest/types";
+      version = "24.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz";
+        sha512 = "XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==";
+      };
+    };
     "@jest/types-25.5.0" = {
       name = "_at_jest_slash_types";
       packageName = "@jest/types";
@@ -1696,6 +2020,15 @@ let
         sha512 = "OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==";
       };
     };
+    "@josh-brown/vector-3.4.0" = {
+      name = "_at_josh-brown_slash_vector";
+      packageName = "@josh-brown/vector";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@josh-brown/vector/-/vector-3.4.0.tgz";
+        sha512 = "E2FcWwiAMXwr4MUv+SkxmtKsgwgaEaCNK7IlyCfQ1Rz1QzeaV36SooA8/GNkLh0WnlIda59WmDDSL7S1S73lUg==";
+      };
+    };
     "@kwsites/exec-p-0.4.0" = {
       name = "_at_kwsites_slash_exec-p";
       packageName = "@kwsites/exec-p";
@@ -1705,6 +2038,24 @@ let
         sha512 = "44DWNv5gDR9EwrCTVQ4ZC99yPqVS0VCWrYIBl45qNR8XQy+4lbl0IQG8kBDf6NHwj4Ib4c2z1Fq1IUJOCbkZcw==";
       };
     };
+    "@kwsites/file-exists-1.1.1" = {
+      name = "_at_kwsites_slash_file-exists";
+      packageName = "@kwsites/file-exists";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz";
+        sha512 = "m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==";
+      };
+    };
+    "@kwsites/promise-deferred-1.1.1" = {
+      name = "_at_kwsites_slash_promise-deferred";
+      packageName = "@kwsites/promise-deferred";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz";
+        sha512 = "GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==";
+      };
+    };
     "@lerna/add-3.21.0" = {
       name = "_at_lerna_slash_add";
       packageName = "@lerna/add";
@@ -2236,6 +2587,15 @@ let
         sha512 = "RibeMnDPvlL8bFYW5C8cs4mbI3AHfQef73tnJCQ/SgrXZHehmHnsyWUiE7qDQCAo+B1RfTapvSyFF69iPj326A==";
       };
     };
+    "@microsoft/load-themed-styles-1.10.97" = {
+      name = "_at_microsoft_slash_load-themed-styles";
+      packageName = "@microsoft/load-themed-styles";
+      version = "1.10.97";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.97.tgz";
+        sha512 = "FX8a2rXhYzXJWSoSjbxSyOvOo2SOHUjLG7JRWTf6rwiQDM/8fSTC/7TLkE2BAMg9n4vG+AxrgfN561VPnHQxrw==";
+      };
+    };
     "@mrmlnc/readdir-enhanced-2.2.1" = {
       name = "_at_mrmlnc_slash_readdir-enhanced";
       packageName = "@mrmlnc/readdir-enhanced";
@@ -2254,58 +2614,166 @@ let
         sha512 = "Vwhc3ObxmDZmA5hY8mfsau2rJ4vGPvzbj20QSZ2/E1GDPF61QVyjLfNHak9xmel6pW4heRt3v1fHa6np9Ehfeg==";
       };
     };
-    "@node-red/editor-api-1.0.6" = {
+    "@nestjs/schematics-7.1.2" = {
+      name = "_at_nestjs_slash_schematics";
+      packageName = "@nestjs/schematics";
+      version = "7.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@nestjs/schematics/-/schematics-7.1.2.tgz";
+        sha512 = "iUszxXz5cFEZFKKFQGyjx0+U5Emj7ix1rhXmHw1v63xhazlgTbT6XPxf247CTP0uyVkcflWkiVi+JawWWix16A==";
+      };
+    };
+    "@netflix/nerror-1.1.3" = {
+      name = "_at_netflix_slash_nerror";
+      packageName = "@netflix/nerror";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netflix/nerror/-/nerror-1.1.3.tgz";
+        sha512 = "b+MGNyP9/LXkapreJzNUzcvuzZslj/RGgdVVJ16P2wSlYatfLycPObImqVJSmNAdyeShvNeM/pl3sVZsObFueg==";
+      };
+    };
+    "@netlify/build-4.0.4" = {
+      name = "_at_netlify_slash_build";
+      packageName = "@netlify/build";
+      version = "4.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/build/-/build-4.0.4.tgz";
+        sha512 = "TXVFLp2z96Dl5MfaB0LgTIlD+9IThnjAsYsRrMJZXugOBgsIQzJr/uJql4ISKcK3b33T46amYT6+ULB6ZVJeLw==";
+      };
+    };
+    "@netlify/cache-utils-1.0.3" = {
+      name = "_at_netlify_slash_cache-utils";
+      packageName = "@netlify/cache-utils";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/cache-utils/-/cache-utils-1.0.3.tgz";
+        sha512 = "M7hr8JDirjF9o+7JbHy0T59hfhQL7t9ywTpQ4h625jnJO7BaW+w0Y2CrH0M3QOfdukdof7rkUM2eyR8G0ReSZw==";
+      };
+    };
+    "@netlify/config-0.11.11" = {
+      name = "_at_netlify_slash_config";
+      packageName = "@netlify/config";
+      version = "0.11.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/config/-/config-0.11.11.tgz";
+        sha512 = "Z7yzbx5qCX2I5RLlNyo0MMQ6GKJc8o5Nej9yspCavjqgYlUS7VJfbeE67WNxC26FXwDUqq00zJ0MrCS0Un1YOw==";
+      };
+    };
+    "@netlify/config-2.1.5" = {
+      name = "_at_netlify_slash_config";
+      packageName = "@netlify/config";
+      version = "2.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/config/-/config-2.1.5.tgz";
+        sha512 = "bsREmA1xLdThEZZwTcDZuTgu+eUO6bQJ/xLGmrCcerUn90lY7zh/P5w+1p5Kx0ebGeRQxQAmm1L9vQs2wUPcLg==";
+      };
+    };
+    "@netlify/functions-utils-1.2.9" = {
+      name = "_at_netlify_slash_functions-utils";
+      packageName = "@netlify/functions-utils";
+      version = "1.2.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/functions-utils/-/functions-utils-1.2.9.tgz";
+        sha512 = "1iMgfIMDy38ip7hAZd644BJ7he641xeGyG7MkPZtuxESfYfS6IrWiPNMu1NcVsNytXFLIFVg4m8LD6IBSiz1EQ==";
+      };
+    };
+    "@netlify/git-utils-1.0.2" = {
+      name = "_at_netlify_slash_git-utils";
+      packageName = "@netlify/git-utils";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/git-utils/-/git-utils-1.0.2.tgz";
+        sha512 = "rqaCUHlJFYwvcCL8l+wp/YMhGkuXo2ceEf9fpHCN8GFOlU3kSu0NLRlKFohIFk1pdrymG1D3M7Pt+s62EKLjwA==";
+      };
+    };
+    "@netlify/open-api-0.16.0" = {
+      name = "_at_netlify_slash_open-api";
+      packageName = "@netlify/open-api";
+      version = "0.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/open-api/-/open-api-0.16.0.tgz";
+        sha512 = "o3QI9hAe6lspQysWrB8CygMO4h+7B4qtPDkacitZ4VPBR26rX2TASq0/x1TNa4TnFG2lNgzkuBWhtXAmd/9tdw==";
+      };
+    };
+    "@netlify/plugin-edge-handlers-1.1.0" = {
+      name = "_at_netlify_slash_plugin-edge-handlers";
+      packageName = "@netlify/plugin-edge-handlers";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/plugin-edge-handlers/-/plugin-edge-handlers-1.1.0.tgz";
+        sha512 = "JR7d1u48ne9+Y2bRGYmYvWDaGhkZccZuw12ba63q6EJTHMC+hMp8t+Le1G6Bds+SEEox4npt0VHyHfuWmCcMaA==";
+      };
+    };
+    "@netlify/run-utils-1.0.1" = {
+      name = "_at_netlify_slash_run-utils";
+      packageName = "@netlify/run-utils";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/run-utils/-/run-utils-1.0.1.tgz";
+        sha512 = "fx0A9xVgFQXjZ/uZCa4XtlaO7mPgwhanVHwQAcBDGOwps8fhuaVITCcPy/kPv+igOimvqWzOD3x/F0OrsXGpBw==";
+      };
+    };
+    "@netlify/zip-it-and-ship-it-1.3.12" = {
+      name = "_at_netlify_slash_zip-it-and-ship-it";
+      packageName = "@netlify/zip-it-and-ship-it";
+      version = "1.3.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@netlify/zip-it-and-ship-it/-/zip-it-and-ship-it-1.3.12.tgz";
+        sha512 = "FQM/59HXMAKp9k4z6rXDA/FBKFSUaU3n5SFpF2/jScmpCmHBpF+pYIWZmVB4fY17cvq3KIcuSfzf9PqD1B73XQ==";
+      };
+    };
+    "@node-red/editor-api-1.1.3" = {
       name = "_at_node-red_slash_editor-api";
       packageName = "@node-red/editor-api";
-      version = "1.0.6";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-1.0.6.tgz";
-        sha512 = "9LieY6LSDtvj43IbpmCs9MmSGdPjOEmtsi+T13dXxxmil4ngedvJ7uMP1d96eKLW/b6Viuk7kx2olSGtUqgqLg==";
+        url = "https://registry.npmjs.org/@node-red/editor-api/-/editor-api-1.1.3.tgz";
+        sha512 = "NejrCeQSPwvIaxxEiwOnU25Ylnu4ZEtumIIy2mWLd0IojE6HXDBGhAqfxtksIyg6TnrqKsID/JxK0mLgTs/npQ==";
       };
     };
-    "@node-red/editor-client-1.0.6" = {
+    "@node-red/editor-client-1.1.3" = {
       name = "_at_node-red_slash_editor-client";
       packageName = "@node-red/editor-client";
-      version = "1.0.6";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-1.0.6.tgz";
-        sha512 = "V8zsj+wKY6RzOX92ePdgJtJdmOT9Whfz6CTN34/H2pZlzFA/+KE/sippkInRrx+ujTp4uI2ycAGJ7i1Qkt8ztw==";
+        url = "https://registry.npmjs.org/@node-red/editor-client/-/editor-client-1.1.3.tgz";
+        sha512 = "oMVij+p/+RyRVOBSfvv2nt4pmurOOGH+KQglWVN3jiWs2D4mUXgsBfg/mbHn4wtvEBYtKFOQacXL7N22WES02g==";
       };
     };
-    "@node-red/nodes-1.0.6" = {
+    "@node-red/nodes-1.1.3" = {
       name = "_at_node-red_slash_nodes";
       packageName = "@node-red/nodes";
-      version = "1.0.6";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/nodes/-/nodes-1.0.6.tgz";
-        sha512 = "4+wTiwhJlhLL6HV3YBLOGHSIcfygf4YxP/fJDkG+vy09pRyux/NqZ06NiqhYs+d+Ndf13LIc20KTEzN3pLW2Rw==";
+        url = "https://registry.npmjs.org/@node-red/nodes/-/nodes-1.1.3.tgz";
+        sha512 = "XAMSiQrBPqpG7/XZqquZ5V1F/ibaDr/e96BrforFfkVGdzeb/5I+/MI2bSl3s/pJiuj4CuKSkQ7gWKbNwa4mvQ==";
       };
     };
-    "@node-red/registry-1.0.6" = {
+    "@node-red/registry-1.1.3" = {
       name = "_at_node-red_slash_registry";
       packageName = "@node-red/registry";
-      version = "1.0.6";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/registry/-/registry-1.0.6.tgz";
-        sha512 = "jDNfcNyphjpywHmXfNuZhM593ox9qHMYmL6ZQQiyERwiJwSkGp2zzNicNBe10ysk5ENr36xdP46BryWu/j9xIA==";
+        url = "https://registry.npmjs.org/@node-red/registry/-/registry-1.1.3.tgz";
+        sha512 = "ULvrgC7fpClTHluiQcc4EptaYRPEoKdqfozSxL6XJW5x1BRNU9Iv7+5txhKoumcy7a54bavol32VA7/JRyewjg==";
       };
     };
-    "@node-red/runtime-1.0.6" = {
+    "@node-red/runtime-1.1.3" = {
       name = "_at_node-red_slash_runtime";
       packageName = "@node-red/runtime";
-      version = "1.0.6";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/runtime/-/runtime-1.0.6.tgz";
-        sha512 = "6eat9FZlIcydm0+VoUjlbxf9TyyLu0zTCWWANqGhu5Ab8o366WSOAxyIzJ5QL56FLQ+V6040YWmurBl+bGRGjg==";
+        url = "https://registry.npmjs.org/@node-red/runtime/-/runtime-1.1.3.tgz";
+        sha512 = "tJWPDPCFmp2sB+YZaLtPHOuuwNXQdQ15tizz1vL9i0S+0VVXE8SX2WhBzbsBxSitpNxQ6zTfq8bK28Zh75HCVg==";
       };
     };
-    "@node-red/util-1.0.6" = {
+    "@node-red/util-1.1.3" = {
       name = "_at_node-red_slash_util";
       packageName = "@node-red/util";
-      version = "1.0.6";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@node-red/util/-/util-1.0.6.tgz";
-        sha512 = "uncyHShA6strCJr1puqrpxsKcb7We2bmo/8xHk91pAQw4dr3jm4S+v/m9tYqVqtXkkW2cfJ6n3bRHJHbOZNW0Q==";
+        url = "https://registry.npmjs.org/@node-red/util/-/util-1.1.3.tgz";
+        sha512 = "Wa/L2bFRK9dR8K1zGlhp3Z9tqZgHsKaSK329YQGRIvAApbH5G//58V1oJdj3+9Gg8xza5YXx4Cw9hHs2m1du6A==";
       };
     };
     "@nodelib/fs.scandir-2.1.3" = {
@@ -2344,22 +2812,22 @@ let
         sha512 = "1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==";
       };
     };
-    "@npmcli/ci-detect-1.2.0" = {
+    "@npmcli/ci-detect-1.3.0" = {
       name = "_at_npmcli_slash_ci-detect";
       packageName = "@npmcli/ci-detect";
-      version = "1.2.0";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.2.0.tgz";
-        sha512 = "JtktVH7ASBVIWsQTFlFpeOzhBJskvoBCTfeeRhhZy7ybATcUvwiwotZ8j5rkqUUyB69lIy/AvboiiiGBjYBKBA==";
+        url = "https://registry.npmjs.org/@npmcli/ci-detect/-/ci-detect-1.3.0.tgz";
+        sha512 = "oN3y7FAROHhrAt7Rr7PnTSwrHrZVRTS2ZbyxeQwSSYD0ifwM3YNgQqbaRmjcWoPyq77MjchusjJDspbzMmip1Q==";
       };
     };
-    "@npmcli/git-2.0.2" = {
+    "@npmcli/git-2.0.4" = {
       name = "_at_npmcli_slash_git";
       packageName = "@npmcli/git";
-      version = "2.0.2";
+      version = "2.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/git/-/git-2.0.2.tgz";
-        sha512 = "uv9+EuP5YWluNPgkEOL+iyB/+MVt4U5PMBCfl+I8korKluFdiSp7RxjXYzpWM/wU4wXaROAUFiOiCMmBftonjw==";
+        url = "https://registry.npmjs.org/@npmcli/git/-/git-2.0.4.tgz";
+        sha512 = "OJZCmJ9DNn1cz9HPXXsPmUBnqaArot3CGYo63CyajHQk+g87rPXVOJByGsskQJhPsUUEXJcsZ2Q6bWd2jSwnBA==";
       };
     };
     "@npmcli/installed-package-contents-1.0.5" = {
@@ -2389,22 +2857,13 @@ let
         sha512 = "nFtqjVETliApiRdjbYwKwhlSHx2ZMagyj5b9YbNt0BWeeOVxJd47ZVE2u16vxDHyTOZvk+YLV7INwfAE9a2uow==";
       };
     };
-    "@npmcli/run-script-1.3.1" = {
+    "@npmcli/run-script-1.5.0" = {
       name = "_at_npmcli_slash_run-script";
       packageName = "@npmcli/run-script";
-      version = "1.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.3.1.tgz";
-        sha512 = "9Ea57XJjNLtBFRAaiKqqdoqRrL2QkM0vvCbMjPecljhog5IHupStPtZULbl0CoGN00N3lhLWJ4PaIEC0MGjqJw==";
-      };
-    };
-    "@oclif/color-0.0.0" = {
-      name = "_at_oclif_slash_color";
-      packageName = "@oclif/color";
-      version = "0.0.0";
+      version = "1.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/color/-/color-0.0.0.tgz";
-        sha512 = "KKd3W7eNwfNF061tr663oUNdt8EMnfuyf5Xv55SGWA1a0rjhWqS/32P7OeB7CbXcJUBdfVrPyR//1afaW12AWw==";
+        url = "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.5.0.tgz";
+        sha512 = "z7AzLmsMtVntMRJt35M5VAjb/jH6yH37Q8Ku011JVR7rEoy+p2a6/NkwqChCRZORlJaS9rwjXmZKM6UmwXLkqA==";
       };
     };
     "@oclif/color-0.1.2" = {
@@ -2416,31 +2875,31 @@ let
         sha512 = "M9o+DOrb8l603qvgz1FogJBUGLqcMFL1aFg2ZEL0FbXJofiNTLOWIeB4faeZTLwE6dt0xH9GpCVpzksMMzGbmA==";
       };
     };
-    "@oclif/command-1.6.1" = {
+    "@oclif/command-1.8.0" = {
       name = "_at_oclif_slash_command";
       packageName = "@oclif/command";
-      version = "1.6.1";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/command/-/command-1.6.1.tgz";
-        sha512 = "pvmMmfGn+zm4e4RwVw63mg9sIaqKqmVsFbImQoUrCO/43UmWzoSHWNXKdgEGigOezWrkZfFucaeZcSbp149OWg==";
+        url = "https://registry.npmjs.org/@oclif/command/-/command-1.8.0.tgz";
+        sha512 = "5vwpq6kbvwkQwKqAoOU3L72GZ3Ta8RRrewKj9OJRolx28KLJJ8Dg9Rf7obRwt5jQA9bkYd8gqzMTrI7H3xLfaw==";
       };
     };
-    "@oclif/config-1.15.1" = {
+    "@oclif/config-1.17.0" = {
       name = "_at_oclif_slash_config";
       packageName = "@oclif/config";
-      version = "1.15.1";
+      version = "1.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/config/-/config-1.15.1.tgz";
-        sha512 = "GdyHpEZuWlfU8GSaZoiywtfVBsPcfYn1KuSLT1JTfvZGpPG6vShcGr24YZ3HG2jXUFlIuAqDcYlTzOrqOdTPNQ==";
+        url = "https://registry.npmjs.org/@oclif/config/-/config-1.17.0.tgz";
+        sha512 = "Lmfuf6ubjQ4ifC/9bz1fSCHc6F6E653oyaRXxg+lgT4+bYf9bk+nqrUpAbrXyABkCqgIBiFr3J4zR/kiFdE1PA==";
       };
     };
-    "@oclif/errors-1.2.2" = {
+    "@oclif/errors-1.3.3" = {
       name = "_at_oclif_slash_errors";
       packageName = "@oclif/errors";
-      version = "1.2.2";
+      version = "1.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/errors/-/errors-1.2.2.tgz";
-        sha512 = "Eq8BFuJUQcbAPVofDxwdE0bL14inIiwt5EaKRVY9ZDIG11jwdXZqiQEECJx0VfnLyUZdYfRd/znDI/MytdJoKg==";
+        url = "https://registry.npmjs.org/@oclif/errors/-/errors-1.3.3.tgz";
+        sha512 = "EJR6AIOEkt/NnARNIVAskPDVtdhtO5TTNXmhDrGqMoWVsr0R6DkkLrMyq95BmHvlVWM1nduoq4fQPuCyuF2jaA==";
       };
     };
     "@oclif/linewrap-1.0.0" = {
@@ -2479,13 +2938,13 @@ let
         sha512 = "bGHUdo5e7DjPJ0vTeRBMIrfqTRDBfyR5w0MP41u0n3r7YG5p14lvMmiCXxi6WDaP2Hw5nqx3PnkAIntCKZZN7g==";
       };
     };
-    "@oclif/plugin-help-3.1.0" = {
+    "@oclif/plugin-help-3.2.0" = {
       name = "_at_oclif_slash_plugin-help";
       packageName = "@oclif/plugin-help";
-      version = "3.1.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.1.0.tgz";
-        sha512 = "orSWpXGlJaX16eSjAtI8scA8QhrjQOaCSHodEx52t18JKbIVzG8jcngugyWAOB/V4jhPl0rdiVk9XFsaIIiG2g==";
+        url = "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-3.2.0.tgz";
+        sha512 = "7jxtpwVWAVbp1r46ZnTK/uF+FeZc6y4p1XcGaIUuPAp7wx6NJhIRN/iMT9UfNFX/Cz7mq+OyJz+E+i0zrik86g==";
       };
     };
     "@oclif/plugin-not-found-1.2.4" = {
@@ -2497,13 +2956,13 @@ let
         sha512 = "G440PCuMi/OT8b71aWkR+kCWikngGtyRjOR24sPMDbpUFV4+B3r51fz1fcqeUiiEOYqUpr0Uy/sneUe1O/NfBg==";
       };
     };
-    "@oclif/plugin-plugins-1.7.9" = {
+    "@oclif/plugin-plugins-1.9.0" = {
       name = "_at_oclif_slash_plugin-plugins";
       packageName = "@oclif/plugin-plugins";
-      version = "1.7.9";
+      version = "1.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-1.7.9.tgz";
-        sha512 = "o7qfmiUGl+NUyA2lM18/Ch5sasGGYPIINR3cZ/AjwtdQ3ooINnF00pUDcUOtbjW97gRmk6/j79tcyTo8i7rHZg==";
+        url = "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-1.9.0.tgz";
+        sha512 = "sq31nJk/n5pH5qGDioj2Z9x6MlRUrc/kkQrfCYKRPbQM80qewSP4RcPK3/gDvDSOAWD3wLAK9oMbDQO9lqImMA==";
       };
     };
     "@oclif/plugin-warn-if-update-available-1.7.0" = {
@@ -2524,22 +2983,22 @@ let
         sha512 = "60CHpq+eqnTxLZQ4PGHYNwUX572hgpMHGPtTWMjdTMsAvlm69lZV/4ly6O3sAYkomo4NggGcomrDpBe34rxUqw==";
       };
     };
-    "@octokit/auth-token-2.4.1" = {
+    "@octokit/auth-token-2.4.2" = {
       name = "_at_octokit_slash_auth-token";
       packageName = "@octokit/auth-token";
-      version = "2.4.1";
+      version = "2.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.1.tgz";
-        sha512 = "NB81O5h39KfHYGtgfWr2booRxp2bWOJoqbWwbyUg2hw6h35ArWYlAST5B3XwAkbdcx13yt84hFXyFP5X0QToWA==";
+        url = "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.4.2.tgz";
+        sha512 = "jE/lE/IKIz2v1+/P0u4fJqv0kYwXOTujKemJMFr6FeopsxlIK3+wKDCJGnysg81XID5TgZQbIfuJ5J0lnTiuyQ==";
       };
     };
-    "@octokit/endpoint-6.0.2" = {
+    "@octokit/endpoint-6.0.6" = {
       name = "_at_octokit_slash_endpoint";
       packageName = "@octokit/endpoint";
-      version = "6.0.2";
+      version = "6.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.2.tgz";
-        sha512 = "xs1mmCEZ2y4shXCpFjNq3UbmNR+bLzxtZim2L0zfEtj9R6O6kc4qLDvYw66hvO6lUsYzPTM5hMkltbuNAbRAcQ==";
+        url = "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.6.tgz";
+        sha512 = "7Cc8olaCoL/mtquB7j/HTbPM+sY6Ebr4k2X2y4JoXpVKQ7r5xB4iGQE0IoO58wIPsUk4AzoT65AMEpymSbWTgQ==";
       };
     };
     "@octokit/plugin-enterprise-rest-6.0.1" = {
@@ -2578,13 +3037,13 @@ let
         sha512 = "EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==";
       };
     };
-    "@octokit/request-5.4.4" = {
+    "@octokit/request-5.4.9" = {
       name = "_at_octokit_slash_request";
       packageName = "@octokit/request";
-      version = "5.4.4";
+      version = "5.4.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/request/-/request-5.4.4.tgz";
-        sha512 = "vqv1lz41c6VTxUvF9nM+a6U+vvP3vGk7drDpr0DVQg4zyqlOiKVrY17DLD6de5okj+YLHKcoqaUZTBtlNZ1BtQ==";
+        url = "https://registry.npmjs.org/@octokit/request/-/request-5.4.9.tgz";
+        sha512 = "CzwVvRyimIM1h2n9pLVYfTDmX9m+KHSgCpqPsY8F1NdEK8IaWqXhSBXsdjOBFZSpEcxNEeg4p0UO9cQ8EnOCLA==";
       };
     };
     "@octokit/request-error-1.2.1" = {
@@ -2596,22 +3055,22 @@ let
         sha512 = "+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==";
       };
     };
-    "@octokit/request-error-2.0.1" = {
+    "@octokit/request-error-2.0.2" = {
       name = "_at_octokit_slash_request-error";
       packageName = "@octokit/request-error";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.1.tgz";
-        sha512 = "5lqBDJ9/TOehK82VvomQ6zFiZjPeSom8fLkFVLuYL3sKiIb5RB8iN/lenLkY7oBmyQcGP7FBMGiIZTO8jufaRQ==";
+        url = "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.0.2.tgz";
+        sha512 = "2BrmnvVSV1MXQvEkrb9zwzP0wXFNbPJij922kYBTLIlIafukrGOb+ABBT2+c6wZiuyWDH1K1zmjGQ0toN/wMWw==";
       };
     };
-    "@octokit/rest-16.43.1" = {
+    "@octokit/rest-16.43.2" = {
       name = "_at_octokit_slash_rest";
       packageName = "@octokit/rest";
-      version = "16.43.1";
+      version = "16.43.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.1.tgz";
-        sha512 = "gfFKwRT/wFxq5qlNjnW2dh+qh74XgTQ2B179UX5K1HYCluioWj8Ndbgqw2PVqa1NnVJkGHp2ovMpVn/DImlmkw==";
+        url = "https://registry.npmjs.org/@octokit/rest/-/rest-16.43.2.tgz";
+        sha512 = "ngDBevLbBTFfrHZeiS7SAMAZ6ssuVmXuya+F/7RaVvlysgGa1JKJkKWY+jV6TCJYcW0OALfJ7nTIGXcBXzycfQ==";
       };
     };
     "@octokit/types-2.16.2" = {
@@ -2623,13 +3082,13 @@ let
         sha512 = "O75k56TYvJ8WpAakWwYRN8Bgu60KrmX0z1KqFp1kNiFNkgW+JW+9EBKZ+S33PU6SLvbihqd+3drvPxKK68Ee8Q==";
       };
     };
-    "@octokit/types-4.1.10" = {
+    "@octokit/types-5.5.0" = {
       name = "_at_octokit_slash_types";
       packageName = "@octokit/types";
-      version = "4.1.10";
+      version = "5.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/types/-/types-4.1.10.tgz";
-        sha512 = "/wbFy1cUIE5eICcg0wTKGXMlKSbaAxEr00qaBXzscLXpqhcwgXeS6P8O0pkysBhRfyjkKjJaYrvR1ExMO5eOXQ==";
+        url = "https://registry.npmjs.org/@octokit/types/-/types-5.5.0.tgz";
+        sha512 = "UZ1pErDue6bZNjYOotCNveTXArOMZQFG6hKJfOnGnulVCMcVVi7YIIuuR4WfBhjo7zgpmzn/BkPDnUXtNx+PcQ==";
       };
     };
     "@parcel/fs-1.11.0" = {
@@ -2677,13 +3136,22 @@ let
         sha512 = "USSjRAAQYsZFlv43FUPdD+jEGML5/8oLF0rUzPQTtK4q9kvaXr49F5ZplyLz5lox78cLZ0TxN2bIDQ1xhOkulQ==";
       };
     };
-    "@primer/octicons-9.6.0" = {
+    "@prettier/plugin-pug-1.6.1" = {
+      name = "_at_prettier_slash_plugin-pug";
+      packageName = "@prettier/plugin-pug";
+      version = "1.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@prettier/plugin-pug/-/plugin-pug-1.6.1.tgz";
+        sha512 = "FqFByfSa72q2bxNocGlziXM/wAkhhIG5ecFU6+MddikqWTI+KIoeXRz6QHTtTWjcXqu6svlUNjNLhXMEMh25Hw==";
+      };
+    };
+    "@primer/octicons-10.1.0" = {
       name = "_at_primer_slash_octicons";
       packageName = "@primer/octicons";
-      version = "9.6.0";
+      version = "10.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@primer/octicons/-/octicons-9.6.0.tgz";
-        sha512 = "B5Wzk5izRXXz0JqEXJkVUtqhCXSpUKgqYkVwegMkp5sziBW+ksd9LPbONlCWyyLODwf9GsI2sBXekR7m+JJDBw==";
+        url = "https://registry.npmjs.org/@primer/octicons/-/octicons-10.1.0.tgz";
+        sha512 = "oXfV0uIe7I4cb3vUzBPlPZGL5SQ3+joyyRcmk28aJiGFySl8brzL0MJC63RahiNEnIFrL3D5BRVgz5ZGGuHCOg==";
       };
     };
     "@protobufjs/aspromise-1.1.2" = {
@@ -2776,22 +3244,58 @@ let
         sha1 = "a777360b5b39a1a2e5106f8e858f2fd2d060c570";
       };
     };
-    "@rollup/plugin-commonjs-12.0.0" = {
+    "@rollup/plugin-babel-5.2.1" = {
+      name = "_at_rollup_slash_plugin-babel";
+      packageName = "@rollup/plugin-babel";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.2.1.tgz";
+        sha512 = "Jd7oqFR2dzZJ3NWANDyBjwTtX/lYbZpVcmkHrfQcpvawHs9E4c0nYk5U2mfZ6I/DZcIvy506KZJi54XK/jxH7A==";
+      };
+    };
+    "@rollup/plugin-commonjs-13.0.2" = {
       name = "_at_rollup_slash_plugin-commonjs";
       packageName = "@rollup/plugin-commonjs";
-      version = "12.0.0";
+      version = "13.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-12.0.0.tgz";
-        sha512 = "8+mDQt1QUmN+4Y9D3yCG8AJNewuTSLYPJVzKKUZ+lGeQrI+bV12Tc5HCyt2WdlnG6ihIL/DPbKRJlB40DX40mw==";
+        url = "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-13.0.2.tgz";
+        sha512 = "9JXf2k8xqvMYfqmhgtB6eCgMN9fbxwF1XDF3mGKJc6pkAmt0jnsqurxQ0tC1akQKNSXCm7c3unQxa3zuxtZ7mQ==";
       };
     };
-    "@rollup/plugin-node-resolve-8.0.1" = {
+    "@rollup/plugin-commonjs-15.1.0" = {
+      name = "_at_rollup_slash_plugin-commonjs";
+      packageName = "@rollup/plugin-commonjs";
+      version = "15.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-15.1.0.tgz";
+        sha512 = "xCQqz4z/o0h2syQ7d9LskIMvBSH4PX5PjYdpSSvgS+pQik3WahkQVNWg3D8XJeYjZoVWnIUQYDghuEMRGrmQYQ==";
+      };
+    };
+    "@rollup/plugin-json-4.1.0" = {
+      name = "_at_rollup_slash_plugin-json";
+      packageName = "@rollup/plugin-json";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-4.1.0.tgz";
+        sha512 = "yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==";
+      };
+    };
+    "@rollup/plugin-node-resolve-8.4.0" = {
       name = "_at_rollup_slash_plugin-node-resolve";
       packageName = "@rollup/plugin-node-resolve";
-      version = "8.0.1";
+      version = "8.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz";
+        sha512 = "LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ==";
+      };
+    };
+    "@rollup/plugin-node-resolve-9.0.0" = {
+      name = "_at_rollup_slash_plugin-node-resolve";
+      packageName = "@rollup/plugin-node-resolve";
+      version = "9.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.0.1.tgz";
-        sha512 = "KIeAmueDDaYMqMBnUngLVVZhURwxA12nq/YB6nGm5/JpVyOMwI1fCVU3oL/dAnnLBG7oiPXntO5LHOiMrfNXCA==";
+        url = "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-9.0.0.tgz";
+        sha512 = "gPz+utFHLRrd41WMP13Jq5mqqzHL3OXrfj3/MkSyB6UBIcuNt9j60GCbarzMzdf1VHFpOxfQh/ez7wyadLMqkg==";
       };
     };
     "@rollup/pluginutils-3.1.0" = {
@@ -2812,40 +3316,49 @@ let
         sha512 = "YXJqp9gdHcZKAmBY/WnwFpPtNQp2huD/ME2YMurH2YHJvxrVzYsmpKw/pb7yINArRpp8E++fwbQd3ajYXGA45Q==";
       };
     };
-    "@samverschueren/stream-to-observable-0.3.0" = {
+    "@samverschueren/stream-to-observable-0.3.1" = {
       name = "_at_samverschueren_slash_stream-to-observable";
       packageName = "@samverschueren/stream-to-observable";
-      version = "0.3.0";
+      version = "0.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.0.tgz";
-        sha512 = "MI4Xx6LHs4Webyvi6EbspgyAb4D2Q2VtnCQ1blOJcoLS6mVa8lNN2rkIy1CVxfTUpoyIbCTkXES1rLXztFD1lg==";
+        url = "https://registry.npmjs.org/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz";
+        sha512 = "c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==";
       };
     };
-    "@schematics/angular-9.1.7" = {
+    "@schematics/angular-10.1.2" = {
       name = "_at_schematics_slash_angular";
       packageName = "@schematics/angular";
-      version = "9.1.7";
+      version = "10.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/angular/-/angular-9.1.7.tgz";
-        sha512 = "ld3WcoMWvup04V3OWioQ+AFGQBzz7IDM4Fxc5+Qc3wILWkDJnNkrc4EmJAow96Ab4/T1+Wl1vof3tV4At0BTzA==";
+        url = "https://registry.npmjs.org/@schematics/angular/-/angular-10.1.2.tgz";
+        sha512 = "7BHgSdP4yC0IuoiPGWBGQrwE5ilBhIOGozjKSHx41Utac45YKyXpmjr1Jw+SvFilgsnPEjZwc7VKqgINmeLkqA==";
       };
     };
-    "@schematics/update-0.901.7" = {
+    "@schematics/schematics-0.1000.7" = {
+      name = "_at_schematics_slash_schematics";
+      packageName = "@schematics/schematics";
+      version = "0.1000.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@schematics/schematics/-/schematics-0.1000.7.tgz";
+        sha512 = "mucBf5EkhME9O0TvxPeiUTEuudRvEOSjhF/YFHEp/9NZB1JH9lXtBQ60IN6xtCLEbxJmAzhZSns9QPPrHaZRrw==";
+      };
+    };
+    "@schematics/update-0.1001.2" = {
       name = "_at_schematics_slash_update";
       packageName = "@schematics/update";
-      version = "0.901.7";
+      version = "0.1001.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/update/-/update-0.901.7.tgz";
-        sha512 = "6IpQVFvbu47CrXfqqHAzv2vi7AOdfi1S+SiayXU6FWTeA2wV47H8R60VjxurL8JkDGoVhFgC4+lK6KG++g3dQw==";
+        url = "https://registry.npmjs.org/@schematics/update/-/update-0.1001.2.tgz";
+        sha512 = "Z/P08k4FlbKNmxV5pe34yfKPLI2327CjBg26isO5qpR4nB1FVZkC39YXwFwJod3nU7DE6UMkKcA749k30k2KSg==";
       };
     };
-    "@serverless/cli-1.4.0" = {
+    "@serverless/cli-1.5.2" = {
       name = "_at_serverless_slash_cli";
       packageName = "@serverless/cli";
-      version = "1.4.0";
+      version = "1.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/cli/-/cli-1.4.0.tgz";
-        sha512 = "YqlCiYmRFeGksw6XJaXbigIDlktc7OfRuVpyPB7IZgkCJ9mUlBmvyWdwqJEQdkUz0xPTGsd4Jd/XSrwyiw1Brg==";
+        url = "https://registry.npmjs.org/@serverless/cli/-/cli-1.5.2.tgz";
+        sha512 = "FMACx0qPD6Uj8U+7jDmAxEe1tdF9DsuY5VsG45nvZ3olC9xYJe/PMwxWsjXfK3tg1HUNywYAGCsy7p5fdXhNzw==";
       };
     };
     "@serverless/component-metrics-1.0.8" = {
@@ -2857,13 +3370,13 @@ let
         sha512 = "lOUyRopNTKJYVEU9T6stp2irwlTDsYMmUKBOUjnMcwGveuUfIJqrCOtFLtIPPj3XJlbZy5F68l4KP9rZ8Ipang==";
       };
     };
-    "@serverless/components-2.30.14" = {
+    "@serverless/components-3.1.3" = {
       name = "_at_serverless_slash_components";
       packageName = "@serverless/components";
-      version = "2.30.14";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/components/-/components-2.30.14.tgz";
-        sha512 = "sWCuALO55BhdJAPJSN4KgifRJUCkr44FE/Bhw6hpz+3vK49mfnjDF6iHdNi6wNx85BRRgXGz1z/015epwqRtnA==";
+        url = "https://registry.npmjs.org/@serverless/components/-/components-3.1.3.tgz";
+        sha512 = "WVPM0lVwzzg1KuCGVWNnps/X4IyLdkFQ34XLLJq6PMtsOxeYs9GMg5j8C9TBrWN2s9eJjUpu2fq0KOt2L/s5yQ==";
       };
     };
     "@serverless/core-1.1.2" = {
@@ -2875,13 +3388,13 @@ let
         sha512 = "PY7gH+7aQ+MltcUD7SRDuQODJ9Sav9HhFJsgOiyf8IVo7XVD6FxZIsSnpMI6paSkptOB7n+0Jz03gNlEkKetQQ==";
       };
     };
-    "@serverless/enterprise-plugin-3.6.13" = {
+    "@serverless/enterprise-plugin-4.0.4" = {
       name = "_at_serverless_slash_enterprise-plugin";
       packageName = "@serverless/enterprise-plugin";
-      version = "3.6.13";
+      version = "4.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/enterprise-plugin/-/enterprise-plugin-3.6.13.tgz";
-        sha512 = "L7DOqo7LviAbYIySV5n+sURwyI5rf6IfVKRzFF3CK/EtbHUBJn7gEdHNo86Xmsm4I251ZggGSsorQvSIzT2VUQ==";
+        url = "https://registry.npmjs.org/@serverless/enterprise-plugin/-/enterprise-plugin-4.0.4.tgz";
+        sha512 = "B+I1tZWWJN2Ziwp34FZ9umbu6cZ5Pv8lHA6iOtYzMqq6r22xF/9rwxY3fCdguo+Szd6t7RFb0zIW2RuBRgktVA==";
       };
     };
     "@serverless/event-mocks-1.1.1" = {
@@ -2902,31 +3415,40 @@ let
         sha512 = "2c5A6HSWwXluknPNJ2s+Z4WfBwP7Kn6kgsEKD+5xlXpDpBFsRku/xJyO9eqRCwxTM41stgHNC6TRsZ03+wH/rw==";
       };
     };
-    "@serverless/platform-client-0.25.14" = {
+    "@serverless/platform-client-1.1.10" = {
       name = "_at_serverless_slash_platform-client";
       packageName = "@serverless/platform-client";
-      version = "0.25.14";
+      version = "1.1.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/platform-client/-/platform-client-0.25.14.tgz";
-        sha512 = "ww5GBt5QEHYppLH8X+gEFiuMoFu9xdXK0bEROYbuxUliiB0IfXTXLzWR5whhi/S94R7pTnJ4O+WUiFj0PcV/tQ==";
+        url = "https://registry.npmjs.org/@serverless/platform-client/-/platform-client-1.1.10.tgz";
+        sha512 = "vMCYRdDaqQjPDlny3+mVNy0lr1P6RJ7hVkR2w9Bk783ZB894hobtMrTm8V8OQPwOvlAypmLnQsLPXwRNM+AMsw==";
       };
     };
-    "@serverless/platform-client-china-1.0.18" = {
+    "@serverless/platform-client-2.0.2" = {
+      name = "_at_serverless_slash_platform-client";
+      packageName = "@serverless/platform-client";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serverless/platform-client/-/platform-client-2.0.2.tgz";
+        sha512 = "3guXwRmHOujBy6Lmf7THtnfJQcLRYzpTRpL1rCxLko7OtIWcOth3TvW2JtWNu6qubauA+5kpLB2rdCaPefZYbQ==";
+      };
+    };
+    "@serverless/platform-client-china-1.1.0" = {
       name = "_at_serverless_slash_platform-client-china";
       packageName = "@serverless/platform-client-china";
-      version = "1.0.18";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/platform-client-china/-/platform-client-china-1.0.18.tgz";
-        sha512 = "M6bucQXgnHF6M+4D4Wt8KCz1bUxpMtG8CPS/WiOhzwwTdG79aYwNIOIC1xo0wtDmrlTwh8ECD8WclAWSHmfaqg==";
+        url = "https://registry.npmjs.org/@serverless/platform-client-china/-/platform-client-china-1.1.0.tgz";
+        sha512 = "QVk55zO5wcax3tPFp6IiZwf7yI0wZ64kNuR0eGM31g37AMt2+rBM6plE41zNKADRDBSqOtmnwEbsPiWlxZ/S9A==";
       };
     };
-    "@serverless/platform-sdk-2.3.1" = {
+    "@serverless/platform-sdk-2.3.2" = {
       name = "_at_serverless_slash_platform-sdk";
       packageName = "@serverless/platform-sdk";
-      version = "2.3.1";
+      version = "2.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/platform-sdk/-/platform-sdk-2.3.1.tgz";
-        sha512 = "EiSizya9bK0+5uae3GH9uXuWAchZplkLO0tWOAXtnU5QWSg5zicANL9jKCw0dyhjUOvbcO0ddhFlG8EGYvJFSA==";
+        url = "https://registry.npmjs.org/@serverless/platform-sdk/-/platform-sdk-2.3.2.tgz";
+        sha512 = "JSX0/EphGVvnb4RAgZYewtBXPuVsU2TFCuXh6EEZ4jxK3WgUwNYeYdwB8EuVLrm1/dYqu/UWUC0rPKb+ZDycJg==";
       };
     };
     "@serverless/template-1.1.3" = {
@@ -2938,13 +3460,22 @@ let
         sha512 = "hcMiX523rkp6kHeKnM1x6/dXEY+d1UFSr901yVKeeCgpFy4u33UI9vlKaPweAZCF6Ahzqywf01IsFTuBVadCrQ==";
       };
     };
-    "@serverless/utils-china-0.1.13" = {
+    "@serverless/utils-1.2.0" = {
+      name = "_at_serverless_slash_utils";
+      packageName = "@serverless/utils";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serverless/utils/-/utils-1.2.0.tgz";
+        sha512 = "aI/cpGVUhWbJUR8QDMtPue28EU4ViG/L4/XKuZDfAN2uNQv3NRjwEFIBi/cxyfQnMTYVtMLe9wDjuwzOT4ENzA==";
+      };
+    };
+    "@serverless/utils-china-0.1.28" = {
       name = "_at_serverless_slash_utils-china";
       packageName = "@serverless/utils-china";
-      version = "0.1.13";
+      version = "0.1.28";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@serverless/utils-china/-/utils-china-0.1.13.tgz";
-        sha512 = "NeWXaNDUs/8mUyq2OVtSyzTHEg4PabaEmz31tIkG5+AUuNdfg/mlE5RTzOmH0pW/WeKwFtmm3Wehs75WEpzYcQ==";
+        url = "https://registry.npmjs.org/@serverless/utils-china/-/utils-china-0.1.28.tgz";
+        sha512 = "nxMBES1wR+U1U8UWaWd7CwKmoY18SRHT6h39ux8YGXgxeRd9pqKB4/TTLX4hHYMsqHteXufpFZQIhl0aGf9oww==";
       };
     };
     "@sindresorhus/is-0.14.0" = {
@@ -2974,85 +3505,94 @@ let
         sha512 = "/aPsuoj/1Dw/kzhkgz+ES6TxG0zfTMGLwuK2ZG00k/iJzYHTLCE8mVU8EPqEOp/lmxPoq1C1C9RYToRKb2KEfg==";
       };
     };
-    "@slack/client-3.16.0" = {
-      name = "_at_slack_slash_client";
-      packageName = "@slack/client";
-      version = "3.16.0";
+    "@sindresorhus/is-3.1.2" = {
+      name = "_at_sindresorhus_slash_is";
+      packageName = "@sindresorhus/is";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@slack/client/-/client-3.16.0.tgz";
-        sha512 = "CWr7a3rTVrN5Vs8GYReRAvTourbXHOqB1zglcskj05ICH4GZL5BOAza2ARai+qc3Nz0nY08Bozi1x0014KOqlg==";
+        url = "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz";
+        sha512 = "JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ==";
       };
     };
-    "@snyk/cli-interface-1.5.0" = {
-      name = "_at_snyk_slash_cli-interface";
-      packageName = "@snyk/cli-interface";
-      version = "1.5.0";
+    "@sindresorhus/slugify-1.1.0" = {
+      name = "_at_sindresorhus_slash_slugify";
+      packageName = "@sindresorhus/slugify";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-1.5.0.tgz";
-        sha512 = "+Qo+IO3YOXWgazlo+CKxOuWFLQQdaNCJ9cSfhFQd687/FuesaIxWdInaAdfpsLScq0c6M1ieZslXgiZELSzxbg==";
+        url = "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.0.tgz";
+        sha512 = "ujZRbmmizX26yS/HnB3P9QNlNa4+UvHh+rIse3RbOXLp8yl6n1TxB4t7NHggtVgS8QmmOtzXo48kCxZGACpkPw==";
       };
     };
-    "@snyk/cli-interface-2.3.2" = {
-      name = "_at_snyk_slash_cli-interface";
-      packageName = "@snyk/cli-interface";
-      version = "2.3.2";
+    "@sindresorhus/transliterate-0.1.1" = {
+      name = "_at_sindresorhus_slash_transliterate";
+      packageName = "@sindresorhus/transliterate";
+      version = "0.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.3.2.tgz";
-        sha512 = "jmZyxVHqzYU1GfdnWCGdd68WY/lAzpPVyqalHazPj4tFJehrSfEFc82RMTYAMgXEJuvFRFIwhsvXh3sWUhIQmg==";
+        url = "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.1.tgz";
+        sha512 = "QSdIQ5keUFAZ3KLbfbsntW39ox0Ym8183RqTwBq/ZEFoN3NQAtGV+qWaNdzKpIDHgj9J2CQ2iNDRVU11Zyr7MQ==";
       };
     };
-    "@snyk/cli-interface-2.5.0" = {
+    "@slack/client-3.16.0" = {
+      name = "_at_slack_slash_client";
+      packageName = "@slack/client";
+      version = "3.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@slack/client/-/client-3.16.0.tgz";
+        sha512 = "CWr7a3rTVrN5Vs8GYReRAvTourbXHOqB1zglcskj05ICH4GZL5BOAza2ARai+qc3Nz0nY08Bozi1x0014KOqlg==";
+      };
+    };
+    "@snyk/cli-interface-2.9.1" = {
       name = "_at_snyk_slash_cli-interface";
       packageName = "@snyk/cli-interface";
-      version = "2.5.0";
+      version = "2.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.5.0.tgz";
-        sha512 = "XMc2SCFH4RBSncZgoPb+BBlNq0NYpEpCzptKi69qyMpBy0VsRqIQqddedaazMCU1xEpXTytq6KMYpzUafZzp5Q==";
+        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.9.1.tgz";
+        sha512 = "2zHRvEt4S0DO+hPRX3hp5ssELouJqgb/JUTmPDMr/32r//qooSTxojwSvAK2A6VYgYOHuo1S3VTpsSP/ywkPXA==";
       };
     };
-    "@snyk/cli-interface-2.6.0" = {
+    "@snyk/cli-interface-2.9.2" = {
       name = "_at_snyk_slash_cli-interface";
       packageName = "@snyk/cli-interface";
-      version = "2.6.0";
+      version = "2.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.6.0.tgz";
-        sha512 = "jtk0gf80v4mFyDqaQNokD8GOPMTXpIUL35ewg6jtmuZw41xt56WF9kqCjiiViSRRRYA0RK+RuiVfmJA5pxvMUQ==";
+        url = "https://registry.npmjs.org/@snyk/cli-interface/-/cli-interface-2.9.2.tgz";
+        sha512 = "C64bGtcQbh7941l7qgXFJ+FJIZdQtBHkPhKfGtUlCCMbC0FK0oaUmp6d7YPQxT4dEnkQdtlBT/eA2F6qIKbEng==";
       };
     };
-    "@snyk/cocoapods-lockfile-parser-3.4.0" = {
+    "@snyk/cocoapods-lockfile-parser-3.5.2" = {
       name = "_at_snyk_slash_cocoapods-lockfile-parser";
       packageName = "@snyk/cocoapods-lockfile-parser";
-      version = "3.4.0";
+      version = "3.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/cocoapods-lockfile-parser/-/cocoapods-lockfile-parser-3.4.0.tgz";
-        sha512 = "mAWgKIHFv0QEGpRvocVMxLAdJx7BmXtVOyQN/VtsGBoGFKqhO0jbtKUUVJC4b0jyKfVmEF2puo94i+1Uqz5q6A==";
+        url = "https://registry.npmjs.org/@snyk/cocoapods-lockfile-parser/-/cocoapods-lockfile-parser-3.5.2.tgz";
+        sha512 = "fIiUNCmhDp7lVKTs/nHCnLK1roMkG15HhuQhtZXxiFW3EZ5H9IqMdtrxqjXuzVWt7X2h7lbF5OMBzD07NODtug==";
       };
     };
-    "@snyk/composer-lockfile-parser-1.4.0" = {
+    "@snyk/composer-lockfile-parser-1.4.1" = {
       name = "_at_snyk_slash_composer-lockfile-parser";
       packageName = "@snyk/composer-lockfile-parser";
-      version = "1.4.0";
+      version = "1.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/composer-lockfile-parser/-/composer-lockfile-parser-1.4.0.tgz";
-        sha512 = "ga4YTRjJUuP0Ufr+t1IucwVjEFAv66JSBB/zVHP2zy/jmfA3l3ZjlGQSjsRC6Me9P2Z0esQ83AYNZvmIf9pq2w==";
+        url = "https://registry.npmjs.org/@snyk/composer-lockfile-parser/-/composer-lockfile-parser-1.4.1.tgz";
+        sha512 = "wNANv235j95NFsQuODIXCiQZ9kcyg9fz92Kg1zoGvaP3kN/ma7fgCnvQL/dyml6iouQJR5aZovjhrrfEFoKtiQ==";
       };
     };
-    "@snyk/dep-graph-1.18.3" = {
+    "@snyk/dep-graph-1.19.4" = {
       name = "_at_snyk_slash_dep-graph";
       packageName = "@snyk/dep-graph";
-      version = "1.18.3";
+      version = "1.19.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.18.3.tgz";
-        sha512 = "7qWRTIJdZuc5VzDjdV2+03AHElyAZmhq7eV9BRu+jqrYjo9ohWBGEZgYslrTdvfqfJ8rkdrG3j0/0Aa25IxJcg==";
+        url = "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.19.4.tgz";
+        sha512 = "h3MMhjVm3BuIruwpDBqnMowKOG9viwr3TJHdIxTHulWKWSsPTTW1AAP3/RaK+UBp1y/Ua9yzeHncKIrzBdT5Nw==";
       };
     };
-    "@snyk/dep-graph-1.18.4" = {
-      name = "_at_snyk_slash_dep-graph";
-      packageName = "@snyk/dep-graph";
-      version = "1.18.4";
+    "@snyk/docker-registry-v2-client-1.13.5" = {
+      name = "_at_snyk_slash_docker-registry-v2-client";
+      packageName = "@snyk/docker-registry-v2-client";
+      version = "1.13.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/dep-graph/-/dep-graph-1.18.4.tgz";
-        sha512 = "SePWsDyD7qrLxFifIieEl4GqyOODfOnP0hmUweTG5YcMroAV5nARGAUcjxREGzbXMcUpPfZhAaqFjYgzUDH8dQ==";
+        url = "https://registry.npmjs.org/@snyk/docker-registry-v2-client/-/docker-registry-v2-client-1.13.5.tgz";
+        sha512 = "lgJiC071abCpFVLp47OnykU8MMrhdQe386Wt6QaDmjI0s2DQn/S58NfdLrPU7s6l4zoGT7UwRW9+7paozRgFTA==";
       };
     };
     "@snyk/gemfile-1.2.0" = {
@@ -3064,40 +3604,13 @@ let
         sha512 = "nI7ELxukf7pT4/VraL4iabtNNMz8mUo7EXlqCFld8O5z6mIMLX9llps24iPpaIZOwArkY3FWA+4t+ixyvtTSIA==";
       };
     };
-    "@snyk/graphlib-2.1.9-patch" = {
-      name = "_at_snyk_slash_graphlib";
-      packageName = "@snyk/graphlib";
-      version = "2.1.9-patch";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/graphlib/-/graphlib-2.1.9-patch.tgz";
-        sha512 = "uFO/pNMm3pN15QB+hVMU7uaQXhsBNwEA8lOET/VDcdOzLptODhXzkJqSHqt0tZlpdAz6/6Uaj8jY00UvPFgFMA==";
-      };
-    };
-    "@snyk/inquirer-6.2.2-patch" = {
-      name = "_at_snyk_slash_inquirer";
-      packageName = "@snyk/inquirer";
-      version = "6.2.2-patch";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/inquirer/-/inquirer-6.2.2-patch.tgz";
-        sha512 = "IUq5bHRL0vtVKtfvd4GOccAIaLYHbcertug2UVZzk5+yY6R/CxfYsnFUTho1h4BdkfNdin2tPjE/5jRF4SKSrw==";
-      };
-    };
-    "@snyk/java-call-graph-builder-1.10.0" = {
+    "@snyk/java-call-graph-builder-1.13.2" = {
       name = "_at_snyk_slash_java-call-graph-builder";
       packageName = "@snyk/java-call-graph-builder";
-      version = "1.10.0";
+      version = "1.13.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.10.0.tgz";
-        sha512 = "x3vKElHJRsPjlMBRACeD6kHtki54ffahYeAm4ny5epVpxm16/OT6f6AjNjPuX8DbxcauaD7wqirtc62OPH3YqA==";
-      };
-    };
-    "@snyk/lodash-4.17.15-patch" = {
-      name = "_at_snyk_slash_lodash";
-      packageName = "@snyk/lodash";
-      version = "4.17.15-patch";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/lodash/-/lodash-4.17.15-patch.tgz";
-        sha512 = "e4+t34bGyjjRnwXwI14hqye9J/nRbG9iwaqTgXWHskm5qC+iK0UrjgYdWXiHJCf3Plbpr+1rpW+4LPzZnCGMhQ==";
+        url = "https://registry.npmjs.org/@snyk/java-call-graph-builder/-/java-call-graph-builder-1.13.2.tgz";
+        sha512 = "YN3a93ttscqFQRUeThrxa7i2SJkFPfYn0VpFqdPB6mIJz2fRVLxUkMtlCbG0aSEUvWiLnGVHN0IYxwWEzhq11w==";
       };
     };
     "@snyk/rpm-parser-2.0.0" = {
@@ -3109,31 +3622,31 @@ let
         sha512 = "bWjQY5Xk3TcfVpeo8M5BhhSUEdPr2P19AWW13CHPu6sFZkckLWEcjQycnBsVD6RBmxGXecJ1YNui8dq6soHoYQ==";
       };
     };
-    "@snyk/ruby-semver-2.2.0" = {
-      name = "_at_snyk_slash_ruby-semver";
-      packageName = "@snyk/ruby-semver";
-      version = "2.2.0";
+    "@snyk/snyk-cocoapods-plugin-2.5.1" = {
+      name = "_at_snyk_slash_snyk-cocoapods-plugin";
+      packageName = "@snyk/snyk-cocoapods-plugin";
+      version = "2.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/ruby-semver/-/ruby-semver-2.2.0.tgz";
-        sha512 = "FqUayoVjcyCsQFYPm3DcaCKdFR4xmapUkCGY+bcNBs3jqCUw687PoP9CPQ1Jvtaw5YpfBNl/62jyntsWCeciuA==";
+        url = "https://registry.npmjs.org/@snyk/snyk-cocoapods-plugin/-/snyk-cocoapods-plugin-2.5.1.tgz";
+        sha512 = "A+1xHD+SpmXQa0p+dWmiApFZtz/y37qAW9aWmFx2B1j7fwRBf9Qr89/6RbJOznf1a4nEitjzE3fa98yNZk/MNg==";
       };
     };
-    "@snyk/snyk-cocoapods-plugin-2.3.0" = {
-      name = "_at_snyk_slash_snyk-cocoapods-plugin";
-      packageName = "@snyk/snyk-cocoapods-plugin";
-      version = "2.3.0";
+    "@snyk/snyk-docker-pull-3.2.0" = {
+      name = "_at_snyk_slash_snyk-docker-pull";
+      packageName = "@snyk/snyk-docker-pull";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@snyk/snyk-cocoapods-plugin/-/snyk-cocoapods-plugin-2.3.0.tgz";
-        sha512 = "4V1xJMqsK6J3jHu9UufKySorzA8O1vNLRIK1JgJf5KcXQCP44SJI5dk9Xr9iFGXXtGo8iI9gmokQcHlGpkPSJg==";
+        url = "https://registry.npmjs.org/@snyk/snyk-docker-pull/-/snyk-docker-pull-3.2.0.tgz";
+        sha512 = "uWKtjh29I/d0mfmfBN7w6RwwNBQxQVKrauF5ND/gqb0PVsKV22GIpkI+viWjI7KNKso6/B0tMmsv7TX2tsNcLQ==";
       };
     };
-    "@sorg/log-2.1.0" = {
+    "@sorg/log-2.2.0" = {
       name = "_at_sorg_slash_log";
       packageName = "@sorg/log";
-      version = "2.1.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@sorg/log/-/log-2.1.0.tgz";
-        sha512 = "weyuceH7eLZGlQLwA9+c2vxCWtWLe0vt4ma9qHzvB7aIbEZkAUXsONytEza6vNq2hIeL3/lRFRoGeiuBbnFfaA==";
+        url = "https://registry.npmjs.org/@sorg/log/-/log-2.2.0.tgz";
+        sha512 = "w5aH2k4caUWxO3dzJ0+GUJJGSqsg0gT6myhypQumlJXsKzYqzsZGZRWA2s/0zQIx6+B2wDvdweVogiWMAAbaKw==";
       };
     };
     "@starptech/expression-parser-0.10.0" = {
@@ -3244,139 +3757,139 @@ let
         sha512 = "PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ==";
       };
     };
-    "@tencent-sdk/capi-0.2.15-alpha.0" = {
+    "@tencent-sdk/capi-0.2.17" = {
       name = "_at_tencent-sdk_slash_capi";
       packageName = "@tencent-sdk/capi";
-      version = "0.2.15-alpha.0";
+      version = "0.2.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@tencent-sdk/capi/-/capi-0.2.15-alpha.0.tgz";
-        sha512 = "1P3tlXJgQaQIqphh1jVeyXDOajFUFIU4J7MoU3Pwxdx58dOwS59/suTq4El0Fe12pc3Gmhw+eDeQc35GaHYViw==";
+        url = "https://registry.npmjs.org/@tencent-sdk/capi/-/capi-0.2.17.tgz";
+        sha512 = "DIenMFJXrd4yb35BbW/7LiikCQotbm9HEBG9S4HKV47tcKt6e4nZrNPO3R2hHgQ2jdo0xfqmlUlCP0O4Q3b9pw==";
       };
     };
-    "@textlint/ast-node-types-4.2.5" = {
+    "@textlint/ast-node-types-4.3.4" = {
       name = "_at_textlint_slash_ast-node-types";
       packageName = "@textlint/ast-node-types";
-      version = "4.2.5";
+      version = "4.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.2.5.tgz";
-        sha512 = "+rEx4jLOeZpUcdvll7jEg/7hNbwYvHWFy4IGW/tk2JdbyB3SJVyIP6arAwzTH/sp/pO9jftfyZnRj4//sLbLvQ==";
+        url = "https://registry.npmjs.org/@textlint/ast-node-types/-/ast-node-types-4.3.4.tgz";
+        sha512 = "Grq+vJuNH7HCa278eFeiqJvowrD+onMCoG2ctLyoN+fXYIQGIr1/8fo8AcIg+VM16Kga+N6Y1UWNOWPd8j1nFg==";
       };
     };
-    "@textlint/ast-tester-2.1.6" = {
+    "@textlint/ast-tester-2.2.4" = {
       name = "_at_textlint_slash_ast-tester";
       packageName = "@textlint/ast-tester";
-      version = "2.1.6";
+      version = "2.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-2.1.6.tgz";
-        sha512 = "i+UrSKZXs561g8LXsCBkgpNYkgBS3T3Pif2/+DraZmSKpQ2r2D1yCOdH82IGPWWpQ/GMSg6Z0qpLJpjnYz+bpg==";
+        url = "https://registry.npmjs.org/@textlint/ast-tester/-/ast-tester-2.2.4.tgz";
+        sha512 = "676xpY3/+Xa+tPaiUPaD4sl//+p3xsnSPYLrQjSmHWXX78F3MwAWd/Lek+SCn4wwvf1tCIx0SPtjfOCa6ru8qw==";
       };
     };
-    "@textlint/ast-traverse-2.1.7" = {
+    "@textlint/ast-traverse-2.2.5" = {
       name = "_at_textlint_slash_ast-traverse";
       packageName = "@textlint/ast-traverse";
-      version = "2.1.7";
+      version = "2.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-2.1.7.tgz";
-        sha512 = "73Nw0R4TaskPmF36Hop1DZ8AbH339WrGiLQjzbOLaXHaBHQ4hdNw28UMlw4glfPZb7/zvxPcJRtg9AB8F3ZW0g==";
+        url = "https://registry.npmjs.org/@textlint/ast-traverse/-/ast-traverse-2.2.5.tgz";
+        sha512 = "YduGVn7iaUYOfo7TwHO4b0K/qQpj61Ol/M884ck3vetNd0zBxpHO3GpQKW87SZGGtlsBa9v5Suz/yypnlPo3Og==";
       };
     };
-    "@textlint/feature-flag-3.1.6" = {
+    "@textlint/feature-flag-3.2.4" = {
       name = "_at_textlint_slash_feature-flag";
       packageName = "@textlint/feature-flag";
-      version = "3.1.6";
+      version = "3.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-3.1.6.tgz";
-        sha512 = "R2s027/WG3zhCMHZG79OhRFmkSL2ghwvFYg/W+2VUva5aYC8i9yeuwRyWt7m83tP1qlI+bq7j3S04fyn6yNheg==";
+        url = "https://registry.npmjs.org/@textlint/feature-flag/-/feature-flag-3.2.4.tgz";
+        sha512 = "ABhbZ5rfkwa/kTBFxVmeMzE1flcnUjLJ5LTZvOaxH/pElfLLN1J4FEmAZTRCvXGAB498II6nkM2CqcikbKzh6A==";
       };
     };
-    "@textlint/fixer-formatter-3.1.13" = {
+    "@textlint/fixer-formatter-3.2.5" = {
       name = "_at_textlint_slash_fixer-formatter";
       packageName = "@textlint/fixer-formatter";
-      version = "3.1.13";
+      version = "3.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-3.1.13.tgz";
-        sha512 = "FXqAJZ+5fLsOZjvFmn1JhCer8gQI4ZQk3R45bXizRJm6DASByPAGGh/MAQxxHSGeR5wR8miO/koxA2BrS8OhAw==";
+        url = "https://registry.npmjs.org/@textlint/fixer-formatter/-/fixer-formatter-3.2.5.tgz";
+        sha512 = "fh6XiLbX9WF8+79g20qb1I85k/Yc9+h7LRccmaLzTBjVQDNYxX5BtfvGsY0Vf5tBZKT2xFZH4eSLH/EWoL3weg==";
       };
     };
-    "@textlint/kernel-3.2.1" = {
+    "@textlint/kernel-3.3.6" = {
       name = "_at_textlint_slash_kernel";
       packageName = "@textlint/kernel";
-      version = "3.2.1";
+      version = "3.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/kernel/-/kernel-3.2.1.tgz";
-        sha512 = "gMCgP/tAjCX8dGqgu7nhUwaDC/TzDKeRZb9qa50nqbnILRasKplj3lOWn2osZdkScVZPLQp+al1pDh9pU4D+Dw==";
+        url = "https://registry.npmjs.org/@textlint/kernel/-/kernel-3.3.6.tgz";
+        sha512 = "M2ciQDAo5W6rpRADzGnMXyxhvJ+lnqYG9iHrqmfDQ2MA0VcolWuA37H67/UstqTs3NYaGC7RZkq9FAV//pl30w==";
       };
     };
-    "@textlint/linter-formatter-3.1.12" = {
+    "@textlint/linter-formatter-3.2.5" = {
       name = "_at_textlint_slash_linter-formatter";
       packageName = "@textlint/linter-formatter";
-      version = "3.1.12";
+      version = "3.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-3.1.12.tgz";
-        sha512 = "OEP4pklu01MEgBJrftD9vwe3HFx+jhiEe1JFIgf7GZ4a0fSer5vQWXBo5wHW6WtZtSa+iLBsLC3mI5VMeshzdA==";
+        url = "https://registry.npmjs.org/@textlint/linter-formatter/-/linter-formatter-3.2.5.tgz";
+        sha512 = "oy5RcBWrC2d7r0Mjw/FBH8cvQuOaCB5PeOPG0Pp44Yr5JbIGLXfh84umHQOTCmxfRxw3ccnUfA9wjbxuL8rWOQ==";
       };
     };
-    "@textlint/markdown-to-ast-6.1.7" = {
+    "@textlint/markdown-to-ast-6.2.5" = {
       name = "_at_textlint_slash_markdown-to-ast";
       packageName = "@textlint/markdown-to-ast";
-      version = "6.1.7";
+      version = "6.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.1.7.tgz";
-        sha512 = "B0QtokeQR4a9+4q0NQr8T9l7A1fFihTN5Ze57tVgqW+3ymzXEouh8DvPHeNQ4T6jEkAThvdjk95mxAMpGRJ79w==";
+        url = "https://registry.npmjs.org/@textlint/markdown-to-ast/-/markdown-to-ast-6.2.5.tgz";
+        sha512 = "9vlQbylGjnnRGev3yt9ntNy6I9FQH3p+MkbijybKnwobK/msoAX9sThDHOMbGM24PsUHxcDjktDlj2vHN/pwDA==";
       };
     };
-    "@textlint/module-interop-1.0.2" = {
+    "@textlint/module-interop-1.1.4" = {
       name = "_at_textlint_slash_module-interop";
       packageName = "@textlint/module-interop";
-      version = "1.0.2";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-1.0.2.tgz";
-        sha512 = "qQ6dqlg4SYywCywimIbkveQZu1MG6ugf6fcJuWDi3D51FbdkSRsMrPusJ1YoW6Y3XBp0ww9fJjXWtlUStGeQsw==";
+        url = "https://registry.npmjs.org/@textlint/module-interop/-/module-interop-1.1.4.tgz";
+        sha512 = "9M3kYG5nBoD2lhp05sqi6fieNU6rBcf+A8Trp+4d8o5uJ4RRsWeRtAQMWM7Tv15onqIITRq7fm3la7xovVB9KA==";
       };
     };
-    "@textlint/text-to-ast-3.1.7" = {
+    "@textlint/text-to-ast-3.2.4" = {
       name = "_at_textlint_slash_text-to-ast";
       packageName = "@textlint/text-to-ast";
-      version = "3.1.7";
+      version = "3.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-3.1.7.tgz";
-        sha512 = "CBAEQmiEa2G/wonlLr1HgUtXfTSas6OGGvYGRIRMJweNh5Ilhbz2nM2/9XQMfLQbdn5pGYrAAAQRB2+/9fZ31A==";
+        url = "https://registry.npmjs.org/@textlint/text-to-ast/-/text-to-ast-3.2.4.tgz";
+        sha512 = "uIiNg52OdQ3Fn8aOYaV7BLW2QakNsmf4doypIwrW4q+gHYQ3jxdPHHkq6RxuYoO112vO40M3zmAoEZmM1qmPhw==";
       };
     };
-    "@textlint/textlint-plugin-markdown-5.1.12" = {
+    "@textlint/textlint-plugin-markdown-5.2.6" = {
       name = "_at_textlint_slash_textlint-plugin-markdown";
       packageName = "@textlint/textlint-plugin-markdown";
-      version = "5.1.12";
+      version = "5.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-5.1.12.tgz";
-        sha512 = "CJWWTaomR22hQD3ogrZujMH1pNN7DqZadmx9CJXxgKwpI/cuD5d2kClwXO3MeLFckJr5HRso7SFN5ebqKu1ycw==";
+        url = "https://registry.npmjs.org/@textlint/textlint-plugin-markdown/-/textlint-plugin-markdown-5.2.6.tgz";
+        sha512 = "S65wy2npaBLT7pwPPlrN9Pw40hOJsxiW+T6peMJOFEMLRem5qlCIlT+02Wlf0Rrtr6/gKDckpphTUiZT1+xRnQ==";
       };
     };
-    "@textlint/textlint-plugin-text-4.1.13" = {
+    "@textlint/textlint-plugin-text-4.2.6" = {
       name = "_at_textlint_slash_textlint-plugin-text";
       packageName = "@textlint/textlint-plugin-text";
-      version = "4.1.13";
+      version = "4.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-4.1.13.tgz";
-        sha512 = "KQfSYNDt8HSX8ZL/r86N8OrAuQ9LEuevAtGomtfkw0h7Ed/pUfmuYXjht8wYRdysYBa4JyjrXcmqzRAUdkWrag==";
+        url = "https://registry.npmjs.org/@textlint/textlint-plugin-text/-/textlint-plugin-text-4.2.6.tgz";
+        sha512 = "KCgb5GVjoEDIi37UpQN6kFciiouyATNYrj/JufCeLNJEcVcxSm12EoFRKjpXpXmTOVqZUyGnIDU797z1usAZDw==";
       };
     };
-    "@textlint/types-1.3.1" = {
+    "@textlint/types-1.4.5" = {
       name = "_at_textlint_slash_types";
       packageName = "@textlint/types";
-      version = "1.3.1";
+      version = "1.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/types/-/types-1.3.1.tgz";
-        sha512 = "9MJ6PRPYWiFs2lfvp/Qhq72WrkZLL5ncBUXAVoj1Ug17ug8d7psmr/KJstMMocW3EWHSOuIDj7unh413c3jPqQ==";
+        url = "https://registry.npmjs.org/@textlint/types/-/types-1.4.5.tgz";
+        sha512 = "7pA1rdiw1jsDNGwxupMC6fPlRNAHY6fKZ3s+jAY53o6RroOSR+5qO0sAjJ26lsSOhveH8imZzyyD08dk58IVJQ==";
       };
     };
-    "@textlint/utils-1.0.3" = {
+    "@textlint/utils-1.1.4" = {
       name = "_at_textlint_slash_utils";
       packageName = "@textlint/utils";
-      version = "1.0.3";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@textlint/utils/-/utils-1.0.3.tgz";
-        sha512 = "6oGaBKXYpg5Ooph5p32OFdp1dXDUC1z5mpHg2gmQbx6QZjmP4QX+ygBQdNoCq15d1w88+We6koJl0n0WXjItYw==";
+        url = "https://registry.npmjs.org/@textlint/utils/-/utils-1.1.4.tgz";
+        sha512 = "KmU+kGi7vG5toUhNdLHHPxyVN1mNGcjMVe1tNDEXT1wU/3oqA96bunElrROWHYw5iNt1QVRaIAtNeMVyzyAdVA==";
       };
     };
     "@tokenizer/token-0.1.1" = {
@@ -3406,22 +3919,31 @@ let
         sha512 = "jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==";
       };
     };
-    "@types/babel-types-7.0.7" = {
+    "@types/anymatch-1.3.1" = {
+      name = "_at_types_slash_anymatch";
+      packageName = "@types/anymatch";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz";
+        sha512 = "/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==";
+      };
+    };
+    "@types/babel-types-7.0.9" = {
       name = "_at_types_slash_babel-types";
       packageName = "@types/babel-types";
-      version = "7.0.7";
+      version = "7.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz";
-        sha512 = "dBtBbrc+qTHy1WdfHYjBwRln4+LWqASWakLHsWHR2NWHIFkv4W3O070IGoGLEBrJBvct3r0L1BUPuvURi7kYUQ==";
+        url = "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.9.tgz";
+        sha512 = "qZLoYeXSTgQuK1h7QQS16hqLGdmqtRmN8w/rl3Au/l5x/zkHx+a4VHrHyBsi1I1vtK2oBHxSzKIu0R5p6spdOA==";
       };
     };
-    "@types/babel__core-7.1.8" = {
+    "@types/babel__core-7.1.9" = {
       name = "_at_types_slash_babel__core";
       packageName = "@types/babel__core";
-      version = "7.1.8";
+      version = "7.1.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.8.tgz";
-        sha512 = "KXBiQG2OXvaPWFPDS1rD8yV9vO0OuWIqAEqLsbfX0oU2REN5KuoMnZ1gClWcBhO5I3n6oTVAmrMufOvRqdmFTQ==";
+        url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz";
+        sha512 = "sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw==";
       };
     };
     "@types/babel__generator-7.6.1" = {
@@ -3442,13 +3964,13 @@ let
         sha512 = "/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==";
       };
     };
-    "@types/babel__traverse-7.0.12" = {
+    "@types/babel__traverse-7.0.14" = {
       name = "_at_types_slash_babel__traverse";
       packageName = "@types/babel__traverse";
-      version = "7.0.12";
+      version = "7.0.14";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.12.tgz";
-        sha512 = "t4CoEokHTfcyfb4hUaF9oOHu9RmmNWnm1CP0YmMqOOfClKascOmvlEM736vlqeScuGvBDsHkf8R2INd4DWreQA==";
+        url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.14.tgz";
+        sha512 = "8w9szzKs14ZtBVuP6Wn7nMLRJ0D6dfB0VEBEyRgxrZ/Ln49aNMykrghM2FaNn4FJRzNppCSa0Rv9pBRM5Xc3wg==";
       };
     };
     "@types/babylon-6.16.5" = {
@@ -3460,6 +3982,15 @@ let
         sha512 = "xH2e58elpj1X4ynnKp9qSnWlsRTIs6n3tgLGNfwAGHwePw0mulHQllV34n0T25uYSu1k0hRKkWXF890B1yS47w==";
       };
     };
+    "@types/basic-auth-1.1.3" = {
+      name = "_at_types_slash_basic-auth";
+      packageName = "@types/basic-auth";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/basic-auth/-/basic-auth-1.1.3.tgz";
+        sha512 = "W3rv6J0IGlxqgE2eQ2pTb0gBjaGtejQpJ6uaCjz3UQ65+TFTPC5/lAE+POfx1YLdjtxvejJzsIAfd3MxWiVmfg==";
+      };
+    };
     "@types/body-parser-1.19.0" = {
       name = "_at_types_slash_body-parser";
       packageName = "@types/body-parser";
@@ -3478,6 +4009,42 @@ let
         sha512 = "ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ==";
       };
     };
+    "@types/caseless-0.12.2" = {
+      name = "_at_types_slash_caseless";
+      packageName = "@types/caseless";
+      version = "0.12.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz";
+        sha512 = "6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==";
+      };
+    };
+    "@types/chalk-2.2.0" = {
+      name = "_at_types_slash_chalk";
+      packageName = "@types/chalk";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/chalk/-/chalk-2.2.0.tgz";
+        sha512 = "1zzPV9FDe1I/WHhRkf9SNgqtRJWZqrBWgu7JGveuHmmyR9CnAPCie2N/x+iHrgnpYBIcCJWHBoMRv2TRWktsvw==";
+      };
+    };
+    "@types/chart.js-2.9.23" = {
+      name = "_at_types_slash_chart.js";
+      packageName = "@types/chart.js";
+      version = "2.9.23";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/chart.js/-/chart.js-2.9.23.tgz";
+        sha512 = "4QQNE/b+digosu3mnj4E7aNQGKnlpzXa9JvQYPtexpO7v9gnDeqwc1DxF8vLJWLDCNoO6hH0EgO8K/7PtJl8wg==";
+      };
+    };
+    "@types/clone-2.1.0" = {
+      name = "_at_types_slash_clone";
+      packageName = "@types/clone";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/clone/-/clone-2.1.0.tgz";
+        sha512 = "d/aS/lPOnUSruPhgNtT8jW39fHRVTLQy9sodysP1kkG8EdAtdZu1vt8NJaYA8w/6Z9j8izkAsx1A/yJhcYR1CA==";
+      };
+    };
     "@types/color-name-1.1.1" = {
       name = "_at_types_slash_color-name";
       packageName = "@types/color-name";
@@ -3523,13 +4090,13 @@ let
         sha512 = "oTGtMzZZAVuEjTwCjIh8T8FrC8n/uwy+PG0yTvQcdZ7etoel7C7/3MSd7qrukENTgQtotG7gvBlBojuVs7X5rw==";
       };
     };
-    "@types/cors-2.8.6" = {
+    "@types/cors-2.8.7" = {
       name = "_at_types_slash_cors";
       packageName = "@types/cors";
-      version = "2.8.6";
+      version = "2.8.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/cors/-/cors-2.8.6.tgz";
-        sha512 = "invOmosX0DqbpA+cE2yoHGUlF/blyf7nB0OGYBBiH27crcVm5NmFaZkLP4Ta1hGaesckCi5lVLlydNJCxkTOSg==";
+        url = "https://registry.npmjs.org/@types/cors/-/cors-2.8.7.tgz";
+        sha512 = "sOdDRU3oRS7LBNTIqwDkPJyq0lpHYcbMTt0TrjzsXbk/e37hcLTH6eZX7CdbDeN0yJJvzw9hFBZkbtCSbk/jAQ==";
       };
     };
     "@types/debug-4.1.5" = {
@@ -3541,6 +4108,42 @@ let
         sha512 = "Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==";
       };
     };
+    "@types/decompress-4.2.3" = {
+      name = "_at_types_slash_decompress";
+      packageName = "@types/decompress";
+      version = "4.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/decompress/-/decompress-4.2.3.tgz";
+        sha512 = "W24e3Ycz1UZPgr1ZEDHlK4XnvOr+CpJH3qNsFeqXwwlW/9END9gxn3oJSsp7gYdiQxrXUHwUUd3xuzVz37MrZQ==";
+      };
+    };
+    "@types/download-6.2.4" = {
+      name = "_at_types_slash_download";
+      packageName = "@types/download";
+      version = "6.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/download/-/download-6.2.4.tgz";
+        sha512 = "Lo5dy3ai6LNnbL663sgdzqL1eib11u1yKH6w3v3IXEOO4kRfQpMn1qWUTaumcHLACjFp1RcBx9tUXEvJoR3vcA==";
+      };
+    };
+    "@types/ejs-2.7.0" = {
+      name = "_at_types_slash_ejs";
+      packageName = "@types/ejs";
+      version = "2.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/ejs/-/ejs-2.7.0.tgz";
+        sha512 = "kM2g9Fdk/du24fKuuQhA/LBleFR4Z4JP2MVKpLxQQSzofF1uJ06D+c05zfLDAkkDO55aEeNwJih0gHrE/Ci20A==";
+      };
+    };
+    "@types/engine.io-3.1.4" = {
+      name = "_at_types_slash_engine.io";
+      packageName = "@types/engine.io";
+      version = "3.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/engine.io/-/engine.io-3.1.4.tgz";
+        sha512 = "98rXVukLD6/ozrQ2O80NAlWDGA4INg+tqsEReWJldqyi2fulC9V7Use/n28SWgROXKm6003ycWV4gZHoF8GA6w==";
+      };
+    };
     "@types/eslint-visitor-keys-1.0.0" = {
       name = "_at_types_slash_eslint-visitor-keys";
       packageName = "@types/eslint-visitor-keys";
@@ -3559,31 +4162,49 @@ let
         sha512 = "EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==";
       };
     };
-    "@types/estree-0.0.44" = {
+    "@types/estree-0.0.45" = {
       name = "_at_types_slash_estree";
       packageName = "@types/estree";
-      version = "0.0.44";
+      version = "0.0.45";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/estree/-/estree-0.0.44.tgz";
-        sha512 = "iaIVzr+w2ZJ5HkidlZ3EJM8VTZb2MJLCjw3V+505yVts0gRC4UMvjw0d1HPtGqI/HQC/KdsYtayfzl+AXY2R8g==";
+        url = "https://registry.npmjs.org/@types/estree/-/estree-0.0.45.tgz";
+        sha512 = "jnqIUKDUqJbDIUxm0Uj7bnlMnRm1T/eZ9N+AVMqhPgzrba2GhGG5o/jCTwmdPK709nEZsGoMzXEDUjcXHa3W0g==";
       };
     };
-    "@types/express-4.17.4" = {
+    "@types/express-4.17.7" = {
       name = "_at_types_slash_express";
       packageName = "@types/express";
-      version = "4.17.4";
+      version = "4.17.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express/-/express-4.17.4.tgz";
-        sha512 = "DO1L53rGqIDUEvOjJKmbMEQ5Z+BM2cIEPy/eV3En+s166Gz+FeuzRerxcab757u/U4v4XF4RYrZPmqKa+aY/2w==";
+        url = "https://registry.npmjs.org/@types/express/-/express-4.17.7.tgz";
+        sha512 = "dCOT5lcmV/uC2J9k0rPafATeeyz+99xTt54ReX11/LObZgfzJqZNcW27zGhYyX+9iSEGXGt5qLPwRSvBZcLvtQ==";
       };
     };
-    "@types/express-serve-static-core-4.17.7" = {
+    "@types/express-serve-static-core-4.17.12" = {
       name = "_at_types_slash_express-serve-static-core";
       packageName = "@types/express-serve-static-core";
-      version = "4.17.7";
+      version = "4.17.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.12.tgz";
+        sha512 = "EaEdY+Dty1jEU7U6J4CUWwxL+hyEGMkO5jan5gplfegUgCUsIUWqXxqw47uGjimeT4Qgkz/XUfwoau08+fgvKA==";
+      };
+    };
+    "@types/fancy-log-1.3.0" = {
+      name = "_at_types_slash_fancy-log";
+      packageName = "@types/fancy-log";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/fancy-log/-/fancy-log-1.3.0.tgz";
+        sha512 = "mQjDxyOM1Cpocd+vm1kZBP7smwKZ4TNokFeds9LV7OZibmPJFEzY3+xZMrKfUdNT71lv8GoCPD6upKwHxubClw==";
+      };
+    };
+    "@types/fast-json-stable-stringify-2.0.0" = {
+      name = "_at_types_slash_fast-json-stable-stringify";
+      packageName = "@types/fast-json-stable-stringify";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.7.tgz";
-        sha512 = "EMgTj/DF9qpgLXyc+Btimg+XoH7A2liE8uKul8qSmMTHCeNYzydDKFdsJskDvw42UsesCnhO63dO0Grbj8J4Dw==";
+        url = "https://registry.npmjs.org/@types/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz";
+        sha512 = "mky/O83TXmGY39P1H9YbUpjV6l6voRYlufqfFCvel8l1phuy8HRjdWc1rrPuN53ITBJlbyMSV6z3niOySO5pgQ==";
       };
     };
     "@types/fs-capacitor-2.0.0" = {
@@ -3595,13 +4216,22 @@ let
         sha512 = "FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==";
       };
     };
-    "@types/glob-7.1.2" = {
+    "@types/glob-7.1.3" = {
       name = "_at_types_slash_glob";
       packageName = "@types/glob";
-      version = "7.1.2";
+      version = "7.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.2.tgz";
-        sha512 = "VgNIkxK+j7Nz5P7jvUZlRvhuPSmsEfS03b0alKcq5V/STUKAa3Plemsn5mrQUO7am6OErJ4rhGEGJbACclrtRA==";
+        url = "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz";
+        sha512 = "SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==";
+      };
+    };
+    "@types/got-8.3.5" = {
+      name = "_at_types_slash_got";
+      packageName = "@types/got";
+      version = "8.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/got/-/got-8.3.5.tgz";
+        sha512 = "AaXSrIF99SjjtPVNmCmYb388HML+PKEJb/xmj4SbL2ZO0hHuETZZzyDIKfOqaEoAHZEuX4sC+FRFrHYJoIby6A==";
       };
     };
     "@types/graceful-fs-4.1.3" = {
@@ -3613,13 +4243,31 @@ let
         sha512 = "AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==";
       };
     };
-    "@types/graphql-upload-8.0.3" = {
+    "@types/graphlib-2.1.7" = {
+      name = "_at_types_slash_graphlib";
+      packageName = "@types/graphlib";
+      version = "2.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/graphlib/-/graphlib-2.1.7.tgz";
+        sha512 = "K7T1n6U2HbTYu+SFHlBjz/RH74OA2D/zF1qlzn8uXbvB4uRg7knOM85ugS2bbXI1TXMh7rLqk4OVRwIwEBaixg==";
+      };
+    };
+    "@types/graphql-upload-8.0.4" = {
       name = "_at_types_slash_graphql-upload";
       packageName = "@types/graphql-upload";
-      version = "8.0.3";
+      version = "8.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/graphql-upload/-/graphql-upload-8.0.3.tgz";
-        sha512 = "hmLg9pCU/GmxBscg8GCr1vmSoEmbItNNxdD5YH2TJkXm//8atjwuprB+xJBK714JG1dkxbbhp5RHX+Pz1KsCMA==";
+        url = "https://registry.npmjs.org/@types/graphql-upload/-/graphql-upload-8.0.4.tgz";
+        sha512 = "0TRyJD2o8vbkmJF8InppFcPVcXKk+Rvlg/xvpHBIndSJYpmDWfmtx/ZAtl4f3jR2vfarpTqYgj8MZuJssSoU7Q==";
+      };
+    };
+    "@types/hls.js-0.13.0" = {
+      name = "_at_types_slash_hls.js";
+      packageName = "@types/hls.js";
+      version = "0.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/hls.js/-/hls.js-0.13.0.tgz";
+        sha512 = "zeW+kWWUvMF7x8/M1kLRCX6C41UcKyDZC/Xy6biGqLhd+rkpv2juVO+tCwPSQPQuqL1VtseoQYdONCOxUZ38Sw==";
       };
     };
     "@types/hosted-git-info-2.7.0" = {
@@ -3649,6 +4297,33 @@ let
         sha512 = "c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A==";
       };
     };
+    "@types/http-errors-1.8.0" = {
+      name = "_at_types_slash_http-errors";
+      packageName = "@types/http-errors";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/http-errors/-/http-errors-1.8.0.tgz";
+        sha512 = "2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==";
+      };
+    };
+    "@types/http-proxy-1.17.4" = {
+      name = "_at_types_slash_http-proxy";
+      packageName = "@types/http-proxy";
+      version = "1.17.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.4.tgz";
+        sha512 = "IrSHl2u6AWXduUaDLqYpt45tLVCtYv7o4Z0s1KghBCDgIIS9oW5K1H8mZG/A2CfeLdEa7rTd1ACOiHBc1EMT2Q==";
+      };
+    };
+    "@types/inquirer-6.5.0" = {
+      name = "_at_types_slash_inquirer";
+      packageName = "@types/inquirer";
+      version = "6.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/inquirer/-/inquirer-6.5.0.tgz";
+        sha512 = "rjaYQ9b9y/VFGOpqBEXRavc3jh0a+e6evAbI31tMda8VlPaSy0AZJfXsvmIe3wklc7W6C3zCSfleuMXR7NOyXw==";
+      };
+    };
     "@types/istanbul-lib-coverage-2.0.3" = {
       name = "_at_types_slash_istanbul-lib-coverage";
       packageName = "@types/istanbul-lib-coverage";
@@ -3676,31 +4351,58 @@ let
         sha512 = "P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==";
       };
     };
-    "@types/jquery-3.3.38" = {
+    "@types/jquery-3.5.1" = {
       name = "_at_types_slash_jquery";
       packageName = "@types/jquery";
-      version = "3.3.38";
+      version = "3.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/jquery/-/jquery-3.3.38.tgz";
-        sha512 = "nkDvmx7x/6kDM5guu/YpXkGZ/Xj/IwGiLDdKM99YA5Vag7pjGyTJ8BNUh/6hxEn/sEu5DKtyRgnONJ7EmOoKrA==";
+        url = "https://registry.npmjs.org/@types/jquery/-/jquery-3.5.1.tgz";
+        sha512 = "Tyctjh56U7eX2b9udu3wG853ASYP0uagChJcQJXLUXEU6C/JiW5qt5dl8ao01VRj1i5pgXPAf8f1mq4+FDLRQg==";
       };
     };
-    "@types/js-yaml-3.12.4" = {
+    "@types/js-yaml-3.12.5" = {
       name = "_at_types_slash_js-yaml";
       packageName = "@types/js-yaml";
-      version = "3.12.4";
+      version = "3.12.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-3.12.5.tgz";
+        sha512 = "JCcp6J0GV66Y4ZMDAQCXot4xprYB+Zfd3meK9+INSJeVZwJmHAW30BBEEkPzXswMXuiyReUGOP3GxrADc9wPww==";
+      };
+    };
+    "@types/jscodeshift-0.7.1" = {
+      name = "_at_types_slash_jscodeshift";
+      packageName = "@types/jscodeshift";
+      version = "0.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/js-yaml/-/js-yaml-3.12.4.tgz";
-        sha512 = "fYMgzN+9e28R81weVN49inn/u798ruU91En1ZnGvSZzCRc5jXx9B2EDhlRaWmcO1RIxFHL8AajRXzxDuJu93+A==";
+        url = "https://registry.npmjs.org/@types/jscodeshift/-/jscodeshift-0.7.1.tgz";
+        sha512 = "4jkASx74qGl2OUK8NNFEq10QP0MXriOIqeBeNb1IdevHP8k8VDqS5Uv6nIixAA6ZUjjF6/SwOvecrjXkbcaFzw==";
       };
     };
-    "@types/json-schema-7.0.5" = {
+    "@types/json-schema-7.0.6" = {
       name = "_at_types_slash_json-schema";
       packageName = "@types/json-schema";
-      version = "7.0.5";
+      version = "7.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz";
+        sha512 = "3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==";
+      };
+    };
+    "@types/json5-0.0.29" = {
+      name = "_at_types_slash_json5";
+      packageName = "@types/json5";
+      version = "0.0.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz";
-        sha512 = "7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==";
+        url = "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz";
+        sha1 = "ee28707ae94e11d2b827bcbe5270bcea7f3e71ee";
+      };
+    };
+    "@types/json5-0.0.30" = {
+      name = "_at_types_slash_json5";
+      packageName = "@types/json5";
+      version = "0.0.30";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/json5/-/json5-0.0.30.tgz";
+        sha512 = "sqm9g7mHlPY/43fcSNrCYfOeX9zkTTK+euO5E6+CVijSMm5tTjkVdwdqRkY3ljjIAf8679vps5jKUoJBCLsMDA==";
       };
     };
     "@types/keygrip-1.0.2" = {
@@ -3721,13 +4423,13 @@ let
         sha512 = "MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw==";
       };
     };
-    "@types/koa-2.11.3" = {
+    "@types/koa-2.11.4" = {
       name = "_at_types_slash_koa";
       packageName = "@types/koa";
-      version = "2.11.3";
+      version = "2.11.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/koa/-/koa-2.11.3.tgz";
-        sha512 = "ABxVkrNWa4O/Jp24EYI/hRNqEVRlhB9g09p48neQp4m3xL1TJtdWk2NyNQSMCU45ejeELMQZBYyfstyVvO2H3Q==";
+        url = "https://registry.npmjs.org/@types/koa/-/koa-2.11.4.tgz";
+        sha512 = "Etqs0kdqbuAsNr5k6mlZQelpZKVwMu9WPRHVVTLnceZlhr0pYmblRNJbCgoCMzKWWePldydU0AYEOX4Q9fnGUQ==";
       };
     };
     "@types/koa-compose-3.2.5" = {
@@ -3739,13 +4441,22 @@ let
         sha512 = "B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ==";
       };
     };
-    "@types/lodash-4.14.155" = {
+    "@types/lodash-4.14.158" = {
       name = "_at_types_slash_lodash";
       packageName = "@types/lodash";
-      version = "4.14.155";
+      version = "4.14.158";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.155.tgz";
-        sha512 = "vEcX7S7aPhsBCivxMwAANQburHBtfN9RdyXFk84IJmu2Z4Hkg1tOFgaslRiEqqvoLtbCBi6ika1EMspE+NZ9Lg==";
+        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.158.tgz";
+        sha512 = "InCEXJNTv/59yO4VSfuvNrZHt7eeNtWQEgnieIA+mIC+MOWM9arOWG2eQ8Vhk6NbOre6/BidiXhkZYeDY9U35w==";
+      };
+    };
+    "@types/lodash-4.14.161" = {
+      name = "_at_types_slash_lodash";
+      packageName = "@types/lodash";
+      version = "4.14.161";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.161.tgz";
+        sha512 = "EP6O3Jkr7bXvZZSZYlsgt5DIjiGr0dXP1/jVEwVLTFgg0d+3lWVQkRavYVQszV7dYUwvg0B8R0MBDpcmXg7XIA==";
       };
     };
     "@types/long-4.0.1" = {
@@ -3757,13 +4468,22 @@ let
         sha512 = "5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==";
       };
     };
-    "@types/mime-2.0.2" = {
+    "@types/material-design-lite-1.1.16" = {
+      name = "_at_types_slash_material-design-lite";
+      packageName = "@types/material-design-lite";
+      version = "1.1.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/material-design-lite/-/material-design-lite-1.1.16.tgz";
+        sha512 = "559S2XW9YMwHznROJ4WFhZJOerJPuxLfqOX+LIKukyLo2NbVgpULwXUsrBlCwhZ4+ACHgVAE23CC3RS52lFxwA==";
+      };
+    };
+    "@types/mime-2.0.3" = {
       name = "_at_types_slash_mime";
       packageName = "@types/mime";
-      version = "2.0.2";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.2.tgz";
-        sha512 = "4kPlzbljFcsttWEq6aBW0OZe6BDajAmyvr2xknBG92tejQnvdGtT9+kXSZ580DqpxY9qG2xeQVF9Dq0ymUTo5Q==";
+        url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz";
+        sha512 = "Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==";
       };
     };
     "@types/minimatch-3.0.3" = {
@@ -3784,6 +4504,33 @@ let
         sha1 = "69a23a3ad29caf0097f06eda59b361ee2f0639f6";
       };
     };
+    "@types/mithril-2.0.3" = {
+      name = "_at_types_slash_mithril";
+      packageName = "@types/mithril";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/mithril/-/mithril-2.0.3.tgz";
+        sha512 = "cZHOdO2IiXYeyjeDYdbOisSdfaJRzfmRo3zVzgu33IWTMA0KEQObp9fdvqcuYdPz93iJ1yCl19GcEjo/9yv+yA==";
+      };
+    };
+    "@types/mkdirp-0.5.2" = {
+      name = "_at_types_slash_mkdirp";
+      packageName = "@types/mkdirp";
+      version = "0.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-0.5.2.tgz";
+        sha512 = "U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg==";
+      };
+    };
+    "@types/mkdirp-1.0.1" = {
+      name = "_at_types_slash_mkdirp";
+      packageName = "@types/mkdirp";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/mkdirp/-/mkdirp-1.0.1.tgz";
+        sha512 = "HkGSK7CGAXncr8Qn/0VqNtExEE+PHMWb+qlR1faHMao7ng6P3tAaoWWBMdva0gL5h4zprjIO89GJOLXsMcDm1Q==";
+      };
+    };
     "@types/mocha-7.0.2" = {
       name = "_at_types_slash_mocha";
       packageName = "@types/mocha";
@@ -3793,40 +4540,85 @@ let
         sha512 = "ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==";
       };
     };
-    "@types/node-10.17.26" = {
+    "@types/multer-1.4.3" = {
+      name = "_at_types_slash_multer";
+      packageName = "@types/multer";
+      version = "1.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/multer/-/multer-1.4.3.tgz";
+        sha512 = "tWsKbF5LYtXrJ7eOfI0aLBgEv9B7fnJe1JRXTj5+Z6EMfX0yHVsRFsNGnKyN8Bs0gtDv+JR37xAqsPnALyVTqg==";
+      };
+    };
+    "@types/mysql-2.15.15" = {
+      name = "_at_types_slash_mysql";
+      packageName = "@types/mysql";
+      version = "2.15.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/mysql/-/mysql-2.15.15.tgz";
+        sha512 = "1GJnq7RwuFPRicMHdT53vza5v39nep9OKIbozxNUpFXP04CydcdWrqpZQ+MlVdlLFCisWnnt09xughajjWpFsw==";
+      };
+    };
+    "@types/node-10.17.35" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "10.17.26";
+      version = "10.17.35";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-10.17.26.tgz";
-        sha512 = "myMwkO2Cr82kirHY8uknNRHEVtn0wV3DTQfkrjx17jmkstDRZ24gNUdl8AHXVyVclTYI/bNjgTPTAWvWLqXqkw==";
+        url = "https://registry.npmjs.org/@types/node/-/node-10.17.35.tgz";
+        sha512 = "gXx7jAWpMddu0f7a+L+txMplp3FnHl53OhQIF9puXKq3hDGY/GjH+MF04oWnV/adPSCrbtHumDCFwzq2VhltWA==";
       };
     };
-    "@types/node-13.13.12" = {
+    "@types/node-12.7.12" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "13.13.12";
+      version = "12.7.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-13.13.12.tgz";
-        sha512 = "zWz/8NEPxoXNT9YyF2osqyA9WjssZukYpgI4UYZpOjcyqwIUqWGkcCionaEb9Ki+FULyPyvNFpg/329Kd2/pbw==";
+        url = "https://registry.npmjs.org/@types/node/-/node-12.7.12.tgz";
+        sha512 = "KPYGmfD0/b1eXurQ59fXD1GBzhSQfz6/lKBxkaHX9dKTzjXbK68Zt7yGUxUsCS1jeTy/8aL+d9JEr+S54mpkWQ==";
       };
     };
-    "@types/node-14.0.13" = {
+    "@types/node-13.13.21" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "14.0.13";
+      version = "13.13.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-14.0.13.tgz";
-        sha512 = "rouEWBImiRaSJsVA+ITTFM6ZxibuAlTuNOCyxVbwreu6k6+ujs7DfnU9o+PShFhET78pMBl3eH+AGSI5eOTkPA==";
+        url = "https://registry.npmjs.org/@types/node/-/node-13.13.21.tgz";
+        sha512 = "tlFWakSzBITITJSxHV4hg4KvrhR/7h3xbJdSFbYJBVzKubrASbnnIFuSgolUh7qKGo/ZeJPKUfbZ0WS6Jp14DQ==";
       };
     };
-    "@types/node-6.14.10" = {
+    "@types/node-14.0.26" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "6.14.10";
+      version = "14.0.26";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-6.14.10.tgz";
-        sha512 = "pF4HjZGSog75kGq7B1InK/wt/N08BuPATo+7HRfv7gZUzccebwv/fmWVGs/j6LvSiLWpCuGGhql51M/wcQsNzA==";
+        url = "https://registry.npmjs.org/@types/node/-/node-14.0.26.tgz";
+        sha512 = "W+fpe5s91FBGE0pEa0lnqGLL4USgpLgs4nokw16SrBBco/gQxuua7KnArSEOd5iaMqbbSHV10vUDkJYJJqpXKA==";
+      };
+    };
+    "@types/node-14.11.1" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "14.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-14.11.1.tgz";
+        sha512 = "oTQgnd0hblfLsJ6BvJzzSL+Inogp3lq9fGgqRkMB/ziKMgEUaFl801OncOzUmalfzt14N0oPHMK47ipl+wbTIw==";
+      };
+    };
+    "@types/node-6.14.12" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "6.14.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-6.14.12.tgz";
+        sha512 = "7iPCCv/SOqeGvz3CcBBnhG+3vBMntO3SMVcyUHmrJq6Lzdbi4dtSxk3JkIUm+JDGnT26mtxlNQHmTKlvDnjFwg==";
+      };
+    };
+    "@types/node-8.10.64" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "8.10.64";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-8.10.64.tgz";
+        sha512 = "/EwBIb+imu8Qi/A3NF9sJ9iuKo7yV+pryqjmeRqaU0C4wBAOhas5mdvoYeJ5PCKrh6thRSJHdoasFqh3BQGILA==";
       };
     };
     "@types/node-fetch-2.5.7" = {
@@ -3847,6 +4639,15 @@ let
         sha512 = "f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==";
       };
     };
+    "@types/object-assign-4.0.30" = {
+      name = "_at_types_slash_object-assign";
+      packageName = "@types/object-assign";
+      version = "4.0.30";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/object-assign/-/object-assign-4.0.30.tgz";
+        sha1 = "8949371d5a99f4381ee0f1df0a9b7a187e07e652";
+      };
+    };
     "@types/parse-json-4.0.0" = {
       name = "_at_types_slash_parse-json";
       packageName = "@types/parse-json";
@@ -3856,6 +4657,33 @@ let
         sha512 = "//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==";
       };
     };
+    "@types/parse5-5.0.3" = {
+      name = "_at_types_slash_parse5";
+      packageName = "@types/parse5";
+      version = "5.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/parse5/-/parse5-5.0.3.tgz";
+        sha512 = "kUNnecmtkunAoQ3CnjmMkzNU/gtxG8guhi+Fk2U/kOpIKjIMKnXGp4IJCgQJrXSgMsWYimYG4TGjz/UzbGEBTw==";
+      };
+    };
+    "@types/pg-7.14.4" = {
+      name = "_at_types_slash_pg";
+      packageName = "@types/pg";
+      version = "7.14.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/pg/-/pg-7.14.4.tgz";
+        sha512 = "yCKVMCcFPZSFHGg+8qjY368uf3ruyDBPjxvOU2ZcGa/vRFo5Ti5Y6z6vl+2hxtwm9VMWUGb6TWkIk3cIV8C0Cw==";
+      };
+    };
+    "@types/pg-types-1.11.5" = {
+      name = "_at_types_slash_pg-types";
+      packageName = "@types/pg-types";
+      version = "1.11.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/pg-types/-/pg-types-1.11.5.tgz";
+        sha512 = "L8ogeT6vDzT1vxlW3KITTCt+BVXXVkLXfZ/XNm6UqbcJgxf+KPO7yjWx7dQQE8RW07KopL10x2gNMs41+IkMGQ==";
+      };
+    };
     "@types/q-1.5.4" = {
       name = "_at_types_slash_q";
       packageName = "@types/q";
@@ -3865,13 +4693,13 @@ let
         sha512 = "1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==";
       };
     };
-    "@types/qs-6.9.3" = {
+    "@types/qs-6.9.5" = {
       name = "_at_types_slash_qs";
       packageName = "@types/qs";
-      version = "6.9.3";
+      version = "6.9.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.3.tgz";
-        sha512 = "7s9EQWupR1fTc2pSMtXRQ9w9gLOcrJn+h7HOXw4evxyvVqMi4f+q7d2tnFe3ng3SNHjtK+0EzGMGFUQX4/AQRA==";
+        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz";
+        sha512 = "/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==";
       };
     };
     "@types/range-parser-1.2.3" = {
@@ -3883,6 +4711,24 @@ let
         sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==";
       };
     };
+    "@types/request-2.48.5" = {
+      name = "_at_types_slash_request";
+      packageName = "@types/request";
+      version = "2.48.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/request/-/request-2.48.5.tgz";
+        sha512 = "/LO7xRVnL3DxJ1WkPGDQrp4VTV1reX9RkC85mJ+Qzykj2Bdw+mG15aAfDahc76HtknjzE16SX/Yddn6MxVbmGQ==";
+      };
+    };
+    "@types/request-promise-native-1.0.17" = {
+      name = "_at_types_slash_request-promise-native";
+      packageName = "@types/request-promise-native";
+      version = "1.0.17";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/request-promise-native/-/request-promise-native-1.0.17.tgz";
+        sha512 = "05/d0WbmuwjtGMYEdHIBZ0tqMJJQ2AD9LG2F6rKNBGX1SSFR27XveajH//2N/XYtual8T9Axwl+4v7oBtPUZqg==";
+      };
+    };
     "@types/resolve-0.0.8" = {
       name = "_at_types_slash_resolve";
       packageName = "@types/resolve";
@@ -3892,6 +4738,15 @@ let
         sha512 = "auApPaJf3NPfe18hSoJkp8EbZzer2ISk7o8mCC3M9he/a04+gbMF97NkpD2S8riMGvm4BMRI59/SZQSaLTKpsQ==";
       };
     };
+    "@types/resolve-1.17.1" = {
+      name = "_at_types_slash_resolve";
+      packageName = "@types/resolve";
+      version = "1.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz";
+        sha512 = "yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==";
+      };
+    };
     "@types/responselike-1.0.0" = {
       name = "_at_types_slash_responselike";
       packageName = "@types/responselike";
@@ -3910,13 +4765,13 @@ let
         sha512 = "41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ==";
       };
     };
-    "@types/serve-static-1.13.4" = {
+    "@types/serve-static-1.13.5" = {
       name = "_at_types_slash_serve-static";
       packageName = "@types/serve-static";
-      version = "1.13.4";
+      version = "1.13.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.4.tgz";
-        sha512 = "jTDt0o/YbpNwZbQmE/+2e+lfjJEJJR0I3OFaKQKPWkASkCoW3i6fsUnqudSMcNAfbtmADGu8f4MV4q+GqULmug==";
+        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.5.tgz";
+        sha512 = "6M64P58N+OXjU432WoLLBQxbA0LRGBCRm7aAGQJ+SMC1IMl0dgRVi9EFfoDcS2a7Xogygk/eGN94CfwU9UF7UQ==";
       };
     };
     "@types/sizzle-2.3.2" = {
@@ -3928,6 +4783,42 @@ let
         sha512 = "7EJYyKTL7tFR8+gDbB6Wwz/arpGa0Mywk1TJbNzKzHtzbwVmY4HR9WqS5VV7dsBUKQmPNr192jHr/VpBluj/hg==";
       };
     };
+    "@types/socket.io-2.1.10" = {
+      name = "_at_types_slash_socket.io";
+      packageName = "@types/socket.io";
+      version = "2.1.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/socket.io/-/socket.io-2.1.10.tgz";
+        sha512 = "1fQMaDU/x2LPljEI/QI5IKl8sBYHM/zv32YYKvNrVEor7/1+MLqMqmWt8Bb8Vpf+PlIPBiTTC0BnrRx7ju3xOw==";
+      };
+    };
+    "@types/socket.io-client-1.4.33" = {
+      name = "_at_types_slash_socket.io-client";
+      packageName = "@types/socket.io-client";
+      version = "1.4.33";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/socket.io-client/-/socket.io-client-1.4.33.tgz";
+        sha512 = "m4LnxkljsI9fMsjwpW5QhRpMixo2BeeLpFmg0AE+sS4H1pzAd/cs/ftTiL60FLZgfFa8PFRPx5KsHu8O0bADKQ==";
+      };
+    };
+    "@types/source-list-map-0.1.2" = {
+      name = "_at_types_slash_source-list-map";
+      packageName = "@types/source-list-map";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz";
+        sha512 = "K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==";
+      };
+    };
+    "@types/sqlite3-3.1.6" = {
+      name = "_at_types_slash_sqlite3";
+      packageName = "@types/sqlite3";
+      version = "3.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/sqlite3/-/sqlite3-3.1.6.tgz";
+        sha512 = "OBsK0KIGUICExQ/ZvnPY4cKx5Kz4NcrVyGTIvOL5y4ajXu7r++RfBajfpGfGDmDVCKcoCDX1dO84/oeyeITnxA==";
+      };
+    };
     "@types/superagent-3.8.2" = {
       name = "_at_types_slash_superagent";
       packageName = "@types/superagent";
@@ -3937,6 +4828,42 @@ let
         sha512 = "kdU8ydio1weSvhIIh9rptZ6MdMiR2NQGFnlnZ5qQ7OiQS1ej79zK4GaJ9qX3naSTpOA7iWqwUnZCQpd7SpD1NA==";
       };
     };
+    "@types/tapable-1.0.6" = {
+      name = "_at_types_slash_tapable";
+      packageName = "@types/tapable";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.6.tgz";
+        sha512 = "W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==";
+      };
+    };
+    "@types/through-0.0.30" = {
+      name = "_at_types_slash_through";
+      packageName = "@types/through";
+      version = "0.0.30";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/through/-/through-0.0.30.tgz";
+        sha512 = "FvnCJljyxhPM3gkRgWmxmDZyAQSiBQQWLI0A0VFL0K7W1oRUrPJSqNO0NvTnLkBcotdlp3lKvaT0JrnyRDkzOg==";
+      };
+    };
+    "@types/tough-cookie-4.0.0" = {
+      name = "_at_types_slash_tough-cookie";
+      packageName = "@types/tough-cookie";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.0.tgz";
+        sha512 = "I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A==";
+      };
+    };
+    "@types/uglify-js-3.9.3" = {
+      name = "_at_types_slash_uglify-js";
+      packageName = "@types/uglify-js";
+      version = "3.9.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.3.tgz";
+        sha512 = "KswB5C7Kwduwjj04Ykz+AjvPcfgv/37Za24O2EDzYNbwyzOo8+ydtvzUfZ5UMguiVu29Gx44l1A6VsPPcmYu9w==";
+      };
+    };
     "@types/unist-2.0.3" = {
       name = "_at_types_slash_unist";
       packageName = "@types/unist";
@@ -3946,6 +4873,15 @@ let
         sha512 = "FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ==";
       };
     };
+    "@types/url-join-4.0.0" = {
+      name = "_at_types_slash_url-join";
+      packageName = "@types/url-join";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/url-join/-/url-join-4.0.0.tgz";
+        sha512 = "awrJu8yML4E/xTwr2EMatC+HBnHGoDxc2+ImA9QyeUELI1S7dOCIZcyjki1rkwoA8P2D2NVgLAJLjnclkdLtAw==";
+      };
+    };
     "@types/vfile-3.0.2" = {
       name = "_at_types_slash_vfile";
       packageName = "@types/vfile";
@@ -3964,31 +4900,58 @@ let
         sha512 = "GpTIuDpb9u4zIO165fUy9+fXcULdD8HFRNli04GehoMVbeNq7D6OBnqSmg3lxZnC+UvgUhEWKxdKiwYUkGltIw==";
       };
     };
-    "@types/vscode-1.45.0" = {
+    "@types/vscode-1.49.0" = {
       name = "_at_types_slash_vscode";
       packageName = "@types/vscode";
-      version = "1.45.0";
+      version = "1.49.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.45.0.tgz";
-        sha512 = "b0Gyir7sPBCqiKLygAhn/AYVfzWD+SMPkWltBrIuPEyTOxSU1wVApWY/FcxYO2EWTRacoubTl4+gvZf86RkecA==";
+        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.49.0.tgz";
+        sha512 = "wfNQmLmm1VdMBr6iuNdprWmC1YdrgZ9dQzadv+l2eSjJlElOdJw8OTm4RU4oGTBcfvG6RZI2jOcppkdSS18mZw==";
       };
     };
-    "@types/ws-7.2.5" = {
+    "@types/webpack-4.41.21" = {
+      name = "_at_types_slash_webpack";
+      packageName = "@types/webpack";
+      version = "4.41.21";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.21.tgz";
+        sha512 = "2j9WVnNrr/8PLAB5csW44xzQSJwS26aOnICsP3pSGCEdsu6KYtfQ6QJsVUKHWRnm1bL7HziJsfh5fHqth87yKA==";
+      };
+    };
+    "@types/webpack-sources-1.4.2" = {
+      name = "_at_types_slash_webpack-sources";
+      packageName = "@types/webpack-sources";
+      version = "1.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-1.4.2.tgz";
+        sha512 = "77T++JyKow4BQB/m9O96n9d/UUHWLQHlcqXb9Vsf4F1+wKNrrlWNFPDLKNT92RJnCSL6CieTc+NDXtCVZswdTw==";
+      };
+    };
+    "@types/websocket-1.0.1" = {
+      name = "_at_types_slash_websocket";
+      packageName = "@types/websocket";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.1.tgz";
+        sha512 = "f5WLMpezwVxCLm1xQe/kdPpQIOmL0TXYx2O15VYfYzc7hTIdxiOoOvez+McSIw3b7z/1zGovew9YSL7+h4h7/Q==";
+      };
+    };
+    "@types/ws-7.2.6" = {
       name = "_at_types_slash_ws";
       packageName = "@types/ws";
-      version = "7.2.5";
+      version = "7.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/ws/-/ws-7.2.5.tgz";
-        sha512 = "4UEih9BI1nBKii385G9id1oFrSkLcClbwtDfcYj8HJLQqZVAtb/42vXVrYvRWCcufNF/a+rZD3MxNwghA7UmCg==";
+        url = "https://registry.npmjs.org/@types/ws/-/ws-7.2.6.tgz";
+        sha512 = "Q07IrQUSNpr+cXU4E4LtkSIBPie5GLZyyMC1QtQYRLWz701+XcoVygGUZgvLqElq1nU4ICldMYPnexlBsg3dqQ==";
       };
     };
-    "@types/xml2js-0.4.5" = {
-      name = "_at_types_slash_xml2js";
-      packageName = "@types/xml2js";
-      version = "0.4.5";
+    "@types/yargs-13.0.10" = {
+      name = "_at_types_slash_yargs";
+      packageName = "@types/yargs";
+      version = "13.0.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/xml2js/-/xml2js-0.4.5.tgz";
-        sha512 = "yohU3zMn0fkhlape1nxXG2bLEGZRc1FeqF80RoHaYXJN7uibaauXfhzhOJr1Xh36sn+/tx21QAOf07b/xYVk1w==";
+        url = "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.10.tgz";
+        sha512 = "MU10TSgzNABgdzKvQVW1nuuT+sgBMWeXNc3XOs5YXV5SDAK+PPja2eUuBNB9iqElu03xyEDqlnGw0jgl4nbqGQ==";
       };
     };
     "@types/yargs-15.0.5" = {
@@ -4009,6 +4972,15 @@ let
         sha512 = "FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==";
       };
     };
+    "@types/yauzl-2.9.1" = {
+      name = "_at_types_slash_yauzl";
+      packageName = "@types/yauzl";
+      version = "2.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.9.1.tgz";
+        sha512 = "A1b8SU4D10uoPjwb0lnHmmu8wZhR9d+9o2PKBQT2jU5YPTKsxac6M2qGAdY7VcL+dHHhARVUDmeg0rOrcd9EjA==";
+      };
+    };
     "@types/yoga-layout-1.9.2" = {
       name = "_at_types_slash_yoga-layout";
       packageName = "@types/yoga-layout";
@@ -4018,67 +4990,49 @@ let
         sha512 = "S9q47ByT2pPvD65IvrWp7qppVMpk9WGMbVq9wbWZOHg6tnXSD4vyhao6nOSBwwfDdV2p3Kx9evA9vI+XWTfDvw==";
       };
     };
-    "@types/zen-observable-0.8.0" = {
+    "@types/zen-observable-0.8.1" = {
       name = "_at_types_slash_zen-observable";
       packageName = "@types/zen-observable";
-      version = "0.8.0";
+      version = "0.8.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.0.tgz";
-        sha512 = "te5lMAWii1uEJ4FwLjzdlbw3+n0FZNOvFXHxQDKeT0dilh7HOzdMzV2TrJVUzq8ep7J4Na8OUYPRLSQkJHAlrg==";
+        url = "https://registry.npmjs.org/@types/zen-observable/-/zen-observable-0.8.1.tgz";
+        sha512 = "wmk0xQI6Yy7Fs/il4EpOcflG4uonUpYGqvZARESLc2oy4u69fkatFLbJOeW4Q6awO15P4rduAe6xkwHevpXcUQ==";
       };
     };
-    "@typescript-eslint/eslint-plugin-3.2.0" = {
+    "@typescript-eslint/eslint-plugin-3.10.1" = {
       name = "_at_typescript-eslint_slash_eslint-plugin";
       packageName = "@typescript-eslint/eslint-plugin";
-      version = "3.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.2.0.tgz";
-        sha512 = "t9RTk/GyYilIXt6BmZurhBzuMT9kLKw3fQoJtK9ayv0tXTlznXEAnx07sCLXdkN3/tZDep1s1CEV95CWuARYWA==";
-      };
-    };
-    "@typescript-eslint/experimental-utils-1.13.0" = {
-      name = "_at_typescript-eslint_slash_experimental-utils";
-      packageName = "@typescript-eslint/experimental-utils";
-      version = "1.13.0";
+      version = "3.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-1.13.0.tgz";
-        sha512 = "zmpS6SyqG4ZF64ffaJ6uah6tWWWgZ8m+c54XXgwFtUv0jNz8aJAVx8chMCvnk7yl6xwn8d+d96+tWp7fXzTuDg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.10.1.tgz";
+        sha512 = "PQg0emRtzZFWq6PxBcdxRH3QIQiyFO3WCVpRL3fgj5oQS3CDs3AeAKfv4DxNhzn8ITdNJGJ4D3Qw8eAJf3lXeQ==";
       };
     };
-    "@typescript-eslint/experimental-utils-3.2.0" = {
+    "@typescript-eslint/experimental-utils-3.10.1" = {
       name = "_at_typescript-eslint_slash_experimental-utils";
       packageName = "@typescript-eslint/experimental-utils";
-      version = "3.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.2.0.tgz";
-        sha512 = "UbJBsk+xO9dIFKtj16+m42EvUvsjZbbgQ2O5xSTSfVT1Z3yGkL90DVu0Hd3029FZ5/uBgl+F3Vo8FAcEcqc6aQ==";
-      };
-    };
-    "@typescript-eslint/parser-1.13.0" = {
-      name = "_at_typescript-eslint_slash_parser";
-      packageName = "@typescript-eslint/parser";
-      version = "1.13.0";
+      version = "3.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-1.13.0.tgz";
-        sha512 = "ITMBs52PCPgLb2nGPoeT4iU3HdQZHcPaZVw+7CsFagRJHUhyeTgorEwHXhFf3e7Evzi8oujKNpHc8TONth8AdQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz";
+        sha512 = "DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==";
       };
     };
-    "@typescript-eslint/parser-3.2.0" = {
+    "@typescript-eslint/parser-3.10.1" = {
       name = "_at_typescript-eslint_slash_parser";
       packageName = "@typescript-eslint/parser";
-      version = "3.2.0";
+      version = "3.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.2.0.tgz";
-        sha512 = "Vhu+wwdevDLVDjK1lIcoD6ZbuOa93fzqszkaO3iCnmrScmKwyW/AGkzc2UvfE5TCoCXqq7Jyt6SOXjsIlpqF4A==";
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.10.1.tgz";
+        sha512 = "Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw==";
       };
     };
-    "@typescript-eslint/typescript-estree-1.13.0" = {
-      name = "_at_typescript-eslint_slash_typescript-estree";
-      packageName = "@typescript-eslint/typescript-estree";
-      version = "1.13.0";
+    "@typescript-eslint/types-3.10.1" = {
+      name = "_at_typescript-eslint_slash_types";
+      packageName = "@typescript-eslint/types";
+      version = "3.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-1.13.0.tgz";
-        sha512 = "b5rCmd2e6DCC6tCTN9GSUAuxdYwCM/k/2wdjHGrIRGPSJotWMCe/dGpi66u42bhuh8q3QBzqM4TMA1GUUCJvdw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.10.1.tgz";
+        sha512 = "+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==";
       };
     };
     "@typescript-eslint/typescript-estree-2.34.0" = {
@@ -4090,49 +5044,193 @@ let
         sha512 = "OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==";
       };
     };
-    "@typescript-eslint/typescript-estree-3.2.0" = {
+    "@typescript-eslint/typescript-estree-3.10.1" = {
       name = "_at_typescript-eslint_slash_typescript-estree";
       packageName = "@typescript-eslint/typescript-estree";
-      version = "3.2.0";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz";
+        sha512 = "QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==";
+      };
+    };
+    "@typescript-eslint/visitor-keys-3.10.1" = {
+      name = "_at_typescript-eslint_slash_visitor-keys";
+      packageName = "@typescript-eslint/visitor-keys";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz";
+        sha512 = "9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==";
+      };
+    };
+    "@uifabric/foundation-7.9.5" = {
+      name = "_at_uifabric_slash_foundation";
+      packageName = "@uifabric/foundation";
+      version = "7.9.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uifabric/foundation/-/foundation-7.9.5.tgz";
+        sha512 = "r4KjYJAjSRgBGqeJXGKogYgzJS55/zcxmU3Gsps0BCMP8SCn55KZ31KiMYmjxoNnJAlGnhIq+h5zUEVRhpHN/Q==";
+      };
+    };
+    "@uifabric/icons-7.5.5" = {
+      name = "_at_uifabric_slash_icons";
+      packageName = "@uifabric/icons";
+      version = "7.5.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uifabric/icons/-/icons-7.5.5.tgz";
+        sha512 = "lErlirRm3D4Lv63oxa/JFx+JUyHRX/pqNoolLQKlPKqNauHFcrcEEDRuZdtfSOJtF/1a09ZvIyirij3XwZjNBw==";
+      };
+    };
+    "@uifabric/merge-styles-7.19.1" = {
+      name = "_at_uifabric_slash_merge-styles";
+      packageName = "@uifabric/merge-styles";
+      version = "7.19.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uifabric/merge-styles/-/merge-styles-7.19.1.tgz";
+        sha512 = "yqUwmk62Kgu216QNPE9vOfS3h0kiSbTvoqM5QcZi+IzpqsBOlzZx3A9Er9UiDaqHRd5lsYF5pO/jeUULmBWF/A==";
+      };
+    };
+    "@uifabric/react-hooks-7.13.4" = {
+      name = "_at_uifabric_slash_react-hooks";
+      packageName = "@uifabric/react-hooks";
+      version = "7.13.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uifabric/react-hooks/-/react-hooks-7.13.4.tgz";
+        sha512 = "hyL3eQqbS7DrZCpkF1QDrC0TX+dV+yZZr5UgT3wAZMtzEMBFVgaiPHdv0zHgUbiQv5ktbQoY7yQp7clfVN65DA==";
+      };
+    };
+    "@uifabric/set-version-7.0.23" = {
+      name = "_at_uifabric_slash_set-version";
+      packageName = "@uifabric/set-version";
+      version = "7.0.23";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uifabric/set-version/-/set-version-7.0.23.tgz";
+        sha512 = "9E+YKtnH2kyMKnK9XZZsqyM8OCxEJIIfxtaThTlQpYOzrWAGJxQADFbZ7+Usi0U2xHnWNPFROjq+B9ocEzhqMA==";
+      };
+    };
+    "@uifabric/styling-7.16.5" = {
+      name = "_at_uifabric_slash_styling";
+      packageName = "@uifabric/styling";
+      version = "7.16.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.2.0.tgz";
-        sha512 = "uh+Y2QO7dxNrdLw7mVnjUqkwO/InxEqwN0wF+Za6eo3coxls9aH9kQ/5rSvW2GcNanebRTmsT5w1/92lAOb1bA==";
+        url = "https://registry.npmjs.org/@uifabric/styling/-/styling-7.16.5.tgz";
+        sha512 = "mJcPam0ivtGfC8NEUQgpJFs8uG4ZRY1ml1RY9rOY6py5pTEno15xaq11yfRxv3ACxkuK9D9qZM23x0q8sWsCdg==";
       };
     };
-    "@vue/cli-shared-utils-4.4.1" = {
+    "@uifabric/utilities-7.32.2" = {
+      name = "_at_uifabric_slash_utilities";
+      packageName = "@uifabric/utilities";
+      version = "7.32.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@uifabric/utilities/-/utilities-7.32.2.tgz";
+        sha512 = "x47zJIjezkfed17EfNRTr9wP6hHR+i0pBbr3eQYetpcVsAXcbZsd+D6divwy+kQOsdLQ8TozWqoVk3ySe6RfSw==";
+      };
+    };
+    "@vue/cli-shared-utils-4.5.6" = {
       name = "_at_vue_slash_cli-shared-utils";
       packageName = "@vue/cli-shared-utils";
-      version = "4.4.1";
+      version = "4.5.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.4.1.tgz";
-        sha512 = "teevHgI7XUsKVMOncx3M+6iLjO28woGfRwgUG4hR83moVBHQe5x2OCr2i5t/58bwpv269RD5RYXBQCGtIXuxZw==";
+        url = "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.6.tgz";
+        sha512 = "p6ePDlEa7Xc0GEt99KDOCwPZtR7UnoEaZLMfwPYU5LAWkdCmtAw8HPAY/WWcjtoiaAkY4k9tz7ZehQasZ9mJxg==";
       };
     };
-    "@vue/cli-ui-4.4.1" = {
+    "@vue/cli-ui-4.5.6" = {
       name = "_at_vue_slash_cli-ui";
       packageName = "@vue/cli-ui";
-      version = "4.4.1";
+      version = "4.5.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-ui/-/cli-ui-4.4.1.tgz";
-        sha512 = "UPDvDdYvuacUuq39OQ/WfLsuIrzIJMdL2bkMecpcegDRPi6MEgkInXqSOMEl5v72FX8qStwXYCUSxifoYIIZ/g==";
+        url = "https://registry.npmjs.org/@vue/cli-ui/-/cli-ui-4.5.6.tgz";
+        sha512 = "AmirESDgjeeTIvFc/OgQeNtYh1cfollyFdF3JSGaAy27rJJlbWfYRgHJoPFp7SD61FQQuqE+TOyiNjplHHt/Rg==";
       };
     };
-    "@vue/cli-ui-addon-webpack-4.4.1" = {
+    "@vue/cli-ui-addon-webpack-4.5.6" = {
       name = "_at_vue_slash_cli-ui-addon-webpack";
       packageName = "@vue/cli-ui-addon-webpack";
-      version = "4.4.1";
+      version = "4.5.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-ui-addon-webpack/-/cli-ui-addon-webpack-4.4.1.tgz";
-        sha512 = "UJrv7bCSEJIq+nG3xKSOMjkUnQBbUr+vwk6PjBPsMcjOdbra7p8sQfDIXeRSviCgoDVcnODJDMyD0tqg6OI/sA==";
+        url = "https://registry.npmjs.org/@vue/cli-ui-addon-webpack/-/cli-ui-addon-webpack-4.5.6.tgz";
+        sha512 = "wjgzU4+cl93YXDrnSdZQmYRHyvCSgq24wPQFsfdXrobfP6a76wx+QedrLm7o2o0/BCHNCkDrTQLHxHvPiVm9PA==";
       };
     };
-    "@vue/cli-ui-addon-widgets-4.4.1" = {
+    "@vue/cli-ui-addon-widgets-4.5.6" = {
       name = "_at_vue_slash_cli-ui-addon-widgets";
       packageName = "@vue/cli-ui-addon-widgets";
-      version = "4.4.1";
+      version = "4.5.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/cli-ui-addon-widgets/-/cli-ui-addon-widgets-4.5.6.tgz";
+        sha512 = "4Lpf59lr0pycIzKdTlZsgubJxCHDkAqcc4I60Gp6rggueksuhz2q3rAp7kfxwCzaZlAXXsqy6hoeyj+3sukqDQ==";
+      };
+    };
+    "@vue/compiler-core-3.0.0" = {
+      name = "_at_vue_slash_compiler-core";
+      packageName = "@vue/compiler-core";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.0.0.tgz";
+        sha512 = "XqPC7vdv4rFE77S71oCHmT1K4Ks3WE2Gi6Lr4B5wn0Idmp+NyQQBUHsCNieMDRiEpgtJrw+yOHslrsV0AfAsfQ==";
+      };
+    };
+    "@vue/compiler-dom-3.0.0" = {
+      name = "_at_vue_slash_compiler-dom";
+      packageName = "@vue/compiler-dom";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.0.0.tgz";
+        sha512 = "ukDEGOP8P7lCPyStuM3F2iD5w2QPgUu2xwCW2XNeqPjFKIlR2xMsWjy4raI/cLjN6W16GtlMFaZdK8tLj5PRog==";
+      };
+    };
+    "@vue/compiler-sfc-3.0.0" = {
+      name = "_at_vue_slash_compiler-sfc";
+      packageName = "@vue/compiler-sfc";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.0.0.tgz";
+        sha512 = "1Bn4L5jNRm6tlb79YwqYUGGe+Yc9PRoRSJi67NJX6icdhf84+tRMtESbx1zCLL9QixQXu2+7aLkXHxvh4RpqAA==";
+      };
+    };
+    "@vue/compiler-ssr-3.0.0" = {
+      name = "_at_vue_slash_compiler-ssr";
+      packageName = "@vue/compiler-ssr";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.0.0.tgz";
+        sha512 = "Er41F9ZFyKB3YnNbE6JSTIGCVWve3NAQimgDOk4uP42OnckxBYKGBTutDeFNeqUZBMu/9vRHYrxlGFC9Z5jBVQ==";
+      };
+    };
+    "@vue/reactivity-3.0.0" = {
+      name = "_at_vue_slash_reactivity";
+      packageName = "@vue/reactivity";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.0.0.tgz";
+        sha512 = "mEGkztGQrAPZRhV7C6PorrpT3+NtuA4dY2QjMzzrW31noKhssWTajRZTwpLF39NBRrF5UU6cp9+1I0FfavMgEQ==";
+      };
+    };
+    "@vue/runtime-core-3.0.0" = {
+      name = "_at_vue_slash_runtime-core";
+      packageName = "@vue/runtime-core";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-ui-addon-widgets/-/cli-ui-addon-widgets-4.4.1.tgz";
-        sha512 = "VaAnCI1X2SEllLNf1TXNz0BARfdb+COMUMzc17PMb5xmdqDswPvVKG5pnFurKODWFgI7zcbk4kBnrYojdLnhNg==";
+        url = "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.0.0.tgz";
+        sha512 = "3ABMLeA0ZbeVNLbGGLXr+pNUwqXILOqz8WCVGfDWwQb+jW114Cm8djOHVVDoqdvRETQvDf8yHSUmpKHZpQuTkA==";
+      };
+    };
+    "@vue/runtime-dom-3.0.0" = {
+      name = "_at_vue_slash_runtime-dom";
+      packageName = "@vue/runtime-dom";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.0.0.tgz";
+        sha512 = "f312n5w9gK6mVvkDSj6/Xnot1XjlKXzFBYybmoy6ahAVC8ExbQ+LOWti1IZM/adU8VMNdKaw7Q53Hxz3y5jX8g==";
+      };
+    };
+    "@vue/shared-3.0.0" = {
+      name = "_at_vue_slash_shared";
+      packageName = "@vue/shared";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@vue/shared/-/shared-3.0.0.tgz";
+        sha512 = "4XWL/avABGxU2E2ZF1eZq3Tj7fvksCMssDZUHOykBIMmh5d+KcAnQMC5XHMhtnA0NAvktYsA2YpdsVwVmhWzvA==";
       };
     };
     "@webassemblyjs/ast-1.8.1" = {
@@ -4612,13 +5710,13 @@ let
         sha1 = "5faad9c2c07f60dd76770f71cf025b62a63cfd4e";
       };
     };
-    "abab-2.0.3" = {
+    "abab-2.0.5" = {
       name = "abab";
       packageName = "abab";
-      version = "2.0.3";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz";
-        sha512 = "tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==";
+        url = "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz";
+        sha512 = "9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==";
       };
     };
     "abbrev-1.1.1" = {
@@ -4639,15 +5737,6 @@ let
         sha1 = "c22822f87e1c939f579887504d9c109c4173829d";
       };
     };
-    "abstract-leveldown-0.12.4" = {
-      name = "abstract-leveldown";
-      packageName = "abstract-leveldown";
-      version = "0.12.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz";
-        sha1 = "29e18e632e60e4e221d5810247852a63d7b2e410";
-      };
-    };
     "abstract-leveldown-6.0.3" = {
       name = "abstract-leveldown";
       packageName = "abstract-leveldown";
@@ -4675,13 +5764,13 @@ let
         sha512 = "TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==";
       };
     };
-    "abstract-logging-1.0.0" = {
+    "abstract-logging-2.0.0" = {
       name = "abstract-logging";
       packageName = "abstract-logging";
-      version = "1.0.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/abstract-logging/-/abstract-logging-1.0.0.tgz";
-        sha1 = "8b7deafd310559bc28f77724dd1bb30177278c1b";
+        url = "https://registry.npmjs.org/abstract-logging/-/abstract-logging-2.0.0.tgz";
+        sha512 = "/oA9z7JszpIioo6J6dB79LVUgJ3eD3cxkAmdCkvWWS+Y9tPtALs1rLqOekLUXUbYqM2fB9TTK0ibAyZJJOP/CA==";
       };
     };
     "abstract-random-access-1.1.2" = {
@@ -4693,15 +5782,6 @@ let
         sha1 = "9a8eac8ff79866f3f9b4bb1443ca778f1598aeda";
       };
     };
-    "accepts-1.2.13" = {
-      name = "accepts";
-      packageName = "accepts";
-      version = "1.2.13";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/accepts/-/accepts-1.2.13.tgz";
-        sha1 = "e5f1f3928c6d95fd96558c36ec3d9d0de4a6ecea";
-      };
-    };
     "accepts-1.3.7" = {
       name = "accepts";
       packageName = "accepts";
@@ -4711,15 +5791,6 @@ let
         sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
       };
     };
-    "accord-0.28.0" = {
-      name = "accord";
-      packageName = "accord";
-      version = "0.28.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/accord/-/accord-0.28.0.tgz";
-        sha512 = "sPF34gqHegaCSryKf5wHJ8wREK1dTZnHmC9hsB7D8xjntRdd30DXDPKf0YVIcSvnXJmcYu5SCvZRz28H++kFhQ==";
-      };
-    };
     "ace.improved-0.2.1" = {
       name = "ace.improved";
       packageName = "ace.improved";
@@ -4774,13 +5845,13 @@ let
         sha512 = "ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==";
       };
     };
-    "acorn-7.2.0" = {
+    "acorn-7.4.0" = {
       name = "acorn";
       packageName = "acorn";
-      version = "7.2.0";
+      version = "7.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz";
-        sha512 = "apwXVmYVpQ34m/i71vrApRrRKCWQnZZF1+npOD0WV5xZFfwWOmKGQ2RWlfdy9vWITsenisM8M0Qeq8agcFHNiQ==";
+        url = "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz";
+        sha512 = "+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==";
       };
     };
     "acorn-globals-1.0.9" = {
@@ -4819,13 +5890,13 @@ let
         sha1 = "afdf9488fb1ecefc8348f6fb22f464e32a58b36b";
       };
     };
-    "acorn-jsx-5.2.0" = {
+    "acorn-jsx-5.3.1" = {
       name = "acorn-jsx";
       packageName = "acorn-jsx";
-      version = "5.2.0";
+      version = "5.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz";
-        sha512 = "HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==";
+        url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz";
+        sha512 = "K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==";
       };
     };
     "acorn-loose-6.1.0" = {
@@ -4855,13 +5926,13 @@ let
         sha512 = "7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==";
       };
     };
-    "acorn-walk-7.1.1" = {
+    "acorn-walk-7.2.0" = {
       name = "acorn-walk";
       packageName = "acorn-walk";
-      version = "7.1.1";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.1.1.tgz";
-        sha512 = "wdlPY2tm/9XBr7QkKlq0WQVgiuGTX6YWPyRyBviSoScBuLfTVQhvwg6wJ369GJ/1nPfTLMfnrFIfjqVg6d+jQQ==";
+        url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz";
+        sha512 = "OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==";
       };
     };
     "adbkit-2.11.1" = {
@@ -4900,13 +5971,13 @@ let
         sha1 = "f291be701a2efc567a63fc7aa6afcded31430be1";
       };
     };
-    "addons-linter-1.23.0" = {
+    "addons-linter-2.5.0" = {
       name = "addons-linter";
       packageName = "addons-linter";
-      version = "1.23.0";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-1.23.0.tgz";
-        sha512 = "4ozo5E+KnsU9h94J496WQs6NYSnofxtw5/Sy63PmeB5FJ3KWERx1S9D8A+ixMAIMgaSiexHpp5alp9yjE0t4gg==";
+        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-2.5.0.tgz";
+        sha512 = "d3GGf27ibN9ioxmjEiAFkGQRdyw5W+Gb2/9G55AZ6YygtBjtJDotTnSsE6Tz+mEFY4QKo/OaVs1XKjcZEl2fJA==";
       };
     };
     "addr-to-ip-port-1.5.1" = {
@@ -4927,13 +5998,13 @@ let
         sha512 = "fERNJX8sOXfel6qCBCMPvZLzENBEhZTzKqg6vrOW5pvoEaQuJhRU4ndTAh6lHOxn1I6jnz2NHra56ZODM751uw==";
       };
     };
-    "adm-zip-0.4.14" = {
+    "adm-zip-0.4.16" = {
       name = "adm-zip";
       packageName = "adm-zip";
-      version = "0.4.14";
+      version = "0.4.16";
       src = fetchurl {
-        url = "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.14.tgz";
-        sha512 = "/9aQCnQHF+0IiCl0qhXoK7qs//SwYE7zX8lsr/DNk1BRAHYxeLZPL4pguwK29gUEqasYQjqPtEpDRSWEkdHn9g==";
+        url = "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz";
+        sha512 = "TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==";
       };
     };
     "adverb-where-0.0.9" = {
@@ -5008,13 +6079,13 @@ let
         sha512 = "TMeqbNl2fMW0nMjTEPOwe3J/PRFP4vqeoNuQMG0HlMrtm5QxKqdvAkZ1pRBQ/ulIyDD5Yq0nJ7YbdD8ey0TO3g==";
       };
     };
-    "agent-base-6.0.0" = {
+    "agent-base-6.0.1" = {
       name = "agent-base";
       packageName = "agent-base";
-      version = "6.0.0";
+      version = "6.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz";
-        sha512 = "j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==";
+        url = "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz";
+        sha512 = "01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==";
       };
     };
     "agentkeepalive-3.5.2" = {
@@ -5026,22 +6097,22 @@ let
         sha512 = "e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==";
       };
     };
-    "agentkeepalive-4.1.2" = {
+    "agentkeepalive-4.1.3" = {
       name = "agentkeepalive";
       packageName = "agentkeepalive";
-      version = "4.1.2";
+      version = "4.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.2.tgz";
-        sha512 = "waNHE7tQBBn+2qXucI8HY0o2Y0OBPWldWOWsZwY71JcCm4SvrPnWdceFfB5NIXSqE8Ewq6VR/Qt5b1i69P6KCQ==";
+        url = "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.1.3.tgz";
+        sha512 = "wn8fw19xKZwdGPO47jivonaHRTd+nGOMP1z11sgGeQzDy2xd5FG0R67dIMcKHDE2cJ5y+YXV30XVGUBPRSY7Hg==";
       };
     };
-    "aggregate-error-3.0.1" = {
+    "aggregate-error-3.1.0" = {
       name = "aggregate-error";
       packageName = "aggregate-error";
-      version = "3.0.1";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz";
-        sha512 = "quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==";
+        url = "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz";
+        sha512 = "4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==";
       };
     };
     "airplay-js-0.2.16" = {
@@ -5098,22 +6169,31 @@ let
         sha1 = "73b5eeca3fab653e3d3f9422b341ad42205dc965";
       };
     };
-    "ajv-6.12.0" = {
+    "ajv-6.12.3" = {
       name = "ajv";
       packageName = "ajv";
-      version = "6.12.0";
+      version = "6.12.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz";
+        sha512 = "4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==";
+      };
+    };
+    "ajv-6.12.4" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "6.12.4";
       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.4.tgz";
+        sha512 = "eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==";
       };
     };
-    "ajv-6.12.2" = {
+    "ajv-6.12.5" = {
       name = "ajv";
       packageName = "ajv";
-      version = "6.12.2";
+      version = "6.12.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz";
-        sha512 = "k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==";
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz";
+        sha512 = "lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==";
       };
     };
     "ajv-6.5.3" = {
@@ -5152,13 +6232,13 @@ let
         sha1 = "617997fc5f60576894c435f940d819e135b80762";
       };
     };
-    "ajv-keywords-3.4.1" = {
+    "ajv-keywords-3.5.2" = {
       name = "ajv-keywords";
       packageName = "ajv-keywords";
-      version = "3.4.1";
+      version = "3.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz";
-        sha512 = "RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==";
+        url = "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz";
+        sha512 = "5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==";
       };
     };
     "ajv-merge-patch-4.1.0" = {
@@ -5170,13 +6250,13 @@ let
         sha512 = "0mAYXMSauA8RZ7r+B4+EAOYcZEcO9OK5EiQCR7W7Cv4E44pJj56ZnkKLJ9/PAcOc0dT+LlV9fdDcq2TxVJfOYw==";
       };
     };
-    "alex-5.1.0" = {
+    "alex-9.0.1" = {
       name = "alex";
       packageName = "alex";
-      version = "5.1.0";
+      version = "9.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/alex/-/alex-5.1.0.tgz";
-        sha512 = "ouNJOHx7KKNwFsmX3WWXo8c2RTrsyhcX5QlFb6IM/cHCy9IkHr1k833jiIhcbwkUeGgACI2BJtp9LLvnFjbhbA==";
+        url = "https://registry.npmjs.org/alex/-/alex-9.0.1.tgz";
+        sha512 = "q560b+fVMXvu3WVkvoYBUGRHRXo9K9P/Fnt6Xcq1VhZow9MNqoQ5x7OJTYzSStAElaGxaJ7djTef9pJrM3GBXg==";
       };
     };
     "align-text-0.1.4" = {
@@ -5197,15 +6277,6 @@ let
         sha512 = "2Sy0hWhifVb8ycNFJgicL8fDPL2Ct1r62XOVxXnykn36z22MPZwnQlCmB2viQlY/lwfuO67GaQjUZ0rJgdVP7Q==";
       };
     };
-    "almond-0.3.3" = {
-      name = "almond";
-      packageName = "almond";
-      version = "0.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/almond/-/almond-0.3.3.tgz";
-        sha1 = "a0e7c95ac7624d6417b4494b1e68bff693168a20";
-      };
-    };
     "alphanum-sort-1.0.2" = {
       name = "alphanum-sort";
       packageName = "alphanum-sort";
@@ -5224,6 +6295,24 @@ let
         sha1 = "4a5282ac164729e93619bcfd3ad151f817ce91f5";
       };
     };
+    "analytics-0.5.5" = {
+      name = "analytics";
+      packageName = "analytics";
+      version = "0.5.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/analytics/-/analytics-0.5.5.tgz";
+        sha512 = "43JBzud8n1OoN5TUehHpsp38rDyDteFgS9ZPWLyuj5JGc7JgjLAQNN1BCwyM9js4U7LIRxhEyWXPkifndMsOeA==";
+      };
+    };
+    "analytics-utils-0.2.2" = {
+      name = "analytics-utils";
+      packageName = "analytics-utils";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/analytics-utils/-/analytics-utils-0.2.2.tgz";
+        sha512 = "fdbc+MeoNrkwCAbGD/qgedyvRbPnImmWiInAgZ51KpINmKITpdtWV+6riHVA1YBSrb8IyYlfxn98IeWyN9a0+Q==";
+      };
+    };
     "ansi-0.3.1" = {
       name = "ansi";
       packageName = "ansi";
@@ -5593,13 +6682,13 @@ let
         sha512 = "sbLEIMQrkV7RkIruqTPXxeCMkAAycv4yzTkBzRgOR1BrR5UB7qZtupqxkersTJSf0HZ3sbaNRrNV80TnnM7cUw==";
       };
     };
-    "apollo-2.28.2" = {
+    "apollo-2.30.3" = {
       name = "apollo";
       packageName = "apollo";
-      version = "2.28.2";
+      version = "2.30.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo/-/apollo-2.28.2.tgz";
-        sha512 = "UcQIj6+MKcCSEH6la0G1SinIV8+Q3AM9x8Oryq9YXRcwjJqnOYdq1qPpmmTG+SlR9Lfxpo8Sv+e16QuSBFVQNg==";
+        url = "https://registry.npmjs.org/apollo/-/apollo-2.30.3.tgz";
+        sha512 = "5X0a2PaMOYUWhk0DIRzzwu18j6WiVWIvgmciQHY++QV+aKngspXWeqAn+mugSkwkC/GVycl/0Jv/OCdnemE7Og==";
       };
     };
     "apollo-cache-1.3.5" = {
@@ -5611,13 +6700,13 @@ let
         sha512 = "1XoDy8kJnyWY/i/+gLTEbYLnoiVtS8y7ikBr/IfmML4Qb+CM7dEEbIUOjnY716WqmZ/UpXIxTfJsY7rMcqiCXA==";
       };
     };
-    "apollo-cache-control-0.11.0" = {
+    "apollo-cache-control-0.11.1" = {
       name = "apollo-cache-control";
       packageName = "apollo-cache-control";
-      version = "0.11.0";
+      version = "0.11.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.0.tgz";
-        sha512 = "dmRnQ9AXGw2SHahVGLzB/p4UW/taFBAJxifxubp8hqY5p9qdlSu4MPRq8zvV2ULMYf50rBtZyC4C+dZLqmHuHQ==";
+        url = "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.1.tgz";
+        sha512 = "6iHa8TkcKt4rx5SKRzDNjUIpCQX+7/FlZwD7vRh9JDnM4VH8SWhpj8fUR3CiEY8Kuc4ChXnOY8bCcMju5KPnIQ==";
       };
     };
     "apollo-cache-inmemory-1.6.6" = {
@@ -5638,76 +6727,76 @@ let
         sha512 = "jiPlMTN6/5CjZpJOkGeUV0mb4zxx33uXWdj/xQCfAMkuNAC3HN7CvYDyMHHEzmcQ5GV12LszWoQ/VlxET24CtA==";
       };
     };
-    "apollo-codegen-core-0.37.2" = {
+    "apollo-codegen-core-0.37.9" = {
       name = "apollo-codegen-core";
       packageName = "apollo-codegen-core";
-      version = "0.37.2";
+      version = "0.37.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-core/-/apollo-codegen-core-0.37.2.tgz";
-        sha512 = "Cf4+mWf92nd0PlruwoLrHpS1/eRF2M2qaq/NBGyJlLFhwALrMlM63cqMuJ/Q2dWwAB7ecQLKgZdUkv4jisyimQ==";
+        url = "https://registry.npmjs.org/apollo-codegen-core/-/apollo-codegen-core-0.37.9.tgz";
+        sha512 = "FfsLh/DZkwH1fb5mNaVonBVk9JdJp3D/Bj1AGthw9ldZmd/3s79YfsYXqOsCNJM1TZt6K/du08NMHSLS86YQBA==";
       };
     };
-    "apollo-codegen-flow-0.35.2" = {
+    "apollo-codegen-flow-0.35.9" = {
       name = "apollo-codegen-flow";
       packageName = "apollo-codegen-flow";
-      version = "0.35.2";
+      version = "0.35.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-flow/-/apollo-codegen-flow-0.35.2.tgz";
-        sha512 = "B8Vo0bViAENNNQ+2uAwxnLYsdU0URyQwEpTQDXfV07JLQrm3ebNQqoLeDz2Xacknuh11QtQNexOmM02Q/dfjvw==";
+        url = "https://registry.npmjs.org/apollo-codegen-flow/-/apollo-codegen-flow-0.35.9.tgz";
+        sha512 = "+9gJLQfSy04Y4DwPpicGLpKQ1GORo07sxQWKqJWMtVRj4exKMFXieNawDUKErvxqiwDKXcBO9B1q5MF8BcwWlA==";
       };
     };
-    "apollo-codegen-scala-0.36.2" = {
+    "apollo-codegen-scala-0.36.9" = {
       name = "apollo-codegen-scala";
       packageName = "apollo-codegen-scala";
-      version = "0.36.2";
+      version = "0.36.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-scala/-/apollo-codegen-scala-0.36.2.tgz";
-        sha512 = "423HUZo3i1SHBIvH+lusi8fXCRvQWjo+UoRRzzIxiALKDhLAWxgdNADXn0B1jcWJNnyNhfaw58Bh3PtGtFbDnA==";
+        url = "https://registry.npmjs.org/apollo-codegen-scala/-/apollo-codegen-scala-0.36.9.tgz";
+        sha512 = "t1ew6IXsFL+sNvyy/kS0VWv8t1WjxC46lt1ISt5v5bgDVyGo2g+cH93SSeEFUjtv+hK3TyqSO1fM0SLHAy8oJA==";
       };
     };
-    "apollo-codegen-swift-0.37.2" = {
+    "apollo-codegen-swift-0.37.9" = {
       name = "apollo-codegen-swift";
       packageName = "apollo-codegen-swift";
-      version = "0.37.2";
+      version = "0.37.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-swift/-/apollo-codegen-swift-0.37.2.tgz";
-        sha512 = "sa4huF3fnjMwf93CsOc2vaIwQbolZzELq2o9F3uX6ZNJhiE1oywF64fI5jLuw4adQSe9vX5RI5CbQiKeFoh0xA==";
+        url = "https://registry.npmjs.org/apollo-codegen-swift/-/apollo-codegen-swift-0.37.9.tgz";
+        sha512 = "4N8s2yni41/jjbfsyoJ4yxbW8XbL6HbUbxRgvbmckGtoOjQS06PYUD56IibQWbsaBs8gEpu5Z/rE/dL2Y6hZug==";
       };
     };
-    "apollo-codegen-typescript-0.37.2" = {
+    "apollo-codegen-typescript-0.37.9" = {
       name = "apollo-codegen-typescript";
       packageName = "apollo-codegen-typescript";
-      version = "0.37.2";
+      version = "0.37.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-codegen-typescript/-/apollo-codegen-typescript-0.37.2.tgz";
-        sha512 = "Y837GfKEKVusLj+1DKjHaLcKKyLAGsddNqZRFhXDFAQ4G5Mmrrrn2BzNTYKLoeyDEiBW3dle32Pzyc8UpHbURQ==";
+        url = "https://registry.npmjs.org/apollo-codegen-typescript/-/apollo-codegen-typescript-0.37.9.tgz";
+        sha512 = "DFBa8vUbiVmd/kGG/mjq6umwWxFRYtzllmt2fwHIVCi9z4vDD8Y+6p9acwOxqjqKCVaJshRQCh94zGuW0gY6vA==";
       };
     };
-    "apollo-datasource-0.7.1" = {
+    "apollo-datasource-0.7.2" = {
       name = "apollo-datasource";
       packageName = "apollo-datasource";
-      version = "0.7.1";
+      version = "0.7.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.1.tgz";
-        sha512 = "h++/jQAY7GA+4TBM+7ezvctFmmGNLrAPf51KsagZj+NkT9qvxp585rdsuatynVbSl59toPK2EuVmc6ilmQHf+g==";
+        url = "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.2.tgz";
+        sha512 = "ibnW+s4BMp4K2AgzLEtvzkjg7dJgCaw9M5b5N0YKNmeRZRnl/I/qBTQae648FsRKgMwTbRQIvBhQ0URUFAqFOw==";
       };
     };
-    "apollo-engine-reporting-2.0.0" = {
+    "apollo-engine-reporting-2.3.0" = {
       name = "apollo-engine-reporting";
       packageName = "apollo-engine-reporting";
-      version = "2.0.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-2.0.0.tgz";
-        sha512 = "FvNwORsh3nxEfvQqd2xbd468a0q/R3kYar/Bk6YQdBX5qwqUhqmOcOSxLFk8Zb77HpwHij5CPpPWJb53TU1zcA==";
+        url = "https://registry.npmjs.org/apollo-engine-reporting/-/apollo-engine-reporting-2.3.0.tgz";
+        sha512 = "SbcPLFuUZcRqDEZ6mSs8uHM9Ftr8yyt2IEu0JA8c3LNBmYXSLM7MHqFe80SVcosYSTBgtMz8mLJO8orhYoSYZw==";
       };
     };
-    "apollo-engine-reporting-protobuf-0.5.1" = {
+    "apollo-engine-reporting-protobuf-0.5.2" = {
       name = "apollo-engine-reporting-protobuf";
       packageName = "apollo-engine-reporting-protobuf";
-      version = "0.5.1";
+      version = "0.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.5.1.tgz";
-        sha512 = "TSfr9iAaInV8dhXkesdcmqsthRkVcJkzznmiM+1Ob/GScK7r6hBYCjVDt2613EHAg9SUzTOltIKlGD+N+GJRUw==";
+        url = "https://registry.npmjs.org/apollo-engine-reporting-protobuf/-/apollo-engine-reporting-protobuf-0.5.2.tgz";
+        sha512 = "4wm9FR3B7UvJxcK/69rOiS5CAJPEYKufeRWb257ZLfX7NGFTMqvbc1hu4q8Ch7swB26rTpkzfsftLED9DqH9qg==";
       };
     };
     "apollo-env-0.6.5" = {
@@ -5719,22 +6808,31 @@ let
         sha512 = "jeBUVsGymeTHYWp3me0R2CZRZrFeuSZeICZHCeRflHTfnQtlmbSXdy5E0pOyRM9CU4JfQkKDC98S1YglQj7Bzg==";
       };
     };
-    "apollo-graphql-0.4.5" = {
+    "apollo-graphql-0.5.0" = {
       name = "apollo-graphql";
       packageName = "apollo-graphql";
-      version = "0.4.5";
+      version = "0.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.4.5.tgz";
-        sha512 = "0qa7UOoq7E71kBYE7idi6mNQhHLVdMEDInWk6TNw3KsSWZE2/I68gARP84Mj+paFTO5NYuw1Dht66PVX76Cc2w==";
+        url = "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.5.0.tgz";
+        sha512 = "YSdF/BKPbsnQpxWpmCE53pBJX44aaoif31Y22I/qKpB6ZSGzYijV5YBoCL5Q15H2oA/v/02Oazh9lbp4ek3eig==";
       };
     };
-    "apollo-language-server-1.22.2" = {
+    "apollo-graphql-0.6.0" = {
+      name = "apollo-graphql";
+      packageName = "apollo-graphql";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/apollo-graphql/-/apollo-graphql-0.6.0.tgz";
+        sha512 = "BxTf5LOQe649e9BNTPdyCGItVv4Ll8wZ2BKnmiYpRAocYEXAVrQPWuSr3dO4iipqAU8X0gvle/Xu9mSqg5b7Qg==";
+      };
+    };
+    "apollo-language-server-1.23.4" = {
       name = "apollo-language-server";
       packageName = "apollo-language-server";
-      version = "1.22.2";
+      version = "1.23.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-language-server/-/apollo-language-server-1.22.2.tgz";
-        sha512 = "b+KgnjkJnXFRzaNHUb83+IVTw6H5V515DrALBCTlhxa1LmAnET1pm0vuWaFNl5O2fHYqgbtLNz/omipIkvd/5g==";
+        url = "https://registry.npmjs.org/apollo-language-server/-/apollo-language-server-1.23.4.tgz";
+        sha512 = "PaA25SsAQ30iXfR0noESlNYDNb4RH5S7tjVxBTj53VRArp/gQDWJM6eDvFbH5RH3vXXpfHRVna6YfymDfTPdqg==";
       };
     };
     "apollo-link-1.2.14" = {
@@ -5809,76 +6907,76 @@ let
         sha512 = "mjSFPlQxmoLArpHBeUb2Xj+2HDYeTaJqFGOqQ+I8NVJxgL9lJe84PDWcPah/yMLv3rB7QgBDSuZ0xoRFBPlySw==";
       };
     };
-    "apollo-server-caching-0.5.1" = {
+    "apollo-server-caching-0.5.2" = {
       name = "apollo-server-caching";
       packageName = "apollo-server-caching";
-      version = "0.5.1";
+      version = "0.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.1.tgz";
-        sha512 = "L7LHZ3k9Ao5OSf2WStvQhxdsNVplRQi7kCAPfqf9Z3GBEnQ2uaL0EgO0hSmtVHfXTbk5CTRziMT1Pe87bXrFIw==";
+        url = "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.2.tgz";
+        sha512 = "HUcP3TlgRsuGgeTOn8QMbkdx0hLPXyEJehZIPrcof0ATz7j7aTPA4at7gaiFHCo8gk07DaWYGB3PFgjboXRcWQ==";
       };
     };
-    "apollo-server-core-2.14.3" = {
+    "apollo-server-core-2.17.0" = {
       name = "apollo-server-core";
       packageName = "apollo-server-core";
-      version = "2.14.3";
+      version = "2.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.14.3.tgz";
-        sha512 = "A9RkWuHFZ04uEnXof5V02T7wfhUel7Hx9LpEN4N59mXTpb7ewW+cb0u+J+SP+Y4vDhVqaHCGoveRVKy6X2kLhw==";
+        url = "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.17.0.tgz";
+        sha512 = "rjAkBbKSrGLDfg/g5bohnPlQahmkAxgEBuMDVsoF3aa+RaEPXPUMYrLbOxntl0LWeLbPiMa/IyFF43dvlGqV7w==";
       };
     };
-    "apollo-server-env-2.4.4" = {
+    "apollo-server-env-2.4.5" = {
       name = "apollo-server-env";
       packageName = "apollo-server-env";
-      version = "2.4.4";
+      version = "2.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.4.tgz";
-        sha512 = "c2oddDS3lwAl6QNCIKCLEzt/dF9M3/tjjYRVdxOVN20TidybI7rAbnT4QOzf4tORnGXtiznEAvr/Kc9ahhKADg==";
+        url = "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.5.tgz";
+        sha512 = "nfNhmGPzbq3xCEWT8eRpoHXIPNcNy3QcEoBlzVMjeglrBGryLG2LXwBSPnVmTRRrzUYugX0ULBtgE3rBFNoUgA==";
       };
     };
-    "apollo-server-errors-2.4.1" = {
+    "apollo-server-errors-2.4.2" = {
       name = "apollo-server-errors";
       packageName = "apollo-server-errors";
-      version = "2.4.1";
+      version = "2.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.4.1.tgz";
-        sha512 = "7oEd6pUxqyWYUbQ9TA8tM0NU/3aGtXSEibo6+txUkuHe7QaxfZ2wHRp+pfT1LC1K3RXYjKj61/C2xEO19s3Kdg==";
+        url = "https://registry.npmjs.org/apollo-server-errors/-/apollo-server-errors-2.4.2.tgz";
+        sha512 = "FeGxW3Batn6sUtX3OVVUm7o56EgjxDlmgpTLNyWcLb0j6P8mw9oLNyAm3B+deHA4KNdNHO5BmHS2g1SJYjqPCQ==";
       };
     };
-    "apollo-server-express-2.14.3" = {
+    "apollo-server-express-2.17.0" = {
       name = "apollo-server-express";
       packageName = "apollo-server-express";
-      version = "2.14.3";
+      version = "2.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.14.3.tgz";
-        sha512 = "35PZXG6sQYB0YT+TBZ5KRxyWqknVnevuHyPG5XSAhMtWsVF2ySMzRPs6JdQTi0p2jlFTo5pt4P6FT3hRu0EFUw==";
+        url = "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.17.0.tgz";
+        sha512 = "PonpWOuM1DH3Cz0bu56Tusr3GXOnectC6AD/gy2GXK0v84E7tKTuxEY3SgsgxhvfvvhfwJbXTyIogL/wezqnCw==";
       };
     };
-    "apollo-server-plugin-base-0.9.0" = {
+    "apollo-server-plugin-base-0.9.1" = {
       name = "apollo-server-plugin-base";
       packageName = "apollo-server-plugin-base";
-      version = "0.9.0";
+      version = "0.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.9.0.tgz";
-        sha512 = "LWcPrsy2+xqwlNseh/QaGa/MPNopS8c4qGgh0g0cAn0lZBRrJ9Yab7dq+iQ6vdUBwIhUWYN6s9dwUWCZw2SL8g==";
+        url = "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.9.1.tgz";
+        sha512 = "kvrX4Z3FdpjrZdHkyl5iY2A1Wvp4b6KQp00DeZqss7GyyKNUBKr80/7RQgBLEw7EWM7WB19j459xM/TjvW0FKQ==";
       };
     };
-    "apollo-server-types-0.5.0" = {
+    "apollo-server-types-0.5.1" = {
       name = "apollo-server-types";
       packageName = "apollo-server-types";
-      version = "0.5.0";
+      version = "0.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.5.0.tgz";
-        sha512 = "zhtsqqqfdeoJQAfc41Sy6WnnBVxKNgZ34BKXf/Q+kXmw7rbZ/B5SG3SJMvj1iFsbzZxILmWdUsE9aD20lEr0bg==";
+        url = "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.5.1.tgz";
+        sha512 = "my2cPw+DAb2qVnIuBcsRKGyS28uIc2vjFxa1NpRoJZe9gK0BWUBk7wzXnIzWy3HZ5Er11e/40MPTUesNfMYNVA==";
       };
     };
-    "apollo-tracing-0.11.0" = {
+    "apollo-tracing-0.11.2" = {
       name = "apollo-tracing";
       packageName = "apollo-tracing";
-      version = "0.11.0";
+      version = "0.11.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.11.0.tgz";
-        sha512 = "I9IFb/8lkBW8ZwOAi4LEojfT7dMfUSkpnV8LHQI8Rcj0HtzL9HObQ3woBmzyGHdGHLFuD/6/VHyFD67SesSrJg==";
+        url = "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.11.2.tgz";
+        sha512 = "QjmRd2ozGD+PfmF6U9w/w6jrclYSBNczN6Bzppr8qA5somEGl5pqdprIZYL28H0IapZiutA3x6p6ZVF/cVX8wA==";
       };
     };
     "apollo-upload-client-11.0.0" = {
@@ -5890,15 +6988,6 @@ let
         sha512 = "JChTrBi1VSF8u6OPrkWUApJlyUvzwhw98kqRB3fSi7/CU6z0OUD42Mee9s5h8mfjKEfOanK6GNZhF4t2tIPXSw==";
       };
     };
-    "apollo-upload-client-13.0.0" = {
-      name = "apollo-upload-client";
-      packageName = "apollo-upload-client";
-      version = "13.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/apollo-upload-client/-/apollo-upload-client-13.0.0.tgz";
-        sha512 = "lJ9/bk1BH1lD15WhWRha2J3+LrXrPIX5LP5EwiOUHv8PCORp4EUrcujrA3rI5hZeZygrTX8bshcuMdpqpSrvtA==";
-      };
-    };
     "apollo-utilities-1.3.4" = {
       name = "apollo-utilities";
       packageName = "apollo-utilities";
@@ -6025,13 +7114,22 @@ let
         sha512 = "5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==";
       };
     };
-    "archiver-4.0.1" = {
+    "archiver-4.0.2" = {
       name = "archiver";
       packageName = "archiver";
-      version = "4.0.1";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/archiver/-/archiver-4.0.2.tgz";
+        sha512 = "B9IZjlGwaxF33UN4oPbfBkyA4V1SxNLeIhR1qY8sRXSsbdUkEHrrOvwlYFPx+8uQeCe9M+FG6KgO+imDmQ79CQ==";
+      };
+    };
+    "archiver-5.0.2" = {
+      name = "archiver";
+      packageName = "archiver";
+      version = "5.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/archiver/-/archiver-4.0.1.tgz";
-        sha512 = "/YV1pU4Nhpf/rJArM23W6GTUjT0l++VbjykrCRua1TSXrn+yM8Qs7XvtwSiRse0iCe49EPNf7ktXnPsWuSb91Q==";
+        url = "https://registry.npmjs.org/archiver/-/archiver-5.0.2.tgz";
+        sha512 = "Tq3yV/T4wxBsD2Wign8W9VQKhaUxzzRmjEiSoOK0SLqPgDP/N1TKdYyBeIEu56T4I9iO4fKTTR0mN9NWkBA0sg==";
       };
     };
     "archiver-utils-1.3.0" = {
@@ -6115,6 +7213,24 @@ let
         sha1 = "2b12247b933001971addcbfe4e67d20fd395bbf4";
       };
     };
+    "aribts-1.3.5" = {
+      name = "aribts";
+      packageName = "aribts";
+      version = "1.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aribts/-/aribts-1.3.5.tgz";
+        sha512 = "fvDR4iYpZkbMqMbTfKynPGfpXDhFTxzZWSS7C3c70xQ8ElmFkjwVrg/NLcEA+R3s4Jz6mVrz/1vOLEAI+ycrSQ==";
+      };
+    };
+    "aribts-2.1.12" = {
+      name = "aribts";
+      packageName = "aribts";
+      version = "2.1.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aribts/-/aribts-2.1.12.tgz";
+        sha512 = "kY0YXa72/R7ruTxDqMHCDHnhW9pYvDT+46hQ7tnVDJUb+kp9BJcnOeiRIDheKp4Kn6z630UVywIgiK+4mYgJfA==";
+      };
+    };
     "arr-diff-1.1.0" = {
       name = "arr-diff";
       packageName = "arr-diff";
@@ -6286,6 +7402,15 @@ let
         sha1 = "df010aa1287e164bbda6f9723b0a96a1ec4187a1";
       };
     };
+    "array-flat-polyfill-1.0.1" = {
+      name = "array-flat-polyfill";
+      packageName = "array-flat-polyfill";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-flat-polyfill/-/array-flat-polyfill-1.0.1.tgz";
+        sha512 = "hfJmKupmQN0lwi0xG6FQ5U8Rd97RnIERplymOv/qpq8AoNKPPAnxJadjFA23FNWm88wykh9HmpLJUUwUtNU/iw==";
+      };
+    };
     "array-flatten-1.1.1" = {
       name = "array-flatten";
       packageName = "array-flatten";
@@ -6520,6 +7645,15 @@ let
         sha512 = "mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==";
       };
     };
+    "array.prototype.map-1.0.2" = {
+      name = "array.prototype.map";
+      packageName = "array.prototype.map";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz";
+        sha512 = "Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==";
+      };
+    };
     "arraybuffer.slice-0.0.6" = {
       name = "arraybuffer.slice";
       packageName = "arraybuffer.slice";
@@ -6565,6 +7699,15 @@ let
         sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46";
       };
     };
+    "ascii-table-0.0.9" = {
+      name = "ascii-table";
+      packageName = "ascii-table";
+      version = "0.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ascii-table/-/ascii-table-0.0.9.tgz";
+        sha1 = "06a6604d6a55d4bf41a9a47d9872d7a78da31e73";
+      };
+    };
     "asciidoctor.js-1.5.9" = {
       name = "asciidoctor.js";
       packageName = "asciidoctor.js";
@@ -6610,22 +7753,13 @@ let
         sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
       };
     };
-    "asn1.js-4.10.1" = {
-      name = "asn1.js";
-      packageName = "asn1.js";
-      version = "4.10.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz";
-        sha512 = "p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==";
-      };
-    };
-    "asn1.js-5.3.0" = {
+    "asn1.js-5.4.1" = {
       name = "asn1.js";
       packageName = "asn1.js";
-      version = "5.3.0";
+      version = "5.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/asn1.js/-/asn1.js-5.3.0.tgz";
-        sha512 = "WHnQJFcOrIWT1RLOkFFBQkFVvyt9BPOOrH+Dp152Zk4R993rSzXUGPmkybIcUFhHE2d/iHH+nCaOWVCDbO8fgA==";
+        url = "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz";
+        sha512 = "+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==";
       };
     };
     "assert-1.5.0" = {
@@ -6700,6 +7834,15 @@ let
         sha512 = "zXSoVaMrf2R+r+ISid5/9a8SXm1LLdkhHzh6pSRhj9jklzruOOl1hva1YmFT33wAstg/f9ZndJAlq1BSrFLSGA==";
       };
     };
+    "ast-types-0.12.1" = {
+      name = "ast-types";
+      packageName = "ast-types";
+      version = "0.12.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ast-types/-/ast-types-0.12.1.tgz";
+        sha512 = "H2izJAyT2xwew4TxShpmxe6f9R5hHgJQy1QloLiUC2yrJMtyraBWNJL7903rpeCY9keNUipORR/zIUC2XcYKng==";
+      };
+    };
     "ast-types-0.13.3" = {
       name = "ast-types";
       packageName = "ast-types";
@@ -6709,6 +7852,24 @@ let
         sha512 = "XTZ7xGML849LkQP86sWdQzfhwbt3YwIO6MqbX9mUNYY98VKaaVZP7YNNm70IpwecbkkxmfC5IYAzOQ/2p29zRA==";
       };
     };
+    "ast-types-0.14.1" = {
+      name = "ast-types";
+      packageName = "ast-types";
+      version = "0.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ast-types/-/ast-types-0.14.1.tgz";
+        sha512 = "pfSiukbt23P1qMhNnsozLzhMLBs7EEeXqPyvPmnuZM+RMfwfqwDbSVKYflgGuVI7/VehR4oMks0igzdNAg4VeQ==";
+      };
+    };
+    "ast-types-0.14.2" = {
+      name = "ast-types";
+      packageName = "ast-types";
+      version = "0.14.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ast-types/-/ast-types-0.14.2.tgz";
+        sha512 = "O0yuUDnZeQDL+ncNGlJ78BiO4jnYI3bvMsD5prT0/nsgijG/LpNBIr63gTjVTNsiGkgQhiyCShTgxt8oXOrklA==";
+      };
+    };
     "ast-types-0.9.6" = {
       name = "ast-types";
       packageName = "ast-types";
@@ -6970,13 +8131,13 @@ let
         sha512 = "TG+5YFiaKQ6CZiSQsosGMJ/IJzwMZ4V/rSdEXlD6+DwKyv8OyeUcprq34kp4yuS6bfQYXhxBC2Vm8PWo+iKBGQ==";
       };
     };
-    "atomic-file-2.0.1" = {
+    "atomic-file-2.1.1" = {
       name = "atomic-file";
       packageName = "atomic-file";
-      version = "2.0.1";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/atomic-file/-/atomic-file-2.0.1.tgz";
-        sha512 = "9JCWojeLDF8UhEv2UJlLlPGsLEs+EBnfB+kOhsvmFI2QilVrnIsAwr7YnF8lLEVuxB+HxFhvGK+ax0Y8Eh/BKA==";
+        url = "https://registry.npmjs.org/atomic-file/-/atomic-file-2.1.1.tgz";
+        sha512 = "Eh6pW+fRC2/1RxPq3hO8+PkZKv+wujzKky2MP/n69eC8yMkbNFfuEb/riZHqf13M7gr6Hvglpk/kISgBSBb6bQ==";
       };
     };
     "atomic-sleep-1.0.0" = {
@@ -6988,6 +8149,15 @@ let
         sha512 = "kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==";
       };
     };
+    "atomically-1.3.2" = {
+      name = "atomically";
+      packageName = "atomically";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/atomically/-/atomically-1.3.2.tgz";
+        sha512 = "MAiqx5ir1nOoMeG2vLXJnj4oFROJYB1hMqa2aAo6GQVIkPdkIcrq9W9SR0OaRtvEowO7Y2bsXqKFuDMTO4iOAQ==";
+      };
+    };
     "attach-ware-1.1.1" = {
       name = "attach-ware";
       packageName = "attach-ware";
@@ -7024,13 +8194,13 @@ let
         sha512 = "Iq8TRIB+/9eQ8rbGhcP7ct5cYb/3qjNYAR2SnzLCEcwF6rvVOax8+9+fccgXk4bEhQGjOZd5TLhsksmAdsbGqQ==";
       };
     };
-    "autoprefixer-9.8.0" = {
+    "autoprefixer-9.8.6" = {
       name = "autoprefixer";
       packageName = "autoprefixer";
-      version = "9.8.0";
+      version = "9.8.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.0.tgz";
-        sha512 = "D96ZiIHXbDmU02dBaemyAg53ez+6F5yZmapmgKcjm35yEe1uVDYI8hGW3VYoGRaG290ZFf91YxHrR518vC0u/A==";
+        url = "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.8.6.tgz";
+        sha512 = "XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg==";
       };
     };
     "available-typed-arrays-1.0.2" = {
@@ -7069,13 +8239,13 @@ let
         sha1 = "00f35b2d27ac91b1f0d3ef2084c98cf1d1f0adc3";
       };
     };
-    "aws-sdk-2.693.0" = {
+    "aws-sdk-2.756.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.693.0";
+      version = "2.756.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.693.0.tgz";
-        sha512 = "/0zy5IlE8wHrTXCxPYMSJGaqTKN1ulBBOSuWYeGxHU8pnTT6ZHpDdHlS83DHrVbsXnO/zq9prEf1nXRWlwgARw==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.756.0.tgz";
+        sha512 = "Hk6DzcsXq1WRg+UVHDH56iQz31kDtg/NRqtJL1A0BrZ/PtNSLTHsQQllpcAi09UxLDMzBoDXymZ8kYg0Migq8w==";
       };
     };
     "aws-sign2-0.6.0" = {
@@ -7096,13 +8266,13 @@ let
         sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
       };
     };
-    "aws4-1.10.0" = {
+    "aws4-1.10.1" = {
       name = "aws4";
       packageName = "aws4";
-      version = "1.10.0";
+      version = "1.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz";
-        sha512 = "3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==";
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz";
+        sha512 = "zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==";
       };
     };
     "axios-0.18.1" = {
@@ -7132,6 +8302,15 @@ let
         sha512 = "pMfGJ6gAQ7LRKTHgiRF+8iaUUeGAI0c8puLaqHLc7B8AR7W6GJLozK9RFeUHFjEGybC9/EB3r67WPd7e46zQ8w==";
       };
     };
+    "b24.js-1.0.3" = {
+      name = "b24.js";
+      packageName = "b24.js";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/b24.js/-/b24.js-1.0.3.tgz";
+        sha512 = "j2hHu0asf6HxacVmGJKFSsrfoG8nC0JEjujIpsmRVkr74nC6o5gs6YF6AQD3e7YyJ8PaKuA7k2uSL9A2mAG9Og==";
+      };
+    };
     "babel-code-frame-6.26.0" = {
       name = "babel-code-frame";
       packageName = "babel-code-frame";
@@ -7366,6 +8545,15 @@ let
         sha1 = "1bc6f15b87f7ab1085d42b330b717657a2156500";
       };
     };
+    "babel-plugin-styled-components-1.11.1" = {
+      name = "babel-plugin-styled-components";
+      packageName = "babel-plugin-styled-components";
+      version = "1.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-styled-components/-/babel-plugin-styled-components-1.11.1.tgz";
+        sha512 = "YwrInHyKUk1PU3avIRdiLyCpM++18Rs1NgyMXEAQC33rIXs/vro0A+stf4sT0Gf22Got+xRWB8Cm0tw+qkRzBA==";
+      };
+    };
     "babel-plugin-syntax-flow-6.18.0" = {
       name = "babel-plugin-syntax-flow";
       packageName = "babel-plugin-syntax-flow";
@@ -7375,6 +8563,15 @@ let
         sha1 = "4c3ab20a2af26aa20cd25995c398c4eb70310c8d";
       };
     };
+    "babel-plugin-syntax-jsx-6.18.0" = {
+      name = "babel-plugin-syntax-jsx";
+      packageName = "babel-plugin-syntax-jsx";
+      version = "6.18.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz";
+        sha1 = "0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946";
+      };
+    };
     "babel-plugin-transform-flow-strip-types-6.22.0" = {
       name = "babel-plugin-transform-flow-strip-types";
       packageName = "babel-plugin-transform-flow-strip-types";
@@ -7483,13 +8680,22 @@ let
         sha1 = "be241ca81404030678b748717322b89d0c8fe280";
       };
     };
-    "babel-preset-current-node-syntax-0.1.2" = {
+    "babel-polyfill-6.23.0" = {
+      name = "babel-polyfill";
+      packageName = "babel-polyfill";
+      version = "6.23.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz";
+        sha1 = "8364ca62df8eafb830499f699177466c3b03499d";
+      };
+    };
+    "babel-preset-current-node-syntax-0.1.3" = {
       name = "babel-preset-current-node-syntax";
       packageName = "babel-preset-current-node-syntax";
-      version = "0.1.2";
+      version = "0.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz";
-        sha512 = "u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw==";
+        url = "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz";
+        sha512 = "uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ==";
       };
     };
     "babel-preset-jest-25.5.0" = {
@@ -7780,6 +8986,15 @@ let
         sha512 = "taA5bCTfXe7FUjKroKky9EXpdhkVvhE5owfxfLYodbrAR1Ul3juLmIQmIQBK4L9a5BuUcE6cqmwT+Da20lF9tg==";
       };
     };
+    "bcrypt-3.0.8" = {
+      name = "bcrypt";
+      packageName = "bcrypt";
+      version = "3.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bcrypt/-/bcrypt-3.0.8.tgz";
+        sha512 = "jKV6RvLhI36TQnPDvUFqBEnGX9c8dRRygKxCZu7E+MgLfKZbmmXL8a7/SFFOyHoPNX9nV81cKRC5tbQfvEQtpw==";
+      };
+    };
     "bcrypt-nodejs-0.0.3" = {
       name = "bcrypt-nodejs";
       packageName = "bcrypt-nodejs";
@@ -7879,24 +9094,6 @@ let
         sha1 = "40866b9e1b9e0b55b481894311e68faffaebc522";
       };
     };
-    "better-curry-1.6.0" = {
-      name = "better-curry";
-      packageName = "better-curry";
-      version = "1.6.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/better-curry/-/better-curry-1.6.0.tgz";
-        sha1 = "38f716b24c8cee07a262abc41c22c314e20e3869";
-      };
-    };
-    "bezier-js-2.6.1" = {
-      name = "bezier-js";
-      packageName = "bezier-js";
-      version = "2.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bezier-js/-/bezier-js-2.6.1.tgz";
-        sha512 = "jelZM33eNzcZ9snJ/5HqJLw3IzXvA8RFcBjkdOB8SDYyOvW8Y2tTosojAiBTnD1MhbHoWUYNbxUXxBl61TxbRg==";
-      };
-    };
     "biased-opener-0.2.8" = {
       name = "biased-opener";
       packageName = "biased-opener";
@@ -7933,6 +9130,15 @@ let
         sha512 = "vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==";
       };
     };
+    "bignumber.js-9.0.0" = {
+      name = "bignumber.js";
+      packageName = "bignumber.js";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.0.tgz";
+        sha512 = "t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==";
+      };
+    };
     "bigspinner-3.1.0" = {
       name = "bigspinner";
       packageName = "bigspinner";
@@ -7960,6 +9166,15 @@ let
         sha1 = "e24ebfa6b63cb0387c5fc174f86e5cc812ca7cc9";
       };
     };
+    "binary-0.3.0" = {
+      name = "binary";
+      packageName = "binary";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz";
+        sha1 = "9f60553bc5ce8c3386f3b553cff47462adecaa79";
+      };
+    };
     "binary-extensions-1.13.1" = {
       name = "binary-extensions";
       packageName = "binary-extensions";
@@ -7969,13 +9184,13 @@ let
         sha512 = "Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==";
       };
     };
-    "binary-extensions-2.0.0" = {
+    "binary-extensions-2.1.0" = {
       name = "binary-extensions";
       packageName = "binary-extensions";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz";
-        sha512 = "Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==";
+        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz";
+        sha512 = "1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==";
       };
     };
     "binary-search-1.3.6" = {
@@ -7996,15 +9211,6 @@ let
         sha512 = "nAihlQsYGyc5Bwq6+EsubvANYGExeJKHDO3RjnvwU042fawQTQfM3Kxn7IHUXQOz4bzfwsGYYHGSvXyW4zOGLg==";
       };
     };
-    "binaryheap-0.0.3" = {
-      name = "binaryheap";
-      packageName = "binaryheap";
-      version = "0.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/binaryheap/-/binaryheap-0.0.3.tgz";
-        sha1 = "0d6136c84e9f1a5a90c0b97178c3e00df59820d6";
-      };
-    };
     "bindings-1.2.1" = {
       name = "bindings";
       packageName = "bindings";
@@ -8077,13 +9283,13 @@ let
         sha512 = "fvb6M58Ceiv/S94nu6zeaiMoJvUYOeIqRbgaClm+kJTzCAqJPtAR/31pXNYB5iEReOoKqQB5zY33gY0W6ZRWQQ==";
       };
     };
-    "bittorrent-peerid-1.3.2" = {
+    "bittorrent-peerid-1.3.3" = {
       name = "bittorrent-peerid";
       packageName = "bittorrent-peerid";
-      version = "1.3.2";
+      version = "1.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bittorrent-peerid/-/bittorrent-peerid-1.3.2.tgz";
-        sha512 = "3xPhNfklf4xzxFVw9Y7W5dnGNhubVF0r8BK3imIsB6E3aDA4d6WhsceK1Yusos0TiiB9QZrdCsVXVqs26sFMxw==";
+        url = "https://registry.npmjs.org/bittorrent-peerid/-/bittorrent-peerid-1.3.3.tgz";
+        sha512 = "tSh9HdQgwyEAfo1jzoGEis6o/zs4CcdRTchG93XVl5jct+DCAN90M5MVUV76k2vJ9Xg3GAzLB5NLsY/vnVTh6w==";
       };
     };
     "bittorrent-protocol-3.1.1" = {
@@ -8113,31 +9319,22 @@ let
         sha512 = "5LhLQeGxdVFumJTbveJS16Rc+Vzh/nbC6o80UMj6ZRvSkiVkk+4L782OMYI0VG1JTfUxiRFP4f+CZBFyuclLBg==";
       };
     };
-    "bl-0.8.2" = {
-      name = "bl";
-      packageName = "bl";
-      version = "0.8.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz";
-        sha1 = "c9b6bca08d1bc2ea00fc8afb4f1a5fd1e1c66e4e";
-      };
-    };
-    "bl-1.2.2" = {
+    "bl-1.2.3" = {
       name = "bl";
       packageName = "bl";
-      version = "1.2.2";
+      version = "1.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz";
-        sha512 = "e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==";
+        url = "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz";
+        sha512 = "pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==";
       };
     };
-    "bl-4.0.2" = {
+    "bl-4.0.3" = {
       name = "bl";
       packageName = "bl";
-      version = "4.0.2";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bl/-/bl-4.0.2.tgz";
-        sha512 = "j4OH8f6Qg2bGuWfRiltT2HYGx0e1QcBTrK9KAHNMwMZdQnDZFk0ZSYIpADjYCB3U12nicC5tVJwSIhwOWjb4RQ==";
+        url = "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz";
+        sha512 = "fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==";
       };
     };
     "blake2b-2.1.3" = {
@@ -8257,15 +9454,6 @@ let
         sha1 = "2f7b4ec80216328a9fddebdf69c8d4942feff7d8";
       };
     };
-    "bluebird-2.9.9" = {
-      name = "bluebird";
-      packageName = "bluebird";
-      version = "2.9.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bluebird/-/bluebird-2.9.9.tgz";
-        sha1 = "61a26904d43d7f6b19dff7ed917dbc92452ad6d3";
-      };
-    };
     "bluebird-3.4.7" = {
       name = "bluebird";
       packageName = "bluebird";
@@ -8284,13 +9472,13 @@ let
         sha512 = "XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==";
       };
     };
-    "blueimp-md5-2.14.0" = {
+    "blueimp-md5-2.17.0" = {
       name = "blueimp-md5";
       packageName = "blueimp-md5";
-      version = "2.14.0";
+      version = "2.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.14.0.tgz";
-        sha512 = "fhX8JsIgugJ39g9MUJ4Y0S+WYd/1HATNVzW4nEVknP5uJU1mA7LZCV3OuVH9OvxpuYQXu6ttst0IYIlAyVfBQg==";
+        url = "https://registry.npmjs.org/blueimp-md5/-/blueimp-md5-2.17.0.tgz";
+        sha512 = "x5PKJHY5rHQYaADj6NwPUR2QRCUVSggPzrUKkeENpj871o9l9IefJbO2jkT5UvYykeOK9dx0VmkIo6dZ+vThYw==";
       };
     };
     "bn.js-4.11.9" = {
@@ -8302,13 +9490,13 @@ let
         sha512 = "E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==";
       };
     };
-    "bn.js-5.1.2" = {
+    "bn.js-5.1.3" = {
       name = "bn.js";
       packageName = "bn.js";
-      version = "5.1.2";
+      version = "5.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/bn.js/-/bn.js-5.1.2.tgz";
-        sha512 = "40rZaf3bUNKTVYu9sIeeEGOg7g14Yvnj9kH7b50EiwX0Q7A6umbvfI5tvHaOERH0XigqKkfLkFQxzb4e6CIXnA==";
+        url = "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz";
+        sha512 = "GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==";
       };
     };
     "bncode-0.2.3" = {
@@ -8392,6 +9580,15 @@ let
         sha1 = "39c8918ceff5799f83f9492a848f625add0c766f";
       };
     };
+    "bootstrap-3.4.1" = {
+      name = "bootstrap";
+      packageName = "bootstrap";
+      version = "3.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz";
+        sha512 = "yN5oZVmRCwe5aKwzRj6736nSmKDX7pLYwsXiCj/EYmo16hODaBiT4En5btW/jhBF/seV+XMx3aYwukYC3A49DA==";
+      };
+    };
     "bootstrap-vue-helper-json-1.1.1" = {
       name = "bootstrap-vue-helper-json";
       packageName = "bootstrap-vue-helper-json";
@@ -8410,15 +9607,6 @@ let
         sha1 = "b4a0a5a839a406454af0fe05a8b91a7a766a54e2";
       };
     };
-    "bottleneck-1.5.3" = {
-      name = "bottleneck";
-      packageName = "bottleneck";
-      version = "1.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bottleneck/-/bottleneck-1.5.3.tgz";
-        sha1 = "55fa64920d9670087d44150404525d59f9511c20";
-      };
-    };
     "boundary-1.0.1" = {
       name = "boundary";
       packageName = "boundary";
@@ -8509,6 +9697,15 @@ let
         sha1 = "d60d5dcc20cba6dc7e1f299b35d3e1f95dafbae6";
       };
     };
+    "bplist-parser-0.2.0" = {
+      name = "bplist-parser";
+      packageName = "bplist-parser";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.2.0.tgz";
+        sha512 = "z0M+byMThzQmD9NILRniCUXYsYpjwnlO8N5uCFaCqIOpqRsJCrQL9NK3JsD67CN5a08nF5oIL2bD6loTdHOuKw==";
+      };
+    };
     "brace-expansion-1.1.11" = {
       name = "brace-expansion";
       packageName = "brace-expansion";
@@ -8617,13 +9814,13 @@ let
         sha512 = "9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==";
       };
     };
-    "browser-resolve-1.11.3" = {
+    "browser-resolve-2.0.0" = {
       name = "browser-resolve";
       packageName = "browser-resolve";
-      version = "1.11.3";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz";
-        sha512 = "exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==";
+        url = "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz";
+        sha512 = "7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==";
       };
     };
     "browser-stdout-1.3.1" = {
@@ -8635,13 +9832,13 @@ let
         sha512 = "qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==";
       };
     };
-    "browserify-16.5.1" = {
+    "browserify-16.5.2" = {
       name = "browserify";
       packageName = "browserify";
-      version = "16.5.1";
+      version = "16.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserify/-/browserify-16.5.1.tgz";
-        sha512 = "EQX0h59Pp+0GtSRb5rL6OTfrttlzv+uyaUVlK6GX3w11SQ0jKPKyjC/54RhPR2ib2KmfcELM06e8FxcI5XNU2A==";
+        url = "https://registry.npmjs.org/browserify/-/browserify-16.5.2.tgz";
+        sha512 = "TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g==";
       };
     };
     "browserify-aes-1.2.0" = {
@@ -8707,13 +9904,13 @@ let
         sha1 = "21e0abfaf6f2029cf2fafb133567a701d4135524";
       };
     };
-    "browserify-sign-4.2.0" = {
+    "browserify-sign-4.2.1" = {
       name = "browserify-sign";
       packageName = "browserify-sign";
-      version = "4.2.0";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.0.tgz";
-        sha512 = "hEZC1KEeYuoHRqhGhTy6gWrpJA3ZDjFWv0DE61643ZnOXAKJb3u7yWcrU0mMc9SwAqK1n7myPGndkp0dFG7NFA==";
+        url = "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz";
+        sha512 = "/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==";
       };
     };
     "browserify-zlib-0.1.4" = {
@@ -8743,13 +9940,13 @@ let
         sha512 = "yWu5cXT7Av6mVwzWc8lMsJMHWn4xyjSuGYi4IozbVTLUOEYPSagUB8kiMDUHA1fS3zjr8nkxkn9jdvug4BBRmA==";
       };
     };
-    "browserslist-4.12.0" = {
+    "browserslist-4.14.3" = {
       name = "browserslist";
       packageName = "browserslist";
-      version = "4.12.0";
+      version = "4.14.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.12.0.tgz";
-        sha512 = "UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg==";
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.14.3.tgz";
+        sha512 = "GcZPC5+YqyPO4SFnz48/B0YaCwS47Q9iPChRGi6t7HhflKBcINzFrJvRfC+jp30sRMKxF+d4EHGs27Z0XP1NaQ==";
       };
     };
     "bser-2.1.1" = {
@@ -8932,6 +10129,15 @@ let
         sha512 = "4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==";
       };
     };
+    "buffer-indexof-polyfill-1.0.2" = {
+      name = "buffer-indexof-polyfill";
+      packageName = "buffer-indexof-polyfill";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz";
+        sha512 = "I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==";
+      };
+    };
     "buffer-queue-1.0.0" = {
       name = "buffer-queue";
       packageName = "buffer-queue";
@@ -8941,6 +10147,15 @@ let
         sha1 = "3d253fe2f0ab70e851d728712e8cd6f914a8c002";
       };
     };
+    "buffer-writer-2.0.0" = {
+      name = "buffer-writer";
+      packageName = "buffer-writer";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz";
+        sha512 = "a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==";
+      };
+    };
     "buffer-xor-1.0.3" = {
       name = "buffer-xor";
       packageName = "buffer-xor";
@@ -8950,15 +10165,6 @@ let
         sha1 = "26e61ed1422fb70dd42e6e36729ed51d855fe8d9";
       };
     };
-    "buffercursor-0.0.12" = {
-      name = "buffercursor";
-      packageName = "buffercursor";
-      version = "0.0.12";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/buffercursor/-/buffercursor-0.0.12.tgz";
-        sha1 = "78a9a7f4343ae7d820a8999acc80de591e25a779";
-      };
-    };
     "buffers-0.1.1" = {
       name = "buffers";
       packageName = "buffers";
@@ -8977,6 +10183,15 @@ let
         sha512 = "HaJnVuslRF4g2kSDeyl++AaVizoitCpL9PglzCYwy0uHHyvWerfvEb8jWmYbF1z4kiVFolGomnxSGl+GUQp2jg==";
       };
     };
+    "bufferstreams-2.0.1" = {
+      name = "bufferstreams";
+      packageName = "bufferstreams";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bufferstreams/-/bufferstreams-2.0.1.tgz";
+        sha512 = "ZswyIoBfFb3cVDsnZLLj2IDJ/0ppYdil/v2EGlZXvoefO689FokEmFEldhN5dV7R2QBxFneqTJOMIpfqhj+n0g==";
+      };
+    };
     "bufferutil-1.3.0" = {
       name = "bufferutil";
       packageName = "bufferutil";
@@ -9076,6 +10291,15 @@ let
         sha1 = "f150f0f6748abdd72aeae84f04403be2ef113797";
       };
     };
+    "bunyan-1.8.14" = {
+      name = "bunyan";
+      packageName = "bunyan";
+      version = "1.8.14";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bunyan/-/bunyan-1.8.14.tgz";
+        sha512 = "LlahJUxXzZLuw/hetUQJmRgZ1LF6+cr5TPpRj6jf327AsiIq2jhYEH4oqUUkVKTor+9w2BT3oxVwhzE5lw9tcg==";
+      };
+    };
     "bunyan-syslog-udp-0.2.0" = {
       name = "bunyan-syslog-udp";
       packageName = "bunyan-syslog-udp";
@@ -9184,24 +10408,6 @@ let
         sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
       };
     };
-    "bytewise-1.1.0" = {
-      name = "bytewise";
-      packageName = "bytewise";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz";
-        sha1 = "1d13cbff717ae7158094aa881b35d081b387253e";
-      };
-    };
-    "bytewise-core-1.2.3" = {
-      name = "bytewise-core";
-      packageName = "bytewise-core";
-      version = "1.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz";
-        sha1 = "3fb410c7e91558eb1ab22a82834577aa6bd61d42";
-      };
-    };
     "cacache-12.0.4" = {
       name = "cacache";
       packageName = "cacache";
@@ -9211,13 +10417,13 @@ let
         sha512 = "a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==";
       };
     };
-    "cacache-15.0.4" = {
+    "cacache-15.0.5" = {
       name = "cacache";
       packageName = "cacache";
-      version = "15.0.4";
+      version = "15.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cacache/-/cacache-15.0.4.tgz";
-        sha512 = "YlnKQqTbD/6iyoJvEY3KJftjrdBYroCbxxYXzhOzsFLWlp6KX4BOlEf4mTx0cMUfVaTS3ENL2QtDWeRYoGLkkw==";
+        url = "https://registry.npmjs.org/cacache/-/cacache-15.0.5.tgz";
+        sha512 = "lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A==";
       };
     };
     "cache-base-1.0.1" = {
@@ -9238,13 +10444,13 @@ let
         sha512 = "7YKEapH+2Uikde8hySyfobXBqPKULDyHNl/lhKm7cKf/GJFdG/tU/WpLrOg2y9aUrQrWUilYqawFIiGJPS6gDA==";
       };
     };
-    "cacheable-lookup-2.0.1" = {
+    "cacheable-lookup-5.0.3" = {
       name = "cacheable-lookup";
       packageName = "cacheable-lookup";
-      version = "2.0.1";
+      version = "5.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-2.0.1.tgz";
-        sha512 = "EMMbsiOTcdngM/K6gV/OxF2x0t07+vMOWxZNSCRQMjO2MY2nhZQ6OYhOOpyQrbhqsgtvKGI7hcq6xjnA92USjg==";
+        url = "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz";
+        sha512 = "W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w==";
       };
     };
     "cacheable-request-2.1.4" = {
@@ -9481,6 +10687,15 @@ let
         sha512 = "YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==";
       };
     };
+    "camelize-1.0.0" = {
+      name = "camelize";
+      packageName = "camelize";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelize/-/camelize-1.0.0.tgz";
+        sha1 = "164a5483e630fa4321e5af07020e531831b2609b";
+      };
+    };
     "caniuse-api-3.0.0" = {
       name = "caniuse-api";
       packageName = "caniuse-api";
@@ -9490,13 +10705,31 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001081" = {
+    "caniuse-lite-1.0.30001133" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001081";
+      version = "1.0.30001133";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001133.tgz";
+        sha512 = "s3XAUFaC/ntDb1O3lcw9K8MPeOW7KO3z9+GzAoBxfz1B0VdacXPMKgFUtG4KIsgmnbexmi013s9miVu4h+qMHw==";
+      };
+    };
+    "canvas-2.6.1" = {
+      name = "canvas";
+      packageName = "canvas";
+      version = "2.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz";
+        sha512 = "S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA==";
+      };
+    };
+    "capital-case-1.0.3" = {
+      name = "capital-case";
+      packageName = "capital-case";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001081.tgz";
-        sha512 = "iZdh3lu09jsUtLE6Bp8NAbJskco4Y3UDtkR3GTCJGsbMowBU5IWDFF79sV2ws7lSqTzWyKazxam2thasHymENQ==";
+        url = "https://registry.npmjs.org/capital-case/-/capital-case-1.0.3.tgz";
+        sha512 = "OlUSJpUr7SY0uZFOxcwnDOU7/MpHlKTZx2mqnDYQFrDudXLFm0JJ9wr/l4csB+rh2Ug0OPuoSO53PqiZBqno9A==";
       };
     };
     "capture-exit-2.0.0" = {
@@ -9526,15 +10759,6 @@ let
         sha1 = "7cc1055d822d212954d07b085dea251cc7bc5505";
       };
     };
-    "caryll-shapeops-0.3.1" = {
-      name = "caryll-shapeops";
-      packageName = "caryll-shapeops";
-      version = "0.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/caryll-shapeops/-/caryll-shapeops-0.3.1.tgz";
-        sha512 = "3TdH6DZGL08S6qEvCZLNaOHyFvmzQts8m+TyYEvc6/PiI+XgX5mIag1/CKczIM8e2QtDr8JKW8foo4VNOM8/Og==";
-      };
-    };
     "caseless-0.11.0" = {
       name = "caseless";
       packageName = "caseless";
@@ -9625,6 +10849,24 @@ let
         sha512 = "azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==";
       };
     };
+    "chainsaw-0.0.9" = {
+      name = "chainsaw";
+      packageName = "chainsaw";
+      version = "0.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chainsaw/-/chainsaw-0.0.9.tgz";
+        sha1 = "11a05102d1c4c785b6d0415d336d5a3a1612913e";
+      };
+    };
+    "chainsaw-0.1.0" = {
+      name = "chainsaw";
+      packageName = "chainsaw";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz";
+        sha1 = "5eab50b28afe58074d0d58291388828b5e5fbc98";
+      };
+    };
     "chalk-0.4.0" = {
       name = "chalk";
       packageName = "chalk";
@@ -9715,13 +10957,13 @@ let
         sha512 = "g9YLQVHVZS/3F+zIicfB58vjcxopvYQRp7xHzvyDFDhXH1aRZI/JhwSAO0X5qYiQluoGnaNAU6wByD2KTxJN1A==";
       };
     };
-    "change-case-3.1.0" = {
+    "change-case-4.1.1" = {
       name = "change-case";
       packageName = "change-case";
-      version = "3.1.0";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/change-case/-/change-case-3.1.0.tgz";
-        sha512 = "2AZp7uJZbYEzRPsFoa+ijKdvp9zsrnnt6+yFokfwEpeJm0xuJDVoxiRCAaTzyJND8GJkofo2IcKWaUZ/OECVzw==";
+        url = "https://registry.npmjs.org/change-case/-/change-case-4.1.1.tgz";
+        sha512 = "qRlUWn/hXnX1R1LBDF/RelJLiqNjKjUqlmuBVSEIyye8kq49CXqkZWKmi8XeUAdDXWFOcGLUMZ+aHn3Q5lzUXw==";
       };
     };
     "character-entities-1.2.4" = {
@@ -9814,6 +11056,33 @@ let
         sha512 = "6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg==";
       };
     };
+    "chart.js-2.9.3" = {
+      name = "chart.js";
+      packageName = "chart.js";
+      version = "2.9.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chart.js/-/chart.js-2.9.3.tgz";
+        sha512 = "+2jlOobSk52c1VU6fzkh3UwqHMdSlgH1xFv9FKMqHiNCpXsGPQa/+81AFa+i3jZ253Mq9aAycPwDjnn1XbRNNw==";
+      };
+    };
+    "chartjs-color-2.4.1" = {
+      name = "chartjs-color";
+      packageName = "chartjs-color";
+      version = "2.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chartjs-color/-/chartjs-color-2.4.1.tgz";
+        sha512 = "haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w==";
+      };
+    };
+    "chartjs-color-string-0.6.0" = {
+      name = "chartjs-color-string";
+      packageName = "chartjs-color-string";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz";
+        sha512 = "TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A==";
+      };
+    };
     "charwise-3.0.1" = {
       name = "charwise";
       packageName = "charwise";
@@ -9877,6 +11146,15 @@ let
         sha512 = "0td5ijfUPuubwLUu0OBoe98gZj8C/AA+RW3v67GPlGOrvxWjZmBXiBCRU+I8VEiNyJzjth40POfHiz2RB3gImA==";
       };
     };
+    "child-process-1.0.2" = {
+      name = "child-process";
+      packageName = "child-process";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/child-process/-/child-process-1.0.2.tgz";
+        sha1 = "98974dc7ed1ee4c6229f8e305fa7313a6885a7f2";
+      };
+    };
     "child-process-ext-2.1.1" = {
       name = "child-process-ext";
       packageName = "child-process-ext";
@@ -9895,13 +11173,13 @@ let
         sha1 = "4730a11ef610fad450b8f223c79d31d7bdad8074";
       };
     };
-    "chloride-2.2.14" = {
+    "chloride-2.3.0" = {
       name = "chloride";
       packageName = "chloride";
-      version = "2.2.14";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chloride/-/chloride-2.2.14.tgz";
-        sha512 = "Jp3kpDIO4MlcJCFi4jER9P7k3sAVvIwbe4QJtM9Nkp43e/GQ/98HU1wJS6NdU6cbzfGrKWmMdRB+VNRrCynzfw==";
+        url = "https://registry.npmjs.org/chloride/-/chloride-2.3.0.tgz";
+        sha512 = "9jcavUx9ZNW9hxkG24rS9QddHpOqLAZqcb5SRbABRa8NKcplBKKcZfNM5LMa3DQ/VfXBQzcLDjgSo3uHA1ibZg==";
       };
     };
     "chloride-test-1.2.4" = {
@@ -9958,13 +11236,13 @@ let
         sha512 = "dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==";
       };
     };
-    "chokidar-3.4.0" = {
+    "chokidar-3.4.2" = {
       name = "chokidar";
       packageName = "chokidar";
-      version = "3.4.0";
+      version = "3.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz";
-        sha512 = "aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==";
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz";
+        sha512 = "IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==";
       };
     };
     "chownr-0.0.2" = {
@@ -10021,13 +11299,13 @@ let
         sha512 = "HqsYJgIc8ljJJOqOzLphjAs79EUuWSX3nzZi2LNkzlw3GIzAeZbaSektC8iT/tKvLqZq8yl1GJu5o6doA4TRbg==";
       };
     };
-    "chrome-launcher-0.13.1" = {
+    "chrome-launcher-0.13.4" = {
       name = "chrome-launcher";
       packageName = "chrome-launcher";
-      version = "0.13.1";
+      version = "0.13.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.13.1.tgz";
-        sha512 = "q8UiCNAknw6kCUvCVBTAEw1BwT0vaxabCrSjN3B/NWohp12YBD9+DalymYElSoKRD4KpVSu4CCl0us4v/J81Sg==";
+        url = "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.13.4.tgz";
+        sha512 = "nnzXiDbGKjDSK6t2I+35OAPBy5Pw/39bgkb/ZAFwMhwJbdYBp6aH+vW28ZgtjdU890Q7D+3wN/tB8N66q5Gi2A==";
       };
     };
     "chrome-net-3.3.4" = {
@@ -10093,13 +11371,13 @@ let
         sha1 = "04a106672c18b085ab774d983dfa3ea138f22205";
       };
     };
-    "chunk-store-stream-4.1.0" = {
+    "chunk-store-stream-4.1.1" = {
       name = "chunk-store-stream";
       packageName = "chunk-store-stream";
-      version = "4.1.0";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chunk-store-stream/-/chunk-store-stream-4.1.0.tgz";
-        sha512 = "GjkZ16bFKMFnb8LrGZXAPeRoLXZTLu9ges6LCErJe28bMp6zKLxjWuJ7TYzR0jWq9nwo58hXG3BXZYy66Vze0Q==";
+        url = "https://registry.npmjs.org/chunk-store-stream/-/chunk-store-stream-4.1.1.tgz";
+        sha512 = "2nVS+VLMCHNW+S1Y3bOlCtUL4ABPA4zeAcP8E/m15AAc+8fw1elEKIhs/Wg5EZNSfqIk24kUd9rvewmGNPehGQ==";
       };
     };
     "ci-info-1.6.0" = {
@@ -10174,6 +11452,24 @@ let
         sha512 = "qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==";
       };
     };
+    "classnames-2.2.6" = {
+      name = "classnames";
+      packageName = "classnames";
+      version = "2.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz";
+        sha512 = "JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==";
+      };
+    };
+    "cldr-5.7.0" = {
+      name = "cldr";
+      packageName = "cldr";
+      version = "5.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cldr/-/cldr-5.7.0.tgz";
+        sha512 = "Pyoh0kwXJIUvbAvQoQqKIr0pKWwWfkcYCIDKWmVIxJ9HftSsg57AqyfW1EzWRcP4nJj40WX4vB/lXQ+Uw4NbNA==";
+      };
+    };
     "clean-css-3.4.28" = {
       name = "clean-css";
       packageName = "clean-css";
@@ -10183,15 +11479,6 @@ let
         sha1 = "bf1945e82fc808f55695e6ddeaec01400efd03ff";
       };
     };
-    "clean-css-4.2.1" = {
-      name = "clean-css";
-      packageName = "clean-css";
-      version = "4.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/clean-css/-/clean-css-4.2.1.tgz";
-        sha512 = "4ZxI6dy4lrY6FHzfiy1aEOXgu4LIsW2MhwG0VBKdcoGoH/XLFgaHSdLTGr4O8Be6A8r3MOphEiI8Gc1n0ecf3g==";
-      };
-    };
     "clean-css-4.2.3" = {
       name = "clean-css";
       packageName = "clean-css";
@@ -10201,6 +11488,15 @@ let
         sha512 = "VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==";
       };
     };
+    "clean-deep-3.4.0" = {
+      name = "clean-deep";
+      packageName = "clean-deep";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clean-deep/-/clean-deep-3.4.0.tgz";
+        sha512 = "Lo78NV5ItJL/jl+B5w0BycAisaieJGXK1qYi/9m4SjR8zbqmrUtO7Yhro40wEShGmmxs/aJLI/A+jNhdkXK8mw==";
+      };
+    };
     "clean-git-ref-2.0.1" = {
       name = "clean-git-ref";
       packageName = "clean-git-ref";
@@ -10219,22 +11515,22 @@ let
         sha512 = "eDu0vN44ZBvoEU0oRIKwWPIccGWXtdnUNmKJuTukZ1de00Uoqavb5pfIMKiC7/r+knQ5RbvAjGuVZiN3JwJL4Q==";
       };
     };
-    "clean-stack-1.3.0" = {
+    "clean-stack-2.2.0" = {
       name = "clean-stack";
       packageName = "clean-stack";
-      version = "1.3.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/clean-stack/-/clean-stack-1.3.0.tgz";
-        sha1 = "9e821501ae979986c46b1d66d2d432db2fd4ae31";
+        url = "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz";
+        sha512 = "4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==";
       };
     };
-    "clean-stack-2.2.0" = {
+    "clean-stack-3.0.0" = {
       name = "clean-stack";
       packageName = "clean-stack";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz";
-        sha512 = "4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==";
+        url = "https://registry.npmjs.org/clean-stack/-/clean-stack-3.0.0.tgz";
+        sha512 = "RHxtgFvXsRQ+1AM7dlozLDY7ssmvUUh0XEnfnyhYgJTO6beNZHBogiaCwGM9Q3rFrUkYxOtsZRC0zAturg5bjg==";
       };
     };
     "cli-1.0.1" = {
@@ -10255,13 +11551,13 @@ let
         sha1 = "4fa917c3e59c94a004cd61f8ee509da651687143";
       };
     };
-    "cli-boxes-2.2.0" = {
+    "cli-boxes-2.2.1" = {
       name = "cli-boxes";
       packageName = "cli-boxes";
-      version = "2.2.0";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz";
-        sha512 = "gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==";
+        url = "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz";
+        sha512 = "y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==";
       };
     };
     "cli-color-0.1.7" = {
@@ -10345,13 +11641,13 @@ let
         sha512 = "1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==";
       };
     };
-    "cli-spinners-2.3.0" = {
+    "cli-spinners-2.4.0" = {
       name = "cli-spinners";
       packageName = "cli-spinners";
-      version = "2.3.0";
+      version = "2.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.3.0.tgz";
-        sha512 = "Xs2Hf2nzrvJMFKimOR7YR0QwZ8fc0u98kdtwN1eNAZzNQgH3vK2pXzff6GJtKh7S5hoJ87ECiAiZFS2fb5Ii2w==";
+        url = "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.4.0.tgz";
+        sha512 = "sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA==";
       };
     };
     "cli-table-0.3.1" = {
@@ -10408,13 +11704,22 @@ let
         sha512 = "/1owvF0SZ5Gn54cgrikJ0QskgTzeg30HGjkmjFoaHDJzAqFpuX1DBpFR8aLvsE1J5s9MgeYRENQK4BFwOag5VA==";
       };
     };
-    "cli-ux-5.4.6" = {
+    "cli-ux-5.4.10" = {
       name = "cli-ux";
       packageName = "cli-ux";
-      version = "5.4.6";
+      version = "5.4.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cli-ux/-/cli-ux-5.4.6.tgz";
-        sha512 = "EeiS2TzEndRVknCqE+8Ri8g0bsP617a1nq6n+3Trwft1JCDzyUNlX2J1fl7fwTgRPWtmBmiF6xIyueL5YGs65g==";
+        url = "https://registry.npmjs.org/cli-ux/-/cli-ux-5.4.10.tgz";
+        sha512 = "s48Efw04VtGyQEwXDrERobMc2DF2DyYQ+2nmNsM7clxOVDtbRI9OjbXRwPeS6G2aFuHy0bB8GUq5MzkmkYt7yw==";
+      };
+    };
+    "cli-ux-5.5.0" = {
+      name = "cli-ux";
+      packageName = "cli-ux";
+      version = "5.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-ux/-/cli-ux-5.5.0.tgz";
+        sha512 = "aXoHgEOtkem8sJmQrU/jXsojCq8uOp8++9lybCbt9mFDyPouSNawSdoPjuM00PPaSPCJThvY0VNYOQNd6gGQCA==";
       };
     };
     "cli-width-1.1.1" = {
@@ -10435,6 +11740,15 @@ let
         sha512 = "GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==";
       };
     };
+    "cli-width-3.0.0" = {
+      name = "cli-width";
+      packageName = "cli-width";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz";
+        sha512 = "FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==";
+      };
+    };
     "cliclopts-1.1.1" = {
       name = "cliclopts";
       packageName = "cliclopts";
@@ -10489,13 +11803,13 @@ let
         sha512 = "mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ==";
       };
     };
-    "clipper-lib-1.0.0" = {
+    "clipper-lib-6.4.2" = {
       name = "clipper-lib";
       packageName = "clipper-lib";
-      version = "1.0.0";
+      version = "6.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/clipper-lib/-/clipper-lib-1.0.0.tgz";
-        sha1 = "e902ceb26e28ee5cfa6014abdf790a51efff4ecb";
+        url = "https://registry.npmjs.org/clipper-lib/-/clipper-lib-6.4.2.tgz";
+        sha512 = "knglhjQX5ihNj/XCIs6zCHrTemdvHY3LPZP9XB2nq2/3igyYMFueFXtfp84baJvEE+f8pO1ZS4UVeEgmLnAprQ==";
       };
     };
     "cliss-0.0.2" = {
@@ -10588,15 +11902,6 @@ let
         sha1 = "4af2296d4a23a64168c2f5fb0a2aa65e80517000";
       };
     };
-    "clone-0.2.0" = {
-      name = "clone";
-      packageName = "clone";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/clone/-/clone-0.2.0.tgz";
-        sha1 = "c6126a90ad4f72dbf5acdb243cc37724fe93fc1f";
-      };
-    };
     "clone-1.0.4" = {
       name = "clone";
       packageName = "clone";
@@ -10687,6 +11992,15 @@ let
         sha512 = "2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==";
       };
     };
+    "clsx-1.1.1" = {
+      name = "clsx";
+      packageName = "clsx";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clsx/-/clsx-1.1.1.tgz";
+        sha512 = "6/bPho624p3S2pMyvP5kKBPXnI3ufHLObBFCfgx+LkeR5lg2XYy2hqZqUf45ypD8COn2bhgGJSUE+l5dhNBieA==";
+      };
+    };
     "cmd-shim-3.0.3" = {
       name = "cmd-shim";
       packageName = "cmd-shim";
@@ -10777,13 +12091,13 @@ let
         sha512 = "q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==";
       };
     };
-    "coc.nvim-0.0.77" = {
+    "coc.nvim-0.0.79" = {
       name = "coc.nvim";
       packageName = "coc.nvim";
-      version = "0.0.77";
+      version = "0.0.79";
       src = fetchurl {
-        url = "https://registry.npmjs.org/coc.nvim/-/coc.nvim-0.0.77.tgz";
-        sha512 = "wwn3ca7iMKuH/a6NAV7HL95xkEK5DzrKJ1dWGKBs+HZHFLhzXVYhjA0RL8x8Xf62TBEQGhH1wlKtBxkluGd1oQ==";
+        url = "https://registry.npmjs.org/coc.nvim/-/coc.nvim-0.0.79.tgz";
+        sha512 = "tge3BeOtehBouqo8sdrjRuQxsAWuwUxWJN1pTttZ8HpV+fe2fxmBE9lqrzzOlRIysBvgsZr7D0FdNfrwRwpK8A==";
       };
     };
     "code-error-fragment-0.0.230" = {
@@ -10795,6 +12109,15 @@ let
         sha512 = "cadkfKp6932H8UkhzE/gcUqhRMNf8jHzkAN7+5Myabswaghu4xABTgPHDCjW+dBAJxj/SpkTYokpzDqY4pCzQw==";
       };
     };
+    "code-excerpt-3.0.0" = {
+      name = "code-excerpt";
+      packageName = "code-excerpt";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/code-excerpt/-/code-excerpt-3.0.0.tgz";
+        sha512 = "VHNTVhd7KsLGOqfX3SyeO8RyYPMp1GJOg194VITk04WMYCv4plV68YWe6TJZxd9MhobjtpMRnVky01gqZsalaw==";
+      };
+    };
     "code-point-at-1.1.0" = {
       name = "code-point-at";
       packageName = "code-point-at";
@@ -10948,6 +12271,15 @@ let
         sha512 = "qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==";
       };
     };
+    "colorette-1.2.1" = {
+      name = "colorette";
+      packageName = "colorette";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz";
+        sha512 = "puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==";
+      };
+    };
     "colornames-1.1.1" = {
       name = "colornames";
       packageName = "colornames";
@@ -11047,15 +12379,6 @@ let
         sha1 = "a58d0df042c186fcf822a8e8015f5450d2d79a8b";
       };
     };
-    "combined-stream-0.0.7" = {
-      name = "combined-stream";
-      packageName = "combined-stream";
-      version = "0.0.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/combined-stream/-/combined-stream-0.0.7.tgz";
-        sha1 = "0137e657baa5a7541c57ac37ac5fc07d73b4dc1f";
-      };
-    };
     "combined-stream-1.0.6" = {
       name = "combined-stream";
       packageName = "combined-stream";
@@ -11218,6 +12541,15 @@ let
         sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
       };
     };
+    "commander-3.0.2" = {
+      name = "commander";
+      packageName = "commander";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz";
+        sha512 = "Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==";
+      };
+    };
     "commander-4.1.0" = {
       name = "commander";
       packageName = "commander";
@@ -11245,6 +12577,24 @@ let
         sha512 = "P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==";
       };
     };
+    "commander-6.0.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-6.0.0.tgz";
+        sha512 = "s7EA+hDtTYNhuXkTlhqew4txMZVdszBmKWSPEMxGr8ru8JXR7bLUFIAtPhcSuFdJQ0ILMxnJi8GkQL0yvDy/YA==";
+      };
+    };
+    "commander-6.1.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-6.1.0.tgz";
+        sha512 = "wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA==";
+      };
+    };
     "commandpost-1.4.0" = {
       name = "commandpost";
       packageName = "commandpost";
@@ -11263,6 +12613,15 @@ let
         sha512 = "rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==";
       };
     };
+    "common-path-prefix-2.0.0" = {
+      name = "common-path-prefix";
+      packageName = "common-path-prefix";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-2.0.0.tgz";
+        sha512 = "Lb9qbwwyQdRDmyib0qur7BC9/GHIbviTaQebayFsGC/n77AwFhZINCcJkQx2qVv9LJsA8F5ex65F2qrOfWGUyw==";
+      };
+    };
     "common-tags-1.8.0" = {
       name = "common-tags";
       packageName = "common-tags";
@@ -11308,13 +12667,13 @@ let
         sha512 = "Ke1ejo/RZ+Hzku4gcW34uPMOR4Cpq87MAotELgV9mwiAzDN726cu+eWo0zWg1vRIfyf6yK5bW9uIW+c/SksQ5w==";
       };
     };
-    "compare-func-1.3.4" = {
+    "compare-func-2.0.0" = {
       name = "compare-func";
       packageName = "compare-func";
-      version = "1.3.4";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/compare-func/-/compare-func-1.3.4.tgz";
-        sha512 = "sq2sWtrqKPkEXAC8tEJA1+BqAH9GbFkGBtUOqrUX57VSfwp8xyktctk+uLoRy5eccTdxzDcVIztlYDpKs3Jv1Q==";
+        url = "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz";
+        sha512 = "zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==";
       };
     };
     "compare-version-0.1.2" = {
@@ -11326,15 +12685,6 @@ let
         sha1 = "0162ec2d9351f5ddd59a9202cba935366a725080";
       };
     };
-    "complex.js-2.0.11" = {
-      name = "complex.js";
-      packageName = "complex.js";
-      version = "2.0.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/complex.js/-/complex.js-2.0.11.tgz";
-        sha512 = "6IArJLApNtdg1P1dFtn3dnyzoZBEF0MwMnrfF1exSBRpZYoy4yieMkpZhQDC0uwctw48vii0CFVyHfpgZ/DfGw==";
-      };
-    };
     "component-bind-1.0.0" = {
       name = "component-bind";
       packageName = "component-bind";
@@ -11407,6 +12757,15 @@ let
         sha512 = "FyDqr8TKX5/X0qo+aVfaZ+PVmNJHJeckFBlq8jZGSJOgnynhfifoyl24qaqdUdDIBe0EVTHByN6NAkqYvE/2Xg==";
       };
     };
+    "compress-commons-4.0.1" = {
+      name = "compress-commons";
+      packageName = "compress-commons";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/compress-commons/-/compress-commons-4.0.1.tgz";
+        sha512 = "xZm9o6iikekkI0GnXCmAl3LQGZj5TBDj0zLowsqi7tJtEa3FMGSEcHcqrSJIrOAk1UG/NBbDn/F1q+MG/p/EsA==";
+      };
+    };
     "compressible-2.0.18" = {
       name = "compressible";
       packageName = "compressible";
@@ -11461,6 +12820,24 @@ let
         sha512 = "MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==";
       };
     };
+    "concat-with-sourcemaps-1.1.0" = {
+      name = "concat-with-sourcemaps";
+      packageName = "concat-with-sourcemaps";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz";
+        sha512 = "4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg==";
+      };
+    };
+    "concordance-4.0.0" = {
+      name = "concordance";
+      packageName = "concordance";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concordance/-/concordance-4.0.0.tgz";
+        sha512 = "l0RFuB8RLfCS0Pt2Id39/oCPykE01pyxgAFypWTlaGRgvLkZrtczZ8atEHpTeEIW+zYWXTBuA9cCSeEOScxReQ==";
+      };
+    };
     "conf-1.4.0" = {
       name = "conf";
       packageName = "conf";
@@ -11470,13 +12847,13 @@ let
         sha512 = "bzlVWS2THbMetHqXKB8ypsXN4DQ/1qopGwNJi1eYbpwesJcd86FBjFciCQX/YwAhp9bM7NVnPFqZ5LpV7gP0Dg==";
       };
     };
-    "conf-6.2.4" = {
+    "conf-7.1.2" = {
       name = "conf";
       packageName = "conf";
-      version = "6.2.4";
+      version = "7.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conf/-/conf-6.2.4.tgz";
-        sha512 = "GjgyPRLo1qK1LR9RWAdUagqo+DP18f5HWCFk4va7GS+wpxQTOzfuKTwKOvGW2c01/YXNicAyyoyuSddmdkBzZQ==";
+        url = "https://registry.npmjs.org/conf/-/conf-7.1.2.tgz";
+        sha512 = "r8/HEoWPFn4CztjhMJaWNAe5n+gPUCSaJ0oufbqDLFKsA1V8JjAG7G+p0pgoDFAws9Bpk2VtVLLXqOBA7WxLeg==";
       };
     };
     "config-1.31.0" = {
@@ -11497,13 +12874,13 @@ let
         sha512 = "a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==";
       };
     };
-    "configstore-3.1.2" = {
+    "configstore-3.1.5" = {
       name = "configstore";
       packageName = "configstore";
-      version = "3.1.2";
+      version = "3.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/configstore/-/configstore-3.1.2.tgz";
-        sha512 = "vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw==";
+        url = "https://registry.npmjs.org/configstore/-/configstore-3.1.5.tgz";
+        sha512 = "nlOhI4+fdzoK5xmJ+NY+1gZK56bwEaWZr8fYuXohZ9Vkc1o3a4T/R3M+yE/w7x/ZVJ1zF8c+oaOvF0dztdUgmA==";
       };
     };
     "configstore-4.0.0" = {
@@ -11641,13 +13018,22 @@ let
         sha1 = "5a25047bc76f73072667c8cb52c989888f494c63";
       };
     };
-    "constant-case-2.0.0" = {
+    "consolidate-0.16.0" = {
+      name = "consolidate";
+      packageName = "consolidate";
+      version = "0.16.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/consolidate/-/consolidate-0.16.0.tgz";
+        sha512 = "Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ==";
+      };
+    };
+    "constant-case-3.0.3" = {
       name = "constant-case";
       packageName = "constant-case";
-      version = "2.0.0";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/constant-case/-/constant-case-2.0.0.tgz";
-        sha1 = "4175764d389d3fa9c8ecd29186ed6005243b6a46";
+        url = "https://registry.npmjs.org/constant-case/-/constant-case-3.0.3.tgz";
+        sha512 = "FXtsSnnrFYpzDmvwDGQW+l8XK3GV1coLyBN0eBz16ZUzGaZcT2ANVCJmLeuw2GQgxKHQIe9e0w2dzkSfaRlUmA==";
       };
     };
     "constantinople-3.1.2" = {
@@ -11695,15 +13081,6 @@ let
         sha1 = "6874f1e935fca99d048caeaaad9a0aeb020bcce0";
       };
     };
-    "content-disposition-0.5.0" = {
-      name = "content-disposition";
-      packageName = "content-disposition";
-      version = "0.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.0.tgz";
-        sha1 = "4284fe6ae0630874639e44e80a418c2934135e9e";
-      };
-    };
     "content-disposition-0.5.2" = {
       name = "content-disposition";
       packageName = "content-disposition";
@@ -11804,13 +13181,13 @@ let
         sha1 = "3243397ae93a71d655b3026834a51590b958b9e8";
       };
     };
-    "conventional-changelog-angular-5.0.10" = {
+    "conventional-changelog-angular-5.0.11" = {
       name = "conventional-changelog-angular";
       packageName = "conventional-changelog-angular";
-      version = "5.0.10";
+      version = "5.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.10.tgz";
-        sha512 = "k7RPPRs0vp8+BtPsM9uDxRl6KcgqtCJmzRD1wRtgqmhQ96g8ifBGo9O/TZBG23jqlXS/rg8BKRDELxfnQQGiaA==";
+        url = "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.11.tgz";
+        sha512 = "nSLypht/1yEflhuTogC03i7DX7sOrXGsRn14g131Potqi6cbGbGEE9PSDEHKldabB6N76HiSyw9Ph+kLmC04Qw==";
       };
     };
     "conventional-changelog-core-3.2.3" = {
@@ -11831,13 +13208,13 @@ let
         sha512 = "GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==";
       };
     };
-    "conventional-changelog-writer-4.0.16" = {
+    "conventional-changelog-writer-4.0.17" = {
       name = "conventional-changelog-writer";
       packageName = "conventional-changelog-writer";
-      version = "4.0.16";
+      version = "4.0.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.16.tgz";
-        sha512 = "jmU1sDJDZpm/dkuFxBeRXvyNcJQeKhGtVcFFkwTphUAzyYWcwz2j36Wcv+Mv2hU3tpvLMkysOPXJTLO55AUrYQ==";
+        url = "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.17.tgz";
+        sha512 = "IKQuK3bib/n032KWaSb8YlBFds+aLmzENtnKtxJy3+HqDq5kohu3g/UdNbIHeJWygfnEbZjnCKFxAW0y7ArZAw==";
       };
     };
     "conventional-commits-filter-2.0.6" = {
@@ -11894,6 +13271,15 @@ let
         sha1 = "f67a4938c5233443564250479c67014bac878499";
       };
     };
+    "convert-to-spaces-1.0.2" = {
+      name = "convert-to-spaces";
+      packageName = "convert-to-spaces";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-1.0.2.tgz";
+        sha1 = "7e3e48bbe6d997b1417ddca2868204b4d3d85715";
+      };
+    };
     "convict-6.0.0" = {
       name = "convict";
       packageName = "convict";
@@ -11921,15 +13307,6 @@ let
         sha1 = "90eb469ddce905c866de687efc43131d8801f9d0";
       };
     };
-    "cookie-0.1.2" = {
-      name = "cookie";
-      packageName = "cookie";
-      version = "0.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cookie/-/cookie-0.1.2.tgz";
-        sha1 = "72fec3d24e48a3432073d90c12642005061004b1";
-      };
-    };
     "cookie-0.3.1" = {
       name = "cookie";
       packageName = "cookie";
@@ -11948,6 +13325,15 @@ let
         sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==";
       };
     };
+    "cookie-0.4.1" = {
+      name = "cookie";
+      packageName = "cookie";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz";
+        sha512 = "ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==";
+      };
+    };
     "cookie-parser-1.4.5" = {
       name = "cookie-parser";
       packageName = "cookie-parser";
@@ -11975,15 +13361,6 @@ let
         sha1 = "44e072148af01e6e8e24afbf12690d68ae698ecb";
       };
     };
-    "cookie-signature-1.0.5" = {
-      name = "cookie-signature";
-      packageName = "cookie-signature";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.5.tgz";
-        sha1 = "a122e3f1503eca0f5355795b0711bb2368d450f9";
-      };
-    };
     "cookie-signature-1.0.6" = {
       name = "cookie-signature";
       packageName = "cookie-signature";
@@ -11993,15 +13370,6 @@ let
         sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
       };
     };
-    "cookiejar-2.0.1" = {
-      name = "cookiejar";
-      packageName = "cookiejar";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cookiejar/-/cookiejar-2.0.1.tgz";
-        sha1 = "3d12752f6adf68a892f332433492bd5812bb668f";
-      };
-    };
     "cookiejar-2.0.6" = {
       name = "cookiejar";
       packageName = "cookiejar";
@@ -12056,58 +13424,67 @@ let
         sha512 = "7cjuUME+p+S3HZlbllgsn2CDwS+5eCCX16qBgNC4jgSTf49qR1VKy/Zhl400m0IQXl/bPGEVqncgUUMjrr4s8A==";
       };
     };
-    "cordova-app-hello-world-4.0.0" = {
+    "copy-template-dir-1.4.0" = {
+      name = "copy-template-dir";
+      packageName = "copy-template-dir";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/copy-template-dir/-/copy-template-dir-1.4.0.tgz";
+        sha512 = "xkXSJhvKz4MfLbVkZ7GyCaFo4ciB3uKI/HHzkGwj1eyTH5+7RTFxW5CE0irWAZgV5oFcO9hd6+NVXAtY9hlo7Q==";
+      };
+    };
+    "cordova-app-hello-world-5.0.0" = {
       name = "cordova-app-hello-world";
       packageName = "cordova-app-hello-world";
-      version = "4.0.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cordova-app-hello-world/-/cordova-app-hello-world-4.0.0.tgz";
-        sha512 = "hTNYHUJT5YyMa1cQQE1naGyU6Eh5D5Jl33sMnCh3+q15ZwWTL/TOy3k8+mUvjTp8bwhO5eECGKULYoVO+fp9ZA==";
+        url = "https://registry.npmjs.org/cordova-app-hello-world/-/cordova-app-hello-world-5.0.0.tgz";
+        sha512 = "5My01wsYoeYwS0f/t5Ck52xPm0+2zYJ0SlvxG9vUsndDGtgiP6t/G8upPgWcyDRRz7Rs/50yZuOntmHqmJxccQ==";
       };
     };
-    "cordova-common-3.2.1" = {
+    "cordova-common-4.0.2" = {
       name = "cordova-common";
       packageName = "cordova-common";
-      version = "3.2.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cordova-common/-/cordova-common-3.2.1.tgz";
-        sha512 = "xg0EnjnA6EipxXG8cupdlYQYeDA6+ghbN+Pjq88xN1LInwP6Bo7IyGBdSV5QnfjOvzShF9BBwSxBAv0FOO0C2Q==";
+        url = "https://registry.npmjs.org/cordova-common/-/cordova-common-4.0.2.tgz";
+        sha512 = "od7aNShyuBajzPY83mUEO8tERwwWdFklXETHiXP5Ft87CWeo/tSuwNPFztyTy8XYc74yXdogXKPTJeUHuVzB8Q==";
       };
     };
-    "cordova-create-2.0.0" = {
+    "cordova-create-3.0.0" = {
       name = "cordova-create";
       packageName = "cordova-create";
-      version = "2.0.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cordova-create/-/cordova-create-2.0.0.tgz";
-        sha512 = "72CaGg/7x+tiZlzeXKQXLTc8Jh4tbwLdu4Ib97kJ6+R3bcew/Yv/l2cVA2E0CaCuOCtouTqwi+YLcA2I4dPFTQ==";
+        url = "https://registry.npmjs.org/cordova-create/-/cordova-create-3.0.0.tgz";
+        sha512 = "WxZRTnt5RHxSAB9urnHFUtVBcIe1YjR4sfwHLsxakNoKkFhcie3HrV5QmNBgRQ5DkxmanRN3VSx4OrPVsNmAaQ==";
       };
     };
-    "cordova-fetch-2.0.1" = {
+    "cordova-fetch-3.0.0" = {
       name = "cordova-fetch";
       packageName = "cordova-fetch";
-      version = "2.0.1";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cordova-fetch/-/cordova-fetch-2.0.1.tgz";
-        sha512 = "q21PeobERzE3Drli5htcl5X9Mtfvodih5VkqIwdRUsjDBCPv+I6ZonRjYGbNnXhYrYx7dm0m0j/7/Smf6Av3hg==";
+        url = "https://registry.npmjs.org/cordova-fetch/-/cordova-fetch-3.0.0.tgz";
+        sha512 = "N6mB/1GD8BNclxnfO85E4/s46nEJjIxYeJYHRGi6MjofhigJ3NlGwTCslbTcq8IOYEh0RdoA0mS4W2jA5UcWeQ==";
       };
     };
-    "cordova-lib-9.0.1" = {
+    "cordova-lib-10.0.0" = {
       name = "cordova-lib";
       packageName = "cordova-lib";
-      version = "9.0.1";
+      version = "10.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cordova-lib/-/cordova-lib-9.0.1.tgz";
-        sha512 = "P9nQhq91gLOyKZkamvKNzzK89gLDpq8rKue/Vu7NUSgNzhPkiWW0w+6VRTbj/9QGVM9w2uDVhB9c9f6rrTXzCw==";
+        url = "https://registry.npmjs.org/cordova-lib/-/cordova-lib-10.0.0.tgz";
+        sha512 = "azU/WH0x/3fQg33tU5bKCtj+Weh/bHelz9FWCVdXqVOHXmjzbi3p6p61z5Si967Tfh3TkmHRrodNxS0ovZ7iFQ==";
       };
     };
-    "cordova-serve-3.0.0" = {
+    "cordova-serve-4.0.0" = {
       name = "cordova-serve";
       packageName = "cordova-serve";
-      version = "3.0.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cordova-serve/-/cordova-serve-3.0.0.tgz";
-        sha512 = "h479g/5a0PXn//yiFuMrD5MDEbB+mtihNkWcE6uD/aCh/6z0FRZ9sWH3NfZbHDB+Bp1yGLYsjbH8LZBL8KOQ0w==";
+        url = "https://registry.npmjs.org/cordova-serve/-/cordova-serve-4.0.0.tgz";
+        sha512 = "gzTLeBQzNP8aM/nG0/7sSfICfNazUgwvEU2kiDaybbYXmxwioo2v96h4tzE0XOyA64beyYwAyRYEEqWA4AMZjw==";
       };
     };
     "core-js-2.6.11" = {
@@ -12119,15 +13496,6 @@ let
         sha512 = "5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==";
       };
     };
-    "core-js-3.6.4" = {
-      name = "core-js";
-      packageName = "core-js";
-      version = "3.6.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz";
-        sha512 = "4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==";
-      };
-    };
     "core-js-3.6.5" = {
       name = "core-js";
       packageName = "core-js";
@@ -12146,15 +13514,6 @@ let
         sha512 = "7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==";
       };
     };
-    "core-js-pure-3.6.5" = {
-      name = "core-js-pure";
-      packageName = "core-js-pure";
-      version = "3.6.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.6.5.tgz";
-        sha512 = "lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==";
-      };
-    };
     "core-util-is-1.0.2" = {
       name = "core-util-is";
       packageName = "core-util-is";
@@ -12164,13 +13523,13 @@ let
         sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
       };
     };
-    "core_d-1.0.1" = {
+    "core_d-2.0.0" = {
       name = "core_d";
       packageName = "core_d";
-      version = "1.0.1";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core_d/-/core_d-1.0.1.tgz";
-        sha512 = "Uge+GU4vDha5IEf0PxX/NdBZBMAE69t93OKasRfWlr+tylp5DDhRQSb7QDDFw/EySwgdS0HV9bsN9iFk6SBDHg==";
+        url = "https://registry.npmjs.org/core_d/-/core_d-2.0.0.tgz";
+        sha512 = "oIb3QJj/ayYNbg2WYTYM1h3d8XvKF/RBUFhNeVVOfXDskeQC43fypCwnvdGqgTK7rbJ/a8tvxeErCr8vJhJ4vA==";
       };
     };
     "cors-2.8.5" = {
@@ -12245,6 +13604,15 @@ let
         sha1 = "aba6c5833be410d45b1eca3e6d583844ce682c77";
       };
     };
+    "cp-file-6.2.0" = {
+      name = "cp-file";
+      packageName = "cp-file";
+      version = "6.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz";
+        sha512 = "fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==";
+      };
+    };
     "cp-file-7.0.0" = {
       name = "cp-file";
       packageName = "cp-file";
@@ -12254,13 +13622,13 @@ let
         sha512 = "0Cbj7gyvFVApzpK/uhCtQ/9kE9UnYpxMzaq5nQQC/Dh4iaj5fxp7iEFIullrYwzj8nf0qnsI1Qsx34hAeAebvw==";
       };
     };
-    "cpy-8.1.0" = {
+    "cpy-8.1.1" = {
       name = "cpy";
       packageName = "cpy";
-      version = "8.1.0";
+      version = "8.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cpy/-/cpy-8.1.0.tgz";
-        sha512 = "XwlImkjPxMr01qXqC564VD4rfcDQ2eKtYmFlCy0ixsLRJ1cwYVUBh+v47jsQTO1IrmvdjqO813VpDQ0JiTuOdA==";
+        url = "https://registry.npmjs.org/cpy/-/cpy-8.1.1.tgz";
+        sha512 = "vqHT+9o67sMwJ5hUd/BAOYeemkU+MuFRsK2c36Xc3eefQpAsp1kAsyDxEDcc5JS1+y9l/XHPrIsVTcyGGmkUUQ==";
       };
     };
     "crc-0.2.0" = {
@@ -12272,15 +13640,6 @@ let
         sha1 = "f4486b9bf0a12df83c3fca14e31e030fdabd9454";
       };
     };
-    "crc-3.2.1" = {
-      name = "crc";
-      packageName = "crc";
-      version = "3.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/crc/-/crc-3.2.1.tgz";
-        sha1 = "5d9c8fb77a245cd5eca291e5d2d005334bab0082";
-      };
-    };
     "crc-3.8.0" = {
       name = "crc";
       packageName = "crc";
@@ -12317,13 +13676,22 @@ let
         sha512 = "mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==";
       };
     };
-    "create-ecdh-4.0.3" = {
+    "crc32-stream-4.0.0" = {
+      name = "crc32-stream";
+      packageName = "crc32-stream";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/crc32-stream/-/crc32-stream-4.0.0.tgz";
+        sha512 = "tyMw2IeUX6t9jhgXI6um0eKfWq4EIDpfv5m7GX4Jzp7eVelQ360xd8EPXJhp2mHwLQIkqlnMLjzqSZI3a+0wRw==";
+      };
+    };
+    "create-ecdh-4.0.4" = {
       name = "create-ecdh";
       packageName = "create-ecdh";
-      version = "4.0.3";
+      version = "4.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz";
-        sha512 = "GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==";
+        url = "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz";
+        sha512 = "mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==";
       };
     };
     "create-error-class-3.0.2" = {
@@ -12398,6 +13766,15 @@ let
         sha512 = "MSHgpjQqgbT/94D4CyADeNoYh52zMkCX4pcJvPP5WqPsLFMKjr2TCMg381ox5qI0ii2dPwaLx/00477knXqXVw==";
       };
     };
+    "cross-fetch-3.0.6" = {
+      name = "cross-fetch";
+      packageName = "cross-fetch";
+      version = "3.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.0.6.tgz";
+        sha512 = "KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==";
+      };
+    };
     "cross-spawn-4.0.2" = {
       name = "cross-spawn";
       packageName = "cross-spawn";
@@ -12533,6 +13910,15 @@ let
         sha512 = "oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==";
       };
     };
+    "css-color-keywords-1.0.0" = {
+      name = "css-color-keywords";
+      packageName = "css-color-keywords";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-color-keywords/-/css-color-keywords-1.0.0.tgz";
+        sha1 = "fea2616dc676b2962686b3af8dbdbe180b244e05";
+      };
+    };
     "css-color-names-0.0.4" = {
       name = "css-color-names";
       packageName = "css-color-names";
@@ -12578,6 +13964,15 @@ let
         sha1 = "a468ee667c16d81ccf05c58c38d2a97c780dbfd4";
       };
     };
+    "css-ripple-effect-1.0.5" = {
+      name = "css-ripple-effect";
+      packageName = "css-ripple-effect";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-ripple-effect/-/css-ripple-effect-1.0.5.tgz";
+        sha1 = "6963b752aaf59babbd3fea3ec0da5d44e9122efb";
+      };
+    };
     "css-select-1.2.0" = {
       name = "css-select";
       packageName = "css-select";
@@ -12605,13 +14000,22 @@ let
         sha512 = "jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==";
       };
     };
-    "css-selector-tokenizer-0.7.2" = {
+    "css-selector-tokenizer-0.7.3" = {
       name = "css-selector-tokenizer";
       packageName = "css-selector-tokenizer";
-      version = "0.7.2";
+      version = "0.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz";
+        sha512 = "jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==";
+      };
+    };
+    "css-to-react-native-3.0.0" = {
+      name = "css-to-react-native";
+      packageName = "css-to-react-native";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz";
-        sha512 = "yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw==";
+        url = "https://registry.npmjs.org/css-to-react-native/-/css-to-react-native-3.0.0.tgz";
+        sha512 = "Ro1yETZA813eoyUp2GDBhG2j+YggidUmzO1/v9eYBKR2EHVEniE2MI/NqpTQ954BMpTPZFsGNPm46qFB9dpaPQ==";
       };
     };
     "css-tree-1.0.0-alpha.37" = {
@@ -12668,6 +14072,15 @@ let
         sha512 = "/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==";
       };
     };
+    "cssfilter-0.0.10" = {
+      name = "cssfilter";
+      packageName = "cssfilter";
+      version = "0.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssfilter/-/cssfilter-0.0.10.tgz";
+        sha1 = "c6d2672632a2e5c83e013e6864a42ce8defd20ae";
+      };
+    };
     "cssnano-4.1.10" = {
       name = "cssnano";
       packageName = "cssnano";
@@ -12776,13 +14189,13 @@ let
         sha512 = "AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==";
       };
     };
-    "csstype-2.6.10" = {
+    "csstype-2.6.13" = {
       name = "csstype";
       packageName = "csstype";
-      version = "2.6.10";
+      version = "2.6.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/csstype/-/csstype-2.6.10.tgz";
-        sha512 = "D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==";
+        url = "https://registry.npmjs.org/csstype/-/csstype-2.6.13.tgz";
+        sha512 = "ul26pfSQTZW8dcOnD2iiJssfXw0gdNVX9IJDH/X3K5DGPfj+fUYe3kB+swUY6BF3oZDxaID3AJt+9/ojSAE05A==";
       };
     };
     "csurf-1.11.0" = {
@@ -12848,15 +14261,6 @@ let
         sha1 = "82c18c2461f74114ef16c135224ad0b9144ca12f";
       };
     };
-    "cubic2quad-1.1.1" = {
-      name = "cubic2quad";
-      packageName = "cubic2quad";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/cubic2quad/-/cubic2quad-1.1.1.tgz";
-        sha1 = "69b19c61a3f5b41ecf2f1d5fae8fb03415aa8b15";
-      };
-    };
     "currently-unhandled-0.4.1" = {
       name = "currently-unhandled";
       packageName = "currently-unhandled";
@@ -12866,13 +14270,13 @@ let
         sha1 = "988df33feab191ef799a61369dd76c17adf957ea";
       };
     };
-    "cuss-1.19.0" = {
+    "cuss-1.21.0" = {
       name = "cuss";
       packageName = "cuss";
-      version = "1.19.0";
+      version = "1.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cuss/-/cuss-1.19.0.tgz";
-        sha512 = "RGVhyJ5/9wfTOsVApjBtAvI8zV8+DZvJ5K72TLfMt+KqtmwlqsYkOVVdtuZkvvIMpx+Ctv4KsIKlhkXWoT1fiQ==";
+        url = "https://registry.npmjs.org/cuss/-/cuss-1.21.0.tgz";
+        sha512 = "X3VvImImJ5q6w0wOgJtxAX+RC06d26egp/A/vdSxqOrsRtAA9biXAkc4PZGj/3gx0+z+gDFri6BpcpwuG1/UEw==";
       };
     };
     "custom-error-instance-2.1.1" = {
@@ -12947,6 +14351,168 @@ let
         sha512 = "m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==";
       };
     };
+    "d3-array-2.7.1" = {
+      name = "d3-array";
+      packageName = "d3-array";
+      version = "2.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-array/-/d3-array-2.7.1.tgz";
+        sha512 = "dYWhEvg1L2+osFsSqNHpXaPQNugLT4JfyvbLE046I2PDcgYGFYc0w24GSJwbmcjjZYOPC3PNP2S782bWUM967Q==";
+      };
+    };
+    "d3-color-2.0.0" = {
+      name = "d3-color";
+      packageName = "d3-color";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-color/-/d3-color-2.0.0.tgz";
+        sha512 = "SPXi0TSKPD4g9tw0NMZFnR95XVgUZiBH+uUTqQuDu1OsE2zomHU7ho0FISciaPvosimixwHFl3WHLGabv6dDgQ==";
+      };
+    };
+    "d3-delaunay-5.3.0" = {
+      name = "d3-delaunay";
+      packageName = "d3-delaunay";
+      version = "5.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-5.3.0.tgz";
+        sha512 = "amALSrOllWVLaHTnDLHwMIiz0d1bBu9gZXd1FiLfXf8sHcX9jrcj81TVZOqD4UX7MgBZZ07c8GxzEgBpJqc74w==";
+      };
+    };
+    "d3-dispatch-2.0.0" = {
+      name = "d3-dispatch";
+      packageName = "d3-dispatch";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-2.0.0.tgz";
+        sha512 = "S/m2VsXI7gAti2pBoLClFFTMOO1HTtT0j99AuXLoGFKO6deHDdnv6ZGTxSTTUTgO1zVcv82fCOtDjYK4EECmWA==";
+      };
+    };
+    "d3-dsv-2.0.0" = {
+      name = "d3-dsv";
+      packageName = "d3-dsv";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-dsv/-/d3-dsv-2.0.0.tgz";
+        sha512 = "E+Pn8UJYx9mViuIUkoc93gJGGYut6mSDKy2+XaPwccwkRGlR+LO97L2VCCRjQivTwLHkSnAJG7yo00BWY6QM+w==";
+      };
+    };
+    "d3-force-2.1.1" = {
+      name = "d3-force";
+      packageName = "d3-force";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-force/-/d3-force-2.1.1.tgz";
+        sha512 = "nAuHEzBqMvpFVMf9OX75d00OxvOXdxY+xECIXjW6Gv8BRrXu6gAWbv/9XKrvfJ5i5DCokDW7RYE50LRoK092ew==";
+      };
+    };
+    "d3-format-2.0.0" = {
+      name = "d3-format";
+      packageName = "d3-format";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-format/-/d3-format-2.0.0.tgz";
+        sha512 = "Ab3S6XuE/Q+flY96HXT0jOXcM4EAClYFnRGY5zsjRGNy6qCYrQsMffs7cV5Q9xejb35zxW5hf/guKw34kvIKsA==";
+      };
+    };
+    "d3-geo-2.0.1" = {
+      name = "d3-geo";
+      packageName = "d3-geo";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-geo/-/d3-geo-2.0.1.tgz";
+        sha512 = "M6yzGbFRfxzNrVhxDJXzJqSLQ90q1cCyb3EWFZ1LF4eWOBYxFypw7I/NFVBNXKNqxv1bqLathhYvdJ6DC+th3A==";
+      };
+    };
+    "d3-geo-projection-3.0.0" = {
+      name = "d3-geo-projection";
+      packageName = "d3-geo-projection";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-geo-projection/-/d3-geo-projection-3.0.0.tgz";
+        sha512 = "1JE+filVbkEX2bT25dJdQ05iA4QHvUwev6o0nIQHOSrNlHCAKfVss/U10vEM3pA4j5v7uQoFdQ4KLbx9BlEbWA==";
+      };
+    };
+    "d3-hierarchy-2.0.0" = {
+      name = "d3-hierarchy";
+      packageName = "d3-hierarchy";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-2.0.0.tgz";
+        sha512 = "SwIdqM3HxQX2214EG9GTjgmCc/mbSx4mQBn+DuEETubhOw6/U3fmnji4uCVrmzOydMHSO1nZle5gh6HB/wdOzw==";
+      };
+    };
+    "d3-interpolate-2.0.1" = {
+      name = "d3-interpolate";
+      packageName = "d3-interpolate";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-2.0.1.tgz";
+        sha512 = "c5UhwwTs/yybcmTpAVqwSFl6vrQ8JZJoT5F7xNFK9pymv5C0Ymcc9/LIJHtYIggg/yS9YHw8i8O8tgb9pupjeQ==";
+      };
+    };
+    "d3-path-2.0.0" = {
+      name = "d3-path";
+      packageName = "d3-path";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-path/-/d3-path-2.0.0.tgz";
+        sha512 = "ZwZQxKhBnv9yHaiWd6ZU4x5BtCQ7pXszEV9CU6kRgwIQVQGLMv1oiL4M+MK/n79sYzsj+gcgpPQSctJUsLN7fA==";
+      };
+    };
+    "d3-quadtree-2.0.0" = {
+      name = "d3-quadtree";
+      packageName = "d3-quadtree";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-2.0.0.tgz";
+        sha512 = "b0Ed2t1UUalJpc3qXzKi+cPGxeXRr4KU9YSlocN74aTzp6R/Ud43t79yLLqxHRWZfsvWXmbDWPpoENK1K539xw==";
+      };
+    };
+    "d3-scale-3.2.2" = {
+      name = "d3-scale";
+      packageName = "d3-scale";
+      version = "3.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-scale/-/d3-scale-3.2.2.tgz";
+        sha512 = "3Mvi5HfqPFq0nlyeFlkskGjeqrR/790pINMHc4RXKJ2E6FraTd3juaRIRZZHyMAbi3LjAMW0EH4FB1WgoGyeXg==";
+      };
+    };
+    "d3-shape-2.0.0" = {
+      name = "d3-shape";
+      packageName = "d3-shape";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-shape/-/d3-shape-2.0.0.tgz";
+        sha512 = "djpGlA779ua+rImicYyyjnOjeubyhql1Jyn1HK0bTyawuH76UQRWXd+pftr67H6Fa8hSwetkgb/0id3agKWykw==";
+      };
+    };
+    "d3-time-2.0.0" = {
+      name = "d3-time";
+      packageName = "d3-time";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-time/-/d3-time-2.0.0.tgz";
+        sha512 = "2mvhstTFcMvwStWd9Tj3e6CEqtOivtD8AUiHT8ido/xmzrI9ijrUUihZ6nHuf/vsScRBonagOdj0Vv+SEL5G3Q==";
+      };
+    };
+    "d3-time-format-3.0.0" = {
+      name = "d3-time-format";
+      packageName = "d3-time-format";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-time-format/-/d3-time-format-3.0.0.tgz";
+        sha512 = "UXJh6EKsHBTjopVqZBhFysQcoXSv/5yLONZvkQ5Kk3qbwiUYkdX17Xa1PT6U1ZWXGGfB1ey5L8dKMlFq2DO0Ag==";
+      };
+    };
+    "d3-timer-2.0.0" = {
+      name = "d3-timer";
+      packageName = "d3-timer";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d3-timer/-/d3-timer-2.0.0.tgz";
+        sha512 = "TO4VLh0/420Y/9dO3+f9abDEFYeCUr2WZRlxJvbp4HPTQcSylXNiL6yZa9FIUvV1yRiFufl1bszTCLDqv9PWNA==";
+      };
+    };
     "dag-map-1.0.2" = {
       name = "dag-map";
       packageName = "dag-map";
@@ -13136,6 +14702,15 @@ let
         sha512 = "YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==";
       };
     };
+    "dataloader-2.0.0" = {
+      name = "dataloader";
+      packageName = "dataloader";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dataloader/-/dataloader-2.0.0.tgz";
+        sha512 = "YzhyDAwA4TaQIhM5go+vCLmU0UikghC/t9DTQYZR2M/UvZ1MdOhPezSDZcjj9uqQJOMqjLcpWtyW2iNINdlatQ==";
+      };
+    };
     "date-fns-1.30.1" = {
       name = "date-fns";
       packageName = "date-fns";
@@ -13172,6 +14747,15 @@ let
         sha1 = "eaf439fd4d4848ad74e5cc7dbef200672b9e345b";
       };
     };
+    "date-time-2.1.0" = {
+      name = "date-time";
+      packageName = "date-time";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/date-time/-/date-time-2.1.0.tgz";
+        sha512 = "/9+C44X7lot0IeiyfgJmETtRMhBidBYM2QFFIkGa0U1k+hSyY87Nw7PY3eDqpvCBm7I3WCSfPeZskW/YYq6m4g==";
+      };
+    };
     "dateformat-2.2.0" = {
       name = "dateformat";
       packageName = "dateformat";
@@ -13190,22 +14774,22 @@ let
         sha512 = "jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==";
       };
     };
-    "dayjs-1.8.28" = {
+    "dayjs-1.8.36" = {
       name = "dayjs";
       packageName = "dayjs";
-      version = "1.8.28";
+      version = "1.8.36";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.8.28.tgz";
-        sha512 = "ccnYgKC0/hPSGXxj7Ju6AV/BP4HUkXC2u15mikXT5mX9YorEaoi1bEKOmAqdkJHN4EEkmAf97SpH66Try5Mbeg==";
+        url = "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz";
+        sha512 = "3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==";
       };
     };
-    "de-indent-1.0.2" = {
-      name = "de-indent";
-      packageName = "de-indent";
-      version = "1.0.2";
+    "deasync-0.1.15" = {
+      name = "deasync";
+      packageName = "deasync";
+      version = "0.1.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz";
-        sha1 = "b2038e846dc33baa5796128d0804b455b8c1e21d";
+        url = "https://registry.npmjs.org/deasync/-/deasync-0.1.15.tgz";
+        sha512 = "pxMaCYu8cQIbGkA4Y1R0PLSooPIpH1WgFBLeJ+zLxQgHfkZG86ViJSmZmONSjZJ/R3NjwkMcIWZAzpLB2G9/CA==";
       };
     };
     "deasync-0.1.20" = {
@@ -13235,13 +14819,13 @@ let
         sha512 = "mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==";
       };
     };
-    "debounce-fn-3.0.1" = {
+    "debounce-fn-4.0.0" = {
       name = "debounce-fn";
       packageName = "debounce-fn";
-      version = "3.0.1";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/debounce-fn/-/debounce-fn-3.0.1.tgz";
-        sha512 = "aBoJh5AhpqlRoHZjHmOzZlRx+wz2xVwGL9rjs+Kj0EWUrL4/h4K7OD176thl2Tdoqui/AaA4xhHrNArGLAaI3Q==";
+        url = "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz";
+        sha512 = "8pYCQiL9Xdcg0UPSD3d+0KMlOjp+KGU5EPwYddgzQ7DATsg4fuUDjQtsYLmWjnk2obnNHgV3vE2Y4jejSOJVBQ==";
       };
     };
     "debounced-seeker-1.0.0" = {
@@ -13280,24 +14864,6 @@ let
         sha1 = "06e1ea8082c2cb14e39806e22e2f6f757f92af39";
       };
     };
-    "debug-1.0.5" = {
-      name = "debug";
-      packageName = "debug";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-1.0.5.tgz";
-        sha1 = "f7241217430f99dec4c2b473eab92228e874c2ac";
-      };
-    };
-    "debug-2.1.3" = {
-      name = "debug";
-      packageName = "debug";
-      version = "2.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-2.1.3.tgz";
-        sha1 = "ce8ab1b5ee8fbee2bfa3b633cab93d366b63418e";
-      };
-    };
     "debug-2.2.0" = {
       name = "debug";
       packageName = "debug";
@@ -13343,13 +14909,13 @@ let
         sha512 = "pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==";
       };
     };
-    "debug-4.2.0" = {
+    "debug-4.3.0" = {
       name = "debug";
       packageName = "debug";
-      version = "4.2.0";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz";
-        sha512 = "IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==";
+        url = "https://registry.npmjs.org/debug/-/debug-4.3.0.tgz";
+        sha512 = "jjO6JD2rKfiZQnBoRzhRTbXjHLGLfH+UtGkWLc/UXAh/rzZMyjbgn0NcfFpqT8nd1kTtFnDiJcrIFkq4UKeJVg==";
       };
     };
     "debug-fabulous-1.1.0" = {
@@ -13379,13 +14945,13 @@ let
         sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
       };
     };
-    "decamelize-3.2.0" = {
+    "decamelize-4.0.0" = {
       name = "decamelize";
       packageName = "decamelize";
-      version = "3.2.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/decamelize/-/decamelize-3.2.0.tgz";
-        sha512 = "4TgkVUsmmu7oCSyGBm5FvfMoACuoh9EOidm7V5/J2X2djAwwt57qb3F2KMP2ITqODTCSwb+YRV+0Zqrv18k/hw==";
+        url = "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz";
+        sha512 = "9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==";
       };
     };
     "decamelize-keys-1.1.0" = {
@@ -13397,15 +14963,6 @@ let
         sha1 = "d171a87933252807eb3cb61dc1c1445d078df2d9";
       };
     };
-    "decimal.js-10.2.0" = {
-      name = "decimal.js";
-      packageName = "decimal.js";
-      version = "10.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz";
-        sha512 = "vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==";
-      };
-    };
     "decimal.js-7.5.1" = {
       name = "decimal.js";
       packageName = "decimal.js";
@@ -13415,6 +14972,15 @@ let
         sha512 = "1K5Y6MykxQYfHBcFfAj2uBaLmwreq4MsjsvrlgcEOvg+X82IeeXlIVIVkBMiypksu+yo9vcYP6lfU3qTedofSQ==";
       };
     };
+    "decko-1.2.0" = {
+      name = "decko";
+      packageName = "decko";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decko/-/decko-1.2.0.tgz";
+        sha1 = "fd43c735e967b8013306884a56fbe665996b6817";
+      };
+    };
     "decode-uri-component-0.2.0" = {
       name = "decode-uri-component";
       packageName = "decode-uri-component";
@@ -13424,15 +14990,6 @@ let
         sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
       };
     };
-    "decomment-0.9.2" = {
-      name = "decomment";
-      packageName = "decomment";
-      version = "0.9.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/decomment/-/decomment-0.9.2.tgz";
-        sha512 = "sblyUmOJZxiL7oJ2ogJS6jtl/67+CTOW87SrYE/96u3PhDYikYoLCdLzcnceToiQejOLlqNnLCkaxx/+nE/ehg==";
-      };
-    };
     "decompress-4.2.1" = {
       name = "decompress";
       packageName = "decompress";
@@ -13460,15 +15017,6 @@ let
         sha512 = "jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==";
       };
     };
-    "decompress-response-5.0.0" = {
-      name = "decompress-response";
-      packageName = "decompress-response";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/decompress-response/-/decompress-response-5.0.0.tgz";
-        sha512 = "TLZWWybuxWgoW7Lykv+gq9xvzOsUjQ9tF09Tj6NSTYGMTCHNXzrPnD6Hi+TgZq19PyTAGH4Ll/NIM/eTGglnMw==";
-      };
-    };
     "decompress-response-6.0.0" = {
       name = "decompress-response";
       packageName = "decompress-response";
@@ -13586,6 +15134,15 @@ let
         sha1 = "48b699c27e334bf89f10892be432f6e4c7d34a7f";
       };
     };
+    "deep-extend-0.5.1" = {
+      name = "deep-extend";
+      packageName = "deep-extend";
+      version = "0.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz";
+        sha512 = "N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==";
+      };
+    };
     "deep-extend-0.6.0" = {
       name = "deep-extend";
       packageName = "deep-extend";
@@ -13622,13 +15179,13 @@ let
         sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
       };
     };
-    "deepcopy-2.0.0" = {
+    "deepcopy-2.1.0" = {
       name = "deepcopy";
       packageName = "deepcopy";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/deepcopy/-/deepcopy-2.0.0.tgz";
-        sha512 = "d5ZK7pJw7F3k6M5vqDjGiiUS9xliIyWkdzBjnPhnSeRGjkYOGZMCFkdKVwV/WiHOe0NwzB8q+iDo7afvSf0arA==";
+        url = "https://registry.npmjs.org/deepcopy/-/deepcopy-2.1.0.tgz";
+        sha512 = "8cZeTb1ZKC3bdSCP6XOM1IsTczIO73fdqtwa2B0N15eAz7gmyhQo+mc5gnFuulsgN3vIQYmTgbmQVKalH1dKvQ==";
       };
     };
     "deepmerge-2.1.0" = {
@@ -13748,15 +15305,6 @@ let
         sha512 = "8eluCl/Blx4YOGwMapBvXRKxHXhA8ejDXYzEaK8+/gtcm8hRMhSLmXSqDmNUKNc/C8HNSmuyyp/hflhqDAvK2A==";
       };
     };
-    "deferred-leveldown-0.2.0" = {
-      name = "deferred-leveldown";
-      packageName = "deferred-leveldown";
-      version = "0.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz";
-        sha1 = "2cef1f111e1c57870d8bbb8af2650e587cd2f5b4";
-      };
-    };
     "deferred-leveldown-5.3.0" = {
       name = "deferred-leveldown";
       packageName = "deferred-leveldown";
@@ -13856,22 +15404,22 @@ let
         sha512 = "BLHItGr82rUbHhjMu41d+vw9Md49i81jmZSV00HdTq4t+RTHywmEht/23mNFpUl2YeLYJZJyGz4rdlMAyOxNeg==";
       };
     };
-    "delay-4.3.0" = {
-      name = "delay";
-      packageName = "delay";
-      version = "4.3.0";
+    "delaunator-4.0.1" = {
+      name = "delaunator";
+      packageName = "delaunator";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/delay/-/delay-4.3.0.tgz";
-        sha512 = "Lwaf3zVFDMBop1yDuFZ19F9WyGcZcGacsbdlZtWjQmM50tOcMntm1njF/Nb/Vjij3KaSvCF+sEYGKrrjObu2NA==";
+        url = "https://registry.npmjs.org/delaunator/-/delaunator-4.0.1.tgz";
+        sha512 = "WNPWi1IRKZfCt/qIDMfERkDp93+iZEmOxN2yy4Jg+Xhv8SLk2UTqqbe1sfiipn0and9QrE914/ihdx82Y/Giag==";
       };
     };
-    "delayed-stream-0.0.5" = {
-      name = "delayed-stream";
-      packageName = "delayed-stream";
-      version = "0.0.5";
+    "delay-4.4.0" = {
+      name = "delay";
+      packageName = "delay";
+      version = "4.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-0.0.5.tgz";
-        sha1 = "d4b1f43a93e8296dfe02694f4680bc37a313c73f";
+        url = "https://registry.npmjs.org/delay/-/delay-4.4.0.tgz";
+        sha512 = "txgOrJu3OdtOfTiEOT2e76dJVfG/1dz2NZ4F0Pyt4UGZJryssMRp5vdM5wQoLwSOBNdrJv3F9PAhp/heqd7vrA==";
       };
     };
     "delayed-stream-1.0.0" = {
@@ -13964,24 +15512,6 @@ let
         sha512 = "9YLIBURXj4DJMFALxXw9K3Y3rwb5Fk0X5/8ipCzaN84+gKxoHK43tVKRNakCQbiEx07E8Uwhuq21BpUagFhZ8w==";
       };
     };
-    "dependency-tree-7.2.1" = {
-      name = "dependency-tree";
-      packageName = "dependency-tree";
-      version = "7.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dependency-tree/-/dependency-tree-7.2.1.tgz";
-        sha512 = "nBxnjkqDW4LqAzBazy60V4lE0mAtIQ+oers/GIIvVvGYVdCD9+RNNd4G9jjstyz7ZFVg/j/OiYCvK5MjoVqA2w==";
-      };
-    };
-    "deprecated-0.0.1" = {
-      name = "deprecated";
-      packageName = "deprecated";
-      version = "0.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/deprecated/-/deprecated-0.0.1.tgz";
-        sha1 = "f9c9af5464afa1e7a971458a8bdef2aa94d5bb19";
-      };
-    };
     "deprecated-decorator-0.1.6" = {
       name = "deprecated-decorator";
       packageName = "deprecated-decorator";
@@ -14027,15 +15557,6 @@ let
         sha512 = "Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==";
       };
     };
-    "destroy-1.0.3" = {
-      name = "destroy";
-      packageName = "destroy";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/destroy/-/destroy-1.0.3.tgz";
-        sha1 = "b433b4724e71fd8551d9885174851c5fc377e2c9";
-      };
-    };
     "destroy-1.0.4" = {
       name = "destroy";
       packageName = "destroy";
@@ -14099,6 +15620,15 @@ let
         sha1 = "f41f1c10be4b00e87b5f13da680759f2c5bfd3e2";
       };
     };
+    "detect-newline-3.1.0" = {
+      name = "detect-newline";
+      packageName = "detect-newline";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz";
+        sha512 = "TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==";
+      };
+    };
     "detect-node-2.0.4" = {
       name = "detect-node";
       packageName = "detect-node";
@@ -14144,13 +15674,13 @@ let
         sha512 = "JQtNTBgFY6h8uT6pgph5QpV3IyxDv+z3qPk/FZRDT9TlFfm5dnRtpH39WtQEr1khqsUxVqXzKjZHpdoQvQbllg==";
       };
     };
-    "detective-es6-2.1.0" = {
+    "detective-es6-2.2.0" = {
       name = "detective-es6";
       packageName = "detective-es6";
-      version = "2.1.0";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/detective-es6/-/detective-es6-2.1.0.tgz";
-        sha512 = "QSHqKGOp/YBIfmIqKXaXeq2rlL+bp3bcIQMfZ+0PvKzRlELSOSZxKRvpxVcxlLuocQv4QnOfuWGniGrmPbz8MQ==";
+        url = "https://registry.npmjs.org/detective-es6/-/detective-es6-2.2.0.tgz";
+        sha512 = "fSpNY0SLER7/sVgQZ1NxJPwmc9uCTzNgdkQDhAaj8NPYwr7Qji9QBcmbNvtMCnuuOGMuKn3O7jv0An+/WRWJZQ==";
       };
     };
     "detective-less-1.0.2" = {
@@ -14306,13 +15836,13 @@ let
         sha512 = "IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==";
       };
     };
-    "diff2html-3.1.8" = {
+    "diff2html-3.1.13" = {
       name = "diff2html";
       packageName = "diff2html";
-      version = "3.1.8";
+      version = "3.1.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.1.8.tgz";
-        sha512 = "Irnht4VZ/Nd15H2jhC/TV3YPAmILbDutiwJWn1V94J6/mY6JY/iJ4FCh/QmENL1CWqGvckKWgCQnNg5Unez3UA==";
+        url = "https://registry.npmjs.org/diff2html/-/diff2html-3.1.13.tgz";
+        sha512 = "Gs4NbtynANYqkPbbGqZN6zwWJq6JofAb5it76xnEUTpFjWJndaCCjFVUoD7yFjEPB36MtwTtT/ptWcKyD9Vw9g==";
       };
     };
     "diff3-0.0.3" = {
@@ -14351,6 +15881,15 @@ let
         sha512 = "BIo2fEAv3U0YmyuM1XTijwZ/OJjmXnlSvsguQy3LOaz5C2R/vrMy8SCRdQn1iz3KhBJYJzy+918xS/PKY/47lw==";
       };
     };
+    "difunc-0.0.4" = {
+      name = "difunc";
+      packageName = "difunc";
+      version = "0.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/difunc/-/difunc-0.0.4.tgz";
+        sha512 = "zBiL4ALDmviHdoLC0g0G6wVme5bwAow9WfhcZLLopXCAWgg3AEf7RYTs2xugszIGulRHzEVDF/SHl9oyQU07Pw==";
+      };
+    };
     "dijkstrajs-1.0.1" = {
       name = "dijkstrajs";
       packageName = "dijkstrajs";
@@ -14441,13 +15980,22 @@ let
         sha512 = "vkg0bv+FUwSuPxBWzdNPQVNmXQlIbvz1Ygi+A1XefNUhEzfmM+RNndjtjlDgxD/ZUhFir9PX7Hw9iIDVujsOoA==";
       };
     };
-    "dispensary-0.51.2" = {
+    "diskusage-1.1.3" = {
+      name = "diskusage";
+      packageName = "diskusage";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diskusage/-/diskusage-1.1.3.tgz";
+        sha512 = "EAyaxl8hy4Ph07kzlzGTfpbZMNAAAHXSZtNEMwdlnSd1noHzvA6HsgKt4fEMSvaEXQYLSphe5rPMxN4WOj0hcQ==";
+      };
+    };
+    "dispensary-0.55.0" = {
       name = "dispensary";
       packageName = "dispensary";
-      version = "0.51.2";
+      version = "0.55.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dispensary/-/dispensary-0.51.2.tgz";
-        sha512 = "liUDx/g1xFEBFoOL6308Vr0aYAZlGAyXGcOvuXVa/6qVBZT4QZrv4pVNeb5QOeD5C/Flta+A+qTnLkLnhgs40g==";
+        url = "https://registry.npmjs.org/dispensary/-/dispensary-0.55.0.tgz";
+        sha512 = "5+6E0kQNVWIZCGwTw34B48bJQyUuvwJD6hsI/b7ScKbjfrzUIgod/ROsTX6t9d3O031A9O5RPVHIqkX4ZzcAfw==";
       };
     };
     "diveSync-0.3.0" = {
@@ -14567,58 +16115,49 @@ let
         sha512 = "cwaRptBmYZwu/FyhGcqBm2MzXA77W2/E6eVkpOZVDk6PkI9Bjj84xPrXiHMA+OWjzNy+DFjgKh8Q+1hMR7/OHg==";
       };
     };
-    "dockerfile-ast-0.0.12" = {
+    "dockerfile-ast-0.0.27" = {
       name = "dockerfile-ast";
       packageName = "dockerfile-ast";
-      version = "0.0.12";
+      version = "0.0.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.0.12.tgz";
-        sha512 = "cIV8oXkAxpIuN5XgG0TGg07nLDgrj4olkfrdT77OTA3VypscsYHBUg/FjHxW9K3oA+CyH4Th/qtoMgTVpzSobw==";
+        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.0.27.tgz";
+        sha512 = "U+1B6aA7qJw9hswL6rCg4/dHnXy+zmt1bwU6ONi+f+0w0AOSmrz4IcrZQu62g1RD+NoTO4dvJce3FjoXUHd9Dw==";
       };
     };
-    "dockerfile-ast-0.0.19" = {
+    "dockerfile-ast-0.0.28" = {
       name = "dockerfile-ast";
       packageName = "dockerfile-ast";
-      version = "0.0.19";
+      version = "0.0.28";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.0.19.tgz";
-        sha512 = "iDRNFeAB2j4rh/Ecc2gh3fjciVifCMsszfCfHlYF5Wv8yybjZLiRDZUBt/pS3xrAz8uWT8fCHLq4pOQMmwCDwA==";
+        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.0.28.tgz";
+        sha512 = "221P0R4+tx5C1ra99alQxmdRvtfKMbBE7MkESN4VEBN5CX90wijrcIg+EiRaGTCCT5OPk5KBeKy+EIOnmEu4xA==";
       };
     };
-    "dockerfile-ast-0.0.25" = {
+    "dockerfile-ast-0.0.30" = {
       name = "dockerfile-ast";
       packageName = "dockerfile-ast";
-      version = "0.0.25";
+      version = "0.0.30";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.0.25.tgz";
-        sha512 = "Yiolk/ktLUjThacBuIEqyoRYzDdGrp8rjKjcdZA/hhtIUHrU5iVrS1MIm3p3PWKpnD7va4Jlp/FV0ywP3AdKrg==";
+        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.0.30.tgz";
+        sha512 = "QOeP5NjbjoSLtnMz6jzBLsrKtywLEVPoCOAwA54cQpulyKb1gBnZ63tr6Amq8oVDvu5PXa3aifBVw+wcoCGHKg==";
       };
     };
-    "dockerfile-language-service-0.0.12" = {
+    "dockerfile-language-service-0.1.0" = {
       name = "dockerfile-language-service";
       packageName = "dockerfile-language-service";
-      version = "0.0.12";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-language-service/-/dockerfile-language-service-0.0.12.tgz";
-        sha512 = "73ZEQW8LCL/SIWzWekqqLdH41pZ8+N2BYD5K16cBQCQfsZPjFoJC04tv7jlTnEPypJZs3zV0hpBLVTi7zhRFfw==";
-      };
-    };
-    "dockerfile-utils-0.0.11" = {
-      name = "dockerfile-utils";
-      packageName = "dockerfile-utils";
-      version = "0.0.11";
+      version = "0.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-utils/-/dockerfile-utils-0.0.11.tgz";
-        sha512 = "LNdPIgcl58343dF4KNCHvFzUScUhgLI9BRAR+Vln6D1tVBGvv1k5/qHuxWRCAM2uyFbj73QVkKMScXPhY7TqfQ==";
+        url = "https://registry.npmjs.org/dockerfile-language-service/-/dockerfile-language-service-0.1.0.tgz";
+        sha512 = "vvFBLvQ/4RE5JyPzI1EynvT5h6Mg/jJ8HUcMs53uyfjy3RbaGeUL5c0eN6mk39WVF2Y8fsH1FKo4L29Z/W4N6g==";
       };
     };
-    "dockerfile-utils-0.0.16" = {
+    "dockerfile-utils-0.1.0" = {
       name = "dockerfile-utils";
       packageName = "dockerfile-utils";
-      version = "0.0.16";
+      version = "0.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dockerfile-utils/-/dockerfile-utils-0.0.16.tgz";
-        sha512 = "d/XlyVUEs+oGqoffvgYYItbGLNNSz3I2vIwzXxT9Xbx5YHH8WA8dFvTQU21k5j2Z8MoU6OYfyEZpbUqRC9N2fA==";
+        url = "https://registry.npmjs.org/dockerfile-utils/-/dockerfile-utils-0.1.0.tgz";
+        sha512 = "eHDiSOSXzXaFTwp7UX+bMVKUDQd2E2x8IF/3xdSvNkGhBliRhjwLIL+ALLDmi8GqSlm+7xwc4mGLcvtCI668PQ==";
       };
     };
     "doctrine-2.1.0" = {
@@ -14684,6 +16223,15 @@ let
         sha512 = "2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==";
       };
     };
+    "dom-serializer-1.1.0" = {
+      name = "dom-serializer";
+      packageName = "dom-serializer";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.1.0.tgz";
+        sha512 = "ox7bvGXt2n+uLWtCRLybYx60IrOlWL/aCebWJk1T0d4m3y2tzf4U3ij9wBMUb6YJZpz06HCCYuyCDveE2xXmzQ==";
+      };
+    };
     "dom-storage-2.1.0" = {
       name = "dom-storage";
       packageName = "dom-storage";
@@ -14729,13 +16277,13 @@ let
         sha512 = "BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==";
       };
     };
-    "domelementtype-2.0.1" = {
+    "domelementtype-2.0.2" = {
       name = "domelementtype";
       packageName = "domelementtype";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz";
-        sha512 = "5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==";
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.2.tgz";
+        sha512 = "wFwTwCVebUrMgGeAwRL/NhZtHAUyT9n9yg4IMDwf10+6iCMxSkVq9MGCVEH+QZWo1nNidy8kNvwmv4zWHDTqvA==";
       };
     };
     "domexception-1.0.1" = {
@@ -14783,13 +16331,22 @@ let
         sha512 = "eKLdI5v9m67kbXQbJSNn1zjh0SDzvzWVWtX+qEI3eMjZw8daH9k8rlj1FZY9memPwjiskQFbe7vHVVJIAqoEhw==";
       };
     };
-    "domino-2.1.5" = {
+    "domino-2.1.6" = {
       name = "domino";
       packageName = "domino";
-      version = "2.1.5";
+      version = "2.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domino/-/domino-2.1.5.tgz";
-        sha512 = "vMDo7f6ogUV9PkzmxXLiXzJkJZqU09Le4C40mj+HmAGS/2FPmdetoNOQZXpu2kekn0GJKvtwKMAVoruTj60Xww==";
+        url = "https://registry.npmjs.org/domino/-/domino-2.1.6.tgz";
+        sha512 = "3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ==";
+      };
+    };
+    "dompurify-1.0.11" = {
+      name = "dompurify";
+      packageName = "dompurify";
+      version = "1.0.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dompurify/-/dompurify-1.0.11.tgz";
+        sha512 = "XywCTXZtc/qCX3iprD1pIklRVk/uhl8BKpkTxr+ZyMVUzSUg7wkQXRBp/euJ5J5moa1QvfpvaPQVP71z1O59dQ==";
       };
     };
     "domutils-1.4.3" = {
@@ -14819,49 +16376,40 @@ let
         sha512 = "Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==";
       };
     };
-    "domutils-2.1.0" = {
+    "domutils-2.3.0" = {
       name = "domutils";
       packageName = "domutils";
-      version = "2.1.0";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/domutils/-/domutils-2.1.0.tgz";
-        sha512 = "CD9M0Dm1iaHfQ1R/TI+z3/JWp/pgub0j4jIQKH89ARR4ATAV2nbaOQS5XxU9maJP5jHaPdDDQSEHuE2UmpUTKg==";
+        url = "https://registry.npmjs.org/domutils/-/domutils-2.3.0.tgz";
+        sha512 = "xWC75PM3QF6MjE5e58OzwTX0B/rPQnlqH0YyXB/c056RtVJA+eu60da2I/bdnEHzEYC00g8QaZUlAbqOZVbOsw==";
       };
     };
-    "dot-case-2.1.1" = {
+    "dot-case-3.0.3" = {
       name = "dot-case";
       packageName = "dot-case";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dot-case/-/dot-case-2.1.1.tgz";
-        sha1 = "34dcf37f50a8e93c2b3bca8bb7fb9155c7da3bee";
-      };
-    };
-    "dot-prop-3.0.0" = {
-      name = "dot-prop";
-      packageName = "dot-prop";
-      version = "3.0.0";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz";
-        sha1 = "1b708af094a49c9a0e7dbcad790aba539dac1177";
+        url = "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz";
+        sha512 = "7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==";
       };
     };
-    "dot-prop-4.2.0" = {
+    "dot-prop-4.2.1" = {
       name = "dot-prop";
       packageName = "dot-prop";
-      version = "4.2.0";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz";
-        sha512 = "tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==";
+        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz";
+        sha512 = "l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==";
       };
     };
-    "dot-prop-5.2.0" = {
+    "dot-prop-5.3.0" = {
       name = "dot-prop";
       packageName = "dot-prop";
-      version = "5.2.0";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz";
-        sha512 = "uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==";
+        url = "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz";
+        sha512 = "QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==";
       };
     };
     "dot-qs-0.2.0" = {
@@ -14909,13 +16457,13 @@ let
         sha512 = "UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==";
       };
     };
-    "dotnet-deps-parser-4.10.0" = {
+    "dotnet-deps-parser-5.0.0" = {
       name = "dotnet-deps-parser";
       packageName = "dotnet-deps-parser";
-      version = "4.10.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dotnet-deps-parser/-/dotnet-deps-parser-4.10.0.tgz";
-        sha512 = "dEO1oTvreaDCtcvhRdOmmAMubyC+MWqVr1c/1Wvasi+NW4NZeB67qGh1taqowUFh+aCXtPw3SP2eExn6aNkhwA==";
+        url = "https://registry.npmjs.org/dotnet-deps-parser/-/dotnet-deps-parser-5.0.0.tgz";
+        sha512 = "1l9K4UnQQHSfKgeHeLrxnB53AidCZqPyf9dkRL4/fZl8//NPiiDD43zHtgylw8DHlO7gvM8+O5a0UPHesNYZKw==";
       };
     };
     "downgrade-root-1.2.2" = {
@@ -14945,6 +16493,15 @@ let
         sha512 = "xqnBTVd/E+GxJVrX5/eUJiLYjCGPwMpdL+jGhGU57BvtcA7wwhtHVbXBeUk51kOpW3S7Jn3BQbN9Q1R1Km2qDQ==";
       };
     };
+    "download-8.0.0" = {
+      name = "download";
+      packageName = "download";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/download/-/download-8.0.0.tgz";
+        sha512 = "ASRY5QhDk7FK+XrQtQyvhpDKanLluEEQtWl/J7Lxuf/b+i8RYh997QeXvL85xitrmRKVlx9c7eTrcRdq2GS4eA==";
+      };
+    };
     "download-git-repo-1.1.0" = {
       name = "download-git-repo";
       packageName = "download-git-repo";
@@ -15035,13 +16592,13 @@ let
         sha512 = "b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==";
       };
     };
-    "duplexer-0.1.1" = {
+    "duplexer-0.1.2" = {
       name = "duplexer";
       packageName = "duplexer";
-      version = "0.1.1";
+      version = "0.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz";
-        sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1";
+        url = "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz";
+        sha512 = "jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==";
       };
     };
     "duplexer2-0.0.2" = {
@@ -15251,13 +16808,22 @@ let
         sha512 = "7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==";
       };
     };
-    "electron-to-chromium-1.3.466" = {
+    "ejs-3.1.5" = {
+      name = "ejs";
+      packageName = "ejs";
+      version = "3.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ejs/-/ejs-3.1.5.tgz";
+        sha512 = "dldq3ZfFtgVTJMLjOe+/3sROTzALlL9E34V4/sDtUd/KlBSS0s6U1/+WPE1B4sj9CXHJpL1M6rhNJnc9Wbal9w==";
+      };
+    };
+    "electron-to-chromium-1.3.570" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.3.466";
+      version = "1.3.570";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.466.tgz";
-        sha512 = "eieqkoM2hCkZZRhETKyCouMziDV3l4XEKHRLuzcHG+HV+P7PeODU/z9HAmBgMQkzvHg2DoyQhfIDmmeguLZT/Q==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.570.tgz";
+        sha512 = "Y6OCoVQgFQBP5py6A/06+yWxUZHDlNr/gNDGatjH8AZqXl8X0tE4LfjLJsXGz/JmWJz8a6K7bR1k+QzZ+k//fg==";
       };
     };
     "elegant-spinner-1.0.1" = {
@@ -15287,13 +16853,22 @@ let
         sha1 = "9ac91be6e52fb6e6244c4e54a4ac3ed8ae8e29c0";
       };
     };
-    "elliptic-6.5.2" = {
+    "elf-tools-1.1.2" = {
+      name = "elf-tools";
+      packageName = "elf-tools";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/elf-tools/-/elf-tools-1.1.2.tgz";
+        sha512 = "x+p+XNxLk8ittsYN7294mCnQ2i48udu3UGdHBv2gw1u1MVigXctcfbp5H9ebqTJnDxkbs6PdOSBOAdYGGDN7uA==";
+      };
+    };
+    "elliptic-6.5.3" = {
       name = "elliptic";
       packageName = "elliptic";
-      version = "6.5.2";
+      version = "6.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz";
-        sha512 = "f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==";
+        url = "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz";
+        sha512 = "IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==";
       };
     };
     "email-validator-2.0.4" = {
@@ -15378,15 +16953,6 @@ let
         sha512 = "5U0rVMU5Y2n2+ykNLQqMoqklN9ICBT/KsvC1Gz6vqHbz2AXXGkG+Pm5rMWk/8Vjrr/mY9985Hi8DYzn1F09Nyw==";
       };
     };
-    "emojis-list-2.1.0" = {
-      name = "emojis-list";
-      packageName = "emojis-list";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz";
-        sha1 = "4daa4d9db00f9819880c79fa457ae5b09a1fd389";
-      };
-    };
     "emojis-list-3.0.0" = {
       name = "emojis-list";
       packageName = "emojis-list";
@@ -15423,6 +16989,15 @@ let
         sha1 = "965f6513d2c2d1c5f4652b64a2e3396467fc2f93";
       };
     };
+    "enabled-2.0.0" = {
+      name = "enabled";
+      packageName = "enabled";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz";
+        sha512 = "AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==";
+      };
+    };
     "encodeurl-1.0.2" = {
       name = "encodeurl";
       packageName = "encodeurl";
@@ -15432,13 +17007,13 @@ let
         sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
       };
     };
-    "encoding-0.1.12" = {
+    "encoding-0.1.13" = {
       name = "encoding";
       packageName = "encoding";
-      version = "0.1.12";
+      version = "0.1.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz";
-        sha1 = "538b66f3ee62cd1ab51ec323829d1f9480c74beb";
+        url = "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz";
+        sha512 = "ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==";
       };
     };
     "encoding-down-6.3.0" = {
@@ -15468,15 +17043,6 @@ let
         sha1 = "d4596e702734a93e40e9af864319eabd99ff2f0e";
       };
     };
-    "end-of-stream-1.1.0" = {
-      name = "end-of-stream";
-      packageName = "end-of-stream";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.1.0.tgz";
-        sha1 = "e9353258baa9108965efc41cb0ef8ade2f3cfb07";
-      };
-    };
     "end-of-stream-1.4.1" = {
       name = "end-of-stream";
       packageName = "end-of-stream";
@@ -15585,22 +17151,22 @@ let
         sha1 = "a115c32504b6302e85a76269d7a57ccdd962e359";
       };
     };
-    "enhanced-resolve-4.1.0" = {
+    "enhanced-resolve-4.3.0" = {
       name = "enhanced-resolve";
       packageName = "enhanced-resolve";
-      version = "4.1.0";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz";
-        sha512 = "F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==";
+        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz";
+        sha512 = "3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==";
       };
     };
-    "enhanced-resolve-4.1.1" = {
-      name = "enhanced-resolve";
-      packageName = "enhanced-resolve";
-      version = "4.1.1";
+    "enquirer-2.3.6" = {
+      name = "enquirer";
+      packageName = "enquirer";
+      version = "2.3.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz";
-        sha512 = "98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==";
+        url = "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz";
+        sha512 = "yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==";
       };
     };
     "ensure-posix-path-1.1.1" = {
@@ -15693,13 +17259,13 @@ let
         sha512 = "jDgnJaF/Btomk+m3PZDTTCb5XIIIX3zYItnCRfF73zVgvinLoRomuhi75Y4su0PtQxWz4v66XnLLckyvyJTOIQ==";
       };
     };
-    "envinfo-7.5.1" = {
+    "envinfo-7.7.3" = {
       name = "envinfo";
       packageName = "envinfo";
-      version = "7.5.1";
+      version = "7.7.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/envinfo/-/envinfo-7.5.1.tgz";
-        sha512 = "hQBkDf2iO4Nv0CNHpCuSBeaSrveU6nThVxFGTrq/eDlV716UQk09zChaJae4mZRsos1x4YLY2TaH3LHUae3ZmQ==";
+        url = "https://registry.npmjs.org/envinfo/-/envinfo-7.7.3.tgz";
+        sha512 = "46+j5QxbPWza0PB1i15nZx0xQ4I/EfQxg9J8Had3b408SV63nEtor2e+oiY63amTo9KTuh2a3XLObNwduxYwwA==";
       };
     };
     "epidemic-broadcast-trees-7.0.0" = {
@@ -15765,6 +17331,15 @@ let
         sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
       };
     };
+    "error-stack-parser-2.0.6" = {
+      name = "error-stack-parser";
+      packageName = "error-stack-parser";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/error-stack-parser/-/error-stack-parser-2.0.6.tgz";
+        sha512 = "d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ==";
+      };
+    };
     "errorhandler-1.5.1" = {
       name = "errorhandler";
       packageName = "errorhandler";
@@ -15774,13 +17349,31 @@ let
         sha512 = "rcOwbfvP1WTViVoUjcfZicVzjhjTuhSMntHh6mW3IrEiyE6mJyXvsToJUJGlGlw/2xU9P5whlWNGlIDVeCiT4A==";
       };
     };
-    "es-abstract-1.17.5" = {
+    "es-abstract-1.17.6" = {
       name = "es-abstract";
       packageName = "es-abstract";
-      version = "1.17.5";
+      version = "1.17.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz";
-        sha512 = "BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==";
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz";
+        sha512 = "Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==";
+      };
+    };
+    "es-abstract-1.18.0-next.0" = {
+      name = "es-abstract";
+      packageName = "es-abstract";
+      version = "1.18.0-next.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.0.tgz";
+        sha512 = "elZXTZXKn51hUBdJjSZGYRujuzilgXo8vSPQzjGYXLvSlGiCo8VO8ZGV3kjo9a0WNJJ57hENagwbtlRuHuzkcQ==";
+      };
+    };
+    "es-array-method-boxes-properly-1.0.0" = {
+      name = "es-array-method-boxes-properly";
+      packageName = "es-array-method-boxes-properly";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz";
+        sha512 = "wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==";
       };
     };
     "es-get-iterator-1.1.0" = {
@@ -15819,15 +17412,6 @@ let
         sha1 = "aba8d9e1943a895ac96837a62a39b3f55ecd94ab";
       };
     };
-    "es5class-2.3.1" = {
-      name = "es5class";
-      packageName = "es5class";
-      version = "2.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es5class/-/es5class-2.3.1.tgz";
-        sha1 = "42c5c18a9016bcb0db28a4d340ebb831f55d1b66";
-      };
-    };
     "es6-error-4.1.1" = {
       name = "es6-error";
       packageName = "es6-error";
@@ -15900,24 +17484,6 @@ let
         sha1 = "5109d62f3e56ea967c4b63505aef08291c8a5203";
       };
     };
-    "es6-promisify-6.0.2" = {
-      name = "es6-promisify";
-      packageName = "es6-promisify";
-      version = "6.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.0.2.tgz";
-        sha512 = "eO6vFm0JvqGzjWIQA6QVKjxpmELfhWbDUWHm1rPfIbn55mhKPiAa5xpLmQWJrNa629ZIeQ8ZvMAi13kvrjK6Mg==";
-      };
-    };
-    "es6-promisify-6.1.0" = {
-      name = "es6-promisify";
-      packageName = "es6-promisify";
-      version = "6.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/es6-promisify/-/es6-promisify-6.1.0.tgz";
-        sha512 = "jCsk2fpfEFusVv1MDkF4Uf0hAzIKNDMgR6LyOIw6a3jwkN1sCgWzuwgnsHY9YSQ8n8P31HoncvE0LC44cpWTrw==";
-      };
-    };
     "es6-promisify-6.1.1" = {
       name = "es6-promisify";
       packageName = "es6-promisify";
@@ -15972,6 +17538,15 @@ let
         sha512 = "VHDcDg9AwFoeQU9ULPCJCw6P95gr9Er65M+bccefEVD/OOb+WMyQIYw58rpm0F+zcfRJNf394I+BMH8JeU97Hw==";
       };
     };
+    "escalade-3.1.0" = {
+      name = "escalade";
+      packageName = "escalade";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escalade/-/escalade-3.1.0.tgz";
+        sha512 = "mAk+hPSO8fLDkhV7V0dXazH5pDc6MrjBTPyD3VeKzxnVFjH1MIxbCdqGZB9O8+EwWakZs3ZCbDS4IpRt79V1ig==";
+      };
+    };
     "escape-goat-2.1.1" = {
       name = "escape-goat";
       packageName = "escape-goat";
@@ -15981,15 +17556,6 @@ let
         sha512 = "8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==";
       };
     };
-    "escape-html-1.0.1" = {
-      name = "escape-html";
-      packageName = "escape-html";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz";
-        sha1 = "181a286ead397a39a92857cfb1d43052e356bff0";
-      };
-    };
     "escape-html-1.0.3" = {
       name = "escape-html";
       packageName = "escape-html";
@@ -15999,15 +17565,6 @@ let
         sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
       };
     };
-    "escape-latex-1.2.0" = {
-      name = "escape-latex";
-      packageName = "escape-latex";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/escape-latex/-/escape-latex-1.2.0.tgz";
-        sha512 = "nV5aVWW1K0wEiUIEdZ4erkGGH8mDxGyxSeqPzRNtWP7ataw+/olFObw7hujFWlVjNsaDFw5VZ5NzVSIqRgfTiw==";
-      };
-    };
     "escape-regexp-component-1.0.2" = {
       name = "escape-regexp-component";
       packageName = "escape-regexp-component";
@@ -16053,13 +17610,13 @@ let
         sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
       };
     };
-    "escodegen-1.14.2" = {
+    "escodegen-1.14.3" = {
       name = "escodegen";
       packageName = "escodegen";
-      version = "1.14.2";
+      version = "1.14.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/escodegen/-/escodegen-1.14.2.tgz";
-        sha512 = "InuOIiKk8wwuOFg6x9BQXbzjrQhtyXh46K9bqVTPzSo2FnyMBaYGBMC6PhQy7yxxil9vIedFBweQBMK74/7o8A==";
+        url = "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz";
+        sha512 = "qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==";
       };
     };
     "escodegen-1.3.3" = {
@@ -16134,22 +17691,22 @@ let
         sha512 = "K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==";
       };
     };
-    "eslint-7.2.0" = {
+    "eslint-7.9.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "7.2.0";
+      version = "7.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-7.2.0.tgz";
-        sha512 = "B3BtEyaDKC5MlfDa2Ha8/D6DsS4fju95zs0hjS3HdGazw+LNayai38A25qMppK37wWGWNYSPOR6oYzlz5MHsRQ==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.9.0.tgz";
+        sha512 = "V6QyhX21+uXp4T+3nrNfI3hQNBDa/P8ga7LoQOenwrlEFXrEnUEE+ok1dMtaS3b6rmLXhT1TkTIsG75HMLbknA==";
       };
     };
-    "eslint-plugin-no-unsafe-innerhtml-1.0.16" = {
-      name = "eslint-plugin-no-unsafe-innerhtml";
-      packageName = "eslint-plugin-no-unsafe-innerhtml";
-      version = "1.0.16";
+    "eslint-plugin-no-unsanitized-3.1.2" = {
+      name = "eslint-plugin-no-unsanitized";
+      packageName = "eslint-plugin-no-unsanitized";
+      version = "3.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-plugin-no-unsafe-innerhtml/-/eslint-plugin-no-unsafe-innerhtml-1.0.16.tgz";
-        sha1 = "7d02878c8e9bf7916b88836d5ac122b42f151932";
+        url = "https://registry.npmjs.org/eslint-plugin-no-unsanitized/-/eslint-plugin-no-unsanitized-3.1.2.tgz";
+        sha512 = "KPShfliA3Uy9qqwQx35P1fwIOeJjZkb0FbMMUFztRYRposzaynsM8JCEb952fqkidROl1kpqY80uSvn+TcWkQQ==";
       };
     };
     "eslint-plugin-vue-6.2.2" = {
@@ -16161,6 +17718,15 @@ let
         sha512 = "Nhc+oVAHm0uz/PkJAWscwIT4ijTrK5fqNqz9QB1D35SbbuMG1uB6Yr5AJpvPSWg+WOw7nYNswerYh0kOk64gqQ==";
       };
     };
+    "eslint-plugin-vue-7.0.0-beta.3" = {
+      name = "eslint-plugin-vue";
+      packageName = "eslint-plugin-vue";
+      version = "7.0.0-beta.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.0.0-beta.3.tgz";
+        sha512 = "/p23IRPN9gFNN7dzesrctt06Kvs9E3VRB8BGIAPSEaQNk5yhlKUzntPARjUpsTWW+DQg0mqglZptfkUJK4+4EQ==";
+      };
+    };
     "eslint-scope-3.7.3" = {
       name = "eslint-scope";
       packageName = "eslint-scope";
@@ -16179,13 +17745,13 @@ let
         sha512 = "p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==";
       };
     };
-    "eslint-scope-5.1.0" = {
+    "eslint-scope-5.1.1" = {
       name = "eslint-scope";
       packageName = "eslint-scope";
-      version = "5.1.0";
+      version = "5.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz";
-        sha512 = "iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==";
+        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz";
+        sha512 = "2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==";
       };
     };
     "eslint-utils-1.4.3" = {
@@ -16197,31 +17763,31 @@ let
         sha512 = "fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==";
       };
     };
-    "eslint-utils-2.0.0" = {
+    "eslint-utils-2.1.0" = {
       name = "eslint-utils";
       packageName = "eslint-utils";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz";
-        sha512 = "0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==";
+        url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz";
+        sha512 = "w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==";
       };
     };
-    "eslint-visitor-keys-1.1.0" = {
+    "eslint-visitor-keys-1.3.0" = {
       name = "eslint-visitor-keys";
       packageName = "eslint-visitor-keys";
-      version = "1.1.0";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz";
-        sha512 = "8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==";
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
+        sha512 = "6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==";
       };
     };
-    "eslint-visitor-keys-1.2.0" = {
+    "eslint-visitor-keys-2.0.0" = {
       name = "eslint-visitor-keys";
       packageName = "eslint-visitor-keys";
-      version = "1.2.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.2.0.tgz";
-        sha512 = "WFb4ihckKil6hu3Dp798xdzSfddwKKU3+nGniKF6HfeW6OLd2OUDEPP7TcHtB5+QXOKg2s6B2DaMPE1Nn/kxKQ==";
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz";
+        sha512 = "QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==";
       };
     };
     "esm-3.2.25" = {
@@ -16278,13 +17844,13 @@ let
         sha512 = "ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==";
       };
     };
-    "espree-7.1.0" = {
+    "espree-7.3.0" = {
       name = "espree";
       packageName = "espree";
-      version = "7.1.0";
+      version = "7.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/espree/-/espree-7.1.0.tgz";
-        sha512 = "dcorZSyfmm4WTuTnE5Y7MEN1DyoPYy1ZR783QW1FJoenn7RailyWFsq/UL6ZAAA7uXurN9FIpYyUs3OfiIW+Qw==";
+        url = "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz";
+        sha512 = "dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==";
       };
     };
     "esprima-1.1.1" = {
@@ -16341,13 +17907,13 @@ let
         sha512 = "olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==";
       };
     };
-    "esrecurse-4.2.1" = {
+    "esrecurse-4.3.0" = {
       name = "esrecurse";
       packageName = "esrecurse";
-      version = "4.2.1";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz";
-        sha512 = "64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==";
+        url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz";
+        sha512 = "KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==";
       };
     };
     "essentials-1.1.1" = {
@@ -16404,13 +17970,13 @@ let
         sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==";
       };
     };
-    "estraverse-5.1.0" = {
+    "estraverse-5.2.0" = {
       name = "estraverse";
       packageName = "estraverse";
-      version = "5.1.0";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.1.0.tgz";
-        sha512 = "FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw==";
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz";
+        sha512 = "BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==";
       };
     };
     "estree-walker-0.6.1" = {
@@ -16431,6 +17997,15 @@ let
         sha512 = "1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==";
       };
     };
+    "estree-walker-2.0.1" = {
+      name = "estree-walker";
+      packageName = "estree-walker";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.1.tgz";
+        sha512 = "tF0hv+Yi2Ot1cwj9eYHtxC0jB9bmjacjQs6ZBTj82H8JwUywFuc+7E83NWfNMwHXZc11mjfFcVXPe9gEP4B8dg==";
+      };
+    };
     "esutils-1.0.0" = {
       name = "esutils";
       packageName = "esutils";
@@ -16449,15 +18024,6 @@ let
         sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
       };
     };
-    "etag-1.5.1" = {
-      name = "etag";
-      packageName = "etag";
-      version = "1.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/etag/-/etag-1.5.1.tgz";
-        sha1 = "54c50de04ee42695562925ac566588291be7e9ea";
-      };
-    };
     "etag-1.8.1" = {
       name = "etag";
       packageName = "etag";
@@ -16494,15 +18060,6 @@ let
         sha512 = "HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g==";
       };
     };
-    "event-loop-spinner-1.1.0" = {
-      name = "event-loop-spinner";
-      packageName = "event-loop-spinner";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/event-loop-spinner/-/event-loop-spinner-1.1.0.tgz";
-        sha512 = "YVFs6dPpZIgH665kKckDktEVvSBccSYJmoZUfhNUdv5d3Xv+Q+SKF4Xis1jolq9aBzuW1ZZhQh/m/zU/TPdDhw==";
-      };
-    };
     "event-loop-spinner-2.0.0" = {
       name = "event-loop-spinner";
       packageName = "event-loop-spinner";
@@ -16521,15 +18078,6 @@ let
         sha512 = "z7IyloorXvKbFx9Bpie2+vMJKKx1fH1EN5yiTfp8CiLOTptSYy1g8H4yDpGlEdshL1PBiFtBHepF2cNsqeEeFQ==";
       };
     };
-    "event-stream-0.5.3" = {
-      name = "event-stream";
-      packageName = "event-stream";
-      version = "0.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/event-stream/-/event-stream-0.5.3.tgz";
-        sha1 = "b77b9309f7107addfeab63f0c0eafd8db0bd8c1c";
-      };
-    };
     "event-stream-0.9.8" = {
       name = "event-stream";
       packageName = "event-stream";
@@ -16548,15 +18096,6 @@ let
         sha1 = "b4c540012d0fe1498420f3d8946008db6393c37a";
       };
     };
-    "event-stream-3.2.2" = {
-      name = "event-stream";
-      packageName = "event-stream";
-      version = "3.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/event-stream/-/event-stream-3.2.2.tgz";
-        sha1 = "f79f9984c07ee3fd9b44ffb3cd0422b13e24084d";
-      };
-    };
     "event-stream-3.3.4" = {
       name = "event-stream";
       packageName = "event-stream";
@@ -16593,15 +18132,6 @@ let
         sha1 = "8f61b75cde012b2e9eb284d4545583b5643b61ab";
       };
     };
-    "eventemitter3-0.1.6" = {
-      name = "eventemitter3";
-      packageName = "eventemitter3";
-      version = "0.1.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-0.1.6.tgz";
-        sha1 = "8c7ac44b87baab55cd50c828dc38778eac052ea5";
-      };
-    };
     "eventemitter3-1.2.0" = {
       name = "eventemitter3";
       packageName = "eventemitter3";
@@ -16620,6 +18150,15 @@ let
         sha1 = "b5e1079b59fb5e1ba2771c0a993be060a58c99ba";
       };
     };
+    "eventemitter3-3.1.0" = {
+      name = "eventemitter3";
+      packageName = "eventemitter3";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz";
+        sha512 = "ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA==";
+      };
+    };
     "eventemitter3-3.1.2" = {
       name = "eventemitter3";
       packageName = "eventemitter3";
@@ -16629,13 +18168,13 @@ let
         sha512 = "tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==";
       };
     };
-    "eventemitter3-4.0.4" = {
+    "eventemitter3-4.0.7" = {
       name = "eventemitter3";
       packageName = "eventemitter3";
-      version = "4.0.4";
+      version = "4.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz";
-        sha512 = "rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==";
+        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz";
+        sha512 = "8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==";
       };
     };
     "events-1.1.1" = {
@@ -16656,13 +18195,13 @@ let
         sha512 = "3Zmiobend8P9DjmKAty0Era4jV8oJ0yGYe2nJJAxgymF9+N8F2m0hhZiMoWtcfepExzNKZumFU3ksdQbInGWCg==";
       };
     };
-    "events-3.1.0" = {
+    "events-3.2.0" = {
       name = "events";
       packageName = "events";
-      version = "3.1.0";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/events/-/events-3.1.0.tgz";
-        sha512 = "Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg==";
+        url = "https://registry.npmjs.org/events/-/events-3.2.0.tgz";
+        sha512 = "/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==";
       };
     };
     "events.node-0.4.9" = {
@@ -16773,13 +18312,13 @@ let
         sha512 = "r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g==";
       };
     };
-    "execa-4.0.2" = {
+    "execa-4.0.3" = {
       name = "execa";
       packageName = "execa";
-      version = "4.0.2";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/execa/-/execa-4.0.2.tgz";
-        sha512 = "QI2zLa6CjGWdiQsmSkZoGtDx2N+cQIGb3yNolGTdjSQzydzLgYYf8LRuagp7S7fPimjcrzUDSUFd/MgzELMi4Q==";
+        url = "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz";
+        sha512 = "WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==";
       };
     };
     "execall-1.0.0" = {
@@ -16908,15 +18447,6 @@ let
         sha1 = "0b63ae626c96b71b78d13dfce079c10351635a86";
       };
     };
-    "express-4.11.2" = {
-      name = "express";
-      packageName = "express";
-      version = "4.11.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/express/-/express-4.11.2.tgz";
-        sha1 = "8df3d5a9ac848585f00a0777601823faecd3b148";
-      };
-    };
     "express-4.17.1" = {
       name = "express";
       packageName = "express";
@@ -16944,13 +18474,40 @@ let
         sha1 = "3a2ad27f7bebc90fc533d110d7c6d83097bcd057";
       };
     };
-    "express-session-1.17.0" = {
-      name = "express-session";
-      packageName = "express-session";
-      version = "1.17.0";
+    "express-logging-1.1.1" = {
+      name = "express-logging";
+      packageName = "express-logging";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/express-session/-/express-session-1.17.0.tgz";
-        sha512 = "t4oX2z7uoSqATbMfsxWMbNjAL0T5zpvcJCk3Z9wnPPN7ibddhnmDZXHfEcoBMG2ojKXZoCyPMc5FbtK+G7SoDg==";
+        url = "https://registry.npmjs.org/express-logging/-/express-logging-1.1.1.tgz";
+        sha1 = "62839618cbab5bb3610f1a1c1485352fe9d26c2a";
+      };
+    };
+    "express-normalize-query-params-middleware-0.5.1" = {
+      name = "express-normalize-query-params-middleware";
+      packageName = "express-normalize-query-params-middleware";
+      version = "0.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/express-normalize-query-params-middleware/-/express-normalize-query-params-middleware-0.5.1.tgz";
+        sha1 = "dbe1e8139aecb234fb6adb5c0059c75db9733d2a";
+      };
+    };
+    "express-openapi-6.0.0" = {
+      name = "express-openapi";
+      packageName = "express-openapi";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/express-openapi/-/express-openapi-6.0.0.tgz";
+        sha512 = "WQGmghzn+loQsIQUEnLZ0HVKCLhIBVcURvrAhyt6mOqsFsG2tBYhaNKX728EOz2aMXRhEQhkQ+RXQsIFpbS6IA==";
+      };
+    };
+    "express-openapi-7.0.0" = {
+      name = "express-openapi";
+      packageName = "express-openapi";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/express-openapi/-/express-openapi-7.0.0.tgz";
+        sha512 = "ryjUF/MuYEh13jXKNOD7kw/o6n1MTywDP08n5/BqFRd9IaTX33vZEKhk9NlsvGfD63lNre/84CN0hPLvWEe7qQ==";
       };
     };
     "express-session-1.17.1" = {
@@ -16962,13 +18519,13 @@ let
         sha512 = "UbHwgqjxQZJiWRTMyhvWGvjBQduGCSBDhhZXYenziMFjxst5rMV+aJZ6hKPHZnPyHGsrqRICxtX8jtEbm/z36Q==";
       };
     };
-    "express-urlrewrite-1.2.0" = {
+    "express-urlrewrite-1.3.0" = {
       name = "express-urlrewrite";
       packageName = "express-urlrewrite";
-      version = "1.2.0";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/express-urlrewrite/-/express-urlrewrite-1.2.0.tgz";
-        sha1 = "8e667b7761ff1c7ffdb0efa05d64035387c823eb";
+        url = "https://registry.npmjs.org/express-urlrewrite/-/express-urlrewrite-1.3.0.tgz";
+        sha512 = "xy3WZqA9EIfb51FkL1R0EqW91Z8lMi9ohp/WrNxKukvQulybqvh7+OsGiw9JOD51NrGsSuWi2hqOv7GW+DGz1w==";
       };
     };
     "express-validator-2.21.0" = {
@@ -17016,15 +18573,6 @@ let
         sha512 = "yblEwXAbGv1VQDmow7s38W77hzAgJAO50ztBLMcUyUBfxv1HC+LGwtiEN+Co6LtlqT/5uwVOxsD4TNIilWhwdQ==";
       };
     };
-    "extend-1.2.1" = {
-      name = "extend";
-      packageName = "extend";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/extend/-/extend-1.2.1.tgz";
-        sha1 = "a0f5fd6cfc83a5fe49ef698d60ec8a624dd4576c";
-      };
-    };
     "extend-3.0.0" = {
       name = "extend";
       packageName = "extend";
@@ -17133,15 +18681,6 @@ let
         sha512 = "qRW6y9eKF0VbCyOoOEtFhzJ3uykAw8GKwQVXyAIqwocyEWW4m+v+evec34RwtUkkxxHh7NKBLJ6AnXM8W4dH5w==";
       };
     };
-    "extract-files-8.1.0" = {
-      name = "extract-files";
-      packageName = "extract-files";
-      version = "8.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/extract-files/-/extract-files-8.1.0.tgz";
-        sha512 = "PTGtfthZK79WUMk+avLmwx3NGdU8+iVFXC2NMGxKsn0MnihOG2lvumj+AZo8CTwTrwjXDgZ5tztbRlEdRjBonQ==";
-      };
-    };
     "extract-stack-1.0.0" = {
       name = "extract-stack";
       packageName = "extract-stack";
@@ -17151,6 +18690,15 @@ let
         sha1 = "b97acaf9441eea2332529624b732fc5a1c8165fa";
       };
     };
+    "extract-stack-2.0.0" = {
+      name = "extract-stack";
+      packageName = "extract-stack";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extract-stack/-/extract-stack-2.0.0.tgz";
+        sha512 = "AEo4zm+TenK7zQorGK1f9mJ8L14hnTDi2ZQPR+Mub1NX8zimka1mXpV5LpH8x9HoUmFSHZCfLHqWvp0Y4FxxzQ==";
+      };
+    };
     "extract-zip-1.7.0" = {
       name = "extract-zip";
       packageName = "extract-zip";
@@ -17286,6 +18834,15 @@ let
         sha512 = "xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==";
       };
     };
+    "fast-equals-1.6.3" = {
+      name = "fast-equals";
+      packageName = "fast-equals";
+      version = "1.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-equals/-/fast-equals-1.6.3.tgz";
+        sha512 = "4WKW0AL5+WEqO0zWavAfYGY1qwLsBgE//DN4TTcVEN2UlINgkv9b3vm2iHicoenWKSX9mKWmGOsU/iI5IST7pQ==";
+      };
+    };
     "fast-glob-2.2.7" = {
       name = "fast-glob";
       packageName = "fast-glob";
@@ -17295,13 +18852,13 @@ let
         sha512 = "g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==";
       };
     };
-    "fast-glob-3.2.2" = {
+    "fast-glob-3.2.4" = {
       name = "fast-glob";
       packageName = "fast-glob";
-      version = "3.2.2";
+      version = "3.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.2.tgz";
-        sha512 = "UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A==";
+        url = "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz";
+        sha512 = "kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==";
       };
     };
     "fast-json-parse-1.0.3" = {
@@ -17340,6 +18897,15 @@ let
         sha1 = "0178dcdee023b92905193af0959e8a7639cfdcb9";
       };
     };
+    "fast-levenshtein-1.1.4" = {
+      name = "fast-levenshtein";
+      packageName = "fast-levenshtein";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz";
+        sha1 = "e6a754cc8f15e58987aa9cbd27af66fd6f4e5af9";
+      };
+    };
     "fast-levenshtein-2.0.6" = {
       name = "fast-levenshtein";
       packageName = "fast-levenshtein";
@@ -17376,13 +18942,22 @@ let
         sha512 = "Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==";
       };
     };
-    "fast-text-encoding-1.0.2" = {
+    "fast-stringify-1.1.2" = {
+      name = "fast-stringify";
+      packageName = "fast-stringify";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-stringify/-/fast-stringify-1.1.2.tgz";
+        sha512 = "SfslXjiH8km0WnRiuPfpUKwlZjW5I878qsOm+2x8x3TgqmElOOLh1rgJFb+PolNdNRK3r8urEefqx0wt7vx1dA==";
+      };
+    };
+    "fast-text-encoding-1.0.3" = {
       name = "fast-text-encoding";
       packageName = "fast-text-encoding";
-      version = "1.0.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.2.tgz";
-        sha512 = "5rQdinSsycpzvAoHga2EDn+LRX1d5xLFsuNG0Kg61JrAT/tASXcLL0nf/33v+sAxlQcfYmWbTURa1mmAf55jGw==";
+        url = "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz";
+        sha512 = "dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==";
       };
     };
     "fast-url-parser-1.1.3" = {
@@ -17394,6 +18969,15 @@ let
         sha1 = "f4af3ea9f34d8a271cf58ad2b3759f431f0b318d";
       };
     };
+    "fastest-levenshtein-1.0.12" = {
+      name = "fastest-levenshtein";
+      packageName = "fastest-levenshtein";
+      version = "1.0.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz";
+        sha512 = "On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==";
+      };
+    };
     "fastparse-1.1.2" = {
       name = "fastparse";
       packageName = "fastparse";
@@ -17448,13 +19032,13 @@ let
         sha512 = "DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==";
       };
     };
-    "fd-lock-1.0.2" = {
+    "fd-lock-1.1.1" = {
       name = "fd-lock";
       packageName = "fd-lock";
-      version = "1.0.2";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fd-lock/-/fd-lock-1.0.2.tgz";
-        sha512 = "8O4zSv6rlNNghVfzVkj/p7LUIeBm7Xxk6QnhfmR1WJm/W4kwS8IyShy4X1peRnFUYZUYLlcwEMKXF8QWxJCMvg==";
+        url = "https://registry.npmjs.org/fd-lock/-/fd-lock-1.1.1.tgz";
+        sha512 = "Ng+IXbq6LPMDvvVb0Vr325NjqhPwqlLIvmf43ii7t3WQvo2sHU6V6jQY1cclflxPaPfvNUAuD5VdPuIO1sp50g==";
       };
     };
     "fd-read-stream-1.1.0" = {
@@ -17475,13 +19059,13 @@ let
         sha1 = "25c7c89cb1f9077f8891bbe61d8f390eae256f1e";
       };
     };
-    "fecha-2.3.3" = {
+    "fecha-4.2.0" = {
       name = "fecha";
       packageName = "fecha";
-      version = "2.3.3";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz";
-        sha512 = "lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==";
+        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz";
+        sha512 = "aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==";
       };
     };
     "fields-0.1.24" = {
@@ -17556,13 +19140,13 @@ let
         sha512 = "bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==";
       };
     };
-    "file-exists-dazinatorfork-1.0.2" = {
-      name = "file-exists-dazinatorfork";
-      packageName = "file-exists-dazinatorfork";
-      version = "1.0.2";
+    "file-size-0.0.5" = {
+      name = "file-size";
+      packageName = "file-size";
+      version = "0.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/file-exists-dazinatorfork/-/file-exists-dazinatorfork-1.0.2.tgz";
-        sha512 = "r70c72ln2YHzQINNfxDp02hAhbGkt1HffZ+Du8oetWDLjDtFja/Lm10lUaSh9e+wD+7VDvPee0b0C9SAy8pWZg==";
+        url = "https://registry.npmjs.org/file-size/-/file-size-0.0.5.tgz";
+        sha1 = "057d43c3a3ed735da3f90d6052ab380f1e6d5e3b";
       };
     };
     "file-type-10.11.0" = {
@@ -17574,13 +19158,22 @@ let
         sha512 = "uzk64HRpUZyTGZtVuvrjP0FYxzQrBf4rojot6J65YMEbwBLB0CWm0CLojVpwpmFmxcE/lkvYICgfcGozbBq6rw==";
       };
     };
-    "file-type-14.1.3" = {
+    "file-type-11.1.0" = {
       name = "file-type";
       packageName = "file-type";
-      version = "14.1.3";
+      version = "11.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/file-type/-/file-type-14.1.3.tgz";
-        sha512 = "fTTNfpY1QxlpKCrA5bRxZL/6f7+6jUCJkOCCzFkAI+tmLu5lfX+4Zo22GG1orRhVH7Dx0fHtMFXq0++NDjKn/w==";
+        url = "https://registry.npmjs.org/file-type/-/file-type-11.1.0.tgz";
+        sha512 = "rM0UO7Qm9K7TWTtA6AShI/t7H5BPjDeGVDaNyg9BjHAj3PysKy7+8C8D137R88jnR3rFJZQB/tFgydl5sN5m7g==";
+      };
+    };
+    "file-type-14.7.1" = {
+      name = "file-type";
+      packageName = "file-type";
+      version = "14.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-type/-/file-type-14.7.1.tgz";
+        sha512 = "sXAMgFk67fQLcetXustxfKX+PZgHIUFn96Xld9uH8aXPdX3xOp0/jg9OdouVTvQrf7mrn+wAa4jN/y9fUOOiRA==";
       };
     };
     "file-type-3.9.0" = {
@@ -17673,6 +19266,15 @@ let
         sha512 = "ICw7NTT6RsDp2rnYKVd8Fu4cr6ITzGy3+u4vUujPkabyaz+03F24NWEX7fs5fp+kBonlaqPH8fAO2NM+SXt/JA==";
       };
     };
+    "filenamify-3.0.0" = {
+      name = "filenamify";
+      packageName = "filenamify";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/filenamify/-/filenamify-3.0.0.tgz";
+        sha512 = "5EFZ//MsvJgXjBAFJ+Bh2YaCTRF/VP1YOmGrgt+KJ4SFRLjI87EIdwLLuT6wQX0I4F9W41xutobzczjsOKlI/g==";
+      };
+    };
     "filenamify-4.1.0" = {
       name = "filenamify";
       packageName = "filenamify";
@@ -17691,6 +19293,15 @@ let
         sha512 = "7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==";
       };
     };
+    "filesize-6.1.0" = {
+      name = "filesize";
+      packageName = "filesize";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz";
+        sha512 = "LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==";
+      };
+    };
     "filestream-5.0.0" = {
       name = "filestream";
       packageName = "filestream";
@@ -17700,15 +19311,6 @@ let
         sha512 = "5H3RqSaJp12THfZiNWodYM7TiKfQvrpX+EIOrB1XvCceTys4yvfEIl8wDp+/yI8qj6Bxym8m0NYWwVXDAet/+A==";
       };
     };
-    "filing-cabinet-2.5.1" = {
-      name = "filing-cabinet";
-      packageName = "filing-cabinet";
-      version = "2.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/filing-cabinet/-/filing-cabinet-2.5.1.tgz";
-        sha512 = "GWOdObzou2L0HrJUk8MpJa01q0ZOwuTwTssM2+P+ABJWEGlVWd6ueEatANFdin94/3rdkVSdqpH14VqCNqp3RA==";
-      };
-    };
     "fill-range-2.2.4" = {
       name = "fill-range";
       packageName = "fill-range";
@@ -17745,15 +19347,6 @@ let
         sha512 = "yDEp513p7+iLdFHWBVdZFnRiOYwg8ZqmpaAiZCMjzqsbo7tCS4Qm4ulXOht337NGzkukKa9u3W4wqQ9tQPm3Ug==";
       };
     };
-    "finalhandler-0.3.3" = {
-      name = "finalhandler";
-      packageName = "finalhandler";
-      version = "0.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/finalhandler/-/finalhandler-0.3.3.tgz";
-        sha1 = "b1a09aa1e6a607b3541669b09bcb727f460cd426";
-      };
-    };
     "finalhandler-1.1.2" = {
       name = "finalhandler";
       packageName = "finalhandler";
@@ -17763,15 +19356,6 @@ let
         sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
       };
     };
-    "find-0.3.0" = {
-      name = "find";
-      packageName = "find";
-      version = "0.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/find/-/find-0.3.0.tgz";
-        sha512 = "iSd+O4OEYV/I36Zl8MdYJO0xD82wH528SaCieTVHhclgiYNe9y+yPKSwK+A7/WsmHL1EZ+pYUJBXWTL5qofksw==";
-      };
-    };
     "find-cache-dir-2.1.0" = {
       name = "find-cache-dir";
       packageName = "find-cache-dir";
@@ -17790,15 +19374,6 @@ let
         sha512 = "t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==";
       };
     };
-    "find-index-0.1.1" = {
-      name = "find-index";
-      packageName = "find-index";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/find-index/-/find-index-0.1.1.tgz";
-        sha1 = "675d358b2ca3892d795a1ab47232f8b6e2e0dde4";
-      };
-    };
     "find-process-1.4.3" = {
       name = "find-process";
       packageName = "find-process";
@@ -17853,6 +19428,15 @@ let
         sha512 = "PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==";
       };
     };
+    "find-up-5.0.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz";
+        sha512 = "78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==";
+      };
+    };
     "find-versions-2.0.0" = {
       name = "find-versions";
       packageName = "find-versions";
@@ -17916,22 +19500,13 @@ let
         sha512 = "ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==";
       };
     };
-    "firefox-profile-1.3.1" = {
+    "firefox-profile-2.0.0" = {
       name = "firefox-profile";
       packageName = "firefox-profile";
-      version = "1.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/firefox-profile/-/firefox-profile-1.3.1.tgz";
-        sha512 = "8q7DnwVIXvuJuBm1shr5ivRh0Ih2ytWwOIMwHInDSlVyrjQVXy7Ik0frItDdWb/P5CIpQFcMk9fPsUwNqi2lyQ==";
-      };
-    };
-    "first-chunk-stream-1.0.0" = {
-      name = "first-chunk-stream";
-      packageName = "first-chunk-stream";
-      version = "1.0.0";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-1.0.0.tgz";
-        sha1 = "59bfb50cd905f60d7c394cd3d9acaab4e6ad934e";
+        url = "https://registry.npmjs.org/firefox-profile/-/firefox-profile-2.0.0.tgz";
+        sha512 = "BPfcUISOV6+UwF6uqo5QS8iuFL6XZvHCm+1iuynIJ7fe1zea69Is77/n/098fp0a9sZ94lvT8rpYB15S/riSaA==";
       };
     };
     "first-chunk-stream-2.0.0" = {
@@ -17952,6 +19527,15 @@ let
         sha512 = "LNRvR4hr/S8cXXkIY5pTgVP7L3tq6LlYWcg9nWBuW7o1NMxKZo6oOVa/6GIekMGI0Iw7uC+HWimMe9u/VAeKqw==";
       };
     };
+    "first-chunk-stream-4.0.0" = {
+      name = "first-chunk-stream";
+      packageName = "first-chunk-stream";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-4.0.0.tgz";
+        sha512 = "8TOz/mJp7+zc2HN63vnJHotwceq4gQI1+/gdJVnJcG4dEB96oUxw7wV9We4QKjSFWUc/V0ADDfaGba5cDoG6EA==";
+      };
+    };
     "fkill-6.2.0" = {
       name = "fkill";
       packageName = "fkill";
@@ -17988,13 +19572,13 @@ let
         sha512 = "Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==";
       };
     };
-    "flat-5.0.0" = {
+    "flat-5.0.2" = {
       name = "flat";
       packageName = "flat";
-      version = "5.0.0";
+      version = "5.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flat/-/flat-5.0.0.tgz";
-        sha512 = "6KSMM+cHHzXC/hpldXApL2S8Uz+QZv+tq5o/L0KQYleoG+GcwrnIJhTWC7tCOiKQp8D/fIvryINU1OZCCwevjA==";
+        url = "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz";
+        sha512 = "b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==";
       };
     };
     "flat-cache-1.3.4" = {
@@ -18087,13 +19671,13 @@ let
         sha512 = "jlbUu0XkbpXeXhan5xyTqVK1jmEKNxE8hpzznI3TThHTr76GiFwK0iRzhDo4KNy+S9h/KxHaqVhTP86vA6wHCg==";
       };
     };
-    "flow-parser-0.126.1" = {
+    "flow-parser-0.134.0" = {
       name = "flow-parser";
       packageName = "flow-parser";
-      version = "0.126.1";
+      version = "0.134.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.126.1.tgz";
-        sha512 = "HDQAPl2F8vuGgyVm/Zx4vmT9Ja/ACAVIWVA3FRIcNoklkWsWDv+2vv2oVLk/2n+jAzESmvA5nFc2ElayVFZN1A==";
+        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.134.0.tgz";
+        sha512 = "VmRba5YXKmVqIH3xNzUJ4pNobxXEOl6h36m+0f5dZ6/av9YlRpls/yBnPESQ4qBUbyyp7iqoc1Feo1lFw3u1YQ==";
       };
     };
     "fluent-ffmpeg-2.1.2" = {
@@ -18132,6 +19716,15 @@ let
         sha1 = "ae049a714386bb83e342657a82924b70364a90d6";
       };
     };
+    "flumedb-2.1.8" = {
+      name = "flumedb";
+      packageName = "flumedb";
+      version = "2.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flumedb/-/flumedb-2.1.8.tgz";
+        sha512 = "MtBCZFjj9GuqOQP8Ld87FbXm8ztQyLkLeuiHuB5+aACFuVn1kunnCis75R03ujFZTqCFmkBwFz7E016b3DB0zA==";
+      };
+    };
     "flumelog-offset-3.4.4" = {
       name = "flumelog-offset";
       packageName = "flumelog-offset";
@@ -18159,6 +19752,15 @@ let
         sha512 = "Nl0gJOgrDGpJGZDkP6gvo6s1Q9WmRynbHUvI/JY3eQ81YgzUUa2FKLlfu6OHV5ho5NeXP+00F+0K1yBVaEgJOQ==";
       };
     };
+    "flumeview-level-4.0.4" = {
+      name = "flumeview-level";
+      packageName = "flumeview-level";
+      version = "4.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flumeview-level/-/flumeview-level-4.0.4.tgz";
+        sha512 = "8C/o/oZU73ot1LMbxCyKeZJ0D3L5AGdxzIF5H2QtmznMSoZHVG1gT2IDjkOtesenVPlLQKnL95ewMKbE7cXWEw==";
+      };
+    };
     "flumeview-links-1.0.1" = {
       name = "flumeview-links";
       packageName = "flumeview-links";
@@ -18168,22 +19770,22 @@ let
         sha512 = "X7enLH2Ijoav3xA+EPoahf5e1RjMoRaHWQcG/RyHvpXbV/qlhEgH2zwIi8kg+Ezt90KTtnGxVygcSZ7RGpdkng==";
       };
     };
-    "flumeview-query-7.2.2" = {
+    "flumeview-query-8.0.0" = {
       name = "flumeview-query";
       packageName = "flumeview-query";
-      version = "7.2.2";
+      version = "8.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flumeview-query/-/flumeview-query-7.2.2.tgz";
-        sha512 = "zDwy3WIbF5pKhwyK0wVtGdedU+1Xh2Dnrg06fJ0dIkAcQs8+u+CaoSBcnyp80i6XmzfzGCRkN0Fdve2b6f5XAA==";
+        url = "https://registry.npmjs.org/flumeview-query/-/flumeview-query-8.0.0.tgz";
+        sha512 = "uPTT5I26ePMc6Xhjebu1aiaHAd7P3EqyE9SZB6B9ZIvXtMXhFYNk7iO1yzh1ZXp3aYzdYmrI9k8mSz9urZ9gNQ==";
       };
     };
-    "flumeview-reduce-1.3.16" = {
+    "flumeview-reduce-1.3.17" = {
       name = "flumeview-reduce";
       packageName = "flumeview-reduce";
-      version = "1.3.16";
+      version = "1.3.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flumeview-reduce/-/flumeview-reduce-1.3.16.tgz";
-        sha512 = "4ATidV3QARML74eNdi+HPzGa4JtSZfnQpW6QQArlKZ6NRkjax3EFLt42hK2VJyADxnVnsVInt/ItqJL/4G1/5g==";
+        url = "https://registry.npmjs.org/flumeview-reduce/-/flumeview-reduce-1.3.17.tgz";
+        sha512 = "Li09TntlRpN51GtFKllIh5nDdBcyDazvi5a/yvbdUCS9xAFb8OA6H6uu32W9gG+4GyvfUi9AsOyN8RQ8OcREQA==";
       };
     };
     "flush-write-stream-1.1.1" = {
@@ -18195,6 +19797,15 @@ let
         sha512 = "3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==";
       };
     };
+    "flush-write-stream-2.0.0" = {
+      name = "flush-write-stream";
+      packageName = "flush-write-stream";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-2.0.0.tgz";
+        sha512 = "uXClqPxT4xW0lcdSBheb2ObVU+kuqUk3Jk64EwieirEXZx9XUrVwp/JuBfKAWaM4T5Td/VL7QLDWPXp/MvGm/g==";
+      };
+    };
     "fn-name-2.0.1" = {
       name = "fn-name";
       packageName = "fn-name";
@@ -18204,13 +19815,31 @@ let
         sha1 = "5214d7537a4d06a4a301c0cc262feb84188002e7";
       };
     };
-    "follow-redirects-1.11.0" = {
+    "fn.name-1.1.0" = {
+      name = "fn.name";
+      packageName = "fn.name";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz";
+        sha512 = "GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==";
+      };
+    };
+    "folder-walker-3.2.0" = {
+      name = "folder-walker";
+      packageName = "folder-walker";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/folder-walker/-/folder-walker-3.2.0.tgz";
+        sha512 = "VjAQdSLsl6AkpZNyrQJfO7BXLo4chnStqb055bumZMbRUPpVuPN3a4ktsnRCmrFZjtMlYLkyXiR5rAs4WOpC4Q==";
+      };
+    };
+    "follow-redirects-1.13.0" = {
       name = "follow-redirects";
       packageName = "follow-redirects";
-      version = "1.11.0";
+      version = "1.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.11.0.tgz";
-        sha512 = "KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA==";
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz";
+        sha512 = "aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==";
       };
     };
     "follow-redirects-1.5.10" = {
@@ -18312,22 +19941,22 @@ let
         sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
       };
     };
-    "forever-monitor-3.0.0" = {
+    "forever-monitor-3.0.1" = {
       name = "forever-monitor";
       packageName = "forever-monitor";
-      version = "3.0.0";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/forever-monitor/-/forever-monitor-3.0.0.tgz";
-        sha512 = "F3E8C9CTPK+uRGdVTMBHGo7mHX+KRtClLzkegR6ux1yy+ByxOziumpTzxajzfhICHfYdnGWY4Bokl8dirYsDeA==";
+        url = "https://registry.npmjs.org/forever-monitor/-/forever-monitor-3.0.1.tgz";
+        sha512 = "47VfT5AYpxn1bnsnH6UfpBWKpMVnSz42MZwH+hwz/wACd9THyUu/fRoCRIT758fzCAbRoHIlkVUAL+WmlxSKeg==";
       };
     };
-    "form-data-0.1.3" = {
-      name = "form-data";
-      packageName = "form-data";
-      version = "0.1.3";
+    "fork-ts-checker-webpack-plugin-5.1.0" = {
+      name = "fork-ts-checker-webpack-plugin";
+      packageName = "fork-ts-checker-webpack-plugin";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/form-data/-/form-data-0.1.3.tgz";
-        sha1 = "4ee4346e6eb5362e8344a02075bd8dbd8c7373ea";
+        url = "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-5.1.0.tgz";
+        sha512 = "vuKyEjSLGbhQbEr5bifXXOkr9iV73L6n72mHoHIv7okvrf7O7z6RKeplM6C6ATPsukoQivij+Ba1vcptL60Z2g==";
       };
     };
     "form-data-1.0.0-rc3" = {
@@ -18384,13 +20013,13 @@ let
         sha512 = "CKMFDglpbMi6PyN+brwB9Q/GOw0eAnsrEZDgcsH5Krhz5Od/haKHAX0NmQfha2zPPz0JpWzA7GJHGSnvCRLWsg==";
       };
     };
-    "form-urlencoded-4.1.4" = {
+    "form-urlencoded-4.2.1" = {
       name = "form-urlencoded";
       packageName = "form-urlencoded";
-      version = "4.1.4";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-4.1.4.tgz";
-        sha512 = "R7Vytos0gMYuPQTMwnNzvK9PBItNV+Qkm/pvghEZI3j2kMrzZmJlczAgHFmt12VV+IRYQXgTlSGP1PKAsMCIUA==";
+        url = "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-4.2.1.tgz";
+        sha512 = "0eFJroOH2qaqc/630d4YZpmsyKmh6sfq/1z3YMXvFab0O6teGnf8640C7gufikwbQJFaC6nPlG4d/GiYVN+Dcw==";
       };
     };
     "format-0.2.2" = {
@@ -18402,6 +20031,15 @@ let
         sha1 = "d6170107e9efdc4ed30c9dc39016df942b5cb58b";
       };
     };
+    "format-util-1.0.5" = {
+      name = "format-util";
+      packageName = "format-util";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/format-util/-/format-util-1.0.5.tgz";
+        sha512 = "varLbTj0e0yVyRpqQhuWV+8hlePAgaoFRhNFj50BNjEIrw1/DphHSObtqwskVCPWNgzwPoQrZAbfa/SBiicNeg==";
+      };
+    };
     "formidable-1.0.11" = {
       name = "formidable";
       packageName = "formidable";
@@ -18411,15 +20049,6 @@ let
         sha1 = "68f63325a035e644b6f7bb3d11243b9761de1b30";
       };
     };
-    "formidable-1.0.14" = {
-      name = "formidable";
-      packageName = "formidable";
-      version = "1.0.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/formidable/-/formidable-1.0.14.tgz";
-        sha1 = "2b3f4c411cbb5fdd695c44843e2a23514a43231a";
-      };
-    };
     "formidable-1.0.17" = {
       name = "formidable";
       packageName = "formidable";
@@ -18447,22 +20076,13 @@ let
         sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
       };
     };
-    "fp-ts-2.6.5" = {
+    "fp-ts-2.8.2" = {
       name = "fp-ts";
       packageName = "fp-ts";
-      version = "2.6.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.6.5.tgz";
-        sha512 = "lQNzOMJj98b623+UZLQ+tnN/8qtNXz/vRoR9k7L/9OlUIyYH3qVzSUVZBDXYsAd7nOWzzdQALCX1ZqcF70altQ==";
-      };
-    };
-    "fraction.js-4.0.12" = {
-      name = "fraction.js";
-      packageName = "fraction.js";
-      version = "4.0.12";
+      version = "2.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fraction.js/-/fraction.js-4.0.12.tgz";
-        sha512 = "8Z1K0VTG4hzYY7kA/1sj4/r1/RWLBD3xwReT/RCrUCbzPszjNQCCsy3ktkU/eaEqX3MYa4pY37a52eiBlPMlhA==";
+        url = "https://registry.npmjs.org/fp-ts/-/fp-ts-2.8.2.tgz";
+        sha512 = "YKLBW75Rp+L9DuY1jr7QO6mZLTmJjy7tOqSAMcB2q2kBomqLjBMyV7dotpcnZmUYY6khMsfgYWtPbUDOFcNmkA==";
       };
     };
     "fragment-cache-0.2.1" = {
@@ -18501,15 +20121,6 @@ let
         sha1 = "bfd9402cf3df12c4a4c310c79f99a3dde13d34a7";
       };
     };
-    "fresh-0.2.4" = {
-      name = "fresh";
-      packageName = "fresh";
-      version = "0.2.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fresh/-/fresh-0.2.4.tgz";
-        sha1 = "3582499206c9723714190edd74b4604feb4a614c";
-      };
-    };
     "fresh-0.5.2" = {
       name = "fresh";
       packageName = "fresh";
@@ -18537,6 +20148,15 @@ let
         sha1 = "8bfb5502bde4a4d36cfdeea007fcca21d7e382af";
       };
     };
+    "from2-array-0.0.4" = {
+      name = "from2-array";
+      packageName = "from2-array";
+      version = "0.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/from2-array/-/from2-array-0.0.4.tgz";
+        sha1 = "eafc16b65f6e2719bcd57fdc1869005ac1332cd6";
+      };
+    };
     "fs-capacitor-2.0.4" = {
       name = "fs-capacitor";
       packageName = "fs-capacitor";
@@ -18618,15 +20238,6 @@ let
         sha1 = "cd3ce5f7e7cb6145883fcae3191e9877f8587950";
       };
     };
-    "fs-extra-3.0.1" = {
-      name = "fs-extra";
-      packageName = "fs-extra";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz";
-        sha1 = "3794f378c58b342ea7dbbb23095109c4b3b62291";
-      };
-    };
     "fs-extra-4.0.3" = {
       name = "fs-extra";
       packageName = "fs-extra";
@@ -18708,6 +20319,33 @@ let
         sha1 = "0b7815fc3201c6a69e14db98ce098c16935259eb";
       };
     };
+    "fs-monkey-1.0.1" = {
+      name = "fs-monkey";
+      packageName = "fs-monkey";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.1.tgz";
+        sha512 = "fcSa+wyTqZa46iWweI7/ZiUfegOZl0SG8+dltIwFXo7+zYU9J9kpS3NB6pZcSlJdhvIwp81Adx2XhZorncxiaA==";
+      };
+    };
+    "fs-routes-2.0.0" = {
+      name = "fs-routes";
+      packageName = "fs-routes";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-routes/-/fs-routes-2.0.0.tgz";
+        sha512 = "oITW9GoYFZwYWR2aMDdUvr6W9O5mtzSizIVEUdeCQaFD6+BylwPSEP2+ZFWv1UYpE9kiPS3Hb0knh2PmFJcj6A==";
+      };
+    };
+    "fs-routes-7.0.1" = {
+      name = "fs-routes";
+      packageName = "fs-routes";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-routes/-/fs-routes-7.0.1.tgz";
+        sha512 = "kSAfx/P8oLSi5+tblecTETcJJ/Q+qL+xzGx4hns/+gHXMkTOZEzG73/2dBDW1FFy5+ZW080XoMaBAN2kCN55aQ==";
+      };
+    };
     "fs-write-stream-atomic-1.0.10" = {
       name = "fs-write-stream-atomic";
       packageName = "fs-write-stream-atomic";
@@ -18762,15 +20400,6 @@ let
         sha512 = "oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==";
       };
     };
-    "fsevents-2.1.2" = {
-      name = "fsevents";
-      packageName = "fsevents";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz";
-        sha512 = "R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==";
-      };
-    };
     "fsevents-2.1.3" = {
       name = "fsevents";
       packageName = "fsevents";
@@ -18852,13 +20481,22 @@ let
         sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
       };
     };
-    "fuse.js-3.6.1" = {
+    "fuse.js-6.4.1" = {
       name = "fuse.js";
       packageName = "fuse.js";
-      version = "3.6.1";
+      version = "6.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fuse.js/-/fuse.js-6.4.1.tgz";
+        sha512 = "+hAS7KYgLXontDh/vqffs7wIBw0ceb9Sx8ywZQhOsiQGcSO5zInGhttWOUYQYlvV/yYMJOacQ129Xs3mP3+oZQ==";
+      };
+    };
+    "fuzzy-0.1.3" = {
+      name = "fuzzy";
+      packageName = "fuzzy";
+      version = "0.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fuse.js/-/fuse.js-3.6.1.tgz";
-        sha512 = "hT9yh/tiinkmirKrlv4KWOjztdoZo1mx9Qh4KvWqC7isoXwdUY3PNWUxceF4/qO9R6riA2C29jdTOeQOIROjgw==";
+        url = "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz";
+        sha1 = "4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8";
       };
     };
     "fuzzy-search-3.2.1" = {
@@ -18879,13 +20517,13 @@ let
         sha1 = "979e22f9451b4b38f051f7937c919dbacc692958";
       };
     };
-    "fx-runner-1.0.11" = {
+    "fx-runner-1.0.13" = {
       name = "fx-runner";
       packageName = "fx-runner";
-      version = "1.0.11";
+      version = "1.0.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fx-runner/-/fx-runner-1.0.11.tgz";
-        sha512 = "igHogHf5wTqqaPPTOav18MMTVq/eoeTJiw/PvPUuwnzU8vbyZInFPgR66G9ZBwvwxC7e611nbtB4xSMcYVhlvg==";
+        url = "https://registry.npmjs.org/fx-runner/-/fx-runner-1.0.13.tgz";
+        sha512 = "Ces2bm+LNuXehkvmN1/Z+oEDkI/jHBp9xdyBtBy7hcgvF18/pv/D8F6A6kQgNkMZsnBgLEv+VvdDxyqkfkYycw==";
       };
     };
     "gauge-1.2.7" = {
@@ -18906,15 +20544,6 @@ let
         sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
       };
     };
-    "gaze-0.5.2" = {
-      name = "gaze";
-      packageName = "gaze";
-      version = "0.5.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz";
-        sha1 = "40b709537d24d1d45767db5a908689dfe69ac44f";
-      };
-    };
     "gaze-1.1.3" = {
       name = "gaze";
       packageName = "gaze";
@@ -18978,6 +20607,15 @@ let
         sha1 = "9c0e1c40308ce804f4783618b937fa88f99d50d0";
       };
     };
+    "generic-names-2.0.1" = {
+      name = "generic-names";
+      packageName = "generic-names";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/generic-names/-/generic-names-2.0.1.tgz";
+        sha512 = "kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ==";
+      };
+    };
     "genfun-5.0.0" = {
       name = "genfun";
       packageName = "genfun";
@@ -19050,15 +20688,6 @@ let
         sha1 = "ead774abee72e20409433a066366023dd6887a41";
       };
     };
-    "get-own-enumerable-property-symbols-3.0.2" = {
-      name = "get-own-enumerable-property-symbols";
-      packageName = "get-own-enumerable-property-symbols";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz";
-        sha512 = "I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==";
-      };
-    };
     "get-package-type-0.1.0" = {
       name = "get-package-type";
       packageName = "get-package-type";
@@ -19095,6 +20724,15 @@ let
         sha512 = "/b3jarXkH8KJoOMQc3uVGHASwGLPq3gSFJ7tgJm2diza+bydJPTGOibin2steecKeOylE8oY2JERlVWkAJO6yw==";
       };
     };
+    "get-port-5.1.1" = {
+      name = "get-port";
+      packageName = "get-port";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz";
+        sha512 = "g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ==";
+      };
+    };
     "get-prototype-chain-1.0.1" = {
       name = "get-prototype-chain";
       packageName = "get-prototype-chain";
@@ -19185,13 +20823,13 @@ let
         sha512 = "GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==";
       };
     };
-    "get-stream-5.1.0" = {
+    "get-stream-5.2.0" = {
       name = "get-stream";
       packageName = "get-stream";
-      version = "5.1.0";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz";
-        sha512 = "EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==";
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz";
+        sha512 = "nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==";
       };
     };
     "get-uri-2.0.4" = {
@@ -19212,13 +20850,13 @@ let
         sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
       };
     };
-    "getmac-5.2.0" = {
+    "getmac-5.15.0" = {
       name = "getmac";
       packageName = "getmac";
-      version = "5.2.0";
+      version = "5.15.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/getmac/-/getmac-5.2.0.tgz";
-        sha512 = "FBQqEBO4hFlv//gtN8+x4tINgfb4noOGl3WCSGd9xaPRMkMK3Lt/FF1/dwiD3p7i2F0u3uL6oV61MQyHqYqVlw==";
+        url = "https://registry.npmjs.org/getmac/-/getmac-5.15.0.tgz";
+        sha512 = "+XN9PwRDWkZ1xFaQR5GOAPDqlK+eNi5M0QBfqeeJvFJaDrwZzplYg1N8uoOZSB9RtDoPcG58Xq2dOYnbZ23N2Q==";
       };
     };
     "getpass-0.1.6" = {
@@ -19248,6 +20886,15 @@ let
         sha1 = "ee95be37106fd8748a96f8d1db4baea89e1bfa8a";
       };
     };
+    "gh-release-fetch-1.0.4" = {
+      name = "gh-release-fetch";
+      packageName = "gh-release-fetch";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gh-release-fetch/-/gh-release-fetch-1.0.4.tgz";
+        sha512 = "uL2T1vCOr5HAuY1Cbtj+h1AOTWZ0Qvubi1s7KCRqKOiytVlTDHLYoPJ9TIJLEmNYbmuCtZVOtYsojf3REAAgbQ==";
+      };
+    };
     "git-apply-delta-0.0.7" = {
       name = "git-apply-delta";
       packageName = "git-apply-delta";
@@ -19329,6 +20976,15 @@ let
         sha1 = "7f51b804924d6c603fc142e3302998d4e0b4d906";
       };
     };
+    "git-repo-info-2.1.1" = {
+      name = "git-repo-info";
+      packageName = "git-repo-info";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/git-repo-info/-/git-repo-info-2.1.1.tgz";
+        sha512 = "8aCohiDo4jwjOwma4FmYFd3i97urZulL8XL24nIPxuE+GZnfsAyy/g2Shqx6OjUiFKUXZM+Yy+KHnOmmA3FVcg==";
+      };
+    };
     "git-rev-sync-2.0.0" = {
       name = "git-rev-sync";
       packageName = "git-rev-sync";
@@ -19365,22 +21021,31 @@ let
         sha512 = "8mqO63M60lCiNR+6ROvXuX4VI6pVAru4wMn3uUfxq0xmpNwrZYC4Rkrt5rSGUPumJ43ZUJyeMXXq60v03PUY/g==";
       };
     };
-    "git-up-4.0.1" = {
+    "git-up-4.0.2" = {
       name = "git-up";
       packageName = "git-up";
-      version = "4.0.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/git-up/-/git-up-4.0.1.tgz";
-        sha512 = "LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw==";
+        url = "https://registry.npmjs.org/git-up/-/git-up-4.0.2.tgz";
+        sha512 = "kbuvus1dWQB2sSW4cbfTeGpCMd8ge9jx9RKnhXhuJ7tnvT+NIrTVfYZxjtflZddQYcmdOTlkAcjmx7bor+15AQ==";
       };
     };
-    "git-url-parse-11.1.2" = {
+    "git-url-parse-11.1.3" = {
       name = "git-url-parse";
       packageName = "git-url-parse";
-      version = "11.1.2";
+      version = "11.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.1.2.tgz";
-        sha512 = "gZeLVGY8QVKMIkckncX+iCq2/L8PlwncvDFKiWkBn9EtCfYDbliRTTp6qzyQ1VMdITUfq7293zDzfpjdiGASSQ==";
+        url = "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.1.3.tgz";
+        sha512 = "GPsfwticcu52WQ+eHp0IYkAyaOASgYdtsQDIt4rUp6GbiNt1P9ddrh3O0kQB0eD4UJZszVqNT3+9Zwcg40fywA==";
+      };
+    };
+    "git-url-parse-11.2.0" = {
+      name = "git-url-parse";
+      packageName = "git-url-parse";
+      version = "11.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/git-url-parse/-/git-url-parse-11.2.0.tgz";
+        sha512 = "KPoHZg8v+plarZvto4ruIzzJLFQoRx+sUs5DQSr07By9IBKguVd+e6jwrFR6/TP6xrCJlNV1tPqLO1aREc7O2g==";
       };
     };
     "gitconfiglocal-1.0.0" = {
@@ -19392,6 +21057,15 @@ let
         sha1 = "41d045f3851a5ea88f03f24ca1c6178114464b9b";
       };
     };
+    "gitconfiglocal-2.1.0" = {
+      name = "gitconfiglocal";
+      packageName = "gitconfiglocal";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gitconfiglocal/-/gitconfiglocal-2.1.0.tgz";
+        sha512 = "qoerOEliJn3z+Zyn1HW2F6eoYJqKwS6MgC9cztTLUB/xLWX8gD/6T60pKn4+t/d6tP7JlybI7Z3z+I572CR/Vg==";
+      };
+    };
     "github-from-package-0.0.0" = {
       name = "github-from-package";
       packageName = "github-from-package";
@@ -19428,15 +21102,6 @@ let
         sha512 = "0YCjVpE3pS5XWlN3J4X7AiAx65+nqAI54LndtVFnQZB6G/FVLkZH8y8V6R3cIoOQR4pUdfwQGd1iwyoXHJ4Qfw==";
       };
     };
-    "glob-3.1.21" = {
-      name = "glob";
-      packageName = "glob";
-      version = "3.1.21";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-3.1.21.tgz";
-        sha1 = "d29e0a055dea5138f4d07ed40e8982e83c2066cd";
-      };
-    };
     "glob-3.2.11" = {
       name = "glob";
       packageName = "glob";
@@ -19446,15 +21111,6 @@ let
         sha1 = "4a973f635b9190f715d10987d5c00fd2815ebe3d";
       };
     };
-    "glob-4.5.3" = {
-      name = "glob";
-      packageName = "glob";
-      version = "4.5.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob/-/glob-4.5.3.tgz";
-        sha1 = "c6cb73d3226c1efef04de3c56d012f03377ee15f";
-      };
-    };
     "glob-5.0.15" = {
       name = "glob";
       packageName = "glob";
@@ -19554,15 +21210,6 @@ let
         sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==";
       };
     };
-    "glob-stream-3.1.18" = {
-      name = "glob-stream";
-      packageName = "glob-stream";
-      version = "3.1.18";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob-stream/-/glob-stream-3.1.18.tgz";
-        sha1 = "9170a5f12b790306fdfe598f313f8f7954fd143b";
-      };
-    };
     "glob-stream-6.1.0" = {
       name = "glob-stream";
       packageName = "glob-stream";
@@ -19581,31 +21228,13 @@ let
         sha1 = "8c5a1494d2066c570cc3bfe4496175acc4d502ab";
       };
     };
-    "glob-watcher-0.0.6" = {
+    "glob-watcher-5.0.5" = {
       name = "glob-watcher";
       packageName = "glob-watcher";
-      version = "0.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob-watcher/-/glob-watcher-0.0.6.tgz";
-        sha1 = "b95b4a8df74b39c83298b0c05c978b4d9a3b710b";
-      };
-    };
-    "glob-watcher-5.0.3" = {
-      name = "glob-watcher";
-      packageName = "glob-watcher";
-      version = "5.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.3.tgz";
-        sha512 = "8tWsULNEPHKQ2MR4zXuzSmqbdyV5PtwwCaWSGQ1WwHsJ07ilNeN1JB8ntxhckbnpSHaf9dXFUHzIWvm1I13dsg==";
-      };
-    };
-    "glob2base-0.0.12" = {
-      name = "glob2base";
-      packageName = "glob2base";
-      version = "0.0.12";
+      version = "5.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/glob2base/-/glob2base-0.0.12.tgz";
-        sha1 = "9d419b3e28f12e83a362164a277055922c9c0d56";
+        url = "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz";
+        sha512 = "zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw==";
       };
     };
     "global-4.3.2" = {
@@ -19617,6 +21246,15 @@ let
         sha1 = "e76989268a6c74c38908b1305b10fc0e394e9d0f";
       };
     };
+    "global-4.4.0" = {
+      name = "global";
+      packageName = "global";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/global/-/global-4.4.0.tgz";
+        sha512 = "wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==";
+      };
+    };
     "global-agent-2.1.12" = {
       name = "global-agent";
       packageName = "global-agent";
@@ -19626,6 +21264,15 @@ let
         sha512 = "caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg==";
       };
     };
+    "global-cache-dir-1.0.1" = {
+      name = "global-cache-dir";
+      packageName = "global-cache-dir";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/global-cache-dir/-/global-cache-dir-1.0.1.tgz";
+        sha512 = "wYGh6O3Xkx1LsMXQpObr/uu3PsFpbWhpbslgn9Xq52rbDZ6YOwJcQtU5R4lSEQgCDtXLItV9EH5X1F/VnBTAlw==";
+      };
+    };
     "global-dirs-0.1.1" = {
       name = "global-dirs";
       packageName = "global-dirs";
@@ -19780,15 +21427,6 @@ let
         sha512 = "7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==";
       };
     };
-    "globby-11.0.0" = {
-      name = "globby";
-      packageName = "globby";
-      version = "11.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/globby/-/globby-11.0.0.tgz";
-        sha512 = "iuehFnR3xu5wBBtm4xi0dMe92Ob87ufyu/dHwpDYfbcpYpIbrO5OnS8M1vWvrBhSGEJ3/Ecj7gnX76P8YxpPEg==";
-      };
-    };
     "globby-11.0.1" = {
       name = "globby";
       packageName = "globby";
@@ -19861,15 +21499,6 @@ let
         sha512 = "uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==";
       };
     };
-    "globule-0.1.0" = {
-      name = "globule";
-      packageName = "globule";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/globule/-/globule-0.1.0.tgz";
-        sha1 = "d9c8edde1da79d125a151b79533b978676346ae5";
-      };
-    };
     "globule-1.3.2" = {
       name = "globule";
       packageName = "globule";
@@ -19942,22 +21571,31 @@ let
         sha1 = "d9430ba32f6a30218243884418767340aafc0400";
       };
     };
-    "got-10.6.0" = {
+    "got-11.4.0" = {
       name = "got";
       packageName = "got";
-      version = "10.6.0";
+      version = "11.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/got/-/got-10.6.0.tgz";
-        sha512 = "3LIdJNTdCFbbJc+h/EH0V5lpNpbJ6Bfwykk21lcQvQsEcrzdi/ltCyQehFHLzJ/ka0UMH4Slg0hkYvAZN9qUDg==";
+        url = "https://registry.npmjs.org/got/-/got-11.4.0.tgz";
+        sha512 = "XysJZuZNVpaQ37Oo2LV90MIkPeYITehyy1A0QzO1JwOXm8EWuEf9eeGk2XuHePvLEGnm9AVOI37bHwD6KYyBtg==";
       };
     };
-    "got-10.7.0" = {
+    "got-11.5.2" = {
       name = "got";
       packageName = "got";
-      version = "10.7.0";
+      version = "11.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/got/-/got-10.7.0.tgz";
-        sha512 = "aWTDeNw9g+XqEZNcTjMMZSy7B7yE9toWOFYip7ofFTLleJhvZwUxxTxkTpKvF+p1SAA4VHmuEy7PiHTHyq8tJg==";
+        url = "https://registry.npmjs.org/got/-/got-11.5.2.tgz";
+        sha512 = "yUhpEDLeuGiGJjRSzEq3kvt4zJtAcjKmhIiwNp/eUs75tRlXfWcHo5tcBaMQtnjHWC7nQYT5HkY/l0QOQTkVww==";
+      };
+    };
+    "got-11.7.0" = {
+      name = "got";
+      packageName = "got";
+      version = "11.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/got/-/got-11.7.0.tgz";
+        sha512 = "7en2XwH2MEqOsrK0xaKhbWibBoZqy+f1RSUoIeF1BLcnf+pyQdDsljWMfmOh+QKJwuvDIiKx38GtPh5wFdGGjg==";
       };
     };
     "got-6.7.1" = {
@@ -20077,22 +21715,22 @@ let
         sha512 = "jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==";
       };
     };
-    "graphql-14.6.0" = {
+    "graphql-14.7.0" = {
       name = "graphql";
       packageName = "graphql";
-      version = "14.6.0";
+      version = "14.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql/-/graphql-14.6.0.tgz";
-        sha512 = "VKzfvHEKybTKjQVpTFrA5yUq2S9ihcZvfJAtsDBBCuV6wauPu1xl/f9ehgVf0FcEJJs4vz6ysb/ZMkGigQZseg==";
+        url = "https://registry.npmjs.org/graphql/-/graphql-14.7.0.tgz";
+        sha512 = "l0xWZpoPKpppFzMfvVyFmp9vLN7w/ZZJPefUicMCepfJeQ8sMcztloGYY9DfjVPo6tIUDzU5Hw3MUbIjj9AVVA==";
       };
     };
-    "graphql-15.1.0" = {
+    "graphql-15.3.0" = {
       name = "graphql";
       packageName = "graphql";
-      version = "15.1.0";
+      version = "15.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql/-/graphql-15.1.0.tgz";
-        sha512 = "0TVyfOlCGhv/DBczQkJmwXOK6fjWkjzY3Pt7wY8i0gcYXq8aogG3weCsg48m72lywKSeOqedEHvVPOvZvSD51Q==";
+        url = "https://registry.npmjs.org/graphql/-/graphql-15.3.0.tgz";
+        sha512 = "GTCJtzJmkFLWRfFJuoo9RWWa/FfamUHgiFosxi/X1Ani4AVWbeyBenZTNX6dM+7WSbbFfTo/25eh0LLkwHMw2w==";
       };
     };
     "graphql-anywhere-4.2.7" = {
@@ -20104,22 +21742,22 @@ let
         sha512 = "fJHvVywWVWjiHuPIMs16Nfjf4zdQUwSO1LKycwBJCWIPeoeQ8LqXK2BgYoZAHkhKEFktZZeYyzS4o/uIUG0z5A==";
       };
     };
-    "graphql-config-3.0.2" = {
+    "graphql-config-3.0.3" = {
       name = "graphql-config";
       packageName = "graphql-config";
-      version = "3.0.2";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-config/-/graphql-config-3.0.2.tgz";
-        sha512 = "efoimZ4F2wF2OwZJzPq2KdPjQs1K+UgJSfsHoHBBA0TwveGyQ/0kS3lUphhJg/JXIrZociuRkfjrk8JC4iPPJQ==";
+        url = "https://registry.npmjs.org/graphql-config/-/graphql-config-3.0.3.tgz";
+        sha512 = "MBY0wEjvcgJtZUyoqpPvOE1e5qPI0hJaa1gKTqjonSFiCsNHX2lykNjpOPcodmAgH1V06ELxhGnm9kcVzqvi/g==";
       };
     };
-    "graphql-extensions-0.12.2" = {
+    "graphql-extensions-0.12.4" = {
       name = "graphql-extensions";
       packageName = "graphql-extensions";
-      version = "0.12.2";
+      version = "0.12.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.2.tgz";
-        sha512 = "vFaZua5aLiCOOzxfY5qzHZ6S52BCqW7VVOwzvV52Wb5edRm3dn6u+1MR9yYyEqUHSf8LvdhEojYlOkKiaQ4ghA==";
+        url = "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.4.tgz";
+        sha512 = "GnR4LiWk3s2bGOqIh6V1JgnSXw2RCH4NOgbCFEWvB6JqWHXTlXnLZ8bRSkCiD4pltv7RHUPWqN/sGh8R6Ae/ag==";
       };
     };
     "graphql-subscriptions-1.1.0" = {
@@ -20131,13 +21769,13 @@ let
         sha512 = "6WzlBFC0lWmXJbIVE8OgFgXIP4RJi3OQgTPa0DVMsDXdpRDjTsM1K9wfl5HSYX7R87QAGlvcv2Y4BIZa/ItonA==";
       };
     };
-    "graphql-tag-2.10.3" = {
+    "graphql-tag-2.11.0" = {
       name = "graphql-tag";
       packageName = "graphql-tag";
-      version = "2.10.3";
+      version = "2.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.10.3.tgz";
-        sha512 = "4FOv3ZKfA4WdOKJeHdz6B3F/vxBLSgmBcGeAFPf4n1F64ltJUvOOerNj0rsJxONQGdhUMynQIvd6LzB+1J5oKA==";
+        url = "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.11.0.tgz";
+        sha512 = "VmsD5pJqWJnQZMUeRwrDhfgoyqcfwEkvtpANqcoUG8/tOLkwNgU9mzub/Mc78OJMhHjx7gfAMTxzdG43VGg3bA==";
       };
     };
     "graphql-tools-4.0.8" = {
@@ -20149,15 +21787,6 @@ let
         sha512 = "MW+ioleBrwhRjalKjYaLQbr+920pHBgy9vM/n47sswtns8+96sRn5M/G+J1eu7IMeKWiN/9p6tmwCHU7552VJg==";
       };
     };
-    "graphql-tools-5.0.0" = {
-      name = "graphql-tools";
-      packageName = "graphql-tools";
-      version = "5.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-tools/-/graphql-tools-5.0.0.tgz";
-        sha512 = "5zn3vtn//382b7G3Wzz3d5q/sh+f7tVrnxeuhTMTJ7pWJijNqLxH7VEzv8VwXCq19zAzHYEosFHfXiK7qzvk7w==";
-      };
-    };
     "graphql-type-json-0.2.4" = {
       name = "graphql-type-json";
       packageName = "graphql-type-json";
@@ -20248,22 +21877,22 @@ let
         sha512 = "cHwsLqoighpu7TuYj5RonnEuxGVFnztcUqTqp5rXFGYL4OuPFofwC4Ycg7n9fYwvK6F5WbYgeVOwph9Crs2fsQ==";
       };
     };
-    "gulp-3.9.1" = {
+    "gulp-4.0.2" = {
       name = "gulp";
       packageName = "gulp";
-      version = "3.9.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gulp/-/gulp-3.9.1.tgz";
-        sha1 = "571ce45928dd40af6514fc4011866016c13845b4";
+        url = "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz";
+        sha512 = "dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA==";
       };
     };
-    "gulp-clean-css-3.10.0" = {
+    "gulp-clean-css-4.3.0" = {
       name = "gulp-clean-css";
       packageName = "gulp-clean-css";
-      version = "3.10.0";
+      version = "4.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-3.10.0.tgz";
-        sha512 = "7Isf9Y690o/Q5MVjEylH1H7L8WeZ89woW7DnhD5unTintOdZb67KdOayRgp9trUFo+f9UyJtuatV42e/+kghPg==";
+        url = "https://registry.npmjs.org/gulp-clean-css/-/gulp-clean-css-4.3.0.tgz";
+        sha512 = "mGyeT3qqFXTy61j0zOIciS4MkYziF2U594t2Vs9rUnpkEHqfu6aDITMp8xOvZcvdX61Uz3y1mVERRYmjzQF5fg==";
       };
     };
     "gulp-cli-2.3.0" = {
@@ -20275,13 +21904,40 @@ let
         sha512 = "zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A==";
       };
     };
-    "gulp-less-3.5.0" = {
-      name = "gulp-less";
-      packageName = "gulp-less";
-      version = "3.5.0";
+    "gulp-concat-2.6.1" = {
+      name = "gulp-concat";
+      packageName = "gulp-concat";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gulp-less/-/gulp-less-3.5.0.tgz";
-        sha512 = "FQLY7unaHdTOXG0jlwxeBQcWoPPrTMQZRA7HfYwSNi9IPVx5l7GJEN72mG4ri2yigp/f/VNGUAJnFMJHBmH3iw==";
+        url = "https://registry.npmjs.org/gulp-concat/-/gulp-concat-2.6.1.tgz";
+        sha1 = "633d16c95d88504628ad02665663cee5a4793353";
+      };
+    };
+    "gulp-dart-sass-1.0.2" = {
+      name = "gulp-dart-sass";
+      packageName = "gulp-dart-sass";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gulp-dart-sass/-/gulp-dart-sass-1.0.2.tgz";
+        sha512 = "8fLttA824mbuc0jRVlGs00zWYZXBckat6INawx5kp66Eqsz5srNWTA51t0mbfB4C8a/a/GZ9muYLwXGklgAHlw==";
+      };
+    };
+    "gulp-eslint-3.0.1" = {
+      name = "gulp-eslint";
+      packageName = "gulp-eslint";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gulp-eslint/-/gulp-eslint-3.0.1.tgz";
+        sha1 = "04e57e3e18c6974267c12cf6855dc717d4a313bd";
+      };
+    };
+    "gulp-plumber-1.2.1" = {
+      name = "gulp-plumber";
+      packageName = "gulp-plumber";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gulp-plumber/-/gulp-plumber-1.2.1.tgz";
+        sha512 = "mctAi9msEAG7XzW5ytDVZ9PxWMzzi1pS2rBH7lA095DhMa6KEXjm+St0GOCc567pJKJ/oCvosVAZEpAey0q2eQ==";
       };
     };
     "gulp-sourcemaps-2.6.5" = {
@@ -20293,22 +21949,22 @@ let
         sha512 = "SYLBRzPTew8T5Suh2U8jCSDKY+4NARua4aqjj8HOysBh2tSgT9u4jc1FYirAdPx1akUxxDeK++fqw6Jg0LkQRg==";
       };
     };
-    "gulp-typescript-4.0.2" = {
-      name = "gulp-typescript";
-      packageName = "gulp-typescript";
-      version = "4.0.2";
+    "gulp-tslint-8.1.4" = {
+      name = "gulp-tslint";
+      packageName = "gulp-tslint";
+      version = "8.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-4.0.2.tgz";
-        sha512 = "Hhbn5Aa2l3T+tnn0KqsG6RRJmcYEsr3byTL2nBpNBeAK8pqug9Od4AwddU4JEI+hRw7mzZyjRbB8DDWR6paGVA==";
+        url = "https://registry.npmjs.org/gulp-tslint/-/gulp-tslint-8.1.4.tgz";
+        sha512 = "wBoZIEMJRz9urHwolsvQpngA9l931p6g/Liwz1b/KrsVP6jEBFZv/o0NS1TFCQZi/l8mXxz8+v3twhf4HOXxPQ==";
       };
     };
-    "gulp-uglify-3.0.2" = {
-      name = "gulp-uglify";
-      packageName = "gulp-uglify";
-      version = "3.0.2";
+    "gulp-typescript-5.0.1" = {
+      name = "gulp-typescript";
+      packageName = "gulp-typescript";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/gulp-uglify/-/gulp-uglify-3.0.2.tgz";
-        sha512 = "gk1dhB74AkV2kzqPMQBLA3jPoIAPd/nlNzP2XMDSG8XZrqnlCiDGAqC+rZOumzFvB5zOphlFh6yr3lgcAb/OOg==";
+        url = "https://registry.npmjs.org/gulp-typescript/-/gulp-typescript-5.0.1.tgz";
+        sha512 = "YuMMlylyJtUSHG1/wuSVTrZp60k1dMEFKYOvDf7OvbAJWrDtxxD4oZon4ancdWwzjj30ztiidhe4VXJniF0pIQ==";
       };
     };
     "gulp-util-3.0.8" = {
@@ -20401,13 +22057,13 @@ let
         sha1 = "33481d0f1bbff600dd203d75812a6a5fba002e2a";
       };
     };
-    "har-validator-5.1.3" = {
+    "har-validator-5.1.5" = {
       name = "har-validator";
       packageName = "har-validator";
-      version = "5.1.3";
+      version = "5.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
-        sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==";
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz";
+        sha512 = "nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==";
       };
     };
     "hard-rejection-2.1.0" = {
@@ -20689,6 +22345,15 @@ let
         sha1 = "78d7cbfc1e6d66303fe79837365984517b2f6ee1";
       };
     };
+    "hasha-5.2.0" = {
+      name = "hasha";
+      packageName = "hasha";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz";
+        sha512 = "2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==";
+      };
+    };
     "hasher-1.2.0" = {
       name = "hasher";
       packageName = "hasher";
@@ -20698,6 +22363,15 @@ let
         sha1 = "8b5341c3496124b0724ac8555fbb8ca363ebbb73";
       };
     };
+    "hashish-0.0.4" = {
+      name = "hashish";
+      packageName = "hashish";
+      version = "0.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz";
+        sha1 = "6d60bc6ffaf711b6afd60e426d077988014e6554";
+      };
+    };
     "hashlru-2.3.0" = {
       name = "hashlru";
       packageName = "hashlru";
@@ -20716,6 +22390,15 @@ let
         sha512 = "0FfLHmfArWOizbdwjL+Rc9QIBzqP80juicNl4S4NEPq5OYWBCgYrtYDPUDoSyQQ9IQlBn9W7++fpYQNzZSq/wQ==";
       };
     };
+    "hast-util-from-parse5-6.0.0" = {
+      name = "hast-util-from-parse5";
+      packageName = "hast-util-from-parse5";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hast-util-from-parse5/-/hast-util-from-parse5-6.0.0.tgz";
+        sha512 = "3ZYnfKenbbkhhNdmOQqgH10vnvPivTdsOJCri+APn0Kty+nRkDHArnaX9Hiaf8H+Ig+vkNptL+SRY/6RwWJk1Q==";
+      };
+    };
     "hast-util-has-property-1.0.4" = {
       name = "hast-util-has-property";
       packageName = "hast-util-has-property";
@@ -20725,22 +22408,22 @@ let
         sha512 = "ghHup2voGfgFoHMGnaLHOjbYFACKrRh9KFttdCzMCbFoBMJXiNi2+XTrPP8+q6cDJM/RSqlCfVWrjp1H201rZg==";
       };
     };
-    "hast-util-is-body-ok-link-1.0.3" = {
+    "hast-util-is-body-ok-link-1.0.4" = {
       name = "hast-util-is-body-ok-link";
       packageName = "hast-util-is-body-ok-link";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-1.0.3.tgz";
-        sha512 = "NB8jW4iqT+iVld2oCjSk0T2S2FyR86rDZ7nKHx3WNf/WX16fjjdfoog6T+YeJFsPzszVKsNlVJL+k5c4asAHog==";
+        url = "https://registry.npmjs.org/hast-util-is-body-ok-link/-/hast-util-is-body-ok-link-1.0.4.tgz";
+        sha512 = "mFblNpLvFbD8dG2Nw5dJBYZkxIHeph1JAh5yr4huI7T5m8cV0zaXNiqzKPX/JdjA+tIDF7c33u9cxK132KRjyQ==";
       };
     };
-    "hast-util-is-element-1.0.4" = {
+    "hast-util-is-element-1.1.0" = {
       name = "hast-util-is-element";
       packageName = "hast-util-is-element";
-      version = "1.0.4";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.0.4.tgz";
-        sha512 = "NFR6ljJRvDcyPP5SbV7MyPBgF47X3BsskLnmw1U34yL+X6YC0MoBx9EyMg8Jtx4FzGH95jw8+c1VPLHaRA0wDQ==";
+        url = "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-1.1.0.tgz";
+        sha512 = "oUmNua0bFbdrD/ELDSSEadRVtWZOf3iF6Lbv81naqsIV99RnSCieTbWuWCY8BAeEfKJTKl0gRdokv+dELutHGQ==";
       };
     };
     "hast-util-parse-selector-2.2.4" = {
@@ -20752,13 +22435,31 @@ let
         sha512 = "gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA==";
       };
     };
-    "hast-util-to-string-1.0.3" = {
+    "hast-util-phrasing-1.0.5" = {
+      name = "hast-util-phrasing";
+      packageName = "hast-util-phrasing";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hast-util-phrasing/-/hast-util-phrasing-1.0.5.tgz";
+        sha512 = "P3uxm+8bnwcfAS/XpGie9wMmQXAQqsYhgQQKRwmWH/V6chiq0lmTy8KjQRJmYjusdMtNKGCUksdILSZy1suSpQ==";
+      };
+    };
+    "hast-util-to-nlcst-1.2.7" = {
+      name = "hast-util-to-nlcst";
+      packageName = "hast-util-to-nlcst";
+      version = "1.2.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hast-util-to-nlcst/-/hast-util-to-nlcst-1.2.7.tgz";
+        sha512 = "IeHm2Ndwu9G7xtLswt51k3zpprLMckg7ahsvvJAG6hTPXfg+pwIu4FS30lrcxyWVMzNt35ZEoW78z4QCFTp0qw==";
+      };
+    };
+    "hast-util-to-string-1.0.4" = {
       name = "hast-util-to-string";
       packageName = "hast-util-to-string";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-1.0.3.tgz";
-        sha512 = "3lDgDE5OdpTfP3aFeKRWEwdIZ4vprztvp+AoD+RhF7uGOBs1yBDWZFadxnjcUV4KCoI3vB9A7gdFO98hEXA90w==";
+        url = "https://registry.npmjs.org/hast-util-to-string/-/hast-util-to-string-1.0.4.tgz";
+        sha512 = "eK0MxRX47AV2eZ+Lyr18DCpQgodvaS3fAQO2+b9Two9F5HEoRPhiUMNzoXArMJfZi2yieFzUBMRl3HNJ3Jus3w==";
       };
     };
     "hast-util-whitespace-1.0.4" = {
@@ -20770,6 +22471,15 @@ let
         sha512 = "I5GTdSfhYfAPNztx2xJRQpG8cuDSNt599/7YUn7Gx/WxNMsG+a835k97TDkFgk123cwjfwINaZknkKkphx/f2A==";
       };
     };
+    "hastscript-5.1.2" = {
+      name = "hastscript";
+      packageName = "hastscript";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hastscript/-/hastscript-5.1.2.tgz";
+        sha512 = "WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ==";
+      };
+    };
     "hat-0.0.3" = {
       name = "hat";
       packageName = "hat";
@@ -20806,13 +22516,13 @@ let
         sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
       };
     };
-    "header-case-1.0.1" = {
+    "header-case-2.0.3" = {
       name = "header-case";
       packageName = "header-case";
-      version = "1.0.1";
+      version = "2.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/header-case/-/header-case-1.0.1.tgz";
-        sha1 = "9535973197c144b09613cd65d317ef19963bd02d";
+        url = "https://registry.npmjs.org/header-case/-/header-case-2.0.3.tgz";
+        sha512 = "LChe/V32mnUQnTwTxd3aAlNMk8ia9tjCDb/LjYtoMrdAPApxLB+azejUk5ERZIZdIqvinwv6BAUuFXH/tQPdZA==";
       };
     };
     "headless-0.1.7" = {
@@ -20878,6 +22588,15 @@ let
         sha1 = "b86ce808598e8a9d1892c571f3cedd86fc9f0653";
       };
     };
+    "highlight.js-10.1.1" = {
+      name = "highlight.js";
+      packageName = "highlight.js";
+      version = "10.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-10.1.1.tgz";
+        sha512 = "b4L09127uVa+9vkMgPpdUQP78ickGbHEQTWeBrQFTJZ4/n2aihWOGS0ZoUqAwjVmfjhq/C76HRzkqwZhK4sBbg==";
+      };
+    };
     "highlight.js-8.2.0" = {
       name = "highlight.js";
       packageName = "highlight.js";
@@ -20896,13 +22615,13 @@ let
         sha1 = "e6d9dbe57cbefe60751f02af336195870c90c01e";
       };
     };
-    "highlight.js-9.18.1" = {
+    "highlight.js-9.18.3" = {
       name = "highlight.js";
       packageName = "highlight.js";
-      version = "9.18.1";
+      version = "9.18.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.1.tgz";
-        sha512 = "OrVKYz70LHsnCgmbXctv/bfuvntIKDz177h0Co37DQ5jamGZLVmoCVMtjMtNZY3X9DrCcKfklHPNeA0uPZhSJg==";
+        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-9.18.3.tgz";
+        sha512 = "zBZAmhSupHIl5sITeMqIJnYCDfAEc3Gdkqj65wC1lpI468MMQeeQkhcIAvk+RylAkxrCcI9xy9piHiXeQ1BdzQ==";
       };
     };
     "hipchatter-0.3.2" = {
@@ -20914,15 +22633,6 @@ let
         sha1 = "7f529cb676884032b0756750556ce77123bec406";
       };
     };
-    "hiredis-0.4.1" = {
-      name = "hiredis";
-      packageName = "hiredis";
-      version = "0.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/hiredis/-/hiredis-0.4.1.tgz";
-        sha1 = "aab4dcfd0fc4cbdb219d268005f2335a3c639e8f";
-      };
-    };
     "historic-readline-1.0.8" = {
       name = "historic-readline";
       packageName = "historic-readline";
@@ -20932,6 +22642,15 @@ let
         sha1 = "6f36e770769275113a57ae1a6007001af771cff6";
       };
     };
+    "hls-b24.js-0.12.3" = {
+      name = "hls-b24.js";
+      packageName = "hls-b24.js";
+      version = "0.12.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hls-b24.js/-/hls-b24.js-0.12.3.tgz";
+        sha512 = "C8nwzS33zKvR7grYIoHvp8wPxBvk9sEJ6dsh3Bx+T/4jNNhDksqLS73NIWqHvInjRiOsrXgEY4+h/NjNbzzh0g==";
+      };
+    };
     "hmac-drbg-1.0.1" = {
       name = "hmac-drbg";
       packageName = "hmac-drbg";
@@ -20959,6 +22678,15 @@ let
         sha1 = "4cd9e1abd4294146e7679e41d7898732b02c7bfd";
       };
     };
+    "hoist-non-react-statics-3.3.2" = {
+      name = "hoist-non-react-statics";
+      packageName = "hoist-non-react-statics";
+      version = "3.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz";
+        sha512 = "/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==";
+      };
+    };
     "homedir-polyfill-1.0.3" = {
       name = "homedir-polyfill";
       packageName = "homedir-polyfill";
@@ -20986,13 +22714,13 @@ let
         sha512 = "f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==";
       };
     };
-    "hosted-git-info-3.0.4" = {
+    "hosted-git-info-3.0.5" = {
       name = "hosted-git-info";
       packageName = "hosted-git-info";
-      version = "3.0.4";
+      version = "3.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz";
-        sha512 = "4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==";
+        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.5.tgz";
+        sha512 = "i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ==";
       };
     };
     "hot-shots-6.8.7" = {
@@ -21103,13 +22831,13 @@ let
         sha512 = "uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w==";
       };
     };
-    "html-whitespace-sensitive-tag-names-1.0.2" = {
+    "html-whitespace-sensitive-tag-names-1.0.3" = {
       name = "html-whitespace-sensitive-tag-names";
       packageName = "html-whitespace-sensitive-tag-names";
-      version = "1.0.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/html-whitespace-sensitive-tag-names/-/html-whitespace-sensitive-tag-names-1.0.2.tgz";
-        sha512 = "9jCcAq9ZsjUkZjNFDvxalDPhktOijpfzLyzBcqMLOFSbtcDNrPlKDvZeH7KdEbP7C6OjPpIdDMMPm0oq2Dpk0A==";
+        url = "https://registry.npmjs.org/html-whitespace-sensitive-tag-names/-/html-whitespace-sensitive-tag-names-1.0.3.tgz";
+        sha512 = "GX1UguduCBEAEo1hjFxc2Bz04/sDq0ACNyT7LsuoDcPfXYI3nS0NRPp3dyazLJyVUMp3GPBB56i/0Zr6CqD2PQ==";
       };
     };
     "htmlescape-1.1.1" = {
@@ -21121,13 +22849,13 @@ let
         sha1 = "3a03edc2214bca3b66424a3e7959349509cb0351";
       };
     };
-    "htmlnano-0.2.5" = {
+    "htmlnano-0.2.6" = {
       name = "htmlnano";
       packageName = "htmlnano";
-      version = "0.2.5";
+      version = "0.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/htmlnano/-/htmlnano-0.2.5.tgz";
-        sha512 = "X1iPSwXG/iF9bVs+/obt2n6F64uH0ETkA8zp7qFDmLW9/+A6ueHGeb/+qD67T21qUY22owZPMdawljN50ajkqA==";
+        url = "https://registry.npmjs.org/htmlnano/-/htmlnano-0.2.6.tgz";
+        sha512 = "HUY/99maFsWX2LRoGJpZ/8QRLCkyY0UU1El3wgLLFAHQlD3mCxCJJNcWJk5SBqaU49MLhIWVDW6cGBeuemvaPQ==";
       };
     };
     "htmlparser2-3.10.1" = {
@@ -21247,6 +22975,15 @@ let
         sha512 = "ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==";
       };
     };
+    "http-errors-1.8.0" = {
+      name = "http-errors";
+      packageName = "http-errors";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-errors/-/http-errors-1.8.0.tgz";
+        sha512 = "4I8r0C5JDhT5VkvI47QktDW75rNlGVsUf/8hzjCC/wkWI/jdTRmBb9aI7erSG82r1bjKY3F6k28WnsVxB1C73A==";
+      };
+    };
     "http-headers-3.0.2" = {
       name = "http-headers";
       packageName = "http-headers";
@@ -21329,6 +23066,15 @@ let
         sha512 = "yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==";
       };
     };
+    "http-proxy-middleware-1.0.5" = {
+      name = "http-proxy-middleware";
+      packageName = "http-proxy-middleware";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-1.0.5.tgz";
+        sha512 = "CKzML7u4RdGob8wuKI//H8Ein6wNTEQR7yjVEzPbhBLGdOfkfvgTnp2HLnniKBDP9QW4eG10/724iTWLBeER3g==";
+      };
+    };
     "http-signature-0.11.0" = {
       name = "http-signature";
       packageName = "http-signature";
@@ -21365,6 +23111,15 @@ let
         sha512 = "CbG3io8gUSIxNNSgq+XMjgpTMzAeVRipxVXjuGrDhH5M1a2kZ03w20s8FCLR1NjnnJj10KbvabvckmtQcYNb9g==";
       };
     };
+    "http-status-1.4.2" = {
+      name = "http-status";
+      packageName = "http-status";
+      version = "1.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-status/-/http-status-1.4.2.tgz";
+        sha512 = "mBnIohUwRw9NyXMEMMv8/GANnzEYUj0Y8d3uL01zDWFkxUjYyZ6rgCaAI2zZ1Wb34Oqtbx/nFZolPRDc8Xlm5A==";
+      };
+    };
     "http2-client-1.3.3" = {
       name = "http2-client";
       packageName = "http2-client";
@@ -21374,6 +23129,15 @@ let
         sha512 = "nUxLymWQ9pzkzTmir24p2RtsgruLmhje7lH3hLX1IpwvyTg77fW+1brenPPP3USAR+rQ36p5sTA/x7sjCJVkAA==";
       };
     };
+    "http2-wrapper-1.0.0-beta.5.2" = {
+      name = "http2-wrapper";
+      packageName = "http2-wrapper";
+      version = "1.0.0-beta.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz";
+        sha512 = "xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ==";
+      };
+    };
     "http_ece-1.1.0" = {
       name = "http_ece";
       packageName = "http_ece";
@@ -21590,13 +23354,13 @@ let
         sha1 = "c6019a7595f2cefca702eab694a010bcd9298d20";
       };
     };
-    "iconv-lite-0.5.1" = {
+    "iconv-lite-0.6.2" = {
       name = "iconv-lite";
       packageName = "iconv-lite";
-      version = "0.5.1";
+      version = "0.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.1.tgz";
-        sha512 = "ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q==";
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz";
+        sha512 = "2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==";
       };
     };
     "icss-replace-symbols-1.1.0" = {
@@ -21608,13 +23372,22 @@ let
         sha1 = "06ea6f83679a7749e386cfe1fe812ae5db223ded";
       };
     };
-    "idb-kv-store-4.4.0" = {
+    "icss-utils-4.1.1" = {
+      name = "icss-utils";
+      packageName = "icss-utils";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz";
+        sha512 = "4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==";
+      };
+    };
+    "idb-kv-store-4.5.0" = {
       name = "idb-kv-store";
       packageName = "idb-kv-store";
-      version = "4.4.0";
+      version = "4.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/idb-kv-store/-/idb-kv-store-4.4.0.tgz";
-        sha1 = "22c56a8d5f90bd88f818a859db9c58627de278be";
+        url = "https://registry.npmjs.org/idb-kv-store/-/idb-kv-store-4.5.0.tgz";
+        sha512 = "snvtAQRforYUI+C2+45L2LBJy/0/uQUffxv8/uwiS98fSUoXHVrFPClgzWZWxT0drwkLHJRm9inZcYzTR42GLA==";
       };
     };
     "ieee754-1.1.13" = {
@@ -21806,13 +23579,13 @@ let
         sha1 = "97b38fd444114eec16824a935f8da575b57aa1ce";
       };
     };
-    "import-jsx-3.1.0" = {
+    "import-jsx-4.0.0" = {
       name = "import-jsx";
       packageName = "import-jsx";
-      version = "3.1.0";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/import-jsx/-/import-jsx-3.1.0.tgz";
-        sha512 = "lTuMdQ/mRXC+xQSGPDvAg1VkODlX78j5hZv2tneJ+zuo7GH/XhUF/YVKoeF382a4jO4GYw9jgganbMhEcxwb0g==";
+        url = "https://registry.npmjs.org/import-jsx/-/import-jsx-4.0.0.tgz";
+        sha512 = "CnjJ2BZFJzbFDmYG5S47xPQjMlSbZLyLJuG4znzL4TdPtJBxHtFP1xVmR+EYX4synFSldiY3B6m00XkPM3zVnA==";
       };
     };
     "import-lazy-2.1.0" = {
@@ -21923,15 +23696,6 @@ let
         sha1 = "82dc336d232b9062179d05ab3293a66059fd435d";
       };
     };
-    "indx-0.2.3" = {
-      name = "indx";
-      packageName = "indx";
-      version = "0.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/indx/-/indx-0.2.3.tgz";
-        sha1 = "15dcf56ee9cf65c0234c513c27fbd580e70fbc50";
-      };
-    };
     "infer-owner-1.0.4" = {
       name = "infer-owner";
       packageName = "infer-owner";
@@ -21941,13 +23705,13 @@ let
         sha512 = "IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==";
       };
     };
-    "inflected-2.0.4" = {
+    "inflected-2.1.0" = {
       name = "inflected";
       packageName = "inflected";
-      version = "2.0.4";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/inflected/-/inflected-2.0.4.tgz";
-        sha512 = "HQPzFLTTUvwfeUH6RAGjD8cHS069mBqXG5n4qaxX7sJXBhVQrsGgF+0ZJGkSuN6a8pcUWB/GXStta11kKi/WvA==";
+        url = "https://registry.npmjs.org/inflected/-/inflected-2.1.0.tgz";
+        sha512 = "hAEKNxvHf2Iq3H60oMBHkB4wl5jn3TPF3+fXek/sRwAB5gP9xWs4r7aweSF95f99HFoz69pnZTcu8f0SIHV18w==";
       };
     };
     "inflight-1.0.6" = {
@@ -22022,22 +23786,22 @@ let
         sha512 = "zKSiXKhQveNteyhcj1CoOP8tqp1QuxPIPBl8Bid99DGLFqA1p87M6lNgfjJHSBoWJJlidGOv5rWjyYKEB3g2Jw==";
       };
     };
-    "ink-2.7.1" = {
+    "ink-3.0.6" = {
       name = "ink";
       packageName = "ink";
-      version = "2.7.1";
+      version = "3.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ink/-/ink-2.7.1.tgz";
-        sha512 = "s7lJuQDJEdjqtaIWhp3KYHl6WV3J04U9zoQ6wVc+Xoa06XM27SXUY57qC5DO46xkF0CfgXMKkKNcgvSu/SAEpA==";
+        url = "https://registry.npmjs.org/ink/-/ink-3.0.6.tgz";
+        sha512 = "MOaRUKlDdyzBr6IhiBpBA5+9tv+OlVvQrEErQlN2dfofJ0Q52Xc3gZ5YtgGj0UVD24Ex79WL2QZGJh0emz+jDQ==";
       };
     };
-    "ink-text-input-3.2.2" = {
+    "ink-text-input-4.0.1" = {
       name = "ink-text-input";
       packageName = "ink-text-input";
-      version = "3.2.2";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ink-text-input/-/ink-text-input-3.2.2.tgz";
-        sha512 = "h4EEJYOO88uK16U1mhgmJBMYeEy8ZmkrdV6gybyluCbAOQtAyND/WuRQVIKhe7D2dtYd2wwYTC648nuAxwltPQ==";
+        url = "https://registry.npmjs.org/ink-text-input/-/ink-text-input-4.0.1.tgz";
+        sha512 = "wiqkrB2tgnCnv51r2LpNLVfgrd/V+UXF3ccry+/Q7on9CBt8LVavX6NDYRMdXljuM+CcFV/sVro0bCr5oxB05w==";
       };
     };
     "inline-source-map-0.6.2" = {
@@ -22094,6 +23858,15 @@ let
         sha1 = "4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918";
       };
     };
+    "inquirer-3.0.6" = {
+      name = "inquirer";
+      packageName = "inquirer";
+      version = "3.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inquirer/-/inquirer-3.0.6.tgz";
+        sha1 = "e04aaa9d05b7a3cb9b0f407d04375f0447190347";
+      };
+    };
     "inquirer-3.3.0" = {
       name = "inquirer";
       packageName = "inquirer";
@@ -22148,13 +23921,22 @@ let
         sha512 = "5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==";
       };
     };
-    "inquirer-autocomplete-prompt-1.0.2" = {
+    "inquirer-7.3.3" = {
+      name = "inquirer";
+      packageName = "inquirer";
+      version = "7.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz";
+        sha512 = "JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==";
+      };
+    };
+    "inquirer-autocomplete-prompt-1.1.0" = {
       name = "inquirer-autocomplete-prompt";
       packageName = "inquirer-autocomplete-prompt";
-      version = "1.0.2";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.0.2.tgz";
-        sha512 = "vNmAhhrOQwPnUm4B9kz1UB7P98rVF1z8txnjp53r40N0PBCuqoRWqjg3Tl0yz0UkDg7rEUtZ2OZpNc7jnOU9Zw==";
+        url = "https://registry.npmjs.org/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.1.0.tgz";
+        sha512 = "mrSeUSFGnTSid/DCKG+E+IcN4MaOnT2bW7NuSagZAguD4k3hZ0UladdYNP4EstZOwgeqv0C3M1zYa1QIIf0Oyg==";
       };
     };
     "insert-module-globals-7.2.0" = {
@@ -22292,15 +24074,6 @@ let
         sha1 = "7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614";
       };
     };
-    "interpret-1.2.0" = {
-      name = "interpret";
-      packageName = "interpret";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz";
-        sha512 = "mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==";
-      };
-    };
     "interpret-1.4.0" = {
       name = "interpret";
       packageName = "interpret";
@@ -22427,15 +24200,6 @@ let
         sha1 = "27a9ca37f148d2102b0ef191ccbf2c51a8f025c6";
       };
     };
-    "ipaddr.js-1.0.5" = {
-      name = "ipaddr.js";
-      packageName = "ipaddr.js";
-      version = "1.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.0.5.tgz";
-        sha1 = "5fa78cf301b825c78abc3042d812723049ea23c7";
-      };
-    };
     "ipaddr.js-1.4.0" = {
       name = "ipaddr.js";
       packageName = "ipaddr.js";
@@ -22454,13 +24218,22 @@ let
         sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
       };
     };
-    "irc-framework-4.7.0" = {
+    "ipaddr.js-2.0.0" = {
+      name = "ipaddr.js";
+      packageName = "ipaddr.js";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.0.tgz";
+        sha512 = "S54H9mIj0rbxRIyrDMEuuER86LdlgUg9FSeZ8duQb6CUG2iRrA36MYVQBSprTF/ZeAwvyQ5mDGuNvIPM0BIl3w==";
+      };
+    };
+    "irc-framework-4.9.0" = {
       name = "irc-framework";
       packageName = "irc-framework";
-      version = "4.7.0";
+      version = "4.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/irc-framework/-/irc-framework-4.7.0.tgz";
-        sha512 = "XKXQ8RDr6BpJb4xGIUxzkaeOApkaJCLfAuawAieBg4skD7EP2Ag2C1P/hPAJgLrIAVRKZqTpiWnQDx9gIzdLsA==";
+        url = "https://registry.npmjs.org/irc-framework/-/irc-framework-4.9.0.tgz";
+        sha512 = "cUYMnnKwcNpXtEw/CXnEwUtglmaWZbfu0E/0iI7bENC3bASPNfcvcyTsFQcdknpnoFLyh5kXpQCjPBWKTbOQAQ==";
       };
     };
     "irc-replies-2.0.1" = {
@@ -22670,13 +24443,13 @@ let
         sha512 = "Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==";
       };
     };
-    "is-callable-1.2.0" = {
+    "is-callable-1.2.1" = {
       name = "is-callable";
       packageName = "is-callable";
-      version = "1.2.0";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz";
-        sha512 = "pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==";
+        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.1.tgz";
+        sha512 = "wliAfSzx6V+6WfMOmus1xy0XvSgf/dlStkvTfq7F0g4bOIW0PSUbnyse3NhDwdyYS1ozfUtAAySqTws3z9Eqgg==";
       };
     };
     "is-canonical-base64-1.1.1" = {
@@ -22787,6 +24560,15 @@ let
         sha512 = "2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==";
       };
     };
+    "is-dir-1.0.0" = {
+      name = "is-dir";
+      packageName = "is-dir";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-dir/-/is-dir-1.0.0.tgz";
+        sha1 = "41d37f495fccacc05a4778d66e83024c292ba3ff";
+      };
+    };
     "is-directory-0.3.1" = {
       name = "is-directory";
       packageName = "is-directory";
@@ -22805,13 +24587,13 @@ let
         sha1 = "f04374d4eee5310e9a8e113bf1495411e46176a1";
       };
     };
-    "is-docker-2.0.0" = {
+    "is-docker-2.1.1" = {
       name = "is-docker";
       packageName = "is-docker";
-      version = "2.0.0";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-docker/-/is-docker-2.0.0.tgz";
-        sha512 = "pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ==";
+        url = "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz";
+        sha512 = "ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==";
       };
     };
     "is-dotfile-1.0.3" = {
@@ -22859,6 +24641,15 @@ let
         sha1 = "39acaa6be7fd1f3471dc42c7416e61c24317ac9f";
       };
     };
+    "is-expression-4.0.0" = {
+      name = "is-expression";
+      packageName = "is-expression";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz";
+        sha512 = "zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==";
+      };
+    };
     "is-extendable-0.1.1" = {
       name = "is-extendable";
       packageName = "is-extendable";
@@ -23057,15 +24848,6 @@ let
         sha1 = "3d9877899e6a53efc0160504cde15f82e6f061d5";
       };
     };
-    "is-lower-case-1.1.3" = {
-      name = "is-lower-case";
-      packageName = "is-lower-case";
-      version = "1.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-lower-case/-/is-lower-case-1.1.3.tgz";
-        sha1 = "7e147be4768dc466db3bfb21cc60b31e6ad69393";
-      };
-    };
     "is-map-2.0.1" = {
       name = "is-map";
       packageName = "is-map";
@@ -23102,13 +24884,13 @@ let
         sha512 = "gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==";
       };
     };
-    "is-my-json-valid-2.20.0" = {
+    "is-my-json-valid-2.20.5" = {
       name = "is-my-json-valid";
       packageName = "is-my-json-valid";
-      version = "2.20.0";
+      version = "2.20.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz";
-        sha512 = "XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA==";
+        url = "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.5.tgz";
+        sha512 = "VTPuvvGQtxvCeghwspQu1rBgjYUT6FGxPlvFKbYuFtgc4ADsX3U5ihZOYN0qyU6u+d4X9xXb0IT5O6QpXKt87A==";
       };
     };
     "is-natural-number-4.0.1" = {
@@ -23129,6 +24911,15 @@ let
         sha1 = "6910bca5da8c95e784b5751b976cf5a10fee36d2";
       };
     };
+    "is-negative-zero-2.0.0" = {
+      name = "is-negative-zero";
+      packageName = "is-negative-zero";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz";
+        sha1 = "9553b121b0fac28869da9ed459e20c7543788461";
+      };
+    };
     "is-npm-1.0.0" = {
       name = "is-npm";
       packageName = "is-npm";
@@ -23300,6 +25091,15 @@ let
         sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
       };
     };
+    "is-plain-obj-2.1.0" = {
+      name = "is-plain-obj";
+      packageName = "is-plain-obj";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz";
+        sha512 = "YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==";
+      };
+    };
     "is-plain-object-2.0.4" = {
       name = "is-plain-object";
       packageName = "is-plain-object";
@@ -23309,13 +25109,13 @@ let
         sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==";
       };
     };
-    "is-plain-object-3.0.0" = {
+    "is-plain-object-5.0.0" = {
       name = "is-plain-object";
       packageName = "is-plain-object";
-      version = "3.0.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.0.tgz";
-        sha512 = "tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==";
+        url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz";
+        sha512 = "VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==";
       };
     };
     "is-posix-bracket-0.1.1" = {
@@ -23345,6 +25145,15 @@ let
         sha512 = "+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==";
       };
     };
+    "is-promise-4.0.0" = {
+      name = "is-promise";
+      packageName = "is-promise";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-promise/-/is-promise-4.0.0.tgz";
+        sha512 = "hvpoI6korhJMnej285dSg6nu1+e6uxs7zG3BYAm5byqDsgJNWwxzM6z6iZiAgQR4TJ30JmBTOwqZUw3WlyH3AQ==";
+      };
+    };
     "is-property-1.0.2" = {
       name = "is-property";
       packageName = "is-property";
@@ -23363,13 +25172,13 @@ let
         sha1 = "1d03dded53bd8db0f30c26e4f95d36fc7c87dc24";
       };
     };
-    "is-reference-1.2.0" = {
+    "is-reference-1.2.1" = {
       name = "is-reference";
       packageName = "is-reference";
-      version = "1.2.0";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-reference/-/is-reference-1.2.0.tgz";
-        sha512 = "ZVxq+5TkOx6GQdnoMm2aRdCKADdcrOWXLGzGT+vIA8DMpqEJaRk5AL1bS80zJ2bjHunVmjdzfCt0e4BymIEqKQ==";
+        url = "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz";
+        sha512 = "U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==";
       };
     };
     "is-regex-1.0.5" = {
@@ -23381,13 +25190,13 @@ let
         sha512 = "vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==";
       };
     };
-    "is-regex-1.1.0" = {
+    "is-regex-1.1.1" = {
       name = "is-regex";
       packageName = "is-regex";
-      version = "1.1.0";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz";
-        sha512 = "iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==";
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz";
+        sha512 = "1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==";
       };
     };
     "is-regexp-1.0.0" = {
@@ -23435,15 +25244,6 @@ let
         sha512 = "Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==";
       };
     };
-    "is-relative-path-1.0.2" = {
-      name = "is-relative-path";
-      packageName = "is-relative-path";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-relative-path/-/is-relative-path-1.0.2.tgz";
-        sha1 = "091b46a0d67c1ed0fe85f1f8cfdde006bb251d46";
-      };
-    };
     "is-relative-url-3.0.0" = {
       name = "is-relative-url";
       packageName = "is-relative-url";
@@ -23498,13 +25298,13 @@ let
         sha512 = "eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==";
       };
     };
-    "is-ssh-1.3.1" = {
+    "is-ssh-1.3.2" = {
       name = "is-ssh";
       packageName = "is-ssh";
-      version = "1.3.1";
+      version = "1.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.1.tgz";
-        sha512 = "0eRIASHZt1E68/ixClI8bp2YK2wmBPVWEismTs6M+M099jKgrzl/3E976zIbImSIob48N2/XGe9y7ZiYdImSlg==";
+        url = "https://registry.npmjs.org/is-ssh/-/is-ssh-1.3.2.tgz";
+        sha512 = "elEw0/0c2UscLrNG+OAorbP539E3rhliKPg+hDMWN9VwrDXfYK+4PBEykDPfxlYYtQvl84TascnQyobfQLHEhQ==";
       };
     };
     "is-stream-1.1.0" = {
@@ -23606,15 +25406,6 @@ let
         sha512 = "mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==";
       };
     };
-    "is-upper-case-1.1.2" = {
-      name = "is-upper-case";
-      packageName = "is-upper-case";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/is-upper-case/-/is-upper-case-1.1.2.tgz";
-        sha1 = "8d0b1fa7e7933a1e58483600ec7d9661cbaf756f";
-      };
-    };
     "is-url-1.2.4" = {
       name = "is-url";
       packageName = "is-url";
@@ -23633,13 +25424,13 @@ let
         sha1 = "4b0da1442104d1b336340e80797e865cf39f7d72";
       };
     };
-    "is-valid-domain-0.0.14" = {
+    "is-valid-domain-0.0.15" = {
       name = "is-valid-domain";
       packageName = "is-valid-domain";
-      version = "0.0.14";
+      version = "0.0.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-valid-domain/-/is-valid-domain-0.0.14.tgz";
-        sha512 = "MTUz/3y25zTtutAfwrLyFK+1l2IL4bcq2iHVdYHIPQbvBJLunlYu9dsQdtLwD9HKPDyxCDlKnSbGcRwvjVeCxA==";
+        url = "https://registry.npmjs.org/is-valid-domain/-/is-valid-domain-0.0.15.tgz";
+        sha512 = "Mcq4a6oLR+ugNyUlZ8WbuJBCm6hB50B6bgZcr0z7qm4mjbmw+WuqLAxR0eV+jnmtRcSSd++21wD4aQJZb7YZZg==";
       };
     };
     "is-valid-glob-1.0.0" = {
@@ -23804,6 +25595,15 @@ let
         sha512 = "zKqkK+O+dGqevc93KNsbZ/TqTUFd46MwWjYOoMrjIMZ51eU7DtQG3Wmd9SQQT7i7RVnuTPEiYEWHU3MSbxC1Tg==";
       };
     };
+    "iserror-0.0.2" = {
+      name = "iserror";
+      packageName = "iserror";
+      version = "0.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iserror/-/iserror-0.0.2.tgz";
+        sha1 = "bd53451fe2f668b9f2402c1966787aaa2c7c0bf5";
+      };
+    };
     "isexe-1.1.2" = {
       name = "isexe";
       packageName = "isexe";
@@ -23822,15 +25622,6 @@ let
         sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
       };
     };
-    "iso8601-duration-1.2.0" = {
-      name = "iso8601-duration";
-      packageName = "iso8601-duration";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/iso8601-duration/-/iso8601-duration-1.2.0.tgz";
-        sha512 = "ErTBd++b17E8nmWII1K1uZtBgD1E8RjyvwmxlCjPHNqHMD7gmcMHOw0E8Ro/6+QT4PhHRSnnMo7bxa1vFPkwhg==";
-      };
-    };
     "isobject-2.1.0" = {
       name = "isobject";
       packageName = "isobject";
@@ -23858,15 +25649,6 @@ let
         sha512 = "S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==";
       };
     };
-    "isomorphic-fetch-2.2.1" = {
-      name = "isomorphic-fetch";
-      packageName = "isomorphic-fetch";
-      version = "2.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz";
-        sha1 = "611ae1acf14f5e81f729507472819fe9733558a9";
-      };
-    };
     "isomorphic-git-0.78.5" = {
       name = "isomorphic-git";
       packageName = "isomorphic-git";
@@ -23966,6 +25748,24 @@ let
         sha512 = "RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==";
       };
     };
+    "iterate-iterator-1.0.1" = {
+      name = "iterate-iterator";
+      packageName = "iterate-iterator";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz";
+        sha512 = "3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==";
+      };
+    };
+    "iterate-value-1.0.2" = {
+      name = "iterate-value";
+      packageName = "iterate-value";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz";
+        sha512 = "A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==";
+      };
+    };
     "iterators-0.1.0" = {
       name = "iterators";
       packageName = "iterators";
@@ -23993,13 +25793,22 @@ let
         sha1 = "dc5ebed10d04a5e0eaf49ef0009bec473d1a6b31";
       };
     };
-    "jaeger-client-3.18.0" = {
+    "jaeger-client-3.18.1" = {
       name = "jaeger-client";
       packageName = "jaeger-client";
-      version = "3.18.0";
+      version = "3.18.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.18.1.tgz";
+        sha512 = "eZLM2U6rJvYo0XbzQYFeMYfp29gQix7SKlmDReorp9hJkUwXZtTyxW81AcKdmFCjLHO5tFysTX+394BnjEnUZg==";
+      };
+    };
+    "jake-10.8.2" = {
+      name = "jake";
+      packageName = "jake";
+      version = "10.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jaeger-client/-/jaeger-client-3.18.0.tgz";
-        sha512 = "xZ9WvZDWLkZFq7SObpLwu1asMCKCgBRNcDxxGSvK+ZQ7OZyJC5xPlU+rJa4+s/P6autPBVwHpqMGbOERFxWuuA==";
+        url = "https://registry.npmjs.org/jake/-/jake-10.8.2.tgz";
+        sha512 = "eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A==";
       };
     };
     "java-properties-1.0.2" = {
@@ -24011,15 +25820,6 @@ let
         sha512 = "qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ==";
       };
     };
-    "javascript-natural-sort-0.7.1" = {
-      name = "javascript-natural-sort";
-      packageName = "javascript-natural-sort";
-      version = "0.7.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz";
-        sha1 = "f9e2303d4507f6d74355a73664d1440fb5a0ef59";
-      };
-    };
     "javascript-stringify-1.6.0" = {
       name = "javascript-stringify";
       packageName = "javascript-stringify";
@@ -24038,6 +25838,15 @@ let
         sha1 = "7a549bbd9ffe1585b0cd0a191e203055bee574b4";
       };
     };
+    "jest-get-type-24.9.0" = {
+      name = "jest-get-type";
+      packageName = "jest-get-type";
+      version = "24.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.9.0.tgz";
+        sha512 = "lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q==";
+      };
+    };
     "jest-haste-map-25.5.1" = {
       name = "jest-haste-map";
       packageName = "jest-haste-map";
@@ -24074,6 +25883,15 @@ let
         sha512 = "KVlX+WWg1zUTB9ktvhsg2PXZVdkI1NBevOJSkTKYAyXyH4QSvh+Lay/e/v+bmaFfrkfx43xD8QTfgobzlEXdIA==";
       };
     };
+    "jest-validate-24.9.0" = {
+      name = "jest-validate";
+      packageName = "jest-validate";
+      version = "24.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz";
+        sha512 = "HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==";
+      };
+    };
     "jest-worker-25.5.0" = {
       name = "jest-worker";
       packageName = "jest-worker";
@@ -24083,6 +25901,15 @@ let
         sha512 = "/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==";
       };
     };
+    "jest-worker-26.3.0" = {
+      name = "jest-worker";
+      packageName = "jest-worker";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz";
+        sha512 = "Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==";
+      };
+    };
     "jetpack-id-1.0.0" = {
       name = "jetpack-id";
       packageName = "jetpack-id";
@@ -24119,13 +25946,13 @@ let
         sha1 = "06d4912255093419477d425633606e0e90782967";
       };
     };
-    "joplin-turndown-4.0.28" = {
+    "joplin-turndown-4.0.29" = {
       name = "joplin-turndown";
       packageName = "joplin-turndown";
-      version = "4.0.28";
+      version = "4.0.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/joplin-turndown/-/joplin-turndown-4.0.28.tgz";
-        sha512 = "wQP9OUBAkWq/VPPCJcY1EI6tSXWlGs/BJ7Ce8BZYRF/1vEk/TRHOdKmCObQrXz/0nRoLiP5xeqNvHE1nK4XbRQ==";
+        url = "https://registry.npmjs.org/joplin-turndown/-/joplin-turndown-4.0.29.tgz";
+        sha512 = "rVGu8u4TpSRETo59/jiVW9iaXnpdxxpBHjb7nyCflkDfWhg1Kska4uagBQGw7cD2yxw7mB2YUIB/fAgtlIzcDQ==";
       };
     };
     "joplin-turndown-plugin-gfm-1.0.12" = {
@@ -24137,13 +25964,13 @@ let
         sha512 = "qL4+1iycQjZ1fs8zk3jSRk7cg3ROBUHk7GKtiLAQLFzLPKErnILUvz5DLszSQvz3s1sTjPbywLDISVUtBY6HaA==";
       };
     };
-    "jpeg-js-0.1.2" = {
+    "jpeg-js-0.4.2" = {
       name = "jpeg-js";
       packageName = "jpeg-js";
-      version = "0.1.2";
+      version = "0.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.1.2.tgz";
-        sha1 = "135b992c0575c985cfa0f494a3227ed238583ece";
+        url = "https://registry.npmjs.org/jpeg-js/-/jpeg-js-0.4.2.tgz";
+        sha512 = "+az2gi/hvex7eLTMTlbRLOhH6P6WFdk2ITI8HJsaH2VqYO0I594zXSYEP+tf4FW+8Cy68ScDXoAsQdyQanv3sw==";
       };
     };
     "jpeg-turbo-0.4.0" = {
@@ -24173,31 +26000,31 @@ let
         sha1 = "bcb4045c8dd0539c134bc1488cdd3e768a7a9e51";
       };
     };
-    "jquery.terminal-2.17.1" = {
+    "jquery.terminal-2.18.3" = {
       name = "jquery.terminal";
       packageName = "jquery.terminal";
-      version = "2.17.1";
+      version = "2.18.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.17.1.tgz";
-        sha512 = "f+fqKLf0y6ZEhOLGlGCjlDdALPcf0APPd7pDAtDdUZ12Y6fWh0st1Y7RnygJRHpYkEYC3mRC+oogA03XqMH7YQ==";
+        url = "https://registry.npmjs.org/jquery.terminal/-/jquery.terminal-2.18.3.tgz";
+        sha512 = "zzMVGYlAC+luF7Omm9UY1/nuvp00mozSgcGImObWSS3uDRtcxnxlwxQLC8tvlTT+koyfOvCBaWgB6AD4DvWVpQ==";
       };
     };
-    "js-base64-2.5.2" = {
+    "js-base64-2.6.4" = {
       name = "js-base64";
       packageName = "js-base64";
-      version = "2.5.2";
+      version = "2.6.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz";
-        sha512 = "Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==";
+        url = "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz";
+        sha512 = "pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==";
       };
     };
-    "js-beautify-1.11.0" = {
+    "js-beautify-1.13.0" = {
       name = "js-beautify";
       packageName = "js-beautify";
-      version = "1.11.0";
+      version = "1.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.11.0.tgz";
-        sha512 = "a26B+Cx7USQGSWnz9YxgJNMmML/QG2nqIaL7VVYPCXbqiKz8PN0waSNvroMtvAK6tY7g/wPdNWGEP+JTNIBr6A==";
+        url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.13.0.tgz";
+        sha512 = "/Tbp1OVzZjbwzwJQFIlYLm9eWQ+3aYbBXLSaqb1mEJzhcQAfrqMMQYtjb6io+U6KpD0ID4F+Id3/xcjH3l/sqA==";
       };
     };
     "js-message-1.0.5" = {
@@ -24317,13 +26144,13 @@ let
         sha1 = "b01307cb29b618a1ed26ec79e911f803c4da0040";
       };
     };
-    "jscodeshift-0.9.0" = {
+    "jscodeshift-0.10.0" = {
       name = "jscodeshift";
       packageName = "jscodeshift";
-      version = "0.9.0";
+      version = "0.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.9.0.tgz";
-        sha512 = "SUeXq8dJzj5LR8uy71axgG3bmiHoC0IdHy7n89SqKzkzBWpAds5F9IIGE+lqUSZX9J0ZfEzN8fXWIqQV0dIp2w==";
+        url = "https://registry.npmjs.org/jscodeshift/-/jscodeshift-0.10.0.tgz";
+        sha512 = "xpH2FVSEepXoNr6+cPlPHzPzBY1W9bPulufhCHOShzk8+CTCzAOQKytuOXT0b/9PvmO4biRi0g/ZIylVew815w==";
       };
     };
     "jsdom-11.12.0" = {
@@ -24443,13 +26270,13 @@ let
         sha512 = "mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==";
       };
     };
-    "json-parse-even-better-errors-2.2.0" = {
+    "json-parse-even-better-errors-2.3.1" = {
       name = "json-parse-even-better-errors";
       packageName = "json-parse-even-better-errors";
-      version = "2.2.0";
+      version = "2.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.2.0.tgz";
-        sha512 = "2tLgY7LRNZ9Hd6gmCuBG5/OjRHQpSgJQqJoYyLLOhUgn8LdOYrjaZLcxkWnDads+AD/haWWioPNziXQcgvQJ/g==";
+        url = "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz";
+        sha512 = "xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==";
       };
     };
     "json-parse-helpfulerror-1.0.3" = {
@@ -24461,6 +26288,15 @@ let
         sha1 = "13f14ce02eed4e981297b64eb9e3b932e2dd13dc";
       };
     };
+    "json-pointer-0.6.0" = {
+      name = "json-pointer";
+      packageName = "json-pointer";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.0.tgz";
+        sha1 = "8e500550a6aac5464a473377da57aa6cc22828d7";
+      };
+    };
     "json-refs-2.1.7" = {
       name = "json-refs";
       packageName = "json-refs";
@@ -24479,15 +26315,6 @@ let
         sha512 = "0vOQd9eLNBL18EGl5yYaO44GhixmImes2wiYn9Z3sag3QnehWrYWlB9AFtMxCL2Bj3fyxgDYkxGFEU/chlYssw==";
       };
     };
-    "json-rpc2-0.8.1" = {
-      name = "json-rpc2";
-      packageName = "json-rpc2";
-      version = "0.8.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/json-rpc2/-/json-rpc2-0.8.1.tgz";
-        sha1 = "efe8c9834605b556c488d1ed7bcf24ee381eeeb2";
-      };
-    };
     "json-schema-0.2.2" = {
       name = "json-schema";
       packageName = "json-schema";
@@ -24524,6 +26351,15 @@ let
         sha1 = "51d3ca48955d8fe734f591d747b72453be5a78f2";
       };
     };
+    "json-schema-ref-parser-6.1.0" = {
+      name = "json-schema-ref-parser";
+      packageName = "json-schema-ref-parser";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-6.1.0.tgz";
+        sha512 = "pXe9H1m6IgIpXmE5JSb8epilNTGsmTb2iPohAXpOdhqGFbQjNeHHsZxU+C8w6T81GZxSPFLeUoqDJmzxx5IGuw==";
+      };
+    };
     "json-schema-traverse-0.3.1" = {
       name = "json-schema-traverse";
       packageName = "json-schema-traverse";
@@ -24578,6 +26414,15 @@ let
         sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
       };
     };
+    "json-stringify-pretty-compact-2.0.0" = {
+      name = "json-stringify-pretty-compact";
+      packageName = "json-stringify-pretty-compact";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stringify-pretty-compact/-/json-stringify-pretty-compact-2.0.0.tgz";
+        sha512 = "WRitRfs6BGq4q8gTgOy4ek7iPFXjbra0H3PmDLKm2xnZ+Gh1HUhiKGgCZkSPNULlP7mvfu6FV/mOLhCarspADQ==";
+      };
+    };
     "json-stringify-safe-5.0.1" = {
       name = "json-stringify-safe";
       packageName = "json-stringify-safe";
@@ -24650,13 +26495,22 @@ let
         sha512 = "hk/69oAeaIzchq/v3lS50PXuzn5O2ynldopMC+SWBql7J2WtdptfB9dy8Y7+Og5rPkTCpn83zTiO8FMcqlXJ/g==";
       };
     };
-    "jsonc-parser-2.2.1" = {
+    "jsonc-parser-2.3.0" = {
       name = "jsonc-parser";
       packageName = "jsonc-parser";
-      version = "2.2.1";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.1.tgz";
-        sha512 = "o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==";
+        url = "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.0.tgz";
+        sha512 = "b0EBt8SWFNnixVdvoR2ZtEGa9ZqLhbJnOjezn+WP+8kspFm+PFYDN8Z4Bc7pRlDjvuVcADSUkroIuTWWn/YiIA==";
+      };
+    };
+    "jsonc-parser-2.3.1" = {
+      name = "jsonc-parser";
+      packageName = "jsonc-parser";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.3.1.tgz";
+        sha512 = "H8jvkz1O50L3dMZCsLqiuB2tA7muqbSg1AtGEkN0leAqGjsUzDJir3Zwr02BhqdcITPg3ei3mZ+HjMocAknhhg==";
       };
     };
     "jsonfile-1.0.1" = {
@@ -24677,15 +26531,6 @@ let
         sha1 = "3736a2b428b87bbda0cc83b53fa3d633a35c2ae8";
       };
     };
-    "jsonfile-3.0.1" = {
-      name = "jsonfile";
-      packageName = "jsonfile";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-3.0.1.tgz";
-        sha1 = "a5ecc6f65f53f662c4415c7675a0331d0992ec66";
-      };
-    };
     "jsonfile-4.0.0" = {
       name = "jsonfile";
       packageName = "jsonfile";
@@ -24713,6 +26558,15 @@ let
         sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
       };
     };
+    "jsonlines-0.1.1" = {
+      name = "jsonlines";
+      packageName = "jsonlines";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonlines/-/jsonlines-0.1.1.tgz";
+        sha1 = "4fcd246dc5d0e38691907c44ab002f782d1d94cc";
+      };
+    };
     "jsonlint-1.6.2" = {
       name = "jsonlint";
       packageName = "jsonlint";
@@ -24731,15 +26585,6 @@ let
         sha1 = "330542ad3f0a654665b778f3eb2d9a9fa507ac64";
       };
     };
-    "jsonparse-0.0.6" = {
-      name = "jsonparse";
-      packageName = "jsonparse";
-      version = "0.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/jsonparse/-/jsonparse-0.0.6.tgz";
-        sha1 = "ab599f19324d4ae178fa21a930192ab11ab61a4e";
-      };
-    };
     "jsonparse-1.3.1" = {
       name = "jsonparse";
       packageName = "jsonparse";
@@ -24758,13 +26603,13 @@ let
         sha512 = "WQwgWEBgn+SJU1tlDa/GiY5/ngRpa9yrSj8n4BYPHcwoxTDaMEaYCHMOn42hIHHDd3CrUoRr3+HpsK0hCKoxzA==";
       };
     };
-    "jsonpointer-4.0.1" = {
+    "jsonpointer-4.1.0" = {
       name = "jsonpointer";
       packageName = "jsonpointer";
-      version = "4.0.1";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz";
-        sha1 = "4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9";
+        url = "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.1.0.tgz";
+        sha512 = "CXcRvMyTlnR53xMcKnuMzfCA5i/nfblTnnr74CZb6C4vG39eu6w51t7nKmU5MfLfbTgGItliNyjO/ciNPDqClg==";
       };
     };
     "jsonwebtoken-8.5.1" = {
@@ -24848,22 +26693,22 @@ 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-3.4.0" = {
+    "jszip-3.5.0" = {
       name = "jszip";
       packageName = "jszip";
-      version = "3.4.0";
+      version = "3.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jszip/-/jszip-3.4.0.tgz";
-        sha512 = "gZAOYuPl4EhPTXT0GjhI3o+ZAz3su6EhLrKUoAivcKqyqC7laS5JEv4XWZND9BgcDcF83vI85yGbDmDR6UhrIg==";
+        url = "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz";
+        sha512 = "WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==";
       };
     };
     "junk-3.1.0" = {
@@ -24902,6 +26747,15 @@ let
         sha512 = "qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==";
       };
     };
+    "jwa-2.0.0" = {
+      name = "jwa";
+      packageName = "jwa";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz";
+        sha512 = "jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==";
+      };
+    };
     "jws-3.2.2" = {
       name = "jws";
       packageName = "jws";
@@ -24911,6 +26765,15 @@ let
         sha512 = "YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==";
       };
     };
+    "jws-4.0.0" = {
+      name = "jws";
+      packageName = "jws";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz";
+        sha512 = "KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==";
+      };
+    };
     "jwt-decode-2.2.0" = {
       name = "jwt-decode";
       packageName = "jwt-decode";
@@ -25038,13 +26901,13 @@ let
         sha1 = "83cb748496ac491c7135104cbe56b88ca7392477";
       };
     };
-    "katex-0.11.1" = {
+    "katex-0.12.0" = {
       name = "katex";
       packageName = "katex";
-      version = "0.11.1";
+      version = "0.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/katex/-/katex-0.11.1.tgz";
-        sha512 = "5oANDICCTX0NqYIyAiFCCwjQ7ERu3DQG2JFHLbYOf+fXaMoH8eg/zOq5WSYJsKMi/QebW+Eh3gSM+oss1H/bww==";
+        url = "https://registry.npmjs.org/katex/-/katex-0.12.0.tgz";
+        sha512 = "y+8btoc/CK70XqcHqjxiGWBOeIL8upbS0peTPXTvgrh21n1RiWWcIpSWM+4uXq+IAgNh9YYQWdc7LVDPDAEEAg==";
       };
     };
     "keep-alive-agent-0.0.1" = {
@@ -25056,6 +26919,15 @@ let
         sha1 = "44847ca394ce8d6b521ae85816bd64509942b385";
       };
     };
+    "keep-func-props-3.0.1" = {
+      name = "keep-func-props";
+      packageName = "keep-func-props";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/keep-func-props/-/keep-func-props-3.0.1.tgz";
+        sha512 = "5AsrYCiCHIUxuw/G2r7xcoTW/NTf5IFwAe1fkwf2ifM/KZzEojaTylh1Pppu60oEixww1rfcWJaRGLi3eAJsrQ==";
+      };
+    };
     "kew-0.7.0" = {
       name = "kew";
       packageName = "kew";
@@ -25101,6 +26973,15 @@ let
         sha1 = "1e80454250018dbad4c3fe94497d6e67b6269c77";
       };
     };
+    "keytar-5.6.0" = {
+      name = "keytar";
+      packageName = "keytar";
+      version = "5.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/keytar/-/keytar-5.6.0.tgz";
+        sha512 = "ueulhshHSGoryfRXaIvTj0BV1yB0KddBGhGoqCxSN9LR1Ks1GKuuCdVhF+2/YOs5fMl6MlTI9On1a4DHDXoTow==";
+      };
+    };
     "keyv-3.0.0" = {
       name = "keyv";
       packageName = "keyv";
@@ -25119,13 +27000,13 @@ let
         sha512 = "9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==";
       };
     };
-    "keyv-4.0.1" = {
+    "keyv-4.0.3" = {
       name = "keyv";
       packageName = "keyv";
-      version = "4.0.1";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/keyv/-/keyv-4.0.1.tgz";
-        sha512 = "xz6Jv6oNkbhrFCvCP7HQa8AaII8y8LRpoSm661NOKLr4uHuBwhX4epXrPQgF3+xdJnN4Esm5X0xwY4bOlALOtw==";
+        url = "https://registry.npmjs.org/keyv/-/keyv-4.0.3.tgz";
+        sha512 = "zdGa2TOpSZPq5mU6iowDARnMBZgtCqJ11dJROFi6tg6kTn4nuUdU09lFyLFSaHrWqpIJ+EBq4E8/Dc0Vx5vLdA==";
       };
     };
     "killable-1.0.1" = {
@@ -25254,6 +27135,15 @@ let
         sha512 = "J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==";
       };
     };
+    "kuler-2.0.0" = {
+      name = "kuler";
+      packageName = "kuler";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz";
+        sha512 = "Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==";
+      };
+    };
     "kvgraph-0.1.0" = {
       name = "kvgraph";
       packageName = "kvgraph";
@@ -25281,6 +27171,15 @@ let
         sha512 = "Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==";
       };
     };
+    "lambda-local-1.7.3" = {
+      name = "lambda-local";
+      packageName = "lambda-local";
+      version = "1.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lambda-local/-/lambda-local-1.7.3.tgz";
+        sha512 = "T+iwIkuQT0JvTQhvNBTikLhpEJk3ovNoC33niE4QNmYOUrCOdo86PcPkgppOZl+NJXXHebdPHDJ40zqBJ9VMzg==";
+      };
+    };
     "last-one-wins-1.0.4" = {
       name = "last-one-wins";
       packageName = "last-one-wins";
@@ -25443,13 +27342,13 @@ let
         sha1 = "544ff7032b7b83c68f0701328d9297aa694340f9";
       };
     };
-    "ldapjs-2.0.0-pre.5" = {
+    "ldapjs-2.1.1" = {
       name = "ldapjs";
       packageName = "ldapjs";
-      version = "2.0.0-pre.5";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ldapjs/-/ldapjs-2.0.0-pre.5.tgz";
-        sha512 = "nmcSqdUjS7dzloToGCrSX3/TCdKJqLKUD+mMeo2K+NAkRkyn2iDZJRVusUFwFykXcaAr8hPX2qOKzc9PeTA4MQ==";
+        url = "https://registry.npmjs.org/ldapjs/-/ldapjs-2.1.1.tgz";
+        sha512 = "XzF2BEGeM/nenYDAJvkDMYovZ07fIGalrYD+suprSqUWPCWpoa+a4vWl5g8o/En85m6NHWBpirDFNClWLAd77w==";
       };
     };
     "lead-1.0.0" = {
@@ -25488,15 +27387,6 @@ let
         sha512 = "Tqyx4nggb9nkLD6p4hyIz7UiVNg5u3OnCP2h0hS/HXpheH88rsoNEgNB8xTnpPMw6zWXGZ7Cpg1zhWPlsJ0/TQ==";
       };
     };
-    "less-2.7.3" = {
-      name = "less";
-      packageName = "less";
-      version = "2.7.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/less/-/less-2.7.3.tgz";
-        sha512 = "KPdIJKWcEAb02TuJtaLrhue0krtRLoRoo7x6BNJIBelO00t/CCdJQUnHW5V34OnHMWzIktSalJxRO+FvytQlCQ==";
-      };
-    };
     "level-5.0.1" = {
       name = "level";
       packageName = "level";
@@ -25506,6 +27396,15 @@ let
         sha512 = "wcak5OQeA4rURGacqS62R/xNHjCYnJSQDBOlm4KNUGJVE9bWv2B04TclqReYejN+oD65PzD4FsqeWoI5wNC5Lg==";
       };
     };
+    "level-6.0.1" = {
+      name = "level";
+      packageName = "level";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/level/-/level-6.0.1.tgz";
+        sha512 = "psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw==";
+      };
+    };
     "level-codec-6.2.0" = {
       name = "level-codec";
       packageName = "level-codec";
@@ -25515,13 +27414,13 @@ let
         sha1 = "a4b5244bb6a4c2f723d68a1d64e980c53627d9d4";
       };
     };
-    "level-codec-9.0.1" = {
+    "level-codec-9.0.2" = {
       name = "level-codec";
       packageName = "level-codec";
-      version = "9.0.1";
+      version = "9.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/level-codec/-/level-codec-9.0.1.tgz";
-        sha512 = "ajFP0kJ+nyq4i6kptSM+mAvJKLOg1X5FiFPtLG9M5gCEZyBmgDi3FkDrvlMkEzrUn1cWxtvVmrvoS4ASyO/q+Q==";
+        url = "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz";
+        sha512 = "UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==";
       };
     };
     "level-concat-iterator-2.0.1" = {
@@ -25560,6 +27459,15 @@ let
         sha512 = "PeGjZsyMG4O89KHiez1zoMJxStnkM+oBIqgACjoo5PJqFiSUUm3GNod/KcbqN5ktyZa8jkG7I1T0P2u6HN9lIg==";
       };
     };
+    "level-js-5.0.2" = {
+      name = "level-js";
+      packageName = "level-js";
+      version = "5.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/level-js/-/level-js-5.0.2.tgz";
+        sha512 = "SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg==";
+      };
+    };
     "level-packager-5.1.1" = {
       name = "level-packager";
       packageName = "level-packager";
@@ -25578,15 +27486,6 @@ let
         sha512 = "PWYqG4Q00asOrLhX7BejSajByB4EmG2GaKHfj3h5UmmZ2duciXLPGYWIjBzLECFWUGOZWlm5B20h/n3Gs3HKew==";
       };
     };
-    "level-sublevel-6.6.5" = {
-      name = "level-sublevel";
-      packageName = "level-sublevel";
-      version = "6.6.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/level-sublevel/-/level-sublevel-6.6.5.tgz";
-        sha512 = "SBSR60x+dghhwGUxPKS+BvV1xNqnwsEUBKmnFepPaHJ6VkBXyPK9SImGc3K2BkwBfpxlt7GKkBNlCnrdufsejA==";
-      };
-    };
     "level-supports-1.0.1" = {
       name = "level-supports";
       packageName = "level-supports";
@@ -25605,15 +27504,6 @@ let
         sha512 = "iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==";
       };
     };
-    "levelup-0.19.1" = {
-      name = "levelup";
-      packageName = "levelup";
-      version = "0.19.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/levelup/-/levelup-0.19.1.tgz";
-        sha1 = "f3a6a7205272c4b5f35e412ff004a03a0aedf50b";
-      };
-    };
     "levelup-4.4.0" = {
       name = "levelup";
       packageName = "levelup";
@@ -25704,31 +27594,22 @@ let
         sha512 = "9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA==";
       };
     };
-    "libsodium-0.7.6" = {
+    "libsodium-0.7.8" = {
       name = "libsodium";
       packageName = "libsodium";
-      version = "0.7.6";
+      version = "0.7.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/libsodium/-/libsodium-0.7.6.tgz";
-        sha512 = "hPb/04sEuLcTRdWDtd+xH3RXBihpmbPCsKW/Jtf4PsvdyKh+D6z2D2gvp/5BfoxseP+0FCOg66kE+0oGUE/loQ==";
+        url = "https://registry.npmjs.org/libsodium/-/libsodium-0.7.8.tgz";
+        sha512 = "/Qc+APf0jbeWSaeEruH0L1/tbbT+sbf884ZL0/zV/0JXaDPBzYkKbyb/wmxMHgAHzm3t6gqe7bOOXAVwfqVikQ==";
       };
     };
-    "libsodium-wrappers-0.7.6" = {
+    "libsodium-wrappers-0.7.8" = {
       name = "libsodium-wrappers";
       packageName = "libsodium-wrappers";
-      version = "0.7.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.6.tgz";
-        sha512 = "OUO2CWW5bHdLr6hkKLHIKI4raEkZrf3QHkhXsJ1yCh6MZ3JDA7jFD3kCATNquuGSG6MjjPHQIQms0y0gBDzjQg==";
-      };
-    };
-    "libspiro-js-0.3.1" = {
-      name = "libspiro-js";
-      packageName = "libspiro-js";
-      version = "0.3.1";
+      version = "0.7.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/libspiro-js/-/libspiro-js-0.3.1.tgz";
-        sha1 = "86652b0009a6d84ea79a5320bdca5f00612ee439";
+        url = "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.8.tgz";
+        sha512 = "PDhPWXBqd/SaqAFUBgH2Ux7b3VEEJgyD6BQB+VdNFJb9PbExGr/T/myc/MBoSvl8qLzfm0W0IVByOQS5L1MrCg==";
       };
     };
     "lie-3.3.0" = {
@@ -25812,13 +27693,13 @@ let
         sha1 = "bf967ba0dd31faaf09ab5bdb3676ad7f2aa18493";
       };
     };
-    "link-check-4.5.0" = {
+    "link-check-4.5.1" = {
       name = "link-check";
       packageName = "link-check";
-      version = "4.5.0";
+      version = "4.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/link-check/-/link-check-4.5.0.tgz";
-        sha512 = "7PWHakA/+O5uaZ9yD290fiG2PUK9weoHAMgtoH3VPllL8ukYHe1YEbwgK9jjnUSE7Xa3zgT41mg+7TnZAPLxkQ==";
+        url = "https://registry.npmjs.org/link-check/-/link-check-4.5.1.tgz";
+        sha512 = "g0tu3Nkj/rpl1b6rQHRlaaSZ16iRqRDNP30jLUfRK0uNN98H56YVZlJXLjWcyjsj4f2+xZdxqeV398dx38MzfQ==";
       };
     };
     "linkify-it-2.2.0" = {
@@ -25830,6 +27711,24 @@ let
         sha512 = "GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==";
       };
     };
+    "linkify-it-3.0.2" = {
+      name = "linkify-it";
+      packageName = "linkify-it";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.2.tgz";
+        sha512 = "gDBO4aHNZS6coiZCKVhSNh43F9ioIL4JwRjLZPkoLIY4yZFwg264Y5lu2x6rb1Js42Gh6Yqm2f6L2AJcnkzinQ==";
+      };
+    };
+    "listenercount-1.0.1" = {
+      name = "listenercount";
+      packageName = "listenercount";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz";
+        sha1 = "84c8a72ab59c4725321480c975e6508342e70937";
+      };
+    };
     "listr-0.14.3" = {
       name = "listr";
       packageName = "listr";
@@ -25884,15 +27783,6 @@ let
         sha1 = "956905708d58b4bab4c2261b04f59f31c99374c0";
       };
     };
-    "load-json-file-2.0.0" = {
-      name = "load-json-file";
-      packageName = "load-json-file";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz";
-        sha1 = "7947e42149af80d696cbf797bcaabcfe1fe29ca8";
-      };
-    };
     "load-json-file-4.0.0" = {
       name = "load-json-file";
       packageName = "load-json-file";
@@ -25920,6 +27810,15 @@ let
         sha512 = "dYB1lbwqHgPTrruy9glukCu8Ya9vzj6TMfouCtj2H/GuJ+8syioisgKTBPxnCi6m8K8jINKfTOxOHngFkUYqHw==";
       };
     };
+    "load-plugin-3.0.0" = {
+      name = "load-plugin";
+      packageName = "load-plugin";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/load-plugin/-/load-plugin-3.0.0.tgz";
+        sha512 = "od7eKCCZ62ITvFf8nHHrIiYmgOHb4xVNDRDqxBWSaao5FZyyZVX8OmRCbwjDGPrSrgIulwPNyBsWCGnhiDC0oQ==";
+      };
+    };
     "loader-runner-2.4.0" = {
       name = "loader-runner";
       packageName = "loader-runner";
@@ -25929,15 +27828,6 @@ let
         sha512 = "Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==";
       };
     };
-    "loader-utils-1.2.3" = {
-      name = "loader-utils";
-      packageName = "loader-utils";
-      version = "1.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz";
-        sha512 = "fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==";
-      };
-    };
     "loader-utils-1.4.0" = {
       name = "loader-utils";
       packageName = "loader-utils";
@@ -25992,6 +27882,15 @@ let
         sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==";
       };
     };
+    "locate-path-6.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz";
+        sha512 = "iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==";
+      };
+    };
     "locks-0.2.2" = {
       name = "locks";
       packageName = "locks";
@@ -26001,22 +27900,13 @@ let
         sha1 = "259933d1327cbaf0fd3662f8fffde36809d84ced";
       };
     };
-    "locutus-2.0.11" = {
+    "locutus-2.0.12" = {
       name = "locutus";
       packageName = "locutus";
-      version = "2.0.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/locutus/-/locutus-2.0.11.tgz";
-        sha512 = "C0q1L38lK5q1t+wE0KY21/9szrBHxye6o2z5EJzU+5B79tubNOC+nLAEzTTn1vPUGoUuehKh8kYKqiVUTWRyaQ==";
-      };
-    };
-    "lodash-1.0.2" = {
-      name = "lodash";
-      packageName = "lodash";
-      version = "1.0.2";
+      version = "2.0.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz";
-        sha1 = "8f57560c83b59fc270bd3d561b690043430e2551";
+        url = "https://registry.npmjs.org/locutus/-/locutus-2.0.12.tgz";
+        sha512 = "wnzhY9xOdDb2djr17kQhTh9oZgEfp78zI27KRRiiV1GnPXWA2xfVODbpH3QgpIuUMLupM02+6X/rJXvktTpnoA==";
       };
     };
     "lodash-2.4.2" = {
@@ -26028,15 +27918,6 @@ let
         sha1 = "fadd834b9683073da179b3eae6d9c0d15053f73e";
       };
     };
-    "lodash-3.1.0" = {
-      name = "lodash";
-      packageName = "lodash";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash/-/lodash-3.1.0.tgz";
-        sha1 = "d41b8b33530cb3be088853208ad30092d2c27961";
-      };
-    };
     "lodash-3.10.1" = {
       name = "lodash";
       packageName = "lodash";
@@ -26064,13 +27945,22 @@ let
         sha1 = "d22c9ac660288f3843e16ba7d2b5d06cca27d777";
       };
     };
-    "lodash-4.17.15" = {
+    "lodash-4.17.19" = {
       name = "lodash";
       packageName = "lodash";
-      version = "4.17.15";
+      version = "4.17.19";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz";
-        sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==";
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz";
+        sha512 = "JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==";
+      };
+    };
+    "lodash-4.17.20" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "4.17.20";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz";
+        sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==";
       };
     };
     "lodash-4.17.5" = {
@@ -26460,6 +28350,15 @@ let
         sha1 = "7ae3017e939622ac31b7d7d7dcb1b34db1690d35";
       };
     };
+    "lodash.camelcase-4.3.0" = {
+      name = "lodash.camelcase";
+      packageName = "lodash.camelcase";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz";
+        sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6";
+      };
+    };
     "lodash.clone-4.5.0" = {
       name = "lodash.clone";
       packageName = "lodash.clone";
@@ -26496,6 +28395,15 @@ let
         sha1 = "82d79bff30a67c4005ffd5e2515300ad9ca4d7af";
       };
     };
+    "lodash.deburr-4.1.0" = {
+      name = "lodash.deburr";
+      packageName = "lodash.deburr";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz";
+        sha1 = "ddb1bbb3ef07458c0177ba07de14422cb033ff9b";
+      };
+    };
     "lodash.defaults-4.2.0" = {
       name = "lodash.defaults";
       packageName = "lodash.defaults";
@@ -26532,6 +28440,24 @@ let
         sha1 = "668b1d4981603ae1cc5a6fa760143e480b4c4ace";
       };
     };
+    "lodash.findkey-4.6.0" = {
+      name = "lodash.findkey";
+      packageName = "lodash.findkey";
+      version = "4.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.findkey/-/lodash.findkey-4.6.0.tgz";
+        sha1 = "83058e903b51cbb759d09ccf546dea3ea39c4718";
+      };
+    };
+    "lodash.flatmap-4.5.0" = {
+      name = "lodash.flatmap";
+      packageName = "lodash.flatmap";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz";
+        sha1 = "ef8cbf408f6e48268663345305c6acc0b778702e";
+      };
+    };
     "lodash.flatten-4.4.0" = {
       name = "lodash.flatten";
       packageName = "lodash.flatten";
@@ -26541,6 +28467,15 @@ let
         sha1 = "f31c22225a9632d2bbf8e4addbef240aa765a61f";
       };
     };
+    "lodash.flattendeep-4.4.0" = {
+      name = "lodash.flattendeep";
+      packageName = "lodash.flattendeep";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz";
+        sha1 = "fb030917f86a3134e5bc9bec0d69e0013ddfedb2";
+      };
+    };
     "lodash.foreach-2.4.1" = {
       name = "lodash.foreach";
       packageName = "lodash.foreach";
@@ -26622,6 +28557,15 @@ let
         sha1 = "0a11ba631d0e95c23c7f2f4cbb9a692ed178e705";
       };
     };
+    "lodash.invert-4.3.0" = {
+      name = "lodash.invert";
+      packageName = "lodash.invert";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.invert/-/lodash.invert-4.3.0.tgz";
+        sha1 = "8ffe20d4b616f56bea8f1aa0c6ebd80dcf742aee";
+      };
+    };
     "lodash.isarguments-3.1.0" = {
       name = "lodash.isarguments";
       packageName = "lodash.isarguments";
@@ -26658,6 +28602,15 @@ let
         sha1 = "6c2e171db2a257cd96802fd43b01b20d5f5870f6";
       };
     };
+    "lodash.isempty-4.4.0" = {
+      name = "lodash.isempty";
+      packageName = "lodash.isempty";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz";
+        sha1 = "6f86cbedd8be4ec987be9aaf33c9684db1b31e7e";
+      };
+    };
     "lodash.isequal-4.5.0" = {
       name = "lodash.isequal";
       packageName = "lodash.isequal";
@@ -26685,6 +28638,15 @@ let
         sha1 = "619c0af3d03f8b04c31f5882840b77b11cd68343";
       };
     };
+    "lodash.islength-4.0.1" = {
+      name = "lodash.islength";
+      packageName = "lodash.islength";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.islength/-/lodash.islength-4.0.1.tgz";
+        sha1 = "4e9868d452575d750affd358c979543dc20ed577";
+      };
+    };
     "lodash.ismatch-4.4.0" = {
       name = "lodash.ismatch";
       packageName = "lodash.ismatch";
@@ -26712,6 +28674,15 @@ let
         sha1 = "5a2e47fe69953f1ee631a7eba1fe64d2d06558f5";
       };
     };
+    "lodash.isobject-3.0.2" = {
+      name = "lodash.isobject";
+      packageName = "lodash.isobject";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz";
+        sha1 = "3c8fb8d5b5bf4bf90ae06e14f2a530a4ed935e1d";
+      };
+    };
     "lodash.isplainobject-4.0.6" = {
       name = "lodash.isplainobject";
       packageName = "lodash.isplainobject";
@@ -26847,15 +28818,6 @@ let
         sha1 = "d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b";
       };
     };
-    "lodash.partialright-4.2.1" = {
-      name = "lodash.partialright";
-      packageName = "lodash.partialright";
-      version = "4.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lodash.partialright/-/lodash.partialright-4.2.1.tgz";
-        sha1 = "0130d80e83363264d40074f329b8a3e7a8a1cc4b";
-      };
-    };
     "lodash.pick-4.4.0" = {
       name = "lodash.pick";
       packageName = "lodash.pick";
@@ -26910,6 +28872,15 @@ let
         sha1 = "936a4e309ef330a7645ed4145986c85ae5b20805";
       };
     };
+    "lodash.sample-4.2.1" = {
+      name = "lodash.sample";
+      packageName = "lodash.sample";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.sample/-/lodash.sample-4.2.1.tgz";
+        sha1 = "5e4291b0c753fa1abeb0aab8fb29df1b66f07f6d";
+      };
+    };
     "lodash.set-4.3.2" = {
       name = "lodash.set";
       packageName = "lodash.set";
@@ -26919,6 +28890,15 @@ let
         sha1 = "d8757b1da807dde24816b0d6a84bea1a76230b23";
       };
     };
+    "lodash.snakecase-4.1.1" = {
+      name = "lodash.snakecase";
+      packageName = "lodash.snakecase";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz";
+        sha1 = "39d714a35357147837aefd64b5dcbb16becd8f8d";
+      };
+    };
     "lodash.some-4.6.0" = {
       name = "lodash.some";
       packageName = "lodash.some";
@@ -27000,6 +28980,24 @@ let
         sha1 = "24c4bfcd6b2fba38bfd0594db1179d8e9b656561";
       };
     };
+    "lodash.topairs-4.3.0" = {
+      name = "lodash.topairs";
+      packageName = "lodash.topairs";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.topairs/-/lodash.topairs-4.3.0.tgz";
+        sha1 = "3b6deaa37d60fb116713c46c5f17ea190ec48d64";
+      };
+    };
+    "lodash.transform-4.6.0" = {
+      name = "lodash.transform";
+      packageName = "lodash.transform";
+      version = "4.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.transform/-/lodash.transform-4.6.0.tgz";
+        sha1 = "12306422f63324aed8483d3f38332b5f670547a0";
+      };
+    };
     "lodash.unescape-4.0.1" = {
       name = "lodash.unescape";
       packageName = "lodash.unescape";
@@ -27054,6 +29052,15 @@ let
         sha512 = "sxChESNYJ/EcQv8C7xpmxhtTOngoXuMEqGDAkhXBEmt3MAzM3SM/TmIBOqnMEVdrOv1+VgZoYbo6U2GemQiU4g==";
       };
     };
+    "log-process-errors-5.1.2" = {
+      name = "log-process-errors";
+      packageName = "log-process-errors";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/log-process-errors/-/log-process-errors-5.1.2.tgz";
+        sha512 = "s4kmYHrzj543xUAIxc/cpmoiGZcbFwKRqqwO49DbgH+hFoSTswi0sYZuJKjUUc73b49MRPQGl0CNl8cx98/Wtg==";
+      };
+    };
     "log-symbols-1.0.2" = {
       name = "log-symbols";
       packageName = "log-symbols";
@@ -27081,6 +29088,15 @@ let
         sha512 = "dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==";
       };
     };
+    "log-symbols-4.0.0" = {
+      name = "log-symbols";
+      packageName = "log-symbols";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz";
+        sha512 = "FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==";
+      };
+    };
     "log-update-1.0.2" = {
       name = "log-update";
       packageName = "log-update";
@@ -27108,15 +29124,6 @@ let
         sha512 = "ILKe88NeMt4gmDvk/eb615U/IVn7K9KWGkoYbdatQ69Z65nj1ZzjM6fHXfcs0Uge+e+EGnMW7DY4T9yko8vWFg==";
       };
     };
-    "log4js-5.3.0" = {
-      name = "log4js";
-      packageName = "log4js";
-      version = "5.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/log4js/-/log4js-5.3.0.tgz";
-        sha512 = "PZHXaXJKMKEscvQxSnTjM4UosQalSDlNpMw63eCKW+/DiAFKIZPW1jGyIPXZDjiEYFusMfiI7zzvnxeGozUcAw==";
-      };
-    };
     "log4js-6.3.0" = {
       name = "log4js";
       packageName = "log4js";
@@ -27126,22 +29133,22 @@ let
         sha512 = "Mc8jNuSFImQUIateBFwdOQcmC6Q5maU0VVvdC2R6XMb66/VnT+7WS4D/0EeNMZu1YODmJe5NIn2XftCzEocUgw==";
       };
     };
-    "logform-2.1.2" = {
+    "logform-2.2.0" = {
       name = "logform";
       packageName = "logform";
-      version = "2.1.2";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/logform/-/logform-2.1.2.tgz";
-        sha512 = "+lZh4OpERDBLqjiwDLpAWNQu6KMjnlXH2ByZwCuSqVPJletw0kTWJf5CgSNAUKn1KUkv3m2cUz/LK8zyEy7wzQ==";
+        url = "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz";
+        sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==";
       };
     };
-    "loglevel-1.6.8" = {
+    "loglevel-1.7.0" = {
       name = "loglevel";
       packageName = "loglevel";
-      version = "1.6.8";
+      version = "1.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz";
-        sha512 = "bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==";
+        url = "https://registry.npmjs.org/loglevel/-/loglevel-1.7.0.tgz";
+        sha512 = "i2sY04nal5jDcagM3FMfG++T69GEEM8CYuOfeOIvmXzOIcwE9a/CJPR0MFM97pYMj/u10lzz7/zd7+qwhrBTqQ==";
       };
     };
     "loglevel-colored-level-prefix-1.0.0" = {
@@ -27315,15 +29322,6 @@ let
         sha512 = "LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==";
       };
     };
-    "lower-case-first-1.0.2" = {
-      name = "lower-case-first";
-      packageName = "lower-case-first";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lower-case-first/-/lower-case-first-1.0.2.tgz";
-        sha1 = "e5da7c26f29a7073be02d52bac9980e5922adfa1";
-      };
-    };
     "lowercase-keys-1.0.0" = {
       name = "lowercase-keys";
       packageName = "lowercase-keys";
@@ -27387,6 +29385,15 @@ let
         sha1 = "ec2bba603f4c5bb3e7a1bf62ce1c1dbc1d474e08";
       };
     };
+    "lru-cache-2.5.0" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz";
+        sha1 = "d82388ae9c960becbea0c73bb9eb79b6c6ce9aeb";
+      };
+    };
     "lru-cache-2.7.3" = {
       name = "lru-cache";
       packageName = "lru-cache";
@@ -27414,6 +29421,15 @@ let
         sha512 = "KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==";
       };
     };
+    "lru-cache-6.0.0" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz";
+        sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==";
+      };
+    };
     "lru-queue-0.1.0" = {
       name = "lru-queue";
       packageName = "lru-queue";
@@ -27441,15 +29457,6 @@ let
         sha1 = "d637764ea33a929bd00f34d2a23c2256d0d5fb5b";
       };
     };
-    "ltgt-2.1.3" = {
-      name = "ltgt";
-      packageName = "ltgt";
-      version = "2.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ltgt/-/ltgt-2.1.3.tgz";
-        sha1 = "10851a06d9964b971178441c23c9e52698eece34";
-      };
-    };
     "ltgt-2.2.1" = {
       name = "ltgt";
       packageName = "ltgt";
@@ -27468,6 +29475,15 @@ let
         sha512 = "rlAEsgU9Bnavca2w1WJ6+6cdeHMXNyadcersyk3ZpuhgWb5HBNj8l4WwJz9PjksAhYDlpQffCVXPctOn+wCIVA==";
       };
     };
+    "lunr-2.3.6" = {
+      name = "lunr";
+      packageName = "lunr";
+      version = "2.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lunr/-/lunr-2.3.6.tgz";
+        sha512 = "swStvEyDqQ85MGpABCMBclZcLI/pBIlu8FFDtmX197+oEgKloJ67QnB+Tidh0340HmLMs39c4GrkPY3cmkXp6Q==";
+      };
+    };
     "lynx-0.2.0" = {
       name = "lynx";
       packageName = "lynx";
@@ -27513,13 +29529,13 @@ let
         sha1 = "d25e32e97c3c2cb89568ba8c98d229d5c305e391";
       };
     };
-    "macos-release-2.3.0" = {
+    "macos-release-2.4.1" = {
       name = "macos-release";
       packageName = "macos-release";
-      version = "2.3.0";
+      version = "2.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/macos-release/-/macos-release-2.3.0.tgz";
-        sha512 = "OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==";
+        url = "https://registry.npmjs.org/macos-release/-/macos-release-2.4.1.tgz";
+        sha512 = "H/QHeBIN1fIGJX517pvK8IEK53yQOW7YcEI55oYtgjDdoCQQz7eJS94qt5kNrscReEyuD/JcdFCm2XBEcGOITg==";
       };
     };
     "magic-string-0.22.5" = {
@@ -27576,13 +29592,13 @@ let
         sha1 = "79cc6d65a00bb5b7ef5c25ae60ebbb5d9a7681a8";
       };
     };
-    "magnet-uri-5.2.4" = {
+    "magnet-uri-5.3.0" = {
       name = "magnet-uri";
       packageName = "magnet-uri";
-      version = "5.2.4";
+      version = "5.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/magnet-uri/-/magnet-uri-5.2.4.tgz";
-        sha512 = "VYaJMxhr8B9BrCiNINUsuhaEe40YnG+AQBwcqUKO66lSVaI9I3A1iH/6EmEwRI8OYUg5Gt+4lLE7achg676lrg==";
+        url = "https://registry.npmjs.org/magnet-uri/-/magnet-uri-5.3.0.tgz";
+        sha512 = "8GuTc9mXYfaKrXz687kzx2YTEhMR/X1Qgt6tkTNwPlb2fUy3QfU+O9zuoB5DKAa/IyVdLGxe9xSFUtaA+ZG5tQ==";
       };
     };
     "make-dir-1.3.0" = {
@@ -27621,15 +29637,6 @@ let
         sha512 = "s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==";
       };
     };
-    "make-error-cause-1.2.2" = {
-      name = "make-error-cause";
-      packageName = "make-error-cause";
-      version = "1.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/make-error-cause/-/make-error-cause-1.2.2.tgz";
-        sha1 = "df0388fcd0b37816dff0a5fb8108939777dcbc9d";
-      };
-    };
     "make-fetch-happen-5.0.2" = {
       name = "make-fetch-happen";
       packageName = "make-fetch-happen";
@@ -27639,13 +29646,13 @@ let
         sha512 = "07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==";
       };
     };
-    "make-fetch-happen-8.0.7" = {
+    "make-fetch-happen-8.0.9" = {
       name = "make-fetch-happen";
       packageName = "make-fetch-happen";
-      version = "8.0.7";
+      version = "8.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.7.tgz";
-        sha512 = "rkDA4c1nMXVqLkfOaM5RK2dxkUndjLOCrPycTDZgbkFDzhmaCO3P1dmCW//yt1I/G1EcedJqMsSjWkV79Hh4hQ==";
+        url = "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.9.tgz";
+        sha512 = "uHa4gv/NIdm9cUvfOhYb57nxrCY08iyMRXru0jbpaH57Q3NCge/ypY7fOvgCr8tPyucKrGbVndKhjXE0IX0VfQ==";
       };
     };
     "make-iterator-1.0.1" = {
@@ -27783,6 +29790,15 @@ let
         sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
       };
     };
+    "mark.js-8.11.1" = {
+      name = "mark.js";
+      packageName = "mark.js";
+      version = "8.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mark.js/-/mark.js-8.11.1.tgz";
+        sha1 = "180f1f9ebef8b0e638e4166ad52db879beb2ffc5";
+      };
+    };
     "markdown-escapes-1.0.4" = {
       name = "markdown-escapes";
       packageName = "markdown-escapes";
@@ -27801,6 +29817,15 @@ let
         sha512 = "YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==";
       };
     };
+    "markdown-it-11.0.1" = {
+      name = "markdown-it";
+      packageName = "markdown-it";
+      version = "11.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/markdown-it/-/markdown-it-11.0.1.tgz";
+        sha512 = "aU1TzmBKcWNNYvH9pjq6u92BML+Hz3h5S/QpfTFwiQF852pLT+9qHsrhM9JYipkOXZxGn+sGH8oyJE9FD9WezQ==";
+      };
+    };
     "markdown-it-8.4.2" = {
       name = "markdown-it";
       packageName = "markdown-it";
@@ -27828,13 +29853,13 @@ let
         sha512 = "/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==";
       };
     };
-    "markdown-it-deflist-2.0.3" = {
+    "markdown-it-deflist-2.1.0" = {
       name = "markdown-it-deflist";
       packageName = "markdown-it-deflist";
-      version = "2.0.3";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/markdown-it-deflist/-/markdown-it-deflist-2.0.3.tgz";
-        sha512 = "/BNZ8ksW42bflm1qQLnRI09oqU2847Z7MVavrR0MORyKLtiUYOMpwtlAfMSZAQU9UCvaUZMpgVAqoS3vpToJxw==";
+        url = "https://registry.npmjs.org/markdown-it-deflist/-/markdown-it-deflist-2.1.0.tgz";
+        sha512 = "3OuqoRUlSxJiuQYu0cWTLHNhhq2xtoSFqsZK8plANg91+RJQU1ziQ6lA2LzmFAEes18uPBsHZpcX6We5l76Nzg==";
       };
     };
     "markdown-it-emoji-1.4.0" = {
@@ -27891,13 +29916,13 @@ let
         sha512 = "HqMWeKfMMOu4zBO0emmxsoMWmbf2cPKZY1wP6FsTbKmicFfp5y4L3KXAsNeO1rM6NTJVOrNlLKMPjWzriBGspw==";
       };
     };
-    "markdown-it-multimd-table-4.0.2" = {
+    "markdown-it-multimd-table-4.0.3" = {
       name = "markdown-it-multimd-table";
       packageName = "markdown-it-multimd-table";
-      version = "4.0.2";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/markdown-it-multimd-table/-/markdown-it-multimd-table-4.0.2.tgz";
-        sha512 = "SlcssTj7FoYstVQ7MsM8A46/lhbN1K6/q0e9v56o/5kaWmTheXZXQX3nuZgw7WQocn+3nyQGcoO7ovcqeFxaAw==";
+        url = "https://registry.npmjs.org/markdown-it-multimd-table/-/markdown-it-multimd-table-4.0.3.tgz";
+        sha512 = "uVLriNj6doq1dGyJppQdwbaGcK6uSzbrk7osxRHjOmZBeShgMtPS6/d+pnIKkohOjaRyP9e5kwTAlAIe/lEaIQ==";
       };
     };
     "markdown-it-sub-1.0.0" = {
@@ -27936,13 +29961,13 @@ let
         sha512 = "UhD2Oj6cZV3ycYPoelt4hTkwKIK3zbPP1wjjdpCq7UGtWQOFalDFDv1s2zBYV6aR2gMs/X8kpJcOYsQmUbiXDw==";
       };
     };
-    "markdown-link-extractor-1.2.3" = {
+    "markdown-link-extractor-1.2.6" = {
       name = "markdown-link-extractor";
       packageName = "markdown-link-extractor";
-      version = "1.2.3";
+      version = "1.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-1.2.3.tgz";
-        sha512 = "BGgBPPNjRpwKzkMxuY5YG2ntPmSL8UMnGiYxRR/9etK3ABLv9SsKHt70PUxv6MaBSC3TnpRsvcIOmnCFWvjcRA==";
+        url = "https://registry.npmjs.org/markdown-link-extractor/-/markdown-link-extractor-1.2.6.tgz";
+        sha512 = "WDiwWTzR/zk0n0As7q1KCB1Jd/T7nJ7IEr6E1QKZR1Agd/xRmB0FjM2IrtC7IZ1ZwxflBE0aLe4pkX8d+rzV8w==";
       };
     };
     "markdown-serve-0.3.3" = {
@@ -27972,6 +29997,15 @@ let
         sha512 = "1RUZVgQlpJSPWYbFSpmudq5nHY1doEIv89gBtF0s4gW1GF2XorxcA/70M5vq7rLv0a6mhOUccRsqkwhwLCIQ2Q==";
       };
     };
+    "markdown-table-2.0.0" = {
+      name = "markdown-table";
+      packageName = "markdown-table";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/markdown-table/-/markdown-table-2.0.0.tgz";
+        sha512 = "Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A==";
+      };
+    };
     "marked-0.3.19" = {
       name = "marked";
       packageName = "marked";
@@ -27981,6 +30015,15 @@ let
         sha512 = "ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==";
       };
     };
+    "marked-0.6.3" = {
+      name = "marked";
+      packageName = "marked";
+      version = "0.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/marked/-/marked-0.6.3.tgz";
+        sha512 = "Fqa7eq+UaxfMriqzYLayfqAE40WN03jf+zHjT18/uXNuzjq3TY0XTbrAoPeqSJrAmPz11VuUA+kBPYOhHt9oOQ==";
+      };
+    };
     "marked-0.7.0" = {
       name = "marked";
       packageName = "marked";
@@ -27999,6 +30042,15 @@ let
         sha512 = "EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==";
       };
     };
+    "marked-1.1.1" = {
+      name = "marked";
+      packageName = "marked";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/marked/-/marked-1.1.1.tgz";
+        sha512 = "mJzT8D2yPxoPh7h0UXkB+dBj4FykPJ2OIfxAWeIHrvoHDkFxukV/29QxoFQoPM6RLEwhIFdJpmKBlqVM3s2ZIw==";
+      };
+    };
     "marked-terminal-4.1.0" = {
       name = "marked-terminal";
       packageName = "marked-terminal";
@@ -28017,6 +30069,15 @@ let
         sha512 = "md9k+Gxa3qLH6sUKpeC2CNkJK/Ld+bEz5X96nYwloqphQE0CKCVEKco/6jxEZixinqNdz5RFi/KaCyfbMDMAXQ==";
       };
     };
+    "mastodon-api-1.3.0" = {
+      name = "mastodon-api";
+      packageName = "mastodon-api";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mastodon-api/-/mastodon-api-1.3.0.tgz";
+        sha1 = "b3bcffcf51e005f754b7e86e44c2023d8e2c63d1";
+      };
+    };
     "match-casing-1.0.3" = {
       name = "match-casing";
       packageName = "match-casing";
@@ -28071,6 +30132,24 @@ let
         sha512 = "YQ/teqaOIIfUHedRam08PB3NK7Mjct6BvzRnJmpGDm8uFXpNr1sbY4yuflI5JcEs6COpYA0FpRQhSDBf1tT95g==";
       };
     };
+    "material-design-icons-3.0.1" = {
+      name = "material-design-icons";
+      packageName = "material-design-icons";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/material-design-icons/-/material-design-icons-3.0.1.tgz";
+        sha1 = "9a71c48747218ebca51e51a66da682038cdcb7bf";
+      };
+    };
+    "material-design-lite-1.3.0" = {
+      name = "material-design-lite";
+      packageName = "material-design-lite";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/material-design-lite/-/material-design-lite-1.3.0.tgz";
+        sha1 = "d004ce3fee99a1eeb74a78b8a325134a5f1171d3";
+      };
+    };
     "math-random-1.0.4" = {
       name = "math-random";
       packageName = "math-random";
@@ -28080,15 +30159,6 @@ let
         sha512 = "rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==";
       };
     };
-    "mathjs-5.10.3" = {
-      name = "mathjs";
-      packageName = "mathjs";
-      version = "5.10.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mathjs/-/mathjs-5.10.3.tgz";
-        sha512 = "ySjg30BC3dYjQm73ILZtwcWzFJde0VU6otkXW/57IjjuYRa3Qaf0Kb8pydEuBZYtqW2OxreAtsricrAmOj3jIw==";
-      };
-    };
     "mathml-tag-names-2.1.3" = {
       name = "mathml-tag-names";
       packageName = "mathml-tag-names";
@@ -28098,6 +30168,24 @@ let
         sha512 = "APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==";
       };
     };
+    "maxstache-1.0.7" = {
+      name = "maxstache";
+      packageName = "maxstache";
+      version = "1.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/maxstache/-/maxstache-1.0.7.tgz";
+        sha1 = "2231d5180ba783d5ecfc31c45fedac7ae4276984";
+      };
+    };
+    "maxstache-stream-1.0.4" = {
+      name = "maxstache-stream";
+      packageName = "maxstache-stream";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/maxstache-stream/-/maxstache-stream-1.0.4.tgz";
+        sha1 = "9c7f5cab7e5fdd2d90da86143b4e9631ea328040";
+      };
+    };
     "md5-2.2.1" = {
       name = "md5";
       packageName = "md5";
@@ -28107,6 +30195,15 @@ let
         sha1 = "53ab38d5fe3c8891ba465329ea23fac0540126f9";
       };
     };
+    "md5-2.3.0" = {
+      name = "md5";
+      packageName = "md5";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/md5/-/md5-2.3.0.tgz";
+        sha512 = "T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==";
+      };
+    };
     "md5-file-4.0.0" = {
       name = "md5-file";
       packageName = "md5-file";
@@ -28116,6 +30213,33 @@ let
         sha512 = "UC0qFwyAjn4YdPpKaDNw6gNxRf7Mcx7jC1UGCY4boCzgvU2Aoc1mOGzTtrjjLKhM5ivsnhoKpQVxKPp+1j1qwg==";
       };
     };
+    "md5-file-5.0.0" = {
+      name = "md5-file";
+      packageName = "md5-file";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/md5-file/-/md5-file-5.0.0.tgz";
+        sha512 = "xbEFXCYVWrSx/gEKS1VPlg84h/4L20znVIulKw6kMfmBUAZNAnF00eczz9ICMl+/hjQGo5KSXRxbL/47X3rmMw==";
+      };
+    };
+    "md5-hex-2.0.0" = {
+      name = "md5-hex";
+      packageName = "md5-hex";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/md5-hex/-/md5-hex-2.0.0.tgz";
+        sha1 = "d0588e9f1c74954492ecd24ac0ac6ce997d92e33";
+      };
+    };
+    "md5-o-matic-0.1.1" = {
+      name = "md5-o-matic";
+      packageName = "md5-o-matic";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/md5-o-matic/-/md5-o-matic-0.1.1.tgz";
+        sha1 = "822bccd65e117c514fab176b25945d54100a03c3";
+      };
+    };
     "md5.js-1.3.5" = {
       name = "md5.js";
       packageName = "md5.js";
@@ -28143,13 +30267,22 @@ let
         sha512 = "3YDMQHI5vRiS2uygEFYaqckibpJtKq5Sj2c8JioeOQBU6INpKbdWzfyLqFFnDwEcEnRFIdMsguzs5pC1Jp4Isg==";
       };
     };
-    "mdast-util-to-nlcst-3.2.3" = {
+    "mdast-util-compact-2.0.1" = {
+      name = "mdast-util-compact";
+      packageName = "mdast-util-compact";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz";
+        sha512 = "7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA==";
+      };
+    };
+    "mdast-util-to-nlcst-4.0.0" = {
       name = "mdast-util-to-nlcst";
       packageName = "mdast-util-to-nlcst";
-      version = "3.2.3";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mdast-util-to-nlcst/-/mdast-util-to-nlcst-3.2.3.tgz";
-        sha512 = "hPIsgEg7zCvdU6/qvjcR6lCmJeRuIEpZGY5xBV+pqzuMOvQajyyF8b6f24f8k3Rw8u40GwkI3aAxUXr3bB2xag==";
+        url = "https://registry.npmjs.org/mdast-util-to-nlcst/-/mdast-util-to-nlcst-4.0.0.tgz";
+        sha512 = "CPDf82bVAVImJTZgZ9S1yxGczDyoYi1R+edzz8EVFUPvT3RN0RZnnSnMikawLf6ukAKj6pyhsG0exSO7UEA3DA==";
       };
     };
     "mdmanifest-1.0.8" = {
@@ -28161,13 +30294,13 @@ let
         sha1 = "c04891883c28c83602e1d06b05a11037e359b4c8";
       };
     };
-    "mdn-browser-compat-data-1.0.15" = {
+    "mdn-browser-compat-data-1.0.35" = {
       name = "mdn-browser-compat-data";
       packageName = "mdn-browser-compat-data";
-      version = "1.0.15";
+      version = "1.0.35";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mdn-browser-compat-data/-/mdn-browser-compat-data-1.0.15.tgz";
-        sha512 = "0jxT4ZqqCzJJfktX9d4NKgfRENy60kFzhVNV0mXNHvlnw8KrMe2cKOlEKs/Bz+odlgO0rRZAxU0OKiptqVhAXg==";
+        url = "https://registry.npmjs.org/mdn-browser-compat-data/-/mdn-browser-compat-data-1.0.35.tgz";
+        sha512 = "7SMAEZgBaElDNcqFhmInBnSo+c+MOzprt7hrGNcEo9hMhDiPQ7L4dwEt6gunudjI0jXenPJaW0S8U4ckeP2uhw==";
       };
     };
     "mdn-data-2.0.4" = {
@@ -28260,33 +30393,6 @@ let
         sha512 = "fPcI4r2yH02UUgMo308CVzIuXUaRUrBzMvjXX8J4XfcHgX9Y73iB0/VLp+S3TnxnTgIGrQ3BFb7kWGR7kkyS8g==";
       };
     };
-    "megaminx-0.3.3" = {
-      name = "megaminx";
-      packageName = "megaminx";
-      version = "0.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/megaminx/-/megaminx-0.3.3.tgz";
-        sha512 = "lZBSLMro+XYJIix9zCZ8N6nZgixpjUPkX6CKuh+Y9Wl9bir/2Fp27NWapA0cNQCPrzOOI9sAwxc4BI14aIdumw==";
-      };
-    };
-    "megaminx-0.9.0" = {
-      name = "megaminx";
-      packageName = "megaminx";
-      version = "0.9.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/megaminx/-/megaminx-0.9.0.tgz";
-        sha512 = "1UcxrUXXYboLWS3AJ2NuLckLi3YR7eJiO5LsYAWHZjYE0mmSqJ2ogSt6JrG8YINyogW9/TUWpL1ojwbRsSbyXw==";
-      };
-    };
-    "mem-1.1.0" = {
-      name = "mem";
-      packageName = "mem";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz";
-        sha1 = "5edd52b485ca1d900fe64895505399a0dfa45f76";
-      };
-    };
     "mem-4.3.0" = {
       name = "mem";
       packageName = "mem";
@@ -28305,13 +30411,13 @@ let
         sha512 = "qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw==";
       };
     };
-    "mem-6.1.0" = {
+    "mem-6.1.1" = {
       name = "mem";
       packageName = "mem";
-      version = "6.1.0";
+      version = "6.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mem/-/mem-6.1.0.tgz";
-        sha512 = "RlbnLQgRHk5lwqTtpEkBTQ2ll/CG/iB+J4Hy2Wh97PjgZgXgWJWrFF+XXujh3UUVLvR4OOTgZzcWMMwnehlEUg==";
+        url = "https://registry.npmjs.org/mem/-/mem-6.1.1.tgz";
+        sha512 = "Ci6bIfq/UgcxPTYa8dQQ5FY3BzKkT894bwXWXxC/zqs0XgMO2cT20CGkOqda7gZNkmK5VP4x89IGZ6K7hfbn3Q==";
       };
     };
     "mem-fs-1.2.0" = {
@@ -28332,6 +30438,42 @@ let
         sha512 = "e0WfJAMm8Gv1mP5fEq/Blzy6Lt1VbLg7gNnZmZak7nhrBTibs+c6nQ4SKs/ZyJYHS1mFgDJeopsLAv7Ow0FMFg==";
       };
     };
+    "mem-fs-editor-7.0.1" = {
+      name = "mem-fs-editor";
+      packageName = "mem-fs-editor";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-7.0.1.tgz";
+        sha512 = "eD8r4/d2ayp9HHIgBPHB6Ds0ggA8F9cf9HxcNtbqrwqJXfIDrOSMG5K4fV3+Ib3B+HIdrWqkeDDDvrO7i9EbvQ==";
+      };
+    };
+    "memfs-3.2.0" = {
+      name = "memfs";
+      packageName = "memfs";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/memfs/-/memfs-3.2.0.tgz";
+        sha512 = "f/xxz2TpdKv6uDn6GtHee8ivFyxwxmPuXatBb1FBwxYNuVpbM3k/Y1Z+vC0mH/dIXXrukYfe3qe5J32Dfjg93A==";
+      };
+    };
+    "memoize-one-5.1.1" = {
+      name = "memoize-one";
+      packageName = "memoize-one";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz";
+        sha512 = "HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==";
+      };
+    };
+    "memoizeasync-1.1.0" = {
+      name = "memoizeasync";
+      packageName = "memoizeasync";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/memoizeasync/-/memoizeasync-1.1.0.tgz";
+        sha1 = "9d7028a6f266deb733510bb7dbba5f51878c561e";
+      };
+    };
     "memoizee-0.4.14" = {
       name = "memoizee";
       packageName = "memoizee";
@@ -28467,13 +30609,13 @@ let
         sha512 = "3YffViIt2QWgTy6Pale5QpopX/IvU3LPL03jOTqp6pGj3VjesdO/U8CuHMKpnQr4shCNCM5fd5XFFvIIl6JBHg==";
       };
     };
-    "meow-7.0.1" = {
+    "meow-7.1.1" = {
       name = "meow";
       packageName = "meow";
-      version = "7.0.1";
+      version = "7.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/meow/-/meow-7.0.1.tgz";
-        sha512 = "tBKIQqVrAHqwit0vfuFPY3LlzJYkEOFyKa3bPgxzNl6q/RtN8KQ+ALYEASYuFayzSAsjlhXj/JZ10rH85Q6TUw==";
+        url = "https://registry.npmjs.org/meow/-/meow-7.1.1.tgz";
+        sha512 = "GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==";
       };
     };
     "merge-1.2.1" = {
@@ -28485,15 +30627,6 @@ let
         sha512 = "VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==";
       };
     };
-    "merge-descriptors-0.0.2" = {
-      name = "merge-descriptors";
-      packageName = "merge-descriptors";
-      version = "0.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-0.0.2.tgz";
-        sha1 = "c36a52a781437513c57275f39dd9d317514ac8c7";
-      };
-    };
     "merge-descriptors-1.0.1" = {
       name = "merge-descriptors";
       packageName = "merge-descriptors";
@@ -28512,6 +30645,15 @@ let
         sha1 = "a5de46538dae84d4114cc5ea02b4772a6346701f";
       };
     };
+    "merge-source-map-1.1.0" = {
+      name = "merge-source-map";
+      packageName = "merge-source-map";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz";
+        sha512 = "Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==";
+      };
+    };
     "merge-stream-2.0.0" = {
       name = "merge-stream";
       packageName = "merge-stream";
@@ -28548,13 +30690,13 @@ let
         sha1 = "401fdec7ec21cdb9e03cd3d3021398da21b27085";
       };
     };
-    "metals-languageclient-0.2.2" = {
+    "metals-languageclient-0.3.1" = {
       name = "metals-languageclient";
       packageName = "metals-languageclient";
-      version = "0.2.2";
+      version = "0.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/metals-languageclient/-/metals-languageclient-0.2.2.tgz";
-        sha512 = "ib0Wjxa6EOqHuamtrN8GwobTc08Q4MLuT57hDsGyfQBClJOxyvgg4Q1ZwMDNB9DDyZzewQu4OTUpPbG57DXHZw==";
+        url = "https://registry.npmjs.org/metals-languageclient/-/metals-languageclient-0.3.1.tgz";
+        sha512 = "+bxUq6HmdHlqEBIyCyr41KsoLJLQ4DRBn9sVXPhZUlhoA/pBMNSq4LVlLUEnBvRYMhxwbAGV6XYuUMKd0vMokA==";
       };
     };
     "metalsmith-2.3.0" = {
@@ -28593,15 +30735,6 @@ let
         sha1 = "335d429eefd21b7bacf2e9c922a8d2bd14a30e4f";
       };
     };
-    "methods-1.0.1" = {
-      name = "methods";
-      packageName = "methods";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/methods/-/methods-1.0.1.tgz";
-        sha1 = "75bc91943dffd7da037cf3eeb0ed73a0037cd14b";
-      };
-    };
     "methods-1.1.2" = {
       name = "methods";
       packageName = "methods";
@@ -28611,6 +30744,24 @@ let
         sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
       };
     };
+    "micro-api-client-3.3.0" = {
+      name = "micro-api-client";
+      packageName = "micro-api-client";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micro-api-client/-/micro-api-client-3.3.0.tgz";
+        sha512 = "y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg==";
+      };
+    };
+    "micro-memoize-2.1.2" = {
+      name = "micro-memoize";
+      packageName = "micro-memoize";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micro-memoize/-/micro-memoize-2.1.2.tgz";
+        sha512 = "COjNutiFgnDHXZEIM/jYuZPwq2h8zMUeScf6Sh6so98a+REqdlpaNS7Cb2ffGfK5I+xfgoA3Rx49NGuNJTJq3w==";
+      };
+    };
     "microbuffer-1.0.0" = {
       name = "microbuffer";
       packageName = "microbuffer";
@@ -28719,15 +30870,6 @@ let
         sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
       };
     };
-    "mime-2.4.4" = {
-      name = "mime";
-      packageName = "mime";
-      version = "2.4.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mime/-/mime-2.4.4.tgz";
-        sha512 = "LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA==";
-      };
-    };
     "mime-2.4.6" = {
       name = "mime";
       packageName = "mime";
@@ -28737,15 +30879,6 @@ let
         sha512 = "RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==";
       };
     };
-    "mime-db-1.12.0" = {
-      name = "mime-db";
-      packageName = "mime-db";
-      version = "1.12.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.12.0.tgz";
-        sha1 = "3d0c63180f458eb10d325aaa37d7c58ae312e9d7";
-      };
-    };
     "mime-db-1.33.0" = {
       name = "mime-db";
       packageName = "mime-db";
@@ -28755,15 +30888,6 @@ let
         sha512 = "BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==";
       };
     };
-    "mime-db-1.43.0" = {
-      name = "mime-db";
-      packageName = "mime-db";
-      version = "1.43.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz";
-        sha512 = "+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==";
-      };
-    };
     "mime-db-1.44.0" = {
       name = "mime-db";
       packageName = "mime-db";
@@ -28773,15 +30897,6 @@ let
         sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
       };
     };
-    "mime-types-2.0.14" = {
-      name = "mime-types";
-      packageName = "mime-types";
-      version = "2.0.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.0.14.tgz";
-        sha1 = "310e159db23e077f8bb22b748dabfa4957140aa6";
-      };
-    };
     "mime-types-2.1.18" = {
       name = "mime-types";
       packageName = "mime-types";
@@ -28791,15 +30906,6 @@ let
         sha512 = "lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==";
       };
     };
-    "mime-types-2.1.26" = {
-      name = "mime-types";
-      packageName = "mime-types";
-      version = "2.1.26";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz";
-        sha512 = "01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==";
-      };
-    };
     "mime-types-2.1.27" = {
       name = "mime-types";
       packageName = "mime-types";
@@ -28827,13 +30933,13 @@ let
         sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==";
       };
     };
-    "mimic-fn-3.0.0" = {
+    "mimic-fn-3.1.0" = {
       name = "mimic-fn";
       packageName = "mimic-fn";
-      version = "3.0.0";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.0.0.tgz";
-        sha512 = "PiVO95TKvhiwgSwg1IdLYlCTdul38yZxZMIcnDSFIBUm4BNZha2qpQ4GpJ++15bHoKDtrW2D69lMfFwdFYtNZQ==";
+        url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-3.1.0.tgz";
+        sha512 = "Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==";
       };
     };
     "mimic-response-1.0.1" = {
@@ -28917,15 +31023,6 @@ let
         sha1 = "f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a";
       };
     };
-    "minimatch-0.2.14" = {
-      name = "minimatch";
-      packageName = "minimatch";
-      version = "0.2.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minimatch/-/minimatch-0.2.14.tgz";
-        sha1 = "c74e780574f63c6f9a090e90efbe6ef53a6a756a";
-      };
-    };
     "minimatch-0.3.0" = {
       name = "minimatch";
       packageName = "minimatch";
@@ -28935,15 +31032,6 @@ let
         sha1 = "275d8edaac4f1bb3326472089e7949c8394699dd";
       };
     };
-    "minimatch-2.0.10" = {
-      name = "minimatch";
-      packageName = "minimatch";
-      version = "2.0.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/minimatch/-/minimatch-2.0.10.tgz";
-        sha1 = "8d087c39c6b38c001b97fca7ce6d0e1e80afbac7";
-      };
-    };
     "minimatch-3.0.4" = {
       name = "minimatch";
       packageName = "minimatch";
@@ -28980,6 +31068,15 @@ let
         sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
       };
     };
+    "minimist-1.2.0" = {
+      name = "minimist";
+      packageName = "minimist";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz";
+        sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+      };
+    };
     "minimist-1.2.5" = {
       name = "minimist";
       packageName = "minimist";
@@ -29007,13 +31104,13 @@ let
         sha512 = "Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==";
       };
     };
-    "minimisted-2.0.0" = {
+    "minimisted-2.0.1" = {
       name = "minimisted";
       packageName = "minimisted";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minimisted/-/minimisted-2.0.0.tgz";
-        sha512 = "oP88Dw3LK/pdrKyMdlbmg3W50969UNr4ctISzJfPl+YPYHTAOrS+dihXnsgRNKSRIzDsrnV3eE2CCVlZbpOKdQ==";
+        url = "https://registry.npmjs.org/minimisted/-/minimisted-2.0.1.tgz";
+        sha512 = "1oPjfuLQa2caorJUM8HV8lGgWCc0qqAO1MNv/k05G4qslmsndV/5WdNZrqCiyqiz3wohia2Ij2B7w2Dr7/IyrA==";
       };
     };
     "minipass-2.9.0" = {
@@ -29043,13 +31140,13 @@ let
         sha512 = "6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==";
       };
     };
-    "minipass-fetch-1.2.1" = {
+    "minipass-fetch-1.3.1" = {
       name = "minipass-fetch";
       packageName = "minipass-fetch";
-      version = "1.2.1";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.2.1.tgz";
-        sha512 = "ssHt0dkljEDaKmTgQ04DQgx2ag6G2gMPxA5hpcsoeTbfDgRf2fC2gNSRc6kISjD7ckCpHwwQvXxuTBK8402fXg==";
+        url = "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.1.tgz";
+        sha512 = "N0ddPAD8OZnoAHUYj1ZH4ZJVna+ucy7if777LrdeIV1ko8f46af4jbyM5EC1gN4xc9Wq5c3C38GnxRJ2gneXRA==";
       };
     };
     "minipass-flush-1.0.5" = {
@@ -29070,13 +31167,13 @@ let
         sha512 = "ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==";
       };
     };
-    "minipass-pipeline-1.2.3" = {
+    "minipass-pipeline-1.2.4" = {
       name = "minipass-pipeline";
       packageName = "minipass-pipeline";
-      version = "1.2.3";
+      version = "1.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.3.tgz";
-        sha512 = "cFOknTvng5vqnwOpDsZTWhNll6Jf8o2x+/diplafmxpuIymAjzoOolZG0VvQf3V2HgqzJNhnuKHYp2BqDgz8IQ==";
+        url = "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz";
+        sha512 = "xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==";
       };
     };
     "minipass-sized-1.0.3" = {
@@ -29106,13 +31203,22 @@ let
         sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==";
       };
     };
-    "minizlib-2.1.0" = {
+    "minizlib-2.1.2" = {
       name = "minizlib";
       packageName = "minizlib";
-      version = "2.1.0";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minizlib/-/minizlib-2.1.0.tgz";
-        sha512 = "EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA==";
+        url = "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz";
+        sha512 = "bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==";
+      };
+    };
+    "mirakurun-3.2.0" = {
+      name = "mirakurun";
+      packageName = "mirakurun";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mirakurun/-/mirakurun-3.2.0.tgz";
+        sha512 = "zRMza+rxE5XUgUDy8lbt1qAKA9TKcApnwmP+06chBZXinxwEiaRbto7vE8is7ky6+qCS9Q7Erf91kbhAsLwydw==";
       };
     };
     "mired-0.0.0" = {
@@ -29151,6 +31257,15 @@ let
         sha1 = "53d500266cbd09cda9d94c4cf392e60589b5b324";
       };
     };
+    "mithril-2.0.4" = {
+      name = "mithril";
+      packageName = "mithril";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mithril/-/mithril-2.0.4.tgz";
+        sha512 = "mgw+DMZlhMS4PpprF6dl7ZoeZq5GGcAuWnrg5e12MvaGauc4jzWsDZtVGRCktsiQczOEUr2K5teKbE5k44RlOg==";
+      };
+    };
     "mixin-deep-1.3.2" = {
       name = "mixin-deep";
       packageName = "mixin-deep";
@@ -29196,15 +31311,6 @@ let
         sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
       };
     };
-    "mkdirp-1.0.3" = {
-      name = "mkdirp";
-      packageName = "mkdirp";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.3.tgz";
-        sha512 = "6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g==";
-      };
-    };
     "mkdirp-1.0.4" = {
       name = "mkdirp";
       packageName = "mkdirp";
@@ -29241,6 +31347,24 @@ let
         sha1 = "ebb3a977e7af1c683ae6fda12b545a6ba6c5853d";
       };
     };
+    "mobx-4.15.7" = {
+      name = "mobx";
+      packageName = "mobx";
+      version = "4.15.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mobx/-/mobx-4.15.7.tgz";
+        sha512 = "X4uQvuf2zYKHVO5kRT5Utmr+J9fDnRgxWWnSqJ4oiccPTQU38YG+/O3nPmOhUy4jeHexl7XJJpWDBgEnEfp+8w==";
+      };
+    };
+    "mobx-react-5.4.4" = {
+      name = "mobx-react";
+      packageName = "mobx-react";
+      version = "5.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mobx-react/-/mobx-react-5.4.4.tgz";
+        sha512 = "2mTzpyEjVB/RGk2i6KbcmP4HWcAUFox5ZRCrGvSyz49w20I4C4qql63grPpYrS9E9GKwgydBHQlA4y665LuRCQ==";
+      };
+    };
     "mocha-2.5.3" = {
       name = "mocha";
       packageName = "mocha";
@@ -29259,6 +31383,15 @@ let
         sha512 = "O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==";
       };
     };
+    "mocha-8.1.3" = {
+      name = "mocha";
+      packageName = "mocha";
+      version = "8.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mocha/-/mocha-8.1.3.tgz";
+        sha512 = "ZbaYib4hT4PpF4bdSO2DohooKXIn4lDeiYqB+vTmCdr6l2woW0b6H3pf5x4sM5nwQMru9RvjjHYWVGltR50ZBw==";
+      };
+    };
     "mock-require-3.0.3" = {
       name = "mock-require";
       packageName = "mock-require";
@@ -29295,22 +31428,22 @@ let
         sha512 = "HTplA9xwDzH67XJFC1YvZMUElWJD28DV0dUq7lhTs+JKJamUOWA/CcYWSlhW5amJO66uWtY7XdltT+LfX0wIVg==";
       };
     };
-    "module-deps-6.2.2" = {
+    "module-deps-6.2.3" = {
       name = "module-deps";
       packageName = "module-deps";
-      version = "6.2.2";
+      version = "6.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/module-deps/-/module-deps-6.2.2.tgz";
-        sha512 = "a9y6yDv5u5I4A+IPHTnqFxcaKr4p50/zxTjcQJaX2ws9tN/W6J6YXnEKhqRyPhl494dkcxx951onSKVezmI+3w==";
+        url = "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz";
+        sha512 = "fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==";
       };
     };
-    "module-lookup-amd-6.2.0" = {
-      name = "module-lookup-amd";
-      packageName = "module-lookup-amd";
-      version = "6.2.0";
+    "moize-5.4.7" = {
+      name = "moize";
+      packageName = "moize";
+      version = "5.4.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/module-lookup-amd/-/module-lookup-amd-6.2.0.tgz";
-        sha512 = "uxHCj5Pw9psZiC1znjU2qPsubt6haCSsN9m7xmIdoTciEgfxUkE1vhtDvjHPuOXEZrVJhjKgkmkP+w73rRuelQ==";
+        url = "https://registry.npmjs.org/moize/-/moize-5.4.7.tgz";
+        sha512 = "7PZH8QFJ51cIVtDv7wfUREBd3gL59JB0v/ARA3RI9zkSRa9LyGjS1Bdldii2J1/NQXRQ/3OOVOSdnZrCcVaZlw==";
       };
     };
     "mold-source-map-0.4.0" = {
@@ -29331,22 +31464,22 @@ let
         sha512 = "Yh9y73JRljxW5QxN08Fner68eFLxM5ynNOAw2LbIB1YAGeQzZT8QFSUvkAz609Zf+IHhhaUxqZK8dG3W/+HEvg==";
       };
     };
-    "moment-2.25.3" = {
+    "moment-2.27.0" = {
       name = "moment";
       packageName = "moment";
-      version = "2.25.3";
+      version = "2.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/moment/-/moment-2.25.3.tgz";
-        sha512 = "PuYv0PHxZvzc15Sp8ybUCoQ+xpyPWvjOuK72a5ovzp2LI32rJXOiIfyoFoYvG3s6EwwrdkMyWuRiEHSZRLJNdg==";
+        url = "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz";
+        sha512 = "al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==";
       };
     };
-    "moment-2.26.0" = {
+    "moment-2.28.0" = {
       name = "moment";
       packageName = "moment";
-      version = "2.26.0";
+      version = "2.28.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/moment/-/moment-2.26.0.tgz";
-        sha512 = "oIixUO+OamkUkwjhAVE18rAMfRJNsNe/Stid/gwHSOfHrOtw9EhAY2AHvdKZ/k/MggcYELFCJz/Sn2pL8b8JMw==";
+        url = "https://registry.npmjs.org/moment/-/moment-2.28.0.tgz";
+        sha512 = "Z5KOjYmnHyd/ukynmFd/WwyXHd7L4J9vTI/nn5Ap9AVUgaAE15VvQ9MOGmJJygEUklupqIrFnor/tjTwRU+tQw==";
       };
     };
     "moment-2.7.0" = {
@@ -29367,6 +31500,15 @@ let
         sha512 = "+GgHNg8xRhMXfEbv81iDtrVeTcWt0kWmTEY1XQK14dICTXnWJnT0dxdlPspwqF3keKMVPXwayEsk1DI0AA/jdA==";
       };
     };
+    "monotonic-timestamp-0.0.9" = {
+      name = "monotonic-timestamp";
+      packageName = "monotonic-timestamp";
+      version = "0.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/monotonic-timestamp/-/monotonic-timestamp-0.0.9.tgz";
+        sha1 = "5ba5adc7aac85e1d7ce77be847161ed246b39603";
+      };
+    };
     "moo-0.5.1" = {
       name = "moo";
       packageName = "moo";
@@ -29412,6 +31554,15 @@ let
         sha1 = "be2c005fda32e0b29af1f05d7c4b33214c701f92";
       };
     };
+    "move-file-1.2.0" = {
+      name = "move-file";
+      packageName = "move-file";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/move-file/-/move-file-1.2.0.tgz";
+        sha512 = "USHrRmxzGowUWAGBbJPdFjHzEqtxDU03pLHY0Rfqgtnq+q8FOIs8wvkkf+Udmg77SJKs47y9sI0jJvQeYsmiCA==";
+      };
+    };
     "mp4-box-encoding-1.4.1" = {
       name = "mp4-box-encoding";
       packageName = "mp4-box-encoding";
@@ -29457,15 +31608,6 @@ let
         sha512 = "eaF9rO2uFrIYEHomJxziuKTDkbWW5psLBaIGCazQSKqYsTaB3n4SpvJ1PexKaDBiPnMLPIFWBIiTYT3IfEJfww==";
       };
     };
-    "ms-0.7.0" = {
-      name = "ms";
-      packageName = "ms";
-      version = "0.7.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ms/-/ms-0.7.0.tgz";
-        sha1 = "865be94c2e7397ad8a57da6a633a6e2f30798b83";
-      };
-    };
     "ms-0.7.1" = {
       name = "ms";
       packageName = "ms";
@@ -29655,13 +31797,13 @@ let
         sha1 = "a567c2af000ad22dc8f2a653d91978ae1f5316f4";
       };
     };
-    "multiparty-4.2.1" = {
+    "multiparty-4.2.2" = {
       name = "multiparty";
       packageName = "multiparty";
-      version = "4.2.1";
+      version = "4.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/multiparty/-/multiparty-4.2.1.tgz";
-        sha512 = "AvESCnNoQlZiOfP9R4mxN8M9csy2L16EIbWIkt3l4FuGti9kXBS8QVzlfyg4HEnarJhrzZilgNFlZtqmoiAIIA==";
+        url = "https://registry.npmjs.org/multiparty/-/multiparty-4.2.2.tgz";
+        sha512 = "NtZLjlvsjcoGrzojtwQwn/Tm90aWJ6XXtPppYF4WmOk/6ncdwMMKggFY2NlRRN9yiCEIVxpOfPWahVEG2HAG8Q==";
       };
     };
     "multipipe-0.1.2" = {
@@ -29718,6 +31860,15 @@ let
         sha512 = "t0C8MAtH/d3Y+5nooEtUMWli92lVw9Jhx4uOhRl5GAwS5vc+YTmp/VXNJNsCBAMeEyK/6zhbk6x9JE3AiCvo4g==";
       };
     };
+    "munin-plugin-0.0.9" = {
+      name = "munin-plugin";
+      packageName = "munin-plugin";
+      version = "0.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/munin-plugin/-/munin-plugin-0.0.9.tgz";
+        sha1 = "ca17e1eafb3b9155b5e4c21062210e348a9dbe91";
+      };
+    };
     "mustache-2.3.2" = {
       name = "mustache";
       packageName = "mustache";
@@ -29799,13 +31950,13 @@ let
         sha512 = "nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==";
       };
     };
-    "mutexify-1.3.0" = {
+    "mutexify-1.3.1" = {
       name = "mutexify";
       packageName = "mutexify";
-      version = "1.3.0";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mutexify/-/mutexify-1.3.0.tgz";
-        sha512 = "WNPlgZ3AHETGSa4jeRP4aW6BPQ/a++MwoMFFIgrDg80+m70mbxuNOrevANfBDmur82zxTFAY3OwvMAvqrkV2sA==";
+        url = "https://registry.npmjs.org/mutexify/-/mutexify-1.3.1.tgz";
+        sha512 = "nU7mOEuaXiQIB/EgTIjYZJ7g8KqMm2D8l4qp+DqA4jxWOb/tnb1KEoqp+tlbdQIDIAiC1i7j7X/3yHDFXLxr9g==";
       };
     };
     "muxrpc-6.5.0" = {
@@ -29862,6 +32013,15 @@ let
         sha1 = "37585555a4ff1985309edac7c2a045a466be6c32";
       };
     };
+    "mysql-2.18.1" = {
+      name = "mysql";
+      packageName = "mysql";
+      version = "2.18.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz";
+        sha512 = "Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==";
+      };
+    };
     "mz-2.7.0" = {
       name = "mz";
       packageName = "mz";
@@ -29889,6 +32049,15 @@ let
         sha512 = "TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw==";
       };
     };
+    "nan-2.14.0" = {
+      name = "nan";
+      packageName = "nan";
+      version = "2.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz";
+        sha512 = "INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==";
+      };
+    };
     "nan-2.14.1" = {
       name = "nan";
       packageName = "nan";
@@ -29997,15 +32166,6 @@ let
         sha512 = "ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==";
       };
     };
-    "napi-macros-1.8.2" = {
-      name = "napi-macros";
-      packageName = "napi-macros";
-      version = "1.8.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/napi-macros/-/napi-macros-1.8.2.tgz";
-        sha512 = "Tr0DNY4RzTaBG2W2m3l7ZtFuJChTH6VZhXVhkGGjF/4cZTt+i8GcM9ozD+30Lmr4mDoZ5Xx34t2o4GJqYWDGcg==";
-      };
-    };
     "napi-macros-2.0.0" = {
       name = "napi-macros";
       packageName = "napi-macros";
@@ -30015,55 +32175,6 @@ let
         sha512 = "A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==";
       };
     };
-    "native-dns-cache-git+https://github.com/okTurtles/native-dns-cache.git#8714196bb9223cc9a4064a4fddf9e82ec50b7d4d" = {
-      name = "native-dns-cache";
-      packageName = "native-dns-cache";
-      version = "0.0.2";
-      src = fetchgit {
-        url = "https://github.com/okTurtles/native-dns-cache.git";
-        rev = "8714196bb9223cc9a4064a4fddf9e82ec50b7d4d";
-        sha256 = "3f06b2577afc3c1e428533baae3c51bad44a2e1e02fca147a1303943c214f841";
-      };
-    };
-    "native-dns-git+https://github.com/okTurtles/node-dns.git#08433ec98f517eed3c6d5e47bdf62603539cd402" = {
-      name = "native-dns";
-      packageName = "native-dns";
-      version = "0.6.1";
-      src = fetchgit {
-        url = "https://github.com/okTurtles/node-dns.git";
-        rev = "08433ec98f517eed3c6d5e47bdf62603539cd402";
-        sha256 = "a7342bfd4e952490a8a25a68efcb1d16ecc2391f1044109ebeace89ad284f7a2";
-      };
-    };
-    "native-dns-packet-0.1.1" = {
-      name = "native-dns-packet";
-      packageName = "native-dns-packet";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/native-dns-packet/-/native-dns-packet-0.1.1.tgz";
-        sha1 = "97da90570b8438a00194701ce24d011fd3cc109a";
-      };
-    };
-    "native-dns-packet-git+https://github.com/okTurtles/native-dns-packet.git#307e77a47ebba57a5ae9118a284e916e5ebb305a" = {
-      name = "native-dns-packet";
-      packageName = "native-dns-packet";
-      version = "0.0.3";
-      src = fetchgit {
-        url = "https://github.com/okTurtles/native-dns-packet.git";
-        rev = "307e77a47ebba57a5ae9118a284e916e5ebb305a";
-        sha256 = "f8aaa7bb3b2a652e52bfe5c13a6531c71d690f621ef4d86d0787838708a50358";
-      };
-    };
-    "native-dns-packet-git+https://github.com/okTurtles/native-dns-packet.git#8bf2714c318cfe7d31bca2006385882ccbf503e4" = {
-      name = "native-dns-packet";
-      packageName = "native-dns-packet";
-      version = "0.0.4";
-      src = fetchgit {
-        url = "https://github.com/okTurtles/native-dns-packet.git";
-        rev = "8bf2714c318cfe7d31bca2006385882ccbf503e4";
-        sha256 = "1f39a4bd88978a0b51d45c32c777fb7f75b12e220cf7d206aa5a12d1e4e80f9d";
-      };
-    };
     "native-promise-only-0.8.1" = {
       name = "native-promise-only";
       packageName = "native-promise-only";
@@ -30073,6 +32184,15 @@ let
         sha1 = "20a318c30cb45f71fe7adfbf7b21c99c1472ef11";
       };
     };
+    "native-request-1.0.7" = {
+      name = "native-request";
+      packageName = "native-request";
+      version = "1.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/native-request/-/native-request-1.0.7.tgz";
+        sha512 = "9nRjinI9bmz+S7dgNtf4A70+/vPhnd+2krGpy4SUlADuOuSa24IDkNaZ+R/QT1wQ6S8jBdi6wE7fLekFZNfUpQ==";
+      };
+    };
     "natives-1.1.6" = {
       name = "natives";
       packageName = "natives";
@@ -30109,13 +32229,13 @@ let
         sha512 = "p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q==";
       };
     };
-    "ncjsm-4.0.1" = {
+    "ncjsm-4.1.0" = {
       name = "ncjsm";
       packageName = "ncjsm";
-      version = "4.0.1";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ncjsm/-/ncjsm-4.0.1.tgz";
-        sha512 = "gxh5Sgait8HyclaulfhgetHQGyhFm00ZQqISIfqtwFVnyWJ20rk+55SUamo9n3KhM6Vk63gemKPxIDYiSV/xZw==";
+        url = "https://registry.npmjs.org/ncjsm/-/ncjsm-4.1.0.tgz";
+        sha512 = "YElRGtbz5iIartetOI3we+XAkcGE29F0SdNC0qRy500/u4WceQd2z9Nhlx24OHmIDIKz9MHdJwf/fkSG0hdWcQ==";
       };
     };
     "nconf-0.10.0" = {
@@ -30136,15 +32256,6 @@ let
         sha1 = "9570ef15ed6f9ae6b2b3c8d5e71b66d3193cd661";
       };
     };
-    "nconf-0.7.1" = {
-      name = "nconf";
-      packageName = "nconf";
-      version = "0.7.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/nconf/-/nconf-0.7.1.tgz";
-        sha1 = "ee4b561dd979a3c58db122e38f196d49d61aeb5b";
-      };
-    };
     "ncp-0.4.2" = {
       name = "ncp";
       packageName = "ncp";
@@ -30199,13 +32310,13 @@ let
         sha1 = "ae603b36b134bcec347b452422b0bf98d5832ec8";
       };
     };
-    "nearley-2.19.3" = {
+    "nearley-2.19.7" = {
       name = "nearley";
       packageName = "nearley";
-      version = "2.19.3";
+      version = "2.19.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nearley/-/nearley-2.19.3.tgz";
-        sha512 = "FpAy1PmTsUpOtgxr23g4jRNvJHYzZEW2PixXeSzksLR/ykPfwKhAodc2+9wQhY+JneWLcvkDw6q7FJIsIdF/aQ==";
+        url = "https://registry.npmjs.org/nearley/-/nearley-2.19.7.tgz";
+        sha512 = "Y+KNwhBPcSJKeyQCFjn8B/MIe+DDlhaaDgjVldhy5xtFewIbiQgcbZV8k2gCVwkI1ZsKCnjIYZbR+0Fim5QYgg==";
       };
     };
     "neat-csv-2.1.0" = {
@@ -30280,6 +32391,15 @@ let
         sha512 = "o/qITSDR0JCyCKEQ1/1bnUXMmznxabbwi/Y4WwJElf+evwJNFNwIDMCCt5IigFVxgeGBJESLohGtIS9gEzo1fA==";
       };
     };
+    "needle-2.5.2" = {
+      name = "needle";
+      packageName = "needle";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/needle/-/needle-2.5.2.tgz";
+        sha512 = "LbRIwS9BfkPvNwNHlsA41Q29kL2L/6VaOJ0qisM5lLWsTV3nP15abO5ITL6L81zqFhzjRKDAYjpcBcwM0AVvLQ==";
+      };
+    };
     "negotiator-0.3.0" = {
       name = "negotiator";
       packageName = "negotiator";
@@ -30317,22 +32437,13 @@ let
         sha256 = "243e90fbf6616ef39f3c71bbcd027799e35cbf2ef3f25203676f65b20f7f7394";
       };
     };
-    "neo-async-2.6.1" = {
+    "neo-async-2.6.2" = {
       name = "neo-async";
       packageName = "neo-async";
-      version = "2.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz";
-        sha512 = "iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==";
-      };
-    };
-    "nested-error-stacks-2.0.1" = {
-      name = "nested-error-stacks";
-      packageName = "nested-error-stacks";
-      version = "2.0.1";
+      version = "2.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz";
-        sha512 = "SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A==";
+        url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz";
+        sha512 = "Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==";
       };
     };
     "nested-error-stacks-2.1.0" = {
@@ -30344,6 +32455,33 @@ let
         sha512 = "AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==";
       };
     };
+    "netlify-4.5.1" = {
+      name = "netlify";
+      packageName = "netlify";
+      version = "4.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/netlify/-/netlify-4.5.1.tgz";
+        sha512 = "Ke6lXulj8Jd4qzAmHv5VHvqAWoV+EkQUKiBDvpZuUAGA12UDRP4vl7gvJkxmwZ5Z/trIOgiOC9n8y/NHlvFbXA==";
+      };
+    };
+    "netlify-redirect-parser-2.5.0" = {
+      name = "netlify-redirect-parser";
+      packageName = "netlify-redirect-parser";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/netlify-redirect-parser/-/netlify-redirect-parser-2.5.0.tgz";
+        sha512 = "pF8BiOr3Pa4kQLLiOu53I0d30EIUDM0DYqYvCQmKD96cMX2qLh/QsxT0Zh18IrL5a0IWQ236/o76lTe0yEEw6w==";
+      };
+    };
+    "netlify-redirector-0.2.0" = {
+      name = "netlify-redirector";
+      packageName = "netlify-redirector";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/netlify-redirector/-/netlify-redirector-0.2.0.tgz";
+        sha512 = "5SSUu++MXvE/tik90Hx7lzISBHCl5k4TqpVeTuBEoHp5K7uWitY7c3MjPNiY3kB83GSZiTNLbuIY7bo6mpyU3Q==";
+      };
+    };
     "netmask-1.0.6" = {
       name = "netmask";
       packageName = "netmask";
@@ -30461,13 +32599,13 @@ let
         sha512 = "dWJ3XUoAoWoau24xOM59Y1FPozv7DyYWy+rdUaXj9Ow0hBCVuwqDQbXzTF7H+HskyTVpTkRPXYPu4YsMEScmRw==";
       };
     };
-    "nlcst-search-1.5.1" = {
+    "nlcst-search-2.0.0" = {
       name = "nlcst-search";
       packageName = "nlcst-search";
-      version = "1.5.1";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/nlcst-search/-/nlcst-search-1.5.1.tgz";
-        sha512 = "G3ws0fgNlVsUvHvA2G1PTjyxzGOJ0caI0+WOvlZzev5iSUTX+R1q4lnlL4Y7E+he4ZMUW/0FMn9rYwdYon/13g==";
+        url = "https://registry.npmjs.org/nlcst-search/-/nlcst-search-2.0.0.tgz";
+        sha512 = "+3xdctMFTcG+76vKAa0wObNg1EYq7IIQlZcL+HxSFXkHO1DgSPRjsPJrmelVIvMg7rk+wmBcdPEoScv/CTT1Zw==";
       };
     };
     "nlcst-to-string-2.0.4" = {
@@ -30515,13 +32653,13 @@ let
         sha512 = "iEOqDAOFl6uN5jZGRj39Jdo8qALzf2HPXtpFso8+BMaDylDrUMYMwhFbfYGgxdnMlsRnxYTwv68kaXEpsHIapg==";
       };
     };
-    "node-abi-2.18.0" = {
+    "node-abi-2.19.1" = {
       name = "node-abi";
       packageName = "node-abi";
-      version = "2.18.0";
+      version = "2.19.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.18.0.tgz";
-        sha512 = "yi05ZoiuNNEbyT/xXfSySZE+yVnQW6fxPZuFbLyS1s6b5Kw3HzV2PHOM4XR+nsjzkHxByK+2Wg+yCQbe35l8dw==";
+        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.19.1.tgz";
+        sha512 = "HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A==";
       };
     };
     "node-addon-api-1.7.2" = {
@@ -30533,13 +32671,22 @@ let
         sha512 = "ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==";
       };
     };
-    "node-appc-0.2.49" = {
+    "node-addon-api-2.0.0" = {
+      name = "node-addon-api";
+      packageName = "node-addon-api";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.0.tgz";
+        sha512 = "ASCL5U13as7HhOExbT6OlWJJUV/lLzL2voOSP1UVehpRD8FbSrSDjfScK/KwAvVTI5AS6r4VwbOMlIqtvRidnA==";
+      };
+    };
+    "node-appc-1.1.1" = {
       name = "node-appc";
       packageName = "node-appc";
-      version = "0.2.49";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-appc/-/node-appc-0.2.49.tgz";
-        sha512 = "PldEN7CgEy7ekSZyomgpajLX7STCZPDJI6rGy7FCbWi7ZJgTt9/C3omCxPkIKVjtwcXzXoSA31zUWUnBzTkEUg==";
+        url = "https://registry.npmjs.org/node-appc/-/node-appc-1.1.1.tgz";
+        sha512 = "QYOmRUq9B0LfVZ5MWQlbv8tHa4pzQ+YbagjUUvMIx6lVjhCjG9pPMRyPFK7/HXiQ+WrsiuydSbJgsBZt1p18Rg==";
       };
     };
     "node-bitmap-0.0.1" = {
@@ -30551,13 +32698,13 @@ let
         sha1 = "180eac7003e0c707618ef31368f62f84b2a69091";
       };
     };
-    "node-cache-5.1.1" = {
+    "node-cache-5.1.2" = {
       name = "node-cache";
       packageName = "node-cache";
-      version = "5.1.1";
+      version = "5.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-cache/-/node-cache-5.1.1.tgz";
-        sha512 = "bJ9nH25Z51HG2QIu66K4dMVyMs6o8bNQpviDnXzG+O/gfNxPU9IpIig0j4pzlO707GcGZ6QA4rWhlRxjJsjnZw==";
+        url = "https://registry.npmjs.org/node-cache/-/node-cache-5.1.2.tgz";
+        sha512 = "t1QzWwnk4sjLWaQAS8CHgOJ+RAfmHpxFWmc36IWTiWHQfs0w5JDMBS1b1ZxQteo0vVVuWJvIUKHDkkeK7vIGCg==";
       };
     };
     "node-color-readline-1.0.1" = {
@@ -30606,6 +32753,15 @@ let
         sha512 = "5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==";
       };
     };
+    "node-fetch-1.6.3" = {
+      name = "node-fetch";
+      packageName = "node-fetch";
+      version = "1.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-fetch/-/node-fetch-1.6.3.tgz";
+        sha1 = "dc234edd6489982d58e8f0db4f695029abcd8c04";
+      };
+    };
     "node-fetch-1.7.3" = {
       name = "node-fetch";
       packageName = "node-fetch";
@@ -30633,6 +32789,15 @@ let
         sha512 = "8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==";
       };
     };
+    "node-fetch-2.6.1" = {
+      name = "node-fetch";
+      packageName = "node-fetch";
+      version = "2.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz";
+        sha512 = "V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==";
+      };
+    };
     "node-fetch-h2-2.3.0" = {
       name = "node-fetch-h2";
       packageName = "node-fetch-h2";
@@ -30651,6 +32816,15 @@ let
         sha512 = "iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==";
       };
     };
+    "node-forge-0.10.0" = {
+      name = "node-forge";
+      packageName = "node-forge";
+      version = "0.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz";
+        sha512 = "PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==";
+      };
+    };
     "node-forge-0.2.24" = {
       name = "node-forge";
       packageName = "node-forge";
@@ -30669,13 +32843,13 @@ let
         sha512 = "sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw==";
       };
     };
-    "node-forge-0.9.0" = {
+    "node-forge-0.9.1" = {
       name = "node-forge";
       packageName = "node-forge";
-      version = "0.9.0";
+      version = "0.9.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-forge/-/node-forge-0.9.0.tgz";
-        sha512 = "7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==";
+        url = "https://registry.npmjs.org/node-forge/-/node-forge-0.9.1.tgz";
+        sha512 = "G6RlQt5Sb4GMBzXvhfkeFmbqR6MzhtnT7VTHuLadjkii3rdYHNdw0m8zA4BTxVIh68FicCQ2NSUANpsqkr9jvQ==";
       };
     };
     "node-gyp-3.8.0" = {
@@ -30687,6 +32861,15 @@ let
         sha512 = "3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==";
       };
     };
+    "node-gyp-4.0.0" = {
+      name = "node-gyp";
+      packageName = "node-gyp";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-gyp/-/node-gyp-4.0.0.tgz";
+        sha512 = "2XiryJ8sICNo6ej8d0idXDEMKfVfFK7kekGCtJAuelGsYHQxhj13KTf95swTCN2dZ/4lTfZ84Fu31jqJEEgjWA==";
+      };
+    };
     "node-gyp-5.1.1" = {
       name = "node-gyp";
       packageName = "node-gyp";
@@ -30732,13 +32915,13 @@ let
         sha512 = "dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==";
       };
     };
-    "node-gyp-build-4.2.2" = {
+    "node-gyp-build-4.2.3" = {
       name = "node-gyp-build";
       packageName = "node-gyp-build";
-      version = "4.2.2";
+      version = "4.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.2.tgz";
-        sha512 = "Lqh7mrByWCM8Cf9UPqpeoVBBo5Ugx+RKu885GAzmLBVYjeywScxHXPGLa4JfYNZmcNGwzR0Glu5/9GaQZMFqyA==";
+        url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz";
+        sha512 = "MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==";
       };
     };
     "node-int64-0.4.0" = {
@@ -30786,6 +32969,15 @@ let
         sha512 = "SVfQ/wMw+DesunOm5cKqr6yDcvUTDl/yc97ybGHMrteNEY6oekXpNpS3lZwgLlwz0FLgHoiW28ZpmBHUDg37cw==";
       };
     };
+    "node-notifier-8.0.0" = {
+      name = "node-notifier";
+      packageName = "node-notifier";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz";
+        sha512 = "46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==";
+      };
+    };
     "node-persist-2.1.0" = {
       name = "node-persist";
       packageName = "node-persist";
@@ -30831,6 +33023,15 @@ let
         sha512 = "4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A==";
       };
     };
+    "node-pre-gyp-0.14.0" = {
+      name = "node-pre-gyp";
+      packageName = "node-pre-gyp";
+      version = "0.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz";
+        sha512 = "+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA==";
+      };
+    };
     "node-pre-gyp-0.6.39" = {
       name = "node-pre-gyp";
       packageName = "node-pre-gyp";
@@ -30849,6 +33050,15 @@ let
         sha1 = "dbbd4af12134e2e635c245ef93ffcf6f60673a5d";
       };
     };
+    "node-red-admin-0.2.6" = {
+      name = "node-red-admin";
+      packageName = "node-red-admin";
+      version = "0.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-red-admin/-/node-red-admin-0.2.6.tgz";
+        sha512 = "s3TlPwl9VbhsCTg9w2nUCdyBwqyRGqnaohy9iPJPmHPnvT+YudVt9VCoJVol5lPlWbDC9QlBQMyHQDdXIxoLkw==";
+      };
+    };
     "node-red-node-rbe-0.2.9" = {
       name = "node-red-node-rbe";
       packageName = "node-red-node-rbe";
@@ -30867,13 +33077,13 @@ let
         sha512 = "j1g/VtSCI2tBrBnCD+u8iSo9tH0nvn70k1O1SxkHk3+qx7tHUyOKQc7wNc4rUs9J1PkGngUC3qEDd5cL7Z/klg==";
       };
     };
-    "node-releases-1.1.58" = {
+    "node-releases-1.1.61" = {
       name = "node-releases";
       packageName = "node-releases";
-      version = "1.1.58";
+      version = "1.1.61";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz";
-        sha512 = "NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==";
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.61.tgz";
+        sha512 = "DD5vebQLg8jLCOzwupn954fbIiZht05DAZs0k2u8NStSe6h9XdsuIQL8hSRKYiU8WUQRznmSDrKGbv3ObOmC7g==";
       };
     };
     "node-source-walk-4.2.0" = {
@@ -31011,6 +33221,15 @@ let
         sha1 = "94a2b1633c4f1317553007d8966fd0e841b6a4c2";
       };
     };
+    "noop2-2.0.0" = {
+      name = "noop2";
+      packageName = "noop2";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/noop2/-/noop2-2.0.0.tgz";
+        sha1 = "4b636015e9882b54783c02b412f699d8c5cd0a5b";
+      };
+    };
     "nopt-1.0.10" = {
       name = "nopt";
       packageName = "nopt";
@@ -31065,6 +33284,15 @@ let
         sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==";
       };
     };
+    "nopt-5.0.0" = {
+      name = "nopt";
+      packageName = "nopt";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz";
+        sha512 = "Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==";
+      };
+    };
     "normalize-html-whitespace-1.0.0" = {
       name = "normalize-html-whitespace";
       packageName = "normalize-html-whitespace";
@@ -31281,15 +33509,6 @@ let
         sha512 = "wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==";
       };
     };
-    "npm-pick-manifest-6.0.0" = {
-      name = "npm-pick-manifest";
-      packageName = "npm-pick-manifest";
-      version = "6.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.0.0.tgz";
-        sha512 = "PdJpXMvjqt4nftNEDpCgjBUF8yI3Q3MyuAmVB9nemnnCg32F4BPL/JFBfdj8DubgHCYUFQhtLWmBPvdsFtjWMg==";
-      };
-    };
     "npm-pick-manifest-6.1.0" = {
       name = "npm-pick-manifest";
       packageName = "npm-pick-manifest";
@@ -31326,22 +33545,22 @@ let
         sha512 = "Qs6P6nnopig+Y8gbzpeN/dkt+n7IyVd8f45NTMotGk6Qo7GfBmzwYx6jRLoOOgKiMnaQfYxsuyQlD8Mc3guBhg==";
       };
     };
-    "npm-registry-fetch-4.0.4" = {
+    "npm-registry-fetch-4.0.7" = {
       name = "npm-registry-fetch";
       packageName = "npm-registry-fetch";
-      version = "4.0.4";
+      version = "4.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.4.tgz";
-        sha512 = "6jb34hX/iYNQebqWUHtU8YF6Cjb1H6ouTFPClYsyiW6lpFkljTpdeftm53rRojtja1rKAvKNIIiTS5Sjpw4wsA==";
+        url = "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz";
+        sha512 = "cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==";
       };
     };
-    "npm-registry-fetch-8.1.0" = {
+    "npm-registry-fetch-8.1.4" = {
       name = "npm-registry-fetch";
       packageName = "npm-registry-fetch";
-      version = "8.1.0";
+      version = "8.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-8.1.0.tgz";
-        sha512 = "RkcugRDye2j6yEiHGMyAdKQoipgp8VToSIjm+TFLhVraXOkC/WU2kjE2URcYBpcJ4hs++VFBKo6+Zg4wmrS+Qw==";
+        url = "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-8.1.4.tgz";
+        sha512 = "UaLGFQP7VCuyBsb7S5P5od3av/Zy9JW6K5gbMigjZCYnEpIkWWRiLQTKVpxM4QocfPcsjm+xtyrDNm4jdqwNEg==";
       };
     };
     "npm-run-path-2.0.2" = {
@@ -31515,31 +33734,31 @@ let
         sha512 = "pJTS2+T0oGIwgjGpw7sIRU8RQMcUoKCDWFLdBqKB2BNmGpbBMH2sdqAaOXUg8OzonZHU0L7vfJu1mJFEiYDWOQ==";
       };
     };
-    "oas-linter-3.1.2" = {
+    "oas-linter-3.2.0" = {
       name = "oas-linter";
       packageName = "oas-linter";
-      version = "3.1.2";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oas-linter/-/oas-linter-3.1.2.tgz";
-        sha512 = "mv3HBG9aQz8PLGvonewIN9Y2Ra8QL6jvotRvf7NCdZ20n5vg4dO4y61UZh6s+KRDfJaU1PO+9Oxrn3EUN4Xygw==";
+        url = "https://registry.npmjs.org/oas-linter/-/oas-linter-3.2.0.tgz";
+        sha512 = "LP5F1dhjULEJV5oGRg6ROztH2FddzttrrUEwq5J2GB2Zy938mg0vwt1+Rthn/qqDHtj4Qgq21duNGHh+Ew1wUg==";
       };
     };
-    "oas-resolver-2.3.2" = {
+    "oas-resolver-2.5.0" = {
       name = "oas-resolver";
       packageName = "oas-resolver";
-      version = "2.3.2";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.3.2.tgz";
-        sha512 = "toGCUv8wyZZmUAAsw4jn+511xNpUFW2ZLp4sAZ7xpERIeosrbxBxtkVxot9kXvdUHtPjRafi5+bkJ56TwQeYSQ==";
+        url = "https://registry.npmjs.org/oas-resolver/-/oas-resolver-2.5.0.tgz";
+        sha512 = "69OF0iCTDXXp3ttAEPUcCz/eSJd6eyrWAIrPit2wnL7Q4Ti82Q2dXQVMdz5S+JPCgtZOETnTgPs/EsMuH2vIzg==";
       };
     };
-    "oas-schema-walker-1.1.4" = {
+    "oas-schema-walker-1.1.5" = {
       name = "oas-schema-walker";
       packageName = "oas-schema-walker";
-      version = "1.1.4";
+      version = "1.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.4.tgz";
-        sha512 = "foVDDS0RJYMfhQEDh/WdBuCzydTcsCnGo9EeD8SpWq1uW10JXiz+8SfYVDA7LO87kjmlnTRZle/2gr5qxabaEA==";
+        url = "https://registry.npmjs.org/oas-schema-walker/-/oas-schema-walker-1.1.5.tgz";
+        sha512 = "2yucenq1a9YPmeNExoUa9Qwrt9RFkjqaMAA1X+U7sbb0AqBeTIdMHky9SQQ6iN94bO5NW0W4TRYXerG+BdAvAQ==";
       };
     };
     "oas-validator-3.4.0" = {
@@ -31687,6 +33906,15 @@ let
         sha512 = "a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==";
       };
     };
+    "object-inspect-1.8.0" = {
+      name = "object-inspect";
+      packageName = "object-inspect";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz";
+        sha512 = "jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==";
+      };
+    };
     "object-is-1.1.2" = {
       name = "object-is";
       packageName = "object-is";
@@ -31732,13 +33960,13 @@ let
         sha512 = "BfWfuAwuhdH1bhMG5EG90WE/eckkBhBvnke8eSEkCDXoLE9Jk5JwYGTbCx1ehGwV48HvBkn62VukPBdlMUOY9w==";
       };
     };
-    "object-treeify-1.1.25" = {
+    "object-treeify-1.1.28" = {
       name = "object-treeify";
       packageName = "object-treeify";
-      version = "1.1.25";
+      version = "1.1.28";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.25.tgz";
-        sha512 = "6Abx0xlXDnYd50JkQefvoIly3jWOu8/PqH4lh8p2/aMFEx5TjsUGHt0H9NHfzt+pCwOhpPgNYofD8e2YywIXig==";
+        url = "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.28.tgz";
+        sha512 = "FoBGZexpq9jJr6mDgV8wv711vreKyzRcw65TKeXzHh98+TNmPZfGYznpel3WceM869WsnSCyUuK46rPUG9+Rpg==";
       };
     };
     "object-visit-1.0.1" = {
@@ -31759,6 +33987,15 @@ let
         sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==";
       };
     };
+    "object.assign-4.1.1" = {
+      name = "object.assign";
+      packageName = "object.assign";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz";
+        sha512 = "VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==";
+      };
+    };
     "object.defaults-1.1.0" = {
       name = "object.defaults";
       packageName = "object.defaults";
@@ -31867,6 +34104,15 @@ let
         sha1 = "cb236106341536f0dac4815e06708221cad7fb5e";
       };
     };
+    "obz-1.0.2" = {
+      name = "obz";
+      packageName = "obz";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/obz/-/obz-1.0.2.tgz";
+        sha512 = "c+EtVwT2IpXz5we2mR40aPLJ1s0eNOsxYeaYbaHhmsY6kWKo3IRkpwpBU5ck0aHfqfKUUEiKabC6rzsrG/hSHw==";
+      };
+    };
     "octokit-pagination-methods-1.1.0" = {
       name = "octokit-pagination-methods";
       packageName = "octokit-pagination-methods";
@@ -31876,6 +34122,15 @@ let
         sha512 = "fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==";
       };
     };
+    "office-ui-fabric-react-7.139.0" = {
+      name = "office-ui-fabric-react";
+      packageName = "office-ui-fabric-react";
+      version = "7.139.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.139.0.tgz";
+        sha512 = "kqt3LUKUJfPie/32bmWxMcn3VdZoH5yiicdOj8B/huu1WPDDmhM+UlsUX2AmLeAEmqkH8XZxlgpmym96dhstaA==";
+      };
+    };
     "omggif-1.0.10" = {
       name = "omggif";
       packageName = "omggif";
@@ -31885,6 +34140,15 @@ let
         sha512 = "LMJTtvgc/nugXj0Vcrrs68Mn2D1r0zf630VNtqtpI1FEO7e+O9FP4gqs9AcnBaSEeoHIPm28u6qgPR0oyEpGSw==";
       };
     };
+    "omit.js-2.0.2" = {
+      name = "omit.js";
+      packageName = "omit.js";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/omit.js/-/omit.js-2.0.2.tgz";
+        sha512 = "hJmu9D+bNB40YpL9jYebQl4lsTW6yEHRTroJzNLqQJYHm7c+NQnJGfZmIWh8S3q3KoaxV1aLhV6B3+0N0/kyJg==";
+      };
+    };
     "on-change-network-0.0.2" = {
       name = "on-change-network";
       packageName = "on-change-network";
@@ -31993,6 +34257,15 @@ let
         sha1 = "f8cdf77884826fe4dff93e3a9cc37b1e4480742e";
       };
     };
+    "one-time-1.0.0" = {
+      name = "one-time";
+      packageName = "one-time";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz";
+        sha512 = "5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==";
+      };
+    };
     "onetime-1.1.0" = {
       name = "onetime";
       packageName = "onetime";
@@ -32011,13 +34284,22 @@ let
         sha1 = "067428230fd67443b2794b22bba528b6867962d4";
       };
     };
-    "onetime-5.1.0" = {
+    "onetime-5.1.2" = {
       name = "onetime";
       packageName = "onetime";
-      version = "5.1.0";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz";
+        sha512 = "kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==";
+      };
+    };
+    "ono-4.0.11" = {
+      name = "ono";
+      packageName = "ono";
+      version = "4.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz";
-        sha512 = "5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==";
+        url = "https://registry.npmjs.org/ono/-/ono-4.0.11.tgz";
+        sha512 = "jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g==";
       };
     };
     "opal-runtime-1.0.11" = {
@@ -32056,31 +34338,193 @@ let
         sha512 = "IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==";
       };
     };
-    "open-7.0.0" = {
+    "open-7.0.4" = {
       name = "open";
       packageName = "open";
-      version = "7.0.0";
+      version = "7.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/open/-/open-7.0.0.tgz";
-        sha512 = "K6EKzYqnwQzk+/dzJAQSBORub3xlBTxMz+ntpZpH/LyCa1o6KjXhuN+2npAaI9jaSmU3R1Q8NWf4KUWcyytGsQ==";
+        url = "https://registry.npmjs.org/open/-/open-7.0.4.tgz";
+        sha512 = "brSA+/yq+b08Hsr4c8fsEW2CRzk1BmfN3SAK/5VCHQ9bdoZJ4qa/+AfR0xHjlbbZUyPkUHs1b8x1RqdyZdkVqQ==";
       };
     };
-    "open-7.0.3" = {
+    "open-7.1.0" = {
       name = "open";
       packageName = "open";
-      version = "7.0.3";
+      version = "7.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/open/-/open-7.0.3.tgz";
-        sha512 = "sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA==";
+        url = "https://registry.npmjs.org/open/-/open-7.1.0.tgz";
+        sha512 = "lLPI5KgOwEYCDKXf4np7y1PBEkj7HYIyP2DY8mVDRnx0VIIu6bNrRB0R66TuO7Mack6EnTNLm4uvcl1UoklTpA==";
       };
     };
-    "open-7.0.4" = {
+    "open-7.2.0" = {
       name = "open";
       packageName = "open";
-      version = "7.0.4";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/open/-/open-7.0.4.tgz";
-        sha512 = "brSA+/yq+b08Hsr4c8fsEW2CRzk1BmfN3SAK/5VCHQ9bdoZJ4qa/+AfR0xHjlbbZUyPkUHs1b8x1RqdyZdkVqQ==";
+        url = "https://registry.npmjs.org/open/-/open-7.2.0.tgz";
+        sha512 = "4HeyhxCvBTI5uBePsAdi55C5fmqnWZ2e2MlmvWi5KW5tdH5rxoiv/aMtbeVxKZc3eWkT1GymMnLG8XC4Rq4TDQ==";
+      };
+    };
+    "open-7.2.1" = {
+      name = "open";
+      packageName = "open";
+      version = "7.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/open/-/open-7.2.1.tgz";
+        sha512 = "xbYCJib4spUdmcs0g/2mK1nKo/jO2T7INClWd/beL7PFkXRWgr8B23ssDHX/USPn2M2IjDR5UdpYs6I67SnTSA==";
+      };
+    };
+    "openapi-default-setter-2.1.0" = {
+      name = "openapi-default-setter";
+      packageName = "openapi-default-setter";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-default-setter/-/openapi-default-setter-2.1.0.tgz";
+        sha512 = "2ZNlX1B/J9Q/bsM/vZKh8alC0Pn04KtDGbMN30qLRu3GkaOJH3dDMKxqJzCpYj8BOAa8G3BEsQq6kqWzkEsM7A==";
+      };
+    };
+    "openapi-default-setter-7.0.1" = {
+      name = "openapi-default-setter";
+      packageName = "openapi-default-setter";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-default-setter/-/openapi-default-setter-7.0.1.tgz";
+        sha512 = "O9jhaZPEEJzI1HSG3Yw5rOIC0EpZ9PjRJgtksXKuSMyEoxUDnl7zQ27LuFRR1ykSMVhMt8vHMrQBQIwLW8S0yQ==";
+      };
+    };
+    "openapi-framework-0.26.0" = {
+      name = "openapi-framework";
+      packageName = "openapi-framework";
+      version = "0.26.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-framework/-/openapi-framework-0.26.0.tgz";
+        sha512 = "TbgwwOnlatb+xSYh/XALQjrVO3dirVNXuONR6CLQHVI/i1e+nq/ubW8I5i6rlGpnFLZNZKXZ0gF7RMvjLBk8ow==";
+      };
+    };
+    "openapi-framework-7.0.1" = {
+      name = "openapi-framework";
+      packageName = "openapi-framework";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-framework/-/openapi-framework-7.0.1.tgz";
+        sha512 = "ENQHf+tEqeGp6vykUYiw0uHvMEM3Oqi0SaBs8JlciEuo/fhhqrPmNzNa45xPFYWKYRJ5KpdFWcDlOIYf9gRkog==";
+      };
+    };
+    "openapi-jsonschema-parameters-1.2.0" = {
+      name = "openapi-jsonschema-parameters";
+      packageName = "openapi-jsonschema-parameters";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-jsonschema-parameters/-/openapi-jsonschema-parameters-1.2.0.tgz";
+        sha512 = "i2vBBFiRbOwYSvt5OG9hayJ7WUe/nl9Y151Ki1QtHb8M0zdYs2wkDhywVJnapq4/gPlrD1vmSVsYDrAjcBRJTQ==";
+      };
+    };
+    "openapi-jsonschema-parameters-7.0.1" = {
+      name = "openapi-jsonschema-parameters";
+      packageName = "openapi-jsonschema-parameters";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-jsonschema-parameters/-/openapi-jsonschema-parameters-7.0.1.tgz";
+        sha512 = "PuzKYEILBg4mu9uyoHn7wUGPrx3ds9YJr8t0yvOhAkNITWmXCjuh/HgfoOi+6MUu2Rapj+6tk6lYfeVPcgqi3g==";
+      };
+    };
+    "openapi-request-coercer-2.4.0" = {
+      name = "openapi-request-coercer";
+      packageName = "openapi-request-coercer";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-request-coercer/-/openapi-request-coercer-2.4.0.tgz";
+        sha512 = "UFRzW7C7Q31FUOFHEMYNeSuEmETH7KGlsMgMJanv0RxXkACyzKpKANPfM3oiMubQENPya3Ie9ZIq5HLvZEy/eQ==";
+      };
+    };
+    "openapi-request-coercer-7.0.1" = {
+      name = "openapi-request-coercer";
+      packageName = "openapi-request-coercer";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-request-coercer/-/openapi-request-coercer-7.0.1.tgz";
+        sha512 = "nKSRnLX7KQ3Iu1TTZ+1PdEoz0Ke47vH4EcZIM9EOkdqadCFj2pSG/6oMcyqipCs2X7oMFi9Df/UGDRnTdzmPog==";
+      };
+    };
+    "openapi-request-validator-4.2.0" = {
+      name = "openapi-request-validator";
+      packageName = "openapi-request-validator";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-request-validator/-/openapi-request-validator-4.2.0.tgz";
+        sha512 = "ukdX4T8heEI2GudiqDkk8hwfZhZP7zAz8zwngTyHtI0ZRUuU76+Zix8LVfrvSTZ2RpsPClKmYU2kDU4YZqdRHg==";
+      };
+    };
+    "openapi-request-validator-7.0.1" = {
+      name = "openapi-request-validator";
+      packageName = "openapi-request-validator";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-request-validator/-/openapi-request-validator-7.0.1.tgz";
+        sha512 = "qQBI3iiQ2JFokg3tdIOLo38ny7xRNzJZgcMwAS13WFSrUE9kcA6JAHI2cC5x3Q0EPpOtxWnzOaXwiZUJJ7MDOQ==";
+      };
+    };
+    "openapi-response-validator-4.0.0" = {
+      name = "openapi-response-validator";
+      packageName = "openapi-response-validator";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-response-validator/-/openapi-response-validator-4.0.0.tgz";
+        sha512 = "bIG8bpHT/vE+Dtz4aVyfQnweXtUdvxvJf5/D6Uu98UGf3T42Ez940ctwnlmDCQxTPqdu0yLFbMoiNf/A3jYCIg==";
+      };
+    };
+    "openapi-response-validator-7.0.1" = {
+      name = "openapi-response-validator";
+      packageName = "openapi-response-validator";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-response-validator/-/openapi-response-validator-7.0.1.tgz";
+        sha512 = "Fxr9YdQ6s7/SIvvM888iWnc1GUn/fFxTaMFqHkUv0/eNCYoBfOwAKj9aptaRfL+BJXlsVdXWCJd3GWkwn8sIJA==";
+      };
+    };
+    "openapi-sampler-1.0.0-beta.14" = {
+      name = "openapi-sampler";
+      packageName = "openapi-sampler";
+      version = "1.0.0-beta.14";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-sampler/-/openapi-sampler-1.0.0-beta.14.tgz";
+        sha512 = "NNmH9YAN5AaCE4w6MQXdCrmsOJJQTswHVSp075+h+iiG+OTonpZE8HzwocozovD2imx4lamkuxGLs4E4bO4Z+g==";
+      };
+    };
+    "openapi-schema-validator-3.0.3" = {
+      name = "openapi-schema-validator";
+      packageName = "openapi-schema-validator";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-schema-validator/-/openapi-schema-validator-3.0.3.tgz";
+        sha512 = "KKpeNEvAmpy6B2JCfyrM4yWjL6vggDCVbBoR8Yfkj0Jltc6PCW+dBbcg+1yrTCuDv80qBQJ6w0ejA71DlOFegA==";
+      };
+    };
+    "openapi-schema-validator-7.0.1" = {
+      name = "openapi-schema-validator";
+      packageName = "openapi-schema-validator";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-schema-validator/-/openapi-schema-validator-7.0.1.tgz";
+        sha512 = "P/dmF14xWbyaFVcoS1Fs2tUP4AhJO+eEnZV+jbApeo3569/Z2fiki6Mb6Rs7cfi0ewNnV4L4HiYH+HPZaKWnjQ==";
+      };
+    };
+    "openapi-security-handler-2.0.4" = {
+      name = "openapi-security-handler";
+      packageName = "openapi-security-handler";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-security-handler/-/openapi-security-handler-2.0.4.tgz";
+        sha512 = "blz/UftEqYQLAByuEVITePUI9hV5Rd91CEK8yrsKDUaf3zk6cmIMafJ2qvagHqjXRRtL7fOqvsSKIeFrai+HfQ==";
+      };
+    };
+    "openapi-security-handler-7.0.1" = {
+      name = "openapi-security-handler";
+      packageName = "openapi-security-handler";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-security-handler/-/openapi-security-handler-7.0.1.tgz";
+        sha512 = "fiRJE2Z5F0tY9QBssBX9g8Txtr0oj1BOU0nOZ6QHHXQdCYxebszGgcXD63uy0UJQwzwVOMs/AlCnKNVS/yMSEg==";
       };
     };
     "openapi-to-graphql-2.1.0" = {
@@ -32092,6 +34536,51 @@ let
         sha512 = "Su7/ckttN192x/XTJfaXlzpYK2m+6UEobGS2E0fXK5iLjIwreEZol2uIwjctkFz6oSuKvBgMGCjkBeXGuvPl2A==";
       };
     };
+    "openapi-types-1.3.4" = {
+      name = "openapi-types";
+      packageName = "openapi-types";
+      version = "1.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-types/-/openapi-types-1.3.4.tgz";
+        sha512 = "h8rADpW3k/wepLdERKF0VKMAPdoFYNQCLGPmc/f8sgQ2dxUy+7sY4WAX2XDUDjhKTjbJVbxxofLkzy7f1/tE4g==";
+      };
+    };
+    "openapi-types-1.3.5" = {
+      name = "openapi-types";
+      packageName = "openapi-types";
+      version = "1.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-types/-/openapi-types-1.3.5.tgz";
+        sha512 = "11oi4zYorsgvg5yBarZplAqbpev5HkuVNPlZaPTknPDzAynq+lnJdXAmruGWP0s+dNYZS7bjM+xrTpJw7184Fg==";
+      };
+    };
+    "openapi-types-7.0.0" = {
+      name = "openapi-types";
+      packageName = "openapi-types";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-types/-/openapi-types-7.0.0.tgz";
+        sha512 = "AikFLY/joHpJz+6OcyWUfXR0xjsh0jXR+oxcB1oosjH3YFZI3uPTJcmuf7koBFQyjd9GYmClmCSK8mGZ7thsOQ==";
+      };
+    };
+    "openapi-types-7.0.1" = {
+      name = "openapi-types";
+      packageName = "openapi-types";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/openapi-types/-/openapi-types-7.0.1.tgz";
+        sha512 = "6pi4/Fw+JIW1HHda2Ij7LRJ5QJ8f6YzaXnsRA6m44BJz8nLq/j5gVFzPBKJo+uOFhAeHqZC/3uzhTpYPga3Q/A==";
+      };
+    };
+    "opencollective-1.0.3" = {
+      name = "opencollective";
+      packageName = "opencollective";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/opencollective/-/opencollective-1.0.3.tgz";
+        sha1 = "aee6372bc28144583690c3ca8daecfc120dd0ef1";
+      };
+    };
     "opencollective-postinstall-2.0.3" = {
       name = "opencollective-postinstall";
       packageName = "opencollective-postinstall";
@@ -32101,22 +34590,22 @@ let
         sha512 = "8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==";
       };
     };
-    "opener-1.5.1" = {
+    "opener-1.5.2" = {
       name = "opener";
       packageName = "opener";
-      version = "1.5.1";
+      version = "1.5.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/opener/-/opener-1.5.1.tgz";
-        sha512 = "goYSy5c2UXE4Ra1xixabeVh1guIX/ZV/YokJksb6q2lubWu6UbvPQ20p542/sFIll1nl8JnCyK9oBaOcCWXwvA==";
+        url = "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz";
+        sha512 = "ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==";
       };
     };
-    "openid-2.0.6" = {
+    "openid-2.0.7" = {
       name = "openid";
       packageName = "openid";
-      version = "2.0.6";
+      version = "2.0.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/openid/-/openid-2.0.6.tgz";
-        sha1 = "707375e59ab9f73025899727679b20328171c9aa";
+        url = "https://registry.npmjs.org/openid/-/openid-2.0.7.tgz";
+        sha512 = "xH6qaz/hS55rEX8xURz4HRUO96cpj821WY6UEG9rgcusZ8Jsq54jGWP1EMCjGvgngonw8vgSljM1i2OESv16Gw==";
       };
     };
     "opentracing-0.14.4" = {
@@ -32128,6 +34617,15 @@ let
         sha512 = "nNnZDkUNExBwEpb7LZaeMeQgvrlO8l4bgY/LvGNZCR0xG/dGWqHqjKrAmR5GUoYo0FIz38kxasvA1aevxWs2CA==";
       };
     };
+    "opn-4.0.2" = {
+      name = "opn";
+      packageName = "opn";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/opn/-/opn-4.0.2.tgz";
+        sha1 = "7abc22e644dff63b0a96d5ab7f2790c0f01abc95";
+      };
+    };
     "opn-5.5.0" = {
       name = "opn";
       packageName = "opn";
@@ -32299,22 +34797,31 @@ let
         sha512 = "77iGeVU1cIdRhgFzCK8aw1fbtT1B/iZAvWjS+l/o1x0RShMgxHUZaD2yDpWsNCPwXg9z1ZA78Kbdvr8kBmG/Ww==";
       };
     };
-    "orchestrator-0.3.8" = {
-      name = "orchestrator";
-      packageName = "orchestrator";
-      version = "0.3.8";
+    "ora-4.1.1" = {
+      name = "ora";
+      packageName = "ora";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/orchestrator/-/orchestrator-0.3.8.tgz";
-        sha1 = "14e7e9e2764f7315fbac184e506c7aa6df94ad7e";
+        url = "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz";
+        sha512 = "sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==";
       };
     };
-    "ordered-read-streams-0.1.0" = {
-      name = "ordered-read-streams";
-      packageName = "ordered-read-streams";
-      version = "0.1.0";
+    "ora-5.0.0" = {
+      name = "ora";
+      packageName = "ora";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ora/-/ora-5.0.0.tgz";
+        sha512 = "s26qdWqke2kjN/wC4dy+IQPBIMWBJlSU/0JZhk30ZDBLelW25rv66yutUWARMigpGPzcXHb+Nac5pNhN/WsARw==";
+      };
+    };
+    "ora-5.1.0" = {
+      name = "ora";
+      packageName = "ora";
+      version = "5.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-0.1.0.tgz";
-        sha1 = "fd565a9af8eb4473ba69b6ed8a34352cb552f126";
+        url = "https://registry.npmjs.org/ora/-/ora-5.1.0.tgz";
+        sha512 = "9tXIMPvjZ7hPTbk8DFq1f7Kow/HU/pQYB60JbNq+QnGwcyhWVZaQ4hM9zQDEsPxw/muLpgiHSaumUZxCAmod/w==";
       };
     };
     "ordered-read-streams-1.0.1" = {
@@ -32371,15 +34878,6 @@ let
         sha1 = "20f9f17ae29ed345e8bde583b13d2009803c14d9";
       };
     };
-    "os-locale-2.1.0" = {
-      name = "os-locale";
-      packageName = "os-locale";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz";
-        sha512 = "3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==";
-      };
-    };
     "os-locale-3.1.0" = {
       name = "os-locale";
       packageName = "os-locale";
@@ -32443,13 +34941,13 @@ let
         sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==";
       };
     };
-    "otfcc-ttcize-0.8.0" = {
+    "otfcc-ttcize-0.10.2" = {
       name = "otfcc-ttcize";
       packageName = "otfcc-ttcize";
-      version = "0.8.0";
+      version = "0.10.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/otfcc-ttcize/-/otfcc-ttcize-0.8.0.tgz";
-        sha512 = "0RFgy9TDsgTF/1UJ8bSQ4heTYRatDz3HOXXh8d3WyXReqeOU+edgkbG4ERMFPdzFnA+SgqKTnPRg+2pduZsmSQ==";
+        url = "https://registry.npmjs.org/otfcc-ttcize/-/otfcc-ttcize-0.10.2.tgz";
+        sha512 = "CLMMw6r97AvmK5nOIGpnG4xHVU40gyTzpvn55RPyxZQ3E/UMXG4HnykyTYHlVL7Y46ISr1isPiSN0CvjYpZtgg==";
       };
     };
     "p-all-2.1.0" = {
@@ -32605,13 +35103,13 @@ let
         sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
       };
     };
-    "p-limit-3.0.1" = {
+    "p-limit-3.0.2" = {
       name = "p-limit";
       packageName = "p-limit";
-      version = "3.0.1";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-limit/-/p-limit-3.0.1.tgz";
-        sha512 = "mw/p92EyOzl2MhauKodw54Rx5ZK4624rNfgNaBguFZkHzyUG9WsDzFF5/yQVEJinbJDdP4jEfMN+uBquiGnaLg==";
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz";
+        sha512 = "iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==";
       };
     };
     "p-locate-2.0.0" = {
@@ -32641,6 +35139,15 @@ let
         sha512 = "R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==";
       };
     };
+    "p-locate-5.0.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz";
+        sha512 = "LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==";
+      };
+    };
     "p-map-2.1.0" = {
       name = "p-map";
       packageName = "p-map";
@@ -32695,13 +35202,13 @@ let
         sha512 = "3cRXXn3/O0o3+eVmUroJPSj/esxoEFIm0ZOno/T+NzG/VZgPOqQ8WKmlNqubSEpZmCIngEy34unkHGg83ZIBmg==";
       };
     };
-    "p-queue-6.4.0" = {
+    "p-queue-6.6.1" = {
       name = "p-queue";
       packageName = "p-queue";
-      version = "6.4.0";
+      version = "6.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-queue/-/p-queue-6.4.0.tgz";
-        sha512 = "X7ddxxiQ+bLR/CUt3/BVKrGcJDNxBr0pEEFKHHB6vTPWNUhgDv36GpIH18RmGM3YGPpBT+JWGjDDqsVGuF0ERw==";
+        url = "https://registry.npmjs.org/p-queue/-/p-queue-6.6.1.tgz";
+        sha512 = "miQiSxLYPYBxGkrldecZC18OTLjdUqnlRebGzPRiVxB8mco7usCmm7hFuxiTvp93K18JnLtE4KMMycjAu/cQQg==";
       };
     };
     "p-reduce-1.0.0" = {
@@ -32713,6 +35220,15 @@ let
         sha1 = "18c2b0dd936a4690a529f8231f58a0fdb6a47dfa";
       };
     };
+    "p-reduce-2.1.0" = {
+      name = "p-reduce";
+      packageName = "p-reduce";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-reduce/-/p-reduce-2.1.0.tgz";
+        sha512 = "2USApvnsutq8uoxZBGbbWM0JIYLiEMJ9RlaN7fAzVNb9OZN0SHjjTTfIcb667XynS5Y1VhwDJVDa72TnPzAYWw==";
+      };
+    };
     "p-retry-3.0.1" = {
       name = "p-retry";
       packageName = "p-retry";
@@ -32776,6 +35292,15 @@ let
         sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
       };
     };
+    "p-wait-for-3.1.0" = {
+      name = "p-wait-for";
+      packageName = "p-wait-for";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-wait-for/-/p-wait-for-3.1.0.tgz";
+        sha512 = "0Uy19uhxbssHelu9ynDMcON6BmMk6pH8551CvxROhiz3Vx+yC4RqxjyIDk2V4ll0g9177RKT++PK4zcV58uJ7A==";
+      };
+    };
     "p-waterfall-1.0.0" = {
       name = "p-waterfall";
       packageName = "p-waterfall";
@@ -32839,13 +35364,22 @@ let
         sha1 = "5860587a944873a6b7e6d26e8e51ffb22315bf17";
       };
     };
-    "packet-stream-2.0.4" = {
+    "packet-reader-1.0.0" = {
+      name = "packet-reader";
+      packageName = "packet-reader";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz";
+        sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==";
+      };
+    };
+    "packet-stream-2.0.5" = {
       name = "packet-stream";
       packageName = "packet-stream";
-      version = "2.0.4";
+      version = "2.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/packet-stream/-/packet-stream-2.0.4.tgz";
-        sha512 = "7+oxHdMMs6VhLvvbrDUc8QNuelE9fPKLDdToXBIKLPKOlnoBeMim+/35edp+AnFTLzk3xcogVvQ/jrZyyGsEiw==";
+        url = "https://registry.npmjs.org/packet-stream/-/packet-stream-2.0.5.tgz";
+        sha512 = "+4S+qBUdqD57ka5MDd6nAYGBPril5eyLpbga2y0kPyYhrKvjb8CYTP9r40WLbSxgT/qEGmvgWOrvQe+FYtCI7w==";
       };
     };
     "packet-stream-codec-1.1.2" = {
@@ -32857,13 +35391,13 @@ let
         sha1 = "79b302fc144cdfbb4ab6feba7040e6a5d99c79c7";
       };
     };
-    "pacote-11.1.10" = {
+    "pacote-11.1.11" = {
       name = "pacote";
       packageName = "pacote";
-      version = "11.1.10";
+      version = "11.1.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pacote/-/pacote-11.1.10.tgz";
-        sha512 = "xJSSSxcHLo1CZJESvIZ2hbC5/5WP2oDHeUeTV2FvVDPOZG7+ixbxnV0n3TkdaUqlbC0RwnwMQ3wkJ/YywYM0Cg==";
+        url = "https://registry.npmjs.org/pacote/-/pacote-11.1.11.tgz";
+        sha512 = "r6PHtCEhkaGv+QPx1JdE/xRdkSkZUG7dE2oloNk/CGTPGNOtaJyYqZPFeN6d6UcUrTPRvZXFo3IBzJIBopPuSA==";
       };
     };
     "pacote-9.5.12" = {
@@ -32947,6 +35481,15 @@ let
         sha1 = "df94fd8cf6531ecf75e6bef9a0858fbc72be2247";
       };
     };
+    "param-case-3.0.3" = {
+      name = "param-case";
+      packageName = "param-case";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz";
+        sha512 = "VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==";
+      };
+    };
     "paredit.js-0.3.6" = {
       name = "paredit.js";
       packageName = "paredit.js";
@@ -32974,13 +35517,13 @@ let
         sha1 = "fedd4d2bf193a77745fe71e371d73c3307d9c751";
       };
     };
-    "parse-asn1-5.1.5" = {
+    "parse-asn1-5.1.6" = {
       name = "parse-asn1";
       packageName = "parse-asn1";
-      version = "5.1.5";
+      version = "5.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz";
-        sha512 = "jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==";
+        url = "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz";
+        sha512 = "RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==";
       };
     };
     "parse-english-4.1.3" = {
@@ -33001,6 +35544,15 @@ let
         sha512 = "NzfpbxW/NPrzZ/yYSoQxyqUZMZXIdCfE0OIN4ESsnptHJECoUk3FZktxNuzQf4tjt5UEopnxpYJbvYuxIFDdsg==";
       };
     };
+    "parse-entities-2.0.0" = {
+      name = "parse-entities";
+      packageName = "parse-entities";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-entities/-/parse-entities-2.0.0.tgz";
+        sha512 = "kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ==";
+      };
+    };
     "parse-filepath-1.0.2" = {
       name = "parse-filepath";
       packageName = "parse-filepath";
@@ -33028,6 +35580,15 @@ let
         sha1 = "9e7d8bb252a6cb6ba42595060b7bf6df3dbc1f50";
       };
     };
+    "parse-github-url-1.0.2" = {
+      name = "parse-github-url";
+      packageName = "parse-github-url";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-github-url/-/parse-github-url-1.0.2.tgz";
+        sha512 = "kgBf6avCbO3Cn6+RnzRGLkUsv4ZVqv/VfAYkRsyBcgkshNvVBkRn1FEZcW0Jb+npXQWm2vHPnnOqFteZxRRGNw==";
+      };
+    };
     "parse-gitignore-1.0.1" = {
       name = "parse-gitignore";
       packageName = "parse-gitignore";
@@ -33091,13 +35652,22 @@ let
         sha1 = "be35f5425be1f7f6c747184f98a788cb99477ee0";
       };
     };
-    "parse-json-5.0.0" = {
+    "parse-json-5.0.1" = {
       name = "parse-json";
       packageName = "parse-json";
-      version = "5.0.0";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz";
-        sha512 = "OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==";
+        url = "https://registry.npmjs.org/parse-json/-/parse-json-5.0.1.tgz";
+        sha512 = "ztoZ4/DYeXQq4E21v169sC8qWINGpcosGv9XhTDvg9/hWvx/zrFkc9BiWxR58OJLHGk28j5BL0SDLeV2WmFZlQ==";
+      };
+    };
+    "parse-json-5.1.0" = {
+      name = "parse-json";
+      packageName = "parse-json";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz";
+        sha512 = "+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==";
       };
     };
     "parse-latin-4.2.1" = {
@@ -33109,6 +35679,24 @@ let
         sha512 = "7T9g6mIsFFpLlo0Zzb2jLWdCt+H9Qtf/hRmMYFi/Mq6Ovi+YKo+AyDFX3OhFfu0vXX5Nid9FKJGKSSzNcTkWiA==";
       };
     };
+    "parse-link-header-1.0.1" = {
+      name = "parse-link-header";
+      packageName = "parse-link-header";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-link-header/-/parse-link-header-1.0.1.tgz";
+        sha1 = "bedfe0d2118aeb84be75e7b025419ec8a61140a7";
+      };
+    };
+    "parse-ms-2.1.0" = {
+      name = "parse-ms";
+      packageName = "parse-ms";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz";
+        sha512 = "kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==";
+      };
+    };
     "parse-node-version-1.0.1" = {
       name = "parse-node-version";
       packageName = "parse-node-version";
@@ -33136,13 +35724,13 @@ let
         sha1 = "6d5b934a456993b23d37f40a382d6f1666a8e5c6";
       };
     };
-    "parse-path-4.0.1" = {
+    "parse-path-4.0.2" = {
       name = "parse-path";
       packageName = "parse-path";
-      version = "4.0.1";
+      version = "4.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parse-path/-/parse-path-4.0.1.tgz";
-        sha512 = "d7yhga0Oc+PwNXDvQ0Jv1BuWkLVPXcAoQ/WREgd6vNNoKYaW52KI+RdOFjI63wjkmps9yUE8VS4veP+AgpQ/hA==";
+        url = "https://registry.npmjs.org/parse-path/-/parse-path-4.0.2.tgz";
+        sha512 = "HSqVz6iuXSiL8C1ku5Gl1Z5cwDd9Wo0q8CoffdAghP6bz8pJa1tcMC+m4N+z6VAS8QdksnIGq1TB6EgR4vPR6w==";
       };
     };
     "parse-semver-1.1.1" = {
@@ -33190,13 +35778,13 @@ let
         sha1 = "32d4b6afde631420e5f415919a222b774b575707";
       };
     };
-    "parse-url-5.0.1" = {
+    "parse-url-5.0.2" = {
       name = "parse-url";
       packageName = "parse-url";
-      version = "5.0.1";
+      version = "5.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/parse-url/-/parse-url-5.0.1.tgz";
-        sha512 = "flNUPP27r3vJpROi0/R3/2efgKkyXqnXwyP1KQ2U0SfFRgdizOdWfvrrvJg1LuOoxs7GQhmxJlq23IpQ/BkByg==";
+        url = "https://registry.npmjs.org/parse-url/-/parse-url-5.0.2.tgz";
+        sha512 = "Czj+GIit4cdWtxo3ISZCvLiUjErSo0iI3wJ+q9Oi3QuMYTI6OZu+7cewMWZ+C1YAnKhYTk6/TLuhIgCypLthPA==";
       };
     };
     "parse5-1.5.1" = {
@@ -33235,6 +35823,15 @@ let
         sha512 = "fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ==";
       };
     };
+    "parse5-6.0.1" = {
+      name = "parse5";
+      packageName = "parse5";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz";
+        sha512 = "Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==";
+      };
+    };
     "parsejson-0.0.1" = {
       name = "parsejson";
       packageName = "parsejson";
@@ -33298,15 +35895,6 @@ let
         sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
       };
     };
-    "pascal-case-2.0.1" = {
-      name = "pascal-case";
-      packageName = "pascal-case";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/pascal-case/-/pascal-case-2.0.1.tgz";
-        sha1 = "2d578d3455f660da65eca18ef95b4e0de912761e";
-      };
-    };
     "pascal-case-3.1.1" = {
       name = "pascal-case";
       packageName = "pascal-case";
@@ -33325,6 +35913,15 @@ let
         sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
       };
     };
+    "passerror-1.1.1" = {
+      name = "passerror";
+      packageName = "passerror";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/passerror/-/passerror-1.1.1.tgz";
+        sha1 = "a25b88dbdd910a29603aec7dcb96e9a7a97687b4";
+      };
+    };
     "passive-voice-0.1.0" = {
       name = "passive-voice";
       packageName = "passive-voice";
@@ -33424,6 +36021,15 @@ let
         sha512 = "bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA==";
       };
     };
+    "patch-console-1.0.0" = {
+      name = "patch-console";
+      packageName = "patch-console";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/patch-console/-/patch-console-1.0.0.tgz";
+        sha512 = "nxl9nrnLQmh64iTzMfyylSlRozL7kAXIaxw1fVcLYdyhNkJCRUzirRZTikXGJsg+hc4fqpneTK6iU2H1Q8THSA==";
+      };
+    };
     "patch-package-6.2.2" = {
       name = "patch-package";
       packageName = "patch-package";
@@ -33451,13 +36057,13 @@ let
         sha512 = "BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==";
       };
     };
-    "path-case-2.1.1" = {
+    "path-case-3.0.3" = {
       name = "path-case";
       packageName = "path-case";
-      version = "2.1.1";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/path-case/-/path-case-2.1.1.tgz";
-        sha1 = "94b8037c372d3fe2906e465bb45e25d226e8eea5";
+        url = "https://registry.npmjs.org/path-case/-/path-case-3.0.3.tgz";
+        sha512 = "UMFU6UETFpCNWbIWNczshPrnK/7JAXBP2NYw80ojElbQ2+JYxdqWDBkvvqM93u4u6oLmuJ/tPOf2tM8KtXv4eg==";
       };
     };
     "path-dirname-1.0.2" = {
@@ -33586,15 +36192,6 @@ let
         sha1 = "473e6a3a292a9d13fbae3edccee72d3baba8c619";
       };
     };
-    "path-to-regexp-0.1.3" = {
-      name = "path-to-regexp";
-      packageName = "path-to-regexp";
-      version = "0.1.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.3.tgz";
-        sha1 = "21b9ab82274279de25b156ea08fd12ca51b8aecb";
-      };
-    };
     "path-to-regexp-0.1.7" = {
       name = "path-to-regexp";
       packageName = "path-to-regexp";
@@ -33631,15 +36228,6 @@ let
         sha1 = "59c44f7ee491da704da415da5a4070ba4f8fe441";
       };
     };
-    "path-type-2.0.0" = {
-      name = "path-type";
-      packageName = "path-type";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz";
-        sha1 = "f012ccb8415b7096fc2daa1054c3d72389594c73";
-      };
-    };
     "path-type-3.0.0" = {
       name = "path-type";
       packageName = "path-type";
@@ -33775,6 +36363,15 @@ let
         sha1 = "7a57eb550a6783f9115331fcf4663d5c8e007a50";
       };
     };
+    "perfect-scrollbar-1.5.0" = {
+      name = "perfect-scrollbar";
+      packageName = "perfect-scrollbar";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.0.tgz";
+        sha512 = "NrNHJn5mUGupSiheBTy6x+6SXCFbLlm8fVZh9moIzw/LgqElN5q4ncR4pbCBCYuCJ8Kcl9mYM0NgDxvW+b4LxA==";
+      };
+    };
     "performance-now-0.2.0" = {
       name = "performance-now";
       packageName = "performance-now";
@@ -33793,6 +36390,69 @@ let
         sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
       };
     };
+    "pg-8.3.0" = {
+      name = "pg";
+      packageName = "pg";
+      version = "8.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg/-/pg-8.3.0.tgz";
+        sha512 = "jQPKWHWxbI09s/Z9aUvoTbvGgoj98AU7FDCcQ7kdejupn/TcNpx56v2gaOTzXkzOajmOEJEdi9eTh9cA2RVAjQ==";
+      };
+    };
+    "pg-connection-string-2.3.0" = {
+      name = "pg-connection-string";
+      packageName = "pg-connection-string";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.3.0.tgz";
+        sha512 = "ukMTJXLI7/hZIwTW7hGMZJ0Lj0S2XQBCJ4Shv4y1zgQ/vqVea+FLhzywvPj0ujSuofu+yA4MYHGZPTsgjBgJ+w==";
+      };
+    };
+    "pg-int8-1.0.1" = {
+      name = "pg-int8";
+      packageName = "pg-int8";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz";
+        sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==";
+      };
+    };
+    "pg-pool-3.2.1" = {
+      name = "pg-pool";
+      packageName = "pg-pool";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.1.tgz";
+        sha512 = "BQDPWUeKenVrMMDN9opfns/kZo4lxmSWhIqo+cSAF7+lfi9ZclQbr9vfnlNaPr8wYF3UYjm5X0yPAhbcgqNOdA==";
+      };
+    };
+    "pg-protocol-1.2.5" = {
+      name = "pg-protocol";
+      packageName = "pg-protocol";
+      version = "1.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.2.5.tgz";
+        sha512 = "1uYCckkuTfzz/FCefvavRywkowa6M5FohNMF5OjKrqo9PSR8gYc8poVmwwYQaBxhmQdBjhtP514eXy9/Us2xKg==";
+      };
+    };
+    "pg-types-2.2.0" = {
+      name = "pg-types";
+      packageName = "pg-types";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz";
+        sha512 = "qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==";
+      };
+    };
+    "pgpass-1.0.2" = {
+      name = "pgpass";
+      packageName = "pgpass";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz";
+        sha1 = "2a7bb41b6065b67907e91da1b07c1847c877b306";
+      };
+    };
     "phantomjs-prebuilt-2.1.16" = {
       name = "phantomjs-prebuilt";
       packageName = "phantomjs-prebuilt";
@@ -33919,22 +36579,22 @@ let
         sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
       };
     };
-    "pino-6.0.0" = {
+    "pino-6.6.1" = {
       name = "pino";
       packageName = "pino";
-      version = "6.0.0";
+      version = "6.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pino/-/pino-6.0.0.tgz";
-        sha512 = "3RfX2L76o7v230FP1fZ3Fo/WX7Su+P1Ld+pvBm2j+MyUjtA/KqDYxMkzBqzcX3R00zbC7Gf/HqIzyuu3tgvi9Q==";
+        url = "https://registry.npmjs.org/pino/-/pino-6.6.1.tgz";
+        sha512 = "DOgm7rn6ctBkBYemHXSLj7+j3o3U1q1FWBXbHcprur8mA93QcJSycEkEqhqKiFB9Mx/3Qld2FGr6+9yfQza0kA==";
       };
     };
-    "pino-std-serializers-2.4.2" = {
+    "pino-std-serializers-2.5.0" = {
       name = "pino-std-serializers";
       packageName = "pino-std-serializers";
-      version = "2.4.2";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-2.4.2.tgz";
-        sha512 = "WaL504dO8eGs+vrK+j4BuQQq6GLKeCCcHaMB2ItygzVURcL1CycwNEUHTD/lHFHs/NL5qAz2UKrjYWXKSf4aMQ==";
+        url = "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-2.5.0.tgz";
+        sha512 = "wXqbqSrIhE58TdrxxlfLwU9eDhrzppQDvGhBEr1gYbzzM4KKo3Y63gSjiDXRKLVS2UOXdPNR2v+KnQgNrs+xUg==";
       };
     };
     "pipe-functions-1.3.0" = {
@@ -34180,22 +36840,31 @@ let
         sha1 = "1cc7c212303acabe74263ec3ac78009580242d93";
       };
     };
-    "pngjs-2.3.1" = {
+    "pngjs-5.0.0" = {
       name = "pngjs";
       packageName = "pngjs";
-      version = "2.3.1";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pngjs/-/pngjs-2.3.1.tgz";
-        sha1 = "11d1e12b9cb64d63e30c143a330f4c1f567da85f";
+        url = "https://registry.npmjs.org/pngjs/-/pngjs-5.0.0.tgz";
+        sha512 = "40QW5YalBNfQo5yRYmiw7Yz6TKKVr3h6970B2YE+3fQpsWcrbj1PzJgxeJ19DRQjhMbKPIuMY8rFaXc8moolVw==";
       };
     };
-    "portfinder-1.0.26" = {
+    "polished-3.6.7" = {
+      name = "polished";
+      packageName = "polished";
+      version = "3.6.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/polished/-/polished-3.6.7.tgz";
+        sha512 = "b4OViUOihwV0icb9PHmWbR+vPqaSzSAEbgLskvb7ANPATVXGiYv/TQFHQo65S53WU9i5EQ1I03YDOJW7K0bmYg==";
+      };
+    };
+    "portfinder-1.0.28" = {
       name = "portfinder";
       packageName = "portfinder";
-      version = "1.0.26";
+      version = "1.0.28";
       src = fetchurl {
-        url = "https://registry.npmjs.org/portfinder/-/portfinder-1.0.26.tgz";
-        sha512 = "Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ==";
+        url = "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz";
+        sha512 = "Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==";
       };
     };
     "posix-character-classes-0.1.1" = {
@@ -34244,31 +36913,31 @@ let
         sha512 = "soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==";
       };
     };
-    "postcss-7.0.27" = {
+    "postcss-7.0.32" = {
       name = "postcss";
       packageName = "postcss";
-      version = "7.0.27";
+      version = "7.0.32";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz";
-        sha512 = "WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz";
+        sha512 = "03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==";
       };
     };
-    "postcss-7.0.32" = {
+    "postcss-7.0.34" = {
       name = "postcss";
       packageName = "postcss";
-      version = "7.0.32";
+      version = "7.0.34";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz";
-        sha512 = "03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==";
+        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.34.tgz";
+        sha512 = "H/7V2VeNScX9KE83GDrDZNiGT1m2H+UTnlinIzhjlLX9hfMUn1mHNnGeX81a1c8JSBdBvqk7c2ZOG6ZPn5itGw==";
       };
     };
-    "postcss-calc-7.0.2" = {
+    "postcss-calc-7.0.4" = {
       name = "postcss-calc";
       packageName = "postcss-calc";
-      version = "7.0.2";
+      version = "7.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz";
-        sha512 = "rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==";
+        url = "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.4.tgz";
+        sha512 = "0I79VRAd1UTkaHzY9w83P39YGO/M3bG7/tNLrHGEunBolfoGM0hSjrGvjoeaj0JE/zIw5GsI2KZ0UwDJqv5hjw==";
       };
     };
     "postcss-colormin-4.0.3" = {
@@ -34370,13 +37039,13 @@ let
         sha512 = "7TvleQWNM2QLcHqvudt3VYjULVB49uiW6XzEUFmvwHzvsOEF5MwBrIXZDJQvJNFGjJQTzSzZnDoCJ8h/ljyGXA==";
       };
     };
-    "postcss-load-config-2.1.0" = {
+    "postcss-load-config-2.1.1" = {
       name = "postcss-load-config";
       packageName = "postcss-load-config";
-      version = "2.1.0";
+      version = "2.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz";
-        sha512 = "4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==";
+        url = "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.1.tgz";
+        sha512 = "D2ENobdoZsW0+BHy4x1CAkXtbXtYWYRIxL/JbtRBqrRGOPtJ2zoga/bEZWhV/ShWB5saVxJMzbMdSyA/vv4tXw==";
       };
     };
     "postcss-markdown-0.36.0" = {
@@ -34451,6 +37120,15 @@ let
         sha512 = "D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==";
       };
     };
+    "postcss-modules-3.2.2" = {
+      name = "postcss-modules";
+      packageName = "postcss-modules";
+      version = "3.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules/-/postcss-modules-3.2.2.tgz";
+        sha512 = "JQ8IAqHELxC0N6tyCg2UF40pACY5oiL6UpiqqcIFRWqgDYO8B0jnxzoQ0EOpPrWXvcpu6BSbQU/3vSiq7w8Nhw==";
+      };
+    };
     "postcss-modules-extract-imports-1.1.0" = {
       name = "postcss-modules-extract-imports";
       packageName = "postcss-modules-extract-imports";
@@ -34460,6 +37138,15 @@ let
         sha1 = "b614c9720be6816eaee35fb3a5faa1dba6a05ddb";
       };
     };
+    "postcss-modules-extract-imports-2.0.0" = {
+      name = "postcss-modules-extract-imports";
+      packageName = "postcss-modules-extract-imports";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz";
+        sha512 = "LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==";
+      };
+    };
     "postcss-modules-local-by-default-1.2.0" = {
       name = "postcss-modules-local-by-default";
       packageName = "postcss-modules-local-by-default";
@@ -34469,6 +37156,15 @@ let
         sha1 = "f7d80c398c5a393fa7964466bd19500a7d61c069";
       };
     };
+    "postcss-modules-local-by-default-3.0.3" = {
+      name = "postcss-modules-local-by-default";
+      packageName = "postcss-modules-local-by-default";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz";
+        sha512 = "e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw==";
+      };
+    };
     "postcss-modules-scope-1.1.0" = {
       name = "postcss-modules-scope";
       packageName = "postcss-modules-scope";
@@ -34478,6 +37174,15 @@ let
         sha1 = "d6ea64994c79f97b62a72b426fbe6056a194bb90";
       };
     };
+    "postcss-modules-scope-2.2.0" = {
+      name = "postcss-modules-scope";
+      packageName = "postcss-modules-scope";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz";
+        sha512 = "YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==";
+      };
+    };
     "postcss-modules-values-1.3.0" = {
       name = "postcss-modules-values";
       packageName = "postcss-modules-values";
@@ -34487,6 +37192,15 @@ let
         sha1 = "ecffa9d7e192518389f42ad0e83f72aec456ea20";
       };
     };
+    "postcss-modules-values-3.0.0" = {
+      name = "postcss-modules-values";
+      packageName = "postcss-modules-values";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz";
+        sha512 = "1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==";
+      };
+    };
     "postcss-normalize-charset-4.0.1" = {
       name = "postcss-normalize-charset";
       packageName = "postcss-normalize-charset";
@@ -34694,6 +37408,15 @@ let
         sha512 = "36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==";
       };
     };
+    "postcss-selector-parser-6.0.3" = {
+      name = "postcss-selector-parser";
+      packageName = "postcss-selector-parser";
+      version = "6.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.3.tgz";
+        sha512 = "0ClFaY4X1ra21LRqbW6y3rUbWcxnSVkDFG57R7Nxus9J9myPFlv+jYDMohzpkBx0RrjjiqjtycpchQ+PLGmZ9w==";
+      };
+    };
     "postcss-svgo-4.0.2" = {
       name = "postcss-svgo";
       packageName = "postcss-svgo";
@@ -34748,6 +37471,42 @@ let
         sha512 = "3M3p+2gMp0AH3da530TlX8kiO1nxdTnc3C6vr8dMxRLIlh8UYkz0/wcwptSXjhtx2Fr0TySI7a+BHDQ8NL7LaQ==";
       };
     };
+    "postgres-array-2.0.0" = {
+      name = "postgres-array";
+      packageName = "postgres-array";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz";
+        sha512 = "VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==";
+      };
+    };
+    "postgres-bytea-1.0.0" = {
+      name = "postgres-bytea";
+      packageName = "postgres-bytea";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz";
+        sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35";
+      };
+    };
+    "postgres-date-1.0.7" = {
+      name = "postgres-date";
+      packageName = "postgres-date";
+      version = "1.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz";
+        sha512 = "suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q==";
+      };
+    };
+    "postgres-interval-1.2.0" = {
+      name = "postgres-interval";
+      packageName = "postgres-interval";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz";
+        sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==";
+      };
+    };
     "posthtml-0.11.6" = {
       name = "posthtml";
       packageName = "posthtml";
@@ -34757,13 +37516,13 @@ let
         sha512 = "C2hrAPzmRdpuL3iH0TDdQ6XCc9M7Dcc3zEW5BLerY65G4tWWszwv6nG/ksi6ul5i2mx22ubdljgktXCtNkydkw==";
       };
     };
-    "posthtml-0.12.3" = {
+    "posthtml-0.13.3" = {
       name = "posthtml";
       packageName = "posthtml";
-      version = "0.12.3";
+      version = "0.13.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/posthtml/-/posthtml-0.12.3.tgz";
-        sha512 = "Fbpi95+JJyR0tqU7pUy1zTSQFjAsluuwB9pJ1h0jtnGk7n/O2TBtP5nDl9rV0JVACjQ1Lm5wSp4ppChr8u3MhA==";
+        url = "https://registry.npmjs.org/posthtml/-/posthtml-0.13.3.tgz";
+        sha512 = "5NL2bBc4ihAyoYnY0EAQrFQbJNE1UdvgC1wjYts0hph7jYeU2fa5ki3/9U45ce9V6M1vLMEgUX2NXe/bYL+bCQ==";
       };
     };
     "posthtml-parser-0.4.2" = {
@@ -34775,31 +37534,40 @@ let
         sha512 = "BUIorsYJTvS9UhXxPTzupIztOMVNPa/HtAm9KHni9z6qEfiJ1bpOBL5DfUOL9XAc3XkLIEzBzpph+Zbm4AdRAg==";
       };
     };
-    "posthtml-render-1.2.2" = {
+    "posthtml-parser-0.5.0" = {
+      name = "posthtml-parser";
+      packageName = "posthtml-parser";
+      version = "0.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.5.0.tgz";
+        sha512 = "BsZFAqOeX9lkJJPKG2JmGgtm6t++WibU7FeS40FNNGZ1KS2szRSRQ8Wr2JLvikDgAecrQ/9V4sjugTAin2+KVw==";
+      };
+    };
+    "posthtml-render-1.2.3" = {
       name = "posthtml-render";
       packageName = "posthtml-render";
-      version = "1.2.2";
+      version = "1.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.2.2.tgz";
-        sha512 = "MbIXTWwAfJ9qET6Zl29UNwJcDJEEz9Zkr5oDhiujitJa7YBJwEpbkX2cmuklCDxubTMoRWpid3q8DrSyGnUUzQ==";
+        url = "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.2.3.tgz";
+        sha512 = "rGGayND//VwTlsYKNqdILsA7U/XP0WJa6SMcdAEoqc2WRM5QExplGg/h9qbTuHz7mc2PvaXU+6iNxItvr5aHMg==";
       };
     };
-    "prebuild-install-5.3.4" = {
+    "prebuild-install-5.3.3" = {
       name = "prebuild-install";
       packageName = "prebuild-install";
-      version = "5.3.4";
+      version = "5.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.4.tgz";
-        sha512 = "AkKN+pf4fSEihjapLEEj8n85YIw/tN6BQqkhzbDc0RvEZGdkpJBGMUYx66AAMcPG2KzmPQS7Cm16an4HVBRRMA==";
+        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.3.tgz";
+        sha512 = "GV+nsUXuPW2p8Zy7SarF/2W/oiK8bFQgJcncoJ0d7kRpekEA0ftChjfEaF9/Y+QJEc/wFR7RAEa8lYByuUIe2g==";
       };
     };
-    "precinct-6.2.0" = {
+    "precinct-6.3.1" = {
       name = "precinct";
       packageName = "precinct";
-      version = "6.2.0";
+      version = "6.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/precinct/-/precinct-6.2.0.tgz";
-        sha512 = "BCAmnOxZzobF3H1/h/gq70pEyvX/BVLWCrzi8beFD22dqu5Z14qOghNUsI24Wg8oaTsGFcIjOGtFX5L9ttmjVg==";
+        url = "https://registry.npmjs.org/precinct/-/precinct-6.3.1.tgz";
+        sha512 = "JAwyLCgTylWminoD7V0VJwMElWmwrVSR6r9HaPWCoswkB4iFzX7aNtO7VBfAVPy+NhmjKb8IF8UmlWJXzUkOIQ==";
       };
     };
     "precond-0.2.3" = {
@@ -34874,6 +37642,15 @@ let
         sha512 = "7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==";
       };
     };
+    "prettier-2.1.2" = {
+      name = "prettier";
+      packageName = "prettier";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz";
+        sha512 = "16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==";
+      };
+    };
     "prettier-bytes-1.0.4" = {
       name = "prettier-bytes";
       packageName = "prettier-bytes";
@@ -34892,22 +37669,22 @@ let
         sha512 = "TtYxuFUMVxudJTSnPScaBqHZm/48ndvX3KLFzhejJYbRzRybmM9RdBfn9YzgN0itfPrYxCesIZGJqyXXZJOR2w==";
       };
     };
-    "prettier-eslint-8.8.2" = {
+    "prettier-eslint-11.0.0" = {
       name = "prettier-eslint";
       packageName = "prettier-eslint";
-      version = "8.8.2";
+      version = "11.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-8.8.2.tgz";
-        sha512 = "2UzApPuxi2yRoyMlXMazgR6UcH9DKJhNgCviIwY3ixZ9THWSSrUww5vkiZ3C48WvpFl1M1y/oU63deSy1puWEA==";
+        url = "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-11.0.0.tgz";
+        sha512 = "ACjL7T8m10HCO7DwYdXwhNWuZzQv86JkZAhVpzFV9brTMWi3i6LhqoELFaXf6RetDngujz89tnbDmGyvDl+rzA==";
       };
     };
-    "prettier-eslint-9.0.2" = {
+    "prettier-eslint-8.8.2" = {
       name = "prettier-eslint";
       packageName = "prettier-eslint";
-      version = "9.0.2";
+      version = "8.8.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-9.0.2.tgz";
-        sha512 = "u6EQqxUhaGfra9gy9shcR7MT7r/2twwEfRGy1tfzyaJvLQwSg34M9IU5HuF7FsLW2QUgr5VIUc56EPWibw1pdw==";
+        url = "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-8.8.2.tgz";
+        sha512 = "2UzApPuxi2yRoyMlXMazgR6UcH9DKJhNgCviIwY3ixZ9THWSSrUww5vkiZ3C48WvpFl1M1y/oU63deSy1puWEA==";
       };
     };
     "prettier-stylelint-0.4.2" = {
@@ -34928,13 +37705,13 @@ let
         sha512 = "urhX7U/F+fu8sztEs/Z7CxNS8PdEytEwGKhQaH5fxxCdRmHGT45FoClyDlcZrMk9cK/8JpX/asFmTOHtSGJfLg==";
       };
     };
-    "pretty-bytes-5.3.0" = {
+    "pretty-bytes-5.4.1" = {
       name = "pretty-bytes";
       packageName = "pretty-bytes";
-      version = "5.3.0";
+      version = "5.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.3.0.tgz";
-        sha512 = "hjGrh+P926p4R4WbaB6OckyRtO0F0/lQBiT+0gnxjV+5kjPBrfVBFCsCLbMqVQeydvIoouYTCmmEURiH3R1Bdg==";
+        url = "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.4.1.tgz";
+        sha512 = "s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA==";
       };
     };
     "pretty-format-23.6.0" = {
@@ -34946,6 +37723,15 @@ let
         sha512 = "zf9NV1NSlDLDjycnwm6hpFATCGl/K1lt0R/GdkAK2O5LN/rwJoB+Mh93gGJjut4YbmecbfgLWVGSTCr0Ewvvbw==";
       };
     };
+    "pretty-format-24.9.0" = {
+      name = "pretty-format";
+      packageName = "pretty-format";
+      version = "24.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz";
+        sha512 = "00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==";
+      };
+    };
     "pretty-hash-1.0.1" = {
       name = "pretty-hash";
       packageName = "pretty-hash";
@@ -34964,6 +37750,15 @@ let
         sha1 = "b7e3ea42435a4c9b2759d99e0f201eb195802ee1";
       };
     };
+    "pretty-ms-5.1.0" = {
+      name = "pretty-ms";
+      packageName = "pretty-ms";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pretty-ms/-/pretty-ms-5.1.0.tgz";
+        sha512 = "4gaK1skD2gwscCfkswYQRmddUb2GJZtzDGRjHWadVHtK/DIKFufa12MvES6/xu1tVbUYeia5bmLcwJtZJQUqnw==";
+      };
+    };
     "prettyjson-1.2.1" = {
       name = "prettyjson";
       packageName = "prettyjson";
@@ -34991,15 +37786,6 @@ let
         sha512 = "UCDQscAfQ1HArwvSUobJWbc3sTGLqGpYkRqXUpBZgf+zOWpOjz2dxnpRsOu+qxIj1K0n5UT1wgbCCgetsIwiug==";
       };
     };
-    "primitive-quadify-off-curves-0.4.1" = {
-      name = "primitive-quadify-off-curves";
-      packageName = "primitive-quadify-off-curves";
-      version = "0.4.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/primitive-quadify-off-curves/-/primitive-quadify-off-curves-0.4.1.tgz";
-        sha512 = "Kmn+IfF+hcARb1NX+XtoSQIxHS+WeOqqQ3YDihRe3KkvGkFxMrDQFFsDTXxwUOt9KmvD7FgWG6cO2ajZp4lEQg==";
-      };
-    };
     "printf-0.2.5" = {
       name = "printf";
       packageName = "printf";
@@ -35027,13 +37813,13 @@ let
         sha512 = "dG2w7WtovUa4SiYTdWn9H8Bd4JNdei2djtkP/Bk9fXq81j5Q15ZPHYSwhUVvBRbp5zMkGtu0Yk62HuMcly0pRw==";
       };
     };
-    "prismjs-1.20.0" = {
+    "prismjs-1.21.0" = {
       name = "prismjs";
       packageName = "prismjs";
-      version = "1.20.0";
+      version = "1.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prismjs/-/prismjs-1.20.0.tgz";
-        sha512 = "AEDjSrVNkynnw6A+B1DsFkd6AVdTnp+/WoUixFRULlCLZVRZlVQMVWio/16jv7G1FscUxQxOQhWwApgbnxr6kQ==";
+        url = "https://registry.npmjs.org/prismjs/-/prismjs-1.21.0.tgz";
+        sha512 = "uGdSIu1nk3kej2iZsLyDoJ7e9bnPzIgY0naW/HdknGj61zScaprVEVGHrPoXqI+M9sP0NDnTK2jpkvmldpuqDw==";
       };
     };
     "private-0.1.8" = {
@@ -35225,6 +38011,24 @@ let
         sha1 = "6739e968e3051da20ce6497fb2b50f6911df3d6d";
       };
     };
+    "promise.allsettled-1.0.2" = {
+      name = "promise.allsettled";
+      packageName = "promise.allsettled";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz";
+        sha512 = "UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==";
+      };
+    };
+    "promise.prototype.finally-3.1.2" = {
+      name = "promise.prototype.finally";
+      packageName = "promise.prototype.finally";
+      version = "3.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.2.tgz";
+        sha512 = "A2HuJWl2opDH0EafgdjwEw7HysI8ff/n4lW4QEVBCUXFk9QeGecBWv0Deph0UmLe3tTNYegz8MOjsVuE6SMoJA==";
+      };
+    };
     "promised-temp-0.1.0" = {
       name = "promised-temp";
       packageName = "promised-temp";
@@ -35234,13 +38038,13 @@ let
         sha1 = "5f8a704ccdf5f2ac23996fcafe2b301bc2a8d0eb";
       };
     };
-    "promisify-child-process-3.1.4" = {
+    "promisify-child-process-4.1.1" = {
       name = "promisify-child-process";
       packageName = "promisify-child-process";
-      version = "3.1.4";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/promisify-child-process/-/promisify-child-process-3.1.4.tgz";
-        sha512 = "tLifJs99E4oOXUz/dKQjRgdchfiepmYQzBVrcVX9BtUWi9aGJeGSf2KgXOWBW1JFsSYgLkl1Z9HRm8i0sf4cTg==";
+        url = "https://registry.npmjs.org/promisify-child-process/-/promisify-child-process-4.1.1.tgz";
+        sha512 = "/sRjHZwoXf1rJ+8s4oWjYjGRVKNK1DUnqfRC1Zek18pl0cN6k3yJ1cCbqd0tWNe4h0Gr+SY4vR42N33+T82WkA==";
       };
     };
     "promisize-1.1.2" = {
@@ -35306,15 +38110,6 @@ let
         sha1 = "159fb06193d32003f4b3691dd2ec1a634aa80d1d";
       };
     };
-    "properties-1.2.1" = {
-      name = "properties";
-      packageName = "properties";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/properties/-/properties-1.2.1.tgz";
-        sha1 = "0ee97a7fc020b1a2a55b8659eda4aa8d869094bd";
-      };
-    };
     "property-information-5.5.0" = {
       name = "property-information";
       packageName = "property-information";
@@ -35342,13 +38137,13 @@ let
         sha1 = "bc826e34c3af4697e8d0af7a669e4d612aedcd17";
       };
     };
-    "protobufjs-6.9.0" = {
+    "protobufjs-6.10.1" = {
       name = "protobufjs";
       packageName = "protobufjs";
-      version = "6.9.0";
+      version = "6.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/protobufjs/-/protobufjs-6.9.0.tgz";
-        sha512 = "LlGVfEWDXoI/STstRDdZZKb/qusoAWUnmLg9R8OLSO473mBLWHowx8clbX5/+mKDEI+v7GzjoK9tRPZMMcoTrg==";
+        url = "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.1.tgz";
+        sha512 = "pb8kTchL+1Ceg4lFd5XUpK8PdWacbvV5SK2ULH2ebrYtl4GjJmS24m6CKME67jzV53tbJxHlnNOSqQHbTsR9JQ==";
       };
     };
     "protocol-buffers-encodings-1.1.0" = {
@@ -35360,13 +38155,13 @@ let
         sha512 = "SmjEuAf3hc3h3rWZ6V1YaaQw2MNJWK848gLJgzx/sefOJdNLujKinJVXIS0q2cBQpQn2Q32TinawZyDZPzm4kQ==";
       };
     };
-    "protocols-1.4.7" = {
+    "protocols-1.4.8" = {
       name = "protocols";
       packageName = "protocols";
-      version = "1.4.7";
+      version = "1.4.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/protocols/-/protocols-1.4.7.tgz";
-        sha512 = "Fx65lf9/YDn3hUX08XUc0J8rSux36rEsyiv21ZGUC1mOyeM3lTRpZLcrm8aAolzS4itwVfm7TAPyxC2E5zd6xg==";
+        url = "https://registry.npmjs.org/protocols/-/protocols-1.4.8.tgz";
+        sha512 = "IgjKyaUSjsROSO8/D49Ab7hP8mJgTYcqApOqdPhLoPxAplXmkp+zRvsrSQjFn5by0rhm4VH0GAUELIPpx7B1yg==";
       };
     };
     "protoduck-5.0.1" = {
@@ -35378,15 +38173,6 @@ let
         sha512 = "WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==";
       };
     };
-    "proxy-addr-1.0.10" = {
-      name = "proxy-addr";
-      packageName = "proxy-addr";
-      version = "1.0.10";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.0.10.tgz";
-        sha1 = "0d40a82f801fc355567d2ecb65efe3f077f121c5";
-      };
-    };
     "proxy-addr-1.1.5" = {
       name = "proxy-addr";
       packageName = "proxy-addr";
@@ -35432,15 +38218,6 @@ let
         sha1 = "a3fdf1befb730f951965872ac2f6074c61477a56";
       };
     };
-    "prr-0.0.0" = {
-      name = "prr";
-      packageName = "prr";
-      version = "0.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz";
-        sha1 = "1a84b85908325501411853d0081ee3fa86e2926a";
-      };
-    };
     "prr-1.0.1" = {
       name = "prr";
       packageName = "prr";
@@ -35468,22 +38245,22 @@ let
         sha512 = "qau0czUSB0fzSlBOQt0bo+I2v6R+xiQdj78e1BR/Qjfl5OHWJ/urXi8+ilw1eHe+5hSeDI1wrwVTgDp2wst4oA==";
       };
     };
-    "ps-list-7.1.0" = {
+    "ps-list-7.2.0" = {
       name = "ps-list";
       packageName = "ps-list";
-      version = "7.1.0";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ps-list/-/ps-list-7.1.0.tgz";
-        sha512 = "3hBSPXo4bsVX295Jr4TFgqEmQoI93SZDShX6kK3uHh6PlVhvZt4evi/9uqU43VBLjV6xDGueW35gjn1QNjgxug==";
+        url = "https://registry.npmjs.org/ps-list/-/ps-list-7.2.0.tgz";
+        sha512 = "v4Bl6I3f2kJfr5o80ShABNHAokIgY+wFDTQfE+X3zWYgSGQOCBeYptLZUpoOALBqO5EawmDN/tjTldJesd0ujQ==";
       };
     };
-    "ps-tree-0.0.3" = {
+    "ps-tree-1.2.0" = {
       name = "ps-tree";
       packageName = "ps-tree";
-      version = "0.0.3";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ps-tree/-/ps-tree-0.0.3.tgz";
-        sha1 = "dbf8d752a7fe22fa7d58635689499610e9276ddc";
+        url = "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz";
+        sha512 = "0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==";
       };
     };
     "pseudomap-1.0.2" = {
@@ -35558,6 +38335,15 @@ let
         sha512 = "qE3YhESP2mRAWMFJgKdtT5D7ckThRScXRwkfo+Erqga7dyJdY3ZquspprMCj/9sJ2ijm5hXFWQE/A3l4poMWiQ==";
       };
     };
+    "pug-error-2.0.0" = {
+      name = "pug-error";
+      packageName = "pug-error";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz";
+        sha512 = "sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==";
+      };
+    };
     "pug-filters-3.1.1" = {
       name = "pug-filters";
       packageName = "pug-filters";
@@ -35576,6 +38362,15 @@ let
         sha512 = "i55yzEBtjm0mlplW4LoANq7k3S8gDdfC6+LThGEvsK4FuobcKfDAwt6V4jKPH9RtiE3a2Akfg5UpafZ1OksaPA==";
       };
     };
+    "pug-lexer-5.0.0" = {
+      name = "pug-lexer";
+      packageName = "pug-lexer";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.0.tgz";
+        sha512 = "52xMk8nNpuyQ/M2wjZBN5gXQLIylaGkAoTk5Y1pBhVqaopaoj8Z0iVzpbFZAqitL4RHNVDZRnJDsqEYe99Ti0A==";
+      };
+    };
     "pug-linker-3.0.6" = {
       name = "pug-linker";
       packageName = "pug-linker";
@@ -35639,6 +38434,15 @@ let
         sha1 = "7017a984c3b834de77bac38c10b776f22dfc1843";
       };
     };
+    "pull-abortable-4.1.1" = {
+      name = "pull-abortable";
+      packageName = "pull-abortable";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pull-abortable/-/pull-abortable-4.1.1.tgz";
+        sha1 = "b3ad5aefb4116b25916d26db89393ac98d0dcea1";
+      };
+    };
     "pull-block-filter-1.0.0" = {
       name = "pull-block-filter";
       packageName = "pull-block-filter";
@@ -36215,13 +39019,13 @@ let
         sha512 = "hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==";
       };
     };
-    "purgecss-1.4.2" = {
+    "purgecss-2.3.0" = {
       name = "purgecss";
       packageName = "purgecss";
-      version = "1.4.2";
+      version = "2.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/purgecss/-/purgecss-1.4.2.tgz";
-        sha512 = "hkOreFTgiyMHMmC2BxzdIw5DuC6kxAbP/gGOGd3MEsF3+5m69rIvUEPaxrnoUtfODTFKe9hcXjGwC6jcjoyhOw==";
+        url = "https://registry.npmjs.org/purgecss/-/purgecss-2.3.0.tgz";
+        sha512 = "BE5CROfVGsx2XIhxGuZAT7rTH9lLeQx/6M0P7DTXQH4IUc3BBzs9JUzt4yzGf3JrH9enkeq6YJBe9CTtkm1WmQ==";
       };
     };
     "push-stream-10.1.2" = {
@@ -36305,15 +39109,6 @@ let
         sha1 = "294b268e4b0d4250f6dde19b3b8b34935dff14ef";
       };
     };
-    "qs-1.2.0" = {
-      name = "qs";
-      packageName = "qs";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/qs/-/qs-1.2.0.tgz";
-        sha1 = "ed079be28682147e6fd9a34cc2b0c1e0ec6453ee";
-      };
-    };
     "qs-2.3.3" = {
       name = "qs";
       packageName = "qs";
@@ -36440,13 +39235,13 @@ let
         sha1 = "9ec61f79049875707d69414596fd907a4d711e73";
       };
     };
-    "querystringify-2.1.1" = {
+    "querystringify-2.2.0" = {
       name = "querystringify";
       packageName = "querystringify";
-      version = "2.1.1";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz";
-        sha512 = "w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==";
+        url = "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz";
+        sha512 = "FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==";
       };
     };
     "queue-4.5.1" = {
@@ -36458,13 +39253,13 @@ let
         sha512 = "AMD7w5hRXcFSb8s9u38acBZ+309u6GsiibP4/0YacJeaurRshogB7v/ZcVPxP5gD5+zIw6ixRHdutiYUJfwKHw==";
       };
     };
-    "queue-microtask-1.1.3" = {
+    "queue-microtask-1.1.4" = {
       name = "queue-microtask";
       packageName = "queue-microtask";
-      version = "1.1.3";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.1.3.tgz";
-        sha512 = "zC1ZDLKFhZSa8vAdFbkOGouHcOUMgUAI/2/3on/KktpY+BaVqABkzDSsCSvJfmLbICOnrEuF9VIMezZf+T0mBA==";
+        url = "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.1.4.tgz";
+        sha512 = "eY/4Obve9cE5FK8YvC1cJsm5cr7XvAurul8UtBDJ2PR1p5NmAwHtvAt5ftcLtwYRCUKNhxCneZZlxmUDFoSeKA==";
       };
     };
     "quick-format-unescaped-4.0.1" = {
@@ -36494,6 +39289,15 @@ let
         sha512 = "ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==";
       };
     };
+    "quick-lru-5.1.1" = {
+      name = "quick-lru";
+      packageName = "quick-lru";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz";
+        sha512 = "WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==";
+      };
+    };
     "quicktask-1.1.0" = {
       name = "quicktask";
       packageName = "quicktask";
@@ -36611,6 +39415,15 @@ let
         sha1 = "4f68a1dc0ae58bd3fb95848c30324db75d64360b";
       };
     };
+    "random-item-3.0.0" = {
+      name = "random-item";
+      packageName = "random-item";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/random-item/-/random-item-3.0.0.tgz";
+        sha512 = "IpO3Jk9/Dt79R7iS/Fn2d2asGXahMNnXLNRsgSmjTTtiS0tZ972BWEEm9uUgm3YAon5YFUt8126FA9wJAjmeZw==";
+      };
+    };
     "random-iterate-1.0.1" = {
       name = "random-iterate";
       packageName = "random-iterate";
@@ -36656,15 +39469,6 @@ let
         sha1 = "c0427ffef51c10acba0782a46c9602e744ff620b";
       };
     };
-    "range-parser-1.0.3" = {
-      name = "range-parser";
-      packageName = "range-parser";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/range-parser/-/range-parser-1.0.3.tgz";
-        sha1 = "6872823535c692e2c2a0103826afd82c2e0ff175";
-      };
-    };
     "range-parser-1.2.0" = {
       name = "range-parser";
       packageName = "range-parser";
@@ -36782,6 +39586,42 @@ let
         sha512 = "YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==";
       };
     };
+    "react-devtools-core-4.8.2" = {
+      name = "react-devtools-core";
+      packageName = "react-devtools-core";
+      version = "4.8.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-devtools-core/-/react-devtools-core-4.8.2.tgz";
+        sha512 = "3Lv3nI8FPAwKqUco35oOlgf+4j8mgYNnIcDv2QTfxEqg2G69q17ZJ8ScU9aBnymS28YC1OW+kTxLmdIQeTN8yg==";
+      };
+    };
+    "react-dom-16.13.1" = {
+      name = "react-dom";
+      packageName = "react-dom";
+      version = "16.13.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz";
+        sha512 = "81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==";
+      };
+    };
+    "react-dropdown-1.8.0" = {
+      name = "react-dropdown";
+      packageName = "react-dropdown";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-dropdown/-/react-dropdown-1.8.0.tgz";
+        sha512 = "B1vkFk2vkUOf5JFd+Gk8yJdZkSoE4F689Lb93vc0pLcu6cabqlGMYgIzLJuzT+BMy7guk+OXbLDs0pMX8BvEbw==";
+      };
+    };
+    "react-hot-loader-4.12.21" = {
+      name = "react-hot-loader";
+      packageName = "react-hot-loader";
+      version = "4.12.21";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-hot-loader/-/react-hot-loader-4.12.21.tgz";
+        sha512 = "Ynxa6ROfWUeKWsTHxsrL2KMzujxJVPjs385lmB2t5cHUxdoRPGind9F00tOkdc1l5WBleOF4XEAMILY1KPIIDA==";
+      };
+    };
     "react-is-16.13.1" = {
       name = "react-is";
       packageName = "react-is";
@@ -36791,6 +39631,15 @@ let
         sha512 = "24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==";
       };
     };
+    "react-lifecycles-compat-3.0.4" = {
+      name = "react-lifecycles-compat";
+      packageName = "react-lifecycles-compat";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz";
+        sha512 = "fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==";
+      };
+    };
     "react-reconciler-0.24.0" = {
       name = "react-reconciler";
       packageName = "react-reconciler";
@@ -36800,6 +39649,15 @@ let
         sha512 = "gAGnwWkf+NOTig9oOowqid9O0HjTDC+XVGBCAmJYYJ2A2cN/O4gDdIuuUQjv8A4v6GDwVfJkagpBBLW5OW9HSw==";
       };
     };
+    "react-tabs-3.1.1" = {
+      name = "react-tabs";
+      packageName = "react-tabs";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-tabs/-/react-tabs-3.1.1.tgz";
+        sha512 = "HpySC29NN1BkzBAnOC+ajfzPbTaVZcSWzMSjk56uAhPC/rBGtli8lTysR4CfPAyEE/hfweIzagOIoJ7nu80yng==";
+      };
+    };
     "read-1.0.7" = {
       name = "read";
       packageName = "read";
@@ -36863,22 +39721,22 @@ let
         sha1 = "2724fd6a8113d73764ac288d4386270c1dbf17f0";
       };
     };
-    "read-package-json-2.1.1" = {
+    "read-package-json-2.1.2" = {
       name = "read-package-json";
       packageName = "read-package-json";
-      version = "2.1.1";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.1.tgz";
-        sha512 = "dAiqGtVc/q5doFz6096CcnXhpYk0ZN8dEKVkGLU0CsASt8SrgF6SF7OTKAYubfvFhWaqofl+Y8HK19GR8jwW+A==";
+        url = "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz";
+        sha512 = "D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==";
       };
     };
-    "read-package-json-fast-1.1.3" = {
+    "read-package-json-fast-1.2.1" = {
       name = "read-package-json-fast";
       packageName = "read-package-json-fast";
-      version = "1.1.3";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-1.1.3.tgz";
-        sha512 = "MmFqiyfCXV2Dmm4jH24DEGhxdkUDFivJQj4oPZQPOKywxR7HWBE6WnMWDAapfFHi3wm1b+mhR+XHlUH0CL8axg==";
+        url = "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-1.2.1.tgz";
+        sha512 = "OFbpwnHcv74Oa5YN5WvbOBfLw6yPmPcwvyJJw/tj9cWFBF7juQUDLDSZiOjEcgzfweWeeROOmbPpNN1qm4hcRg==";
       };
     };
     "read-package-tree-5.3.1" = {
@@ -36899,15 +39757,6 @@ let
         sha1 = "f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28";
       };
     };
-    "read-pkg-2.0.0" = {
-      name = "read-pkg";
-      packageName = "read-pkg";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz";
-        sha1 = "8ef1c0623c6a6db0dc6713c4bfac46332b2368f8";
-      };
-    };
     "read-pkg-3.0.0" = {
       name = "read-pkg";
       packageName = "read-pkg";
@@ -36935,15 +39784,6 @@ let
         sha1 = "9d63c13276c065918d57f002a57f40a1b643fb02";
       };
     };
-    "read-pkg-up-2.0.0" = {
-      name = "read-pkg-up";
-      packageName = "read-pkg-up";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz";
-        sha1 = "6b72a8048984e0c41e79510fd5e9fa99b3b549be";
-      };
-    };
     "read-pkg-up-3.0.0" = {
       name = "read-pkg-up";
       packageName = "read-pkg-up";
@@ -37061,6 +39901,15 @@ let
         sha512 = "+oZJurc4hXpaaqsN68GoZGQAQIA3qr09Or4fqEsargABnbe5Aau8hFn6ISVleT3cpY/0n/8drn7huyyEvTbghA==";
       };
     };
+    "readdir-glob-1.0.0" = {
+      name = "readdir-glob";
+      packageName = "readdir-glob";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readdir-glob/-/readdir-glob-1.0.0.tgz";
+        sha512 = "km0DIcwQVZ1ZUhXhMWpF74/Wm5aFEd5/jDiVWF1Hkw2myPQovG8vCQ8+FQO2KXE9npQQvCnAMZhhWuUee4WcCQ==";
+      };
+    };
     "readdir-scoped-modules-1.1.0" = {
       name = "readdir-scoped-modules";
       packageName = "readdir-scoped-modules";
@@ -37097,6 +39946,15 @@ let
         sha512 = "0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==";
       };
     };
+    "readline-1.3.0" = {
+      name = "readline";
+      packageName = "readline";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readline/-/readline-1.3.0.tgz";
+        sha1 = "c580d77ef2cfc8752b132498060dc9793a7ac01c";
+      };
+    };
     "readline2-0.1.1" = {
       name = "readline2";
       packageName = "readline2";
@@ -37133,6 +39991,15 @@ let
         sha1 = "451fd3004ab1e4df9b4e4b66376b2a21912462d3";
       };
     };
+    "recast-0.17.2" = {
+      name = "recast";
+      packageName = "recast";
+      version = "0.17.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/recast/-/recast-0.17.2.tgz";
+        sha512 = "YHFvn4rBXl8eIjALjUiOV/AP3xFpyGNGNHDw9mAncAWuIdgnBKjbZQ9+P3VlsKcNaNapRVFlTEX1dvDRlYwyxg==";
+      };
+    };
     "recast-0.18.10" = {
       name = "recast";
       packageName = "recast";
@@ -37142,13 +40009,13 @@ let
         sha512 = "XNvYvkfdAN9QewbrxeTOjgINkdY/odTgTS56ZNEWL9Ml0weT4T3sFtvnTuF+Gxyu46ANcRm1ntrF6F5LAJPAaQ==";
       };
     };
-    "recast-0.19.1" = {
+    "recast-0.20.3" = {
       name = "recast";
       packageName = "recast";
-      version = "0.19.1";
+      version = "0.20.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/recast/-/recast-0.19.1.tgz";
-        sha512 = "8FCjrBxjeEU2O6I+2hyHyBFH1siJbMBLwIRvVr1T3FD2cL754sOaJDsJ/8h3xYltasbJ8jqWRIhMuDGBSiSbjw==";
+        url = "https://registry.npmjs.org/recast/-/recast-0.20.3.tgz";
+        sha512 = "jrEPzRV5B7wfRiN0UYMtjgIx1Hp8MRHdLcMYqMNd0DoOe1CB5JmPL/04I7WPuuApCs7LCSisYK/FfKnPEaJrzw==";
       };
     };
     "rechoir-0.6.2" = {
@@ -37223,13 +40090,13 @@ let
         sha1 = "8984b5815d99cb220469c99eeeffe38913e6cc0b";
       };
     };
-    "redis-0.12.1" = {
-      name = "redis";
-      packageName = "redis";
-      version = "0.12.1";
+    "redoc-2.0.0-rc.8-1" = {
+      name = "redoc";
+      packageName = "redoc";
+      version = "2.0.0-rc.8-1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/redis/-/redis-0.12.1.tgz";
-        sha1 = "64df76ad0fc8acebaebd2a0645e8a48fac49185e";
+        url = "https://registry.npmjs.org/redoc/-/redoc-2.0.0-rc.8-1.tgz";
+        sha512 = "/YoCdcl2QtveKz4CTXaqtOfCIaVgZZgcnfUNC5xK7xBl/LxTiNj3tUbgFmrYMLTZGzNdQ9TUJpsa7lXDKcr8Pw==";
       };
     };
     "reduce-component-1.0.1" = {
@@ -37259,13 +40126,13 @@ let
         sha512 = "pNqnf9q1hI5HHZRBkj3bAngGZW/JMCmexDlOxw4XagXY2o1327nHH54LoTjiPJ0gizoqPDRqWyX/00g0hD6w+A==";
       };
     };
-    "reftools-1.1.1" = {
+    "reftools-1.1.6" = {
       name = "reftools";
       packageName = "reftools";
-      version = "1.1.1";
+      version = "1.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/reftools/-/reftools-1.1.1.tgz";
-        sha512 = "7ySkzK7YpUeJP16rzJqEXTZ7IrAq/AL/p+wWejD9wdKQOe+mYYVAOB3w5ZTs2eoHfmAidwr/6PcC+q+LzPF/DQ==";
+        url = "https://registry.npmjs.org/reftools/-/reftools-1.1.6.tgz";
+        sha512 = "rQfJ025lvPjw9qyQuNPqE+cRs5qVs7BMrZwgRJnmuMcX/8r/eJE8f5/RCunJWViXKHmN5K2DFafYzglLOHE/tw==";
       };
     };
     "regenerate-1.4.1" = {
@@ -37286,6 +40153,15 @@ let
         sha512 = "F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==";
       };
     };
+    "regenerator-runtime-0.10.5" = {
+      name = "regenerator-runtime";
+      packageName = "regenerator-runtime";
+      version = "0.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz";
+        sha1 = "336c3efc1220adcedda2c9fab67b5a7955a33658";
+      };
+    };
     "regenerator-runtime-0.11.1" = {
       name = "regenerator-runtime";
       packageName = "regenerator-runtime";
@@ -37295,22 +40171,22 @@ let
         sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==";
       };
     };
-    "regenerator-runtime-0.13.5" = {
+    "regenerator-runtime-0.13.7" = {
       name = "regenerator-runtime";
       packageName = "regenerator-runtime";
-      version = "0.13.5";
+      version = "0.13.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz";
-        sha512 = "ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==";
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz";
+        sha512 = "a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==";
       };
     };
-    "regenerator-transform-0.14.4" = {
+    "regenerator-transform-0.14.5" = {
       name = "regenerator-transform";
       packageName = "regenerator-transform";
-      version = "0.14.4";
+      version = "0.14.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz";
-        sha512 = "EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==";
+        url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz";
+        sha512 = "eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==";
       };
     };
     "regex-cache-0.4.4" = {
@@ -37367,13 +40243,13 @@ let
         sha512 = "ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==";
       };
     };
-    "regexpu-core-4.7.0" = {
+    "regexpu-core-4.7.1" = {
       name = "regexpu-core";
       packageName = "regexpu-core";
-      version = "4.7.0";
+      version = "4.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz";
-        sha512 = "TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==";
+        url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz";
+        sha512 = "ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==";
       };
     };
     "registry-auth-token-3.3.2" = {
@@ -37394,13 +40270,13 @@ let
         sha512 = "4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==";
       };
     };
-    "registry-auth-token-4.1.1" = {
+    "registry-auth-token-4.2.0" = {
       name = "registry-auth-token";
       packageName = "registry-auth-token";
-      version = "4.1.1";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz";
-        sha512 = "9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==";
+        url = "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.0.tgz";
+        sha512 = "P+lWzPrsgfN+UEpDS3U8AQKg/UjZX6mQSJueZj3EK+vNESoqBSpBUD3gmu4sF9lOsjXWjF11dQKUqemf3veq1w==";
       };
     };
     "registry-url-3.1.0" = {
@@ -37439,6 +40315,24 @@ let
         sha512 = "64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==";
       };
     };
+    "rehype-parse-7.0.1" = {
+      name = "rehype-parse";
+      packageName = "rehype-parse";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rehype-parse/-/rehype-parse-7.0.1.tgz";
+        sha512 = "fOiR9a9xH+Le19i4fGzIEowAbwG7idy2Jzs4mOrFWBSJ0sNUgy0ev871dwWnbOo371SjgjG4pwzrbgSVrKxecw==";
+      };
+    };
+    "rehype-retext-2.0.4" = {
+      name = "rehype-retext";
+      packageName = "rehype-retext";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rehype-retext/-/rehype-retext-2.0.4.tgz";
+        sha512 = "OnGX5RE8WyEs/Snz+Bs8DM9uGdrNUXMhCC7CW3S1cIZVOC90VdewdE+71kpG6LOzS0xwgZyItwrhjGv+oQgwkQ==";
+      };
+    };
     "rehype-sort-attribute-values-2.0.1" = {
       name = "rehype-sort-attribute-values";
       packageName = "rehype-sort-attribute-values";
@@ -37538,6 +40432,15 @@ let
         sha512 = "fM5eZPBvu2pVNoq3ZPW22q+5Ativ1oLozq2qYt9I2oNyxiUd/tDl0iLLntEVAegpZIslPWg1brhcP1VsaSVUag==";
       };
     };
+    "remark-frontmatter-2.0.0" = {
+      name = "remark-frontmatter";
+      packageName = "remark-frontmatter";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-2.0.0.tgz";
+        sha512 = "uNOQt4tO14qBFWXenF0MLC4cqo3dv8qiHPGyjCl1rwOT0LomSHpcElbjjVh5CwzElInB38HD8aSRVugKQjeyHA==";
+      };
+    };
     "remark-html-2.0.2" = {
       name = "remark-html";
       packageName = "remark-html";
@@ -37547,13 +40450,22 @@ let
         sha1 = "592a347bdd3d5881f4f080c98b5b152fb1407a92";
       };
     };
-    "remark-message-control-4.2.0" = {
+    "remark-mdx-2.0.0-next.8" = {
+      name = "remark-mdx";
+      packageName = "remark-mdx";
+      version = "2.0.0-next.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-mdx/-/remark-mdx-2.0.0-next.8.tgz";
+        sha512 = "mjP0yo6BgjYrx5a+gKWYRFWbGnRiWi4Fdf17xGCr9VkSMnG4Dyo06spqbaLfHwl0KkQ/RQZlR2sn1mKnYduJdw==";
+      };
+    };
+    "remark-message-control-6.0.0" = {
       name = "remark-message-control";
       packageName = "remark-message-control";
-      version = "4.2.0";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/remark-message-control/-/remark-message-control-4.2.0.tgz";
-        sha512 = "WXH2t5ljTyhsXlK1zPBLF3iPHbXl58R94phPMreS1xcHWBZJt6Oiu8RtNjy1poZFb3PqKnbYLJeR/CWcZ1bTFw==";
+        url = "https://registry.npmjs.org/remark-message-control/-/remark-message-control-6.0.0.tgz";
+        sha512 = "k9bt7BYc3G7YBdmeAhvd3VavrPa/XlKWR3CyHjr4sLO9xJyly8WHHT3Sp+8HPR8lEUv+/sZaffL7IjMLV0f6BA==";
       };
     };
     "remark-parse-1.1.0" = {
@@ -37592,13 +40504,22 @@ let
         sha512 = "QbDXWN4HfKTUC0hHa4teU463KclLAnwpn/FBn87j9cKYJWWawbiLgMfP2Q4XwhxxuuuOxHlw+pSN0OKuJwyVvg==";
       };
     };
-    "remark-retext-3.1.3" = {
+    "remark-parse-8.0.3" = {
+      name = "remark-parse";
+      packageName = "remark-parse";
+      version = "8.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-parse/-/remark-parse-8.0.3.tgz";
+        sha512 = "E1K9+QLGgggHxCQtLt++uXltxEprmWzNfg+MxpfHsZlrddKzZ/hZyWHDbK3/Ap8HJQqYJRXP+jHczdL6q6i85Q==";
+      };
+    };
+    "remark-retext-4.0.0" = {
       name = "remark-retext";
       packageName = "remark-retext";
-      version = "3.1.3";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/remark-retext/-/remark-retext-3.1.3.tgz";
-        sha512 = "UujXAm28u4lnUvtOZQFYfRIhxX+auKI9PuA2QpQVTT7gYk1OgX6o0OUrSo1KOa6GNrFX+OODOtS5PWIHPxM7qw==";
+        url = "https://registry.npmjs.org/remark-retext/-/remark-retext-4.0.0.tgz";
+        sha512 = "cYCchalpf25bTtfXF24ribYvqytPKq0TiEhqQDBHvVEEsApebwruPWP1cTcvTFBidmpXyqzycm+y8ng7Kmvc8Q==";
       };
     };
     "remark-stringify-1.1.0" = {
@@ -37628,6 +40549,24 @@ let
         sha512 = "eRWGdEPMVudijE/psbIDNcnJLRVx3xhfuEsTDGgH4GsFF91dVhw5nhmnBppafJ7+NWINW6C7ZwWbi30ImJzqWg==";
       };
     };
+    "remark-stringify-8.1.1" = {
+      name = "remark-stringify";
+      packageName = "remark-stringify";
+      version = "8.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remark-stringify/-/remark-stringify-8.1.1.tgz";
+        sha512 = "q4EyPZT3PcA3Eq7vPpT6bIdokXzFGp9i85igjmhRyXWmPs0Y6/d2FYwUNotKAWyLch7g0ASZJn/KHHcHZQ163A==";
+      };
+    };
+    "remote-git-tags-3.0.0" = {
+      name = "remote-git-tags";
+      packageName = "remote-git-tags";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remote-git-tags/-/remote-git-tags-3.0.0.tgz";
+        sha512 = "C9hAO4eoEsX+OXA4rla66pXZQ+TLQ8T9dttgQj18yuKlPMTVkIkdYXvlMC55IuUsIkV6DpmQYi10JKFLaU+l7w==";
+      };
+    };
     "remove-array-items-1.1.1" = {
       name = "remove-array-items";
       packageName = "remove-array-items";
@@ -37817,22 +40756,22 @@ let
         sha1 = "5d36bb57961c673aa5b788dbc8141fdf23b44e08";
       };
     };
-    "request-promise-core-1.1.3" = {
+    "request-promise-core-1.1.4" = {
       name = "request-promise-core";
       packageName = "request-promise-core";
-      version = "1.1.3";
+      version = "1.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz";
-        sha512 = "QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==";
+        url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz";
+        sha512 = "TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==";
       };
     };
-    "request-promise-native-1.0.8" = {
+    "request-promise-native-1.0.9" = {
       name = "request-promise-native";
       packageName = "request-promise-native";
-      version = "1.0.8";
+      version = "1.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz";
-        sha512 = "dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==";
+        url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz";
+        sha512 = "wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==";
       };
     };
     "requestretry-4.1.1" = {
@@ -37880,6 +40819,15 @@ let
         sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
       };
     };
+    "require-package-name-2.0.1" = {
+      name = "require-package-name";
+      packageName = "require-package-name";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-package-name/-/require-package-name-2.0.1.tgz";
+        sha1 = "c11e97276b65b8e2923f75dabf5fb2ef0c3841b9";
+      };
+    };
     "require-relative-0.8.7" = {
       name = "require-relative";
       packageName = "require-relative";
@@ -37898,15 +40846,6 @@ let
         sha1 = "4e0d56d6c9662fd31e43011c4b95aa49955421d3";
       };
     };
-    "requireg-0.2.2" = {
-      name = "requireg";
-      packageName = "requireg";
-      version = "0.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/requireg/-/requireg-0.2.2.tgz";
-        sha512 = "nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg==";
-      };
-    };
     "requirejs-2.3.6" = {
       name = "requirejs";
       packageName = "requirejs";
@@ -37916,15 +40855,6 @@ let
         sha512 = "ipEzlWQe6RK3jkzikgCupiTbTvm4S0/CAU5GlgptkN5SO6F3u0UD0K18wy6ErDqiCyP4J4YYe1HuAShvsxePLg==";
       };
     };
-    "requirejs-config-file-3.1.2" = {
-      name = "requirejs-config-file";
-      packageName = "requirejs-config-file";
-      version = "3.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/requirejs-config-file/-/requirejs-config-file-3.1.2.tgz";
-        sha512 = "sdLWywcDuNz7EIOhenSbRfT4YF84nItDv90coN2htbokjmU2QeyQuSBZILQUKNksepl8UPVU+hgYySFaDxbJPQ==";
-      };
-    };
     "requires-port-1.0.0" = {
       name = "requires-port";
       packageName = "requires-port";
@@ -37943,15 +40873,6 @@ let
         sha512 = "YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==";
       };
     };
-    "resolve-1.1.7" = {
-      name = "resolve";
-      packageName = "resolve";
-      version = "1.1.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz";
-        sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b";
-      };
-    };
     "resolve-1.17.0" = {
       name = "resolve";
       packageName = "resolve";
@@ -37961,13 +40882,22 @@ let
         sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==";
       };
     };
-    "resolve-1.7.1" = {
+    "resolve-2.0.0-next.1" = {
       name = "resolve";
       packageName = "resolve";
-      version = "1.7.1";
+      version = "2.0.0-next.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.1.tgz";
+        sha512 = "ZGTmuLZAW++TDjgslfUMRZcv7kXHv8z0zwxvuRWOPjnqc56HVsn1lVaqsWOZeQ8MwiilPVJLrcPVKG909QsAfA==";
+      };
+    };
+    "resolve-alpn-1.0.0" = {
+      name = "resolve-alpn";
+      packageName = "resolve-alpn";
+      version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/resolve/-/resolve-1.7.1.tgz";
-        sha512 = "c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw==";
+        url = "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz";
+        sha512 = "rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA==";
       };
     };
     "resolve-cwd-2.0.0" = {
@@ -37979,15 +40909,6 @@ let
         sha1 = "00a9f7387556e27038eae232caa372a6a59b665a";
       };
     };
-    "resolve-dependency-path-2.0.0" = {
-      name = "resolve-dependency-path";
-      packageName = "resolve-dependency-path";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/resolve-dependency-path/-/resolve-dependency-path-2.0.0.tgz";
-        sha512 = "DIgu+0Dv+6v2XwRaNWnumKu7GPufBBOr5I1gRPJHkvghrfCGOooJODFvgFimX/KRxk9j0whD2MnKHzM1jYvk9w==";
-      };
-    };
     "resolve-dir-1.0.1" = {
       name = "resolve-dir";
       packageName = "resolve-dir";
@@ -38177,22 +41098,22 @@ let
         sha512 = "yr1PgaBDde+25aJXrnt3p1jvT8FVLVat2Bx8XeAWX13KXo8OT+3nWGU3HWxM4YFJvmfqvJYJZG2d7xxaO774gw==";
       };
     };
-    "retext-equality-3.2.0" = {
+    "retext-equality-5.2.0" = {
       name = "retext-equality";
       packageName = "retext-equality";
-      version = "3.2.0";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/retext-equality/-/retext-equality-3.2.0.tgz";
-        sha512 = "dzcpZmEQ99ECZs1Y8WhfvJ4kEq+zfrI3ONMUFlSu8DmRJJY3p97v/2ZfVrufhrKlDr/wa902NJiIwupRnZy3/w==";
+        url = "https://registry.npmjs.org/retext-equality/-/retext-equality-5.2.0.tgz";
+        sha512 = "qfyDsVvwI6RsbyBi5GDRnutDbRMQj5zzK5oVg6ddKhONle2ZmQ/DBg9mz9QLKdnGhp8aW5xoVskXgwHufSQa3g==";
       };
     };
-    "retext-profanities-4.4.0" = {
+    "retext-profanities-6.1.0" = {
       name = "retext-profanities";
       packageName = "retext-profanities";
-      version = "4.4.0";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/retext-profanities/-/retext-profanities-4.4.0.tgz";
-        sha512 = "Gesb0Act9oeJ5N0KztREitP2E0zo7euzgTu2X4HLP6IJmcrRbRnqNwV11tzNy5JFJzKB1JTJFc7KseojTeGwOA==";
+        url = "https://registry.npmjs.org/retext-profanities/-/retext-profanities-6.1.0.tgz";
+        sha512 = "40Ym0WOgy7rRY4tR2iL01g3Y5Ql+9NBV21hycIhNX3uv+6vjaWB30NWN+tTcxNIWBJEwXHoTDMiVdAMm6ZpHVA==";
       };
     };
     "rethinkdb-2.4.2" = {
@@ -38420,13 +41341,13 @@ let
         sha1 = "df43e80d9bc82ad4430bcfef03f49c717e8b2e8c";
       };
     };
-    "roarr-2.15.3" = {
+    "roarr-2.15.4" = {
       name = "roarr";
       packageName = "roarr";
-      version = "2.15.3";
+      version = "2.15.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/roarr/-/roarr-2.15.3.tgz";
-        sha512 = "AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA==";
+        url = "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz";
+        sha512 = "CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==";
       };
     };
     "rollup-1.32.1" = {
@@ -38438,13 +41359,13 @@ let
         sha512 = "/2HA0Ec70TvQnXdzynFffkjA6XN+1e2pEv/uKS5Ulca40g2L7KuOE3riasHoNVHOsFD5KKZgDsMk1CP3Tw9s+A==";
       };
     };
-    "rollup-2.15.0" = {
+    "rollup-2.28.1" = {
       name = "rollup";
       packageName = "rollup";
-      version = "2.15.0";
+      version = "2.28.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rollup/-/rollup-2.15.0.tgz";
-        sha512 = "HAk4kyXiV5sdNDnbKWk5zBPnkX/DAgx09Kbp8rRIRDVsTUVN3vnSowR7ZHkV6/lAiE6c2TQ8HtYb72aCPGW4Jw==";
+        url = "https://registry.npmjs.org/rollup/-/rollup-2.28.1.tgz";
+        sha512 = "DOtVoqOZt3+FjPJWLU8hDIvBjUylc9s6IZvy76XklxzcLvAQLtVAG/bbhsMhcWnYxC0TKKcf1QQ/tg29zeID0Q==";
       };
     };
     "rollup-plugin-babel-4.4.0" = {
@@ -38528,13 +41449,22 @@ let
         sha1 = "6f04063a2d04eba3303a1bbc6765eef63037cf3d";
       };
     };
-    "rss-parser-3.8.0" = {
+    "rss-parser-3.7.1" = {
       name = "rss-parser";
       packageName = "rss-parser";
-      version = "3.8.0";
+      version = "3.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rss-parser/-/rss-parser-3.7.1.tgz";
+        sha512 = "1JKFzLHeteNandmlVBUWgLPmipFEllhdUQlmNvkXd6ju4VFOlGr0VmtlQaxzZoVysG2nbGb8eAtzNqQTxzQ+AQ==";
+      };
+    };
+    "rss-parser-3.9.0" = {
+      name = "rss-parser";
+      packageName = "rss-parser";
+      version = "3.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/rss-parser/-/rss-parser-3.8.0.tgz";
-        sha512 = "EvjM0r3IymXnk+SCUawLhdH36D2WQCwpEfIyvu4hpPswYuMSk/jlCLOcg24OvXwVdcJcEocAlTZVjGNjOOSJXg==";
+        url = "https://registry.npmjs.org/rss-parser/-/rss-parser-3.9.0.tgz";
+        sha512 = "wlRSfGrotOXuWo19Dtl2KmQt7o9i5zzCExUrxpechE0O54BAx7JD+xhWyGumPPqiJj771ndflV3sE3bTHen0HQ==";
       };
     };
     "rsvp-3.6.2" = {
@@ -38636,6 +41566,15 @@ let
         sha1 = "9a084e7b860b17bff3015b92c67a6a336191513a";
       };
     };
+    "rw-1.3.3" = {
+      name = "rw";
+      packageName = "rw";
+      version = "1.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz";
+        sha1 = "3f862dfa91ab766b14885ef4d01124bfda074fb4";
+      };
+    };
     "rwlock-5.0.0" = {
       name = "rwlock";
       packageName = "rwlock";
@@ -38717,6 +41656,24 @@ let
         sha512 = "WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==";
       };
     };
+    "rxjs-6.6.2" = {
+      name = "rxjs";
+      packageName = "rxjs";
+      version = "6.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz";
+        sha512 = "BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==";
+      };
+    };
+    "rxjs-6.6.3" = {
+      name = "rxjs";
+      packageName = "rxjs";
+      version = "6.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz";
+        sha512 = "trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==";
+      };
+    };
     "s.color-0.0.13" = {
       name = "s.color";
       packageName = "s.color";
@@ -38798,6 +41755,15 @@ let
         sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
       };
     };
+    "safe-join-0.1.3" = {
+      name = "safe-join";
+      packageName = "safe-join";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-join/-/safe-join-0.1.3.tgz";
+        sha512 = "Ylh1EWn4pmL57HRV/oi4Ye7ws5AxKkdGpyDdWsvZob5VLH8xnQpG8tqmHD5v4SdKlN7hyrBjYt7Jm3faeC+uJg==";
+      };
+    };
     "safe-json-stringify-1.2.0" = {
       name = "safe-json-stringify";
       packageName = "safe-json-stringify";
@@ -38861,22 +41827,22 @@ let
         sha512 = "y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==";
       };
     };
-    "sass-formatter-0.4.8" = {
-      name = "sass-formatter";
-      packageName = "sass-formatter";
-      version = "0.4.8";
+    "sass-1.26.11" = {
+      name = "sass";
+      packageName = "sass";
+      version = "1.26.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sass-formatter/-/sass-formatter-0.4.8.tgz";
-        sha512 = "jGBx8Q0GPXU3SJIWLP9pcBqxZM6Nv6LKL1xQZ8503mqKWYDeEAmYBCP5duImTGMSl5KUqcmljfT+T1amPs2j9A==";
+        url = "https://registry.npmjs.org/sass/-/sass-1.26.11.tgz";
+        sha512 = "W1l/+vjGjIamsJ6OnTe0K37U2DBO/dgsv2Z4c89XQ8ZOO6l/VwkqwLSqoYzJeJs6CLuGSTRWc91GbQFL3lvrvw==";
       };
     };
-    "sass-lookup-3.0.0" = {
-      name = "sass-lookup";
-      packageName = "sass-lookup";
-      version = "3.0.0";
+    "sass-formatter-0.4.15" = {
+      name = "sass-formatter";
+      packageName = "sass-formatter";
+      version = "0.4.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sass-lookup/-/sass-lookup-3.0.0.tgz";
-        sha512 = "TTsus8CfFRn1N44bvdEai1no6PqdmDiQUiqW5DlpmtT+tYnIt1tXtDIph5KA1efC+LmioJXSnCtUVpcK9gaKIg==";
+        url = "https://registry.npmjs.org/sass-formatter/-/sass-formatter-0.4.15.tgz";
+        sha512 = "EpjwQsya8DmefZawi1sNoCjKw6IGE4z18h9lKd0QPgoGGkis8nqK+mfCMS4B8OaEa0To//71yQyGV1OW1/t60g==";
       };
     };
     "sax-0.5.8" = {
@@ -38933,6 +41899,15 @@ let
         sha512 = "agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ==";
       };
     };
+    "scheduler-0.19.1" = {
+      name = "scheduler";
+      packageName = "scheduler";
+      version = "0.19.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz";
+        sha512 = "n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==";
+      };
+    };
     "schema-utils-1.0.0" = {
       name = "schema-utils";
       packageName = "schema-utils";
@@ -38951,6 +41926,15 @@ let
         sha512 = "0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==";
       };
     };
+    "schema-utils-2.7.1" = {
+      name = "schema-utils";
+      packageName = "schema-utils";
+      version = "2.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz";
+        sha512 = "SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==";
+      };
+    };
     "scoped-regex-1.0.0" = {
       name = "scoped-regex";
       packageName = "scoped-regex";
@@ -39005,22 +41989,13 @@ let
         sha1 = "f0c82d98a3b139a8776a8808050b824431087fca";
       };
     };
-    "seed-random-2.2.0" = {
-      name = "seed-random";
-      packageName = "seed-random";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/seed-random/-/seed-random-2.2.0.tgz";
-        sha1 = "2a9b19e250a817099231a5b99a4daf80b7fbed54";
-      };
-    };
-    "seek-bzip-1.0.5" = {
+    "seek-bzip-1.0.6" = {
       name = "seek-bzip";
       packageName = "seek-bzip";
-      version = "1.0.5";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz";
-        sha1 = "cfe917cb3d274bcffac792758af53173eb1fabdc";
+        url = "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.6.tgz";
+        sha512 = "e1QtP3YL5tWww8uKaOCQ18UxIT2laNBXHjV/S2WYCiK4udiv8lkG89KRIoCjUagnAmCBurjF4zEVX2ByBbnCjQ==";
       };
     };
     "select-1.1.2" = {
@@ -39041,13 +42016,13 @@ let
         sha1 = "625d8658f865af43ec962bfc376a37359a4994ca";
       };
     };
-    "selfsigned-1.10.7" = {
+    "selfsigned-1.10.8" = {
       name = "selfsigned";
       packageName = "selfsigned";
-      version = "1.10.7";
+      version = "1.10.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.7.tgz";
-        sha512 = "8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA==";
+        url = "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz";
+        sha512 = "2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==";
       };
     };
     "semaphore-async-await-1.5.1" = {
@@ -39077,6 +42052,15 @@ let
         sha1 = "b9848f25d6cf36333073ec9ef8856d42f1233e52";
       };
     };
+    "semver-4.3.2" = {
+      name = "semver";
+      packageName = "semver";
+      version = "4.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz";
+        sha1 = "c7a07158a80bedd052355b770d82d6640f803be7";
+      };
+    };
     "semver-4.3.6" = {
       name = "semver";
       packageName = "semver";
@@ -39140,15 +42124,6 @@ let
         sha512 = "4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA==";
       };
     };
-    "semver-5.5.1" = {
-      name = "semver";
-      packageName = "semver";
-      version = "5.5.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/semver/-/semver-5.5.1.tgz";
-        sha512 = "PqpAxfrEhlSUWge8dwIp4tZnQ25DIOthpiaHNIthsjEFQD6EvqUKUDM7L8O2rShkFccYo1VjJR0coWfNkCubRw==";
-      };
-    };
     "semver-5.7.1" = {
       name = "semver";
       packageName = "semver";
@@ -39248,15 +42223,6 @@ let
         sha1 = "92a4969065f9c70c694753d55248fc68f8f652c9";
       };
     };
-    "semver-regex-2.0.0" = {
-      name = "semver-regex";
-      packageName = "semver-regex";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz";
-        sha512 = "mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==";
-      };
-    };
     "semver-truncate-1.1.2" = {
       name = "semver-truncate";
       packageName = "semver-truncate";
@@ -39293,15 +42259,6 @@ let
         sha1 = "be70d8d1be01de61821af13780b50345a4f71abd";
       };
     };
-    "send-0.11.1" = {
-      name = "send";
-      packageName = "send";
-      version = "0.11.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/send/-/send-0.11.1.tgz";
-        sha1 = "1beabfd42f9e2709f99028af3078ac12b47092d5";
-      };
-    };
     "send-0.17.1" = {
       name = "send";
       packageName = "send";
@@ -39311,13 +42268,13 @@ let
         sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
       };
     };
-    "sentence-case-2.1.1" = {
+    "sentence-case-3.0.3" = {
       name = "sentence-case";
       packageName = "sentence-case";
-      version = "2.1.1";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sentence-case/-/sentence-case-2.1.1.tgz";
-        sha1 = "1f6e2dda39c168bf92d13f86d4a918933f667ed4";
+        url = "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.3.tgz";
+        sha512 = "ZPr4dgTcNkEfcGOMFQyDdJrTU9uQO1nb1cjf+nuzb6FxgMDgKddZOM29qEsB7jvsZSMruLRcL2KfM4ypKpa0LA==";
       };
     };
     "sentence-splitter-2.3.2" = {
@@ -39347,13 +42304,13 @@ let
         sha1 = "e433676932020454e3c14870c517ea1de56c2fa4";
       };
     };
-    "sequencify-0.0.7" = {
-      name = "sequencify";
-      packageName = "sequencify";
-      version = "0.0.7";
+    "seq-0.3.5" = {
+      name = "seq";
+      packageName = "seq";
+      version = "0.3.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sequencify/-/sequencify-0.0.7.tgz";
-        sha1 = "90cff19d02e07027fd767f5ead3e7b95d1e7380c";
+        url = "https://registry.npmjs.org/seq/-/seq-0.3.5.tgz";
+        sha1 = "ae02af3a424793d8ccbf212d69174e0c54dffe38";
       };
     };
     "serialize-error-7.0.1" = {
@@ -39365,13 +42322,22 @@ let
         sha512 = "8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==";
       };
     };
-    "serialize-javascript-3.1.0" = {
+    "serialize-javascript-4.0.0" = {
       name = "serialize-javascript";
       packageName = "serialize-javascript";
-      version = "3.1.0";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz";
+        sha512 = "GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==";
+      };
+    };
+    "serialize-javascript-5.0.1" = {
+      name = "serialize-javascript";
+      packageName = "serialize-javascript";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz";
-        sha512 = "JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==";
+        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz";
+        sha512 = "SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==";
       };
     };
     "serialize-to-js-3.1.1" = {
@@ -39419,15 +42385,6 @@ let
         sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
       };
     };
-    "serve-static-1.8.1" = {
-      name = "serve-static";
-      packageName = "serve-static";
-      version = "1.8.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/serve-static/-/serve-static-1.8.1.tgz";
-        sha1 = "08fabd39999f050fc311443f46d5888a77ecfc7c";
-      };
-    };
     "server-destroy-1.0.1" = {
       name = "server-destroy";
       packageName = "server-destroy";
@@ -39437,13 +42394,13 @@ let
         sha1 = "f13bf928e42b9c3e79383e61cc3998b5d14e6cdd";
       };
     };
-    "service-runner-2.7.7" = {
+    "service-runner-2.7.8" = {
       name = "service-runner";
       packageName = "service-runner";
-      version = "2.7.7";
+      version = "2.7.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/service-runner/-/service-runner-2.7.7.tgz";
-        sha512 = "/fxWWDXThY+Jm6UEWY+DNqW41ahjrYYGLsUiMqqY2+lYJ1JtcwC5tzWD19MlwJESlUjCDYH8l7v/g+9MuASXAQ==";
+        url = "https://registry.npmjs.org/service-runner/-/service-runner-2.7.8.tgz";
+        sha512 = "YZBOj9wRzWEiBgIfrvq7OFVf9wr0u/llyeIsZjrd6tyrjJz2ywB9DiGpWb7/+MVswi970bgAw6+OUCq+9luyuw==";
       };
     };
     "set-blocking-1.0.0" = {
@@ -39518,6 +42475,15 @@ let
         sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
       };
     };
+    "setprototypeof-1.2.0" = {
+      name = "setprototypeof";
+      packageName = "setprototypeof";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz";
+        sha512 = "E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==";
+      };
+    };
     "seventh-0.7.35" = {
       name = "seventh";
       packageName = "seventh";
@@ -39563,6 +42529,15 @@ let
         sha1 = "415f42702d73d810330292cc5ee86eae1a11a170";
       };
     };
+    "shallowequal-1.1.0" = {
+      name = "shallowequal";
+      packageName = "shallowequal";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shallowequal/-/shallowequal-1.1.0.tgz";
+        sha512 = "y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ==";
+      };
+    };
     "sharp-0.23.4" = {
       name = "sharp";
       packageName = "sharp";
@@ -39770,13 +42745,22 @@ let
         sha1 = "c27415a9e458f2fed39b27cf8eb37c003782b431";
       };
     };
-    "side-channel-1.0.2" = {
+    "side-channel-1.0.3" = {
       name = "side-channel";
       packageName = "side-channel";
-      version = "1.0.2";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/side-channel/-/side-channel-1.0.3.tgz";
+        sha512 = "A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g==";
+      };
+    };
+    "sift-7.0.1" = {
+      name = "sift";
+      packageName = "sift";
+      version = "7.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz";
-        sha512 = "7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==";
+        url = "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz";
+        sha512 = "oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g==";
       };
     };
     "sigmund-1.0.1" = {
@@ -39788,13 +42772,13 @@ let
         sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590";
       };
     };
-    "sign-addon-2.0.5" = {
+    "sign-addon-3.1.0" = {
       name = "sign-addon";
       packageName = "sign-addon";
-      version = "2.0.5";
+      version = "3.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sign-addon/-/sign-addon-2.0.5.tgz";
-        sha512 = "dVjIWe1VJ2VQCdScREWXWECmJhgjpJMqwPKkW+L78PPx2Jyr/t+//kNHqG1hYrmIsvQN7vGjAjv9s7ix0vw0zA==";
+        url = "https://registry.npmjs.org/sign-addon/-/sign-addon-3.1.0.tgz";
+        sha512 = "zZ7nKc5/3QWM3skYBosGDvYQf2jkKhW2u8BELrZoN1wgCSOnwsV9T47Vx9uaNbA3CyZ+V9XSA0tDVHoV1QfVPw==";
       };
     };
     "signal-exit-3.0.3" = {
@@ -39824,13 +42808,13 @@ let
         sha1 = "50a9989da7c98c2c61dad119bc97470ef8528129";
       };
     };
-    "simple-concat-1.0.0" = {
+    "simple-concat-1.0.1" = {
       name = "simple-concat";
       packageName = "simple-concat";
-      version = "1.0.0";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.0.tgz";
-        sha1 = "7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6";
+        url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz";
+        sha512 = "cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==";
       };
     };
     "simple-get-2.8.1" = {
@@ -39869,6 +42853,15 @@ let
         sha512 = "xauHm1YqCTom1sC9eOjfq3/9RKiUA9iPnxBbrY2DdL8l4ADMu0jjM5l5lphQP5YWNqAL2aXC/OeuQ76vHtW5fg==";
       };
     };
+    "simple-git-2.20.1" = {
+      name = "simple-git";
+      packageName = "simple-git";
+      version = "2.20.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-git/-/simple-git-2.20.1.tgz";
+        sha512 = "aa9s2ZLjXlHCVGbDXQLInMLvLkxKEclqMU9X5HMXi3tLWLxbWObz1UgtyZha6ocHarQtFp0OjQW9KHVR1g6wbA==";
+      };
+    };
     "simple-git-2.5.0" = {
       name = "simple-git";
       packageName = "simple-git";
@@ -40112,6 +43105,15 @@ let
         sha1 = "56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707";
       };
     };
+    "slugify-1.4.5" = {
+      name = "slugify";
+      packageName = "slugify";
+      version = "1.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slugify/-/slugify-1.4.5.tgz";
+        sha512 = "WpECLAgYaxHoEAJ8Q1Lo8HOs1ngn7LN7QjXgOLbmmfkcWvosyk4ZTXkTzKyhngK640USTZUlgoQJfED1kz5fnQ==";
+      };
+    };
     "smart-buffer-4.1.0" = {
       name = "smart-buffer";
       packageName = "smart-buffer";
@@ -40157,13 +43159,13 @@ let
         sha512 = "g0w2Ft4RJl+F/1/tQvA4BUsH09s+RNd0RRa+So24Inv5yzce5xUnPzxlEWNUBG5TwQjfKDZSFWrf2rXz+e1Q2g==";
       };
     };
-    "snake-case-2.1.0" = {
+    "snake-case-3.0.3" = {
       name = "snake-case";
       packageName = "snake-case";
-      version = "2.1.0";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snake-case/-/snake-case-2.1.0.tgz";
-        sha1 = "41bdb1b73f30ec66a04d4e2cad1b76387d4d6d9f";
+        url = "https://registry.npmjs.org/snake-case/-/snake-case-3.0.3.tgz";
+        sha512 = "WM1sIXEO+rsAHBKjGf/6R1HBBcgbncKS08d2Aqec/mrDSpU80SiOU41hO7ny6DToHSyrlwTYzQBIK1FPSx4Y3Q==";
       };
     };
     "snapdragon-0.8.2" = {
@@ -40220,22 +43222,31 @@ let
         sha1 = "6541184cc90aeea6c6e7b35e2659082443c66198";
       };
     };
-    "snyk-config-3.1.0" = {
+    "snyk-config-3.1.1" = {
       name = "snyk-config";
       packageName = "snyk-config";
-      version = "3.1.0";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-config/-/snyk-config-3.1.0.tgz";
-        sha512 = "3UlyogA67/9WOssJ7s4d7gqWQRWyO/LbgdBBNMhhmFDKa7eTUSW+A782CVHgyDSJZ2kNANcMWwMiOL+h3p6zQg==";
+        url = "https://registry.npmjs.org/snyk-config/-/snyk-config-3.1.1.tgz";
+        sha512 = "wwrMIEDozfLJ8LmakCsCC1FQ0siIX5icCQPCbUKKgRbeVsZ27NjPJs37BpTXX4rcHkaWpe8TbH3yOtp23qmszg==";
       };
     };
-    "snyk-docker-plugin-3.10.0" = {
+    "snyk-cpp-plugin-1.5.0" = {
+      name = "snyk-cpp-plugin";
+      packageName = "snyk-cpp-plugin";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snyk-cpp-plugin/-/snyk-cpp-plugin-1.5.0.tgz";
+        sha512 = "nBZ0cBmpT4RVJUFzYydQJOxwjcdXk7NtRJE1UIIOafQa2FcvIl3GBezfrCJ6pu61svOAf5r8Qi/likx6F15K1A==";
+      };
+    };
+    "snyk-docker-plugin-3.21.0" = {
       name = "snyk-docker-plugin";
       packageName = "snyk-docker-plugin";
-      version = "3.10.0";
+      version = "3.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-docker-plugin/-/snyk-docker-plugin-3.10.0.tgz";
-        sha512 = "0OIIqBOq76wBZ/09oB+L+5CdyNXEeDAgLH92TRydEj5iuJwjddAfzWtoqeCIeh3d09DidsHBRP8mMhXKAht7Sg==";
+        url = "https://registry.npmjs.org/snyk-docker-plugin/-/snyk-docker-plugin-3.21.0.tgz";
+        sha512 = "A7oJS3QGR7bwm1qeeczCb8PDfi8go1KM6VWph/drJHBQ7JxVKKLb3j4AzrMmIM96mGZFbmyNOL4pznwumaOM8g==";
       };
     };
     "snyk-go-parser-1.4.1" = {
@@ -40247,22 +43258,22 @@ let
         sha512 = "StU3uHB85VMEkcgXta63M0Fgd+9cs5sMCjQXTBoYTdE4dxarPn7U67yCuwkRRdZdny1ZXtzfY8LKns9i0+dy9w==";
       };
     };
-    "snyk-go-plugin-1.14.2" = {
+    "snyk-go-plugin-1.16.2" = {
       name = "snyk-go-plugin";
       packageName = "snyk-go-plugin";
-      version = "1.14.2";
+      version = "1.16.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-go-plugin/-/snyk-go-plugin-1.14.2.tgz";
-        sha512 = "r/uaM3gk/RF7m/VGYswxlnA6I+kMgK3eVPsPyf7400BhqF8noh8K7v10CEg67mHA4JM0l7dZASqejr/5kKw9ZQ==";
+        url = "https://registry.npmjs.org/snyk-go-plugin/-/snyk-go-plugin-1.16.2.tgz";
+        sha512 = "FAM56z3bl1iuxeqkCEA/jyZ2hpwkQK8xQxQbhR+QppEK5lole7w1PQyWYgZAJ9oRY/BU32zdRAJwGuZbhk7G2Q==";
       };
     };
-    "snyk-gradle-plugin-3.4.0" = {
+    "snyk-gradle-plugin-3.6.3" = {
       name = "snyk-gradle-plugin";
       packageName = "snyk-gradle-plugin";
-      version = "3.4.0";
+      version = "3.6.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.4.0.tgz";
-        sha512 = "J/yABmPJstHir++eFw65amm0Y0C7b9WH+tW4Tm90Lo3dj+p/9JDMuVimzHXpkwmkIZI2RPd58igs5XdSDFh6Aw==";
+        url = "https://registry.npmjs.org/snyk-gradle-plugin/-/snyk-gradle-plugin-3.6.3.tgz";
+        sha512 = "j/eQSLSsK3DHmvVX2fNig4+ugYrKlCOV8Xvo6OYFkNzhMpdyNFiGWTS1uyP1HH75Gyc78MaLANMgjlSYePukzQ==";
       };
     };
     "snyk-module-1.9.1" = {
@@ -40292,31 +43303,31 @@ let
         sha512 = "HHuOYEAACpUpkFgU8HT57mmxmonaJ4O3YADoSkVhnhkmJ+AowqZyJOau703dYHNrq2DvQ7qYw81H7yyxS1Nfjw==";
       };
     };
-    "snyk-mvn-plugin-2.17.0" = {
+    "snyk-mvn-plugin-2.19.4" = {
       name = "snyk-mvn-plugin";
       packageName = "snyk-mvn-plugin";
-      version = "2.17.0";
+      version = "2.19.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-2.17.0.tgz";
-        sha512 = "Yl/d7CPJ0LRgHL5dciz/MbjnmsnwAEHA3uBE7Rr5bxZRJ1/ssot9e2OC9ORLJztK86Dggd9ReFocrzD5CWT5PA==";
+        url = "https://registry.npmjs.org/snyk-mvn-plugin/-/snyk-mvn-plugin-2.19.4.tgz";
+        sha512 = "kYPUKOugnNd31PFqx1YHJTo90pospELYHME4AzBx8dkMDgs5ZPjAmQXSxegQ3AMUqfqcETMSTzlKHe6uHujI8A==";
       };
     };
-    "snyk-nodejs-lockfile-parser-1.22.0" = {
+    "snyk-nodejs-lockfile-parser-1.28.1" = {
       name = "snyk-nodejs-lockfile-parser";
       packageName = "snyk-nodejs-lockfile-parser";
-      version = "1.22.0";
+      version = "1.28.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.22.0.tgz";
-        sha512 = "l6jLoJxqcIIkQopSdQuAstXdMw5AIgLu+uGc5CYpHyw8fYqOwna8rawwofNeGuwJAAv4nEiNiexeYaR88OCq6Q==";
+        url = "https://registry.npmjs.org/snyk-nodejs-lockfile-parser/-/snyk-nodejs-lockfile-parser-1.28.1.tgz";
+        sha512 = "0zbmtidYLI2ia/DQD4rZm2YKrhfHLvHlVBdF2cMAGPwhOoKW5ovG9eBO4wNQdvjxNi7b4VeUyAj8SfuhjDraDQ==";
       };
     };
-    "snyk-nuget-plugin-1.18.1" = {
+    "snyk-nuget-plugin-1.19.3" = {
       name = "snyk-nuget-plugin";
       packageName = "snyk-nuget-plugin";
-      version = "1.18.1";
+      version = "1.19.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-nuget-plugin/-/snyk-nuget-plugin-1.18.1.tgz";
-        sha512 = "Bq+IzbyewxIrUhgdFaDKS5wCNixERC7QBitKsZGM3uCOr9fJM8rr5qg5SS9UIU7eyeKvzuVO/V1yDzjo1cKvUw==";
+        url = "https://registry.npmjs.org/snyk-nuget-plugin/-/snyk-nuget-plugin-1.19.3.tgz";
+        sha512 = "KwKoMumwcXVz/DQH80ifXfX7CTnm29bmHJ2fczjCGohxLGb4EKBGQtA3t7K98O7lTISQGgXDxnWIaM9ZXkxPdw==";
       };
     };
     "snyk-paket-parser-1.6.0" = {
@@ -40328,13 +43339,13 @@ let
         sha512 = "6htFynjBe/nakclEHUZ1A3j5Eu32/0pNve5Qm4MFn3YQmJgj7UcAO8hdyK3QfzEY29/kAv/rkJQg+SKshn+N9Q==";
       };
     };
-    "snyk-php-plugin-1.9.0" = {
+    "snyk-php-plugin-1.9.2" = {
       name = "snyk-php-plugin";
       packageName = "snyk-php-plugin";
-      version = "1.9.0";
+      version = "1.9.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/snyk-php-plugin/-/snyk-php-plugin-1.9.0.tgz";
-        sha512 = "uORrEoC47dw0ITZYu5vKqQtmXnbbQs+ZkWeo5bRHGdf10W8e4rNr1S1R4bReiLrSbSisYhVHeFMkdOAiLIPJVQ==";
+        url = "https://registry.npmjs.org/snyk-php-plugin/-/snyk-php-plugin-1.9.2.tgz";
+        sha512 = "IQcdsQBqqXVRY5DatlI7ASy4flbhtU2V7cr4P2rK9rkFnVHO6LHcitwKXVZa9ocdOmpZDzk7U6iwHJkVFcR6OA==";
       };
     };
     "snyk-policy-1.14.1" = {
@@ -40490,15 +43501,6 @@ let
         sha512 = "11hMgzL+WCLWf1uFtHSNvliI++tcRUWdoeYuwIl+Axvwy9z2gQM+7nJyN3STj1tLj5JyIUH8/gpDGxzAlDdi0A==";
       };
     };
-    "socket.io-stream-0.9.1" = {
-      name = "socket.io-stream";
-      packageName = "socket.io-stream";
-      version = "0.9.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/socket.io-stream/-/socket.io-stream-0.9.1.tgz";
-        sha1 = "421258316288b83ac693b0d43efd09d6d43aba97";
-      };
-    };
     "sockjs-0.3.20" = {
       name = "sockjs";
       packageName = "sockjs";
@@ -40526,6 +43528,15 @@ let
         sha512 = "o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==";
       };
     };
+    "socks-2.4.4" = {
+      name = "socks";
+      packageName = "socks";
+      version = "2.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/socks/-/socks-2.4.4.tgz";
+        sha512 = "7LmHN4IHj1Vpd/k8D872VGCHJ6yIVyeFkfIBExRmGPYQ/kdUkpdg9eKh9oOzYYYKQhuxavayJHTnmBG+EzluUA==";
+      };
+    };
     "socks-proxy-agent-4.0.2" = {
       name = "socks-proxy-agent";
       packageName = "socks-proxy-agent";
@@ -40625,6 +43636,15 @@ let
         sha512 = "mbkiyA2clyfwAyOFIzMvsV6ny2KrKEIhFVASJxWfsmgfUEymgLIS2MLHHcGIQMkrcKhPErRaMR5Dzv0EEn+BWg==";
       };
     };
+    "sodium-native-3.2.0" = {
+      name = "sodium-native";
+      packageName = "sodium-native";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sodium-native/-/sodium-native-3.2.0.tgz";
+        sha512 = "8aq/vQSegLwsRch8Sb/Bpf9aAqlNe5dp0+NVhb9UjHv42zDZ0D5zX3wBRUbXK9Ejum9uZE6DUgT4vVLlUFRBWg==";
+      };
+    };
     "sodium-universal-2.0.0" = {
       name = "sodium-universal";
       packageName = "sodium-universal";
@@ -40634,13 +43654,13 @@ let
         sha512 = "csdVyakzHJRyCevY4aZC2Eacda8paf+4nmRGF2N7KxCLKY2Ajn72JsExaQlJQ2BiXJncp44p3T+b80cU+2TTsg==";
       };
     };
-    "sonic-boom-1.0.1" = {
+    "sonic-boom-1.1.0" = {
       name = "sonic-boom";
       packageName = "sonic-boom";
-      version = "1.0.1";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.0.1.tgz";
-        sha512 = "o9tx+bonVEXSaPtptyXQXpP8l6UV9Bi3im2geZskvWw2a/o/hrbWI7EBbbv+rOx6Hubnzun9GgH4WfbgEA3MFQ==";
+        url = "https://registry.npmjs.org/sonic-boom/-/sonic-boom-1.1.0.tgz";
+        sha512 = "JyOf+Xt7GBN4tAic/DD1Bitw6OMgSHAnswhPeOiLpfRoSjPNjEIi73UF3OxHzhSNn9WavxGuCZzprFCGFSNwog==";
       };
     };
     "sorcery-0.10.0" = {
@@ -40688,13 +43708,13 @@ let
         sha512 = "e2RHeY1iM6dT9od3RoqeJSyz3O7naNFsGy34+EFEcwghjAncuOXC2/Xwq87S4FbypqLVp6PcizYEsGEGsGIDXA==";
       };
     };
-    "sorted-array-functions-1.2.0" = {
+    "sorted-array-functions-1.3.0" = {
       name = "sorted-array-functions";
       packageName = "sorted-array-functions";
-      version = "1.2.0";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.2.0.tgz";
-        sha512 = "sWpjPhIZJtqO77GN+LD8dDsDKcWZ9GCOJNqKzi1tvtjGIzwfoyuRH8S0psunmc6Z5P+qfDqztSbwYR5X/e1UTg==";
+        url = "https://registry.npmjs.org/sorted-array-functions/-/sorted-array-functions-1.3.0.tgz";
+        sha512 = "2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA==";
       };
     };
     "sorted-immutable-list-1.1.0" = {
@@ -40796,15 +43816,6 @@ let
         sha512 = "Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==";
       };
     };
-    "source-map-support-0.5.16" = {
-      name = "source-map-support";
-      packageName = "source-map-support";
-      version = "0.5.16";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz";
-        sha512 = "efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==";
-      };
-    };
     "source-map-support-0.5.19" = {
       name = "source-map-support";
       packageName = "source-map-support";
@@ -40877,13 +43888,13 @@ let
         sha1 = "ff4ae6e68656056ba4b3e792ab3334d38273ca11";
       };
     };
-    "spawn-please-0.3.0" = {
+    "spawn-please-0.4.1" = {
       name = "spawn-please";
       packageName = "spawn-please";
-      version = "0.3.0";
+      version = "0.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spawn-please/-/spawn-please-0.3.0.tgz";
-        sha1 = "db338ec4cff63abc69f1d0e08cee9eb8bebd9d11";
+        url = "https://registry.npmjs.org/spawn-please/-/spawn-please-0.4.1.tgz";
+        sha512 = "YJwFL/shPyY5fddOU1XXkShCDNVkMDGKsGlpB91FKOkRGa+pVAe+A5/CUUwLrZ3e89prqbTXaGapCzTlmc3HaA==";
       };
     };
     "spawn-sync-1.0.15" = {
@@ -40931,13 +43942,13 @@ let
         sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==";
       };
     };
-    "spdx-license-ids-3.0.5" = {
+    "spdx-license-ids-3.0.6" = {
       name = "spdx-license-ids";
       packageName = "spdx-license-ids";
-      version = "3.0.5";
+      version = "3.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz";
-        sha512 = "J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==";
+        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.6.tgz";
+        sha512 = "+orQK83kyMva3WyPf59k1+Y525csj5JejicWut55zeTWANuN17qSiSLUXWtzHeNWORSvT7GLDJ/E/XiIWoXBTw==";
       };
     };
     "spdy-1.32.5" = {
@@ -41012,6 +44023,15 @@ let
         sha512 = "0rfBDPVLzvDbMUKrFWvF6kvtXxllXGZRkFL0aCWJ5y8uXlEfZDo6IEPACZwJbKt/fGqFjJLJRHnG62vJmLLpRA==";
       };
     };
+    "spiro-2.0.0" = {
+      name = "spiro";
+      packageName = "spiro";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spiro/-/spiro-2.0.0.tgz";
+        sha512 = "KPWXN+OmQdjZPCMGRkE2hsbcY4Y4UJxjn+qTw4rsJ49n8VN6EqPk0UOOkNihXEl3JEqPQxcrDQebu9YPn9Ad4w==";
+      };
+    };
     "split-0.2.10" = {
       name = "split";
       packageName = "split";
@@ -41102,6 +44122,15 @@ let
         sha1 = "825236a78d52a18ff912a631ad3034c15ded5fe3";
       };
     };
+    "split2-1.1.1" = {
+      name = "split2";
+      packageName = "split2";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split2/-/split2-1.1.1.tgz";
+        sha1 = "162d9b18865f02ab2f2ad9585522db9b54c481f9";
+      };
+    };
     "split2-2.2.0" = {
       name = "split2";
       packageName = "split2";
@@ -41111,13 +44140,13 @@ let
         sha512 = "RAb22TG39LhI31MbreBgIuKiIKhVsawfTgEGqKHTK87aG+ul/PB8Sqoi3I7kVdRWiCfrKxK3uo4/YUkpNvhPbw==";
       };
     };
-    "split2-3.1.1" = {
+    "split2-3.2.2" = {
       name = "split2";
       packageName = "split2";
-      version = "3.1.1";
+      version = "3.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/split2/-/split2-3.1.1.tgz";
-        sha512 = "emNzr1s7ruq4N+1993yht631/JH+jaj0NYBosuKmLcq+JkGQ9MmTw1RB1fGaTCzUuseRIClrlSLHRNYGwWQ58Q==";
+        url = "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz";
+        sha512 = "9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==";
       };
     };
     "sprintf-0.1.5" = {
@@ -41156,22 +44185,31 @@ let
         sha512 = "/0d2YTn8ZFVpIPAU230S9ZLF8WDkSSRWvh/UOLM7zzvkCchum1TtouRgyV8OfgOaYilSGU4lSSqzwBXJVlAwUw==";
       };
     };
-    "sqlite3-4.1.1" = {
+    "sqlite3-4.2.0" = {
       name = "sqlite3";
       packageName = "sqlite3";
-      version = "4.1.1";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sqlite3/-/sqlite3-4.1.1.tgz";
-        sha512 = "CvT5XY+MWnn0HkbwVKJAyWEMfzpAPwnTiB3TobA5Mri44SrTovmmh499NPQP+gatkeOipqPlBLel7rn4E/PCQg==";
+        url = "https://registry.npmjs.org/sqlite3/-/sqlite3-4.2.0.tgz";
+        sha512 = "roEOz41hxui2Q7uYnWsjMOTry6TcNUNmp8audCx18gF10P2NknwdpF+E+HKvz/F2NvPKGGBF4NGc+ZPQ+AABwg==";
       };
     };
-    "sqlite3-4.2.0" = {
+    "sqlite3-5.0.0" = {
       name = "sqlite3";
       packageName = "sqlite3";
-      version = "4.2.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sqlite3/-/sqlite3-4.2.0.tgz";
-        sha512 = "roEOz41hxui2Q7uYnWsjMOTry6TcNUNmp8audCx18gF10P2NknwdpF+E+HKvz/F2NvPKGGBF4NGc+ZPQ+AABwg==";
+        url = "https://registry.npmjs.org/sqlite3/-/sqlite3-5.0.0.tgz";
+        sha512 = "rjvqHFUaSGnzxDy2AHCwhHy6Zp6MNJzCPGYju4kD8yi6bze4d1/zMTg6C7JI49b7/EM7jKMTvyfN/4ylBKdwfw==";
+      };
+    };
+    "sqlstring-2.3.1" = {
+      name = "sqlstring";
+      packageName = "sqlstring";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz";
+        sha1 = "475393ff9e91479aea62dcaf0ca3d14983a7fb40";
       };
     };
     "srt2vtt-1.3.1" = {
@@ -41228,13 +44266,22 @@ let
         sha512 = "UF+4+khFXILLBqtu9HfrpUwYnDXIdAyJe3u9X4GrApuoakxuSKwaUGakUxLPyo6COyV2brMqufUgf+fDOI8Ftw==";
       };
     };
-    "ssb-config-3.4.4" = {
+    "ssb-config-3.4.5" = {
       name = "ssb-config";
       packageName = "ssb-config";
-      version = "3.4.4";
+      version = "3.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-config/-/ssb-config-3.4.4.tgz";
-        sha512 = "J3fsWb5nS6PqObZLW2tclEz/bkRQ5pcF9goXanYGVsoH71F6W4f5sOnck9szeubI8srNaiL9pa0kPRv/lojHiw==";
+        url = "https://registry.npmjs.org/ssb-config/-/ssb-config-3.4.5.tgz";
+        sha512 = "DyCrGIsl01GkdHreAkkaDUorV7SAgRSqKn/htg4ZwbvH6g0NAdOi84x/8ehzDuojPev78hbkWjZXgIqi+/Jo0g==";
+      };
+    };
+    "ssb-db-20.3.0" = {
+      name = "ssb-db";
+      packageName = "ssb-db";
+      version = "20.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ssb-db/-/ssb-db-20.3.0.tgz";
+        sha512 = "JOXCrS6k3+/kuOcFmZwc9vxPN55Czb7McFs5KEYA+/phykPwQ6e3hwjMT5YrVzSirCf8ptPS/mpOsCDog5Z2dg==";
       };
     };
     "ssb-ebt-5.6.7" = {
@@ -41246,13 +44293,13 @@ let
         sha512 = "ifPgPNmDE8EKuuoqtXibwgYNtDZNry7sJL1epSUb3XgQr62bUV31N9R5LHKDsI2kx96OgWRwWY2PfZ7vf/hU8Q==";
       };
     };
-    "ssb-friends-4.1.4" = {
+    "ssb-friends-4.2.1" = {
       name = "ssb-friends";
       packageName = "ssb-friends";
-      version = "4.1.4";
+      version = "4.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-friends/-/ssb-friends-4.1.4.tgz";
-        sha512 = "rjQP2rLocqnUoiI+SSUehLQwMB4H5TKD13hfnweGVIgAWw4mylbl9bPOuXtTU23ubPkdbSNadlp3uivsCkWLxw==";
+        url = "https://registry.npmjs.org/ssb-friends/-/ssb-friends-4.2.1.tgz";
+        sha512 = "DgArf97p2MQxOKn9jWmyxA/6HUiyZkk5QFYohS/qo7CAFJzBJobgoJuvEGjzCgszJAZ/WmGwjYTrKTqFHwMEuQ==";
       };
     };
     "ssb-git-0.5.0" = {
@@ -41282,13 +44329,13 @@ let
         sha512 = "lbizlDBCtOOnbnz7zS81NOtnAyHnXu9E3gxrAJHZe7oyxINRI7IpQ8J79to9aXzkb8+2M32R8K4whmsAHGvJAg==";
       };
     };
-    "ssb-invite-2.1.4" = {
+    "ssb-invite-2.1.6" = {
       name = "ssb-invite";
       packageName = "ssb-invite";
-      version = "2.1.4";
+      version = "2.1.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-invite/-/ssb-invite-2.1.4.tgz";
-        sha512 = "bq4Iow4DOfsfWKE6otgD2+sWd59PcLW/WUbwZdJlukaT2m0nazPu2s8k9xX/95p+pJS7xkLyywHxMzytiKRqTg==";
+        url = "https://registry.npmjs.org/ssb-invite/-/ssb-invite-2.1.6.tgz";
+        sha512 = "cR2sMFu27K7JNAiHCJ5qsp5kihlxi0/KftJ58gFzQbC8kLQ9iLLFUVDvQMi/Qxubf6Xs37Qh49FH3RzPLGt9ag==";
       };
     };
     "ssb-issues-1.0.0" = {
@@ -41408,13 +44455,13 @@ let
         sha512 = "iRXjeI0sbRbgMwaKg+poqhHSH7GvUVgJ+8ysi8q7Hjj4wHkczLGAOyVjnyhjF+ErPDFn9kXN+46joneKqSgEDg==";
       };
     };
-    "ssb-ooo-1.3.2" = {
+    "ssb-ooo-1.3.3" = {
       name = "ssb-ooo";
       packageName = "ssb-ooo";
-      version = "1.3.2";
+      version = "1.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-ooo/-/ssb-ooo-1.3.2.tgz";
-        sha512 = "JBH0cDaqQ/WRZMfoyn/fNLDrbrs5w2xnSno/VUDWGhc+SX+3/h6zFK7VvCjdzEATlZ/D7VRkXMYrOedSIVIKwA==";
+        url = "https://registry.npmjs.org/ssb-ooo/-/ssb-ooo-1.3.3.tgz";
+        sha512 = "6yI5XBpBHkwFdAELpKwlf1C1V32Z0/AKEJYsoU7lk+Eh88blv8LKydo4a1DnjMiPy4ywn4lRU5oayQaPE5MRtQ==";
       };
     };
     "ssb-plugins-1.0.4" = {
@@ -41444,22 +44491,22 @@ let
         sha1 = "dfd30cd50eecd8546bd4aa7f06e7c8f501c08118";
       };
     };
-    "ssb-query-2.4.3" = {
+    "ssb-query-2.4.5" = {
       name = "ssb-query";
       packageName = "ssb-query";
-      version = "2.4.3";
+      version = "2.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-query/-/ssb-query-2.4.3.tgz";
-        sha512 = "Ktuk6Bl3s70gueDH7FBXzI8KHsf+h+n82J6Id33NTwP80u5iSDV5vXK2f7/He/cmP3uUVUI5ogJda7ShmrDIug==";
+        url = "https://registry.npmjs.org/ssb-query/-/ssb-query-2.4.5.tgz";
+        sha512 = "/QX6+DJkghqq1ZTbgYpOvaI+gx2O7ee1TRUM9yiOlVjh1XAQBevcBj0zO+W3TsNllX86urqBrySd/AEfFfUpIw==";
       };
     };
-    "ssb-ref-2.13.9" = {
+    "ssb-ref-2.14.2" = {
       name = "ssb-ref";
       packageName = "ssb-ref";
-      version = "2.13.9";
+      version = "2.14.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-ref/-/ssb-ref-2.13.9.tgz";
-        sha512 = "TfatNqLvoP+eW/pMIbCmNcaoDq4R2k8jCtWkwDKx4AtluN/LwtyP931d5Mh+2gmzA04W7kxkr6f5ENGgdadMYg==";
+        url = "https://registry.npmjs.org/ssb-ref/-/ssb-ref-2.14.2.tgz";
+        sha512 = "pPkwNX/Rrr0bV/8d8dC/f+T/LcKA9ZF1SGHrUuVpoqo8iE3gLMu0Zz5TRoUReXKW6+ehNzUzIjcpYTw+wWeZkA==";
       };
     };
     "ssb-replicate-1.3.2" = {
@@ -41480,6 +44527,15 @@ let
         sha512 = "Z4jBj917W+dKAiDglwxCpWm8vINOMtkpHQIgk50NQTb5jHqHI5Rcyiy7EO0uRcWwRWqXi1ZwOTEFVyLyyuittA==";
       };
     };
+    "ssb-validate-4.1.3" = {
+      name = "ssb-validate";
+      packageName = "ssb-validate";
+      version = "4.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ssb-validate/-/ssb-validate-4.1.3.tgz";
+        sha512 = "g7tOs4nCwHk+G/FZ1N2RmaCkaTNS9hoh/BBP12EH8Jf1PWlkOJtTCak78FHjSTAGFCq/i8Y1ZFQXPNKSK7p3wg==";
+      };
+    };
     "ssb-ws-6.2.3" = {
       name = "ssb-ws";
       packageName = "ssb-ws";
@@ -41606,6 +44662,15 @@ let
         sha1 = "e923598a9be51e617682cb21cf1b2818a449ada2";
       };
     };
+    "stack-generator-2.0.5" = {
+      name = "stack-generator";
+      packageName = "stack-generator";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stack-generator/-/stack-generator-2.0.5.tgz";
+        sha512 = "/t1ebrbHkrLrDuNMdeAcsvynWgoH/i4o8EGGfX7dEYDoTXOYVAkEpFdtshlvabzc6JlJ8Kf9YdFEoz7JkzGN9Q==";
+      };
+    };
     "stack-trace-0.0.10" = {
       name = "stack-trace";
       packageName = "stack-trace";
@@ -41624,6 +44689,24 @@ let
         sha1 = "a8f6eaeca90674c333e7c43953f275b451510695";
       };
     };
+    "stack-utils-2.0.2" = {
+      name = "stack-utils";
+      packageName = "stack-utils";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.2.tgz";
+        sha512 = "0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg==";
+      };
+    };
+    "stackframe-1.2.0" = {
+      name = "stackframe";
+      packageName = "stackframe";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stackframe/-/stackframe-1.2.0.tgz";
+        sha512 = "GrdeshiRmS1YLMYgzF16olf2jJ/IzxXY9lhKOskuVziubpTYcYqyOwYeJKzQkwy7uN0fYSsbsC4RQaXf9LCrYA==";
+      };
+    };
     "stampit-1.2.0" = {
       name = "stampit";
       packageName = "stampit";
@@ -41651,13 +44734,13 @@ let
         sha512 = "d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ==";
       };
     };
-    "static-eval-2.0.5" = {
+    "static-eval-2.1.0" = {
       name = "static-eval";
       packageName = "static-eval";
-      version = "2.0.5";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/static-eval/-/static-eval-2.0.5.tgz";
-        sha512 = "nNbV6LbGtMBgv7e9LFkt5JV8RVlRsyJrphfAt9tOtBBW/SfnzZDf2KnS72an8e434A+9e/BmJuTxeGPvrAK7KA==";
+        url = "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz";
+        sha512 = "agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==";
       };
     };
     "static-extend-0.1.2" = {
@@ -41678,6 +44761,15 @@ let
         sha512 = "D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==";
       };
     };
+    "static-server-2.2.1" = {
+      name = "static-server";
+      packageName = "static-server";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/static-server/-/static-server-2.2.1.tgz";
+        sha512 = "j5eeW6higxYNmXMIT8iHjsdiViTpQDthg7o+SHsRtqdbxscdHqBHXwrXjHC8hL3F0Tsu34ApUpDkwzMBPBsrLw==";
+      };
+    };
     "statistics-3.3.0" = {
       name = "statistics";
       packageName = "statistics";
@@ -41687,6 +44779,15 @@ let
         sha1 = "ec7b4750ff03ab24a64dd9b357a78316bead78aa";
       };
     };
+    "statsd-client-0.4.5" = {
+      name = "statsd-client";
+      packageName = "statsd-client";
+      version = "0.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/statsd-client/-/statsd-client-0.4.5.tgz";
+        sha512 = "tmTpFMxpBcq92CTMq81d1W47GEazy76Hi+aNKvKJloMplQZe+L1jekSg95YG8ieq6j2Q9MboCaLIMdsF20+eGg==";
+      };
+    };
     "statsd-parser-0.0.4" = {
       name = "statsd-parser";
       packageName = "statsd-parser";
@@ -41768,6 +44869,15 @@ let
         sha1 = "ac8382de415d0c99a5a2b5fa0c404b174a8ed59b";
       };
     };
+    "stickyfill-1.1.1" = {
+      name = "stickyfill";
+      packageName = "stickyfill";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stickyfill/-/stickyfill-1.1.1.tgz";
+        sha1 = "39413fee9d025c74a7e59ceecb23784cc0f17f02";
+      };
+    };
     "stream-browserify-2.0.2" = {
       name = "stream-browserify";
       packageName = "stream-browserify";
@@ -41822,15 +44932,6 @@ let
         sha1 = "fb4d8a1420ea362764e21ad4780397bebcb41cbe";
       };
     };
-    "stream-consume-0.1.1" = {
-      name = "stream-consume";
-      packageName = "stream-consume";
-      version = "0.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/stream-consume/-/stream-consume-0.1.1.tgz";
-        sha512 = "tNa3hzgkjEP7XbCkbRXe1jpg+ievoa0O4SCFlMOYEscGSS4JJsckGL8swUyAa/ApGU3Ae4t6Honor4HhL+tRyg==";
-      };
-    };
     "stream-counter-0.2.0" = {
       name = "stream-counter";
       packageName = "stream-counter";
@@ -41939,13 +45040,13 @@ let
         sha512 = "PS6wT2ZyyR38Cy+lE6PBEI1ZmO2HdzZoLeDGG0zZbYikCZd0dh8FUoSeFzgWLItpBYw1WJmPVRLpykRV+lAWLQ==";
       };
     };
-    "stream-to-promise-2.2.0" = {
+    "stream-to-promise-3.0.0" = {
       name = "stream-to-promise";
       packageName = "stream-to-promise";
-      version = "2.2.0";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stream-to-promise/-/stream-to-promise-2.2.0.tgz";
-        sha1 = "b1edb2e1c8cb11289d1b503c08d3f2aef51e650f";
+        url = "https://registry.npmjs.org/stream-to-promise/-/stream-to-promise-3.0.0.tgz";
+        sha512 = "h+7wLeFiYegOdgTfTxjRsrT7/Op7grnKEIHWgaO1RTHwcwk7xRreMr3S8XpDfDMesSxzgM2V4CxNCFAGo6ssnA==";
       };
     };
     "stream-to-pull-stream-1.7.3" = {
@@ -41975,13 +45076,13 @@ let
         sha1 = "7d8e6b4e03ac4781778f8c79517501bfb0762a9f";
       };
     };
-    "stream-with-known-length-to-buffer-1.0.3" = {
+    "stream-with-known-length-to-buffer-1.0.4" = {
       name = "stream-with-known-length-to-buffer";
       packageName = "stream-with-known-length-to-buffer";
-      version = "1.0.3";
+      version = "1.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stream-with-known-length-to-buffer/-/stream-with-known-length-to-buffer-1.0.3.tgz";
-        sha512 = "4Wi2v47HMkNdRWrlFJNlIsrhV6z6nCyVKVAIiq14MAnc7wILEAINmn96IiPWTcXzT8y2S6yfBoX++MUxqiovag==";
+        url = "https://registry.npmjs.org/stream-with-known-length-to-buffer/-/stream-with-known-length-to-buffer-1.0.4.tgz";
+        sha512 = "ztP79ug6S+I7td0Nd2GBeIKCm+vA54c+e60FY87metz5n/l6ydPELd2lxsljz8OpIhsRM9HkIiAwz85+S5G5/A==";
       };
     };
     "stream.finished-1.2.0" = {
@@ -42047,15 +45148,6 @@ let
         sha1 = "eabe0956da7a8291c6de7486f7b35e58d031cd55";
       };
     };
-    "string-2.0.1" = {
-      name = "string";
-      packageName = "string";
-      version = "2.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string/-/string-2.0.1.tgz";
-        sha1 = "ef1473b3e11cb8158671856556959b9aff5fd759";
-      };
-    };
     "string-3.3.3" = {
       name = "string";
       packageName = "string";
@@ -42065,6 +45157,15 @@ let
         sha1 = "5ea211cd92d228e184294990a6cc97b366a77cb0";
       };
     };
+    "string-argv-0.3.1" = {
+      name = "string-argv";
+      packageName = "string-argv";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz";
+        sha512 = "a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==";
+      };
+    };
     "string-env-interpolation-1.0.1" = {
       name = "string-env-interpolation";
       packageName = "string-env-interpolation";
@@ -42074,13 +45175,22 @@ let
         sha512 = "78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg==";
       };
     };
-    "string-kit-0.11.7" = {
+    "string-hash-1.1.3" = {
+      name = "string-hash";
+      packageName = "string-hash";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-hash/-/string-hash-1.1.3.tgz";
+        sha1 = "e8aafc0ac1855b4666929ed7dd1275df5d6c811b";
+      };
+    };
+    "string-kit-0.11.8" = {
       name = "string-kit";
       packageName = "string-kit";
-      version = "0.11.7";
+      version = "0.11.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string-kit/-/string-kit-0.11.7.tgz";
-        sha512 = "YELCRaRSTnwupnKqxqsm6xQ9EJjE23dpqg9ca6uBebfA2s601sm2dj42KPH7I50rvGf93Fz+o0mKKw81mK6Lrw==";
+        url = "https://registry.npmjs.org/string-kit/-/string-kit-0.11.8.tgz";
+        sha512 = "lJyXXoptFpgOXL9cWZXtf45jxdbP5qYtaGZsmtFm4CZy9q6wwzvRzQcJiFeLx8I/0RpzBao9WCOGpbyfW2CMWA==";
       };
     };
     "string-length-2.0.0" = {
@@ -42173,22 +45283,13 @@ let
         sha512 = "zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==";
       };
     };
-    "string.prototype.padstart-3.1.0" = {
-      name = "string.prototype.padstart";
-      packageName = "string.prototype.padstart";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.padstart/-/string.prototype.padstart-3.1.0.tgz";
-        sha512 = "envqZvUp2JItI+OeQ5UAh1ihbAV5G/2bixTojvlIa090GGqF+NQRxbWb2nv9fTGrZABv6+pE6jXoAZhhS2k4Hw==";
-      };
-    };
-    "string.prototype.trim-1.2.1" = {
+    "string.prototype.trim-1.2.2" = {
       name = "string.prototype.trim";
       packageName = "string.prototype.trim";
-      version = "1.2.1";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.1.tgz";
-        sha512 = "MjGFEeqixw47dAMFMtgUro/I0+wNqZB5GKXGt1fFr24u3TzDXCPu7J9Buppzoe3r/LqkSDLDDJzE15RGWDGAVw==";
+        url = "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.2.tgz";
+        sha512 = "b5yrbl3BXIjHau9Prk7U0RRYcUYdN4wGSVaqoBQS50CCE3KBuYU0TYRNPFCP7aVoNMX87HKThdMRVIP3giclKg==";
       };
     };
     "string.prototype.trimend-1.0.1" = {
@@ -42200,24 +45301,6 @@ let
         sha512 = "LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==";
       };
     };
-    "string.prototype.trimleft-2.1.2" = {
-      name = "string.prototype.trimleft";
-      packageName = "string.prototype.trimleft";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz";
-        sha512 = "gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw==";
-      };
-    };
-    "string.prototype.trimright-2.1.2" = {
-      name = "string.prototype.trimright";
-      packageName = "string.prototype.trimright";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz";
-        sha512 = "ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg==";
-      };
-    };
     "string.prototype.trimstart-1.0.1" = {
       name = "string.prototype.trimstart";
       packageName = "string.prototype.trimstart";
@@ -42281,13 +45364,22 @@ let
         sha512 = "fqqhZzXyAM6pGD9lky/GOPq6V4X0SeTAFBl0iXb/BzOegl40gpf/bV3QQP7zULNYvjr6+Dx8SCaDULjVoOru0A==";
       };
     };
-    "stringify-object-3.3.0" = {
-      name = "stringify-object";
-      packageName = "stringify-object";
-      version = "3.3.0";
+    "stringify-entities-3.0.1" = {
+      name = "stringify-entities";
+      packageName = "stringify-entities";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stringify-entities/-/stringify-entities-3.0.1.tgz";
+        sha512 = "Lsk3ISA2++eJYqBMPKcr/8eby1I6L0gP0NlxF8Zja6c05yr/yCYyb2c9PwXjd08Ib3If1vn1rbs1H5ZtVuOfvQ==";
+      };
+    };
+    "stringify-package-1.0.1" = {
+      name = "stringify-package";
+      packageName = "stringify-package";
+      version = "1.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz";
-        sha512 = "rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==";
+        url = "https://registry.npmjs.org/stringify-package/-/stringify-package-1.0.1.tgz";
+        sha512 = "sa4DUQsYciMP1xhKWGuFM04fB0LG/9DlluZoSVywUMRNvzid6XucHK0/90xGxRoHrAaROrcHK1aPKaijCtSrhg==";
       };
     };
     "stringify-parameters-0.0.4" = {
@@ -42371,13 +45463,13 @@ let
         sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
       };
     };
-    "strip-bom-1.0.0" = {
-      name = "strip-bom";
-      packageName = "strip-bom";
-      version = "1.0.0";
+    "strip-ansi-control-characters-2.0.0" = {
+      name = "strip-ansi-control-characters";
+      packageName = "strip-ansi-control-characters";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/strip-bom/-/strip-bom-1.0.0.tgz";
-        sha1 = "85b8862f3844b5a6d5ec8467a93598173a36f794";
+        url = "https://registry.npmjs.org/strip-ansi-control-characters/-/strip-ansi-control-characters-2.0.0.tgz";
+        sha512 = "Q0/k5orrVGeaOlIOUn1gybGU0IcAbgHQT1faLo5hik4DqClKVSaka5xOhNNoRgtfztHVxCYxi7j71mrWom0bIw==";
       };
     };
     "strip-bom-2.0.0" = {
@@ -42434,15 +45526,6 @@ let
         sha1 = "f87db5ef2613f6968aa545abfe1ec728b6a829ca";
       };
     };
-    "strip-bom-stream-3.0.0" = {
-      name = "strip-bom-stream";
-      packageName = "strip-bom-stream";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-3.0.0.tgz";
-        sha1 = "956bcc5d84430f69256a90ed823765cd858e159c";
-      };
-    };
     "strip-bom-stream-4.0.0" = {
       name = "strip-bom-stream";
       packageName = "strip-bom-stream";
@@ -42560,6 +45643,15 @@ let
         sha512 = "e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w==";
       };
     };
+    "strip-json-comments-3.1.1" = {
+      name = "strip-json-comments";
+      packageName = "strip-json-comments";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+        sha512 = "6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==";
+      };
+    };
     "strip-outer-1.0.1" = {
       name = "strip-outer";
       packageName = "strip-outer";
@@ -42596,13 +45688,13 @@ let
         sha1 = "0fdedc68e91addcfcb2e6be9c262581a6e8c28aa";
       };
     };
-    "strtok3-6.0.2" = {
+    "strtok3-6.0.4" = {
       name = "strtok3";
       packageName = "strtok3";
-      version = "6.0.2";
+      version = "6.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/strtok3/-/strtok3-6.0.2.tgz";
-        sha512 = "8/LNTW+SFsfUXbo0P/zNz5FqMVaKCZSZ3/aycaPw7l9RiNutj0XSLI9AcyJcLR+iIL/2FrpUHZxHfAzN7xisAA==";
+        url = "https://registry.npmjs.org/strtok3/-/strtok3-6.0.4.tgz";
+        sha512 = "rqWMKwsbN9APU47bQTMEYTPcwdpKDtmf1jVhHzNW2cL1WqAxaM9iBb9t5P2fj+RV2YsErUWgQzHD5JwV0uCTEQ==";
       };
     };
     "structured-source-3.0.2" = {
@@ -42623,6 +45715,15 @@ let
         sha1 = "7958c793e47e32e07d2b5cafe5c0bf8e12e77902";
       };
     };
+    "styled-components-5.2.0" = {
+      name = "styled-components";
+      packageName = "styled-components";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/styled-components/-/styled-components-5.2.0.tgz";
+        sha512 = "9qE8Vgp8C5cpGAIdFaQVAl89Zgx1TDM4Yf4tlHbO9cPijtpSXTMLHy9lmP0lb+yImhgPFb1AmZ1qMUubmg3HLg==";
+      };
+    };
     "stylehacks-4.0.3" = {
       name = "stylehacks";
       packageName = "stylehacks";
@@ -42677,22 +45778,13 @@ let
         sha512 = "luHn2OAMGJouOnadm6Fim6WXodQ2AWDkWjYq0rMdyEwzO5PdE4LzoXAEn9LL2snmBAlwUp1URVOTF7lZR3KU+Q==";
       };
     };
-    "stylus-0.54.7" = {
+    "stylus-0.54.8" = {
       name = "stylus";
       packageName = "stylus";
-      version = "0.54.7";
+      version = "0.54.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/stylus/-/stylus-0.54.7.tgz";
-        sha512 = "Yw3WMTzVwevT6ZTrLCYNHAFmanMxdylelL3hkWNgPMeTCpMwpV3nXjpOHuBXtFv7aiO2xRuQS6OoAdgkNcSNug==";
-      };
-    };
-    "stylus-lookup-3.0.2" = {
-      name = "stylus-lookup";
-      packageName = "stylus-lookup";
-      version = "3.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/stylus-lookup/-/stylus-lookup-3.0.2.tgz";
-        sha512 = "oEQGHSjg/AMaWlKe7gqsnYzan8DLcGIHe0dUaFkucZZ14z4zjENRlQMCHT4FNsiWnJf17YN9OvrCfCoi7VvOyg==";
+        url = "https://registry.npmjs.org/stylus/-/stylus-0.54.8.tgz";
+        sha512 = "vr54Or4BZ7pJafo2mpf0ZcwA74rpuYCZbxrHBsH8kbcXOwSfvBFwsRfpGO5OD5fhG5HDCFW737PKaawI7OqEAg==";
       };
     };
     "stylus-supremacy-2.14.5" = {
@@ -42722,13 +45814,13 @@ let
         sha512 = "cm7TQq9I8dA5LKUr+r8W7RzQlLsmTdCr6wXmjYueOoh/bQu55ODEw7GFhT42pUyoaLtO2rgmx1+8cSIjY9lR9g==";
       };
     };
-    "subscriptions-transport-ws-0.9.16" = {
+    "subscriptions-transport-ws-0.9.18" = {
       name = "subscriptions-transport-ws";
       packageName = "subscriptions-transport-ws";
-      version = "0.9.16";
+      version = "0.9.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.16.tgz";
-        sha512 = "pQdoU7nC+EpStXnCfh/+ho0zE0Z+ma+i7xvj7bkXKb1dvYHSZxgRPaU6spRP+Bjzow67c/rRDoix5RT0uU9omw==";
+        url = "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.18.tgz";
+        sha512 = "tztzcBTNoEbuErsVQpTN2xUNN/efAZXyCyL5m3x4t6SKrEiTL2N8SaKWBFWM4u56pL79ULif3zjyeq+oV+nOaA==";
       };
     };
     "sudo-block-1.2.0" = {
@@ -42740,31 +45832,31 @@ let
         sha1 = "cc539bf8191624d4f507d83eeb45b4cea27f3463";
       };
     };
-    "suf-cli-0.1.1" = {
+    "suf-cli-0.1.3" = {
       name = "suf-cli";
       packageName = "suf-cli";
-      version = "0.1.1";
+      version = "0.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/suf-cli/-/suf-cli-0.1.1.tgz";
-        sha512 = "0znmYibLknX0bWsnqW9rzM8IvKux3rTSnW52l5teIC+QAgS/StUl5f4WyLPBw+posfbOgoX+03xHPV4sMxY64Q==";
+        url = "https://registry.npmjs.org/suf-cli/-/suf-cli-0.1.3.tgz";
+        sha512 = "dM85t6+egHKKM7ChM1JpkZUeXNczRb7vAQN3Y8UAyRjeW6UvfChPi8YbV73eTUBp6N7VfKqwwrsYsbdEb/u0Rg==";
       };
     };
-    "suf-node-1.1.1" = {
+    "suf-node-1.2.1" = {
       name = "suf-node";
       packageName = "suf-node";
-      version = "1.1.1";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/suf-node/-/suf-node-1.1.1.tgz";
-        sha512 = "XiyPqLdiHJ3CMphADCJg/JVQYcj3JfO8NomlLubSdGYgppfzE+g/7Fyusza/Kr7lC919BdwbfIqFxK8VO7+l4w==";
+        url = "https://registry.npmjs.org/suf-node/-/suf-node-1.2.1.tgz";
+        sha512 = "LFLshqEwm1bXd3fEl0STYXZzEHbAz8HwsyItA8vvxhMZrIo+CpB7RrtLvor6mk+7SdfgJhmV3RdIdDIcPAJTTg==";
       };
     };
-    "suf-regex-0.0.21" = {
+    "suf-regex-0.0.23" = {
       name = "suf-regex";
       packageName = "suf-regex";
-      version = "0.0.21";
+      version = "0.0.23";
       src = fetchurl {
-        url = "https://registry.npmjs.org/suf-regex/-/suf-regex-0.0.21.tgz";
-        sha512 = "JCQopezrH6Ypm5YTpfDKCAnxwtMTVMnx/SCk5+RL51j2hO0AbShX6hWdeyJn0PG01gSvoyMqgAhSKjtRHaZZNA==";
+        url = "https://registry.npmjs.org/suf-regex/-/suf-regex-0.0.23.tgz";
+        sha512 = "Rupps+hO04fiskhx5YwBaiB8Bbwsy8fsqDfT8FED6DWkumWClb3em+yukbNgmAvUIbLAm7ibJoN+2Pl4golkQw==";
       };
     };
     "sugarss-1.0.1" = {
@@ -42785,15 +45877,6 @@ let
         sha512 = "WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==";
       };
     };
-    "superagent-0.21.0" = {
-      name = "superagent";
-      packageName = "superagent";
-      version = "0.21.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/superagent/-/superagent-0.21.0.tgz";
-        sha1 = "fb15027984751ee7152200e6cd21cd6e19a5de87";
-      };
-    };
     "superagent-1.8.5" = {
       name = "superagent";
       packageName = "superagent";
@@ -42875,15 +45958,6 @@ let
         sha1 = "65ac0504b3954171d8a64946b2ae3cbb8a5f54f6";
       };
     };
-    "supports-color-4.5.0" = {
-      name = "supports-color";
-      packageName = "supports-color";
-      version = "4.5.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz";
-        sha1 = "be7a0de484dec5c5cddf8b3d59125044912f635b";
-      };
-    };
     "supports-color-5.5.0" = {
       name = "supports-color";
       packageName = "supports-color";
@@ -42920,6 +45994,15 @@ let
         sha512 = "oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==";
       };
     };
+    "supports-color-7.2.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
+        sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
+      };
+    };
     "supports-hyperlinks-1.0.1" = {
       name = "supports-hyperlinks";
       packageName = "supports-hyperlinks";
@@ -43046,6 +46129,24 @@ let
         sha1 = "e39fae3d581d713682491e1926cd87bf2c209bfb";
       };
     };
+    "swagger-ui-dist-3.30.2" = {
+      name = "swagger-ui-dist";
+      packageName = "swagger-ui-dist";
+      version = "3.30.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.30.2.tgz";
+        sha512 = "hAu/ig5N8i0trXXbrC7rwbXV4DhpEAsZhYXDs1305OjmDgjGC0thINbb0197idy3Pp+B6w7u426SUM43GAP7qw==";
+      };
+    };
+    "swagger-ui-dist-3.34.0" = {
+      name = "swagger-ui-dist";
+      packageName = "swagger-ui-dist";
+      version = "3.34.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.34.0.tgz";
+        sha512 = "xk5CMbwoQVI53rTq9o/iMojAqXP5NT4/+TMeTP4uXWDIH18pB9AXgO5Olqt0RXuf3jH032DA4DS4qzem6XdXAw==";
+      };
+    };
     "swagger2openapi-5.4.0" = {
       name = "swagger2openapi";
       packageName = "swagger2openapi";
@@ -43055,15 +46156,6 @@ let
         sha512 = "f5QqfXawiVijhjMtYqWZ55ESHPZFqrPC8L9idhIiuSX8O2qsa1i4MVGtCM3TQF+Smzr/6WfT/7zBuzG3aTgPAA==";
       };
     };
-    "swap-case-1.1.2" = {
-      name = "swap-case";
-      packageName = "swap-case";
-      version = "1.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/swap-case/-/swap-case-1.1.2.tgz";
-        sha1 = "c39203a4587385fad3c850a0bd1bcafa081974e3";
-      };
-    };
     "sway-1.0.0" = {
       name = "sway";
       packageName = "sway";
@@ -43136,13 +46228,13 @@ let
         sha512 = "YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==";
       };
     };
-    "systeminformation-4.26.9" = {
+    "systeminformation-4.27.5" = {
       name = "systeminformation";
       packageName = "systeminformation";
-      version = "4.26.9";
+      version = "4.27.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-4.26.9.tgz";
-        sha512 = "69MTIX9j//wnteJzQWuGL6FiMxlfS3wTWyhROI6pNUaQALYqJb3W9VtLVcEcKFOjO1vrGRgilJVFzJeRRi//Pg==";
+        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-4.27.5.tgz";
+        sha512 = "EysogxKqREk54ZYDEFcsCODv8GymKZcyiSfegYit8dKhPjzuQr+KX4GFHjssWjYrWFEIM2bYNsFrZX5eufeAXg==";
       };
     };
     "syswide-cas-5.3.0" = {
@@ -43245,13 +46337,13 @@ let
         sha1 = "7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268";
       };
     };
-    "tail-2.0.3" = {
+    "tail-2.0.4" = {
       name = "tail";
       packageName = "tail";
-      version = "2.0.3";
+      version = "2.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tail/-/tail-2.0.3.tgz";
-        sha512 = "s9NOGkLqqiDEtBttQZI7acLS8ycYK5sTlDwNjGnpXG9c8AWj0cfAtwEIzo/hVRMMiC5EYz+bXaJWC1u1u0GPpQ==";
+        url = "https://registry.npmjs.org/tail/-/tail-2.0.4.tgz";
+        sha512 = "xHkZdNWIzO++g+V/rHGqVoHd2LRxz+8t8bj6FGelfb8FHBjg5yjkX7Su/8sQSBo5alIspYkRp/fU0A2SM5h+5A==";
       };
     };
     "taketalk-1.0.0" = {
@@ -43335,13 +46427,13 @@ let
         sha512 = "MNIgJddrV2TkuwChwcSNds/5E9VijOiw7kAc1y5hTNJoLDSuIyid2QtLYiCYNnICebpuvjhPQZsXwUL0O3l7OQ==";
       };
     };
-    "tar-6.0.2" = {
+    "tar-6.0.5" = {
       name = "tar";
       packageName = "tar";
-      version = "6.0.2";
+      version = "6.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tar/-/tar-6.0.2.tgz";
-        sha512 = "Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg==";
+        url = "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz";
+        sha512 = "0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==";
       };
     };
     "tar-fs-2.1.0" = {
@@ -43371,13 +46463,13 @@ let
         sha512 = "rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==";
       };
     };
-    "tar-stream-2.1.2" = {
+    "tar-stream-2.1.4" = {
       name = "tar-stream";
       packageName = "tar-stream";
-      version = "2.1.2";
+      version = "2.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.2.tgz";
-        sha512 = "UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q==";
+        url = "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz";
+        sha512 = "o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==";
       };
     };
     "taskkill-3.1.0" = {
@@ -43515,6 +46607,15 @@ let
         sha512 = "LB83o9bfZGrntdqPuRdanIVCPReam9SOZKW0fOy5I9X3A854GGWi0tjCqoXEk84XIEYBc/x9Hq3EFop/H5wJaw==";
       };
     };
+    "tempy-0.3.0" = {
+      name = "tempy";
+      packageName = "tempy";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tempy/-/tempy-0.3.0.tgz";
+        sha512 = "WrH/pui8YCwmeiAoxV+lpRH9HpRtgBhSR2ViBPgpGb/wnYDzp21R4MN45fsCGvLROvY67o3byhJRYRONJyImVQ==";
+      };
+    };
     "term-canvas-0.0.5" = {
       name = "term-canvas";
       packageName = "term-canvas";
@@ -43542,13 +46643,13 @@ let
         sha512 = "a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==";
       };
     };
-    "terminal-kit-1.35.3" = {
+    "terminal-kit-1.43.0" = {
       name = "terminal-kit";
       packageName = "terminal-kit";
-      version = "1.35.3";
+      version = "1.43.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terminal-kit/-/terminal-kit-1.35.3.tgz";
-        sha512 = "6YIpTh/q9qMPAmCYNyNhQ8cC5sxsu2PG/+r5T61jEnXoK3W+LTskG3EmcxUNK4Qo17qT9oWqNbRzXwQTnR1xpw==";
+        url = "https://registry.npmjs.org/terminal-kit/-/terminal-kit-1.43.0.tgz";
+        sha512 = "OuPvQzx6oxr3oE2Y78NgRy0TetmurGa/vshYV02Kd6XDWctHO/sHpjnLe3Jhi8FrUkL0XAZMGlxjLeDtRFL4wg==";
       };
     };
     "terser-3.17.0" = {
@@ -43560,22 +46661,31 @@ let
         sha512 = "/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ==";
       };
     };
-    "terser-4.7.0" = {
+    "terser-4.8.0" = {
       name = "terser";
       packageName = "terser";
-      version = "4.7.0";
+      version = "4.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser/-/terser-4.7.0.tgz";
-        sha512 = "Lfb0RiZcjRDXCC3OSHJpEkxJ9Qeqs6mp2v4jf2MHfy8vGERmVDuvjXdd/EnP5Deme5F2yBRBymKmKHCBg2echw==";
+        url = "https://registry.npmjs.org/terser/-/terser-4.8.0.tgz";
+        sha512 = "EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==";
       };
     };
-    "terser-webpack-plugin-1.4.4" = {
+    "terser-webpack-plugin-1.4.5" = {
       name = "terser-webpack-plugin";
       packageName = "terser-webpack-plugin";
-      version = "1.4.4";
+      version = "1.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz";
-        sha512 = "U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==";
+        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz";
+        sha512 = "04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==";
+      };
+    };
+    "terser-webpack-plugin-3.0.7" = {
+      name = "terser-webpack-plugin";
+      packageName = "terser-webpack-plugin";
+      version = "3.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-3.0.7.tgz";
+        sha512 = "5JqibUOctE6Ou4T00IVGYTQJBOhu24jz0PpqYeitQJJ3hlZY2ZKSwzzuqjmBH8MzbdWMgIefpmHwTkvwm6Q4CQ==";
       };
     };
     "test-exclude-6.0.0" = {
@@ -43659,13 +46769,13 @@ let
         sha1 = "72f792dd9d31705a91ae19ebfcf8b3f968c81da2";
       };
     };
-    "thenify-3.3.0" = {
+    "thenify-3.3.1" = {
       name = "thenify";
       packageName = "thenify";
-      version = "3.3.0";
+      version = "3.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/thenify/-/thenify-3.3.0.tgz";
-        sha1 = "e69e38a1babe969b0108207978b9f62b88604839";
+        url = "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz";
+        sha512 = "RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==";
       };
     };
     "thenify-all-1.6.0" = {
@@ -43767,15 +46877,6 @@ let
         sha1 = "f41a1c31df5e129e4314446f66eca05cd6a30480";
       };
     };
-    "through2-2.0.3" = {
-      name = "through2";
-      packageName = "through2";
-      version = "2.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz";
-        sha1 = "0004569b37c7c74ba39c43f3ced78d1ad94140be";
-      };
-    };
     "through2-2.0.5" = {
       name = "through2";
       packageName = "through2";
@@ -43794,6 +46895,24 @@ let
         sha512 = "M96dvTalPT3YbYLaKaCuwu+j06D/8Jfib0o/PxbVt6Amhv3dUAtW6rTV1jPgJSBG83I/e04Y6xkVdVhSRhi0ww==";
       };
     };
+    "through2-3.0.2" = {
+      name = "through2";
+      packageName = "through2";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz";
+        sha512 = "enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==";
+      };
+    };
+    "through2-4.0.2" = {
+      name = "through2";
+      packageName = "through2";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz";
+        sha512 = "iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==";
+      };
+    };
     "through2-filter-3.0.0" = {
       name = "through2-filter";
       packageName = "through2-filter";
@@ -43803,6 +46922,15 @@ let
         sha512 = "jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==";
       };
     };
+    "through2-map-3.0.0" = {
+      name = "through2-map";
+      packageName = "through2-map";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through2-map/-/through2-map-3.0.0.tgz";
+        sha1 = "a6c3026ce63b4898a997d540506b66ffd970f271";
+      };
+    };
     "thunkify-2.1.2" = {
       name = "thunkify";
       packageName = "thunkify";
@@ -43866,6 +46994,15 @@ let
         sha1 = "764a5a11af50561921b133f3b44e618687e0f5c3";
       };
     };
+    "time-zone-1.0.0" = {
+      name = "time-zone";
+      packageName = "time-zone";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/time-zone/-/time-zone-1.0.0.tgz";
+        sha1 = "99c5bf55958966af6d06d83bdf3800dc82faec5d";
+      };
+    };
     "timed-out-4.0.1" = {
       name = "timed-out";
       packageName = "timed-out";
@@ -43947,15 +47084,6 @@ let
         sha1 = "320b5a52d83abb5978d81a3e887d4aefb15a6164";
       };
     };
-    "title-case-2.1.1" = {
-      name = "title-case";
-      packageName = "title-case";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/title-case/-/title-case-2.1.1.tgz";
-        sha1 = "3e127216da58d2bc5becf137ab91dae3a7cd8faa";
-      };
-    };
     "titleize-1.0.1" = {
       name = "titleize";
       packageName = "titleize";
@@ -43983,13 +47111,13 @@ let
         sha512 = "W/YVH/QczLUxVjnQhFC61Iq232NWu3TqDdO0S/MtXVz4xybejBov4ud+CIwN9aYqjOecEqIy0PscGkwpG9ZyTw==";
       };
     };
-    "tlds-1.207.0" = {
+    "tlds-1.208.0" = {
       name = "tlds";
       packageName = "tlds";
-      version = "1.207.0";
+      version = "1.208.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tlds/-/tlds-1.207.0.tgz";
-        sha512 = "k7d7Q1LqjtAvhtEOs3yN14EabsNO8ZCoY6RESSJDB9lst3bTx3as/m1UuAeCKzYxiyhR1qq72ZPhpSf+qlqiwg==";
+        url = "https://registry.npmjs.org/tlds/-/tlds-1.208.0.tgz";
+        sha512 = "6kbY7GJpRQXwBddSOAbVUZXjObbCGFXliWWN+kOSEoRWIOyRWLB6zdeKC/Tguwwenl/KsUx016XR50EdHYsxZw==";
       };
     };
     "tmp-0.0.29" = {
@@ -44226,15 +47354,6 @@ let
         sha1 = "88defecd43adb2ef598625f0e3d59f7f342941ba";
       };
     };
-    "to-vfile-2.2.0" = {
-      name = "to-vfile";
-      packageName = "to-vfile";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/to-vfile/-/to-vfile-2.2.0.tgz";
-        sha512 = "saGC8/lWdGrEoBMLUtgzhRHWAkQMP8gdldA3MOAUhBwTGEb1RSMVcflHGSx4ZJsdEZ9o1qDBCPp47LCPrbZWow==";
-      };
-    };
     "to-vfile-4.0.0" = {
       name = "to-vfile";
       packageName = "to-vfile";
@@ -44307,6 +47426,15 @@ let
         sha512 = "y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==";
       };
     };
+    "tomlify-j0.4-3.0.0" = {
+      name = "tomlify-j0.4";
+      packageName = "tomlify-j0.4";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tomlify-j0.4/-/tomlify-j0.4-3.0.0.tgz";
+        sha512 = "2Ulkc8T7mXJ2l0W476YC/A209PR38Nw8PuaCNtk9uI3t1zzFdGQeWYGQvmj2PZkVvRC/Yoi4xQKMRnWc/N29tQ==";
+      };
+    };
     "too-wordy-0.1.6" = {
       name = "too-wordy";
       packageName = "too-wordy";
@@ -44325,6 +47453,15 @@ let
         sha512 = "ePZfjs1ajL4b8jT4MeVId+9Ci5hJCzAtNIEXIHyFYmKmQuX+eHC/RNv6tuLMUhrGrhJ+sYWW/lBF/LKILHGZEA==";
       };
     };
+    "topojson-client-3.1.0" = {
+      name = "topojson-client";
+      packageName = "topojson-client";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/topojson-client/-/topojson-client-3.1.0.tgz";
+        sha512 = "605uxS6bcYxGXw9qi62XyrV6Q3xwbndjachmNxu8HWTtVPxZfEJN9fd/SZS1Q54Sn2y0TMyMxFj/cJINqGHrKw==";
+      };
+    };
     "topsort-0.0.2" = {
       name = "topsort";
       packageName = "topsort";
@@ -44478,6 +47615,15 @@ let
         sha1 = "8a7e8ab3044ad19f233f50c15894cbf69e5d205e";
       };
     };
+    "traverse-0.3.9" = {
+      name = "traverse";
+      packageName = "traverse";
+      version = "0.3.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz";
+        sha1 = "717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9";
+      };
+    };
     "traverse-0.4.6" = {
       name = "traverse";
       packageName = "traverse";
@@ -44496,15 +47642,6 @@ let
         sha1 = "cbdf560fd7b9af632502fed40f918c157ea97137";
       };
     };
-    "traverse-chain-0.1.0" = {
-      name = "traverse-chain";
-      packageName = "traverse-chain";
-      version = "0.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/traverse-chain/-/traverse-chain-0.1.0.tgz";
-        sha1 = "61dbc2d53b69ff6091a12a168fd7d433107e40f1";
-      };
-    };
     "tree-kill-1.2.2" = {
       name = "tree-kill";
       packageName = "tree-kill";
@@ -44667,6 +47804,33 @@ let
         sha512 = "uEtWkFM/sdZvRNNDL3Ehu4WVpwaulhwQszV8mrtcdeE8nN00BV9mAmQ88RkrBhFgl9gMgvjJLAQcZbnPXI9mlA==";
       };
     };
+    "ts-loader-6.2.2" = {
+      name = "ts-loader";
+      packageName = "ts-loader";
+      version = "6.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ts-loader/-/ts-loader-6.2.2.tgz";
+        sha512 = "HDo5kXZCBml3EUPcc7RlZOV/JGlLHwppTLEHb3SHnr5V7NXD4klMEkrhJe5wgRbaWsSXi+Y1SIBN/K9B6zWGWQ==";
+      };
+    };
+    "ts-loader-8.0.1" = {
+      name = "ts-loader";
+      packageName = "ts-loader";
+      version = "8.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ts-loader/-/ts-loader-8.0.1.tgz";
+        sha512 = "I9Nmly0ufJoZRMuAT9d5ijsC2B7oSPvUnOJt/GhgoATlPGYfa17VicDKPcqwUCrHpOkCxr/ybLYwbnS4cOxmvQ==";
+      };
+    };
+    "ts-log-2.1.4" = {
+      name = "ts-log";
+      packageName = "ts-log";
+      version = "2.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ts-log/-/ts-log-2.1.4.tgz";
+        sha512 = "P1EJSoyV+N3bR/IWFeAqXzKPZwHpnLY6j7j58mAvewHRipo+BQM2Y1f9Y9BjEQznKwgqqZm7H8iuixmssU7tYQ==";
+      };
+    };
     "ts-node-8.10.2" = {
       name = "ts-node";
       packageName = "ts-node";
@@ -44685,6 +47849,24 @@ let
         sha512 = "6qWWz2HdFbD2uAfgS5t65Dd6HQKYjfra+YXQzKzxIG+RKTpoeDi+x+TW85SEF3cWUI2UecrOXJobvD+04MiTZg==";
       };
     };
+    "tsconfig-paths-3.9.0" = {
+      name = "tsconfig-paths";
+      packageName = "tsconfig-paths";
+      version = "3.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz";
+        sha512 = "dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw==";
+      };
+    };
+    "tsconfig-paths-webpack-plugin-3.3.0" = {
+      name = "tsconfig-paths-webpack-plugin";
+      packageName = "tsconfig-paths-webpack-plugin";
+      version = "3.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tsconfig-paths-webpack-plugin/-/tsconfig-paths-webpack-plugin-3.3.0.tgz";
+        sha512 = "MpQeZpwPY4gYASCUjY4yt2Zj8yv86O8f++3Ai4o0yI0fUC6G1syvnL9VuY71PBgimRYDQU47f12BEmJq9wRaSw==";
+      };
+    };
     "tslib-1.11.1" = {
       name = "tslib";
       packageName = "tslib";
@@ -44694,15 +47876,6 @@ let
         sha512 = "aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==";
       };
     };
-    "tslib-1.11.2" = {
-      name = "tslib";
-      packageName = "tslib";
-      version = "1.11.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-1.11.2.tgz";
-        sha512 = "tTSkux6IGPnUGUd1XAZHcpu85MOkIl5zX49pO+jfsie3eP0B6pyhOlLXm3cAC6T7s+euSDDUUV+Acop5WmtkVg==";
-      };
-    };
     "tslib-1.13.0" = {
       name = "tslib";
       packageName = "tslib";
@@ -44712,22 +47885,13 @@ let
         sha512 = "i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==";
       };
     };
-    "tslib-1.9.3" = {
+    "tslib-2.0.1" = {
       name = "tslib";
       packageName = "tslib";
-      version = "1.9.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz";
-        sha512 = "4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==";
-      };
-    };
-    "tslib-2.0.0" = {
-      name = "tslib";
-      packageName = "tslib";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-2.0.0.tgz";
-        sha512 = "lTqkx847PI7xEDYJntxZH89L2/aXInsyF2luSafe/+0fHOMjlBNXdH6th7f70qxLDhul7KZK0zC8V5ZIyHl0/g==";
+        url = "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz";
+        sha512 = "SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==";
       };
     };
     "tslint-5.20.1" = {
@@ -44739,6 +47903,15 @@ let
         sha512 = "EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==";
       };
     };
+    "tslint-6.1.2" = {
+      name = "tslint";
+      packageName = "tslint";
+      version = "6.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tslint/-/tslint-6.1.2.tgz";
+        sha512 = "UyNrLdK3E0fQG/xWNqAFAC5ugtFyPO4JJR1KyyfQAyzR8W0fTRrC91A8Wej4BntFzcvETdCSDa/4PnNYJQLYiA==";
+      };
+    };
     "tsscmp-1.0.6" = {
       name = "tsscmp";
       packageName = "tsscmp";
@@ -44775,13 +47948,13 @@ let
         sha512 = "X68badwBjAy/+itU49scLjXUL094up+rHuYk+YAOTTBYSUMOmLZ7VyhZJuqQESj1gnyLAC2/5V8Euv+mExmyPA==";
       };
     };
-    "ttf2woff2-2.0.3" = {
+    "ttf2woff2-3.0.0" = {
       name = "ttf2woff2";
       packageName = "ttf2woff2";
-      version = "2.0.3";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ttf2woff2/-/ttf2woff2-2.0.3.tgz";
-        sha1 = "5e020afe6e643287f3ad7687abed20fe654eb329";
+        url = "https://registry.npmjs.org/ttf2woff2/-/ttf2woff2-3.0.0.tgz";
+        sha512 = "5/Web6B0lF/STNAQ0d5vAlRRquuWsNj8wOmKQ9ql9Bsgbx8MsLnNzaBG9vBcSE4s4Ry1QOr/MyUrDUIVgVPEfw==";
       };
     };
     "ttl-1.3.1" = {
@@ -44820,6 +47993,15 @@ let
         sha512 = "C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==";
       };
     };
+    "tumblr-0.4.1" = {
+      name = "tumblr";
+      packageName = "tumblr";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tumblr/-/tumblr-0.4.1.tgz";
+        sha1 = "ac9f4ba7bd04525d6bd8b087f85553c8ef19dc9e";
+      };
+    };
     "tunnel-0.0.4" = {
       name = "tunnel";
       packageName = "tunnel";
@@ -44892,13 +48074,22 @@ let
         sha1 = "b75bc2df15649bb84e8b9aa3c0669c6c4bce0d25";
       };
     };
-    "twig-1.15.1" = {
+    "twig-1.15.2" = {
       name = "twig";
       packageName = "twig";
-      version = "1.15.1";
+      version = "1.15.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/twig/-/twig-1.15.1.tgz";
-        sha512 = "SPGkUM0p7hjgo+y5Dlm/XCSuZe0G3kfcgRPrxkMFln5e8bvQbxDOsia8QEo8xqXfjLR1Emp9FGkVYHya2b8qdA==";
+        url = "https://registry.npmjs.org/twig/-/twig-1.15.2.tgz";
+        sha512 = "n7w76E8gzguhcLyKcjlT3sYWGdBTgZY2DO/frcbZ5Fk7LwMRoTathvWMFxZyJ2HYRJ+rEzccw6nu3fsy7ceGGQ==";
+      };
+    };
+    "twitter-1.7.1" = {
+      name = "twitter";
+      packageName = "twitter";
+      version = "1.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/twitter/-/twitter-1.7.1.tgz";
+        sha1 = "0762378f1dc1c050e48f666aca904e24b1a962f4";
       };
     };
     "txt-to-ast-3.0.3" = {
@@ -44919,13 +48110,13 @@ let
         sha512 = "+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==";
       };
     };
-    "type-2.0.0" = {
+    "type-2.1.0" = {
       name = "type";
       packageName = "type";
-      version = "2.0.0";
+      version = "2.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/type/-/type-2.0.0.tgz";
-        sha512 = "KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow==";
+        url = "https://registry.npmjs.org/type/-/type-2.1.0.tgz";
+        sha512 = "G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==";
       };
     };
     "type-check-0.3.2" = {
@@ -44955,22 +48146,22 @@ let
         sha512 = "0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==";
       };
     };
-    "type-fest-0.10.0" = {
+    "type-fest-0.11.0" = {
       name = "type-fest";
       packageName = "type-fest";
-      version = "0.10.0";
+      version = "0.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.10.0.tgz";
-        sha512 = "EUV9jo4sffrwlg8s0zDhP0T2WD3pru5Xi0+HTE3zTUmBaZNhfkite9PdSJwdXLwPVW0jnAHT56pZHIOYckPEiw==";
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz";
+        sha512 = "OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==";
       };
     };
-    "type-fest-0.11.0" = {
+    "type-fest-0.12.0" = {
       name = "type-fest";
       packageName = "type-fest";
-      version = "0.11.0";
+      version = "0.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz";
-        sha512 = "OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==";
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz";
+        sha512 = "53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==";
       };
     };
     "type-fest-0.13.1" = {
@@ -44982,6 +48173,15 @@ let
         sha512 = "34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==";
       };
     };
+    "type-fest-0.15.1" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.15.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.15.1.tgz";
+        sha512 = "n+UXrN8i5ioo7kqT/nF8xsEzLaqFra7k32SEsSPwvXVGyAcRgV/FUQN/sgfptJTR1oRmmq7z4IXMFSM7im7C9A==";
+      };
+    };
     "type-fest-0.3.1" = {
       name = "type-fest";
       packageName = "type-fest";
@@ -45009,15 +48209,6 @@ let
         sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==";
       };
     };
-    "type-is-1.5.7" = {
-      name = "type-is";
-      packageName = "type-is";
-      version = "1.5.7";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/type-is/-/type-is-1.5.7.tgz";
-        sha1 = "b9368a593cc6ef7d0645e78b2f4c64cbecd05e90";
-      };
-    };
     "type-is-1.6.18" = {
       name = "type-is";
       packageName = "type-is";
@@ -45027,15 +48218,6 @@ let
         sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
       };
     };
-    "typed-function-1.1.0" = {
-      name = "typed-function";
-      packageName = "typed-function";
-      version = "1.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/typed-function/-/typed-function-1.1.0.tgz";
-        sha512 = "TuQzwiT4DDg19beHam3E66oRXhyqlyfgjHB/5fcvsRXbfmWPJfto9B4a0TBdTrQAPGlGmXh/k7iUI+WsObgORA==";
-      };
-    };
     "typed-rest-client-1.2.0" = {
       name = "typed-rest-client";
       packageName = "typed-rest-client";
@@ -45081,22 +48263,22 @@ let
         sha512 = "kk80vLW9iGtjMnIv11qyxLqZm20UklzuR2tL0QAnDIygIUIemcZMxlMWudl9OOt76H3ntVzcTiddQ1/pAAJMYg==";
       };
     };
-    "typescript-3.8.3" = {
+    "typescript-3.9.7" = {
       name = "typescript";
       packageName = "typescript";
-      version = "3.8.3";
+      version = "3.9.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-3.8.3.tgz";
-        sha512 = "MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz";
+        sha512 = "BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==";
       };
     };
-    "typescript-3.9.5" = {
+    "typescript-4.0.3" = {
       name = "typescript";
       packageName = "typescript";
-      version = "3.9.5";
+      version = "4.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz";
-        sha512 = "hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-4.0.3.tgz";
+        sha512 = "tEu6DGxGgRJPb/mVPIZ48e69xCn2yRmCgYmDugAVwmJ6o+0u1RI18eO7E7WBTLYLaEVVOhwQmcdhQHweux/WPg==";
       };
     };
     "typescript-eslint-parser-16.0.1" = {
@@ -45126,24 +48308,6 @@ let
         sha512 = "CQEfGC+p0SoBARI4N2LrGsWJsp4/OE+uKZ68xsWYKHWqMFq4DFQHqOVlK0deEricSN01NmDTqjap63Pw/DHieg==";
       };
     };
-    "typewise-1.0.3" = {
-      name = "typewise";
-      packageName = "typewise";
-      version = "1.0.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz";
-        sha1 = "1067936540af97937cc5dcf9922486e9fa284651";
-      };
-    };
-    "typewise-core-1.2.0" = {
-      name = "typewise-core";
-      packageName = "typewise-core";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz";
-        sha1 = "97eb91805c7f55d2f941748fa50d315d991ef195";
-      };
-    };
     "typewiselite-1.0.0" = {
       name = "typewiselite";
       packageName = "typewiselite";
@@ -45162,13 +48326,13 @@ let
         sha1 = "5c080e5d661cbbe38259d2e70a3c7253e873881d";
       };
     };
-    "typo-geom-0.5.1" = {
+    "typo-geom-0.8.4" = {
       name = "typo-geom";
       packageName = "typo-geom";
-      version = "0.5.1";
+      version = "0.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typo-geom/-/typo-geom-0.5.1.tgz";
-        sha512 = "nj81m0eqRMpK6NcwkGlT9r3CbwjCQhsFU6SBUuYW9TDveqIdi/QUFGkikoImtE1C6OzY2LvuVMSG8rx/ZTCGtQ==";
+        url = "https://registry.npmjs.org/typo-geom/-/typo-geom-0.8.4.tgz";
+        sha512 = "n0P1RQidLnjLI2iSUDENiugkABaR+tr/kSIpl040XLKmrfsBZ/weS1OvQ9Mq98CsJlcJDemKdPqldoyYSsVgmQ==";
       };
     };
     "ua-parser-js-0.7.21" = {
@@ -45198,31 +48362,31 @@ let
         sha1 = "29c5733148057bb4e1f75df35b7a9cb72e6a59dd";
       };
     };
-    "uglify-js-3.4.10" = {
+    "uglify-js-3.10.0" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.4.10";
+      version = "3.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz";
-        sha512 = "Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.0.tgz";
+        sha512 = "Esj5HG5WAyrLIdYU74Z3JdG2PxdIusvj6IWHMtlyESxc7kcDz7zYlYjpnSokn1UbpV0d/QX9fan7gkCNd/9BQA==";
       };
     };
-    "uglify-js-3.8.1" = {
+    "uglify-js-3.10.4" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.8.1";
+      version = "3.10.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.8.1.tgz";
-        sha512 = "W7KxyzeaQmZvUFbGj4+YFshhVrMBGSg2IbcYAjGWGvx8DHvJMclbTDMpffdxFUGPBHjIytk7KJUR/KUXstUGDw==";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.4.tgz";
+        sha512 = "kBFT3U4Dcj4/pJ52vfjCSfyLyvG9VYYuGYPmrPvAxRw/i7xHiT4VvCev+uiEMcEEiu6UNB6KgWmGtSUYIWScbw==";
       };
     };
-    "uglify-js-3.9.4" = {
+    "uglify-js-3.4.10" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.9.4";
+      version = "3.4.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.4.tgz";
-        sha512 = "8RZBJq5smLOa7KslsNsVcSH+KOXf1uDU8yqLeNuVKwmT0T3FA0ZoXlinQfRad7SDcbZZRZE4ov+2v71EnxNyCA==";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz";
+        sha512 = "Y2VsbPVs0FIshJztycsO2SfPk7/KAF/T72qzv9u5EpQ4kB2hQoHlhNQTsNyy6ul7lQtqJN/AoWeS23OzEiEFxw==";
       };
     };
     "uglify-to-browserify-1.0.2" = {
@@ -45387,6 +48551,15 @@ let
         sha512 = "N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==";
       };
     };
+    "underscore-1.11.0" = {
+      name = "underscore";
+      packageName = "underscore";
+      version = "1.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/underscore/-/underscore-1.11.0.tgz";
+        sha512 = "xY96SsN3NA461qIRKZ/+qox37YXPtSBswMGfiNptr+wrt6ds4HaMw23TP612fEyGekRE6LNRiLYr/aqbHXNedw==";
+      };
+    };
     "underscore-1.2.1" = {
       name = "underscore";
       packageName = "underscore";
@@ -45441,13 +48614,13 @@ let
         sha1 = "71c08bf6b428b1133f37e78fa3a21c82f7329b0d";
       };
     };
-    "undertaker-1.2.1" = {
+    "undertaker-1.3.0" = {
       name = "undertaker";
       packageName = "undertaker";
-      version = "1.2.1";
+      version = "1.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz";
-        sha512 = "71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==";
+        url = "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz";
+        sha512 = "/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg==";
       };
     };
     "undertaker-registry-1.0.1" = {
@@ -45468,6 +48641,15 @@ let
         sha512 = "Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ==";
       };
     };
+    "unicode-13.0.0-0.8.0" = {
+      name = "unicode-13.0.0";
+      packageName = "unicode-13.0.0";
+      version = "0.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-13.0.0/-/unicode-13.0.0-0.8.0.tgz";
+        sha512 = "Ekct2eo5hBIp/29ERCj1ABIBNnrFOAisNHFv8l2KksHJg4PurIN/nGPFItaIpBJHVzlBYuJaVx/bAvmJnFFL/w==";
+      };
+    };
     "unicode-canonical-property-names-ecmascript-1.0.4" = {
       name = "unicode-canonical-property-names-ecmascript";
       packageName = "unicode-canonical-property-names-ecmascript";
@@ -45522,6 +48704,15 @@ let
         sha1 = "d671dddd89101a08bac37b6a5161010602052085";
       };
     };
+    "unicoderegexp-0.4.1" = {
+      name = "unicoderegexp";
+      packageName = "unicoderegexp";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicoderegexp/-/unicoderegexp-0.4.1.tgz";
+        sha1 = "afb10e4ef1eeddc711417bbb652bc885da9d4171";
+      };
+    };
     "unified-2.1.4" = {
       name = "unified";
       packageName = "unified";
@@ -45558,22 +48749,22 @@ let
         sha512 = "lbk82UOIGuCEsZhPj8rNAkXSDXd6p0QLzIuSsCdxrqnqU56St4eyOB+AlXsVgVeRmetPTYydIuvFfpDIed8mqw==";
       };
     };
-    "unified-diff-1.0.2" = {
-      name = "unified-diff";
-      packageName = "unified-diff";
-      version = "1.0.2";
+    "unified-9.2.0" = {
+      name = "unified";
+      packageName = "unified";
+      version = "9.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unified-diff/-/unified-diff-1.0.2.tgz";
-        sha1 = "920b33da9abae087dd444904372e7c3fbd367d85";
+        url = "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz";
+        sha512 = "vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg==";
       };
     };
-    "unified-engine-4.0.1" = {
-      name = "unified-engine";
-      packageName = "unified-engine";
-      version = "4.0.1";
+    "unified-diff-3.0.1" = {
+      name = "unified-diff";
+      packageName = "unified-diff";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unified-engine/-/unified-engine-4.0.1.tgz";
-        sha1 = "9692aa97fd5c4ec36889779e12514bef8e863fc3";
+        url = "https://registry.npmjs.org/unified-diff/-/unified-diff-3.0.1.tgz";
+        sha512 = "oDngdkrYYNRUYi19GqyvWNZmOGGsdu1GEOKYy+6iXGphvaoDDidVj3frOC7SumQ2SCWixaHELiXQe7fwcLrMAA==";
       };
     };
     "unified-engine-6.0.1" = {
@@ -45585,13 +48776,22 @@ let
         sha512 = "iDJYH82TgcezQA4IZzhCNJQx7vBsGk4h9s4Q7Fscrb3qcPsxBqVrVNYez2W3sBVTxuU1bFAhyRpA6ba/R4j93A==";
       };
     };
-    "unified-message-control-1.0.4" = {
+    "unified-engine-8.0.0" = {
+      name = "unified-engine";
+      packageName = "unified-engine";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unified-engine/-/unified-engine-8.0.0.tgz";
+        sha512 = "vLUezxCnjzz+ya4pYouRQVMT8k82Rk4fIj406UidRnSFJdGXFaQyQklAnalsQHJrLqAlaYPkXPUa1upfVSHGCA==";
+      };
+    };
+    "unified-message-control-3.0.1" = {
       name = "unified-message-control";
       packageName = "unified-message-control";
-      version = "1.0.4";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unified-message-control/-/unified-message-control-1.0.4.tgz";
-        sha512 = "e1dEtN4Z/TvLn/qHm+xeZpzqhJTtfZusFErk336kkZVpqrJYiV9ptxq+SbRPFMlN0OkjDYHmVJ929KYjsMTo3g==";
+        url = "https://registry.npmjs.org/unified-message-control/-/unified-message-control-3.0.1.tgz";
+        sha512 = "K2Kvvp1DBzeuxYLLsumZh/gDWUTl4e2z/P3VReFirC78cfHKtQifbhnfRrSBtKtd1Uc6cvYTW0/SZIUaMAEcTg==";
       };
     };
     "union-0.5.0" = {
@@ -45657,15 +48857,6 @@ let
         sha512 = "zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==";
       };
     };
-    "unique-stream-1.0.0" = {
-      name = "unique-stream";
-      packageName = "unique-stream";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unique-stream/-/unique-stream-1.0.0.tgz";
-        sha1 = "d59a4a75427447d9aa6c91e70263f8d26a4b104b";
-      };
-    };
     "unique-stream-2.3.1" = {
       name = "unique-stream";
       packageName = "unique-stream";
@@ -45729,6 +48920,15 @@ let
         sha512 = "7xxyvKiZ1SC9vL5qrMqKub1T31gRHfau4242F69CcaOrXt//5PmRVOmDZ36UAEgiT+tZWzmQmbNZn+mVtnR9HQ==";
       };
     };
+    "unist-util-inspect-5.0.1" = {
+      name = "unist-util-inspect";
+      packageName = "unist-util-inspect";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-inspect/-/unist-util-inspect-5.0.1.tgz";
+        sha512 = "fPNWewS593JSmg49HbnE86BJKuBi1/nMWhDSccBvbARfxezEuJV85EaARR9/VplveiwCoLm2kWq+DhP8TBaDpw==";
+      };
+    };
     "unist-util-is-1.0.0" = {
       name = "unist-util-is";
       packageName = "unist-util-is";
@@ -45756,6 +48956,15 @@ let
         sha512 = "sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A==";
       };
     };
+    "unist-util-is-4.0.2" = {
+      name = "unist-util-is";
+      packageName = "unist-util-is";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-is/-/unist-util-is-4.0.2.tgz";
+        sha512 = "Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ==";
+      };
+    };
     "unist-util-map-1.0.5" = {
       name = "unist-util-map";
       packageName = "unist-util-map";
@@ -45792,6 +49001,15 @@ let
         sha512 = "tLqd653ArxJIPnKII6LMZwH+mb5q+n/GtXQZo6S6csPRs5zB0u79Yw8ouR3wTw8wxvdJFhpP6Y7jorWdCgLO0A==";
       };
     };
+    "unist-util-remove-position-2.0.1" = {
+      name = "unist-util-remove-position";
+      packageName = "unist-util-remove-position";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz";
+        sha512 = "fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA==";
+      };
+    };
     "unist-util-stringify-position-1.1.2" = {
       name = "unist-util-stringify-position";
       packageName = "unist-util-stringify-position";
@@ -45819,6 +49037,15 @@ let
         sha512 = "AvGNk7Bb//EmJZyhtRUnNMEpId/AZ5Ph/KUpTI09WHQuDZHKovQ1oEv3mfmKpWKtoMzyMC4GLBm1Zy5k12fjIw==";
       };
     };
+    "unist-util-visit-2.0.3" = {
+      name = "unist-util-visit";
+      packageName = "unist-util-visit";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz";
+        sha512 = "iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q==";
+      };
+    };
     "unist-util-visit-children-1.1.4" = {
       name = "unist-util-visit-children";
       packageName = "unist-util-visit-children";
@@ -45837,13 +49064,22 @@ let
         sha512 = "DyN5vD4NE3aSeB+PXYNKxzGsfocxp6asDc2XXE3b0ekO2BaRUpBicbbUygfSvYfUz1IkmjFR1YF7dPklraMZ2g==";
       };
     };
-    "universal-analytics-0.4.20" = {
+    "unist-util-visit-parents-3.1.0" = {
+      name = "unist-util-visit-parents";
+      packageName = "unist-util-visit-parents";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-3.1.0.tgz";
+        sha512 = "0g4wbluTF93npyPrp/ymd3tCDTMnP0yo2akFD2FIBAYXq/Sga3lwaU1D8OYKbtpioaI6CkDcQ6fsMnmtzt7htw==";
+      };
+    };
+    "universal-analytics-0.4.23" = {
       name = "universal-analytics";
       packageName = "universal-analytics";
-      version = "0.4.20";
+      version = "0.4.23";
       src = fetchurl {
-        url = "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.20.tgz";
-        sha512 = "gE91dtMvNkjO+kWsPstHRtSwHXz0l2axqptGYp5ceg4MsuurloM0PU3pdOfpb5zBXUvyjT4PwhWK2m39uczZuw==";
+        url = "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz";
+        sha512 = "lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==";
       };
     };
     "universal-user-agent-4.0.1" = {
@@ -45855,13 +49091,13 @@ let
         sha512 = "LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg==";
       };
     };
-    "universal-user-agent-5.0.0" = {
+    "universal-user-agent-6.0.0" = {
       name = "universal-user-agent";
       packageName = "universal-user-agent";
-      version = "5.0.0";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-5.0.0.tgz";
-        sha512 = "B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q==";
+        url = "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz";
+        sha512 = "isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==";
       };
     };
     "universalify-0.1.2" = {
@@ -46026,6 +49262,15 @@ let
         sha1 = "d2f0f737d16b0615e72a6935ed04214572d56f97";
       };
     };
+    "unzipper-0.10.11" = {
+      name = "unzipper";
+      packageName = "unzipper";
+      version = "0.10.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz";
+        sha512 = "+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==";
+      };
+    };
     "upath-1.2.0" = {
       name = "upath";
       packageName = "upath";
@@ -46062,22 +49307,13 @@ let
         sha512 = "grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==";
       };
     };
-    "update-notifier-4.0.0" = {
+    "update-notifier-4.1.1" = {
       name = "update-notifier";
       packageName = "update-notifier";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/update-notifier/-/update-notifier-4.0.0.tgz";
-        sha512 = "p9zf71hWt5GVXM4iEBujpUgx8mK9AWiCCapEJm/O1z5ntCim83Z1ATqzZFBHFYqx03laMqv8LiDgs/7ikXjf/g==";
-      };
-    };
-    "update-notifier-4.1.0" = {
-      name = "update-notifier";
-      packageName = "update-notifier";
-      version = "4.1.0";
+      version = "4.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz";
-        sha512 = "w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==";
+        url = "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.1.tgz";
+        sha512 = "9y+Kds0+LoLG6yN802wVXoIfxYEwh3FlZwzMwpCZp62S2i1/Jzeqb9Eeeju3NSHccGGasfGlK5/vEHbAifYRDg==";
       };
     };
     "upnp-device-client-1.0.2" = {
@@ -46107,13 +49343,22 @@ let
         sha1 = "f6b4501c2ec4cdd26ba78be7222961de77621598";
       };
     };
-    "upper-case-first-1.1.2" = {
+    "upper-case-2.0.1" = {
+      name = "upper-case";
+      packageName = "upper-case";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/upper-case/-/upper-case-2.0.1.tgz";
+        sha512 = "laAsbea9SY5osxrv7S99vH9xAaJKrw5Qpdh4ENRLcaxipjKsiaBwiAsxfa8X5mObKNTQPsupSq0J/VIxsSJe3A==";
+      };
+    };
+    "upper-case-first-2.0.1" = {
       name = "upper-case-first";
       packageName = "upper-case-first";
-      version = "1.1.2";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/upper-case-first/-/upper-case-first-1.1.2.tgz";
-        sha1 = "5d79bedcff14419518fd2edb0a0507c9b6859115";
+        url = "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.1.tgz";
+        sha512 = "105J8XqQ+9RxW3l9gHZtgve5oaiR9TIwvmZAMAIZWRHe00T21cdvewKORTlOJf/zXW6VukuTshM+HXZNWz7N5w==";
       };
     };
     "uri-js-3.0.2" = {
@@ -46125,13 +49370,13 @@ let
         sha1 = "f90b858507f81dea4dcfbb3c4c3dbfa2b557faaa";
       };
     };
-    "uri-js-4.2.2" = {
+    "uri-js-4.4.0" = {
       name = "uri-js";
       packageName = "uri-js";
-      version = "4.2.2";
+      version = "4.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz";
-        sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==";
+        url = "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz";
+        sha512 = "B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==";
       };
     };
     "urijs-1.19.2" = {
@@ -46242,6 +49487,15 @@ let
         sha1 = "1505a03a289a48cbd7a434efbaeec5055f5633a9";
       };
     };
+    "url-toolkit-2.2.0" = {
+      name = "url-toolkit";
+      packageName = "url-toolkit";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.0.tgz";
+        sha512 = "Rde0c9S4fJK3FaHim3DSgdQ8IFrSXcZCpAJo9T7/FA+BoQGhK0ow3mpwGQLJCPYsNn6TstpW7/7DzMpSpz9F9w==";
+      };
+    };
     "urlencode-1.1.0" = {
       name = "urlencode";
       packageName = "urlencode";
@@ -46269,15 +49523,6 @@ let
         sha512 = "cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==";
       };
     };
-    "user-home-1.1.1" = {
-      name = "user-home";
-      packageName = "user-home";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/user-home/-/user-home-1.1.1.tgz";
-        sha1 = "2b5be23a32b63a7c9deb8d0f28d485724a3df190";
-      };
-    };
     "user-home-2.0.0" = {
       name = "user-home";
       packageName = "user-home";
@@ -46296,13 +49541,13 @@ let
         sha1 = "b9a22f0914e0a86140633dacc302e5f4fa450677";
       };
     };
-    "ut_metadata-3.5.0" = {
+    "ut_metadata-3.5.1" = {
       name = "ut_metadata";
       packageName = "ut_metadata";
-      version = "3.5.0";
+      version = "3.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ut_metadata/-/ut_metadata-3.5.0.tgz";
-        sha512 = "eqiRaDYiDl94uVB9oR8Yor+xl0rSKUovsqDxMt+hXzJt1yLYAo0HksVLlSiPPwkXBGFpERQADPanCi0EGhixnw==";
+        url = "https://registry.npmjs.org/ut_metadata/-/ut_metadata-3.5.1.tgz";
+        sha512 = "D98YM9dKGHzNFUuqLHLV1vXqbHNfyvTx/rADtvF9P6D1HYV/0JuArlpnQIHhOuWXQGUVyR5XJGRVLKbeNu0o5A==";
       };
     };
     "ut_pex-2.0.0" = {
@@ -46449,15 +49694,6 @@ let
         sha1 = "1352c340eb820e4d8ddba039a4fbfaa32ed4ef3a";
       };
     };
-    "utils-merge-1.0.0" = {
-      name = "utils-merge";
-      packageName = "utils-merge";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz";
-        sha1 = "0294fb922bb9375153541c4f7096231f287c8af8";
-      };
-    };
     "utils-merge-1.0.1" = {
       name = "utils-merge";
       packageName = "utils-merge";
@@ -46485,13 +49721,13 @@ let
         sha512 = "vRAKaS8WcYNgzbxyH2LdheqgL4sQLis8LXl7r/mN+O4mpWlUpoCsTtietxepLrft2q0TFA2gaIvSWN1iRkzW/w==";
       };
     };
-    "utp-native-2.1.10" = {
+    "utp-native-2.2.1" = {
       name = "utp-native";
       packageName = "utp-native";
-      version = "2.1.10";
+      version = "2.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/utp-native/-/utp-native-2.1.10.tgz";
-        sha512 = "VTjBvb/uE9gYqx2NGVPtAWhqv9itieW+wJceJg5G6Cl/2kBCnHDaFafw3fNgCvii7meTpC4AoZfy6OG0pnuQ/Q==";
+        url = "https://registry.npmjs.org/utp-native/-/utp-native-2.2.1.tgz";
+        sha512 = "7GvD4gjGyL1GaNtZAaBVHn8SeWgx9/xIVE1LufMR0m2pWUs1EVx5WiOCXrCHyt7e15+5SquBMoQfj888pJySxA==";
       };
     };
     "uuid-3.3.2" = {
@@ -46503,15 +49739,6 @@ let
         sha512 = "yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==";
       };
     };
-    "uuid-3.3.3" = {
-      name = "uuid";
-      packageName = "uuid";
-      version = "3.3.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz";
-        sha512 = "pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==";
-      };
-    };
     "uuid-3.4.0" = {
       name = "uuid";
       packageName = "uuid";
@@ -46521,24 +49748,6 @@ let
         sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
       };
     };
-    "uuid-7.0.1" = {
-      name = "uuid";
-      packageName = "uuid";
-      version = "7.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-7.0.1.tgz";
-        sha512 = "yqjRXZzSJm9Dbl84H2VDHpM3zMjzSJQ+hn6C4zqd5ilW+7P4ZmLEEqwho9LjP+tGuZlF4xrHQXT0h9QZUS/pWA==";
-      };
-    };
-    "uuid-7.0.2" = {
-      name = "uuid";
-      packageName = "uuid";
-      version = "7.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-7.0.2.tgz";
-        sha512 = "vy9V/+pKG+5ZTYKf+VcphF5Oc6EFiu3W8Nv3P3zIh0EqVI80ZxOzuPfe9EHjkFNvf8+xuTHVeei4Drydlx4zjw==";
-      };
-    };
     "uuid-7.0.3" = {
       name = "uuid";
       packageName = "uuid";
@@ -46548,22 +49757,13 @@ let
         sha512 = "DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==";
       };
     };
-    "uuid-8.1.0" = {
+    "uuid-8.3.0" = {
       name = "uuid";
       packageName = "uuid";
-      version = "8.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uuid/-/uuid-8.1.0.tgz";
-        sha512 = "CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg==";
-      };
-    };
-    "v8-compile-cache-2.0.3" = {
-      name = "v8-compile-cache";
-      packageName = "v8-compile-cache";
-      version = "2.0.3";
+      version = "8.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz";
-        sha512 = "CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w==";
+        url = "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz";
+        sha512 = "fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==";
       };
     };
     "v8-compile-cache-2.1.1" = {
@@ -46593,15 +49793,6 @@ let
         sha1 = "e8381cbebb5b5fd0ca8d2b09f6a0181a158db34d";
       };
     };
-    "v8flags-2.1.1" = {
-      name = "v8flags";
-      packageName = "v8flags";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/v8flags/-/v8flags-2.1.1.tgz";
-        sha1 = "aab1a1fa30d45f88dd321148875ac02c0b55e5b4";
-      };
-    };
     "v8flags-3.1.3" = {
       name = "v8flags";
       packageName = "v8flags";
@@ -46728,15 +49919,6 @@ let
         sha1 = "d826b89f7490732fabc0c0ed693ed475dcb29ebf";
       };
     };
-    "vary-1.0.1" = {
-      name = "vary";
-      packageName = "vary";
-      version = "1.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vary/-/vary-1.0.1.tgz";
-        sha1 = "99e4981566a286118dfb2b817357df7993376d10";
-      };
-    };
     "vary-1.1.2" = {
       name = "vary";
       packageName = "vary";
@@ -46791,6 +49973,267 @@ let
         sha1 = "cfde751860a15822db3b132bc59b116a4adaf01b";
       };
     };
+    "vega-5.15.0" = {
+      name = "vega";
+      packageName = "vega";
+      version = "5.15.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega/-/vega-5.15.0.tgz";
+        sha512 = "uygUtkZJm3/HNvNGLQSugZld4qvaiOMtH34tOGuS/MSGj7MaP0CLoFrthlas30lyMPQ42UfzX8tk5X+I91dFKQ==";
+      };
+    };
+    "vega-canvas-1.2.4" = {
+      name = "vega-canvas";
+      packageName = "vega-canvas";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-canvas/-/vega-canvas-1.2.4.tgz";
+        sha512 = "BI44AIAa13xSindGXMQm0FAhI2zx3F3conFmXhey63hqGsfvH/19nv+A0PEvSVa/lK4iPneMTpw583iffDiq3w==";
+      };
+    };
+    "vega-crossfilter-4.0.4" = {
+      name = "vega-crossfilter";
+      packageName = "vega-crossfilter";
+      version = "4.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-crossfilter/-/vega-crossfilter-4.0.4.tgz";
+        sha512 = "mXKhHxkgxJPwtTrMgK3Uw1bStfD+rmfKXsUvdIh1ZwmpheGOQM2Uflo3tQNh9j9wqu8xHywCcddohKpSRBt8HQ==";
+      };
+    };
+    "vega-dataflow-5.7.2" = {
+      name = "vega-dataflow";
+      packageName = "vega-dataflow";
+      version = "5.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-dataflow/-/vega-dataflow-5.7.2.tgz";
+        sha512 = "O6CEchGAQtEhDKfI3UHWVUbUcXSMsq5JrefvvB2hldx3XbHkEQioXtgAnK6OosyKpB1dJlVvFRMR40pwdNO1hw==";
+      };
+    };
+    "vega-encode-4.8.2" = {
+      name = "vega-encode";
+      packageName = "vega-encode";
+      version = "4.8.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-encode/-/vega-encode-4.8.2.tgz";
+        sha512 = "+PEimVqZysvLEScU/EJrpElBrNMcDHeVGmMhLkswxfVrFix4ialV3/iGB9Wcr5g1pOQcsBdNn7qUy2bjvAvIvA==";
+      };
+    };
+    "vega-event-selector-2.0.5" = {
+      name = "vega-event-selector";
+      packageName = "vega-event-selector";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-event-selector/-/vega-event-selector-2.0.5.tgz";
+        sha512 = "bRm02Fnd+YrZDni0yr5y9Co1Z1zrjd7hkwY+gi/Y7zDFOxnESGrbYtpHvWT8fL9AqmYU3wDpsJZGyP4htRUNAQ==";
+      };
+    };
+    "vega-expression-2.7.0" = {
+      name = "vega-expression";
+      packageName = "vega-expression";
+      version = "2.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-expression/-/vega-expression-2.7.0.tgz";
+        sha512 = "fMnHtcFfVAxuwjsKGh0qqP8OJNVABGIg0aSp33Jxh1D86LwDwaRe+EtwF1fv8YKD2AEiBl4UObC68QMT56MekQ==";
+      };
+    };
+    "vega-force-4.0.6" = {
+      name = "vega-force";
+      packageName = "vega-force";
+      version = "4.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-force/-/vega-force-4.0.6.tgz";
+        sha512 = "acB5DshAhSbaxKAk/DgzUK4ondTAZbD3tRY4Cy0NmZL+6QqM3RRePM1PQBAFAQMp9kXT9X/fh8tOlMKx/rwQnQ==";
+      };
+    };
+    "vega-format-1.0.3" = {
+      name = "vega-format";
+      packageName = "vega-format";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-format/-/vega-format-1.0.3.tgz";
+        sha512 = "hZpYZM/KRNnd+qmJ5oCGHvOzlxga9d2anqw+ji/jbA41piMzsyAa2f8CAoHpXgzsZNkGp+BL2Oya+251uZOjQw==";
+      };
+    };
+    "vega-functions-5.7.3" = {
+      name = "vega-functions";
+      packageName = "vega-functions";
+      version = "5.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-functions/-/vega-functions-5.7.3.tgz";
+        sha512 = "9X9bKhKZvglfRaFIDg2yRyBzayabsQHRAyVk0bJBU04mgfj6myKRhO6JF4av+LgNHyJFsOPeJxkiOYZ3x6Z6rg==";
+      };
+    };
+    "vega-geo-4.3.6" = {
+      name = "vega-geo";
+      packageName = "vega-geo";
+      version = "4.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-geo/-/vega-geo-4.3.6.tgz";
+        sha512 = "miRnxnf3KSgmHMR0H8y3NSg58BnijVtxg508PDrw3T4ARRYxGf5yglcEYFcc06iRYTV3B43pOg0Se5dLowmTEw==";
+      };
+    };
+    "vega-hierarchy-4.0.8" = {
+      name = "vega-hierarchy";
+      packageName = "vega-hierarchy";
+      version = "4.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-hierarchy/-/vega-hierarchy-4.0.8.tgz";
+        sha512 = "8O2asfoAEaW8Hfu/06m6t5BErrNo0OJzU8XyKon8aeGY2YbQMKT7fiEzUrzDC39Zb2suThuzBOjpcwiu7rh/Hg==";
+      };
+    };
+    "vega-loader-4.3.2" = {
+      name = "vega-loader";
+      packageName = "vega-loader";
+      version = "4.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-loader/-/vega-loader-4.3.2.tgz";
+        sha512 = "g+hd4xCxGP4zlSdvvprDrHTulUN1xB1k63ooqtCzhps3fji7N8DQ3RWPTJZLyuwYpjxim3BYrp4aJk3OHElcaA==";
+      };
+    };
+    "vega-parser-6.0.4" = {
+      name = "vega-parser";
+      packageName = "vega-parser";
+      version = "6.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-parser/-/vega-parser-6.0.4.tgz";
+        sha512 = "AxFvM0JgS/hyqlIdcN1B74PRO5cpU9SRRh8wBfirHRkFWPxqfP2EeFmQxisGV5wSqAUVTqqqk0suWQuU3YHPcQ==";
+      };
+    };
+    "vega-projection-1.4.4" = {
+      name = "vega-projection";
+      packageName = "vega-projection";
+      version = "1.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-projection/-/vega-projection-1.4.4.tgz";
+        sha512 = "v1Tx/8khpOmzpscXkxq2+MGjs7jG3A8yFfQJ8kTh8eIko0f5V+QLujTfEvdllYXw6f3DE6K2fYInb71B0GAjIw==";
+      };
+    };
+    "vega-regression-1.0.8" = {
+      name = "vega-regression";
+      packageName = "vega-regression";
+      version = "1.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-regression/-/vega-regression-1.0.8.tgz";
+        sha512 = "NdLoDctaxtCKP4udGg2SmplyK8098L8EAFEy/TEECx0wbRcBzPs2e/U4uCShzoPHILFULdOqs+sq/xwhp9X3lA==";
+      };
+    };
+    "vega-runtime-6.1.2" = {
+      name = "vega-runtime";
+      packageName = "vega-runtime";
+      version = "6.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-runtime/-/vega-runtime-6.1.2.tgz";
+        sha512 = "baaMe8PKynJlJfpcZR4jHDSbTM9TYzU4x/XLphQ/6lZnF9WMH+gGOVlVRWZCLH4K0sgCxBMKC/THOpRFkO6jJA==";
+      };
+    };
+    "vega-scale-7.1.0" = {
+      name = "vega-scale";
+      packageName = "vega-scale";
+      version = "7.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-scale/-/vega-scale-7.1.0.tgz";
+        sha512 = "8QgHarFLgnX60DL9h91GNSzvXtBVUfCx57+XKUlCROfHti4KASTRMicBgfJ3lwJBACNefpEW+9ut+1iuIHONwQ==";
+      };
+    };
+    "vega-scenegraph-4.9.1" = {
+      name = "vega-scenegraph";
+      packageName = "vega-scenegraph";
+      version = "4.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-scenegraph/-/vega-scenegraph-4.9.1.tgz";
+        sha512 = "4OyFlMXwecM7C18zrXeBgckzLaFncLdnj1ExcF3dFfsgPLBSRW2x+eCRQZmD12UHoLFGuehB5s3YNfoQtCP5YA==";
+      };
+    };
+    "vega-selections-5.1.3" = {
+      name = "vega-selections";
+      packageName = "vega-selections";
+      version = "5.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-selections/-/vega-selections-5.1.3.tgz";
+        sha512 = "fy+EBPA3pA3i4IeQ2EUHQI83RZMCS4ZoXu1RI1Oa/CFLu8iXxwraRaD9sUH93GPj4pU22g4ywjbHzsrZ7x4ONg==";
+      };
+    };
+    "vega-statistics-1.7.8" = {
+      name = "vega-statistics";
+      packageName = "vega-statistics";
+      version = "1.7.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-statistics/-/vega-statistics-1.7.8.tgz";
+        sha512 = "JkxS7hkFLOMBgEOfITQ1kisLGuWtJ0gAhxQ1OmuIx5Un9yyFY3+hk8HSgeZHwIPktsV+2Bx5aPUHES85YzBD/Q==";
+      };
+    };
+    "vega-time-2.0.3" = {
+      name = "vega-time";
+      packageName = "vega-time";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-time/-/vega-time-2.0.3.tgz";
+        sha512 = "LXsB5Ej56jcDRvoWHp1YegNuZSD+cFWGBEWobRXbigmRNDfa4HGmzUon46G+KBj+VeRRGeu5Zq4LSG2goWmIYw==";
+      };
+    };
+    "vega-transforms-4.9.2" = {
+      name = "vega-transforms";
+      packageName = "vega-transforms";
+      version = "4.9.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-transforms/-/vega-transforms-4.9.2.tgz";
+        sha512 = "vDI8jJOlnswSuEf6BekI04jWNttgOLzDRONaWZGTH8X5yI3GgkB4Ts45U0LayRExQSq7gxt95k/02jXGGzOTpA==";
+      };
+    };
+    "vega-typings-0.18.2" = {
+      name = "vega-typings";
+      packageName = "vega-typings";
+      version = "0.18.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-typings/-/vega-typings-0.18.2.tgz";
+        sha512 = "t7PAmcqPUmSV44l2NVJOoblhomPlgjO7rxAUs/HXnmyVbGHI+6ulUPjGBWWZU1ebu09T+SYazAwjr6lAd2CHgQ==";
+      };
+    };
+    "vega-util-1.15.1" = {
+      name = "vega-util";
+      packageName = "vega-util";
+      version = "1.15.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-util/-/vega-util-1.15.1.tgz";
+        sha512 = "kEbRQiVUP42dyou2LF8I+3TlBtk4TODTlnLzdSoI//uahXvDnz1ulfprWljfcHPbVjziObaFNWkpT56oSMTx+g==";
+      };
+    };
+    "vega-view-5.8.2" = {
+      name = "vega-view";
+      packageName = "vega-view";
+      version = "5.8.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-view/-/vega-view-5.8.2.tgz";
+        sha512 = "d+u5FGs3t7LUVRoGimvroHkbO2orrtJMUt2P8UVu4alMdDcgZUSmwOZWc/gMkBGlWD8P9q7832xTWdJ3gSXL4A==";
+      };
+    };
+    "vega-view-transforms-4.5.7" = {
+      name = "vega-view-transforms";
+      packageName = "vega-view-transforms";
+      version = "4.5.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-view-transforms/-/vega-view-transforms-4.5.7.tgz";
+        sha512 = "dcrEHJL/+KPAe7Eq4Me7rq5+O13yWL1X/n3Fu6xKGL2TnBSBy4WVla+WFBdD82GRIU0Fi5DFkL/dE3cTeitvag==";
+      };
+    };
+    "vega-voronoi-4.1.4" = {
+      name = "vega-voronoi";
+      packageName = "vega-voronoi";
+      version = "4.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-voronoi/-/vega-voronoi-4.1.4.tgz";
+        sha512 = "z5aAprA9XbdKZ2oAs1tWR9Cw+W9LQJZCn9kH+x6VmnqiVhCbMZPDoZK9sIgso163RDF9Fdu+0zLXX58l+AjzWA==";
+      };
+    };
+    "vega-wordcloud-4.1.2" = {
+      name = "vega-wordcloud";
+      packageName = "vega-wordcloud";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vega-wordcloud/-/vega-wordcloud-4.1.2.tgz";
+        sha512 = "LZzqaRuE0bR9x9e9dLax6GYnUO+MtJhGx5fRk4F0Q8+X2f0u/BfOyMG459tnbyZQIy9SP8ZBLBlkp+ujmK8XXQ==";
+      };
+    };
     "vendors-1.0.4" = {
       name = "vendors";
       packageName = "vendors";
@@ -46800,13 +50243,13 @@ let
         sha512 = "/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==";
       };
     };
-    "verda-1.0.4" = {
+    "verda-1.1.1" = {
       name = "verda";
       packageName = "verda";
-      version = "1.0.4";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/verda/-/verda-1.0.4.tgz";
-        sha512 = "tiM4qEEhTnPJCdPw6z6bMqPfGQXYjyc8744j0/Qu5ItankFFUN5VRKuY8oweoKsR0ADMQwOdGUTzaPbEYMHAFg==";
+        url = "https://registry.npmjs.org/verda/-/verda-1.1.1.tgz";
+        sha512 = "8nki9HjTh39EFuIYY2snCCdIDU0z4LmFN7tQ9oZByW2AQpPYpWDHwRqewWgUt9PVcDsXDSZbJWSuJwGnyAj8gg==";
       };
     };
     "verror-1.1.0" = {
@@ -46881,13 +50324,13 @@ let
         sha512 = "y7Y3gH9BsUSdD4KzHsuMaCzRjglXN0W2EcMf0gpvu6+SbsGhMje7xDc8AEoeXy6mIwCKMI6BkjMsRjzQbhMEjQ==";
       };
     };
-    "vfile-4.1.1" = {
+    "vfile-4.2.0" = {
       name = "vfile";
       packageName = "vfile";
-      version = "4.1.1";
+      version = "4.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vfile/-/vfile-4.1.1.tgz";
-        sha512 = "lRjkpyDGjVlBA7cDQhQ+gNcvB1BGaTHYuSOcY3S7OhDmBtnzX95FhtZZDecSTDm6aajFymyve6S5DN4ZHGezdQ==";
+        url = "https://registry.npmjs.org/vfile/-/vfile-4.2.0.tgz";
+        sha512 = "a/alcwCvtuc8OX92rqqo7PflxiCgXRFjdyoGVuYV+qbgCb0GgZJRvIgCD4+U/Kl1yhaRsaTwksF88xbPyGsgpw==";
       };
     };
     "vfile-find-down-1.0.0" = {
@@ -46908,13 +50351,13 @@ let
         sha1 = "5604da6fe453b34350637984eb5fe4909e280390";
       };
     };
-    "vfile-find-up-2.0.2" = {
+    "vfile-find-up-5.0.1" = {
       name = "vfile-find-up";
       packageName = "vfile-find-up";
-      version = "2.0.2";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vfile-find-up/-/vfile-find-up-2.0.2.tgz";
-        sha512 = "kYGgsSNpYjPxcEoud1aHNFfchsV0Z6Pyc8M5LfD1wX/tV0/bn32MKHDfv4fqV9DBLVuw2YSGOs31nRY/42DfUA==";
+        url = "https://registry.npmjs.org/vfile-find-up/-/vfile-find-up-5.0.1.tgz";
+        sha512 = "YWx8fhWQNYpHxFkR5fDO4lCdvPcY4jfCG7qUMHVvSp14vRfkEYxFG/vUEV0eJuXoKFfiAmMkAS8dekOYnpAJ+A==";
       };
     };
     "vfile-location-2.0.6" = {
@@ -46926,6 +50369,15 @@ let
         sha512 = "sSFdyCP3G6Ka0CEmN83A2YCMKIieHx0EDaj5IDP4g1pa5ZJ4FJDvpO0WODLxo4LUX4oe52gmSCK7Jw4SBghqxA==";
       };
     };
+    "vfile-location-3.1.0" = {
+      name = "vfile-location";
+      packageName = "vfile-location";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vfile-location/-/vfile-location-3.1.0.tgz";
+        sha512 = "FCZ4AN9xMcjFIG1oGmZKo61PjwJHRVA+0/tPUP2ul4uIwjGGndIxavEMRpWn5p4xwm/ZsdXp9YNygf1ZyE4x8g==";
+      };
+    };
     "vfile-message-1.1.1" = {
       name = "vfile-message";
       packageName = "vfile-message";
@@ -46953,15 +50405,6 @@ let
         sha1 = "21a7009bfe55e24df8ff432aa5bf6f6efa74e418";
       };
     };
-    "vfile-reporter-4.0.0" = {
-      name = "vfile-reporter";
-      packageName = "vfile-reporter";
-      version = "4.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-4.0.0.tgz";
-        sha1 = "ea6f0ae1342f4841573985e05f941736f27de9da";
-      };
-    };
     "vfile-reporter-5.1.2" = {
       name = "vfile-reporter";
       packageName = "vfile-reporter";
@@ -47016,15 +50459,6 @@ let
         sha512 = "Z4EcsX9aYNJZD1M+0jCeQ0t+5ETlHE88B2SF1fCuVxfn+XxHGJVec6tbHGqpULk4esOOLJEipAScOCDGHk+teQ==";
       };
     };
-    "vinyl-0.4.6" = {
-      name = "vinyl";
-      packageName = "vinyl";
-      version = "0.4.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vinyl/-/vinyl-0.4.6.tgz";
-        sha1 = "2f356c87a550a255461f36bbeb2a5ba8bf784847";
-      };
-    };
     "vinyl-0.5.3" = {
       name = "vinyl";
       packageName = "vinyl";
@@ -47052,15 +50486,6 @@ let
         sha1 = "b104d9e4409ffa325faadd520642d0a3b488b365";
       };
     };
-    "vinyl-fs-0.3.14" = {
-      name = "vinyl-fs";
-      packageName = "vinyl-fs";
-      version = "0.3.14";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-0.3.14.tgz";
-        sha1 = "9a6851ce1cac1c1cea5fe86c0931d620c2cfa9e6";
-      };
-    };
     "vinyl-fs-3.0.3" = {
       name = "vinyl-fs";
       packageName = "vinyl-fs";
@@ -47106,13 +50531,13 @@ let
         sha512 = "DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==";
       };
     };
-    "vls-0.2.0" = {
+    "vls-0.5.3" = {
       name = "vls";
       packageName = "vls";
-      version = "0.2.0";
+      version = "0.5.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vls/-/vls-0.2.0.tgz";
-        sha512 = "B6xMWi3sOVSitcLx4zKWB5vh1DLL0Okkqy5Fa7rHSmqvPhDDn7idU+vwjWZW8IzHQO1T+brxvDjbKuSnEXNPRw==";
+        url = "https://registry.npmjs.org/vls/-/vls-0.5.3.tgz";
+        sha512 = "NQKKl3JgiFuo52ra5gjlo5E/TztchkYRaKEWrBlMACNnnDlKkyFPRkQO/tE7A25Hs+y0t/HoOTsMGnAmhQY7Fg==";
       };
     };
     "vm-browserify-1.1.2" = {
@@ -47142,13 +50567,13 @@ let
         sha1 = "c066afb582bb1cb4128d60ea92392e94d5e9dbec";
       };
     };
-    "vsce-1.76.1" = {
+    "vsce-1.79.5" = {
       name = "vsce";
       packageName = "vsce";
-      version = "1.76.1";
+      version = "1.79.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vsce/-/vsce-1.76.1.tgz";
-        sha512 = "WNx6JzRywxAOuhVpjmrsI0eHMK0mCA0YKD8u++7sprmhwCHsoQIBpSf0vp6kVMHBmafknr1Z6K7IC5jIjsNL9Q==";
+        url = "https://registry.npmjs.org/vsce/-/vsce-1.79.5.tgz";
+        sha512 = "KZFOthGwxWFwoGqwrkzfTfyCZGuniTofnJ1a/dCzQ2HP93u1UuCKrTQyGT+SuGHu8sNqdBYNe0hb9GC3qCN7fg==";
       };
     };
     "vscode-css-languageservice-3.0.13" = {
@@ -47160,13 +50585,40 @@ let
         sha512 = "RWkO/c/A7iXhHEy3OuEqkCqavDjpD4NF2Ca8vjai+ZtEYNeHrm1ybTnBYLP4Ft1uXvvaaVtYA9HrDjD6+CUONg==";
       };
     };
-    "vscode-css-languageservice-4.2.0" = {
+    "vscode-css-languageservice-4.1.0" = {
       name = "vscode-css-languageservice";
       packageName = "vscode-css-languageservice";
-      version = "4.2.0";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-4.1.0.tgz";
+        sha512 = "iTX3dTp0Y0RFWhIux5jasI8r9swdiWVB1Z3OrZ10iDHxzkETjVPxAQ5BEQU4ag0Awc8TTg1C7sJriHQY2LO14g==";
+      };
+    };
+    "vscode-css-languageservice-4.3.4" = {
+      name = "vscode-css-languageservice";
+      packageName = "vscode-css-languageservice";
+      version = "4.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-4.3.4.tgz";
+        sha512 = "/0HCaxiSL0Rmm3sJ+iyZekljKEYKo1UHSzX4UFOo5VDLgRhKomJf7g1p8glcbCHXB/70IcH8IhKnwlTznf8RPQ==";
+      };
+    };
+    "vscode-debugadapter-testsupport-1.41.0" = {
+      name = "vscode-debugadapter-testsupport";
+      packageName = "vscode-debugadapter-testsupport";
+      version = "1.41.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-debugadapter-testsupport/-/vscode-debugadapter-testsupport-1.41.0.tgz";
+        sha512 = "3aEDm+B6trSxUJWETbNBM5qbEAUbzPpLZ9YT9ez+C1ITG4uaioc8GIQtkVk1kpxP++WPWo0LVjYY8CbVRCRapg==";
+      };
+    };
+    "vscode-debugprotocol-1.41.0" = {
+      name = "vscode-debugprotocol";
+      packageName = "vscode-debugprotocol";
+      version = "1.41.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-css-languageservice/-/vscode-css-languageservice-4.2.0.tgz";
-        sha512 = "HIjl5bofrrxMMF05K/nq83270EdvteuAIio44FWd6tDdfhgg4vbofiAuXRSpXFi335f5+ekKdrzvPZm9ahqzsg==";
+        url = "https://registry.npmjs.org/vscode-debugprotocol/-/vscode-debugprotocol-1.41.0.tgz";
+        sha512 = "Sxp7kDDuhpEZiDaIfhM0jLF3RtMqvc6CpoESANE77t351uezsd/oDoqALLcOnmmsDzTgQ3W0sCvM4gErnjDFpA==";
       };
     };
     "vscode-emmet-helper-1.2.17" = {
@@ -47178,6 +50630,15 @@ let
         sha512 = "X4pzcrJ8dE7M3ArFuySF5fgipKDd/EauXkiJwtjBIVRWpVNq0tF9+lNCyuC7iDUwP3Oq7ow/TGssD3GdG96Jow==";
       };
     };
+    "vscode-emmet-helper-2.0.0" = {
+      name = "vscode-emmet-helper";
+      packageName = "vscode-emmet-helper";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-emmet-helper/-/vscode-emmet-helper-2.0.0.tgz";
+        sha512 = "ytR+Ajxs6zeYI0b4bPsl+nPU8xm852piJUtIwO1ajp1Pw7lwn3VeR+f4ynmxOl9IjfOdF2kW9T/qIkeFbKLwYw==";
+      };
+    };
     "vscode-html-languageservice-2.1.12" = {
       name = "vscode-html-languageservice";
       packageName = "vscode-html-languageservice";
@@ -47187,13 +50648,22 @@ let
         sha512 = "mIb5VMXM5jI97HzCk2eadI1K//rCEZXte0wBqA7PGXsyJH4KTyJUaYk9MR+mbfpUl2vMi3HZw9GUOLGYLc6l5w==";
       };
     };
-    "vscode-json-languageservice-3.7.0" = {
+    "vscode-json-languageservice-3.8.4" = {
       name = "vscode-json-languageservice";
       packageName = "vscode-json-languageservice";
-      version = "3.7.0";
+      version = "3.8.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.7.0.tgz";
-        sha512 = "nGLqcBhTjdfkl8Dz9sYGK/ZCTjscYFoIjYw+qqkWB+vyNfM0k/AyIoT73DQvB/PArteCKjEVfQUF72GRZEDSbQ==";
+        url = "https://registry.npmjs.org/vscode-json-languageservice/-/vscode-json-languageservice-3.8.4.tgz";
+        sha512 = "njDG0+YJvYNKXH+6plQGZMxgbifATFrRpC6Qnm/SAn4IW8bMHxsYunsxrjtpqK42CVSz6Lr7bpbTEZbVuOmFLw==";
+      };
+    };
+    "vscode-jsonrpc-3.5.0" = {
+      name = "vscode-jsonrpc";
+      packageName = "vscode-jsonrpc";
+      version = "3.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-3.5.0.tgz";
+        sha1 = "87239d9e166b2d7352245b8a813597804c1d63aa";
       };
     };
     "vscode-jsonrpc-3.6.0" = {
@@ -47223,13 +50693,13 @@ let
         sha512 = "JvONPptw3GAQGXlVV2utDcHx0BiY34FupW/kI6mZ5x06ER5DdPG/tXWMVHjTNULF5uKPOUUD0SaXg5QaubJL0A==";
       };
     };
-    "vscode-jsonrpc-5.1.0-next.1" = {
+    "vscode-jsonrpc-6.0.0-next.5" = {
       name = "vscode-jsonrpc";
       packageName = "vscode-jsonrpc";
-      version = "5.1.0-next.1";
+      version = "6.0.0-next.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-5.1.0-next.1.tgz";
-        sha512 = "mwLDojZkbmpizSJSmp690oa9FB9jig18SIDGZeBCvFc2/LYSRvMm/WwWtMBJuJ1MfFh7rZXfQige4Uje5Z9NzA==";
+        url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-6.0.0-next.5.tgz";
+        sha512 = "IAgsltQPwg/pXOPsdXgbUTCaO9VSKZwirZN5SGtkdYQ/R3VjeC4v00WTVvoNayWMZpoC3O9u0ogqmsKzKhVasQ==";
       };
     };
     "vscode-languageclient-4.0.1" = {
@@ -47241,13 +50711,22 @@ let
         sha512 = "0fuBZj9pMkeJ8OMyIvSGeRaRVhUaJt+yeFxi7a3sz/AbrngQdcxOovMXPgKuieoBSBKS05gXPS88BsWpJZfBkA==";
       };
     };
-    "vscode-languageclient-7.0.0-next.1" = {
+    "vscode-languageclient-7.0.0-next.9" = {
       name = "vscode-languageclient";
       packageName = "vscode-languageclient";
-      version = "7.0.0-next.1";
+      version = "7.0.0-next.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.0.0-next.9.tgz";
+        sha512 = "lFO+rN/i72CM2va6iKXq1lD7pJg8J93KEXf0w0boWVqU+DJhWzLrV3pXl8Xk1nCv//qOAyhlc/nx2KZCTeRF/A==";
+      };
+    };
+    "vscode-languageserver-3.5.1" = {
+      name = "vscode-languageserver";
+      packageName = "vscode-languageserver";
+      version = "3.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageclient/-/vscode-languageclient-7.0.0-next.1.tgz";
-        sha512 = "JrjCUhLpQZxQ5VpWpilOHDMhVsn0fdN5jBh1uFNhSr5c2loJvRdr9Km2EuSQOFfOQsBKx0+xvY8PbsypNEcJ6w==";
+        url = "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-3.5.1.tgz";
+        sha512 = "RYUKn0DgHTFcS8kS4VaNCjNMaQXYqiXdN9bKrFjXzu5RPKfjIYcoh47oVWwZj4L3R/DPB0Se7HPaDatvYY2XgQ==";
       };
     };
     "vscode-languageserver-4.0.0" = {
@@ -47313,13 +50792,22 @@ let
         sha512 = "zrMuwHOAQRhjDSnflWdJG+O2ztMWss8GqUUB8dXLR/FPenwkiBNkMIJJYfSN6sgskvsF0rHAoBowNQfbyZnnvw==";
       };
     };
-    "vscode-languageserver-protocol-3.16.0-next.2" = {
+    "vscode-languageserver-protocol-3.16.0-next.7" = {
       name = "vscode-languageserver-protocol";
       packageName = "vscode-languageserver-protocol";
-      version = "3.16.0-next.2";
+      version = "3.16.0-next.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0-next.7.tgz";
+        sha512 = "tOjrg+K3RddJ547zpC9/LAgTbzadkPuHlqJFFWIcKjVhiJOh73XyY+Ngcu9wukGaTsuSGjJ0W8rlmwanixa0FQ==";
+      };
+    };
+    "vscode-languageserver-protocol-3.5.1" = {
+      name = "vscode-languageserver-protocol";
+      packageName = "vscode-languageserver-protocol";
+      version = "3.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.16.0-next.2.tgz";
-        sha512 = "atmkGT/W6tF0cx4SaWFYtFs2UeSeC28RPiap9myv2YZTaTCFvTBEPNWrU5QRKfkyM0tbgtGo6T3UCQ8tkDpjzA==";
+        url = "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.5.1.tgz";
+        sha512 = "1fPDIwsAv1difCV+8daOrJEGunClNJWqnUHq/ncWrjhitKWXgGmRCjlwZ3gDUTt54yRcvXz1PXJDaRNvNH6pYA==";
       };
     };
     "vscode-languageserver-protocol-3.6.0" = {
@@ -47367,22 +50855,40 @@ let
         sha512 = "+a9MPUQrNGRrGU630OGbYVQ+11iOIovjCkqxajPa9w57Sd5ruK8WQNsslzpa0x/QJqC8kRc2DUxWjIFwoNm4ZQ==";
       };
     };
-    "vscode-languageserver-types-3.16.0-next.1" = {
+    "vscode-languageserver-types-3.16.0-next.2" = {
       name = "vscode-languageserver-types";
       packageName = "vscode-languageserver-types";
-      version = "3.16.0-next.1";
+      version = "3.16.0-next.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.1.tgz";
-        sha512 = "tZFUSbyjUcrh+qQf13ALX4QDdOfDX0cVaBFgy7ktJ0VwS7AW/yRKgGPSxVqqP9OCMNPdqP57O5q47w2pEwfaUg==";
+        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.2.tgz";
+        sha512 = "QjXB7CKIfFzKbiCJC4OWC8xUncLsxo19FzGVp/ADFvvi87PlmBSCAtZI5xwGjF5qE0xkLf0jjKUn3DzmpDP52Q==";
       };
     };
-    "vscode-languageserver-types-3.6.0" = {
+    "vscode-languageserver-types-3.16.0-next.3" = {
       name = "vscode-languageserver-types";
       packageName = "vscode-languageserver-types";
-      version = "3.6.0";
+      version = "3.16.0-next.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.6.0.tgz";
-        sha512 = "GSgQtGmtza4PoNH0+iHWylWg/1sw2DODezqYWRxbN910dPchI3CQaSJN76csKcQGv55wsWgX82T6n74q8mFSpw==";
+        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.16.0-next.3.tgz";
+        sha512 = "s/z5ZqSe7VpoXJ6JQcvwRiPPA3nG0nAcJ/HH03zoU6QaFfnkcgPK+HshC3WKPPnC2G08xA0iRB6h7kmyBB5Adg==";
+      };
+    };
+    "vscode-languageserver-types-3.5.0" = {
+      name = "vscode-languageserver-types";
+      packageName = "vscode-languageserver-types";
+      version = "3.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.5.0.tgz";
+        sha1 = "e48d79962f0b8e02de955e3f524908e2b19c0374";
+      };
+    };
+    "vscode-nls-2.0.2" = {
+      name = "vscode-nls";
+      packageName = "vscode-nls";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-nls/-/vscode-nls-2.0.2.tgz";
+        sha1 = "808522380844b8ad153499af5c3b03921aea02da";
       };
     };
     "vscode-nls-3.2.5" = {
@@ -47403,6 +50909,15 @@ let
         sha512 = "7bOHxPsfyuCqmP+hZXscLhiHwe7CSuFE4hyhbs22xPIhQ4jv99FcR4eBzfYYVLP356HNFpdvz63FFb/xw6T4Iw==";
       };
     };
+    "vscode-nls-5.0.0" = {
+      name = "vscode-nls";
+      packageName = "vscode-nls";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vscode-nls/-/vscode-nls-5.0.0.tgz";
+        sha512 = "u0Lw+IYlgbEJFF6/qAqG2d1jQmJl0eyAGJHoAJqr2HT4M2BNuQYSEiSE75f52pXHSJm8AlTjnLLbBFPrdz2hpA==";
+      };
+    };
     "vscode-test-1.4.0" = {
       name = "vscode-test";
       packageName = "vscode-test";
@@ -47457,13 +50972,13 @@ let
         sha512 = "8TEXQxlldWAuIODdukIb+TR5s+9Ds40eSJrw+1iDDA9IFORPjMELarNQE3myz5XIkWWpdprmJjm1/SxMlWOC8A==";
       };
     };
-    "vscode-web-custom-data-0.1.4" = {
+    "vscode-web-custom-data-0.3.1" = {
       name = "vscode-web-custom-data";
       packageName = "vscode-web-custom-data";
-      version = "0.1.4";
+      version = "0.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vscode-web-custom-data/-/vscode-web-custom-data-0.1.4.tgz";
-        sha512 = "EFS8t2g3gMjvYY3sTknzHaURQ5AnemMcnKriZx43w97bsmEfEPaBJwJpuj/Zx9k4SwK+97dRtkKb2lvWQ2v0rw==";
+        url = "https://registry.npmjs.org/vscode-web-custom-data/-/vscode-web-custom-data-0.3.1.tgz";
+        sha512 = "pFWfUyoJoROfzk7l8+QK1aHsAcfb8fJP8iaEghMbASbYieaGOOnfovNjPIrJmhNf84RGn36R6r2030i9Eld7vA==";
       };
     };
     "vstream-0.1.0" = {
@@ -47475,13 +50990,22 @@ let
         sha1 = "13587190f34e72ba7a07ebbaa7e70ac147b1fb7d";
       };
     };
-    "vue-2.6.11" = {
+    "vue-2.6.12" = {
       name = "vue";
       packageName = "vue";
-      version = "2.6.11";
+      version = "2.6.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue/-/vue-2.6.12.tgz";
+        sha512 = "uhmLFETqPPNyuLLbsKz6ioJ4q7AZHzD8ZVFNATNyICSZouqP2Sz0rotWQC8UNBF6VGSCs5abnKJoStA6JbCbfg==";
+      };
+    };
+    "vue-3.0.0" = {
+      name = "vue";
+      packageName = "vue";
+      version = "3.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vue/-/vue-2.6.11.tgz";
-        sha512 = "VfPwgcGABbGAue9+sfrD4PuwFar7gPb1yl1UK1MwXoQPAw0BKSqWfoYCT/ThFrdEVWoI51dBuyCoiNU9bZDZxQ==";
+        url = "https://registry.npmjs.org/vue/-/vue-3.0.0.tgz";
+        sha512 = "ZMrAARZ32sGIaYKr7Fk2GZEBh/VhulSrGxcGBiAvbN4fhjl3tuJyNFbbbLFqGjndbLoBW66I2ECq8ICdvkKdJw==";
       };
     };
     "vue-cli-plugin-apollo-0.21.3" = {
@@ -47493,6 +51017,15 @@ let
         sha512 = "8CzRVrAsFkB9lpl600cRCNR9OUnrSYYAIVF9/qW4pP0TMXbhrd1F1wEAAN6E0CPimjTLB+qSt6zWS4vb2wC8Wg==";
       };
     };
+    "vue-codemod-0.0.4" = {
+      name = "vue-codemod";
+      packageName = "vue-codemod";
+      version = "0.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/vue-codemod/-/vue-codemod-0.0.4.tgz";
+        sha512 = "mAI9g4CcY3GJOOt/fTOC8Cz9lYtBEuSiDizQHgvcX0HpoKw1bNZBPaNUqFoNxnk6+nGZVgt0/CXYnq80rRK9vg==";
+      };
+    };
     "vue-eslint-parser-2.0.3" = {
       name = "vue-eslint-parser";
       packageName = "vue-eslint-parser";
@@ -47520,15 +51053,6 @@ let
         sha512 = "Kr21uPfthDc63nDl27AGQEhtt9VrZ9nkYk/NTftJ2ws9XiJwzJJCnCr3AITQ2jpRMA0XPGDECxYH8E027qMK9Q==";
       };
     };
-    "vue-jscodeshift-adapter-2.1.0" = {
-      name = "vue-jscodeshift-adapter";
-      packageName = "vue-jscodeshift-adapter";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vue-jscodeshift-adapter/-/vue-jscodeshift-adapter-2.1.0.tgz";
-        sha512 = "xDn8kpZ0/yG9Z1Z+osrfnd1k1y5AJIdUtqHWNJY2eRz37Gs1tftiZ8BUK89Pab0ddnwhZqh5eNFfOT0SFlZnWQ==";
-      };
-    };
     "vue-onsenui-helper-json-1.0.2" = {
       name = "vue-onsenui-helper-json";
       packageName = "vue-onsenui-helper-json";
@@ -47538,24 +51062,6 @@ let
         sha512 = "ikg8ruE17tIXF9mrVvKoOR3oyM9nk0TcmUHyeBWod5ILEH9DRN0+seX4gwsSbjdxMYlIIvmnCFPQeMdlcJqPJQ==";
       };
     };
-    "vue-sfc-descriptor-to-string-1.0.0" = {
-      name = "vue-sfc-descriptor-to-string";
-      packageName = "vue-sfc-descriptor-to-string";
-      version = "1.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vue-sfc-descriptor-to-string/-/vue-sfc-descriptor-to-string-1.0.0.tgz";
-        sha512 = "VYNMsrIPZQZau5Gk8IVtgonN1quOznP9/pLIF5m2c4R30KCDDe3NwthrsM7lSUY2K4lezcb8j3Wu8cQhBuZEMQ==";
-      };
-    };
-    "vue-template-compiler-2.6.11" = {
-      name = "vue-template-compiler";
-      packageName = "vue-template-compiler";
-      version = "2.6.11";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.11.tgz";
-        sha512 = "KIq15bvQDrcCjpGjrAhx4mUlyyHfdmTaoNfeoATHLAiWB+MU3cx4lOzMwrnUh9cCxy0Lt1T11hAFY6TQgroUAA==";
-      };
-    };
     "w3c-hr-time-1.0.2" = {
       name = "w3c-hr-time";
       packageName = "w3c-hr-time";
@@ -47574,6 +51080,15 @@ let
         sha512 = "p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==";
       };
     };
+    "wait-port-0.2.9" = {
+      name = "wait-port";
+      packageName = "wait-port";
+      version = "0.2.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wait-port/-/wait-port-0.2.9.tgz";
+        sha512 = "hQ/cVKsNqGZ/UbZB/oakOGFqic00YAMM5/PEj3Bt4vKarv2jWIWzDbqlwT94qMs/exAQAsvMOq99sZblV92zxQ==";
+      };
+    };
     "walk-2.3.14" = {
       name = "walk";
       packageName = "walk";
@@ -47619,22 +51134,13 @@ let
         sha1 = "340a717bde765726fa0aa07d721e0147a551df0c";
       };
     };
-    "watchpack-1.6.1" = {
+    "watchpack-1.7.4" = {
       name = "watchpack";
       packageName = "watchpack";
-      version = "1.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/watchpack/-/watchpack-1.6.1.tgz";
-        sha512 = "+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA==";
-      };
-    };
-    "watchpack-1.7.2" = {
-      name = "watchpack";
-      packageName = "watchpack";
-      version = "1.7.2";
+      version = "1.7.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/watchpack/-/watchpack-1.7.2.tgz";
-        sha512 = "ymVbbQP40MFTp+cNMvpyBpBtygHnPzPkHqoIwRRj/0B8KhqQwV8LaKjtbaxF2lK4vl8zN9wCxS46IFCU5K4W0g==";
+        url = "https://registry.npmjs.org/watchpack/-/watchpack-1.7.4.tgz";
+        sha512 = "aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg==";
       };
     };
     "watchpack-chokidar2-2.0.0" = {
@@ -47682,13 +51188,22 @@ let
         sha1 = "7137946585c73fe44882013853bd000c5d687a4e";
       };
     };
-    "web-push-3.4.3" = {
+    "web-namespaces-1.1.4" = {
+      name = "web-namespaces";
+      packageName = "web-namespaces";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/web-namespaces/-/web-namespaces-1.1.4.tgz";
+        sha512 = "wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw==";
+      };
+    };
+    "web-push-3.4.4" = {
       name = "web-push";
       packageName = "web-push";
-      version = "3.4.3";
+      version = "3.4.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/web-push/-/web-push-3.4.3.tgz";
-        sha512 = "nt/hRSlfRDTwvem//7jle1+cy62lBoxFshad8ai2Q4SlHZS00oHnrw5Dul3jSWXR+bOcnZkwnRs3tW+daNTuyA==";
+        url = "https://registry.npmjs.org/web-push/-/web-push-3.4.4.tgz";
+        sha512 = "tB0F+ccobsfw5jTWBinWJKyd/YdCdRbKj+CFSnsJeEgFYysOULvWFYyeCxn9KuQvG/3UF1t3cTAcJzBec5LCWA==";
       };
     };
     "web-tree-sitter-0.16.4" = {
@@ -47727,31 +51242,49 @@ let
         sha512 = "YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==";
       };
     };
-    "webidl-conversions-5.0.0" = {
+    "webidl-conversions-6.1.0" = {
       name = "webidl-conversions";
       packageName = "webidl-conversions";
-      version = "5.0.0";
+      version = "6.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz";
-        sha512 = "VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==";
+        url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz";
+        sha512 = "qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==";
       };
     };
-    "webpack-4.43.0" = {
+    "webpack-4.44.0" = {
       name = "webpack";
       packageName = "webpack";
-      version = "4.43.0";
+      version = "4.44.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz";
-        sha512 = "GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==";
+        url = "https://registry.npmjs.org/webpack/-/webpack-4.44.0.tgz";
+        sha512 = "wAuJxK123sqAw31SpkPiPW3iKHgFUiKvO7E7UZjtdExcsRe3fgav4mvoMM7vvpjLHVoJ6a0Mtp2fzkoA13e0Zw==";
       };
     };
-    "webpack-cli-3.3.11" = {
+    "webpack-4.44.1" = {
+      name = "webpack";
+      packageName = "webpack";
+      version = "4.44.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack/-/webpack-4.44.1.tgz";
+        sha512 = "4UOGAohv/VGUNQJstzEywwNxqX417FnjZgZJpJQegddzPmTvph37eBIRbRTfdySXzVtJXLJfbMN3mMYhM6GdmQ==";
+      };
+    };
+    "webpack-4.44.2" = {
+      name = "webpack";
+      packageName = "webpack";
+      version = "4.44.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz";
+        sha512 = "6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==";
+      };
+    };
+    "webpack-cli-3.3.12" = {
       name = "webpack-cli";
       packageName = "webpack-cli";
-      version = "3.3.11";
+      version = "3.3.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz";
-        sha512 = "dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==";
+        url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz";
+        sha512 = "NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==";
       };
     };
     "webpack-core-0.6.9" = {
@@ -47781,6 +51314,15 @@ let
         sha512 = "cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==";
       };
     };
+    "webpack-node-externals-2.5.1" = {
+      name = "webpack-node-externals";
+      packageName = "webpack-node-externals";
+      version = "2.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-node-externals/-/webpack-node-externals-2.5.1.tgz";
+        sha512 = "RWxKGibUU5kuJT6JDYmXGa3QsZskqIaiBvZ2wBxHlJzWVJPOyBMnroXf23uxEHnj1rYS8jNdyUfrNAXJ2bANNw==";
+      };
+    };
     "webpack-sources-1.4.3" = {
       name = "webpack-sources";
       packageName = "webpack-sources";
@@ -47790,6 +51332,24 @@ let
         sha512 = "lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==";
       };
     };
+    "webpack-stream-5.2.1" = {
+      name = "webpack-stream";
+      packageName = "webpack-stream";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webpack-stream/-/webpack-stream-5.2.1.tgz";
+        sha512 = "WvyVU0K1/VB1NZ7JfsaemVdG0PXAQUqbjUNW4A58th4pULvKMQxG+y33HXTL02JvD56ko2Cub+E2NyPwrLBT/A==";
+      };
+    };
+    "websocket-1.0.32" = {
+      name = "websocket";
+      packageName = "websocket";
+      version = "1.0.32";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/websocket/-/websocket-1.0.32.tgz";
+        sha512 = "i4yhcllSP4wrpoPMU2N0TQ/q0O94LRG/eUQjEAamRltjQ1oT1PFFKOG4i877OlJgCG8rw6LrrowJp+TYCEWF7Q==";
+      };
+    };
     "websocket-driver-0.6.5" = {
       name = "websocket-driver";
       packageName = "websocket-driver";
@@ -47835,6 +51395,15 @@ let
         sha512 = "hkwjMQTbBiwdJn3vEVjOyNwKZISp6r4GEl/J0N6Ukw2oeaETIylvAlf7G0o+a9FcFMThBIle0iCPYLTwumCOaQ==";
       };
     };
+    "well-known-symbols-2.0.0" = {
+      name = "well-known-symbols";
+      packageName = "well-known-symbols";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/well-known-symbols/-/well-known-symbols-2.0.0.tgz";
+        sha512 = "ZMjC3ho+KXo0BfJb7JgtQ5IBuvnShdlACNkKkdsqBmYw3bPAaJfPeYUo6tLUaT5tG/Gkh7xkpBhKRQ9e7pyg9Q==";
+      };
+    };
     "whatwg-encoding-1.0.5" = {
       name = "whatwg-encoding";
       packageName = "whatwg-encoding";
@@ -47880,13 +51449,13 @@ let
         sha512 = "WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==";
       };
     };
-    "whatwg-url-8.0.0" = {
+    "whatwg-url-8.2.2" = {
       name = "whatwg-url";
       packageName = "whatwg-url";
-      version = "8.0.0";
+      version = "8.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.0.0.tgz";
-        sha512 = "41ou2Dugpij8/LPO5Pq64K5q++MnRCBpEHvQr26/mArEKTkCV5aoXIqyhuYtE0pkqScXwhf2JP57rkRTYM29lQ==";
+        url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.2.2.tgz";
+        sha512 = "PcVnO6NiewhkmzV0qn7A+UZ9Xx4maNTI+O+TShmfE4pqjoCMwUMjkvoNhNHPTvgR7QH9Xt3R13iHuWy2sToFxQ==";
       };
     };
     "whatwg-url-compat-0.6.5" = {
@@ -48105,13 +51674,13 @@ let
         sha1 = "91e5129088330a0fe248520cee12d1ad6bb4ddfb";
       };
     };
-    "windows-release-3.3.1" = {
+    "windows-release-3.3.3" = {
       name = "windows-release";
       packageName = "windows-release";
-      version = "3.3.1";
+      version = "3.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/windows-release/-/windows-release-3.3.1.tgz";
-        sha512 = "Pngk/RDCaI/DkuHPlGTdIkDiTAnAkyMjoQMZqRsxydNl1qGXNIoZrB7RK8g53F2tEgQBMqQJHQdYZuQEEAu54A==";
+        url = "https://registry.npmjs.org/windows-release/-/windows-release-3.3.3.tgz";
+        sha512 = "OSOGH1QYiW5yVor9TtmXKQvt2vjQqbYS+DqmsZw+r7xDwLXEeT3JGW0ZppFmHx4diyXmxt238KFR3N9jzevBRg==";
       };
     };
     "winreg-0.0.12" = {
@@ -48177,13 +51746,13 @@ let
         sha1 = "3c9349d196207fd1bdff9d4bc43ef72510e3a12e";
       };
     };
-    "winston-2.4.4" = {
+    "winston-2.4.5" = {
       name = "winston";
       packageName = "winston";
-      version = "2.4.4";
+      version = "2.4.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/winston/-/winston-2.4.4.tgz";
-        sha512 = "NBo2Pepn4hK4V01UfcWcDlmiVTs7VTB1h7bgnB0rgP146bYhMxX0ypCz3lBOfNxCO4Zuek7yeT+y/zM1OfMw4Q==";
+        url = "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz";
+        sha512 = "TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==";
       };
     };
     "winston-3.2.1" = {
@@ -48195,13 +51764,22 @@ let
         sha512 = "zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==";
       };
     };
-    "winston-transport-4.3.0" = {
+    "winston-3.3.3" = {
+      name = "winston";
+      packageName = "winston";
+      version = "3.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz";
+        sha512 = "oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==";
+      };
+    };
+    "winston-transport-4.4.0" = {
       name = "winston-transport";
       packageName = "winston-transport";
-      version = "4.3.0";
+      version = "4.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.3.0.tgz";
-        sha512 = "B2wPuwUi3vhzn/51Uukcao4dIduEiPOcOt9HJ3QeaXgkJ5Z7UwpBzxS4ZGNHtrxrUvTwemsQiSys0ihOf8Mp1A==";
+        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz";
+        sha512 = "Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==";
       };
     };
     "with-5.1.1" = {
@@ -48276,6 +51854,15 @@ let
         sha512 = "rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==";
       };
     };
+    "workerpool-6.0.0" = {
+      name = "workerpool";
+      packageName = "workerpool";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workerpool/-/workerpool-6.0.0.tgz";
+        sha512 = "fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==";
+      };
+    };
     "wrap-ansi-2.1.0" = {
       name = "wrap-ansi";
       packageName = "wrap-ansi";
@@ -48321,6 +51908,15 @@ let
         sha512 = "r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==";
       };
     };
+    "wrap-ansi-7.0.0" = {
+      name = "wrap-ansi";
+      packageName = "wrap-ansi";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz";
+        sha512 = "YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==";
+      };
+    };
     "wrap-fn-0.1.5" = {
       name = "wrap-fn";
       packageName = "wrap-fn";
@@ -48474,22 +52070,13 @@ let
         sha512 = "GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==";
       };
     };
-    "ws-7.2.3" = {
-      name = "ws";
-      packageName = "ws";
-      version = "7.2.3";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.2.3.tgz";
-        sha512 = "HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ==";
-      };
-    };
-    "ws-7.3.0" = {
+    "ws-7.3.1" = {
       name = "ws";
       packageName = "ws";
-      version = "7.3.0";
+      version = "7.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ws/-/ws-7.3.0.tgz";
-        sha512 = "iFtXzngZVXPGgpTlP1rBqsUK82p9tKqsWRPg5L56egiljujJT3vGAYnHANvFxBieXrTFavhzhxW52jnaWV+w2w==";
+        url = "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz";
+        sha512 = "D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==";
       };
     };
     "x-default-browser-0.3.1" = {
@@ -48510,15 +52097,6 @@ let
         sha1 = "de520171d47b3f416f5587d629b89d26b12dc29d";
       };
     };
-    "x-is-function-1.0.4" = {
-      name = "x-is-function";
-      packageName = "x-is-function";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/x-is-function/-/x-is-function-1.0.4.tgz";
-        sha1 = "5d294dc3d268cbdd062580e0c5df77a391d1fa1e";
-      };
-    };
     "x-is-string-0.1.0" = {
       name = "x-is-string";
       packageName = "x-is-string";
@@ -48771,6 +52349,15 @@ let
         sha512 = "yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==";
       };
     };
+    "xmldom-0.3.0" = {
+      name = "xmldom";
+      packageName = "xmldom";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xmldom/-/xmldom-0.3.0.tgz";
+        sha512 = "z9s6k3wxE+aZHgXYxSTpGDo7BYOUfJsIRyoZiX6HTjwpwfS2wpQBQKa2fD+ShLyPkqDYo5ud7KitmLZ2Cd6r0g==";
+      };
+    };
     "xmlhttprequest-1.8.0" = {
       name = "xmlhttprequest";
       packageName = "xmlhttprequest";
@@ -48808,6 +52395,15 @@ let
         sha1 = "fcd82267e9351c13f0fb9c73307f25331d29c63a";
       };
     };
+    "xpath-0.0.27" = {
+      name = "xpath";
+      packageName = "xpath";
+      version = "0.0.27";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xpath/-/xpath-0.0.27.tgz";
+        sha512 = "fg03WRxtkCV6ohClePNAECYsmpKKTv5L8y/X3Dn1hQrec3POx2jHZ/0P2qQ6HvsrU1BmeqXcof3NGGueG6LxwQ==";
+      };
+    };
     "xpath-0.0.5" = {
       name = "xpath";
       packageName = "xpath";
@@ -48835,15 +52431,6 @@ let
         sha1 = "52a63e56ca0b84a7f3a5f3d61872f126ad7a5943";
       };
     };
-    "xregexp-4.3.0" = {
-      name = "xregexp";
-      packageName = "xregexp";
-      version = "4.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz";
-        sha512 = "7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g==";
-      };
-    };
     "xsalsa20-1.1.0" = {
       name = "xsalsa20";
       packageName = "xsalsa20";
@@ -48862,13 +52449,22 @@ let
         sha1 = "f164263325ae671f53836fb210c7ddbcfda46598";
       };
     };
-    "xstream-11.12.0" = {
+    "xss-1.0.8" = {
+      name = "xss";
+      packageName = "xss";
+      version = "1.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xss/-/xss-1.0.8.tgz";
+        sha512 = "3MgPdaXV8rfQ/pNn16Eio6VXYPTkqwa0vc7GkiymmY/DqR1SE/7VPAAVZz1GJsJFrllMYO3RHfEaiUGjab6TNw==";
+      };
+    };
+    "xstream-11.13.0" = {
       name = "xstream";
       packageName = "xstream";
-      version = "11.12.0";
+      version = "11.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xstream/-/xstream-11.12.0.tgz";
-        sha512 = "rceZqhyRPJdmDNh8hyFEnOacNrL4pTVkNZzoLvFqOVaIZHbM3bS15ycqI5V9eJXCRMfgEapwzcNzPjkIRUkv2Q==";
+        url = "https://registry.npmjs.org/xstream/-/xstream-11.13.0.tgz";
+        sha512 = "IiTO53rJ+Y5Jj7qMq0f3nwWU1KsajkJkzudTXJa/f3DQ1ifw5O6z/IFZuYF4osfPKhU85jyGaSfY3zqdiMNTVw==";
       };
     };
     "xtend-2.1.2" = {
@@ -48880,15 +52476,6 @@ let
         sha1 = "6efecc2a4dad8e6962c4901b337ce7ba87b5d28b";
       };
     };
-    "xtend-3.0.0" = {
-      name = "xtend";
-      packageName = "xtend";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz";
-        sha1 = "5cce7407baf642cba7becda568111c493f59665a";
-      };
-    };
     "xtend-4.0.2" = {
       name = "xtend";
       packageName = "xtend";
@@ -48916,6 +52503,15 @@ let
         sha512 = "r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==";
       };
     };
+    "yaeti-0.0.6" = {
+      name = "yaeti";
+      packageName = "yaeti";
+      version = "0.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yaeti/-/yaeti-0.0.6.tgz";
+        sha1 = "f26f484d72684cf42bedfb76970aa1608fbf9577";
+      };
+    };
     "yallist-2.1.2" = {
       name = "yallist";
       packageName = "yallist";
@@ -48988,13 +52584,13 @@ let
         sha1 = "87cfa5a9613f48e26005420d6a8ee0da6fe8daec";
       };
     };
-    "yaml-language-server-0.7.2" = {
+    "yaml-language-server-0.10.1" = {
       name = "yaml-language-server";
       packageName = "yaml-language-server";
-      version = "0.7.2";
+      version = "0.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.7.2.tgz";
-        sha512 = "3jBsYrtnlaI5H6psW+0qzVh9LoQ21fuvC8KIupjPbQURb6cAMUGH5aElKREAevSSpgs7VIoqU1ZMCglIHm32OA==";
+        url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.10.1.tgz";
+        sha512 = "R9SEt/nWTuZ8weB040L7yyaIVARlZ0ian1Kv6ptu4+xyVlIMobTZXaBTtgyhlMWqcQ3BpsAZu4q/2plRVG3tLQ==";
       };
     };
     "yamljs-0.3.0" = {
@@ -49042,15 +52638,6 @@ let
         sha512 = "Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==";
       };
     };
-    "yargs-13.2.4" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "13.2.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-13.2.4.tgz";
-        sha512 = "HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg==";
-      };
-    };
     "yargs-13.3.2" = {
       name = "yargs";
       packageName = "yargs";
@@ -49069,22 +52656,13 @@ let
         sha512 = "ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==";
       };
     };
-    "yargs-15.1.0" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "15.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-15.1.0.tgz";
-        sha512 = "T39FNN1b6hCW4SOIk1XyTOWxtXdcen0t+XYrysQmChzSipvhBO8Bj0nK1ozAasdk24dNWuMZvr4k24nz+8HHLg==";
-      };
-    };
-    "yargs-15.3.1" = {
+    "yargs-15.4.1" = {
       name = "yargs";
       packageName = "yargs";
-      version = "15.3.1";
+      version = "15.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz";
-        sha512 = "92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==";
+        url = "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz";
+        sha512 = "aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==";
       };
     };
     "yargs-3.10.0" = {
@@ -49132,15 +52710,6 @@ let
         sha512 = "huO4Fr1f9PmiJJdll5kwoS2e4GqzGSsMT3PPMpOwoVkOK8ckqAewMTZyA6LXVQWflleb/Z8oPBEvNsMft0XE+g==";
       };
     };
-    "yargs-8.0.2" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "8.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz";
-        sha1 = "6299a9055b1cefc969ff7e79c1d918dceb22c360";
-      };
-    };
     "yargs-parser-10.1.0" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
@@ -49177,15 +52746,6 @@ let
         sha512 = "0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==";
       };
     };
-    "yargs-parser-16.1.0" = {
-      name = "yargs-parser";
-      packageName = "yargs-parser";
-      version = "16.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-16.1.0.tgz";
-        sha512 = "H/V41UNZQPkUMIT5h5hiwg4QKIY1RPvoBV4XcjUbRM8Bk2oKqqyZ0DIEbTFZB0XjbtSPG8SAa/0DxCQmiRgzKg==";
-      };
-    };
     "yargs-parser-18.1.3" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
@@ -49204,6 +52764,15 @@ let
         sha1 = "85568de3cf150ff49fa51825f03a8c880ddcc5c4";
       };
     };
+    "yargs-parser-20.2.0" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "20.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.0.tgz";
+        sha512 = "2agPoRFPoIcFzOIp6656gcvsg2ohtscpw2OINr/q46+Sq41xz2OYLqx5HRHabmFU1OARIPAYH5uteICE7mn/5A==";
+      };
+    };
     "yargs-parser-4.2.1" = {
       name = "yargs-parser";
       packageName = "yargs-parser";
@@ -49249,13 +52818,13 @@ let
         sha512 = "W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==";
       };
     };
-    "yarn-1.22.0" = {
-      name = "yarn";
-      packageName = "yarn";
-      version = "1.22.0";
+    "yargs-unparser-1.6.1" = {
+      name = "yargs-unparser";
+      packageName = "yargs-unparser";
+      version = "1.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yarn/-/yarn-1.22.0.tgz";
-        sha512 = "KMHP/Jq53jZKTY9iTUt3dIVl/be6UPs2INo96+BnZHLKxYNTfwMmlgHTaMWyGZoO74RI4AIFvnWhYrXq2USJkg==";
+        url = "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.1.tgz";
+        sha512 = "qZV14lK9MWsGCmcr7u5oXGH0dbGqZAIxTDrWXZDo5zUr6b6iUmelNKO6x6R1dQT24AH3LgRxJpr8meWy2unolA==";
       };
     };
     "yarn-1.22.4" = {
@@ -49267,6 +52836,15 @@ let
         sha512 = "oYM7hi/lIWm9bCoDMEWgffW8aiNZXCWeZ1/tGy0DWrN6vmzjCXIKu2Y21o8DYVBUtiktwKcNoxyGl/2iKLUNGA==";
       };
     };
+    "yarn-1.22.5" = {
+      name = "yarn";
+      packageName = "yarn";
+      version = "1.22.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yarn/-/yarn-1.22.5.tgz";
+        sha512 = "5uzKXwdMc++mYktXqkfpNYT9tY8ViWegU58Hgbo+KXzrzzhEyP1Ip+BTtXloLrXNcNlxFJbLiFKGaS9vK9ym6Q==";
+      };
+    };
     "yauzl-2.10.0" = {
       name = "yauzl";
       packageName = "yauzl";
@@ -49321,13 +52899,13 @@ let
         sha512 = "pLIhhU9z/G+kjOXmJ2bPFm3nejfbH+f1fjYRSOteEXDBrv1EoJE/e+kuHixSXfCYfTkxjYsvRaDX+1QykLCnpQ==";
       };
     };
-    "yeoman-generator-4.10.1" = {
+    "yeoman-generator-4.12.0" = {
       name = "yeoman-generator";
       packageName = "yeoman-generator";
-      version = "4.10.1";
+      version = "4.12.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.10.1.tgz";
-        sha512 = "QgbtHSaqBAkyJJM0heQUhT63ubCt34NBFMEBydOBUdAuy8RBvGSzeqVBSZOjdh1tSLrwWXlU3Ck6y14awinF6Q==";
+        url = "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-4.12.0.tgz";
+        sha512 = "lozwklVQHwUXMM1o8BgxEB8F5BB7vkHW4pjAo1Zt5sJ7FOlWhd6DJ4ZxJ2OK0w+gNYkY/ocPMkUV7DTz/uqEEg==";
       };
     };
     "yn-3.1.1" = {
@@ -49438,6 +53016,15 @@ let
         sha512 = "r+JdDipt93ttDjsOVPU5zaq5bAyY+3H19bDrThkvuVxC0xMQzU1PJcS6D+KrP3u96gH9XLomcHPb+2skoDjulQ==";
       };
     };
+    "zip-stream-4.0.2" = {
+      name = "zip-stream";
+      packageName = "zip-stream";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/zip-stream/-/zip-stream-4.0.2.tgz";
+        sha512 = "TGxB2g+1ur6MHkvM644DuZr8Uzyz0k0OYWtS3YlpfWBEmK4woaC2t3+pozEL3dBfIPmpgmClR5B2QRcMgGt22g==";
+      };
+    };
     "zmq-2.15.3" = {
       name = "zmq";
       packageName = "zmq";
@@ -49462,23 +53049,23 @@ in
   "@angular/cli" = nodeEnv.buildNodePackage {
     name = "_at_angular_slash_cli";
     packageName = "@angular/cli";
-    version = "9.1.7";
+    version = "10.1.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@angular/cli/-/cli-9.1.7.tgz";
-      sha512 = "NhsIa725S/U/n7nDxp6ForusdYHEXF4aSIvsFRdoK6vbQ889c5e1Rdj+T5EWXLmpQZxeprSKhLI2alNX0nVhhQ==";
+      url = "https://registry.npmjs.org/@angular/cli/-/cli-10.1.2.tgz";
+      sha512 = "dBcqFTuT71CCkH4BoV2cN5RP5k8ggzOBijNNtwkQv7N4gNcdcczhoPtEa2v4Oo8mPcTwxf/C3RXZ+NicdROJOw==";
     };
     dependencies = [
-      sources."@angular-devkit/architect-0.901.7"
-      sources."@angular-devkit/core-9.1.7"
-      sources."@angular-devkit/schematics-9.1.7"
-      sources."@schematics/angular-9.1.7"
-      sources."@schematics/update-0.901.7"
+      sources."@angular-devkit/architect-0.1001.2"
+      sources."@angular-devkit/core-10.1.2"
+      sources."@angular-devkit/schematics-10.1.2"
+      sources."@schematics/angular-10.1.2"
+      sources."@schematics/update-0.1001.2"
       sources."@types/color-name-1.1.1"
       sources."@yarnpkg/lockfile-1.1.0"
       sources."JSONStream-1.3.5"
       sources."agent-base-4.3.0"
       sources."agentkeepalive-3.5.2"
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.4"
       sources."ansi-colors-4.1.1"
       sources."ansi-escapes-4.3.1"
       sources."ansi-regex-5.0.0"
@@ -49489,7 +53076,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bluebird-3.7.2"
@@ -49498,16 +53085,18 @@ in
       sources."builtins-1.0.3"
       (sources."cacache-12.0.4" // {
         dependencies = [
+          sources."lru-cache-5.1.1"
           sources."rimraf-2.7.1"
+          sources."yallist-3.1.1"
         ];
       })
       sources."caseless-0.12.0"
-      sources."chalk-3.0.0"
+      sources."chalk-4.1.0"
       sources."chardet-0.7.0"
       sources."chownr-1.1.4"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.3.0"
-      sources."cli-width-2.2.1"
+      sources."cli-spinners-2.4.0"
+      sources."cli-width-3.0.0"
       sources."clone-1.0.4"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
@@ -49531,10 +53120,14 @@ in
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
       sources."emoji-regex-8.0.0"
-      sources."encoding-0.1.12"
+      (sources."encoding-0.1.13" // {
+        dependencies = [
+          sources."iconv-lite-0.6.2"
+        ];
+      })
       sources."end-of-stream-1.4.4"
       sources."err-code-1.1.2"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."es6-promise-4.2.8"
       sources."es6-promisify-5.0.0"
@@ -49560,11 +53153,11 @@ in
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-1.0.3"
       sources."has-flag-4.0.0"
       sources."has-symbols-1.0.1"
-      sources."hosted-git-info-3.0.4"
+      sources."hosted-git-info-3.0.5"
       sources."http-cache-semantics-3.8.1"
       (sources."http-proxy-agent-2.1.0" // {
         dependencies = [
@@ -49587,14 +53180,15 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      sources."inquirer-7.1.0"
+      sources."inquirer-7.3.3"
       sources."ip-1.1.5"
-      sources."is-callable-1.2.0"
+      sources."is-callable-1.2.1"
       sources."is-date-object-1.0.2"
-      sources."is-docker-2.0.0"
+      sources."is-docker-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-interactive-1.0.0"
-      sources."is-regex-1.1.0"
+      sources."is-negative-zero-2.0.0"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
       sources."is-wsl-2.2.0"
@@ -49603,31 +53197,33 @@ in
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
       sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
+      sources."jsonc-parser-2.3.0"
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.1"
-      sources."lodash-4.17.15"
-      (sources."log-symbols-3.0.0" // {
+      sources."lodash-4.17.20"
+      sources."log-symbols-4.0.0"
+      sources."lru-cache-6.0.0"
+      sources."magic-string-0.25.7"
+      (sources."make-fetch-happen-5.0.2" // {
         dependencies = [
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
+          sources."lru-cache-5.1.1"
+          sources."yallist-3.1.1"
         ];
       })
-      sources."lru-cache-5.1.1"
-      sources."magic-string-0.25.7"
-      sources."make-fetch-happen-5.0.2"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-2.9.0"
+      (sources."minipass-2.9.0" // {
+        dependencies = [
+          sources."yallist-3.1.1"
+        ];
+      })
       sources."minizlib-1.3.3"
       sources."mississippi-3.0.0"
       sources."mkdirp-0.5.5"
@@ -49650,33 +53246,41 @@ in
       sources."npm-normalize-package-bin-1.0.1"
       sources."npm-package-arg-8.0.1"
       sources."npm-packlist-1.4.8"
-      sources."npm-pick-manifest-6.0.0"
-      (sources."npm-registry-fetch-4.0.4" // {
+      sources."npm-pick-manifest-6.1.0"
+      (sources."npm-registry-fetch-4.0.7" // {
         dependencies = [
           sources."hosted-git-info-2.8.8"
+          sources."lru-cache-5.1.1"
           sources."npm-package-arg-6.1.1"
           sources."semver-5.7.1"
+          sources."yallist-3.1.1"
         ];
       })
       sources."oauth-sign-0.9.0"
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.0"
+      (sources."object.assign-4.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."object.getownpropertydescriptors-2.1.0"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
-      sources."open-7.0.3"
-      sources."ora-4.0.3"
+      sources."onetime-5.1.2"
+      sources."open-7.2.0"
+      sources."ora-5.0.0"
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
       (sources."pacote-9.5.12" // {
         dependencies = [
           sources."hosted-git-info-2.8.8"
+          sources."lru-cache-5.1.1"
           sources."npm-package-arg-6.1.1"
           sources."npm-pick-manifest-3.0.2"
           sources."rimraf-2.7.1"
           sources."semver-5.7.1"
+          sources."yallist-3.1.1"
         ];
       })
       sources."parallel-transform-1.2.0"
@@ -49696,7 +53300,7 @@ in
       })
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
-      sources."read-package-json-2.1.1"
+      sources."read-package-json-2.1.2"
       sources."read-package-tree-5.3.1"
       (sources."readable-stream-2.3.7" // {
         dependencies = [
@@ -49715,10 +53319,10 @@ in
       sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
       sources."run-queue-1.0.3"
-      sources."rxjs-6.5.4"
+      sources."rxjs-6.6.2"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-7.1.3"
+      sources."semver-7.3.2"
       (sources."semver-intersect-1.4.0" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -49737,15 +53341,13 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."sshpk-1.16.1"
       sources."ssri-6.0.1"
       sources."stream-each-1.2.3"
       sources."stream-shift-1.0.1"
       sources."string-width-4.2.0"
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
       (sources."string_decoder-1.1.1" // {
         dependencies = [
@@ -49753,9 +53355,13 @@ in
         ];
       })
       sources."strip-ansi-6.0.0"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."symbol-observable-1.2.0"
-      sources."tar-4.4.13"
+      (sources."tar-4.4.13" // {
+        dependencies = [
+          sources."yallist-3.1.1"
+        ];
+      })
       sources."through-2.3.8"
       sources."through2-2.0.5"
       sources."tmp-0.0.33"
@@ -49767,16 +53373,15 @@ in
       sources."typedarray-0.0.6"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
-      (sources."universal-analytics-0.4.20" // {
+      (sources."universal-analytics-0.4.23" // {
         dependencies = [
-          sources."debug-3.2.6"
           sources."uuid-3.4.0"
         ];
       })
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."util-promisify-2.1.0"
-      sources."uuid-7.0.2"
+      sources."uuid-8.3.0"
       sources."validate-npm-package-license-3.0.4"
       sources."validate-npm-package-name-3.0.0"
       sources."verror-1.10.0"
@@ -49785,7 +53390,7 @@ in
       sources."wrappy-1.0.2"
       sources."xtend-4.0.2"
       sources."y18n-4.0.0"
-      sources."yallist-3.1.1"
+      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -49800,18 +53405,18 @@ in
   "@antora/cli" = nodeEnv.buildNodePackage {
     name = "_at_antora_slash_cli";
     packageName = "@antora/cli";
-    version = "2.3.3";
+    version = "2.3.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@antora/cli/-/cli-2.3.3.tgz";
-      sha512 = "mWxMMWKzTmhmTgAeAVestZf4CRcC4lBD5l521J2fsdGpGx9dQGiwqQZqNcwROJDE+Lg0YfXYYqP1UUKhZwYz6Q==";
+      url = "https://registry.npmjs.org/@antora/cli/-/cli-2.3.4.tgz";
+      sha512 = "KItaWFEf/X4LLY2XCidjD00oUp4Ay7y9Hu26+T8dPqV+qnMwOL+MGHhYXsJz+4JaeNJu1Ofwc4onmShpwHQruA==";
     };
     dependencies = [
-      sources."@antora/playbook-builder-2.3.3"
+      sources."@antora/playbook-builder-2.3.4"
       sources."@iarna/toml-2.2.5"
       sources."argparse-1.0.10"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."commander-5.1.0"
+      sources."commander-6.1.0"
       sources."convict-6.0.0"
       sources."decamelize-1.2.0"
       sources."esprima-4.0.1"
@@ -49837,24 +53442,24 @@ in
   "@antora/site-generator-default" = nodeEnv.buildNodePackage {
     name = "_at_antora_slash_site-generator-default";
     packageName = "@antora/site-generator-default";
-    version = "2.3.3";
+    version = "2.3.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@antora/site-generator-default/-/site-generator-default-2.3.3.tgz";
-      sha512 = "kY2j2gsBo1U4Jn+WqK09chsFgXbbUvafgqGo3SzFDdjpsG/NvIylLK3g+bbZ0X9N7FysXytlAhyAYlOJDvXjGw==";
+      url = "https://registry.npmjs.org/@antora/site-generator-default/-/site-generator-default-2.3.4.tgz";
+      sha512 = "uRiFJ/nG5bxjDmFOur27ae7A1J7r+OFVocEwx+vVLRvVYfNHxYP0fI2uUrmJTci8xJ92NLH9VLHpfsHypsoq9Q==";
     };
     dependencies = [
-      sources."@antora/asciidoc-loader-2.3.3"
-      sources."@antora/content-aggregator-2.3.3"
-      sources."@antora/content-classifier-2.3.3"
-      sources."@antora/document-converter-2.3.3"
+      sources."@antora/asciidoc-loader-2.3.4"
+      sources."@antora/content-aggregator-2.3.4"
+      sources."@antora/content-classifier-2.3.4"
+      sources."@antora/document-converter-2.3.4"
       sources."@antora/expand-path-helper-1.0.0"
-      sources."@antora/navigation-builder-2.3.3"
-      sources."@antora/page-composer-2.3.3"
-      sources."@antora/playbook-builder-2.3.3"
-      sources."@antora/redirect-producer-2.3.3"
-      sources."@antora/site-mapper-2.3.3"
-      sources."@antora/site-publisher-2.3.3"
-      sources."@antora/ui-loader-2.3.3"
+      sources."@antora/navigation-builder-2.3.4"
+      sources."@antora/page-composer-2.3.4"
+      sources."@antora/playbook-builder-2.3.4"
+      sources."@antora/redirect-producer-2.3.4"
+      sources."@antora/site-mapper-2.3.4"
+      sources."@antora/site-publisher-2.3.4"
+      sources."@antora/ui-loader-2.3.4"
       sources."@iarna/toml-2.2.5"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
@@ -49864,7 +53469,7 @@ in
       sources."async-lock-1.2.4"
       sources."balanced-match-1.0.0"
       sources."base64-js-0.0.2"
-      sources."bl-4.0.2"
+      sources."bl-4.0.3"
       sources."bops-0.0.7"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
@@ -49878,7 +53483,7 @@ in
       sources."cache-directory-2.0.0"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
           sources."pump-3.0.0"
         ];
@@ -49901,7 +53506,6 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      sources."commander-2.20.3"
       sources."concat-map-0.0.1"
       (sources."convert-source-map-1.7.0" // {
         dependencies = [
@@ -49925,6 +53529,8 @@ in
         ];
       })
       sources."end-of-stream-1.4.4"
+      sources."es-abstract-1.18.0-next.0"
+      sources."es-to-primitive-1.2.1"
       sources."escape-string-regexp-2.0.0"
       sources."esprima-4.0.1"
       sources."exit-on-epipe-1.0.1"
@@ -49983,6 +53589,7 @@ in
         ];
       })
       sources."handlebars-4.7.6"
+      sources."has-1.0.3"
       sources."has-symbols-1.0.1"
       sources."http-cache-semantics-4.1.0"
       sources."ieee754-1.1.13"
@@ -49991,11 +53598,16 @@ in
       sources."inherits-2.0.4"
       sources."is-absolute-1.0.0"
       sources."is-buffer-1.1.6"
+      sources."is-callable-1.2.1"
+      sources."is-date-object-1.0.2"
       sources."is-extglob-2.1.1"
       sources."is-glob-3.1.0"
       sources."is-negated-glob-1.0.0"
+      sources."is-negative-zero-2.0.0"
       sources."is-number-7.0.0"
+      sources."is-regex-1.1.1"
       sources."is-relative-1.0.0"
+      sources."is-symbol-1.0.3"
       sources."is-unc-path-1.0.0"
       sources."is-utf8-0.2.1"
       sources."is-valid-glob-1.0.0"
@@ -50027,14 +53639,15 @@ in
       sources."minimatch-3.0.4"
       sources."minimatch-all-1.1.0"
       sources."minimist-1.2.5"
-      sources."minimisted-2.0.0"
+      sources."minimisted-2.0.1"
       sources."multi-progress-2.0.0"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       sources."normalize-path-2.1.1"
       sources."normalize-url-4.5.0"
       sources."now-and-later-2.0.1"
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.0"
+      sources."object.assign-4.1.1"
       sources."once-1.4.0"
       sources."opal-runtime-1.0.11"
       (sources."ordered-read-streams-1.0.1" // {
@@ -50083,14 +53696,24 @@ in
       sources."responselike-1.0.2"
       sources."safe-buffer-5.2.1"
       sources."sha.js-2.4.11"
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."simple-get-3.1.0"
       sources."source-map-0.6.1"
       sources."sprintf-js-1.0.3"
       sources."stream-shift-1.0.1"
+      (sources."string.prototype.trimend-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
+      (sources."string.prototype.trimstart-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
       sources."string_decoder-1.3.0"
       sources."through-2.3.8"
-      sources."through2-3.0.1"
+      sources."through2-4.0.2"
       (sources."through2-filter-3.0.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
@@ -50111,7 +53734,7 @@ in
         ];
       })
       sources."to-utf8-0.0.1"
-      sources."uglify-js-3.9.4"
+      sources."uglify-js-3.10.4"
       sources."unc-path-regex-0.1.2"
       sources."unique-stream-2.3.1"
       sources."universalify-0.1.2"
@@ -50151,18 +53774,18 @@ in
   "@bitwarden/cli" = nodeEnv.buildNodePackage {
     name = "_at_bitwarden_slash_cli";
     packageName = "@bitwarden/cli";
-    version = "1.10.0";
+    version = "1.12.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@bitwarden/cli/-/cli-1.10.0.tgz";
-      sha512 = "EXO0Uvng3jrTDe/EtqjemKIH2vj8gc4Pe1+xi2L9gPWEM5Pi1o9YsqCu6SqlCzLCWqfY7LLILwhFuXnU0Acb8g==";
+      url = "https://registry.npmjs.org/@bitwarden/cli/-/cli-1.12.0.tgz";
+      sha512 = "bUyvGm6DOiyLxKwUcGe/ItuSu1/iAHp31hw/c04f4QWyTk2znuyDK/KD6Jn7xqIj1+zRuCVSgUPvRH9R+bfpKg==";
     };
     dependencies = [
-      sources."abab-2.0.3"
+      sources."abab-2.0.5"
       sources."acorn-6.4.1"
       sources."acorn-globals-4.3.4"
       sources."acorn-walk-6.2.0"
       sources."agent-base-5.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
@@ -50172,7 +53795,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."big-integer-1.6.36"
       sources."browser-process-hrtime-1.0.0"
@@ -50190,13 +53813,13 @@ in
       sources."cssstyle-1.4.0"
       sources."dashdash-1.14.1"
       sources."data-urls-1.1.0"
-      sources."debug-4.2.0"
+      sources."debug-4.3.0"
       sources."deep-is-0.1.3"
       sources."delayed-stream-1.0.0"
       sources."domexception-1.0.1"
       sources."ecc-jsbn-0.1.2"
       sources."escape-string-regexp-1.0.5"
-      sources."escodegen-1.14.2"
+      sources."escodegen-1.14.3"
       sources."esprima-4.0.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
@@ -50212,16 +53835,18 @@ in
       sources."getpass-0.1.7"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-flag-3.0.0"
       sources."html-encoding-sniffer-1.0.2"
       sources."http-signature-1.2.0"
       sources."https-proxy-agent-4.0.0"
       sources."iconv-lite-0.4.24"
       sources."inquirer-6.2.0"
+      sources."is-docker-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-promise-2.2.2"
       sources."is-typedarray-1.0.0"
+      sources."is-wsl-2.2.0"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
       sources."jsdom-13.2.0"
@@ -50230,7 +53855,7 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsprim-1.4.1"
       sources."levn-0.3.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.sortby-4.7.0"
       sources."lowdb-1.0.0"
       sources."lunr-2.3.3"
@@ -50244,6 +53869,7 @@ in
       sources."nwsapi-2.2.0"
       sources."oauth-sign-0.9.0"
       sources."onetime-2.0.1"
+      sources."open-7.1.0"
       sources."optionator-0.8.3"
       sources."os-tmpdir-1.0.2"
       sources."papaparse-4.6.0"
@@ -50256,11 +53882,11 @@ in
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
       sources."request-2.88.2"
-      sources."request-promise-core-1.1.3"
-      sources."request-promise-native-1.0.8"
+      sources."request-promise-core-1.1.4"
+      sources."request-promise-native-1.0.9"
       sources."restore-cursor-2.0.0"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.3"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."saxes-3.1.11"
@@ -50286,7 +53912,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
       sources."w3c-hr-time-1.0.2"
@@ -50311,20 +53937,782 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  "@nestjs/cli" = nodeEnv.buildNodePackage {
+    name = "_at_nestjs_slash_cli";
+    packageName = "@nestjs/cli";
+    version = "7.5.1";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/@nestjs/cli/-/cli-7.5.1.tgz";
+      sha512 = "18EfBO48ojVm7YzwyPc8PRjas9KcIVjdlD+v7tIImKzrf5THcpAYxvzUvZUspSbLIIIqwTgKj/loqamkwOk/XA==";
+    };
+    dependencies = [
+      sources."@angular-devkit/core-10.0.7"
+      (sources."@angular-devkit/schematics-10.0.7" // {
+        dependencies = [
+          sources."ora-4.0.4"
+        ];
+      })
+      (sources."@angular-devkit/schematics-cli-0.1000.7" // {
+        dependencies = [
+          sources."inquirer-7.1.0"
+        ];
+      })
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+        ];
+      })
+      (sources."@nestjs/schematics-7.1.2" // {
+        dependencies = [
+          sources."@angular-devkit/core-9.1.12"
+          sources."@angular-devkit/schematics-9.1.12"
+          sources."ora-4.0.3"
+          sources."rxjs-6.5.4"
+        ];
+      })
+      sources."@schematics/schematics-0.1000.7"
+      sources."@types/anymatch-1.3.1"
+      sources."@types/color-name-1.1.1"
+      sources."@types/json-schema-7.0.6"
+      sources."@types/json5-0.0.29"
+      sources."@types/node-14.11.1"
+      sources."@types/parse-json-4.0.0"
+      sources."@types/source-list-map-0.1.2"
+      sources."@types/tapable-1.0.6"
+      (sources."@types/uglify-js-3.9.3" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      (sources."@types/webpack-4.41.21" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."@types/webpack-sources-1.4.2"
+      sources."@webassemblyjs/ast-1.9.0"
+      sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
+      sources."@webassemblyjs/helper-api-error-1.9.0"
+      sources."@webassemblyjs/helper-buffer-1.9.0"
+      sources."@webassemblyjs/helper-code-frame-1.9.0"
+      sources."@webassemblyjs/helper-fsm-1.9.0"
+      sources."@webassemblyjs/helper-module-context-1.9.0"
+      sources."@webassemblyjs/helper-wasm-bytecode-1.9.0"
+      sources."@webassemblyjs/helper-wasm-section-1.9.0"
+      sources."@webassemblyjs/ieee754-1.9.0"
+      sources."@webassemblyjs/leb128-1.9.0"
+      sources."@webassemblyjs/utf8-1.9.0"
+      sources."@webassemblyjs/wasm-edit-1.9.0"
+      sources."@webassemblyjs/wasm-gen-1.9.0"
+      sources."@webassemblyjs/wasm-opt-1.9.0"
+      sources."@webassemblyjs/wasm-parser-1.9.0"
+      sources."@webassemblyjs/wast-parser-1.9.0"
+      sources."@webassemblyjs/wast-printer-1.9.0"
+      sources."@xtuc/ieee754-1.2.0"
+      sources."@xtuc/long-4.2.2"
+      sources."acorn-6.4.1"
+      sources."ajv-6.12.3"
+      sources."ajv-errors-1.0.1"
+      sources."ajv-keywords-3.5.2"
+      sources."ansi-escapes-4.3.1"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-3.2.1"
+      sources."anymatch-3.1.1"
+      sources."aproba-1.2.0"
+      sources."arr-diff-4.0.0"
+      sources."arr-flatten-1.1.0"
+      sources."arr-union-3.1.0"
+      sources."array-unique-0.3.2"
+      (sources."asn1.js-5.4.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (sources."assert-1.5.0" // {
+        dependencies = [
+          sources."inherits-2.0.1"
+          sources."util-0.10.3"
+        ];
+      })
+      sources."assign-symbols-1.0.0"
+      sources."async-each-1.0.3"
+      sources."at-least-node-1.0.0"
+      sources."atob-2.1.2"
+      sources."balanced-match-1.0.0"
+      (sources."base-0.11.2" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+        ];
+      })
+      sources."base64-js-1.3.1"
+      sources."big.js-5.2.2"
+      sources."binary-extensions-2.1.0"
+      sources."bindings-1.5.0"
+      sources."bluebird-3.7.2"
+      sources."bn.js-5.1.3"
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."brorand-1.1.0"
+      sources."browserify-aes-1.2.0"
+      sources."browserify-cipher-1.0.1"
+      sources."browserify-des-1.0.2"
+      (sources."browserify-rsa-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (sources."browserify-sign-4.2.1" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+          sources."safe-buffer-5.2.1"
+        ];
+      })
+      sources."browserify-zlib-0.2.0"
+      sources."buffer-4.9.2"
+      sources."buffer-from-1.1.1"
+      sources."buffer-xor-1.0.3"
+      sources."builtin-status-codes-3.0.0"
+      (sources."cacache-12.0.4" // {
+        dependencies = [
+          sources."rimraf-2.7.1"
+        ];
+      })
+      sources."cache-base-1.0.1"
+      sources."callsites-3.1.0"
+      (sources."chalk-3.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.2.1"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."chardet-0.7.0"
+      sources."chokidar-3.4.2"
+      sources."chownr-1.1.4"
+      sources."chrome-trace-event-1.0.2"
+      sources."cipher-base-1.0.4"
+      (sources."class-utils-0.3.6" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      sources."cli-cursor-3.1.0"
+      sources."cli-spinners-2.4.0"
+      (sources."cli-table3-0.5.1" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
+        ];
+      })
+      sources."cli-width-2.2.1"
+      sources."clone-1.0.4"
+      sources."collection-visit-1.0.0"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."colors-1.4.0"
+      sources."commander-4.1.1"
+      sources."commondir-1.0.1"
+      sources."component-emitter-1.3.0"
+      sources."concat-map-0.0.1"
+      sources."concat-stream-1.6.2"
+      sources."console-browserify-1.2.0"
+      sources."constants-browserify-1.0.0"
+      (sources."copy-concurrently-1.0.5" // {
+        dependencies = [
+          sources."rimraf-2.7.1"
+        ];
+      })
+      sources."copy-descriptor-0.1.1"
+      sources."core-util-is-1.0.2"
+      sources."cosmiconfig-6.0.0"
+      (sources."create-ecdh-4.0.4" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."create-hash-1.2.0"
+      sources."create-hmac-1.1.7"
+      (sources."cross-spawn-6.0.5" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."crypto-browserify-3.12.0"
+      sources."cyclist-1.0.1"
+      sources."debug-2.6.9"
+      sources."decode-uri-component-0.2.0"
+      sources."deepmerge-4.2.2"
+      sources."defaults-1.0.3"
+      sources."define-property-2.0.2"
+      sources."des.js-1.0.1"
+      (sources."diffie-hellman-5.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."domain-browser-1.2.0"
+      sources."duplexify-3.7.1"
+      (sources."elliptic-6.5.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."emoji-regex-8.0.0"
+      sources."emojis-list-3.0.0"
+      sources."end-of-stream-1.4.4"
+      sources."enhanced-resolve-4.3.0"
+      sources."errno-0.1.7"
+      sources."error-ex-1.3.2"
+      sources."escape-string-regexp-1.0.5"
+      sources."eslint-scope-4.0.3"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      sources."estraverse-4.3.0"
+      sources."events-3.2.0"
+      sources."evp_bytestokey-1.0.3"
+      sources."execa-1.0.0"
+      (sources."expand-brackets-2.1.4" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      (sources."extend-shallow-3.0.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      sources."external-editor-3.1.0"
+      (sources."extglob-2.0.4" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."figgy-pudding-3.5.2"
+      sources."figures-3.2.0"
+      sources."file-uri-to-path-1.0.0"
+      sources."fill-range-7.0.1"
+      sources."find-cache-dir-2.1.0"
+      sources."find-up-3.0.0"
+      sources."flush-write-stream-1.1.1"
+      sources."for-in-1.0.2"
+      (sources."fork-ts-checker-webpack-plugin-5.1.0" // {
+        dependencies = [
+          sources."ansi-styles-4.2.1"
+          sources."chalk-4.1.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."fragment-cache-0.2.1"
+      sources."from2-2.3.0"
+      sources."fs-extra-9.0.1"
+      sources."fs-monkey-1.0.1"
+      sources."fs-write-stream-atomic-1.0.10"
+      sources."fs.realpath-1.0.0"
+      sources."fsevents-2.1.3"
+      sources."get-stream-4.1.0"
+      sources."get-value-2.0.6"
+      sources."glob-7.1.6"
+      sources."glob-parent-5.1.1"
+      sources."graceful-fs-4.2.4"
+      sources."has-flag-3.0.0"
+      sources."has-value-1.0.0"
+      (sources."has-values-1.0.0" // {
+        dependencies = [
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."kind-of-4.0.0"
+        ];
+      })
+      (sources."hash-base-3.1.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+          sources."safe-buffer-5.2.1"
+        ];
+      })
+      sources."hash.js-1.1.7"
+      sources."hmac-drbg-1.0.1"
+      sources."https-browserify-1.0.0"
+      sources."iconv-lite-0.4.24"
+      sources."ieee754-1.1.13"
+      sources."iferr-0.1.5"
+      sources."import-fresh-3.2.1"
+      sources."imurmurhash-0.1.4"
+      sources."infer-owner-1.0.4"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      (sources."inquirer-7.3.3" // {
+        dependencies = [
+          sources."ansi-styles-4.2.1"
+          sources."chalk-4.1.0"
+          sources."cli-width-3.0.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."rxjs-6.6.3"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."interpret-1.4.0"
+      sources."is-accessor-descriptor-1.0.0"
+      sources."is-arrayish-0.2.1"
+      sources."is-binary-path-2.1.0"
+      sources."is-buffer-1.1.6"
+      sources."is-data-descriptor-1.0.0"
+      sources."is-descriptor-1.0.2"
+      sources."is-extendable-0.1.1"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-interactive-1.0.0"
+      sources."is-number-7.0.0"
+      sources."is-plain-object-2.0.4"
+      sources."is-stream-1.1.0"
+      sources."is-windows-1.0.2"
+      sources."is-wsl-1.1.0"
+      sources."isarray-1.0.0"
+      sources."isexe-2.0.0"
+      sources."isobject-3.0.1"
+      sources."js-tokens-4.0.0"
+      sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
+      sources."json-schema-traverse-0.4.1"
+      sources."json5-1.0.1"
+      sources."jsonfile-6.0.1"
+      sources."kind-of-6.0.3"
+      sources."lines-and-columns-1.1.6"
+      sources."loader-runner-2.4.0"
+      sources."loader-utils-1.4.0"
+      sources."locate-path-3.0.0"
+      sources."lodash-4.17.20"
+      sources."lodash.toarray-4.4.0"
+      (sources."log-symbols-3.0.0" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+        ];
+      })
+      sources."lru-cache-5.1.1"
+      sources."macos-release-2.4.1"
+      sources."magic-string-0.25.7"
+      (sources."make-dir-2.1.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."map-cache-0.2.2"
+      sources."map-visit-1.0.0"
+      sources."md5.js-1.3.5"
+      sources."memfs-3.2.0"
+      sources."memory-fs-0.5.0"
+      (sources."micromatch-3.1.10" // {
+        dependencies = [
+          (sources."braces-2.3.2" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          (sources."fill-range-4.0.0" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."to-regex-range-2.1.1"
+        ];
+      })
+      (sources."miller-rabin-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."mimic-fn-2.1.0"
+      sources."minimalistic-assert-1.0.1"
+      sources."minimalistic-crypto-utils-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."mississippi-3.0.0"
+      (sources."mixin-deep-1.3.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      sources."mkdirp-0.5.5"
+      (sources."move-concurrently-1.0.1" // {
+        dependencies = [
+          sources."rimraf-2.7.1"
+        ];
+      })
+      sources."ms-2.0.0"
+      sources."mute-stream-0.0.8"
+      sources."nan-2.14.1"
+      sources."nanomatch-1.2.13"
+      sources."neo-async-2.6.2"
+      sources."nice-try-1.0.5"
+      sources."node-emoji-1.10.0"
+      (sources."node-libs-browser-2.2.1" // {
+        dependencies = [
+          sources."punycode-1.4.1"
+        ];
+      })
+      sources."normalize-path-3.0.0"
+      sources."npm-run-path-2.0.2"
+      sources."object-assign-4.1.1"
+      (sources."object-copy-0.1.0" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          sources."is-accessor-descriptor-0.1.6"
+          sources."is-data-descriptor-0.1.4"
+          (sources."is-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-5.1.0"
+            ];
+          })
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."object-visit-1.0.1"
+      sources."object.pick-1.3.0"
+      sources."once-1.4.0"
+      sources."onetime-5.1.2"
+      (sources."ora-5.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.2.1"
+          sources."chalk-4.1.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."log-symbols-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."os-browserify-0.3.0"
+      sources."os-name-3.1.0"
+      sources."os-tmpdir-1.0.2"
+      sources."p-finally-1.0.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-3.0.0"
+      sources."p-try-2.2.0"
+      sources."pako-1.0.11"
+      sources."parallel-transform-1.2.0"
+      sources."parent-module-1.0.1"
+      sources."parse-asn1-5.1.6"
+      sources."parse-json-5.1.0"
+      sources."pascalcase-0.1.1"
+      sources."path-browserify-0.0.1"
+      sources."path-dirname-1.0.2"
+      sources."path-exists-3.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-key-2.0.1"
+      sources."path-parse-1.0.6"
+      sources."path-type-4.0.0"
+      sources."pbkdf2-3.1.1"
+      sources."picomatch-2.2.2"
+      sources."pify-4.0.1"
+      sources."pkg-dir-3.0.0"
+      sources."pluralize-8.0.0"
+      sources."posix-character-classes-0.1.1"
+      sources."process-0.11.10"
+      sources."process-nextick-args-2.0.1"
+      sources."promise-inflight-1.0.1"
+      sources."prr-1.0.1"
+      (sources."public-encrypt-4.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."pump-3.0.0"
+      (sources."pumpify-1.5.1" // {
+        dependencies = [
+          sources."pump-2.0.1"
+        ];
+      })
+      sources."punycode-2.1.1"
+      sources."querystring-0.2.0"
+      sources."querystring-es3-0.2.1"
+      sources."randombytes-2.1.0"
+      sources."randomfill-1.0.4"
+      sources."readable-stream-2.3.7"
+      sources."readdirp-3.4.0"
+      sources."rechoir-0.6.2"
+      sources."regex-not-1.0.2"
+      sources."remove-trailing-separator-1.1.0"
+      sources."repeat-element-1.1.3"
+      sources."repeat-string-1.6.1"
+      sources."resolve-1.17.0"
+      sources."resolve-from-4.0.0"
+      sources."resolve-url-0.2.1"
+      sources."restore-cursor-3.1.0"
+      sources."ret-0.1.15"
+      sources."rimraf-3.0.2"
+      sources."ripemd160-2.0.2"
+      sources."run-async-2.4.1"
+      sources."run-queue-1.0.3"
+      sources."rxjs-6.5.5"
+      sources."safe-buffer-5.1.2"
+      sources."safe-regex-1.1.0"
+      sources."safer-buffer-2.1.2"
+      sources."schema-utils-2.7.0"
+      sources."semver-7.3.2"
+      sources."serialize-javascript-4.0.0"
+      (sources."set-value-2.0.1" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."setimmediate-1.0.5"
+      sources."sha.js-2.4.11"
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
+      sources."shelljs-0.8.4"
+      sources."signal-exit-3.0.3"
+      (sources."snapdragon-0.8.2" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+          sources."source-map-0.5.7"
+        ];
+      })
+      (sources."snapdragon-node-2.1.1" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+        ];
+      })
+      (sources."snapdragon-util-3.0.1" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."source-list-map-2.0.1"
+      sources."source-map-0.7.3"
+      sources."source-map-resolve-0.5.3"
+      (sources."source-map-support-0.5.19" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."source-map-url-0.4.0"
+      sources."sourcemap-codec-1.4.8"
+      sources."split-string-3.1.0"
+      sources."ssri-6.0.1"
+      (sources."static-extend-0.1.2" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      sources."stream-browserify-2.0.2"
+      sources."stream-each-1.2.3"
+      sources."stream-http-2.8.3"
+      sources."stream-shift-1.0.1"
+      sources."string-width-4.2.0"
+      sources."string_decoder-1.1.1"
+      sources."strip-ansi-6.0.0"
+      sources."strip-bom-3.0.0"
+      sources."strip-eof-1.0.0"
+      sources."supports-color-5.5.0"
+      sources."symbol-observable-1.2.0"
+      sources."tapable-1.1.3"
+      (sources."terser-4.8.0" // {
+        dependencies = [
+          sources."commander-2.20.3"
+          sources."source-map-0.6.1"
+        ];
+      })
+      (sources."terser-webpack-plugin-1.4.5" // {
+        dependencies = [
+          sources."schema-utils-1.0.0"
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."through-2.3.8"
+      sources."through2-2.0.5"
+      sources."timers-browserify-2.0.11"
+      sources."tmp-0.0.33"
+      sources."to-arraybuffer-1.0.1"
+      (sources."to-object-path-0.3.0" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."to-regex-3.0.2"
+      sources."to-regex-range-5.0.1"
+      sources."tree-kill-1.2.2"
+      sources."tsconfig-paths-3.9.0"
+      (sources."tsconfig-paths-webpack-plugin-3.3.0" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+        ];
+      })
+      sources."tslib-1.13.0"
+      sources."tty-browserify-0.0.0"
+      sources."type-fest-0.11.0"
+      sources."typedarray-0.0.6"
+      sources."typescript-3.9.7"
+      sources."union-value-1.0.1"
+      sources."unique-filename-1.1.1"
+      sources."unique-slug-2.0.2"
+      sources."universalify-1.0.0"
+      (sources."unset-value-1.0.0" // {
+        dependencies = [
+          (sources."has-value-0.3.1" // {
+            dependencies = [
+              sources."isobject-2.1.0"
+            ];
+          })
+          sources."has-values-0.1.4"
+        ];
+      })
+      sources."upath-1.2.0"
+      sources."uri-js-4.4.0"
+      sources."urix-0.1.0"
+      (sources."url-0.11.0" // {
+        dependencies = [
+          sources."punycode-1.3.2"
+        ];
+      })
+      sources."use-3.1.1"
+      (sources."util-0.11.1" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."util-deprecate-1.0.2"
+      sources."vm-browserify-1.1.2"
+      sources."watchpack-1.7.4"
+      (sources."watchpack-chokidar2-2.0.0" // {
+        dependencies = [
+          sources."anymatch-2.0.0"
+          sources."binary-extensions-1.13.1"
+          sources."braces-2.3.2"
+          sources."chokidar-2.1.8"
+          sources."extend-shallow-2.0.1"
+          sources."fill-range-4.0.0"
+          sources."fsevents-1.2.13"
+          sources."glob-parent-3.1.0"
+          sources."is-binary-path-1.0.1"
+          sources."is-glob-3.1.0"
+          sources."is-number-3.0.0"
+          sources."kind-of-3.2.2"
+          sources."normalize-path-2.1.1"
+          sources."readdirp-2.2.1"
+          sources."to-regex-range-2.1.1"
+        ];
+      })
+      sources."wcwidth-1.0.1"
+      (sources."webpack-4.44.1" // {
+        dependencies = [
+          sources."memory-fs-0.4.1"
+          sources."schema-utils-1.0.0"
+        ];
+      })
+      sources."webpack-node-externals-2.5.1"
+      (sources."webpack-sources-1.4.3" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."which-1.3.1"
+      sources."windows-release-3.3.3"
+      sources."worker-farm-1.7.0"
+      sources."wrappy-1.0.2"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.0"
+      sources."yallist-3.1.1"
+      sources."yaml-1.10.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Nest - modern, fast, powerful node.js web framework (@cli)";
+      homepage = "https://github.com/nestjs/nest-cli#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   "@vue/cli" = nodeEnv.buildNodePackage {
     name = "_at_vue_slash_cli";
     packageName = "@vue/cli";
-    version = "4.4.1";
+    version = "4.5.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@vue/cli/-/cli-4.4.1.tgz";
-      sha512 = "X9K0EZFipqnckuzaUa2MzCtxPzazy4CwCJN0OTeXwc6I3q8f0M3H/5BuJM7cGPBn9CHDQTsiR1x7b2t3IKw7Vg==";
+      url = "https://registry.npmjs.org/@vue/cli/-/cli-4.5.6.tgz";
+      sha512 = "S3CToCDtuqkcUyPrPTYKdic9aiOsVairCP8dEydyYjvLUIYVVK3GWJqBfThkNdaMjeB/fVPt8qlYjGqvSs55GQ==";
     };
     dependencies = [
       sources."@akryum/winattr-3.0.0"
-      sources."@apollo/federation-0.16.2"
-      (sources."@apollo/protobufjs-1.0.4" // {
+      sources."@apollo/federation-0.20.0"
+      (sources."@apollo/protobufjs-1.0.5" // {
         dependencies = [
-          sources."@types/node-10.17.26"
+          sources."@types/node-10.17.35"
         ];
       })
       sources."@apollographql/apollo-tools-0.4.8"
@@ -50332,66 +54720,177 @@ in
       sources."@apollographql/graphql-language-service-parser-2.0.2"
       sources."@apollographql/graphql-language-service-types-2.0.2"
       sources."@apollographql/graphql-language-service-utils-2.0.2"
-      sources."@apollographql/graphql-playground-html-1.6.24"
-      sources."@babel/code-frame-7.10.1"
-      (sources."@babel/core-7.10.2" // {
+      sources."@apollographql/graphql-playground-html-1.6.26"
+      sources."@babel/code-frame-7.10.4"
+      (sources."@babel/compat-data-7.11.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      (sources."@babel/core-7.11.6" // {
         dependencies = [
+          sources."@babel/generator-7.11.6"
+          sources."@babel/types-7.11.5"
           sources."semver-5.7.1"
         ];
       })
-      sources."@babel/generator-7.10.2"
-      sources."@babel/helper-create-class-features-plugin-7.10.2"
-      sources."@babel/helper-function-name-7.10.1"
-      sources."@babel/helper-get-function-arity-7.10.1"
-      sources."@babel/helper-member-expression-to-functions-7.10.1"
-      sources."@babel/helper-module-imports-7.10.1"
-      sources."@babel/helper-module-transforms-7.10.1"
-      sources."@babel/helper-optimise-call-expression-7.10.1"
-      sources."@babel/helper-plugin-utils-7.10.1"
-      sources."@babel/helper-replace-supers-7.10.1"
-      sources."@babel/helper-simple-access-7.10.1"
-      sources."@babel/helper-split-export-declaration-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      sources."@babel/helpers-7.10.1"
-      sources."@babel/highlight-7.10.1"
-      sources."@babel/parser-7.10.2"
-      sources."@babel/plugin-proposal-class-properties-7.10.1"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.1"
-      sources."@babel/plugin-proposal-optional-chaining-7.10.1"
-      sources."@babel/plugin-syntax-flow-7.10.1"
+      (sources."@babel/generator-7.11.4" // {
+        dependencies = [
+          sources."@babel/types-7.11.5"
+        ];
+      })
+      sources."@babel/helper-annotate-as-pure-7.10.4"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
+      (sources."@babel/helper-compilation-targets-7.10.4" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."@babel/helper-create-class-features-plugin-7.10.5"
+      sources."@babel/helper-create-regexp-features-plugin-7.10.4"
+      (sources."@babel/helper-define-map-7.10.5" // {
+        dependencies = [
+          sources."@babel/types-7.11.5"
+        ];
+      })
+      sources."@babel/helper-explode-assignable-expression-7.11.4"
+      sources."@babel/helper-function-name-7.10.4"
+      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-hoist-variables-7.10.4"
+      (sources."@babel/helper-member-expression-to-functions-7.11.0" // {
+        dependencies = [
+          sources."@babel/types-7.11.5"
+        ];
+      })
+      sources."@babel/helper-module-imports-7.10.4"
+      (sources."@babel/helper-module-transforms-7.11.0" // {
+        dependencies = [
+          sources."@babel/types-7.11.5"
+        ];
+      })
+      sources."@babel/helper-optimise-call-expression-7.10.4"
+      sources."@babel/helper-plugin-utils-7.10.4"
+      sources."@babel/helper-regex-7.10.5"
+      sources."@babel/helper-remap-async-to-generator-7.11.4"
+      sources."@babel/helper-replace-supers-7.10.4"
+      sources."@babel/helper-simple-access-7.10.4"
+      (sources."@babel/helper-skip-transparent-expression-wrappers-7.11.0" // {
+        dependencies = [
+          sources."@babel/types-7.11.5"
+        ];
+      })
+      (sources."@babel/helper-split-export-declaration-7.11.0" // {
+        dependencies = [
+          sources."@babel/types-7.11.5"
+        ];
+      })
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helper-wrap-function-7.10.4"
+      sources."@babel/helpers-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.5"
+      sources."@babel/plugin-proposal-async-generator-functions-7.10.5"
+      sources."@babel/plugin-proposal-class-properties-7.10.4"
+      sources."@babel/plugin-proposal-dynamic-import-7.10.4"
+      sources."@babel/plugin-proposal-export-namespace-from-7.10.4"
+      sources."@babel/plugin-proposal-json-strings-7.10.4"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.11.0"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.4"
+      sources."@babel/plugin-proposal-numeric-separator-7.10.4"
+      sources."@babel/plugin-proposal-object-rest-spread-7.11.0"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.10.4"
+      sources."@babel/plugin-proposal-optional-chaining-7.11.0"
+      sources."@babel/plugin-proposal-private-methods-7.10.4"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.10.4"
+      sources."@babel/plugin-syntax-async-generators-7.8.4"
+      sources."@babel/plugin-syntax-class-properties-7.10.4"
+      sources."@babel/plugin-syntax-dynamic-import-7.8.3"
+      sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
+      sources."@babel/plugin-syntax-flow-7.10.4"
+      sources."@babel/plugin-syntax-json-strings-7.8.3"
+      sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
       sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
+      sources."@babel/plugin-syntax-numeric-separator-7.10.4"
+      sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
+      sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
-      sources."@babel/plugin-syntax-typescript-7.10.1"
-      sources."@babel/plugin-transform-flow-strip-types-7.10.1"
-      sources."@babel/plugin-transform-modules-commonjs-7.10.1"
-      sources."@babel/plugin-transform-typescript-7.10.1"
-      sources."@babel/preset-flow-7.10.1"
-      sources."@babel/preset-typescript-7.10.1"
-      (sources."@babel/register-7.10.1" // {
+      sources."@babel/plugin-syntax-top-level-await-7.10.4"
+      sources."@babel/plugin-syntax-typescript-7.10.4"
+      sources."@babel/plugin-transform-arrow-functions-7.10.4"
+      sources."@babel/plugin-transform-async-to-generator-7.10.4"
+      sources."@babel/plugin-transform-block-scoped-functions-7.10.4"
+      sources."@babel/plugin-transform-block-scoping-7.11.1"
+      sources."@babel/plugin-transform-classes-7.10.4"
+      sources."@babel/plugin-transform-computed-properties-7.10.4"
+      sources."@babel/plugin-transform-destructuring-7.10.4"
+      sources."@babel/plugin-transform-dotall-regex-7.10.4"
+      sources."@babel/plugin-transform-duplicate-keys-7.10.4"
+      sources."@babel/plugin-transform-exponentiation-operator-7.10.4"
+      sources."@babel/plugin-transform-flow-strip-types-7.10.4"
+      sources."@babel/plugin-transform-for-of-7.10.4"
+      sources."@babel/plugin-transform-function-name-7.10.4"
+      sources."@babel/plugin-transform-literals-7.10.4"
+      sources."@babel/plugin-transform-member-expression-literals-7.10.4"
+      sources."@babel/plugin-transform-modules-amd-7.10.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.10.4"
+      sources."@babel/plugin-transform-modules-systemjs-7.10.5"
+      sources."@babel/plugin-transform-modules-umd-7.10.4"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.10.4"
+      sources."@babel/plugin-transform-new-target-7.10.4"
+      sources."@babel/plugin-transform-object-super-7.10.4"
+      sources."@babel/plugin-transform-parameters-7.10.5"
+      sources."@babel/plugin-transform-property-literals-7.10.4"
+      sources."@babel/plugin-transform-regenerator-7.10.4"
+      sources."@babel/plugin-transform-reserved-words-7.10.4"
+      sources."@babel/plugin-transform-shorthand-properties-7.10.4"
+      sources."@babel/plugin-transform-spread-7.11.0"
+      sources."@babel/plugin-transform-sticky-regex-7.10.4"
+      sources."@babel/plugin-transform-template-literals-7.10.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.10.4"
+      sources."@babel/plugin-transform-typescript-7.11.0"
+      sources."@babel/plugin-transform-unicode-escapes-7.10.4"
+      sources."@babel/plugin-transform-unicode-regex-7.10.4"
+      (sources."@babel/preset-env-7.11.5" // {
+        dependencies = [
+          sources."@babel/types-7.11.5"
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."@babel/preset-flow-7.10.4"
+      sources."@babel/preset-modules-0.1.4"
+      sources."@babel/preset-typescript-7.10.4"
+      (sources."@babel/register-7.11.5" // {
         dependencies = [
           sources."make-dir-2.1.0"
           sources."pify-4.0.1"
           sources."semver-5.7.1"
         ];
       })
-      sources."@babel/runtime-7.10.2"
-      sources."@babel/template-7.10.1"
-      sources."@babel/traverse-7.10.1"
-      sources."@babel/types-7.10.2"
-      sources."@endemolshinegroup/cosmiconfig-typescript-loader-1.0.1"
+      sources."@babel/runtime-7.11.2"
+      sources."@babel/template-7.10.4"
+      (sources."@babel/traverse-7.11.5" // {
+        dependencies = [
+          sources."@babel/generator-7.11.6"
+          sources."@babel/types-7.11.5"
+        ];
+      })
+      sources."@babel/types-7.10.4"
+      sources."@endemolshinegroup/cosmiconfig-typescript-loader-1.0.2"
       sources."@hapi/address-2.1.4"
       sources."@hapi/bourne-1.3.2"
       sources."@hapi/hoek-8.5.1"
       sources."@hapi/joi-15.1.1"
       sources."@hapi/topo-3.1.6"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
-      sources."@nodelib/fs.stat-1.1.3"
+      sources."@nodelib/fs.scandir-2.1.3"
+      sources."@nodelib/fs.stat-2.0.3"
+      sources."@nodelib/fs.walk-1.2.4"
       (sources."@oclif/color-0.1.2" // {
         dependencies = [
           (sources."chalk-3.0.0" // {
             dependencies = [
               sources."ansi-styles-4.2.1"
-              sources."supports-color-7.1.0"
+              sources."supports-color-7.2.0"
             ];
           })
           sources."color-convert-2.0.1"
@@ -50400,19 +54899,28 @@ in
           sources."strip-ansi-5.2.0"
         ];
       })
-      (sources."@oclif/command-1.6.1" // {
+      (sources."@oclif/command-1.8.0" // {
         dependencies = [
-          sources."@oclif/plugin-help-3.1.0"
-          sources."semver-5.7.1"
-          sources."strip-ansi-5.2.0"
+          sources."@oclif/plugin-help-3.2.0"
+          sources."semver-7.3.2"
         ];
       })
-      sources."@oclif/config-1.15.1"
-      (sources."@oclif/errors-1.2.2" // {
+      (sources."@oclif/config-1.17.0" // {
         dependencies = [
-          sources."clean-stack-1.3.0"
-          sources."indent-string-3.2.0"
-          sources."strip-ansi-5.2.0"
+          sources."globby-11.0.1"
+          sources."is-wsl-2.2.0"
+          sources."tslib-2.0.1"
+        ];
+      })
+      (sources."@oclif/errors-1.3.3" // {
+        dependencies = [
+          sources."ansi-styles-4.2.1"
+          sources."clean-stack-3.0.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."escape-string-regexp-4.0.0"
+          sources."fs-extra-9.0.1"
+          sources."wrap-ansi-7.0.0"
         ];
       })
       sources."@oclif/linewrap-1.0.0"
@@ -50420,7 +54928,17 @@ in
       sources."@oclif/plugin-autocomplete-0.2.0"
       (sources."@oclif/plugin-help-2.2.3" // {
         dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."emoji-regex-7.0.3"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-3.1.0"
           sources."strip-ansi-5.2.0"
+          (sources."widest-line-2.0.1" // {
+            dependencies = [
+              sources."string-width-2.1.1"
+              sources."strip-ansi-4.0.0"
+            ];
+          })
         ];
       })
       (sources."@oclif/plugin-not-found-1.2.4" // {
@@ -50431,12 +54949,12 @@ in
           sources."strip-ansi-5.2.0"
         ];
       })
-      (sources."@oclif/plugin-plugins-1.7.9" // {
+      (sources."@oclif/plugin-plugins-1.9.0" // {
         dependencies = [
-          sources."@oclif/color-0.0.0"
           sources."npm-run-path-3.1.0"
           sources."path-key-3.1.1"
-          sources."semver-5.7.1"
+          sources."semver-7.3.2"
+          sources."tslib-2.0.1"
         ];
       })
       (sources."@oclif/plugin-warn-if-update-available-1.7.0" // {
@@ -50455,7 +54973,7 @@ in
       sources."@protobufjs/path-1.1.2"
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
-      sources."@samverschueren/stream-to-observable-0.3.0"
+      sources."@samverschueren/stream-to-observable-0.3.1"
       sources."@sindresorhus/is-0.7.0"
       sources."@types/accepts-1.3.5"
       sources."@types/body-parser-1.19.0"
@@ -50463,48 +54981,82 @@ in
       sources."@types/connect-3.4.33"
       sources."@types/content-disposition-0.5.3"
       sources."@types/cookies-0.7.4"
-      sources."@types/cors-2.8.6"
-      sources."@types/express-4.17.4"
-      sources."@types/express-serve-static-core-4.17.7"
+      sources."@types/cors-2.8.7"
+      sources."@types/ejs-2.7.0"
+      sources."@types/express-4.17.7"
+      sources."@types/express-serve-static-core-4.17.12"
       sources."@types/fs-capacitor-2.0.0"
-      sources."@types/glob-7.1.2"
-      sources."@types/graphql-upload-8.0.3"
+      sources."@types/glob-7.1.3"
+      (sources."@types/graphql-upload-8.0.4" // {
+        dependencies = [
+          sources."graphql-15.3.0"
+        ];
+      })
       sources."@types/http-assert-1.5.1"
+      sources."@types/http-errors-1.8.0"
+      sources."@types/inquirer-6.5.0"
+      (sources."@types/jscodeshift-0.7.1" // {
+        dependencies = [
+          sources."ast-types-0.12.1"
+          sources."recast-0.17.2"
+          sources."source-map-0.6.1"
+        ];
+      })
       sources."@types/keygrip-1.0.2"
-      sources."@types/koa-2.11.3"
+      sources."@types/koa-2.11.4"
       sources."@types/koa-compose-3.2.5"
       sources."@types/long-4.0.1"
-      sources."@types/mime-2.0.2"
+      sources."@types/mime-2.0.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.0.13"
+      sources."@types/node-14.11.1"
       (sources."@types/node-fetch-2.5.7" // {
         dependencies = [
           sources."form-data-3.0.0"
         ];
       })
       sources."@types/normalize-package-data-2.4.0"
-      sources."@types/qs-6.9.3"
+      sources."@types/qs-6.9.5"
       sources."@types/range-parser-1.2.3"
-      sources."@types/serve-static-1.13.4"
-      sources."@types/ws-7.2.5"
-      sources."@types/zen-observable-0.8.0"
-      sources."@vue/cli-shared-utils-4.4.1"
-      (sources."@vue/cli-ui-4.4.1" // {
+      sources."@types/serve-static-1.13.5"
+      sources."@types/through-0.0.30"
+      sources."@types/ws-7.2.6"
+      sources."@types/zen-observable-0.8.1"
+      sources."@vue/cli-shared-utils-4.5.6"
+      (sources."@vue/cli-ui-4.5.6" // {
         dependencies = [
           sources."clone-2.1.2"
         ];
       })
-      sources."@vue/cli-ui-addon-webpack-4.4.1"
-      sources."@vue/cli-ui-addon-widgets-4.4.1"
+      sources."@vue/cli-ui-addon-webpack-4.5.6"
+      sources."@vue/cli-ui-addon-widgets-4.5.6"
+      (sources."@vue/compiler-core-3.0.0" // {
+        dependencies = [
+          sources."@babel/types-7.11.5"
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."@vue/compiler-dom-3.0.0"
+      (sources."@vue/compiler-sfc-3.0.0" // {
+        dependencies = [
+          sources."@babel/types-7.11.5"
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."@vue/compiler-ssr-3.0.0"
+      sources."@vue/reactivity-3.0.0"
+      sources."@vue/runtime-core-3.0.0"
+      sources."@vue/runtime-dom-3.0.0"
+      sources."@vue/shared-3.0.0"
       sources."@wry/context-0.4.4"
       sources."@wry/equality-0.1.11"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
-      sources."aggregate-error-3.0.1"
-      sources."ajv-6.12.2"
+      sources."aggregate-error-3.1.0"
+      sources."ajv-6.12.5"
       (sources."ansi-align-2.0.0" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-2.1.1"
           sources."strip-ansi-4.0.0"
         ];
@@ -50516,38 +55068,68 @@ in
       sources."any-observable-0.3.0"
       (sources."anymatch-2.0.0" // {
         dependencies = [
+          (sources."braces-2.3.2" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          sources."extend-shallow-3.0.2"
+          (sources."fill-range-4.0.0" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          sources."is-extendable-1.0.1"
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."micromatch-3.1.10"
           sources."normalize-path-2.1.1"
+          sources."to-regex-range-2.1.1"
         ];
       })
-      (sources."apollo-2.28.2" // {
+      (sources."apollo-2.30.3" // {
         dependencies = [
+          sources."apollo-graphql-0.6.0"
+          sources."mkdirp-1.0.4"
           sources."strip-ansi-5.2.0"
         ];
       })
       sources."apollo-cache-1.3.5"
-      sources."apollo-cache-control-0.11.0"
+      sources."apollo-cache-control-0.11.1"
       sources."apollo-cache-inmemory-1.6.6"
       sources."apollo-client-2.6.10"
-      (sources."apollo-codegen-core-0.37.2" // {
+      (sources."apollo-codegen-core-0.37.9" // {
         dependencies = [
-          sources."recast-0.19.1"
+          (sources."recast-0.20.3" // {
+            dependencies = [
+              sources."ast-types-0.14.1"
+            ];
+          })
           sources."source-map-0.6.1"
+          sources."tslib-2.0.1"
         ];
       })
-      sources."apollo-codegen-flow-0.35.2"
-      sources."apollo-codegen-scala-0.36.2"
-      sources."apollo-codegen-swift-0.37.2"
-      sources."apollo-codegen-typescript-0.37.2"
-      sources."apollo-datasource-0.7.1"
-      (sources."apollo-engine-reporting-2.0.0" // {
+      sources."apollo-codegen-flow-0.35.9"
+      sources."apollo-codegen-scala-0.36.9"
+      sources."apollo-codegen-swift-0.37.9"
+      sources."apollo-codegen-typescript-0.37.9"
+      sources."apollo-datasource-0.7.2"
+      (sources."apollo-engine-reporting-2.3.0" // {
         dependencies = [
-          sources."uuid-8.1.0"
+          sources."uuid-8.3.0"
         ];
       })
-      sources."apollo-engine-reporting-protobuf-0.5.1"
+      sources."apollo-engine-reporting-protobuf-0.5.2"
       sources."apollo-env-0.6.5"
-      sources."apollo-graphql-0.4.5"
-      sources."apollo-language-server-1.22.2"
+      sources."apollo-graphql-0.5.0"
+      (sources."apollo-language-server-1.23.4" // {
+        dependencies = [
+          sources."apollo-graphql-0.6.0"
+        ];
+      })
       sources."apollo-link-1.2.14"
       sources."apollo-link-context-1.0.20"
       sources."apollo-link-error-1.1.13"
@@ -50556,14 +55138,14 @@ in
       sources."apollo-link-persisted-queries-0.2.2"
       sources."apollo-link-state-0.4.2"
       sources."apollo-link-ws-1.0.20"
-      sources."apollo-server-caching-0.5.1"
-      sources."apollo-server-core-2.14.3"
-      sources."apollo-server-env-2.4.4"
-      sources."apollo-server-errors-2.4.1"
-      sources."apollo-server-express-2.14.3"
-      sources."apollo-server-plugin-base-0.9.0"
-      sources."apollo-server-types-0.5.0"
-      sources."apollo-tracing-0.11.0"
+      sources."apollo-server-caching-0.5.2"
+      sources."apollo-server-core-2.17.0"
+      sources."apollo-server-env-2.4.5"
+      sources."apollo-server-errors-2.4.2"
+      sources."apollo-server-express-2.17.0"
+      sources."apollo-server-plugin-base-0.9.1"
+      sources."apollo-server-types-0.5.1"
+      sources."apollo-tracing-0.11.2"
       sources."apollo-upload-client-11.0.0"
       sources."apollo-utilities-1.3.4"
       (sources."archive-type-4.0.0" // {
@@ -50577,24 +55159,29 @@ in
       sources."arr-flatten-1.1.0"
       sources."arr-union-3.1.0"
       sources."array-flatten-1.1.1"
-      sources."array-union-1.0.2"
+      sources."array-union-2.1.0"
       sources."array-uniq-1.0.3"
       sources."array-unique-0.3.2"
       sources."arrify-2.0.1"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."assign-symbols-1.0.0"
-      sources."ast-types-0.13.3"
+      (sources."ast-types-0.14.2" // {
+        dependencies = [
+          sources."tslib-2.0.1"
+        ];
+      })
       sources."astral-regex-1.0.0"
       sources."async-2.6.3"
       sources."async-each-1.0.3"
       sources."async-limiter-1.0.1"
       sources."async-retry-1.3.1"
       sources."asynckit-0.4.0"
+      sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
       sources."await-to-js-2.1.1"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."babel-core-7.0.0-bridge.0"
       sources."babel-plugin-dynamic-import-node-2.3.3"
       sources."backo2-1.0.2"
@@ -50606,18 +55193,20 @@ in
       })
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
+      sources."big.js-5.2.2"
       sources."binary-extensions-1.13.1"
       sources."bindings-1.5.0"
-      sources."bl-1.2.2"
+      sources."bl-1.2.3"
+      sources."bluebird-3.7.2"
       (sources."body-parser-1.19.0" // {
         dependencies = [
           sources."debug-2.6.9"
           sources."http-errors-1.7.2"
           sources."inherits-2.0.3"
           sources."qs-6.7.0"
+          sources."setprototypeof-1.1.1"
         ];
       })
-      sources."boolbase-1.0.0"
       (sources."boxen-4.2.0" // {
         dependencies = [
           (sources."ansi-align-3.0.0" // {
@@ -50625,30 +55214,24 @@ in
               sources."string-width-3.1.0"
             ];
           })
-          sources."ansi-regex-5.0.0"
           sources."ansi-styles-4.2.1"
           sources."camelcase-5.3.1"
           sources."chalk-3.0.0"
-          sources."cli-boxes-2.2.0"
+          sources."cli-boxes-2.2.1"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
-          sources."emoji-regex-8.0.0"
+          sources."emoji-regex-7.0.3"
           sources."has-flag-4.0.0"
-          sources."is-fullwidth-code-point-3.0.0"
-          (sources."string-width-4.2.0" // {
-            dependencies = [
-              sources."strip-ansi-6.0.0"
-            ];
-          })
+          sources."is-fullwidth-code-point-2.0.0"
           sources."strip-ansi-5.2.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
           sources."term-size-2.2.0"
           sources."type-fest-0.8.1"
-          sources."widest-line-3.1.0"
         ];
       })
       sources."brace-expansion-1.1.11"
-      sources."braces-2.3.2"
+      sources."braces-3.0.2"
+      sources."browserslist-4.14.3"
       sources."buffer-5.6.0"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -50673,17 +55256,31 @@ in
       sources."caller-callsite-2.0.0"
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
-      sources."camel-case-3.0.0"
+      sources."camel-case-4.1.1"
       sources."camelcase-4.1.0"
+      sources."caniuse-lite-1.0.30001133"
+      sources."capital-case-1.0.3"
       sources."capture-stack-trace-1.0.1"
       sources."cardinal-2.1.1"
       sources."caseless-0.12.0"
       sources."caw-2.0.1"
       sources."chalk-2.4.2"
-      sources."change-case-3.1.0"
+      sources."change-case-4.1.1"
       sources."chardet-0.7.0"
-      sources."cheerio-1.0.0-rc.3"
-      sources."chokidar-2.1.8"
+      (sources."chokidar-2.1.8" // {
+        dependencies = [
+          sources."braces-2.3.2"
+          sources."fill-range-4.0.0"
+          (sources."glob-parent-3.1.0" // {
+            dependencies = [
+              sources."is-glob-3.1.0"
+            ];
+          })
+          sources."is-number-3.0.0"
+          sources."kind-of-3.2.2"
+          sources."to-regex-range-2.1.1"
+        ];
+      })
       sources."ci-info-1.6.0"
       (sources."class-utils-0.3.6" // {
         dependencies = [
@@ -50705,14 +55302,8 @@ in
       sources."clean-stack-2.2.0"
       sources."cli-boxes-1.0.0"
       sources."cli-cursor-2.1.0"
-      (sources."cli-progress-3.8.2" // {
-        dependencies = [
-          sources."emoji-regex-8.0.0"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
-        ];
-      })
-      sources."cli-spinners-2.3.0"
+      sources."cli-progress-3.8.2"
+      sources."cli-spinners-2.4.0"
       (sources."cli-truncate-0.2.1" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -50721,19 +55312,36 @@ in
           sources."strip-ansi-3.0.1"
         ];
       })
-      (sources."cli-ux-5.4.6" // {
+      (sources."cli-ux-5.4.10" // {
         dependencies = [
           sources."ansi-escapes-4.3.1"
           sources."ansi-styles-4.2.1"
+          sources."chalk-4.1.0"
+          sources."clean-stack-3.0.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
-          sources."semver-5.7.1"
-          sources."strip-ansi-5.2.0"
+          sources."escape-string-regexp-4.0.0"
+          sources."extract-stack-2.0.0"
+          sources."fs-extra-9.0.1"
+          sources."has-flag-4.0.0"
+          sources."is-wsl-2.2.0"
+          sources."semver-7.3.2"
+          sources."supports-color-7.2.0"
+          sources."supports-hyperlinks-2.1.0"
+          sources."tslib-2.0.1"
           sources."type-fest-0.11.0"
         ];
       })
-      sources."cli-width-2.2.1"
+      sources."cli-width-3.0.0"
       sources."clipboard-2.0.6"
+      (sources."cliui-6.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.2.1"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."wrap-ansi-6.2.0"
+        ];
+      })
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
       sources."cmd-shim-3.0.3"
@@ -50749,8 +55357,9 @@ in
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
       sources."config-chain-1.1.12"
-      sources."configstore-3.1.2"
-      sources."constant-case-2.0.0"
+      sources."configstore-3.1.5"
+      sources."consolidate-0.16.0"
+      sources."constant-case-3.0.3"
       (sources."content-disposition-0.5.3" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
@@ -50766,6 +55375,11 @@ in
       sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
       sources."core-js-3.6.5"
+      (sources."core-js-compat-3.6.5" // {
+        dependencies = [
+          sources."semver-7.0.0"
+        ];
+      })
       sources."core-util-is-1.0.2"
       sources."cors-2.8.5"
       (sources."cosmiconfig-5.2.1" // {
@@ -50780,17 +55394,18 @@ in
         ];
       })
       sources."crypto-random-string-1.0.0"
-      sources."css-select-1.2.0"
-      sources."css-what-2.1.3"
+      sources."cssesc-3.0.0"
+      sources."cssfilter-0.0.10"
+      sources."csstype-2.6.13"
       sources."csv-parser-1.12.1"
       sources."dashdash-1.14.1"
       sources."date-fns-1.30.1"
-      sources."de-indent-1.0.2"
-      (sources."debug-4.2.0" // {
+      (sources."debug-4.3.0" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
       })
+      sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
       (sources."decompress-4.2.1" // {
         dependencies = [
@@ -50830,16 +55445,11 @@ in
       sources."depd-1.1.2"
       sources."deprecated-decorator-0.1.6"
       sources."destroy-1.0.4"
-      sources."detect-indent-6.0.0"
       sources."dicer-0.3.0"
       sources."diff-4.0.2"
-      sources."dir-glob-2.2.2"
-      sources."dom-serializer-0.1.1"
-      sources."domelementtype-1.3.1"
-      sources."domhandler-2.4.2"
-      sources."domutils-1.5.1"
-      sources."dot-case-2.1.1"
-      sources."dot-prop-4.2.0"
+      sources."dir-glob-3.0.1"
+      sources."dot-case-3.0.3"
+      sources."dot-prop-4.2.1"
       sources."dotenv-8.2.0"
       (sources."download-7.1.0" // {
         dependencies = [
@@ -50856,20 +55466,25 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
+      sources."electron-to-chromium-1.3.570"
       sources."elegant-spinner-1.0.1"
-      sources."emoji-regex-7.0.3"
+      sources."emoji-regex-8.0.0"
+      sources."emojis-list-3.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
-      sources."entities-1.1.2"
+      sources."entities-2.0.3"
       sources."env-ci-3.2.2"
-      sources."envinfo-7.5.1"
+      sources."envinfo-7.7.3"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
+      sources."escalade-3.1.0"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
       sources."esm-3.2.25"
       sources."esprima-4.0.1"
+      sources."estree-walker-2.0.1"
+      sources."esutils-2.0.3"
       sources."etag-1.8.1"
       sources."event-pubsub-4.3.0"
       sources."eventemitter3-3.1.2"
@@ -50899,6 +55514,7 @@ in
           sources."debug-2.6.9"
           sources."qs-6.7.0"
           sources."safe-buffer-5.1.2"
+          sources."setprototypeof-1.1.1"
         ];
       })
       sources."express-history-api-fallback-2.2.1"
@@ -50916,16 +55532,17 @@ in
       sources."extract-stack-1.0.0"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
-      sources."fast-glob-2.2.7"
+      sources."fast-glob-3.2.4"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
+      sources."fastq-1.8.0"
       sources."fd-slicer-1.1.0"
       sources."figures-1.7.0"
       sources."file-type-8.1.0"
       sources."file-uri-to-path-1.0.0"
       sources."filename-reserved-regex-2.0.0"
       sources."filenamify-2.1.0"
-      sources."fill-range-4.0.0"
+      sources."fill-range-7.0.1"
       (sources."finalhandler-1.1.2" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -50940,7 +55557,7 @@ in
       })
       sources."find-up-3.0.0"
       sources."fkill-6.2.0"
-      sources."flow-parser-0.126.1"
+      sources."flow-parser-0.134.0"
       sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
@@ -50951,7 +55568,12 @@ in
       sources."fs-capacitor-2.0.4"
       sources."fs-constants-1.0.0"
       sources."fs-exists-sync-0.1.0"
-      sources."fs-extra-7.0.1"
+      (sources."fs-extra-7.0.1" // {
+        dependencies = [
+          sources."jsonfile-4.0.0"
+          sources."universalify-0.1.2"
+        ];
+      })
       sources."fs.realpath-1.0.0"
       sources."fsevents-1.2.13"
       sources."fswin-2.17.1227"
@@ -50959,7 +55581,9 @@ in
       sources."gaze-1.1.3"
       sources."generate-function-1.1.0"
       sources."generate-object-property-1.2.0"
+      sources."generic-names-2.0.1"
       sources."gensync-1.0.0-beta.1"
+      sources."get-caller-file-2.0.5"
       sources."get-proxy-2.1.0"
       sources."get-stream-4.1.0"
       sources."get-value-2.0.6"
@@ -50972,21 +55596,45 @@ in
           sources."graceful-fs-4.1.15"
         ];
       })
-      sources."git-up-4.0.1"
-      sources."git-url-parse-11.1.2"
+      sources."git-up-4.0.2"
+      sources."git-url-parse-11.1.3"
       sources."glob-7.1.5"
-      (sources."glob-parent-3.1.0" // {
-        dependencies = [
-          sources."is-glob-3.1.0"
-        ];
-      })
+      sources."glob-parent-5.1.1"
       sources."glob-to-regexp-0.3.0"
       sources."global-dirs-0.1.1"
       sources."globals-11.12.0"
       (sources."globby-9.2.0" // {
         dependencies = [
+          sources."@nodelib/fs.stat-1.1.3"
+          sources."array-union-1.0.2"
+          (sources."braces-2.3.2" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          sources."dir-glob-2.2.2"
+          sources."extend-shallow-3.0.2"
+          sources."fast-glob-2.2.7"
+          (sources."fill-range-4.0.0" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          sources."glob-parent-3.1.0"
+          sources."ignore-4.0.6"
+          sources."is-extendable-1.0.1"
+          sources."is-glob-3.1.0"
+          sources."is-number-3.0.0"
+          sources."kind-of-3.2.2"
+          sources."micromatch-3.1.10"
+          (sources."path-type-3.0.0" // {
+            dependencies = [
+              sources."pify-3.0.0"
+            ];
+          })
           sources."pify-4.0.1"
           sources."slash-2.0.0"
+          sources."to-regex-range-2.1.1"
         ];
       })
       sources."globule-1.3.2"
@@ -50997,22 +55645,21 @@ in
         ];
       })
       sources."graceful-fs-4.2.4"
-      sources."graceful-readlink-1.0.1"
-      sources."graphql-14.6.0"
+      sources."graphql-14.7.0"
       (sources."graphql-anywhere-4.2.7" // {
         dependencies = [
           sources."ts-invariant-0.3.3"
         ];
       })
-      sources."graphql-extensions-0.12.2"
+      sources."graphql-extensions-0.12.4"
       sources."graphql-subscriptions-1.1.0"
-      sources."graphql-tag-2.10.3"
+      sources."graphql-tag-2.11.0"
       sources."graphql-tools-4.0.8"
       sources."graphql-type-json-0.3.2"
       sources."graphql-upload-8.1.0"
       sources."growly-1.3.0"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-1.0.3"
       (sources."has-ansi-2.0.0" // {
         dependencies = [
@@ -51026,19 +55673,19 @@ in
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
           sources."kind-of-4.0.0"
         ];
       })
+      sources."hash-sum-2.0.0"
       sources."hash.js-1.1.7"
-      sources."he-1.2.0"
-      sources."header-case-1.0.1"
+      sources."header-case-2.0.3"
       sources."homedir-polyfill-1.0.3"
       sources."hosted-git-info-2.8.8"
-      (sources."htmlparser2-3.10.1" // {
-        dependencies = [
-          sources."readable-stream-3.6.0"
-        ];
-      })
       sources."http-cache-semantics-3.8.1"
       (sources."http-call-5.3.0" // {
         dependencies = [
@@ -51046,70 +55693,67 @@ in
           sources."parse-json-4.0.0"
         ];
       })
-      sources."http-errors-1.7.3"
+      sources."http-errors-1.8.0"
       sources."http-signature-1.2.0"
       sources."human-signals-1.1.1"
       sources."hyperlinker-1.0.0"
       sources."iconv-lite-0.4.24"
+      sources."icss-replace-symbols-1.1.0"
+      sources."icss-utils-4.1.1"
       sources."ieee754-1.1.13"
-      sources."ignore-4.0.6"
+      sources."ignore-5.1.8"
       sources."ignore-by-default-1.0.1"
       sources."import-fresh-2.0.0"
       sources."import-global-0.1.0"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
-      sources."inflected-2.0.4"
+      sources."indexes-of-1.0.1"
+      sources."inflected-2.1.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      (sources."inquirer-7.1.0" // {
+      (sources."inquirer-7.3.3" // {
         dependencies = [
           sources."ansi-escapes-4.3.1"
           sources."ansi-styles-4.2.1"
-          sources."chalk-3.0.0"
+          sources."chalk-4.1.0"
           sources."cli-cursor-3.1.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
-          sources."emoji-regex-8.0.0"
           sources."figures-3.2.0"
           sources."has-flag-4.0.0"
-          sources."is-fullwidth-code-point-3.0.0"
           sources."mimic-fn-2.1.0"
-          sources."onetime-5.1.0"
+          sources."onetime-5.1.2"
           sources."restore-cursor-3.1.0"
-          sources."string-width-4.2.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
           sources."type-fest-0.11.0"
         ];
       })
       sources."interpret-1.4.0"
       sources."into-stream-2.0.1"
+      sources."invariant-2.2.4"
       sources."ipaddr.js-1.9.1"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-callable-1.2.0"
+      sources."is-callable-1.2.1"
       sources."is-ci-1.2.1"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
       sources."is-directory-0.3.1"
-      sources."is-docker-2.0.0"
+      sources."is-docker-2.1.1"
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-installed-globally-0.1.0"
-      sources."is-lower-case-1.1.3"
       sources."is-natural-number-4.0.1"
+      sources."is-negative-zero-2.0.0"
       sources."is-npm-1.0.0"
-      (sources."is-number-3.0.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
+      sources."is-number-7.0.0"
       sources."is-obj-1.0.1"
       sources."is-object-1.0.1"
       sources."is-observable-1.1.0"
@@ -51119,13 +55763,12 @@ in
       sources."is-promise-2.2.2"
       sources."is-property-1.0.2"
       sources."is-redirect-1.0.0"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-retry-allowed-1.2.0"
-      sources."is-ssh-1.3.1"
+      sources."is-ssh-1.3.2"
       sources."is-stream-1.1.0"
       sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
-      sources."is-upper-case-1.1.2"
       sources."is-windows-1.0.2"
       sources."is-wsl-1.1.0"
       sources."isarray-1.0.0"
@@ -51142,21 +55785,42 @@ in
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
-      sources."jscodeshift-0.9.0"
+      (sources."jscodeshift-0.10.0" // {
+        dependencies = [
+          (sources."braces-2.3.2" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          sources."extend-shallow-3.0.2"
+          (sources."fill-range-4.0.0" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          sources."is-extendable-1.0.1"
+          sources."is-number-3.0.0"
+          sources."kind-of-3.2.2"
+          sources."micromatch-3.1.10"
+          sources."to-regex-range-2.1.1"
+        ];
+      })
       sources."jsesc-2.5.2"
       sources."json-buffer-3.0.0"
       sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."json5-2.1.3"
-      sources."jsonfile-4.0.0"
+      sources."jsonfile-6.0.1"
       sources."jsprim-1.4.1"
       sources."keyv-3.0.0"
       sources."kind-of-6.0.3"
       sources."latest-version-3.1.0"
       sources."launch-editor-2.2.1"
       sources."leven-3.1.0"
+      sources."levenary-1.1.1"
       sources."lines-and-columns-1.1.6"
       sources."listr-0.14.3"
       sources."listr-silent-renderer-1.1.1"
@@ -51183,9 +55847,15 @@ in
           sources."type-fest-0.3.1"
         ];
       })
+      (sources."loader-utils-1.4.0" // {
+        dependencies = [
+          sources."json5-1.0.1"
+        ];
+      })
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash._reinterpolate-3.0.0"
+      sources."lodash.camelcase-4.3.0"
       sources."lodash.clonedeep-4.5.0"
       sources."lodash.debounce-4.0.8"
       sources."lodash.get-4.4.2"
@@ -51200,22 +55870,24 @@ in
       (sources."log-update-2.3.0" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-2.1.1"
           sources."strip-ansi-4.0.0"
           sources."wrap-ansi-3.0.1"
         ];
       })
-      sources."loglevel-1.6.8"
+      sources."loglevel-1.7.0"
       sources."long-4.0.0"
+      sources."loose-envify-1.4.0"
       sources."lowdb-1.0.0"
-      sources."lower-case-1.1.4"
-      sources."lower-case-first-1.0.2"
+      sources."lower-case-2.0.1"
       sources."lowercase-keys-1.0.1"
       (sources."lru-cache-5.1.1" // {
         dependencies = [
           sources."yallist-3.1.1"
         ];
       })
+      sources."magic-string-0.25.7"
       sources."make-dir-1.3.0"
       sources."make-error-1.3.6"
       sources."map-cache-0.2.2"
@@ -51223,15 +55895,15 @@ in
       sources."media-typer-0.3.0"
       sources."merge-1.2.1"
       sources."merge-descriptors-1.0.1"
-      sources."merge-stream-2.0.0"
-      sources."merge2-1.4.1"
-      sources."methods-1.1.2"
-      (sources."micromatch-3.1.10" // {
+      (sources."merge-source-map-1.1.0" // {
         dependencies = [
-          sources."extend-shallow-3.0.2"
-          sources."is-extendable-1.0.1"
+          sources."source-map-0.6.1"
         ];
       })
+      sources."merge-stream-2.0.0"
+      sources."merge2-1.4.1"
+      sources."methods-1.1.2"
+      sources."micromatch-4.0.2"
       sources."mime-1.6.0"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
@@ -51246,7 +55918,7 @@ in
         ];
       })
       sources."mkdirp-0.5.5"
-      sources."moment-2.26.0"
+      sources."moment-2.27.0"
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
       sources."nan-2.14.1"
@@ -51265,11 +55937,11 @@ in
         ];
       })
       sources."negotiator-0.6.2"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       sources."nice-try-1.0.5"
-      sources."no-case-2.3.2"
+      sources."no-case-3.0.3"
       sources."node-dir-0.1.17"
-      sources."node-fetch-2.6.0"
+      sources."node-fetch-2.6.1"
       sources."node-ipc-9.1.1"
       sources."node-modules-regexp-1.0.0"
       (sources."node-notifier-6.0.0" // {
@@ -51277,6 +55949,7 @@ in
           sources."is-wsl-2.2.0"
         ];
       })
+      sources."node-releases-1.1.61"
       (sources."nodemon-1.19.4" // {
         dependencies = [
           sources."debug-3.2.6"
@@ -51294,7 +55967,6 @@ in
       sources."normalize-url-3.3.0"
       sources."npm-conf-1.1.3"
       sources."npm-run-path-2.0.2"
-      sources."nth-check-1.0.2"
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
@@ -51311,12 +55983,16 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
       sources."object-path-0.11.4"
-      sources."object-treeify-1.1.25"
+      sources."object-treeify-1.1.28"
       sources."object-visit-1.0.1"
-      sources."object.assign-4.1.0"
+      (sources."object.assign-4.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."object.getownpropertydescriptors-2.1.0"
       sources."object.pick-1.3.0"
       sources."on-finished-2.3.0"
@@ -51344,18 +56020,17 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."param-case-2.1.1"
+      sources."param-case-3.0.3"
       sources."parse-git-config-2.0.3"
-      sources."parse-json-5.0.0"
+      sources."parse-json-5.1.0"
       sources."parse-passwd-1.0.0"
-      sources."parse-path-4.0.1"
-      sources."parse-url-5.0.1"
-      sources."parse5-3.0.3"
+      sources."parse-path-4.0.2"
+      sources."parse-url-5.0.2"
       sources."parseurl-1.3.3"
-      sources."pascal-case-2.0.1"
+      sources."pascal-case-3.1.1"
       sources."pascalcase-0.1.1"
       sources."password-prompt-1.1.2"
-      sources."path-case-2.1.1"
+      sources."path-case-3.0.3"
       sources."path-dirname-1.0.2"
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
@@ -51363,9 +56038,10 @@ in
       sources."path-key-2.0.1"
       sources."path-parse-1.0.6"
       sources."path-to-regexp-0.1.7"
-      sources."path-type-3.0.0"
+      sources."path-type-4.0.0"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
+      sources."picomatch-2.2.2"
       (sources."pid-from-port-1.1.3" // {
         dependencies = [
           sources."cross-spawn-5.1.0"
@@ -51379,20 +56055,33 @@ in
       sources."pinkie-promise-2.0.1"
       sources."pirates-4.0.1"
       sources."pkg-dir-3.0.0"
-      (sources."portfinder-1.0.26" // {
+      (sources."portfinder-1.0.28" // {
         dependencies = [
           sources."debug-3.2.6"
           sources."ms-2.1.2"
         ];
       })
       sources."posix-character-classes-0.1.1"
+      (sources."postcss-7.0.34" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+          sources."supports-color-6.1.0"
+        ];
+      })
+      sources."postcss-modules-3.2.2"
+      sources."postcss-modules-extract-imports-2.0.0"
+      sources."postcss-modules-local-by-default-3.0.3"
+      sources."postcss-modules-scope-2.2.0"
+      sources."postcss-modules-values-3.0.0"
+      sources."postcss-selector-parser-6.0.3"
+      sources."postcss-value-parser-4.1.0"
       sources."prepend-http-1.0.4"
-      sources."prismjs-1.20.0"
+      sources."prismjs-1.21.0"
       sources."private-0.1.8"
       sources."process-exists-3.1.0"
       sources."process-nextick-args-2.0.1"
       sources."proto-list-1.2.4"
-      sources."protocols-1.4.7"
+      sources."protocols-1.4.8"
       sources."proxy-addr-2.0.6"
       sources."ps-list-4.1.0"
       sources."pseudomap-1.0.2"
@@ -51407,6 +56096,7 @@ in
         dependencies = [
           sources."http-errors-1.7.2"
           sources."inherits-2.0.3"
+          sources."setprototypeof-1.1.1"
         ];
       })
       sources."rc-1.2.8"
@@ -51416,29 +56106,59 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      sources."readdirp-2.2.1"
+      (sources."readdirp-2.2.1" // {
+        dependencies = [
+          (sources."braces-2.3.2" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          sources."extend-shallow-3.0.2"
+          (sources."fill-range-4.0.0" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          sources."is-extendable-1.0.1"
+          sources."is-number-3.0.0"
+          sources."kind-of-3.2.2"
+          sources."micromatch-3.1.10"
+          sources."to-regex-range-2.1.1"
+        ];
+      })
       (sources."recast-0.18.10" // {
         dependencies = [
+          sources."ast-types-0.13.3"
           sources."source-map-0.6.1"
         ];
       })
       sources."rechoir-0.6.2"
       sources."redeyed-2.1.1"
-      sources."regenerator-runtime-0.13.5"
+      sources."regenerate-1.4.1"
+      sources."regenerate-unicode-properties-8.2.0"
+      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-transform-0.14.5"
       (sources."regex-not-1.0.2" // {
         dependencies = [
           sources."extend-shallow-3.0.2"
           sources."is-extendable-1.0.1"
         ];
       })
+      sources."regexpu-core-4.7.1"
       sources."registry-auth-token-3.4.0"
       sources."registry-url-3.1.0"
+      sources."regjsgen-0.5.2"
+      (sources."regjsparser-0.6.4" // {
+        dependencies = [
+          sources."jsesc-0.5.0"
+        ];
+      })
       sources."remove-trailing-separator-1.1.0"
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
       sources."request-2.88.2"
-      sources."request-promise-core-1.1.3"
-      sources."request-promise-native-1.0.8"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
       sources."resolve-1.17.0"
       sources."resolve-from-3.0.0"
       sources."resolve-url-0.2.1"
@@ -51446,20 +56166,18 @@ in
       sources."restore-cursor-2.0.0"
       sources."ret-0.1.15"
       sources."retry-0.12.0"
+      sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
-      sources."rss-parser-3.8.0"
+      sources."rss-parser-3.9.0"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."run-parallel-1.1.9"
+      sources."rxjs-6.6.3"
       sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
       sources."sec-1.0.0"
-      (sources."seek-bzip-1.0.5" // {
-        dependencies = [
-          sources."commander-2.8.1"
-        ];
-      })
+      sources."seek-bzip-1.0.6"
       sources."select-1.1.2"
       sources."semver-6.3.0"
       (sources."semver-diff-2.1.0" // {
@@ -51474,13 +56192,16 @@ in
               sources."ms-2.0.0"
             ];
           })
+          sources."http-errors-1.7.3"
           sources."ms-2.1.1"
+          sources."setprototypeof-1.1.1"
         ];
       })
-      sources."sentence-case-2.1.1"
+      sources."sentence-case-3.0.3"
       sources."serve-static-1.14.1"
+      sources."set-blocking-2.0.0"
       sources."set-value-2.0.1"
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."sha.js-2.4.11"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
@@ -51491,7 +56212,7 @@ in
       sources."signal-exit-3.0.3"
       sources."slash-3.0.0"
       sources."slice-ansi-0.0.4"
-      sources."snake-case-2.1.0"
+      sources."snake-case-3.0.3"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -51530,10 +56251,11 @@ in
         ];
       })
       sources."source-map-url-0.4.0"
+      sources."sourcemap-codec-1.4.8"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       (sources."split-string-3.1.0" // {
         dependencies = [
           sources."extend-shallow-3.0.2"
@@ -51561,18 +56283,12 @@ in
         ];
       })
       sources."statuses-1.5.0"
-      sources."stealthy-require-1.1.1"
       sources."steno-0.4.4"
       sources."streamsearch-0.1.2"
       sources."strict-uri-encode-1.1.0"
-      (sources."string-width-3.1.0" // {
-        dependencies = [
-          sources."strip-ansi-5.2.0"
-        ];
-      })
+      sources."string-hash-1.1.3"
+      sources."string-width-4.2.0"
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
       (sources."string_decoder-1.1.1" // {
         dependencies = [
@@ -51590,7 +56306,7 @@ in
       sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-2.0.1"
       sources."strip-outer-1.0.1"
-      (sources."subscriptions-transport-ws-0.9.16" // {
+      (sources."subscriptions-transport-ws-0.9.18" // {
         dependencies = [
           sources."ws-5.2.2"
         ];
@@ -51601,11 +56317,14 @@ in
           sources."has-flag-2.0.0"
         ];
       })
-      sources."swap-case-1.1.2"
       sources."symbol-observable-1.2.0"
       (sources."table-5.4.6" // {
         dependencies = [
+          sources."emoji-regex-7.0.3"
+          sources."is-fullwidth-code-point-2.0.0"
           sources."slice-ansi-2.1.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
         ];
       })
       sources."tar-stream-1.6.2"
@@ -51613,11 +56332,11 @@ in
         dependencies = [
           sources."cross-spawn-7.0.3"
           sources."execa-3.4.0"
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."is-stream-2.0.0"
           sources."mimic-fn-2.1.0"
           sources."npm-run-path-4.0.1"
-          sources."onetime-5.1.0"
+          sources."onetime-5.1.2"
           sources."p-finally-2.0.1"
           sources."path-key-3.1.1"
           sources."shebang-command-2.0.0"
@@ -51647,7 +56366,6 @@ in
       sources."through2-2.0.5"
       sources."timed-out-4.0.1"
       sources."tiny-emitter-2.1.0"
-      sources."title-case-2.1.1"
       sources."tmp-0.0.33"
       sources."to-buffer-1.1.1"
       sources."to-fast-properties-2.0.0"
@@ -51662,7 +56380,7 @@ in
           sources."is-extendable-1.0.1"
         ];
       })
-      sources."to-regex-range-2.1.1"
+      sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
       sources."touch-3.1.0"
       sources."tough-cookie-2.5.0"
@@ -51676,16 +56394,21 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-fest-0.6.0"
       sources."type-is-1.6.18"
-      sources."typescript-3.9.5"
+      sources."typescript-3.9.7"
       sources."unbzip2-stream-1.4.3"
       (sources."undefsafe-2.0.3" // {
         dependencies = [
           sources."debug-2.6.9"
         ];
       })
+      sources."unicode-canonical-property-names-ecmascript-1.0.4"
+      sources."unicode-match-property-ecmascript-1.0.4"
+      sources."unicode-match-property-value-ecmascript-1.2.0"
+      sources."unicode-property-aliases-ecmascript-1.1.0"
       sources."union-value-1.0.1"
+      sources."uniq-1.0.1"
       sources."unique-string-1.0.0"
-      sources."universalify-0.1.2"
+      sources."universalify-1.0.0"
       sources."unpipe-1.0.0"
       (sources."unset-value-1.0.0" // {
         dependencies = [
@@ -51703,13 +56426,15 @@ in
         dependencies = [
           sources."ansi-regex-3.0.0"
           sources."boxen-1.3.0"
+          sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-2.1.1"
           sources."strip-ansi-4.0.0"
+          sources."widest-line-2.0.1"
         ];
       })
-      sources."upper-case-1.1.3"
-      sources."upper-case-first-1.1.2"
-      sources."uri-js-4.2.2"
+      sources."upper-case-2.0.1"
+      sources."upper-case-first-2.0.1"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."url-parse-lax-1.0.0"
       sources."url-to-options-1.0.1"
@@ -51727,44 +56452,41 @@ in
       sources."vscode-languageserver-protocol-3.14.1"
       sources."vscode-languageserver-types-3.14.0"
       sources."vscode-uri-1.0.6"
-      sources."vue-2.6.11"
+      sources."vue-2.6.12"
       (sources."vue-cli-plugin-apollo-0.21.3" // {
         dependencies = [
           sources."cross-spawn-7.0.3"
           sources."execa-3.4.0"
           sources."fs-extra-8.1.0"
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."is-stream-2.0.0"
+          sources."jsonfile-4.0.0"
           sources."mimic-fn-2.1.0"
           sources."npm-run-path-4.0.1"
-          sources."onetime-5.1.0"
+          sources."onetime-5.1.2"
           sources."p-finally-2.0.1"
           sources."path-key-3.1.1"
           sources."shebang-command-2.0.0"
           sources."shebang-regex-3.0.0"
+          sources."universalify-0.1.2"
           sources."which-2.0.2"
         ];
       })
-      sources."vue-jscodeshift-adapter-2.1.0"
-      (sources."vue-sfc-descriptor-to-string-1.0.0" // {
+      (sources."vue-codemod-0.0.4" // {
         dependencies = [
-          sources."indent-string-3.2.0"
+          sources."globby-10.0.2"
+          sources."vue-3.0.0"
         ];
       })
-      sources."vue-template-compiler-2.6.11"
       sources."watch-1.0.2"
       sources."wcwidth-1.0.1"
       sources."which-1.3.1"
-      (sources."widest-line-2.0.1" // {
-        dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."string-width-2.1.1"
-          sources."strip-ansi-4.0.0"
-        ];
-      })
+      sources."which-module-2.0.0"
+      sources."widest-line-3.1.0"
       (sources."wrap-ansi-4.0.0" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-2.1.1"
           sources."strip-ansi-4.0.0"
         ];
@@ -51775,14 +56497,29 @@ in
       sources."xdg-basedir-3.0.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
+      sources."xss-1.0.8"
       sources."xtend-4.0.2"
+      sources."y18n-4.0.0"
       sources."yallist-2.1.2"
       (sources."yaml-front-matter-3.4.1" // {
         dependencies = [
           sources."commander-1.0.0"
         ];
       })
-      sources."yarn-1.22.4"
+      (sources."yargs-15.4.1" // {
+        dependencies = [
+          sources."find-up-4.1.0"
+          sources."locate-path-5.0.0"
+          sources."p-locate-4.1.0"
+          sources."path-exists-4.0.0"
+        ];
+      })
+      (sources."yargs-parser-18.1.3" // {
+        dependencies = [
+          sources."camelcase-5.3.1"
+        ];
+      })
+      sources."yarn-1.22.5"
       sources."yauzl-2.10.0"
       sources."yn-3.1.1"
       sources."zen-observable-0.8.15"
@@ -51922,13 +56659,13 @@ in
       sha512 = "O+nGHNGmkxo6g0X8BgsN5pSTi+iaYJ0noo28Vwwqgugdelcy6FNZmGWXR68KDQdnMXSjwD3eQVJTz21PCN9Qng==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/generator-7.10.2"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      sources."@babel/highlight-7.10.1"
-      sources."@babel/parser-7.10.2"
-      sources."@babel/template-7.10.1"
-      sources."@babel/types-7.10.2"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/generator-7.11.6"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.5"
+      sources."@babel/template-7.10.4"
+      sources."@babel/types-7.11.5"
       sources."@webassemblyjs/ast-1.9.0"
       sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
       sources."@webassemblyjs/helper-api-error-1.9.0"
@@ -51953,7 +56690,7 @@ in
       sources."has-flag-3.0.0"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."source-map-0.5.7"
       sources."supports-color-5.5.0"
       sources."to-fast-properties-2.0.0"
@@ -52001,39 +56738,39 @@ in
   alloy = nodeEnv.buildNodePackage {
     name = "alloy";
     packageName = "alloy";
-    version = "1.14.6";
+    version = "1.15.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/alloy/-/alloy-1.14.6.tgz";
-      sha512 = "M+DxWKG35yfUrJj58i6ohTrf8EaRkk9mFj/QSXxUvmqsyYrBmpQT1RnITzk7HY0QVxW1Oiw9zjxGVrQeozJL/w==";
+      url = "https://registry.npmjs.org/alloy/-/alloy-1.15.2.tgz";
+      sha512 = "40tSBJENAo8bC9RA+IplD/OACRBiZbTBXdt/Q7qaTdDiaMz/ITXCYuALeY6cGK6bO3Frmw2B5djwGbjxlrLa6A==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      (sources."@babel/core-7.10.2" // {
+      sources."@babel/code-frame-7.10.4"
+      (sources."@babel/core-7.11.6" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.10.2" // {
+      (sources."@babel/generator-7.11.6" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      sources."@babel/helper-function-name-7.10.1"
-      sources."@babel/helper-get-function-arity-7.10.1"
-      sources."@babel/helper-member-expression-to-functions-7.10.1"
-      sources."@babel/helper-module-imports-7.10.1"
-      sources."@babel/helper-module-transforms-7.10.1"
-      sources."@babel/helper-optimise-call-expression-7.10.1"
-      sources."@babel/helper-replace-supers-7.10.1"
-      sources."@babel/helper-simple-access-7.10.1"
-      sources."@babel/helper-split-export-declaration-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      sources."@babel/helpers-7.10.1"
-      sources."@babel/highlight-7.10.1"
-      sources."@babel/parser-7.10.2"
-      sources."@babel/template-7.10.1"
-      sources."@babel/traverse-7.10.1"
-      sources."@babel/types-7.10.2"
+      sources."@babel/helper-function-name-7.10.4"
+      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-member-expression-to-functions-7.11.0"
+      sources."@babel/helper-module-imports-7.10.4"
+      sources."@babel/helper-module-transforms-7.11.0"
+      sources."@babel/helper-optimise-call-expression-7.10.4"
+      sources."@babel/helper-replace-supers-7.10.4"
+      sources."@babel/helper-simple-access-7.10.4"
+      sources."@babel/helper-split-export-declaration-7.11.0"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helpers-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.5"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.5"
+      sources."@babel/types-7.11.5"
       sources."JSV-4.0.2"
       sources."ansi-styles-3.2.1"
       sources."array-unique-0.3.2"
@@ -52048,7 +56785,7 @@ in
       sources."commander-2.20.3"
       sources."concat-map-0.0.1"
       sources."convert-source-map-1.7.0"
-      sources."debug-4.2.0"
+      sources."debug-4.3.0"
       sources."ejs-2.5.7"
       sources."ensure-posix-path-1.1.1"
       sources."escape-string-regexp-1.0.5"
@@ -52081,7 +56818,7 @@ in
       sources."json5-2.1.3"
       sources."jsonfile-4.0.0"
       sources."jsonlint-1.6.2"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."matcher-collection-1.1.2"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -52132,9 +56869,9 @@ in
       sha512 = "k7zd+KoR+n8pl71PvgElcoKHrVNiSXtw7odKbyNpmgKe7EGRF9Pnu3uLOukD37EvavKwVFxOUpqXTIZC5B5Pmw==";
     };
     dependencies = [
-      sources."@types/glob-7.1.2"
+      sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.0.13"
+      sources."@types/node-14.11.1"
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."chromium-pickle-js-0.2.0"
@@ -52162,13 +56899,13 @@ in
   bash-language-server = nodeEnv.buildNodePackage {
     name = "bash-language-server";
     packageName = "bash-language-server";
-    version = "1.16.1";
+    version = "1.17.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-1.16.1.tgz";
-      sha512 = "IS1Ix7qyRq7GTMXqhHUF44yY89i/1Ucn5KFLimEfDpwU1f3GvbV9VnDpqpG6kedJsl2LigEthSnoVlzaOwgt0g==";
+      url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-1.17.0.tgz";
+      sha512 = "t80ktUFL9DPaTO7yydoNYXIDKINweWbFvvUXesltmWj7UaIyepIVRAWUp4+62udJtor1VxVFEAXnsVDA640flw==";
     };
     dependencies = [
-      sources."abab-2.0.3"
+      sources."abab-2.0.5"
       sources."acorn-5.7.4"
       (sources."acorn-globals-4.3.4" // {
         dependencies = [
@@ -52176,14 +56913,14 @@ in
         ];
       })
       sources."acorn-walk-6.2.0"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."array-equal-1.0.0"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
@@ -52204,7 +56941,7 @@ in
       sources."delayed-stream-1.0.0"
       sources."domexception-1.0.1"
       sources."ecc-jsbn-0.1.2"
-      sources."escodegen-1.14.2"
+      sources."escodegen-1.14.3"
       sources."esprima-4.0.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
@@ -52220,7 +56957,7 @@ in
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."html-encoding-sniffer-1.0.2"
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
@@ -52236,7 +56973,7 @@ in
       sources."jsprim-1.4.1"
       sources."left-pad-1.3.0"
       sources."levn-0.3.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.sortby-4.7.0"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
@@ -52254,8 +56991,8 @@ in
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
       sources."request-2.88.2"
-      sources."request-promise-core-1.1.3"
-      sources."request-promise-native-1.0.8"
+      sources."request-promise-core-1.1.4"
+      sources."request-promise-native-1.0.9"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
@@ -52269,7 +57006,7 @@ in
       sources."turndown-4.0.2"
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urijs-1.19.2"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
@@ -52424,7 +57161,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."sprintf-js-1.0.3"
       sources."strip-bom-2.0.0"
       sources."strip-indent-1.0.1"
@@ -52450,17 +57187,17 @@ in
   browserify = nodeEnv.buildNodePackage {
     name = "browserify";
     packageName = "browserify";
-    version = "16.5.1";
+    version = "16.5.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/browserify/-/browserify-16.5.1.tgz";
-      sha512 = "EQX0h59Pp+0GtSRb5rL6OTfrttlzv+uyaUVlK6GX3w11SQ0jKPKyjC/54RhPR2ib2KmfcELM06e8FxcI5XNU2A==";
+      url = "https://registry.npmjs.org/browserify/-/browserify-16.5.2.tgz";
+      sha512 = "TkOR1cQGdmXU9zW4YukWzWVSJwrxmNdADFbqbE3HFgQWe5wqZmOawqZ7J/8MPCwk/W8yY7Y0h+7mOtcZxLP23g==";
     };
     dependencies = [
       sources."JSONStream-1.3.5"
-      sources."acorn-7.2.0"
+      sources."acorn-7.4.0"
       sources."acorn-node-1.8.2"
-      sources."acorn-walk-7.1.1"
-      (sources."asn1.js-4.10.1" // {
+      sources."acorn-walk-7.2.0"
+      (sources."asn1.js-5.4.1" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -52473,15 +57210,11 @@ in
       })
       sources."balanced-match-1.0.0"
       sources."base64-js-1.3.1"
-      sources."bn.js-5.1.2"
+      sources."bn.js-5.1.3"
       sources."brace-expansion-1.1.11"
       sources."brorand-1.1.0"
       sources."browser-pack-6.1.0"
-      (sources."browser-resolve-1.11.3" // {
-        dependencies = [
-          sources."resolve-1.1.7"
-        ];
-      })
+      sources."browser-resolve-2.0.0"
       sources."browserify-aes-1.2.0"
       sources."browserify-cipher-1.0.1"
       sources."browserify-des-1.0.2"
@@ -52490,7 +57223,7 @@ in
           sources."bn.js-4.11.9"
         ];
       })
-      (sources."browserify-sign-4.2.0" // {
+      (sources."browserify-sign-4.2.1" // {
         dependencies = [
           sources."readable-stream-3.6.0"
         ];
@@ -52509,7 +57242,7 @@ in
       sources."constants-browserify-1.0.0"
       sources."convert-source-map-1.1.3"
       sources."core-util-is-1.0.2"
-      (sources."create-ecdh-4.0.3" // {
+      (sources."create-ecdh-4.0.4" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -52529,7 +57262,7 @@ in
       })
       sources."domain-browser-1.2.0"
       sources."duplexer2-0.1.4"
-      (sources."elliptic-6.5.2" // {
+      (sources."elliptic-6.5.3" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -52574,13 +57307,13 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-classic-0.5.3"
-      sources."module-deps-6.2.2"
+      sources."module-deps-6.2.3"
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
       sources."os-browserify-0.3.0"
       sources."pako-1.0.11"
       sources."parents-1.0.1"
-      sources."parse-asn1-5.1.5"
+      sources."parse-asn1-5.1.6"
       sources."path-browserify-0.0.1"
       sources."path-is-absolute-1.0.1"
       sources."path-parse-1.0.6"
@@ -52608,11 +57341,12 @@ in
       sources."resolve-1.17.0"
       sources."ripemd160-2.0.2"
       sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
       sources."sha.js-2.4.11"
       sources."shasum-1.0.2"
       sources."shasum-object-1.0.0"
       sources."shell-quote-1.7.2"
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."source-map-0.5.7"
       sources."stream-browserify-2.0.2"
       sources."stream-combiner2-1.1.1"
@@ -52677,10 +57411,10 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-13.13.12"
+      sources."@types/node-13.13.21"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.2.16"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."ansi-regex-1.1.1"
       sources."ansi-styles-2.2.1"
       sources."append-0.1.1"
@@ -52692,7 +57426,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
@@ -52723,7 +57457,7 @@ in
       sources."caseless-0.12.0"
       (sources."castv2-0.1.10" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."debug-4.3.0"
         ];
       })
       sources."castv2-client-1.2.0"
@@ -52738,7 +57472,7 @@ in
       sources."co-3.1.0"
       sources."codepage-1.4.0"
       sources."combined-stream-1.0.8"
-      sources."commander-5.1.0"
+      sources."commander-6.1.0"
       sources."compact2string-1.4.1"
       sources."concat-map-0.0.1"
       (sources."concat-stream-2.0.0" // {
@@ -52800,7 +57534,7 @@ in
       sources."got-1.2.2"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-ansi-1.0.3"
       sources."hat-0.0.3"
       sources."hosted-git-info-2.8.8"
@@ -52814,7 +57548,7 @@ in
       sources."internal-ip-1.2.0"
       sources."ip-1.1.5"
       sources."ip-set-1.0.2"
-      sources."ipaddr.js-1.9.1"
+      sources."ipaddr.js-2.0.0"
       sources."is-arrayish-0.2.1"
       sources."is-finite-1.1.0"
       sources."is-typedarray-1.0.0"
@@ -52839,7 +57573,7 @@ in
       sources."long-4.0.0"
       sources."loud-rejection-1.6.0"
       sources."lru-2.0.1"
-      sources."magnet-uri-5.2.4"
+      sources."magnet-uri-5.3.0"
       sources."map-obj-1.0.1"
       (sources."mdns-js-1.0.3" // {
         dependencies = [
@@ -52918,7 +57652,7 @@ in
       sources."plist-3.0.1"
       sources."process-nextick-args-2.0.1"
       sources."promiscuous-0.6.0"
-      sources."protobufjs-6.9.0"
+      sources."protobufjs-6.10.1"
       sources."psl-1.8.0"
       (sources."pump-0.3.5" // {
         dependencies = [
@@ -52970,7 +57704,7 @@ in
       sources."sax-1.2.4"
       sources."semver-5.7.1"
       sources."signal-exit-3.0.3"
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
       (sources."simple-peer-6.4.4" // {
         dependencies = [
@@ -52998,12 +57732,16 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."speedometer-0.1.4"
       sources."srt2vtt-1.3.1"
       sources."sshpk-1.16.1"
       sources."stream-transcoder-0.0.5"
-      sources."string2compact-1.3.0"
+      (sources."string2compact-1.3.0" // {
+        dependencies = [
+          sources."ipaddr.js-1.9.1"
+        ];
+      })
       sources."string_decoder-0.10.31"
       sources."strip-ansi-2.0.1"
       sources."strip-bom-2.0.0"
@@ -53033,7 +57771,7 @@ in
       sources."ultron-1.1.1"
       sources."underscore-1.6.0"
       sources."uniq-1.0.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."utfx-1.0.1"
       sources."util-deprecate-1.0.2"
       sources."utp-0.0.7"
@@ -53108,10 +57846,10 @@ in
   coc-css = nodeEnv.buildNodePackage {
     name = "coc-css";
     packageName = "coc-css";
-    version = "1.2.3";
+    version = "1.2.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-css/-/coc-css-1.2.3.tgz";
-      sha512 = "6/JhWv31agvUvcUVKewpJ0z+A8ZMrRXPNNy+YohNausiw7nqKnBSnLIO0II0hXgjdAryoSGnBC/NjH7Q5P0IDw==";
+      url = "https://registry.npmjs.org/coc-css/-/coc-css-1.2.5.tgz";
+      sha512 = "Khii6e43VV1JqSNd/UGMDmenBkFYcFKEr0WM6a8isOOWxSX8Vly/YAjVq7rbErD3mYOeJ+rxcH5/faUqIDj/9A==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -53125,10 +57863,10 @@ in
   coc-emmet = nodeEnv.buildNodePackage {
     name = "coc-emmet";
     packageName = "coc-emmet";
-    version = "1.1.4";
+    version = "1.1.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-emmet/-/coc-emmet-1.1.4.tgz";
-      sha512 = "hxpldh4WYgq7JOQeAynEy+uM2M12RnxTlmY3cCDpZrkCJGZwz4BRYseXhuwieaFiut0OzqBEtWIcZLLrzROKMA==";
+      url = "https://registry.npmjs.org/coc-emmet/-/coc-emmet-1.1.6.tgz";
+      sha512 = "lvHA9iSgU/46Iw7E14tSP+Hh1e6STYUegqTBGDPQ/9L9JOicE2USqwuo2y5cbslc2RQqv3EdUIr9nQf0T725mQ==";
     };
     dependencies = [
       sources."@emmetio/extract-abbreviation-0.1.6"
@@ -53148,10 +57886,10 @@ in
   coc-eslint = nodeEnv.buildNodePackage {
     name = "coc-eslint";
     packageName = "coc-eslint";
-    version = "1.2.7";
+    version = "1.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-eslint/-/coc-eslint-1.2.7.tgz";
-      sha512 = "an8yOGLe0t7RT3LFSSDYP7oEqeYmQHTDU9yEeaVXy42W+4MYVsf771F2t1BMvjg3AjkpF9WA7ztM9lKck6DBMA==";
+      url = "https://registry.npmjs.org/coc-eslint/-/coc-eslint-1.3.1.tgz";
+      sha512 = "yiWUByuOtIHs1GnXspO59F5K0QtGYxMmpt8ZC2VvvB3DZZhEbhmBNrcoU66JaJP9y8tCZWTRh1eyobCRBL0pTA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -53165,10 +57903,10 @@ in
   coc-git = nodeEnv.buildNodePackage {
     name = "coc-git";
     packageName = "coc-git";
-    version = "1.7.14";
+    version = "2.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-git/-/coc-git-1.7.14.tgz";
-      sha512 = "LOq7zTp2mb2omi1Pc0r1PEK2N+bwuPYpSfszm78Rsvvht9cU+o/YuC0HagG4VZ7iwuiy9VRvpNz218sMZJqm7Q==";
+      url = "https://registry.npmjs.org/coc-git/-/coc-git-2.0.1.tgz";
+      sha512 = "kPNmgaCx6hKshq/Vv5uugrPkQcDa7pVp+hosGADBP8qzHxudbumDA5va2vSzqjhUxAYEGTL92F0mBapg29pJhg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -53183,14 +57921,15 @@ in
   coc-go = nodeEnv.buildNodePackage {
     name = "coc-go";
     packageName = "coc-go";
-    version = "0.7.0";
+    version = "0.11.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-go/-/coc-go-0.7.0.tgz";
-      sha512 = "ntDgRtLshBtxUuUXkkxH2S+xUWZW86ptrLO0pe74MzeS6m/Z744QvwSor+abHUTHO370nrUEUtGaQDUEh9p2BA==";
+      url = "https://registry.npmjs.org/coc-go/-/coc-go-0.11.0.tgz";
+      sha512 = "W27x1U6WlKiFKsiTRxc5neFFJKx1AXFYZ8OxELX4tubCptNa64RTBqSTk9Iv0zHFwEs1xLJ56CE7NO3wTmKVKw==";
     };
     dependencies = [
       sources."isexe-2.0.0"
-      sources."tslib-1.13.0"
+      sources."node-fetch-2.6.1"
+      sources."tslib-2.0.1"
       sources."which-2.0.2"
     ];
     buildInputs = globalBuildInputs;
@@ -53205,10 +57944,10 @@ in
   coc-highlight = nodeEnv.buildNodePackage {
     name = "coc-highlight";
     packageName = "coc-highlight";
-    version = "1.2.5";
+    version = "1.2.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-highlight/-/coc-highlight-1.2.5.tgz";
-      sha512 = "fGWz30toD5ORdRpH7WOSbMvNOqzdorCSClTfwIdcb3vJoKPA31wOxFzEMfzR7jlXvusjBaUr1GvTQyu3eOKomw==";
+      url = "https://registry.npmjs.org/coc-highlight/-/coc-highlight-1.2.6.tgz";
+      sha512 = "aKzZ86GVnZgZV2EAf62SDpTXzGYHD7PTSB+HgytTvdubgFgssQitrIUvWCPnlvagPixtM1XqTlh8AKusnrtSOg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -53228,7 +57967,7 @@ in
       sha512 = "gr0GBKeew88n8hcn4fkzIcBruhih7YAqBd7ldsYjoG2qZhjPEj/arYESFOYgooX1jYuxCpQYH526EXXzs4BGRQ==";
     };
     dependencies = [
-      sources."typescript-3.9.5"
+      sources."typescript-3.9.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -53243,10 +57982,10 @@ in
   coc-imselect = nodeEnv.buildNodePackage {
     name = "coc-imselect";
     packageName = "coc-imselect";
-    version = "0.0.12";
+    version = "0.0.13";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-imselect/-/coc-imselect-0.0.12.tgz";
-      sha512 = "X8TBe8UTwNd01HrWBXy93jQ1PShGtTa4bm2aH2bQwx9EH9FW7ufRlw7euPKkR2kzilshwb3UbJnLET2vFdZjJw==";
+      url = "https://registry.npmjs.org/coc-imselect/-/coc-imselect-0.0.13.tgz";
+      sha512 = "5hL7FmrLILl6PwZDUndOfHqfMjAl31pvB6YifmnZJO/ht4J3lFLCWxkiyXt5PRQbrHKLGnPT7sySTKxF8X303g==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -53260,10 +57999,10 @@ in
   coc-java = nodeEnv.buildNodePackage {
     name = "coc-java";
     packageName = "coc-java";
-    version = "1.4.11";
+    version = "1.4.12";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-java/-/coc-java-1.4.11.tgz";
-      sha512 = "Dh6q45+NKNqFxWXWOMD5eq74Egr0iuWq9nO6T/+L3yd4FL+b+whFFSdWiehifJQwx83lAGQ3TjdEjLnUT29+/Q==";
+      url = "https://registry.npmjs.org/coc-java/-/coc-java-1.4.12.tgz";
+      sha512 = "kKvT5ESFDOVPZ2iO4MQ2FkWj88kZqcczpQDqYD1tBgrLAGD0YnEzSzK6paI+kJYqk945X/k66Kcq5YbercvmqA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -53278,10 +58017,10 @@ in
   coc-jest = nodeEnv.buildNodePackage {
     name = "coc-jest";
     packageName = "coc-jest";
-    version = "1.0.3";
+    version = "1.0.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-jest/-/coc-jest-1.0.3.tgz";
-      sha512 = "ZxgOP00URYcmIUnl1yjxonxbwb4QHEk2JJxxcYyCHo2wJPCVQWB+WYVYzHb0pzrZdDcsj5hk6wXWnLXM5EkRjA==";
+      url = "https://registry.npmjs.org/coc-jest/-/coc-jest-1.0.4.tgz";
+      sha512 = "cqNvWTS27HrT3+zthsb7zPokPwvrCJkGnmQkktfDDnUET5d6lbMhJaqZ8DlYxKKtoaPZ5QzwnaoowChhh8M9WA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -53296,10 +58035,10 @@ in
   coc-json = nodeEnv.buildNodePackage {
     name = "coc-json";
     packageName = "coc-json";
-    version = "1.2.6";
+    version = "1.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-json/-/coc-json-1.2.6.tgz";
-      sha512 = "PAytSZ30TWoEHOfi2V3Y944u5q1WHNVhjsKyNnggm8CcgYAulWJiCzxSsmKBLw+DbRLqygGUdO3cOIbQeJCm5A==";
+      url = "https://registry.npmjs.org/coc-json/-/coc-json-1.3.1.tgz";
+      sha512 = "VKCzzCMZYxqjU89EMh8g58ytbhXXQcMSyWx385NXiijjK3Amtuvz775lPfiUeIAeVNr2VM+yeKimUw4pbE/lug==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -53313,10 +58052,10 @@ in
   coc-lists = nodeEnv.buildNodePackage {
     name = "coc-lists";
     packageName = "coc-lists";
-    version = "1.3.8";
+    version = "1.3.10";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-lists/-/coc-lists-1.3.8.tgz";
-      sha512 = "fQUlrvZ06EacKHDQDNEgO6wW/5u6oY/0dm3JsdqRVfBcK3+hyGf9rfsDom1qxpjBt4CgPiLTRwbDqmvpwaI0Zg==";
+      url = "https://registry.npmjs.org/coc-lists/-/coc-lists-1.3.10.tgz";
+      sha512 = "XbwltkjxhzzfN5In3w43TBKFbR1b8+3OgIldwYQOUYHlUxF1KO2mJj8ngkzKsaglIPeMYuWtWizOS02L74fKkA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -53331,109 +58070,171 @@ in
   coc-metals = nodeEnv.buildNodePackage {
     name = "coc-metals";
     packageName = "coc-metals";
-    version = "0.8.3";
+    version = "0.9.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-metals/-/coc-metals-0.8.3.tgz";
-      sha512 = "DfDQbgbnau8CvTa1uEkYuZnMSaOqnQDvNxbwRi24q3t8z/DwMwEubon/lITGM02CkQH5PnfhE5fJYxt6/Q1wvA==";
+      url = "https://registry.npmjs.org/coc-metals/-/coc-metals-0.9.4.tgz";
+      sha512 = "EaDdMssH8XCpXq4rTQOkl8BhiB5eR+pAlV4mARs+jsB6wvJVd6U3Ba6nKuTB7n7HbHbn3tWZWLhclpqByi5G8g==";
     };
     dependencies = [
-      sources."@babel/runtime-7.10.2"
-      sources."@chemzqm/neovim-5.1.9"
+      sources."@chemzqm/neovim-5.2.6"
+      sources."@tootallnate/once-1.1.2"
+      sources."agent-base-6.0.1"
+      sources."arch-2.1.2"
       sources."async-2.6.3"
       sources."await-semaphore-0.1.3"
       sources."balanced-match-1.0.0"
+      sources."big-integer-1.6.48"
+      sources."binary-0.3.0"
+      sources."bluebird-3.4.7"
       sources."brace-expansion-1.1.11"
       sources."bser-2.1.1"
-      sources."chownr-1.1.4"
-      sources."coc.nvim-0.0.77"
+      sources."buffer-indexof-polyfill-1.0.2"
+      sources."buffers-0.1.1"
+      sources."bytes-3.1.0"
+      sources."chainsaw-0.1.0"
+      sources."chownr-2.0.0"
+      sources."clipboardy-2.3.0"
+      sources."coc.nvim-0.0.79"
       sources."concat-map-0.0.1"
-      sources."date-format-2.1.0"
+      sources."content-disposition-0.5.3"
+      sources."core-util-is-1.0.2"
+      (sources."cross-spawn-6.0.5" // {
+        dependencies = [
+          sources."semver-5.7.1"
+          sources."which-1.3.1"
+        ];
+      })
+      sources."date-format-3.0.0"
       sources."debounce-1.2.0"
-      sources."debug-3.2.6"
+      sources."debug-4.3.0"
       sources."deep-extend-0.6.0"
+      sources."define-properties-1.1.3"
+      sources."duplexer2-0.1.4"
+      sources."end-of-stream-1.4.4"
+      sources."es-abstract-1.17.6"
+      sources."es-to-primitive-1.2.1"
       sources."event-lite-0.1.2"
+      sources."execa-1.0.0"
       sources."fast-diff-1.2.0"
       sources."fb-watchman-2.0.1"
       sources."flatted-2.0.2"
-      sources."follow-redirects-1.11.0"
-      sources."fp-ts-2.6.5"
+      sources."follow-redirects-1.13.0"
+      sources."fp-ts-2.8.2"
       sources."fs-extra-8.1.0"
-      sources."fs-minipass-1.2.7"
+      sources."fs-minipass-2.1.0"
       sources."fs.realpath-1.0.0"
+      (sources."fstream-1.0.12" // {
+        dependencies = [
+          sources."mkdirp-0.5.5"
+          sources."rimraf-2.7.1"
+        ];
+      })
+      sources."function-bind-1.1.1"
+      sources."get-stream-4.1.0"
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
+      sources."has-1.0.3"
+      sources."has-symbols-1.0.1"
+      sources."http-proxy-agent-4.0.1"
+      sources."https-proxy-agent-5.0.0"
       sources."ieee754-1.1.13"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
       sources."int64-buffer-0.1.10"
+      sources."is-callable-1.2.1"
+      sources."is-date-object-1.0.2"
+      sources."is-docker-2.1.1"
+      sources."is-negative-zero-2.0.0"
+      sources."is-regex-1.1.1"
+      sources."is-stream-1.1.0"
+      sources."is-symbol-1.0.3"
+      sources."is-wsl-2.2.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isuri-2.0.3"
-      sources."jsonc-parser-2.2.1"
+      sources."jsonc-parser-2.3.1"
       sources."jsonfile-4.0.0"
+      sources."listenercount-1.0.1"
       (sources."locate-java-home-1.1.2" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
-      sources."lodash-4.17.15"
-      (sources."log4js-5.3.0" // {
-        dependencies = [
-          sources."debug-4.2.0"
-        ];
-      })
-      (sources."metals-languageclient-0.2.2" // {
-        dependencies = [
-          sources."mkdirp-1.0.4"
-          sources."semver-7.3.2"
-        ];
-      })
+      sources."lodash-4.17.20"
+      sources."log4js-6.3.0"
+      sources."metals-languageclient-0.3.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."minipass-2.9.0"
-      sources."minizlib-1.3.3"
-      sources."mkdirp-0.5.5"
+      sources."minipass-3.1.3"
+      sources."minizlib-2.1.2"
+      sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
       sources."msgpack-lite-0.1.26"
       (sources."mv-2.1.1" // {
         dependencies = [
           sources."glob-6.0.4"
+          sources."mkdirp-0.5.5"
           sources."rimraf-2.4.5"
         ];
       })
       sources."ncp-2.0.0"
-      sources."node-fetch-2.6.0"
+      sources."nice-try-1.0.5"
+      sources."node-fetch-2.6.1"
       sources."node-int64-0.4.0"
+      sources."npm-run-path-2.0.2"
+      sources."object-inspect-1.8.0"
+      sources."object-keys-1.1.1"
+      (sources."object.assign-4.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."once-1.4.0"
+      sources."p-finally-1.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."promisify-child-process-3.1.4"
+      sources."path-key-2.0.1"
+      sources."process-nextick-args-2.0.1"
+      sources."promise.prototype.finally-3.1.2"
+      sources."promisify-child-process-4.1.1"
+      sources."pump-3.0.0"
       sources."rc-1.2.8"
-      sources."regenerator-runtime-0.13.5"
+      sources."readable-stream-2.3.7"
       sources."rfc-3986-1.0.1"
       sources."rfdc-1.1.4"
       sources."rimraf-3.0.2"
-      sources."safe-buffer-5.2.1"
-      sources."semver-6.3.0"
+      sources."safe-buffer-5.1.2"
+      sources."semver-7.3.2"
+      sources."setimmediate-1.0.5"
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
       sources."shell-quote-1.7.2"
+      sources."signal-exit-3.0.3"
       (sources."streamroller-2.2.4" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."date-format-2.1.0"
         ];
       })
+      sources."string.prototype.trimend-1.0.1"
+      sources."string.prototype.trimstart-1.0.1"
+      sources."string_decoder-1.1.1"
+      sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
-      sources."tar-4.4.13"
-      sources."tslib-1.13.0"
-      sources."tunnel-0.0.6"
+      sources."tar-6.0.5"
+      sources."traverse-0.3.9"
+      sources."tslib-2.0.1"
       sources."universalify-0.1.2"
-      sources."uuid-3.4.0"
+      sources."unzipper-0.10.11"
+      sources."util-deprecate-1.0.2"
+      sources."uuid-7.0.3"
       sources."vscode-jsonrpc-5.0.1"
       sources."vscode-languageserver-protocol-3.15.3"
+      sources."vscode-languageserver-textdocument-1.0.1"
       sources."vscode-languageserver-types-3.15.1"
       sources."vscode-uri-2.1.2"
-      sources."which-1.3.1"
+      sources."which-2.0.2"
       sources."wrappy-1.0.2"
-      sources."yallist-3.1.1"
+      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -53465,27 +58266,29 @@ in
   coc-prettier = nodeEnv.buildNodePackage {
     name = "coc-prettier";
     packageName = "coc-prettier";
-    version = "1.1.14";
+    version = "1.1.17";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-prettier/-/coc-prettier-1.1.14.tgz";
-      sha512 = "NMc/nWUPigKq4rLAvgEOKxTDFkLbp6waK0K3M2V+oZfsJxUrJ4LPEA6yP/DY1RO7trnVCHsTtjYWT+1PauGqkQ==";
+      url = "https://registry.npmjs.org/coc-prettier/-/coc-prettier-1.1.17.tgz";
+      sha512 = "KwHA9HvRs4W6OKd+aVa7/R2YzyVSogWpPUVX8wJ8vBEp5U2VHqfjwhyvN9BFEo1FEkyigXG6DI44jtq47eE5YQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      sources."@babel/highlight-7.10.1"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
       sources."@types/color-name-1.1.1"
       sources."@types/eslint-visitor-keys-1.0.0"
-      sources."@types/json-schema-7.0.5"
-      sources."@typescript-eslint/experimental-utils-3.2.0"
-      sources."@typescript-eslint/parser-3.2.0"
-      sources."@typescript-eslint/typescript-estree-3.2.0"
-      sources."acorn-7.2.0"
-      sources."acorn-jsx-5.2.0"
-      sources."ajv-6.12.2"
-      sources."ajv-keywords-3.4.1"
+      sources."@types/json-schema-7.0.6"
+      sources."@typescript-eslint/experimental-utils-3.10.1"
+      sources."@typescript-eslint/parser-3.10.1"
+      sources."@typescript-eslint/types-3.10.1"
+      sources."@typescript-eslint/typescript-estree-3.10.1"
+      sources."@typescript-eslint/visitor-keys-3.10.1"
+      sources."acorn-7.4.0"
+      sources."acorn-jsx-5.3.1"
+      sources."ajv-6.12.5"
+      sources."ajv-keywords-3.5.2"
       (sources."ansi-align-2.0.0" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
@@ -53544,7 +58347,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-2.1.1"
       sources."camelcase-keys-2.1.0"
-      sources."caniuse-lite-1.0.30001081"
+      sources."caniuse-lite-1.0.30001133"
       sources."capture-stack-trace-1.0.1"
       sources."ccount-1.0.5"
       sources."chalk-2.4.2"
@@ -53575,7 +58378,7 @@ in
       })
       sources."cli-boxes-1.0.0"
       sources."cli-cursor-3.1.0"
-      sources."cli-width-2.2.1"
+      sources."cli-width-3.0.0"
       (sources."cliui-4.1.0" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
@@ -53594,13 +58397,14 @@ in
       sources."common-tags-1.8.0"
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
-      (sources."configstore-3.1.2" // {
+      (sources."configstore-3.1.5" // {
         dependencies = [
-          sources."dot-prop-4.2.0"
+          sources."dot-prop-4.2.1"
           sources."is-obj-1.0.1"
         ];
       })
       sources."copy-descriptor-0.1.1"
+      sources."core-js-3.6.5"
       sources."cosmiconfig-3.1.0"
       sources."create-error-class-3.0.2"
       (sources."cross-spawn-6.0.5" // {
@@ -53610,7 +58414,7 @@ in
       })
       sources."crypto-random-string-1.0.0"
       sources."currently-unhandled-0.4.1"
-      sources."debug-4.2.0"
+      sources."debug-4.3.0"
       sources."decamelize-1.2.0"
       sources."decamelize-keys-1.1.0"
       sources."decode-uri-component-0.2.0"
@@ -53631,16 +58435,16 @@ in
       sources."doctrine-3.0.0"
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.0.1"
+          sources."domelementtype-2.0.2"
           sources."entities-2.0.3"
         ];
       })
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."dot-prop-5.2.0"
+      sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
-      sources."electron-to-chromium-1.3.466"
+      sources."electron-to-chromium-1.3.570"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."entities-1.1.2"
@@ -53652,17 +58456,21 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."eslint-scope-5.1.0"
-      sources."eslint-utils-2.0.0"
-      sources."eslint-visitor-keys-1.2.0"
+      sources."eslint-scope-5.1.1"
+      sources."eslint-utils-2.1.0"
+      sources."eslint-visitor-keys-1.3.0"
       sources."espree-6.2.1"
       sources."esprima-4.0.1"
       (sources."esquery-1.3.1" // {
         dependencies = [
-          sources."estraverse-5.1.0"
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       (sources."execa-0.7.0" // {
@@ -53818,15 +58626,15 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      (sources."inquirer-7.1.0" // {
+      (sources."inquirer-7.3.3" // {
         dependencies = [
           sources."ansi-styles-4.2.1"
-          sources."chalk-3.0.0"
+          sources."chalk-4.1.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
           sources."strip-ansi-6.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."invert-kv-2.0.0"
@@ -53886,7 +58694,7 @@ in
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-2.1.0"
-      sources."js-base64-2.5.2"
+      sources."js-base64-2.6.4"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.0"
       sources."json-parse-better-errors-1.0.2"
@@ -53904,10 +58712,10 @@ in
         ];
       })
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.merge-4.6.2"
       sources."log-symbols-2.2.0"
-      sources."loglevel-1.6.8"
+      sources."loglevel-1.7.0"
       (sources."loglevel-colored-level-prefix-1.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -53997,7 +58805,7 @@ in
         ];
       })
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
+      sources."onetime-5.1.2"
       sources."optionator-0.8.3"
       (sources."os-locale-3.1.0" // {
         dependencies = [
@@ -54072,7 +58880,7 @@ in
       sources."prelude-ls-1.1.2"
       sources."prepend-http-1.0.4"
       sources."preserve-0.2.0"
-      sources."prettier-2.0.5"
+      sources."prettier-2.1.2"
       (sources."prettier-eslint-10.1.1" // {
         dependencies = [
           sources."prettier-1.19.1"
@@ -54156,7 +58964,7 @@ in
       sources."ret-0.1.15"
       sources."rimraf-2.6.3"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.3"
       sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
@@ -54215,7 +59023,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."specificity-0.3.2"
       sources."split-string-3.1.0"
       sources."sprintf-js-1.0.3"
@@ -54256,7 +59064,7 @@ in
           sources."get-stdin-4.0.1"
         ];
       })
-      sources."strip-json-comments-3.1.0"
+      sources."strip-json-comments-3.1.1"
       sources."style-search-0.1.0"
       (sources."stylelint-8.4.0" // {
         dependencies = [
@@ -54327,7 +59135,7 @@ in
       sources."tsutils-3.17.1"
       sources."type-check-0.3.2"
       sources."type-fest-0.8.1"
-      sources."typescript-3.9.5"
+      sources."typescript-3.9.7"
       sources."unherit-1.1.3"
       sources."unified-6.2.0"
       sources."union-value-1.0.1"
@@ -54352,7 +59160,7 @@ in
       })
       sources."unzip-response-2.0.1"
       sources."update-notifier-2.5.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."url-parse-lax-1.0.0"
       sources."use-3.1.1"
@@ -54435,11 +59243,17 @@ in
   coc-r-lsp = nodeEnv.buildNodePackage {
     name = "coc-r-lsp";
     packageName = "coc-r-lsp";
-    version = "1.1.1";
+    version = "1.2.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-r-lsp/-/coc-r-lsp-1.1.1.tgz";
-      sha512 = "y/6SBQhGAXEHqfb/EPuRZBPpXNMwXXF7lCU6f/J0WjxwGOzip8StuiRc3Vhr3JXvP/QSO37tunkaAJX+z8rRTg==";
+      url = "https://registry.npmjs.org/coc-r-lsp/-/coc-r-lsp-1.2.1.tgz";
+      sha512 = "SOsCwIuQeE4eiX/Scgs2nL1WnR0JwFZ2/Edh3dx5ijmZSlEPxdc0PnMUN0hT9y96jK5/ZHAByC3qEperpWqPUA==";
     };
+    dependencies = [
+      sources."vscode-jsonrpc-5.0.1"
+      sources."vscode-languageserver-protocol-3.15.3"
+      sources."vscode-languageserver-textdocument-1.0.1"
+      sources."vscode-languageserver-types-3.15.1"
+    ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "R language server extension for coc.nvim";
@@ -54470,10 +59284,10 @@ in
   coc-rust-analyzer = nodeEnv.buildNodePackage {
     name = "coc-rust-analyzer";
     packageName = "coc-rust-analyzer";
-    version = "0.7.3";
+    version = "0.8.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.7.3.tgz";
-      sha512 = "VgL/6zKfm+ASlpNnCl7xY8CYMqycbK3ZEmn0ApVa+CITTkSLOBVFW5B9n53djq5HpPr9QxvGORbxYMQ0INo3kg==";
+      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.8.0.tgz";
+      sha512 = "kX/mSezjGZKy1hM3l+qrqLt4sQfS1GvtzwQQ1iqS4s+1YAwViRFLx/E1RFJRElQZ4WPvvRiu+d0OeiGbKQaMAg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -54506,10 +59320,10 @@ in
   coc-snippets = nodeEnv.buildNodePackage {
     name = "coc-snippets";
     packageName = "coc-snippets";
-    version = "2.1.28";
+    version = "2.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-snippets/-/coc-snippets-2.1.28.tgz";
-      sha512 = "okVbjhKbFH6iTPeTpjxhtYtBBTFy5neOQYtn1H9CrbPpjnjodWzBDq3izoXCsC4BMMyBRzOwmwmJ0eA65S6JnQ==";
+      url = "https://registry.npmjs.org/coc-snippets/-/coc-snippets-2.2.0.tgz";
+      sha512 = "uWY5BquBQaQ9UD8PyjhbkbyQFsoc545A/eyquPJ9G3TF8VaXCBSGiVkzGIBT4It6ldN9vc/VQEVsRpEvtO6TTw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -54523,10 +59337,10 @@ in
   coc-solargraph = nodeEnv.buildNodePackage {
     name = "coc-solargraph";
     packageName = "coc-solargraph";
-    version = "1.1.6";
+    version = "1.1.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-solargraph/-/coc-solargraph-1.1.6.tgz";
-      sha512 = "Vkl4IYCgexGQ038betmYJ4Ht2OqbVJDFrQn8h+OCvVUHAEGsQTYj8sIIq3qohW/FuJJXvUdRoGEYQUZCtw96OQ==";
+      url = "https://registry.npmjs.org/coc-solargraph/-/coc-solargraph-1.1.7.tgz";
+      sha512 = "+oaGgco/4VuQIAp7MqvwrMPnKXViap/W894pFodstK1FkCUpP3qc04Kt7B/8IqRTFrd5b6tAn7Nrsf5g4RffTw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -54546,34 +59360,34 @@ in
       sha512 = "+dVV5p9OBXyBGKFPQAS5a1SFvikSbYtYXyzPCkvYqYAqDiJlmFVEyi1aP+FI17Y/094u7mFeDQJlSd7IXVgO7w==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/core-7.10.2"
-      sources."@babel/generator-7.10.2"
-      sources."@babel/helper-function-name-7.10.1"
-      sources."@babel/helper-get-function-arity-7.10.1"
-      sources."@babel/helper-member-expression-to-functions-7.10.1"
-      sources."@babel/helper-module-imports-7.10.1"
-      sources."@babel/helper-module-transforms-7.10.1"
-      sources."@babel/helper-optimise-call-expression-7.10.1"
-      sources."@babel/helper-replace-supers-7.10.1"
-      sources."@babel/helper-simple-access-7.10.1"
-      sources."@babel/helper-split-export-declaration-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      sources."@babel/helpers-7.10.1"
-      sources."@babel/highlight-7.10.1"
-      sources."@babel/parser-7.10.2"
-      sources."@babel/template-7.10.1"
-      sources."@babel/traverse-7.10.1"
-      sources."@babel/types-7.10.2"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/core-7.11.6"
+      sources."@babel/generator-7.11.6"
+      sources."@babel/helper-function-name-7.10.4"
+      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-member-expression-to-functions-7.11.0"
+      sources."@babel/helper-module-imports-7.10.4"
+      sources."@babel/helper-module-transforms-7.11.0"
+      sources."@babel/helper-optimise-call-expression-7.10.4"
+      sources."@babel/helper-replace-supers-7.10.4"
+      sources."@babel/helper-simple-access-7.10.4"
+      sources."@babel/helper-split-export-declaration-7.11.0"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helpers-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.5"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.5"
+      sources."@babel/types-7.11.5"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
-      sources."@types/glob-7.1.2"
+      sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.0.13"
+      sources."@types/node-14.11.1"
       sources."@types/unist-2.0.3"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -54594,7 +59408,7 @@ in
       sources."assign-symbols-1.0.0"
       sources."astral-regex-1.0.0"
       sources."atob-2.1.2"
-      (sources."autoprefixer-9.8.0" // {
+      (sources."autoprefixer-9.8.6" // {
         dependencies = [
           sources."postcss-value-parser-4.1.0"
         ];
@@ -54612,7 +59426,7 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."browserslist-4.12.0"
+      sources."browserslist-4.14.3"
       sources."cache-base-1.0.1"
       sources."call-me-maybe-1.0.1"
       sources."caller-callsite-2.0.0"
@@ -54620,7 +59434,7 @@ in
       sources."callsites-2.0.0"
       sources."camelcase-4.1.0"
       sources."camelcase-keys-4.2.0"
-      sources."caniuse-lite-1.0.30001081"
+      sources."caniuse-lite-1.0.30001133"
       sources."ccount-1.0.5"
       sources."chalk-2.4.2"
       sources."character-entities-1.2.4"
@@ -54649,6 +59463,7 @@ in
       sources."collection-visit-1.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
+      sources."colorette-1.2.1"
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
       (sources."convert-source-map-1.7.0" // {
@@ -54659,7 +59474,7 @@ in
       sources."copy-descriptor-0.1.1"
       sources."cosmiconfig-5.2.1"
       sources."currently-unhandled-0.4.1"
-      sources."debug-4.2.0"
+      sources."debug-4.3.0"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -54671,18 +59486,19 @@ in
       sources."dir-glob-2.2.2"
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.0.1"
+          sources."domelementtype-2.0.2"
           sources."entities-2.0.3"
         ];
       })
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."dot-prop-5.2.0"
-      sources."electron-to-chromium-1.3.466"
+      sources."dot-prop-5.3.0"
+      sources."electron-to-chromium-1.3.570"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
+      sources."escalade-3.1.0"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
       sources."execall-2.0.0"
@@ -54828,7 +59644,7 @@ in
         ];
       })
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."log-symbols-3.0.0"
       sources."longest-streak-2.0.4"
       sources."loud-rejection-1.6.0"
@@ -54860,7 +59676,7 @@ in
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
       sources."nanomatch-1.2.13"
-      sources."node-releases-1.1.58"
+      sources."node-releases-1.1.61"
       sources."normalize-package-data-2.5.0"
       sources."normalize-range-0.1.2"
       sources."normalize-selector-0.2.0"
@@ -54898,9 +59714,8 @@ in
       })
       sources."picomatch-2.2.2"
       sources."pify-4.0.1"
-      sources."pkg-up-2.0.0"
       sources."posix-character-classes-0.1.1"
-      (sources."postcss-7.0.32" // {
+      (sources."postcss-7.0.34" // {
         dependencies = [
           sources."source-map-0.6.1"
           sources."supports-color-6.1.0"
@@ -54992,7 +59807,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."specificity-0.4.1"
       sources."split-string-3.1.0"
       sources."sprintf-js-1.0.3"
@@ -55074,7 +59889,7 @@ in
           sources."has-values-0.1.4"
         ];
       })
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
@@ -55139,9 +59954,9 @@ in
       sha512 = "5Zxv2Adtb6Mlpv2YdKErhf8ntxiBl1UyrbEqo7gR9nFIAfi3o0Ue6TJTpZfOhQViFQxLjJAS65IQVRaNlbhkxw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      sources."@babel/highlight-7.10.1"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
       sources."balanced-match-1.0.0"
@@ -55175,7 +59990,7 @@ in
       sources."tslib-1.13.0"
       sources."tslint-5.20.1"
       sources."tsutils-2.29.0"
-      sources."typescript-3.9.5"
+      sources."typescript-3.9.7"
       sources."wrappy-1.0.2"
     ];
     buildInputs = globalBuildInputs;
@@ -55224,13 +60039,13 @@ in
   coc-tsserver = nodeEnv.buildNodePackage {
     name = "coc-tsserver";
     packageName = "coc-tsserver";
-    version = "1.5.1";
+    version = "1.5.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-tsserver/-/coc-tsserver-1.5.1.tgz";
-      sha512 = "33mkWOHgvB7hS/mfhCt4PfHAepnLQaTMvvsCWN3daks7yYnOdeMFplD5UORRRvvcJoOEdQBtXXu960I/Xe4MCg==";
+      url = "https://registry.npmjs.org/coc-tsserver/-/coc-tsserver-1.5.7.tgz";
+      sha512 = "VP/xLBnChBWZPrURULJsy5fi9gt+Fsvv5qWXZrLorBsh/14ppnPqfdyyKRuK+mDrxi9gcnSbAwTHOJ4yl5e9ag==";
     };
     dependencies = [
-      sources."typescript-3.8.3"
+      sources."typescript-3.9.7"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -55245,16 +60060,23 @@ in
   coc-vetur = nodeEnv.buildNodePackage {
     name = "coc-vetur";
     packageName = "coc-vetur";
-    version = "1.1.10";
+    version = "1.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-vetur/-/coc-vetur-1.1.10.tgz";
-      sha512 = "dMTBF4NbJ2Rqnh2Lj2Jafi9Fl6gJjHH20fNyztA6DvJ9qEOZgpiXIE2yGznszAHBvJyvoVDE4+qE6Qz5sm3FpA==";
+      url = "https://registry.npmjs.org/coc-vetur/-/coc-vetur-1.2.0.tgz";
+      sha512 = "JtuTM6DHU21h6j1fEeAaOtfFveLOzeqVXh9mjd53fVHws9T89wW8yV0ZsU5gz4u4g0tw7nN779sJqOEAXnmR8w==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      sources."@babel/highlight-7.10.1"
-      sources."@emmetio/extract-abbreviation-0.1.6"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@emmetio/extract-abbreviation-0.2.0"
+      (sources."@eslint/eslintrc-0.1.3" // {
+        dependencies = [
+          sources."debug-4.3.0"
+          sources."ignore-4.0.6"
+          sources."strip-json-comments-3.1.1"
+        ];
+      })
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       (sources."@nodelib/fs.scandir-2.1.3" // {
         dependencies = [
@@ -55263,12 +60085,21 @@ in
       })
       sources."@nodelib/fs.stat-1.1.3"
       sources."@nodelib/fs.walk-1.2.4"
+      sources."@prettier/plugin-pug-1.6.1"
       sources."@sindresorhus/is-0.14.0"
-      sources."@sorg/log-2.1.0"
+      sources."@sorg/log-2.2.0"
       sources."@starptech/expression-parser-0.10.0"
       sources."@starptech/hast-util-from-webparser-0.10.0"
-      sources."@starptech/prettyhtml-0.10.0"
-      sources."@starptech/prettyhtml-formatter-0.10.0"
+      (sources."@starptech/prettyhtml-0.10.0" // {
+        dependencies = [
+          sources."prettier-1.19.1"
+        ];
+      })
+      (sources."@starptech/prettyhtml-formatter-0.10.0" // {
+        dependencies = [
+          sources."prettier-1.19.1"
+        ];
+      })
       sources."@starptech/prettyhtml-hast-to-html-0.10.0"
       sources."@starptech/prettyhtml-hastscript-0.10.0"
       sources."@starptech/prettyhtml-sort-attributes-0.10.0"
@@ -55278,35 +60109,34 @@ in
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/color-name-1.1.1"
       sources."@types/eslint-visitor-keys-1.0.0"
-      sources."@types/glob-7.1.2"
-      sources."@types/json-schema-7.0.5"
+      sources."@types/glob-7.1.3"
+      sources."@types/json-schema-7.0.6"
       sources."@types/minimatch-3.0.3"
       sources."@types/minimist-1.2.0"
-      sources."@types/node-14.0.13"
+      sources."@types/node-14.11.1"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/unist-2.0.3"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
-      (sources."@typescript-eslint/experimental-utils-1.13.0" // {
+      sources."@typescript-eslint/experimental-utils-3.10.1"
+      sources."@typescript-eslint/parser-3.10.1"
+      sources."@typescript-eslint/types-3.10.1"
+      (sources."@typescript-eslint/typescript-estree-3.10.1" // {
         dependencies = [
-          sources."eslint-scope-4.0.3"
-        ];
-      })
-      sources."@typescript-eslint/parser-1.13.0"
-      (sources."@typescript-eslint/typescript-estree-1.13.0" // {
-        dependencies = [
-          sources."semver-5.5.0"
+          sources."debug-4.3.0"
+          sources."semver-7.3.2"
         ];
       })
+      sources."@typescript-eslint/visitor-keys-3.10.1"
       sources."abbrev-1.1.1"
-      sources."acorn-7.2.0"
-      sources."acorn-jsx-5.2.0"
-      (sources."aggregate-error-3.0.1" // {
+      sources."acorn-7.4.0"
+      sources."acorn-jsx-5.3.1"
+      (sources."aggregate-error-3.1.0" // {
         dependencies = [
           sources."indent-string-4.0.0"
         ];
       })
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -55314,6 +60144,7 @@ in
           sources."strip-ansi-5.2.0"
         ];
       })
+      sources."ansi-colors-4.1.1"
       (sources."ansi-escapes-4.3.1" // {
         dependencies = [
           sources."type-fest-0.11.0"
@@ -55343,7 +60174,7 @@ in
           sources."define-property-1.0.0"
         ];
       })
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."bootstrap-vue-helper-json-1.1.1"
       (sources."boxen-3.2.0" // {
         dependencies = [
@@ -55359,13 +60190,12 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."buefy-helper-json-1.0.3"
       sources."buffer-from-1.1.1"
       sources."builtin-modules-1.1.1"
       sources."cache-base-1.0.1"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
@@ -55378,6 +60208,7 @@ in
       sources."character-entities-1.2.4"
       sources."character-entities-html4-1.1.4"
       sources."character-entities-legacy-1.1.4"
+      sources."character-parser-2.2.0"
       sources."character-reference-invalid-1.1.4"
       sources."chardet-0.7.0"
       (sources."chokidar-3.0.2" // {
@@ -55408,9 +60239,9 @@ in
         ];
       })
       sources."clean-stack-2.2.0"
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
-      sources."cli-width-2.2.1"
+      sources."cli-width-3.0.0"
       sources."cliui-4.1.0"
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
@@ -55444,9 +60275,9 @@ in
         ];
       })
       sources."css-parse-2.0.0"
-      sources."csstype-2.6.10"
+      sources."csstype-2.6.13"
       sources."currently-unhandled-0.4.1"
-      sources."debug-4.2.0"
+      sources."debug-3.2.6"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -55466,7 +60297,7 @@ in
           sources."array-union-2.1.0"
           sources."braces-3.0.2"
           sources."dir-glob-3.0.1"
-          sources."fast-glob-3.2.2"
+          sources."fast-glob-3.2.4"
           sources."fill-range-7.0.1"
           sources."globby-10.0.2"
           sources."ignore-5.1.8"
@@ -55499,40 +60330,56 @@ in
       sources."dir-glob-2.0.0"
       sources."dlv-1.1.3"
       sources."doctrine-3.0.0"
-      sources."dot-prop-4.2.0"
+      sources."dot-prop-4.2.1"
       sources."duplexer3-0.1.4"
       sources."editorconfig-0.15.3"
       sources."element-helper-json-2.0.6"
       sources."emoji-regex-7.0.3"
       sources."end-of-stream-1.4.4"
+      sources."enquirer-2.3.6"
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-6.8.0" // {
+      (sources."eslint-7.9.0" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          (sources."cross-spawn-6.0.5" // {
-            dependencies = [
-              sources."semver-5.7.1"
-            ];
-          })
+          sources."ansi-regex-5.0.0"
+          sources."ansi-styles-4.2.1"
+          sources."chalk-4.1.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."cross-spawn-7.0.3"
+          sources."debug-4.3.0"
+          sources."has-flag-4.0.0"
           sources."ignore-4.0.6"
-          sources."semver-6.3.0"
-          sources."strip-ansi-5.2.0"
-          sources."strip-json-comments-3.1.0"
+          sources."path-key-3.1.1"
+          sources."semver-7.3.2"
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."strip-ansi-6.0.0"
+          sources."strip-json-comments-3.1.1"
+          sources."supports-color-7.2.0"
+          sources."which-2.0.2"
         ];
       })
-      sources."eslint-plugin-vue-6.2.2"
-      sources."eslint-scope-5.1.0"
-      sources."eslint-utils-1.4.3"
-      sources."eslint-visitor-keys-1.2.0"
-      sources."espree-6.2.1"
+      (sources."eslint-plugin-vue-7.0.0-beta.3" // {
+        dependencies = [
+          sources."semver-7.3.2"
+        ];
+      })
+      sources."eslint-scope-5.1.1"
+      sources."eslint-utils-2.1.0"
+      sources."eslint-visitor-keys-1.3.0"
+      sources."espree-7.3.0"
       sources."esprima-4.0.1"
       (sources."esquery-1.3.1" // {
         dependencies = [
-          sources."estraverse-5.1.0"
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."execa-0.7.0"
@@ -55630,6 +60477,7 @@ in
         ];
       })
       sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.1"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
@@ -55640,14 +60488,14 @@ in
       sources."has-yarn-2.1.0"
       sources."hast-util-embedded-1.0.5"
       sources."hast-util-has-property-1.0.4"
-      sources."hast-util-is-body-ok-link-1.0.3"
-      sources."hast-util-is-element-1.0.4"
+      sources."hast-util-is-body-ok-link-1.0.4"
+      sources."hast-util-is-element-1.1.0"
       sources."hast-util-parse-selector-2.2.4"
-      sources."hast-util-to-string-1.0.3"
+      sources."hast-util-to-string-1.0.4"
       sources."hast-util-whitespace-1.0.4"
       sources."hosted-git-info-2.8.8"
       sources."html-void-elements-1.0.5"
-      sources."html-whitespace-sensitive-tag-names-1.0.2"
+      sources."html-whitespace-sensitive-tag-names-1.0.3"
       sources."http-cache-semantics-4.1.0"
       sources."iconv-lite-0.4.24"
       sources."ignore-3.3.10"
@@ -55662,11 +60510,11 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      (sources."inquirer-7.1.0" // {
+      (sources."inquirer-7.3.3" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
           sources."ansi-styles-4.2.1"
-          sources."chalk-3.0.0"
+          sources."chalk-4.1.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."emoji-regex-8.0.0"
@@ -55674,7 +60522,7 @@ in
           sources."is-fullwidth-code-point-3.0.0"
           sources."string-width-4.2.0"
           sources."strip-ansi-6.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."invert-kv-2.0.0"
@@ -55689,6 +60537,7 @@ in
       sources."is-decimal-1.0.4"
       sources."is-descriptor-1.0.2"
       sources."is-empty-1.2.0"
+      sources."is-expression-4.0.0"
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
@@ -55709,6 +60558,7 @@ in
       sources."is-path-inside-1.0.1"
       sources."is-plain-obj-1.1.0"
       sources."is-plain-object-2.0.4"
+      sources."is-regex-1.1.1"
       sources."is-stream-1.1.0"
       sources."is-utf8-0.2.1"
       sources."is-windows-1.0.2"
@@ -55716,7 +60566,7 @@ in
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
-      (sources."js-beautify-1.11.0" // {
+      (sources."js-beautify-1.13.0" // {
         dependencies = [
           sources."mkdirp-1.0.4"
         ];
@@ -55725,26 +60575,26 @@ in
       sources."js-yaml-3.14.0"
       sources."json-buffer-3.0.0"
       sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."json5-2.1.3"
-      sources."jsonc-parser-1.0.3"
+      sources."jsonc-parser-2.3.1"
       sources."keyv-3.1.0"
       sources."kind-of-6.0.3"
       sources."latest-version-5.1.0"
       sources."lcid-2.0.0"
-      sources."levn-0.3.0"
+      sources."levn-0.4.1"
       sources."lines-and-columns-1.1.6"
       sources."load-json-file-4.0.0"
       sources."load-plugin-2.3.1"
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.assign-4.2.0"
       sources."lodash.defaults-4.2.0"
       sources."lodash.iteratee-4.7.0"
       sources."lodash.merge-4.6.2"
-      sources."lodash.unescape-4.0.1"
-      sources."loglevel-1.6.8"
+      sources."loglevel-1.7.0"
       (sources."loglevel-colored-level-prefix-1.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -55790,8 +60640,8 @@ in
       sources."nanomatch-1.2.13"
       sources."natural-compare-1.4.0"
       sources."nice-try-1.0.5"
-      sources."node-fetch-2.6.0"
-      sources."nopt-4.0.3"
+      sources."node-fetch-2.6.1"
+      sources."nopt-5.0.0"
       sources."normalize-package-data-2.5.0"
       sources."normalize-path-3.0.0"
       sources."normalize-url-4.5.0"
@@ -55817,8 +60667,8 @@ in
       sources."object-visit-1.0.1"
       sources."object.pick-1.3.0"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
-      sources."optionator-0.8.3"
+      sources."onetime-5.1.2"
+      sources."optionator-0.9.1"
       sources."os-homedir-1.0.2"
       (sources."os-locale-3.1.0" // {
         dependencies = [
@@ -55828,7 +60678,6 @@ in
         ];
       })
       sources."os-tmpdir-1.0.2"
-      sources."osenv-0.1.5"
       sources."p-cancelable-1.1.0"
       sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
@@ -55869,42 +60718,32 @@ in
         ];
       })
       sources."posix-character-classes-0.1.1"
-      sources."prelude-ls-1.1.2"
+      sources."prelude-ls-1.2.1"
       sources."prepend-http-2.0.0"
-      sources."prettier-1.19.1"
-      (sources."prettier-eslint-9.0.2" // {
+      sources."prettier-2.1.2"
+      (sources."prettier-eslint-11.0.0" // {
         dependencies = [
-          sources."acorn-6.4.1"
-          (sources."acorn-jsx-3.0.1" // {
+          sources."ansi-regex-4.1.0"
+          (sources."cross-spawn-6.0.5" // {
             dependencies = [
-              sources."acorn-3.3.0"
+              sources."semver-5.7.1"
             ];
           })
-          sources."ansi-escapes-3.2.0"
-          sources."ansi-regex-4.1.0"
-          sources."cli-cursor-2.1.0"
-          sources."cross-spawn-6.0.5"
-          sources."debug-3.2.6"
-          sources."eslint-5.16.0"
-          sources."eslint-scope-4.0.3"
-          sources."espree-5.0.1"
-          sources."figures-2.0.0"
-          sources."globals-11.12.0"
+          sources."debug-4.3.0"
+          sources."eslint-6.8.0"
+          sources."eslint-utils-1.4.3"
+          sources."espree-6.2.1"
           sources."ignore-4.0.6"
           sources."indent-string-4.0.0"
-          sources."inquirer-6.5.2"
-          sources."mimic-fn-1.2.0"
-          sources."mute-stream-0.0.7"
-          sources."onetime-2.0.1"
-          sources."restore-cursor-2.0.0"
+          sources."levn-0.3.0"
+          sources."optionator-0.8.3"
+          sources."prelude-ls-1.1.2"
+          sources."regexpp-2.0.1"
+          sources."semver-6.3.0"
           sources."strip-ansi-5.2.0"
-          (sources."vue-eslint-parser-2.0.3" // {
-            dependencies = [
-              sources."acorn-5.7.4"
-              sources."eslint-scope-3.7.3"
-              sources."espree-3.5.4"
-            ];
-          })
+          sources."strip-json-comments-3.1.1"
+          sources."type-check-0.3.2"
+          sources."typescript-3.9.7"
         ];
       })
       sources."prettier-tslint-0.4.2"
@@ -55914,6 +60753,8 @@ in
       sources."property-information-5.5.0"
       sources."proto-list-1.2.4"
       sources."pseudomap-1.0.2"
+      sources."pug-error-2.0.0"
+      sources."pug-lexer-5.0.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."quick-lru-1.1.0"
@@ -55926,7 +60767,7 @@ in
           sources."p-limit-2.3.0"
           sources."p-locate-4.1.0"
           sources."p-try-2.2.0"
-          sources."parse-json-5.0.0"
+          sources."parse-json-5.1.0"
           sources."path-exists-4.0.0"
           (sources."read-pkg-5.2.0" // {
             dependencies = [
@@ -55940,8 +60781,8 @@ in
       sources."readdirp-3.4.0"
       sources."redent-2.0.0"
       sources."regex-not-1.0.2"
-      sources."regexpp-2.0.1"
-      sources."registry-auth-token-4.1.1"
+      sources."regexpp-3.1.0"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       sources."rehype-sort-attribute-values-2.0.1"
       (sources."remark-5.1.0" // {
@@ -55972,12 +60813,12 @@ in
       sources."rimraf-2.6.3"
       sources."run-async-2.4.1"
       sources."run-parallel-1.1.9"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.3"
       sources."s.color-0.0.13"
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."sass-formatter-0.4.8"
+      sources."sass-formatter-0.4.15"
       sources."sax-1.2.4"
       sources."semver-5.7.1"
       sources."semver-diff-2.1.0"
@@ -56033,7 +60874,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."split-string-3.1.0"
       sources."sprintf-js-1.0.3"
       sources."stampit-1.2.0"
@@ -56092,18 +60933,19 @@ in
           sources."yargs-parser-2.4.1"
         ];
       })
-      (sources."stylus-0.54.7" // {
+      (sources."stylus-0.54.8" // {
         dependencies = [
           sources."debug-3.1.0"
+          sources."mkdirp-1.0.4"
           sources."ms-2.0.0"
           sources."semver-6.3.0"
           sources."source-map-0.7.3"
         ];
       })
       sources."stylus-supremacy-2.14.5"
-      sources."suf-cli-0.1.1"
-      sources."suf-node-1.1.1"
-      sources."suf-regex-0.0.21"
+      sources."suf-cli-0.1.3"
+      sources."suf-node-1.2.1"
+      sources."suf-regex-0.0.23"
       sources."supports-color-5.5.0"
       sources."symbol-0.2.3"
       (sources."table-5.4.6" // {
@@ -56132,12 +60974,16 @@ in
       sources."trim-trailing-lines-1.1.3"
       sources."trough-1.0.5"
       sources."tslib-1.13.0"
-      sources."tslint-5.20.1"
-      sources."tsutils-2.29.0"
-      sources."type-check-0.3.2"
+      (sources."tslint-5.20.1" // {
+        dependencies = [
+          sources."tsutils-2.29.0"
+        ];
+      })
+      sources."tsutils-3.17.1"
+      sources."type-check-0.4.0"
       sources."type-fest-0.3.1"
       sources."typedarray-0.0.6"
-      sources."typescript-3.9.5"
+      sources."typescript-4.0.3"
       sources."unherit-1.1.3"
       (sources."unified-7.1.0" // {
         dependencies = [
@@ -56148,7 +60994,6 @@ in
       })
       (sources."unified-engine-6.0.1" // {
         dependencies = [
-          sources."debug-3.2.6"
           sources."to-vfile-4.0.0"
           sources."unist-util-stringify-position-1.1.2"
           sources."vfile-3.0.1"
@@ -56186,7 +61031,7 @@ in
       })
       sources."untildify-2.1.0"
       sources."update-notifier-3.0.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."url-parse-lax-3.0.0"
       sources."use-3.1.1"
@@ -56194,7 +61039,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-2.1.1"
       sources."validate-npm-package-license-3.0.4"
-      sources."vfile-4.1.1"
+      sources."vfile-4.2.0"
       sources."vfile-location-2.0.6"
       sources."vfile-message-2.0.4"
       (sources."vfile-reporter-6.0.1" // {
@@ -56209,22 +61054,23 @@ in
       })
       sources."vfile-sort-2.2.2"
       sources."vfile-statistics-1.1.4"
-      sources."vls-0.2.0"
-      (sources."vscode-css-languageservice-4.2.0" // {
-        dependencies = [
-          sources."vscode-uri-2.1.2"
-        ];
-      })
-      sources."vscode-emmet-helper-1.2.17"
+      sources."vls-0.5.3"
+      sources."vscode-css-languageservice-4.1.0"
+      sources."vscode-emmet-helper-2.0.0"
       sources."vscode-jsonrpc-5.0.1"
       sources."vscode-languageserver-6.1.1"
       sources."vscode-languageserver-protocol-3.15.3"
       sources."vscode-languageserver-textdocument-1.0.1"
       sources."vscode-languageserver-types-3.15.1"
       sources."vscode-nls-4.1.2"
-      sources."vscode-uri-1.0.8"
-      sources."vscode-web-custom-data-0.1.4"
-      sources."vue-eslint-parser-7.1.0"
+      sources."vscode-uri-2.1.2"
+      sources."vscode-web-custom-data-0.3.1"
+      (sources."vue-eslint-parser-7.1.0" // {
+        dependencies = [
+          sources."debug-4.3.0"
+          sources."espree-6.2.1"
+        ];
+      })
       sources."vue-onsenui-helper-json-1.0.2"
       sources."wcwidth-1.0.1"
       sources."which-1.3.1"
@@ -56268,10 +61114,10 @@ in
   coc-vimtex = nodeEnv.buildNodePackage {
     name = "coc-vimtex";
     packageName = "coc-vimtex";
-    version = "1.0.3";
+    version = "1.0.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-vimtex/-/coc-vimtex-1.0.3.tgz";
-      sha512 = "zDliD5/CMHMdKm2aOu5lMW2z7Anbkl8cb7JnyQoeG5y6x4huZ1WtNVdkWVJkeyctOot/Js5YGt3imud0e5hLZQ==";
+      url = "https://registry.npmjs.org/coc-vimtex/-/coc-vimtex-1.0.4.tgz";
+      sha512 = "gE04Ruk/7Of+jhVlWUT3M5xW5LEN24335rpSPHu7u1uzasuv9SsNehXbZpkj1SEYM4K7+5bw8NC+EFshuZm6Vw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -56303,10 +61149,10 @@ in
   coc-yaml = nodeEnv.buildNodePackage {
     name = "coc-yaml";
     packageName = "coc-yaml";
-    version = "1.0.4";
+    version = "1.0.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-yaml/-/coc-yaml-1.0.4.tgz";
-      sha512 = "ChwFqLSF0C/c/LIhJR6ycOc7JZreFkGeNOol/+oPw+OFvY5Zgz8vjdDzmwXZlKwQMIuZAnDUFZOJaYUyCRJzsw==";
+      url = "https://registry.npmjs.org/coc-yaml/-/coc-yaml-1.0.5.tgz";
+      sha512 = "BMtE+UB9mmChn9bD6Nd7fuWVgEPwaa48QQLyE0nxQK2PXozLsPpRx7micYNpMB/LUh786oe/Gn1NPVwzNE2iEw==";
     };
     dependencies = [
       sources."agent-base-4.3.0"
@@ -56318,12 +61164,17 @@ in
       sources."http-proxy-agent-2.1.0"
       sources."https-proxy-agent-2.2.4"
       sources."js-yaml-3.14.0"
-      sources."jsonc-parser-2.2.1"
+      sources."jsonc-parser-2.3.1"
       sources."ms-2.0.0"
-      sources."prettier-1.19.1"
+      sources."prettier-2.0.5"
       sources."request-light-0.2.5"
       sources."sprintf-js-1.0.3"
-      sources."vscode-json-languageservice-3.7.0"
+      (sources."vscode-json-languageservice-3.8.4" // {
+        dependencies = [
+          sources."vscode-languageserver-types-3.16.0-next.2"
+          sources."vscode-nls-5.0.0"
+        ];
+      })
       sources."vscode-jsonrpc-4.0.0"
       (sources."vscode-languageserver-5.2.1" // {
         dependencies = [
@@ -56340,7 +61191,7 @@ in
       sources."vscode-nls-4.1.2"
       sources."vscode-uri-2.1.2"
       sources."yaml-ast-parser-custom-tags-0.0.43"
-      sources."yaml-language-server-0.7.2"
+      sources."yaml-language-server-0.10.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -56354,10 +61205,10 @@ in
   coc-yank = nodeEnv.buildNodePackage {
     name = "coc-yank";
     packageName = "coc-yank";
-    version = "1.1.4";
+    version = "1.1.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-yank/-/coc-yank-1.1.4.tgz";
-      sha512 = "8qonhyBfipzni6Fbbdm9hOjUIdLtwPGqnVGxA5DV+Kd4ctvD+FiBRuaWnXWf4QqxC8ATHQyTyoSqrvdXdko4PA==";
+      url = "https://registry.npmjs.org/coc-yank/-/coc-yank-1.1.5.tgz";
+      sha512 = "HITJR6Cjah8xJwPBqWFQCj0vAWu29IrPWuEdZBnGo+qqasGoVSjurGnrRrmZZADuMWh/Z+2z4V7J8DoVejs40Q==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -56453,22 +61304,21 @@ in
       sources."colorspace-1.1.2"
       sources."commander-4.1.1"
       sources."core-util-is-1.0.2"
-      sources."debug-3.2.6"
       sources."diagnostics-1.1.1"
       sources."enabled-1.0.2"
       sources."env-variable-0.0.6"
-      sources."eventemitter3-4.0.4"
+      sources."eventemitter3-4.0.7"
       sources."fast-safe-stringify-2.0.7"
-      sources."fecha-2.3.3"
-      sources."follow-redirects-1.11.0"
+      sources."fecha-4.2.0"
+      sources."follow-redirects-1.13.0"
       sources."http-proxy-1.18.1"
       sources."inherits-2.0.4"
       sources."is-arrayish-0.3.2"
       sources."is-stream-1.1.0"
       sources."isarray-1.0.0"
       sources."kuler-1.0.1"
-      sources."lodash-4.17.15"
-      sources."logform-2.1.2"
+      sources."lodash-4.17.20"
+      sources."logform-2.2.0"
       sources."lynx-0.2.0"
       sources."mersenne-0.0.4"
       sources."ms-2.1.2"
@@ -56486,7 +61336,7 @@ in
       sources."triple-beam-1.3.0"
       sources."util-deprecate-1.0.2"
       sources."winston-3.2.1"
-      (sources."winston-transport-4.3.0" // {
+      (sources."winston-transport-4.4.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
@@ -56507,47 +61357,42 @@ in
   cordova = nodeEnv.buildNodePackage {
     name = "cordova";
     packageName = "cordova";
-    version = "9.0.0";
+    version = "10.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cordova/-/cordova-9.0.0.tgz";
-      sha512 = "zWEPo9uGj9KNcEhU2Lpo3r4HYK21tL+at496N2LLnuCWuWVndv6QWed8+EYl/08rrcNshrEtfzXj9Ux6vQm2PQ==";
+      url = "https://registry.npmjs.org/cordova/-/cordova-10.0.0.tgz";
+      sha512 = "00wMcj3X9ILhKtvRG2iEwO2qly4B+vgXFhH4WhVepWg2UVbD1opl1q9jSZ+j2AaI/vsBWW8e6M2M5FAHasnuWw==";
     };
     dependencies = [
-      sources."@mrmlnc/readdir-enhanced-2.2.1"
-      sources."@nodelib/fs.stat-1.1.3"
-      sources."@types/glob-7.1.2"
-      sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.0.13"
+      sources."@netflix/nerror-1.1.3"
+      sources."@nodelib/fs.scandir-2.1.3"
+      sources."@nodelib/fs.stat-2.0.3"
+      sources."@nodelib/fs.walk-1.2.4"
+      sources."@sindresorhus/is-0.14.0"
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@types/color-name-1.1.1"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."ansi-0.3.1"
-      sources."ansi-align-2.0.0"
+      (sources."ansi-align-3.0.0" // {
+        dependencies = [
+          sources."string-width-3.1.0"
+        ];
+      })
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-3.0.0"
-      sources."ansi-styles-3.2.1"
-      sources."arr-diff-4.0.0"
-      sources."arr-flatten-1.1.0"
-      sources."arr-union-3.1.0"
+      sources."ansi-styles-4.2.1"
       sources."array-find-index-1.0.2"
       sources."array-flatten-1.1.1"
-      sources."array-union-1.0.2"
-      sources."array-uniq-1.0.3"
-      sources."array-unique-0.3.2"
+      sources."array-union-2.1.0"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
-      sources."assign-symbols-1.0.0"
       sources."async-2.6.3"
       sources."asynckit-0.4.0"
-      sources."atob-2.1.2"
+      sources."at-least-node-1.0.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
-      (sources."base-0.11.2" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."big-integer-1.6.48"
@@ -56556,90 +61401,79 @@ in
           sources."bytes-3.1.0"
         ];
       })
-      sources."boxen-1.3.0"
-      sources."bplist-parser-0.1.1"
-      sources."brace-expansion-1.1.11"
-      (sources."braces-2.3.2" // {
+      (sources."boxen-4.2.0" // {
         dependencies = [
-          sources."extend-shallow-2.0.1"
+          sources."ansi-regex-5.0.0"
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.0"
+          sources."strip-ansi-6.0.0"
         ];
       })
+      sources."bplist-parser-0.2.0"
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
       sources."builtins-1.0.3"
       sources."bytes-3.0.0"
-      sources."cache-base-1.0.1"
-      sources."call-me-maybe-1.0.1"
-      sources."callsites-3.1.0"
-      sources."camelcase-4.1.0"
-      sources."capture-stack-trace-1.0.1"
-      sources."caseless-0.12.0"
-      sources."chalk-2.4.2"
-      sources."chardet-0.7.0"
-      sources."ci-info-1.6.0"
-      (sources."class-utils-0.3.6" // {
+      (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
+          sources."lowercase-keys-2.0.0"
         ];
       })
-      sources."cli-boxes-1.0.0"
+      sources."callsites-3.1.0"
+      sources."camelcase-5.3.1"
+      sources."caseless-0.12.0"
+      sources."chalk-3.0.0"
+      sources."chardet-0.7.0"
+      sources."ci-info-2.0.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-cursor-2.1.0"
       sources."cli-width-2.2.1"
-      sources."collection-visit-1.0.0"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
+      sources."clone-response-1.0.2"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
       sources."combined-stream-1.0.8"
-      sources."component-emitter-1.3.0"
       sources."compressible-2.0.18"
       sources."compression-1.7.4"
       sources."concat-map-0.0.1"
-      sources."conf-1.4.0"
-      sources."configstore-4.0.0"
+      (sources."conf-1.4.0" // {
+        dependencies = [
+          sources."dot-prop-4.2.1"
+          sources."is-obj-1.0.1"
+          sources."make-dir-1.3.0"
+          sources."pify-3.0.0"
+          sources."write-file-atomic-2.4.3"
+        ];
+      })
+      sources."configstore-5.0.1"
       sources."content-disposition-0.5.3"
       sources."content-type-1.0.4"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."copy-descriptor-0.1.1"
-      sources."cordova-app-hello-world-4.0.0"
-      sources."cordova-common-3.2.1"
-      (sources."cordova-create-2.0.0" // {
-        dependencies = [
-          sources."fs-extra-7.0.1"
-        ];
-      })
-      (sources."cordova-fetch-2.0.1" // {
+      sources."cordova-app-hello-world-5.0.0"
+      sources."cordova-common-4.0.2"
+      sources."cordova-create-3.0.0"
+      (sources."cordova-fetch-3.0.0" // {
         dependencies = [
-          sources."fs-extra-7.0.1"
-          sources."pify-4.0.1"
+          sources."pify-5.0.0"
         ];
       })
-      (sources."cordova-lib-9.0.1" // {
+      (sources."cordova-lib-10.0.0" // {
         dependencies = [
-          sources."fs-extra-7.0.1"
+          sources."pify-5.0.0"
         ];
       })
-      sources."cordova-serve-3.0.0"
+      sources."cordova-serve-4.0.0"
       sources."core-util-is-1.0.2"
-      sources."create-error-class-3.0.2"
-      sources."cross-spawn-6.0.5"
-      sources."crypto-random-string-1.0.0"
+      sources."cross-spawn-7.0.3"
+      sources."crypto-random-string-2.0.0"
       sources."currently-unhandled-0.4.1"
       sources."dashdash-1.14.1"
       sources."debug-2.6.9"
-      sources."decode-uri-component-0.2.0"
+      sources."decompress-response-3.3.0"
       sources."dedent-0.7.0"
       sources."deep-extend-0.6.0"
-      sources."define-property-2.0.2"
+      sources."defer-to-connect-1.1.3"
       sources."delayed-stream-1.0.0"
       (sources."dep-graph-1.1.0" // {
         dependencies = [
@@ -56648,233 +61482,195 @@ in
       })
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."detect-indent-5.0.0"
-      sources."dir-glob-2.2.2"
-      sources."dot-prop-4.2.0"
+      sources."detect-indent-6.0.0"
+      sources."detect-newline-3.1.0"
+      sources."dir-glob-3.0.1"
+      sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."editor-1.0.0"
       sources."ee-first-1.1.1"
       sources."elementtree-0.1.7"
+      sources."emoji-regex-7.0.3"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."endent-1.4.1"
       sources."env-paths-1.0.0"
+      sources."escape-goat-2.1.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
       sources."etag-1.8.1"
-      sources."execa-1.0.0"
-      (sources."expand-brackets-2.1.4" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
+      sources."execa-4.0.3"
       sources."express-4.17.1"
       sources."extend-3.0.2"
-      (sources."extend-shallow-3.0.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
-      sources."external-editor-3.1.0"
-      (sources."extglob-2.0.4" // {
+      (sources."external-editor-3.1.0" // {
         dependencies = [
-          sources."define-property-1.0.0"
-          sources."extend-shallow-2.0.1"
+          sources."tmp-0.0.33"
         ];
       })
-      sources."extsprintf-1.3.0"
+      sources."extsprintf-1.4.0"
       sources."fast-deep-equal-3.1.3"
-      sources."fast-glob-2.2.7"
+      sources."fast-glob-3.2.4"
       sources."fast-json-parse-1.0.3"
       sources."fast-json-stable-stringify-2.1.0"
+      sources."fastq-1.8.0"
       sources."figures-2.0.0"
-      (sources."fill-range-4.0.0" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
+      sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
       sources."find-up-2.1.0"
-      sources."for-in-1.0.2"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
       sources."forwarded-0.1.2"
-      sources."fragment-cache-0.2.1"
       sources."fresh-0.5.2"
-      sources."fs-extra-8.1.0"
+      sources."fs-extra-9.0.1"
       sources."fs.realpath-1.0.0"
-      sources."get-stream-4.1.0"
-      sources."get-value-2.0.6"
+      sources."get-stream-5.2.0"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
-      (sources."glob-parent-3.1.0" // {
-        dependencies = [
-          sources."is-glob-3.1.0"
-        ];
-      })
-      sources."glob-to-regexp-0.3.0"
-      sources."global-dirs-0.1.1"
-      (sources."globby-9.2.0" // {
-        dependencies = [
-          sources."pify-4.0.1"
-        ];
-      })
-      (sources."got-6.7.1" // {
+      sources."glob-parent-5.1.1"
+      sources."global-dirs-2.0.1"
+      sources."globby-11.0.1"
+      (sources."got-9.6.0" // {
         dependencies = [
-          sources."get-stream-3.0.0"
+          sources."get-stream-4.1.0"
         ];
       })
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
-      sources."has-flag-3.0.0"
-      sources."has-value-1.0.0"
-      (sources."has-values-1.0.0" // {
-        dependencies = [
-          sources."kind-of-4.0.0"
-        ];
-      })
-      sources."hosted-git-info-2.8.8"
+      sources."har-validator-5.1.5"
+      sources."has-flag-4.0.0"
+      sources."has-yarn-2.1.0"
+      sources."hosted-git-info-3.0.5"
+      sources."http-cache-semantics-4.1.0"
       (sources."http-errors-1.7.2" // {
         dependencies = [
           sources."inherits-2.0.3"
         ];
       })
       sources."http-signature-1.2.0"
+      sources."human-signals-1.1.1"
       sources."iconv-lite-0.4.24"
-      sources."ignore-4.0.6"
+      sources."ignore-5.1.8"
       sources."import-fresh-3.2.1"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
-      sources."indent-string-3.2.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      sources."init-package-json-1.10.3"
+      (sources."init-package-json-1.10.3" // {
+        dependencies = [
+          sources."hosted-git-info-2.8.8"
+          sources."npm-package-arg-6.1.1"
+          sources."semver-5.7.1"
+        ];
+      })
       (sources."inquirer-6.5.2" // {
         dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."has-flag-3.0.0"
           sources."mute-stream-0.0.7"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      (sources."insight-0.10.3" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."chalk-2.4.2"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."has-flag-3.0.0"
+          sources."supports-color-5.5.0"
         ];
       })
-      sources."insight-0.10.3"
       sources."ip-regex-2.1.0"
       sources."ipaddr.js-1.9.1"
-      sources."is-accessor-descriptor-1.0.0"
-      sources."is-buffer-1.1.6"
-      sources."is-ci-1.2.1"
-      sources."is-data-descriptor-1.0.0"
-      sources."is-descriptor-1.0.2"
-      sources."is-extendable-0.1.1"
+      sources."is-ci-2.0.0"
+      sources."is-docker-2.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
-      sources."is-installed-globally-0.1.0"
-      sources."is-npm-1.0.0"
-      (sources."is-number-3.0.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."is-obj-1.0.1"
-      sources."is-path-inside-1.0.1"
-      sources."is-plain-object-2.0.4"
-      sources."is-redirect-1.0.0"
-      sources."is-retry-allowed-1.2.0"
-      sources."is-stream-1.1.0"
+      sources."is-installed-globally-0.3.2"
+      sources."is-npm-4.0.0"
+      sources."is-number-7.0.0"
+      sources."is-obj-2.0.0"
+      sources."is-path-inside-3.0.2"
+      sources."is-stream-2.0.0"
       sources."is-typedarray-1.0.0"
-      sources."is-url-1.2.4"
-      sources."is-windows-1.0.2"
-      sources."is-wsl-1.1.0"
-      sources."isarray-1.0.0"
+      sources."is-wsl-2.2.0"
+      sources."is-yarn-global-0.3.0"
       sources."isexe-2.0.0"
-      sources."isobject-3.0.1"
+      sources."isobject-4.0.0"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
-      sources."json-parse-better-errors-1.0.2"
+      sources."json-buffer-3.0.0"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsonfile-4.0.0"
-      sources."jsprim-1.4.1"
-      sources."kind-of-6.0.3"
-      sources."latest-version-3.1.0"
+      sources."jsonfile-6.0.1"
+      (sources."jsprim-1.4.1" // {
+        dependencies = [
+          sources."extsprintf-1.3.0"
+        ];
+      })
+      sources."keyv-3.1.0"
+      sources."latest-version-5.1.0"
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.debounce-4.0.8"
       sources."loud-rejection-2.2.0"
       sources."lowercase-keys-1.0.1"
-      sources."lru-cache-4.1.5"
-      sources."macos-release-2.3.0"
-      sources."make-dir-1.3.0"
-      sources."map-cache-0.2.2"
-      sources."map-visit-1.0.0"
-      sources."md5-file-4.0.0"
+      sources."lru-cache-6.0.0"
+      sources."macos-release-2.4.1"
+      (sources."make-dir-3.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."md5-file-5.0.0"
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
+      sources."merge-stream-2.0.0"
       sources."merge2-1.4.1"
       sources."methods-1.1.2"
-      sources."micromatch-3.1.10"
+      sources."micromatch-4.0.2"
       sources."mime-1.6.0"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
-      sources."mimic-fn-1.2.0"
+      sources."mimic-fn-2.1.0"
+      sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      (sources."mixin-deep-1.3.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
-      sources."nanomatch-1.2.13"
       sources."negotiator-0.6.2"
       sources."nice-try-1.0.5"
       sources."nopt-4.0.3"
-      sources."normalize-package-data-2.5.0"
-      sources."npm-normalize-package-bin-1.0.1"
-      sources."npm-package-arg-6.1.1"
-      sources."npm-run-path-2.0.2"
-      sources."oauth-sign-0.9.0"
-      (sources."object-copy-0.1.0" // {
+      (sources."normalize-package-data-2.5.0" // {
         dependencies = [
-          sources."define-property-0.2.5"
-          sources."is-accessor-descriptor-0.1.6"
-          sources."is-data-descriptor-0.1.4"
-          (sources."is-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-5.1.0"
-            ];
-          })
-          sources."kind-of-3.2.2"
+          sources."hosted-git-info-2.8.8"
+          sources."semver-5.7.1"
         ];
       })
-      sources."object-visit-1.0.1"
-      sources."object.pick-1.3.0"
+      sources."normalize-url-4.5.0"
+      sources."npm-normalize-package-bin-1.0.1"
+      sources."npm-package-arg-8.0.1"
+      sources."npm-run-path-4.0.1"
+      sources."oauth-sign-0.9.0"
       sources."objectorarray-1.0.4"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
-      sources."onetime-2.0.1"
-      sources."opn-5.5.0"
+      sources."onetime-5.1.2"
+      sources."open-7.2.1"
       sources."os-homedir-1.0.2"
       sources."os-name-3.1.0"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
+      sources."p-cancelable-1.1.0"
       sources."p-finally-1.0.0"
       (sources."p-limit-1.3.0" // {
         dependencies = [
@@ -56883,30 +61679,32 @@ in
       })
       sources."p-locate-2.0.0"
       sources."p-try-2.2.0"
-      sources."package-json-4.0.1"
+      (sources."package-json-6.5.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
       sources."parent-module-1.0.1"
       sources."parseurl-1.3.3"
-      sources."pascalcase-0.1.1"
-      sources."path-dirname-1.0.2"
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-is-inside-1.0.2"
-      sources."path-key-2.0.1"
+      sources."path-key-3.1.1"
       sources."path-parse-1.0.6"
       sources."path-to-regexp-0.1.7"
-      sources."path-type-3.0.0"
+      sources."path-type-4.0.0"
       sources."performance-now-2.1.0"
-      sources."pify-3.0.0"
+      sources."picomatch-2.2.2"
+      sources."pify-4.0.1"
       sources."pkg-up-2.0.0"
       sources."plist-3.0.1"
-      sources."posix-character-classes-0.1.1"
-      sources."prepend-http-1.0.4"
+      sources."prepend-http-2.0.0"
       sources."promzard-0.3.0"
       sources."proxy-addr-2.0.6"
-      sources."pseudomap-1.0.2"
       sources."psl-1.8.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
+      sources."pupa-2.0.1"
       sources."q-1.5.1"
       sources."qs-6.7.0"
       sources."range-parser-1.2.1"
@@ -56917,17 +61715,10 @@ in
       })
       sources."rc-1.2.8"
       sources."read-1.0.7"
-      (sources."read-chunk-3.2.0" // {
-        dependencies = [
-          sources."pify-4.0.1"
-        ];
-      })
-      sources."read-package-json-2.1.1"
-      sources."regex-not-1.0.2"
-      sources."registry-auth-token-3.4.0"
-      sources."registry-url-3.1.0"
-      sources."repeat-element-1.1.3"
-      sources."repeat-string-1.6.1"
+      sources."read-chunk-3.2.0"
+      sources."read-package-json-2.1.2"
+      sources."registry-auth-token-4.2.0"
+      sources."registry-url-5.1.0"
       (sources."request-2.88.2" // {
         dependencies = [
           sources."qs-6.5.2"
@@ -56936,150 +61727,81 @@ in
       })
       sources."resolve-1.17.0"
       sources."resolve-from-4.0.0"
-      sources."resolve-url-0.2.1"
-      sources."restore-cursor-2.0.0"
-      sources."ret-0.1.15"
+      sources."responselike-1.0.2"
+      (sources."restore-cursor-2.0.0" // {
+        dependencies = [
+          sources."mimic-fn-1.2.0"
+          sources."onetime-2.0.1"
+        ];
+      })
+      sources."reusify-1.0.4"
+      sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."run-parallel-1.1.9"
+      sources."rxjs-6.6.3"
       sources."safe-buffer-5.1.2"
-      sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
       sources."sax-1.1.4"
-      sources."semver-5.7.1"
-      sources."semver-diff-2.1.0"
-      (sources."send-0.17.1" // {
+      sources."semver-7.3.2"
+      (sources."semver-diff-3.1.1" // {
         dependencies = [
-          sources."ms-2.1.1"
+          sources."semver-6.3.0"
         ];
       })
-      sources."serve-static-1.14.1"
-      (sources."set-value-2.0.1" // {
+      (sources."send-0.17.1" // {
         dependencies = [
-          sources."extend-shallow-2.0.1"
+          sources."ms-2.1.1"
         ];
       })
+      sources."serve-static-1.14.1"
       sources."setprototypeof-1.1.1"
-      sources."shebang-command-1.2.0"
-      sources."shebang-regex-1.0.0"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.3"
-      sources."slash-2.0.0"
-      (sources."snapdragon-0.8.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      (sources."snapdragon-node-2.1.1" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
-      (sources."snapdragon-util-3.0.1" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."source-map-0.5.7"
-      sources."source-map-resolve-0.5.3"
-      sources."source-map-url-0.4.0"
+      sources."slash-3.0.0"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
-      sources."split-string-3.1.0"
+      sources."spdx-license-ids-3.0.6"
       sources."sshpk-1.16.1"
-      (sources."static-extend-0.1.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
       sources."statuses-1.5.0"
       (sources."string-width-2.1.1" // {
         dependencies = [
           sources."strip-ansi-4.0.0"
         ];
       })
+      sources."stringify-package-1.0.1"
       (sources."strip-ansi-5.2.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
         ];
       })
-      sources."strip-bom-3.0.0"
+      sources."strip-bom-4.0.0"
       sources."strip-eof-1.0.0"
+      sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-2.0.1"
-      sources."supports-color-5.5.0"
-      (sources."term-size-1.2.0" // {
-        dependencies = [
-          sources."cross-spawn-5.1.0"
-          sources."execa-0.7.0"
-          sources."get-stream-3.0.0"
-        ];
-      })
+      sources."supports-color-7.2.0"
+      sources."systeminformation-4.27.5"
+      sources."term-size-2.2.0"
       sources."through-2.3.8"
-      sources."timed-out-4.0.1"
-      sources."tmp-0.0.33"
-      (sources."to-object-path-0.3.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."to-regex-3.0.2"
-      sources."to-regex-range-2.1.1"
+      sources."tmp-0.2.1"
+      sources."to-readable-stream-1.0.0"
+      sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.0"
       sources."tough-cookie-3.0.1"
       sources."tslib-1.13.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
+      sources."type-fest-0.8.1"
       sources."type-is-1.6.18"
-      sources."underscore-1.10.2"
-      sources."union-value-1.0.1"
-      sources."unique-string-1.0.0"
-      sources."universalify-0.1.2"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."underscore-1.11.0"
+      sources."unique-string-2.0.0"
+      sources."universalify-1.0.0"
       sources."unpipe-1.0.0"
-      (sources."unset-value-1.0.0" // {
-        dependencies = [
-          (sources."has-value-0.3.1" // {
-            dependencies = [
-              sources."isobject-2.1.0"
-            ];
-          })
-          sources."has-values-0.1.4"
-        ];
-      })
-      sources."unzip-response-2.0.1"
-      (sources."update-notifier-2.5.0" // {
-        dependencies = [
-          sources."configstore-3.1.2"
-        ];
-      })
-      sources."uri-js-4.2.2"
-      sources."urix-0.1.0"
-      sources."url-parse-lax-1.0.0"
-      sources."use-3.1.1"
+      sources."update-notifier-4.1.1"
+      sources."uri-js-4.4.0"
+      sources."url-parse-lax-3.0.0"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
       sources."valid-identifier-0.0.2"
@@ -57087,20 +61809,37 @@ in
       sources."validate-npm-package-name-3.0.0"
       sources."vary-1.1.2"
       sources."verror-1.10.0"
-      sources."which-1.3.1"
-      sources."widest-line-2.0.1"
-      sources."windows-release-3.3.1"
-      (sources."with-open-file-0.1.7" // {
+      sources."which-2.0.2"
+      (sources."widest-line-3.1.0" // {
         dependencies = [
-          sources."pify-4.0.1"
+          sources."ansi-regex-5.0.0"
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.0"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
+      (sources."windows-release-3.3.3" // {
+        dependencies = [
+          sources."cross-spawn-6.0.5"
+          sources."execa-1.0.0"
+          sources."get-stream-4.1.0"
+          sources."is-stream-1.1.0"
+          sources."npm-run-path-2.0.2"
+          sources."path-key-2.0.1"
+          sources."semver-5.7.1"
+          sources."shebang-command-1.2.0"
+          sources."shebang-regex-1.0.0"
+          sources."which-1.3.1"
         ];
       })
+      sources."with-open-file-0.1.7"
       sources."wrappy-1.0.2"
-      sources."write-file-atomic-2.4.3"
-      sources."xdg-basedir-3.0.0"
+      sources."write-file-atomic-3.0.3"
+      sources."xdg-basedir-4.0.0"
       sources."xmlbuilder-9.0.7"
       sources."xmldom-0.1.31"
-      sources."yallist-2.1.2"
+      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -57121,17 +61860,17 @@ in
       sha512 = "HCpNdBkQy3rw+uARLuIf0YurqsMXYzBa9ihhSAuxYJcNIrqrSq3BstPfr0cQN38AdMrQiO9Dp4hYy7GtGJsLPg==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      sources."@babel/highlight-7.10.1"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
-      sources."@types/glob-7.1.2"
+      sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
       sources."@types/minimist-1.2.0"
-      sources."@types/node-14.0.13"
+      sources."@types/node-14.11.1"
       sources."@types/normalize-package-data-2.4.0"
-      sources."aggregate-error-3.0.1"
+      sources."aggregate-error-3.1.0"
       sources."ansi-styles-3.2.1"
       sources."arr-diff-4.0.0"
       sources."arr-flatten-1.1.0"
@@ -57184,7 +61923,7 @@ in
       sources."concat-map-0.0.1"
       sources."copy-descriptor-0.1.1"
       sources."cp-file-7.0.0"
-      sources."cpy-8.1.0"
+      sources."cpy-8.1.1"
       sources."debug-2.6.9"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
@@ -57283,7 +62022,7 @@ in
       sources."isarray-1.0.0"
       sources."isobject-3.0.1"
       sources."js-tokens-4.0.0"
-      sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."junk-3.1.0"
       sources."kind-of-6.0.3"
       sources."lines-and-columns-1.1.6"
@@ -57348,7 +62087,7 @@ in
       sources."p-map-3.0.0"
       sources."p-timeout-3.2.0"
       sources."p-try-2.2.0"
-      sources."parse-json-5.0.0"
+      sources."parse-json-5.1.0"
       sources."pascalcase-0.1.1"
       sources."path-dirname-1.0.2"
       sources."path-exists-4.0.0"
@@ -57421,7 +62160,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."split-string-3.1.0"
       (sources."static-extend-0.1.2" // {
         dependencies = [
@@ -57497,7 +62236,7 @@ in
       sources."@cycle/run-3.4.0"
       sources."@cycle/time-0.10.1"
       sources."@types/cookiejar-2.1.1"
-      sources."@types/node-14.0.13"
+      sources."@types/node-14.11.1"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
@@ -57539,7 +62278,7 @@ in
       sources."event-emitter-0.3.5"
       (sources."ext-1.4.0" // {
         dependencies = [
-          sources."type-2.0.0"
+          sources."type-2.1.0"
         ];
       })
       sources."extend-3.0.2"
@@ -57560,7 +62299,7 @@ in
       sources."is-fullwidth-code-point-2.0.0"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash._baseiteratee-4.7.0"
       sources."lodash._basetostring-4.12.0"
       sources."lodash._baseuniq-4.6.0"
@@ -57622,7 +62361,7 @@ in
         ];
       })
       sources."which-1.3.1"
-      sources."xstream-11.12.0"
+      sources."xstream-11.13.0"
       sources."yallist-2.1.2"
     ];
     buildInputs = globalBuildInputs;
@@ -57699,7 +62438,7 @@ in
       sources."isarray-0.0.1"
       sources."isexe-2.0.0"
       sources."jsonfile-4.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -57707,7 +62446,7 @@ in
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
+      sources."onetime-5.1.2"
       sources."os-tmpdir-1.0.2"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
@@ -57716,7 +62455,7 @@ in
       sources."restore-cursor-3.1.0"
       sources."rimraf-2.7.1"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.3"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."semver-6.3.0"
@@ -57734,7 +62473,7 @@ in
           sources."ansi-regex-4.1.0"
         ];
       })
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."tar-2.2.2"
       (sources."tar-pack-3.4.1" // {
         dependencies = [
@@ -57773,10 +62512,10 @@ in
   create-react-native-app = nodeEnv.buildNodePackage {
     name = "create-react-native-app";
     packageName = "create-react-native-app";
-    version = "3.4.0";
+    version = "3.5.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/create-react-native-app/-/create-react-native-app-3.4.0.tgz";
-      sha512 = "3a1QgXSl9sCpfgDCHX12ydRQHYMoAd6nYL1rRupeWglbj3YWEWui/unjJBFgpyQPwKvS8w4Hon871mSCcXtGOQ==";
+      url = "https://registry.npmjs.org/create-react-native-app/-/create-react-native-app-3.5.1.tgz";
+      sha512 = "TeaEDgfOSJ3cVilXKeIG2590IjjnSWPvhUUE6xGl3Aqys9O2JQNDyVbC1stnqlbyUgxm8KCOP0piLOk+MXUlZA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -57820,7 +62559,7 @@ in
     };
     dependencies = [
       sources."abstract-random-access-1.1.2"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."ansi-align-2.0.0"
       sources."ansi-diff-1.1.1"
       sources."ansi-regex-3.0.0"
@@ -57847,7 +62586,7 @@ in
       sources."atob-2.1.2"
       sources."atomic-batcher-1.0.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -57924,7 +62663,7 @@ in
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
       sources."concat-stream-1.6.2"
-      sources."configstore-3.1.2"
+      sources."configstore-3.1.5"
       sources."connections-1.4.2"
       sources."content-types-0.1.0"
       sources."copy-descriptor-0.1.1"
@@ -57952,7 +62691,7 @@ in
       sources."dat-secret-storage-4.0.1"
       sources."dat-storage-1.1.1"
       sources."dat-swarm-defaults-1.0.2"
-      sources."debug-4.2.0"
+      sources."debug-4.3.0"
       sources."decode-uri-component-0.2.0"
       sources."decompress-response-4.2.1"
       sources."deep-equal-0.2.2"
@@ -57983,7 +62722,7 @@ in
       sources."dns-packet-4.2.0"
       sources."dns-socket-3.0.0"
       sources."dom-walk-0.1.2"
-      sources."dot-prop-4.2.0"
+      sources."dot-prop-4.2.1"
       sources."duplexer3-0.1.4"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
@@ -58027,9 +62766,9 @@ in
       sources."fast-bitfield-1.2.2"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
-      (sources."fd-lock-1.0.2" // {
+      (sources."fd-lock-1.1.1" // {
         dependencies = [
-          sources."napi-macros-1.8.2"
+          sources."node-gyp-build-4.2.3"
         ];
       })
       sources."fd-read-stream-1.1.0"
@@ -58055,7 +62794,7 @@ in
       sources."got-6.7.1"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-flag-3.0.0"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
@@ -58174,7 +62913,7 @@ in
       sources."multicast-dns-7.2.2"
       sources."multistream-2.1.1"
       sources."mute-stream-0.0.8"
-      sources."mutexify-1.3.0"
+      sources."mutexify-1.3.1"
       sources."nan-2.14.1"
       sources."nanoassert-1.1.0"
       sources."nanobus-4.4.0"
@@ -58284,7 +63023,7 @@ in
           sources."varint-5.0.0"
         ];
       })
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."simple-get-3.1.0"
       sources."simple-sha1-2.1.2"
       sources."siphash24-1.1.1"
@@ -58322,11 +63061,11 @@ in
       sources."sodium-javascript-0.5.6"
       (sources."sodium-native-2.4.9" // {
         dependencies = [
-          sources."node-gyp-build-4.2.2"
+          sources."node-gyp-build-4.2.3"
         ];
       })
       sources."sodium-universal-2.0.0"
-      sources."sorted-array-functions-1.2.0"
+      sources."sorted-array-functions-1.3.0"
       sources."sorted-indexof-1.0.0"
       sources."source-map-0.5.7"
       sources."source-map-resolve-0.5.3"
@@ -58422,15 +63161,15 @@ in
       sources."untildify-3.0.3"
       sources."unzip-response-2.0.1"
       sources."update-notifier-2.5.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."url-parse-lax-1.0.0"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
       sources."utile-0.3.0"
-      (sources."utp-native-2.1.10" // {
+      (sources."utp-native-2.2.1" // {
         dependencies = [
-          sources."node-gyp-build-4.2.2"
+          sources."node-gyp-build-4.2.3"
           sources."readable-stream-3.6.0"
           sources."unordered-set-2.0.1"
         ];
@@ -58468,10 +63207,10 @@ in
   dhcp = nodeEnv.buildNodePackage {
     name = "dhcp";
     packageName = "dhcp";
-    version = "0.2.18";
+    version = "0.2.19";
     src = fetchurl {
-      url = "https://registry.npmjs.org/dhcp/-/dhcp-0.2.18.tgz";
-      sha512 = "VqsWI0zHgX+i4rDmqXqqDv3T++z21osaOencXrMVwlF8P75tKlEnZ72WlONNE1UAxtAvlPIG2zmGMoa7guqDyw==";
+      url = "https://registry.npmjs.org/dhcp/-/dhcp-0.2.19.tgz";
+      sha512 = "RQhzFYjO955zR6YUqP2NbaE6owt9sq33ACWydyKS0v7Tec71Gf2+ewNLyE91UqCtw3wmQhTAYDsWdrqzsxVNig==";
     };
     dependencies = [
       sources."minimist-1.2.5"
@@ -58486,146 +63225,37 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
-  dnschain = nodeEnv.buildNodePackage {
-    name = "dnschain";
-    packageName = "dnschain";
-    version = "0.5.3";
+  diagnostic-languageserver = nodeEnv.buildNodePackage {
+    name = "diagnostic-languageserver";
+    packageName = "diagnostic-languageserver";
+    version = "1.7.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/dnschain/-/dnschain-0.5.3.tgz";
-      sha1 = "9b21d9ac5e203295f372ac37df470e9f0854c470";
+      url = "https://registry.npmjs.org/diagnostic-languageserver/-/diagnostic-languageserver-1.7.1.tgz";
+      sha512 = "iq4RE35kISxPucmRfZhpIJr9xWi2EOGraD4rX0/5Tk3dIUbsLHeUzX5eVQeVL7Kw4QiBsbMO4W2TgV18VyiUYA==";
     };
     dependencies = [
-      sources."accepts-1.2.13"
-      sources."assert-plus-1.0.0"
-      sources."async-0.9.2"
-      sources."better-curry-1.6.0"
-      sources."binaryheap-0.0.3"
-      sources."bindings-1.5.0"
-      sources."bluebird-2.9.9"
-      sources."bottleneck-1.5.3"
-      sources."buffercursor-0.0.12"
-      sources."colors-0.6.2"
-      sources."combined-stream-0.0.7"
-      sources."component-emitter-1.1.2"
-      sources."content-disposition-0.5.0"
-      sources."cookie-0.1.2"
-      sources."cookie-signature-1.0.5"
-      sources."cookiejar-2.0.1"
-      sources."core-util-is-1.0.2"
-      sources."crc-3.2.1"
-      sources."cycle-1.0.3"
-      sources."debug-2.1.3"
-      sources."delayed-stream-0.0.5"
-      sources."depd-1.0.1"
-      sources."destroy-1.0.3"
-      sources."duplexer-0.1.1"
-      sources."ee-first-1.1.0"
-      sources."es5class-2.3.1"
-      sources."escape-html-1.0.1"
-      sources."etag-1.5.1"
-      sources."event-stream-3.2.2"
-      sources."eventemitter3-0.1.6"
-      sources."express-4.11.2"
-      sources."extend-1.2.1"
-      sources."extsprintf-1.4.0"
-      sources."eyes-0.1.8"
-      sources."faye-websocket-0.11.3"
-      sources."file-uri-to-path-1.0.0"
-      sources."finalhandler-0.3.3"
-      sources."form-data-0.1.3"
-      sources."formidable-1.0.14"
-      sources."forwarded-0.1.2"
-      sources."fresh-0.2.4"
-      sources."from-0.1.7"
-      sources."hiredis-0.4.1"
-      sources."http-parser-js-0.5.2"
-      sources."inherits-2.0.4"
-      sources."ini-1.3.5"
-      sources."ipaddr.js-1.0.5"
-      sources."isarray-0.0.1"
-      (sources."json-rpc2-0.8.1" // {
-        dependencies = [
-          sources."debug-1.0.5"
-          sources."lodash-2.4.2"
-          sources."ms-2.0.0"
-        ];
-      })
-      sources."jsonparse-0.0.6"
-      sources."lodash-3.1.0"
-      sources."map-stream-0.1.0"
-      sources."media-typer-0.3.0"
-      sources."merge-descriptors-0.0.2"
-      sources."methods-1.1.2"
-      sources."mime-1.2.11"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
-      sources."minimist-0.0.10"
-      sources."ms-0.7.0"
-      sources."nan-2.14.1"
-      (sources."native-dns-git+https://github.com/okTurtles/node-dns.git#08433ec98f517eed3c6d5e47bdf62603539cd402" // {
-        dependencies = [
-          sources."native-dns-packet-git+https://github.com/okTurtles/native-dns-packet.git#8bf2714c318cfe7d31bca2006385882ccbf503e4"
-        ];
-      })
-      (sources."native-dns-cache-git+https://github.com/okTurtles/native-dns-cache.git#8714196bb9223cc9a4064a4fddf9e82ec50b7d4d" // {
-        dependencies = [
-          sources."native-dns-packet-git+https://github.com/okTurtles/native-dns-packet.git#307e77a47ebba57a5ae9118a284e916e5ebb305a"
-        ];
-      })
-      sources."native-dns-packet-0.1.1"
-      sources."nconf-0.7.1"
-      sources."negotiator-0.5.3"
-      sources."on-finished-2.2.1"
-      sources."optimist-0.6.1"
-      sources."parseurl-1.3.3"
-      sources."path-to-regexp-0.1.3"
-      sources."pause-stream-0.0.11"
-      sources."pkginfo-0.3.1"
-      sources."properties-1.2.1"
-      sources."proxy-addr-1.0.10"
-      sources."qs-2.3.3"
-      sources."range-parser-1.0.3"
-      sources."readable-stream-1.0.27-1"
-      sources."redis-0.12.1"
-      sources."reduce-component-1.0.1"
-      sources."safe-buffer-5.2.1"
-      sources."send-0.11.1"
-      sources."serve-static-1.8.1"
-      sources."split-0.3.3"
-      sources."stack-trace-0.0.10"
-      sources."stream-combiner-0.0.4"
-      sources."string-2.0.1"
-      sources."string_decoder-0.10.31"
-      (sources."superagent-0.21.0" // {
-        dependencies = [
-          sources."methods-1.0.1"
-          sources."qs-1.2.0"
-        ];
-      })
-      sources."through-2.3.8"
-      (sources."type-is-1.5.7" // {
-        dependencies = [
-          sources."mime-db-1.12.0"
-          sources."mime-types-2.0.14"
-        ];
-      })
-      sources."utils-merge-1.0.0"
-      sources."vary-1.0.1"
-      sources."verror-1.10.0"
-      sources."websocket-driver-0.7.4"
-      sources."websocket-extensions-0.1.4"
-      (sources."winston-0.8.0" // {
-        dependencies = [
-          sources."async-0.2.10"
-        ];
-      })
-      sources."wordwrap-0.0.3"
+      sources."commander-5.1.0"
+      sources."find-up-4.1.0"
+      sources."locate-path-5.0.0"
+      sources."lodash-4.17.20"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-try-2.2.0"
+      sources."path-exists-4.0.0"
+      sources."rxjs-6.6.3"
+      sources."tslib-1.13.0"
+      sources."vscode-jsonrpc-5.0.1"
+      sources."vscode-languageserver-6.1.1"
+      sources."vscode-languageserver-protocol-3.15.3"
+      sources."vscode-languageserver-textdocument-1.0.1"
+      sources."vscode-languageserver-types-3.15.1"
+      sources."vscode-uri-2.1.2"
     ];
     buildInputs = globalBuildInputs;
     meta = {
-      description = "A blockchain-based DNS + HTTPS server that fixes HTTPS security, and more!";
-      homepage = https://github.com/okTurtles/dnschain;
-      license = "MPL-2.0";
+      description = "diagnostic language server";
+      homepage = "https://github.com/iamcco/diagnostic-languageserver#readme";
+      license = "MIT";
     };
     production = true;
     bypassCache = true;
@@ -58634,26 +63264,17 @@ in
   dockerfile-language-server-nodejs = nodeEnv.buildNodePackage {
     name = "dockerfile-language-server-nodejs";
     packageName = "dockerfile-language-server-nodejs";
-    version = "0.0.24";
+    version = "0.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/dockerfile-language-server-nodejs/-/dockerfile-language-server-nodejs-0.0.24.tgz";
-      sha512 = "tG0cE6yIyj80eKHMbDBMNPHc1l40GW8v7b8jeDRs0Jv42boG0s6DEsM/eDFQw92mwAtBry07mB1tM+jSwqGzJw==";
+      url = "https://registry.npmjs.org/dockerfile-language-server-nodejs/-/dockerfile-language-server-nodejs-0.1.1.tgz";
+      sha512 = "oGWWKH7UzTulQDqvbONC4cGw8Zw43PnBXN2r3msXacV61n9YnrnbnqIJavl5zCrKEPLcu30rogMkNmrRBNNfJQ==";
     };
     dependencies = [
-      sources."dockerfile-ast-0.0.25"
-      (sources."dockerfile-language-service-0.0.12" // {
+      sources."dockerfile-ast-0.0.27"
+      sources."dockerfile-language-service-0.1.0"
+      (sources."dockerfile-utils-0.1.0" // {
         dependencies = [
-          (sources."dockerfile-utils-0.0.16" // {
-            dependencies = [
-              sources."vscode-languageserver-types-3.6.0"
-            ];
-          })
-        ];
-      })
-      (sources."dockerfile-utils-0.0.11" // {
-        dependencies = [
-          sources."dockerfile-ast-0.0.12"
-          sources."vscode-languageserver-types-3.6.0"
+          sources."dockerfile-ast-0.0.28"
         ];
       })
       sources."vscode-jsonrpc-5.0.1"
@@ -58674,23 +63295,24 @@ in
   elasticdump = nodeEnv.buildNodePackage {
     name = "elasticdump";
     packageName = "elasticdump";
-    version = "6.28.4";
+    version = "6.33.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.28.4.tgz";
-      sha512 = "KgKHW1PDfOOMzbldVhySG4sLFrllEFLvqNO/Is0F15sSho11lOjAb2MoKOB/bypJQ7DgrxR/O9zMVFxvEI6Vdg==";
+      url = "https://registry.npmjs.org/elasticdump/-/elasticdump-6.33.3.tgz";
+      sha512 = "m/zeWqH/JXZvR/7D2j0TjK2jyDf8SFeAi0IWW92+elx28krC66lvzhVgoNiG8PpCLuT6rZk1yLhYAjMVEB4YyA==";
     };
     dependencies = [
       sources."JSONStream-1.3.5"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       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.693.0"
+      sources."aws-sdk-2.756.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
+      sources."big.js-5.2.2"
       sources."buffer-4.9.2"
       sources."buffer-queue-1.0.0"
       sources."bytes-3.1.0"
@@ -58698,12 +63320,10 @@ in
       sources."combined-stream-1.0.8"
       sources."core-util-is-1.0.2"
       sources."dashdash-1.14.1"
-      sources."decimal.js-10.2.0"
-      sources."delay-4.3.0"
+      sources."delay-4.4.0"
       sources."delayed-stream-1.0.0"
       sources."ecc-jsbn-0.1.2"
-      sources."end-of-stream-1.4.4"
-      sources."eventemitter3-4.0.4"
+      sources."eventemitter3-4.0.7"
       sources."events-1.1.1"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
@@ -58713,8 +63333,9 @@ in
       sources."form-data-2.3.3"
       sources."getpass-0.1.7"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."http-signature-1.2.0"
+      sources."http-status-1.4.2"
       sources."ieee754-1.1.13"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
@@ -58733,20 +63354,18 @@ in
       sources."json-stringify-safe-5.0.1"
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lossless-json-1.0.4"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."minimist-1.2.5"
       sources."oauth-sign-0.9.0"
-      sources."once-1.4.0"
       sources."p-finally-1.0.0"
-      sources."p-queue-6.4.0"
+      sources."p-queue-6.6.1"
       sources."p-timeout-3.2.0"
       sources."performance-now-2.1.0"
       sources."process-nextick-args-2.0.1"
       sources."psl-1.8.0"
-      sources."pump-3.0.0"
       sources."punycode-1.3.2"
       sources."qs-6.5.2"
       sources."querystring-0.2.0"
@@ -58781,7 +63400,7 @@ in
       })
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      (sources."uri-js-4.2.2" // {
+      (sources."uri-js-4.4.0" // {
         dependencies = [
           sources."punycode-2.1.1"
         ];
@@ -58791,7 +63410,6 @@ in
       sources."uuid-3.3.2"
       sources."verror-1.10.0"
       sources."when-3.7.8"
-      sources."wrappy-1.0.2"
       sources."xml2js-0.4.19"
       sources."xmlbuilder-9.0.7"
     ];
@@ -58826,53 +63444,53 @@ in
   emoj = nodeEnv.buildNodePackage {
     name = "emoj";
     packageName = "emoj";
-    version = "3.0.1";
+    version = "3.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/emoj/-/emoj-3.0.1.tgz";
-      sha512 = "ZZfCT5/+XXomHI7O+frUJfKeqEnxXYq8SL45s0uR6KMRZpFlckzMlLpyBFKVUNd+VWjgVwmc9d/fe/YhU1N5Ng==";
+      url = "https://registry.npmjs.org/emoj/-/emoj-3.1.0.tgz";
+      sha512 = "ohjlUXM2v39rDqGIrlyxdcn9ql+4b+X1u90CXNWjYw5wX6C3wTHRfqFfeV8jajYD6Xc+ufn2X1QeZZWhRBXTlA==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/core-7.10.2"
-      sources."@babel/generator-7.10.2"
-      sources."@babel/helper-annotate-as-pure-7.10.1"
-      sources."@babel/helper-builder-react-jsx-7.10.1"
-      sources."@babel/helper-builder-react-jsx-experimental-7.10.1"
-      sources."@babel/helper-function-name-7.10.1"
-      sources."@babel/helper-get-function-arity-7.10.1"
-      sources."@babel/helper-member-expression-to-functions-7.10.1"
-      sources."@babel/helper-module-imports-7.10.1"
-      sources."@babel/helper-module-transforms-7.10.1"
-      sources."@babel/helper-optimise-call-expression-7.10.1"
-      sources."@babel/helper-plugin-utils-7.10.1"
-      sources."@babel/helper-replace-supers-7.10.1"
-      sources."@babel/helper-simple-access-7.10.1"
-      sources."@babel/helper-split-export-declaration-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      sources."@babel/helpers-7.10.1"
-      sources."@babel/highlight-7.10.1"
-      sources."@babel/parser-7.10.2"
-      sources."@babel/plugin-proposal-object-rest-spread-7.10.1"
-      sources."@babel/plugin-syntax-jsx-7.10.1"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/core-7.11.6"
+      sources."@babel/generator-7.11.6"
+      sources."@babel/helper-annotate-as-pure-7.10.4"
+      sources."@babel/helper-builder-react-jsx-7.10.4"
+      sources."@babel/helper-builder-react-jsx-experimental-7.11.5"
+      sources."@babel/helper-function-name-7.10.4"
+      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-member-expression-to-functions-7.11.0"
+      sources."@babel/helper-module-imports-7.10.4"
+      sources."@babel/helper-module-transforms-7.11.0"
+      sources."@babel/helper-optimise-call-expression-7.10.4"
+      sources."@babel/helper-plugin-utils-7.10.4"
+      sources."@babel/helper-replace-supers-7.10.4"
+      sources."@babel/helper-simple-access-7.10.4"
+      sources."@babel/helper-split-export-declaration-7.11.0"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helpers-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.5"
+      sources."@babel/plugin-proposal-object-rest-spread-7.11.0"
+      sources."@babel/plugin-syntax-jsx-7.10.4"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
-      sources."@babel/plugin-transform-destructuring-7.10.1"
-      sources."@babel/plugin-transform-parameters-7.10.1"
-      sources."@babel/plugin-transform-react-jsx-7.10.1"
-      sources."@babel/template-7.10.1"
-      sources."@babel/traverse-7.10.1"
-      sources."@babel/types-7.10.2"
-      sources."@sindresorhus/is-2.1.1"
+      sources."@babel/plugin-transform-destructuring-7.10.4"
+      sources."@babel/plugin-transform-parameters-7.10.5"
+      sources."@babel/plugin-transform-react-jsx-7.10.4"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.5"
+      sources."@babel/types-7.11.5"
+      sources."@sindresorhus/is-3.1.2"
       sources."@szmarczak/http-timer-4.0.5"
       sources."@types/cacheable-request-6.0.1"
       sources."@types/color-name-1.1.1"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
       sources."@types/minimist-1.2.0"
-      sources."@types/node-14.0.13"
+      sources."@types/node-14.11.1"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/responselike-1.0.0"
       sources."@types/yoga-layout-1.9.2"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       (sources."ansi-escapes-4.3.1" // {
         dependencies = [
           sources."type-fest-0.11.0"
@@ -58881,51 +63499,62 @@ in
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."arch-2.1.2"
-      sources."arrify-2.0.1"
+      sources."arrify-1.0.1"
       sources."astral-regex-2.0.0"
+      sources."atomically-1.3.2"
       sources."auto-bind-4.0.0"
-      sources."cacheable-lookup-2.0.1"
+      sources."balanced-match-1.0.0"
+      sources."brace-expansion-1.1.11"
+      sources."cacheable-lookup-5.0.3"
       (sources."cacheable-request-7.0.1" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
         ];
       })
       sources."caller-callsite-2.0.0"
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."camelcase-5.3.1"
-      sources."camelcase-keys-6.2.2"
+      (sources."camelcase-keys-6.2.2" // {
+        dependencies = [
+          sources."quick-lru-4.0.1"
+        ];
+      })
       sources."chalk-2.4.2"
       sources."ci-info-2.0.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
       sources."cli-truncate-2.1.0"
       sources."clipboardy-2.3.0"
-      (sources."clone-response-1.0.2" // {
-        dependencies = [
-          sources."mimic-response-1.0.1"
-        ];
-      })
+      sources."clone-response-1.0.2"
+      sources."code-excerpt-3.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      (sources."conf-6.2.4" // {
+      sources."commondir-1.0.1"
+      sources."concat-map-0.0.1"
+      (sources."conf-7.1.2" // {
         dependencies = [
-          sources."semver-6.3.0"
+          sources."semver-7.3.2"
         ];
       })
       sources."convert-source-map-1.7.0"
+      sources."convert-to-spaces-1.0.2"
       sources."cross-spawn-6.0.5"
-      sources."debounce-fn-3.0.1"
-      sources."debug-4.2.0"
+      sources."debounce-fn-4.0.0"
+      sources."debug-4.3.0"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
           sources."map-obj-1.0.1"
         ];
       })
-      sources."decompress-response-5.0.0"
+      (sources."decompress-response-6.0.0" // {
+        dependencies = [
+          sources."mimic-response-3.1.0"
+        ];
+      })
       sources."defer-to-connect-2.0.0"
-      sources."dot-prop-5.2.0"
-      sources."duplexer3-0.1.4"
+      sources."dot-prop-5.3.0"
       sources."emoji-regex-8.0.0"
       sources."emojilib-2.4.0"
       sources."end-of-stream-1.4.4"
@@ -58935,81 +63564,66 @@ in
       sources."execa-1.0.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
+      sources."find-cache-dir-3.3.1"
       sources."find-up-3.0.0"
+      sources."fs.realpath-1.0.0"
       sources."gensync-1.0.0-beta.1"
       sources."get-stream-4.1.0"
+      sources."glob-7.1.6"
       sources."globals-11.12.0"
-      (sources."got-10.7.0" // {
-        dependencies = [
-          sources."get-stream-5.1.0"
-        ];
-      })
+      sources."got-11.7.0"
       sources."hard-rejection-2.1.0"
       sources."has-flag-3.0.0"
       sources."hosted-git-info-2.8.8"
       sources."http-cache-semantics-4.1.0"
-      sources."import-jsx-3.1.0"
-      sources."imurmurhash-0.1.4"
+      sources."http2-wrapper-1.0.0-beta.5.2"
+      sources."import-jsx-4.0.0"
       sources."indent-string-4.0.0"
-      (sources."ink-2.7.1" // {
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      (sources."ink-3.0.6" // {
         dependencies = [
           sources."ansi-styles-4.2.1"
-          sources."chalk-3.0.0"
+          sources."chalk-4.1.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
-      (sources."ink-text-input-3.2.2" // {
+      (sources."ink-text-input-4.0.1" // {
         dependencies = [
           sources."ansi-styles-4.2.1"
-          sources."chalk-3.0.0"
+          sources."chalk-4.1.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
+          sources."type-fest-0.15.1"
         ];
       })
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
-      sources."is-docker-2.0.0"
+      sources."is-docker-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-obj-2.0.0"
       sources."is-plain-obj-1.1.0"
       sources."is-stream-1.1.0"
-      sources."is-typedarray-1.0.0"
       sources."is-wsl-2.2.0"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
       sources."json-buffer-3.0.1"
-      sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-traverse-0.4.1"
       sources."json-schema-typed-7.0.3"
       sources."json5-2.1.3"
-      sources."keyv-4.0.1"
+      sources."keyv-4.0.3"
       sources."kind-of-6.0.3"
       sources."lines-and-columns-1.1.6"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
-      sources."lodash.debounce-4.0.8"
+      sources."lodash-4.17.20"
       sources."lodash.throttle-4.1.1"
-      (sources."log-update-3.4.0" // {
-        dependencies = [
-          sources."ansi-escapes-3.2.0"
-          sources."ansi-regex-4.1.0"
-          sources."cli-cursor-2.1.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."mimic-fn-1.2.0"
-          sources."onetime-2.0.1"
-          sources."restore-cursor-2.0.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
-          sources."wrap-ansi-5.1.0"
-        ];
-      })
       sources."loose-envify-1.4.0"
       sources."lowercase-keys-2.0.0"
       (sources."make-dir-3.1.0" // {
@@ -59019,25 +63633,18 @@ in
       })
       sources."map-age-cleaner-0.1.3"
       sources."map-obj-4.1.0"
-      (sources."mem-6.1.0" // {
-        dependencies = [
-          sources."mimic-fn-3.0.0"
-        ];
-      })
-      (sources."meow-6.1.1" // {
+      sources."mem-6.1.1"
+      (sources."meow-7.1.1" // {
         dependencies = [
           sources."type-fest-0.13.1"
         ];
       })
-      sources."mimic-fn-2.1.0"
-      sources."mimic-response-2.1.0"
+      sources."mimic-fn-3.1.0"
+      sources."mimic-response-1.0.1"
       sources."min-indent-1.0.1"
+      sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      (sources."minimist-options-4.1.0" // {
-        dependencies = [
-          sources."arrify-1.0.1"
-        ];
-      })
+      sources."minimist-options-4.1.0"
       sources."ms-2.1.2"
       sources."nice-try-1.0.5"
       sources."normalize-package-data-2.5.0"
@@ -59045,25 +63652,38 @@ in
       sources."npm-run-path-2.0.2"
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
+      (sources."onetime-5.1.2" // {
+        dependencies = [
+          sources."mimic-fn-2.1.0"
+        ];
+      })
       sources."p-cancelable-2.0.0"
       sources."p-defer-1.0.0"
-      sources."p-event-4.2.0"
       sources."p-finally-1.0.0"
       sources."p-limit-2.3.0"
       sources."p-locate-3.0.0"
-      sources."p-timeout-3.2.0"
       sources."p-try-2.2.0"
-      sources."parse-json-5.0.0"
+      sources."parse-json-5.1.0"
+      sources."patch-console-1.0.0"
       sources."path-exists-3.0.0"
+      sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
       sources."path-parse-1.0.6"
+      (sources."pkg-dir-4.2.0" // {
+        dependencies = [
+          sources."find-up-4.1.0"
+          sources."locate-path-5.0.0"
+          sources."p-locate-4.1.0"
+          sources."path-exists-4.0.0"
+        ];
+      })
       sources."pkg-up-3.1.0"
       sources."prop-types-15.7.2"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
-      sources."quick-lru-4.0.1"
+      sources."quick-lru-5.1.1"
       sources."react-16.13.1"
+      sources."react-devtools-core-4.8.2"
       sources."react-is-16.13.1"
       sources."react-reconciler-0.24.0"
       (sources."read-pkg-5.2.0" // {
@@ -59082,14 +63702,17 @@ in
       })
       sources."redent-3.0.0"
       sources."resolve-1.17.0"
+      sources."resolve-alpn-1.0.0"
       sources."resolve-from-3.0.0"
       sources."responselike-2.0.0"
       sources."restore-cursor-3.1.0"
+      sources."rimraf-3.0.2"
       sources."safe-buffer-5.1.2"
       sources."scheduler-0.18.0"
       sources."semver-5.7.1"
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
+      sources."shell-quote-1.7.2"
       sources."signal-exit-3.0.3"
       sources."skin-tone-1.0.0"
       (sources."slice-ansi-3.0.0" // {
@@ -59103,7 +63726,12 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
+      (sources."stack-utils-2.0.2" // {
+        dependencies = [
+          sources."escape-string-regexp-2.0.0"
+        ];
+      })
       (sources."string-length-3.1.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -59117,12 +63745,10 @@ in
       sources."strip-indent-3.0.0"
       sources."supports-color-5.5.0"
       sources."to-fast-properties-2.0.0"
-      sources."to-readable-stream-2.1.0"
       sources."trim-newlines-3.0.0"
-      sources."type-fest-0.10.0"
-      sources."typedarray-to-buffer-3.1.5"
+      sources."type-fest-0.12.0"
       sources."unicode-emoji-modifier-base-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."validate-npm-package-license-3.0.4"
       sources."which-1.3.1"
       sources."widest-line-3.1.0"
@@ -59134,7 +63760,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."write-file-atomic-3.0.3"
+      sources."ws-7.3.1"
       sources."yargs-parser-18.1.3"
       sources."yoga-layout-prebuilt-1.9.6"
     ];
@@ -59165,6 +63791,1551 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  "epgstation-../../applications/video/epgstation" = nodeEnv.buildNodePackage {
+    name = "EPGStation";
+    packageName = "EPGStation";
+    version = "1.7.4";
+    src = ../../applications/video/epgstation;
+    dependencies = [
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@fluentui/date-time-utilities-7.8.1"
+      sources."@fluentui/dom-utilities-1.1.1"
+      sources."@fluentui/keyboard-key-0.2.12"
+      sources."@fluentui/react-7.139.0"
+      sources."@fluentui/react-focus-7.16.5"
+      sources."@fluentui/react-icons-0.3.4"
+      sources."@fluentui/react-window-provider-0.3.3"
+      sources."@fluentui/theme-0.3.2"
+      (sources."@gulp-sourcemaps/identity-map-1.0.2" // {
+        dependencies = [
+          sources."normalize-path-2.1.1"
+          sources."source-map-0.6.1"
+        ];
+      })
+      (sources."@gulp-sourcemaps/map-sources-1.0.0" // {
+        dependencies = [
+          sources."normalize-path-2.1.1"
+        ];
+      })
+      sources."@microsoft/load-themed-styles-1.10.97"
+      sources."@nodelib/fs.scandir-2.1.3"
+      sources."@nodelib/fs.stat-2.0.3"
+      sources."@nodelib/fs.walk-1.2.4"
+      sources."@npmcli/move-file-1.0.1"
+      sources."@sindresorhus/is-0.14.0"
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@types/basic-auth-1.1.3"
+      sources."@types/body-parser-1.19.0"
+      sources."@types/caseless-0.12.2"
+      sources."@types/chart.js-2.9.23"
+      sources."@types/connect-3.4.33"
+      sources."@types/engine.io-3.1.4"
+      sources."@types/express-4.17.7"
+      sources."@types/express-serve-static-core-4.17.12"
+      sources."@types/fancy-log-1.3.0"
+      sources."@types/glob-7.1.3"
+      sources."@types/hls.js-0.13.0"
+      sources."@types/js-yaml-3.12.5"
+      sources."@types/json-schema-7.0.6"
+      sources."@types/lodash-4.14.158"
+      sources."@types/material-design-lite-1.1.16"
+      sources."@types/mime-2.0.3"
+      sources."@types/minimatch-3.0.3"
+      sources."@types/minimist-1.2.0"
+      sources."@types/mithril-2.0.3"
+      sources."@types/mkdirp-1.0.1"
+      sources."@types/multer-1.4.3"
+      sources."@types/mysql-2.15.15"
+      sources."@types/node-14.0.26"
+      sources."@types/pg-7.14.4"
+      sources."@types/pg-types-1.11.5"
+      sources."@types/qs-6.9.5"
+      sources."@types/range-parser-1.2.3"
+      sources."@types/request-2.48.5"
+      sources."@types/serve-static-1.13.5"
+      sources."@types/socket.io-2.1.10"
+      sources."@types/socket.io-client-1.4.33"
+      sources."@types/sqlite3-3.1.6"
+      sources."@types/tough-cookie-4.0.0"
+      sources."@types/url-join-4.0.0"
+      sources."@uifabric/foundation-7.9.5"
+      sources."@uifabric/icons-7.5.5"
+      sources."@uifabric/merge-styles-7.19.1"
+      sources."@uifabric/react-hooks-7.13.4"
+      sources."@uifabric/set-version-7.0.23"
+      sources."@uifabric/styling-7.16.5"
+      sources."@uifabric/utilities-7.32.2"
+      sources."@webassemblyjs/ast-1.9.0"
+      sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
+      sources."@webassemblyjs/helper-api-error-1.9.0"
+      sources."@webassemblyjs/helper-buffer-1.9.0"
+      sources."@webassemblyjs/helper-code-frame-1.9.0"
+      sources."@webassemblyjs/helper-fsm-1.9.0"
+      sources."@webassemblyjs/helper-module-context-1.9.0"
+      sources."@webassemblyjs/helper-wasm-bytecode-1.9.0"
+      sources."@webassemblyjs/helper-wasm-section-1.9.0"
+      sources."@webassemblyjs/ieee754-1.9.0"
+      sources."@webassemblyjs/leb128-1.9.0"
+      sources."@webassemblyjs/utf8-1.9.0"
+      sources."@webassemblyjs/wasm-edit-1.9.0"
+      sources."@webassemblyjs/wasm-gen-1.9.0"
+      sources."@webassemblyjs/wasm-opt-1.9.0"
+      sources."@webassemblyjs/wasm-parser-1.9.0"
+      sources."@webassemblyjs/wast-parser-1.9.0"
+      sources."@webassemblyjs/wast-printer-1.9.0"
+      sources."@xtuc/ieee754-1.2.0"
+      sources."@xtuc/long-4.2.2"
+      sources."abbrev-1.1.1"
+      sources."accepts-1.3.7"
+      sources."acorn-5.7.4"
+      sources."after-0.8.2"
+      sources."aggregate-error-3.1.0"
+      sources."ajv-6.12.5"
+      sources."ajv-errors-1.0.1"
+      sources."ajv-keywords-3.5.2"
+      sources."ansi-colors-1.1.0"
+      sources."ansi-cyan-0.1.1"
+      sources."ansi-escapes-1.4.0"
+      sources."ansi-gray-0.1.1"
+      sources."ansi-red-0.1.1"
+      sources."ansi-regex-2.1.1"
+      sources."ansi-styles-3.2.1"
+      sources."ansi-wrap-0.1.0"
+      (sources."anymatch-2.0.0" // {
+        dependencies = [
+          (sources."braces-2.3.2" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          (sources."fill-range-4.0.0" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."micromatch-3.1.10"
+          sources."normalize-path-2.1.1"
+          sources."to-regex-range-2.1.1"
+        ];
+      })
+      sources."append-buffer-1.0.2"
+      sources."append-field-1.0.0"
+      sources."aproba-1.2.0"
+      sources."archy-1.0.0"
+      sources."are-we-there-yet-1.1.5"
+      sources."argparse-1.0.10"
+      sources."aribts-2.1.12"
+      sources."arr-diff-4.0.0"
+      sources."arr-filter-1.1.2"
+      sources."arr-flatten-1.1.0"
+      sources."arr-map-2.0.2"
+      sources."arr-union-3.1.0"
+      sources."array-each-1.0.1"
+      sources."array-flatten-1.1.1"
+      (sources."array-initial-1.1.0" // {
+        dependencies = [
+          sources."is-number-4.0.0"
+        ];
+      })
+      (sources."array-last-1.3.0" // {
+        dependencies = [
+          sources."is-number-4.0.0"
+        ];
+      })
+      sources."array-slice-1.1.0"
+      (sources."array-sort-1.0.0" // {
+        dependencies = [
+          sources."kind-of-5.1.0"
+        ];
+      })
+      sources."array-union-2.1.0"
+      sources."array-unique-0.3.2"
+      sources."arraybuffer.slice-0.0.7"
+      sources."asn1-0.2.4"
+      (sources."asn1.js-5.4.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (sources."assert-1.5.0" // {
+        dependencies = [
+          sources."inherits-2.0.1"
+          sources."util-0.10.3"
+        ];
+      })
+      sources."assert-plus-1.0.0"
+      sources."assign-symbols-1.0.0"
+      sources."async-done-1.3.2"
+      sources."async-each-1.0.3"
+      sources."async-limiter-1.0.1"
+      sources."async-settle-1.0.0"
+      sources."asynckit-0.4.0"
+      sources."at-least-node-1.0.0"
+      sources."atob-2.1.2"
+      sources."aws-sign2-0.7.0"
+      sources."aws4-1.10.1"
+      sources."b24.js-1.0.3"
+      sources."babel-polyfill-6.23.0"
+      (sources."babel-runtime-6.26.0" // {
+        dependencies = [
+          sources."regenerator-runtime-0.11.1"
+        ];
+      })
+      sources."bach-1.2.0"
+      sources."backo2-1.0.2"
+      sources."balanced-match-1.0.0"
+      (sources."base-0.11.2" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+        ];
+      })
+      sources."base64-arraybuffer-0.1.5"
+      sources."base64-js-1.3.1"
+      sources."base64id-2.0.0"
+      sources."basic-auth-2.0.1"
+      sources."bcrypt-pbkdf-1.0.2"
+      sources."better-assert-1.0.2"
+      sources."big.js-5.2.2"
+      sources."bignumber.js-9.0.0"
+      sources."binary-extensions-1.13.1"
+      sources."bindings-1.5.0"
+      sources."blob-0.0.5"
+      sources."block-stream-0.0.9"
+      sources."bluebird-3.7.2"
+      sources."bn.js-5.1.3"
+      sources."body-parser-1.19.0"
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."brorand-1.1.0"
+      sources."browserify-aes-1.2.0"
+      sources."browserify-cipher-1.0.1"
+      sources."browserify-des-1.0.2"
+      (sources."browserify-rsa-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (sources."browserify-sign-4.2.1" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+          sources."safe-buffer-5.2.1"
+        ];
+      })
+      sources."browserify-zlib-0.2.0"
+      sources."buffer-4.9.2"
+      sources."buffer-equal-1.0.0"
+      sources."buffer-from-1.1.1"
+      sources."buffer-writer-2.0.0"
+      sources."buffer-xor-1.0.3"
+      sources."builtin-modules-1.1.1"
+      sources."builtin-status-codes-3.0.0"
+      (sources."busboy-0.2.14" // {
+        dependencies = [
+          sources."isarray-0.0.1"
+          sources."readable-stream-1.1.14"
+          sources."string_decoder-0.10.31"
+        ];
+      })
+      sources."bytes-3.1.0"
+      (sources."cacache-15.0.5" // {
+        dependencies = [
+          sources."p-map-4.0.0"
+        ];
+      })
+      sources."cache-base-1.0.1"
+      (sources."cacheable-request-6.1.0" // {
+        dependencies = [
+          sources."get-stream-5.2.0"
+          sources."lowercase-keys-2.0.0"
+          sources."pump-3.0.0"
+        ];
+      })
+      sources."callsite-1.0.0"
+      sources."camelcase-3.0.0"
+      sources."caseless-0.12.0"
+      sources."chalk-2.4.2"
+      sources."chardet-0.4.2"
+      sources."chart.js-2.9.3"
+      sources."chartjs-color-2.4.1"
+      sources."chartjs-color-string-0.6.0"
+      (sources."chokidar-2.1.8" // {
+        dependencies = [
+          sources."braces-2.3.2"
+          sources."extend-shallow-2.0.1"
+          sources."fill-range-4.0.0"
+          (sources."glob-parent-3.1.0" // {
+            dependencies = [
+              sources."is-glob-3.1.0"
+            ];
+          })
+          sources."is-number-3.0.0"
+          sources."kind-of-3.2.2"
+          sources."to-regex-range-2.1.1"
+        ];
+      })
+      sources."chownr-2.0.0"
+      sources."chrome-trace-event-1.0.2"
+      sources."cipher-base-1.0.4"
+      (sources."class-utils-0.3.6" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      (sources."clean-css-4.2.3" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."clean-stack-2.2.0"
+      sources."cli-cursor-2.1.0"
+      sources."cli-width-2.2.1"
+      sources."cliui-3.2.0"
+      sources."clone-2.1.2"
+      sources."clone-buffer-1.0.0"
+      sources."clone-response-1.0.2"
+      sources."clone-stats-1.0.0"
+      sources."cloneable-readable-1.1.3"
+      sources."code-point-at-1.1.0"
+      sources."collection-map-1.0.0"
+      sources."collection-visit-1.0.0"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."color-support-1.1.3"
+      sources."colors-1.4.0"
+      sources."combined-stream-1.0.8"
+      sources."commander-2.20.3"
+      sources."commondir-1.0.1"
+      sources."component-bind-1.0.0"
+      sources."component-emitter-1.3.0"
+      sources."component-inherit-0.0.3"
+      sources."concat-map-0.0.1"
+      sources."concat-stream-1.6.2"
+      (sources."concat-with-sourcemaps-1.1.0" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."console-browserify-1.2.0"
+      sources."console-control-strings-1.1.0"
+      sources."constants-browserify-1.0.0"
+      sources."content-disposition-0.5.3"
+      sources."content-type-1.0.4"
+      sources."convert-source-map-1.7.0"
+      sources."cookie-0.4.0"
+      sources."cookie-signature-1.0.6"
+      (sources."copy-concurrently-1.0.5" // {
+        dependencies = [
+          sources."mkdirp-0.5.5"
+          sources."rimraf-2.7.1"
+        ];
+      })
+      sources."copy-descriptor-0.1.1"
+      sources."copy-props-2.0.4"
+      sources."core-js-2.6.11"
+      sources."core-util-is-1.0.2"
+      (sources."crc-3.8.0" // {
+        dependencies = [
+          sources."buffer-5.6.0"
+        ];
+      })
+      (sources."create-ecdh-4.0.4" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."create-hash-1.2.0"
+      sources."create-hmac-1.1.7"
+      sources."crypto-browserify-3.12.0"
+      (sources."css-2.2.4" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."css-ripple-effect-1.0.5"
+      sources."cyclist-1.0.1"
+      sources."d-1.0.1"
+      sources."dashdash-1.14.1"
+      sources."date-format-3.0.0"
+      sources."debug-2.6.9"
+      (sources."debug-fabulous-1.1.0" // {
+        dependencies = [
+          sources."debug-3.2.6"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."decamelize-1.2.0"
+      sources."decode-uri-component-0.2.0"
+      sources."decompress-response-3.3.0"
+      sources."deep-extend-0.6.0"
+      (sources."default-compare-1.0.0" // {
+        dependencies = [
+          sources."kind-of-5.1.0"
+        ];
+      })
+      sources."default-resolution-2.0.0"
+      sources."defer-to-connect-1.1.3"
+      sources."define-properties-1.1.3"
+      sources."define-property-2.0.2"
+      sources."del-5.1.0"
+      sources."delayed-stream-1.0.0"
+      sources."delegates-1.0.0"
+      sources."depd-1.1.2"
+      sources."des.js-1.0.1"
+      sources."destroy-1.0.4"
+      sources."detect-file-1.0.0"
+      sources."detect-libc-1.0.3"
+      sources."detect-newline-2.1.0"
+      (sources."dicer-0.2.5" // {
+        dependencies = [
+          sources."isarray-0.0.1"
+          sources."readable-stream-1.1.14"
+          sources."string_decoder-0.10.31"
+        ];
+      })
+      sources."diff-4.0.2"
+      (sources."diffie-hellman-5.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."difunc-0.0.4"
+      sources."dir-glob-3.0.1"
+      sources."diskusage-1.1.3"
+      sources."domain-browser-1.2.0"
+      sources."dotenv-8.2.0"
+      sources."duplexer3-0.1.4"
+      sources."duplexify-3.7.1"
+      sources."each-props-1.3.2"
+      sources."ecc-jsbn-0.1.2"
+      sources."ee-first-1.1.1"
+      (sources."elliptic-6.5.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."emojis-list-3.0.0"
+      sources."encodeurl-1.0.2"
+      (sources."encoding-0.1.13" // {
+        dependencies = [
+          sources."iconv-lite-0.6.2"
+        ];
+      })
+      sources."end-of-stream-1.4.4"
+      (sources."engine.io-3.4.2" // {
+        dependencies = [
+          sources."cookie-0.3.1"
+          sources."debug-4.1.1"
+          sources."ms-2.1.2"
+        ];
+      })
+      (sources."engine.io-client-3.4.3" // {
+        dependencies = [
+          sources."debug-4.1.1"
+          sources."ms-2.1.2"
+          sources."ws-6.1.4"
+        ];
+      })
+      sources."engine.io-parser-2.2.0"
+      sources."enhanced-resolve-4.3.0"
+      sources."errno-0.1.7"
+      sources."error-ex-1.3.2"
+      sources."es-abstract-1.18.0-next.0"
+      sources."es-to-primitive-1.2.1"
+      sources."es5-ext-0.10.53"
+      sources."es6-iterator-2.0.3"
+      sources."es6-promise-4.2.8"
+      sources."es6-symbol-3.1.3"
+      sources."es6-weak-map-2.0.3"
+      sources."escape-html-1.0.3"
+      sources."escape-string-regexp-1.0.5"
+      sources."eslint-scope-4.0.3"
+      sources."esprima-4.0.1"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      sources."estraverse-4.3.0"
+      sources."etag-1.8.1"
+      sources."event-emitter-0.3.5"
+      sources."eventemitter3-2.0.3"
+      sources."events-3.2.0"
+      sources."evp_bytestokey-1.0.3"
+      (sources."expand-brackets-2.1.4" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      sources."expand-tilde-2.0.2"
+      sources."express-4.17.1"
+      sources."express-normalize-query-params-middleware-0.5.1"
+      sources."express-openapi-7.0.0"
+      (sources."ext-1.4.0" // {
+        dependencies = [
+          sources."type-2.1.0"
+        ];
+      })
+      sources."extend-3.0.2"
+      (sources."extend-shallow-3.0.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      sources."external-editor-2.2.0"
+      (sources."extglob-2.0.4" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."extsprintf-1.3.0"
+      sources."fancy-log-1.3.3"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-glob-3.2.4"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-levenshtein-1.1.4"
+      sources."fastq-1.8.0"
+      sources."figgy-pudding-3.5.2"
+      sources."figures-2.0.0"
+      sources."file-uri-to-path-1.0.0"
+      sources."fill-range-7.0.1"
+      sources."finalhandler-1.1.2"
+      sources."find-cache-dir-3.3.1"
+      sources."find-up-1.1.2"
+      (sources."findup-sync-3.0.0" // {
+        dependencies = [
+          sources."braces-2.3.2"
+          sources."extend-shallow-2.0.1"
+          sources."fill-range-4.0.0"
+          sources."is-number-3.0.0"
+          sources."kind-of-3.2.2"
+          sources."micromatch-3.1.10"
+          sources."to-regex-range-2.1.1"
+        ];
+      })
+      sources."fined-1.2.0"
+      sources."flagged-respawn-1.0.1"
+      sources."flatted-2.0.2"
+      sources."flush-write-stream-1.1.1"
+      sources."for-in-1.0.2"
+      sources."for-own-1.0.0"
+      sources."forever-agent-0.6.1"
+      sources."form-data-2.5.1"
+      sources."forwarded-0.1.2"
+      sources."fragment-cache-0.2.1"
+      sources."fresh-0.5.2"
+      sources."from2-2.3.0"
+      sources."fs-extra-9.0.1"
+      sources."fs-minipass-2.1.0"
+      sources."fs-mkdirp-stream-1.0.0"
+      sources."fs-routes-7.0.1"
+      sources."fs-write-stream-atomic-1.0.10"
+      sources."fs.realpath-1.0.0"
+      sources."fsevents-1.2.13"
+      (sources."fstream-1.0.12" // {
+        dependencies = [
+          sources."mkdirp-0.5.5"
+          sources."rimraf-2.7.1"
+        ];
+      })
+      sources."function-bind-1.1.1"
+      sources."gauge-2.7.4"
+      sources."get-caller-file-1.0.3"
+      (sources."get-stream-4.1.0" // {
+        dependencies = [
+          sources."pump-3.0.0"
+        ];
+      })
+      sources."get-value-2.0.6"
+      sources."getpass-0.1.7"
+      sources."glob-7.1.6"
+      sources."glob-parent-5.1.1"
+      (sources."glob-stream-6.1.0" // {
+        dependencies = [
+          sources."glob-parent-3.1.0"
+          sources."is-glob-3.1.0"
+        ];
+      })
+      sources."glob-watcher-5.0.5"
+      sources."global-modules-1.0.0"
+      sources."global-prefix-1.0.2"
+      sources."globby-10.0.2"
+      sources."glogg-1.0.2"
+      sources."got-9.6.0"
+      sources."graceful-fs-4.2.4"
+      sources."gulp-4.0.2"
+      (sources."gulp-clean-css-4.3.0" // {
+        dependencies = [
+          sources."through2-3.0.1"
+        ];
+      })
+      sources."gulp-cli-2.3.0"
+      sources."gulp-concat-2.6.1"
+      (sources."gulp-dart-sass-1.0.2" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."strip-ansi-4.0.0"
+        ];
+      })
+      (sources."gulp-plumber-1.2.1" // {
+        dependencies = [
+          sources."ansi-styles-2.2.1"
+          sources."arr-diff-1.1.0"
+          sources."arr-union-2.1.0"
+          sources."array-slice-0.2.3"
+          sources."chalk-1.1.3"
+          sources."extend-shallow-1.1.4"
+          sources."kind-of-1.1.0"
+          sources."plugin-error-0.1.2"
+          sources."supports-color-2.0.0"
+        ];
+      })
+      (sources."gulp-sourcemaps-2.6.5" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."gulp-tslint-8.1.4"
+      (sources."gulp-typescript-5.0.1" // {
+        dependencies = [
+          sources."ansi-colors-3.2.4"
+          sources."source-map-0.7.3"
+          sources."through2-3.0.2"
+        ];
+      })
+      sources."gulplog-1.0.0"
+      sources."har-schema-2.0.0"
+      sources."har-validator-5.1.5"
+      sources."has-1.0.3"
+      sources."has-ansi-2.0.0"
+      (sources."has-binary2-1.0.3" // {
+        dependencies = [
+          sources."isarray-2.0.1"
+        ];
+      })
+      sources."has-cors-1.1.0"
+      sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.1"
+      sources."has-unicode-2.0.1"
+      sources."has-value-1.0.0"
+      (sources."has-values-1.0.0" // {
+        dependencies = [
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."kind-of-4.0.0"
+        ];
+      })
+      (sources."hash-base-3.1.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+          sources."safe-buffer-5.2.1"
+        ];
+      })
+      sources."hash.js-1.1.7"
+      (sources."hls-b24.js-0.12.3" // {
+        dependencies = [
+          sources."eventemitter3-3.1.0"
+        ];
+      })
+      sources."hmac-drbg-1.0.1"
+      sources."homedir-polyfill-1.0.3"
+      sources."hosted-git-info-2.8.8"
+      sources."http-cache-semantics-4.1.0"
+      (sources."http-errors-1.7.2" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."http-signature-1.2.0"
+      sources."https-browserify-1.0.0"
+      sources."iconv-lite-0.4.24"
+      sources."ieee754-1.1.13"
+      sources."iferr-0.1.5"
+      sources."ignore-5.1.8"
+      sources."ignore-walk-3.0.3"
+      sources."imurmurhash-0.1.4"
+      sources."indent-string-4.0.0"
+      sources."indexof-0.0.1"
+      sources."infer-owner-1.0.4"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."ini-1.3.5"
+      (sources."inquirer-3.0.6" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."ansi-styles-2.2.1"
+          sources."chalk-1.1.3"
+          sources."is-fullwidth-code-point-2.0.0"
+          (sources."string-width-2.1.1" // {
+            dependencies = [
+              sources."strip-ansi-4.0.0"
+            ];
+          })
+          sources."supports-color-2.0.0"
+        ];
+      })
+      sources."interpret-1.4.0"
+      sources."invert-kv-1.0.0"
+      sources."ip-1.1.5"
+      sources."ipaddr.js-1.9.1"
+      sources."is-absolute-1.0.0"
+      sources."is-accessor-descriptor-1.0.0"
+      sources."is-arrayish-0.2.1"
+      sources."is-binary-path-1.0.1"
+      sources."is-buffer-1.1.6"
+      sources."is-callable-1.2.1"
+      sources."is-data-descriptor-1.0.0"
+      sources."is-date-object-1.0.2"
+      sources."is-descriptor-1.0.2"
+      sources."is-dir-1.0.0"
+      sources."is-extendable-0.1.1"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-negated-glob-1.0.0"
+      sources."is-negative-zero-2.0.0"
+      sources."is-number-7.0.0"
+      sources."is-path-cwd-2.2.0"
+      sources."is-path-inside-3.0.2"
+      sources."is-plain-object-2.0.4"
+      sources."is-promise-2.2.2"
+      sources."is-regex-1.1.1"
+      sources."is-relative-1.0.0"
+      sources."is-stream-1.1.0"
+      sources."is-symbol-1.0.3"
+      sources."is-typedarray-1.0.0"
+      sources."is-unc-path-1.0.0"
+      sources."is-utf8-0.2.1"
+      sources."is-valid-glob-1.0.0"
+      sources."is-windows-1.0.2"
+      sources."is-wsl-1.1.0"
+      sources."isarray-1.0.0"
+      sources."isexe-2.0.0"
+      sources."isobject-3.0.1"
+      sources."isstream-0.1.2"
+      (sources."jest-worker-26.3.0" // {
+        dependencies = [
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.0"
+      sources."jsbn-0.1.1"
+      sources."json-buffer-3.0.0"
+      sources."json-parse-better-errors-1.0.2"
+      sources."json-schema-0.2.3"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stable-stringify-without-jsonify-1.0.1"
+      sources."json-stringify-safe-5.0.1"
+      sources."json5-1.0.1"
+      sources."jsonfile-6.0.1"
+      sources."jsprim-1.4.1"
+      sources."just-debounce-1.0.0"
+      sources."keyv-3.1.0"
+      sources."kind-of-6.0.3"
+      sources."last-run-1.1.1"
+      sources."latest-version-5.1.0"
+      sources."lazystream-1.0.0"
+      sources."lcid-1.0.0"
+      sources."lead-1.0.0"
+      sources."liftoff-3.1.0"
+      sources."load-json-file-1.1.0"
+      sources."loader-runner-2.4.0"
+      sources."loader-utils-1.4.0"
+      sources."locate-path-5.0.0"
+      sources."lodash-4.17.19"
+      sources."lodash.clone-4.5.0"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.merge-4.6.2"
+      sources."lodash.some-4.6.0"
+      (sources."log4js-6.3.0" // {
+        dependencies = [
+          sources."debug-4.3.0"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."loose-envify-1.4.0"
+      sources."lowercase-keys-1.0.1"
+      sources."lru-cache-6.0.0"
+      sources."lru-queue-0.1.0"
+      (sources."make-dir-3.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."make-iterator-1.0.1"
+      sources."map-cache-0.2.2"
+      sources."map-stream-0.0.7"
+      sources."map-visit-1.0.0"
+      (sources."matchdep-2.0.0" // {
+        dependencies = [
+          sources."braces-2.3.2"
+          sources."extend-shallow-2.0.1"
+          sources."fill-range-4.0.0"
+          sources."findup-sync-2.0.0"
+          sources."is-glob-3.1.0"
+          sources."is-number-3.0.0"
+          sources."kind-of-3.2.2"
+          sources."micromatch-3.1.10"
+          sources."to-regex-range-2.1.1"
+        ];
+      })
+      sources."material-design-icons-3.0.1"
+      sources."material-design-lite-1.3.0"
+      sources."md5.js-1.3.5"
+      sources."media-typer-0.3.0"
+      sources."memoizee-0.4.14"
+      sources."memory-fs-0.5.0"
+      sources."merge-descriptors-1.0.1"
+      sources."merge-stream-2.0.0"
+      sources."merge2-1.4.1"
+      sources."methods-1.1.2"
+      sources."micromatch-4.0.2"
+      (sources."miller-rabin-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."mime-1.6.0"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
+      sources."mimic-fn-1.2.0"
+      sources."mimic-response-1.0.1"
+      sources."minimalistic-assert-1.0.1"
+      sources."minimalistic-crypto-utils-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."minipass-3.1.3"
+      sources."minipass-collect-1.0.2"
+      sources."minipass-flush-1.0.5"
+      sources."minipass-pipeline-1.2.4"
+      sources."minizlib-2.1.2"
+      (sources."mirakurun-3.2.0" // {
+        dependencies = [
+          sources."aribts-1.3.5"
+          sources."eventemitter3-4.0.7"
+          sources."express-openapi-6.0.0"
+          sources."fs-routes-2.0.0"
+          sources."openapi-default-setter-2.1.0"
+          sources."openapi-framework-0.26.0"
+          sources."openapi-jsonschema-parameters-1.2.0"
+          sources."openapi-request-coercer-2.4.0"
+          sources."openapi-request-validator-4.2.0"
+          sources."openapi-response-validator-4.0.0"
+          (sources."openapi-schema-validator-3.0.3" // {
+            dependencies = [
+              sources."openapi-types-1.3.4"
+            ];
+          })
+          (sources."openapi-security-handler-2.0.4" // {
+            dependencies = [
+              sources."openapi-types-1.3.4"
+            ];
+          })
+          sources."openapi-types-1.3.5"
+          sources."readable-stream-3.6.0"
+          sources."semver-7.3.2"
+          sources."stream-http-3.1.1"
+        ];
+      })
+      (sources."mississippi-3.0.0" // {
+        dependencies = [
+          sources."pump-3.0.0"
+        ];
+      })
+      sources."mithril-2.0.4"
+      (sources."mixin-deep-1.3.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      sources."mkdirp-1.0.4"
+      sources."moment-2.28.0"
+      (sources."morgan-1.10.0" // {
+        dependencies = [
+          sources."depd-2.0.0"
+        ];
+      })
+      (sources."move-concurrently-1.0.1" // {
+        dependencies = [
+          sources."mkdirp-0.5.5"
+          sources."rimraf-2.7.1"
+        ];
+      })
+      sources."ms-2.0.0"
+      (sources."multer-1.4.2" // {
+        dependencies = [
+          sources."mkdirp-0.5.5"
+        ];
+      })
+      sources."munin-plugin-0.0.9"
+      sources."mute-stdout-1.0.1"
+      sources."mute-stream-0.0.7"
+      sources."mysql-2.18.1"
+      sources."nan-2.14.1"
+      sources."nanomatch-1.2.13"
+      (sources."needle-2.5.2" // {
+        dependencies = [
+          sources."debug-3.2.6"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."negotiator-0.6.2"
+      sources."neo-async-2.6.2"
+      sources."next-tick-1.0.0"
+      sources."node-addon-api-2.0.0"
+      sources."node-fetch-1.6.3"
+      (sources."node-gyp-3.8.0" // {
+        dependencies = [
+          sources."mkdirp-0.5.5"
+          sources."nopt-3.0.6"
+          sources."rimraf-2.7.1"
+          sources."semver-5.3.0"
+          sources."tar-2.2.2"
+        ];
+      })
+      (sources."node-libs-browser-2.2.1" // {
+        dependencies = [
+          sources."punycode-1.4.1"
+        ];
+      })
+      (sources."node-pre-gyp-0.11.0" // {
+        dependencies = [
+          sources."chownr-1.1.4"
+          sources."fs-minipass-1.2.7"
+          sources."minipass-2.9.0"
+          sources."minizlib-1.3.3"
+          sources."mkdirp-0.5.5"
+          sources."rimraf-2.7.1"
+          sources."tar-4.4.13"
+          sources."yallist-3.1.1"
+        ];
+      })
+      sources."nopt-4.0.3"
+      sources."normalize-package-data-2.5.0"
+      sources."normalize-path-3.0.0"
+      sources."normalize-url-4.5.0"
+      sources."now-and-later-2.0.1"
+      sources."npm-bundled-1.1.1"
+      sources."npm-normalize-package-bin-1.0.1"
+      sources."npm-packlist-1.4.8"
+      sources."npmlog-4.1.2"
+      sources."number-is-nan-1.0.1"
+      sources."oauth-sign-0.9.0"
+      sources."object-assign-4.1.1"
+      sources."object-component-0.0.3"
+      (sources."object-copy-0.1.0" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          sources."is-accessor-descriptor-0.1.6"
+          sources."is-data-descriptor-0.1.4"
+          (sources."is-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-5.1.0"
+            ];
+          })
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."object-inspect-1.8.0"
+      sources."object-keys-1.1.1"
+      sources."object-visit-1.0.1"
+      sources."object.assign-4.1.1"
+      sources."object.defaults-1.1.0"
+      sources."object.map-1.0.1"
+      sources."object.pick-1.3.0"
+      sources."object.reduce-1.0.1"
+      sources."office-ui-fabric-react-7.139.0"
+      sources."on-finished-2.3.0"
+      sources."on-headers-1.0.2"
+      sources."once-1.4.0"
+      sources."onetime-2.0.1"
+      (sources."openapi-default-setter-7.0.1" // {
+        dependencies = [
+          sources."openapi-types-7.0.1"
+        ];
+      })
+      (sources."openapi-framework-7.0.1" // {
+        dependencies = [
+          sources."openapi-types-7.0.1"
+        ];
+      })
+      (sources."openapi-jsonschema-parameters-7.0.1" // {
+        dependencies = [
+          sources."openapi-types-7.0.1"
+        ];
+      })
+      (sources."openapi-request-coercer-7.0.1" // {
+        dependencies = [
+          sources."openapi-types-7.0.1"
+        ];
+      })
+      (sources."openapi-request-validator-7.0.1" // {
+        dependencies = [
+          sources."openapi-types-7.0.1"
+        ];
+      })
+      (sources."openapi-response-validator-7.0.1" // {
+        dependencies = [
+          sources."openapi-types-7.0.1"
+        ];
+      })
+      (sources."openapi-schema-validator-7.0.1" // {
+        dependencies = [
+          sources."openapi-types-7.0.1"
+        ];
+      })
+      (sources."openapi-security-handler-7.0.1" // {
+        dependencies = [
+          sources."openapi-types-7.0.1"
+        ];
+      })
+      sources."openapi-types-7.0.0"
+      (sources."opencollective-1.0.3" // {
+        dependencies = [
+          sources."ansi-styles-2.2.1"
+          sources."chalk-1.1.3"
+          sources."minimist-1.2.0"
+          sources."supports-color-2.0.0"
+        ];
+      })
+      sources."opencollective-postinstall-2.0.3"
+      sources."opn-4.0.2"
+      sources."ordered-read-streams-1.0.1"
+      sources."os-browserify-0.3.0"
+      sources."os-homedir-1.0.2"
+      sources."os-locale-1.4.0"
+      sources."os-tmpdir-1.0.2"
+      sources."osenv-0.1.5"
+      sources."p-cancelable-1.1.0"
+      sources."p-limit-3.0.2"
+      (sources."p-locate-4.1.0" // {
+        dependencies = [
+          sources."p-limit-2.3.0"
+        ];
+      })
+      sources."p-map-3.0.0"
+      sources."p-try-2.2.0"
+      (sources."package-json-6.5.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."packet-reader-1.0.0"
+      sources."pako-1.0.11"
+      sources."parallel-transform-1.2.0"
+      sources."parse-asn1-5.1.6"
+      sources."parse-filepath-1.0.2"
+      sources."parse-json-2.2.0"
+      sources."parse-node-version-1.0.1"
+      sources."parse-passwd-1.0.0"
+      sources."parseqs-0.0.5"
+      sources."parseuri-0.0.5"
+      sources."parseurl-1.3.3"
+      sources."pascalcase-0.1.1"
+      sources."path-browserify-0.0.1"
+      sources."path-dirname-1.0.2"
+      sources."path-exists-2.1.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-parse-1.0.6"
+      sources."path-root-0.1.1"
+      sources."path-root-regex-0.1.2"
+      sources."path-to-regexp-0.1.7"
+      sources."path-type-4.0.0"
+      sources."pbkdf2-3.1.1"
+      sources."performance-now-2.1.0"
+      (sources."pg-8.3.0" // {
+        dependencies = [
+          sources."semver-4.3.2"
+        ];
+      })
+      sources."pg-connection-string-2.3.0"
+      sources."pg-int8-1.0.1"
+      sources."pg-pool-3.2.1"
+      sources."pg-protocol-1.2.5"
+      sources."pg-types-2.2.0"
+      sources."pgpass-1.0.2"
+      sources."picomatch-2.2.2"
+      sources."pify-2.3.0"
+      sources."pinkie-2.0.4"
+      sources."pinkie-promise-2.0.1"
+      (sources."pkg-dir-4.2.0" // {
+        dependencies = [
+          sources."find-up-4.1.0"
+          sources."path-exists-4.0.0"
+        ];
+      })
+      sources."plugin-error-1.0.1"
+      sources."posix-character-classes-0.1.1"
+      sources."postgres-array-2.0.0"
+      sources."postgres-bytea-1.0.0"
+      sources."postgres-date-1.0.7"
+      sources."postgres-interval-1.2.0"
+      sources."prepend-http-2.0.0"
+      sources."pretty-hrtime-1.0.3"
+      sources."process-0.11.10"
+      sources."process-nextick-args-2.0.1"
+      sources."promise-inflight-1.0.1"
+      sources."promise-queue-2.2.5"
+      sources."prop-types-15.7.2"
+      sources."proxy-addr-2.0.6"
+      sources."prr-1.0.1"
+      sources."psl-1.8.0"
+      (sources."public-encrypt-4.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."pump-2.0.1"
+      sources."pumpify-1.5.1"
+      sources."punycode-2.1.1"
+      sources."qs-6.7.0"
+      sources."querystring-0.2.0"
+      sources."querystring-es3-0.2.1"
+      sources."randombytes-2.1.0"
+      sources."randomfill-1.0.4"
+      sources."range-parser-1.2.1"
+      sources."raw-body-2.4.0"
+      sources."rc-1.2.8"
+      sources."react-16.13.1"
+      sources."react-dom-16.13.1"
+      sources."react-is-16.13.1"
+      (sources."read-pkg-1.1.0" // {
+        dependencies = [
+          sources."path-type-1.1.0"
+        ];
+      })
+      sources."read-pkg-up-1.0.1"
+      sources."readable-stream-2.3.7"
+      (sources."readdirp-2.2.1" // {
+        dependencies = [
+          sources."braces-2.3.2"
+          sources."extend-shallow-2.0.1"
+          sources."fill-range-4.0.0"
+          sources."is-number-3.0.0"
+          sources."kind-of-3.2.2"
+          sources."micromatch-3.1.10"
+          sources."to-regex-range-2.1.1"
+        ];
+      })
+      sources."rechoir-0.6.2"
+      sources."regenerator-runtime-0.10.5"
+      sources."regex-not-1.0.2"
+      sources."registry-auth-token-4.2.0"
+      sources."registry-url-5.1.0"
+      sources."remove-bom-buffer-3.0.0"
+      sources."remove-bom-stream-1.2.0"
+      sources."remove-trailing-separator-1.1.0"
+      sources."repeat-element-1.1.3"
+      sources."repeat-string-1.6.1"
+      sources."replace-ext-1.0.1"
+      sources."replace-homedir-1.0.0"
+      (sources."request-2.88.2" // {
+        dependencies = [
+          sources."form-data-2.3.3"
+          sources."qs-6.5.2"
+        ];
+      })
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-1.0.1"
+      sources."resolve-1.17.0"
+      sources."resolve-dir-1.0.1"
+      sources."resolve-options-1.1.0"
+      sources."resolve-url-0.2.1"
+      sources."responselike-1.0.2"
+      sources."restore-cursor-2.0.0"
+      sources."ret-0.1.15"
+      sources."reusify-1.0.4"
+      sources."rfdc-1.1.4"
+      sources."rimraf-3.0.2"
+      sources."ripemd160-2.0.2"
+      sources."run-async-2.4.1"
+      sources."run-parallel-1.1.9"
+      sources."run-queue-1.0.3"
+      sources."rx-4.1.0"
+      sources."safe-buffer-5.1.2"
+      sources."safe-regex-1.1.0"
+      sources."safer-buffer-2.1.2"
+      sources."sass-1.26.11"
+      sources."sax-1.2.4"
+      sources."scheduler-0.19.1"
+      sources."schema-utils-2.7.1"
+      sources."semver-5.7.1"
+      sources."semver-greatest-satisfied-range-1.1.0"
+      (sources."send-0.17.1" // {
+        dependencies = [
+          sources."ms-2.1.1"
+        ];
+      })
+      sources."serialize-javascript-4.0.0"
+      sources."serve-static-1.14.1"
+      sources."set-blocking-2.0.0"
+      (sources."set-value-2.0.1" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."setimmediate-1.0.5"
+      sources."setprototypeof-1.1.1"
+      sources."sha.js-2.4.11"
+      sources."sift-7.0.1"
+      sources."signal-exit-3.0.3"
+      sources."slash-3.0.0"
+      (sources."snapdragon-0.8.2" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      (sources."snapdragon-node-2.1.1" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+        ];
+      })
+      (sources."snapdragon-util-3.0.1" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      (sources."socket.io-2.3.0" // {
+        dependencies = [
+          sources."debug-4.1.1"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."socket.io-adapter-1.1.2"
+      (sources."socket.io-client-2.3.0" // {
+        dependencies = [
+          sources."component-emitter-1.2.1"
+          sources."debug-4.1.1"
+          sources."isarray-2.0.1"
+          sources."ms-2.1.2"
+          (sources."socket.io-parser-3.3.0" // {
+            dependencies = [
+              sources."debug-3.1.0"
+              sources."ms-2.0.0"
+            ];
+          })
+        ];
+      })
+      (sources."socket.io-parser-3.4.1" // {
+        dependencies = [
+          sources."component-emitter-1.2.1"
+          sources."debug-4.1.1"
+          sources."isarray-2.0.1"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."source-list-map-2.0.1"
+      sources."source-map-0.5.7"
+      sources."source-map-resolve-0.5.3"
+      (sources."source-map-support-0.5.19" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."source-map-url-0.4.0"
+      sources."sparkles-1.0.1"
+      sources."spdx-correct-3.1.1"
+      sources."spdx-exceptions-2.3.0"
+      sources."spdx-expression-parse-3.0.1"
+      sources."spdx-license-ids-3.0.6"
+      sources."split-1.0.1"
+      sources."split-string-3.1.0"
+      sources."sprintf-js-1.0.3"
+      sources."sqlite3-5.0.0"
+      sources."sqlstring-2.3.1"
+      sources."sshpk-1.16.1"
+      sources."ssri-8.0.0"
+      sources."stack-trace-0.0.10"
+      (sources."static-extend-0.1.2" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      sources."statuses-1.5.0"
+      sources."stream-browserify-2.0.2"
+      sources."stream-each-1.2.3"
+      sources."stream-exhaust-1.0.2"
+      sources."stream-http-2.8.3"
+      sources."stream-shift-1.0.1"
+      (sources."streamroller-2.2.4" // {
+        dependencies = [
+          sources."date-format-2.1.0"
+          sources."debug-4.3.0"
+          sources."fs-extra-8.1.0"
+          sources."jsonfile-4.0.0"
+          sources."ms-2.1.2"
+          sources."universalify-0.1.2"
+        ];
+      })
+      sources."streamsearch-0.1.2"
+      sources."string-width-1.0.2"
+      (sources."string.prototype.trimend-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
+      (sources."string.prototype.trimstart-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
+      sources."string_decoder-1.1.1"
+      sources."strip-ansi-3.0.1"
+      sources."strip-bom-2.0.0"
+      sources."strip-bom-string-1.0.0"
+      sources."strip-json-comments-2.0.1"
+      sources."supports-color-5.5.0"
+      sources."sver-compat-1.5.0"
+      sources."swagger-schema-official-2.0.0-bab6bed"
+      sources."swagger-ui-dist-3.30.2"
+      sources."tail-2.0.4"
+      sources."tapable-1.1.3"
+      sources."tar-6.0.5"
+      (sources."terser-4.8.0" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      (sources."terser-webpack-plugin-3.0.7" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."through-2.3.8"
+      sources."through2-2.0.5"
+      sources."through2-filter-3.0.0"
+      sources."time-stamp-1.1.0"
+      sources."timers-browserify-2.0.11"
+      sources."timers-ext-0.1.7"
+      sources."tmp-0.0.33"
+      sources."to-absolute-glob-2.0.2"
+      sources."to-array-0.1.4"
+      sources."to-arraybuffer-1.0.1"
+      (sources."to-object-path-0.3.0" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."to-readable-stream-1.0.0"
+      sources."to-regex-3.0.2"
+      sources."to-regex-range-5.0.1"
+      sources."to-through-2.0.0"
+      sources."toidentifier-1.0.0"
+      sources."tough-cookie-2.5.0"
+      (sources."ts-loader-8.0.1" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."ts-log-2.1.4"
+      sources."tslib-1.13.0"
+      (sources."tslint-6.1.2" // {
+        dependencies = [
+          sources."mkdirp-0.5.5"
+        ];
+      })
+      sources."tsutils-2.29.0"
+      sources."tty-browserify-0.0.0"
+      sources."tunnel-agent-0.6.0"
+      sources."tweetnacl-0.14.5"
+      sources."type-1.2.0"
+      sources."type-is-1.6.18"
+      sources."typedarray-0.0.6"
+      sources."typescript-3.9.7"
+      sources."unc-path-regex-0.1.2"
+      sources."undertaker-1.3.0"
+      sources."undertaker-registry-1.0.1"
+      sources."union-value-1.0.1"
+      sources."unique-filename-1.1.1"
+      sources."unique-slug-2.0.2"
+      sources."unique-stream-2.3.1"
+      sources."universalify-1.0.0"
+      sources."unpipe-1.0.0"
+      (sources."unset-value-1.0.0" // {
+        dependencies = [
+          (sources."has-value-0.3.1" // {
+            dependencies = [
+              sources."isobject-2.1.0"
+            ];
+          })
+          sources."has-values-0.1.4"
+        ];
+      })
+      sources."upath-1.2.0"
+      sources."uri-js-4.4.0"
+      sources."urix-0.1.0"
+      (sources."url-0.11.0" // {
+        dependencies = [
+          sources."punycode-1.3.2"
+        ];
+      })
+      sources."url-join-4.0.1"
+      sources."url-parse-lax-3.0.0"
+      sources."url-toolkit-2.2.0"
+      sources."use-3.1.1"
+      (sources."util-0.11.1" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."util-deprecate-1.0.2"
+      sources."utils-merge-1.0.1"
+      sources."uuid-3.4.0"
+      sources."v8flags-3.2.0"
+      sources."validate-npm-package-license-3.0.4"
+      sources."value-or-function-3.0.0"
+      sources."vary-1.1.2"
+      sources."verror-1.10.0"
+      sources."vinyl-2.2.0"
+      sources."vinyl-fs-3.0.3"
+      (sources."vinyl-sourcemap-1.1.0" // {
+        dependencies = [
+          sources."normalize-path-2.1.1"
+        ];
+      })
+      sources."vinyl-sourcemaps-apply-0.2.1"
+      sources."vm-browserify-1.1.2"
+      (sources."watchpack-1.7.4" // {
+        dependencies = [
+          sources."anymatch-3.1.1"
+          sources."binary-extensions-2.1.0"
+          sources."chokidar-3.4.2"
+          sources."fsevents-2.1.3"
+          sources."is-binary-path-2.1.0"
+          sources."readdirp-3.4.0"
+        ];
+      })
+      sources."watchpack-chokidar2-2.0.0"
+      (sources."webpack-4.44.0" // {
+        dependencies = [
+          sources."acorn-6.4.1"
+          sources."braces-2.3.2"
+          sources."cacache-12.0.4"
+          sources."chownr-1.1.4"
+          sources."extend-shallow-2.0.1"
+          sources."fill-range-4.0.0"
+          sources."find-cache-dir-2.1.0"
+          sources."find-up-3.0.0"
+          sources."is-number-3.0.0"
+          sources."kind-of-3.2.2"
+          sources."locate-path-3.0.0"
+          sources."lru-cache-5.1.1"
+          sources."make-dir-2.1.0"
+          sources."memory-fs-0.4.1"
+          sources."micromatch-3.1.10"
+          sources."mkdirp-0.5.5"
+          sources."p-limit-2.3.0"
+          sources."p-locate-3.0.0"
+          sources."path-exists-3.0.0"
+          sources."pify-4.0.1"
+          sources."pkg-dir-3.0.0"
+          sources."rimraf-2.7.1"
+          sources."schema-utils-1.0.0"
+          sources."source-map-0.6.1"
+          sources."ssri-6.0.1"
+          sources."terser-webpack-plugin-1.4.5"
+          sources."to-regex-range-2.1.1"
+          sources."y18n-4.0.0"
+          sources."yallist-3.1.1"
+        ];
+      })
+      (sources."webpack-sources-1.4.3" // {
+        dependencies = [
+          sources."source-map-0.6.1"
+        ];
+      })
+      (sources."webpack-stream-5.2.1" // {
+        dependencies = [
+          sources."memory-fs-0.4.1"
+        ];
+      })
+      sources."which-1.3.1"
+      sources."which-module-1.0.0"
+      sources."wide-align-1.1.3"
+      sources."worker-farm-1.7.0"
+      sources."wrap-ansi-2.1.0"
+      sources."wrappy-1.0.2"
+      sources."ws-7.3.1"
+      sources."xmlhttprequest-ssl-1.5.5"
+      sources."xtend-4.0.2"
+      sources."y18n-3.2.1"
+      sources."yallist-4.0.0"
+      sources."yargs-7.1.1"
+      sources."yargs-parser-5.0.0-security.0"
+      sources."yeast-0.1.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "DTV Software in Japan.";
+      homepage = "https://github.com/l3tnun/EPGStation#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   escape-string-regexp = nodeEnv.buildNodePackage {
     name = "escape-string-regexp";
     packageName = "escape-string-regexp";
@@ -59186,28 +65357,25 @@ in
   eslint = nodeEnv.buildNodePackage {
     name = "eslint";
     packageName = "eslint";
-    version = "7.2.0";
+    version = "7.9.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint/-/eslint-7.2.0.tgz";
-      sha512 = "B3BtEyaDKC5MlfDa2Ha8/D6DsS4fju95zs0hjS3HdGazw+LNayai38A25qMppK37wWGWNYSPOR6oYzlz5MHsRQ==";
+      url = "https://registry.npmjs.org/eslint/-/eslint-7.9.0.tgz";
+      sha512 = "V6QyhX21+uXp4T+3nrNfI3hQNBDa/P8ga7LoQOenwrlEFXrEnUEE+ok1dMtaS3b6rmLXhT1TkTIsG75HMLbknA==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      (sources."@babel/highlight-7.10.1" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
+      sources."@eslint/eslintrc-0.1.3"
       sources."@types/color-name-1.1.1"
-      sources."acorn-7.2.0"
-      sources."acorn-jsx-5.2.0"
-      sources."ajv-6.12.2"
-      (sources."ansi-escapes-4.3.1" // {
-        dependencies = [
-          sources."type-fest-0.11.0"
-        ];
-      })
+      sources."acorn-7.4.0"
+      sources."acorn-jsx-5.3.1"
+      sources."ajv-6.12.5"
+      sources."ansi-colors-4.1.1"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -59221,39 +65389,39 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
-      sources."chardet-0.7.0"
-      sources."cli-cursor-3.1.0"
-      sources."cli-width-2.2.1"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."concat-map-0.0.1"
       sources."cross-spawn-7.0.3"
-      sources."debug-4.2.0"
+      sources."debug-4.3.0"
       sources."deep-is-0.1.3"
       sources."doctrine-3.0.0"
-      sources."emoji-regex-8.0.0"
+      sources."emoji-regex-7.0.3"
+      sources."enquirer-2.3.6"
       sources."escape-string-regexp-1.0.5"
-      sources."eslint-scope-5.1.0"
-      sources."eslint-utils-2.0.0"
-      sources."eslint-visitor-keys-1.2.0"
-      sources."espree-7.1.0"
+      sources."eslint-scope-5.1.1"
+      sources."eslint-utils-2.1.0"
+      sources."eslint-visitor-keys-1.3.0"
+      sources."espree-7.3.0"
       sources."esprima-4.0.1"
       (sources."esquery-1.3.1" // {
         dependencies = [
-          sources."estraverse-5.1.0"
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
-      sources."external-editor-3.1.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."figures-3.2.0"
       sources."file-entry-cache-5.0.1"
       sources."flat-cache-2.0.1"
       sources."flatted-2.0.2"
@@ -59263,24 +65431,13 @@ in
       sources."glob-parent-5.1.1"
       sources."globals-12.4.0"
       sources."has-flag-3.0.0"
-      sources."iconv-lite-0.4.24"
       sources."ignore-4.0.6"
       sources."import-fresh-3.2.1"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      (sources."inquirer-7.1.0" // {
-        dependencies = [
-          sources."ansi-styles-4.2.1"
-          sources."chalk-3.0.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
-        ];
-      })
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
@@ -59288,18 +65445,14 @@ in
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."levn-0.4.1"
-      sources."lodash-4.17.15"
-      sources."mimic-fn-2.1.0"
+      sources."lodash-4.17.20"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
-      sources."mute-stream-0.0.8"
       sources."natural-compare-1.4.0"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
       sources."optionator-0.9.1"
-      sources."os-tmpdir-1.0.2"
       sources."parent-module-1.0.1"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
@@ -59308,41 +65461,26 @@ in
       sources."punycode-2.1.1"
       sources."regexpp-3.1.0"
       sources."resolve-from-4.0.0"
-      sources."restore-cursor-3.1.0"
       sources."rimraf-2.6.3"
-      sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
-      sources."safer-buffer-2.1.2"
       sources."semver-7.3.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."signal-exit-3.0.3"
-      (sources."slice-ansi-2.1.0" // {
-        dependencies = [
-          sources."is-fullwidth-code-point-2.0.0"
-        ];
-      })
+      sources."slice-ansi-2.1.0"
       sources."sprintf-js-1.0.3"
-      sources."string-width-4.2.0"
-      sources."strip-ansi-6.0.0"
-      sources."strip-json-comments-3.1.0"
-      sources."supports-color-5.5.0"
-      (sources."table-5.4.6" // {
+      (sources."string-width-3.1.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
           sources."strip-ansi-5.2.0"
         ];
       })
+      sources."strip-ansi-6.0.0"
+      sources."strip-json-comments-3.1.1"
+      sources."supports-color-5.5.0"
+      sources."table-5.4.6"
       sources."text-table-0.2.0"
-      sources."through-2.3.8"
-      sources."tmp-0.0.33"
-      sources."tslib-1.13.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."v8-compile-cache-2.1.1"
       sources."which-2.0.2"
       sources."word-wrap-1.2.3"
@@ -59362,28 +65500,25 @@ in
   eslint_d = nodeEnv.buildNodePackage {
     name = "eslint_d";
     packageName = "eslint_d";
-    version = "9.0.0";
+    version = "9.1.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint_d/-/eslint_d-9.0.0.tgz";
-      sha512 = "yWXSiBvn6u4pLpGrLuebCtSQ8fJ8jUkUdfD6QqqYp7fSuY4+YW6mW1UusY/gCgfByrgU518o6DCeBmPg6HLkcw==";
+      url = "https://registry.npmjs.org/eslint_d/-/eslint_d-9.1.2.tgz";
+      sha512 = "HJ7n92z+gSBLPP/en2pse1SLsFfwOXb8aqHn3FyXwYaE+J5wSM+raBbSmvE9Ttq20IF6Rq/dXxjhiIjuxAUjpw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      (sources."@babel/highlight-7.10.1" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
+      sources."@eslint/eslintrc-0.1.3"
       sources."@types/color-name-1.1.1"
-      sources."acorn-7.2.0"
-      sources."acorn-jsx-5.2.0"
-      sources."ajv-6.12.2"
-      (sources."ansi-escapes-4.3.1" // {
-        dependencies = [
-          sources."type-fest-0.11.0"
-        ];
-      })
+      sources."acorn-7.4.0"
+      sources."acorn-jsx-5.3.1"
+      sources."ajv-6.12.5"
+      sources."ansi-colors-4.1.1"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -59397,41 +65532,41 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
-      sources."chardet-0.7.0"
-      sources."cli-cursor-3.1.0"
-      sources."cli-width-2.2.1"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."concat-map-0.0.1"
-      sources."core_d-1.0.1"
+      sources."core_d-2.0.0"
       sources."cross-spawn-7.0.3"
-      sources."debug-4.2.0"
+      sources."debug-4.3.0"
       sources."deep-is-0.1.3"
       sources."doctrine-3.0.0"
-      sources."emoji-regex-8.0.0"
+      sources."emoji-regex-7.0.3"
+      sources."enquirer-2.3.6"
       sources."escape-string-regexp-1.0.5"
-      sources."eslint-7.2.0"
-      sources."eslint-scope-5.1.0"
-      sources."eslint-utils-2.0.0"
-      sources."eslint-visitor-keys-1.2.0"
-      sources."espree-7.1.0"
+      sources."eslint-7.9.0"
+      sources."eslint-scope-5.1.1"
+      sources."eslint-utils-2.1.0"
+      sources."eslint-visitor-keys-1.3.0"
+      sources."espree-7.3.0"
       sources."esprima-4.0.1"
       (sources."esquery-1.3.1" // {
         dependencies = [
-          sources."estraverse-5.1.0"
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
-      sources."external-editor-3.1.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."figures-3.2.0"
       sources."file-entry-cache-5.0.1"
       sources."flat-cache-2.0.1"
       sources."flatted-2.0.2"
@@ -59441,24 +65576,13 @@ in
       sources."glob-parent-5.1.1"
       sources."globals-12.4.0"
       sources."has-flag-3.0.0"
-      sources."iconv-lite-0.4.24"
       sources."ignore-4.0.6"
       sources."import-fresh-3.2.1"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      (sources."inquirer-7.1.0" // {
-        dependencies = [
-          sources."ansi-styles-4.2.1"
-          sources."chalk-3.0.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
-        ];
-      })
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
@@ -59466,64 +65590,43 @@ in
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."levn-0.4.1"
-      sources."lodash-4.17.15"
-      sources."mimic-fn-2.1.0"
+      sources."lodash-4.17.20"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
-      sources."mute-stream-0.0.8"
       sources."nanolru-1.0.0"
       sources."natural-compare-1.4.0"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
       sources."optionator-0.9.1"
-      sources."os-tmpdir-1.0.2"
       sources."parent-module-1.0.1"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
-      sources."path-parse-1.0.6"
       sources."prelude-ls-1.2.1"
       sources."progress-2.0.3"
       sources."punycode-2.1.1"
       sources."regexpp-3.1.0"
-      sources."resolve-1.17.0"
       sources."resolve-from-4.0.0"
-      sources."restore-cursor-3.1.0"
       sources."rimraf-2.6.3"
-      sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
-      sources."safer-buffer-2.1.2"
       sources."semver-7.3.2"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."signal-exit-3.0.3"
-      (sources."slice-ansi-2.1.0" // {
-        dependencies = [
-          sources."is-fullwidth-code-point-2.0.0"
-        ];
-      })
+      sources."slice-ansi-2.1.0"
       sources."sprintf-js-1.0.3"
-      sources."string-width-4.2.0"
-      sources."strip-ansi-6.0.0"
-      sources."strip-json-comments-3.1.0"
-      sources."supports-color-5.5.0"
-      (sources."table-5.4.6" // {
+      (sources."string-width-3.1.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
           sources."strip-ansi-5.2.0"
         ];
       })
+      sources."strip-ansi-6.0.0"
+      sources."strip-json-comments-3.1.1"
+      sources."supports-color-5.5.0"
+      sources."table-5.4.6"
       sources."text-table-0.2.0"
-      sources."through-2.3.8"
-      sources."tmp-0.0.33"
-      sources."tslib-1.13.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."v8-compile-cache-2.1.1"
       sources."which-2.0.2"
       sources."word-wrap-1.2.3"
@@ -59549,7 +65652,7 @@ in
       sha1 = "81f5f98043cc2517053f96ba5d61ef5db430c010";
     };
     dependencies = [
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."ansi-escapes-1.4.0"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
@@ -59558,7 +65661,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."buffer-crc32-0.2.13"
       sources."buffer-from-1.1.1"
@@ -59598,7 +65701,7 @@ in
       sources."getpass-0.1.7"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-ansi-2.0.0"
       sources."has-flag-3.0.0"
       sources."hasha-2.2.0"
@@ -59689,7 +65792,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."sshpk-1.16.1"
       sources."string_decoder-1.1.1"
       sources."strip-ansi-3.0.1"
@@ -59703,7 +65806,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."typedarray-0.0.6"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."validate-npm-package-license-3.0.4"
@@ -59731,9 +65834,9 @@ in
       sha512 = "eJdNdyHofekXmSGI76E2A4GBJ7FAvuAgLV7rAgL6uZXV9+ZKwNoBjt/2hxHWmDZZ9x0EEWM3wHb2b0J7UNGbBw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      (sources."@babel/highlight-7.10.1" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -59746,7 +65849,7 @@ in
       sources."@types/color-name-1.1.1"
       sources."@types/minimist-1.2.0"
       sources."@types/normalize-package-data-2.4.0"
-      sources."aggregate-error-3.0.1"
+      sources."aggregate-error-3.1.0"
       sources."ansi-escapes-4.3.1"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.2.1"
@@ -59759,7 +65862,7 @@ in
       sources."clean-stack-2.2.0"
       sources."cli-cursor-3.1.0"
       sources."cli-truncate-2.1.0"
-      sources."cli-width-2.2.1"
+      sources."cli-width-3.0.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."cross-spawn-7.0.3"
@@ -59774,33 +65877,30 @@ in
       sources."error-ex-1.3.2"
       sources."esc-exit-2.0.2"
       sources."escape-string-regexp-1.0.5"
-      sources."execa-4.0.2"
+      sources."execa-4.0.3"
       sources."external-editor-3.1.0"
       sources."figures-3.2.0"
       sources."find-up-4.1.0"
       (sources."fkill-7.0.1" // {
         dependencies = [
-          sources."ps-list-7.1.0"
+          sources."ps-list-7.2.0"
         ];
       })
-      sources."get-stream-5.1.0"
+      sources."get-stream-5.2.0"
       sources."hard-rejection-2.1.0"
       sources."has-flag-4.0.0"
       sources."hosted-git-info-2.8.8"
       sources."human-signals-1.1.1"
       sources."iconv-lite-0.4.24"
       sources."indent-string-4.0.0"
-      sources."inquirer-7.1.0"
-      (sources."inquirer-autocomplete-prompt-1.0.2" // {
+      (sources."inquirer-7.3.3" // {
         dependencies = [
-          sources."ansi-escapes-3.2.0"
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."figures-2.0.0"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
+          sources."chalk-4.1.0"
+        ];
+      })
+      (sources."inquirer-autocomplete-prompt-1.1.0" // {
+        dependencies = [
+          sources."chalk-4.1.0"
         ];
       })
       sources."is-arrayish-0.2.1"
@@ -59809,11 +65909,11 @@ in
       sources."is-stream-2.0.0"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
-      sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."kind-of-6.0.3"
       sources."lines-and-columns-1.1.6"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lru-cache-4.1.5"
       sources."map-obj-4.1.0"
       (sources."meow-6.1.1" // {
@@ -59834,13 +65934,13 @@ in
       sources."npm-run-path-4.0.1"
       sources."num-sort-2.1.0"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
+      sources."onetime-5.1.2"
       sources."os-tmpdir-1.0.2"
       sources."p-finally-2.0.1"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
-      sources."parse-json-5.0.0"
+      sources."parse-json-5.1.0"
       sources."path-exists-4.0.0"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.6"
@@ -59877,7 +65977,7 @@ in
       sources."resolve-1.17.0"
       sources."restore-cursor-3.1.0"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.3"
       sources."safer-buffer-2.1.2"
       sources."semver-5.7.1"
       sources."shebang-command-2.0.0"
@@ -59887,13 +65987,13 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."string-width-4.2.0"
       sources."strip-ansi-6.0.0"
       sources."strip-eof-1.0.0"
       sources."strip-final-newline-2.0.0"
       sources."strip-indent-3.0.0"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       (sources."taskkill-3.1.0" // {
         dependencies = [
           sources."execa-3.4.0"
@@ -59923,10 +66023,10 @@ in
   forever = nodeEnv.buildNodePackage {
     name = "forever";
     packageName = "forever";
-    version = "3.0.0";
+    version = "3.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/forever/-/forever-3.0.0.tgz";
-      sha512 = "jA3zD1pl57cwBlhF6V6lZIOk6//77nQyQ3UGkxxYr4X9+F8nI6SGGan69hdohtmsPZCG3vMlqdtBhwlqEn4thA==";
+      url = "https://registry.npmjs.org/forever/-/forever-3.0.2.tgz";
+      sha512 = "GKZLVs3RQh52kF3kuCrlR1e5npaOqomQzTQryZOFJZ9GKNqLya75LSn1rdjFQ8XixwX3jT76pIJmtGN4XXv1aw==";
     };
     dependencies = [
       sources."ansi-regex-2.1.1"
@@ -59963,7 +66063,6 @@ in
           sources."async-0.2.9"
           sources."cliff-0.1.9"
           sources."nconf-0.6.9"
-          sources."optimist-0.6.0"
           sources."utile-0.2.1"
           sources."winston-0.8.0"
         ];
@@ -60012,13 +66111,10 @@ in
       sources."define-property-2.0.2"
       sources."defined-0.0.0"
       sources."director-1.2.7"
-      sources."es-abstract-1.17.5"
+      sources."duplexer-0.1.2"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
-      (sources."event-stream-0.5.3" // {
-        dependencies = [
-          sources."optimist-0.2.8"
-        ];
-      })
+      sources."event-stream-3.3.4"
       sources."eventemitter2-0.4.14"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
@@ -60055,14 +66151,11 @@ in
           sources."is-extendable-0.1.1"
         ];
       })
-      (sources."flatiron-0.4.3" // {
-        dependencies = [
-          sources."optimist-0.6.0"
-        ];
-      })
+      sources."flatiron-0.4.3"
       sources."for-in-1.0.2"
-      sources."forever-monitor-3.0.0"
+      sources."forever-monitor-3.0.1"
       sources."fragment-cache-0.2.1"
+      sources."from-0.1.7"
       sources."fs.realpath-1.0.0"
       sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
@@ -60091,7 +66184,7 @@ in
       sources."is-arguments-1.0.4"
       sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-callable-1.2.0"
+      sources."is-callable-1.2.1"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
@@ -60099,13 +66192,14 @@ in
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-glob-4.0.1"
+      sources."is-negative-zero-2.0.0"
       (sources."is-number-3.0.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
         ];
       })
       sources."is-plain-object-2.0.4"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."is-windows-1.0.2"
       sources."isarray-1.0.0"
@@ -60116,6 +66210,7 @@ in
       sources."lazy-1.0.11"
       sources."lcid-1.0.0"
       sources."map-cache-0.2.2"
+      sources."map-stream-0.1.0"
       sources."map-visit-1.0.0"
       sources."micromatch-3.1.10"
       sources."minimatch-3.0.4"
@@ -60149,18 +66244,23 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-is-1.1.2"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
-      sources."object.assign-4.1.0"
+      (sources."object.assign-4.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."object.pick-1.3.0"
       sources."once-1.4.0"
-      sources."optimist-0.6.1"
+      sources."optimist-0.6.0"
       sources."os-locale-1.4.0"
       sources."pascalcase-0.1.1"
       sources."path-dirname-1.0.2"
       sources."path-is-absolute-1.0.1"
+      sources."pause-stream-0.0.11"
       sources."pkginfo-0.3.1"
       sources."posix-character-classes-0.1.1"
       (sources."prettyjson-1.2.1" // {
@@ -60176,7 +66276,7 @@ in
           sources."utile-0.2.1"
         ];
       })
-      sources."ps-tree-0.0.3"
+      sources."ps-tree-1.2.0"
       sources."read-1.0.7"
       sources."readable-stream-2.3.7"
       sources."readdirp-2.2.1"
@@ -60232,6 +66332,7 @@ in
       sources."source-map-0.5.7"
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
+      sources."split-0.3.3"
       sources."split-string-3.1.0"
       sources."stack-trace-0.0.10"
       (sources."static-extend-0.1.2" // {
@@ -60251,10 +66352,9 @@ in
           sources."kind-of-5.1.0"
         ];
       })
+      sources."stream-combiner-0.0.4"
       sources."string-width-1.0.2"
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
       sources."string_decoder-1.1.1"
       sources."strip-ansi-3.0.1"
@@ -60320,6 +66420,37 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  get-graphql-schema = nodeEnv.buildNodePackage {
+    name = "get-graphql-schema";
+    packageName = "get-graphql-schema";
+    version = "2.1.2";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/get-graphql-schema/-/get-graphql-schema-2.1.2.tgz";
+      sha512 = "1z5Hw91VrE3GrpCZE6lE8Dy+jz4kXWesLS7rCSjwOxf5BOcIedAZeTUJRIeIzmmR+PA9CKOkPTYFRJbdgUtrxA==";
+    };
+    dependencies = [
+      sources."ansi-styles-3.2.1"
+      sources."chalk-2.4.2"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."escape-string-regexp-1.0.5"
+      sources."graphql-14.7.0"
+      sources."has-flag-3.0.0"
+      sources."iterall-1.3.0"
+      sources."minimist-1.2.5"
+      sources."node-fetch-2.6.1"
+      sources."supports-color-5.5.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Downloads the GraphQL Schema of an GraphQL endpoint URL";
+      homepage = "https://github.com/graphcool/get-graphql-schema#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   git-run = nodeEnv.buildNodePackage {
     name = "git-run";
     packageName = "git-run";
@@ -60330,8 +66461,8 @@ in
     };
     dependencies = [
       sources."async-2.6.3"
-      sources."debug-4.2.0"
-      sources."lodash-4.17.15"
+      sources."debug-4.3.0"
+      sources."lodash-4.17.20"
       sources."lodash.groupby-4.6.0"
       sources."microee-0.0.6"
       sources."minilog-3.1.0"
@@ -60359,10 +66490,10 @@ in
     };
     dependencies = [
       sources."asyncmemo-1.0.0"
-      sources."chloride-2.2.14"
+      sources."chloride-2.3.0"
       sources."chloride-test-1.2.4"
       sources."commander-2.20.3"
-      sources."debug-4.2.0"
+      sources."debug-4.3.0"
       sources."deep-extend-0.6.0"
       sources."diff-3.5.0"
       sources."discontinuous-range-1.0.0"
@@ -60375,7 +66506,7 @@ in
       sources."git-remote-ssb-2.0.4"
       sources."git-ssb-web-2.8.0"
       sources."hashlru-2.3.0"
-      sources."highlight.js-9.18.1"
+      sources."highlight.js-9.18.3"
       sources."increment-buffer-1.0.1"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
@@ -60383,15 +66514,15 @@ in
       sources."is-canonical-base64-1.1.1"
       sources."is-electron-2.2.0"
       sources."is-my-ip-valid-1.0.0"
-      sources."is-my-json-valid-2.20.0"
+      sources."is-my-json-valid-2.20.5"
       sources."is-property-1.0.2"
-      sources."is-valid-domain-0.0.14"
+      sources."is-valid-domain-0.0.15"
       sources."json-buffer-2.0.11"
-      sources."jsonpointer-4.0.1"
+      sources."jsonpointer-4.1.0"
       sources."kvgraph-0.1.0"
       sources."kvset-1.0.0"
-      sources."libsodium-0.7.6"
-      sources."libsodium-wrappers-0.7.6"
+      sources."libsodium-0.7.8"
+      sources."libsodium-wrappers-0.7.8"
       sources."lodash.get-4.4.2"
       sources."looper-4.0.0"
       sources."lrucache-1.0.3"
@@ -60399,7 +66530,7 @@ in
       sources."mime-types-2.1.27"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
-      sources."moment-2.26.0"
+      sources."moment-2.28.0"
       sources."moo-0.5.1"
       sources."ms-2.1.2"
       sources."multicb-1.2.2"
@@ -60407,14 +66538,13 @@ in
       sources."multiserver-address-1.0.1"
       sources."multiserver-scopes-1.0.0"
       sources."muxrpc-6.5.0"
-      sources."nan-2.14.1"
-      sources."nearley-2.19.3"
-      sources."node-gyp-build-4.2.2"
+      sources."nearley-2.19.7"
+      sources."node-gyp-build-4.2.3"
       sources."node-polyglot-1.0.0"
       sources."non-private-ip-1.4.4"
       sources."options-0.0.6"
       sources."os-homedir-1.0.2"
-      sources."packet-stream-2.0.4"
+      sources."packet-stream-2.0.5"
       sources."packet-stream-codec-1.1.2"
       sources."pako-1.0.11"
       sources."private-box-0.3.1"
@@ -60475,7 +66605,7 @@ in
       sources."separator-escape-0.0.0"
       sources."sha.js-2.4.5"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.3.3"
+      sources."socks-2.4.4"
       sources."sodium-browserify-1.3.0"
       (sources."sodium-browserify-tweetnacl-0.2.6" // {
         dependencies = [
@@ -60484,13 +66614,13 @@ in
         ];
       })
       sources."sodium-chloride-1.1.2"
-      sources."sodium-native-2.4.9"
+      sources."sodium-native-3.2.0"
       sources."split-buffer-1.0.0"
       sources."ssb-avatar-0.2.0"
       sources."ssb-caps-1.1.0"
       (sources."ssb-client-4.9.0" // {
         dependencies = [
-          sources."ssb-config-3.4.4"
+          sources."ssb-config-3.4.5"
         ];
       })
       sources."ssb-config-2.3.9"
@@ -60511,7 +66641,7 @@ in
       })
       sources."ssb-msgs-5.2.0"
       sources."ssb-pull-requests-1.0.0"
-      sources."ssb-ref-2.13.9"
+      sources."ssb-ref-2.14.2"
       (sources."stream-to-pull-stream-1.7.3" // {
         dependencies = [
           sources."looper-3.0.0"
@@ -60556,15 +66686,15 @@ in
   gitmoji-cli = nodeEnv.buildNodePackage {
     name = "gitmoji-cli";
     packageName = "gitmoji-cli";
-    version = "3.2.4";
+    version = "3.2.12";
     src = fetchurl {
-      url = "https://registry.npmjs.org/gitmoji-cli/-/gitmoji-cli-3.2.4.tgz";
-      sha512 = "rf0NbwZobW2Kwwomf41Ooas7rm7yg1z68fyKgrKaUs/VaaNtwIYMp/J11iQxcFu5p6i73huCytzmmo/8v4usDA==";
+      url = "https://registry.npmjs.org/gitmoji-cli/-/gitmoji-cli-3.2.12.tgz";
+      sha512 = "ZL27e8s3lkkrKrGCCQDlwIGnLOihrrehDI1jriWaU+UaVME1IYCtOiYbLp59iITK2s8Ak7e0LSSCyO08bRLAvQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      (sources."@babel/highlight-7.10.1" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -60579,7 +66709,7 @@ in
       sources."@types/color-name-1.1.1"
       sources."@types/minimist-1.2.0"
       sources."@types/normalize-package-data-2.4.0"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -60593,8 +66723,10 @@ in
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.2.1"
       sources."arrify-1.0.1"
+      sources."atomically-1.3.2"
       (sources."boxen-4.2.0" // {
         dependencies = [
+          sources."chalk-3.0.0"
           sources."type-fest-0.8.1"
         ];
       })
@@ -60605,22 +66737,22 @@ in
       })
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."chalk-3.0.0"
+      sources."chalk-4.1.0"
       sources."chardet-0.7.0"
       sources."ci-info-2.0.0"
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.3.0"
-      sources."cli-width-2.2.1"
+      sources."cli-spinners-2.4.0"
+      sources."cli-width-3.0.0"
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."conf-6.2.4"
+      sources."conf-7.1.2"
       sources."configstore-5.0.1"
       sources."cross-spawn-7.0.3"
       sources."crypto-random-string-2.0.0"
-      sources."debounce-fn-3.0.1"
+      sources."debounce-fn-4.0.0"
       sources."decamelize-1.2.0"
       (sources."decamelize-keys-1.1.0" // {
         dependencies = [
@@ -60631,7 +66763,7 @@ in
       sources."deep-extend-0.6.0"
       sources."defaults-1.0.3"
       sources."defer-to-connect-1.1.3"
-      sources."dot-prop-5.2.0"
+      sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
@@ -60639,14 +66771,14 @@ in
       sources."error-ex-1.3.2"
       sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
-      sources."execa-4.0.2"
+      sources."execa-4.0.3"
       sources."external-editor-3.1.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."figures-3.2.0"
       sources."find-up-3.0.0"
-      sources."fuse.js-3.6.1"
-      sources."get-stream-5.1.0"
+      sources."fuse.js-6.4.1"
+      sources."get-stream-5.2.0"
       sources."global-dirs-2.0.1"
       (sources."got-9.6.0" // {
         dependencies = [
@@ -60665,19 +66797,8 @@ in
       sources."imurmurhash-0.1.4"
       sources."indent-string-4.0.0"
       sources."ini-1.3.5"
-      sources."inquirer-7.1.0"
-      (sources."inquirer-autocomplete-prompt-1.0.2" // {
-        dependencies = [
-          sources."ansi-escapes-3.2.0"
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."figures-2.0.0"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
-        ];
-      })
+      sources."inquirer-7.3.3"
+      sources."inquirer-autocomplete-prompt-1.1.0"
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
       sources."is-fullwidth-code-point-3.0.0"
@@ -60693,41 +66814,40 @@ in
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."json-buffer-3.0.0"
-      sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-traverse-0.4.1"
       sources."json-schema-typed-7.0.3"
       sources."keyv-3.1.0"
       sources."kind-of-6.0.3"
       sources."latest-version-5.1.0"
       sources."lines-and-columns-1.1.6"
-      sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
-      (sources."log-symbols-3.0.0" // {
+      (sources."locate-path-3.0.0" // {
         dependencies = [
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
+          sources."path-exists-3.0.0"
         ];
       })
+      sources."lodash-4.17.20"
+      sources."log-symbols-4.0.0"
       sources."lowercase-keys-1.0.1"
-      sources."make-dir-3.1.0"
+      (sources."make-dir-3.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
       sources."map-obj-4.1.0"
-      (sources."meow-6.1.1" // {
+      (sources."meow-7.1.1" // {
         dependencies = [
           sources."type-fest-0.13.1"
         ];
       })
       sources."merge-stream-2.0.0"
-      sources."mimic-fn-2.1.0"
+      sources."mimic-fn-3.1.0"
       sources."mimic-response-1.0.1"
       sources."min-indent-1.0.1"
       sources."minimist-1.2.5"
       sources."minimist-options-4.1.0"
       sources."mute-stream-0.0.8"
-      sources."node-fetch-2.6.0"
+      sources."node-fetch-2.6.1"
       (sources."normalize-package-data-2.5.0" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -60736,16 +66856,24 @@ in
       sources."normalize-url-4.5.0"
       sources."npm-run-path-4.0.1"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
-      sources."ora-4.0.4"
+      (sources."onetime-5.1.2" // {
+        dependencies = [
+          sources."mimic-fn-2.1.0"
+        ];
+      })
+      sources."ora-5.1.0"
       sources."os-tmpdir-1.0.2"
       sources."p-cancelable-1.1.0"
       sources."p-limit-2.3.0"
       sources."p-locate-3.0.0"
       sources."p-try-2.2.0"
-      sources."package-json-6.5.0"
-      sources."parse-json-5.0.0"
-      sources."path-exists-3.0.0"
+      (sources."package-json-6.5.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."parse-json-5.1.0"
+      sources."path-exists-4.0.0"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.6"
       sources."pkg-up-3.1.0"
@@ -60765,34 +66893,37 @@ in
           sources."find-up-4.1.0"
           sources."locate-path-5.0.0"
           sources."p-locate-4.1.0"
-          sources."path-exists-4.0.0"
           sources."type-fest-0.8.1"
         ];
       })
       sources."redent-3.0.0"
-      sources."registry-auth-token-4.1.1"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       sources."resolve-1.17.0"
       sources."responselike-1.0.2"
       sources."restore-cursor-3.1.0"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.3"
       sources."safer-buffer-2.1.2"
-      sources."semver-6.3.0"
-      sources."semver-diff-3.1.1"
+      sources."semver-7.3.2"
+      (sources."semver-diff-3.1.1" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."signal-exit-3.0.3"
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."string-width-4.2.0"
       sources."strip-ansi-6.0.0"
       sources."strip-final-newline-2.0.0"
       sources."strip-indent-3.0.0"
       sources."strip-json-comments-2.0.1"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."term-size-2.2.0"
       sources."through-2.3.8"
       sources."tmp-0.0.33"
@@ -60802,8 +66933,12 @@ in
       sources."type-fest-0.11.0"
       sources."typedarray-to-buffer-3.1.5"
       sources."unique-string-2.0.0"
-      sources."update-notifier-4.1.0"
-      sources."uri-js-4.2.2"
+      (sources."update-notifier-4.1.1" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+        ];
+      })
+      sources."uri-js-4.4.0"
       sources."url-parse-lax-3.0.0"
       sources."validate-npm-package-license-3.0.4"
       sources."wcwidth-1.0.1"
@@ -60833,9 +66968,10 @@ in
       sha512 = "O3UHyNJ3nYBNfgC+R5hvJPADiZztZHgWoYfdX0vAtXf0yWyqNgtJQzkcY3RufW1Yi+Bq2Yo8ptyYr2i573GPTQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      (sources."@babel/highlight-7.10.1" // {
+      sources."@ardatan/aggregate-error-0.0.6"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -60845,41 +66981,37 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@babel/runtime-7.10.2"
+      sources."@babel/runtime-7.11.2"
+      sources."@exodus/schemasafe-1.0.0-rc.2"
       sources."@graphql-cli/common-4.0.0"
       sources."@graphql-cli/init-4.0.0"
-      sources."@graphql-toolkit/common-0.10.7"
-      (sources."@graphql-toolkit/core-0.10.7" // {
+      sources."@graphql-tools/delegate-6.2.3"
+      (sources."@graphql-tools/graphql-file-loader-6.2.3" // {
         dependencies = [
-          sources."globby-11.0.0"
-          sources."p-limit-2.3.0"
-          sources."tslib-1.11.2"
-        ];
-      })
-      (sources."@graphql-toolkit/graphql-file-loader-0.10.7" // {
-        dependencies = [
-          sources."tslib-1.11.2"
+          sources."fs-extra-9.0.1"
         ];
       })
-      (sources."@graphql-toolkit/json-file-loader-0.10.7" // {
+      (sources."@graphql-tools/import-6.2.3" // {
         dependencies = [
-          sources."tslib-1.11.2"
+          sources."fs-extra-9.0.1"
         ];
       })
-      (sources."@graphql-toolkit/schema-merging-0.10.7" // {
+      (sources."@graphql-tools/json-file-loader-6.2.3" // {
         dependencies = [
-          sources."tslib-1.11.2"
+          sources."fs-extra-9.0.1"
         ];
       })
-      (sources."@graphql-toolkit/url-loader-0.10.7" // {
+      sources."@graphql-tools/load-6.2.3"
+      sources."@graphql-tools/merge-6.2.3"
+      sources."@graphql-tools/schema-6.2.3"
+      (sources."@graphql-tools/url-loader-6.2.3" // {
         dependencies = [
-          sources."tslib-1.11.2"
+          sources."cross-fetch-3.0.6"
+          sources."node-fetch-2.6.1"
         ];
       })
-      sources."@graphql-tools/load-6.0.9"
-      sources."@graphql-tools/merge-6.0.9"
-      sources."@graphql-tools/schema-6.0.9"
-      sources."@graphql-tools/utils-6.0.9"
+      sources."@graphql-tools/utils-6.2.3"
+      sources."@graphql-tools/wrap-6.2.3"
       sources."@kwsites/exec-p-0.4.0"
       sources."@nodelib/fs.scandir-2.1.3"
       sources."@nodelib/fs.stat-2.0.3"
@@ -60887,13 +67019,10 @@ in
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/color-name-1.1.1"
+      sources."@types/node-14.11.1"
       sources."@types/parse-json-4.0.0"
-      (sources."@wry/equality-0.1.11" // {
-        dependencies = [
-          sources."tslib-1.13.0"
-        ];
-      })
-      sources."aggregate-error-3.0.1"
+      sources."@types/websocket-1.0.1"
+      sources."aggregate-error-3.1.0"
       sources."ajv-5.5.2"
       (sources."ansi-escapes-4.3.1" // {
         dependencies = [
@@ -60902,32 +67031,18 @@ in
       })
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-4.2.1"
-      (sources."apollo-link-1.2.14" // {
-        dependencies = [
-          sources."tslib-1.13.0"
-        ];
-      })
-      (sources."apollo-link-http-common-0.2.16" // {
-        dependencies = [
-          sources."tslib-1.13.0"
-        ];
-      })
-      sources."apollo-upload-client-13.0.0"
-      (sources."apollo-utilities-1.3.4" // {
-        dependencies = [
-          sources."tslib-1.13.0"
-        ];
-      })
       sources."argparse-1.0.10"
       sources."array-filter-1.0.0"
       sources."array-union-2.1.0"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
+      sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
       sources."available-typed-arrays-1.0.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
+      sources."backo2-1.0.2"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       (sources."better-ajv-errors-0.6.7" // {
@@ -60942,9 +67057,10 @@ in
       })
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
+      sources."bufferutil-4.0.1"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
@@ -60961,7 +67077,7 @@ in
       sources."chardet-0.7.0"
       sources."clean-stack-2.2.0"
       sources."cli-cursor-3.1.0"
-      sources."cli-spinners-2.3.0"
+      sources."cli-spinners-2.4.0"
       sources."cli-width-2.2.1"
       (sources."cliui-4.1.0" // {
         dependencies = [
@@ -60985,41 +67101,49 @@ in
       sources."cosmiconfig-6.0.0"
       sources."cross-fetch-3.0.4"
       sources."cross-spawn-6.0.5"
+      sources."d-1.0.1"
       sources."dashdash-1.14.1"
-      sources."debug-4.2.0"
+      sources."dataloader-2.0.0"
+      sources."debug-4.3.0"
       sources."decamelize-1.2.0"
       sources."decompress-response-3.3.0"
       sources."deep-equal-2.0.3"
       sources."deep-extend-0.6.0"
-      sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
       sources."defer-to-connect-1.1.3"
       sources."define-properties-1.1.3"
       sources."delayed-stream-1.0.0"
-      sources."deprecated-decorator-0.1.6"
       sources."dir-glob-3.0.1"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-get-iterator-1.1.0"
       sources."es-to-primitive-1.2.1"
+      sources."es5-ext-0.10.53"
+      sources."es6-iterator-2.0.3"
       sources."es6-promise-3.3.1"
+      sources."es6-symbol-3.1.3"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
+      sources."eventemitter3-3.1.2"
       sources."execa-1.0.0"
+      (sources."ext-1.4.0" // {
+        dependencies = [
+          sources."type-2.1.0"
+        ];
+      })
       sources."extend-3.0.2"
       (sources."external-editor-3.1.0" // {
         dependencies = [
           sources."tmp-0.0.33"
         ];
       })
-      sources."extract-files-8.1.0"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-1.1.0"
-      sources."fast-glob-3.2.2"
+      sources."fast-glob-3.2.4"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-safe-stringify-2.0.7"
       sources."fastq-1.8.0"
@@ -61030,7 +67154,7 @@ in
       sources."foreach-2.0.5"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."form-urlencoded-4.1.4"
+      sources."form-urlencoded-4.2.1"
       sources."fs-extra-9.0.0"
       sources."fs.realpath-1.0.0"
       sources."fullname-4.0.1"
@@ -61048,25 +67172,14 @@ in
       })
       sources."graceful-fs-4.2.4"
       sources."grapheme-splitter-1.0.4"
-      sources."graphql-15.1.0"
-      (sources."graphql-config-3.0.2" // {
-        dependencies = [
-          sources."tslib-1.13.0"
-        ];
-      })
+      sources."graphql-15.3.0"
+      sources."graphql-config-3.0.3"
       sources."graphql-subscriptions-1.1.0"
-      (sources."graphql-tools-5.0.0" // {
-        dependencies = [
-          sources."form-data-3.0.0"
-          sources."tslib-1.13.0"
-          sources."uuid-7.0.3"
-        ];
-      })
       sources."graphql-type-json-0.2.4"
       sources."har-schema-2.0.0"
-      (sources."har-validator-5.1.3" // {
+      (sources."har-validator-5.1.5" // {
         dependencies = [
-          sources."ajv-6.12.2"
+          sources."ajv-6.12.5"
           sources."fast-deep-equal-3.1.3"
           sources."json-schema-traverse-0.4.1"
         ];
@@ -61099,17 +67212,19 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-bigint-1.0.0"
       sources."is-boolean-object-1.0.1"
-      sources."is-callable-1.2.0"
+      sources."is-callable-1.2.1"
       sources."is-date-object-1.0.2"
-      sources."is-docker-2.0.0"
+      sources."is-docker-2.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
       sources."is-glob-4.0.1"
       sources."is-interactive-1.0.0"
       sources."is-map-2.0.1"
+      sources."is-negative-zero-2.0.0"
       sources."is-number-7.0.0"
       sources."is-number-object-1.0.4"
-      sources."is-regex-1.1.0"
+      sources."is-promise-4.0.0"
+      sources."is-regex-1.1.1"
       sources."is-set-2.0.1"
       sources."is-stream-1.1.0"
       sources."is-string-1.0.5"
@@ -61127,14 +67242,14 @@ in
       sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
-      sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.3.1"
       sources."json-stringify-safe-5.0.1"
       sources."json-to-ast-2.1.0"
       sources."jsonfile-6.0.1"
       sources."jsonpath-plus-3.0.0"
-      sources."jsonpointer-4.0.1"
+      sources."jsonpointer-4.1.0"
       sources."jsprim-1.4.1"
       sources."keyv-3.1.0"
       sources."latest-version-5.1.0"
@@ -61142,7 +67257,7 @@ in
       sources."leven-3.1.0"
       sources."lines-and-columns-1.1.6"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       (sources."log-symbols-3.0.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -61171,6 +67286,7 @@ in
       sources."minimist-1.2.5"
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
+      sources."next-tick-1.0.0"
       sources."nice-try-1.0.5"
       (sources."no-case-3.0.3" // {
         dependencies = [
@@ -61179,23 +67295,28 @@ in
       })
       sources."node-fetch-2.6.0"
       sources."node-fetch-h2-2.3.0"
+      sources."node-gyp-build-3.7.0"
       sources."node-readfiles-0.2.0"
       sources."normalize-path-2.1.1"
       sources."normalize-url-4.5.0"
       sources."npm-run-path-2.0.2"
       sources."number-is-nan-1.0.1"
       sources."oas-kit-common-1.0.8"
-      sources."oas-linter-3.1.2"
-      sources."oas-resolver-2.3.2"
-      sources."oas-schema-walker-1.1.4"
+      sources."oas-linter-3.2.0"
+      sources."oas-resolver-2.5.0"
+      sources."oas-schema-walker-1.1.5"
       sources."oas-validator-3.4.0"
       sources."oauth-sign-0.9.0"
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-is-1.1.2"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.0"
+      (sources."object.assign-4.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
+      sources."onetime-5.1.2"
       sources."open-7.0.4"
       sources."openapi-to-graphql-2.1.0"
       (sources."ora-4.0.4" // {
@@ -61214,7 +67335,7 @@ in
       sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
       sources."p-is-promise-2.1.0"
-      sources."p-limit-3.0.1"
+      sources."p-limit-3.0.2"
       (sources."p-locate-3.0.0" // {
         dependencies = [
           sources."p-limit-2.3.0"
@@ -61228,7 +67349,7 @@ in
         ];
       })
       sources."parent-module-1.0.1"
-      sources."parse-json-5.0.0"
+      sources."parse-json-5.1.0"
       (sources."pascal-case-3.1.1" // {
         dependencies = [
           sources."tslib-1.13.0"
@@ -61248,10 +67369,10 @@ in
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
       sources."rc-1.2.8"
-      sources."reftools-1.1.1"
-      sources."regenerator-runtime-0.13.5"
+      sources."reftools-1.1.6"
+      sources."regenerator-runtime-0.13.7"
       sources."regexp.prototype.flags-1.3.0"
-      sources."registry-auth-token-4.1.1"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       sources."remove-trailing-separator-1.1.0"
       sources."request-2.88.2"
@@ -61264,7 +67385,7 @@ in
       sources."rimraf-3.0.2"
       sources."run-async-2.4.1"
       sources."run-parallel-1.1.9"
-      (sources."rxjs-6.5.5" // {
+      (sources."rxjs-6.6.3" // {
         dependencies = [
           sources."tslib-1.13.0"
         ];
@@ -61281,7 +67402,11 @@ in
       sources."should-type-1.4.0"
       sources."should-type-adaptors-1.1.0"
       sources."should-util-1.0.1"
-      sources."side-channel-1.0.2"
+      (sources."side-channel-1.0.3" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."signal-exit-3.0.3"
       sources."simple-git-2.5.0"
       sources."slash-3.0.0"
@@ -61290,13 +67415,12 @@ in
       sources."string-env-interpolation-1.0.1"
       sources."string-width-4.2.0"
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
       sources."strip-ansi-6.0.0"
       sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
-      sources."supports-color-7.1.0"
+      sources."subscriptions-transport-ws-0.9.18"
+      sources."supports-color-7.2.0"
       (sources."swagger2openapi-5.4.0" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
@@ -61306,28 +67430,33 @@ in
           sources."yargs-12.0.5"
         ];
       })
+      sources."symbol-observable-1.2.0"
       sources."through-2.3.8"
       sources."tmp-0.2.1"
       sources."to-readable-stream-1.0.0"
       sources."to-regex-range-5.0.1"
       sources."tough-cookie-2.5.0"
-      (sources."ts-invariant-0.4.4" // {
-        dependencies = [
-          sources."tslib-1.13.0"
-        ];
-      })
-      sources."tslib-2.0.0"
+      sources."tslib-2.0.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
+      sources."type-1.2.0"
       sources."type-fest-0.3.1"
+      sources."typedarray-to-buffer-3.1.5"
       sources."universalify-1.0.0"
       sources."unixify-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."url-parse-lax-3.0.0"
+      sources."utf-8-validate-5.0.2"
       sources."uuid-3.4.0"
       sources."valid-url-1.0.9"
       sources."verror-1.10.0"
       sources."wcwidth-1.0.1"
+      (sources."websocket-1.0.32" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
       sources."whatwg-fetch-3.0.0"
       sources."which-1.3.1"
       sources."which-boxed-primitive-1.0.1"
@@ -61343,9 +67472,11 @@ in
         ];
       })
       sources."wrappy-1.0.2"
+      sources."ws-5.2.2"
       sources."y18n-4.0.0"
+      sources."yaeti-0.0.6"
       sources."yaml-1.10.0"
-      (sources."yargs-15.3.1" // {
+      (sources."yargs-15.4.1" // {
         dependencies = [
           sources."cliui-6.0.0"
           sources."find-up-4.1.0"
@@ -61360,12 +67491,6 @@ in
         ];
       })
       sources."yargs-parser-11.1.1"
-      sources."zen-observable-0.8.15"
-      (sources."zen-observable-ts-0.8.21" // {
-        dependencies = [
-          sources."tslib-1.13.0"
-        ];
-      })
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -61686,7 +67811,7 @@ in
       sources."here-0.0.2"
       sources."inherits-2.0.4"
       sources."isarray-0.0.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.toarray-4.4.0"
       sources."map-canvas-0.1.5"
       sources."marked-0.7.0"
@@ -61694,7 +67819,7 @@ in
         dependencies = [
           sources."ansi-styles-4.2.1"
           sources."chalk-4.1.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."memory-streams-0.1.3"
@@ -61713,10 +67838,10 @@ in
       sources."supports-color-2.0.0"
       (sources."supports-hyperlinks-2.1.0" // {
         dependencies = [
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
-      sources."systeminformation-4.26.9"
+      sources."systeminformation-4.27.5"
       sources."term-canvas-0.0.5"
       sources."type-fest-0.11.0"
       sources."wordwrap-0.0.3"
@@ -61747,7 +67872,11 @@ in
       sources."ansi-gray-0.1.1"
       sources."ansi-regex-2.1.1"
       sources."ansi-wrap-0.1.0"
-      sources."anymatch-2.0.0"
+      (sources."anymatch-2.0.0" // {
+        dependencies = [
+          sources."normalize-path-2.1.1"
+        ];
+      })
       sources."append-buffer-1.0.2"
       sources."archy-1.0.0"
       sources."arr-diff-4.0.0"
@@ -61797,11 +67926,7 @@ in
       sources."buffer-from-1.1.1"
       sources."cache-base-1.0.1"
       sources."camelcase-3.0.0"
-      (sources."chokidar-2.1.8" // {
-        dependencies = [
-          sources."normalize-path-3.0.0"
-        ];
-      })
+      sources."chokidar-2.1.8"
       (sources."class-utils-0.3.6" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -61852,6 +67977,8 @@ in
       sources."each-props-1.3.2"
       sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
+      sources."es-abstract-1.18.0-next.0"
+      sources."es-to-primitive-1.2.1"
       sources."es5-ext-0.10.53"
       sources."es6-iterator-2.0.3"
       sources."es6-symbol-3.1.3"
@@ -61877,7 +68004,7 @@ in
       sources."expand-tilde-2.0.2"
       (sources."ext-1.4.0" // {
         dependencies = [
-          sources."type-2.0.0"
+          sources."type-2.1.0"
         ];
       })
       sources."extend-3.0.2"
@@ -61893,6 +68020,7 @@ in
         ];
       })
       sources."fancy-log-1.3.3"
+      sources."fast-levenshtein-1.1.4"
       sources."file-uri-to-path-1.0.0"
       (sources."fill-range-4.0.0" // {
         dependencies = [
@@ -61920,13 +68048,14 @@ in
         ];
       })
       sources."glob-stream-6.1.0"
-      sources."glob-watcher-5.0.3"
+      sources."glob-watcher-5.0.5"
       sources."global-modules-1.0.0"
       sources."global-prefix-1.0.2"
       sources."glogg-1.0.2"
       sources."graceful-fs-4.2.4"
       sources."gulp-cli-2.3.0"
       sources."gulplog-1.0.0"
+      sources."has-1.0.3"
       sources."has-symbols-1.0.1"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
@@ -61946,20 +68075,25 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
+      sources."is-callable-1.2.1"
       sources."is-data-descriptor-1.0.0"
+      sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-glob-4.0.1"
       sources."is-negated-glob-1.0.0"
+      sources."is-negative-zero-2.0.0"
       (sources."is-number-3.0.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
         ];
       })
       sources."is-plain-object-2.0.4"
+      sources."is-regex-1.1.1"
       sources."is-relative-1.0.0"
+      sources."is-symbol-1.0.3"
       sources."is-unc-path-1.0.0"
       sources."is-utf8-0.2.1"
       sources."is-valid-glob-1.0.0"
@@ -61998,7 +68132,7 @@ in
       sources."nanomatch-1.2.13"
       sources."next-tick-1.0.0"
       sources."normalize-package-data-2.5.0"
-      sources."normalize-path-2.1.1"
+      sources."normalize-path-3.0.0"
       sources."now-and-later-2.0.1"
       sources."number-is-nan-1.0.1"
       (sources."object-copy-0.1.0" // {
@@ -62014,9 +68148,10 @@ in
           sources."kind-of-3.2.2"
         ];
       })
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
-      sources."object.assign-4.1.0"
+      sources."object.assign-4.1.1"
       sources."object.defaults-1.1.0"
       sources."object.map-1.0.1"
       sources."object.pick-1.3.0"
@@ -62109,7 +68244,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."split-string-3.1.0"
       sources."stack-trace-0.0.10"
       (sources."static-extend-0.1.2" // {
@@ -62132,6 +68267,16 @@ in
       sources."stream-exhaust-1.0.2"
       sources."stream-shift-1.0.1"
       sources."string-width-1.0.2"
+      (sources."string.prototype.trimend-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
+      (sources."string.prototype.trimstart-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
       sources."string_decoder-1.1.1"
       sources."strip-ansi-3.0.1"
       sources."strip-bom-2.0.0"
@@ -62151,7 +68296,7 @@ in
       sources."type-1.2.0"
       sources."typedarray-0.0.6"
       sources."unc-path-regex-0.1.2"
-      sources."undertaker-1.2.1"
+      sources."undertaker-1.3.0"
       sources."undertaker-registry-1.0.1"
       sources."union-value-1.0.1"
       sources."unique-stream-2.3.1"
@@ -62174,7 +68319,11 @@ in
       sources."value-or-function-3.0.0"
       sources."vinyl-2.2.0"
       sources."vinyl-fs-3.0.3"
-      sources."vinyl-sourcemap-1.1.0"
+      (sources."vinyl-sourcemap-1.1.0" // {
+        dependencies = [
+          sources."normalize-path-2.1.1"
+        ];
+      })
       sources."which-1.3.1"
       sources."which-module-1.0.0"
       sources."wrap-ansi-2.1.0"
@@ -62258,6 +68407,8 @@ in
       sources."detect-file-1.0.0"
       sources."each-props-1.3.2"
       sources."error-ex-1.3.2"
+      sources."es-abstract-1.18.0-next.0"
+      sources."es-to-primitive-1.2.1"
       sources."es5-ext-0.10.53"
       sources."es6-iterator-2.0.3"
       sources."es6-symbol-3.1.3"
@@ -62274,7 +68425,7 @@ in
       sources."expand-tilde-2.0.2"
       (sources."ext-1.4.0" // {
         dependencies = [
-          sources."type-2.0.0"
+          sources."type-2.1.0"
         ];
       })
       sources."extend-3.0.2"
@@ -62310,6 +68461,7 @@ in
       sources."glogg-1.0.2"
       sources."graceful-fs-4.2.4"
       sources."gulplog-1.0.0"
+      sources."has-1.0.3"
       sources."has-symbols-1.0.1"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
@@ -62331,11 +68483,13 @@ in
       })
       sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
+      sources."is-callable-1.2.1"
       (sources."is-data-descriptor-1.0.0" // {
         dependencies = [
           sources."kind-of-6.0.3"
         ];
       })
+      sources."is-date-object-1.0.2"
       (sources."is-descriptor-1.0.2" // {
         dependencies = [
           sources."kind-of-6.0.3"
@@ -62345,13 +68499,16 @@ in
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-glob-4.0.1"
+      sources."is-negative-zero-2.0.0"
       (sources."is-number-3.0.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
         ];
       })
       sources."is-plain-object-2.0.4"
+      sources."is-regex-1.1.1"
       sources."is-relative-1.0.0"
+      sources."is-symbol-1.0.3"
       sources."is-unc-path-1.0.0"
       sources."is-utf8-0.2.1"
       sources."is-windows-1.0.2"
@@ -62408,9 +68565,10 @@ in
           sources."kind-of-3.2.2"
         ];
       })
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
-      sources."object.assign-4.1.0"
+      sources."object.assign-4.1.1"
       sources."object.defaults-1.1.0"
       sources."object.map-1.0.1"
       sources."object.pick-1.3.0"
@@ -62483,7 +68641,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."split-string-3.1.0"
       sources."stack-trace-0.0.10"
       (sources."static-extend-0.1.2" // {
@@ -62496,6 +68654,16 @@ in
         ];
       })
       sources."string-width-1.0.2"
+      (sources."string.prototype.trimend-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
+      (sources."string.prototype.trimstart-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
       sources."string_decoder-1.1.1"
       sources."strip-ansi-3.0.1"
       sources."strip-bom-2.0.0"
@@ -62580,7 +68748,7 @@ in
       sources."param-case-2.1.1"
       sources."relateurl-0.2.7"
       sources."source-map-0.6.1"
-      sources."uglify-js-3.9.4"
+      sources."uglify-js-3.10.4"
       sources."upper-case-1.1.3"
     ];
     buildInputs = globalBuildInputs;
@@ -62596,21 +68764,21 @@ in
   htmlhint = nodeEnv.buildNodePackage {
     name = "htmlhint";
     packageName = "htmlhint";
-    version = "0.14.0";
+    version = "0.14.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/htmlhint/-/htmlhint-0.14.0.tgz";
-      sha512 = "vP5tWbFQ2G8j42NxDa9Pklxzxp0GGC31/tZacnJWYYsygZj4zbrwLIT4vzsafN8/lsV77rDTn+3CaixpZGOB8w==";
+      url = "https://registry.npmjs.org/htmlhint/-/htmlhint-0.14.1.tgz";
+      sha512 = "VWKrljlwF8tEKH48YPfC30zYKhrsMqm70d7vXswivEqd3DSva8ZlIzfeCa3YWFEFRIIhiXKgKurlqEpCtYMCAA==";
     };
     dependencies = [
       sources."@types/color-name-1.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."ansi-styles-4.2.1"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."async-3.2.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
@@ -62637,7 +68805,7 @@ in
       sources."glob-base-0.3.0"
       sources."glob-parent-2.0.0"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-flag-4.0.0"
       sources."http-signature-1.2.0"
       sources."inflight-1.0.6"
@@ -62668,11 +68836,11 @@ in
       sources."safer-buffer-2.1.2"
       sources."sshpk-1.16.1"
       sources."strip-json-comments-3.1.0"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
       sources."wrappy-1.0.2"
@@ -62703,17 +68871,17 @@ in
       sources."corser-2.0.1"
       sources."debug-3.2.6"
       sources."ecstatic-3.3.2"
-      sources."eventemitter3-4.0.4"
-      sources."follow-redirects-1.11.0"
+      sources."eventemitter3-4.0.7"
+      sources."follow-redirects-1.13.0"
       sources."he-1.2.0"
       sources."http-proxy-1.18.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."mime-1.6.0"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
-      sources."opener-1.5.1"
-      sources."portfinder-1.0.26"
+      sources."opener-1.5.2"
+      sources."portfinder-1.0.28"
       sources."qs-6.9.4"
       sources."requires-port-1.0.0"
       sources."secure-compare-3.0.1"
@@ -62798,7 +68966,7 @@ in
       sources."async-0.2.10"
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
-      sources."bunyan-1.8.12"
+      sources."bunyan-1.8.14"
       sources."colors-0.6.2"
       sources."concat-map-0.0.1"
       sources."core-util-is-1.0.2"
@@ -62818,7 +68986,7 @@ in
           sources."minimist-1.2.5"
         ];
       })
-      sources."moment-2.26.0"
+      sources."moment-2.28.0"
       sources."mv-2.1.1"
       sources."nan-2.14.1"
       sources."ncp-2.0.0"
@@ -62861,7 +69029,7 @@ in
       sources."async-limiter-1.0.1"
       sources."chrome-remote-interface-0.27.2"
       sources."commander-2.11.0"
-      sources."node-fetch-2.6.0"
+      sources."node-fetch-2.6.1"
       sources."semver-5.7.1"
       sources."source-map-0.7.3"
       sources."ws-6.2.1"
@@ -62885,7 +69053,7 @@ in
       sha512 = "l4g7U75E+WgrgNGH774djfTyp5Aw+2jJokYe9iCunSAbi/w+nRGHqTJfwbODLwiJQTnbXkM42FxgPRA29Ce7Bg==";
     };
     dependencies = [
-      sources."@types/jquery-3.3.38"
+      sources."@types/jquery-3.5.1"
       sources."@types/sizzle-2.3.2"
       sources."balanced-match-1.0.0"
       sources."brace-expansion-1.1.11"
@@ -62904,7 +69072,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."jquery-3.5.1"
-      sources."jquery.terminal-2.17.1"
+      sources."jquery.terminal-2.18.3"
       sources."jsonfile-2.4.0"
       sources."keyboardevent-key-polyfill-1.1.0"
       sources."line-reader-0.4.0"
@@ -62912,7 +69080,7 @@ in
       sources."once-1.4.0"
       sources."os-homedir-1.0.2"
       sources."path-is-absolute-1.0.1"
-      sources."prismjs-1.20.0"
+      sources."prismjs-1.21.0"
       sources."rimraf-2.7.1"
       sources."select-1.1.2"
       sources."tiny-emitter-2.1.0"
@@ -62955,7 +69123,11 @@ in
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
-      sources."ast-types-0.13.3"
+      (sources."ast-types-0.14.2" // {
+        dependencies = [
+          sources."tslib-2.0.1"
+        ];
+      })
       sources."astral-regex-2.0.0"
       sources."asynckit-0.4.0"
       sources."balanced-match-1.0.0"
@@ -62971,7 +69143,7 @@ in
       sources."chardet-0.7.0"
       sources."chownr-1.1.4"
       sources."cli-cursor-2.1.0"
-      sources."cli-width-2.2.1"
+      sources."cli-width-3.0.0"
       sources."co-4.6.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -62982,7 +69154,7 @@ in
       sources."core-util-is-1.0.2"
       sources."cross-spawn-7.0.3"
       sources."data-uri-to-buffer-1.2.0"
-      sources."debug-4.2.0"
+      sources."debug-4.3.0"
       sources."deep-is-0.1.3"
       sources."degenerator-1.0.4"
       sources."delayed-stream-1.0.0"
@@ -63001,7 +69173,7 @@ in
       sources."es6-promise-4.2.8"
       sources."es6-promisify-5.0.0"
       sources."escape-string-regexp-1.0.5"
-      (sources."escodegen-1.14.2" // {
+      (sources."escodegen-1.14.3" // {
         dependencies = [
           sources."esprima-4.0.1"
         ];
@@ -63065,17 +69237,21 @@ in
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      (sources."inquirer-7.1.0" // {
+      (sources."inquirer-7.3.3" // {
         dependencies = [
           sources."ansi-escapes-4.3.1"
+          sources."ansi-styles-4.2.1"
+          sources."chalk-4.1.0"
           sources."cli-cursor-3.1.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
           sources."mimic-fn-2.1.0"
-          sources."onetime-5.1.0"
+          sources."onetime-5.1.2"
           sources."restore-cursor-3.1.0"
         ];
       })
       sources."ip-1.1.5"
-      sources."is-docker-2.0.0"
+      sources."is-docker-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-stream-1.1.0"
       sources."is-typedarray-1.0.0"
@@ -63090,7 +69266,7 @@ in
         ];
       })
       sources."levn-0.3.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash._baseassign-3.2.0"
       sources."lodash._basecopy-3.0.1"
       sources."lodash._bindcallback-3.0.1"
@@ -63110,7 +69286,7 @@ in
         ];
       })
       sources."lru-cache-5.1.1"
-      sources."macos-release-2.3.0"
+      sources."macos-release-2.4.1"
       sources."methods-1.1.2"
       sources."mime-2.4.6"
       sources."mime-db-1.44.0"
@@ -63132,7 +69308,7 @@ in
       })
       sources."once-1.4.0"
       sources."onetime-2.0.1"
-      sources."open-7.0.4"
+      sources."open-7.2.1"
       sources."optionator-0.8.3"
       sources."os-name-3.1.0"
       sources."os-tmpdir-1.0.2"
@@ -63153,7 +69329,7 @@ in
       sources."rimraf-3.0.2"
       sources."rsvp-3.6.2"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.3"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.1.4"
@@ -63178,7 +69354,7 @@ in
         ];
       })
       sources."source-map-0.6.1"
-      sources."split2-3.1.1"
+      sources."split2-3.2.2"
       sources."ssh-config-1.1.6"
       sources."statuses-1.5.0"
       (sources."stream-combiner2-1.1.1" // {
@@ -63207,10 +69383,10 @@ in
           sources."debug-3.2.6"
         ];
       })
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."tar-4.4.13"
       sources."through-2.3.8"
-      sources."through2-3.0.1"
+      sources."through2-3.0.2"
       sources."thunkify-2.1.2"
       sources."tmp-0.0.33"
       sources."toidentifier-1.0.0"
@@ -63225,7 +69401,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."which-2.0.2"
-      sources."windows-release-3.3.1"
+      sources."windows-release-3.3.3"
       sources."word-wrap-1.2.3"
       (sources."wrap-ansi-6.2.0" // {
         dependencies = [
@@ -63236,7 +69412,7 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xregexp-2.0.0"
       sources."yallist-3.1.1"
     ];
@@ -63250,94 +69426,76 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
-  ios-deploy = nodeEnv.buildNodePackage {
-    name = "ios-deploy";
-    packageName = "ios-deploy";
-    version = "1.10.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/ios-deploy/-/ios-deploy-1.10.0.tgz";
-      sha512 = "sklB6PkJkWrHDublkZJeY4z9i7hl0nS2aRVse+/idGnb4eZddMQRfPVB4YzkEoyJ4FyW1I3sdLP6/cg/Imu/sw==";
-    };
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "launch iOS apps iOS devices from the command line (Xcode 7)";
-      homepage = "https://github.com/ios-control/ios-deploy#readme";
-      license = "GPLv3";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
   "iosevka-build-deps-../../data/fonts/iosevka" = nodeEnv.buildNodePackage {
     name = "iosevka-build-deps";
     packageName = "iosevka-build-deps";
-    version = "2.3.3";
+    version = "3.2.2";
     src = ../../data/fonts/iosevka;
     dependencies = [
+      sources."@iarna/toml-2.2.5"
+      sources."@josh-brown/vector-3.4.0"
       sources."@types/color-name-1.1.1"
       sources."JSONStream-1.3.5"
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."amdefine-1.0.1"
-      sources."ansi-regex-2.1.1"
-      sources."ansi-styles-4.2.1"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-3.2.1"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
       sources."argparse-1.0.10"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
+      sources."async-0.9.2"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."bezier-js-2.6.1"
       sources."bindings-1.5.0"
-      sources."block-stream-0.0.9"
       sources."bluebird-3.7.2"
       sources."brace-expansion-1.1.11"
-      sources."bufferstreams-1.1.3"
-      sources."camelcase-4.1.0"
-      sources."caryll-shapeops-0.3.1"
+      sources."bufferstreams-2.0.1"
+      sources."camelcase-5.3.1"
       sources."caseless-0.12.0"
-      sources."chalk-3.0.0"
+      sources."chainsaw-0.0.9"
+      sources."chalk-2.4.2"
       sources."child-process-promise-2.2.1"
+      sources."chownr-1.1.4"
+      sources."cldr-5.7.0"
       sources."cli-cursor-3.1.0"
-      sources."clipper-lib-1.0.0"
-      (sources."cliui-3.2.0" // {
-        dependencies = [
-          sources."string-width-1.0.2"
-        ];
-      })
-      sources."clone-2.1.2"
+      sources."clipper-lib-6.4.2"
+      sources."cliui-6.0.0"
       sources."code-point-at-1.1.0"
-      sources."color-convert-2.0.1"
-      sources."color-name-1.1.4"
-      sources."colors-1.4.0"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
       sources."combined-stream-1.0.8"
-      sources."complex.js-2.0.11"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
       sources."core-util-is-1.0.2"
-      sources."cross-spawn-4.0.2"
+      (sources."cross-spawn-4.0.2" // {
+        dependencies = [
+          sources."lru-cache-4.1.5"
+          sources."which-1.3.1"
+        ];
+      })
       sources."css-2.2.4"
       sources."css-parse-2.0.0"
-      sources."cubic2quad-1.1.1"
       sources."dashdash-1.14.1"
       sources."debug-3.1.0"
       sources."decamelize-1.2.0"
-      sources."decimal.js-10.2.0"
       sources."decode-uri-component-0.2.0"
       sources."deep-is-0.1.3"
       sources."delayed-stream-1.0.0"
       sources."delegates-1.0.0"
       sources."ecc-jsbn-0.1.2"
+      sources."ejs-3.1.5"
       sources."emoji-regex-8.0.0"
       sources."error-ex-1.3.2"
-      sources."escape-latex-1.2.0"
-      sources."escodegen-1.14.2"
+      sources."escape-string-regexp-1.0.5"
+      sources."escodegen-1.14.3"
       (sources."escope-1.0.3" // {
         dependencies = [
           sources."estraverse-2.0.0"
@@ -63363,163 +69521,157 @@ in
       })
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
-      (sources."execa-0.7.0" // {
-        dependencies = [
-          sources."cross-spawn-5.1.0"
-        ];
-      })
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."file-uri-to-path-1.0.0"
-      sources."find-up-2.1.0"
-      sources."first-chunk-stream-2.0.0"
+      sources."filelist-1.0.1"
+      sources."find-up-4.1.0"
+      sources."first-chunk-stream-3.0.0"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."fraction.js-4.0.12"
-      sources."fs-extra-3.0.1"
+      sources."fs-extra-9.0.1"
+      sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
-      sources."fstream-1.0.12"
       (sources."gauge-2.7.4" // {
         dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."is-fullwidth-code-point-1.0.0"
           sources."string-width-1.0.2"
+          sources."strip-ansi-3.0.1"
         ];
       })
-      sources."get-caller-file-1.0.3"
-      sources."get-stream-3.0.0"
+      sources."get-caller-file-2.0.5"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
-      sources."has-flag-4.0.0"
+      sources."har-validator-5.1.5"
+      sources."has-flag-3.0.0"
       sources."has-unicode-2.0.1"
+      sources."hashish-0.0.4"
       sources."hosted-git-info-2.8.8"
       sources."http-signature-1.2.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."invert-kv-1.0.0"
       sources."is-arrayish-0.2.1"
-      sources."is-fullwidth-code-point-1.0.0"
-      sources."is-stream-1.1.0"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
-      sources."javascript-natural-sort-0.7.1"
+      sources."jake-10.8.2"
       sources."jsbn-0.1.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsonfile-3.0.1"
+      sources."jsonfile-6.0.1"
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.1"
       sources."lcid-1.0.0"
       sources."levn-0.3.0"
-      sources."libspiro-js-0.3.1"
-      sources."load-json-file-2.0.0"
-      sources."locate-path-2.0.0"
-      sources."lru-cache-4.1.5"
-      sources."mathjs-5.10.3"
-      sources."megaminx-0.9.0"
-      sources."mem-1.1.0"
+      sources."load-json-file-1.1.0"
+      sources."locate-path-5.0.0"
+      sources."lru-cache-2.5.0"
+      sources."memoizeasync-1.1.0"
       sources."microbuffer-1.0.0"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
-      sources."mimic-fn-1.2.0"
+      sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."mkdirp-0.5.5"
+      (sources."minipass-2.9.0" // {
+        dependencies = [
+          sources."yallist-3.1.1"
+        ];
+      })
+      sources."minizlib-1.3.3"
+      sources."mkdirp-1.0.4"
       sources."ms-2.0.0"
       sources."nan-2.14.1"
-      (sources."node-gyp-3.8.0" // {
+      (sources."node-gyp-4.0.0" // {
         dependencies = [
+          sources."mkdirp-0.5.5"
           sources."semver-5.3.0"
+          sources."which-1.3.1"
         ];
       })
       sources."node-version-1.2.0"
       sources."nopt-3.0.6"
-      sources."normalize-package-data-2.5.0"
-      sources."npm-run-path-2.0.2"
+      (sources."normalize-package-data-2.5.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
       sources."npmlog-4.1.2"
       sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
       sources."once-1.4.0"
-      (sources."onetime-5.1.0" // {
-        dependencies = [
-          sources."mimic-fn-2.1.0"
-        ];
-      })
+      sources."onetime-5.1.2"
       sources."optionator-0.8.3"
       sources."os-homedir-1.0.2"
-      sources."os-locale-2.1.0"
+      sources."os-locale-1.4.0"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
-      (sources."otfcc-ttcize-0.8.0" // {
-        dependencies = [
-          sources."fs-extra-4.0.3"
-          sources."jsonfile-4.0.0"
-          (sources."megaminx-0.3.3" // {
-            dependencies = [
-              sources."fs-extra-3.0.1"
-              sources."jsonfile-3.0.1"
-            ];
-          })
-          sources."yargs-8.0.2"
-        ];
-      })
-      sources."p-finally-1.0.0"
-      sources."p-limit-1.3.0"
-      sources."p-locate-2.0.0"
-      sources."p-try-1.0.0"
+      sources."otfcc-ttcize-0.10.2"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-try-2.2.0"
       sources."pako-1.0.11"
       sources."parse-json-2.2.0"
+      sources."passerror-1.1.1"
       (sources."patel-0.33.1" // {
         dependencies = [
+          sources."ansi-regex-2.1.1"
           sources."camelcase-3.0.0"
-          sources."find-up-1.1.2"
-          sources."load-json-file-1.1.0"
-          sources."os-locale-1.4.0"
-          sources."path-exists-2.1.0"
-          sources."path-type-1.1.0"
-          sources."read-pkg-1.1.0"
-          sources."read-pkg-up-1.0.1"
+          sources."cliui-3.2.0"
+          sources."get-caller-file-1.0.3"
+          sources."is-fullwidth-code-point-1.0.0"
+          sources."require-main-filename-1.0.1"
           sources."string-width-1.0.2"
-          sources."strip-bom-2.0.0"
+          sources."strip-ansi-3.0.1"
           sources."which-module-1.0.0"
+          sources."wrap-ansi-2.1.0"
+          sources."y18n-3.2.1"
           sources."yargs-6.6.0"
           sources."yargs-parser-4.2.1"
         ];
       })
-      sources."path-exists-3.0.0"
+      sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-key-2.0.1"
       sources."path-parse-1.0.6"
-      sources."path-type-2.0.0"
+      sources."path-type-1.1.0"
       sources."patrisika-0.21.0"
       sources."patrisika-scopes-0.11.1"
+      sources."pegjs-0.10.0"
       sources."performance-now-2.1.0"
       sources."pify-2.3.0"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
       sources."prelude-ls-1.1.2"
-      sources."primitive-quadify-off-curves-0.4.1"
+      sources."prettier-2.1.2"
       sources."process-nextick-args-2.0.1"
       sources."promise-polyfill-6.1.0"
       sources."pseudomap-1.0.2"
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
-      sources."read-pkg-2.0.0"
-      sources."read-pkg-up-2.0.0"
+      sources."read-pkg-1.1.0"
+      (sources."read-pkg-up-1.0.1" // {
+        dependencies = [
+          sources."find-up-1.1.2"
+          sources."path-exists-2.1.0"
+        ];
+      })
       sources."readable-stream-2.3.7"
       sources."request-2.88.2"
       sources."require-directory-2.1.1"
-      sources."require-main-filename-1.0.1"
+      sources."require-main-filename-2.0.0"
       sources."resolve-1.17.0"
       sources."resolve-url-0.2.1"
       sources."restore-cursor-3.1.0"
@@ -63528,12 +69680,10 @@ in
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      sources."seed-random-2.2.0"
       sources."semaphore-async-await-1.5.1"
-      sources."semver-5.7.1"
+      sources."semver-7.3.2"
+      sources."seq-0.3.5"
       sources."set-blocking-2.0.0"
-      sources."shebang-command-1.2.0"
-      sources."shebang-regex-1.0.0"
       sources."signal-exit-3.0.3"
       sources."source-map-0.6.1"
       sources."source-map-resolve-0.5.3"
@@ -63541,120 +69691,91 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
+      sources."spiro-2.0.0"
       sources."split-1.0.1"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
       sources."stack-trace-0.0.9"
-      (sources."string-width-2.1.1" // {
-        dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."strip-ansi-4.0.0"
-        ];
-      })
+      sources."string-width-4.2.0"
       sources."string_decoder-1.1.1"
-      sources."strip-ansi-3.0.1"
-      sources."strip-bom-3.0.0"
-      sources."strip-bom-buf-1.0.0"
-      sources."strip-bom-stream-3.0.0"
-      sources."strip-eof-1.0.0"
-      (sources."stylus-0.54.7" // {
+      sources."strip-ansi-6.0.0"
+      sources."strip-bom-2.0.0"
+      sources."strip-bom-buf-2.0.0"
+      sources."strip-bom-stream-4.0.0"
+      (sources."stylus-0.54.8" // {
         dependencies = [
           sources."semver-6.3.0"
           sources."source-map-0.7.3"
         ];
       })
-      sources."supports-color-7.1.0"
-      sources."tar-2.2.2"
-      sources."temp-0.8.4"
+      sources."supports-color-5.5.0"
+      (sources."tar-4.4.13" // {
+        dependencies = [
+          sources."mkdirp-0.5.5"
+          sources."yallist-3.1.1"
+        ];
+      })
+      sources."temp-0.9.1"
       sources."through-2.3.8"
-      sources."tiny-emitter-2.1.0"
-      sources."toml-3.0.0"
       sources."topsort-0.0.2"
       sources."tough-cookie-2.5.0"
+      sources."traverse-0.3.9"
       sources."ts-process-promises-1.0.2"
-      sources."tslib-1.9.3"
+      sources."tslib-1.13.0"
       sources."ttf2woff-2.0.2"
-      sources."ttf2woff2-2.0.3"
+      sources."ttf2woff2-3.0.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
-      sources."typed-function-1.1.0"
-      sources."typo-geom-0.5.1"
-      sources."universalify-0.1.2"
+      sources."typo-geom-0.8.4"
+      sources."unicode-13.0.0-0.8.0"
+      sources."unicoderegexp-0.4.1"
+      sources."universalify-1.0.0"
       sources."unorm-1.6.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."validate-npm-package-license-3.0.4"
-      (sources."verda-1.0.4" // {
+      (sources."verda-1.1.1" // {
         dependencies = [
-          sources."ansi-regex-5.0.0"
-          sources."camelcase-5.3.1"
-          sources."cliui-6.0.0"
-          sources."find-up-4.1.0"
-          sources."fs-extra-9.0.1"
-          sources."get-caller-file-2.0.5"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."jsonfile-6.0.1"
-          sources."locate-path-5.0.0"
-          sources."p-limit-2.3.0"
-          sources."p-locate-4.1.0"
-          sources."p-try-2.2.0"
-          sources."path-exists-4.0.0"
-          sources."require-main-filename-2.0.0"
-          sources."string-width-4.2.0"
-          sources."strip-ansi-6.0.0"
-          sources."tslib-1.13.0"
-          sources."universalify-1.0.0"
-          sources."which-2.0.2"
-          sources."wrap-ansi-6.2.0"
-          sources."y18n-4.0.0"
-          sources."yargs-15.3.1"
-          sources."yargs-parser-18.1.3"
+          sources."ansi-styles-4.2.1"
+          sources."chalk-4.1.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+          sources."tslib-2.0.1"
         ];
       })
       sources."verror-1.10.0"
-      sources."which-1.3.1"
+      sources."which-2.0.2"
       sources."which-module-2.0.0"
-      sources."wide-align-1.1.3"
+      (sources."wide-align-1.1.3" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
+        ];
+      })
       sources."word-wrap-1.2.3"
       sources."wordwrap-0.0.3"
-      (sources."wrap-ansi-2.1.0" // {
+      (sources."wrap-ansi-6.2.0" // {
         dependencies = [
-          sources."string-width-1.0.2"
+          sources."ansi-styles-4.2.1"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
         ];
       })
       sources."wrappy-1.0.2"
-      sources."y18n-3.2.1"
+      sources."xmldom-0.3.0"
+      sources."xpath-0.0.27"
+      sources."y18n-4.0.0"
       sources."yallist-2.1.2"
-      (sources."yargs-14.2.3" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."ansi-styles-3.2.1"
-          sources."camelcase-5.3.1"
-          sources."cliui-5.0.0"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."emoji-regex-7.0.3"
-          sources."find-up-3.0.0"
-          sources."get-caller-file-2.0.5"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."locate-path-3.0.0"
-          sources."p-limit-2.3.0"
-          sources."p-locate-3.0.0"
-          sources."p-try-2.2.0"
-          sources."require-main-filename-2.0.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
-          sources."wrap-ansi-5.1.0"
-          sources."y18n-4.0.0"
-          sources."yargs-parser-15.0.1"
-        ];
-      })
-      sources."yargs-parser-7.0.0"
+      sources."yargs-15.4.1"
+      sources."yargs-parser-18.1.3"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -63733,8 +69854,8 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."iterare-1.2.1"
-      sources."jaeger-client-3.18.0"
-      sources."lodash-4.17.15"
+      sources."jaeger-client-3.18.1"
+      sources."lodash-4.17.20"
       sources."long-2.4.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -63753,7 +69874,7 @@ in
       sources."string-template-0.2.1"
       sources."supports-color-5.5.0"
       sources."symbol-observable-1.0.1"
-      sources."thenify-3.3.0"
+      sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
       sources."thriftrw-3.12.0"
       sources."type-detect-4.0.8"
@@ -63785,24 +69906,24 @@ in
   joplin = nodeEnv.buildNodePackage {
     name = "joplin";
     packageName = "joplin";
-    version = "1.0.164";
+    version = "1.1.8";
     src = fetchurl {
-      url = "https://registry.npmjs.org/joplin/-/joplin-1.0.164.tgz";
-      sha512 = "MoTbd8p03e/TKLz6EAlkMQY4g2gfVDoTarePwKXslGbSP/ppgnO7MJ7jy1B7lTlr5ryhhyPhOpz2z//zTcG0Aw==";
+      url = "https://registry.npmjs.org/joplin/-/joplin-1.1.8.tgz";
+      sha512 = "oBMVeCZP/gQ66imuK65rQIXDl5NrpyMPoPGqzcBxsIyTKHV3w5nAYvB+TQUO1fHNw61EsaRhGVMCrO139kkdQw==";
     };
     dependencies = [
-      sources."@cronvel/get-pixels-3.3.1"
+      sources."@cronvel/get-pixels-3.4.0"
       sources."@yarnpkg/lockfile-1.1.0"
-      sources."abab-2.0.3"
+      sources."abab-2.0.5"
       sources."abbrev-1.1.1"
-      sources."acorn-7.2.0"
+      sources."acorn-7.4.0"
       (sources."acorn-globals-4.3.4" // {
         dependencies = [
           sources."acorn-6.4.1"
         ];
       })
       sources."acorn-walk-6.2.0"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       (sources."ansi-escape-sequences-4.1.0" // {
         dependencies = [
           sources."array-back-3.1.0"
@@ -63837,8 +69958,15 @@ in
       sources."async-mutex-0.1.4"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
+      (sources."aws-sdk-2.756.0" // {
+        dependencies = [
+          sources."sax-1.2.1"
+          sources."uuid-3.3.2"
+          sources."xml2js-0.4.19"
+        ];
+      })
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -63849,7 +69977,11 @@ in
       sources."base64-js-1.3.1"
       sources."base64-stream-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."bl-4.0.2"
+      (sources."bl-4.0.3" // {
+        dependencies = [
+          sources."buffer-5.6.0"
+        ];
+      })
       sources."brace-expansion-1.1.11"
       (sources."braces-2.3.2" // {
         dependencies = [
@@ -63857,7 +69989,7 @@ in
         ];
       })
       sources."browser-process-hrtime-1.0.0"
-      sources."buffer-5.6.0"
+      sources."buffer-4.9.2"
       sources."cache-base-1.0.1"
       sources."camel-case-3.0.0"
       sources."camelcase-4.1.0"
@@ -63927,7 +70059,7 @@ in
       sources."cwise-compiler-1.1.3"
       sources."dashdash-1.14.1"
       sources."data-urls-1.1.0"
-      sources."debug-3.2.6"
+      sources."debug-2.6.9"
       sources."decode-uri-component-0.2.0"
       sources."decompress-response-4.2.1"
       sources."deep-extend-0.6.0"
@@ -63942,7 +70074,7 @@ in
       sources."diff-match-patch-1.0.5"
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.0.1"
+          sources."domelementtype-2.0.2"
           sources."entities-2.0.3"
         ];
       })
@@ -63960,18 +70092,22 @@ in
           sources."supports-color-2.0.0"
         ];
       })
-      sources."encoding-0.1.12"
+      (sources."encoding-0.1.13" // {
+        dependencies = [
+          sources."iconv-lite-0.6.2"
+        ];
+      })
       sources."end-of-stream-1.4.4"
       sources."entities-1.1.2"
       sources."es6-promise-pool-2.5.0"
       sources."escape-string-regexp-1.0.5"
-      sources."escodegen-1.14.2"
+      sources."escodegen-1.14.3"
       sources."esprima-4.0.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
+      sources."events-1.1.1"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
-          sources."debug-2.6.9"
           sources."define-property-0.2.5"
           sources."extend-shallow-2.0.1"
           (sources."is-accessor-descriptor-0.1.6" // {
@@ -63986,7 +70122,6 @@ in
           })
           sources."is-descriptor-0.1.6"
           sources."kind-of-5.1.0"
-          sources."ms-2.0.0"
         ];
       })
       sources."expand-template-2.0.3"
@@ -64007,7 +70142,6 @@ in
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."fault-1.0.4"
-      sources."fd-slicer-1.1.0"
       sources."file-type-10.11.0"
       sources."file-uri-to-path-1.0.0"
       (sources."fill-range-4.0.0" // {
@@ -64021,7 +70155,7 @@ in
           sources."fs-extra-4.0.3"
         ];
       })
-      sources."follow-redirects-1.11.0"
+      sources."follow-redirects-1.13.0"
       sources."font-awesome-filetypes-2.1.0"
       sources."for-each-property-0.0.4"
       sources."for-each-property-deep-0.0.3"
@@ -64047,7 +70181,7 @@ in
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-ansi-2.0.0"
       sources."has-flag-3.0.0"
       sources."has-unicode-2.0.1"
@@ -64058,19 +70192,20 @@ in
         ];
       })
       sources."he-1.2.0"
-      sources."highlight.js-9.18.1"
+      sources."highlight.js-10.1.1"
       sources."html-encoding-sniffer-1.0.2"
       sources."html-entities-1.3.1"
       sources."html-minifier-3.5.21"
       (sources."htmlparser2-4.1.0" // {
         dependencies = [
-          sources."domelementtype-2.0.1"
+          sources."dom-serializer-1.1.0"
+          sources."domelementtype-2.0.2"
           sources."domhandler-3.0.0"
-          sources."domutils-2.1.0"
+          sources."domutils-2.3.0"
           sources."entities-2.0.3"
         ];
       })
-      sources."http-errors-1.7.3"
+      sources."http-errors-1.8.0"
       sources."http-signature-1.2.0"
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.1.13"
@@ -64120,6 +70255,7 @@ in
       sources."is-ci-2.0.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-descriptor-1.0.2"
+      sources."is-docker-2.1.1"
       sources."is-extendable-0.1.1"
       sources."is-fullwidth-code-point-1.0.0"
       (sources."is-number-3.0.0" // {
@@ -64133,6 +70269,7 @@ in
       sources."is-typedarray-1.0.0"
       sources."is-unc-path-0.1.2"
       sources."is-windows-0.2.0"
+      sources."is-wsl-2.2.0"
       (sources."is2-0.0.9" // {
         dependencies = [
           sources."deep-is-0.1.2"
@@ -64142,9 +70279,10 @@ in
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
       sources."isstream-0.1.2"
-      sources."joplin-turndown-4.0.28"
+      sources."jmespath-0.15.0"
+      sources."joplin-turndown-4.0.29"
       sources."joplin-turndown-plugin-gfm-1.0.12"
-      sources."jpeg-js-0.1.2"
+      sources."jpeg-js-0.4.2"
       sources."js-tokens-4.0.0"
       sources."jsbn-0.1.1"
       sources."jsdom-15.2.1"
@@ -64154,11 +70292,12 @@ in
       sources."jsonfile-4.0.0"
       sources."jsprim-1.4.1"
       sources."jssha-2.4.2"
-      (sources."katex-0.11.1" // {
+      (sources."katex-0.12.0" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
       })
+      sources."keytar-5.6.0"
       sources."kind-of-6.0.3"
       sources."klaw-1.3.1"
       sources."klaw-sync-6.0.0"
@@ -64167,7 +70306,7 @@ in
       sources."levn-0.3.0"
       sources."linkify-it-2.2.0"
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash-es-4.17.15"
       sources."lodash.padend-4.6.1"
       sources."lodash.repeat-4.1.0"
@@ -64190,21 +70329,23 @@ in
       })
       sources."markdown-it-abbr-1.0.4"
       sources."markdown-it-anchor-5.3.0"
-      sources."markdown-it-deflist-2.0.3"
+      sources."markdown-it-deflist-2.1.0"
       sources."markdown-it-emoji-1.4.0"
       sources."markdown-it-expand-tabs-1.0.13"
       sources."markdown-it-footnote-3.0.2"
       sources."markdown-it-ins-3.0.0"
       sources."markdown-it-mark-3.0.0"
-      (sources."markdown-it-multimd-table-4.0.2" // {
+      (sources."markdown-it-multimd-table-4.0.3" // {
         dependencies = [
-          sources."markdown-it-8.4.2"
+          sources."entities-2.0.3"
+          sources."linkify-it-3.0.2"
+          sources."markdown-it-11.0.1"
         ];
       })
       sources."markdown-it-sub-1.0.0"
       sources."markdown-it-sup-1.0.0"
       sources."markdown-it-toc-done-right-4.1.0"
-      sources."md5-2.2.1"
+      sources."md5-2.3.0"
       sources."md5-file-4.0.0"
       sources."mdurl-1.0.1"
       sources."memory-cache-0.2.0"
@@ -64216,7 +70357,7 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minipass-3.1.3"
-      sources."minizlib-2.1.0"
+      sources."minizlib-2.1.2"
       (sources."mixin-deep-1.3.2" // {
         dependencies = [
           sources."is-extendable-1.0.1"
@@ -64224,13 +70365,9 @@ in
       })
       sources."mkdirp-0.5.5"
       sources."mkdirp-classic-0.5.3"
-      sources."moment-2.26.0"
-      sources."ms-2.1.2"
-      (sources."multiparty-4.2.1" // {
-        dependencies = [
-          sources."safe-buffer-5.1.2"
-        ];
-      })
+      sources."moment-2.28.0"
+      sources."ms-2.0.0"
+      sources."multiparty-4.2.2"
       sources."nan-2.14.1"
       (sources."nanomatch-1.2.13" // {
         dependencies = [
@@ -64240,11 +70377,16 @@ in
       sources."napi-build-utils-1.0.2"
       sources."ndarray-1.0.19"
       sources."ndarray-pack-1.2.1"
-      sources."needle-2.5.0"
+      (sources."needle-2.5.2" // {
+        dependencies = [
+          sources."debug-3.2.6"
+          sources."ms-2.1.2"
+        ];
+      })
       sources."nextgen-events-1.3.0"
       sources."nice-try-1.0.5"
       sources."no-case-2.3.2"
-      sources."node-abi-2.18.0"
+      sources."node-abi-2.19.1"
       sources."node-bitmap-0.0.1"
       sources."node-emoji-1.10.0"
       sources."node-fetch-1.7.3"
@@ -64283,6 +70425,7 @@ in
       sources."object.pick-1.3.0"
       sources."omggif-1.0.10"
       sources."once-1.4.0"
+      sources."open-7.2.1"
       sources."optionator-0.8.3"
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
@@ -64301,25 +70444,25 @@ in
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
-      sources."pend-1.2.0"
       sources."performance-now-2.1.0"
       sources."pify-3.0.0"
       sources."pipe-functions-1.3.0"
       sources."pn-1.1.0"
-      sources."pngjs-2.3.1"
+      sources."pngjs-5.0.0"
       sources."posix-character-classes-0.1.1"
-      sources."prebuild-install-5.3.4"
+      sources."prebuild-install-5.3.3"
       sources."prelude-ls-1.1.2"
       sources."process-nextick-args-2.0.1"
       sources."promise-7.3.1"
       sources."proper-lockfile-2.0.1"
       sources."psl-1.8.0"
       sources."pump-3.0.0"
-      sources."punycode-2.1.1"
+      sources."punycode-1.3.2"
       sources."q-1.1.2"
       sources."qs-6.5.2"
       sources."query-string-4.3.4"
-      sources."querystringify-2.1.1"
+      sources."querystring-0.2.0"
+      sources."querystringify-2.2.0"
       sources."random-bytes-1.0.0"
       sources."rc-1.2.8"
       sources."read-chunk-2.1.0"
@@ -64338,12 +70481,14 @@ in
       (sources."request-2.88.2" // {
         dependencies = [
           sources."form-data-2.3.3"
+          sources."punycode-2.1.1"
           sources."tough-cookie-2.5.0"
         ];
       })
-      sources."request-promise-core-1.1.3"
-      (sources."request-promise-native-1.0.8" // {
+      sources."request-promise-core-1.1.4"
+      (sources."request-promise-native-1.0.9" // {
         dependencies = [
+          sources."punycode-2.1.1"
           sources."tough-cookie-2.5.0"
         ];
       })
@@ -64366,7 +70511,7 @@ in
         ];
       })
       sources."setimmediate-1.0.5"
-      sources."setprototypeof-1.1.1"
+      sources."setprototypeof-1.2.0"
       sources."seventh-0.7.35"
       (sources."sharp-0.23.4" // {
         dependencies = [
@@ -64377,7 +70522,7 @@ in
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."signal-exit-3.0.3"
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."simple-get-3.1.0"
       sources."simple-swizzle-0.2.2"
       sources."slash-2.0.0"
@@ -64388,7 +70533,6 @@ in
       })
       (sources."snapdragon-0.8.2" // {
         dependencies = [
-          sources."debug-2.6.9"
           sources."define-property-0.2.5"
           sources."extend-shallow-2.0.1"
           (sources."is-accessor-descriptor-0.1.6" // {
@@ -64403,7 +70547,6 @@ in
           })
           sources."is-descriptor-0.1.6"
           sources."kind-of-5.1.0"
-          sources."ms-2.0.0"
           sources."source-map-0.5.7"
         ];
       })
@@ -64445,7 +70588,7 @@ in
       sources."statuses-1.5.0"
       sources."stealthy-require-1.1.1"
       sources."strict-uri-encode-1.1.0"
-      sources."string-kit-0.11.7"
+      sources."string-kit-0.11.8"
       sources."string-padding-1.0.2"
       (sources."string-to-stream-1.1.1" // {
         dependencies = [
@@ -64485,14 +70628,14 @@ in
         ];
       })
       sources."tar-fs-2.1.0"
-      sources."tar-stream-2.1.2"
+      sources."tar-stream-2.1.4"
       (sources."tcp-port-used-0.1.2" // {
         dependencies = [
           sources."debug-0.7.4"
           sources."q-0.9.7"
         ];
       })
-      sources."terminal-kit-1.35.3"
+      sources."terminal-kit-1.43.0"
       (sources."tkwidgets-0.5.26" // {
         dependencies = [
           sources."is-fullwidth-code-point-2.0.0"
@@ -64509,8 +70652,16 @@ in
       sources."to-regex-3.0.2"
       sources."to-regex-range-2.1.1"
       sources."toidentifier-1.0.0"
-      sources."tough-cookie-3.0.1"
-      sources."tr46-1.0.1"
+      (sources."tough-cookie-3.0.1" // {
+        dependencies = [
+          sources."punycode-2.1.1"
+        ];
+      })
+      (sources."tr46-1.0.1" // {
+        dependencies = [
+          sources."punycode-2.1.1"
+        ];
+      })
       sources."tree-kit-0.6.2"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
@@ -64540,8 +70691,13 @@ in
         ];
       })
       sources."upper-case-1.1.3"
-      sources."uri-js-4.2.2"
+      (sources."uri-js-4.4.0" // {
+        dependencies = [
+          sources."punycode-2.1.1"
+        ];
+      })
       sources."urix-0.1.0"
+      sources."url-0.10.3"
       sources."url-parse-1.4.7"
       sources."use-3.1.1"
       sources."uslug-1.0.4"
@@ -64567,10 +70723,14 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xml-name-validator-3.0.0"
-      sources."xml2js-0.4.23"
-      sources."xmlbuilder-11.0.1"
+      (sources."xml2js-0.4.23" // {
+        dependencies = [
+          sources."xmlbuilder-11.0.1"
+        ];
+      })
+      sources."xmlbuilder-9.0.7"
       sources."xmlchars-2.2.0"
       sources."yallist-4.0.0"
       sources."yargs-parser-7.0.0"
@@ -64588,10 +70748,10 @@ in
   js-beautify = nodeEnv.buildNodePackage {
     name = "js-beautify";
     packageName = "js-beautify";
-    version = "1.11.0";
+    version = "1.13.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.11.0.tgz";
-      sha512 = "a26B+Cx7USQGSWnz9YxgJNMmML/QG2nqIaL7VVYPCXbqiKz8PN0waSNvroMtvAK6tY7g/wPdNWGEP+JTNIBr6A==";
+      url = "https://registry.npmjs.org/js-beautify/-/js-beautify-1.13.0.tgz";
+      sha512 = "/Tbp1OVzZjbwzwJQFIlYLm9eWQ+3aYbBXLSaqb1mEJzhcQAfrqMMQYtjb6io+U6KpD0ID4F+Id3/xcjH3l/sqA==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
@@ -64609,11 +70769,8 @@ in
       sources."lru-cache-4.1.5"
       sources."minimatch-3.0.4"
       sources."mkdirp-1.0.4"
-      sources."nopt-4.0.3"
+      sources."nopt-5.0.0"
       sources."once-1.4.0"
-      sources."os-homedir-1.0.2"
-      sources."os-tmpdir-1.0.2"
-      sources."osenv-0.1.5"
       sources."path-is-absolute-1.0.1"
       sources."proto-list-1.2.4"
       sources."pseudomap-1.0.2"
@@ -64658,13 +70815,13 @@ in
   jsdoc = nodeEnv.buildNodePackage {
     name = "jsdoc";
     packageName = "jsdoc";
-    version = "3.6.4";
+    version = "3.6.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.4.tgz";
-      sha512 = "3G9d37VHv7MFdheviDCjUfQoIjdv4TC5zTTf5G9VODLtOnVS6La1eoYBDlbWfsRT3/Xo+j2MIqki2EV12BZfwA==";
+      url = "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.6.tgz";
+      sha512 = "znR99e1BHeyEkSvgDDpX0sTiTu+8aQyDl9DawrkOGZTTW8hv0deIFXx87114zJ7gRaDZKVQD/4tr1ifmJp9xhQ==";
     };
     dependencies = [
-      sources."@babel/parser-7.10.2"
+      sources."@babel/parser-7.11.5"
       sources."argparse-1.0.10"
       sources."bluebird-3.7.2"
       sources."catharsis-0.8.11"
@@ -64674,7 +70831,7 @@ in
       sources."js2xmlparser-4.0.1"
       sources."klaw-3.0.0"
       sources."linkify-it-2.2.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."markdown-it-10.0.0"
       sources."markdown-it-anchor-5.3.0"
       sources."marked-0.8.2"
@@ -64682,7 +70839,7 @@ in
       sources."mkdirp-1.0.4"
       sources."requizzle-0.2.3"
       sources."sprintf-js-1.0.3"
-      sources."strip-json-comments-3.1.0"
+      sources."strip-json-comments-3.1.1"
       sources."taffydb-2.6.2"
       sources."uc.micro-1.0.6"
       sources."underscore-1.10.2"
@@ -64701,10 +70858,10 @@ in
   jshint = nodeEnv.buildNodePackage {
     name = "jshint";
     packageName = "jshint";
-    version = "2.11.1";
+    version = "2.12.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/jshint/-/jshint-2.11.1.tgz";
-      sha512 = "WXWePB8ssAH3DlD05IoqolsY6arhbll/1+i2JkRPpihQAuiNaR/gSt8VKIcxpV5m6XChP0hCwESQUqpuQMA8Tg==";
+      url = "https://registry.npmjs.org/jshint/-/jshint-2.12.0.tgz";
+      sha512 = "TwuuaUDmra0JMkuqvqy+WGo2xGHSNjv1BA1nTIgtH2K5z1jHuAEeAgp7laaR+hLRmajRjcrM71+vByBDanCyYA==";
     };
     dependencies = [
       sources."balanced-match-1.0.0"
@@ -64716,7 +70873,7 @@ in
       sources."date-now-0.1.4"
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.0.1"
+          sources."domelementtype-2.0.2"
           sources."entities-2.0.3"
         ];
       })
@@ -64731,7 +70888,7 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."isarray-0.0.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."minimatch-3.0.4"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
@@ -64745,7 +70902,7 @@ in
     meta = {
       description = "Static analysis tool for JavaScript";
       homepage = http://jshint.com/;
-      license = "(MIT AND JSON)";
+      license = "MIT";
     };
     production = true;
     bypassCache = true;
@@ -64754,10 +70911,10 @@ in
   json = nodeEnv.buildNodePackage {
     name = "json";
     packageName = "json";
-    version = "9.0.6";
+    version = "10.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/json/-/json-9.0.6.tgz";
-      sha1 = "7972c2a5a48a42678db2730c7c2c4ee6e4e24585";
+      url = "https://registry.npmjs.org/json/-/json-10.0.0.tgz";
+      sha512 = "iK7tAZtpoghibjdB1ncCWykeBMmke3JThUe+rnkD4qkZaglOIQ70Pw7r5UJ4lyUT+7gnw7ehmmLUHDuhqzQD+g==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -64819,7 +70976,7 @@ in
       sources."inherits-2.0.4"
       sources."isarray-1.0.0"
       sources."js-yaml-3.14.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."methods-1.1.2"
       sources."mime-1.6.0"
       sources."mime-db-1.44.0"
@@ -64836,7 +70993,7 @@ in
       sources."sprintf-js-1.0.3"
       sources."string_decoder-1.1.1"
       sources."superagent-3.8.3"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
     ];
     buildInputs = globalBuildInputs;
@@ -64862,7 +71019,7 @@ in
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/color-name-1.1.1"
       sources."accepts-1.3.7"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."string-width-3.1.0"
@@ -64875,7 +71032,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."basic-auth-2.0.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."body-parser-1.19.0"
@@ -64883,7 +71040,7 @@ in
       sources."bytes-3.1.0"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
@@ -64891,7 +71048,7 @@ in
       sources."caseless-0.12.0"
       sources."chalk-3.0.0"
       sources."ci-info-2.0.0"
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       (sources."cliui-6.0.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
@@ -64926,7 +71083,7 @@ in
       sources."delayed-stream-1.0.0"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."dot-prop-5.2.0"
+      sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
@@ -64938,7 +71095,7 @@ in
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
       sources."express-4.17.1"
-      (sources."express-urlrewrite-1.2.0" // {
+      (sources."express-urlrewrite-1.3.0" // {
         dependencies = [
           sources."path-to-regexp-1.8.0"
         ];
@@ -64960,7 +71117,7 @@ in
       sources."got-9.6.0"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-flag-4.0.0"
       sources."has-yarn-2.1.0"
       sources."http-cache-semantics-4.1.0"
@@ -64994,7 +71151,7 @@ in
       sources."keyv-3.1.0"
       sources."latest-version-5.1.0"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash-id-0.14.0"
       sources."lowdb-1.0.0"
       sources."lowercase-keys-1.0.1"
@@ -65048,7 +71205,7 @@ in
       sources."range-parser-1.2.1"
       sources."raw-body-2.4.0"
       sources."rc-1.2.8"
-      sources."registry-auth-token-4.1.1"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       (sources."request-2.88.2" // {
         dependencies = [
@@ -65086,7 +71243,7 @@ in
       })
       sources."strip-ansi-5.2.0"
       sources."strip-json-comments-2.0.1"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."term-size-2.2.0"
       sources."to-readable-stream-1.0.0"
       sources."toidentifier-1.0.0"
@@ -65098,8 +71255,8 @@ in
       sources."typedarray-to-buffer-3.1.5"
       sources."unique-string-2.0.0"
       sources."unpipe-1.0.0"
-      sources."update-notifier-4.1.0"
-      sources."uri-js-4.2.2"
+      sources."update-notifier-4.1.1"
+      sources."uri-js-4.4.0"
       sources."url-parse-lax-3.0.0"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
@@ -65117,7 +71274,7 @@ in
       sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-4.0.0"
       sources."y18n-4.0.0"
-      sources."yargs-15.3.1"
+      sources."yargs-15.4.1"
       sources."yargs-parser-18.1.3"
     ];
     buildInputs = globalBuildInputs;
@@ -65159,10 +71316,10 @@ in
   karma = nodeEnv.buildNodePackage {
     name = "karma";
     packageName = "karma";
-    version = "5.0.9";
+    version = "5.2.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/karma/-/karma-5.0.9.tgz";
-      sha512 = "dUA5z7Lo7G4FRSe1ZAXqOINEEWxmCjDBbfRBmU/wYlSMwxUQJP/tEEP90yJt3Uqo03s9rCgVnxtlfq+uDhxSPg==";
+      url = "https://registry.npmjs.org/karma/-/karma-5.2.2.tgz";
+      sha512 = "rB3Ua5yDxmIupTj67r3Q8itz7TxJzRE6DmVcOfV20D509Uu9AoBKlVwbZhND4kcm6BqLfbHtv4DZC9QJfrUY+w==";
     };
     dependencies = [
       sources."@types/color-name-1.1.1"
@@ -65178,7 +71335,7 @@ in
       sources."base64-arraybuffer-0.1.5"
       sources."base64id-2.0.0"
       sources."better-assert-1.0.2"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."blob-0.0.5"
       sources."body-parser-1.19.0"
       sources."brace-expansion-1.1.11"
@@ -65186,7 +71343,7 @@ in
       sources."bytes-3.1.0"
       sources."callsite-1.0.0"
       sources."camelcase-5.3.1"
-      sources."chokidar-3.4.0"
+      sources."chokidar-3.4.2"
       sources."cliui-6.0.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
@@ -65225,18 +71382,13 @@ in
       sources."engine.io-parser-2.2.0"
       sources."ent-2.2.0"
       sources."escape-html-1.0.3"
-      sources."eventemitter3-4.0.4"
+      sources."eventemitter3-4.0.7"
       sources."extend-3.0.2"
       sources."fill-range-7.0.1"
       sources."finalhandler-1.1.2"
       sources."find-up-4.1.0"
       sources."flatted-2.0.2"
-      (sources."follow-redirects-1.11.0" // {
-        dependencies = [
-          sources."debug-3.2.6"
-          sources."ms-2.1.2"
-        ];
-      })
+      sources."follow-redirects-1.13.0"
       sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
       sources."fsevents-2.1.3"
@@ -65261,10 +71413,10 @@ in
       sources."isbinaryfile-4.0.6"
       sources."jsonfile-4.0.0"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       (sources."log4js-6.3.0" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."debug-4.3.0"
           sources."ms-2.1.2"
         ];
       })
@@ -65331,7 +71483,7 @@ in
       (sources."streamroller-2.2.4" // {
         dependencies = [
           sources."date-format-2.1.0"
-          sources."debug-4.2.0"
+          sources."debug-4.3.0"
           sources."ms-2.1.2"
         ];
       })
@@ -65350,10 +71502,10 @@ in
       sources."which-module-2.0.0"
       sources."wrap-ansi-6.2.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."y18n-4.0.0"
-      sources."yargs-15.3.1"
+      sources."yargs-15.4.1"
       sources."yargs-parser-18.1.3"
       sources."yeast-0.1.2"
     ];
@@ -65390,6 +71542,8 @@ in
       sources."define-properties-1.1.3"
       sources."duplexify-3.7.1"
       sources."end-of-stream-1.4.4"
+      sources."es-abstract-1.18.0-next.0"
+      sources."es-to-primitive-1.2.1"
       sources."extend-3.0.2"
       sources."flush-write-stream-1.1.1"
       sources."fs-mkdirp-stream-1.0.0"
@@ -65399,15 +71553,21 @@ in
       sources."glob-parent-3.1.0"
       sources."glob-stream-6.1.0"
       sources."graceful-fs-4.2.4"
+      sources."has-1.0.3"
       sources."has-symbols-1.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."is-absolute-1.0.0"
       sources."is-buffer-1.1.6"
+      sources."is-callable-1.2.1"
+      sources."is-date-object-1.0.2"
       sources."is-extglob-2.1.1"
       sources."is-glob-3.1.0"
       sources."is-negated-glob-1.0.0"
+      sources."is-negative-zero-2.0.0"
+      sources."is-regex-1.1.1"
       sources."is-relative-1.0.0"
+      sources."is-symbol-1.0.3"
       sources."is-unc-path-1.0.0"
       sources."is-utf8-0.2.1"
       sources."is-valid-glob-1.0.0"
@@ -65419,8 +71579,9 @@ in
       sources."minimatch-3.0.4"
       sources."normalize-path-2.1.1"
       sources."now-and-later-2.0.1"
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.0"
+      sources."object.assign-4.1.1"
       sources."once-1.4.0"
       sources."ordered-read-streams-1.0.1"
       sources."path-dirname-1.0.2"
@@ -65436,6 +71597,16 @@ in
       sources."resolve-options-1.1.0"
       sources."safe-buffer-5.1.2"
       sources."stream-shift-1.0.1"
+      (sources."string.prototype.trimend-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
+      (sources."string.prototype.trimstart-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
       sources."string_decoder-1.1.1"
       sources."through2-2.0.5"
       sources."through2-filter-3.0.0"
@@ -65473,7 +71644,7 @@ in
       sources."abab-1.0.4"
       sources."acorn-2.7.0"
       sources."acorn-globals-1.0.9"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-3.2.1"
       sources."asn1-0.2.4"
@@ -65481,7 +71652,7 @@ in
       sources."async-1.5.2"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."boolbase-1.0.0"
@@ -65521,7 +71692,7 @@ in
       sources."end-of-stream-1.4.4"
       sources."entities-1.1.2"
       sources."escape-string-regexp-1.0.5"
-      sources."escodegen-1.14.2"
+      sources."escodegen-1.14.3"
       sources."esprima-4.0.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
@@ -65541,7 +71712,7 @@ in
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-flag-3.0.0"
       sources."he-1.2.0"
       (sources."htmlparser2-3.8.3" // {
@@ -65570,7 +71741,7 @@ in
       sources."lcid-1.0.0"
       sources."levn-0.3.0"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."log-symbols-2.2.0"
       sources."map-age-cleaner-0.1.3"
       (sources."mem-4.3.0" // {
@@ -65584,7 +71755,7 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-0.0.8"
       sources."mkdirp-0.5.1"
-      sources."moment-2.26.0"
+      sources."moment-2.28.0"
       sources."mute-stream-0.0.8"
       (sources."nconf-0.10.0" // {
         dependencies = [
@@ -65663,7 +71834,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
       sources."underscore-1.9.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       (sources."utile-0.3.0" // {
         dependencies = [
           sources."async-0.9.2"
@@ -65727,9 +71898,9 @@ in
       sha512 = "vk1lfVRFm+UuEFA7wkLKeSF7Iz13W+N/vFd48aW2yuS7Kv0RbNm2/qcDPV863056LMfkRlsEe+QYOw3palj5Lg==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      sources."@babel/highlight-7.10.1"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
       (sources."@evocateur/libnpmaccess-3.1.2" // {
         dependencies = [
           sources."aproba-2.0.0"
@@ -65824,12 +71995,11 @@ in
       sources."@lerna/write-log-file-3.13.0"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
-      sources."@octokit/auth-token-2.4.1"
-      (sources."@octokit/endpoint-6.0.2" // {
+      sources."@octokit/auth-token-2.4.2"
+      (sources."@octokit/endpoint-6.0.6" // {
         dependencies = [
-          sources."is-plain-object-3.0.0"
-          sources."isobject-4.0.0"
-          sources."universal-user-agent-5.0.0"
+          sources."is-plain-object-5.0.0"
+          sources."universal-user-agent-6.0.0"
         ];
       })
       sources."@octokit/plugin-enterprise-rest-6.0.1"
@@ -65844,12 +72014,11 @@ in
           sources."@octokit/types-2.16.2"
         ];
       })
-      (sources."@octokit/request-5.4.4" // {
+      (sources."@octokit/request-5.4.9" // {
         dependencies = [
-          sources."@octokit/request-error-2.0.1"
-          sources."is-plain-object-3.0.0"
-          sources."isobject-4.0.0"
-          sources."universal-user-agent-5.0.0"
+          sources."@octokit/request-error-2.0.2"
+          sources."is-plain-object-5.0.0"
+          sources."universal-user-agent-6.0.0"
         ];
       })
       (sources."@octokit/request-error-1.2.1" // {
@@ -65857,19 +72026,19 @@ in
           sources."@octokit/types-2.16.2"
         ];
       })
-      sources."@octokit/rest-16.43.1"
-      sources."@octokit/types-4.1.10"
-      sources."@types/glob-7.1.2"
+      sources."@octokit/rest-16.43.2"
+      sources."@octokit/types-5.5.0"
+      sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
       sources."@types/minimist-1.2.0"
-      sources."@types/node-14.0.13"
+      sources."@types/node-14.11.1"
       sources."@types/normalize-package-data-2.4.0"
       sources."@zkochan/cmd-shim-3.1.0"
       sources."JSONStream-1.3.5"
       sources."abbrev-1.1.1"
       sources."agent-base-4.3.0"
       sources."agentkeepalive-3.5.2"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-3.2.1"
@@ -65895,7 +72064,7 @@ in
       sources."atob-2.1.2"
       sources."atob-lite-2.0.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -65963,10 +72132,10 @@ in
       sources."color-name-1.1.3"
       sources."columnify-1.5.4"
       sources."combined-stream-1.0.8"
-      sources."commander-2.20.3"
-      (sources."compare-func-1.3.4" // {
+      (sources."compare-func-2.0.0" // {
         dependencies = [
-          sources."dot-prop-3.0.0"
+          sources."dot-prop-5.3.0"
+          sources."is-obj-2.0.0"
         ];
       })
       sources."component-emitter-1.3.0"
@@ -65974,22 +72143,22 @@ in
       sources."concat-stream-1.6.2"
       sources."config-chain-1.1.12"
       sources."console-control-strings-1.1.0"
-      sources."conventional-changelog-angular-5.0.10"
+      sources."conventional-changelog-angular-5.0.11"
       (sources."conventional-changelog-core-3.2.3" // {
         dependencies = [
-          sources."through2-3.0.1"
+          sources."through2-3.0.2"
         ];
       })
       sources."conventional-changelog-preset-loader-2.3.4"
-      (sources."conventional-changelog-writer-4.0.16" // {
+      (sources."conventional-changelog-writer-4.0.17" // {
         dependencies = [
-          sources."through2-3.0.1"
+          sources."through2-3.0.2"
         ];
       })
       sources."conventional-commits-filter-2.0.6"
       (sources."conventional-commits-parser-3.1.0" // {
         dependencies = [
-          sources."through2-3.0.1"
+          sources."through2-3.0.2"
         ];
       })
       (sources."conventional-recommended-bump-5.0.1" // {
@@ -66045,18 +72214,18 @@ in
       sources."detect-indent-5.0.0"
       sources."dezalgo-1.0.3"
       sources."dir-glob-2.2.2"
-      sources."dot-prop-4.2.0"
-      sources."duplexer-0.1.1"
+      sources."dot-prop-4.2.1"
+      sources."duplexer-0.1.2"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
       sources."emoji-regex-7.0.3"
-      sources."encoding-0.1.12"
+      sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
       sources."env-paths-2.2.0"
-      sources."envinfo-7.5.1"
+      sources."envinfo-7.7.3"
       sources."err-code-1.1.2"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."es6-promise-4.2.8"
       sources."es6-promisify-5.0.0"
@@ -66090,7 +72259,11 @@ in
           sources."is-extendable-1.0.1"
         ];
       })
-      sources."external-editor-3.1.0"
+      (sources."external-editor-3.1.0" // {
+        dependencies = [
+          sources."iconv-lite-0.4.24"
+        ];
+      })
       (sources."extglob-2.0.4" // {
         dependencies = [
           sources."define-property-1.0.0"
@@ -66195,8 +72368,8 @@ in
           sources."trim-newlines-2.0.0"
         ];
       })
-      sources."git-up-4.0.1"
-      sources."git-url-parse-11.1.2"
+      sources."git-up-4.0.2"
+      sources."git-url-parse-11.2.0"
       sources."gitconfiglocal-1.0.0"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.1"
@@ -66213,7 +72386,7 @@ in
         ];
       })
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
@@ -66231,7 +72404,7 @@ in
       sources."http-signature-1.2.0"
       sources."https-proxy-agent-2.2.4"
       sources."humanize-ms-1.2.1"
-      sources."iconv-lite-0.4.24"
+      sources."iconv-lite-0.6.2"
       sources."iferr-0.1.5"
       sources."ignore-4.0.6"
       sources."ignore-walk-3.0.3"
@@ -66262,7 +72435,7 @@ in
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
-      sources."is-callable-1.2.0"
+      sources."is-callable-1.2.1"
       sources."is-ci-2.0.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.2"
@@ -66273,6 +72446,7 @@ in
       sources."is-finite-1.1.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
+      sources."is-negative-zero-2.0.0"
       (sources."is-number-3.0.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
@@ -66281,8 +72455,8 @@ in
       sources."is-obj-1.0.1"
       sources."is-plain-obj-1.1.0"
       sources."is-plain-object-2.0.4"
-      sources."is-regex-1.1.0"
-      sources."is-ssh-1.3.1"
+      sources."is-regex-1.1.1"
+      sources."is-ssh-1.3.2"
       sources."is-stream-1.1.0"
       sources."is-symbol-1.0.3"
       sources."is-text-path-1.0.1"
@@ -66297,6 +72471,7 @@ in
       sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
       sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
@@ -66311,7 +72486,7 @@ in
         ];
       })
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash._reinterpolate-3.0.0"
       sources."lodash.clonedeep-4.5.0"
       sources."lodash.get-4.4.2"
@@ -66323,20 +72498,18 @@ in
       sources."lodash.uniq-4.5.0"
       sources."loud-rejection-1.6.0"
       sources."lru-cache-5.1.1"
-      sources."macos-release-2.3.0"
+      sources."macos-release-2.4.1"
       sources."make-dir-1.3.0"
       sources."make-fetch-happen-5.0.2"
       sources."map-cache-0.2.2"
       sources."map-obj-4.1.0"
       sources."map-visit-1.0.0"
-      (sources."meow-7.0.1" // {
+      (sources."meow-7.1.1" // {
         dependencies = [
-          sources."arrify-2.0.1"
-          sources."camelcase-6.0.0"
           sources."find-up-4.1.0"
           sources."locate-path-5.0.0"
           sources."p-locate-4.1.0"
-          sources."parse-json-5.0.0"
+          sources."parse-json-5.1.0"
           sources."path-exists-4.0.0"
           (sources."read-pkg-5.2.0" // {
             dependencies = [
@@ -66349,11 +72522,7 @@ in
             ];
           })
           sources."type-fest-0.13.1"
-          (sources."yargs-parser-18.1.3" // {
-            dependencies = [
-              sources."camelcase-5.3.1"
-            ];
-          })
+          sources."yargs-parser-18.1.3"
         ];
       })
       sources."merge2-1.4.1"
@@ -66382,9 +72551,9 @@ in
       sources."mute-stream-0.0.7"
       sources."mz-2.7.0"
       sources."nanomatch-1.2.13"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       sources."nice-try-1.0.5"
-      sources."node-fetch-2.6.0"
+      sources."node-fetch-2.6.1"
       sources."node-fetch-npm-2.0.4"
       (sources."node-gyp-5.1.1" // {
         dependencies = [
@@ -66430,10 +72599,14 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
-      sources."object.assign-4.1.0"
+      (sources."object.assign-4.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."object.getownpropertydescriptors-2.1.0"
       sources."object.pick-1.3.0"
       sources."octokit-pagination-methods-1.1.0"
@@ -66456,8 +72629,8 @@ in
       sources."parallel-transform-1.2.0"
       sources."parse-github-repo-url-1.4.1"
       sources."parse-json-4.0.0"
-      sources."parse-path-4.0.1"
-      sources."parse-url-5.0.1"
+      sources."parse-path-4.0.2"
+      sources."parse-url-5.0.2"
       sources."pascalcase-0.1.1"
       sources."path-dirname-1.0.2"
       sources."path-exists-3.0.0"
@@ -66476,7 +72649,7 @@ in
       sources."promise-retry-1.1.1"
       sources."promzard-0.3.0"
       sources."proto-list-1.2.4"
-      sources."protocols-1.4.7"
+      sources."protocols-1.4.8"
       sources."protoduck-5.0.1"
       sources."psl-1.8.0"
       sources."pump-3.0.0"
@@ -66491,7 +72664,7 @@ in
       sources."quick-lru-4.0.1"
       sources."read-1.0.7"
       sources."read-cmd-shim-1.0.5"
-      sources."read-package-json-2.1.1"
+      sources."read-package-json-2.1.2"
       sources."read-package-tree-5.3.1"
       (sources."read-pkg-3.0.0" // {
         dependencies = [
@@ -66535,7 +72708,7 @@ in
       sources."rimraf-2.7.1"
       sources."run-async-2.4.1"
       sources."run-queue-1.0.3"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.3"
       sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
@@ -66596,7 +72769,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."split-1.0.1"
       sources."split-string-3.1.0"
       sources."split2-2.2.0"
@@ -66629,8 +72802,6 @@ in
         ];
       })
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
       (sources."string_decoder-1.1.1" // {
         dependencies = [
@@ -66647,7 +72818,7 @@ in
       sources."temp-dir-1.0.0"
       sources."temp-write-3.4.0"
       sources."text-extensions-1.9.0"
-      sources."thenify-3.3.0"
+      sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
       sources."through-2.3.8"
       sources."through2-2.0.5"
@@ -66668,7 +72839,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-fest-0.3.1"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.9.4"
+      sources."uglify-js-3.10.4"
       sources."uid-number-0.0.6"
       sources."umask-1.1.0"
       sources."union-value-1.0.1"
@@ -66687,7 +72858,7 @@ in
         ];
       })
       sources."upath-1.2.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
@@ -66702,7 +72873,7 @@ in
       sources."which-1.3.1"
       sources."which-module-2.0.0"
       sources."wide-align-1.1.3"
-      sources."windows-release-3.3.1"
+      sources."windows-release-3.3.3"
       sources."wordwrap-1.0.0"
       (sources."wrap-ansi-5.1.0" // {
         dependencies = [
@@ -66750,72 +72921,23 @@ in
   less = nodeEnv.buildNodePackage {
     name = "less";
     packageName = "less";
-    version = "3.11.3";
+    version = "3.12.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/less/-/less-3.11.3.tgz";
-      sha512 = "VkZiTDdtNEzXA3LgjQiC3D7/ejleBPFVvq+aRI9mIj+Zhmif5TvFPM244bT4rzkvOCvJ9q4zAztok1M7Nygagw==";
+      url = "https://registry.npmjs.org/less/-/less-3.12.2.tgz";
+      sha512 = "+1V2PCMFkL+OIj2/HrtrvZw0BC0sYLMICJfbQjuj/K8CEnlrFX6R5cKKgzzttsZDHyxQNL1jqMREjKN3ja/E3Q==";
     };
     dependencies = [
-      sources."ajv-6.12.2"
-      sources."asap-2.0.6"
-      sources."asn1-0.2.4"
-      sources."assert-plus-1.0.0"
-      sources."asynckit-0.4.0"
-      sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
-      sources."bcrypt-pbkdf-1.0.2"
-      sources."caseless-0.12.0"
-      sources."clone-2.1.2"
-      sources."combined-stream-1.0.8"
-      sources."core-util-is-1.0.2"
-      sources."dashdash-1.14.1"
-      sources."delayed-stream-1.0.0"
-      sources."ecc-jsbn-0.1.2"
       sources."errno-0.1.7"
-      sources."extend-3.0.2"
-      sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.3"
-      sources."fast-json-stable-stringify-2.1.0"
-      sources."forever-agent-0.6.1"
-      sources."form-data-2.3.3"
-      sources."getpass-0.1.7"
       sources."graceful-fs-4.2.4"
-      sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
-      sources."http-signature-1.2.0"
       sources."image-size-0.5.5"
-      sources."is-typedarray-1.0.0"
-      sources."isstream-0.1.2"
-      sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
-      sources."json-schema-traverse-0.4.1"
-      sources."json-stringify-safe-5.0.1"
-      sources."jsprim-1.4.1"
       sources."make-dir-2.1.0"
       sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
-      sources."oauth-sign-0.9.0"
-      sources."performance-now-2.1.0"
+      sources."native-request-1.0.7"
       sources."pify-4.0.1"
-      sources."promise-7.3.1"
       sources."prr-1.0.1"
-      sources."psl-1.8.0"
-      sources."punycode-2.1.1"
-      sources."qs-6.5.2"
-      sources."request-2.88.2"
-      sources."safe-buffer-5.2.1"
-      sources."safer-buffer-2.1.2"
       sources."semver-5.7.1"
       sources."source-map-0.6.1"
-      sources."sshpk-1.16.1"
-      sources."tough-cookie-2.5.0"
       sources."tslib-1.13.0"
-      sources."tunnel-agent-0.6.0"
-      sources."tweetnacl-0.14.5"
-      sources."uri-js-4.2.2"
-      sources."uuid-3.4.0"
-      sources."verror-1.10.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -66922,7 +73044,7 @@ in
       sources."define-property-2.0.2"
       sources."depd-2.0.0"
       sources."destroy-1.0.4"
-      sources."duplexer-0.1.1"
+      sources."duplexer-0.1.2"
       sources."ee-first-1.1.1"
       sources."encodeurl-1.0.2"
       sources."escape-html-1.0.3"
@@ -67193,7 +73315,7 @@ in
     dependencies = [
       sources."accepts-1.3.7"
       sources."after-0.8.2"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."anymatch-1.3.2"
       sources."argparse-1.0.10"
       sources."arr-diff-2.0.0"
@@ -67210,7 +73332,7 @@ in
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."backo2-1.0.2"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -67330,7 +73452,7 @@ in
       sources."glob-parent-2.0.0"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       (sources."has-binary2-1.0.3" // {
         dependencies = [
           sources."isarray-2.0.1"
@@ -67670,7 +73792,7 @@ in
           sources."isobject-3.0.1"
         ];
       })
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
@@ -67678,7 +73800,7 @@ in
       sources."uuid-3.4.0"
       sources."vary-1.1.2"
       sources."verror-1.10.0"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."yeast-0.1.2"
     ];
@@ -67698,115 +73820,111 @@ in
     version = "1.10.1";
     src = ../interpreters/clojurescript/lumo;
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/compat-data-7.10.1"
-      sources."@babel/core-7.10.2"
-      sources."@babel/generator-7.10.2"
-      sources."@babel/helper-annotate-as-pure-7.10.1"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.1"
-      sources."@babel/helper-compilation-targets-7.10.2"
-      sources."@babel/helper-create-class-features-plugin-7.10.2"
-      sources."@babel/helper-create-regexp-features-plugin-7.10.1"
-      sources."@babel/helper-define-map-7.10.1"
-      sources."@babel/helper-explode-assignable-expression-7.10.1"
-      sources."@babel/helper-function-name-7.10.1"
-      sources."@babel/helper-get-function-arity-7.10.1"
-      sources."@babel/helper-hoist-variables-7.10.1"
-      sources."@babel/helper-member-expression-to-functions-7.10.1"
-      sources."@babel/helper-module-imports-7.10.1"
-      sources."@babel/helper-module-transforms-7.10.1"
-      sources."@babel/helper-optimise-call-expression-7.10.1"
-      sources."@babel/helper-plugin-utils-7.10.1"
-      sources."@babel/helper-regex-7.10.1"
-      sources."@babel/helper-remap-async-to-generator-7.10.1"
-      sources."@babel/helper-replace-supers-7.10.1"
-      sources."@babel/helper-simple-access-7.10.1"
-      sources."@babel/helper-split-export-declaration-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      sources."@babel/helper-wrap-function-7.10.1"
-      sources."@babel/helpers-7.10.1"
-      (sources."@babel/highlight-7.10.1" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/compat-data-7.11.0"
+      sources."@babel/core-7.11.6"
+      sources."@babel/generator-7.11.6"
+      sources."@babel/helper-annotate-as-pure-7.10.4"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
+      sources."@babel/helper-compilation-targets-7.10.4"
+      sources."@babel/helper-create-class-features-plugin-7.10.5"
+      sources."@babel/helper-create-regexp-features-plugin-7.10.4"
+      sources."@babel/helper-define-map-7.10.5"
+      sources."@babel/helper-explode-assignable-expression-7.11.4"
+      sources."@babel/helper-function-name-7.10.4"
+      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-hoist-variables-7.10.4"
+      sources."@babel/helper-member-expression-to-functions-7.11.0"
+      sources."@babel/helper-module-imports-7.10.4"
+      sources."@babel/helper-module-transforms-7.11.0"
+      sources."@babel/helper-optimise-call-expression-7.10.4"
+      sources."@babel/helper-plugin-utils-7.10.4"
+      sources."@babel/helper-regex-7.10.5"
+      sources."@babel/helper-remap-async-to-generator-7.11.4"
+      sources."@babel/helper-replace-supers-7.10.4"
+      sources."@babel/helper-simple-access-7.10.4"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.11.0"
+      sources."@babel/helper-split-export-declaration-7.11.0"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helper-wrap-function-7.10.4"
+      sources."@babel/helpers-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.10.2"
+      sources."@babel/parser-7.11.5"
       sources."@babel/plugin-external-helpers-7.8.3"
-      sources."@babel/plugin-proposal-async-generator-functions-7.10.1"
-      sources."@babel/plugin-proposal-class-properties-7.10.1"
-      sources."@babel/plugin-proposal-dynamic-import-7.10.1"
-      sources."@babel/plugin-proposal-json-strings-7.10.1"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.1"
-      sources."@babel/plugin-proposal-numeric-separator-7.10.1"
-      sources."@babel/plugin-proposal-object-rest-spread-7.10.1"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.10.1"
-      sources."@babel/plugin-proposal-optional-chaining-7.10.1"
-      sources."@babel/plugin-proposal-private-methods-7.10.1"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.10.1"
+      sources."@babel/plugin-proposal-async-generator-functions-7.10.5"
+      sources."@babel/plugin-proposal-class-properties-7.10.4"
+      sources."@babel/plugin-proposal-dynamic-import-7.10.4"
+      sources."@babel/plugin-proposal-export-namespace-from-7.10.4"
+      sources."@babel/plugin-proposal-json-strings-7.10.4"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.11.0"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.4"
+      sources."@babel/plugin-proposal-numeric-separator-7.10.4"
+      sources."@babel/plugin-proposal-object-rest-spread-7.11.0"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.10.4"
+      sources."@babel/plugin-proposal-optional-chaining-7.11.0"
+      sources."@babel/plugin-proposal-private-methods-7.10.4"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.10.4"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
       sources."@babel/plugin-syntax-bigint-7.8.3"
-      sources."@babel/plugin-syntax-class-properties-7.10.1"
+      sources."@babel/plugin-syntax-class-properties-7.10.4"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
+      sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
+      sources."@babel/plugin-syntax-import-meta-7.10.4"
       sources."@babel/plugin-syntax-json-strings-7.8.3"
-      sources."@babel/plugin-syntax-logical-assignment-operators-7.10.1"
+      sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
       sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
-      sources."@babel/plugin-syntax-numeric-separator-7.10.1"
+      sources."@babel/plugin-syntax-numeric-separator-7.10.4"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
       sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
-      sources."@babel/plugin-syntax-top-level-await-7.10.1"
-      sources."@babel/plugin-transform-arrow-functions-7.10.1"
-      sources."@babel/plugin-transform-async-to-generator-7.10.1"
-      sources."@babel/plugin-transform-block-scoped-functions-7.10.1"
-      sources."@babel/plugin-transform-block-scoping-7.10.1"
-      sources."@babel/plugin-transform-classes-7.10.1"
-      sources."@babel/plugin-transform-computed-properties-7.10.1"
-      sources."@babel/plugin-transform-destructuring-7.10.1"
-      sources."@babel/plugin-transform-dotall-regex-7.10.1"
-      sources."@babel/plugin-transform-duplicate-keys-7.10.1"
-      sources."@babel/plugin-transform-exponentiation-operator-7.10.1"
-      sources."@babel/plugin-transform-for-of-7.10.1"
-      sources."@babel/plugin-transform-function-name-7.10.1"
-      sources."@babel/plugin-transform-literals-7.10.1"
-      sources."@babel/plugin-transform-member-expression-literals-7.10.1"
-      sources."@babel/plugin-transform-modules-amd-7.10.1"
-      sources."@babel/plugin-transform-modules-commonjs-7.10.1"
-      sources."@babel/plugin-transform-modules-systemjs-7.10.1"
-      sources."@babel/plugin-transform-modules-umd-7.10.1"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.8.3"
-      sources."@babel/plugin-transform-new-target-7.10.1"
-      sources."@babel/plugin-transform-object-super-7.10.1"
-      sources."@babel/plugin-transform-parameters-7.10.1"
-      sources."@babel/plugin-transform-property-literals-7.10.1"
-      sources."@babel/plugin-transform-regenerator-7.10.1"
-      sources."@babel/plugin-transform-reserved-words-7.10.1"
-      sources."@babel/plugin-transform-runtime-7.10.1"
-      sources."@babel/plugin-transform-shorthand-properties-7.10.1"
-      sources."@babel/plugin-transform-spread-7.10.1"
-      sources."@babel/plugin-transform-sticky-regex-7.10.1"
-      sources."@babel/plugin-transform-template-literals-7.10.1"
-      sources."@babel/plugin-transform-typeof-symbol-7.10.1"
-      sources."@babel/plugin-transform-unicode-escapes-7.10.1"
-      sources."@babel/plugin-transform-unicode-regex-7.10.1"
-      sources."@babel/preset-env-7.10.2"
-      sources."@babel/preset-modules-0.1.3"
+      sources."@babel/plugin-syntax-top-level-await-7.10.4"
+      sources."@babel/plugin-transform-arrow-functions-7.10.4"
+      sources."@babel/plugin-transform-async-to-generator-7.10.4"
+      sources."@babel/plugin-transform-block-scoped-functions-7.10.4"
+      sources."@babel/plugin-transform-block-scoping-7.11.1"
+      sources."@babel/plugin-transform-classes-7.10.4"
+      sources."@babel/plugin-transform-computed-properties-7.10.4"
+      sources."@babel/plugin-transform-destructuring-7.10.4"
+      sources."@babel/plugin-transform-dotall-regex-7.10.4"
+      sources."@babel/plugin-transform-duplicate-keys-7.10.4"
+      sources."@babel/plugin-transform-exponentiation-operator-7.10.4"
+      sources."@babel/plugin-transform-for-of-7.10.4"
+      sources."@babel/plugin-transform-function-name-7.10.4"
+      sources."@babel/plugin-transform-literals-7.10.4"
+      sources."@babel/plugin-transform-member-expression-literals-7.10.4"
+      sources."@babel/plugin-transform-modules-amd-7.10.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.10.4"
+      sources."@babel/plugin-transform-modules-systemjs-7.10.5"
+      sources."@babel/plugin-transform-modules-umd-7.10.4"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.10.4"
+      sources."@babel/plugin-transform-new-target-7.10.4"
+      sources."@babel/plugin-transform-object-super-7.10.4"
+      sources."@babel/plugin-transform-parameters-7.10.5"
+      sources."@babel/plugin-transform-property-literals-7.10.4"
+      sources."@babel/plugin-transform-regenerator-7.10.4"
+      sources."@babel/plugin-transform-reserved-words-7.10.4"
+      sources."@babel/plugin-transform-runtime-7.11.5"
+      sources."@babel/plugin-transform-shorthand-properties-7.10.4"
+      sources."@babel/plugin-transform-spread-7.11.0"
+      sources."@babel/plugin-transform-sticky-regex-7.10.4"
+      sources."@babel/plugin-transform-template-literals-7.10.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.10.4"
+      sources."@babel/plugin-transform-unicode-escapes-7.10.4"
+      sources."@babel/plugin-transform-unicode-regex-7.10.4"
+      sources."@babel/preset-env-7.11.5"
+      sources."@babel/preset-modules-0.1.4"
       sources."@babel/preset-stage-2-7.8.3"
-      sources."@babel/runtime-7.10.2"
-      sources."@babel/template-7.10.1"
-      sources."@babel/traverse-7.10.1"
-      sources."@babel/types-7.10.2"
+      sources."@babel/runtime-7.11.2"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.5"
+      sources."@babel/types-7.11.5"
       sources."@cnakazawa/watch-1.0.4"
       sources."@comandeer/babel-plugin-banner-5.0.0"
-      (sources."@istanbuljs/load-nyc-config-1.1.0" // {
-        dependencies = [
-          sources."find-up-4.1.0"
-          sources."locate-path-5.0.0"
-          sources."p-limit-2.3.0"
-          sources."p-locate-4.1.0"
-          sources."p-try-2.2.0"
-          sources."path-exists-4.0.0"
-        ];
-      })
+      sources."@istanbuljs/load-nyc-config-1.1.0"
       sources."@istanbuljs/schema-0.1.2"
       (sources."@jest/transform-25.5.1" // {
         dependencies = [
@@ -67814,18 +73932,18 @@ in
         ];
       })
       sources."@jest/types-25.5.0"
-      sources."@types/babel__core-7.1.8"
+      sources."@types/babel__core-7.1.9"
       sources."@types/babel__generator-7.6.1"
       sources."@types/babel__template-7.0.2"
-      sources."@types/babel__traverse-7.0.12"
+      sources."@types/babel__traverse-7.0.14"
       sources."@types/color-name-1.1.1"
-      sources."@types/estree-0.0.44"
+      sources."@types/estree-0.0.45"
       sources."@types/graceful-fs-4.1.3"
       sources."@types/istanbul-lib-coverage-2.0.3"
       sources."@types/istanbul-lib-report-3.0.0"
       sources."@types/istanbul-reports-1.1.2"
-      sources."@types/json-schema-7.0.5"
-      sources."@types/node-14.0.13"
+      sources."@types/json-schema-7.0.6"
+      sources."@types/node-14.11.1"
       sources."@types/normalize-package-data-2.4.0"
       sources."@types/resolve-0.0.8"
       sources."@types/yargs-15.0.5"
@@ -67852,12 +73970,12 @@ in
       sources."@xtuc/long-4.2.2"
       sources."JSONStream-1.3.5"
       sources."ace.improved-0.2.1"
-      sources."acorn-7.2.0"
+      sources."acorn-7.4.0"
       sources."acorn-node-1.8.2"
-      sources."acorn-walk-7.1.1"
-      sources."ajv-6.12.2"
+      sources."acorn-walk-7.2.0"
+      sources."ajv-6.12.5"
       sources."ajv-errors-1.0.1"
-      sources."ajv-keywords-3.4.1"
+      sources."ajv-keywords-3.5.2"
       sources."amdefine-1.0.1"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
@@ -67869,7 +73987,7 @@ in
       sources."arr-union-3.1.0"
       sources."array-unique-0.3.2"
       sources."asn1-0.2.4"
-      (sources."asn1.js-4.10.1" // {
+      (sources."asn1.js-5.4.1" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -67888,7 +74006,7 @@ in
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."babel-core-7.0.0-bridge.0"
       sources."babel-eslint-10.0.3"
       sources."babel-helper-evaluate-path-0.5.0"
@@ -67931,7 +74049,7 @@ in
       sources."babel-plugin-transform-remove-undefined-0.5.0"
       sources."babel-plugin-transform-simplify-comparison-operators-6.9.4"
       sources."babel-plugin-transform-undefined-to-void-6.9.4"
-      sources."babel-preset-current-node-syntax-0.1.2"
+      sources."babel-preset-current-node-syntax-0.1.3"
       sources."babel-preset-jest-25.5.0"
       sources."babel-preset-minify-0.5.1"
       (sources."babel-runtime-6.26.0" // {
@@ -67948,16 +74066,16 @@ in
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."big.js-5.2.2"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."bindings-1.5.0"
-      (sources."bl-4.0.2" // {
+      (sources."bl-4.0.3" // {
         dependencies = [
           sources."buffer-5.6.0"
           sources."readable-stream-3.6.0"
         ];
       })
       sources."bluebird-3.7.2"
-      sources."bn.js-5.1.2"
+      sources."bn.js-5.1.3"
       sources."brace-expansion-1.1.11"
       (sources."braces-2.3.2" // {
         dependencies = [
@@ -67966,12 +74084,8 @@ in
       })
       sources."brorand-1.1.0"
       sources."browser-pack-6.1.0"
-      (sources."browser-resolve-1.11.3" // {
-        dependencies = [
-          sources."resolve-1.1.7"
-        ];
-      })
-      (sources."browserify-16.5.1" // {
+      sources."browser-resolve-2.0.0"
+      (sources."browserify-16.5.2" // {
         dependencies = [
           sources."punycode-1.4.1"
         ];
@@ -67984,14 +74098,14 @@ in
           sources."bn.js-4.11.9"
         ];
       })
-      (sources."browserify-sign-4.2.0" // {
+      (sources."browserify-sign-4.2.1" // {
         dependencies = [
           sources."readable-stream-3.6.0"
           sources."safe-buffer-5.2.1"
         ];
       })
       sources."browserify-zlib-0.2.0"
-      sources."browserslist-4.12.0"
+      sources."browserslist-4.14.3"
       sources."bser-2.1.1"
       sources."buffer-5.2.1"
       sources."buffer-from-1.1.1"
@@ -68006,7 +74120,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.30001081"
+      sources."caniuse-lite-1.0.30001133"
       sources."capture-exit-2.0.0"
       sources."caseless-0.12.0"
       (sources."chalk-3.0.0" // {
@@ -68015,10 +74129,10 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
-      (sources."chokidar-3.4.0" // {
+      (sources."chokidar-3.4.2" // {
         dependencies = [
           sources."braces-3.0.2"
           sources."fill-range-7.0.1"
@@ -68083,7 +74197,7 @@ in
         ];
       })
       sources."core-util-is-1.0.2"
-      (sources."create-ecdh-4.0.3" // {
+      (sources."create-ecdh-4.0.4" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -68108,7 +74222,7 @@ in
       sources."dash-ast-1.0.0"
       sources."dashdash-1.14.1"
       sources."death-1.1.0"
-      sources."debug-4.2.0"
+      sources."debug-4.3.0"
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
       sources."define-properties-1.1.3"
@@ -68128,8 +74242,8 @@ in
       sources."duplexer2-0.1.4"
       sources."duplexify-3.7.1"
       sources."ecc-jsbn-0.1.2"
-      sources."electron-to-chromium-1.3.466"
-      (sources."elliptic-6.5.2" // {
+      sources."electron-to-chromium-1.3.570"
+      (sources."elliptic-6.5.3" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -68137,18 +74251,25 @@ in
       sources."emoji-regex-7.0.3"
       sources."emojis-list-3.0.0"
       sources."end-of-stream-1.4.4"
-      (sources."enhanced-resolve-4.1.1" // {
+      (sources."enhanced-resolve-4.3.0" // {
         dependencies = [
           sources."memory-fs-0.5.0"
         ];
       })
       sources."errno-0.1.7"
       sources."error-ex-1.3.2"
+      sources."es-abstract-1.18.0-next.0"
+      sources."es-to-primitive-1.2.1"
+      sources."escalade-3.1.0"
       sources."escape-string-regexp-1.0.5"
       sources."eslint-scope-4.0.3"
-      sources."eslint-visitor-keys-1.2.0"
+      sources."eslint-visitor-keys-1.3.0"
       sources."esprima-4.0.1"
-      sources."esrecurse-4.2.1"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
       sources."estraverse-4.3.0"
       sources."estree-walker-0.6.1"
       sources."esutils-2.0.3"
@@ -68206,7 +74327,7 @@ in
           sources."make-dir-2.1.0"
         ];
       })
-      sources."find-up-2.1.0"
+      sources."find-up-4.1.0"
       (sources."findup-sync-3.0.0" // {
         dependencies = [
           sources."micromatch-3.1.10"
@@ -68254,7 +74375,7 @@ in
         ];
       })
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."has-symbols-1.0.1"
@@ -68287,15 +74408,16 @@ in
       sources."ini-1.3.5"
       sources."inline-source-map-0.6.2"
       sources."insert-module-globals-7.2.0"
-      sources."interpret-1.2.0"
+      sources."interpret-1.4.0"
       sources."invariant-2.2.4"
-      sources."invert-kv-2.0.0"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-2.1.0"
       sources."is-buffer-1.1.6"
+      sources."is-callable-1.2.1"
       sources."is-ci-2.0.0"
       sources."is-data-descriptor-1.0.0"
+      sources."is-date-object-1.0.2"
       sources."is-deflate-1.0.0"
       sources."is-descriptor-1.0.2"
       sources."is-extendable-0.1.1"
@@ -68304,14 +74426,17 @@ in
       sources."is-glob-4.0.1"
       sources."is-gzip-1.0.0"
       sources."is-module-1.0.0"
+      sources."is-negative-zero-2.0.0"
       (sources."is-number-3.0.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
         ];
       })
       sources."is-plain-object-2.0.4"
-      sources."is-reference-1.2.0"
+      sources."is-reference-1.2.1"
+      sources."is-regex-1.1.1"
       sources."is-stream-1.1.0"
+      sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
       sources."is-windows-1.0.2"
       sources."is-wsl-1.1.0"
@@ -68332,7 +74457,7 @@ in
       (sources."jest-worker-25.5.0" // {
         dependencies = [
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."js-tokens-4.0.0"
@@ -68340,6 +74465,7 @@ in
       sources."jsbn-0.1.1"
       sources."jsesc-2.5.2"
       sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stable-stringify-0.0.1"
@@ -68351,7 +74477,6 @@ in
       sources."jszip-2.6.1"
       sources."kind-of-6.0.3"
       sources."labeled-stream-splicer-2.0.2"
-      sources."lcid-2.0.0"
       sources."leven-3.1.0"
       sources."levenary-1.1.1"
       sources."lines-and-columns-1.1.6"
@@ -68361,8 +74486,8 @@ in
           sources."json5-1.0.1"
         ];
       })
-      sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."locate-path-5.0.0"
+      sources."lodash-4.17.20"
       sources."lodash.memoize-3.0.4"
       sources."loose-envify-1.4.0"
       sources."lru-cache-5.1.1"
@@ -68373,11 +74498,9 @@ in
         ];
       })
       sources."makeerror-1.0.11"
-      sources."map-age-cleaner-0.1.3"
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."md5.js-1.3.5"
-      sources."mem-4.3.0"
       sources."memory-fs-0.4.1"
       sources."merge-stream-2.0.0"
       (sources."micromatch-4.0.2" // {
@@ -68395,7 +74518,6 @@ in
       })
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
-      sources."mimic-fn-2.1.0"
       sources."minimalistic-assert-1.0.1"
       sources."minimalistic-crypto-utils-1.0.1"
       sources."minimatch-3.0.4"
@@ -68408,7 +74530,7 @@ in
       })
       sources."mkdirp-1.0.4"
       sources."mkdirp-classic-0.5.3"
-      sources."module-deps-6.2.2"
+      sources."module-deps-6.2.3"
       (sources."move-concurrently-1.0.1" // {
         dependencies = [
           sources."mkdirp-0.5.5"
@@ -68418,14 +74540,14 @@ in
       sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
       sources."ncp-2.0.0"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       sources."nice-try-1.0.5"
-      sources."node-fetch-2.6.0"
+      sources."node-fetch-2.6.1"
       sources."node-int64-0.4.0"
       (sources."node-libs-browser-2.2.1" // {
         dependencies = [
           sources."buffer-4.9.2"
-          sources."events-3.1.0"
+          sources."events-3.2.0"
           sources."inherits-2.0.3"
           sources."punycode-1.4.1"
           sources."stream-http-2.8.3"
@@ -68435,7 +74557,7 @@ in
         ];
       })
       sources."node-modules-regexp-1.0.0"
-      sources."node-releases-1.1.58"
+      sources."node-releases-1.1.61"
       sources."normalize-package-data-2.5.0"
       sources."normalize-path-3.0.0"
       sources."npm-run-path-2.0.2"
@@ -68454,30 +74576,28 @@ in
           sources."kind-of-3.2.2"
         ];
       })
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
-      sources."object.assign-4.1.0"
+      sources."object.assign-4.1.1"
       sources."object.pick-1.3.0"
       sources."once-1.4.0"
       sources."os-browserify-0.3.0"
-      sources."os-locale-3.1.0"
-      sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
-      sources."p-is-promise-2.1.0"
-      sources."p-limit-1.3.0"
-      sources."p-locate-2.0.0"
-      sources."p-try-1.0.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-try-2.2.0"
       sources."pako-1.0.11"
       sources."parallel-transform-1.2.0"
       sources."paredit.js-0.3.6"
       sources."parents-1.0.1"
-      sources."parse-asn1-5.1.5"
-      sources."parse-json-5.0.0"
+      sources."parse-asn1-5.1.6"
+      sources."parse-json-5.1.0"
       sources."parse-passwd-1.0.0"
       sources."pascalcase-0.1.1"
       sources."path-browserify-0.0.1"
       sources."path-dirname-1.0.2"
-      sources."path-exists-3.0.0"
+      sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
       sources."path-parse-1.0.6"
@@ -68494,16 +74614,13 @@ in
         dependencies = [
           sources."find-up-3.0.0"
           sources."locate-path-3.0.0"
-          sources."p-limit-2.3.0"
           sources."p-locate-3.0.0"
-          sources."p-try-2.2.0"
+          sources."path-exists-3.0.0"
         ];
       })
-      sources."pkg-up-2.0.0"
       sources."posix-character-classes-0.1.1"
       sources."posix-getopt-git://github.com/anmonteiro/node-getopt#master"
       sources."prettier-1.19.1"
-      sources."private-0.1.8"
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
@@ -68538,10 +74655,10 @@ in
       sources."realpath-native-2.0.0"
       sources."regenerate-1.4.1"
       sources."regenerate-unicode-properties-8.2.0"
-      sources."regenerator-runtime-0.13.5"
-      sources."regenerator-transform-0.14.4"
+      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-transform-0.14.5"
       sources."regex-not-1.0.2"
-      sources."regexpu-core-4.7.0"
+      sources."regexpu-core-4.7.1"
       sources."regjsgen-0.5.2"
       (sources."regjsparser-0.6.4" // {
         dependencies = [
@@ -68591,9 +74708,9 @@ in
           sources."normalize-path-2.1.1"
         ];
       })
-      sources."schema-utils-2.7.0"
+      sources."schema-utils-2.7.1"
       sources."semver-5.7.1"
-      sources."serialize-javascript-3.1.0"
+      sources."serialize-javascript-4.0.0"
       sources."set-blocking-2.0.0"
       (sources."set-value-2.0.1" // {
         dependencies = [
@@ -68608,7 +74725,7 @@ in
       sources."shebang-regex-1.0.0"
       sources."shell-quote-1.7.2"
       sources."signal-exit-3.0.3"
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."slash-3.0.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
@@ -68653,7 +74770,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."split-string-3.1.0"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
@@ -68686,6 +74803,16 @@ in
       sources."stream-shift-1.0.1"
       sources."stream-splicer-2.0.1"
       sources."string-width-3.1.0"
+      (sources."string.prototype.trimend-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
+      (sources."string.prototype.trimstart-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
       (sources."string_decoder-1.3.0" // {
         dependencies = [
           sources."safe-buffer-5.2.1"
@@ -68697,17 +74824,17 @@ in
       sources."supports-color-5.5.0"
       sources."syntax-error-1.4.0"
       sources."tapable-1.1.3"
-      (sources."tar-stream-2.1.2" // {
+      (sources."tar-stream-2.1.4" // {
         dependencies = [
           sources."readable-stream-3.6.0"
         ];
       })
-      (sources."terser-4.7.0" // {
+      (sources."terser-4.8.0" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      (sources."terser-webpack-plugin-1.4.4" // {
+      (sources."terser-webpack-plugin-1.4.5" // {
         dependencies = [
           sources."schema-utils-1.0.0"
           sources."source-map-0.6.1"
@@ -68755,7 +74882,7 @@ in
         ];
       })
       sources."upath-1.2.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       (sources."url-0.11.0" // {
         dependencies = [
@@ -68770,13 +74897,13 @@ in
       })
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
-      sources."v8-compile-cache-2.0.3"
+      sources."v8-compile-cache-2.1.1"
       sources."validate-npm-package-license-3.0.4"
       sources."verror-1.10.0"
       sources."vinyl-2.2.0"
       sources."vm-browserify-1.1.2"
       sources."walker-1.0.7"
-      sources."watchpack-1.7.2"
+      sources."watchpack-1.7.4"
       (sources."watchpack-chokidar2-2.0.0" // {
         dependencies = [
           sources."anymatch-2.0.0"
@@ -68791,7 +74918,7 @@ in
           sources."readdirp-2.2.1"
         ];
       })
-      (sources."webpack-4.43.0" // {
+      (sources."webpack-4.44.2" // {
         dependencies = [
           sources."acorn-6.4.1"
           sources."micromatch-3.1.10"
@@ -68799,17 +74926,13 @@ in
           sources."schema-utils-1.0.0"
         ];
       })
-      (sources."webpack-cli-3.3.11" // {
+      (sources."webpack-cli-3.3.12" // {
         dependencies = [
           (sources."chalk-2.4.2" // {
             dependencies = [
               sources."supports-color-5.5.0"
             ];
           })
-          sources."emojis-list-2.1.0"
-          sources."enhanced-resolve-4.1.0"
-          sources."json5-1.0.1"
-          sources."loader-utils-1.2.3"
           sources."supports-color-6.1.0"
         ];
       })
@@ -68839,13 +74962,12 @@ in
       sources."xtend-4.0.2"
       sources."y18n-4.0.0"
       sources."yallist-3.1.1"
-      (sources."yargs-13.2.4" // {
+      (sources."yargs-13.3.2" // {
         dependencies = [
           sources."find-up-3.0.0"
           sources."locate-path-3.0.0"
-          sources."p-limit-2.3.0"
           sources."p-locate-3.0.0"
-          sources."p-try-2.2.0"
+          sources."path-exists-3.0.0"
         ];
       })
       sources."yargs-parser-13.1.2"
@@ -68894,28 +75016,28 @@ in
   markdown-link-check = nodeEnv.buildNodePackage {
     name = "markdown-link-check";
     packageName = "markdown-link-check";
-    version = "3.8.1";
+    version = "3.8.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.8.1.tgz";
-      sha512 = "R6k8ytdJZePDAdb8NT0NvrNvu6n25IwLPIoJ4guHWC5yqyTlnUpRT7j3XE4ioBXwqOhG/LlUcuckD621kZkl4w==";
+      url = "https://registry.npmjs.org/markdown-link-check/-/markdown-link-check-3.8.3.tgz";
+      sha512 = "Q9LTCwBjWcQR9dd6LNMXg9GFewkRiVEaU/+Y2ZcCbOb0lVqIfeJworWYGakG7bFj8HJQILBTRnAnEK9DDKfdPA==";
     };
     dependencies = [
       sources."@types/color-name-1.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."ansi-styles-4.2.1"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."async-3.2.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."caseless-0.12.0"
       sources."chalk-4.1.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."combined-stream-1.0.8"
-      sources."commander-5.1.0"
+      sources."commander-6.1.0"
       sources."core-util-is-1.0.2"
       sources."dashdash-1.14.1"
       sources."delayed-stream-1.0.0"
@@ -68928,7 +75050,7 @@ in
       sources."form-data-2.3.3"
       sources."getpass-0.1.7"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-flag-4.0.0"
       sources."http-signature-1.2.0"
       sources."is-absolute-url-3.0.3"
@@ -68941,10 +75063,10 @@ in
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsprim-1.4.1"
-      sources."link-check-4.5.0"
-      sources."lodash-4.17.15"
-      sources."markdown-link-extractor-1.2.3"
-      sources."marked-0.8.2"
+      sources."link-check-4.5.1"
+      sources."lodash-4.17.20"
+      sources."markdown-link-extractor-1.2.6"
+      sources."marked-1.1.1"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."ms-2.1.2"
@@ -68958,11 +75080,11 @@ in
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sshpk-1.16.1"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
     ];
@@ -68976,17 +75098,308 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  mastodon-bot = nodeEnv.buildNodePackage {
+    name = "mastodon-bot";
+    packageName = "mastodon-bot";
+    version = "1.0.4";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/mastodon-bot/-/mastodon-bot-1.0.4.tgz";
+      sha512 = "gErqy0H3MtARqamwEvhTYfefesjgvDMohmrfF4PrOhh9iFa/LxKRoDJtpCEGWgcMnb+C1GlFRBzNkDJtwgUmyA==";
+    };
+    dependencies = [
+      sources."acorn-5.7.4"
+      (sources."acorn-jsx-3.0.1" // {
+        dependencies = [
+          sources."acorn-3.3.0"
+        ];
+      })
+      sources."ajv-4.11.8"
+      sources."ajv-keywords-1.5.1"
+      sources."ansi-escapes-1.4.0"
+      sources."ansi-gray-0.1.1"
+      sources."ansi-regex-2.1.1"
+      sources."ansi-styles-2.2.1"
+      sources."ansi-wrap-0.1.0"
+      sources."argparse-1.0.10"
+      sources."array-differ-1.0.0"
+      sources."array-uniq-1.0.3"
+      sources."asn1-0.2.4"
+      sources."assert-plus-1.0.0"
+      sources."asynckit-0.4.0"
+      sources."aws-sign2-0.7.0"
+      sources."aws4-1.10.1"
+      sources."babel-code-frame-6.26.0"
+      sources."balanced-match-1.0.0"
+      sources."bcrypt-pbkdf-1.0.2"
+      sources."beeper-1.1.1"
+      sources."bindings-1.2.1"
+      sources."brace-expansion-1.1.11"
+      sources."buffer-from-1.1.1"
+      sources."bufferstreams-1.1.3"
+      sources."caller-path-0.1.0"
+      sources."callsites-0.2.0"
+      sources."caseless-0.12.0"
+      sources."chalk-1.1.3"
+      sources."circular-json-0.3.3"
+      sources."cli-cursor-1.0.2"
+      sources."cli-width-2.2.1"
+      sources."clone-1.0.4"
+      sources."clone-stats-0.0.1"
+      sources."co-4.6.0"
+      sources."code-point-at-1.1.0"
+      sources."color-support-1.1.3"
+      sources."combined-stream-1.0.8"
+      sources."concat-map-0.0.1"
+      sources."concat-stream-1.6.2"
+      sources."core-util-is-1.0.2"
+      sources."d-1.0.1"
+      sources."dashdash-1.14.1"
+      sources."dateformat-2.2.0"
+      sources."deasync-0.1.15"
+      sources."debug-2.6.9"
+      sources."deep-extend-0.5.1"
+      sources."deep-is-0.1.3"
+      sources."delayed-stream-1.0.0"
+      sources."doctrine-2.1.0"
+      (sources."duplexer2-0.0.2" // {
+        dependencies = [
+          sources."isarray-0.0.1"
+          sources."readable-stream-1.1.14"
+          sources."string_decoder-0.10.31"
+        ];
+      })
+      sources."ecc-jsbn-0.1.2"
+      sources."entities-1.1.2"
+      sources."es5-ext-0.10.53"
+      sources."es6-iterator-2.0.3"
+      sources."es6-map-0.1.5"
+      (sources."es6-set-0.1.5" // {
+        dependencies = [
+          sources."es6-symbol-3.1.1"
+        ];
+      })
+      sources."es6-symbol-3.1.3"
+      sources."es6-weak-map-2.0.3"
+      sources."escape-string-regexp-1.0.5"
+      sources."escope-3.6.0"
+      sources."eslint-3.19.0"
+      sources."espree-3.5.4"
+      sources."esprima-4.0.1"
+      (sources."esquery-1.3.1" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
+      sources."event-emitter-0.3.5"
+      sources."exit-hook-1.1.1"
+      (sources."ext-1.4.0" // {
+        dependencies = [
+          sources."type-2.1.0"
+        ];
+      })
+      sources."extend-3.0.2"
+      sources."extsprintf-1.3.0"
+      sources."fancy-log-1.3.3"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-levenshtein-2.0.6"
+      sources."figures-1.7.0"
+      sources."file-entry-cache-2.0.0"
+      sources."flat-cache-1.3.4"
+      sources."forever-agent-0.6.1"
+      sources."form-data-2.3.3"
+      sources."fs.realpath-1.0.0"
+      sources."generate-function-2.3.1"
+      sources."generate-object-property-1.2.0"
+      sources."getpass-0.1.7"
+      sources."glob-7.1.6"
+      sources."globals-9.18.0"
+      sources."glogg-1.0.2"
+      sources."graceful-fs-4.2.4"
+      sources."gulp-eslint-3.0.1"
+      (sources."gulp-util-3.0.8" // {
+        dependencies = [
+          sources."object-assign-3.0.0"
+        ];
+      })
+      sources."gulplog-1.0.0"
+      sources."har-schema-2.0.0"
+      (sources."har-validator-5.1.5" // {
+        dependencies = [
+          sources."ajv-6.12.5"
+        ];
+      })
+      sources."has-ansi-2.0.0"
+      sources."has-gulplog-0.1.0"
+      sources."http-signature-1.2.0"
+      sources."ignore-3.3.10"
+      sources."imurmurhash-0.1.4"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."inquirer-0.12.0"
+      sources."interpret-1.4.0"
+      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-my-ip-valid-1.0.0"
+      sources."is-my-json-valid-2.20.5"
+      sources."is-property-1.0.2"
+      sources."is-resolvable-1.1.0"
+      sources."is-typedarray-1.0.0"
+      sources."isarray-1.0.0"
+      sources."isstream-0.1.2"
+      sources."js-tokens-3.0.2"
+      sources."js-yaml-3.14.0"
+      sources."jsbn-0.1.1"
+      sources."json-schema-0.2.3"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stable-stringify-1.0.1"
+      sources."json-stringify-safe-5.0.1"
+      sources."jsonify-0.0.0"
+      sources."jsonpointer-4.1.0"
+      sources."jsprim-1.4.1"
+      sources."levn-0.3.0"
+      sources."lodash-4.17.20"
+      sources."lodash._basecopy-3.0.1"
+      sources."lodash._basetostring-3.0.1"
+      sources."lodash._basevalues-3.0.0"
+      sources."lodash._getnative-3.9.1"
+      sources."lodash._isiterateecall-3.0.9"
+      sources."lodash._reescape-3.0.0"
+      sources."lodash._reevaluate-3.0.0"
+      sources."lodash._reinterpolate-3.0.0"
+      sources."lodash._root-3.0.1"
+      sources."lodash.escape-3.2.0"
+      sources."lodash.isarguments-3.1.0"
+      sources."lodash.isarray-3.0.4"
+      sources."lodash.keys-3.1.2"
+      sources."lodash.restparam-3.6.1"
+      sources."lodash.template-3.6.2"
+      sources."lodash.templatesettings-3.1.1"
+      sources."mastodon-api-1.3.0"
+      sources."mime-1.6.0"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."mkdirp-0.5.5"
+      sources."ms-2.0.0"
+      sources."multipipe-0.1.2"
+      sources."mute-stream-0.0.5"
+      sources."natural-compare-1.4.0"
+      sources."next-tick-1.0.0"
+      sources."node-addon-api-1.7.2"
+      sources."number-is-nan-1.0.1"
+      sources."oauth-0.9.15"
+      sources."oauth-sign-0.9.0"
+      sources."object-assign-4.1.1"
+      sources."once-1.4.0"
+      sources."onetime-1.1.0"
+      sources."optionator-0.8.3"
+      sources."os-homedir-1.0.2"
+      sources."parse-node-version-1.0.1"
+      sources."path-is-absolute-1.0.1"
+      sources."path-is-inside-1.0.2"
+      sources."path-parse-1.0.6"
+      sources."performance-now-2.1.0"
+      sources."pluralize-1.2.1"
+      sources."prelude-ls-1.1.2"
+      sources."process-nextick-args-2.0.1"
+      sources."progress-1.1.8"
+      sources."psl-1.8.0"
+      sources."punycode-2.1.1"
+      sources."qs-6.5.2"
+      sources."readable-stream-2.3.7"
+      sources."readline-1.3.0"
+      sources."readline2-1.0.1"
+      sources."rechoir-0.6.2"
+      sources."replace-ext-0.0.1"
+      sources."request-2.88.0"
+      sources."require-uncached-1.0.3"
+      sources."resolve-1.17.0"
+      sources."resolve-from-1.0.1"
+      sources."restore-cursor-1.0.1"
+      sources."rimraf-2.6.3"
+      sources."rss-parser-3.7.1"
+      sources."run-async-0.1.0"
+      sources."rx-lite-3.1.2"
+      sources."safe-buffer-5.1.2"
+      sources."safer-buffer-2.1.2"
+      sources."sax-1.2.4"
+      sources."shelljs-0.7.8"
+      sources."slice-ansi-0.0.4"
+      sources."sparkles-1.0.1"
+      sources."sprintf-js-1.0.3"
+      sources."sshpk-1.16.1"
+      sources."string-width-1.0.2"
+      sources."string_decoder-1.1.1"
+      sources."strip-ansi-3.0.1"
+      sources."strip-bom-3.0.0"
+      sources."strip-json-comments-2.0.1"
+      sources."supports-color-2.0.0"
+      (sources."table-3.8.3" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
+        ];
+      })
+      sources."text-table-0.2.0"
+      sources."through-2.3.8"
+      sources."through2-2.0.5"
+      sources."time-stamp-1.1.0"
+      (sources."tough-cookie-2.4.3" // {
+        dependencies = [
+          sources."punycode-1.4.1"
+        ];
+      })
+      sources."tumblr-0.4.1"
+      sources."tunnel-agent-0.6.0"
+      sources."tweetnacl-0.14.5"
+      sources."twitter-1.7.1"
+      sources."type-1.2.0"
+      sources."type-check-0.3.2"
+      sources."typedarray-0.0.6"
+      sources."uri-js-4.4.0"
+      sources."user-home-2.0.0"
+      sources."util-deprecate-1.0.2"
+      sources."uuid-3.4.0"
+      sources."verror-1.10.0"
+      sources."vinyl-0.5.3"
+      sources."word-wrap-1.2.3"
+      sources."wrappy-1.0.2"
+      sources."write-0.2.1"
+      sources."xml2js-0.4.23"
+      sources."xmlbuilder-11.0.1"
+      sources."xtend-4.0.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Bot to publish twitter, tumblr or rss posts to an mastodon account.";
+      homepage = https://github.com/yogthos/mastodon-bot;
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   mathjax = nodeEnv.buildNodePackage {
     name = "mathjax";
     packageName = "mathjax";
-    version = "3.0.5";
+    version = "3.1.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/mathjax/-/mathjax-3.0.5.tgz";
-      sha512 = "9M7VulhltkD8sIebWutK/VfAD+m+6BIFqfpjDh9Pz/etoKUtjO6UMnOhUcDmNl6iApE8C9xrUmaMyNZkZAlrMw==";
+      url = "https://registry.npmjs.org/mathjax/-/mathjax-3.1.2.tgz";
+      sha512 = "BojKspBv4nNWzO1wC6VEI+g9gHDOhkaGHGgLxXkasdU4pwjdO5AXD5M/wcLPkXYPjZ/N+6sU8rjQTlyvN2cWiQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
-      description = "Beautiful math in all browsers. MathJax is an open-source JavaScript display engine for LaTeX, MathML, and AsciiMath notation that works in all browsers. This package includes the packaged components (install mathjax-full to get the source code).";
+      description = "Beautiful and accessible math in all browsers. MathJax is an open-source JavaScript display engine for LaTeX, MathML, and AsciiMath notation that works in all browsers. This package includes the packaged components (install mathjax-full to get the source ";
       homepage = "https://github.com/mathjax/MathJax#readme";
       license = "Apache-2.0";
     };
@@ -69031,92 +75444,1043 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
-  meguca = nodeEnv.buildNodePackage {
-    name = "meguca";
-    packageName = "meguca";
-    version = "1.1.8";
+  mirakurun = nodeEnv.buildNodePackage {
+    name = "mirakurun";
+    packageName = "mirakurun";
+    version = "3.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/meguca/-/meguca-1.1.8.tgz";
-      sha512 = "BrbjYMq6FeZYMKx9mw7aHGUtLCyGPX4kSoCqZiRBFw5ESTgJcmmr+DbLCC29k8hRpBVRqdq3OapSEbAGXZ6z/g==";
+      url = "https://registry.npmjs.org/mirakurun/-/mirakurun-3.3.1.tgz";
+      sha512 = "uCsn3t7bV3jmy8mcgl19wowBq69Xz/Z/WUkazOC9PXvzzb9j5wvfr+qrwB5GtHkLBFIaBVI59HIX+JJ637jVmA==";
     };
     dependencies = [
-      (sources."@gulp-sourcemaps/identity-map-1.0.2" // {
+      sources."@fluentui/date-time-utilities-7.8.1"
+      sources."@fluentui/dom-utilities-1.1.1"
+      sources."@fluentui/keyboard-key-0.2.12"
+      sources."@fluentui/react-7.139.0"
+      sources."@fluentui/react-focus-7.16.5"
+      sources."@fluentui/react-icons-0.3.4"
+      sources."@fluentui/react-window-provider-0.3.3"
+      sources."@fluentui/theme-0.3.2"
+      sources."@microsoft/load-themed-styles-1.10.97"
+      sources."@sindresorhus/is-0.14.0"
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@uifabric/foundation-7.9.5"
+      sources."@uifabric/icons-7.5.5"
+      sources."@uifabric/merge-styles-7.19.1"
+      sources."@uifabric/react-hooks-7.13.4"
+      sources."@uifabric/set-version-7.0.23"
+      sources."@uifabric/styling-7.16.5"
+      sources."@uifabric/utilities-7.32.2"
+      sources."accepts-1.3.7"
+      sources."ajv-6.12.5"
+      sources."ansi-escapes-1.4.0"
+      sources."ansi-regex-2.1.1"
+      sources."ansi-styles-2.2.1"
+      sources."argparse-1.0.10"
+      sources."aribts-1.3.5"
+      sources."array-flatten-1.1.1"
+      sources."babel-polyfill-6.23.0"
+      (sources."babel-runtime-6.26.0" // {
         dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."source-map-0.6.1"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
+          sources."regenerator-runtime-0.11.1"
         ];
       })
-      (sources."@gulp-sourcemaps/map-sources-1.0.0" // {
+      sources."balanced-match-1.0.0"
+      sources."base64-js-1.3.1"
+      sources."basic-auth-2.0.1"
+      sources."body-parser-1.19.0"
+      sources."brace-expansion-1.1.11"
+      sources."buffer-5.6.0"
+      sources."buffer-from-1.1.1"
+      sources."builtin-status-codes-3.0.0"
+      sources."bytes-3.1.0"
+      (sources."cacheable-request-6.1.0" // {
+        dependencies = [
+          sources."get-stream-5.2.0"
+          sources."lowercase-keys-2.0.0"
+        ];
+      })
+      sources."chalk-1.1.3"
+      sources."chardet-0.4.2"
+      sources."cli-cursor-2.1.0"
+      sources."cli-width-2.2.1"
+      sources."clone-response-1.0.2"
+      sources."colors-1.4.0"
+      sources."concat-map-0.0.1"
+      sources."content-disposition-0.5.3"
+      sources."content-type-1.0.4"
+      sources."cookie-0.4.0"
+      sources."cookie-signature-1.0.6"
+      sources."core-js-2.6.11"
+      sources."crc-3.8.0"
+      sources."debug-2.6.9"
+      sources."decompress-response-3.3.0"
+      sources."deep-extend-0.6.0"
+      sources."defer-to-connect-1.1.3"
+      sources."depd-1.1.2"
+      sources."destroy-1.0.4"
+      sources."difunc-0.0.4"
+      sources."dotenv-8.2.0"
+      sources."duplexer3-0.1.4"
+      sources."ee-first-1.1.1"
+      sources."encodeurl-1.0.2"
+      (sources."encoding-0.1.13" // {
+        dependencies = [
+          sources."iconv-lite-0.6.2"
+        ];
+      })
+      sources."end-of-stream-1.4.4"
+      sources."escape-html-1.0.3"
+      sources."escape-string-regexp-1.0.5"
+      sources."esprima-4.0.1"
+      sources."etag-1.8.1"
+      sources."eventemitter3-4.0.7"
+      sources."express-4.17.1"
+      sources."express-normalize-query-params-middleware-0.5.1"
+      sources."express-openapi-6.0.0"
+      sources."external-editor-2.2.0"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."figures-2.0.0"
+      sources."finalhandler-1.1.2"
+      sources."forwarded-0.1.2"
+      sources."fresh-0.5.2"
+      sources."fs-routes-2.0.0"
+      sources."fs.realpath-1.0.0"
+      sources."get-stream-4.1.0"
+      sources."glob-7.1.6"
+      sources."got-9.6.0"
+      sources."has-ansi-2.0.0"
+      sources."http-cache-semantics-4.1.0"
+      sources."http-errors-1.7.2"
+      sources."iconv-lite-0.4.24"
+      sources."ieee754-1.1.13"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.3"
+      sources."ini-1.3.5"
+      sources."inquirer-3.0.6"
+      sources."ip-1.1.5"
+      sources."ipaddr.js-1.9.1"
+      sources."is-dir-1.0.0"
+      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-stream-1.1.0"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.0"
+      sources."json-buffer-3.0.0"
+      sources."json-schema-traverse-0.4.1"
+      sources."keyv-3.1.0"
+      sources."latest-version-5.1.0"
+      sources."lodash-4.17.20"
+      sources."lodash.merge-4.6.2"
+      sources."loose-envify-1.4.0"
+      sources."lowercase-keys-1.0.1"
+      sources."media-typer-0.3.0"
+      sources."merge-descriptors-1.0.1"
+      sources."methods-1.1.2"
+      sources."mime-1.6.0"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
+      sources."mimic-fn-1.2.0"
+      sources."mimic-response-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      (sources."morgan-1.10.0" // {
+        dependencies = [
+          sources."depd-2.0.0"
+        ];
+      })
+      sources."ms-2.0.0"
+      sources."munin-plugin-0.0.9"
+      sources."mute-stream-0.0.7"
+      sources."negotiator-0.6.2"
+      sources."node-fetch-1.6.3"
+      sources."normalize-url-4.5.0"
+      sources."object-assign-4.1.1"
+      sources."office-ui-fabric-react-7.139.0"
+      sources."on-finished-2.3.0"
+      sources."on-headers-1.0.2"
+      sources."once-1.4.0"
+      sources."onetime-2.0.1"
+      sources."openapi-default-setter-2.1.0"
+      sources."openapi-framework-0.26.0"
+      sources."openapi-jsonschema-parameters-1.2.0"
+      sources."openapi-request-coercer-2.4.0"
+      sources."openapi-request-validator-4.2.0"
+      sources."openapi-response-validator-4.0.0"
+      (sources."openapi-schema-validator-3.0.3" // {
+        dependencies = [
+          sources."openapi-types-1.3.4"
+        ];
+      })
+      (sources."openapi-security-handler-2.0.4" // {
+        dependencies = [
+          sources."openapi-types-1.3.4"
+        ];
+      })
+      sources."openapi-types-1.3.5"
+      (sources."opencollective-1.0.3" // {
+        dependencies = [
+          sources."minimist-1.2.0"
+        ];
+      })
+      sources."opencollective-postinstall-2.0.3"
+      sources."opn-4.0.2"
+      sources."os-tmpdir-1.0.2"
+      sources."p-cancelable-1.1.0"
+      (sources."package-json-6.5.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."parseurl-1.3.3"
+      sources."path-is-absolute-1.0.1"
+      sources."path-to-regexp-0.1.7"
+      sources."pinkie-2.0.4"
+      sources."pinkie-promise-2.0.1"
+      sources."prepend-http-2.0.0"
+      sources."promise-queue-2.2.5"
+      sources."prop-types-15.7.2"
+      sources."proxy-addr-2.0.6"
+      sources."pump-3.0.0"
+      sources."punycode-2.1.1"
+      sources."qs-6.7.0"
+      sources."range-parser-1.2.1"
+      sources."raw-body-2.4.0"
+      sources."rc-1.2.8"
+      sources."react-16.13.1"
+      sources."react-dom-16.13.1"
+      sources."react-is-16.13.1"
+      sources."readable-stream-3.6.0"
+      sources."regenerator-runtime-0.10.5"
+      sources."registry-auth-token-4.2.0"
+      sources."registry-url-5.1.0"
+      sources."responselike-1.0.2"
+      sources."restore-cursor-2.0.0"
+      sources."run-async-2.4.1"
+      sources."rx-4.1.0"
+      sources."safe-buffer-5.1.2"
+      sources."safer-buffer-2.1.2"
+      sources."scheduler-0.19.1"
+      sources."semver-7.3.2"
+      (sources."send-0.17.1" // {
+        dependencies = [
+          sources."ms-2.1.1"
+        ];
+      })
+      sources."serve-static-1.14.1"
+      sources."setprototypeof-1.1.1"
+      sources."sift-7.0.1"
+      sources."signal-exit-3.0.3"
+      sources."source-map-0.6.1"
+      sources."source-map-support-0.5.19"
+      sources."sprintf-js-1.0.3"
+      sources."statuses-1.5.0"
+      (sources."stream-http-3.1.1" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+        ];
+      })
+      (sources."string-width-2.1.1" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."strip-ansi-4.0.0"
+        ];
+      })
+      (sources."string_decoder-1.3.0" // {
+        dependencies = [
+          sources."safe-buffer-5.2.1"
+        ];
+      })
+      sources."strip-ansi-3.0.1"
+      sources."strip-json-comments-2.0.1"
+      sources."supports-color-2.0.0"
+      sources."swagger-schema-official-2.0.0-bab6bed"
+      sources."swagger-ui-dist-3.34.0"
+      sources."tail-2.0.4"
+      sources."through-2.3.8"
+      sources."tmp-0.0.33"
+      sources."to-readable-stream-1.0.0"
+      sources."toidentifier-1.0.0"
+      sources."ts-log-2.1.4"
+      sources."tslib-1.13.0"
+      sources."type-is-1.6.18"
+      sources."unpipe-1.0.0"
+      sources."uri-js-4.4.0"
+      sources."url-parse-lax-3.0.0"
+      sources."util-deprecate-1.0.2"
+      sources."utils-merge-1.0.1"
+      sources."vary-1.1.2"
+      sources."wrappy-1.0.2"
+      sources."xtend-4.0.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Japanese DTV Tuner Server Service.";
+      homepage = https://github.com/Chinachu/Mirakurun;
+      license = "Apache-2.0";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  mocha = nodeEnv.buildNodePackage {
+    name = "mocha";
+    packageName = "mocha";
+    version = "8.1.3";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/mocha/-/mocha-8.1.3.tgz";
+      sha512 = "ZbaYib4hT4PpF4bdSO2DohooKXIn4lDeiYqB+vTmCdr6l2woW0b6H3pf5x4sM5nwQMru9RvjjHYWVGltR50ZBw==";
+    };
+    dependencies = [
+      sources."@types/color-name-1.1.1"
+      sources."ansi-colors-4.1.1"
+      sources."ansi-regex-3.0.0"
+      sources."ansi-styles-4.2.1"
+      sources."anymatch-3.1.1"
+      sources."argparse-1.0.10"
+      sources."array.prototype.map-1.0.2"
+      sources."balanced-match-1.0.0"
+      sources."binary-extensions-2.1.0"
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."browser-stdout-1.3.1"
+      sources."camelcase-5.3.1"
+      sources."chalk-4.1.0"
+      sources."chokidar-3.4.2"
+      (sources."cliui-5.0.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."concat-map-0.0.1"
+      sources."debug-4.1.1"
+      sources."decamelize-1.2.0"
+      sources."define-properties-1.1.3"
+      sources."diff-4.0.2"
+      sources."emoji-regex-7.0.3"
+      sources."es-abstract-1.17.6"
+      sources."es-array-method-boxes-properly-1.0.0"
+      sources."es-get-iterator-1.1.0"
+      sources."es-to-primitive-1.2.1"
+      sources."escape-string-regexp-4.0.0"
+      sources."esprima-4.0.1"
+      sources."fill-range-7.0.1"
+      sources."find-up-5.0.0"
+      sources."flat-4.1.0"
+      sources."fs.realpath-1.0.0"
+      sources."fsevents-2.1.3"
+      sources."function-bind-1.1.1"
+      sources."get-caller-file-2.0.5"
+      sources."glob-7.1.6"
+      sources."glob-parent-5.1.1"
+      sources."growl-1.10.5"
+      sources."has-1.0.3"
+      sources."has-flag-4.0.0"
+      sources."has-symbols-1.0.1"
+      sources."he-1.2.0"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."is-arguments-1.0.4"
+      sources."is-binary-path-2.1.0"
+      sources."is-buffer-2.0.4"
+      sources."is-callable-1.2.1"
+      sources."is-date-object-1.0.2"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-map-2.0.1"
+      sources."is-number-7.0.0"
+      sources."is-plain-obj-1.1.0"
+      sources."is-regex-1.1.1"
+      sources."is-set-2.0.1"
+      sources."is-string-1.0.5"
+      sources."is-symbol-1.0.3"
+      sources."isarray-2.0.5"
+      sources."isexe-2.0.0"
+      sources."iterate-iterator-1.0.1"
+      sources."iterate-value-1.0.2"
+      sources."js-yaml-3.14.0"
+      sources."locate-path-6.0.0"
+      sources."log-symbols-4.0.0"
+      sources."minimatch-3.0.4"
+      sources."ms-2.1.2"
+      sources."normalize-path-3.0.0"
+      sources."object-inspect-1.8.0"
+      sources."object-keys-1.1.1"
+      sources."object.assign-4.1.0"
+      sources."once-1.4.0"
+      sources."p-limit-3.0.2"
+      sources."p-locate-5.0.0"
+      sources."p-try-2.2.0"
+      sources."path-exists-4.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."picomatch-2.2.2"
+      sources."promise.allsettled-1.0.2"
+      sources."randombytes-2.1.0"
+      sources."readdirp-3.4.0"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."safe-buffer-5.2.1"
+      sources."serialize-javascript-4.0.0"
+      sources."set-blocking-2.0.0"
+      sources."sprintf-js-1.0.3"
+      sources."string-width-2.1.1"
+      sources."string.prototype.trimend-1.0.1"
+      sources."string.prototype.trimstart-1.0.1"
+      sources."strip-ansi-4.0.0"
+      sources."strip-json-comments-3.0.1"
+      sources."supports-color-7.1.0"
+      sources."to-regex-range-5.0.1"
+      sources."which-2.0.2"
+      sources."which-module-2.0.0"
+      sources."wide-align-1.1.3"
+      sources."workerpool-6.0.0"
+      (sources."wrap-ansi-5.1.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."ansi-styles-3.2.1"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."y18n-4.0.0"
+      (sources."yargs-13.3.2" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."find-up-3.0.0"
+          sources."locate-path-3.0.0"
+          sources."p-limit-2.3.0"
+          sources."p-locate-3.0.0"
+          sources."path-exists-3.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."yargs-parser-13.1.2"
+      (sources."yargs-unparser-1.6.1" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."find-up-3.0.0"
+          sources."locate-path-3.0.0"
+          sources."p-limit-2.3.0"
+          sources."p-locate-3.0.0"
+          sources."path-exists-3.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+          sources."yargs-14.2.3"
+          sources."yargs-parser-15.0.1"
+        ];
+      })
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "simple, flexible, fun test framework";
+      homepage = https://mochajs.org/;
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  multi-file-swagger = nodeEnv.buildNodePackage {
+    name = "multi-file-swagger";
+    packageName = "multi-file-swagger";
+    version = "2.3.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/multi-file-swagger/-/multi-file-swagger-2.3.0.tgz";
+      sha512 = "kiGLOSzovuYddOePdYicu/jkIjvlNgvq/bP/0C0+oiPBIuiJWLS1vXPvnU2OowRQPi/Hxnp0HuRI5/7s7qu8Qg==";
+    };
+    dependencies = [
+      sources."argparse-1.0.10"
+      sources."asynckit-0.4.0"
+      sources."combined-stream-1.0.8"
+      sources."commander-2.20.3"
+      sources."component-emitter-1.3.0"
+      sources."cookiejar-2.1.2"
+      sources."core-util-is-1.0.2"
+      sources."debug-3.2.6"
+      sources."delayed-stream-1.0.0"
+      sources."esprima-4.0.1"
+      sources."extend-3.0.2"
+      sources."form-data-2.5.1"
+      sources."formidable-1.2.2"
+      sources."graphlib-2.1.8"
+      sources."inherits-2.0.4"
+      sources."isarray-1.0.0"
+      sources."js-yaml-3.14.0"
+      (sources."json-refs-3.0.15" // {
+        dependencies = [
+          sources."commander-4.1.1"
+        ];
+      })
+      sources."lodash-4.17.20"
+      sources."methods-1.1.2"
+      sources."mime-1.6.0"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
+      sources."ms-2.1.2"
+      sources."native-promise-only-0.8.1"
+      sources."path-loader-1.0.10"
+      sources."process-nextick-args-2.0.1"
+      sources."punycode-2.1.1"
+      sources."qs-6.9.4"
+      sources."readable-stream-2.3.7"
+      sources."safe-buffer-5.1.2"
+      sources."slash-3.0.0"
+      sources."sprintf-js-1.0.3"
+      sources."string_decoder-1.1.1"
+      sources."superagent-3.8.3"
+      sources."uri-js-4.4.0"
+      sources."util-deprecate-1.0.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Multi-file Swagger example";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  neovim = nodeEnv.buildNodePackage {
+    name = "neovim";
+    packageName = "neovim";
+    version = "4.9.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/neovim/-/neovim-4.9.0.tgz";
+      sha512 = "48hDy0Dheo5qFF+cwhj7qaWoXfbiKOQ0CLNE0/aiA41rhn/Z1m0OKQqlp9SqbSMr/PnY5QdiLdbs0xh2UudEfA==";
+    };
+    dependencies = [
+      sources."@msgpack/msgpack-1.12.2"
+      sources."async-2.6.3"
+      sources."color-3.0.0"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."color-string-1.5.3"
+      sources."colornames-1.1.1"
+      sources."colors-1.4.0"
+      sources."colorspace-1.1.2"
+      sources."core-util-is-1.0.2"
+      sources."diagnostics-1.1.1"
+      sources."enabled-1.0.2"
+      sources."env-variable-0.0.6"
+      sources."fast-safe-stringify-2.0.7"
+      sources."fecha-4.2.0"
+      sources."inherits-2.0.4"
+      sources."is-arrayish-0.3.2"
+      sources."is-stream-1.1.0"
+      sources."isarray-1.0.0"
+      sources."kuler-1.0.1"
+      sources."lodash-4.17.20"
+      sources."lodash.defaults-4.2.0"
+      sources."lodash.omit-4.5.0"
+      sources."logform-2.2.0"
+      sources."ms-2.1.2"
+      sources."one-time-0.0.4"
+      sources."process-nextick-args-2.0.1"
+      sources."readable-stream-3.6.0"
+      sources."safe-buffer-5.2.1"
+      sources."semver-7.3.2"
+      sources."simple-swizzle-0.2.2"
+      sources."stack-trace-0.0.10"
+      sources."string_decoder-1.3.0"
+      sources."text-hex-1.0.0"
+      sources."triple-beam-1.3.0"
+      sources."util-deprecate-1.0.2"
+      sources."winston-3.2.1"
+      (sources."winston-transport-4.4.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
           sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
         ];
       })
-      (sources."accord-0.28.0" // {
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Neovim client API and neovim remote plugin provider";
+      homepage = https://github.com/neovim/node-client;
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  netlify-cli = nodeEnv.buildNodePackage {
+    name = "netlify-cli";
+    packageName = "netlify-cli";
+    version = "2.63.3";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/netlify-cli/-/netlify-cli-2.63.3.tgz";
+      sha512 = "XHokxG0dgSYbewUj9ifRI/EiM8PYAwWaA31+WFCbGHi0kKHrVwFLx1FsQH3Yo35dQk7MM0dnHjT8xTir0slgZw==";
+    };
+    dependencies = [
+      sources."@analytics/cookie-utils-0.2.3"
+      sources."@analytics/core-0.6.2"
+      sources."@analytics/storage-utils-0.2.4"
+      sources."@babel/code-frame-7.10.4"
+      (sources."@babel/compat-data-7.11.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      (sources."@babel/core-7.11.6" // {
         dependencies = [
-          sources."glob-7.1.6"
-          sources."minimatch-3.0.4"
           sources."semver-5.7.1"
-          sources."uglify-js-2.8.29"
         ];
       })
-      sources."acorn-5.7.4"
-      sources."ajv-4.11.8"
-      (sources."align-text-0.1.4" // {
+      sources."@babel/generator-7.11.6"
+      sources."@babel/helper-annotate-as-pure-7.10.4"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
+      (sources."@babel/helper-compilation-targets-7.10.4" // {
         dependencies = [
-          sources."kind-of-3.2.2"
+          sources."semver-5.7.1"
         ];
       })
-      sources."almond-0.3.3"
-      sources."ansi-colors-1.1.0"
-      sources."ansi-cyan-0.1.1"
-      sources."ansi-gray-0.1.1"
-      sources."ansi-red-0.1.1"
-      sources."ansi-regex-2.1.1"
-      sources."ansi-styles-2.2.1"
-      sources."ansi-wrap-0.1.0"
-      sources."append-buffer-1.0.2"
-      sources."archy-1.0.0"
+      sources."@babel/helper-create-class-features-plugin-7.10.5"
+      sources."@babel/helper-create-regexp-features-plugin-7.10.4"
+      sources."@babel/helper-define-map-7.10.5"
+      sources."@babel/helper-explode-assignable-expression-7.11.4"
+      sources."@babel/helper-function-name-7.10.4"
+      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-hoist-variables-7.10.4"
+      sources."@babel/helper-member-expression-to-functions-7.11.0"
+      sources."@babel/helper-module-imports-7.10.4"
+      sources."@babel/helper-module-transforms-7.11.0"
+      sources."@babel/helper-optimise-call-expression-7.10.4"
+      sources."@babel/helper-plugin-utils-7.10.4"
+      sources."@babel/helper-regex-7.10.5"
+      sources."@babel/helper-remap-async-to-generator-7.11.4"
+      sources."@babel/helper-replace-supers-7.10.4"
+      sources."@babel/helper-simple-access-7.10.4"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.11.0"
+      sources."@babel/helper-split-export-declaration-7.11.0"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helper-wrap-function-7.10.4"
+      sources."@babel/helpers-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.5"
+      sources."@babel/plugin-proposal-async-generator-functions-7.10.5"
+      sources."@babel/plugin-proposal-class-properties-7.10.4"
+      sources."@babel/plugin-proposal-dynamic-import-7.10.4"
+      sources."@babel/plugin-proposal-export-namespace-from-7.10.4"
+      sources."@babel/plugin-proposal-json-strings-7.10.4"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.11.0"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.4"
+      sources."@babel/plugin-proposal-numeric-separator-7.10.4"
+      sources."@babel/plugin-proposal-object-rest-spread-7.11.0"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.10.4"
+      sources."@babel/plugin-proposal-optional-chaining-7.11.0"
+      sources."@babel/plugin-proposal-private-methods-7.10.4"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.10.4"
+      sources."@babel/plugin-syntax-async-generators-7.8.4"
+      sources."@babel/plugin-syntax-class-properties-7.10.4"
+      sources."@babel/plugin-syntax-dynamic-import-7.8.3"
+      sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
+      sources."@babel/plugin-syntax-json-strings-7.8.3"
+      sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
+      sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
+      sources."@babel/plugin-syntax-numeric-separator-7.10.4"
+      sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
+      sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
+      sources."@babel/plugin-syntax-optional-chaining-7.8.3"
+      sources."@babel/plugin-syntax-top-level-await-7.10.4"
+      sources."@babel/plugin-transform-arrow-functions-7.10.4"
+      sources."@babel/plugin-transform-async-to-generator-7.10.4"
+      sources."@babel/plugin-transform-block-scoped-functions-7.10.4"
+      sources."@babel/plugin-transform-block-scoping-7.11.1"
+      sources."@babel/plugin-transform-classes-7.10.4"
+      sources."@babel/plugin-transform-computed-properties-7.10.4"
+      sources."@babel/plugin-transform-destructuring-7.10.4"
+      sources."@babel/plugin-transform-dotall-regex-7.10.4"
+      sources."@babel/plugin-transform-duplicate-keys-7.10.4"
+      sources."@babel/plugin-transform-exponentiation-operator-7.10.4"
+      sources."@babel/plugin-transform-for-of-7.10.4"
+      sources."@babel/plugin-transform-function-name-7.10.4"
+      sources."@babel/plugin-transform-literals-7.10.4"
+      sources."@babel/plugin-transform-member-expression-literals-7.10.4"
+      sources."@babel/plugin-transform-modules-amd-7.10.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.10.4"
+      sources."@babel/plugin-transform-modules-systemjs-7.10.5"
+      sources."@babel/plugin-transform-modules-umd-7.10.4"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.10.4"
+      sources."@babel/plugin-transform-new-target-7.10.4"
+      sources."@babel/plugin-transform-object-super-7.10.4"
+      sources."@babel/plugin-transform-parameters-7.10.5"
+      sources."@babel/plugin-transform-property-literals-7.10.4"
+      sources."@babel/plugin-transform-regenerator-7.10.4"
+      sources."@babel/plugin-transform-reserved-words-7.10.4"
+      sources."@babel/plugin-transform-shorthand-properties-7.10.4"
+      sources."@babel/plugin-transform-spread-7.11.0"
+      sources."@babel/plugin-transform-sticky-regex-7.10.4"
+      sources."@babel/plugin-transform-template-literals-7.10.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.10.4"
+      sources."@babel/plugin-transform-unicode-escapes-7.10.4"
+      sources."@babel/plugin-transform-unicode-regex-7.10.4"
+      (sources."@babel/preset-env-7.11.5" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."@babel/preset-modules-0.1.4"
+      sources."@babel/runtime-7.11.2"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.5"
+      sources."@babel/types-7.11.5"
+      sources."@bugsnag/browser-7.3.5"
+      sources."@bugsnag/core-7.3.5"
+      sources."@bugsnag/cuid-3.0.0"
+      sources."@bugsnag/js-7.3.5"
+      sources."@bugsnag/node-7.3.5"
+      sources."@bugsnag/safe-json-stringify-6.0.0"
+      sources."@dabh/diagnostics-2.0.2"
+      sources."@jest/types-24.9.0"
+      sources."@mrmlnc/readdir-enhanced-2.2.1"
+      (sources."@netlify/build-4.0.4" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+          sources."resolve-2.0.0-next.1"
+        ];
+      })
+      sources."@netlify/cache-utils-1.0.3"
+      (sources."@netlify/config-2.1.5" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+        ];
+      })
+      sources."@netlify/functions-utils-1.2.9"
+      (sources."@netlify/git-utils-1.0.2" // {
+        dependencies = [
+          sources."braces-3.0.2"
+          sources."fill-range-7.0.1"
+          sources."is-number-7.0.0"
+          sources."micromatch-4.0.2"
+          sources."to-regex-range-5.0.1"
+        ];
+      })
+      sources."@netlify/open-api-0.16.0"
+      sources."@netlify/plugin-edge-handlers-1.1.0"
+      sources."@netlify/run-utils-1.0.1"
+      (sources."@netlify/zip-it-and-ship-it-1.3.12" // {
+        dependencies = [
+          sources."resolve-2.0.0-next.1"
+        ];
+      })
+      (sources."@nodelib/fs.scandir-2.1.3" // {
+        dependencies = [
+          sources."@nodelib/fs.stat-2.0.3"
+        ];
+      })
+      sources."@nodelib/fs.stat-1.1.3"
+      sources."@nodelib/fs.walk-1.2.4"
+      (sources."@oclif/color-0.1.2" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          (sources."chalk-3.0.0" // {
+            dependencies = [
+              sources."ansi-styles-4.2.1"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-3.0.0"
+          sources."strip-ansi-5.2.0"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      (sources."@oclif/command-1.8.0" // {
+        dependencies = [
+          sources."@oclif/plugin-help-3.2.0"
+          sources."ansi-regex-3.0.0"
+          sources."ansi-styles-3.2.1"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
+          sources."wrap-ansi-4.0.0"
+        ];
+      })
+      (sources."@oclif/config-1.17.0" // {
+        dependencies = [
+          sources."@nodelib/fs.stat-2.0.3"
+          sources."array-union-2.1.0"
+          sources."braces-3.0.2"
+          sources."dir-glob-3.0.1"
+          sources."fast-glob-3.2.4"
+          sources."fill-range-7.0.1"
+          sources."glob-parent-5.1.1"
+          sources."globby-11.0.1"
+          sources."ignore-5.1.8"
+          sources."is-number-7.0.0"
+          sources."micromatch-4.0.2"
+          sources."slash-3.0.0"
+          sources."to-regex-range-5.0.1"
+          sources."tslib-2.0.1"
+        ];
+      })
+      (sources."@oclif/errors-1.3.3" // {
+        dependencies = [
+          sources."clean-stack-3.0.0"
+          sources."fs-extra-9.0.1"
+          sources."wrap-ansi-7.0.0"
+        ];
+      })
+      sources."@oclif/linewrap-1.0.0"
+      sources."@oclif/parser-3.8.5"
+      (sources."@oclif/plugin-help-2.2.3" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."ansi-styles-3.2.1"
+          sources."emoji-regex-7.0.3"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+          (sources."widest-line-2.0.1" // {
+            dependencies = [
+              sources."string-width-2.1.1"
+              sources."strip-ansi-4.0.0"
+            ];
+          })
+          (sources."wrap-ansi-4.0.0" // {
+            dependencies = [
+              sources."string-width-2.1.1"
+              sources."strip-ansi-4.0.0"
+            ];
+          })
+        ];
+      })
+      (sources."@oclif/plugin-not-found-1.2.4" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."cli-ux-4.9.3"
+          sources."fs-extra-7.0.1"
+          sources."has-flag-3.0.0"
+          sources."indent-string-3.2.0"
+          sources."is-wsl-1.1.0"
+          sources."jsonfile-4.0.0"
+          sources."semver-5.7.1"
+          sources."strip-ansi-5.2.0"
+          sources."supports-color-5.5.0"
+          sources."universalify-0.1.2"
+        ];
+      })
+      (sources."@oclif/plugin-plugins-1.9.0" // {
+        dependencies = [
+          sources."fs-extra-7.0.1"
+          sources."jsonfile-4.0.0"
+          sources."npm-run-path-3.1.0"
+          sources."path-key-3.1.1"
+          sources."tslib-2.0.1"
+          sources."universalify-0.1.2"
+        ];
+      })
+      sources."@oclif/screen-1.0.4"
+      sources."@octokit/auth-token-2.4.2"
+      (sources."@octokit/endpoint-6.0.6" // {
+        dependencies = [
+          sources."is-plain-object-5.0.0"
+          sources."universal-user-agent-6.0.0"
+        ];
+      })
+      (sources."@octokit/plugin-paginate-rest-1.1.2" // {
+        dependencies = [
+          sources."@octokit/types-2.16.2"
+        ];
+      })
+      sources."@octokit/plugin-request-log-1.0.0"
+      (sources."@octokit/plugin-rest-endpoint-methods-2.4.0" // {
+        dependencies = [
+          sources."@octokit/types-2.16.2"
+        ];
+      })
+      (sources."@octokit/request-5.4.9" // {
+        dependencies = [
+          sources."@octokit/request-error-2.0.2"
+          sources."is-plain-object-5.0.0"
+          sources."universal-user-agent-6.0.0"
+        ];
+      })
+      (sources."@octokit/request-error-1.2.1" // {
+        dependencies = [
+          sources."@octokit/types-2.16.2"
+        ];
+      })
+      sources."@octokit/rest-16.43.2"
+      sources."@octokit/types-5.5.0"
+      sources."@rollup/plugin-babel-5.2.1"
+      (sources."@rollup/plugin-commonjs-15.1.0" // {
+        dependencies = [
+          sources."estree-walker-2.0.1"
+        ];
+      })
+      sources."@rollup/plugin-json-4.1.0"
+      sources."@rollup/plugin-node-resolve-9.0.0"
+      sources."@rollup/pluginutils-3.1.0"
+      sources."@sindresorhus/is-0.14.0"
+      sources."@sindresorhus/slugify-1.1.0"
+      (sources."@sindresorhus/transliterate-0.1.1" // {
+        dependencies = [
+          sources."escape-string-regexp-2.0.0"
+        ];
+      })
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@types/color-name-1.1.1"
+      sources."@types/decompress-4.2.3"
+      sources."@types/download-6.2.4"
+      sources."@types/estree-0.0.39"
+      sources."@types/glob-7.1.3"
+      sources."@types/got-8.3.5"
+      sources."@types/http-proxy-1.17.4"
+      sources."@types/istanbul-lib-coverage-2.0.3"
+      sources."@types/istanbul-lib-report-3.0.0"
+      sources."@types/istanbul-reports-1.1.2"
+      sources."@types/minimatch-3.0.3"
+      sources."@types/mkdirp-0.5.2"
+      sources."@types/node-14.11.1"
+      sources."@types/node-fetch-2.5.7"
+      sources."@types/normalize-package-data-2.4.0"
+      sources."@types/resolve-1.17.1"
+      sources."@types/semver-5.5.0"
+      sources."@types/yargs-13.0.10"
+      sources."@types/yargs-parser-15.0.0"
+      sources."@typescript-eslint/typescript-estree-2.34.0"
+      sources."accepts-1.3.7"
+      sources."agent-base-6.0.1"
+      sources."aggregate-error-3.1.0"
+      sources."analytics-0.5.5"
+      sources."analytics-utils-0.2.2"
+      (sources."ansi-align-3.0.0" // {
+        dependencies = [
+          sources."emoji-regex-7.0.3"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."ansi-escapes-3.2.0"
+      sources."ansi-regex-4.1.0"
+      (sources."ansi-styles-4.2.1" // {
+        dependencies = [
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+        ];
+      })
+      sources."ansicolors-0.3.2"
+      sources."anymatch-3.1.1"
+      (sources."archive-type-4.0.0" // {
+        dependencies = [
+          sources."file-type-4.4.0"
+        ];
+      })
+      sources."archiver-4.0.2"
+      (sources."archiver-utils-2.1.0" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."argparse-1.0.10"
       sources."arr-diff-4.0.0"
       sources."arr-flatten-1.1.0"
       sources."arr-union-3.1.0"
-      sources."array-differ-1.0.0"
-      sources."array-each-1.0.1"
-      sources."array-slice-1.1.0"
+      sources."array-flat-polyfill-1.0.1"
+      sources."array-flatten-1.1.1"
+      sources."array-union-1.0.2"
       sources."array-uniq-1.0.3"
       sources."array-unique-0.3.2"
-      sources."asap-2.0.6"
-      sources."asn1-0.2.4"
-      sources."assert-plus-0.2.0"
+      sources."arrify-2.0.1"
+      sources."ascii-table-0.0.9"
       sources."assign-symbols-1.0.0"
+      sources."ast-module-types-2.6.0"
+      sources."async-3.2.0"
       sources."asynckit-0.4.0"
+      sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
-      sources."aws-sign2-0.6.0"
-      sources."aws4-1.10.0"
+      sources."atob-lite-2.0.0"
+      (sources."aws-sdk-2.756.0" // {
+        dependencies = [
+          sources."buffer-4.9.2"
+          sources."uuid-3.3.2"
+        ];
+      })
+      sources."babel-plugin-dynamic-import-node-2.3.3"
+      sources."backoff-2.5.0"
       sources."balanced-match-1.0.0"
       (sources."base-0.11.2" // {
         dependencies = [
           sources."define-property-1.0.0"
         ];
       })
-      sources."bcrypt-pbkdf-1.0.2"
-      sources."beeper-1.1.1"
-      sources."boom-2.10.1"
+      sources."base64-js-1.3.1"
+      sources."before-after-hook-2.1.0"
+      sources."binary-extensions-2.1.0"
+      sources."bl-4.0.3"
+      (sources."body-parser-1.19.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."raw-body-2.4.0"
+        ];
+      })
+      (sources."boxen-4.2.0" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+        ];
+      })
       sources."brace-expansion-1.1.11"
       (sources."braces-2.3.2" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."buffer-equal-1.0.0"
+      sources."browserslist-4.14.3"
+      sources."btoa-lite-1.0.0"
+      sources."buffer-5.6.0"
+      sources."buffer-alloc-1.2.0"
+      sources."buffer-alloc-unsafe-1.1.0"
+      sources."buffer-crc32-0.2.13"
+      sources."buffer-fill-1.0.0"
+      sources."builtin-modules-3.1.0"
+      sources."builtins-1.0.3"
+      sources."byline-5.0.0"
+      sources."bytes-3.1.0"
       sources."cache-base-1.0.1"
-      sources."camelcase-1.2.1"
-      sources."caseless-0.12.0"
-      sources."center-align-0.1.3"
-      sources."chalk-1.1.3"
+      (sources."cacheable-request-6.1.0" // {
+        dependencies = [
+          sources."lowercase-keys-2.0.0"
+        ];
+      })
+      sources."cachedir-2.3.0"
+      sources."call-me-maybe-1.0.1"
+      sources."camelcase-5.3.1"
+      sources."caniuse-lite-1.0.30001133"
+      sources."cardinal-2.1.1"
+      sources."caw-2.0.1"
+      (sources."chalk-2.4.2" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+          sources."escape-string-regexp-1.0.5"
+          sources."has-flag-3.0.0"
+          sources."supports-color-5.5.0"
+        ];
+      })
+      sources."chardet-0.7.0"
+      (sources."chokidar-3.4.2" // {
+        dependencies = [
+          sources."braces-3.0.2"
+          sources."fill-range-7.0.1"
+          sources."glob-parent-5.1.1"
+          sources."is-number-7.0.0"
+          sources."to-regex-range-5.0.1"
+        ];
+      })
+      sources."ci-info-2.0.0"
       (sources."class-utils-0.3.6" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -69134,89 +76498,240 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      (sources."clean-css-4.2.1" // {
+      sources."clean-deep-3.4.0"
+      sources."clean-stack-2.2.0"
+      sources."cli-boxes-2.2.1"
+      sources."cli-cursor-2.1.0"
+      sources."cli-progress-3.8.2"
+      sources."cli-spinners-2.4.0"
+      (sources."cli-ux-5.5.0" // {
         dependencies = [
-          sources."source-map-0.6.1"
+          sources."ansi-escapes-4.3.1"
+          sources."chalk-4.1.0"
+          sources."clean-stack-3.0.0"
+          sources."extract-stack-2.0.0"
+          sources."fs-extra-9.0.1"
+          sources."supports-hyperlinks-2.1.0"
+          sources."tslib-2.0.1"
+          sources."type-fest-0.11.0"
         ];
       })
-      sources."cliui-2.1.0"
+      sources."cli-width-2.2.1"
+      sources."cliui-6.0.0"
       sources."clone-1.0.4"
-      sources."clone-buffer-1.0.0"
-      sources."clone-stats-0.0.1"
-      (sources."cloneable-readable-1.1.3" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-        ];
-      })
-      sources."co-4.6.0"
+      sources."clone-response-1.0.2"
       sources."collection-visit-1.0.0"
-      sources."color-support-1.1.3"
+      sources."color-3.0.0"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."color-string-1.5.3"
+      sources."colors-1.4.0"
+      sources."colorspace-1.1.2"
       sources."combined-stream-1.0.8"
       sources."commander-2.20.3"
+      sources."common-path-prefix-2.0.0"
+      sources."commondir-1.0.1"
       sources."component-emitter-1.3.0"
+      (sources."compress-commons-3.0.0" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+        ];
+      })
       sources."concat-map-0.0.1"
-      sources."convert-source-map-1.7.0"
+      (sources."concordance-4.0.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."config-chain-1.1.12"
+      sources."configstore-5.0.1"
+      (sources."content-disposition-0.5.3" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."content-type-1.0.4"
+      (sources."convert-source-map-1.7.0" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."cookie-0.4.1"
+      sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
+      (sources."copy-template-dir-1.4.0" // {
+        dependencies = [
+          sources."pump-1.0.3"
+          sources."readable-stream-2.3.7"
+          sources."readdirp-2.2.1"
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      (sources."core-js-compat-3.6.5" // {
+        dependencies = [
+          sources."semver-7.0.0"
+        ];
+      })
       sources."core-util-is-1.0.2"
-      sources."cryptiles-2.0.5"
-      (sources."css-2.2.4" // {
+      sources."cp-file-7.0.0"
+      (sources."cpy-8.1.1" // {
         dependencies = [
-          sources."source-map-0.6.1"
+          sources."globby-9.2.0"
         ];
       })
-      sources."d-1.0.1"
-      (sources."dashdash-1.14.1" // {
+      sources."crc-3.8.0"
+      sources."crc32-stream-3.0.1"
+      (sources."cross-spawn-6.0.5" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."semver-5.7.1"
+          sources."which-1.3.1"
         ];
       })
-      sources."dateformat-2.2.0"
-      sources."debug-2.6.9"
-      (sources."debug-fabulous-1.1.0" // {
+      sources."crypto-random-string-2.0.0"
+      sources."cyclist-1.0.1"
+      sources."date-time-2.1.0"
+      (sources."debug-4.3.0" // {
         dependencies = [
-          sources."debug-3.2.6"
           sources."ms-2.1.2"
         ];
       })
       sources."decamelize-1.2.0"
       sources."decode-uri-component-0.2.0"
+      (sources."decompress-4.2.1" // {
+        dependencies = [
+          (sources."make-dir-1.3.0" // {
+            dependencies = [
+              sources."pify-3.0.0"
+            ];
+          })
+          sources."pify-2.3.0"
+        ];
+      })
+      sources."decompress-response-3.3.0"
+      (sources."decompress-tar-4.1.1" // {
+        dependencies = [
+          sources."bl-1.2.3"
+          sources."file-type-5.2.0"
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."tar-stream-1.6.2"
+        ];
+      })
+      (sources."decompress-tarbz2-4.1.1" // {
+        dependencies = [
+          sources."file-type-6.2.0"
+        ];
+      })
+      (sources."decompress-targz-4.1.1" // {
+        dependencies = [
+          sources."file-type-5.2.0"
+        ];
+      })
+      (sources."decompress-unzip-4.0.1" // {
+        dependencies = [
+          sources."file-type-3.9.0"
+          sources."get-stream-2.3.1"
+          sources."pify-2.3.0"
+        ];
+      })
+      sources."deep-extend-0.6.0"
+      sources."deep-is-0.1.3"
+      sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
+      sources."defer-to-connect-1.1.3"
       sources."define-properties-1.1.3"
       sources."define-property-2.0.2"
+      (sources."del-5.1.0" // {
+        dependencies = [
+          sources."slash-3.0.0"
+        ];
+      })
       sources."delayed-stream-1.0.0"
-      sources."deprecated-0.0.1"
-      sources."detect-file-1.0.0"
-      sources."detect-newline-2.1.0"
-      (sources."duplexer2-0.0.2" // {
+      sources."depd-1.1.2"
+      sources."deprecation-2.3.1"
+      sources."destroy-1.0.4"
+      sources."detective-amd-3.0.0"
+      sources."detective-cjs-3.1.1"
+      sources."detective-es6-2.2.0"
+      sources."detective-less-1.0.2"
+      sources."detective-postcss-3.0.1"
+      sources."detective-sass-3.0.1"
+      sources."detective-scss-2.0.1"
+      sources."detective-stylus-1.0.0"
+      sources."detective-typescript-5.8.0"
+      (sources."dir-glob-2.2.2" // {
         dependencies = [
-          sources."isarray-0.0.1"
-          sources."readable-stream-1.1.14"
+          sources."path-type-3.0.0"
+          sources."pify-3.0.0"
         ];
       })
-      (sources."duplexify-3.7.1" // {
+      sources."dlv-1.1.3"
+      sources."dot-prop-5.3.0"
+      sources."dotenv-8.2.0"
+      (sources."download-7.1.0" // {
         dependencies = [
-          sources."end-of-stream-1.4.4"
-          sources."once-1.4.0"
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
+          sources."@sindresorhus/is-0.7.0"
+          sources."cacheable-request-2.1.4"
+          sources."get-stream-3.0.0"
+          sources."got-8.3.2"
+          sources."http-cache-semantics-3.8.1"
+          sources."is-plain-obj-1.1.0"
+          sources."keyv-3.0.0"
+          sources."lowercase-keys-1.0.0"
+          sources."make-dir-1.3.0"
+          sources."normalize-url-2.0.1"
+          sources."p-cancelable-0.4.1"
+          sources."p-event-2.3.1"
+          sources."p-timeout-2.0.1"
+          sources."pify-3.0.0"
+          sources."sort-keys-2.0.0"
         ];
       })
-      sources."ecc-jsbn-0.1.2"
-      sources."end-of-stream-0.1.5"
-      sources."errno-0.1.7"
-      (sources."es5-ext-0.10.53" // {
+      sources."duplexer3-0.1.4"
+      sources."ee-first-1.1.1"
+      sources."electron-to-chromium-1.3.570"
+      sources."elf-tools-1.1.2"
+      sources."emoji-regex-8.0.0"
+      sources."enabled-2.0.0"
+      sources."encodeurl-1.0.2"
+      sources."end-of-stream-1.4.4"
+      sources."envinfo-7.7.3"
+      sources."error-ex-1.3.2"
+      sources."error-stack-parser-2.0.6"
+      sources."es-abstract-1.18.0-next.0"
+      sources."es-to-primitive-1.2.1"
+      sources."escalade-3.1.0"
+      sources."escape-goat-2.1.1"
+      sources."escape-html-1.0.3"
+      sources."escape-string-regexp-4.0.0"
+      (sources."escodegen-1.14.3" // {
         dependencies = [
-          sources."next-tick-1.0.0"
+          sources."source-map-0.6.1"
+        ];
+      })
+      sources."eslint-visitor-keys-1.3.0"
+      sources."esprima-4.0.1"
+      sources."estraverse-4.3.0"
+      sources."estree-walker-1.0.1"
+      sources."esutils-2.0.3"
+      sources."etag-1.8.1"
+      sources."eventemitter3-4.0.7"
+      sources."events-1.1.1"
+      (sources."execa-3.4.0" // {
+        dependencies = [
+          sources."cross-spawn-7.0.3"
+          sources."is-stream-2.0.0"
+          sources."npm-run-path-4.0.1"
+          sources."p-finally-2.0.1"
+          sources."path-key-3.1.1"
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
         ];
       })
-      sources."es6-iterator-2.0.3"
-      sources."es6-symbol-3.1.3"
-      sources."es6-weak-map-2.0.3"
-      sources."escape-string-regexp-1.0.5"
-      sources."event-emitter-0.3.5"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
+          sources."debug-2.6.9"
           sources."define-property-0.2.5"
           sources."extend-shallow-2.0.1"
           (sources."is-accessor-descriptor-0.1.6" // {
@@ -69233,264 +76748,385 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."expand-tilde-2.0.2"
-      (sources."ext-1.4.0" // {
+      (sources."express-4.17.1" // {
         dependencies = [
-          sources."type-2.0.0"
+          sources."cookie-0.4.0"
+          sources."debug-2.6.9"
+          sources."safe-buffer-5.1.2"
         ];
       })
-      sources."extend-3.0.2"
+      sources."express-logging-1.1.1"
+      sources."ext-list-2.2.2"
+      sources."ext-name-5.0.0"
       (sources."extend-shallow-3.0.2" // {
         dependencies = [
           sources."is-extendable-1.0.1"
         ];
       })
+      sources."external-editor-3.1.0"
       (sources."extglob-2.0.4" // {
         dependencies = [
           sources."define-property-1.0.0"
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."extsprintf-1.3.0"
-      sources."fancy-log-1.3.3"
+      sources."extract-stack-1.0.0"
+      sources."fast-diff-1.2.0"
+      sources."fast-equals-1.6.3"
+      sources."fast-glob-2.2.7"
+      sources."fast-levenshtein-2.0.6"
+      sources."fast-safe-stringify-2.0.7"
+      sources."fast-stringify-1.1.2"
+      sources."fastq-1.8.0"
+      sources."fd-slicer-1.1.0"
+      sources."fecha-4.2.0"
+      (sources."figures-3.2.0" // {
+        dependencies = [
+          sources."escape-string-regexp-1.0.5"
+        ];
+      })
+      sources."file-size-0.0.5"
+      sources."file-type-8.1.0"
+      sources."filename-reserved-regex-2.0.0"
+      sources."filenamify-2.1.0"
       (sources."fill-range-4.0.0" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."find-index-0.1.1"
-      sources."findup-sync-2.0.0"
-      sources."fined-1.2.0"
-      sources."first-chunk-stream-1.0.0"
-      sources."flagged-respawn-1.0.1"
-      (sources."flush-write-stream-1.1.1" // {
+      sources."filter-obj-2.0.1"
+      (sources."finalhandler-1.1.2" // {
         dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
+          sources."debug-2.6.9"
         ];
       })
+      sources."find-up-4.1.0"
+      sources."flatten-1.0.3"
+      sources."flush-write-stream-2.0.0"
+      sources."fn.name-1.1.0"
+      sources."folder-walker-3.2.0"
+      sources."follow-redirects-1.13.0"
       sources."for-in-1.0.2"
-      sources."for-own-1.0.0"
-      sources."forever-agent-0.6.1"
-      sources."form-data-2.1.4"
+      sources."form-data-3.0.0"
+      sources."forwarded-0.1.2"
       sources."fragment-cache-0.2.1"
-      (sources."fs-mkdirp-stream-1.0.0" // {
+      sources."fresh-0.5.2"
+      (sources."from2-2.3.0" // {
         dependencies = [
-          sources."graceful-fs-4.2.4"
           sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."from2-array-0.0.4"
+      sources."fs-constants-1.0.0"
+      (sources."fs-extra-8.1.0" // {
+        dependencies = [
+          sources."jsonfile-4.0.0"
+          sources."universalify-0.1.2"
         ];
       })
       sources."fs.realpath-1.0.0"
+      sources."fsevents-2.1.3"
       sources."function-bind-1.1.1"
-      sources."gaze-0.5.2"
+      sources."fuzzy-0.1.3"
+      sources."gensync-1.0.0-beta.1"
+      sources."get-amd-module-type-3.0.0"
+      sources."get-caller-file-2.0.5"
+      sources."get-port-5.1.1"
+      sources."get-proxy-2.1.0"
+      sources."get-stream-5.2.0"
       sources."get-value-2.0.6"
-      (sources."getpass-0.1.7" // {
+      (sources."gh-release-fetch-1.0.4" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."semver-5.7.1"
         ];
       })
-      sources."glob-4.5.3"
-      sources."glob-parent-3.1.0"
-      sources."glob-stream-3.1.18"
-      sources."glob-watcher-0.0.6"
-      sources."glob2base-0.0.12"
-      sources."global-modules-1.0.0"
-      sources."global-prefix-1.0.2"
-      (sources."globule-0.1.0" // {
+      sources."git-repo-info-2.1.1"
+      sources."gitconfiglocal-2.1.0"
+      sources."glob-7.1.6"
+      (sources."glob-parent-3.1.0" // {
         dependencies = [
-          sources."glob-3.1.21"
-          sources."graceful-fs-1.2.3"
-          sources."inherits-1.0.2"
-          sources."minimatch-0.2.14"
+          sources."is-glob-3.1.0"
         ];
       })
-      sources."glogg-1.0.2"
-      sources."graceful-fs-3.0.12"
-      sources."gulp-3.9.1"
-      (sources."gulp-clean-css-3.10.0" // {
+      sources."glob-to-regexp-0.3.0"
+      sources."global-cache-dir-1.0.1"
+      sources."global-dirs-2.0.1"
+      sources."globals-11.12.0"
+      (sources."globby-10.0.2" // {
         dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.3"
+          sources."@nodelib/fs.stat-2.0.3"
+          sources."array-union-2.1.0"
+          sources."braces-3.0.2"
+          sources."dir-glob-3.0.1"
+          sources."fast-glob-3.2.4"
+          sources."fill-range-7.0.1"
+          sources."glob-parent-5.1.1"
+          sources."ignore-5.1.8"
+          sources."is-number-7.0.0"
+          sources."micromatch-4.0.2"
+          sources."slash-3.0.0"
+          sources."to-regex-range-5.0.1"
         ];
       })
-      (sources."gulp-less-3.5.0" // {
+      sources."gonzales-pe-4.3.0"
+      (sources."got-9.6.0" // {
         dependencies = [
-          sources."arr-diff-1.1.0"
-          sources."arr-union-2.1.0"
-          sources."array-slice-0.2.3"
-          sources."extend-shallow-1.1.4"
-          sources."kind-of-1.1.0"
-          sources."plugin-error-0.1.2"
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
+          sources."get-stream-4.1.0"
+          sources."to-readable-stream-1.0.0"
         ];
       })
-      (sources."gulp-sourcemaps-2.6.5" // {
+      sources."graceful-fs-4.2.4"
+      sources."has-1.0.3"
+      (sources."has-ansi-0.1.0" // {
         dependencies = [
-          sources."graceful-fs-4.2.4"
-          sources."readable-stream-2.3.7"
-          sources."source-map-0.6.1"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
+          sources."ansi-regex-0.2.1"
         ];
       })
-      (sources."gulp-typescript-4.0.2" // {
+      sources."has-flag-4.0.0"
+      (sources."has-glob-1.0.0" // {
         dependencies = [
-          sources."arr-diff-1.1.0"
-          sources."arr-union-2.1.0"
-          sources."array-slice-0.2.3"
-          sources."clone-2.1.2"
-          sources."clone-stats-1.0.0"
-          sources."extend-shallow-1.1.4"
-          sources."glob-7.1.6"
-          sources."glob-stream-6.1.0"
-          sources."graceful-fs-4.2.4"
-          sources."kind-of-1.1.0"
-          sources."minimatch-3.0.4"
-          sources."ordered-read-streams-1.0.1"
-          sources."plugin-error-0.1.2"
-          sources."readable-stream-2.3.7"
-          sources."source-map-0.6.1"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
-          sources."unique-stream-2.3.1"
-          sources."vinyl-2.2.0"
-          sources."vinyl-fs-3.0.3"
+          sources."is-glob-3.1.0"
         ];
       })
-      (sources."gulp-uglify-3.0.2" // {
+      sources."has-symbol-support-x-1.4.2"
+      sources."has-symbols-1.0.1"
+      sources."has-to-string-tag-x-1.4.1"
+      sources."has-value-1.0.0"
+      (sources."has-values-1.0.0" // {
         dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
+          sources."kind-of-4.0.0"
         ];
       })
-      (sources."gulp-util-3.0.8" // {
+      sources."has-yarn-2.1.0"
+      (sources."hasha-5.2.0" // {
         dependencies = [
-          sources."object-assign-3.0.0"
-          sources."readable-stream-2.3.7"
-          sources."replace-ext-0.0.1"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
-          sources."vinyl-0.5.3"
+          sources."is-stream-2.0.0"
         ];
       })
-      sources."gulplog-1.0.0"
-      sources."har-schema-1.0.5"
-      sources."har-validator-4.2.1"
-      sources."has-ansi-2.0.0"
-      sources."has-gulplog-0.1.0"
-      sources."has-symbols-1.0.1"
-      sources."has-value-1.0.0"
-      (sources."has-values-1.0.0" // {
+      sources."hosted-git-info-2.8.8"
+      sources."http-cache-semantics-4.1.0"
+      (sources."http-call-5.3.0" // {
         dependencies = [
-          sources."kind-of-4.0.0"
+          sources."is-stream-2.0.0"
+          sources."parse-json-4.0.0"
         ];
       })
-      sources."hawk-3.1.3"
-      sources."hoek-2.16.3"
-      sources."homedir-polyfill-1.0.3"
-      sources."http-signature-1.1.1"
-      sources."image-size-0.5.5"
-      sources."indx-0.2.3"
+      (sources."http-errors-1.7.2" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."http-proxy-1.18.1"
+      (sources."http-proxy-middleware-1.0.5" // {
+        dependencies = [
+          sources."braces-3.0.2"
+          sources."fill-range-7.0.1"
+          sources."is-number-7.0.0"
+          sources."micromatch-4.0.2"
+          sources."to-regex-range-5.0.1"
+        ];
+      })
+      sources."https-proxy-agent-5.0.0"
+      sources."human-signals-1.1.1"
+      sources."hyperlinker-1.0.0"
+      sources."iconv-lite-0.4.24"
+      sources."ieee754-1.1.13"
+      sources."ignore-4.0.6"
+      sources."import-lazy-2.1.0"
+      sources."imurmurhash-0.1.4"
+      sources."indent-string-4.0.0"
+      sources."indexes-of-1.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      sources."interpret-1.4.0"
-      sources."is-absolute-1.0.0"
+      (sources."inquirer-6.5.2" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."escape-string-regexp-1.0.5"
+          sources."figures-2.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          (sources."string-width-2.1.1" // {
+            dependencies = [
+              sources."strip-ansi-4.0.0"
+            ];
+          })
+          (sources."strip-ansi-5.2.0" // {
+            dependencies = [
+              sources."ansi-regex-4.1.0"
+            ];
+          })
+        ];
+      })
+      (sources."inquirer-autocomplete-prompt-1.1.0" // {
+        dependencies = [
+          sources."ansi-escapes-4.3.1"
+          sources."chalk-4.1.0"
+          sources."type-fest-0.11.0"
+        ];
+      })
+      sources."into-stream-3.1.0"
+      sources."invariant-2.2.4"
+      sources."ipaddr.js-1.9.1"
       sources."is-accessor-descriptor-1.0.0"
+      sources."is-arrayish-0.2.1"
+      sources."is-binary-path-2.1.0"
       sources."is-buffer-1.1.6"
+      sources."is-callable-1.2.1"
+      sources."is-ci-2.0.0"
       sources."is-data-descriptor-1.0.0"
+      sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
+      sources."is-docker-2.1.1"
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
-      sources."is-glob-3.1.0"
-      sources."is-negated-glob-1.0.0"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-installed-globally-0.3.2"
+      sources."is-interactive-1.0.0"
+      sources."is-module-1.0.0"
+      sources."is-natural-number-4.0.1"
+      sources."is-negative-zero-2.0.0"
+      sources."is-npm-4.0.0"
       (sources."is-number-3.0.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
         ];
       })
+      sources."is-obj-2.0.0"
+      sources."is-object-1.0.1"
+      sources."is-path-cwd-2.2.0"
+      sources."is-path-inside-3.0.2"
+      sources."is-plain-obj-2.1.0"
       sources."is-plain-object-2.0.4"
-      sources."is-promise-2.2.2"
-      sources."is-relative-1.0.0"
+      sources."is-reference-1.2.1"
+      sources."is-regex-1.1.1"
+      sources."is-retry-allowed-1.2.0"
+      sources."is-stream-1.1.0"
+      sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
-      sources."is-unc-path-1.0.0"
-      sources."is-utf8-0.2.1"
-      sources."is-valid-glob-1.0.0"
+      sources."is-url-1.2.4"
       sources."is-windows-1.0.2"
+      sources."is-wsl-2.2.0"
+      sources."is-yarn-global-0.3.0"
       sources."isarray-1.0.0"
+      sources."iserror-0.0.2"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
-      sources."isstream-0.1.2"
-      sources."jsbn-0.1.1"
-      sources."json-schema-0.2.3"
-      sources."json-stable-stringify-1.0.1"
-      sources."json-stable-stringify-without-jsonify-1.0.1"
-      sources."json-stringify-safe-5.0.1"
-      sources."jsonify-0.0.0"
-      (sources."jsprim-1.4.1" // {
+      sources."isurl-1.0.0"
+      sources."jest-get-type-24.9.0"
+      sources."jest-validate-24.9.0"
+      sources."jmespath-0.15.0"
+      sources."js-string-escape-1.0.1"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.0"
+      sources."jsesc-2.5.2"
+      sources."json-buffer-3.0.0"
+      sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
+      sources."json5-2.1.3"
+      sources."jsonfile-6.0.1"
+      sources."junk-3.1.0"
+      sources."jwt-decode-2.2.0"
+      sources."keep-func-props-3.0.1"
+      sources."keyv-3.1.0"
+      sources."kind-of-6.0.3"
+      sources."kuler-2.0.0"
+      (sources."lambda-local-1.7.3" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
+          sources."commander-5.1.0"
         ];
       })
-      sources."kind-of-6.0.3"
-      sources."lazy-cache-1.0.4"
+      sources."latest-version-5.1.0"
       (sources."lazystream-1.0.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
+          sources."safe-buffer-5.1.2"
         ];
       })
-      sources."lead-1.0.0"
-      (sources."less-2.7.3" // {
+      sources."leven-3.1.0"
+      sources."levenary-1.1.1"
+      sources."levn-0.3.0"
+      sources."lines-and-columns-1.1.6"
+      (sources."load-json-file-5.3.0" // {
         dependencies = [
-          sources."graceful-fs-4.2.4"
+          sources."parse-json-4.0.0"
+          sources."type-fest-0.3.1"
         ];
       })
-      sources."liftoff-2.5.0"
-      sources."lodash-1.0.2"
-      sources."lodash._basecopy-3.0.1"
-      sources."lodash._basetostring-3.0.1"
-      sources."lodash._basevalues-3.0.0"
-      sources."lodash._getnative-3.9.1"
-      sources."lodash._isiterateecall-3.0.9"
-      sources."lodash._reescape-3.0.0"
-      sources."lodash._reevaluate-3.0.0"
+      sources."locate-path-5.0.0"
+      sources."lodash-4.17.20"
       sources."lodash._reinterpolate-3.0.0"
-      sources."lodash._root-3.0.1"
-      sources."lodash.clone-4.5.0"
+      sources."lodash.camelcase-4.3.0"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.debounce-4.0.8"
+      sources."lodash.deburr-4.1.0"
       sources."lodash.defaults-4.2.0"
-      sources."lodash.escape-3.2.0"
+      sources."lodash.difference-4.5.0"
       sources."lodash.flatten-4.4.0"
-      sources."lodash.isarguments-3.1.0"
-      sources."lodash.isarray-3.0.4"
-      sources."lodash.keys-3.1.2"
+      sources."lodash.flattendeep-4.4.0"
+      sources."lodash.get-4.4.2"
+      sources."lodash.isempty-4.4.0"
+      sources."lodash.isequal-4.5.0"
+      sources."lodash.islength-4.0.1"
+      sources."lodash.isobject-3.0.2"
+      sources."lodash.isplainobject-4.0.6"
       sources."lodash.merge-4.6.2"
-      sources."lodash.partialright-4.2.1"
       sources."lodash.pick-4.4.0"
-      sources."lodash.restparam-3.6.1"
-      sources."lodash.template-3.6.2"
-      sources."lodash.templatesettings-3.1.1"
+      sources."lodash.sample-4.2.1"
+      sources."lodash.set-4.3.2"
+      sources."lodash.snakecase-4.1.1"
+      sources."lodash.template-4.5.0"
+      sources."lodash.templatesettings-4.2.0"
+      sources."lodash.transform-4.6.0"
+      sources."lodash.union-4.6.0"
       sources."lodash.uniq-4.5.0"
-      sources."longest-1.0.1"
-      sources."lru-cache-2.7.3"
-      sources."lru-queue-0.1.0"
-      sources."make-error-1.3.6"
-      sources."make-error-cause-1.2.2"
-      sources."make-iterator-1.0.1"
+      (sources."log-process-errors-5.1.2" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+        ];
+      })
+      sources."log-symbols-3.0.0"
+      (sources."logform-2.2.0" // {
+        dependencies = [
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."loose-envify-1.4.0"
+      sources."lowercase-keys-1.0.1"
+      sources."macos-release-2.4.1"
+      sources."magic-string-0.25.7"
+      (sources."make-dir-3.1.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
       sources."map-cache-0.2.2"
+      sources."map-obj-4.1.0"
       sources."map-visit-1.0.0"
-      sources."memoizee-0.4.14"
+      sources."maxstache-1.0.7"
+      (sources."maxstache-stream-1.0.4" // {
+        dependencies = [
+          sources."pump-1.0.3"
+        ];
+      })
+      sources."md5-hex-2.0.0"
+      sources."md5-o-matic-0.1.1"
+      sources."media-typer-0.3.0"
+      sources."memoize-one-5.1.1"
+      sources."merge-descriptors-1.0.1"
+      sources."merge-stream-2.0.0"
+      sources."merge2-1.4.1"
+      sources."methods-1.1.2"
+      sources."micro-api-client-3.3.0"
+      sources."micro-memoize-2.1.2"
       sources."micromatch-3.1.10"
       sources."mime-1.6.0"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
-      sources."minimatch-2.0.10"
+      sources."mimic-fn-3.1.0"
+      sources."mimic-response-1.0.1"
+      sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       (sources."mixin-deep-1.3.2" // {
         dependencies = [
@@ -69498,14 +77134,61 @@ in
         ];
       })
       sources."mkdirp-0.5.5"
+      sources."module-definition-3.3.0"
+      sources."moize-5.4.7"
+      (sources."move-file-1.2.0" // {
+        dependencies = [
+          (sources."cp-file-6.2.0" // {
+            dependencies = [
+              sources."make-dir-2.1.0"
+            ];
+          })
+          sources."path-exists-3.0.0"
+          sources."semver-5.7.1"
+        ];
+      })
       sources."ms-2.0.0"
-      sources."multipipe-0.1.2"
+      (sources."multiparty-4.2.2" // {
+        dependencies = [
+          sources."http-errors-1.8.0"
+          sources."setprototypeof-1.2.0"
+        ];
+      })
+      sources."mute-stream-0.0.7"
       sources."nanomatch-1.2.13"
-      sources."natives-1.1.6"
-      sources."next-tick-1.1.0"
-      sources."normalize-path-2.1.1"
-      sources."now-and-later-2.0.1"
-      sources."oauth-sign-0.8.2"
+      sources."natural-orderby-2.0.3"
+      sources."negotiator-0.6.2"
+      sources."nested-error-stacks-2.1.0"
+      (sources."netlify-4.5.1" // {
+        dependencies = [
+          sources."qs-6.9.4"
+        ];
+      })
+      (sources."netlify-redirect-parser-2.5.0" // {
+        dependencies = [
+          sources."@netlify/config-0.11.11"
+          sources."chalk-3.0.0"
+        ];
+      })
+      sources."netlify-redirector-0.2.0"
+      sources."nice-try-1.0.5"
+      sources."node-fetch-2.6.1"
+      sources."node-releases-1.1.61"
+      sources."node-source-walk-4.2.0"
+      sources."noop2-2.0.0"
+      (sources."normalize-package-data-2.5.0" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."normalize-path-3.0.0"
+      sources."normalize-url-4.5.0"
+      (sources."npm-conf-1.1.3" // {
+        dependencies = [
+          sources."pify-3.0.0"
+        ];
+      })
+      sources."npm-run-path-2.0.2"
       sources."object-assign-4.1.1"
       (sources."object-copy-0.1.0" // {
         dependencies = [
@@ -69520,83 +77203,229 @@ in
           sources."kind-of-3.2.2"
         ];
       })
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
+      sources."object-treeify-1.1.28"
       sources."object-visit-1.0.1"
-      sources."object.assign-4.1.0"
-      sources."object.defaults-1.1.0"
-      sources."object.map-1.0.1"
+      sources."object.assign-4.1.1"
+      (sources."object.getownpropertydescriptors-2.1.0" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
       sources."object.pick-1.3.0"
-      sources."once-1.3.3"
-      sources."orchestrator-0.3.8"
-      sources."ordered-read-streams-0.1.0"
-      sources."os-homedir-1.0.2"
-      sources."parse-filepath-1.0.2"
-      sources."parse-node-version-1.0.1"
-      sources."parse-passwd-1.0.0"
+      sources."octokit-pagination-methods-1.1.0"
+      sources."omit.js-2.0.2"
+      sources."on-finished-2.3.0"
+      sources."on-headers-1.0.2"
+      sources."once-1.4.0"
+      sources."one-time-1.0.0"
+      (sources."onetime-5.1.2" // {
+        dependencies = [
+          sources."mimic-fn-2.1.0"
+        ];
+      })
+      (sources."open-6.4.0" // {
+        dependencies = [
+          sources."is-wsl-1.1.0"
+        ];
+      })
+      (sources."opn-5.5.0" // {
+        dependencies = [
+          sources."is-wsl-1.1.0"
+        ];
+      })
+      sources."optionator-0.8.3"
+      (sources."ora-4.1.1" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+          sources."cli-cursor-3.1.0"
+          sources."mute-stream-0.0.8"
+          sources."restore-cursor-3.1.0"
+        ];
+      })
+      sources."os-name-3.1.0"
+      sources."os-tmpdir-1.0.2"
+      (sources."p-all-2.1.0" // {
+        dependencies = [
+          sources."p-map-2.1.0"
+        ];
+      })
+      sources."p-cancelable-1.1.0"
+      sources."p-event-4.2.0"
+      (sources."p-filter-2.1.0" // {
+        dependencies = [
+          sources."p-map-2.1.0"
+        ];
+      })
+      sources."p-finally-1.0.0"
+      sources."p-is-promise-1.1.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-map-3.0.0"
+      sources."p-reduce-2.1.0"
+      sources."p-timeout-3.2.0"
+      sources."p-try-2.2.0"
+      sources."p-wait-for-3.1.0"
+      (sources."package-json-6.5.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      (sources."parallel-transform-1.2.0" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."parse-github-url-1.0.2"
+      sources."parse-gitignore-1.0.1"
+      sources."parse-json-5.1.0"
+      sources."parse-ms-2.1.0"
+      sources."parseurl-1.3.3"
       sources."pascalcase-0.1.1"
+      sources."password-prompt-1.1.2"
       sources."path-dirname-1.0.2"
+      sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
+      sources."path-key-2.0.1"
       sources."path-parse-1.0.6"
-      sources."path-root-0.1.1"
-      sources."path-root-regex-0.1.2"
-      sources."performance-now-0.2.0"
-      sources."plugin-error-1.0.1"
+      sources."path-to-regexp-0.1.7"
+      sources."path-type-4.0.0"
+      sources."pend-1.2.0"
+      sources."picomatch-2.2.2"
+      sources."pify-4.0.1"
+      sources."pinkie-2.0.4"
+      sources."pinkie-promise-2.0.1"
+      sources."pkg-dir-4.2.0"
       sources."posix-character-classes-0.1.1"
-      sources."pretty-hrtime-1.0.3"
+      (sources."postcss-7.0.34" // {
+        dependencies = [
+          sources."has-flag-3.0.0"
+          sources."source-map-0.6.1"
+          sources."supports-color-6.1.0"
+        ];
+      })
+      sources."postcss-values-parser-1.5.0"
+      sources."precinct-6.3.1"
+      sources."precond-0.2.3"
+      sources."prelude-ls-1.1.2"
+      sources."prepend-http-2.0.0"
+      (sources."pretty-format-24.9.0" // {
+        dependencies = [
+          sources."ansi-styles-3.2.1"
+        ];
+      })
+      sources."pretty-ms-5.1.0"
+      sources."prettyjson-1.2.1"
       sources."process-nextick-args-2.0.1"
-      sources."promise-7.3.1"
-      sources."prr-1.0.1"
-      (sources."pump-2.0.1" // {
+      sources."proto-list-1.2.4"
+      sources."proxy-addr-2.0.6"
+      sources."pump-3.0.0"
+      sources."punycode-1.3.2"
+      sources."pupa-2.0.1"
+      sources."qs-6.7.0"
+      sources."query-string-5.1.1"
+      sources."querystring-0.2.0"
+      sources."random-bytes-1.0.0"
+      sources."random-item-3.0.0"
+      sources."range-parser-1.2.1"
+      (sources."raw-body-2.4.1" // {
         dependencies = [
-          (sources."end-of-stream-1.4.4" // {
-            dependencies = [
-              sources."once-1.4.0"
-            ];
-          })
+          sources."http-errors-1.7.3"
         ];
       })
-      sources."pumpify-1.5.1"
-      sources."punycode-1.4.1"
-      sources."qs-6.4.0"
-      (sources."readable-stream-1.0.34" // {
+      sources."rc-1.2.8"
+      sources."react-is-16.13.1"
+      (sources."read-pkg-5.2.0" // {
         dependencies = [
-          sources."isarray-0.0.1"
+          sources."type-fest-0.6.0"
         ];
       })
-      sources."rechoir-0.6.2"
+      sources."read-pkg-up-7.0.1"
+      sources."readable-stream-3.6.0"
+      sources."readdirp-3.4.0"
+      sources."redeyed-2.1.1"
+      sources."regenerate-1.4.1"
+      sources."regenerate-unicode-properties-8.2.0"
+      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-transform-0.14.5"
       sources."regex-not-1.0.2"
-      sources."remove-bom-buffer-3.0.0"
-      (sources."remove-bom-stream-1.2.0" // {
+      sources."regexpu-core-4.7.1"
+      sources."registry-auth-token-4.2.0"
+      sources."registry-url-5.1.0"
+      sources."regjsgen-0.5.2"
+      (sources."regjsparser-0.6.4" // {
         dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
+          sources."jsesc-0.5.0"
         ];
       })
       sources."remove-trailing-separator-1.1.0"
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
-      sources."replace-ext-1.0.1"
-      sources."request-2.81.0"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."require-package-name-2.0.1"
+      sources."requires-port-1.0.0"
       sources."resolve-1.17.0"
-      sources."resolve-dir-1.0.1"
-      sources."resolve-options-1.1.0"
       sources."resolve-url-0.2.1"
+      sources."responselike-1.0.2"
+      (sources."restore-cursor-2.0.0" // {
+        dependencies = [
+          sources."mimic-fn-1.2.0"
+          sources."onetime-2.0.1"
+        ];
+      })
       sources."ret-0.1.15"
-      sources."right-align-0.1.3"
-      sources."safe-buffer-5.1.2"
+      sources."reusify-1.0.4"
+      sources."rimraf-3.0.2"
+      sources."rollup-2.28.1"
+      sources."run-async-2.4.1"
+      sources."run-parallel-1.1.9"
+      sources."rxjs-6.6.3"
+      sources."safe-buffer-5.2.1"
+      sources."safe-join-0.1.3"
+      sources."safe-json-stringify-1.2.0"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."semver-4.3.6"
-      sources."sequencify-0.0.7"
+      sources."sax-1.2.1"
+      sources."seek-bzip-1.0.6"
+      sources."semver-7.3.2"
+      (sources."semver-diff-3.1.1" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      (sources."send-0.17.1" // {
+        dependencies = [
+          (sources."debug-2.6.9" // {
+            dependencies = [
+              sources."ms-2.0.0"
+            ];
+          })
+          sources."ms-2.1.1"
+        ];
+      })
+      sources."serve-static-1.14.1"
+      sources."set-blocking-2.0.0"
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."sigmund-1.0.1"
+      sources."setprototypeof-1.1.1"
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
+      sources."signal-exit-3.0.3"
+      (sources."simple-swizzle-0.2.2" // {
+        dependencies = [
+          sources."is-arrayish-0.3.2"
+        ];
+      })
+      sources."slash-2.0.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
+          sources."debug-2.6.9"
           sources."define-property-0.2.5"
           sources."extend-shallow-2.0.1"
           (sources."is-accessor-descriptor-0.1.6" // {
@@ -69623,17 +77452,26 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."sntp-1.0.9"
+      (sources."sort-keys-1.1.2" // {
+        dependencies = [
+          sources."is-plain-obj-1.1.0"
+        ];
+      })
+      sources."sort-keys-length-1.0.1"
       sources."source-map-0.5.7"
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
-      sources."sparkles-1.0.1"
+      sources."sourcemap-codec-1.4.8"
+      sources."spdx-correct-3.1.1"
+      sources."spdx-exceptions-2.3.0"
+      sources."spdx-expression-parse-3.0.1"
+      sources."spdx-license-ids-3.0.6"
       sources."split-string-3.1.0"
-      (sources."sshpk-1.16.1" // {
-        dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
+      sources."split2-1.1.1"
+      sources."sprintf-js-1.0.3"
+      sources."stack-generator-2.0.5"
+      sources."stack-trace-0.0.10"
+      sources."stackframe-1.2.0"
       (sources."static-extend-0.1.2" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -69651,50 +77489,130 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."stream-consume-0.1.1"
-      sources."stream-shift-1.0.1"
-      sources."string_decoder-0.10.31"
-      sources."stringstream-0.0.6"
-      sources."strip-ansi-3.0.1"
-      sources."strip-bom-1.0.0"
-      sources."strip-bom-string-1.0.0"
-      sources."supports-color-2.0.0"
-      sources."through2-0.6.5"
-      (sources."through2-filter-3.0.0" // {
+      (sources."static-server-2.2.1" // {
+        dependencies = [
+          sources."ansi-regex-0.2.1"
+          sources."ansi-styles-1.1.0"
+          sources."chalk-0.5.1"
+          sources."escape-string-regexp-1.0.5"
+          sources."strip-ansi-0.3.0"
+          sources."supports-color-0.2.0"
+        ];
+      })
+      sources."statsd-client-0.4.5"
+      sources."statuses-1.5.0"
+      sources."strict-uri-encode-1.1.0"
+      sources."string-width-4.2.0"
+      (sources."string.prototype.trimend-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
+      (sources."string.prototype.trimstart-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
+      (sources."string_decoder-1.1.1" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      (sources."strip-ansi-6.0.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+        ];
+      })
+      sources."strip-ansi-control-characters-2.0.0"
+      sources."strip-bom-3.0.0"
+      sources."strip-dirs-2.1.0"
+      sources."strip-eof-1.0.0"
+      sources."strip-final-newline-2.0.0"
+      sources."strip-json-comments-2.0.1"
+      (sources."strip-outer-1.0.1" // {
+        dependencies = [
+          sources."escape-string-regexp-1.0.5"
+        ];
+      })
+      sources."supports-color-7.2.0"
+      (sources."supports-hyperlinks-1.0.1" // {
+        dependencies = [
+          sources."has-flag-2.0.0"
+          (sources."supports-color-5.5.0" // {
+            dependencies = [
+              sources."has-flag-3.0.0"
+            ];
+          })
+        ];
+      })
+      sources."tar-stream-2.1.4"
+      sources."temp-dir-1.0.0"
+      (sources."tempy-0.3.0" // {
+        dependencies = [
+          sources."crypto-random-string-1.0.0"
+          sources."type-fest-0.3.1"
+          sources."unique-string-1.0.0"
+        ];
+      })
+      sources."term-size-2.2.0"
+      sources."text-hex-1.0.0"
+      sources."through-2.3.8"
+      (sources."through2-2.0.5" // {
         dependencies = [
           sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
+          sources."safe-buffer-5.1.2"
         ];
       })
-      sources."tildify-1.2.0"
-      sources."time-stamp-1.1.0"
-      sources."timers-ext-0.1.7"
-      sources."to-absolute-glob-2.0.2"
+      sources."through2-filter-3.0.0"
+      sources."through2-map-3.0.0"
+      sources."time-zone-1.0.0"
+      sources."timed-out-4.0.1"
+      sources."tmp-0.0.33"
+      sources."to-buffer-1.1.1"
+      sources."to-fast-properties-2.0.0"
       (sources."to-object-path-0.3.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
         ];
       })
+      sources."to-readable-stream-2.1.0"
       sources."to-regex-3.0.2"
       sources."to-regex-range-2.1.1"
-      (sources."to-through-2.0.0" // {
+      sources."toidentifier-1.0.0"
+      sources."toml-3.0.0"
+      sources."tomlify-j0.4-3.0.0"
+      sources."treeify-1.1.0"
+      (sources."trim-repeated-1.0.0" // {
         dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
-          sources."through2-2.0.5"
+          sources."escape-string-regexp-1.0.5"
         ];
       })
-      sources."tough-cookie-2.3.4"
+      sources."triple-beam-1.3.0"
+      sources."tslib-1.13.0"
+      sources."tsutils-3.17.1"
       sources."tunnel-agent-0.6.0"
-      sources."tweetnacl-0.14.5"
-      sources."type-1.2.0"
-      sources."typescript-3.9.5"
-      sources."uglify-js-3.9.4"
-      sources."uglify-to-browserify-1.0.2"
-      sources."unc-path-regex-0.1.2"
+      sources."type-check-0.3.2"
+      sources."type-fest-0.8.1"
+      sources."type-is-1.6.18"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."typescript-3.9.7"
+      sources."uid-safe-2.1.5"
+      sources."unbzip2-stream-1.4.3"
+      sources."unicode-canonical-property-names-ecmascript-1.0.4"
+      sources."unicode-match-property-ecmascript-1.0.4"
+      sources."unicode-match-property-value-ecmascript-1.2.0"
+      sources."unicode-property-aliases-ecmascript-1.1.0"
       sources."union-value-1.0.1"
-      sources."unique-stream-1.0.0"
+      sources."uniq-1.0.1"
+      sources."unique-string-2.0.0"
+      sources."universal-user-agent-4.0.1"
+      sources."universalify-1.0.0"
+      (sources."unixify-1.0.0" // {
+        dependencies = [
+          sources."normalize-path-2.1.1"
+        ];
+      })
+      sources."unpipe-1.0.0"
       (sources."unset-value-1.0.0" // {
         dependencies = [
           (sources."has-value-0.3.1" // {
@@ -69705,309 +77623,73 @@ in
           sources."has-values-0.1.4"
         ];
       })
-      sources."urix-0.1.0"
-      sources."use-3.1.1"
-      sources."user-home-1.1.1"
-      sources."util-deprecate-1.0.2"
-      sources."uuid-3.4.0"
-      sources."v8flags-2.1.1"
-      sources."value-or-function-3.0.0"
-      (sources."verror-1.10.0" // {
+      (sources."update-notifier-4.1.1" // {
         dependencies = [
-          sources."assert-plus-1.0.0"
-        ];
-      })
-      (sources."vinyl-0.4.6" // {
-        dependencies = [
-          sources."clone-0.2.0"
+          sources."chalk-3.0.0"
         ];
       })
-      sources."vinyl-fs-0.3.14"
-      (sources."vinyl-sourcemap-1.1.0" // {
+      sources."urix-0.1.0"
+      sources."url-0.10.3"
+      sources."url-parse-lax-3.0.0"
+      sources."url-to-options-1.0.1"
+      sources."use-3.1.1"
+      sources."util-deprecate-1.0.2"
+      (sources."util.promisify-1.0.1" // {
         dependencies = [
-          sources."clone-2.1.2"
-          sources."clone-stats-1.0.0"
-          sources."graceful-fs-4.2.4"
-          sources."vinyl-2.2.0"
+          sources."es-abstract-1.17.6"
         ];
       })
-      sources."vinyl-sourcemaps-apply-0.2.1"
-      sources."when-3.7.8"
-      sources."which-1.3.1"
-      sources."window-size-0.1.0"
-      sources."wordwrap-0.0.2"
-      sources."wrappy-1.0.2"
-      sources."xtend-4.0.2"
-      sources."yargs-3.10.0"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "[![GoDoc](https://godoc.org/github.com/bakape/meguca?status.svg)](https://godoc.org/github.com/bakape/meguca) [![Build Status](https://travis-ci.org/bakape/meguca.svg?branch=master)](https://travis-ci.org/bakape/meguca)";
-      homepage = "https://github.com/bakape/meguca#readme";
-      license = "AGPL-3.0";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  mocha = nodeEnv.buildNodePackage {
-    name = "mocha";
-    packageName = "mocha";
-    version = "7.2.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz";
-      sha512 = "O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==";
-    };
-    dependencies = [
-      sources."ansi-colors-3.2.3"
-      sources."ansi-regex-3.0.0"
-      sources."ansi-styles-3.2.1"
-      sources."anymatch-3.1.1"
-      sources."argparse-1.0.10"
-      sources."balanced-match-1.0.0"
-      sources."binary-extensions-2.0.0"
-      sources."brace-expansion-1.1.11"
-      sources."braces-3.0.2"
-      sources."browser-stdout-1.3.1"
-      sources."camelcase-5.3.1"
-      (sources."chalk-2.4.2" // {
-        dependencies = [
-          sources."supports-color-5.5.0"
-        ];
-      })
-      sources."chokidar-3.3.0"
-      (sources."cliui-5.0.0" // {
+      sources."utils-merge-1.0.1"
+      sources."uuid-8.3.0"
+      sources."validate-npm-package-license-3.0.4"
+      sources."validate-npm-package-name-3.0.0"
+      sources."vary-1.1.2"
+      (sources."wait-port-0.2.9" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
+          sources."commander-3.0.2"
         ];
       })
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
-      sources."concat-map-0.0.1"
-      sources."debug-3.2.6"
-      sources."decamelize-1.2.0"
-      sources."define-properties-1.1.3"
-      sources."diff-3.5.0"
-      sources."emoji-regex-7.0.3"
-      sources."es-abstract-1.17.5"
-      sources."es-to-primitive-1.2.1"
-      sources."escape-string-regexp-1.0.5"
-      sources."esprima-4.0.1"
-      sources."fill-range-7.0.1"
-      sources."find-up-3.0.0"
-      sources."flat-4.1.0"
-      sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.3"
-      sources."function-bind-1.1.1"
-      sources."get-caller-file-2.0.5"
-      sources."glob-7.1.3"
-      sources."glob-parent-5.1.1"
-      sources."growl-1.10.5"
-      sources."has-1.0.3"
-      sources."has-flag-3.0.0"
-      sources."has-symbols-1.0.1"
-      sources."he-1.2.0"
-      sources."inflight-1.0.6"
-      sources."inherits-2.0.4"
-      sources."is-binary-path-2.1.0"
-      sources."is-buffer-2.0.4"
-      sources."is-callable-1.2.0"
-      sources."is-date-object-1.0.2"
-      sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-2.0.0"
-      sources."is-glob-4.0.1"
-      sources."is-number-7.0.0"
-      sources."is-regex-1.1.0"
-      sources."is-symbol-1.0.3"
-      sources."isexe-2.0.0"
-      sources."js-yaml-3.13.1"
-      sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
-      sources."log-symbols-3.0.0"
-      sources."minimatch-3.0.4"
-      sources."minimist-1.2.5"
-      sources."mkdirp-0.5.5"
-      sources."ms-2.1.1"
-      sources."node-environment-flags-1.0.6"
-      sources."normalize-path-3.0.0"
-      sources."object-inspect-1.7.0"
-      sources."object-keys-1.1.1"
-      sources."object.assign-4.1.0"
-      sources."object.getownpropertydescriptors-2.1.0"
-      sources."once-1.4.0"
-      sources."p-limit-2.3.0"
-      sources."p-locate-3.0.0"
-      sources."p-try-2.2.0"
-      sources."path-exists-3.0.0"
-      sources."path-is-absolute-1.0.1"
-      sources."picomatch-2.2.2"
-      sources."readdirp-3.2.0"
-      sources."require-directory-2.1.1"
-      sources."require-main-filename-2.0.0"
-      sources."semver-5.7.1"
-      sources."set-blocking-2.0.0"
-      sources."sprintf-js-1.0.3"
-      sources."string-width-2.1.1"
-      sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
-      sources."string.prototype.trimstart-1.0.1"
-      sources."strip-ansi-4.0.0"
-      sources."strip-json-comments-2.0.1"
-      sources."supports-color-6.0.0"
-      sources."to-regex-range-5.0.1"
-      sources."which-1.3.1"
+      sources."wcwidth-1.0.1"
+      sources."well-known-symbols-2.0.0"
+      sources."which-2.0.2"
       sources."which-module-2.0.0"
-      sources."wide-align-1.1.3"
-      (sources."wrap-ansi-5.1.0" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
-        ];
-      })
-      sources."wrappy-1.0.2"
-      sources."y18n-4.0.0"
-      (sources."yargs-13.3.2" // {
+      sources."widest-line-3.1.0"
+      (sources."windows-release-3.3.3" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
+          sources."execa-1.0.0"
+          sources."get-stream-4.1.0"
         ];
       })
-      sources."yargs-parser-13.1.2"
-      sources."yargs-unparser-1.6.0"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "simple, flexible, fun test framework";
-      homepage = https://mochajs.org/;
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  multi-file-swagger = nodeEnv.buildNodePackage {
-    name = "multi-file-swagger";
-    packageName = "multi-file-swagger";
-    version = "2.3.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/multi-file-swagger/-/multi-file-swagger-2.3.0.tgz";
-      sha512 = "kiGLOSzovuYddOePdYicu/jkIjvlNgvq/bP/0C0+oiPBIuiJWLS1vXPvnU2OowRQPi/Hxnp0HuRI5/7s7qu8Qg==";
-    };
-    dependencies = [
-      sources."argparse-1.0.10"
-      sources."asynckit-0.4.0"
-      sources."combined-stream-1.0.8"
-      sources."commander-2.20.3"
-      sources."component-emitter-1.3.0"
-      sources."cookiejar-2.1.2"
-      sources."core-util-is-1.0.2"
-      sources."debug-3.2.6"
-      sources."delayed-stream-1.0.0"
-      sources."esprima-4.0.1"
-      sources."extend-3.0.2"
-      sources."form-data-2.5.1"
-      sources."formidable-1.2.2"
-      sources."graphlib-2.1.8"
-      sources."inherits-2.0.4"
-      sources."isarray-1.0.0"
-      sources."js-yaml-3.14.0"
-      (sources."json-refs-3.0.15" // {
+      (sources."winston-3.3.3" // {
         dependencies = [
-          sources."commander-4.1.1"
+          sources."is-stream-2.0.0"
         ];
       })
-      sources."lodash-4.17.15"
-      sources."methods-1.1.2"
-      sources."mime-1.6.0"
-      sources."mime-db-1.44.0"
-      sources."mime-types-2.1.27"
-      sources."ms-2.1.2"
-      sources."native-promise-only-0.8.1"
-      sources."path-loader-1.0.10"
-      sources."process-nextick-args-2.0.1"
-      sources."punycode-2.1.1"
-      sources."qs-6.9.4"
-      sources."readable-stream-2.3.7"
-      sources."safe-buffer-5.1.2"
-      sources."slash-3.0.0"
-      sources."sprintf-js-1.0.3"
-      sources."string_decoder-1.1.1"
-      sources."superagent-3.8.3"
-      sources."uri-js-4.2.2"
-      sources."util-deprecate-1.0.2"
-    ];
-    buildInputs = globalBuildInputs;
-    meta = {
-      description = "Multi-file Swagger example";
-      license = "MIT";
-    };
-    production = true;
-    bypassCache = true;
-    reconstructLock = true;
-  };
-  neovim = nodeEnv.buildNodePackage {
-    name = "neovim";
-    packageName = "neovim";
-    version = "4.9.0";
-    src = fetchurl {
-      url = "https://registry.npmjs.org/neovim/-/neovim-4.9.0.tgz";
-      sha512 = "48hDy0Dheo5qFF+cwhj7qaWoXfbiKOQ0CLNE0/aiA41rhn/Z1m0OKQqlp9SqbSMr/PnY5QdiLdbs0xh2UudEfA==";
-    };
-    dependencies = [
-      sources."@msgpack/msgpack-1.12.2"
-      sources."async-2.6.3"
-      sources."color-3.0.0"
-      sources."color-convert-1.9.3"
-      sources."color-name-1.1.3"
-      sources."color-string-1.5.3"
-      sources."colornames-1.1.1"
-      sources."colors-1.4.0"
-      sources."colorspace-1.1.2"
-      sources."core-util-is-1.0.2"
-      sources."diagnostics-1.1.1"
-      sources."enabled-1.0.2"
-      sources."env-variable-0.0.6"
-      sources."fast-safe-stringify-2.0.7"
-      sources."fecha-2.3.3"
-      sources."inherits-2.0.4"
-      sources."is-arrayish-0.3.2"
-      sources."is-stream-1.1.0"
-      sources."isarray-1.0.0"
-      sources."kuler-1.0.1"
-      sources."lodash-4.17.15"
-      sources."lodash.defaults-4.2.0"
-      sources."lodash.omit-4.5.0"
-      sources."logform-2.1.2"
-      sources."ms-2.1.2"
-      sources."one-time-0.0.4"
-      sources."process-nextick-args-2.0.1"
-      sources."readable-stream-3.6.0"
-      sources."safe-buffer-5.2.1"
-      sources."semver-7.3.2"
-      sources."simple-swizzle-0.2.2"
-      sources."stack-trace-0.0.10"
-      sources."string_decoder-1.3.0"
-      sources."text-hex-1.0.0"
-      sources."triple-beam-1.3.0"
-      sources."util-deprecate-1.0.2"
-      sources."winston-3.2.1"
-      (sources."winston-transport-4.3.0" // {
+      (sources."winston-transport-4.4.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
         ];
       })
+      sources."word-wrap-1.2.3"
+      sources."wrap-ansi-6.2.0"
+      sources."wrappy-1.0.2"
+      sources."write-file-atomic-3.0.3"
+      sources."xdg-basedir-4.0.0"
+      sources."xml2js-0.4.19"
+      sources."xmlbuilder-9.0.7"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.0"
+      sources."yargs-15.4.1"
+      sources."yargs-parser-18.1.3"
+      sources."yarn-1.22.5"
+      sources."yauzl-2.10.0"
+      sources."zip-stream-3.0.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
-      description = "Neovim client API and neovim remote plugin provider";
-      homepage = https://github.com/neovim/node-client;
+      description = "Netlify command line tool";
+      homepage = https://github.com/netlify/cli;
       license = "MIT";
     };
     production = true;
@@ -70039,14 +77721,14 @@ in
   node-gyp = nodeEnv.buildNodePackage {
     name = "node-gyp";
     packageName = "node-gyp";
-    version = "7.0.0";
+    version = "7.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-gyp/-/node-gyp-7.0.0.tgz";
-      sha512 = "ZW34qA3CJSPKDz2SJBHKRvyNQN0yWO5EGKKksJc+jElu9VA468gwJTyTArC1iOXU7rN3Wtfg/CMt/dBAOFIjvg==";
+      url = "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.0.tgz";
+      sha512 = "rjlHQlnl1dqiDZxZYiKqQdrjias7V+81OVR5PTzZioCBtWkNdrKy06M05HLKxy/pcKikKRCabeDRoZaEc6nIjw==";
     };
     dependencies = [
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."ansi-regex-2.1.1"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
@@ -70054,7 +77736,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
@@ -70083,7 +77765,7 @@ in
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-unicode-2.0.1"
       sources."http-signature-1.2.0"
       sources."inflight-1.0.6"
@@ -70102,7 +77784,7 @@ in
       sources."mime-types-2.1.27"
       sources."minimatch-3.0.4"
       sources."minipass-3.1.3"
-      sources."minizlib-2.1.0"
+      sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."nopt-4.0.3"
       sources."npmlog-4.1.2"
@@ -70131,11 +77813,11 @@ in
       sources."string-width-1.0.2"
       sources."string_decoder-1.1.1"
       sources."strip-ansi-3.0.1"
-      sources."tar-6.0.2"
+      sources."tar-6.0.5"
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
@@ -70157,10 +77839,10 @@ in
   node-gyp-build = nodeEnv.buildNodePackage {
     name = "node-gyp-build";
     packageName = "node-gyp-build";
-    version = "4.2.2";
+    version = "4.2.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.2.tgz";
-      sha512 = "Lqh7mrByWCM8Cf9UPqpeoVBBo5Ugx+RKu885GAzmLBVYjeywScxHXPGLa4JfYNZmcNGwzR0Glu5/9GaQZMFqyA==";
+      url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.2.3.tgz";
+      sha512 = "MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -70195,7 +77877,7 @@ in
       sources."async-0.9.2"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.6.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."base64-js-0.0.8"
       sources."bcrypt-pbkdf-1.0.2"
@@ -70390,7 +78072,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       (sources."sshpk-1.16.1" // {
         dependencies = [
           sources."assert-plus-1.0.0"
@@ -70509,7 +78191,7 @@ in
       sources."minizlib-1.3.3"
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
-      sources."needle-2.5.0"
+      sources."needle-2.5.2"
       sources."nopt-4.0.3"
       sources."npm-bundled-1.1.1"
       sources."npm-normalize-package-bin-1.0.1"
@@ -70555,19 +78237,20 @@ in
   node-red = nodeEnv.buildNodePackage {
     name = "node-red";
     packageName = "node-red";
-    version = "1.0.6";
+    version = "1.1.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/node-red/-/node-red-1.0.6.tgz";
-      sha512 = "5K7LKdy232xLSHMo3ZprAEHbLilszSD/qQkt+9PxByJnEMACeHJ7SH4Gpt/1FX+K75gHHNtlnHsWwpQ53lggEA==";
+      url = "https://registry.npmjs.org/node-red/-/node-red-1.1.3.tgz";
+      sha512 = "U+bxzyjB66dwIm0DZwvCqy34A6CJICro8xNNbMqA8GWnNrY6/ZGuUrmNuApsH3n8stkOPB4CozdR9JpEXTqbtw==";
     };
     dependencies = [
-      sources."@babel/runtime-7.10.2"
-      sources."@node-red/editor-api-1.0.6"
-      sources."@node-red/editor-client-1.0.6"
-      (sources."@node-red/nodes-1.0.6" // {
+      sources."@babel/runtime-7.11.2"
+      sources."@node-red/editor-api-1.1.3"
+      sources."@node-red/editor-client-1.1.3"
+      (sources."@node-red/nodes-1.1.3" // {
         dependencies = [
+          sources."cookie-0.4.1"
           sources."http-errors-1.7.3"
-          sources."iconv-lite-0.5.1"
+          sources."iconv-lite-0.6.2"
           sources."inherits-2.0.4"
           sources."media-typer-1.1.0"
           (sources."raw-body-2.4.1" // {
@@ -70577,18 +78260,18 @@ in
           })
         ];
       })
-      sources."@node-red/registry-1.0.6"
-      sources."@node-red/runtime-1.0.6"
-      sources."@node-red/util-1.0.6"
+      sources."@node-red/registry-1.1.3"
+      sources."@node-red/runtime-1.1.3"
+      sources."@node-red/util-1.1.3"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
-      (sources."agent-base-6.0.0" // {
+      (sources."agent-base-6.0.1" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."debug-4.3.0"
           sources."ms-2.1.2"
         ];
       })
-      sources."ajv-6.12.0"
+      sources."ajv-6.12.3"
       sources."ansi-regex-2.1.1"
       sources."append-field-1.0.0"
       sources."aproba-1.2.0"
@@ -70607,17 +78290,24 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
+      sources."axios-0.19.2"
       sources."balanced-match-1.0.0"
       (sources."basic-auth-2.0.1" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
         ];
       })
-      sources."bcrypt-3.0.6"
+      (sources."bcrypt-3.0.6" // {
+        dependencies = [
+          sources."nan-2.13.2"
+          sources."node-pre-gyp-0.12.0"
+          sources."semver-5.7.1"
+        ];
+      })
       sources."bcrypt-pbkdf-1.0.2"
       sources."bcryptjs-2.4.3"
-      (sources."bl-1.2.2" // {
+      (sources."bl-1.2.3" // {
         dependencies = [
           (sources."readable-stream-2.3.7" // {
             dependencies = [
@@ -70653,10 +78343,11 @@ in
       sources."caseless-0.12.0"
       sources."cheerio-0.22.0"
       sources."chownr-1.1.4"
+      sources."cli-table-0.3.1"
       sources."clone-2.1.2"
       sources."code-point-at-1.1.0"
+      sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
-      sources."commander-2.20.3"
       sources."commist-1.1.0"
       sources."concat-map-0.0.1"
       (sources."concat-stream-1.6.2" // {
@@ -70732,14 +78423,14 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      (sources."express-session-1.17.0" // {
+      (sources."express-session-1.17.1" // {
         dependencies = [
           sources."depd-2.0.0"
         ];
       })
       (sources."ext-1.4.0" // {
         dependencies = [
-          sources."type-2.0.0"
+          sources."type-2.1.0"
         ];
       })
       sources."extend-3.0.2"
@@ -70747,6 +78438,11 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."finalhandler-1.1.2"
+      (sources."follow-redirects-1.5.10" // {
+        dependencies = [
+          sources."debug-3.1.0"
+        ];
+      })
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
       sources."forwarded-0.1.2"
@@ -70768,7 +78464,7 @@ in
       })
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-unicode-2.0.1"
       sources."hash-sum-2.0.0"
       sources."help-me-1.1.0"
@@ -70777,7 +78473,7 @@ in
       sources."http-signature-1.2.0"
       (sources."https-proxy-agent-5.0.0" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."debug-4.3.0"
           sources."ms-2.1.2"
         ];
       })
@@ -70800,7 +78496,7 @@ in
       sources."is-windows-1.0.2"
       sources."isarray-1.0.0"
       sources."isstream-0.1.2"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
@@ -70812,6 +78508,7 @@ in
       sources."leven-2.1.0"
       sources."lodash.assignin-4.2.0"
       sources."lodash.bind-4.2.1"
+      sources."lodash.clonedeep-4.5.0"
       sources."lodash.defaults-4.2.0"
       sources."lodash.filter-4.6.0"
       sources."lodash.flatten-4.4.0"
@@ -70831,7 +78528,7 @@ in
       })
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
-      sources."mime-2.4.4"
+      sources."mime-2.4.6"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."minimatch-3.0.4"
@@ -70843,7 +78540,7 @@ in
       })
       sources."minizlib-1.3.3"
       sources."mkdirp-0.5.5"
-      sources."moment-2.26.0"
+      sources."moment-2.28.0"
       sources."moment-timezone-0.5.31"
       (sources."mqtt-2.18.8" // {
         dependencies = [
@@ -70856,8 +78553,9 @@ in
       sources."ms-2.0.0"
       sources."multer-1.4.2"
       sources."mustache-4.0.1"
-      sources."nan-2.13.2"
-      (sources."needle-2.5.0" // {
+      sources."mute-stream-0.0.8"
+      sources."nan-2.14.0"
+      (sources."needle-2.5.2" // {
         dependencies = [
           sources."debug-3.2.6"
           sources."ms-2.1.2"
@@ -70865,11 +78563,16 @@ in
       })
       sources."negotiator-0.6.2"
       sources."next-tick-1.0.0"
-      (sources."node-pre-gyp-0.12.0" // {
+      (sources."node-pre-gyp-0.14.0" // {
         dependencies = [
           sources."semver-5.7.1"
         ];
       })
+      (sources."node-red-admin-0.2.6" // {
+        dependencies = [
+          sources."bcrypt-3.0.8"
+        ];
+      })
       sources."node-red-node-rbe-0.2.9"
       sources."node-red-node-tail-0.1.1"
       sources."nopt-4.0.3"
@@ -70921,8 +78624,9 @@ in
       sources."range-parser-1.2.1"
       sources."raw-body-2.4.0"
       sources."rc-1.2.8"
+      sources."read-1.0.7"
       sources."readable-stream-3.6.0"
-      sources."regenerator-runtime-0.13.5"
+      sources."regenerator-runtime-0.13.7"
       sources."reinterval-1.1.0"
       sources."remove-trailing-separator-1.1.0"
       (sources."request-2.88.0" // {
@@ -70946,7 +78650,6 @@ in
       sources."set-blocking-2.0.0"
       sources."setprototypeof-1.1.1"
       sources."signal-exit-3.0.3"
-      sources."source-map-0.6.1"
       sources."split2-2.2.0"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
@@ -70957,7 +78660,7 @@ in
       sources."string_decoder-1.3.0"
       sources."strip-ansi-3.0.1"
       sources."strip-json-comments-2.0.1"
-      sources."tail-2.0.3"
+      sources."tail-2.0.4"
       (sources."tar-4.4.13" // {
         dependencies = [
           sources."yallist-3.1.1"
@@ -70983,7 +78686,7 @@ in
       sources."type-1.2.0"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.8.1"
+      sources."uglify-js-3.10.0"
       sources."uid-safe-2.1.5"
       sources."uid2-0.0.3"
       sources."ultron-1.1.1"
@@ -70991,7 +78694,7 @@ in
       sources."unique-stream-2.3.1"
       sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
@@ -71045,7 +78748,7 @@ in
     };
     dependencies = [
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."ansi-regex-2.1.1"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
@@ -71053,7 +78756,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
@@ -71099,7 +78802,7 @@ in
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-unicode-2.0.1"
       sources."hosted-git-info-2.8.8"
       sources."http-signature-1.2.0"
@@ -71121,7 +78824,7 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."minipass-3.1.3"
-      sources."minizlib-2.1.0"
+      sources."minizlib-2.1.2"
       sources."mkdirp-0.5.5"
       sources."ncp-0.4.2"
       sources."nijs-0.0.25"
@@ -71183,7 +78886,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."sshpk-1.16.1"
       sources."ssri-5.3.0"
       sources."string-width-1.0.2"
@@ -71193,7 +78896,7 @@ in
         ];
       })
       sources."strip-ansi-3.0.1"
-      (sources."tar-6.0.2" // {
+      (sources."tar-6.0.5" // {
         dependencies = [
           sources."mkdirp-1.0.4"
         ];
@@ -71204,7 +78907,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."typedarray-0.0.6"
       sources."uid-number-0.0.5"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."validate-npm-package-license-3.0.4"
@@ -71247,13 +78950,13 @@ in
       sources."ansi-styles-4.2.1"
       sources."anymatch-3.1.1"
       sources."balanced-match-1.0.0"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."boxen-4.2.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
@@ -71261,12 +78964,12 @@ in
       (sources."chalk-3.0.0" // {
         dependencies = [
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
-      sources."chokidar-3.4.0"
+      sources."chokidar-3.4.2"
       sources."ci-info-2.0.0"
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       sources."clone-response-1.0.2"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
@@ -71277,7 +78980,7 @@ in
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
       sources."defer-to-connect-1.1.3"
-      sources."dot-prop-5.2.0"
+      sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
       sources."emoji-regex-7.0.3"
       sources."end-of-stream-1.4.4"
@@ -71338,7 +79041,7 @@ in
       sources."pupa-2.0.1"
       sources."rc-1.2.8"
       sources."readdirp-3.4.0"
-      sources."registry-auth-token-4.1.1"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       sources."responselike-1.0.2"
       sources."semver-5.7.1"
@@ -71372,7 +79075,7 @@ in
         ];
       })
       sources."unique-string-2.0.0"
-      sources."update-notifier-4.1.0"
+      sources."update-notifier-4.1.1"
       sources."url-parse-lax-3.0.0"
       sources."widest-line-3.1.0"
       sources."wrappy-1.0.2"
@@ -71392,10 +79095,10 @@ in
   npm = nodeEnv.buildNodePackage {
     name = "npm";
     packageName = "npm";
-    version = "6.14.5";
+    version = "6.14.8";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm/-/npm-6.14.5.tgz";
-      sha512 = "CDwa3FJd0XJpKDbWCST484H+mCNjF26dPrU+xnREW+upR0UODjMEfXPl3bxWuAwZIX6c2ASg1plLO7jP8ehWeA==";
+      url = "https://registry.npmjs.org/npm/-/npm-6.14.8.tgz";
+      sha512 = "HBZVBMYs5blsj94GTeQZel7s9odVuuSUHy1+AlZh7rPVux1os2ashvEGLy/STNK7vUjbrCg5Kq9/GXisJgdf6A==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -71410,27 +79113,27 @@ in
   npm-check-updates = nodeEnv.buildNodePackage {
     name = "npm-check-updates";
     packageName = "npm-check-updates";
-    version = "7.0.1";
+    version = "9.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-7.0.1.tgz";
-      sha512 = "z/i1nhxW1OJ2a8wZtm92PS+4vCZ5Y5d86pLDPJScWf8G3vTYJlxd11UqUymnaZWK2nYPMmgxnneAKnFGODDxjw==";
+      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-9.0.1.tgz";
+      sha512 = "xSMyNEIvsrNPDh5r1N/VxDGE+5ZkiEx8BxBvoEBWc/rsaHHfwKCvsY3qJjAn064pULH4uTrT7+kJwroHYsY/Yw==";
     };
     dependencies = [
-      sources."@npmcli/ci-detect-1.2.0"
-      sources."@npmcli/git-2.0.2"
+      sources."@npmcli/ci-detect-1.3.0"
+      sources."@npmcli/git-2.0.4"
       sources."@npmcli/installed-package-contents-1.0.5"
       sources."@npmcli/move-file-1.0.1"
       sources."@npmcli/promise-spawn-1.2.0"
-      sources."@npmcli/run-script-1.3.1"
+      sources."@npmcli/run-script-1.5.0"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@tootallnate/once-1.1.2"
       sources."@types/color-name-1.1.1"
       sources."abbrev-1.1.1"
-      sources."agent-base-6.0.0"
-      sources."agentkeepalive-4.1.2"
-      sources."aggregate-error-3.0.1"
-      sources."ajv-6.12.2"
+      sources."agent-base-6.0.1"
+      sources."agentkeepalive-4.1.3"
+      sources."aggregate-error-3.1.0"
+      sources."ajv-6.12.5"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
@@ -71449,7 +79152,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       (sources."boxen-4.2.0" // {
@@ -71464,10 +79167,10 @@ in
       })
       sources."brace-expansion-1.1.11"
       sources."builtins-1.0.3"
-      sources."cacache-15.0.4"
+      sources."cacache-15.0.5"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
@@ -71478,7 +79181,7 @@ in
       sources."ci-info-2.0.0"
       sources."cint-8.2.1"
       sources."clean-stack-2.2.0"
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-table-0.3.1"
       sources."clone-response-1.0.2"
       sources."code-point-at-1.1.0"
@@ -71486,14 +79189,14 @@ in
       sources."color-name-1.1.4"
       sources."colors-1.0.3"
       sources."combined-stream-1.0.8"
-      sources."commander-5.1.0"
+      sources."commander-6.1.0"
       sources."concat-map-0.0.1"
       sources."configstore-5.0.1"
       sources."console-control-strings-1.1.0"
       sources."core-util-is-1.0.2"
       sources."crypto-random-string-2.0.0"
       sources."dashdash-1.14.1"
-      sources."debug-4.2.0"
+      sources."debug-4.3.0"
       sources."debuglog-1.0.1"
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
@@ -71502,11 +79205,11 @@ in
       sources."delegates-1.0.0"
       sources."depd-1.1.2"
       sources."dezalgo-1.0.3"
-      sources."dot-prop-5.2.0"
+      sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."emoji-regex-7.0.3"
-      sources."encoding-0.1.12"
+      sources."encoding-0.1.13"
       sources."end-of-stream-1.4.4"
       sources."env-paths-2.2.0"
       sources."err-code-1.1.2"
@@ -71517,7 +79220,7 @@ in
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."figgy-pudding-3.5.2"
-      sources."find-up-4.1.0"
+      sources."find-up-5.0.0"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
       sources."fs-minipass-2.1.0"
@@ -71531,17 +79234,17 @@ in
       sources."got-9.6.0"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-flag-4.0.0"
       sources."has-unicode-2.0.1"
       sources."has-yarn-2.1.0"
-      sources."hosted-git-info-3.0.4"
+      sources."hosted-git-info-3.0.5"
       sources."http-cache-semantics-4.1.0"
       sources."http-proxy-agent-4.0.1"
       sources."http-signature-1.2.0"
       sources."https-proxy-agent-5.0.0"
       sources."humanize-ms-1.2.1"
-      sources."iconv-lite-0.4.24"
+      sources."iconv-lite-0.6.2"
       sources."ignore-walk-3.0.3"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
@@ -71567,12 +79270,13 @@ in
       sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
-      sources."json-parse-even-better-errors-2.2.0"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."json-parse-helpfulerror-1.0.3"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."json5-2.1.3"
+      sources."jsonlines-0.1.1"
       sources."jsonparse-1.3.1"
       sources."jsprim-1.4.1"
       sources."keyv-3.1.0"
@@ -71582,49 +79286,45 @@ in
         dependencies = [
           sources."find-up-3.0.0"
           sources."locate-path-3.0.0"
+          sources."p-limit-2.3.0"
           sources."p-locate-3.0.0"
           sources."path-exists-3.0.0"
         ];
       })
-      sources."locate-path-5.0.0"
-      sources."lodash-4.17.15"
+      sources."locate-path-6.0.0"
+      sources."lodash-4.17.20"
       sources."lowercase-keys-1.0.1"
-      sources."lru-cache-5.1.1"
+      sources."lru-cache-6.0.0"
       (sources."make-dir-3.1.0" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
       })
-      sources."make-fetch-happen-8.0.7"
+      sources."make-fetch-happen-8.0.9"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      (sources."minipass-3.1.3" // {
-        dependencies = [
-          sources."yallist-4.0.0"
-        ];
-      })
+      sources."minipass-3.1.3"
       sources."minipass-collect-1.0.2"
-      (sources."minipass-fetch-1.2.1" // {
+      (sources."minipass-fetch-1.3.1" // {
         dependencies = [
-          sources."minizlib-2.1.0"
-          sources."yallist-4.0.0"
+          sources."minizlib-2.1.2"
         ];
       })
       sources."minipass-flush-1.0.5"
       sources."minipass-json-stream-1.0.1"
-      sources."minipass-pipeline-1.2.3"
+      sources."minipass-pipeline-1.2.4"
       sources."minipass-sized-1.0.3"
       (sources."minizlib-1.3.3" // {
         dependencies = [
           sources."minipass-2.9.0"
+          sources."yallist-3.1.1"
         ];
       })
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
-      sources."nested-error-stacks-2.0.1"
       (sources."node-gyp-6.1.0" // {
         dependencies = [
           sources."chownr-1.1.4"
@@ -71635,6 +79335,7 @@ in
           sources."semver-5.7.1"
           sources."tar-4.4.13"
           sources."which-1.3.1"
+          sources."yallist-3.1.1"
         ];
       })
       sources."nopt-4.0.3"
@@ -71645,10 +79346,9 @@ in
       sources."npm-package-arg-8.0.1"
       sources."npm-packlist-2.1.2"
       sources."npm-pick-manifest-6.1.0"
-      (sources."npm-registry-fetch-8.1.0" // {
+      (sources."npm-registry-fetch-8.1.4" // {
         dependencies = [
-          sources."minizlib-2.1.0"
-          sources."yallist-4.0.0"
+          sources."minizlib-2.1.2"
         ];
       })
       sources."npmlog-4.1.2"
@@ -71660,8 +79360,8 @@ in
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
       sources."p-cancelable-1.1.0"
-      sources."p-limit-2.3.0"
-      sources."p-locate-4.1.0"
+      sources."p-limit-3.0.2"
+      sources."p-locate-5.0.0"
       sources."p-map-4.0.0"
       sources."p-try-2.2.0"
       (sources."package-json-6.5.0" // {
@@ -71669,10 +79369,10 @@ in
           sources."semver-6.3.0"
         ];
       })
-      sources."pacote-11.1.10"
+      sources."pacote-11.1.11"
+      sources."parse-github-url-1.0.2"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-parse-1.0.6"
       sources."performance-now-2.1.0"
       sources."prepend-http-2.0.0"
       sources."process-nextick-args-2.0.1"
@@ -71687,15 +79387,14 @@ in
       sources."qs-6.5.2"
       sources."rc-1.2.8"
       sources."rc-config-loader-3.0.0"
-      sources."read-package-json-fast-1.1.3"
+      sources."read-package-json-fast-1.2.1"
       sources."readable-stream-2.3.7"
       sources."readdir-scoped-modules-1.1.0"
-      sources."registry-auth-token-4.1.1"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
+      sources."remote-git-tags-3.0.0"
       sources."request-2.88.2"
       sources."require-from-string-2.0.2"
-      sources."requireg-0.2.2"
-      sources."resolve-1.7.1"
       sources."responselike-1.0.2"
       sources."retry-0.10.1"
       sources."rimraf-3.0.2"
@@ -71712,9 +79411,9 @@ in
       sources."signal-exit-3.0.3"
       sources."sisteransi-1.0.5"
       sources."smart-buffer-4.1.0"
-      sources."socks-2.3.3"
+      sources."socks-2.4.4"
       sources."socks-proxy-agent-5.0.0"
-      sources."spawn-please-0.3.0"
+      sources."spawn-please-0.4.1"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
       sources."ssri-8.0.0"
@@ -71722,11 +79421,10 @@ in
       sources."string_decoder-1.1.1"
       sources."strip-ansi-3.0.1"
       sources."strip-json-comments-2.0.1"
-      sources."supports-color-7.1.0"
-      (sources."tar-6.0.2" // {
+      sources."supports-color-7.2.0"
+      (sources."tar-6.0.5" // {
         dependencies = [
-          sources."minizlib-2.1.0"
-          sources."yallist-4.0.0"
+          sources."minizlib-2.1.2"
         ];
       })
       sources."term-size-2.2.0"
@@ -71739,12 +79437,12 @@ in
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
       sources."unique-string-2.0.0"
-      (sources."update-notifier-4.1.0" // {
+      (sources."update-notifier-4.1.1" // {
         dependencies = [
           sources."chalk-3.0.0"
         ];
       })
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."url-parse-lax-3.0.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
@@ -71764,7 +79462,7 @@ in
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
       sources."xdg-basedir-4.0.0"
-      sources."yallist-3.1.1"
+      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -71787,7 +79485,7 @@ in
     };
     dependencies = [
       sources."abbrev-1.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."ansi-regex-2.1.1"
       sources."aproba-1.2.0"
       sources."are-we-there-yet-1.1.5"
@@ -71796,7 +79494,7 @@ in
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."block-stream-0.0.9"
@@ -71845,7 +79543,7 @@ in
       sources."glob-7.1.6"
       sources."graceful-fs-2.0.3"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-unicode-2.0.1"
       sources."http-signature-1.2.0"
       sources."inflight-1.0.6"
@@ -71932,7 +79630,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."underscore-1.4.4"
       sources."underscore.string-2.3.3"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
@@ -72000,109 +79698,114 @@ in
       sha512 = "G+iZGGiPEXcRzw0fiRxWYCKxdt/F7l9a0xkiU4XbcVRJCSlBnioWEwJMutOCCpoQmaQtjB4RBHDGIHN85AIhLQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/compat-data-7.10.1"
-      (sources."@babel/core-7.10.2" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/compat-data-7.11.0"
+      (sources."@babel/core-7.11.6" // {
         dependencies = [
           sources."json5-2.1.3"
           sources."source-map-0.5.7"
         ];
       })
-      (sources."@babel/generator-7.10.2" // {
+      (sources."@babel/generator-7.11.6" // {
         dependencies = [
           sources."source-map-0.5.7"
         ];
       })
-      sources."@babel/helper-annotate-as-pure-7.10.1"
-      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.1"
-      sources."@babel/helper-builder-react-jsx-7.10.1"
-      sources."@babel/helper-builder-react-jsx-experimental-7.10.1"
-      sources."@babel/helper-compilation-targets-7.10.2"
-      sources."@babel/helper-create-class-features-plugin-7.10.2"
-      sources."@babel/helper-create-regexp-features-plugin-7.10.1"
-      sources."@babel/helper-define-map-7.10.1"
-      sources."@babel/helper-explode-assignable-expression-7.10.1"
-      sources."@babel/helper-function-name-7.10.1"
-      sources."@babel/helper-get-function-arity-7.10.1"
-      sources."@babel/helper-hoist-variables-7.10.1"
-      sources."@babel/helper-member-expression-to-functions-7.10.1"
-      sources."@babel/helper-module-imports-7.10.1"
-      sources."@babel/helper-module-transforms-7.10.1"
-      sources."@babel/helper-optimise-call-expression-7.10.1"
-      sources."@babel/helper-plugin-utils-7.10.1"
-      sources."@babel/helper-regex-7.10.1"
-      sources."@babel/helper-remap-async-to-generator-7.10.1"
-      sources."@babel/helper-replace-supers-7.10.1"
-      sources."@babel/helper-simple-access-7.10.1"
-      sources."@babel/helper-split-export-declaration-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      sources."@babel/helper-wrap-function-7.10.1"
-      sources."@babel/helpers-7.10.1"
-      sources."@babel/highlight-7.10.1"
-      sources."@babel/parser-7.10.2"
-      sources."@babel/plugin-proposal-async-generator-functions-7.10.1"
-      sources."@babel/plugin-proposal-class-properties-7.10.1"
-      sources."@babel/plugin-proposal-dynamic-import-7.10.1"
-      sources."@babel/plugin-proposal-json-strings-7.10.1"
-      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.1"
-      sources."@babel/plugin-proposal-numeric-separator-7.10.1"
-      sources."@babel/plugin-proposal-object-rest-spread-7.10.1"
-      sources."@babel/plugin-proposal-optional-catch-binding-7.10.1"
-      sources."@babel/plugin-proposal-optional-chaining-7.10.1"
-      sources."@babel/plugin-proposal-private-methods-7.10.1"
-      sources."@babel/plugin-proposal-unicode-property-regex-7.10.1"
+      sources."@babel/helper-annotate-as-pure-7.10.4"
+      sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
+      sources."@babel/helper-builder-react-jsx-7.10.4"
+      sources."@babel/helper-builder-react-jsx-experimental-7.11.5"
+      sources."@babel/helper-compilation-targets-7.10.4"
+      sources."@babel/helper-create-class-features-plugin-7.10.5"
+      sources."@babel/helper-create-regexp-features-plugin-7.10.4"
+      sources."@babel/helper-define-map-7.10.5"
+      sources."@babel/helper-explode-assignable-expression-7.11.4"
+      sources."@babel/helper-function-name-7.10.4"
+      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-hoist-variables-7.10.4"
+      sources."@babel/helper-member-expression-to-functions-7.11.0"
+      sources."@babel/helper-module-imports-7.10.4"
+      sources."@babel/helper-module-transforms-7.11.0"
+      sources."@babel/helper-optimise-call-expression-7.10.4"
+      sources."@babel/helper-plugin-utils-7.10.4"
+      sources."@babel/helper-regex-7.10.5"
+      sources."@babel/helper-remap-async-to-generator-7.11.4"
+      sources."@babel/helper-replace-supers-7.10.4"
+      sources."@babel/helper-simple-access-7.10.4"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.11.0"
+      sources."@babel/helper-split-export-declaration-7.11.0"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helper-wrap-function-7.10.4"
+      sources."@babel/helpers-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.5"
+      sources."@babel/plugin-proposal-async-generator-functions-7.10.5"
+      sources."@babel/plugin-proposal-class-properties-7.10.4"
+      sources."@babel/plugin-proposal-dynamic-import-7.10.4"
+      sources."@babel/plugin-proposal-export-namespace-from-7.10.4"
+      sources."@babel/plugin-proposal-json-strings-7.10.4"
+      sources."@babel/plugin-proposal-logical-assignment-operators-7.11.0"
+      sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.4"
+      sources."@babel/plugin-proposal-numeric-separator-7.10.4"
+      sources."@babel/plugin-proposal-object-rest-spread-7.11.0"
+      sources."@babel/plugin-proposal-optional-catch-binding-7.10.4"
+      sources."@babel/plugin-proposal-optional-chaining-7.11.0"
+      sources."@babel/plugin-proposal-private-methods-7.10.4"
+      sources."@babel/plugin-proposal-unicode-property-regex-7.10.4"
       sources."@babel/plugin-syntax-async-generators-7.8.4"
-      sources."@babel/plugin-syntax-class-properties-7.10.1"
+      sources."@babel/plugin-syntax-class-properties-7.10.4"
       sources."@babel/plugin-syntax-dynamic-import-7.8.3"
-      sources."@babel/plugin-syntax-flow-7.10.1"
+      sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
+      sources."@babel/plugin-syntax-flow-7.10.4"
       sources."@babel/plugin-syntax-json-strings-7.8.3"
-      sources."@babel/plugin-syntax-jsx-7.10.1"
+      sources."@babel/plugin-syntax-jsx-7.10.4"
+      sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
       sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
-      sources."@babel/plugin-syntax-numeric-separator-7.10.1"
+      sources."@babel/plugin-syntax-numeric-separator-7.10.4"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
       sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
       sources."@babel/plugin-syntax-optional-chaining-7.8.3"
-      sources."@babel/plugin-syntax-top-level-await-7.10.1"
-      sources."@babel/plugin-transform-arrow-functions-7.10.1"
-      sources."@babel/plugin-transform-async-to-generator-7.10.1"
-      sources."@babel/plugin-transform-block-scoped-functions-7.10.1"
-      sources."@babel/plugin-transform-block-scoping-7.10.1"
-      sources."@babel/plugin-transform-classes-7.10.1"
-      sources."@babel/plugin-transform-computed-properties-7.10.1"
-      sources."@babel/plugin-transform-destructuring-7.10.1"
-      sources."@babel/plugin-transform-dotall-regex-7.10.1"
-      sources."@babel/plugin-transform-duplicate-keys-7.10.1"
-      sources."@babel/plugin-transform-exponentiation-operator-7.10.1"
-      sources."@babel/plugin-transform-flow-strip-types-7.10.1"
-      sources."@babel/plugin-transform-for-of-7.10.1"
-      sources."@babel/plugin-transform-function-name-7.10.1"
-      sources."@babel/plugin-transform-literals-7.10.1"
-      sources."@babel/plugin-transform-member-expression-literals-7.10.1"
-      sources."@babel/plugin-transform-modules-amd-7.10.1"
-      sources."@babel/plugin-transform-modules-commonjs-7.10.1"
-      sources."@babel/plugin-transform-modules-systemjs-7.10.1"
-      sources."@babel/plugin-transform-modules-umd-7.10.1"
-      sources."@babel/plugin-transform-named-capturing-groups-regex-7.8.3"
-      sources."@babel/plugin-transform-new-target-7.10.1"
-      sources."@babel/plugin-transform-object-super-7.10.1"
-      sources."@babel/plugin-transform-parameters-7.10.1"
-      sources."@babel/plugin-transform-property-literals-7.10.1"
-      sources."@babel/plugin-transform-react-jsx-7.10.1"
-      sources."@babel/plugin-transform-regenerator-7.10.1"
-      sources."@babel/plugin-transform-reserved-words-7.10.1"
-      sources."@babel/plugin-transform-shorthand-properties-7.10.1"
-      sources."@babel/plugin-transform-spread-7.10.1"
-      sources."@babel/plugin-transform-sticky-regex-7.10.1"
-      sources."@babel/plugin-transform-template-literals-7.10.1"
-      sources."@babel/plugin-transform-typeof-symbol-7.10.1"
-      sources."@babel/plugin-transform-unicode-escapes-7.10.1"
-      sources."@babel/plugin-transform-unicode-regex-7.10.1"
-      sources."@babel/preset-env-7.10.2"
-      sources."@babel/preset-modules-0.1.3"
-      sources."@babel/runtime-7.10.2"
-      sources."@babel/template-7.10.1"
-      sources."@babel/traverse-7.10.1"
-      sources."@babel/types-7.10.2"
+      sources."@babel/plugin-syntax-top-level-await-7.10.4"
+      sources."@babel/plugin-transform-arrow-functions-7.10.4"
+      sources."@babel/plugin-transform-async-to-generator-7.10.4"
+      sources."@babel/plugin-transform-block-scoped-functions-7.10.4"
+      sources."@babel/plugin-transform-block-scoping-7.11.1"
+      sources."@babel/plugin-transform-classes-7.10.4"
+      sources."@babel/plugin-transform-computed-properties-7.10.4"
+      sources."@babel/plugin-transform-destructuring-7.10.4"
+      sources."@babel/plugin-transform-dotall-regex-7.10.4"
+      sources."@babel/plugin-transform-duplicate-keys-7.10.4"
+      sources."@babel/plugin-transform-exponentiation-operator-7.10.4"
+      sources."@babel/plugin-transform-flow-strip-types-7.10.4"
+      sources."@babel/plugin-transform-for-of-7.10.4"
+      sources."@babel/plugin-transform-function-name-7.10.4"
+      sources."@babel/plugin-transform-literals-7.10.4"
+      sources."@babel/plugin-transform-member-expression-literals-7.10.4"
+      sources."@babel/plugin-transform-modules-amd-7.10.5"
+      sources."@babel/plugin-transform-modules-commonjs-7.10.4"
+      sources."@babel/plugin-transform-modules-systemjs-7.10.5"
+      sources."@babel/plugin-transform-modules-umd-7.10.4"
+      sources."@babel/plugin-transform-named-capturing-groups-regex-7.10.4"
+      sources."@babel/plugin-transform-new-target-7.10.4"
+      sources."@babel/plugin-transform-object-super-7.10.4"
+      sources."@babel/plugin-transform-parameters-7.10.5"
+      sources."@babel/plugin-transform-property-literals-7.10.4"
+      sources."@babel/plugin-transform-react-jsx-7.10.4"
+      sources."@babel/plugin-transform-regenerator-7.10.4"
+      sources."@babel/plugin-transform-reserved-words-7.10.4"
+      sources."@babel/plugin-transform-shorthand-properties-7.10.4"
+      sources."@babel/plugin-transform-spread-7.11.0"
+      sources."@babel/plugin-transform-sticky-regex-7.10.4"
+      sources."@babel/plugin-transform-template-literals-7.10.5"
+      sources."@babel/plugin-transform-typeof-symbol-7.10.4"
+      sources."@babel/plugin-transform-unicode-escapes-7.10.4"
+      sources."@babel/plugin-transform-unicode-regex-7.10.4"
+      sources."@babel/preset-env-7.11.5"
+      sources."@babel/preset-modules-0.1.4"
+      sources."@babel/runtime-7.11.2"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.5"
+      sources."@babel/types-7.11.5"
       sources."@iarna/toml-2.2.5"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
@@ -72112,15 +79815,15 @@ in
       sources."@parcel/watcher-1.12.1"
       sources."@parcel/workers-1.11.0"
       sources."@types/q-1.5.4"
-      sources."abab-2.0.3"
-      sources."acorn-7.2.0"
+      sources."abab-2.0.5"
+      sources."acorn-7.4.0"
       (sources."acorn-globals-4.3.4" // {
         dependencies = [
           sources."acorn-6.4.1"
         ];
       })
       sources."acorn-walk-6.2.0"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."alphanum-sort-1.0.2"
       sources."ansi-regex-3.0.0"
       sources."ansi-styles-3.2.1"
@@ -72137,7 +79840,7 @@ in
       sources."array-equal-1.0.0"
       sources."array-unique-0.3.2"
       sources."asn1-0.2.4"
-      (sources."asn1.js-4.10.1" // {
+      (sources."asn1.js-5.4.1" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -72155,7 +79858,7 @@ in
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."babel-plugin-dynamic-import-node-2.3.3"
       (sources."babel-runtime-6.26.0" // {
         dependencies = [
@@ -72178,7 +79881,7 @@ in
       sources."bcrypt-pbkdf-1.0.2"
       sources."binary-extensions-1.13.1"
       sources."bindings-1.5.0"
-      sources."bn.js-5.1.2"
+      sources."bn.js-5.1.3"
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."braces-2.3.2"
@@ -72193,7 +79896,7 @@ in
           sources."bn.js-4.11.9"
         ];
       })
-      (sources."browserify-sign-4.2.0" // {
+      (sources."browserify-sign-4.2.1" // {
         dependencies = [
           sources."readable-stream-3.6.0"
           sources."safe-buffer-5.2.1"
@@ -72204,7 +79907,7 @@ in
           sources."pako-1.0.11"
         ];
       })
-      sources."browserslist-4.12.0"
+      sources."browserslist-4.14.3"
       (sources."buffer-4.9.2" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -72219,9 +79922,8 @@ in
       sources."caller-callsite-2.0.0"
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
-      sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001081"
+      sources."caniuse-lite-1.0.30001133"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chokidar-2.1.8"
@@ -72229,12 +79931,6 @@ in
       sources."class-utils-0.3.6"
       sources."cli-cursor-2.1.0"
       sources."cli-spinners-1.3.1"
-      (sources."cliui-5.0.0" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."strip-ansi-5.2.0"
-        ];
-      })
       sources."clone-2.1.2"
       sources."coa-2.0.2"
       sources."collection-visit-1.0.0"
@@ -72260,7 +79956,7 @@ in
       })
       sources."core-util-is-1.0.2"
       sources."cosmiconfig-5.2.1"
-      (sources."create-ecdh-4.0.3" // {
+      (sources."create-ecdh-4.0.4" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -72289,7 +79985,7 @@ in
       })
       sources."css-select-2.1.0"
       sources."css-select-base-adapter-0.1.1"
-      sources."css-selector-tokenizer-0.7.2"
+      sources."css-selector-tokenizer-0.7.3"
       sources."css-tree-1.0.0-alpha.37"
       sources."css-what-3.3.0"
       sources."cssesc-3.0.0"
@@ -72310,8 +80006,7 @@ in
       sources."dashdash-1.14.1"
       sources."data-urls-1.1.0"
       sources."deasync-0.1.20"
-      sources."debug-4.2.0"
-      sources."decamelize-1.2.0"
+      sources."debug-4.3.0"
       sources."decode-uri-component-0.2.0"
       sources."deep-is-0.1.3"
       (sources."defaults-1.0.3" // {
@@ -72347,7 +80042,7 @@ in
       })
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.0.1"
+          sources."domelementtype-2.0.2"
           sources."entities-2.0.3"
         ];
       })
@@ -72356,29 +80051,25 @@ in
       sources."domexception-1.0.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."dot-prop-5.2.0"
+      sources."dot-prop-5.3.0"
       sources."dotenv-5.0.1"
       sources."dotenv-expand-5.1.0"
       sources."duplexer2-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.3.466"
-      (sources."elliptic-6.5.2" // {
+      sources."electron-to-chromium-1.3.570"
+      (sources."elliptic-6.5.3" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
       })
-      sources."emoji-regex-7.0.3"
       sources."encodeurl-1.0.2"
       sources."entities-1.1.2"
-      sources."envinfo-7.5.1"
+      sources."envinfo-7.7.3"
       sources."error-ex-1.3.2"
-      (sources."es-abstract-1.17.5" // {
-        dependencies = [
-          sources."object-inspect-1.7.0"
-        ];
-      })
+      sources."es-abstract-1.18.0-next.0"
       sources."es-to-primitive-1.2.1"
+      sources."escalade-3.1.0"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
       sources."escodegen-1.9.1"
@@ -72386,7 +80077,7 @@ in
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."etag-1.8.1"
-      sources."events-3.1.0"
+      sources."events-3.2.0"
       sources."evp_bytestokey-1.0.3"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
@@ -72411,7 +80102,6 @@ in
       sources."file-uri-to-path-1.0.0"
       sources."filesize-3.6.1"
       sources."fill-range-4.0.0"
-      sources."find-up-2.1.0"
       sources."for-in-1.0.2"
       sources."foreach-2.0.5"
       sources."forever-agent-0.6.1"
@@ -72422,7 +80112,6 @@ in
       sources."fsevents-1.2.13"
       sources."function-bind-1.1.1"
       sources."gensync-1.0.0-beta.1"
-      sources."get-caller-file-2.0.5"
       sources."get-port-3.2.0"
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
@@ -72437,7 +80126,7 @@ in
       sources."graceful-fs-4.2.4"
       sources."grapheme-breaker-0.3.2"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-1.0.3"
       (sources."has-ansi-2.0.0" // {
         dependencies = [
@@ -72466,10 +80155,11 @@ in
       sources."html-comment-regex-1.1.2"
       sources."html-encoding-sniffer-1.0.2"
       sources."html-tags-1.2.0"
-      (sources."htmlnano-0.2.5" // {
+      (sources."htmlnano-0.2.6" // {
         dependencies = [
-          sources."posthtml-0.12.3"
-          sources."terser-4.7.0"
+          sources."posthtml-0.13.3"
+          sources."posthtml-parser-0.5.0"
+          sources."terser-4.8.0"
         ];
       })
       (sources."htmlparser2-3.10.1" // {
@@ -72497,7 +80187,7 @@ in
       sources."is-arrayish-0.2.1"
       sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-callable-1.2.0"
+      sources."is-callable-1.2.1"
       sources."is-color-stop-1.1.0"
       (sources."is-data-descriptor-1.0.0" // {
         dependencies = [
@@ -72513,13 +80203,13 @@ in
       sources."is-directory-0.3.1"
       sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
       sources."is-html-1.1.0"
+      sources."is-negative-zero-2.0.0"
       sources."is-number-3.0.0"
       sources."is-obj-2.0.0"
       sources."is-plain-object-2.0.4"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-resolvable-1.1.0"
       sources."is-svg-3.0.0"
       sources."is-symbol-1.0.3"
@@ -72541,7 +80231,7 @@ in
       (sources."jsdom-14.1.0" // {
         dependencies = [
           sources."acorn-6.4.1"
-          sources."escodegen-1.14.2"
+          sources."escodegen-1.14.3"
           sources."esprima-4.0.1"
           sources."ws-6.2.1"
         ];
@@ -72557,8 +80247,7 @@ in
       sources."leven-3.1.0"
       sources."levenary-1.1.1"
       sources."levn-0.3.0"
-      sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.clone-4.5.0"
       sources."lodash.memoize-4.1.2"
       sources."lodash.sortby-4.7.0"
@@ -72621,7 +80310,7 @@ in
           sources."punycode-1.4.1"
         ];
       })
-      sources."node-releases-1.1.58"
+      sources."node-releases-1.1.61"
       sources."normalize-html-whitespace-1.0.0"
       sources."normalize-path-3.0.0"
       sources."normalize-url-3.3.0"
@@ -72630,13 +80319,21 @@ in
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
       sources."object-copy-0.1.0"
-      sources."object-inspect-1.4.1"
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
-      sources."object.assign-4.1.0"
-      sources."object.getownpropertydescriptors-2.1.0"
+      sources."object.assign-4.1.1"
+      (sources."object.getownpropertydescriptors-2.1.0" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
       sources."object.pick-1.3.0"
-      sources."object.values-1.1.1"
+      (sources."object.values-1.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
       sources."onetime-2.0.1"
@@ -72644,33 +80341,28 @@ in
       sources."optionator-0.8.3"
       sources."ora-2.1.0"
       sources."os-browserify-0.3.0"
-      sources."p-limit-1.3.0"
-      sources."p-locate-2.0.0"
-      sources."p-try-1.0.0"
       sources."pako-0.2.9"
-      sources."parse-asn1-5.1.5"
+      sources."parse-asn1-5.1.6"
       sources."parse-json-4.0.0"
       sources."parse5-5.1.0"
       sources."parseurl-1.3.3"
       sources."pascalcase-0.1.1"
       sources."path-browserify-0.0.1"
       sources."path-dirname-1.0.2"
-      sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
       sources."path-parse-1.0.6"
       sources."pbkdf2-3.1.1"
       sources."performance-now-2.1.0"
       sources."physical-cpu-count-2.0.0"
-      sources."pkg-up-2.0.0"
       sources."pn-1.1.0"
       sources."posix-character-classes-0.1.1"
-      (sources."postcss-7.0.32" // {
+      (sources."postcss-7.0.34" // {
         dependencies = [
           sources."supports-color-6.1.0"
         ];
       })
-      (sources."postcss-calc-7.0.2" // {
+      (sources."postcss-calc-7.0.4" // {
         dependencies = [
           sources."postcss-value-parser-4.1.0"
         ];
@@ -72727,15 +80419,14 @@ in
       sources."postcss-ordered-values-4.1.2"
       sources."postcss-reduce-initial-4.0.3"
       sources."postcss-reduce-transforms-4.0.2"
-      sources."postcss-selector-parser-6.0.2"
+      sources."postcss-selector-parser-6.0.3"
       sources."postcss-svgo-4.0.2"
       sources."postcss-unique-selectors-4.0.1"
       sources."postcss-value-parser-3.3.1"
       sources."posthtml-0.11.6"
       sources."posthtml-parser-0.4.2"
-      sources."posthtml-render-1.2.2"
+      sources."posthtml-render-1.2.3"
       sources."prelude-ls-1.1.2"
-      sources."private-0.1.8"
       sources."process-0.11.10"
       sources."process-nextick-args-2.0.1"
       sources."psl-1.8.0"
@@ -72745,7 +80436,13 @@ in
         ];
       })
       sources."punycode-2.1.1"
-      sources."purgecss-1.4.2"
+      (sources."purgecss-2.3.0" // {
+        dependencies = [
+          sources."commander-5.1.0"
+          sources."postcss-7.0.32"
+          sources."supports-color-6.1.0"
+        ];
+      })
       sources."q-1.5.1"
       sources."qs-6.5.2"
       sources."querystring-0.2.0"
@@ -72762,15 +80459,15 @@ in
       sources."readdirp-2.2.1"
       sources."regenerate-1.4.1"
       sources."regenerate-unicode-properties-8.2.0"
-      sources."regenerator-runtime-0.13.5"
-      sources."regenerator-transform-0.14.4"
+      sources."regenerator-runtime-0.13.7"
+      sources."regenerator-transform-0.14.5"
       (sources."regex-not-1.0.2" // {
         dependencies = [
           sources."extend-shallow-3.0.2"
           sources."is-extendable-1.0.1"
         ];
       })
-      sources."regexpu-core-4.7.0"
+      sources."regexpu-core-4.7.1"
       sources."regjsgen-0.5.2"
       (sources."regjsparser-0.6.4" // {
         dependencies = [
@@ -72781,10 +80478,8 @@ in
       sources."repeat-element-1.1.3"
       sources."repeat-string-1.6.1"
       sources."request-2.88.2"
-      sources."request-promise-core-1.1.3"
-      sources."request-promise-native-1.0.8"
-      sources."require-directory-2.1.1"
-      sources."require-main-filename-2.0.0"
+      sources."request-promise-core-1.1.4"
+      sources."request-promise-native-1.0.9"
       sources."resolve-1.17.0"
       sources."resolve-from-3.0.0"
       sources."resolve-url-0.2.1"
@@ -72812,7 +80507,6 @@ in
       })
       sources."serialize-to-js-3.1.1"
       sources."serve-static-1.14.1"
-      sources."set-blocking-2.0.0"
       sources."set-value-2.0.1"
       sources."setimmediate-1.0.5"
       sources."setprototypeof-1.1.1"
@@ -72852,28 +80546,32 @@ in
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.16.1"
       sources."stable-0.1.8"
-      (sources."static-eval-2.0.5" // {
+      (sources."static-eval-2.1.0" // {
         dependencies = [
-          sources."escodegen-1.14.2"
+          sources."escodegen-1.14.3"
           sources."esprima-4.0.1"
         ];
       })
       sources."static-extend-0.1.2"
-      sources."static-module-2.2.5"
+      (sources."static-module-2.2.5" // {
+        dependencies = [
+          sources."object-inspect-1.4.1"
+        ];
+      })
       sources."statuses-1.5.0"
       sources."stealthy-require-1.1.1"
       sources."stream-browserify-2.0.2"
       sources."stream-http-2.8.3"
-      (sources."string-width-3.1.0" // {
+      (sources."string.prototype.trimend-1.0.1" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."strip-ansi-5.2.0"
+          sources."es-abstract-1.17.6"
+        ];
+      })
+      (sources."string.prototype.trimstart-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
         ];
       })
-      sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
-      sources."string.prototype.trimstart-1.0.1"
       sources."string_decoder-1.1.1"
       sources."strip-ansi-4.0.0"
       (sources."stylehacks-4.0.3" // {
@@ -72911,6 +80609,7 @@ in
       (sources."uncss-0.17.3" // {
         dependencies = [
           sources."is-absolute-url-3.0.3"
+          sources."postcss-selector-parser-6.0.2"
         ];
       })
       sources."unicode-canonical-property-names-ecmascript-1.0.4"
@@ -72934,7 +80633,7 @@ in
         ];
       })
       sources."upath-1.2.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       (sources."url-0.11.0" // {
         dependencies = [
@@ -72948,7 +80647,11 @@ in
         ];
       })
       sources."util-deprecate-1.0.2"
-      sources."util.promisify-1.0.1"
+      (sources."util.promisify-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
       sources."uuid-3.4.0"
       sources."v8-compile-cache-2.1.1"
       sources."vendors-1.0.4"
@@ -72963,30 +80666,12 @@ in
       sources."whatwg-mimetype-2.3.0"
       sources."whatwg-url-7.1.0"
       sources."which-1.3.1"
-      sources."which-module-2.0.0"
       sources."word-wrap-1.2.3"
-      (sources."wrap-ansi-5.1.0" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."strip-ansi-5.2.0"
-        ];
-      })
       sources."wrappy-1.0.2"
       sources."ws-5.2.2"
       sources."xml-name-validator-3.0.0"
       sources."xmlchars-2.2.0"
       sources."xtend-4.0.2"
-      sources."y18n-4.0.0"
-      (sources."yargs-14.2.3" // {
-        dependencies = [
-          sources."find-up-3.0.0"
-          sources."locate-path-3.0.0"
-          sources."p-limit-2.3.0"
-          sources."p-locate-3.0.0"
-          sources."p-try-2.2.0"
-        ];
-      })
-      sources."yargs-parser-15.0.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -73012,7 +80697,7 @@ in
           sources."negotiator-0.6.2"
         ];
       })
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -73023,12 +80708,12 @@ in
       sources."async-0.9.2"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."babybird-0.0.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."bindings-1.5.0"
-      sources."bl-1.2.2"
+      sources."bl-1.2.3"
       sources."bluebird-3.7.2"
       (sources."body-parser-1.19.0" // {
         dependencies = [
@@ -73037,7 +80722,7 @@ in
         ];
       })
       sources."brace-expansion-1.1.11"
-      sources."bunyan-1.8.12"
+      sources."bunyan-1.8.14"
       sources."bunyan-syslog-udp-0.2.0"
       sources."busboy-0.3.1"
       sources."bytes-3.0.0"
@@ -73049,7 +80734,6 @@ in
       sources."color-name-1.1.3"
       sources."colors-1.4.0"
       sources."combined-stream-1.0.8"
-      sources."commander-2.20.3"
       sources."compressible-2.0.18"
       sources."compression-1.7.4"
       sources."concat-map-0.0.1"
@@ -73070,7 +80754,7 @@ in
       sources."dicer-0.3.0"
       sources."dnscache-1.0.2"
       sources."dom-storage-2.1.0"
-      sources."domino-2.1.5"
+      sources."domino-2.1.6"
       sources."dtrace-provider-0.8.8"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
@@ -73078,6 +80762,8 @@ in
       sources."encodeurl-1.0.2"
       sources."entities-1.1.2"
       sources."errno-0.1.7"
+      sources."es-abstract-1.18.0-next.0"
+      sources."es-to-primitive-1.2.1"
       sources."escape-html-1.0.3"
       sources."esprima-4.0.1"
       sources."etag-1.8.1"
@@ -73109,7 +80795,8 @@ in
       sources."graceful-fs-4.2.4"
       sources."handlebars-4.7.6"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
+      sources."has-1.0.3"
       sources."has-symbols-1.0.1"
       sources."hat-0.0.3"
       sources."heapdump-0.3.15"
@@ -73121,7 +80808,12 @@ in
       sources."inherits-2.0.3"
       sources."ipaddr.js-1.9.1"
       sources."is-arguments-1.0.4"
+      sources."is-callable-1.2.1"
+      sources."is-date-object-1.0.2"
       sources."is-fullwidth-code-point-2.0.0"
+      sources."is-negative-zero-2.0.0"
+      sources."is-regex-1.1.1"
+      sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
       sources."isarray-1.0.0"
       sources."isstream-0.1.2"
@@ -73141,7 +80833,7 @@ in
       sources."kad-memstore-0.0.1"
       sources."limitation-0.2.1"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.clone-4.5.0"
       sources."media-typer-0.3.0"
       sources."mediawiki-title-0.6.5"
@@ -73154,17 +80846,18 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
-      sources."moment-2.26.0"
+      sources."moment-2.28.0"
       sources."ms-2.0.0"
       sources."msgpack5-3.6.0"
       sources."mv-2.1.1"
       sources."nan-2.14.1"
       sources."ncp-2.0.0"
       sources."negotiator-git+https://github.com/arlolra/negotiator.git#full-parse-access"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       sources."oauth-sign-0.9.0"
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.0"
+      sources."object.assign-4.1.1"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
@@ -73220,7 +80913,7 @@ in
         ];
       })
       sources."serve-static-1.14.1"
-      (sources."service-runner-2.7.7" // {
+      (sources."service-runner-2.7.8" // {
         dependencies = [
           sources."semver-7.3.2"
           sources."yargs-14.2.3"
@@ -73235,6 +80928,16 @@ in
       sources."statuses-1.5.0"
       sources."streamsearch-0.1.2"
       sources."string-width-3.1.0"
+      (sources."string.prototype.trimend-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
+      (sources."string.prototype.trimstart-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
       sources."string_decoder-1.1.1"
       sources."strip-ansi-5.2.0"
       sources."toidentifier-1.0.0"
@@ -73242,10 +80945,10 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
-      sources."uglify-js-3.9.4"
+      sources."uglify-js-3.10.4"
       sources."unix-dgram-2.0.4"
       sources."unpipe-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
@@ -73276,6 +80979,274 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  patch-package = nodeEnv.buildNodePackage {
+    name = "patch-package";
+    packageName = "patch-package";
+    version = "6.2.2";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/patch-package/-/patch-package-6.2.2.tgz";
+      sha512 = "YqScVYkVcClUY0v8fF0kWOjDYopzIM8e3bj/RU1DPeEF14+dCGm6UeOYm4jvCyxqIEQ5/eJzmbWfDWnUleFNMg==";
+    };
+    dependencies = [
+      sources."@yarnpkg/lockfile-1.1.0"
+      sources."ansi-styles-3.2.1"
+      sources."arr-diff-4.0.0"
+      sources."arr-flatten-1.1.0"
+      sources."arr-union-3.1.0"
+      sources."array-unique-0.3.2"
+      sources."assign-symbols-1.0.0"
+      sources."atob-2.1.2"
+      sources."balanced-match-1.0.0"
+      (sources."base-0.11.2" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+        ];
+      })
+      sources."brace-expansion-1.1.11"
+      (sources."braces-2.3.2" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."cache-base-1.0.1"
+      sources."chalk-2.4.2"
+      sources."ci-info-2.0.0"
+      (sources."class-utils-0.3.6" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      sources."collection-visit-1.0.0"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."component-emitter-1.3.0"
+      sources."concat-map-0.0.1"
+      sources."copy-descriptor-0.1.1"
+      sources."cross-spawn-6.0.5"
+      sources."debug-2.6.9"
+      sources."decode-uri-component-0.2.0"
+      sources."define-property-2.0.2"
+      sources."escape-string-regexp-1.0.5"
+      (sources."expand-brackets-2.1.4" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      (sources."extend-shallow-3.0.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      (sources."extglob-2.0.4" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      (sources."fill-range-4.0.0" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      (sources."find-yarn-workspace-root-1.2.1" // {
+        dependencies = [
+          sources."fs-extra-4.0.3"
+        ];
+      })
+      sources."for-in-1.0.2"
+      sources."fragment-cache-0.2.1"
+      sources."fs-extra-7.0.1"
+      sources."fs.realpath-1.0.0"
+      sources."get-value-2.0.6"
+      sources."glob-7.1.6"
+      sources."graceful-fs-4.2.4"
+      sources."has-flag-3.0.0"
+      sources."has-value-1.0.0"
+      (sources."has-values-1.0.0" // {
+        dependencies = [
+          sources."kind-of-4.0.0"
+        ];
+      })
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."is-accessor-descriptor-1.0.0"
+      sources."is-buffer-1.1.6"
+      sources."is-ci-2.0.0"
+      sources."is-data-descriptor-1.0.0"
+      sources."is-descriptor-1.0.2"
+      sources."is-extendable-0.1.1"
+      (sources."is-number-3.0.0" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."is-plain-object-2.0.4"
+      sources."is-windows-1.0.2"
+      sources."isarray-1.0.0"
+      sources."isexe-2.0.0"
+      sources."isobject-3.0.1"
+      sources."jsonfile-4.0.0"
+      sources."kind-of-6.0.3"
+      sources."klaw-sync-6.0.0"
+      sources."map-cache-0.2.2"
+      sources."map-visit-1.0.0"
+      sources."micromatch-3.1.10"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      (sources."mixin-deep-1.3.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      sources."ms-2.0.0"
+      sources."nanomatch-1.2.13"
+      sources."nice-try-1.0.5"
+      (sources."object-copy-0.1.0" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          sources."is-accessor-descriptor-0.1.6"
+          sources."is-data-descriptor-0.1.4"
+          (sources."is-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-5.1.0"
+            ];
+          })
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."object-visit-1.0.1"
+      sources."object.pick-1.3.0"
+      sources."once-1.4.0"
+      sources."os-tmpdir-1.0.2"
+      sources."pascalcase-0.1.1"
+      sources."path-is-absolute-1.0.1"
+      sources."path-key-2.0.1"
+      sources."posix-character-classes-0.1.1"
+      sources."regex-not-1.0.2"
+      sources."repeat-element-1.1.3"
+      sources."repeat-string-1.6.1"
+      sources."resolve-url-0.2.1"
+      sources."ret-0.1.15"
+      sources."rimraf-2.7.1"
+      sources."safe-regex-1.1.0"
+      sources."semver-5.7.1"
+      (sources."set-value-2.0.1" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
+      sources."slash-2.0.0"
+      (sources."snapdragon-0.8.2" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      (sources."snapdragon-node-2.1.1" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+        ];
+      })
+      (sources."snapdragon-util-3.0.1" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."source-map-0.5.7"
+      sources."source-map-resolve-0.5.3"
+      sources."source-map-url-0.4.0"
+      sources."split-string-3.1.0"
+      (sources."static-extend-0.1.2" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      sources."supports-color-5.5.0"
+      sources."tmp-0.0.33"
+      (sources."to-object-path-0.3.0" // {
+        dependencies = [
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."to-regex-3.0.2"
+      sources."to-regex-range-2.1.1"
+      sources."union-value-1.0.1"
+      sources."universalify-0.1.2"
+      (sources."unset-value-1.0.0" // {
+        dependencies = [
+          (sources."has-value-0.3.1" // {
+            dependencies = [
+              sources."isobject-2.1.0"
+            ];
+          })
+          sources."has-values-0.1.4"
+        ];
+      })
+      sources."urix-0.1.0"
+      sources."use-3.1.1"
+      sources."which-1.3.1"
+      sources."wrappy-1.0.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Fix broken node modules with no fuss";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   peerflix = nodeEnv.buildNodePackage {
     name = "peerflix";
     packageName = "peerflix";
@@ -73359,7 +81330,7 @@ in
       sources."dns-txt-2.0.2"
       sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."escape-string-regexp-1.0.5"
       sources."external-editor-2.2.0"
@@ -73397,7 +81368,7 @@ in
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
           sources."is-fullwidth-code-point-2.0.0"
-          sources."lodash-4.17.15"
+          sources."lodash-4.17.20"
           sources."string-width-2.1.1"
           sources."strip-ansi-4.0.0"
           sources."supports-color-5.5.0"
@@ -73406,14 +81377,15 @@ in
       sources."internal-ip-1.2.0"
       sources."ip-1.1.5"
       sources."ip-set-1.0.2"
-      sources."ipaddr.js-1.9.1"
+      sources."ipaddr.js-2.0.0"
       sources."is-arguments-1.0.4"
       sources."is-arrayish-0.2.1"
-      sources."is-callable-1.2.0"
+      sources."is-callable-1.2.1"
       sources."is-date-object-1.0.2"
       sources."is-finite-1.1.0"
       sources."is-fullwidth-code-point-1.0.0"
-      sources."is-regex-1.1.0"
+      sources."is-negative-zero-2.0.0"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."is-utf8-0.2.1"
       sources."isarray-1.0.0"
@@ -73429,7 +81401,7 @@ in
       sources."lodash-3.10.1"
       sources."loud-rejection-1.6.0"
       sources."lru-2.0.1"
-      sources."magnet-uri-5.2.4"
+      sources."magnet-uri-5.3.0"
       sources."map-obj-1.0.1"
       sources."meow-3.7.0"
       sources."mime-2.4.6"
@@ -73449,10 +81421,14 @@ in
       sources."number-is-nan-1.0.1"
       sources."numeral-2.0.6"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-is-1.1.2"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.0"
+      (sources."object.assign-4.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."once-1.4.0"
       sources."onetime-2.0.1"
       sources."open-0.0.5"
@@ -73520,7 +81496,7 @@ in
       sources."semver-5.7.1"
       sources."server-destroy-1.0.1"
       sources."signal-exit-3.0.3"
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
       sources."simple-peer-6.4.4"
       sources."simple-sha1-2.1.2"
@@ -73534,15 +81510,17 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."speedometer-0.1.4"
       sources."stream-buffers-2.2.0"
       sources."string-width-1.0.2"
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
-      sources."string2compact-1.3.0"
+      (sources."string2compact-1.3.0" // {
+        dependencies = [
+          sources."ipaddr.js-1.9.1"
+        ];
+      })
       sources."string_decoder-1.1.1"
       sources."strip-ansi-3.0.1"
       sources."strip-bom-2.0.0"
@@ -73606,7 +81584,7 @@ in
       sources."accepts-1.3.7"
       sources."addr-to-ip-port-1.5.1"
       sources."after-0.8.2"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."archiver-3.1.1"
       (sources."archiver-utils-2.1.0" // {
         dependencies = [
@@ -73621,7 +81599,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."backo2-1.0.2"
       sources."balanced-match-1.0.0"
       sources."base64-arraybuffer-0.1.5"
@@ -73640,7 +81618,7 @@ in
           sources."ws-1.1.5"
         ];
       })
-      sources."bl-4.0.2"
+      sources."bl-4.0.3"
       sources."blob-0.0.5"
       sources."bn.js-4.11.9"
       sources."bncode-0.5.3"
@@ -73717,7 +81695,6 @@ in
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fd-slicer-1.1.0"
       sources."fifo-0.1.4"
       sources."finalhandler-1.1.2"
       sources."flatten-0.0.1"
@@ -73734,7 +81711,7 @@ in
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       (sources."has-binary2-1.0.3" // {
         dependencies = [
           sources."isarray-2.0.1"
@@ -73782,7 +81759,7 @@ in
           sources."readable-stream-2.3.7"
         ];
       })
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.defaults-4.2.0"
       sources."lodash.difference-4.5.0"
       sources."lodash.flatten-4.4.0"
@@ -73807,7 +81784,13 @@ in
         ];
       })
       sources."ms-2.0.0"
-      sources."multiparty-4.2.1"
+      (sources."multiparty-4.2.2" // {
+        dependencies = [
+          sources."http-errors-1.8.0"
+          sources."safe-buffer-5.2.1"
+          sources."setprototypeof-1.2.0"
+        ];
+      })
       sources."negotiator-0.6.2"
       sources."normalize-path-3.0.0"
       sources."oauth-sign-0.9.0"
@@ -73836,7 +81819,6 @@ in
         ];
       })
       sources."peer-wire-swarm-0.12.2"
-      sources."pend-1.2.0"
       sources."performance-now-2.1.0"
       sources."process-nextick-args-2.0.1"
       sources."proxy-addr-2.0.6"
@@ -73872,7 +81854,7 @@ in
       })
       sources."serve-static-1.14.1"
       sources."setprototypeof-1.1.1"
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
       (sources."simple-peer-6.4.4" // {
         dependencies = [
@@ -73919,7 +81901,7 @@ in
       sources."statuses-1.5.0"
       sources."string2compact-1.3.0"
       sources."string_decoder-1.1.1"
-      sources."tar-stream-2.1.2"
+      sources."tar-stream-2.1.4"
       sources."thirty-two-0.0.2"
       sources."thunky-1.1.0"
       sources."to-array-0.1.4"
@@ -73941,7 +81923,7 @@ in
       sources."ultron-1.1.1"
       sources."uniq-1.0.1"
       sources."unpipe-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
       sources."utp-0.0.7"
@@ -73950,7 +81932,7 @@ in
       sources."verror-1.10.0"
       sources."which-1.3.1"
       sources."wrappy-1.0.2"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."xtend-4.0.2"
       sources."yeast-0.1.2"
@@ -73969,10 +81951,10 @@ in
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
-    version = "5.1.6";
+    version = "5.7.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pnpm/-/pnpm-5.1.6.tgz";
-      sha512 = "BMY+RH2ggxY27pSlO5RtGAtTUcUfFVetQZHJdZURWu9tankNO0iDuqSx4w9iBGdIm9+Gd5eQqNYylqTksu2ueA==";
+      url = "https://registry.npmjs.org/pnpm/-/pnpm-5.7.0.tgz";
+      sha512 = "5+ZKJUKhh6indenG8egpELjgAEQKO6fx5LHlepDr3zymkX6EupySjPh/E/20ue920bUbMdvC0Hi2S71S45IJ7A==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -73987,10 +81969,10 @@ in
   postcss-cli = nodeEnv.buildNodePackage {
     name = "postcss-cli";
     packageName = "postcss-cli";
-    version = "7.1.1";
+    version = "7.1.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/postcss-cli/-/postcss-cli-7.1.1.tgz";
-      sha512 = "bYQy5ydAQJKCMSpvaMg0ThPBeGYqhQXumjbFOmWnL4u65CYXQ16RfS6afGQpit0dGv/fNzxbdDtx8dkqOhhIbg==";
+      url = "https://registry.npmjs.org/postcss-cli/-/postcss-cli-7.1.2.tgz";
+      sha512 = "3mlEmN1v2NVuosMWZM2tP8bgZn7rO5PYxRRrXtdSyL5KipcgBDjJ9ct8/LKxImMCJJi3x5nYhCGFJOkGyEqXBQ==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.3"
@@ -74003,14 +81985,14 @@ in
       sources."argparse-1.0.10"
       sources."array-union-2.1.0"
       sources."at-least-node-1.0.0"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."braces-3.0.2"
       sources."caller-callsite-2.0.0"
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."camelcase-5.3.1"
       sources."chalk-4.1.0"
-      sources."chokidar-3.4.0"
+      sources."chokidar-3.4.2"
       sources."cliui-6.0.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
@@ -74022,14 +82004,14 @@ in
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
-      sources."fast-glob-3.2.2"
+      sources."fast-glob-3.2.4"
       sources."fastq-1.8.0"
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
       sources."fs-extra-9.0.1"
       sources."fsevents-2.1.3"
       sources."get-caller-file-2.0.5"
-      sources."get-stdin-7.0.0"
+      sources."get-stdin-8.0.0"
       sources."glob-parent-5.1.1"
       sources."globby-11.0.1"
       sources."graceful-fs-4.2.4"
@@ -74049,7 +82031,7 @@ in
       sources."json-parse-better-errors-1.0.2"
       sources."jsonfile-6.0.1"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       (sources."log-symbols-2.2.0" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -74071,7 +82053,7 @@ in
       sources."path-type-4.0.0"
       sources."picomatch-2.2.2"
       sources."pify-2.3.0"
-      (sources."postcss-7.0.32" // {
+      (sources."postcss-7.0.34" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           (sources."chalk-2.4.2" // {
@@ -74085,7 +82067,7 @@ in
           sources."supports-color-6.1.0"
         ];
       })
-      sources."postcss-load-config-2.1.0"
+      sources."postcss-load-config-2.1.1"
       (sources."postcss-reporter-6.0.1" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
@@ -74110,13 +82092,13 @@ in
       sources."sprintf-js-1.0.3"
       sources."string-width-4.2.0"
       sources."strip-ansi-6.0.0"
-      sources."supports-color-7.1.0"
+      sources."supports-color-7.2.0"
       sources."to-regex-range-5.0.1"
       sources."universalify-1.0.0"
       sources."which-module-2.0.0"
       sources."wrap-ansi-6.2.0"
       sources."y18n-4.0.0"
-      sources."yargs-15.3.1"
+      sources."yargs-15.4.1"
       sources."yargs-parser-18.1.3"
     ];
     buildInputs = globalBuildInputs;
@@ -74132,10 +82114,10 @@ in
   prettier = nodeEnv.buildNodePackage {
     name = "prettier";
     packageName = "prettier";
-    version = "2.0.5";
+    version = "2.1.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prettier/-/prettier-2.0.5.tgz";
-      sha512 = "7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg==";
+      url = "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz";
+      sha512 = "16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -74150,10 +82132,10 @@ in
   pscid = nodeEnv.buildNodePackage {
     name = "pscid";
     packageName = "pscid";
-    version = "2.9.1";
+    version = "2.9.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pscid/-/pscid-2.9.1.tgz";
-      sha512 = "K/v6B+pLyKi3PxthFbNwpWxVvIMIAFWgwo3SewjPnylBaSx9xGLxTrMneKHMf3whOMJlXMD/lrXdGJ0paYfRGQ==";
+      url = "https://registry.npmjs.org/pscid/-/pscid-2.9.3.tgz";
+      sha512 = "6N4chHbL38Km4kTrC7a9UJ4fpPsFV6BDwO3yZetdExN7agC+YGYLpVhLflFUlsZJ9VnUT9UToitwC/DqGnGSjA==";
     };
     dependencies = [
       sources."balanced-match-1.0.0"
@@ -74167,7 +82149,7 @@ in
       sources."inherits-2.0.4"
       sources."isexe-2.0.0"
       sources."keypress-0.2.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."minimatch-3.0.4"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
@@ -74194,10 +82176,10 @@ in
     };
     dependencies = [
       sources."JSONStream-1.3.5"
-      sources."acorn-7.2.0"
+      sources."acorn-7.4.0"
       sources."acorn-node-1.8.2"
-      sources."acorn-walk-7.1.1"
-      (sources."asn1.js-4.10.1" // {
+      sources."acorn-walk-7.2.0"
+      (sources."asn1.js-5.4.1" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -74211,16 +82193,12 @@ in
       sources."async-1.5.2"
       sources."balanced-match-1.0.0"
       sources."base64-js-1.3.1"
-      sources."bn.js-5.1.2"
+      sources."bn.js-5.1.3"
       sources."brace-expansion-1.1.11"
       sources."brorand-1.1.0"
       sources."browser-pack-6.1.0"
-      (sources."browser-resolve-1.11.3" // {
-        dependencies = [
-          sources."resolve-1.1.7"
-        ];
-      })
-      (sources."browserify-16.5.1" // {
+      sources."browser-resolve-2.0.0"
+      (sources."browserify-16.5.2" // {
         dependencies = [
           sources."concat-stream-1.6.2"
         ];
@@ -74240,7 +82218,7 @@ in
           sources."bn.js-4.11.9"
         ];
       })
-      (sources."browserify-sign-4.2.0" // {
+      (sources."browserify-sign-4.2.1" // {
         dependencies = [
           sources."readable-stream-3.6.0"
         ];
@@ -74265,7 +82243,7 @@ in
       sources."constants-browserify-1.0.0"
       sources."convert-source-map-1.1.3"
       sources."core-util-is-1.0.2"
-      (sources."create-ecdh-4.0.3" // {
+      (sources."create-ecdh-4.0.4" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -74285,7 +82263,7 @@ in
       })
       sources."domain-browser-1.2.0"
       sources."duplexer2-0.1.4"
-      (sources."elliptic-6.5.2" // {
+      (sources."elliptic-6.5.3" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -74327,7 +82305,7 @@ in
       sources."jsonify-0.0.0"
       sources."jsonparse-1.3.1"
       sources."labeled-stream-splicer-2.0.2"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.memoize-3.0.4"
       sources."md5.js-1.3.5"
       (sources."miller-rabin-4.0.1" // {
@@ -74342,7 +82320,7 @@ in
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."mkdirp-classic-0.5.3"
-      (sources."module-deps-6.2.2" // {
+      (sources."module-deps-6.2.3" // {
         dependencies = [
           sources."concat-stream-1.6.2"
         ];
@@ -74365,7 +82343,7 @@ in
       sources."os-browserify-0.3.0"
       sources."pako-1.0.11"
       sources."parents-1.0.1"
-      sources."parse-asn1-5.1.5"
+      sources."parse-asn1-5.1.6"
       sources."path-browserify-0.0.1"
       sources."path-is-absolute-1.0.1"
       sources."path-parse-1.0.6"
@@ -74395,12 +82373,13 @@ in
       sources."rimraf-2.7.1"
       sources."ripemd160-2.0.2"
       sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
       sources."sander-0.5.1"
       sources."sha.js-2.4.11"
       sources."shasum-1.0.2"
       sources."shasum-object-1.0.0"
       sources."shell-quote-1.7.2"
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."sorcery-0.10.0"
       sources."source-map-0.5.7"
       sources."sourcemap-codec-1.4.8"
@@ -74455,6 +82434,36 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  purescript-language-server = nodeEnv.buildNodePackage {
+    name = "purescript-language-server";
+    packageName = "purescript-language-server";
+    version = "0.14.2";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/purescript-language-server/-/purescript-language-server-0.14.2.tgz";
+      sha512 = "4dLL/PvePCi4GvI88OjcT1lERIj4jpspXeUvivkYvGxI2NypkmrADuxa32Y3kIZ0D+bAM2ZR6MyOqAyztmRKcg==";
+    };
+    dependencies = [
+      sources."isexe-2.0.0"
+      sources."shell-quote-1.7.2"
+      sources."uuid-3.4.0"
+      sources."vscode-jsonrpc-5.0.1"
+      sources."vscode-languageserver-6.1.1"
+      sources."vscode-languageserver-protocol-3.15.3"
+      sources."vscode-languageserver-textdocument-1.0.1"
+      sources."vscode-languageserver-types-3.15.1"
+      sources."vscode-uri-2.1.2"
+      sources."which-2.0.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Language Server Protocol server for PureScript wrapping purs ide server functionality";
+      homepage = https://github.com/nwolverson/purescript-language-server;
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   purescript-psa = nodeEnv.buildNodePackage {
     name = "purescript-psa";
     packageName = "purescript-psa";
@@ -74473,6 +82482,42 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  purty = nodeEnv.buildNodePackage {
+    name = "purty";
+    packageName = "purty";
+    version = "6.2.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/purty/-/purty-6.2.0.tgz";
+      sha512 = "JfT8kJHSyxuOFQtRiH2x55SiPxXZsSdedQlZap8JehQ7KzB49B5C9cWwVybtSB36BdADQcxPvtw8D52z4EPnBw==";
+    };
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "PureScript pretty printer";
+      homepage = "https://gitlab.com/joneshf/purty#README";
+      license = "BSD-3-Clause";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  pyright = nodeEnv.buildNodePackage {
+    name = "pyright";
+    packageName = "pyright";
+    version = "1.1.73";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.73.tgz";
+      sha512 = "IWW7ZCp/Mk0WOVX9o1/L/Usq+vQODEDOaxlLSCDCClBAdjQsxCCo4FYZPMs4Ec3GKRwEmXHwzW8ZIit3J/cHKw==";
+    };
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Type checker for the Python language";
+      homepage = "https://github.com/Microsoft/pyright#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   react-native-cli = nodeEnv.buildNodePackage {
     name = "react-native-cli";
     packageName = "react-native-cli";
@@ -74495,7 +82540,7 @@ in
       sources."cycle-1.0.3"
       sources."deep-equal-2.0.3"
       sources."define-properties-1.1.3"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-get-iterator-1.1.0"
       sources."es-to-primitive-1.2.1"
       sources."escape-string-regexp-1.0.5"
@@ -74513,11 +82558,12 @@ in
       sources."is-arguments-1.0.4"
       sources."is-bigint-1.0.0"
       sources."is-boolean-object-1.0.1"
-      sources."is-callable-1.2.0"
+      sources."is-callable-1.2.1"
       sources."is-date-object-1.0.2"
       sources."is-map-2.0.1"
+      sources."is-negative-zero-2.0.0"
       sources."is-number-object-1.0.4"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-set-2.0.1"
       sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
@@ -74531,10 +82577,14 @@ in
       sources."mkdirp-0.5.5"
       sources."mute-stream-0.0.8"
       sources."ncp-0.4.2"
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-is-1.1.2"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.0"
+      (sources."object.assign-4.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
       sources."pkginfo-0.4.1"
@@ -74544,11 +82594,13 @@ in
       sources."revalidator-0.1.8"
       sources."rimraf-2.7.1"
       sources."semver-5.7.1"
-      sources."side-channel-1.0.2"
+      (sources."side-channel-1.0.3" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."stack-trace-0.0.10"
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
       sources."strip-ansi-3.0.1"
       sources."supports-color-2.0.0"
@@ -74627,6 +82679,408 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  redoc-cli = nodeEnv.buildNodePackage {
+    name = "redoc-cli";
+    packageName = "redoc-cli";
+    version = "0.9.12";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/redoc-cli/-/redoc-cli-0.9.12.tgz";
+      sha512 = "9Ap7WfEsYtAoVZNyA8lryWAsU2Wq0lHXaNiFgdVZb4zltHNTYEqKmRi06WhileeuqVTNkd1CF2S5CCS5Xg9+aQ==";
+    };
+    dependencies = [
+      sources."@babel/code-frame-7.10.4"
+      (sources."@babel/generator-7.11.6" // {
+        dependencies = [
+          sources."source-map-0.5.7"
+        ];
+      })
+      sources."@babel/helper-annotate-as-pure-7.10.4"
+      sources."@babel/helper-function-name-7.10.4"
+      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-module-imports-7.10.4"
+      sources."@babel/helper-split-export-declaration-7.11.0"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.5"
+      sources."@babel/runtime-7.11.2"
+      sources."@babel/template-7.10.4"
+      sources."@babel/traverse-7.11.5"
+      sources."@babel/types-7.11.5"
+      sources."@emotion/is-prop-valid-0.8.8"
+      sources."@emotion/memoize-0.7.4"
+      sources."@emotion/stylis-0.8.5"
+      sources."@emotion/unitless-0.7.5"
+      sources."@exodus/schemasafe-1.0.0-rc.2"
+      sources."@types/color-name-1.1.1"
+      sources."ajv-5.5.2"
+      sources."ansi-regex-3.0.0"
+      sources."ansi-styles-3.2.1"
+      sources."anymatch-3.1.1"
+      sources."argparse-1.0.10"
+      (sources."asn1.js-5.4.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (sources."assert-1.5.0" // {
+        dependencies = [
+          sources."util-0.10.3"
+        ];
+      })
+      sources."babel-plugin-styled-components-1.11.1"
+      sources."babel-plugin-syntax-jsx-6.18.0"
+      sources."base64-js-1.3.1"
+      sources."better-ajv-errors-0.6.7"
+      sources."big.js-5.2.2"
+      sources."binary-extensions-2.1.0"
+      sources."bn.js-5.1.3"
+      sources."braces-3.0.2"
+      sources."brorand-1.1.0"
+      sources."browserify-aes-1.2.0"
+      sources."browserify-cipher-1.0.1"
+      sources."browserify-des-1.0.2"
+      (sources."browserify-rsa-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (sources."browserify-sign-4.2.1" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."browserify-zlib-0.2.0"
+      (sources."buffer-4.9.2" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+        ];
+      })
+      sources."buffer-xor-1.0.3"
+      sources."builtin-status-codes-3.0.0"
+      sources."call-me-maybe-1.0.1"
+      sources."camelcase-5.3.1"
+      sources."camelize-1.0.0"
+      sources."chalk-2.4.2"
+      sources."chokidar-3.4.2"
+      sources."cipher-base-1.0.4"
+      sources."classnames-2.2.6"
+      sources."clipboard-2.0.6"
+      sources."cliui-4.1.0"
+      sources."clsx-1.1.1"
+      sources."co-4.6.0"
+      sources."code-error-fragment-0.0.230"
+      sources."code-point-at-1.1.0"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."console-browserify-1.2.0"
+      sources."constants-browserify-1.0.0"
+      sources."core-js-3.6.5"
+      sources."core-util-is-1.0.2"
+      (sources."create-ecdh-4.0.4" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."create-hash-1.2.0"
+      sources."create-hmac-1.1.7"
+      sources."cross-spawn-6.0.5"
+      sources."crypto-browserify-3.12.0"
+      sources."css-color-keywords-1.0.0"
+      sources."css-to-react-native-3.0.0"
+      sources."debug-4.3.0"
+      sources."decamelize-1.2.0"
+      sources."decko-1.2.0"
+      sources."delegate-3.2.0"
+      sources."des.js-1.0.1"
+      (sources."diffie-hellman-5.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."dom-walk-0.1.2"
+      sources."domain-browser-1.2.0"
+      sources."dompurify-1.0.11"
+      (sources."elliptic-6.5.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."emoji-regex-8.0.0"
+      sources."emojis-list-3.0.0"
+      sources."end-of-stream-1.4.4"
+      sources."es6-promise-3.3.1"
+      sources."escape-string-regexp-1.0.5"
+      sources."esprima-4.0.1"
+      sources."eventemitter3-3.1.2"
+      sources."events-3.2.0"
+      sources."evp_bytestokey-1.0.3"
+      sources."execa-1.0.0"
+      sources."fast-deep-equal-1.1.0"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-levenshtein-2.0.6"
+      sources."fast-safe-stringify-2.0.7"
+      sources."fill-range-7.0.1"
+      sources."find-up-3.0.0"
+      sources."foreach-2.0.5"
+      sources."format-util-1.0.5"
+      sources."fsevents-2.1.3"
+      sources."get-caller-file-1.0.3"
+      sources."get-stream-4.1.0"
+      sources."glob-parent-5.1.1"
+      sources."global-4.4.0"
+      sources."globals-11.12.0"
+      sources."good-listener-1.2.2"
+      sources."grapheme-splitter-1.0.4"
+      sources."handlebars-4.7.6"
+      sources."has-flag-3.0.0"
+      (sources."hash-base-3.1.0" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      (sources."hash.js-1.1.7" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+        ];
+      })
+      sources."hmac-drbg-1.0.1"
+      sources."hoist-non-react-statics-3.3.2"
+      sources."http2-client-1.3.3"
+      sources."https-browserify-1.0.0"
+      sources."ieee754-1.1.13"
+      sources."inherits-2.0.1"
+      sources."invert-kv-2.0.0"
+      sources."is-binary-path-2.1.0"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-1.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-number-7.0.0"
+      sources."is-stream-1.1.0"
+      sources."isarray-2.0.5"
+      sources."isexe-2.0.0"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.0"
+      sources."jsesc-2.5.2"
+      sources."json-pointer-0.6.0"
+      sources."json-schema-ref-parser-6.1.0"
+      sources."json-schema-traverse-0.3.1"
+      sources."json-to-ast-2.1.0"
+      sources."json5-1.0.1"
+      sources."jsonpointer-4.1.0"
+      sources."lcid-2.0.0"
+      sources."leven-3.1.0"
+      sources."loader-utils-1.4.0"
+      sources."locate-path-3.0.0"
+      sources."lodash-4.17.20"
+      sources."loose-envify-1.4.0"
+      sources."lunr-2.3.6"
+      sources."map-age-cleaner-0.1.3"
+      sources."mark.js-8.11.1"
+      sources."marked-0.6.3"
+      sources."md5.js-1.3.5"
+      sources."mem-4.3.0"
+      sources."memoize-one-5.1.1"
+      (sources."miller-rabin-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."mimic-fn-2.1.0"
+      sources."min-document-2.19.0"
+      sources."minimalistic-assert-1.0.1"
+      sources."minimalistic-crypto-utils-1.0.1"
+      sources."minimist-1.2.5"
+      sources."mkdirp-1.0.4"
+      sources."mobx-4.15.7"
+      sources."mobx-react-5.4.4"
+      sources."ms-2.1.2"
+      sources."neo-async-2.6.2"
+      sources."nice-try-1.0.5"
+      sources."node-fetch-h2-2.3.0"
+      sources."node-libs-browser-2.2.1"
+      sources."node-readfiles-0.2.0"
+      sources."normalize-path-3.0.0"
+      sources."npm-run-path-2.0.2"
+      sources."number-is-nan-1.0.1"
+      sources."oas-kit-common-1.0.8"
+      sources."oas-linter-3.2.0"
+      sources."oas-resolver-2.5.0"
+      sources."oas-schema-walker-1.1.5"
+      sources."oas-validator-3.4.0"
+      sources."object-assign-4.1.1"
+      sources."once-1.4.0"
+      sources."ono-4.0.11"
+      sources."openapi-sampler-1.0.0-beta.14"
+      sources."os-browserify-0.3.0"
+      sources."os-locale-3.1.0"
+      sources."p-defer-1.0.0"
+      sources."p-finally-1.0.0"
+      sources."p-is-promise-2.1.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-3.0.0"
+      sources."p-try-2.2.0"
+      sources."pako-1.0.11"
+      sources."parse-asn1-5.1.6"
+      sources."path-browserify-0.0.1"
+      sources."path-exists-3.0.0"
+      sources."path-key-2.0.1"
+      sources."pbkdf2-3.1.1"
+      sources."perfect-scrollbar-1.5.0"
+      sources."picomatch-2.2.2"
+      sources."polished-3.6.7"
+      sources."postcss-value-parser-4.1.0"
+      sources."prismjs-1.21.0"
+      sources."process-0.11.10"
+      sources."process-nextick-args-2.0.1"
+      sources."prop-types-15.7.2"
+      (sources."public-encrypt-4.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."pump-3.0.0"
+      sources."punycode-1.4.1"
+      sources."querystring-0.2.0"
+      sources."querystring-es3-0.2.1"
+      sources."randombytes-2.1.0"
+      sources."randomfill-1.0.4"
+      sources."react-16.13.1"
+      sources."react-dom-16.13.1"
+      sources."react-dropdown-1.8.0"
+      (sources."react-hot-loader-4.12.21" // {
+        dependencies = [
+          sources."source-map-0.7.3"
+        ];
+      })
+      sources."react-is-16.13.1"
+      sources."react-lifecycles-compat-3.0.4"
+      sources."react-tabs-3.1.1"
+      (sources."readable-stream-2.3.7" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+          sources."isarray-1.0.0"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."readdirp-3.4.0"
+      (sources."redoc-2.0.0-rc.8-1" // {
+        dependencies = [
+          sources."tslib-1.13.0"
+        ];
+      })
+      sources."reftools-1.1.6"
+      sources."regenerator-runtime-0.13.7"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-1.0.1"
+      sources."ripemd160-2.0.2"
+      sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
+      sources."scheduler-0.19.1"
+      sources."select-1.1.2"
+      sources."semver-5.7.1"
+      sources."set-blocking-2.0.0"
+      sources."setimmediate-1.0.5"
+      sources."sha.js-2.4.11"
+      sources."shallowequal-1.1.0"
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
+      sources."should-13.2.3"
+      sources."should-equal-2.0.0"
+      sources."should-format-3.0.3"
+      sources."should-type-1.4.0"
+      sources."should-type-adaptors-1.1.0"
+      sources."should-util-1.0.1"
+      sources."signal-exit-3.0.3"
+      sources."slugify-1.4.5"
+      sources."source-map-0.6.1"
+      sources."sprintf-js-1.0.3"
+      sources."stickyfill-1.1.1"
+      sources."stream-browserify-2.0.2"
+      sources."stream-http-2.8.3"
+      (sources."string-width-2.1.1" // {
+        dependencies = [
+          sources."is-fullwidth-code-point-2.0.0"
+        ];
+      })
+      sources."string_decoder-1.3.0"
+      sources."strip-ansi-4.0.0"
+      sources."strip-eof-1.0.0"
+      sources."styled-components-5.2.0"
+      sources."supports-color-5.5.0"
+      (sources."swagger2openapi-5.4.0" // {
+        dependencies = [
+          sources."yargs-12.0.5"
+        ];
+      })
+      sources."timers-browserify-2.0.11"
+      sources."tiny-emitter-2.1.0"
+      sources."to-arraybuffer-1.0.1"
+      sources."to-fast-properties-2.0.0"
+      sources."to-regex-range-5.0.1"
+      sources."tslib-2.0.1"
+      sources."tty-browserify-0.0.0"
+      sources."uglify-js-3.10.4"
+      (sources."url-0.11.0" // {
+        dependencies = [
+          sources."punycode-1.3.2"
+        ];
+      })
+      (sources."util-0.11.1" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."util-deprecate-1.0.2"
+      sources."vm-browserify-1.1.2"
+      sources."which-1.3.1"
+      sources."which-module-2.0.0"
+      sources."wordwrap-1.0.0"
+      (sources."wrap-ansi-2.1.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."string-width-1.0.2"
+          sources."strip-ansi-3.0.1"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.0"
+      sources."yaml-1.10.0"
+      (sources."yargs-15.4.1" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."ansi-styles-4.2.1"
+          sources."cliui-6.0.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."find-up-4.1.0"
+          sources."get-caller-file-2.0.5"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."locate-path-5.0.0"
+          sources."p-locate-4.1.0"
+          sources."path-exists-4.0.0"
+          sources."require-main-filename-2.0.0"
+          sources."string-width-4.2.0"
+          sources."strip-ansi-6.0.0"
+          sources."wrap-ansi-6.2.0"
+          sources."yargs-parser-18.1.3"
+        ];
+      })
+      sources."yargs-parser-11.1.1"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "ReDoc's Command Line Interface";
+      homepage = "https://github.com/Redocly/redoc#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   "reveal.js" = nodeEnv.buildNodePackage {
     name = "reveal.js";
     packageName = "reveal.js";
@@ -74648,10 +83102,10 @@ in
   rollup = nodeEnv.buildNodePackage {
     name = "rollup";
     packageName = "rollup";
-    version = "2.15.0";
+    version = "2.28.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/rollup/-/rollup-2.15.0.tgz";
-      sha512 = "HAk4kyXiV5sdNDnbKWk5zBPnkX/DAgx09Kbp8rRIRDVsTUVN3vnSowR7ZHkV6/lAiE6c2TQ8HtYb72aCPGW4Jw==";
+      url = "https://registry.npmjs.org/rollup/-/rollup-2.28.1.tgz";
+      sha512 = "DOtVoqOZt3+FjPJWLU8hDIvBjUylc9s6IZvy76XklxzcLvAQLtVAG/bbhsMhcWnYxC0TKKcf1QQ/tg29zeID0Q==";
     };
     dependencies = [
       sources."fsevents-2.1.3"
@@ -74672,58 +83126,57 @@ in
     version = "0.4.0-dev";
     src = ../../misc/vscode-extensions/rust-analyzer/build-deps;
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      (sources."@babel/highlight-7.10.1" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."chalk-2.4.2"
         ];
       })
-      sources."@rollup/plugin-commonjs-12.0.0"
-      sources."@rollup/plugin-node-resolve-8.0.1"
+      sources."@eslint/eslintrc-0.1.3"
+      sources."@rollup/plugin-commonjs-13.0.2"
+      sources."@rollup/plugin-node-resolve-8.4.0"
       sources."@rollup/pluginutils-3.1.0"
       sources."@types/color-name-1.1.1"
       sources."@types/eslint-visitor-keys-1.0.0"
       sources."@types/estree-0.0.39"
-      sources."@types/glob-7.1.2"
-      sources."@types/json-schema-7.0.5"
+      sources."@types/glob-7.1.3"
+      sources."@types/json-schema-7.0.6"
       sources."@types/minimatch-3.0.3"
       sources."@types/mocha-7.0.2"
-      sources."@types/node-14.0.13"
+      sources."@types/node-12.7.12"
       sources."@types/node-fetch-2.5.7"
-      sources."@types/resolve-0.0.8"
-      sources."@types/vscode-1.45.0"
-      (sources."@typescript-eslint/eslint-plugin-3.2.0" // {
+      sources."@types/resolve-1.17.1"
+      sources."@types/vscode-1.49.0"
+      (sources."@typescript-eslint/eslint-plugin-3.10.1" // {
         dependencies = [
           sources."semver-7.3.2"
         ];
       })
-      sources."@typescript-eslint/experimental-utils-3.2.0"
-      sources."@typescript-eslint/parser-3.2.0"
-      (sources."@typescript-eslint/typescript-estree-3.2.0" // {
+      sources."@typescript-eslint/experimental-utils-3.10.1"
+      sources."@typescript-eslint/parser-3.10.1"
+      sources."@typescript-eslint/types-3.10.1"
+      (sources."@typescript-eslint/typescript-estree-3.10.1" // {
         dependencies = [
           sources."semver-7.3.2"
         ];
       })
-      sources."acorn-7.2.0"
-      sources."acorn-jsx-5.2.0"
+      sources."@typescript-eslint/visitor-keys-3.10.1"
+      sources."acorn-7.4.0"
+      sources."acorn-jsx-5.3.1"
       sources."agent-base-4.3.0"
-      sources."ajv-6.12.2"
-      sources."ansi-colors-3.2.3"
-      (sources."ansi-escapes-4.3.1" // {
-        dependencies = [
-          sources."type-fest-0.11.0"
-        ];
-      })
+      sources."ajv-6.12.5"
+      sources."ansi-colors-4.1.1"
       sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.1"
       sources."argparse-1.0.10"
+      sources."array.prototype.map-1.0.2"
       sources."astral-regex-1.0.0"
       sources."asynckit-0.4.0"
       sources."azure-devops-node-api-7.2.0"
       sources."balanced-match-1.0.0"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."boolbase-1.0.0"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
@@ -74738,20 +83191,14 @@ in
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
-      sources."chardet-0.7.0"
       sources."cheerio-1.0.0-rc.3"
-      sources."chokidar-3.3.0"
-      sources."cli-cursor-3.1.0"
-      sources."cli-width-2.2.1"
+      sources."chokidar-3.4.2"
       (sources."cliui-5.0.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
           sources."strip-ansi-5.2.0"
         ];
       })
@@ -74765,7 +83212,7 @@ in
       sources."cross-spawn-7.0.3"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
-      sources."debug-4.2.0"
+      sources."debug-4.3.0"
       sources."decamelize-1.2.0"
       sources."deep-freeze-0.0.1"
       sources."deep-is-0.1.3"
@@ -74773,7 +83220,7 @@ in
       sources."define-properties-1.1.3"
       sources."delayed-stream-1.0.0"
       sources."denodeify-1.2.1"
-      sources."diff-3.5.0"
+      sources."diff-4.0.2"
       sources."doctrine-3.0.0"
       sources."dom-serializer-0.1.1"
       sources."domelementtype-1.3.1"
@@ -74784,41 +83231,46 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."emoji-regex-8.0.0"
+      sources."emoji-regex-7.0.3"
+      sources."enquirer-2.3.6"
       sources."entities-1.1.2"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
+      sources."es-array-method-boxes-properly-1.0.0"
+      sources."es-get-iterator-1.1.0"
       sources."es-to-primitive-1.2.1"
       sources."es6-promise-4.2.8"
       sources."es6-promisify-5.0.0"
       sources."escape-string-regexp-1.0.5"
-      (sources."eslint-7.2.0" // {
+      (sources."eslint-7.9.0" // {
         dependencies = [
           sources."semver-7.3.2"
         ];
       })
-      sources."eslint-scope-5.1.0"
-      sources."eslint-utils-2.0.0"
-      sources."eslint-visitor-keys-1.2.0"
-      sources."espree-7.1.0"
+      sources."eslint-scope-5.1.1"
+      sources."eslint-utils-2.1.0"
+      sources."eslint-visitor-keys-1.3.0"
+      sources."espree-7.3.0"
       sources."esprima-4.0.1"
       (sources."esquery-1.3.1" // {
         dependencies = [
-          sources."estraverse-5.1.0"
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
       sources."estree-walker-1.0.1"
       sources."esutils-2.0.3"
-      sources."external-editor-3.1.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."fd-slicer-1.1.0"
-      sources."figures-3.2.0"
       sources."file-entry-cache-5.0.1"
       sources."fill-range-7.0.1"
-      sources."find-up-3.0.0"
+      sources."find-up-5.0.0"
       sources."flat-4.1.0"
       sources."flat-cache-2.0.1"
       sources."flatted-2.0.2"
@@ -74848,39 +83300,32 @@ in
           sources."debug-3.2.6"
         ];
       })
-      sources."iconv-lite-0.4.24"
       sources."ignore-4.0.6"
       sources."import-fresh-3.2.1"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      (sources."inquirer-7.1.0" // {
-        dependencies = [
-          sources."ansi-styles-4.2.1"
-          sources."chalk-3.0.0"
-          sources."color-convert-2.0.1"
-          sources."color-name-1.1.4"
-          sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
-        ];
-      })
+      sources."is-arguments-1.0.4"
       sources."is-binary-path-2.1.0"
       sources."is-buffer-2.0.4"
-      sources."is-callable-1.2.0"
+      sources."is-callable-1.2.1"
       sources."is-date-object-1.0.2"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
+      sources."is-map-2.0.1"
       sources."is-module-1.0.0"
       sources."is-number-7.0.0"
-      (sources."is-reference-1.2.0" // {
-        dependencies = [
-          sources."@types/estree-0.0.44"
-        ];
-      })
-      sources."is-regex-1.1.0"
+      sources."is-plain-obj-1.1.0"
+      sources."is-reference-1.2.1"
+      sources."is-regex-1.1.1"
+      sources."is-set-2.0.1"
+      sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
+      sources."isarray-2.0.5"
       sources."isexe-2.0.0"
+      sources."iterate-iterator-1.0.1"
+      sources."iterate-value-1.0.2"
       sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.0"
       sources."json-schema-traverse-0.4.1"
@@ -74888,13 +83333,9 @@ in
       sources."leven-3.1.0"
       sources."levn-0.4.1"
       sources."linkify-it-2.2.0"
-      sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
-      (sources."log-symbols-3.0.0" // {
-        dependencies = [
-          sources."chalk-2.4.2"
-        ];
-      })
+      sources."locate-path-6.0.0"
+      sources."lodash-4.17.20"
+      sources."log-symbols-4.0.0"
       sources."lru-cache-4.1.5"
       sources."magic-string-0.25.7"
       (sources."markdown-it-10.0.0" // {
@@ -74906,45 +83347,35 @@ in
       sources."mime-1.6.0"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
-      sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
-      (sources."mocha-7.2.0" // {
+      (sources."mocha-8.1.3" // {
         dependencies = [
-          sources."debug-3.2.6"
-          sources."glob-7.1.3"
-          sources."js-yaml-3.13.1"
-          sources."ms-2.1.1"
-          sources."strip-json-comments-2.0.1"
-          sources."supports-color-6.0.0"
-          sources."which-1.3.1"
+          sources."debug-4.1.1"
+          sources."escape-string-regexp-4.0.0"
+          sources."has-flag-4.0.0"
+          sources."strip-json-comments-3.0.1"
+          sources."supports-color-7.1.0"
         ];
       })
       sources."ms-2.1.2"
       sources."mute-stream-0.0.8"
       sources."natural-compare-1.4.0"
-      (sources."node-environment-flags-1.0.6" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      sources."node-fetch-2.6.0"
+      sources."node-fetch-2.6.1"
       sources."normalize-path-3.0.0"
       sources."nth-check-1.0.2"
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.0"
-      sources."object.getownpropertydescriptors-2.1.0"
       sources."once-1.4.0"
-      sources."onetime-5.1.0"
       sources."optionator-0.9.1"
       sources."os-0.1.1"
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
-      sources."p-limit-2.3.0"
-      sources."p-locate-3.0.0"
+      sources."p-limit-3.0.2"
+      sources."p-locate-5.0.0"
       sources."p-try-2.2.0"
       sources."parent-module-1.0.1"
       (sources."parse-semver-1.1.1" // {
@@ -74953,7 +83384,7 @@ in
         ];
       })
       sources."parse5-3.0.3"
-      sources."path-exists-3.0.0"
+      sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."path-parse-1.0.6"
@@ -74961,63 +83392,47 @@ in
       sources."picomatch-2.2.2"
       sources."prelude-ls-1.2.1"
       sources."progress-2.0.3"
+      sources."promise.allsettled-1.0.2"
       sources."pseudomap-1.0.2"
       sources."punycode-2.1.1"
+      sources."randombytes-2.1.0"
       sources."read-1.0.7"
       sources."readable-stream-3.6.0"
-      sources."readdirp-3.2.0"
+      sources."readdirp-3.4.0"
       sources."regexpp-3.1.0"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
       sources."resolve-1.17.0"
       sources."resolve-from-4.0.0"
-      sources."restore-cursor-3.1.0"
       sources."rimraf-2.6.3"
-      sources."rollup-2.15.0"
-      sources."run-async-2.4.1"
-      (sources."rxjs-6.5.5" // {
-        dependencies = [
-          sources."tslib-1.13.0"
-        ];
-      })
+      sources."rollup-2.28.1"
       sources."safe-buffer-5.2.1"
-      sources."safer-buffer-2.1.2"
       sources."semver-6.3.0"
+      sources."serialize-javascript-4.0.0"
       sources."set-blocking-2.0.0"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."sigmund-1.0.1"
-      sources."signal-exit-3.0.3"
-      (sources."slice-ansi-2.1.0" // {
+      sources."slice-ansi-2.1.0"
+      sources."sourcemap-codec-1.4.8"
+      sources."sprintf-js-1.0.3"
+      (sources."string-width-3.1.0" // {
         dependencies = [
-          sources."is-fullwidth-code-point-2.0.0"
+          sources."ansi-regex-4.1.0"
+          sources."strip-ansi-5.2.0"
         ];
       })
-      sources."sourcemap-codec-1.4.8"
-      sources."sprintf-js-1.0.3"
-      sources."string-width-4.2.0"
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.0"
-      sources."strip-json-comments-3.1.0"
+      sources."strip-json-comments-3.1.1"
       sources."supports-color-5.5.0"
-      (sources."table-5.4.6" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
-        ];
-      })
+      sources."table-5.4.6"
       sources."text-table-0.2.0"
-      sources."through-2.3.8"
-      sources."tmp-0.0.33"
+      sources."tmp-0.0.29"
       sources."to-regex-range-5.0.1"
-      sources."tslib-2.0.0"
+      sources."tslib-2.0.1"
       (sources."tsutils-3.17.1" // {
         dependencies = [
           sources."tslib-1.13.0"
@@ -75027,43 +83442,39 @@ in
       sources."type-check-0.4.0"
       sources."type-fest-0.8.1"
       sources."typed-rest-client-1.2.0"
-      sources."typescript-3.9.5"
+      sources."typescript-3.9.7"
       sources."typescript-formatter-7.2.2"
       sources."uc.micro-1.0.6"
       sources."underscore-1.8.3"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."url-join-1.1.0"
       sources."util-deprecate-1.0.2"
       sources."v8-compile-cache-2.1.1"
-      (sources."vsce-1.76.1" // {
+      (sources."vsce-1.79.5" // {
         dependencies = [
           sources."chalk-2.4.2"
           sources."semver-5.7.1"
-          sources."tmp-0.0.29"
         ];
       })
-      sources."vscode-jsonrpc-5.1.0-next.1"
-      sources."vscode-languageclient-7.0.0-next.1"
-      sources."vscode-languageserver-protocol-3.16.0-next.2"
-      sources."vscode-languageserver-types-3.16.0-next.1"
+      sources."vscode-jsonrpc-6.0.0-next.5"
+      sources."vscode-languageclient-7.0.0-next.9"
+      sources."vscode-languageserver-protocol-3.16.0-next.7"
+      sources."vscode-languageserver-types-3.16.0-next.3"
       sources."vscode-test-1.4.0"
       sources."which-2.0.2"
       sources."which-module-2.0.0"
       (sources."wide-align-1.1.3" // {
         dependencies = [
           sources."ansi-regex-3.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-2.1.1"
           sources."strip-ansi-4.0.0"
         ];
       })
       sources."word-wrap-1.2.3"
+      sources."workerpool-6.0.0"
       (sources."wrap-ansi-5.1.0" // {
         dependencies = [
           sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
           sources."strip-ansi-5.2.0"
         ];
       })
@@ -75073,15 +83484,25 @@ in
       sources."yallist-2.1.2"
       (sources."yargs-13.3.2" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
+          sources."find-up-3.0.0"
+          sources."locate-path-3.0.0"
+          sources."p-limit-2.3.0"
+          sources."p-locate-3.0.0"
+          sources."path-exists-3.0.0"
         ];
       })
       sources."yargs-parser-13.1.2"
-      sources."yargs-unparser-1.6.0"
+      (sources."yargs-unparser-1.6.1" // {
+        dependencies = [
+          sources."find-up-3.0.0"
+          sources."locate-path-3.0.0"
+          sources."p-limit-2.3.0"
+          sources."p-locate-3.0.0"
+          sources."path-exists-3.0.0"
+          sources."yargs-14.2.3"
+          sources."yargs-parser-15.0.1"
+        ];
+      })
       sources."yauzl-2.10.0"
       sources."yazl-2.5.1"
     ];
@@ -75101,13 +83522,13 @@ in
       sha1 = "c8fa1fffb8258ce68adf75df73f90fbb6f23d198";
     };
     dependencies = [
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sdk-1.18.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."buffer-crc32-0.2.1"
       sources."bytes-0.2.1"
@@ -75126,7 +83547,7 @@ in
       sources."crc-0.2.0"
       sources."crypto-0.0.3"
       sources."dashdash-1.14.1"
-      sources."debug-4.2.0"
+      sources."debug-4.3.0"
       sources."delayed-stream-1.0.0"
       sources."ecc-jsbn-0.1.2"
       sources."events.node-0.4.9"
@@ -75157,7 +83578,7 @@ in
       sources."fresh-0.2.0"
       sources."getpass-0.1.7"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."http-auth-2.0.7"
       sources."http-signature-1.2.0"
       sources."inherits-2.0.4"
@@ -75183,7 +83604,7 @@ in
       sources."node-wsfederation-0.1.1"
       sources."oauth-https://github.com/ciaranj/node-oauth/tarball/master"
       sources."oauth-sign-0.9.0"
-      (sources."openid-2.0.6" // {
+      (sources."openid-2.0.7" // {
         dependencies = [
           sources."qs-6.5.2"
           sources."request-2.88.2"
@@ -75210,7 +83631,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."uid2-0.0.3"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."util-0.4.9"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
@@ -75332,7 +83753,7 @@ in
       sources."supports-color-5.5.0"
       sources."term-size-1.2.0"
       sources."update-check-1.5.2"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."vary-1.1.2"
       sources."which-1.3.1"
       sources."widest-line-2.0.1"
@@ -75351,15 +83772,20 @@ in
   serverless = nodeEnv.buildNodePackage {
     name = "serverless";
     packageName = "serverless";
-    version = "1.72.0";
+    version = "2.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/serverless/-/serverless-1.72.0.tgz";
-      sha512 = "+ylbI53V3axZsOVaN4CxHERQAwtJ03B5r3IZfTy1//ZnM8uLlhMPu1jXkKaQ+Drolk6+VtgZwx+zzjzyKSzt6Q==";
+      url = "https://registry.npmjs.org/serverless/-/serverless-2.1.1.tgz";
+      sha512 = "e9NoM93/1hWm2+5YsfNbZPZuqjD62B2k16j85hTuLoOtkDPjp80vma9he4kMwbJoEoU4cT332vBWg8+EQmdkFA==";
     };
     dependencies = [
       sources."2-thenable-1.0.0"
-      sources."@babel/parser-7.10.2"
-      sources."@mrmlnc/readdir-enhanced-2.2.1"
+      (sources."@kwsites/file-exists-1.1.1" // {
+        dependencies = [
+          sources."debug-4.3.0"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."@kwsites/promise-deferred-1.1.1"
       sources."@nodelib/fs.scandir-2.1.3"
       sources."@nodelib/fs.stat-2.0.3"
       sources."@nodelib/fs.walk-1.2.4"
@@ -75373,60 +83799,85 @@ in
       sources."@protobufjs/path-1.1.2"
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
-      sources."@serverless/cli-1.4.0"
+      (sources."@serverless/cli-1.5.2" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+        ];
+      })
       sources."@serverless/component-metrics-1.0.8"
-      (sources."@serverless/components-2.30.14" // {
+      (sources."@serverless/components-3.1.3" // {
         dependencies = [
+          sources."chalk-2.4.2"
+          sources."fs-extra-8.1.0"
           sources."globby-10.0.2"
-          sources."semver-7.3.2"
+          sources."uuid-3.4.0"
         ];
       })
       (sources."@serverless/core-1.1.2" // {
         dependencies = [
           sources."fs-extra-7.0.1"
+          sources."semver-6.3.0"
+        ];
+      })
+      (sources."@serverless/enterprise-plugin-4.0.4" // {
+        dependencies = [
+          sources."@serverless/platform-client-2.0.2"
         ];
       })
-      sources."@serverless/enterprise-plugin-3.6.13"
       sources."@serverless/event-mocks-1.1.1"
-      sources."@serverless/inquirer-1.1.2"
-      sources."@serverless/platform-client-0.25.14"
-      (sources."@serverless/platform-client-china-1.0.18" // {
+      (sources."@serverless/inquirer-1.1.2" // {
         dependencies = [
-          sources."archiver-4.0.1"
-          sources."async-2.6.3"
+          sources."chalk-2.4.2"
         ];
       })
-      (sources."@serverless/platform-sdk-2.3.1" // {
+      sources."@serverless/platform-client-1.1.10"
+      (sources."@serverless/platform-client-china-1.1.0" // {
         dependencies = [
+          sources."archiver-4.0.2"
+          sources."async-3.2.0"
+          sources."fs-extra-8.1.0"
+        ];
+      })
+      (sources."@serverless/platform-sdk-2.3.2" // {
+        dependencies = [
+          sources."chalk-2.4.2"
+          sources."debug-4.3.0"
           sources."https-proxy-agent-4.0.0"
+          sources."is-docker-1.1.0"
+          sources."ms-2.1.2"
           sources."ramda-0.25.0"
+          sources."uuid-3.4.0"
           sources."ws-6.2.1"
         ];
       })
       sources."@serverless/template-1.1.3"
-      sources."@serverless/utils-china-0.1.13"
-      sources."@sindresorhus/is-0.14.0"
-      sources."@szmarczak/http-timer-1.1.2"
-      (sources."@tencent-sdk/capi-0.2.15-alpha.0" // {
+      (sources."@serverless/utils-1.2.0" // {
         dependencies = [
-          sources."chalk-3.0.0"
+          sources."chalk-2.4.2"
+          sources."uuid-3.4.0"
         ];
       })
+      sources."@serverless/utils-china-0.1.28"
+      sources."@sindresorhus/is-0.14.0"
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@tencent-sdk/capi-0.2.17"
+      sources."@types/caseless-0.12.2"
+      sources."@types/chalk-2.2.0"
       sources."@types/color-name-1.1.1"
-      sources."@types/glob-7.1.2"
-      sources."@types/lodash-4.14.155"
+      sources."@types/glob-7.1.3"
+      sources."@types/lodash-4.14.161"
       sources."@types/long-4.0.1"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-13.13.12"
-      (sources."@typescript-eslint/typescript-estree-2.34.0" // {
-        dependencies = [
-          sources."semver-7.3.2"
-        ];
-      })
-      sources."adm-zip-0.4.14"
+      sources."@types/node-14.11.1"
+      sources."@types/object-assign-4.0.30"
+      sources."@types/request-2.48.5"
+      sources."@types/request-promise-native-1.0.17"
+      sources."@types/tough-cookie-4.0.0"
+      sources."adm-zip-0.4.16"
       sources."after-0.8.2"
       sources."agent-base-5.1.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
+      sources."ajv-keywords-3.5.2"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
           sources."string-width-3.1.0"
@@ -75434,26 +83885,19 @@ in
       })
       sources."ansi-escapes-4.3.1"
       sources."ansi-regex-4.1.0"
-      sources."ansi-styles-4.2.1"
+      sources."ansi-styles-3.2.1"
       sources."anymatch-3.1.1"
-      sources."app-module-path-2.2.0"
       (sources."archive-type-4.0.0" // {
         dependencies = [
           sources."file-type-4.4.0"
         ];
       })
-      (sources."archiver-3.1.1" // {
+      (sources."archiver-5.0.2" // {
         dependencies = [
-          sources."async-2.6.3"
-          (sources."compress-commons-2.1.1" // {
-            dependencies = [
-              sources."readable-stream-2.3.7"
-            ];
-          })
-          sources."isarray-1.0.0"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-          sources."zip-stream-2.1.3"
+          sources."async-3.2.0"
+          sources."compress-commons-4.0.1"
+          sources."crc32-stream-4.0.0"
+          sources."zip-stream-4.0.2"
         ];
       })
       (sources."archiver-utils-2.1.0" // {
@@ -75465,22 +83909,15 @@ in
         ];
       })
       sources."argparse-1.0.10"
-      sources."arr-diff-4.0.0"
-      sources."arr-flatten-1.1.0"
-      sources."arr-union-3.1.0"
       sources."array-union-2.1.0"
-      sources."array-uniq-1.0.3"
-      sources."array-unique-0.3.2"
       sources."arraybuffer.slice-0.0.7"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
-      sources."assign-symbols-1.0.0"
-      sources."ast-module-types-2.6.0"
-      sources."async-1.5.2"
+      sources."async-2.6.3"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
-      sources."atob-2.1.2"
-      (sources."aws-sdk-2.693.0" // {
+      sources."at-least-node-1.0.0"
+      (sources."aws-sdk-2.756.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."isarray-1.0.0"
@@ -75488,27 +83925,32 @@ in
         ];
       })
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."axios-0.19.2"
       sources."backo2-1.0.2"
       sources."balanced-match-1.0.0"
-      (sources."base-0.11.2" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
       sources."base64-arraybuffer-0.1.5"
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
       sources."better-assert-1.0.2"
-      sources."binary-extensions-2.0.0"
-      sources."bl-4.0.2"
+      sources."binary-extensions-2.1.0"
+      sources."bl-4.0.3"
       sources."blob-0.0.5"
       sources."bluebird-3.7.2"
-      (sources."boxen-3.2.0" // {
+      (sources."boxen-4.2.0" // {
         dependencies = [
-          sources."string-width-3.1.0"
-          sources."type-fest-0.3.1"
+          sources."ansi-regex-5.0.0"
+          sources."ansi-styles-4.2.1"
+          sources."chalk-3.0.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."emoji-regex-8.0.0"
+          sources."has-flag-4.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.0"
+          sources."strip-ansi-6.0.0"
+          sources."supports-color-7.2.0"
+          sources."type-fest-0.8.1"
         ];
       })
       sources."brace-expansion-1.1.11"
@@ -75520,57 +83962,29 @@ in
       sources."buffer-fill-1.0.0"
       sources."buffer-from-1.1.1"
       sources."builtin-modules-3.1.0"
-      sources."cache-base-1.0.1"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
       sources."cachedir-2.3.0"
-      sources."call-me-maybe-1.0.1"
       sources."callsite-1.0.0"
       sources."camelcase-5.3.1"
-      sources."capture-stack-trace-1.0.1"
       sources."caseless-0.12.0"
-      sources."caw-2.0.1"
-      (sources."chalk-2.4.2" // {
+      (sources."chalk-4.1.0" // {
         dependencies = [
-          sources."ansi-styles-3.2.1"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."has-flag-3.0.0"
-          sources."supports-color-5.5.0"
+          sources."ansi-styles-4.2.1"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."chardet-0.7.0"
-      (sources."child-process-ext-2.1.1" // {
-        dependencies = [
-          sources."cross-spawn-6.0.5"
-          sources."semver-5.7.1"
-        ];
-      })
-      sources."chokidar-3.4.0"
-      sources."ci-info-2.0.0"
-      (sources."class-utils-0.3.6" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-buffer-1.1.6"
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
-      sources."cli-boxes-2.2.0"
+      sources."child-process-ext-2.1.1"
+      sources."chokidar-3.4.2"
+      sources."cli-boxes-2.2.1"
       (sources."cli-color-2.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -75579,15 +83993,9 @@ in
       sources."cli-cursor-2.1.0"
       sources."cli-width-2.2.1"
       sources."clone-response-1.0.2"
-      sources."collection-visit-1.0.0"
-      (sources."color-3.0.0" // {
-        dependencies = [
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-        ];
-      })
-      sources."color-convert-2.0.1"
-      sources."color-name-1.1.4"
+      sources."color-3.0.0"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
       sources."color-string-1.5.3"
       sources."colornames-1.1.1"
       sources."colors-1.3.3"
@@ -75606,51 +84014,38 @@ in
         ];
       })
       sources."concat-map-0.0.1"
-      sources."config-chain-1.1.12"
-      (sources."configstore-3.1.2" // {
-        dependencies = [
-          sources."make-dir-1.3.0"
-          sources."pify-3.0.0"
-        ];
-      })
       (sources."content-disposition-0.5.3" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
         ];
       })
       sources."cookiejar-2.1.2"
-      sources."copy-descriptor-0.1.1"
       sources."core-util-is-1.0.2"
       sources."crc-3.8.0"
       sources."crc32-stream-3.0.1"
-      sources."create-error-class-3.0.2"
-      sources."cross-spawn-5.1.0"
-      sources."crypto-random-string-1.0.0"
+      (sources."cross-spawn-6.0.5" // {
+        dependencies = [
+          sources."semver-5.7.1"
+        ];
+      })
       (sources."d-1.0.1" // {
         dependencies = [
           sources."type-1.2.0"
         ];
       })
       sources."dashdash-1.14.1"
-      sources."dayjs-1.8.28"
-      sources."debug-4.1.1"
-      sources."decamelize-1.2.0"
+      sources."dayjs-1.8.36"
+      sources."debug-3.1.0"
       sources."decode-uri-component-0.2.0"
-      sources."decomment-0.9.2"
       (sources."decompress-4.2.1" // {
         dependencies = [
-          (sources."make-dir-1.3.0" // {
-            dependencies = [
-              sources."pify-3.0.0"
-            ];
-          })
           sources."pify-2.3.0"
         ];
       })
       sources."decompress-response-3.3.0"
       (sources."decompress-tar-4.1.1" // {
         dependencies = [
-          sources."bl-1.2.2"
+          sources."bl-1.2.3"
           sources."isarray-1.0.0"
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
@@ -75672,42 +84067,38 @@ in
         ];
       })
       sources."deep-extend-0.6.0"
-      sources."deep-is-0.1.3"
       sources."defer-to-connect-1.1.3"
       sources."deferred-0.7.11"
       sources."define-properties-1.1.3"
-      sources."define-property-2.0.2"
       sources."delayed-stream-1.0.0"
-      sources."dependency-tree-7.2.1"
-      sources."detective-amd-3.0.0"
-      sources."detective-cjs-3.1.1"
-      sources."detective-es6-2.1.0"
-      sources."detective-less-1.0.2"
-      sources."detective-postcss-3.0.1"
-      sources."detective-sass-3.0.1"
-      sources."detective-scss-2.0.1"
-      sources."detective-stylus-1.0.0"
-      sources."detective-typescript-5.8.0"
       sources."diagnostics-1.1.1"
       sources."dijkstrajs-1.0.1"
       sources."dir-glob-3.0.1"
-      sources."dot-prop-4.2.0"
       sources."dot-qs-0.2.0"
       sources."dotenv-8.2.0"
-      (sources."download-7.1.0" // {
+      (sources."download-8.0.0" // {
         dependencies = [
           sources."@sindresorhus/is-0.7.0"
-          sources."cacheable-request-2.1.4"
-          sources."file-type-8.1.0"
-          sources."get-stream-3.0.0"
-          sources."got-8.3.2"
+          (sources."cacheable-request-2.1.4" // {
+            dependencies = [
+              sources."get-stream-3.0.0"
+            ];
+          })
+          sources."file-type-11.1.0"
+          (sources."got-8.3.2" // {
+            dependencies = [
+              sources."get-stream-3.0.0"
+              sources."pify-3.0.0"
+            ];
+          })
           sources."http-cache-semantics-3.8.1"
           sources."keyv-3.0.0"
           sources."lowercase-keys-1.0.0"
-          sources."make-dir-1.3.0"
+          sources."make-dir-2.1.0"
           sources."normalize-url-2.0.1"
           sources."p-cancelable-0.4.1"
-          sources."pify-3.0.0"
+          sources."pify-4.0.1"
+          sources."semver-5.7.1"
           sources."sort-keys-2.0.0"
         ];
       })
@@ -75717,18 +84108,17 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."emoji-regex-7.0.3"
       sources."enabled-1.0.2"
-      sources."encoding-0.1.12"
       sources."end-of-stream-1.4.4"
       (sources."engine.io-client-3.4.3" // {
         dependencies = [
           sources."component-emitter-1.3.0"
+          sources."debug-4.1.1"
+          sources."ms-2.1.2"
           sources."ws-6.1.4"
         ];
       })
       sources."engine.io-parser-2.2.0"
-      sources."enhanced-resolve-4.1.1"
       sources."env-variable-0.0.6"
-      sources."errno-0.1.7"
       sources."es5-ext-0.10.53"
       sources."es6-iterator-2.0.3"
       sources."es6-promisify-6.1.1"
@@ -75740,95 +84130,43 @@ in
       sources."es6-symbol-3.1.3"
       sources."es6-weak-map-2.0.3"
       sources."escape-string-regexp-1.0.5"
-      sources."escodegen-1.14.2"
-      sources."eslint-visitor-keys-1.2.0"
       sources."esniff-1.1.0"
       sources."esprima-4.0.1"
       sources."essentials-1.1.1"
-      sources."estraverse-4.3.0"
-      sources."esutils-2.0.3"
       sources."event-emitter-0.3.5"
       sources."events-1.1.1"
-      (sources."execa-0.7.0" // {
-        dependencies = [
-          sources."get-stream-3.0.0"
-        ];
-      })
-      (sources."expand-brackets-2.1.4" // {
-        dependencies = [
-          sources."debug-2.6.9"
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-buffer-1.1.6"
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-          sources."ms-2.0.0"
-        ];
-      })
       sources."ext-1.4.0"
       sources."ext-list-2.2.2"
       sources."ext-name-5.0.0"
       sources."extend-3.0.2"
-      (sources."extend-shallow-3.0.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
       sources."external-editor-3.1.0"
-      (sources."extglob-2.0.4" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-          sources."extend-shallow-2.0.1"
-        ];
-      })
       sources."extsprintf-1.3.0"
       sources."fast-deep-equal-3.1.3"
-      sources."fast-glob-3.2.2"
+      sources."fast-glob-3.2.4"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fast-levenshtein-2.0.6"
       sources."fast-safe-stringify-2.0.7"
+      sources."fastest-levenshtein-1.0.12"
       sources."fastq-1.8.0"
       sources."fd-slicer-1.1.0"
-      sources."fecha-2.3.3"
+      sources."fecha-4.2.0"
       sources."figures-3.2.0"
-      sources."file-exists-dazinatorfork-1.0.2"
       sources."file-type-5.2.0"
       sources."filename-reserved-regex-2.0.0"
-      sources."filenamify-2.1.0"
-      sources."filesize-3.6.1"
-      sources."filing-cabinet-2.5.1"
+      sources."filenamify-3.0.0"
+      sources."filesize-6.1.0"
       sources."fill-range-7.0.1"
-      sources."find-0.3.0"
       (sources."find-process-1.4.3" // {
         dependencies = [
+          sources."chalk-2.4.2"
           sources."debug-2.6.9"
-          sources."ms-2.0.0"
         ];
       })
       sources."find-requires-1.0.0"
-      sources."flat-5.0.0"
-      sources."flatten-1.0.3"
-      (sources."follow-redirects-1.5.10" // {
-        dependencies = [
-          sources."debug-3.1.0"
-          sources."ms-2.0.0"
-        ];
-      })
-      sources."for-in-1.0.2"
+      sources."flat-5.0.2"
+      sources."follow-redirects-1.5.10"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.3.3"
+      sources."form-data-2.5.1"
       sources."formidable-1.2.2"
-      sources."fragment-cache-0.2.1"
       (sources."from2-2.3.0" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -75838,96 +84176,46 @@ in
         ];
       })
       sources."fs-constants-1.0.0"
-      sources."fs-extra-8.1.0"
+      (sources."fs-extra-9.0.1" // {
+        dependencies = [
+          sources."jsonfile-6.0.1"
+          sources."universalify-1.0.0"
+        ];
+      })
       sources."fs.realpath-1.0.0"
       sources."fs2-0.3.8"
       sources."fsevents-2.1.3"
       sources."function-bind-1.1.1"
-      sources."get-amd-module-type-3.0.0"
-      sources."get-own-enumerable-property-symbols-3.0.2"
-      sources."get-proxy-2.1.0"
-      sources."get-stdin-6.0.0"
+      sources."get-stdin-8.0.0"
       sources."get-stream-4.1.0"
-      sources."get-value-2.0.6"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.1"
-      sources."glob-to-regexp-0.3.0"
-      sources."global-dirs-0.1.1"
-      (sources."globby-9.2.0" // {
-        dependencies = [
-          sources."@nodelib/fs.stat-1.1.3"
-          sources."array-union-1.0.2"
-          (sources."braces-2.3.2" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
-          sources."dir-glob-2.2.2"
-          sources."fast-glob-2.2.7"
-          (sources."fill-range-4.0.0" // {
-            dependencies = [
-              sources."extend-shallow-2.0.1"
-            ];
-          })
-          sources."glob-parent-3.1.0"
-          sources."ignore-4.0.6"
-          sources."is-buffer-1.1.6"
-          sources."is-glob-3.1.0"
-          (sources."is-number-3.0.0" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."micromatch-3.1.10"
-          (sources."path-type-3.0.0" // {
-            dependencies = [
-              sources."pify-3.0.0"
-            ];
-          })
-          sources."pify-4.0.1"
-          sources."slash-2.0.0"
-          sources."to-regex-range-2.1.1"
-        ];
-      })
-      sources."gonzales-pe-4.3.0"
+      sources."globby-11.0.1"
       sources."got-9.6.0"
       sources."graceful-fs-4.2.4"
-      sources."graceful-readlink-1.0.1"
       sources."graphlib-2.1.8"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-binary2-1.0.3"
       sources."has-cors-1.1.0"
-      sources."has-flag-4.0.0"
+      sources."has-flag-3.0.0"
       sources."has-symbol-support-x-1.4.2"
       sources."has-to-string-tag-x-1.4.1"
-      sources."has-value-1.0.0"
-      (sources."has-values-1.0.0" // {
-        dependencies = [
-          sources."is-buffer-1.1.6"
-          (sources."is-number-3.0.0" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."kind-of-4.0.0"
-        ];
-      })
       sources."http-cache-semantics-4.1.0"
       sources."http-signature-1.2.0"
       (sources."https-proxy-agent-5.0.0" // {
         dependencies = [
-          sources."agent-base-6.0.0"
+          sources."agent-base-6.0.1"
+          sources."debug-4.3.0"
+          sources."ms-2.1.2"
         ];
       })
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.1.13"
       sources."ignore-5.1.8"
       sources."immediate-3.0.6"
-      sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
-      sources."indexes-of-1.0.1"
       sources."indexof-0.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -75935,58 +84223,29 @@ in
       (sources."inquirer-6.5.2" // {
         dependencies = [
           sources."ansi-escapes-3.2.0"
+          sources."chalk-2.4.2"
           sources."figures-2.0.0"
         ];
       })
+      sources."inquirer-autocomplete-prompt-1.1.0"
       sources."into-stream-3.1.0"
-      sources."is-accessor-descriptor-1.0.0"
       sources."is-arrayish-0.3.2"
       sources."is-binary-path-2.1.0"
-      sources."is-buffer-2.0.4"
-      (sources."is-ci-1.2.1" // {
-        dependencies = [
-          sources."ci-info-1.6.0"
-        ];
-      })
-      sources."is-data-descriptor-1.0.0"
-      sources."is-descriptor-1.0.2"
-      sources."is-docker-1.1.0"
-      sources."is-extendable-0.1.1"
+      sources."is-docker-2.1.1"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
-      sources."is-installed-globally-0.1.0"
       sources."is-natural-number-4.0.1"
-      sources."is-npm-1.0.0"
       sources."is-number-7.0.0"
-      sources."is-obj-1.0.1"
       sources."is-object-1.0.1"
-      sources."is-path-inside-1.0.1"
       sources."is-plain-obj-1.1.0"
-      sources."is-plain-object-2.0.4"
       sources."is-promise-2.2.2"
-      sources."is-redirect-1.0.0"
-      sources."is-regexp-1.0.0"
-      sources."is-relative-path-1.0.2"
       sources."is-retry-allowed-1.2.0"
       sources."is-stream-1.1.0"
       sources."is-typedarray-1.0.0"
-      sources."is-url-1.2.4"
-      sources."is-windows-1.0.2"
-      (sources."is-wsl-2.2.0" // {
-        dependencies = [
-          sources."is-docker-2.0.0"
-        ];
-      })
+      sources."is-wsl-2.2.0"
       sources."isarray-2.0.1"
       sources."isexe-2.0.0"
-      sources."iso8601-duration-1.2.0"
-      sources."isobject-3.0.1"
-      (sources."isomorphic-fetch-2.2.1" // {
-        dependencies = [
-          sources."node-fetch-1.7.3"
-        ];
-      })
       sources."isomorphic-ws-4.0.1"
       sources."isstream-0.1.2"
       sources."isurl-1.0.0"
@@ -76003,10 +84262,9 @@ 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.3"
       sources."jsonfile-4.0.0"
       sources."jsprim-1.4.1"
-      (sources."jszip-3.4.0" // {
+      (sources."jszip-3.5.0" // {
         dependencies = [
           sources."isarray-1.0.0"
           sources."readable-stream-2.3.7"
@@ -76016,20 +84274,7 @@ in
       })
       sources."jwt-decode-2.2.0"
       sources."keyv-3.1.0"
-      sources."kind-of-6.0.3"
       sources."kuler-1.0.1"
-      (sources."latest-version-3.1.0" // {
-        dependencies = [
-          sources."get-stream-3.0.0"
-          sources."got-6.7.1"
-          sources."package-json-4.0.1"
-          sources."prepend-http-1.0.4"
-          sources."registry-auth-token-3.4.0"
-          sources."registry-url-3.1.0"
-          sources."semver-5.7.1"
-          sources."url-parse-lax-1.0.0"
-        ];
-      })
       (sources."lazystream-1.0.0" // {
         dependencies = [
           sources."isarray-1.0.0"
@@ -76038,9 +84283,8 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      sources."levn-0.3.0"
       sources."lie-3.3.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.defaults-4.2.0"
       sources."lodash.difference-4.5.0"
       sources."lodash.flatten-4.4.0"
@@ -76051,28 +84295,20 @@ in
           sources."type-1.2.0"
         ];
       })
-      sources."logform-2.1.2"
+      (sources."logform-2.2.0" // {
+        dependencies = [
+          sources."ms-2.1.2"
+        ];
+      })
       sources."long-4.0.0"
       sources."lowercase-keys-1.0.1"
-      sources."lru-cache-4.1.5"
       sources."lru-queue-0.1.0"
-      (sources."make-dir-2.1.0" // {
+      (sources."make-dir-1.3.0" // {
         dependencies = [
-          sources."pify-4.0.1"
-          sources."semver-5.7.1"
+          sources."pify-3.0.0"
         ];
       })
-      sources."map-cache-0.2.2"
-      sources."map-visit-1.0.0"
       sources."memoizee-0.4.14"
-      (sources."memory-fs-0.5.0" // {
-        dependencies = [
-          sources."isarray-1.0.0"
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
       sources."merge2-1.4.1"
       sources."methods-1.1.2"
       sources."micromatch-4.0.2"
@@ -76083,88 +84319,52 @@ in
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      (sources."mixin-deep-1.3.2" // {
-        dependencies = [
-          sources."is-extendable-1.0.1"
-        ];
-      })
       sources."mkdirp-0.5.5"
-      sources."module-definition-3.3.0"
-      sources."module-lookup-amd-6.2.0"
-      sources."moment-2.26.0"
-      sources."ms-2.1.2"
+      sources."moment-2.28.0"
+      sources."ms-2.0.0"
       sources."mute-stream-0.0.7"
       sources."nanoid-2.1.11"
-      sources."nanomatch-1.2.13"
       sources."native-promise-only-0.8.1"
-      sources."ncjsm-4.0.1"
+      sources."ncjsm-4.1.0"
       sources."next-tick-1.0.0"
       sources."nice-try-1.0.5"
       sources."node-dir-0.1.17"
-      sources."node-fetch-2.6.0"
-      sources."node-source-walk-4.2.0"
+      sources."node-fetch-2.6.1"
       sources."normalize-path-3.0.0"
       sources."normalize-url-4.5.0"
-      (sources."npm-conf-1.1.3" // {
-        dependencies = [
-          sources."pify-3.0.0"
-        ];
-      })
-      sources."npm-run-path-2.0.2"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
       sources."object-component-0.0.3"
-      (sources."object-copy-0.1.0" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          sources."is-accessor-descriptor-0.1.6"
-          sources."is-buffer-1.1.6"
-          sources."is-data-descriptor-0.1.4"
-          (sources."is-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-5.1.0"
-            ];
-          })
-          sources."kind-of-3.2.2"
-        ];
-      })
       sources."object-hash-2.0.3"
       sources."object-keys-1.1.1"
-      sources."object-visit-1.0.1"
-      sources."object.pick-1.3.0"
       sources."once-1.4.0"
       sources."one-time-0.0.4"
       sources."onetime-2.0.1"
-      (sources."open-7.0.4" // {
-        dependencies = [
-          sources."is-docker-2.0.0"
-        ];
-      })
+      sources."open-7.2.1"
       (sources."opn-5.5.0" // {
         dependencies = [
           sources."is-wsl-1.1.0"
         ];
       })
-      sources."optionator-0.8.3"
       sources."os-tmpdir-1.0.2"
       sources."p-cancelable-1.1.0"
       sources."p-event-2.3.1"
       sources."p-finally-1.0.0"
       sources."p-is-promise-1.1.0"
-      sources."p-limit-2.3.0"
+      sources."p-limit-3.0.2"
       sources."p-timeout-2.0.1"
       sources."p-try-2.2.0"
-      sources."package-json-6.5.0"
+      (sources."package-json-6.5.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
       sources."pako-1.0.11"
       sources."parseqs-0.0.5"
       sources."parseuri-0.0.5"
-      sources."pascalcase-0.1.1"
-      sources."path-dirname-1.0.2"
       sources."path-is-absolute-1.0.1"
-      sources."path-is-inside-1.0.2"
       sources."path-key-2.0.1"
       sources."path-loader-1.0.10"
-      sources."path-parse-1.0.6"
       sources."path-type-4.0.0"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
@@ -76172,24 +84372,15 @@ in
       sources."pify-5.0.0"
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
-      sources."posix-character-classes-0.1.1"
-      (sources."postcss-7.0.32" // {
-        dependencies = [
-          sources."has-flag-3.0.0"
-          sources."supports-color-6.1.0"
-        ];
-      })
-      sources."postcss-values-parser-1.5.0"
-      sources."precinct-6.2.0"
-      sources."prelude-ls-1.1.2"
       sources."prepend-http-2.0.0"
       sources."prettyoutput-1.2.0"
       sources."process-nextick-args-2.0.1"
       sources."promise-queue-2.2.5"
-      sources."proto-list-1.2.4"
-      sources."protobufjs-6.9.0"
-      sources."prr-1.0.1"
-      sources."pseudomap-1.0.2"
+      (sources."protobufjs-6.10.1" // {
+        dependencies = [
+          sources."@types/node-13.13.21"
+        ];
+      })
       sources."psl-1.8.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
@@ -76199,135 +84390,60 @@ in
       sources."ramda-0.26.1"
       sources."rc-1.2.8"
       sources."readable-stream-3.6.0"
+      sources."readdir-glob-1.0.0"
       sources."readdirp-3.4.0"
-      sources."regenerator-runtime-0.13.5"
-      sources."regex-not-1.0.2"
-      sources."registry-auth-token-4.1.1"
+      sources."regenerator-runtime-0.13.7"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
-      sources."repeat-element-1.1.3"
-      sources."repeat-string-1.6.1"
       sources."replaceall-0.1.6"
-      sources."request-2.88.2"
-      sources."request-promise-core-1.1.3"
-      sources."request-promise-native-1.0.8"
-      sources."requirejs-2.3.6"
-      sources."requirejs-config-file-3.1.2"
-      sources."resolve-1.17.0"
-      sources."resolve-dependency-path-2.0.0"
-      sources."resolve-url-0.2.1"
+      (sources."request-2.88.2" // {
+        dependencies = [
+          sources."form-data-2.3.3"
+          sources."uuid-3.4.0"
+        ];
+      })
+      sources."request-promise-core-1.1.4"
+      sources."request-promise-native-1.0.9"
       sources."responselike-1.0.2"
       sources."restore-cursor-2.0.0"
-      sources."ret-0.1.15"
       sources."reusify-1.0.4"
       sources."run-async-2.4.1"
       sources."run-parallel-1.1.9"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.3"
       sources."safe-buffer-5.2.1"
-      sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
-      sources."sass-lookup-3.0.0"
       sources."sax-1.2.1"
-      (sources."seek-bzip-1.0.5" // {
-        dependencies = [
-          sources."commander-2.8.1"
-        ];
-      })
-      sources."semver-6.3.0"
-      (sources."semver-diff-2.1.0" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
-      sources."semver-regex-2.0.0"
+      sources."seek-bzip-1.0.6"
+      sources."semver-7.3.2"
       sources."set-immediate-shim-1.0.1"
-      (sources."set-value-2.0.1" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-        ];
-      })
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."shortid-2.2.15"
       sources."signal-exit-3.0.3"
-      sources."simple-git-1.132.0"
-      sources."simple-swizzle-0.2.2"
-      sources."slash-3.0.0"
-      (sources."snapdragon-0.8.2" // {
+      (sources."simple-git-2.20.1" // {
         dependencies = [
-          sources."debug-2.6.9"
-          sources."define-property-0.2.5"
-          sources."extend-shallow-2.0.1"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-buffer-1.1.6"
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-          sources."ms-2.0.0"
-          sources."source-map-0.5.7"
-        ];
-      })
-      (sources."snapdragon-node-2.1.1" // {
-        dependencies = [
-          sources."define-property-1.0.0"
-        ];
-      })
-      (sources."snapdragon-util-3.0.1" // {
-        dependencies = [
-          sources."is-buffer-1.1.6"
-          sources."kind-of-3.2.2"
-        ];
-      })
-      sources."socket.io-client-2.3.0"
-      (sources."socket.io-parser-3.3.0" // {
-        dependencies = [
-          sources."debug-3.1.0"
-          sources."ms-2.0.0"
+          sources."debug-4.3.0"
+          sources."ms-2.1.2"
         ];
       })
-      (sources."socket.io-stream-0.9.1" // {
+      sources."simple-swizzle-0.2.2"
+      sources."slash-3.0.0"
+      (sources."socket.io-client-2.3.0" // {
         dependencies = [
-          sources."debug-2.2.0"
-          sources."ms-0.7.1"
+          sources."debug-4.1.1"
+          sources."ms-2.1.2"
         ];
       })
+      sources."socket.io-parser-3.3.0"
       sources."sort-keys-1.1.2"
       sources."sort-keys-length-1.0.1"
       sources."source-map-0.6.1"
-      sources."source-map-resolve-0.5.3"
       sources."source-map-support-0.5.19"
-      sources."source-map-url-0.4.0"
-      sources."split-string-3.1.0"
-      sources."split2-3.1.1"
+      sources."split2-3.2.2"
       sources."sprintf-js-1.0.3"
       sources."sprintf-kit-2.0.0"
       sources."sshpk-1.16.1"
       sources."stack-trace-0.0.10"
-      (sources."static-extend-0.1.2" // {
-        dependencies = [
-          sources."define-property-0.2.5"
-          (sources."is-accessor-descriptor-0.1.6" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-buffer-1.1.6"
-          (sources."is-data-descriptor-0.1.4" // {
-            dependencies = [
-              sources."kind-of-3.2.2"
-            ];
-          })
-          sources."is-descriptor-0.1.6"
-          sources."kind-of-5.1.0"
-        ];
-      })
       sources."stealthy-require-1.1.1"
       sources."stream-promise-3.2.0"
       sources."stream-shift-1.0.1"
@@ -76341,27 +84457,28 @@ in
         ];
       })
       sources."string_decoder-1.3.0"
-      sources."stringify-object-3.3.0"
       sources."strip-ansi-5.2.0"
       sources."strip-dirs-2.1.0"
-      sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
       sources."strip-outer-1.0.1"
-      sources."stylus-lookup-3.0.2"
       (sources."superagent-3.8.3" // {
         dependencies = [
-          sources."debug-3.2.6"
           sources."isarray-1.0.0"
           sources."readable-stream-2.3.7"
           sources."safe-buffer-5.1.2"
           sources."string_decoder-1.1.1"
         ];
       })
-      sources."supports-color-7.1.0"
-      sources."tabtab-3.0.2"
-      sources."tapable-1.1.3"
-      sources."tar-stream-2.1.2"
-      sources."term-size-1.2.0"
+      sources."supports-color-5.5.0"
+      (sources."tabtab-3.0.2" // {
+        dependencies = [
+          sources."debug-4.3.0"
+          sources."ms-2.1.2"
+          sources."untildify-3.0.3"
+        ];
+      })
+      sources."tar-stream-2.1.4"
+      sources."term-size-2.2.0"
       sources."text-hex-1.0.0"
       sources."through-2.3.8"
       sources."timed-out-4.0.1"
@@ -76369,56 +84486,21 @@ in
       sources."tmp-0.0.33"
       sources."to-array-0.1.4"
       sources."to-buffer-1.1.1"
-      (sources."to-object-path-0.3.0" // {
-        dependencies = [
-          sources."is-buffer-1.1.6"
-          sources."kind-of-3.2.2"
-        ];
-      })
       sources."to-readable-stream-1.0.0"
-      sources."to-regex-3.0.2"
       sources."to-regex-range-5.0.1"
       sources."tough-cookie-2.5.0"
       sources."traverse-0.6.6"
-      sources."traverse-chain-0.1.0"
       sources."trim-repeated-1.0.0"
       sources."triple-beam-1.3.0"
       sources."tslib-1.13.0"
-      sources."tsutils-3.17.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."type-2.0.0"
-      sources."type-check-0.3.2"
+      sources."type-2.1.0"
       sources."type-fest-0.11.0"
-      sources."typescript-3.9.5"
       sources."unbzip2-stream-1.4.3"
-      sources."union-value-1.0.1"
-      sources."uniq-1.0.1"
-      sources."unique-string-1.0.0"
       sources."universalify-0.1.2"
-      (sources."unset-value-1.0.0" // {
-        dependencies = [
-          (sources."has-value-0.3.1" // {
-            dependencies = [
-              sources."isobject-2.1.0"
-            ];
-          })
-          sources."has-values-0.1.4"
-          sources."isarray-1.0.0"
-        ];
-      })
-      sources."untildify-3.0.3"
-      sources."unzip-response-2.0.1"
-      (sources."update-notifier-2.5.0" // {
-        dependencies = [
-          sources."ansi-align-2.0.0"
-          sources."boxen-1.3.0"
-          sources."camelcase-4.1.0"
-          sources."cli-boxes-1.0.0"
-        ];
-      })
-      sources."uri-js-4.2.2"
-      sources."urix-0.1.0"
+      sources."untildify-4.0.0"
+      sources."uri-js-4.4.0"
       (sources."url-0.10.3" // {
         dependencies = [
           sources."punycode-1.3.2"
@@ -76427,19 +84509,21 @@ in
       sources."url-parse-lax-3.0.0"
       sources."url-to-options-1.0.1"
       sources."urlencode-1.1.0"
-      sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
-      sources."uuid-3.4.0"
+      sources."uuid-8.3.0"
       sources."verror-1.10.0"
-      sources."whatwg-fetch-3.0.0"
       sources."which-1.3.1"
-      sources."widest-line-2.0.1"
-      (sources."winston-3.2.1" // {
+      (sources."widest-line-3.1.0" // {
         dependencies = [
-          sources."async-2.6.3"
+          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."winston-transport-4.3.0" // {
+      sources."winston-3.2.1"
+      (sources."winston-transport-4.4.0" // {
         dependencies = [
           sources."isarray-1.0.0"
           sources."readable-stream-2.3.7"
@@ -76447,19 +84531,16 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      sources."word-wrap-1.2.3"
       sources."wrappy-1.0.2"
       sources."write-file-atomic-2.4.3"
-      sources."ws-7.3.0"
-      sources."xdg-basedir-3.0.0"
+      sources."ws-7.3.1"
       sources."xml2js-0.4.19"
       sources."xmlbuilder-9.0.7"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."xtend-4.0.2"
-      sources."yallist-2.1.2"
       sources."yaml-ast-parser-0.0.43"
       sources."yamljs-0.3.0"
-      sources."yargs-parser-18.1.3"
+      sources."yargs-parser-20.2.0"
       sources."yauzl-2.10.0"
       sources."yeast-0.1.2"
       sources."zip-stream-3.0.1"
@@ -76487,14 +84568,14 @@ in
       sources."CSSwhat-0.4.7"
       sources."accepts-1.3.7"
       sources."after-0.8.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."array-flatten-1.1.1"
       sources."arraybuffer.slice-0.0.6"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."base64-arraybuffer-0.1.2"
       sources."base64id-0.1.0"
       sources."bcrypt-nodejs-0.0.3"
@@ -76529,7 +84610,7 @@ in
       sources."domelementtype-1.3.1"
       sources."domhandler-2.2.1"
       sources."domutils-1.4.3"
-      sources."duplexer-0.1.1"
+      sources."duplexer-0.1.2"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."emitter-http://github.com/component/emitter/archive/1.0.1.tar.gz"
@@ -76563,7 +84644,7 @@ in
       sources."getpass-0.1.7"
       sources."global-https://github.com/component/global/archive/v2.0.1.tar.gz"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-binary-data-0.1.1"
       sources."has-cors-1.0.3"
       (sources."htmlparser2-3.7.3" // {
@@ -76683,7 +84764,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
       sources."unpipe-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."utf8-2.0.0"
       sources."utils-merge-1.0.1"
       sources."uuid-3.4.0"
@@ -76821,7 +84902,7 @@ in
       sources."isarray-1.0.0"
       sources."isobject-3.0.1"
       sources."kind-of-6.0.3"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."micromatch-3.1.10"
@@ -77101,81 +85182,71 @@ in
   snyk = nodeEnv.buildNodePackage {
     name = "snyk";
     packageName = "snyk";
-    version = "1.338.0";
+    version = "1.399.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/snyk/-/snyk-1.338.0.tgz";
-      sha512 = "kygisp/bsNVLnATEdHeb3ASQS58b8DKOju9BcVNC3OpUi0Ajjiqy5o7RdfNPfCzp9lYglLT9grIM59zJuC2sFg==";
+      url = "https://registry.npmjs.org/snyk/-/snyk-1.399.0.tgz";
+      sha512 = "o1okhJvmRpETbMHCyJvXaVOLIVtlbledhztTZKsnMRs0wgim/GyNNWTboqM5a0aR23OpQzW8qlV3BQRsAvEisw==";
     };
     dependencies = [
-      sources."@sindresorhus/is-0.14.0"
-      sources."@snyk/cli-interface-2.6.0"
-      (sources."@snyk/cocoapods-lockfile-parser-3.4.0" // {
-        dependencies = [
-          sources."@snyk/dep-graph-1.18.4"
-          sources."semver-7.3.2"
-        ];
-      })
-      sources."@snyk/composer-lockfile-parser-1.4.0"
-      (sources."@snyk/dep-graph-1.18.3" // {
-        dependencies = [
-          sources."semver-7.3.2"
-        ];
-      })
+      sources."@sindresorhus/is-2.1.1"
+      sources."@snyk/cli-interface-2.9.2"
+      sources."@snyk/cocoapods-lockfile-parser-3.5.2"
+      sources."@snyk/composer-lockfile-parser-1.4.1"
+      sources."@snyk/dep-graph-1.19.4"
+      sources."@snyk/docker-registry-v2-client-1.13.5"
       sources."@snyk/gemfile-1.2.0"
-      sources."@snyk/graphlib-2.1.9-patch"
-      sources."@snyk/inquirer-6.2.2-patch"
-      (sources."@snyk/java-call-graph-builder-1.10.0" // {
+      sources."@snyk/java-call-graph-builder-1.13.2"
+      sources."@snyk/rpm-parser-2.0.0"
+      (sources."@snyk/snyk-cocoapods-plugin-2.5.1" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."tslib-2.0.1"
         ];
       })
-      sources."@snyk/lodash-4.17.15-patch"
-      (sources."@snyk/rpm-parser-2.0.0" // {
+      (sources."@snyk/snyk-docker-pull-3.2.0" // {
         dependencies = [
-          sources."event-loop-spinner-2.0.0"
-        ];
-      })
-      sources."@snyk/ruby-semver-2.2.0"
-      (sources."@snyk/snyk-cocoapods-plugin-2.3.0" // {
-        dependencies = [
-          (sources."@snyk/cli-interface-1.5.0" // {
-            dependencies = [
-              sources."tslib-1.13.0"
-            ];
-          })
-          sources."tslib-2.0.0"
+          sources."tmp-0.1.0"
         ];
       })
-      sources."@szmarczak/http-timer-1.1.2"
+      sources."@szmarczak/http-timer-4.0.5"
+      sources."@types/cacheable-request-6.0.1"
       sources."@types/color-name-1.1.1"
       sources."@types/debug-4.1.5"
+      sources."@types/graphlib-2.1.7"
       sources."@types/hosted-git-info-2.7.0"
-      sources."@types/js-yaml-3.12.4"
-      sources."@types/node-14.0.13"
+      sources."@types/http-cache-semantics-4.0.0"
+      sources."@types/js-yaml-3.12.5"
+      sources."@types/keyv-3.1.1"
+      sources."@types/node-14.11.1"
+      sources."@types/responselike-1.0.0"
       sources."@types/semver-5.5.0"
-      sources."@types/xml2js-0.4.5"
       sources."@yarnpkg/lockfile-1.1.0"
       sources."abbrev-1.1.1"
       sources."agent-base-4.3.0"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
+          sources."emoji-regex-7.0.3"
+          sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-3.1.0"
         ];
       })
       sources."ansi-escapes-3.2.0"
-      sources."ansi-regex-3.0.0"
+      sources."ansi-regex-5.0.0"
       sources."ansi-styles-3.2.1"
       sources."ansicolors-0.3.2"
       sources."archy-1.0.0"
       sources."argparse-1.0.10"
       sources."asap-2.0.6"
       sources."asn1-0.2.4"
-      sources."ast-types-0.13.3"
+      (sources."ast-types-0.14.2" // {
+        dependencies = [
+          sources."tslib-2.0.1"
+        ];
+      })
       sources."async-1.5.2"
       sources."balanced-match-1.0.0"
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
-      (sources."bl-4.0.2" // {
+      (sources."bl-4.0.3" // {
         dependencies = [
           sources."readable-stream-3.6.0"
           sources."safe-buffer-5.2.1"
@@ -77184,18 +85255,14 @@ in
       })
       (sources."boxen-4.2.0" // {
         dependencies = [
-          sources."ansi-regex-5.0.0"
           sources."ansi-styles-4.2.1"
           sources."camelcase-5.3.1"
           sources."chalk-3.0.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
-          sources."emoji-regex-8.0.0"
           sources."has-flag-4.0.0"
-          sources."is-fullwidth-code-point-3.0.0"
-          sources."string-width-4.2.0"
-          sources."strip-ansi-6.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
+          sources."type-fest-0.8.1"
         ];
       })
       sources."brace-expansion-1.1.11"
@@ -77203,20 +85270,21 @@ in
       sources."buffer-5.6.0"
       sources."buffer-from-1.1.1"
       sources."bytes-3.1.0"
-      (sources."cacheable-request-6.1.0" // {
+      sources."cacheable-lookup-5.0.3"
+      (sources."cacheable-request-7.0.1" // {
         dependencies = [
-          sources."get-stream-5.1.0"
-          sources."lowercase-keys-2.0.0"
+          sources."get-stream-5.2.0"
         ];
       })
       sources."camelcase-2.1.1"
       sources."chalk-2.4.2"
       sources."chardet-0.7.0"
+      sources."child-process-1.0.2"
       sources."ci-info-2.0.0"
-      sources."cli-boxes-2.2.0"
-      sources."cli-cursor-2.1.0"
+      sources."cli-boxes-2.2.1"
+      sources."cli-cursor-3.1.0"
       sources."cli-spinner-0.2.10"
-      sources."cli-width-2.2.1"
+      sources."cli-width-3.0.0"
       (sources."cliui-3.2.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -77241,12 +85309,16 @@ in
       })
       sources."crypto-random-string-2.0.0"
       sources."data-uri-to-buffer-1.2.0"
-      sources."debug-3.2.6"
+      sources."debug-4.3.0"
       sources."decamelize-1.2.0"
-      sources."decompress-response-3.3.0"
+      (sources."decompress-response-6.0.0" // {
+        dependencies = [
+          sources."mimic-response-3.1.0"
+        ];
+      })
       sources."deep-extend-0.6.0"
       sources."deep-is-0.1.3"
-      sources."defer-to-connect-1.1.3"
+      sources."defer-to-connect-2.0.0"
       (sources."degenerator-1.0.4" // {
         dependencies = [
           sources."esprima-3.1.3"
@@ -77256,34 +85328,33 @@ in
       sources."diff-4.0.2"
       (sources."docker-modem-2.1.3" // {
         dependencies = [
-          sources."debug-4.2.0"
           sources."readable-stream-3.6.0"
           sources."safe-buffer-5.2.1"
           sources."string_decoder-1.3.0"
         ];
       })
-      sources."dockerfile-ast-0.0.19"
-      sources."dot-prop-5.2.0"
-      sources."dotnet-deps-parser-4.10.0"
+      sources."dockerfile-ast-0.0.30"
+      sources."dot-prop-5.3.0"
+      sources."dotnet-deps-parser-5.0.0"
       sources."duplexer3-0.1.4"
       sources."duplexify-3.7.1"
       sources."email-validator-2.0.4"
-      sources."emoji-regex-7.0.3"
+      sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."es6-promise-4.2.8"
       sources."es6-promisify-5.0.0"
       sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
-      sources."escodegen-1.14.2"
+      sources."escodegen-1.14.3"
       sources."esprima-4.0.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
-      sources."event-loop-spinner-1.1.0"
+      sources."event-loop-spinner-2.0.0"
       sources."execa-1.0.0"
       sources."extend-3.0.2"
       sources."external-editor-3.1.0"
       sources."fast-levenshtein-2.0.6"
-      sources."figures-2.0.0"
+      sources."figures-3.2.0"
       sources."file-uri-to-path-1.0.0"
       sources."fs-constants-1.0.0"
       sources."fs.realpath-1.0.0"
@@ -77301,12 +85372,18 @@ in
       })
       sources."glob-7.1.6"
       sources."global-dirs-2.0.1"
-      sources."got-9.6.0"
+      sources."got-11.4.0"
       sources."graceful-fs-4.2.4"
+      sources."graphlib-2.1.8"
       sources."gunzip-maybe-1.4.2"
       sources."has-flag-3.0.0"
       sources."has-yarn-2.1.0"
-      sources."hosted-git-info-3.0.4"
+      (sources."hosted-git-info-3.0.5" // {
+        dependencies = [
+          sources."lru-cache-6.0.0"
+          sources."yallist-4.0.0"
+        ];
+      })
       sources."http-cache-semantics-4.1.0"
       sources."http-errors-1.7.3"
       (sources."http-proxy-agent-2.1.0" // {
@@ -77315,7 +85392,12 @@ in
           sources."ms-2.0.0"
         ];
       })
-      sources."https-proxy-agent-3.0.1"
+      sources."http2-wrapper-1.0.0-beta.5.2"
+      (sources."https-proxy-agent-3.0.1" // {
+        dependencies = [
+          sources."debug-3.2.6"
+        ];
+      })
       sources."iconv-lite-0.4.24"
       sources."ieee754-1.1.13"
       sources."immediate-3.0.6"
@@ -77324,13 +85406,24 @@ in
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
+      (sources."inquirer-7.3.3" // {
+        dependencies = [
+          sources."ansi-escapes-4.3.1"
+          sources."ansi-styles-4.2.1"
+          sources."chalk-4.1.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."strip-ansi-6.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
       sources."invert-kv-1.0.0"
       sources."ip-1.1.5"
-      sources."ipaddr.js-1.9.1"
       sources."is-ci-2.0.0"
       sources."is-deflate-1.0.0"
-      sources."is-docker-2.0.0"
-      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-docker-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
       sources."is-gzip-1.0.0"
       sources."is-installed-globally-0.3.2"
       sources."is-npm-4.0.0"
@@ -77343,36 +85436,50 @@ in
       sources."isarray-0.0.1"
       sources."isexe-2.0.0"
       sources."js-yaml-3.14.0"
-      sources."json-buffer-3.0.0"
-      (sources."jszip-3.4.0" // {
+      sources."json-buffer-3.0.1"
+      (sources."jszip-3.5.0" // {
         dependencies = [
           sources."pako-1.0.11"
         ];
       })
-      sources."keyv-3.1.0"
+      sources."keyv-4.0.3"
       sources."latest-version-5.1.0"
       sources."lcid-1.0.0"
       sources."levn-0.3.0"
       sources."lie-3.3.0"
+      sources."lodash-4.17.20"
       sources."lodash.assign-4.2.0"
       sources."lodash.assignin-4.2.0"
       sources."lodash.clone-4.5.0"
       sources."lodash.clonedeep-4.5.0"
+      sources."lodash.findkey-4.6.0"
+      sources."lodash.flatmap-4.5.0"
       sources."lodash.flatten-4.4.0"
       sources."lodash.get-4.4.2"
+      sources."lodash.invert-4.3.0"
+      sources."lodash.isempty-4.4.0"
+      sources."lodash.isequal-4.5.0"
+      sources."lodash.merge-4.6.2"
       sources."lodash.set-4.3.2"
-      sources."lowercase-keys-1.0.1"
+      sources."lodash.topairs-4.3.0"
+      sources."lodash.uniq-4.5.0"
+      sources."lowercase-keys-2.0.0"
       sources."lru-cache-5.1.1"
-      sources."macos-release-2.3.0"
+      sources."macos-release-2.4.1"
       sources."make-dir-3.1.0"
-      sources."mimic-fn-1.2.0"
+      sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
+      sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
-      sources."mute-stream-0.0.7"
+      sources."mute-stream-0.0.8"
       sources."nconf-0.10.0"
-      sources."needle-2.5.0"
+      (sources."needle-2.5.0" // {
+        dependencies = [
+          sources."debug-3.2.6"
+        ];
+      })
       sources."netmask-1.0.6"
       sources."nice-try-1.0.5"
       sources."normalize-url-4.5.0"
@@ -77380,23 +85487,39 @@ in
       sources."number-is-nan-1.0.1"
       sources."object-hash-2.0.3"
       sources."once-1.4.0"
-      sources."onetime-2.0.1"
-      sources."open-7.0.4"
+      sources."onetime-5.1.2"
+      sources."open-7.2.1"
       sources."optionator-0.8.3"
       sources."os-locale-1.4.0"
       sources."os-name-3.1.0"
       sources."os-tmpdir-1.0.2"
-      sources."p-cancelable-1.1.0"
+      sources."p-cancelable-2.0.0"
       sources."p-finally-1.0.0"
       sources."p-map-2.1.0"
-      (sources."pac-proxy-agent-3.0.1" // {
+      sources."pac-proxy-agent-3.0.1"
+      sources."pac-resolver-3.0.0"
+      (sources."package-json-6.5.0" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."@sindresorhus/is-0.14.0"
+          sources."@szmarczak/http-timer-1.1.2"
+          (sources."cacheable-request-6.1.0" // {
+            dependencies = [
+              sources."lowercase-keys-2.0.0"
+            ];
+          })
+          sources."decompress-response-3.3.0"
+          sources."defer-to-connect-1.1.3"
+          sources."get-stream-5.2.0"
+          sources."got-9.6.0"
+          sources."json-buffer-3.0.0"
+          sources."keyv-3.1.0"
+          sources."lowercase-keys-1.0.1"
+          sources."p-cancelable-1.1.0"
+          sources."responselike-1.0.2"
         ];
       })
-      sources."pac-resolver-3.0.0"
-      sources."package-json-6.5.0"
       sources."pako-0.2.9"
+      sources."parse-link-header-1.0.1"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
       sources."peek-stream-1.1.3"
@@ -77405,11 +85528,7 @@ in
       sources."process-nextick-args-2.0.1"
       sources."progress-2.0.3"
       sources."promise-7.3.1"
-      (sources."proxy-agent-3.1.1" // {
-        dependencies = [
-          sources."debug-4.2.0"
-        ];
-      })
+      sources."proxy-agent-3.1.1"
       sources."proxy-from-env-1.1.0"
       sources."pseudomap-1.0.2"
       sources."pump-3.0.0"
@@ -77419,6 +85538,7 @@ in
         ];
       })
       sources."pupa-2.0.1"
+      sources."quick-lru-5.1.1"
       sources."raw-body-2.4.1"
       sources."rc-1.2.8"
       (sources."readable-stream-2.3.7" // {
@@ -77427,13 +85547,14 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      sources."registry-auth-token-4.1.1"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
-      sources."responselike-1.0.2"
-      sources."restore-cursor-2.0.0"
+      sources."resolve-alpn-1.0.0"
+      sources."responselike-2.0.0"
+      sources."restore-cursor-3.1.0"
       sources."rimraf-2.7.1"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.3"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
@@ -77446,26 +85567,35 @@ in
       sources."shebang-regex-1.0.0"
       sources."signal-exit-3.0.3"
       sources."smart-buffer-4.1.0"
-      (sources."snyk-config-3.1.0" // {
+      sources."snyk-config-3.1.1"
+      (sources."snyk-cpp-plugin-1.5.0" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."ansi-styles-4.2.1"
+          sources."chalk-4.1.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+          sources."tslib-2.0.1"
         ];
       })
-      (sources."snyk-docker-plugin-3.10.0" // {
+      (sources."snyk-docker-plugin-3.21.0" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."rimraf-3.0.2"
+          sources."tmp-0.2.1"
+          sources."uuid-8.3.0"
         ];
       })
       sources."snyk-go-parser-1.4.1"
-      (sources."snyk-go-plugin-1.14.2" // {
+      (sources."snyk-go-plugin-1.16.2" // {
         dependencies = [
-          sources."debug-4.2.0"
-          sources."tmp-0.1.0"
+          sources."rimraf-3.0.2"
+          sources."tmp-0.2.1"
         ];
       })
-      (sources."snyk-gradle-plugin-3.4.0" // {
+      (sources."snyk-gradle-plugin-3.6.3" // {
         dependencies = [
-          (sources."@snyk/cli-interface-2.3.2" // {
+          (sources."@snyk/cli-interface-2.9.1" // {
             dependencies = [
               sources."tslib-1.13.0"
             ];
@@ -77474,46 +85604,37 @@ in
           sources."chalk-3.0.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
-          sources."debug-4.2.0"
           sources."has-flag-4.0.0"
           sources."rimraf-3.0.2"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
           sources."tmp-0.2.1"
-          sources."tslib-2.0.0"
+          sources."tslib-2.0.1"
         ];
       })
-      (sources."snyk-module-3.1.0" // {
+      sources."snyk-module-3.1.0"
+      (sources."snyk-mvn-plugin-2.19.4" // {
         dependencies = [
-          sources."debug-4.2.0"
-        ];
-      })
-      (sources."snyk-mvn-plugin-2.17.0" // {
-        dependencies = [
-          sources."@snyk/cli-interface-2.5.0"
-          sources."debug-4.2.0"
+          sources."@snyk/cli-interface-2.9.1"
           sources."tmp-0.1.0"
           sources."tslib-1.11.1"
         ];
       })
-      sources."snyk-nodejs-lockfile-parser-1.22.0"
-      (sources."snyk-nuget-plugin-1.18.1" // {
+      sources."snyk-nodejs-lockfile-parser-1.28.1"
+      (sources."snyk-nuget-plugin-1.19.3" // {
         dependencies = [
-          sources."debug-4.2.0"
-          sources."jszip-3.3.0"
+          sources."jszip-3.4.0"
           sources."pako-1.0.11"
         ];
       })
       sources."snyk-paket-parser-1.6.0"
-      (sources."snyk-php-plugin-1.9.0" // {
+      (sources."snyk-php-plugin-1.9.2" // {
         dependencies = [
-          sources."@snyk/cli-interface-2.3.2"
           sources."tslib-1.11.1"
         ];
       })
       (sources."snyk-policy-1.14.1" // {
         dependencies = [
-          sources."@types/node-6.14.10"
-          sources."debug-4.2.0"
+          sources."@types/node-6.14.12"
           sources."hosted-git-info-2.8.8"
           (sources."snyk-module-2.1.0" // {
             dependencies = [
@@ -77523,10 +85644,15 @@ in
         ];
       })
       sources."snyk-python-plugin-1.17.1"
-      sources."snyk-resolve-1.0.1"
+      (sources."snyk-resolve-1.0.1" // {
+        dependencies = [
+          sources."debug-3.2.6"
+        ];
+      })
       (sources."snyk-resolve-deps-4.4.0" // {
         dependencies = [
-          sources."@types/node-6.14.10"
+          sources."@types/node-6.14.12"
+          sources."debug-3.2.6"
           sources."hosted-git-info-2.8.8"
           sources."lru-cache-4.1.5"
           sources."semver-5.7.1"
@@ -77536,13 +85662,13 @@ in
       })
       (sources."snyk-sbt-plugin-2.11.0" // {
         dependencies = [
-          sources."debug-4.2.0"
           sources."tmp-0.1.0"
         ];
       })
       sources."snyk-tree-1.0.0"
       (sources."snyk-try-require-1.3.1" // {
         dependencies = [
+          sources."debug-3.2.6"
           sources."lru-cache-4.1.5"
           sources."yallist-2.1.2"
         ];
@@ -77562,9 +85688,9 @@ in
       sources."statuses-1.5.0"
       sources."stream-shift-1.0.1"
       sources."streamsearch-0.1.2"
-      (sources."string-width-2.1.1" // {
+      (sources."string-width-4.2.0" // {
         dependencies = [
-          sources."strip-ansi-4.0.0"
+          sources."strip-ansi-6.0.0"
         ];
       })
       sources."string_decoder-0.10.31"
@@ -77576,7 +85702,7 @@ in
       sources."strip-eof-1.0.0"
       sources."strip-json-comments-2.0.1"
       sources."supports-color-5.5.0"
-      (sources."tar-stream-2.1.2" // {
+      (sources."tar-stream-2.1.4" // {
         dependencies = [
           sources."readable-stream-3.6.0"
           sources."safe-buffer-5.2.1"
@@ -77602,18 +85728,18 @@ in
       sources."tslib-1.13.0"
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
-      sources."type-fest-0.8.1"
+      sources."type-fest-0.11.0"
       sources."typedarray-to-buffer-3.1.5"
       sources."unique-string-2.0.0"
       sources."unpipe-1.0.0"
-      (sources."update-notifier-4.1.0" // {
+      (sources."update-notifier-4.1.1" // {
         dependencies = [
           sources."ansi-styles-4.2.1"
           sources."chalk-3.0.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."has-flag-4.0.0"
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
         ];
       })
       sources."url-parse-lax-3.0.0"
@@ -77621,20 +85747,14 @@ in
       sources."uuid-3.4.0"
       sources."vscode-languageserver-types-3.15.1"
       sources."which-1.3.1"
-      (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."window-size-0.1.4"
-      sources."windows-release-3.3.1"
+      sources."windows-release-3.3.3"
       sources."word-wrap-1.2.3"
       (sources."wrap-ansi-5.1.0" // {
         dependencies = [
+          sources."emoji-regex-7.0.3"
+          sources."is-fullwidth-code-point-2.0.0"
           sources."string-width-3.1.0"
         ];
       })
@@ -77647,6 +85767,7 @@ in
       sources."xtend-4.0.2"
       sources."y18n-3.2.1"
       sources."yallist-3.1.1"
+      sources."yaml-1.10.0"
       (sources."yargs-3.32.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -77722,7 +85843,7 @@ in
       })
       sources."socket.io-parser-3.4.1"
       sources."to-array-0.1.4"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."yeast-0.1.2"
     ];
@@ -77760,11 +85881,11 @@ in
       sources."ci-info-1.6.0"
       sources."cli-boxes-1.0.0"
       sources."cli-cursor-2.1.0"
-      sources."cli-spinners-2.3.0"
+      sources."cli-spinners-2.4.0"
       sources."clone-1.0.4"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."configstore-3.1.2"
+      sources."configstore-3.1.5"
       sources."create-error-class-3.0.2"
       sources."cross-spawn-5.1.0"
       sources."crypto-random-string-1.0.0"
@@ -77778,7 +85899,7 @@ in
       })
       sources."deep-extend-0.6.0"
       sources."defaults-1.0.3"
-      sources."dot-prop-4.2.0"
+      sources."dot-prop-4.2.1"
       sources."draftlog-1.0.12"
       sources."duplexer3-0.1.4"
       sources."error-ex-1.3.2"
@@ -77870,7 +85991,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."speedtest-net-1.6.2"
       sources."string-width-2.1.1"
       sources."strip-ansi-4.0.0"
@@ -77911,10 +86032,10 @@ in
   ssb-server = nodeEnv.buildNodePackage {
     name = "ssb-server";
     packageName = "ssb-server";
-    version = "16.0.0";
+    version = "16.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/ssb-server/-/ssb-server-16.0.0.tgz";
-      sha512 = "pmAXsxC5OIzwciT1IcTNXI36qMWJJr7zLjq6Hft8fsijaw3NMh5eyGq72UMbeHIdaTPESmtg7Y2cuVuPhv3vrA==";
+      url = "https://registry.npmjs.org/ssb-server/-/ssb-server-16.0.1.tgz";
+      sha512 = "cast7wQRxqUSiRVyFoaTtymeukwSh5nlfDj5ShHmdnh0qmfi4uQnvPuBA5BBgC3WEtI/ozgNjAc1/vqJFgILig==";
     };
     dependencies = [
       sources."abstract-leveldown-6.0.3"
@@ -77936,7 +86057,7 @@ in
       sources."async-each-1.0.3"
       sources."async-single-1.0.5"
       sources."atob-2.1.2"
-      (sources."atomic-file-2.0.1" // {
+      (sources."atomic-file-2.1.1" // {
         dependencies = [
           sources."flumecodec-0.0.1"
           sources."level-codec-6.2.0"
@@ -77958,21 +86079,12 @@ in
       sources."binary-extensions-1.13.1"
       sources."binary-search-1.3.6"
       sources."bindings-1.5.0"
-      (sources."bl-0.8.2" // {
-        dependencies = [
-          sources."isarray-0.0.1"
-          sources."readable-stream-1.0.34"
-          sources."string_decoder-0.10.31"
-        ];
-      })
       sources."blake2s-1.1.0"
       sources."brace-expansion-1.1.11"
       sources."braces-1.8.5"
       sources."broadcast-stream-0.2.2"
       sources."buffer-5.6.0"
       sources."buffer-from-1.1.1"
-      sources."bytewise-1.1.0"
-      sources."bytewise-core-1.2.3"
       (sources."cache-base-1.0.1" // {
         dependencies = [
           sources."isobject-3.0.1"
@@ -77986,7 +86098,7 @@ in
       sources."character-entities-legacy-1.1.4"
       sources."character-reference-invalid-1.1.4"
       sources."charwise-3.0.1"
-      sources."chloride-2.2.14"
+      sources."chloride-2.3.0"
       sources."chloride-test-1.2.4"
       sources."chokidar-1.7.0"
       (sources."class-utils-0.3.6" // {
@@ -78034,7 +86146,7 @@ in
       sources."copy-descriptor-0.1.1"
       sources."core-util-is-1.0.2"
       sources."cross-spawn-6.0.5"
-      sources."debug-4.2.0"
+      sources."debug-4.3.0"
       sources."decode-uri-component-0.2.0"
       sources."deep-equal-1.1.1"
       sources."deep-extend-0.6.0"
@@ -78065,7 +86177,7 @@ in
       })
       sources."epidemic-broadcast-trees-7.0.0"
       sources."errno-0.1.7"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       (sources."es-get-iterator-1.1.0" // {
         dependencies = [
           sources."isarray-2.0.5"
@@ -78093,26 +86205,39 @@ in
           sources."level-codec-6.2.0"
         ];
       })
+      (sources."flumedb-2.1.8" // {
+        dependencies = [
+          sources."pull-abortable-4.1.1"
+        ];
+      })
       sources."flumelog-offset-3.4.4"
       (sources."flumeview-hashtable-1.1.1" // {
         dependencies = [
           sources."atomic-file-1.1.5"
         ];
       })
-      sources."flumeview-level-3.0.14"
+      (sources."flumeview-level-4.0.4" // {
+        dependencies = [
+          sources."abstract-leveldown-6.2.3"
+          sources."level-6.0.1"
+          sources."level-js-5.0.2"
+          sources."mkdirp-1.0.4"
+        ];
+      })
       (sources."flumeview-links-1.0.1" // {
         dependencies = [
           sources."deep-equal-2.0.3"
+          sources."flumeview-level-3.0.14"
           sources."isarray-2.0.5"
           sources."map-filter-reduce-3.2.2"
         ];
       })
-      (sources."flumeview-query-7.2.2" // {
+      (sources."flumeview-query-8.0.0" // {
         dependencies = [
           sources."map-filter-reduce-3.2.2"
         ];
       })
-      sources."flumeview-reduce-1.3.16"
+      sources."flumeview-reduce-1.3.17"
       sources."for-each-0.3.3"
       sources."for-in-1.0.2"
       sources."for-own-0.1.5"
@@ -78151,7 +86276,7 @@ in
       sources."he-0.5.0"
       sources."heap-0.2.6"
       sources."hoox-0.0.1"
-      sources."idb-kv-store-4.4.0"
+      sources."idb-kv-store-4.5.0"
       sources."ieee754-1.1.13"
       sources."immediate-3.2.3"
       sources."increment-buffer-1.0.1"
@@ -78173,7 +86298,7 @@ in
       sources."is-binary-path-1.0.1"
       sources."is-boolean-object-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-callable-1.2.0"
+      sources."is-callable-1.2.1"
       sources."is-canonical-base64-1.1.1"
       (sources."is-data-descriptor-1.0.0" // {
         dependencies = [
@@ -78196,6 +86321,7 @@ in
       sources."is-glob-2.0.1"
       sources."is-hexadecimal-1.0.4"
       sources."is-map-2.0.1"
+      sources."is-negative-zero-2.0.0"
       sources."is-number-2.1.0"
       sources."is-number-object-1.0.4"
       (sources."is-plain-object-2.0.4" // {
@@ -78205,13 +86331,13 @@ in
       })
       sources."is-posix-bracket-0.1.1"
       sources."is-primitive-2.0.0"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-set-2.0.1"
       sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
       sources."is-typed-array-1.1.3"
       sources."is-typedarray-1.0.0"
-      sources."is-valid-domain-0.0.14"
+      sources."is-valid-domain-0.0.15"
       sources."is-weakmap-2.0.1"
       sources."is-weakset-2.0.1"
       sources."is-windows-1.0.2"
@@ -78222,7 +86348,7 @@ in
       sources."kind-of-3.2.2"
       sources."layered-graph-1.1.3"
       sources."level-5.0.1"
-      sources."level-codec-9.0.1"
+      sources."level-codec-9.0.2"
       sources."level-concat-iterator-2.0.1"
       sources."level-errors-2.0.1"
       (sources."level-iterator-stream-4.0.2" // {
@@ -78233,27 +86359,6 @@ in
       sources."level-js-4.0.2"
       sources."level-packager-5.1.1"
       sources."level-post-1.0.7"
-      (sources."level-sublevel-6.6.5" // {
-        dependencies = [
-          (sources."abstract-leveldown-0.12.4" // {
-            dependencies = [
-              sources."xtend-3.0.0"
-            ];
-          })
-          sources."deferred-leveldown-0.2.0"
-          sources."isarray-0.0.1"
-          (sources."levelup-0.19.1" // {
-            dependencies = [
-              sources."xtend-3.0.0"
-            ];
-          })
-          sources."ltgt-2.1.3"
-          sources."prr-0.0.0"
-          sources."readable-stream-1.0.34"
-          sources."semver-5.1.1"
-          sources."string_decoder-0.10.31"
-        ];
-      })
       sources."level-supports-1.0.1"
       (sources."leveldown-5.6.0" // {
         dependencies = [
@@ -78263,8 +86368,9 @@ in
       })
       sources."levelup-4.4.0"
       sources."libnested-1.5.0"
-      sources."libsodium-0.7.6"
-      sources."libsodium-wrappers-0.7.6"
+      sources."libsodium-0.7.8"
+      sources."libsodium-wrappers-0.7.8"
+      sources."lodash.clonedeep-4.5.0"
       sources."lodash.get-4.4.2"
       sources."log-symbols-1.0.2"
       sources."log-update-1.0.2"
@@ -78288,6 +86394,7 @@ in
         ];
       })
       sources."mkdirp-0.5.5"
+      sources."monotonic-timestamp-0.0.9"
       sources."moo-0.5.1"
       sources."ms-2.1.2"
       sources."multiblob-1.13.7"
@@ -78296,6 +86403,7 @@ in
       sources."multiserver-3.6.0"
       sources."multiserver-address-1.0.1"
       sources."multiserver-scopes-1.0.0"
+      sources."mutexify-1.3.1"
       sources."muxrpc-6.5.0"
       sources."muxrpc-usage-2.1.0"
       sources."muxrpc-validation-3.0.2"
@@ -78315,9 +86423,9 @@ in
       })
       sources."napi-macros-2.0.0"
       sources."ncp-2.0.0"
-      sources."nearley-2.19.3"
+      sources."nearley-2.19.7"
       sources."nice-try-1.0.5"
-      sources."node-gyp-build-4.2.2"
+      sources."node-gyp-build-4.2.3"
       sources."non-private-ip-1.4.4"
       sources."normalize-path-2.1.1"
       sources."normalize-uri-1.1.3"
@@ -78336,7 +86444,7 @@ in
           })
         ];
       })
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-is-1.1.2"
       sources."object-keys-1.1.1"
       (sources."object-visit-1.0.1" // {
@@ -78344,7 +86452,11 @@ in
           sources."isobject-3.0.1"
         ];
       })
-      sources."object.assign-4.1.0"
+      (sources."object.assign-4.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."object.omit-2.0.1"
       (sources."object.pick-1.3.0" // {
         dependencies = [
@@ -78354,6 +86466,7 @@ in
       sources."observ-0.2.0"
       sources."observ-debounce-1.1.1"
       sources."obv-0.0.1"
+      sources."obz-1.0.2"
       sources."on-change-network-0.0.2"
       sources."on-wakeup-1.0.1"
       sources."once-1.4.0"
@@ -78363,7 +86476,7 @@ in
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
-      sources."packet-stream-2.0.4"
+      sources."packet-stream-2.0.5"
       sources."packet-stream-codec-1.1.2"
       sources."parse-entities-1.2.2"
       sources."parse-glob-3.0.4"
@@ -78542,7 +86655,11 @@ in
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
       sources."shellsubstitute-1.2.0"
-      sources."side-channel-1.0.2"
+      (sources."side-channel-1.0.3" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."smart-buffer-4.1.0"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
@@ -78571,7 +86688,7 @@ in
         ];
       })
       sources."snapdragon-util-3.0.1"
-      sources."socks-2.3.3"
+      sources."socks-2.4.4"
       sources."sodium-browserify-1.3.0"
       (sources."sodium-browserify-tweetnacl-0.2.6" // {
         dependencies = [
@@ -78580,7 +86697,7 @@ in
         ];
       })
       sources."sodium-chloride-1.1.2"
-      sources."sodium-native-2.4.9"
+      sources."sodium-native-3.2.0"
       sources."source-map-0.5.7"
       sources."source-map-resolve-0.5.3"
       sources."source-map-url-0.4.0"
@@ -78589,15 +86706,28 @@ in
       sources."ssb-blobs-1.2.2"
       sources."ssb-caps-1.1.0"
       sources."ssb-client-4.9.0"
-      sources."ssb-config-3.4.4"
+      sources."ssb-config-3.4.5"
+      (sources."ssb-db-20.3.0" // {
+        dependencies = [
+          sources."glob-7.1.6"
+          sources."mkdirp-1.0.4"
+          sources."rimraf-3.0.2"
+        ];
+      })
       sources."ssb-ebt-5.6.7"
-      sources."ssb-friends-4.1.4"
+      sources."ssb-friends-4.2.1"
       (sources."ssb-gossip-1.1.1" // {
         dependencies = [
           sources."atomic-file-1.1.5"
         ];
       })
-      sources."ssb-invite-2.1.4"
+      (sources."ssb-invite-2.1.6" // {
+        dependencies = [
+          sources."abstract-leveldown-6.2.3"
+          sources."level-6.0.1"
+          sources."level-js-5.0.2"
+        ];
+      })
       sources."ssb-keys-7.2.2"
       sources."ssb-links-3.0.9"
       sources."ssb-local-1.0.0"
@@ -78606,7 +86736,7 @@ in
       sources."ssb-msgs-5.2.0"
       sources."ssb-no-auth-1.0.0"
       sources."ssb-onion-1.0.0"
-      (sources."ssb-ooo-1.3.2" // {
+      (sources."ssb-ooo-1.3.3" // {
         dependencies = [
           sources."flumecodec-0.0.1"
           sources."level-codec-6.2.0"
@@ -78614,10 +86744,11 @@ in
       })
       sources."ssb-plugins-1.0.4"
       sources."ssb-private1-1.0.1"
-      sources."ssb-query-2.4.3"
-      sources."ssb-ref-2.13.9"
+      sources."ssb-query-2.4.5"
+      sources."ssb-ref-2.14.2"
       sources."ssb-replicate-1.3.2"
       sources."ssb-unix-socket-1.0.0"
+      sources."ssb-validate-4.1.3"
       sources."ssb-ws-6.2.3"
       sources."stack-0.1.0"
       (sources."static-extend-0.1.2" // {
@@ -78644,10 +86775,12 @@ in
         ];
       })
       sources."string-width-1.0.2"
-      sources."string.prototype.trim-1.2.1"
+      (sources."string.prototype.trim-1.2.2" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
       sources."string_decoder-1.1.1"
       sources."stringify-entities-1.3.2"
@@ -78658,6 +86791,7 @@ in
         dependencies = [
           sources."glob-7.1.6"
           sources."is-regex-1.0.5"
+          sources."object-inspect-1.7.0"
         ];
       })
       sources."text-table-0.2.0"
@@ -78680,8 +86814,6 @@ in
       sources."tweetnacl-auth-0.3.1"
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
-      sources."typewise-1.0.3"
-      sources."typewise-core-1.2.0"
       sources."typewiselite-1.0.0"
       sources."uint48be-2.0.1"
       sources."ultron-1.0.2"
@@ -78770,7 +86902,7 @@ in
           sources."ws-1.1.5"
         ];
       })
-      sources."@types/babel-types-7.0.7"
+      sources."@types/babel-types-7.0.9"
       sources."@types/babylon-6.16.5"
       sources."accepts-1.3.7"
       sources."acorn-3.3.0"
@@ -78803,7 +86935,7 @@ in
           sources."semver-5.0.3"
         ];
       })
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."align-text-0.1.4"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
@@ -78820,13 +86952,13 @@ in
       sources."async-1.5.2"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
-      (sources."aws-sdk-2.693.0" // {
+      (sources."aws-sdk-2.756.0" // {
         dependencies = [
           sources."uuid-3.3.2"
         ];
       })
       sources."aws-sign2-0.6.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."babel-runtime-6.26.0"
       sources."babel-types-6.26.0"
       sources."babylon-6.18.0"
@@ -78861,7 +86993,7 @@ in
       sources."buffer-from-1.1.1"
       sources."bufferutil-1.3.0"
       sources."bufferview-1.0.1"
-      sources."bunyan-1.8.12"
+      sources."bunyan-1.8.14"
       sources."busboy-0.2.14"
       sources."bytebuffer-3.5.5"
       sources."bytes-3.1.0"
@@ -78960,7 +87092,7 @@ in
         dependencies = [
           sources."cookie-0.3.1"
           sources."debug-4.1.1"
-          sources."ws-7.3.0"
+          sources."ws-7.3.1"
         ];
       })
       (sources."engine.io-client-3.4.3" // {
@@ -79005,11 +87137,7 @@ in
       sources."fd-slicer-1.1.0"
       sources."finalhandler-1.1.2"
       sources."find-up-3.0.0"
-      (sources."follow-redirects-1.11.0" // {
-        dependencies = [
-          sources."debug-3.2.6"
-        ];
-      })
+      sources."follow-redirects-1.13.0"
       sources."forever-agent-0.6.1"
       sources."form-data-2.1.4"
       sources."formidable-1.2.2"
@@ -79059,7 +87187,7 @@ in
       })
       (sources."http-proxy-1.18.1" // {
         dependencies = [
-          sources."eventemitter3-4.0.4"
+          sources."eventemitter3-4.0.7"
         ];
       })
       sources."http-signature-1.1.1"
@@ -79081,10 +87209,10 @@ in
       })
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-my-ip-valid-1.0.0"
-      sources."is-my-json-valid-2.20.0"
+      sources."is-my-json-valid-2.20.5"
       sources."is-promise-2.2.2"
       sources."is-property-1.0.2"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-stream-1.1.0"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
@@ -79093,7 +87221,7 @@ in
       sources."isstream-0.1.2"
       sources."jmespath-0.15.0"
       sources."jpeg-turbo-0.4.0"
-      sources."js-base64-2.5.2"
+      sources."js-base64-2.6.4"
       sources."js-stringify-1.0.2"
       sources."js-yaml-3.2.7"
       sources."jsbn-0.1.1"
@@ -79110,7 +87238,7 @@ in
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."json5-1.0.1"
-      sources."jsonpointer-4.0.1"
+      sources."jsonpointer-4.1.0"
       sources."jspath-0.3.4"
       (sources."jsprim-1.4.1" // {
         dependencies = [
@@ -79137,7 +87265,7 @@ in
       })
       sources."load-json-file-1.1.0"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.get-4.4.2"
       sources."lodash.isequal-4.5.0"
       sources."long-2.4.0"
@@ -79185,7 +87313,7 @@ in
       sources."minimist-1.2.5"
       sources."minitouch-prebuilt-1.2.0"
       sources."mkdirp-0.5.5"
-      sources."moment-2.26.0"
+      sources."moment-2.28.0"
       sources."ms-2.1.2"
       sources."multer-1.4.2"
       sources."mustache-2.3.2"
@@ -79210,7 +87338,7 @@ in
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
-      sources."openid-2.0.6"
+      sources."openid-2.0.7"
       sources."options-0.0.6"
       sources."optjs-3.2.2"
       sources."os-locale-3.1.0"
@@ -79301,7 +87429,7 @@ in
           sources."aws-sign2-0.7.0"
           sources."caseless-0.12.0"
           sources."form-data-2.3.3"
-          sources."har-validator-5.1.3"
+          sources."har-validator-5.1.5"
           sources."http-signature-1.2.0"
           sources."oauth-sign-0.9.0"
           sources."punycode-2.1.1"
@@ -79378,7 +87506,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."split-1.0.1"
       sources."sprintf-js-1.0.3"
       (sources."sshpk-1.16.1" // {
@@ -79478,7 +87606,7 @@ in
       sources."uid2-0.0.3"
       sources."ultron-1.0.2"
       sources."unpipe-1.0.0"
-      (sources."uri-js-4.2.2" // {
+      (sources."uri-js-4.4.0" // {
         dependencies = [
           sources."punycode-2.1.1"
         ];
@@ -79511,7 +87639,7 @@ in
       sources."which-1.3.1"
       sources."which-module-2.0.0"
       sources."window-size-0.1.0"
-      (sources."winston-2.4.4" // {
+      (sources."winston-2.4.5" // {
         dependencies = [
           sources."async-1.0.0"
         ];
@@ -79620,13 +87748,13 @@ in
       sources."define-properties-1.1.3"
       (sources."dom-serializer-0.2.2" // {
         dependencies = [
-          sources."domelementtype-2.0.1"
+          sources."domelementtype-2.0.2"
         ];
       })
       sources."domelementtype-1.3.1"
       sources."domutils-1.7.0"
       sources."entities-2.0.3"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
@@ -79634,18 +87762,23 @@ in
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."has-symbols-1.0.1"
-      sources."is-callable-1.2.0"
+      sources."is-callable-1.2.1"
       sources."is-date-object-1.0.2"
-      sources."is-regex-1.1.0"
+      sources."is-negative-zero-2.0.0"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."js-yaml-3.14.0"
       sources."mdn-data-2.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."nth-check-1.0.2"
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.0"
+      (sources."object.assign-4.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."object.getownpropertydescriptors-2.1.0"
       sources."object.values-1.1.1"
       sources."q-1.5.1"
@@ -79654,8 +87787,6 @@ in
       sources."sprintf-js-1.0.3"
       sources."stable-0.1.8"
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
       sources."supports-color-5.5.0"
       sources."unquote-1.1.1"
@@ -79780,7 +87911,7 @@ in
       sources."component-emitter-1.3.0"
       sources."concat-map-0.0.1"
       sources."concat-stream-1.6.2"
-      sources."configstore-3.1.2"
+      sources."configstore-3.1.5"
       sources."connect-3.7.0"
       sources."content-type-1.0.4"
       sources."cookiejar-2.1.2"
@@ -79811,7 +87942,7 @@ in
         ];
       })
       sources."diff-1.4.0"
-      sources."dot-prop-4.2.0"
+      sources."dot-prop-4.2.1"
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
       sources."encodeurl-1.0.2"
@@ -79879,7 +88010,7 @@ in
       sources."graceful-fs-4.2.4"
       (sources."graphlib-2.1.8" // {
         dependencies = [
-          sources."lodash-4.17.15"
+          sources."lodash-4.17.20"
         ];
       })
       sources."growl-1.9.2"
@@ -79951,7 +88082,7 @@ in
       sources."json-refs-2.1.7"
       (sources."json-schema-deref-sync-0.6.0" // {
         dependencies = [
-          sources."lodash-4.17.15"
+          sources."lodash-4.17.20"
         ];
       })
       sources."jsonfile-2.4.0"
@@ -80023,7 +88154,7 @@ in
       sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
       sources."native-promise-only-0.8.1"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       (sources."nodemon-1.19.4" // {
         dependencies = [
           sources."debug-3.2.6"
@@ -80218,7 +88349,7 @@ in
       sources."swagger-editor-2.10.5"
       (sources."swagger-test-templates-1.6.0" // {
         dependencies = [
-          sources."lodash-4.17.15"
+          sources."lodash-4.17.20"
         ];
       })
       (sources."swagger-tools-0.9.16" // {
@@ -80243,7 +88374,7 @@ in
       sources."truncate-utf8-bytes-1.0.2"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.9.4"
+      sources."uglify-js-3.10.4"
       sources."undefsafe-2.0.3"
       (sources."union-value-1.0.1" // {
         dependencies = [
@@ -80310,7 +88441,7 @@ in
       sha256 = "886069ecc5eedf0371b948e8ff66e7f2943c85fe7cfdaa7183e1a3572d55852b";
     };
     dependencies = [
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
@@ -80319,7 +88450,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       (sources."bcrypt-pbkdf-1.0.2" // {
         dependencies = [
           sources."tweetnacl-0.14.5"
@@ -80333,7 +88464,7 @@ in
       sources."combined-stream-1.0.8"
       sources."core-util-is-1.0.2"
       sources."dashdash-1.14.1"
-      sources."debug-4.2.0"
+      sources."debug-4.3.0"
       sources."decamelize-1.2.0"
       sources."delayed-stream-1.0.0"
       sources."discord.js-11.6.4"
@@ -80350,7 +88481,7 @@ in
       sources."get-caller-file-2.0.5"
       sources."getpass-0.1.7"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."http-signature-1.2.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-typedarray-1.0.0"
@@ -80368,9 +88499,9 @@ in
       sources."mime-types-2.1.27"
       sources."minimist-1.2.5"
       sources."module-alias-2.2.2"
-      sources."moment-2.26.0"
+      sources."moment-2.28.0"
       sources."ms-2.1.2"
-      sources."node-fetch-2.6.0"
+      sources."node-fetch-2.6.1"
       sources."oauth-sign-0.9.0"
       sources."p-limit-2.3.0"
       sources."p-locate-3.0.0"
@@ -80404,7 +88535,7 @@ in
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-1.0.3"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."uuid-3.4.0"
       sources."verror-1.10.0"
       sources."which-module-2.0.0"
@@ -80475,28 +88606,28 @@ in
   textlint = nodeEnv.buildNodePackage {
     name = "textlint";
     packageName = "textlint";
-    version = "11.6.3";
+    version = "11.7.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/textlint/-/textlint-11.6.3.tgz";
-      sha512 = "tTLLgB49zkJgq6GYDJOT6F31kHLulFjzovCHpN6ycv8d/aPcYl9vv7f/luR33YBQZdnGLtn+j8+G4GJAZ6Uz6w==";
+      url = "https://registry.npmjs.org/textlint/-/textlint-11.7.6.tgz";
+      sha512 = "o9nhbylWjOErba1gq2bMoJzughp9JK2VbENR+NCiMsNNEiaJ1P8jbnrL3ES86D6e0QMxziR79w5l7VmmdmLjCw==";
     };
     dependencies = [
       sources."@azu/format-text-1.0.1"
       sources."@azu/style-format-1.0.0"
-      sources."@textlint/ast-node-types-4.2.5"
-      sources."@textlint/ast-tester-2.1.6"
-      sources."@textlint/ast-traverse-2.1.7"
-      sources."@textlint/feature-flag-3.1.6"
-      sources."@textlint/fixer-formatter-3.1.13"
-      sources."@textlint/kernel-3.2.1"
-      sources."@textlint/linter-formatter-3.1.12"
-      sources."@textlint/markdown-to-ast-6.1.7"
-      sources."@textlint/module-interop-1.0.2"
-      sources."@textlint/text-to-ast-3.1.7"
-      sources."@textlint/textlint-plugin-markdown-5.1.12"
-      sources."@textlint/textlint-plugin-text-4.1.13"
-      sources."@textlint/types-1.3.1"
-      sources."@textlint/utils-1.0.3"
+      sources."@textlint/ast-node-types-4.3.4"
+      sources."@textlint/ast-tester-2.2.4"
+      sources."@textlint/ast-traverse-2.2.5"
+      sources."@textlint/feature-flag-3.2.4"
+      sources."@textlint/fixer-formatter-3.2.5"
+      sources."@textlint/kernel-3.3.6"
+      sources."@textlint/linter-formatter-3.2.5"
+      sources."@textlint/markdown-to-ast-6.2.5"
+      sources."@textlint/module-interop-1.1.4"
+      sources."@textlint/text-to-ast-3.2.4"
+      sources."@textlint/textlint-plugin-markdown-5.2.6"
+      sources."@textlint/textlint-plugin-text-4.2.6"
+      sources."@textlint/types-1.4.5"
+      sources."@textlint/utils-1.1.4"
       sources."ajv-4.11.8"
       sources."ajv-keywords-1.5.1"
       sources."ansi-regex-2.1.1"
@@ -80523,13 +88654,13 @@ in
       sources."concat-stream-1.6.2"
       sources."core-util-is-1.0.2"
       sources."crypt-0.0.2"
-      sources."debug-4.2.0"
+      sources."debug-4.3.0"
       sources."deep-equal-1.1.1"
       sources."deep-is-0.1.3"
       sources."define-properties-1.1.3"
       sources."diff-4.0.2"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
@@ -80557,14 +88688,15 @@ in
       sources."is-arguments-1.0.4"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-1.1.6"
-      sources."is-callable-1.2.0"
+      sources."is-callable-1.2.1"
       sources."is-date-object-1.0.2"
       sources."is-decimal-1.0.4"
       sources."is-file-1.0.0"
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-hexadecimal-1.0.4"
+      sources."is-negative-zero-2.0.0"
       sources."is-plain-obj-1.1.0"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."is-utf8-0.2.1"
       sources."is-whitespace-character-1.0.4"
@@ -80578,21 +88710,25 @@ in
       sources."levn-0.3.0"
       sources."load-json-file-1.1.0"
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."log-symbols-1.0.2"
       sources."map-like-2.0.0"
       sources."markdown-escapes-1.0.4"
-      sources."md5-2.2.1"
+      sources."md5-2.3.0"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
       sources."ms-2.1.2"
       sources."normalize-package-data-2.5.0"
       sources."number-is-nan-1.0.1"
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-is-1.1.2"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.0"
+      (sources."object.assign-4.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."once-1.4.0"
       sources."optionator-0.8.3"
       sources."p-limit-1.3.0"
@@ -80638,7 +88774,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."sprintf-js-1.0.3"
       sources."state-toggle-1.0.3"
       (sources."string-width-1.0.2" // {
@@ -80646,10 +88782,7 @@ in
           sources."strip-ansi-3.0.1"
         ];
       })
-      sources."string.prototype.padstart-3.1.0"
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
       sources."string_decoder-1.1.1"
       (sources."strip-ansi-6.0.0" // {
@@ -80715,7 +88848,7 @@ in
       sha1 = "9139c65b8da891c983b368a50a286338cd76777a";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.2.5"
+      sources."@textlint/ast-node-types-4.3.4"
       sources."txt-to-ast-3.0.3"
     ];
     buildInputs = globalBuildInputs;
@@ -80738,23 +88871,26 @@ in
     };
     dependencies = [
       sources."define-properties-1.1.3"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
       sources."has-1.0.3"
       sources."has-symbols-1.0.1"
-      sources."is-callable-1.2.0"
+      sources."is-callable-1.2.1"
       sources."is-date-object-1.0.2"
-      sources."is-regex-1.1.0"
+      sources."is-negative-zero-2.0.0"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."match-index-1.0.3"
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.0"
+      (sources."object.assign-4.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."regexp.prototype.flags-1.3.0"
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
     ];
     buildInputs = globalBuildInputs;
@@ -80770,208 +88906,293 @@ in
   textlint-rule-alex = nodeEnv.buildNodePackage {
     name = "textlint-rule-alex";
     packageName = "textlint-rule-alex";
-    version = "1.3.1";
+    version = "3.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-alex/-/textlint-rule-alex-1.3.1.tgz";
-      sha512 = "TP+dtJcCe0+ZR7Gp1E3iJdf3XtOImrEIcUdaQnok4QJJEutZ1dTiP4rCfnyOxz70NZ+2RdBJgZeZZWGhuJzSwA==";
+      url = "https://registry.npmjs.org/textlint-rule-alex/-/textlint-rule-alex-3.0.0.tgz";
+      sha512 = "z/Xo1WHxAn7eueUbRLXoMNew+R3dzGENPG/yiCt/KT2WgAfRuQ7GeF855kLcnCCqdTnl6W7sYq8TKy+/DLpiqQ==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.2.5"
-      sources."@textlint/types-1.3.1"
-      sources."alex-5.1.0"
-      sources."ansi-align-2.0.0"
-      sources."ansi-regex-3.0.0"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@sindresorhus/is-0.14.0"
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@textlint/ast-node-types-4.3.4"
+      sources."@textlint/types-1.4.5"
+      sources."@types/color-name-1.1.1"
+      sources."@types/minimist-1.2.0"
+      sources."@types/normalize-package-data-2.4.0"
+      sources."@types/parse5-5.0.3"
+      sources."@types/unist-2.0.3"
+      sources."alex-9.0.1"
+      (sources."ansi-align-3.0.0" // {
+        dependencies = [
+          sources."string-width-3.1.0"
+        ];
+      })
+      sources."ansi-regex-4.1.0"
       sources."ansi-styles-3.2.1"
       sources."argparse-1.0.10"
-      sources."array-find-index-1.0.2"
       sources."array-iterate-1.1.4"
+      sources."arrify-1.0.1"
       sources."bail-1.0.5"
       sources."balanced-match-1.0.0"
       sources."boundary-1.0.1"
-      (sources."boxen-1.3.0" // {
+      (sources."boxen-4.2.0" // {
         dependencies = [
-          sources."camelcase-4.1.0"
+          sources."ansi-styles-4.2.1"
+          sources."chalk-3.0.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+          sources."type-fest-0.8.1"
         ];
       })
       sources."brace-expansion-1.1.11"
       sources."bubble-stream-error-1.0.0"
       sources."buffer-from-1.1.1"
-      sources."camelcase-2.1.1"
-      sources."camelcase-keys-2.1.0"
-      sources."capture-stack-trace-1.0.1"
+      (sources."cacheable-request-6.1.0" // {
+        dependencies = [
+          sources."get-stream-5.2.0"
+          sources."lowercase-keys-2.0.0"
+          sources."pump-3.0.0"
+        ];
+      })
+      sources."camelcase-5.3.1"
+      sources."camelcase-keys-6.2.2"
+      sources."ccount-1.0.5"
       sources."chalk-2.4.2"
       sources."character-entities-1.2.4"
+      sources."character-entities-html4-1.1.4"
       sources."character-entities-legacy-1.1.4"
       sources."character-reference-invalid-1.1.4"
-      sources."ci-info-1.6.0"
-      sources."cli-boxes-1.0.0"
-      sources."code-point-at-1.1.0"
+      sources."ci-info-2.0.0"
+      sources."cli-boxes-2.2.1"
+      sources."clone-response-1.0.2"
       sources."collapse-white-space-1.0.6"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
+      sources."comma-separated-tokens-1.0.8"
       sources."concat-map-0.0.1"
-      (sources."concat-stream-1.6.2" // {
+      (sources."concat-stream-2.0.0" // {
         dependencies = [
-          sources."isarray-1.0.0"
-          sources."process-nextick-args-2.0.1"
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
+          sources."readable-stream-3.6.0"
+          sources."string_decoder-1.3.0"
         ];
       })
-      sources."configstore-3.1.2"
+      sources."configstore-5.0.1"
       sources."core-util-is-1.0.2"
-      sources."create-error-class-3.0.2"
-      sources."cross-spawn-5.1.0"
-      sources."crypto-random-string-1.0.0"
-      sources."currently-unhandled-0.4.1"
-      sources."cuss-1.19.0"
-      sources."debug-4.2.0"
+      sources."crypto-random-string-2.0.0"
+      sources."cuss-1.21.0"
+      sources."debug-4.3.0"
       sources."decamelize-1.2.0"
+      (sources."decamelize-keys-1.1.0" // {
+        dependencies = [
+          sources."map-obj-1.0.1"
+        ];
+      })
+      sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
-      sources."dot-prop-4.2.0"
-      sources."duplexer-0.1.1"
+      sources."defer-to-connect-1.1.3"
+      sources."dot-prop-5.3.0"
+      sources."duplexer-0.1.2"
       sources."duplexer3-0.1.4"
+      sources."emoji-regex-7.0.3"
       sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
+      sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
       sources."event-stream-3.1.7"
-      sources."execa-0.7.0"
       sources."extend-3.0.2"
       sources."fault-1.0.4"
-      sources."find-up-1.1.2"
-      sources."fn-name-2.0.1"
+      sources."figgy-pudding-3.5.2"
+      sources."figures-3.2.0"
+      sources."find-up-4.1.0"
       sources."format-0.2.2"
       sources."from-0.1.7"
       sources."fs.realpath-1.0.0"
-      sources."get-stdin-4.0.1"
-      sources."get-stream-3.0.0"
+      (sources."get-stream-4.1.0" // {
+        dependencies = [
+          sources."pump-3.0.0"
+        ];
+      })
       sources."git-diff-tree-1.1.0"
       sources."git-spawned-stream-1.0.1"
       sources."glob-7.1.6"
-      sources."global-dirs-0.1.1"
-      sources."got-6.7.1"
+      sources."global-dirs-2.0.1"
+      sources."got-9.6.0"
       sources."graceful-fs-4.2.4"
+      sources."hard-rejection-2.1.0"
       sources."has-flag-3.0.0"
+      sources."has-yarn-2.1.0"
+      sources."hast-util-embedded-1.0.5"
+      sources."hast-util-from-parse5-6.0.0"
+      sources."hast-util-has-property-1.0.4"
+      sources."hast-util-is-body-ok-link-1.0.4"
+      sources."hast-util-is-element-1.1.0"
+      sources."hast-util-parse-selector-2.2.4"
+      sources."hast-util-phrasing-1.0.5"
+      sources."hast-util-to-nlcst-1.2.7"
+      sources."hast-util-to-string-1.0.4"
+      sources."hast-util-whitespace-1.0.4"
+      sources."hastscript-5.1.2"
       sources."hosted-git-info-2.8.8"
-      sources."ignore-3.3.10"
+      sources."http-cache-semantics-4.1.0"
+      sources."ignore-5.1.8"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
-      sources."indent-string-2.1.0"
+      sources."indent-string-4.0.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
       sources."is-alphabetical-1.0.4"
+      sources."is-alphanumeric-1.0.0"
       sources."is-alphanumerical-1.0.4"
       sources."is-arrayish-0.2.1"
-      sources."is-buffer-1.1.6"
-      sources."is-ci-1.2.1"
+      sources."is-buffer-2.0.4"
+      sources."is-ci-2.0.0"
       sources."is-decimal-1.0.4"
       sources."is-empty-1.2.0"
-      sources."is-finite-1.1.0"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-hexadecimal-1.0.4"
-      sources."is-hidden-1.1.3"
-      sources."is-installed-globally-0.1.0"
-      sources."is-npm-1.0.0"
-      sources."is-obj-1.0.1"
-      sources."is-object-1.0.1"
-      sources."is-path-inside-1.0.1"
+      sources."is-installed-globally-0.3.2"
+      sources."is-npm-4.0.0"
+      sources."is-obj-2.0.0"
+      sources."is-path-inside-3.0.2"
       sources."is-plain-obj-1.1.0"
-      sources."is-redirect-1.0.0"
-      sources."is-retry-allowed-1.2.0"
-      sources."is-stream-1.1.0"
-      sources."is-utf8-0.2.1"
+      sources."is-typedarray-1.0.0"
       sources."is-whitespace-character-1.0.4"
       sources."is-word-character-1.0.4"
+      sources."is-yarn-global-0.3.0"
       sources."isarray-0.0.1"
-      sources."isexe-2.0.0"
+      sources."js-tokens-4.0.0"
       sources."js-yaml-3.14.0"
-      sources."latest-version-3.1.0"
+      sources."json-buffer-3.0.0"
+      sources."json-parse-even-better-errors-2.3.1"
+      sources."keyv-3.1.0"
+      sources."kind-of-6.0.3"
+      sources."latest-version-5.1.0"
+      (sources."libnpmconfig-1.2.1" // {
+        dependencies = [
+          sources."find-up-3.0.0"
+          sources."locate-path-3.0.0"
+          sources."p-locate-3.0.0"
+          sources."path-exists-3.0.0"
+        ];
+      })
       sources."limit-spawn-0.0.3"
-      sources."load-json-file-1.1.0"
-      sources."load-plugin-2.3.1"
+      sources."lines-and-columns-1.1.6"
+      sources."load-plugin-3.0.0"
+      sources."locate-path-5.0.0"
       sources."lodash.difference-4.5.0"
       sources."lodash.intersection-4.4.0"
-      sources."loud-rejection-1.6.0"
+      sources."longest-streak-2.0.4"
       sources."lowercase-keys-1.0.1"
-      sources."lru-cache-4.1.5"
-      (sources."make-dir-1.3.0" // {
+      (sources."make-dir-3.1.0" // {
         dependencies = [
-          sources."pify-3.0.0"
+          sources."semver-6.3.0"
         ];
       })
-      sources."map-obj-1.0.1"
+      sources."map-obj-4.1.0"
       sources."map-stream-0.1.0"
       sources."markdown-escapes-1.0.4"
+      sources."markdown-table-2.0.0"
       sources."mdast-comment-marker-1.1.2"
-      sources."mdast-util-to-nlcst-3.2.3"
-      sources."meow-3.7.0"
+      sources."mdast-util-compact-2.0.1"
+      (sources."mdast-util-to-nlcst-4.0.0" // {
+        dependencies = [
+          sources."vfile-location-3.1.0"
+        ];
+      })
+      sources."meow-7.1.1"
+      sources."mimic-response-1.0.1"
+      sources."min-indent-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
+      sources."minimist-options-4.1.0"
       sources."ms-2.1.2"
       sources."nlcst-is-literal-1.2.1"
       sources."nlcst-normalize-2.1.4"
-      sources."nlcst-search-1.5.1"
+      sources."nlcst-search-2.0.0"
       sources."nlcst-to-string-2.0.4"
       sources."normalize-package-data-2.5.0"
-      sources."npm-prefix-1.2.0"
-      sources."npm-run-path-2.0.2"
-      sources."number-is-nan-1.0.1"
-      sources."object-assign-4.1.1"
+      sources."normalize-url-4.5.0"
       sources."object-keys-1.1.1"
       sources."once-1.4.0"
-      sources."os-homedir-1.0.2"
-      sources."p-finally-1.0.0"
-      sources."package-json-4.0.1"
+      sources."p-cancelable-1.1.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-try-2.2.0"
+      (sources."package-json-6.5.0" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
       sources."parse-english-4.1.3"
-      sources."parse-entities-1.2.2"
-      sources."parse-json-2.2.0"
+      sources."parse-entities-2.0.0"
+      sources."parse-json-5.1.0"
       sources."parse-latin-4.2.1"
-      sources."path-exists-2.1.0"
+      sources."parse5-6.0.1"
+      sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-is-inside-1.0.2"
-      sources."path-key-2.0.1"
       sources."path-parse-1.0.6"
-      sources."path-type-1.1.0"
       sources."pause-stream-0.0.11"
-      sources."pify-2.3.0"
-      sources."pinkie-2.0.4"
-      sources."pinkie-promise-2.0.1"
-      sources."pluralize-7.0.0"
-      sources."prepend-http-1.0.4"
+      sources."pluralize-8.0.0"
+      sources."prepend-http-2.0.0"
       sources."process-nextick-args-1.0.7"
-      sources."pseudomap-1.0.2"
+      sources."property-information-5.5.0"
       sources."pump-1.0.3"
       sources."pump-chain-1.0.0"
+      sources."pupa-2.0.1"
+      sources."quick-lru-4.0.1"
       sources."quotation-1.1.3"
       sources."rc-1.2.8"
-      sources."read-pkg-1.1.0"
-      sources."read-pkg-up-1.0.1"
+      (sources."read-pkg-5.2.0" // {
+        dependencies = [
+          sources."type-fest-0.6.0"
+        ];
+      })
+      (sources."read-pkg-up-7.0.1" // {
+        dependencies = [
+          sources."type-fest-0.8.1"
+        ];
+      })
       sources."readable-stream-1.0.34"
-      sources."redent-1.0.0"
-      sources."registry-auth-token-3.4.0"
-      sources."registry-url-3.1.0"
-      sources."remark-frontmatter-1.3.3"
-      sources."remark-message-control-4.2.0"
-      sources."remark-parse-4.0.0"
-      sources."remark-retext-3.1.3"
+      sources."redent-3.0.0"
+      sources."registry-auth-token-4.2.0"
+      sources."registry-url-5.1.0"
+      sources."rehype-parse-7.0.1"
+      sources."rehype-retext-2.0.4"
+      sources."remark-frontmatter-2.0.0"
+      sources."remark-mdx-2.0.0-next.8"
+      sources."remark-message-control-6.0.0"
+      (sources."remark-parse-8.0.3" // {
+        dependencies = [
+          sources."vfile-location-3.1.0"
+        ];
+      })
+      sources."remark-retext-4.0.0"
+      sources."remark-stringify-8.1.1"
       sources."repeat-string-1.6.1"
-      sources."repeating-2.0.1"
       sources."replace-ext-1.0.0"
       sources."resolve-1.17.0"
       sources."resolve-from-5.0.0"
+      sources."responselike-1.0.2"
       sources."retext-english-3.0.4"
-      sources."retext-equality-3.2.0"
-      sources."retext-profanities-4.4.0"
-      sources."safe-buffer-5.1.2"
+      sources."retext-equality-5.2.0"
+      sources."retext-profanities-6.1.0"
+      sources."safe-buffer-5.2.1"
       sources."semver-5.7.1"
-      sources."semver-diff-2.1.0"
-      sources."shebang-command-1.2.0"
-      sources."shebang-regex-1.0.0"
-      sources."shellsubstitute-1.2.0"
+      (sources."semver-diff-3.1.1" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
       sources."signal-exit-3.0.3"
       sources."sliced-1.0.1"
+      sources."space-separated-tokens-1.1.5"
       (sources."spawn-to-readstream-0.1.3" // {
         dependencies = [
           sources."object-keys-0.4.0"
@@ -80982,7 +89203,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."split-0.2.10"
       (sources."split-transform-stream-0.1.1" // {
         dependencies = [
@@ -80995,17 +89216,29 @@ in
       sources."sprintf-js-1.0.3"
       sources."state-toggle-1.0.3"
       sources."stream-combiner-0.0.4"
-      sources."string-width-2.1.1"
+      (sources."string-width-4.2.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
       sources."string_decoder-0.10.31"
-      sources."strip-ansi-4.0.0"
-      sources."strip-bom-2.0.0"
-      sources."strip-eof-1.0.0"
-      sources."strip-indent-1.0.1"
+      sources."stringify-entities-3.0.1"
+      sources."strip-ansi-5.2.0"
+      sources."strip-indent-3.0.0"
       sources."strip-json-comments-2.0.1"
       sources."structured-source-3.0.2"
       sources."supports-color-5.5.0"
-      sources."term-size-1.2.0"
-      sources."textlint-rule-helper-2.1.1"
+      sources."term-size-2.2.0"
+      (sources."textlint-rule-helper-2.1.1" // {
+        dependencies = [
+          sources."unist-util-is-3.0.0"
+          sources."unist-util-visit-1.4.1"
+          sources."unist-util-visit-parents-2.1.2"
+        ];
+      })
       sources."through-2.3.8"
       (sources."through2-2.0.0" // {
         dependencies = [
@@ -81013,63 +89246,73 @@ in
           sources."readable-stream-2.0.6"
         ];
       })
-      sources."timed-out-4.0.1"
-      sources."to-vfile-2.2.0"
+      sources."to-readable-stream-1.0.0"
+      sources."to-vfile-6.1.0"
       sources."trim-0.0.1"
-      sources."trim-newlines-1.0.0"
+      sources."trim-newlines-3.0.0"
       sources."trim-trailing-lines-1.1.3"
       sources."trough-1.0.5"
+      sources."type-fest-0.13.1"
       sources."typedarray-0.0.6"
+      sources."typedarray-to-buffer-3.1.5"
       sources."unherit-1.1.3"
-      sources."unified-6.2.0"
-      sources."unified-diff-1.0.2"
-      (sources."unified-engine-4.0.1" // {
+      (sources."unified-9.2.0" // {
         dependencies = [
-          sources."debug-2.6.9"
-          sources."ms-2.0.0"
+          sources."is-plain-obj-2.1.0"
         ];
       })
-      sources."unified-message-control-1.0.4"
-      sources."unique-string-1.0.0"
-      sources."unist-util-is-3.0.0"
+      sources."unified-diff-3.0.1"
+      (sources."unified-engine-8.0.0" // {
+        dependencies = [
+          sources."is-plain-obj-2.1.0"
+        ];
+      })
+      (sources."unified-message-control-3.0.1" // {
+        dependencies = [
+          sources."vfile-location-3.1.0"
+        ];
+      })
+      sources."unique-string-2.0.0"
+      sources."unist-util-inspect-5.0.1"
+      sources."unist-util-is-4.0.2"
       sources."unist-util-modify-children-1.1.6"
       sources."unist-util-position-3.1.0"
-      sources."unist-util-remove-position-1.1.4"
-      sources."unist-util-stringify-position-1.1.2"
-      sources."unist-util-visit-1.4.1"
+      sources."unist-util-remove-position-2.0.1"
+      sources."unist-util-stringify-position-2.0.3"
+      sources."unist-util-visit-2.0.3"
       sources."unist-util-visit-children-1.1.4"
-      sources."unist-util-visit-parents-2.1.2"
-      sources."untildify-2.1.0"
-      sources."unzip-response-2.0.1"
-      sources."update-notifier-2.5.0"
-      sources."url-parse-lax-1.0.0"
+      sources."unist-util-visit-parents-3.1.0"
+      (sources."update-notifier-4.1.1" // {
+        dependencies = [
+          sources."ansi-styles-4.2.1"
+          sources."chalk-3.0.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."url-parse-lax-3.0.0"
       sources."util-deprecate-1.0.2"
       sources."validate-npm-package-license-3.0.4"
-      sources."vfile-2.3.0"
-      sources."vfile-find-up-2.0.2"
+      sources."vfile-4.2.0"
+      sources."vfile-find-up-5.0.1"
       sources."vfile-location-2.0.6"
-      sources."vfile-message-1.1.1"
-      (sources."vfile-reporter-4.0.0" // {
+      sources."vfile-message-2.0.4"
+      (sources."vfile-reporter-6.0.1" // {
         dependencies = [
-          sources."ansi-regex-2.1.1"
-          sources."has-flag-2.0.0"
-          sources."is-fullwidth-code-point-1.0.0"
-          sources."string-width-1.0.2"
-          sources."strip-ansi-3.0.1"
-          sources."supports-color-4.5.0"
+          sources."supports-color-6.1.0"
         ];
       })
       sources."vfile-sort-2.2.2"
       sources."vfile-statistics-1.1.4"
-      sources."which-1.3.1"
-      sources."widest-line-2.0.1"
+      sources."web-namespaces-1.1.4"
+      sources."widest-line-3.1.0"
       sources."wrappy-1.0.2"
-      sources."write-file-atomic-2.4.3"
-      sources."x-is-function-1.0.4"
-      sources."x-is-string-0.1.0"
-      sources."xdg-basedir-3.0.0"
+      sources."write-file-atomic-3.0.3"
+      sources."xdg-basedir-4.0.0"
       sources."xtend-4.0.2"
-      sources."yallist-2.1.2"
+      sources."yargs-parser-18.1.3"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -81116,7 +89359,7 @@ in
     };
     dependencies = [
       sources."match-casing-1.0.3"
-      sources."strip-json-comments-3.1.0"
+      sources."strip-json-comments-3.1.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -81211,33 +89454,36 @@ in
       sha512 = "HydBbkWjnMn4KrnlpnusY1BGjIG+64UySxRCvRphUAIiuJL2nbkdrIIiOjwfQhllKUa7Sf33bs6RAcbEWjZVfg==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.2.5"
-      sources."@textlint/types-1.3.1"
+      sources."@textlint/ast-node-types-4.3.4"
+      sources."@textlint/types-1.4.5"
       sources."boundary-1.0.1"
       sources."buffer-from-1.1.1"
       sources."concat-stream-2.0.0"
       sources."define-properties-1.1.3"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
       sources."has-1.0.3"
       sources."has-symbols-1.0.1"
       sources."inherits-2.0.4"
-      sources."is-callable-1.2.0"
+      sources."is-callable-1.2.1"
       sources."is-date-object-1.0.2"
-      sources."is-regex-1.1.0"
+      sources."is-negative-zero-2.0.0"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
       sources."object-assign-4.1.1"
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.0"
+      (sources."object.assign-4.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."object.values-1.1.1"
       sources."readable-stream-3.6.0"
       sources."safe-buffer-5.2.1"
       sources."sentence-splitter-3.2.0"
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
       sources."string_decoder-1.3.0"
       sources."structured-source-3.0.2"
@@ -81272,21 +89518,24 @@ in
       sources."define-properties-1.1.3"
       sources."emoji-regex-6.5.1"
       sources."end-with-1.0.2"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
       sources."has-1.0.3"
       sources."has-symbols-1.0.1"
-      sources."is-callable-1.2.0"
+      sources."is-callable-1.2.1"
       sources."is-date-object-1.0.2"
-      sources."is-regex-1.1.0"
+      sources."is-negative-zero-2.0.0"
+      sources."is-regex-1.1.1"
       sources."is-symbol-1.0.3"
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.0"
+      (sources."object.assign-4.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
     ];
     buildInputs = globalBuildInputs;
@@ -81302,16 +89551,16 @@ in
   textlint-rule-stop-words = nodeEnv.buildNodePackage {
     name = "textlint-rule-stop-words";
     packageName = "textlint-rule-stop-words";
-    version = "2.0.4";
+    version = "2.0.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/textlint-rule-stop-words/-/textlint-rule-stop-words-2.0.4.tgz";
-      sha512 = "5J5Ehs1yH2CrW7TMAaTSN5GKwMItCg8TcILRYF3/mZfy9s84SEA17MN5cqwhIv3ftV+mU7GoEc63yJsjZYR+Kw==";
+      url = "https://registry.npmjs.org/textlint-rule-stop-words/-/textlint-rule-stop-words-2.0.6.tgz";
+      sha512 = "9xvmzSaye+7MJBkuq7+oVskCiSXQc/TaCeGoSV4+6n2JYMBOFu8OiDKKE3HDtnLlg9K7H0mbhNEySLGF9kPntQ==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.2.5"
-      sources."@textlint/types-1.3.1"
+      sources."@textlint/ast-node-types-4.3.4"
+      sources."@textlint/types-1.4.5"
       sources."boundary-1.0.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."split-lines-2.0.0"
       sources."structured-source-3.0.2"
       sources."textlint-rule-helper-2.1.1"
@@ -81338,11 +89587,11 @@ in
       sha512 = "kLw4qL8RwY2lCNqgKveHc5sjCDlS5Tdw2TXWOrHvSvQxqaVOwsv3+51oMIQLGfJzQrhFSMlSlw5MvfaOerBvPQ==";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.2.5"
-      sources."@textlint/types-1.3.1"
+      sources."@textlint/ast-node-types-4.3.4"
+      sources."@textlint/types-1.4.5"
       sources."boundary-1.0.1"
-      sources."lodash-4.17.15"
-      sources."strip-json-comments-3.1.0"
+      sources."lodash-4.17.20"
+      sources."strip-json-comments-3.1.1"
       sources."structured-source-3.0.2"
       sources."textlint-rule-helper-2.1.1"
       sources."unist-util-is-3.0.0"
@@ -81370,23 +89619,26 @@ in
     dependencies = [
       sources."array-includes-3.1.1"
       sources."define-properties-1.1.3"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
       sources."has-1.0.3"
       sources."has-symbols-1.0.1"
-      sources."is-callable-1.2.0"
+      sources."is-callable-1.2.1"
       sources."is-capitalized-1.0.0"
       sources."is-date-object-1.0.2"
-      sources."is-regex-1.1.0"
+      sources."is-negative-zero-2.0.0"
+      sources."is-regex-1.1.1"
       sources."is-string-1.0.5"
       sources."is-symbol-1.0.3"
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.0"
+      (sources."object.assign-4.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
     ];
     buildInputs = globalBuildInputs;
@@ -81408,18 +89660,37 @@ in
       sha1 = "3c79b04091319d4e8be5fb442c596bf500e8493e";
     };
     dependencies = [
-      sources."@textlint/ast-node-types-4.2.5"
-      sources."@textlint/types-1.3.1"
+      sources."@textlint/ast-node-types-4.3.4"
+      sources."@textlint/types-1.4.5"
       sources."adverb-where-0.0.9"
       sources."boundary-1.0.1"
       sources."define-properties-1.1.3"
       sources."e-prime-0.10.4"
+      sources."es-abstract-1.18.0-next.0"
+      sources."es-to-primitive-1.2.1"
       sources."function-bind-1.1.1"
+      sources."has-1.0.3"
       sources."has-symbols-1.0.1"
+      sources."is-callable-1.2.1"
+      sources."is-date-object-1.0.2"
+      sources."is-negative-zero-2.0.0"
+      sources."is-regex-1.1.1"
+      sources."is-symbol-1.0.3"
       sources."no-cliches-0.1.1"
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
-      sources."object.assign-4.1.0"
+      sources."object.assign-4.1.1"
       sources."passive-voice-0.1.0"
+      (sources."string.prototype.trimend-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
+      (sources."string.prototype.trimstart-1.0.1" // {
+        dependencies = [
+          sources."es-abstract-1.17.6"
+        ];
+      })
       sources."structured-source-3.0.2"
       sources."textlint-rule-helper-2.1.1"
       sources."too-wordy-0.1.6"
@@ -81442,13 +89713,13 @@ in
   thelounge = nodeEnv.buildNodePackage {
     name = "thelounge";
     packageName = "thelounge";
-    version = "4.1.0";
+    version = "4.2.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/thelounge/-/thelounge-4.1.0.tgz";
-      sha512 = "ozjuU9/DaxT5r7ivckvdrzTLRoMCOiUlNbEAxldoHD3jzbbCEm561rHkEw0Caek31tOL4y0yqHiFuRBRoGbmiQ==";
+      url = "https://registry.npmjs.org/thelounge/-/thelounge-4.2.0.tgz";
+      sha512 = "5hijX1V/4CrgrkqCqtwP32LSbLPSF/10nneI+2doPHKx7AdCgR52HqWZo0AQEPv4fvOqEOMLJ0c9pL6t/jUDwg==";
     };
     dependencies = [
-      sources."@sindresorhus/is-2.1.1"
+      sources."@sindresorhus/is-3.1.2"
       sources."@szmarczak/http-timer-4.0.5"
       sources."@tokenizer/token-0.1.1"
       sources."@types/cacheable-request-6.0.1"
@@ -81456,14 +89727,19 @@ in
       sources."@types/debug-4.1.5"
       sources."@types/http-cache-semantics-4.0.0"
       sources."@types/keyv-3.1.1"
-      sources."@types/node-14.0.13"
+      sources."@types/node-14.11.1"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
-      sources."abstract-logging-1.0.0"
+      sources."abstract-logging-2.0.0"
       sources."accepts-1.3.7"
       sources."after-0.8.2"
-      sources."agent-base-4.3.0"
-      sources."ajv-6.12.2"
+      (sources."agent-base-6.0.1" // {
+        dependencies = [
+          sources."debug-4.3.0"
+          sources."ms-2.1.2"
+        ];
+      })
+      sources."ajv-6.12.5"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-4.2.1"
       sources."aproba-1.2.0"
@@ -81478,12 +89754,12 @@ in
       sources."array-flatten-1.1.1"
       sources."arraybuffer.slice-0.0.7"
       sources."asn1-0.2.4"
-      sources."asn1.js-5.3.0"
+      sources."asn1.js-5.4.1"
       sources."assert-plus-1.0.0"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."backo2-1.0.2"
       sources."backoff-2.5.0"
       sources."balanced-match-1.0.0"
@@ -81493,6 +89769,7 @@ in
       sources."bcryptjs-2.4.3"
       sources."better-assert-1.0.2"
       sources."blob-0.0.5"
+      sources."block-stream-0.0.9"
       sources."bn.js-4.11.9"
       sources."body-parser-1.19.0"
       sources."boolbase-1.0.0"
@@ -81500,23 +89777,19 @@ in
       sources."buffer-equal-constant-time-1.0.1"
       sources."busboy-0.3.1"
       sources."bytes-3.1.0"
-      sources."cacheable-lookup-2.0.1"
+      sources."cacheable-lookup-5.0.3"
       sources."cacheable-request-7.0.1"
       sources."callsite-1.0.0"
       sources."caseless-0.12.0"
-      sources."chalk-3.0.0"
+      sources."chalk-4.1.0"
       sources."cheerio-1.0.0-rc.3"
       sources."chownr-1.1.4"
-      (sources."clone-response-1.0.2" // {
-        dependencies = [
-          sources."mimic-response-1.0.1"
-        ];
-      })
+      sources."clone-response-1.0.2"
       sources."code-point-at-1.1.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."combined-stream-1.0.8"
-      sources."commander-4.1.0"
+      sources."commander-6.0.0"
       sources."component-bind-1.0.0"
       sources."component-emitter-1.2.1"
       sources."component-inherit-0.0.3"
@@ -81536,7 +89809,11 @@ in
       sources."css-what-2.1.3"
       sources."dashdash-1.14.1"
       sources."debug-2.6.9"
-      sources."decompress-response-5.0.0"
+      (sources."decompress-response-6.0.0" // {
+        dependencies = [
+          sources."mimic-response-3.1.0"
+        ];
+      })
       sources."deep-extend-0.6.0"
       sources."defer-to-connect-2.0.0"
       sources."delayed-stream-1.0.0"
@@ -81572,12 +89849,10 @@ in
       })
       sources."engine.io-parser-2.2.0"
       sources."entities-1.1.2"
-      sources."es6-promise-4.2.8"
-      sources."es6-promisify-5.0.0"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-1.0.5"
       sources."etag-1.8.1"
-      sources."eventemitter3-2.0.3"
+      sources."eventemitter3-4.0.7"
       (sources."express-4.17.1" // {
         dependencies = [
           sources."safe-buffer-5.1.2"
@@ -81587,8 +89862,8 @@ in
       sources."extsprintf-1.4.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
-      sources."fast-text-encoding-1.0.2"
-      sources."file-type-14.1.3"
+      sources."fast-text-encoding-1.0.3"
+      sources."file-type-14.7.1"
       sources."filename-reserved-regex-2.0.0"
       sources."filenamify-4.1.0"
       sources."finalhandler-1.1.2"
@@ -81596,18 +89871,18 @@ in
       sources."form-data-2.3.3"
       sources."forwarded-0.1.2"
       sources."fresh-0.5.2"
-      sources."fs-extra-8.1.0"
       sources."fs-minipass-1.2.7"
       sources."fs.realpath-1.0.0"
+      sources."fstream-1.0.12"
       sources."gauge-2.7.4"
-      sources."get-stream-5.1.0"
+      sources."get-stream-5.2.0"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
-      sources."got-10.6.0"
+      sources."got-11.5.2"
       sources."graceful-fs-4.2.4"
       sources."grapheme-splitter-1.0.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-binary2-1.0.3"
       sources."has-cors-1.1.0"
       sources."has-flag-4.0.0"
@@ -81620,10 +89895,11 @@ in
         ];
       })
       sources."http-signature-1.2.0"
+      sources."http2-wrapper-1.0.0-beta.5.2"
       sources."http_ece-1.1.0"
-      (sources."https-proxy-agent-3.0.1" // {
+      (sources."https-proxy-agent-5.0.0" // {
         dependencies = [
-          sources."debug-3.2.6"
+          sources."debug-4.3.0"
           sources."ms-2.1.2"
         ];
       })
@@ -81635,11 +89911,16 @@ in
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
       sources."ipaddr.js-1.9.1"
-      sources."irc-framework-4.7.0"
+      (sources."irc-framework-4.9.0" // {
+        dependencies = [
+          sources."iconv-lite-0.6.2"
+        ];
+      })
       sources."is-fullwidth-code-point-1.0.0"
       sources."is-typedarray-1.0.0"
       sources."is-utf8-0.2.1"
       sources."isarray-2.0.1"
+      sources."isexe-2.0.0"
       sources."isomorphic-textencoder-1.0.1"
       sources."isstream-0.1.2"
       sources."jsbn-0.1.1"
@@ -81647,28 +89928,27 @@ in
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsonfile-4.0.0"
       (sources."jsprim-1.4.1" // {
         dependencies = [
           sources."extsprintf-1.3.0"
         ];
       })
-      sources."jwa-1.4.1"
-      sources."jws-3.2.2"
-      sources."keyv-4.0.1"
+      sources."jwa-2.0.0"
+      sources."jws-4.0.0"
+      sources."keyv-4.0.3"
       sources."ldap-filter-0.3.3"
-      sources."ldapjs-2.0.0-pre.5"
-      sources."linkify-it-2.2.0"
-      sources."lodash-4.17.15"
+      sources."ldapjs-2.1.1"
+      sources."linkify-it-3.0.2"
+      sources."lodash-4.17.20"
       sources."lowercase-keys-2.0.0"
       sources."media-typer-0.3.0"
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."middleware-handler-0.2.0"
       sources."mime-1.6.0"
-      sources."mime-db-1.43.0"
-      sources."mime-types-2.1.26"
-      sources."mimic-response-2.1.0"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
+      sources."mimic-response-1.0.1"
       sources."minimalistic-assert-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
@@ -81677,14 +89957,22 @@ in
       sources."mkdirp-0.5.5"
       sources."ms-2.0.0"
       sources."mute-stream-0.0.8"
-      sources."nan-2.14.1"
-      (sources."needle-2.5.0" // {
+      (sources."needle-2.5.2" // {
         dependencies = [
           sources."debug-3.2.6"
           sources."ms-2.1.2"
         ];
       })
       sources."negotiator-0.6.2"
+      sources."node-addon-api-2.0.0"
+      sources."node-forge-0.9.1"
+      (sources."node-gyp-3.8.0" // {
+        dependencies = [
+          sources."nopt-3.0.6"
+          sources."semver-5.3.0"
+          sources."tar-2.2.2"
+        ];
+      })
       (sources."node-pre-gyp-0.11.0" // {
         dependencies = [
           sources."semver-5.7.1"
@@ -81707,9 +89995,7 @@ in
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
       sources."p-cancelable-2.0.0"
-      sources."p-event-4.2.0"
       sources."p-finally-1.0.0"
-      sources."p-timeout-3.2.0"
       sources."p-try-2.2.0"
       (sources."package-json-6.5.0" // {
         dependencies = [
@@ -81717,7 +90003,7 @@ in
           sources."@szmarczak/http-timer-1.1.2"
           (sources."cacheable-request-6.1.0" // {
             dependencies = [
-              sources."get-stream-5.1.0"
+              sources."get-stream-5.2.0"
               sources."lowercase-keys-2.0.0"
             ];
           })
@@ -81728,11 +90014,9 @@ in
           sources."json-buffer-3.0.0"
           sources."keyv-3.1.0"
           sources."lowercase-keys-1.0.1"
-          sources."mimic-response-1.0.1"
           sources."p-cancelable-1.1.0"
           sources."responselike-1.0.2"
           sources."semver-6.3.0"
-          sources."to-readable-stream-1.0.0"
         ];
       })
       sources."parse5-3.0.3"
@@ -81752,6 +90036,7 @@ in
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."qs-6.7.0"
+      sources."quick-lru-5.1.1"
       sources."range-parser-1.2.1"
       sources."raw-body-2.4.0"
       sources."rc-1.2.8"
@@ -81759,8 +90044,8 @@ in
       sources."read-chunk-3.2.0"
       sources."readable-stream-3.6.0"
       sources."readable-web-to-node-stream-2.0.0"
-      sources."regenerator-runtime-0.13.5"
-      sources."registry-auth-token-4.1.1"
+      sources."regenerator-runtime-0.13.7"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       (sources."request-2.88.2" // {
         dependencies = [
@@ -81768,12 +90053,13 @@ in
           sources."uuid-3.4.0"
         ];
       })
+      sources."resolve-alpn-1.0.0"
       sources."responselike-2.0.0"
       sources."rimraf-2.7.1"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      sources."semver-7.1.3"
+      sources."semver-7.3.2"
       (sources."send-0.17.1" // {
         dependencies = [
           sources."ms-2.1.1"
@@ -81813,7 +90099,7 @@ in
           sources."ipaddr.js-0.1.3"
         ];
       })
-      sources."sqlite3-4.1.1"
+      sources."sqlite3-5.0.0"
       sources."sshpk-1.16.1"
       sources."statuses-1.5.0"
       sources."streamsearch-0.1.2"
@@ -81822,47 +90108,41 @@ in
       sources."strip-ansi-3.0.1"
       sources."strip-json-comments-2.0.1"
       sources."strip-outer-1.0.1"
-      (sources."strtok3-6.0.2" // {
-        dependencies = [
-          sources."debug-4.2.0"
-          sources."ms-2.1.2"
-        ];
-      })
-      sources."supports-color-7.1.0"
+      sources."strtok3-6.0.4"
+      sources."supports-color-7.2.0"
       sources."tar-4.4.13"
-      sources."tlds-1.207.0"
+      sources."tlds-1.208.0"
       sources."to-array-0.1.4"
-      sources."to-readable-stream-2.1.0"
+      sources."to-readable-stream-1.0.0"
       sources."toidentifier-1.0.0"
       sources."token-types-2.0.0"
       sources."tough-cookie-2.5.0"
       sources."trim-repeated-1.0.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."type-fest-0.10.0"
       sources."type-is-1.6.18"
       sources."typedarray-to-buffer-3.1.5"
       sources."ua-parser-js-0.7.21"
       sources."uc.micro-1.0.6"
-      sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."url-parse-lax-3.0.0"
       sources."urlsafe-base64-1.0.0"
       sources."util-deprecate-1.0.2"
       sources."utils-merge-1.0.1"
-      sources."uuid-7.0.1"
+      sources."uuid-8.3.0"
       sources."vary-1.1.2"
       sources."vasync-2.2.0"
       sources."verror-1.10.0"
-      sources."web-push-3.4.3"
+      sources."web-push-3.4.4"
+      sources."which-1.3.1"
       sources."wide-align-1.1.3"
       sources."with-open-file-0.1.7"
       sources."wrappy-1.0.2"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."yallist-3.1.1"
-      sources."yarn-1.22.0"
+      sources."yarn-1.22.4"
       sources."yeast-0.1.2"
     ];
     buildInputs = globalBuildInputs;
@@ -81878,10 +90158,10 @@ in
   three = nodeEnv.buildNodePackage {
     name = "three";
     packageName = "three";
-    version = "0.117.1";
+    version = "0.120.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/three/-/three-0.117.1.tgz";
-      sha512 = "t4zeJhlNzUIj9+ub0l6nICVimSuRTZJOqvk3Rmlu+YGdTOJ49Wna8p7aumpkXJakJfITiybfpYE1XN1o1Z34UQ==";
+      url = "https://registry.npmjs.org/three/-/three-0.120.1.tgz";
+      sha512 = "ktaCRFUR7JUZcKec+cBRz+oBex5pOVaJhrtxvFF2T7on53o9UkEux+/Nh1g/4zeb4t/pbxIFcADbn/ACu3LC1g==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -81914,39 +90194,40 @@ in
   titanium = nodeEnv.buildNodePackage {
     name = "titanium";
     packageName = "titanium";
-    version = "5.2.2";
+    version = "5.2.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/titanium/-/titanium-5.2.2.tgz";
-      sha512 = "PvlmqvMRwgPReA3tPfExeS1mweQY/KpCIY5+zLP/lp0UEi93wLvSMzqp/5vV5pjK7cwkzhPtc68TszBNM+zv9Q==";
+      url = "https://registry.npmjs.org/titanium/-/titanium-5.2.5.tgz";
+      sha512 = "P2+0coxeYre+1Lf/k2t61W1UwcNhupQy5s5UcpDkbGiRg7EDoYVnkix1H08yg+mfKh14Jm9+6QDDKpEWM+arZQ==";
     };
     dependencies = [
       sources."adm-zip-0.4.13"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."asn1-0.2.4"
       sources."assert-plus-1.0.0"
       sources."async-2.6.3"
       sources."asynckit-0.4.0"
+      sources."at-least-node-1.0.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."bcrypt-pbkdf-1.0.2"
       sources."brace-expansion-1.1.11"
+      sources."buffer-crc32-0.2.13"
       sources."caseless-0.12.0"
       sources."colors-1.3.3"
       sources."combined-stream-1.0.8"
-      sources."commander-2.19.0"
       sources."concat-map-0.0.1"
       sources."core-util-is-1.0.2"
       sources."cycle-1.0.3"
       sources."dashdash-1.14.1"
       sources."delayed-stream-1.0.0"
-      sources."diff-3.5.0"
       sources."ecc-jsbn-0.1.2"
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
       sources."eyes-0.1.8"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
+      sources."fd-slicer-1.1.0"
       (sources."fields-0.1.24" // {
         dependencies = [
           sources."colors-0.6.2"
@@ -81954,13 +90235,13 @@ in
       })
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      sources."fs-extra-7.0.1"
+      sources."fs-extra-9.0.1"
       sources."fs.realpath-1.0.0"
       sources."getpass-0.1.7"
       sources."glob-7.1.6"
       sources."graceful-fs-4.2.4"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."http-signature-1.2.0"
       sources."humanize-0.0.9"
       sources."inflight-1.0.6"
@@ -81971,35 +90252,38 @@ in
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsonfile-4.0.0"
+      sources."jsonfile-6.0.1"
       sources."jsprim-1.4.1"
       sources."keypress-0.2.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
       sources."minimatch-3.0.4"
-      sources."minimist-0.0.10"
-      sources."moment-2.26.0"
-      (sources."node-appc-0.2.49" // {
+      sources."moment-2.28.0"
+      (sources."node-appc-1.1.1" // {
         dependencies = [
-          sources."temp-0.8.4"
+          sources."async-3.2.0"
+          sources."colors-1.4.0"
         ];
       })
       sources."oauth-sign-0.9.0"
       sources."once-1.4.0"
-      sources."optimist-0.6.1"
       sources."path-is-absolute-1.0.1"
+      sources."pend-1.2.0"
       sources."performance-now-2.1.0"
       sources."pkginfo-0.3.1"
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
       sources."qs-6.5.2"
-      sources."request-2.88.0"
+      (sources."request-2.88.0" // {
+        dependencies = [
+          sources."uuid-3.4.0"
+        ];
+      })
       sources."rimraf-2.6.3"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      sources."semver-5.5.1"
-      sources."source-map-0.6.1"
+      sources."semver-7.3.2"
       sources."sprintf-0.1.5"
       sources."sshpk-1.16.1"
       sources."stack-trace-0.0.10"
@@ -82011,10 +90295,9 @@ in
       })
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uglify-js-3.4.10"
-      sources."universalify-0.1.2"
-      sources."uri-js-4.2.2"
-      sources."uuid-3.3.3"
+      sources."universalify-1.0.0"
+      sources."uri-js-4.4.0"
+      sources."uuid-8.3.0"
       sources."verror-1.10.0"
       (sources."winston-1.1.2" // {
         dependencies = [
@@ -82022,9 +90305,9 @@ in
           sources."colors-1.0.3"
         ];
       })
-      sources."wordwrap-0.0.3"
       sources."wrappy-1.0.2"
-      sources."xmldom-0.1.31"
+      sources."xmldom-0.3.0"
+      sources."yauzl-2.10.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -82039,10 +90322,10 @@ in
   triton = nodeEnv.buildNodePackage {
     name = "triton";
     packageName = "triton";
-    version = "7.9.0";
+    version = "7.11.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/triton/-/triton-7.9.0.tgz";
-      sha512 = "PCZVVbdI90e07avgNyBJiw32Q0YIFwqgIW/HFbU5g3Hh/+P5VBJP8TBlkXM27VCM7L3hyCC3z9K8uq9mI8aIVQ==";
+      url = "https://registry.npmjs.org/triton/-/triton-7.11.0.tgz";
+      sha512 = "NycwGp9drvi9uJUo7PCmET470f+ZWzvzJ7d06hcI+Y0LZSLtZN+gxFz+YjLpt14Zifqs/751IcEhp7cCGThBxA==";
     };
     dependencies = [
       sources."asn1-0.2.4"
@@ -82098,7 +90381,7 @@ in
         ];
       })
       sources."keep-alive-agent-0.0.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       (sources."lomstream-1.1.0" // {
         dependencies = [
           sources."assert-plus-0.1.5"
@@ -82111,7 +90394,7 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-0.0.8"
       sources."mkdirp-0.5.1"
-      sources."moment-2.26.0"
+      sources."moment-2.28.0"
       sources."mooremachine-2.3.0"
       sources."mute-stream-0.0.8"
       sources."mv-2.1.1"
@@ -82243,7 +90526,7 @@ in
       sha512 = "N8E1X543CWEjg0/A70ZnA/kfAfAY/uogILsIuWBhHGxzv9kaJaj7/JCSwDiBH86CPEy37chSgW86KxVeYKsswQ==";
     };
     dependencies = [
-      sources."@types/node-6.14.10"
+      sources."@types/node-6.14.12"
       sources."ansi-0.3.1"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
@@ -82309,10 +90592,10 @@ in
   typescript = nodeEnv.buildNodePackage {
     name = "typescript";
     packageName = "typescript";
-    version = "3.9.5";
+    version = "4.0.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz";
-      sha512 = "hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==";
+      url = "https://registry.npmjs.org/typescript/-/typescript-4.0.3.tgz";
+      sha512 = "tEu6DGxGgRJPb/mVPIZ48e69xCn2yRmCgYmDugAVwmJ6o+0u1RI18eO7E7WBTLYLaEVVOhwQmcdhQHweux/WPg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -82363,14 +90646,11 @@ in
   uglify-js = nodeEnv.buildNodePackage {
     name = "uglify-js";
     packageName = "uglify-js";
-    version = "3.9.4";
+    version = "3.10.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.9.4.tgz";
-      sha512 = "8RZBJq5smLOa7KslsNsVcSH+KOXf1uDU8yqLeNuVKwmT0T3FA0ZoXlinQfRad7SDcbZZRZE4ov+2v71EnxNyCA==";
+      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.4.tgz";
+      sha512 = "kBFT3U4Dcj4/pJ52vfjCSfyLyvG9VYYuGYPmrPvAxRw/i7xHiT4VvCev+uiEMcEEiu6UNB6KgWmGtSUYIWScbw==";
     };
-    dependencies = [
-      sources."commander-2.20.3"
-    ];
     buildInputs = globalBuildInputs;
     meta = {
       description = "JavaScript parser, mangler/compressor and beautifier toolkit";
@@ -82384,17 +90664,18 @@ in
   ungit = nodeEnv.buildNodePackage {
     name = "ungit";
     packageName = "ungit";
-    version = "1.5.7";
+    version = "1.5.10";
     src = fetchurl {
-      url = "https://registry.npmjs.org/ungit/-/ungit-1.5.7.tgz";
-      sha512 = "EQAeMXAuWZYpOsSZSEcqxqKShLcGWuCTVExcdyKNvwmw2GR8I/qKg6l8dQENeYB4DC+wzxKJTX054iun+RrvqQ==";
+      url = "https://registry.npmjs.org/ungit/-/ungit-1.5.10.tgz";
+      sha512 = "WLrNg3hngoQJc3Ka1NxbWQMYjFJx013Xd9hNiRvHU1NUFMy8H5/5dT83Wh64gr2CJz5zNQlrqTkrfaWbwS/jEQ==";
     };
     dependencies = [
-      sources."@primer/octicons-9.6.0"
+      sources."@dabh/diagnostics-2.0.2"
+      sources."@primer/octicons-10.1.0"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/color-name-1.1.1"
-      sources."@types/node-13.13.12"
+      sources."@types/node-14.11.1"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       sources."after-0.8.2"
@@ -82407,7 +90688,7 @@ in
       })
       sources."array-flatten-1.1.1"
       sources."arraybuffer.slice-0.0.7"
-      sources."async-2.6.3"
+      sources."async-3.2.0"
       sources."async-limiter-1.0.1"
       sources."backo2-1.0.2"
       sources."balanced-match-1.0.0"
@@ -82415,14 +90696,14 @@ in
       sources."base64id-2.0.0"
       sources."better-assert-1.0.2"
       sources."blob-0.0.5"
-      sources."bluebird-3.7.2"
-      sources."blueimp-md5-2.14.0"
+      sources."blueimp-md5-2.17.0"
       sources."body-parser-1.19.0"
+      sources."bootstrap-3.4.1"
       sources."brace-expansion-1.1.11"
       sources."bytes-3.1.0"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
@@ -82435,7 +90716,6 @@ in
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."color-string-1.5.3"
-      sources."colornames-1.1.1"
       sources."colors-1.4.0"
       sources."colorspace-1.1.2"
       sources."component-bind-1.0.0"
@@ -82456,14 +90736,13 @@ in
       sources."defer-to-connect-1.1.3"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."diagnostics-1.1.1"
       sources."diff-4.0.2"
-      sources."diff2html-3.1.8"
+      sources."diff2html-3.1.13"
       sources."dnd-page-scroll-0.0.4"
       sources."duplexer3-0.1.4"
       sources."ee-first-1.1.1"
       sources."emoji-regex-8.0.0"
-      sources."enabled-1.0.2"
+      sources."enabled-2.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       (sources."engine.io-3.4.2" // {
@@ -82482,7 +90761,6 @@ in
         ];
       })
       sources."engine.io-parser-2.2.0"
-      sources."env-variable-0.0.6"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
       sources."eve-0.5.4"
@@ -82494,15 +90772,16 @@ in
         ];
       })
       sources."fast-safe-stringify-2.0.7"
-      sources."fecha-2.3.3"
+      sources."fecha-4.2.0"
       sources."finalhandler-1.1.2"
       sources."find-up-4.1.0"
+      sources."fn.name-1.1.0"
       sources."forwarded-0.1.2"
       sources."fresh-0.5.2"
       sources."fs.realpath-1.0.0"
       sources."get-caller-file-2.0.5"
       sources."get-stream-4.1.0"
-      sources."getmac-5.2.0"
+      sources."getmac-5.15.0"
       sources."glob-7.1.6"
       sources."got-9.6.0"
       sources."has-binary2-1.0.3"
@@ -82523,9 +90802,9 @@ in
       sources."ini-1.3.5"
       sources."ipaddr.js-1.9.1"
       sources."is-arrayish-0.3.2"
-      sources."is-docker-2.0.0"
+      sources."is-docker-2.1.1"
       sources."is-fullwidth-code-point-3.0.0"
-      sources."is-stream-1.1.0"
+      sources."is-stream-2.0.0"
       sources."is-wsl-2.2.0"
       sources."isarray-2.0.1"
       sources."jquery-3.5.1"
@@ -82534,12 +90813,12 @@ in
       sources."just-detect-adblock-1.0.0"
       sources."keyv-3.1.0"
       sources."knockout-3.5.1"
-      sources."kuler-1.0.1"
+      sources."kuler-2.0.0"
       sources."latest-version-5.1.0"
       sources."locate-path-5.0.0"
       sources."locks-0.2.2"
-      sources."lodash-4.17.15"
-      (sources."logform-2.1.2" // {
+      sources."lodash-4.17.20"
+      (sources."logform-2.2.0" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -82561,10 +90840,10 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-1.0.4"
-      sources."moment-2.25.3"
+      sources."moment-2.27.0"
       sources."ms-2.0.0"
       sources."negotiator-0.6.2"
-      sources."node-cache-5.1.1"
+      sources."node-cache-5.1.2"
       sources."nopt-1.0.10"
       sources."normalize-url-4.5.0"
       sources."nprogress-0.2.0"
@@ -82573,8 +90852,8 @@ in
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
-      sources."one-time-0.0.4"
-      sources."open-7.0.4"
+      sources."one-time-1.0.0"
+      sources."open-7.2.1"
       sources."p-cancelable-1.1.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
@@ -82606,7 +90885,7 @@ in
       sources."raw-body-2.4.0"
       sources."rc-1.2.8"
       sources."readable-stream-3.6.0"
-      sources."registry-auth-token-4.1.1"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
@@ -82679,8 +90958,8 @@ in
       sources."utils-merge-1.0.1"
       sources."vary-1.1.2"
       sources."which-module-2.0.0"
-      sources."winston-3.2.1"
-      (sources."winston-transport-4.3.0" // {
+      sources."winston-3.3.3"
+      (sources."winston-transport-4.4.0" // {
         dependencies = [
           sources."isarray-1.0.0"
           sources."readable-stream-2.3.7"
@@ -82689,11 +90968,11 @@ in
       })
       sources."wrap-ansi-6.2.0"
       sources."wrappy-1.0.2"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xmlhttprequest-ssl-1.5.5"
       sources."y18n-4.0.0"
       sources."yallist-2.1.2"
-      sources."yargs-15.3.1"
+      sources."yargs-15.4.1"
       sources."yargs-parser-18.1.3"
       sources."yeast-0.1.2"
     ];
@@ -82707,6 +90986,271 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  vega-cli = nodeEnv.buildNodePackage {
+    name = "vega-cli";
+    packageName = "vega-cli";
+    version = "5.15.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/vega-cli/-/vega-cli-5.15.0.tgz";
+      sha512 = "1Mv7+T84L6EIPIsC3fslhywNDfguy135EN4uAcFCWhErQXG3yzel2gNyvlsA0ixTAi5oG7mFL6ftkTB6r2CzIw==";
+    };
+    dependencies = [
+      sources."@types/color-name-1.1.1"
+      sources."abbrev-1.1.1"
+      sources."ansi-regex-2.1.1"
+      sources."ansi-styles-4.2.1"
+      sources."aproba-1.2.0"
+      sources."are-we-there-yet-1.1.5"
+      sources."balanced-match-1.0.0"
+      sources."brace-expansion-1.1.11"
+      sources."camelcase-5.3.1"
+      sources."canvas-2.6.1"
+      sources."chownr-1.1.4"
+      (sources."cliui-6.0.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.0"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
+      sources."code-point-at-1.1.0"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."commander-2.20.3"
+      sources."concat-map-0.0.1"
+      sources."console-control-strings-1.1.0"
+      sources."core-util-is-1.0.2"
+      sources."d3-array-2.7.1"
+      sources."d3-color-2.0.0"
+      sources."d3-delaunay-5.3.0"
+      sources."d3-dispatch-2.0.0"
+      sources."d3-dsv-2.0.0"
+      sources."d3-force-2.1.1"
+      sources."d3-format-2.0.0"
+      sources."d3-geo-2.0.1"
+      sources."d3-geo-projection-3.0.0"
+      sources."d3-hierarchy-2.0.0"
+      sources."d3-interpolate-2.0.1"
+      sources."d3-path-2.0.0"
+      sources."d3-quadtree-2.0.0"
+      sources."d3-scale-3.2.2"
+      sources."d3-shape-2.0.0"
+      sources."d3-time-2.0.0"
+      sources."d3-time-format-3.0.0"
+      sources."d3-timer-2.0.0"
+      sources."debug-3.2.6"
+      sources."decamelize-1.2.0"
+      sources."decompress-response-4.2.1"
+      sources."deep-extend-0.6.0"
+      sources."delaunator-4.0.1"
+      sources."delegates-1.0.0"
+      sources."detect-libc-1.0.3"
+      sources."emoji-regex-8.0.0"
+      sources."find-up-4.1.0"
+      sources."fs-minipass-1.2.7"
+      sources."fs.realpath-1.0.0"
+      sources."gauge-2.7.4"
+      sources."get-caller-file-2.0.5"
+      sources."glob-7.1.6"
+      sources."has-unicode-2.0.1"
+      sources."iconv-lite-0.4.24"
+      sources."ignore-walk-3.0.3"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."ini-1.3.5"
+      sources."is-fullwidth-code-point-1.0.0"
+      sources."isarray-1.0.0"
+      sources."locate-path-5.0.0"
+      sources."mimic-response-2.1.0"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."minipass-2.9.0"
+      sources."minizlib-1.3.3"
+      sources."mkdirp-0.5.5"
+      sources."ms-2.1.2"
+      sources."nan-2.14.1"
+      sources."needle-2.5.2"
+      sources."node-fetch-2.6.1"
+      sources."node-pre-gyp-0.11.0"
+      sources."nopt-4.0.3"
+      sources."npm-bundled-1.1.1"
+      sources."npm-normalize-package-bin-1.0.1"
+      sources."npm-packlist-1.4.8"
+      sources."npmlog-4.1.2"
+      sources."number-is-nan-1.0.1"
+      sources."object-assign-4.1.1"
+      sources."once-1.4.0"
+      sources."os-homedir-1.0.2"
+      sources."os-tmpdir-1.0.2"
+      sources."osenv-0.1.5"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-try-2.2.0"
+      sources."path-exists-4.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-parse-1.0.6"
+      sources."process-nextick-args-2.0.1"
+      sources."rc-1.2.8"
+      sources."readable-stream-2.3.7"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."resolve-1.17.0"
+      sources."rimraf-2.7.1"
+      sources."rw-1.3.3"
+      sources."safe-buffer-5.1.2"
+      sources."safer-buffer-2.1.2"
+      sources."sax-1.2.4"
+      sources."semver-5.7.1"
+      sources."set-blocking-2.0.0"
+      sources."signal-exit-3.0.3"
+      sources."simple-concat-1.0.1"
+      sources."simple-get-3.1.0"
+      sources."string-width-1.0.2"
+      sources."string_decoder-1.1.1"
+      sources."strip-ansi-3.0.1"
+      sources."strip-json-comments-2.0.1"
+      sources."tar-4.4.13"
+      sources."topojson-client-3.1.0"
+      sources."util-deprecate-1.0.2"
+      sources."vega-5.15.0"
+      sources."vega-canvas-1.2.4"
+      sources."vega-crossfilter-4.0.4"
+      sources."vega-dataflow-5.7.2"
+      sources."vega-encode-4.8.2"
+      sources."vega-event-selector-2.0.5"
+      sources."vega-expression-2.7.0"
+      sources."vega-force-4.0.6"
+      sources."vega-format-1.0.3"
+      sources."vega-functions-5.7.3"
+      sources."vega-geo-4.3.6"
+      sources."vega-hierarchy-4.0.8"
+      sources."vega-loader-4.3.2"
+      sources."vega-parser-6.0.4"
+      sources."vega-projection-1.4.4"
+      sources."vega-regression-1.0.8"
+      sources."vega-runtime-6.1.2"
+      sources."vega-scale-7.1.0"
+      sources."vega-scenegraph-4.9.1"
+      sources."vega-selections-5.1.3"
+      sources."vega-statistics-1.7.8"
+      sources."vega-time-2.0.3"
+      sources."vega-transforms-4.9.2"
+      sources."vega-typings-0.18.2"
+      sources."vega-util-1.15.1"
+      sources."vega-view-5.8.2"
+      sources."vega-view-transforms-4.5.7"
+      sources."vega-voronoi-4.1.4"
+      sources."vega-wordcloud-4.1.2"
+      sources."which-module-2.0.0"
+      sources."wide-align-1.1.3"
+      (sources."wrap-ansi-6.2.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.0"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."y18n-4.0.0"
+      sources."yallist-3.1.1"
+      (sources."yargs-15.4.1" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.0"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
+      sources."yargs-parser-18.1.3"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Command line utilities for server-side Vega.";
+      homepage = "https://github.com/vega/vega#readme";
+      license = "BSD-3-Clause";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  vega-lite = nodeEnv.buildNodePackage {
+    name = "vega-lite";
+    packageName = "vega-lite";
+    version = "4.15.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/vega-lite/-/vega-lite-4.15.0.tgz";
+      sha512 = "381Kszxei5Rhg8WkcUE7yPHafLndBbdR8nBSJi4zFsn8iAfCVjn7h7QL9DphNix5V7Ko1nhOadxqNaxGsiD71w==";
+    };
+    dependencies = [
+      sources."@types/clone-2.1.0"
+      sources."@types/color-name-1.1.1"
+      sources."@types/fast-json-stable-stringify-2.0.0"
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-4.2.1"
+      sources."array-flat-polyfill-1.0.1"
+      sources."camelcase-5.3.1"
+      sources."cliui-6.0.0"
+      sources."clone-2.1.2"
+      sources."color-convert-2.0.1"
+      sources."color-name-1.1.4"
+      sources."decamelize-1.2.0"
+      sources."emoji-regex-8.0.0"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."find-up-4.1.0"
+      sources."get-caller-file-2.0.5"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."json-stringify-pretty-compact-2.0.0"
+      sources."locate-path-5.0.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-try-2.2.0"
+      sources."path-exists-4.0.0"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."set-blocking-2.0.0"
+      sources."string-width-4.2.0"
+      sources."strip-ansi-6.0.0"
+      sources."tslib-2.0.1"
+      sources."vega-event-selector-2.0.5"
+      sources."vega-expression-2.7.0"
+      sources."vega-util-1.15.1"
+      sources."which-module-2.0.0"
+      sources."wrap-ansi-6.2.0"
+      sources."y18n-4.0.0"
+      sources."yargs-15.4.1"
+      sources."yargs-parser-18.1.3"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Vega-Lite is a concise high-level language for interactive visualization.";
+      homepage = https://vega.github.io/vega-lite/;
+      license = "BSD-3-Clause";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  vim-language-server = nodeEnv.buildNodePackage {
+    name = "vim-language-server";
+    packageName = "vim-language-server";
+    version = "2.1.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/vim-language-server/-/vim-language-server-2.1.0.tgz";
+      sha512 = "i0PTJh2XEPEUvRn78j1nxTlNVcTOKr4FLwIwhkjaC0ovGGViwnBgRd7StM0NS3UCvcVzLNy78Hu31S7RHkiHbw==";
+    };
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "vim language server";
+      homepage = "https://github.com/iamcco/vim-language-server#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   vscode-css-languageserver-bin = nodeEnv.buildNodePackage {
     name = "vscode-css-languageserver-bin";
     packageName = "vscode-css-languageserver-bin";
@@ -82773,6 +91317,867 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  vscode-json-languageserver-bin = nodeEnv.buildNodePackage {
+    name = "vscode-json-languageserver-bin";
+    packageName = "vscode-json-languageserver-bin";
+    version = "1.0.1";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/vscode-json-languageserver-bin/-/vscode-json-languageserver-bin-1.0.1.tgz";
+      sha512 = "WU+Ks0OEo1c4pgFUA4gIockhzlRqWqSRL2NXHOCtYhJnuIqfrNgSyECZC+nCMyn/CnzpPuQQjzC74GWlIRXnZQ==";
+    };
+    dependencies = [
+      sources."agent-base-4.3.0"
+      sources."debug-3.1.0"
+      sources."es6-promise-4.2.8"
+      sources."es6-promisify-5.0.0"
+      sources."http-proxy-agent-2.1.0"
+      sources."https-proxy-agent-2.2.4"
+      sources."jsonc-parser-1.0.3"
+      sources."ms-2.0.0"
+      (sources."request-light-0.2.5" // {
+        dependencies = [
+          sources."vscode-nls-4.1.2"
+        ];
+      })
+      (sources."vscode-json-languageservice-3.8.4" // {
+        dependencies = [
+          sources."jsonc-parser-2.3.1"
+          sources."vscode-nls-5.0.0"
+          sources."vscode-uri-2.1.2"
+        ];
+      })
+      sources."vscode-jsonrpc-3.5.0"
+      sources."vscode-languageserver-3.5.1"
+      (sources."vscode-languageserver-protocol-3.5.1" // {
+        dependencies = [
+          sources."vscode-languageserver-types-3.5.0"
+        ];
+      })
+      sources."vscode-languageserver-textdocument-1.0.1"
+      sources."vscode-languageserver-types-3.16.0-next.2"
+      sources."vscode-nls-2.0.2"
+      sources."vscode-uri-1.0.8"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "JSON language server";
+      homepage = "https://github.com/vscode-langservers/vscode-json-languageserver-bin#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  "vscode-lldb-build-deps-../../misc/vscode-extensions/vscode-lldb/build-deps" = nodeEnv.buildNodePackage {
+    name = "vscode-lldb";
+    packageName = "vscode-lldb";
+    version = "1.5.3";
+    src = ../../misc/vscode-extensions/vscode-lldb/build-deps;
+    dependencies = [
+      sources."@types/json5-0.0.30"
+      sources."@types/mocha-7.0.2"
+      sources."@types/node-8.10.64"
+      sources."@types/vscode-1.49.0"
+      sources."@types/yauzl-2.9.1"
+      sources."@webassemblyjs/ast-1.9.0"
+      sources."@webassemblyjs/floating-point-hex-parser-1.9.0"
+      sources."@webassemblyjs/helper-api-error-1.9.0"
+      sources."@webassemblyjs/helper-buffer-1.9.0"
+      sources."@webassemblyjs/helper-code-frame-1.9.0"
+      sources."@webassemblyjs/helper-fsm-1.9.0"
+      sources."@webassemblyjs/helper-module-context-1.9.0"
+      sources."@webassemblyjs/helper-wasm-bytecode-1.9.0"
+      sources."@webassemblyjs/helper-wasm-section-1.9.0"
+      sources."@webassemblyjs/ieee754-1.9.0"
+      sources."@webassemblyjs/leb128-1.9.0"
+      sources."@webassemblyjs/utf8-1.9.0"
+      sources."@webassemblyjs/wasm-edit-1.9.0"
+      sources."@webassemblyjs/wasm-gen-1.9.0"
+      sources."@webassemblyjs/wasm-opt-1.9.0"
+      sources."@webassemblyjs/wasm-parser-1.9.0"
+      sources."@webassemblyjs/wast-parser-1.9.0"
+      sources."@webassemblyjs/wast-printer-1.9.0"
+      sources."@xtuc/ieee754-1.2.0"
+      sources."@xtuc/long-4.2.2"
+      sources."acorn-6.4.1"
+      sources."ajv-6.12.5"
+      sources."ajv-errors-1.0.1"
+      sources."ajv-keywords-3.5.2"
+      sources."ansi-colors-3.2.3"
+      sources."ansi-regex-3.0.0"
+      sources."ansi-styles-3.2.1"
+      sources."anymatch-3.1.1"
+      sources."aproba-1.2.0"
+      sources."argparse-1.0.10"
+      sources."arr-diff-4.0.0"
+      sources."arr-flatten-1.1.0"
+      sources."arr-union-3.1.0"
+      sources."array-unique-0.3.2"
+      (sources."asn1.js-5.4.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (sources."assert-1.5.0" // {
+        dependencies = [
+          sources."inherits-2.0.1"
+          sources."util-0.10.3"
+        ];
+      })
+      sources."assign-symbols-1.0.0"
+      sources."async-each-1.0.3"
+      sources."atob-2.1.2"
+      sources."azure-devops-node-api-7.2.0"
+      sources."balanced-match-1.0.0"
+      (sources."base-0.11.2" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+        ];
+      })
+      sources."base64-js-1.3.1"
+      sources."big.js-5.2.2"
+      sources."binary-extensions-2.1.0"
+      sources."bindings-1.5.0"
+      sources."bluebird-3.7.2"
+      sources."bn.js-5.1.3"
+      sources."boolbase-1.0.0"
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."brorand-1.1.0"
+      sources."browser-stdout-1.3.1"
+      sources."browserify-aes-1.2.0"
+      sources."browserify-cipher-1.0.1"
+      sources."browserify-des-1.0.2"
+      (sources."browserify-rsa-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      (sources."browserify-sign-4.2.1" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+          sources."safe-buffer-5.2.1"
+          sources."string_decoder-1.3.0"
+        ];
+      })
+      sources."browserify-zlib-0.2.0"
+      (sources."buffer-4.9.2" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+        ];
+      })
+      sources."buffer-crc32-0.2.13"
+      sources."buffer-from-1.1.1"
+      sources."buffer-xor-1.0.3"
+      sources."builtin-status-codes-3.0.0"
+      (sources."cacache-12.0.4" // {
+        dependencies = [
+          sources."glob-7.1.6"
+        ];
+      })
+      sources."cache-base-1.0.1"
+      sources."camelcase-5.3.1"
+      (sources."chalk-2.4.2" // {
+        dependencies = [
+          sources."supports-color-5.5.0"
+        ];
+      })
+      sources."cheerio-1.0.0-rc.3"
+      sources."chokidar-3.3.0"
+      sources."chownr-1.1.4"
+      sources."chrome-trace-event-1.0.2"
+      sources."cipher-base-1.0.4"
+      (sources."class-utils-0.3.6" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-buffer-1.1.6"
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      (sources."cliui-5.0.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."collection-visit-1.0.0"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."commander-2.20.3"
+      sources."commondir-1.0.1"
+      sources."component-emitter-1.3.0"
+      sources."concat-map-0.0.1"
+      (sources."concat-stream-1.6.2" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+          sources."readable-stream-2.3.7"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."console-browserify-1.2.0"
+      sources."constants-browserify-1.0.0"
+      sources."copy-concurrently-1.0.5"
+      sources."copy-descriptor-0.1.1"
+      sources."core-util-is-1.0.2"
+      (sources."create-ecdh-4.0.4" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."create-hash-1.2.0"
+      sources."create-hmac-1.1.7"
+      sources."cross-spawn-6.0.5"
+      sources."crypto-browserify-3.12.0"
+      sources."css-select-1.2.0"
+      sources."css-what-2.1.3"
+      sources."cyclist-1.0.1"
+      sources."debug-3.2.6"
+      sources."decamelize-1.2.0"
+      sources."decode-uri-component-0.2.0"
+      sources."define-properties-1.1.3"
+      sources."define-property-2.0.2"
+      sources."denodeify-1.2.1"
+      sources."des.js-1.0.1"
+      sources."detect-file-1.0.0"
+      sources."diff-3.5.0"
+      (sources."diffie-hellman-5.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."dom-serializer-0.1.1"
+      sources."domain-browser-1.2.0"
+      sources."domelementtype-1.3.1"
+      sources."domhandler-2.4.2"
+      sources."domutils-1.5.1"
+      (sources."duplexify-3.7.1" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+          sources."readable-stream-2.3.7"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      (sources."elliptic-6.5.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."emoji-regex-7.0.3"
+      sources."emojis-list-3.0.0"
+      sources."end-of-stream-1.4.4"
+      sources."enhanced-resolve-4.3.0"
+      sources."entities-1.1.2"
+      sources."errno-0.1.7"
+      sources."es-abstract-1.17.6"
+      sources."es-to-primitive-1.2.1"
+      sources."escape-string-regexp-1.0.5"
+      sources."eslint-scope-4.0.3"
+      sources."esprima-4.0.1"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      sources."estraverse-4.3.0"
+      sources."events-3.2.0"
+      sources."evp_bytestokey-1.0.3"
+      (sources."expand-brackets-2.1.4" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-buffer-1.1.6"
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."expand-tilde-2.0.2"
+      (sources."extend-shallow-3.0.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      (sources."extglob-2.0.4" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fd-slicer-1.1.0"
+      sources."figgy-pudding-3.5.2"
+      sources."file-uri-to-path-1.0.0"
+      sources."fill-range-7.0.1"
+      sources."find-cache-dir-2.1.0"
+      sources."find-up-3.0.0"
+      (sources."findup-sync-3.0.0" // {
+        dependencies = [
+          sources."braces-2.3.2"
+          sources."extend-shallow-2.0.1"
+          sources."fill-range-4.0.0"
+          sources."is-buffer-1.1.6"
+          sources."is-number-3.0.0"
+          sources."kind-of-3.2.2"
+          sources."micromatch-3.1.10"
+          sources."to-regex-range-2.1.1"
+        ];
+      })
+      sources."flat-4.1.0"
+      (sources."flush-write-stream-1.1.1" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+          sources."readable-stream-2.3.7"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."for-in-1.0.2"
+      sources."fragment-cache-0.2.1"
+      (sources."from2-2.3.0" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+          sources."readable-stream-2.3.7"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."fs-write-stream-atomic-1.0.10"
+      sources."fs.realpath-1.0.0"
+      sources."fsevents-2.1.3"
+      sources."function-bind-1.1.1"
+      sources."get-caller-file-2.0.5"
+      sources."get-value-2.0.6"
+      sources."glob-7.1.3"
+      sources."glob-parent-5.1.1"
+      (sources."global-modules-2.0.0" // {
+        dependencies = [
+          sources."global-prefix-3.0.0"
+        ];
+      })
+      sources."global-prefix-1.0.2"
+      sources."graceful-fs-4.2.4"
+      sources."growl-1.10.5"
+      sources."has-1.0.3"
+      sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.1"
+      sources."has-value-1.0.0"
+      (sources."has-values-1.0.0" // {
+        dependencies = [
+          sources."is-buffer-1.1.6"
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."kind-of-4.0.0"
+        ];
+      })
+      (sources."hash-base-3.1.0" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+          sources."safe-buffer-5.2.1"
+          sources."string_decoder-1.3.0"
+        ];
+      })
+      sources."hash.js-1.1.7"
+      sources."he-1.2.0"
+      sources."hmac-drbg-1.0.1"
+      sources."homedir-polyfill-1.0.3"
+      (sources."htmlparser2-3.10.1" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+          sources."safe-buffer-5.2.1"
+          sources."string_decoder-1.3.0"
+        ];
+      })
+      sources."https-browserify-1.0.0"
+      sources."ieee754-1.1.13"
+      sources."iferr-0.1.5"
+      sources."import-local-2.0.0"
+      sources."imurmurhash-0.1.4"
+      sources."infer-owner-1.0.4"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."ini-1.3.5"
+      sources."interpret-1.4.0"
+      sources."is-accessor-descriptor-1.0.0"
+      sources."is-binary-path-2.1.0"
+      sources."is-buffer-2.0.4"
+      sources."is-callable-1.2.1"
+      sources."is-data-descriptor-1.0.0"
+      sources."is-date-object-1.0.2"
+      sources."is-descriptor-1.0.2"
+      sources."is-extendable-0.1.1"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-2.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-number-7.0.0"
+      sources."is-plain-object-2.0.4"
+      sources."is-regex-1.1.1"
+      sources."is-symbol-1.0.3"
+      sources."is-windows-1.0.2"
+      sources."is-wsl-1.1.0"
+      sources."isarray-0.0.1"
+      sources."isexe-2.0.0"
+      sources."isobject-3.0.1"
+      sources."js-yaml-3.13.1"
+      sources."json-parse-better-errors-1.0.2"
+      sources."json-schema-traverse-0.4.1"
+      sources."json5-2.1.3"
+      sources."kind-of-6.0.3"
+      sources."leven-3.1.0"
+      sources."linkify-it-2.2.0"
+      sources."loader-runner-2.4.0"
+      (sources."loader-utils-1.4.0" // {
+        dependencies = [
+          sources."json5-1.0.1"
+        ];
+      })
+      sources."locate-path-3.0.0"
+      sources."lodash-4.17.20"
+      sources."log-symbols-3.0.0"
+      sources."lru-cache-5.1.1"
+      sources."make-dir-2.1.0"
+      sources."map-cache-0.2.2"
+      sources."map-visit-1.0.0"
+      (sources."markdown-it-10.0.0" // {
+        dependencies = [
+          sources."entities-2.0.3"
+        ];
+      })
+      sources."md5.js-1.3.5"
+      sources."mdurl-1.0.1"
+      (sources."memory-fs-0.5.0" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+          sources."readable-stream-2.3.7"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."memory-streams-0.1.3"
+      sources."micromatch-4.0.2"
+      (sources."miller-rabin-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."mime-1.6.0"
+      sources."minimalistic-assert-1.0.1"
+      sources."minimalistic-crypto-utils-1.0.1"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."mississippi-3.0.0"
+      (sources."mixin-deep-1.3.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      sources."mkdirp-0.5.5"
+      sources."mocha-7.2.0"
+      sources."move-concurrently-1.0.1"
+      sources."ms-2.1.1"
+      sources."mute-stream-0.0.8"
+      sources."nan-2.14.1"
+      sources."nanomatch-1.2.13"
+      sources."neo-async-2.6.2"
+      sources."nice-try-1.0.5"
+      sources."node-environment-flags-1.0.6"
+      (sources."node-libs-browser-2.2.1" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+          sources."punycode-1.4.1"
+          (sources."readable-stream-2.3.7" // {
+            dependencies = [
+              sources."string_decoder-1.1.1"
+            ];
+          })
+          sources."safe-buffer-5.2.1"
+          sources."string_decoder-1.3.0"
+        ];
+      })
+      sources."normalize-path-3.0.0"
+      sources."nth-check-1.0.2"
+      sources."object-assign-4.1.1"
+      (sources."object-copy-0.1.0" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          sources."is-accessor-descriptor-0.1.6"
+          sources."is-buffer-1.1.6"
+          sources."is-data-descriptor-0.1.4"
+          (sources."is-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-5.1.0"
+            ];
+          })
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."object-inspect-1.8.0"
+      sources."object-keys-1.1.1"
+      sources."object-visit-1.0.1"
+      sources."object.assign-4.1.0"
+      sources."object.getownpropertydescriptors-2.1.0"
+      sources."object.pick-1.3.0"
+      sources."once-1.4.0"
+      sources."os-0.1.1"
+      sources."os-browserify-0.3.0"
+      sources."os-homedir-1.0.2"
+      sources."os-tmpdir-1.0.2"
+      sources."osenv-0.1.5"
+      sources."p-limit-2.3.0"
+      sources."p-locate-3.0.0"
+      sources."p-try-2.2.0"
+      sources."pako-1.0.11"
+      (sources."parallel-transform-1.2.0" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+          sources."readable-stream-2.3.7"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."parse-asn1-5.1.6"
+      sources."parse-passwd-1.0.0"
+      sources."parse-semver-1.1.1"
+      sources."parse5-3.0.3"
+      sources."pascalcase-0.1.1"
+      sources."path-browserify-0.0.1"
+      sources."path-dirname-1.0.2"
+      sources."path-exists-3.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-key-2.0.1"
+      sources."pbkdf2-3.1.1"
+      sources."pend-1.2.0"
+      sources."picomatch-2.2.2"
+      sources."pify-4.0.1"
+      sources."pkg-dir-3.0.0"
+      sources."posix-character-classes-0.1.1"
+      sources."process-0.11.10"
+      sources."process-nextick-args-2.0.1"
+      sources."promise-inflight-1.0.1"
+      sources."prr-1.0.1"
+      (sources."public-encrypt-4.0.3" // {
+        dependencies = [
+          sources."bn.js-4.11.9"
+        ];
+      })
+      sources."pump-3.0.0"
+      (sources."pumpify-1.5.1" // {
+        dependencies = [
+          sources."pump-2.0.1"
+        ];
+      })
+      sources."punycode-2.1.1"
+      sources."querystring-0.2.0"
+      sources."querystring-es3-0.2.1"
+      sources."randombytes-2.1.0"
+      sources."randomfill-1.0.4"
+      sources."read-1.0.7"
+      sources."readable-stream-1.0.34"
+      sources."readdirp-3.2.0"
+      sources."regex-not-1.0.2"
+      sources."remove-trailing-separator-1.1.0"
+      sources."repeat-element-1.1.3"
+      sources."repeat-string-1.6.1"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."resolve-cwd-2.0.0"
+      (sources."resolve-dir-1.0.1" // {
+        dependencies = [
+          sources."global-modules-1.0.0"
+        ];
+      })
+      sources."resolve-from-3.0.0"
+      sources."resolve-url-0.2.1"
+      sources."ret-0.1.15"
+      sources."rimraf-2.7.1"
+      sources."ripemd160-2.0.2"
+      sources."run-queue-1.0.3"
+      sources."safe-buffer-5.1.2"
+      sources."safe-regex-1.1.0"
+      sources."safer-buffer-2.1.2"
+      sources."schema-utils-1.0.0"
+      sources."semver-5.7.1"
+      sources."serialize-javascript-4.0.0"
+      sources."set-blocking-2.0.0"
+      (sources."set-value-2.0.1" // {
+        dependencies = [
+          sources."extend-shallow-2.0.1"
+        ];
+      })
+      sources."setimmediate-1.0.5"
+      sources."sha.js-2.4.11"
+      sources."shebang-command-1.2.0"
+      sources."shebang-regex-1.0.0"
+      (sources."snapdragon-0.8.2" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."define-property-0.2.5"
+          sources."extend-shallow-2.0.1"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-buffer-1.1.6"
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+          sources."ms-2.0.0"
+          sources."source-map-0.5.7"
+        ];
+      })
+      (sources."snapdragon-node-2.1.1" // {
+        dependencies = [
+          sources."define-property-1.0.0"
+        ];
+      })
+      (sources."snapdragon-util-3.0.1" // {
+        dependencies = [
+          sources."is-buffer-1.1.6"
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."source-list-map-2.0.1"
+      sources."source-map-0.6.1"
+      sources."source-map-resolve-0.5.3"
+      sources."source-map-support-0.5.19"
+      sources."source-map-url-0.4.0"
+      sources."split-string-3.1.0"
+      sources."sprintf-js-1.0.3"
+      sources."ssri-6.0.1"
+      (sources."static-extend-0.1.2" // {
+        dependencies = [
+          sources."define-property-0.2.5"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-buffer-1.1.6"
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-descriptor-0.1.6"
+          sources."kind-of-5.1.0"
+        ];
+      })
+      (sources."stream-browserify-2.0.2" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+          sources."readable-stream-2.3.7"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."stream-each-1.2.3"
+      (sources."stream-http-2.8.3" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+          sources."readable-stream-2.3.7"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."stream-shift-1.0.1"
+      sources."string-argv-0.3.1"
+      sources."string-width-2.1.1"
+      sources."string.prototype.trimend-1.0.1"
+      sources."string.prototype.trimstart-1.0.1"
+      sources."string_decoder-0.10.31"
+      sources."strip-ansi-4.0.0"
+      sources."strip-json-comments-2.0.1"
+      sources."supports-color-6.0.0"
+      sources."tapable-1.1.3"
+      sources."terser-4.8.0"
+      sources."terser-webpack-plugin-1.4.5"
+      (sources."through2-2.0.5" // {
+        dependencies = [
+          sources."isarray-1.0.0"
+          sources."readable-stream-2.3.7"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."timers-browserify-2.0.11"
+      sources."tmp-0.0.29"
+      sources."to-arraybuffer-1.0.1"
+      (sources."to-object-path-0.3.0" // {
+        dependencies = [
+          sources."is-buffer-1.1.6"
+          sources."kind-of-3.2.2"
+        ];
+      })
+      sources."to-regex-3.0.2"
+      sources."to-regex-range-5.0.1"
+      (sources."ts-loader-6.2.2" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."tslib-1.13.0"
+      sources."tty-browserify-0.0.0"
+      sources."tunnel-0.0.4"
+      sources."typed-rest-client-1.2.0"
+      sources."typedarray-0.0.6"
+      sources."typescript-3.9.7"
+      sources."uc.micro-1.0.6"
+      sources."underscore-1.8.3"
+      sources."union-value-1.0.1"
+      sources."unique-filename-1.1.1"
+      sources."unique-slug-2.0.2"
+      (sources."unset-value-1.0.0" // {
+        dependencies = [
+          (sources."has-value-0.3.1" // {
+            dependencies = [
+              sources."isobject-2.1.0"
+            ];
+          })
+          sources."has-values-0.1.4"
+          sources."isarray-1.0.0"
+        ];
+      })
+      sources."upath-1.2.0"
+      sources."uri-js-4.4.0"
+      sources."urix-0.1.0"
+      (sources."url-0.11.0" // {
+        dependencies = [
+          sources."punycode-1.3.2"
+        ];
+      })
+      sources."url-join-1.1.0"
+      sources."use-3.1.1"
+      (sources."util-0.11.1" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."util-deprecate-1.0.2"
+      sources."v8-compile-cache-2.1.1"
+      sources."vm-browserify-1.1.2"
+      sources."vsce-1.79.5"
+      sources."vscode-debugadapter-testsupport-1.41.0"
+      sources."vscode-debugprotocol-1.41.0"
+      (sources."watchpack-1.7.4" // {
+        dependencies = [
+          sources."chokidar-3.4.2"
+          sources."readdirp-3.4.0"
+        ];
+      })
+      (sources."watchpack-chokidar2-2.0.0" // {
+        dependencies = [
+          sources."anymatch-2.0.0"
+          sources."binary-extensions-1.13.1"
+          sources."braces-2.3.2"
+          sources."chokidar-2.1.8"
+          sources."extend-shallow-2.0.1"
+          sources."fill-range-4.0.0"
+          sources."fsevents-1.2.13"
+          sources."glob-parent-3.1.0"
+          sources."is-binary-path-1.0.1"
+          sources."is-buffer-1.1.6"
+          sources."is-glob-3.1.0"
+          sources."is-number-3.0.0"
+          sources."isarray-1.0.0"
+          sources."kind-of-3.2.2"
+          sources."micromatch-3.1.10"
+          sources."normalize-path-2.1.1"
+          sources."readable-stream-2.3.7"
+          sources."readdirp-2.2.1"
+          sources."string_decoder-1.1.1"
+          sources."to-regex-range-2.1.1"
+        ];
+      })
+      (sources."webpack-4.44.2" // {
+        dependencies = [
+          (sources."braces-2.3.2" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          (sources."fill-range-4.0.0" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          sources."is-buffer-1.1.6"
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."isarray-1.0.0"
+          sources."memory-fs-0.4.1"
+          sources."micromatch-3.1.10"
+          sources."readable-stream-2.3.7"
+          sources."string_decoder-1.1.1"
+          sources."to-regex-range-2.1.1"
+        ];
+      })
+      (sources."webpack-cli-3.3.12" // {
+        dependencies = [
+          sources."supports-color-6.1.0"
+        ];
+      })
+      sources."webpack-sources-1.4.3"
+      sources."which-1.3.1"
+      sources."which-module-2.0.0"
+      sources."wide-align-1.1.3"
+      sources."worker-farm-1.7.0"
+      (sources."wrap-ansi-5.1.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.0"
+      sources."yallist-3.1.1"
+      (sources."yargs-13.3.2" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."yargs-parser-13.1.2"
+      sources."yargs-unparser-1.6.0"
+      sources."yauzl-2.10.0"
+      sources."yazl-2.5.1"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   vue-cli = nodeEnv.buildNodePackage {
     name = "vue-cli";
     packageName = "vue-cli";
@@ -82783,7 +92188,7 @@ in
     };
     dependencies = [
       sources."absolute-0.0.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."ansi-escapes-3.2.0"
       sources."ansi-red-0.1.1"
       sources."ansi-regex-3.0.0"
@@ -82799,11 +92204,11 @@ in
       sources."async-2.6.3"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."bl-1.2.2"
+      sources."bl-1.2.3"
       sources."bluebird-3.7.2"
       sources."brace-expansion-1.1.11"
       sources."buffer-5.6.0"
@@ -82882,11 +92287,10 @@ in
       sources."glob-7.1.6"
       sources."got-6.7.1"
       sources."graceful-fs-4.2.4"
-      sources."graceful-readlink-1.0.1"
       sources."gray-matter-2.1.1"
       sources."handlebars-4.7.6"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       (sources."has-ansi-2.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -82924,7 +92328,7 @@ in
       sources."jsonfile-2.4.0"
       sources."jsprim-1.4.1"
       sources."klaw-1.3.1"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."log-symbols-2.2.0"
       sources."lowercase-keys-1.0.1"
       (sources."make-dir-1.3.0" // {
@@ -82949,7 +92353,7 @@ in
       sources."mkdirp-0.5.5"
       sources."multimatch-2.1.0"
       sources."mute-stream-0.0.7"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       (sources."npm-conf-1.1.3" // {
         dependencies = [
           sources."pify-3.0.0"
@@ -82985,14 +92389,10 @@ in
       sources."restore-cursor-2.0.0"
       sources."rimraf-2.7.1"
       sources."run-async-2.4.1"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.3"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
-      (sources."seek-bzip-1.0.5" // {
-        dependencies = [
-          sources."commander-2.8.1"
-        ];
-      })
+      sources."seek-bzip-1.0.6"
       sources."semver-5.7.1"
       sources."signal-exit-3.0.3"
       sources."source-map-0.6.1"
@@ -83031,12 +92431,12 @@ in
       sources."tslib-1.13.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uglify-js-3.9.4"
+      sources."uglify-js-3.10.4"
       sources."uid-0.0.2"
       sources."unbzip2-stream-1.4.3"
       sources."unyield-0.0.1"
       sources."unzip-response-2.0.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."url-parse-lax-1.0.0"
       sources."url-to-options-1.0.1"
       sources."user-home-2.0.0"
@@ -83072,9 +92472,9 @@ in
       sha512 = "/dd2bJLxOmX8Ie0EPTlmU+F8cxAekn/1m8K9OAFoijm4fc8SdHznFUUEKuz2RMMhsaL5+rccj8xLFAJELYNbaA==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      sources."@babel/highlight-7.10.1"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
       sources."@emmetio/extract-abbreviation-0.1.6"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
@@ -83090,14 +92490,14 @@ in
       sources."@starptech/rehype-webparser-0.10.0"
       sources."@starptech/webparser-0.10.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-14.0.13"
+      sources."@types/node-14.11.1"
       sources."@types/unist-2.0.3"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
       sources."abbrev-1.1.1"
       sources."acorn-6.4.1"
-      sources."acorn-jsx-5.2.0"
-      sources."ajv-6.12.2"
+      sources."acorn-jsx-5.3.1"
+      sources."ajv-6.12.5"
       sources."ajv-keywords-2.1.1"
       (sources."ansi-align-3.0.0" // {
         dependencies = [
@@ -83142,7 +92542,7 @@ in
           sources."define-property-1.0.0"
         ];
       })
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."bootstrap-vue-helper-json-1.1.1"
       (sources."boxen-3.2.0" // {
         dependencies = [
@@ -83164,7 +92564,7 @@ in
       sources."cache-base-1.0.1"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."lowercase-keys-2.0.0"
         ];
       })
@@ -83213,7 +92613,7 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."cli-boxes-2.2.0"
+      sources."cli-boxes-2.2.1"
       sources."cli-cursor-2.1.0"
       sources."cli-width-2.2.1"
       sources."cliui-4.1.0"
@@ -83269,7 +92669,7 @@ in
       sources."dir-glob-2.0.0"
       sources."dlv-1.1.3"
       sources."doctrine-3.0.0"
-      sources."dot-prop-4.2.0"
+      sources."dot-prop-4.2.1"
       sources."duplexer3-0.1.4"
       sources."editorconfig-0.15.3"
       sources."element-helper-json-2.0.6"
@@ -83280,30 +92680,34 @@ in
       (sources."eslint-5.16.0" // {
         dependencies = [
           sources."cross-spawn-6.0.5"
-          sources."debug-4.2.0"
+          sources."debug-4.3.0"
           sources."ignore-4.0.6"
         ];
       })
       (sources."eslint-plugin-vue-6.2.2" // {
         dependencies = [
-          sources."acorn-7.2.0"
-          sources."debug-4.2.0"
-          sources."eslint-scope-5.1.0"
+          sources."acorn-7.4.0"
+          sources."debug-4.3.0"
+          sources."eslint-scope-5.1.1"
           sources."espree-6.2.1"
           sources."vue-eslint-parser-7.1.0"
         ];
       })
       sources."eslint-scope-4.0.3"
       sources."eslint-utils-1.4.3"
-      sources."eslint-visitor-keys-1.2.0"
+      sources."eslint-visitor-keys-1.3.0"
       sources."espree-5.0.1"
       sources."esprima-4.0.1"
       (sources."esquery-1.3.1" // {
         dependencies = [
-          sources."estraverse-5.1.0"
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
       sources."estraverse-4.3.0"
       sources."esutils-2.0.3"
       sources."execa-0.7.0"
@@ -83401,14 +92805,14 @@ in
       sources."has-yarn-2.1.0"
       sources."hast-util-embedded-1.0.5"
       sources."hast-util-has-property-1.0.4"
-      sources."hast-util-is-body-ok-link-1.0.3"
-      sources."hast-util-is-element-1.0.4"
+      sources."hast-util-is-body-ok-link-1.0.4"
+      sources."hast-util-is-element-1.1.0"
       sources."hast-util-parse-selector-2.2.4"
-      sources."hast-util-to-string-1.0.3"
+      sources."hast-util-to-string-1.0.4"
       sources."hast-util-whitespace-1.0.4"
       sources."hosted-git-info-2.8.8"
       sources."html-void-elements-1.0.5"
-      sources."html-whitespace-sensitive-tag-names-1.0.2"
+      sources."html-whitespace-sensitive-tag-names-1.0.3"
       sources."http-cache-semantics-4.1.0"
       sources."iconv-lite-0.4.24"
       sources."ignore-3.3.10"
@@ -83468,7 +92872,7 @@ in
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
-      (sources."js-beautify-1.11.0" // {
+      (sources."js-beautify-1.13.0" // {
         dependencies = [
           sources."mkdirp-1.0.4"
         ];
@@ -83489,13 +92893,13 @@ in
       sources."load-json-file-4.0.0"
       sources."load-plugin-2.3.1"
       sources."locate-path-2.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.assign-4.2.0"
       sources."lodash.defaults-4.2.0"
       sources."lodash.iteratee-4.7.0"
       sources."lodash.merge-4.6.2"
       sources."lodash.unescape-4.0.1"
-      sources."loglevel-1.6.8"
+      sources."loglevel-1.7.0"
       (sources."loglevel-colored-level-prefix-1.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -83544,7 +92948,7 @@ in
       sources."nanomatch-1.2.13"
       sources."natural-compare-1.4.0"
       sources."nice-try-1.0.5"
-      sources."nopt-4.0.3"
+      sources."nopt-5.0.0"
       sources."normalize-package-data-2.5.0"
       sources."normalize-path-3.0.0"
       sources."normalize-url-4.5.0"
@@ -83581,7 +92985,6 @@ in
         ];
       })
       sources."os-tmpdir-1.0.2"
-      sources."osenv-0.1.5"
       sources."p-cancelable-1.1.0"
       sources."p-defer-1.0.0"
       sources."p-finally-1.0.0"
@@ -83680,7 +93083,7 @@ in
       sources."regenerator-runtime-0.11.1"
       sources."regex-not-1.0.2"
       sources."regexpp-2.0.1"
-      sources."registry-auth-token-4.1.1"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       sources."rehype-sort-attribute-values-2.0.1"
       (sources."remark-5.1.0" // {
@@ -83716,7 +93119,7 @@ in
       sources."run-async-2.4.1"
       sources."rx-lite-4.0.8"
       sources."rx-lite-aggregates-4.0.8"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.3"
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
@@ -83775,7 +93178,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."split-string-3.1.0"
       sources."sprintf-js-1.0.3"
       sources."stampit-1.2.0"
@@ -83834,9 +93237,10 @@ in
           sources."yargs-parser-2.4.1"
         ];
       })
-      (sources."stylus-0.54.7" // {
+      (sources."stylus-0.54.8" // {
         dependencies = [
           sources."debug-3.1.0"
+          sources."mkdirp-1.0.4"
           sources."ms-2.0.0"
           sources."semver-6.3.0"
           sources."source-map-0.7.3"
@@ -83876,7 +93280,7 @@ in
       sources."type-check-0.3.2"
       sources."type-fest-0.3.1"
       sources."typedarray-0.0.6"
-      sources."typescript-3.9.5"
+      sources."typescript-3.9.7"
       (sources."typescript-eslint-parser-16.0.1" // {
         dependencies = [
           sources."semver-5.5.0"
@@ -83929,14 +93333,14 @@ in
       })
       sources."untildify-2.1.0"
       sources."update-notifier-3.0.1"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."url-parse-lax-3.0.0"
       sources."use-3.1.1"
       sources."user-home-2.0.0"
       sources."util-deprecate-1.0.2"
       sources."validate-npm-package-license-3.0.4"
-      sources."vfile-4.1.1"
+      sources."vfile-4.2.0"
       sources."vfile-location-2.0.6"
       sources."vfile-message-2.0.4"
       (sources."vfile-reporter-6.0.1" // {
@@ -83951,8 +93355,9 @@ in
       })
       sources."vfile-sort-2.2.2"
       sources."vfile-statistics-1.1.4"
-      (sources."vscode-css-languageservice-4.2.0" // {
+      (sources."vscode-css-languageservice-4.3.4" // {
         dependencies = [
+          sources."vscode-languageserver-types-3.16.0-next.2"
           sources."vscode-uri-2.1.2"
         ];
       })
@@ -83962,12 +93367,12 @@ in
       sources."vscode-languageserver-protocol-3.15.3"
       sources."vscode-languageserver-textdocument-1.0.1"
       sources."vscode-languageserver-types-3.15.1"
-      sources."vscode-nls-4.1.2"
+      sources."vscode-nls-5.0.0"
       sources."vscode-textbuffer-1.0.0"
       sources."vscode-uri-1.0.8"
       (sources."vue-eslint-parser-6.0.5" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."debug-4.3.0"
         ];
       })
       sources."vue-onsenui-helper-json-1.0.2"
@@ -84014,15 +93419,15 @@ in
   web-ext = nodeEnv.buildNodePackage {
     name = "web-ext";
     packageName = "web-ext";
-    version = "4.2.0";
+    version = "5.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/web-ext/-/web-ext-4.2.0.tgz";
-      sha512 = "WM03BEeC7CVw4PV8lwXKO6ag00MYdwMMe1SAJJfxz0uNMbTu7cYoH6Ia+e2DnAzpeOJLKCeL1IXvgxZSwVp4/Q==";
+      url = "https://registry.npmjs.org/web-ext/-/web-ext-5.1.0.tgz";
+      sha512 = "Eupjwvif/9P4uGdZIddJziLLLD/RuzW8r8HEANGCW8e3dlPV4GJu5z815k9DLVshG0v+q/stUPR968Q2p7hhMQ==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      (sources."@babel/highlight-7.10.1" // {
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      (sources."@babel/highlight-7.10.4" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           sources."chalk-2.4.2"
@@ -84032,47 +93437,41 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@babel/polyfill-7.7.0"
-      sources."@babel/runtime-7.7.7"
-      sources."@babel/runtime-corejs3-7.10.2"
+      sources."@babel/polyfill-7.11.5"
+      sources."@babel/runtime-7.11.2"
       sources."@cliqz-oss/firefox-client-0.3.1"
       sources."@cliqz-oss/node-firefox-connect-1.2.1"
+      (sources."@eslint/eslintrc-0.1.3" // {
+        dependencies = [
+          sources."debug-4.3.0"
+          sources."ms-2.1.2"
+        ];
+      })
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/color-name-1.1.1"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.0.13"
+      sources."@types/node-14.11.1"
       sources."JSONSelect-0.2.1"
-      sources."acorn-6.4.1"
-      sources."acorn-jsx-5.2.0"
+      sources."acorn-7.4.0"
+      sources."acorn-jsx-5.3.1"
       sources."adbkit-2.11.1"
       sources."adbkit-logcat-1.1.0"
       sources."adbkit-monkey-1.0.1"
-      (sources."addons-linter-1.23.0" // {
-        dependencies = [
-          sources."@babel/runtime-7.9.2"
-          sources."decamelize-1.2.0"
-          sources."yargs-15.3.1"
-        ];
-      })
-      sources."adm-zip-0.4.14"
-      sources."ajv-6.12.0"
-      sources."ajv-keywords-1.5.1"
+      sources."addons-linter-2.5.0"
+      sources."adm-zip-0.4.16"
+      sources."ajv-6.12.5"
       sources."ajv-merge-patch-4.1.0"
-      (sources."ansi-align-3.0.0" // {
-        dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
-        ];
-      })
-      sources."ansi-escapes-3.2.0"
+      sources."ansi-align-3.0.0"
+      sources."ansi-colors-4.1.1"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-4.2.1"
       sources."any-promise-1.3.0"
-      sources."anymatch-2.0.0"
+      (sources."anymatch-3.1.1" // {
+        dependencies = [
+          sources."normalize-path-3.0.0"
+        ];
+      })
       (sources."archiver-2.1.1" // {
         dependencies = [
           sources."async-2.6.3"
@@ -84106,18 +93505,11 @@ in
       sources."async-0.2.10"
       sources."async-each-1.0.3"
       sources."asynckit-0.4.0"
+      sources."at-least-node-1.0.0"
       sources."atob-2.1.2"
       sources."atomic-sleep-1.0.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
-      (sources."babel-code-frame-6.26.0" // {
-        dependencies = [
-          sources."ansi-styles-2.2.1"
-          sources."chalk-1.1.3"
-          sources."js-tokens-3.0.2"
-          sources."supports-color-2.0.0"
-        ];
-      })
+      sources."aws4-1.10.1"
       sources."balanced-match-1.0.0"
       (sources."base-0.11.2" // {
         dependencies = [
@@ -84126,9 +93518,9 @@ in
       })
       sources."base64-js-1.3.1"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."binary-extensions-1.13.1"
+      sources."binary-extensions-2.1.0"
       sources."bindings-1.5.0"
-      (sources."bl-1.2.2" // {
+      (sources."bl-1.2.3" // {
         dependencies = [
           (sources."readable-stream-2.3.7" // {
             dependencies = [
@@ -84144,14 +93536,19 @@ in
       })
       sources."bluebird-2.9.34"
       sources."boolbase-1.0.0"
-      sources."boxen-4.2.0"
-      sources."brace-expansion-1.1.11"
-      (sources."braces-2.3.2" // {
+      (sources."boxen-4.2.0" // {
         dependencies = [
-          sources."extend-shallow-2.0.1"
-          sources."is-extendable-0.1.1"
+          sources."ansi-regex-5.0.0"
+          sources."camelcase-5.3.1"
+          sources."chalk-3.0.0"
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.0"
+          sources."strip-ansi-6.0.0"
         ];
       })
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
       sources."buffer-5.6.0"
       sources."buffer-alloc-1.2.0"
       sources."buffer-alloc-unsafe-1.1.0"
@@ -84159,34 +93556,30 @@ in
       sources."buffer-equal-constant-time-1.0.1"
       sources."buffer-fill-1.0.0"
       sources."buffer-from-1.1.1"
-      sources."bunyan-1.8.12"
+      sources."bunyan-1.8.14"
       sources."cache-base-1.0.1"
       (sources."cacheable-request-6.1.0" // {
         dependencies = [
           sources."lowercase-keys-2.0.0"
         ];
       })
-      sources."caller-path-0.1.0"
-      sources."callsites-0.2.0"
-      sources."camelcase-5.3.1"
+      sources."callsites-3.1.0"
+      sources."camelcase-6.0.0"
       sources."caseless-0.12.0"
-      sources."chalk-3.0.0"
-      sources."chardet-0.7.0"
+      sources."chalk-4.1.0"
       sources."cheerio-1.0.0-rc.3"
-      (sources."chokidar-2.1.8" // {
+      (sources."chokidar-3.4.2" // {
         dependencies = [
-          sources."fsevents-1.2.13"
           sources."normalize-path-3.0.0"
         ];
       })
-      (sources."chrome-launcher-0.13.1" // {
+      (sources."chrome-launcher-0.13.4" // {
         dependencies = [
           sources."mkdirp-0.5.5"
           sources."rimraf-3.0.2"
         ];
       })
       sources."ci-info-2.0.0"
-      sources."circular-json-0.3.3"
       (sources."class-utils-0.3.6" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -84204,19 +93597,18 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."cli-boxes-2.2.0"
-      sources."cli-cursor-2.1.0"
-      sources."cli-width-2.2.1"
+      sources."cli-boxes-2.2.1"
       (sources."cliui-6.0.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.0"
           sources."strip-ansi-6.0.0"
         ];
       })
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
-      sources."co-4.6.0"
-      sources."code-point-at-1.1.0"
       sources."collection-visit-1.0.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
@@ -84244,7 +93636,6 @@ in
       sources."configstore-5.0.1"
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.11"
-      sources."core-js-pure-3.6.5"
       sources."core-util-is-1.0.2"
       sources."crc-3.8.0"
       (sources."crc32-stream-2.0.0" // {
@@ -84254,36 +93645,29 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      (sources."cross-spawn-6.0.5" // {
-        dependencies = [
-          sources."semver-5.7.1"
-        ];
-      })
+      sources."cross-spawn-7.0.3"
       sources."crypto-random-string-2.0.0"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
-      sources."d-1.0.1"
       sources."dashdash-1.14.1"
       sources."debounce-1.2.0"
       sources."debug-2.6.9"
-      sources."decamelize-3.2.0"
+      sources."decamelize-4.0.0"
       sources."decode-uri-component-0.2.0"
       sources."decompress-response-3.3.0"
       sources."deep-equal-1.1.1"
       sources."deep-extend-0.6.0"
       sources."deep-is-0.1.3"
-      sources."deepcopy-2.0.0"
+      sources."deepcopy-2.1.0"
       sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
       sources."defer-to-connect-1.1.3"
       sources."define-properties-1.1.3"
       sources."define-property-2.0.2"
       sources."delayed-stream-1.0.0"
-      (sources."dispensary-0.51.2" // {
+      (sources."dispensary-0.55.0" // {
         dependencies = [
           sources."async-3.2.0"
-          sources."decamelize-1.2.0"
-          sources."yargs-15.3.1"
         ];
       })
       sources."doctrine-3.0.0"
@@ -84291,125 +93675,60 @@ in
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.5.1"
-      sources."dot-prop-5.2.0"
+      sources."dot-prop-5.3.0"
       sources."dtrace-provider-0.8.8"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ecdsa-sig-formatter-1.0.11"
-      sources."emoji-regex-8.0.0"
+      sources."emoji-regex-7.0.3"
       sources."end-of-stream-1.4.4"
+      sources."enquirer-2.3.6"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
-      sources."es5-ext-0.10.53"
       sources."es6-error-4.1.1"
-      sources."es6-iterator-2.0.3"
-      sources."es6-map-0.1.5"
       sources."es6-promise-2.3.0"
-      sources."es6-promisify-6.1.0"
-      (sources."es6-set-0.1.5" // {
-        dependencies = [
-          sources."es6-symbol-3.1.1"
-        ];
-      })
-      sources."es6-symbol-3.1.3"
-      sources."es6-weak-map-2.0.3"
+      sources."es6-promisify-6.1.1"
+      sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
-      sources."escope-3.6.0"
-      (sources."eslint-5.16.0" // {
+      (sources."eslint-7.9.0" // {
         dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."debug-4.2.0"
-          sources."espree-5.0.1"
-          sources."has-flag-3.0.0"
-          sources."mkdirp-0.5.5"
+          sources."ansi-regex-5.0.0"
+          sources."debug-4.3.0"
+          sources."eslint-visitor-keys-1.3.0"
           sources."ms-2.1.2"
-          sources."semver-5.7.1"
-          sources."strip-ansi-4.0.0"
-          sources."strip-json-comments-2.0.1"
-          sources."supports-color-5.5.0"
+          sources."strip-ansi-6.0.0"
         ];
       })
-      (sources."eslint-plugin-no-unsafe-innerhtml-1.0.16" // {
+      sources."eslint-plugin-no-unsanitized-3.1.2"
+      sources."eslint-scope-5.1.1"
+      (sources."eslint-utils-2.1.0" // {
         dependencies = [
-          sources."acorn-5.7.4"
-          (sources."acorn-jsx-3.0.1" // {
-            dependencies = [
-              sources."acorn-3.3.0"
-            ];
-          })
-          sources."ajv-4.11.8"
-          sources."ansi-escapes-1.4.0"
-          sources."ansi-regex-3.0.0"
-          sources."ansi-styles-2.2.1"
-          sources."chalk-1.1.3"
-          sources."cli-cursor-1.0.2"
-          sources."doctrine-2.1.0"
-          sources."eslint-3.19.0"
-          sources."espree-3.5.4"
-          sources."figures-1.7.0"
-          sources."file-entry-cache-2.0.0"
-          sources."flat-cache-1.3.4"
-          sources."globals-9.18.0"
-          sources."ignore-3.3.10"
-          sources."inquirer-0.12.0"
-          sources."is-fullwidth-code-point-1.0.0"
-          sources."mkdirp-0.5.5"
-          sources."onetime-1.1.0"
-          sources."progress-1.1.8"
-          sources."restore-cursor-1.0.1"
-          sources."run-async-0.1.0"
-          sources."slice-ansi-0.0.4"
-          sources."string-width-1.0.2"
-          sources."strip-ansi-4.0.0"
-          sources."strip-bom-3.0.0"
-          sources."strip-json-comments-2.0.1"
-          sources."supports-color-2.0.0"
-          (sources."table-3.8.3" // {
-            dependencies = [
-              sources."is-fullwidth-code-point-2.0.0"
-              sources."string-width-2.1.1"
-            ];
-          })
-          sources."write-0.2.1"
+          sources."eslint-visitor-keys-1.3.0"
         ];
       })
-      sources."eslint-scope-4.0.3"
-      sources."eslint-utils-1.4.3"
-      sources."eslint-visitor-keys-1.1.0"
-      (sources."espree-6.2.1" // {
+      sources."eslint-visitor-keys-2.0.0"
+      (sources."espree-7.3.0" // {
         dependencies = [
-          sources."acorn-7.2.0"
+          sources."eslint-visitor-keys-1.3.0"
         ];
       })
       sources."esprima-4.0.1"
       (sources."esquery-1.3.1" // {
         dependencies = [
-          sources."estraverse-5.1.0"
+          sources."estraverse-5.2.0"
         ];
       })
-      sources."esrecurse-4.2.1"
-      sources."estraverse-4.3.0"
-      sources."esutils-2.0.3"
-      sources."event-emitter-0.3.5"
-      sources."event-to-promise-0.8.0"
-      (sources."execa-4.0.2" // {
+      (sources."esrecurse-4.3.0" // {
         dependencies = [
-          sources."cross-spawn-7.0.3"
-          sources."mimic-fn-2.1.0"
-          sources."onetime-5.1.0"
-          sources."path-key-3.1.1"
-          sources."shebang-command-2.0.0"
-          sources."shebang-regex-3.0.0"
-          sources."which-2.0.2"
+          sources."estraverse-5.2.0"
         ];
       })
-      sources."exit-hook-1.1.1"
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
+      sources."event-to-promise-0.8.0"
+      sources."execa-4.0.3"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -84425,27 +93744,19 @@ in
             ];
           })
           sources."is-descriptor-0.1.6"
-          sources."is-extendable-0.1.1"
           sources."kind-of-5.1.0"
         ];
       })
-      (sources."ext-1.4.0" // {
-        dependencies = [
-          sources."type-2.0.0"
-        ];
-      })
       sources."extend-3.0.2"
-      sources."extend-shallow-3.0.2"
-      (sources."external-editor-3.1.0" // {
+      (sources."extend-shallow-3.0.2" // {
         dependencies = [
-          sources."tmp-0.0.33"
+          sources."is-extendable-1.0.1"
         ];
       })
       (sources."extglob-2.0.4" // {
         dependencies = [
           sources."define-property-1.0.0"
           sources."extend-shallow-2.0.1"
-          sources."is-extendable-0.1.1"
         ];
       })
       sources."extsprintf-1.3.0"
@@ -84460,22 +93771,17 @@ in
       sources."fast-redact-2.0.0"
       sources."fast-safe-stringify-2.0.7"
       sources."fd-slicer-1.1.0"
-      sources."figures-2.0.0"
       sources."file-entry-cache-5.0.1"
       sources."file-uri-to-path-1.0.0"
-      (sources."fill-range-4.0.0" // {
-        dependencies = [
-          sources."extend-shallow-2.0.1"
-          sources."is-extendable-0.1.1"
-        ];
-      })
+      sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
-      (sources."firefox-profile-1.3.1" // {
+      (sources."firefox-profile-2.0.0" // {
         dependencies = [
           sources."async-2.5.0"
+          sources."fs-extra-4.0.3"
         ];
       })
-      sources."first-chunk-stream-3.0.0"
+      sources."first-chunk-stream-4.0.0"
       sources."flat-cache-2.0.1"
       sources."flatstr-1.0.12"
       sources."flatted-2.0.2"
@@ -84485,38 +93791,31 @@ in
       sources."form-data-2.3.3"
       sources."fragment-cache-0.2.1"
       sources."fs-constants-1.0.0"
-      sources."fs-extra-4.0.3"
+      (sources."fs-extra-9.0.1" // {
+        dependencies = [
+          sources."jsonfile-6.0.1"
+          sources."universalify-1.0.0"
+        ];
+      })
       sources."fs.realpath-1.0.0"
-      sources."fsevents-2.1.2"
+      sources."fsevents-2.1.3"
       sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
-      (sources."fx-runner-1.0.11" // {
+      (sources."fx-runner-1.0.13" // {
         dependencies = [
           sources."commander-2.9.0"
           sources."isexe-1.1.2"
           sources."which-1.2.4"
         ];
       })
-      sources."generate-function-2.3.1"
-      sources."generate-object-property-1.2.0"
       sources."get-caller-file-2.0.5"
-      sources."get-stream-5.1.0"
+      sources."get-stream-5.2.0"
       sources."get-value-2.0.6"
       sources."getpass-0.1.7"
-      (sources."git-rev-sync-2.0.0" // {
-        dependencies = [
-          sources."graceful-fs-4.1.15"
-          sources."shelljs-0.7.7"
-        ];
-      })
       sources."glob-7.1.6"
-      (sources."glob-parent-3.1.0" // {
-        dependencies = [
-          sources."is-glob-3.1.0"
-        ];
-      })
+      sources."glob-parent-5.1.1"
       sources."global-dirs-2.0.1"
-      sources."globals-11.12.0"
+      sources."globals-12.4.0"
       (sources."got-9.6.0" // {
         dependencies = [
           sources."get-stream-4.1.0"
@@ -84526,14 +93825,18 @@ in
       sources."graceful-readlink-1.0.1"
       sources."growly-1.3.0"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       sources."has-1.0.3"
-      sources."has-ansi-2.0.0"
       sources."has-flag-4.0.0"
       sources."has-symbols-1.0.1"
       sources."has-value-1.0.0"
       (sources."has-values-1.0.0" // {
         dependencies = [
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
           sources."kind-of-4.0.0"
         ];
       })
@@ -84542,76 +93845,41 @@ in
       sources."http-cache-semantics-4.1.0"
       sources."http-signature-1.2.0"
       sources."human-signals-1.1.1"
-      sources."iconv-lite-0.4.24"
       sources."ieee754-1.1.13"
       sources."ignore-4.0.6"
-      (sources."import-fresh-3.2.1" // {
-        dependencies = [
-          sources."resolve-from-4.0.0"
-        ];
-      })
+      sources."import-fresh-3.2.1"
       sources."import-lazy-2.1.0"
       sources."imurmurhash-0.1.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      (sources."inquirer-6.5.2" // {
-        dependencies = [
-          sources."ansi-regex-3.0.0"
-          sources."ansi-styles-3.2.1"
-          sources."chalk-2.4.2"
-          sources."color-convert-1.9.3"
-          sources."color-name-1.1.3"
-          sources."has-flag-3.0.0"
-          sources."is-fullwidth-code-point-2.0.0"
-          (sources."string-width-2.1.1" // {
-            dependencies = [
-              sources."strip-ansi-4.0.0"
-            ];
-          })
-          (sources."strip-ansi-5.2.0" // {
-            dependencies = [
-              sources."ansi-regex-4.1.0"
-            ];
-          })
-          sources."supports-color-5.5.0"
-        ];
-      })
-      sources."interpret-1.4.0"
       sources."invert-kv-3.0.1"
       sources."is-absolute-0.1.7"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-arguments-1.0.4"
       sources."is-arrayish-0.2.1"
-      sources."is-binary-path-1.0.1"
+      sources."is-binary-path-2.1.0"
       sources."is-buffer-1.1.6"
-      sources."is-callable-1.2.0"
+      sources."is-callable-1.2.1"
       sources."is-ci-2.0.0"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
-      sources."is-docker-2.0.0"
-      sources."is-extendable-1.0.1"
+      sources."is-docker-2.1.1"
+      sources."is-extendable-0.1.1"
       sources."is-extglob-2.1.1"
-      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
       sources."is-installed-globally-0.3.2"
       sources."is-mergeable-object-1.1.1"
-      sources."is-my-ip-valid-1.0.0"
-      sources."is-my-json-valid-2.20.0"
+      sources."is-negative-zero-2.0.0"
       sources."is-npm-4.0.0"
-      (sources."is-number-3.0.0" // {
-        dependencies = [
-          sources."kind-of-3.2.2"
-        ];
-      })
+      sources."is-number-7.0.0"
       sources."is-obj-2.0.0"
       sources."is-path-inside-3.0.2"
       sources."is-plain-object-2.0.4"
-      sources."is-property-1.0.2"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-relative-0.1.3"
-      sources."is-resolvable-1.1.0"
       sources."is-stream-2.0.0"
       sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
@@ -84634,12 +93902,10 @@ in
       sources."json-parse-better-errors-1.0.2"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
-      sources."json-stable-stringify-1.0.1"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonfile-4.0.0"
       sources."jsonify-0.0.0"
-      sources."jsonpointer-4.0.1"
       (sources."jsonwebtoken-8.5.1" // {
         dependencies = [
           sources."ms-2.1.2"
@@ -84661,11 +93927,11 @@ in
         ];
       })
       sources."lcid-3.1.1"
-      sources."levn-0.3.0"
+      sources."levn-0.4.1"
       sources."lighthouse-logger-1.2.0"
       sources."lines-and-columns-1.1.6"
       sources."locate-path-5.0.0"
-      sources."lodash-4.17.15"
+      sources."lodash-4.17.20"
       sources."lodash.includes-4.3.0"
       sources."lodash.isboolean-3.0.3"
       sources."lodash.isinteger-4.0.4"
@@ -84684,26 +93950,44 @@ in
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."marky-1.2.1"
-      sources."mdn-browser-compat-data-1.0.15"
-      (sources."mem-5.1.1" // {
+      sources."mdn-browser-compat-data-1.0.35"
+      sources."mem-5.1.1"
+      sources."merge-stream-2.0.0"
+      (sources."micromatch-3.1.10" // {
         dependencies = [
-          sources."mimic-fn-2.1.0"
+          (sources."braces-2.3.2" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          (sources."fill-range-4.0.0" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."to-regex-range-2.1.1"
         ];
       })
-      sources."merge-stream-2.0.0"
-      sources."micromatch-3.1.10"
       sources."mime-db-1.44.0"
       sources."mime-types-2.1.27"
-      sources."mimic-fn-1.2.0"
+      sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      sources."mixin-deep-1.3.2"
-      sources."mkdirp-1.0.3"
-      sources."moment-2.26.0"
+      (sources."mixin-deep-1.3.2" // {
+        dependencies = [
+          sources."is-extendable-1.0.1"
+        ];
+      })
+      sources."mkdirp-1.0.4"
+      sources."moment-2.28.0"
       sources."ms-2.0.0"
       sources."multimatch-4.0.0"
-      sources."mute-stream-0.0.7"
       (sources."mv-2.1.1" // {
         dependencies = [
           sources."glob-6.0.4"
@@ -84717,24 +94001,18 @@ in
       sources."natural-compare-1.4.0"
       sources."natural-compare-lite-1.4.0"
       sources."ncp-2.0.0"
-      sources."neo-async-2.6.1"
-      sources."next-tick-1.0.0"
-      sources."nice-try-1.0.5"
+      sources."neo-async-2.6.2"
+      sources."next-tick-1.1.0"
       sources."node-forge-0.7.6"
-      (sources."node-notifier-6.0.0" // {
+      (sources."node-notifier-8.0.0" // {
         dependencies = [
-          sources."semver-6.3.0"
+          sources."uuid-8.3.0"
         ];
       })
       sources."normalize-path-2.1.1"
       sources."normalize-url-4.5.0"
-      (sources."npm-run-path-4.0.1" // {
-        dependencies = [
-          sources."path-key-3.1.1"
-        ];
-      })
+      sources."npm-run-path-4.0.1"
       sources."nth-check-1.0.2"
-      sources."number-is-nan-1.0.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
       (sources."object-copy-0.1.0" // {
@@ -84750,20 +94028,22 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-is-1.1.2"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
-      sources."object.assign-4.1.0"
+      (sources."object.assign-4.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."object.pick-1.3.0"
       sources."once-1.4.0"
-      sources."onetime-2.0.1"
-      sources."open-7.0.0"
-      sources."optionator-0.8.3"
-      sources."os-homedir-1.0.2"
+      sources."onetime-5.1.2"
+      sources."open-7.1.0"
+      sources."optionator-0.9.1"
       sources."os-locale-5.0.0"
       sources."os-shim-0.1.3"
-      sources."os-tmpdir-1.0.2"
       sources."p-cancelable-1.1.0"
       sources."p-defer-1.0.0"
       sources."p-is-promise-2.1.0"
@@ -84776,27 +94056,21 @@ in
         ];
       })
       sources."pako-1.0.11"
-      (sources."parent-module-1.0.1" // {
-        dependencies = [
-          sources."callsites-3.1.0"
-        ];
-      })
-      sources."parse-json-5.0.0"
+      sources."parent-module-1.0.1"
+      sources."parse-json-5.0.1"
       sources."parse5-3.0.3"
       sources."pascalcase-0.1.1"
       sources."path-dirname-1.0.2"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
-      sources."path-is-inside-1.0.2"
-      sources."path-key-2.0.1"
-      sources."path-parse-1.0.6"
+      sources."path-key-3.1.1"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
-      sources."pino-6.0.0"
-      sources."pino-std-serializers-2.4.2"
-      sources."pluralize-1.2.1"
+      sources."picomatch-2.2.2"
+      sources."pino-6.6.1"
+      sources."pino-std-serializers-2.5.0"
       sources."posix-character-classes-0.1.1"
-      (sources."postcss-7.0.27" // {
+      (sources."postcss-7.0.32" // {
         dependencies = [
           sources."ansi-styles-3.2.1"
           (sources."chalk-2.4.2" // {
@@ -84810,7 +94084,7 @@ in
           sources."supports-color-6.1.0"
         ];
       })
-      sources."prelude-ls-1.1.2"
+      sources."prelude-ls-1.2.1"
       sources."prepend-http-2.0.0"
       sources."probe-image-size-5.0.0"
       sources."process-nextick-args-2.0.1"
@@ -84818,6 +94092,7 @@ in
       sources."psl-1.8.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
+      sources."pupa-2.0.1"
       sources."qs-6.5.2"
       sources."quick-format-unescaped-4.0.1"
       (sources."rc-1.2.8" // {
@@ -84826,25 +94101,12 @@ in
         ];
       })
       sources."readable-stream-3.6.0"
-      (sources."readdirp-2.2.1" // {
-        dependencies = [
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string_decoder-1.1.1"
-        ];
-      })
-      (sources."readline2-1.0.1" // {
-        dependencies = [
-          sources."is-fullwidth-code-point-1.0.0"
-          sources."mute-stream-0.0.5"
-        ];
-      })
-      sources."rechoir-0.6.2"
-      sources."regenerator-runtime-0.13.5"
+      sources."readdirp-3.4.0"
+      sources."regenerator-runtime-0.13.7"
       sources."regex-not-1.0.2"
       sources."regexp.prototype.flags-1.3.0"
-      sources."regexpp-2.0.1"
-      sources."registry-auth-token-4.1.1"
+      sources."regexpp-3.1.0"
+      sources."registry-auth-token-4.2.0"
       sources."registry-url-5.1.0"
       (sources."relaxed-json-1.0.3" // {
         dependencies = [
@@ -84862,23 +94124,17 @@ in
       sources."request-2.88.2"
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
-      sources."require-uncached-1.0.3"
-      sources."resolve-1.17.0"
-      sources."resolve-from-1.0.1"
+      sources."resolve-from-4.0.0"
       sources."resolve-url-0.2.1"
       sources."responselike-1.0.2"
-      sources."restore-cursor-2.0.0"
       sources."ret-0.1.15"
       sources."rimraf-2.6.3"
-      sources."run-async-2.4.1"
-      sources."rx-lite-3.1.2"
-      sources."rxjs-6.5.5"
       sources."safe-buffer-5.2.1"
       sources."safe-json-stringify-1.2.0"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      sources."semver-7.1.3"
+      sources."semver-7.3.2"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -84888,22 +94144,16 @@ in
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
-          sources."is-extendable-0.1.1"
         ];
       })
       sources."sha.js-2.4.11"
-      sources."shebang-command-1.2.0"
-      sources."shebang-regex-1.0.0"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
       sources."shell-quote-1.6.1"
-      sources."shelljs-0.7.8"
       sources."shellwords-0.1.1"
-      (sources."sign-addon-2.0.5" // {
+      (sources."sign-addon-3.1.0" // {
         dependencies = [
-          sources."core-js-3.6.4"
-          sources."es6-promisify-6.0.2"
-          sources."punycode-1.4.1"
-          sources."request-2.88.0"
-          sources."tough-cookie-2.4.3"
+          sources."core-js-3.6.5"
         ];
       })
       sources."signal-exit-3.0.3"
@@ -84912,7 +94162,6 @@ in
           sources."ansi-styles-3.2.1"
           sources."color-convert-1.9.3"
           sources."color-name-1.1.3"
-          sources."is-fullwidth-code-point-2.0.0"
         ];
       })
       (sources."snapdragon-0.8.2" // {
@@ -84930,7 +94179,6 @@ in
             ];
           })
           sources."is-descriptor-0.1.6"
-          sources."is-extendable-0.1.1"
           sources."kind-of-5.1.0"
           sources."source-map-0.5.7"
         ];
@@ -84945,10 +94193,10 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."sonic-boom-1.0.1"
+      sources."sonic-boom-1.1.0"
       sources."source-map-0.6.1"
       sources."source-map-resolve-0.5.3"
-      sources."source-map-support-0.5.16"
+      sources."source-map-support-0.5.19"
       sources."source-map-url-0.4.0"
       sources."spawn-sync-1.0.15"
       sources."split-0.3.3"
@@ -84974,39 +94222,28 @@ in
       })
       sources."stream-parser-0.3.1"
       sources."stream-to-array-2.3.0"
-      (sources."stream-to-promise-2.2.0" // {
-        dependencies = [
-          sources."end-of-stream-1.1.0"
-          sources."once-1.3.3"
-        ];
-      })
-      (sources."string-width-4.2.0" // {
+      sources."stream-to-promise-3.0.0"
+      (sources."string-width-3.1.0" // {
         dependencies = [
-          sources."ansi-regex-5.0.0"
-          sources."strip-ansi-6.0.0"
+          sources."ansi-regex-4.1.0"
+          sources."strip-ansi-5.2.0"
         ];
       })
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-3.0.1"
       sources."strip-bom-4.0.0"
       sources."strip-bom-buf-2.0.0"
-      sources."strip-bom-stream-4.0.0"
-      sources."strip-final-newline-2.0.0"
-      sources."strip-json-comments-3.0.1"
-      sources."supports-color-7.1.0"
-      (sources."table-5.4.6" // {
+      (sources."strip-bom-stream-4.0.0" // {
         dependencies = [
-          sources."ansi-regex-4.1.0"
-          sources."emoji-regex-7.0.3"
-          sources."is-fullwidth-code-point-2.0.0"
-          sources."string-width-3.1.0"
-          sources."strip-ansi-5.2.0"
+          sources."first-chunk-stream-3.0.0"
         ];
       })
+      sources."strip-final-newline-2.0.0"
+      sources."strip-json-comments-3.1.1"
+      sources."supports-color-7.2.0"
+      sources."table-5.4.6"
       (sources."tar-stream-1.6.2" // {
         dependencies = [
           sources."readable-stream-2.3.7"
@@ -85016,10 +94253,14 @@ in
       })
       sources."term-size-2.2.0"
       sources."text-table-0.2.0"
-      sources."thenify-3.3.0"
+      sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
       sources."through-2.3.8"
-      sources."tmp-0.1.0"
+      (sources."tmp-0.2.1" // {
+        dependencies = [
+          sources."rimraf-3.0.2"
+        ];
+      })
       sources."to-buffer-1.1.1"
       (sources."to-object-path-0.3.0" // {
         dependencies = [
@@ -85028,25 +94269,19 @@ in
       })
       sources."to-readable-stream-1.0.0"
       sources."to-regex-3.0.2"
-      sources."to-regex-range-2.1.1"
+      sources."to-regex-range-5.0.1"
       sources."tosource-1.0.0"
       sources."tough-cookie-2.5.0"
       sources."tr46-2.0.2"
       sources."traverse-0.4.6"
-      sources."tslib-1.13.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."type-1.2.0"
-      sources."type-check-0.3.2"
+      sources."type-check-0.4.0"
       sources."type-detect-4.0.8"
       sources."type-fest-0.8.1"
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
-      (sources."union-value-1.0.1" // {
-        dependencies = [
-          sources."is-extendable-0.1.1"
-        ];
-      })
+      sources."union-value-1.0.1"
       sources."unique-string-2.0.0"
       sources."universalify-0.1.2"
       (sources."unset-value-1.0.0" // {
@@ -85060,28 +94295,69 @@ in
         ];
       })
       sources."upath-1.2.0"
-      sources."update-notifier-4.0.0"
-      sources."uri-js-4.2.2"
+      (sources."update-notifier-4.1.1" // {
+        dependencies = [
+          sources."chalk-3.0.0"
+        ];
+      })
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."url-parse-lax-3.0.0"
       sources."use-3.1.1"
-      sources."user-home-2.0.0"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
+      sources."v8-compile-cache-2.1.1"
       sources."verror-1.10.0"
-      sources."watchpack-1.6.1"
+      sources."watchpack-1.7.4"
+      (sources."watchpack-chokidar2-2.0.0" // {
+        dependencies = [
+          (sources."anymatch-2.0.0" // {
+            dependencies = [
+              sources."normalize-path-2.1.1"
+            ];
+          })
+          sources."binary-extensions-1.13.1"
+          sources."braces-2.3.2"
+          sources."chokidar-2.1.8"
+          sources."extend-shallow-2.0.1"
+          sources."fill-range-4.0.0"
+          sources."fsevents-1.2.13"
+          sources."glob-parent-3.1.0"
+          sources."is-binary-path-1.0.1"
+          sources."is-glob-3.1.0"
+          sources."is-number-3.0.0"
+          sources."kind-of-3.2.2"
+          sources."normalize-path-3.0.0"
+          sources."readable-stream-2.3.7"
+          sources."readdirp-2.2.1"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+          sources."to-regex-range-2.1.1"
+        ];
+      })
       sources."wcwidth-1.0.1"
-      sources."webidl-conversions-5.0.0"
-      sources."whatwg-url-8.0.0"
+      sources."webidl-conversions-6.1.0"
+      sources."whatwg-url-8.2.2"
       sources."when-3.7.7"
-      sources."which-1.3.1"
+      sources."which-2.0.2"
       sources."which-module-2.0.0"
-      sources."widest-line-3.1.0"
+      (sources."widest-line-3.1.0" // {
+        dependencies = [
+          sources."ansi-regex-5.0.0"
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.0"
+          sources."strip-ansi-6.0.0"
+        ];
+      })
       sources."winreg-0.0.12"
       sources."word-wrap-1.2.3"
       (sources."wrap-ansi-6.2.0" // {
         dependencies = [
           sources."ansi-regex-5.0.0"
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.0"
           sources."strip-ansi-6.0.0"
         ];
       })
@@ -85092,21 +94368,25 @@ in
         ];
       })
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.2.3"
+      sources."ws-7.3.1"
       sources."xdg-basedir-4.0.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
-      sources."xregexp-4.3.0"
       sources."xtend-4.0.2"
       sources."y18n-4.0.0"
-      (sources."yargs-15.1.0" // {
+      (sources."yargs-15.4.1" // {
         dependencies = [
+          sources."ansi-regex-5.0.0"
           sources."decamelize-1.2.0"
-          sources."yargs-parser-16.1.0"
+          sources."emoji-regex-8.0.0"
+          sources."is-fullwidth-code-point-3.0.0"
+          sources."string-width-4.2.0"
+          sources."strip-ansi-6.0.0"
         ];
       })
       (sources."yargs-parser-18.1.3" // {
         dependencies = [
+          sources."camelcase-5.3.1"
           sources."decamelize-1.2.0"
         ];
       })
@@ -85137,10 +94417,10 @@ in
   webpack = nodeEnv.buildNodePackage {
     name = "webpack";
     packageName = "webpack";
-    version = "4.43.0";
+    version = "4.44.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack/-/webpack-4.43.0.tgz";
-      sha512 = "GW1LjnPipFW2Y78OOab8NJlCflB7EFskMih2AHdvjbpKMeDJqEgSx24cXXXiPS65+WSwVyxtDsJH6jGX2czy+g==";
+      url = "https://registry.npmjs.org/webpack/-/webpack-4.44.2.tgz";
+      sha512 = "6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q==";
     };
     dependencies = [
       sources."@webassemblyjs/ast-1.9.0"
@@ -85164,16 +94444,16 @@ in
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
       sources."acorn-6.4.1"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."ajv-errors-1.0.1"
-      sources."ajv-keywords-3.4.1"
+      sources."ajv-keywords-3.5.2"
       sources."anymatch-3.1.1"
       sources."aproba-1.2.0"
       sources."arr-diff-4.0.0"
       sources."arr-flatten-1.1.0"
       sources."arr-union-3.1.0"
       sources."array-unique-0.3.2"
-      (sources."asn1.js-4.10.1" // {
+      (sources."asn1.js-5.4.1" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -85195,10 +94475,10 @@ in
       })
       sources."base64-js-1.3.1"
       sources."big.js-5.2.2"
-      sources."binary-extensions-2.0.0"
+      sources."binary-extensions-2.1.0"
       sources."bindings-1.5.0"
       sources."bluebird-3.7.2"
-      sources."bn.js-5.1.2"
+      sources."bn.js-5.1.3"
       sources."brace-expansion-1.1.11"
       (sources."braces-2.3.2" // {
         dependencies = [
@@ -85214,7 +94494,7 @@ in
           sources."bn.js-4.11.9"
         ];
       })
-      (sources."browserify-sign-4.2.0" // {
+      (sources."browserify-sign-4.2.1" // {
         dependencies = [
           sources."readable-stream-3.6.0"
           sources."safe-buffer-5.2.1"
@@ -85227,7 +94507,7 @@ in
       sources."builtin-status-codes-3.0.0"
       sources."cacache-12.0.4"
       sources."cache-base-1.0.1"
-      (sources."chokidar-3.4.0" // {
+      (sources."chokidar-3.4.2" // {
         dependencies = [
           sources."braces-3.0.2"
           sources."fill-range-7.0.1"
@@ -85266,7 +94546,7 @@ in
       sources."copy-concurrently-1.0.5"
       sources."copy-descriptor-0.1.1"
       sources."core-util-is-1.0.2"
-      (sources."create-ecdh-4.0.3" // {
+      (sources."create-ecdh-4.0.4" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
@@ -85286,23 +94566,27 @@ in
       })
       sources."domain-browser-1.2.0"
       sources."duplexify-3.7.1"
-      (sources."elliptic-6.5.2" // {
+      (sources."elliptic-6.5.3" // {
         dependencies = [
           sources."bn.js-4.11.9"
         ];
       })
       sources."emojis-list-3.0.0"
       sources."end-of-stream-1.4.4"
-      (sources."enhanced-resolve-4.1.1" // {
+      (sources."enhanced-resolve-4.3.0" // {
         dependencies = [
           sources."memory-fs-0.5.0"
         ];
       })
       sources."errno-0.1.7"
       sources."eslint-scope-4.0.3"
-      sources."esrecurse-4.2.1"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
       sources."estraverse-4.3.0"
-      sources."events-3.1.0"
+      sources."events-3.2.0"
       sources."evp_bytestokey-1.0.3"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
@@ -85428,7 +94712,7 @@ in
       sources."ms-2.0.0"
       sources."nan-2.14.1"
       sources."nanomatch-1.2.13"
-      sources."neo-async-2.6.1"
+      sources."neo-async-2.6.2"
       (sources."node-libs-browser-2.2.1" // {
         dependencies = [
           sources."punycode-1.4.1"
@@ -85458,7 +94742,7 @@ in
       sources."p-try-2.2.0"
       sources."pako-1.0.11"
       sources."parallel-transform-1.2.0"
-      sources."parse-asn1-5.1.5"
+      sources."parse-asn1-5.1.6"
       sources."pascalcase-0.1.1"
       sources."path-browserify-0.0.1"
       sources."path-dirname-1.0.2"
@@ -85502,9 +94786,10 @@ in
       sources."run-queue-1.0.3"
       sources."safe-buffer-5.1.2"
       sources."safe-regex-1.1.0"
+      sources."safer-buffer-2.1.2"
       sources."schema-utils-1.0.0"
       sources."semver-5.7.1"
-      sources."serialize-javascript-3.1.0"
+      sources."serialize-javascript-4.0.0"
       (sources."set-value-2.0.1" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
@@ -85574,12 +94859,12 @@ in
       sources."stream-shift-1.0.1"
       sources."string_decoder-1.1.1"
       sources."tapable-1.1.3"
-      (sources."terser-4.7.0" // {
+      (sources."terser-4.8.0" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
       })
-      (sources."terser-webpack-plugin-1.4.4" // {
+      (sources."terser-webpack-plugin-1.4.5" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -85611,7 +94896,7 @@ in
         ];
       })
       sources."upath-1.2.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       (sources."url-0.11.0" // {
         dependencies = [
@@ -85626,7 +94911,7 @@ in
       })
       sources."util-deprecate-1.0.2"
       sources."vm-browserify-1.1.2"
-      sources."watchpack-1.7.2"
+      sources."watchpack-1.7.4"
       (sources."watchpack-chokidar2-2.0.0" // {
         dependencies = [
           sources."anymatch-2.0.0"
@@ -85664,10 +94949,10 @@ in
   webpack-cli = nodeEnv.buildNodePackage {
     name = "webpack-cli";
     packageName = "webpack-cli";
-    version = "3.3.11";
+    version = "3.3.12";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.11.tgz";
-      sha512 = "dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g==";
+      url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-3.3.12.tgz";
+      sha512 = "NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag==";
     };
     dependencies = [
       sources."ansi-regex-4.1.0"
@@ -85727,12 +95012,10 @@ in
       sources."define-property-2.0.2"
       sources."detect-file-1.0.0"
       sources."emoji-regex-7.0.3"
-      sources."emojis-list-2.1.0"
-      sources."end-of-stream-1.4.4"
-      sources."enhanced-resolve-4.1.0"
+      sources."emojis-list-3.0.0"
+      sources."enhanced-resolve-4.3.0"
       sources."errno-0.1.7"
       sources."escape-string-regexp-1.0.5"
-      sources."execa-1.0.0"
       (sources."expand-brackets-2.1.4" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -85773,7 +95056,6 @@ in
       sources."for-in-1.0.2"
       sources."fragment-cache-0.2.1"
       sources."get-caller-file-2.0.5"
-      sources."get-stream-4.1.0"
       sources."get-value-2.0.6"
       (sources."global-modules-2.0.0" // {
         dependencies = [
@@ -85793,8 +95075,7 @@ in
       sources."import-local-2.0.0"
       sources."inherits-2.0.4"
       sources."ini-1.3.5"
-      sources."interpret-1.2.0"
-      sources."invert-kv-2.0.0"
+      sources."interpret-1.4.0"
       sources."is-accessor-descriptor-1.0.0"
       sources."is-buffer-1.1.6"
       sources."is-data-descriptor-1.0.0"
@@ -85809,23 +95090,18 @@ in
         ];
       })
       sources."is-plain-object-2.0.4"
-      sources."is-stream-1.1.0"
       sources."is-windows-1.0.2"
       sources."isarray-1.0.0"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
       sources."json5-1.0.1"
       sources."kind-of-6.0.3"
-      sources."lcid-2.0.0"
-      sources."loader-utils-1.2.3"
+      sources."loader-utils-1.4.0"
       sources."locate-path-3.0.0"
-      sources."map-age-cleaner-0.1.3"
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
-      sources."mem-4.3.0"
-      sources."memory-fs-0.4.1"
+      sources."memory-fs-0.5.0"
       sources."micromatch-3.1.10"
-      sources."mimic-fn-2.1.0"
       sources."minimist-1.2.5"
       (sources."mixin-deep-1.3.2" // {
         dependencies = [
@@ -85835,7 +95111,6 @@ in
       sources."ms-2.0.0"
       sources."nanomatch-1.2.13"
       sources."nice-try-1.0.5"
-      sources."npm-run-path-2.0.2"
       (sources."object-copy-0.1.0" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -85851,11 +95126,6 @@ in
       })
       sources."object-visit-1.0.1"
       sources."object.pick-1.3.0"
-      sources."once-1.4.0"
-      sources."os-locale-3.1.0"
-      sources."p-defer-1.0.0"
-      sources."p-finally-1.0.0"
-      sources."p-is-promise-2.1.0"
       sources."p-limit-2.3.0"
       sources."p-locate-3.0.0"
       sources."p-try-2.2.0"
@@ -85867,7 +95137,6 @@ in
       sources."posix-character-classes-0.1.1"
       sources."process-nextick-args-2.0.1"
       sources."prr-1.0.1"
-      sources."pump-3.0.0"
       sources."readable-stream-2.3.7"
       sources."regex-not-1.0.2"
       sources."repeat-element-1.1.3"
@@ -85894,7 +95163,6 @@ in
       })
       sources."shebang-command-1.2.0"
       sources."shebang-regex-1.0.0"
-      sources."signal-exit-3.0.3"
       (sources."snapdragon-0.8.2" // {
         dependencies = [
           sources."define-property-0.2.5"
@@ -85947,7 +95215,6 @@ in
       sources."string-width-3.1.0"
       sources."string_decoder-1.1.1"
       sources."strip-ansi-5.2.0"
-      sources."strip-eof-1.0.0"
       sources."supports-color-6.1.0"
       sources."tapable-1.1.3"
       (sources."to-object-path-0.3.0" // {
@@ -85971,13 +95238,12 @@ in
       sources."urix-0.1.0"
       sources."use-3.1.1"
       sources."util-deprecate-1.0.2"
-      sources."v8-compile-cache-2.0.3"
+      sources."v8-compile-cache-2.1.1"
       sources."which-1.3.1"
       sources."which-module-2.0.0"
       sources."wrap-ansi-5.1.0"
-      sources."wrappy-1.0.2"
       sources."y18n-4.0.0"
-      sources."yargs-13.2.4"
+      sources."yargs-13.3.2"
       sources."yargs-parser-13.1.2"
     ];
     buildInputs = globalBuildInputs;
@@ -85999,13 +95265,13 @@ in
       sha512 = "PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg==";
     };
     dependencies = [
-      sources."@types/glob-7.1.2"
+      sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.0.13"
+      sources."@types/node-14.11.1"
       sources."accepts-1.3.7"
-      sources."ajv-6.12.2"
+      sources."ajv-6.12.5"
       sources."ajv-errors-1.0.1"
-      sources."ajv-keywords-3.4.1"
+      sources."ajv-keywords-3.5.2"
       sources."ansi-colors-3.2.4"
       sources."ansi-html-0.0.7"
       sources."ansi-regex-2.1.1"
@@ -86106,7 +95372,7 @@ in
           sources."semver-5.7.1"
         ];
       })
-      (sources."debug-4.2.0" // {
+      (sources."debug-4.3.0" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -86129,11 +95395,11 @@ in
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
       sources."errno-0.1.7"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."escape-html-1.0.3"
       sources."etag-1.8.1"
-      sources."eventemitter3-4.0.4"
+      sources."eventemitter3-4.0.7"
       sources."eventsource-1.0.7"
       sources."execa-1.0.0"
       (sources."expand-brackets-2.1.4" // {
@@ -86187,12 +95453,7 @@ in
         ];
       })
       sources."find-up-3.0.0"
-      (sources."follow-redirects-1.11.0" // {
-        dependencies = [
-          sources."debug-3.2.6"
-          sources."ms-2.1.2"
-        ];
-      })
+      sources."follow-redirects-1.13.0"
       sources."for-in-1.0.2"
       sources."forwarded-0.1.2"
       sources."fragment-cache-0.2.1"
@@ -86248,7 +95509,7 @@ in
       sources."is-arguments-1.0.4"
       sources."is-binary-path-1.0.1"
       sources."is-buffer-1.1.6"
-      sources."is-callable-1.2.0"
+      sources."is-callable-1.2.1"
       sources."is-data-descriptor-1.0.0"
       sources."is-date-object-1.0.2"
       sources."is-descriptor-1.0.2"
@@ -86256,6 +95517,7 @@ in
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
       sources."is-glob-4.0.1"
+      sources."is-negative-zero-2.0.0"
       (sources."is-number-3.0.0" // {
         dependencies = [
           sources."kind-of-3.2.2"
@@ -86265,7 +95527,7 @@ in
       sources."is-path-in-cwd-2.1.0"
       sources."is-path-inside-2.1.0"
       sources."is-plain-object-2.0.4"
-      sources."is-regex-1.1.0"
+      sources."is-regex-1.1.1"
       sources."is-stream-1.1.0"
       sources."is-symbol-1.0.3"
       sources."is-windows-1.0.2"
@@ -86278,8 +95540,8 @@ in
       sources."killable-1.0.1"
       sources."kind-of-6.0.3"
       sources."locate-path-3.0.0"
-      sources."lodash-4.17.15"
-      sources."loglevel-1.6.8"
+      sources."lodash-4.17.20"
+      sources."loglevel-1.7.0"
       sources."map-cache-0.2.2"
       sources."map-visit-1.0.0"
       sources."media-typer-0.3.0"
@@ -86302,7 +95564,7 @@ in
       sources."nanomatch-1.2.13"
       sources."negotiator-0.6.2"
       sources."nice-try-1.0.5"
-      sources."node-forge-0.9.0"
+      sources."node-forge-0.10.0"
       sources."normalize-path-3.0.0"
       sources."npm-run-path-2.0.2"
       sources."object-assign-4.1.1"
@@ -86319,11 +95581,15 @@ in
           sources."kind-of-3.2.2"
         ];
       })
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-is-1.1.2"
       sources."object-keys-1.1.1"
       sources."object-visit-1.0.1"
-      sources."object.assign-4.1.0"
+      (sources."object.assign-4.1.1" // {
+        dependencies = [
+          sources."es-abstract-1.18.0-next.0"
+        ];
+      })
       sources."object.pick-1.3.0"
       sources."obuf-1.1.2"
       sources."on-finished-2.3.0"
@@ -86349,7 +95615,7 @@ in
       sources."pinkie-2.0.4"
       sources."pinkie-promise-2.0.1"
       sources."pkg-dir-3.0.0"
-      (sources."portfinder-1.0.26" // {
+      (sources."portfinder-1.0.28" // {
         dependencies = [
           sources."debug-3.2.6"
           sources."ms-2.1.2"
@@ -86363,7 +95629,7 @@ in
       sources."punycode-2.1.1"
       sources."qs-6.7.0"
       sources."querystring-0.2.0"
-      sources."querystringify-2.1.1"
+      sources."querystringify-2.2.0"
       sources."range-parser-1.2.1"
       (sources."raw-body-2.4.0" // {
         dependencies = [
@@ -86395,7 +95661,7 @@ in
       sources."safer-buffer-2.1.2"
       sources."schema-utils-1.0.0"
       sources."select-hose-2.0.0"
-      sources."selfsigned-1.10.7"
+      sources."selfsigned-1.10.8"
       sources."semver-6.3.0"
       (sources."send-0.17.1" // {
         dependencies = [
@@ -86500,8 +95766,6 @@ in
         ];
       })
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
       (sources."string_decoder-1.1.1" // {
         dependencies = [
@@ -86538,7 +95802,7 @@ in
         ];
       })
       sources."upath-1.2.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       (sources."url-0.11.0" // {
         dependencies = [
@@ -86587,26 +95851,26 @@ in
   copy-webpack-plugin = nodeEnv.buildNodePackage {
     name = "copy-webpack-plugin";
     packageName = "copy-webpack-plugin";
-    version = "6.0.2";
+    version = "6.1.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.0.2.tgz";
-      sha512 = "9Gm8X0c6eXlKnmltMPFCBeGOKjtcRIyTt4VaO3k1TkNgVTe5Ov2lYsYVuyLp0kp8DItO3apewflM+1GYgh6V2Q==";
+      url = "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.1.1.tgz";
+      sha512 = "4TlkHFYkrZ3WppLA5XkPmBLI5lnEpFsXvpeqxCf5PzkratZiVklNXsvoQkLhUU43q7ZL3AOXtaHAd9jLNJoU0w==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.3"
       sources."@nodelib/fs.stat-2.0.3"
       sources."@nodelib/fs.walk-1.2.4"
       sources."@npmcli/move-file-1.0.1"
-      sources."@types/json-schema-7.0.5"
-      sources."aggregate-error-3.0.1"
-      sources."ajv-6.12.2"
-      sources."ajv-keywords-3.4.1"
+      sources."@types/json-schema-7.0.6"
+      sources."aggregate-error-3.1.0"
+      sources."ajv-6.12.5"
+      sources."ajv-keywords-3.5.2"
       sources."array-union-2.1.0"
       sources."balanced-match-1.0.0"
       sources."big.js-5.2.2"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."cacache-15.0.4"
+      sources."cacache-15.0.5"
       sources."chownr-2.0.0"
       sources."clean-stack-2.2.0"
       sources."commondir-1.0.1"
@@ -86614,7 +95878,7 @@ in
       sources."dir-glob-3.0.1"
       sources."emojis-list-3.0.0"
       sources."fast-deep-equal-3.1.3"
-      sources."fast-glob-3.2.2"
+      sources."fast-glob-3.2.4"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fastq-1.8.0"
       sources."fill-range-7.0.1"
@@ -86638,30 +95902,26 @@ in
       sources."json5-2.1.3"
       sources."loader-utils-2.0.0"
       sources."locate-path-5.0.0"
-      sources."lru-cache-5.1.1"
+      sources."lru-cache-6.0.0"
       sources."make-dir-3.1.0"
       sources."merge2-1.4.1"
       sources."micromatch-4.0.2"
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
-      (sources."minipass-3.1.3" // {
-        dependencies = [
-          sources."yallist-4.0.0"
-        ];
-      })
+      sources."minipass-3.1.3"
       sources."minipass-collect-1.0.2"
       sources."minipass-flush-1.0.5"
-      sources."minipass-pipeline-1.2.3"
-      (sources."minizlib-2.1.0" // {
-        dependencies = [
-          sources."yallist-4.0.0"
-        ];
-      })
+      sources."minipass-pipeline-1.2.4"
+      sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."normalize-path-3.0.0"
       sources."once-1.4.0"
-      sources."p-limit-2.3.0"
-      sources."p-locate-4.1.0"
+      sources."p-limit-3.0.2"
+      (sources."p-locate-4.1.0" // {
+        dependencies = [
+          sources."p-limit-2.3.0"
+        ];
+      })
       sources."p-map-4.0.0"
       sources."p-try-2.2.0"
       sources."path-exists-4.0.0"
@@ -86676,25 +95936,21 @@ in
       sources."rimraf-3.0.2"
       sources."run-parallel-1.1.9"
       sources."safe-buffer-5.2.1"
-      sources."schema-utils-2.7.0"
+      sources."schema-utils-2.7.1"
       sources."semver-6.3.0"
-      sources."serialize-javascript-3.1.0"
+      sources."serialize-javascript-5.0.1"
       sources."slash-3.0.0"
       sources."source-list-map-2.0.1"
       sources."source-map-0.6.1"
       sources."ssri-8.0.0"
-      (sources."tar-6.0.2" // {
-        dependencies = [
-          sources."yallist-4.0.0"
-        ];
-      })
+      sources."tar-6.0.5"
       sources."to-regex-range-5.0.1"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."webpack-sources-1.4.3"
       sources."wrappy-1.0.2"
-      sources."yallist-3.1.1"
+      sources."yallist-4.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -86709,10 +95965,10 @@ in
   webtorrent-cli = nodeEnv.buildNodePackage {
     name = "webtorrent-cli";
     packageName = "webtorrent-cli";
-    version = "3.0.6";
+    version = "3.0.7";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webtorrent-cli/-/webtorrent-cli-3.0.6.tgz";
-      sha512 = "+rvs1eWn20qTdfIxnT+BwddHNxyR6n1re3+PSmWzwc8jj1ikfJ4Pk+ecTsYmVjZ2I67YPdX/iXkuVAqkoogR6g==";
+      url = "https://registry.npmjs.org/webtorrent-cli/-/webtorrent-cli-3.0.7.tgz";
+      sha512 = "7psSgPvy+nL4hQ8zIv1RW1pdFZVrxB6jHnIEwmDU6xP6zst/t5pgerrdnZerzgQBzlGjpRQQ9fQtZoHxK7zgtw==";
     };
     dependencies = [
       sources."@protobufjs/aspromise-1.1.2"
@@ -86726,7 +95982,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.1"
-      sources."@types/node-13.13.12"
+      sources."@types/node-13.13.21"
       sources."addr-to-ip-port-1.5.1"
       sources."airplay-js-0.3.0"
       sources."balanced-match-1.0.0"
@@ -86735,20 +95991,20 @@ in
       sources."bitfield-3.0.0"
       (sources."bittorrent-dht-10.0.0" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."debug-4.3.0"
           sources."ms-2.1.2"
         ];
       })
-      sources."bittorrent-peerid-1.3.2"
+      sources."bittorrent-peerid-1.3.3"
       (sources."bittorrent-protocol-3.1.1" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."debug-4.3.0"
           sources."ms-2.1.2"
         ];
       })
       (sources."bittorrent-tracker-9.15.0" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."debug-4.3.0"
           sources."decompress-response-6.0.0"
           sources."mimic-response-3.1.0"
           sources."ms-2.1.2"
@@ -86757,7 +96013,7 @@ in
       })
       sources."blob-to-buffer-1.2.8"
       sources."block-stream2-2.0.0"
-      sources."bn.js-5.1.2"
+      sources."bn.js-5.1.3"
       sources."brace-expansion-1.1.11"
       sources."browserify-package-json-1.0.1"
       sources."buffer-alloc-1.2.0"
@@ -86768,7 +96024,7 @@ in
       sources."bufferutil-4.0.1"
       (sources."castv2-0.1.10" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."debug-4.3.0"
           sources."ms-2.1.2"
         ];
       })
@@ -86782,7 +96038,7 @@ in
           sources."mime-1.6.0"
         ];
       })
-      sources."chunk-store-stream-4.1.0"
+      sources."chunk-store-stream-4.1.1"
       sources."clivas-0.2.0"
       sources."common-tags-1.8.0"
       sources."compact2string-1.4.1"
@@ -86830,9 +96086,9 @@ in
       sources."inherits-2.0.4"
       sources."ip-1.1.5"
       sources."ip-set-1.0.2"
-      sources."ipaddr.js-1.9.1"
+      sources."ipaddr.js-2.0.0"
       sources."is-ascii-1.0.0"
-      sources."is-docker-2.0.0"
+      sources."is-docker-2.1.1"
       sources."is-file-1.0.0"
       sources."is-typedarray-1.0.0"
       sources."is-wsl-2.2.0"
@@ -86851,7 +96107,7 @@ in
       })
       sources."long-4.0.0"
       sources."lru-3.1.0"
-      sources."magnet-uri-5.2.4"
+      sources."magnet-uri-5.3.0"
       sources."mdns-js-0.5.0"
       sources."mdns-js-packet-0.2.0"
       sources."mediasource-2.3.0"
@@ -86861,7 +96117,7 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-classic-0.5.3"
-      sources."moment-2.26.0"
+      sources."moment-2.28.0"
       sources."mp4-box-encoding-1.4.1"
       sources."mp4-stream-3.1.0"
       sources."ms-2.0.0"
@@ -86879,7 +96135,7 @@ in
       sources."nodebmc-0.0.7"
       sources."on-finished-2.3.0"
       sources."once-1.4.0"
-      sources."open-7.0.4"
+      sources."open-7.2.1"
       sources."package-json-versionify-1.0.4"
       sources."parse-numeric-range-1.2.0"
       (sources."parse-torrent-7.1.3" // {
@@ -86899,10 +96155,10 @@ in
       })
       sources."prettier-bytes-1.0.4"
       sources."process-nextick-args-2.0.1"
-      sources."protobufjs-6.9.0"
+      sources."protobufjs-6.10.1"
       sources."pump-3.0.0"
       sources."qap-3.3.1"
-      sources."queue-microtask-1.1.3"
+      sources."queue-microtask-1.1.4"
       sources."random-access-file-2.1.4"
       sources."random-access-storage-1.4.1"
       sources."random-iterate-1.0.1"
@@ -86913,7 +96169,7 @@ in
       sources."record-cache-1.1.0"
       (sources."render-media-3.4.3" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."debug-4.3.0"
           sources."ms-2.1.2"
         ];
       })
@@ -86925,18 +96181,18 @@ in
       sources."safe-buffer-5.2.1"
       sources."sax-1.1.4"
       sources."semver-5.1.1"
-      sources."simple-concat-1.0.0"
+      sources."simple-concat-1.0.1"
       sources."simple-get-2.8.1"
       (sources."simple-peer-9.7.2" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."debug-4.3.0"
           sources."ms-2.1.2"
         ];
       })
       sources."simple-sha1-3.0.1"
       (sources."simple-websocket-8.1.1" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."debug-4.3.0"
           sources."ms-2.1.2"
         ];
       })
@@ -86944,8 +96200,12 @@ in
       sources."split-1.0.1"
       sources."stream-to-blob-2.0.1"
       sources."stream-to-blob-url-3.0.2"
-      sources."stream-with-known-length-to-buffer-1.0.3"
-      sources."string2compact-1.3.0"
+      sources."stream-with-known-length-to-buffer-1.0.4"
+      (sources."string2compact-1.3.0" // {
+        dependencies = [
+          sources."ipaddr.js-1.9.1"
+        ];
+      })
       sources."string_decoder-1.3.0"
       sources."thirty-two-1.0.2"
       sources."through-2.3.8"
@@ -86953,7 +96213,7 @@ in
       sources."to-arraybuffer-1.0.1"
       (sources."torrent-discovery-9.3.0" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."debug-4.3.0"
           sources."ms-2.1.2"
         ];
       })
@@ -86961,14 +96221,13 @@ in
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
       sources."uint64be-2.0.2"
-      sources."uniq-1.0.1"
       sources."unordered-array-remove-1.0.2"
       sources."upnp-device-client-1.0.2"
       sources."upnp-mediarenderer-client-1.4.0"
       sources."url-join-4.0.1"
-      (sources."ut_metadata-3.5.0" // {
+      (sources."ut_metadata-3.5.1" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."debug-4.3.0"
           sources."ms-2.1.2"
         ];
       })
@@ -86979,7 +96238,7 @@ in
       sources."vlc-command-1.2.0"
       (sources."webtorrent-0.108.6" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."debug-4.3.0"
           sources."decompress-response-4.2.1"
           sources."mimic-response-2.1.0"
           sources."ms-2.1.2"
@@ -86988,7 +96247,7 @@ in
       })
       sources."winreg-1.2.4"
       sources."wrappy-1.0.2"
-      sources."ws-7.3.0"
+      sources."ws-7.3.1"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
       sources."xmldom-0.1.31"
@@ -87024,10 +96283,10 @@ in
   write-good = nodeEnv.buildNodePackage {
     name = "write-good";
     packageName = "write-good";
-    version = "1.0.2";
+    version = "1.0.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/write-good/-/write-good-1.0.2.tgz";
-      sha512 = "1gm9Ouz7mBROF7aC8vvSm/3JtPfTiZ+fegPGCKdxsYhf6VYeStHfVFx2Hnj2kJviHPx5zZkiQ8DytzZMP0Zqwg==";
+      url = "https://registry.npmjs.org/write-good/-/write-good-1.0.3.tgz";
+      sha512 = "8n5k4h00o91iYlzudpO8VqmeEjJ2qfMtVA+rhYUVYmibEOEoOXN+YGxB7CY7BZbN2Pv8aDK4oiLSN0a3pAwwOQ==";
     };
     dependencies = [
       sources."adverb-where-0.2.1"
@@ -87051,10 +96310,10 @@ in
   yaml-language-server = nodeEnv.buildNodePackage {
     name = "yaml-language-server";
     packageName = "yaml-language-server";
-    version = "0.8.0";
+    version = "0.11.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.8.0.tgz";
-      sha512 = "+mvpHHPyQo/cNnEdrydH7h13FC393FQ9Uj88W/BbTdAANDy7eTHlmqPDzvv6X5HKl5fi5RLWCWsO4SdAx0WEMw==";
+      url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-0.11.0.tgz";
+      sha512 = "tAEVZvlNLhmF2NLzhOm6UnejjPUp/iiEdxDLdP1Cm3M2YOJ7QLwrYtr0lzoNLLxQkzJwXmuBX01idECTWln82g==";
     };
     dependencies = [
       sources."agent-base-4.3.0"
@@ -87066,12 +96325,17 @@ in
       sources."http-proxy-agent-2.1.0"
       sources."https-proxy-agent-2.2.4"
       sources."js-yaml-3.14.0"
-      sources."jsonc-parser-2.2.1"
+      sources."jsonc-parser-2.3.1"
       sources."ms-2.0.0"
-      sources."prettier-1.19.1"
+      sources."prettier-2.0.5"
       sources."request-light-0.2.5"
       sources."sprintf-js-1.0.3"
-      sources."vscode-json-languageservice-3.7.0"
+      (sources."vscode-json-languageservice-3.8.4" // {
+        dependencies = [
+          sources."vscode-languageserver-types-3.16.0-next.2"
+          sources."vscode-nls-5.0.0"
+        ];
+      })
       sources."vscode-jsonrpc-4.0.0"
       (sources."vscode-languageserver-5.2.1" // {
         dependencies = [
@@ -87102,15 +96366,14 @@ in
   yarn = nodeEnv.buildNodePackage {
     name = "yarn";
     packageName = "yarn";
-    version = "1.22.4";
+    version = "1.22.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/yarn/-/yarn-1.22.4.tgz";
-      sha512 = "oYM7hi/lIWm9bCoDMEWgffW8aiNZXCWeZ1/tGy0DWrN6vmzjCXIKu2Y21o8DYVBUtiktwKcNoxyGl/2iKLUNGA==";
+      url = "https://registry.npmjs.org/yarn/-/yarn-1.22.5.tgz";
+      sha512 = "5uzKXwdMc++mYktXqkfpNYT9tY8ViWegU58Hgbo+KXzrzzhEyP1Ip+BTtXloLrXNcNlxFJbLiFKGaS9vK9ym6Q==";
     };
     buildInputs = globalBuildInputs;
     meta = {
       description = "📦🐈 Fast, reliable, and secure dependency management.";
-      homepage = "https://github.com/yarnpkg/yarn#readme";
       license = "BSD-2-Clause";
     };
     production = true;
@@ -87126,21 +96389,21 @@ in
       sha512 = "GFg4QC1xi3gkbHGGUFme8/8XPg3kDISu/qJfx56X207yuv1FSevGY/eKuym7kh0bniCB4n3rseWW+QZXPH8LIw==";
     };
     dependencies = [
-      sources."@babel/code-frame-7.10.1"
-      sources."@babel/helper-validator-identifier-7.10.1"
-      sources."@babel/highlight-7.10.1"
-      sources."@babel/runtime-7.10.2"
+      sources."@babel/code-frame-7.10.4"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/runtime-7.11.2"
       sources."@mrmlnc/readdir-enhanced-2.2.1"
       sources."@nodelib/fs.stat-1.1.3"
       sources."@sindresorhus/is-0.7.0"
       sources."@types/color-name-1.1.1"
-      sources."@types/glob-7.1.2"
+      sources."@types/glob-7.1.3"
       sources."@types/minimatch-3.0.3"
-      sources."@types/node-14.0.13"
+      sources."@types/node-14.11.1"
       sources."@types/normalize-package-data-2.4.0"
       sources."JSONStream-1.3.5"
-      sources."aggregate-error-3.0.1"
-      sources."ajv-6.12.2"
+      sources."aggregate-error-3.1.0"
+      sources."ajv-6.12.5"
       sources."ansi-0.3.1"
       sources."ansi-align-2.0.0"
       sources."ansi-escapes-3.2.0"
@@ -87164,7 +96427,7 @@ in
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.10.0"
+      sources."aws4-1.10.1"
       (sources."axios-0.18.1" // {
         dependencies = [
           sources."is-buffer-2.0.4"
@@ -87254,7 +96517,7 @@ in
       sources."concat-stream-1.6.2"
       sources."conf-1.4.0"
       sources."config-chain-1.1.12"
-      sources."configstore-3.1.2"
+      sources."configstore-3.1.5"
       sources."copy-descriptor-0.1.1"
       sources."core-js-3.6.5"
       sources."core-util-is-1.0.2"
@@ -87283,7 +96546,7 @@ in
           sources."path-type-3.0.0"
         ];
       })
-      sources."dot-prop-4.2.0"
+      sources."dot-prop-4.2.1"
       sources."downgrade-root-1.2.2"
       sources."download-stats-0.3.4"
       sources."duplexer3-0.1.4"
@@ -87343,6 +96606,7 @@ in
       sources."fast-glob-2.2.7"
       sources."fast-json-stable-stringify-2.1.0"
       sources."figures-2.0.0"
+      sources."filelist-1.0.1"
       (sources."fill-range-4.0.0" // {
         dependencies = [
           sources."extend-shallow-2.0.1"
@@ -87404,7 +96668,7 @@ in
       sources."graceful-fs-4.2.4"
       sources."grouped-queue-1.1.0"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.3"
+      sources."har-validator-5.1.5"
       (sources."has-ansi-2.0.0" // {
         dependencies = [
           sources."ansi-regex-2.1.1"
@@ -87484,10 +96748,16 @@ in
       sources."isstream-0.1.2"
       sources."istextorbinary-2.6.0"
       sources."isurl-1.0.0"
+      (sources."jake-10.8.2" // {
+        dependencies = [
+          sources."async-0.9.2"
+        ];
+      })
       sources."js-tokens-4.0.0"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
       sources."json-parse-better-errors-1.0.2"
+      sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
@@ -87512,8 +96782,8 @@ in
         ];
       })
       sources."locate-path-2.0.0"
-      sources."locutus-2.0.11"
-      sources."lodash-4.17.15"
+      sources."locutus-2.0.12"
+      sources."lodash-4.17.20"
       sources."lodash.debounce-4.0.8"
       sources."lodash.pad-4.5.1"
       sources."lodash.padend-4.6.1"
@@ -87522,7 +96792,7 @@ in
       sources."loud-rejection-1.6.0"
       sources."lowercase-keys-1.0.1"
       sources."lru-cache-4.1.5"
-      sources."macos-release-2.3.0"
+      sources."macos-release-2.4.1"
       sources."make-dir-1.3.0"
       sources."map-age-cleaner-0.1.3"
       sources."map-cache-0.2.2"
@@ -87571,7 +96841,7 @@ in
         ];
       })
       sources."mkdirp-0.5.5"
-      sources."moment-2.26.0"
+      sources."moment-2.28.0"
       sources."ms-2.0.0"
       (sources."multimatch-4.0.0" // {
         dependencies = [
@@ -87663,7 +96933,7 @@ in
       sources."pkg-up-2.0.0"
       sources."posix-character-classes-0.1.1"
       sources."prepend-http-2.0.0"
-      sources."pretty-bytes-5.3.0"
+      sources."pretty-bytes-5.4.1"
       sources."process-nextick-args-2.0.1"
       sources."proto-list-1.2.4"
       sources."pseudomap-1.0.2"
@@ -87704,7 +96974,7 @@ in
           sources."indent-string-2.1.0"
         ];
       })
-      sources."regenerator-runtime-0.13.5"
+      sources."regenerator-runtime-0.13.7"
       sources."regex-not-1.0.2"
       sources."registry-auth-token-3.4.0"
       sources."registry-url-3.1.0"
@@ -87724,11 +96994,11 @@ in
       sources."restore-cursor-2.0.0"
       sources."ret-0.1.15"
       sources."rimraf-2.7.1"
-      sources."roarr-2.15.3"
+      sources."roarr-2.15.4"
       sources."root-check-1.0.0"
       sources."run-async-2.4.1"
       sources."rx-4.1.0"
-      sources."rxjs-6.5.5"
+      sources."rxjs-6.6.3"
       sources."safe-buffer-5.2.1"
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
@@ -87792,7 +97062,7 @@ in
       sources."spdx-correct-3.1.1"
       sources."spdx-exceptions-2.3.0"
       sources."spdx-expression-parse-3.0.1"
-      sources."spdx-license-ids-3.0.5"
+      sources."spdx-license-ids-3.0.6"
       sources."split-string-3.1.0"
       sources."sprintf-js-1.1.2"
       sources."sshpk-1.16.1"
@@ -87883,7 +97153,7 @@ in
       sources."text-table-0.2.0"
       sources."textextensions-2.6.0"
       sources."through-2.3.8"
-      sources."through2-3.0.1"
+      sources."through2-3.0.2"
       sources."timed-out-4.0.1"
       sources."titleize-1.0.1"
       sources."tmp-0.0.33"
@@ -87900,7 +97170,7 @@ in
       sources."tunnel-0.0.6"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."twig-1.15.1"
+      sources."twig-1.15.2"
       sources."type-fest-0.3.1"
       sources."typedarray-0.0.6"
       sources."union-value-1.0.1"
@@ -87918,7 +97188,7 @@ in
       sources."untildify-3.0.3"
       sources."unzip-response-2.0.1"
       sources."update-notifier-2.5.0"
-      sources."uri-js-4.2.2"
+      sources."uri-js-4.4.0"
       sources."urix-0.1.0"
       sources."url-parse-lax-3.0.0"
       sources."url-to-options-1.0.1"
@@ -87937,7 +97207,7 @@ in
       sources."walk-2.3.14"
       sources."which-1.3.1"
       sources."widest-line-2.0.1"
-      sources."windows-release-3.3.1"
+      sources."windows-release-3.3.3"
       (sources."with-open-file-0.1.7" // {
         dependencies = [
           sources."p-try-2.2.0"
@@ -87969,17 +97239,18 @@ in
           sources."ansi-regex-5.0.0"
           sources."ansi-styles-4.2.1"
           sources."cli-cursor-3.1.0"
+          sources."cli-width-3.0.0"
           sources."color-convert-2.0.1"
           sources."color-name-1.1.4"
           sources."cross-spawn-7.0.3"
           sources."debug-3.2.6"
-          sources."execa-4.0.2"
+          sources."execa-4.0.3"
           sources."figures-3.2.0"
-          sources."get-stream-5.1.0"
+          sources."get-stream-5.2.0"
           sources."has-flag-4.0.0"
-          (sources."inquirer-7.1.0" // {
+          (sources."inquirer-7.3.3" // {
             dependencies = [
-              sources."chalk-3.0.0"
+              sources."chalk-4.1.0"
               sources."strip-ansi-6.0.0"
             ];
           })
@@ -87988,7 +97259,7 @@ in
           sources."ms-2.1.2"
           sources."mute-stream-0.0.8"
           sources."npm-run-path-4.0.1"
-          sources."onetime-5.1.0"
+          sources."onetime-5.1.2"
           sources."path-key-3.1.1"
           sources."restore-cursor-3.1.0"
           sources."semver-7.3.2"
@@ -88004,30 +97275,47 @@ in
               sources."ansi-regex-3.0.0"
             ];
           })
-          sources."supports-color-7.1.0"
+          sources."supports-color-7.2.0"
           sources."type-fest-0.11.0"
           sources."which-2.0.2"
         ];
       })
-      (sources."yeoman-generator-4.10.1" // {
+      (sources."yeoman-generator-4.12.0" // {
         dependencies = [
-          sources."debug-4.2.0"
+          sources."debug-4.3.0"
           sources."diff-4.0.2"
+          sources."dir-glob-2.2.2"
+          sources."ejs-3.1.5"
           sources."find-up-3.0.0"
+          sources."globby-9.2.0"
+          sources."ignore-4.0.6"
           sources."locate-path-3.0.0"
           (sources."make-dir-3.1.0" // {
             dependencies = [
               sources."semver-6.3.0"
             ];
           })
+          (sources."mem-fs-editor-7.0.1" // {
+            dependencies = [
+              sources."rimraf-3.0.2"
+            ];
+          })
+          sources."mkdirp-1.0.4"
           sources."ms-2.1.2"
           sources."p-limit-2.3.0"
           sources."p-locate-3.0.0"
           sources."p-try-2.2.0"
-          sources."parse-json-5.0.0"
+          sources."parse-json-5.1.0"
+          (sources."path-type-3.0.0" // {
+            dependencies = [
+              sources."pify-3.0.0"
+            ];
+          })
+          sources."pify-4.0.1"
           sources."read-pkg-5.2.0"
           sources."read-pkg-up-5.0.0"
           sources."semver-7.3.2"
+          sources."slash-2.0.0"
           sources."type-fest-0.6.0"
         ];
       })
diff --git a/nixpkgs/pkgs/development/ocaml-modules/angstrom/default.nix b/nixpkgs/pkgs/development/ocaml-modules/angstrom/default.nix
index b05190ed4911..3aecfde8a7d6 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/angstrom/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/angstrom/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "angstrom";
-  version = "0.13.0";
+  version = "0.14.1";
 
   minimumOCamlVersion = "4.04";
 
@@ -10,7 +10,7 @@ buildDunePackage rec {
     owner  = "inhabitedtype";
     repo   = pname;
     rev    = version;
-    sha256 = "0vzbwd8j34iv7n6gwqq2mf25q7rqpnpxnifb9ssxhq55p5dd1kp4";
+    sha256 = "1l69y0qspgi7kgrphyh7718hjb2sml1a9lljkp65bkqmmmi6ybly";
   };
 
   checkInputs = [ alcotest ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/apron/default.nix b/nixpkgs/pkgs/development/ocaml-modules/apron/default.nix
index 7dc87194d6a5..0da1ab74e199 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/apron/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/apron/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-apron-${version}";
-  version = "0.9.12";
+  version = "0.9.13";
   src = fetchFromGitHub {
     owner = "antoinemine";
     repo = "apron";
     rev = "v${version}";
-    sha256 = "0bciv4wz52p57q0aggmvixvqrsd1slflfyrm1z6fy5c44f4fmjjn";
+    sha256 = "14ymjahqdxj26da8wik9d5dzlxn81b3z1iggdl7rn2nn06jy7lvy";
   };
 
   buildInputs = [ perl gmp mpfr ppl ocaml findlib camlidl ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/bap/default.nix b/nixpkgs/pkgs/development/ocaml-modules/bap/default.nix
index 46fd75f98871..8fa74b931ef4 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/bap/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/bap/default.nix
@@ -12,12 +12,12 @@ else
 
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-bap-${version}";
-  version = "1.6.0";
+  version = "2.0.0";
   src = fetchFromGitHub {
     owner = "BinaryAnalysisPlatform";
     repo = "bap";
     rev = "v${version}";
-    sha256 = "0ryf2xb37pj2f9mc3p5prqgqrylph9qgq7q9jnbx8b03nzzpa6h6";
+    sha256 = "0lb9xkfp67wjjqr75p6krivmjra7l5673236v9ny4gp0xi0755bk";
   };
 
   sigs = fetchurl {
@@ -53,7 +53,9 @@ stdenv.mkDerivation rec {
     ln -s $sigs $out/share/bap/sigs.zip
   '';
 
-  disableIda = "--disable-ida --disable-fsi-benchmark";
+  disableIda = "--disable-ida";
+
+  patches = [ ./dont-add-curses.patch ];
 
   configureFlags = [ "--enable-everything ${disableIda}" "--with-llvm-config=${llvm}/bin/llvm-config" ];
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/bap/dont-add-curses.patch b/nixpkgs/pkgs/development/ocaml-modules/bap/dont-add-curses.patch
new file mode 100644
index 000000000000..438a1bfc6dc0
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/bap/dont-add-curses.patch
@@ -0,0 +1,32 @@
+From e6f6d1529d1725e8c1ed3c96eecc4aea43417aea Mon Sep 17 00:00:00 2001
+From: Matthew Maurer <matthew.r.maurer@gmail.com>
+Date: Sun, 19 Apr 2020 15:50:01 -0700
+Subject: [PATCH] Remove attempt to work around libcurses dependency issues.
+
+BAP doesn't actually link against libcurses, LLVM does. By adding
+-lcurses to this file, we accidentally broke linking on any systems
+where LLVM got linked against libncurses (not libcurses) without a
+libcurses compatibility shim.
+
+Overall, we should get -l flags from llvm-config, not attempt to
+shoehorn them in later, as this is fragile.
+---
+ oasis/llvm | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/oasis/llvm b/oasis/llvm
+index 966c407..fba3fb4 100644
+--- a/oasis/llvm
++++ b/oasis/llvm
+@@ -31,7 +31,7 @@ Library bap_llvm
+                  Bap_llvm_ogre_samples,
+                  Bap_llvm_ogre_types
+   CCOpt:         $cc_optimization
+-  CCLib:         $llvm_lib $cxxlibs $llvm_ldflags -lcurses
++  CCLib:         $llvm_lib $cxxlibs $llvm_ldflags
+   CSources:      llvm_disasm.h,
+                  llvm_disasm.c,
+                  llvm_stubs.c,
+-- 
+2.22.0
+
diff --git a/nixpkgs/pkgs/development/ocaml-modules/base64/2.0.nix b/nixpkgs/pkgs/development/ocaml-modules/base64/2.0.nix
deleted file mode 100644
index a49e0e8a778e..000000000000
--- a/nixpkgs/pkgs/development/ocaml-modules/base64/2.0.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, fetchzip, ocaml, findlib, ocamlbuild }:
-
-let version = "2.0.0"; in
-
-stdenv.mkDerivation {
-  pname = "ocaml-base64";
-  inherit version;
-
-  src = fetchzip {
-    url = "https://github.com/mirage/ocaml-base64/archive/v${version}.tar.gz";
-    sha256 = "1nv55gwq5vaxmrcz9ja2s165b1p9fhcxszc1l76043gpa56qm4fs";
-  };
-
-  buildInputs = [ ocaml findlib ocamlbuild ];
-
-  createFindlibDestdir = true;
-
-  meta = {
-    homepage = "https://github.com/mirage/ocaml-base64";
-    platforms = ocaml.meta.platforms or [];
-    description = "Base64 encoding and decoding in OCaml";
-    license = stdenv.lib.licenses.isc;
-    maintainers = with stdenv.lib.maintainers; [ vbgl ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/batteries/default.nix b/nixpkgs/pkgs/development/ocaml-modules/batteries/default.nix
index 3032df7b8fd5..43fc0696e2e7 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/batteries/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/batteries/default.nix
@@ -1,26 +1,28 @@
 { stdenv, fetchurl, fetchpatch, ocaml, findlib, ocamlbuild, qtest, num }:
 
-let version = "3.0.0"; in
+let version = "3.1.0"; in
 
 stdenv.mkDerivation {
   name = "ocaml${ocaml.version}-batteries-${version}";
 
   src = fetchurl {
     url = "https://github.com/ocaml-batteries-team/batteries-included/releases/download/v${version}/batteries-${version}.tar.gz";
-    sha256 = "0d833amm4p0pczgl7wriv99f3r5r6345p5gi9d97sm0hqx27vzwi";
+    sha256 = "0bq1np3ai3r559s3vivn45yid25fwz76rvbmsg30j57j7cyr3jqm";
   };
 
-  # Fixes tests with OCaml 4.10
+  # Fix a test case
   patches = [(fetchpatch {
-    url = "https://github.com/ocaml-batteries-team/batteries-included/commit/6d8d67f9fb48181be3d527b32df15899b00cd5dd.patch";
-    sha256 = "0msk8c5bjm6gm011i75b1rza332i1r4adj58qzli6gyjlvfj1hx4";
+    url = "https://github.com/ocaml-batteries-team/batteries-included/commit/7cbd9617d4efa5b3d647b1cc99d9a25fa01ac6dd.patch";
+    sha256 = "0q4kq10psr7n1xdv4rspk959n1a5mk9524pzm5v68ab2gkcgm8sk";
+
   })];
 
-  buildInputs = [ ocaml findlib ocamlbuild qtest ];
+  buildInputs = [ ocaml findlib ocamlbuild ];
+  checkInputs = [ qtest ];
   propagatedBuildInputs = [ num ];
 
-  doCheck = stdenv.lib.versions.majorMinor ocaml.version != "4.07" && !stdenv.isAarch64;
-  checkTarget = "test test";
+  doCheck = stdenv.lib.versionAtLeast ocaml.version "4.04" && !stdenv.isAarch64;
+  checkTarget = "test";
 
   createFindlibDestdir = true;
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/bigarray-overlap/default.nix b/nixpkgs/pkgs/development/ocaml-modules/bigarray-overlap/default.nix
new file mode 100644
index 000000000000..e02b1159a9c7
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/bigarray-overlap/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildDunePackage, fetchurl
+, bigarray-compat, alcotest, astring, fpath, bos, findlib, pkg-config
+}:
+
+buildDunePackage rec {
+  pname = "bigarray-overlap";
+  version = "0.2.0";
+
+  src = fetchurl {
+    url = "https://github.com/dinosaure/overlap/releases/download/v${version}/bigarray-overlap-v${version}.tbz";
+    sha256 = "1v86avafsbyxjccy0y9gny31s2jzb0kd42v3mhcalklx5f044lcy";
+  };
+
+  minimumOCamlVersion = "4.07";
+  useDune2 = true;
+
+  propagatedBuildInputs = [ bigarray-compat ];
+
+  checkInputs = [ alcotest astring fpath bos findlib pkg-config ];
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = "https://github.com/dinosaure/overlap";
+    description = "A minimal library to know that 2 bigarray share physically the same memory or not";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/camlpdf/default.nix b/nixpkgs/pkgs/development/ocaml-modules/camlpdf/default.nix
index fa5ffabedade..7e231001f24f 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/camlpdf/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/camlpdf/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, fetchFromGitHub, ocaml, findlib }:
+{ stdenv, fetchFromGitHub, which, ocaml, findlib }:
 
 if !stdenv.lib.versionAtLeast ocaml.version "4.02"
 then throw "camlpdf is not available for OCaml ${ocaml.version}"
 else
 
 stdenv.mkDerivation rec {
-  version = "2.3";
+  version = "2.3.1";
   name = "ocaml${ocaml.version}-camlpdf-${version}";
   src = fetchFromGitHub {
     owner = "johnwhitington";
     repo = "camlpdf";
     rev = "v${version}";
-    sha256 = "1z8h6bjzmlscr6h6kdvzj8kspifb4n9dg7zi54z1cv2qi03kr8dk";
+    sha256 = "1q69hhk63z836jbkv4wsng27w35w0qpz01c7ax0mqm8d8kmnr0v4";
   };
 
-  buildInputs = [ ocaml findlib ];
+  buildInputs = [ which ocaml findlib ];
 
   # Version number in META file is wrong
   patchPhase = ''
@@ -26,7 +26,9 @@ stdenv.mkDerivation rec {
     EOF
   '';
 
-  createFindlibDestdir = true;
+  preInstall = ''
+    mkdir -p $out/lib/ocaml/${ocaml.version}/site-lib/stublibs
+  '';
 
   meta = with stdenv.lib; {
     description = "An OCaml library for reading, writing and modifying PDF files";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/cohttp/async.nix b/nixpkgs/pkgs/development/ocaml-modules/cohttp/async.nix
new file mode 100644
index 000000000000..246397b60810
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/cohttp/async.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildDunePackage, async, cohttp, conduit-async, uri, ppx_sexp_conv
+, logs, magic-mime }:
+
+if !stdenv.lib.versionAtLeast cohttp.version "0.99" then
+	cohttp
+else if !stdenv.lib.versionAtLeast async.version "0.13" then
+	throw "cohttp-async needs async-0.13 (hence OCaml >= 4.08)"
+else
+
+	buildDunePackage {
+		pname = "cohttp-async";
+		useDune2 = true;
+		inherit (cohttp) version src;
+
+		buildInputs = [ ppx_sexp_conv ];
+
+		propagatedBuildInputs = [ async cohttp conduit-async logs magic-mime uri ];
+
+		meta = cohttp.meta // {
+			description = "CoHTTP implementation for the Async concurrency library";
+		};
+	}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/cohttp/default.nix b/nixpkgs/pkgs/development/ocaml-modules/cohttp/default.nix
index 22a4e6371a9c..6cb802e437d7 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/cohttp/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/cohttp/default.nix
@@ -1,27 +1,27 @@
-{ lib, fetchFromGitHub, buildDunePackage
-, ppx_fields_conv, ppx_sexp_conv
+{ lib, fetchurl, buildDunePackage
+, ppx_fields_conv, ppx_sexp_conv, stdlib-shims
 , base64, fieldslib, jsonm, re, stringext, uri-sexp
 }:
 
 buildDunePackage rec {
-  pname = "cohttp";
-	version = "2.1.3";
+	pname = "cohttp";
+	version = "2.5.4";
 
-	src = fetchFromGitHub {
-		owner = "mirage";
-		repo = "ocaml-cohttp";
-		rev = "v${version}";
-		sha256 = "16k4ldmz6ljryhr139adlma130frb5wh13qswkrwc5gxx6d2wh8d";
+	minimumOCamlVersion = "4.04.1";
+
+	src = fetchurl {
+		url = "https://github.com/mirage/ocaml-cohttp/releases/download/v${version}/cohttp-v${version}.tbz";
+		sha256 = "1q04spmki5zis5p5m1vs77i3k7ijm134j62g61071vblwx25z17a";
 	};
 
 	buildInputs = [ jsonm ppx_fields_conv ppx_sexp_conv ];
 
-	propagatedBuildInputs = [ base64 fieldslib re stringext uri-sexp ];
+	propagatedBuildInputs = [ base64 fieldslib re stringext uri-sexp stdlib-shims ];
 
 	meta = {
 		description = "HTTP(S) library for Lwt, Async and Mirage";
 		license = lib.licenses.isc;
 		maintainers = [ lib.maintainers.vbgl ];
-		inherit (src.meta) homepage;
+		homepage = "https://github.com/mirage/ocaml-cohttp";
 	};
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix b/nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix
index 588ba6711cb4..3a99ed9536f0 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt-unix.nix
@@ -11,6 +11,8 @@ buildDunePackage {
 	pname = "cohttp-lwt-unix";
 	inherit (cohttp-lwt) version src meta;
 
+	useDune2 = true;
+
 	buildInputs = [ cmdliner ppx_sexp_conv ];
 
 	propagatedBuildInputs = [ cohttp-lwt conduit-lwt-unix fmt magic-mime ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt.nix b/nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt.nix
index 748b970477ee..1f261be62022 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/cohttp/lwt.nix
@@ -2,6 +2,8 @@
 
 if !stdenv.lib.versionAtLeast cohttp.version "0.99"
 then cohttp
+else if !stdenv.lib.versionAtLeast ppx_sexp_conv.version "0.13"
+then throw "cohttp-lwt is not available for ppx_sexp_conv version ${ppx_sexp_conv.version}"
 else
 
 buildDunePackage {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/conduit/async.nix b/nixpkgs/pkgs/development/ocaml-modules/conduit/async.nix
new file mode 100644
index 000000000000..f16819ed8aef
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/conduit/async.nix
@@ -0,0 +1,19 @@
+{ stdenv, buildDunePackage, async, async_ssl, ppx_sexp_conv, conduit }:
+
+if !stdenv.lib.versionAtLeast conduit.version "1.0"
+then conduit
+else
+
+buildDunePackage {
+	pname = "conduit-async";
+	useDune2 = true;
+	inherit (conduit) version src;
+
+	buildInputs = [ ppx_sexp_conv ];
+
+	propagatedBuildInputs = [ async async_ssl conduit ];
+
+	meta = conduit.meta // {
+		description = "A network connection establishment library for Async";
+	};
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/conduit/default.nix b/nixpkgs/pkgs/development/ocaml-modules/conduit/default.nix
index 22538b87f6af..27b2a329b26e 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/conduit/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/conduit/default.nix
@@ -1,26 +1,26 @@
-{ stdenv, fetchFromGitHub, buildDunePackage
-, ppx_sexp_conv, sexplib
-, astring, ipaddr, macaddr, uri,
+{ stdenv, fetchurl, buildDunePackage
+, ppx_sexp_conv, sexplib, astring, uri, logs
+, ipaddr, ipaddr-sexp
 }:
 
 buildDunePackage rec {
   pname = "conduit";
-  version = "1.4.0";
+  version = "2.2.2";
 
-  src = fetchFromGitHub {
-    owner = "mirage";
-    repo = "ocaml-conduit";
-    rev = "v${version}";
-    sha256 = "1qzamqcmf9ywz04bkwrv17mz9j6zq2w9h1xmnjvp11pnwrs2xq8l";
+  minimumOCamlVersion = "4.07";
+
+  src = fetchurl {
+    url = "https://github.com/mirage/ocaml-conduit/releases/download/v2.2.2/conduit-v2.2.2.tbz";
+    sha256 = "1zb83w2pq9c8xrappfxa6y5q93772f5dj22x78camsm77a2c2z55";
   };
 
   buildInputs = [ ppx_sexp_conv ];
-  propagatedBuildInputs = [ astring ipaddr macaddr sexplib uri ];
+  propagatedBuildInputs = [ astring ipaddr ipaddr-sexp sexplib uri ];
 
   meta = {
-    description = "Network connection library for TCP and SSL";
+    description = "A network connection establishment library";
     license = stdenv.lib.licenses.isc;
     maintainers = with stdenv.lib.maintainers; [ alexfmpe vbgl ];
-    inherit (src.meta) homepage;
+    homepage = "https://github.com/mirage/ocaml-conduit";
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/conduit/lwt-unix.nix b/nixpkgs/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
index 51fb369e66fe..b3c7e7fa86f9 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/conduit/lwt-unix.nix
@@ -1,16 +1,20 @@
-{ stdenv, buildDunePackage, conduit-lwt
-, logs, ppx_sexp_conv, lwt_ssl
+{ stdenv, buildDunePackage
+, conduit-lwt, ppx_sexp_conv, ocaml_lwt, uri, ipaddr, ipaddr-sexp
+, lwt_ssl, tls
 }:
 
-if !stdenv.lib.versionAtLeast conduit-lwt.version "1.0"
-then conduit-lwt
-else
-
 buildDunePackage {
 	pname = "conduit-lwt-unix";
-	inherit (conduit-lwt) version src meta;
+	inherit (conduit-lwt) version src minimumOCamlVersion;
+
+	useDune2 = true;
 
 	buildInputs = [ ppx_sexp_conv ];
 
-	propagatedBuildInputs = [ conduit-lwt logs lwt_ssl ];
+	propagatedBuildInputs =
+		[ conduit-lwt ocaml_lwt uri ipaddr ipaddr-sexp tls lwt_ssl ];
+
+	meta = conduit-lwt.meta // {
+		description = "A network connection establishment library for Lwt_unix";
+	};
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/conduit/lwt.nix b/nixpkgs/pkgs/development/ocaml-modules/conduit/lwt.nix
index 2eb225d88b6e..9bcd98e06a49 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/conduit/lwt.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/conduit/lwt.nix
@@ -1,14 +1,14 @@
-{ stdenv, buildDunePackage, ppx_sexp_conv, conduit, ocaml_lwt }:
-
-if !stdenv.lib.versionAtLeast conduit.version "1.0"
-then conduit
-else
+{ stdenv, buildDunePackage, ppx_sexp_conv, conduit, ocaml_lwt, sexplib }:
 
 buildDunePackage {
 	pname = "conduit-lwt";
-	inherit (conduit) version src meta;
+	inherit (conduit) version src minimumOCamlVersion;
 
 	buildInputs = [ ppx_sexp_conv ];
 
-	propagatedBuildInputs = [ conduit ocaml_lwt ];
+	propagatedBuildInputs = [ conduit ocaml_lwt sexplib ];
+
+	meta = conduit.meta // {
+		description = "A network connection establishment library for Lwt";
+	};
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/containers/data.nix b/nixpkgs/pkgs/development/ocaml-modules/containers/data.nix
new file mode 100644
index 000000000000..7d15d7d3c64d
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/containers/data.nix
@@ -0,0 +1,18 @@
+{ buildDunePackage, containers
+, gen, iter, mdx, ounit, qcheck
+}:
+
+buildDunePackage {
+  pname = "containers-data";
+
+  inherit (containers) src version;
+
+  doCheck = true;
+  checkInputs = [ gen iter mdx.bin ounit qcheck ];
+
+  propagatedBuildInputs = [ containers ];
+
+  meta = containers.meta // {
+    description = "A set of advanced datatypes for containers";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/containers/default.nix b/nixpkgs/pkgs/development/ocaml-modules/containers/default.nix
index 16bad5a5ec40..970122dd79f3 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/containers/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/containers/default.nix
@@ -1,24 +1,22 @@
 { lib, fetchFromGitHub, buildDunePackage, ocaml
-, iter, result, uchar
-, gen, mdx, ounit, qcheck, uutf
+, seq
+, gen, iter, ounit, qcheck, uutf
 }:
 
 buildDunePackage rec {
-  version = "2.7";
+  version = "3.0";
   pname = "containers";
 
   src = fetchFromGitHub {
     owner = "c-cube";
     repo = "ocaml-containers";
     rev = "v${version}";
-    sha256 = "1nsxfgn1g1vpqihb9gd6gsab0bcm70nf9z84cp441c8wsc57hi6a";
+    sha256 = "0c75d5csgc68qqbsdz4279nlin111zrjbg4d47k32ska28myvpqn";
   };
 
-  buildInputs = [ iter ];
+  propagatedBuildInputs = [ seq ];
 
-  checkInputs = lib.optionals doCheck [ gen mdx.bin ounit qcheck uutf ];
-
-  propagatedBuildInputs = [ result uchar ];
+  checkInputs = [ gen iter ounit qcheck uutf ];
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/cpdf/default.nix b/nixpkgs/pkgs/development/ocaml-modules/cpdf/default.nix
index 3b68acaee716..e40f6531e1fd 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/cpdf/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/cpdf/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, ocaml, findlib, camlpdf, ncurses }:
 
-let version = "2.3"; in
+let version = "2.3.1"; in
 
 stdenv.mkDerivation {
   name = "ocaml${ocaml.version}-cpdf-${version}";
@@ -9,9 +9,13 @@ stdenv.mkDerivation {
     owner = "johnwhitington";
     repo = "cpdf-source";
     rev = "v${version}";
-    sha256 = "0i976y1v0l7x7k2n8k6v0h4bw9zlxsv04y4fdxss6dzpsfz49w23";
+    sha256 = "1gwz0iy28f67kbqap2q10nf98dalwbi03vv5j893z2an7pb4w68z";
   };
 
+  prePatch = ''
+    substituteInPlace META --replace 'version="1.7"' 'version="${version}"'
+  '';
+
   buildInputs = [ ocaml findlib ncurses ];
   propagatedBuildInputs = [ camlpdf ];
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/csexp/default.nix b/nixpkgs/pkgs/development/ocaml-modules/csexp/default.nix
new file mode 100644
index 000000000000..610de2cb8ada
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/csexp/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchurl, buildDunePackage }:
+
+buildDunePackage rec {
+  pname = "csexp";
+  version = "1.3.2";
+
+  minimumOCamlVersion = "4.08";
+
+  src = fetchurl {
+    url = "https://github.com/ocaml-dune/csexp/releases/download/${version}/csexp-${version}.tbz";
+    sha256 = "0jhwrxfjb0x31xj4g4b89fzw34sq19j0rq2hs2zyh1vz4xxl47zj";
+  };
+
+  postPatch = ''
+    substituteInPlace src/csexp.ml --replace Result.result Result.t
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/ocaml-dune/csexp";
+    description = "Minimal support for Canonical S-expressions";
+    license = licenses.mit;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/curly/default.nix b/nixpkgs/pkgs/development/ocaml-modules/curly/default.nix
index 1d455582b3b3..a17ea72140ff 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/curly/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/curly/default.nix
@@ -7,6 +7,8 @@ buildDunePackage rec {
 
   minimumOCamlVersion = "4.02";
 
+  useDune2 = true;
+
   src = fetchFromGitHub {
     owner  = "rgrinberg";
     repo   = pname;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/dns/default.nix b/nixpkgs/pkgs/development/ocaml-modules/dns/default.nix
index 68a8ad8da4ed..09753c14b35d 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/dns/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/dns/default.nix
@@ -4,13 +4,13 @@
 
 buildDunePackage rec {
   pname = "dns";
-  version = "4.6.0";
+  version = "4.6.2";
 
   minimumOCamlVersion = "4.07";
 
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-dns/releases/download/v${version}/dns-v${version}.tbz";
-    sha256 = "1gkswpc91j4ps60bp52ggg4qwj5g88f49x6p6d619p4x8vmhjylv";
+    sha256 = "0prypr5c589vay4alri78g0sarh06z35did26wn3s3di17d5761q";
   };
 
   propagatedBuildInputs = [ rresult astring fmt logs ptime domain-name gmap cstruct ipaddr lru duration metrics ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/dune-action-plugin/default.nix b/nixpkgs/pkgs/development/ocaml-modules/dune-action-plugin/default.nix
new file mode 100644
index 000000000000..65c55da6e3b3
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/dune-action-plugin/default.nix
@@ -0,0 +1,19 @@
+{ lib, buildDunePackage, dune_2, dune-glob, dune-private-libs }:
+
+buildDunePackage rec {
+  pname = "dune-action-plugin";
+  inherit (dune_2) src version patches;
+
+  useDune2 = true;
+
+  dontAddPrefix = true;
+
+  propagatedBuildInputs = [ dune-glob dune-private-libs ];
+
+  meta = with lib; {
+    inherit (dune_2.meta) homepage;
+    description = "API for writing dynamic Dune actions";
+    maintainers = [ maintainers.marsam ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/dune-build-info/default.nix b/nixpkgs/pkgs/development/ocaml-modules/dune-build-info/default.nix
index 3c828ebdcdb9..5d9f105782b4 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/dune-build-info/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/dune-build-info/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "dune-build-info";
-  inherit (dune_2) src version;
+  inherit (dune_2) src version patches;
 
   useDune2 = true;
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/dune-configurator/default.nix b/nixpkgs/pkgs/development/ocaml-modules/dune-configurator/default.nix
index aa12ebc8d796..16e365dd4f38 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/dune-configurator/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/dune-configurator/default.nix
@@ -1,15 +1,15 @@
-{ lib, buildDunePackage, dune_2, dune-private-libs }:
+{ lib, buildDunePackage, dune_2, csexp, result }:
 
 buildDunePackage rec {
   pname = "dune-configurator";
 
   useDune2 = true;
 
-  inherit (dune_2) src version;
+  inherit (dune_2) src version patches;
 
   dontAddPrefix = true;
 
-  propagatedBuildInputs = [ dune-private-libs ];
+  propagatedBuildInputs = [ csexp result ];
 
   meta = with lib; {
     description = "Helper library for gathering system configuration";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/dune-glob/default.nix b/nixpkgs/pkgs/development/ocaml-modules/dune-glob/default.nix
new file mode 100644
index 000000000000..c7c6f9be4ee0
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/dune-glob/default.nix
@@ -0,0 +1,19 @@
+{ lib, buildDunePackage, dune_2, dune-private-libs }:
+
+buildDunePackage rec {
+  pname = "dune-glob";
+  inherit (dune_2) src version patches;
+
+  useDune2 = true;
+
+  dontAddPrefix = true;
+
+  propagatedBuildInputs = [ dune-private-libs ];
+
+  meta = with lib; {
+    inherit (dune_2.meta) homepage;
+    description = "Glob string matching language supported by dune";
+    maintainers = [ maintainers.marsam ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/dune-private-libs/default.nix b/nixpkgs/pkgs/development/ocaml-modules/dune-private-libs/default.nix
index 6161bd1fe8e8..8a635efa3a59 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/dune-private-libs/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/dune-private-libs/default.nix
@@ -5,9 +5,9 @@ buildDunePackage rec {
 
   useDune2 = true;
 
-  inherit (dune_2) src version;
+  inherit (dune_2) src version patches;
 
-  minimumOCamlVersion = "4.07";
+  minimumOCamlVersion = "4.08";
 
   dontAddPrefix = true;
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/eliom/default.nix b/nixpkgs/pkgs/development/ocaml-modules/eliom/default.nix
index 4ce502af19f1..4734d83d55f7 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/eliom/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/eliom/default.nix
@@ -14,11 +14,11 @@ else
 stdenv.mkDerivation rec
 {
   pname = "eliom";
-  version = "6.12.0";
+  version = "6.12.1";
 
   src = fetchzip {
     url = "https://github.com/ocsigen/eliom/archive/${version}.tar.gz";
-    sha256 = "015jh72v6ch9h9czd8sn5kjz3pv6lsnvvnhdjgrplwj443dn1xp8";
+    sha256 = "04c1sz113015gyhj3w7flw7l4bv0v50q6n04kk8dybcravzy2xgx";
   };
 
   buildInputs = [ ocaml which findlib js_of_ocaml-ocamlbuild js_of_ocaml-ppx_deriving_json opaline
diff --git a/nixpkgs/pkgs/development/ocaml-modules/elpi/default.nix b/nixpkgs/pkgs/development/ocaml-modules/elpi/default.nix
index 93e29d3d34a1..865c5448c5bd 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/elpi/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/elpi/default.nix
@@ -1,19 +1,19 @@
 { lib, fetchzip, buildDunePackage, camlp5
-, ppx_tools_versioned, ppx_deriving, re
+, ppxlib, ppx_deriving, re, perl, ncurses
 }:
 
 buildDunePackage rec {
   pname = "elpi";
-  version = "1.11.2";
+  version = "1.11.4";
 
    src = fetchzip {
      url = "https://github.com/LPCIC/elpi/releases/download/v${version}/elpi-v${version}.tbz";
-     sha256 = "15hamy9ifr05kczadwh3yj2gmr12a9z1jwppmp5yrns0vykjbj76";
+     sha256 = "1hmjp2z52j17vwhhdkj45n9jx11jxkdg2dwa0n04yyw0qqy4m7c1";
    };
 
   minimumOCamlVersion = "4.04";
 
-  buildInputs = [ ppx_tools_versioned ];
+  buildInputs = [ perl ncurses ppxlib ];
 
   propagatedBuildInputs = [ camlp5 ppx_deriving re ];
 
@@ -24,5 +24,9 @@ buildDunePackage rec {
     homepage = "https://github.com/LPCIC/elpi";
   };
 
+  postPatch = ''
+    substituteInPlace elpi_REPL.ml --replace "tput cols" "${ncurses}/bin/tput cols"
+  '';
+
   useDune2 = true;
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/encore/default.nix b/nixpkgs/pkgs/development/ocaml-modules/encore/default.nix
index ab91117ac082..dd05982c3cab 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/encore/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/encore/default.nix
@@ -1,15 +1,21 @@
-{ lib, buildDunePackage, fetchurl, ocaml, alcotest, angstrom, ke }:
+{ lib, buildDunePackage, fetchurl, ocaml
+, fmt, bigstringaf, bigarray-compat
+, bigarray-overlap, angstrom, ke, alcotest }:
 
 buildDunePackage rec {
   pname = "encore";
-  version = "0.3";
+  version = "0.5";
+
   src = fetchurl {
     url = "https://github.com/mirage/encore/releases/download/v${version}/encore-v${version}.tbz";
-    sha256 = "05nv6yms5axsmq9cspr7884rz5kirj50izx3vdm89q4yl186qykl";
+    sha256 = "15n0dla149k9h7migs76wap08z5402qcvxyqxzl887ha6isj3p9n";
   };
-  propagatedBuildInputs = [ angstrom ke ];
-  checkInputs = lib.optional doCheck alcotest;
-  doCheck = lib.versions.majorMinor ocaml.version != "4.07";
+
+  useDune2 = true;
+
+  propagatedBuildInputs = [ angstrom ke fmt bigstringaf bigarray-compat bigarray-overlap ];
+  checkInputs = [ alcotest ];
+  doCheck = true;
 
   meta = {
     homepage = "https://github.com/mirage/encore";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/fdkaac/default.nix b/nixpkgs/pkgs/development/ocaml-modules/fdkaac/default.nix
new file mode 100644
index 000000000000..d3915b65935e
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/fdkaac/default.nix
@@ -0,0 +1,27 @@
+{ lib, fetchFromGitHub, buildDunePackage, dune-configurator
+, fdk_aac
+}:
+
+buildDunePackage rec {
+  pname = "fdkaac";
+  version = "0.3.2";
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-fdkaac";
+    rev = version;
+    sha256 = "10i6hsjkrpw7zgx99zvvka3sapd7zy53k7z4b6khj9rdrbrgznv8";
+  };
+
+  useDune2 = true;
+
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ fdk_aac ];
+
+  meta = {
+    description = "OCaml binding for the fdk-aac library";
+    inherit (src.meta) homepage;
+    license = lib.licenses.gpl2Only;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/fpath/default.nix b/nixpkgs/pkgs/development/ocaml-modules/fpath/default.nix
index 02b125642cc3..4694e3ac6377 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/fpath/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/fpath/default.nix
@@ -1,10 +1,14 @@
 { stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, astring }:
 
+if !stdenv.lib.versionAtLeast ocaml.version "4.03"
+then throw "fpath is not available for OCaml ${ocaml.version}"
+else
+
 stdenv.mkDerivation {
-  name = "ocaml${ocaml.version}-fpath-0.7.2";
+  name = "ocaml${ocaml.version}-fpath-0.7.3";
   src = fetchurl {
-    url = "https://erratique.ch/software/fpath/releases/fpath-0.7.2.tbz";
-    sha256 = "1hr05d8bpqmqcfdavn4rjk9rxr7v2zl84866f5knjifrm60sxqic";
+    url = "https://erratique.ch/software/fpath/releases/fpath-0.7.3.tbz";
+    sha256 = "03z7mj0sqdz465rc4drj1gr88l9q3nfs374yssvdjdyhjbqqzc0j";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild topkg ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/genspio/default.nix b/nixpkgs/pkgs/development/ocaml-modules/genspio/default.nix
new file mode 100644
index 000000000000..7e7b3a0b9aee
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/genspio/default.nix
@@ -0,0 +1,32 @@
+{ lib, fetchFromGitHub, buildDunePackage
+, nonstd, sosa
+}:
+
+buildDunePackage rec {
+  pname = "genspio";
+  version = "0.0.2";
+
+  src = fetchFromGitHub {
+    owner = "hammerlab";
+    repo = pname;
+    rev = "${pname}.${version}";
+    sha256 = "0cp6p1f713sfv4p2r03bzvjvakzn4ili7hf3a952b3w1k39hv37x";
+  };
+
+  minimumOCamlVersion = "4.03";
+
+  propagatedBuildInputs = [ nonstd sosa ];
+
+  configurePhase = ''
+    ocaml please.mlt configure
+  '';
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = https://smondet.gitlab.io/genspio-doc/;
+    description = "Typed EDSL to generate POSIX Shell scripts";
+    license = licenses.asl20;
+    maintainers = [ maintainers.alexfmpe ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/git-http/default.nix b/nixpkgs/pkgs/development/ocaml-modules/git-http/default.nix
index 89a1803b5202..3b127c650063 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/git-http/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/git-http/default.nix
@@ -1,12 +1,12 @@
-{ buildDunePackage, git, cohttp-lwt, alcotest, mtime, nocrypto }:
+{ buildDunePackage, git, cohttp, cohttp-lwt }:
 
 buildDunePackage {
 	pname = "git-http";
-	inherit (git) version src;
+	inherit (git) version src minimumOCamlVersion;
 
-	buildInputs = [ alcotest mtime nocrypto ];
-	propagatedBuildInputs = [ git cohttp-lwt ];
-	doCheck = true;
+	useDune2 = true;
+
+	propagatedBuildInputs = [ git cohttp cohttp-lwt ];
 
 	meta = {
 		description = "Client implementation of the “Smart” HTTP Git protocol in pure OCaml";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/git-unix/default.nix b/nixpkgs/pkgs/development/ocaml-modules/git-unix/default.nix
index 50e6f1d3bce9..0633b8af8f05 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/git-unix/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/git-unix/default.nix
@@ -1,11 +1,17 @@
-{ buildDunePackage, git-http, cohttp-lwt-unix, tls, cmdliner, mtime }:
+{ stdenv, buildDunePackage, git-http, cohttp, cohttp-lwt-unix
+, mmap, cmdliner, mtime, alcotest, mirage-crypto-rng, tls
+, io-page, git-binary
+}:
 
 buildDunePackage {
 	pname = "git-unix";
-	inherit (git-http) version src;
+	inherit (git-http) version src minimumOCamlVersion;
 
-	buildInputs = [ cmdliner mtime ];
-	propagatedBuildInputs = [ cohttp-lwt-unix git-http tls ];
+	useDune2 = true;
+
+	propagatedBuildInputs = [ mmap cmdliner git-http cohttp cohttp-lwt-unix mtime ];
+	checkInputs = [ alcotest mirage-crypto-rng tls io-page git-binary ];
+	doCheck = !stdenv.isAarch64;
 
 	meta = {
 		description = "Unix backend for the Git protocol(s)";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/git/default.nix b/nixpkgs/pkgs/development/ocaml-modules/git/default.nix
index 741e004979cf..d28e8ef2e7b4 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/git/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/git/default.nix
@@ -1,23 +1,30 @@
-{ lib, fetchurl, buildDunePackage
-, alcotest, git, mtime, nocrypto
-, angstrom, astring, cstruct, decompress, digestif, encore, duff, fmt
+{ stdenv, fetchurl, buildDunePackage
+, alcotest, mtime, mirage-crypto-rng, tls, git-binary
+, angstrom, astring, cstruct, decompress, digestif, encore, duff, fmt, checkseum
 , fpath, hex, ke, logs, lru, ocaml_lwt, ocamlgraph, ocplib-endian, uri, rresult
+, stdlib-shims
 }:
 
 buildDunePackage rec {
-  pname = "git";
-	version = "2.1.2";
+	pname = "git";
+	version = "2.1.3";
+
+	minimumOCamlVersion = "4.07";
+	useDune2 = true;
 
 	src = fetchurl {
 		url = "https://github.com/mirage/ocaml-git/releases/download/${version}/git-${version}.tbz";
-		sha256 = "0yyclsh255k7pvc2fcsdi8k2fcrr0by2nz6g3sqnwlimjyp7mz5j";
+		sha256 = "1ppllv65vrkfrmx46aiq5879isffcjmg92z9rv2kh92a83h4lqax";
 	};
 
-	propagatedBuildInputs = [ angstrom astring cstruct decompress digestif encore duff fmt fpath hex ke logs lru ocaml_lwt ocamlgraph ocplib-endian uri rresult ];
-	checkInputs = lib.optionals doCheck [ alcotest git mtime nocrypto ];
-	doCheck = true;
+	propagatedBuildInputs = [
+		angstrom astring checkseum cstruct decompress digestif encore duff fmt fpath
+		hex ke logs lru ocaml_lwt ocamlgraph ocplib-endian uri rresult stdlib-shims
+	];
+	checkInputs = [ alcotest mtime mirage-crypto-rng tls git-binary ];
+	doCheck = !stdenv.isAarch64;
 
-	meta = {
+	meta = with stdenv; {
 		description = "Git format and protocol in pure OCaml";
 		license = lib.licenses.isc;
 		maintainers = [ lib.maintainers.vbgl ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/gmetadom/default.nix b/nixpkgs/pkgs/development/ocaml-modules/gmetadom/default.nix
index d47ad8ce8590..f01f3e8cad53 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/gmetadom/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/gmetadom/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     sha256 = "0skmlv0pnqvg99wzzzi1h4zhwzd82xg7xpkj1kwpfy7bzinjh7ig";
   };
 
-  patches = [ ./gcc-4.3.dpatch ];
+  patches = [ ./gcc-4.3.patch ];
 
   dontDisableStatic = true;
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/gmetadom/gcc-4.3.dpatch b/nixpkgs/pkgs/development/ocaml-modules/gmetadom/gcc-4.3.patch
index d8d1d4631632..d8d1d4631632 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/gmetadom/gcc-4.3.dpatch
+++ b/nixpkgs/pkgs/development/ocaml-modules/gmetadom/gcc-4.3.patch
diff --git a/nixpkgs/pkgs/development/ocaml-modules/graphql/cohttp.nix b/nixpkgs/pkgs/development/ocaml-modules/graphql/cohttp.nix
index c6e85da77f36..09f4757041af 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/graphql/cohttp.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/graphql/cohttp.nix
@@ -8,6 +8,8 @@ buildDunePackage rec {
 
   inherit (graphql) version src;
 
+  useDune2 = true;
+
   nativeBuildInputs = [ ocaml-crunch ];
   propagatedBuildInputs = [ astring cohttp digestif graphql ocplib-endian ];
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/graphql_ppx/default.nix b/nixpkgs/pkgs/development/ocaml-modules/graphql_ppx/default.nix
index 59e832291f6f..f75465e99a27 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/graphql_ppx/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/graphql_ppx/default.nix
@@ -1,26 +1,28 @@
 { lib, buildDunePackage, fetchFromGitHub, alcotest, cppo
-, ocaml-migrate-parsetree, ppx_tools_versioned, reason, result, yojson }:
+, ocaml-migrate-parsetree, ppx_tools_versioned, reason, yojson }:
 
 buildDunePackage rec {
   pname = "graphql_ppx";
-  version = "0.7.1";
+  version = "1.0.1";
 
   minimumOCamlVersion = "4.06";
 
   src = fetchFromGitHub {
     owner = "reasonml-community";
-    repo = "graphql_ppx";
+    repo = "graphql-ppx";
     rev = "v${version}";
-    sha256 = "0gpzwcnss9c82whncyxfm6gwlkgh9hy90329hrazny32ybb470zh";
+    sha256 = "0lvmv1sb0ca9mja6di1dbmsgjqgj3w9var4amv1iz9nhwjjx4cpi";
   };
 
   propagatedBuildInputs =
-    [ cppo ocaml-migrate-parsetree ppx_tools_versioned reason result yojson ];
+    [ cppo ocaml-migrate-parsetree ppx_tools_versioned reason yojson ];
 
   checkInputs = lib.optional doCheck alcotest;
 
   doCheck = false;
 
+  useDune2 = true;
+
   meta = {
     homepage = "https://github.com/reasonml-community/graphql_ppx";
     description = "GraphQL PPX rewriter for Bucklescript/ReasonML";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/hacl_x25519/default.nix b/nixpkgs/pkgs/development/ocaml-modules/hacl_x25519/default.nix
index a741f5b66819..46a04a51fcab 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/hacl_x25519/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/hacl_x25519/default.nix
@@ -1,17 +1,18 @@
 { lib, buildDunePackage, fetchurl, benchmark, cstruct
-, eqaf, hex, ppx_blob, ppx_deriving_yojson, stdlib-shims, yojson }:
+, alcotest , eqaf, hex, ppx_blob, ppx_deriving_yojson, stdlib-shims, yojson }:
 
 buildDunePackage rec {
   pname = "hacl_x25519";
-  version = "0.1.1";
+  version = "0.2.0";
 
   src = fetchurl {
     url = "https://github.com/mirage/hacl/releases/download/v${version}/${pname}-v${version}.tbz";
-    sha256 = "187khbx1myh942c2v5f7wbms2hmhmgn57ik25djhnryln32c0874";
+    sha256 = "0ppq56i2yhxzz38w120aynnkx10kncl86zvqip9zx0v4974k3k4x";
   };
 
+  useDune2 = true;
   propagatedBuildInputs = [ eqaf cstruct ];
-  checkInputs = [ benchmark hex ppx_blob ppx_deriving_yojson stdlib-shims yojson ];
+  checkInputs = [ alcotest benchmark hex ppx_blob ppx_deriving_yojson stdlib-shims yojson ];
   doCheck = true;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/hidapi/default.nix b/nixpkgs/pkgs/development/ocaml-modules/hidapi/default.nix
new file mode 100644
index 000000000000..cd95b34fa2bd
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/hidapi/default.nix
@@ -0,0 +1,27 @@
+{ pkgs, lib, fetchurl, buildDunePackage, pkg-config
+, bigstring,
+}:
+
+buildDunePackage rec {
+  pname = "hidapi";
+  version = "1.1.1";
+
+  src = fetchurl {
+    url = "https://github.com/vbmithr/ocaml-hidapi/releases/download/${version}/${pname}-${version}.tbz";
+    sha256 = "1j7rd7ajrzla76r3sxljx6fb18f4f4s3jd7vhv59l2ilxyxycai2";
+  };
+
+  minimumOCamlVersion = "4.03";
+
+  buildInputs = [ pkgs.hidapi pkg-config ];
+  propagatedBuildInputs = [ bigstring ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = https://github.com/vbmithr/ocaml-hidapi;
+    description = "Bindings to Signal11's hidapi library";
+    license = licenses.isc;
+    maintainers = [ maintainers.alexfmpe ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/index/default.nix b/nixpkgs/pkgs/development/ocaml-modules/index/default.nix
index d0857f7ef0a1..f4b1844d684c 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/index/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/index/default.nix
@@ -1,18 +1,18 @@
-{ lib, fetchurl, buildDunePackage, fmt, logs, stdlib-shims }:
+{ lib, fetchurl, buildDunePackage, fmt, logs, mtime, stdlib-shims }:
 
 buildDunePackage rec {
   pname = "index";
-  version = "1.2.0";
+  version = "1.2.1";
 
   minimumOCamlVersion = "4.07";
 
   src = fetchurl {
     url = "https://github.com/mirage/index/releases/download/${version}/index-${version}.tbz";
-    sha256 = "0d44s1d2mpxvpg0zh57c928wf1w1wd33l1fw5r62al5zmi710ff6";
+    sha256 = "1a9b6rsazrjy07syxl9ix5002i95mlvx5vk7nl2x9cs6s0zw906d";
   };
 
   buildInputs = [ stdlib-shims ];
-  propagatedBuildInputs = [ fmt logs ];
+  propagatedBuildInputs = [ fmt logs mtime ];
 
   meta = {
     homepage = "https://github.com/mirage/index";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/inotify/default.nix b/nixpkgs/pkgs/development/ocaml-modules/inotify/default.nix
index e29930775212..44b34beb79d6 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/inotify/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/inotify/default.nix
@@ -1,6 +1,5 @@
-{ stdenv, fetchFromGitHub, ocaml, findlib, ocamlbuild
+{ stdenv, fetchFromGitHub, fetchpatch, ocaml, findlib, ocamlbuild
 , ocaml_lwt # optional lwt support
-, doCheck ? stdenv.lib.versionAtLeast ocaml.version "4.03"
 , ounit, fileutils # only for tests
 }:
 
@@ -15,13 +14,22 @@ stdenv.mkDerivation rec {
 		sha256 = "1s6vmqpx19hxzsi30jvp3h7p56rqnxfhfddpcls4nz8sqca1cz5y";
 	};
 
-	buildInputs = [ ocaml findlib ocamlbuild ocaml_lwt ]
-	++ stdenv.lib.optionals doCheck [ ounit fileutils ];
+	patches = [ (fetchpatch {
+		url = "https://github.com/whitequark/ocaml-inotify/commit/716c8002cc1652f58eb0c400ae92e04003cba8c9.patch";
+		sha256 = "04lfxrrsmk2mc704kaln8jqx93jc4bkxhijmfy2d4cmk1cim7r6k";
+	}) ];
+
+	buildInputs = [ ocaml findlib ocamlbuild ocaml_lwt ];
+	checkInputs = [ ounit fileutils ];
 
 	configureFlags = [ "--enable-lwt"
 	  (stdenv.lib.optionalString doCheck "--enable-tests") ];
 
-	inherit doCheck;
+	postConfigure = stdenv.lib.optionalString doCheck ''
+	  echo '<lib_test/test_inotify_lwt.*>: pkg_threads' | tee -a _tags
+	'';
+
+	doCheck = true;
 	checkTarget = "test";
 
 	createFindlibDestdir = true;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ipaddr/cstruct.nix b/nixpkgs/pkgs/development/ocaml-modules/ipaddr/cstruct.nix
new file mode 100644
index 000000000000..b6240d39ebd3
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/ipaddr/cstruct.nix
@@ -0,0 +1,17 @@
+{ lib, buildDunePackage
+, ipaddr, cstruct
+}:
+
+buildDunePackage rec {
+  pname = "ipaddr-cstruct";
+
+  inherit (ipaddr) version src minimumOCamlVersion;
+
+  propagatedBuildInputs = [ ipaddr cstruct ];
+
+  doCheck = true;
+
+  meta = ipaddr.meta // {
+    description = "A library for manipulation of IP address representations using Cstructs";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ipaddr/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ipaddr/default.nix
index d7009fdf553c..a4a6f9fc7a14 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ipaddr/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ipaddr/default.nix
@@ -1,22 +1,20 @@
 { lib, buildDunePackage
-, macaddr, ounit
+, macaddr, domain-name, stdlib-shims
+, ounit, ppx_sexp_conv
 }:
 
 buildDunePackage rec {
   pname = "ipaddr";
 
-  inherit (macaddr) version src;
+  inherit (macaddr) version src minimumOCamlVersion;
 
-  buildInputs = [ ounit ];
-
-  propagatedBuildInputs = [ macaddr ];
+  propagatedBuildInputs = [ macaddr domain-name stdlib-shims ];
 
+  checkInputs = [ ppx_sexp_conv ounit ];
   doCheck = true;
 
-  meta = with lib; {
-    homepage = "https://github.com/mirage/ocaml-ipaddr";
+  meta = macaddr.meta // {
     description = "A library for manipulation of IP (and MAC) address representations ";
-    license = licenses.isc;
-    maintainers = with maintainers; [ alexfmpe ericbmerritt ];
+    maintainers = with lib.maintainers; [ alexfmpe ericbmerritt ];
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ipaddr/sexp.nix b/nixpkgs/pkgs/development/ocaml-modules/ipaddr/sexp.nix
new file mode 100644
index 000000000000..8d6186d6338f
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/ipaddr/sexp.nix
@@ -0,0 +1,18 @@
+{ lib, buildDunePackage
+, ipaddr, ipaddr-cstruct, ounit, ppx_sexp_conv
+}:
+
+buildDunePackage rec {
+  pname = "ipaddr-sexp";
+
+  inherit (ipaddr) version src minimumOCamlVersion;
+
+  propagatedBuildInputs = [ ipaddr ];
+
+  checkInputs = [ ipaddr-cstruct ounit ppx_sexp_conv ];
+  doCheck = true;
+
+  meta = ipaddr.meta // {
+    description = "A library for manipulation of IP address representations usnig sexp";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/1.4.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/1.4.nix
deleted file mode 100644
index c1d170f78eeb..000000000000
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/1.4.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, fetchurl, buildDunePackage, ocaml
-, astring, cstruct, fmt, hex, jsonm, logs, ocaml_lwt, ocamlgraph, uri
-}:
-
-buildDunePackage rec {
-  pname = "irmin";
-  version = "1.4.0";
-
-  minimumOCamlVersion = "4.03";
-
-  src = fetchurl {
-    url = "https://github.com/mirage/${pname}/releases/download/${version}/${pname}-${version}.tbz";
-    sha256 = "019di4cz0z65knl232rnwj26npnc1mqh8j71xbf0mav6x350g1w5";
-  };
-
-  propagatedBuildInputs = [ astring cstruct fmt hex jsonm logs ocaml_lwt ocamlgraph uri ];
-
-  doCheck = true;
-
-  meta = with lib; {
-    homepage = "https://github.com/mirage/irmin";
-    description = "Irmin, a distributed database that follows the same design principles as Git";
-    license = licenses.isc;
-    maintainers = [ maintainers.alexfmpe ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/default.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/default.nix
index cba677591676..2e3e27df7ffb 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/default.nix
@@ -1,31 +1,22 @@
 { lib, fetchurl, buildDunePackage
 , astring, base64, digestif, fmt, jsonm, logs, ocaml_lwt, ocamlgraph, uri
-, alcotest, hex
+, alcotest, hex, ppx_irmin
 }:
 
-buildDunePackage rec {
-
+buildDunePackage {
   pname = "irmin";
-  version = "2.1.0";
 
-  minimumOCamlVersion = "4.07";
+  inherit (ppx_irmin) src version;
 
-  src = fetchurl {
-    url = "https://github.com/mirage/irmin/releases/download/${version}/irmin-${version}.tbz";
-    sha256 = "1ji8r7zbdmhbk8r8w2hskd9z7pnvirzbhincfxndxgdaxbfkff5g";
-  };
+  useDune2 = true;
+  minimumOCamlVersion = "4.07";
 
   propagatedBuildInputs = [ astring base64 digestif fmt jsonm logs ocaml_lwt ocamlgraph uri ];
 
-  checkInputs = lib.optionals doCheck [ alcotest hex ];
-
+  checkInputs = [ alcotest hex ppx_irmin ];
   doCheck = true;
 
-  meta = {
-    homepage = "https://irmin.org/";
+  meta = ppx_irmin.meta // {
     description = "A distributed database built on the same principles as Git";
-    license = lib.licenses.isc;
-    maintainers = [ lib.maintainers.vbgl ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/fs.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/fs.nix
index b1987aa7cbc6..0e9596751b82 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/fs.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/fs.nix
@@ -8,6 +8,8 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ irmin ];
 
+  useDune2 = true;
+
   checkInputs = lib.optional doCheck irmin-test;
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/git.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/git.nix
index bb28042a1f66..b222bc53e3a2 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/git.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/git.nix
@@ -6,6 +6,8 @@ buildDunePackage rec {
 
   inherit (irmin) version src;
 
+  useDune2 = true;
+
   propagatedBuildInputs = [ git irmin ];
 
   checkInputs = lib.optionals doCheck [ git-unix irmin-mem irmin-test ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/graphql.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/graphql.nix
index abcdc3d58dd2..6e4598dd986a 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/graphql.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/graphql.nix
@@ -6,9 +6,12 @@ buildDunePackage rec {
 
   inherit (irmin) version src;
 
+  useDune2 = true;
+
   propagatedBuildInputs = [ cohttp-lwt graphql-cohttp graphql-lwt irmin ];
 
-  doCheck = true;
+  # test requires network
+  doCheck = false;
 
   meta = irmin.meta // {
     description = "GraphQL server for Irmin";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/http.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/http.nix
index c8db6d563c9d..24e9f52aa086 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/http.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/http.nix
@@ -8,6 +8,8 @@ buildDunePackage rec {
 
   inherit (irmin) version src;
 
+  useDune2 = true;
+
   propagatedBuildInputs = [ cohttp-lwt irmin webmachine ];
 
   checkInputs = lib.optionals doCheck [ checkseum git-unix irmin-git irmin-mem irmin-test ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/mem.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/mem.nix
index b7040b9db0d7..1b8947849a92 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/mem.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/mem.nix
@@ -6,6 +6,8 @@ buildDunePackage rec {
 
   inherit (irmin) version src;
 
+  useDune2 = true;
+
   propagatedBuildInputs = [ irmin ];
 
   checkInputs = lib.optional doCheck irmin-test;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/pack.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/pack.nix
index c374b1a22750..b0081eb366e4 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/pack.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/pack.nix
@@ -7,6 +7,8 @@ buildDunePackage rec {
 
   inherit (irmin) version src;
 
+  useDune2 = true;
+
   propagatedBuildInputs = [ index irmin ocaml_lwt ];
 
   checkInputs = lib.optionals doCheck [ alcotest-lwt irmin-test ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/ppx.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/ppx.nix
index c28532b49a9e..35aa659fbc8a 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/ppx.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/ppx.nix
@@ -1,14 +1,29 @@
-{ lib, buildDunePackage, ppxlib, ocaml-syntax-shims, irmin }:
+{ lib, fetchurl, buildDunePackage, ppxlib, ocaml-syntax-shims }:
 
-buildDunePackage {
+buildDunePackage rec {
   pname = "ppx_irmin";
+  version = "2.2.0";
 
-  inherit (irmin) version src minimumOCamlVersion;
+  src = fetchurl {
+    url = "https://github.com/mirage/irmin/releases/download/${version}/irmin-${version}.tbz";
+    sha256 = "0gzw918b661qkvd140hilww9jsc49rxsxz1k4iihyvikjn202km4";
+  };
+
+  minimumOCamlVersion = "4.06";
+
+  useDune2 = true;
 
   buildInputs = [ ocaml-syntax-shims ];
   propagatedBuildInputs = [ ppxlib ];
 
-  meta = irmin.meta // {
+  # tests depend on irmin, would create mutual dependency
+  # opt to test irmin instead of ppx_irmin
+  doCheck = false;
+
+  meta = {
+    homepage = "https://irmin.org/";
     description = "PPX deriver for Irmin generics";
+    license = lib.licenses.isc;
+    maintainers = [ lib.maintainers.vbgl ];
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/test.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/test.nix
index 57e33e2db8a5..b8a3f3ae2457 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/test.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/test.nix
@@ -6,6 +6,8 @@ buildDunePackage {
 
   inherit (irmin) version src;
 
+  useDune2 = true;
+
   propagatedBuildInputs = [ alcotest cmdliner irmin metrics-unix mtime ];
 
   meta = irmin.meta // {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/irmin/unix.nix b/nixpkgs/pkgs/development/ocaml-modules/irmin/unix.nix
index 5793678bfcfd..7a09eaabd3ec 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/irmin/unix.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/irmin/unix.nix
@@ -10,6 +10,8 @@ buildDunePackage rec {
 
   inherit (irmin) version src;
 
+  useDune2 = true;
+
   propagatedBuildInputs = [ checkseum cmdliner git-unix yaml
     irmin irmin-fs irmin-git irmin-graphql irmin-http irmin-mem irmin-pack irmin-watcher
   ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.13.nix b/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.13.nix
index 4682a744d6f5..b92027a65a0d 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.13.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/janestreet/0.13.nix
@@ -1,5 +1,6 @@
 { janePackage
 , ctypes
+, dune-configurator
 , num
 , octavius
 , ppxlib
@@ -357,7 +358,8 @@ rec {
 
   async_unix = janePackage {
     pname = "async_unix";
-    hash = "0n3jz3qjlphyhkqgnbjbwf2fqxaksws82dx1mk4m4wnw3275gdi5";
+    version = "0.13.1";
+    hash = "1sb8grbj4bv6ih3yfdihxhn5c9rqczr56b5bhl85wy2mi92m17xv";
     meta.description = "Monadic concurrency library";
     propagatedBuildInputs = [ async_kernel core ];
   };
@@ -416,6 +418,15 @@ rec {
     propagatedBuildInputs = [ async shell ];
   };
 
+  async_ssl = janePackage {
+    pname = "async_ssl";
+    useDune2 = true;
+    hash = "0z5dbiam5k7ipx9ph4r8nqv0a1ldx1ymxw3xjxgrdjda90lmwf2k";
+    meta.description = "Async wrappers for SSL";
+    buildInputs = [ dune-configurator ];
+    propagatedBuildInputs = [ async ctypes openssl ];
+  };
+
   core_bench = janePackage {
     pname = "core_bench";
     hash = "1nk0i3z8rqrljbf4bc7ljp71g0a4361nh85s2ang0lgxri74zacm";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/janestreet/default.nix b/nixpkgs/pkgs/development/ocaml-modules/janestreet/default.nix
index ff93d65357a8..69f4e6f61d84 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/janestreet/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/janestreet/default.nix
@@ -533,6 +533,7 @@ rec {
     pname = "email_message";
     hash = "131jd72k4s8cdbgg6gyg7w5v8mphdlvdx4fgvh8d9a1m7kkvbxfg";
     propagatedBuildInputs = [ async angstrom core_extended cryptokit magic-mime ounit ];
+    patches = [ ./email-message-angstrom-0.14.patch ];
     meta.description = "E-mail message parser";
   };
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/janestreet/email-message-angstrom-0.14.patch b/nixpkgs/pkgs/development/ocaml-modules/janestreet/email-message-angstrom-0.14.patch
new file mode 100644
index 000000000000..624a3e5334b2
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/janestreet/email-message-angstrom-0.14.patch
@@ -0,0 +1,22 @@
+diff --git a/email_address/src/email_address.ml b/email_address/src/email_address.ml
+index 7470273..d070465 100644
+--- a/email_address/src/email_address.ml
++++ b/email_address/src/email_address.ml
+@@ -38,7 +38,7 @@ module Stable = struct
+       let of_string ?default_domain input_str =
+         let open Core_kernel in
+         let open! Int.Replace_polymorphic_compare in
+-        match Angstrom.parse_string Email_address_parser_stable_v1.email_only input_str with
++        match Angstrom.parse_string ~consume:Prefix Email_address_parser_stable_v1.email_only input_str with
+         | Error error ->
+           Or_error.error_s [%message
+             "Failed to parse email address"
+@@ -104,7 +104,7 @@ module T = Stable.V1.With_comparator
+ include T
+ 
+ let list_of_string ?default_domain input_str =
+-  match Angstrom.parse_string Email_address_parser_stable_v1.email_list_only input_str with
++  match Angstrom.parse_string ~consume:Prefix Email_address_parser_stable_v1.email_list_only input_str with
+   | Error error ->
+     Or_error.error_s [%message
+       "Failed to parse email address(es)"
diff --git a/nixpkgs/pkgs/development/ocaml-modules/jwto/default.nix b/nixpkgs/pkgs/development/ocaml-modules/jwto/default.nix
new file mode 100644
index 000000000000..a4cf0aae6918
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/jwto/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildDunePackage, fetchFromGitHub, alcotest, cryptokit, fmt, yojson
+, base64, re, ppx_deriving }:
+
+buildDunePackage rec {
+  pname = "jwto";
+  version = "0.3.0";
+
+  minimumOCamlVersion = "4.05";
+
+  src = fetchFromGitHub {
+    owner = "sporto";
+    repo = "jwto";
+    rev = version;
+    sha256 = "1p799zk8j9c0002xzi2x7ndj1bzqf14744ampcqndrjnsi7mq71s";
+  };
+
+  propagatedBuildInputs =
+    [ cryptokit fmt yojson base64 re ppx_deriving ];
+
+  checkInputs = [ alcotest ];
+
+  doCheck = true;
+
+  meta = {
+    homepage = "https://github.com/sporto/jwto";
+    description = "JSON Web Tokens (JWT) for OCaml";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ Zimmi48 jtcoolen ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/lablgtk3/default.nix b/nixpkgs/pkgs/development/ocaml-modules/lablgtk3/default.nix
index 641f16f69b02..767e087a7f06 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/lablgtk3/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/lablgtk3/default.nix
@@ -1,19 +1,18 @@
 { lib, fetchurl, pkgconfig, buildDunePackage, gtk3, cairo2 }:
 
 buildDunePackage rec {
-  version = "3.1.0";
+  version = "3.1.1";
   pname = "lablgtk3";
 
   minimumOCamlVersion = "4.05";
 
   src = fetchurl {
     url = "https://github.com/garrigue/lablgtk/releases/download/${version}/lablgtk3-${version}.tbz";
-    sha256 = "1fn04qwgkwc86jndlrnv4vxcmasjsp1mmcgfznahj1ccc7bv47sv";
+    sha256 = "1ygc1yh99gh44h958yffw1vxdlfpn799d4x1s36c2jfbi8f0dir2";
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ gtk3 ];
-  propagatedBuildInputs = [ cairo2 ];
+  propagatedBuildInputs = [ gtk3 cairo2 ];
 
   meta = {
     description = "OCaml interface to GTK 3";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/labltk/default.nix b/nixpkgs/pkgs/development/ocaml-modules/labltk/default.nix
index e7b68b907137..1c8edea66fb7 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/labltk/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/labltk/default.nix
@@ -52,6 +52,10 @@ let param =
     version = "8.06.8";
     sha256 = "0lfjc7lscq81ibqb3fcybdzs2r1i2xl7rsgi7linq46a0pcpkinw";
   };
+  "4.11" = mkNewParam {
+    version = "8.06.9";
+    sha256 = "1k42k3bjkf22gk39lwwzqzfhgjyhxnclslldrzpg5qy1829pbnc0";
+  };
 }.${builtins.substring 0 4 ocaml.version};
 in
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/lambdasoup/default.nix b/nixpkgs/pkgs/development/ocaml-modules/lambdasoup/default.nix
index b4980240c902..f535ee78fef9 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/lambdasoup/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/lambdasoup/default.nix
@@ -2,13 +2,13 @@
 
 buildDunePackage rec {
   pname = "lambdasoup";
-  version = "0.6.3"; # NB: double-check the license when updating
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "aantron";
     repo = pname;
     rev = version;
-    sha256 = "1w4zp3vswijzvrx0c3fv269ncqwnvvrzc46629nnwm9shwv07vmv";
+    sha256 = "14lndpsnzjjg58sdwxqpsv7kz77mnwn5658lya9jyaclj8azmaks";
   };
 
   propagatedBuildInputs = [ markup ];
@@ -16,7 +16,7 @@ buildDunePackage rec {
   meta = {
     description = "Functional HTML scraping and rewriting with CSS in OCaml";
     homepage = "https://aantron.github.io/lambdasoup/";
-    license = lib.licenses.bsd2;
+    license = lib.licenses.mit;
     maintainers = [ lib.maintainers.vbgl ];
   };
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/lua-ml/default.nix b/nixpkgs/pkgs/development/ocaml-modules/lua-ml/default.nix
index a0db995827a0..6e69bc1e5c50 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/lua-ml/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/lua-ml/default.nix
@@ -7,13 +7,13 @@ else
 stdenv.mkDerivation rec {
   pname = "lua-ml";
   name = "ocaml${ocaml.version}-${pname}-${version}";
-  version = "0.9";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "lindig";
     repo = pname;
     rev = "${version}";
-    sha256 = "09lj6qykg15fdf65in7xdry0jcifcr8vqbvz85v12gwfckmmxjir";
+    sha256 = "04lv98nxmzanvyn4c0k6k0ax29f5xfdl8qzpf5hwadslq213a044";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/lwt/4.x.nix b/nixpkgs/pkgs/development/ocaml-modules/lwt/default.nix
index a809e68000fe..759f0deedf1f 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/lwt/4.x.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/lwt/default.nix
@@ -7,11 +7,11 @@ let inherit (lib) optional versionAtLeast; in
 
 buildDunePackage rec {
   pname = "lwt";
-  version = "4.5.0";
+  version = "5.3.0";
 
   src = fetchzip {
     url = "https://github.com/ocsigen/${pname}/archive/${version}.tar.gz";
-    sha256 = "0l836z5zr38969bi77aga7ismj4wb01i3ffxf5v59jsgd3g44r2w";
+    sha256 = "15hgy3220m2b8imipa514n7l65m1h5lc6l1hanqwwvs7ghh2aqp2";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/lwt/legacy.nix b/nixpkgs/pkgs/development/ocaml-modules/lwt/legacy.nix
deleted file mode 100644
index 795baa0467e2..000000000000
--- a/nixpkgs/pkgs/development/ocaml-modules/lwt/legacy.nix
+++ /dev/null
@@ -1,58 +0,0 @@
-{ stdenv, buildOcaml, fetchzip, which, cryptopp, ocaml, findlib, ocamlbuild, camlp4
-, react, ssl, libev, pkgconfig, ncurses, glib
-, ppx_tools, result, cppo
-, ppxSupport ? stdenv.lib.versionAtLeast ocaml.version "4.02"
-, version ? if stdenv.lib.versionAtLeast ocaml.version "4.02" then "2.7.1" else "2.6.0"
-}:
-
-if !stdenv.lib.versionAtLeast ocaml.version "4"
- || stdenv.lib.versionAtLeast ocaml.version "4.06"
-then throw "lwt is not available for OCaml ${ocaml.version}"
-else
-
-let sha256 = {
-  "3.0.0" = "0wwhnl9hppixcsdisinj1wmffx0nv6hkpm01z9qvkngkrazi3i88";
-  "2.7.1" = "0w7f59havrl2fsnvs84lm7wlqpsrldg80gy5afpnpr21zkw22g8w";
-  "2.6.0" = "0f1h83zh60rspm4fxd96z9h5bkhq1n1q968hgq92sq4a6bfi1c2w";
-}.${version}; in
-
-let optionals = stdenv.lib.optionals (!stdenv.lib.versionAtLeast version "3"); in
-
-buildOcaml {
-  name = "lwt";
-  inherit version;
-
-  src = fetchzip {
-    url = "https://github.com/ocsigen/lwt/archive/${version}.tar.gz";
-    inherit sha256;
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ which cryptopp ocaml findlib ocamlbuild glib ncurses camlp4 cppo ]
-  ++ stdenv.lib.optional ppxSupport ppx_tools;
-
-  propagatedBuildInputs = [ result ]
-  ++ optionals [ react ssl ]
-  ++ [ libev ];
-
-  configureScript = "ocaml setup.ml -configure";
-  prefixKey = "--prefix ";
-  configureFlags =
-  optionals [ "--enable-glib" "--enable-ssl" "--enable-react" ]
-  ++ [ "--enable-camlp4" ]
-  ++ [ (if ppxSupport then "--enable-ppx" else "--disable-ppx") ];
-
-  createFindlibDestdir = true;
-
-  hasSharedObjects = true;
-
-  meta = with stdenv.lib; {
-    homepage = "http://ocsigen.org/lwt";
-    description = "Lightweight thread library for Objective Caml";
-    license = licenses.lgpl21;
-    platforms = ocaml.meta.platforms or [];
-    maintainers = with maintainers; [
-      maggesi vbgl gal_bolle
-    ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/lwt/ppx.nix b/nixpkgs/pkgs/development/ocaml-modules/lwt/ppx.nix
index 3cf4541aa016..f2707064f2af 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/lwt/ppx.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/lwt/ppx.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage {
   pname = "lwt_ppx";
-  version = "1.2.4";
+  version = "2.0.1";
 
   src = fetchzip {
     # `lwt_ppx` has a different release cycle than Lwt, but it's included in
@@ -12,8 +12,8 @@ buildDunePackage {
     #
     # This is particularly useful for overriding Lwt without breaking `lwt_ppx`,
     # as new Lwt releases may contain broken `lwt_ppx` code.
-    url = "https://github.com/ocsigen/lwt/archive/4.4.0.tar.gz";
-    sha256 = "1l97zdcql7y13fhaq0m9n9xvxf712jg0w70r72fvv6j49xm4nlhi";
+    url = "https://github.com/ocsigen/lwt/archive/5.2.0.tar.gz";
+    sha256 = "1znw8ckwdmqsnrcgar4g33zgr659l4l904bllrz69bbwdnfmz2x3";
   };
 
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/lwt_ssl/default.nix b/nixpkgs/pkgs/development/ocaml-modules/lwt_ssl/default.nix
index 49c2b7de3980..ade51b7da75f 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/lwt_ssl/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/lwt_ssl/default.nix
@@ -2,13 +2,13 @@
 
 buildDunePackage rec {
   pname = "lwt_ssl";
-  version = "1.1.2";
+  version = "1.1.3";
 
   minimumOCamlVersion = "4.02";
 
   src = fetchzip {
     url = "https://github.com/aantron/${pname}/archive/${version}.tar.gz";
-    sha256 = "1q0an3djqjxv83v3iswi7m81braqx93kcrcwrxwmf6jzhdm4pn15";
+    sha256 = "0v417ch5zn0yknj156awa5mrq3mal08pbrvsyribbn63ix6f9y3p";
   };
 
   propagatedBuildInputs = [ ssl lwt ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/macaddr/cstruct.nix b/nixpkgs/pkgs/development/ocaml-modules/macaddr/cstruct.nix
new file mode 100644
index 000000000000..991a77a6ba21
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/macaddr/cstruct.nix
@@ -0,0 +1,17 @@
+{ lib, buildDunePackage
+, macaddr, cstruct
+}:
+
+buildDunePackage {
+  pname = "macaddr-cstruct";
+
+  inherit (macaddr) version src minimumOCamlVersion;
+
+  propagatedBuildInputs = [ macaddr cstruct ];
+
+  doCheck = true;
+
+  meta = macaddr.meta // {
+    description = "A library for manipulation of MAC address representations using Cstructs";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/macaddr/default.nix b/nixpkgs/pkgs/development/ocaml-modules/macaddr/default.nix
index 1332c541354d..76ced1d753cd 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/macaddr/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/macaddr/default.nix
@@ -1,21 +1,20 @@
 { lib, fetchurl, buildDunePackage
-, ppx_sexp_conv
+, ppx_sexp_conv, ounit
 }:
 
 buildDunePackage rec {
   pname = "macaddr";
-  version = "3.1.0";
+  version = "5.0.0";
 
   minimumOCamlVersion = "4.04";
 
   src = fetchurl {
     url = "https://github.com/mirage/ocaml-ipaddr/archive/v${version}.tar.gz";
-    sha256 = "1hi3v5dzg6h4qb268ch3h6v61gsc8bv21ajhb35z37v5nsdmyzbh";
+    sha256 = "1j2m2v64g3d81sixxq3g57j1iyk6042ivsszml18akrqvwfpxy66";
   };
 
-  propagatedBuildInputs = [ ppx_sexp_conv ];
-
-  doCheck = false; # ipaddr and macaddr tests are together, which requires mutual dependency
+  checkInputs = [ ppx_sexp_conv ounit ];
+  doCheck = true;
 
   meta = with lib; {
     homepage = "https://github.com/mirage/ocaml-ipaddr";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/macaddr/sexp.nix b/nixpkgs/pkgs/development/ocaml-modules/macaddr/sexp.nix
new file mode 100644
index 000000000000..3d0305c4be38
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/macaddr/sexp.nix
@@ -0,0 +1,18 @@
+{ lib, buildDunePackage
+, macaddr, ppx_sexp_conv, macaddr-cstruct, ounit
+}:
+
+buildDunePackage {
+  pname = "macaddr-sexp";
+
+  inherit (macaddr) version src minimumOCamlVersion;
+
+  propagatedBuildInputs = [ ppx_sexp_conv ];
+
+  checkInputs = [ macaddr-cstruct ounit ];
+  doCheck = true;
+
+  meta = macaddr.meta // {
+    description = "A library for manipulation of MAC address representations using sexp";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/markup/default.nix b/nixpkgs/pkgs/development/ocaml-modules/markup/default.nix
index 92daea1a4b64..8b3525d26345 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/markup/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/markup/default.nix
@@ -1,28 +1,20 @@
-{ stdenv, fetchzip, ocaml, findlib, ocamlbuild, uutf, lwt }:
+{ lib, buildDunePackage, fetchzip, uutf }:
 
-stdenv.mkDerivation rec {
+buildDunePackage rec {
   pname = "markup";
-  version = "0.7.5";
-  name = "ocaml${ocaml.version}-${pname}-${version}";
+  version = "0.8.2";
 
   src = fetchzip {
     url = "https://github.com/aantron/markup.ml/archive/${version}.tar.gz";
-    sha256 = "09qm73m6c6wjh51w61vnfsnis37m28cf1r6hnkr3bbg903ahwbp5";
+    sha256 = "13zcrwzjmifniv3bvjbkd2ah8wwa3ld75bxh1d8hrzdvfxzh9szn";
     };
 
-  buildInputs = [ ocaml findlib ocamlbuild lwt ];
-
-  installPhase = "make ocamlfind-install";
-
   propagatedBuildInputs = [ uutf ];
 
-  createFindlibDestdir = true;
-
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/aantron/markup.ml/";
     description = "A pair of best-effort parsers implementing the HTML5 and XML specifications";
-    license = licenses.bsd2;
-    platforms = ocaml.meta.platforms or [];
+    license = licenses.mit;
     maintainers = with maintainers; [
       gal_bolle
       ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mdx/default.nix b/nixpkgs/pkgs/development/ocaml-modules/mdx/default.nix
index 1331c10d426b..f384704a1c4a 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/mdx/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/mdx/default.nix
@@ -1,25 +1,24 @@
 { lib, fetchurl, buildDunePackage, opaline, ocaml
 , alcotest
-, astring, cmdliner, cppo, fmt, logs, ocaml-migrate-parsetree, ocaml-version, ocaml_lwt, pandoc, re }:
+, astring, cmdliner, cppo, fmt, logs, ocaml-migrate-parsetree, ocaml-version, odoc, ocaml_lwt, pandoc, re }:
 
 buildDunePackage rec {
   pname = "mdx";
-  version = "1.6.0";
+  version = "1.7.0";
+  useDune2 = true;
 
   src = fetchurl {
     url = "https://github.com/realworldocaml/mdx/releases/download/${version}/mdx-${version}.tbz";
-    sha256 = "18m4ay226dwbgnwp3ia6bfcm033dvp9yby0lbddqn8ak374m2k3b";
+    sha256 = "0vpc30sngl3vpychrfvjwyi93mk311x3f2azlkxasgcj69fq03i7";
   };
 
   nativeBuildInputs = [ cppo ];
   buildInputs = [ cmdliner ];
-  propagatedBuildInputs = [ astring fmt logs ocaml-migrate-parsetree ocaml-version re ];
+  propagatedBuildInputs = [ astring fmt logs ocaml-migrate-parsetree ocaml-version odoc re ];
   checkInputs = [ alcotest ocaml_lwt pandoc ];
 
   doCheck = true;
 
-  dontStrip = lib.versions.majorMinor ocaml.version == "4.04";
-
   outputs = [ "bin" "lib" "out" ];
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/development/ocaml-modules/merlin-extend/default.nix b/nixpkgs/pkgs/development/ocaml-modules/merlin-extend/default.nix
index ad3b1337977f..752fbc039fa2 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/merlin-extend/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/merlin-extend/default.nix
@@ -1,20 +1,18 @@
-{ lib, buildDunePackage, fetchFromGitHub, cppo }:
+{ lib, buildDunePackage, fetchurl, cppo }:
 
 buildDunePackage rec {
   pname = "merlin-extend";
-  version = "0.4";
+  version = "0.6";
 
-  src = fetchFromGitHub {
-    owner = "let-def";
-    repo = pname;
-    sha256 = "1dxiqmm7ry24gvw6p9n4mrz37mnq4s6m8blrccsv3rb8yq82acx9";
-    rev = "v${version}";
+  src = fetchurl {
+    url = "https://github.com/let-def/merlin-extend/releases/download/v${version}/merlin-extend-v${version}.tbz";
+    sha256 = "0hvc4mz92x3rl2dxwrhvhzwl4gilnyvvwcqgr45vmdpyjyp3dwn2";
   };
 
   buildInputs = [ cppo ];
 
   meta = with lib; {
-    inherit (src.meta) homepage;
+    homepage = "https://github.com/let-def/merlin-extend";
     description = "SDK to extend Merlin";
     license = licenses.mit;
     maintainers = [ maintainers.volth ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/default.nix b/nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/default.nix
index f78ed2ef77f3..e178e066a384 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/default.nix
@@ -1,14 +1,14 @@
-{ lib, fetchurl, buildDunePackage, ounit, cstruct, dune-configurator, pkg-config }:
+{ lib, fetchurl, buildDunePackage, ounit, cstruct, dune-configurator, eqaf, pkg-config }:
 
 buildDunePackage rec {
   minimumOCamlVersion = "4.08";
 
   pname = "mirage-crypto";
-  version = "0.7.0";
+  version = "0.8.5";
 
   src = fetchurl {
     url = "https://github.com/mirage/mirage-crypto/releases/download/v${version}/mirage-crypto-v${version}.tbz";
-    sha256 = "0k7kllv3bh192yj6p9dk2z81r56w7x2kyr46pxygb5gnhqqxcncf";
+    sha256 = "0l6q0z5ghhy0djfscb2i2xg4dpmxs4xkwh16kc473cmb4hsxsmyk";
   };
 
   useDune2 = true;
@@ -17,7 +17,7 @@ buildDunePackage rec {
   checkInputs = [ ounit ];
 
   nativeBuildInputs = [ dune-configurator pkg-config ];
-  propagatedBuildInputs = [ cstruct ];
+  propagatedBuildInputs = [ cstruct eqaf ];
 
   meta = with lib; {
     homepage = "https://github.com/mirage/mirage-crypto";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix b/nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix
new file mode 100644
index 000000000000..473704d7ea22
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/rng-mirage.nix
@@ -0,0 +1,18 @@
+{ buildDunePackage, mirage-crypto-rng, duration, cstruct, mirage-runtime
+, mirage-time, mirage-clock, mirage-unix, mirage-time-unix, mirage-clock-unix }:
+
+buildDunePackage {
+  pname = "mirage-crypto-rng-mirage";
+
+  inherit (mirage-crypto-rng) version src useDune2 minimumOCamlVersion;
+
+  doCheck = true;
+  checkInputs = [ mirage-unix mirage-clock-unix mirage-time-unix ];
+
+  propagatedBuildInputs = [ duration cstruct mirage-crypto-rng mirage-runtime
+                            mirage-time mirage-clock ];
+
+  meta = mirage-crypto-rng.meta // {
+    description = "Entropy collection for a cryptographically secure PRNG";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/rng.nix b/nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/rng.nix
index 3a12580f89f2..b4da06816351 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/rng.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/mirage-crypto/rng.nix
@@ -1,6 +1,5 @@
 { buildDunePackage, mirage-crypto, ounit, randomconv, dune-configurator
-, cstruct, duration, logs, mtime, ocaml_lwt, mirage-runtime, mirage-time
-, mirage-clock, mirage-time-unix, mirage-clock-unix, mirage-unix }:
+, cstruct, duration, logs, mtime, ocaml_lwt }:
 
 buildDunePackage {
   pname = "mirage-crypto-rng";
@@ -11,9 +10,7 @@ buildDunePackage {
   checkInputs = [ ounit randomconv ];
 
   nativeBuildInputs = [ dune-configurator ];
-  propagatedBuildInputs = [ cstruct mirage-crypto duration logs mtime ocaml_lwt
-                            mirage-runtime mirage-time mirage-clock mirage-time-unix
-                            mirage-clock-unix mirage-unix ];
+  propagatedBuildInputs = [ cstruct mirage-crypto duration logs mtime ocaml_lwt ];
 
   meta = mirage-crypto.meta // {
     description = "A cryptographically secure PRNG";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mirage-stack/default.nix b/nixpkgs/pkgs/development/ocaml-modules/mirage-stack/default.nix
index 64168716399d..528ea68d9851 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/mirage-stack/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/mirage-stack/default.nix
@@ -2,11 +2,11 @@
 
 buildDunePackage rec {
   pname = "mirage-stack";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchurl {
     url = "https://github.com/mirage/mirage-stack/releases/download/v${version}/mirage-stack-v${version}.tbz";
-    sha256 = "1xdy59bxnki1r0jwm3s8fwarhhbxr0lsqqiag5b1j41hciiqp9jq";
+    sha256 = "1y110i4kjr03b0ji3q5h0bi3n3q8mdkfflb3fyq5rvpi5l45vvdb";
   };
 
   propagatedBuildInputs = [ mirage-protocols ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mirage/runtime.nix b/nixpkgs/pkgs/development/ocaml-modules/mirage/runtime.nix
index c7d7cf35e2d8..ea346479a0cd 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/mirage/runtime.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/mirage/runtime.nix
@@ -3,13 +3,13 @@
 
 buildDunePackage rec {
   pname = "mirage-runtime";
-  version = "3.7.7";
+  version = "3.8.0";
 
   minimumOCamlVersion = "4.06";
 
   src = fetchurl {
     url = "https://github.com/mirage/mirage/releases/download/v${version}/mirage-v${version}.tbz";
-    sha256 = "1ds5zfwb0g340kbdlsjayyw4n25nj7skdl1mwyvpzmkv4qcsmdiv";
+    sha256 = "18v37arzy7gkz5qcy34k0l8g69146nysjv0h1jcym0h4xxy0bxir";
   };
 
   propagatedBuildInputs = [ ipaddr functoria-runtime fmt logs ocaml_lwt ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/mustache/default.nix b/nixpkgs/pkgs/development/ocaml-modules/mustache/default.nix
new file mode 100644
index 000000000000..267aa17e9e42
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/mustache/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildDunePackage, fetchFromGitHub, ezjsonm, menhir, ounit }:
+
+buildDunePackage rec {
+  pname = "mustache";
+  version = "3.1.0";
+  src = fetchFromGitHub {
+    owner = "rgrinberg";
+    repo = "ocaml-mustache";
+    rev = "v${version}";
+    sha256 = "19v8rk8d8lkfm2rmhdawfgadji6wa267ir5dprh4w9l1sfj8a1py";
+  };
+
+  buildInputs = [ ezjsonm ];
+  propagatedBuildInputs = [ menhir ];
+
+  doCheck = true;
+  checkInputs = [ ounit ];
+
+  meta = {
+    description = "Mustache logic-less templates in OCaml";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.vbgl ];
+    inherit (src.meta) homepage;
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/nonstd/default.nix b/nixpkgs/pkgs/development/ocaml-modules/nonstd/default.nix
new file mode 100644
index 000000000000..150edb3174c4
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/nonstd/default.nix
@@ -0,0 +1,24 @@
+{ lib, fetchFromBitbucket, buildDunePackage }:
+
+buildDunePackage rec {
+  pname = "nonstd";
+  version = "0.0.3";
+
+  minimumOCamlVersion = "4.02";
+
+  src = fetchFromBitbucket {
+    owner = "smondet";
+    repo = pname;
+    rev = "${pname}.${version}";
+    sha256 = "0ccjwcriwm8fv29ij1cnbc9win054kb6pfga3ygzdbjpjb778j46";
+  };
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = https://bitbucket.org/smondet/nonstd;
+    description = "Non-standard mini-library";
+    license = licenses.isc;
+    maintainers = [ maintainers.alexfmpe ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/default.nix
index 547fa77ae6e9..ba571b32084e 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocaml-gettext/default.nix
@@ -1,21 +1,23 @@
-{ lib, fetchurl, buildDunePackage, gettext, fileutils, ounit }:
+{ lib, fetchurl, buildDunePackage, cppo, gettext, fileutils, ounit }:
 
 buildDunePackage rec {
   pname = "gettext";
-  version = "0.4.1";
+  version = "0.4.2";
 
   minimumOCamlVersion = "4.03";
 
   src = fetchurl {
     url = "https://github.com/gildor478/ocaml-gettext/releases/download/v${version}/gettext-v${version}.tbz";
-    sha256 = "0pwy6ym5fd77mdbgyas8x86vbrri9cgk79g8wxdjplhyi7zhh158";
+    sha256 = "19ynsldb21r539fiwz1f43apsdnx7hj2a2d9qr9wg2hva9y2qrwb";
   };
 
+  buildInputs = [ cppo ];
+
   propagatedBuildInputs = [ gettext fileutils ];
 
   doCheck = true;
 
-  checkInputs = lib.optional doCheck ounit;
+  checkInputs = [ ounit ];
 
   dontStrip = true;
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocamlgraph/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ocamlgraph/default.nix
index d2a94112eb3a..df684f166e17 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocamlgraph/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocamlgraph/default.nix
@@ -1,4 +1,7 @@
-{stdenv, fetchurl, ocaml, findlib, lablgtk ? null}:
+{ stdenv, fetchurl, ocaml, findlib
+, gtkSupport ? true
+, lablgtk
+}:
 
 stdenv.mkDerivation rec {
   pname = "ocamlgraph";
@@ -9,22 +12,19 @@ stdenv.mkDerivation rec {
     sha256 = "0m9g16wrrr86gw4fz2fazrh8nkqms0n863w7ndcvrmyafgxvxsnr";
   };
 
-  buildInputs = [ ocaml findlib lablgtk ];
-
-  patches = ./destdir.patch;
-
-  postPatch = ''
-    sed -i 's@$(DESTDIR)$(OCAMLLIB)/ocamlgraph@$(DESTDIR)/lib/ocaml/${ocaml.version}/site-lib/ocamlgraph@' Makefile.in
-    sed -i 's@OCAMLFINDDEST := -destdir $(DESTDIR)@@' Makefile.in
-    ${stdenv.lib.optionalString (lablgtk != null)
-      "sed -i 's@+lablgtk2@${lablgtk}/lib/ocaml/${ocaml.version}/site-lib/lablgtk2 -I ${lablgtk}/lib/ocaml/${ocaml.version}/site-lib/stublibs@' configure Makefile.in editor/Makefile"}
-  '';
+  buildInputs = [ ocaml findlib ]
+  ++ stdenv.lib.optional gtkSupport lablgtk
+  ;
 
   createFindlibDestdir = true;
 
-  buildPhase = ''
-    make all
-    make install-findlib
+  buildFlags =  [ "all" ];
+  installTargets = [ "install-findlib" ];
+
+  postInstall = stdenv.lib.optionalString gtkSupport ''
+    mkdir -p $out/bin
+    cp dgraph/dgraph.opt $out/bin/graph-viewer
+    cp editor/editor.opt $out/bin/graph-editor
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocamlgraph/destdir.patch b/nixpkgs/pkgs/development/ocaml-modules/ocamlgraph/destdir.patch
deleted file mode 100644
index 38fca1c491fa..000000000000
--- a/nixpkgs/pkgs/development/ocaml-modules/ocamlgraph/destdir.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -Naur -x '*~' ocamlgraph-1.8.1/Makefile.in ocamlgraph-1.8.1-new//Makefile.in
---- ocamlgraph-1.8.1/Makefile.in	2011-10-17 09:57:03.000000000 -0430
-+++ ocamlgraph-1.8.1-new//Makefile.in	2011-11-24 13:01:22.626004819 -0430
-@@ -16,8 +16,8 @@
- ##########################################################################
- 
- # Where to install the binaries
--DESTDIR	=
- prefix	=@prefix@
-+DESTDIR=$(prefix)
- exec_prefix=@exec_prefix@
- datarootdir=@datarootdir@
- BINDIR	=$(DESTDIR)@bindir@
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocamlnet/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ocamlnet/default.nix
index 7d9a0573db7b..5b6e0dde8b75 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocamlnet/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocamlnet/default.nix
@@ -8,11 +8,11 @@ else
 
 stdenv.mkDerivation rec {
   name = "ocaml${ocaml.version}-ocamlnet-${version}";
-  version = "4.1.7";
+  version = "4.1.8";
 
   src = fetchurl {
     url = "http://download.camlcity.org/download/ocamlnet-${version}.tar.gz";
-    sha256 = "0r9gl0lsgxk2achixxqzm8bm5l9jwc4vwihf0rvxxa9v9q9vfdhi";
+    sha256 = "1x703mjqsv9nvffnkj5i36ij2s5zfvxxll2z1qj6a7p428b2yfnm";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocplib-json-typed/browser.nix b/nixpkgs/pkgs/development/ocaml-modules/ocplib-json-typed/browser.nix
index af3341e7e598..8db892f325e2 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocplib-json-typed/browser.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocplib-json-typed/browser.nix
@@ -3,6 +3,7 @@
 buildDunePackage {
   pname = "ocplib-json-typed-browser";
   inherit (ocplib-json-typed) version src;
+  useDune2 = true;
 
   propagatedBuildInputs = [ ocplib-json-typed js_of_ocaml ];
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ocsigen-server/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ocsigen-server/default.nix
index 0d56f2c783fb..30ddd005b79b 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ocsigen-server/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ocsigen-server/default.nix
@@ -1,10 +1,10 @@
 { stdenv, fetchFromGitHub, which, ocaml, findlib, lwt_react, ssl, lwt_ssl
 , lwt_log, ocamlnet, ocaml_pcre, cryptokit, tyxml, xml-light, ipaddr
 , pgocaml, camlzip, ocaml_sqlite3
-, makeWrapper
+, makeWrapper, fetchpatch
 }:
 
-if !stdenv.lib.versionAtLeast ocaml.version "4.03"
+if !stdenv.lib.versionAtLeast ocaml.version "4.06.1"
 then throw "ocsigenserver is not available for OCaml ${ocaml.version}"
 else
 
@@ -13,16 +13,22 @@ let mkpath = p: n:
 in
 
 stdenv.mkDerivation rec {
-  version = "2.15.0";
+  version = "2.16.0";
   pname = "ocsigenserver";
 
   src = fetchFromGitHub {
     owner = "ocsigen";
     repo = "ocsigenserver";
     rev = version;
-    sha256 = "15qdkxcbl9c1bbn0fh9awjw0hjn7r6awcn288a9vyxln7icdbifw";
+    sha256 = "0dd7zfk8dlajv0297dswaaqh96hjk2ppy8zb67jbkd26nimahk9y";
   };
 
+  # unreleased fix for Makefile typos breaking compilation
+  patches = [ (fetchpatch {
+    url = "https://github.com/ocsigen/ocsigenserver/commit/014aefc4e460686a361b974f16ebb7e0c993b36b.patch";
+    sha256 = "0xda4fj8p5102lh9xmrn5mv3s0ps6yykqj3mpjf72gf4zd6fzcn7";
+  }) ];
+
   buildInputs = [ which makeWrapper ocaml findlib
     lwt_react pgocaml camlzip ocaml_sqlite3
   ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/odoc/default.nix b/nixpkgs/pkgs/development/ocaml-modules/odoc/default.nix
index 3e8ac82add4c..8dde7ba56ffb 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/odoc/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/odoc/default.nix
@@ -4,13 +4,13 @@
 
 buildDunePackage rec {
   pname = "odoc";
-  version = "1.5.0";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "ocaml";
     repo = pname;
     rev = version;
-    sha256 = "14ilq2glcvda8mfhj27jqqwx3392q8ssp9bq9agz7k1k6ilp9dai";
+    sha256 = "0z2nisg1vb5xlk41hqw8drvj90v52wli7zvnih6a844cg6xsvvj2";
   };
 
   buildInputs = [ astring cmdliner cppo fpath result tyxml ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/opam-core/default.nix b/nixpkgs/pkgs/development/ocaml-modules/opam-core/default.nix
new file mode 100644
index 000000000000..22c1ecdf7032
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/opam-core/default.nix
@@ -0,0 +1,20 @@
+{ lib, buildDunePackage, unzip
+, opam, ocamlgraph, re, cppo }:
+
+buildDunePackage rec {
+  pname = "opam-core";
+
+  inherit (opam) src version;
+
+  nativeBuildInputs = [ unzip cppo ];
+  propagatedBuildInputs = [ ocamlgraph re ];
+
+  # get rid of check for curl at configure time
+  # opam-core does not call curl at run time
+  configureFlags = [ "--disable-checks" ];
+
+  meta = opam.meta // {
+    description = "Small standard library extensions, and generic system interaction modules used by opam";
+    maintainers = with lib.maintainers; [ sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/opam-format/default.nix b/nixpkgs/pkgs/development/ocaml-modules/opam-format/default.nix
new file mode 100644
index 000000000000..422729e6d0df
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/opam-format/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildDunePackage, unzip, opam-core, opam-file-format }:
+
+buildDunePackage rec {
+  pname = "opam-format";
+
+  inherit (opam-core) src version;
+
+  minimumOCamlVersion = "4.02.3";
+
+  # get rid of check for curl at configure time
+  # opam-format does not call curl at run time
+  configureFlags = [ "--disable-checks" ];
+
+  nativeBuildInputs = [ unzip ];
+  propagatedBuildInputs = [ opam-core opam-file-format ];
+
+  meta = opam-core.meta // {
+    description = "Definition of opam datastructures and its file interface";
+    maintainers = with lib.maintainers; [ sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/opam-repository/default.nix b/nixpkgs/pkgs/development/ocaml-modules/opam-repository/default.nix
new file mode 100644
index 000000000000..1801a9e1c865
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/opam-repository/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildDunePackage, unzip, opam-format, curl }:
+
+buildDunePackage rec {
+  pname = "opam-repository";
+
+  minimumOCamlVersion = "4.02";
+
+  inherit (opam-format) src version;
+
+  patches = [ ./download-tool.patch ];
+  postPatch = ''
+    substituteInPlace src/repository/opamRepositoryConfig.ml \
+      --replace "SUBSTITUTE_NIXOS_CURL_PATH" "\"${curl}/bin/curl\""
+  '';
+
+  nativeBuildInputs = [ unzip ];
+  buildInputs = [ curl ];
+  propagatedBuildInputs = [ opam-format ];
+
+  meta = opam-format.meta // {
+    description = "OPAM repository and remote sources handling, including curl/wget, rsync, git, mercurial, darcs backends";
+    maintainers = with lib.maintainers; [ sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/opam-repository/download-tool.patch b/nixpkgs/pkgs/development/ocaml-modules/opam-repository/download-tool.patch
new file mode 100644
index 000000000000..5af720adca91
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/opam-repository/download-tool.patch
@@ -0,0 +1,29 @@
+diff --git a/src/repository/opamRepositoryConfig.ml b/src/repository/opamRepositoryConfig.ml
+index c2954c1d..528fc621 100644
+--- a/src/repository/opamRepositoryConfig.ml
++++ b/src/repository/opamRepositoryConfig.ml
+@@ -27,23 +27,7 @@ type 'a options_fun =
+   'a
+ 
+ let default = {
+-  download_tool = lazy (
+-    try
+-      let tools =
+-        if OpamStd.Sys.(os () = Darwin)
+-        then ["wget", `Default; "curl", `Curl]
+-        else ["curl", `Curl; "wget", `Default]
+-      in
+-      let cmd, kind =
+-        List.find (fun (c,_) -> OpamSystem.resolve_command c <> None) tools
+-      in
+-      [ CIdent cmd, None ], kind
+-    with Not_found ->
+-      OpamConsole.error_and_exit `Configuration_error
+-        "Could not find a suitable download command. Please make sure you \
+-         have either \"curl\" or \"wget\" installed, or specify a custom \
+-         command through variable OPAMFETCH."
+-  );
++  download_tool = lazy ([ CIdent SUBSTITUTE_NIXOS_CURL_PATH, None ], `Curl);
+   validation_hook = None;
+   retries = 3;
+   force_checksums = None;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/opam-state/default.nix b/nixpkgs/pkgs/development/ocaml-modules/opam-state/default.nix
new file mode 100644
index 000000000000..156976a4a5ad
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/opam-state/default.nix
@@ -0,0 +1,19 @@
+{ lib, buildDunePackage, unzip, opam, opam-repository }:
+
+buildDunePackage rec {
+  pname = "opam-state";
+
+  inherit (opam) src version;
+
+  # get rid of check for curl at configure time
+  # opam-state does not call curl at run time
+  configureFlags = [ "--disable-checks" ];
+
+  nativeBuildInputs = [ unzip ];
+  propagatedBuildInputs = [ opam-repository ];
+
+  meta = opam.meta // {
+    description = "OPAM development library handling the ~/.opam hierarchy, repository and switch states";
+    maintainers = with lib.maintainers; [ sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/opium/default.nix b/nixpkgs/pkgs/development/ocaml-modules/opium/default.nix
index cbd3a14541f5..2681cc609d00 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/opium/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/opium/default.nix
@@ -17,6 +17,8 @@ buildDunePackage {
 	pname = "opium";
 	inherit (opium_kernel) version src meta minimumOCamlVersion;
 
+  useDune2 = true;
+
   doCheck = true;
 
 	buildInputs = [
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ounit2/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ounit2/default.nix
index aea386061937..708c9a6c19e2 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ounit2/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ounit2/default.nix
@@ -1,14 +1,14 @@
 { lib, buildDunePackage, fetchurl, stdlib-shims }:
 
 buildDunePackage rec {
-  minimumOCamlVersion = "4.02.3";
+  minimumOCamlVersion = "4.04";
 
   pname = "ounit2";
-  version = "2.2.2";
+  version = "2.2.3";
 
   src = fetchurl {
     url = "https://github.com/gildor478/ounit/releases/download/v${version}/ounit-v${version}.tbz";
-    sha256 = "1h4xdcyzwyhxg263w9b16x9n6cb11fzazmwnsnpich4djpl9lhsk";
+    sha256 = "1naahh24lbyxmrnzpfz8karniqbf1nknivf96mrvsr6zlx5ad072";
   };
 
   propagatedBuildInputs = [ stdlib-shims ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/piqi-ocaml/default.nix b/nixpkgs/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
index 731a5303ff51..39201d0570b3 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/piqi-ocaml/default.nix
@@ -1,20 +1,18 @@
-{ stdenv, fetchurl, fetchpatch, ocaml, findlib, piqi, camlp4 }:
+{ stdenv, fetchFromGitHub, fetchpatch, ocaml, findlib, piqi, stdlib-shims }:
 
 stdenv.mkDerivation rec {
-  version = "0.7.5";
+  version = "0.7.7";
   pname = "piqi-ocaml";
+  name = "ocaml${ocaml.version}-${pname}-${version}";
 
-  src = fetchurl {
-    url = "https://github.com/alavrik/piqi-ocaml/archive/v${version}.tar.gz";
-    sha256 = "0ngz6y8i98i5v2ma8nk6mc83pdsmf2z0ks7m3xi6clfg3zqbddrv";
+  src = fetchFromGitHub {
+    owner = "alavrik";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1913jpsb8mvqi8609j4g4sm5jhg50dq0xqxgy8nmvknfryyc89nm";
   };
 
-  patches = [ (fetchpatch {
-    url = "https://github.com/alavrik/piqi-ocaml/commit/336e8fdb84e77f4105e9bbb5ab545b8729101308.patch";
-    sha256 = "071s4xjyr6xx95v6az2lbl2igc87n7z5jqnnbhfq2pidrxakd0la";
-  })];
-
-  buildInputs = [ ocaml findlib piqi camlp4 ];
+  buildInputs = [ ocaml findlib piqi stdlib-shims ];
 
   createFindlibDestdir = true;
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/piqi/default.nix b/nixpkgs/pkgs/development/ocaml-modules/piqi/default.nix
index c492035f4f95..f3c489723b2f 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/piqi/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/piqi/default.nix
@@ -1,16 +1,19 @@
-{ stdenv, fetchurl, ocaml, findlib, which, ulex, easy-format, ocaml_optcomp, xmlm, base64 }:
+{ stdenv, fetchFromGitHub, ocaml, findlib, which, sedlex_2, easy-format, xmlm, base64 }:
 
 stdenv.mkDerivation rec {
-  version = "0.6.14";
+  version = "0.6.15";
   pname = "piqi";
+  name = "ocaml${ocaml.version}-${pname}-${version}";
  
-  src = fetchurl {
-    url = "https://github.com/alavrik/piqi/archive/v${version}.tar.gz";
-    sha256 = "1ssccnwqzfyf7syfq2fv4zyhwayxwd75rhq9y28mvq1w6qbww4l7";
+  src = fetchFromGitHub {
+    owner = "alavrik";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0v04hs85xv6d4ysqxyv1dik34dx49yab9shpi4x7iv19qlzl7csb";
   };
 
-  buildInputs = [ ocaml findlib which ocaml_optcomp ];
-  propagatedBuildInputs = [ulex xmlm easy-format base64];
+  buildInputs = [ ocaml findlib which ];
+  propagatedBuildInputs = [ sedlex_2 xmlm easy-format base64 ];
 
   patches = [ ./no-ocamlpath-override.patch ];
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/posix/base.nix b/nixpkgs/pkgs/development/ocaml-modules/posix/base.nix
new file mode 100644
index 000000000000..a6fe690ebcc7
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/posix/base.nix
@@ -0,0 +1,26 @@
+{ lib, buildDunePackage, fetchFromGitHub
+, ctypes, integers
+}:
+
+buildDunePackage rec {
+  pname = "posix-base";
+  version = "2.0.0";
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-posix";
+    rev = "v${version}";
+    sha256 = "18px8hfqcfy2lk8105ki3hrxxigs44gs046ba0fqda6wzd0hr82b";
+  };
+
+  useDune2 = true;
+
+  propagatedBuildInputs = [ ctypes integers ];
+
+  meta = {
+    homepage = "https://www.liquidsoap.info/ocaml-posix/";
+    description = "Base module for the posix bindings";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/posix/socket.nix b/nixpkgs/pkgs/development/ocaml-modules/posix/socket.nix
new file mode 100644
index 000000000000..69a469bbeced
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/posix/socket.nix
@@ -0,0 +1,16 @@
+{ lib, buildDunePackage, posix-base }:
+
+buildDunePackage {
+  pname = "posix-socket";
+
+  inherit (posix-base) version src useDune2;
+
+  propagatedBuildInputs = [ posix-base ];
+
+  doCheck = true;
+
+  meta = posix-base.meta // {
+    description = "Bindings for posix sockets";
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/posix/types.nix b/nixpkgs/pkgs/development/ocaml-modules/posix/types.nix
new file mode 100644
index 000000000000..2512fe892c13
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/posix/types.nix
@@ -0,0 +1,15 @@
+{ lib, buildDunePackage, posix-base }:
+
+buildDunePackage {
+  pname = "posix-types";
+
+  inherit (posix-base) version src useDune2;
+
+  minimumOCamlVersion = "4.03";
+
+  propagatedBuildInputs = [ posix-base ];
+
+  meta = posix-base.meta // {
+    description = "Bindings for the types defined in <sys/types.h>";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ppx_deriving/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ppx_deriving/default.nix
index 612a12bb4183..37a3a55229d4 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ppx_deriving/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ppx_deriving/default.nix
@@ -4,11 +4,11 @@
 
 buildDunePackage rec {
   pname = "ppx_deriving";
-  version = "4.4.1";
+  version = "4.5";
 
   src = fetchzip {
     url = "https://github.com/ocaml-ppx/ppx_deriving/archive/v${version}.tar.gz";
-    sha256 = "1map50w2a35y83bcd19p9yakdkhp04z5as2j2wlygi0b6s0a9vba";
+    sha256 = "1v2xldag54n0xk69vv3j4nln9bzkkpq3rildq118sydzsc9v239z";
   };
 
   buildInputs = [ ppxfind cppo ounit ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix
index 5faaca810394..9af2c6edb320 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ppx_deriving_yojson/default.nix
@@ -4,7 +4,7 @@
 
 buildDunePackage rec {
   pname = "ppx_deriving_yojson";
-  version = "3.5.2";
+  version = "3.5.3";
 
   minimumOCamlVersion = "4.04";
 
@@ -12,7 +12,7 @@ buildDunePackage rec {
     owner = "ocaml-ppx";
     repo = "ppx_deriving_yojson";
     rev = "v${version}";
-    sha256 = "1vbhmnhnj1aa4jrp8xqi52nggwj7vrml83z2j0r0qzvl65v02mc0";
+    sha256 = "030638gp39mr4hkilrjhd98q4s8gjqxifm6fy6bwqrg74hmrl2y5";
   };
 
   buildInputs = [ ppxfind ounit ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ppx_tools/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ppx_tools/default.nix
index a8d438d3731d..5f3f0916178a 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ppx_tools/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ppx_tools/default.nix
@@ -1,6 +1,11 @@
 { stdenv, fetchFromGitHub, buildDunePackage, ocaml, findlib }:
 
-let param = {
+let param =
+  let v6_2 = {
+    version = "6.2";
+    sha256 = "0qf4fwnn4hhk52kjw9frv21v23azqnn4mjvwf1hs0nxf7q4kacb5";
+  }; in
+{
   "4.02" = {
     version = "5.0+4.02.0";
     sha256 = "16drjk0qafjls8blng69qiv35a84wlafpk16grrg2i3x19p8dlj8"; };
@@ -20,15 +25,10 @@ let param = {
   "4.07" = {
     version = "5.1+4.06.0";
     sha256 = "1ww4cspdpgjjsgiv71s0im5yjkr3544x96wsq1vpdacq7dr7zwiw"; };
-  "4.08" = {
-    version = "5.3+4.08.0";
-    sha256 = "0vdmhs3hpmh5iclx4lzgdpf362m4l35zprxs73r84z1yhr4jcr4m"; };
-  "4.09" = {
-    version = "6.0+4.08.0";
-    sha256 = "056cmdajap8mbb8k0raj0cq0y4jf7pf5x0hlivm92w2v7xxf59ns"; };
-  "4.10" = {
-    version = "6.1+4.10.0";
-    sha256 = "0ccx2g4zpwnv52bbzhgxji1nvzmn80jwiqalwwc4s60i9qg51llw"; };
+  "4.08" = v6_2;
+  "4.09" = v6_2;
+  "4.10" = v6_2;
+  "4.11" = v6_2;
 }.${ocaml.meta.branch};
 in
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix
new file mode 100644
index 000000000000..442a4126a897
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildDunePackage, fetchFromGitHub, yojson }:
+
+buildDunePackage rec {
+  pname = "ppx_yojson_conv_lib";
+  version = "0.14.0";
+
+  minimumOCamlVersion = "4.02.3";
+
+  src = fetchFromGitHub {
+    owner = "janestreet";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "12s3xshayy1f8cp9lk6zqwnw60n7cdap55gkksz5w65gdd8bfxmf";
+  };
+
+  propagatedBuildInputs = [ yojson ];
+
+  meta = with lib; {
+    description = "Runtime lib for ppx_yojson_conv";
+    homepage = "https://github.com/janestreet/ppx_yojson_conv_lib";
+    maintainers = [ maintainers.marsam ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/prof_spacetime/default.nix b/nixpkgs/pkgs/development/ocaml-modules/prof_spacetime/default.nix
new file mode 100644
index 000000000000..91e30e155db4
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/prof_spacetime/default.nix
@@ -0,0 +1,43 @@
+{ buildDunePackage
+, lib
+, fetchFromGitHub
+, cmdliner
+, spacetime_lib
+, yojson
+, cohttp
+, ocaml_lwt
+, cohttp-lwt-unix
+, lambdaTerm
+, stdlib-shims
+}:
+
+buildDunePackage rec {
+  pname = "prof_spacetime";
+  version = "0.3.0";
+  useDune2 = true;
+
+  src = fetchFromGitHub {
+    owner = "lpw25";
+    repo = pname;
+    rev = version;
+    sha256 = "1s88gf6x5almmyi58zx4q23w89mvahfjwhvyfg29ya5s1pjbc9hi";
+  };
+
+  buildInputs = [
+    cmdliner
+    spacetime_lib
+    yojson
+    cohttp
+    ocaml_lwt
+    cohttp-lwt-unix
+    lambdaTerm
+    stdlib-shims
+  ];
+
+  meta = {
+    description = "A viewer for OCaml spacetime profiles";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.symphorien ];
+    inherit (src.meta) homepage;
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ptmap/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ptmap/default.nix
index f635fadd6d01..018f1e3edf06 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/ptmap/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/ptmap/default.nix
@@ -1,43 +1,29 @@
-{ stdenv, fetchzip, ocaml, findlib, obuild }:
+{ lib, buildDunePackage, fetchurl
+, seq
+, stdlib-shims
+}:
 
-let param =
-  if stdenv.lib.versionAtLeast ocaml.version "4.07"
-  then {
-    version = "2.0.4";
-    sha256 = "05a391m1l04zigi6ghywj7f5kxy2w6186221k7711wmg56m94yjw";
-  } else {
-    version = "2.0.3";
-    sha256 = "19xykhqk7q25r1pj8rpfj53j2r9ls8mxi1w5m2wqshrf20gf078h";
-  }
-; in
+buildDunePackage rec {
+  pname = "ptmap";
+  version = "2.0.5";
 
-stdenv.mkDerivation {
-  name = "ocaml${ocaml.version}-ptmap-${param.version}";
+  useDune2 = true;
 
-  src = fetchzip {
-    url = "https://github.com/backtracking/ptmap/archive/v${param.version}.tar.gz";
-    inherit (param) sha256;
+  src = fetchurl {
+    url = "https://github.com/backtracking/ptmap/releases/download/${version}/ptmap-${version}.tbz";
+    sha256 = "1apk61fc1y1g7x3m3c91fnskvxp6i0vk5nxwvipj56k7x2pzilgb";
   };
 
-  buildInputs = [ ocaml findlib obuild ];
+  propagatedBuildInputs = [ seq ];
 
-  createFindlibDestdir = true;
+  doCheck = true;
 
-  buildPhase = ''
-    substituteInPlace ptmap.obuild --replace 'build-deps: qcheck' ""
-    obuild configure
-    obuild build lib-ptmap
-  '';
-
-  installPhase = ''
-    obuild install --destdir $out/lib/ocaml/${ocaml.version}/site-lib
-  '';
+  checkInputs = [ stdlib-shims ];
 
   meta = {
     homepage = "https://www.lri.fr/~filliatr/software.en.html";
-    platforms = ocaml.meta.platforms or [];
     description = "Maps over integers implemented as Patricia trees";
-    license = stdenv.lib.licenses.lgpl21;
-    maintainers = with stdenv.lib.maintainers; [ volth ];
+    license = lib.licenses.lgpl21;
+    maintainers = with lib.maintainers; [ volth ];
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/ptset/default.nix b/nixpkgs/pkgs/development/ocaml-modules/ptset/default.nix
new file mode 100644
index 000000000000..b9c534e763d0
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/ptset/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchurl, buildDunePackage
+, stdlib-shims
+}:
+
+buildDunePackage rec {
+  pname = "ptset";
+  version = "1.0.1";
+
+  useDune2 = true;
+
+  src = fetchurl {
+    url = "https://github.com/backtracking/ptset/releases/download/${version}/ptset-${version}.tbz";
+    sha256 = "1pr80mgk12l93mdq1wfsv2b6ccraxs334d5h92qzjh7bw2g13424";
+  };
+
+  doCheck = true;
+
+  propagatedBuildInputs = [ stdlib-shims ];
+
+  meta = {
+    description = "Integer set implementation using Patricia trees";
+    homepage = "https://github.com/backtracking/ptset";
+    license = lib.licenses.lgpl21;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/qcheck/alcotest.nix b/nixpkgs/pkgs/development/ocaml-modules/qcheck/alcotest.nix
new file mode 100644
index 000000000000..4f1baec1e556
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/qcheck/alcotest.nix
@@ -0,0 +1,13 @@
+{ buildDunePackage, qcheck-core, alcotest }:
+
+buildDunePackage {
+  pname = "qcheck-alcotest";
+
+  inherit (qcheck-core) version src;
+
+  propagatedBuildInputs = [ qcheck-core alcotest ];
+
+  meta = qcheck-core.meta // {
+    description = "Alcotest backend for qcheck";
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/qcheck/core.nix b/nixpkgs/pkgs/development/ocaml-modules/qcheck/core.nix
new file mode 100644
index 000000000000..fa72a211ef45
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/qcheck/core.nix
@@ -0,0 +1,23 @@
+{ lib, buildDunePackage, fetchFromGitHub }:
+
+buildDunePackage rec {
+  pname = "qcheck-core";
+  version = "0.15";
+
+  minimumOCamlVersion = "4.03";
+
+  src = fetchFromGitHub {
+    owner = "c-cube";
+    repo = "qcheck";
+    rev = version;
+    sha256 = "1ywaklqm1agvxvzv7pwl8v4zlwc3ykw6l251w43f0gy9cfwqmh3j";
+  };
+
+  meta = {
+    description = "Core qcheck library";
+    homepage = "https://c-cube.github.io/qcheck/";
+    license = lib.licenses.bsd2;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/qcheck/default.nix b/nixpkgs/pkgs/development/ocaml-modules/qcheck/default.nix
index be625f4d8d72..2a0e6c0ae40c 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/qcheck/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/qcheck/default.nix
@@ -1,29 +1,14 @@
-{ stdenv, fetchzip, ocaml, findlib, ocamlbuild, ounit }:
+{ buildDunePackage, qcheck-ounit }:
 
-assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4";
+buildDunePackage {
+  pname = "qcheck";
 
-stdenv.mkDerivation {
+  inherit (qcheck-ounit) version src;
 
-  name = "ocaml${ocaml.version}-qcheck-0.7";
-  src = fetchzip {
-    url = "https://github.com/c-cube/qcheck/archive/0.7.tar.gz";
-    sha256 = "1afy7li74r3ivpvq670gvsj1rmglh5rnvb17p6w8gy5rh30aljah";
-  };
-
-  buildInputs = [ ocaml findlib ocamlbuild ounit ];
-
-  configureFlags = [ "--enable-tests" ];
+  propagatedBuildInputs = [ qcheck-ounit ];
 
-  doCheck = true;
-  checkPhase = "ocaml setup.ml -test";
-
-  createFindlibDestdir = true;
-
-  meta = {
-    description = "QuickCheck inspired property-based testing for OCaml";
-    homepage = "https://github.com/c-cube/qcheck/";
-    license = stdenv.lib.licenses.bsd2;
-    maintainers = with stdenv.lib.maintainers; [ vbgl ];
-    platforms = ocaml.meta.platforms or [];
+  meta = qcheck-ounit.meta // {
+    description = "Compatibility package for qcheck";
   };
+
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/qcheck/ounit.nix b/nixpkgs/pkgs/development/ocaml-modules/qcheck/ounit.nix
new file mode 100644
index 000000000000..06897987a954
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/qcheck/ounit.nix
@@ -0,0 +1,14 @@
+{ buildDunePackage, qcheck-core, ounit }:
+
+buildDunePackage {
+  pname = "qcheck-ounit";
+
+  inherit (qcheck-core) version src;
+
+  propagatedBuildInputs = [ qcheck-core ounit ];
+
+  meta = qcheck-core.meta // {
+    description = "OUnit backend for qcheck";
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/qtest/default.nix b/nixpkgs/pkgs/development/ocaml-modules/qtest/default.nix
index 51a8e08983c7..3bbb542bcba5 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/qtest/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/qtest/default.nix
@@ -1,28 +1,22 @@
-{ stdenv, fetchzip, ocaml, findlib, ocamlbuild, qcheck, ounit }:
+{ lib, buildDunePackage, fetchFromGitHub, qcheck }:
 
-if !stdenv.lib.versionAtLeast ocaml.version "4"
-then throw "qtest is not available for OCaml ${ocaml.version}"
-else
+buildDunePackage rec {
+  pname = "qtest";
+  version = "2.11";
 
-let version = "2.7"; in
-
-stdenv.mkDerivation {
-  name = "ocaml${ocaml.version}-qtest-${version}";
-  src = fetchzip {
-    url = "https://github.com/vincent-hugot/iTeML/archive/v${version}.tar.gz";
-    sha256 = "0z72m2drp67qchvsxx4sg2qjrrq8hp6p9kzdx16ibx58pvpw1sh2";
+  src = fetchFromGitHub {
+    owner = "vincent-hugot";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "10fi2093ny8pp3jsi1gdqsllp3lr4r5mfcs2hrm7qvbnhrdbb0g3";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild ];
-  propagatedBuildInputs = [ qcheck ounit ];
-
-  installFlags = [ "BIN=$(out)/bin" ];
-  preInstall = "mkdir -p $out/bin";
+  propagatedBuildInputs = [ qcheck ];
 
   meta = {
-    description = "Inline (Unit) Tests for OCaml (formerly “qtest”)";
-    homepage = "https://github.com/vincent-hugot/iTeML";
-    platforms = ocaml.meta.platforms or [];
-    maintainers = with stdenv.lib.maintainers; [ vbgl ];
+    description = "Inline (Unit) Tests for OCaml";
+    inherit (src.meta) homepage;
+    maintainers = with lib.maintainers; [ vbgl ];
+    license = lib.licenses.gpl3;
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/re/default.nix b/nixpkgs/pkgs/development/ocaml-modules/re/default.nix
index 2031c469b29c..8881821490ab 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/re/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/re/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip, buildDunePackage, ounit, seq }:
+{ lib, fetchzip, buildDunePackage, ocaml, ounit, seq }:
 
 buildDunePackage rec {
   pname = "re";
@@ -11,14 +11,14 @@ buildDunePackage rec {
     sha256 = "07ycb103mr4mrkxfd63cwlsn023xvcjp0ra0k7n2gwrg0mwxmfss";
   };
 
-  buildInputs = [ ounit ];
+  buildInputs = lib.optional doCheck ounit;
   propagatedBuildInputs = [ seq ];
-  doCheck = true;
+  doCheck = lib.versionAtLeast ocaml.version "4.04";
 
   meta = {
     homepage = "https://github.com/ocaml/ocaml-re";
     description = "Pure OCaml regular expressions, with support for Perl and POSIX-style strings";
-    license = stdenv.lib.licenses.lgpl2;
-    maintainers = with stdenv.lib.maintainers; [ vbgl ];
+    license = lib.licenses.lgpl2;
+    maintainers = with lib.maintainers; [ vbgl ];
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/sosa/default.nix b/nixpkgs/pkgs/development/ocaml-modules/sosa/default.nix
new file mode 100644
index 000000000000..4278989341f1
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/sosa/default.nix
@@ -0,0 +1,30 @@
+{ lib, fetchFromGitHub, stdenv
+, findlib, nonstd, ocaml, ocamlbuild
+}:
+
+stdenv.mkDerivation rec {
+  name = "ocaml${ocaml.version}-sosa-${version}";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "hammerlab";
+    repo = "sosa";
+    rev = "sosa.${version}";
+    sha256 = "053hdv6ww0q4mivajj4iyp7krfvgq8zajq9d8x4mia4lid7j0dyk";
+  };
+
+  buildInputs = [ nonstd ocaml ocamlbuild findlib ];
+
+  buildPhase = "make build";
+
+  createFindlibDestdir = true;
+
+  doCheck = true;
+
+  meta = with lib; {
+    homepage = http://www.hammerlab.org/docs/sosa/master/index.html;
+    description = "Sane OCaml String API";
+    license = licenses.isc;
+    maintainers = [ maintainers.alexfmpe ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/spacetime_lib/default.nix b/nixpkgs/pkgs/development/ocaml-modules/spacetime_lib/default.nix
index 6b1b45cb2fb4..db6d184655cb 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/spacetime_lib/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/spacetime_lib/default.nix
@@ -13,6 +13,10 @@ buildDunePackage rec {
 
   propagatedBuildInputs = [ owee ];
 
+  preConfigure = ''
+    bash ./configure.sh
+  '';
+
   meta = {
     description = "An OCaml library providing some simple operations for handling OCaml “spacetime” profiles";
     inherit (src.meta) homepage;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/srt/default.nix b/nixpkgs/pkgs/development/ocaml-modules/srt/default.nix
new file mode 100644
index 000000000000..7f0897ae6626
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/srt/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildDunePackage, fetchFromGitHub
+, dune-configurator
+, posix-socket
+, srt
+}:
+
+buildDunePackage rec {
+  pname = "srt";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "savonet";
+    repo = "ocaml-srt";
+    rev = "v${version}";
+    sha256 = "0xh89w4j7lljvpy2n08x6m9kw88f82snmzf23kp0gw637sjnrj6f";
+  };
+
+  useDune2 = true;
+
+  buildInputs = [ dune-configurator ];
+  propagatedBuildInputs = [ posix-socket srt ];
+
+  meta = {
+    description = "OCaml bindings for the libsrt library";
+    license = lib.licenses.gpl2Only;
+    inherit (src.meta) homepage;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/tls/default.nix b/nixpkgs/pkgs/development/ocaml-modules/tls/default.nix
index 0c3eaf33e782..b52561d760e9 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/tls/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/tls/default.nix
@@ -4,14 +4,14 @@
 , hacl_x25519, fiat-p256, hkdf, logs, alcotest }:
 
 buildDunePackage rec {
-  minimumOCamlVersion = "4.07";
+  minimumOCamlVersion = "4.08";
 
-  version = "0.12.1";
+  version = "0.12.5";
   pname = "tls";
 
   src = fetchurl {
     url = "https://github.com/mirleft/ocaml-tls/releases/download/v${version}/tls-v${version}.tbz";
-    sha256 = "09jhzjhni3il5bmy2c6gylmg9s45ppckjc7nm5nyg5dbm699cwxg";
+    sha256 = "1zsh3fx8l3d9lc9w516apzabqsix2ss8nv6kbbzjmp2d4hwh818b";
   };
 
   useDune2 = true;
diff --git a/nixpkgs/pkgs/development/ocaml-modules/torch/default.nix b/nixpkgs/pkgs/development/ocaml-modules/torch/default.nix
index 457259bb1bbd..0e2bdf7311c2 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/torch/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/torch/default.nix
@@ -1,4 +1,5 @@
-{ stdenv
+{ lib
+, stdenv
 , buildDunePackage
 , fetchFromGitHub
 , cmdliner
@@ -15,17 +16,15 @@
 
 buildDunePackage rec {
   pname = "torch";
-  version = "0.8";
-
-  owner = "LaurentMazare";
+  version = "0.10";
 
   minimumOCamlVersion = "4.07";
 
   src = fetchFromGitHub {
-    inherit owner;
+    owner = "LaurentMazare";
     repo   = "ocaml-${pname}";
     rev    = version;
-    sha256 = "19w31paj24pns2ahk9j9rgpkb5hpcd41kfaarxrlddww5dl6pxvi";
+    sha256 = "1rqrv6hbical8chk0bl2nf60q6m4b5d1gab9fc5q03vkz2987f9b";
   };
 
   propagatedBuildInputs = [
@@ -44,10 +43,10 @@ buildDunePackage rec {
 
   preBuild = ''export LIBTORCH=${pytorch.dev}/'';
 
-  doCheck = true;
+  doCheck = !stdenv.isAarch64;
   checkPhase = "dune runtest";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     inherit (src.meta) homepage;
     description = "Ocaml bindings to Pytorch";
     maintainers = [ maintainers.bcdarwin ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/tsort/default.nix b/nixpkgs/pkgs/development/ocaml-modules/tsort/default.nix
new file mode 100644
index 000000000000..d47236ba96b8
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/tsort/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildDunePackage, fetchFromGitHub, containers }:
+
+buildDunePackage rec {
+  pname = "tsort";
+  version = "2.0.0";
+  src = fetchFromGitHub {
+    owner = "dmbaturin";
+    repo = "ocaml-tsort";
+    rev = version;
+    sha256 = "0i67ys5p5i8q9p0nhkq4pjg9jav8dy0fiy975a365j7m6bhrwgc1";
+  };
+
+  propagatedBuildInputs = [ containers ];
+
+  meta = {
+    description = "Easy to use and user-friendly topological sort";
+    inherit (src.meta) homepage;
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.vbgl ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/tuntap/default.nix b/nixpkgs/pkgs/development/ocaml-modules/tuntap/default.nix
index 8e8eaf5fd5e2..a4536316ba41 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/tuntap/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/tuntap/default.nix
@@ -1,25 +1,27 @@
-{ stdenv, fetchzip, ocaml, findlib, ocamlbuild, ipaddr }:
+{ lib, buildDunePackage, fetchurl
+, ipaddr, macaddr, cmdliner
+}:
 
-assert stdenv.lib.versionAtLeast (stdenv.lib.getVersion ocaml) "4.01";
+buildDunePackage rec {
+  pname = "tuntap";
+  version = "2.0.0";
 
-stdenv.mkDerivation {
-  name = "ocaml-tuntap-1.3.0";
+  minimumOCamlVersion = "4.04.2";
 
-  src = fetchzip {
-    url = "https://github.com/mirage/ocaml-tuntap/archive/v1.3.0.tar.gz";
-    sha256 = "1cmd4kky875ks02gm2nb8yr80hmlfcnjdfyc63hvkh49acssy3d5";
+  src = fetchurl {
+    url = "https://github.com/mirage/ocaml-tuntap/releases/download/v${version}/tuntap-v${version}.tbz";
+    sha256 = "12wmls28h3jzikwyfw08d5f7ycsc9njwzbhd3qk2l8jnf5rakfsa";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild ];
-  propagatedBuildInputs = [ ipaddr ];
+  propagatedBuildInputs = [ ipaddr macaddr cmdliner ];
 
-  createFindlibDestdir = true;
+  # tests manipulate network devices and use network
+  # also depend on LWT 5
+  doCheck = false;
 
   meta = {
     description = "Bindings to the UNIX tuntap facility";
-    license = stdenv.lib.licenses.isc;
+    license = lib.licenses.isc;
     homepage = "https://github.com/mirage/ocaml-tuntap";
-    inherit (ocaml.meta) platforms;
   };
-
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/uucd/default.nix b/nixpkgs/pkgs/development/ocaml-modules/uucd/default.nix
index 097676e8abba..355b177b204f 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/uucd/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/uucd/default.nix
@@ -6,11 +6,11 @@ let
 in
 stdenv.mkDerivation rec {
   name = "ocaml-${pname}-${version}";
-  version = "10.0.0";
+  version = "13.0.0";
 
   src = fetchurl {
     url = "${webpage}/releases/${pname}-${version}.tbz";
-    sha256 = "0cdyg6vaic4n58w80qriwvaq1c40ng3fh74ilxrwajbq163k055q";
+    sha256 = "1fg77hg4ibidkv1x8hhzl8z3rzmyymn8m4i35jrdibb8adigi8v2";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild topkg ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/uunf/default.nix b/nixpkgs/pkgs/development/ocaml-modules/uunf/default.nix
index f9569f860869..1d0e5b2bcd94 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/uunf/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/uunf/default.nix
@@ -1,21 +1,50 @@
-{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, uchar, uutf, cmdliner }:
+{ stdenv, fetchurl, unzip, ocaml, findlib, ocamlbuild, topkg, uchar, uutf, cmdliner, uucd }:
 let
   pname = "uunf";
   webpage = "https://erratique.ch/software/${pname}";
+  version = "13.0.0";
+  ucdxml = fetchurl {
+    url = "http://www.unicode.org/Public/${version}/ucdxml/ucd.all.grouped.zip";
+    sha256 = "04gpl09ggb6fb0kmk6298rd8184dv6vcscn28l1gpdv1yjlw1a8q";
+  };
+  gen = fetchurl {
+    url = "https://raw.githubusercontent.com/dbuenzli/uunf/v12.0.0/support/gen.ml";
+    sha256 = "08j2mpi7j6q3rqc6bcdwspqn1s7pkkphznxfdycqjv4h9yaqsymj";
+  };
+  gen_norm = fetchurl {
+    url = "https://raw.githubusercontent.com/dbuenzli/uunf/v12.0.0/support/gen_norm.ml";
+    sha256 = "11vx5l5bag6bja7qj8jv4s2x9fknj3557n0mj87k2apq5gs5f4m5";
+  };
+  gen_props = fetchurl {
+    url = "https://raw.githubusercontent.com/dbuenzli/uunf/v12.0.0/support/gen_props.ml";
+    sha256 = "0a6lhja498kp9lxql0pbfvkgvajs10wx88wkqc7y5m3lrvw46268";
+  };
 in
 
-assert stdenv.lib.versionAtLeast ocaml.version "4.01";
+assert stdenv.lib.versionAtLeast ocaml.version "4.03";
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation {
   name = "ocaml-${pname}-${version}";
-  version = "12.0.0";
+  inherit version;
 
   src = fetchurl {
     url = "${webpage}/releases/${pname}-${version}.tbz";
-    sha256 = "031fxixp37hjv45mib87wxm865k82903w72x60hp6v36k7jn34a4";
+    sha256 = "1qci04nkp24kdls1z4s8kz5dzgky4nwd5r8345nwdrgwmxhw7ksm";
   };
 
-  buildInputs = [ ocaml findlib ocamlbuild topkg uutf cmdliner ];
+  postConfigure = ''
+    rm -f src/uunf_data.ml
+    mkdir -p support/
+    cp ${gen} support/gen.ml
+    cp ${gen_norm} support/gen_norm.ml
+    cp ${gen_props} support/gen_props.ml
+    funzip ${ucdxml} > support/ucd.xml
+    ocaml -I ${findlib}/lib/ocaml/${ocaml.version}/site-lib/ pkg/build_support.ml
+  '';
+
+  nativeBuildInputs = [ unzip ];
+
+  buildInputs = [ ocaml findlib ocamlbuild topkg uutf cmdliner uucd ];
 
   propagatedBuildInputs = [ uchar ];
 
@@ -27,6 +56,5 @@ stdenv.mkDerivation rec {
     platforms = ocaml.meta.platforms or [];
     license = licenses.bsd3;
     maintainers = [ maintainers.vbgl ];
-    broken = stdenv.isAarch64;
   };
 }
diff --git a/nixpkgs/pkgs/development/ocaml-modules/webbrowser/default.nix b/nixpkgs/pkgs/development/ocaml-modules/webbrowser/default.nix
new file mode 100644
index 000000000000..463bfbc79f9d
--- /dev/null
+++ b/nixpkgs/pkgs/development/ocaml-modules/webbrowser/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg
+, astring, bos, cmdliner, rresult
+}:
+
+stdenv.mkDerivation rec {
+	name = "ocaml${ocaml.version}-webbrowser-${version}";
+	version = "0.6.1";
+	src = fetchurl {
+		url = "https://erratique.ch/software/webbrowser/releases/webbrowser-${version}.tbz";
+		sha256 = "137a948bx7b71zfv4za3hhznrn5lzbbrgzjy0das83zms508isx3";
+	};
+
+	nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ];
+	buildInputs = [];
+	propagatedBuildInputs = [ astring bos cmdliner rresult ];
+
+	inherit (topkg) buildPhase installPhase;
+
+	meta = {
+		description = "Open and reload URIs in browsers from OCaml";
+		homepage = "https://erratique.ch/software/webbrowser";
+		license = stdenv.lib.licenses.isc;
+		maintainers = [ stdenv.lib.maintainers.vbgl ];
+		inherit (ocaml.meta) platforms;
+	};
+}
diff --git a/nixpkgs/pkgs/development/ocaml-modules/webmachine/default.nix b/nixpkgs/pkgs/development/ocaml-modules/webmachine/default.nix
index 79e36b66d117..3bf163607cd2 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/webmachine/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/webmachine/default.nix
@@ -5,7 +5,7 @@
 
 buildDunePackage rec {
   pname = "webmachine";
-  version = "0.6.1";
+  version = "0.6.2";
 
   minimumOCamlVersion = "4.04";
 
@@ -13,7 +13,7 @@ buildDunePackage rec {
     owner = "inhabitedtype";
     repo = "ocaml-webmachine";
     rev = "${version}";
-    sha256 = "0kpbxsvjzylbxmxag77k1c8m8mwn4f4xscqk2i7fc591llgq9fp3";
+    sha256 = "1zi1vsm589y2njwzsqkmdbxvs9s4xlgbd62xqw2scp60mccp09nk";
   };
 
   propagatedBuildInputs = [ cohttp dispatch ptime ];
diff --git a/nixpkgs/pkgs/development/ocaml-modules/xtmpl/default.nix b/nixpkgs/pkgs/development/ocaml-modules/xtmpl/default.nix
index 2c4cf4928db9..2264f0dedbf9 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/xtmpl/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/xtmpl/default.nix
@@ -17,6 +17,10 @@ stdenv.mkDerivation rec {
 
   patches = [ ./jsoo.patch ];
 
+  postPatch = ''
+    substituteInPlace Makefile --replace js_of_ocaml.ppx js_of_ocaml-ppx
+  '';
+
   buildInputs = [ ocaml findlib ppx_tools js_of_ocaml js_of_ocaml-ppx ];
   propagatedBuildInputs = [ iri re ];
 
diff --git a/nixpkgs/pkgs/development/ocaml-modules/zarith/default.nix b/nixpkgs/pkgs/development/ocaml-modules/zarith/default.nix
index 1123cc0d2b4e..f9996eb6af62 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/zarith/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/zarith/default.nix
@@ -6,9 +6,9 @@
 let source =
   if stdenv.lib.versionAtLeast ocaml.version "4.02"
   then {
-    version = "1.9";
-    url = "https://github.com/ocaml/Zarith/archive/release-1.9.tar.gz";
-    sha256 = "1xrqcaj5gp52xp4ybpnblw8ciwlgrr0zi7rg7hnk8x83isjkpmwx";
+    version = "1.10";
+    url = "https://github.com/ocaml/Zarith/archive/release-1.10.tar.gz";
+    sha256 = "1qxrl0v2mk9wghc1iix3n0vfz2jbg6k5wpn1z7p02m2sqskb0zhb";
   } else {
     version = "1.3";
     url = "http://forge.ocamlcore.org/frs/download.php/1471/zarith-1.3.tgz";
diff --git a/nixpkgs/pkgs/development/ocaml-modules/zed/default.nix b/nixpkgs/pkgs/development/ocaml-modules/zed/default.nix
index 66054b334076..847951783ee0 100644
--- a/nixpkgs/pkgs/development/ocaml-modules/zed/default.nix
+++ b/nixpkgs/pkgs/development/ocaml-modules/zed/default.nix
@@ -3,8 +3,8 @@
 let param =
   if stdenv.lib.versionAtLeast ocaml.version "4.02" then
   {
-    version = "2.0.3";
-    sha256 = "0pa9awinqr0plp4b2az78dwpvh01pwaljnn5ydg8mc6hi7rmir55";
+    version = "3.1.0";
+    sha256 = "04vr1a94imsghm98iigc35rhifsz0rh3qz2qm0wam2wvp6vmrx0p";
     buildInputs = [ dune ];
     propagatedBuildInputs = [ charInfo_width ];
     extra = {
diff --git a/nixpkgs/pkgs/development/perl-modules/Percona-Toolkit/default.nix b/nixpkgs/pkgs/development/perl-modules/Percona-Toolkit/default.nix
index 58ccd2bc8be2..b2c5437e3805 100644
--- a/nixpkgs/pkgs/development/perl-modules/Percona-Toolkit/default.nix
+++ b/nixpkgs/pkgs/development/perl-modules/Percona-Toolkit/default.nix
@@ -1,20 +1,32 @@
-{ lib, fetchFromGitHub, buildPerlPackage, DBDmysql, DBI, IOSocketSSL, TermReadKey }:
+{ stdenv, fetchFromGitHub, buildPerlPackage, shortenPerlShebang
+, DBDmysql, DBI, IOSocketSSL, TermReadKey
+}:
 
-buildPerlPackage {
+buildPerlPackage rec {
   pname = "Percona-Toolkit";
-  version = "3.0.12";
+  version = "3.2.0";
+
   src = fetchFromGitHub {
     owner = "percona";
     repo = "percona-toolkit";
-    rev = "3.0.12";
-    sha256 = "0xk4h4dzl80kf97lbx0nznx9ajrb6kkg7k3iwca3rj6f3rqggv9y";
+    rev = "v${version}";
+    sha256 = "084ldpskvlfm32lfss5qqzm5y9b8hf029aa4i5pcnzgb53xaxkqx";
   };
+
   outputs = [ "out" ];
+
+  nativeBuildInputs = [ shortenPerlShebang ];
+
   buildInputs = [ DBDmysql DBI IOSocketSSL TermReadKey ];
-  meta = {
+
+  postInstall = ''
+    shortenPerlShebang $(grep -l "/bin/env perl" $out/bin/*)
+  '';
+
+  meta = with stdenv.lib; {
     description = ''Collection of advanced command-line tools to perform a variety of MySQL and system tasks.'';
-    homepage = "http://www.percona.com/software/percona-toolkit";
-    license = with lib.licenses; [ gpl2 ];
-    maintainers = with lib.maintainers; [ izorkin ];
+    homepage = "https://www.percona.com/software/database-tools/percona-toolkit";
+    license = with licenses; [ gpl2 ];
+    maintainers = with maintainers; [ izorkin ];
   };
 }
diff --git a/nixpkgs/pkgs/development/perl-modules/WWW-Curl-4.17-Skip-preprocessor-symbol-only-CURL_STRICTER.patch b/nixpkgs/pkgs/development/perl-modules/WWW-Curl-4.17-Skip-preprocessor-symbol-only-CURL_STRICTER.patch
deleted file mode 100644
index 34221c0d20c7..000000000000
--- a/nixpkgs/pkgs/development/perl-modules/WWW-Curl-4.17-Skip-preprocessor-symbol-only-CURL_STRICTER.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 0be0223422e6e5f4091c6e4e058d213623eed105 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
-Date: Mon, 12 Sep 2016 14:40:44 +0200
-Subject: [PATCH] Skip preprocessor symbol only CURL_STRICTER
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-CURL_STRICTER leaked into curl-constants.c when building against
-curl-7.50.2. This is a preprocessor only macro without a value.
-
-CPAN RT#117793
-
-Signed-off-by: Petr Písař <ppisar@redhat.com>
----
- Makefile.PL | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.PL b/Makefile.PL
-index f9170bb..ad2bd3d 100644
---- a/Makefile.PL
-+++ b/Makefile.PL
-@@ -127,7 +127,7 @@ if (!defined($curl_h)) {
-     close H;
- 
-     for my $e (sort @syms) {
--       if($e =~ /(OBSOLETE|^CURL_EXTERN|_LAST\z|_LASTENTRY\z)/) {
-+       if($e =~ /(OBSOLETE|^CURL_EXTERN|^CURL_STRICTER\z|_LAST\z|_LASTENTRY\z)/) {
-           next;
-        }
-        my ($group) = $e =~ m/^([^_]+_)/;
--- 
-2.7.4
-
diff --git a/nixpkgs/pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix b/nixpkgs/pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix
index dc48c9931a8d..ccc59980dd1d 100644
--- a/nixpkgs/pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix
+++ b/nixpkgs/pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix
@@ -2,13 +2,13 @@
 
 buildPerlPackage rec {
   pname = "WWW-YoutubeViewer";
-  version = "3.7.5";
+  version = "3.7.9";
 
   src = fetchFromGitHub {
     owner  = "trizen";
     repo   = "youtube-viewer";
     rev    = version;
-    sha256 = "1caz56sxy554avz2vdv9gm7gyqcq0gyixzrh5v9ixmg6vxif5d4f";
+    sha256 = "16p0sa91h0zpqdpqmy348g6b9qj5f6qrbzrljn157vk00cg6mx18";
   };
 
   nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin shortenPerlShebang;
diff --git a/nixpkgs/pkgs/development/perl-modules/crypt-openpgp-remove-impure-keygen-tests.patch b/nixpkgs/pkgs/development/perl-modules/crypt-openpgp-remove-impure-keygen-tests.patch
new file mode 100644
index 000000000000..70dc0826276b
--- /dev/null
+++ b/nixpkgs/pkgs/development/perl-modules/crypt-openpgp-remove-impure-keygen-tests.patch
@@ -0,0 +1,30 @@
+diff --git a/t/13-keygen.t b/t/13-keygen.t
+index f430ffb..2050624 100644
+--- a/t/13-keygen.t
++++ b/t/13-keygen.t
+@@ -1,5 +1,5 @@
+ use strict;
+-use Test::More tests => 29;
++use Test::More tests => 25;
+ 
+ use Crypt::OpenPGP;
+ use Crypt::OpenPGP::Message;
+@@ -26,9 +26,6 @@ for my $type ( qw( RSA DSA ) ) {
+     isa_ok $pub->key, 'Crypt::OpenPGP::Certificate';
+     isa_ok $sec->key, 'Crypt::OpenPGP::Certificate';
+ 
+-    is $pub->key->key_id, $sec->key->key_id,
+-        'public key_id matches secret key_id';
+-
+     is $pub->primary_uid, $id, 'primary_uid matches';
+ 
+     is $pub->key->key->size, $bits, 'keysize (in bits) matches for pubkey';
+@@ -47,8 +44,6 @@ for my $type ( qw( RSA DSA ) ) {
+     isa_ok $pieces[1], 'Crypt::OpenPGP::UserID';
+     isa_ok $pieces[2], 'Crypt::OpenPGP::Signature';
+ 
+-    is $pieces[0]->key_id, $sec->key->key_id,
+-        'serialized public key_id matches secret key_id';
+ }
+ 
+ {
diff --git a/nixpkgs/pkgs/development/perl-modules/generic/default.nix b/nixpkgs/pkgs/development/perl-modules/generic/default.nix
index 79c7919a3541..c7b57eae9067 100644
--- a/nixpkgs/pkgs/development/perl-modules/generic/default.nix
+++ b/nixpkgs/pkgs/development/perl-modules/generic/default.nix
@@ -42,7 +42,7 @@ toPerlModule(stdenv.mkDerivation (
     version = lib.getVersion attrs;                     # TODO: phase-out `attrs.name`
     builder = ./builder.sh;
     buildInputs = buildInputs ++ [ perl ];
-    nativeBuildInputs = nativeBuildInputs ++ [ (perl.dev or perl) ];
+    nativeBuildInputs = nativeBuildInputs ++ [ (perl.mini or perl) ];
     fullperl = buildPerl;
   }
 ))
diff --git a/nixpkgs/pkgs/development/perl-modules/perl-POE-1.367-pod_linkcheck.patch b/nixpkgs/pkgs/development/perl-modules/perl-POE-1.367-pod_linkcheck.patch
deleted file mode 100644
index e2f604985beb..000000000000
--- a/nixpkgs/pkgs/development/perl-modules/perl-POE-1.367-pod_linkcheck.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-commit 6d985026
-Author: Michael Brantley <limeytexan@gmail.com>
-Date:   Tue Feb 20 07:12:06 2018 -0500
-
-    Update broken Pod links in lib/POE/Filter/HTTPD.pm
-    
-    Update Pod links to refer only to the utf8 module and not its methods,
-    fix a mis-capitalized internal reference, and convert the dangling
-    "MaxContent" link into a code reference.
-    
-    Resolves bug: https://rt.cpan.org/Public/Bug/Display.html?id=124496
-
-diff --git a/lib/POE/Filter/HTTPD.pm b/lib/POE/Filter/HTTPD.pm
-index 9d4898e3..517be691 100644
---- a/lib/POE/Filter/HTTPD.pm
-+++ b/lib/POE/Filter/HTTPD.pm
-@@ -621,10 +621,10 @@ how to use these objects.
- 
- HTTP headers are not allowed to have UTF-8 characters; they must be
- ISO-8859-1.  POE::Filter::HTTPD will convert all UTF-8 into the MIME encoded
--equivalent.  It uses L<utf8::is_utf8> for detection-8 and
-+equivalent.  It uses C<utf8::is_utf8> for detection-8 and
- L<Email::MIME::RFC2047::Encoder> for convertion.  If L<utf8> is not
- installed, no conversion happens.  If L<Email::MIME::RFC2047::Encoder> is
--not installed, L<utf8::downgrade> is used instead.  In this last case, you will
-+not installed, C<utf8::downgrade> is used instead.  In this last case, you will
- see a warning if you try to send UTF-8 headers.
- 
- 
-@@ -651,8 +651,8 @@ streaming mode this filter will return either an HTTP::Request object or a
- block of content.  The HTTP::Request object's content will return empty. 
- The blocks of content will be parts of the request's body, up to
- Content-Length in size.  You distinguish between request objects and content
--blocks using C<Scalar::Util/bless> (See L</Streaming request> below).  This
--option supersedes L</MaxContent>.
-+blocks using C<Scalar::Util/bless> (See L</Streaming Request> below).  This
-+option supersedes C<MaxContent>.
- 
- =head1 CAVEATS
- 
diff --git a/nixpkgs/pkgs/development/perl-modules/perl-POE-1.367-pod_no404s.patch b/nixpkgs/pkgs/development/perl-modules/perl-POE-1.367-pod_no404s.patch
deleted file mode 100644
index 097a7677e517..000000000000
--- a/nixpkgs/pkgs/development/perl-modules/perl-POE-1.367-pod_no404s.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-commit 32571a21
-Author: Michael Brantley <limeytexan@gmail.com>
-Date:   Tue Feb 20 07:07:22 2018 -0500
-
-    Update old URLs referenced in Pod
-    
-    Remove mention of old URLs, replace mention of canonical SVN repo with
-    the new git-based one at github.com.
-    
-    Resolves bug: https://rt.cpan.org/Public/Bug/Display.html?id=124495
-
-diff --git a/lib/POE.pm b/lib/POE.pm
-index 80e7feac..0554ff70 100644
---- a/lib/POE.pm
-+++ b/lib/POE.pm
-@@ -465,7 +465,7 @@ code snippets there as well.
- The following command will fetch the most current version of POE into
- the "poe" subdirectory:
- 
--  svn co https://poe.svn.sourceforge.net/svnroot/poe poe
-+  git clone https://github.com/rcaputo/poe.git
- 
- =head2 SourceForge
- 
-@@ -535,18 +535,9 @@ https://rt.cpan.org/Dist/Display.html?Status=Active&Queue=POE
- 
- =head2 Repositories and Changes
- 
--Thanks to the magic of distributed version control, POE is hosted at
--three locations for redundancy.  You can browse the source at any one
--of:
--
--https://github.com/rcaputo/poe
--
--https://gitorious.org/poe
--
--http://poe.git.sourceforge.net/git/gitweb-index.cgi
--
--Complete change logs can also be browsed at those sites.  They all
--provide RSS news feeds for those who want to follow development in
-+You can browse the POE source and complete change logs at
-+https://github.com/rcaputo/poe. It also provides an RSS
-+news feed for those who want to follow development in
- near-realtime.
- 
- =head2 Other Resources
diff --git a/nixpkgs/pkgs/development/perl-modules/strip-nondeterminism/default.nix b/nixpkgs/pkgs/development/perl-modules/strip-nondeterminism/default.nix
index 7ac0b82ed101..3557ed68cec6 100644
--- a/nixpkgs/pkgs/development/perl-modules/strip-nondeterminism/default.nix
+++ b/nixpkgs/pkgs/development/perl-modules/strip-nondeterminism/default.nix
@@ -1,4 +1,4 @@
-{ lib, file, fetchFromGitLab, buildPerlPackage, ArchiveZip, ArchiveCpio }:
+{ stdenv, file, fetchFromGitLab, buildPerlPackage, ArchiveZip, ArchiveCpio, shortenPerlShebang }:
 
 buildPerlPackage rec {
   pname = "strip-nondeterminism";
@@ -17,6 +17,7 @@ buildPerlPackage rec {
   # stray test failure
   doCheck = false;
 
+  nativeBuildInputs = stdenv.lib.optionals stdenv.isDarwin [ shortenPerlShebang ];
   buildInputs = [ ArchiveZip ArchiveCpio file ];
 
   perlPostHook = ''
@@ -25,7 +26,11 @@ buildPerlPackage rec {
     rm $out/share/man/man1/dh_strip_nondeterminism.1.gz
   '';
 
-  meta = with lib; {
+  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+    shortenPerlShebang $out/bin/strip-nondeterminism
+  '';
+
+  meta = with stdenv.lib; {
     description = "A Perl module for stripping bits of non-deterministic information";
     homepage = "https://reproducible-builds.org/";
     license = licenses.gpl3;
diff --git a/nixpkgs/pkgs/development/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch b/nixpkgs/pkgs/development/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch
index add6d9df3b7f..f66ed0dfe019 100644
--- a/nixpkgs/pkgs/development/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch
+++ b/nixpkgs/pkgs/development/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch
@@ -16,28 +16,30 @@ diff --git a/Makefile.PL b/Makefile.PL
 index 505d1df..fc38b76 100644
 --- a/Makefile.PL
 +++ b/Makefile.PL
-@@ -29,12 +29,17 @@ foreach (@ARGV) {
+@@ -28,12 +28,18 @@ foreach (@ARGV) {
  @ARGV = @replacement_args;
  
  unless (
--    check_lib(    # fill in what you prompted the user for here
--        lib     => [qw(expat)],
--        header  => ['expat.h'],
--        incpath => $expat_incpath,
--        ( $expat_libpath ? ( libpath => $expat_libpath ) : () ),
--    )
-+    #check_lib(    # fill in what you prompted the user for here
-+    #    lib     => [qw(expat)],
-+    #    header  => ['expat.h'],
-+    #    incpath => $expat_incpath,
-+    #    ( $expat_libpath ? ( libpath => $expat_libpath ) : () ),
-+    #)
-+    # The check_lib implementation fails horribly with cross-compilation.
-+    # We are giving known good paths to expat.
-+    # And in all cases, the previous behaviour of not actually failing
-+    # seemed to work just fine :/.
-+    false
- ) {
+-  check_lib(     # fill in what you prompted the user for here
+-    lib => [qw(expat)],
+-    header => ['expat.h'],
+-    incpath => $expat_incpath,
+-    ($expat_libpath?
+-    (libpath => $expat_libpath):()),
+-  )) {
++  #check_lib(     # fill in what you prompted the user for here
++  #  lib => [qw(expat)],
++  #  header => ['expat.h'],
++  #  incpath => $expat_incpath,
++  #  ($expat_libpath?
++  #  (libpath => $expat_libpath):()),
++  #)
++  # The check_lib implementation fails horribly with cross-compilation.
++  # We are giving known good paths to expat.
++  # And in all cases, the previous behaviour of not actually failing
++  # seemed to work just fine :/.
++  false
++  ) {
      warn <<'Expat_Not_Installed;';
  
 -- 
diff --git a/nixpkgs/pkgs/development/python-modules/3to2/default.nix b/nixpkgs/pkgs/development/python-modules/3to2/default.nix
index ff64a6d1a473..8870388c2846 100644
--- a/nixpkgs/pkgs/development/python-modules/3to2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/3to2/default.nix
@@ -24,6 +24,8 @@ buildPythonPackage rec {
   # Test failing due to upstream issue (https://bitbucket.org/amentajo/lib3to2/issues/50/testsuite-fails-with-new-python-35)
   doCheck = false;
 
+  dontUsePythonRecompileBytecode = true;
+
   meta = {
     homepage = "https://bitbucket.org/amentajo/lib3to2";
     description = "Refactors valid 3.x syntax into valid 2.x syntax, if a syntactical conversion is possible";
diff --git a/nixpkgs/pkgs/development/python-modules/Cython/default.nix b/nixpkgs/pkgs/development/python-modules/Cython/default.nix
index 3d5afd52abdd..84f54fd7af62 100644
--- a/nixpkgs/pkgs/development/python-modules/Cython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Cython/default.nix
@@ -26,11 +26,11 @@ let
 
 in buildPythonPackage rec {
   pname = "Cython";
-  version = "0.29.19";
+  version = "0.29.21";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0n2j87nka8cs772qc60d0c7lrpvsw0y8p3qzvhrsi3nmq1yqmycp";
+    sha256 = "1bcwpra7c6k30yvic3sw2v3rq2dr40ypc4zqif6kr52mpn4wnyp5";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/Fabric/default.nix b/nixpkgs/pkgs/development/python-modules/Fabric/default.nix
index c6fb898e0705..1025ed6a05ee 100644
--- a/nixpkgs/pkgs/development/python-modules/Fabric/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Fabric/default.nix
@@ -19,9 +19,13 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ invoke paramiko cryptography ];
   checkInputs = [ pytest mock pytest-relaxed ];
 
+  # requires pytest_relaxed, which doesnt have official support for pytest>=5
+  # https://github.com/bitprophet/pytest-relaxed/issues/12
+  doCheck = false;
   checkPhase = ''
     pytest tests
   '';
+  pythonImportsCheck = [ "fabric" ];
 
   meta = with lib; {
     description = "Pythonic remote execution";
diff --git a/nixpkgs/pkgs/development/python-modules/GitPython/default.nix b/nixpkgs/pkgs/development/python-modules/GitPython/default.nix
index 7b39ebb7a390..67ec5c2e4d1f 100644
--- a/nixpkgs/pkgs/development/python-modules/GitPython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/GitPython/default.nix
@@ -1,13 +1,13 @@
 { lib, buildPythonPackage, fetchPypi, isPy27, substituteAll, git, gitdb, mock, nose, ddt }:
 
 buildPythonPackage rec {
-  version = "3.1.3";
+  version = "3.1.7";
   pname = "GitPython";
   disabled = isPy27; # no longer supported
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e107af4d873daed64648b4f4beb89f89f0cfbe3ef558fc7821ed2331c2f8da1a";
+    sha256 = "2db287d71a284e22e5c2846042d0602465c7434d910406990d5b74df4afb0858";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/HAP-python/default.nix b/nixpkgs/pkgs/development/python-modules/HAP-python/default.nix
index 4986c99c5a68..7d273345b58a 100644
--- a/nixpkgs/pkgs/development/python-modules/HAP-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/HAP-python/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "HAP-python";
-  version = "2.8.1";
+  version = "2.9.2";
 
   # pypi package does not include tests
   src = fetchFromGitHub {
     owner = "ikalchev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "182s3dk7y29wql9bazlnw840xqgsbr44ad72m668qgxd82jl6y9c";
+    sha256 = "1d2ji2psla7jq3f9grb0l665nf8qsy2rlbkr2qg1d1a7mvf80x7k";
   };
 
   disabled = !isPy3k;
@@ -34,6 +34,7 @@ buildPythonPackage rec {
     and not test_send_events \
     and not test_not_standalone_aid \
     and not test_start_stop_async_acc \
+    and not test_external_zeroconf \
     and not test_start_stop_sync_acc'
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/HTSeq/default.nix b/nixpkgs/pkgs/development/python-modules/HTSeq/default.nix
index 8158c675898e..abb0c8520dd0 100644
--- a/nixpkgs/pkgs/development/python-modules/HTSeq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/HTSeq/default.nix
@@ -1,12 +1,12 @@
 { stdenv, buildPythonPackage, fetchPypi, cython, numpy, pysam, matplotlib
 }:
 buildPythonPackage rec {
-  version = "0.11.4";
+  version = "0.12.4";
   pname = "HTSeq";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ncn30yvc18aiv1qsa0bvcbjwqy21s0a0kv3v0vghzsn8vbfzq7h";
+    sha256 = "e3980bb4f12899442b4fa6f24f0ba149090f71cedb1eaf7128249afe4eb921ff";
   };
 
   buildInputs = [ cython numpy pysam ];
diff --git a/nixpkgs/pkgs/development/python-modules/JPype1/default.nix b/nixpkgs/pkgs/development/python-modules/JPype1/default.nix
index b70879952f4e..68afbb525c95 100644
--- a/nixpkgs/pkgs/development/python-modules/JPype1/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/JPype1/default.nix
@@ -1,16 +1,18 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , pytest
 }:
 
 buildPythonPackage rec {
   pname = "JPype1";
-  version = "0.7.5";
+  version = "1.0.2";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7bbd25453dc04704d77d854c80acb5537ecb18b9de8a5572e5f22649a2160aaf";
+    sha256 = "c751436350c105f403e382574d34a6ad73e4a677cb0ff5bc9a87581cc07094e1";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/JayDeBeApi/default.nix b/nixpkgs/pkgs/development/python-modules/JayDeBeApi/default.nix
index 738419e8c5c8..0263b4b752d4 100644
--- a/nixpkgs/pkgs/development/python-modules/JayDeBeApi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/JayDeBeApi/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "JayDeBeApi";
-  version = "1.1.1";
+  version = "1.2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0a189xs9zw81jvwwglvf2qyqnk6ra0biljssx9n4ffayqn9glbds";
+    sha256 = "f25e9307fbb5960cb035394c26e37731b64cc465b197c4344cee85ec450ab92f";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/Nikola/default.nix b/nixpkgs/pkgs/development/python-modules/Nikola/default.nix
index 31915383275b..06a85a22033d 100644
--- a/nixpkgs/pkgs/development/python-modules/Nikola/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Nikola/default.nix
@@ -35,7 +35,7 @@
 
 buildPythonPackage rec {
   pname = "Nikola";
-  version = "8.0.4";
+  version = "8.1.1";
 
   # Nix contains only Python 3 supported version of doit, which is a dependency
   # of Nikola. Python 2 support would require older doit 0.29.0 (which on the
@@ -54,7 +54,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2e5c8305ec4423b56af2223336c3309e5c9b8c96df0d6fde46d26cff4c5d6f1a";
+    sha256 = "cee35b011667a965eca01b7d36b54649c9434ab004d8556d6563b7d899df61ed";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/PyRMVtransport/default.nix b/nixpkgs/pkgs/development/python-modules/PyRMVtransport/default.nix
new file mode 100644
index 000000000000..1624a5fda2a6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/PyRMVtransport/default.nix
@@ -0,0 +1,48 @@
+{ lib, buildPythonPackage, fetchFromGitHub
+, flit
+, lxml, aiohttp
+, pytest, pytestcov, pytest-asyncio, pytest-mock, pytest-aiohttp, aresponses
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "PyRMVtransport";
+  version = "0.2.9";
+  format = "pyproject";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "cgtobi";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1h3d0yxzrfi47zil5gr086v0780q768z8v5psvcikqw852f93vxb";
+  };
+
+  nativeBuildInputs = [
+    flit
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    lxml
+  ];
+
+  checkInputs = [
+    pytest
+    pytestcov
+    pytest-asyncio
+    pytest-mock
+    pytest-aiohttp
+    aresponses
+  ];
+  checkPhase = ''
+    pytest --cov=RMVtransport tests
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/cgtobi/PyRMVtransport";
+    description = "Get transport information from opendata.rmv.de";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/Pygments/2_5.nix b/nixpkgs/pkgs/development/python-modules/Pygments/2_5.nix
new file mode 100644
index 000000000000..a0c40550c9a9
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/Pygments/2_5.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, docutils
+}:
+
+buildPythonPackage rec {
+  pname = "Pygments";
+  version = "2.5.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "98c8aa5a9f778fcd1026a17361ddaf7330d1b7c62ae97c3bb0ae73e0b9b6b0fe";
+  };
+
+  propagatedBuildInputs = [ docutils ];
+
+  # Circular dependency with sphinx
+  doCheck = false;
+
+  meta = {
+    homepage = "https://pygments.org/";
+    description = "A generic syntax highlighter";
+    license = lib.licenses.bsd2;
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/Pygments/default.nix b/nixpkgs/pkgs/development/python-modules/Pygments/default.nix
index a0c40550c9a9..e0c5539299dd 100644
--- a/nixpkgs/pkgs/development/python-modules/Pygments/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Pygments/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "Pygments";
-  version = "2.5.2";
+  version = "2.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "98c8aa5a9f778fcd1026a17361ddaf7330d1b7c62ae97c3bb0ae73e0b9b6b0fe";
+    sha256 = "647344a061c249a3b74e230c739f434d7ea4d8b1d5f3721bc0f3558049b38f44";
   };
 
   propagatedBuildInputs = [ docutils ];
diff --git a/nixpkgs/pkgs/development/python-modules/Theano/default.nix b/nixpkgs/pkgs/development/python-modules/Theano/default.nix
index 88aee76fe5bc..cc2b681e415d 100644
--- a/nixpkgs/pkgs/development/python-modules/Theano/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Theano/default.nix
@@ -47,13 +47,13 @@ let
 
 in buildPythonPackage rec {
   pname = "Theano";
-  version = "1.0.4";
+  version = "1.0.5";
 
   disabled = isPyPy || pythonOlder "2.6" || (isPy3k && pythonOlder "3.3");
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "35c9bbef56b61ffa299265a42a4e8f8cb5a07b2997dabaef0f8830b397086913";
+    sha256 = "129f43ww2a6badfdr6b88kzjzz2b0wk0dwkvwb55z6dsagfkk53f";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/WSME/default.nix b/nixpkgs/pkgs/development/python-modules/WSME/default.nix
index ac04861b41d7..c1c6395ab25b 100644
--- a/nixpkgs/pkgs/development/python-modules/WSME/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/WSME/default.nix
@@ -1,49 +1,64 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k
-, pbr, six, simplegeneric, netaddr, pytz, webob
-, cornice, nose, webtest, pecan, transaction, cherrypy, sphinx
-, flask, flask-restful, suds-jurko, glibcLocales }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pbr
+, six
+, simplegeneric
+, netaddr
+, pytz
+, webob
+# Test inputs
+, cherrypy
+, flask
+, flask-restful
+, glibcLocales
+, nose
+, pecan
+, sphinx
+, transaction
+, webtest
+}:
 
 buildPythonPackage rec {
   pname = "WSME";
-  version = "0.9.3";
+  version = "0.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e24fcff24392a0b176e560ffc6591b1f658342bbc992f84e0e8a3c53fd92580a";
+    sha256 = "965b9ce48161e5c50d84aedcf50dca698f05bf07e9d489201bccaec3141cd304";
   };
 
-  postPatch = ''
-    # remove turbogears tests as we don't have it packaged
-    rm tests/test_tg*
-    # WSME seems incompatible with recent SQLAlchemy version
-    rm wsmeext/tests/test_sqlalchemy*
-    # https://bugs.launchpad.net/wsme/+bug/1510823
-    ${if isPy3k then "rm tests/test_cornice.py" else ""}
-  '';
-
-  checkPhae = ''
-    nosetests --exclude test_buildhtml \
-              --exlcude test_custom_clientside_error \
-              --exclude test_custom_non_http_clientside_error
-  '';
-
-  # UnicodeEncodeError, ImportError, ...
-  doCheck = !isPy3k;
-
   nativeBuildInputs = [ pbr ];
 
   propagatedBuildInputs = [
-    six simplegeneric netaddr pytz webob
+    netaddr
+    pytz
+    simplegeneric
+    six
+    webob
   ];
 
   checkInputs = [
-    cornice nose webtest pecan transaction cherrypy sphinx
-    flask flask-restful suds-jurko glibcLocales
+    nose
+    cherrypy
+    flask
+    flask-restful
+    glibcLocales
+    pecan
+    sphinx
+    transaction
+    webtest
   ];
 
+  # from tox.ini, tests don't work with pytest
+  checkPhase = ''
+    nosetests wsme/tests tests/pecantest tests/test_sphinxext.py tests/test_flask.py --verbose
+  '';
+
   meta = with lib; {
     description = "Simplify the writing of REST APIs, and extend them with additional protocols";
-    homepage = "http://git.openstack.org/cgit/openstack/wsme";
+    homepage = "https://pythonhosted.org/WSME/";
+    changelog = "https://pythonhosted.org/WSME/changes.html";
     license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/Wand/default.nix b/nixpkgs/pkgs/development/python-modules/Wand/default.nix
index e71d07242876..535a21e5452e 100644
--- a/nixpkgs/pkgs/development/python-modules/Wand/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/Wand/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "Wand";
-  version = "0.6.1";
+  version = "0.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1wg7dlz6mhjp7mkqm5f8a2ak87p1zn46b6i754ys8f29nnqq01yz";
+    sha256 = "0jm1jdrlmm0gkvaxhbwwqic48vfgv8d0j99y90calnjrid3hwi35";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/XlsxWriter/default.nix b/nixpkgs/pkgs/development/python-modules/XlsxWriter/default.nix
index e2828b1860de..15bd1ee35fec 100644
--- a/nixpkgs/pkgs/development/python-modules/XlsxWriter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/XlsxWriter/default.nix
@@ -3,7 +3,7 @@
 buildPythonPackage rec {
 
   pname = "XlsxWriter";
-  version = "1.2.8";
+  version = "1.2.9";
 
   # PyPI release tarball doesn't contain tests so let's use GitHub. See:
   # https://github.com/jmcnamara/XlsxWriter/issues/327
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     owner = "jmcnamara";
     repo = pname;
     rev = "RELEASE_${version}";
-    sha256 = "18q5sxm9jw5sfavdjy5z0yamknwj5fl359jziqllkbj5k2i16lnr";
+    sha256 = "08pdca5ssi50bx2xz52gkmjix2ybv5i4bjw7yd6yfiph0y0qsbsb";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/aadict/default.nix b/nixpkgs/pkgs/development/python-modules/aadict/default.nix
new file mode 100644
index 000000000000..2587260748f0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aadict/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, six
+, nose
+, coverage
+}:
+
+buildPythonPackage rec {
+  pname = "aadict";
+  version = "0.2.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "013pn9ii6mkql6khgdvsd1gi7zmya418fhclm5fp7dfvann2hwx7";
+  };
+
+  propagatedBuildInputs = [ six ];
+  checkInputs = [ nose coverage ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/metagriffin/aadict";
+    description = "An auto-attribute dict (and a couple of other useful dict functions).";
+    maintainers = with maintainers; [ glittershark ];
+    license = licenses.gpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/accupy/default.nix b/nixpkgs/pkgs/development/python-modules/accupy/default.nix
index 07805c470c36..f36e12b365ab 100644
--- a/nixpkgs/pkgs/development/python-modules/accupy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/accupy/default.nix
@@ -7,20 +7,19 @@
 , pybind11
 , pyfma
 , eigen
-, pytest
+, pytestCheckHook
 , matplotlib
-, perfplot
 , isPy27
 }:
 
 buildPythonPackage rec {
   pname = "accupy";
-  version = "0.2.0";
+  version = "0.3.2";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e27ca7eed8a1bde2e6e040f8f3ee94a5d7522f42c4360756c9ec8931cf13ca98";
+    sha256 = "be5c8c9ef2f83c9eeddac85463879957c87a93b257a6202a76ad6b43080b32f9";
   };
 
   buildInputs = [
@@ -35,9 +34,8 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
     matplotlib
-    perfplot
   ];
 
   postConfigure = ''
@@ -49,9 +47,15 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  checkPhase = ''
-    pytest test
+  # performance tests aren't useful to us and disabling them allows us to
+  # decouple ourselves from an unnecessary build dep
+  preCheck = ''
+    for f in test/test*.py ; do
+      substituteInPlace $f --replace 'import perfplot' ""
+    done
   '';
+  disabledTests = [ "test_speed_comparison1" "test_speed_comparison2" ];
+  pythonImportsCheck = [ "accupy" ];
 
   meta = with lib; {
     description = "Accurate sums and dot products for Python";
diff --git a/nixpkgs/pkgs/development/python-modules/acebinf/default.nix b/nixpkgs/pkgs/development/python-modules/acebinf/default.nix
new file mode 100644
index 000000000000..78810de1740d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/acebinf/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pyvcf
+}:
+
+buildPythonPackage rec {
+  pname = "ACEBinf";
+  version = "1.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1168pny671l6zfm2vv1pwspnflmzi7f4v8yldjl7zlz0b9cm5zlz";
+  };
+
+  buildInputs = [ pyvcf ];
+
+  # no tests
+  doCheck = false;
+  pythonImportsCheck = [ "acebinf" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/ACEnglish/acebinf";
+    description = "Collection of simple utilities used when building bioinformatics tools";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ ris ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/adal/default.nix b/nixpkgs/pkgs/development/python-modules/adal/default.nix
index 2fe70864c197..58a8ce72cb98 100644
--- a/nixpkgs/pkgs/development/python-modules/adal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/adal/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "adal";
-  version = "1.2.3";
+  version = "1.2.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2ae7e02cea4552349fed6d8c9912da400f7e643fc30098defe0dcd01945e7c54";
+    sha256 = "7a15d22b1ee7ce1be92441199958748982feba6b7dec35fbf60f9b607bad1bc0";
   };
 
   propagatedBuildInputs =  [ requests pyjwt dateutil ];
diff --git a/nixpkgs/pkgs/development/python-modules/aenum/default.nix b/nixpkgs/pkgs/development/python-modules/aenum/default.nix
index f688c3948533..6f40e03c3593 100644
--- a/nixpkgs/pkgs/development/python-modules/aenum/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aenum/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "aenum";
-  version = "2.2.3";
+  version = "2.2.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a4334cabf47c167d44ab5a6198837b80deec5d5bad1b5cf70c966c3a330260e8";
+    sha256 = "0r1812bjm72x73pl7y4yhffr4zbdjgxa08avsy4b3di0pqgqv0l1";
   };
 
   # For Python 3, locale has to be set to en_US.UTF-8 for
diff --git a/nixpkgs/pkgs/development/python-modules/afdko/default.nix b/nixpkgs/pkgs/development/python-modules/afdko/default.nix
new file mode 100644
index 000000000000..a887b65a8f9c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/afdko/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, python
+, fonttools, defcon, lxml, fs, unicodedata2, zopfli, brotlipy, fontpens
+, brotli, fontmath, mutatormath, booleanoperations
+, ufoprocessor, ufonormalizer, psautohint, tqdm
+, setuptools_scm
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "afdko";
+  version = "3.5.1";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1qg7dgl81yq0sp50pkhgvmf8az1svx20zmpkfa68ka9d0ssh1wjw";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [
+    booleanoperations
+    fonttools
+    lxml           # fonttools[lxml], defcon[lxml] extra
+    fs             # fonttools[ufo] extra
+    unicodedata2   # fonttools[unicode] extra
+    brotlipy       # fonttools[woff] extra
+    zopfli         # fonttools[woff] extra
+    fontpens
+    brotli
+    defcon
+    fontmath
+    mutatormath
+    ufoprocessor
+    ufonormalizer
+    psautohint
+    tqdm
+  ];
+
+  # tests are broken on non x86_64
+  # https://github.com/adobe-type-tools/afdko/issues/1163
+  # https://github.com/adobe-type-tools/afdko/issues/1216
+  doCheck = stdenv.isx86_64;
+  checkInputs = [ pytest ];
+  checkPhase = ''
+    PATH="$PATH:$out/bin" py.test
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Adobe Font Development Kit for OpenType";
+    homepage = "https://adobe-type-tools.github.io/afdko/";
+    license = licenses.asl20;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/agate-dbf/default.nix b/nixpkgs/pkgs/development/python-modules/agate-dbf/default.nix
index bfb5300a82b1..09556ea891b3 100644
--- a/nixpkgs/pkgs/development/python-modules/agate-dbf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/agate-dbf/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
     pname = "agate-dbf";
-    version = "0.2.1";
+    version = "0.2.2";
 
     propagatedBuildInputs = [ agate dbf dbfread ];
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0brprva3vjypb5r9lk6zy10jazp681rxsqxzhz2lr869ir4krj80";
+      sha256 = "589682b78c5c03f2dc8511e6e3edb659fb7336cd118e248896bb0b44c2f1917b";
     };
 
     meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/agate-sql/default.nix b/nixpkgs/pkgs/development/python-modules/agate-sql/default.nix
index a458f78f2624..08516d05f002 100644
--- a/nixpkgs/pkgs/development/python-modules/agate-sql/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/agate-sql/default.nix
@@ -1,15 +1,15 @@
-{ stdenv, fetchPypi, buildPythonPackage, agate, sqlalchemy }:
+{ stdenv, fetchPypi, buildPythonPackage, agate, sqlalchemy, crate }:
 
 buildPythonPackage rec {
     pname = "agate-sql";
-    version = "0.5.4";
+    version = "0.5.5";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "9277490ba8b8e7c747a9ae3671f52fe486784b48d4a14e78ca197fb0e36f281b";
+      sha256 = "50a39754babef6cd0d1b1e75763324a49593394fe46ab1ea9546791b5e6b69a7";
     };
 
-    propagatedBuildInputs = [ agate sqlalchemy ];
+    propagatedBuildInputs = [ agate sqlalchemy crate ];
 
     meta = with stdenv.lib; {
       description = "Adds SQL read/write support to agate.";
diff --git a/nixpkgs/pkgs/development/python-modules/aioconsole/default.nix b/nixpkgs/pkgs/development/python-modules/aioconsole/default.nix
index 6e867d0b0f65..5ee7b3295121 100644
--- a/nixpkgs/pkgs/development/python-modules/aioconsole/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioconsole/default.nix
@@ -10,11 +10,11 @@
 # wrapped to be able to find aioconsole and any other packages.
 buildPythonPackage rec {
   pname = "aioconsole";
-  version = "0.1.16";
+  version = "0.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0yk4ghvg47drfvdrrcw7nk14pg4shccmyhln9d8hy1lyafcqmnd5";
+    sha256 = "1l61zv6qq94ybqz7s8ag3h08dsh7jds6n2mgd43s7m8gbiy00ggn";
   };
 
   # hardcodes a test dependency on an old version of pytest-asyncio
diff --git a/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix b/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
index dee851174065..6a128eb5239b 100644
--- a/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioesphomeapi/default.nix
@@ -1,14 +1,16 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, attrs, protobuf, zeroconf }:
+{ lib, buildPythonPackage, fetchFromGitHub, isPy3k, attrs, protobuf, zeroconf }:
 
 buildPythonPackage rec {
   pname = "aioesphomeapi";
-  version = "2.6.1";
+  version = "2.6.3";
 
   disabled = !isPy3k;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "139d1d348fcfe2f34926a210a32dff069935d17167c4e1cb66e8b039cbb4d6c1";
+  src = fetchFromGitHub {
+    owner = "esphome";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1lbjxqdx63fc7qxx7xwq4b9dafmdafj7p1ggs48hyhbqfwkrv9p7";
   };
 
   propagatedBuildInputs = [ attrs protobuf zeroconf ];
@@ -16,14 +18,12 @@ buildPythonPackage rec {
   # no tests implemented
   doCheck = false;
 
+  pythonImportsCheck = [ "aioesphomeapi" ];
+
   meta = with lib; {
     description = "Python Client for ESPHome native API";
     homepage = "https://github.com/esphome/aioesphomeapi";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
-
-    # Home Assistant should pin protobuf to the correct version. Can be tested using
-    #     nix-build -E "with import ./. {}; home-assistant.override { extraPackages = ps: [ ps.aioesphomeapi ]; }"
-    broken = !lib.hasPrefix "3.6.1" protobuf.version;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/aioftp/default.nix b/nixpkgs/pkgs/development/python-modules/aioftp/default.nix
index 91dbdc05a9e4..181c0be37061 100644
--- a/nixpkgs/pkgs/development/python-modules/aioftp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioftp/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "aioftp";
-  version = "0.13.0";
+  version = "0.17.2";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5711c03433b510c101e9337069033133cca19b508b5162b414bed24320de6c18";
+    sha256 = "8433ff21317e71ef1f4d8cb8f7fe58365c04b5174142d9643e22343cfb35da1b";
   };
 
   checkInputs = [
@@ -27,10 +27,13 @@ buildPythonPackage rec {
     async-timeout
   ];
 
+  doCheck = false; # requires siosocks, not packaged yet
   checkPhase = ''
     pytest
   '';
 
+  pythonImportsCheck = [ "aioftp" ];
+
   meta = with lib; {
     description = "Ftp client/server for asyncio";
     homepage = "https://github.com/aio-libs/aioftp";
diff --git a/nixpkgs/pkgs/development/python-modules/aioharmony/default.nix b/nixpkgs/pkgs/development/python-modules/aioharmony/default.nix
index 09b6919495de..0b6c68de8b4c 100644
--- a/nixpkgs/pkgs/development/python-modules/aioharmony/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioharmony/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "aioharmony";
-  version = "0.2.3";
+  version = "0.2.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "445323810978454ba3b32be53ba6b43cf9948586de3f9734b8743b55858b3cc7";
+    sha256 = "90f4d1220d44b48b21a57e0273aa3c4a51599d0097af88e8be26df151e599344";
   };
 
   disabled = !isPy3k;
diff --git a/nixpkgs/pkgs/development/python-modules/aiohttp-jinja2/default.nix b/nixpkgs/pkgs/development/python-modules/aiohttp-jinja2/default.nix
index 24804464faeb..84195d5545e0 100644
--- a/nixpkgs/pkgs/development/python-modules/aiohttp-jinja2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiohttp-jinja2/default.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   checkInputs = [ pytest pytest-aiohttp ];
 
   checkPhase = ''
-    py.test
+    pytest -W ignore::DeprecationWarning
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/aiohttp/default.nix b/nixpkgs/pkgs/development/python-modules/aiohttp/default.nix
index c58944a59d72..2e5191909bb3 100644
--- a/nixpkgs/pkgs/development/python-modules/aiohttp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiohttp/default.nix
@@ -54,6 +54,8 @@ buildPythonPackage rec {
     "proxy_https_bad_response"
     "partially_applied_handler"
     "middleware"
+    # no longer compatible with pytest>=6
+    "aiohttp_plugin_async_fixture"
   ] ++ lib.optionals stdenv.is32bit [
     "test_cookiejar"
   ] ++ lib.optionals isPy38 [
@@ -62,6 +64,7 @@ buildPythonPackage rec {
     "test_read_incomplete_chunk"
     "test_request_tracing_exception"
   ] ++ lib.optionals stdenv.isDarwin [
+    "test_addresses"  # https://github.com/aio-libs/aiohttp/issues/3572
     "test_close"
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/aiohue/default.nix b/nixpkgs/pkgs/development/python-modules/aiohue/default.nix
index 91c059497fca..b495bf4df463 100644
--- a/nixpkgs/pkgs/development/python-modules/aiohue/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiohue/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "aiohue";
-  version = "1.10.1";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d95e51f15c442d769004774e7b4220155e32dc6c8ae834b035a2f0d8ff783ff0";
+    sha256 = "35696d04d6eb0328b7031ea3c0a3cfe5d83dfcf62f920522e4767d165c6bc529";
   };
 
   propagatedBuildInputs = [ aiohttp ];
diff --git a/nixpkgs/pkgs/development/python-modules/aiojobs/default.nix b/nixpkgs/pkgs/development/python-modules/aiojobs/default.nix
new file mode 100644
index 000000000000..68c34df1afba
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/aiojobs/default.nix
@@ -0,0 +1,45 @@
+{ buildPythonPackage
+, fetchPypi
+, isPy27
+, aiohttp
+, pytest
+, pytest-aiohttp
+, pygments
+, lib
+}:
+
+buildPythonPackage rec {
+  pname = "aiojobs";
+  version = "0.2.2";
+  format = "flit";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "01a0msjh4w58fd7jplmblh0hwgpzwjs5xkgqz3d0p5yv3cykwjwf";
+  };
+
+  nativeBuildInputs = [
+    pygments
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  checkInputs = [
+    pytest
+    pytest-aiohttp
+  ];
+
+  checkPhase = ''
+    pytest tests
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/aio-libs/aiojobs";
+    description = "Jobs scheduler for managing background task (asyncio)";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ cmcdragonkai ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/aioresponses/default.nix b/nixpkgs/pkgs/development/python-modules/aioresponses/default.nix
index 9034e6a67316..7b12cefc8c78 100644
--- a/nixpkgs/pkgs/development/python-modules/aioresponses/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aioresponses/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
 
   # Skip a test which makes requests to httpbin.org
   checkPhase = ''
-    pytest -k "not test_address_as_instance_of_url_combined_with_pass_through"
+    pytest -k "not (test_address_as_instance_of_url_combined_with_pass_through or test_pass_through_with_origin_params)"
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/aiorun/default.nix b/nixpkgs/pkgs/development/python-modules/aiorun/default.nix
index 8eda59a9abf0..a0a3d74e5780 100644
--- a/nixpkgs/pkgs/development/python-modules/aiorun/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiorun/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchFromGitHub
 , isPy27
+, pygments
 , pytest
 , pytestcov
 , uvloop
@@ -9,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "aiorun";
-  version = "2020.2.1";
+  version = "2020.6.1";
   format = "flit";
 
   disabled = isPy27;
@@ -18,9 +19,13 @@ buildPythonPackage rec {
     owner = "cjrh";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0wcj8prkijb889ic8n6varms7xkwy028hhw0imgkd1i0p64lm3m4";
+    sha256 = "00mq5ylhhdfdqrh7zdqabf3wy85jrkqvgfb1421ll46fsjim2d14";
   };
 
+  propagatedBuildInputs = [
+    pygments
+  ];
+
   checkInputs = [
     pytest
     pytestcov
diff --git a/nixpkgs/pkgs/development/python-modules/aiounifi/default.nix b/nixpkgs/pkgs/development/python-modules/aiounifi/default.nix
index e6a9afcc2c99..3b05d2c3811e 100644
--- a/nixpkgs/pkgs/development/python-modules/aiounifi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aiounifi/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "aiounifi";
-  version = "11";
+  version = "23";
 
   disabled = ! isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e751cfd002f54dda76dfd498dcc53cb6fab6bff79773ca7d18c9c7b392046b12";
+    sha256 = "0628058b644776132f2f893f1a2201a0142a38b6acf089c6b11a63ad5a752ba7";
   };
 
   propagatedBuildInputs = [ aiohttp ];
diff --git a/nixpkgs/pkgs/development/python-modules/alembic/default.nix b/nixpkgs/pkgs/development/python-modules/alembic/default.nix
index 4161dfbedfe4..18a56936d9db 100644
--- a/nixpkgs/pkgs/development/python-modules/alembic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/alembic/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "alembic";
-  version = "1.3.3";
+  version = "1.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d412982920653db6e5a44bfd13b1d0db5685cbaaccaf226195749c706e1e862a";
+    sha256 = "035ab00497217628bf5d0be82d664d8713ab13d37b630084da8e1f98facf4dbf";
   };
 
   buildInputs = [ pytest pytestcov mock coverage ];
diff --git a/nixpkgs/pkgs/development/python-modules/alerta-server/default.nix b/nixpkgs/pkgs/development/python-modules/alerta-server/default.nix
index 5f545c6ee2fe..571b1fea2e3a 100644
--- a/nixpkgs/pkgs/development/python-modules/alerta-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/alerta-server/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "alerta-server";
-  version = "7.4.6";
+  version = "8.0.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f91889777a4d01f8ffca2f01d35cad3996a61178c26e8819c6d8eb746b951dd4";
+    sha256 = "894d240c51428225264867a80094b9743d71272635a18ddfefa5832b61fed2c6";
   };
 
   propagatedBuildInputs = [ python-dateutil requests pymongo raven bcrypt flask pyjwt flask-cors psycopg2 pytz flask-compress jinja2 pyyaml];
diff --git a/nixpkgs/pkgs/development/python-modules/alerta/default.nix b/nixpkgs/pkgs/development/python-modules/alerta/default.nix
index 4a4d61bff7d6..579f0178729b 100644
--- a/nixpkgs/pkgs/development/python-modules/alerta/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/alerta/default.nix
@@ -1,17 +1,17 @@
 { stdenv, buildPythonPackage, fetchPypi
-, six, click, requests, pytz, tabulate, pythonOlder
+, six, click, requests, requests-hawk, pytz, tabulate, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "alerta";
-  version = "7.4.5";
+  version = "8.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "926f1101a1b57a9fad611f1e1d5af751693efcc344a9db01af50e2fe0d362d84";
+    sha256 = "49e0862c756d644e9349f5040dd59d135cd871ffeaea5fc288eb3a2e818cf61a";
   };
 
-  propagatedBuildInputs = [ six click requests pytz tabulate ];
+  propagatedBuildInputs = [ six click requests requests-hawk pytz tabulate ];
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/alot/default.nix b/nixpkgs/pkgs/development/python-modules/alot/default.nix
index 04b2d898e66a..c3b624a7bced 100644
--- a/nixpkgs/pkgs/development/python-modules/alot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/alot/default.nix
@@ -19,6 +19,10 @@ buildPythonPackage rec {
     sha256 = "0s94m17yph1gq9f2svipb3bbwbw1s4j3zf2xkg5h91006v8286r6";
   };
 
+  postPatch = ''
+    substituteInPlace alot/settings/manager.py --replace /usr/share "$out/share"
+  '';
+
   nativeBuildInputs = lib.optional withManpage sphinx;
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/amply/default.nix b/nixpkgs/pkgs/development/python-modules/amply/default.nix
new file mode 100644
index 000000000000..e0e9100f7924
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/amply/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, fetchPypi
+, buildPythonPackage
+, setuptools_scm
+, docutils
+, pyparsing
+}:
+
+buildPythonPackage rec {
+  pname = "amply";
+  version = "0.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1j2dqdz1y1nbyw33qq89v0f5rkmqfbga72d9hax909vpcapm6pbf";
+  };
+
+  buildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [
+    docutils
+    pyparsing
+  ];
+
+  checkPhase = ''
+    python tests/test_amply.py
+  '';
+  pythonImportsCheck = [ "amply" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/willu47/amply";
+    description = ''
+      Allows you to load and manipulate AMPL/GLPK data as Python data structures
+    '';
+    maintainers = with maintainers; [ ris ];
+    license = licenses.epl10;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/amqp/default.nix b/nixpkgs/pkgs/development/python-modules/amqp/default.nix
index bfd3cd7055e3..5fa41412a7ca 100644
--- a/nixpkgs/pkgs/development/python-modules/amqp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/amqp/default.nix
@@ -1,19 +1,20 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, case, vine, pytest-sugar }:
+{ stdenv, buildPythonPackage, fetchPypi, pytestCheckHook, case, vine }:
 
 buildPythonPackage rec {
   pname = "amqp";
-  version = "2.5.2";
+  version = "2.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "77f1aef9410698d20eaeac5b73a87817365f457a507d82edf292e12cbb83b08d";
+    sha256 = "70cdb10628468ff14e57ec2f751c7aa9e48e7e3651cfd62d431213c0c4e58f21";
   };
 
-  checkInputs = [ pytest case pytest-sugar ];
   propagatedBuildInputs = [ vine ];
 
-  # Disable because pytest-sugar requires an old version of pytest
-  doCheck = false;
+  checkInputs = [ pytestCheckHook case ];
+  disabledTests = [
+    "test_rmq.py" # requires network access
+  ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/celery/py-amqp";
diff --git a/nixpkgs/pkgs/development/python-modules/ansible/default.nix b/nixpkgs/pkgs/development/python-modules/ansible/default.nix
index 07ae08ada78c..245375c26be0 100644
--- a/nixpkgs/pkgs/development/python-modules/ansible/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansible/default.nix
@@ -18,13 +18,13 @@
 
 buildPythonPackage rec {
   pname = "ansible";
-  version = "2.9.9";
+  version = "2.9.12";
 
   src = fetchFromGitHub {
     owner = "ansible";
     repo = "ansible";
     rev = "v${version}";
-    sha256 = "06a9iq7w2cm0hsxaw5irsja8w44gffiw09ly27jxklpa8gv57rml";
+    sha256 = "0c794k0cyl54807sh9in0l942ah6g6wlz5kf3qvy5lhd581zlgyb";
   };
 
   prePatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/ansiconv/default.nix b/nixpkgs/pkgs/development/python-modules/ansiconv/default.nix
index 7ad683b8c36e..d2de4837e07a 100644
--- a/nixpkgs/pkgs/development/python-modules/ansiconv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ansiconv/default.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     repo = pname;
     rev = "v${version}";
     sha256 = "0ljfpl8x069arzginvpi1v6hlaq4x2qpjqj01qds2ylz33scq8r4";
-  };  
+  };
 
   checkInputs = [ pytest ];
 
@@ -21,4 +21,3 @@ buildPythonPackage rec {
   };
 
 }
-
diff --git a/nixpkgs/pkgs/development/python-modules/anytree/default.nix b/nixpkgs/pkgs/development/python-modules/anytree/default.nix
index b07b585573de..6b25952493be 100644
--- a/nixpkgs/pkgs/development/python-modules/anytree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/anytree/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "anytree";
-  version = "2.7.3";
+  version = "2.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05736hamjv4f38jw6z9y4wckc7mz18ivbizm1s3pb0n6fp1sy4zk";
+    sha256 = "3f0f93f355a91bc3e6245319bf4c1d50e3416cc7a35cc1133c1ff38306bbccab";
   };
 
   patches = lib.optionals withGraphviz [
diff --git a/nixpkgs/pkgs/development/python-modules/apache-airflow/default.nix b/nixpkgs/pkgs/development/python-modules/apache-airflow/default.nix
index f8ef6b9492a3..ca2cb03f9672 100644
--- a/nixpkgs/pkgs/development/python-modules/apache-airflow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apache-airflow/default.nix
@@ -46,7 +46,6 @@
 , thrift
 , tzlocal
 , unicodecsv
-, werkzeug
 , zope_deprecation
 , enum34
 , typing
@@ -127,7 +126,6 @@ buildPythonPackage rec {
     thrift
     tzlocal
     unicodecsv
-    werkzeug
     zope_deprecation
   ];
 
@@ -143,24 +141,25 @@ buildPythonPackage rec {
       --replace "pandas>=0.17.1, <1.0.0" "pandas" \
       --replace "flask-caching>=1.3.3, <1.4.0" "flask-caching" \
       --replace "flask-appbuilder>=1.12.5, <2.0.0" "flask-appbuilder" \
+      --replace "flask-admin==1.5.3" "flask-admin" \
+      --replace "flask-login>=0.3, <0.5" "flask-login" \
       --replace "pendulum==1.4.4" "pendulum" \
       --replace "cached_property~=1.5" "cached_property" \
       --replace "dill>=0.2.2, <0.3" "dill" \
       --replace "configparser>=3.5.0, <3.6.0" "configparser" \
-      --replace "jinja2>=2.7.3, <=2.10.0" "jinja2" \
+      --replace "jinja2>=2.10.1, <2.11.0" "jinja2" \
       --replace "colorlog==4.0.2" "colorlog" \
       --replace "funcsigs==1.0.0" "funcsigs" \
       --replace "flask-swagger==0.2.13" "flask-swagger" \
       --replace "python-daemon>=2.1.1, <2.2" "python-daemon" \
-      --replace "alembic>=0.9, <1.0" "alembic" \
+      --replace "alembic>=1.0, <2.0" "alembic" \
       --replace "markdown>=2.5.2, <3.0" "markdown" \
       --replace "future>=0.16.0, <0.17" "future" \
       --replace "tenacity==4.12.0" "tenacity" \
       --replace "text-unidecode==1.2" "text-unidecode" \
       --replace "tzlocal>=1.4,<2.0.0" "tzlocal" \
       --replace "sqlalchemy~=1.3" "sqlalchemy" \
-      --replace "gunicorn>=19.5.0, <20.0" "gunicorn" \
-      --replace "werkzeug>=0.14.1, <0.15.0" "werkzeug"
+      --replace "gunicorn>=19.5.0, <20.0" "gunicorn"
 
     # dumb-init is only needed for CI and Docker, not relevant for NixOS.
     substituteInPlace setup.py \
diff --git a/nixpkgs/pkgs/development/python-modules/apispec/default.nix b/nixpkgs/pkgs/development/python-modules/apispec/default.nix
index fa8b14853aa3..222f2efdd626 100644
--- a/nixpkgs/pkgs/development/python-modules/apispec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apispec/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "apispec";
-  version = "3.1.1";
+  version = "3.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "24b8490c22310b0779a058ccb24ec2fef33d571bb5aba1f525ab5963b0eabcdd";
+    sha256 = "f5244ccca33f7a81309f6b3c9d458e33e869050c2d861b9f8cee24b3ad739d2b";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/apprise/default.nix b/nixpkgs/pkgs/development/python-modules/apprise/default.nix
index d6da2610f8c5..1c140266b9eb 100644
--- a/nixpkgs/pkgs/development/python-modules/apprise/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apprise/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "apprise";
-  version = "0.8.5";
+  version = "0.8.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "aacdd54640a9c66d1c84c8f4390f63feb5a7a8741867a6b451f82ff74c8c792c";
+    sha256 = "18a65c5917bf7f2d48bb557bf0879e49c5293b4c0e9809328387ae09338ae37b";
   };
 
   nativeBuildInputs = [ Babel ];
diff --git a/nixpkgs/pkgs/development/python-modules/apsw/default.nix b/nixpkgs/pkgs/development/python-modules/apsw/default.nix
index 48aa68f30540..1f314dc7408a 100644
--- a/nixpkgs/pkgs/development/python-modules/apsw/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/apsw/default.nix
@@ -3,7 +3,7 @@
 
 buildPythonPackage rec {
   pname = "apsw";
-  version = "3.32.2-r1";
+  version = "3.33.0-r1";
 
   disabled = isPyPy;
 
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     owner = "rogerbinns";
     repo = "apsw";
     rev = version;
-    sha256 = "0gwhcvklrgng8gg6in42h0aj2bsq522bhhs2pp3cqdrmypkjdm59";
+    sha256 = "05mxcw1382xx22285fnv92xblqby3adfrvvalaw4dc6rzsn6kcan";
   };
 
   buildInputs = [ sqlite ];
diff --git a/nixpkgs/pkgs/development/python-modules/aresponses/default.nix b/nixpkgs/pkgs/development/python-modules/aresponses/default.nix
index 472911340ad8..56093192d6c7 100644
--- a/nixpkgs/pkgs/development/python-modules/aresponses/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aresponses/default.nix
@@ -6,15 +6,18 @@
 # buildInputs
 , pytest
 , pytest-asyncio
+, isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "aresponses";
-  version = "1.1.2";
+  version = "2.0.0";
+
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "20a63536d86af6f31f9b0720c561bdc595b6bfe071940e347ab58b11caff9e1b";
+    sha256 = "58693a6b715edfa830a20903ee1d1b2a791251923f311b3bebf113e8ff07bb35";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/argcomplete/default.nix b/nixpkgs/pkgs/development/python-modules/argcomplete/default.nix
index b34b878a839c..bd57b7b28a37 100644
--- a/nixpkgs/pkgs/development/python-modules/argcomplete/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/argcomplete/default.nix
@@ -7,11 +7,11 @@
 }:
 buildPythonPackage rec {
   pname = "argcomplete";
-  version = "1.11.1";
+  version = "1.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0h1przxffrhqvi46k40pzjsvdrq4zc3sl1pc96kkigqppq0vdrss";
+    sha256 = "0p19rkvh28klkkd1c6y78h6vb9b9cnlyr7qrshkxghfjkz85xgig";
   };
 
   doCheck = false; # meant to be ran with interactive interpreter
diff --git a/nixpkgs/pkgs/development/python-modules/aria2p/default.nix b/nixpkgs/pkgs/development/python-modules/aria2p/default.nix
index 51b523c010aa..9126969c22da 100644
--- a/nixpkgs/pkgs/development/python-modules/aria2p/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aria2p/default.nix
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     rev = "v${version}";
     sha256 = "1inak3y2win58zbzykfzy6xp00f276sqsz69h2nfsd93mpr74wf6";
   };
-  
+
   nativeBuildInputs = [ poetry ];
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/development/python-modules/arrow/default.nix b/nixpkgs/pkgs/development/python-modules/arrow/default.nix
index 4fdf55bc2bd3..bc3de37526a1 100644
--- a/nixpkgs/pkgs/development/python-modules/arrow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/arrow/default.nix
@@ -1,15 +1,16 @@
 { stdenv, lib, buildPythonPackage, fetchPypi, isPy27
 , nose, chai, simplejson, backports_functools_lru_cache
-, python-dateutil, pytz, pytest-mock, sphinx, dateparser, pytestcov, pytest
+, python-dateutil, pytz, pytest-mock, sphinx, dateparser, pytestcov
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "arrow";
-  version = "0.15.6";
+  version = "0.15.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "eb5d339f00072cc297d7de252a2e75f272085d1231a3723f1026d1fa91367118";
+    sha256 = "edc31dc051db12c95da9bac0271cd1027b8e36912daf6d4580af53b23e62721a";
   };
 
   propagatedBuildInputs = [ python-dateutil ]
@@ -17,7 +18,7 @@ buildPythonPackage rec {
 
   checkInputs = [
     dateparser
-    pytest
+    pytestCheckHook
     pytestcov
     pytest-mock
     pytz
@@ -25,9 +26,10 @@ buildPythonPackage rec {
     sphinx
   ];
 
-  checkPhase = ''
-    pytest
-  '';
+  # ParserError: Could not parse timezone expression "America/Nuuk"
+  disabledTests = [
+    "test_parse_tz_name_zzz"
+  ];
 
   meta = with lib; {
     description = "Python library for date manipulation";
diff --git a/nixpkgs/pkgs/development/python-modules/asdf/default.nix b/nixpkgs/pkgs/development/python-modules/asdf/default.nix
index f3c3615d9262..474329ed0b7d 100644
--- a/nixpkgs/pkgs/development/python-modules/asdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asdf/default.nix
@@ -15,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "asdf";
-  version = "2.6.0";
+  version = "2.7.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ym9mmxjpnnlinly1rxfqj9rlyl2fv7dxc81f30n1b8n9pwc6jb5";
+    sha256 = "4ba2e31cb24b974a10dfae3edee23db2e6bea2d00608604d062366aa3af6e81a";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/ase/default.nix b/nixpkgs/pkgs/development/python-modules/ase/default.nix
index 870f0598e5e7..fcbeb1f1f4d9 100644
--- a/nixpkgs/pkgs/development/python-modules/ase/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ase/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "ase";
-  version = "3.19.1";
+  version = "3.20.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03xzpmpask2q2609kkq0hfgzsfvkyjpbjws7qx00nnfrbbnjk443";
+    sha256 = "72c81f21b6adb907595fce8d883c0231301cbd8e9f6e5ce8e98bab927054daca";
   };
 
   propagatedBuildInputs = [ numpy scipy matplotlib flask pillow psycopg2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/asgi-csrf/default.nix b/nixpkgs/pkgs/development/python-modules/asgi-csrf/default.nix
new file mode 100644
index 000000000000..12c94aee1573
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/asgi-csrf/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildPythonPackage, isPy27, fetchFromGitHub, itsdangerous, python-multipart
+, pytest, starlette, httpx, pytest-asyncio }:
+
+buildPythonPackage rec {
+  version = "0.7";
+  pname = "asgi-csrf";
+  disabled = isPy27;
+
+  # PyPI tarball doesn't include tests directory
+  src = fetchFromGitHub {
+    owner = "simonw";
+    repo = pname;
+    rev = version;
+    sha256 = "1vf4lh007790836cp3hd6wf8wsgj045dcg0w1cm335p08zz6j4k7";
+  };
+
+  propagatedBuildInputs = [ itsdangerous python-multipart ];
+
+  checkInputs = [ pytest starlette httpx pytest-asyncio ];
+  checkPhase = ''
+    pytest test_asgi_csrf.py
+  '';
+  pythonImportsCheck = [ "asgi_csrf" ];
+
+  meta = with stdenv.lib; {
+    description = "ASGI middleware for protecting against CSRF attacks";
+    license = licenses.asl20;
+    homepage = "https://github.com/simonw/asgi-csrf";
+    maintainers = [ maintainers.ris ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/asgiref/default.nix b/nixpkgs/pkgs/development/python-modules/asgiref/default.nix
index 56c69bb97ede..3537736f77f6 100644
--- a/nixpkgs/pkgs/development/python-modules/asgiref/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asgiref/default.nix
@@ -1,6 +1,6 @@
 { stdenv, buildPythonPackage, pythonOlder, fetchFromGitHub, async-timeout, pytest, pytest-asyncio }:
 buildPythonPackage rec {
-  version = "3.2.7";
+  version = "3.2.10";
   pname = "asgiref";
 
   disabled = pythonOlder "3.5";
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     owner = "django";
     repo = pname;
     rev = version;
-    sha256 = "1qf29blzhh6sljaj1adc0p8cnyxh9ar6hky9ccdfbgmrk4rw5kwc";
+    sha256 = "1sj4yy2injaskwfi5pkb542jl8s6ljijnyra81gpw0pgd3d0bgxv";
   };
 
   propagatedBuildInputs = [ async-timeout ];
diff --git a/nixpkgs/pkgs/development/python-modules/asn1crypto/default.nix b/nixpkgs/pkgs/development/python-modules/asn1crypto/default.nix
index 156f77b4c97e..989b974c64a6 100644
--- a/nixpkgs/pkgs/development/python-modules/asn1crypto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asn1crypto/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "asn1crypto";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0bf4xxaig0b9dv6njynaqk2j7vlpagh3y49s9qj95y0jvjw5q8as";
+    sha256 = "f4f6e119474e58e04a2b1af817eb585b4fd72bdd89b998624712b5c99be7641c";
   };
 
   # No tests included
diff --git a/nixpkgs/pkgs/development/python-modules/astor/default.nix b/nixpkgs/pkgs/development/python-modules/astor/default.nix
index 02610d042cef..0d7aa3877125 100644
--- a/nixpkgs/pkgs/development/python-modules/astor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/astor/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, pytest, fetchpatch }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, pytestCheckHook, fetchpatch }:
 
 buildPythonPackage rec {
   pname = "astor";
@@ -10,15 +10,15 @@ buildPythonPackage rec {
   };
 
   # disable tests broken with python3.6: https://github.com/berkerpeksag/astor/issues/89
-  checkInputs = [ pytest ];
-  checkPhase = ''
-    py.test -k 'not check_expressions \
-                and not check_astunparse \
-                and not test_convert_stdlib \
-                and not test_codegen_as_submodule \
-                and not test_positional_only_arguments \
-                and not test_codegen_from_root'
-  '';
+  checkInputs = [ pytestCheckHook ];
+  disabledTests = [
+    "check_expressions"
+    "check_astunparse"
+    "convert_stdlib"
+    "codegen_as_submodule"
+    "positional_only_arguments"
+    "codegen_from_root"
+  ];
 
   meta = with lib; {
     description = "Library for reading, writing and rewriting python AST";
diff --git a/nixpkgs/pkgs/development/python-modules/astral/default.nix b/nixpkgs/pkgs/development/python-modules/astral/default.nix
index 84ce4d1d5b7b..6c4afec6352e 100644
--- a/nixpkgs/pkgs/development/python-modules/astral/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/astral/default.nix
@@ -1,15 +1,16 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytz, requests, pytest }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy27, pytz, requests, pytest, freezegun }:
 
 buildPythonPackage rec {
   pname = "astral";
-  version = "1.10.1";
+  version = "2.2";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d2a67243c4503131c856cafb1b1276de52a86e5b8a1d507b7e08bee51cb67bf1";
+    sha256 = "e41d9967d5c48be421346552f0f4dedad43ff39a83574f5ff2ad32b6627b6fbe";
   };
 
-  propagatedBuildInputs = [ pytz requests ];
+  propagatedBuildInputs = [ pytz requests freezegun ];
 
   checkInputs = [ pytest ];
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/astroid/default.nix b/nixpkgs/pkgs/development/python-modules/astroid/default.nix
index 2084065c8d5c..927e6a6d5a64 100644
--- a/nixpkgs/pkgs/development/python-modules/astroid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/astroid/default.nix
@@ -5,15 +5,19 @@
 
 buildPythonPackage rec {
   pname = "astroid";
-  version = "2.3.3";
+  version = "2.4.2";
 
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "71ea07f44df9568a75d0f354c49143a4575d90645e9fead6dfb52c26a85ed13a";
+    sha256 = "2f4078c2a41bf377eea06d71c9d2ba4eb8f6b1af2135bec27bbbb7d8f12bb703";
   };
 
+  postPatch = ''
+    substituteInPlace astroid/__pkginfo__.py --replace "lazy_object_proxy==1.4.*" "lazy_object_proxy"
+  '';
+
   # From astroid/__pkginfo__.py
   propagatedBuildInputs = [ lazy-object-proxy six wrapt ]
     ++ lib.optional (pythonOlder "3.5") typing
diff --git a/nixpkgs/pkgs/development/python-modules/astroquery/default.nix b/nixpkgs/pkgs/development/python-modules/astroquery/default.nix
index c6620de3d0c3..e82dca3e9553 100644
--- a/nixpkgs/pkgs/development/python-modules/astroquery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/astroquery/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "astroquery";
-  version = "0.4";
+  version = "0.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ddwnj9vpvxkrfb45c4pwv5f5za9kn2q0040dpw2ymj2bwlpl61h";
+    sha256 = "0xpqrl9h7sg55mql38xsfpbz9rxsm3mxfha1biqyly1gmxpmd47a";
   };
 
   disabled = !isPy3k;
diff --git a/nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix b/nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix
new file mode 100644
index 000000000000..b1ed1c45f85a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/async-upnp-client/default.nix
@@ -0,0 +1,36 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, voluptuous, aiohttp, async-timeout, python-didl-lite, defusedxml
+, pytest, pytest-asyncio }:
+
+buildPythonPackage rec {
+  pname = "async-upnp-client";
+  version = "0.14.14";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "StevenLooman";
+    repo = "async_upnp_client";
+    rev = version;
+    sha256 = "1ysj72l4z78h427ar95x7af0jw0xq1cbca0k8b34vqyyhgs8wc6y";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    async-timeout
+    defusedxml
+    python-didl-lite
+    voluptuous
+  ];
+
+  checkInputs = [
+    pytest
+    pytest-asyncio
+  ];
+
+  meta = with lib; {
+    description = "Asyncio UPnP Client library for Python/asyncio.";
+    homepage = "https://github.com/StevenLooman/async_upnp_client";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/asyncpg/default.nix b/nixpkgs/pkgs/development/python-modules/asyncpg/default.nix
index 439702e80271..826ee6103fc0 100644
--- a/nixpkgs/pkgs/development/python-modules/asyncpg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asyncpg/default.nix
@@ -3,12 +3,12 @@
 
 buildPythonPackage rec {
   pname = "asyncpg";
-  version = "0.20.1";
+  version = "0.21.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1c4mcjrdbvvq5crrfc3b9m221qb6pxp55yynijihgfnvvndz2jrr";
+    sha256 = "53cb2a0eb326f61e34ef4da2db01d87ce9c0ebe396f65a295829df334e31863f";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/asyncssh/default.nix b/nixpkgs/pkgs/development/python-modules/asyncssh/default.nix
index ab647935364f..e85de90b1f63 100644
--- a/nixpkgs/pkgs/development/python-modules/asyncssh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asyncssh/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "asyncssh";
-  version = "2.1.0";
+  version = "2.3.0";
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19d0b4c65115d09b42ed21c748884157babfb3055a6e130ea349dfdcbcef3380";
+    sha256 = "44bda34c7123f00c3df95d24e2dc8d43c4d17b456fbb8c434ef4f4a7ebb5265e";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/asynctest/default.nix b/nixpkgs/pkgs/development/python-modules/asynctest/default.nix
index d08f4137ba45..dda3d35f6add 100644
--- a/nixpkgs/pkgs/development/python-modules/asynctest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/asynctest/default.nix
@@ -17,6 +17,9 @@ buildPythonPackage rec {
       --replace "test_events_watched_outside_test_are_ignored" "xtest_events_watched_outside_test_are_ignored"
   '';
 
+  # https://github.com/Martiusweb/asynctest/issues/132
+  doCheck = pythonOlder "3.7";
+
   checkPhase = ''
     ${python.interpreter} -m unittest test
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/atlassian-python-api/default.nix b/nixpkgs/pkgs/development/python-modules/atlassian-python-api/default.nix
index 5f124cc09434..077a85589642 100755
--- a/nixpkgs/pkgs/development/python-modules/atlassian-python-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/atlassian-python-api/default.nix
@@ -16,17 +16,17 @@
 
 buildPythonPackage rec {
   pname = "atlassian-python-api";
-  version = "1.15.9";
-  
+  version = "1.16.1";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c6a3125ee68ecf4d11947497c1f891b6436df9d8453f8865cabf595813504cc1";
+    sha256 = "b672131be7cc5e239c465909454542623c0aeb0a4d3b05e6a25ee9459959c11d";
   };
-  
+
   checkInputs = [ pytestrunner pytest ];
-  
+
   propagatedBuildInputs = [ oauthlib requests requests_oauthlib six ];
-  
+
   meta = with lib; {
     description = "Python Atlassian REST API Wrapper";
     homepage = "https://github.com/atlassian-api/atlassian-python-api";
@@ -34,4 +34,3 @@ buildPythonPackage rec {
     maintainers = [ maintainers.arnoldfarkas ];
   };
 }
-
diff --git a/nixpkgs/pkgs/development/python-modules/atom/default.nix b/nixpkgs/pkgs/development/python-modules/atom/default.nix
index 465681a71f3f..60fa12d4a661 100644
--- a/nixpkgs/pkgs/development/python-modules/atom/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/atom/default.nix
@@ -1,14 +1,15 @@
-{ lib, buildPythonPackage, fetchPypi, future }:
+{ lib, buildPythonPackage, fetchPypi, future, cppy }:
 
 buildPythonPackage rec {
   pname = "atom";
-  version = "0.4.3";
+  version = "0.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ce96fb50326a3bfa084463dbde1cf2e02c92735e5bc324d836355c25af87e0ae";
+    sha256 = "99b4c94b833aafffc0b34ab8f98b697f575be3230bff38ebf863d065403333e0";
   };
 
+  buildInputs = [ cppy ];
   propagatedBuildInputs = [ future ];
 
   # Tests not released to pypi
diff --git a/nixpkgs/pkgs/development/python-modules/atomicwrites/default.nix b/nixpkgs/pkgs/development/python-modules/atomicwrites/default.nix
index 019dcbe9bed7..03401f226a2e 100644
--- a/nixpkgs/pkgs/development/python-modules/atomicwrites/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/atomicwrites/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "atomicwrites";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "75a9445bac02d8d058d5e1fe689654ba5a6556a1dfd8ce6ec55a0ed79866cfa6";
+    sha256 = "ae70396ad1a434f9c7046fd2dd196fc04b12f9e91ffb859164193be8b6168a7a";
   };
 
   # Tests depend on pytest but atomicwrites is a dependency of pytest
diff --git a/nixpkgs/pkgs/development/python-modules/atpublic/default.nix b/nixpkgs/pkgs/development/python-modules/atpublic/default.nix
index e2c3e8af6b0f..021d8e8b3077 100644
--- a/nixpkgs/pkgs/development/python-modules/atpublic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/atpublic/default.nix
@@ -1,18 +1,26 @@
-{ lib, isPy3k, fetchPypi, buildPythonPackage
-, pytest }:
+{ lib, isPy3k, pythonOlder, fetchPypi, buildPythonPackage
+, pytest
+, pytestcov
+, sybil
+, typing-extensions
+}:
 
 buildPythonPackage rec {
   pname = "atpublic";
-  version = "1.0";
+  version = "2.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0i3sbxkdlbb4560rrlmwwd5y4ps7k73lp4d8wnmd7ag9k426gjkx";
+    sha256 = "ebeb62b71a5c683a84c1b16bbf415708af5a46841b142b85ac3a22ec2d7613b0";
   };
 
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
+    typing-extensions
+  ];
+
   checkInputs = [
-    pytest
+    pytest pytestcov sybil
   ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/audio-metadata/default.nix b/nixpkgs/pkgs/development/python-modules/audio-metadata/default.nix
index d4f97dd4ce50..1adee4403b9b 100644
--- a/nixpkgs/pkgs/development/python-modules/audio-metadata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/audio-metadata/default.nix
@@ -9,17 +9,18 @@
 
 buildPythonPackage rec {
   pname = "audio-metadata";
-  version = "0.9.0";
+  version = "0.11.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1v7ww3csyxrhnpvpynla64hfn1wp37vbw7srh9343n4wc02mh65l";
+    sha256 = "9e7ba79d49cf048a911d5f7d55bb2715c10be5c127fe5db0987c5fe1aa7335eb";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
       --replace "bidict>=0.17,<0.18" "bidict" \
-      --replace "more-itertools>=4.0,<8.0" "more-itertools"
+      --replace "more-itertools>=4.0,<8.0" "more-itertools" \
+      --replace "pendulum>=2.0,<=3.0,!=2.0.5,!=2.1.0" "pendulum>=2.0,<=3.0"
   '';
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/audiotools/default.nix b/nixpkgs/pkgs/development/python-modules/audiotools/default.nix
index ee029726d1c6..1ad216082749 100644
--- a/nixpkgs/pkgs/development/python-modules/audiotools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/audiotools/default.nix
@@ -25,4 +25,4 @@ buildPythonPackage rec {
     homepage = "http://audiotools.sourceforge.net/";
     license = lib.licenses.gpl2Plus;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix b/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix
index 4efe1f50ef2c..1b50e70aaee2 100644
--- a/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/auth0-python/default.nix
@@ -3,15 +3,16 @@
 , fetchPypi
 , requests
 , mock
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "auth0-python";
-  version = "3.9.2";
+  version = "3.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12870b4806095b707c4eed7bf8cdfeb3722d990366bc6a9772d1520e90efa73b";
+    sha256 = "fbc54a231ca787ae0917223028269582abbd963cfa9d53ba822a601dd9cd2215";
   };
 
   propagatedBuildInputs = [
@@ -20,6 +21,17 @@ buildPythonPackage rec {
 
   checkInputs = [
     mock
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    # jwt package is not available in nixpkgs
+    "--ignore=auth0/v3/test/authentication/test_token_verifier.py"
+  ];
+
+  # tries to ping websites (e.g. google.com)
+  disabledTests = [
+    "can_timeout"
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/authheaders/default.nix b/nixpkgs/pkgs/development/python-modules/authheaders/default.nix
index c8938c649b97..a1d049ebb151 100644
--- a/nixpkgs/pkgs/development/python-modules/authheaders/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/authheaders/default.nix
@@ -1,17 +1,17 @@
 { buildPythonPackage, fetchPypi, isPy27, lib
-, authres, dnspython, dkimpy, ipaddress, publicsuffix
+, authres, dnspython, dkimpy, ipaddress, publicsuffix2
 }:
 
 buildPythonPackage rec {
   pname = "authheaders";
-  version = "0.12.2";
+  version = "0.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a6f96d1dfb7a6cffcdd78d1582914d4f9a0b25d66e1cf5ce959446c92cd8b74f";
+    sha256 = "935726b784cc636cbcfed2c977f1a6887dc60056806da4eff60db932c5896692";
   };
 
-  propagatedBuildInputs = [ authres dnspython dkimpy publicsuffix ]
+  propagatedBuildInputs = [ authres dnspython dkimpy publicsuffix2 ]
                           ++ lib.optional isPy27 ipaddress;
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/autobahn/default.nix b/nixpkgs/pkgs/development/python-modules/autobahn/default.nix
index 1f2972c7663b..909fb65996ba 100644
--- a/nixpkgs/pkgs/development/python-modules/autobahn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/autobahn/default.nix
@@ -4,11 +4,11 @@
 }:
 buildPythonPackage rec {
   pname = "autobahn";
-  version = "19.11.2";
+  version = "20.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "64fa063b3a1ab16588037d4713f13f66167f7ad2a2e95fd675decbc3bc85c089";
+    sha256 = "86bbce30cdd407137c57670993a8f9bfdfe3f8e994b889181d85e844d5aa8dfb";
   };
 
   propagatedBuildInputs = [ six txaio twisted zope_interface cffi cryptography pynacl ] ++
diff --git a/nixpkgs/pkgs/development/python-modules/automat/default.nix b/nixpkgs/pkgs/development/python-modules/automat/default.nix
index 8a9f85b54fdd..78a3259a2878 100644
--- a/nixpkgs/pkgs/development/python-modules/automat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/automat/default.nix
@@ -2,12 +2,12 @@
   m2r, setuptools_scm, six, attrs }:
 
 buildPythonPackage rec {
-  version = "0.8.0";
+  version = "20.2.0";
   pname = "Automat";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "269a09dfb063a3b078983f4976d83f0a0d3e6e7aaf8e27d8df1095e09dc4a484";
+    sha256 = "7979803c74610e11ef0c0d68a2942b152df52da55336e0c9d58daf1831cbdf33";
   };
 
   buildInputs = [ m2r setuptools_scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/autopep8/default.nix b/nixpkgs/pkgs/development/python-modules/autopep8/default.nix
index 7b7131f2a7fc..1b40aa9c1408 100644
--- a/nixpkgs/pkgs/development/python-modules/autopep8/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/autopep8/default.nix
@@ -1,15 +1,17 @@
-{ stdenv, fetchPypi, buildPythonPackage, pycodestyle, glibcLocales }:
+{ stdenv, fetchPypi, buildPythonPackage, pycodestyle, glibcLocales
+, toml
+}:
 
 buildPythonPackage rec {
   pname = "autopep8";
-  version = "1.5.3";
+  version = "1.5.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "60fd8c4341bab59963dafd5d2a566e94f547e660b9b396f772afe67d8481dbf0";
+    sha256 = "d21d3901cb0da6ebd1e83fc9b0dfbde8b46afc2ede4fe32fbda0c7c6118ca094";
   };
 
-  propagatedBuildInputs = [ pycodestyle ];
+  propagatedBuildInputs = [ pycodestyle toml ];
 
   # One test fails:
   # FAIL: test_recursive_should_not_crash_on_unicode_filename (test.test_autopep8.CommandLineTests)
diff --git a/nixpkgs/pkgs/development/python-modules/av/default.nix b/nixpkgs/pkgs/development/python-modules/av/default.nix
index ca750f32dba9..594ac42018b2 100644
--- a/nixpkgs/pkgs/development/python-modules/av/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/av/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , numpy
 , ffmpeg
 , pkgconfig
@@ -8,11 +9,12 @@
 
 buildPythonPackage rec {
   pname = "av";
-  version = "7.0.1";
+  version = "8.0.2";
+  disabled = isPy27; # setup.py no longer compatible
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10qav9dryly9h6n8vypx5m334v2lh88fsvgfg0zjy4bxjslay4zv";
+    sha256 = "a3bba6bf68766b8a1a057f28869c7078cf0a1ec3207c7788c2ce8fe6f6bd8267";
   };
 
   checkInputs = [ numpy ];
diff --git a/nixpkgs/pkgs/development/python-modules/avro-python3/default.nix b/nixpkgs/pkgs/development/python-modules/avro-python3/default.nix
index 1ec3d296222c..e6bd5acbbb89 100644
--- a/nixpkgs/pkgs/development/python-modules/avro-python3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/avro-python3/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "avro-python3";
-  version = "1.9.2.1";
+  version = "1.10.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ca1e77a3da5ac98e8833588f71fb2e170b38e34787ee0e04920de0e9470b7d32";
+    sha256 = "a455c215540b1fceb1823e2a918e94959b54cb363307c97869aa46b5b55bde05";
   };
 
   doCheck = false;        # No such file or directory: './run_tests.py
diff --git a/nixpkgs/pkgs/development/python-modules/avro/default.nix b/nixpkgs/pkgs/development/python-modules/avro/default.nix
index 48ccd891c857..d9f57686845d 100644
--- a/nixpkgs/pkgs/development/python-modules/avro/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/avro/default.nix
@@ -1,17 +1,30 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k }:
+{ stdenv, buildPythonPackage, isPy3k, fetchPypi, pycodestyle, isort }:
 
 buildPythonPackage rec {
   pname = "avro";
-  version = "1.9.2";
-  disabled = isPy3k;
+  version = "1.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4487f0e91d0d44142bd08b3c6da57073b720c3effb02eeb4e2e822804964c56b";
+    sha256 = "bbf9f89fd20b4cf3156f10ec9fbce83579ece3e0403546c305957f9dac0d2f03";
   };
 
+  patchPhase = ''
+    # this test requires network access
+    sed -i 's/test_server_with_path/noop/' avro/test/test_ipc.py
+  '' + (stdenv.lib.optionalString isPy3k ''
+    # these files require twisted, which is not python3 compatible
+    rm avro/txipc.py
+    rm avro/test/txsample*
+  '');
+
+  nativeBuildInputs = [ pycodestyle ];
+  propagatedBuildInputs = [ isort ];
+
   meta = with stdenv.lib; {
     description = "A serialization and RPC framework";
     homepage = "https://pypi.python.org/pypi/avro/";
+    license = licenses.asl20;
+    maintainers = [ maintainers.zimbatm ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/awkward/default.nix b/nixpkgs/pkgs/development/python-modules/awkward/default.nix
index 10e8355297cf..65dfd4628571 100644
--- a/nixpkgs/pkgs/development/python-modules/awkward/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/awkward/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "awkward";
-  version = "0.12.21";
+  version = "0.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1253f1d85bda79a45d209ea467e4ba6fcaa5354c317c194945dc354a259f5aa8";
+    sha256 = "1a461ee084ea5e98333dacf2506e9b2619ee89cece14b9b99830b546b35c5922";
   };
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/nixpkgs/pkgs/development/python-modules/awkward1/default.nix b/nixpkgs/pkgs/development/python-modules/awkward1/default.nix
index e3549e0a4a85..927d620948ca 100644
--- a/nixpkgs/pkgs/development/python-modules/awkward1/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/awkward1/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "awkward1";
-  version = "0.2.23";
+  version = "0.2.35";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d7458b499959af66e0a640e29e6b676a39cc9614cd504e5a2e8f8d0c7f546597";
+    sha256 = "563868f0f2d0cb398ce3616ee3f9734cc68cee9a612d35cab830ec5c728f1474";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix b/nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix
index 20ed59f9e5bd..cb014896d294 100644
--- a/nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aws-adfs/default.nix
@@ -4,12 +4,12 @@
 
 buildPythonPackage rec {
   pname = "aws-adfs";
-  version = "1.24.3";
+  version = "1.24.4";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0bcjlf5dkg2q0db0ra1ssa3hy98spflkd3ykhmlyv65rkgx8w1wv";
+    sha256 = "601b056fa8ba4b615289def3b1aa49aa58f1f4aa6b89f3cf7cf1e0aee9f2291c";
   };
 
   # Relax version constraint
diff --git a/nixpkgs/pkgs/development/python-modules/aws-lambda-builders/default.nix b/nixpkgs/pkgs/development/python-modules/aws-lambda-builders/default.nix
index 9979ccdd3c07..fdce47b25946 100644
--- a/nixpkgs/pkgs/development/python-modules/aws-lambda-builders/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aws-lambda-builders/default.nix
@@ -2,22 +2,24 @@
 , buildPythonPackage
 , fetchFromGitHub
 , six
+, pathlib
 , pytest
 , mock
 , parameterized
+, isPy27
 , isPy35
 }:
 
 buildPythonPackage rec {
   pname = "aws-lambda-builders";
-  version = "0.8.0";
+  version = "0.9.0";
 
   # No tests available in PyPI tarball
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "aws-lambda-builders";
     rev = "v${version}";
-    sha256 = "1akiv92cd7ciky0aay94lh9azr73jajn0x0x6ywaf3qm5c4hyvys";
+    sha256 = "0cgb0hwf4xg5dmm32wwlxqy7a77jw6gpnj7v8rq5948hsy2sfrcp";
   };
 
   # Package is not compatible with Python 3.5
@@ -25,7 +27,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     six
-  ];
+  ] ++ lib.optionals isPy27 [ pathlib ];
 
   checkInputs = [
     pytest
diff --git a/nixpkgs/pkgs/development/python-modules/aws-sam-translator/default.nix b/nixpkgs/pkgs/development/python-modules/aws-sam-translator/default.nix
index 13bc3cdbbbb6..5245801bb096 100644
--- a/nixpkgs/pkgs/development/python-modules/aws-sam-translator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aws-sam-translator/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "aws-sam-translator";
-  version = "1.21.0";
+  version = "1.26.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0diyqiwas9fhkj7p5hm08lvkd5h9yn9zqilwww2av04mclfk82ij";
+    sha256 = "1a3fd8e48a745967e8457b9cefdc3ad0f139ac4a25af4db9c13a9e1c19ea6910";
   };
 
   # Tests are not included in the PyPI package
diff --git a/nixpkgs/pkgs/development/python-modules/aws-xray-sdk/default.nix b/nixpkgs/pkgs/development/python-modules/aws-xray-sdk/default.nix
index 6e12a1bcb31a..313dd4241d5c 100644
--- a/nixpkgs/pkgs/development/python-modules/aws-xray-sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/aws-xray-sdk/default.nix
@@ -1,6 +1,8 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
+, importlib-metadata
 , jsonpickle
 , wrapt
 , requests
@@ -10,15 +12,17 @@
 
 buildPythonPackage rec {
   pname = "aws-xray-sdk";
-  version = "2.4.3";
+  version = "2.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "263a38f3920d9dc625e3acb92e6f6d300f4250b70f538bd009ce6e485676ab74";
+    sha256 = "abf5b90f740e1f402e23414c9670e59cb9772e235e271fef2bce62b9100cbc77";
   };
 
   propagatedBuildInputs = [
     jsonpickle wrapt requests future botocore
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
   ];
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/azure-core/default.nix b/nixpkgs/pkgs/development/python-modules/azure-core/default.nix
index dc31669f7182..35640989b2f1 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-core/default.nix
@@ -4,6 +4,8 @@
 , mock
 , msrest
 , pytest
+, pytest-asyncio
+, pytest-trio
 , pytestCheckHook
 , requests
 , six
@@ -12,14 +14,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.5.0";
+  version = "1.8.0";
   pname = "azure-core";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "181iyigm11y56lf1kwv7pcdyppavpwjb1b6k3qp3jnbqaypad9mg";
+    sha256 = "c89bbdcdc13ad45fe57d775ed87b15baf6d0b039a1ecd0a1bc91d2f713cb1f08";
   };
 
   propagatedBuildInputs = [
@@ -33,13 +35,16 @@ buildPythonPackage rec {
     mock
     msrest
     pytest
+    pytest-trio
+    pytest-asyncio
     pytestCheckHook
     trio
     typing-extensions
   ];
 
   pytestFlagsArray = [ "tests/" ];
-  disabledTests = [ "response" "request" "timeout" ];
+  # disable tests which touch network
+  disabledTests = [ "aiohttp" "multipart_send" "response" "request" "timeout" ];
 
   meta = with lib; {
     description = "Microsoft Azure Core Library for Python";
diff --git a/nixpkgs/pkgs/development/python-modules/azure-datalake-store/default.nix b/nixpkgs/pkgs/development/python-modules/azure-datalake-store/default.nix
index 5c45b843c765..e5a38cdaa44c 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-datalake-store/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-datalake-store/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "azure-datalake-store";
-  version = "0.0.48";
+  version = "0.0.49";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d27c335783d4add00b3a5f709341e4a8009857440209e15a739a9a96b52386f7";
+    sha256 = "3fcede6255cc9cd083d498c3a399b422f35f804c561bb369a7150ff1f2f07da9";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-identity/default.nix b/nixpkgs/pkgs/development/python-modules/azure-identity/default.nix
index d1baeb380327..f607ab7a094f 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-identity/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-identity/default.nix
@@ -17,13 +17,13 @@
 
 buildPythonPackage rec {
   pname = "azure-identity";
-  version = "1.3.1";
+  version = "1.4.0";
   disabled = isPy38;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "5a59c36b4b05bdaec455c390feda71b6495fc828246593404351b9a41c2e877a";
+    sha256 = "820e1f3e21f90d36063239c6cb7ca9a6bb644cb120a6b1ead3081cafdf6ceaf8";
   };
 
   propagatedBuildInputs = [
@@ -38,6 +38,13 @@ buildPythonPackage rec {
     msrestazure
   ];
 
+  prePatch = ''
+    substituteInPlace setup.py \
+      --replace msal-extensions~=0.1.3 msal-extensions
+  '';
+
+  pythonImportsCheck = [ "azure.identity" ];
+
   # Requires checkout from mono-repo and a mock account:
   #   https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/identity/tests.yml
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/azure-keyvault-certificates/default.nix b/nixpkgs/pkgs/development/python-modules/azure-keyvault-certificates/default.nix
index 1e4b8f09c55a..06752a4f8fcd 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-keyvault-certificates/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-keyvault-certificates/default.nix
@@ -3,6 +3,7 @@
 , fetchPypi
 , python
 , isPy3k
+, azure-common
 , azure-core
 , msrest
 , msrestazure
@@ -10,15 +11,16 @@
 
 buildPythonPackage rec {
   pname = "azure-keyvault-certificates";
-  version = "4.1.0";
+  version = "4.2.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "069l6m80rq4smyqbrmjb2w18wxxg49xi2yrf1wsxpq8r0r45cksl";
+    sha256 = "5e33881f3a9b3080c815fe6a7200c0c8670ec506eff45955432ddb84f3076902";
   };
 
   propagatedBuildInputs = [
+    azure-common
     azure-core
     msrest
     msrestazure
diff --git a/nixpkgs/pkgs/development/python-modules/azure-keyvault-keys/default.nix b/nixpkgs/pkgs/development/python-modules/azure-keyvault-keys/default.nix
index 7e03e7faa8e4..25ce0fd67dbf 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-keyvault-keys/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-keyvault-keys/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "azure-keyvault-keys";
-  version = "4.1.0";
+  version = "4.2.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "f9967b4deb48e619f6c40558f69e48978779cc09c8a7fad33d536cfc41cd68f9";
+    sha256 = "e47b76ca5d99b12436c64ce4431271cd6744fba017f282991b84ce303e0b9eaa";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-keyvault-secrets/default.nix b/nixpkgs/pkgs/development/python-modules/azure-keyvault-secrets/default.nix
index 25d58513d311..704d2951cc97 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-keyvault-secrets/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-keyvault-secrets/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "azure-keyvault-secrets";
-  version = "4.1.0";
+  version = "4.2.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "4f3bfac60e025e01dd1c1998b73649d45d706975356c0cf147174cf5a6ddf8be";
+    sha256 = "1083ab900da5ec63c518ffef49d9fdca02c81ddffdf80c52c03cd9da479e021f";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix
index 75c912dfe40c..3c019cdf31ea 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-appconfiguration/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.4.0";
+  version = "0.6.0";
   pname = "azure-mgmt-appconfiguration";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1dn5585nsizszjivx6lp677ka0mrg0ayqgag4yzfdz9ml8mj1xl5";
+    sha256 = "fe6e216ce7293219b7d8d1cbcca7cf2f4511f134c2bf0b3455078bf086436c5f";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-authorization/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-authorization/default.nix
index 994886afc707..3a9d2e5de2e8 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-authorization/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-authorization/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-authorization";
-  version = "0.60.0";
+  version = "0.61.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "19yn2ar2y8j4idzf8mxrxplxnawbk83sid3pzvzddif29aipbs1i";
+    sha256 = "f5cceea3add04e9445ea88492f15eecf6c126f0406d967c95f6e48b79be8db75";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-cdn/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
index da6d1639a136..d6aa79c6915d 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cdn";
-  version = "4.0.0";
+  version = "5.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "a53e9e09e2711ce9109329538fe9a8a1a5d0809efb231d7df481e55d09c4f02a";
+    sha256 = "5af79f80e6c5f4766bcb5b8c62273445fb2beaeae85c5b9d2ab9aa369d60ede3";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix
index c16814760985..98ca58e43407 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cognitiveservices";
-  version = "6.1.0";
+  version = "6.2.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "e0c4bbe656ababb942d708ee04f3f3305a2023e322a8b3fb1d8503aa682f59c4";
+    sha256 = "93503507ba87c18fe24cd3dfcd54e6e69a4daf7636f38b7537e09cee9a4c13ce";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix
index e78d93fb7bc1..5d80bace33f8 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-compute/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "12.0.0";
+  version = "13.0.0";
   pname = "azure-mgmt-compute";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0vzq93g2fpnij4rykkk3391xq2knhlbz87vhim4zvj8s45sx6z8q";
+    sha256 = "7f331bafcbedf25d65aa42038f7553747dab18d7f10a5af3297192d31c45339e";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix
index 5bf67fc6787c..2dfff00dfa61 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-containerinstance";
-  version = "1.5.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1kd8lxm5kzk0wxbw1f3vin10hlhb4sygrxqd5c8k715s0ipkhmdh";
+    sha256 = "5ad247d186c3c040da7a1d40ad39c9881e99afc58271f673abb602abb0b6b85b";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
index d77d28479a1a..603bd81ad1cb 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-containerservice";
-  version = "9.0.1";
+  version = "9.3.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "7e4459679bdba4aa67a4b5848e63d94e965a304a7418ef7607eb7a9ce295d886";
+    sha256 = "04ca071d1d6af854b6a5947c5aed803924ccbd2ea0d240285b6fa68dc4ab75a9";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-core/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-core/default.nix
index b2737826ae32..17e7796b98ed 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-core/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.1.0";
+  version = "1.2.0";
   pname = "azure-mgmt-core";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "049dfb0bcc7961d0d988fee493d1ec4f4480e109e4661e360bad054cc297d43c";
+    sha256 = "8fe3b59446438f27e34f7b24ea692a982034d9e734617ca1320eedeee1939998";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
index 61bc17df0148..38b580df2522 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cosmosdb";
-  version = "0.14.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "692544dd2fa6276a7a4b4e094e2a5e0915d29b7829e266c6ade2b17a5fdcc2a9";
+    sha256 = "e08b37aea8e6b62596f55f9beb924e1759b2dc424c180ab2e752153a2b01b723";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
index e7da7541dd98..9e6fb57ba267 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-datafactory";
-  version = "0.10.0";
+  version = "0.12.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "48b1ec81f30f4b5f38dd17f68f0dfc968db96e0a04fdcfc99f43f80ca041f14b";
+    sha256 = "cee5168c8b89cbc673744323cf98f7f22d710914c79d103f84f8f24b780e8214";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
index 1057322a8e6a..78e30841c148 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-eventhub";
-  version = "3.1.0";
+  version = "4.0.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "c823a0ed879230a3ec9f15c32c9788610af1db56e6aeae6b2725476ddbe0d138";
+    sha256 = "1qisnwn0gqfsa3h5x0fdbsgdjwn92hdbg71gdijrja0kryb328k5";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
index 4b8aef08f1c5..b6f0dadf225c 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-hdinsight/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.4.0";
+  version = "1.7.0";
   pname = "azure-mgmt-hdinsight";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zmmfj7z1zrayjqwqybcn3bwm47d2ngyxm1g6fh2iw5c2f9czycv";
+    sha256 = "9d1120bd9760687d87594ec5ce9257b7335504afbe55b3cda79462c1e07a095b";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix
index 5ba25e11a89e..963d794d5505 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-iotcentral";
-  version = "3.0.0";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "f6dacf442ccae2f18f1082e80bcbdcaa8c0efa2ba92b48c5db6ee01d37240047";
+    sha256 = "c175f6642be514ad0efd3dc03d09e50d923596fd9e634381793dcc46bb8a57c7";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
index fd6cd26c7c6c..a4b1679b250a 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
@@ -7,6 +7,7 @@
 , msrestazure
 , azure-common
 , azure-mgmt-nspkg
+, azure-mgmt-core
 }:
 
 buildPythonPackage rec {
@@ -23,6 +24,7 @@ buildPythonPackage rec {
     msrest
     msrestazure
     azure-common
+    azure-mgmt-core
     azure-mgmt-nspkg
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
index 08a9b6b507ef..0cb180064eed 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-kusto/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.7.0";
+  version = "0.9.0";
   pname = "azure-mgmt-kusto";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "40f8e62db145d31731018b83baf2d1a78b585514c373dd3c095f1f6835d17d23";
+    sha256 = "9210db89fa18ee8ed53339cd63bbe6fe1d9624cd793b54b7451ddbda8ae92ef3";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
index 69c1aaffada3..247e1ef3fed0 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-loganalytics";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "a1527fe8b1e8a47558bfa03bd6c587706d8fb9213142aea42da07397daa2d039";
+    sha256 = "18n2lqvrhq40gdqhlzzg8mc03571i02c7qq7jv771lc58rqpzysh";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-media/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-media/default.nix
index f3dfaba6d9cb..018d7140a3d9 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-media/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-media/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-media";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1py0hch0wghzfxazdrrs7p0kln2zn9jh3fmkzwd2z8qggj38q6gm";
+    sha256 = "0adeee9e654a9011f5107def06fea6838864a3514a1e5a9ed495f3a56a687cc7";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-monitor/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-monitor/default.nix
index 36124ff6baaf..038ed52d768c 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-monitor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-monitor/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-monitor";
-  version = "0.9.0";
+  version = "0.11.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "170jyr1qzwhv5ihyrsg5d8qzjylqmg31dscd31jzi4i7bwqf3sb8";
+    sha256 = "c6e1fe83dd2ddffa7f6d90c7aa63b3128042396a3893c14dc4816ad28cb15016";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
index 42ebac80e677..03388c427674 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.10.0";
+  version = "0.12.0";
   pname = "azure-mgmt-netapp";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "380b2153c52a861ae9069fcd601cbaeb9a6f91c49cba823443a9b5fe461c3998";
+    sha256 = "7d773119bc02e3d6f9d7cffb7effc17e85676d5c5b1f656d05abc4489e472c76";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-network/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-network/default.nix
index 24f7165281d4..a140c779fff1 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-network/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-network/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "10.2.0";
+  version = "11.0.0";
   pname = "azure-mgmt-network";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "d50c74cdc1c9be6861ddef9adffd3b05afc5a5092baf0209eea30f4439cba2d9";
+    sha256 = "7fdfc631c660cb173eee88abbb7b8be7742f91b522be6017867f217409cd69bc";
   };
 
   postInstall = if isPy3k then "" else ''
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
index ece93025b571..75781dab8ed3 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-recoveryservicesbackup/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-recoveryservicesbackup";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "6355d9234d87422d57bf2ea8d1cc242463c203e4bb79b8930f22f29f4e025fa1";
+    sha256 = "a0ee89691b21945cc4b892a9194320f50c1cd242d98f00a82d7e3848c28517a5";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-reservations/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-reservations/default.nix
index 3873f08e3ce2..d5e4226b5ccc 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-reservations/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-reservations/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-reservations";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "f65c1985a47e0ac55e7d5d9cc1bd5e95335a111566edc289d460aa2bc8f80991";
+    sha256 = "b12318392e6f5100246c60de88879e24b15db104d00f9704a4ff51e7344594f1";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-resource/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-resource/default.nix
index 81f8e15953dc..07427ff1ff1d 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-resource/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-resource/default.nix
@@ -8,13 +8,13 @@
 
 
 buildPythonPackage rec {
-  version = "9.0.0";
+  version = "10.2.0";
   pname = "azure-mgmt-resource";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "00bmdbr7hdwb3ibr9sfbgbmmr6626qlz19cdi84d87rcisczf4nw";
+    sha256 = "ddfe4c0c55f0e3fd1f66dd82c1d4a3d872ce124639b9a77fcd172daf464438a5";
   };
 
   postInstall = if isPy3k then "" else ''
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-security/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-security/default.nix
index 5a9d8849f8d2..90a64ff098ae 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-security/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-security/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.3.0";
+  version = "0.4.1";
   pname = "azure-mgmt-security";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0z766424783a6y5dp5ybxssb0bfzqb8kpa6zra8ccnbfg4fn478v";
+    sha256 = "08gf401d40bd1kn9wmpxcjxqdh84cd9hxm8rdjd0918483sqs71r";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix
index 47df7f05cebc..60ffeae2b518 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-servicefabric";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1x18grkjf2p2r1ihlwv607sna9yjvsr2jwnkjc55askrgrwx5jx2";
+    sha256 = "5771f24516c8d4a27f5569f23f3a606f6f106e4ad502eec7f38aedfcd3eadc74";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-sql/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-sql/default.nix
index 1b6649a36f23..16b37320ff50 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-sql/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-sql/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-sql";
-  version = "0.18.0";
+  version = "0.20.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "99ca085eb523a5c27933060ccb04d7a6b60864f98d87bf5b63ac17d419b43445";
+    sha256 = "29dde5bb3234be6e4b2bc93ad1d37dc94b3d0536bbb21759e9b24250d2dfdab2";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix
index e3ac0961542b..b6cd9ca5c8ad 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-storage/default.nix
@@ -7,13 +7,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "10.0.0";
+  version = "11.2.0";
   pname = "azure-mgmt-storage";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "d1edead1ad36e957c9f9b605f547ad1ff7152f8f785fa03d3c7891bb428a68ef";
+    sha256 = "fc8e3cbf3c58cab98d9b2218c774dae2cc90b693f5ab5a24a7a959febe6c0528";
   };
 
   propagatedBuildInputs = [ azure-mgmt-common ];
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-subscription/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-subscription/default.nix
index 92dcc7cd952a..6a429a056f45 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-subscription/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-subscription/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-subscription";
-  version = "0.5.0";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "1w91zqi2icld76mcrz0kwq0adb1nr83yqdq6qp1p1445p914qjsh";
+    sha256 = "7448a322eceed3d300e181fde0f626c0e37df773f6c7297df2b73d98cb0936cf";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-synapse/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-synapse/default.nix
new file mode 100644
index 000000000000..ffdb6eb53788
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-synapse/default.nix
@@ -0,0 +1,32 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, azure-common
+, msrest
+, msrestazure
+}:
+
+buildPythonPackage rec {
+  pname = "azure-mgmt-synapse";
+  version = "0.3.0";
+  disabled = pythonOlder "3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0sa12s5af9xl1wnblilswxc6ydr2anm9an000iz3ks54pydby2vy";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    msrest
+    msrestazure
+  ];
+
+  pythonImportsCheck = [ "azure.mgmt.synapse" ];
+
+  meta = with lib; {
+    description = "Azure python SDK";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/azure-mgmt-web/default.nix b/nixpkgs/pkgs/development/python-modules/azure-mgmt-web/default.nix
index 48f7296d9994..727311cc09a9 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-mgmt-web/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-mgmt-web/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-web";
-  version = "0.46.0";
+  version = "0.47.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "e1988aa2b91e6b5aa84e48ac02d5546945bdc2d8331744869e923ba15066c4a6";
+    sha256 = "1s6c477q2kpyiqkisw6l70ydyjkv3ay6zjjj4jl4ipv05a7356kq";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-multiapi-storage/default.nix b/nixpkgs/pkgs/development/python-modules/azure-multiapi-storage/default.nix
index d10045b41d78..18e4a12d3b36 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-multiapi-storage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-multiapi-storage/default.nix
@@ -1,4 +1,5 @@
 { lib, python, buildPythonPackage, fetchPypi, isPy27
+, fetchpatch
 , azure-common
 , azure-core
 , msrest
@@ -7,13 +8,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.3.2";
+  version = "0.4.1";
   pname = "azure-multiapi-storage";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c403a47e40e4a80d9c42c854993f5c07f12c2a75bd9a85ba8225985493a9b792";
+    sha256 = "0h7bzaqwyl3j9xqzjbnwxp59kmg6shxk76pml9kvvqbwsq9w6fx3";
   };
 
   propagatedBuildInputs = [
@@ -24,6 +25,14 @@ buildPythonPackage rec {
     requests
   ];
 
+  # Fix to actually install the package
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/Azure/azure-multiapi-storage-python/pull/29/commits/1c8b08dfc9c5445498de3475dec8820eafbd0ca1.patch";
+      sha256 = "1f80sdbw4pagrlp9dhcimhp23sdmy0whiba07aa84agkpv4df9ny";
+    })
+  ];
+
   # fix namespace
   pythonNamespaces = [ "azure.multiapi" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix b/nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix
index 5ec0dc9f6eb1..964ec3c0d13d 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-storage-blob/default.nix
@@ -2,23 +2,28 @@
 , buildPythonPackage
 , fetchPypi
 , azure-common
+, azure-core
 , azure-storage-common
+, msrest
 , isPy3k
 , futures
 }:
 
 buildPythonPackage rec {
   pname = "azure-storage-blob";
-  version = "2.1.0";
+  version = "12.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b90323aad60f207f9f90a0c4cf94c10acc313c20b39403398dfba51f25f7b454";
+    extension = "zip";
+    sha256 = "1s03daq5mxh9acbv8qpa55c2wmjvdf8jq071cwv65mrly8prp84n";
   };
 
   propagatedBuildInputs = [
     azure-common
+    azure-core
     azure-storage-common
+    msrest
   ] ++ lib.optional (!isPy3k) futures;
 
   # has no tests
diff --git a/nixpkgs/pkgs/development/python-modules/azure-storage-file-share/default.nix b/nixpkgs/pkgs/development/python-modules/azure-storage-file-share/default.nix
index a4f8e161ba3b..b8a642f665cd 100644
--- a/nixpkgs/pkgs/development/python-modules/azure-storage-file-share/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/azure-storage-file-share/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "azure-storage-file-share";
-  version = "12.1.1";
+  version = "12.2.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "661ed9669b9fbb3163899294d28f11f7c135336e1513aab6bd1ff9ef3c6febb3";
+    sha256 = "b649ed8afd67c10c9833f349a7c579d771a6425ad6b88027130a6b8cfa433ffb";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix b/nixpkgs/pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix
new file mode 100644
index 000000000000..d9d0941abde0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/azure-synapse-accesscontrol/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchPypi
+, azure-common
+, azure-core
+, msrest
+}:
+
+buildPythonPackage rec {
+  pname = "azure-synapse-accesscontrol";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1rsdqrhrgy09kbw6c7krb4hlaxs1ldb6lilwrbxgp3zqybxxnh5b";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    azure-core
+    msrest
+  ];
+
+  pythonImportsCheck = [ "azure.synapse.accesscontrol" ];
+
+  meta = with lib; {
+    description = "Azure python SDK";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/azure-synapse-spark/default.nix b/nixpkgs/pkgs/development/python-modules/azure-synapse-spark/default.nix
new file mode 100644
index 000000000000..bf75e987bdcb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/azure-synapse-spark/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchPypi
+, azure-common
+, azure-core
+, msrest
+}:
+
+buildPythonPackage rec {
+  pname = "azure-synapse-spark";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1qijqp6llshqas422lnqvpv45iv99n7f13v86znql40y3jp5n3ir";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [
+    azure-common
+    azure-core
+    msrest
+  ];
+
+  pythonImportsCheck = [ "azure.synapse.spark" ];
+
+  meta = with lib; {
+    description = "Azure python SDK";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/b2sdk/default.nix b/nixpkgs/pkgs/development/python-modules/b2sdk/default.nix
new file mode 100644
index 000000000000..7dfce0d75c52
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/b2sdk/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, buildPythonPackage, fetchPypi, setuptools_scm, isPy27, pytestCheckHook
+, requests, arrow, logfury, tqdm }:
+
+buildPythonPackage rec {
+  pname = "b2sdk";
+  version = "1.1.4";
+
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0g527qdda105r5g9yjh4lxzlmz34m2bdz8dydqqy09igdsmiyi9j";
+  };
+
+  pythonImportsCheck = [ "b2sdk" ];
+
+  nativebuildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [ requests arrow logfury tqdm ];
+
+  # requires unpackaged dependencies like liccheck
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Client library and utilities for access to B2 Cloud Storage (backblaze).";
+    homepage = "https://github.com/Backblaze/b2-sdk-python";
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/backcall/default.nix b/nixpkgs/pkgs/development/python-modules/backcall/default.nix
index f1951a13d78d..b5a53b62132b 100644
--- a/nixpkgs/pkgs/development/python-modules/backcall/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/backcall/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "backcall";
-  version = "0.1.0";
+  version = "0.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "38ecd85be2c1e78f77fd91700c76e14667dc21e2713b63876c0eb901196e01e4";
+    sha256 = "5cbdbf27be5e7cfadb448baf0aa95508f91f2bbc6c6437cd9cd06e2a4c215e1e";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/backoff/default.nix b/nixpkgs/pkgs/development/python-modules/backoff/default.nix
new file mode 100644
index 000000000000..fd92351c4d83
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/backoff/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook, poetry, pytest-asyncio, }:
+
+buildPythonPackage rec {
+  pname = "backoff";
+  version = "1.10.0";
+
+  src = fetchFromGitHub {
+    owner = "litl";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1jj0l6pjx747d2yyvnzd3qbm4qr73sq6cc56dhvd8wqfbp5279x0";
+  };
+
+  format = "pyproject";
+
+  nativeBuildInputs = [ poetry ];
+
+  checkInputs = [ pytestCheckHook pytest-asyncio ];
+
+  meta = with lib; {
+    description = "Function decoration for backoff and retry";
+    homepage = "https://github.com/litl/backoff";
+    license = licenses.mit;
+    maintainers = with maintainers; [ chkno ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/base58/default.nix b/nixpkgs/pkgs/development/python-modules/base58/default.nix
index 8f26a3340a7a..42f848aa846b 100644
--- a/nixpkgs/pkgs/development/python-modules/base58/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/base58/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, fetchPypi, buildPythonPackage, pytest, pyhamcrest }:
+{ stdenv, fetchPypi, buildPythonPackage, isPy27, pytest, pyhamcrest }:
 
 buildPythonPackage rec {
   pname = "base58";
-  version = "1.0.3";
+  version = "2.0.1";
+  disabled = isPy27; # python 2 abandoned upstream
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9a793c599979c497800eb414c852b80866f28daaed5494703fc129592cc83e60";
+    sha256 = "365c9561d9babac1b5f18ee797508cd54937a724b6e419a130abad69cec5ca79";
   };
 
   checkInputs = [ pytest pyhamcrest ];
diff --git a/nixpkgs/pkgs/development/python-modules/bash_kernel/default.nix b/nixpkgs/pkgs/development/python-modules/bash_kernel/default.nix
index 191f03426746..9ac72a21fa7d 100644
--- a/nixpkgs/pkgs/development/python-modules/bash_kernel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bash_kernel/default.nix
@@ -6,6 +6,7 @@
 , isPy27
 , python
 , pexpect
+, bash
 }:
 
 buildPythonPackage rec {
@@ -26,6 +27,12 @@ buildPythonPackage rec {
     })
   ];
 
+  postPatch = ''
+    substituteInPlace bash_kernel/kernel.py \
+      --replace "'bash'" "'${bash}/bin/bash'" \
+      --replace "\"bash\"" "'${bash}/bin/bash'"
+  '';
+
   propagatedBuildInputs = [ ipykernel pexpect ];
 
   # no tests
diff --git a/nixpkgs/pkgs/development/python-modules/batchgenerators/default.nix b/nixpkgs/pkgs/development/python-modules/batchgenerators/default.nix
index bfc52c99ef5d..b0f3cdb6e119 100644
--- a/nixpkgs/pkgs/development/python-modules/batchgenerators/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/batchgenerators/default.nix
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     repo = pname;
     rev = "v${version}";
     sha256 = "0cc3i4wznqb7lk8n6jkprvkpsby6r7khkxqwn75k8f01mxgjfpvf";
-    
+
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/batchspawner/default.nix b/nixpkgs/pkgs/development/python-modules/batchspawner/default.nix
new file mode 100644
index 000000000000..ebf24fb9d7ba
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/batchspawner/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, jupyterhub
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "batchspawner";
+  version = "1.0.0";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "jupyterhub";
+    repo = "batchspawner";
+    rev = "v${version}";
+    sha256 = "0yn312sjfjpjjfciagbczfmqprk2fj4lbb3vsbzj17p948acq5w2";
+  };
+
+  propagatedBuildInputs = [
+    jupyterhub
+  ];
+
+  # tests require a job scheduler e.g. slurm, pbs, etc.
+  doCheck = false;
+
+  pythonImportCheck = [ "batchspawner" ];
+
+  meta = with lib; {
+    description = "A spawner for Jupyterhub to spawn notebooks using batch resource managers";
+    homepage = "https://jupyter.org";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/batinfo/default.nix b/nixpkgs/pkgs/development/python-modules/batinfo/default.nix
index 57dfd5062c16..e8516aecdc65 100644
--- a/nixpkgs/pkgs/development/python-modules/batinfo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/batinfo/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/nicolargo/batinfo";
     description = "A simple Python lib to retrieve battery information";
     license = licenses.lgpl3;
-    platforms = platforms.all;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ koral ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/bayesian-optimization/default.nix b/nixpkgs/pkgs/development/python-modules/bayesian-optimization/default.nix
index 990d471bc6b0..69494a4fa1fd 100644
--- a/nixpkgs/pkgs/development/python-modules/bayesian-optimization/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bayesian-optimization/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     scikitlearn
     scipy
   ];
-  
+
   checkInputs = [ pytest ];
   checkPhase = ''
     pytest tests
diff --git a/nixpkgs/pkgs/development/python-modules/bcrypt/3_1.nix b/nixpkgs/pkgs/development/python-modules/bcrypt/3_1.nix
new file mode 100644
index 000000000000..c70161cf28b0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/bcrypt/3_1.nix
@@ -0,0 +1,23 @@
+{ stdenv, lib, buildPythonPackage, fetchPypi
+, isPyPy, cffi, pytest, six }:
+
+buildPythonPackage rec {
+  version = "3.1.7";
+  pname = "bcrypt";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0b0069c752ec14172c5f78208f1863d7ad6755a6fae6fe76ec2c80d13be41e42";
+  };
+
+  checkInputs = [ pytest ];
+
+  propagatedBuildInputs = [ six ] ++ lib.optional (!isPyPy) cffi;
+
+  meta = with lib; {
+    description = "Modern password hashing for your software and your servers";
+    homepage = "https://github.com/pyca/bcrypt/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ domenkozar ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/bcrypt/default.nix b/nixpkgs/pkgs/development/python-modules/bcrypt/default.nix
index 2468eaccecdb..dc50c56018e0 100644
--- a/nixpkgs/pkgs/development/python-modules/bcrypt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bcrypt/default.nix
@@ -1,15 +1,16 @@
-{ stdenv, buildPythonPackage, isPyPy, fetchPypi
+{ stdenv, buildPythonPackage, isPyPy, fetchPypi, pythonOlder
 , cffi, pycparser, mock, pytest, py, six }:
 
 with stdenv.lib;
 
 buildPythonPackage rec {
-  version = "3.1.7";
+  version = "3.2.0";
   pname = "bcrypt";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0b0069c752ec14172c5f78208f1863d7ad6755a6fae6fe76ec2c80d13be41e42";
+    sha256 = "5b93c1726e50a93a033c36e5ca7fdcd29a5c7395af50a6892f5d9e7c6cfbfb29";
   };
   buildInputs = [ pycparser mock pytest py ];
   propagatedBuildInputs = [ six ] ++ optional (!isPyPy) cffi;
diff --git a/nixpkgs/pkgs/development/python-modules/beancount/default.nix b/nixpkgs/pkgs/development/python-modules/beancount/default.nix
index 9709037792dc..adbf9a46ab40 100644
--- a/nixpkgs/pkgs/development/python-modules/beancount/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/beancount/default.nix
@@ -4,14 +4,14 @@
 , ply, python_magic, pytest, requests }:
 
 buildPythonPackage rec {
-  version = "2.3.0";
+  version = "2.3.1";
   pname = "beancount";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04i788glp2cslwi67dixy1pi5l0izcl078i9mrd1j1sh8f99cvcs";
+    sha256 = "e12abfe0a6b38ce3525adb471ca5b8e3fa4056ff712108de48da53405c518a11";
   };
 
   # Tests require files not included in the PyPI archive.
diff --git a/nixpkgs/pkgs/development/python-modules/beancount_docverif/default.nix b/nixpkgs/pkgs/development/python-modules/beancount_docverif/default.nix
new file mode 100644
index 000000000000..0067716b6265
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/beancount_docverif/default.nix
@@ -0,0 +1,46 @@
+{ lib, buildPythonPackage, fetchPypi, isPy3k
+, beancount
+, pytest, sh
+}:
+
+buildPythonPackage rec {
+  version = "1.0.0";
+  pname = "beancount_docverif";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1kjc0axrxpvm828lqq5m2ikq0ls8xksbmm7312zw867gdx56x5aj";
+  };
+
+  propagatedBuildInputs = [
+    beancount
+  ];
+
+  checkInputs = [
+    pytest
+    sh
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/siriobalmelli/beancount_docverif";
+    description = "Document verification plugin for Beancount";
+    longDescription = ''
+        Docverif is the "Document Verification" plugin for beancount, fulfilling the following functions:
+
+        - Require that every transaction touching an account have an accompanying document on disk.
+        - Explictly declare the name of a document accompanying a transaction.
+        - Explicitly declare that a transaction is expected not to have an accompanying document.
+        - Look for an "implicit" PDF document matching transaction data.
+        - Associate (and require) a document with any type of entry, including open entries themselves.
+        - Guarantee integrity: verify that every document declared does in fact exist on disk.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ siriobalmelli ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/beautifulsoup4/default.nix b/nixpkgs/pkgs/development/python-modules/beautifulsoup4/default.nix
index fc07c4ae96e9..f804ea9b282d 100644
--- a/nixpkgs/pkgs/development/python-modules/beautifulsoup4/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/beautifulsoup4/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "beautifulsoup4";
-  version = "4.8.2";
+  version = "4.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05fd825eb01c290877657a56df4c6e4c311b3965bda790c613a3d6fb01a5462a";
+    sha256 = "73cc4d115b96f79c7d77c1c7f7a0a8d4c57860d1041df407dd1aae7f07a77fd7";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/behave/default.nix b/nixpkgs/pkgs/development/python-modules/behave/default.nix
index fbe108e2a02e..26cd6441ba5a 100644
--- a/nixpkgs/pkgs/development/python-modules/behave/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/behave/default.nix
@@ -1,43 +1,37 @@
-{ stdenv, fetchPypi, fetchpatch
-, buildPythonApplication, python, pythonOlder
-, mock, nose, pathpy, pyhamcrest, pytest_4
-, glibcLocales, parse, parse-type, six
-, traceback2
+{ stdenv, fetchFromGitHub
+, buildPythonApplication, python
+, pytestCheckHook, mock, pathpy, pyhamcrest, pytest-html
+, glibcLocales
+, colorama, cucumber-tag-expressions, parse, parse-type, six
 }:
 
 buildPythonApplication rec {
   pname = "behave";
-  version = "1.2.6";
+  version = "1.2.7.dev1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "11hsz365qglvpp1m1w16239c3kiw15lw7adha49lqaakm8kj6rmr";
+  src = fetchFromGitHub {
+    owner = "behave";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1ssgixmqlg8sxsyalr83a1970njc2wg3zl8idsmxnsljwacv7qwv";
   };
 
-  patches = [
-    # Fix tests on Python 2.7
-    (fetchpatch {
-      url = "https://github.com/behave/behave/commit/0a9430a94881cd18437deb03d2ae23afea0f009c.patch";
-      sha256 = "1nrh9ii6ik6gw2kjh8a6jk4mg5yqw3jfjfllbyxardclsab62ydy";
-    })
-  ];
-
-  checkInputs = [ mock nose pathpy pyhamcrest pytest_4 ];
+  checkInputs = [ pytestCheckHook mock pathpy pyhamcrest pytest-html ];
   buildInputs = [ glibcLocales ];
-  propagatedBuildInputs = [ parse parse-type six ] ++ stdenv.lib.optional (pythonOlder "3.0") traceback2;
+  propagatedBuildInputs = [ colorama cucumber-tag-expressions parse parse-type six ];
 
   postPatch = ''
     patchShebangs bin
   '';
 
-  doCheck = true;
+  # timing-based test flaky on Darwin
+  # https://github.com/NixOS/nixpkgs/pull/97737#issuecomment-691489824
+  disabledTests = stdenv.lib.optionals stdenv.isDarwin [ "test_step_decorator_async_run_until_complete" ];
 
-  checkPhase = ''
+  postCheck = ''
     export LANG="en_US.UTF-8"
     export LC_ALL="en_US.UTF-8"
 
-    pytest test tests
-
     ${python.interpreter} bin/behave -f progress3 --stop --tags='~@xfail' features/
     ${python.interpreter} bin/behave -f progress3 --stop --tags='~@xfail' tools/test-features/
     ${python.interpreter} bin/behave -f progress3 --stop --tags='~@xfail' issue.features/
@@ -47,6 +41,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/behave/behave";
     description = "behaviour-driven development, Python style";
     license = licenses.bsd2;
-    maintainers = with maintainers; [ alunduil ];
+    maintainers = with maintainers; [ alunduil maxxk ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/bellows/default.nix b/nixpkgs/pkgs/development/python-modules/bellows/default.nix
new file mode 100644
index 000000000000..4b5cabbbde47
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/bellows/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, click, click-log, pure-pcapy3
+, pyserial, pyserial-asyncio, voluptuous, zigpy
+, asynctest, pytest, pytest-asyncio }:
+
+let
+  pname = "bellows";
+  version = "0.18.1";
+
+in buildPythonPackage rec {
+  inherit pname version;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "6a2e323c2be6f10a8e99fffccb5670bc77bbddb7b5bd9253b69021120f2ab9d7";
+  };
+
+  propagatedBuildInputs = [
+    click click-log pure-pcapy3 pyserial pyserial-asyncio voluptuous zigpy
+  ];
+
+  checkInputs = [
+    asynctest pytest pytest-asyncio
+  ];
+
+  prePatch = ''
+    substituteInPlace setup.py \
+      --replace "click-log==0.2.0" "click-log>=0.2.0"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A Python 3 project to implement EZSP for EmberZNet devices";
+    homepage = "https://github.com/zigpy/bellows";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ etu mvnetbiz ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/bespon/default.nix b/nixpkgs/pkgs/development/python-modules/bespon/default.nix
index 7949675d6517..51e29e55d07f 100644
--- a/nixpkgs/pkgs/development/python-modules/bespon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bespon/default.nix
@@ -4,18 +4,18 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.3.0";
+  version = "0.5.0";
   pname = "BespON";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0698vx1kh8c84f5qfhl4grdlyn1lljvdih8yczdz0pql8wkn8i7v";
+    sha256 = "a75cd7e62746fb0fef9b98aa157a44f9ed2ef63e952f7ae4ec5b3c2892669187";
   };
 
   propagatedBuildInputs = [ ];
   # upstream doesn't contain tests
   doCheck = false;
-  
+
   pythonImportsCheck = [ "bespon" ];
   meta = with stdenv.lib; {
     description = "Encodes and decodes data in the BespON format.";
diff --git a/nixpkgs/pkgs/development/python-modules/bidict/default.nix b/nixpkgs/pkgs/development/python-modules/bidict/default.nix
index e29263a6b4f9..8c7acc0a8ad7 100644
--- a/nixpkgs/pkgs/development/python-modules/bidict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bidict/default.nix
@@ -12,17 +12,23 @@
 
 buildPythonPackage rec {
   pname = "bidict";
-  version = "0.19.0";
+  version = "0.20.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11wiis62kcw6g3n4gdj39fx1yrlq5vz3zx3kmb6g79mliyhn2x7g";
+    sha256 = "c1b1ce1c0f1e3457489672bc3a4db375a06f61ae7797a9eedf71ea788cea3870";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ sphinx ];
 
+  # this can be removed >0.19.0
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "setuptools_scm < 4" "setuptools_scm"
+  '';
+
   checkInputs = [
     hypothesis
     py
diff --git a/nixpkgs/pkgs/development/python-modules/bids-validator/default.nix b/nixpkgs/pkgs/development/python-modules/bids-validator/default.nix
index 036f54346144..bcf45aff832d 100644
--- a/nixpkgs/pkgs/development/python-modules/bids-validator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bids-validator/default.nix
@@ -4,15 +4,18 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.5.2";
+  version = "1.5.4";
   pname = "bids-validator";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6f3bd0402d41ee9be03637d74f34a7db279d00cb9c6386b0597cbbac16ee8f4e";
+    sha256 = "b8292f4efb3617532f93c60acfec242150406bfd9e298d7f01187d67c311aa91";
   };
 
-  propagatedBuildInputs = [ ];
+  # needs packages which are not available in nixpkgs
+  doCheck = false;
+
+  pythonImportsCheck = [ "bids_validator" ];
 
   meta = with lib; {
     description = "Validator for the Brain Imaging Data Structure";
diff --git a/nixpkgs/pkgs/development/python-modules/binwalk/default.nix b/nixpkgs/pkgs/development/python-modules/binwalk/default.nix
index 97c6b957a437..0970cc18249e 100644
--- a/nixpkgs/pkgs/development/python-modules/binwalk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/binwalk/default.nix
@@ -9,13 +9,16 @@
 , gnutar
 , p7zip
 , cabextract
+, cramfsprogs
+, cramfsswap
 , lzma
+, matplotlib
 , nose
 , pycrypto
 , pyqtgraph ? null }:
 
 let
-  visualizationSupport = (pyqtgraph != null);
+  visualizationSupport = (pyqtgraph != null) && (matplotlib != null);
   version = "2.2.0";
 in
 buildPythonPackage {
@@ -29,8 +32,8 @@ buildPythonPackage {
     sha256 = "1bxgj569fzwv6jhcbl864nmlsi9x1k1r20aywjxc8b9b1zgqrlvc";
   };
 
-  propagatedBuildInputs = [ zlib xz ncompress gzip bzip2 gnutar p7zip cabextract lzma pycrypto ]
-  ++ stdenv.lib.optional visualizationSupport pyqtgraph;
+  propagatedBuildInputs = [ zlib xz ncompress gzip bzip2 gnutar p7zip cabextract cramfsswap cramfsprogs lzma pycrypto ]
+  ++ stdenv.lib.optionals visualizationSupport [ matplotlib pyqtgraph ];
 
   # setup.py only installs version.py during install, not test
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/biopython/default.nix b/nixpkgs/pkgs/development/python-modules/biopython/default.nix
index 76de4c390546..f96b8447e8a8 100644
--- a/nixpkgs/pkgs/development/python-modules/biopython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/biopython/default.nix
@@ -2,17 +2,20 @@
 , buildPythonPackage
 , fetchPypi
 , numpy
+, isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "biopython";
-  version = "1.76";
+  version = "1.77";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0wlch9xpa0fpgjzyxi6jsfca6iakaq9a05927xg8vqnmvaccnwrq";
+    sha256 = "fb1936e9ca9e7af8de1050e84375f23328e04b801063edf0ad73733494d8ec42";
   };
 
+  disabled = !isPy3k;
+
   propagatedBuildInputs = [ numpy ];
   # Checks try to write to $HOME, which does not work with nix
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/bip_utils/default.nix b/nixpkgs/pkgs/development/python-modules/bip_utils/default.nix
new file mode 100644
index 000000000000..490df40e93ca
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/bip_utils/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, ecdsa
+, pysha3
+}:
+
+buildPythonPackage rec {
+  pname = "bip_utils";
+  version = "1.4.0";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "582022ab5c1ff35d0179a22a39c90b7e4e71e4641d59b2a3e81d60df741d1e3c";
+  };
+
+  propagatedBuildInputs = [ ecdsa pysha3 ];
+
+  # tests are not packaged in the released tarball
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "bip_utils"
+  ];
+
+  meta = {
+    description = "Implementation of BIP39, BIP32, BIP44, BIP49 and BIP84 for wallet seeds, keys and addresses generation";
+    homepage = "https://github.com/ebellocchia/bip_utils";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ prusnak ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/biplist/default.nix b/nixpkgs/pkgs/development/python-modules/biplist/default.nix
new file mode 100644
index 000000000000..b3e9f7b83740
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/biplist/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildPythonPackage, fetchPypi
+, pytest
+}:
+
+buildPythonPackage rec {
+  version = "1.0.3";
+  pname = "biplist";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1im45a9z7ryrfyp1v6i39qia5qagw6i1mhif0hl0praz9iv4j1ac";
+  };
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    homepage = "https://bitbucket.org/wooster/biplist/src/master/";
+    description = "Binary plist parser/generator for Python";
+    longDescription = ''
+      Binary Property List (plist) files provide a faster and smaller
+      serialization format for property lists on OS X.
+
+      This is a library for generating binary plists which can be read
+      by OS X, iOS, or other clients.
+    '';
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ siriobalmelli ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/bitarray/default.nix b/nixpkgs/pkgs/development/python-modules/bitarray/default.nix
index 2036d4dba4bd..1e995af39207 100644
--- a/nixpkgs/pkgs/development/python-modules/bitarray/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bitarray/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "bitarray";
-  version = "1.2.2";
+  version = "1.5.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0m29k3lq37v53pczyr2d5mr3xdh2kv31g2yfnfx8m1ivxvy9z9i7";
+    sha256 = "567631fc922b1c2c528c376795f18dcc0604d18702e0b8b50e8e35f0474214a5";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/bitcoinlib/default.nix b/nixpkgs/pkgs/development/python-modules/bitcoinlib/default.nix
index dd85789c59e0..71b032a34e49 100644
--- a/nixpkgs/pkgs/development/python-modules/bitcoinlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bitcoinlib/default.nix
@@ -1,15 +1,17 @@
-{ stdenv, lib, buildPythonPackage, fetchFromGitHub, openssl }:
+{ stdenv, lib, buildPythonPackage, isPy3k, fetchFromGitHub, openssl }:
 
 let ext = if stdenv.isDarwin then "dylib" else "so";
 in buildPythonPackage rec {
   pname = "bitcoinlib";
-  version = "0.9.0";
+  version = "0.11.0";
+
+  disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner  = "petertodd";
-    rev    = "7a8a47ec6b722339de1d0a8144e55b400216f90f";
     repo   = "python-bitcoinlib";
-    sha256 = "1s1jm2nid7ab7yiwlp1n2v3was9i4q76xmm07wvzpd2zvn5zb91z";
+    rev    = "python-${pname}-v${version}";
+    sha256 = "0pwypd966zzivb37fvg4l6yr7ihplqnr1jwz9zm3biip7x89bdzm";
   };
 
   postPatch = ''
@@ -21,7 +23,7 @@ in buildPythonPackage rec {
   meta = {
     homepage = src.meta.homepage;
     description = "Easy interface to the Bitcoin data structures and protocol";
-    license = with lib.licenses; [ gpl3 ];
+    license = with lib.licenses; [ lgpl3 ];
     maintainers = with lib.maintainers; [ jb55 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/bitstruct/default.nix b/nixpkgs/pkgs/development/python-modules/bitstruct/default.nix
index aff3f70cb88a..6134d9262262 100644
--- a/nixpkgs/pkgs/development/python-modules/bitstruct/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bitstruct/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "bitstruct";
-  version = "8.10.0";
+  version = "8.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0dncll29a0lx8hn1xlhr32abkvj1rh8xa6gc0aas8wnqzh7bvqqm";
+    sha256 = "0p9d5242pkzag7ac5b5zdjyfqwxvj2jisyjghp6yhjbbwz1z44rb";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/black-macchiato/default.nix b/nixpkgs/pkgs/development/python-modules/black-macchiato/default.nix
new file mode 100644
index 000000000000..130d07d61ff4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/black-macchiato/default.nix
@@ -0,0 +1,35 @@
+{ stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  black
+}:
+
+buildPythonPackage rec {
+  pname = "black-macchiato";
+  version = "1.3.0";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner  = "wbolster";
+    repo   = pname;
+    rev    = version;
+    sha256 = "0lc9w50nlbmlzj44krk7kxcia202fhybbnwfh77xixlc7vb4rayl";
+  };
+
+  propagatedBuildInputs = [ black ];
+
+  checkInputs = [ pytestCheckHook black ];
+
+  pythonImportsCheck = [ "black" ];
+
+  meta = with stdenv.lib; {
+    description = "This is a small utility built on top of the black Python code formatter to enable formatting of partial files";
+    homepage    = "https://github.com/wbolster/black-macchiato";
+    license     = licenses.bsd3;
+    maintainers = with maintainers; [ jperras ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/python-modules/blaze/default.nix b/nixpkgs/pkgs/development/python-modules/blaze/default.nix
deleted file mode 100644
index 0707c431f1b4..000000000000
--- a/nixpkgs/pkgs/development/python-modules/blaze/default.nix
+++ /dev/null
@@ -1,71 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, contextlib2
-, cytoolz
-, dask
-, datashape
-, flask
-, flask-cors
-, h5py
-, multipledispatch
-, numba
-, numpy
-, odo
-, pandas
-, psutil
-, pymongo
-, pyyaml
-, requests
-, sqlalchemy
-, tables
-, toolz
-}:
-
-buildPythonPackage rec {
-  pname = "blaze";
-  version = "0.11.3";
-
-  src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
-    rev = version;
-    sha256 = "0w916k125058p40cf7i090f75pgv3cqdb8vwjzqhb9r482fa6717";
-  };
-
-  checkInputs = [ pytest ];
-  propagatedBuildInputs = [
-    contextlib2
-    cytoolz
-    dask
-    datashape
-    flask
-    flask-cors
-    h5py
-    multipledispatch
-    numba
-    numpy
-    odo
-    pandas
-    psutil
-    pymongo
-    pyyaml
-    requests
-    sqlalchemy
-    tables
-    toolz
-  ];
-
-  checkPhase = ''
-    rm pytest.ini # Not interested in coverage
-    py.test blaze/tests
-  '';
-
-  meta = {
-    homepage = "https://github.com/ContinuumIO/blaze";
-    description = "Allows Python users a familiar interface to query data living in other data storage systems";
-    license = lib.licenses.bsdOriginal;
-    maintainers = with lib.maintainers; [ fridh ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/bleak/default.nix b/nixpkgs/pkgs/development/python-modules/bleak/default.nix
index b7ebca9eb034..63371fc6eecf 100644
--- a/nixpkgs/pkgs/development/python-modules/bleak/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bleak/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "bleak";
-  version = "0.6.4";
+  version = "0.7.1";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1dc32899d0700c5b5ed9abf642dfee28ac62b1fb5d7be5fa5a6db104dec9a03c";
+    sha256 = "25f630cf558efda5cbf620d921b85a80ae963c537feaa18cc934f7fa38dc482d";
   };
 
   postPatch = ''
@@ -29,6 +29,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/hbldh/bleak";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/blis/default.nix b/nixpkgs/pkgs/development/python-modules/blis/default.nix
index 596545093a98..5d4b9bcb5e21 100644
--- a/nixpkgs/pkgs/development/python-modules/blis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/blis/default.nix
@@ -9,22 +9,24 @@
 
 buildPythonPackage rec {
   pname = "blis";
-  version = "0.4.1";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d69257d317e86f34a7f230a2fd1f021fd2a1b944137f40d8cdbb23bd334cd0c4";
+    sha256 = "014771a0f753a64ef5610c5b3d4a090b263073bdd59b8ad0d872ce1e06e7315a";
   };
 
   nativeBuildInputs = [
     cython
   ];
 
+  propagatedBuildInputs = [
+    numpy
+  ];
+
 
   checkInputs = [
-    cython
     hypothesis
-    numpy
     pytest
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/blivet/default.nix b/nixpkgs/pkgs/development/python-modules/blivet/default.nix
index f3efba1f378f..b8d1b4670aea 100644
--- a/nixpkgs/pkgs/development/python-modules/blivet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/blivet/default.nix
@@ -1,11 +1,8 @@
 { stdenv, fetchFromGitHub, buildPythonPackage, pykickstart, pyparted, pyblock
-, pyudev, six, libselinux, cryptsetup, multipath-tools, lsof, utillinux
+, pyudev, six, libselinux, multipath-tools, lsof, utillinux
 }:
 
-let
-  pyenable = { enablePython = true; };
-  cryptsetupWithPython = cryptsetup.override pyenable;
-in buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "blivet";
   version = "0.67";
 
@@ -30,7 +27,7 @@ in buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [
-    pykickstart pyparted pyblock pyudev libselinux cryptsetupWithPython
+    pykickstart pyparted pyblock pyudev libselinux
     six
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/block-io/default.nix b/nixpkgs/pkgs/development/python-modules/block-io/default.nix
index 505d3ffe149c..ec1229965e05 100644
--- a/nixpkgs/pkgs/development/python-modules/block-io/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/block-io/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "block-io";
-  version = "1.1.13";
+  version = "1.1.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a45e31361d17ce272a0d563a689d6b87b65cc16e9348f8cd3a6460c93359b1bd";
+    sha256 = "97ea037a67af72037cb08cec7e0a9f7866ecdfaa1a8c8ebcc0f4b9359a1516d7";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/bokeh/default.nix b/nixpkgs/pkgs/development/python-modules/bokeh/default.nix
index a3ed2c6b8aee..55a01c65f1c2 100644
--- a/nixpkgs/pkgs/development/python-modules/bokeh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bokeh/default.nix
@@ -33,11 +33,11 @@
 
 buildPythonPackage rec {
   pname = "bokeh";
-  version = "2.0.2";
+  version = "2.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d9248bdb0156797abf6d04b5eac581dcb121f5d1db7acbc13282b0609314893a";
+    sha256 = "qC6e69eh4uu3+PwerYAv79EKhNrvjsS/yYYSEyOUhVU=";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/boltons/default.nix b/nixpkgs/pkgs/development/python-modules/boltons/default.nix
index 36361ac01182..080165f70712 100644
--- a/nixpkgs/pkgs/development/python-modules/boltons/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/boltons/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "boltons";
-  version = "20.1.0";
+  version = "20.2.0";
 
   # No tests in PyPi Tarball
   src = fetchFromGitHub {
     owner = "mahmoud";
     repo = "boltons";
     rev = version;
-    sha256 = "0mbxc2n10mlmpbwhg0byddl1i0s6rlrr6z9xm8zzmkv62136irqh";
+    sha256 = "08rd6av8dp5n1vz6nybmayl1mfsmj66cskiaybfshcgix29ca803";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/boltztrap2/default.nix b/nixpkgs/pkgs/development/python-modules/boltztrap2/default.nix
index d89cf3c615d9..48fc3bf69983 100644
--- a/nixpkgs/pkgs/development/python-modules/boltztrap2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/boltztrap2/default.nix
@@ -14,13 +14,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "19.11.1";
+  version = "20.7.1";
   pname = "BoltzTraP2";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3927ae782b7329dede2bf85ff5ff328c88f0514ecb592267e28912340f395d3e";
+    sha256 = "41caa32e5778323471d87033f23537f6178a7aea64fba894c7f2b2579b51f7ed";
   };
 
   dontUseCmakeConfigure = true;
diff --git a/nixpkgs/pkgs/development/python-modules/boolean-py/default.nix b/nixpkgs/pkgs/development/python-modules/boolean-py/default.nix
index 8f5ef73c7e23..dc1b1be0d81b 100644
--- a/nixpkgs/pkgs/development/python-modules/boolean-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/boolean-py/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "boolean.py";
-  version = "3.7";
+  version = "3.8";
 
   src = fetchFromGitHub {
     owner = "bastikr";
     repo = "boolean.py";
     rev = "v${version}";
-    sha256 = "1q9ji2jq07qr6vgp9yv6y8lx6h0zyi07fqjga3yi3vpfk46h2jn1";
+    sha256 = "02jznrfrihhk69ai1vnh26s3rshl4kfc2id7li6xccavc2ws5y3b";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/booleanoperations/default.nix b/nixpkgs/pkgs/development/python-modules/booleanoperations/default.nix
new file mode 100644
index 000000000000..c747df90f5a5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/booleanoperations/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildPythonPackage, fetchPypi
+, fonttools, fs, pyclipper, defcon, fontpens
+, setuptools_scm, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "booleanOperations";
+  version = "0.9.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1f41lb19m8azchl1aqz6j5ycbspb8jsf1cnn42hlydxd68f85ylc";
+    extension = "zip";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [
+    fonttools
+    fs
+    pyclipper
+    defcon
+    fontpens
+  ];
+
+  checkInputs = [ pytest ];
+
+  meta = with lib; {
+    description = "Boolean operations on paths";
+    homepage = "https://github.com/typemytype/booleanOperations";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/boto3/default.nix b/nixpkgs/pkgs/development/python-modules/boto3/default.nix
index 1baa668d3c89..b7d599f58110 100644
--- a/nixpkgs/pkgs/development/python-modules/boto3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/boto3/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname =  "boto3";
-  version = "1.13.23"; # N.B: if you change this, change botocore too
+  version = "1.14.60"; # N.B: if you change this, change botocore too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bcaa88b2f81b88741c47da52f3414c876236700441df87b6198f860e6a200d6f";
+    sha256 = "05s2ysp90mwz5aydzfs9xm3hk9pz7s95zzpjg6g1msyy2gp2gjnq";
   };
 
   propagatedBuildInputs = [ botocore jmespath s3transfer ] ++ lib.optionals (!isPy3k) [ futures ];
diff --git a/nixpkgs/pkgs/development/python-modules/botocore/default.nix b/nixpkgs/pkgs/development/python-modules/botocore/default.nix
index 9bf977f831dd..2593e3909e00 100644
--- a/nixpkgs/pkgs/development/python-modules/botocore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/botocore/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.16.6"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.17.60"; # N.B: if you change this, change boto3 and awscli to a matching version
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b9c8e0aa07770b7b371d586db41eef46e70bfc4ab47f7a1ee1acd4e9c811c6c9";
+    sha256 = "0n3a0mhx00i2i99mcwdkk7nbqdpd50zdfkg14mki0ydccqx1jgqr";
   };
 
   propagatedBuildInputs = [
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   ];
 
   postPatch = ''
-    substituteInPlace setup.py --replace ",<0.16" ""
+    substituteInPlace setup.py --replace "docutils>=0.10,<0.16" "docutils>=0.10"
   '';
 
   checkInputs = [ mock nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/braintree/default.nix b/nixpkgs/pkgs/development/python-modules/braintree/default.nix
index 8e8c89e7f59e..1965d256fdf7 100644
--- a/nixpkgs/pkgs/development/python-modules/braintree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/braintree/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "braintree";
-  version = "4.1.0";
+  version = "4.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1fqh1bdkk3g222vbrmw3ab4r4mmd1k4x2jayshnqpbspszcqzcdq";
+    sha256 = "d2b5ead45dbfe98b6099d387c7f12b7d2994ae0efb60679e6bb0929a06027e16";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/bravia-tv/default.nix b/nixpkgs/pkgs/development/python-modules/bravia-tv/default.nix
index 8050f886db5a..00d554ef14b1 100644
--- a/nixpkgs/pkgs/development/python-modules/bravia-tv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bravia-tv/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "bravia-tv";
-  version = "1.0.5";
+  version = "1.0.6";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "dcnielsen90";
     repo = "python-bravia-tv";
     rev = "v${version}";
-    sha256 = "17nd0v3pgmbfafi3vypls9jnpg4dk7wyh7fl7gpzcnkq1f8pf087";
+    sha256 = "07i1j3y04w2jwylff8w1aimmy4fj1g42wq8iz83an7dl4cz3rap9";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/breathe/default.nix b/nixpkgs/pkgs/development/python-modules/breathe/default.nix
index 842c8289f777..5afb3bfffcfb 100644
--- a/nixpkgs/pkgs/development/python-modules/breathe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/breathe/default.nix
@@ -1,13 +1,13 @@
 { lib, fetchPypi, buildPythonPackage, docutils, six, sphinx, isPy3k, isPy27 }:
 
 buildPythonPackage rec {
-  version = "4.14.2";
+  version = "4.20.0";
   pname = "breathe";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vj2yylff07hh4l3sh3srhpnrk1q6pxznvwqzgmbplhn8gf5rimb";
+    sha256 = "d7e1e1ee9b0615423b7e9abc64f0afe12e7bcf32c817a8fd1d9c8c3c4b3d71c9";
   };
 
   propagatedBuildInputs = [ docutils six sphinx ];
diff --git a/nixpkgs/pkgs/development/python-modules/broadlink/default.nix b/nixpkgs/pkgs/development/python-modules/broadlink/default.nix
index 971b56d8b885..685ca57b7efd 100644
--- a/nixpkgs/pkgs/development/python-modules/broadlink/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/broadlink/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "broadlink";
-  version = "0.12.0";
+  version = "0.14.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6448327f8f1cd0c103971a724a3e60629ccb5e8c302e7fdcbde6464e8edef2d8";
+    sha256 = "5c443d4639b737069e5e27df451b6e89c5ed50be81899e4ea02adb355bf3d724";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/brother/default.nix b/nixpkgs/pkgs/development/python-modules/brother/default.nix
new file mode 100644
index 000000000000..e79ee03241dc
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/brother/default.nix
@@ -0,0 +1,36 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, pysnmp
+, asynctest, pytestcov, pytestrunner, pytest-asyncio, pytest-trio, pytest-tornasync }:
+
+buildPythonPackage rec {
+  pname = "brother";
+  version = "0.1.17";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "bieniu";
+    repo = pname;
+    rev = version;
+    sha256 = "03gjcpbq8rwnjzplgwhwr8wb7a1zh940dr6iwnq9srklqzzj691m";
+  };
+
+  propagatedBuildInputs = [
+    pysnmp
+  ];
+
+  checkInputs = [
+    asynctest
+    pytestcov
+    pytestrunner
+    pytest-asyncio
+    pytest-trio
+    pytest-tornasync
+  ];
+
+  meta = with lib; {
+    description = "Python wrapper for getting data from Brother laser and inkjet printers via SNMP.";
+    homepage = "https://github.com/bieniu/brother";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/brotlipy/default.nix b/nixpkgs/pkgs/development/python-modules/brotlipy/default.nix
index 1dd2a070480f..f914d2d6c97c 100644
--- a/nixpkgs/pkgs/development/python-modules/brotlipy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/brotlipy/default.nix
@@ -33,4 +33,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/python-hyper/brotlipy/";
     license = lib.licenses.mit;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/browser-cookie3/default.nix b/nixpkgs/pkgs/development/python-modules/browser-cookie3/default.nix
index 909641a9ffdf..61e50246a139 100644
--- a/nixpkgs/pkgs/development/python-modules/browser-cookie3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/browser-cookie3/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchPypi, buildPythonPackage, isPy3k, keyring, pbkdf2, pyaes}:
 buildPythonPackage rec {
   pname = "browser-cookie3";
-  version = "0.9.1";
+  version = "0.11.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "42e73e0276083ff162080860cd039138760921a56a0f316775cecee37d444c3f";
+    sha256 = "5d1f825fc9cc6f98fe0ee3f97cdb4947c22d59ac8a11643da5837ebd8c873f05";
   };
 
   disabled = !isPy3k;
diff --git a/nixpkgs/pkgs/development/python-modules/bsdiff4/default.nix b/nixpkgs/pkgs/development/python-modules/bsdiff4/default.nix
new file mode 100644
index 000000000000..aabcd4de9343
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/bsdiff4/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, aflplusplus
+}:
+
+buildPythonPackage rec {
+  pname = "bsdiff4";
+  version = "1.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "17fc0dd4204x5gqapvbrc4kv83jdajs00jxm739586pl0iapybrw";
+  };
+
+  checkPhase = ''
+    mv bsdiff4 _bsdiff4
+    python -c 'import bsdiff4; bsdiff4.test()'
+  '';
+
+  meta = with stdenv.lib; {
+    description = "binary diff and patch using the BSDIFF4-format";
+    homepage = "https://github.com/ilanschnell/bsdiff4";
+    license = licenses.bsdProtection;
+    maintainers = with maintainers; [ ris ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/btchip/default.nix b/nixpkgs/pkgs/development/python-modules/btchip/default.nix
index 069358a4d6d3..7370d3db7dbf 100644
--- a/nixpkgs/pkgs/development/python-modules/btchip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/btchip/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "btchip-python";
-  version = "0.1.28";
+  version = "0.1.30";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10yxwlsr99gby338rsnczkfigcy36fiajpkr6f44438qlvbx02fs";
+    sha256 = "1mraf2lmh70b038k934adxi7d40431j7yq93my3aws99f5xccsb8";
   };
 
   propagatedBuildInputs = [ hidapi pyscard ecdsa ];
diff --git a/nixpkgs/pkgs/development/python-modules/btrees/default.nix b/nixpkgs/pkgs/development/python-modules/btrees/default.nix
index e51d0e75a0bb..08f2c1eeb2ff 100644
--- a/nixpkgs/pkgs/development/python-modules/btrees/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/btrees/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "BTrees";
-  version = "4.6.1";
+  version = "4.7.2";
 
   buildInputs = [ transaction ];
   propagatedBuildInputs = [ persistent zope_interface ];
@@ -23,7 +23,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b3a0e1d073800bf7bcca6cbb97a6b3c9ec485a4ba3ee0b354da1ed076cfb9f30";
+    sha256 = "7ce4a5eb5c135bcb5c06b5bd1ca6fd7fd39d8631306182307ed8bc30d3033846";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/btrfs/default.nix b/nixpkgs/pkgs/development/python-modules/btrfs/default.nix
new file mode 100644
index 000000000000..225b26b4d650
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/btrfs/default.nix
@@ -0,0 +1,22 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "btrfs";
+  version = "11";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1w92sj47wy53ygz725xr613k32pk5khi0g9lrpp6img871241hrx";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Inspect btrfs filesystems";
+    homepage = "https://github.com/knorrie/python-btrfs";
+    license = licenses.lgpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.evils ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/bugsnag/default.nix b/nixpkgs/pkgs/development/python-modules/bugsnag/default.nix
index 612ab13c1934..adae7ff1c38f 100644
--- a/nixpkgs/pkgs/development/python-modules/bugsnag/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bugsnag/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "bugsnag";
-  version = "3.6.1";
+  version = "3.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8878437aa44ec485cecb255742035b3b98a6c7e7d167a943b5fbe597b2f8f7f9";
+    sha256 = "32966bfe625ec6fc0dbc9d86d79a18f31b22b2fdec3ca070eeb3495304f7e18d";
   };
 
   propagatedBuildInputs = [ six webob ];
diff --git a/nixpkgs/pkgs/development/python-modules/build/default.nix b/nixpkgs/pkgs/development/python-modules/build/default.nix
new file mode 100644
index 000000000000..97a7f9a201bf
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/build/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, flit-core
+, toml
+, pep517
+, packaging
+, isPy3k
+, typing
+, pythonOlder
+, importlib-metadata
+}:
+
+buildPythonPackage rec {
+  pname = "build";
+  version = "0.0.3.1";
+
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "757b5542168326b6f1898a1ce1131bb2cf306ee4c7e54e39c815c5be217ff87d";
+  };
+
+  nativeBuildInputs = [
+    flit-core
+  ];
+
+  propagatedBuildInputs = [
+    toml
+    pep517
+    packaging
+  ] ++ lib.optionals (!isPy3k) [
+    typing
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
+
+  # No tests in archive
+  doCheck = false;
+
+  meta = {
+    description = "A simple, correct PEP517 package builder";
+    license = lib.licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/buildbot/default.nix b/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
index c5a12c997d9d..595f97bcb8fa 100644
--- a/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildbot/default.nix
@@ -25,11 +25,11 @@ let
 
   package = buildPythonPackage rec {
     pname = "buildbot";
-    version = "2.8.2";
+    version = "2.8.4";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0rdrz2zkd6xaf9kb5l41xmbfzq618sz498w23irshih4c802pdv5";
+      sha256 = "0i2sbxhsqyk2yr234il0zsyp1rf2v1l5hmzvw0yrgds6jpr19cqv";
     };
 
     propagatedBuildInputs = [
@@ -73,6 +73,13 @@ let
       # This patch disables the test that tries to read /etc/os-release which
       # is not accessible in sandboxed builds.
       ./skip_test_linux_distro.patch
+
+      # fix compatibility with the latest SQLAlchemy
+      (fetchpatch {
+        url = "https://github.com/buildbot/buildbot/commit/96f3cd1c5f5c82b733baecb133576366ecf544fc.patch";
+        sha256 = "0n1jm13h08j7ksbs8ixayn3wziq5hzyp3kscz9fpgxd8gl885y5n";
+        stripLen = 1;
+      })
     ];
 
     postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix b/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix
index 4bb8613afeab..ff61f9881099 100644
--- a/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildbot/pkg.nix
@@ -6,7 +6,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1yz3k6dg15q4911x8kjy396dccfgrs50mjz278l09p6zmm71llax";
+    sha256 = "1p9qnrqx72y4jrhawgbpwisgily7zg4rh39hpky4x56d5afvjgqc";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix b/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix
index 4c5aa374562a..9a39cc90b69b 100644
--- a/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildbot/plugins.nix
@@ -7,7 +7,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "19qwr0h6qavznx8rfjq6zjccyd2y7x4nc8asldvay3b44xfsr385";
+      sha256 = "1hi44jbnafp7iqncad01hwr087aqmdszvc2if0d9gw6bm159zf4s";
     };
 
     # Remove unneccessary circular dependency on buildbot
@@ -34,7 +34,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1wfhwmb1d32k8isk7k8525pmkfih8hlvy53zsj19l3gvjm0da9gw";
+      sha256 = "1vkh4kdlnm9z5r62b4vxx6qxc90g65gm1m4qxfc6xjk1265i1w6h";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -56,7 +56,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0g62v0maz3b9bmjvvjcin6ayg0f5k0n8m93zk75lagyr69g5vaka";
+      sha256 = "0v94p1m9fb6m6ik5xyi7bs4jrsgvnyf3sl7f4w1qmb24xc47k2gj";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -78,7 +78,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0dlq8pchgccc66gfdlssydacisia5fbwc8b4gd8f9gcbish8jmf7";
+      sha256 = "13bg289al6dmyrin3l6ih3sk7hm660m69kls3kpagg6j6nmpa5wz";
     };
 
     buildInputs = [ buildbot-pkg ];
@@ -100,7 +100,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "193nni55py6yzw730yyp5va2n4313sjf6a7jmi0xs9bivvvzg5w9";
+      sha256 = "11cr7m7m8ah8qqjcqj7qvjjak62cx1sq41cazd4i3r07dyhc3ypn";
     };
 
     buildInputs = [ buildbot-pkg ];
diff --git a/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix b/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix
index 05938e43ad69..f0eaa7e81ae8 100644
--- a/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix
+++ b/nixpkgs/pkgs/development/python-modules/buildbot/worker.nix
@@ -7,7 +7,7 @@ buildPythonPackage (rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0p1w6ailp6xpa6ckl5prj413ilxx5s3lga5mzqxj9nn00vni8ik2";
+    sha256 = "1v1bcc2m4pz90rsh5pjb9m9agkvhqdk1viyf64gi1h85h191vkib";
   };
 
   propagatedBuildInputs = [ twisted future ];
diff --git a/nixpkgs/pkgs/development/python-modules/bumps/default.nix b/nixpkgs/pkgs/development/python-modules/bumps/default.nix
index c22b03f4fa16..af1d2cde1cd4 100644
--- a/nixpkgs/pkgs/development/python-modules/bumps/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/bumps/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "bumps";
-  version = "0.7.14";
+  version = "0.7.16";
 
   propagatedBuildInputs = [six];
 
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0l0ljm7n19522m6mb0jnbcwdyqya15vfj3li3mvfsyv4rkxvy18b";
+    sha256 = "3594452487b8404f1efaace9b70aefaeb345fa44dd74349f7829a61161d2f69a";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/bwapy/default.nix b/nixpkgs/pkgs/development/python-modules/bwapy/default.nix
new file mode 100644
index 000000000000..31884074defd
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/bwapy/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, bwa
+, cffi
+, zlib
+}:
+
+buildPythonPackage rec {
+  pname = "bwapy";
+  version = "0.1.4";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "090qwx3vl729zn3a7sksbviyg04kc71gpbm3nd8dalqp673x1npw";
+  };
+  postPatch = ''
+    # replace bundled bwa
+    rm -r bwa/*
+    cp ${bwa}/lib/*.a ${bwa}/include/*.h bwa/
+
+    substituteInPlace setup.py \
+      --replace 'setuptools>=49.2.0' 'setuptools'
+  '';
+
+  buildInputs = [ zlib bwa ];
+
+  propagatedBuildInputs = [ cffi ];
+
+  # no tests
+  doCheck = false;
+  pythonImportsCheck = [ "bwapy" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/ACEnglish/acebinf";
+    description = "Python bindings to bwa mem aligner";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ ris ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/bytecode/default.nix b/nixpkgs/pkgs/development/python-modules/bytecode/default.nix
new file mode 100644
index 000000000000..24ff14f62552
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/bytecode/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, aenum
+}:
+
+buildPythonPackage rec {
+  pname = "bytecode";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "vstinner";
+    repo = pname;
+    rev = version;
+    sha256 = "097k83zr0z71pha7bafzhs4ink174wk9ls2883bic274rihsnc5r";
+  };
+
+  disabled = pythonOlder "3.5";
+
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.6") [ aenum ];
+
+  meta = with lib; {
+    homepage = "https://github.com/vstinner/bytecode";
+    description = "Python module to generate and modify bytecode";
+    license = licenses.mit;
+    maintainers = with maintainers; [ raboof ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cachelib/default.nix b/nixpkgs/pkgs/development/python-modules/cachelib/default.nix
index 703f3797d1bf..e73bbaa28a69 100644
--- a/nixpkgs/pkgs/development/python-modules/cachelib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cachelib/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "cachelib";
-  version = "0.1";
+  version = "0.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13dfv0a4ahgx0wmpqv8jqhshim4229p9c1c7gcsra81pkm89p24b";
+    sha256 = "47e95a67d68c729cbad63285a790a06f0e0d27d71624c6e44c1ec3456bb4476f";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/cachetools/default.nix b/nixpkgs/pkgs/development/python-modules/cachetools/default.nix
index 30f0d9132bb1..6cc6c45137f5 100644
--- a/nixpkgs/pkgs/development/python-modules/cachetools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cachetools/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "cachetools";
-  version = "4.0.0";
+  version = "4.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9a52dd97a85f257f4e4127f15818e71a0c7899f121b34591fcc1173ea79a0198";
+    sha256 = "bbaa39c3dede00175df2dc2b03d0cf18dd2d32a7de7beb68072d13043c9edb20";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/caldav/default.nix b/nixpkgs/pkgs/development/python-modules/caldav/default.nix
index 7a7a175362ac..57dffe89fc32 100644
--- a/nixpkgs/pkgs/development/python-modules/caldav/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/caldav/default.nix
@@ -1,34 +1,53 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, tzlocal
-, requests
-, vobject
+, fetchFromGitHub
+, pythonOlder
+, icalendar
 , lxml
+, mock
 , nose
+, pytz
+, requests
+, six
+, tzlocal
+, vobject
 }:
 
 buildPythonPackage rec {
   pname = "caldav";
-  version = "0.6.2";
-
-  propagatedBuildInputs = [ tzlocal requests vobject lxml nose ];
+  version = "0.7.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "80c33b143539da3a471148ac89512f67d9df3a5286fae5a023e2ad3923246c0d";
+  src = fetchFromGitHub {
+    owner = "python-caldav";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0m64maiqp3k8fsgkkvdx1dlfhkc70pqig4dclq6w8ajz82czrq83";
   };
 
-  # xandikos is only a optional test dependency, not available for python3
+  nativeBuildInputs = lib.optionals (pythonOlder "3.5") [ mock ];
+  propagatedBuildInputs = [ six requests vobject lxml ]
+    ++ lib.optionals (pythonOlder "3.6") [ pytz tzlocal ];
+
+  checkInputs = [
+    icalendar
+    nose
+    tzlocal
+  ];
+
+  # xandikos and radicale is only a optional test dependency, not available for python3
   postPatch = ''
     substituteInPlace setup.py \
-      --replace ", 'xandikos'" ""
+      --replace ", 'xandikos'" "" \
+      --replace ", 'radicale'" ""
   '';
 
+  pythonImportsCheck = [ "caldav" ];
+
   meta = with lib; {
     description = "This project is a CalDAV (RFC4791) client library for Python.";
     homepage = "https://pythonhosted.org/caldav/";
     license = licenses.asl20;
     maintainers = with maintainers; [ marenz ];
+    #broken = true; # requires radicale which is not packaged yet
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/caldavclientlibrary-asynk/default.nix b/nixpkgs/pkgs/development/python-modules/caldavclientlibrary-asynk/default.nix
deleted file mode 100644
index 2d882967493c..000000000000
--- a/nixpkgs/pkgs/development/python-modules/caldavclientlibrary-asynk/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchgit
-, isPy3k
-}:
-
-buildPythonPackage {
-  version = "asynkdev";
-  pname = "caldavclientlibrary-asynk";
-
-  src = fetchgit {
-    url = "https://github.com/skarra/CalDAVClientLibrary.git";
-    rev = "06699b08190d50cc2636b921a654d67db0a967d1";
-    sha256 = "157q32251ac9x3gdshgrjwsy48nq74vrzviswvph56h9wa8ksnnk";
-  };
-
-  disabled = isPy3k;
-
-  meta = with stdenv.lib; {
-    description = "A Python library and tool for CalDAV";
-
-    longDescription = ''
-      CalDAVCLientLibrary is a Python library and tool for CalDAV.
-
-      This package is the unofficial CalDAVCLientLibrary Python
-      library maintained by the author of Asynk and is needed for
-      that package.
-    '';
-
-    homepage = "https://github.com/skarra/CalDAVClientLibrary/tree/asynkdev/";
-    maintainers = with maintainers; [ pjones ];
-    broken = true; # 2018-04-11
-  };
-
-}
diff --git a/nixpkgs/pkgs/development/python-modules/canmatrix/default.nix b/nixpkgs/pkgs/development/python-modules/canmatrix/default.nix
index b9a61af8b489..6e487b58cff7 100644
--- a/nixpkgs/pkgs/development/python-modules/canmatrix/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/canmatrix/default.nix
@@ -4,6 +4,7 @@
 , pythonOlder
 , attrs
 , bitstruct
+, click
 , future
 , pathlib2
 , typing
@@ -17,20 +18,21 @@
 
 buildPythonPackage rec {
   pname = "canmatrix";
-  version = "0.8";
+  version = "0.9.1";
 
   # uses fetchFromGitHub as PyPi release misses test/ dir
   src = fetchFromGitHub {
     owner = "ebroecker";
     repo = pname;
     rev = version;
-    sha256 = "1wzflapyj2j4xsi7d7gfmznmxbgr658n092xyq9nac46rbhpcphg";
+    sha256 = "129lcchq45h8wqjvvn0rwpbmih4m0igass2cx7a21z94li97hcia";
   };
 
   propagatedBuildInputs = [
     # required
     attrs
     bitstruct
+    click
     future
     pathlib2
     # optional
@@ -41,12 +43,18 @@ buildPythonPackage rec {
     pyyaml
   ] ++ lib.optional (pythonOlder "3.5") typing;
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "version = versioneer.get_version()" "version = \"${version}\""
+  '';
+
   checkInputs = [
     pytest
   ];
 
+  # long_envvar_name_imports requires stable key value pair ordering
   checkPhase = ''
-    pytest -s src/canmatrix
+    pytest -s src/canmatrix -k 'not long_envvar_name_imports'
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/canonicaljson/default.nix b/nixpkgs/pkgs/development/python-modules/canonicaljson/default.nix
index 24cccc3aa770..8edd8d05500b 100644
--- a/nixpkgs/pkgs/development/python-modules/canonicaljson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/canonicaljson/default.nix
@@ -1,14 +1,15 @@
 { stdenv, buildPythonPackage, fetchPypi
-, frozendict, simplejson, six
+, frozendict, simplejson, six, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "canonicaljson";
-  version = "1.1.4";
+  version = "1.3.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "45bce530ff5fd0ca93703f71bfb66de740a894a3b5dd6122398c6d8f18539725";
+    sha256 = "b4763db06a2e8553293c5edaa4bda05605c3307179a7ddfb30273a24ac384b6c";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/canopen/default.nix b/nixpkgs/pkgs/development/python-modules/canopen/default.nix
index 83dd1f006fc6..c064fd62fd93 100644
--- a/nixpkgs/pkgs/development/python-modules/canopen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/canopen/default.nix
@@ -1,33 +1,19 @@
 { lib
 , buildPythonPackage
-, fetchFromGitHub
+, fetchPypi
 , nose
 , can
 , canmatrix }:
 
-buildPythonPackage {
+buildPythonPackage rec {
   pname = "canopen";
-  version = "0.5.1";
+  version = "1.1.0";
 
-  # use fetchFromGitHub until version containing test/sample.eds
-  # is available on PyPi
-  # https://github.com/christiansandberg/canopen/pull/57
-
-  src = fetchFromGitHub {
-    owner = "christiansandberg";
-    repo = "canopen";
-    rev = "b20575d84c3aef790fe7c38c5fc77601bade0ea4";
-    sha256 = "1qg47qrkyvyxiwi13sickrkk89jp9s91sly2y90bz0jhws2bxh64";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0fqa4p3qg7800fykib1x264gizhhmb6dz2hajgwr0hxf5xa19wdl";
   };
 
-  #src = fetchPypi {
-  #  inherit pname version;
-  #  sha256 = "0806cykarpjb9ili3mf82hsd9gdydbks8532nxgz93qzg4zdbv2g";
-  #};
-
-  # test_pdo failure https://github.com/christiansandberg/canopen/issues/58
-  doCheck = false;
-
   propagatedBuildInputs =
     [ can
       canmatrix
diff --git a/nixpkgs/pkgs/development/python-modules/capturer/default.nix b/nixpkgs/pkgs/development/python-modules/capturer/default.nix
index 2dcd075ec0e1..821561c05554 100644
--- a/nixpkgs/pkgs/development/python-modules/capturer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/capturer/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "capturer";
-  version = "2.4";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner = "xolox";
     repo = "python-capturer";
     rev = version;
-    sha256 = "07zy264xd0g7pz9sxjqcpwmrck334xcbb7wfss26lmvgdr5nhcb9";
+    sha256 = "0fwrxa049gzin5dck7fvwhdp1856jrn0d7mcjcjsd7ndqvhgvjj1";
   };
 
   propagatedBuildInputs = [ humanfriendly ];
diff --git a/nixpkgs/pkgs/development/python-modules/cartopy/default.nix b/nixpkgs/pkgs/development/python-modules/cartopy/default.nix
index c01f27608fdf..f41aa6985da9 100644
--- a/nixpkgs/pkgs/development/python-modules/cartopy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cartopy/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "cartopy";
-  version = "0.17.0";
+  version = "0.18.0";
 
   src = fetchPypi {
     inherit version;
     pname = "Cartopy";
-    sha256 = "0q9ckfi37cxj7jwnqnzij62vwcf4krccx576vv5lhvpgvplxjjs2";
+    sha256 = "0d24fk0cbp29gmkysrwq05vry13swmwi3vx3cpcy04c0ixz33ykz";
   };
 
   checkInputs = [ filelock mock pytest_4 pep8 ];
diff --git a/nixpkgs/pkgs/development/python-modules/cassandra-driver/default.nix b/nixpkgs/pkgs/development/python-modules/cassandra-driver/default.nix
index 6fe80e16e129..ecb1edf5958a 100644
--- a/nixpkgs/pkgs/development/python-modules/cassandra-driver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cassandra-driver/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "cassandra-driver";
-  version = "3.20.2";
+  version = "3.24.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03nycyn5nd1pnrg6fffq3wcjqnw13lgja137zq5zszx68mc15wnl";
+    sha256 = "83ec8d9a5827ee44bb1c0601a63696a8a9086beaf0151c8255556299246081bd";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/nixpkgs/pkgs/development/python-modules/catalogue/default.nix b/nixpkgs/pkgs/development/python-modules/catalogue/default.nix
index cfc66376d9b2..1624cbcf36ce 100644
--- a/nixpkgs/pkgs/development/python-modules/catalogue/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/catalogue/default.nix
@@ -1,24 +1,31 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , importlib-metadata
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "catalogue";
-  version = "0.2.1";
+  version = "2.0.1";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1720242b2d0c11e666f9ceed39f0611236815b06af5421f7d8cbca48a4cff3af";
+    sha256 = "0d01077dbfca7aa53f3ef4adecccce636bce4f82e5b52237703ab2f56478e56e";
   };
 
   propagatedBuildInputs = [ importlib-metadata ];
 
+  checkInputs = [ pytestCheckHook ];
+
   meta = with stdenv.lib; {
     description = "Tiny library for adding function or object registries";
     homepage = "https://github.com/explosion/catalogue";
+    changelog = "https://github.com/explosion/catalogue/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ danieldk ];
-    };
+  };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/cbor/default.nix b/nixpkgs/pkgs/development/python-modules/cbor/default.nix
index c6df7358ad7d..3ebf5f26b821 100644
--- a/nixpkgs/pkgs/development/python-modules/cbor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cbor/default.nix
@@ -17,6 +17,6 @@ buildPythonPackage rec {
     homepage = "https://bitbucket.org/bodhisnarkva/cbor";
     description = "Concise Binary Object Representation (CBOR) library";
     license = licenses.asl20;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/cbor2/default.nix b/nixpkgs/pkgs/development/python-modules/cbor2/default.nix
index 3bf660bd098c..4ee4b8ecb60e 100644
--- a/nixpkgs/pkgs/development/python-modules/cbor2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cbor2/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "cbor2";
-  version = "5.1.0";
+  version = "5.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ai1i0wydxfbdakqnrlpgdk4l2ps7gw0r9nihv9p2jgyqbl13kj3";
+    sha256 = "91759bd0ee5ef0d4fa24144dfa551670730baeca8cf2fff1cc59f734ecd21de6";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/celery/default.nix b/nixpkgs/pkgs/development/python-modules/celery/default.nix
index 740023c1fdb9..3fd1b51a4660 100644
--- a/nixpkgs/pkgs/development/python-modules/celery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/celery/default.nix
@@ -1,14 +1,14 @@
 { lib, buildPythonPackage, fetchPypi, libredirect
-, case, pytest, boto3, moto, kombu, billiard, pytz, anyjson, amqp, eventlet
+, case, pytest, boto3, moto, kombu, billiard, pytz, future, vine
 }:
 
 buildPythonPackage rec {
   pname = "celery";
-  version = "4.4.4";
+  version = "4.4.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zk42fxznrhww0dxak9b6nkfqg02z49zr839k6ql7nk3him7n0y2";
+    sha256 = "d220b13a8ed57c78149acf82c006785356071844afe0b27012a4991d44026f9f";
   };
 
   postPatch = ''
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   '';
 
   checkInputs = [ case pytest boto3 moto ];
-  propagatedBuildInputs = [ kombu billiard pytz anyjson amqp eventlet ];
+  propagatedBuildInputs = [ kombu billiard pytz future vine ];
 
   meta = with lib; {
     homepage = "https://github.com/celery/celery/";
diff --git a/nixpkgs/pkgs/development/python-modules/certbot-dns-cloudflare/default.nix b/nixpkgs/pkgs/development/python-modules/certbot-dns-cloudflare/default.nix
new file mode 100644
index 000000000000..6c14f6c472f7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/certbot-dns-cloudflare/default.nix
@@ -0,0 +1,35 @@
+{ buildPythonPackage
+, acme
+, certbot
+, cloudflare
+, isPy3k
+, pytest
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  inherit (certbot) src version;
+
+  pname = "certbot-dns-cloudflare";
+
+  propagatedBuildInputs = [
+    acme
+    certbot
+    cloudflare
+  ];
+
+  checkInputs = [
+    pytest
+    pytestCheckHook
+  ];
+
+  disabled = !isPy3k;
+
+  pytestFlagsArray = [ "-o cache_dir=$(mktemp -d)" ];
+
+  sourceRoot = "source/${pname}";
+
+  meta = certbot.meta // {
+    description = "Cloudflare DNS Authenticator plugin for Certbot";
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/certbot-dns-rfc2136/default.nix b/nixpkgs/pkgs/development/python-modules/certbot-dns-rfc2136/default.nix
new file mode 100644
index 000000000000..19e53aa20cc9
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/certbot-dns-rfc2136/default.nix
@@ -0,0 +1,35 @@
+{ buildPythonPackage
+, acme
+, certbot
+, dnspython
+, isPy3k
+, pytest
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  inherit (certbot) src version;
+
+  pname = "certbot-dns-rfc2136";
+
+  propagatedBuildInputs = [
+    acme
+    certbot
+    dnspython
+  ];
+
+  checkInputs = [
+    pytest
+    pytestCheckHook
+  ];
+
+  disabled = !isPy3k;
+
+  pytestFlagsArray = [ "-o cache_dir=$(mktemp -d)" ];
+
+  sourceRoot = "source/${pname}";
+
+  meta = certbot.meta // {
+    description = "RFC 2136 DNS Authenticator plugin for Certbot";
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/certbot-dns-route53/default.nix b/nixpkgs/pkgs/development/python-modules/certbot-dns-route53/default.nix
new file mode 100644
index 000000000000..6fba51ce92a1
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/certbot-dns-route53/default.nix
@@ -0,0 +1,35 @@
+{ buildPythonPackage
+, acme
+, boto3
+, certbot
+, isPy3k
+, pytest
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  inherit (certbot) src version;
+
+  pname = "certbot-dns-route53";
+
+  propagatedBuildInputs = [
+    acme
+    boto3
+    certbot
+  ];
+
+  checkInputs = [
+    pytest
+    pytestCheckHook
+  ];
+
+  disabled = !isPy3k;
+
+  pytestFlagsArray = [ "-o cache_dir=$(mktemp -d)" ];
+
+  sourceRoot = "source/${pname}";
+
+  meta = certbot.meta // {
+    description = "Route53 DNS Authenticator plugin for Certbot";
+  };
+}
diff --git a/nixpkgs/pkgs/tools/admin/certbot/default.nix b/nixpkgs/pkgs/development/python-modules/certbot/default.nix
index cabf335fb697..07ceea731b9b 100644
--- a/nixpkgs/pkgs/tools/admin/certbot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/certbot/default.nix
@@ -1,25 +1,24 @@
 { lib
-, buildPythonApplication
+, buildPythonPackage
+, python, runCommand
 , fetchFromGitHub
 , ConfigArgParse, acme, configobj, cryptography, distro, josepy, parsedatetime, pyRFC3339, pyopenssl, pytz, requests, six, zope_component, zope_interface
 , dialog, mock, gnureadline
-, pytest_xdist, pytest, dateutil
+, pytest_xdist, pytest, pytestCheckHook, dateutil
 }:
 
-buildPythonApplication rec {
+buildPythonPackage rec {
   pname = "certbot";
-  version = "1.3.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1nzp1l63f64qqp89y1vyd4lgfhykfp5dkr6iwfiyf273y7sjwpsa";
+    sha256 = "1fx29gsa3glwh0ik5k2gynwdz6i3ckq9aakf6ip92n3qyh6l08a8";
   };
 
-  patches = [
-    ./0001-Don-t-use-distutils.StrictVersion-that-cannot-handle.patch
-  ];
+  sourceRoot = "source/${pname}";
 
   propagatedBuildInputs = [
     ConfigArgParse
@@ -40,21 +39,32 @@ buildPythonApplication rec {
 
   buildInputs = [ dialog mock gnureadline ];
 
-  checkInputs = [ pytest_xdist pytest dateutil ];
-
-  preBuild = ''
-    cd certbot
-  '';
+  checkInputs = [
+    dateutil
+    pytest
+    pytestCheckHook
+    pytest_xdist
+  ];
 
-  postInstall = ''
-    for i in $out/bin/*; do
-      wrapProgram "$i" --prefix PYTHONPATH : "$PYTHONPATH" \
-                       --prefix PATH : "${dialog}/bin:$PATH"
-    done
-  '';
+  pytestFlagsArray = [ "-o cache_dir=$(mktemp -d)" ];
 
   doCheck = true;
 
+  makeWrapperArgs = [ "--prefix PATH : ${dialog}/bin" ];
+
+  # certbot.withPlugins has a similar calling convention as python*.withPackages
+  # it gets invoked with a lambda, and invokes that lambda with the python package set matching certbot's:
+  # certbot.withPlugins (cp: [ cp.certbot-dns-foo ])
+  passthru.withPlugins = f: let
+    pythonEnv = python.withPackages f;
+
+  in runCommand "certbot-with-plugins" {
+  } ''
+    mkdir -p $out/bin
+    cd $out/bin
+    ln -s ${pythonEnv}/bin/certbot
+  '';
+
   meta = with lib; {
     homepage = src.meta.homepage;
     description = "ACME client that can obtain certs and extensibly update server configurations";
diff --git a/nixpkgs/pkgs/development/python-modules/certifi/default.nix b/nixpkgs/pkgs/development/python-modules/certifi/default.nix
index 94619956cff4..e5733e2e51a3 100644
--- a/nixpkgs/pkgs/development/python-modules/certifi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/certifi/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "certifi";
-  version = "2020.4.5.1";
+  version = "2020.6.20";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06b5gfs7wmmipln8f3z928d2mmx2j4b3x7pnqmj6cvmyfh8v7z2i";
+    sha256 = "5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3";
   };
 
   pythonImportsCheck = [ "certifi" ];
diff --git a/nixpkgs/pkgs/development/python-modules/certipy/default.nix b/nixpkgs/pkgs/development/python-modules/certipy/default.nix
index 12706ab3d8a4..5d34eede3110 100644
--- a/nixpkgs/pkgs/development/python-modules/certipy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/certipy/default.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ pyopenssl ];
-  
+
   doCheck = false; #no tests were included
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/cffi/default.nix b/nixpkgs/pkgs/development/python-modules/cffi/default.nix
index 85dcd72a9348..c4e14c0e7fba 100644
--- a/nixpkgs/pkgs/development/python-modules/cffi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cffi/default.nix
@@ -2,11 +2,11 @@
 
 if isPyPy then null else buildPythonPackage rec {
   pname = "cffi";
-  version = "1.14.0";
+  version = "1.14.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1dn279gw5ql8i5n3s5v4rnv96rhhjjfn7xq729qbl5bs2954yf1d";
+    sha256 = "ae8f34d50af2c2154035984b8b5fc5d9ed63f32fe615646ab435b05b132ca91b";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/python-modules/cfgv/default.nix b/nixpkgs/pkgs/development/python-modules/cfgv/default.nix
index a58669e58a8b..ab9a97729a1d 100644
--- a/nixpkgs/pkgs/development/python-modules/cfgv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cfgv/default.nix
@@ -1,12 +1,13 @@
-{ lib, buildPythonPackage, fetchPypi, six }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, six }:
 
 buildPythonPackage rec {
   pname = "cfgv";
-  version = "2.0.1";
+  version = "3.2.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0i1iam461bd6bphd402r7payr2m71xivy5zp6k2gjnv67fa8gczd";
+    sha256 = "cf22deb93d4bcf92f345a5c3cd39d3d41d6340adc60c78bbbd6588c384fda6a1";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix b/nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix
index 79482ae5c168..b79bf7613177 100644
--- a/nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cfn-lint/default.nix
@@ -1,45 +1,76 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , pythonOlder
-, pyyaml
-, six
-, requests
 , aws-sam-translator
 , importlib-metadata
 , importlib-resources
 , jsonpatch
 , jsonschema
+, junit-xml
+, networkx
 , pathlib2
+, pyyaml
+, requests
 , setuptools
+, six
+# Test inputs
+, pytestCheckHook
+, mock
+, pydot
 }:
 
 buildPythonPackage rec {
   pname = "cfn-lint";
-  version = "0.26.3";
+  version = "0.35.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "384c37d239579c7b9f61a3aaadb92ebe81f37cd6ee6a161485401179af6c7a44";
+  src = fetchFromGitHub {
+    owner = "aws-cloudformation";
+    repo  = "cfn-python-lint";
+    rev = "v${version}";
+    sha256 = "1ajb0412hw9fg9m4b3xbpfbp8cixmnpjxrkaks6k749xinzsv7qk";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py --replace 'importlib_resources~=1.4;python_version<"3.7" and python_version!="3.4"' 'importlib_resources;python_version<"3.7"'
+  '';
+
   propagatedBuildInputs = [
-    pyyaml
-    six
-    requests
     aws-sam-translator
     jsonpatch
     jsonschema
+    junit-xml
+    networkx
     pathlib2
+    pyyaml
+    requests
     setuptools
+    six
   ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata importlib-resources ];
 
-  # No tests included in archive
-  doCheck = false;
+  pythonImportsCheck = [
+    "cfnlint"
+    "cfnlint.conditions"
+    "cfnlint.core"
+    "cfnlint.decode.node"
+    "cfnlint.decode.cfn_yaml"
+    "cfnlint.decode.cfn_json"
+    "cfnlint.decorators.refactored"
+    "cfnlint.graph"
+    "cfnlint.helpers"
+    "cfnlint.rules"
+    "cfnlint.runner"
+    "cfnlint.template"
+    "cfnlint.transform"
+  ];
+
+  checkInputs = [ pytestCheckHook mock pydot ];
+  preCheck = "export PATH=$out/bin:$PATH";
 
   meta = with lib; {
     description = "Checks cloudformation for practices and behaviour that could potentially be improved";
     homepage = "https://github.com/aws-cloudformation/cfn-python-lint";
+    changelog = "https://github.com/aws-cloudformation/cfn-python-lint/blob/master/CHANGELOG.md";
     license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/cftime/default.nix b/nixpkgs/pkgs/development/python-modules/cftime/default.nix
index 7638695ff2da..1a29e51b35f5 100644
--- a/nixpkgs/pkgs/development/python-modules/cftime/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cftime/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "cftime";
-  version = "1.1.3";
+  version = "1.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1w2iakkzxfhyrqrspn40am8x7bzdp5qqdqbm1asbj7fa3mivi17x";
+    sha256 = "ab5d5076f7d3e699758a244ada7c66da96bae36e22b9e351ce0ececc36f0a57f";
   };
 
   checkInputs = [ pytest coveralls pytestcov ];
@@ -28,4 +28,4 @@ buildPythonPackage rec {
     description = "Time-handling functionality from netcdf4-python";
   };
 
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cgen/default.nix b/nixpkgs/pkgs/development/python-modules/cgen/default.nix
index 30ecb8d1b33b..06beebc2f326 100644
--- a/nixpkgs/pkgs/development/python-modules/cgen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cgen/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "cgen";
-  version = "2019.1";
+  version = "2020.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04gxzfjy2f9qsg3scg1sx4q4rhw5p036dyqngxyfsai0wvj5ya6m";
+    sha256 = "4ec99d0c832d9f95f5e51dd18a629ad50df0b5464ce557ef42c6e0cd9478bfcf";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/chalice/default.nix b/nixpkgs/pkgs/development/python-modules/chalice/default.nix
index 1cf489d7fa5c..fb2af329ea79 100644
--- a/nixpkgs/pkgs/development/python-modules/chalice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/chalice/default.nix
@@ -1,29 +1,32 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , attrs
 , botocore
 , click
 , enum-compat
+, hypothesis
 , jmespath
+, mock
+, mypy-extensions
 , pip
+, pytest
+, pyyaml
 , setuptools
 , six
 , typing
-, wheel
 , watchdog
-, pytest
-, hypothesis
-, mock
+, wheel
 }:
 
 buildPythonPackage rec {
   pname = "chalice";
-  version = "1.13.1";
+  version = "1.18.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c898c8726ed008615f0b1988b9cd1e1f74fd230e7b24bca53bfd5f96af6e55a1";
+    sha256 = "0zb4xk9b553pnfzh8s909cixfdplqnc3nda0fjwjrryi2nxjxd6a";
   };
 
   checkInputs = [ watchdog pytest hypothesis mock ];
@@ -33,10 +36,13 @@ buildPythonPackage rec {
     click
     enum-compat
     jmespath
+    mypy-extensions
     pip
+    pyyaml
     setuptools
     six
     wheel
+  ] ++ lib.optionals (pythonOlder "3.5") [
     typing
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/chameleon/default.nix b/nixpkgs/pkgs/development/python-modules/chameleon/default.nix
index c2a3db6820d6..d522764c7991 100644
--- a/nixpkgs/pkgs/development/python-modules/chameleon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/chameleon/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "Chameleon";
-  version = "3.6.2";
+  version = "3.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0aw6cqnychmsxjjgihwr7df92xw6ac1wr4x70mvq28z3iq35x7ls";
+    sha256 = "adf9609a2fa4ad20deb390605495f9a5d617b737bfbd86e51a49bbac2acaf316";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/channels-redis/default.nix b/nixpkgs/pkgs/development/python-modules/channels-redis/default.nix
index b8a95387571a..fb0774478a00 100644
--- a/nixpkgs/pkgs/development/python-modules/channels-redis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/channels-redis/default.nix
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   #   pytest
   #   pytest-asyncio
   # ];
-  # 
+  #
   # # Fails with : ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 6379)
   # # (even with a local redis instance running)
   # checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/chart-studio/default.nix b/nixpkgs/pkgs/development/python-modules/chart-studio/default.nix
index 0eed42dc286e..6679f13b1196 100644
--- a/nixpkgs/pkgs/development/python-modules/chart-studio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/chart-studio/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "chart-studio";
-  version = "1.0.0";
+  version = "1.1.0";
 
   # chart-studio was split from plotly
   src = fetchFromGitHub {
     owner = "plotly";
     repo = "plotly.py";
     rev = "${pname}-v${version}";
-    sha256 = "14lyqbjdffnlnkzlfnn60k7yxjd99vx3hfcs23apsiyinzipjlbf";
+    sha256 = "1q3j3ih5k0jhr8ilwffkfxp1nifpnjnx7862bzhxfg4d386hfg4i";
   };
 
   sourceRoot = "source/packages/python/chart-studio";
diff --git a/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix b/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix
index 3de542a8bb0c..5a3296d71c83 100644
--- a/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/check-manifest/default.nix
@@ -1,17 +1,22 @@
-{ stdenv, buildPythonPackage, fetchPypi, toml }:
+{ stdenv, buildPythonPackage, fetchPypi, pep517, toml, mock, breezy, git }:
 
 buildPythonPackage rec {
   pname = "check-manifest";
-  version = "0.40";
+  version = "0.42";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "42de6eaab4ed149e60c9b367ada54f01a3b1e4d6846784f9b9710e770ff5572c";
+    sha256 = "0d8e1b0944a667dd4a75274f6763e558f0d268fde2c725e894dfd152aae23300";
   };
 
-  propagatedBuildInputs = [ toml ];
+  # Test requires filesystem access
+  postPatch = ''
+    substituteInPlace tests.py --replace "test_build_sdist" "no_test_build_sdist"
+  '';
 
-  doCheck = false;
+  propagatedBuildInputs = [ pep517 toml ];
+
+  checkInputs = [ mock breezy git ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/mgedmin/check-manifest";
diff --git a/nixpkgs/pkgs/development/python-modules/cheetah3/default.nix b/nixpkgs/pkgs/development/python-modules/cheetah3/default.nix
new file mode 100644
index 000000000000..1c133917cb20
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cheetah3/default.nix
@@ -0,0 +1,20 @@
+{ lib, buildPythonPackage, fetchPypi, stdenv }:
+
+buildPythonPackage rec {
+  pname = "Cheetah3";
+  version = "3.2.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ececc9ca7c58b9a86ce71eb95594c4619949e2a058d2a1af74c7ae8222515eb1";
+  };
+
+  doCheck = false; # Circular dependency
+
+  meta = {
+    homepage = "http://www.cheetahtemplate.org/";
+    description = "A template engine and code generation tool";
+    license = lib.licenses.mit;
+    maintainers = with stdenv.lib.maintainers; [ pjjw ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cheroot/default.nix b/nixpkgs/pkgs/development/python-modules/cheroot/default.nix
index 54c502b815cb..5795b55d91b7 100644
--- a/nixpkgs/pkgs/development/python-modules/cheroot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cheroot/default.nix
@@ -1,39 +1,72 @@
-{ stdenv, fetchPypi, buildPythonPackage, pythonAtLeast, isPy3k
-, more-itertools, six, setuptools_scm, setuptools-scm-git-archive
-, pytest, pytestcov, portend, pytest-testmon, pytest-mock
-, backports_unittest-mock, pyopenssl, requests, trustme, requests-unixsocket
-, backports_functools_lru_cache }:
-
-let inherit (stdenv) lib; in
+{ lib, stdenv, fetchPypi, buildPythonPackage, isPy3k
+, jaraco_text
+, more-itertools
+, portend
+, pyopenssl
+, pytestCheckHook
+, pytestcov
+, pytest-mock
+, pytest-testmon
+, requests
+, requests-toolbelt
+, requests-unixsocket
+, setuptools_scm
+, setuptools-scm-git-archive
+, six
+, trustme
+}:
 
 buildPythonPackage rec {
   pname = "cheroot";
-  version = "8.2.1";
+  version = "8.4.5";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5b525b3e4a755adf78070ab54c1821fb860d4255a9317dba2b88eb2df2441cff";
+    sha256 = "b6c18caf5f79cdae668c35fc8309fc88ea4a964cce9e2ca8504fab13bcf57301";
   };
 
   nativeBuildInputs = [ setuptools_scm setuptools-scm-git-archive ];
 
-  propagatedBuildInputs = [ more-itertools six backports_functools_lru_cache ];
+  propagatedBuildInputs = [ more-itertools six ];
+
+  checkInputs = [
+    jaraco_text
+    portend
+    pyopenssl
+    pytestCheckHook
+    pytestcov
+    pytest-mock
+    pytest-testmon
+    requests
+    requests-toolbelt
+    requests-unixsocket
+    trustme
+  ];
 
-  checkInputs = [ pytest pytestcov portend backports_unittest-mock pytest-mock pytest-testmon pyopenssl requests trustme requests-unixsocket ];
+  # avoid attempting to use 3 packages not available on nixpkgs
+  # (jaraco.apt, jaraco.context, yg.lockfile)
+  pytestFlagsArray = [ "--ignore=cheroot/test/test_wsgi.py" ];
 
   # Disable doctest plugin because times out
   # Disable xdist (-n arg) because it's incompatible with testmon
   # Deselect test_bind_addr_unix on darwin because times out
   # Deselect test_http_over_https_error on darwin because builtin cert fails
   # Disable warnings-as-errors because of deprecation warnings from socks on python 3.7
-  checkPhase = ''
-    substituteInPlace pytest.ini --replace "--doctest-modules" "" --replace "-n auto" ""
-    ${lib.optionalString (pythonAtLeast "3.7") "sed -i '/warnings/,+2d' pytest.ini"}
-    pytest -k 'not tls' ${lib.optionalString stdenv.isDarwin "--deselect=cheroot/test/test_ssl.py::test_http_over_https_error --deselect=cheroot/test/test_server.py::test_bind_addr_unix"}
+  # adds many other pytest utilities which aren't necessary like linting
+  preCheck = ''
+    rm pytest.ini
   '';
 
+  disabledTests= [
+    "tls" # touches network
+    "peercreds_unix_sock" # test urls no longer allowed
+  ] ++ lib.optionals stdenv.isDarwin [
+    "http_over_https_error"
+    "bind_addr_unix"
+  ];
+
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
 
diff --git a/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix b/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix
index 778f57e0f9b0..f23d06001922 100644
--- a/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cherrypy/default.nix
@@ -1,36 +1,27 @@
 { stdenv, buildPythonPackage, fetchPypi, isPy3k
 , setuptools_scm
 , cheroot, portend, more-itertools, zc_lockfile, routes
+, jaraco_collections
 , objgraph, pytest, pytestcov, pathpy, requests_toolbelt, pytest-services
 , fetchpatch
 }:
 
 buildPythonPackage rec {
   pname = "cherrypy";
-  version = "18.3.0";
+  version = "18.6.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     pname = "CherryPy";
     inherit version;
-    sha256 = "0q6cs4vrv0rwim4byxfizrlp4h6hmwg3n4baz0ga66vvgiz6hgk8";
+    sha256 = "16f410izp2c4qhn4n3l5l3qirmkf43h2amjqms8hkl0shgfqwq2n";
   };
 
-  # Remove patches once 88d2163 and 713f672
-  # become part of a release - they're currently only present in master.
-  # ref: https://github.com/cherrypy/cherrypy/pull/1820
-  patches = [
-    (fetchpatch {
-      name = "test_HTTP11_Timeout.patch";
-      url = "https://github.com/cherrypy/cherrypy/commit/88d21630f68090c56d07000cabb6df4f1b612a71.patch";
-      sha256 = "1i6a3qs3ijyd9rgsxb8axigkzdlmr5sl3ljif9rvn0d90211bzwh";
-    })
-  ];
-
   propagatedBuildInputs = [
     # required
     cheroot portend more-itertools zc_lockfile
+    jaraco_collections
     # optional
     routes
   ];
@@ -41,10 +32,13 @@ buildPythonPackage rec {
     objgraph pytest pytestcov pathpy requests_toolbelt pytest-services
   ];
 
+  # Keyboard interrupt ends test suite run
+  # daemonize and autoreload tests have issue with sockets within sandbox
   # Disable doctest plugin because times out
   checkPhase = ''
     substituteInPlace pytest.ini --replace "--doctest-modules" ""
     pytest \
+      -k 'not KeyboardInterrupt and not daemonize and not Autoreload' \
       --deselect=cherrypy/test/test_static.py::StaticTest::test_null_bytes \
       --deselect=cherrypy/test/test_tools.py::ToolTests::testCombinedTools \
       ${stdenv.lib.optionalString stdenv.isDarwin
diff --git a/nixpkgs/pkgs/development/python-modules/ci-info/default.nix b/nixpkgs/pkgs/development/python-modules/ci-info/default.nix
new file mode 100644
index 000000000000..d27f7cf0a82a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ci-info/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, isPy27, fetchPypi, pytest, pytestCheckHook }:
+
+buildPythonPackage rec {
+  version = "0.2.0";
+  pname = "ci-info";
+
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "05j6pamk8sd51qmvpkl3f7sxajmncrqm0cz6n6bqgsvzjwn66w6x";
+  };
+
+  checkInputs = [ pytest pytestCheckHook ];
+
+  doCheck = false;  # both tests access network
+
+  pythonImportsCheck = [ "ci_info" ];
+
+  meta = with lib; {
+    description = "Gather continuous integration information on the fly";
+    homepage = "https://github.com/mgxd/ci-info";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ci-py/default.nix b/nixpkgs/pkgs/development/python-modules/ci-py/default.nix
new file mode 100644
index 000000000000..30220b48b72d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ci-py/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, pytest, pytestrunner, pytestCheckHook }:
+
+buildPythonPackage rec {
+  version = "1.0.0";
+  pname = "ci-py";
+
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "12ax07n81vxbyayhwzi1q6x7gfmwmvrvwm1n4ii6qa6fqlp9pzj7";
+  };
+
+  nativeBuildInputs = [ pytestrunner ];  # pytest-runner included in setup-requires
+  checkInputs = [ pytest pytestCheckHook ];
+
+  pythonImportsCheck = [ "ci" ];
+
+  meta = with lib; {
+    description = "Library for working with Continuous Integration services";
+    homepage = "https://github.com/grantmcconnaughey/ci.py";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cirq/default.nix b/nixpkgs/pkgs/development/python-modules/cirq/default.nix
index 98fc3b9ff058..21f9c5446c39 100644
--- a/nixpkgs/pkgs/development/python-modules/cirq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cirq/default.nix
@@ -10,7 +10,7 @@
 , networkx
 , numpy
 , pandas
-, pythonProtobuf  # pythonPackages.protobuf
+, protobuf
 , requests
 , scipy
 , sortedcontainers
@@ -28,15 +28,15 @@
 
 buildPythonPackage rec {
   pname = "cirq";
-  version = "0.8.0";
+  version = "0.8.2";
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "quantumlib";
     repo = "cirq";
     rev = "v${version}";
-    sha256 = "01nnv7r595sp60wvp7750lfdjwdsi4q0r4lmaj6li09zsdw0r4b3";
+    sha256 = "0xs46s19idh8smf80zhgraxwh3lphcdbljdrhxwhi5xcc41dfsmf";
   };
 
   patches = [
@@ -48,12 +48,13 @@ buildPythonPackage rec {
     })
   ];
 
-  # Cirq locks protobuf==3.8.0, but tested working with default pythonPackages.protobuf (3.7). This avoids overrides/pythonPackages.protobuf conflicts
   postPatch = ''
     substituteInPlace requirements.txt \
+      --replace "freezegun~=0.3.15" "freezegun" \
+      --replace "matplotlib~=3.0" "matplotlib" \
       --replace "networkx~=2.4" "networkx" \
-      --replace "protobuf==3.8.0" "protobuf" \
-      --replace "freezegun~=0.3.15" "freezegun"
+      --replace "numpy~=1.16, < 1.19" "numpy" \
+      --replace "protobuf~=3.12.0" "protobuf"
   '';
 
   propagatedBuildInputs = [
@@ -63,7 +64,7 @@ buildPythonPackage rec {
     matplotlib
     networkx
     pandas
-    pythonProtobuf
+    protobuf
     requests
     scipy
     sortedcontainers
@@ -72,7 +73,7 @@ buildPythonPackage rec {
   ];
 
   doCheck = true;
-  # pythonImportsCheck = [ "cirq" "cirq.Ciruit" ];  # cirq's importlib hook doesn't work here
+  # pythonImportsCheck = [ "cirq" "cirq.Circuit" ];  # cirq's importlib hook doesn't work here
   dontUseSetuptoolsCheck = true;
   checkInputs = [
     pytestCheckHook
@@ -86,16 +87,10 @@ buildPythonPackage rec {
 
   pytestFlagsArray = [
     "--ignore=dev_tools"  # Only needed when developing new code, which is out-of-scope
+    "--benchmark-disable" # Don't need to run benchmarks when packaging.
   ];
   disabledTests = [
-    "test_serialize_sympy_constants"  # fails due to small error in pi (~10e-7)
-    "test_convert_to_ion_gates" # fails due to rounding error, 0.75 != 0.750...2
-
-    # Newly disabled tests on cirq 0.8
-    # TODO: test & figure out why failing
-    "engine_job_test"
-    "test_health"
-    "test_run_delegation"
+    "test_convert_to_ion_gates" # fails on some systems due to rounding error, 0.75 != 0.750...2
   ] ++ lib.optionals stdenv.isAarch64 [
     # Seem to fail due to math issues on aarch64?
     "expectation_from_wavefunction"
@@ -105,6 +100,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A framework for creating, editing, and invoking Noisy Intermediate Scale Quantum (NISQ) circuits.";
     homepage = "https://github.com/quantumlib/cirq";
+    changelog = "https://github.com/quantumlib/Cirq/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix b/nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix
index 01e2955d08ac..7f5311f45b00 100644
--- a/nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ckcc-protocol/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "ckcc-protocol";
-  version = "1.0.1";
+  version = "1.0.2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13ihbhjgxyn1xvrbppjvnqm199q5fdwrljs0wm16iwyl56kf3wh3";
+    sha256 = "0zpn3miyapskw6s71v614pmga5zfain9j085axm9v50b8r71xh1i";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cleo/default.nix b/nixpkgs/pkgs/development/python-modules/cleo/default.nix
index 2809fb33e92b..3e46b900dc7c 100644
--- a/nixpkgs/pkgs/development/python-modules/cleo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cleo/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "cleo";
-  version = "0.7.6";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "99cf342406f3499cec43270fcfaf93c126c5164092eca201dfef0f623360b409";
+    sha256 = "3d0e22d30117851b45970b6c14aca4ab0b18b1b53c8af57bed13208147e4069f";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cli-helpers/default.nix b/nixpkgs/pkgs/development/python-modules/cli-helpers/default.nix
index ba7ca3d5b209..1dc04d707882 100644
--- a/nixpkgs/pkgs/development/python-modules/cli-helpers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cli-helpers/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "cli_helpers";
-  version = "1.2.1";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0rd194l06aw4612j09b44pgh8b8l4cwmz7xgwsgdj9v8m3m25nwq";
+    sha256 = "dd6f164310f7d86fa3da1f82043a9c784e44a02ad49be932a80624261e56979b";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/click-datetime/default.nix b/nixpkgs/pkgs/development/python-modules/click-datetime/default.nix
new file mode 100644
index 000000000000..ba710d74355d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/click-datetime/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildPythonPackage, fetchFromGitHub
+, click }:
+
+buildPythonPackage rec {
+  pname = "click-datetime";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "click-contrib";
+    repo = pname;
+    rev = version;
+    sha256 = "1yxagk4wd2h77nxml19bn2y26fv2xw2n9g981ls8mjy0g51ms3gh";
+  };
+
+  propagatedBuildInputs = [ click ];
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "click_datetime" ];
+
+  meta = with lib; {
+    description = "Datetime type support for click.";
+    homepage = "https://github.com/click-contrib/click-datetime";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cliff/default.nix b/nixpkgs/pkgs/development/python-modules/cliff/default.nix
index 00da74929a40..220ff790e7cc 100644
--- a/nixpkgs/pkgs/development/python-modules/cliff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cliff/default.nix
@@ -17,11 +17,11 @@
 
 buildPythonPackage rec {
   pname = "cliff";
-  version = "3.1.0";
+  version = "3.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0j9q6725226hdhdyy9b0qfjngdj35d3y7fxbmfxpr36ksbh0x6sj";
+    sha256 = "49be854582ec4a74240cb72f287846f823cd8cbd2e25f924541d12f27104bda3";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/clifford/default.nix b/nixpkgs/pkgs/development/python-modules/clifford/default.nix
index 71b9c4899aba..99a2126ee986 100644
--- a/nixpkgs/pkgs/development/python-modules/clifford/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clifford/default.nix
@@ -3,6 +3,7 @@
 , fetchPypi
 , numpy
 , scipy
+, sparse
 , numba
 , future
 , h5py
@@ -12,17 +13,18 @@
 
 buildPythonPackage rec {
   pname = "clifford";
-  version = "1.2.0";
+  version = "1.3.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b27fdec70574ac928c91fe333a70ece153d75cd0499cce09acea5980ae349bee";
+    sha256 = "ade11b20d0631dfc9c2f18ce0149f1e61e4baf114108b27cfd68e5c1619ecc0c";
   };
 
   propagatedBuildInputs = [
     numpy
     scipy
+    sparse
     numba
     future
     h5py
diff --git a/nixpkgs/pkgs/development/python-modules/clikit/default.nix b/nixpkgs/pkgs/development/python-modules/clikit/default.nix
index 98533f95f922..7b07b0945919 100644
--- a/nixpkgs/pkgs/development/python-modules/clikit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/clikit/default.nix
@@ -1,19 +1,21 @@
 { lib, buildPythonPackage, fetchPypi
-, isPy27
-, pylev, pastel, typing, enum34 }:
+, isPy27, pythonAtLeast
+, pylev, pastel, typing, enum34, crashtest }:
 
 buildPythonPackage rec {
   pname = "clikit";
-  version = "0.4.3";
+  version = "0.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0glppxx0pyppjcigzs8h16srlbxb6nci0282xfy3ayvwbq8pwbbf";
+    sha256 = "0ngdkmb73gkp5y00q7r9k1cdlfn0wyzws2wrqlshc4hlkbdyabj4";
   };
 
   propagatedBuildInputs = [
     pylev pastel
-  ] ++ lib.optionals isPy27 [ typing enum34 ];
+  ]
+    ++ lib.optionals (pythonAtLeast "3.6") [ crashtest ]
+    ++ lib.optionals isPy27 [ typing enum34 ];
 
   # The Pypi tarball doesn't include tests, and the GitHub source isn't
   # buildable until we bootstrap poetry, see
diff --git a/nixpkgs/pkgs/development/python-modules/clldutils/default.nix b/nixpkgs/pkgs/development/python-modules/clldutils/default.nix
new file mode 100644
index 000000000000..69813e6a2eb7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/clldutils/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, attrs
+, colorlog
+, csvw
+, dateutil
+, tabulate
+, mock
+, postgresql
+, pytestCheckHook
+, pytest-mock
+}:
+
+buildPythonPackage rec {
+  pname = "clldutils";
+  version = "3.5.2";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "clld";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0qlqp9yq4lbi9ik2psgw0svxlb7raadqaxdh2dgkn85d7h20y4nd";
+  };
+
+  patchPhase = ''
+    substituteInPlace setup.cfg --replace "--cov" ""
+  '';
+
+  propagatedBuildInputs = [
+    dateutil
+    tabulate
+    colorlog
+    attrs
+    csvw
+  ];
+
+  checkInputs = [
+    mock
+    postgresql
+    pytestCheckHook
+    pytest-mock
+  ];
+
+  meta = with lib; {
+    description = "CSV on the Web";
+    homepage = "https://github.com/cldf/csvw";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cloudflare/default.nix b/nixpkgs/pkgs/development/python-modules/cloudflare/default.nix
index 802235d674b9..7692bd1c9d6c 100644
--- a/nixpkgs/pkgs/development/python-modules/cloudflare/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cloudflare/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, beautifulsoup4
 , requests
 , future
 , pyyaml
@@ -9,14 +10,15 @@
 
 buildPythonPackage rec {
   pname = "cloudflare";
-  version = "2.7.1";
+  version = "2.8.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0w8ihj9gram2d4wkbki8f6gr8hsd950b3wzfi1qqqm17lqfk8k7h";
+    sha256 = "a662990737d86984156a48f769e6528d947e90fd1561bb5e19d0036b59b9fd6f";
   };
 
   propagatedBuildInputs = [
+    beautifulsoup4
     requests
     future
     pyyaml
diff --git a/nixpkgs/pkgs/development/python-modules/cloudpickle/default.nix b/nixpkgs/pkgs/development/python-modules/cloudpickle/default.nix
index 279571c157c9..092a0f7c0b11 100644
--- a/nixpkgs/pkgs/development/python-modules/cloudpickle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cloudpickle/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, mock }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy27, pytest, mock }:
 
 buildPythonPackage rec {
   pname = "cloudpickle";
-  version = "1.2.2";
+  version = "1.5.0";
+  disabled = isPy27; # abandoned upstream
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "922401d7140e133253ff5fab4faa4a1166416066453a783b00b507dca93f8859";
+    sha256 = "820c9245cebdec7257211cbe88745101d5d6a042bca11336d78ebd4897ddbc82";
   };
 
   buildInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/cmd2/default.nix b/nixpkgs/pkgs/development/python-modules/cmd2/default.nix
index 9d58c130582e..f6055ae01449 100644
--- a/nixpkgs/pkgs/development/python-modules/cmd2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cmd2/default.nix
@@ -6,11 +6,11 @@
 }:
 buildPythonPackage rec {
   pname = "cmd2";
-  version = "1.0.2";
+  version = "1.3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1f18plbc9yyvhn0js3d2bii9yld8zfl775gxsaw9jza5pmlg9ss2";
+    sha256 = "b6f6254def8ba479088702f97bca1b999c12e0c38ac5d82dc50a44db93c7108c";
   };
 
   LC_ALL="en_US.UTF-8";
diff --git a/nixpkgs/pkgs/development/python-modules/cnvkit/default.nix b/nixpkgs/pkgs/development/python-modules/cnvkit/default.nix
index f4f46f2dff0f..6677ab06334f 100644
--- a/nixpkgs/pkgs/development/python-modules/cnvkit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cnvkit/default.nix
@@ -6,6 +6,7 @@
 , biopython
 , numpy
 , scipy
+, scikitlearn
 , pandas
 , matplotlib
 , reportlab
@@ -29,6 +30,7 @@ buildPythonPackage rec {
     biopython
     numpy
     scipy
+    scikitlearn
     pandas
     matplotlib
     reportlab
@@ -44,6 +46,8 @@ buildPythonPackage rec {
       --replace "pandas >= 0.20.1, < 0.25.0" "pandas"
   '';
 
+  pythonImportsCheck = [ "cnvlib" ];
+
   meta = with lib; {
     homepage = "https://cnvkit.readthedocs.io";
     description = "A Python library and command-line software toolkit to infer and visualize copy number from high-throughput DNA sequencing data";
diff --git a/nixpkgs/pkgs/development/python-modules/codecov/default.nix b/nixpkgs/pkgs/development/python-modules/codecov/default.nix
index e994c6663cde..8424a560d260 100644
--- a/nixpkgs/pkgs/development/python-modules/codecov/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/codecov/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "codecov";
-  version = "2.0.22";
+  version = "2.1.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "aeeefa3a03cac8a78e4f988e935b51a4689bb1f17f20d4e827807ee11135f845";
+    sha256 = "355fc7e0c0b8a133045f0d6089bde351c845e7b52b99fec5903b4ea3ab5f6aab";
   };
 
   checkInputs = [ unittest2 ]; # Tests only
diff --git a/nixpkgs/pkgs/development/python-modules/colander/default.nix b/nixpkgs/pkgs/development/python-modules/colander/default.nix
index 944a7818452c..0492e2717465 100644
--- a/nixpkgs/pkgs/development/python-modules/colander/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/colander/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "colander";
-  version = "1.7.0";
+  version = "1.8.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d758163a22d22c39b9eaae049749a5cd503f341231a02ed95af480b1145e81f2";
+    sha256 = "54878d2ffd1afb020daca6cd5c6cfe6c0e44d0069fc825d57fe59aa6e4f6a499";
   };
 
   propagatedBuildInputs = [ translationstring iso8601 enum34 ];
diff --git a/nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix b/nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix
index 219e48ad6645..c2a329e08f34 100644
--- a/nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coloredlogs/default.nix
@@ -1,23 +1,25 @@
-{ lib, buildPythonPackage, fetchFromGitHub, stdenv, isPy3k, fetchpatch, humanfriendly, verboselogs, capturer, pytest, mock, utillinux }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, humanfriendly
+, verboselogs
+, capturer
+, pytest
+, mock
+, utillinux
+}:
 
 buildPythonPackage rec {
   pname = "coloredlogs";
-  version = "10.0";
+  version = "14.0";
 
   src = fetchFromGitHub {
     owner = "xolox";
     repo = "python-coloredlogs";
     rev = version;
-    sha256 = "0rdvp4dfvzhx7z7s2jdl3fv7x1hazgpy5gc7bcf05bnbv2iia54a";
+    sha256 = "0rnmxwrim4razlv4vi3krxk5lc5ksck6h5374j8avqwplika7q2x";
   };
 
-  # patch by risicle
-  patches = lib.optional (stdenv.isDarwin && isPy3k) (fetchpatch {
-    name = "darwin-py3-capture-fix.patch";
-    url = "https://github.com/xolox/python-coloredlogs/pull/74.patch";
-    sha256 = "0pk7k94iz0gdripw623vzdl4hd83vwhsfzshl8pbvh1n6swi0xx9";
-  });
-
   checkPhase = ''
     PATH=$PATH:$out/bin pytest . -k "not test_plain_text_output_format \
                                      and not test_auto_install"
diff --git a/nixpkgs/pkgs/development/python-modules/colorful/default.nix b/nixpkgs/pkgs/development/python-modules/colorful/default.nix
new file mode 100644
index 000000000000..c9378e329a32
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/colorful/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "colorful";
+  version = "0.5.4";
+
+  # No tests in the Pypi package.
+  src = fetchFromGitHub {
+    owner = "timofurrer";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1fcz5v8b318a3dsdha4c874jsf3wmcw3f25bv2csixclyzacli98";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Terminal string styling done right, in Python.";
+    homepage = "http://github.com/timofurrer/colorful";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/colorlog/default.nix b/nixpkgs/pkgs/development/python-modules/colorlog/default.nix
index aa39588f313e..a7a04c1f605d 100644
--- a/nixpkgs/pkgs/development/python-modules/colorlog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/colorlog/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "colorlog";
-  version = "4.1.0";
+  version = "4.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1lpk8zmfv8vz090h5d0hzb4n39wgasxdd3x3bpn3v1x1n9dfzaih";
+    sha256 = "066i7904vc7814gqnlprksf0ikz2dmviw93r2mr7sf53qci5irbm";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/configparser/4.nix b/nixpkgs/pkgs/development/python-modules/configparser/4.nix
new file mode 100644
index 000000000000..9c6c631d9c27
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/configparser/4.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildPythonPackage, fetchPypi, setuptools_scm }:
+
+buildPythonPackage rec {
+  pname = "configparser";
+  version = "4.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "c7d282687a5308319bf3d2e7706e575c635b0a470342641c93bea0ea3b5331df";
+  };
+
+  # No tests available
+  doCheck = false;
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  preConfigure = ''
+    export LC_ALL=${if stdenv.isDarwin then "en_US" else "C"}.UTF-8
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Updated configparser from Python 3.7 for Python 2.6+.";
+    license = licenses.mit;
+    homepage = "https://github.com/jaraco/configparser";
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/configparser/default.nix b/nixpkgs/pkgs/development/python-modules/configparser/default.nix
index 9c6c631d9c27..7322a6891cd8 100644
--- a/nixpkgs/pkgs/development/python-modules/configparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/configparser/default.nix
@@ -1,18 +1,20 @@
-{ stdenv, buildPythonPackage, fetchPypi, setuptools_scm }:
+{ stdenv, buildPythonPackage, fetchPypi, setuptools_scm
+, toml
+}:
 
 buildPythonPackage rec {
   pname = "configparser";
-  version = "4.0.2";
+  version = "5.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c7d282687a5308319bf3d2e7706e575c635b0a470342641c93bea0ea3b5331df";
+    sha256 = "2ca44140ee259b5e3d8aaf47c79c36a7ab0d5e94d70bd4105c03ede7a20ea5a1";
   };
 
   # No tests available
   doCheck = false;
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools_scm toml ];
 
   preConfigure = ''
     export LC_ALL=${if stdenv.isDarwin then "en_US" else "C"}.UTF-8
diff --git a/nixpkgs/pkgs/development/python-modules/confluent-kafka/default.nix b/nixpkgs/pkgs/development/python-modules/confluent-kafka/default.nix
index 029171fea2f6..8048d6f78a27 100644
--- a/nixpkgs/pkgs/development/python-modules/confluent-kafka/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/confluent-kafka/default.nix
@@ -1,12 +1,12 @@
 { stdenv, buildPythonPackage, fetchPypi, isPy3k, rdkafka, requests, avro3k, avro, futures, enum34 }:
 
 buildPythonPackage rec {
-  version = "1.3.0";
+  version = "1.5.0";
   pname = "confluent-kafka";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4025ccddbc79443a4e2342de0d770f669558eb737fca2e7851558cd45f78ef78";
+    sha256 = "9ac812006000887f76c95b8a33a9f0b65845bf072fbc54a42a1acffd34e41120";
   };
 
   buildInputs = [ rdkafka requests ] ++ (if isPy3k then [ avro3k ] else [ enum34 avro futures ]) ;
diff --git a/nixpkgs/pkgs/development/python-modules/construct/default.nix b/nixpkgs/pkgs/development/python-modules/construct/default.nix
index 59b3eb38afd0..cf9ab42f3259 100644
--- a/nixpkgs/pkgs/development/python-modules/construct/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/construct/default.nix
@@ -1,27 +1,26 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
-, six, pytest, arrow
+{ stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
+, six, pytestCheckHook, pytest-benchmark, numpy, arrow, ruamel_yaml
 }:
 
 buildPythonPackage rec {
   pname   = "construct";
-  version = "2.9.45";
+  version = "2.10.56";
 
+  disabled = pythonOlder "3.6";
+
+  # no tests in PyPI tarball
   src = fetchFromGitHub {
     owner  = pname;
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "0ig66xrzswpkhhmw123p2nvr15a9lxz54a1fmycfdh09327c1d3y";
+    sha256 = "1j4mqwyxkbdcsnnk5bbdcljv855w4fglaqc94q1xdzm8kgjxk4mr";
   };
 
-  propagatedBuildInputs = [ six ];
+  checkInputs = [ pytestCheckHook pytest-benchmark numpy arrow ruamel_yaml ];
 
-  checkInputs = [ pytest arrow ];
+  disabledTests = stdenv.lib.optionals stdenv.isDarwin [ "test_multiprocessing" ];
 
-  # TODO: figure out missing dependencies
-  doCheck = false;
-  checkPhase = ''
-    py.test -k 'not test_numpy and not test_gallery' tests
-  '';
+  pytestFlagsArray = [ "--benchmark-disable" ];
 
   meta = with stdenv.lib; {
     description = "Powerful declarative parser (and builder) for binary data";
diff --git a/nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix b/nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix
index 873cbe142d9b..23bc8bcec524 100644
--- a/nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cookiecutter/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     jinja2 future binaryornot click whichcraft poyo jinja2_time requests python-slugify
   ];
-  
+
   # requires network access for cloning git repos
   doCheck = false;
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/cornice/default.nix b/nixpkgs/pkgs/development/python-modules/cornice/default.nix
index 4307b3f6f4ff..9897115353f3 100644
--- a/nixpkgs/pkgs/development/python-modules/cornice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cornice/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "cornice";
-  version = "4.0.1";
+  version = "5.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d083832e9db65da4784436deabd7d37959de88c3b8ba51d539fa1e1f8313439d";
+    sha256 = "4fcf3be295514e7e20fdd602fea8d204127bb02da2ff6bdbc8b6fba859ac9fd0";
   };
 
   propagatedBuildInputs = [ pyramid simplejson six venusian ];
diff --git a/nixpkgs/pkgs/development/python-modules/cot/default.nix b/nixpkgs/pkgs/development/python-modules/cot/default.nix
new file mode 100644
index 000000000000..8952d79634d7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cot/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, isPy3k
+, argcomplete, colorlog, pyvmomi, requests, verboselogs
+, psutil, pyopenssl, setuptools
+, mock, pytest, pytest-mock, pytestCheckHook, qemu
+}:
+
+buildPythonPackage rec {
+  pname = "cot";
+  version = "2.2.1";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "f4b3553415f90daac656f89d3e82e79b3d751793239bb173a683b4cc0ceb2635";
+  };
+
+  propagatedBuildInputs = [ colorlog pyvmomi requests verboselogs pyopenssl setuptools ]
+  ++ stdenv.lib.optional (pythonOlder "3.3") psutil;
+
+  checkInputs = [ mock pytestCheckHook pytest-mock qemu ];
+
+  # Many tests require network access and/or ovftool (https://code.vmware.com/web/tool/ovf)
+  # try enabling these tests with ovftool once/if it is added to nixpkgs
+  disabledTests = [
+    "HelperGenericTest"
+    "TestCOTAddDisk"
+    "TestCOTAddFile"
+    "TestCOTEditHardware"
+    "TestCOTEditProduct"
+    "TestCOTEditProperties"
+    "TestCOTInjectConfig"
+    "TestISO"
+    "TestOVFAPI"
+    "TestQCOW2"
+    "TestRAW"
+    "TestVMDKConversion"
+  ];
+
+
+  # argparse is part of the standardlib
+  prePatch = ''
+    substituteInPlace setup.py --replace "'argparse'," ""
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Common OVF Tool";
+    longDescription = ''
+      COT (the Common OVF Tool) is a tool for editing Open Virtualization Format (.ovf, .ova) virtual appliances,
+      with a focus on virtualized network appliances such as the Cisco CSR 1000V and Cisco IOS XRv platforms.
+    '';
+    homepage = "https://github.com/glennmatthews/cot";
+    license = licenses.mit;
+    maintainers = with maintainers; [ evanjs ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/coverage/default.nix b/nixpkgs/pkgs/development/python-modules/coverage/default.nix
index a22009ac9db1..fa5f4bca8cd0 100644
--- a/nixpkgs/pkgs/development/python-modules/coverage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coverage/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "coverage";
-  version = "5.1";
+  version = "5.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ll0hr8g3szbxa4al6khhzi6l92a3vwyldj0085whl44s55gq2zr";
+    sha256 = "a34cb28e0747ea15e82d13e14de606747e9e484fb28d63c999483f5d5188e89b";
   };
 
   # No tests in archive
diff --git a/nixpkgs/pkgs/development/python-modules/coveralls/default.nix b/nixpkgs/pkgs/development/python-modules/coveralls/default.nix
index 96f3782ab8d0..64078693ac19 100644
--- a/nixpkgs/pkgs/development/python-modules/coveralls/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/coveralls/default.nix
@@ -1,6 +1,7 @@
 { buildPythonPackage
 , lib
 , fetchPypi
+, isPy27
 , mock
 , pytest
 , pytestrunner
@@ -15,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "coveralls";
-  name = "${pname}-python-${version}";
-  version = "1.9.2";
+  version = "2.1.2";
+  disabled = isPy27;
 
   # wanted by tests
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8e3315e8620bb6b3c6f3179a75f498e7179c93b3ddc440352404f941b1f70524";
+    sha256 = "4430b862baabb3cf090d36d84d331966615e4288d8a8c5957e0fd456d0dd8bd6";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/cozy/default.nix b/nixpkgs/pkgs/development/python-modules/cozy/default.nix
index c55c85c3dfd7..39f2d1227e7c 100644
--- a/nixpkgs/pkgs/development/python-modules/cozy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cozy/default.nix
@@ -4,6 +4,7 @@
 buildPythonPackage {
   pname = "cozy";
   version = "2.0a1";
+  disabled = !isPy3k;
 
   propagatedBuildInputs = [
     z3 ply python-igraph oset ordered-set dictionaries
@@ -18,18 +19,18 @@ buildPythonPackage {
 
   # Yoink the Z3 dependency name, because our Z3 package doesn't provide it.
   postPatch = ''
-    sed -i -e '/z3-solver/d' requirements.txt
+    sed -i -e '/z3-solver/d' -e 's/^dictionaries.*$/dictionaries/' requirements.txt
   '';
 
   # Tests are not correctly set up in the source tree.
   doCheck = false;
+  pythonImportsCheck = [ "cozy" ];
 
   # There is some first-time-run codegen that we will force to happen.
   postInstall = ''
     $out/bin/cozy --help
   '';
 
-  disabled = !isPy3k;
 
   meta = {
     description = "The collection synthesizer";
diff --git a/nixpkgs/pkgs/development/python-modules/cppy/default.nix b/nixpkgs/pkgs/development/python-modules/cppy/default.nix
new file mode 100644
index 000000000000..fffa91744248
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cppy/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "cppy";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4eda6f1952054a270f32dc11df7c5e24b259a09fddf7bfaa5f33df9fb4a29642";
+  };
+
+  # Headers-only library, no tests
+  doCheck = false;
+
+  # Not supported
+  disabled = !isPy3k;
+
+  meta = {
+    description = "C++ headers for C extension development";
+    homepage = "https://github.com/nucleic/cppy";
+    license = lib.licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/crashtest/default.nix b/nixpkgs/pkgs/development/python-modules/crashtest/default.nix
new file mode 100644
index 000000000000..9981b56f2c09
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/crashtest/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchFromGitHub, fetchPypi, pythonAtLeast, pytest }:
+
+buildPythonPackage rec {
+  pname = "crashtest";
+  version = "0.3.1";
+  disabled = !(pythonAtLeast "3.6");
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "42ca7b6ce88b6c7433e2ce47ea884e91ec93104a4b754998be498a8e6c3d37dd";
+  };
+
+  # has tests, but only on GitHub, however the pyproject build fails for me
+  pythonImportsCheck = [
+    "crashtest.frame"
+    "crashtest.inspector"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/sdispater/crashtest";
+    description = "Manage Python errors with ease";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/crate/default.nix b/nixpkgs/pkgs/development/python-modules/crate/default.nix
new file mode 100644
index 000000000000..42236b4d7c22
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/crate/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, fetchPypi
+, buildPythonPackage
+, urllib3
+, isPy3k
+, mock
+, sqlalchemy
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "crate";
+  version = "0.24.0";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "028q9r1qyqkq185awkazhplfy7y1081963fnjzi3kf3lxvz6yhay";
+  };
+
+  propagatedBuildInputs = [
+    urllib3
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    sqlalchemy
+    mock
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/crate/crate-python";
+    description = "A Python client library for CrateDB";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/crayons/default.nix b/nixpkgs/pkgs/development/python-modules/crayons/default.nix
index 1810f7907197..4cd9e90606b6 100644
--- a/nixpkgs/pkgs/development/python-modules/crayons/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/crayons/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "crayons";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "50e5fa729d313e2c607ae8bf7b53bb487652e10bd8e7a1e08c4bc8bf62755ffc";
+    sha256 = "dcb85b87aa03bb65bd3a073d012796b024cabeb086033e616759e2abb769440b";
   };
 
   propagatedBuildInputs = [ colorama ];
diff --git a/nixpkgs/pkgs/development/python-modules/crc32c/default.nix b/nixpkgs/pkgs/development/python-modules/crc32c/default.nix
index 6fd31d007f6c..dd2c9059ed5f 100644
--- a/nixpkgs/pkgs/development/python-modules/crc32c/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/crc32c/default.nix
@@ -1,14 +1,14 @@
 { lib, buildPythonPackage, fetchFromGitHub }:
 
 buildPythonPackage rec {
-  version = "2.0";
+  version = "2.0.1";
   pname = "crc32c";
 
   src = fetchFromGitHub {
     owner = "ICRAR";
     repo = pname;
     rev = "v${version}";
-    sha256 = "15x1sj23n50qdjmi8mjq5wgf5jfn1yv78vjc59wplvl0s50w2dnk";
+    sha256 = "0vyac7pchh083h5qdjwhhacfq77frkrq1bjzsn51qv1vwcdrpnrf";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/credstash/default.nix b/nixpkgs/pkgs/development/python-modules/credstash/default.nix
index 75ab8b739d8d..1abd3f4ed203 100644
--- a/nixpkgs/pkgs/development/python-modules/credstash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/credstash/default.nix
@@ -1,14 +1,22 @@
-{ stdenv, buildPythonPackage, fetchPypi, cryptography, boto3, pyyaml, docutils, nose }:
+{ stdenv, buildPythonPackage, fetchPypi, cryptography, boto3, pyyaml, docutils, nose
+, fetchpatch
+}:
 
 buildPythonPackage rec {
   pname = "credstash";
-  version = "1.16.2";
+  version = "1.17.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1l3g76dm9csmx0z8s7zd75wfzw9dcyvrq0a81gfzwxk0c0w8c79r";
+    sha256 = "6c04e8734ef556ab459018da142dd0b244093ef176b3be5583e582e9a797a120";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/fugue/credstash/commit/9c02ee43ed6e37596cafbca2fe80c532ec19d2d8.patch";
+      sha256 = "dlybrpfLK+PqwWWhH9iXgXHYysZGmcZAFGWNOwsG0xA=";
+    })
+  ];
   # The install phase puts an executable and a copy of the library it imports in
   # bin/credstash and bin/credstash.py, despite the fact that the library is also
   # installed to lib/python<version>/site-packages/credstash.py.
diff --git a/nixpkgs/pkgs/development/python-modules/croniter/default.nix b/nixpkgs/pkgs/development/python-modules/croniter/default.nix
index 15aaf97d15c0..05e855b12dc1 100644
--- a/nixpkgs/pkgs/development/python-modules/croniter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/croniter/default.nix
@@ -4,24 +4,28 @@
 , python-dateutil
 , pytest
 , pytz
+, natsort
+, tzlocal
 }:
 
 buildPythonPackage rec {
   pname = "croniter";
-  version = "0.3.32";
+  version = "0.3.34";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0d5bf45f12861c1b718c51bd6e2ab056da94e651bf22900658421cdde0ff7088";
+    sha256 = "7186b9b464f45cf3d3c83a18bc2344cc101d7b9fd35a05f2878437b14967e964";
   };
 
   propagatedBuildInputs = [
     python-dateutil
+    natsort
   ];
 
   checkInputs = [
     pytest
     pytz
+    tzlocal
   ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/cryptography/2.9.nix b/nixpkgs/pkgs/development/python-modules/cryptography/2.9.nix
new file mode 100644
index 000000000000..6a6187e5693d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cryptography/2.9.nix
@@ -0,0 +1,74 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, isPy27
+, ipaddress
+, openssl
+, cryptography_vectors
+, darwin
+, packaging
+, six
+, pythonOlder
+, isPyPy
+, cffi
+, pytest
+, pretend
+, iso8601
+, pytz
+, hypothesis
+, enum34
+}:
+
+buildPythonPackage rec {
+  pname = "cryptography";
+  version = "2.9.2"; # Also update the hash in vectors.nix
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0af25w5mkd6vwns3r6ai1w5ip9xp0ms9s261zzssbpadzdr05hx0";
+  };
+
+  outputs = [ "out" "dev" ];
+
+  buildInputs = [ openssl ]
+             ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
+  propagatedBuildInputs = [
+    packaging
+    six
+  ] ++ stdenv.lib.optional (!isPyPy) cffi
+  ++ stdenv.lib.optionals isPy27 [ ipaddress enum34 ];
+
+  checkInputs = [
+    cryptography_vectors
+    hypothesis
+    iso8601
+    pretend
+    pytest
+    pytz
+  ];
+
+  checkPhase = ''
+    py.test --disable-pytest-warnings tests
+  '';
+
+  # IOKit's dependencies are inconsistent between OSX versions, so this is the best we
+  # can do until nix 1.11's release
+  __impureHostDeps = [ "/usr/lib" ];
+
+  meta = with stdenv.lib; {
+    description = "A package which provides cryptographic recipes and primitives";
+    longDescription = ''
+      Cryptography includes both high level recipes and low level interfaces to
+      common cryptographic algorithms such as symmetric ciphers, message
+      digests, and key derivation functions.
+      Our goal is for it to be your "cryptographic standard library". It
+      supports Python 2.7, Python 3.5+, and PyPy 5.4+.
+    '';
+    homepage = "https://github.com/pyca/cryptography";
+    changelog = "https://cryptography.io/en/latest/changelog/#v"
+      + replaceStrings [ "." ] [ "-" ] version;
+    license = with licenses; [ asl20 bsd3 psfl ];
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cryptography/default.nix b/nixpkgs/pkgs/development/python-modules/cryptography/default.nix
index 7219f48e6f99..d122c42e846d 100644
--- a/nixpkgs/pkgs/development/python-modules/cryptography/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cryptography/default.nix
@@ -22,11 +22,11 @@
 
 buildPythonPackage rec {
   pname = "cryptography";
-  version = "2.9.2"; # Also update the hash in vectors.nix
+  version = "3.1"; # Also update the hash in vectors.nix
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a0c30272fb4ddda5f5ffc1089d7405b7a71b0b0f51993cb4e5dbb4590b2fc229";
+    sha256 = "021yccbqr446zh1c9l8yj79h9bgbd1cwv0ppj168w9y67i3rlh16";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/python-modules/cryptography/vectors-2.9.nix b/nixpkgs/pkgs/development/python-modules/cryptography/vectors-2.9.nix
new file mode 100644
index 000000000000..096eab77bec3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cryptography/vectors-2.9.nix
@@ -0,0 +1,23 @@
+{ buildPythonPackage, fetchPypi, lib, cryptography }:
+
+buildPythonPackage rec {
+  pname = "cryptography_vectors";
+  # The test vectors must have the same version as the cryptography package:
+  version = cryptography.version;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1d4iykcv7cn9j399hczlxm5pzxmqy6d80h3j16dkjwlmv3293b4r";
+  };
+
+  # No tests included
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Test vectors for the cryptography package";
+    homepage = "https://cryptography.io/en/latest/development/test-vectors/";
+    # Source: https://github.com/pyca/cryptography/tree/master/vectors;
+    license = with licenses; [ asl20 bsd3 ];
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix b/nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix
index 096eab77bec3..99f3b6f8974f 100644
--- a/nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix
+++ b/nixpkgs/pkgs/development/python-modules/cryptography/vectors.nix
@@ -7,7 +7,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1d4iykcv7cn9j399hczlxm5pzxmqy6d80h3j16dkjwlmv3293b4r";
+    sha256 = "10hixzqf2ppw8j61f6p04rgnq8ra6pjml68330s5af8df8xbqq16";
   };
 
   # No tests included
diff --git a/nixpkgs/pkgs/development/python-modules/cssselect2/default.nix b/nixpkgs/pkgs/development/python-modules/cssselect2/default.nix
index dfa08dfe0b0c..5eb65ce2fca4 100644
--- a/nixpkgs/pkgs/development/python-modules/cssselect2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cssselect2/default.nix
@@ -1,29 +1,28 @@
-{ lib, buildPythonPackage, fetchPypi, tinycss2, pytest, pytestrunner }:
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, tinycss2
+, pytest
+, pytestrunner
+, pytestcov
+, pytest-flake8
+, pytest-isort
+}:
 
 buildPythonPackage rec {
   pname = "cssselect2";
-  version = "0.2.2";
+  version = "0.3.0";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0skymzb4ncrm2zdsy80f53vi0arf776lvbp51hzh4ayp1il5lj3h";
+    sha256 = "5c2716f06b5de93f701d5755a9666f2ee22cbcd8b4da8adddfc30095ffea3abc";
   };
 
-  # We're not interested in code quality tests
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "pytest-cov" "" \
-      --replace "pytest-flake8" "" \
-      --replace "pytest-isort" ""
-    substituteInPlace setup.cfg \
-      --replace "--cov=cssselect2" "" \
-      --replace "--flake8" "" \
-      --replace "--isort" ""
-  '';
-
   propagatedBuildInputs = [ tinycss2 ];
 
-  checkInputs = [ pytest pytestrunner ];
+  checkInputs = [ pytest pytestrunner pytestcov pytest-flake8 pytest-isort ];
 
   meta = with lib; {
     description = "CSS selectors for Python ElementTree";
diff --git a/nixpkgs/pkgs/development/python-modules/csvs-to-sqlite/default.nix b/nixpkgs/pkgs/development/python-modules/csvs-to-sqlite/default.nix
index 3c4bfa0bff73..19d0fa4f7bbc 100644
--- a/nixpkgs/pkgs/development/python-modules/csvs-to-sqlite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/csvs-to-sqlite/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "csvs-to-sqlite";
-  version = "1.0";
+  version = "1.1";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "simonw";
     repo = pname;
     rev = version;
-    sha256 = "0n80y9a6qhbhhbz64jdpscx0nha9jn9nygp9nkgszmw04ri5j5hm";
+    sha256 = "1xi9d8l1sf9vixzvqpz8lvhl6yqmz9x5659nvpsxinl317qzmc8m";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/csvw/default.nix b/nixpkgs/pkgs/development/python-modules/csvw/default.nix
new file mode 100644
index 000000000000..76f7cb73b4c4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/csvw/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, attrs
+, isodate
+, dateutil
+, rfc3986
+, uritemplate
+, mock
+, pytestCheckHook
+, pytest-mock
+}:
+
+buildPythonPackage rec {
+  pname = "csvw";
+  version = "1.8.0";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "cldf";
+    repo = "csvw";
+    rev = "v${version}";
+    sha256 = "0maxrsiv9i9hkg627hwqyq8g6jg3g8iv8gdqaxz4aysjd9xddydd";
+  };
+
+  patchPhase = ''
+    substituteInPlace setup.cfg --replace "--cov" ""
+  '';
+
+  propagatedBuildInputs = [
+    attrs
+    isodate
+    dateutil
+    rfc3986
+    uritemplate
+  ];
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+    pytest-mock
+  ];
+
+  meta = with lib; {
+    description = "CSV on the Web";
+    homepage = "https://github.com/cldf/csvw";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cucumber-tag-expressions/default.nix b/nixpkgs/pkgs/development/python-modules/cucumber-tag-expressions/default.nix
new file mode 100644
index 000000000000..789a58bb6a78
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/cucumber-tag-expressions/default.nix
@@ -0,0 +1,21 @@
+{ lib, fetchPypi, buildPythonPackage, pytest, pytest-html }:
+
+buildPythonPackage rec {
+  pname = "cucumber-tag-expressions";
+  version = "3.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0kb8dq458sflwl2agb2v9hp04qwygslrhdps819vq27wc44jabxw";
+  };
+
+  checkInputs = [ pytest pytest-html ];
+  checkPhase = "pytest tests/*/*.py";
+
+  meta = with lib; {
+    homepage = "https://github.com/cucumber/tag-expressions-python";
+    description = "Provides tag-expression parser for cucumber/behave";
+    license = licenses.mit;
+    maintainers = with maintainers; [ maxxk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/cupy/default.nix b/nixpkgs/pkgs/development/python-modules/cupy/default.nix
index d2db8dcd9eeb..2bbd20a16d72 100644
--- a/nixpkgs/pkgs/development/python-modules/cupy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cupy/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "cupy";
-  version = "7.0.0";
+  version = "7.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7230b25052b2b9074cc338b44338b4bd43575a48ad7b9c2ce7f36d7e0d117012";
+    sha256 = "b4032adf839f63bab7fc9f3e7066ef86abe0928e834aa5d132e4e7ce907951ed";
   };
 
   checkInputs = [
@@ -20,7 +20,7 @@ buildPythonPackage rec {
 
   preConfigure = ''
       export CUDA_PATH=${cudatoolkit}
-  ''; 
+  '';
 
   propagatedBuildInputs = [
     cudatoolkit
diff --git a/nixpkgs/pkgs/development/python-modules/curio/default.nix b/nixpkgs/pkgs/development/python-modules/curio/default.nix
index 31dc8327fc41..0ffd66d6d012 100644
--- a/nixpkgs/pkgs/development/python-modules/curio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/curio/default.nix
@@ -2,32 +2,34 @@
 , buildPythonPackage
 , fetchPypi
 , isPy3k
-, pytest
+, pytestCheckHook
 , sphinx
+, stdenv
 }:
 
 buildPythonPackage rec {
   pname = "curio";
-  version = "0.9";
+  version = "1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "51d1a7b49b4f8dd1486ac785c72d522962e93ccfdcfc1f818f5c7553a307b5ef";
+    sha256 = "90f320fafb3f5b791f25ffafa7b561cc980376de173afd575a2114380de7939b";
   };
 
   disabled = !isPy3k;
 
-  checkInputs = [ pytest sphinx ];
+  checkInputs = [ pytestCheckHook sphinx ];
 
   __darwinAllowLocalNetworking = true;
 
-  # test_aside_basic times out,
-  # test_aside_cancel fails because modifies PYTHONPATH and cant find pytest
-  checkPhase = ''
-    # __pycache__ was packaged accidentally, https://github.com/dabeaz/curio/issues/301
-    rm -r tests/__pycache__
-    pytest --deselect tests/test_task.py::test_aside_basic --deselect tests/test_task.py::test_aside_cancel
-  '';
+  disabledTests = [
+     "test_aside_basic" # times out
+     "test_aside_cancel" # fails because modifies PYTHONPATH and cant find pytest
+     "test_ssl_outgoing" # touches network
+   ] ++ lib.optionals (stdenv.isDarwin) [
+     "test_unix_echo" # socket bind error on hydra when built with other packages
+     "test_unix_ssl_server" # socket bind error on hydra when built with other packages
+   ];
 
   meta = with lib; {
     homepage = "https://github.com/dabeaz/curio";
diff --git a/nixpkgs/pkgs/development/python-modules/cvxpy/default.nix b/nixpkgs/pkgs/development/python-modules/cvxpy/default.nix
index b0bab9c7ee03..29b19414151b 100644
--- a/nixpkgs/pkgs/development/python-modules/cvxpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cvxpy/default.nix
@@ -11,18 +11,19 @@
 , scs
 , six
   # Check inputs
+, pytestCheckHook
 , nose
 }:
 
 buildPythonPackage rec {
   pname = "cvxpy";
-  version = "1.0.31";
+  version = "1.1.5";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17g6xcy99icrdcmb4pa793kqvzchbzl5lsw00xms9slwkr7pb65k";
+    sha256 = "7c826a874db2e4cefe54e63ebd3a3763d0d72e55a17c7d1cfec80008a87b8d81";
   };
 
   propagatedBuildInputs = [
@@ -36,15 +37,19 @@ buildPythonPackage rec {
     six
   ];
 
-  checkInputs = [ nose ];
-  checkPhase = ''
-    nosetests cvxpy
-  '';
+  checkInputs = [ pytestCheckHook nose ];
+  pytestFlagsArray = [ "./cvxpy" ];
+  # Disable the slowest benchmarking tests, cuts test time in half
+  disabledTests = [
+    "test_tv_inpainting"
+    "test_diffcp_sdp_example"
+  ];
 
   meta = with lib; {
     description = "A domain-specific language for modeling convex optimization problems in Python.";
     homepage = "https://www.cvxpy.org/";
     downloadPage = "https://github.com/cvxgrp/cvxpy/releases";
+    changelog = "https://github.com/cvxgrp/cvxpy/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix b/nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix
index dae3e032a39a..dd8b1dccc1c3 100644
--- a/nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cx_freeze/default.nix
@@ -1,14 +1,16 @@
-{ stdenv, buildPythonPackage, fetchPypi, ncurses }:
+{ stdenv, buildPythonPackage, pythonOlder, fetchPypi, ncurses }:
 
 buildPythonPackage rec {
   pname = "cx_Freeze";
-  version = "6.0";
+  version = "6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "067bgkgx7i3kw31vaviwysbb1lk91cjw9q90vklsr7nsygjxi0fa";
+    sha256 = "44bbbcea3196b79da77cc22637cb28a825b51182d32209e8a3f6cd4042edc247";
   };
 
+  disabled = pythonOlder "3.5";
+
   propagatedBuildInputs = [ ncurses ];
 
   # timestamp need to come after 1980 for zipfiles and nix store is set to epoch
diff --git a/nixpkgs/pkgs/development/python-modules/cx_oracle/default.nix b/nixpkgs/pkgs/development/python-modules/cx_oracle/default.nix
index 6ba8f3386387..cecb41c3d882 100644
--- a/nixpkgs/pkgs/development/python-modules/cx_oracle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/cx_oracle/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "cx_Oracle";
-  version = "7.3.0";
+  version = "8.0.0";
 
   buildInputs = [ odpic ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2e0da54e948b55e5c75fab14b391d58aa8b9be1eddfd9ec9a8a0e500bc8bfc7e";
+    sha256 = "cddc298301789c724de5817611f7bd38b4859b371928e2e85a9c37af222f73c8";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/development/python-modules/daphne/default.nix b/nixpkgs/pkgs/development/python-modules/daphne/default.nix
index 49e6c3b3c475..80fa1c35d632 100644
--- a/nixpkgs/pkgs/development/python-modules/daphne/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/daphne/default.nix
@@ -1,10 +1,10 @@
-{ stdenv, buildPythonPackage, isPy3k, fetchFromGitHub, fetchpatch
+{ stdenv, buildPythonPackage, isPy3k, fetchFromGitHub
 , asgiref, autobahn, twisted, pytestrunner
-, hypothesis, pytest, pytest-asyncio
+, hypothesis, pytest, pytest-asyncio, service-identity, pyopenssl
 }:
 buildPythonPackage rec {
   pname = "daphne";
-  version = "2.3.0";
+  version = "2.5.0";
 
   disabled = !isPy3k;
 
@@ -12,20 +12,12 @@ buildPythonPackage rec {
     owner = "django";
     repo = pname;
     rev = version;
-    sha256 = "020afrvbnid13gkgjpqznl025zpynisa96kybmf8q7m3wp1iq1nl";
+    sha256 = "0qkhmblj3a5s3z65cgz46xsvq1b6x4m3kr6aljjnxnv7hcwib02n";
   };
 
-  patches = [
-    # Fix compatibility with Hypothesis 4. See: https://github.com/django/daphne/pull/261
-    (fetchpatch {
-      url = "https://github.com/django/daphne/commit/2df5096c5b63a791c209e12198ad89c998869efd.patch";
-      sha256 = "0046krzcn02mihqmsjd80kk5h5flv44nqxpapa17g6dvq3jnb97n";
-    })
-  ];
-
   nativeBuildInputs = [ pytestrunner ];
 
-  propagatedBuildInputs = [ asgiref autobahn twisted ];
+  propagatedBuildInputs = [ asgiref autobahn twisted service-identity pyopenssl ];
 
   checkInputs = [ hypothesis pytest pytest-asyncio ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/dash-core-components/default.nix b/nixpkgs/pkgs/development/python-modules/dash-core-components/default.nix
index e88591aba9af..b3f2ed0629f3 100644
--- a/nixpkgs/pkgs/development/python-modules/dash-core-components/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dash-core-components/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "dash_core_components";
-  version = "1.10.0";
+  version = "1.10.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bqvxm7h3b0wah32jrsn919hp4xr1zlkxclbs261mvd57ps0rf9h";
+    sha256 = "6152346ff2ac8a7fcdb76c8b8acbf3ee4e72f3822cd2a02a9f3a963db66f94a3";
   };
 
   # No tests in archive
diff --git a/nixpkgs/pkgs/development/python-modules/dash-renderer/default.nix b/nixpkgs/pkgs/development/python-modules/dash-renderer/default.nix
index a92f6617abec..7221d47e375f 100644
--- a/nixpkgs/pkgs/development/python-modules/dash-renderer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dash-renderer/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "dash_renderer";
-  version = "1.4.1";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11fl7756zshlrfiqcr6rcg1m0c4434vdg1bkrcjl54hl02k3pcmv";
+    sha256 = "8e9c0c0c2efb8ea562489c37665417cd608c30bca20425ac4d847420b5bbc128";
   };
 
   # No tests in archive
diff --git a/nixpkgs/pkgs/development/python-modules/dash-table/default.nix b/nixpkgs/pkgs/development/python-modules/dash-table/default.nix
index 9c323c6fa33f..bcf0a8f4e431 100644
--- a/nixpkgs/pkgs/development/python-modules/dash-table/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dash-table/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "dash_table";
-  version = "4.7.0";
+  version = "4.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0md7qqjpsarc8ymfccvsqgj6mgq8gxl09im5v5yxhv8hv24yy4jm";
+    sha256 = "2f19000051730291100cd3a79b13fa62c478aea7908f2e4323c13b90f09e3320";
   };
 
   # No tests in archive
diff --git a/nixpkgs/pkgs/development/python-modules/dash/default.nix b/nixpkgs/pkgs/development/python-modules/dash/default.nix
index 4a9a9a60af87..eed9864d5c8f 100644
--- a/nixpkgs/pkgs/development/python-modules/dash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dash/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "dash";
-  version = "1.12.0";
+  version = "1.14.0";
 
   src = fetchFromGitHub {
     owner = "plotly";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0nr5ppjbfmay0d3bah26i4k8xj6xyp24gq0cqlv9lzdrbdd3j9wy";
+    sha256 = "1f7gal9x0bjsmwxlbvlkwfwz1cyyg5d0n6jh4399wkjilpd966d5";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/dask-gateway-server/default.nix b/nixpkgs/pkgs/development/python-modules/dask-gateway-server/default.nix
new file mode 100644
index 000000000000..9d28d2671917
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/dask-gateway-server/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, aiohttp
+, colorlog
+, cryptography
+, traitlets
+, go
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "dask-gateway-server";
+  # update dask-gateway-server lock step with dask-gateway
+  version = "0.8.0";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "272134933b7e2068cd89a17a5012c76a29fbd9e40a78164345a2b15353d4b40a";
+  };
+
+  nativeBuildInputs = [
+    go
+  ];
+
+  propagatedBuildInputs = [
+    aiohttp
+    colorlog
+    cryptography
+    traitlets
+  ];
+
+  preBuild = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  # tests requires cluster for testing
+  doCheck = false;
+
+  pythonImportsCheck = [ "dask_gateway_server" ];
+
+  meta = with lib; {
+    description = "A multi-tenant server for securely deploying and managing multiple Dask clusters";
+    homepage = "https://gateway.dask.org/";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/dask-gateway/default.nix b/nixpkgs/pkgs/development/python-modules/dask-gateway/default.nix
new file mode 100644
index 000000000000..8a4fe9e263a5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/dask-gateway/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, aiohttp
+, dask
+, distributed
+}:
+
+buildPythonPackage rec {
+  pname = "dask-gateway";
+  # update dask-gateway lock step with dask-gateway-server
+  version = "0.8.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "519818f3598ddd726882c5a6bf7053941613d8517b80e8a2c28467e30d57da9b";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    dask
+    distributed
+  ];
+
+  # tests requires cluster for testing
+  doCheck = false;
+
+  pythonImportsCheck = [ "dask_gateway" ];
+
+  meta = with lib; {
+    description = "A client library for interacting with a dask-gateway server";
+    homepage = "https://gateway.dask.org/";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/dask-image/default.nix b/nixpkgs/pkgs/development/python-modules/dask-image/default.nix
index 48a6a73af676..f119cf2b0b8b 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-image/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-image/default.nix
@@ -1,25 +1,43 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , dask
 , numpy, toolz # dask[array]
 , scipy
 , pims
 , pytest
+, pytest-flake8
 , scikitimage
 }:
 
 buildPythonPackage rec {
-  version = "0.2.0";
+  version = "0.3.0";
   pname = "dask-image";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bece2ea347f963dc0168c7d5fdfd11e51b47d9c857d3bc56144d7c146964a23f";
+    sha256 = "15svy8y57i30878pijyd0pxn10bnk7ffmmgwva5rpip4b7grsgv0";
   };
 
-  checkInputs = [ pytest scikitimage ];
+  nativeBuildInputs = [ pytest-flake8 ];
   propagatedBuildInputs = [ dask numpy toolz scipy pims ];
+  checkInputs = [
+    pytest
+    scikitimage
+  ];
+
+  # ignore errors from newer versions of flake8
+  prePatch = ''
+    substituteInPlace setup.cfg \
+      --replace "docs/conf.py,versioneer.py" \
+        "docs/conf.py,versioneer.py,dask_image/ndfilters/_utils.py"
+  '';
+
+  # scikit.external is not exported
+  checkPhase = ''
+    pytest --ignore=tests/test_dask_image/
+  '';
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/dask/dask-image";
diff --git a/nixpkgs/pkgs/development/python-modules/dask-ml/default.nix b/nixpkgs/pkgs/development/python-modules/dask-ml/default.nix
index f47515d5543a..d4a6663e7a50 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-ml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-ml/default.nix
@@ -20,13 +20,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.2.0";
+  version = "1.6.0";
   pname = "dask-ml";
   disabled = pythonOlder "3.6"; # >= 3.6
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ppg8licvkxz1af2q87cxms2p6ss2r5d4fdkbcivph56r0v0ci2k";
+    sha256 = "ce686b7fd49b3f876d651c87e8468ad71bcd2707399140d6baf198184c45d970";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix b/nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix
index 741e39423a9b..2794bcba7aed 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-mpi/default.nix
@@ -9,12 +9,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.0.0";
+  version = "2.21.0";
   pname = "dask-mpi";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "774cd2d69e5f7154e1fa133c22498062edd31507ffa2ea19f4ab4d8975c27bc3";
+    sha256 = "76e153fc8c58047d898970b33ede0ab1990bd4e69cc130c6627a96f11b12a1a7";
   };
 
   checkInputs = [ pytest requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix b/nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix
index 9b9388e56c71..9730ca8a2feb 100644
--- a/nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask-xgboost/default.nix
@@ -9,12 +9,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.1.10";
+  version = "0.1.11";
   pname = "dask-xgboost";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "454c47ccf64315d35beeca32c7cedf20d8a8d42471d5e6ce0c51f4af0a6e021e";
+    sha256 = "3fbe1bf4344dc74edfbe9f928c7e3e6acc26dc57cefd8da8ae56a15469c6941c";
   };
 
   checkInputs = [ pytest scikitlearn ];
diff --git a/nixpkgs/pkgs/development/python-modules/dask/default.nix b/nixpkgs/pkgs/development/python-modules/dask/default.nix
index 1b3a08aa9975..d69ae77e1a62 100644
--- a/nixpkgs/pkgs/development/python-modules/dask/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dask/default.nix
@@ -11,11 +11,12 @@
 , dill
 , pandas
 , partd
+, pytest_xdist
 }:
 
 buildPythonPackage rec {
   pname = "dask";
-  version = "2.14.0";
+  version = "2.22.0";
 
   disabled = pythonOlder "3.5";
 
@@ -23,13 +24,16 @@ buildPythonPackage rec {
     owner = "dask";
     repo = pname;
     rev = version;
-    sha256 = "0kj46pwzvdw8ii1h45y48wxvjid89yp4cfak2h4b8z8xic73fqgj";
+    sha256 = "08nvxj81cz9x92dh2gbmm4imkr8cfljfi2hxkballv2ygwcbzg8g";
   };
 
   checkInputs = [
     pytestCheckHook
+    pytest_xdist # takes >10mins to run single-threaded
   ];
 
+  pytestFlagsArray = [ "-n $NIX_BUILD_CORES" ];
+
   dontUseSetuptoolsCheck = true;
 
   propagatedBuildInputs = [
@@ -55,6 +59,8 @@ buildPythonPackage rec {
   disabledTests = [
     "test_argwhere_str"
     "test_count_nonzero_str"
+    "rolling_methods"  # floating percision error ~0.1*10^8 small
+    "num_workers_config" # flaky
   ];
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/databricks-cli/default.nix b/nixpkgs/pkgs/development/python-modules/databricks-cli/default.nix
index 3ed52a28287d..952f0723c7c2 100644
--- a/nixpkgs/pkgs/development/python-modules/databricks-cli/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/databricks-cli/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "databricks-cli";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1w0my86r9fl0xqlczaqyp7v9rg7mpc42kp9swhids4qk4r5ncr2i";
+    sha256 = "b3c7205dd8cb9935c475794ebd41b53aba79a53e028d3cf6b5871eec83c89ec0";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix b/nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix
new file mode 100644
index 000000000000..59ebd4ef1142
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/databricks-connect/default.nix
@@ -0,0 +1,32 @@
+{ lib, jdk, buildPythonPackage, fetchPypi, six, py4j }:
+
+buildPythonPackage rec {
+  pname = "databricks-connect";
+  version = "7.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "996a9d0f271f6c7edbd2d85b2efb6ff4e58d15222e80f87ca17fdbf224e17056";
+  };
+
+  sourceRoot = ".";
+
+  propagatedBuildInputs = [ py4j six jdk ];
+
+  # requires network access
+  doCheck = false;
+
+  preFixup = ''
+      substituteInPlace "$out/bin/find-spark-home" \
+      --replace find_spark_home.py .find_spark_home.py-wrapped
+  '';
+
+  pythonImportsCheck = [ "pyspark" "six" "py4j" ];
+
+  meta = with lib; {
+    description = "Client for connecting to remote Databricks clusters";
+    homepage = "https://pypi.org/project/databricks-connect";
+    license = licenses.databricks;
+    maintainers = with maintainers; [ kfollesdal ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/dataclasses-json/default.nix b/nixpkgs/pkgs/development/python-modules/dataclasses-json/default.nix
new file mode 100644
index 000000000000..36430a29ef0f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/dataclasses-json/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, stringcase
+, typing-inspect
+, marshmallow-enum
+}:
+
+buildPythonPackage rec {
+  pname = "dataclasses-json";
+  version = "0.5.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "56ec931959ede74b5dedf65cf20772e6a79764d20c404794cce0111c88c085ff";
+  };
+
+  propagatedBuildInputs = [
+    stringcase
+    typing-inspect
+    marshmallow-enum
+  ];
+
+  meta = with lib; {
+    description = "Simple API for encoding and decoding dataclasses to and from JSON";
+    homepage = "https://github.com/lidatong/dataclasses-json";
+    license = licenses.mit;
+    maintainers = with maintainers; [ albakham ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/datadog/default.nix b/nixpkgs/pkgs/development/python-modules/datadog/default.nix
index 807ed5f9a3d1..748c0a535213 100644
--- a/nixpkgs/pkgs/development/python-modules/datadog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/datadog/default.nix
@@ -1,21 +1,22 @@
-{ lib, buildPythonPackage, fetchPypi
-, decorator, requests, simplejson, pillow
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, decorator, requests, simplejson, pillow, typing
 , nose, mock, pytest, freezegun }:
 
 buildPythonPackage rec {
   pname = "datadog";
-  version = "0.36.0";
+  version = "0.38.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1kkbsrzxc2a6k319lh98qkinn99dzcqz8h4fm25q17dlgmc9gq9z";
+    sha256 = "401cd1dcf2d5de05786016a1c790bff28d1428d12ae1dbe11485f9cb5502939b";
   };
 
   postPatch = ''
     find . -name '*.pyc' -exec rm {} \;
   '';
 
-  propagatedBuildInputs = [ decorator requests simplejson pillow ];
+  propagatedBuildInputs = [ decorator requests simplejson pillow ]
+    ++ lib.optionals (pythonOlder "3.5") [ typing ];
 
   checkInputs = [ nose mock pytest freezegun ];
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/datasets/default.nix b/nixpkgs/pkgs/development/python-modules/datasets/default.nix
new file mode 100644
index 000000000000..b953ed1dd1af
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/datasets/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, dill
+, filelock
+, numpy
+, pandas
+, pyarrow
+, requests
+, tqdm
+, xxhash
+}:
+
+buildPythonPackage rec {
+  pname = "datasets";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "huggingface";
+    repo = pname;
+    rev = version;
+    sha256 = "14f7847b8md5kf631zl8x2f53wy8zbzxypq4wdgzvwsjz4k7v4jn";
+  };
+
+  propagatedBuildInputs = [
+    dill
+    filelock
+    numpy
+    pandas
+    pyarrow
+    requests
+    tqdm
+    xxhash
+  ];
+
+  # Tests require pervasive internet access.
+  doCheck = false;
+
+  # Module import will attempt to create a cache directory.
+  postFixup = "export HF_MODULES_CACHE=$TMPDIR";
+
+  pythonImportsCheck = [ "datasets" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/huggingface/datasets";
+    description = "Fast, efficient, open-access datasets and evaluation metrics for natural language processing";
+    changelog = "https://github.com/huggingface/datasets/releases/tag/${version}";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/datasette/default.nix b/nixpkgs/pkgs/development/python-modules/datasette/default.nix
index b5d9c3dfad6a..5fa42c861ed9 100644
--- a/nixpkgs/pkgs/development/python-modules/datasette/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/datasette/default.nix
@@ -2,19 +2,22 @@
 , buildPythonPackage
 , fetchFromGitHub
 , aiofiles
+, asgi-csrf
 , click
 , click-default-group
 , janus
 , jinja2
 , hupper
+, mergedeep
 , pint
 , pluggy
+, python-baseconv
+, pyyaml
 , uvicorn
 # Check Inputs
 , pytestCheckHook
 , pytestrunner
 , pytest-asyncio
-, black
 , aiohttp
 , beautifulsoup4
 , asgiref
@@ -23,26 +26,30 @@
 
 buildPythonPackage rec {
   pname = "datasette";
-  version = "0.39";
+  version = "0.46";
 
   src = fetchFromGitHub {
     owner = "simonw";
     repo = "datasette";
     rev = version;
-    sha256 = "07d46512bc9sdan9lv39sf1bwlf7vf1bfhcsm825vk7sv7g9kczd";
+    sha256 = "0g4dfq5ykifa9628cb4i7gvx98p8hvb99gzfxk3bkvq1v9p4kcqq";
   };
 
   nativeBuildInputs = [ pytestrunner ];
 
   propagatedBuildInputs = [
     aiofiles
+    asgi-csrf
     click
     click-default-group
     janus
     jinja2
     hupper
+    mergedeep
     pint
     pluggy
+    python-baseconv
+    pyyaml
     uvicorn
     setuptools
   ];
@@ -52,7 +59,6 @@ buildPythonPackage rec {
     pytest-asyncio
     aiohttp
     beautifulsoup4
-    black
     asgiref
   ];
 
@@ -60,22 +66,17 @@ buildPythonPackage rec {
     substituteInPlace setup.py \
       --replace "click~=7.1.1" "click" \
       --replace "click-default-group~=1.2.2" "click-default-group" \
-      --replace "Jinja2~=2.10.3" "Jinja2" \
       --replace "hupper~=1.9" "hupper" \
       --replace "pint~=0.9" "pint" \
-      --replace "pluggy~=0.13.0" "pint" \
+      --replace "pluggy~=0.13.0" "pluggy" \
       --replace "uvicorn~=0.11" "uvicorn" \
-      --replace "aiofiles~=0.4.0" "aiofiles" \
-      --replace "janus~=0.4.0" "janus" \
       --replace "PyYAML~=5.3" "PyYAML"
   '';
 
-  # many tests require network access
+  # test_html is very slow
   # test_black fails on darwin
   dontUseSetuptoolsCheck = true;
   pytestFlagsArray = [
-    "--ignore=tests/test_api.py"
-    "--ignore=tests/test_csv.py"
     "--ignore=tests/test_html.py"
     "--ignore=tests/test_docs.py"
     "--ignore=tests/test_black.py"
@@ -84,6 +85,7 @@ buildPythonPackage rec {
     "facet"
     "_invalid_database" # checks error message when connecting to invalid database
   ];
+  pythonImportsCheck = [ "datasette" ];
 
   meta = with lib; {
     description = "An instant JSON API for your SQLite databases";
diff --git a/nixpkgs/pkgs/development/python-modules/datashader/default.nix b/nixpkgs/pkgs/development/python-modules/datashader/default.nix
index b5ae4a4c437f..d1e2eb3b24a5 100644
--- a/nixpkgs/pkgs/development/python-modules/datashader/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/datashader/default.nix
@@ -30,11 +30,11 @@
 
 buildPythonPackage rec {
   pname = "datashader";
-  version = "0.11.0";
+  version = "0.11.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05p81aff7x70yj8llclclgz6klvfzqixwxfng6awn3y5scv18w40";
+    sha256 = "b1f80415f72f92ccb660aaea7b2881ddd35d07254f7c44101709d42e819d6be6";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/datatable/default.nix b/nixpkgs/pkgs/development/python-modules/datatable/default.nix
index 81a53ac15f47..345903932bd4 100644
--- a/nixpkgs/pkgs/development/python-modules/datatable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/datatable/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "datatable";
-  version = "0.9.0";
+  version = "0.10.1";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1shwjkm9nyaj6asn57vwdd74pn13pggh14r6dzv729lzxm7nm65f";
+    sha256 = "3ce5257c0c4afa96e2b14ca47a0aaf73add195b11de48f4adda50b5ede927436";
   };
 
   patches = lib.optionals stdenv.isDarwin [
diff --git a/nixpkgs/pkgs/development/python-modules/dateparser/default.nix b/nixpkgs/pkgs/development/python-modules/dateparser/default.nix
index 730e1456a5f6..729827317c18 100644
--- a/nixpkgs/pkgs/development/python-modules/dateparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dateparser/default.nix
@@ -11,23 +11,41 @@
 , pytz
 , tzlocal
 , regex
-, ruamel_yaml }:
+, ruamel_yaml
+, python
+, isPy3k
+}:
 
 buildPythonPackage rec {
   pname = "dateparser";
-  version = "0.7.4";
+  version = "0.7.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fb5bfde4795fa4b179fe05c2c25b3981f785de26bec37e247dee1079c63d5689";
+    sha256 = "e875efd8c57c85c2d02b238239878db59ff1971f5a823457fcc69e493bf6ebfa";
   };
 
-  checkInputs = [ flake8 nose mock parameterized six glibcLocales ];
+  checkInputs = [
+    flake8
+    nose
+    mock
+    parameterized
+    six
+    glibcLocales
+  ];
   preCheck =''
     # skip because of missing convertdate module, which is an extra requirement
     rm tests/test_jalali.py
   '';
 
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover -s tests
+  '';
+
+  # Strange
+  # AttributeError: 'module' object has no attribute 'config'
+  doCheck = false;
+
   propagatedBuildInputs = [
     # install_requires
     dateutil pytz regex tzlocal
diff --git a/nixpkgs/pkgs/development/python-modules/dbf/default.nix b/nixpkgs/pkgs/development/python-modules/dbf/default.nix
index a2f7b603b844..9eb6e4f89a26 100644
--- a/nixpkgs/pkgs/development/python-modules/dbf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dbf/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
     pname = "dbf";
-    version = "0.98.3";
+    version = "0.99.0";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "01d71vya2x87f3kl9x0s8xp0n7wixn6ksrd054y7idq3n1mjaxzh";
+      sha256 = "a4a7a8cdc113d840142d21a796c16c7d329ad35c48f17156446732c83ebc571a";
     };
 
     propagatedBuildInputs = [ aenum ] ++ stdenv.lib.optional (pythonOlder "3.4") enum34;
diff --git a/nixpkgs/pkgs/development/python-modules/dbus-next/default.nix b/nixpkgs/pkgs/development/python-modules/dbus-next/default.nix
new file mode 100644
index 000000000000..163a7adcb10d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/dbus-next/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, python
+, dbus, dbus-python, pytest, pytestcov, pytest-asyncio, pytest-timeout
+}:
+
+buildPythonPackage rec {
+  pname = "dbus-next";
+  version = "0.1.4";
+
+  src = fetchFromGitHub {
+    owner = "altdesktop";
+    repo = "python-dbus-next";
+    rev = "v${version}";
+    sha256 = "sha256-C/aFDHmt6Qws6ek+++wM5GRN6TEvMGMiFktKIXRdGL0=";
+  };
+
+  checkInputs = [
+    dbus
+    dbus-python
+    pytest
+    pytestcov
+    pytest-asyncio
+    pytest-timeout
+  ];
+
+  # test_peer_interface hits a timeout
+  checkPhase = ''
+    dbus-run-session --config-file=${dbus.daemon}/share/dbus-1/session.conf \
+      ${python.interpreter} -m pytest -sv --cov=dbus_next \
+      -k "not test_peer_interface"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/altdesktop/python-dbus-next";
+    description = "A zero-dependency DBus library for Python with asyncio support";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sfrijters ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/dbus/default.nix b/nixpkgs/pkgs/development/python-modules/dbus/default.nix
index 855ee930b772..5d1fd9ef0be4 100644
--- a/nixpkgs/pkgs/development/python-modules/dbus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dbus/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "dbus-python";
-  version = "1.2.12";
+  version = "1.2.16";
   format = "other";
 
   outputs = [ "out" "dev" ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0q7jmldv0bxxqnbj63cd7i81vs6y85xys4r0n63z4n2y9wndxm6d";
+    sha256 = "196m5rk3qzw5nkmgzjl7wmq0v7vpwfhh8bz2sapdi5f9hqfqy8qi";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/ddt/default.nix b/nixpkgs/pkgs/development/python-modules/ddt/default.nix
index a660aaafca8a..f993c3844b85 100644
--- a/nixpkgs/pkgs/development/python-modules/ddt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ddt/default.nix
@@ -1,25 +1,28 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , fetchPypi
-, nose, six, pyyaml, mock
+, six, pyyaml, mock
+, pytestCheckHook
+, enum34
+, isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "ddt";
-  version = "1.2.2";
+  version = "1.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9f79cf234064cf9b43492b72da35c473de3f03163d37bd13cec5bd8d200dda6b";
+    sha256 = "0595e70d074e5777771a45709e99e9d215552fb1076443a25fad6b23d8bf38da";
   };
 
-  checkInputs = [ nose six pyyaml mock ];
+  checkInputs = [ six pyyaml mock pytestCheckHook ];
 
-  checkPhase = ''
-    nosetests -s
-  '';
+  propagatedBuildInputs = lib.optionals (!isPy3k) [
+    enum34
+  ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Data-Driven/Decorated Tests, a library to multiply test cases";
     homepage = "https://github.com/txels/ddt";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/debts/default.nix b/nixpkgs/pkgs/development/python-modules/debts/default.nix
new file mode 100644
index 000000000000..cc571f056314
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/debts/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, python
+, buildPythonPackage
+, fetchFromGitLab
+, isPy27
+, jinja2
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "debts";
+  version = "0.5";
+
+  # pypi does not ship tests
+  src = fetchFromGitLab {
+    domain = "framagit.org";
+    owner = "almet";
+    repo = "debts";
+    rev = "d887bd8b340172d1c9bbcca6426529b8d1c2a241"; # no tags
+    sha256 = "1d66nka81mv9c07mki78lp5hdajqv4cq6aq2k7bh3mhkc5hwnwlg";
+  };
+
+  disabled = isPy27;
+
+  propagatedBuildInputs = [ jinja2 ];
+
+  checkInputs = [ pytest ];
+
+  # for some reason tests only work if the module is properly installed
+  checkPhase = ''
+    rm -r debts
+    export PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
+    py.test tests
+  '';
+
+  meta = with lib; {
+    inherit (src.meta) homepage;
+    description = "A simple library and cli-tool to help you solve some debts settlement scenarios";
+    license = licenses.beerware;
+    maintainers = [ maintainers.symphorien ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/debugpy/default.nix b/nixpkgs/pkgs/development/python-modules/debugpy/default.nix
new file mode 100644
index 000000000000..2d11dee64a8b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/debugpy/default.nix
@@ -0,0 +1,68 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub
+, substituteAll, gdb
+, colorama, django, flask, gevent, psutil, pytest
+, pytest-timeout, pytest_xdist, requests
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "debugpy";
+  version = "1.0.0b12";
+
+  src = fetchFromGitHub {
+    owner = "Microsoft";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0sz33aq5qldl7kh4qjf5w3d08l9s77ipcj4i9wfklj8f6vf9w1wh";
+  };
+
+  patches = [
+    # Hard code GDB path (used to attach to process)
+    (substituteAll {
+      src = ./hardcode-gdb.patch;
+      inherit gdb;
+    })
+
+    # Fix importing debugpy in:
+    # - test_nodebug[module-launch(externalTerminal)]
+    # - test_nodebug[module-launch(integratedTerminal)]
+    #
+    # NOTE: The import failures seen in these tests without the patch
+    # will be seen if a user "installs" debugpy by adding it to PYTHONPATH.
+    # To avoid this issue, debugpy should be installed using python.withPackages:
+    # python.withPackages (ps: with ps; [ debugpy ])
+    ./fix-test-pythonpath.patch
+  ];
+
+  # Remove pre-compiled "attach" libraries and recompile for host platform
+  # Compile flags taken from linux_and_mac/compile_linux.sh & linux_and_mac/compile_mac.sh
+  preBuild = ''(
+    set -x
+    cd src/debugpy/_vendored/pydevd/pydevd_attach_to_process
+    rm *.so *.dylib *.dll *.exe *.pdb
+    ${stdenv.cc}/bin/c++ linux_and_mac/attach.cpp -Ilinux_and_mac -fPIC -nostartfiles ${{
+      "x86_64-linux"  = "-shared -m64 -o attach_linux_amd64.so";
+      "i686-linux"    = "-shared -m32 -o attach_linux_x86.so";
+      "x86_64-darwin" = "-std=c++11 -lc -D_REENTRANT -dynamiclib -arch x86_64 -o attach_x86_64.dylib";
+      "i686-darwin"   = "-std=c++11 -lc -D_REENTRANT -dynamiclib -arch i386 -o attach_x86.dylib";
+    }.${stdenv.hostPlatform.system}}
+  )'';
+
+  checkInputs = [
+    colorama django flask gevent psutil pytest
+    pytest-timeout pytest_xdist requests
+  ];
+
+  # Override default arguments in pytest.ini
+  checkPhase = "pytest --timeout 0 -n $NIX_BUILD_CORES"
+               # gevent fails to import zope.interface with Python 2.7
+               + stdenv.lib.optionalString isPy27 " -k 'not test_gevent'";
+
+  meta = with stdenv.lib; {
+    description = "An implementation of the Debug Adapter Protocol for Python";
+    homepage = "https://github.com/microsoft/debugpy";
+    license = licenses.mit;
+    maintainers = with maintainers; [ metadark ];
+    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "i686-darwin" ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/debugpy/fix-test-pythonpath.patch b/nixpkgs/pkgs/development/python-modules/debugpy/fix-test-pythonpath.patch
new file mode 100644
index 000000000000..751351e03cde
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/debugpy/fix-test-pythonpath.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/debug/session.py b/tests/debug/session.py
+index 2b39106..6d45a10 100644
+--- a/tests/debug/session.py
++++ b/tests/debug/session.py
+@@ -625,6 +625,7 @@ class Session(object):
+         if "PYTHONPATH" in self.config.env:
+             # If specified, launcher will use it in lieu of PYTHONPATH it inherited
+             # from the adapter when spawning debuggee, so we need to adjust again.
++            self.config.env.prepend_to("PYTHONPATH", os.environ["PYTHONPATH"])
+             self.config.env.prepend_to("PYTHONPATH", DEBUGGEE_PYTHONPATH.strpath)
+         return self._request_start("launch")
+ 
diff --git a/nixpkgs/pkgs/development/python-modules/debugpy/hardcode-gdb.patch b/nixpkgs/pkgs/development/python-modules/debugpy/hardcode-gdb.patch
new file mode 100644
index 000000000000..780cb1aed1c4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/debugpy/hardcode-gdb.patch
@@ -0,0 +1,13 @@
+diff --git a/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py b/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py
+index 6d031b4..ecf21f2 100644
+--- a/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py
++++ b/src/debugpy/_vendored/pydevd/pydevd_attach_to_process/add_code_to_python_process.py
+@@ -293,7 +293,7 @@ def run_python_code_linux(pid, python_code, connect_debugger_tracing=False, show
+     is_debug = 0
+     # Note that the space in the beginning of each line in the multi-line is important!
+     cmd = [
+-        'gdb',
++        '@gdb@/bin/gdb',
+         '--nw',  # no gui interface
+         '--nh',  # no ~/.gdbinit
+         '--nx',  # no .gdbinit
diff --git a/nixpkgs/pkgs/development/python-modules/decorator/default.nix b/nixpkgs/pkgs/development/python-modules/decorator/default.nix
index b9e8e25ac437..8e8fd28f0b54 100644
--- a/nixpkgs/pkgs/development/python-modules/decorator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/decorator/default.nix
@@ -1,25 +1,17 @@
 { lib
 , buildPythonPackage
-, fetchpatch
 , fetchPypi
 }:
 
 buildPythonPackage rec {
   pname = "decorator";
-  version = "4.4.1";
+  version = "4.4.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "54c38050039232e1db4ad7375cfce6748d7b41c29e95a081c8a6d2c30364a2ce";
+    sha256 = "1rxzhk5zwiggk45hl53zydvy70lk654kg0nc1p54090p402jz9p3";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/micheles/decorator/commit/3265f2755d16c0a3dfc9f1feee39722ddc11ee80.patch";
-      sha256 = "1q5nmff30vccqq5swf2ivm8cn7x3lhz8c9qpj0zddgs2y7fw8syz";
-    })
-  ];
-
   meta = with lib; {
     homepage = "https://pypi.python.org/pypi/decorator";
     description = "Better living through Python with decorators";
diff --git a/nixpkgs/pkgs/development/python-modules/deepdiff/default.nix b/nixpkgs/pkgs/development/python-modules/deepdiff/default.nix
index 64d82e17466e..e8d2731eb559 100644
--- a/nixpkgs/pkgs/development/python-modules/deepdiff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deepdiff/default.nix
@@ -3,6 +3,7 @@
 , fetchPypi
 , mock
 , jsonpickle
+, mmh3
 , ordered-set
 , numpy
 , pytestCheckHook
@@ -10,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "deepdiff";
-  version = "4.0.9";
+  version = "5.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5e2343398e90538edaa59c0c99207e996a3a834fdc878c666376f632a760c35a";
+    sha256 = "e2b74af4da0ef9cd338bb6e8c97242c1ec9d81fcb28298d7bb24acdc19ea79d7";
   };
 
   # # Extra packages (may not be necessary)
@@ -24,14 +25,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = [
-    # skipped tests require murmur module
-    "test_prep_str_murmur3_64bit"
-    "test_prep_str_murmur3_128bit"
-  ];
-
   propagatedBuildInputs = [
     jsonpickle
+    mmh3
     ordered-set
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/deepmerge/default.nix b/nixpkgs/pkgs/development/python-modules/deepmerge/default.nix
new file mode 100644
index 000000000000..1cdf0449c68c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/deepmerge/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, vcver }:
+
+buildPythonPackage rec {
+  pname = "deepmerge";
+  version = "0.1.0";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0d1ab9lxwymqxxd58j50id1wib48xym3ss5xw172i2jfwwwzfdrx";
+  };
+
+  propagatedBuildInputs = [
+    vcver
+  ];
+
+  # depends on https://pypi.org/project/uranium/
+  doCheck = false;
+
+  pythonImportsCheck = [ "deepmerge" ];
+
+  meta = with lib; {
+    description = "A toolset to deeply merge python dictionaries.";
+    homepage = "http://deepmerge.readthedocs.io/en/latest/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/defcon/default.nix b/nixpkgs/pkgs/development/python-modules/defcon/default.nix
new file mode 100644
index 000000000000..25c590299922
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/defcon/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, fonttools
+, pytest, pytestrunner, lxml, fs, unicodedata2, fontpens
+}:
+
+buildPythonPackage rec {
+  pname = "defcon";
+  version = "0.7.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1lfqsvxmq1j0nvp26gidnqkj1dyxv7jalc6i7fz1r3nc7niflrqr";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [
+    fonttools
+  ];
+
+  checkInputs = [
+    pytest
+    pytestrunner
+    lxml
+    fs
+    unicodedata2
+    fontpens
+  ];
+
+  meta = with lib; {
+    description = "A set of UFO based objects for use in font editing applications";
+    homepage = "https://github.com/robotools/defcon";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/deform/default.nix b/nixpkgs/pkgs/development/python-modules/deform/default.nix
index 8ede226d38b2..a3fd0f2b8f53 100644
--- a/nixpkgs/pkgs/development/python-modules/deform/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deform/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "deform";
-  version = "2.0.8";
+  version = "2.0.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8936b70c622406eb8c8259c88841f19eb2996dffcf2bac123126ada851da7271";
+    sha256 = "2f4e98a5b5bdcdfff9a62f88bd17c7ee378b7c8be61738797442eed5b961d3d2";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/deluge-client/default.nix b/nixpkgs/pkgs/development/python-modules/deluge-client/default.nix
index 127fe07f3736..8a2bdee1d922 100644
--- a/nixpkgs/pkgs/development/python-modules/deluge-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/deluge-client/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "deluge-client";
-  version = "1.8.0";
+  version = "1.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4eac169b4b08008cacf4e5e26e82302a7ccd43c07846d1a1228f3e271a128de2";
+    sha256 = "0d2f12108a147d44590c8df63997fcb32f8b2fbc18f8cbb221f0136e2e372b85";
   };
 
   # it will try to connect to a running instance
diff --git a/nixpkgs/pkgs/development/python-modules/denonavr/default.nix b/nixpkgs/pkgs/development/python-modules/denonavr/default.nix
index 643556d8793e..58099a98bdcb 100644
--- a/nixpkgs/pkgs/development/python-modules/denonavr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/denonavr/default.nix
@@ -1,18 +1,18 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy27, requests
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27, requests, netifaces
 , pytest, testtools, requests-mock }:
 
 buildPythonPackage rec {
   pname = "denonavr";
-  version = "0.8.1";
+  version = "0.9.3";
 
   src = fetchFromGitHub {
     owner = "scarface-4711";
     repo = "denonavr";
     rev = version;
-    sha256 = "12g9w5674fmyf3f4plbhvpxpyhzw32pzwl0hvwswzrc2823xl6vx";
+    sha256 = "0s8v918n6xn44r2mrq5hqbf0znpz64clq7a1jakkgz9py8bi6vnn";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [ requests netifaces ];
 
   doCheck = !isPy27;
   checkInputs = [ pytest testtools requests-mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/dependency-injector/default.nix b/nixpkgs/pkgs/development/python-modules/dependency-injector/default.nix
index 121175c50857..1a90462a245f 100644
--- a/nixpkgs/pkgs/development/python-modules/dependency-injector/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dependency-injector/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, six, unittest2 }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy3k, six, unittest2, pyyaml, flask }:
 
 let
   testPath =
@@ -9,15 +9,15 @@ in
 
 buildPythonPackage rec {
   pname = "dependency-injector";
-  version = "3.14.12";
+  version = "3.30.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c0b593d30a9dcafd71459075fac14ccf52fcefa2094d5062dfc2e174c469dc03";
+    sha256 = "717388a9346883eb5def3e96def7275763f2a607cac48c272f352e3834e0bd0d";
   };
 
   propagatedBuildInputs = [ six ];
-  checkInputs = [ unittest2 ];
+  checkInputs = [ unittest2 pyyaml flask ];
 
   checkPhase = ''
     unit2 discover -s tests/unit -p "${testPath}"
diff --git a/nixpkgs/pkgs/development/python-modules/detox/default.nix b/nixpkgs/pkgs/development/python-modules/detox/default.nix
deleted file mode 100644
index 5353d4361e35..000000000000
--- a/nixpkgs/pkgs/development/python-modules/detox/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ stdenv, buildPythonPackage, fetchPypi
-, pytest, tox, py, eventlet }:
-
-buildPythonPackage rec {
-  pname = "detox";
-  version = "0.19";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "e650f95f0c7f5858578014b3b193e5dac76c89285c1bbe4bae598fd641bf9cd3";
-  };
-
-  buildInputs = [ pytest ];
-  propagatedBuildInputs = [ tox py eventlet ];
-
-  checkPhase = ''
-    py.test
-  '';
-
-  # eventlet timeout, and broken invokation 3.5
-  doCheck = false;
-
-  meta = with stdenv.lib; {
-    description = "What is detox?";
-    homepage = "https://bitbucket.org/hpk42/detox";
-    license = licenses.mit;
-    # detox is unmaintained and incompatible with tox > 3.6
-    broken = true;
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/devpi-common/default.nix b/nixpkgs/pkgs/development/python-modules/devpi-common/default.nix
index 25d9353e155e..ac83c0dd938d 100644
--- a/nixpkgs/pkgs/development/python-modules/devpi-common/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/devpi-common/default.nix
@@ -3,18 +3,23 @@
 , py
 , pytest
 , pytest-flake8
+, lazy
 }:
 
 buildPythonPackage rec {
   pname = "devpi-common";
-  version = "3.4.0";
+  version = "3.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1pfl29pnfn120rqv3zwxc22i1hyywwg60rcck9hzxsllbhmfbjqh";
+    sha256 = "4f1eb1bf85a5dabd4f4ecc11ad99588e01cc204989a9f424c2dbe5809c6c3745";
   };
 
-  propagatedBuildInputs = [ requests py ];
+  propagatedBuildInputs = [
+    requests
+    py
+    lazy
+  ];
   checkInputs = [ pytest pytest-flake8 ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/tools/security/diceware/default.nix b/nixpkgs/pkgs/development/python-modules/diceware/default.nix
index f32d63cfc10d..8e35eabfb0d7 100644
--- a/nixpkgs/pkgs/tools/security/diceware/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/diceware/default.nix
@@ -1,10 +1,10 @@
-{ lib
-, python3Packages
+{ lib, buildPythonPackage, fetchPypi
+, pytestrunner
+, setuptools
+, coverage, pytest
 }:
 
-with python3Packages;
-
-buildPythonApplication rec {
+buildPythonPackage rec {
   pname = "diceware";
   version = "0.9.6";
 
diff --git a/nixpkgs/pkgs/development/python-modules/diff-match-patch/default.nix b/nixpkgs/pkgs/development/python-modules/diff-match-patch/default.nix
index ba33eeda386e..3e05deb5e2d3 100644
--- a/nixpkgs/pkgs/development/python-modules/diff-match-patch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/diff-match-patch/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "diff-match-patch";
-  version = "20181111";
+  version = "20200713";
 
   meta = {
     homepage = "https://github.com/diff-match-patch-python/diff-match-patch";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a809a996d0f09b9bbd59e9bbd0b71eed8c807922512910e05cbd3f9480712ddb";
+    sha256 = "da6f5a01aa586df23dfc89f3827e1cafbb5420be9d87769eeb079ddfd9477a18";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/diff_cover/default.nix b/nixpkgs/pkgs/development/python-modules/diff_cover/default.nix
index 3058f3e40091..9f96c7644dfb 100644
--- a/nixpkgs/pkgs/development/python-modules/diff_cover/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/diff_cover/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "diff_cover";
-  version = "2.6.1";
+  version = "3.0.1";
 
   preCheck = ''
     export LC_ALL=en_US.UTF-8;
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0a6ylkfqr95awp6za0var0nysmnbgwn46np8cmi1bkldil2407lz";
+    sha256 = "13768c8bc755dd8e1184ce79b95bbc8115ea566282f4b06efbeca72a4d00427b";
   };
 
   propagatedBuildInputs = [ jinja2 jinja2_pluralize pygments six inflect ];
diff --git a/nixpkgs/pkgs/development/python-modules/dipy/default.nix b/nixpkgs/pkgs/development/python-modules/dipy/default.nix
index 939f0912fe1f..a1360ada2257 100644
--- a/nixpkgs/pkgs/development/python-modules/dipy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dipy/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "dipy";
-  version = "1.1.1";
+  version = "1.2.0";
 
   disabled = isPy27;
 
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner  = "dipy";
     repo   = pname;
     rev    = version;
-    sha256 = "08abx0f4li6ya62ilc59miw4mk6wndizahyylxhgcrpacb6ydw28";
+    sha256 = "0x49lph400ndlvk419nd2g9ss4jg75xr7xh88ggv5d2ama19v7py";
   };
 
   nativeBuildInputs = [ cython packaging ];
diff --git a/nixpkgs/pkgs/development/python-modules/discogs_client/default.nix b/nixpkgs/pkgs/development/python-modules/discogs_client/default.nix
index c39bede9e093..8d8fb12d4d9b 100644
--- a/nixpkgs/pkgs/development/python-modules/discogs_client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/discogs_client/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "discogs-client";
-  version = "2.2.2";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1n23xy33fdp3dq0hhfdg0lx4z7rhdi74ik8v1mc7rql1jbxl7bmf";
+    sha256 = "cc979fcbb5283f74d388c7111c8ed6bef920b01614a014d6b1c5d6fbb554bfc3";
   };
 
   propagatedBuildInputs = [ requests oauthlib ];
diff --git a/nixpkgs/pkgs/development/python-modules/discordpy/default.nix b/nixpkgs/pkgs/development/python-modules/discordpy/default.nix
index 47419ec559e0..fd31bb40a92c 100644
--- a/nixpkgs/pkgs/development/python-modules/discordpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/discordpy/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "discord.py";
-  version = "1.3.3";
+  version = "1.3.4";
   disabled = pythonOlder "3.5.3";
 
   # only distributes wheels on pypi now
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "Rapptz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ld92vh7kjk3f02nbqyib68844yi4p2kmkyir6v9wi00y1l287l3";
+    sha256 = "1i4h6vq681x8s05wi0n3ykavsxjh9hxdxn6banwjcqzhxzkyhsxi";
   };
 
   propagatedBuildInputs = [ aiohttp websockets ];
diff --git a/nixpkgs/pkgs/development/python-modules/distlib/default.nix b/nixpkgs/pkgs/development/python-modules/distlib/default.nix
index b9a92fb2cdbe..af9b82e42dc3 100644
--- a/nixpkgs/pkgs/development/python-modules/distlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/distlib/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "distlib";
-  version = "0.3.0";
+  version = "0.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "08fyi2r246733vharl2yckw20rilci28r91mzrnnvcr638inw5if";
+    sha256 = "edf6116872c863e1aa9d5bb7cb5e05a022c519a4594dc703843343a9ddd9bff1";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/distributed/default.nix b/nixpkgs/pkgs/development/python-modules/distributed/default.nix
index 1104834d879e..91f6f06f6d94 100644
--- a/nixpkgs/pkgs/development/python-modules/distributed/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/distributed/default.nix
@@ -23,23 +23,26 @@
 , singledispatch
 , mpi4py
 , bokeh
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "distributed";
-  version = "2.9.3";
+  version = "2.23.0";
 
   # get full repository need conftest.py to run tests
   src = fetchPypi {
     inherit pname version;
-    sha256 = "70e29fed075270df4ca7dda2b26a79523b753fe90fb278b2a7d6b0290ba53d9a";
+    sha256 = "469e505fd7ce75f600188bdb69a95641899d5b372f74246c8f308376b6929e9c";
   };
 
+  disabled = pythonOlder "3.6";
+
   checkInputs = [ pytest pytest-repeat pytest-timeout mock joblib ];
   propagatedBuildInputs = [
       click cloudpickle dask msgpack psutil six
       sortedcontainers tblib toolz tornado zict pyyaml mpi4py bokeh
-  ] ++ lib.optionals (!isPy3k) [ futures singledispatch ];
+  ];
 
   # tests take about 10-15 minutes
   # ignore 5 cli tests out of 1000 total tests that fail due to subprocesses
diff --git a/nixpkgs/pkgs/development/python-modules/distro/default.nix b/nixpkgs/pkgs/development/python-modules/distro/default.nix
index 8880ec7235dc..cee4e6deb38a 100644
--- a/nixpkgs/pkgs/development/python-modules/distro/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/distro/default.nix
@@ -1,23 +1,18 @@
-{ stdenv, fetchPypi, buildPythonPackage, pytest, pytestcov }:
+{ stdenv, fetchPypi, buildPythonPackage }:
 
 buildPythonPackage rec {
   pname = "distro";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mrg75w4ap7mdzyga75yaid9n8bgb345ih5mwjp3plj6v1jxwb9n";
+    sha256 = "0e58756ae38fbd8fc3020d54badb8eae17c5b9dcbed388b17bb55b8a5928df92";
   };
 
-  # TODO: Enable more tests on NixOS (20 out of 173 are failing, 10 due to the
-  # missing lsb_release binary):
-  patches = [ ./nixos.patch ];
+  # tests are very targeted at individual linux distributions
+  doCheck = false;
 
-  checkInputs = [ pytest pytestcov ];
-
-  checkPhase = ''
-    py.test
-  '';
+  pythonImportcheck = [ "distro" ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/nir0s/distro";
diff --git a/nixpkgs/pkgs/development/python-modules/distro/nixos.patch b/nixpkgs/pkgs/development/python-modules/distro/nixos.patch
deleted file mode 100644
index 21aa4827b635..000000000000
--- a/nixpkgs/pkgs/development/python-modules/distro/nixos.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/tests/test_distro.py b/tests/test_distro.py
-index 5521068..4e1bab8 100644
---- a/tests/test_distro.py
-+++ b/tests/test_distro.py
-@@ -432,7 +432,7 @@ class TestOSRelease:
-         self._test_outcome(desired_outcome)
- 
- 
--@pytest.mark.skipif(not IS_LINUX, reason='Irrelevant on non-linux')
-+@pytest.mark.skip(reason='lsb_release is not available and would return exit code 3')
- class TestLSBRelease(DistroTestCase):
- 
-     def setup_method(self, test_method):
-@@ -919,7 +919,7 @@ class TestDistroRelease:
-         self._test_outcome(desired_outcome, 'cloudlinux', '7', 'redhat')
- 
- 
--@pytest.mark.skipif(not IS_LINUX, reason='Irrelevant on non-linux')
-+@pytest.mark.skip(reason='Unknown (TODO)')
- class TestOverall(DistroTestCase):
-     """Test a LinuxDistribution object created with default arguments.
- 
-@@ -1618,7 +1618,7 @@ def _bad_os_listdir(path='.'):
-     raise OSError()
- 
- 
--@pytest.mark.skipIf(not IS_LINUX, reason='Irrelevant on non-linx')
-+@pytest.mark.skip(reason='Unknown (TODO)')
- class TestOverallWithEtcNotReadable(TestOverall):
-     def setup_method(self, test_method):
-         self._old_listdir = os.listdir
diff --git a/nixpkgs/pkgs/development/python-modules/dj-email-url/default.nix b/nixpkgs/pkgs/development/python-modules/dj-email-url/default.nix
index cd01ddf1e823..711eee059caa 100644
--- a/nixpkgs/pkgs/development/python-modules/dj-email-url/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dj-email-url/default.nix
@@ -5,12 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.2.0";
+  version = "1.0.1";
   pname = "dj-email-url";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0362e390c17cc377f03bcbf6daf3f671797c929c1bf78a9f439d78f215ebe3fd";
+    sha256 = "32dc567c5cc3d4106710ec36dd645c8c1b20e2d8f588a17ab88bcc23e347d00a";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/django-auth-ldap/default.nix b/nixpkgs/pkgs/development/python-modules/django-auth-ldap/default.nix
index 9f50a7ea22b9..84b9df28bce6 100644
--- a/nixpkgs/pkgs/development/python-modules/django-auth-ldap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-auth-ldap/default.nix
@@ -1,21 +1,21 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi, isPy27
-, ldap , django 
+, ldap , django
 , mock
 }:
 
 buildPythonPackage rec {
   pname = "django-auth-ldap";
-  version = "2.1.1";
+  version = "2.2.0";
   disabled = isPy27;
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1j1fwinbkr4khn9i869r22jfdgw2kli0jqrz5shyd36jllsvrfzs";
+    sha256 = "11af1773b08613339d2c3a0cec1308a4d563518f17b1719c3759994d0b4d04bf";
   };
 
-  propagatedBuildInputs = [ ldap django ]; 
-  checkInputs = [ mock ]; 
+  propagatedBuildInputs = [ ldap django ];
+  checkInputs = [ mock ];
 
   # django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/django-cache-url/default.nix b/nixpkgs/pkgs/development/python-modules/django-cache-url/default.nix
index 6c5ac1039125..6abe92c43f76 100644
--- a/nixpkgs/pkgs/development/python-modules/django-cache-url/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-cache-url/default.nix
@@ -5,12 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "3.0.0";
+  version = "3.1.2";
   pname = "django-cache-url";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "235950e2d7cb16164082167c2974301e2f0fb2313d40bfacc9d24f5b09c3514b";
+    sha256 = "d0ee0d6c5daab92787bff47a4a6f5a6cf97c3c80d81a990820b2af16e12ad65a";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/django-cleanup/default.nix b/nixpkgs/pkgs/development/python-modules/django-cleanup/default.nix
index 37b0959b6b75..bb933fd0343a 100644
--- a/nixpkgs/pkgs/development/python-modules/django-cleanup/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-cleanup/default.nix
@@ -4,10 +4,10 @@
 
 buildPythonPackage rec {
   pname = "django-cleanup";
-  version = "4.0.0";
+  version = "5.0.0";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "195hkany3iwg4wb4cbdrdmanxcahjl87n8v03dbamanx2ya3yb21";
+    sha256 = "84f0c0e0a74545adae4c944a76ccf8fb0c195dddccf3b7195c59267abb7763dd";
   };
 
   checkInputs = [ django ];
diff --git a/nixpkgs/pkgs/development/python-modules/django-cors-headers/default.nix b/nixpkgs/pkgs/development/python-modules/django-cors-headers/default.nix
index 879e73c11e22..3614114a3d4b 100644
--- a/nixpkgs/pkgs/development/python-modules/django-cors-headers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-cors-headers/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "django-cors-headers";
-  version = "3.2.1";
+  version = "3.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a5960addecc04527ab26617e51b8ed42f0adab4594b24bb0f3c33e2bd3857c3f";
+    sha256 = "f5218f2f0bb1210563ff87687afbf10786e080d8494a248e705507ebd92d7153";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/nixpkgs/pkgs/development/python-modules/django-dynamic-preferences/default.nix b/nixpkgs/pkgs/development/python-modules/django-dynamic-preferences/default.nix
index d18f5924fdcc..de3424c9fec5 100644
--- a/nixpkgs/pkgs/development/python-modules/django-dynamic-preferences/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-dynamic-preferences/default.nix
@@ -4,14 +4,14 @@
 
 buildPythonPackage rec {
   pname = "django-dynamic-preferences";
-  version = "1.8.1";
+  version = "1.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "727f71f865ff29df93c01a0a1686af0dca19776ee786f876ea0ae7e062719b24";
+    sha256 = "e4b2bb7b2563c5064ba56dd76441c77e06b850ff1466a386a1cd308909a6c7de";
   };
 
-  propagatedBuildInputs = [ six django persisting-theory ]; 
+  propagatedBuildInputs = [ six django persisting-theory ];
 
   # django.core.exceptions.ImproperlyConfigured: Requested setting DYNAMIC_PREFERENCES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/django-extensions/default.nix b/nixpkgs/pkgs/development/python-modules/django-extensions/default.nix
index 08b2460b1bbc..ecf400b21d86 100644
--- a/nixpkgs/pkgs/development/python-modules/django-extensions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-extensions/default.nix
@@ -18,13 +18,13 @@
 
 buildPythonPackage rec {
   pname = "django-extensions";
-  version = "2.2.8";
+  version = "3.0.8";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "1gd3nykwzh3azq1p9cvgkc3l5dwrv7y86sfjxd9llbyj8ky71iaj";
+    sha256 = "1z2si9wpc8irqhi5i2wp4wr05dqxyw4mn2vj3amp0rvsvydws92c";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/nixpkgs/pkgs/development/python-modules/django-filter/default.nix b/nixpkgs/pkgs/development/python-modules/django-filter/default.nix
index 496ccd268f95..2079d336737d 100644
--- a/nixpkgs/pkgs/development/python-modules/django-filter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-filter/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "django-filter";
-  version = "2.2.0";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "057xiijig8r2nxrd9gj1nki168422rsh8ap5vkbr9zyp1mzvbpn3";
+    sha256 = "11e63dd759835d9ba7a763926ffb2662cf8a6dcb4c7971a95064de34dbc7e5af";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/nixpkgs/pkgs/development/python-modules/django-ipware/default.nix b/nixpkgs/pkgs/development/python-modules/django-ipware/default.nix
index 4049f8722fcb..940bd1f1cb83 100644
--- a/nixpkgs/pkgs/development/python-modules/django-ipware/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-ipware/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "django-ipware";
-  version = "2.1.0";
+  version = "3.0.1";
 
   meta = {
     description = "A Django application to retrieve user's IP address";
@@ -12,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a7c7a8fd019dbdc9c357e6e582f65034e897572fc79a7e467674efa8aef9d00b";
+    sha256 = "73a640a5bff00aa7503a35e92e462001cfabb07d73d649c262f117423beee953";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/nixpkgs/pkgs/development/python-modules/django-jinja2/default.nix b/nixpkgs/pkgs/development/python-modules/django-jinja2/default.nix
index 7b49ddb53999..97a9608cff73 100644
--- a/nixpkgs/pkgs/development/python-modules/django-jinja2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-jinja2/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "django-jinja";
-  version = "2.4.1";
+  version = "2.6.0";
 
   meta = {
     description = "Simple and nonobstructive jinja2 integration with Django";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8a49d73de616a12075eee14c6d3bbab936261a463457d40348d8b8e2995cfbed";
+    sha256 = "7459985c25ddb6584c6bab345761c8c5557713448e6fbb322af1b6dd7f5512bd";
   };
 
   buildInputs = [ django pytz tox ];
diff --git a/nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix b/nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix
index 479251ed003b..0ae3c422997c 100644
--- a/nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-mailman3/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "django-mailman3";
-  version = "1.3.3";
+  version = "1.3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1q9ciy2yawgvbha5kwlzwdmdqvas287dc0i60ygp2799jnfr5dr6";
+    sha256 = "7e37b68bb47e9ae196ca19018f576e2c8c90189c5bd82d4e549d0c2f2f3f35fb";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/django-maintenance-mode/default.nix b/nixpkgs/pkgs/development/python-modules/django-maintenance-mode/default.nix
new file mode 100644
index 000000000000..2e433aa5d459
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/django-maintenance-mode/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, buildPythonPackage, pytest, django }:
+
+buildPythonPackage rec {
+  pname = "django-maintenance-mode";
+  version = "0.14.0";
+
+  src = fetchFromGitHub {
+    owner = "fabiocaccamo";
+    repo = pname;
+    rev = version;
+    sha256 = "1k06fhqd8wyrkp795x5j2r328l2phqgg1m1qm7fh4l2qrha43aw6";
+  };
+
+  checkInputs = [ pytest ];
+
+  propagatedBuildInputs = [ django ];
+
+  meta = with stdenv.lib; {
+    description = "Shows a 503 error page when maintenance-mode is on";
+    homepage = "https://github.com/fabiocaccamo/django-maintenance-mode";
+    maintainers = with maintainers; [ mrmebelman ];
+    license = licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/django-multiselectfield/default.nix b/nixpkgs/pkgs/development/python-modules/django-multiselectfield/default.nix
index 3561f1d8c1cc..046c60989a74 100644
--- a/nixpkgs/pkgs/development/python-modules/django-multiselectfield/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-multiselectfield/default.nix
@@ -23,4 +23,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/goinnn/django-multiselectfield";
     license = lib.licenses.lgpl3;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/django-picklefield/default.nix b/nixpkgs/pkgs/development/python-modules/django-picklefield/default.nix
index 90772b503af5..4710de2c7ecb 100644
--- a/nixpkgs/pkgs/development/python-modules/django-picklefield/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-picklefield/default.nix
@@ -1,16 +1,27 @@
-{ lib, buildPythonPackage, fetchPypi, django }:
+{ lib, buildPythonPackage, fetchFromGitHub, django, pytest, pytest-django }:
 
 buildPythonPackage rec {
   pname = "django-picklefield";
-  version = "2.1.1";
+  version = "3.0.1";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0imncys5s3vsy2q79nn7k5d670da1xgmcr9gmhn06fry6ibf39b7";
+  # The PyPi source doesn't contain tests
+  src = fetchFromGitHub {
+    owner = "gintas";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0ni7bc86k0ra4pc8zv451pzlpkhs1nyil1sq9jdb4m2mib87b5fk";
   };
 
   propagatedBuildInputs = [ django ];
 
+  checkInputs = [ pytest pytest-django ];
+
+  checkPhase = ''
+    PYTHONPATH="$(pwd):$PYTHONPATH" \
+    DJANGO_SETTINGS_MODULE=tests.settings \
+      pytest tests/tests.py
+  '';
+
   meta = {
     description = "A pickled object field for Django";
     homepage = "https://github.com/gintas/django-picklefield";
diff --git a/nixpkgs/pkgs/development/python-modules/django-q/default.nix b/nixpkgs/pkgs/development/python-modules/django-q/default.nix
index 89a883482440..a81aa2a63cd3 100644
--- a/nixpkgs/pkgs/development/python-modules/django-q/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-q/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "django-q";
-  version = "1.0.2";
+  version = "1.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "70081f58c6d78748d8664acbf028fb641687c36df38d3d31e9f1b6fcfac1079f";
+    sha256 = "de7077660ede36bfdd89ab9405d6393b598bb3e0bfed61f59a0a9074cc4942bb";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/django-raster/default.nix b/nixpkgs/pkgs/development/python-modules/django-raster/default.nix
index 03310afa0279..056f8dffdcfc 100644
--- a/nixpkgs/pkgs/development/python-modules/django-raster/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-raster/default.nix
@@ -6,14 +6,14 @@ if stdenv.lib.versionOlder django.version "2.0"
 then throw "django-raster requires Django >= 2.0. Consider overiding the python package set to use django_2."
 else
 buildPythonPackage rec {
-  version = "0.7";
+  version = "0.8";
   pname = "django-raster";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d23089d56f5f435c01a001af6f8ff7905636f87085b13035b4c5b3ace203d98a";
+    sha256 = "9417d8a17930dffee4719f79a38c6ab5d20ac7145d4edf88df0abcb5a360de51";
   };
 
   # Tests require a postgresql + postgis server
diff --git a/nixpkgs/pkgs/development/python-modules/django-sampledatahelper/default.nix b/nixpkgs/pkgs/development/python-modules/django-sampledatahelper/default.nix
index edeb914946e3..faad550d4391 100644
--- a/nixpkgs/pkgs/development/python-modules/django-sampledatahelper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-sampledatahelper/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "django-sampledatahelper";
-  version = "0.4.1";
+  version = "0.5";
 
   meta = {
     description = "Helper class for generate sample data for django apps development";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1795zg73lajcsfyd8i8cprb2v93d4csifjnld6bfnya90ncsbl4n";
+    sha256 = "3fbc5533f1055f9d1944097f6271e8b18fcf4ed5cc582b518616445145300015";
   };
 
   buildInputs = [ django nose pillow sampledata six versiontools ];
diff --git a/nixpkgs/pkgs/development/python-modules/django-versatileimagefield/default.nix b/nixpkgs/pkgs/development/python-modules/django-versatileimagefield/default.nix
index 4eb9a8da773e..de5854192d20 100644
--- a/nixpkgs/pkgs/development/python-modules/django-versatileimagefield/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django-versatileimagefield/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "django-versatileimagefield";
-  version = "1.11";
+  version = "2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8322ee9d7bf5ffa5360990320d2cc2efc7017feff35422636d49f625721edf82";
+    sha256 = "b197e7066f23bb73b001a61525f2b1cae3dd654bf208a944a7ff5a3fe6107b51";
   };
   propagatedBuildInputs = [ pillow python_magic ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/django-widget-tweaks/default.nix b/nixpkgs/pkgs/development/python-modules/django-widget-tweaks/default.nix
new file mode 100644
index 000000000000..99e3abda890a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/django-widget-tweaks/default.nix
@@ -0,0 +1,25 @@
+{ buildPythonPackage, fetchFromGitHub, python, stdenv, django }:
+
+buildPythonPackage rec {
+  pname = "django-widget-tweaks";
+  version = "1.4.8";
+
+  src = fetchFromGitHub { # package from Pypi missing runtests.py
+    owner = "jazzband";
+    repo = pname;
+    rev = version;
+    sha256 = "00w1ja56dc7cyw7a3mph69ax6mkch1lsh4p98ijdhzfpjdy36rbg";
+  };
+
+  checkPhase = "${python.interpreter} runtests.py";
+  propagatedBuildInputs = [ django ];
+
+  meta = with stdenv.lib; {
+      description = "Tweak the form field rendering in templates, not in python-level form definitions.";
+      homepage = "https://github.com/jazzband/django-widget-tweaks";
+      license = licenses.mit;
+      maintainers = with maintainers; [
+          maxxk
+      ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/django/1_11.nix b/nixpkgs/pkgs/development/python-modules/django/1_11.nix
deleted file mode 100644
index b38962f4efaf..000000000000
--- a/nixpkgs/pkgs/development/python-modules/django/1_11.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, buildPythonPackage, fetchurl, substituteAll,
-  geos, gdal, pytz,
-  withGdal ? false
-}:
-
-buildPythonPackage rec {
-  pname = "Django";
-  version = "1.11.28";
-
-  src = fetchurl {
-    url = "https://www.djangoproject.com/m/releases/1.11/${pname}-${version}.tar.gz";
-    sha256 = "1ss1jyip7mlbfjn27m0j6wx80s8h4ksg6g5annkgwigp8xgy6g5k";
-  };
-
-  patches = stdenv.lib.optionals withGdal [
-    (substituteAll {
-      src = ./1.10-gis-libs.template.patch;
-      geos = geos;
-      gdal = gdal;
-      extension = stdenv.hostPlatform.extensions.sharedLibrary;
-    })
-  ];
-
-  propagatedBuildInputs = [ pytz ];
-
-  # too complicated to setup
-  doCheck = false;
-
-  meta = with stdenv.lib; {
-    description = "A high-level Python Web framework";
-    homepage = "https://www.djangoproject.com/";
-    license = licenses.bsd3;
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/django/2_2.nix b/nixpkgs/pkgs/development/python-modules/django/2_2.nix
index 42af34659c0f..3a88f0703d06 100644
--- a/nixpkgs/pkgs/development/python-modules/django/2_2.nix
+++ b/nixpkgs/pkgs/development/python-modules/django/2_2.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "Django";
-  version = "2.2.13";
+  version = "2.2.16";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "103db5gmny6bkq9jgr2m6gdfy1n29bj2v87184y1zgpdmkv71ww4";
+    sha256 = "1535g2r322cl4x52fb0dmzlbg23539j2wx6027j54p22xvjlbkv2";
   };
 
   patches = stdenv.lib.optional withGdal
diff --git a/nixpkgs/pkgs/development/python-modules/django_evolution/default.nix b/nixpkgs/pkgs/development/python-modules/django_evolution/default.nix
index 7d53d4580430..eac119ef01ea 100644
--- a/nixpkgs/pkgs/development/python-modules/django_evolution/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_evolution/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "django_evolution";
-  version = "0.7.8";
+  version = "2.0";
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "493ff2adad760990ce8cf87c13955af85d4dcff097427bc3619ed01672fac4a8";
+    sha256 = "a0bc983657de1b0bc5c8d29ddcbf7b6fb113685bf306ccc266cf22b8a77bd862";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/nixpkgs/pkgs/development/python-modules/django_guardian/default.nix b/nixpkgs/pkgs/development/python-modules/django_guardian/default.nix
index e276c6b656bb..364a5e12f52f 100644
--- a/nixpkgs/pkgs/development/python-modules/django_guardian/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_guardian/default.nix
@@ -4,11 +4,11 @@
 }:
 buildPythonPackage rec {
   pname = "django-guardian";
-  version = "2.1.0";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8cf4efd67a863eb32beafd4335a38ffb083630f8ab2045212d27f8f9c3abe5a6";
+    sha256 = "ed2de26e4defb800919c5749fb1bbe370d72829fbd72895b6cf4f7f1a7607e1b";
   };
 
   checkInputs = [ pytest pytestrunner pytest-django django_environ mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/django_nose/default.nix b/nixpkgs/pkgs/development/python-modules/django_nose/default.nix
index 5d3522c5b47f..66a4ad7857b9 100644
--- a/nixpkgs/pkgs/development/python-modules/django_nose/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_nose/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "django-nose";
-  version = "1.4.6";
+  version = "1.4.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01wah0ci5xdpiikash68x6lprxlvnkxg72ly9kjrc9lklq34m4sq";
+    sha256 = "a4885cd002d65fd2de96e2bb2563ef477c3fbe207009360c015fca5c3b5561b7";
   };
 
   # vast dependency list
diff --git a/nixpkgs/pkgs/development/python-modules/django_redis/default.nix b/nixpkgs/pkgs/development/python-modules/django_redis/default.nix
index 26fb504e0e99..114962477fd6 100644
--- a/nixpkgs/pkgs/development/python-modules/django_redis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_redis/default.nix
@@ -2,11 +2,11 @@
   mock, django, redis, msgpack }:
 buildPythonPackage rec {
   pname = "django-redis";
-  version = "4.11.0";
+  version = "4.12.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a5b1e3ffd3198735e6c529d9bdf38ca3fcb3155515249b98dc4d966b8ddf9d2b";
+    sha256 = "306589c7021e6468b2656edc89f62b8ba67e8d5a1c8877e2688042263daa7a63";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/django_silk/default.nix b/nixpkgs/pkgs/development/python-modules/django_silk/default.nix
index 95a991f34178..8efd62d7d181 100644
--- a/nixpkgs/pkgs/development/python-modules/django_silk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_silk/default.nix
@@ -23,14 +23,14 @@
 
 buildPythonPackage rec {
   pname = "django-silk";
-  version = "3.0.4";
+  version = "4.0.1";
 
   # pypi tarball doesn't include test project
   src = fetchFromGitHub {
     owner = "jazzband";
     repo = "django-silk";
     rev = version;
-    sha256 = "10542yvbchcy8hik2hw3jclb4ic89mxkw0sykag4bw9sv43xv7vx";
+    sha256 = "0yy9rzxvwlp2xvnw76r9hnqajlp417snam92xpb6ay0hxwslwqyb";
   };
   # "test_time_taken" tests aren't suitable for reproducible execution, but django's
   # test runner doesn't have an easy way to ignore tests - so instead prevent it from picking
@@ -38,6 +38,8 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace project/tests/test_silky_profiler.py \
       --replace "def test_time_taken" "def _test_time_taken"
+    substituteInPlace setup.py \
+      --replace 'use_scm_version=True' 'version="${version}"'
   '';
 
   buildInputs = [ mock ];
@@ -54,7 +56,7 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "Silky smooth profiling for the Django Framework";
-    homepage = "https://github.com/mtford90/silk";
+    homepage = "https://github.com/jazzband/django-silk";
     license = licenses.mit;
     maintainers = with maintainers; [ ris ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/django_tagging/default.nix b/nixpkgs/pkgs/development/python-modules/django_tagging/default.nix
index b54186b4fa29..4bcaa549a12f 100644
--- a/nixpkgs/pkgs/development/python-modules/django_tagging/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_tagging/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "django-tagging";
-  version = "0.4.6";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "210b32af8372b8f68f261fdb7394075669222608d1e6a3bbf2031d59c826eb68";
+    sha256 = "28d68fa4831705e51ad7d1e845ed6dd9e354f9b6f8a5f63b655a430646ef4e8d";
   };
 
   # error: invalid command 'test'
diff --git a/nixpkgs/pkgs/development/python-modules/django_taggit/default.nix b/nixpkgs/pkgs/development/python-modules/django_taggit/default.nix
index d73596269140..80ee899b1832 100644
--- a/nixpkgs/pkgs/development/python-modules/django_taggit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/django_taggit/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "django-taggit";
-  version = "1.2.0";
+  version = "1.3.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4186a6ce1e1e9af5e2db8dd3479c5d31fa11a87d216a2ce5089ba3afde24a2c5";
+    sha256 = "4a833bf71f4c2deddd9745924eee53be1c075d7f0020a06f12e29fa3d752732d";
   };
 
   propagatedBuildInputs = [ isort django ];
diff --git a/nixpkgs/pkgs/development/python-modules/djangoql/default.nix b/nixpkgs/pkgs/development/python-modules/djangoql/default.nix
index 28aa28c3b999..0d5190aba77c 100644
--- a/nixpkgs/pkgs/development/python-modules/djangoql/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/djangoql/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "djangoql";
-  version = "0.13.1";
+  version = "0.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "366293d7d4e416f9f7d6e2b98775c2129222fbb4dc660f3e6c7b9e35a3cf3fce";
+    sha256 = "1b1f80940bb15982e06208b97d7b3d08e1d5f8fb62aa07e5e33599c7ce4c0334";
   };
 
   propagatedBuildInputs = [ ply ];
diff --git a/nixpkgs/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix b/nixpkgs/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix
index 626d704f1d8a..f4c50a711494 100644
--- a/nixpkgs/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix
@@ -3,17 +3,17 @@
 buildPythonPackage rec {
   pname = "djangorestframework_simplejwt";
   version = "4.4.0";
-  
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "c315be70aa12a5f5790c0ab9acd426c3a58eebea65a77d0893248c5144a5080c";
   };
-  
+
   propagatedBuildInputs = [ django djangorestframework pyjwt ];
-  
+
   # Test raises django.core.exceptions.ImproperlyConfigured
   doCheck = false;
-  
+
   meta = with lib; {
     description = "A minimal JSON Web Token authentication plugin for Django REST Framework";
     homepage = "https://github.com/davesque/django-rest-framework-simplejwt";
diff --git a/nixpkgs/pkgs/development/python-modules/djangorestframework/default.nix b/nixpkgs/pkgs/development/python-modules/djangorestframework/default.nix
index ee67db3eab01..5a2d155644a4 100644
--- a/nixpkgs/pkgs/development/python-modules/djangorestframework/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/djangorestframework/default.nix
@@ -1,13 +1,13 @@
 { stdenv, buildPythonPackage, fetchPypi, django, isPy27 }:
 
 buildPythonPackage rec {
-  version = "3.11.0";
+  version = "3.11.1";
   pname = "djangorestframework";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e782087823c47a26826ee5b6fa0c542968219263fb3976ec3c31edab23a4001f";
+    sha256 = "6dd02d5a4bd2516fb93f80360673bf540c3b6641fec8766b1da2870a5aa00b32";
   };
 
   # Test settings are missing
diff --git a/nixpkgs/pkgs/development/python-modules/djmail/default.nix b/nixpkgs/pkgs/development/python-modules/djmail/default.nix
index 516a2163f44e..8efb9788e127 100644
--- a/nixpkgs/pkgs/development/python-modules/djmail/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/djmail/default.nix
@@ -5,7 +5,7 @@
 
 buildPythonPackage rec {
   pname = "djmail";
-  version = "1.1.0";
+  version = "2.0.0";
 
   meta = {
     description = "Simple, powerfull and nonobstructive django email middleware";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "87d2a8b4bdf67ae9b312e127ccc873a53116cf297ec786460d782ce82eaa76b5";
+    sha256 = "cf3ce7626305d218a8bf2b6a219266ef8061aceeefc1c70a54170f4105465202";
   };
 
   nativeBuildInputs = [ glibcLocales ];
diff --git a/nixpkgs/pkgs/development/python-modules/dkimpy/default.nix b/nixpkgs/pkgs/development/python-modules/dkimpy/default.nix
index 5d045e5108a8..aaecda77780c 100644
--- a/nixpkgs/pkgs/development/python-modules/dkimpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dkimpy/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "dkimpy";
-  version = "1.0.4";
+  version = "1.0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14idcs0wiyc0iyi5bz3xqimxf3x6dizcjfn92s2ka5zxp95xdyvd";
+    sha256 = "9a2420bf09af686736773153fca32a02ae11ecbe24b540c26104628959f91121";
 };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/dm-sonnet/default.nix b/nixpkgs/pkgs/development/python-modules/dm-sonnet/default.nix
index ffff1829948e..627f8eedaeb1 100644
--- a/nixpkgs/pkgs/development/python-modules/dm-sonnet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dm-sonnet/default.nix
@@ -36,7 +36,7 @@ let
     bazelTarget = ":install";
 
     fetchAttrs = {
-      sha256 = "1xwrha692if7rwqc0qalgpx9b8indgdan8ppwlcs2v47wjvgg6h3";
+      sha256 = "1dka5nap3d28n18pn3wp5xsi4x3z02h1j8rcjdvi3y6dbqjwdw0v";
     };
 
     bazelFlags = [
diff --git a/nixpkgs/pkgs/development/python-modules/dnslib/default.nix b/nixpkgs/pkgs/development/python-modules/dnslib/default.nix
index df9843893238..25a2ffea2f08 100644
--- a/nixpkgs/pkgs/development/python-modules/dnslib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dnslib/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "dnslib";
-  version = "0.9.13";
+  version = "0.9.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a0fed3e139c12ee4884b19bcde1d4a170745bcabb6026397876e3236ce38b9db";
+    sha256 = "1yz63cgiv910wkx90if09bql1n63lq6hy4wfpqink0q4sxy0mlpv";
   };
 
   checkPhase = "VERSIONS=${python.interpreter} ./run_tests.sh";
diff --git a/nixpkgs/pkgs/development/python-modules/dnspython/1.nix b/nixpkgs/pkgs/development/python-modules/dnspython/1.nix
new file mode 100644
index 000000000000..d4ebaf82b3d2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/dnspython/1.nix
@@ -0,0 +1,22 @@
+{ buildPythonPackage, fetchPypi, lib, pythonOlder }:
+
+buildPythonPackage rec {
+  pname = "dnspython";
+  version = "1.16.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01";
+  };
+
+  # needs networking for some tests
+  doCheck = false;
+
+  meta = {
+    description = "A DNS toolkit for Python 3.x";
+    homepage = "http://www.dnspython.org";
+    # BSD-like, check http://www.dnspython.org/LICENSE for details
+    license = lib.licenses.free;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/dnspython/default.nix b/nixpkgs/pkgs/development/python-modules/dnspython/default.nix
index 6a65dba767c9..c699638083a9 100644
--- a/nixpkgs/pkgs/development/python-modules/dnspython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dnspython/default.nix
@@ -1,13 +1,14 @@
-{ buildPythonPackage, fetchPypi, lib }:
+{ buildPythonPackage, fetchPypi, lib, pythonOlder }:
 
 buildPythonPackage rec {
   pname = "dnspython";
-  version = "1.16.0";
+  version = "2.0.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "36c5e8e38d4369a08b6780b7f27d790a292b2b08eea01607865bf0936c558e01";
+    sha256 = "044af09374469c3a39eeea1a146e8cac27daec951f1f1f157b1962fc7cb9d1b7";
   };
 
   # needs networking for some tests
diff --git a/nixpkgs/pkgs/development/python-modules/docker/default.nix b/nixpkgs/pkgs/development/python-modules/docker/default.nix
index 9c788bde123d..d46fbe991aea 100644
--- a/nixpkgs/pkgs/development/python-modules/docker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/docker/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "docker";
-  version = "4.2.1";
+  version = "4.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "380a20d38fbfaa872e96ee4d0d23ad9beb0f9ed57ff1c30653cbeb0c9c0964f2";
+    sha256 = "bad94b8dd001a8a4af19ce4becc17f41b09f228173ffe6a4e0355389eef142f2";
   };
 
   nativeBuildInputs = lib.optional isPy27 mock;
diff --git a/nixpkgs/pkgs/development/python-modules/dockerfile-parse/default.nix b/nixpkgs/pkgs/development/python-modules/dockerfile-parse/default.nix
index 580945656b4c..c0b14bf88ca5 100644
--- a/nixpkgs/pkgs/development/python-modules/dockerfile-parse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dockerfile-parse/default.nix
@@ -1,12 +1,12 @@
 { stdenv, buildPythonPackage, fetchPypi, six, pytestcov, pytest }:
 
 buildPythonPackage rec {
-  version = "0.0.18";
+  version = "1.0.0";
   pname = "dockerfile-parse";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a09eae6871b7b314f8a8bddb67b6c5002708b22247511906cf2a9a45564b83db";
+    sha256 = "9ed92ede29a646094b52b8b302e477f08e63465b6ee524f5750810280143712e";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/dockerspawner/default.nix b/nixpkgs/pkgs/development/python-modules/dockerspawner/default.nix
new file mode 100644
index 000000000000..6dba529ef997
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/dockerspawner/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, jupyterhub
+, escapism
+, docker
+}:
+
+buildPythonPackage rec {
+  pname = "dockerspawner";
+  version = "0.11.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "83fd8ee012bb32432cb57bd408ff65534749aed8696648e6ac029a87fc474928";
+  };
+
+  propagatedBuildInputs = [
+    jupyterhub
+    escapism
+    docker
+  ];
+
+  # tests require docker
+  doCheck = false;
+
+  pythonImportCheck = [ "dockerspawner" ];
+
+  meta = with lib; {
+    description = "Dockerspawner: A custom spawner for Jupyterhub";
+    homepage = "https://jupyter.org";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/docplex/default.nix b/nixpkgs/pkgs/development/python-modules/docplex/default.nix
index 42f1270dc1b5..74ac3bbfdf39 100644
--- a/nixpkgs/pkgs/development/python-modules/docplex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/docplex/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "docplex";
-  version = "2.12.182";
+  version = "2.15.194";
 
   # No source available from official repo
   src = fetchPypi {
     inherit pname version;
-    sha256 = "aaf150b06d44f07639aca48be1fca69c7732d57507e6adc4e8451c7a93489116";
+    sha256 = "976e9b4e18bccbabae04149c33247a795edb1f00110f1b511c5517ac6ac353bb";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/dogpile.cache/default.nix b/nixpkgs/pkgs/development/python-modules/dogpile.cache/default.nix
index cdc244bc1b49..32cb213af4f3 100644
--- a/nixpkgs/pkgs/development/python-modules/dogpile.cache/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dogpile.cache/default.nix
@@ -1,14 +1,23 @@
-{ stdenv, buildPythonPackage, fetchPypi
-, pytest, pytestcov, mock, Mako, decorator
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, pytest
+, pytestcov
+, mock
+, Mako
+, decorator
+, stevedore
 }:
 
 buildPythonPackage rec {
   pname = "dogpile.cache";
-  version = "0.9.2";
+  version = "1.0.2";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bc9dde1ffa5de0179efbcdc73773ef0553921130ad01955422f2932be35c059e";
+    sha256 = "64fda39d25b46486a4876417ca03a4af06f35bfadba9f59613f9b3d748aa21ef";
   };
 
   # Disable concurrency tests that often fail,
@@ -26,7 +35,7 @@ buildPythonPackage rec {
 
   checkInputs = [ pytest pytestcov mock Mako ];
 
-  propagatedBuildInputs = [ decorator ];
+  propagatedBuildInputs = [ decorator stevedore ];
 
   meta = with stdenv.lib; {
     description = "A caching front-end based on the Dogpile lock";
diff --git a/nixpkgs/pkgs/development/python-modules/dogtail/default.nix b/nixpkgs/pkgs/development/python-modules/dogtail/default.nix
index 44142ca9441e..4981440c7ccd 100644
--- a/nixpkgs/pkgs/development/python-modules/dogtail/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dogtail/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage {
   pname = "dogtail";
-  version = "0.9.10";
+  version = "0.9.11";
 
   # https://gitlab.com/dogtail/dogtail/issues/1
   # src = fetchPypi {
@@ -26,7 +26,7 @@ buildPythonPackage {
   # };
   src = fetchurl {
     url = "https://gitlab.com/dogtail/dogtail/raw/released/dogtail-0.9.10.tar.gz";
-    sha256 = "14sycidl8ahj3fwlhpwlpnyd43c302yqr7nqg2hj39pyj7kgk15b";
+    sha256 = "EGyxYopupfXPYtTL9mm9ujZorvh8AGaNXVKBPWsGy3c=";
   };
 
   patches = [
@@ -54,7 +54,7 @@ buildPythonPackage {
   meta = {
     description = "GUI test tool and automation framework that uses Accessibility technologies to communicate with desktop applications";
     homepage = "https://gitlab.com/dogtail/dogtail";
-    license = lib.licenses.gpl2;
+    license = lib.licenses.gpl2Only;
     maintainers = with lib.maintainers; [ jtojnar ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/dominate/default.nix b/nixpkgs/pkgs/development/python-modules/dominate/default.nix
index 3881bf2dd864..7418eb4f9522 100644
--- a/nixpkgs/pkgs/development/python-modules/dominate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dominate/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "dominate";
-  version = "2.5.1";
+  version = "2.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0y4xzch6kwzddwz6pmk8cd09r3dpkxm1bh4q1byhm37a0lb4h1cv";
+    sha256 = "456facce7a7ccfd9363948109cf1e978d48c58e46a46b01c71b4c0adc73b1928";
   };
 
   doCheck = !isPy3k;
diff --git a/nixpkgs/pkgs/development/python-modules/dpath/default.nix b/nixpkgs/pkgs/development/python-modules/dpath/default.nix
index c526d9aedc6c..548bd5168385 100644
--- a/nixpkgs/pkgs/development/python-modules/dpath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dpath/default.nix
@@ -1,20 +1,19 @@
-{ stdenv, fetchPypi, buildPythonPackage
-, mock, nose
+{ stdenv, fetchPypi, buildPythonPackage, isPy27
+, mock, pytestCheckHook, nose, hypothesis
 }:
 
 buildPythonPackage rec {
   pname = "dpath";
-  version = "1.4.2";
+  version = "2.0.1";
+  disabled = isPy27; # uses python3 imports
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0gr7816pnzbyh9h1ia0qz0q1f9zfzacwb8dc36js8hw8x14myqqg";
+    sha256 = "bea06b5f4ff620a28dfc9848cf4d6b2bfeed34238edeb8ebe815c433b54eb1fa";
   };
 
-  checkInputs = [ mock nose ];
-  checkPhase = ''
-    nosetests
-  '';
+  # use pytest as nosetests hangs
+  checkInputs = [ mock nose pytestCheckHook hypothesis ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/akesterson/dpath-python";
diff --git a/nixpkgs/pkgs/development/python-modules/dpkt/default.nix b/nixpkgs/pkgs/development/python-modules/dpkt/default.nix
index 567cd85fa943..0238cf4706f7 100644
--- a/nixpkgs/pkgs/development/python-modules/dpkt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dpkt/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "dpkt";
-  version = "1.9.2";
+  version = "1.9.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0m0ym219zsqfjl6jwivw5as3igjbmhpcn4dvabc5nkd0bk6jxaaj";
+    sha256 = "18jcanxpzkd5n2gjbfpwbvvkm1hpxr59463z28py23vkbx57wmvg";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix b/nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix
index d1a349d79a2d..0f5f0bc56e05 100644
--- a/nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/drf-yasg/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "drf-yasg";
-  version = "1.16.1";
+  version = "1.17.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ri5h5xsacm99c6gvb4ldwisbqgiv2vq8qbn7vrh6vplzlpyvzb8";
+    sha256 = "5572e9d5baab9f6b49318169df9789f7399d0e3c7bdac8fdb8dfccf1d5d2b1ca";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/dropbox/default.nix b/nixpkgs/pkgs/development/python-modules/dropbox/default.nix
index 3ca9d59e27f0..754fe962b5a1 100644
--- a/nixpkgs/pkgs/development/python-modules/dropbox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dropbox/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "dropbox";
-  version = "9.5.0";
+  version = "10.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0iz9hg1j7q9chka6fyzgpzqg2v4nbjx61xfvn9ixprxrdhvhr2hi";
+    sha256 = "sha256-INA50DD3wfVPItGCgywZCe5bViatUkaaGdJ0vwcEHgY=";
   };
 
   # Set DROPBOX_TOKEN environment variable to a valid token.
diff --git a/nixpkgs/pkgs/development/python-modules/duckdb/default.nix b/nixpkgs/pkgs/development/python-modules/duckdb/default.nix
index c839dea3d1a6..ea6dfe32fda9 100644
--- a/nixpkgs/pkgs/development/python-modules/duckdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/duckdb/default.nix
@@ -13,6 +13,13 @@ buildPythonPackage rec {
   pname = "duckdb";
   inherit (duckdb) version src;
 
+  # build attempts to use git to figure out its own version. don't want to add
+  # the dependency for something pointless.
+  postPatch = ''
+    substituteInPlace scripts/package_build.py --replace \
+      "'git'" "'false'"
+  '';
+
   postConfigure = ''
     cd tools/pythonpkg
     export SETUPTOOLS_SCM_PRETEND_VERSION=${version}
diff --git a/nixpkgs/pkgs/development/python-modules/dulwich/0_19.nix b/nixpkgs/pkgs/development/python-modules/dulwich/0_19.nix
new file mode 100644
index 000000000000..82b9bed492cc
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/dulwich/0_19.nix
@@ -0,0 +1,30 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, urllib3, certifi
+, gevent, geventhttpclient, mock, fastimport
+, git, glibcLocales }:
+
+buildPythonPackage rec {
+  version = "0.19.16";
+  pname = "dulwich";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "f74561c448bfb6f04c07de731c1181ae4280017f759b0bb04fa5770aa84ca850";
+  };
+
+  LC_ALL = "en_US.UTF-8";
+
+  propagatedBuildInputs = [ urllib3 certifi ];
+
+  # Only test dependencies
+  checkInputs = [ git glibcLocales gevent geventhttpclient mock fastimport ];
+
+  doCheck = !stdenv.isDarwin;
+
+  meta = with stdenv.lib; {
+    description = "Simple Python implementation of the Git file formats and protocols";
+    homepage = "https://samba.org/~jelmer/dulwich/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ koral ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/dulwich/default.nix b/nixpkgs/pkgs/development/python-modules/dulwich/default.nix
index 82b9bed492cc..de0d6f4c3e29 100644
--- a/nixpkgs/pkgs/development/python-modules/dulwich/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/dulwich/default.nix
@@ -4,12 +4,12 @@
 , git, glibcLocales }:
 
 buildPythonPackage rec {
-  version = "0.19.16";
+  version = "0.20.5";
   pname = "dulwich";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f74561c448bfb6f04c07de731c1181ae4280017f759b0bb04fa5770aa84ca850";
+    sha256 = "98484ede022da663c96b54bc8dcdb4407072cb50efd5d20d58ca4e7779931305";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/nixpkgs/pkgs/development/python-modules/ecdsa/default.nix b/nixpkgs/pkgs/development/python-modules/ecdsa/default.nix
index aa69b7e2fcde..0f224bd8ab0b 100644
--- a/nixpkgs/pkgs/development/python-modules/ecdsa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ecdsa/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "ecdsa";
-  version = "0.14.1";
+  version = "0.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "64c613005f13efec6541bb0a33290d0d03c27abab5f15fbab20fb0ee162bdd8e";
+    sha256 = "8f12ac317f8a1318efa75757ef0a651abe12e51fc1af8838fb91079445227277";
   };
 
   propagatedBuildInputs = [ six ];
@@ -22,7 +22,6 @@ buildPythonPackage rec {
     description = "ECDSA cryptographic signature library";
     homepage = "https://github.com/warner/python-ecdsa";
     license = licenses.mit;
-    maintainers = with maintainers; [ aszlig ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ecpy/default.nix b/nixpkgs/pkgs/development/python-modules/ecpy/default.nix
index c6109d5c084d..153fcd08d25a 100644
--- a/nixpkgs/pkgs/development/python-modules/ecpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ecpy/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ECPy";
-  version = "0.10.0";
+  version = "1.2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8889122d3a8bc1a08b4bda42c073dd22305d770b7876356de806ff91748983bd";
+    sha256 = "6dd09f8cda5a1d673228ff9ef41aea8f036ee5ef3183198de83c14957d68c3e0";
   };
 
   propagatedBuildInputs = lib.optional (!isPy3k) future;
diff --git a/nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix b/nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix
index b04bc9069f71..38522b233d4c 100644
--- a/nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/elasticsearch/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage (rec {
   pname = "elasticsearch";
-  version = "7.7.1";
+  version = "7.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9bfcb2bd137d6d7ca123e252b9d7261cfe4f7723f7b749a99c52b47766cf387c";
+    sha256 = "5e08776fbb30c6e92408c7fa8c37d939210d291475ae2f364f0497975918b6fe";
   };
 
   # Check is disabled because running them destroy the content of the local cluster!
diff --git a/nixpkgs/pkgs/development/python-modules/elementpath/default.nix b/nixpkgs/pkgs/development/python-modules/elementpath/default.nix
index 2ab878b081c3..5a3a9b0110d4 100644
--- a/nixpkgs/pkgs/development/python-modules/elementpath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/elementpath/default.nix
@@ -1,7 +1,7 @@
 { lib, buildPythonPackage, fetchFromGitHub, isPy27 }:
 
 buildPythonPackage rec {
-  version = "1.4.5";
+  version = "2.0.0";
   pname = "elementpath";
   disabled = isPy27; # uses incompatible class syntax
 
@@ -9,7 +9,7 @@ buildPythonPackage rec {
     owner = "sissaschool";
     repo = "elementpath";
     rev = "v${version}";
-    sha256 = "1hqvi7ibhdz812dsjbyyz3rysc6242hi1k9187wwnjmilbbngi3c";
+    sha256 = "16kfbiy87qjl07y3iin8jdjhz8j28wlwnkwxq9a0752ipjjg869p";
   };
 
   # avoid circular dependency with xmlschema which directly depends on this
diff --git a/nixpkgs/pkgs/development/python-modules/eliot/default.nix b/nixpkgs/pkgs/development/python-modules/eliot/default.nix
new file mode 100644
index 000000000000..557be014f86c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/eliot/default.nix
@@ -0,0 +1,56 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, aiocontextvars
+, boltons
+, hypothesis
+, pyrsistent
+, pytest
+, setuptools
+, six
+, testtools
+, zope_interface
+}:
+
+buildPythonPackage rec {
+  pname = "eliot";
+  version = "1.12.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0wabv7hk63l12881f4zw02mmj06583qsx2im0yywdjlj8f56vqdn";
+  };
+
+  checkInputs = [
+    hypothesis
+    testtools
+    pytest
+   ];
+
+  propagatedBuildInputs = [
+    aiocontextvars
+    boltons
+    pyrsistent
+    setuptools
+    six
+    zope_interface
+  ];
+
+  pythonImportsCheck = [ "eliot" ];
+
+  # Tests run eliot-prettyprint in out/bin.
+  # test_parse_stream is broken, skip it.
+  checkPhase = ''
+    export PATH=$out/bin:$PATH
+    pytest -k 'not test_parse_stream'
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://eliot.readthedocs.io";
+    description = "Logging library that tells you why it happened";
+    license = licenses.asl20;
+    maintainers = [ maintainers.dpausp ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/email-validator/default.nix b/nixpkgs/pkgs/development/python-modules/email-validator/default.nix
index 3ad0c34685ba..215584aa8cdb 100644
--- a/nixpkgs/pkgs/development/python-modules/email-validator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/email-validator/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "email_validator";
-  version = "1.0.2";
+  version = "1.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ja9149l9ck5n45a72h3is7v476hjny5ybxbcamx1nw6iplsm7k6";
+    sha256 = "63094045c3e802c3d3d575b18b004a531c36243ca8d1cec785ff6bfcb04185bb";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/emoji/default.nix b/nixpkgs/pkgs/development/python-modules/emoji/default.nix
index 7e9dae53bbcf..aabebe1c5210 100644
--- a/nixpkgs/pkgs/development/python-modules/emoji/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/emoji/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "emoji";
-  version = "0.5.4";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0x61xypwswhghchp5svs084didkgfwqpq2fbiapvirff5lx2srb0";
+    sha256 = "e42da4f8d648f8ef10691bc246f682a1ec6b18373abfd9be10ec0b398823bd11";
   };
 
   checkInputs = [ nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/enaml/default.nix b/nixpkgs/pkgs/development/python-modules/enaml/default.nix
new file mode 100644
index 000000000000..1102443884f7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/enaml/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, atom
+, ply
+, kiwisolver
+, qtpy
+, sip
+, cppy
+, bytecode
+}:
+
+buildPythonPackage rec {
+  pname = "enaml";
+  version = "0.11.2";
+
+  src = fetchFromGitHub {
+    owner = "nucleic";
+    repo = pname;
+    rev = version;
+    sha256 = "1in5qa5j96qs3gsv8yaxs1l6dbm69xhzvc0pbzg0dd9kpqxfdy1j";
+  };
+
+  # qt bindings cannot be found during tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "enaml"
+    "enaml.applib"
+    "enaml.core"
+    "enaml.core.parser"
+    "enaml.layout"
+    # qt bindings cannot be found during checking
+    #"enaml.qt"
+    #"enaml.qt.docking"
+    "enaml.scintilla"
+    "enaml.stdlib"
+    "enaml.widgets"
+    "enaml.workbench"
+  ];
+
+  propagatedBuildInputs = [
+    atom
+    ply
+    kiwisolver
+    qtpy
+    sip
+    cppy
+    bytecode
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/nucleic/enaml";
+    description = "Declarative User Interfaces for Python";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ raboof ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/enamlx/default.nix b/nixpkgs/pkgs/development/python-modules/enamlx/default.nix
new file mode 100644
index 000000000000..dbf54aac40ed
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/enamlx/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, enaml
+, pyqtgraph
+, pythonocc-core
+}:
+
+buildPythonPackage rec {
+  pname = "enamlx";
+  version = "0.4.1";
+
+  src = fetchFromGitHub {
+    owner = "frmdstryr";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0yh7bw9ibk758bym5w2wk7sifghf1hkxa8sd719q8nsz279cpfc0";
+  };
+
+  propagatedBuildInputs = [
+    enaml
+    # Until https://github.com/inkcut/inkcut/issues/105 perhaps
+    pyqtgraph
+    pythonocc-core
+  ];
+
+  # qt_occ_viewer test requires enaml.qt.QtOpenGL which got dropped somewhere
+  # between enaml 0.9.0 and 0.10.0
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "enamlx.core"
+    "enamlx.qt"
+    "enamlx.widgets"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/frmdstryr/enamlx";
+    description = "Additional Qt Widgets for Enaml";
+    license = licenses.mit;
+    maintainers = with maintainers; [ raboof ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/entrance/default.nix b/nixpkgs/pkgs/development/python-modules/entrance/default.nix
index 371c9bcc9e04..2f0f80bcf7a5 100644
--- a/nixpkgs/pkgs/development/python-modules/entrance/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/entrance/default.nix
@@ -18,11 +18,11 @@ in
 
 buildPythonPackage rec {
   pname = "entrance";
-  version = "1.1.12";
+  version = "1.1.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ef7cdf76226344f7cb92c8f81b6c03bbe944a095434f86275f178809c84108ca";
+    sha256 = "d1fc9d128ce05837d7e149413fbec71bcf84d9ca510accea56761d3f4bd0a021";
   };
 
   # The versions of `sanic` and `websockets` in nixpkgs only support 3.6 or later
diff --git a/nixpkgs/pkgs/development/python-modules/entrypoint2/default.nix b/nixpkgs/pkgs/development/python-modules/entrypoint2/default.nix
new file mode 100644
index 000000000000..301de3e278f3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/entrypoint2/default.nix
@@ -0,0 +1,36 @@
+{ lib, buildPythonPackage, fetchPypi, EasyProcess, pathpy, pytest }:
+
+buildPythonPackage rec {
+  pname = "entrypoint2";
+  version = "0.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "15dya04884armqjdyqz1jgachkqgh9dc3p25lvyz9afvg73k2qav";
+  };
+
+  propagatedBuildInputs = [ ];
+
+  pythonImportsCheck = [ "entrypoint2" ];
+
+  # argparse is part of the standardlib
+  prePatch = ''
+    substituteInPlace setup.py --replace "argparse" ""
+  '';
+
+  checkInputs = [ EasyProcess pathpy pytest ];
+
+  # 0.2.1 has incompatible pycache files included
+  # https://github.com/ponty/entrypoint2/issues/8
+  checkPhase = ''
+    rm -rf tests/__pycache__
+    pytest tests
+  '';
+
+  meta = with lib; {
+    description = "Easy to use command-line interface for python modules";
+    homepage = "https://github.com/ponty/entrypoint2/";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ austinbutler ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/etelemetry/default.nix b/nixpkgs/pkgs/development/python-modules/etelemetry/default.nix
index 2323a4dcd579..869c6ccba92c 100644
--- a/nixpkgs/pkgs/development/python-modules/etelemetry/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/etelemetry/default.nix
@@ -1,15 +1,16 @@
-{ lib, buildPythonPackage, fetchPypi, requests, pytest }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, ci-info, ci-py, requests, pytest }:
 
 buildPythonPackage rec {
-  version = "0.1.2";
+  version = "0.2.1";
   pname = "etelemetry";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0m3dqvs3xbckmjiwppy366qmgzx0z917j1d7dadfl3bprgipy51j";
+    sha256 = "1rw8im09ppnb7z7p7rx658rp5ib8zca8byxg1kiflqwgx5c8zddz";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [ ci-info ci-py requests ];
 
   # all 2 of the tests both try to pull down from a url
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/etesync/default.nix b/nixpkgs/pkgs/development/python-modules/etesync/default.nix
index 47305d89540c..ee81ead97c3a 100644
--- a/nixpkgs/pkgs/development/python-modules/etesync/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/etesync/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "etesync";
-  version = "0.11.1";
+  version = "0.12.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0yads0s84z41hf003qk5i8222fi7096whzwfp48kf369gchp39kc";
+    sha256 = "f20f7e9922ee789c4b71379676ebfe656b675913fe524f2ee722e1b9ef4e5197";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/eve/default.nix b/nixpkgs/pkgs/development/python-modules/eve/default.nix
index 062d6e3bedb8..9f1fd621b8fe 100644
--- a/nixpkgs/pkgs/development/python-modules/eve/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eve/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "Eve";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dbb409c481ffd5100a5ab13177f6ef6284257e33ac8e5090cd50e42533607ebd";
+    sha256 = "a8a1216ef1d3f1a4c4fc5a7bd315eca5a3ef7dfc6b78807cdf19ddfeecafcc3e";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/eventlet/default.nix b/nixpkgs/pkgs/development/python-modules/eventlet/default.nix
index 14c5cfcb390b..300a660f3244 100644
--- a/nixpkgs/pkgs/development/python-modules/eventlet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eventlet/default.nix
@@ -12,22 +12,32 @@
 
 buildPythonPackage rec {
   pname = "eventlet";
-  version = "0.25.2";
+  version = "0.26.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4c8ab42c51bff55204fef43cff32616558bedbc7538d876bb6a96ce820c7f9ed";
+    sha256 = "4f4a43366b4cbd4a3f2f231816e5c3dae8ab316df9b7da11f0525e2800559f33";
   };
 
+  propagatedBuildInputs = [ dnspython greenlet monotonic six ]
+    ++ lib.optional (pythonOlder "3.4") enum34;
+
+  prePatch = ''
+    substituteInPlace setup.py \
+      --replace "dnspython >= 1.15.0, < 2.0.0" "dnspython"
+  '';
+
   checkInputs = [ nose ];
 
   doCheck = false;  # too much transient errors to bother
 
-  propagatedBuildInputs = [ dnspython greenlet monotonic six ] ++ lib.optional (pythonOlder "3.4") enum34;
+  # unfortunately, it needs /etc/protocol to be present to not fail
+  #pythonImportsCheck = [ "eventlet" ];
 
   meta = with lib; {
     homepage = "https://pypi.python.org/pypi/eventlet/";
     description = "A concurrent networking library for Python";
+    license = licenses.mit;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/exchangelib/default.nix b/nixpkgs/pkgs/development/python-modules/exchangelib/default.nix
index ed2a7d69da89..0635f8f027cc 100644
--- a/nixpkgs/pkgs/development/python-modules/exchangelib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/exchangelib/default.nix
@@ -1,33 +1,38 @@
 { stdenv, fetchFromGitHub, buildPythonPackage,
-  lxml, tzlocal, python-dateutil, pygments, future, requests-kerberos,
+  pythonOlder,
+  lxml, tzlocal, python-dateutil, pygments, requests-kerberos,
   defusedxml, cached-property, isodate, requests_ntlm, dnspython,
-  psutil, requests-mock, pyyaml
+  psutil, requests-mock, pyyaml,
+  oauthlib, requests_oauthlib,
+  flake8,
 }:
 
 buildPythonPackage rec {
   pname = "exchangelib";
-  version = "1.12.2";
+  version = "3.2.1";
+  disabled = pythonOlder "3.5";
 
   # tests are not present in the PyPI version
   src = fetchFromGitHub {
     owner = "ecederstrand";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1p24fq6f46j0qd0ccb64mncxbnm2n9w0sqpl4zk113caaaxkpjil";
+    sha256 = "1sh780q2iwdm3bnlnfdacracf0n7jhbv0g39cdx65v3d510zp4jv";
   };
 
-  # one test is failing due to it trying to send a request to example.com
-  patches = [ ./skip_failing_test.patch ];
-  checkInputs = [ psutil requests-mock pyyaml ];
+  checkInputs = [ psutil requests-mock pyyaml
+    flake8
+  ];
   propagatedBuildInputs = [
     lxml tzlocal python-dateutil pygments requests-kerberos
-    future defusedxml cached-property isodate requests_ntlm dnspython ];
+    defusedxml cached-property isodate requests_ntlm dnspython
+    oauthlib requests_oauthlib
+  ];
 
   meta = with stdenv.lib; {
     description = "Client for Microsoft Exchange Web Services (EWS)";
     homepage    = "https://github.com/ecederstrand/exchangelib";
     license     = licenses.bsd2;
     maintainers = with maintainers; [ catern ];
-    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/executing/default.nix b/nixpkgs/pkgs/development/python-modules/executing/default.nix
new file mode 100644
index 000000000000..84026d7374c4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/executing/default.nix
@@ -0,0 +1,20 @@
+{ lib, buildPythonPackage, fetchzip, pytest, asttokens }:
+
+buildPythonPackage rec {
+  pname = "executing";
+  version = "0.4.3";
+
+  src = fetchzip {
+    url = "https://github.com/alexmojaki/executing/archive/v${version}.tar.gz";
+    sha256 = "1fqfc26nl703nsx2flzf7x4mgr3rpbd8pnn9c195rca648zhi3nh";
+  };
+
+  checkInputs = [ pytest asttokens ];
+
+  meta = with lib; {
+    description = "Get information about what a frame is currently doing, particularly the AST node being executed";
+    homepage = "https://github.com/alexmojaki/executing";
+    license = licenses.mit;
+    maintainers = with maintainers; [ renatoGarcia ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/executor/default.nix b/nixpkgs/pkgs/development/python-modules/executor/default.nix
index 8d9b379187b8..3e14074f186c 100644
--- a/nixpkgs/pkgs/development/python-modules/executor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/executor/default.nix
@@ -1,26 +1,31 @@
-{ lib, buildPythonPackage, fetchFromGitHub, coloredlogs, property-manager, fasteners, pytest, mock, virtualenv }:
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27, coloredlogs, property-manager, fasteners, pytestCheckHook, mock, virtualenv }:
 
 buildPythonPackage rec {
   pname = "executor";
-  version = "21.3";
+  version = "23.1";
+  disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "xolox";
     repo = "python-executor";
     rev = version;
-    sha256 = "0rc14vjx3d6irfaw0pczzw1pn0xjl7xikv32hc1fvxv2ibnldv5d";
+    sha256 = "1jfmagw126di0qd82bydwvryqcxc54pqja3rbx3ny3fv1ahi5s7k";
   };
 
   propagatedBuildInputs = [ coloredlogs property-manager fasteners ];
 
-  checkInputs = [ pytest mock virtualenv ];
+  checkInputs = [ pytestCheckHook mock virtualenv ];
 
   # ignore impure tests
-  checkPhase = ''
-    pytest . -k "not option and not retry \
-                 and not remote and not ssh \
-                 and not foreach and not local_context"
-  '';
+  disabledTests = [
+    "option"
+    "retry"
+    "remote"
+    "ssh"
+    "foreach"
+    "local_context"
+    "release"  # meant to be ran on ubuntu to succeed
+  ];
 
   meta = with lib; {
     description = "Programmer friendly subprocess wrapper";
diff --git a/nixpkgs/pkgs/development/python-modules/exifread/default.nix b/nixpkgs/pkgs/development/python-modules/exifread/default.nix
index 61593b625f72..f62655055842 100644
--- a/nixpkgs/pkgs/development/python-modules/exifread/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/exifread/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "ExifRead";
-  version = "2.1.2";
+  version = "2.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1b90jf6m9vxh9nanhpyvqdq7hmfx5iggw1l8kq10jrs6xgr49qkr";
+    sha256 = "269ff3a8eab8e082734a076182cce6fb126116619c0b7c2009bea34502cca213";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/extension-helpers/default.nix b/nixpkgs/pkgs/development/python-modules/extension-helpers/default.nix
new file mode 100644
index 000000000000..0c23a69a89cd
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/extension-helpers/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, pytestCheckHook
+, setuptools_scm
+}:
+
+buildPythonPackage rec {
+  pname = "extension-helpers";
+  version = "0.1";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "10iqjzmya2h4sk765dlm1pbqypwlqyh8rw59a5m9i63d3klnz2mc";
+  };
+
+  nativeBuildInputs = [
+    setuptools_scm
+  ];
+
+  propagatedBuildInputs = [
+    pytestCheckHook
+  ];
+
+  # avoid importing local module
+  preCheck = ''
+    cd extension_helpers
+  '';
+
+  # assumes setup.py is in pwd
+  disabledTests = [ "compiler_module" ];
+
+  meta = with lib; {
+    description = "Helpers to assist with building packages with compiled C/Cython extensions";
+    homepage = "https://github.com/astropy/extension-helpers";
+    license = licenses.bsd3;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/eyed3/default.nix b/nixpkgs/pkgs/development/python-modules/eyed3/default.nix
index ee0c426bdedd..321c26542d11 100644
--- a/nixpkgs/pkgs/development/python-modules/eyed3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/eyed3/default.nix
@@ -1,39 +1,33 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
-, pythonAtLeast
 , pythonOlder
-, paver
 , python
 , isPyPy
 , six
-, pathlib
-, python_magic
 , lib
+, filetype
+, deprecation
+, dataclasses
 }:
 
 buildPythonPackage rec {
-  version = "0.8.12";
+  version = "0.9.5";
   pname    = "eyeD3";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e54eec0a03fb8e7e9e8b509546c6d92efbc871ea7597611fe2c16f03e1c94b6d";
+    sha256 = "faf5806197f2093e82c2830d41f2378f07b3a9da07a16fafb14fc6fbdebac50a";
   };
 
-  # https://github.com/nicfit/eyeD3/pull/284
-  postPatch = lib.optionalString (pythonAtLeast "3.4") ''
-    sed -ie '/pathlib/d' requirements/requirements.yml
-  '';
-
-  buildInputs = [ paver ];
-
   # requires special test data:
   # https://github.com/nicfit/eyeD3/blob/103198e265e3279384f35304e8218be6717c2976/Makefile#L97
   doCheck = false;
 
-  propagatedBuildInputs = [ six python_magic ] ++ lib.optional (pythonOlder "3.4") pathlib;
+  propagatedBuildInputs = [
+    six filetype deprecation
+  ] ++ lib.optional (pythonOlder "3.7") dataclasses;
 
   postInstall = ''
     for prog in "$out/bin/"*; do
@@ -55,5 +49,4 @@ buildPythonPackage rec {
       and v2.3/v2.4.
     '';
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/face/default.nix b/nixpkgs/pkgs/development/python-modules/face/default.nix
index 34d91ceda988..71fbca916104 100644
--- a/nixpkgs/pkgs/development/python-modules/face/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/face/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "face";
-  version = "19.1.2";
+  version = "20.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "38c94ec17a4d6f9628f094b697faca0f802f4028071ce8cbdb3116d4cde772a3";
+    sha256 = "7d59ca5ba341316e58cf72c6aff85cca2541cf5056c4af45cb63af9a814bed3e";
   };
 
   propagatedBuildInputs = [ boltons ];
diff --git a/nixpkgs/pkgs/development/python-modules/factory_boy/default.nix b/nixpkgs/pkgs/development/python-modules/factory_boy/default.nix
index 92e889564afd..052551a4727c 100644
--- a/nixpkgs/pkgs/development/python-modules/factory_boy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/factory_boy/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "factory_boy";
-  version = "2.12.0";
+  version = "3.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0w53hjgag6ad5i2vmrys8ysk54agsqvgbjy9lg8g0d8pi9h8vx7s";
+    sha256 = "2ce2f665045d9f15145a6310565fcb8255d52fc6fd867f3b783b3ac3de6cf10e";
   };
 
   propagatedBuildInputs = [ faker ] ++ lib.optionals isPy27 [ ipaddress ];
diff --git a/nixpkgs/pkgs/development/python-modules/faker/default.nix b/nixpkgs/pkgs/development/python-modules/faker/default.nix
index 5691c9764db0..102f506b6a69 100644
--- a/nixpkgs/pkgs/development/python-modules/faker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/faker/default.nix
@@ -17,11 +17,11 @@ assert pythonOlder "3.3" -> ipaddress != null;
 
 buildPythonPackage rec {
   pname = "Faker";
-  version = "3.0.1";
+  version = "4.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c7f7466cb9ba58d582f713494acdb5ebcc462336c5e38c5230b0cdab37069985";
+    sha256 = "ff188c416864e3f7d8becd8f9ee683a4b4101a2a2d2bcdcb3e84bb1bdd06eaae";
   };
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/nixpkgs/pkgs/development/python-modules/fastapi/default.nix b/nixpkgs/pkgs/development/python-modules/fastapi/default.nix
index 3513f57cdbe5..32ebd6a0307d 100644
--- a/nixpkgs/pkgs/development/python-modules/fastapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastapi/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "fastapi";
-  version = "0.54.1";
+  version = "0.55.1";
   format = "flit";
   disabled = !isPy3k;
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "tiangolo";
     repo = "fastapi";
     rev = version;
-    sha256 = "0k0lss8x6lzf0szcli48v28r269fsx1jdkr9q78liz47dz5x03d8";
+    sha256 = "1515nhwari48v0angyl5z3cfpvwn4al2nvqh0cjd9xgxzvm310s8";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/fastparquet/default.nix b/nixpkgs/pkgs/development/python-modules/fastparquet/default.nix
index 46c6cfb06caf..0a52d89df5ad 100644
--- a/nixpkgs/pkgs/development/python-modules/fastparquet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastparquet/default.nix
@@ -3,13 +3,13 @@ thrift, pytest, python-snappy, lz4, zstd }:
 
 buildPythonPackage rec {
   pname = "fastparquet";
-  version = "0.4.0";
+  version = "0.4.1";
 
   src = fetchFromGitHub {
     owner = "dask";
     repo = pname;
     rev = version;
-    sha256 = "0y89gmcfylxqm8rs1fbirwjzmhcvlfx8fhvkm3ssbj1ivfd5mdlr";
+    sha256 = "ViZRGEv227/RgCBYAQN8F3Z0m8WrNUT5KUdyFosjg9s=";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/fastrlock/default.nix b/nixpkgs/pkgs/development/python-modules/fastrlock/default.nix
index 8271bec090b2..e44639942a0d 100644
--- a/nixpkgs/pkgs/development/python-modules/fastrlock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fastrlock/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "fastrlock";
-  version = "0.4";
+  version = "0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6abdbb35205792e2d2a8c441aaa41a613d43ee2d88b3af4fd9735ae7a5f7db6b";
+    sha256 = "9ae1a31f6e069b5f0f28ba63c594d0c952065de0a375f7b491d21ebaccc5166f";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/filemagic/default.nix b/nixpkgs/pkgs/development/python-modules/filemagic/default.nix
index 2feda678f744..ef8f6933e8fe 100644
--- a/nixpkgs/pkgs/development/python-modules/filemagic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/filemagic/default.nix
@@ -4,6 +4,7 @@
 buildPythonPackage {
   pname = "filemagic";
   version = "1.6";
+  disabled = !isPy3k; # asserts on ResourceWarning
 
   # Don't use the PyPI source because it's missing files required for testing
   src = fetchFromGitHub {
@@ -18,7 +19,7 @@ buildPythonPackage {
       "'${file}/lib/libmagic${stdenv.hostPlatform.extensions.sharedLibrary}'"
   '';
 
-  checkInputs = [ (if isPy3k then mock else unittest2) ];
+  checkInputs = [ mock ] ++ lib.optionals (!isPy3k) [ unittest2 ];
 
   meta = with lib; {
     description = "File type identification using libmagic";
diff --git a/nixpkgs/pkgs/development/python-modules/finalfusion/default.nix b/nixpkgs/pkgs/development/python-modules/finalfusion/default.nix
new file mode 100644
index 000000000000..62287487e3b7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/finalfusion/default.nix
@@ -0,0 +1,56 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, lib
+, isPy3k
+, cython
+, numpy
+, toml
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "finalfusion";
+  version = "0.7.1";
+
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "finalfusion";
+    repo = "finalfusion-python";
+    rev = version;
+    sha256 = "0pwzflamxqvpl1wcz0zbhhd6aa4xn18rmza6rggaic3ckidhyrh4";
+  };
+
+  nativeBuildInputs = [
+    cython
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+    toml
+  ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  postPatch = ''
+    patchShebangs tests/integration
+  '';
+
+  checkPhase = ''
+    # Regular unit tests.
+    pytest
+
+    # Integration tests for command-line utilities.
+    PATH=$PATH:$out/bin tests/integration/all.sh
+  '';
+
+  meta = with lib; {
+    description = "Python module for using finalfusion, word2vec, and fastText word embeddings";
+    homepage = "https://github.com/finalfusion/finalfusion-python/";
+    maintainers = with maintainers; [ danieldk ];
+    platforms = platforms.all;
+    license = licenses.blueOak100;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/fixtures/default.nix b/nixpkgs/pkgs/development/python-modules/fixtures/default.nix
index 35bf7cb90df9..3042acbbe848 100644
--- a/nixpkgs/pkgs/development/python-modules/fixtures/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fixtures/default.nix
@@ -27,4 +27,4 @@ buildPythonPackage rec {
     homepage = "https://pypi.python.org/pypi/fixtures";
     license = lib.licenses.asl20;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/flake8-debugger/default.nix b/nixpkgs/pkgs/development/python-modules/flake8-debugger/default.nix
index 1f41c0a6849a..81b903621b52 100644
--- a/nixpkgs/pkgs/development/python-modules/flake8-debugger/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flake8-debugger/default.nix
@@ -1,4 +1,10 @@
-{ lib, fetchPypi, buildPythonPackage, flake8, pycodestyle, pytestrunner, pytest }:
+{ lib, fetchPypi, buildPythonPackage, pythonOlder
+, flake8
+, importlib-metadata
+, pycodestyle
+, pytestrunner
+, pytest
+}:
 
 buildPythonPackage rec {
   pname = "flake8-debugger";
@@ -11,7 +17,8 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ pytestrunner ];
 
-  propagatedBuildInputs = [ flake8 pycodestyle ];
+  propagatedBuildInputs = [ flake8 pycodestyle ]
+    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   checkInputs = [ pytest ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/flake8-future-import/default.nix b/nixpkgs/pkgs/development/python-modules/flake8-future-import/default.nix
index 0a60761b9433..e819422c572f 100644
--- a/nixpkgs/pkgs/development/python-modules/flake8-future-import/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flake8-future-import/default.nix
@@ -1,4 +1,4 @@
-{ lib, isPy27, fetchFromGitHub, buildPythonPackage, fetchpatch, flake8, six }:
+{ lib, isPy27, fetchFromGitHub, buildPythonPackage, pythonOlder, fetchpatch, flake8, importlib-metadata, six }:
 
 buildPythonPackage rec {
   pname = "flake8-future-import";
@@ -12,7 +12,10 @@ buildPythonPackage rec {
     sha256 = "00q8n15xdnvqj454arn7xxksyrzh0dw996kjyy7g9rdk0rf8x82z";
   };
 
-  propagatedBuildInputs = [ flake8 six ];
+  propagatedBuildInputs = [ flake8 six ]
+    ++ lib.optionals (pythonOlder "3.8") [
+      importlib-metadata
+    ];
 
   # Upstream disables this test case naturally on python 3, but it also fails
   # inside NixPkgs for python 2. Since it's going to be deleted, we just skip it
diff --git a/nixpkgs/pkgs/development/python-modules/flake8/default.nix b/nixpkgs/pkgs/development/python-modules/flake8/default.nix
index c6cf1bf2ab1f..e44aac202cf4 100644
--- a/nixpkgs/pkgs/development/python-modules/flake8/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flake8/default.nix
@@ -1,25 +1,27 @@
 { stdenv, buildPythonPackage, fetchPypi, pythonOlder
 , mock, pytest, pytestrunner
-, configparser, enum34, mccabe, pycodestyle, pyflakes, entrypoints, functools32, typing
+, configparser, enum34, mccabe, pycodestyle, pyflakes, functools32, typing, importlib-metadata
 }:
 
 buildPythonPackage rec {
   pname = "flake8";
-  version = "3.7.9";
+  version = "3.8.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "45681a117ecc81e870cbf1262835ae4af5e7a8b08e40b944a8a6e6b895914cfb";
+    sha256 = "f04b9fcbac03b0a3e58c0ab3a0ecc462e023a9faf046d57794184028123aa208";
   };
 
   checkInputs = [ pytest mock pytestrunner ];
-  propagatedBuildInputs = [ entrypoints pyflakes pycodestyle mccabe ]
+  propagatedBuildInputs = [ pyflakes pycodestyle mccabe ]
     ++ stdenv.lib.optionals (pythonOlder "3.2") [ configparser functools32 ]
     ++ stdenv.lib.optionals (pythonOlder "3.4") [ enum34 ]
-    ++ stdenv.lib.optionals (pythonOlder "3.5") [ typing ];
+    ++ stdenv.lib.optionals (pythonOlder "3.5") [ typing ]
+    ++ stdenv.lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
+  # fixtures fail to initialize correctly
   checkPhase = ''
-    py.test tests
+    py.test tests --ignore=tests/integration/test_checker.py
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/flaky/default.nix b/nixpkgs/pkgs/development/python-modules/flaky/default.nix
index 4fe798647912..9bf20e6cc3b5 100644
--- a/nixpkgs/pkgs/development/python-modules/flaky/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flaky/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "flaky";
-  version = "3.6.1";
+  version = "3.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8cd5455bb00c677f787da424eaf8c4a58a922d0e97126d3085db5b279a98b698";
+    sha256 = "3ad100780721a1911f57a165809b7ea265a7863305acb66708220820caf8aa0d";
   };
 
   checkInputs = [ mock nose pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/flask-admin/default.nix b/nixpkgs/pkgs/development/python-modules/flask-admin/default.nix
index 5803d8ea2c7d..dc1e795054fe 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-admin/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-admin/default.nix
@@ -8,12 +8,16 @@
 , wtf-peewee
 , sqlalchemy
 , sqlalchemy-citext
+, sqlalchemy-utils
 , flask-mongoengine
 , flask_sqlalchemy
 , flask-babelex
 , shapely
 , geoalchemy2
 , psycopg2
+, arrow
+, colour
+, email_validator
 , flask
 , wtforms
 , isPy27
@@ -22,12 +26,12 @@
 
 buildPythonPackage rec {
   pname = "flask-admin";
-  version = "1.5.3";
+  version = "1.5.6";
 
   src = fetchPypi {
     pname = "Flask-Admin";
     inherit version;
-    sha256 = "ca0be6ec11a6913b73f656c65c444ae5be416c57c75638dd3199376ce6bc7422";
+    sha256 = "1f31vzc0p2xni5mh1wvjk9jxf4ddlx2fj4r0f3vv2n9db3c63iv8";
   };
 
   checkInputs = [
@@ -38,12 +42,16 @@ buildPythonPackage rec {
     wtf-peewee
     sqlalchemy
     sqlalchemy-citext
+    sqlalchemy-utils
     flask-mongoengine
     flask_sqlalchemy
     flask-babelex
     shapely
     geoalchemy2
     psycopg2
+    arrow
+    colour
+    email_validator
   ];
 
   propagatedBuildInputs = [
@@ -52,13 +60,14 @@ buildPythonPackage rec {
   ] ++ lib.optionals isPy27 [ enum34 ];
 
   checkPhase = ''
-    # disable tests that require mongodb, postresql
+    # disable tests that require mongodb, postresql, or network
     nosetests \
      -e "mongoengine" \
      -e "pymongo" \
      -e "test_form_upload" \
      -e "test_postgres" \
      -e "geoa" \
+     -e "test_ajax_fk" \
      flask_admin/tests
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/flask-api/default.nix b/nixpkgs/pkgs/development/python-modules/flask-api/default.nix
index bbac045675fa..3bc3061b3b5f 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-api/default.nix
@@ -1,9 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, flask, markdown }:
+{ lib, buildPythonPackage, pythonOlder, fetchPypi, flask, markdown }:
 
 buildPythonPackage rec {
   pname = "Flask-API";
   version = "2.0";
 
+  disabled = pythonOlder "3.6";
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "6986642e5b25b7def710ca9489ed2b88c94006bfc06eca01c78da7cf447e66e5";
diff --git a/nixpkgs/pkgs/development/python-modules/flask-appbuilder/default.nix b/nixpkgs/pkgs/development/python-modules/flask-appbuilder/default.nix
index 01bd180a5ae4..5119d3c39ac1 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-appbuilder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-appbuilder/default.nix
@@ -66,7 +66,8 @@ buildPythonPackage rec {
       --replace "marshmallow>=2.18.0, <4.0.0" "marshmallow" \
       --replace "PyJWT>=1.7.1" "PyJWT" \
       --replace "Flask-SQLAlchemy>=2.4, <3" "Flask-SQLAlchemy" \
-      --replace "Flask-JWT-Extended>=3.18, <4" "Flask-JWT-Extended"
+      --replace "Flask-JWT-Extended>=3.18, <4" "Flask-JWT-Extended" \
+      --replace "Flask-Login>=0.3, <0.5" "Flask-Login"
   '';
 
   # majority of tests require network access or mongo
diff --git a/nixpkgs/pkgs/development/python-modules/flask-assets/default.nix b/nixpkgs/pkgs/development/python-modules/flask-assets/default.nix
index 2fbfb17def4f..390657e9c823 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-assets/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-assets/default.nix
@@ -2,15 +2,17 @@
 
 buildPythonPackage rec {
   pname = "Flask-Assets";
-  version = "0.12";
+  version = "2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ivqsihk994rxw58vdgzrx4d77d7lpzjm4qxb38hjdgvi5xm4cb0";
+    sha256 = "1dfdea35e40744d46aada72831f7613d67bf38e8b20ccaaa9e91fdc37aa3b8c2";
   };
 
   patchPhase = ''
     substituteInPlace tests/test_integration.py --replace 'static_path=' 'static_url_path='
+    substituteInPlace tests/test_integration.py --replace "static_folder = '/'" "static_folder = '/x'"
+    substituteInPlace tests/test_integration.py --replace "'/foo'" "'/x/foo'"
   '';
 
   propagatedBuildInputs = [ flask webassets flask_script nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/flask-caching/default.nix b/nixpkgs/pkgs/development/python-modules/flask-caching/default.nix
index 64c3e3384dcc..57c95cf8800a 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-caching/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-caching/default.nix
@@ -1,12 +1,13 @@
-{ lib, buildPythonPackage, fetchPypi, flask, pytest, pytestcov, pytest-xprocess, pytestcache }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, flask, pytest, pytestcov, pytest-xprocess, pytestcache }:
 
 buildPythonPackage rec {
   pname = "Flask-Caching";
-  version = "1.8.0";
+  version = "1.9.0";
+  disabled = isPy27; # invalid python2 syntax
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3d0bd13c448c1640334131ed4163a12aff7df2155e73860f07fc9e5e75de7126";
+    sha256 = "a0356ad868b1d8ec2d0e675a6fe891c41303128f8904d5d79e180d8b3f952aff";
   };
 
   propagatedBuildInputs = [ flask ];
diff --git a/nixpkgs/pkgs/development/python-modules/flask-compress/default.nix b/nixpkgs/pkgs/development/python-modules/flask-compress/default.nix
index b602fcfd4947..cf9abdc596ab 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-compress/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-compress/default.nix
@@ -1,15 +1,17 @@
-{ stdenv, fetchPypi, buildPythonPackage, flask }:
+{ stdenv, fetchPypi, buildPythonPackage, flask
+, brotli
+}:
 
 buildPythonPackage rec {
-  version = "1.4.0";
+  version = "1.5.0";
   pname = "Flask-Compress";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1cxdbdiyxkspg7vkchfmaqr7c6q79gwvakna3fjcc6nivps971j6";
+    sha256 = "f367b2b46003dd62be34f7fb1379938032656dca56377a9bc90e7188e4289a7c";
   };
 
-  propagatedBuildInputs = [ flask ];
+  propagatedBuildInputs = [ flask brotli ];
 
   meta = with stdenv.lib; {
     description = "Compress responses in your Flask app with gzip";
diff --git a/nixpkgs/pkgs/development/python-modules/flask-httpauth/default.nix b/nixpkgs/pkgs/development/python-modules/flask-httpauth/default.nix
index d2e6cf3e47bf..ad3e42876d0f 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-httpauth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-httpauth/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-HTTPAuth";
-  version = "4.0.0";
+  version = "4.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1z3ad8sm24xl2lazdia92br1a2nigqwaf1lfsa77j5pz6gf2xmj7";
+    sha256 = "9e028e4375039a49031eb9ecc40be4761f0540476040f6eff329a31dabd4d000";
   };
 
   propagatedBuildInputs = [ flask ];
@@ -15,6 +15,6 @@ buildPythonPackage rec {
     description = "Extension that provides HTTP authentication for Flask routes";
     homepage = "https://github.com/miguelgrinberg/Flask-HTTPAuth";
     license = licenses.mit;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix b/nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix
index 041935e28e30..c3db5094aef9 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-limiter/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-Limiter";
-  version = "1.1.0";
+  version = "1.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "905c35cd87bf60c92fd87922ae23fe27aa5fb31980bab31fc00807adee9f5a55";
+    sha256 = "08d6d7534a847c532fd36d0df978f93908d8616813085941c862bbcfcf6811aa";
   };
 
   propagatedBuildInputs = [ flask limits ];
diff --git a/nixpkgs/pkgs/development/python-modules/flask-login/default.nix b/nixpkgs/pkgs/development/python-modules/flask-login/default.nix
index 8a48bbdd7da6..a4cd86ee69d4 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-login/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-login/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-Login";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1v2j8zd558xfmgn3rfbw0xz4vizjcnk8kqw52q4f4d9ygfnc25f8";
+    sha256 = "6d33aef15b5bcead780acc339464aae8a6e28f13c90d8b1cf9de8b549d1c0b4b";
   };
 
   checkInputs = [ nose mock semantic-version ];
diff --git a/nixpkgs/pkgs/development/python-modules/flask-marshmallow/default.nix b/nixpkgs/pkgs/development/python-modules/flask-marshmallow/default.nix
index b03f3307d085..5d783f6c7c45 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-marshmallow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-marshmallow/default.nix
@@ -4,17 +4,17 @@
 
 buildPythonPackage rec {
   pname = "flask-marshmallow";
-  version = "0.10.1";
+  version = "0.13.0";
 
   meta = {
     homepage = "https://github.com/marshmallow-code/flask-marshmallow";
     description = "Flask + marshmallow for beautiful APIs";
     license = lib.licenses.mit;
-  }; 
+  };
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0hbp0lrdlzpcdjv1jn2hk98z9gg624nswcm0hi48k4rk28x9xsb9";
+    sha256 = "aefc1f1d96256c430a409f08241bab75ffe97e5d14ac5d1f000764e39bf4873a";
   };
 
   propagatedBuildInputs = [ flask marshmallow ];
diff --git a/nixpkgs/pkgs/development/python-modules/flask-restful/default.nix b/nixpkgs/pkgs/development/python-modules/flask-restful/default.nix
index 17c63f326ea4..d5b48fd0428a 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-restful/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-restful/default.nix
@@ -1,36 +1,26 @@
 { lib, buildPythonPackage, fetchPypi, fetchpatch, isPy3k
-, nose, mock, blinker
+, nose, mock, blinker, pytest
 , flask, six, pytz, aniso8601, pycrypto
 }:
 
 buildPythonPackage rec {
   pname = "Flask-RESTful";
-  version = "0.3.6";
+  version = "0.3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01rlvl2iq074ciyn4schmjip7cyplkwkysbb8f610zil06am35ap";
+    sha256 = "05b9lzx5yc3wgml2bcq50lq35h66m8zpj6dc9advcb5z3acsbaay";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/flask-restful/flask-restful/commit/54979f0a49b2217babc53c5b65b5df10b6de8e05.patch";
-      sha256 = "11s6ag6l42g61ccg5jw9j1f26hwgjfa3sp890cbl5r4hy5ycpyr5";
-    })
-    (fetchpatch {
-      url = "https://github.com/flask-restful/flask-restful/commit/f45e81a45ed03922fd225afe27006315811077e6.patch";
-      sha256 = "16avd369j5r08d1l23mwbba26zjwnmfqvfvnfz02am3gr5l6p3gl";
-    })
-  ];
-
-  postPatch = lib.optionalString isPy3k ''
-    # TypeError: Only byte strings can be passed to C code
-    rm tests/test_crypto.py tests/test_paging.py
-  '';
+  propagatedBuildInputs = [ flask six pytz aniso8601 pycrypto ];
 
-  checkInputs = [ nose mock blinker ];
+  checkInputs = [ pytest nose mock blinker ];
 
-  propagatedBuildInputs = [ flask six pytz aniso8601 pycrypto ];
+  # test_reqparse.py: werkzeug move Multidict location (only imported in tests)
+  # handle_non_api_error isn't updated for addition encoding argument
+  checkPhase = ''
+    pytest --ignore=tests/test_reqparse.py -k 'not handle_non_api_error'
+  '';
 
   meta = with lib; {
     homepage = "https://flask-restful.readthedocs.io/";
diff --git a/nixpkgs/pkgs/development/python-modules/flask-restx/default.nix b/nixpkgs/pkgs/development/python-modules/flask-restx/default.nix
new file mode 100644
index 000000000000..9a13ebac647b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/flask-restx/default.nix
@@ -0,0 +1,50 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, aniso8601
+, jsonschema
+, flask
+, werkzeug
+, pytz
+, faker
+, six
+, enum34
+, isPy27
+, mock
+, blinker
+, pytest-flask
+, pytest-mock
+, pytest-benchmark
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "flask-restx";
+  version = "0.2.0";
+
+  # Tests not included in PyPI tarball
+  src = fetchFromGitHub {
+    owner = "python-restx";
+    repo = pname;
+    rev = version;
+    sha256 = "0xf2vkmdngp9cv9klznizai4byxjcf0iqh1pr4b83nann0jxqwy7";
+  };
+
+  propagatedBuildInputs = [ aniso8601 jsonschema flask werkzeug pytz six ]
+    ++ lib.optionals isPy27 [ enum34 ];
+
+  checkInputs = [ pytestCheckHook faker mock pytest-flask pytest-mock pytest-benchmark blinker ];
+
+  pytestFlagsArray = [
+    "--benchmark-disable"
+    "--deselect=tests/test_inputs.py::URLTest::test_check"
+    "--deselect=tests/test_inputs.py::EmailTest::test_valid_value_check"
+  ];
+
+  meta = with lib; {
+    homepage = "https://flask-restx.readthedocs.io/en/${version}/";
+    description = "Fully featured framework for fast, easy and documented API development with Flask";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix b/nixpkgs/pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix
index d6912de6fe86..f8001bc2aff5 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , isPy3k
 , flask
+, werkzeug
 }:
 
 buildPythonPackage rec {
@@ -20,8 +21,13 @@ buildPythonPackage rec {
 
   disabled = !isPy3k;
 
+  postPatch = ''
+    sed -i 's@werkzeug.contrib.fixers@werkzeug.middleware.proxy_fix@g' flask_reverse_proxy_fix/middleware/__init__.py
+  '';
+
   propagatedBuildInputs = [
     flask
+    werkzeug
   ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/flask-socketio/default.nix b/nixpkgs/pkgs/development/python-modules/flask-socketio/default.nix
index e0e56aa6e92a..b7bd0fe7f3af 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-socketio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-socketio/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-SocketIO";
-  version = "4.2.1";
+  version = "4.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2172dff1e42415ba480cee02c30c2fc833671ff326f1598ee3d69aa02cf768ec";
+    sha256 = "36c1d5765010d1f4e4f05b4cc9c20c289d9dc70698c88d1addd0afcfedc5b062";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/flask-sqlalchemy/default.nix b/nixpkgs/pkgs/development/python-modules/flask-sqlalchemy/default.nix
index 594af9f74bf4..c811ce24157e 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-sqlalchemy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-sqlalchemy/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Flask-SQLAlchemy";
-  version = "2.4.3";
+  version = "2.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0b656fbf87c5f24109d859bafa791d29751fabbda2302b606881ae5485b557a5";
+    sha256 = "1rgsj49gnx361hnb3vn6c1h17497qh22yc3r70l1r6w0mw71bixz";
   };
 
   propagatedBuildInputs = [ flask sqlalchemy ];
diff --git a/nixpkgs/pkgs/development/python-modules/flask-swagger-ui/default.nix b/nixpkgs/pkgs/development/python-modules/flask-swagger-ui/default.nix
index a281864117bc..f2908f43b00a 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-swagger-ui/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-swagger-ui/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "flask-swagger-ui";
-  version = "3.20.9";
+  version = "3.25.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3282c770764c8053360f33b2fc120e1d169ecca2138537d0e6e1135b1f9d4ff2";
+    sha256 = "42d098997e06b04f992609c4945cc990738b269c153d8388fc59a91a5dfcee9e";
   };
 
   doCheck = false;  # there are no tests
diff --git a/nixpkgs/pkgs/development/python-modules/flask-testing/default.nix b/nixpkgs/pkgs/development/python-modules/flask-testing/default.nix
index ece8843209c9..feb3766067bf 100644
--- a/nixpkgs/pkgs/development/python-modules/flask-testing/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flask-testing/default.nix
@@ -1,7 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, pythonOlder
-, flask, blinker, twill }:
-
-with stdenv.lib;
+{ stdenv, fetchPypi, buildPythonPackage, isPy3k, flask, blinker, twill }:
 
 buildPythonPackage rec {
   pname = "Flask-Testing";
@@ -13,13 +10,20 @@ buildPythonPackage rec {
   };
 
   postPatch = ''
-    sed -i -e 's/twill==0.9.1/twill/' setup.py
+    substituteInPlace setup.py --replace "twill==0.9.1" "twill"
   '';
 
-  buildInputs = optionals (pythonOlder "3.0") [ twill ];
-  propagatedBuildInputs = [ flask blinker ];
+  propagatedBuildInputs = [ flask ];
+
+  checkInputs = [ blinker ] ++ stdenv.lib.optionals (!isPy3k) [ twill ];
+
+  # twill integration is outdated in Python 2, hence it the tests fails.
+  # Some of the tests use localhost networking on darwin.
+  doCheck = isPy3k && !stdenv.isDarwin;
+
+  pythonImportsCheck = [ "flask_testing" ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Flask unittest integration.";
     homepage = "https://pythonhosted.org/Flask-Testing/";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/flit/default.nix b/nixpkgs/pkgs/development/python-modules/flit/default.nix
index 88a4028aa6d2..c0944f4ff17b 100644
--- a/nixpkgs/pkgs/development/python-modules/flit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flit/default.nix
@@ -7,7 +7,7 @@
 , requests_download
 , zipfile36
 , pythonOlder
-, pytest_4
+, pytest
 , testpath
 , responses
 , pytoml
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     zipfile36
   ];
 
-  checkInputs = [ pytest_4 testpath responses ];
+  checkInputs = [ pytest testpath responses ];
 
   # Disable test that needs some ini file.
   # Disable test that wants hg
diff --git a/nixpkgs/pkgs/development/python-modules/flower/default.nix b/nixpkgs/pkgs/development/python-modules/flower/default.nix
index 3a2f987ed510..b31cbc7424d9 100644
--- a/nixpkgs/pkgs/development/python-modules/flower/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flower/default.nix
@@ -1,34 +1,35 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, Babel
 , celery
-, future
 , humanize
-, importlib-metadata
 , mock
 , pytz
 , tornado
+, prometheus_client
 }:
 
 buildPythonPackage rec {
   pname = "flower";
-  version = "0.9.4";
+  version = "0.9.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "25782840f7ffc25dcf478d94535a2d815448de4aa6c71426be6abfa9ca417448";
+    sha256 = "171zckhk9ni14f1d82wf62hhciy0gx13fd02sr9m9qlj50fnv4an";
   };
 
-  # flower and humanize aren't listed in setup.py but imported
+  postPatch = ''
+    # rely on using example programs (flowers/examples/tasks.py) which
+    # are not part of the distribution
+    rm tests/load.py
+  '';
+
   propagatedBuildInputs = [
-    Babel
     celery
-    future
-    importlib-metadata
     pytz
     tornado
     humanize
+    prometheus_client
   ];
 
   checkInputs = [ mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/flowlogs_reader/default.nix b/nixpkgs/pkgs/development/python-modules/flowlogs_reader/default.nix
index 38faa5f12db4..44f347edb8ee 100644
--- a/nixpkgs/pkgs/development/python-modules/flowlogs_reader/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/flowlogs_reader/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "flowlogs_reader";
-  version = "2.0.0";
+  version = "2.2.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "256c67afabc1783e8a378c7589877f76660c6a645aa6dfe1759e26f4a93a22d0";
+    sha256 = "7c24156a3d6887b641ceb37b57d91805bee6c3352e8a3ca97a3274217ead9294";
   };
 
   propagatedBuildInputs = [ botocore boto3 docutils ];
diff --git a/nixpkgs/pkgs/development/python-modules/fluent-logger/default.nix b/nixpkgs/pkgs/development/python-modules/fluent-logger/default.nix
index d47465c97234..70c9173f4d50 100644
--- a/nixpkgs/pkgs/development/python-modules/fluent-logger/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fluent-logger/default.nix
@@ -9,10 +9,21 @@ buildPythonPackage rec {
     sha256 = "a7d47eae4d2a11c8cb0df10ae3d034d95b0b8cef9d060e59e7519ad1f82ffa73";
   };
 
+  prePatch = ''
+    substituteInPlace setup.py \
+      --replace "msgpack<1.0.0" "msgpack"
+  '';
+
   propagatedBuildInputs = [ msgpack ];
-  
+
   # Tests fail because absent in package
   doCheck = false;
+  pythonImportsCheck = [
+    "fluent"
+    "fluent.event"
+    "fluent.handler"
+    "fluent.sender"
+  ];
 
   meta = with lib; {
     description = "A structured logger for Fluentd (Python)";
diff --git a/nixpkgs/pkgs/development/python-modules/flufl/bounce.nix b/nixpkgs/pkgs/development/python-modules/flufl/bounce.nix
index 0a2e8dff1b73..deb92ea9ce85 100644
--- a/nixpkgs/pkgs/development/python-modules/flufl/bounce.nix
+++ b/nixpkgs/pkgs/development/python-modules/flufl/bounce.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "flufl.bounce";
-  version = "3.0";
+  version = "3.0.1";
 
   buildInputs = [ nose2 ];
   propagatedBuildInputs = [ atpublic zope_interface ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0k5kjqa3x6gvwwxyzb2vwi1g1i6asm1zw5fivylxz3d583y4kid2";
+    sha256 = "e432fa1ca25ddbf23e2716b177d4d1c6ab6c078e357df56b0106b92bc10a8f06";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/fontmath/default.nix b/nixpkgs/pkgs/development/python-modules/fontmath/default.nix
new file mode 100644
index 000000000000..7a23abdd0374
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/fontmath/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchPypi
+, fonttools
+, pytest, pytestrunner
+}:
+
+buildPythonPackage rec {
+  pname = "fontMath";
+  version = "0.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09xdqdjyjlx5k9ymi36d7hkgvn55zzjzd65l2yqidkfazlmh14ss";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [ fonttools ];
+  checkInputs = [ pytest pytestrunner ];
+
+  meta = with lib; {
+    description = "A collection of objects that implement fast font, glyph, etc. math";
+    homepage = "https://github.com/robotools/fontMath/";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/fontparts/default.nix b/nixpkgs/pkgs/development/python-modules/fontparts/default.nix
new file mode 100644
index 000000000000..43fdae8ccafc
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/fontparts/default.nix
@@ -0,0 +1,40 @@
+{ lib, buildPythonPackage, fetchPypi, python
+, fonttools, lxml, fs, unicodedata2
+, defcon, fontpens, fontmath, booleanoperations
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "fontParts";
+  version = "0.9.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0q8ilc1ypmasci2x1nq69hnfsnvbi1czaxgsb3zgqd8777bn5v9z";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [
+    booleanoperations
+    fonttools
+    unicodedata2  # fonttools[unicode] extra
+    lxml          # fonttools[lxml] extra
+    fs            # fonttools[ufo] extra
+    defcon
+    fontpens      # defcon[pens] extra
+    fontmath
+  ];
+
+  checkPhase = ''
+    ${python.interpreter} Lib/fontParts/fontshell/test.py
+  '';
+  checkInputs = [ pytest ];
+
+  meta = with lib; {
+    description = "An API for interacting with the parts of fonts during the font development process.";
+    homepage = "https://github.com/robotools/fontParts";
+    changelog = "https://github.com/robotools/fontParts/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/fontpens/default.nix b/nixpkgs/pkgs/development/python-modules/fontpens/default.nix
new file mode 100644
index 000000000000..02adb3b06426
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/fontpens/default.nix
@@ -0,0 +1,38 @@
+{ lib, buildPythonPackage, fetchPypi, fonttools }:
+
+buildPythonPackage rec {
+  pname = "fontPens";
+  version = "0.2.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1za15dzsnymq6d9x7xdfqwgw4a3003wj75fn2crhyidkfd2s3nd6";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [ fonttools ];
+
+  # can't run normal tests due to circular dependency with fontParts
+  doCheck = false;
+  pythonImportsCheck = [ "fontPens" ] ++ (builtins.map (s: "fontPens." + s) [
+    "angledMarginPen"
+    "digestPointPen"
+    "flattenPen"
+    "guessSmoothPointPen"
+    "marginPen"
+    "penTools"
+    "printPen"
+    "printPointPen"
+    "recordingPointPen"
+    "thresholdPen"
+    "thresholdPointPen"
+    "transformPointPen"
+  ]);
+
+  meta = with lib; {
+    description = "A collection of classes implementing the pen protocol for manipulating glyphs";
+    homepage = "https://github.com/robotools/fontPens";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/fonttools/default.nix b/nixpkgs/pkgs/development/python-modules/fonttools/default.nix
index ddcf2878334c..a1433d08bd04 100644
--- a/nixpkgs/pkgs/development/python-modules/fonttools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fonttools/default.nix
@@ -1,38 +1,70 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, isPy27
-, numpy
+, fetchFromGitHub
+, pythonOlder
+, brotlipy
+, zopfli
+, fs
+, lxml
+, scipy
+, munkres
+, unicodedata2
+, sympy
+, matplotlib
+, reportlab
 , pytest
-, pytestrunner
+, pytest-randomly
 , glibcLocales
 }:
 
 buildPythonPackage rec {
   pname = "fonttools";
-  version = "4.2.5";
-  disabled = isPy27;
+  version = "4.14.0";
+  disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "f05bff703e31d5f28e713afe89aed0e6649b02c09d8df958e8a02df9c9b2fc0e";
-    extension = "zip";
+  src = fetchFromGitHub {
+    owner  = pname;
+    repo   = pname;
+    rev    = version;
+    sha256 = "0aiaxjg2v2391gxnhp4nvmgfb3ygm6x7n080s5mnkfjq2bq319in";
   };
 
-  buildInputs = [
-    numpy
-  ];
-
+  # all dependencies are optional, but
+  # we run the checks with them
   checkInputs = [
     pytest
-    pytestrunner
+    pytest-randomly
     glibcLocales
+    # etree extra
+    lxml
+    # ufo extra
+    fs
+    # woff extra
+    brotlipy
+    zopfli
+    # unicode extra
+    unicodedata2
+    # interpolatable extra
+    scipy
+    munkres
+    # symfont
+    sympy
+    # varLib
+    matplotlib
+    # pens
+    reportlab
   ];
 
   preCheck = ''
     export LC_ALL="en_US.UTF-8"
   '';
 
+  # avoid timing issues with timestamps in subset_test.py and ttx_test.py
+  checkPhase = ''
+    pytest Tests fontTools \
+      -k 'not ttcompile_timestamp_calcs and not recalc_timestamp'
+  '';
+
   meta = {
     homepage = "https://github.com/fonttools/fonttools";
     description = "A library to manipulate font files from Python";
diff --git a/nixpkgs/pkgs/development/python-modules/foxdot/default.nix b/nixpkgs/pkgs/development/python-modules/foxdot/default.nix
index bbf8395190f8..cc9ad87052b0 100644
--- a/nixpkgs/pkgs/development/python-modules/foxdot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/foxdot/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "FoxDot";
-  version = "0.8.8";
+  version = "0.8.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06y626kgaz1wn1qajlngihpvd4qz8m6lx6sknmjqhhrznyji58wi";
+    sha256 = "00yqpkv7cxwk301cyiwjzr9yfq8hpnhqyspw3z874ydrl3cmssdb";
   };
 
   propagatedBuildInputs = [ tkinter supercollider ];
diff --git a/nixpkgs/pkgs/development/python-modules/fpdf/default.nix b/nixpkgs/pkgs/development/python-modules/fpdf/default.nix
index e8e34f89c435..ca05660feb34 100644
--- a/nixpkgs/pkgs/development/python-modules/fpdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fpdf/default.nix
@@ -16,6 +16,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/reingart/pyfpdf";
     description = "Simple PDF generation for Python";
     license = lib.licenses.lgpl3;
-    maintainers = with lib.maintainers; [ geistesk ];
+    maintainers = with lib.maintainers; [ oxzi ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/freetype-py/default.nix b/nixpkgs/pkgs/development/python-modules/freetype-py/default.nix
new file mode 100644
index 000000000000..a1259b85673a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/freetype-py/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchPypi, substituteAll, stdenv, setuptools_scm, freetype }:
+
+buildPythonPackage rec {
+  pname = "freetype-py";
+  version = "2.1.0.post1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1k62fx53qrv9nb73mpqi2r11wzbx41qfv5qppvh6rylywnrknf3n";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./library-paths.patch;
+      freetype = "${freetype.out}/lib/libfreetype${stdenv.hostPlatform.extensions.sharedLibrary}";
+    })
+  ];
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [ freetype ];
+
+  pythonImportsCheck =  [ "freetype" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/rougier/freetype-py";
+    description = "FreeType (high-level Python API)";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ goertzenator ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/freetype-py/library-paths.patch b/nixpkgs/pkgs/development/python-modules/freetype-py/library-paths.patch
new file mode 100644
index 000000000000..a30c7e7355fa
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/freetype-py/library-paths.patch
@@ -0,0 +1,37 @@
+diff --git a/freetype/raw.py b/freetype/raw.py
+index ff3bea3..78c68ab 100644
+--- a/freetype/raw.py
++++ b/freetype/raw.py
+@@ -19,31 +19,7 @@ from freetype.ft_enums import *
+ from freetype.ft_errors import *
+ from freetype.ft_structs import *
+ 
+-# First, look for a bundled FreeType shared object on the top-level of the
+-# installed freetype-py module.
+-system = platform.system()
+-if system == 'Windows':
+-    library_name = 'libfreetype.dll'
+-elif system == 'Darwin':
+-    library_name = 'libfreetype.dylib'
+-else:
+-    library_name = 'libfreetype.so'
+-
+-filename = os.path.join(os.path.dirname(freetype.__file__), library_name)
+-
+-# If no bundled shared object is found, look for a system-wide installed one.
+-if not os.path.exists(filename):
+-    # on windows all ctypes does when checking for the library
+-    # is to append .dll to the end and look for an exact match
+-    # within any entry in PATH.
+-    filename = ctypes.util.find_library('freetype')
+-
+-    if filename is None:
+-        if platform.system() == 'Windows':
+-            # Check current working directory for dll as ctypes fails to do so
+-            filename = os.path.join(os.path.realpath('.'), "freetype.dll")
+-        else:
+-            filename = library_name
++filename = "@freetype@"
+ 
+ try:
+     _lib = ctypes.CDLL(filename)
diff --git a/nixpkgs/pkgs/development/python-modules/freezegun/default.nix b/nixpkgs/pkgs/development/python-modules/freezegun/default.nix
index 3a45e0942f83..92254b94dee9 100644
--- a/nixpkgs/pkgs/development/python-modules/freezegun/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/freezegun/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , dateutil
 , six
 , mock
@@ -19,6 +20,8 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ dateutil six ];
   checkInputs = [ mock nose pytest ];
+  # contains python3 specific code
+  doCheck = !isPy27;
 
   meta = with stdenv.lib; {
     description = "FreezeGun: Let your Python tests travel through time";
diff --git a/nixpkgs/pkgs/development/python-modules/fsspec/default.nix b/nixpkgs/pkgs/development/python-modules/fsspec/default.nix
index 8f2c11f4265b..a20b00087b79 100644
--- a/nixpkgs/pkgs/development/python-modules/fsspec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fsspec/default.nix
@@ -2,28 +2,32 @@
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
-, pytest
+, pytestCheckHook
+, numpy
 }:
 
 buildPythonPackage rec {
   pname = "fsspec";
-  version = "0.6.2";
+  version = "0.7.4";
   disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "intake";
     repo = "filesystem_spec";
     rev = version;
-    sha256 = "1y3d6xw14rcldz9779ir6mjaff4rk82ch6ahn4y9mya0qglpc31i";
+    sha256 = "0ylslmkzc803050yh8dl6cagabb9vrygz6w2zsmglzn4v9sz6jgd";
   };
 
   checkInputs = [
-    pytest
+    pytestCheckHook
+    numpy
   ];
 
-  checkPhase = ''
-    pytest
-  '';
+  disabledTests = [
+    # Test assumes user name is part of $HOME
+    # AssertionError: assert 'nixbld' in '/homeless-shelter/foo/bar'
+    "test_strip_protocol_expanduser"
+  ];
 
   meta = with lib; {
     description = "A specification that python filesystems should adhere to";
diff --git a/nixpkgs/pkgs/development/python-modules/ftfy/default.nix b/nixpkgs/pkgs/development/python-modules/ftfy/default.nix
index bb421d746d4f..a781230a9193 100644
--- a/nixpkgs/pkgs/development/python-modules/ftfy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ftfy/default.nix
@@ -10,18 +10,13 @@
 
 buildPythonPackage rec {
   pname = "ftfy";
+  version = "5.8";
 
-  version = "5.7";
-  # ftfy v5 only supports python3. Since at the moment the only
-  # packages that use ftfy are spacy and textacy which both support
-  # python 2 and 3, they have pinned ftfy to the v4 branch.
-  # I propose to stick to v4 until another package requires v5.
-  # At that point we can make a ftfy_v4 package.
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1j143kfpnskksfzs0pnr37kwph6m7c71p8gdldv26x2b7arwiyb7";
+    sha256 = "081p5z20dirrf1i3nshylc31qd5mbxibjc7gzj8x4isbiizpdisi";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/ftputil/default.nix b/nixpkgs/pkgs/development/python-modules/ftputil/default.nix
index 941b5792f304..fb1bf7549fcc 100644
--- a/nixpkgs/pkgs/development/python-modules/ftputil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ftputil/default.nix
@@ -1,15 +1,16 @@
-{ lib, buildPythonPackage, fetchPypi, pytest }:
+{ lib, buildPythonPackage, fetchPypi, pythonOlder, pytest, freezegun }:
 
 buildPythonPackage rec {
-  version = "3.4";
+  version = "4.0.0";
   pname = "ftputil";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "374b01e174079e91babe2a462fbd6f6c00dbfbfa299dec04239ca4229fbf8762";
+    sha256 = "d494c47f24fd3f8fbe92d40d90e0902c0e04288f200688af2b16d6b46fe441e1";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest freezegun ];
 
   checkPhase = ''
     touch Makefile
diff --git a/nixpkgs/pkgs/development/python-modules/fuse-python/default.nix b/nixpkgs/pkgs/development/python-modules/fuse-python/default.nix
index 8c69ead0ae00..ab87f57be395 100644
--- a/nixpkgs/pkgs/development/python-modules/fuse-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fuse-python/default.nix
@@ -11,7 +11,7 @@ buildPythonPackage rec {
 
   buildInputs = [ fuse ];
   nativeBuildInputs = [ pkgconfig ];
-  
+
   # no tests in the Pypi archive
   doCheck = false;
 
@@ -22,4 +22,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ psyanticy ];
   };
 }
-
diff --git a/nixpkgs/pkgs/development/python-modules/fx2/default.nix b/nixpkgs/pkgs/development/python-modules/fx2/default.nix
index acbaf93a4ead..bcc7a4b5c988 100644
--- a/nixpkgs/pkgs/development/python-modules/fx2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/fx2/default.nix
@@ -7,15 +7,15 @@
 , crcmod
 }:
 
-buildPythonPackage {
+buildPythonPackage rec {
   pname = "fx2";
-  version = "unstable-2020-01-25";
+  version = "0.9";
 
   src = fetchFromGitHub {
     owner = "whitequark";
     repo = "libfx2";
-    rev = "d3e37f640d706aac5e69ae4476f6cd1bd0cd6a4e";
-    sha256 = "1dsyknjpgf4wjkfr64lln1lcy7qpxdx5x3qglidrcswzv9b3i4fg";
+    rev = version;
+    sha256 = "sha256-Uk+K7ym92JX4fC3PyTNxd0UvBzoNZmtbscBYjSWChuk=";
   };
 
   nativeBuildInputs = [ sdcc ];
diff --git a/nixpkgs/pkgs/development/python-modules/gast/default.nix b/nixpkgs/pkgs/development/python-modules/gast/default.nix
index 3d073df843d4..49687ebe3184 100644
--- a/nixpkgs/pkgs/development/python-modules/gast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gast/default.nix
@@ -2,10 +2,10 @@
 
 buildPythonPackage rec {
   pname = "gast";
-  version =  "0.3.3";
+  version =  "0.4.0";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b881ef288a49aa81440d2c5eb8aeefd4c2bb8993d5f50edae7413a85bfdb3b57";
+    sha256 = "40feb7b8b8434785585ab224d1568b857edb18297e5a3047f1ba012bc83b42c1";
   };
   checkInputs = [ astunparse ] ;
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/gdown/default.nix b/nixpkgs/pkgs/development/python-modules/gdown/default.nix
new file mode 100644
index 000000000000..9af107272854
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/gdown/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonApplication
+, fetchPypi
+, filelock
+, requests
+, tqdm
+, setuptools
+}:
+
+buildPythonApplication rec {
+  pname = "gdown";
+  version = "3.12.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4b3a1301e57bfd8dce939bf25ef8fbb4b23967fd0f878eede328bdcc41386bac";
+  };
+
+  propagatedBuildInputs = [ filelock requests tqdm setuptools ];
+
+  checkPhase = ''
+    $out/bin/gdown --help > /dev/null
+  '';
+
+  meta = with lib; {
+    description = "A CLI tool for downloading large files from Google Drive";
+    homepage = "https://github.com/wkentaro/gdown";
+    license = licenses.mit;
+    maintainers = with maintainers; [ breakds ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/genzshcomp/default.nix b/nixpkgs/pkgs/development/python-modules/genzshcomp/default.nix
index 99d89e79d125..5917d71c4408 100644
--- a/nixpkgs/pkgs/development/python-modules/genzshcomp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/genzshcomp/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "genzshcomp";
-  version = "0.5.2";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d28ae62b1b2727f32dc7606bc58201b8c12894ad3d1d4fdb40e1f951e3ae8f85";
+    sha256 = "b582910d36f9ad0992756d7e9ccbe3e5cf811934b1002b51f25b99d3dda9d573";
   };
 
   buildInputs = [ setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix b/nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix
index 892b373f065c..e96c67b044db 100644
--- a/nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geoalchemy2/default.nix
@@ -3,19 +3,25 @@
 , fetchPypi
 , sqlalchemy
 , shapely
+, setuptools_scm
+, pytest
 }:
 
 buildPythonPackage rec {
   pname = "GeoAlchemy2";
-  version = "0.8.3";
+  version = "0.8.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a5a2444d90ce7f2c6b2d7bd7346c8aed16fd32c3e190e631576a51814e8f7ee9";
+    sha256 = "02jbad9vbnjx8bmfvxg77z18nymrry6li8hy9pwi0yiyvwbnycyr";
   };
 
+  nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ sqlalchemy shapely ];
 
+  # https://github.com/geoalchemy/geoalchemy2/blob/e05a676350b11f0e73609379dae5625c5de2e868/TEST.rst
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage =  "http://geoalchemy.org/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/geoip2/default.nix b/nixpkgs/pkgs/development/python-modules/geoip2/default.nix
index 1f03b1dd7254..329fe7aa07d9 100644
--- a/nixpkgs/pkgs/development/python-modules/geoip2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geoip2/default.nix
@@ -1,24 +1,29 @@
 { buildPythonPackage, lib, fetchPypi, isPy27
-, ipaddress
+, aiohttp
 , maxminddb
 , mock
+, mocket
 , requests
 , requests-mock
 }:
 
 buildPythonPackage rec {
-  version = "3.0.0";
+  version = "4.0.2";
   pname = "geoip2";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1q1ciqqd0qjkpgwsg9fws8wcqchkcq84gv2g4q3xgh2lpj3yjsaq";
+    sha256 = "4afb5d899eac08444e461239c8afb165c90234adc0b5dc952792d9da74c9091b";
   };
 
-  propagatedBuildInputs = [ requests maxminddb ]
-    ++ lib.optionals isPy27 [ ipaddress ];
+  patchPhase = ''
+    substituteInPlace requirements.txt --replace "requests>=2.24.0,<3.0.0" "requests"
+  '';
 
-  checkInputs = [ requests-mock ];
+  propagatedBuildInputs = [ aiohttp requests maxminddb ];
+
+  checkInputs = [ mocket requests-mock ];
 
   meta = with lib; {
     description = "MaxMind GeoIP2 API";
diff --git a/nixpkgs/pkgs/development/python-modules/geojson/default.nix b/nixpkgs/pkgs/development/python-modules/geojson/default.nix
index 5d0fa9024169..b762434fb65a 100644
--- a/nixpkgs/pkgs/development/python-modules/geojson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geojson/default.nix
@@ -18,6 +18,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/frewsxcv/python-geojson";
     description = "Python bindings and utilities for GeoJSON";
     license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ geistesk ];
+    maintainers = with lib.maintainers; [ oxzi ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/geopandas/default.nix b/nixpkgs/pkgs/development/python-modules/geopandas/default.nix
index 9a86acf83b50..200dfffa562b 100644
--- a/nixpkgs/pkgs/development/python-modules/geopandas/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geopandas/default.nix
@@ -1,19 +1,27 @@
 { stdenv, buildPythonPackage, fetchFromGitHub, isPy27
 , pandas, shapely, fiona, descartes, pyproj
-, pytest, Rtree }:
+, pytest, Rtree, fetchpatch }:
 
 buildPythonPackage rec {
   pname = "geopandas";
-  version = "0.7.0";
+  version = "0.8.1";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "geopandas";
     repo = "geopandas";
     rev = "v${version}";
-    sha256 = "0cfdvl4cvi0nim1qbmzf7vg0all272i8r0kj4xgdd0hr2j4jdg9p";
+    sha256 = "0618p0s0biisxk2s0h43hkc3bs1nwjk84rxbfyd6brfvs9yx4vq7";
   };
 
+  patches = [
+    # Fix for test test_numerical_operations: https://github.com/geopandas/geopandas/issues/1541
+    (fetchpatch {
+      url = "https://github.com/geopandas/geopandas/pull/1544/commits/6ce868a33a2f483b071089d51e178030fa4414d0.patch";
+      sha256 = "1sjgxrqgbhz5krx51hrv230ywszcdl6z8q3bj6830kfad8n8b5dq";
+    })
+  ];
+
   checkInputs = [ pytest Rtree ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/gevent/default.nix b/nixpkgs/pkgs/development/python-modules/gevent/default.nix
index 56467523a17d..4eb5c7cdbb9f 100644
--- a/nixpkgs/pkgs/development/python-modules/gevent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gevent/default.nix
@@ -1,16 +1,21 @@
-{ stdenv, fetchPypi, buildPythonPackage, isPyPy, python, libev, greenlet }:
+{ stdenv, fetchPypi, buildPythonPackage, isPyPy, python, libev, greenlet
+, zope_interface
+}:
 
 buildPythonPackage rec {
   pname = "gevent";
-  version = "1.4.0";
+  version = "20.5.2";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1eb7fa3b9bd9174dfe9c3b59b7a09b768ecd496debfc4976a9530a3e15c990d1";
+    sha256 = "2756de36f56b33c46f6cc7146a74ba65afcd1471922c95b6771ce87b279d689c";
   };
 
   buildInputs = [ libev ];
-  propagatedBuildInputs = stdenv.lib.optionals (!isPyPy) [ greenlet ];
+  propagatedBuildInputs = [
+    zope_interface
+  ] ++ stdenv.lib.optionals (!isPyPy) [ greenlet ];
 
   checkPhase = ''
     cd greentest
diff --git a/nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix b/nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix
index 59b11e0f6ac4..55ef8c39981a 100644
--- a/nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/geventhttpclient/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "geventhttpclient";
-  version = "1.3.1";
+  version = "1.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bd87af8854f5fb05738916c8973671f7035568aec69b7c842887d6faf9c0a01d";
+    sha256 = "f59e5153f22e4a0be27b48aece8e45e19c1da294f8c49442b1c9e4d152c5c4c3";
   };
 
   buildInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/gidgethub/default.nix b/nixpkgs/pkgs/development/python-modules/gidgethub/default.nix
index a9214cf49f70..f3b3c8d5df3d 100644
--- a/nixpkgs/pkgs/development/python-modules/gidgethub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gidgethub/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13nzc40c71kxvjxahgnc6c974xp5fpm02gqymwgfjbj2dmlzmayg";
+    sha256 = "cfabfa696d422ee91eaf1e3f01ea75e576721233cc3ea8badc7d86c30061df8e";
   };
 
   nativeBuildInputs = [ setuptools pytestrunner ];
diff --git a/nixpkgs/pkgs/development/python-modules/gin-config/default.nix b/nixpkgs/pkgs/development/python-modules/gin-config/default.nix
index 39a64781c8f9..412b0c159498 100644
--- a/nixpkgs/pkgs/development/python-modules/gin-config/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gin-config/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "gin-config";
-  version = "0.2.1";
+  version = "0.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6305325d5afe470fa5a7130883035e51950478b317750205a1532e5413d4ba4c";
+    sha256 = "6a83b7639ae76c276c0380d71d583f151b327a7c37978add314180ec1280a6cc";
 
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/gipc/default.nix b/nixpkgs/pkgs/development/python-modules/gipc/default.nix
index df1bd590d374..3fe26f4a934b 100644
--- a/nixpkgs/pkgs/development/python-modules/gipc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gipc/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "gipc";
-  version = "1.0.1";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1zg5bm30lqqd8x0jqbvr4yi8i4rzzk2hdnh280qnj2bwm5nqpghi";
+    sha256 = "06116628e9cb7b2c34c8f248d0e4859fa5943e1e07381ad2b234ae9c7ed6f4cc";
   };
 
   propagatedBuildInputs = [ gevent ];
diff --git a/nixpkgs/pkgs/development/python-modules/git-annex-adapter/default.nix b/nixpkgs/pkgs/development/python-modules/git-annex-adapter/default.nix
index ba3ff3bfd6c3..318bafb98efa 100644
--- a/nixpkgs/pkgs/development/python-modules/git-annex-adapter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/git-annex-adapter/default.nix
@@ -1,10 +1,10 @@
 { stdenv, buildPythonPackage, isPy3k, fetchFromGitHub, substituteAll
-, python, utillinux, pygit2, gitMinimal, git-annex
+, python, utillinux, pygit2, gitMinimal, git-annex, cacert
 }:
 
 buildPythonPackage rec {
   pname = "git-annex-adapter";
-  version = "0.2.1";
+  version = "0.2.2";
 
   disabled = !isPy3k;
 
@@ -13,7 +13,7 @@ buildPythonPackage rec {
     owner = "alpernebbi";
     repo = pname;
     rev = "v${version}";
-    sha256 = "146q1jhcfc7f96ajkhjffskkljk2xzivs5ih5clb8qx0sh7mj097";
+    sha256 = "0666vqspgnvmfs6j3kifwyxr6zmxjs0wlwis7br4zcq0gk32zgdx";
   };
 
   patches = [
@@ -28,11 +28,12 @@ buildPythonPackage rec {
     utillinux # `rev` is needed in tests/test_process.py
   ];
 
-  propagatedBuildInputs = [ pygit2 ];
+  propagatedBuildInputs = [ pygit2 cacert ];
 
   checkPhase = ''
     ${python.interpreter} -m unittest
   '';
+  pythonImportsCheck = [ "git_annex_adapter" ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/alpernebbi/git-annex-adapter";
diff --git a/nixpkgs/pkgs/development/python-modules/git-revise/default.nix b/nixpkgs/pkgs/development/python-modules/git-revise/default.nix
index b4de60775295..a6dd3ecb7c80 100644
--- a/nixpkgs/pkgs/development/python-modules/git-revise/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/git-revise/default.nix
@@ -1,30 +1,26 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , pythonOlder
-, tox
-, pytest
-, pylint
-, mypy
-, black
+, git
+, fetchFromGitHub
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "git-revise";
-  version = "0.5.1";
+  version = "0.6.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0l3xhg00106p7ysg4gl9dna2zcrax58mzmm0ajjaxw58jfn8wsf1";
+  # Missing tests on PyPI
+  src = fetchFromGitHub {
+    owner = "mystor";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "03v791yhips9cxz9hr07rhsgxfhwyqq17rzi7ayjhwvy65s4hzs9";
   };
 
   disabled = pythonOlder "3.6";
 
-  checkInputs = [ tox pytest pylint mypy black ];
-
-  checkPhase = ''
-    tox
-  '';
+  checkInputs = [ git pytestCheckHook ];
 
   meta = with lib; {
     description = "Efficiently update, split, and rearrange git commits";
diff --git a/nixpkgs/pkgs/development/python-modules/glasgow/default.nix b/nixpkgs/pkgs/development/python-modules/glasgow/default.nix
index 6a32364fdf31..8a63f78728e2 100644
--- a/nixpkgs/pkgs/development/python-modules/glasgow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/glasgow/default.nix
@@ -18,15 +18,15 @@
 
 buildPythonPackage rec {
   pname = "glasgow";
-  version = "unstable-2020-02-08";
+  version = "unstable-2020-06-29";
   # python software/setup.py --version
   realVersion = "0.1.dev1352+g${lib.substring 0 7 src.rev}";
 
   src = fetchFromGitHub {
     owner = "GlasgowEmbedded";
     repo = "glasgow";
-    rev = "2a8bfc981b90ba5d86c310911dbd6ffe71acd498";
-    sha256 = "01v5269bv09ggvmq6lqyhr5am51hzmwya1p5n62h84b7rdwd8q9m";
+    rev = "f885790d7927b893e631c33744622d6ebc18b5e3";
+    sha256 = "sha256-fSorSEa5K09aPEOk4XPWOFRxYl1KGVy29jOBqIvs2hk=";
   };
 
   nativeBuildInputs = [ setuptools_scm sdcc ];
diff --git a/nixpkgs/pkgs/development/python-modules/globre/default.nix b/nixpkgs/pkgs/development/python-modules/globre/default.nix
new file mode 100644
index 000000000000..ff2302f54678
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/globre/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, pythonAtLeast
+, buildPythonPackage
+, fetchPypi
+, nose
+, coverage
+}:
+
+buildPythonPackage rec {
+  pname = "globre";
+  version = "0.1.5";
+  # https://github.com/metagriffin/globre/issues/7
+  disabled = pythonAtLeast "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1qhjpg0722871dm5m7mmldf6c7mx58fbdvk1ix5i3s9py82448gf";
+  };
+
+  checkInputs = [ nose coverage ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/metagriffin/globre";
+    description = "A python glob-like regular expression generation library.";
+    maintainers = with maintainers; [ glittershark ];
+    license = licenses.gpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/globus-sdk/default.nix b/nixpkgs/pkgs/development/python-modules/globus-sdk/default.nix
index f7a897324671..7956a31492c0 100644
--- a/nixpkgs/pkgs/development/python-modules/globus-sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/globus-sdk/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "globus-sdk";
-  version = "1.9.0";
+  version = "1.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1fm0iqfbzd13m1lkd4h3ss4y9isp5cadd2w2k0qr3yqwfmrqqba2";
+    sha256 = "883a862ddd17b0f4868ec55d6697a64c13d91c41b9fa5103198d2140053abac2";
   };
 
   checkPhase = ''
@@ -23,11 +23,11 @@ buildPythonPackage rec {
 
   # No tests in archive
   doCheck = false;
-  
+
   checkInputs = [ flake8 nose2 mock ];
-  
+
   propagatedBuildInputs = [ requests pyjwt  ];
- 
+
   meta = with lib; {
     description = "A convenient Pythonic interface to Globus REST APIs, including the Transfer API and the Globus Auth API.";
     homepage =  "https://github.com/globus/globus-sdk-python";
diff --git a/nixpkgs/pkgs/development/python-modules/glom/default.nix b/nixpkgs/pkgs/development/python-modules/glom/default.nix
index cc73b26d7972..916812f15354 100644
--- a/nixpkgs/pkgs/development/python-modules/glom/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/glom/default.nix
@@ -11,19 +11,18 @@
 
 buildPythonPackage rec {
   pname = "glom";
-  version = "19.10.0";
+  version = "20.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c8a50cb9fcf0c84807836c6a73cf61285557834b9050d7bde7732b936aceb7dd";
+    sha256 = "5fa3a9d99c7f3e5410a810fa8a158c0f71e39036c47b77745c7f2e4630372f82";
   };
 
   propagatedBuildInputs = [ boltons attrs face ];
 
   checkInputs = [ pytest pyyaml ];
-  checkPhase = "pytest glom/test";
-
-  doCheck = !isPy37; # https://github.com/mahmoud/glom/issues/72
+  # test_cli.py checks the output of running "glom"
+  checkPhase = "PATH=$out/bin:$PATH pytest glom/test";
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/mahmoud/glom";
diff --git a/nixpkgs/pkgs/development/python-modules/goobook/default.nix b/nixpkgs/pkgs/development/python-modules/goobook/default.nix
index ac658b1940f4..e183e79f5703 100644
--- a/nixpkgs/pkgs/development/python-modules/goobook/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/goobook/default.nix
@@ -1,27 +1,37 @@
 { stdenv, buildPythonPackage, fetchPypi, isPy3k
-, google_api_python_client, simplejson, oauth2client, setuptools
+, docutils, installShellFiles
+, google_api_python_client, simplejson, oauth2client, setuptools, xdg
 }:
 
 buildPythonPackage rec {
   pname = "goobook";
-  version = "3.4";
+  version = "3.5";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "089a95s6g9izsy1fzpz48p6pz0wpngcbbrvsillm1n53492gfhjg";
+    sha256 = "1rmfyma3gwdf5mrw4l3j66y86fy8hgdbd0z4a5kck0kcm3hy34j9";
   };
 
-  # Required for a breaking change in google-api-python-client 1.8.1:
-  patches = [ ./fix-build.patch ];
-
+  nativeBuildInputs = [ docutils installShellFiles ];
   propagatedBuildInputs = [
-    google_api_python_client simplejson oauth2client setuptools
+    google_api_python_client simplejson oauth2client setuptools xdg
   ];
 
+  postInstall = ''
+    rst2man goobook.1.rst goobook.1
+    installManPage goobook.1
+  '';
+
   meta = with stdenv.lib; {
-    description = "Search your google contacts from the command-line or mutt";
+    description = "Access your Google contacts from the command line";
+    longDescription = ''
+      The purpose of GooBook is to make it possible to use your Google Contacts
+      from the command-line and from MUAs such as Mutt.
+      It can be used from Mutt the same way as abook.
+    '';
     homepage    = "https://pypi.python.org/pypi/goobook";
+    changelog   = "https://gitlab.com/goobook/goobook/-/blob/${version}/CHANGES.rst";
     license     = licenses.gpl3;
     maintainers = with maintainers; [ primeos ];
     platforms   = platforms.unix;
diff --git a/nixpkgs/pkgs/development/python-modules/goobook/fix-build.patch b/nixpkgs/pkgs/development/python-modules/goobook/fix-build.patch
deleted file mode 100644
index 1121dbfdcb32..000000000000
--- a/nixpkgs/pkgs/development/python-modules/goobook/fix-build.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 8de09b82c5ac900317043e1c1025f431516b6788 Mon Sep 17 00:00:00 2001
-From: Michael Weiss <dev.primeos@gmail.com>
-Date: Tue, 21 Apr 2020 21:41:04 +0200
-Subject: [PATCH] Switch from the alias apiclient to googleapiclient
-
-This fixes the package after a breaking change / bug in
-google-api-python-client 1.8.1 (see [0] and a lot of duplicate issues).
-
-The module apiclient is just an alias for googleapiclient [1].
-
-[0]: https://github.com/googleapis/google-api-python-client/issues/870
-[1]: https://github.com/googleapis/google-api-python-client/blob/v1.8.1/apiclient/__init__.py
----
- goobook/goobook.py | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/goobook/goobook.py b/goobook/goobook.py
-index 5bcb0b3..a2e25e9 100755
---- a/goobook/goobook.py
-+++ b/goobook/goobook.py
-@@ -31,7 +31,7 @@ import sys
- import time
- 
- import httplib2
--from apiclient.discovery import build
-+from googleapiclient.discovery import build
- 
- from goobook.storage import Storage, storageify, unstorageify
- 
--- 
-2.26.1
-
diff --git a/nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix b/nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix
index c70496b2b9fa..4b02cfdfa37f 100644
--- a/nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-api-python-client/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "google-api-python-client";
-  version = "1.9.1";
+  version = "1.12.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0nfqf62g3l7ij779ind41p800ahdjijkhqx8nq6y029p98672c52";
+    sha256 = "54a7d330833a2e7b0587446d7e4ae6d0244925a9a8e1dfe878f3f7e06cdedb62";
   };
 
   # No tests included in archive
diff --git a/nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix b/nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix
index 2d6a9a3e4053..ff5aa3b2bac7 100644
--- a/nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-auth-httplib2/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "google-auth-httplib2";
-  version = "0.0.3";
+  version = "0.0.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "098fade613c25b4527b2c08fa42d11f3c2037dda8995d86de0745228e965d445";
+    sha256 = "8d092cc60fb16517b12057ec0bba9185a96e3b7169d86ae12eae98e645b7bc39";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-crc32c/default.nix b/nixpkgs/pkgs/development/python-modules/google-crc32c/default.nix
new file mode 100644
index 000000000000..fbed406cebce
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google-crc32c/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, isPy3k, fetchFromGitHub, cffi, crc32c, pytestCheckHook }:
+
+buildPythonPackage rec {
+  pname = "google-crc32c";
+  version = "1.0.0";
+
+  disabled = !isPy3k;
+
+  src = fetchFromGitHub {
+    owner = "googleapis";
+    repo = "python-crc32c";
+    rev = "v${version}";
+    sha256 = "0n3ggsxmk1fhq0kz6p5rcj4gypfb05i26fcn7lsawakgl7fzxqyl";
+  };
+
+  buildInputs = [ crc32c  ];
+  propagatedBuildInputs = [ cffi ];
+
+  LDFLAGS = "-L${crc32c}/lib";
+  CFLAGS = "-I${crc32c}/include";
+
+  checkInputs = [ pytestCheckHook crc32c ];
+  pythonImportsCheck = [ "google_crc32c" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/googleapis/python-crc32c";
+    description = "Wrapper the google/crc32c hardware-based implementation of the CRC32C hashing algorithm";
+    license = with licenses; [ asl20 ];
+    maintainers = with maintainers; [ freezeboy ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google-music-proto/default.nix b/nixpkgs/pkgs/development/python-modules/google-music-proto/default.nix
index 2645c4efad80..16363192c81b 100644
--- a/nixpkgs/pkgs/development/python-modules/google-music-proto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-music-proto/default.nix
@@ -9,16 +9,18 @@
 
 buildPythonPackage rec {
   pname = "google-music-proto";
-  version = "2.8.0";
+  version = "2.10.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10qraipdr18pwnr1dz6ai5vxs9lmww5wbavbh1xyg4lsggmlsrqb";
+    sha256 = "91b78c0de4f59b1e5503fd6d49cb3fec029d9199cca0794c87667e643342e987";
   };
 
   postPatch = ''
     sed -i -e "/audio-metadata/c\'audio-metadata'," -e "/marshmallow/c\'marshmallow'," setup.py
+    substituteInPlace setup.py \
+      --replace "pendulum>=2.0,<=3.0,!=2.0.5,!=2.1.0" "pendulum>=2.0,<=3.0"
   '';
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google-music/default.nix b/nixpkgs/pkgs/development/python-modules/google-music/default.nix
index f6b53aeebea3..9d2f0def99b2 100644
--- a/nixpkgs/pkgs/development/python-modules/google-music/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google-music/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-music";
-  version = "3.5.0";
+  version = "3.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1agqsbnn72gx88sk736k1pzdn2j8fi7flwqhj5g2qhz3wvkx90yq";
+    sha256 = "b79956cc0df86345c74436ae6213b700345403c91d51947288806b174322573b";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/google_api_core/default.nix b/nixpkgs/pkgs/development/python-modules/google_api_core/default.nix
index 1efec99d8f72..a72f68c19ff9 100644
--- a/nixpkgs/pkgs/development/python-modules/google_api_core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_api_core/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "google-api-core";
-  version = "1.17.0";
+  version = "1.22.1";
   disabled = isPy27; # google namespace no longer works on python2
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12fn05x2fdhqmcaspjkkny2lh66hnnl0xf6pz3idxhlx8w5jl274";
+    sha256 = "35cba563034d668ae90ffe1f03193a84e745b38f09592f60258358b5e5ee6238";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/google_auth/default.nix b/nixpkgs/pkgs/development/python-modules/google_auth/default.nix
index 92369abec6d3..59ed94d34865 100644
--- a/nixpkgs/pkgs/development/python-modules/google_auth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_auth/default.nix
@@ -17,11 +17,11 @@
 
 buildPythonPackage rec {
   pname = "google-auth";
-  version = "1.16.0";
+  version = "1.20.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1xd7fi7vhqbbkvwjg5fgj8bkbfjwxx4f2bb0zsnj8wci46qk4dqv";
+    sha256 = "2f34dd810090d0d4c9d5787c4ad7b4413d1fbfb941e13682c7a2298d3b6cdcc8";
   };
 
   propagatedBuildInputs = [ six pyasn1-modules cachetools rsa setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_asset/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_asset/default.nix
index 6c565d0f8206..927ad94e78f1 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_asset/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_asset/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-asset";
-  version = "0.6.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "35eeb50c101968b4b5eecc840002a6f83af6789b6a947f27f0b2787e30cc1835";
+    sha256 = "fd4c0f7f61a8a1c5907cd6cc27a028b16236bf3d982ff412df0d2c981cef5ae5";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_automl/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_automl/default.nix
index 6900b4f212f1..43ffdc7a70db 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_automl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_automl/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-automl";
-  version = "0.10.0";
+  version = "1.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "031331fs97jpyxacwsmhig0ndidn97r288qnkrzfdvg1wxw5rdhi";
+    sha256 = "f08abe78d37fb94a3748aa43e66dae2bad52f991cc7740501a341bc6f6387fd5";
   };
 
   checkInputs = [ pandas pytest mock google_cloud_storage ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_bigquery/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_bigquery/default.nix
index 0b7c5d5c16ef..b8120285917f 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_bigquery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_bigquery/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery";
-  version = "1.24.0";
+  version = "1.26.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ca22hzql8x1z6bx9agidx0q09w24jwzkgg49k5j1spcignwxz3z";
+    sha256 = "51c29b95d460486d9e0210f63e8193691cd08480b69775270e84dd3db87c1bf2";
   };
 
   checkInputs = [ pytest mock ipython freezegun ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_bigquery_datatransfer/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_bigquery_datatransfer/default.nix
index ef76c1e0aae1..97ad04334fc0 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_bigquery_datatransfer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_bigquery_datatransfer/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-datatransfer";
-  version = "0.4.1";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9ef431c0747d92dd5d5d4038aab96215dfd20c59235ece99a96d8329792cbcdb";
+    sha256 = "71791a38a0ec535fdd4970d3403aa4cb2d9ca5c2729f80730858be2776b3c518";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_bigtable/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_bigtable/default.nix
index 0eb606bf7f4b..91c3109e91aa 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_bigtable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_bigtable/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigtable";
-  version = "1.2.1";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1wwhjfhvz5g4720qcdrj01fqb8kh3n36sxjpz8pzwhc7z4z5srs8";
+    sha256 = "e777333cbe85888f888c034d32880bb6a602ad83d8c81a95edca7c522cf430d8";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_container/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_container/default.nix
index 5afaf97cfaad..ec41592b48b6 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_container/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_container/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-container";
-  version = "0.4.0";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07zjwwliz8wx83l3bv7244qzrv0s3fchp8kgsy5xy41kmkg79a2d";
+    sha256 = "6f714e3d427e2b36d1365fc400f4d379972529fb40f798d9c0e06c7c3418fc89";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_core/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_core/default.nix
index c5a0ead7c50f..f277711e8f16 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_core/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-core";
-  version = "1.3.0";
+  version = "1.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1n19q57y4d89cjgmrg0f2a7yp7l1np2448mrhpndq354h389m3w7";
+    sha256 = "613e56f164b6bee487dd34f606083a0130f66f42f7b10f99730afdf1630df507";
   };
 
   propagatedBuildInputs = [ google_api_core grpcio setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_dataproc/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_dataproc/default.nix
index b4eed7e54934..3db04fb7d4ba 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_dataproc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_dataproc/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-dataproc";
-  version = "0.6.1";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "302bc448e77f1de958ba7413fb85819eda911043f219d8fc030a356848bc6f31";
+    sha256 = "d6d94af6c0d5aee0bb88d058a180f4d3341209e112f85a1c7ce0df7887cbf867";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_datastore/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_datastore/default.nix
index 859e2271824f..ff2d0b3baa91 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_datastore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_datastore/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-datastore";
-  version = "1.11.0";
+  version = "1.15.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1p0ifkhj48fa3m1y5990412s8msnn6mbz5p5g8ffln7jq7dvn57j";
+    sha256 = "c94bc357e975ce7bd5e5636497316c1bf4d015891e0ed96df9e7ce901415b94a";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_dlp/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_dlp/default.nix
index 5c285ca0b1b8..8273f40565fe 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_dlp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_dlp/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-dlp";
-  version = "0.13.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "844f5e63597c2a15561eec68397ee5f425e9be7728d2d7072f50f983fab31b9a";
+    sha256 = "2ccf04209f96b4759d8ed76da2c916a456386836caacd47ce01b6344f5b8f212";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_error_reporting/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_error_reporting/default.nix
index 724539c55a0f..72502a4f4ad1 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_error_reporting/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_error_reporting/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-error-reporting";
-  version = "0.33.0";
+  version = "0.34.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "845c4d7252f21403a5634a4047c3d77a645df92f6724911a5faf6f5e1bba51fd";
+    sha256 = "34edd11601b17c87a89c2e1cefdc27d975e1e9243a88ba3c0c48bfe6a05c404f";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_firestore/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_firestore/default.nix
index 04b767eaf025..efc52657fd98 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_firestore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_firestore/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-firestore";
-  version = "1.6.2";
+  version = "1.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5ad4835c3a0f6350bcbbc42fd70e90f7568fca289fdb5e851888df394c4ebf80";
+    sha256 = "dfe02fc0a77a4e28144c46d441553352d81498ffd8f49906b57342d06c7f5b54";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_iot/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_iot/default.nix
index e474207634e1..8f14f7eeb87f 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_iot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_iot/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-iot";
-  version = "0.3.1";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ab1070003027e28c6956cee3f11228277830d191a1c38a809c96eb0baf8be670";
+    sha256 = "bfd1511a7bcc7d23c2ea30253dd86b2b2247576d1345d895d7153dc0b262f06e";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_kms/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_kms/default.nix
index e9f8275deb94..79fe4bcc80f2 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_kms/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_kms/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-kms";
-  version = "1.2.1";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bb2cf9bff554df05f32c9a51cc50cdd0d6fbabcdc20526460df5306ea28547ff";
+    sha256 = "c590a8ab12a3f776ab35e570d21c0881f9d73c444bd509e54321a4c715233372";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_logging/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_logging/default.nix
index fa4590ff0b2e..6aeef14b6921 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_logging/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_logging/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-logging";
-  version = "1.15.0";
+  version = "1.15.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0smpvzdbz3ih3vc0nmn9619xa40mmqk9rs9ic1mwwyh1iyi44waz";
+    sha256 = "cb0d4af9d684eb8a416f14c39d9fa6314be3adf41db2dd8ee8e30db9e8853d90";
   };
 
   checkInputs = [ pytest mock webapp2 django flask ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_monitoring/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_monitoring/default.nix
index c29b31eb50da..8815d8246d16 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_monitoring/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_monitoring/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-monitoring";
-  version = "0.34.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "75370af645dd815c234561e7b356fa5d99b0ee6448c0e5d013455c72af961d0b";
+    sha256 = "2feee2cc56b60ed1316175af0974668041c6480803542d3711e4365882dc79cd";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_pubsub/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_pubsub/default.nix
index 683f5807a0ce..b1e4eae52ad2 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_pubsub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_pubsub/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-pubsub";
-  version = "1.1.0";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bdead87e40eba93043c6704578e946cf2794366312f936da0a2b3754234dde29";
+    sha256 = "c8d098ebd208d00c8f3bb55eefecd8553e7391d59700426a97d35125f0dcb248";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_redis/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_redis/default.nix
index d3c12d29f2b3..92f2027bf4e9 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_redis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_redis/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-redis";
-  version = "0.3.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e24a5eeb126a3e8fcf990806c7a853a27bb9b830c2f03fda42a499894b7614c6";
+    sha256 = "73057750d6afcfc90c224ee4ffa3262b5e85e866b4db676f74a07b49713f2c3a";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix
index f8962e6fa5d9..08e2c38ea1b1 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_runtimeconfig/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-runtimeconfig";
-  version = "0.30.0";
+  version = "0.32.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02075724535b3d6e1d9a6df8a2340190e195faea2f9e91f48d6ae9006993d636";
+    sha256 = "3d125c01817d5bef2b644095b044d22b03b9d8d4591088cadd8e97851f7a150a";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_secret_manager/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_secret_manager/default.nix
new file mode 100644
index 000000000000..513b76bafa4a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_secret_manager/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildPythonPackage, fetchPypi
+, grpc_google_iam_v1, google_api_core
+, pytest, mock
+}:
+
+buildPythonPackage rec {
+  pname = "google-cloud-secret-manager";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1cm3xqacxnbpv2706bd2jl86mvcsphpjlvhzngz2k2p48a0jjx8r";
+  };
+
+  propagatedBuildInputs = [
+    google_api_core
+    grpc_google_iam_v1
+  ];
+
+  checkInputs = [
+    mock
+    pytest
+  ];
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "Secret Manager API: Stores, manages, and secures access to application secrets";
+    homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ siriobalmelli ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_securitycenter/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_securitycenter/default.nix
index 42dccd608052..a3992825d2e9 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_securitycenter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_securitycenter/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-securitycenter";
-  version = "0.3.0";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6a0a878db990d657b88ac34942b0a66df24da4643aa181274e602ac337de5d0c";
+    sha256 = "14ebad262cd01c9a3998561684617be2e97ad5d27dab1918c14b964f97e1f8f7";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_spanner/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_spanner/default.nix
index a0c5a10d86c4..ce03add44e4f 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_spanner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_spanner/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-spanner";
-  version = "1.15.1";
+  version = "1.17.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "76f98f2614b503c8808f37b979602aca4d772b356f85c1f4b2a00b0d0d548472";
+    sha256 = "3240a04eaa6496e9d8bf4929f4ff04de1652621fd49555eb83b743c48ed9ca04";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_storage/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_storage/default.nix
index b253a4c71ed7..db1139623368 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_storage/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_storage/default.nix
@@ -1,4 +1,4 @@
-{ stdenv
+{ lib
 , buildPythonPackage
 , fetchPypi
 , google_resumable_media
@@ -11,32 +11,35 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-storage";
-  version = "1.26.0";
+  version = "1.30.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0caxqf6vda89cmc81fxhmfk3n61aypqz2sswnbsylzf436rsxpzz";
+    sha256 = "0634addb7576d48861d9963312fc82a0436042b8f282414ed58ca76d73edee54";
   };
 
   propagatedBuildInputs = [
-    google_resumable_media
     google_api_core
     google_cloud_core
+    google_resumable_media
     setuptools
   ];
-  checkInputs = [ pytest mock ];
+  checkInputs = [
+    mock
+    pytest
+  ];
 
   # remove directory from interferring with importing modules
   # ignore tests which require credentials
   checkPhase = ''
     rm -r google
-    pytest tests/unit -k 'not create'
+    pytest tests/unit -k 'not (create or get or post)'
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Google Cloud Storage API client library";
     homepage = "https://github.com/GoogleCloudPlatform/google-cloud-python";
     license = licenses.asl20;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_tasks/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_tasks/default.nix
index b4dc1e83ca83..b7f827dd4802 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_tasks/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_tasks/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-tasks";
-  version = "1.3.0";
+  version = "1.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "221388d1dd4bf21ba46ead499bbb3dfba9151b852c4fdca70935ba36e5c3631a";
+    sha256 = "d751b97c1e84980a1646702d3fc1b45bab3284bc3388181f1dc9ba3d204b5a39";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_texttospeech/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_texttospeech/default.nix
index 0f448440ca4a..3a052c73cdae 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_texttospeech/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_texttospeech/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-texttospeech";
-  version = "0.5.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "75562a8db2b0268f57c64e448d697fe82c0ffa889f09be8cbc6ba5369c9a0c59";
+    sha256 = "cbbd397e72b6189668134f3c8e8c303198188334a4e6a5f77cc90c3220772f9e";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_trace/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_trace/default.nix
index 4c49b0e70ebf..5b19243709f0 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_trace/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_trace/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-trace";
-  version = "0.23.0";
+  version = "0.24.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1a3fad1ae2b780dd5e6d5ddc626db722749405b7b66f3c2e5e87a9d29a4819c8";
+    sha256 = "0c342dbd9daf5375b3f8bb94302b7ea9a9946f76684e457a38ff0d420b3b6556";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_translate/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_translate/default.nix
index 7537b6fe52d9..f25f4badc815 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_translate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_translate/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-translate";
-  version = "2.0.1";
+  version = "3.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02wlqlrxk0x6a9wifcly2pr84r6k8i97ws0prx21379fss39gf2a";
+    sha256 = "ecdea3e176e80f606d08c4c7fd5acea6b3dd960f4b2e9a65951aaf800350a759";
   };
 
   # google_cloud_core[grpc] -> grpcio
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_videointelligence/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_videointelligence/default.nix
index 38ecb8bcc21e..a8da09dec64c 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_videointelligence/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_videointelligence/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-videointelligence";
-  version = "1.12.1";
+  version = "1.15.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "66d0a63d27e83656b1b4e0205d32725e4c58db174118badba164bb7d05a66981";
+    sha256 = "c2b4b3579196c0bb7301fbe1de7008ac5081f88afc0599a10ee79a5ade385922";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_vision/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_vision/default.nix
index c2bdc652c7c1..585abc8cc48e 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_vision/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_vision/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-vision";
-  version = "0.41.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fd7adcfd8f1bddc19797b25ba3287a4f0cf42e208f330fffb7f1cd125e4d6cd3";
+    sha256 = "18e78b190c81d200ae4f6a46d4af57422d68b3b05b0540d5cd1806e3874142bf";
   };
 
   checkInputs = [ mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix b/nixpkgs/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix
index a68bd9df570e..a43f7fd5f9c2 100644
--- a/nixpkgs/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_cloud_websecurityscanner/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-websecurityscanner";
-  version = "0.3.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "26a29657e20fda4302275b92c84c16228381998797e203f85d612f93d4c62358";
+    sha256 = "1de60f880487b898b499345f46f7acf38651f5356ebca8673116003a57f25393";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/google_resumable_media/default.nix b/nixpkgs/pkgs/development/python-modules/google_resumable_media/default.nix
index 40c8f2596bb1..5bd95004f93b 100644
--- a/nixpkgs/pkgs/development/python-modules/google_resumable_media/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/google_resumable_media/default.nix
@@ -1,30 +1,35 @@
-{ stdenv
+{ lib
 , buildPythonPackage
+, isPy3k
 , fetchPypi
 , six
 , requests
 , setuptools
 , pytest
 , mock
+, crcmod
+, google-crc32c
 }:
 
 buildPythonPackage rec {
   pname = "google-resumable-media";
-  version = "0.5.1";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "97155236971970382b738921f978a6f86a7b5a0b0311703d991e065d3cb55773";
+    sha256 = "FzrMa63hSApSn6KcbCcXVDri3AnULpRh/bhvOVAu/PI=";
   };
 
   checkInputs = [ pytest mock ];
-  propagatedBuildInputs = [ requests setuptools six ];
+  propagatedBuildInputs = [ requests setuptools six ]
+    ++ lib.optional isPy3k google-crc32c
+    ++ lib.optional (!isPy3k) crcmod;
 
   checkPhase = ''
     py.test tests/unit
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Utilities for Google Media Downloads and Resumable Uploads";
     homepage = "https://github.com/GoogleCloudPlatform/google-resumable-media-python";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/googleapis_common_protos/default.nix b/nixpkgs/pkgs/development/python-modules/googleapis_common_protos/default.nix
index 08d31b6920bb..507c3ba229a6 100644
--- a/nixpkgs/pkgs/development/python-modules/googleapis_common_protos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/googleapis_common_protos/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "googleapis-common-protos";
-  version = "1.51.0";
+  version = "1.52.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0vi2kr0daivx2q1692lp3y61bfnvdw471xsfwi8924br89q92g01";
+    sha256 = "560716c807117394da12cecb0a54da5a451b5cf9866f1d37e9a5e2329a665351";
   };
 
   propagatedBuildInputs = [ protobuf setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/gpxpy/default.nix b/nixpkgs/pkgs/development/python-modules/gpxpy/default.nix
index 028ca3654236..4cd03103d850 100644
--- a/nixpkgs/pkgs/development/python-modules/gpxpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gpxpy/default.nix
@@ -1,14 +1,15 @@
-{ lib, fetchFromGitHub, buildPythonPackage, python, lxml }:
+{ lib, fetchFromGitHub, buildPythonPackage, python, lxml, isPy3k }:
 
 buildPythonPackage rec {
   pname = "gpxpy";
-  version = "1.3.5";
+  version = "1.4.2";
+  disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "tkrajina";
     repo = pname;
     rev = "v${version}";
-    sha256 = "18r7pfda7g3l0hv8j9565n52cvvgjxiiqqzagfdfaba1djgl6p8b";
+    sha256 = "1r5gb660nrkrdbw5m5h1n5k10npcfv9bxqv92z55ds8r7rw2saz6";
   };
 
   propagatedBuildInputs = [ lxml ];
diff --git a/nixpkgs/pkgs/development/python-modules/graph-tool/2.x.x.nix b/nixpkgs/pkgs/development/python-modules/graph-tool/2.x.x.nix
index 2197cfd9d0f7..50d5f0f966b6 100644
--- a/nixpkgs/pkgs/development/python-modules/graph-tool/2.x.x.nix
+++ b/nixpkgs/pkgs/development/python-modules/graph-tool/2.x.x.nix
@@ -10,11 +10,11 @@
 buildPythonPackage rec {
   pname = "graph-tool";
   format = "other";
-  version = "2.31";
+  version = "2.32";
 
   src = fetchurl {
     url = "https://downloads.skewed.de/graph-tool/graph-tool-${version}.tar.bz2";
-    sha256 = "0z6n9xkb5yz7z6rlwl6z9gq3ac5vdsby90nhvvvskadsx2pagd7v";
+    sha256 = "0jir6fhi09lf8xf56dcsdk2knx32vq8wrzh0d0zdp22n7baavq70";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/development/python-modules/graph_nets/default.nix b/nixpkgs/pkgs/development/python-modules/graph_nets/default.nix
index 4e83be64d03a..4f7b8c52e9ee 100644
--- a/nixpkgs/pkgs/development/python-modules/graph_nets/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graph_nets/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "graph_nets";
-  version = "1.0.5";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "73e98a5930c6c7b609257ada2cf4523db70810343e0593bf0fa710b77e991933";
+    sha256 = "278a040674bef295aaf8bb5b0d1b3f207144dc68f0bcfe3f14912b9b85eb0927";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/graphite-web/update-django-tagging.patch b/nixpkgs/pkgs/development/python-modules/graphite-web/update-django-tagging.patch
index 48d16d50f420..9774f7e70a7f 100644
--- a/nixpkgs/pkgs/development/python-modules/graphite-web/update-django-tagging.patch
+++ b/nixpkgs/pkgs/development/python-modules/graphite-web/update-django-tagging.patch
@@ -1,12 +1,13 @@
-diff -Nur a/setup.py b/setup.py
---- a/setup.py	2020-03-12 18:45:34.654296302 +0100
-+++ b/setup.py	2020-03-12 18:46:17.476893828 +0100
-@@ -115,7 +115,7 @@
+diff --git a/setup.py b/setup.py
+index a1a21f1..f0d1051 100644
+--- a/setup.py
++++ b/setup.py
+@@ -117,7 +117,7 @@ try:
          ['templates/*', 'local_settings.py.example']},
        scripts=glob('bin/*'),
        data_files=list(webapp_content.items()) + storage_dirs + conf_files + examples,
--      install_requires=['Django>=1.8,<2.3', 'django-tagging==0.4.3', 'pytz', 'pyparsing', 'cairocffi', 'urllib3', 'scandir', 'six'],
-+      install_requires=['Django>=1.8,<2.3', 'django-tagging==0.4.6', 'pytz', 'pyparsing', 'cairocffi', 'urllib3', 'scandir', 'six'],
+-      install_requires=['Django>=1.8,<3.1', 'django-tagging==0.4.3', 'pytz',
++      install_requires=['Django>=1.8,<3.1', 'django-tagging==0.5.0', 'pytz',
+                         'pyparsing', 'cairocffi', 'urllib3', 'scandir', 'six'],
        classifiers=[
            'Intended Audience :: Developers',
-           'Natural Language :: English',
diff --git a/nixpkgs/pkgs/development/python-modules/graphite_beacon/default.nix b/nixpkgs/pkgs/development/python-modules/graphite_beacon/default.nix
index 159b09d10b91..cc070f55323c 100644
--- a/nixpkgs/pkgs/development/python-modules/graphite_beacon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graphite_beacon/default.nix
@@ -1,6 +1,8 @@
 { stdenv, buildPythonPackage, fetchPypi
-, tornado, pyyaml, funcparserlib
+, tornado_5, pyyaml, funcparserlib
+, nixosTests
 }:
+
 buildPythonPackage rec {
   pname = "graphite_beacon";
   version = "0.27.0";
@@ -10,12 +12,18 @@ buildPythonPackage rec {
     sha256 = "03bp4wyfn3xhcqyvs5hnk1n87m4smsmm1p7qp459m7j8hwpbq2ks";
   };
 
-  propagatedBuildInputs = [ tornado pyyaml funcparserlib ];
+  propagatedBuildInputs = [ tornado_5 pyyaml funcparserlib ];
 
   postPatch = ''
     substituteInPlace requirements.txt --replace "==" ">="
   '';
 
+  pythonImportsCheck = [ "graphite_beacon" ];
+
+  passthru.tests = {
+    nixos = nixosTests.graphite;
+  };
+
   meta = with stdenv.lib; {
     description = "A simple alerting application for Graphite metrics";
     homepage = "https://github.com/klen/graphite-beacon";
diff --git a/nixpkgs/pkgs/development/python-modules/graphql-core/default.nix b/nixpkgs/pkgs/development/python-modules/graphql-core/default.nix
index 21cc58e67fcd..9e48f66c13d1 100644
--- a/nixpkgs/pkgs/development/python-modules/graphql-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graphql-core/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "graphql-core";
-  version = "2.3.1";
+  version = "3.1.2";
 
   src = fetchFromGitHub {
     owner = "graphql-python";
     repo = pname;
     rev = "v${version}";
-    sha256 = "029jnwy6zbj4x7f3ffpn1gyx0w9ala9cj2g115g6aa7im3xd2jma";
+    sha256 = "0kvbj9dwpx8mjfj86kqx54dbz9k72ki147ssyj0ca2syvb8jm3wb";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/graphql-server-core/default.nix b/nixpkgs/pkgs/development/python-modules/graphql-server-core/default.nix
index e12d71836f18..e26e936f48fd 100644
--- a/nixpkgs/pkgs/development/python-modules/graphql-server-core/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graphql-server-core/default.nix
@@ -1,23 +1,33 @@
 { buildPythonPackage
 , fetchFromGitHub
 , lib
-
 , black
 , graphql-core
 , promise
+, fetchpatch
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "graphql-server-core";
-  version = "1.2.0";
+  version = "2.0.0";
 
   src = fetchFromGitHub {
     owner = "graphql-python";
     repo = pname;
     rev = "v${version}";
-    sha256 = "123q3xziv0s22h10v3f5slirf4b6nxj0hnmarwx9vws6x21bgrgh";
+    sha256 = "1w3biv2za2m1brwjy0z049c2m94gm1zfwxzgc6lwrsci724jv9fr";
   };
 
+  disable = pythonOlder "3.6";
+
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/graphql-python/graphql-server-core/commit/865ee9d5602f352c958f6f7e15adbe9abe216784.patch";
+      sha256 = "03p44p4j8rys7mgamh2h9ibbnac2cqwvp5f5hrl2avj2hh0l6j46";
+    })
+  ];
+
   propagatedBuildInputs = [
     graphql-core
     promise
diff --git a/nixpkgs/pkgs/development/python-modules/graphviz/default.nix b/nixpkgs/pkgs/development/python-modules/graphviz/default.nix
index fcb2867050d8..f531c547f9cc 100644
--- a/nixpkgs/pkgs/development/python-modules/graphviz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graphviz/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "graphviz";
-  version = "0.10.1";
+  version = "0.14.1";
 
   # patch does not apply to PyPI tarball due to different line endings
   src = fetchFromGitHub {
     owner = "xflr6";
     repo = "graphviz";
     rev = version;
-    sha256 = "1vqk4xy45c72la56j24z9jmjp5a0aa2k32fybnlbkzqjvvbl72d8";
+    sha256 = "02bdiac5x93f2mjw5kpgs6kv81hzg07y0mw1nxvhyg8aignzmh3c";
   };
 
   patches = [
@@ -30,9 +30,9 @@ buildPythonPackage rec {
     })
   ];
 
-  # Fontconfig error: Cannot load default config file 
-  FONTCONFIG_FILE = makeFontsConf { 
-    fontDirectories = [ freefont_ttf ]; 
+  # Fontconfig error: Cannot load default config file
+  FONTCONFIG_FILE = makeFontsConf {
+    fontDirectories = [ freefont_ttf ];
   };
 
   checkInputs = [ mock pytest pytest-mock pytestcov ];
diff --git a/nixpkgs/pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch b/nixpkgs/pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch
index ad632974c28c..d6da1ff47ce7 100644
--- a/nixpkgs/pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch
+++ b/nixpkgs/pkgs/development/python-modules/graphviz/hardcode-graphviz-path.patch
@@ -1,38 +1,39 @@
 diff --git a/graphviz/backend.py b/graphviz/backend.py
-index 704017b..fe4aefe 100644
+index 6f4cc0c..bc4781e 100644
 --- a/graphviz/backend.py
 +++ b/graphviz/backend.py
-@@ -114,7 +114,7 @@ def command(engine, format, filepath=None, renderer=None, formatter=None):
-     suffix = '.'.join(reversed(format_arg))
-     format_arg = ':'.join(format_arg)
+@@ -122,7 +122,7 @@ def command(engine, format_, filepath=None, renderer=None, formatter=None):
+         raise ValueError('unknown formatter: %r' % formatter)
  
--    cmd = [engine, '-T%s' % format_arg]
-+    cmd = [os.path.join('@graphviz@/bin', engine), '-T%s' % format_arg]
-     rendered = None
-     if filepath is not None:
-         cmd.extend(['-O', filepath])
-@@ -217,7 +217,7 @@ def version():
+     output_format = [f for f in (format_, renderer, formatter) if f is not None]
+-    cmd = [engine, '-T%s' % ':'.join(output_format)]
++    cmd = [os.path.join('@graphviz@/bin', engine), '-T%s' % ':'.join(output_format)]
+ 
+     if filepath is None:
+         rendered = None
+@@ -255,7 +255,7 @@ def version():
          subprocess.CalledProcessError: If the exit status is non-zero.
          RuntimmeError: If the output cannot be parsed into a version number.
      """
 -    cmd = ['dot', '-V']
 +    cmd = ['@graphviz@/bin/dot', '-V']
-     out, _ = run(cmd, check=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
- 
-     info = out.decode('ascii')
+     out, _ = run(cmd, check=True, encoding='ascii',
+                  stdout=subprocess.PIPE,
+                  stderr=subprocess.STDOUT)
 diff --git a/tests/test_backend.py b/tests/test_backend.py
-index 7ec12f7..2e8550d 100644
+index 9f307f5..e43bf5b 100644
 --- a/tests/test_backend.py
 +++ b/tests/test_backend.py
-@@ -47,6 +47,7 @@ def test_render_formatter_unknown():
-         render('dot', 'ps', 'nonfilepath', 'ps', '')
+@@ -50,7 +50,7 @@ def test_run_encoding_mocked(mocker, Popen, input=u'sp\xe4m', encoding='utf-8'):
+         m.decode.assert_called_once_with(encoding)
  
  
+-@pytest.exe
 +@pytest.mark.skip(reason='empty $PATH has no effect')
  @pytest.mark.usefixtures('empty_path')
- def test_render_missing_executable():
-     with pytest.raises(ExecutableNotFound, match=r'execute'):
-@@ -85,7 +86,7 @@ def test_render_mocked(capsys, mocker, Popen, quiet):
+ @pytest.mark.parametrize('func, args', [
+     (render, ['dot', 'pdf', 'nonfilepath']),
+@@ -143,7 +143,7 @@ def test_render_mocked(capsys, mocker, Popen, quiet):  # noqa: N803
  
      assert render('dot', 'pdf', 'nonfilepath', quiet=quiet) == 'nonfilepath.pdf'
  
@@ -40,25 +41,17 @@ index 7ec12f7..2e8550d 100644
 +    Popen.assert_called_once_with(['@graphviz@/bin/dot', '-Tpdf', '-O', 'nonfilepath'],
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.PIPE,
-                                   startupinfo=mocker.ANY)
-@@ -94,6 +95,7 @@ def test_render_mocked(capsys, mocker, Popen, quiet):
-     assert capsys.readouterr() == ('', '' if quiet else 'stderr')
- 
- 
-+@pytest.mark.skip(reason='empty $PATH has no effect')
- @pytest.mark.usefixtures('empty_path')
- def test_pipe_missing_executable():
-     with pytest.raises(ExecutableNotFound, match=r'execute'):
-@@ -143,7 +145,7 @@ def test_pipe_pipe_invalid_data_mocked(mocker, py2, Popen, quiet):  # noqa: N803
-     assert e.value.returncode is mocker.sentinel.returncode
+                                   cwd=None, startupinfo=mocker.ANY)
+@@ -201,7 +201,7 @@ def test_pipe_pipe_invalid_data_mocked(mocker, py2, Popen, quiet):  # noqa: N803
      assert e.value.stdout is mocker.sentinel.out
-     assert e.value.stderr is err
+     e.value.stdout = mocker.sentinel.new_stdout
+     assert e.value.stdout is mocker.sentinel.new_stdout
 -    Popen.assert_called_once_with(['dot', '-Tpng'],
 +    Popen.assert_called_once_with(['@graphviz@/bin/dot', '-Tpng'],
                                    stdin=subprocess.PIPE,
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.PIPE,
-@@ -166,7 +168,7 @@ def test_pipe_mocked(capsys, mocker, Popen, quiet):  # noqa: N803
+@@ -224,7 +224,7 @@ def test_pipe_mocked(capsys, mocker, Popen, quiet):  # noqa: N803
  
      assert pipe('dot', 'png', b'nongraph', quiet=quiet) is mocker.sentinel.out
  
@@ -67,16 +60,8 @@ index 7ec12f7..2e8550d 100644
                                    stdin=subprocess.PIPE,
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.PIPE,
-@@ -176,6 +178,7 @@ def test_pipe_mocked(capsys, mocker, Popen, quiet):  # noqa: N803
-     assert capsys.readouterr() == ('', '' if quiet else 'stderr')
- 
- 
-+@pytest.mark.skip(reason='empty $PATH has no effect')
- @pytest.mark.usefixtures('empty_path')
- def test_version_missing_executable():
-     with pytest.raises(ExecutableNotFound, match=r'execute'):
-@@ -196,7 +199,7 @@ def test_version_parsefail_mocked(mocker, Popen):
-     with pytest.raises(RuntimeError):
+@@ -250,7 +250,7 @@ def test_version_parsefail_mocked(mocker, Popen):  # noqa: N803
+     with pytest.raises(RuntimeError, match=r'nonversioninfo'):
          version()
  
 -    Popen.assert_called_once_with(['dot', '-V'],
@@ -84,9 +69,9 @@ index 7ec12f7..2e8550d 100644
                                    stdout=subprocess.PIPE,
                                    stderr=subprocess.STDOUT,
                                    startupinfo=mocker.ANY)
-@@ -211,7 +214,7 @@ def test_version_mocked(mocker, Popen):
+@@ -269,7 +269,7 @@ def test_version_mocked(mocker, Popen, stdout, expected):  # noqa: N803
  
-     assert version() == (1, 2, 3)
+     assert version() == expected
  
 -    Popen.assert_called_once_with(['dot', '-V'],
 +    Popen.assert_called_once_with(['@graphviz@/bin/dot', '-V'],
diff --git a/nixpkgs/pkgs/development/python-modules/graspy/default.nix b/nixpkgs/pkgs/development/python-modules/graspy/default.nix
index 2a7fab12fa21..0281e6a97341 100644
--- a/nixpkgs/pkgs/development/python-modules/graspy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/graspy/default.nix
@@ -2,8 +2,9 @@
 , buildPythonPackage
 , isPy27
 , fetchFromGitHub
-, pytest
+, pytestCheckHook
 , pytestcov
+, hyppo
 , matplotlib
 , networkx
 , numpy
@@ -14,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "graspy";
-  version = "0.2";
+  version = "0.3";
 
   disabled = isPy27;
 
@@ -22,10 +23,11 @@ buildPythonPackage rec {
     owner = "neurodata";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ss7d71lwblimg7ri88ir9w59j0ri13wl75091hjf7q0mchqr6yd";
+    sha256 = "0lab76qiryxvwl6zrcikhnxil1xywl0wkkm2vzi4v9mdzpa7w29r";
   };
 
   propagatedBuildInputs = [
+    hyppo
     matplotlib
     networkx
     numpy
@@ -34,14 +36,9 @@ buildPythonPackage rec {
     seaborn
   ];
 
-  checkInputs = [ pytest pytestcov ];
-
-  checkPhase = ''
-    runHook preCheck
-    # `test_autogmm` takes too long; fixed in next release (graspy/pull/328)
-    pytest tests -k 'not test_autogmm'
-    runHook postCheck
-  '';
+  checkInputs = [ pytestCheckHook pytestcov ];
+  pytestFlagsArray = [ "tests" "--ignore=docs" ];
+  disabledTests = [ "gridplot_outputs" ];
 
   meta = with lib; {
     homepage = "https://graspy.neurodata.io";
diff --git a/nixpkgs/pkgs/development/python-modules/green/default.nix b/nixpkgs/pkgs/development/python-modules/green/default.nix
index 1bf59a24dd41..5ecf9a18ad50 100644
--- a/nixpkgs/pkgs/development/python-modules/green/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/green/default.nix
@@ -4,22 +4,22 @@
 , termstyle
 , lxml
 , unidecode
-, mock
-, backports_shutil_get_terminal_size
 }:
 
 buildPythonPackage rec {
   pname = "green";
-  version = "3.0.0";
+  version = "3.2.1";
+
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17cfgq0s02p5cjrsvcicqxiq6kflahjsd9pm03f054x7lpvqi5cv";
+    sha256 = "c5a90e247237ac7e320120961608cf65191134fa400d327cbd4d09864c880935";
   };
 
   propagatedBuildInputs = [
     colorama coverage termstyle unidecode lxml
-  ] ++ lib.optionals (!isPy3k) [ mock backports_shutil_get_terminal_size ];
+  ];
 
   # let green run it's own test suite
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix b/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix
index 4b28e07a6cee..c60acb2d1f16 100644
--- a/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpcio-tools/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, buildPythonPackage, fetchPypi, protobuf, grpcio }:
+{ stdenv, buildPythonPackage, fetchPypi, protobuf, grpcio, setuptools }:
 
 buildPythonPackage rec {
   pname = "grpcio-tools";
-  version = "1.29.0";
+  version = "1.32.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0f681c1ebd5472b804baa391b16dc59d92b065903999566f4776bfbd010bcec9";
+    sha256 = "28547272c51e1d2d343685b9f531e85bb90ad7bd93e726ba646b5627173cbc47";
   };
 
   enableParallelBuilding = true;
 
-  propagatedBuildInputs = [ protobuf grpcio ];
+  propagatedBuildInputs = [ protobuf grpcio setuptools ];
 
   # no tests in the package
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/grpcio/default.nix b/nixpkgs/pkgs/development/python-modules/grpcio/default.nix
index ecb15cc024db..9311838627a1 100644
--- a/nixpkgs/pkgs/development/python-modules/grpcio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/grpcio/default.nix
@@ -15,6 +15,7 @@ buildPythonPackage rec {
 
   preBuild = stdenv.lib.optionalString stdenv.isDarwin "unset AR";
 
+  GRPC_BUILD_WITH_BORING_SSL_ASM = "";
   GRPC_PYTHON_BUILD_SYSTEM_OPENSSL = 1;
   GRPC_PYTHON_BUILD_SYSTEM_ZLIB = 1;
   GRPC_PYTHON_BUILD_SYSTEM_CARES = 1;
diff --git a/nixpkgs/pkgs/development/python-modules/gsd/1.7.nix b/nixpkgs/pkgs/development/python-modules/gsd/1.7.nix
index c9b3078cd46e..6e6f0504aa72 100644
--- a/nixpkgs/pkgs/development/python-modules/gsd/1.7.nix
+++ b/nixpkgs/pkgs/development/python-modules/gsd/1.7.nix
@@ -5,12 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.9.3";
+  version = "1.7.0";
   pname = "gsd";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c6b37344e69020f69fda2b8d97f894cb41fd720840abeda682edd680d1cff838";
+    sha256 = "0fpk69wachyydpk9cbs901m7hkwrrvq24ykxsrz62km9ql8lr2vp";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/nixpkgs/pkgs/development/python-modules/gspread/default.nix b/nixpkgs/pkgs/development/python-modules/gspread/default.nix
index 5a25d81d0173..5fd73541dd42 100644
--- a/nixpkgs/pkgs/development/python-modules/gspread/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gspread/default.nix
@@ -2,18 +2,20 @@
 , buildPythonPackage
 , fetchPypi
 , requests
+, google_auth
+, google-auth-oauthlib
 }:
 
 buildPythonPackage rec {
-  version = "3.3.1";
+  version = "3.6.0";
   pname = "gspread";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mpvhndr38hb5x95xk2mqqasvcy6pa7ck8801bvpg5y3lwn5nka0";
+    sha256 = "e04f1a6267b3929fc1600424c5ec83906d439672cafdd61a9d5b916a139f841c";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [ requests google_auth google-auth-oauthlib ];
 
   meta = with stdenv.lib; {
     description = "Google Spreadsheets client library";
diff --git a/nixpkgs/pkgs/development/python-modules/gssapi/default.nix b/nixpkgs/pkgs/development/python-modules/gssapi/default.nix
index 622360edd24e..9013c7d978fd 100644
--- a/nixpkgs/pkgs/development/python-modules/gssapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gssapi/default.nix
@@ -1,14 +1,13 @@
 { stdenv
 , lib
 , buildPythonPackage
+, pythonOlder
 , fetchFromGitHub
 , six
-, enum34
 , decorator
 , nose
 , krb5Full
 , darwin
-, isPy27
 , parameterized
 , shouldbe
 , cython
@@ -18,13 +17,14 @@
 
 buildPythonPackage rec {
   pname = "gssapi";
-  version = "1.6.2";
+  version = "1.6.9";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "pythongssapi";
     repo = "python-${pname}";
     rev = "v${version}";
-    sha256 = "195x3zqzyv491i9hf7l4asmic5pb2w3l1r7bps89651wkb3mrz1l";
+    sha256 = "1shm3pc0l2r91qadkpq4bx45my0165nw3kdcp0gw4lk50z215hag";
   };
 
   # It's used to locate headers
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   propagatedBuildInputs =  [
     decorator
     six
-  ] ++ lib.optional isPy27 enum34;
+  ];
 
   buildInputs = lib.optionals stdenv.isDarwin [
     darwin.apple_sdk.frameworks.GSS
@@ -55,12 +55,21 @@ buildPythonPackage rec {
     six
   ];
 
-  doCheck = !stdenv.isDarwin; # many failures on darwin
+  doCheck = pythonOlder "3.8"  # `shouldbe` not available
+    && !stdenv.isDarwin;  # many failures on darwin
 
+  # skip tests which fail possibly due to be an upstream issue (see
+  # https://github.com/pythongssapi/python-gssapi/issues/220)
   checkPhase = ''
+    # some tests don't respond to being disabled through nosetests -x
+    echo $'\ndel CredsTestCase.test_add_with_impersonate' >> gssapi/tests/test_high_level.py
+    echo $'\ndel TestBaseUtilities.test_acquire_creds_impersonate_name' >> gssapi/tests/test_raw.py
+    echo $'\ndel TestBaseUtilities.test_add_cred_impersonate_name' >> gssapi/tests/test_raw.py
+
     export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
-    ${python.interpreter} setup.py nosetests
+    ${python.interpreter} setup.py nosetests -e 'ext_test_\d.*'
   '';
+  pythonImportsCheck = [ "gssapi" ];
 
   meta = with lib; {
     homepage = "https://pypi.python.org/pypi/gssapi";
diff --git a/nixpkgs/pkgs/development/python-modules/gtimelog/default.nix b/nixpkgs/pkgs/development/python-modules/gtimelog/default.nix
index b6fe06610b35..d19d05276e22 100644
--- a/nixpkgs/pkgs/development/python-modules/gtimelog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gtimelog/default.nix
@@ -1,43 +1,60 @@
-{ stdenv
-, buildPythonPackage
-, pkgs
-, python
-, pygobject3
+{ stdenv, fetchFromGitHub, makeWrapper
+, glibcLocales, gobject-introspection, gtk3, libsoup, libsecret
+, buildPythonPackage, python
+, pygobject3, freezegun, mock
 }:
 
 buildPythonPackage rec {
   pname = "gtimelog";
-  version = "0.9.1";
+  version = "unstable-2020-05-16";
 
-  src = pkgs.fetchurl {
-    url = "https://github.com/gtimelog/gtimelog/archive/${version}.tar.gz";
-    sha256 = "0qk8fv8cszzqpdi3wl9vvkym1jil502ycn6sic4jrxckw5s9jsfj";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "80682ddbf9e0d68b8c67257289784f3b49b543d8";
+    sha256 = "0qv2kv7vc3qqlzxsisgg31cmrkkqgnmxspbj10c5fhdmwzzwi0i9";
   };
 
-  buildInputs = [ pkgs.glibcLocales ];
+  buildInputs = [
+    makeWrapper
+    glibcLocales gobject-introspection gtk3 libsoup libsecret
+  ];
 
-  LC_ALL="en_US.UTF-8";
-
-  # TODO: AppIndicator
-  propagatedBuildInputs = [ pkgs.gobject-introspection pygobject3 pkgs.makeWrapper pkgs.gtk3 ];
+  propagatedBuildInputs = [
+    pygobject3 freezegun mock
+  ];
 
   checkPhase = ''
-    substituteInPlace runtests --replace "/usr/bin/env python" "${python}/bin/${python.executable}"
+    substituteInPlace runtests --replace "/usr/bin/env python3" "${python.interpreter}"
     ./runtests
   '';
 
+  pythonImportsCheck = [ "gtimelog" ];
+
   preFixup = ''
-      wrapProgram $out/bin/gtimelog \
-        --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
-        --prefix LD_LIBRARY_PATH ":" "${pkgs.gtk3.out}/lib" \
+    wrapProgram $out/bin/gtimelog \
+      --prefix GI_TYPELIB_PATH : "$GI_TYPELIB_PATH" \
+      --prefix LD_LIBRARY_PATH ":" "${gtk3.out}/lib" \
   '';
 
   meta = with stdenv.lib; {
-    description = "A small GTK app for keeping track of your time. It's main goal is to be as unintrusive as possible";
-    homepage = "https://mg.pov.lt/gtimelog/";
+    description = "A time tracking app";
+    longDescription = ''
+      GTimeLog is a small time tracking application for GNOME.
+      It's main goal is to be as unintrusive as possible.
+
+      To run gtimelog successfully on a system that does not have full GNOME 3
+      installed, the following NixOS options should be set:
+      - programs.dconf.enable = true;
+      - services.gnome3.gnome-keyring.enable = true;
+
+      In addition, the following packages should be added to the environment:
+      - gnome3.adwaita-icon-theme
+      - gnome3.dconf
+    '';
+    homepage = "https://gtimelog.org/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ ocharles ];
+    maintainers = with maintainers; [ ocharles oxzi ];
     platforms = platforms.unix;
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/gumath/default.nix b/nixpkgs/pkgs/development/python-modules/gumath/default.nix
index 2937b876dec4..ccf1627d7f32 100644
--- a/nixpkgs/pkgs/development/python-modules/gumath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gumath/default.nix
@@ -1,4 +1,6 @@
-{ buildPythonPackage
+{ stdenv
+, buildPythonPackage
+, python
 , numba
 , ndtypes
 , xnd
@@ -25,4 +27,20 @@ buildPythonPackage {
       --replace 'add_runtime_library_dirs = ["$ORIGIN"]' \
                 'add_runtime_library_dirs = ["${libndtypes}/lib", "${libxnd}/lib", "${libgumath}/lib"]'
   '';
+
+  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+    install_name_tool -add_rpath ${libgumath}/lib $out/${python.sitePackages}/gumath/_gumath.*.so
+  '';
+
+  checkPhase = ''
+    pushd python
+    mv gumath _gumath
+    # minor precision issues
+    substituteInPlace test_gumath.py --replace 'test_sin' 'dont_test_sin'
+    python test_gumath.py
+    python test_xndarray.py
+    popd
+  '';
+
 }
+
diff --git a/nixpkgs/pkgs/development/python-modules/gym/default.nix b/nixpkgs/pkgs/development/python-modules/gym/default.nix
index fd08f71aa2bb..7588135e33c3 100644
--- a/nixpkgs/pkgs/development/python-modules/gym/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/gym/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "gym";
-  version = "0.16.0";
+  version = "0.17.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06h5b639nmzhmy4m1j3vigm86iv5pv7k8jy6xpldyd4jdlf37nn5";
+    sha256 = "bb495aa56995b01274a2213423bf5ba05b8f4fd51c6dc61e9d4abddd1189718e";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/h3/default.nix b/nixpkgs/pkgs/development/python-modules/h3/default.nix
index d98a053c4189..a9a0944459a1 100644
--- a/nixpkgs/pkgs/development/python-modules/h3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/h3/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "h3";
-  version = "3.4.3";
+  version = "3.6.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07dlqpr1r4kzb3gci395plpss8gxvvrij40l6w0mylyg7fkab4m2";
+    sha256 = "416e35d736ef6ec9c1f73b9d4a9d5c696cc2a7561811f8bcfa08c8c4912f2289";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/h5netcdf/default.nix b/nixpkgs/pkgs/development/python-modules/h5netcdf/default.nix
index b80a91037179..316c5bc4d483 100644
--- a/nixpkgs/pkgs/development/python-modules/h5netcdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/h5netcdf/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "h5netcdf";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b0df12f4692817cf6d8e2fca95f689e61aa68f2f39aea90fd1790fe5ac8d2cbb";
+    sha256 = "09bbnpsvwksb07wijn7flyyza56h5b2g2cw0hb3slmwxz6cgcjmr";
   };
 
   propagatedBuildInputs = [
@@ -31,8 +31,8 @@ buildPythonPackage rec {
 
   meta = {
     description = "netCDF4 via h5py";
-    homepage = https://github.com/shoyer/h5netcdf;
+    homepage = "https://github.com/shoyer/h5netcdf";
     license = lib.licenses.bsd3;
   };
 
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix b/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix
index e13cae339601..61c63b28ab60 100644
--- a/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hass-nabucasa/default.nix
@@ -1,28 +1,41 @@
 { lib, buildPythonPackage, fetchFromGitHub, fetchpatch
 , acme, aiohttp, snitun, attrs, pycognito, warrant
-, pytest-aiohttp, asynctest, pytest  }:
+, pytest-aiohttp, asynctest, atomicwrites, pytest, pythonOlder }:
 
 buildPythonPackage rec {
   pname = "hass-nabucasa";
-  version = "0.32.2";
+  version = "0.34.6";
 
   src = fetchFromGitHub {
     owner = "nabucasa";
     repo = pname;
     rev = version;
-    sha256 = "1hfi5q222kgbgrj5yvr4lbhca49hcs6sc2yhxc4pjxqsc12bv1f1";
+    sha256 = "1lkqwj58qr0vn7zf5mhrhaz973ahj9wjp4mgzvyja1gcdh6amv34";
   };
 
-  # upstreamed in https://github.com/NabuCasa/hass-nabucasa/pull/119
   postPatch = ''
-    sed -i 's/"acme.*/"acme>=0.40.0,<2.0"/' setup.py
-    cat setup.py
+    sed -i 's/"acme.*"/"acme"/' setup.py
+    sed -i 's/"cryptography.*"/"cryptography"/' setup.py
   '';
 
-  propagatedBuildInputs = [ acme aiohttp snitun attrs warrant pycognito ];
+  patches = [
+    # relax pytz dependency
+    (fetchpatch {
+      url = "https://github.com/NabuCasa/hass-nabucasa/commit/419e80feddc36c68384c032feda0057515b53eaa.patch";
+      sha256 = "14dgwci8615cwcf27hg7b42s7da50xhyjys3yx446q7ipk8zw4x6";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    acme aiohttp atomicwrites snitun attrs warrant pycognito
+  ];
 
   checkInputs = [ pytest pytest-aiohttp asynctest ];
 
+  # Asynctest's mocking is broken with python3.8
+  # https://github.com/Martiusweb/asynctest/issues/132
+  doCheck = pythonOlder "3.8";
+
   checkPhase = ''
     pytest tests/
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/hcloud/default.nix b/nixpkgs/pkgs/development/python-modules/hcloud/default.nix
index bb57c0fbf96f..9a99fb0953a2 100644
--- a/nixpkgs/pkgs/development/python-modules/hcloud/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hcloud/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "hcloud";
-  version = "1.6.3";
+  version = "1.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0idm73k144lk4aw07r8gwxlb0281j09d6l16a0nrn82r36lwq9fy";
+    sha256 = "069bf78a3c6cd642aae0b1a562b443d2670e6d73d507ce77cbf8a2c16974ca29";
   };
 
   propagatedBuildInputs = [ future requests python-dateutil ];
@@ -35,4 +35,4 @@ buildPythonPackage rec {
     platforms = platforms.all;
     maintainers = with maintainers; [ liff ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/hdlparse/default.nix b/nixpkgs/pkgs/development/python-modules/hdlparse/default.nix
new file mode 100644
index 000000000000..4257f9b2e9a2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/hdlparse/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "hdlparse";
+  version = "1.0.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "fb6230ed1e7a04a8f82f8d3fb59791d0751ae35e5b8e58dbbf2cbcf100d0d0f2";
+  };
+
+  #This module does not contain any tests.
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://kevinpt.github.io/hdlparse/";
+    description = "Rudimentary parser for VHDL and Verilog";
+    license = licenses.mit;
+    maintainers = with maintainers; [ elliottvillars ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/python-modules/helpdev/default.nix b/nixpkgs/pkgs/development/python-modules/helpdev/default.nix
index c4caf0e46add..34b4d6974478 100644
--- a/nixpkgs/pkgs/development/python-modules/helpdev/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/helpdev/default.nix
@@ -27,4 +27,4 @@ buildPythonPackage rec {
     license = lib.licenses.mit;
   };
 
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix b/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix
index ba70a25a68de..c40d9672f659 100644
--- a/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hg-evolve/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "hg-evolve";
-  version = "10.0.0";
+  version = "10.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03kn1c62y6rb851wjhsaxkrwq223hkc4ij59i85999byyb2hyqad";
+    sha256 = "9468b3e2721744b077413c3d4a6b321b61370d4c87b90afa40dc2b48ad877d4b";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/hglib/default.nix b/nixpkgs/pkgs/development/python-modules/hglib/default.nix
index 14e5b4edcd7b..e96d7e228708 100644
--- a/nixpkgs/pkgs/development/python-modules/hglib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hglib/default.nix
@@ -30,8 +30,7 @@ buildPythonPackage rec {
   checkInputs = [ nose ];
 
   checkPhase = ''
-    ${python.interpreter} test.py --with-hg "${mercurial}/bin/hg" -v \
-      --exclude=test_merge_prompt_cb # https://bz.mercurial-scm.org/show_bug.cgi?id=6265
+    ${python.interpreter} test.py --with-hg "${mercurial}/bin/hg" -v
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/hickle/default.nix b/nixpkgs/pkgs/development/python-modules/hickle/default.nix
index bc8c741ec2bd..0806573d7bec 100644
--- a/nixpkgs/pkgs/development/python-modules/hickle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hickle/default.nix
@@ -1,5 +1,6 @@
 { buildPythonPackage
 , fetchPypi
+, pythonOlder
 , h5py
 , numpy
 , dill
@@ -18,11 +19,12 @@
 
 buildPythonPackage rec {
   pname   = "hickle";
-  version = "3.4.6";
+  version = "4.0.1";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "026r6yg3amsi8k8plzsbw5rnifym6sc17y011daqyvcpb7mfs94b";
+    sha256 = "fcf2c4f9e4b7f0d9dae7aa6c59a58473884017875d3b17898d56eaf8a9c1da96";
   };
 
   postPatch = ''
@@ -31,10 +33,14 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [ h5py numpy dill ];
+
+  doCheck = false; # incompatible with latest astropy
   checkInputs = [
     pytest pytestcov pytestrunner coveralls scipy pandas astropy twine check-manifest codecov
   ];
 
+  pythonImportsCheck = [ "hickle" ];
+
   meta = {
     description = "Serialize Python data to HDF5";
     homepage = "https://github.com/telegraphic/hickle";
diff --git a/nixpkgs/pkgs/development/python-modules/hidapi/default.nix b/nixpkgs/pkgs/development/python-modules/hidapi/default.nix
index cd70a7ba2ff5..b1c21b106b56 100644
--- a/nixpkgs/pkgs/development/python-modules/hidapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hidapi/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "hidapi";
-  version = "0.7.99.post21";
+  version = "0.9.0.post3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e0be1aa6566979266a8fc845ab0e18613f4918cf2c977fe67050f5dc7e2a9a97";
+    sha256 = "5a2442928f17ba742d9c53073f48b152051c5747d758d2fefd937543da5ab2e5";
   };
 
   propagatedBuildInputs =
diff --git a/nixpkgs/pkgs/development/python-modules/hieroglyph/default.nix b/nixpkgs/pkgs/development/python-modules/hieroglyph/default.nix
index ab6203581cd9..0959d117de34 100644
--- a/nixpkgs/pkgs/development/python-modules/hieroglyph/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hieroglyph/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, fetchPypi, buildPythonPackage, sphinx }:
+{ stdenv, fetchPypi, buildPythonPackage, isPy27, sphinx }:
 
 buildPythonPackage rec {
   pname = "hieroglyph";
-  version = "1.0.0";
+  version = "2.1.0";
+  disabled = isPy27; # python2 compatible sphinx is too low
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8e137f0b1cd60c47b870011089790d3c8ddb74fcf409a75ddf2c7f2516ff337c";
+    sha256 = "b4b5db13a9d387438e610c2ca1d81386ccd206944d9a9dd273f21874486cddaf";
   };
 
   propagatedBuildInputs = [ sphinx ];
diff --git a/nixpkgs/pkgs/development/python-modules/hiredis/default.nix b/nixpkgs/pkgs/development/python-modules/hiredis/default.nix
index c22de6d8a669..891c79f1b7b8 100644
--- a/nixpkgs/pkgs/development/python-modules/hiredis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hiredis/default.nix
@@ -7,17 +7,19 @@
 
 buildPythonPackage rec {
   pname = "hiredis";
-  version = "1.0.1";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "aa59dd63bb3f736de4fc2d080114429d5d369dfb3265f771778e8349d67a97a4";
+    sha256 = "996021ef33e0f50b97ff2d6b5f422a0fe5577de21a8873b58a779a5ddd1c3132";
   };
   propagatedBuildInputs = [ redis ];
 
   checkPhase = ''
+    mv hiredis _hiredis
     ${python.interpreter} test.py
   '';
+  pythonImportsCheck = [ "hiredis" ];
 
   meta = with stdenv.lib; {
     description = "Wraps protocol parsing code in hiredis, speeds up parsing of multi bulk replies";
diff --git a/nixpkgs/pkgs/development/python-modules/holidays/default.nix b/nixpkgs/pkgs/development/python-modules/holidays/default.nix
index 1620109e82d3..10ee1bbf2e76 100644
--- a/nixpkgs/pkgs/development/python-modules/holidays/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/holidays/default.nix
@@ -1,15 +1,28 @@
-{ stdenv, buildPythonPackage, fetchPypi, six, dateutil, convertdate }:
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, convertdate
+, dateutil
+, korean-lunar-calendar
+, six
+}:
 
 buildPythonPackage rec {
   pname = "holidays";
-  version = "0.10.2";
+  version = "0.10.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5a91324fcaa4c72a0fe9a13601436f65ee33b2ef033686f4e2228d58a7631970";
+    sha256 = "839281f2b1ae7ac576da7951472482f6e714818296853107ea861fa60f5013cc";
   };
 
-  propagatedBuildInputs = [ six dateutil convertdate ];
+  propagatedBuildInputs = [
+    convertdate
+    dateutil
+    korean-lunar-calendar
+    six
+  ];
+  pythonImportsCheck = [ "holidays" ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/dr-prodigy/python-holidays";
diff --git a/nixpkgs/pkgs/development/python-modules/holoviews/default.nix b/nixpkgs/pkgs/development/python-modules/holoviews/default.nix
index 7b54d8cd5f1b..796ddaace8b1 100644
--- a/nixpkgs/pkgs/development/python-modules/holoviews/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/holoviews/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "holoviews";
-  version = "1.13.2";
+  version = "1.13.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "00i8732qib86xqa3652vkr178ib3682cls4jcv5g52y0rlkd8bfg";
+    sha256 = "e6753651a8598f21fc2c20e8456865ecec276cfea1519182a76d957506727934";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/howdoi/default.nix b/nixpkgs/pkgs/development/python-modules/howdoi/default.nix
index c98192e9b0ab..a4f1ab6b7728 100644
--- a/nixpkgs/pkgs/development/python-modules/howdoi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/howdoi/default.nix
@@ -2,27 +2,37 @@
 , buildPythonPackage
 , fetchPypi
 , six
-, requests-cache
 , pygments
 , pyquery
 , cachelib
 , appdirs
+, keep
 }:
 
 buildPythonPackage rec {
   pname = "howdoi";
-  version = "1.2.1";
+  version = "2.0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3b322668606d29d8a841c3b28c0574851f512b55c33a7ceb982b6a98d82fa3e3";
+    sha256 = "8e4d048ae7ca6182d648f62a66d07360cca2504fe46649c32748b6ef2735f7f4";
   };
 
-  propagatedBuildInputs = [ six requests-cache pygments pyquery cachelib appdirs ];
+  postPatch = ''
+    substituteInPlace setup.py --replace 'cachelib==0.1' 'cachelib'
+  '';
+
+  propagatedBuildInputs = [ six pygments pyquery cachelib appdirs keep ];
 
+  # author hasn't included page_cache directory (which allows tests to run without
+  # external requests) in pypi tarball. github repo doesn't have release revisions
+  # clearly tagged. re-enable tests when either is sorted.
+  doCheck = false;
   preCheck = ''
+    mv howdoi _howdoi
     export HOME=$(mktemp -d)
   '';
+  pythonImportsCheck = [ "howdoi" ];
 
   meta = with lib; {
     description = "Instant coding answers via the command line";
diff --git a/nixpkgs/pkgs/development/python-modules/hstspreload/default.nix b/nixpkgs/pkgs/development/python-modules/hstspreload/default.nix
index 635ad7a283ee..99612882814f 100644
--- a/nixpkgs/pkgs/development/python-modules/hstspreload/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hstspreload/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "hstspreload";
-  version = "2020.5.19";
+  version = "2020.6.9";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "sethmlarson";
     repo = pname;
     rev = version;
-    sha256 = "09a5vajzw3f2kpdq9ydzx1f840xmdmzb6br3ns79mnqnsw6nfs6z";
+    sha256 = "12js2xcj4979jklc19hjmv5p2b6689p18p4w9swhjc6cgcwm4jy2";
   };
 
   # tests require network connection
diff --git a/nixpkgs/pkgs/development/python-modules/html-sanitizer/default.nix b/nixpkgs/pkgs/development/python-modules/html-sanitizer/default.nix
new file mode 100644
index 000000000000..17783f38d1f1
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/html-sanitizer/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildPythonPackage, fetchFromGitHub, lxml, beautifulsoup4, pytest, pytestrunner }:
+
+buildPythonPackage rec {
+  pname = "html-sanitizer";
+  version = "1.9.1";
+
+  src = fetchFromGitHub {
+    owner = "matthiask";
+    repo = pname;
+    rev = version;
+    sha256 = "0nnv34924r0yn01rwlk749j5ijy7yxyj302s1i57yjrkqr3zlvas";
+  };
+
+  propagatedBuildInputs = [ lxml beautifulsoup4 ];
+
+  meta = with lib; {
+    description = "An  allowlist-based and very opinionated HTML sanitizer that can be used both for untrusted and trusted sources.";
+    homepage = "https://github.com/matthiask/html-sanitizer";
+    license = licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/html5lib/default.nix b/nixpkgs/pkgs/development/python-modules/html5lib/default.nix
index 81042ac34098..f0abbcfbecce 100644
--- a/nixpkgs/pkgs/development/python-modules/html5lib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/html5lib/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "html5lib";
-  version = "1.0.1";
+  version = "1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "66cb0dcfdbbc4f9c3ba1a63fdb511ffdbd4f513b2b6d81b80cd26ce6b3fb3736";
+    sha256 = "b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f";
   };
 
   checkInputs = [ flake8 pytest_4 pytest-expect mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/htmllaundry/default.nix b/nixpkgs/pkgs/development/python-modules/htmllaundry/default.nix
index df3bdb216a4f..33d3691e85ad 100644
--- a/nixpkgs/pkgs/development/python-modules/htmllaundry/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/htmllaundry/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "htmllaundry";
-  version = "2.0";
+  version = "2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e428cba78d5a965e959f5dac2eb7d5f7d627dd889990d5efa8d4e03f3dd768d9";
+    sha256 = "9124f067d3c06ef2613e2cc246b2fde2299802280a8b0e60dc504137085f0334";
   };
 
   buildInputs = [ nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/http-ece/default.nix b/nixpkgs/pkgs/development/python-modules/http-ece/default.nix
index eafa429b439e..638191ee7fc4 100644
--- a/nixpkgs/pkgs/development/python-modules/http-ece/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/http-ece/default.nix
@@ -1,5 +1,5 @@
-{ lib, fetchPypi, buildPythonPackage
-, coverage, flake8, mock, nose
+{ lib, fetchPypi, buildPythonPackage, pythonOlder
+, coverage, flake8, mock, nose, importlib-metadata
 , cryptography }:
 
 buildPythonPackage rec {
@@ -11,7 +11,8 @@ buildPythonPackage rec {
     sha256 = "1y5ln09ji4dwpzhxr77cggk02kghq7lql60a6969a5n2lwpvqblk";
   };
 
-  propagatedBuildInputs = [ cryptography ];
+  propagatedBuildInputs = [ cryptography ]
+    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   checkInputs = [ coverage flake8 mock nose ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/http-parser/default.nix b/nixpkgs/pkgs/development/python-modules/http-parser/default.nix
new file mode 100644
index 000000000000..d98785576f48
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/http-parser/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "http-parser";
+  version = "0.9.0";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "benoitc";
+    repo = pname;
+    rev = version;
+    sha256 = "05byv1079qi7ypvzm13yf5nc23ink6gr6c5wrhq7fwld4syscy2q";
+  };
+
+  checkInputs = [ pytest ];
+
+  checkPhase = "pytest testing/";
+
+  pythonImportsCheck = [ "http_parser" ];
+
+  meta = with lib; {
+    description = "HTTP request/response parser for python in C";
+    homepage = "https://github.com/benoitc/http-parser";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/httpcore/default.nix b/nixpkgs/pkgs/development/python-modules/httpcore/default.nix
new file mode 100644
index 000000000000..9ac9b76d2e36
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/httpcore/default.nix
@@ -0,0 +1,34 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, h11
+, sniffio
+}:
+
+buildPythonPackage rec {
+  pname = "httpcore";
+  version = "0.10.2";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "encode";
+    repo = pname;
+    rev = version;
+    sha256 = "00gn8nfv814rg6fj7xv97mrra3fvx6fzjcgx9y051ihm6hxljdsi";
+  };
+
+  propagatedBuildInputs = [ h11 sniffio ];
+
+  # tests require pythonic access to mitmproxy, which isn't (yet?) packaged as
+  # a pythonPackage.
+  doCheck = false;
+  pythonImportsCheck = [ "httpcore" ];
+
+  meta = with stdenv.lib; {
+    description = "A minimal HTTP client";
+    homepage = "https://github.com/encode/httpcore";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.ris ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/httplib2/default.nix b/nixpkgs/pkgs/development/python-modules/httplib2/default.nix
index 5495c806dc0f..b23d501f1e53 100644
--- a/nixpkgs/pkgs/development/python-modules/httplib2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httplib2/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "httplib2";
-  version = "0.17.4";
+  version = "0.18.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1e9340ecf0187a621bdcfb407c32e04e8e09fc6ab28b050efa38f20eae0e975f";
+    sha256 = "8af66c1c52c7ffe1aa5dc4bcd7c769885254b0756e6e69f953c7f0ab49a70ba3";
   };
 
   # Needs setting up
diff --git a/nixpkgs/pkgs/development/python-modules/httpretty/0.nix b/nixpkgs/pkgs/development/python-modules/httpretty/0.nix
new file mode 100644
index 000000000000..ee0e598a9ac2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/httpretty/0.nix
@@ -0,0 +1,52 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, tornado
+, requests
+, httplib2
+, sure
+, nose
+, nose-exclude
+, coverage
+, rednose
+, nose-randomly
+, six
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "httpretty";
+  version = "0.9.7";
+
+  # drop this for version > 0.9.7
+  # Flaky tests: https://github.com/gabrielfalcao/HTTPretty/pull/394
+  doCheck = stdenv.lib.versionAtLeast version "0.9.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "66216f26b9d2c52e81808f3e674a6fb65d4bf719721394a1a9be926177e55fbe";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  checkInputs = [ nose sure coverage mock rednose
+    # Following not declared in setup.py
+    nose-randomly requests tornado httplib2 nose-exclude
+  ];
+
+  __darwinAllowLocalNetworking = true;
+
+  # Those flaky tests are failing intermittently on all platforms
+  NOSE_EXCLUDE = stdenv.lib.concatStringsSep "," [
+    "tests.functional.test_httplib2.test_callback_response"
+    "tests.functional.test_requests.test_streaming_responses"
+    "tests.functional.test_httplib2.test_callback_response"
+    "tests.functional.test_requests.test_httpretty_should_allow_adding_and_overwritting_by_kwargs_u2"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://httpretty.readthedocs.org/";
+    description = "HTTP client request mocking tool";
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/httpretty/default.nix b/nixpkgs/pkgs/development/python-modules/httpretty/default.nix
index ee0e598a9ac2..895a28356ee5 100644
--- a/nixpkgs/pkgs/development/python-modules/httpretty/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpretty/default.nix
@@ -12,11 +12,14 @@
 , nose-randomly
 , six
 , mock
+, eventlet
+, pytest
+, freezegun
 }:
 
 buildPythonPackage rec {
   pname = "httpretty";
-  version = "0.9.7";
+  version = "1.0.2";
 
   # drop this for version > 0.9.7
   # Flaky tests: https://github.com/gabrielfalcao/HTTPretty/pull/394
@@ -24,16 +27,20 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "66216f26b9d2c52e81808f3e674a6fb65d4bf719721394a1a9be926177e55fbe";
+    sha256 = "24a6fd2fe1c76e94801b74db8f52c0fb42718dc4a199a861b305b1a492b9d868";
   };
 
   propagatedBuildInputs = [ six ];
 
-  checkInputs = [ nose sure coverage mock rednose
+  checkInputs = [ nose sure coverage mock rednose pytest
     # Following not declared in setup.py
-    nose-randomly requests tornado httplib2 nose-exclude
+    nose-randomly requests tornado httplib2 nose-exclude freezegun
   ];
 
+  checkPhase = ''
+    nosetests tests/unit # functional tests cause trouble requiring /etc/protocol
+  '';
+
   __darwinAllowLocalNetworking = true;
 
   # Those flaky tests are failing intermittently on all platforms
diff --git a/nixpkgs/pkgs/development/python-modules/httptools/default.nix b/nixpkgs/pkgs/development/python-modules/httptools/default.nix
index b5d7f8cdb102..ed25195e3f28 100644
--- a/nixpkgs/pkgs/development/python-modules/httptools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httptools/default.nix
@@ -1,17 +1,24 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "httptools";
-  version = "0.0.13";
+  version = "0.1.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e00cbd7ba01ff748e494248183abc6e153f49181169d8a3d41bb49132ca01dfc";
+    sha256 = "41b573cf33f64a8f8f3400d0a7faf48e1888582b6f6e02b82b9bd4f0bf7497ce";
   };
 
+  # tests are not included in pypi tarball
+  doCheck = false;
+
+  pythonImportsCheck = [ "httptools" ];
+
   meta = with lib; {
     description = "A collection of framework independent HTTP protocol utils";
     homepage = "https://github.com/MagicStack/httptools";
diff --git a/nixpkgs/pkgs/development/python-modules/httpx/default.nix b/nixpkgs/pkgs/development/python-modules/httpx/default.nix
index 0b29c80fc39e..5361e047207a 100644
--- a/nixpkgs/pkgs/development/python-modules/httpx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/httpx/default.nix
@@ -1,65 +1,70 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , certifi
-, hstspreload
 , chardet
 , h11
 , h2
+, httpcore
 , idna
 , rfc3986
 , sniffio
 , isPy27
 , pytest
+, pytest-asyncio
+, pytest-trio
 , pytestcov
 , trustme
 , uvicorn
-, trio
 , brotli
-, urllib3
 }:
 
 buildPythonPackage rec {
   pname = "httpx";
-  version = "0.12.1";
+  version = "0.14.2";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "1nrp4h1ppb5vll81fzxmks82p0hxcil9f3mja3dgya511kc703h6";
+    sha256 = "08b6k5g8car3bic90aw4ysb2zvsa5nm8qk3hk4dgamllnnxzl5br";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "fix-cookie-test-timestamp.patch";
+      url = "https://github.com/encode/httpx/pull/1270.patch";
+      sha256 = "1hgrynac6226sgnyzmsr1nr15rn49gbfmk4c2kx3dwkbh6vr7jpd";
+    })
+  ];
+
   propagatedBuildInputs = [
     certifi
-    hstspreload
     chardet
     h11
     h2
+    httpcore
     idna
     rfc3986
     sniffio
-    urllib3
   ];
 
   checkInputs = [
     pytest
+    pytest-asyncio
+    pytest-trio
     pytestcov
     trustme
     uvicorn
-    trio
     brotli
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-          --replace "h11==0.8.*" "h11"
-  '';
-
   checkPhase = ''
-    PYTHONPATH=.:$PYTHONPATH pytest
+    PYTHONPATH=.:$PYTHONPATH pytest -k 'not (test_connect_timeout or test_elapsed_timer)'
   '';
+  pythonImportsCheck = [ "httpx" ];
 
   meta = with lib; {
     description = "The next generation HTTP client";
diff --git a/nixpkgs/pkgs/development/python-modules/humanfriendly/default.nix b/nixpkgs/pkgs/development/python-modules/humanfriendly/default.nix
index 8674231bc308..49cb31b7d030 100644
--- a/nixpkgs/pkgs/development/python-modules/humanfriendly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/humanfriendly/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "humanfriendly";
-  version = "4.18";
+  version = "8.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "33ee8ceb63f1db61cce8b5c800c531e1a61023ac5488ccde2ba574a85be00a85";
+    sha256 = "bf52ec91244819c780341a3438d5d7b09f431d3f113a475147ac9b7b167a3d12";
   };
 
   propagatedBuildInputs = lib.optional (pythonOlder "3.3") monotonic;
diff --git a/nixpkgs/pkgs/development/python-modules/humanize/default.nix b/nixpkgs/pkgs/development/python-modules/humanize/default.nix
index d54c932ae32c..4676c300471d 100644
--- a/nixpkgs/pkgs/development/python-modules/humanize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/humanize/default.nix
@@ -1,19 +1,23 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , mock
+, setuptools_scm
 }:
 
 buildPythonPackage rec {
-  version = "0.5.1";
+  version = "2.6.0";
   pname = "humanize";
+  disabled = isPy27; # setup.py no longer compatible
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a43f57115831ac7c70de098e6ac46ac13be00d69abbf60bdcac251344785bb19";
+    sha256 = "8ee358ea6c23de896b9d1925ebe6a8504bb2ba7e98d5ccf4d07ab7f3b28f3819";
   };
 
-  buildInputs = [ mock ];
+  nativeBuildInputs = [ setuptools_scm ];
+  checkInputs = [ mock ];
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/hupper/default.nix b/nixpkgs/pkgs/development/python-modules/hupper/default.nix
index 33f76f0a2486..b70202138d41 100644
--- a/nixpkgs/pkgs/development/python-modules/hupper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hupper/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "hupper";
-  version = "1.9.1";
+  version = "1.10.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3b1c2222ec7b8159e7ad059e4493c6cc634c86184af0bf2ce5aba6edd241cf5f";
+    sha256 = "3818f53dabc24da66f65cf4878c1c7a9b5df0c46b813e014abdd7c569eb9a02a";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/hvac/default.nix b/nixpkgs/pkgs/development/python-modules/hvac/default.nix
index d68e12b37732..a3cd4d5ec4d8 100644
--- a/nixpkgs/pkgs/development/python-modules/hvac/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hvac/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "hvac";
-  version = "0.10.3";
+  version = "0.10.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "391b558a465d1919a2862926ab9a7c6bef1f2ac2c46daf8dd5115080c42978e4";
+    sha256 = "87dc2a3183c1d4595990203e752b430155d7582a60850dfe0756189a233d4b57";
   };
 
   propagatedBuildInputs = [ requests six ];
diff --git a/nixpkgs/pkgs/development/python-modules/hwi/default.nix b/nixpkgs/pkgs/development/python-modules/hwi/default.nix
new file mode 100644
index 000000000000..de9c7995bde9
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/hwi/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, mnemonic
+, ecdsa
+, typing-extensions
+, hidapi
+, libusb1
+, pyaes
+, trezor
+, btchip
+, ckcc-protocol
+}:
+
+buildPythonPackage rec {
+  pname = "hwi";
+  version = "1.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "eec460a51eb556500c1eca92015be246d5714cd53171407a76da71e4346048ae";
+  };
+
+  propagatedBuildInputs = [
+    mnemonic
+    ecdsa
+    typing-extensions
+    hidapi
+    libusb1
+    pyaes
+    trezor
+    btchip
+    ckcc-protocol
+  ];
+
+  patches = [ ./relax-deps.patch ];
+
+  # tests are not packaged in the released tarball
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "hwilib"
+  ];
+
+  meta = {
+    description = "Bitcoin Hardware Wallet Interface";
+    homepage = "https://github.com/bitcoin-core/hwi";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ prusnak ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/hwi/relax-deps.patch b/nixpkgs/pkgs/development/python-modules/hwi/relax-deps.patch
new file mode 100644
index 000000000000..ff6c6b9768f6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/hwi/relax-deps.patch
@@ -0,0 +1,16 @@
+--- a/setup.py
++++ b/setup.py
+@@ -98,10 +98,10 @@ package_data = \
+ modules = \
+ ['hwi', 'hwi-qt']
+ install_requires = \
+-['ecdsa>=0.13.0,<0.14.0',
+- 'hidapi>=0.7.99,<0.8.0',
++['ecdsa',
++ 'hidapi',
+  'libusb1>=1.7,<2.0',
++ 'mnemonic',
+- 'mnemonic>=0.18.0,<0.19.0',
+  'pyaes>=1.6,<2.0',
+  'typing-extensions>=3.7,<4.0']
+ 
diff --git a/nixpkgs/pkgs/development/python-modules/hyperlink/default.nix b/nixpkgs/pkgs/development/python-modules/hyperlink/default.nix
index 1fc490178215..bab7986eda22 100644
--- a/nixpkgs/pkgs/development/python-modules/hyperlink/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hyperlink/default.nix
@@ -1,17 +1,18 @@
-{ stdenv, buildPythonPackage, fetchPypi, idna }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, idna, typing }:
 
 buildPythonPackage rec {
   pname = "hyperlink";
-  version = "19.0.0";
+  version = "20.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4288e34705da077fada1111a24a0aa08bb1e76699c9ce49876af722441845654";
+    sha256 = "47fcc7cd339c6cb2444463ec3277bdcfe142c8b1daf2160bdd52248deec815af";
   };
 
-  propagatedBuildInputs = [ idna ];
+  propagatedBuildInputs = [ idna ]
+    ++ lib.optionals isPy27 [ typing ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A featureful, correct URL for Python";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/nixpkgs/pkgs/development/python-modules/hypothesis-auto/default.nix b/nixpkgs/pkgs/development/python-modules/hypothesis-auto/default.nix
new file mode 100644
index 000000000000..692db49adce6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/hypothesis-auto/default.nix
@@ -0,0 +1,36 @@
+{ lib, buildPythonPackage, fetchPypi
+, hypothesis
+, poetry
+, pydantic
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "hypothesis-auto";
+  version = "1.1.4";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1c9jksza0gg2gva3liy0s8riv6imjavhnqw05m8l5660knq2yb2y";
+  };
+
+  nativeBuildInputs = [
+    poetry
+  ];
+
+  propagatedBuildInputs = [
+    pydantic
+    hypothesis
+    pytest
+  ];
+
+  pythonImportsCheck = [ "hypothesis_auto" ];
+
+  meta = with lib; {
+    description = "Enables fully automatic tests for type annotated functions";
+    homepage = "https://github.com/timothycrosley/hypothesis-auto/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix b/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix
index f79fe028203e..dac4ca43fc91 100644
--- a/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/hypothesis/default.nix
@@ -10,7 +10,7 @@ buildPythonPackage rec {
   # pytz fake_factory django numpy pytest
   # If you need these, you can just add them to your environment.
 
-  version = "5.11.0";
+  version = "5.30.0";
   pname = "hypothesis";
 
   # Use github tarballs that includes tests
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "HypothesisWorks";
     repo = "hypothesis-python";
     rev = "hypothesis-python-${version}";
-    sha256 = "1ca2dwih65s4r8vazwqm963ywngdr3v854ldnfyny7bvx1v28m8k";
+    sha256 = "0fmc4jfaksr285fjhp18ibj2rr8cxmbd0pwx370r5wf8jnhm6jb3";
   };
 
   postUnpack = "sourceRoot=$sourceRoot/hypothesis-python";
diff --git a/nixpkgs/pkgs/development/python-modules/hyppo/default.nix b/nixpkgs/pkgs/development/python-modules/hyppo/default.nix
new file mode 100644
index 000000000000..5b2869e10d19
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/hyppo/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, isPy27
+, fetchFromGitHub
+, pytestCheckHook , pytestcov , numba
+, numpy
+, scikitlearn
+, scipy
+}:
+
+buildPythonPackage rec {
+  pname = "hyppo";
+  version = "0.1.3";
+
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "neurodata";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0qdnb1l4hz4dgwhapz1fp9sb2vxxvr8h2ngsbvyf50h3kapcn19r";
+  };
+
+  propagatedBuildInputs = [
+    numba
+    numpy
+    scikitlearn
+    scipy
+  ];
+
+  checkInputs = [ pytestCheckHook pytestcov ];
+  pytestFlagsArray = [ "--ignore=docs" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/neurodata/hyppo";
+    description = "Indepedence testing in Python";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/i3ipc/default.nix b/nixpkgs/pkgs/development/python-modules/i3ipc/default.nix
index f5a8fc1e46c3..231cb4f1d413 100644
--- a/nixpkgs/pkgs/development/python-modules/i3ipc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/i3ipc/default.nix
@@ -1,26 +1,25 @@
 { stdenv, buildPythonPackage, fetchFromGitHub
-, enum-compat
-, xorgserver, pytest, pytest-xvfb, pytest-asyncio, i3, python, xlib, xdpyinfo
+, xorgserver, pytest, pytest-xvfb, i3, python, xlib, xdpyinfo
 , makeFontsConf, coreutils
 }:
 
 buildPythonPackage rec {
   pname = "i3ipc";
-  version = "2.1.1";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner  = "acrisci";
     repo   = "i3ipc-python";
     rev    = "v${version}";
-    sha256 = "10zpbiw1gcndn439g1vxcdkxllwp02qcmaal4w7hi2rzgaw1xkdk";
+    sha256 = "13bzs9dcv27czpnnbgz7a037lm8h991c8gk0qzzk5mq5yak24715";
   };
-  propagatedBuildInputs = [ enum-compat xlib ];
+  propagatedBuildInputs = [ xlib ];
 
   fontsConf = makeFontsConf {
     fontDirectories = [ ];
   };
   FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file
-  checkInputs = [ pytest xdpyinfo pytest-asyncio pytest-xvfb xorgserver i3 ];
+  checkInputs = [ pytest xdpyinfo pytest-xvfb xorgserver i3 ];
 
   postPatch = ''
     substituteInPlace test/i3.config \
diff --git a/nixpkgs/pkgs/development/python-modules/iapws/default.nix b/nixpkgs/pkgs/development/python-modules/iapws/default.nix
index 3605e88edd34..76330af43eeb 100644
--- a/nixpkgs/pkgs/development/python-modules/iapws/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/iapws/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "iapws";
-  version = "1.4.1";
+  version = "1.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d65c813bb6b100a8d1ed79e00148832a0321b3063e9632a990344890acb02493";
+    sha256 = "781285acaedff49d72c074aa308aabf7ca17f486cca490e5ed3f35526bbe4153";
   };
 
   propagatedBuildInputs = [ scipy ];
diff --git a/nixpkgs/pkgs/development/python-modules/icecream/default.nix b/nixpkgs/pkgs/development/python-modules/icecream/default.nix
new file mode 100644
index 000000000000..eba5a70577f7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/icecream/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildPythonPackage, fetchPypi
+, asttokens, colorama, executing, pygments
+}:
+
+buildPythonPackage rec {
+  pname = "icecream";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "16kpixl43nrn093cvkmxiq2dzd9xc73zwzkmwp0rs7x01nji8kj3";
+  };
+
+  propagatedBuildInputs = [ asttokens colorama executing pygments ];
+
+  meta = with lib; {
+    description = "A little library for sweet and creamy print debugging";
+    homepage = "https://github.com/gruns/icecream";
+    license = licenses.mit;
+    maintainers = with maintainers; [ renatoGarcia ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ics/default.nix b/nixpkgs/pkgs/development/python-modules/ics/default.nix
index d304dddd79db..08799a9fb4b2 100644
--- a/nixpkgs/pkgs/development/python-modules/ics/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ics/default.nix
@@ -1,6 +1,6 @@
 { stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
 , tatsu, arrow
-, pytest-sugar, pytestpep8, pytest-flakes, pytestcov
+, pytestCheckHook, pytestpep8, pytest-flakes
 }:
 
 buildPythonPackage rec {
@@ -22,10 +22,7 @@ buildPythonPackage rec {
       --replace "arrow>=0.11,<0.15" "arrow"
   '';
 
-  checkInputs = [ pytest-sugar pytestpep8 pytest-flakes pytestcov ];
-  checkPhase = ''
-    pytest
-  '';
+  checkInputs = [ pytestCheckHook pytestpep8 pytest-flakes ];
 
   meta = with stdenv.lib; {
     description = "Pythonic and easy iCalendar library (RFC 5545)";
diff --git a/nixpkgs/pkgs/development/python-modules/identify/default.nix b/nixpkgs/pkgs/development/python-modules/identify/default.nix
index 9f78298a3f3a..68a71e0974b8 100644
--- a/nixpkgs/pkgs/development/python-modules/identify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/identify/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "identify";
-  version = "1.4.19";
+  version = "1.4.29";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "249ebc7e2066d6393d27c1b1be3b70433f824a120b1d8274d362f1eb419e3b52";
+    sha256 = "9f5fcf22b665eaece583bd395b103c2769772a0f646ffabb5b1f155901b07de2";
   };
 
   # Tests not included in PyPI tarball
diff --git a/nixpkgs/pkgs/development/python-modules/idna/default.nix b/nixpkgs/pkgs/development/python-modules/idna/default.nix
index 5e5d623ff10e..613fde773a71 100644
--- a/nixpkgs/pkgs/development/python-modules/idna/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/idna/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "idna";
-  version = "2.8";
+  version = "2.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407";
+    sha256 = "b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6";
   };
 
   meta = {
@@ -17,4 +17,4 @@ buildPythonPackage rec {
     description = "Internationalized Domain Names in Applications (IDNA)";
     license = lib.licenses.bsd3;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ifaddr/default.nix b/nixpkgs/pkgs/development/python-modules/ifaddr/default.nix
index e9f5fed49a34..b4a9b20f08d1 100644
--- a/nixpkgs/pkgs/development/python-modules/ifaddr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ifaddr/default.nix
@@ -6,12 +6,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.1.6";
+  version = "0.1.7";
   pname = "ifaddr";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c19c64882a7ad51a394451dabcbbed72e98b5625ec1e79789924d5ea3e3ecb93";
+    sha256 = "1f9e8a6ca6f16db5a37d3356f07b6e52344f6f9f7e806d618537731669eb1a94";
   };
 
   propagatedBuildInputs = [ ipaddress ];
diff --git a/nixpkgs/pkgs/development/python-modules/ihatemoney/default.nix b/nixpkgs/pkgs/development/python-modules/ihatemoney/default.nix
index 5df5e6b18cd2..3e36b4dd8e2d 100644
--- a/nixpkgs/pkgs/development/python-modules/ihatemoney/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ihatemoney/default.nix
@@ -1,4 +1,4 @@
-{ buildPythonPackage, lib, fetchFromGitHub, isPy27, nixosTests
+{ buildPythonPackage, lib, fetchFromGitHub, isPy27, nixosTests, fetchpatch, fetchPypi
 , alembic
 , aniso8601
 , Babel
@@ -15,33 +15,71 @@
 , flask_script
 , flask_sqlalchemy
 , flask_wtf
+, debts
 , idna
 , itsdangerous
 , jinja2
 , Mako
 , markupsafe
-, mock
 , python-dateutil
 , pytz
 , six
 , sqlalchemy
+, sqlalchemy-continuum
 , werkzeug
 , wtforms
 , psycopg2 # optional, for postgresql support
 , flask_testing
+, pytestCheckHook
 }:
 
+# ihatemoney is not really a library. It will only ever be imported
+# by the interpreter of uwsgi. So overrides for its depencies are fine.
+let
+  # https://github.com/spiral-project/ihatemoney/issues/567
+  pinned_wtforms = wtforms.overridePythonAttrs (old: rec {
+    pname = "WTForms";
+    version = "2.2.1";
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "0q9vkcq6jnnn618h27lx9sas6s9qlg2mv8ja6dn0hy38gwzarnqc";
+    };
+  });
+  pinned_flask_wtf = flask_wtf.override { wtforms = pinned_wtforms; };
+in
+
 buildPythonPackage rec {
   pname = "ihatemoney";
-  version = "4.1";
+  version = "4.2";
 
   src = fetchFromGitHub {
     owner = "spiral-project";
     repo = pname;
     rev = version;
-    sha256 = "1ai7v2i2rvswzv21nwyq51fvp8lr2x2cl3n34p11br06kc1pcmin";
+    sha256 = "0d4vc6m0jkwlz9ly0hcjghccydvqbldh2jb8yzf94jrgkd5fd7k1";
   };
 
+  disabled = isPy27;
+
+  patches = [
+    # fix migration on postgresql
+    # remove on next release
+    (fetchpatch {
+      url = "https://github.com/spiral-project/ihatemoney/commit/6129191b26784b895e203fa3eafb89cee7d88b71.patch";
+      sha256 = "0yc24gsih9x3pnh2mhj4v5i71x02dq93a9jd2r8b1limhcl4p1sw";
+    })
+    (fetchpatch {
+      name = "CVE-2020-15120.patch";
+      url = "https://github.com/spiral-project/ihatemoney/commit/8d77cf5d5646e1d2d8ded13f0660638f57e98471.patch";
+      sha256 = "0y855sk3qsbpq7slj876k2ifa1lccc2dccag98pkyaadpz5gbabv";
+    })
+  ];
+
+  postPatch = ''
+    # remove draconian pinning
+    sed -i 's/==.*$//' setup.cfg
+  '';
+
   propagatedBuildInputs = [
     alembic
     aniso8601
@@ -58,7 +96,7 @@ buildPythonPackage rec {
     flask-restful
     flask_script
     flask_sqlalchemy
-    flask_wtf
+    pinned_flask_wtf
     idna
     itsdangerous
     jinja2
@@ -68,22 +106,30 @@ buildPythonPackage rec {
     pytz
     six
     sqlalchemy
+    sqlalchemy-continuum
     werkzeug
-    wtforms
+    pinned_wtforms
     psycopg2
+    debts
   ];
 
   checkInputs = [
-    flask_testing
-  ] ++ lib.optionals isPy27 [ mock ];
+    flask_testing pytestCheckHook
+  ];
+
+  pytestFlagsArray = [ "--pyargs ihatemoney.tests.tests" ];
+  disabledTests = [
+    "test_notifications"  # requires running service.
+    "test_invite"         # requires running service.
+  ];
 
   passthru.tests = {
-    inherit (nixosTests) ihatemoney;
+    inherit (nixosTests.ihatemoney) ihatemoney-postgresql ihatemoney-sqlite;
   };
+
   meta = with lib; {
     homepage = "https://ihatemoney.org";
     description = "A simple shared budget manager web application";
-    platforms = platforms.linux;
     license = licenses.beerware;
     maintainers = [ maintainers.symphorien ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/ijson/default.nix b/nixpkgs/pkgs/development/python-modules/ijson/default.nix
index 9374d8939c39..d877c0983540 100644
--- a/nixpkgs/pkgs/development/python-modules/ijson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ijson/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ijson";
-  version = "2.6.1";
+  version = "3.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1l034zq23315icym2n0zppa5lwpdll3mvavmyjbiryxb4c5wdsvm";
+    sha256 = "815e9ce9d2de7ddd58ba01834d8f55790b7daddbac6c844cba0fc459b7d5005a";
   };
 
   doCheck = false; # something about yajl
diff --git a/nixpkgs/pkgs/development/python-modules/imagecorruptions/default.nix b/nixpkgs/pkgs/development/python-modules/imagecorruptions/default.nix
index f77e2dcab0d6..3ebd22ffeb25 100644
--- a/nixpkgs/pkgs/development/python-modules/imagecorruptions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imagecorruptions/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     substituteInPlace setup.py \
       --replace "'opencv-python >= 3.4.5'," ""
   '';
-  
+
   propagatedBuildInputs = [
     numpy
     scikitimage
diff --git a/nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/default.nix b/nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/default.nix
index e3a6e3bfd8db..d9991ee7845f 100644
--- a/nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imageio-ffmpeg/default.nix
@@ -6,10 +6,10 @@
 
 buildPythonPackage rec {
   pname = "imageio-ffmpeg";
-  version = "0.3.0";
+  version = "0.4.2";
 
   src = fetchPypi {
-    sha256 = "1hnn00xz9jyksnx1g0r1icv6ynbdnxq4cfnmb58ikg6ymi20al18";
+    sha256 = "13b05b17a941a9f4a90b16910b1ffac159448cff051a153da8ba4b4343ffa195";
     inherit pname version;
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/imageio/default.nix b/nixpkgs/pkgs/development/python-modules/imageio/default.nix
index ebb7f86f5afb..ce24dfb5896a 100644
--- a/nixpkgs/pkgs/development/python-modules/imageio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imageio/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , buildPythonPackage
+, isPy27
 , pathlib
 , fetchPypi
 , pillow
@@ -15,21 +16,18 @@
 
 buildPythonPackage rec {
   pname = "imageio";
-  version = "2.6.1";
+  version = "2.9.0";
+  disabled = isPy27;
 
   src = fetchPypi {
-    sha256 = "1bk7pijmrspdfj9nnlbnw1yiww9w1kyjvlpzy9s5hj6zp4qv4kpl";
+    sha256 = "52ddbaeca2dccf53ba2d6dec5676ca7bc3b2403ef8b37f7da78b7654bb3e10f0";
     inherit pname version;
   };
 
   checkInputs = [ pytest psutil ] ++ stdenv.lib.optionals isPy3k [
     imageio-ffmpeg ffmpeg_3
     ];
-  propagatedBuildInputs = [ numpy pillow ] ++ stdenv.lib.optionals (!isPy3k) [
-    futures
-    enum34
-    pathlib
-  ];
+  propagatedBuildInputs = [ numpy pillow ];
 
   checkPhase = ''
     export IMAGEIO_USERDIR="$TMP"
diff --git a/nixpkgs/pkgs/development/python-modules/imagesize/default.nix b/nixpkgs/pkgs/development/python-modules/imagesize/default.nix
index aa7f1ea47249..ab3ee46c1b83 100644
--- a/nixpkgs/pkgs/development/python-modules/imagesize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imagesize/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "imagesize";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f3832918bc3c66617f92e35f5d70729187676313caa60c187eb0f28b8fe5e3b5";
+    sha256 = "b1f6b5a4eab1f73479a50fb79fcf729514a900c341d8503d62a62dbc4127a2b1";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix b/nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix
index 49a98d675e5f..1cb3dc2a7b9e 100644
--- a/nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/imbalanced-learn/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "imbalanced-learn";
-  version = "0.6.2";
+  version = "0.7.0";
   disabled = isPy27; # scikit-learn>=0.21 doesn't work on python2
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "942b9a7f2e1df831097fbee587c5c90a4cc6afa6105b23d3e30d8798f1a9b17d";
+    sha256 = "da59de0d1c0fa66f62054dd9a0a295a182563aa1abbb3bf9224a3678fcfe8fa4";
   };
 
   propagatedBuildInputs = [ scikitlearn ];
diff --git a/nixpkgs/pkgs/applications/misc/img2pdf/default.nix b/nixpkgs/pkgs/development/python-modules/img2pdf/default.nix
index b9c06d5122ca..7e9a6b5daa88 100644
--- a/nixpkgs/pkgs/applications/misc/img2pdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/img2pdf/default.nix
@@ -1,21 +1,21 @@
-{ stdenv, python3Packages }:
+{ lib, pillow, fetchPypi, buildPythonPackage, isPy27, pikepdf }:
 
-with python3Packages;
-
-buildPythonApplication rec {
+buildPythonPackage rec {
   pname = "img2pdf";
-  version = "0.3.6";
+  version = "0.4.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1yx0ljbg7phpix507wq584qvspp2jgax7flpp1148pxpc2d51mcc";
+    sha256 = "eaee690ab8403dd1a9cb4db10afee41dd3e6c7ed63bdace02a0121f9feadb0c9";
   };
 
   propagatedBuildInputs = [
+    pikepdf
     pillow
   ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Convert images to PDF via direct JPEG inclusion";
     homepage = "https://gitlab.mister-muffin.de/josch/img2pdf";
     license = licenses.lgpl2;
diff --git a/nixpkgs/pkgs/development/python-modules/imgsize/default.nix b/nixpkgs/pkgs/development/python-modules/imgsize/default.nix
new file mode 100644
index 000000000000..d4f066b8b0b2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/imgsize/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+}:
+
+buildPythonPackage rec {
+  pname = "imgsize";
+  version = "2.1";
+
+  src = fetchFromGitHub {
+    owner = "ojii";
+    repo = pname;
+    rev = version;
+    sha256 = "0k24qj4i996fz7lpjrs36il6lp51rh13b0j2wip87cy5v9109m2d";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Pure Python image size library";
+    homepage = "https://github.com/ojii/imgsize";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ twey ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/importlib-metadata/default.nix b/nixpkgs/pkgs/development/python-modules/importlib-metadata/default.nix
index 5a3137922475..edab68aa18a3 100644
--- a/nixpkgs/pkgs/development/python-modules/importlib-metadata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/importlib-metadata/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "importlib-metadata";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchPypi {
     pname = "importlib_metadata";
     inherit version;
-    sha256 = "07icyggasn38yv2swdrd8z6i0plazmc9adavsdkbqqj91j53ll9l";
+    sha256 = "10vz0ydrzspdhdbxrzwr9vhs693hzh4ff71lnqsifvdzvf66bfwh";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix b/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix
index 7faefd4c0e1e..0e1d4654c590 100644
--- a/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/importlib-resources/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "importlib_resources";
-  version = "1.5.0";
+  version = "3.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jilyxyb2z7hzcjhx1ddni52mq00i728wqh8f5k4469yhdkdz1vg";
+    sha256 = "19f745a6eca188b490b1428c8d1d4a0d2368759f32370ea8fb89cad2ab1106c3";
   };
 
   nativeBuildInputs = [ setuptools_scm toml ];
diff --git a/nixpkgs/pkgs/development/python-modules/inflect/default.nix b/nixpkgs/pkgs/development/python-modules/inflect/default.nix
index 2b856b35f7c3..b7fbe41f691f 100644
--- a/nixpkgs/pkgs/development/python-modules/inflect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/inflect/default.nix
@@ -1,15 +1,16 @@
-{ buildPythonPackage, fetchPypi, setuptools_scm, nose, six, importlib-metadata }:
+{ buildPythonPackage, fetchPypi, isPy27, setuptools_scm, nose, six, importlib-metadata, toml }:
 
 buildPythonPackage rec {
   pname = "inflect";
-  version = "3.0.2";
+  version = "4.1.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ee7c9b7c3376d06828b205460afb3c447b5d25dd653171db249a238f3fc2c18a";
+    sha256 = "def6f3791be9181f0c01e0bf5949304007ec6e04c6674fbef7cc49c657b8a9a5";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools_scm toml ];
   propagatedBuildInputs = [ six importlib-metadata ];
   checkInputs = [ nose ];
 }
diff --git a/nixpkgs/pkgs/development/python-modules/inflection/default.nix b/nixpkgs/pkgs/development/python-modules/inflection/default.nix
index bc2a24abe593..6f439f0f69ac 100644
--- a/nixpkgs/pkgs/development/python-modules/inflection/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/inflection/default.nix
@@ -1,12 +1,13 @@
-{ lib, fetchPypi, buildPythonPackage, pytest } :
+{ lib, fetchPypi, buildPythonPackage, isPy27, pytest } :
 
 buildPythonPackage rec {
   pname = "inflection";
-  version = "0.3.1";
+  version = "0.5.1";
+  disabled = isPy27;
 
   src = fetchPypi {
    inherit pname version;
-   sha256 = "1jhnxgnw8y3mbzjssixh6qkc7a3afc4fygajhqrqalnilyvpzshq";
+   sha256 = "1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix b/nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix
new file mode 100644
index 000000000000..007ab25eb69b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/influxdb-client/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, rx
+, certifi
+, six
+, python-dateutil
+, setuptools
+, urllib3
+, ciso8601
+, pytz
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "influxdb-client";
+  version = "1.8.0";
+
+  disabled = pythonOlder "3.6"; # requires python version >=3.6
+
+  src = fetchFromGitHub {
+    owner = "influxdata";
+    repo = "influxdb-client-python";
+    rev = "v${version}";
+    sha256 = "0gf0fjkd10yn1bb86rfapnd5diraivshn9mhzqxaxwlfah45q187";
+  };
+
+  # makes test not reproducible
+  postPatch = ''
+    sed -i -e '/randomize/d' test-requirements.txt
+  '';
+
+  propagatedBuildInputs = [
+    rx
+    certifi
+    six
+    python-dateutil
+    setuptools
+    urllib3
+    ciso8601
+    pytz
+  ];
+
+  # requires influxdb server
+  doCheck = false;
+
+  meta = with lib; {
+    description = "InfluxDB 2.0 Python client library";
+    homepage = "https://github.com/influxdata/influxdb-client-python";
+    license = licenses.mit;
+    maintainers = [ maintainers.mic92 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/influxdb/default.nix b/nixpkgs/pkgs/development/python-modules/influxdb/default.nix
index cb86e18eb6e7..650235b29401 100644
--- a/nixpkgs/pkgs/development/python-modules/influxdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/influxdb/default.nix
@@ -5,20 +5,29 @@
 , dateutil
 , pytz
 , six
+, msgpack
+, fetchpatch
 }:
 
 buildPythonPackage rec {
   pname = "influxdb";
-  version = "5.2.3";
+  version = "5.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0dlddhbmd37qsdfyqn9w3xx4v07hladj6fvk9i15jxmz0iz6q9rh";
+    sha256 = "9bcaafd57ac152b9824ab12ed19f204206ef5df8af68404770554c5b55b475f6";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/influxdata/influxdb-python/commit/cc41e290f690c4eb67f75c98fa9f027bdb6eb16b.patch";
+      sha256 = "1fb9qrq1kp24pixjwvzhdy67z3h0wnj92aj0jw0a25fd0rdxdvg4";
+    })
+  ];
+
   # ImportError: No module named tests
   doCheck = false;
-  propagatedBuildInputs = [ requests dateutil pytz six ];
+  propagatedBuildInputs = [ requests dateutil pytz six msgpack ];
 
   meta = with stdenv.lib; {
     description = "Python client for InfluxDB";
diff --git a/nixpkgs/pkgs/development/python-modules/iniconfig/default.nix b/nixpkgs/pkgs/development/python-modules/iniconfig/default.nix
new file mode 100644
index 000000000000..f6383e46d234
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/iniconfig/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "iniconfig";
+  version = "1.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0s9z9n4603fdpv2vzh6ddzfgsjmb09n6qalkjl2xwrss6n4jzyg5";
+  };
+
+  doCheck = false; # avoid circular import with pytest
+  pythonImportsCheck = [ "iniconfig" ];
+
+  meta = with lib; {
+    description = "brain-dead simple parsing of ini files";
+    homepage = "https://github.com/CHANGE/iniconfig/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/iniparse/default.nix b/nixpkgs/pkgs/development/python-modules/iniparse/default.nix
index 1fdae967a42f..e240b0863c23 100644
--- a/nixpkgs/pkgs/development/python-modules/iniparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/iniparse/default.nix
@@ -2,21 +2,24 @@
 , buildPythonPackage
 , fetchPypi
 , python
+, six
 }:
 
 buildPythonPackage rec {
   pname = "iniparse";
-  version = "0.4";
+  version = "0.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0m60k46vr03x68jckachzsipav0bwhhnqb8715hm1cngs89fxhdb";
+    sha256 = "932e5239d526e7acb504017bb707be67019ac428a6932368e6851691093aa842";
   };
 
   checkPhase = ''
     ${python.interpreter} runtests.py
   '';
 
+  propagatedBuildInputs = [ six ];
+
   # Does not install tests
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/inquirer/default.nix b/nixpkgs/pkgs/development/python-modules/inquirer/default.nix
index 58e7f61b6762..560ae55293bd 100644
--- a/nixpkgs/pkgs/development/python-modules/inquirer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/inquirer/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "inquirer";
-  version = "2.6.3";
+  version = "2.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01lf51y3bxsxkghbdk9hr42yvihpwi2s5zpxnra3bx41r35msvjz";
+    sha256 = "e819188de0ca7985a99c282176c6f50fb08b0d33867fd1965d3f3e97d6c8f83f";
   };
 
   propagatedBuildInputs = [ python-editor readchar blessings ];
diff --git a/nixpkgs/pkgs/development/python-modules/intake/default.nix b/nixpkgs/pkgs/development/python-modules/intake/default.nix
index ca22dc4a9f97..91c779c292a2 100644
--- a/nixpkgs/pkgs/development/python-modules/intake/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/intake/default.nix
@@ -23,13 +23,13 @@
 
 buildPythonPackage rec {
   pname = "intake";
-  version = "0.5.5";
+  version = "0.6.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ypgf0046hln27gjcy7gjh4diblgmivkf7kxbcy1mjvwka55bdmw";
+    sha256 = "0c284abeb74927a7366dcab6cefc010c4d050365b8af61c37326a2473a490a4e";
   };
 
   checkInputs = [ pyarrow pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix b/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix
index d862e3d2abbc..ecf39000661e 100644
--- a/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/internetarchive/default.nix
@@ -19,14 +19,14 @@
 
 buildPythonPackage rec {
   pname = "internetarchive";
-  version = "1.9.3";
+  version = "1.9.4";
 
   # Can't use pypi, data files for tests missing
   src = fetchFromGitHub {
     owner = "jjjake";
     repo = "internetarchive";
     rev = "v${version}";
-    sha256 = "19av6cpps2qldfl3wb9mcirs1a48a4466m1v9k9yhdznqi4zb0ji";
+    sha256 = "10xlblj21hanahsmw6lfggbrbpw08pdmvdgds1p58l8xd4fazli8";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/intervaltree/default.nix b/nixpkgs/pkgs/development/python-modules/intervaltree/default.nix
index 209920db2b6b..8b0bbf2dd395 100644
--- a/nixpkgs/pkgs/development/python-modules/intervaltree/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/intervaltree/default.nix
@@ -2,12 +2,12 @@
 , python, pytest, sortedcontainers }:
 
 buildPythonPackage rec {
-  version = "3.0.2";
+  version = "3.1.0";
   pname = "intervaltree";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0wz234g6irlm4hivs2qzmnywk0ss06ckagwh15nflkyb3p462kyb";
+    sha256 = "902b1b88936918f9b2a19e0e5eb7ccb430ae45cde4f39ea4b36932920d33952d";
   };
 
   buildInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/invoke/default.nix b/nixpkgs/pkgs/development/python-modules/invoke/default.nix
index 8c1ca760df84..7189727cf3a8 100644
--- a/nixpkgs/pkgs/development/python-modules/invoke/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/invoke/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "invoke";
-  version = "1.3.1";
+  version = "1.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dae041ff458e1ef05448aae3b76e8c2a176c4b7c6a9d5e8ce880f16251803661";
+    sha256 = "de3f23bfe669e3db1085789fd859eb8ca8e0c5d9c20811e2407fa042e8a5e15d";
   };
 
   patchPhase = ''
@@ -20,6 +20,9 @@ buildPythonPackage rec {
   # errors with vendored libs
   doCheck = false;
 
+  # has vendored python2 code
+  dontUsePythonRecompileBytecode = true;
+
   meta = {
     description = "Pythonic task execution";
     license = lib.licenses.bsd2;
diff --git a/nixpkgs/pkgs/development/python-modules/ipdb/default.nix b/nixpkgs/pkgs/development/python-modules/ipdb/default.nix
index 4b234cc11ac8..c32726be7e47 100644
--- a/nixpkgs/pkgs/development/python-modules/ipdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipdb/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "ipdb";
-  version = "0.13.2";
+  version = "0.13.3";
   disabled = isPyPy;  # setupterm: could not find terminfo database
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0jcd849rx30y3wcgzsqbn06v0yjlzvb9x3076q0yxpycdwm1ryvp";
+    sha256 = "0y3yk5k2yszcwxsjinvf40b1wl8wi8l6kv7pl9jmx9j53hk6vx6n";
   };
 
   propagatedBuildInputs = [ ipython ];
diff --git a/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix b/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix
index edf9d0863a19..c8539598fe6f 100644
--- a/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipykernel/default.nix
@@ -42,9 +42,9 @@ buildPythonPackage rec {
     "test_subprocess_print"
     "test_subprocess_error"
     "test_ipython_start_kernel_no_userns"
-    
+
     # https://github.com/ipython/ipykernel/issues/506
-    "test_unc_paths"    
+    "test_unc_paths"
   ] ++ lib.optionals (pythonOlder "3.8") [
     # flaky test https://github.com/ipython/ipykernel/issues/485
     "test_shutdown"
diff --git a/nixpkgs/pkgs/development/python-modules/ipympl/default.nix b/nixpkgs/pkgs/development/python-modules/ipympl/default.nix
index 0c5da2cd7a9d..44ec6cade993 100644
--- a/nixpkgs/pkgs/development/python-modules/ipympl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipympl/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ipympl";
-  version = "0.5.6";
+  version = "0.5.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1sak58wcpikn4ww1k8gr2vf1hmwzfly31hzcnwiizp7l0vk40qh7";
+    sha256 = "0cjsabsbn02vpf3yl0x9xdqgf4f707mbnz2hp2bn6zp9qnyyirx5";
   };
 
   propagatedBuildInputs = [ ipywidgets matplotlib ];
diff --git a/nixpkgs/pkgs/development/python-modules/ipython/7.9.nix b/nixpkgs/pkgs/development/python-modules/ipython/7.16.nix
index 9953868df5f3..9700737f485e 100644
--- a/nixpkgs/pkgs/development/python-modules/ipython/7.9.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipython/7.16.nix
@@ -22,11 +22,12 @@
 
 buildPythonPackage rec {
   pname = "ipython";
-  version = "7.9.0";
+  version = "7.16.1";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "103jkw18z7fnwdal1mdbijjxi1fndzn31g887lmj7ddpf2r07lyz";
+    sha256 = "9f4fcb31d3b2c533333893b9172264e4821c1ac91839500f31bd43f2c59b3ccf";
   };
 
   prePatch = lib.optionalString stdenv.isDarwin ''
@@ -64,6 +65,6 @@ buildPythonPackage rec {
     description = "IPython: Productive Interactive Computing";
     homepage = "http://ipython.org/";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ bjornfor ];
+    maintainers = with maintainers; [ bjornfor fridh ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/ipython/default.nix b/nixpkgs/pkgs/development/python-modules/ipython/default.nix
index 692daa7b2f38..1f1a50363f9d 100644
--- a/nixpkgs/pkgs/development/python-modules/ipython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipython/default.nix
@@ -22,12 +22,12 @@
 
 buildPythonPackage rec {
   pname = "ipython";
-  version = "7.15.0";
-  disabled = pythonOlder "3.6";
+  version = "7.17.0";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ef1433879816a960cd3ae1ae1dc82c64732ca75cec8dab5a4e29783fb571d0e";
+    sha256 = "b70974aaa2674b05eb86a910c02ed09956a33f2dd6c71afc60f0b128a77e7f28";
   };
 
   prePatch = lib.optionalString stdenv.isDarwin ''
diff --git a/nixpkgs/pkgs/development/python-modules/ipyvue/default.nix b/nixpkgs/pkgs/development/python-modules/ipyvue/default.nix
index 83e3ca14e586..c9426473ba6d 100644
--- a/nixpkgs/pkgs/development/python-modules/ipyvue/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipyvue/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "ipyvue";
-  version = "1.3.2";
+  version = "1.4.0";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "24ed221dcc3878e70daebdbdffdf7fd2b2111164008ba4b5de6785b72eabf91f";
+    sha256 = "3253727e8e12e3c157550e3e8d6986edf61ad0d68299992fbf3fa6acec41a12e";
   };
 
   propagatedBuildInputs = [ ipywidgets ];
diff --git a/nixpkgs/pkgs/development/python-modules/ipyvuetify/default.nix b/nixpkgs/pkgs/development/python-modules/ipyvuetify/default.nix
index dc9df34c0d01..c63cee791232 100644
--- a/nixpkgs/pkgs/development/python-modules/ipyvuetify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ipyvuetify/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "ipyvuetify";
-  version = "1.2.2";
+  version = "1.5.1";
 
   # GitHub version tries to run npm (Node JS)
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0vg3sdkdhba917xs6gyzwpp10gi2gszihf45cw2llwsfgb7kpfw8";
+    sha256 = "593f5d6761e304cbb78bca967030485d8835e8d310ef7d83ac1b0e6a13e4911c";
   };
 
   propagatedBuildInputs = [ ipyvue ];
diff --git a/nixpkgs/pkgs/development/python-modules/irc/default.nix b/nixpkgs/pkgs/development/python-modules/irc/default.nix
index 5828ada7a61d..bc87015f1046 100644
--- a/nixpkgs/pkgs/development/python-modules/irc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/irc/default.nix
@@ -1,22 +1,24 @@
-{ buildPythonPackage, fetchPypi, isPy3k
+{ lib, buildPythonPackage, fetchPypi, isPy3k
 , six, jaraco_logging, jaraco_text, jaraco_stream, pytz, jaraco_itertools
-, setuptools_scm, jaraco_collections, importlib-metadata
+, setuptools_scm, jaraco_collections, importlib-metadata, toml
 }:
 
 buildPythonPackage rec {
   pname = "irc";
-  version = "18.0.0";
+  version = "19.0.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1qg5996mzvhnkm74ksaa4d47fz5vrpw6hvxyaq9kf6y4cf1l76wq";
+    sha256 = "29026b1e977dacb621c710ae9531fcab6fa21825b743c616c220da0e58a32233";
   };
 
   doCheck = false;
 
-  buildInputs = [ setuptools_scm ];
+  pythonImportsCheck = [ "irc" ];
+
+  nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [
     six
     importlib-metadata
@@ -26,5 +28,13 @@ buildPythonPackage rec {
     pytz
     jaraco_itertools
     jaraco_collections
+    toml
   ];
+
+  meta = with lib; {
+    description = "IRC (Internet Relay Chat) protocol library for Python";
+    homepage = "https://github.com/jaraco/irc";
+    license = licenses.mit;
+    maintainers = [];
+  };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/islpy/default.nix b/nixpkgs/pkgs/development/python-modules/islpy/default.nix
index 22426d331c29..5b2a8e161469 100644
--- a/nixpkgs/pkgs/development/python-modules/islpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/islpy/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "islpy";
-  version = "2019.1.2";
+  version = "2020.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "834b6b946f33d578d5c6b2f863dd93f7ecc4c0a2bf73407c96ef9f95b6b71bbf";
+    sha256 = "ee797e1284bffe897568f9cc1f063f1a6fac8d7b87596308b7467e9b870a90ef";
   };
 
   postConfigure = ''
diff --git a/nixpkgs/pkgs/development/python-modules/itemadapter/default.nix b/nixpkgs/pkgs/development/python-modules/itemadapter/default.nix
new file mode 100644
index 000000000000..92cc794dc2f2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/itemadapter/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27 }:
+
+buildPythonPackage rec {
+  pname = "itemadapter";
+  version = "0.1.0";
+
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "52159b4f97d82aa2968000ee8371b2114af56a2f44e4cd9142580d46eea39020";
+  };
+
+  doCheck = false; # infinite recursion with Scrapy
+
+  pythonImportsCheck = [ "itemadapter" ];
+
+  meta = with lib; {
+    description = "Common interface for data container classes";
+    homepage = "https://github.com/scrapy/itemadapter";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/itemloaders/default.nix b/nixpkgs/pkgs/development/python-modules/itemloaders/default.nix
new file mode 100644
index 000000000000..0c891a861342
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/itemloaders/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, w3lib
+, parsel
+, jmespath
+, itemadapter
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "itemloaders";
+  version = "1.0.1";
+
+  disabled = isPy27;
+
+  # Tests not included in PyPI tarball
+  src = fetchFromGitHub {
+    owner = "scrapy";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0frs0s876ddha844vhnhhiggyk3qbhhngrwkvgg3c0mrnn282f6k";
+  };
+
+  propagatedBuildInputs = [ w3lib parsel jmespath itemadapter ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Base library for scrapy's ItemLoader";
+    homepage = "https://github.com/scrapy/itemloaders";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/iterm2/default.nix b/nixpkgs/pkgs/development/python-modules/iterm2/default.nix
index 33504323802a..4d4cf95fc88d 100644
--- a/nixpkgs/pkgs/development/python-modules/iterm2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/iterm2/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "iterm2";
-  version = "1.14";
+  version = "1.16";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "089pln3c41n6dyh91hw9gy6mpm9s663lpmdc4gamig3g6pfmbsk4";
+    sha256 = "8dead057b09ed4ac03c6caae7890489da1d823215ec5166789739ece941bdcbc";
   };
 
   propagatedBuildInputs = [ protobuf websockets ];
diff --git a/nixpkgs/pkgs/development/python-modules/janus/default.nix b/nixpkgs/pkgs/development/python-modules/janus/default.nix
index da0f43811f23..1999a625e4b8 100644
--- a/nixpkgs/pkgs/development/python-modules/janus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/janus/default.nix
@@ -1,17 +1,20 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, pythonOlder }:
+{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder, pytest-asyncio }:
 
 buildPythonPackage rec {
   pname = "janus";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cfc221683160b91b35bae1917e2957b78dad10a2e634f4f8ed119ed72e2a88ef";
+    sha256 = "0700f5537d076521851d19b7625545c5e76f6d5792ab17984f28230adcc3b34c";
   };
 
   disabled = pythonOlder "3.6";
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest-asyncio pytestCheckHook ];
+
+  # also fails upstream: https://github.com/aio-libs/janus/pull/258
+  disabledTests = [ "test_format" ];
 
   meta = with lib; {
     description = "Mixed sync-async queue";
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_collections/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco_collections/default.nix
index ceaa46a7847e..9f6e6e2aa7e9 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_collections/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_collections/default.nix
@@ -4,10 +4,10 @@
 
 buildPythonPackage rec {
   pname = "jaraco.collections";
-  version = "2.1";
+  version = "3.0.0";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0z1kmgf8jahx42bmflmj030wl8yrksw5b5ghcpayrqd5221jfk0f";
+    sha256 = "be570ef4f2e7290b757449395238fa63d70a9255574624e73c5ff9f1ee554721";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_functools/2.nix b/nixpkgs/pkgs/development/python-modules/jaraco_functools/2.nix
new file mode 100644
index 000000000000..e0bbde47d250
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_functools/2.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchPypi
+, setuptools_scm
+, more-itertools, backports_functools_lru_cache }:
+
+buildPythonPackage rec {
+  pname = "jaraco.functools";
+  version = "2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ickpwvvdrlbm477gdzfjfcbgmfia9ksm9a3i3pbx9xia97r9fim";
+  };
+
+  propagatedBuildInputs = [ more-itertools backports_functools_lru_cache ];
+
+  doCheck = false;
+
+  buildInputs = [ setuptools_scm ];
+
+  meta = with lib; {
+    description = "Additional functools in the spirit of stdlib's functools";
+    homepage = "https://github.com/jaraco/jaraco.functools";
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_functools/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco_functools/default.nix
index ac6eb936e628..6ee4c2417109 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_functools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_functools/default.nix
@@ -1,22 +1,22 @@
 { lib, buildPythonPackage, fetchPypi
-, setuptools_scm
+, setuptools_scm, toml
 , more-itertools, backports_functools_lru_cache }:
 
 buildPythonPackage rec {
   pname = "jaraco.functools";
-  version = "2.0";
+  version = "3.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "35ba944f52b1a7beee8843a5aa6752d1d5b79893eeb7770ea98be6b637bf9345";
+    sha256 = "9fedc4be3117512ca3e03e1b2ffa7a6a6ffa589bfb7d02bfb324e55d493b94f4";
   };
 
+  nativeBuildInputs = [ setuptools_scm toml ];
+
   propagatedBuildInputs = [ more-itertools backports_functools_lru_cache ];
 
   doCheck = false;
 
-  buildInputs = [ setuptools_scm ];
-
   meta = with lib; {
     description = "Additional functools in the spirit of stdlib's functools";
     homepage = "https://github.com/jaraco/jaraco.functools";
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_itertools/0001-Don-t-run-flake8-checks-during-the-build.patch b/nixpkgs/pkgs/development/python-modules/jaraco_itertools/0001-Don-t-run-flake8-checks-during-the-build.patch
index 43530fcc3285..2dcf7d648626 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_itertools/0001-Don-t-run-flake8-checks-during-the-build.patch
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_itertools/0001-Don-t-run-flake8-checks-during-the-build.patch
@@ -1,38 +1,27 @@
-From fcffcc61e432e5250e7fbfb1ecbe0f1cac3006cf Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Sun, 10 Mar 2019 13:10:18 +0100
-Subject: [PATCH] Don't run flake8 checks during the build
+From fd56b0d85393d684bd3bf99f33d8638da884282f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
+Date: Thu, 25 Jun 2020 09:52:11 +0100
+Subject: [PATCH] disable flake8/black8/coverage from tests
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
 
-If the code simply violates their code style, the Nix package shouldn't fail.
+Signed-off-by: Jörg Thalheim <joerg@thalheim.io>
 ---
  pytest.ini | 2 +-
- setup.cfg  | 1 -
- 2 files changed, 1 insertion(+), 2 deletions(-)
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/pytest.ini b/pytest.ini
-index d165e5e..d8e4694 100644
+index 5027d34..4e2a2d2 100644
 --- a/pytest.ini
 +++ b/pytest.ini
-@@ -1,6 +1,6 @@
+@@ -1,5 +1,5 @@
  [pytest]
  norecursedirs=dist build .tox .eggs
--addopts=--doctest-modules --flake8
+-addopts=--doctest-modules --flake8 --black --cov
 +addopts=--doctest-modules
  doctest_optionflags=ALLOW_UNICODE ELLIPSIS ALLOW_BYTES
  filterwarnings=
- 	ignore:Possible nested set::pycodestyle:113
-diff --git a/setup.cfg b/setup.cfg
-index 9f3517f..c9033ec 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -30,7 +30,6 @@ setup_requires = setuptools_scm >= 1.15.0
- testing = 
- 	pytest >= 3.5, !=3.7.3
- 	pytest-checkdocs
--	pytest-flake8
- docs = 
- 	sphinx
- 	jaraco.packaging >= 3.2
 -- 
-2.18.1
+2.27.0
 
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_itertools/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco_itertools/default.nix
index 446a3874c48e..5df70b6da97b 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_itertools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_itertools/default.nix
@@ -4,23 +4,30 @@
 
 buildPythonPackage rec {
   pname = "jaraco.itertools";
-  version = "4.4.2";
+  version = "5.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zxx8ffk5ycapy2d41dfgzskl5jfwjc10hsd91jsrax5alkhrh7x";
+    sha256 = "6447d567f57efe5efea386265c7864652e9530830a1b80f43e60b4f222b9ab84";
   };
 
-  patches = [ ./0001-Don-t-run-flake8-checks-during-the-build.patch ];
+  nativeBuildInputs = [ setuptools_scm ];
+
+  patches = [
+    ./0001-Don-t-run-flake8-checks-during-the-build.patch
+  ];
 
-  buildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ inflect more-itertools six ];
   checkInputs = [ pytest ];
 
+  # tests no longer available through pypi
+  doCheck = false;
   checkPhase = ''
     pytest
   '';
 
+  pythonImportsCheck = [ "jaraco.itertools" ];
+
   meta = with lib; {
     description = "Tools for working with iterables";
     homepage = "https://github.com/jaraco/jaraco.itertools";
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_logging/0001-Don-t-run-flake8-checks-during-the-build.patch b/nixpkgs/pkgs/development/python-modules/jaraco_logging/0001-Don-t-run-flake8-checks-during-the-build.patch
deleted file mode 100644
index aab9604b9ce8..000000000000
--- a/nixpkgs/pkgs/development/python-modules/jaraco_logging/0001-Don-t-run-flake8-checks-during-the-build.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 4b9801d9bbe535fd6719933b96278915573e3595 Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Sun, 10 Mar 2019 16:42:21 +0100
-Subject: [PATCH] Don't run flake8 checks during the build
-
-If the code simply violates their code style, the Nix package shouldn't fail.
----
- pytest.ini | 2 +-
- setup.cfg  | 1 -
- 2 files changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/pytest.ini b/pytest.ini
-index 9b3c1ec..a5189c1 100644
---- a/pytest.ini
-+++ b/pytest.ini
-@@ -1,6 +1,6 @@
- [pytest]
- norecursedirs=dist build .tox .eggs
--addopts=--doctest-modules --flake8
-+addopts=--doctest-modules
- doctest_optionflags=ALLOW_UNICODE ELLIPSIS
- filterwarnings=
- 	ignore:Possible nested set::pycodestyle:113
-diff --git a/setup.cfg b/setup.cfg
-index 3e7bbed..5cac7a2 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -29,7 +29,6 @@ setup_requires = setuptools_scm >= 1.15.0
- testing = 
- 	pytest >= 3.5, !=3.7.3
- 	pytest-checkdocs
--	pytest-flake8
- docs = 
- 	sphinx
- 	jaraco.packaging >= 3.2
--- 
-2.18.1
-
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_logging/default.nix b/nixpkgs/pkgs/development/python-modules/jaraco_logging/default.nix
index 1ac7b48c0fab..3f9fa4d67caf 100644
--- a/nixpkgs/pkgs/development/python-modules/jaraco_logging/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_logging/default.nix
@@ -1,25 +1,23 @@
 { lib, buildPythonPackage, fetchPypi, setuptools_scm
-, tempora, six, pytest
+, tempora, six
 }:
 
 buildPythonPackage rec {
   pname = "jaraco.logging";
-  version = "2.0";
+  version = "3.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1lb846j7qs1hgqwkyifv51nhl3f8jimbc4lk8yn9nkaynw0vyzcg";
+    sha256 = "31716fe84d3d5df39d95572942513bd4bf8ae0a478f64031eff4c2ea9e83434e";
   };
 
-  patches = [ ./0001-Don-t-run-flake8-checks-during-the-build.patch ];
-
-  buildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ tempora six ];
-  checkInputs = [ pytest ];
 
-  checkPhase = ''
-    PYTHONPATH=".:$PYTHONPATH" pytest
-  '';
+  # test no longer packaged with pypi
+  doCheck = false;
+
+  pythonImportsCheck = [ "jaraco.logging" ];
 
   meta = with lib; {
     description = "Support for Python logging facility";
diff --git a/nixpkgs/pkgs/development/python-modules/jaraco_stream/2.nix b/nixpkgs/pkgs/development/python-modules/jaraco_stream/2.nix
new file mode 100644
index 000000000000..e1737083c86c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/jaraco_stream/2.nix
@@ -0,0 +1,13 @@
+{ buildPythonPackage, fetchPypi, setuptools_scm, six }:
+
+buildPythonPackage rec {
+  pname = "jaraco.stream";
+  version = "2.0";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "196synw4g76yagcflmavi7wakf5cdgsflmvbj7zs616gv03xbsf2";
+  };
+  doCheck = false;
+  buildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [ six ];
+}
diff --git a/nixpkgs/pkgs/development/python-modules/javaobj-py3/default.nix b/nixpkgs/pkgs/development/python-modules/javaobj-py3/default.nix
index 54656e1ea993..fae3c2f3958f 100644
--- a/nixpkgs/pkgs/development/python-modules/javaobj-py3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/javaobj-py3/default.nix
@@ -1,15 +1,17 @@
 { buildPythonPackage
 , fetchPypi
+, isPy27
 , lib
 }:
 
 buildPythonPackage rec {
   pname = "javaobj-py3";
-  version = "0.3.0";
+  version = "0.4.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0j9532i7bnjd0v4a8c36mjj9rsdnbmckk65dh9sbmvnhy3j6jx55";
+    sha256 = "419ff99543469e68149f875abb0db5251cecd350c03d2bfb4c94a5796f1cbc14";
   };
 
   # Tests assume network connectivity
diff --git a/nixpkgs/pkgs/development/python-modules/jc/default.nix b/nixpkgs/pkgs/development/python-modules/jc/default.nix
index e48fec89b9d7..e37f5bc7e626 100644
--- a/nixpkgs/pkgs/development/python-modules/jc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jc/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "jc";
-  version = "1.11.6";
+  version = "1.13.4";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "kellyjonbrazil";
     repo = "jc";
     rev = "v${version}";
-    sha256 = "0jyygq7zmam7yriiv5j4d6mpjdi2p3p7d53bn3qwfzkh4ifsbfan";
+    sha256 = "0rwvyyrdnw43pixp8h51rncq2inc9pbbj1j2191y5si00pjw34zr";
   };
 
   propagatedBuildInputs = [ ruamel_yaml xmltodict pygments ];
diff --git a/nixpkgs/pkgs/development/python-modules/jdcal/default.nix b/nixpkgs/pkgs/development/python-modules/jdcal/default.nix
index 4fd89c83abc5..c2dd66ac6634 100644
--- a/nixpkgs/pkgs/development/python-modules/jdcal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jdcal/default.nix
@@ -25,4 +25,4 @@ buildPythonPackage rec {
     license = lib.licenses.bsd2;
     maintainers = with lib.maintainers; [ lihop ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/jedi/default.nix b/nixpkgs/pkgs/development/python-modules/jedi/default.nix
index 3a8da882d125..ab8f72ea9f18 100644
--- a/nixpkgs/pkgs/development/python-modules/jedi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jedi/default.nix
@@ -1,18 +1,19 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, glibcLocales, tox, pytestcov, parso }:
+{ stdenv, buildPythonPackage, fetchFromGitHub, fetchPypi, pytest, glibcLocales, tox, pytestcov, parso }:
 
 buildPythonPackage rec {
   pname = "jedi";
-  version = "0.15.2";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "e909527104a903606dd63bea6e8e888833f0ef087057829b89a18364a856f807";
+  # switch back to stable version on the next release.
+  # current stable is incompatible with parso
+  version = "2020-08-06";
+
+  src = fetchFromGitHub {
+    owner = "davidhalter";
+    repo = "jedi";
+    rev = "216f976fd5cab7a460e5d287e853d11759251e52";
+    sha256 = "1kb2ajzigadl95pnwglg8fxz9cvpg9hx30hqqj91jkgrc7djdldj";
+    fetchSubmodules = true;
   };
 
-  postPatch = ''
-    substituteInPlace requirements.txt --replace "parso==0.1.0" "parso"
-  '';
-
   checkInputs = [ pytest glibcLocales tox pytestcov ];
 
   propagatedBuildInputs = [ parso ];
diff --git a/nixpkgs/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix b/nixpkgs/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
index 15aed1502b17..33c14dbaeb2d 100644
--- a/nixpkgs/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "jellyfin-apiclient-python";
-  version = "1.4.0";
+  version = "1.6.1";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "iwalton3";
     repo = "jellyfin-apiclient-python";
     rev = "v${version}";
-    sha256 = "0b4ij19xjwn0wm5076fx8n4phjbsfx84x9qdrwm8c2r3ld8w7hk4";
+    sha256 = "0f7czq83ic22fz1vnf0cavb7l3grcxxd5yyw9wcjz3g1j2d76735";
   };
 
   propagatedBuildInputs = [ requests websocket_client ];
diff --git a/nixpkgs/pkgs/development/python-modules/jenkins-job-builder/default.nix b/nixpkgs/pkgs/development/python-modules/jenkins-job-builder/default.nix
index 26b7ab5d622f..e185cf8b6bdd 100644
--- a/nixpkgs/pkgs/development/python-modules/jenkins-job-builder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jenkins-job-builder/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "jenkins-job-builder";
-  version = "3.3.0";
+  version = "3.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0znnw1vnvnm8a6gfrk479s2b9hzlxi4qy57c9a47qphvx3mklm8x";
+    sha256 = "20efe98718e61ea7bd69b2178d93c5435bbf2e1ba78a47366632c84970e026c9";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/jenkinsapi/default.nix b/nixpkgs/pkgs/development/python-modules/jenkinsapi/default.nix
index 7fe7f2baa4a4..40bf7752a90b 100644
--- a/nixpkgs/pkgs/development/python-modules/jenkinsapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jenkinsapi/default.nix
@@ -1,12 +1,13 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, mock
+, pytest
+, pytest-mock
 , pytz
 , requests
-, coverage
-, mock
-, nose
-, unittest2
+, requests-kerberos
+, toml
 }:
 
 buildPythonPackage rec {
@@ -19,14 +20,21 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ pytz requests ];
-  buildInputs = [ coverage mock nose unittest2 ];
+  checkInputs = [ mock pytest pytest-mock requests-kerberos toml ];
+  # TODO requests-kerberos is broken on darwin, weeding out the broken tests without
+  # access to macOS is not an adventure I am ready to embark on - @rski
+  doCheck = !stdenv.isDarwin;
+  # don't run tests that try to spin up jenkins, and a few more that are mysteriously broken
+  checkPhase = ''
+    py.test jenkinsapi_tests \
+      -k "not systests and not test_plugins and not test_view"
+  '';
 
   meta = with stdenv.lib; {
     description = "A Python API for accessing resources on a Jenkins continuous-integration server";
     homepage = "https://github.com/salimfadhley/jenkinsapi";
     maintainers = with maintainers; [ drets ];
     license = licenses.mit;
-    broken = true;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/jinja2/default.nix b/nixpkgs/pkgs/development/python-modules/jinja2/default.nix
index 42e45d162bab..45178377026d 100644
--- a/nixpkgs/pkgs/development/python-modules/jinja2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jinja2/default.nix
@@ -3,7 +3,9 @@
 , isPy3k
 , fetchPypi
 , pytest
-, markupsafe }:
+, markupsafe
+, setuptools 
+}:
 
 buildPythonPackage rec {
   pname = "Jinja2";
@@ -15,7 +17,7 @@ buildPythonPackage rec {
   };
 
   checkInputs = [ pytest ];
-  propagatedBuildInputs = [ markupsafe ];
+  propagatedBuildInputs = [ markupsafe setuptools ];
 
   # Multiple tests run out of stack space on 32bit systems with python2.
   # See https://github.com/pallets/jinja/issues/1158
diff --git a/nixpkgs/pkgs/development/python-modules/jmespath/default.nix b/nixpkgs/pkgs/development/python-modules/jmespath/default.nix
index ebea3546d9ec..993955f2a032 100644
--- a/nixpkgs/pkgs/development/python-modules/jmespath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jmespath/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "jmespath";
-  version = "0.9.5";
+  version = "0.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1nf2ipzvigspy17r16dpkhzn1bqdmlak162rm8dy4wri2n6mr9fc";
+    sha256 = "b85d0567b8666149a93172712e68920734333c0ce7e89b78b3e987f71e5ed4f9";
   };
 
   buildInputs = [ nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/joblib/default.nix b/nixpkgs/pkgs/development/python-modules/joblib/default.nix
index d0c875cfa3bf..fa4fc450f1a8 100644
--- a/nixpkgs/pkgs/development/python-modules/joblib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/joblib/default.nix
@@ -1,4 +1,5 @@
 { lib
+, pythonOlder
 , buildPythonPackage
 , fetchPypi
 , stdenv
@@ -12,11 +13,12 @@
 
 buildPythonPackage rec {
   pname = "joblib";
-  version = "0.14.1";
+  version = "0.16.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0630eea4f5664c463f23fbf5dcfc54a2bc6168902719fa8e19daf033022786c8";
+    sha256 = "8f52bf24c64b608bf0b2563e0e47d6fcf516abc8cfafe10cfd98ad66d94f92d6";
   };
 
   checkInputs = [ sphinx numpydoc pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/josepy/default.nix b/nixpkgs/pkgs/development/python-modules/josepy/default.nix
index d34fc8cb5704..73bdb31da9d8 100644
--- a/nixpkgs/pkgs/development/python-modules/josepy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/josepy/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "josepy";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "068nkdbag049cjs9q3rrs5j5f1239202y0g9xblii6rr0fjgyhf3";
+    sha256 = "c37ff4b93606e6a452b72cdb992da5e0544be12912fac01b31ddbdd61f6d5bd0";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/jq/default.nix b/nixpkgs/pkgs/development/python-modules/jq/default.nix
index adcdd2b9d823..72776a037192 100644
--- a/nixpkgs/pkgs/development/python-modules/jq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jq/default.nix
@@ -1,21 +1,15 @@
-{ buildPythonPackage, fetchPypi, lib, cython, jq }:
+{ buildPythonPackage, fetchPypi, lib, jq }:
 
 buildPythonPackage rec {
   pname = "jq";
-  version = "0.1.6";
+  version = "1.0.2";
 
-  srcs = fetchPypi {
+  src = fetchPypi {
     inherit pname version;
-    sha256 = "34bdf9f9e49e522e1790afc03f3584c6b57329215ea0567fb2157867d6d6f602";
+    sha256 = "9fe6ce07bc8d209c385d8ba132a2971c69aef015103c46bea87a73a16c5ec147";
   };
   patches = [ ./jq-py-setup.patch ];
 
-  nativeBuildInputs = [ cython ];
-
-  preBuild = ''
-    cython jq.pyx
-  '';
-
   buildInputs = [ jq ];
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/jq/jq-py-setup.patch b/nixpkgs/pkgs/development/python-modules/jq/jq-py-setup.patch
index 53092b8a1f57..df5245a0c3b5 100644
--- a/nixpkgs/pkgs/development/python-modules/jq/jq-py-setup.patch
+++ b/nixpkgs/pkgs/development/python-modules/jq/jq-py-setup.patch
@@ -1,61 +1,69 @@
-From 3f369cf8b9f7134d0792f6b141d39b5342a8274f Mon Sep 17 00:00:00 2001
-From: Benjamin Staffin <benley@gmail.com>
-Date: Mon, 14 Jan 2019 17:27:06 -0500
+From 968ddf2bd773e800e46737fced743bd00af9aa0d Mon Sep 17 00:00:00 2001
+From: William Kral <william.kral@gmail.com>
+Date: Tue, 8 Sep 2020 22:04:24 -0700
 Subject: [PATCH] Vastly simplify setup.py for distro compatibility
 
 ---
- setup.py | 81 +-------------------------------------------------------
- 1 file changed, 1 insertion(+), 80 deletions(-)
+ setup.py | 101 ++-----------------------------------------------------
+ 1 file changed, 2 insertions(+), 99 deletions(-)
 
 diff --git a/setup.py b/setup.py
-index 77933f2..2b71e25 100644
+index cb63f60..87380ed 100644
 --- a/setup.py
 +++ b/setup.py
-@@ -1,10 +1,6 @@
+@@ -1,114 +1,19 @@
  #!/usr/bin/env python
  
  import os
--import platform
 -import subprocess
 -import tarfile
 -import shutil
+-import sysconfig
  
- try:
-     import sysconfig
-@@ -14,88 +10,15 @@ except ImportError:
- 
+-import requests
  from setuptools import setup
- from distutils.extension import Extension
--from distutils.command.build_ext import build_ext
+-from setuptools.command.build_ext import build_ext
+ from setuptools.extension import Extension
+ 
+ 
+-def urlretrieve(source_url, destination_path):
+-    response = requests.get(source_url, stream=True)
+-    if response.status_code != 200:
+-        raise Exception("status code was: {}".format(response.status_code))
 -
--try:
--    from urllib import urlretrieve
--except ImportError:
--    from urllib.request import urlretrieve
+-    with open(destination_path, "wb") as fileobj:
+-        for chunk in response.iter_content(chunk_size=128):
+-            fileobj.write(chunk)
 -
 -def path_in_dir(relative_path):
 -    return os.path.abspath(os.path.join(os.path.dirname(__file__), relative_path))
- 
+-
+-def dependency_path(relative_path):
+-    return os.path.join(path_in_dir("_deps"), relative_path)
+-
  def read(fname):
      return open(os.path.join(os.path.dirname(__file__), fname)).read()
  
  
--jq_lib_tarball_path = path_in_dir("_jq-lib-1.5.tar.gz")
--jq_lib_dir = path_in_dir("jq-jq-1.5")
+-jq_lib_tarball_path = dependency_path("jq-lib-1.6.tar.gz")
+-jq_lib_dir = dependency_path("jq-1.6")
 -
--oniguruma_lib_tarball_path = path_in_dir("_onig-5.9.6.tar.gz")
--oniguruma_lib_build_dir = path_in_dir("onig-5.9.6")
--oniguruma_lib_install_dir = path_in_dir("onig-install-5.9.6")
+-oniguruma_version = "6.9.4"
+-oniguruma_lib_tarball_path = dependency_path("onig-{}.tar.gz".format(oniguruma_version))
+-oniguruma_lib_build_dir = dependency_path("onig-{}".format(oniguruma_version))
+-oniguruma_lib_install_dir = dependency_path("onig-install-{}".format(oniguruma_version))
 -
 -class jq_build_ext(build_ext):
 -    def run(self):
+-        if not os.path.exists(dependency_path(".")):
+-            os.makedirs(dependency_path("."))
 -        self._build_oniguruma()
 -        self._build_libjq()
 -        build_ext.run(self)
--    
+-
 -    def _build_oniguruma(self):
 -        self._build_lib(
--            source_url="https://github.com/kkos/oniguruma/releases/download/v5.9.6/onig-5.9.6.tar.gz",
+-            source_url="https://github.com/kkos/oniguruma/releases/download/v{0}/onig-{0}.tar.gz".format(oniguruma_version),
 -            tarball_path=oniguruma_lib_tarball_path,
 -            lib_dir=oniguruma_lib_build_dir,
 -            commands=[
@@ -63,11 +71,11 @@ index 77933f2..2b71e25 100644
 -                ["make"],
 -                ["make", "install"],
 -            ])
--        
--    
+-
+-
 -    def _build_libjq(self):
 -        self._build_lib(
--            source_url="https://github.com/stedolan/jq/archive/jq-1.5.tar.gz",
+-            source_url="https://github.com/stedolan/jq/releases/download/jq-1.6/jq-1.6.tar.gz",
 -            tarball_path=jq_lib_tarball_path,
 -            lib_dir=jq_lib_dir,
 -            commands=[
@@ -75,9 +83,13 @@ index 77933f2..2b71e25 100644
 -                ["./configure", "CFLAGS=-fPIC", "--disable-maintainer-mode", "--with-oniguruma=" + oniguruma_lib_install_dir],
 -                ["make"],
 -            ])
--        
+-
 -    def _build_lib(self, source_url, tarball_path, lib_dir, commands):
--        self._download_tarball(source_url, tarball_path)
+-        self._download_tarball(
+-            source_url=source_url,
+-            tarball_path=tarball_path,
+-            lib_dir=lib_dir,
+-        )
 -
 -        macosx_deployment_target = sysconfig.get_config_var("MACOSX_DEPLOYMENT_TARGET")
 -        if macosx_deployment_target:
@@ -86,45 +98,50 @@ index 77933f2..2b71e25 100644
 -        def run_command(args):
 -            print("Executing: %s" % ' '.join(args))
 -            subprocess.check_call(args, cwd=lib_dir)
--            
+-
 -        for command in commands:
 -            run_command(command)
--    
--    def _download_tarball(self, source_url, tarball_path):
+-
+-    def _download_tarball(self, source_url, tarball_path, lib_dir):
 -        if os.path.exists(tarball_path):
 -            os.unlink(tarball_path)
+-        print("Downloading {}".format(source_url))
 -        urlretrieve(source_url, tarball_path)
--        
--        if os.path.exists(jq_lib_dir):
--            shutil.rmtree(jq_lib_dir)
--        tarfile.open(tarball_path, "r:gz").extractall(path_in_dir("."))
+-        print("Downloaded {}".format(source_url))
+-
+-        if os.path.exists(lib_dir):
+-            shutil.rmtree(lib_dir)
+-        tarfile.open(tarball_path, "r:gz").extractall(dependency_path("."))
 -
 -
  jq_extension = Extension(
      "jq",
      sources=["jq.c"],
--    include_dirs=[jq_lib_dir],
+-    include_dirs=[os.path.join(jq_lib_dir, "src")],
+-    extra_link_args=["-lm"],
 -    extra_objects=[
 -        os.path.join(jq_lib_dir, ".libs/libjq.a"),
 -        os.path.join(oniguruma_lib_install_dir, "lib/libonig.a"),
 -    ],
-+    libraries=["jq"],
++    libraries=["jq"]
  )
  
  setup(
-@@ -107,7 +30,6 @@ setup(
-     url='https://github.com/mwilliamson/jq.py',
+@@ -120,8 +25,7 @@ setup(
+     url='http://github.com/mwilliamson/jq.py',
+     python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*',
      license='BSD 2-Clause',
-     ext_modules = [jq_extension],
+-    ext_modules = [jq_extension],
 -    cmdclass={"build_ext": jq_build_ext},
++    ext_modules=[jq_extension],
      classifiers=[
-         'Development Status :: 4 - Beta',
+         'Development Status :: 5 - Production/Stable',
          'Intended Audience :: Developers',
-@@ -123,4 +45,3 @@ setup(
-         'Programming Language :: Python :: 3.5',
+@@ -137,4 +41,3 @@ setup(
+         'Programming Language :: Python :: 3.8',
      ],
  )
 -
 -- 
-2.19.2
+2.28.0
 
diff --git a/nixpkgs/pkgs/development/python-modules/jsbeautifier/default.nix b/nixpkgs/pkgs/development/python-modules/jsbeautifier/default.nix
index b30d2ee7e0fd..f3eb0a173db3 100644
--- a/nixpkgs/pkgs/development/python-modules/jsbeautifier/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsbeautifier/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonApplication rec {
   pname = "jsbeautifier";
-  version = "1.10.3";
+  version = "1.12.0";
 
   propagatedBuildInputs = [ six editorconfig ];
   checkInputs = [ pytest ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0aaxi56qm2wmccsdj4v1lc158625c2g6ikqq950yv43i0pyyi3lp";
+    sha256 = "65dea76bf2f551d7f1686111d2794506e07b6c7c477feca2124596376feb8713";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/jsonpatch/default.nix b/nixpkgs/pkgs/development/python-modules/jsonpatch/default.nix
index 7345c8f723a9..a4a66aab44ce 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonpatch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonpatch/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "jsonpatch";
-  version = "1.24";
+  version = "1.26";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cbb72f8bf35260628aea6b508a107245f757d1ec839a19c34349985e2c05645a";
+    sha256 = "e45df18b0ab7df1925f20671bbc3f6bd0b4b556fb4b9c5d97684b0a7eac01744";
   };
 
   # test files are missing
diff --git a/nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix b/nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix
index 528287028a22..66e7d62aa839 100644
--- a/nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jsonpickle/default.nix
@@ -2,20 +2,35 @@
 , buildPythonPackage
 , fetchPypi
 , pytest
+, setuptools_scm
+, toml
+, importlib-metadata
 }:
 
 buildPythonPackage rec {
   pname = "jsonpickle";
-  version = "1.2";
+  version = "1.4.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16xj4r31pnd90slax5mmd5wps5s73wp9mn6sy9nhkl5ih7bj5sfk";
+    sha256 = "e8d4b7cd0bd6826001a74377df1079a76ad8bae0f909282de2554164c837c8ba";
   };
 
   checkInputs = [ pytest ];
 
-  checkPhase = "pytest tests/jsonpickle_test.py";
+  nativeBuildInputs = [
+    setuptools_scm
+    toml
+  ];
+
+  propagatedBuildInputs = [
+    importlib-metadata
+  ];
+
+  checkPhase = ''
+    rm pytest.ini
+    pytest tests/jsonpickle_test.py
+  '';
 
   meta = {
     description = "Python library for serializing any arbitrary object graph into JSON";
diff --git a/nixpkgs/pkgs/development/python-modules/jug/default.nix b/nixpkgs/pkgs/development/python-modules/jug/default.nix
index e96950c496cc..d55a5fad44b5 100644
--- a/nixpkgs/pkgs/development/python-modules/jug/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jug/default.nix
@@ -1,11 +1,12 @@
 { stdenv, buildPythonPackage, fetchPypi, fetchpatch
 , nose, numpy
 , bottle, pyyaml, redis, six
-, zlib }:
+, zlib
+, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "Jug";
-  version = "2.0.0";
+  version = "2.0.2";
   buildInputs = [ nose numpy ];
   propagatedBuildInputs = [
     bottle
@@ -18,9 +19,12 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1am73pis8qrbgmpwrkja2qr0n9an6qha1k1yp87nx6iq28w5h7cv";
+    sha256 = "859a4b4cb26a0010299b189c92cfba626852c97a38e22f3d1b56e4e1d8ad8620";
   };
 
+  checkInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [ "jug" ];
+
   meta = with stdenv.lib; {
     description = "A Task-Based Parallelization Framework";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/development/python-modules/junit-xml/default.nix b/nixpkgs/pkgs/development/python-modules/junit-xml/default.nix
index 7c5ffc9fad5a..c7133c206d84 100644
--- a/nixpkgs/pkgs/development/python-modules/junit-xml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/junit-xml/default.nix
@@ -1,27 +1,26 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , six
-, pytest
-, pytest-sugar
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "junit-xml";
-  version = "1.8";
+  version = "1.9";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "08fw86azza6d3l3nx34kq69cpwmmfqpn7xrb8pdlxmhr1941qbv0";
+  # Only a wheel on PyPI
+  src = fetchFromGitHub {
+    owner = "kyrus";
+    repo = "python-junit-xml";
+    # No tags...sigh
+    rev = "856414648cbab3f64e69b856bc25cea8b9aa0377";
+    sha256 = "1sg03mv7dk3x4mjxjg127vqjmx0ms7v3a5aibxrclxlhmdqcgvb2";
   };
 
   propagatedBuildInputs = [ six ];
 
-  checkInputs = [ pytest pytest-sugar ];
-
-  checkPhase = ''
-    pytest
-  '';
+  checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Creates JUnit XML test result documents that can be read by tools such as Jenkins";
diff --git a/nixpkgs/pkgs/development/python-modules/junos-eznc/default.nix b/nixpkgs/pkgs/development/python-modules/junos-eznc/default.nix
index 9c98895a8b2e..22ff5caad80e 100644
--- a/nixpkgs/pkgs/development/python-modules/junos-eznc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/junos-eznc/default.nix
@@ -7,26 +7,28 @@
 , paramiko
 , netaddr
 , ncclient
+, ntc-templates
 , lxml
 , jinja2
 , pyyaml
+, transitions
+, yamlordereddictloader
 , nose
 }:
 
 buildPythonPackage rec {
   pname = "junos-eznc";
-  version = "2.3.1";
+  version = "2.5.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0f8c4763fe2281979bc00350b93d510368992dbae0dae4fea0bafee5904a7e68";
+    sha256 = "521659fe94da796897abc16773c3d84fa44d3e1f5386c71fbaef44cb80159855";
   };
 
-
   checkInputs = [ nose ];
 
   propagatedBuildInputs = [
-    scp six pyserial paramiko netaddr ncclient lxml jinja2 pyyaml
+    scp six pyserial paramiko netaddr ncclient ntc-templates lxml jinja2 pyyaml transitions yamlordereddictloader
   ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter-c-kernel/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter-c-kernel/default.nix
new file mode 100644
index 000000000000..0cc232bd7064
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/jupyter-c-kernel/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, ipykernel
+, gcc
+}:
+
+buildPythonPackage rec {
+  pname = "jupyter-c-kernel";
+  version = "1.2.2";
+
+  src = fetchPypi {
+    pname = "jupyter_c_kernel";
+    inherit version;
+    sha256 = "e4b34235b42761cfc3ff08386675b2362e5a97fb926c135eee782661db08a140";
+  };
+
+  postPatch = ''
+    substituteInPlace jupyter_c_kernel/kernel.py \
+      --replace "'gcc'" "'${gcc}/bin/gcc'"
+  '';
+
+  propagatedBuildInputs = [ ipykernel ];
+
+  # no tests in repository
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Minimalistic C kernel for Jupyter";
+    homepage = "https://github.com/brendanrius/jupyter-c-kernel/";
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter-repo2docker/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter-repo2docker/default.nix
index 2a5e1a988da3..4dc878e26701 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter-repo2docker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter-repo2docker/default.nix
@@ -12,13 +12,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.10.0";
+  version = "0.11.0";
   pname = "jupyter-repo2docker";
   disabled = !(pythonAtLeast "3.4");
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7965262913be6be60e64c8016f5f3d4bf93701f2787209215859d73b2adbc05a";
+    sha256 = "7fc2edf0cda1e46f2e7553bfb84a47e6d141b8dac393268ef01ee3504ca6ad94";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter-sphinx/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter-sphinx/default.nix
index 9f2143e2f20d..4d2efcf00b7a 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter-sphinx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter-sphinx/default.nix
@@ -27,6 +27,6 @@ buildPythonPackage rec {
     description = "Jupyter Sphinx Extensions";
     homepage = "https://github.com/jupyter/jupyter-sphinx/";
     license = licenses.bsd3;
-  };    
+  };
 
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter-telemetry/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter-telemetry/default.nix
new file mode 100644
index 000000000000..4b3093cf6ce1
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/jupyter-telemetry/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, python-json-logger
+, jsonschema
+, ruamel_yaml
+, traitlets
+}:
+
+buildPythonPackage rec {
+  pname = "jupyter_telemetry";
+  version = "0.1.0";
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "052khyn6h97jxl3k5i2m81xvga5v6vwh5qixzrax4w6zwcx62p24";
+  };
+
+  propagatedBuildInputs = [
+    python-json-logger jsonschema ruamel_yaml traitlets
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Telemetry for Jupyter Applications and extensions";
+    homepage = "https://jupyter-telemetry.readthedocs.io/";
+    license = licenses.bsd3;
+    maintainers = with lib.maintainers; [ chiroptical ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter_client/5.nix b/nixpkgs/pkgs/development/python-modules/jupyter_client/5.nix
index 8ce8150cbd47..201fbec02ca5 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter_client/5.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter_client/5.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "jupyter_client";
-  version = "5.3.4";
+  version = "5.3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "60e6faec1031d63df57f1cc671ed673dced0ed420f4377ea33db37b1c188b910";
+    sha256 = "5efdf4131124d4a0d5789101e74827022585f172d2f4b60cf6fa98e0a7511b25";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/jupyter_client/default.nix b/nixpkgs/pkgs/development/python-modules/jupyter_client/default.nix
index 008a74dfb3ed..47d3bb6af0c0 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyter_client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyter_client/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "jupyter_client";
-  version = "6.1.3";
+  version = "6.1.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3a32fa4d0b16d1c626b30c3002a62dfd86d6863ed39eaba3f537fade197bb756";
+    sha256 = "49e390b36fe4b4226724704ea28d9fb903f1a3601b6882ce3105221cd09377a1";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix
index d6c505c4a173..4d0831ff9795 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix
@@ -7,16 +7,16 @@
 
 buildPythonPackage rec {
   pname = "jupyterhub-ldapauthenticator";
-  version = "1.2.2";
+  version = "1.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5bba2ee246834130c9f86c13d39585b1af21563b814fa03aacb26b6696dd7e20";
+    sha256 = "758081bbdb28b26313bb18c9d8aa2b8fcdc9162e4d3ab196c626567e64f1ab8b";
   };
 
   # No tests implemented
   doCheck = false;
-   
+
   propagatedBuildInputs = [ jupyterhub ldap3 ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix
new file mode 100644
index 000000000000..dc38acc66f7c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, jupyterhub
+, tornado
+, bash
+}:
+
+buildPythonPackage rec {
+  pname = "jupyterhub-systemdspawner";
+  version = "0.14";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "080dd9cd9292266dad35d1efc7aa1af0ed6993d15eadc79bd959d1ee273d1923";
+  };
+
+  propagatedBuildInputs = [
+    jupyterhub
+    tornado
+  ];
+
+  postPatch = ''
+    substituteInPlace systemdspawner/systemd.py \
+      --replace "/bin/bash" "${bash}/bin/bash"
+
+    substituteInPlace systemdspawner/systemdspawner.py \
+      --replace "/bin/bash" "${bash}/bin/bash"
+  '';
+
+  meta = with lib; {
+    description = "JupyterHub Spawner using systemd for resource isolation";
+    homepage = "https://github.com/jupyterhub/systemdspawner";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterhub-tmpauthenticator/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterhub-tmpauthenticator/default.nix
new file mode 100644
index 000000000000..2aef23fe4a4a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/jupyterhub-tmpauthenticator/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, jupyterhub
+}:
+
+buildPythonPackage rec {
+  pname = "jupyterhub-tmpauthenticator";
+  version = "0.6";
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "064x1ypxwx1l270ic97p8czbzb7swl9758v40k3w2gaqf9762f0l";
+  };
+
+  propagatedBuildInputs = [ jupyterhub ];
+
+  # No tests available in the package
+  doCheck = false;
+
+  pythonImportsCheck = [ "tmpauthenticator" ];
+
+  meta = with lib; {
+    description = "Simple Jupyterhub authenticator that allows anyone to log in.";
+    license = with licenses; [ bsd3 ];
+    homepage = "https://github.com/jupyterhub/tmpauthenticator";
+    maintainers = with maintainers; [ chiroptical ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterhub/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterhub/default.nix
index fa63af115f29..704d9174ebd7 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterhub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterhub/default.nix
@@ -18,6 +18,7 @@
 , nodePackages
 , oauthlib
 , certipy
+, jupyter-telemetry
 }:
 
 let
@@ -53,12 +54,12 @@ in
 
 buildPythonPackage rec {
   pname = "jupyterhub";
-  version = "1.0.0";
+  version = "1.1.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0zx6gw9yhgki05j21p6x1x2sf5a2mg2c2mx0ii8rl6q4b98ilm1k";
+    sha256 = "1mqknz0rxqzx4nc57vscvfh2d4znzlzpy83ancqxdaq3b8i70al5";
   };
 
   # Most of this only applies when building from source (e.g. js/css assets are
@@ -110,6 +111,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     alembic ipython jinja2 pamela python-oauth2 requests sqlalchemy tornado
     traitlets prometheus_client async_generator notebook certipy oauthlib
+    jupyter-telemetry
   ];
 
   # Disable tests because they take an excessive amount of time to complete.
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterlab-git/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterlab-git/default.nix
new file mode 100644
index 000000000000..91ae426147cb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/jupyterlab-git/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, notebook
+, nbdime
+, git
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "jupyterlab_git";
+  version = "0.20.0";
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0qs3wrcils07xlz698xr7giqf9v63n2qb338mlh7wql93rmjg45i";
+  };
+
+  propagatedBuildInputs = [ notebook nbdime git ];
+
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    pytest jupyterlab_git/ --ignore=jupyterlab_git/tests/test_handlers.py
+  '';
+
+  pythonImportsCheck = [ "jupyterlab_git" ];
+
+  meta = with lib; {
+    description = "Jupyter lab extension for version control with Git.";
+    license = with licenses; [ bsd3 ];
+    homepage = "https://github.com/jupyterlab/jupyterlab-git";
+    maintainers = with maintainers; [ chiroptical ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix
index 8d08fec6f5d9..fb5ac3d06aa2 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterlab/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab";
-  version = "2.1.4";
+  version = "2.2.6";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7b5bd4a05330a01c8522ee7f1cda5cb2e0d96412d9e1e879a19b3afb63d4ac69";
+    sha256 = "6554b022d2cd120100e165ec537c6511d70de7f89e253b3c667ea28f2a9263ff";
   };
 
   propagatedBuildInputs = [ jupyterlab_server notebook ];
diff --git a/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix b/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix
index 9185c2940060..0344a66cf663 100644
--- a/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupyterlab_server/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab_server";
-  version = "1.1.5";
+  version = "1.2.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3398e401b95da868bc96bdaa44fa61252bf3e68fc9dd1645bd93293cce095f6c";
+    sha256 = "5431d9dde96659364b7cc877693d5d21e7b80cea7ae3959ecc2b87518e5f5d8c";
   };
 
   checkInputs = [ requests pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/jupytext/default.nix b/nixpkgs/pkgs/development/python-modules/jupytext/default.nix
index cee21edd2438..e4b285d4ea73 100644
--- a/nixpkgs/pkgs/development/python-modules/jupytext/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jupytext/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "jupytext";
-  version = "1.4.2";
+  version = "1.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "58b4c6bf48ba2e18bfc2d8358e852b6e3538ff664843398be09157c184ee1a27";
+    sha256 = "1cebc9f5975b4c08db3de6d7d61b35f8c33a24cf2c8c04eee7b8a7aab8ddc39b";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/jwcrypto/default.nix b/nixpkgs/pkgs/development/python-modules/jwcrypto/default.nix
index 997e3aedf531..42ed4cf8794b 100644
--- a/nixpkgs/pkgs/development/python-modules/jwcrypto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/jwcrypto/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "jwcrypto";
-  version = "0.7";
+  version = "0.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "002i60yidafpr642qcxrd74d8frbc4ci8vfysm05vqydcri1zgmd";
+    sha256 = "b7fee2635bbefdf145399392f5be26ad54161c8271c66b5fe107b4b452f06c24";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/kaggle/default.nix b/nixpkgs/pkgs/development/python-modules/kaggle/default.nix
new file mode 100644
index 000000000000..cccd553a31f3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/kaggle/default.nix
@@ -0,0 +1,53 @@
+{ buildPythonPackage
+, certifi
+, fetchPypi
+, lib
+, python-dateutil
+, python-slugify
+, six
+, requests
+, tqdm
+, urllib3
+}:
+
+buildPythonPackage rec {
+  pname = "kaggle";
+  version = "1.5.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0f5qrkgklcpgbwncrif7aw4f86dychqplh7k3f4rljwnr9yhjb1w";
+  };
+
+  # The version bounds in the setup.py file are unnecessarily restrictive.
+  patchPhase = ''
+    substituteInPlace setup.py \
+      --replace 'urllib3 >= 1.21.1, < 1.25' 'urllib3'
+  '';
+
+  propagatedBuildInputs = [
+    certifi
+    python-dateutil
+    python-slugify
+    requests
+    six
+    tqdm
+    urllib3
+  ];
+
+  # Tests try to access the network.
+  checkPhase = ''
+    export HOME="$TMP"
+    mkdir -p "$HOME/.kaggle/"
+    echo '{"username":"foobar","key":"00000000000000000000000000000000"}' > "$HOME/.kaggle/kaggle.json"
+    $out/bin/kaggle --help > /dev/null
+  '';
+  pythonImportsCheck = [ "kaggle" ];
+
+  meta = with lib; {
+    description = "Official API for https://www.kaggle.com, accessible using a command line tool implemented in Python 3";
+    homepage = "https://github.com/Kaggle/kaggle-api";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ cdepillabout ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/kazoo/default.nix b/nixpkgs/pkgs/development/python-modules/kazoo/default.nix
index 409a3b6c064b..3c040abc7247 100644
--- a/nixpkgs/pkgs/development/python-modules/kazoo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kazoo/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "kazoo";
-  version = "2.7.0";
+  version = "2.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jvpn1rcnnq3by1y6wlhfl9jynb110xv5lvd0x0ifkld7vfzd0v8";
+    sha256 = "1zpj5cc8624w6i0pxgcxqkjwbkm4pkrv19d7wh5df3jais32g3jq";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/keep/default.nix b/nixpkgs/pkgs/development/python-modules/keep/default.nix
new file mode 100644
index 000000000000..6108ea506892
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/keep/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, PyGithub
+, terminaltables
+, click
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "keep";
+  version = "2.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0902kcvhbmy5q5n0ai1df29ybf87qaljz306c5ssl8j9xdjipcq2";
+  };
+
+  propagatedBuildInputs = [
+    click
+    requests
+    terminaltables
+    PyGithub
+  ];
+
+  # no tests
+  pythonImportsCheck = [ "keep" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/orkohunter/keep";
+    description = "A Meta CLI toolkit: Personal shell command keeper and snippets manager";
+    platforms = platforms.all;
+    license = licenses.mit;
+    maintainers = with maintainers; [ ris ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/keras/default.nix b/nixpkgs/pkgs/development/python-modules/keras/default.nix
index e255789aaf7d..8b6301ab59b7 100644
--- a/nixpkgs/pkgs/development/python-modules/keras/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keras/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "Keras";
-  version = "2.3.1";
+  version = "2.4.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "321d43772006a25a1d58eea17401ef2a34d388b588c9f7646c34796151ebc8cc";
+    sha256 = "fedd729b52572fb108a98e3d97e1bac10a81d3917d2103cc20ab2a5f03beb973";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/keyring/default.nix b/nixpkgs/pkgs/development/python-modules/keyring/default.nix
index 8f7ae56de049..560986f9c3d2 100644
--- a/nixpkgs/pkgs/development/python-modules/keyring/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/keyring/default.nix
@@ -6,19 +6,23 @@
 , pytest-flake8
 , secretstorage
 , setuptools_scm
+, toml
 }:
 
 buildPythonPackage rec {
   pname = "keyring";
-  version = "20.0.1";
+  version = "21.3.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "963bfa7f090269d30bdc5e25589e5fd9dad2cf2a7c6f176a7f2386910e5d0d8d";
+    sha256 = "182f94fc0381546489e3e4d90384a8c1d43cc09ffe2eb4a826e7312df6e1be7c";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [
+    setuptools_scm
+    toml
+  ];
 
   checkInputs = [ pytest pytest-flake8 ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/kinparse/default.nix b/nixpkgs/pkgs/development/python-modules/kinparse/default.nix
new file mode 100644
index 000000000000..7d6437f41a86
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/kinparse/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytest
+, future
+, pyparsing
+}:
+
+buildPythonPackage {
+  pname = "kinparse";
+  version = "unstable-2019-12-18";
+
+  src = fetchFromGitHub {
+    owner = "xesscorp";
+    repo = "kinparse";
+    rev = "eeb3f346d57a67a471bdf111f39bef8932644481";
+    sha256 = "1nrjnybwzy93c79yylcwmb4lvkx7hixavnjwffslz0zwn32l0kx3";
+  };
+
+  doCheck = true;
+  pythonImportsCheck = [ "kinparse" ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  propagatedBuildInputs = [
+    future
+    pyparsing
+  ];
+
+  meta = with lib; {
+    description = "A Parser for KiCad EESCHEMA netlists";
+    homepage = "https://github.com/xesscorp/kinparse";
+    license = licenses.mit;
+    maintainers = with maintainers; [ matthuszagh ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/kiwisolver/1_1.nix b/nixpkgs/pkgs/development/python-modules/kiwisolver/1_1.nix
new file mode 100644
index 000000000000..f4621c9c54de
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/kiwisolver/1_1.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, stdenv
+, libcxx
+}:
+
+buildPythonPackage rec {
+  pname = "kiwisolver";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "53eaed412477c836e1b9522c19858a8557d6e595077830146182225613b11a75";
+  };
+
+  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
+
+  # Does not include tests
+  doCheck = false;
+
+  meta = {
+    description = "A fast implementation of the Cassowary constraint solver";
+    homepage = "https://github.com/nucleic/kiwi";
+    license = lib.licenses.bsd3;
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix b/nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix
index c54cad1987aa..393e2d134cc6 100644
--- a/nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kiwisolver/default.nix
@@ -3,19 +3,24 @@
 , fetchPypi
 , stdenv
 , libcxx
+, cppy
 }:
 
 buildPythonPackage rec {
   pname = "kiwisolver";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "53eaed412477c836e1b9522c19858a8557d6e595077830146182225613b11a75";
+    sha256 = "247800260cd38160c362d211dcaf4ed0f7816afb5efe56544748b21d6ad6d17f";
   };
-  
+
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
-  
+
+  nativeBuildInputs = [
+    cppy
+  ];
+
   # Does not include tests
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/knack/default.nix b/nixpkgs/pkgs/development/python-modules/knack/default.nix
index fc65361b35c7..dd45e9672313 100644
--- a/nixpkgs/pkgs/development/python-modules/knack/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/knack/default.nix
@@ -17,11 +17,11 @@
 
 buildPythonPackage rec {
   pname = "knack";
-  version = "0.6.3";
+  version = "0.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "08g15kwfppdr7vhbsg6qclpqbf11d9k3hwgrmvhh5fa1jrk95b5i";
+    sha256 = "dfc6aef6760ea9a9620577e01540617678d78cab3111a0f03e8b9f987d0f08ca";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/kombu/default.nix b/nixpkgs/pkgs/development/python-modules/kombu/default.nix
index 27d225c6f7cf..560cd4383b1e 100644
--- a/nixpkgs/pkgs/development/python-modules/kombu/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kombu/default.nix
@@ -1,5 +1,6 @@
 { lib, buildPythonPackage, fetchPypi
 , amqp
+, botocore
 , case
 , Pyro4
 , pytest
@@ -11,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "kombu";
-  version = "4.6.10";
+  version = "4.6.11";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "437b9cdea193cc2ed0b8044c85fd0f126bb3615ca2f4d4a35b39de7cacfa3c1a";
+    sha256 = "ca1b45faac8c0b18493d02a8571792f3c40291cf2bcf1f55afed3d8f3aa7ba74";
   };
 
   postPatch = ''
@@ -31,7 +32,7 @@ buildPythonPackage rec {
     importlib-metadata
   ];
 
-  checkInputs = [ pytest case pytz Pyro4 sqlalchemy ];
+  checkInputs = [ botocore pytest case pytz Pyro4 sqlalchemy ];
   # test_redis requires fakeredis, which isn't trivial to package
   checkPhase = ''
     pytest --ignore t/unit/transport/test_redis.py
diff --git a/nixpkgs/pkgs/development/python-modules/korean-lunar-calendar/default.nix b/nixpkgs/pkgs/development/python-modules/korean-lunar-calendar/default.nix
new file mode 100644
index 000000000000..41569ac9dc9b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/korean-lunar-calendar/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "korean-lunar-calendar";
+  version = "0.2.1";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "korean_lunar_calendar";
+    sha256 = "0p97r21298ipgvsqh978aq2n6cvybzp8bskcvj15mm1f76qm9khj";
+  };
+
+  # no real tests
+  pythonImportsCheck = [ "korean_lunar_calendar" ];
+
+  meta = with stdenv.lib; {
+    description = "A library to convert Korean lunar-calendar to Gregorian calendar.";
+    homepage = "https://github.com/usingsky/korean_lunar_calendar_py";
+    license = licenses.mit;
+    maintainers = [ maintainers.ris ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/kubernetes/default.nix b/nixpkgs/pkgs/development/python-modules/kubernetes/default.nix
index 62b745169718..d5ed1b4cc7c8 100644
--- a/nixpkgs/pkgs/development/python-modules/kubernetes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/kubernetes/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "kubernetes";
-  version = "10.0.1";
+  version = "11.0.0";
 
   prePatch = ''
     sed -e 's/sphinx>=1.2.1,!=1.3b1,<1.4 # BSD/sphinx/' -i test-requirements.txt
@@ -19,12 +19,12 @@ buildPythonPackage rec {
 
   doCheck = pythonAtLeast "3";
   checkPhase = ''
-    py.test
+    py.test --ignore=kubernetes/dynamic/test_client.py
   '';
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14l5mj0yjmqsq084pdh8g8hlagvvjkdylpk6xwfsv5ikcsba8w1p";
+    sha256 = "1a2472f8b01bc6aa87e3a34781f859bded5a5c8ff791a53d889a8bd6cc550430";
   };
 
   checkInputs = [ isort coverage pytest mock sphinx autopep8 pep8 codecov recommonmark nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/labelbox/default.nix b/nixpkgs/pkgs/development/python-modules/labelbox/default.nix
index 783faa7b5f61..ad8d2853b1d8 100644
--- a/nixpkgs/pkgs/development/python-modules/labelbox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/labelbox/default.nix
@@ -10,17 +10,17 @@
 
 buildPythonPackage rec {
   pname = "labelbox";
-  version = "2.3";
+  version = "2.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6b515dc29329e8a3adac9d6b4fef84d80c513743be57ae66b54bcb30060172c6";
+    sha256 = "a455ae30ccb9328731fca7f7f4cefaa7da69a2fe3e43d1b742bae5ff4693c695";
   };
 
   propagatedBuildInputs = [ jinja2 requests pillow rasterio shapely ];
 
   # Test cases are not running on pypi or GitHub
-  doCheck = false;   
+  doCheck = false;
 
   meta = with lib; {
     homepage = "https://github.com/Labelbox/Labelbox";
diff --git a/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix b/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix
index 41c165480320..a95a8907422a 100644
--- a/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lark-parser/default.nix
@@ -5,13 +5,13 @@
 
 buildPythonPackage rec {
   pname = "lark-parser";
-  version = "0.8.5";
+  version = "0.8.8";
 
   src = fetchFromGitHub {
     owner = "lark-parser";
     repo = "lark";
     rev = version;
-    sha256 = "1rfybmr0rlljhc0dpd9npbw8x7r6dvnn2wvclz93rmgkzhmd3zah";
+    sha256 = "1q2dvkkfx9dvag5v5ps0ki4avh7i003gn9sj30jy1rsv1bg4y2mb";
   };
 
   # tests of Nearley support require js2py
diff --git a/nixpkgs/pkgs/development/python-modules/latexcodec/default.nix b/nixpkgs/pkgs/development/python-modules/latexcodec/default.nix
index 3514d5da9a23..77b75193ca40 100644
--- a/nixpkgs/pkgs/development/python-modules/latexcodec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/latexcodec/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "latexcodec";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0pyzhidpnc3q3rh9d5hxhzv99rl5limyyrll7xcyssci92fn8gyd";
+    sha256 = "16pynfnn8y8xp55yp06i721fccv5dlx9ba6k5bzcwq9j6wf5b8ia";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/lazr-uri/default.nix b/nixpkgs/pkgs/development/python-modules/lazr-uri/default.nix
index d6b3cc29324c..080eb4cdb0ed 100644
--- a/nixpkgs/pkgs/development/python-modules/lazr-uri/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lazr-uri/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "lazr.uri";
-  version = "1.0.3";
+  version = "1.0.5";
 
   disabled = isPy27; # namespace is broken for python2
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5c620b5993c8c6a73084176bfc51de64972b8373620476ed841931a49752dc8b";
+    sha256 = "f36e7e40d5f8f2cf20ff2c81784a14a546e6c19c216d40a6617ebe0c96c92c49";
   };
 
   propagatedBuildInputs = [ setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix b/nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix
index 043e3e1123e0..fe6a02c3cd7d 100644
--- a/nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lazy-object-proxy/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "lazy-object-proxy";
-  version = "1.4.3";
+  version = "1.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f3900e8a5de27447acbf900b4750b0ddfd7ec1ea7fbaf11dfa911141bc522af0";
+    sha256 = "9723364577b79ad9958a68851fe2acb94da6fd25170c595516a8289e6a129043";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/lazy/default.nix b/nixpkgs/pkgs/development/python-modules/lazy/default.nix
new file mode 100644
index 000000000000..1e5f72ff803c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/lazy/default.nix
@@ -0,0 +1,21 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "lazy";
+  version = "1.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "2c6d27a5ab130fb85435320651a47403adcb37ecbcc501b0c6606391f65f5b43";
+    extension = "zip";
+  };
+
+  meta = {
+    description = "Lazy attributes for Python objects";
+    license = lib.licenses.bsd2;
+    homepage = "https://github.com/stefanholek/lazy";
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ldap/default.nix b/nixpkgs/pkgs/development/python-modules/ldap/default.nix
index 70b4ba2bf1fc..0e4f5597ce64 100644
--- a/nixpkgs/pkgs/development/python-modules/ldap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ldap/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "python-ldap";
-  version = "3.2.0";
+  version = "3.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13nvrhp85yr0jyxixcjj012iw8l9wynxxlykm9j3alss6waln73x";
+    sha256 = "198as30xy6p760niqps2zdvq2xcmr765h06pmda8fa9y077wl4a7";
   };
 
   propagatedBuildInputs = [ pyasn1 pyasn1-modules ];
diff --git a/nixpkgs/pkgs/development/python-modules/ldap3/default.nix b/nixpkgs/pkgs/development/python-modules/ldap3/default.nix
index eb2d09d8d264..9842c4d7596c 100644
--- a/nixpkgs/pkgs/development/python-modules/ldap3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ldap3/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ldap3";
-  version = "2.7";
+  version = "2.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1h1q8g1c2nkhx8p5n91bzkvjx5js5didi9xqbnmfrxqbnyc45w0p";
+    sha256 = "59d1adcd5ead263387039e2a37d7cd772a2006b1cdb3ecfcbaab5192a601c515";
   };
 
   propagatedBuildInputs = [ pyasn1 ];
diff --git a/nixpkgs/pkgs/development/python-modules/libagent/default.nix b/nixpkgs/pkgs/development/python-modules/libagent/default.nix
index 7fb3d873e742..4bc07e969330 100644
--- a/nixpkgs/pkgs/development/python-modules/libagent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libagent/default.nix
@@ -1,14 +1,16 @@
-{ stdenv, fetchPypi, buildPythonPackage, ed25519, ecdsa , semver, mnemonic,
+{ stdenv, fetchFromGitHub, buildPythonPackage, ed25519, ecdsa , semver, mnemonic,
   unidecode, mock, pytest , backports-shutil-which, ConfigArgParse,
   python-daemon, pymsgbox }:
 
 buildPythonPackage rec {
   pname = "libagent";
-  version = "0.13.1";
+  version = "0.14.1";
 
-  src = fetchPypi{
-    inherit pname version;
-    sha256 = "b9afa0851f668612702fcd648cee47af4dc7cfe4f86d4c4a84b1a6b4a4960b41";
+  src = fetchFromGitHub {
+    owner = "romanz";
+    repo = "trezor-agent";
+    rev = "v${version}";
+    sha256 = "16y1y9ahcv3wj7f0v4mfiwzkmn2hz1iv7y13cgr57sxa3ymyqx6c";
   };
 
   propagatedBuildInputs = [ unidecode backports-shutil-which ConfigArgParse
diff --git a/nixpkgs/pkgs/development/python-modules/libarcus/default.nix b/nixpkgs/pkgs/development/python-modules/libarcus/default.nix
index cd5f0aef648c..5b68695f832e 100644
--- a/nixpkgs/pkgs/development/python-modules/libarcus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libarcus/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "libarcus";
-  version = "4.6.1";
+  version = "4.7.1";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "libArcus";
     rev = version;
-    sha256 = "1sfy8skvgw6hiihs9jmfn7a13yappqwffir98pahyg7cim7p55kr";
+    sha256 = "0wmrcvw7k34ib93shhmjzh6kpndgqr37kyr377sril5clmac0z1f";
   };
 
   disabled = pythonOlder "3.4.0";
diff --git a/nixpkgs/pkgs/development/python-modules/libcloud/2.nix b/nixpkgs/pkgs/development/python-modules/libcloud/2.nix
new file mode 100644
index 000000000000..52c1cf9a9d7f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/libcloud/2.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, mock
+, pycrypto
+, requests
+, pytestrunner
+, pytest
+, requests-mock
+, typing
+, backports_ssl_match_hostname
+}:
+
+buildPythonPackage rec {
+  pname = "apache-libcloud";
+  version = "2.8.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "70096690b24a7832cc5abdfda1954b49fddc1c09a348a1e6caa781ac867ed4c6";
+  };
+
+  checkInputs = [ mock pytest pytestrunner requests-mock ];
+  propagatedBuildInputs = [ pycrypto requests ]
+    ++ lib.optionals isPy27 [ typing backports_ssl_match_hostname ];
+
+  preConfigure = "cp libcloud/test/secrets.py-dist libcloud/test/secrets.py";
+
+  # requires a certificates file
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A unified interface to many cloud providers";
+    homepage = "http://incubator.apache.org/libcloud/";
+    license = licenses.asl20;
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/python-modules/libcloud/default.nix b/nixpkgs/pkgs/development/python-modules/libcloud/default.nix
index f78501b8ced4..6693756b9cb5 100644
--- a/nixpkgs/pkgs/development/python-modules/libcloud/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libcloud/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "apache-libcloud";
-  version = "2.7.0";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "29ee7d13b9b12d1335e752a489c01eed0c270940147f418cfff89ab66faf1305";
+    sha256 = "1b28j265kvibgxrgxx0gwfm6cmv252c8ph1j2vb0cpms8ph5if5v";
   };
 
   checkInputs = [ mock pytest pytestrunner requests-mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/liblarch/default.nix b/nixpkgs/pkgs/development/python-modules/liblarch/default.nix
new file mode 100644
index 000000000000..30b52be0b850
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/liblarch/default.nix
@@ -0,0 +1,48 @@
+{ stdenv
+, fetchFromGitHub
+, buildPythonPackage
+, python
+, pygobject3
+, xvfb_run
+, gobject-introspection
+, gtk3
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  version = "3.0.1";
+  pname = "liblarch";
+  disabled = pythonOlder "3.5.0";
+
+  src = fetchFromGitHub {
+    owner = "getting-things-gnome";
+    repo = "liblarch";
+    rev = "v${version}";
+    sha256 = "0xv2mfvyzipbny3iz8vll77wsqxfwh28xj6bj1ff0l452waph45m";
+  };
+
+  checkInputs = [
+    gobject-introspection # for setup hook
+    gtk3
+  ];
+
+  propagatedBuildInputs = [
+    pygobject3
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+    ${xvfb_run}/bin/xvfb-run -s '-screen 0 800x600x24' \
+      ${python.interpreter} nix_run_setup test
+    runHook postCheck
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A python library built to easily handle data structure such are lists, trees and acyclic graphs";
+    homepage = "https://github.com/getting-things-gnome/liblarch";
+    downloadPage = "https://github.com/getting-things-gnome/liblarch/releases";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ oyren ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/librosa/default.nix b/nixpkgs/pkgs/development/python-modules/librosa/default.nix
index ade83d6721ae..0fc5d857fb84 100644
--- a/nixpkgs/pkgs/development/python-modules/librosa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/librosa/default.nix
@@ -9,26 +9,33 @@
 , audioread
 , resampy
 , soundfile
+, pooch
 }:
 
 buildPythonPackage rec {
   pname = "librosa";
-  version = "0.7.2";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "656bbda80e98e6330db1ead79cd084b13a762284834d7603fcf7cf7c0dc65f3c";
+    sha256 = "af0b9f2ed4bbf6aecbc448a4cd27c16453c397cb6bef0f0cfba0e63afea2b839";
   };
 
-  propagatedBuildInputs = [ joblib matplotlib six scikitlearn decorator audioread resampy soundfile ];
+  propagatedBuildInputs = [ joblib matplotlib six scikitlearn decorator audioread resampy soundfile pooch ];
 
   # No tests
+  # 1. Internet connection is required
+  # 2. Got error "module 'librosa' has no attribute 'version'"
   doCheck = false;
 
+  # check that import works, this allows to capture errors like https://github.com/librosa/librosa/issues/1160
+  pythonImportsCheck = [ "librosa" ];
+
   meta = with stdenv.lib; {
     description = "Python module for audio and music processing";
     homepage = "http://librosa.github.io/";
     license = licenses.isc;
+    maintainers = with maintainers; [ GuillaumeDesforges ];
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/libsavitar/default.nix b/nixpkgs/pkgs/development/python-modules/libsavitar/default.nix
index 32717e127fb8..27144ccf1ad3 100644
--- a/nixpkgs/pkgs/development/python-modules/libsavitar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libsavitar/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "libsavitar";
-  version = "4.6.1";
+  version = "4.7.1";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "Ultimaker";
     repo = "libSavitar";
     rev = version;
-    sha256 = "0nk8zl5b0b36wrrkj271ck4phzxsigkjsazndscjslc9nkldmnpq";
+    sha256 = "0mzr3ynfap51bcn6kshyi2h6iny2gpavn6g3b1xcsgzzlxqgfixf";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/libthumbor/default.nix b/nixpkgs/pkgs/development/python-modules/libthumbor/default.nix
index c8fab0797152..e8b7c45417a1 100644
--- a/nixpkgs/pkgs/development/python-modules/libthumbor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libthumbor/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "libthumbor";
-  version = "1.3.2";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vjhszsf8wl9k16wyg2rfjycjnawzl7z8j39bhiysbz5x4lqg91b";
+    sha256 = "ed4fe5f27f8f90e7285b7e6dce99c1b67d43a140bf370e989080b43d80ce25f0";
   };
 
   buildInputs = [ django ];
diff --git a/nixpkgs/pkgs/development/python-modules/libtmux/default.nix b/nixpkgs/pkgs/development/python-modules/libtmux/default.nix
index 65accea559a1..605cbe040269 100644
--- a/nixpkgs/pkgs/development/python-modules/libtmux/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libtmux/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "libtmux";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0nh6dvf8g93hv7cma6r8l88k8l20zck6a0ax29mrdg03f9hqdk9a";
+    sha256 = "a4c7379604ccdc684aa865723211184709f9a2b45511772989b5f26ad156650e";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/libusb1/default.nix b/nixpkgs/pkgs/development/python-modules/libusb1/default.nix
index 2d9438374595..396f8c5b5c53 100644
--- a/nixpkgs/pkgs/development/python-modules/libusb1/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libusb1/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "libusb1";
-  version = "1.7.1";
+  version = "1.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "adf64a4f3f5c94643a1286f8153bcf4bc787c348b38934aacd7fe17fbeebc571";
+    sha256 = "240f65ac70ba3fab77749ec84a412e4e89624804cb80d6c9d394eef5af8878d6";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/libversion/default.nix b/nixpkgs/pkgs/development/python-modules/libversion/default.nix
index 21aa46348b12..ed3629ce65d5 100644
--- a/nixpkgs/pkgs/development/python-modules/libversion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libversion/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "libversion";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1p3snjlsg11vhba8h286h19kn6azlxbywg9f6rdhj8sfraccqlmk";
+    sha256 = "1h8x9hglrqi03f461lhw3wwz23zs84dgw7hx4laxcmyrgvyzvcq1";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/development/python-modules/libvirt/default.nix b/nixpkgs/pkgs/development/python-modules/libvirt/default.nix
index 43962c7d4d63..7b1601a4122f 100644
--- a/nixpkgs/pkgs/development/python-modules/libvirt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/libvirt/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "libvirt";
-  version = "6.2.0";
+  version = "6.3.0";
 
   src = assert version == libvirt.version; fetchgit {
     url = "git://libvirt.org/libvirt-python.git";
     rev = "v${version}";
-    sha256 = "0a8crk29rmnw1kcgi72crb7syacdk03lkl05yand5cxs0l65jwdl";
+    sha256 = "088cksq59jxkkzbvmwl8jw9v2k3zibwksl7j57yb51bxaa2sa1cx";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/development/python-modules/lightparam/default.nix b/nixpkgs/pkgs/development/python-modules/lightparam/default.nix
index 6681b528b8c1..0c3eb5292a88 100644
--- a/nixpkgs/pkgs/development/python-modules/lightparam/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lightparam/default.nix
@@ -1,24 +1,31 @@
-{ lib, pkgs, buildPythonPackage, fetchPypi, isPy3k
+{ lib, pkgs, buildPythonPackage, fetchFromGitHub, isPy3k
+, ipython
+, ipywidgets
 , numpy
+, pyqt5
 }:
 
 buildPythonPackage rec {
   pname = "lightparam";
-  version = "0.3.7";
+  version = "0.4.6";
   disabled = !isPy3k;
-  format = "wheel";
 
-  src = fetchPypi {
-    inherit pname version;
-    format = "wheel";
-    python = "py3";
-    sha256 = "53d5d5b225bac27bc14929c9ad4e51ece4f692813dd367f317fb1586145d93f1";
+  src = fetchFromGitHub {
+    owner = "portugueslab";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "13hlkvjcyz2lhvlfqyavja64jccbidshhs39sl4fibrn9iq34s3i";
   };
 
   propagatedBuildInputs = [
+    ipython
+    ipywidgets
     numpy
+    pyqt5
   ];
 
+  pythonImportsCheck = [ "lightparam" ];
+
   meta = {
     homepage = "https://github.com/portugueslab/lightparam";
     description = "Another attempt at parameters in Python";
diff --git a/nixpkgs/pkgs/development/python-modules/limits/default.nix b/nixpkgs/pkgs/development/python-modules/limits/default.nix
index 5d0b1aacb555..22bd6607fb6b 100644
--- a/nixpkgs/pkgs/development/python-modules/limits/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/limits/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "limits";
-  version = "1.4.1";
+  version = "1.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c071295307c447f85aaa3c3ab3ce058e29d67010f4fabf278a8e163916e4deab";
+    sha256 = "f0c3319f032c4bfad68438ed1325c0fac86dac64582c7c25cddc87a0b658fa20";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/limnoria/default.nix b/nixpkgs/pkgs/development/python-modules/limnoria/default.nix
index 7cd3ef85822a..4a5e1386730f 100644
--- a/nixpkgs/pkgs/development/python-modules/limnoria/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/limnoria/default.nix
@@ -1,16 +1,18 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , pkgs
 }:
 
 buildPythonPackage rec {
   pname = "limnoria";
-  version = "2019.11.22";
+  version = "2020.07.01";
+  disabled = isPy27; # abandoned upstream
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6ccc6906fd644444a1edd0984d10bddf5abf4dd91c94eeeaa4660f7dc3eca320";
+    sha256 = "08q8krq8dqlvzz3wjgnki3n8d8qmk99pn7n3lfsim5rnrnx1jchb";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/line_profiler/default.nix b/nixpkgs/pkgs/development/python-modules/line_profiler/default.nix
index 8ff0f391f208..4275732881cd 100644
--- a/nixpkgs/pkgs/development/python-modules/line_profiler/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/line_profiler/default.nix
@@ -6,6 +6,7 @@
 , ipython
 , python
 , scikit-build
+, cmake
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,17 @@ buildPythonPackage rec {
     sha256 = "7218ad6bd81f8649b211974bf108933910f016d66b49651effe7bbf63667d141";
   };
 
-  nativeBuildInputs = [ cython ];
+  nativeBuildInputs = [
+    cython
+    cmake
+    scikit-build
+  ];
 
-  propagatedBuildInputs = [ ipython scikit-build ];
+  dontUseCmakeConfigure = true;
+
+  propagatedBuildInputs = [
+    ipython
+  ];
 
   disabled = isPyPy;
 
@@ -27,8 +36,12 @@ buildPythonPackage rec {
     rm -f _line_profiler.c
   '';
 
+  checkInputs = [
+    ipython
+  ];
+
   checkPhase = ''
-    ${python.interpreter} -m unittest discover -s tests
+    PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH cd tests && ${python.interpreter} -m unittest discover -s .
   '';
 
   meta = {
@@ -36,6 +49,5 @@ buildPythonPackage rec {
     homepage = "https://github.com/rkern/line_profiler";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ fridh ];
-    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/linecache2/default.nix b/nixpkgs/pkgs/development/python-modules/linecache2/default.nix
index 9890d382742c..a2c7080e2701 100644
--- a/nixpkgs/pkgs/development/python-modules/linecache2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/linecache2/default.nix
@@ -2,9 +2,10 @@
 , buildPythonPackage
 , fetchPypi
 , pbr
+, isPy3k
 }:
 
-buildPythonPackage rec {
+buildPythonPackage (rec {
   pname = "linecache2";
   version = "1.0.0";
 
@@ -22,5 +23,8 @@ buildPythonPackage rec {
     homepage = "https://github.com/testing-cabal/linecache2";
     license = licenses.psfl;
   };
-
-}
+# TODO: move into main set, this was to avoid a rebuild
+} // stdenv.lib.optionalAttrs (!isPy3k ) {
+  # syntax error in tests. Tests are likely Python 3 only.
+  dontUsePythonRecompileBytecode = !isPy3k;
+})
diff --git a/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix b/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix
index 3a7f381e51c5..7a7106a5eaa6 100644
--- a/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/llvmlite/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "llvmlite";
-  version = "0.32.1";
+  version = "0.34.0";
 
   disabled = isPyPy || !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "41262a47b8cbba5a09203b15b65fbdf11192f92aa226c81e99115acdee8f3b8d";
+    sha256 = "f03ee0d19bca8f2fe922bb424a909d05c28411983b0c2bc58b020032a0d11f63";
   };
 
   nativeBuildInputs = [ llvm ];
diff --git a/nixpkgs/pkgs/development/python-modules/lmdb/default.nix b/nixpkgs/pkgs/development/python-modules/lmdb/default.nix
index 5f31511451d5..328e5a428fca 100644
--- a/nixpkgs/pkgs/development/python-modules/lmdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lmdb/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "lmdb";
-  version = "0.98";
+  version = "0.99";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0625bc28bf0893e6000a83be7234f915ca078c32f9e73d8ae48b3508db7af708";
+    sha256 = "f9eb844aaaacc8a4bc175e1c1f8a8fb538c330e378fd9eb40e8708d4dca7dc89";
   };
 
   checkInputs = [ pytest cffi ];
diff --git a/nixpkgs/pkgs/development/python-modules/lml/default.nix b/nixpkgs/pkgs/development/python-modules/lml/default.nix
new file mode 100644
index 000000000000..c1320eef04ce
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/lml/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, nose
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "lml";
+  version = "0.0.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "6luoF7Styen1whclzSR1+RKTO34t/fB5Ku2AB3FU9j8=";
+  };
+
+  checkInputs = [
+    nose
+    mock
+  ];
+
+  checkPhase = "nosetests";
+
+  meta = {
+    description = "Load me later. A lazy plugin management system for Python";
+    homepage = "http://lml.readthedocs.io/";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ jtojnar ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/lmtpd/default.nix b/nixpkgs/pkgs/development/python-modules/lmtpd/default.nix
index 0078c9175677..e9dd42219eb9 100644
--- a/nixpkgs/pkgs/development/python-modules/lmtpd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lmtpd/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "lmtpd";
-  version = "6.1.0";
+  version = "6.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "256e23a3292818ecccf9a76ef52e0064c6f7e1f8602904e15337c8917ed0fafe";
+    sha256 = "2c6825d2ffa1de099440411a742f58e1b3e8deeb3345adcfd4c2c38d4baf62b3";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/logfury/default.nix b/nixpkgs/pkgs/development/python-modules/logfury/default.nix
index a52f194b8bea..5f83c8633dc1 100644
--- a/nixpkgs/pkgs/development/python-modules/logfury/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/logfury/default.nix
@@ -28,4 +28,4 @@ buildPythonPackage rec {
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ jwiegley ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/loguru/default.nix b/nixpkgs/pkgs/development/python-modules/loguru/default.nix
index 410ca27c8aa0..18b1594b2801 100644
--- a/nixpkgs/pkgs/development/python-modules/loguru/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/loguru/default.nix
@@ -2,16 +2,18 @@
 
 buildPythonPackage rec {
   pname = "loguru";
-  version = "0.4.1";
-  
+  version = "0.5.1";
+
   disabled = isPy27;
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a6101fd435ac89ba5205a105a26a6ede9e4ddbb4408a6e167852efca47806d11";
+    sha256 = "70201d5fce26da89b7a5f168caa2bb674e06b969829f56737db1d6472e53e7c3";
   };
 
   checkInputs = [ pytestCheckHook colorama ];
 
+  pytestFlagsArray = stdenv.lib.optionals stdenv.isDarwin [ "--ignore=tests/test_multiprocessing.py" ];
+
   disabledTests = [ "test_time_rotation_reopening" "test_file_buffering" ]
     ++ stdenv.lib.optionals stdenv.isDarwin [ "test_rotation_and_retention" "test_rotation_and_retention_timed_file" "test_renaming" "test_await_complete_inheritance" ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/ludios_wpull/default.nix b/nixpkgs/pkgs/development/python-modules/ludios_wpull/default.nix
index 7bea2b04bbd4..e87146f6fbc3 100644
--- a/nixpkgs/pkgs/development/python-modules/ludios_wpull/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ludios_wpull/default.nix
@@ -8,15 +8,16 @@
 , lxml
 , namedlist
 , sqlalchemy
-, tornado_4
+, tornado
 , Yapsy
+, pythonAtLeast
 }:
 
 buildPythonPackage rec {
   pname = "ludios_wpull";
   version = "3.0.7";
 
-  disabled = !isPy3k;
+  disabled = (!isPy3k) || (pythonAtLeast "3.8");
 
   src = fetchFromGitHub {
     rev = version;
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     sha256 = "1j96avm0ynbazypzp766wh26n4qc73y7wgsiqfrdfl6x7rx20wgf";
   };
 
-  propagatedBuildInputs = [ chardet dnspython html5-parser lxml namedlist sqlalchemy tornado_4 Yapsy ];
+  propagatedBuildInputs = [ chardet dnspython html5-parser lxml namedlist sqlalchemy tornado Yapsy ];
 
   # Test suite has tests that fail on all platforms
   doCheck = false;
@@ -35,5 +36,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/ludios/wpull";
     license = lib.licenses.gpl3;
     maintainers = with lib.maintainers; [ ivan ];
+    broken = lib.versions.major tornado.version != "4";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/lxml/default.nix b/nixpkgs/pkgs/development/python-modules/lxml/default.nix
index f39e71ed6901..aa009e0a3e73 100644
--- a/nixpkgs/pkgs/development/python-modules/lxml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/lxml/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ lib, buildPythonPackage, fetchFromGitHub
 , cython
 , libxml2
 , libxslt
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "lxml";
-  version = "4.5.0";
+  version = "4.5.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "1i3bhg8xb502afq4ar3kgvvi1hy83l4af2gznfwqvb5b221fr7ak";
+    sha256 = "1d0cpwdjxfzwjzmnz066ibzicyj2vhx15qxmm775l8hxqi65xps4";
   };
 
   # setuptoolsBuildPhase needs dependencies to be passed through nativeBuildInputs
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "lxml" "lxml.etree" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Pythonic binding for the libxml2 and libxslt libraries";
     homepage = "https://lxml.de";
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/python-modules/m2crypto/default.nix b/nixpkgs/pkgs/development/python-modules/m2crypto/default.nix
index 0e079dd832c4..f3ca43f5e9a5 100644
--- a/nixpkgs/pkgs/development/python-modules/m2crypto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/m2crypto/default.nix
@@ -11,12 +11,12 @@
 
 
 buildPythonPackage rec {
-  version = "0.35.2";
+  version = "0.36.0";
   pname = "M2Crypto";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "09yirf3w77w6f49q6nxhrjm9c3a4y9s30s1k09chqrw8zdgx8sjc";
+    sha256 = "1hadbdckmjzfb8qzbkafypin6sakfx35j2qx0fsivh757s7c2hhm";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/mac_alias/default.nix b/nixpkgs/pkgs/development/python-modules/mac_alias/default.nix
new file mode 100644
index 000000000000..bd2a1f62390b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mac_alias/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchPypi
+}:
+
+buildPythonPackage rec {
+  version = "2.0.7";
+  pname = "mac_alias";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "08z2i68mk5j0vfy8jqihjm9m6njp1lpjh1m91b60h0k0kpmy71f4";
+  };
+
+  # pypi package does not include tests;
+  # tests anyway require admin privileges to succeed
+  doCheck = false;
+  pythonImportsCheck = [ "mac_alias" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/al45tair/mac_alias";
+    description = "Generate or read binary Alias and Bookmark records from Python code";
+    longDescription = ''
+      mac_alias lets you generate or read binary Alias and Bookmark records from Python code.
+
+      While it is written in pure Python, some OS X specific code is required
+      to generate a proper Alias or Bookmark record for a given file,
+      so this module currently is not portable to other platforms.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ siriobalmelli ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/maestral/default.nix b/nixpkgs/pkgs/development/python-modules/maestral/default.nix
new file mode 100644
index 000000000000..99b7f304a9ef
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/maestral/default.nix
@@ -0,0 +1,59 @@
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, python
+, blinker, bugsnag, click, dbus-next, dropbox, fasteners, keyring, keyrings-alt, pathspec, Pyro5, requests, sqlalchemy, u-msgpack-python, watchdog
+, sdnotify
+, systemd
+}:
+
+buildPythonPackage rec {
+  pname = "maestral";
+  version = "1.2.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "SamSchott";
+    repo = "maestral";
+    rev = "v${version}";
+    sha256 = "sha256-/xm6sGios5N68X94GqFFzH1jNSMK1OnvQiEykU9IAZU=";
+  };
+
+  propagatedBuildInputs = [
+    blinker
+    bugsnag
+    click
+    dbus-next
+    dropbox
+    fasteners
+    keyring
+    keyrings-alt
+    pathspec
+    Pyro5
+    requests
+    sqlalchemy
+    u-msgpack-python
+    watchdog
+  ] ++ stdenv.lib.optionals stdenv.isLinux [
+    sdnotify
+    systemd
+  ];
+
+  makeWrapperArgs = [
+    # Add the installed directories to the python path so the daemon can find them
+    "--prefix" "PYTHONPATH" ":" "${stdenv.lib.concatStringsSep ":" (map (p: p + "/lib/${python.libPrefix}/site-packages") (python.pkgs.requiredPythonModules propagatedBuildInputs))}"
+    "--prefix" "PYTHONPATH" ":" "$out/lib/${python.libPrefix}/site-packages"
+  ];
+
+  # no tests
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Open-source Dropbox client for macOS and Linux";
+    license = licenses.mit;
+    maintainers = with maintainers; [ peterhoeg ];
+    platforms = platforms.unix;
+    inherit (src.meta) homepage;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mahotas/default.nix b/nixpkgs/pkgs/development/python-modules/mahotas/default.nix
index f48c36bdb03e..b7d17d943f7b 100644
--- a/nixpkgs/pkgs/development/python-modules/mahotas/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mahotas/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "mahotas";
-  version = "1.4.9";
+  version = "1.4.10";
 
   src = fetchFromGitHub {
     owner = "luispedro";
     repo = "mahotas";
     rev = "v${version}";
-    sha256 = "151hri3lwcm9p7w1nyw99h8c70j51698cvzaiazvwb6gl4khwavv";
+    sha256 = "0fjiyl82wj1a6xzr9mss2y2rydl4zchl2cbdbg0jm0fcrs99q4hw";
   };
 
   # remove this as soon as https://github.com/luispedro/mahotas/issues/97 is fixed
diff --git a/nixpkgs/pkgs/development/python-modules/maildir-deduplicate/default.nix b/nixpkgs/pkgs/development/python-modules/maildir-deduplicate/default.nix
deleted file mode 100644
index 33728ef4113c..000000000000
--- a/nixpkgs/pkgs/development/python-modules/maildir-deduplicate/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, click
-}:
-
-buildPythonPackage rec {
-  pname = "maildir-deduplicate";
-  version = "2.1.0";
-  disabled = !isPy27;
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "263c7f2c85dafe06eaa15e8d7ab83817204f70a5f08cc25a607f3f01ed130b42";
-  };
-
-  propagatedBuildInputs = [ click ];
-
-  meta = with stdenv.lib; {
-    description = "Command-line tool to deduplicate mails from a set of maildir folders";
-    homepage = "https://github.com/kdeldycke/maildir-deduplicate";
-    license = licenses.gpl2;
-    broken = true;
-  };
-
-}
diff --git a/nixpkgs/pkgs/development/python-modules/mapsplotlib/default.nix b/nixpkgs/pkgs/development/python-modules/mapsplotlib/default.nix
index a5dd00971d0a..d21d09571ad1 100644
--- a/nixpkgs/pkgs/development/python-modules/mapsplotlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mapsplotlib/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "mapsplotlib";
-  version = "1.2.0";
+  version = "1.2.1";
 
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e0a18aa0d134407aab6130c314596732d129ff98f9a6084640a07a5b8656f836";
+    sha256 = "7650754e3175f13a1cb4406a62e4cfeb424036377992b9c3c2e3f6c2404d06b3";
   };
 
   propagatedBuildInputs = [ matplotlib scipy pandas requests pillow ];
diff --git a/nixpkgs/pkgs/development/python-modules/marionette-harness/default.nix b/nixpkgs/pkgs/development/python-modules/marionette-harness/default.nix
index 29d38a1f2f07..187e3a646a02 100644
--- a/nixpkgs/pkgs/development/python-modules/marionette-harness/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/marionette-harness/default.nix
@@ -21,8 +21,8 @@ buildPythonPackage rec {
     sha256 = "041cd779ae383fb5c56f2bb44824f4e80ba895febd9a3f21570ac274221c82e0";
   };
 
-  propagatedBuildInputs = [ mozprofile mozversion browsermob-proxy moztest 
-    wptserve manifestparser marionette_driver ]; 
+  propagatedBuildInputs = [ mozprofile mozversion browsermob-proxy moztest
+    wptserve manifestparser marionette_driver ];
 
   meta = {
     description = "Mozilla Marionette protocol test automation harness";
diff --git a/nixpkgs/pkgs/development/python-modules/marionette-harness/marionette_driver.nix b/nixpkgs/pkgs/development/python-modules/marionette-harness/marionette_driver.nix
index 60e9e0460e76..28193528ed28 100644
--- a/nixpkgs/pkgs/development/python-modules/marionette-harness/marionette_driver.nix
+++ b/nixpkgs/pkgs/development/python-modules/marionette-harness/marionette_driver.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     sha256 = "99ca2513d4e2ca29a08e550346f23947a50627a2b02f6ad36a4550e779fa0ce8";
   };
 
-  propagatedBuildInputs = [ mozversion mozrunner ]; 
+  propagatedBuildInputs = [ mozversion mozrunner ];
 
   meta = {
     description = "Mozilla Marionette driver";
diff --git a/nixpkgs/pkgs/development/python-modules/marionette-harness/mozfile.nix b/nixpkgs/pkgs/development/python-modules/marionette-harness/mozfile.nix
index 829e909535a7..2cce0a221244 100644
--- a/nixpkgs/pkgs/development/python-modules/marionette-harness/mozfile.nix
+++ b/nixpkgs/pkgs/development/python-modules/marionette-harness/mozfile.nix
@@ -1,7 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy27
 , six
 }:
 
@@ -14,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "e5dc835582ea150e35ecd57e9d86cb707d3aa3b2505679db7332326dd49fd6b8";
   };
 
-  propagatedBuildInputs = lib.optional isPy27 six;
+  propagatedBuildInputs = [ six ];
 
   # mozhttpd -> moznetwork -> mozinfo -> mozfile
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/marionette-harness/mozhttpd.nix b/nixpkgs/pkgs/development/python-modules/marionette-harness/mozhttpd.nix
index 3520d23081b2..a7cbb7ece08c 100644
--- a/nixpkgs/pkgs/development/python-modules/marionette-harness/mozhttpd.nix
+++ b/nixpkgs/pkgs/development/python-modules/marionette-harness/mozhttpd.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "mozhttpd";
-  version = "0.7";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "10y1cr933ajx9ni701ayb7r361pak9wrzr7pdpyx81kkbjddq7qa";
+    sha256 = "3e2a9b4d6c007a1a9fb729d6e95b5404d138914727747e10155426492dced975";
   };
 
-  propagatedBuildInputs = [ moznetwork ]; 
+  propagatedBuildInputs = [ moznetwork ];
 
   meta = {
     description = "Webserver for Mozilla testing";
diff --git a/nixpkgs/pkgs/development/python-modules/marionette-harness/moznetwork.nix b/nixpkgs/pkgs/development/python-modules/marionette-harness/moznetwork.nix
index 3029f7ed546c..6bdc93f680a7 100644
--- a/nixpkgs/pkgs/development/python-modules/marionette-harness/moznetwork.nix
+++ b/nixpkgs/pkgs/development/python-modules/marionette-harness/moznetwork.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "0ws20l4ggb6mj7ycwrk5h7hj1jmj3mj0ca48k5jzsa4n042ahwrd";
   };
 
-  propagatedBuildInputs = [ mozlog mozinfo ]; 
+  propagatedBuildInputs = [ mozlog mozinfo ];
 
   meta = {
     description = "Network utilities for Mozilla testing";
diff --git a/nixpkgs/pkgs/development/python-modules/markdown/3_1.nix b/nixpkgs/pkgs/development/python-modules/markdown/3_1.nix
new file mode 100644
index 000000000000..eb9b2e59ec81
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/markdown/3_1.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools
+, nose
+, pyyaml
+, pythonOlder
+, importlib-metadata
+, isPy3k
+}:
+
+buildPythonPackage rec {
+  pname = "Markdown";
+  version = "3.1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a";
+  };
+
+  propagatedBuildInputs = [
+    setuptools
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
+
+  checkInputs = [ nose pyyaml ];
+
+  meta = {
+    description = "A Python implementation of John Gruber's Markdown with Extension support";
+    homepage = "https://github.com/Python-Markdown/markdown";
+    license = lib.licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/markdown/default.nix b/nixpkgs/pkgs/development/python-modules/markdown/default.nix
index 1438391dc406..c97f74a2f2ae 100644
--- a/nixpkgs/pkgs/development/python-modules/markdown/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/markdown/default.nix
@@ -4,18 +4,27 @@
 , setuptools
 , nose
 , pyyaml
+, pythonOlder
+, importlib-metadata
+, isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "Markdown";
-  version = "3.1.1";
+  version = "3.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2e50876bcdd74517e7b71f3e7a76102050edec255b3983403f1a63e7c8a41e7a";
+    sha256 = "1fafe3f1ecabfb514a5285fca634a53c1b32a81cb0feb154264d55bf2ff22c17";
   };
 
-  propagatedBuildInputs = [ setuptools ];
+  propagatedBuildInputs = [
+    setuptools
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ];
+
+  disabled = !isPy3k;
 
   checkInputs = [ nose pyyaml ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/marshmallow-polyfield/default.nix b/nixpkgs/pkgs/development/python-modules/marshmallow-polyfield/default.nix
index 3b18c10cbc31..e3b629b3034e 100644
--- a/nixpkgs/pkgs/development/python-modules/marshmallow-polyfield/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/marshmallow-polyfield/default.nix
@@ -31,4 +31,4 @@ buildPythonPackage rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix b/nixpkgs/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
index 2f85c33e757e..60a2704894b9 100644
--- a/nixpkgs/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "marshmallow-sqlalchemy";
-  version = "0.21.0";
+  version = "0.23.1";
 
   meta = {
     homepage = "https://github.com/marshmallow-code/marshmallow-sqlalchemy";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "93fd8fad2b33d92a1ae58328eeb0f39ed174858d82f9e7084a174df7b41fd3a4";
+    sha256 = "0ef59c8da8da2e18e808e3880158049e9d72f3031c84cc804b6c533a0eb668a9";
   };
 
   propagatedBuildInputs = [ marshmallow sqlalchemy ];
diff --git a/nixpkgs/pkgs/development/python-modules/marshmallow/default.nix b/nixpkgs/pkgs/development/python-modules/marshmallow/default.nix
index 7b7cadc98894..cf54e38385df 100644
--- a/nixpkgs/pkgs/development/python-modules/marshmallow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/marshmallow/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "marshmallow";
-  version = "3.3.0";
+  version = "3.7.1";
   disabled = isPy27;
 
   meta = {
@@ -18,7 +18,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ba81b6da4ae69eb229b74b3c741ff13fe04fb899824377b1aff5aaa1a9fd46e";
+    sha256 = "a2a5eefb4b75a3b43f05be1cca0b6686adf56af7465c3ca629e5ad8d1e1fe13d";
   };
 
   propagatedBuildInputs = [ dateutil simplejson ];
diff --git a/nixpkgs/pkgs/development/python-modules/mask-rcnn/default.nix b/nixpkgs/pkgs/development/python-modules/mask-rcnn/default.nix
index e9362f4e077b..ae07e7928a6a 100644
--- a/nixpkgs/pkgs/development/python-modules/mask-rcnn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mask-rcnn/default.nix
@@ -18,7 +18,7 @@
 buildPythonPackage rec {
   pname = "mask-rcnn";
   version = "2.1";
-  
+
   src = fetchFromGitHub {
     owner = "matterport";
     repo = "Mask_RCNN";
@@ -49,4 +49,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ rakesh4g ];
   };
 }
-
diff --git a/nixpkgs/pkgs/development/python-modules/mathics/default.nix b/nixpkgs/pkgs/development/python-modules/mathics/default.nix
deleted file mode 100644
index 0bd81f008485..000000000000
--- a/nixpkgs/pkgs/development/python-modules/mathics/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, python
-, cython
-, sympy
-, ply
-, mpmath
-, dateutil
-, colorama
-, six
-, pexpect
-}:
-
-if (stdenv.lib.versionOlder django.version "1.8") ||
-   (stdenv.lib.versionAtLeast django.version "1.9")
-   then throw "mathics only supports django-1.8.x"
-   else buildPythonPackage rec {
-  pname = "mathics";
-  version = "0.9";
-
-  src = fetchFromGitHub {
-    owner = "mathics";
-    repo = "Mathics";
-    rev = "v${version}";
-    sha256 = "0xzz7j8xskj5y6as178mjmm0i2xbhd4q4mwmdnvghpd2aqq3qx1c";
-  };
-
-  buildInputs = [ pexpect ];
-
-  prePatch = ''
-    substituteInPlace setup.py --replace "sympy==0.7.6" "sympy"
-  '';
-
-  postFixup = ''
-    wrapPythonProgramsIn $out/bin $out
-    patchPythonScript $out/${python.sitePackages}/mathics/manage.py
-  '';
-
-  propagatedBuildInputs = [ cython sympy django ply mpmath dateutil colorama six ];
-
-  meta = with stdenv.lib; {
-    description = "A general-purpose computer algebra system";
-    homepage = "http://www.mathics.org";
-    license = licenses.gpl3;
-    maintainers = [ maintainers.benley ];
-  };
-
-}
diff --git a/nixpkgs/pkgs/development/python-modules/mathlibtools/default.nix b/nixpkgs/pkgs/development/python-modules/mathlibtools/default.nix
new file mode 100644
index 000000000000..f9c1cf6839f0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mathlibtools/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchPypi, PyGithub, GitPython, toml, click, tqdm,
+  paramiko, networkx, pydot, pyyaml }:
+
+buildPythonPackage rec {
+  pname = "mathlibtools";
+  version = "0.0.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0d708bgsxjhhchqc56afi1h7k87vbfn7v40f4y1zlv7hsjc69s36";
+  };
+
+  propagatedBuildInputs = [
+    PyGithub GitPython toml click tqdm paramiko networkx pydot pyyaml
+  ];
+
+  # requires internet access
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://github.com/leanprover-community/mathlib-tools";
+    description = "leanproject is a supporting tool for Lean's mathlib";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ gebner ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix b/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix
index 03afcfe75ae3..732a6c89f439 100644
--- a/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/matplotlib/default.nix
@@ -1,6 +1,7 @@
 { stdenv, fetchPypi, python, buildPythonPackage, isPy3k, pycairo, backports_functools_lru_cache
 , which, cycler, dateutil, nose, numpy, pyparsing, sphinx, tornado, kiwisolver
 , freetype, libpng, pkgconfig, mock, pytz, pygobject3, gobject-introspection
+, certifi, pillow
 , enableGhostscript ? true, ghostscript ? null, gtk3
 , enableGtk3 ? false, cairo
 # darwin has its own "MacOSX" backend
@@ -19,14 +20,14 @@ assert enableTk -> (tcl != null)
 assert enableQt -> pyqt5 != null;
 
 buildPythonPackage rec {
-  version = "3.2.1";
+  version = "3.3.1";
   pname = "matplotlib";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ffe2f9cdcea1086fc414e82f42271ecf1976700b8edd16ca9d376189c6d93aee";
+    sha256 = "87f53bcce90772f942c2db56736788b39332d552461a5cb13f05ff45c1680f0e";
   };
 
   XDG_RUNTIME_DIR = "/tmp";
@@ -39,12 +40,12 @@ buildPythonPackage rec {
 
   propagatedBuildInputs =
     [ cycler dateutil numpy pyparsing tornado freetype kiwisolver
-      libpng mock pytz ]
+      certifi libpng mock pytz pillow ]
     ++ stdenv.lib.optionals enableGtk3 [ cairo pycairo gtk3 gobject-introspection pygobject3 ]
     ++ stdenv.lib.optionals enableTk [ tcl tk tkinter libX11 ]
     ++ stdenv.lib.optionals enableQt [ pyqt5 ];
 
-  setup_cfg = ./setup.cfg;
+  setup_cfg = if stdenv.isDarwin then ./setup-darwin.cfg else ./setup.cfg;
   preBuild = ''
     cp "$setup_cfg" ./setup.cfg
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/matplotlib/setup-darwin.cfg b/nixpkgs/pkgs/development/python-modules/matplotlib/setup-darwin.cfg
new file mode 100644
index 000000000000..f6463d9c574a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/matplotlib/setup-darwin.cfg
@@ -0,0 +1,7 @@
+[directories]
+basedirlist = .
+
+[libs]
+system_freetype = true
+# LTO not working in darwin stdenv, see #19312
+enable_lto = false
diff --git a/nixpkgs/pkgs/development/python-modules/matplotlib/setup.cfg b/nixpkgs/pkgs/development/python-modules/matplotlib/setup.cfg
index 6f81985efa44..6a7738627651 100644
--- a/nixpkgs/pkgs/development/python-modules/matplotlib/setup.cfg
+++ b/nixpkgs/pkgs/development/python-modules/matplotlib/setup.cfg
@@ -1,2 +1,5 @@
 [directories]
 basedirlist = .
+
+[libs]
+system_freetype = true
diff --git a/nixpkgs/pkgs/development/python-modules/matrix-nio/default.nix b/nixpkgs/pkgs/development/python-modules/matrix-nio/default.nix
index aca4bf35434b..59c3f47d2ca7 100644
--- a/nixpkgs/pkgs/development/python-modules/matrix-nio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/matrix-nio/default.nix
@@ -20,13 +20,13 @@
 
 buildPythonPackage rec {
   pname = "matrix-nio";
-  version = "0.12.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "poljar";
     repo = "matrix-nio";
     rev = version;
-    sha256 = "1d4jhl2xjjp31yjs4zz2cfkvzbi2vr5bsrp07s6nhyc18azxr7ba";
+    sha256 = "127n4sqdcip1ld42w9wz49pxkpvi765qzvivvwl26720n11zq5cd";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/mautrix/default.nix b/nixpkgs/pkgs/development/python-modules/mautrix/default.nix
index 362e34157676..50b81cef945d 100644
--- a/nixpkgs/pkgs/development/python-modules/mautrix/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mautrix/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "mautrix";
-  version = "0.5.4";
+  version = "0.5.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0csvk3y0y2r9gnfqj91fiqprgp8dxiv4n80b6myraab5s7zn1mvv";
+    sha256 = "1hqg32n7pmjhap0ybfcf05zgfcyyirb4fm1m7gf44dwh40da6qz0";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/maxminddb/default.nix b/nixpkgs/pkgs/development/python-modules/maxminddb/default.nix
index beddba84fbc6..0afdeef2228a 100644
--- a/nixpkgs/pkgs/development/python-modules/maxminddb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/maxminddb/default.nix
@@ -1,22 +1,30 @@
-{ buildPythonPackage, lib, fetchPypi
+{ stdenv, lib, buildPythonPackage, pythonOlder, pythonAtLeast
+, fetchPypi
+, libmaxminddb
 , ipaddress
 , mock
 , nose
 }:
 
 buildPythonPackage rec {
-  version = "1.5.4";
+  version = "2.0.2";
   pname = "maxminddb";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f4d28823d9ca23323d113dc7af8db2087aa4f657fafc64ff8f7a8afda871425b";
+    sha256 = "b95d8ed21799e6604683669c7ed3c6a184fcd92434d5762dccdb139b4f29e597";
   };
 
+  buildInputs = [ libmaxminddb ];
+
   propagatedBuildInputs = [ ipaddress ];
 
   checkInputs = [ nose mock ];
 
+  # Tests are broken for macOS on python38
+  doCheck = !(stdenv.isDarwin && pythonAtLeast "3.8");
+
   meta = with lib; {
     description = "Reader for the MaxMind DB format";
     homepage = "https://www.maxmind.com/en/home";
diff --git a/nixpkgs/pkgs/development/python-modules/mdp/default.nix b/nixpkgs/pkgs/development/python-modules/mdp/default.nix
index 854622f20648..a93b00a0f91e 100644
--- a/nixpkgs/pkgs/development/python-modules/mdp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mdp/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "MDP";
-  version = "3.5";
+  version = "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0aw1zxmyvx6gfmmnixbqmdaah28jl7rmqkzhxv53091asc23iw9k";
+    sha256 = "ac52a652ccbaed1857ff1209862f03bf9b06d093b12606fb410787da3aa65a0e";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/mecab-python3/default.nix b/nixpkgs/pkgs/development/python-modules/mecab-python3/default.nix
index cbc8084c232d..dc7123405549 100644
--- a/nixpkgs/pkgs/development/python-modules/mecab-python3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mecab-python3/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "mecab-python3";
-  version = "0.996.5";
+  version = "1.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e7f09caf136903ce908b8b001ffc178d6caa129c1550d47d8f7f733a213749a8";
+    sha256 = "0246wxfk8v1js75nv8jl15cwpf4rvv4xndi4gbzjrrqbsgj2fvfm";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/mergedeep/default.nix b/nixpkgs/pkgs/development/python-modules/mergedeep/default.nix
new file mode 100644
index 000000000000..3b5536ed6fbc
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mergedeep/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildPythonPackage, isPy27, fetchFromGitHub, pytest }:
+
+buildPythonPackage rec {
+  pname = "mergedeep";
+  version = "1.3.0";
+  disabled = isPy27;
+
+  # PyPI tarball doesn't include tests directory
+  src = fetchFromGitHub {
+    owner = "clarketm";
+    repo = "mergedeep";
+    rev = "v${version}";
+    sha256 = "1a0y26a04limiggjwqyyqpryxiylbqya74nq1bij75zhz42sa02b";
+  };
+
+  checkInputs = [ pytest ];
+  checkPhase = "pytest";
+  pythonImportsCheck = [ "mergedeep" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/clarketm/mergedeep";
+    description = "A deep merge function for python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ris ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/meshlabxml/default.nix b/nixpkgs/pkgs/development/python-modules/meshlabxml/default.nix
new file mode 100644
index 000000000000..c1091296d2e1
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/meshlabxml/default.nix
@@ -0,0 +1,29 @@
+{
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  lib,
+}:
+
+buildPythonPackage rec {
+  pname = "MeshLabXML";
+  version = "2018.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1villmg46hqby5jjkkpxr5bxydr72y5b3cbfngwpyxxdljn091w8";
+  };
+
+  propagatedBuildInputs = [ ];
+
+  doCheck = false; # Upstream not currently have any tests.
+
+  pythonImportsCheck = [ "meshlabxml" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/3DLIRIOUS/MeshLabXML";
+    description = "Create and run MeshLab XML scripts with Python";
+    license = licenses.lgpl21;
+    maintainers = with maintainers; [ nh2 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mido/default.nix b/nixpkgs/pkgs/development/python-modules/mido/default.nix
new file mode 100644
index 000000000000..8312ea783cb4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mido/default.nix
@@ -0,0 +1,39 @@
+{ stdenv, lib, buildPythonPackage, fetchPypi, substituteAll
+, portmidi, pygame, python-rtmidi, rtmidi-python
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "mido";
+  version = "1.2.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1k3sgkxc7j49bapib3b5jnircb1yhyyd8mi0mbfd78zgix9db9y4";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./libportmidi-cdll.patch;
+      libportmidi = "${portmidi.out}/lib/libportmidi${stdenv.targetPlatform.extensions.sharedLibrary}";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    pygame
+    python-rtmidi
+    rtmidi-python
+  ];
+
+  checkInputs = [ pytest ];
+  checkPhase = ''
+    py.test . -rs -q
+  '';
+
+  meta = with lib; {
+    description = "MIDI Objects for Python";
+    homepage = "https://mido.readthedocs.io";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mido/libportmidi-cdll.patch b/nixpkgs/pkgs/development/python-modules/mido/libportmidi-cdll.patch
new file mode 100644
index 000000000000..455064f12b9a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mido/libportmidi-cdll.patch
@@ -0,0 +1,19 @@
+diff --git a/mido/backends/portmidi_init.py b/mido/backends/portmidi_init.py
+index 84bb128..5efcdaa 100644
+--- a/mido/backends/portmidi_init.py
++++ b/mido/backends/portmidi_init.py
+@@ -10,13 +10,7 @@ from ctypes import (CDLL, CFUNCTYPE, POINTER, Structure, c_char_p,
+                     create_string_buffer, byref)
+ import ctypes.util
+ 
+-dll_name = ''
+-if sys.platform == 'darwin':
+-    dll_name = ctypes.util.find_library('libportmidi.dylib')
+-elif sys.platform in ('win32', 'cygwin'):
+-    dll_name = 'portmidi.dll'
+-else:
+-    dll_name = 'libportmidi.so'
++dll_name = '@libportmidi@'
+ 
+ lib = CDLL(dll_name)
+ 
diff --git a/nixpkgs/pkgs/development/python-modules/minio/default.nix b/nixpkgs/pkgs/development/python-modules/minio/default.nix
index 6fdc962cdb46..7799a7a9ef6d 100644
--- a/nixpkgs/pkgs/development/python-modules/minio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/minio/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "minio";
-  version = "5.0.10";
+  version = "6.0.0";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6ecb7637a35f806733e9d112eacfa599a58d7c3d4698fda2b5c86fff5d34b417";
+    sha256 = "97d275ff01ddae45101eced0d9d5258f2869308c949b17d86a77b77a2a50b7b3";
   };
 
   propagatedBuildInputs = [
@@ -29,6 +29,8 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [ faker mock nose pytestCheckHook ];
+  # example credentials aren't present
+  pytestFlagsArray = [ "--ignore=tests/unit/credentials_test.py" ];
 
   meta = with lib; {
     description = "Simple APIs to access any Amazon S3 compatible object storage server";
diff --git a/nixpkgs/pkgs/development/python-modules/mistletoe/default.nix b/nixpkgs/pkgs/development/python-modules/mistletoe/default.nix
new file mode 100644
index 000000000000..29666254e7f0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mistletoe/default.nix
@@ -0,0 +1,22 @@
+{ lib
+, isPy3k
+, fetchPypi
+, buildPythonPackage }:
+
+buildPythonPackage rec {
+  pname = "mistletoe";
+  version = "0.7.2";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "18z6hqfnfjqnrcgfgl5pkj9ggf9yx0yyy94azcn1qf7hqn6g3l14";
+  };
+
+  meta = with lib; {
+    description = "A fast, extensible Markdown parser in pure Python.";
+    homepage = "https://github.com/miyuchina/mistletoe";
+    license = licenses.mit;
+    maintainers = with maintainers; [ eadwu ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix b/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix
new file mode 100644
index 000000000000..cb5b5cc80f5b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mitmproxy/default.nix
@@ -0,0 +1,121 @@
+{ stdenv
+, fetchFromGitHub
+, buildPythonPackage
+, isPy27
+, fetchpatch
+# Mitmproxy requirements
+, blinker
+, brotli
+, certifi
+, click
+, cryptography
+, flask
+, h2
+, hyperframe
+, kaitaistruct
+, ldap3
+, passlib
+, protobuf
+, pyasn1
+, pyopenssl
+, pyparsing
+, pyperclip
+, ruamel_yaml
+, setuptools
+, sortedcontainers
+, tornado
+, urwid
+, wsproto
+, publicsuffix2
+, zstandard
+# Additional check requirements
+, beautifulsoup4
+, glibcLocales
+, pytest
+, requests
+, asynctest
+, parver
+, pytest-asyncio
+, hypothesis
+}:
+
+buildPythonPackage rec {
+  pname = "mitmproxy";
+  version = "5.2";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner  = pname;
+    repo   = pname;
+    rev    = "v${version}";
+    sha256 = "0ja0aqnfmkvns5qmd51hmrvbw8dnccaks30gxgzgcjgy30rj4brq";
+  };
+
+  patches = [
+    # Apply patch from upstream to make mitmproxy v5.2 compatible with urwid >v2.1.0
+    (fetchpatch {
+      name = "urwid-lt-2.1.0.patch";
+      url = "https://github.com/mitmproxy/mitmproxy/commit/ea9177217208fdf642ffc54f6b1f6507a199350c.patch";
+      sha256 = "1z5r8izg5nvay01ywl3xc6in1vjfi9f144j057p3k5rzfliv49gg";
+    })
+  ];
+
+  postPatch = ''
+    # remove dependency constraints
+    sed 's/>=\([0-9]\.\?\)\+\( \?, \?<\([0-9]\.\?\)\+\)\?//' -i setup.py
+  '';
+
+  doCheck = (!stdenv.isDarwin);
+
+  checkPhase = ''
+    export HOME=$(mktemp -d)
+    pytest -k 'not test_get_version' # expects a Git repository
+  '';
+
+  propagatedBuildInputs = [
+    setuptools
+    # setup.py
+    blinker
+    brotli
+    certifi
+    click
+    cryptography
+    flask
+    h2
+    hyperframe
+    kaitaistruct
+    ldap3
+    passlib
+    protobuf
+    publicsuffix2
+    pyasn1
+    pyopenssl
+    pyparsing
+    pyperclip
+    ruamel_yaml
+    sortedcontainers
+    tornado
+    urwid
+    wsproto
+    zstandard
+  ];
+
+  checkInputs = [
+    asynctest
+    beautifulsoup4
+    flask
+    glibcLocales
+    hypothesis
+    parver
+    pytest
+    pytest-asyncio
+    requests
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Man-in-the-middle proxy";
+    homepage    = "https://mitmproxy.org/";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ fpletz kamilchm ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mlflow/default.nix b/nixpkgs/pkgs/development/python-modules/mlflow/default.nix
index 5aaeb09b894d..1acd8bf56907 100644
--- a/nixpkgs/pkgs/development/python-modules/mlflow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mlflow/default.nix
@@ -25,12 +25,12 @@
 
 buildPythonPackage rec {
   pname = "mlflow";
-  version = "1.4.0";
+  version = "1.10.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9116d82be380c32fa465049d14b217c4c200ad11614f4c6674e6b524b2935206";
+    sha256 = "11fe050373f3dbd422aa476c42cb0ed15467268bc1ad07e221e550bc54f94b75";
   };
 
   # run into https://stackoverflow.com/questions/51203641/attributeerror-module-alembic-context-has-no-attribute-config
@@ -66,5 +66,7 @@ buildPythonPackage rec {
     description = "Open source platform for the machine learning lifecycle";
     license = licenses.asl20;
     maintainers = with maintainers; [ tbenst ];
+    # missing prometheus-flask-exporter, not packaged in nixpkgs
+    broken = true; # 2020-08-15
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/mmh3/default.nix b/nixpkgs/pkgs/development/python-modules/mmh3/default.nix
new file mode 100644
index 000000000000..8ac241880039
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mmh3/default.nix
@@ -0,0 +1,23 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+}:
+
+buildPythonPackage rec {
+  pname = "mmh3";
+  version = "2.5.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0265pvfbcsijf51szsh14qk3l3zgs0rb5rbrw11zwan52yi0jlhq";
+  };
+
+  pythonImportsCheck = [ "mmh3" ];
+
+  meta = with lib; {
+    description = "Python wrapper for MurmurHash3, a set of fast and robust hash functions";
+    homepage = "https://pypi.org/project/mmh3/";
+    license = licenses.cc0;
+    maintainers = [ maintainers.danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mock-open/default.nix b/nixpkgs/pkgs/development/python-modules/mock-open/default.nix
index 449430a593d1..391ba29a98c8 100644
--- a/nixpkgs/pkgs/development/python-modules/mock-open/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mock-open/default.nix
@@ -1,17 +1,24 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, mock }:
+{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch, pythonOlder, mock }:
 
 buildPythonPackage rec {
   pname = "mock-open";
-  version = "1.3.1";
+  version = "1.4.0";
 
   # no tests in PyPI tarball
   src = fetchFromGitHub {
     owner = "nivbend";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ikhrhlkl5c7qbigpsv44jw89ws1z7j06gzyg5dh1ki533ifbjm2";
+    sha256 = "0qlz4y8jqxsnmqg03yp9f87rmnjrvmxm5qvm6n1218gm9k5dixbm";
   };
 
+  patches = lib.optional (pythonOlder "3.0")
+    (fetchpatch {
+      name = "ascii-only.patch";
+      url = "https://github.com/das-g/mock-open/commit/521ff260da127949fe4aceff1667cba223c5b07b.patch";
+      sha256 = "0ampbhk7kwkn0q5d2h9wrflkr8fji2bybmdck4qdzw1qkslfwwrn";
+    });
+
   propagatedBuildInputs = lib.optional (pythonOlder "3.3") mock;
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/mock/2.nix b/nixpkgs/pkgs/development/python-modules/mock/2.nix
index 9ab8de1ba503..190297b41a2d 100644
--- a/nixpkgs/pkgs/development/python-modules/mock/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/mock/2.nix
@@ -41,4 +41,4 @@ buildPythonPackage rec {
     license = licenses.bsd2;
   };
 
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mocket/default.nix b/nixpkgs/pkgs/development/python-modules/mocket/default.nix
new file mode 100644
index 000000000000..234fdbebc00b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mocket/default.nix
@@ -0,0 +1,45 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder, isPy27
+, decorator
+, http-parser
+, importlib-metadata
+, python
+, python_magic
+, six
+, urllib3 }:
+
+buildPythonPackage rec {
+  pname = "mocket";
+  version = "3.9.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1n1h9xbi1my0vgjsh7mfkd51qfa6imjzxnwqccsvshqa8grcv1wm";
+  };
+
+  patchPhase = ''
+    substituteInPlace requirements.txt \
+      --replace "python-magic==0.4.18" "python-magic" \
+      --replace "urllib3==1.25.10" "urllib3"
+    substituteInPlace setup.py --replace 'setup_requires=["pipenv"]' "setup_requires=[]"
+  '';
+
+  propagatedBuildInputs = [
+    decorator
+    http-parser
+    python_magic
+    urllib3
+    six
+  ] ++ lib.optionals (isPy27) [ six ];
+
+  # Pypi has no runtests.py, github has no requirements.txt. No way to test, no way to install.
+  doCheck = false;
+
+  pythonImportsCheck = [ "mocket" ];
+
+  meta = with lib; {
+    description = "A socket mock framework - for all kinds of socket animals, web-clients included";
+    homepage = "https://github.com/mindflayer/python-mocket";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mohawk/default.nix b/nixpkgs/pkgs/development/python-modules/mohawk/default.nix
new file mode 100644
index 000000000000..e260bb7b54a3
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mohawk/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildPythonPackage, fetchPypi, python, mock, nose, pytest, six }:
+
+with lib;
+buildPythonPackage rec {
+  pname = "mohawk";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "08wppsv65yd0gdxy5zwq37yp6jmxakfz4a2yx5wwq2d222my786j";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  checkInputs = [ mock nose pytest ];
+
+  checkPhase = ''
+    pytest mohawk/tests.py
+  '';
+
+  meta = {
+    description = "Python library for Hawk HTTP authorization.";
+    homepage = "https://github.com/kumar303/mohawk";
+    license = licenses.mpl20;
+    maintainers = [ ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/more-itertools/default.nix b/nixpkgs/pkgs/development/python-modules/more-itertools/default.nix
index cd128fb21649..ec6ce4ed3b26 100644
--- a/nixpkgs/pkgs/development/python-modules/more-itertools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/more-itertools/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "more-itertools";
-  version = "8.0.2";
+  version = "8.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b84b238cce0d9adad5ed87e745778d20a3f8487d0f0cb8b8a586816c7496458d";
+    sha256 = "68c70cc7167bdf5c7c9d8f6954a7837089c6a36bf565383919bb595efb8a17e5";
   };
 
   checkInputs = [ nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/morphys/default.nix b/nixpkgs/pkgs/development/python-modules/morphys/default.nix
index 8f8525f7afe9..b89055829ef8 100644
--- a/nixpkgs/pkgs/development/python-modules/morphys/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/morphys/default.nix
@@ -21,4 +21,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ rakesh4g ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/moto/default.nix b/nixpkgs/pkgs/development/python-modules/moto/default.nix
index 0d45103a2952..3efc09bc0017 100644
--- a/nixpkgs/pkgs/development/python-modules/moto/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/moto/default.nix
@@ -23,6 +23,7 @@
 , werkzeug
 , xmltodict
 , parameterized
+, idna
 }:
 
 buildPythonPackage rec {
@@ -40,6 +41,14 @@ buildPythonPackage rec {
     sed -i '/datetime/d' setup.py # should be taken care of by std library
   '';
 
+  patches = [
+    # loosen idna upper limit
+    (fetchpatch {
+      url = "https://github.com/spulec/moto/commit/649b497f71cce95a6474a3ff6f3c9c3339efb68f.patch";
+      sha256 = "03qdybzlskgbdadmlcg6ayxfp821b5iaa8q2542cwkcq7msqbbqc";
+    })
+  ];
+
   propagatedBuildInputs = [
     aws-xray-sdk
     boto
@@ -60,6 +69,7 @@ buildPythonPackage rec {
     sshpubkeys
     werkzeug
     xmltodict
+    idna
   ] ++ lib.optionals isPy27 [ backports_tempfile ];
 
   checkInputs = [ boto3 freezegun nose sure parameterized ];
diff --git a/nixpkgs/pkgs/development/python-modules/mox3/default.nix b/nixpkgs/pkgs/development/python-modules/mox3/default.nix
index bdbccc790cfd..70b982ef4b86 100644
--- a/nixpkgs/pkgs/development/python-modules/mox3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mox3/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , python
 , subunit
 , testrepository
@@ -13,11 +14,12 @@
 
 buildPythonPackage rec {
   pname = "mox3";
-  version = "0.28.0";
+  version = "1.1.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17d4vglb71s96hhi6d30vnkr7g1pahv95igc4sjv857qf278d540";
+    sha256 = "8a526b7b9b6341f541a9aef3e08c93fd84a5373fe89d4cc51dd571f085b2363c";
   };
 
   buildInputs = [ subunit testrepository testtools six ];
diff --git a/nixpkgs/pkgs/development/python-modules/mpv/default.nix b/nixpkgs/pkgs/development/python-modules/mpv/default.nix
index e79f16b1c3b7..6dab88e0286c 100644
--- a/nixpkgs/pkgs/development/python-modules/mpv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mpv/default.nix
@@ -4,14 +4,14 @@
 
 buildPythonPackage rec {
   pname = "mpv";
-  version = "0.4.6";
+  version = "0.4.7";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "jaseg";
     repo = "python-mpv";
     rev = "v${version}";
-    sha256 = "1fh0fdv0k2yz7l6a62hf2svpgz34dzn84sh8fnv2x7wrkwd6r8qn";
+    sha256 = "1gq2ynzbpmc7bv066ddv2f4rnmvfsi7034vhf9ffp7yzbixf6ys8";
   };
 
   buildInputs = [ mpv ];
diff --git a/nixpkgs/pkgs/development/python-modules/msal-extensions/default.nix b/nixpkgs/pkgs/development/python-modules/msal-extensions/default.nix
index c866382b1033..6f3a8b89245c 100644
--- a/nixpkgs/pkgs/development/python-modules/msal-extensions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msal-extensions/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "msal-extensions";
-  version = "0.1.3";
+  version = "0.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1p05cbfksnhijx1il7s24js2ydzgxbpiasf607qdpb5sljlp3qar";
+    sha256 = "31414753c484679bb3b6c6401623eb4c3ccab630af215f2f78c1d5c4f8e1d1a9";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/msal/default.nix b/nixpkgs/pkgs/development/python-modules/msal/default.nix
index 705ae9b61ccb..a75560e3b556 100644
--- a/nixpkgs/pkgs/development/python-modules/msal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msal/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "msal";
-  version = "1.2.0";
+  version = "1.4.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0pqprfgcsns89gmlm284zcvqnlsn3a5c46n1p33kdk53gyyym66y";
+    sha256 = "51b8e8e0d918d9b4813f006324e7c4e21eb76268dd4c1a06d811a3475ad4ac57";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/msgpack-numpy/default.nix b/nixpkgs/pkgs/development/python-modules/msgpack-numpy/default.nix
index 9be30fff5383..d380f18f7729 100644
--- a/nixpkgs/pkgs/development/python-modules/msgpack-numpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msgpack-numpy/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "msgpack-numpy";
-  version = "0.4.6.post0";
+  version = "0.4.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dfcb0c9cb5850e656344ac464a260e7b8b9b1c62d77c2e1d3d9ef15a88f1df6b";
+    sha256 = "9f9b57abb2b155c2d3e411c2dd5b98f14998bd053a20c6ed0ab64a6ceb8ad51d";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/msrest/default.nix b/nixpkgs/pkgs/development/python-modules/msrest/default.nix
index b415537106eb..14ed57457b29 100644
--- a/nixpkgs/pkgs/development/python-modules/msrest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msrest/default.nix
@@ -18,7 +18,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.6.13";
+  version = "0.6.18";
   pname = "msrest";
 
   # no tests in PyPI tarball
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "Azure";
     repo = "msrest-for-python";
     rev = "v${version}";
-    sha256 = "1s34xp6wgas17mbg6ysciqlgb3qc2p2d5bs9brwr05ys62l6y8cz";
+    sha256 = "0j0dbca47qnxnhpfgj3v5bglg8dpx2cy1psix8kp3ldrkf6rjwdb";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/msrestazure/default.nix b/nixpkgs/pkgs/development/python-modules/msrestazure/default.nix
index a97469e8073a..96c546e5d355 100644
--- a/nixpkgs/pkgs/development/python-modules/msrestazure/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/msrestazure/default.nix
@@ -12,7 +12,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.6.3";
+  version = "0.6.4";
   pname = "msrestazure";
 
   # Pypi tarball doesnt include tests
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Azure";
     repo = "msrestazure-for-python";
     rev = "v${version}";
-    sha256 = "0pd3qw96c9fz4qgimnc0qf0pz7m9rr1wzhxj8m792swaf3pb18z8";
+    sha256 = "0ik81f0n6r27f02gblgm0vl5zl3wc6ijsscihgvc1fgm9f5mk5b5";
   };
 
   propagatedBuildInputs = [ adal msrest ];
diff --git a/nixpkgs/pkgs/development/python-modules/mss/default.nix b/nixpkgs/pkgs/development/python-modules/mss/default.nix
new file mode 100644
index 000000000000..1604a006567e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mss/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchPypi, isPy3k }:
+
+buildPythonPackage rec {
+  pname = "mss";
+  version = "6.0.0";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0dicp55adbqxb7hqlck95hngb1klv5s26lszw3xim30k18bwqaxl";
+  };
+
+  propagatedBuildInputs = [ ];
+
+  # By default it attempts to build Windows-only functionality
+  prePatch = ''
+    rm mss/windows.py
+  '';
+
+  # Skipping tests due to most relying on DISPLAY being set
+  pythonImportsCheck = [ "mss" ];
+
+  meta = with lib; {
+    description = "Cross-platform multiple screenshots module in pure Python";
+    homepage = "https://github.com/BoboTiG/mss/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ austinbutler ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mt-940/default.nix b/nixpkgs/pkgs/development/python-modules/mt-940/default.nix
index c41b472a6938..e16992929442 100644
--- a/nixpkgs/pkgs/development/python-modules/mt-940/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mt-940/default.nix
@@ -3,22 +3,26 @@
 }:
 
 buildPythonPackage rec {
-  version = "4.19.0";
+  version = "4.23.0";
   pname = "mt-940";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5d109e8dc4b490a4b92ec0153713710eb067b36b350ce1ff60c406afddc7d3cd";
+    sha256 = "9274bc8298b2d4b69cb3936bdcda315b50e45975789f519a237bdec58346b8d7";
   };
 
   propagatedBuildInputs = lib.optional (!isPy3k) enum34;
 
   checkInputs = [ pyyaml pytest ];
 
+  # requires tests files that are not present
+  doCheck = false;
   checkPhase = ''
     py.test
   '';
 
+  pythonImportsCheck = [ "mt940" ];
+
   meta = with lib; {
     description = "A library to parse MT940 files and returns smart Python collections for statistics and manipulation";
     homepage = "https://github.com/WoLpH/mt940";
diff --git a/nixpkgs/pkgs/development/python-modules/multitasking/default.nix b/nixpkgs/pkgs/development/python-modules/multitasking/default.nix
new file mode 100644
index 000000000000..8ea4d633f662
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/multitasking/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "multitasking";
+  version = "0.0.9";
+
+  # GitHub source releases aren't tagged
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "b59d99f709d2e17d60ccaa2be09771b6e9ed9391c63f083c0701e724f624d2e0";
+  };
+
+  doCheck = false;  # No tests included
+  pythonImportsCheck = [ "multitasking" ];
+
+  meta = with lib; {
+    description = "Non-blocking Python methods using decorators";
+    homepage = "https://github.com/ranaroussi/multitasking";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ drewrisinger ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mutagen/1.43.nix b/nixpkgs/pkgs/development/python-modules/mutagen/1.43.nix
new file mode 100644
index 000000000000..a7a7c7c66049
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mutagen/1.43.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, hypothesis
+, pycodestyle
+, pyflakes
+, pytest
+, setuptools
+, pkgs
+}:
+
+buildPythonPackage rec {
+  pname = "mutagen";
+  version = "1.43.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "d873baeb7815311d3420aab0a1d83f050f628228cbc2d6045a14a16460411bc9";
+  };
+
+  propagatedBuildInputs = [ setuptools ];
+  checkInputs = [
+    pkgs.faad2 pkgs.flac pkgs.vorbis-tools pkgs.liboggz
+    pkgs.glibcLocales pycodestyle pyflakes pytest hypothesis
+  ];
+  LC_ALL = "en_US.UTF-8";
+
+  meta = with lib; {
+    description = "Python multimedia tagging library";
+    homepage = "https://mutagen.readthedocs.io";
+    license = licenses.lgpl2Plus;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mutagen/default.nix b/nixpkgs/pkgs/development/python-modules/mutagen/default.nix
index 304aeead76ff..df0872242a17 100644
--- a/nixpkgs/pkgs/development/python-modules/mutagen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mutagen/default.nix
@@ -1,7 +1,9 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , fetchpatch
+, flake8
 , hypothesis
 , pycodestyle
 , pyflakes
@@ -12,17 +14,18 @@
 
 buildPythonPackage rec {
   pname = "mutagen";
-  version = "1.43.0";
+  version = "1.45.1";
+  disabled = isPy27; # abandoned
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3a982d39f1b800520a32afdebe3543f972e83a6ddd0c0198739a161ee705b588";
+    sha256 = "6397602efb3c2d7baebd2166ed85731ae1c1d475abca22090b7141ff5034b3e1";
   };
 
   propagatedBuildInputs = [ setuptools ];
   checkInputs = [
     pkgs.faad2 pkgs.flac pkgs.vorbis-tools pkgs.liboggz
-    pkgs.glibcLocales pycodestyle pyflakes pytest hypothesis
+    pkgs.glibcLocales pycodestyle pyflakes pytest hypothesis flake8
   ];
   LC_ALL = "en_US.UTF-8";
 
diff --git a/nixpkgs/pkgs/development/python-modules/mutatormath/default.nix b/nixpkgs/pkgs/development/python-modules/mutatormath/default.nix
new file mode 100644
index 000000000000..9336dbf354af
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/mutatormath/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonPackage, fetchPypi
+, defcon, fontmath
+, unicodedata2, fs
+}:
+
+buildPythonPackage rec {
+  pname = "MutatorMath";
+  version = "3.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0r1qq45np49x14zz1zwkaayqrn7m8dn2jlipjldg2ihnmpzw29w1";
+    extension = "zip";
+  };
+
+  propagatedBuildInputs = [ fontmath unicodedata2 defcon ];
+  checkInputs = [ unicodedata2 fs ];
+
+  meta = with lib; {
+    description = "Piecewise linear interpolation in multiple dimensions with multiple, arbitrarily placed, masters";
+    homepage = "https://github.com/LettError/MutatorMath";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/mwclient/default.nix b/nixpkgs/pkgs/development/python-modules/mwclient/default.nix
index b26a3f948c8a..2744ff9a277c 100644
--- a/nixpkgs/pkgs/development/python-modules/mwclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mwclient/default.nix
@@ -4,14 +4,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.10.0";
+  version = "0.10.1";
   pname = "mwclient";
 
   src = fetchFromGitHub {
     owner = "mwclient";
     repo = "mwclient";
     rev = "v${version}";
-    sha256 = "1c3q6lwmb05yqywc4ya98ca7hsl15niili8rccl4n1yqp77c103v";
+    sha256 = "120snnsh9n5svfwkyj1w9jrxf99jnqm0jk282yypd3lpyca1l9hj";
   };
 
   checkInputs = [ pytest pytestpep8 pytestcache pytestcov responses mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/mwoauth/default.nix b/nixpkgs/pkgs/development/python-modules/mwoauth/default.nix
index 94a85d41d9e7..0a73e99391e2 100644
--- a/nixpkgs/pkgs/development/python-modules/mwoauth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mwoauth/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
 
   # package has no tests
   doCheck = false;
-  
+
   propagatedBuildInputs = [ six pyjwt requests oauthlib requests_oauthlib ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/myfitnesspal/default.nix b/nixpkgs/pkgs/development/python-modules/myfitnesspal/default.nix
index 14834923954f..53e5f8253449 100644
--- a/nixpkgs/pkgs/development/python-modules/myfitnesspal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/myfitnesspal/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "myfitnesspal";
-  version = "1.13.4";
+  version = "1.16.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "552cc696e170f12f75fd12b1447be01fa2d0bfd85e14da5928afd9aab2277b98";
+    sha256 = "c2275e91c794a3569a76c47c78cf2ff04d7f569a98558227e899ead7b30af0d6";
   };
 
   # Remove overly restrictive version constraints on keyring and keyrings.alt
diff --git a/nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix b/nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix
index 5cc192313acd..3e0ab2cf1820 100644
--- a/nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mypy-protobuf/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonApplication rec {
   pname = "mypy-protobuf";
-  version = "1.20";
+  version = "1.23";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03j2i9vhpdxbvwlqg6zghlzzq46s1x2jbx20fwninb6kss0ps3rg";
+    sha256 = "cf79c77e828a2de9bdc74b43ad4abd4c2a3a30f0471b46e9b4e01b9877f166fb";
   };
 
   propagatedBuildInputs = [ protobuf ];
diff --git a/nixpkgs/pkgs/development/python-modules/mypy/default.nix b/nixpkgs/pkgs/development/python-modules/mypy/default.nix
index bcd0ab4a6c62..0bcf216fa46f 100644
--- a/nixpkgs/pkgs/development/python-modules/mypy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mypy/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "mypy";
-  version = "0.770";
+  version = "0.782";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bm40nx9g1n4nj1309cijnh0ns4qbhym3agyl537nc4vxw3paqla";
+    sha256 = "030kn709515452n6gy2i1d9fg6fyrkmdz228lfpmbslybsld9xzg";
   };
 
   propagatedBuildInputs = [ typed-ast psutil mypy-extensions typing-extensions ];
diff --git a/nixpkgs/pkgs/development/python-modules/mysql-connector/default.nix b/nixpkgs/pkgs/development/python-modules/mysql-connector/default.nix
index 5850d7e67b03..11777dbf9e67 100644
--- a/nixpkgs/pkgs/development/python-modules/mysql-connector/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mysql-connector/default.nix
@@ -4,13 +4,13 @@ let
   py = python;
 in buildPythonPackage rec {
   pname = "mysql-connector";
-  version = "8.0.20";
+  version = "8.0.21";
 
   src = fetchFromGitHub {
     owner = "mysql";
     repo = "mysql-connector-python";
     rev = version;
-    sha256 = "1pm98mjbkhwawhni98cjhp0gg3mim75i0sdby77vzrlcrxajxkbw";
+    sha256 = "0ky7rn9259807gji3fhvkmdmrgyaps431l9l9y6gh66i84kw1b3l";
   };
 
   propagatedBuildInputs = with py.pkgs; [ protobuf dnspython ];
diff --git a/nixpkgs/pkgs/development/python-modules/mysqlclient/default.nix b/nixpkgs/pkgs/development/python-modules/mysqlclient/default.nix
index 72bf06893edd..0d4aa5423256 100644
--- a/nixpkgs/pkgs/development/python-modules/mysqlclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/mysqlclient/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "mysqlclient";
-  version = "1.4.6";
+  version = "2.0.1";
 
   nativeBuildInputs = [
     libmysqlclient
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f3fdaa9a38752a3b214a6fe79d7cae3653731a53e577821f9187e67cbecb2e16";
+    sha256 = "fb2f75aea14722390d2d8ddf384ad99da708c707a96656210a7be8af20a2c5e5";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/nassl/default.nix b/nixpkgs/pkgs/development/python-modules/nassl/default.nix
new file mode 100644
index 000000000000..0df4b0218b59
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/nassl/default.nix
@@ -0,0 +1,120 @@
+{ lib
+, fetchFromGitHub
+, fetchurl
+, buildPythonPackage
+, pkgsStatic
+, openssl
+, invoke
+, pytest
+, tls-parser
+, cacert
+}:
+
+let
+  zlibStatic = pkgsStatic.zlib;
+  nasslOpensslArgs = {
+    static = true;
+    enableSSL2 = true;
+  };
+  nasslOpensslFlagsCommon = [
+    "zlib"
+    "no-zlib-dynamic"
+    "no-shared"
+    "--with-zlib-lib=${zlibStatic.out}/lib"
+    "--with-zlib-include=${zlibStatic.out.dev}/include"
+    "enable-rc5"
+    "enable-md2"
+    "enable-gost"
+    "enable-cast"
+    "enable-idea"
+    "enable-ripemd"
+    "enable-mdc2"
+    "-fPIC"
+  ];
+  opensslStatic = (openssl.override nasslOpensslArgs).overrideAttrs (
+    oldAttrs: rec {
+      name = "openssl-${version}";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://www.openssl.org/source/${name}.tar.gz";
+        sha256 = "0gbab2fjgms1kx5xjvqx8bxhr98k4r8l2fa8vw7kvh491xd8fdi8";
+      };
+      configureFlags = oldAttrs.configureFlags ++ nasslOpensslFlagsCommon ++ [
+        "enable-weak-ssl-ciphers"
+        "enable-tls1_3"
+        "no-async"
+      ];
+      patches = [ ./nix-ssl-cert-file.patch ];
+      buildInputs = oldAttrs.buildInputs ++ [ zlibStatic cacert ];
+    }
+  );
+  opensslLegacyStatic = (openssl.override nasslOpensslArgs).overrideAttrs (
+    oldAttrs: rec {
+      name = "openssl-${version}";
+      version = "1.0.2e";
+      src = fetchurl {
+        url = "https://www.openssl.org/source/${name}.tar.gz";
+        sha256 = "1zqb1rff1wikc62a7vj5qxd1k191m8qif5d05mwdxz2wnzywlg72";
+      };
+      configureFlags = oldAttrs.configureFlags ++ nasslOpensslFlagsCommon;
+      patches = [ ];
+      buildInputs = oldAttrs.buildInputs ++ [ zlibStatic ];
+      # openssl_1_0_2 needs `withDocs = false`
+      outputs = lib.remove "doc" oldAttrs.outputs;
+    }
+  );
+in
+buildPythonPackage rec {
+  pname = "nassl";
+  version = "3.0.0";
+
+  src = fetchFromGitHub {
+    owner = "nabla-c0d3";
+    repo = pname;
+    rev = version;
+    sha256 = "1dhgkpldadq9hg5isb6mrab7z80sy5bvzad2fb54pihnknfwhp8z";
+  };
+
+  postPatch = ''
+    mkdir -p deps/openssl-OpenSSL_1_0_2e/
+    cp ${opensslLegacyStatic.out}/lib/libssl.a \
+      ${opensslLegacyStatic.out}/lib/libcrypto.a \
+      deps/openssl-OpenSSL_1_0_2e/
+    ln -s ${opensslLegacyStatic.out.dev}/include deps/openssl-OpenSSL_1_0_2e/include
+    ln -s ${opensslLegacyStatic.bin}/bin deps/openssl-OpenSSL_1_0_2e/apps
+
+    mkdir -p deps/openssl-OpenSSL_1_1_1/
+    cp ${opensslStatic.out}/lib/libssl.a \
+      ${opensslStatic.out}/lib/libcrypto.a \
+      deps/openssl-OpenSSL_1_1_1/
+    ln -s ${opensslStatic.out.dev}/include deps/openssl-OpenSSL_1_1_1/include
+    ln -s ${opensslStatic.bin}/bin deps/openssl-OpenSSL_1_1_1/apps
+
+    mkdir -p deps/zlib-1.2.11/
+    cp ${zlibStatic.out}/lib/libz.a deps/zlib-1.2.11/
+  '';
+
+  propagatedBuildInputs = [ tls-parser ];
+
+  nativeBuildInputs = [ invoke ];
+
+  buildPhase = ''
+    invoke build.nassl
+    invoke package.wheel
+  '';
+
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    # Skip online tests
+    pytest -k 'not Online'
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/nabla-c0d3/nassl";
+    description = "Low-level OpenSSL wrapper for Python 3.7+";
+    platforms = with platforms; linux ++ darwin;
+    license = licenses.agpl3;
+    maintainers = with maintainers; [ veehaitch ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/nassl/nix-ssl-cert-file.patch b/nixpkgs/pkgs/development/python-modules/nassl/nix-ssl-cert-file.patch
new file mode 100644
index 000000000000..893fb3eb6643
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/nassl/nix-ssl-cert-file.patch
@@ -0,0 +1,14 @@
+diff -ru -x '*~' openssl-1.0.2j-orig/crypto/x509/by_file.c openssl-1.0.2j/crypto/x509/by_file.c
+--- openssl-1.0.2j-orig/crypto/x509/by_file.c	2016-09-26 11:49:07.000000000 +0200
++++ openssl-1.0.2j/crypto/x509/by_file.c	2016-10-13 16:54:31.400288302 +0200
+@@ -97,7 +97,9 @@
+     switch (cmd) {
+     case X509_L_FILE_LOAD:
+         if (argl == X509_FILETYPE_DEFAULT) {
+-            file = getenv(X509_get_default_cert_file_env());
++            file = getenv("NIX_SSL_CERT_FILE");
++            if (!file)
++                file = getenv(X509_get_default_cert_file_env());
+             if (file)
+                 ok = (X509_load_cert_crl_file(ctx, file,
+                                               X509_FILETYPE_PEM) != 0);
diff --git a/nixpkgs/pkgs/development/python-modules/natsort/default.nix b/nixpkgs/pkgs/development/python-modules/natsort/default.nix
index 3df8ce7c5ba6..bfe486e1a54a 100644
--- a/nixpkgs/pkgs/development/python-modules/natsort/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/natsort/default.nix
@@ -8,11 +8,12 @@
 , hypothesis
 , glibcLocales
 , pathlib ? null
+, isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "natsort";
-  version = "6.2.1";
+  version = "7.0.1";
 
   checkInputs = [
     pytest
@@ -26,9 +27,12 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c5944ffd2343141fa5679b17991c398e15105f3b35bb11beefe66c67e08289d5";
+    sha256 = "a633464dc3a22b305df0f27abcb3e83515898aa1fd0ed2f9726c3571a27258cf";
   };
 
+  # Does not support Python 2
+  disabled = !isPy3k;
+
   # testing based on project's tox.ini
   # natsort_keygen has pytest mock issues
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/nbclient/default.nix b/nixpkgs/pkgs/development/python-modules/nbclient/default.nix
new file mode 100644
index 000000000000..f6009bf5003d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/nbclient/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi, pythonOlder,
+  async_generator, traitlets, nbformat, nest-asyncio, jupyter_client,
+  pytest, xmltodict, nbconvert, ipywidgets
+}:
+
+buildPythonPackage rec {
+  pname = "nbclient";
+  version = "0.4.3";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "311e14e463a300239c558a95023f6d1007c3f69f589bd51a76b1b6b3f19a7f4b";
+  };
+
+  checkInputs = [ pytest xmltodict nbconvert ipywidgets ];
+  propagatedBuildInputs = [ async_generator traitlets nbformat nest-asyncio jupyter_client ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/jupyter/nbclient";
+    description = "A client library for executing notebooks";
+    license = licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/nbconflux/default.nix b/nixpkgs/pkgs/development/python-modules/nbconflux/default.nix
index 2ca203e65acc..e86119036b5c 100644
--- a/nixpkgs/pkgs/development/python-modules/nbconflux/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbconflux/default.nix
@@ -3,22 +3,22 @@
 buildPythonPackage rec {
   pname = "nbconflux";
   version = "0.7.0";
-  
+
   src = fetchFromGitHub {
     owner = "Valassis-Digital-Media";
     repo = "nbconflux";
     rev = version;
     sha256 = "1708qkb275d6f7b4b5zmqx3i0jh56nrx2n9rwwp5nbaah5p2wwlh";
   };
-    
+
   propagatedBuildInputs = [ nbconvert requests ];
-  
+
   checkInputs = [ pytest responses ];
-  
+
   checkPhase = ''
     pytest tests
   '';
-  
+
   meta = with lib; {
     description = "Converts Jupyter Notebooks to Atlassian Confluence (R) pages using nbconvert";
     homepage = "https://github.com/Valassis-Digital-Media/nbconflux";
diff --git a/nixpkgs/pkgs/development/python-modules/nbformat/default.nix b/nixpkgs/pkgs/development/python-modules/nbformat/default.nix
index 2f8c57e00338..0c75fc4ac5ac 100644
--- a/nixpkgs/pkgs/development/python-modules/nbformat/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbformat/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "nbformat";
-  version = "5.0.6";
+  version = "5.0.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "049af048ed76b95c3c44043620c17e56bc001329e07f83fec4f177f0e3d7b757";
+    sha256 = "54d4d6354835a936bad7e8182dcd003ca3dc0cedfee5a306090e04854343b340";
   };
 
   LC_ALL="en_US.utf8";
diff --git a/nixpkgs/pkgs/development/python-modules/nbsphinx/default.nix b/nixpkgs/pkgs/development/python-modules/nbsphinx/default.nix
index 06a210db6c47..f46322954f36 100644
--- a/nixpkgs/pkgs/development/python-modules/nbsphinx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbsphinx/default.nix
@@ -8,15 +8,16 @@
 , sphinx
 , traitlets
 , python
+, isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "nbsphinx";
-  version = "0.5.1";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0kh0d83xavpffdp4xp4hq8xy43l6lyv3d1a25rnc15jcbdf1nghw";
+    sha256 = "0j56bxdj08vn3q1804qwb1ywhga1mdg1awgm7i64wfpfwi8df2zm";
   };
 
   propagatedBuildInputs = [
@@ -32,6 +33,8 @@ buildPythonPackage rec {
     ${python.interpreter} -m nbsphinx
   '';
 
+  disabled = !isPy3k;
+
   meta = with lib; {
     description = "Jupyter Notebook Tools for Sphinx";
     homepage = "https://nbsphinx.readthedocs.io/";
diff --git a/nixpkgs/pkgs/development/python-modules/nbval/default.nix b/nixpkgs/pkgs/development/python-modules/nbval/default.nix
index 41f5425317d6..198f139b1128 100644
--- a/nixpkgs/pkgs/development/python-modules/nbval/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbval/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "nbval";
-  version = "0.9.5";
+  version = "0.9.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1xh2p7g5s5g06caaraf3dsz69bpj7dgw2h3ss67kci789aspnwp8";
+    sha256 = "cfefcd2ef66ee2d337d0b252c6bcec4023384eb32e8b9e5fcc3ac80ab8cd7d40";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/nbxmpp/default.nix b/nixpkgs/pkgs/development/python-modules/nbxmpp/default.nix
index 0f84486674e9..fb1945ddf427 100644
--- a/nixpkgs/pkgs/development/python-modules/nbxmpp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nbxmpp/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, buildPythonPackage, fetchzip, pyopenssl, python }:
+{ stdenv, buildPythonPackage, fetchzip, gobject-introspection, idna, libsoup, precis-i18n, pygobject3, pyopenssl }:
 
 let
   pname = "nbxmpp";
-  version = "0.6.10";
+  version = "1.0.2";
   name = "${pname}-${version}";
 in buildPythonPackage {
   inherit pname version;
@@ -11,16 +11,12 @@ in buildPythonPackage {
     name = "${name}.tar.bz2";
     url = "https://dev.gajim.org/gajim/python-nbxmpp/repository/archive.tar.bz2?"
         + "ref=${name}";
-    sha256 = "1w31a747mj9rvlp3n20z0fnvyvihphkgkyr22sk2kap3migw8vai";
+    sha256 = "1rhzsakqrybzq5j5b9400wjd14pncph47c1ggn5a6f3di03lk4az";
   };
 
-  propagatedBuildInputs = [ pyopenssl ];
-
-  checkPhase = ''
-    # Disable tests requiring networking
-    echo "" > test/unit/test_xmpp_transports_nb2.py
-    ${python.executable} test/runtests.py
-  '';
+  buildInputs = [ precis-i18n ];
+  checkInputs = [ gobject-introspection libsoup pygobject3 ];
+  propagatedBuildInputs = [ idna pyopenssl ];
 
   meta = with stdenv.lib; {
     homepage = "https://dev.gajim.org/gajim/python-nbxmpp";
diff --git a/nixpkgs/pkgs/development/python-modules/ncclient/default.nix b/nixpkgs/pkgs/development/python-modules/ncclient/default.nix
index ca0a9d34b3ec..203ffc656806 100644
--- a/nixpkgs/pkgs/development/python-modules/ncclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ncclient/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "ncclient";
-  version = "0.6.7";
+  version = "0.6.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "efdf3c868cd9f104d4e9fe4c233df78bfbbed4b3d78ba19dc27cec3cf6a63680";
+    sha256 = "0112f2ad41fb658f52446d870853a63691d69299c73c7351c520d38dbd8dc0c4";
   };
 
   checkInputs = [ nose rednose ];
diff --git a/nixpkgs/pkgs/development/python-modules/ndtypes/default.nix b/nixpkgs/pkgs/development/python-modules/ndtypes/default.nix
index 0d5923820d27..0a6e5635a4fa 100644
--- a/nixpkgs/pkgs/development/python-modules/ndtypes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ndtypes/default.nix
@@ -1,4 +1,6 @@
-{ buildPythonPackage
+{ stdenv
+, buildPythonPackage
+, python
 , numpy
 , libndtypes
 , isPy27
@@ -24,5 +26,14 @@ buildPythonPackage {
   postInstall = ''
     mkdir $out/include
     cp python/ndtypes/*.h $out/include
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    install_name_tool -add_rpath ${libndtypes}/lib $out/${python.sitePackages}/ndtypes/_ndtypes.*.so
+  '';
+
+  checkPhase = ''
+    pushd python
+    mv ndtypes _ndtypes
+    python test_ndtypes.py
+    popd
   '';
 }
diff --git a/nixpkgs/pkgs/development/python-modules/nest-asyncio/default.nix b/nixpkgs/pkgs/development/python-modules/nest-asyncio/default.nix
index 27c959cee0fb..993e5e413e4c 100644
--- a/nixpkgs/pkgs/development/python-modules/nest-asyncio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nest-asyncio/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.3.3";
+  version = "1.4.0";
   pname = "nest_asyncio";
   disabled = !(pythonAtLeast "3.5");
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "75dad56eaa7078e2e29c6630f114077fc5060069658d74545b0409e63ca8a028";
+    sha256 = "1j2rbb31wdq9k15cmj2y0kypzvfc3v05py1n0809nmqlpi5hawsp";
   };
 
   # tests not packaged with source dist as of 1.3.2/1.3.2, and
diff --git a/nixpkgs/pkgs/development/python-modules/netaddr/default.nix b/nixpkgs/pkgs/development/python-modules/netaddr/default.nix
index 200392c85f8a..95f567a6c0c6 100644
--- a/nixpkgs/pkgs/development/python-modules/netaddr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/netaddr/default.nix
@@ -1,41 +1,32 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
-, pytest
-, fetchpatch
+, pythonOlder
 , glibcLocales
+, importlib-resources
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "netaddr";
-  version = "0.7.19";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "38aeec7cdd035081d3a4c306394b19d677623bf76fa0913f6695127c7753aefd";
+    sha256 = "0hx2npi0wnhwlcybilgwlddw6qffx1mb7a3sj4p9s7bvl33mgk6n";
   };
 
   LC_ALL = "en_US.UTF-8";
-  checkInputs = [ glibcLocales pytest ];
 
-  checkPhase = ''
-    # fails on python3.7: https://github.com/drkjam/netaddr/issues/182
-    py.test \
-      -k 'not test_ip_splitter_remove_prefix_larger_than_input_range' \
-      netaddr/tests
-  '';
+  propagatedBuildInputs = stdenv.lib.optionals (pythonOlder "3.7") [ importlib-resources ];
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/drkjam/netaddr/commit/2ab73f10be7069c9412e853d2d0caf29bd624012.patch";
-      sha256 = "0s1cdn9v5alpviabhcjmzc0m2pnpq9dh2fnnk2x96dnry1pshg39";
-    })
-  ];
+  checkInputs = [ glibcLocales pytestCheckHook ];
 
   meta = with stdenv.lib; {
-    homepage = "https://github.com/drkjam/netaddr/";
+    homepage = "https://netaddr.readthedocs.io/en/latest/";
+    downloadPage = "https://github.com/netaddr/netaddr/releases";
+    changelog = "https://netaddr.readthedocs.io/en/latest/changes.html";
     description = "A network address manipulation library for Python";
     license = licenses.mit;
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/netcdf4/default.nix b/nixpkgs/pkgs/development/python-modules/netcdf4/default.nix
index 62373ebc42d6..874ca53d34fb 100644
--- a/nixpkgs/pkgs/development/python-modules/netcdf4/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/netcdf4/default.nix
@@ -3,13 +3,13 @@
 }:
 buildPythonPackage rec {
   pname = "netCDF4";
-  version = "1.5.3";
+  version = "1.5.4";
 
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2a3ca855848f4bbf07fac366da77a681fcead18c0a8813d91d46302f562dc3be";
+    sha256 = "941de6f3623b6474ecb4d043be5990690f7af4cf0d593b31be912627fe5aad03";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/netdisco/default.nix b/nixpkgs/pkgs/development/python-modules/netdisco/default.nix
index b5353a5842d3..a26a212d8f7e 100644
--- a/nixpkgs/pkgs/development/python-modules/netdisco/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/netdisco/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "netdisco";
-  version = "2.6.0";
+  version = "2.8.2";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2b3aca14a1807712a053f11fd80dc251dd821ee4899aefece515287981817762";
+    sha256 = "dcaabf83b204282aacfb213b18799eb7af2d5a6defe529487bbd0548036392fe";
   };
 
   propagatedBuildInputs = [ requests zeroconf netifaces ];
diff --git a/nixpkgs/pkgs/development/python-modules/nibabel/default.nix b/nixpkgs/pkgs/development/python-modules/nibabel/default.nix
index 7ea6978b1cb5..b1e8a23ef8ef 100644
--- a/nixpkgs/pkgs/development/python-modules/nibabel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nibabel/default.nix
@@ -2,8 +2,9 @@
 , buildPythonPackage
 , fetchPypi
 , isPy27
-, nose
+, packaging
 , pytest
+, nose
 , numpy
 , h5py
 , pydicom
@@ -12,20 +13,20 @@
 
 buildPythonPackage rec {
   pname = "nibabel";
-  version = "3.0.2";
+  version = "3.1.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "40cc615801c8876306af1009a312f9c90752f1d79610fc1146917585b6f374dd";
+    sha256 = "1kir9g7kmy2qygyzczx8nj4b0sc6jjvqy0ssm39bxzqsr1vzzvxm";
   };
 
-  propagatedBuildInputs = [ numpy scipy h5py pydicom ];
+  propagatedBuildInputs = [ numpy scipy h5py packaging pydicom ];
 
   checkInputs = [ nose pytest ];
 
   checkPhase = ''
-    nosetests
+    pytest
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/nine/default.nix b/nixpkgs/pkgs/development/python-modules/nine/default.nix
index 8882b6ae7456..e0d1cb173ea7 100644
--- a/nixpkgs/pkgs/development/python-modules/nine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nine/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "nine";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3064fbeb512e756a415606a1399f49c22de867d5ac7e2b6c91c35e757d3af42d";
+    sha256 = "e8a96b6326341637d25ca9c257c1d2af4033c957946438d9d37bf6eb798d3bbe";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/nipype/default.nix b/nixpkgs/pkgs/development/python-modules/nipype/default.nix
index 06c6f9cb0c1f..80ee7691a1a5 100644
--- a/nixpkgs/pkgs/development/python-modules/nipype/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nipype/default.nix
@@ -50,11 +50,11 @@ in
 
 buildPythonPackage rec {
   pname = "nipype";
-  version = "1.4.2";
+  version = "1.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1nr0z0k4xx1vswkp03g1lf8141mr4j2fbwd7wmpay4vz46qcp786";
+    sha256 = "3d6aa37186e1d2f90917dfdf1faf5aeff469912554990e5d182ffe8435f250d5";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/nix-kernel/default.nix b/nixpkgs/pkgs/development/python-modules/nix-kernel/default.nix
new file mode 100644
index 000000000000..81057308e6b5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/nix-kernel/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pexpect
+, notebook
+, nix
+}:
+
+buildPythonPackage rec {
+  pname = "nix-kernel";
+  version = "unstable-2020-04-26";
+
+  src = fetchFromGitHub {
+    owner = "GTrunSec";
+    repo = "nix-kernel";
+    rev = "dfa42d0812d508ded99f690ee1a83281d900a3ec";
+    sha256 = "1lf4rbbxjmq9h6g3wrdzx3v3dn1bndfmiybxiy0sjavgb6lzc8kq";
+  };
+
+  postPatch = ''
+    substituteInPlace nix-kernel/kernel.py \
+      --replace "'nix'" "'${nix}/bin/nix'" \
+      --replace "'nix repl'" "'${nix}/bin/nix repl'"
+
+    substituteInPlace setup.py \
+      --replace "cmdclass={'install': install_with_kernelspec}," ""
+  '';
+
+  propagatedBuildInputs = [
+    pexpect
+    notebook
+  ];
+
+  # no tests in repo
+  doCheck = false;
+
+  pythonImportsCheck = [ "nix-kernel" ];
+
+  meta = with lib; {
+    description = "Simple jupyter kernel for nix-repl";
+    homepage = "https://github.com/GTrunSec/nix-kernel";
+    license = licenses.mit;
+    maintainers = with maintainers; [ costrouc ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/nix-prefetch-github/default.nix b/nixpkgs/pkgs/development/python-modules/nix-prefetch-github/default.nix
index 56387835cc6e..67873f929ad4 100644
--- a/nixpkgs/pkgs/development/python-modules/nix-prefetch-github/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nix-prefetch-github/default.nix
@@ -1,25 +1,27 @@
 { fetchPypi
 , lib
 , buildPythonPackage
+, pythonOlder
 , attrs
 , click
 , effect
 , jinja2
+, git
+, pytestCheckHook
+, pytest-black
+, pytestcov
+, pytest-isort
 }:
 
 buildPythonPackage rec {
   pname = "nix-prefetch-github";
-  version = "2.4";
+  version = "3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-PVB/cL0NVB5pHxRMjg8TLatvIvHjfCvaRWBanVHYT+E=";
+    sha256 = "sha256-EN+EbVXUaf+id5UsK4EBm/9k9FYaH79g08kblvW60XA=";
   };
 
-  # The tests for this package require nix and network access.  That's
-  # why we cannot execute them inside the building process.
-  doCheck = false;
-
   propagatedBuildInputs = [
     attrs
     click
@@ -27,6 +29,15 @@ buildPythonPackage rec {
     jinja2
   ];
 
+  checkInputs = [ pytestCheckHook pytest-black pytestcov pytest-isort git ];
+  checkPhase = ''
+    pytest -m 'not network'
+  '';
+
+  # latest version of isort will cause tests to fail
+  # ignore tests which are impure
+  disabledTests = [ "isort" "life" "outputs" "fetch_submodules" ];
+
   meta = with lib; {
     description = "Prefetch sources from github";
     homepage = "https://github.com/seppeljordan/nix-prefetch-github";
diff --git a/nixpkgs/pkgs/development/python-modules/nltk/default.nix b/nixpkgs/pkgs/development/python-modules/nltk/default.nix
index 4f0a90a36af8..298b32ed8b8e 100644
--- a/nixpkgs/pkgs/development/python-modules/nltk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nltk/default.nix
@@ -1,16 +1,26 @@
-{ fetchPypi, buildPythonPackage, lib, six, singledispatch, isPy3k }:
+{ fetchPypi, buildPythonPackage, lib, six, singledispatch, isPy3k
+, click
+, joblib
+, regex
+, tqdm
+}:
 
 buildPythonPackage rec {
-  version = "3.4.5";
+  version = "3.5";
   pname = "nltk";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "153x2clrnigs74jdgnn3qmljdjj4gprmvpdvh49i18ls4m8mbm5y";
+    sha256 = "845365449cd8c5f9731f7cb9f8bd6fd0767553b9d53af9eb1b3abf7700936b35";
   };
 
-  propagatedBuildInputs = [ six ] ++ lib.optional (!isPy3k) singledispatch;
+  propagatedBuildInputs = [
+    click
+    joblib
+    regex
+    tqdm
+  ] ++ lib.optional (!isPy3k) singledispatch;
 
   # Tests require some data, the downloading of which is impure. It would
   # probably make sense to make the data another derivation, but then feeding
diff --git a/nixpkgs/pkgs/development/python-modules/nmigen/default.nix b/nixpkgs/pkgs/development/python-modules/nmigen/default.nix
index 3cb2056c7cfc..4a2327bf9288 100644
--- a/nixpkgs/pkgs/development/python-modules/nmigen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nmigen/default.nix
@@ -8,6 +8,7 @@
 , jinja2
 
 # for tests
+, pytestCheckHook
 , yosys
 , symbiyosys
 , yices
@@ -15,32 +16,38 @@
 
 buildPythonPackage rec {
   pname = "nmigen";
-  version = "unstable-2019-02-08";
+  version = "unstable-2020-04-02";
   # python setup.py --version
   realVersion = "0.2.dev49+g${lib.substring 0 7 src.rev}";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "nmigen";
     repo = "nmigen";
-    rev = "66f4510c4465be5d0763d7835770553434e4ee91";
-    sha256 = "19y39c4ywckm4yzrpjzcdl9pqy9d1sf1zsb4zpzajpmnfqccc3b0";
+    rev = "c79caead33fff14e2dec42b7e21d571a02526876";
+    sha256 = "sha256-3+mxHyg0a92/BfyePtKT5Hsk+ra+fQzTjCJ2Ech44/s=";
   };
 
-  disabled = pythonOlder "3.6";
-
   nativeBuildInputs = [ setuptools_scm ];
 
   propagatedBuildInputs = [ setuptools pyvcd jinja2 ];
 
-  checkInputs = [ yosys symbiyosys yices ];
+  checkInputs = [ pytestCheckHook yosys symbiyosys yices ];
 
   preBuild = ''
     export SETUPTOOLS_SCM_PRETEND_VERSION="${realVersion}"
   '';
 
+  # Fail b/c can't find sby (symbiyosys) executable, which should be on path.
+  disabledTests = [
+    "test_distance"
+    "test_reversible"
+    "FIFOFormalCase"
+  ];
+
   meta = with lib; {
     description = "A refreshed Python toolbox for building complex digital hardware";
-    homepage = "https://github.com/nmigen/nmigen";
+    homepage = "https://nmigen.info/nmigen";
     license = licenses.bsd2;
     maintainers = with maintainers; [ emily ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/nodeenv/default.nix b/nixpkgs/pkgs/development/python-modules/nodeenv/default.nix
index 14a67fe54ae5..b4acefaeb6a0 100644
--- a/nixpkgs/pkgs/development/python-modules/nodeenv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nodeenv/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "nodeenv";
-  version = "1.3.3";
+  version = "1.3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ad8259494cf1c9034539f6cced78a1da4840a4b157e23640bc4a0c0546b0cb7a";
+    sha256 = "7389d06a7ea50c80ca51eda1b185db7b9ec38af1304d12d8b8299d6218486e91";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/notebook/2.nix b/nixpkgs/pkgs/development/python-modules/notebook/2.nix
index 37f39c44967c..0e5cfdf43971 100644
--- a/nixpkgs/pkgs/development/python-modules/notebook/2.nix
+++ b/nixpkgs/pkgs/development/python-modules/notebook/2.nix
@@ -25,11 +25,11 @@
 
 buildPythonPackage rec {
   pname = "notebook";
-  version = "5.7.8";
+  version = "5.7.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "573e0ae650c5d76b18b6e564ba6d21bf321d00847de1d215b418acb64f056eb8";
+    sha256 = "b10107e1438e7a564292aa32510e610c88844cae03c882fe5286b891792b5c11";
   };
 
   LC_ALL = "en_US.utf8";
diff --git a/nixpkgs/pkgs/development/python-modules/notebook/default.nix b/nixpkgs/pkgs/development/python-modules/notebook/default.nix
index 4550bb636318..04fe19377f8e 100644
--- a/nixpkgs/pkgs/development/python-modules/notebook/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/notebook/default.nix
@@ -2,6 +2,7 @@
 , lib
 , buildPythonPackage
 , fetchPypi
+, argon2_cffi
 , nose
 , nose_warnings_filters
 , glibcLocales
@@ -11,6 +12,7 @@
 , tornado
 , ipython_genutils
 , traitlets
+, jupyter
 , jupyter_core
 , jupyter_client
 , nbformat
@@ -21,27 +23,28 @@
 , send2trash
 , pexpect
 , prometheus_client
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "notebook";
-  version = "6.0.3";
+  version = "6.1.4";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "47a9092975c9e7965ada00b9a20f0cf637d001db60d241d479f53c0be117ad48";
+    sha256 = "0cnyi4zd3byh7zixdj2q71axm31xgjiyfklh1c63c87acgwh2zb8";
   };
 
   LC_ALL = "en_US.utf8";
 
-  checkInputs = [ nose glibcLocales ]
+  checkInputs = [ nose pytestCheckHook glibcLocales ]
     ++ (if isPy3k then [ nose_warnings_filters ] else [ mock ]);
 
   propagatedBuildInputs = [
     jinja2 tornado ipython_genutils traitlets jupyter_core send2trash
     jupyter_client nbformat nbconvert ipykernel terminado requests pexpect
-    prometheus_client
+    prometheus_client argon2_cffi
   ];
 
   # disable warning_filters
@@ -52,18 +55,22 @@ buildPythonPackage rec {
   postPatch = ''
     # Remove selenium tests
     rm -rf notebook/tests/selenium
-
+    export HOME=$TMPDIR
   '';
 
-  checkPhase = ''
-    runHook preCheck
-    mkdir tmp
-    HOME=tmp nosetests -v ${if (stdenv.isDarwin) then ''
-      --exclude test_delete \
-      --exclude test_checkpoints_follow_file
-    ''
-    else ""}
-  '';
+  disabledTests = [
+    # a "system_config" is generated, and fails many tests
+    "config"
+    "load_ordered"
+    # requires jupyter, but will cause circular imports
+    "test_run"
+    "TestInstallServerExtension"
+    "launch_socket"
+    "sock_server"
+  ] ++ lib.optional stdenv.isDarwin [
+    "test_delete"
+    "test_checkpoints_follow_file"
+  ];
 
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
diff --git a/nixpkgs/pkgs/development/python-modules/notify2/default.nix b/nixpkgs/pkgs/development/python-modules/notify2/default.nix
index a7928fb66c65..28c74415c5dc 100644
--- a/nixpkgs/pkgs/development/python-modules/notify2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/notify2/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   # Tests require Xorg and Dbus instance
   doCheck = false;
   propagatedBuildInputs = [ pygobject3
-                            dbus-python ]; 
+                            dbus-python ];
 
   meta = {
     description = "Pure Python interface to DBus notifications";
diff --git a/nixpkgs/pkgs/development/python-modules/nplusone/default.nix b/nixpkgs/pkgs/development/python-modules/nplusone/default.nix
new file mode 100644
index 000000000000..c2f484cb3a92
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/nplusone/default.nix
@@ -0,0 +1,49 @@
+{ blinker, buildPythonPackage, fetchFromGitHub, lib, isPy27, six, mock, pytest
+, webtest, pytestcov, pytest-django, pytest-pythonpath, flake8, sqlalchemy
+, flask_sqlalchemy, peewee }:
+
+buildPythonPackage rec {
+  pname = "nplusone";
+  version = "1.0.0";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "jmcarp";
+    repo = "nplusone";
+    rev = "v${version}";
+    sha256 = "0qdwpvvg7dzmksz3vqkvb27n52lq5sa8i06m7idnj5xk2dgjkdxg";
+  };
+
+  # The tests assume the source code is in an nplusone/ directory. When using
+  # the Nix sandbox, it will be in a source/ directory instead, making the
+  # tests fail.
+  prePatch = ''
+    substituteInPlace tests/conftest.py \
+      --replace nplusone/tests/conftest source/tests/conftest
+  '';
+
+  checkPhase = ''
+    pytest tests/
+  '';
+
+  propagatedBuildInputs = [ six blinker ];
+  checkInputs = [
+    mock
+    pytest
+    webtest
+    pytestcov
+    pytest-django
+    pytest-pythonpath
+    flake8
+    sqlalchemy
+    flask_sqlalchemy
+    peewee
+  ];
+
+  meta = with lib; {
+    description = "Detecting the n+1 queries problem in Python";
+    homepage = "https://github.com/jmcarp/nplusone";
+    maintainers = with maintainers; [ cript0nauta ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix b/nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix
new file mode 100644
index 000000000000..923f8c196986
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ntc-templates/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, textfsm
+, pytestCheckHook
+, ruamel_yaml
+, yamllint
+}:
+
+buildPythonPackage rec {
+  pname = "ntc-templates";
+  version = "1.5.0";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "networktocode";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0pvd9n7hcmxl9cr8m1xlqcjmy3k2hga0qmn2k3x9hripjis7pbbi";
+  };
+
+  propagatedBuildInputs = [ textfsm ];
+
+  checkInputs = [ pytestCheckHook ruamel_yaml yamllint ];
+
+  # https://github.com/networktocode/ntc-templates/issues/743
+  disabledTests = [ "test_raw_data_against_mock" "test_verify_parsed_and_reference_data_exists" ];
+
+  meta = with lib; {
+    description = "TextFSM templates for parsing show commands of network devices";
+    homepage = "https://github.com/networktocode/ntc-templates";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ntlm-auth/default.nix b/nixpkgs/pkgs/development/python-modules/ntlm-auth/default.nix
index 14900d5c55db..080734bd25e8 100644
--- a/nixpkgs/pkgs/development/python-modules/ntlm-auth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ntlm-auth/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "ntlm-auth";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "jborean93";
     repo = "ntlm-auth";
     rev = "v${version}";
-    sha256 = "168k3ygwbvnfcwn7q1nv3vvy6b9jc4cnpix0xgg5j8av7v1x0grn";
+    sha256 = "00dpf5bfsy07frsjihv1k10zmwcyq4bvkilbxha7h6nlwpcm2409";
   };
 
   checkInputs = [ mock pytest requests unittest2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/nuitka/default.nix b/nixpkgs/pkgs/development/python-modules/nuitka/default.nix
index f65f5079b2c8..f5726b91b9c1 100644
--- a/nixpkgs/pkgs/development/python-modules/nuitka/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nuitka/default.nix
@@ -12,13 +12,13 @@ let
   # Therefore we create a separate env for it.
   scons = pkgs.python27.withPackages(ps: [ pkgs.scons ]);
 in buildPythonPackage rec {
-  version = "0.6.8.1";
+  version = "0.6.8.4";
   pname = "Nuitka";
 
   # Latest version is not yet on PyPi
   src = fetchurl {
     url = "https://github.com/kayhayen/Nuitka/archive/${version}.tar.gz";
-    sha256 = "1rn6i2mcljhb9nmh8qj3slcmqzs9jx8s7j8r2b7685n7751h5ipj";
+    sha256 = "0awhwksnmqmbciimqmd11wygp7bnq57khcg4n9r4ld53s147rmqm";
   };
 
   checkInputs = [ vmprof pyqt4 ];
diff --git a/nixpkgs/pkgs/development/python-modules/numba/default.nix b/nixpkgs/pkgs/development/python-modules/numba/default.nix
index 909a37c78295..c3a6484adbc6 100644
--- a/nixpkgs/pkgs/development/python-modules/numba/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numba/default.nix
@@ -13,14 +13,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.49.1";
+  version = "0.51.1";
   pname = "numba";
   # uses f-strings
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "89e1ad8215918036b0ffc53501888d44ed44c1f2cb09a9e047d06af5cd7e7a5a";
+    sha256 = "1e765b1a41535684bf3b0465c1d0a24dcbbff6af325270c8f4dad924c0940160";
   };
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.isDarwin "-I${libcxx}/include/c++/v1";
diff --git a/nixpkgs/pkgs/development/python-modules/numcodecs/default.nix b/nixpkgs/pkgs/development/python-modules/numcodecs/default.nix
index ea93fc1f3f3e..92d049dbe6cb 100644
--- a/nixpkgs/pkgs/development/python-modules/numcodecs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numcodecs/default.nix
@@ -5,7 +5,7 @@
 , cython
 , numpy
 , msgpack
-, pytest
+, pytestCheckHook
 , python
 , gcc8
 }:
@@ -31,12 +31,20 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    pytest $out/${python.sitePackages}/numcodecs -k "not test_backwards_compatibility"
-  '';
+  pytestFlagsArray = [
+    "$out/${python.sitePackages}/numcodecs"
+  ];
+
+  disabledTests = [
+    "test_backwards_compatibility"
+
+    "test_encode_decode"
+    "test_legacy_codec_broken"
+    "test_bytes"
+  ];
 
   meta = with lib;{
     homepage = "https://github.com/alimanfoo/numcodecs";
diff --git a/nixpkgs/pkgs/development/python-modules/numexpr/default.nix b/nixpkgs/pkgs/development/python-modules/numexpr/default.nix
index d0bb0a88cff4..3e3316788ed1 100644
--- a/nixpkgs/pkgs/development/python-modules/numexpr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numexpr/default.nix
@@ -21,17 +21,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ numpy ];
 
-  # Run the test suite.
-  # It requires the build path to be in the python search path.
   checkPhase = ''
-    pushd $out
-    ${python}/bin/${python.executable} <<EOF
-    import sys
-    import numexpr
-    r = numexpr.test()
-    if not r.wasSuccessful():
-        sys.exit(1)
-    EOF
+    runtest="$(pwd)/numexpr/tests/test_numexpr.py"
+    pushd "$out"
+    ${python}/bin/${python.executable} "$runtest"
     popd
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/numpy/1.16.nix b/nixpkgs/pkgs/development/python-modules/numpy/1.16.nix
new file mode 100644
index 000000000000..6fa77d8fa907
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/numpy/1.16.nix
@@ -0,0 +1,97 @@
+{ lib
+, fetchPypi
+, python
+, buildPythonPackage
+, gfortran
+, pytest
+, blas
+, lapack
+, writeTextFile
+, isPyPy
+, cython
+, setuptoolsBuildHook
+ }:
+
+assert (!blas.isILP64) && (!lapack.isILP64);
+
+let
+  cfg = writeTextFile {
+    name = "site.cfg";
+    text = (lib.generators.toINI {} {
+      ${blas.implementation} = {
+        include_dirs = "${lib.getDev blas}/include:${lib.getDev lapack}/include";
+        library_dirs = "${blas}/lib:${lapack}/lib";
+        runtime_library_dirs = "${blas}/lib:${lapack}/lib";
+        libraries = "lapack,lapacke,blas,cblas";
+      };
+      lapack = {
+        include_dirs = "${lib.getDev lapack}/include";
+        library_dirs = "${lapack}/lib";
+        runtime_library_dirs = "${lapack}/lib";
+      };
+      blas = {
+        include_dirs = "${lib.getDev blas}/include";
+        library_dirs = "${blas}/lib";
+        runtime_library_dirs = "${blas}/lib";
+      };
+    });
+  };
+in buildPythonPackage rec {
+  pname = "numpy";
+  version = "1.16.6";
+  format = "pyproject.toml";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "e5cf3fdf13401885e8eea8170624ec96225e2174eb0c611c6f26dd33b489e3ff";
+  };
+
+  nativeBuildInputs = [ gfortran pytest cython setuptoolsBuildHook ];
+  buildInputs = [ blas lapack ];
+
+  patches = lib.optionals python.hasDistutilsCxxPatch [
+    # We patch cpython/distutils to fix https://bugs.python.org/issue1222585
+    # Patching of numpy.distutils is needed to prevent it from undoing the
+    # patch to distutils.
+    ./numpy-distutils-C++_1.16.patch
+  ];
+
+  preConfigure = ''
+    sed -i 's/-faltivec//' numpy/distutils/system_info.py
+    export NPY_NUM_BUILD_JOBS=$NIX_BUILD_CORES
+  '';
+
+  preBuild = ''
+    ln -s ${cfg} site.cfg
+  '';
+
+  enableParallelBuilding = true;
+
+  doCheck = !isPyPy; # numpy 1.16+ hits a bug in pypy's ctypes, using either numpy or pypy HEAD fixes this (https://github.com/numpy/numpy/issues/13807)
+
+  checkPhase = ''
+    runHook preCheck
+    pushd dist
+    ${python.interpreter} -c 'import numpy; numpy.test("fast", verbose=10)'
+    popd
+    runHook postCheck
+  '';
+
+  passthru = {
+    # just for backwards compatibility
+    blas = blas.provider;
+    blasImplementation = blas.implementation;
+    inherit cfg;
+  };
+
+  # Disable test
+  # - test_large_file_support: takes a long time and can cause the machine to run out of disk space
+  NOSE_EXCLUDE="test_large_file_support";
+
+  meta = {
+    description = "Scientific tools for Python";
+    homepage = "https://numpy.org/";
+    maintainers = with lib.maintainers; [ fridh ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/numpy/default.nix b/nixpkgs/pkgs/development/python-modules/numpy/default.nix
index 0c9bac973203..9502cdc5b0a0 100644
--- a/nixpkgs/pkgs/development/python-modules/numpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numpy/default.nix
@@ -3,6 +3,7 @@
 , python
 , buildPythonPackage
 , gfortran
+, hypothesis
 , pytest
 , blas
 , lapack
@@ -21,27 +22,30 @@ let
       ${blas.implementation} = {
         include_dirs = "${lib.getDev blas}/include:${lib.getDev lapack}/include";
         library_dirs = "${blas}/lib:${lapack}/lib";
+        runtime_library_dirs = "${blas}/lib:${lapack}/lib";
         libraries = "lapack,lapacke,blas,cblas";
       };
       lapack = {
         include_dirs = "${lib.getDev lapack}/include";
         library_dirs = "${lapack}/lib";
+        runtime_library_dirs = "${lapack}/lib";
       };
       blas = {
         include_dirs = "${lib.getDev blas}/include";
         library_dirs = "${blas}/lib";
+        runtime_library_dirs = "${blas}/lib";
       };
     });
   };
 in buildPythonPackage rec {
   pname = "numpy";
-  version = "1.18.5";
+  version = "1.19.1";
   format = "pyproject.toml";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "34e96e9dae65c4839bd80012023aadd6ee2ccb73ce7fdf3074c62f301e63120b";
+    sha256 = "b8456987b637232602ceb4d663cb34106f7eb780e247d51a260b84760fd8f491";
   };
 
   nativeBuildInputs = [ gfortran pytest cython setuptoolsBuildHook ];
@@ -67,6 +71,8 @@ in buildPythonPackage rec {
 
   doCheck = !isPyPy; # numpy 1.16+ hits a bug in pypy's ctypes, using either numpy or pypy HEAD fixes this (https://github.com/numpy/numpy/issues/13807)
 
+  checkInputs = [ hypothesis ];
+
   checkPhase = ''
     runHook preCheck
     pushd dist
diff --git a/nixpkgs/pkgs/development/python-modules/numpy/numpy-distutils-C++.patch b/nixpkgs/pkgs/development/python-modules/numpy/numpy-distutils-C++.patch
index 771da8cf3ffa..6c75f34ce07a 100644
--- a/nixpkgs/pkgs/development/python-modules/numpy/numpy-distutils-C++.patch
+++ b/nixpkgs/pkgs/development/python-modules/numpy/numpy-distutils-C++.patch
@@ -1,8 +1,7 @@
 diff --git a/numpy/distutils/unixccompiler.py b/numpy/distutils/unixccompiler.py
-index 6ed5eec..82a88b5 100644
 --- a/numpy/distutils/unixccompiler.py
 +++ b/numpy/distutils/unixccompiler.py
-@@ -44,8 +44,6 @@ def UnixCCompiler__compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts
+@@ -37,8 +37,6 @@ def UnixCCompiler__compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts
          if opt not in llink_s:
              self.linker_so = llink_s.split() + opt.split()
  
@@ -11,7 +10,7 @@ index 6ed5eec..82a88b5 100644
      # gcc style automatic dependencies, outputs a makefile (-MF) that lists
      # all headers needed by a c file as a side effect of compilation (-MMD)
      if getattr(self, '_auto_depends', False):
-@@ -54,8 +52,15 @@ def UnixCCompiler__compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts
+@@ -47,8 +45,15 @@ def UnixCCompiler__compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts
          deps = []
  
      try:
@@ -26,6 +25,6 @@ index 6ed5eec..82a88b5 100644
 +            self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + deps +
 +                       extra_postargs, display = display)
 +
-     except DistutilsExecError:
-         msg = str(get_exception())
+     except DistutilsExecError as e:
+         msg = str(e)
          raise CompileError(msg)
diff --git a/nixpkgs/pkgs/development/python-modules/numpy/numpy-distutils-C++_1.16.patch b/nixpkgs/pkgs/development/python-modules/numpy/numpy-distutils-C++_1.16.patch
new file mode 100644
index 000000000000..b2626ea26e5b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/numpy/numpy-distutils-C++_1.16.patch
@@ -0,0 +1,30 @@
+diff --git a/numpy/distutils/unixccompiler.py b/numpy/distutils/unixccompiler.py
+--- a/numpy/distutils/unixccompiler.py
++++ b/numpy/distutils/unixccompiler.py
+@@ -44,8 +44,6 @@ def UnixCCompiler__compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts
+         if opt not in llink_s:
+             self.linker_so = llink_s.split() + opt.split()
+ 
+-    display = '%s: %s' % (os.path.basename(self.compiler_so[0]), src)
+-
+     # gcc style automatic dependencies, outputs a makefile (-MF) that lists
+     # all headers needed by a c file as a side effect of compilation (-MMD)
+     if getattr(self, '_auto_depends', False):
+@@ -54,8 +52,15 @@ def UnixCCompiler__compile(self, obj, src, ext, cc_args, extra_postargs, pp_opts
+         deps = []
+ 
+     try:
+-        self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + deps +
+-                   extra_postargs, display = display)
++        if self.detect_language(src) == 'c++':
++            display = '%s: %s' % (os.path.basename(self.compiler_so_cxx[0]), src)
++            self.spawn(self.compiler_so_cxx + cc_args + [src, '-o', obj] + deps +
++                       extra_postargs, display = display)
++        else:
++            display = '%s: %s' % (os.path.basename(self.compiler_so[0]), src)
++            self.spawn(self.compiler_so + cc_args + [src, '-o', obj] + deps +
++                       extra_postargs, display = display)
++
+     except DistutilsExecError:
+         msg = str(get_exception())
+         raise CompileError(msg)
diff --git a/nixpkgs/pkgs/development/python-modules/numpydoc/default.nix b/nixpkgs/pkgs/development/python-modules/numpydoc/default.nix
index fb3b9af76f60..0f57847b3a62 100644
--- a/nixpkgs/pkgs/development/python-modules/numpydoc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/numpydoc/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchPypi
+{ lib, buildPythonPackage, fetchPypi, isPy27
 , jinja2
 , nose
 , pytest
@@ -7,12 +7,13 @@
 
 buildPythonPackage rec {
   pname = "numpydoc";
-  version = "0.9.2";
+  version = "1.1.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname;
     inherit version;
-    sha256 = "9140669e6b915f42c6ce7fef704483ba9b0aaa9ac8e425ea89c76fe40478f642";
+    sha256 = "c36fd6cb7ffdc9b4e165a43f67bf6271a7b024d0bb6b00ac468c9e2bfc76448e";
   };
 
   checkInputs = [ nose pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/nunavut/default.nix b/nixpkgs/pkgs/development/python-modules/nunavut/default.nix
new file mode 100644
index 000000000000..4905a8da7a38
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/nunavut/default.nix
@@ -0,0 +1,37 @@
+{ lib, buildPythonPackage, pythonOlder, fetchPypi, pydsdl }:
+
+ buildPythonPackage rec {
+  pname = "nunavut";
+  version = "0.3.6";
+  disabled = pythonOlder "3.5"; # only python>=3.5 is supported
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "434edabdc431b9af719896e0de4bd0deead657777d1d8aa4e3cd0dcdff6298bc";
+  };
+
+  propagatedBuildInputs = [
+    pydsdl
+  ];
+
+  # allow for writable directory for darwin
+  preBuild = ''
+    export HOME=$TMPDIR
+  '';
+
+  # repo doesn't contain tests, ensure imports aren't broken
+  pythonImportsCheck = [
+    "nunavut"
+  ];
+
+  meta = with lib; {
+    description = "A UAVCAN DSDL template engine";
+    longDescription = ''
+      It exposes a pydsdl abstract syntax tree to Jinja2 templates allowing
+      authors to generate code, schemas, metadata, documentation, etc.
+    '';
+    homepage = "https://nunavut.readthedocs.io/";
+    maintainers = with maintainers; [ wucke13 ];
+    license = with licenses; [ bsd3 mit ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/nvchecker/default.nix b/nixpkgs/pkgs/development/python-modules/nvchecker/default.nix
index 9046a75260ad..909be251386b 100644
--- a/nixpkgs/pkgs/development/python-modules/nvchecker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/nvchecker/default.nix
@@ -1,24 +1,21 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, pytest, setuptools, structlog, pytest-asyncio, flaky, tornado, pycurl, pytest-httpbin }:
+{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, pytestCheckHook, setuptools, structlog, pytest-asyncio, flaky, tornado, pycurl, aiohttp, pytest-httpbin }:
 
 buildPythonPackage rec {
   pname = "nvchecker";
-  version = "1.5";
+  version = "1.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0973f7c3ea5ad65fb19837e8915882a9f2c2f21f5c2589005478697391fea2fd";
+    sha256 = "01be0e5587d346ad783b4b2dc45bd8eefe477081b33fff18cc2fdea58c2a38ef";
   };
 
-  propagatedBuildInputs = [ setuptools structlog tornado pycurl ];
-  checkInputs = [ pytest pytest-asyncio flaky pytest-httpbin ];
-
-  # disable `test_ubuntupkg` because it requires network
-  checkPhase = ''
-    py.test -m "not needs_net" --ignore=tests/test_ubuntupkg.py
-  '';
+  propagatedBuildInputs = [ setuptools structlog tornado pycurl aiohttp ];
+  checkInputs = [ pytestCheckHook pytest-asyncio flaky pytest-httpbin ];
 
   disabled = pythonOlder "3.5";
 
+  pytestFlagsArray = [ "-m 'not needs_net'" ];
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/lilydjwg/nvchecker";
     description = "New version checker for software";
diff --git a/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix b/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix
index d3617f25a9a7..bf2ad31ec3d7 100644
--- a/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/oauthenticator/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "oauthenticator";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cb4e23fcfe8dc9099c4ca005f8991b0f605b03a3e1cf4fed654b2470f6065bdf";
+    sha256 = "ff1b4ba2458a6ee460c3c4161d780a12e94811b2daaa5d13acdb354fa21a9916";
   };
 
   checkPhase = ''
@@ -29,10 +29,10 @@ buildPythonPackage rec {
 
   # No tests in archive
   doCheck = false;
-   
+
   checkInputs = [  globus-sdk mwoauth codecov flake8 pytest
     pytestcov pytest-tornado requests-mock pyjwt ];
-  
+
   propagatedBuildInputs = [ jupyterhub ];
 
   disabled = pythonOlder "3.4";
diff --git a/nixpkgs/pkgs/development/python-modules/odo/default.nix b/nixpkgs/pkgs/development/python-modules/odo/default.nix
deleted file mode 100644
index 4badad33a08f..000000000000
--- a/nixpkgs/pkgs/development/python-modules/odo/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, datashape
-, numpy
-, pandas
-, toolz
-, multipledispatch
-, networkx
-, dask
-}:
-
-buildPythonPackage rec {
-  pname = "odo";
-  version= "unstable-2018-09-21";
-
-  src = fetchFromGitHub {
-    owner = "blaze";
-    repo = pname;
-    rev = "9fce6690b3666160681833540de6c55e922de5eb";
-    sha256 = "0givkd5agr05wrf72fbghdaav6gplx7c069ngs1ip385v72ifsl9";
-  };
-
-  checkInputs = [
-    pytest
-    dask
-  ];
-
-  propagatedBuildInputs = [
-    datashape
-    numpy
-    pandas
-    toolz
-    multipledispatch
-    networkx
-  ];
-
-  postConfigure = ''
-    substituteInPlace setup.py \
-      --replace "versioneer.get_version()" "'0.5.1'"
-  '';
-
-  # disable 6/315 tests
-  checkPhase = ''
-    pytest odo -k "not test_insert_to_ooc \
-               and not test_datetime_index \
-               and not test_different_encoding \
-               and not test_numpy_asserts_type_after_dataframe"
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/ContinuumIO/odo";
-    description = "Data migration utilities";
-    license = licenses.bsdOriginal;
-    maintainers = with maintainers; [ fridh costrouc ];
-    broken = true; # no longer compatible with dask>=2.0
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/openapi-spec-validator/default.nix b/nixpkgs/pkgs/development/python-modules/openapi-spec-validator/default.nix
index 5e3806934d0e..02f51bc3e66f 100644
--- a/nixpkgs/pkgs/development/python-modules/openapi-spec-validator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openapi-spec-validator/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "openapi-spec-validator";
-  version = "0.2.8";
+  version = "0.2.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1kav0jlgdpgwx4am09ja7cr8s1g8h8a7j8mcfy1cfjr8fficg2g4";
+    sha256 = "1jw59mmd3n1d5zihdqz2a3j2axxf3m34lqp1190fw8rlndlilf3r";
   };
 
   propagatedBuildInputs = [ jsonschema pyyaml six setuptools ]
diff --git a/nixpkgs/pkgs/development/python-modules/openpyxl/default.nix b/nixpkgs/pkgs/development/python-modules/openpyxl/default.nix
index d858d8ad4281..5a7d2a6425b0 100644
--- a/nixpkgs/pkgs/development/python-modules/openpyxl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openpyxl/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "openpyxl";
-  version = "3.0.3";
+  version = "3.0.5";
   disabled = isPy27; # 2.6.4 was final python2 release
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "547a9fc6aafcf44abe358b89ed4438d077e9d92e4f182c87e2dc294186dc4b64";
+    sha256 = "18e11f9a650128a12580a58e3daba14e00a11d9e907c554a17ea016bf1a2c71b";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/openrazer/common.nix b/nixpkgs/pkgs/development/python-modules/openrazer/common.nix
index 501b3fa54a45..8dddf105d1c0 100644
--- a/nixpkgs/pkgs/development/python-modules/openrazer/common.nix
+++ b/nixpkgs/pkgs/development/python-modules/openrazer/common.nix
@@ -1,12 +1,12 @@
 { stdenv
 , fetchFromGitHub
 }: rec {
-  version = "2.7.0";
+  version = "2.8.0";
   src = fetchFromGitHub {
     owner = "openrazer";
     repo = "openrazer";
     rev = "v${version}";
-    sha256 = "013r9q4xg2xjmyxybx07zsl2b5lm9vw843anx22ygpvxz1qgz9hp";
+    sha256 = "0mwg6b2y3wfpvgxb9lznwblb3bnrayn858nc4fbbg76zdp5bk5ky";
   };
   meta = with stdenv.lib; {
     homepage = "https://openrazer.github.io/";
diff --git a/nixpkgs/pkgs/development/python-modules/opentimestamps/default.nix b/nixpkgs/pkgs/development/python-modules/opentimestamps/default.nix
index e9dce6b23222..f132614d1ca0 100644
--- a/nixpkgs/pkgs/development/python-modules/opentimestamps/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentimestamps/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy3k
+{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch, isPy3k
 , bitcoinlib, GitPython, pysha3, git }:
 
 buildPythonPackage rec {
@@ -15,6 +15,14 @@ buildPythonPackage rec {
     sha256 = "0c45ij8absfgwizq6dfgg81siq3y8605sgg184vazp292w8nqmqr";
   };
 
+  patches = [
+    # build against bitcoinlib-0.11
+    (fetchpatch {
+      url = "https://patch-diff.githubusercontent.com/raw/opentimestamps/python-opentimestamps/pull/43.patch";
+      sha256 = "0bxzk4pzpqk7zrk2x7vn2bj2n3pc5whf8ijbd225s6674q450zbg";
+    })
+  ];
+
   # Remove a failing test which expects the test source file to reside in the
   # project's Git repo
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/opentracing/default.nix b/nixpkgs/pkgs/development/python-modules/opentracing/default.nix
index 63107ec372a6..f499470e25c7 100644
--- a/nixpkgs/pkgs/development/python-modules/opentracing/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opentracing/default.nix
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = lib.optional isPy27 futures;
 
   checkInputs = [ gevent mock pytest tornado ];
-  
+
   checkPhase = ''
     pytest
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/openwebifpy/default.nix b/nixpkgs/pkgs/development/python-modules/openwebifpy/default.nix
new file mode 100644
index 000000000000..5cf070d610fb
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/openwebifpy/default.nix
@@ -0,0 +1,32 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, requests, zeroconf, wakeonlan
+, python }:
+
+buildPythonPackage rec {
+  pname = "openwebifpy";
+  version = "3.1.1";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0zqa74i54ww9qjciiv8s58mxbs6vxq06cq5k4pxfarc0l75l4gh2";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    zeroconf
+    wakeonlan
+  ];
+
+  checkPhase = ''
+    ${python.interpreter} setup.py test
+  '';
+
+  meta = with lib; {
+    description = "Provides a python interface to interact with a device running OpenWebIf";
+    homepage = "https://openwebifpy.readthedocs.io/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/python-modules/openwrt-luci-rpc/default.nix b/nixpkgs/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
index 4dc4ffa68fc0..718dc48d005b 100644
--- a/nixpkgs/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
@@ -10,11 +10,11 @@ with lib;
 
 buildPythonPackage rec {
   pname = "openwrt-luci-rpc";
-  version = "1.1.2";
+  version = "1.1.3";
 
-  srcs = fetchPypi {
+  src = fetchPypi {
     inherit pname version;
-    sha256 = "144bw7w1xvpdkad5phflpkl15ih5pvi19799wmvfv8mj1dn1yjhp";
+    sha256 = "c8c27c98c0a1deac2d32d417c4ca536b08be2655a9a6de8a7897e8bc6431858c";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/opt-einsum/default.nix b/nixpkgs/pkgs/development/python-modules/opt-einsum/default.nix
index 6bf0e451f040..2ded1dfc1961 100644
--- a/nixpkgs/pkgs/development/python-modules/opt-einsum/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/opt-einsum/default.nix
@@ -1,12 +1,12 @@
 { buildPythonPackage, fetchPypi, lib, numpy, pytest_4 }:
 
 buildPythonPackage rec {
-  version = "3.2.1";
+  version = "3.3.0";
   pname = "opt_einsum";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "165r7rsl5j94kna4q3vsaq71z23lgxd9b20dgb6abrlas6c6mdw3";
+    sha256 = "0jb5lia0q742d1713jk33vlj41y61sf52j6pgk7pvhxvfxglgxjr";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/nixpkgs/pkgs/development/python-modules/ordered-set/default.nix b/nixpkgs/pkgs/development/python-modules/ordered-set/default.nix
index 924a2d31b769..7546566cb3aa 100644
--- a/nixpkgs/pkgs/development/python-modules/ordered-set/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ordered-set/default.nix
@@ -1,14 +1,15 @@
-{ buildPythonPackage, fetchPypi, lib, pytest }:
+{ buildPythonPackage, fetchPypi, lib, isPy27, pytest }:
 
 buildPythonPackage rec {
   pname = "ordered-set";
-  version = "3.1.1";
+  version = "4.0.2";
+  disabled = isPy27;
 
   checkInputs = [ pytest ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "094pww79pawgmjgwi47r0fji9irb7sr4xc9xwjbb0wwcficaigx7";
+    sha256 = "159syfbqnwqnivzjfn3x7ak3xwrxmnzbji7c2qhj1jjv0pgv54xs";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/orderedmultidict/default.nix b/nixpkgs/pkgs/development/python-modules/orderedmultidict/default.nix
index 82c08d655356..1a3ab347945a 100644
--- a/nixpkgs/pkgs/development/python-modules/orderedmultidict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/orderedmultidict/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, flake8, six }:
+{ stdenv, buildPythonPackage, fetchPypi, flake8, six, pythonOlder, importlib-metadata }:
 
 buildPythonPackage rec {
   pname = "orderedmultidict";
@@ -11,7 +11,10 @@ buildPythonPackage rec {
 
   checkInputs = [ flake8 ];
 
-  propagatedBuildInputs = [ six ];
+  propagatedBuildInputs = [ six ]
+    ++ stdenv.lib.optionals (pythonOlder "3.8") [
+      importlib-metadata
+    ];
 
   meta = with stdenv.lib; {
     description = "Ordered Multivalue Dictionary.";
diff --git a/nixpkgs/pkgs/development/python-modules/osc/default.nix b/nixpkgs/pkgs/development/python-modules/osc/default.nix
index c9ce8324b188..cae6a468c776 100644
--- a/nixpkgs/pkgs/development/python-modules/osc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/osc/default.nix
@@ -1,19 +1,21 @@
-{ stdenv, buildPythonPackage , fetchFromGitHub , bashInteractive , urlgrabber, m2crypto, rpm }:
+{ stdenv, buildPythonPackage, fetchFromGitHub, bashInteractive, urlgrabber
+, m2crypto, rpm, chardet
+}:
 
 buildPythonPackage rec {
   pname = "osc";
-  version = "0.167.1";
+  version = "0.170.0";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "osc";
     rev = version;
-    sha256 = "0f3c6mzvk9yjicwfdh47j4s2l1wrfgpa6lmqdchasdqfsacps4r6";
+    sha256 = "10dj9kscz59qm8rw5084gf0m8ail2rl7r8rg66ij92x88wvi9mbz";
   };
 
   buildInputs = [ bashInteractive ]; # needed for bash-completion helper
   checkInputs = [ rpm ];
-  propagatedBuildInputs = [ urlgrabber m2crypto ];
+  propagatedBuildInputs = [ urlgrabber m2crypto chardet ];
 
   postInstall = ''
     ln -s $out/bin/osc-wrapper.py $out/bin/osc
diff --git a/nixpkgs/pkgs/development/python-modules/osqp/default.nix b/nixpkgs/pkgs/development/python-modules/osqp/default.nix
index 16997d667812..88189493a62f 100644
--- a/nixpkgs/pkgs/development/python-modules/osqp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/osqp/default.nix
@@ -30,7 +30,10 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "osqp" ];
   checkInputs = [ pytestCheckHook ];
   dontUseSetuptoolsCheck = true;  # don't run checks twice
-  disabledTests = [ "mkl_" ];
+  disabledTests = [
+    "mkl_"
+    "update_matrices_tests" # broken w/ scipy >= 1.5.0. Remove next release. See https://github.com/oxfordcontrol/osqp-python/issues/44
+  ];
 
   meta = with lib; {
     description = "The Operator Splitting QP Solver";
diff --git a/nixpkgs/pkgs/development/python-modules/ovito/default.nix b/nixpkgs/pkgs/development/python-modules/ovito/default.nix
index 5f852b29298e..c5dddd68fcf1 100644
--- a/nixpkgs/pkgs/development/python-modules/ovito/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ovito/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation {
     # ensures not built on hydra
     # https://github.com/NixOS/nixpkgs/pull/46846#issuecomment-436388048
     hydraPlatforms = [ ];
+    broken = true; # cmake unable to find Qt5Core and other dependencies
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/owslib/default.nix b/nixpkgs/pkgs/development/python-modules/owslib/default.nix
index b19e41116f02..c82668008eab 100644
--- a/nixpkgs/pkgs/development/python-modules/owslib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/owslib/default.nix
@@ -1,11 +1,11 @@
 { lib, buildPythonPackage, fetchPypi, dateutil, requests, pytz, pyproj , pytest, pyyaml } :
 buildPythonPackage rec {
   pname = "OWSLib";
-  version = "0.19.2";
+  version = "0.20.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "605a742d088f1ed9c946e824d0b3be94b5256931f8b230dae63e27a52c781b6d";
+    sha256 = "334988857b260c8cdf1f6698d07eab61839c51acb52ee10eed1275439200a40e";
   };
 
   buildInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/pa-ringbuffer/default.nix b/nixpkgs/pkgs/development/python-modules/pa-ringbuffer/default.nix
new file mode 100644
index 000000000000..fd05e7e8052e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pa-ringbuffer/default.nix
@@ -0,0 +1,20 @@
+{ fetchFromGitHub, buildPythonPackage, lib }:
+
+buildPythonPackage rec {
+  pname = "pa-ringbuffer";
+  version = "0.1.3";
+
+  src = fetchFromGitHub {
+    owner = "spatialaudio";
+    repo = "python-pa-ringbuffer";
+    rev = "${version}";
+    sha256 = "0afpydy1l20hd1xncjppjhqa2c8dj5h9nlv4z8m55cs9hc9h1mxv";
+  };
+
+  meta = {
+    description = "Adds ring buffer functionality";
+    homepage = "https://github.com/spatialaudio/python-pa-ringbuffer";
+    maintainers = with lib.maintainers; [ laikq ];
+    license = lib.licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/packaging/default.nix b/nixpkgs/pkgs/development/python-modules/packaging/default.nix
index 6a144478e94a..abe58d03ef37 100644
--- a/nixpkgs/pkgs/development/python-modules/packaging/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/packaging/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "packaging";
-  version = "20.3";
+  version = "20.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3c292b474fda1671ec57d46d739d072bfd495a4f51ad01a055121d81e952b7a3";
+    sha256 = "4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8";
   };
 
   propagatedBuildInputs = [ pyparsing six ];
diff --git a/nixpkgs/pkgs/development/python-modules/packet-python/default.nix b/nixpkgs/pkgs/development/python-modules/packet-python/default.nix
index 2c56372c2faf..02255f4bfd70 100644
--- a/nixpkgs/pkgs/development/python-modules/packet-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/packet-python/default.nix
@@ -12,10 +12,10 @@
 
 buildPythonPackage rec {
   pname = "packet-python";
-  version = "1.41.0";
+  version = "1.43.0";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "685021502293f6b2e733376bcd0fef3f082c1a66c27072d92f483e27e387ad43";
+    sha256 = "48fcc5ca6e7f3d84ef91016585d1894bb9deb3dae6591ffab90fdf05006c3e48";
   };
   nativeBuildInputs = [ pytestrunner ];
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/palettable/default.nix b/nixpkgs/pkgs/development/python-modules/palettable/default.nix
index 9f1aed30ff70..f96e05950b80 100644
--- a/nixpkgs/pkgs/development/python-modules/palettable/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/palettable/default.nix
@@ -10,9 +10,9 @@ buildPythonPackage rec {
   };
 
   checkInputs = [ pytest ];
- 
+
   checkPhase = ''
-    pytest 
+    pytest
   '';
 
   meta = with stdenv.lib; {
@@ -22,4 +22,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ psyanticy ];
   };
 }
-
diff --git a/nixpkgs/pkgs/development/python-modules/pam/default.nix b/nixpkgs/pkgs/development/python-modules/pam/default.nix
deleted file mode 100644
index 6b5855379788..000000000000
--- a/nixpkgs/pkgs/development/python-modules/pam/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pam
-}:
-
-buildPythonPackage rec {
-  pname = "python-pam";
-  version = "1.8.4";
-
-  src = fetchFromGitHub {
-    owner = "FirefighterBlu3";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0gp7vzd332j7jwndcnz7kc9j283d6lyv32bndd1nqv9ghzv69sxp";
-  };
-
-  buildInputs = [
-    pam
-  ];
-
-  postPatch = ''
-    sed "s|find_library(\"pam\")|\"${pam}/lib/libpam.so\"|g" -i pam.py
-  '';
-
-  meta = with lib; {
-    description = "Python pam module supporting py3 (and py2)";
-    homepage = "https://github.com/FirefighterBlu3/python-pam";
-    license = licenses.mit;
-    maintainers = with maintainers; [ mkg20001 ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/pandas/default.nix b/nixpkgs/pkgs/development/python-modules/pandas/default.nix
index 5d7bb4a6d696..d4c9706fe654 100644
--- a/nixpkgs/pkgs/development/python-modules/pandas/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pandas/default.nix
@@ -21,6 +21,7 @@
 , tables
 , xlwt
 , runtimeShell
+, isPy38
 , libcxx ? null
 }:
 
@@ -30,11 +31,11 @@ let
 
 in buildPythonPackage rec {
   pname = "pandas";
-  version = "1.0.4";
+  version = "1.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b35d625282baa7b51e82e52622c300a1ca9f786711b2af7cbe64f1e6831f4126";
+    sha256 = "53328284a7bb046e2e885fd1b8c078bd896d7fc4575b915d4936f54984a2ba67";
   };
 
   checkInputs = [ pytest glibcLocales moto hypothesis ];
@@ -57,6 +58,10 @@ in buildPythonPackage rec {
     xlwt
   ];
 
+  # doesn't work with -Werror,-Wunused-command-line-argument
+  # https://github.com/NixOS/nixpkgs/issues/39687
+  hardeningDisable = optional stdenv.cc.isClang "strictoverflow";
+
   # For OSX, we need to add a dependency on libcxx, which provides
   # `complex.h` and other libraries that pandas depends on to build.
   postPatch = optionalString isDarwin ''
@@ -67,7 +72,9 @@ in buildPythonPackage rec {
                 "['pandas/src/klib', 'pandas/src', '$cpp_sdk']"
   '';
 
-  setupPyBuildFlags = [
+  # Parallel Cythonization is broken in Python 3.8 on Darwin. Fixed in the next
+  # release. https://github.com/pandas-dev/pandas/pull/30862
+  setupPyBuildFlags = optionals (!(isPy38 && isDarwin)) [
     # As suggested by
     # https://pandas.pydata.org/pandas-docs/stable/development/contributing.html#creating-a-python-environment
     "--parallel=$NIX_BUILD_CORES"
@@ -95,6 +102,9 @@ in buildPythonPackage rec {
     "order_without_freq"
     # tries to import from pandas.tests post install
     "util_in_top_level"
+    # Fails with 1.0.5
+    "test_constructor_list_frames"
+    "test_constructor_with_embedded_frames"
   ] ++ optionals isDarwin [
     "test_locale"
     "test_clipboard"
diff --git a/nixpkgs/pkgs/development/python-modules/panel/default.nix b/nixpkgs/pkgs/development/python-modules/panel/default.nix
index 27c2134f4f3e..0fc7bf7ee291 100644
--- a/nixpkgs/pkgs/development/python-modules/panel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/panel/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "panel";
-  version = "0.9.5";
+  version = "0.9.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "53340615f30f67f3182793695ebe52bf25e7bbb0751aba6f29763244350d0f42";
+    sha256 = "2e86d82bdd5e7664bf49558eedad62b664d5403ec9e422e5ddfcf69e3bd77318";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/papermill/default.nix b/nixpkgs/pkgs/development/python-modules/papermill/default.nix
index baa2ae7e4498..0e5c62277af2 100644
--- a/nixpkgs/pkgs/development/python-modules/papermill/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/papermill/default.nix
@@ -7,6 +7,7 @@
 , pyyaml
 , nbformat
 , nbconvert
+, nbclient
 , six
 , tqdm
 , jupyter_client
@@ -14,6 +15,7 @@
 , entrypoints
 , tenacity
 , futures
+, black
 , backports_tempfile
 , isPy27
 , pytest
@@ -23,11 +25,11 @@
 
 buildPythonPackage rec {
   pname = "papermill";
-  version = "1.2.1";
+  version = "2.1.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04dadaabdeb129c7414079f77b9f9a4a08f1322549aa99e20e4a12700ee23509";
+    sha256 = "ecd4cafa9179693b0eedc3b6f4560f9ee47826a6e366e42bfa3cc20f7931b3f8";
   };
 
   propagatedBuildInputs = [
@@ -37,12 +39,14 @@ buildPythonPackage rec {
     pyyaml
     nbformat
     nbconvert
+    nbclient
     six
     tqdm
     jupyter_client
     requests
     entrypoints
     tenacity
+    black
   ] ++ lib.optionals isPy27 [
     futures
     backports_tempfile
diff --git a/nixpkgs/pkgs/development/python-modules/papis/default.nix b/nixpkgs/pkgs/development/python-modules/papis/default.nix
index fbfb72bb8a09..a97c075d30f6 100644
--- a/nixpkgs/pkgs/development/python-modules/papis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/papis/default.nix
@@ -1,9 +1,9 @@
 { lib, buildPythonPackage, fetchFromGitHub, xdg_utils
 , requests, filetype, pyparsing, configparser, arxiv2bib
 , pyyaml, chardet, beautifulsoup4, colorama, bibtexparser
-, pylibgen, click, python-slugify, habanero, isbnlib
+, click, python-slugify, habanero, isbnlib, typing-extensions
 , prompt_toolkit, pygments, stevedore, tqdm, lxml
-, python-doi, isPy3k, pythonOlder
+, python-doi, isPy3k, pythonOlder, pytestcov
 #, optional, dependencies
 , whoosh, pytest
 , stdenv
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "papis";
-  version = "0.9";
+  version = "0.10";
   disabled = !isPy3k;
 
   # Missing tests on Pypi
@@ -19,14 +19,14 @@ buildPythonPackage rec {
     owner = "papis";
     repo = pname;
     rev = "v${version}";
-    sha256 = "15i79q6nr7gcpcafdz5797axmp6r3081sys07k1k2vi5b2g3qc4k";
+    sha256 = "0fmrvxs6ixfwjlp96b69db7fpvyqfy2n3c23kdz8yr0vhnp82l93";
   };
 
   propagatedBuildInputs = [
     requests filetype pyparsing configparser arxiv2bib
     pyyaml chardet beautifulsoup4 colorama bibtexparser
-    pylibgen click python-slugify habanero isbnlib
-    prompt_toolkit pygments
+    click python-slugify habanero isbnlib
+    prompt_toolkit pygments typing-extensions
     stevedore tqdm lxml
     python-doi
     # optional dependencies
@@ -36,6 +36,7 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace setup.py \
       --replace "lxml<=4.3.5" "lxml~=4.3" \
+      --replace "isbnlib>=3.9.1,<3.10" "isbnlib~=3.9" \
       --replace "python-slugify>=1.2.6,<4" "python-slugify"
   '';
 
@@ -43,7 +44,7 @@ buildPythonPackage rec {
   doCheck = !stdenv.isDarwin && pythonOlder "3.8";
 
   checkInputs = ([
-    pytest
+    pytest pytestcov
   ]) ++ [
     xdg_utils
   ];
@@ -54,7 +55,7 @@ buildPythonPackage rec {
   checkPhase = ''
     HOME=$(mktemp -d) pytest papis tests --ignore tests/downloaders \
       -k "not test_get_data and not test_doi_to_data and not test_general and not get_document_url \
-      and not test_validate_arxivid and not test_downloader_getter"
+      and not test_validate_arxivid and not test_downloader_getter and not match"
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/paramiko/default.nix b/nixpkgs/pkgs/development/python-modules/paramiko/default.nix
index 2fefbde74485..41951f1d8932 100644
--- a/nixpkgs/pkgs/development/python-modules/paramiko/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/paramiko/default.nix
@@ -1,6 +1,7 @@
 { pkgs
 , buildPythonPackage
 , fetchPypi
+, fetchpatch
 , cryptography
 , bcrypt
 , invoke
@@ -20,6 +21,13 @@ buildPythonPackage rec {
     sha256 = "920492895db8013f6cc0179293147f830b8c7b21fdfc839b6bad760c27459d9f";
   };
 
+  patches = [
+    # fix RSA key loading with cryptography 3.1, remove >2.7.1
+    (fetchpatch {
+      url = "https://github.com/paramiko/paramiko/commit/81064206bf3cec2ca4372257ff138481e1227b91.patch";
+      sha256 = "01b87ffgyvd6rilp1w1kf7lk29z706ch39nwl21ifklqpjhmazww";
+    })
+  ];
   checkInputs = [ invoke pytest mock pytest-relaxed ];
   propagatedBuildInputs = [ bcrypt cryptography pynacl pyasn1 ];
 
@@ -27,6 +35,7 @@ buildPythonPackage rec {
 
   # 2 sftp tests fail (skip for now)
   # test_config relies on artifacts to be to downloaded
+  # RSA tests don't have valid keys
   checkPhase = ''
     pytest tests \
       --ignore=tests/test_sftp.py \
@@ -37,7 +46,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/paramiko/paramiko/";
     description = "Native Python SSHv2 protocol library";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ aszlig ];
 
     longDescription = ''
       This is a library for making SSH2 connections (client or server).
diff --git a/nixpkgs/pkgs/development/python-modules/parfive/default.nix b/nixpkgs/pkgs/development/python-modules/parfive/default.nix
index 790c7ef5cdbf..a6dacf0402ee 100644
--- a/nixpkgs/pkgs/development/python-modules/parfive/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/parfive/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "parfive";
-  version = "1.0.2";
+  version = "1.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "90dfb05d0a65d00669f5245371a4b33cbebcb5cfba86f4aad7f956984394eefd";
+    sha256 = "5793fdf9859a9a9fc93f033db9dc067a89626910355a14bbe425feb3956df6db";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/parse/default.nix b/nixpkgs/pkgs/development/python-modules/parse/default.nix
index bb09646b6b46..7b160237d5eb 100644
--- a/nixpkgs/pkgs/development/python-modules/parse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/parse/default.nix
@@ -3,11 +3,11 @@
 }:
 buildPythonPackage rec {
   pname = "parse";
-  version = "1.15.0";
+  version = "1.18.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1h4m5df5grjpaf087g8ciishz5ajl28s3140s8bngppvy71f5m56";
+    sha256 = "91666032d6723dc5905248417ef0dc9e4c51df9526aaeef271eacad6491f06a4";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/parsedatetime/default.nix b/nixpkgs/pkgs/development/python-modules/parsedatetime/default.nix
index 914d5e2680fd..0b7d5cd6fb4c 100644
--- a/nixpkgs/pkgs/development/python-modules/parsedatetime/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/parsedatetime/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , pytest
 , pytestrunner
 , future
@@ -8,11 +9,12 @@
 
 buildPythonPackage rec {
   pname = "parsedatetime";
-  version = "2.5";
+  version = "2.6";
+  disabled = isPy27; # no longer compatible with icu package
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d2e9ddb1e463de871d32088a3f3cea3dc8282b1b2800e081bd0ef86900451667";
+    sha256 = "4cb368fbb18a0b7231f4d76119165451c8d2e35951455dfee97c62a87b04d455";
   };
 
   buildInputs = [ pytest pytestrunner ];
diff --git a/nixpkgs/pkgs/development/python-modules/parso/default.nix b/nixpkgs/pkgs/development/python-modules/parso/default.nix
index c6a15b8c99fc..f9a87fa5f65f 100644
--- a/nixpkgs/pkgs/development/python-modules/parso/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/parso/default.nix
@@ -1,24 +1,26 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytest
+, pythonOlder
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "parso";
-  version = "0.5.2";
+  version = "0.8.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "55cf25df1a35fd88b878715874d2c4dc1ad3f0eebd1e0266a67e1f55efccfbe1";
+    sha256 = "2b6db14759c528d857eeb9eac559c2166b2554548af39f5198bdfb976f72aa64";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
-  meta = {
+  meta = with lib; {
     description = "A Python Parser";
-    homepage = "https://github.com/davidhalter/parso";
-    license = lib.licenses.mit;
+    homepage = "https://parso.readthedocs.io/en/latest/";
+    changelog = "https://github.com/davidhalter/parso/blob/master/CHANGELOG.rst";
+    license = licenses.mit;
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/paste/default.nix b/nixpkgs/pkgs/development/python-modules/paste/default.nix
index 9d45f35d3657..5b12f04b2e5a 100644
--- a/nixpkgs/pkgs/development/python-modules/paste/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/paste/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "paste";
-  version = "3.4.0";
+  version = "3.4.1";
 
   src = fetchPypi {
     pname = "Paste";
     inherit version;
-    sha256 = "16sichvhyci1gaarkjs35mai8vphh7b244qm14hj1isw38nx4c03";
+    sha256 = "1csqn7g9b05hp3fgd82355k4pb5rv12k9x6p2mdw2v01m385171p";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/pastedeploy/default.nix b/nixpkgs/pkgs/development/python-modules/pastedeploy/default.nix
index d2ca8d445e42..b82192267d02 100644
--- a/nixpkgs/pkgs/development/python-modules/pastedeploy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pastedeploy/default.nix
@@ -6,12 +6,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.0.1";
+  version = "2.1.0";
   pname = "PasteDeploy";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d423fb9d51fdcf853aa4ff43ac7ec469b643ea19590f67488122d6d0d772350a";
+    sha256 = "e7559878b6e92023041484be9bcb6d767cf4492fc3de7257a5dae76a7cc11a9b";
   };
 
   buildInputs = [ pytestrunner ];
diff --git a/nixpkgs/pkgs/development/python-modules/patator/default.nix b/nixpkgs/pkgs/development/python-modules/patator/default.nix
index 46601c167553..81d9e50b28ff 100644
--- a/nixpkgs/pkgs/development/python-modules/patator/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/patator/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "patator";
-  version = "0.7";
+  version = "0.9";
   disabled = !(isPy3k);
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "335e432e6cc591437e316ba8c1da935484ca39fc79e595ccf60ccd9166e965f1";
+    sha256 = "68cb24bdc3042ee0d47a288b19a8b99a6c54bdbd4ddf0c5817d9b9ac0a0d8a15";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pathspec/default.nix b/nixpkgs/pkgs/development/python-modules/pathspec/default.nix
index caef384d2796..bb52cd51a141 100644
--- a/nixpkgs/pkgs/development/python-modules/pathspec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pathspec/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname   = "pathspec";
-  version = "0.6.0";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0p7ab7jx3wgg7xdj2q8yk99cz3xv2a5p1r8q9kfylnvqn34cr1g2";
+    sha256 = "da45173eb3a6f2a5a487efba21f050af2b41948be6ab52b6a1e3ff22bb8b7061";
   };
 
   meta = {
@@ -18,4 +18,4 @@ buildPythonPackage rec {
     license = lib.licenses.mpl20;
     maintainers = with lib.maintainers; [ copumpkin ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pc-ble-driver-py/default.nix b/nixpkgs/pkgs/development/python-modules/pc-ble-driver-py/default.nix
index d21d9d07150d..6250b5a2202d 100644
--- a/nixpkgs/pkgs/development/python-modules/pc-ble-driver-py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pc-ble-driver-py/default.nix
@@ -1,45 +1,25 @@
-{ stdenv, buildPythonPackage, fetchpatch, fetchFromGitHub,
-  python, cmake, git, swig, boost, udev,
-  setuptools, enum34, wrapt, future }:
+{ stdenv, fetchFromGitHub, cmake, git, swig, boost, udev, pc-ble-driver
+, buildPythonPackage, enum34, wrapt, future, setuptools, scikit-build }:
 
 buildPythonPackage rec {
   pname = "pc-ble-driver-py";
-  version = "0.11.4";
-  disabled = python.isPy3k;
+  version = "0.14.2";
 
   src = fetchFromGitHub {
     owner = "NordicSemiconductor";
     repo = "pc-ble-driver-py";
     rev = "v${version}";
-    fetchSubmodules = true;
-    sha256 = "0lgmcnrlcivmawmlcwnn4pdp6afdbnf3fyfgq22xzs6v72m9gp81";
+    sha256 = "1zbi3v4jmgq1a3ml34dq48y1hinw2008vwqn30l09r5vqvdgnj8m";
   };
 
-  nativeBuildInputs = [ cmake swig git setuptools ];
-  buildInputs = [ boost udev ];
-  propagatedBuildInputs = [ enum34 wrapt future ];
-
-  patches = [
-    # build system expects case-insensitive file system
-    (fetchpatch {
-      url = "https://patch-diff.githubusercontent.com/raw/NordicSemiconductor/pc-ble-driver-py/pull/84.patch";
-      sha256 = "0ibx5g2bndr5h9sfnx51bk9b62q4jvpdwhxadbnj3da8kvcz13cy";
-    })
-  ];
+  # doCheck tries to write to the global python directory to install things
+  doCheck = false;
 
-  postPatch = ''
-    # do not force static linking of boost
-    sed -i /Boost_USE_STATIC_LIBS/d pc-ble-driver/cmake/*.cmake
-
-    cd python
-  '';
+  nativeBuildInputs = [ cmake swig git setuptools scikit-build ];
+  buildInputs = [ boost pc-ble-driver ];
+  propagatedBuildInputs = [ enum34 wrapt future ];
 
-  preBuild = ''
-    pushd ../build
-    cmake ..
-    make -j $NIX_BUILD_CORES
-    popd
-  '';
+  dontUseCmakeConfigure = true;
 
   meta = with stdenv.lib; {
     description = "Bluetooth Low Energy nRF5 SoftDevice serialization";
diff --git a/nixpkgs/pkgs/development/python-modules/pcpp/default.nix b/nixpkgs/pkgs/development/python-modules/pcpp/default.nix
index f621140f137b..f57798c40a84 100644
--- a/nixpkgs/pkgs/development/python-modules/pcpp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pcpp/default.nix
@@ -14,7 +14,7 @@ buildPythonPackage rec {
     sha256 = "0k52qyxzdngdhyn4sya2qn1w1a4ll0mcla4h4gb1v91fk4lw25dm";
     fetchSubmodules = true;
   };
- 
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/ned14/pcpp";
     description = "A C99 preprocessor written in pure Python";
diff --git a/nixpkgs/pkgs/development/python-modules/pdfminer_six/default.nix b/nixpkgs/pkgs/development/python-modules/pdfminer_six/default.nix
index 979b116b7137..08f482e6221f 100644
--- a/nixpkgs/pkgs/development/python-modules/pdfminer_six/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pdfminer_six/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, isPy3k, pycryptodome, chardet, nose, sortedcontainers }:
+{ stdenv, buildPythonPackage, fetchFromGitHub, isPy3k, cryptography, chardet, nose, sortedcontainers }:
 
 buildPythonPackage rec {
   pname = "pdfminer_six";
-  version = "20200517";
+  version = "20200726";
 
   disabled = !isPy3k;
 
@@ -11,10 +11,10 @@ buildPythonPackage rec {
     owner = "pdfminer";
     repo = "pdfminer.six";
     rev = version;
-    sha256 = "00272pxkh6djm37yvlvgd06w7ycf35srwk6n3p58ppw5hgmpkhc2";
+    sha256 = "1hlaz7ax1czb028x3nhk3l2jy07f26q5hbhmdirljaaga24vd96z";
   };
 
-  propagatedBuildInputs = [ chardet pycryptodome sortedcontainers ];
+  propagatedBuildInputs = [ chardet cryptography sortedcontainers ];
 
   checkInputs = [ nose ];
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pdftotext/default.nix b/nixpkgs/pkgs/development/python-modules/pdftotext/default.nix
index 24be7ce7f864..a52160363df9 100644
--- a/nixpkgs/pkgs/development/python-modules/pdftotext/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pdftotext/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pdftotext";
-  version = "2.1.4";
+  version = "2.1.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "00xf3jmpb4m3q758wvk4khpcmiys4gmd88vvrz6i7yw1jl268y6k";
+    sha256 = "98aeb8b07a4127e1a30223bd933ef080bbd29aa88f801717ca6c5618380b8aa6";
   };
 
   buildInputs = [ poppler ];
diff --git a/nixpkgs/pkgs/development/python-modules/pecan/default.nix b/nixpkgs/pkgs/development/python-modules/pecan/default.nix
index 9f3c009f8c12..332f5153a981 100644
--- a/nixpkgs/pkgs/development/python-modules/pecan/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pecan/default.nix
@@ -1,38 +1,59 @@
 { stdenv
 , fetchPypi
 , buildPythonPackage
+, isPy27
 # Python deps
-, singledispatch
 , logutils
-, webtest
 , Mako
+, singledispatch
+, six
+, webtest
+# Test Inputs
+, pytestCheckHook
 , genshi
-, Kajiki
-, sqlalchemy
 , gunicorn
 , jinja2
-, virtualenv
+, Kajiki
 , mock
+, sqlalchemy
+, uwsgi
+, virtualenv
 }:
 
 buildPythonPackage rec {
   pname = "pecan";
-  version = "1.3.3";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b5461add4e3f35a7ee377b3d7f72ff13e93f40f3823b3208ab978b29bde936ff";
+    sha256 = "4b2acd6802a04b59e306d0a6ccf37701d24376f4dc044bbbafba3afdf9d3389a";
   };
 
-  propagatedBuildInputs = [ singledispatch logutils ];
-  buildInputs = [
-    webtest Mako genshi Kajiki sqlalchemy gunicorn jinja2 virtualenv
+  propagatedBuildInputs = [
+    logutils
+    Mako
+    singledispatch
+    six
+    webtest
   ];
 
-  checkInputs = [ mock ];
+  checkInputs = [
+    pytestCheckHook
+    genshi
+    gunicorn
+    jinja2
+    mock
+    sqlalchemy
+    virtualenv
+  ] ++ stdenv.lib.optionals isPy27 [ Kajiki ];
+
+  pytestFlagsArray = [
+    "--pyargs pecan "
+  ];
 
   meta = with stdenv.lib; {
     description = "Pecan";
-    homepage = "https://github.com/pecan/pecan";
+    homepage = "http://www.pecanpy.org/";
+    changelog = "https://pecan.readthedocs.io/en/latest/changes.html";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/peewee/default.nix b/nixpkgs/pkgs/development/python-modules/peewee/default.nix
index 3cc5c3eec496..ee3d08a173c3 100644
--- a/nixpkgs/pkgs/development/python-modules/peewee/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/peewee/default.nix
@@ -10,14 +10,14 @@
 buildPythonPackage rec {
 
   pname = "peewee";
-  version = "3.11.2";
+  version = "3.13.3";
 
   # pypi release does not provide tests
   src = fetchFromGitHub {
     owner = "coleifer";
     repo = pname;
     rev = version;
-    sha256 = "097cafqgk46bf0innwm7xnmsfs6z37hv3alyvrfz6d0iy4scshm5";
+    sha256 = "1r67hxb9m6v0xbnbqfnsw6dahmdr94pf81b4x51jfw6x9sa4izi4";
   };
 
 
@@ -38,6 +38,8 @@ buildPythonPackage rec {
   ] ++ (lib.optional withPostgres psycopg2)
     ++ (lib.optional withMysql mysql-connector);
 
+  doCheck = withPostgres;
+
   meta = with stdenv.lib;{
     description = "a small, expressive orm";
     homepage    = "http://peewee-orm.com";
diff --git a/nixpkgs/pkgs/development/python-modules/pelican/default.nix b/nixpkgs/pkgs/development/python-modules/pelican/default.nix
index c7c1ced34f14..30d6546d5705 100644
--- a/nixpkgs/pkgs/development/python-modules/pelican/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pelican/default.nix
@@ -1,18 +1,20 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub
+{ stdenv, buildPythonPackage, fetchFromGitHub, isPy27
 , glibcLocales, git
 , mock, nose, markdown, lxml, typogrify
 , jinja2, pygments, docutils, pytz, unidecode, six, dateutil, feedgenerator
-, blinker, pillow, beautifulsoup4, markupsafe }:
+, blinker, pillow, beautifulsoup4, markupsafe, pandoc }:
 
 buildPythonPackage rec {
   pname = "pelican";
-  version = "4.2.0";
+  version = "4.5.0";
+
+  disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "getpelican";
     repo = "pelican";
     rev = version;
-    sha256 = "0w9nqdw2jmqc6kqwg4rh6irr5k6j7hk8axg6vgd137rs50v62yv5";
+    sha256 = "0p8p84fcpkr19d54dhxvldd8ijbg334wmrmkr99pnbrdl1gf64qi";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     extraPostFetch = ''
@@ -24,15 +26,15 @@ buildPythonPackage rec {
 
   # Exclude custom locale test, which files were removed above to fix the source checksum
   checkPhase = ''
-    nosetests -sv --exclude=test_custom_locale_generation_works pelican
+    nosetests -s \
+      --exclude=test_custom_locale_generation_works \
+      --exclude=test_log_filter \
+      pelican
   '';
 
   buildInputs = [
     glibcLocales
-    # Note: Pelican has to adapt to a changed CLI of pandoc before enabling this
-    # again. Compare https://github.com/getpelican/pelican/pull/2252.
-    # Version 4.2.0 is incompatible with our current pandoc version.
-    # pandoc
+    pandoc
     git
     mock
     markdown
@@ -46,21 +48,16 @@ buildPythonPackage rec {
 
   checkInputs = [
     nose
+    pandoc
   ];
 
   postPatch= ''
     substituteInPlace pelican/tests/test_pelican.py \
       --replace "'git'" "'${git}/bin/git'"
-
-    # Markdown-3.1 changed footnote separator to colon
-    # https://github.com/getpelican/pelican/issues/2493#issuecomment-491723744
-    sed -i '/test_article_with_footnote/i\
-        @unittest.skip("")' pelican/tests/test_readers.py
   '';
 
   LC_ALL="en_US.UTF-8";
 
-
   # We only want to patch shebangs in /bin, and not those
   # of the project scripts that are created by Pelican.
   # See https://github.com/NixOS/nixpkgs/issues/30116
diff --git a/nixpkgs/pkgs/development/python-modules/pendulum/default.nix b/nixpkgs/pkgs/development/python-modules/pendulum/default.nix
index 77217d1c38d6..5688090b0958 100644
--- a/nixpkgs/pkgs/development/python-modules/pendulum/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pendulum/default.nix
@@ -1,16 +1,30 @@
 { lib, fetchPypi, buildPythonPackage, pythonOlder
-, dateutil, pytzdata, typing }:
+, dateutil
+, importlib-metadata
+, poetry
+, poetry-core
+, pytzdata
+, typing
+}:
 
 buildPythonPackage rec {
   pname = "pendulum";
-  version = "2.0.5";
+  version = "2.1.2";
+  format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d3078e007315a959989c41cee5cfd63cfeeca21dd3d8295f4bc24199489e9b6c";
+    sha256 = "b06a0ca1bfe41c990bbf0c029f0b6501a7f2ec4e38bfec730712015e8860f207";
   };
 
-  propagatedBuildInputs = [ dateutil pytzdata ] ++ lib.optional (pythonOlder "3.5") typing;
+  preBuild = ''
+    export HOME=$TMPDIR
+  '';
+
+  nativeBuildInputs = [ poetry-core ];
+  propagatedBuildInputs = [ dateutil pytzdata ]
+  ++ lib.optional (pythonOlder "3.5") typing
+  ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # No tests
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/pep517/default.nix b/nixpkgs/pkgs/development/python-modules/pep517/default.nix
new file mode 100644
index 000000000000..a56366569844
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pep517/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, flit-core
+, toml
+, pythonOlder
+, importlib-metadata
+, zipp
+, pytestCheckHook
+, testpath
+, mock
+, pip
+}:
+
+buildPythonPackage rec {
+  pname = "pep517";
+  version = "0.8.2";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "8e6199cf1288d48a0c44057f112acf18aa5ebabbf73faa242f598fbe145ba29e";
+  };
+
+  nativeBuildInputs = [
+    flit-core
+  ];
+
+  propagatedBuildInputs = [
+    toml
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata zipp
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    testpath
+    mock
+    pip
+  ];
+
+  preCheck = ''
+    rm pytest.ini # wants flake8
+    rm tests/test_meta.py # wants to run pip
+  '';
+
+  meta = {
+    description = "Wrappers to build Python packages using PEP 517 hooks";
+    license = lib.licenses.mit;
+    homepage = "https://github.com/pypa/pep517";
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pep8-naming/default.nix b/nixpkgs/pkgs/development/python-modules/pep8-naming/default.nix
index 4b85ba47ab36..5f6ef894d8ff 100644
--- a/nixpkgs/pkgs/development/python-modules/pep8-naming/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pep8-naming/default.nix
@@ -1,17 +1,21 @@
-{ lib, fetchPypi, buildPythonPackage
-, flake8-polyfill }:
+{ lib, fetchPypi, buildPythonPackage, pythonOlder
+, flake8-polyfill
+, importlib-metadata
+}:
 
 buildPythonPackage rec {
   pname = "pep8-naming";
-  version = "0.10.0";
+  version = "0.11.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0fmzccbmr0jn9ynamdb9ly2ai8qs5qfk8alfgnzr3fbjvpwsbd7k";
+    sha256 = "0937rnk3c2z1jkdmbw9hfm80p5k467q7rqhn6slfiprs4kflgpd1";
   };
 
   propagatedBuildInputs = [
     flake8-polyfill
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/persim/default.nix b/nixpkgs/pkgs/development/python-modules/persim/default.nix
index b59fa3035730..0979afa92f4a 100644
--- a/nixpkgs/pkgs/development/python-modules/persim/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/persim/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "persim";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0vz6s49ar7mhg4pj4jcbwb79s8acqj6jc70va5w79pjxb5pw8k2n";
+    sha256 = "be4ea4bfc2a0c6fcfc28ebd52e23a351ee00b0ef0ddaf527526bd0f919145348";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/persistent/default.nix b/nixpkgs/pkgs/development/python-modules/persistent/default.nix
index 76d5441c048a..07ba3ecd1cf9 100644
--- a/nixpkgs/pkgs/development/python-modules/persistent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/persistent/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "persistent";
-  version = "4.5.1";
+  version = "4.6.4";
 
   nativeBuildInputs = [ sphinx manuel ];
   propagatedBuildInputs = [ zope_interface cffi ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "73862779577cb8637f2b68e7edee9a9b95cf33d0b83cb6e762f0f3fc12897aa6";
+    sha256 = "f83f54355a44cf8ec38c29ce47b378a8c70444e9a745581dbb13d201a24cb546";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/pex/default.nix b/nixpkgs/pkgs/development/python-modules/pex/default.nix
index 10001d1d6027..9eb722633025 100644
--- a/nixpkgs/pkgs/development/python-modules/pex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pex/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pex";
-  version = "2.0.3";
+  version = "2.1.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a8a35e7eb212616b2964d70d8a134d41d16649c943ab206b90c749c005e60999";
+    sha256 = "e1092ae52cfdef41c22d98fa98f9225ac21936a7d096131777ca3a7940fe1b2d";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/nixpkgs/pkgs/development/python-modules/pexpect/default.nix b/nixpkgs/pkgs/development/python-modules/pexpect/default.nix
index 4c287cfc37cc..aead62913c7b 100644
--- a/nixpkgs/pkgs/development/python-modules/pexpect/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pexpect/default.nix
@@ -2,15 +2,16 @@
 , buildPythonPackage
 , fetchPypi
 , ptyprocess
+, isPy3k
 }:
 
-buildPythonPackage rec {
+buildPythonPackage (rec {
   pname = "pexpect";
-  version = "4.7.0";
+  version = "4.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9e2c1fd0e6ee3a49b28f95d4b33bc389c89b20af6a1255906e90ff1262ce62eb";
+    sha256 = "fc65a43959d153d0114afe13997d439c22823a27cefceb5ff35c2178c6784c0c";
   };
 
   # Wants to run pythonin a subprocess
@@ -40,4 +41,8 @@ buildPythonPackage rec {
       any platform that supports the standard Python pty module.
     '';
   };
-}
+# TODO: move into main set, this was to avoid a rebuild
+} // lib.optionalAttrs (!isPy3k ) {
+  # syntax error in _async module, likely intended only for Python 3.
+  dontUsePythonRecompileBytecode = !isPy3k;
+})
diff --git a/nixpkgs/pkgs/development/python-modules/pg8000/default.nix b/nixpkgs/pkgs/development/python-modules/pg8000/default.nix
index 9131d8adaa22..e4a158a7183b 100644
--- a/nixpkgs/pkgs/development/python-modules/pg8000/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pg8000/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "pg8000";
-  version = "1.13.2";
+  version = "1.16.5";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "eebcb4176a7e407987e525a07454882f611985e0becb2b73f76efb93bbdc0aab";
+    sha256 = "8af70cdfcc1fadafa32468a6af563e1c0b5271c4dcc99a4490030a128cb295a3";
   };
 
   propagatedBuildInputs = [ passlib ];
diff --git a/nixpkgs/pkgs/development/python-modules/pglast/default.nix b/nixpkgs/pkgs/development/python-modules/pglast/default.nix
index 1668cd94ade9..032524fc5df3 100644
--- a/nixpkgs/pkgs/development/python-modules/pglast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pglast/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "pglast";
-  version = "1.11";
+  version = "1.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8463d60b9065daf26e3c0fa6e7515d2a4594847ab417be018858832a475105f1";
+    sha256 = "b5d6a105928d2285e43afb87d638ada844ed8933cc306c23a3c095684f3d3af4";
   };
 
   disabled = !isPy3k;
diff --git a/nixpkgs/pkgs/development/python-modules/phik/default.nix b/nixpkgs/pkgs/development/python-modules/phik/default.nix
index ca1b5ba65da7..b309fb287d80 100644
--- a/nixpkgs/pkgs/development/python-modules/phik/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/phik/default.nix
@@ -5,6 +5,7 @@
 , pytest
 , pytest-pylint
 , nbconvert
+, joblib
 , jupyter_client
 , numpy
 , scipy
@@ -15,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "phik";
-  version = "0.9.12";
+  version = "0.10.0";
   format = "wheel";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version format;
     python = "py3";
-    sha256 = "c4f86e5587e5b456e69bf69d95d07fe7aafc341c40f8f3a21dd5b52272e9ae7b";
+    sha256 = "b745313c5ff9d6a3092eefa97f83fa4dbed178c9ce69161b655e95497cb2f38b";
   };
 
   checkInputs = [
@@ -33,6 +34,7 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
+    joblib
     numpy
     scipy
     pandas
diff --git a/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix b/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix
index 2ba64faad31e..1aef55e82113 100644
--- a/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/phonenumbers/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "phonenumbers";
-  version = "8.12.5";
+  version = "8.12.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3586f19abeb92aa6b539d7a4757cb507cf54efcd78224e895caf20fbdde07c26";
+    sha256 = "3a8b8f7b60ea00b83ca588b5ca57e48d9a3c223aa42f1a3d5fa88566424216c3";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/phonopy/default.nix b/nixpkgs/pkgs/development/python-modules/phonopy/default.nix
index 5dd4e25b6620..b476543c06a9 100644
--- a/nixpkgs/pkgs/development/python-modules/phonopy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/phonopy/default.nix
@@ -1,23 +1,23 @@
-{ stdenv, buildPythonPackage, python, fetchPypi, numpy, pyyaml, matplotlib, h5py }:
+{ stdenv, buildPythonPackage, python, fetchPypi, numpy, pyyaml, matplotlib, h5py, spglib, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "phonopy";
-  version = "2.4.2";
+  version = "2.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6e6ce41ce8a51723b94d974adfee032cddce5b9300984dd23b59e101ed0a2861";
+    sha256 = "482c6ff29c058d091ac885e561e28ba3e516ea9e91c44a951cad11f3ae19856c";
   };
 
-  propagatedBuildInputs = [ numpy pyyaml matplotlib h5py ];
+  propagatedBuildInputs = [ numpy pyyaml matplotlib h5py spglib ];
 
-  checkPhase = ''
-    cd test
-    # dynamic structure factor test ocassionally fails do to roundoff
-    # see issue https://github.com/atztogo/phonopy/issues/79
-    rm spectrum/test_dynamic_structure_factor.py
-    ${python.interpreter} -m unittest discover -b
-    cd ../..
+  checkInputs = [ pytestCheckHook ];
+  # flakey due to floating point inaccuracy
+  disabledTests = [ "test_NaCl" ];
+
+  # prevent pytest from importing local directory
+  preCheck = ''
+    rm -r phonopy
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/picos/default.nix b/nixpkgs/pkgs/development/python-modules/picos/default.nix
index ca6346d1cd24..a6f1aa1a141d 100644
--- a/nixpkgs/pkgs/development/python-modules/picos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/picos/default.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   checkInputs = [
     networkx
   ];
-  
+
   propagatedBuildInputs = [
     numpy
     cvxopt
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   checkPhase = ''
     ${python.interpreter} test.py
   '';
-  
+
   meta = with lib; {
     description = "A Python interface to conic optimization solvers";
     homepage = "https://gitlab.com/picos-api/picos";
diff --git a/nixpkgs/pkgs/development/python-modules/pid/default.nix b/nixpkgs/pkgs/development/python-modules/pid/default.nix
index 2fad490bc426..e934ea4577b4 100644
--- a/nixpkgs/pkgs/development/python-modules/pid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pid/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pid";
-  version = "3.0.3";
+  version = "3.0.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0z9w99m1vppppj2ypgm0flslgwcjjzlr7x3m62sccavgbg1n2nwj";
+    sha256 = "0e33670e83f6a33ebb0822e43a609c3247178d4a375ff50a4689e266d853eb66";
   };
 
   buildInputs = [ nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/pikepdf/default.nix b/nixpkgs/pkgs/development/python-modules/pikepdf/default.nix
index 86aef0d6adf9..3db9a2642c7c 100644
--- a/nixpkgs/pkgs/development/python-modules/pikepdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pikepdf/default.nix
@@ -22,12 +22,12 @@
 
 buildPythonPackage rec {
   pname = "pikepdf";
-  version = "1.13.0";
+  version = "1.18.0";
   disabled = ! isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0fpsjrppka0mrmkbzysi1s072d18ilsnch4lhd21k2qmvxp2hpmk";
+    sha256 = "4d0840a5c16b535f9b6e56fb4421a43f88760e6cabcf7fd44bdd0436107b61dc";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pillow/6.nix b/nixpkgs/pkgs/development/python-modules/pillow/6.nix
index ad69f4f23450..64f162c24eb7 100644
--- a/nixpkgs/pkgs/development/python-modules/pillow/6.nix
+++ b/nixpkgs/pkgs/development/python-modules/pillow/6.nix
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   checkPhase = ''
     runHook preCheck
-    python -m pytest -v -x -W always
+    python -m pytest -v -x -W always${stdenv.lib.optionalString stdenv.isDarwin " --deselect=Tests/test_file_icns.py::TestFileIcns::test_save --deselect=Tests/test_imagegrab.py::TestImageGrab::test_grab"}
     runHook postCheck
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/pillow/default.nix b/nixpkgs/pkgs/development/python-modules/pillow/default.nix
index cc9a77be7827..ab971e4201b5 100644
--- a/nixpkgs/pkgs/development/python-modules/pillow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pillow/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "Pillow";
-  version = "7.1.2";
+  version = "7.2.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1pdh1zzdwxilvsjg6rnl4q810pc2p2y16q6lx9gzzihb25h9kd50";
+    sha256 = "97f9e7953a77d5a70f49b9a48da7776dc51e9b738151b22dacf101641594a626";
   };
 
   # Disable imagefont tests, because they don't work well with infinality:
diff --git a/nixpkgs/pkgs/development/python-modules/pims/default.nix b/nixpkgs/pkgs/development/python-modules/pims/default.nix
index c7037cf5385f..76eaa4fac698 100644
--- a/nixpkgs/pkgs/development/python-modules/pims/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pims/default.nix
@@ -10,12 +10,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.4.1";
+  version = "0.5";
   pname = "PIMS";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6a53a155e900b44e71127a1e1fccbfbaed7eec3c2b52497c40c23a05f334c9dd";
+    sha256 = "a02cdcbb153e2792042fb0bae7df4f30878bbba1f2d176114a87ee0dc18715a0";
   };
 
   checkInputs = [ nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/pint/default.nix b/nixpkgs/pkgs/development/python-modules/pint/default.nix
index 532d9d0ede87..bb2a20cf62f3 100644
--- a/nixpkgs/pkgs/development/python-modules/pint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pint/default.nix
@@ -1,10 +1,10 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy27
 , pythonOlder
-, funcsigs
 , setuptools_scm
+, importlib-metadata
+, packaging
 # Check Inputs
 , pytestCheckHook
 , numpy
@@ -14,19 +14,20 @@
 
 buildPythonPackage rec {
   pname = "pint";
-  version = "0.11";
+  version = "0.14";
 
   src = fetchPypi {
     inherit version;
     pname = "Pint";
-    sha256 = "0kfgnmcs6z9ndhzvwg2xzhpwxgyyagdsdz5dns1jy40fa1q113rh";
+    sha256 = "0wkzb7g20wzpqr3xaqpq96dlfv6irw202icsz81ys8npp7mm194s";
   };
 
   disabled = pythonOlder "3.6";
 
-  propagatedBuildInputs = [
-    setuptools_scm
-  ] ++ lib.optional isPy27 funcsigs;
+  nativeBuildInputs = [ setuptools_scm ];
+  
+  propagatedBuildInputs = [ packaging ]
+    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # Test suite explicitly requires pytest
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pip-tools/default.nix b/nixpkgs/pkgs/development/python-modules/pip-tools/default.nix
index 02e6edfffce2..104619711a72 100644
--- a/nixpkgs/pkgs/development/python-modules/pip-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pip-tools/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pip-tools";
-  version = "4.5.1";
+  version = "5.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "166crncd9zrk9wgk9dss9968mx2c1dzj80sjnaqrcmw7a7j30gv9";
+    sha256 = "5672c2b6ca0f1fd803f3b45568c2cf7fadf135b4971e7d665232b2075544c0ef";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/nixpkgs/pkgs/development/python-modules/pip/default.nix b/nixpkgs/pkgs/development/python-modules/pip/default.nix
index 8c2247c24aa6..fa566c8951ab 100644
--- a/nixpkgs/pkgs/development/python-modules/pip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pip/default.nix
@@ -14,17 +14,21 @@
 
 buildPythonPackage rec {
   pname = "pip";
-  version = "20.1";
+  version = "20.1.1";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "pypa";
     repo = pname;
     rev = version;
-    sha256 = "0s9z72cpa15p2bp7zq1lid8k2ykrznfzjwpq5f41v3f30faraxg7";
+    sha256 = "01wq01ysv0ijcrg8a4mj72zb8al15b8vw8g3ywhxq53kbsyhfxn4";
     name = "${pname}-${version}-source";
   };
 
+  # Remove when solved https://github.com/NixOS/nixpkgs/issues/81441
+  # Also update pkgs/development/interpreters/python/hooks/pip-install-hook.sh accordingly
+  patches = [ ./reproducible.patch ];
+
   nativeBuildInputs = [ bootstrapped-pip ];
 
   # pip detects that we already have bootstrapped_pip "installed", so we need
diff --git a/nixpkgs/pkgs/development/python-modules/pip/reproducible.patch b/nixpkgs/pkgs/development/python-modules/pip/reproducible.patch
new file mode 100644
index 000000000000..528ac2b49b03
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pip/reproducible.patch
@@ -0,0 +1,13 @@
+diff --git a/src/pip/_internal/operations/install/wheel.py b/src/pip/_internal/operations/install/wheel.py
+index e7315ee4..4e36b03d 100644
+--- a/src/pip/_internal/operations/install/wheel.py
++++ b/src/pip/_internal/operations/install/wheel.py
+@@ -615,6 +615,8 @@ def install_wheel(
+     direct_url=None,  # type: Optional[DirectUrl]
+ ):
+     # type: (...) -> None
++    _temp_dir_for_testing = (
++        _temp_dir_for_testing or os.environ.get("NIX_PIP_INSTALL_TMPDIR"))
+     with TempDirectory(
+         path=_temp_dir_for_testing, kind="unpacked-wheel"
+     ) as unpacked_dir, ZipFile(wheel_path, allowZip64=True) as z:
diff --git a/nixpkgs/pkgs/development/python-modules/pip2nix/default.nix b/nixpkgs/pkgs/development/python-modules/pip2nix/default.nix
deleted file mode 100644
index f6474883b83a..000000000000
--- a/nixpkgs/pkgs/development/python-modules/pip2nix/default.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, click
-, configobj
-, contexter
-, jinja2
-, pytest
-, pip
-}:
-
-buildPythonPackage rec {
-  pname = "pip2nix";
-  version = "0.7.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "ec9a71e09ac7f43cc7b6c9d386384eb7b5c331bf6ea0e72ca559d87979397a95";
-  };
-
-  propagatedBuildInputs = [ click configobj contexter pip jinja2 pytest ];
-
-  postPatch = ''
-    sed -i "s/'pip>=8,<10'/'pip'/" setup.py
-    sed -i "s/pip<10,>=8/pip/" ${pname}.egg-info/requires.txt
-  '';
-
-  # tests not included with pypi release
-  doCheck = false;
-
-  # Requires an old pip version
-  broken = true;
-
-  meta = with stdenv.lib; {
-    description = "Generate Nix expressions for Python packages";
-    homepage = "https://github.com/johbo/pip2nix";
-    license = licenses.gpl3;
-  };
-
-}
diff --git a/nixpkgs/pkgs/development/python-modules/pipdate/default.nix b/nixpkgs/pkgs/development/python-modules/pipdate/default.nix
index 8dff09655799..35fbb624e6b7 100644
--- a/nixpkgs/pkgs/development/python-modules/pipdate/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pipdate/default.nix
@@ -1,23 +1,33 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
+, isPy27
 , appdirs
+, importlib-metadata
 , requests
 , pytest
+, wheel
 }:
 
 buildPythonPackage rec {
   pname = "pipdate";
-  version = "0.3.5";
+  version = "0.5.2";
+  format = "pyproject";
+  disabled = isPy27; # abandoned
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "240c0f270ddb7470ad7b8c8fba4106e3dbd8817a370624fd8c32cf19155c9547";
+    sha256 = "507065231f2d50b6319d483432cba82aadad78be21b7a2969b5881ed8dee9ab4";
   };
 
+  nativeBuildInputs = [ wheel ];
+
   propagatedBuildInputs = [
     appdirs
     requests
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
   ];
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pipx/default.nix b/nixpkgs/pkgs/development/python-modules/pipx/default.nix
new file mode 100644
index 000000000000..3b35b67bf091
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pipx/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, userpath
+, argcomplete
+, packaging
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pipx";
+  version = "0.15.5.1";
+
+  disabled = pythonOlder "3.6";
+
+  # no tests in the pypi tarball, so we directly fetch from github
+  src = fetchFromGitHub {
+    owner = "pipxproject";
+    repo = pname;
+    rev = version;
+    sha256 = "0lq8dfkq4ji11r4k5csqzyv0757fbxiax6ixn94f9747zrikssf6";
+  };
+
+  propagatedBuildInputs = [ userpath argcomplete packaging ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  # disable tests, which require internet connection
+  disabledTests = [
+    "install"
+    "inject"
+    "ensure_null_pythonpath"
+    "missing_interpreter"
+    "cache"
+    "internet"
+    "runpip"
+    "upgrade"
+  ];
+
+  meta = with lib; {
+    description =
+      "Install and Run Python Applications in Isolated Environments";
+    homepage = "https://github.com/pipxproject/pipx";
+    license = licenses.mit;
+    maintainers = with maintainers; [ yevhenshymotiuk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pivy/default.nix b/nixpkgs/pkgs/development/python-modules/pivy/default.nix
index 36427f995859..3d3f93f21a27 100644
--- a/nixpkgs/pkgs/development/python-modules/pivy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pivy/default.nix
@@ -1,31 +1,31 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pkgs }:
+{ stdenv, buildPythonPackage, fetchFromGitHub, pkgs, qtbase, qmake, soqt }:
 
 buildPythonPackage rec {
   pname = "pivy";
-  version = "0.6.5a2";
+  version = "0.6.5";
 
   src = fetchFromGitHub {
-    owner = "FreeCAD";
+    owner = "coin3d";
     repo = "pivy";
     rev = version;
-    sha256 = "1w03jaha36bjyfaz8hchnv8yrkm5715w15crhd3qrlagz8fs38hm";
+    sha256 = "0vids7sxk8w5vr73xdnf8xdci71a7syl6cd35aiisppbqyyfmykx";
   };
 
   nativeBuildInputs = with pkgs; [
-    swig qt5.qmake cmake
+    swig qmake cmake
   ];
 
   buildInputs = with pkgs; with xorg; [
-    coin3d soqt qt5.qtbase
+    coin3d soqt qtbase
     libGLU libGL
     libXi libXext libSM libICE libX11
   ];
 
   NIX_CFLAGS_COMPILE = toString [
-    "-I${pkgs.qt5.qtbase.dev}/include/QtCore"
-    "-I${pkgs.qt5.qtbase.dev}/include/QtGui"
-    "-I${pkgs.qt5.qtbase.dev}/include/QtOpenGL"
-    "-I${pkgs.qt5.qtbase.dev}/include/QtWidgets"
+    "-I${qtbase.dev}/include/QtCore"
+    "-I${qtbase.dev}/include/QtGui"
+    "-I${qtbase.dev}/include/QtOpenGL"
+    "-I${qtbase.dev}/include/QtWidgets"
   ];
 
   dontUseQmakeConfigure = true;
diff --git a/nixpkgs/pkgs/development/python-modules/pkuseg/default.nix b/nixpkgs/pkgs/development/python-modules/pkuseg/default.nix
new file mode 100644
index 000000000000..3b1c2bd5bce4
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pkuseg/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, cython
+, numpy
+}:
+
+buildPythonPackage rec {
+  pname = "pkuseg";
+  version = "0.0.25";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "148yp0l7h8cflxag62pc1iwj5b5liyljnaxwfjaiqwl96vwjn0fx";
+  };
+
+  # Does not seem to have actual tests, but unittest discover
+  # recognizes some non-tests as tests and fails.
+  doCheck = false;
+
+  nativeBuildInputs = [ cython ];
+
+  propagatedBuildInputs = [ numpy ];
+
+  pythonImportsCheck = [ "pkuseg" ];
+
+  meta = with stdenv.lib; {
+    description = "Toolkit for multi-domain Chinese word segmentation";
+    homepage = "https://github.com/lancopku/pkuseg-python";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pkutils/default.nix b/nixpkgs/pkgs/development/python-modules/pkutils/default.nix
new file mode 100644
index 000000000000..d674e876b147
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pkutils/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, pythonOlder
+, buildPythonPackage
+, isPy3k
+, fetchFromGitHub
+, semver
+  # Check Inputs
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "pkutils";
+  version = "1.1.1";
+  disabled = !isPy3k; # some tests using semver fail due to unicode errors on Py2.7
+
+  src = fetchFromGitHub {
+    owner = "reubano";
+    repo = "pkutils";
+    rev = "v${version}";
+    sha256 = "01yaq9sz6vyxk8yiss6hsmy70qj642cr2ifk0sx1mlh488flcm62";
+  };
+
+  propagatedBuildInputs = [ semver ];
+
+  # Remove when https://github.com/reubano/pkutils/pull/4 merged
+  postPatch = ''
+    substituteInPlace requirements.txt --replace "semver>=2.2.1,<2.7.3" "semver"
+  '';
+
+  checkInputs = [ nose ];
+  pythonImportsCheck = [ "pkutils" ];
+
+  checkPhase = "nosetests";
+
+  meta = with lib; {
+    description = "A Python packaging utility library";
+    homepage = "https://github.com/reubano/pkutils/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ drewrisinger ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/plac/default.nix b/nixpkgs/pkgs/development/python-modules/plac/default.nix
index 789f1ca1ff22..dbcd7f213008 100644
--- a/nixpkgs/pkgs/development/python-modules/plac/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plac/default.nix
@@ -5,11 +5,11 @@
 }:
 buildPythonPackage rec {
   pname = "plac";
-  version = "1.1.3";
+  version = "1.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "398cb947c60c4c25e275e1f1dadf027e7096858fb260b8ece3b33bcff90d985f";
+    sha256 = "ca03587234e5bdd2a3fa96f19a04a01ebb5b0cd66d48ecb5a54d42bc9b287320";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/plaid-python/default.nix b/nixpkgs/pkgs/development/python-modules/plaid-python/default.nix
index a41265165c7d..96e733560472 100644
--- a/nixpkgs/pkgs/development/python-modules/plaid-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plaid-python/default.nix
@@ -1,15 +1,16 @@
 { lib, buildPythonPackage, fetchPypi, requests, pytest }:
 
 buildPythonPackage rec {
-  version = "3.4.0";
+  version = "6.0.0";
   pname = "plaid-python";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bbfad84b8c827a14bc5b0ab93e1e5c7117908e5fa4cdecaa44a037298a20b7de";
+    sha256 = "0a0ay39k50hbxxaxz09m2azz5c08yqki2gincziv6g381yrlj68s";
   };
 
   checkInputs = [ pytest ];
+
   # Integration tests require API keys and internet access
   checkPhase = "py.test -rxs ./tests/unit";
 
@@ -18,6 +19,7 @@ buildPythonPackage rec {
   meta = {
     description = "Python client library for the Plaid API and Link";
     homepage = "https://github.com/plaid/plaid-python";
+    changelog = "https://github.com/plaid/plaid-python/blob/master/CHANGELOG.md";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ bhipple ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/plone-testing/default.nix b/nixpkgs/pkgs/development/python-modules/plone-testing/default.nix
index 45e22a8788e1..825fcc86dc0f 100644
--- a/nixpkgs/pkgs/development/python-modules/plone-testing/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plone-testing/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "plone.testing";
-  version = "7.0.3";
+  version = "8.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "160f130f641578fbede2e47686f1b58179efa9ff98ccdd1ad198b5d0c7e02474";
+    sha256 = "e079c87f821cf2e411826940e65577a88e08827cf9a2b771070f2917a439b642";
   };
 
   propagatedBuildInputs = [ six setuptools zope_testing ];
diff --git a/nixpkgs/pkgs/development/python-modules/plotly/default.nix b/nixpkgs/pkgs/development/python-modules/plotly/default.nix
index eff9e5d8629a..cc33babd64ba 100644
--- a/nixpkgs/pkgs/development/python-modules/plotly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plotly/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "plotly";
-  version = "4.7.1";
+  version = "4.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1s0hg91dvsklgdk3bi483f8in7vr51lx49smvr2ngvrws7nwsj3s";
+    sha256 = "257f530ffd73754bd008454826905657b329053364597479bb9774437a396837";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/plumbum/default.nix b/nixpkgs/pkgs/development/python-modules/plumbum/default.nix
index 796f94184978..e08537ff1abf 100644
--- a/nixpkgs/pkgs/development/python-modules/plumbum/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/plumbum/default.nix
@@ -16,4 +16,4 @@ buildPythonPackage rec {
     inherit pname version;
     sha256 = "1ps37vamqav6p277dlp51jnacd5q4x4z1x8y0nfjw3y8jsfy3f8n";
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/poetry-core/default.nix b/nixpkgs/pkgs/development/python-modules/poetry-core/default.nix
new file mode 100644
index 000000000000..fb4ff8b2d8a2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/poetry-core/default.nix
@@ -0,0 +1,63 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, isPy27
+, importlib-metadata
+, intreehooks
+, isort
+, pathlib2
+, pep517
+, pytest-mock
+, pytestCheckHook
+, tomlkit
+, typing
+, virtualenv
+}:
+
+buildPythonPackage rec {
+  pname = "poetry-core";
+  version = "1.0.0a9";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "python-poetry";
+    repo = pname;
+    rev = version;
+    sha256 = "1ln47x1bc1yvhdfwfnkqx4d2j7988a59v8vmcriw14whfgzfki75";
+  };
+
+  # avoid mass-rebuild of python packages
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace "^1.7.0" "^1.6.0"
+  '';
+
+  nativeBuildInputs = [
+    intreehooks
+  ];
+
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
+  ] ++ lib.optionals isPy27 [
+    pathlib2
+    typing
+  ];
+
+  checkInputs = [
+    isort
+    pep517
+    pytest-mock
+    pytestCheckHook
+    tomlkit
+    virtualenv
+  ];
+
+  # requires git history to work correctly
+  disabledTests = [ "default_with_excluded_data" ];
+
+  pythonImportsCheck = [ "poetry.core" ];
+
+  meta = with lib; {
+    description = "Core utilities for Poetry";
+    homepage = "https://github.com/python-poetry/poetry-core/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/poetry/default.nix b/nixpkgs/pkgs/development/python-modules/poetry/default.nix
index 46be9bc92a28..937a758b9c88 100644
--- a/nixpkgs/pkgs/development/python-modules/poetry/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/poetry/default.nix
@@ -1,74 +1,74 @@
-{ lib, buildPythonPackage, fetchPypi, callPackage
-, isPy27
-, pythonOlder
-, cleo
-, requests
-, cachy
-, requests-toolbelt
-, pyrsistent
-, pyparsing
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27, pythonOlder, fetchpatch
 , cachecontrol
-, pkginfo
-, html5lib
-, shellingham
-, subprocess32
-, tomlkit
-, typing
-, pathlib2
-, virtualenv
-, functools32
+, cachy
+, cleo
 , clikit
-, keyring
-, pexpect
+, html5lib
+, httpretty
 , importlib-metadata
-, pytest
-, jsonschema
 , intreehooks
+, jsonschema
+, keyring
 , lockfile
+, pexpect
+, pkginfo
+, pygments
+, pyparsing
+, pyrsistent
+, pytestCheckHook
+, pytestcov
+, pytest-mock
+, requests
+, requests-toolbelt
+, shellingham
+, tomlkit
 }:
 
-let
-  glob2 = callPackage ./glob2.nix { };
-
-in buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "poetry";
-  version = "1.0.5";
+  version = "1.0.10";
   format = "pyproject";
+  disabled = isPy27;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "02h387k0xssvv78yy82pcpknpq4w5ym2in1zl8cg9r5wljl5w6cf";
+  src = fetchFromGitHub {
+    owner = "python-poetry";
+    repo = pname;
+    rev = version;
+    sha256 = "00qfzjjs6clh93gfl1px3ma9km8qxl3f4z819nmyl58zc8ni3zyv";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-     --replace "pyrsistent = \"^0.14.2\"" "pyrsistent = \"^0.15.0\"" \
-     --replace "requests-toolbelt = \"^0.8.0\"" "requests-toolbelt = \"^0.9.0\"" \
+     --replace "pyrsistent = \"^0.14.2\"" "pyrsistent = \"^0.16.0\"" \
+     --replace "requests-toolbelt = \"^0.8.0\"" "requests-toolbelt = \"^0.9.1\"" \
      --replace 'importlib-metadata = {version = "~1.1.3", python = "<3.8"}' \
-       'importlib-metadata = {version = ">=1.3,<2", python = "<3.8"}'
+       'importlib-metadata = {version = ">=1.3,<2", python = "<3.8"}' \
+     --replace "tomlkit = \"^0.5.11\"" "tomlkit = \"<2\"" \
+     --replace "cleo = \"^0.7.6\"" "cleo = \"^0.8.0\"" \
+     --replace "version = \"^20.0.1\", python = \"^3.5\"" "version = \"^21.0.0\", python = \"^3.5\"" \
+     --replace "clikit = \"^0.4.2\"" "clikit = \"^0.6.2\""
   '';
 
   nativeBuildInputs = [ intreehooks ];
 
   propagatedBuildInputs = [
+    cachecontrol
+    cachy
     cleo
     clikit
-    requests
-    cachy
-    requests-toolbelt
+    html5lib
     jsonschema
-    pyrsistent
-    pyparsing
-    cachecontrol
+    keyring
+    lockfile
+    pexpect
     pkginfo
-    html5lib
+    pyparsing
+    pyrsistent
+    requests
+    requests-toolbelt
     shellingham
     tomlkit
-    pexpect
-    keyring
-    lockfile
-  ] ++ lib.optionals isPy27 [ typing pathlib2 glob2 virtualenv functools32 subprocess32 ]
-    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   postInstall = ''
     mkdir -p "$out/share/bash-completion/completions"
@@ -79,12 +79,20 @@ in buildPythonPackage rec {
     "$out/bin/poetry" completions fish > "$out/share/fish/vendor_completions.d/poetry.fish"
   '';
 
-  # No tests in Pypi tarball
-  doCheck = false;
-  checkInputs = [ pytest ];
-  checkPhase = ''
-    pytest tests
-  '';
+  checkInputs = [ pytestCheckHook httpretty pytest-mock pygments pytestcov ];
+  preCheck = "export HOME=$TMPDIR";
+  disabledTests = [
+    # touches network
+    "git"
+    "solver"
+    "load"
+    "vcs"
+    "prereleases_if_they_are_compatible"
+    # requires git history to work correctly
+    "default_with_excluded_data"
+    # toml ordering has changed
+    "lock"
+  ];
 
   meta = with lib; {
     homepage = "https://python-poetry.org/";
diff --git a/nixpkgs/pkgs/development/python-modules/poetry/glob2.nix b/nixpkgs/pkgs/development/python-modules/poetry/glob2.nix
deleted file mode 100644
index ca7d203492dd..000000000000
--- a/nixpkgs/pkgs/development/python-modules/poetry/glob2.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{ buildPythonPackage, fetchPypi }:
-
-buildPythonPackage rec {
-  pname = "glob2";
-  version = "0.6";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1miyz0pjyji4gqrzl04xsxcylk3h2v9fvi7hsg221y11zy3adc7m";
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/pooch/default.nix b/nixpkgs/pkgs/development/python-modules/pooch/default.nix
new file mode 100644
index 000000000000..378035bb7a51
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pooch/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, buildPythonPackage
+, isPy27
+, fetchPypi
+, pytestCheckHook
+, packaging
+, appdirs
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pooch";
+  version = "1.0.0";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1k2vinlhkzl7lzhvbz20x3a2r2zqqila0yxg3a3fax2r6qxbxxzi";
+  };
+
+  propagatedBuildInputs = [ packaging appdirs requests ];
+
+  checkInputs = [ pytestCheckHook ];
+  disabledTests = [
+    "pooch_custom_url"
+    "pooch_download"
+    "pooch_logging_level"
+    "pooch_update"
+    "pooch_corrupted"
+    "check_availability"
+    "downloader"
+    "test_fetch"
+    "decompress"
+    "extractprocessor_fails"
+    "processor"
+    "integration"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A friend to fetch your data files.";
+    homepage = "https://github.com/fatiando/pooch";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ GuillaumeDesforges ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/python-modules/powerline/default.nix b/nixpkgs/pkgs/development/python-modules/powerline/default.nix
index 3c4c6ae4ec7d..65325f70b450 100644
--- a/nixpkgs/pkgs/development/python-modules/powerline/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/powerline/default.nix
@@ -1,26 +1,38 @@
 { lib
-, fetchurl
+, fetchFromGitHub
+, python
 , buildPythonPackage
+, socat
 , psutil
+, hglib
 , pygit2
+, pyuv
+, i3ipc
 }:
 
-# The source of this package needs to be patched to include the full path to
-# the executables of git, mercurial and bazaar.
+# TODO: bzr support is missing because nixpkgs switched to `breezy`
 
 buildPythonPackage rec {
-  version  = "2.7";
+  version  = "2.8.1";
   pname = "powerline";
 
-  src = fetchurl {
-    url    = "https://github.com/powerline/powerline/archive/${version}.tar.gz";
-    name   = "${pname}-${version}.tar.gz";
-    sha256 = "1h1j2rfphvfdq6mmfyn5bql45hzrwxkhpc2jcwf0vrl3slzkl5s5";
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = version;
+    sha256 = "0xscckcbw75pbcl4546ndrjs4682pn2sqqrd6qvqm0s6zswg7a0y";
   };
 
-  propagatedBuildInputs = [ psutil pygit2];
+  propagatedBuildInputs = [
+    socat
+    psutil
+    hglib
+    pygit2
+    pyuv
+    i3ipc
+  ];
 
-# error: This is still beta and some tests still fail
+  # tests are travis-specific
   doCheck = false;
 
   postInstall = ''
@@ -29,19 +41,9 @@ buildPythonPackage rec {
     install -m644 "font/PowerlineSymbols.otf" "$out/share/fonts/OTF/PowerlineSymbols.otf"
     install -m644 "font/10-powerline-symbols.conf" "$out/etc/fonts/conf.d/10-powerline-symbols.conf"
 
-    install -dm755 "$out/share/vim/vimfiles/plugin"
-    install -m644 "powerline/bindings/vim/plugin/powerline.vim" "$out/share/vim/vimfiles/plugin/powerline.vim"
-
-    install -dm755 "$out/share/zsh/site-contrib"
-    install -m644 "powerline/bindings/zsh/powerline.zsh" "$out/share/zsh/site-contrib/powerline.zsh"
-
-    install -dm755 "$out/share/tmux"
-    install -m644 "powerline/bindings/tmux/powerline.conf" "$out/share/tmux/powerline.conf"
-    
-    install -dm755 "$out/share/fish/vendor_functions.d"
-    install -m644 "powerline/bindings/fish/powerline-setup.fish" "$out/share/fish/vendor_functions.d/powerline-setup.fish"
-
-    '';
+    cp -ra powerline/bindings/{bash,fish,shell,tcsh,tmux,vim,zsh} $out/share/
+    rm $out/share/*/*.py
+  '';
 
   meta = {
     homepage    = "https://github.com/powerline/powerline";
diff --git a/nixpkgs/pkgs/development/python-modules/pq/default.nix b/nixpkgs/pkgs/development/python-modules/pq/default.nix
new file mode 100644
index 000000000000..cfc5419bd239
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pq/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "pq";
+  version = "1.8.2";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "f54143844e73f4182532e68548dee447dd78dd00310a087e8cdee756d476a173";
+  };
+
+  # tests require running postgresql cluster
+  doCheck = false;
+  pythonImportsCheck = [ "pq" ];
+
+  meta = with lib; {
+    description = "PQ is a transactional queue for PostgreSQL";
+    homepage = https://github.com/malthe/pq/;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/prance/default.nix b/nixpkgs/pkgs/development/python-modules/prance/default.nix
index efa12433c8a2..1b762fed0596 100644
--- a/nixpkgs/pkgs/development/python-modules/prance/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prance/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "prance";
-  version = "0.17.0";
+  version = "0.19.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a128d0d5f639a6a19eefedd787a6ce9603634c3908927b1215653e4a8375195f";
+    sha256 = "0ffpfny3z8v3g0drirm27qafafbbvbc4h5k8v7yiwirnh0vn9v46";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/praw/default.nix b/nixpkgs/pkgs/development/python-modules/praw/default.nix
index 47715b9e5679..698c9cc1ccf6 100644
--- a/nixpkgs/pkgs/development/python-modules/praw/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/praw/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "praw";
-  version = "6.5.1";
+  version = "7.1.0";
 
   src = fetchFromGitHub {
     owner = "praw-dev";
     repo = "praw";
     rev = "v${version}";
-    sha256 = "0d5whaw4731gllffhwrh2qqnlki4j8q83xaf3v4spkd40ps3q7b4";
+    sha256 = "07wyn2pa80ps55kk66rvf4daqyn3y5lzxhx6qh1lpn3p2bacbw9h";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/prawcore/default.nix b/nixpkgs/pkgs/development/python-modules/prawcore/default.nix
index 71f34b6ec4d9..7be75eae90a5 100644
--- a/nixpkgs/pkgs/development/python-modules/prawcore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prawcore/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi
+{ stdenv, buildPythonPackage, fetchPypi, isPy27
 , requests
 , testfixtures, mock, requests_toolbelt
 , betamax, betamax-serializers, betamax-matchers, pytest
@@ -6,11 +6,12 @@
 
 buildPythonPackage rec {
   pname = "prawcore";
-  version = "1.0.1";
+  version = "1.5.0";
+  disabled = isPy27; # see https://github.com/praw-dev/prawcore/pull/101
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ab5558efb438aa73fc66c4178bfc809194dea3ce2addf4dec873de7e2fd2824e";
+    sha256 = "1f1eafc8a65d671f9892354f73142014fbb5d3a9ee621568c662d0a354e0578b";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pre-commit/default.nix b/nixpkgs/pkgs/development/python-modules/pre-commit/default.nix
index a933093bef42..88fb6e3abf91 100644
--- a/nixpkgs/pkgs/development/python-modules/pre-commit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pre-commit/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "pre-commit";
-  version = "2.4.0";
+  version = "2.7.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit version;
     pname = "pre_commit";
-    sha256 = "1l0lcl3l2544m2k8jlmblfsjn0p2hdxrzzwy646xpvp0rcs2wgkh";
+    sha256 = "0w2a104yhbw1z92rcwpq0gdjsxvr2bwx5ry5xhlf2psnfkjx6ky5";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/premailer/default.nix b/nixpkgs/pkgs/development/python-modules/premailer/default.nix
index bbe350b03c2a..ec0e959c7a5c 100644
--- a/nixpkgs/pkgs/development/python-modules/premailer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/premailer/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "premailer";
-  version = "3.6.2";
+  version = "3.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8240bfb8ff94db3ae581d8434b7eea5005872d5779394ed8f4223dfb0f58afd2";
+    sha256 = "5eec9603e84cee583a390de69c75192e50d76e38ef0292b027bd64923766aca7";
   };
 
   buildInputs = [ mock nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/preshed/default.nix b/nixpkgs/pkgs/development/python-modules/preshed/default.nix
index 050295204bc3..96a015076df3 100644
--- a/nixpkgs/pkgs/development/python-modules/preshed/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/preshed/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   checkPhase = ''
     ${python.interpreter} setup.py test
   '';
-  
+
   meta = with stdenv.lib; {
     description = "Cython hash tables that assume keys are pre-hashed";
     homepage = "https://github.com/explosion/preshed";
diff --git a/nixpkgs/pkgs/development/python-modules/process-tests/default.nix b/nixpkgs/pkgs/development/python-modules/process-tests/default.nix
index 5ebda6bf04c8..de43ea71fd48 100644
--- a/nixpkgs/pkgs/development/python-modules/process-tests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/process-tests/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "process-tests";
-  version = "2.0.2";
+  version = "2.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7ae24a680cc7c44e7687e3723e6e64597a28223ad664989999efe10dd38c2431";
+    sha256 = "15yrgr1hb7i0fq31dh6k8hmc3jnk6yn5nh4xh3gmszk9vag5zrqk";
   };
 
   # No tests
diff --git a/nixpkgs/pkgs/development/python-modules/progressbar2/default.nix b/nixpkgs/pkgs/development/python-modules/progressbar2/default.nix
index 69200d54571d..5136cf201041 100644
--- a/nixpkgs/pkgs/development/python-modules/progressbar2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/progressbar2/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "progressbar2";
-  version = "3.47.0";
+  version = "3.51.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7538d02045a1fd3aa2b2834bfda463da8755bd3ff050edc6c5ddff3bc616215f";
+    sha256 = "0dnfw8mdrz78gck4ibnv64cinbp5f7kw349wjgpwv53z6p7jiwhk";
   };
 
   propagatedBuildInputs = [ python-utils ];
@@ -29,10 +29,10 @@ buildPythonPackage rec {
     pytest sphinx flake8 pytestpep8 pytest-flakes pytestcov
     pytestcache freezegun
   ];
-  # ignore tests on the nix wrapped setup.py and don't flake .eggs directory
+  # ignore tests on the nix wrapped setup.py
   checkPhase = ''
     runHook preCheck
-    ${python.interpreter} setup.py test --addopts "--ignore=.eggs"
+    ${python.interpreter} setup.py test
     runHook postCheck
   '';
 
@@ -40,6 +40,6 @@ buildPythonPackage rec {
     homepage = "https://progressbar-2.readthedocs.io/en/latest/";
     description = "Text progressbar library for python";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ashgillman ];
+    maintainers = with maintainers; [ ashgillman turion ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/prometheus_client/default.nix b/nixpkgs/pkgs/development/python-modules/prometheus_client/default.nix
index 2c6bef0c201e..8f608666d720 100644
--- a/nixpkgs/pkgs/development/python-modules/prometheus_client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prometheus_client/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "prometheus_client";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "71cd24a2b3eb335cb800c7159f423df1bd4dcd5171b234be15e3f31ec9f622da";
+    sha256 = "c6e6b706833a6bd1fd51711299edee907857be10ece535126a158f911ee80915";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/prompt_toolkit/default.nix b/nixpkgs/pkgs/development/python-modules/prompt_toolkit/default.nix
index 9d969b5d3416..47fbace69df0 100644
--- a/nixpkgs/pkgs/development/python-modules/prompt_toolkit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/prompt_toolkit/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "prompt_toolkit";
-  version = "3.0.5";
+  version = "3.0.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "563d1a4140b63ff9dd587bda9557cffb2fe73650205ab6f4383092fb882e7dc8";
+    sha256 = "7630ab85a23302839a0f26b31cc24f518e6155dea1ed395ea61b42c45941b6a6";
   };
   checkPhase = ''
     py.test -k 'not test_pathcompleter_can_expanduser'
diff --git a/nixpkgs/pkgs/development/python-modules/property-manager/default.nix b/nixpkgs/pkgs/development/python-modules/property-manager/default.nix
index 55d7bafc014b..ad47163e4842 100644
--- a/nixpkgs/pkgs/development/python-modules/property-manager/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/property-manager/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "property-manager";
-  version = "2.3.1";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner = "xolox";
     repo = "python-property-manager";
     rev = version;
-    sha256 = "0s4nwipxd8c2vp4rd8mxrj8wbycniz5ki5n177d0dbrnll5amcz0";
+    sha256 = "1v7hjm7qxpgk92i477fjhpcnjgp072xgr8jrgmbrxfbsv4cvl486";
   };
 
   propagatedBuildInputs = [ coloredlogs humanfriendly verboselogs ];
diff --git a/nixpkgs/pkgs/development/python-modules/psautohint/default.nix b/nixpkgs/pkgs/development/python-modules/psautohint/default.nix
new file mode 100644
index 000000000000..0f89069c7d8f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/psautohint/default.nix
@@ -0,0 +1,40 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, fonttools, lxml, fs
+, setuptools_scm
+, pytest, pytestcov, pytest_xdist, pytest-randomly
+}:
+
+buildPythonPackage rec {
+  pname = "psautohint";
+  version = "2.1.0";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner  = "adobe-type-tools";
+    repo   = pname;
+    sha256 = "1k1rx1adqxdxj5v3788lwnvygylp73sps1p0q44hws2vmsag2s8r";
+    rev    = "v${version}";
+    fetchSubmodules = true; # data dir for tests
+  };
+
+  postPatch = ''
+    echo '#define PSAUTOHINT_VERSION "${version}"' > libpsautohint/src/version.h
+    sed -i '/use_scm_version/,+3d' setup.py
+    sed -i '/setup(/a \     version="${version}",' setup.py
+  '';
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [ fonttools lxml fs ];
+
+  checkInputs = [ pytest pytestcov pytest_xdist pytest-randomly ];
+  checkPhase = "pytest tests";
+
+  meta = with lib; {
+    description = "Script to normalize the XML and other data inside of a UFO";
+    homepage = "https://github.com/adobe-type-tools/psautohint";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/psd-tools/default.nix b/nixpkgs/pkgs/development/python-modules/psd-tools/default.nix
index 4cdf528193f3..a4eb552bb7d2 100644
--- a/nixpkgs/pkgs/development/python-modules/psd-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/psd-tools/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "psd-tools";
-  version = "1.8.38";
+  version = "1.9.15";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7fa81ba38388ac1760ae61229681f46a7fc2ed96cb2d435b616873a73e668b64";
+    sha256 = "23b545d91c784fcaf27fbf4c69abe21ac1ea10d25b5b8c61dcd8f0e03ccff786";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/psutil/default.nix b/nixpkgs/pkgs/development/python-modules/psutil/default.nix
index 8e479dfaca25..ab3a3c1665e4 100644
--- a/nixpkgs/pkgs/development/python-modules/psutil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/psutil/default.nix
@@ -3,30 +3,29 @@
 , pytest
 , mock
 , ipaddress
+, unittest2
 }:
 
 buildPythonPackage rec {
   pname = "psutil";
-  version = "5.7.0";
+  version = "5.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03jykdi3dgf1cdal9bv4fq9zjvzj9l9bs99gi5ar81sdl5nc2pk8";
+    sha256 = "90990af1c3c67195c44c9a889184f84f5b2320dce3ee3acbd054e3ba0b4a7beb";
   };
 
   # arch doesn't report frequency is the same way
   # tests segfaults on darwin https://github.com/giampaolo/psutil/issues/1715
-  doCheck = stdenv.isDarwin || stdenv.isx86_64;
+  doCheck = !stdenv.isDarwin && stdenv.isx86_64;
   checkInputs = [ pytest ]
-    ++ lib.optionals isPy27 [ mock ipaddress ];
+    ++ lib.optionals isPy27 [ mock ipaddress unittest2 ];
   # out must be referenced as test import paths are relative
   # disable tests which don't work in sandbox
   # cpu_times is flakey on darwin
   checkPhase = ''
     pytest $out/${python.sitePackages}/psutil/tests/test_system.py \
-      -k 'not user \
-          and not disk_io_counters and not sensors_battery \
-          and not cpu_times'
+      -k 'not user and not disk_io_counters and not sensors_battery and not cpu_times'
   '';
 
   buildInputs = lib.optionals stdenv.isDarwin [ darwin.IOKit ];
diff --git a/nixpkgs/pkgs/development/python-modules/ptpython/default.nix b/nixpkgs/pkgs/development/python-modules/ptpython/default.nix
index cad7291994ea..e92a99d9989e 100644
--- a/nixpkgs/pkgs/development/python-modules/ptpython/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ptpython/default.nix
@@ -1,17 +1,18 @@
-{ stdenv, buildPythonPackage, fetchPypi, prompt_toolkit, appdirs, docopt, jedi
-, pygments, isPy3k }:
+{ stdenv, lib, buildPythonPackage, pythonOlder, fetchPypi, prompt_toolkit, appdirs, docopt, jedi
+, pygments, importlib-metadata, isPy3k }:
 
 buildPythonPackage rec {
   pname = "ptpython";
-  version = "3.0.2";
+  version = "3.0.5";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "556e5367d4d58231b575dc619493dc0d8ef4c2d15ee85c727a88beb60fa5c52b";
+    sha256 = "5094e7e4daa77453d3c33eb7b7ebbf1060be4446521865a94e698bc85ff15930";
   };
 
-  propagatedBuildInputs = [ appdirs prompt_toolkit docopt jedi pygments ];
+  propagatedBuildInputs = [ appdirs prompt_toolkit docopt jedi pygments ]
+    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # no tests to run
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/pulp/default.nix b/nixpkgs/pkgs/development/python-modules/pulp/default.nix
index ab6fda9d3d45..a98c7a518d20 100644
--- a/nixpkgs/pkgs/development/python-modules/pulp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pulp/default.nix
@@ -2,18 +2,19 @@
 , fetchPypi
 , buildPythonPackage
 , pyparsing
+, amply
 }:
 
 buildPythonPackage rec {
   pname = "PuLP";
-  version = "2.1";
+  version = "2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06swbi7wygh7y0kxc85q1pdhzk662375d9a5jnahgr76hkwwkybn";
+    sha256 = "9d8ecf532868cc31fa9ff59ee5d5b2049600c5c902c18c794a2bad677c1f92e5";
   };
 
-  propagatedBuildInputs = [ pyparsing ];
+  propagatedBuildInputs = [ pyparsing amply ];
 
   # only one test that requires an extra
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/pulsectl/default.nix b/nixpkgs/pkgs/development/python-modules/pulsectl/default.nix
index dec80abda151..2a66357f8494 100644
--- a/nixpkgs/pkgs/development/python-modules/pulsectl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pulsectl/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pulsectl";
-  version = "20.4.3";
+  version = "20.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1m5fz740r4rk2i8qsnblsn16hai7givqxbx21swhpflan1yzvzzm";
+    sha256 = "39b0a0e7974a7d6468d826a838822f78b00ac9c3803f0d7bfa9b1cad08ee22db";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/pure-eval/default.nix b/nixpkgs/pkgs/development/python-modules/pure-eval/default.nix
new file mode 100644
index 000000000000..d7e92f09784b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pure-eval/default.nix
@@ -0,0 +1,27 @@
+{ lib, buildPythonPackage, fetchFromGitHub, setuptools_scm, toml, pytest }:
+
+buildPythonPackage rec {
+  pname = "pure_eval";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "alexmojaki";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1d3gpc9mrmwdk6l87x7ll23vwv6l8l2iqvi63r86j7bj5s8m2ci8";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  buildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [ toml ];
+
+  checkInputs = [ pytest ];
+
+  meta = with lib; {
+    description = "Safely evaluate AST nodes without side effects";
+    homepage = "http://github.com/alexmojaki/pure_eval";
+    license = licenses.mit;
+    maintainers = with maintainers; [ gebner ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pure-pcapy3/default.nix b/nixpkgs/pkgs/development/python-modules/pure-pcapy3/default.nix
new file mode 100644
index 000000000000..71673da7abe0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pure-pcapy3/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "pure-pcapy3";
+  version = "1.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "14panfklap6wwi9avw46gvd7wg9mkv9xbixvbvmi1m2adpqlb7mr";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Pure Python reimplementation of pcapy. This package is API compatible and a drop-in replacement.";
+    homepage = "http://bitbucket.org/viraptor/pure-pcapy";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ etu ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pvlib/default.nix b/nixpkgs/pkgs/development/python-modules/pvlib/default.nix
index e308ecca6767..f9d97c211055 100644
--- a/nixpkgs/pkgs/development/python-modules/pvlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pvlib/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, numpy, pandas, pytz, six
-, pytest, mock, pytest-mock, requests }:
+{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, pythonOlder, numpy, pandas, pytz, six
+, pytestCheckHook, flaky, mock, pytest-mock, requests }:
 
 buildPythonPackage rec {
   pname = "pvlib";
@@ -13,17 +13,37 @@ buildPythonPackage rec {
     sha256 = "40708492ed0a41e900d36933b9b9ab7b575c72ebf3eee81293c626e301aa7ea1";
   };
 
-  checkInputs = [ pytest mock pytest-mock ];
+  patches = [
+    # enable later pandas versions, remove next bump
+    (fetchpatch {
+      url = "https://github.com/pvlib/pvlib-python/commit/010a2adc9e9ef6fe9f2aea4c02d7e6ede9f96a53.patch";
+      sha256 = "0jibn4khixz6hv6racmp86m5mcms0ysz1y5bgpplw1kcvf8sn04x";
+      excludes = [
+        "pvlib/tests/test_inverter.py"
+        "docs/sphinx/source/whatsnew/v0.8.0.rst"
+        "ci/requirements-py35-min.yml"
+      ];
+    })
+  ];
+
+  checkInputs = [ pytestCheckHook flaky mock pytest-mock ];
   propagatedBuildInputs = [ numpy pandas pytz six requests ];
 
   # Skip a few tests that try to access some URLs
-  checkPhase = ''
-    runHook preCheck
-    pushd pvlib/tests
-    pytest . -k "not test_read_srml_dt_index and not test_read_srml_month_from_solardata and not test_get_psm3 and not test_pvgis"
-    popd
-    runHook postCheck
-  '';
+  pytestFlagsArray = [ "pvlib/tests" ];
+  disabledTests = [
+    "read_srml_dt_index"
+    "read_srml_month_from_solardata"
+    "get_psm3"
+    "pvgis"
+    "read_surfrad_network"
+    "remote"
+    # small rounding errors, E.g <1e-10^5
+    "calcparams_pvsyst"
+    "martin_ruiz_diffuse"
+    "hsu"
+    "backtrack"
+  ];
 
   meta = with stdenv.lib; {
     homepage = "https://pvlib-python.readthedocs.io";
diff --git a/nixpkgs/pkgs/development/python-modules/pwntools/default.nix b/nixpkgs/pkgs/development/python-modules/pwntools/default.nix
index 72ab1b5c405f..623140546e1d 100644
--- a/nixpkgs/pkgs/development/python-modules/pwntools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pwntools/default.nix
@@ -1,26 +1,74 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k
-, Mako, packaging, pysocks, pygments, ROPGadget
-, capstone, paramiko, pip, psutil
-, pyelftools, pyserial, dateutil
-, requests, tox, unicorn, intervaltree, fetchpatch }:
+{ stdenv
+, buildPythonPackage
+, debugger
+, fetchPypi
+, isPy3k
+, Mako
+, makeWrapper
+, packaging
+, pysocks
+, pygments
+, ROPGadget
+, capstone
+, paramiko
+, pip
+, psutil
+, pyelftools
+, pyserial
+, dateutil
+, requests
+, tox
+, unicorn
+, intervaltree
+, fetchpatch
+}:
 
 buildPythonPackage rec {
-  version = "4.0.0b0";
+  version = "4.2.1";
   pname = "pwntools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11f7x7rjad1nawn3r524lzxgz3nk89c6s3xycrscn3n86hh0zgid";
+    sha256 = "1fh7sq9wrcfvn44qryln9cyg99pilvyq9bp80758lgdd6ss6hdqd";
   };
 
-  propagatedBuildInputs = [ Mako packaging pysocks pygments ROPGadget capstone paramiko pip psutil pyelftools pyserial dateutil requests tox unicorn intervaltree ];
+  # Upstream has set an upper bound on unicorn because of https://github.com/Gallopsled/pwntools/issues/1538,
+  # but since that is a niche use case and it requires extra work to get unicorn 1.0.2rc3 to work we relax
+  # the bound here. Check if this is still necessary when updating!
+  postPatch = ''
+    sed -i 's/unicorn>=1.0.2rc1,<1.0.2rc4/unicorn>=1.0.2rc1/' setup.py
+  '';
+
+  propagatedBuildInputs = [
+    Mako
+    packaging
+    pysocks
+    pygments
+    ROPGadget
+    capstone
+    paramiko
+    pip
+    psutil
+    pyelftools
+    pyserial
+    dateutil
+    requests
+    tox
+    unicorn
+    intervaltree
+  ];
 
   doCheck = false; # no setuptools tests for the package
 
+  postFixup = ''
+    mkdir -p "$out/bin"
+    makeWrapper "${debugger}/bin/${stdenv.lib.strings.getName debugger}" "$out/bin/pwntools-gdb"
+  '';
+
   meta = with stdenv.lib; {
     homepage = "http://pwntools.com";
     description = "CTF framework and exploit development library";
     license = licenses.mit;
-    maintainers = with maintainers; [ bennofs kristoff3r ];
+    maintainers = with maintainers; [ bennofs kristoff3r pamplemousse ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pxml/default.nix b/nixpkgs/pkgs/development/python-modules/pxml/default.nix
new file mode 100644
index 000000000000..229b174adec2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pxml/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, pythonAtLeast
+, isPy27
+, buildPythonPackage
+, fetchPypi
+, blessings
+, six
+, nose
+, coverage
+}:
+
+buildPythonPackage rec {
+  pname = "pxml";
+  version = "0.2.13";
+  disabled = pythonAtLeast "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0c9zzfv6ciyf9qm7556wil45xxgykg1cj8isp1b88gimwcb2hxg4";
+  };
+
+  propagatedBuildInputs = [ blessings six ];
+  checkInputs = [ nose coverage ];
+
+  # test_prefixedWhitespace fails due to a python3 StringIO issue requiring
+  # bytes rather than str
+  checkPhase = ''
+    nosetests -e 'test_prefixedWhitespace'
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/metagriffin/pxml";
+    description = ''A python library and command-line tool to "prettify" and colorize XML.'';
+    maintainers = with maintainers; [ glittershark ];
+    license = licenses.gpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/py-multibase/default.nix b/nixpkgs/pkgs/development/python-modules/py-multibase/default.nix
index 59876b473a91..c304e68fd8dd 100644
--- a/nixpkgs/pkgs/development/python-modules/py-multibase/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-multibase/default.nix
@@ -43,4 +43,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ rakesh4g ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/py-multihash/default.nix b/nixpkgs/pkgs/development/python-modules/py-multihash/default.nix
index f81b7fb76440..5034f6df4699 100644
--- a/nixpkgs/pkgs/development/python-modules/py-multihash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-multihash/default.nix
@@ -46,4 +46,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ rakesh4g ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/py-vapid/default.nix b/nixpkgs/pkgs/development/python-modules/py-vapid/default.nix
index f85312880075..2f4a60b420aa 100644
--- a/nixpkgs/pkgs/development/python-modules/py-vapid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py-vapid/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "py-vapid";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03057a3270ddc7d53c31e2915083d01ba8a3169f4032cab3dd9f4ebe44e2564a";
+    sha256 = "f05cecaa9fc009515086d04b6117324f30eedf1a196f67fb1ec360a9dbdad4ee";
   };
 
   propagatedBuildInputs = [ cryptography ];
diff --git a/nixpkgs/pkgs/development/python-modules/py/default.nix b/nixpkgs/pkgs/development/python-modules/py/default.nix
index 5da15bb91f48..19366ea7146c 100644
--- a/nixpkgs/pkgs/development/python-modules/py/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "py";
-  version = "1.8.1";
+  version = "1.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa";
+    sha256 = "9ca6883ce56b4e8da7e79ac18787889fa5206c79dcc67fb065376cd2fe03f342";
   };
 
   # Circular dependency on pytest
diff --git a/nixpkgs/pkgs/development/python-modules/py3status/default.nix b/nixpkgs/pkgs/development/python-modules/py3status/default.nix
index fda91e8a3053..a99dacf6204b 100644
--- a/nixpkgs/pkgs/development/python-modules/py3status/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py3status/default.nix
@@ -24,11 +24,11 @@
 
 buildPythonPackage rec {
   pname = "py3status";
-  version = "3.22";
+  version = "3.28";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5e9884dde128e1bd82f8746e8f8806c8d7d89d95ce9ed7bacf7cc5fdb094aa21";
+    sha256 = "103c63f43ddfd86e5a3f0bebb34b0f2eaaf6dbd58281d25c8a16937eb8e7f194";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/pyTelegramBotAPI/default.nix b/nixpkgs/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
index e07db8ec7267..2ecdfb17aa2d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyTelegramBotAPI";
-  version = "3.6.7";
+  version = "3.7.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0spn3gjbppyl4b7kqnc8g30qss72dcb1d6ap2bizyam5wn591z8f";
+    sha256 = "ce42d84442ff2ce4918de6550cf377253f61e28e4fac2634495683d12df66d00";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/py_stringmatching/default.nix b/nixpkgs/pkgs/development/python-modules/py_stringmatching/default.nix
index f44071502049..fda497b7962b 100644
--- a/nixpkgs/pkgs/development/python-modules/py_stringmatching/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/py_stringmatching/default.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   };
 
   checkInputs = [ nose ];
-   
+
   propagatedBuildInputs = [ numpy six ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pyaml/default.nix b/nixpkgs/pkgs/development/python-modules/pyaml/default.nix
index 1d0168b6bfa3..524d34c68d4a 100644
--- a/nixpkgs/pkgs/development/python-modules/pyaml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyaml/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pyaml";
-  version = "19.12.0";
+  version = "20.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b3f636b467864319d7ded1558f86bb305b8612a274f5d443a62dc5eceb1b7176";
+    sha256 = "29a5c2a68660a799103d6949167bd6c7953d031449d08802386372de1db6ad71";
   };
 
   propagatedBuildInputs = [ pyyaml ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyatmo/default.nix b/nixpkgs/pkgs/development/python-modules/pyatmo/default.nix
index d9f602aa7e21..ec959740f9ec 100644
--- a/nixpkgs/pkgs/development/python-modules/pyatmo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyatmo/default.nix
@@ -1,19 +1,21 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, oauthlib
 , requests
+, requests_oauthlib
 }:
 
 buildPythonPackage rec {
   pname = "pyatmo";
-  version = "3.1.0";
+  version = "4.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8fbcc3a88f8c51d190b697c80515e67530143de71f89cc6ecf99bbf2cbf3ef30";
+    sha256 = "148713395d51a57f1f3102eacbb9286a859fc5c18c066238a961a1acf189b930";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [ oauthlib requests requests_oauthlib ];
 
   # Upstream provides no unit tests.
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/pyatv/default.nix b/nixpkgs/pkgs/development/python-modules/pyatv/default.nix
index b8a607f4d455..8d6da02e5f18 100644
--- a/nixpkgs/pkgs/development/python-modules/pyatv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyatv/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "pyatv";
-  version = "0.6.1";
+  version = "0.7.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0f9wj1ggllwpjd9nh6nsrck7m4gbz29q6vqbrhbkc2kz6waqkgwc";
+    sha256 = "83d86fac517d33a1e3063a547ee2a520fde74c74a1b95cb5a6f20afccfd59843";
   };
 
   nativeBuildInputs = [ pytestrunner];
diff --git a/nixpkgs/pkgs/development/python-modules/pybfd/default.nix b/nixpkgs/pkgs/development/python-modules/pybfd/default.nix
deleted file mode 100644
index d04d7bfb5af7..000000000000
--- a/nixpkgs/pkgs/development/python-modules/pybfd/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, fetchFromGitHub, buildPythonPackage, isPyPy, isPy3k, libbfd, libopcodes }:
-
-buildPythonPackage {
-  pname = "pybfd";
-  version = "-0.1.1.2017-12-31";
-
-  disabled = isPyPy || isPy3k;
-
-  src = fetchFromGitHub {
-    owner = "orivej";
-    repo = "pybfd";
-    rev = "a10ada53f2a79de7f62f209567806ef1e91794c7";
-    sha256 = "0sxzhlqjyvvx1zr3qrkb57z6s3g6k3ksyn65fdm9lvl0k4dv2k9w";
-  };
-
-  LIBBFD_INCLUDE_DIR = "${libbfd.dev}/include";
-  LIBBFD_LIBRARY = "${libbfd}/lib/libbfd.so";
-  LIBOPCODES_INCLUDE_DIR = "${libopcodes.dev}/include";
-  LIBOPCODES_LIBRARY = "${libopcodes}/lib/libopcodes.so";
-
-  meta = {
-    homepage = "https://github.com/Groundworkstech/pybfd";
-    description = "A Python interface to the GNU Binary File Descriptor (BFD) library";
-    license = lib.licenses.gpl2;
-    platforms = lib.platforms.linux;
-    maintainers = with lib.maintainers; [ orivej ];
-    broken = true;
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/pybids/default.nix b/nixpkgs/pkgs/development/python-modules/pybids/default.nix
index 01c0368662c4..92c34c7bd4ea 100644
--- a/nixpkgs/pkgs/development/python-modules/pybids/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybids/default.nix
@@ -15,12 +15,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.10.2";
+  version = "0.12.0";
   pname = "pybids";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6571ef82e03a958e56aa61cf5b15392f0b2d5dbca92f872061d81524e8da8525";
+    sha256 = "0flvrb61hfyjjgdz07dlm8m9pqwb8qrx027zfrwa9d5nw1az7g28";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pybind11/0001-Find-include-directory.patch b/nixpkgs/pkgs/development/python-modules/pybind11/0001-Find-include-directory.patch
deleted file mode 100644
index d5b669dab7a9..000000000000
--- a/nixpkgs/pkgs/development/python-modules/pybind11/0001-Find-include-directory.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From a027e2590d5d2d384d23568a8d47b7095054b6b7 Mon Sep 17 00:00:00 2001
-From: Frederik Rietdijk <fridh@fridh.nl>
-Date: Thu, 19 Dec 2019 19:51:07 +0100
-Subject: [PATCH] Find include directory
-
----
- pybind11/__init__.py | 33 +--------------------------------
- 1 file changed, 1 insertion(+), 32 deletions(-)
-
-diff --git a/pybind11/__init__.py b/pybind11/__init__.py
-index c625e8c..c8a707b 100644
---- a/pybind11/__init__.py
-+++ b/pybind11/__init__.py
-@@ -2,35 +2,4 @@ from ._version import version_info, __version__  # noqa: F401 imported but unuse
- 
- 
- def get_include(user=False):
--    from distutils.dist import Distribution
--    import os
--    import sys
--
--    # Are we running in a virtual environment?
--    virtualenv = hasattr(sys, 'real_prefix') or \
--        sys.prefix != getattr(sys, "base_prefix", sys.prefix)
--
--    # Are we running in a conda environment?
--    conda = os.path.exists(os.path.join(sys.prefix, 'conda-meta'))
--
--    if virtualenv:
--        return os.path.join(sys.prefix, 'include', 'site',
--                            'python' + sys.version[:3])
--    elif conda:
--        if os.name == 'nt':
--            return os.path.join(sys.prefix, 'Library', 'include')
--        else:
--            return os.path.join(sys.prefix, 'include')
--    else:
--        dist = Distribution({'name': 'pybind11'})
--        dist.parse_config_files()
--
--        dist_cobj = dist.get_command_obj('install', create=True)
--
--        # Search for packages in user's home directory?
--        if user:
--            dist_cobj.user = user
--            dist_cobj.prefix = ""
--        dist_cobj.finalize_options()
--
--        return os.path.dirname(dist_cobj.install_headers)
-+    return "@include@"
--- 
-2.23.0
-
diff --git a/nixpkgs/pkgs/development/python-modules/pybind11/default.nix b/nixpkgs/pkgs/development/python-modules/pybind11/default.nix
index 3cfdbba31c1f..079c93db4501 100644
--- a/nixpkgs/pkgs/development/python-modules/pybind11/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybind11/default.nix
@@ -14,13 +14,13 @@
 
 buildPythonPackage rec {
   pname = "pybind11";
-  version = "2.4.3";
+  version = "2.5.0";
 
   src = fetchFromGitHub {
     owner = "pybind";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0k89w4bsfbpzw963ykg1cyszi3h3nk393qd31m6y46pcfxkqh4rd";
+    sha256 = "13hcj6g7k7yvj7nry2ar6f5mg58ln7frrvq1cg5f8mczxh1ch6zl";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -40,14 +40,6 @@ buildPythonPackage rec {
   dontUsePipInstall = true;
   dontUseSetuptoolsCheck = true;
 
-  patches = [
-    ./0001-Find-include-directory.patch
-  ];
-
-  postPatch = ''
-    substituteInPlace pybind11/__init__.py --subst-var-by include "$out/include"
-  '';
-
   preFixup = ''
     pushd ..
     export PYBIND11_USE_CMAKE=1
@@ -65,7 +57,7 @@ buildPythonPackage rec {
     scipy
   ];
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/pybind/pybind11";
     description = "Seamless operability between C++11 and Python";
     longDescription = ''
@@ -73,7 +65,7 @@ buildPythonPackage rec {
       C++ types in Python and vice versa, mainly to create Python
       bindings of existing C++ code.
     '';
-    license = lib.licenses.bsd3;
-    maintainers = [ lib.maintainers.yuriaisaka ];
+    license = licenses.bsd3;
+    maintainers = with maintainers;[ yuriaisaka ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pybindgen/default.nix b/nixpkgs/pkgs/development/python-modules/pybindgen/default.nix
index ee880fda3987..136917c68371 100644
--- a/nixpkgs/pkgs/development/python-modules/pybindgen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybindgen/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchPypi, buildPythonPackage, isPy3k, setuptools_scm, pygccxml }:
 buildPythonPackage rec {
   pname = "PyBindGen";
-  version = "0.20.1";
+  version = "0.21.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5615f6b5d9b8aec86d69acedd050ecb5eb7d1338436c3667e345f800a2658f9f";
+    sha256 = "4501aa3954fdac7bb4c049894f8aa1f0f4e1c1f50cc2303feef9bbe3aecfe364";
   };
 
   buildInputs = [ setuptools_scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/pybullet/default.nix b/nixpkgs/pkgs/development/python-modules/pybullet/default.nix
index 3c5d28c40d6c..9d889214e347 100644
--- a/nixpkgs/pkgs/development/python-modules/pybullet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pybullet/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pybullet";
-  version = "2.6.9";
+  version = "2.8.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5924371a47625252d8566bbc662befc55e1d35c6c1375c8236e6f8a626293fa6";
+    sha256 = "9d3a8bdc9b4acce086c485ba719aabee33de7a867d84a058b182b139c789ad55";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix b/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
index c291e6e47fdd..e6aef54557f7 100644
--- a/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pychromecast/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "PyChromecast";
-  version = "5.2.0";
+  version = "7.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "052q25k3v5fwa02hf5zdpjpfb94ml9g67cqwjjvf6vdana8w3gwh";
+    sha256 = "9aad074d0361791af8ccb8fb7ea0f1646db3d89600fed85c5562b64c8b1aa899";
   };
 
   disabled = !isPy3k;
diff --git a/nixpkgs/pkgs/development/python-modules/pyclipper/default.nix b/nixpkgs/pkgs/development/python-modules/pyclipper/default.nix
index eaf20baf75c3..bc910cea5808 100644
--- a/nixpkgs/pkgs/development/python-modules/pyclipper/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyclipper/default.nix
@@ -7,12 +7,12 @@
 
 buildPythonPackage rec {
   pname = "pyclipper";
-  version = "1.1.0.post3";
+  version = "1.2.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "164yksvqwqvwzh8f8lq92asg87hd8rvcy2xb5vm4y4ccvd5xgb7i";
+    sha256 = "0irs5sn6ldpg70630nfndghjnpxv8jldk61zyczfzp1jcz53b43s";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pycodestyle/default.nix b/nixpkgs/pkgs/development/python-modules/pycodestyle/default.nix
index 289332eb7c48..e1d21a6a2eb1 100644
--- a/nixpkgs/pkgs/development/python-modules/pycodestyle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycodestyle/default.nix
@@ -1,23 +1,26 @@
 { buildPythonPackage
 , fetchPypi
 , lib
+, python
 }:
 
 buildPythonPackage rec {
   pname = "pycodestyle";
-  version = "2.5.0";
+  version = "2.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0v4prb05n21bm8650v0a01k1nyqjdmkrsm3zycfxh2j5k9n962p4";
+    sha256 = "c58a7d2815e0e8d7972bf1803331fb0152f867bd89adf8a01dfd55085434192e";
   };
 
+  dontUseSetuptoolsCheck = true;
+
   # https://github.com/PyCQA/pycodestyle/blob/2.5.0/tox.ini#L14
   checkPhase = ''
-    python pycodestyle.py --max-doc-length=72 --testsuite testsuite
-    python pycodestyle.py --statistics pycodestyle.py
-    python pycodestyle.py --max-doc-length=72 --doctest
-    python setup.py test
+    ${python.interpreter} pycodestyle.py --max-doc-length=72 --testsuite testsuite
+    ${python.interpreter} pycodestyle.py --statistics pycodestyle.py
+    ${python.interpreter} pycodestyle.py --max-doc-length=72 --doctest
+    ${python.interpreter} -m unittest discover testsuite -vv
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pycognito/default.nix b/nixpkgs/pkgs/development/python-modules/pycognito/default.nix
index afc607baa405..8101b76b62cf 100644
--- a/nixpkgs/pkgs/development/python-modules/pycognito/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycognito/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "pycognito";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "pvizeli";
     repo = "pycognito";
     rev = version;
-    sha256 = "01zns522awm5yp5cbk1y7k7px534i5akiivip709i1naph3hvnfk";
+    sha256 = "0wy6d274xda7v6dazv10h2vwig2avfyz8mh2lpd1a5k7i06r335r";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pycoin/default.nix b/nixpkgs/pkgs/development/python-modules/pycoin/default.nix
new file mode 100644
index 000000000000..da09cfdd64e2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pycoin/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, fetchPypi
+, buildPythonPackage
+, gnupg
+, setuptools
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pycoin";
+  version = "0.90.20200809";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "301dd6df9d9d580701d7325c4d1c341233ba1a94cb805305ea3a43c31bdaaa4c";
+  };
+
+  propagatedBuildInputs = [ setuptools ];
+
+  postPatch = ''
+    substituteInPlace ./pycoin/cmds/tx.py --replace '"gpg"' '"${gnupg}/bin/gpg"'
+  '';
+
+  checkInputs = [ pytestCheckHook ];
+
+  dontUseSetuptoolsCheck = true;
+
+  # Disable tests depending on online services
+  disabledTests = [
+    "ServicesTest"
+    "test_tx_pay_to_opcode_list_txt"
+    "test_tx_fetch_unspent"
+    "test_tx_with_gpg"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Utilities for Bitcoin and altcoin addresses and transaction manipulation";
+    homepage = "https://github.com/richardkiss/pycoin";
+    license = licenses.mit;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pycountry/default.nix b/nixpkgs/pkgs/development/python-modules/pycountry/default.nix
index 584ba838cc29..2cd707ee8dcb 100644
--- a/nixpkgs/pkgs/development/python-modules/pycountry/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycountry/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pycountry";
-  version = "19.8.18";
+  version = "20.7.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jxkdjffrhn0il0nm14dlzxpd6f3v1hbxzxsprcksafgmm0almrw";
+    sha256 = "0hnbabsmqimx5hqh0jbd2f64i8fhzhhbrvid57048hs5sd9ll241";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pycparser/default.nix b/nixpkgs/pkgs/development/python-modules/pycparser/default.nix
index ea7caba5eb4f..f3fa6f883fb6 100644
--- a/nixpkgs/pkgs/development/python-modules/pycparser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycparser/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pycparser";
-  version = "2.19";
+  version = "2.20";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3";
+    sha256 = "2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pycryptodome/default.nix b/nixpkgs/pkgs/development/python-modules/pycryptodome/default.nix
index 63db40dba163..15e93e59542b 100644
--- a/nixpkgs/pkgs/development/python-modules/pycryptodome/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycryptodome/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchPypi, buildPythonPackage }:
 
 buildPythonPackage rec {
-  version = "3.9.7";
+  version = "3.9.8";
   pname = "pycryptodome";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f1add21b6d179179b3c177c33d18a2186a09cc0d3af41ff5ed3f377360b869f2";
+    sha256 = "0e24171cf01021bc5dc17d6a9d4f33a048f09d62cc3f62541e95ef104588bda4";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/pycryptodomex/default.nix b/nixpkgs/pkgs/development/python-modules/pycryptodomex/default.nix
index 92da3e722f09..0bef1364617e 100644
--- a/nixpkgs/pkgs/development/python-modules/pycryptodomex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pycryptodomex/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "pycryptodomex";
-  version = "3.9.7";
+  version = "3.9.8";
 
   meta = {
     description = "A self-contained cryptographic library for Python";
@@ -12,6 +12,6 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "50163324834edd0c9ce3e4512ded3e221c969086e10fdd5d3fdcaadac5e24a78";
+    sha256 = "48cc2cfc251f04a6142badeb666d1ff49ca6fdfc303fd72579f62b768aaa52b9";
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pydicom/default.nix b/nixpkgs/pkgs/development/python-modules/pydicom/default.nix
index 6f4e4c97fd1c..e6602ba9da2c 100644
--- a/nixpkgs/pkgs/development/python-modules/pydicom/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydicom/default.nix
@@ -1,23 +1,29 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , pytest
 , pytestrunner
+, pytestCheckHook
 , numpy
 , pillow
 }:
 
 buildPythonPackage rec {
-  version = "1.4.2";
+  version = "2.0.0";
   pname = "pydicom";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1483hv74fhfk4q18r4rda7yixqqdxrd1djzp3492s81ykxd4k24l";
+    sha256 = "594c91f715c415ef439f498351ae68fb770c776fc5aa72f3c87eb500dc2a7470";
   };
 
   propagatedBuildInputs = [ numpy pillow ];
-  checkInputs = [ pytest pytestrunner ];
+
+  checkInputs = [ pytest pytestrunner pytestCheckHook ];
+  disabledTests = [ "test_invalid_bit_depth_raises" ];
+  # harmless failure; see https://github.com/pydicom/pydicom/issues/1119
 
   meta = with stdenv.lib; {
     homepage = "https://pydicom.github.io";
diff --git a/nixpkgs/pkgs/development/python-modules/pydocstyle/default.nix b/nixpkgs/pkgs/development/python-modules/pydocstyle/default.nix
index 1825c690f30c..cef9e9644251 100644
--- a/nixpkgs/pkgs/development/python-modules/pydocstyle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydocstyle/default.nix
@@ -19,11 +19,11 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ snowballstemmer ];
 
-  checkInputs = [ pytest pytestpep8 mock ];
+  checkInputs = [ pytest mock ];
 
   checkPhase = ''
     # test_integration.py installs packages via pip
-    py.test --pep8 --cache-clear -vv src/tests -k "not test_integration"
+    py.test --cache-clear -vv src/tests -k "not test_integration"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pydsdl/default.nix b/nixpkgs/pkgs/development/python-modules/pydsdl/default.nix
new file mode 100644
index 000000000000..655adecd5c89
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pydsdl/default.nix
@@ -0,0 +1,37 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder }:
+
+ buildPythonPackage rec {
+  pname = "pydsdl";
+  version = "1.4.2";
+  disabled = pythonOlder "3.5"; # only python>=3.5 is supported
+
+  src = fetchFromGitHub {
+    owner = "UAVCAN";
+    repo = pname;
+    rev = version;
+    sha256 = "03kbpzdrjzj5vpgz5rhc110pm1axdn3ynv88b42zq6iyab4k8k1x";
+  };
+
+  propagatedBuildInputs = [
+  ];
+
+  # allow for writable directory for darwin
+  preBuild = ''
+    export HOME=$TMPDIR
+  '';
+
+  # repo doesn't contain tests, ensure imports aren't broken
+  pythonImportsCheck = [
+    "pydsdl"
+  ];
+
+  meta = with lib; {
+    description = "A UAVCAN DSDL compiler frontend implemented in Python";
+    longDescription = ''
+      It supports all DSDL features defined in the UAVCAN specification.
+    '';
+    homepage = "https://uavcan.org";
+    maintainers = with maintainers; [ wucke13 ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pydub/default.nix b/nixpkgs/pkgs/development/python-modules/pydub/default.nix
index 8499db31e02c..42d33c00cbe8 100644
--- a/nixpkgs/pkgs/development/python-modules/pydub/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pydub/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pydub";
-  version = "0.24.0";
+  version = "0.24.1";
   # pypi version doesn't include required data files for tests
   src = fetchFromGitHub {
     owner = "jiaaro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0cnhkk44cn3wa4fmd1rwzdx2zgrn87qg25pbcp9wsisdlpn4bj6d";
+    sha256 = "1pv4n54kkjpbjlvwh9b6a7zyq1ylg0fjmd2q4ws9nc2a6mrcivhc";
   };
 
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyexcel-io/default.nix b/nixpkgs/pkgs/development/python-modules/pyexcel-io/default.nix
new file mode 100644
index 000000000000..8a788402b491
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyexcel-io/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, lml
+}:
+
+buildPythonPackage rec {
+  pname = "pyexcel-io";
+  version = "0.5.20";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "CN/jlVO5ljWbFD3j2exD4ZbxE41HyrtzrwShaCG4TXk=";
+  };
+
+  propagatedBuildInputs = [
+    lml
+  ];
+
+  # Tests depend on stuff that depends on this.
+  doCheck = false;
+
+  pythonImportsCheck = [ "pyexcel_io" ];
+
+  meta = {
+    description = "One interface to read and write the data in various excel formats, import the data into and export the data from databases";
+    homepage = "http://docs.pyexcel.org/";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ jtojnar ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyexcel-ods/default.nix b/nixpkgs/pkgs/development/python-modules/pyexcel-ods/default.nix
new file mode 100644
index 000000000000..9e5b32ea8671
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyexcel-ods/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyexcel-io
+, odfpy
+, nose
+, pyexcel
+, pyexcel-xls
+, psutil
+}:
+
+buildPythonPackage rec {
+  pname = "pyexcel-ods";
+  version = "0.5.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "O+Uv2KrdvYvJKG9+sUj0VT1MlyUtaVw6nse5XmZmoiM=";
+  };
+
+  propagatedBuildInputs = [
+    pyexcel-io
+    odfpy
+  ];
+
+  checkInputs = [
+    nose
+    pyexcel
+    pyexcel-xls
+    psutil
+  ];
+
+  checkPhase = "nosetests";
+
+  meta = {
+    description = "Plug-in to pyexcel providing the capbility to read, manipulate and write data in ods formats using odfpy";
+    homepage = "http://docs.pyexcel.org/";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ jtojnar ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyexcel-xls/default.nix b/nixpkgs/pkgs/development/python-modules/pyexcel-xls/default.nix
new file mode 100644
index 000000000000..2dd4533c2a9f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyexcel-xls/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pyexcel-io
+, xlrd
+, xlwt
+, nose
+, pyexcel
+, mock
+}:
+
+buildPythonPackage rec {
+  pname = "pyexcel-xls";
+  version = "0.5.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1Wyt6gpmBoRFaXbZgFJVTTu+KnivxfmpHIaR9iZghVU=";
+  };
+
+  propagatedBuildInputs = [
+    pyexcel-io
+    xlrd
+    xlwt
+  ];
+
+  checkInputs = [
+    nose
+    pyexcel
+    mock
+  ];
+
+  checkPhase = "nosetests";
+
+  meta = {
+    description = "A wrapper library to read, manipulate and write data in xls using xlrd and xlwt";
+    homepage = "http://docs.pyexcel.org/";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ jtojnar ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyexcel/default.nix b/nixpkgs/pkgs/development/python-modules/pyexcel/default.nix
new file mode 100644
index 000000000000..71219c32ae5c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyexcel/default.nix
@@ -0,0 +1,45 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, lml
+, pyexcel-io
+, texttable
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "pyexcel";
+  version = "0.6.4";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "pPNYnimHhW7SL6X6OLwagZoadTD7IdUSbO7vAqQPQu8=";
+  };
+
+  propagatedBuildInputs = [
+    lml
+    pyexcel-io
+    texttable
+  ];
+
+  checkInputs = [
+    nose
+  ];
+
+  # Tests depend on pyexcel-xls & co. causing circular dependency.
+  # https://github.com/pyexcel/pyexcel/blob/dev/tests/requirements.txt
+  doCheck = false;
+
+  pythonImportsCheck = [ "pyexcel" ];
+
+  checkPhase = "nosetests";
+
+  meta = {
+    description = "Single API for reading, manipulating and writing data in csv, ods, xls, xlsx and xlsm files";
+    homepage = "http://docs.pyexcel.org/";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ jtojnar ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyface/default.nix b/nixpkgs/pkgs/development/python-modules/pyface/default.nix
index db0ee541e09c..284b8f0837ab 100644
--- a/nixpkgs/pkgs/development/python-modules/pyface/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyface/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "pyface";
-  version = "6.1.2";
+  version = "7.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1g2g3za64rfffbivlihbf5njrqbv63ln62rv9d8fi1gcrgaw6akw";
+    sha256 = "43943cc15889153b90191d9e1bd85e7a3709a6d57b6379220cb14017217fb999";
   };
 
   propagatedBuildInputs = [ setuptools six traits ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyfaidx/default.nix b/nixpkgs/pkgs/development/python-modules/pyfaidx/default.nix
index 7188ac8ce4af..399d889db2b8 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfaidx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfaidx/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pyfaidx";
-  version = "0.5.8";
+  version = "0.5.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "038xi3a6zvrxbyyfpp64ka8pcjgsdq4fgw9cl5lpxbvmm1bzzw2q";
+    sha256 = "eda8af04ba4da4fd63fdc35a62e0e41dfc06aa1a511728dfbdd7707e3b382855";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix b/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix
index 16d9abe812b6..7c1dc4fbb0d9 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfakefs/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, buildPythonPackage, fetchPypi, python, pytest, glibcLocales, isPy37 }:
+{ stdenv, buildPythonPackage, fetchPypi, pythonOlder, python, pytest, glibcLocales }:
 
 buildPythonPackage rec {
-  version = "3.7.2";
+  version = "4.1.0";
   pname = "pyfakefs";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "735ce6a71f26ead335df8a1f2c1cc8355ef091d98ffdc3bf73a5a3b0214e055e";
+    sha256 = "bbbaa8b622fa50751a5839350fff3c1f8b1bbd364cd40fd0c7442e18fe5edc8e";
   };
 
   postPatch = ''
@@ -24,8 +25,6 @@ buildPythonPackage rec {
       --replace "test_rename_dir_to_existing_dir" "notest_rename_dir_to_existing_dir"
   '');
 
-  # https://github.com/jmcgeheeiv/pyfakefs/issues/508
-  doCheck = !isPy37;
   checkInputs = [ pytest glibcLocales ];
 
   checkPhase = ''
@@ -39,6 +38,7 @@ buildPythonPackage rec {
     description = "Fake file system that mocks the Python file system modules";
     license     = licenses.asl20;
     homepage    = "http://pyfakefs.org/";
+    changelog   = "https://github.com/jmcgeheeiv/pyfakefs/blob/master/CHANGES.md";
     maintainers = with maintainers; [ gebner ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyflakes/default.nix b/nixpkgs/pkgs/development/python-modules/pyflakes/default.nix
index 85176d9ccca2..d8cc45119482 100644
--- a/nixpkgs/pkgs/development/python-modules/pyflakes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyflakes/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyflakes";
-  version = "2.1.1";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d976835886f8c5b31d47970ed689944a0262b5f3afa00a5a7b4dc81e5449f8a2";
+    sha256 = "35b2d75ee967ea93b55750aa9edbbf72813e06a66ba54438df2cfac9e3c27fc8";
   };
 
   checkInputs = [ unittest2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyfritzhome/default.nix b/nixpkgs/pkgs/development/python-modules/pyfritzhome/default.nix
new file mode 100644
index 000000000000..7c5dfecd269b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyfritzhome/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildPythonPackage, fetchPypi, pythonOlder
+, requests
+, nose, mock }:
+
+buildPythonPackage rec {
+  pname = "pyfritzhome";
+  version = "0.4.2";
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
+   inherit pname version;
+   sha256 = "0ncyv8svw0fhs01ijjkb1gcinb3jpyjvv9xw1bhnf4ri7b27g6ww";
+  };
+
+  propagatedBuildInputs = [
+    requests
+  ];
+
+  checkInputs = [
+    mock
+    nose
+  ];
+
+  checkPhase = ''
+    nosetests --with-coverage
+  '';
+
+  meta = with lib; {
+    description = "Python Library to access AVM FRITZ!Box homeautomation";
+    homepage = "https://github.com/hthiery/python-fritzhome";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyfxa/default.nix b/nixpkgs/pkgs/development/python-modules/pyfxa/default.nix
index 0f964bfc9f97..eb5403c2b968 100644
--- a/nixpkgs/pkgs/development/python-modules/pyfxa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyfxa/default.nix
@@ -1,14 +1,14 @@
 { lib, buildPythonPackage, fetchPypi
 , requests, cryptography, pybrowserid, hawkauthlib, six
-, grequests, mock, responses, pytest }:
+, grequests, mock, responses, pytest, pyjwt }:
 
 buildPythonPackage rec {
   pname = "PyFxA";
-  version = "0.7.3";
+  version = "0.7.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f47f4285629fa6c033c79adc3fb90926c0818a42cfddb04d32818547362f1627";
+    sha256 = "6c85cd08cf05f7138dee1cf2a8a1d68fd428b7b5ad488917c70a2a763d651cdb";
   };
 
   postPatch = ''
@@ -17,15 +17,16 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [
-    requests cryptography pybrowserid hawkauthlib six
+    pyjwt requests cryptography pybrowserid hawkauthlib six
   ];
 
   checkInputs = [
     grequests mock responses pytest
   ];
 
+  # test_oath is mostly network calls
   checkPhase = ''
-    pytest
+    pytest --ignore=fxa/tests/test_oauth.py
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pygls/default.nix b/nixpkgs/pkgs/development/python-modules/pygls/default.nix
index 962803402e6e..d563fa27669e 100644
--- a/nixpkgs/pkgs/development/python-modules/pygls/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygls/default.nix
@@ -4,14 +4,14 @@
 
 buildPythonPackage rec {
   pname = "pygls";
-  version = "0.8.1";
+  version = "0.9.0";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "openlawlibrary";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1853rfdks5n8nw6ig96j7his5kqd75hrvzvd0win4niycaqsag6m";
+    sha256 = "1wfp4hjin1mb6nkzhpfh5v8q8rwvn9zh0mwwj4dlxkqx5lp272hl";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pygobject/3.nix b/nixpkgs/pkgs/development/python-modules/pygobject/3.nix
index 74606902722a..9e38d6403970 100644
--- a/nixpkgs/pkgs/development/python-modules/pygobject/3.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygobject/3.nix
@@ -3,13 +3,13 @@ pycairo, cairo, which, ncurses, meson, ninja, isPy3k, gnome3 }:
 
 buildPythonPackage rec {
   pname = "pygobject";
-  version = "3.36.0";
+  version = "3.36.1";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1vysyr586mfjm7biraw1nynpw4f1qajynkm6m40ybadsnpgx50w6";
+    sha256 = "0b9CgC0c7BE7Wtqg579/N0W0RSHcIWNYjSdtXNYdcY8=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/development/python-modules/pygogo/default.nix b/nixpkgs/pkgs/development/python-modules/pygogo/default.nix
new file mode 100644
index 000000000000..89031c9610aa
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pygogo/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, pythonOlder
+, buildPythonPackage
+, fetchFromGitHub
+, pkutils
+  # Check Inputs
+, pytestCheckHook
+, nose
+}:
+
+buildPythonPackage rec {
+  pname = "pygogo";
+  version = "0.13.2";
+
+  disabled = pythonOlder "3.6";
+
+  src = fetchFromGitHub {
+    owner = "reubano";
+    repo = "pygogo";
+    rev = "v${version}";
+    sha256 = "19rdf4sjrm5lp1vq1bki21a9lrkzz8sgrfwgjdkq4sgy90hn1jn9";
+  };
+
+  nativeBuildInputs = [ pkutils ];
+
+  checkInputs = [ nose ];
+  checkPhase = "nosetests";
+  pythonImportsCheck = [ "pygogo" ];
+
+  meta = with lib; {
+    description = "A Python logging library with super powers";
+    homepage = "https://github.com/reubano/pygogo/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ drewrisinger ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pygraphviz/default.nix b/nixpkgs/pkgs/development/python-modules/pygraphviz/default.nix
index 1a084f8a8707..3a451f4af1e4 100644
--- a/nixpkgs/pkgs/development/python-modules/pygraphviz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pygraphviz/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pygraphviz";
-  version = "1.5";
+  version = "1.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "179i3mjprhn200gcj6jq7c4mdrzckyqlh1srz78hynnw0nijka2h";
+    sha256 = "411ae84a5bc313e3e1523a1cace59159f512336318a510573b47f824edef8860";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/pygrok/default.nix b/nixpkgs/pkgs/development/python-modules/pygrok/default.nix
new file mode 100644
index 000000000000..8f694a117fe5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pygrok/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, lib, buildPythonPackage, fetchFromGitHub, regex, pytest }:
+
+buildPythonPackage rec {
+  pname = "pygrok";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "garyelephant";
+    repo = "pygrok";
+    rev = "v${version}";
+    sha256 = "07487rcmv74srnchh60jp0vg46g086qmpkaj8gxqhp9rj47r1s4m";
+  };
+
+  propagatedBuildInputs = [ regex ];
+
+  checkInputs =  [ pytest ];
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    maintainers = with maintainers; [ winpat ];
+    description = "A python implementation of jordansissel's grok regular expression library";
+    homepage = "https://github.com/garyelephant/pygrok";
+    license = licenses.mit;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyhamcrest/1.nix b/nixpkgs/pkgs/development/python-modules/pyhamcrest/1.nix
new file mode 100644
index 000000000000..592172c6550d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyhamcrest/1.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, mock, pytest
+, six
+}:
+buildPythonPackage rec {
+  pname = "PyHamcrest";
+  version = "1.10.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0x08lfcnsak7pkym32xrdn0sn3wcf26n1jff3d11mwbizpfikbpp";
+  };
+
+  checkInputs = [ mock pytest ];
+  propagatedBuildInputs = [ six ];
+
+  doCheck = false;  # pypi tarball does not include tests
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/hamcrest/PyHamcrest";
+    description = "Hamcrest framework for matcher objects";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [
+      alunduil
+    ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyhamcrest/default.nix b/nixpkgs/pkgs/development/python-modules/pyhamcrest/default.nix
index 98ef4afacc19..40469bd0deba 100644
--- a/nixpkgs/pkgs/development/python-modules/pyhamcrest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyhamcrest/default.nix
@@ -4,11 +4,11 @@
 }:
 buildPythonPackage rec {
   pname = "PyHamcrest";
-  version = "1.9.0";
+  version = "2.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8ffaa0a53da57e89de14ced7185ac746227a8894dbd5a3c718bf05ddbd1d56cd";
+    sha256 = "412e00137858f04bde0729913874a48485665f2d36fe9ee449f26be864af9316";
   };
 
   checkInputs = [ mock pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix b/nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix
index 7717706561da..b6ef4bc4a8ba 100644
--- a/nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyhaversion/default.nix
@@ -1,9 +1,11 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy3k
 # propagatedBuildInputs
 , aiohttp
 , async-timeout
+, semantic-version
 # buildInputs
 , pytestrunner
 # checkInputs
@@ -13,16 +15,20 @@
 }:
 buildPythonPackage rec {
   pname = "pyhaversion";
-  version = "3.1.0";
+  version = "3.3.0";
+
+  # needs aiohttp which is py3k-only
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1d4smpzlaw0sqfgkgvhxsn8h7bmwj8h9gj98sdzvkzhp5vhd96b2";
+    sha256 = "376a1b232a26035bc82d64affa1c4f312d782234fe5453e8d0f9e1350a97be5b";
   };
 
   propagatedBuildInputs = [
     aiohttp
     async-timeout
+    semantic-version
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix b/nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix
index 14bf1cfe7be0..3f12888d5319 100644
--- a/nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyhomematic/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pyhomematic";
-  version = "0.1.67";
+  version = "0.1.68";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2d18e0059367e9e32d6472023322113fce431bcc72187b4a6eb7402fe5d2794b";
+    sha256 = "7f8ec68238a441cfe593fa9028509fd0c3dc67400b4dd520c8c02088f177302e";
   };
 
   # PyPI tarball does not include tests/ directory
diff --git a/nixpkgs/pkgs/development/python-modules/pyhs100/default.nix b/nixpkgs/pkgs/development/python-modules/pyhs100/default.nix
new file mode 100644
index 000000000000..2e6d7164b8bf
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyhs100/default.nix
@@ -0,0 +1,38 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, click, click-datetime, deprecation
+, pytest, voluptuous }:
+
+buildPythonPackage rec {
+  pname = "pyHS100";
+  version = "0.3.5.1";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "GadgetReactor";
+    repo = pname;
+    rev = version;
+    sha256 = "1vddr9sjn6337i1vx0mm7pb3qibvl2gx6nx18vm4fajgv9vcjxny";
+  };
+
+  propagatedBuildInputs = [
+    click
+    click-datetime
+    deprecation
+  ];
+
+  checkInputs = [
+    pytest
+    voluptuous
+  ];
+
+  checkPhase = ''
+    py.test pyHS100
+  '';
+
+  meta = with lib; {
+    description = "Python Library to control TPLink Switch (HS100 / HS110)";
+    homepage = "https://github.com/GadgetReactor/pyHS100";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyicloud/default.nix b/nixpkgs/pkgs/development/python-modules/pyicloud/default.nix
index 2725aca5a826..6e808a010585 100644
--- a/nixpkgs/pkgs/development/python-modules/pyicloud/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyicloud/default.nix
@@ -38,9 +38,10 @@ buildPythonPackage rec {
 
   postPatch = ''
     sed -i \
-      -e 's!click>=6.0,<7.0!click!' \
-      -e 's!keyring>=8.0,<9.0!keyring!' \
-      -e 's!keyrings.alt>=1.0,<2.0!keyrings.alt!' \
+      -e 's!click>=.*!click!' \
+      -e 's!keyring>=.*!keyring!' \
+      -e 's!keyrings.alt>=.*!keyrings.alt!' \
+      -e 's!tzlocal==.*!tzlocal!' \
       requirements.txt
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyipp/default.nix b/nixpkgs/pkgs/development/python-modules/pyipp/default.nix
new file mode 100644
index 000000000000..98bb6360ce54
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyipp/default.nix
@@ -0,0 +1,40 @@
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27
+, aiohttp, deepmerge, yarl
+, aresponses, pytest, pytest-asyncio, pytestcov }:
+
+buildPythonPackage rec {
+  pname = "pyipp";
+  version = "0.11.0";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+   owner = "ctalkington";
+   repo = "python-ipp";
+   rev = version;
+   sha256 = "0ar3mkyfa9qi3av3885bvacpwlxh420if9ymdj8i4x06ymzc213d";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+    deepmerge
+    yarl
+  ];
+
+  checkInputs = [
+    aresponses
+    pytest
+    pytest-asyncio
+    pytestcov
+  ];
+
+  checkPhase = ''
+    pytest -q .
+  '';
+
+  meta = with lib; {
+    description = "Asynchronous Python client for Internet Printing Protocol (IPP)";
+    homepage = "https://github.com/ctalkington/python-ipp";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyjet/default.nix b/nixpkgs/pkgs/development/python-modules/pyjet/default.nix
index 4a20b5142b68..abf4beaada0d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyjet/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyjet/default.nix
@@ -1,12 +1,15 @@
-{ lib, buildPythonPackage, fetchPypi, cython, nose, numpy }:
+{ lib, buildPythonPackage, fetchFromGitHub, cython, pytest, numpy }:
 
 buildPythonPackage rec {
   pname = "pyjet";
-  version = "1.5.0";
+  version = "1.6.0";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b334fb9a01854165629d49a2df43c81c880fc231a8a27c156beccf42f223fe47";
+  # tests not included in pypi tarball
+  src = fetchFromGitHub {
+    owner = "scikit-hep";
+    repo = pname;
+    rev = version;
+    sha256 = "0b68jnbfk2rw9i1nnwsrbrbgkj7r0w1nw0i9f8fah1wmn78k9csv";
   };
 
   # fix for python37
@@ -19,7 +22,11 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [ numpy ];
-  checkInputs = [ nose ];
+  checkInputs = [ pytest ];
+  checkPhase = ''
+    mv pyjet _pyjet
+    pytest tests/
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/scikit-hep/pyjet";
diff --git a/nixpkgs/pkgs/development/python-modules/pyjks/default.nix b/nixpkgs/pkgs/development/python-modules/pyjks/default.nix
index d9e2074fb28a..a05dcadeb84d 100644
--- a/nixpkgs/pkgs/development/python-modules/pyjks/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyjks/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "pyjks";
-  version = "19.0.0";
+  version = "20.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06h1cybsdj2wi0jf7igbr722xfm87crqn4g7m3bgrpxwi41b9rcw";
+    sha256 = "0378cec15fb11b2ed27ba54dad9fd987d48e6f62f49fcff138f5f7a8b312b044";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pykdl/default.nix b/nixpkgs/pkgs/development/python-modules/pykdl/default.nix
new file mode 100644
index 000000000000..5fc38cd5dd4d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pykdl/default.nix
@@ -0,0 +1,20 @@
+{ lib, stdenv, toPythonModule, cmake, orocos-kdl, python, sip }:
+
+toPythonModule (stdenv.mkDerivation {
+  pname = "pykdl";
+  inherit (orocos-kdl) version src;
+
+  sourceRoot = "source/python_orocos_kdl";
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ orocos-kdl ];
+  propagatedBuildInputs = [ python sip ];
+
+  meta = with lib; {
+    description = "Kinematics and Dynamics Library (Python bindings)";
+    homepage = "https://www.orocos.org/kdl.html";
+    license = licenses.lgpl21Only;
+    maintainers = with maintainers; [ lopsided98 ];
+    platforms = platforms.all;
+  };
+})
diff --git a/nixpkgs/pkgs/development/python-modules/pykeepass/default.nix b/nixpkgs/pkgs/development/python-modules/pykeepass/default.nix
index 311417bf0e44..584c98f6cb09 100644
--- a/nixpkgs/pkgs/development/python-modules/pykeepass/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pykeepass/default.nix
@@ -1,19 +1,23 @@
 { lib, fetchPypi, buildPythonPackage
-, lxml, pycryptodome, construct
+, lxml, pycryptodomex, construct
 , argon2_cffi, dateutil, future
 }:
 
 buildPythonPackage rec {
   pname   = "pykeepass";
-  version = "3.2.0";
+  version = "3.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ysjn92bixq8wkwhlbhrjj9z0h80qnlnj7ks5478ndkzdw5gxvm1";
+    sha256 = "b3e07eb2dd3aeb1dfa1a2d2d17be77066ee560c1e770f1c72d7ea5608117d284";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py --replace "==" ">="
+  '';
+
   propagatedBuildInputs = [
-    lxml pycryptodome construct
+    lxml pycryptodomex construct
     argon2_cffi dateutil future
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pykwalify/default.nix b/nixpkgs/pkgs/development/python-modules/pykwalify/default.nix
new file mode 100644
index 000000000000..d2b31ebbf4cd
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pykwalify/default.nix
@@ -0,0 +1,53 @@
+{ lib, buildPythonPackage, fetchPypi
+, dateutil, docopt, pyyaml
+, pytest, testfixtures
+}:
+
+buildPythonPackage rec {
+  version = "1.7.0";
+  pname = "pykwalify";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1cnfzkg1b01f825ikpw2fhjclf9c8akxjfrbd1vc22x1lg2kk2vy";
+  };
+
+  propagatedBuildInputs = [
+    dateutil
+    docopt
+    pyyaml
+  ];
+
+  checkInputs = [
+    pytest
+    testfixtures
+  ];
+
+  checkPhase = ''
+    pytest \
+      -k 'not test_multi_file_support'
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/Grokzen/pykwalify";
+    description = "YAML/JSON validation library";
+    longDescription = ''
+      This framework is a port with a lot of added functionality
+      of the Java version of the framework kwalify that can be found at
+      http://www.kuwata-lab.com/kwalify/
+
+      The original source code can be found at
+      http://sourceforge.net/projects/kwalify/files/kwalify-java/0.5.1/
+
+      The source code of the latest release that has been used can be found at
+      https://github.com/sunaku/kwalify.
+      Please note that source code is not the original authors code
+      but a fork/upload of the last release available in Ruby.
+
+      The schema this library is based on and extended from:
+      http://www.kuwata-lab.com/kwalify/ruby/users-guide.01.html#schema
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ siriobalmelli ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pylast/default.nix b/nixpkgs/pkgs/development/python-modules/pylast/default.nix
index 6a6853e55994..10449717ea45 100644
--- a/nixpkgs/pkgs/development/python-modules/pylast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylast/default.nix
@@ -1,16 +1,19 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy3k, certifi, six }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy3k, certifi, six
+, setuptools_scm
+}:
 
 buildPythonPackage rec {
   pname = "pylast";
-  version = "3.1.0";
+  version = "3.3.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0sk08l8dq0r4xgmqkxq6jzlbam34k95adaw468n0bh6cps18ddby";
+    sha256 = "1wqd23bbk5si2mcmswsi486zqnydjjf8g7924gcz6cc1x036lasd";
   };
 
+  nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ certifi six ];
 
   # tests require last.fm credentials
diff --git a/nixpkgs/pkgs/development/python-modules/pylatexenc/default.nix b/nixpkgs/pkgs/development/python-modules/pylatexenc/default.nix
index 02a0f8758369..6b56a42246f1 100644
--- a/nixpkgs/pkgs/development/python-modules/pylatexenc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylatexenc/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "pylatexenc";
-  version = "2.4";
+  version = "2.7";
 
   src = fetchFromGitHub {
     owner = "phfaist";
     repo = "pylatexenc";
     rev = "v${version}";
-    sha256 = "0i4frypbv90mjir8bkp03cwkvwhgvc9p3fw6q2jz1dn7fw94v2rv";
+    sha256 = "1hpcwbknfah3mky2m4asw15b9qdvv4k5ni0js764n1jpi83m1zgk";
   };
 
   pythonImportsCheck = [ "pylatexenc" ];
@@ -26,4 +26,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ drewrisinger ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pylibftdi/default.nix b/nixpkgs/pkgs/development/python-modules/pylibftdi/default.nix
index 54058ae1982d..c001594d625a 100644
--- a/nixpkgs/pkgs/development/python-modules/pylibftdi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylibftdi/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pylibftdi";
-  version = "0.18.1";
+  version = "0.19.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17c5h4xz1grynbpffngjflk3dlw2g2zbhkwb7h5v4n9rjdv41l5x";
+    sha256 = "bb0ec74df292ef884aa37bf1e98fb9df4d338718e1559eebda363317a792123e";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pylibgen/default.nix b/nixpkgs/pkgs/development/python-modules/pylibgen/default.nix
deleted file mode 100644
index 9dc6689e9000..000000000000
--- a/nixpkgs/pkgs/development/python-modules/pylibgen/default.nix
+++ /dev/null
@@ -1,33 +0,0 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, pythonOlder
-, requests
-, pytest
-, pre-commit
-}:
-
-buildPythonPackage rec {
-  pname = "pylibgen";
-  version = "2.0.2";
-  disabled = pythonOlder "3.6";
-
-  src = fetchFromGitHub {
-    owner = "joshuarli";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1a9vhkgnkiwkicr2s287254mrkpnw9jq5r63q820dp3h74ba4kl1";
-  };
-
-  propagatedBuildInputs = [ requests ];
-
-  checkInputs = [ pytest pre-commit ];
-
-  # literally every tests does a network call
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Python interface to Library Genesis";
-    homepage = "https://pypi.org/project/pylibgen/";
-    license = licenses.mit;
-    maintainers = [ maintainers.nico202 ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/python-modules/pylint-django/default.nix b/nixpkgs/pkgs/development/python-modules/pylint-django/default.nix
index af4b0177eb26..c5dfbd48fe12 100644
--- a/nixpkgs/pkgs/development/python-modules/pylint-django/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylint-django/default.nix
@@ -6,18 +6,23 @@
 # pythonPackages
 , django
 , pylint-plugin-utils
+
+# pythonPackages for checkInputs
+, coverage
+, factory_boy
+, pytest
 }:
 
 buildPythonPackage rec {
   pname = "pylint-django";
-  version = "2.0.15";
+  version = "2.3.0";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "PyCQA";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0wpzd3j01njxfclbhxz31s5clc7il67nhm4lz89q2aaj19c0xzsa";
+    sha256 = "1088waraiigi2bnlighn7bvnvqmpx5fbw70c8jd8sh25mj38wgly";
   };
 
   propagatedBuildInputs = [
@@ -25,8 +30,14 @@ buildPythonPackage rec {
     pylint-plugin-utils
   ];
 
-  # Testing requires checkout from other repositories
-  doCheck = false;
+  checkInputs = [ coverage factory_boy pytest ];
+
+  # Check command taken from scripts/test.sh
+  # Skip test external_django_tables2_noerror_meta_class:
+  # requires an unpackaged django_tables2
+  checkPhase = ''
+      python pylint_django/tests/test_func.py -v -k "not tables2"
+  '';
 
   meta = with lib; {
     description = "A Pylint plugin to analyze Django applications";
diff --git a/nixpkgs/pkgs/development/python-modules/pylint-plugin-utils/default.nix b/nixpkgs/pkgs/development/python-modules/pylint-plugin-utils/default.nix
index 2d48ef7fea76..f2bbef2cc8c1 100644
--- a/nixpkgs/pkgs/development/python-modules/pylint-plugin-utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylint-plugin-utils/default.nix
@@ -5,6 +5,7 @@
 
 # pythonPackages
 , pylint
+, toml
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    pylint
+    pylint toml
   ];
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pylint/1.9.nix b/nixpkgs/pkgs/development/python-modules/pylint/1.9.nix
index 568d85b7e1b7..e283cc10d16a 100644
--- a/nixpkgs/pkgs/development/python-modules/pylint/1.9.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylint/1.9.nix
@@ -1,6 +1,6 @@
 { stdenv, lib, buildPythonPackage, fetchPypi, astroid, six, isort,
   mccabe, configparser, backports_functools_lru_cache, singledispatch,
-  pytest, pytestrunner, pyenchant, setuptools }:
+  pytest, pytestrunner, setuptools }:
 
 buildPythonPackage rec {
   pname = "pylint";
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     sha256 = "004kfapkqxqy2s85pmddqv0fabxdxywxrlbi549p0v237pr2v94p";
   };
 
-  checkInputs = [ pytest pytestrunner pyenchant ];
+  checkInputs = [ pytest pytestrunner ];
 
   propagatedBuildInputs = [ astroid six isort mccabe configparser backports_functools_lru_cache singledispatch setuptools ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pylint/default.nix b/nixpkgs/pkgs/development/python-modules/pylint/default.nix
index c596b4042cc3..6babcb15ba4c 100644
--- a/nixpkgs/pkgs/development/python-modules/pylint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pylint/default.nix
@@ -1,22 +1,22 @@
 { stdenv, lib, buildPythonPackage, fetchPypi, pythonOlder, astroid,
-  isort, mccabe, pytestCheckHook, pytestrunner }:
+  isort, mccabe, pytestCheckHook, pytest-benchmark, pytestrunner, toml }:
 
 buildPythonPackage rec {
   pname = "pylint";
-  version = "2.4.4";
+  version = "2.5.3";
 
   disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3db5468ad013380e987410a8d6956226963aed94ecb5f9d3a28acca6d9ac36cd";
+    sha256 = "7dd78437f2d8d019717dbf287772d0b2dbdfd13fc016aa7faa08d67bccc46adc";
   };
 
   nativeBuildInputs = [ pytestrunner ];
 
-  checkInputs = [ pytestCheckHook ];
+  checkInputs = [ pytestCheckHook pytest-benchmark ];
 
-  propagatedBuildInputs = [ astroid isort mccabe ];
+  propagatedBuildInputs = [ astroid isort mccabe toml ];
 
   postPatch = lib.optionalString stdenv.isDarwin ''
     # Remove broken darwin test
@@ -26,11 +26,18 @@ buildPythonPackage rec {
   disabledTests = [
     # https://github.com/PyCQA/pylint/issues/3198
     "test_by_module_statement_value"
+    # has issues with local directories
+    "test_version"
    ] ++ lib.optionals stdenv.isDarwin [
       "test_parallel_execution"
       "test_py3k_jobs_option"
    ];
 
+  # calls executable in one of the tests
+  preCheck = ''
+    export PATH=$PATH:$out/bin
+  '';
+
   dontUseSetuptoolsCheck = true;
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pyls-black/default.nix b/nixpkgs/pkgs/development/python-modules/pyls-black/default.nix
index d21002f91606..c59a67606ee6 100644
--- a/nixpkgs/pkgs/development/python-modules/pyls-black/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyls-black/default.nix
@@ -4,13 +4,13 @@
 
 buildPythonPackage rec {
   pname = "pyls-black";
-  version = "0.4.4";
+  version = "0.4.6";
 
   src = fetchFromGitHub {
     owner = "rupert";
     repo = "pyls-black";
     rev = "v${version}";
-    sha256 = "1ynynay9g6yma39szbzf15ypq3c72fg1i0kjmq1dwxarj68i2gf9";
+    sha256 = "0cjf0mjn156qp0x6md6mncs31hdpzfim769c2lixaczhyzwywqnj";
   };
 
   disabled = !isPy3k;
diff --git a/nixpkgs/pkgs/development/python-modules/pyls-mypy/default.nix b/nixpkgs/pkgs/development/python-modules/pyls-mypy/default.nix
index b4fd98607d8a..b9cf9738ed42 100644
--- a/nixpkgs/pkgs/development/python-modules/pyls-mypy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyls-mypy/default.nix
@@ -1,29 +1,45 @@
-{ lib, buildPythonPackage, fetchFromGitHub
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27
 , future, python-language-server, mypy, configparser
-, pytest, mock, isPy3k, pytestcov, coverage
+, pytestCheckHook, mock, isPy3k, pytestcov, coverage
+, fetchpatch
 }:
 
 buildPythonPackage rec {
   pname = "pyls-mypy";
-  version = "0.1.6";
+  version = "0.1.8";
 
   src = fetchFromGitHub {
     owner = "tomv564";
     repo = "pyls-mypy";
     rev = version;
-    sha256 = "0c1111m9h6f05frkyj6i757q9y2lijpbv8nxmwgp3nqbpkvfnmrk";
+    sha256 = "14giyvcrq4w3asm1nyablw70zkakkcsr76chk5a41alxlk4l2alb";
   };
 
-  disabled = !isPy3k;
+  # presumably tests don't find typehints ?
+  doCheck = false;
 
-  checkPhase = ''
-    HOME=$TEMPDIR pytest
+  disabledTests = [
+    "test_parse_line_without_line"
+  ];
+
+  preCheck = ''
+    export HOME=$TEMPDIR
   '';
 
-  checkInputs = [ pytest mock pytestcov coverage ];
+  patches = [
+    # makes future optional
+    (fetchpatch {
+      url = "https://github.com/tomv564/pyls-mypy/commit/2949582ff5f39b1de51eacc92de6cfacf1b5ab75.patch";
+      sha256 = "0bqkvdy5mxyi46nhq5ryynf465f68b6ffy84hmhxrigkapz085g5";
+    })
+  ];
+
+  checkInputs = [ mock pytestcov coverage pytestCheckHook ];
 
   propagatedBuildInputs = [
-    mypy python-language-server future configparser
+    mypy python-language-server configparser
+  ] ++ lib.optional (isPy27) [
+    future
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pymatgen/default.nix b/nixpkgs/pkgs/development/python-modules/pymatgen/default.nix
index f9869cc2c7f4..635d951f56eb 100644
--- a/nixpkgs/pkgs/development/python-modules/pymatgen/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymatgen/default.nix
@@ -1,16 +1,35 @@
-{ stdenv, buildPythonPackage, fetchPypi, glibcLocales, numpy, pydispatcher, sympy, requests, monty, ruamel_yaml, six, scipy, tabulate, enum34, matplotlib, palettable, spglib, pandas, networkx }:
+{ stdenv, buildPythonPackage, fetchPypi, glibcLocales, numpy, pydispatcher, sympy, requests, monty, ruamel_yaml, six, scipy, tabulate, enum34, matplotlib, palettable, spglib, pandas, plotly, networkx }:
 
 buildPythonPackage rec {
   pname = "pymatgen";
-  version = "2019.12.22";
+  version = "2020.8.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ffc6efcc2ba15bff22cca29c07b93b01fac400f649c41d5dd01bfff7915f80b";
+    sha256 = "23e5885e15195b37ce4c16ef93f474f741cb98451fa8dd4c319ec121f4887256";
   };
 
   nativeBuildInputs = [ glibcLocales ];
-  propagatedBuildInputs = [ numpy pydispatcher sympy requests monty ruamel_yaml six scipy tabulate enum34 matplotlib palettable spglib pandas networkx ];
+
+
+  propagatedBuildInputs = [
+    enum34
+    matplotlib
+    monty
+    networkx
+    numpy
+    palettable
+    pandas
+    plotly
+    pydispatcher
+    requests
+    ruamel_yaml
+    scipy
+    six
+    spglib
+    sympy
+    tabulate
+  ];
 
   # No tests in pypi tarball.
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/pymavlink/default.nix b/nixpkgs/pkgs/development/python-modules/pymavlink/default.nix
index 51b057e740ce..0522e0791fc5 100644
--- a/nixpkgs/pkgs/development/python-modules/pymavlink/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymavlink/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pymavlink";
-  version = "2.4.8";
+  version = "2.4.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1djzr6cg3l19icwplmpii7zzr8gms9qcc2lfr8yc05siqzclk5xk";
+    sha256 = "6049f270aa0a1013c7dcd32b9f4756d79b6a2ccf73babeca2c46b9e391e644fe";
   };
 
   propagatedBuildInputs = [ future lxml ];
diff --git a/nixpkgs/pkgs/development/python-modules/pymbolic/default.nix b/nixpkgs/pkgs/development/python-modules/pymbolic/default.nix
index 853799497296..23c88ca28d45 100644
--- a/nixpkgs/pkgs/development/python-modules/pymbolic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymbolic/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "pymbolic";
-  version = "2019.2";
+  version = "2020.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a7507864a76574d72bf5732497b247661c6ad73bb277cd9c8aae09e90a62e05a";
+    sha256 = "ca029399f9480f6d51fbac0349fddbb42d937620deb03befa0ba94ac08895e6b";
   };
 
   postConfigure = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pymc3/default.nix b/nixpkgs/pkgs/development/python-modules/pymc3/default.nix
index 0c99b501c3f2..bda74c5063a6 100644
--- a/nixpkgs/pkgs/development/python-modules/pymc3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymc3/default.nix
@@ -18,12 +18,12 @@
 
 buildPythonPackage rec {
   pname = "pymc3";
-  version = "3.8";
+  version = "3.9.3";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1bb2915e4a29877c681ead13932b0b7d276f7f496e9c3f09ba96b977c99caf00";
+    sha256 = "abe046f5a5d0e5baee80b7c4bc0a4c218f61b517b62d77be4f89cf4784c27d78";
   };
 
   # No need for coverage stats in Nix builds
diff --git a/nixpkgs/pkgs/development/python-modules/pymetno/default.nix b/nixpkgs/pkgs/development/python-modules/pymetno/default.nix
index 129ec21e05ce..1e4b0d2adaef 100644
--- a/nixpkgs/pkgs/development/python-modules/pymetno/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymetno/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "PyMetno";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     repo = pname;
     owner = "Danielhiversen";
     rev = version;
-    sha256 = "00v2r3nn48svni9rbmbf0a4ylgfcf93gk2wg7qnm1fv1qrkgscvg";
+    sha256 = "1ihq1lzgzcxbg916izakx9jp0kp1vdrcdwcwwwsws838wc08ax6m";
   };
 
   propagatedBuildInputs = [ aiohttp async-timeout pytz xmltodict ];
diff --git a/nixpkgs/pkgs/development/python-modules/pymongo/default.nix b/nixpkgs/pkgs/development/python-modules/pymongo/default.nix
index b7da796d3bb5..2838362f1dba 100644
--- a/nixpkgs/pkgs/development/python-modules/pymongo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymongo/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pymongo";
-  version = "3.10.1";
+  version = "3.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "993257f6ca3cde55332af1f62af3e04ca89ce63c08b56a387cdd46136c72f2fa";
+    sha256 = "076a7f2f7c251635cf6116ac8e45eefac77758ee5a77ab7bd2f63999e957613b";
   };
 
   # Tests call a running mongodb instance
diff --git a/nixpkgs/pkgs/development/python-modules/pymupdf/default.nix b/nixpkgs/pkgs/development/python-modules/pymupdf/default.nix
index c91892585d60..bc2f2c6e95ff 100644
--- a/nixpkgs/pkgs/development/python-modules/pymupdf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymupdf/default.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPythonPackage, fetchPypi, mupdf, swig }:
 buildPythonPackage rec {
   pname = "PyMuPDF";
-  version = "1.17.0";
+  version = "1.17.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0de92a8fb65db6e661594cc5865a340a2daac3cb9bb58e030820769ece1343c1";
+    sha256 = "5eef4ff61698016a296932858625a5a0039b923ba692043e2c98ca02966f1da2";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pymysql/default.nix b/nixpkgs/pkgs/development/python-modules/pymysql/default.nix
index a43dcfb26fcd..c0419d025b0b 100644
--- a/nixpkgs/pkgs/development/python-modules/pymysql/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymysql/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "PyMySQL";
-  version = "0.9.3";
+  version = "0.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ry8lxgdc1p3k7gbw20r405jqi5lvhi5wk83kxdbiv8xv3f5kh6q";
+    sha256 = "0dwqw556qmjl5359wsylnh5kmw3ns8qkw1pn1gwf0l70hjy70h71";
   };
 
   propagatedBuildInputs = [ cryptography ];
diff --git a/nixpkgs/pkgs/development/python-modules/pymystem3/default.nix b/nixpkgs/pkgs/development/python-modules/pymystem3/default.nix
index 2b00dd7951d1..8c909b868b39 100644
--- a/nixpkgs/pkgs/development/python-modules/pymystem3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pymystem3/default.nix
@@ -1,6 +1,7 @@
 { lib
 , fetchPypi
 , buildPythonPackage
+, isPy3k
 , requests
 , flake8
 , mock
@@ -19,6 +20,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests ];
   checkInputs = [ flake8 mock pytest ];
+  doCheck = isPy3k; # fails on linting
 
   postPatch = ''
     sed -i 's#^_mystem_info = .*#_mystem_info = ["${mystem}/bin", "${mystem}/bin/mystem"]#' pymystem3/constants.py
diff --git a/nixpkgs/pkgs/development/python-modules/pynamodb/default.nix b/nixpkgs/pkgs/development/python-modules/pynamodb/default.nix
index 5016cfb741c5..53df38b5836b 100644
--- a/nixpkgs/pkgs/development/python-modules/pynamodb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynamodb/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "pynamodb";
-  version = "4.2.0";
+  version = "4.3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0njbh3h6696nq5palqa0b8s0fbsvhbawpzl923dnfsa9kgq5m294";
+    sha256 = "ced47c200073dbbfafb10b26931b9c9bf3c6b898f41dffa3676f5c2e2eddc2f0";
   };
 
   propagatedBuildInputs = [ python-dateutil botocore ];
diff --git a/nixpkgs/pkgs/development/python-modules/pynmea2/default.nix b/nixpkgs/pkgs/development/python-modules/pynmea2/default.nix
index 71d874740c50..de208c7a9dbb 100644
--- a/nixpkgs/pkgs/development/python-modules/pynmea2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pynmea2/default.nix
@@ -16,6 +16,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/Knio/pynmea2";
     description = "Python library for the NMEA 0183 protcol";
     license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ geistesk ];
+    maintainers = with lib.maintainers; [ oxzi ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyobjc/default.nix b/nixpkgs/pkgs/development/python-modules/pyobjc/default.nix
index 8b35ef4b3da2..d66425fa369e 100644
--- a/nixpkgs/pkgs/development/python-modules/pyobjc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyobjc/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "pyobjc";
-  version = "6.1";
+  version = "6.2.2";
 
   # Gives "No matching distribution found for
   # pyobjc-framework-Collaboration==4.0b1 (from pyobjc==4.0b1)"
@@ -10,7 +10,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "53ae86caaedc48350c6e93d6e778a0c5044e802340b6d6a679e55014758be540";
+    sha256 = "d5b87e9fa4cc9b51bf37f9a461887e2d8b9ae7e6bb45675f8edbe35ea6770455";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/pyopencl/default.nix b/nixpkgs/pkgs/development/python-modules/pyopencl/default.nix
index e1b6abb7527d..e5eddd81d99c 100644
--- a/nixpkgs/pkgs/development/python-modules/pyopencl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyopencl/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "pyopencl";
-  version = "2020.1";
+  version = "2020.2.1";
 
   checkInputs = [ pytest ];
   buildInputs = [ opencl-headers ocl-icd pybind11 ];
@@ -25,7 +25,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7513f7054f4eeb5361de1f5113883145fc67dbabde73a2148f221ae05af4d22c";
+    sha256 = "deb6c50f37f8f88960a943b379eca8c0a9a80634cf60e09aee691a7453ae202e";
   };
 
   # py.test is not needed during runtime, so remove it from `install_requires`
diff --git a/nixpkgs/pkgs/development/python-modules/pyopengl-accelerate/default.nix b/nixpkgs/pkgs/development/python-modules/pyopengl-accelerate/default.nix
new file mode 100644
index 000000000000..23de6b2323f0
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyopengl-accelerate/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, lib
+}:
+
+buildPythonPackage rec {
+  pname = "pyopengl-accelerate";
+  version = "3.1.5";
+
+  src = fetchPypi {
+    pname = "PyOpenGL-accelerate";
+    inherit version;
+    sha256 = "01iggy5jwxv7lxnj51zbmlbhag9wcb7dvrbwgi97i90n0a5m3r8j";
+  };
+
+  meta = {
+    description = "This set of C (Cython) extensions provides acceleration of common operations for slow points in PyOpenGL 3.x";
+    homepage = "http://pyopengl.sourceforge.net/";
+    maintainers = with lib.maintainers; [ laikq ];
+    license = lib.licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyotp/default.nix b/nixpkgs/pkgs/development/python-modules/pyotp/default.nix
index c78b7fb14590..1a3d674779be 100644
--- a/nixpkgs/pkgs/development/python-modules/pyotp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyotp/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyotp";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "18d13ikra1iq0xyfqfm72zhgwxi2qi9ps6z1a6zmqp4qrn57wlzw";
+    sha256 = "01eceab573181188fe038d001e42777884a7f5367203080ef5bda0e30fe82d28";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pyowm/default.nix b/nixpkgs/pkgs/development/python-modules/pyowm/default.nix
index 731bba046e85..04e683ee6e05 100644
--- a/nixpkgs/pkgs/development/python-modules/pyowm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyowm/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "pyowm";
-  version = "2.10.0";
+  version = "3.0.0";
 
   disabled = pythonOlder "3.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8fd41a18536f4d6c432bc6d9ea69994efb1ea9b43688cf19523659b6f4d86cf7";
+    sha256 = "f06ac5f2356f0964f088b1f840a6d382499054bd18539ffb1e7c84f29c2c39b6";
   };
 
   propagatedBuildInputs = [ requests geojson ];
diff --git a/nixpkgs/pkgs/development/python-modules/pypcap/default.nix b/nixpkgs/pkgs/development/python-modules/pypcap/default.nix
index 06a669e3f4fc..08c90d828986 100644
--- a/nixpkgs/pkgs/development/python-modules/pypcap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pypcap/default.nix
@@ -34,6 +34,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/pynetwork/pypcap";
     description = "Simplified object-oriented Python wrapper for libpcap";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyperclip/default.nix b/nixpkgs/pkgs/development/python-modules/pyperclip/default.nix
index 9709aea1d185..2c3b3e56a93f 100644
--- a/nixpkgs/pkgs/development/python-modules/pyperclip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyperclip/default.nix
@@ -1,12 +1,12 @@
 { lib, buildPythonPackage, fetchPypi }:
 
 buildPythonPackage rec {
-  version = "1.7.0";
+  version = "1.8.0";
   pname = "pyperclip";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "979325468ccf682104d5dcaf753f869868100631301d3e72f47babdea5700d1c";
+    sha256 = "b75b975160428d84608c26edba2dec146e7799566aea42c1fe1b32e72b6028f2";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/pyperf/default.nix b/nixpkgs/pkgs/development/python-modules/pyperf/default.nix
index 430181cb574e..f17f83bd17b9 100644
--- a/nixpkgs/pkgs/development/python-modules/pyperf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyperf/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "pyperf";
-  version = "1.7.1";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c37690e810116a83a244dfeec47885e2f0475b4c450313904be3bc2cdaf6d50a";
+    sha256 = "2189fbc4af08d519f85468e70e32c902eab0f1341b2c41028b94b2832d3169a7";
   };
 
   checkInputs = [ nose psutil ] ++
diff --git a/nixpkgs/pkgs/development/python-modules/pyphotonfile/default.nix b/nixpkgs/pkgs/development/python-modules/pyphotonfile/default.nix
new file mode 100644
index 000000000000..7a350bd3b13f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyphotonfile/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pillow
+, numpy
+}:
+let
+  version = "0.2.1";
+in
+buildPythonPackage {
+  pname = "pyphotonfile";
+  inherit version;
+  propagatedBuildInputs = [ pillow numpy ];
+
+  src = fetchFromGitHub {
+    owner = "fookatchu";
+    repo = "pyphotonfile";
+    rev = "v${version}";
+    sha256 = "1hh1fcn7q3kyk2413pjs18xnxvzrchrisbpj2cd59jrdp0qzgv2s";
+  };
+
+  meta = with lib; {
+    maintainers = [ maintainers.cab404 ];
+    license = licenses.gpl3Plus;
+    description = "Library for reading and writing files for the Anycubic Photon 3D-Printer";
+    homepage = "https://github.com/fookatchu/pyphotonfile";
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pypubsub/default.nix b/nixpkgs/pkgs/development/python-modules/pypubsub/default.nix
new file mode 100644
index 000000000000..fd19167a3e9d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pypubsub/default.nix
@@ -0,0 +1,38 @@
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27, pytest }:
+
+buildPythonPackage rec {
+  pname = "pypubsub";
+  version = "4.0.3";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "schollii";
+    repo = "pypubsub";
+    rev = "v4.0.3";
+    sha256 = "02j74w28wzmdvxkk8i561ywjgizjifq3hgcl080yj0rvkd3wivlb";
+  };
+
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    cd tests/suite
+    py.test
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/schollii/pypubsub";
+    description = "Python 3 publish-subcribe library";
+    longDescription = ''
+     Provides a publish-subscribe API to facilitate event-based or
+     message-based  architecture in a single-process application. It is pure
+     Python  and works on Python 3.3+. It is centered on the notion of a topic;
+     senders publish messages of a given topic, and listeners subscribe to
+     messages of a given topic, all inside the same process. The package also
+     supports a variety of advanced features that facilitate debugging and
+     maintaining topics and messages in larger desktop- or server-based
+     applications.
+    '';
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ tfmoraes ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix b/nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix
index 3d7fe0bcc5f4..d1850c1288d6 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqtgraph/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "pyqtgraph";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4c08ab34881fae5ecf9ddfe6c1220b9e41e6d3eb1579a7d8ef501abb8e509251";
+    sha256 = "0p5k73wjfh0zzjvby8b5107cx7x0c2rdj66zh1nc8y95i0anf2na";
   };
 
   propagatedBuildInputs = [ scipy numpy pyqt4 pyopengl ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix b/nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix
index 3c0ae904557a..ff511103e553 100644
--- a/nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix
@@ -10,14 +10,19 @@ let
 
 in buildPythonPackage rec {
   pname = "PyQtWebEngine";
-  version = "5.14.0";
+  version = "5.15.0";
   format = "other";
 
   src = pythonPackages.fetchPypi {
     inherit pname version;
-    sha256 = "14hw49akb35n9pgiw564x8ykmsifihn9p2ax2x4zmywb3w2ra5g1";
+    sha256 = "0xdzhl07x3mzfnr5cf4d640168vxi7fyl0fz1pvpbgs0irl14237";
   };
 
+  patches = [
+    # source: https://www.riverbankcomputing.com/pipermail/pyqt/2020-June/042985.html
+    ./fix-build-with-qt-514.patch
+  ];
+
   outputs = [ "out" "dev" ];
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyqtwebengine/fix-build-with-qt-514.patch b/nixpkgs/pkgs/development/python-modules/pyqtwebengine/fix-build-with-qt-514.patch
new file mode 100644
index 000000000000..1ae911c14817
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyqtwebengine/fix-build-with-qt-514.patch
@@ -0,0 +1,31 @@
+diff --git a/sip/QtWebEngineWidgets/qwebenginecertificateerror.sip b/sip/QtWebEngineWidgets/qwebenginecertificateerror.sip
+index 5fb508f..7a4654a 100644
+--- a/sip/QtWebEngineWidgets/qwebenginecertificateerror.sip
++++ b/sip/QtWebEngineWidgets/qwebenginecertificateerror.sip
+@@ -48,7 +48,7 @@ public:
+ %If (QtWebEngine_5_8_0 -)
+         CertificateTransparencyRequired,
+ %End
+-%If (QtWebEngine_5_14_0 -)
++%If (QtWebEngine_5_15_0 -)
+         CertificateKnownInterceptionBlocked,
+ %End
+     };
+diff --git a/sip/QtWebEngineWidgets/qwebenginepage.sip b/sip/QtWebEngineWidgets/qwebenginepage.sip
+index 0dcbed2..9aa3443 100644
+--- a/sip/QtWebEngineWidgets/qwebenginepage.sip
++++ b/sip/QtWebEngineWidgets/qwebenginepage.sip
+@@ -663,10 +663,10 @@ signals:
+ %End
+
+ public:
+-%If (QtWebEngine_5_14_0 -)
++%If (QtWebEngine_5_15_0 -)
+     qint64 renderProcessPid() const;
+ %End
+-%If (QtWebEngine_5_14_0 -)
++%If (QtWebEngine_5_15_0 -)
+     void renderProcessPidChanged(qint64 pid);
+ %End
+ };
+
diff --git a/nixpkgs/pkgs/development/python-modules/pyro-ppl/default.nix b/nixpkgs/pkgs/development/python-modules/pyro-ppl/default.nix
index a11c2cad9282..c3157c3d301c 100644
--- a/nixpkgs/pkgs/development/python-modules/pyro-ppl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyro-ppl/default.nix
@@ -1,12 +1,12 @@
 { buildPythonPackage, fetchPypi, lib, pytorch, contextlib2
 , graphviz, networkx, six, opt-einsum, tqdm }:
 buildPythonPackage rec {
-  version = "1.1.0";
+  version = "1.4.0";
   pname = "pyro-ppl";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "5ca2fd19276fcfcf52babb48d22892a41d6238d7a6c65e63f704b070a3816479";
+    sha256 = "e863321bee141fb8d20d621aedc5925c472e06c08988447490115f54a31487ad";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyro4/default.nix b/nixpkgs/pkgs/development/python-modules/pyro4/default.nix
index 64f1aa56546d..3cf9d3f31437 100644
--- a/nixpkgs/pkgs/development/python-modules/pyro4/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyro4/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "Pyro4";
-  version = "4.77";
+  version = "4.80";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2bfe12a22f396474b0e57c898c7e2c561a8f850bf2055d8cf0f7119f0c7a523f";
+    sha256 = "46847ca703de3f483fbd0b2d22622f36eff03e6ef7ec7704d4ecaa3964cb2220";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyro5/default.nix b/nixpkgs/pkgs/development/python-modules/pyro5/default.nix
index 36559a032390..5afce4a37dac 100644
--- a/nixpkgs/pkgs/development/python-modules/pyro5/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyro5/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "Pyro5";
-  version = "5.7";
+  version = "5.11";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "08n9jqm81pjw9hvzk6kgxwqvh29q3glgccf77kxih5nn77pwdnni";
+    sha256 = "867cdd291d85560373e0c468da7fd18754f2568ef60e0bc504af42f391d7a3e5";
   };
 
   propagatedBuildInputs = [ serpent ];
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   checkInputs = [ pytestCheckHook ];
 
   # ignore network related tests, which fail in sandbox
-  disabledTests = [ "StartNSfunc" "Broadcast" "GetIP" ];
+  disabledTests = [ "StartNSfunc" "Broadcast" "GetIP" "TestNameServer" "TestBCSetup" ];
 
   meta = with lib; {
     description = "Distributed object middleware for Python (RPC)";
diff --git a/nixpkgs/pkgs/development/python-modules/pyroute2/default.nix b/nixpkgs/pkgs/development/python-modules/pyroute2/default.nix
index 0a28ef6369bc..04d66fb87ae7 100644
--- a/nixpkgs/pkgs/development/python-modules/pyroute2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyroute2/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyroute2";
-  version = "0.5.12";
+  version = "0.5.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1lry042qsamdzyw6zpmdld0v14g6cl05jsr9qdb7h5wnahf80mq1";
+    sha256 = "518365f3313e73b0f024b9fa7a580b29bfa2fe2c5230be0bc69c068bbf6637e9";
   };
 
   # requires root priviledges
diff --git a/nixpkgs/pkgs/development/python-modules/pyrsistent/default.nix b/nixpkgs/pkgs/development/python-modules/pyrsistent/default.nix
index da255645f443..edc1bb73f5a9 100644
--- a/nixpkgs/pkgs/development/python-modules/pyrsistent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyrsistent/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "pyrsistent";
-  version = "0.15.7";
+  version = "0.16.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cdc7b5e3ed77bed61270a47d35434a30617b9becdf2478af76ad2c6ade307280";
+    sha256 = "28669905fe725965daa16184933676547c5bb40a5153055a8dee2a4bd7933ad3";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyscard/default.nix b/nixpkgs/pkgs/development/python-modules/pyscard/default.nix
index 4bda0b3c65c0..d563a62a46b3 100644
--- a/nixpkgs/pkgs/development/python-modules/pyscard/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyscard/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, swig, pcsclite, PCSC }:
+{ stdenv, fetchPypi, fetchpatch, buildPythonPackage, swig, pcsclite, PCSC }:
 
 let
   # Package does not support configuring the pcsc library.
@@ -30,6 +30,21 @@ buildPythonPackage rec {
   NIX_CFLAGS_COMPILE = optionalString (! withApplePCSC)
     "-I ${getDev pcsclite}/include/PCSC";
 
+  # The error message differs depending on the macOS host version.
+  # Since Nix reports a constant host version, but proxies to the
+  # underlying library, it's not possible to determine the correct
+  # expected error message.  This patch allows both errors to be
+  # accepted.
+  # See: https://github.com/LudovicRousseau/pyscard/issues/77
+  # Building with python from nix on macOS version 10.13 or
+  # greater still causes this issue to occur.
+  patches = optionals withApplePCSC [
+    (fetchpatch {
+      url = "https://github.com/LudovicRousseau/pyscard/commit/945e9c4cd4036155691f6ce9706a84283206f2ef.patch";
+      sha256 = "19n8w1wzn85zywr6xf04d8nfg7sgzjyvxp1ccp3rgfr4mcc36plc";
+    })
+  ];
+
   propagatedBuildInputs = if withApplePCSC then [ PCSC ] else [ pcsclite ];
   nativeBuildInputs = [ swig ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/pyscard/ignore-macos-bug.patch b/nixpkgs/pkgs/development/python-modules/pyscard/ignore-macos-bug.patch
deleted file mode 100644
index 62b20477c9f8..000000000000
--- a/nixpkgs/pkgs/development/python-modules/pyscard/ignore-macos-bug.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/test/test_SCardGetErrorMessage.py b/test/test_SCardGetErrorMessage.py
-old mode 100644
-new mode 100755
-index c6fe755..c1217f5
---- a/test/test_SCardGetErrorMessage.py
-+++ b/test/test_SCardGetErrorMessage.py
-@@ -29,12 +29,10 @@ class TestError(unittest.TestCase):
-         self.assertEqual(res, expected)
- 
-         res = SCardGetErrorMessage(1)
-+        expected = "Unknown error: 0x00000001"
-         # macOS bug not yet fixed
--        if get_platform().startswith('macosx-') and get_platform() < 'macosx-10.13':
--            expected = "Unkown error: 0x00000001"
--        else:
--            expected = "Unknown error: 0x00000001"
--        self.assertEqual(res, expected)
-+        macos_bug_expected = "Unkown error: 0x00000001"
-+        self.assertIn(res, [expected, macos_bug_expected])
- 
- 
- if __name__ == '__main__':
diff --git a/nixpkgs/pkgs/development/python-modules/pyscreenshot/default.nix b/nixpkgs/pkgs/development/python-modules/pyscreenshot/default.nix
index 2865380076ae..23aa092641f1 100644
--- a/nixpkgs/pkgs/development/python-modules/pyscreenshot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyscreenshot/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pyscreenshot";
-  version = "0.6";
+  version = "2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7322ad9454652b1702a3689646ce53ef01ed2b14869ea557030bd4e03a06fc0e";
+    sha256 = "dec8517cb18faf4f983dd2ee6636924e472a5644da1480ae871786dfcac244e9";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pyscss/default.nix b/nixpkgs/pkgs/development/python-modules/pyscss/default.nix
index f268566fb544..30b5205050dd 100644
--- a/nixpkgs/pkgs/development/python-modules/pyscss/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyscss/default.nix
@@ -9,15 +9,15 @@
 , pythonOlder
 }:
 
-buildPythonPackage {
+buildPythonPackage rec {
   pname = "pyScss";
-  version = "1.3.5";
+  version = "1.3.7";
 
   src = fetchFromGitHub {
-    sha256 = "0lfsan74vcw6dypb196gmbprvlbran8p7w6czy8hyl2b1l728mhz";
-    rev = "v1.3.5";
     repo = "pyScss";
     owner = "Kronuz";
+    rev = version;
+    sha256 = "0701hziiiw67blafgpmjhzspmrss8mfvif7fw0rs8fikddwwc9g6";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/pysdl2/PySDL2-dll.patch b/nixpkgs/pkgs/development/python-modules/pysdl2/PySDL2-dll.patch
index ca723a0e5739..db6895edfbf8 100644
--- a/nixpkgs/pkgs/development/python-modules/pysdl2/PySDL2-dll.patch
+++ b/nixpkgs/pkgs/development/python-modules/pysdl2/PySDL2-dll.patch
@@ -1,119 +1,100 @@
-diff -ru PySDL2-0.9.6-old/sdl2/dll.py PySDL2-0.9.6/sdl2/dll.py
---- PySDL2-0.9.6-old/sdl2/dll.py	2018-03-08 10:18:37.583471745 +0100
-+++ PySDL2-0.9.6/sdl2/dll.py	2018-03-08 10:20:06.705517520 +0100
-@@ -45,29 +45,31 @@
+diff -ru PySDL2-0.9.7-old/sdl2/dll.py PySDL2-0.9.7/sdl2/dll.py
+--- PySDL2-0.9.7-old/sdl2/dll.py	2020-02-15 09:36:29.000000000 +0100
++++ PySDL2-0.9.7/sdl2/dll.py	2020-09-23 20:24:09.365497270 +0200
+@@ -94,15 +94,16 @@
      """Function wrapper around the different DLL functions. Do not use or

      instantiate this one directly from your user code.

      """

 -    def __init__(self, libinfo, libnames, path=None):

--        self._dll = None

++    def __init__(self, libinfo, libfile):

+         self._dll = None

+         self._libname = libinfo

+         self._version = None

 -        foundlibs = _findlib(libnames, path)

 -        dllmsg = "PYSDL2_DLL_PATH: %s" % (os.getenv("PYSDL2_DLL_PATH") or "unset")

 -        if len(foundlibs) == 0:

 -            raise RuntimeError("could not find any library for %s (%s)" %

 -                               (libinfo, dllmsg))

--        for libfile in foundlibs:

--            try:

--                self._dll = CDLL(libfile)

--                self._libfile = libfile

--                break

--            except Exception as exc:

--                # Could not load the DLL, move to the next, but inform the user

--                # about something weird going on - this may become noisy, but

--                # is better than confusing the users with the RuntimeError below

--                warnings.warn(repr(exc), DLLWarning)

--        if self._dll is None:

--            raise RuntimeError("found %s, but it's not usable for the library %s" %

--                               (foundlibs, libinfo))

++        #foundlibs = _findlib(libnames, path)

++        #dllmsg = "PYSDL2_DLL_PATH: %s" % (os.getenv("PYSDL2_DLL_PATH") or "unset")

++        #if len(foundlibs) == 0:

++        #    raise RuntimeError("could not find any library for %s (%s)" %

++        #                       (libinfo, dllmsg))

++        foundlibs = [ libfile ]

+         for libfile in foundlibs:

+             try:

+                 self._dll = CDLL(libfile)

+@@ -117,9 +118,9 @@
+         if self._dll is None:

+             raise RuntimeError("found %s, but it's not usable for the library %s" %

+                                (foundlibs, libinfo))

 -        if path is not None and sys.platform in ("win32",) and \

 -            path in self._libfile:

 -            os.environ["PATH"] = "%s;%s" % (path, os.environ["PATH"])

-+    def __init__(self, libfile):

-+        self._dll = CDLL(libfile)

-+        self._libfile = libfile

-+        # self._dll = None

-+        # foundlibs = _findlib(libnames, path)

-+        # dllmsg = "PYSDL2_DLL_PATH: %s" % (os.getenv("PYSDL2_DLL_PATH") or "unset")

-+        # if len(foundlibs) == 0:

-+        #     raise RuntimeError("could not find any library for %s (%s)" %

-+        #                        (libinfo, dllmsg))

-+        # for libfile in foundlibs:

-+        #     try:

-+        #         self._dll = CDLL(libfile)

-+        #         self._libfile = libfile

-+        #         break

-+        #     except Exception as exc:

-+        #         # Could not load the DLL, move to the next, but inform the user

-+        #         # about something weird going on - this may become noisy, but

-+        #         # is better than confusing the users with the RuntimeError below

-+        #         warnings.warn(repr(exc), DLLWarning)

-+        # if self._dll is None:

-+        #     raise RuntimeError("found %s, but it's not usable for the library %s" %

-+        #                        (foundlibs, libinfo))

-+        # if path is not None and sys.platform in ("win32",) and \

-+        #     path in self._libfile:

-+        #     os.environ["PATH"] = "%s;%s" % (path, os.environ["PATH"])

++        #if path is not None and sys.platform in ("win32",) and \

++        #    path in self._libfile:

++        #    os.environ["PATH"] = "%s;%s" % (path, os.environ["PATH"])

  

-     def bind_function(self, funcname, args=None, returns=None, optfunc=None):

+     def bind_function(self, funcname, args=None, returns=None, added=None):

          """Binds the passed argument and return value types to the specified

-@@ -110,7 +112,7 @@
+@@ -220,7 +221,7 @@
      return

  

  try:

 -    dll = DLL("SDL2", ["SDL2", "SDL2-2.0"], os.getenv("PYSDL2_DLL_PATH"))

-+    dll = DLL("SDL2")

++    dll = DLL("SDL2", "@sdl2@")

  except RuntimeError as exc:

      raise ImportError(exc)

  

-diff -ru PySDL2-0.9.6-old/sdl2/sdlgfx.py PySDL2-0.9.6/sdl2/sdlgfx.py
---- PySDL2-0.9.6-old/sdl2/sdlgfx.py	2018-03-08 10:18:37.585471769 +0100
-+++ PySDL2-0.9.6/sdl2/sdlgfx.py	2018-03-08 10:20:06.705517520 +0100
-@@ -34,8 +34,7 @@
+diff -ru PySDL2-0.9.7-old/sdl2/sdlgfx.py PySDL2-0.9.7/sdl2/sdlgfx.py
+--- PySDL2-0.9.7-old/sdl2/sdlgfx.py	2020-02-02 11:07:00.000000000 +0100
++++ PySDL2-0.9.7/sdl2/sdlgfx.py	2020-09-23 20:23:56.997419129 +0200
+@@ -39,8 +39,7 @@
             ]

  

  try:

 -    dll = DLL("SDL2_gfx", ["SDL2_gfx", "SDL2_gfx-1.0"],

 -              os.getenv("PYSDL2_DLL_PATH"))

-+    dll = DLL("SDL2_gfx")

++    dll = DLL("SDL2_gfx", "@sdl2_gfx@")

  except RuntimeError as exc:

      raise ImportError(exc)

  

-diff -ru PySDL2-0.9.6-old/sdl2/sdlimage.py PySDL2-0.9.6/sdl2/sdlimage.py
---- PySDL2-0.9.6-old/sdl2/sdlimage.py	2018-03-08 10:18:37.585471769 +0100
-+++ PySDL2-0.9.6/sdl2/sdlimage.py	2018-03-08 10:20:06.705517520 +0100
-@@ -26,8 +26,7 @@
+diff -ru PySDL2-0.9.7-old/sdl2/sdlimage.py PySDL2-0.9.7/sdl2/sdlimage.py
+--- PySDL2-0.9.7-old/sdl2/sdlimage.py	2020-02-02 11:07:00.000000000 +0100
++++ PySDL2-0.9.7/sdl2/sdlimage.py	2020-09-23 20:23:50.085375658 +0200
+@@ -27,8 +27,7 @@
             ]

  

  try:

 -    dll = DLL("SDL2_image", ["SDL2_image", "SDL2_image-2.0"],

 -              os.getenv("PYSDL2_DLL_PATH"))

-+    dll = DLL("SDL2_image")

++    dll = DLL("SDL2_image", "@sdl2_image@")

  except RuntimeError as exc:

      raise ImportError(exc)

  

-diff -ru PySDL2-0.9.6-old/sdl2/sdlmixer.py PySDL2-0.9.6/sdl2/sdlmixer.py
---- PySDL2-0.9.6-old/sdl2/sdlmixer.py	2018-03-08 10:18:37.585471769 +0100
-+++ PySDL2-0.9.6/sdl2/sdlmixer.py	2018-03-08 10:20:27.415758478 +0100
-@@ -50,8 +50,7 @@
+diff -ru PySDL2-0.9.7-old/sdl2/sdlmixer.py PySDL2-0.9.7/sdl2/sdlmixer.py
+--- PySDL2-0.9.7-old/sdl2/sdlmixer.py	2020-02-02 11:07:00.000000000 +0100
++++ PySDL2-0.9.7/sdl2/sdlmixer.py	2020-09-23 20:23:46.117350771 +0200
+@@ -53,8 +53,7 @@
            ]

  

  try:

 -    dll = DLL("SDL2_mixer", ["SDL2_mixer", "SDL2_mixer-2.0"],

 -              os.getenv("PYSDL2_DLL_PATH"))

-+    dll = DLL("SDL2_mixer")

++    dll = DLL("SDL2_mixer", "@sdl2_mixer@")

  except RuntimeError as exc:

      raise ImportError(exc)

  

-diff -ru PySDL2-0.9.6-old/sdl2/sdlttf.py PySDL2-0.9.6/sdl2/sdlttf.py
---- PySDL2-0.9.6-old/sdl2/sdlttf.py	2018-03-08 10:18:37.585471769 +0100
-+++ PySDL2-0.9.6/sdl2/sdlttf.py	2018-03-08 10:20:06.705517520 +0100
-@@ -38,8 +38,7 @@
+diff -ru PySDL2-0.9.7-old/sdl2/sdlttf.py PySDL2-0.9.7/sdl2/sdlttf.py
+--- PySDL2-0.9.7-old/sdl2/sdlttf.py	2020-02-02 11:07:00.000000000 +0100
++++ PySDL2-0.9.7/sdl2/sdlttf.py	2020-09-23 20:23:40.069312931 +0200
+@@ -39,8 +39,7 @@
            ]

  

  try:

 -    dll = DLL("SDL2_ttf", ["SDL2_ttf", "SDL2_ttf-2.0"],

 -              os.getenv("PYSDL2_DLL_PATH"))

-+    dll = DLL("SDL2_ttf")

++    dll = DLL("SDL2_ttf", "@sdl2_ttf@")

  except RuntimeError as exc:

      raise ImportError(exc)

  

diff --git a/nixpkgs/pkgs/development/python-modules/pysdl2/default.nix b/nixpkgs/pkgs/development/python-modules/pysdl2/default.nix
index b22da8b83ac6..be9663245bb5 100644
--- a/nixpkgs/pkgs/development/python-modules/pysdl2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysdl2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchPypi, buildPythonPackage, SDL2, SDL2_ttf, SDL2_image, SDL2_gfx, SDL2_mixer }:
+{ stdenv, lib, substituteAll, fetchPypi, buildPythonPackage, SDL2, SDL2_ttf, SDL2_image, SDL2_gfx, SDL2_mixer }:
 
 buildPythonPackage rec {
   pname = "PySDL2";
@@ -18,19 +18,18 @@ buildPythonPackage rec {
   # which library they want to include.
   buildInputs = [ SDL2_ttf SDL2_image SDL2_gfx SDL2_mixer ];
   propagatedBuildInputs = [ SDL2 ];
-  patches = [ ./PySDL2-dll.patch ];
-  postPatch = ''
-    substituteInPlace sdl2/dll.py --replace \
-      "DLL(\"SDL2\")" "DLL('${SDL2}/lib/libSDL2${stdenv.hostPlatform.extensions.sharedLibrary}')"
-    substituteInPlace sdl2/sdlttf.py --replace \
-      "DLL(\"SDL2_ttf\")" "DLL('${SDL2_ttf}/lib/libSDL2_ttf${stdenv.hostPlatform.extensions.sharedLibrary}')"
-    substituteInPlace sdl2/sdlimage.py --replace \
-      "DLL(\"SDL2_image\")" "DLL('${SDL2_image}/lib/libSDL2_image${stdenv.hostPlatform.extensions.sharedLibrary}')"
-    substituteInPlace sdl2/sdlgfx.py --replace \
-     "DLL(\"SDL2_gfx\")" "DLL('${SDL2_gfx}/lib/libSDL2_gfx${stdenv.hostPlatform.extensions.sharedLibrary}')"
-    substituteInPlace sdl2/sdlmixer.py --replace \
-     "DLL(\"SDL2_mixer\")" "DLL('${SDL2_mixer}/lib/libSDL2_mixer${stdenv.hostPlatform.extensions.sharedLibrary}')"
-  '';
+  patches = [
+    (substituteAll ({
+      src = ./PySDL2-dll.patch;
+    } // builtins.mapAttrs (_: pkg: "${pkg}/lib/lib${pkg.pname}${stdenv.hostPlatform.extensions.sharedLibrary}") {
+      # substituteAll keys must start lowercase
+      sdl2 = SDL2;
+      sdl2_ttf = SDL2_ttf;
+      sdl2_image = SDL2_image;
+      sdl2_gfx = SDL2_gfx;
+      sdl2_mixer = SDL2_mixer;
+    }))
+  ];
 
   meta = {
     description = "A wrapper around the SDL2 library and as such similar to the discontinued PySDL project";
diff --git a/nixpkgs/pkgs/development/python-modules/pyside2-tools/default.nix b/nixpkgs/pkgs/development/python-modules/pyside2-tools/default.nix
index a96ea5d32ff8..9f1f94ffecbb 100644
--- a/nixpkgs/pkgs/development/python-modules/pyside2-tools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyside2-tools/default.nix
@@ -6,6 +6,13 @@ stdenv.mkDerivation {
 
   inherit (pyside2) version src;
 
+  patches = [
+    # Upstream has a crazy build system only geared towards producing binary
+    # wheels distributed via pypi.  For this, they copy the `uic` and `rcc`
+    # binaries to the wheel.
+    ./remove_hacky_binary_copying.patch
+  ];
+
   postPatch = ''
     cd sources/pyside2-tools
   '';
@@ -18,8 +25,16 @@ stdenv.mkDerivation {
     "-DBUILD_TESTS=OFF"
   ];
 
+  # The upstream build system consists of a `setup.py` whichs builds three
+  # different python libraries and calls cmake as a subprocess.  We call cmake
+  # directly because that's easier to get working.  However, the `setup.py`
+  # build also creates a few wrapper scripts, which we replicate here:
   postInstall = ''
     rm $out/bin/pyside_tool.py
+
+    for tool in uic rcc; do
+      makeWrapper "$(command -v $tool)" $out/bin/pyside2-$tool --add-flags "-g python"
+    done
   '';
 
   postFixup = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pyside2-tools/remove_hacky_binary_copying.patch b/nixpkgs/pkgs/development/python-modules/pyside2-tools/remove_hacky_binary_copying.patch
new file mode 100644
index 000000000000..19dd8aaf101c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyside2-tools/remove_hacky_binary_copying.patch
@@ -0,0 +1,50 @@
+--- pyside-setup-opensource-src-5.14.2/sources/pyside2-tools/CMakeLists.txt~	2020-07-17 10:51:14.498291075 +0200
++++ pyside-setup-opensource-src-5.14.2/sources/pyside2-tools/CMakeLists.txt	2020-07-17 10:52:20.165336508 +0200
+@@ -46,47 +46,6 @@
+     set(EXE_EXT "")
+ endif()
+ 
+-set(TOOLS_PATH "${_qt5Core_install_prefix}/bin")
+-set(UIC_PATH "${TOOLS_PATH}/uic${EXE_EXT}")
+-set(RCC_PATH "${TOOLS_PATH}/rcc${EXE_EXT}")
+-if (APPLE)
+-    set(DESIGNER_PATH "${TOOLS_PATH}/Designer.app")
+-else()
+-    set(DESIGNER_PATH "${TOOLS_PATH}/designer${EXE_EXT}")
+-endif()
+-
+-install(FILES "${UIC_PATH}"
+-        DESTINATION bin
+-        PERMISSIONS
+-        OWNER_EXECUTE OWNER_WRITE OWNER_READ
+-        GROUP_EXECUTE GROUP_READ
+-        WORLD_EXECUTE WORLD_READ)
+-
+-install(FILES "${RCC_PATH}"
+-        DESTINATION bin
+-        PERMISSIONS
+-        OWNER_EXECUTE OWNER_WRITE OWNER_READ
+-        GROUP_EXECUTE GROUP_READ
+-        WORLD_EXECUTE WORLD_READ)
+-
+-if (EXISTS ${DESIGNER_PATH})
+-    if (APPLE)
+-        install(DIRECTORY "${DESIGNER_PATH}"
+-                DESTINATION bin
+-                FILE_PERMISSIONS
+-                OWNER_EXECUTE OWNER_WRITE OWNER_READ
+-                GROUP_EXECUTE GROUP_READ
+-                WORLD_EXECUTE WORLD_READ)
+-    else()
+-        install(FILES "${DESIGNER_PATH}"
+-                DESTINATION bin
+-                PERMISSIONS
+-                OWNER_EXECUTE OWNER_WRITE OWNER_READ
+-                GROUP_EXECUTE GROUP_READ
+-                WORLD_EXECUTE WORLD_READ)
+-    endif()
+-endif()
+-
+ configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake"
+                "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
+                IMMEDIATE @ONLY)
diff --git a/nixpkgs/pkgs/development/python-modules/pyside2/default.nix b/nixpkgs/pkgs/development/python-modules/pyside2/default.nix
index afa48569e2ac..6d8b828fb957 100644
--- a/nixpkgs/pkgs/development/python-modules/pyside2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyside2/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pyside2";
-  version = "5.12.3";
+  version = "5.15.0";
 
   src = fetchurl {
-    url = "https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${version}-src/pyside-setup-everywhere-src-${version}.tar.xz";
-    sha256 = "0hk89jm8pa0q6kifask5rrffa3bvx02dg2f97ibv7wds9dysnyjg";
+    url = "https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${version}-src/pyside-setup-opensource-src-${version}.tar.xz";
+    sha256 = "0s3bgddcsf6w297nyxv08xpc2nnr3sli980p24nf4xivvr9yxkgi";
   };
 
   patches = [
@@ -23,11 +23,12 @@ stdenv.mkDerivation rec {
     "-DPYTHON_EXECUTABLE=${python.interpreter}"
   ];
 
-  nativeBuildInputs = [ cmake ninja qt5.qmake shiboken2 python ];
+  nativeBuildInputs = [ cmake ninja qt5.qmake python ];
   buildInputs = with qt5; [
     qtbase qtxmlpatterns qtmultimedia qttools qtx11extras qtlocation qtscript
     qtwebsockets qtwebengine qtwebchannel qtcharts qtsensors qtsvg
   ];
+  propagatedBuildInputs = [ shiboken2 ];
 
   meta = with stdenv.lib; {
     description = "LGPL-licensed Python bindings for Qt";
diff --git a/nixpkgs/pkgs/development/python-modules/pyside2/dont_ignore_optional_modules.patch b/nixpkgs/pkgs/development/python-modules/pyside2/dont_ignore_optional_modules.patch
index 681e16a2bfd3..c9f17bea71b4 100644
--- a/nixpkgs/pkgs/development/python-modules/pyside2/dont_ignore_optional_modules.patch
+++ b/nixpkgs/pkgs/development/python-modules/pyside2/dont_ignore_optional_modules.patch
@@ -1,6 +1,6 @@
---- pyside-setup-everywhere-src-5.12.3/sources/pyside2/CMakeLists.txt~	2019-06-15 19:07:48.368704430 +0200
-+++ pyside-setup-everywhere-src-5.12.3/sources/pyside2/CMakeLists.txt	2019-06-15 19:08:04.429489908 +0200
-@@ -219,7 +219,7 @@
+--- pyside-setup-opensource-src-5.14.2/sources/cmake_helpers/helpers.cmake~	2020-07-17 10:29:30.555285529 +0200
++++ pyside-setup-opensource-src-5.14.2/sources/cmake_helpers/helpers.cmake	2020-07-17 10:29:49.817003683 +0200
+@@ -139,7 +139,7 @@
      # If the module was found, and also the module path is the same as the
      # Qt5Core base path, we will generate the list with the modules to be installed
      set(looked_in_message ". Looked in: ${${_name_dir}}")
diff --git a/nixpkgs/pkgs/development/python-modules/pysingleton/default.nix b/nixpkgs/pkgs/development/python-modules/pysingleton/default.nix
new file mode 100644
index 000000000000..22e4ade4a882
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pysingleton/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pysingleton";
+  version = "0.2.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "5776e7a4ba0bab26709da604f4e648c5814385fef34010723db3da0d41b0dbcc";
+  };
+
+  pythonImportsCheck = [ "singleton" ];
+
+  # No tests in the Pypi package.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Provides a decorator to create thread-safe singleton classes";
+    homepage = "https://github.com/timofurrer/pysingleton";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyslurm/default.nix b/nixpkgs/pkgs/development/python-modules/pyslurm/default.nix
index f5169b68393d..a113314aa403 100644
--- a/nixpkgs/pkgs/development/python-modules/pyslurm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyslurm/default.nix
@@ -22,5 +22,6 @@ buildPythonPackage rec {
     description = "Python bindings to Slurm";
     license = licenses.gpl2;
     maintainers = with maintainers; [ bhipple ];
+    broken = true;  # still needs slurm-19.05, but nixpkgs has slurm-20+ now
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pysnow/default.nix b/nixpkgs/pkgs/development/python-modules/pysnow/default.nix
index ef7fcd20e78e..d8d6b4f4401b 100644
--- a/nixpkgs/pkgs/development/python-modules/pysnow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysnow/default.nix
@@ -1,12 +1,13 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy27
-, pythonAtLeast
+, fetchFromGitHub
+, poetry
 , brotli
 , ijson
 , nose
-, requests_oauthlib 
+, httpretty
+, requests_oauthlib
 , python_magic
 , pytz
 }:
@@ -14,32 +15,43 @@
 buildPythonPackage rec {
   pname = "pysnow";
   version = "0.7.16";
-  
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "5df61091470e48b5b3a6ea75637f69d3aacae20041487ea457a9a0e3093fba8c";
+
+  # tests not included in pypi tarball
+  src = fetchFromGitHub {
+    owner = "rbw";
+    repo = pname;
+    rev = version;
+    sha256 = "0dj90w742klfcjnx7yhp0nzki2mzafqzzr0rk2dp6vxn8h58z8ww";
   };
+  format = "pyproject";
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'ijson = "^2.5.1"' 'ijson = "*"' \
+      --replace 'pytz = "^2019.3"' 'pytz = "*"' \
+      --replace 'oauthlib = "^3.1.0"' 'oauthlib = "*"'
+  '';
 
+  nativeBuildInputs = [ poetry ];
   propagatedBuildInputs = [
     brotli
-    ijson 
-    python_magic 
-    pytz 
+    ijson
+    python_magic
+    pytz
     requests_oauthlib
   ];
 
-  checkInputs = [ nose ];
-
+  checkInputs = [ nose httpretty ];
   checkPhase = ''
     nosetests --cover-package=pysnow --with-coverage --cover-erase
   '';
+  pythonImportsCheck = [ "pysnow" ];
 
   meta = with lib; {
     description = "ServiceNow HTTP client library written in Python";
     homepage = "https://github.com/rbw/pysnow";
     license = licenses.mit;
-    maintainers = [ maintainers.almac ];  
+    maintainers = [ maintainers.almac ];
   };
 
 }
-
diff --git a/nixpkgs/pkgs/development/python-modules/pysonos/default.nix b/nixpkgs/pkgs/development/python-modules/pysonos/default.nix
index 427c42545c5a..cf1f74b9b798 100644
--- a/nixpkgs/pkgs/development/python-modules/pysonos/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pysonos/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "pysonos";
-  version = "0.0.31";
+  version = "0.0.32";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03f21d2fb27cd938bd2c47f8582c0737eb7426a0cd59e5a60171fabe5e963e62";
+    sha256 = "b739d20807f5fac95f8e02831faaf04023b7a8cb6f371024d89fd16c6bd8a589";
   };
 
   propagatedBuildInputs = [ xmltodict requests ifaddr ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyspark/default.nix b/nixpkgs/pkgs/development/python-modules/pyspark/default.nix
index 50c2bafb7aef..22b684060828 100644
--- a/nixpkgs/pkgs/development/python-modules/pyspark/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyspark/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pyspark";
-  version = "2.4.5";
+  version = "3.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0deed5687828efdaf4091e748f0ba1ae8aad6e4c3a5f07aa07e19487397e0e07";
+    sha256 = "8c6e5cc51d91eb8d43e81d0b7093292b5e144ac81445491d5f887d2cf4fe121f";
   };
 
   # pypandoc is broken with pandoc2, so we just lose docs.
diff --git a/nixpkgs/pkgs/development/python-modules/pyspice/default.nix b/nixpkgs/pkgs/development/python-modules/pyspice/default.nix
new file mode 100644
index 000000000000..f2cce09c8b38
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyspice/default.nix
@@ -0,0 +1,51 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, libngspice
+, numpy
+, ply
+, scipy
+, pyyaml
+, cffi
+, requests
+, matplotlib
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "PySpice";
+  version = "1.4.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0mnyy8nr06d1al99kniyqcm0p9a8dvkg719s42sajl8yf51sayc9";
+  };
+
+  propagatedBuildInputs = [
+    setuptools
+    requests
+    pyyaml
+    cffi
+    matplotlib
+    numpy
+    ply
+    scipy
+    libngspice
+  ];
+
+  doCheck = false;
+  pythonImportsCheck = [ "PySpice" ];
+
+  postPatch = ''
+    substituteInPlace PySpice/Spice/NgSpice/Shared.py --replace \
+        "ffi.dlopen(self.library_path)" \
+        "ffi.dlopen('${libngspice}/lib/libngspice${stdenv.hostPlatform.extensions.sharedLibrary}')"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Simulate electronic circuit using Python and the Ngspice / Xyce simulators";
+    homepage = "https://github.com/FabriceSalvaire/PySpice";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ matthuszagh ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyspinel/default.nix b/nixpkgs/pkgs/development/python-modules/pyspinel/default.nix
index d841a4162186..dcd35132c2ed 100644
--- a/nixpkgs/pkgs/development/python-modules/pyspinel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyspinel/default.nix
@@ -1,21 +1,32 @@
-{ buildPythonPackage, fetchPypi, lib, future, pyserial, ipaddress }:
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27
+, future, pyserial, ipaddress
+}:
 
 buildPythonPackage rec {
   pname = "pyspinel";
-  version = "1.0.1";
+  version = "unstable-2020-06-19";  # no versioned release since 2018
+  disabled = isPy27;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "5cbfd0f6e9ef3b5cd3a4e72a9a0cee1fe50d518b43746be07a1fd17e883328c2";
+  src = fetchFromGitHub {
+    owner = "openthread";
+    repo = pname;
+    rev = "e0bb3f8e6f49b593ab248a75de04a71626ae8101";
+    sha256 = "0nfmdkgbhmkl82dfxjpwiiarxngm6a3fvdrzpaqp60a4b17pipqg";
   };
 
-  propagatedBuildInputs = [ pyserial ipaddress future ];
+  propagatedBuildInputs = [
+    future
+    ipaddress
+    pyserial
+  ];
 
   doCheck = false;
+  pythonImportsCheck = [ "spinel" ];
 
-  meta = {
+  meta = with lib; {
     description = "Interface to the OpenThread Network Co-Processor (NCP)";
     homepage = "https://github.com/openthread/pyspinel";
-    maintainers = with lib.maintainers; [ gebner ];
+    license = licenses.asl20;
+    maintainers = with maintainers; [ gebner ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyspread/default.nix b/nixpkgs/pkgs/development/python-modules/pyspread/default.nix
index 14abe9ff02d3..16f1e2c215e1 100644
--- a/nixpkgs/pkgs/development/python-modules/pyspread/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyspread/default.nix
@@ -18,11 +18,11 @@
 
 buildPythonPackage rec {
   pname = "pyspread";
-  version = "1.1.3";
+  version = "1.99.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6e5d0eb49750eed7734852e15727e190270880c75dcc5f6c8fb1bfdaa59c48fc";
+    sha256 = "117268cbeb225e0aca4c59381b7bdf5333bf95ca85c1db410a326a887a74f3da";
   };
 
   propagatedBuildInputs = [ numpy wxPython matplotlib pycairo python-gnupg xlrd xlwt jedi pyenchant basemap pygtk ];
diff --git a/nixpkgs/pkgs/development/python-modules/pysqueezebox/default.nix b/nixpkgs/pkgs/development/python-modules/pysqueezebox/default.nix
new file mode 100644
index 000000000000..33149e99e92f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pysqueezebox/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchPypi, buildPythonPackage, pythonOlder, aiohttp }:
+
+buildPythonPackage rec {
+  pname = "pysqueezebox";
+  version = "0.4.0";
+  disabled = pythonOlder "3.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "02d73e98314a63a38c314d40942a0b098fb59d2f08ac39b2627cfa73f785cf0d";
+  };
+
+  propagatedBuildInputs = [
+    aiohttp
+  ];
+
+  # No tests in the Pypi distribution
+  doCheck = false;
+  pythonImportsCheck = [ "pysqueezebox" ];
+
+  meta = with stdenv.lib; {
+    description = "Asynchronous library to control Logitech Media Server";
+    homepage = "https://github.com/rajlaud/pysqueezebox";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pystemmer/default.nix b/nixpkgs/pkgs/development/python-modules/pystemmer/default.nix
index 1d3df7dfc349..37260404906b 100644
--- a/nixpkgs/pkgs/development/python-modules/pystemmer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pystemmer/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "PyStemmer";
-  version = "1.3.0";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d1ac14eb64978c1697fcfba76e3ac7ebe24357c9428e775390f634648947cb91";
+    sha256 = "9b81c35302f1d2a5ad9465b85986db246990db93d97d3e8f129269ed7102788e";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/nixpkgs/pkgs/development/python-modules/pystray/default.nix b/nixpkgs/pkgs/development/python-modules/pystray/default.nix
index a2652fe1edc3..cd9259e33c2b 100644
--- a/nixpkgs/pkgs/development/python-modules/pystray/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pystray/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "pystray";
-  version = "0.15.0";
+  version = "0.16.0";
 
   src = fetchFromGitHub {
     owner = "moses-palmer";
     repo = "pystray";
     rev = "v${version}";
-    sha256 = "0m5raxahyix3lmmbjbrsfd9yhr4vdil8gcy155hh6lqm2b1fmmss";
+    sha256 = "0q5yqfm5mzffx9vnp9xcnclgjzgs0b7f50i9xmxn1m1iha1zawh1";
   };
 
   propagatedBuildInputs = [ pillow xlib six ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytabix/default.nix b/nixpkgs/pkgs/development/python-modules/pytabix/default.nix
new file mode 100644
index 000000000000..eb21ca198180
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytabix/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, buildPythonPackage
+, isPy3k
+, fetchPypi
+, zlib
+}:
+
+buildPythonPackage rec {
+  pname = "pytabix";
+  version = "0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1ldp5r4ggskji6qx4bp2qxy2vrvb3fam03ksn0gq2hdxgrlg2x07";
+  };
+
+  buildInputs = [ zlib ];
+
+  doCheck = !isPy3k;
+  preCheck = ''
+    substituteInPlace test/test.py \
+      --replace 'test_remote_file' 'dont_test_remote_file'
+  '';
+  pythonImportsCheck = [ "tabix" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/slowkow/pytabix";
+    description = "Python interface for tabix";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ris ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytesseract/default.nix b/nixpkgs/pkgs/development/python-modules/pytesseract/default.nix
index 0111695ca73f..efb20ac29732 100644
--- a/nixpkgs/pkgs/development/python-modules/pytesseract/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytesseract/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytesseract";
-  version = "0.3.4";
+  version = "0.3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16l9b9f5v0a9j5jfgpd8irk9yhc9byzirrzv1rlkapdbz36sbn5g";
+    sha256 = "1xb5ydwgcfcxzs1k7g6frmhxf1mmivi9ay48qdmf5w4ascirm22l";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-astropy-header/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-astropy-header/default.nix
new file mode 100644
index 000000000000..05c6135a4b9d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-astropy-header/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pytestcov
+, pytestCheckHook
+, numpy
+, astropy
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-astropy-header";
+  version = "0.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1y87agr324p6x5gvhziymxjlw54pyn4gqnd49papbl941djpkp5g";
+  };
+
+  propagatedBuildInputs = [
+    pytest
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+    pytestcov
+    numpy
+    astropy
+  ];
+
+  meta = with lib; {
+    description = "Plugin to add diagnostic information to the header of the test output";
+    homepage = "https://astropy.org";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-astropy/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-astropy/default.nix
index 1365c43b03a7..ae3bc04d0b4c 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-astropy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-astropy/default.nix
@@ -1,32 +1,43 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, hypothesis
 , pytest
+, pytest-astropy-header
 , pytest-doctestplus
+, pytest-filter-subpackage
 , pytest-remotedata
 , pytest-openfiles
 , pytest-arraydiff
+, setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "pytest-astropy";
-  version = "0.5.0";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6f28fb81dcdfa745f423b8f6d0303d97357d775b4128bcc2b3668f1602fd5a0b";
+    sha256 = "619800eb2cbf64548fbea25268efe7c6f6ae206cb4825f34abd36f27bcf946a2";
   };
 
+  nativeBuildInputs = [
+    setuptools_scm
+  ];
+
   propagatedBuildInputs = [
+    hypothesis
     pytest
+    pytest-astropy-header
     pytest-doctestplus
+    pytest-filter-subpackage
     pytest-remotedata
     pytest-openfiles
     pytest-arraydiff
   ];
 
   # pytest-astropy is a meta package and has no tests
-  doCheck = false;
+  checkPhase = ":";
 
   meta = with lib; {
     description = "Meta-package containing dependencies for testing";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-asyncio/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-asyncio/default.nix
index c4a9b6fdd1e4..8942263a5788 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-asyncio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-asyncio/default.nix
@@ -1,13 +1,13 @@
 { stdenv, buildPythonPackage, fetchPypi, pytest, isPy3k, isPy35, async_generator }:
 buildPythonPackage rec {
   pname = "pytest-asyncio";
-  version = "0.12.0";
+  version = "0.14.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1lpb1q297rly685yl23mni3mmv6vmyx3qsv5ccj1vh8bvkrx4ns7";
+    sha256 = "9882c0c6b24429449f5f969a5158b528f39bde47dc32e85b9f0403965017e700";
   };
 
   buildInputs = [ pytest ]
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix
index 29225859dfd4..0ad4392bee9d 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-bdd/default.nix
@@ -29,7 +29,7 @@ buildPythonPackage rec {
   checkPhase = ''
     pytest
   '';
-  
+
   meta = with stdenv.lib; {
     description = "BDD library for the py.test runner";
     homepage = "https://github.com/pytest-dev/pytest-bdd";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-black/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-black/default.nix
index 5f391668b93a..5a3219f430f8 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-black/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-black/default.nix
@@ -7,17 +7,19 @@
 
 buildPythonPackage rec {
   pname = "pytest-black";
-  version = "0.3.9";
+  version = "0.3.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c743dfeffe6b2cb25c0ed1a84cc306dff4b504b713b5a6d1bc3824fa73a7d693";
+    sha256 = "0dvlfic7nvfj97rg5fwj7ahw83n9yj3jjbp5m60n47mlx7z0qg2z";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
 
   propagatedBuildInputs = [ black pytest toml ];
 
+  pythonImportsCheck = [ "pytest_black" ];
+
   meta = with lib; {
     description = "A pytest plugin to enable format checking with black";
     homepage = "https://github.com/shopkeep/pytest-black";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-check/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-check/default.nix
index 104a2ae64906..9636d20c73b7 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-check/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-check/default.nix
@@ -1,24 +1,22 @@
 { stdenv
 , buildPythonPackage
-, fetchFromGitHub
+, fetchPypi
 , pytest
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pytest-check";
-  version = "0.3.5";
+  version = "0.3.9";
 
-  src = fetchFromGitHub {
-    owner = "okken";
-    repo = "pytest-check";
-    rev = version;
-    sha256 = "11wb4f4sp4cr5mzqdakrbycwgfr2p1sx1l91fa6525wnfvgc0qy3";
+  src = fetchPypi {
+    pname = "pytest_check";
+    inherit version;
+    sha256 = "0asrrz0fgk6wqffsz1ffd6z9xyw314fwh5bwjzcq75w8w1g4ass9";
   };
 
-  buildInputs = [ pytest ];
-
-  checkInputs = [ pytest pytestCheckHook ];
+  propagatedBuildInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
   meta = with stdenv.lib; {
     description = "pytest plugin allowing multiple failures per test";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-cov/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-cov/default.nix
index 420afd3c5555..649e41f7d662 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-cov/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-cov/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-cov";
-  version = "2.8.1";
+  version = "2.10.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cc6742d8bac45070217169f5f72ceee1e0e55b0221f54bcf24845972d3a47f2b";
+    sha256 = "47bd0ce14056fdd79f93e1713f88fad7bdcc583dcd7783da86ef2f085a0bb88e";
   };
 
   buildInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-django/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-django/default.nix
index 2417bdd4ac09..9763e074cee9 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-django/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-django/default.nix
@@ -10,11 +10,11 @@
 }:
 buildPythonPackage rec {
   pname = "pytest-django";
-  version = "3.7.0";
+  version = "3.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17592f06d51c2ef4b7a0fb24aa32c8b6998506a03c8439606cb96db160106659";
+    sha256 = "664e5f42242e5e182519388f01b9f25d824a9feb7cd17d8f863c8d776f38baf9";
   };
 
   nativeBuildInputs = [ pytest setuptools_scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix
index ed71592361cc..c9c373a27525 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-doctestplus/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , six
 , pytest
 , numpy
@@ -8,11 +9,12 @@
 
 buildPythonPackage rec {
   pname = "pytest-doctestplus";
-  version = "0.5.0";
+  version = "0.8.0";
+  disabled = isPy27; # abandoned upstream
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "41386187b9261cd59a3ffe4cf9df58d517288a1d3f11d96749b39b4e38b0a02c";
+    sha256 = "fb083925a17ce636f33997c275f61123e63372c1db11fefac1e991ed25a4ca37";
   };
 
   propagatedBuildInputs = [
@@ -25,8 +27,9 @@ buildPythonPackage rec {
     pytest
   ];
 
+  # check_distribution incorrectly pulls pytest version
   checkPhase = ''
-    pytest
+    pytest -k 'not check_distribution'
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-filter-subpackage/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-filter-subpackage/default.nix
new file mode 100644
index 000000000000..6caf4d9c772e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-filter-subpackage/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest
+, pytestcov
+, pytest-doctestplus
+, pytestCheckHook
+, setuptools_scm
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-filter-subpackage";
+  version = "0.1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1s4s2kd31yc65rfvl4xhy8xx806xhy59kc7668h6b6wq88xgrn5p";
+  };
+
+  nativeBuildInputs = [
+    setuptools_scm
+  ];
+
+  propagatedBuildInputs = [
+    pytest
+    pytest-doctestplus
+    pytestcov
+    pytestCheckHook
+  ];
+
+  # missing some files
+  disabledTests = [ "with_rst" ];
+
+  meta = with lib; {
+    description = "Meta-package containing dependencies for testing";
+    homepage = "https://astropy.org";
+    license = licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-flakes/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-flakes/default.nix
index bae42301982c..39eb56ce76e9 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-flakes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-flakes/default.nix
@@ -5,11 +5,11 @@ buildPythonPackage rec {
   # upstream has abandoned project in favor of pytest-flake8
   # retaining package to not break other packages
   pname = "pytest-flakes";
-  version = "4.0.0";
+  version = "4.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "341964bf5760ebbdde9619f68a17d5632c674c3f6903ef66daa0a4f540b3d143";
+    sha256 = "37113ac6c7ea5e0b648abf73937955a45f8b9214fe49413297c2ce6ce1808500";
   };
 
   checkInputs = [ pytestpep8 pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix
index 0ad858444403..047b06d97929 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-flask/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-flask";
-  version = "0.15.1";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ri3p3hibb1r2wcblpvs64s4jz40ci4jki4s2nf3xf7iz2wwbn6b";
+    sha256 = "4d5678a045c07317618d80223ea124e21e8acc89dae109542dd1fdf6783d96c2";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix
index 3139e32a0b17..89200f519e76 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-forked/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-forked";
-  version = "1.1.3";
+  version = "1.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1805699ed9c9e60cb7a8179b8d4fa2b8898098e82d229b0825d8095f0f261100";
+    sha256 = "6aa9ac7e00ad1a539c41bec6d21011332de671e938c7637378ec9710204e37ca";
   };
 
   buildInputs = [ pytest setuptools_scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-freezegun/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-freezegun/default.nix
new file mode 100644
index 000000000000..424d8fde2326
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-freezegun/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, freezegun
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-freezegun";
+  version = "0.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "19c82d5633751bf3ec92caa481fb5cffaac1787bd485f0df6436fd6242176949";
+  };
+
+  propagatedBuildInputs = [
+    freezegun
+    pytest
+  ];
+
+  meta = with lib; {
+    description = "Wrap tests with fixtures in freeze_time";
+    homepage = "https://github.com/ktosiek/pytest-freezegun";
+    license = licenses.mit;
+    maintainers = [ maintainers.mic92 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-isort/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-isort/default.nix
index 9aa4410ec030..869466c65001 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-isort/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-isort/default.nix
@@ -1,17 +1,18 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, isort }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, mock, pytest, isort }:
 
 buildPythonPackage rec {
   pname = "pytest-isort";
-  version = "0.3.1";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4bfee60dad1870b51700d55a85f5ceda766bd9d3d2878c1bbabee80e61b1be1a";
+    sha256 = "01j0sx8yxd7sbmvwky68mvnwrxxs5bjkvi61043jzff1ga92kg9h";
   };
 
   propagatedBuildInputs = [ isort ];
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest ]
+    ++ lib.optionals isPy27 [ mock ];
 
   checkPhase = ''
     py.test -vs --cache-clear
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-localserver/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-localserver/default.nix
index 6ea0b9d3e574..577400b859eb 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-localserver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-localserver/default.nix
@@ -1,9 +1,6 @@
 { buildPythonPackage
 , lib
 , fetchPypi
-, requests
-, pytest
-, six
 , werkzeug
 }:
 
@@ -17,16 +14,16 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ werkzeug ];
-  checkInputs = [ pytest six requests ];
 
-  checkPhase = ''
-    pytest
-  '';
+  # all tests access network: does not work in sandbox
+  doCheck = false;
+  pythonImportsCheck = [ "pytest_localserver" ];
 
-  meta = {
+  meta = with lib; {
     description = "Plugin for the pytest testing framework to test server connections locally";
     homepage = "https://pypi.python.org/pypi/pytest-localserver";
-    license = lib.licenses.mit;
+    license = licenses.mit;
+    maintainers = with maintainers; [ siriobalmelli ];
   };
 }
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix
index 9b25e2045e9d..53ab515e6f06 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-metadata/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-metadata";
-  version = "1.9.0";
+  version = "1.10.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1711gippwsl7c1wi8pc2y75xqq5sn1sscpqvrxjvpjm8pcx2138n";
+    sha256 = "0593jf8l30ayrqr9gkmwfbhz9h8cyqp7mgwp7ah1gjysbajf1rmp";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-mock/2.nix b/nixpkgs/pkgs/development/python-modules/pytest-mock/2.nix
new file mode 100644
index 000000000000..3764a05af057
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-mock/2.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, isPy3k
+, pytest
+, mock
+, setuptools_scm
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-mock";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "b35eb281e93aafed138db25c8772b95d3756108b601947f89af503f8c629413f";
+  };
+
+  propagatedBuildInputs = lib.optional (!isPy3k) mock;
+
+  nativeBuildInputs = [
+   setuptools_scm
+  ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "Thin-wrapper around the mock package for easier use with py.test.";
+    homepage    = "https://github.com/pytest-dev/pytest-mock";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ nand0p ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-mock/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-mock/default.nix
index c65e617b7950..c21175bf3381 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-mock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-mock/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-mock";
-  version = "1.13.0";
+  version = "3.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e24a911ec96773022ebcc7030059b57cd3480b56d4f5d19b7c370ec635e6aed5";
+    sha256 = "7122d55505d5ed5a6f3df940ad174b3f606ecae5e9bc379569cdcbd4cd9d2b83";
   };
 
   propagatedBuildInputs = lib.optional (!isPy3k) mock;
@@ -27,8 +27,9 @@ buildPythonPackage rec {
     pytest
   ];
 
+  # ignore test which only works with pytest5 output structure
   checkPhase = ''
-    pytest
+    pytest -k 'not detailed_introspection_async'
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-mypy/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-mypy/default.nix
index 2e1bd1b626d9..368d13a91394 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-mypy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-mypy/default.nix
@@ -1,20 +1,23 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, filelock
 , pytest
 , mypy
+, setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "pytest-mypy";
-  version = "0.4.2";
+  version = "0.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5a5338cecff17f005b181546a13e282761754b481225df37f33d37f86ac5b304";
+    sha256 = "2560a9b27d59bb17810d12ec3402dfc7c8e100e40539a70d2814bcbb27240f27";
   };
 
-  propagatedBuildInputs = [ pytest mypy ];
+  nativeBuildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [ pytest mypy filelock ];
 
   meta = with lib; {
     description = "Mypy static type checker plugin for Pytest";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-openfiles/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-openfiles/default.nix
index daa55f91cd29..bb7bdf03d00d 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-openfiles/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-openfiles/default.nix
@@ -1,37 +1,31 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , pytest
+, pytestCheckHook
 , psutil
+, setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "pytest-openfiles";
-  version = "0.4.0";
+  version = "0.5.0";
+  disabled = isPy27; # abandoned
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "af591422f2bfa95f7690d83aeb8d76bd5421cb8b1dcaf085d58cd92e8d92058d";
+    sha256 = "179c2911d8aee3441fee051aba08e0d9b4dab61b829ae4811906d5c49a3b0a58";
   };
 
+  nativeBuildInputs = [ setuptools_scm ];
+
   propagatedBuildInputs = [
     pytest
     psutil
   ];
 
-  checkInputs = [
-    pytest
-  ];
-
-  postConfigure = ''
-    # remove on next release
-    substituteInPlace setup.cfg \
-      --replace "[pytest]" "[tool:pytest]"
-  '';
-
-  checkPhase = ''
-    pytest
-  '';
+  checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Pytest plugin for detecting inadvertent open file handles";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-pylint/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-pylint/default.nix
index 40ab69c5735d..f7a9a3143065 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-pylint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-pylint/default.nix
@@ -6,24 +6,26 @@
 , pylint
 , six
 , pytestrunner
+, toml
 }:
 
 buildPythonPackage rec {
   pname = "pytest-pylint";
-  version = "0.15.1";
+  version = "0.17.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0sbmnw3bly4pry5lp6q6g0r8xzaxwbdlf0k19k8pygkhllnj6gnx";
+    sha256 = "b0c177d63f6e3f5b82fa2720a6570dd2ecff1616c26ed6d02d0cbf75fd98ddf9";
   };
 
-  buildInputs = [ pytestrunner ];
+  nativeBuildInputs = [ pytestrunner ];
 
   propagatedBuildInputs = [
     pytest
     pylint
     six
+    toml
   ];
 
   # tests not included with release
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-pythonpath/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-pythonpath/default.nix
new file mode 100644
index 000000000000..4194b7bd0e94
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-pythonpath/default.nix
@@ -0,0 +1,26 @@
+{ buildPythonPackage, fetchPypi, lib, pytest }:
+
+buildPythonPackage rec {
+  pname = "pytest-pythonpath";
+  version = "0.7.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0qhxh0z2b3p52v3i0za9mrmjnb1nlvvyi2g23rf88b3xrrm59z33";
+  };
+
+  propagatedBuildInputs = [ pytest ];
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description =
+      "Pytest plugin for adding to the PYTHONPATH from command line or configs";
+    homepage = "https://github.com/bigsassy/pytest-pythonpath";
+    maintainers = with maintainers; [ cript0nauta ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-quickcheck/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-quickcheck/default.nix
index 0748da14d939..ec78329ff8d9 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-quickcheck/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-quickcheck/default.nix
@@ -15,5 +15,6 @@ buildPythonPackage rec {
     license = licenses.asl20;
     homepage = "https://pypi.python.org/pypi/pytest-quickcheck";
     description = "pytest plugin to generate random data inspired by QuickCheck";
+    broken = true; # missing pytest-codestyle
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-randomly/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-randomly/default.nix
new file mode 100644
index 000000000000..c4523ac728c6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-randomly/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, factory_boy, faker, numpy
+, pytest, pytest_xdist
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-randomly";
+  version = "3.4.1";
+
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0s9cx692cdchfrjqx7fgf9wnm3fdac211a4hjq1cx9qqnbpdpl2z";
+  };
+
+  propagatedBuildInputs = [ numpy factory_boy faker ];
+
+  checkInputs = [ pytest pytest_xdist ];
+
+  # test warnings are fixed on an unreleased version:
+  # https://github.com/pytest-dev/pytest-randomly/pull/281
+  checkPhase = "pytest -p no:randomly";
+
+  meta = with lib; {
+    description = "Pytest plugin to randomly order tests and control random.seed";
+    homepage = "https://github.com/pytest-dev/pytest-randomly";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-rerunfailures/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-rerunfailures/default.nix
index f772fb131d84..c15320867cbe 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-rerunfailures/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-rerunfailures/default.nix
@@ -1,12 +1,14 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, mock }:
+{ stdenv, buildPythonPackage, pythonOlder, fetchPypi, pytest, mock }:
 
 buildPythonPackage rec {
   pname = "pytest-rerunfailures";
-  version = "8.0";
+  version = "9.0";
+
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04p8rfvv7yi3gsdm1dw1mfhjwg6507rhgj7nbm5gfqw4kxmj7h8p";
+    sha256 = "1r5qnkkhkfvx1jbi1wfyxpyggwyr32w6h5z3i93a03bc92kc4nl9";
   };
 
   checkInputs = [ mock pytest ];
@@ -21,6 +23,6 @@ buildPythonPackage rec {
     description = "pytest plugin to re-run tests to eliminate flaky failures";
     homepage = "https://github.com/pytest-dev/pytest-rerunfailures";
     license = licenses.mpl20;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ das-g ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-sanic/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-sanic/default.nix
index 68f8fd4fcee7..147ce6a19597 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-sanic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-sanic/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-sanic";
-  version = "1.1.2";
+  version = "1.6.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "61a60e1b0456b2ceaeeb7173783f3450332c3609017fb6b18176b307f7186d3a";
+    sha256 = "99e02c28cfa18a0a9af0cd151dddf0eca373279b9bac808733746f7ed7030ecc";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-services/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-services/default.nix
index 909b8e801036..93b60ecbe415 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-services/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-services/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-services";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0848cead86d3816b9c4e37cecfda31d21a4366f0dca2313ea29f3ca375c6295d";
+    sha256 = "0037101eaa17e050542808ecb2e799e9b2b148f1867f62b2296329fdd2034cf5";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-sugar/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-sugar/default.nix
index cb5b7bf099f1..d1f271ea2bcb 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-sugar/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-sugar/default.nix
@@ -4,15 +4,16 @@
 , termcolor
 , pytest
 , packaging
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pytest-sugar";
-  version = "0.9.3";
+  version = "0.9.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1630b5b7ea3624919b73fde37cffb87965c5087a4afab8a43074ff44e0d810c4";
+    sha256 = "b1b2186b0a72aada6859bea2a5764145e3aaa2c1cfbb23c3a19b5f7b697563d3";
   };
 
   propagatedBuildInputs = [
@@ -21,6 +22,10 @@ buildPythonPackage rec {
     packaging
   ];
 
+  checkInputs = [
+    pytestCheckHook
+  ];
+
   meta = with lib; {
     description = "A plugin that changes the default look and feel of py.test";
     homepage = "https://github.com/Frozenball/pytest-sugar";
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-testmon/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-testmon/default.nix
index 3b649bea57dd..9d9add167829 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-testmon/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-testmon/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , coverage
 , pytest
 }:
@@ -8,6 +9,7 @@
 buildPythonPackage rec {
   pname = "pytest-testmon";
   version = "1.0.2";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-tornado/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-tornado/default.nix
index 1f2978228e24..658ca7122f4b 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-tornado/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-tornado/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "pytest-tornado";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ncaq7icijls6qh66kv19w3i9av2wnmaycfr4yadyybajr8yvffz";
+    sha256 = "1cgisd7lb9q2hf55558cbn5jfhv65vsgk46ykgidzf9kqcq1kymr";
   };
 
   # package has no tests
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-tornasync/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-tornasync/default.nix
new file mode 100644
index 000000000000..be1e76d21e4f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-tornasync/default.nix
@@ -0,0 +1,38 @@
+{ lib, buildPythonPackage, fetchFromGitHub, isPy27
+, pytest, tornado }:
+
+buildPythonPackage rec {
+  pname = "pytest-tornasync";
+  version = "0.6.0.post2";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "eukaryote";
+    repo = pname;
+    # upstream does not keep git tags in sync with pypy releases
+    # https://github.com/eukaryote/pytest-tornasync/issues/9
+    rev = "c5f013f1f727f1ca1fcf8cc748bba7f4a2d79e56";
+    sha256 = "04cg1cfrr55dbi8nljkpcsc103i5c6p0nr46vjr0bnxgkxx03x36";
+  };
+
+  propagatedBuildInputs = [
+    pytest
+    tornado
+  ];
+
+  checkInputs = [
+    pytest
+    tornado
+  ];
+
+  checkPhase = ''
+    pytest test
+  '';
+
+  meta = with lib; {
+    description = "py.test plugin for testing Python 3.5+ Tornado code";
+    homepage = "https://github.com/eukaryote/pytest-tornasync";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-trio/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-trio/default.nix
new file mode 100644
index 000000000000..923fe14cfacf
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-trio/default.nix
@@ -0,0 +1,43 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, trio, python, async_generator, hypothesis, outcome, pytest }:
+
+buildPythonPackage rec {
+  pname = "pytest-trio";
+  version = "0.6.0";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "python-trio";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "09v2031yxm8ryhq12205ldcck76n3wwqhjjsgfmn6dxfiqb0vbw9";
+  };
+
+  propagatedBuildInputs = [
+    trio
+    async_generator
+    outcome
+    pytest
+  ];
+
+  checkInputs = [
+    pytest
+    hypothesis
+  ];
+
+  # broken with pytest 5 and 6
+  doCheck = false;
+  checkPhase = ''
+    rm pytest.ini
+    PYTHONPATH=$PWD:$PYTHONPATH pytest
+  '';
+
+  pythonImportsCheck = [ "pytest_trio" ];
+
+  meta = with lib; {
+    description = "Pytest plugin for trio";
+    homepage = "https://github.com/python-trio/pytest-trio";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-xdist/2.nix b/nixpkgs/pkgs/development/python-modules/pytest-xdist/2.nix
new file mode 100644
index 000000000000..a3d80f940232
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest-xdist/2.nix
@@ -0,0 +1,31 @@
+{ stdenv, fetchPypi, buildPythonPackage, execnet, pytest_6
+, setuptools_scm, pytest-forked, filelock, psutil, six, isPy3k }:
+
+buildPythonPackage rec {
+  pname = "pytest-xdist";
+  version = "2.0.0";
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "3217b1f40290570bf27b1f82714fc4ed44c3260ba9b2f6cde0372378fc707ad3";
+  };
+
+  nativeBuildInputs = [ setuptools_scm pytest_6 ];
+  checkInputs = [ pytest_6 filelock ];
+  propagatedBuildInputs = [ execnet pytest-forked psutil six ];
+
+  # pytest6 doesn't allow for new lines
+  checkPhase = ''
+    # Excluded tests access file system
+    export HOME=$TMPDIR
+    pytest -n $NIX_BUILD_CORES -k "not (distribution_rsyncdirs_example or rsync)"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "py.test xdist plugin for distributed testing and loop-on-failing modes";
+    homepage = "https://github.com/pytest-dev/pytest-xdist";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix
index d71d28612eec..6dc4b666db54 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-xdist/default.nix
@@ -1,18 +1,18 @@
 { stdenv, fetchPypi, buildPythonPackage, execnet, pytest
-, setuptools_scm, pytest-forked, filelock, six, isPy3k }:
+, setuptools_scm, pytest-forked, filelock, psutil, six, isPy3k }:
 
 buildPythonPackage rec {
   pname = "pytest-xdist";
-  version = "1.30.0";
+  version = "1.34.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5d1b1d4461518a6023d56dab62fb63670d6f7537f23e2708459a557329accf48";
+    sha256 = "1vh4ps32lp5ignch5adbl3pgchvigdfmrl6qpmhxih54wa1qw3il";
   };
 
   nativeBuildInputs = [ setuptools_scm pytest ];
   checkInputs = [ pytest filelock ];
-  propagatedBuildInputs = [ execnet pytest-forked six ];
+  propagatedBuildInputs = [ execnet pytest-forked psutil six ];
 
   # Encountered a memory leak
   # https://github.com/pytest-dev/pytest-xdist/issues/462
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix
index 840a096a085e..8548dba8d8c0 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-xprocess/default.nix
@@ -1,17 +1,19 @@
 { lib, buildPythonPackage, fetchPypi
 , psutil
 , pytest
+, setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "pytest-xprocess";
-  version = "0.12.1";
+  version = "0.13.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06w2acg0shy0vxrmnxpqclimhgfjys5ql5kmmzr7r1lai46x1q2h";
+    sha256 = "779aeca517cd9c996d1544bdc510cb3cff40c48136d94bbce6148e27f30a93ff";
   };
 
+  nativeBuildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ psutil pytest ];
 
   # Remove test QoL package from install_requires
diff --git a/nixpkgs/pkgs/development/python-modules/pytest-xvfb/default.nix b/nixpkgs/pkgs/development/python-modules/pytest-xvfb/default.nix
index b9ae9be428d3..64078d68a8b8 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest-xvfb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest-xvfb/default.nix
@@ -3,15 +3,17 @@
 , fetchPypi
 , pytest
 , virtual-display
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "pytest-xvfb";
-  version = "1.2.0";
+  version = "2.0.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a7544ca8d0c7c40db4b40d7a417a7b071c68d6ef6bdf9700872d7a167302f979";
+    sha256 = "1kyq5rg27dsnj7dc6x9y7r8vwf8rc88y2ppnnw6r96alw0nn9fn4";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pytest/4.nix b/nixpkgs/pkgs/development/python-modules/pytest/4.nix
index 4fe588f6456d..43cfe6c822c4 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest/4.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest/4.nix
@@ -3,12 +3,12 @@
 , atomicwrites, mock, writeText, pathlib2, wcwidth, packaging, isPyPy
 }:
 buildPythonPackage rec {
-  version = "4.6.9";
+  version = "4.6.11";
   pname = "pytest";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0fgkmpc31nzy97fxfrkqbzycigdwxwwmninx3qhkzp81migggs0r";
+    sha256 = "50fa82392f2120cc3ec2ca0a75ee615be4c479e66669789771f1758332be4353";
   };
 
   checkInputs = [ hypothesis mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytest/5.nix b/nixpkgs/pkgs/development/python-modules/pytest/5.nix
new file mode 100644
index 000000000000..2b45c330cf38
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytest/5.nix
@@ -0,0 +1,80 @@
+{ stdenv, buildPythonPackage, pythonOlder, fetchPypi, isPy3k, isPyPy
+, atomicwrites
+, attrs
+, funcsigs
+, hypothesis
+, mock
+, more-itertools
+, packaging
+, pathlib2
+, pluggy
+, py
+, pygments
+, python
+, setuptools
+, setuptools_scm
+, six
+, toml
+, wcwidth
+, writeText
+}:
+
+buildPythonPackage rec {
+  version = "5.4.3";
+  pname = "pytest";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1n67lk8iwlsmfdm8663k8l7isllg1xd3n9p1yla7885szhdk6ybr";
+  };
+
+  checkInputs = [ hypothesis pygments ];
+  nativeBuildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [
+    atomicwrites
+    attrs
+    more-itertools
+    packaging
+    pluggy
+    py
+    setuptools
+    six
+    toml
+    wcwidth
+  ] ++ stdenv.lib.optionals (pythonOlder "3.6") [ pathlib2 ];
+
+  doCheck = !isPyPy; # https://github.com/pytest-dev/pytest/issues/3460
+
+  preCheck = ''
+    # don't test bash builtins
+    rm testing/test_argcomplete.py
+  '';
+
+  # Ignored file https://github.com/pytest-dev/pytest/pull/5605#issuecomment-522243929
+  checkPhase = ''
+    runHook preCheck
+    $out/bin/py.test -x testing/ -k "not test_collect_pyargs_with_testpaths" --ignore=testing/test_junitxml.py
+    runHook postCheck
+  '';
+
+  # Remove .pytest_cache when using py.test in a Nix build
+  setupHook = writeText "pytest-hook" ''
+    pytestcachePhase() {
+        find $out -name .pytest_cache -type d -exec rm -rf {} +
+    }
+    preDistPhases+=" pytestcachePhase"
+  '';
+
+  pythonImportsCheck = [
+    "pytest"
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://docs.pytest.org";
+    description = "Framework for writing tests";
+    maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytest/default.nix b/nixpkgs/pkgs/development/python-modules/pytest/default.nix
index daf43961ea67..ce742d65ba2d 100644
--- a/nixpkgs/pkgs/development/python-modules/pytest/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytest/default.nix
@@ -3,6 +3,7 @@
 , attrs
 , funcsigs
 , hypothesis
+, iniconfig
 , mock
 , more-itertools
 , packaging
@@ -14,33 +15,45 @@
 , setuptools
 , setuptools_scm
 , six
+, toml
 , wcwidth
 , writeText
 }:
 
 buildPythonPackage rec {
-  version = "5.4.3";
+  version = "6.0.1";
   pname = "pytest";
 
   disabled = !isPy3k;
 
-  preCheck = ''
-    # don't test bash builtins
-    rm testing/test_argcomplete.py
-  '';
-
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7979331bfcba207414f5e1263b5a0f8f521d0f457318836a7355531ed1a4c7d8";
+    sha256 = "85228d75db9f45e06e57ef9bf4429267f81ac7c0d742cc9ed63d09886a9fe6f4";
   };
 
   checkInputs = [ hypothesis pygments ];
   nativeBuildInputs = [ setuptools_scm ];
-  propagatedBuildInputs = [ attrs py setuptools six pluggy more-itertools atomicwrites wcwidth packaging ]
-    ++ stdenv.lib.optionals (pythonOlder "3.6") [ pathlib2 ];
+  propagatedBuildInputs = [
+    atomicwrites
+    attrs
+    iniconfig
+    more-itertools
+    packaging
+    pluggy
+    py
+    setuptools
+    six
+    toml
+    wcwidth
+  ] ++ stdenv.lib.optionals (pythonOlder "3.6") [ pathlib2 ];
 
   doCheck = !isPyPy; # https://github.com/pytest-dev/pytest/issues/3460
 
+  preCheck = ''
+    # don't test bash builtins
+    rm testing/test_argcomplete.py
+  '';
+
   # Ignored file https://github.com/pytest-dev/pytest/pull/5605#issuecomment-522243929
   checkPhase = ''
     runHook preCheck
diff --git a/nixpkgs/pkgs/development/python-modules/python-didl-lite/default.nix b/nixpkgs/pkgs/development/python-modules/python-didl-lite/default.nix
new file mode 100644
index 000000000000..e160c1aa623f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-didl-lite/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, defusedxml
+, pytest }:
+
+buildPythonPackage rec {
+  pname = "python-didl-lite";
+  version = "1.2.4";
+  disabled = pythonOlder "3.5.3";
+
+  src = fetchFromGitHub {
+    owner = "StevenLooman";
+    repo = pname;
+    rev = version;
+    sha256 = "0jf1d5m4r8qd3pn0hh1xqbkblkx9wzrrcmk7qa7q8lzfysp4z217";
+  };
+
+  propagatedBuildInputs = [
+    defusedxml
+  ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  checkPhase = ''
+    py.test
+  '';
+
+  meta = with lib; {
+    description = "DIDL-Lite (Digital Item Declaration Language) tools for Python";
+    homepage = "https://github.com/StevenLooman/python-didl-lite";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-docx/default.nix b/nixpkgs/pkgs/development/python-modules/python-docx/default.nix
index 15ccd45760dd..025a13958cd0 100644
--- a/nixpkgs/pkgs/development/python-modules/python-docx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-docx/default.nix
@@ -22,6 +22,7 @@ buildPythonPackage rec {
 
   checkPhase = ''
     py.test tests
+    behave --format progress --stop --tags=-wip
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix b/nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix
index bc71a662f3ec..dd9191835a44 100644
--- a/nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-dotenv/default.nix
@@ -4,20 +4,21 @@
 , pytest
 , sh
 , typing
+, mock
 }:
 
 buildPythonPackage rec {
   pname = "python-dotenv";
-  version = "0.10.5";
+  version = "0.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1p6xk0f1yj1s4n8wjs9m8xqilc5bcwvfzsy9nv5lrmkhr78bym7j";
+    sha256 = "0gf3r4xvqk9ai1k3ka8c4dlblqhs7286zbd1b20adn953fdcj44c";
   };
 
   propagatedBuildInputs = [ click ] ++ lib.optionals isPy27 [ typing ];
 
-  checkInputs = [ ipython pytest sh ];
+  checkInputs = [ ipython mock pytest sh ];
 
   # cli tests are impure
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/python-engineio/default.nix b/nixpkgs/pkgs/development/python-modules/python-engineio/default.nix
index cb3fe1a9f38d..a74ee0455f2f 100644
--- a/nixpkgs/pkgs/development/python-modules/python-engineio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-engineio/default.nix
@@ -9,17 +9,18 @@
 , tornado
 , websocket_client
 , websockets
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "python-engineio";
-  version = "3.10.0";
+  version = "3.13.2";
 
   src = fetchFromGitHub {
     owner = "miguelgrinberg";
     repo = "python-engineio";
     rev = "v${version}";
-    sha256 = "1495r55177c38wq88pb28l50dfd4213iyxwq1k5rmsgp66vww09s";
+    sha256 = "1hn5nnxp7y2dpf52vrwdxza2sqmzj8admcnwgjkmcxk65s2dhvy1";
   };
 
   propagatedBuildInputs = [
@@ -34,15 +35,19 @@ buildPythonPackage rec {
     tornado
     websocket_client
     websockets
+    pytestCheckHook
   ];
 
-  # make /etc/protocols accessible to fix socket.getprotobyname('tcp') in sandbox
   preCheck = stdenv.lib.optionalString stdenv.isLinux ''
-    export NIX_REDIRECTS=/etc/protocols=${iana-etc}/etc/protocols \
+    echo "nameserver 127.0.0.1" > resolv.conf
+    export NIX_REDIRECTS=/etc/protocols=${iana-etc}/etc/protocols:/etc/resolv.conf=$(realpath resolv.conf) \
       LD_PRELOAD=${libredirect}/lib/libredirect.so
   '';
   postCheck = "unset NIX_REDIRECTS LD_PRELOAD";
 
+  # somehow effective log level does not change?
+  disabledTests = [ "test_logger" ];
+
   meta = with stdenv.lib; {
     description = "Engine.IO server";
     homepage = "https://github.com/miguelgrinberg/python-engineio/";
diff --git a/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix b/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix
index 0c1f7c67e3df..470095eae8d2 100644
--- a/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-gitlab/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, buildPythonPackage, fetchPypi, requests, mock, httmock, pythonOlder }:
+{ stdenv, buildPythonPackage, fetchPypi, requests, mock, httmock, pythonOlder, pytest, responses }:
 
 buildPythonPackage rec {
   pname = "python-gitlab";
-  version = "2.2.0";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4c4ea60c8303f4214522b18038df017cae35afda7474efa0b4e19c2e73bc3ae2";
+    sha256 = "e240b5c371d9e98c46c980d878c3f03cd83f3da6cda01d533db27fa3e0dd474f";
   };
 
   propagatedBuildInputs = [ requests ];
 
-  checkInputs = [ mock httmock ];
+  checkInputs = [ mock httmock pytest responses ];
 
   disabled = pythonOlder "3.6";
 
diff --git a/nixpkgs/pkgs/development/python-modules/python-hosts/default.nix b/nixpkgs/pkgs/development/python-modules/python-hosts/default.nix
index e7dbaa1d64e3..cf1314e0d4c2 100644
--- a/nixpkgs/pkgs/development/python-modules/python-hosts/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-hosts/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python-hosts";
-  version = "0.4.7";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0jdpihj8ajn6pqqa9viw0043l5wvbzgk81rnyk2134iyzhg06z80";
+    sha256 = "850998704ba9025ce4c8ffd45dc4fbea2b5e30247bf3b574872ac5df90426b4d";
   };
 
   # win_inet_pton is required for windows support
diff --git a/nixpkgs/pkgs/development/python-modules/python-igraph/default.nix b/nixpkgs/pkgs/development/python-modules/python-igraph/default.nix
index 0f20a01e0b22..d67ec59f3ac3 100644
--- a/nixpkgs/pkgs/development/python-modules/python-igraph/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-igraph/default.nix
@@ -1,18 +1,26 @@
 { buildPythonPackage, fetchPypi, lib, isPy3k
-, pkgconfig, igraph }:
+, pkgconfig, igraph
+, texttable }:
 
 buildPythonPackage rec {
   pname = "python-igraph";
-  version = "0.7.1.post6";
+  version = "0.8.2";
+  disabled = !isPy3k; # fails to build
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ igraph ];
+  propagatedBuildInputs = [ texttable ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0xp61zz710qlzhmzbfr65d5flvsi8zf2xy78s6rsszh719wl5sm5";
+    sha256 = "4601638d7d22eae7608cdf793efac75e6c039770ec4bd2cecf76378c84ce7d72";
   };
 
+  # NB: We want to use our igraph, not vendored igraph, but even with
+  # pkg-config on the PATH, their custom setup.py still needs to be explicitly
+  # told to do it. ~ C.
+  setupPyGlobalFlags = [ "--use-pkg-config" ];
+
   doCheck = !isPy3k;
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/python-jose/default.nix b/nixpkgs/pkgs/development/python-modules/python-jose/default.nix
index d6986f06975a..09a424583110 100644
--- a/nixpkgs/pkgs/development/python-modules/python-jose/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-jose/default.nix
@@ -1,6 +1,7 @@
 { stdenv, buildPythonPackage, fetchFromGitHub
 , future, six, ecdsa, rsa
-, pycrypto, pytest, pytestcov, pytestrunner, cryptography
+, pycrypto, pytestcov, pytestrunner, cryptography
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -16,17 +17,16 @@ buildPythonPackage rec {
 
   checkInputs = [
     pycrypto
-    pytest
+    pytestCheckHook
     pytestcov
     pytestrunner
     cryptography # optional dependency, but needed in tests
   ];
-  checkPhase = ''
-    py.test
-  '';
 
-  # https://github.com/mpdavis/python-jose/issues/149
-  PYTEST_ADDOPTS = "-k 'not test_invalid_claims_json and not test_invalid_claims'";
+  disabledTests = [
+    # https://github.com/mpdavis/python-jose/issues/176
+    "test_key_too_short"
+  ];
 
   propagatedBuildInputs = [ future six ecdsa rsa ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/python-jsonrpc-server/default.nix b/nixpkgs/pkgs/development/python-modules/python-jsonrpc-server/default.nix
index 587f27fd51be..12ad5170a7c5 100644
--- a/nixpkgs/pkgs/development/python-modules/python-jsonrpc-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-jsonrpc-server/default.nix
@@ -1,6 +1,7 @@
 { stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder
 , pytest, mock, pytestcov, coverage
 , future, futures, ujson, isPy38
+, fetchpatch
 }:
 
 buildPythonPackage rec {
@@ -16,6 +17,8 @@ buildPythonPackage rec {
 
   postPatch = ''
     sed -i 's/version=versioneer.get_version(),/version="${version}",/g' setup.py
+    # https://github.com/palantir/python-jsonrpc-server/issues/36
+    sed -iEe "s!'ujson.*\$!'ujson',!" setup.py
   '';
 
   checkInputs = [
@@ -26,7 +29,16 @@ buildPythonPackage rec {
     pytest
   '';
 
-  disabled = isPy38;
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/palantir/python-jsonrpc-server/commit/0a04cc4e9d44233b1038b12d63cd3bd437c2374e.patch";
+      sha256 = "177zdnp1808r2pg189bvzab44l8i2alsgv04kmrlhhnv40h66qyg";
+    })
+    (fetchpatch {
+      url = "https://github.com/palantir/python-jsonrpc-server/commit/5af6e43d0c1fb9a6a29b96d38cfd6dbeec85d0ea.patch";
+      sha256 = "1gx7lc1jxar1ngqqfkdn21s46y1mfnjf7ky2886ydk53nkaba91m";
+    })
+  ];
 
   propagatedBuildInputs = [ future ujson ]
     ++ stdenv.lib.optional (pythonOlder "3.2") futures;
diff --git a/nixpkgs/pkgs/development/python-modules/python-language-server/default.nix b/nixpkgs/pkgs/development/python-modules/python-language-server/default.nix
index 9f42839960d3..4558bc7edba4 100644
--- a/nixpkgs/pkgs/development/python-modules/python-language-server/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-language-server/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder, isPy27
+{ stdenv, buildPythonPackage, fetchFromGitHub, fetchpatch, pythonOlder, isPy27
 , backports_functools_lru_cache, configparser, futures, future, jedi, pluggy, python-jsonrpc-server, flake8
 , pytestCheckHook, mock, pytestcov, coverage, setuptools, ujson
 , # Allow building a limited set of providers, e.g. ["pycodestyle"].
@@ -21,15 +21,28 @@ in
 
 buildPythonPackage rec {
   pname = "python-language-server";
-  version = "0.31.9";
+  version = "0.34.1";
 
   src = fetchFromGitHub {
     owner = "palantir";
     repo = "python-language-server";
     rev = version;
-    sha256 = "06hd6a1hhd57hrq4vbwfs0saplkhsrz2krv8kq9kw4fz4hx7zj74";
+    sha256 = "sha256-/tVzaoyUO6+7DSvnf3JxpcTY0rU+hHBu5qlru/ZTpxU=";
   };
 
+  patches = [
+    # https://github.com/palantir/python-language-server/pull/851
+    (fetchpatch {
+      url = "https://github.com/palantir/python-language-server/commit/f513f3297132492dd41e001d943980e6c4f40809.patch";
+      sha256 = "04c9hrb3dzlfchjk4625ipazyfcbq6qq2kj2hg3zf2xsny2jcvi5";
+    })
+  ];
+
+  postPatch = ''
+    # https://github.com/palantir/python-jsonrpc-server/issues/36
+    sed -i -e 's!ujson<=!ujson>=!' setup.py
+  '';
+
   # The tests require all the providers, disable otherwise.
   doCheck = providers == ["*"];
 
@@ -53,10 +66,8 @@ buildPythonPackage rec {
     "test_pandas_completions"
     "test_matplotlib_completions"
     "test_snippet_parsing"
+    "test_numpy_hover"
   ] ++ stdenv.lib.optional isPy27 "test_flake8_lint";
-  # checkPhase = ''
-  #   HOME=$TEMPDIR pytest -k "not test_pyqt_completion and not 
-  # '';
 
   propagatedBuildInputs = [ setuptools jedi pluggy future python-jsonrpc-server flake8 ujson ]
     ++ stdenv.lib.optional (withProvider "autopep8") autopep8
diff --git a/nixpkgs/pkgs/development/python-modules/python-libarchive/default.nix b/nixpkgs/pkgs/development/python-modules/python-libarchive/default.nix
deleted file mode 100644
index 02fe23479244..000000000000
--- a/nixpkgs/pkgs/development/python-modules/python-libarchive/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchurl
-, isPy3k
-, pkgs
-}:
-
-buildPythonPackage rec {
-  version = "3.1.2-1";
-  pname = "libarchive";
-  disabled = isPy3k;
-
-  src = fetchurl {
-    url = "http://python-libarchive.googlecode.com/files/python-libarchive-${version}.tar.gz";
-    sha256 = "0j4ibc4mvq64ljya9max8832jafi04jciff9ia9qy0xhhlwkcx8x";
-  };
-
-  propagatedBuildInputs = [ pkgs.libarchive.lib ];
-
-  meta = with stdenv.lib; {
-    description = "Multi-format archive and compression library";
-    homepage = "https://libarchive.org/";
-    license = licenses.bsd0;
-    broken = true;
-  };
-
-}
diff --git a/nixpkgs/pkgs/development/python-modules/python-markdown-math/default.nix b/nixpkgs/pkgs/development/python-modules/python-markdown-math/default.nix
index a72e20021df3..ea08d7f902c4 100644
--- a/nixpkgs/pkgs/development/python-modules/python-markdown-math/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-markdown-math/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "python-markdown-math";
-  version = "0.6";
+  version = "0.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c68d8cb9695cb7b435484403dc18941d1bad0ff148e4166d9417046a0d5d3022";
+    sha256 = "17a12175e8b2052a1c3402fca410841c551c678046293b1f7c280ccfe7b302a0";
   };
 
   checkInputs = [ markdown ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-miio/default.nix b/nixpkgs/pkgs/development/python-modules/python-miio/default.nix
index a18645697089..abce18c8841a 100644
--- a/nixpkgs/pkgs/development/python-modules/python-miio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-miio/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "python-miio";
-  version = "0.5.1";
+  version = "0.5.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8d23caf4906f2112dc88b9a6d5e1767877744cae016cd71c2bf75592a4be3b79";
+    sha256 = "3be5275b569844dfa267c80a1e23dc0957411dd501cae0ed3cccf43467031ceb";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-mnist/default.nix b/nixpkgs/pkgs/development/python-modules/python-mnist/default.nix
index 3b0ecf237702..0004c297b619 100644
--- a/nixpkgs/pkgs/development/python-modules/python-mnist/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-mnist/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python-mnist";
-  version = "0.6";
+  version = "0.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5d59a44335eccb4b310efb2ebb76f44e8588a1732cfb4923f4a502b61d8b653a";
+    sha256 = "a0cced01e83b5b844cff86109280df7a672a8e4e38fc19fa68999a17f8a9fbd8";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/python-mpv-jsonipc/default.nix b/nixpkgs/pkgs/development/python-modules/python-mpv-jsonipc/default.nix
index 9f9818350bf2..82ee7e209241 100644
--- a/nixpkgs/pkgs/development/python-modules/python-mpv-jsonipc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-mpv-jsonipc/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "python-mpv-jsonipc";
-  version = "1.1.8";
+  version = "1.1.11";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "iwalton3";
     repo = "python-mpv-jsonipc";
     rev = "v${version}";
-    sha256 = "0f4nfzfka5n76n6dxmgcz0rkaws7a3jrgyh00va6lnfi7h6dsmx4";
+    sha256 = "034vc2j54dciiq80k7jn6kx4g7i58sjk0ykma039k5rihj2rblpk";
   };
 
   # 'mpv-jsonipc' does not have any tests
diff --git a/nixpkgs/pkgs/development/python-modules/python-packer/default.nix b/nixpkgs/pkgs/development/python-modules/python-packer/default.nix
index 04cbaf772479..420efb40039e 100644
--- a/nixpkgs/pkgs/development/python-modules/python-packer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-packer/default.nix
@@ -16,10 +16,10 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ sh ];
-  
+
   # Tests requires network connections
   doCheck = false;
-  
+
   meta = with stdenv.lib; {
     description = "An interface for packer.io";
     homepage = "https://github.com/nir0s/python-packer";
@@ -27,4 +27,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ psyanticy ];
   };
 }
-
diff --git a/nixpkgs/pkgs/development/python-modules/python-pam/default.nix b/nixpkgs/pkgs/development/python-modules/python-pam/default.nix
index 4065cd7c0145..f152c1f264eb 100644
--- a/nixpkgs/pkgs/development/python-modules/python-pam/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-pam/default.nix
@@ -1,23 +1,32 @@
-{ stdenv, buildPythonPackage, fetchPypi, pam }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pam
+}:
 
 buildPythonPackage rec {
   pname = "python-pam";
   version = "1.8.4";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "16whhc0vr7gxsbzvsnq65nq8fs3wwmx755cavm8kkczdkz4djmn8";
+  src = fetchFromGitHub {
+    owner = "FirefighterBlu3";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0gp7vzd332j7jwndcnz7kc9j283d6lyv32bndd1nqv9ghzv69sxp";
   };
 
+  buildInputs = [
+    pam
+  ];
+
   postPatch = ''
-    substituteInPlace pam.py --replace 'find_library("pam")' \
-      '"${pam}/lib/libpam${stdenv.hostPlatform.extensions.sharedLibrary}"'
+    sed "s|find_library(\"pam\")|\"${pam}/lib/libpam.so\"|g" -i pam.py
   '';
 
-  meta = with stdenv.lib; {
-    description = "Python PAM module using ctypes";
+  meta = with lib; {
+    description = "Python pam module supporting py3 (and py2)";
     homepage = "https://github.com/FirefighterBlu3/python-pam";
-    maintainers = with maintainers; [ abbradar ];
     license = licenses.mit;
+    maintainers = with maintainers; [ abbradar mkg20001 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/python-periphery/default.nix b/nixpkgs/pkgs/development/python-modules/python-periphery/default.nix
index d1f5de83a4c8..298fbaed0f86 100644
--- a/nixpkgs/pkgs/development/python-modules/python-periphery/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-periphery/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python-periphery";
-  version = "2.0.1";
+  version = "2.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1v0qpv0i2kqhjvl6wvvvy29hazjdcym7nn14qzv4r5zq1zsdb92x";
+    sha256 = "57baa82e6bc59b67747317d16ad0cf9626826e8d43233af13bce924660500bd6";
   };
 
   # Some tests require physical probing and additional physical setup
diff --git a/nixpkgs/pkgs/development/python-modules/python-ptrace/default.nix b/nixpkgs/pkgs/development/python-modules/python-ptrace/default.nix
index f116ec556de8..5eff4707d4e2 100644
--- a/nixpkgs/pkgs/development/python-modules/python-ptrace/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-ptrace/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "python-ptrace";
-  version = "0.9.5";
+  version = "0.9.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c46287ae611e3041bbd0572221cd1f121100dfc98d1d6c9ad6dd97e35f62501a";
+    sha256 = "b998e3436cec975b6907552af6e7f3ff8779097e32d2b905696e5a9feb09e070";
   };
 
   # requires distorm, which is optionally
diff --git a/nixpkgs/pkgs/development/python-modules/python-redis-lock/default.nix b/nixpkgs/pkgs/development/python-modules/python-redis-lock/default.nix
index 8aad5a1a7d2f..2ee21137141a 100644
--- a/nixpkgs/pkgs/development/python-modules/python-redis-lock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-redis-lock/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "python-redis-lock";
-  version = "3.4.0";
+  version = "3.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8e3ef458b9424daf35d587e69b63416a0c55ac46303f3aaff1bab4fe5a8f1e92";
+    sha256 = "6c79b87f2fefcf47bbcebea56056d324e9d7971c9b98123b79590e08cbb0a8f7";
   };
 
   checkInputs = [ pytest process-tests pkgs.redis ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix b/nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix
new file mode 100644
index 000000000000..c2cced83509e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-rtmidi/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, pkg-config, alsaLib, libjack2, tox, flake8, alabaster
+}:
+
+buildPythonPackage rec {
+  pname = "python-rtmidi";
+  version = "1.4.5";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "3dd1909d0f44f03a4191131f1829cac2ee6a94f5a4be2a9606354748e594e704";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ alsaLib libjack2 ];
+  checkInputs = [
+    tox
+    flake8
+    alabaster
+  ];
+
+  meta = with lib; {
+    description = "A Python binding for the RtMidi C++ library implemented using Cython";
+    homepage = "https://chrisarndt.de/projects/python-rtmidi/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-slugify/default.nix b/nixpkgs/pkgs/development/python-modules/python-slugify/default.nix
index d83fa3b9ad34..30ce55a12a0c 100644
--- a/nixpkgs/pkgs/development/python-modules/python-slugify/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-slugify/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
     pname = "python-slugify";
-    version = "4.0.0";
+    version = "4.0.1";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "a8fc3433821140e8f409a9831d13ae5deccd0b033d4744d94b31fea141bdd84c";
+      sha256 = "69a517766e00c1268e5bbfc0d010a0a8508de0b18d30ad5a1ff357f8ae724270";
     };
 
     propagatedBuildInputs = [ text-unidecode ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-snap7/default.nix b/nixpkgs/pkgs/development/python-modules/python-snap7/default.nix
new file mode 100644
index 000000000000..06e1185e3430
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/python-snap7/default.nix
@@ -0,0 +1,37 @@
+{ lib, buildPythonPackage, snap7, fetchFromGitHub, six, setuptools }:
+
+buildPythonPackage rec {
+  pname = "python-snap7";
+  version = "0.11";
+
+  src = fetchFromGitHub {
+    owner = "gijzelaerr";
+    repo = "python-snap7";
+    rev = "899a94c6eeca76fb9b18afd5056e5003646d7f94";
+    sha256 = "169zd1nxq86nmi6132vxl1f6wxm9w3waihq2wn14kkmld1vkmvfd";
+  };
+
+  propagatedBuildInputs = [ setuptools six ];
+
+  prePatch = ''
+    substituteInPlace snap7/common.py \
+      --replace "lib_location = None" "lib_location = '${snap7}/lib/libsnap7.so'"
+  '';
+
+  # Tests require root privileges to open privilaged ports
+  # We cannot run them
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "snap7"
+    "snap7.six"
+    "snap7.util"
+  ];
+
+  meta = with lib; {
+    description = "Python wrapper for the snap7 PLC communication library ";
+    homepage = "https://github.com/gijzelaerr/python-snap7";
+    license = licenses.mit;
+    maintainers = with maintainers; [ freezeboy ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/python-socketio/default.nix b/nixpkgs/pkgs/development/python-modules/python-socketio/default.nix
index 23c806c3bab3..cbddc023a152 100644
--- a/nixpkgs/pkgs/development/python-modules/python-socketio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-socketio/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "python-socketio";
-  version = "4.4.0";
+  version = "4.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "48cba5b827ac665dbf923a4f5ec590812aed5299a831fc43576a9af346272534";
+    sha256 = "358d8fbbc029c4538ea25bcaa283e47f375be0017fcba829de8a3a731c9df25a";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/python-stdnum/default.nix b/nixpkgs/pkgs/development/python-modules/python-stdnum/default.nix
index 39153f4a4daa..eb912b2bc593 100644
--- a/nixpkgs/pkgs/development/python-modules/python-stdnum/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-stdnum/default.nix
@@ -1,11 +1,11 @@
 { lib, fetchPypi, buildPythonPackage, nose }:
 
 buildPythonPackage rec {
-  version = "1.13";
+  version = "1.14";
   pname = "python-stdnum";
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0q4128rjdgavywhzlm2gz2n5ybc9b9sxs81g50dvxf5q7z9q63qj";
+    sha256 = "fd3a92b8ec82a159c41dbaa3c5397934d090090c92b04e346412e0fd7e6a1b1c";
   };
 
   checkInputs = [ nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix b/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix
index f36f82395685..0552b18f8002 100644
--- a/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-telegram-bot/default.nix
@@ -12,12 +12,12 @@
 
 buildPythonPackage rec {
   pname = "python-telegram-bot";
-  version = "12.7";
+  version = "12.8";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1vwf4pgjrg9a6w51ds9wmzq31bmi3f7xs79gdzzfxfmqmy1hb2r1";
+    sha256 = "1hzdnjxqgqv868agaipga4padq2q5s4hd1yzvh3n48b9ck2qcw9j";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/python-vipaccess/default.nix b/nixpkgs/pkgs/development/python-modules/python-vipaccess/default.nix
index ca82f8aa1870..cdafd3cd2a0f 100644
--- a/nixpkgs/pkgs/development/python-modules/python-vipaccess/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-vipaccess/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "python-vipaccess";
-  version = "0.12";
+  version = "0.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0g6mmf896wp036263zkkvi3ff59zcrzssjsw7csfmbisiszgdnrj";
+    sha256 = "f148d4534e3a4dda9050a6a038868594c1216ea2413f2144ca6697e0e20c9cad";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/python-vlc/default.nix b/nixpkgs/pkgs/development/python-modules/python-vlc/default.nix
index 821ad8c7baaa..6f83f587f588 100644
--- a/nixpkgs/pkgs/development/python-modules/python-vlc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python-vlc/default.nix
@@ -2,17 +2,17 @@
 , buildPythonPackage
 , fetchPypi
 , setuptools
-, vlc
+, libvlc
 , substituteAll
 }:
 
 buildPythonPackage rec {
   pname = "python-vlc";
-  version = "3.0.9113";
+  version = "3.0.11115";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5422b79d347b6419008ee91cfd9663edc37eaf2a0bd8fb9017d4cc2e5f249dda";
+    sha256 = "a4d3bdddfce84a8fb1b2d5447193a0239c55c16ca246e5194d48efd59c4e236b";
   };
 
   propagatedBuildInputs = [
@@ -22,7 +22,7 @@ buildPythonPackage rec {
   patches = [
     (substituteAll {
       src = ./vlc-paths.patch;
-      libvlcPath="${vlc}/lib/libvlc.so.5";
+      libvlcPath="${libvlc}/lib/libvlc.so.5";
     })
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/python3-openid/default.nix b/nixpkgs/pkgs/development/python-modules/python3-openid/default.nix
index 27445554ddfa..2a85482cbb68 100644
--- a/nixpkgs/pkgs/development/python-modules/python3-openid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python3-openid/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "python3-openid";
-  version = "3.1.0";
+  version = "3.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "00l5hrjh19740w00b3fnsqldnla41wbr2rics09dl4kyd1fkd3b2";
+    sha256 = "1bxf9a3ny1js422j962zfzl4a9dhj192pvai05whn7j0iy9gdyrk";
   };
 
   propagatedBuildInputs = [ defusedxml ];
diff --git a/nixpkgs/pkgs/development/python-modules/python_fedora/default.nix b/nixpkgs/pkgs/development/python-modules/python_fedora/default.nix
index ca4aa726d50d..8c9cac757615 100644
--- a/nixpkgs/pkgs/development/python-modules/python_fedora/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/python_fedora/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "python-fedora";
-  version = "0.10.0";
+  version = "1.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5516b8c066bb2eb5d604ae8e84c3d31e27753795c5d84f6a792979363756405c";
+    sha256 = "efb675929ebf588c2deffa2058ff407e65d1889bca1b545a58f525135367c9e4";
   };
   propagatedBuildInputs = [ kitchen requests bunch paver lockfile
     six munch urllib3 beautifulsoup4 openidc-client ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytimeparse/default.nix b/nixpkgs/pkgs/development/python-modules/pytimeparse/default.nix
index ac48fe1c240f..9aa11a480cd6 100644
--- a/nixpkgs/pkgs/development/python-modules/pytimeparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytimeparse/default.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
       sha256 = "e86136477be924d7e670646a98561957e8ca7308d44841e21f5ddea757556a0a";
     };
 
-    propagatedBuildInputs = [ nose ];
+    checkInputs = [ nose ];
 
     meta = with stdenv.lib; {
       description = "A small Python library to parse various kinds of time expressions";
diff --git a/nixpkgs/pkgs/development/python-modules/pytmx/default.nix b/nixpkgs/pkgs/development/python-modules/pytmx/default.nix
index 0745aacc3782..aa6eecfdeb53 100644
--- a/nixpkgs/pkgs/development/python-modules/pytmx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytmx/default.nix
@@ -2,32 +2,26 @@
 
 buildPythonPackage rec {
   pname = "pytmx";
-  version = "3.21.7";
+  version = "3.22.0";
 
   src = fetchFromGitHub {
     # The release was not git tagged.
     owner = "bitcraft";
     repo = "PyTMX";
-    rev = "38519b94ab9a2db7cacb8e18de4d83750ec6fac2";
-    sha256 = "0p2gc6lgian1yk4qvhbkxfkmndf9ras70amigqzzwr02y2jvq7j8";
+    rev = "187fd429dadcdc5828e78e6748a983aa1434e4d2";
+    sha256 = "0480pr61v54bwdyzb983sk0fqkyfbcgrdn8k11yf1yck4zb119gc";
   };
 
   propagatedBuildInputs = [ pygame pyglet pysdl2 six ];
 
-  # The tests are failing for Python 2.7.
-  doCheck = isPy3k;
   checkPhase = ''
-    # The following test imports an example file from the current working
-    # directory. Thus, we're cd'ing into the test directory.
-
-    cd tests/
-    python -m unittest test_pytmx
+    python -m unittest tests.pytmx.test_pytmx
   '';
 
   meta = with lib; {
     homepage = "https://github.com/bitcraft/PyTMX";
     description = "Python library to read Tiled Map Editor's TMX maps";
     license = licenses.lgpl3;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pytools/default.nix b/nixpkgs/pkgs/development/python-modules/pytools/default.nix
index 7321fbef0d6e..f8f9ef27ff9c 100644
--- a/nixpkgs/pkgs/development/python-modules/pytools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytools/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , decorator
 , appdirs
 , six
@@ -10,11 +11,12 @@
 
 buildPythonPackage rec {
   pname = "pytools";
-  version = "2019.1.1";
+  version = "2020.4";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ce2d702ae4ef10a70197b00b93141461140d00578f2a862fa946ca1446a300db";
+    sha256 = "37db39ff11a1b5fc8aec875ae4ddb3d6c21aa0e95bddc9c841aa98e1631ae460";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch-lightning/default.nix b/nixpkgs/pkgs/development/python-modules/pytorch-lightning/default.nix
new file mode 100644
index 000000000000..63991752a8ac
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytorch-lightning/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, future
+, pytestCheckHook
+, pytorch
+, pyyaml
+, tensorflow-tensorboard
+, tqdm }:
+
+buildPythonPackage rec {
+  pname = "pytorch-lightning";
+  version = "0.8.5";
+
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "PyTorchLightning";
+    repo = pname;
+    rev = version;
+    sha256 = "12zhq4pnfcwbgcx7cs99c751gp3w0ysaf5ykv2lv8f4i360w3r5a";
+  };
+
+  propagatedBuildInputs = [
+    future
+    pytorch
+    pyyaml
+    tensorflow-tensorboard
+    tqdm
+  ];
+
+  checkInputs = [ pytestCheckHook ];
+  # Some packages are not in NixPkgs; other tests try to build distributed
+  # models, which doesn't work in the sandbox.
+  doCheck = false;
+
+  pythonImportsCheck = [ "pytorch_lightning" ];
+
+  meta = with lib; {
+    description = "Lightweight PyTorch wrapper for machine learning researchers";
+    homepage = "https://pytorch-lightning.readthedocs.io";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ tbenst ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix b/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix
new file mode 100644
index 000000000000..b1b662e95b3e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytorch/bin.nix
@@ -0,0 +1,68 @@
+{ stdenv
+, buildPythonPackage
+, fetchurl
+, isPy37
+, isPy38
+, python
+, nvidia_x11
+, addOpenGLRunpath
+, future
+, numpy
+, patchelf
+, pyyaml
+, requests
+}:
+
+let
+  pyVerNoDot = builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
+  platform = if stdenv.isDarwin then "darwin" else "linux";
+  srcs = import ./binary-hashes.nix;
+  unsupported = throw "Unsupported system";
+in buildPythonPackage {
+  pname = "pytorch";
+  # Don't forget to update pytorch to the same version.
+  version = "1.6.0";
+
+  format = "wheel";
+
+  disabled = !(isPy37 || isPy38);
+
+  src = fetchurl srcs."${stdenv.system}-${pyVerNoDot}" or unsupported;
+
+  nativeBuildInputs = [
+    addOpenGLRunpath
+    patchelf
+  ];
+
+  propagatedBuildInputs = [
+    future
+    numpy
+    pyyaml
+    requests
+  ];
+
+  postInstall = ''
+    # ONNX conversion
+    rm -rf $out/bin
+  '';
+
+  postFixup = let
+    rpath = stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib nvidia_x11 ];
+  in ''
+    find $out/${python.sitePackages}/torch/lib -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
+      echo "setting rpath for $lib..."
+      patchelf --set-rpath "${rpath}:$out/${python.sitePackages}/torch/lib" "$lib"
+      addOpenGLRunpath "$lib"
+    done
+  '';
+
+  pythonImportsCheck = [ "torch" ];
+
+  meta = with stdenv.lib; {
+    description = "Open source, prototype-to-production deep learning platform";
+    homepage = "https://pytorch.org/";
+    license = licenses.unfree; # Includes CUDA and Intel MKL.
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix b/nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix
new file mode 100644
index 000000000000..481dc6825c7d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytorch/binary-hashes.nix
@@ -0,0 +1,10 @@
+{
+  x86_64-linux-37 = {
+    url = "https://download.pytorch.org/whl/cu102/torch-1.6.0-cp37-cp37m-linux_x86_64.whl";
+    sha256 = "0xhwv68j8gvahfzcp43bqp2x71iwv6zjhkw2f1hb82xps40mrml7";
+  };
+  x86_64-linux-38 = {
+    url = "https://download.pytorch.org/whl/cu102/torch-1.6.0-cp38-cp38-linux_x86_64.whl";
+    sha256 = "05m2l04wqzw5xvjam6zwvlmc3979cksl3hrdqc2aikrv4hz8fmsk";
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch/default.nix b/nixpkgs/pkgs/development/python-modules/pytorch/default.nix
index 80c3c6d72931..4635f813c3a6 100644
--- a/nixpkgs/pkgs/development/python-modules/pytorch/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytorch/default.nix
@@ -4,7 +4,7 @@
   openMPISupport ? false, openmpi ? null,
   buildDocs ? false,
   cudaArchList ? null,
-  numpy, pyyaml, cffi, click, typing, cmake, oneDNN, hypothesis, numactl, psutil,
+  numpy, pyyaml, cffi, click, typing, cmake, hypothesis, numactl, psutil,
   linkFarm, symlinkJoin,
 
   # virtual pkg that consistently instantiates blas across nixpkgs
@@ -25,15 +25,11 @@ assert !openMPISupport || openmpi != null;
 assert !cudaSupport || cudatoolkit != null;
 assert cudnn == null || cudatoolkit != null;
 assert !cudaSupport || (let majorIs = lib.versions.major cudatoolkit.version;
-                        in majorIs == "9" || majorIs == "10");
+                        in majorIs == "9" || majorIs == "10" || majorIs == "11");
 
-let
-  hasDependency = dep: pkg: lib.lists.any (inp: inp == dep) pkg.buildInputs;
-  matchesCudatoolkit = hasDependency cudatoolkit;
-in
 # confirm that cudatoolkits are sync'd across dependencies
-assert !(openMPISupport && cudaSupport) || matchesCudatoolkit openmpi;
-assert !cudaSupport || matchesCudatoolkit magma;
+assert !(openMPISupport && cudaSupport) || openmpi.cudatoolkit == cudatoolkit;
+assert !cudaSupport || magma.cudatoolkit == cudatoolkit;
 
 let
   cudatoolkit_joined = symlinkJoin {
@@ -104,13 +100,16 @@ let
     "LD_LIBRARY_PATH=${cudaStub}\${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH ";
 
 in buildPythonPackage rec {
-  version = "1.5.0";
   pname = "pytorch";
+  # Don't forget to update pytorch-bin to the same version.
+  version = "1.6.0";
+
   disabled = !isPy3k;
 
   outputs = [
     "out"   # output standard python package
-    "dev"   # output libtorch only
+    "dev"   # output libtorch headers
+    "lib"   # output libtorch libraries
   ];
 
   src = fetchFromGitHub {
@@ -118,9 +117,31 @@ in buildPythonPackage rec {
     repo   = "pytorch";
     rev    = "v${version}";
     fetchSubmodules = true;
-    sha256 = "19qyrjd72mc0llcfn50av8ym05f2iwa38gv068wykji4ph7qjlv2";
+    sha256 = "14hhjsi6fnpaw9m1a3bhvdinsks6fhss6bbcrfk6jgns64abqdaz";
   };
 
+  patches = lib.optionals stdenv.isAarch64 [
+    # GNU aarch64 assembler does not support 4s on neon mov:
+    # https://github.com/pytorch/pytorch/issues/33124
+    #
+    # Fix from:
+    # https://github.com/pytorch/pytorch/pull/40584
+    #
+    # This patch can be removed with the next major version (1.7.0).
+    (fetchpatch {
+      name = "qnnpack-neon-fix.patch";
+      url = "https://github.com/pytorch/pytorch/commit/7676682584d0caf9243bce74ea0a88711ec4a807.diff";
+      sha256 = "13spncaqlpsp8qk2850yly7xqwmhhfwznhmzkk8jgpslkbx75vgq";
+    })
+  ] ++ lib.optionals stdenv.isDarwin [
+    # pthreadpool added support for Grand Central Dispatch in April
+    # 2020. However, this relies on functionality (DISPATCH_APPLY_AUTO)
+    # that is available starting with macOS 10.13. However, our current
+    # base is 10.12. Until we upgrade, we can fall back on the older
+    # pthread support.
+    ./pthreadpool-disable-gcd.diff
+  ];
+
   preConfigure = lib.optionalString cudaSupport ''
     export TORCH_CUDA_ARCH_LIST="${lib.strings.concatStringsSep ";" final_cudaArchList}"
     export CC=${cudatoolkit.cc}/bin/gcc CXX=${cudatoolkit.cc}/bin/g++
@@ -136,9 +157,9 @@ in buildPythonPackage rec {
 
   USE_MKL = blas.implementation == "mkl";
 
-  # Unlike MKL, MKLDNN is FOSS, so we enable support for it by default. Note
-  # that this was renamed to dnnl and then renamed again to oneDNN upstream, but
-  # pytorch still calls it by the old name mkldnn.
+  # Unlike MKL, oneDNN (née MKLDNN) is FOSS, so we enable support for
+  # it by default. PyTorch currently uses its own vendored version
+  # of oneDNN through Intel iDeep.
   USE_MKLDNN = mklDnnSupport;
   USE_MKLDNN_CBLAS = mklDnnSupport;
 
@@ -187,7 +208,7 @@ in buildPythonPackage rec {
     ninja
   ] ++ lib.optionals cudaSupport [ cudatoolkit_joined ];
 
-  buildInputs = [ blas blas.provider oneDNN ]
+  buildInputs = [ blas blas.provider ]
     ++ lib.optionals cudaSupport [ cudnn magma nccl ]
     ++ lib.optionals stdenv.isLinux [ numactl ];
 
@@ -224,33 +245,35 @@ in buildPythonPackage rec {
   ];
   postInstall = ''
     mkdir $dev
-    cp -r $out/${python.sitePackages}/torch/lib     $dev/lib
     cp -r $out/${python.sitePackages}/torch/include $dev/include
     cp -r $out/${python.sitePackages}/torch/share   $dev/share
+
+    mkdir $lib
+    cp -r $out/${python.sitePackages}/torch/lib     $lib/lib
   '';
 
   postFixup = stdenv.lib.optionalString stdenv.isDarwin ''
-    for f in $(ls $dev/lib/*.dylib); do
-        install_name_tool -id $dev/lib/$(basename $f) $f || true
+    for f in $(ls $lib/lib/*.dylib); do
+        install_name_tool -id $lib/lib/$(basename $f) $f || true
     done
 
-    install_name_tool -change @rpath/libshm.dylib $dev/lib/libshm.dylib $dev/lib/libtorch_python.dylib
-    install_name_tool -change @rpath/libtorch.dylib $dev/lib/libtorch.dylib $dev/lib/libtorch_python.dylib
-    install_name_tool -change @rpath/libc10.dylib $dev/lib/libc10.dylib $dev/lib/libtorch_python.dylib
+    install_name_tool -change @rpath/libshm.dylib $lib/lib/libshm.dylib $lib/lib/libtorch_python.dylib
+    install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libtorch_python.dylib
+    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libtorch_python.dylib
 
-    install_name_tool -change @rpath/libc10.dylib $dev/lib/libc10.dylib $dev/lib/libtorch.dylib
+    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libtorch.dylib
 
-    install_name_tool -change @rpath/libtorch.dylib $dev/lib/libtorch.dylib $dev/lib/libcaffe2_observers.dylib
-    install_name_tool -change @rpath/libc10.dylib $dev/lib/libc10.dylib $dev/lib/libcaffe2_observers.dylib
+    install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libcaffe2_observers.dylib
+    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libcaffe2_observers.dylib
 
-    install_name_tool -change @rpath/libtorch.dylib $dev/lib/libtorch.dylib $dev/lib/libcaffe2_module_test_dynamic.dylib
-    install_name_tool -change @rpath/libc10.dylib $dev/lib/libc10.dylib $dev/lib/libcaffe2_module_test_dynamic.dylib
+    install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libcaffe2_module_test_dynamic.dylib
+    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libcaffe2_module_test_dynamic.dylib
 
-    install_name_tool -change @rpath/libtorch.dylib $dev/lib/libtorch.dylib $dev/lib/libcaffe2_detectron_ops.dylib
-    install_name_tool -change @rpath/libc10.dylib $dev/lib/libc10.dylib $dev/lib/libcaffe2_detectron_ops.dylib
+    install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libcaffe2_detectron_ops.dylib
+    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libcaffe2_detectron_ops.dylib
 
-    install_name_tool -change @rpath/libtorch.dylib $dev/lib/libtorch.dylib $dev/lib/libshm.dylib
-    install_name_tool -change @rpath/libc10.dylib $dev/lib/libc10.dylib $dev/lib/libshm.dylib
+    install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libshm.dylib
+    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libshm.dylib
   '';
 
 
diff --git a/nixpkgs/pkgs/development/python-modules/pytorch/pthreadpool-disable-gcd.diff b/nixpkgs/pkgs/development/python-modules/pytorch/pthreadpool-disable-gcd.diff
new file mode 100644
index 000000000000..eddd45723f8b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pytorch/pthreadpool-disable-gcd.diff
@@ -0,0 +1,45 @@
+diff --git a/third_party/pthreadpool/CMakeLists.txt b/third_party/pthreadpool/CMakeLists.txt
+index 0db3264..1ba91c4 100644
+--- a/third_party/pthreadpool/CMakeLists.txt
++++ b/third_party/pthreadpool/CMakeLists.txt
+@@ -74,9 +74,7 @@ IF(EMSCRIPTEN)
+   LIST(APPEND PTHREADPOOL_SRCS src/shim.c)
+ ELSE()
+   LIST(APPEND PTHREADPOOL_SRCS src/portable-api.c src/memory.c)
+-  IF(APPLE AND (PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "default" OR PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "gcd"))
+-    LIST(APPEND PTHREADPOOL_SRCS src/gcd.c)
+-  ELSEIF(CMAKE_SYSTEM_NAME MATCHES "^(Windows|CYGWIN|MSYS)$" AND (PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "default" OR PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "event"))
++  IF(CMAKE_SYSTEM_NAME MATCHES "^(Windows|CYGWIN|MSYS)$" AND (PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "default" OR PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "event"))
+     LIST(APPEND PTHREADPOOL_SRCS src/windows.c)
+   ELSE()
+     LIST(APPEND PTHREADPOOL_SRCS src/pthreads.c)
+@@ -111,10 +109,6 @@ ELSEIF(PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "futex")
+   TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_FUTEX=1)
+   TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_GCD=0)
+   TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_EVENT=0)
+-ELSEIF(PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "gcd")
+-  TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_FUTEX=0)
+-  TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_GCD=1)
+-  TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_EVENT=0)
+ ELSEIF(PTHREADPOOL_SYNC_PRIMITIVE STREQUAL "event")
+   TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_FUTEX=0)
+   TARGET_COMPILE_DEFINITIONS(pthreadpool PRIVATE PTHREADPOOL_USE_GCD=0)
+diff --git a/third_party/pthreadpool/src/threadpool-common.h b/third_party/pthreadpool/src/threadpool-common.h
+index ca84744..244d0ca 100644
+--- a/third_party/pthreadpool/src/threadpool-common.h
++++ b/third_party/pthreadpool/src/threadpool-common.h
+@@ -14,14 +14,6 @@
+ 	#endif
+ #endif
+ 
+-#ifndef PTHREADPOOL_USE_GCD
+-	#if defined(__APPLE__)
+-		#define PTHREADPOOL_USE_GCD 1
+-	#else
+-		#define PTHREADPOOL_USE_GCD 0
+-	#endif
+-#endif
+-
+ #ifndef PTHREADPOOL_USE_EVENT
+ 	#if defined(_WIN32) || defined(__CYGWIN__)
+ 		#define PTHREADPOOL_USE_EVENT 1
diff --git a/nixpkgs/pkgs/development/python-modules/pytrends/default.nix b/nixpkgs/pkgs/development/python-modules/pytrends/default.nix
index 0b0bad801e12..8317c5ea0182 100644
--- a/nixpkgs/pkgs/development/python-modules/pytrends/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytrends/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , requests
 , lxml
 , pandas
@@ -9,6 +10,7 @@
 buildPythonPackage rec {
   pname = "pytrends";
   version = "4.7.3";
+  disabled = isPy27; # python2 pandas is too old
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/development/python-modules/pytz/default.nix b/nixpkgs/pkgs/development/python-modules/pytz/default.nix
index e7ce3b62b5b8..8680a4f8e1d4 100644
--- a/nixpkgs/pkgs/development/python-modules/pytz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytz/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytz";
-  version = "2019.3";
+  version = "2020.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b02c06db6cf09c12dd25137e563b31700d3b80fcc4ad23abb7a315f2789819be";
+    sha256 = "c35965d010ce31b23eeb663ed3cc8c906275d6be1a34393a1d73a41febf4a048";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/pytzdata/default.nix b/nixpkgs/pkgs/development/python-modules/pytzdata/default.nix
index a4df0bd71e6a..5adcbd0d2368 100644
--- a/nixpkgs/pkgs/development/python-modules/pytzdata/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pytzdata/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "pytzdata";
-  version = "2019.3";
+  version = "2020.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "fac06f7cdfa903188dc4848c655e4adaee67ee0f2fe08e7daf815cf2a761ee5e";
+    sha256 = "3efa13b335a00a8de1d345ae41ec78dd11c9f8807f522d39850f2dd828681540";
   };
 
   # No tests
diff --git a/nixpkgs/pkgs/development/python-modules/pyuavcan/default.nix b/nixpkgs/pkgs/development/python-modules/pyuavcan/default.nix
new file mode 100644
index 000000000000..ff01ea90e227
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyuavcan/default.nix
@@ -0,0 +1,50 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, numpy, nunavut
+, pyserial , pytest, ruamel_yaml}:
+
+ buildPythonPackage rec {
+  pname = "pyuavcan";
+  version = "1.1.0.dev1";
+  disabled = pythonOlder "3.7"; # only python>=3.7 is supported
+
+  src = fetchFromGitHub {
+    owner = "UAVCAN";
+    repo = pname;
+    rev = version;
+    sha256 = "0fmbmdnnh679zkllv5m6pkrasg7m9vjwabqnmz5m7flrgdh6h4qa";
+  };
+
+  propagatedBuildInputs = [
+    numpy
+    nunavut
+    pyserial
+    pytest
+    ruamel_yaml
+  ];
+
+  # allow for writable directory for darwin
+  preBuild = ''
+    export HOME=$TMPDIR
+    export PYTHONASYNCIODEBUG=1
+  '';
+
+  # tests fail ATM.
+  doCheck = false;
+
+  # check at least that import works, as tests fail
+  pythonImportsCheck = [
+    "pyuavcan"
+  ];
+
+  meta = with lib; {
+    description = "A full-featured implementation of the UAVCAN protocol stack";
+    longDescription = ''
+      It is intended for non-embedded, user-facing applications such as GUI
+      software, diagnostic tools, automation scripts, prototypes, and various
+      R&D cases.  PyUAVCAN consists of a Python library (package) and a simple
+      CLI tool for basic diagnostics and shell script automation.
+    '';
+    homepage = "https://pyuavcan.readthedocs.io";
+    maintainers = with maintainers; [ wucke13 ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyudev/default.nix b/nixpkgs/pkgs/development/python-modules/pyudev/default.nix
index c0a401a1b2a2..aabf9cd5de52 100644
--- a/nixpkgs/pkgs/development/python-modules/pyudev/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyudev/default.nix
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace src/pyudev/_ctypeslib/utils.py \
-      --replace "find_library(name)" "'${systemd.lib}/lib/libudev.so'"
+      --replace "find_library(name)" "'${lib.getLib systemd}/lib/libudev.so'"
     '';
 
   checkInputs = [ pytest mock hypothesis docutils ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyunifi/default.nix b/nixpkgs/pkgs/development/python-modules/pyunifi/default.nix
index ea9cedeeae19..ed2dd4cc2564 100644
--- a/nixpkgs/pkgs/development/python-modules/pyunifi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyunifi/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "pyunifi";
-  version = "2.19.0";
+  version = "2.20.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f022eb2135b88a9d391f4553fac1bf90f3808d660fd0058203f6f9e57214626b";
+    sha256 = "b52d1b0d87365fcfed8572b5dbd8d675bffece4ab3484bf083863f278c727d3d";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyvcd/default.nix b/nixpkgs/pkgs/development/python-modules/pyvcd/default.nix
index ae41d1965430..11fe52d553a9 100644
--- a/nixpkgs/pkgs/development/python-modules/pyvcd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyvcd/default.nix
@@ -1,18 +1,20 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , setuptools_scm
 , six
 , pytest
 }:
 
 buildPythonPackage rec {
-  version = "0.1.7";
+  version = "0.2.3";
   pname = "pyvcd";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1ixpdl0qiads81h8s9h9r9z0cyc9dlmvi01nfjggxixvbb17305y";
+    sha256 = "c0fd7321143e821033f59dd41fc6b0350d1533ddccd4c8fc1d1f76e21cd667de";
   };
 
   buildInputs = [ setuptools_scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyvcf/default.nix b/nixpkgs/pkgs/development/python-modules/pyvcf/default.nix
index 26d9d650d570..7c513617754f 100644
--- a/nixpkgs/pkgs/development/python-modules/pyvcf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyvcf/default.nix
@@ -23,9 +23,9 @@ buildPythonPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ scalavision ];
     longDescription = ''
-      The intent of this module is to mimic the csv module in the Python stdlib, 
-      as opposed to more flexible serialization formats like JSON or YAML. 
-      vcf will attempt to parse the content of each record based on the data 
+      The intent of this module is to mimic the csv module in the Python stdlib,
+      as opposed to more flexible serialization formats like JSON or YAML.
+      vcf will attempt to parse the content of each record based on the data
       types specified in the meta-information lines
     '';
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pyviz-comms/default.nix b/nixpkgs/pkgs/development/python-modules/pyviz-comms/default.nix
index 4bb0bce52eb0..260311a51ad6 100644
--- a/nixpkgs/pkgs/development/python-modules/pyviz-comms/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyviz-comms/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pyviz_comms";
-  version = "0.7.4";
+  version = "0.7.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "092nl8pq1jqdylj0xyqwgi5qxvhy6qj2nx2lwwfkbnixlg6g8bbi";
+    sha256 = "cd9649a9ea9dfcb9b34d78f9a64e1870aa8b6b94de546e2c99c6bb53d64ab5d1";
   };
 
   propagatedBuildInputs = [ param ];
diff --git a/nixpkgs/pkgs/development/python-modules/pywbem/default.nix b/nixpkgs/pkgs/development/python-modules/pywbem/default.nix
index 82370faf7ef2..345908031ccf 100644
--- a/nixpkgs/pkgs/development/python-modules/pywbem/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywbem/default.nix
@@ -5,14 +5,14 @@
 
 buildPythonPackage rec {
   pname = "pywbem";
-  version = "0.15.0";
+  version = "1.0.2";
 
   # Support added in master https://github.com/pywbem/pywbem/commit/b2f2f1a151a30355bbc6652dca69a7b30bfe941e awaiting release
   disabled = isPy37;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6f4304518b2ba89a97bd4f5f0decc8ad382b38a9303032ae17a1a601d95d24b8";
+    sha256 = "66d8ec82d30f2b95d8b4bd51659429066c2879d3f46292561f5fdbc7fed10f3d";
   };
 
   propagatedBuildInputs = [
@@ -39,7 +39,7 @@ buildPythonPackage rec {
 
     # Wants `wbemcli` in PATH
     rm testsuite/test_wbemcli.py
-    
+
     # Disables tests that use testfixtures which is currently broken by nonbuilding zope_component
     rm testsuite/{test_logging,test_recorder,test_wbemconnection_mock}.*
   '';
diff --git a/nixpkgs/pkgs/development/python-modules/pywebpush/default.nix b/nixpkgs/pkgs/development/python-modules/pywebpush/default.nix
index bf8a23f3baae..5bb8989506f2 100644
--- a/nixpkgs/pkgs/development/python-modules/pywebpush/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywebpush/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "pywebpush";
-  version = "1.10.2";
+  version = "1.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "61e6b92ee23ea3f7afbb427508e51c789a0c10cbc962fab9de582ad48b5792e4";
+    sha256 = "596c74020f9cbabc99f7964127ab0bb6cc045fcfe781b7c73cffb3ea45947820";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/pywebview/default.nix b/nixpkgs/pkgs/development/python-modules/pywebview/default.nix
index f12d943aad7c..545fb2367322 100644
--- a/nixpkgs/pkgs/development/python-modules/pywebview/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pywebview/default.nix
@@ -1,23 +1,32 @@
-{ lib, buildPythonPackage, fetchFromGitHub }:
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
+, importlib-resources, pytest, xvfb_run }:
 
 buildPythonPackage rec {
   pname = "pywebview";
-  version = "3.2";
+  version = "3.3.1";
+  disabled = pythonOlder "3.5";
 
   src = fetchFromGitHub {
     owner = "r0x0r";
     repo = "pywebview";
     rev = version;
-    sha256 = "0anwm6s0pp7xmgylr4m52v7lw825sdby7fajcl929l099n757gq7";
+    sha256 = "015z7n0hdgkzn0p7aw1xsv6lwc260p8q67jx0zyd1zghnwyj8k79";
   };
 
-  # disabled due to error in loading unittest
-  # don't know how to make test from: None
-  doCheck = false;
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.7") [ importlib-resources ];
+
+  checkInputs = [ pytest xvfb_run ];
+
+  checkPhase = ''
+    pushd tests
+    patchShebangs run.sh
+    xvfb-run -s '-screen 0 800x600x24' ./run.sh
+    popd
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/r0x0r/pywebview";
-    description = "Lightweight cross-platform wrapper around a webview.";
+    description = "Lightweight cross-platform wrapper around a webview";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jojosch ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/pyx/default.nix b/nixpkgs/pkgs/development/python-modules/pyx/default.nix
index 8b5e3633e25c..339fa9029b70 100644
--- a/nixpkgs/pkgs/development/python-modules/pyx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyx/default.nix
@@ -7,14 +7,14 @@
 buildPythonPackage rec {
   pname = "pyx";
   version = "0.15";
+  disabled = !isPy3k;
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "0fc3b00c5e7fb6f4aefbf63b95f624297dde47700a82b8b5ad6ebb346b5e4977";
+    pname = "PyX";
+    inherit version;
+    sha256 = "0xs9brmk9fvfmnsvi0haf13xwz994kv9afznzfpg9dkzbq6b1hqg";
   };
 
-  disabled = !isPy3k;
-
   # No tests in archive
   doCheck = false;
 
@@ -23,5 +23,4 @@ buildPythonPackage rec {
     homepage = "http://pyx.sourceforge.net/";
     license = with licenses; [ gpl2 ];
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/pyxdg/default.nix b/nixpkgs/pkgs/development/python-modules/pyxdg/default.nix
index 65cb4389583c..48c951216820 100644
--- a/nixpkgs/pkgs/development/python-modules/pyxdg/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyxdg/default.nix
@@ -16,8 +16,8 @@ buildPythonPackage rec {
   # error: invalid command 'test'
   doCheck = false;
 
-  patches = [ 
-    # see: https://gitlab.freedesktop.org/xdg/pyxdg/-/merge_requests/5 
+  patches = [
+    # see: https://gitlab.freedesktop.org/xdg/pyxdg/-/merge_requests/5
     (fetchpatch {
       url = "https://gitlab.freedesktop.org/xdg/pyxdg/-/commit/78405aaa34463db2c6f33ca28ae2293dd3bb1e91.patch";
       sha256 = "17cjax546rkqv5kvwczjqjdd6vmlvcxjanz0296dlfq23j2wbx63";
diff --git a/nixpkgs/pkgs/development/python-modules/pyxl3/default.nix b/nixpkgs/pkgs/development/python-modules/pyxl3/default.nix
index 2fa5ef766699..8cdfe6436e35 100644
--- a/nixpkgs/pkgs/development/python-modules/pyxl3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyxl3/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "pyxl3";
-  version = "1.3";
+  version = "1.4";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "23831c6d60b2ce3fbb39966f6fb21a5e053d6ce0bd08b00bb50fa388631b69ee";
+    sha256 = "ad4cc56bf4b35def33783e6d4783882702111fe8f9a781c63228e2114067c065";
   };
 
   checkInputs = [ unittest2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/pyxnat/default.nix b/nixpkgs/pkgs/development/python-modules/pyxnat/default.nix
new file mode 100644
index 000000000000..2c2557537228
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyxnat/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, nose
+, lxml
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "pyxnat";
+  version = "1.3";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "113d13cs5ab7wy4vmyqyh8isjhlgfvan7y2g8n25vcpn3j4j00h0";
+  };
+
+  propagatedBuildInputs = [ lxml requests ];
+
+  checkInputs = [ nose ];
+  checkPhase = "nosetests pyxnat/tests";
+  doCheck = false;  # requires a docker container running an XNAT server
+
+  pythonImportsCheck = [ "pyxnat" ];
+
+  meta = with lib; {
+    homepage = "https://pyxnat.github.io/pyxnat";
+    description = "Python API to XNAT";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/pyyaml/default.nix b/nixpkgs/pkgs/development/python-modules/pyyaml/default.nix
index 4d1d16b0f123..95ceeab3a04b 100644
--- a/nixpkgs/pkgs/development/python-modules/pyyaml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyyaml/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "PyYAML";
-  version = "5.2";
+  version = "5.3.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c0ee8eca2c582d29c3c2ec6e2c4f703d1b7f1fb10bc72317355a746057e7346c";
+    sha256 = "0pb4zvkfxfijkpgd1b86xjsqql97ssf1knbd1v53wkg1qm9cgsmq";
   };
 
   # force regeneration using Cython
diff --git a/nixpkgs/pkgs/development/python-modules/pyzmq/default.nix b/nixpkgs/pkgs/development/python-modules/pyzmq/default.nix
index f1ecdf7c4f4f..f23d86eb4b73 100644
--- a/nixpkgs/pkgs/development/python-modules/pyzmq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/pyzmq/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "pyzmq";
-  version = "18.1.1";
+  version = "19.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8c69a6cbfa94da29a34f6b16193e7c15f5d3220cb772d6d17425ff3faa063a6d";
+    sha256 = "296540a065c8c21b26d63e3cea2d1d57902373b16e4256afe46422691903a438";
   };
 
   checkInputs = [  pytest tornado ];
@@ -30,7 +30,8 @@ buildPythonPackage rec {
       and not test_callable_check \
       and not test_on_recv_basic \
       and not test_on_recv_wake \
-      and not test_monitor"
+      and not test_monitor \
+      and not test_cython"
   '';
 
   # Some of the tests use localhost networking.
diff --git a/nixpkgs/pkgs/development/python-modules/qasm2image/default.nix b/nixpkgs/pkgs/development/python-modules/qasm2image/default.nix
index 9748e3e43483..962ba62f509c 100644
--- a/nixpkgs/pkgs/development/python-modules/qasm2image/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qasm2image/default.nix
@@ -48,5 +48,6 @@ buildPythonPackage {
     maintainers = with lib.maintainers; [
       pandaman
     ];
+    broken = true;  # last update Oct 2018, failed tests don't error the build, and out-of-date with latest python3Packages.qiskit
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/qds_sdk/default.nix b/nixpkgs/pkgs/development/python-modules/qds_sdk/default.nix
index 7b4cfa501ddf..56b3f36c367c 100644
--- a/nixpkgs/pkgs/development/python-modules/qds_sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qds_sdk/default.nix
@@ -11,29 +11,29 @@
 
 buildPythonPackage rec {
   pname = "qds_sdk";
-  version = "1.12.0";
+  version = "1.15.2";
 
   # pypi does not contain tests, using github sources instead
   src = fetchFromGitHub {
     owner = "qubole";
     repo = "qds-sdk-py";
     rev = "V${version}";
-    sha256 = "18xhvlcfki8llv7fw2r5yfk20zds3gr78b4klwm9mkvhlhwds9rx";
+    sha256 = "0xxg9s0y6fz7vb1kab4q93q7ryi71z8x6q9qspm6s506yr3mc67l";
   };
 
-  propagatedBuildInputs = [ 
+  propagatedBuildInputs = [
     boto
     inflection
     requests
-    six 
-    urllib3 
+    six
+    urllib3
   ];
 
   checkInputs = [ pytest mock ];
   checkPhase = ''
     py.test --disable-pytest-warnings tests
   '';
- 
+
   meta = with lib; {
     description = "A Python module that provides the tools you need to authenticate with, and use the Qubole Data Service API";
     homepage = "https://github.com/qubole/qds-sdk-py";
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix
index 7c74ddab2b16..8e73e942be92 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-aer/default.nix
@@ -6,6 +6,9 @@
 , cmake
 , cvxpy
 , cython
+, muparserx
+, ninja
+, nlohmann_json
 , numpy
 , openblas
 , pybind11
@@ -19,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-aer";
-  version = "0.5.1";
+  version = "0.6.1";
 
   disabled = pythonOlder "3.5";
 
@@ -27,18 +30,20 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-aer";
     rev = version;
-    fetchSubmodules = true; # fetch muparserx and other required libraries
-    sha256 = "0pbi8ldz8f1zm7pf2n5229g6kccriq21f24q9cb7bd4j5gdky5sk";
+    sha256 = "1fnv11diis0as8zcc57mamz0gbjd6vj7nw3arxzvwa77ja803sr4";
   };
 
   nativeBuildInputs = [
     cmake
+    ninja
     scikit-build
   ];
 
   buildInputs = [
     openblas
     spdlog
+    nlohmann_json
+    muparserx
   ];
 
   propagatedBuildInputs = [
@@ -49,18 +54,10 @@ buildPythonPackage rec {
   ];
 
   patches = [
-    (fetchpatch{
-      name = "qiskit-aer-pr-727-fix-random-unitary-test.patch";
-      url = "https://github.com/Qiskit/qiskit-aer/commit/09afb3b6b0710042ab65d88e863363f2c843dcb0.patch";
-      sha256 = "0521b7i4fpc5brqs08w381g3c655f9cbn6my1740jnk7dv5lhsv9";
-    })
+    # TODO: remove in favor of qiskit-aer PR #877 patch once accepted/stable
+    ./remove-conan-install.patch
   ];
 
-  postPatch = ''
-    # remove dependency on PyPi cmake package, which isn't in Nixpkgs
-    substituteInPlace setup.py --replace "'cmake!=3.17,!=3.17.0'" ""
-  '';
-
   dontUseCmakeConfigure = true;
 
   cmakeFlags = [
@@ -68,11 +65,6 @@ buildPythonPackage rec {
     "-DAER_THRUST_BACKEND=OMP"
   ];
 
-  # Needed to find qiskit.providers.aer modules in cython. This exists in GitHub, don't know why it isn't copied by default
-  postFixup = ''
-    touch $out/${python.sitePackages}/qiskit/__init__.pxd
-  '';
-
   # *** Testing ***
 
   pythonImportsCheck = [
@@ -103,11 +95,8 @@ buildPythonPackage rec {
     description = "High performance simulators for Qiskit";
     homepage = "https://qiskit.org/aer";
     downloadPage = "https://github.com/QISKit/qiskit-aer/releases";
+    changelog = "https://qiskit.org/documentation/release_notes.html";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
-    # Doesn't build on aarch64 (libmuparserx issue).
-    # Can fix by building muparserx from source (https://github.com/beltoforion/muparserx)
-    # or in future updates (e.g. Raspberry Pi enabled via https://github.com/Qiskit/qiskit-aer/pull/651 & https://github.com/Qiskit/qiskit-aer/pull/660)
-    platforms = platforms.x86_64;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-aer/remove-conan-install.patch b/nixpkgs/pkgs/development/python-modules/qiskit-aer/remove-conan-install.patch
new file mode 100644
index 000000000000..1c5ae87b082f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-aer/remove-conan-install.patch
@@ -0,0 +1,63 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index efeacfc..77bd6bd 100755
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -121,7 +121,11 @@ endif()
+ # Looking for external libraries
+ #
+ 
+-setup_conan()
++find_package(muparserx REQUIRED)
++find_package(nlohmann_json REQUIRED)
++find_package(spdlog REQUIRED)
++# for tests only
++find_package(catch2)
+ 
+ # If we do not set them with a space CMake fails afterwards if nothing is set for this vars!
+ set(AER_LINKER_FLAGS " ")
+@@ -269,16 +273,16 @@ endif()
+ set(AER_LIBRARIES
+ 	${AER_LIBRARIES}
+ 	${BLAS_LIBRARIES}
+-	CONAN_PKG::nlohmann_json
++	nlohmann_json
+ 	Threads::Threads
+-	CONAN_PKG::spdlog
++	spdlog
+ 	${DL_LIB}
+ 	${THRUST_DEPENDANT_LIBS})
+ 
+ set(AER_COMPILER_DEFINITIONS ${AER_COMPILER_DEFINITIONS} ${CONAN_DEFINES})
+ # Cython build is only enabled if building through scikit-build.
+ if(SKBUILD) # Terra Addon build
+-	set(AER_LIBRARIES ${AER_LIBRARIES} CONAN_PKG::muparserx)
++	set(AER_LIBRARIES ${AER_LIBRARIES} muparserx)
+ 	add_subdirectory(qiskit/providers/aer/pulse/qutip_extra_lite/cy)
+ 	add_subdirectory(qiskit/providers/aer/backends/wrappers)
+ 	add_subdirectory(src/open_pulse)
+diff --git a/setup.py b/setup.py
+index fd71e9f..1561cc4 100644
+--- a/setup.py
++++ b/setup.py
+@@ -11,12 +11,6 @@ import inspect
+ 
+ PACKAGE_NAME = os.getenv('QISKIT_AER_PACKAGE_NAME', 'qiskit-aer')
+ 
+-try:
+-    from conans import client
+-except ImportError:
+-    subprocess.call([sys.executable, '-m', 'pip', 'install', 'conan'])
+-    from conans import client
+-
+ try:
+     from skbuild import setup
+ except ImportError:
+@@ -46,8 +40,6 @@ common_requirements = [
+ 
+ setup_requirements = common_requirements + [
+     'scikit-build',
+-    'cmake!=3.17,!=3.17.0',
+-    'conan>=1.22.2'
+ ]
+ 
+ requirements = common_requirements + ['qiskit-terra>=0.12.0']
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-aqua/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-aqua/default.nix
index 8037d28f82cf..c90f9ddf2e2c 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-aqua/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-aqua/default.nix
@@ -2,8 +2,9 @@
 , pythonOlder
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 # , cplex
-, cvxopt
+, cvxpy
 , dlx
 , docplex
 , fastdtw
@@ -16,6 +17,7 @@
 , qiskit-terra
 , quandl
 , scikitlearn
+, yfinance
   # Check Inputs
 , ddt
 , pytestCheckHook
@@ -24,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-aqua";
-  version = "0.7.0";
+  version = "0.7.5";
 
   disabled = pythonOlder "3.5";
 
@@ -33,13 +35,22 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-aqua";
     rev = version;
-    sha256 = "0yykw6k1rb3f2ihcp0y9pb0695mcmy29nyqlj89qs4da0503vxvh";
+    sha256 = "19sdv7lnc4b1c86rd1dv7pjpi8cmrpzbv7nav0fb899ki8ldqdwq";
   };
 
+  # TODO: remove in next release
+  patches = [
+    (fetchpatch {
+      name = "qiskit-aqua-fix-test-issue-1214.patch";
+      url = "https://github.com/Qiskit/qiskit-aqua/commit/284a4323192ac85787b22cbe5f344996fae16f7d.patch";
+      sha256 = "0zl8hqa2fq9ng793x4dhh0ny67nnbjcd8l1cdsaaab4ca1y0xcfr";
+    })
+  ];
+
   # Optional packages: pyscf (see below NOTE) & pytorch. Can install via pip/nix if needed.
   propagatedBuildInputs = [
     # cplex
-    cvxopt
+    cvxpy
     docplex
     dlx # Python Dancing Links package
     fastdtw
@@ -51,6 +62,7 @@ buildPythonPackage rec {
     qiskit-ignis
     quandl
     scikitlearn
+    yfinance
   ];
 
   # *** NOTE ***
@@ -81,7 +93,6 @@ buildPythonPackage rec {
         "You must install it yourself via pip or add it to your environment from the Nix User Repository." \
         "', ImportWarning)\n" \
       >> qiskit/optimization/__init__.py
-
   '';
 
   postInstall = "rm -rf $out/${python.sitePackages}/docs";  # Remove docs dir b/c it can cause conflicts.
@@ -106,6 +117,10 @@ buildPythonPackage rec {
     # Disabled due to missing pyscf
     "test_validate" # test/chemistry/test_inputparser.py
 
+    # Online tests
+    "test_exchangedata"
+    "test_yahoo"
+
     # Disabling slow tests > 10 seconds
     "TestVQE"
     "TestVQC"
@@ -117,7 +132,6 @@ buildPythonPackage rec {
     "TestQGAN"
     "test_evaluate_qasm_mode"
     "test_measurement_error_mitigation_auto_refresh"
-    "test_exchangedata"
     "test_wikipedia"
     "test_shor_factoring_1__15___qasm_simulator____3__5__"
     "test_readme_sample"
@@ -127,14 +141,22 @@ buildPythonPackage rec {
     "test_shor_no_factors_1_5"
     "test_shor_no_factors_2_7"
     "test_evolve_2___suzuki___1__3_"
-    "test_delta_4"
+    "test_delta"
     "test_swaprz"
     "test_deprecated_algo_result"
+    "test_unsorted_grouping"
+    "test_ad_hoc_data"
+    "test_nft"
+    "test_oh"
+    "test_confidence_intervals_00001"
+    "test_eoh"
+    "test_qasm_5"
   ];
 
   meta = with lib; {
     description = "An extensible library of quantum computing algorithms";
     homepage = "https://github.com/QISKit/qiskit-aqua";
+    changelog = "https://qiskit.org/documentation/release_notes.html";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
index 5f8f0d94e4ff..eaf10fd60829 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-ibmq-provider";
-  version = "0.7.0";
+  version = "0.8.0";
 
   disabled = pythonOlder "3.6";
 
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = pname;
     rev = version;
-    sha256 = "1n13jjx1cx5gswwk8rpxfjqyk97cwx1n2hwsabkcbi7fksw3c5jk";
+    sha256 = "0rrpwr4a82j69j5ibl2g0nw8wbpg201cfz6f234k2v6pj500x9nl";
   };
 
   propagatedBuildInputs = [
@@ -57,7 +57,7 @@ buildPythonPackage rec {
   ];
 
   # websockets seems to be pinned b/c in v8+ it drops py3.5 support. Not an issue here (usually py3.7+, and disabled for older py3.6)
-  prePatch = ''
+  postPatch = ''
     substituteInPlace requirements.txt --replace "websockets>=7,<8" "websockets"
     substituteInPlace setup.py --replace "websockets>=7,<8" "websockets"
   '';
@@ -85,6 +85,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Qiskit provider for accessing the quantum devices and simulators at IBMQ";
     homepage = "https://github.com/Qiskit/qiskit-ibmq-provider";
+    changelog = "https://qiskit.org/documentation/release_notes.html";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-ignis/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-ignis/default.nix
index 79998a843257..d40afe43f9e7 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-ignis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-ignis/default.nix
@@ -9,14 +9,15 @@
 , scikitlearn
 , scipy
   # Check Inputs
-, ddt
 , pytestCheckHook
+, ddt
+, pyfakefs
 , qiskit-aer
 }:
 
 buildPythonPackage rec {
   pname = "qiskit-ignis";
-  version = "0.3.0";
+  version = "0.4.0";
 
   disabled = pythonOlder "3.6";
 
@@ -25,14 +26,9 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit-ignis";
     rev = version;
-    sha256 = "16h04n9hxw669nq2ii16l6h75x8afisvp3j062n4c62kcqci0x4x";
+    sha256 = "07mxhaknkp121xm6mgrpcrbj9qw6j924ra3k0s6vr8qgvfcxvh0y";
   };
 
-  # 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
@@ -46,18 +42,21 @@ buildPythonPackage rec {
   dontUseSetuptoolsCheck = true;
   preCheck = "export HOME=$TMPDIR";
   checkInputs = [
-    ddt
     pytestCheckHook
+    ddt
+    pyfakefs
     qiskit-aer
   ];
-  # Test is in test/verification/test_entanglemet.py. test fails due to out-of-date calls & bad logic with this file since qiskit-ignis#328
-  # see qiskit-ignis#386 for all issues. Should be able to re-enable in future.
-  disabledTests = [ "TestEntanglement" ];
+  disabledTests = [
+    "test_tensored_meas_cal_on_circuit" # Flaky test, occasionally returns result outside bounds
+    "test_qv_fitter"  # execution hangs, ran for several minutes
+  ];
 
   meta = with lib; {
     description = "Qiskit tools for quantum hardware verification, noise characterization, and error correction";
     homepage = "https://qiskit.org/ignis";
     downloadPage = "https://github.com/QISKit/qiskit-ignis/releases";
+    changelog = "https://qiskit.org/documentation/release_notes.html";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit-terra/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit-terra/default.nix
index 78c28a282cb9..aad0370c3d7c 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit-terra/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit-terra/default.nix
@@ -8,12 +8,11 @@
 , fastjsonschema
 , jsonschema
 , numpy
-, marshmallow
-, marshmallow-polyfield
 , networkx
 , ply
 , psutil
 , python-constraint
+, python-dateutil
 , retworkx
 , scipy
 , sympy
@@ -36,7 +35,7 @@
 
 buildPythonPackage rec {
   pname = "qiskit-terra";
-  version = "0.14.1";
+  version = "0.15.1";
 
   disabled = pythonOlder "3.5";
 
@@ -44,7 +43,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = pname;
     rev = version;
-    sha256 = "0pd7x2jrqy7q1s38ychqw9bayjn2rvi6rq7c2c0kd160rwj1l2sc";
+    sha256 = "1p7y36gj3675dmp05nwi0m9nc7h0bwyimir3ncf9wbkx3crrh99c";
   };
 
   nativeBuildInputs = [ cython ];
@@ -54,13 +53,12 @@ buildPythonPackage rec {
     fastjsonschema
     jsonschema
     numpy
-    marshmallow
-    marshmallow-polyfield
     matplotlib
     networkx
     ply
     psutil
     python-constraint
+    python-dateutil
     retworkx
     scipy
     sympy
@@ -74,10 +72,6 @@ buildPythonPackage rec {
     seaborn
   ];
 
-  postPatch = ''
-    # Fix relative imports in tests
-    touch test/python/dagcircuit/__init__.py
-  '';
 
   # *** Tests ***
   checkInputs = [
@@ -103,9 +97,9 @@ buildPythonPackage rec {
   preCheck = ''
     export PACKAGEDIR=$out/${python.sitePackages}
     echo "Moving Qiskit test files to package directory"
-    cp -r $TMP/source/test $PACKAGEDIR
-    cp -r $TMP/source/examples $PACKAGEDIR
-    cp -r $TMP/source/qiskit/schemas/examples $PACKAGEDIR/qiskit/schemas/
+    cp -r $TMP/$sourceRoot/test $PACKAGEDIR
+    cp -r $TMP/$sourceRoot/examples $PACKAGEDIR
+    cp -r $TMP/$sourceRoot/qiskit/schemas/examples $PACKAGEDIR/qiskit/schemas/
 
     # run pytest from Nix's $out path
     pushd $PACKAGEDIR
@@ -124,6 +118,7 @@ buildPythonPackage rec {
     '';
     homepage = "https://qiskit.org/terra";
     downloadPage = "https://github.com/QISKit/qiskit-terra/releases";
+    changelog = "https://qiskit.org/documentation/release_notes.html";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/qiskit/default.nix b/nixpkgs/pkgs/development/python-modules/qiskit/default.nix
index ded9c68e6fe5..46fcf4985974 100644
--- a/nixpkgs/pkgs/development/python-modules/qiskit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qiskit/default.nix
@@ -15,7 +15,7 @@
 buildPythonPackage rec {
   pname = "qiskit";
   # NOTE: This version denotes a specific set of subpackages. See https://qiskit.org/documentation/release_notes.html#version-history
-  version = "0.19.1";
+  version = "0.20.0";
 
   disabled = pythonOlder "3.5";
 
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "Qiskit";
     repo = "qiskit";
     rev = version;
-    sha256 = "0p1sahgf6qgbkvxb067mnyj6ya8nv7y57yyiiaadhjw242sjkjy5";
+    sha256 = "1r23pjnql49gczf4k4m6ir5rr95gqdxjrks60p8a93d243mxx3c9";
   };
 
   propagatedBuildInputs = [
@@ -36,14 +36,21 @@ buildPythonPackage rec {
 
   checkInputs = [ pytestCheckHook ];
   dontUseSetuptoolsCheck = true;
-  # following doesn't work b/c they are distributed across different nix sitePackages dirs. Tested with pytest though.
-  # pythonImportsCheck = [ "qiskit" "qiskit.terra" "qiskit.ignis" "qiskit.aer" "qiskit.aqua" ];
 
-  meta = {
+  pythonImportsCheck = [
+    "qiskit"
+    "qiskit.aqua"
+    "qiskit.circuit"
+    "qiskit.ignis"
+    "qiskit.providers.aer"
+  ];
+
+  meta = with lib; {
     description = "Software for developing quantum computing programs";
     homepage = "https://qiskit.org";
     downloadPage = "https://github.com/QISKit/qiskit/releases";
-    license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ drewrisinger pandaman ];
+    changelog = "https://qiskit.org/documentation/release_notes.html";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ drewrisinger pandaman ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/qreactor/default.nix b/nixpkgs/pkgs/development/python-modules/qreactor/default.nix
new file mode 100644
index 000000000000..dc2031c70287
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/qreactor/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, twisted
+, qtpy
+, pyqt5
+}:
+
+buildPythonPackage rec {
+  pname = "qreactor-unstable";
+  version = "2018-09-29";
+
+  src = fetchFromGitHub {
+    owner = "frmdstryr";
+    repo = "qt-reactor";
+    rev = "364b3f561fb0d4d3938404d869baa4db7a982bf0";
+    sha256 = "1nb5iwg0nfz86shw28a2kj5pyhd4jvvxhf73fhnfbl8scgnvjv9h";
+  };
+
+  disabled = pythonOlder "3.0";
+
+  propagatedBuildInputs = [
+    twisted qtpy
+  ];
+
+  checkInputs = [
+    pyqt5
+  ];
+
+  pythonImportsCheck = [
+    "qreactor"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/frmdstryr/qt-reactor";
+    description = "Twisted and PyQt5/qtpy eventloop integration base";
+    license = licenses.mit;
+    maintainers = with maintainers; [ raboof ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/qscintilla-qt5/default.nix b/nixpkgs/pkgs/development/python-modules/qscintilla-qt5/default.nix
index 4d63cb5f4548..2ee9c82f08db 100644
--- a/nixpkgs/pkgs/development/python-modules/qscintilla-qt5/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qscintilla-qt5/default.nix
@@ -1,7 +1,6 @@
 { lib
 , pythonPackages
 , qscintilla
-, lndir
 , qtbase
 }:
 with pythonPackages;
@@ -11,8 +10,9 @@ buildPythonPackage {
   src = qscintilla.src;
   format = "other";
 
-  nativeBuildInputs = [ lndir sip qtbase ];
-  buildInputs = [ qscintilla pyqt5 ];
+  nativeBuildInputs = [ sip qtbase ];
+  buildInputs = [ qscintilla ];
+  propagatedBuildInputs = [ pyqt5 ];
 
   postPatch = ''
     substituteInPlace Python/configure.py \
@@ -22,9 +22,9 @@ buildPythonPackage {
   '';
 
   preConfigure = ''
-    mkdir -p $out
-    lndir ${pyqt5} $out
-    rm -rf "$out/nix-support"
+    # configure.py will look for this folder
+    mkdir -p $out/share/sip/PyQt5
+
     cd Python
     substituteInPlace configure.py \
       --replace "qmake = {'CONFIG': 'qscintilla2'}" "qmake = {'CONFIG': 'qscintilla2', 'QT': 'widgets printsupport'}"
diff --git a/nixpkgs/pkgs/development/python-modules/qtconsole/default.nix b/nixpkgs/pkgs/development/python-modules/qtconsole/default.nix
index 4cadba28a8a6..a1bf4d53018d 100644
--- a/nixpkgs/pkgs/development/python-modules/qtconsole/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/qtconsole/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "qtconsole";
-  version = "4.7.4";
+  version = "4.7.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1zgm57011kpbh6388p8cqwkcgqwlmb7rc9cy3zn9rrnna48byj7x";
+    sha256 = "6c24397c19a49a5cf69582c931db4b0f6b00a78530a2bfd122936f2ebfae2fef";
   };
 
   checkInputs = [ nose ] ++ lib.optionals isPy27 [mock];
diff --git a/nixpkgs/pkgs/development/python-modules/quandl/default.nix b/nixpkgs/pkgs/development/python-modules/quandl/default.nix
index 2d78b626092d..33fc54241d9a 100644
--- a/nixpkgs/pkgs/development/python-modules/quandl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/quandl/default.nix
@@ -1,7 +1,7 @@
 {
-  lib, fetchPypi, buildPythonPackage, isPy3k,
+  lib, fetchPypi, buildPythonPackage, isPy3k, pythonOlder,
   # runtime dependencies
-  pandas, numpy, requests, inflection, python-dateutil, six, more-itertools,
+  pandas, numpy, requests, inflection, python-dateutil, six, more-itertools, importlib-metadata,
   # test suite dependencies
   nose, unittest2, flake8, httpretty, mock, jsondate, parameterized, faker, factory_boy,
   # additional runtime dependencies are required on Python 2.x
@@ -45,6 +45,8 @@ buildPythonPackage rec {
     pyOpenSSL
     ndg-httpsclient
     pyasn1
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-metadata
   ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/qutip/default.nix b/nixpkgs/pkgs/development/python-modules/qutip/default.nix
deleted file mode 100644
index 6066e1e3b844..000000000000
--- a/nixpkgs/pkgs/development/python-modules/qutip/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchurl
-, numpy
-, scipy
-, matplotlib
-, pyqt4
-, cython
-, pkgs
-, nose
-}:
-
-buildPythonPackage rec {
-  pname = "qutip";
-  version = "2.2.0";
-
-  src = fetchurl {
-    url = "https://qutip.googlecode.com/files/QuTiP-${version}.tar.gz";
-    sha256 = "a26a639d74b2754b3a1e329d91300e587e8c399d8a81d8f18a4a74c6d6f02ba3";
-  };
-
-  propagatedBuildInputs = [ numpy scipy matplotlib pyqt4 cython ];
-
-  buildInputs = [ pkgs.gcc pkgs.qt4 pkgs.blas nose ];
-
-  meta = with stdenv.lib; {
-    description = "QuTiP - Quantum Toolbox in Python";
-    longDescription = ''
-      QuTiP is open-source software for simulating the dynamics of
-      open quantum systems. The QuTiP library depends on the
-      excellent Numpy and Scipy numerical packages. In addition,
-      graphical output is provided by Matplotlib. QuTiP aims to
-      provide user-friendly and efficient numerical simulations of a
-      wide variety of Hamiltonians, including those with arbitrary
-      time-dependence, commonly found in a wide range of physics
-      applications such as quantum optics, trapped ions,
-      superconducting circuits, and quantum nanomechanical
-      resonators.
-    '';
-    homepage = "http://qutip.org/";
-    license = licenses.bsd0;
-    broken = true;
-  };
-
-}
diff --git a/nixpkgs/pkgs/development/python-modules/rabbitpy/default.nix b/nixpkgs/pkgs/development/python-modules/rabbitpy/default.nix
index 26f3ffd4fe6b..9844c8dca443 100644
--- a/nixpkgs/pkgs/development/python-modules/rabbitpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rabbitpy/default.nix
@@ -7,7 +7,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.0.0";
+  version = "2.0.1";
   pname = "rabbitpy";
 
   # No tests in the pypi tarball, so we directly fetch from git
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "gmr";
     repo = pname;
     rev = version;
-    sha256 = "0fd80zlr4p2sh77rxyyfi9l0h2zqi2csgadr0rhnpgpqsy10qck6";
+    sha256 = "0m5z3i3d5adrz1wh6y35xjlls3cq6p4y9p1mzghw3k7hdvg26cck";
   };
 
   propagatedBuildInputs = [ pamqp ];
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   postPatch = ''
     # See: https://github.com/gmr/rabbitpy/issues/118
     substituteInPlace setup.py \
-      --replace 'pamqp>=1.6.1,<2.0' 'pamqp'
+      --replace 'pamqp>=2,<3' 'pamqp'
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/radish-bdd/default.nix b/nixpkgs/pkgs/development/python-modules/radish-bdd/default.nix
new file mode 100644
index 000000000000..b2d22346dd74
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/radish-bdd/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, click
+, colorful
+, docopt
+, fetchFromGitHub
+, freezegun
+, humanize
+, lark-parser
+, parse-type
+, pysingleton
+, pytestCheckHook
+, pyyaml
+, tag-expressions
+, lxml
+, pytest-mock
+}:
+
+buildPythonPackage rec {
+  pname = "radish-bdd";
+  version = "0.13.2";
+
+  # Pypi package does not have necessary test fixtures.
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = "radish";
+    rev = "v${version}";
+    sha256 = "1k7l0j8w221pa6k990x4rfm7km4asx5zy4zpzvh029lb9nw2pp8b";
+  };
+
+  propagatedBuildInputs = [
+    lark-parser
+    click
+    colorful
+    tag-expressions
+    parse-type
+    humanize
+    pyyaml
+    docopt
+    pysingleton
+  ];
+
+  checkInputs = [ freezegun lxml pytestCheckHook pytest-mock ];
+  disabledTests = [ "test_main_cli_calls" ];
+
+  meta = with lib; {
+    description = "Behaviour-Driven-Development tool for python";
+    homepage = "http://radish-bdd.io";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/rasterio/default.nix b/nixpkgs/pkgs/development/python-modules/rasterio/default.nix
index f5e418d925ad..236970a5d343 100644
--- a/nixpkgs/pkgs/development/python-modules/rasterio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rasterio/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "rasterio";
-  version = "1.1.4";
+  version = "1.1.5";
 
   # Pypi doesn't ship the tests, so we fetch directly from GitHub
   src = fetchFromGitHub {
     owner = "mapbox";
     repo = "rasterio";
     rev = version;
-    sha256 = "1a1ik66b7n6h9gxlr5yb16hhf5h9117av2ggykpfaw699xxhnz30";
+    sha256 = "168b6hmx026jsvhnq6s5k0qfhzda02mmx1alax6wqk16mk63mqcz";
   };
 
   checkInputs = [ boto3 pytest pytestcov packaging hypothesis ] ++ lib.optional (!isPy3k) mock;
diff --git a/nixpkgs/pkgs/development/python-modules/rdflib-jsonld/default.nix b/nixpkgs/pkgs/development/python-modules/rdflib-jsonld/default.nix
new file mode 100644
index 000000000000..6e038dd33433
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/rdflib-jsonld/default.nix
@@ -0,0 +1,21 @@
+{ buildPythonPackage, fetchPypi, lib, rdflib, nose }:
+
+buildPythonPackage rec {
+  pname = "rdflib-jsonld";
+  version = "0.5.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4f7d55326405071c7bce9acf5484643bcb984eadb84a6503053367da207105ed";
+  };
+
+  nativeBuildInputs = [ nose ];
+  propagatedBuildInputs = [ rdflib ];
+
+  meta = with lib; {
+    homepage = "https://github.com/RDFLib/rdflib-jsonld";
+    license = licenses.bsdOriginal;
+    description = "rdflib extension adding JSON-LD parser and serializer";
+    maintainers = [ maintainers.koslambrou ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/readme_renderer/default.nix b/nixpkgs/pkgs/development/python-modules/readme_renderer/default.nix
index 8d36df3d980a..9ffb986b9f5a 100644
--- a/nixpkgs/pkgs/development/python-modules/readme_renderer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/readme_renderer/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "readme_renderer";
-  version = "24.0";
+  version = "26.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0br0562lnvj339f1nwz4nfl4ay49rw05xkqacigzf9wz4mdza5mv";
+    sha256 = "cbe9db71defedd2428a1589cdc545f9bd98e59297449f69d721ef8f1cfced68d";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix b/nixpkgs/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
index 68ccf676f292..1a97320dc36a 100644
--- a/nixpkgs/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "readthedocs-sphinx-ext";
-  version = "1.0.4";
+  version = "2.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "33dbb135373d539233f7fbdb5e8dcfa07d41254300ee23719eb9caa8c68a40ae";
+    sha256 = "1d8343982cae238da82c809dcbd82d53f9560b50e17b1dd727123f576385139d";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/recommonmark/default.nix b/nixpkgs/pkgs/development/python-modules/recommonmark/default.nix
index 26ba8a68d87a..8ad1e6f7dfa8 100644
--- a/nixpkgs/pkgs/development/python-modules/recommonmark/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/recommonmark/default.nix
@@ -5,6 +5,7 @@
 , CommonMark
 , docutils
 , sphinx
+, isPy3k
 }:
 
 buildPythonPackage rec {
@@ -30,6 +31,9 @@ buildPythonPackage rec {
     "test_integration"
   ];
 
+  doCheck = !isPy3k; # Not yet compatible with latest Sphinx.
+  pythonImportsCheck = [ "recommonmark" ];
+
   meta = {
     description = "A docutils-compatibility bridge to CommonMark";
     homepage = "https://github.com/rtfd/recommonmark";
diff --git a/nixpkgs/pkgs/development/python-modules/redis/default.nix b/nixpkgs/pkgs/development/python-modules/redis/default.nix
index 2da7470a8387..35109e836fa4 100644
--- a/nixpkgs/pkgs/development/python-modules/redis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/redis/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "redis";
-  version = "3.3.11";
+  version = "3.5.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8d0fc278d3f5e1249967cba2eb4a5632d19e45ce5c09442b8422d15ee2c22cc2";
+    sha256 = "0e7e0cfca8660dea8b7d5cd8c4f6c5e29e11f31158c0b0ae91a397f00e5a05a2";
   };
 
   # tests require a running redis
diff --git a/nixpkgs/pkgs/development/python-modules/rednose/default.nix b/nixpkgs/pkgs/development/python-modules/rednose/default.nix
index 8c3c98bf6301..948fe39dae7d 100644
--- a/nixpkgs/pkgs/development/python-modules/rednose/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rednose/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, buildPythonPackage, fetchPypi, isPy27, nose, six, colorama, termstyle }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy27, pythonAtLeast
+, nose, six, colorama, termstyle }:
 
 buildPythonPackage rec {
   pname = "rednose";
@@ -15,7 +16,8 @@ buildPythonPackage rec {
 
   # Do not test on Python 2 because the tests suite gets stuck
   # https://github.com/NixOS/nixpkgs/issues/60786
-  doCheck = !(isPy27);
+  # Also macOS tests are broken on python38
+  doCheck = !(isPy27 || (stdenv.isDarwin && pythonAtLeast "3.8"));
 
   checkInputs = [ six ];
   propagatedBuildInputs = [ nose colorama termstyle ];
diff --git a/nixpkgs/pkgs/development/python-modules/regex/default.nix b/nixpkgs/pkgs/development/python-modules/regex/default.nix
index a9456ac963c7..19cb7bd232bf 100644
--- a/nixpkgs/pkgs/development/python-modules/regex/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/regex/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "regex";
-  version = "2019.12.20";
+  version = "2020.7.14";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "106e25a841921d8259dcef2a42786caae35bc750fb996f830065b3dfaa67b77e";
+    sha256 = "3a3af27a8d23143c49a3420efe5b3f8cf1a48c6fc8bc6856b03f638abc1833bb";
   };
 
   postCheck = ''
diff --git a/nixpkgs/pkgs/development/python-modules/relatorio/default.nix b/nixpkgs/pkgs/development/python-modules/relatorio/default.nix
index a6da936999e2..b723cd0b1858 100644
--- a/nixpkgs/pkgs/development/python-modules/relatorio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/relatorio/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "relatorio";
-  version = "0.9.1";
+  version = "0.9.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0an1yiy4pxfazrbaw4sm8ybhxqn46yzsakkl9qjklafn1j69lnza";
+    sha256 = "0753e78b235b1e8da275509351257a861cf2cf9fafe1b414f8c1deb858a4f94e";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/reportlab/default.nix b/nixpkgs/pkgs/development/python-modules/reportlab/default.nix
index 9cd3d131e906..cbd3f54c547b 100644
--- a/nixpkgs/pkgs/development/python-modules/reportlab/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/reportlab/default.nix
@@ -11,11 +11,11 @@ let
   ft = freetype.overrideAttrs (oldArgs: { dontDisableStatic = true; });
 in buildPythonPackage rec {
   pname = "reportlab";
-  version = "3.5.42";
+  version = "3.5.48";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9c21f202697a6cea57b9d716288fc919d99cbabeb30222eebfc7ff77eac32744";
+    sha256 = "0bfe3fe6e1bd1d922f83683eae2ba1d2d29de94e25fb115eacca9530b4b02f76";
   };
 
   checkInputs = [ glibcLocales ];
@@ -30,6 +30,7 @@ in buildPythonPackage rec {
 
     # Remove the tests that require Vera fonts installed
     rm tests/test_graphics_render.py
+    rm tests/test_graphics_charts.py
   '';
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/repoze_who/default.nix b/nixpkgs/pkgs/development/python-modules/repoze_who/default.nix
index 20001ff7ef88..7f4a89f3d24e 100644
--- a/nixpkgs/pkgs/development/python-modules/repoze_who/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/repoze_who/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "repoze.who";
-  version = "2.3";
+  version = "2.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b95dadc1242acc55950115a629cfb1352669774b46d22def51400ca683efea28";
+    sha256 = "cf97450de3c8eb5c03b4037be75b018db91befab1094204e452a0b1c0f7a94a6";
   };
 
   propagatedBuildInputs = [ zope_interface webob ];
diff --git a/nixpkgs/pkgs/development/python-modules/reproject/default.nix b/nixpkgs/pkgs/development/python-modules/reproject/default.nix
index 43fd7fe67de9..ccc76734461e 100644
--- a/nixpkgs/pkgs/development/python-modules/reproject/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/reproject/default.nix
@@ -6,30 +6,26 @@
 , astropy
 , astropy-healpix
 , astropy-helpers
+, extension-helpers
 , scipy
 , pytest
 , pytest-astropy
+, setuptools_scm
 , cython
 }:
 
 buildPythonPackage rec {
   pname = "reproject";
-  version = "0.6";
+  version = "0.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "484fde86d70d972d703038f138d7c2966ddf51171a6e79bd84e82ea270e27af3";
+    sha256 = "1jsc3ad518vyys5987fr1achq8qvnz8rm80zp5an9qxlwr4zmh4m";
   };
 
   propagatedBuildInputs = [ numpy astropy astropy-healpix astropy-helpers scipy ];
 
-  nativeBuildInputs = [ astropy-helpers cython ];
-
-  # Fix tests
-  patches = [ (fetchpatch {
-    url = "https://github.com/astropy/reproject/pull/218/commits/4661e075137424813ed77f1ebcbc251fee1b8467.patch";
-    sha256 = "13g3h824pqn2lgypzg1b87vkd44y7m302lhw3kh4rfww1dkzhm9v";
-  }) ];
+  nativeBuildInputs = [ astropy-helpers cython extension-helpers setuptools_scm ];
 
   # Disable automatic update of the astropy-helper module
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/requests-aws4auth/default.nix b/nixpkgs/pkgs/development/python-modules/requests-aws4auth/default.nix
index 2cbbee3c9c40..f954a340b7fa 100644
--- a/nixpkgs/pkgs/development/python-modules/requests-aws4auth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requests-aws4auth/default.nix
@@ -1,23 +1,20 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, requests }:
+{ lib, buildPythonPackage, fetchPypi, python, requests }:
 with lib;
 buildPythonPackage rec {
   pname = "requests-aws4auth";
-  version = "0.9";
+  version = "1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0g52a1pm53aqkc9qb5q1m918c1qy6q47c1qz63p5ilynfbs3m5y9";
+    sha256 = "2950f6ff686b5a452a269076d990e4821d959b61cfac319c3d3c6daaa5db55ce";
   };
 
-  postPatch = optionalString isPy3k ''
-    sed "s/path_encoding_style/'path_encoding_style'/" \
-      -i requests_aws4auth/service_parameters.py
-  '';
-
   propagatedBuildInputs = [ requests ];
 
-  # The test fail on Python >= 3 because of module import errors.
-  doCheck = !isPy3k;
+  checkPhase = ''
+    cd requests_aws4auth
+    ${python.interpreter} test/requests_aws4auth_test.py
+  '';
 
   meta = {
     description = "Amazon Web Services version 4 authentication for the Python Requests library.";
diff --git a/nixpkgs/pkgs/development/python-modules/requests-file/default.nix b/nixpkgs/pkgs/development/python-modules/requests-file/default.nix
index 6c94144ef154..374627a1bb9a 100644
--- a/nixpkgs/pkgs/development/python-modules/requests-file/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requests-file/default.nix
@@ -1,16 +1,18 @@
-{ lib, fetchPypi, buildPythonPackage, requests, six }:
+{ lib, fetchPypi, buildPythonPackage, pytestCheckHook, requests, six }:
 
 buildPythonPackage rec {
   pname   = "requests-file";
-  version = "1.4.3";
+  version = "1.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1yp2jaxg3v86pia0q512dg3hz6s9y5vzdivsgrba1kds05ial14g";
+    sha256 = "07d74208d3389d01c38ab89ef403af0cfec63957d53a0081d8eca738d0247d8e";
   };
 
   propagatedBuildInputs = [ requests six ];
 
+  checkInputs = [ pytestCheckHook ];
+
   meta = {
     homepage = "https://github.com/dashea/requests-file";
     description = "Transport adapter for fetching file:// URLs with the requests python library";
diff --git a/nixpkgs/pkgs/development/python-modules/requests-hawk/default.nix b/nixpkgs/pkgs/development/python-modules/requests-hawk/default.nix
new file mode 100644
index 000000000000..9641ee9d12ce
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/requests-hawk/default.nix
@@ -0,0 +1,20 @@
+{ lib, buildPythonPackage, fetchPypi, python, mohawk, requests }:
+
+buildPythonPackage rec {
+  pname = "requests-hawk";
+  version = "1.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1qcga289yr6qlkmc6fjk0ia6l5cg0galklpdzpslf1y8ky9zb7rl";
+  };
+
+  propagatedBuildInputs = [ mohawk requests ];
+
+  meta = with lib; {
+    description = "Hawk authentication strategy for the requests python library.";
+    homepage = "https://github.com/sam-washington/requests-hawk";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ austinbutler ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/requests-mock/default.nix b/nixpkgs/pkgs/development/python-modules/requests-mock/default.nix
index 9728639e0ef7..5e85ba7d38bd 100644
--- a/nixpkgs/pkgs/development/python-modules/requests-mock/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requests-mock/default.nix
@@ -5,15 +5,16 @@
 , six
 , testrepository
 , testtools
+, pytest
 }:
 
 buildPythonPackage rec {
   pname = "requests-mock";
-  version = "1.7.0";
+  version = "1.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ij6ir5cy0gpy5xw4sykxz320ndi26np6flx9yg9mimkv0nl1lw8";
+    sha256 = "e68f46844e4cee9d447150343c9ae875f99fa8037c6dcf5f15bf1fe9ab43d226";
   };
 
   patchPhase = ''
@@ -22,7 +23,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests six ];
 
-  checkInputs = [ mock purl testrepository testtools ];
+  checkInputs = [ mock purl testrepository testtools pytest ];
 
   meta = with lib; {
     description = "Mock out responses from the requests package";
diff --git a/nixpkgs/pkgs/development/python-modules/requests/default.nix b/nixpkgs/pkgs/development/python-modules/requests/default.nix
index 9b443df4be4c..9ed590ba19ba 100644
--- a/nixpkgs/pkgs/development/python-modules/requests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/requests/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "requests";
-  version = "2.23.0";
+  version = "2.24.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rhpg0jb08v0gd7f19jjiwlcdnxpmqi1fhvw7r4s9avddi4kvx5k";
+    sha256 = "b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b";
   };
 
   nativeBuildInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/responses/default.nix b/nixpkgs/pkgs/development/python-modules/responses/default.nix
index 0bf8b47fd6d5..78daa0e24f31 100644
--- a/nixpkgs/pkgs/development/python-modules/responses/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/responses/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "responses";
-  version = "0.10.14";
+  version = "0.10.16";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1a78bc010b20a5022a2c0cb76b8ee6dc1e34d887972615ebd725ab9a166a4960";
+    sha256 = "fa125311607ab3e57d8fcc4da20587f041b4485bdfb06dd6bdf19d8b66f870c1";
   };
 
   propagatedBuildInputs = [ cookies mock requests six ];
diff --git a/nixpkgs/pkgs/development/python-modules/restview/default.nix b/nixpkgs/pkgs/development/python-modules/restview/default.nix
index 715a4cfb43fe..acce48c45d04 100644
--- a/nixpkgs/pkgs/development/python-modules/restview/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/restview/default.nix
@@ -4,6 +4,7 @@
 , fetchpatch
 , docutils
 , readme_renderer
+, packaging
 , pygments
 , mock
 }:
@@ -17,7 +18,7 @@ buildPythonPackage rec {
     sha256 = "de87c84f19526bd4a76505f6d40b51b7bb03ca43b6067c93f82f1c7237ac9e84";
   };
 
-  propagatedBuildInputs = [ docutils readme_renderer pygments ];
+  propagatedBuildInputs = [ docutils readme_renderer packaging pygments ];
   checkInputs = [ mock ];
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/rethinkdb/default.nix b/nixpkgs/pkgs/development/python-modules/rethinkdb/default.nix
index f1239b75d481..616cabc29a01 100644
--- a/nixpkgs/pkgs/development/python-modules/rethinkdb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rethinkdb/default.nix
@@ -1,6 +1,8 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, six
+, setuptools
 }:
 
 buildPythonPackage rec {
@@ -12,12 +14,15 @@ buildPythonPackage rec {
     sha256 = "945b5efdc10f468fc056bd53a4e4224ec4c2fe1a7e83ae47443bbb6e7c7a1f7d";
   };
 
+  propagatedBuildInputs = [ six setuptools ];
+
   doCheck = false;
+  pythonImportsCheck = [ "rethinkdb" ];
 
   meta = with stdenv.lib; {
     description = "Python driver library for the RethinkDB database server";
     homepage = "https://pypi.python.org/pypi/rethinkdb";
-    license = licenses.agpl3;
+    license = licenses.asl20;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/python-modules/retworkx/default.nix b/nixpkgs/pkgs/development/python-modules/retworkx/default.nix
index 531edab27467..49e4b1c2fc34 100644
--- a/nixpkgs/pkgs/development/python-modules/retworkx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/retworkx/default.nix
@@ -1,50 +1,60 @@
 { lib
-, buildPythonPackage
-, pythonOlder
-, pythonAtLeast
-, isPy37
-, isPy38
+, rustPlatform
+, python
+, fetchpatch
 , fetchFromGitHub
-, fetchPypi
+, pipInstallHook
+, maturin
+, pip
   # Check inputs
 , pytestCheckHook
+, numpy
 }:
 
-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";
+rustPlatform.buildRustPackage rec {
+  pname = "retworkx";
+  version = "0.4.0";
 
-  github-source = fetchFromGitHub {
+  src = fetchFromGitHub {
     owner = "Qiskit";
     repo = "retworkx";
-    rev = rx-version;
-    sha256 = "160w5vkzrl5rzcrdwhjq820i5lmc527m6hg0kxx0k6n2bz9qn26g";
+    rev = version;
+    sha256 = "1xqp6d39apkjvd0ad9vw81cp2iqzhpagfa4p171xqm3bwfn2imdc";
   };
-in
-buildPythonPackage rec {
-  pname = "retworkx";
-  version = rx-version;
-  format = "wheel";
 
-  disabled = pythonOlder "3.5" || pythonAtLeast "3.9"; # compiled versions only included for 3.5 <= py <= 3.8
+  cargoSha256 = "0bma0l14jv5qhcsxck7vw3ak1w3c8v84cq4hii86i4iqk523zns5";
+  cargoPatches = [
+      ( fetchpatch {
+        name = "retworkx-cargo-lock.patch";
+        url = "https://github.com/Qiskit/retworkx/commit/a02fd33d357a92dbe9530696a6d85aa59fe8a5b9.patch";
+        sha256 = "0gvxr1nqp9ll4skfks4p4d964pshal25kb1nbfzhpyipnzddizr5";
+      } )
+  ];
 
-  src = fetchPypi {
-    inherit pname version format;
-    inherit (wheel-args) python sha256;
-    abi = if pythonOlder "3.8" then "${wheel-args.python}m" else wheel-args.python;
-    platform = "manylinux2010_x86_64"; # i686, aarch64, and ppc64 also available, restricting to x86 for simplicity
-  };
+  propagatedBuildInputs = [ python ];
+
+  nativeBuildInputs = [ pipInstallHook maturin pip ];
 
-  pythonImportsCheck = [ "retworkx" ];
+  # Need to check AFTER python wheel is installed (b/c using Rust Build, not buildPythonPackage)
+  doCheck = false;
+  doInstallCheck = true;
+
+  buildPhase = ''
+    runHook preBuild
+    maturin build --release --manylinux off --strip --interpreter ${python.interpreter}
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    install -Dm644 -t dist target/wheels/*.whl
+    pipInstallPhase
+  '';
 
-  checkInputs = [ pytestCheckHook ];
+  installCheckInputs = [ pytestCheckHook numpy ];
   preCheck = ''
-    pushd $(mktemp -d)
-    cp -r ${github-source}/$sourceRoot/tests .
+    export TESTDIR=$(mktemp -d)
+    cp -r $TMP/$sourceRoot/tests $TESTDIR
+    pushd $TESTDIR
   '';
   postCheck = "popd";
 
@@ -52,8 +62,8 @@ buildPythonPackage rec {
     description = "A python graph library implemented in Rust.";
     homepage = "https://retworkx.readthedocs.io/en/latest/index.html";
     downloadPage = "https://github.com/Qiskit/retworkx/releases";
+    changelog = "https://github.com/Qiskit/retworkx/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
-    platforms = platforms.x86_64;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/rhpl/builder.sh b/nixpkgs/pkgs/development/python-modules/rhpl/builder.sh
index dc93effe802f..15e05a73f93f 100644
--- a/nixpkgs/pkgs/development/python-modules/rhpl/builder.sh
+++ b/nixpkgs/pkgs/development/python-modules/rhpl/builder.sh
@@ -8,6 +8,6 @@ incl=$(echo $python/include/python2.*)
 sed -i -e "s@/usr/include/\$(PYTHON)@$incl@" \
        -e "s@PYTHONLIBDIR = /usr/\$(LIBDIR)/\$(PYTHON)/site-packages@PYTHONLIBDIR = $(toPythonPath $out)@" Makefile.inc
 sed -i -e "s@/usr/bin/install@install@g" \
-       -e "s@\$(DESTDIR)/usr/share/locale@$out/share/locale@" po/Makefile       
+       -e "s@\$(DESTDIR)/usr/share/locale@$out/share/locale@" po/Makefile
 make PREFIX=$out
 make PREFIX=$out install
diff --git a/nixpkgs/pkgs/development/python-modules/ripser/default.nix b/nixpkgs/pkgs/development/python-modules/ripser/default.nix
index 6bb9eb71773f..9e2e76464d80 100644
--- a/nixpkgs/pkgs/development/python-modules/ripser/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ripser/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , cython
 , numpy
 , scipy
@@ -11,11 +12,12 @@
 
 buildPythonPackage rec {
   pname = "ripser";
-  version = "0.4.1";
+  version = "0.5.4";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a4015b413c24e3074f82f31771b1eb805e054b8cf444db51ce8ca5afa42cf130";
+    sha256 = "7a54750427e3f1bbb26c625075c831314760a9e5b5bcd3b797df668f020c9eb6";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/rising/default.nix b/nixpkgs/pkgs/development/python-modules/rising/default.nix
new file mode 100644
index 000000000000..eb9afc8353c7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/rising/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, isPy27
+, fetchFromGitHub
+, pytestCheckHook
+, pytestcov
+, dill
+, numpy
+, pytorch
+, threadpoolctl
+, tqdm
+}:
+
+buildPythonPackage rec {
+  pname = "rising";
+  version = "0.2.0post0";
+
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "PhoenixDL";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0fb9894ppcp18wc2dhhjizj8ja53gbv9wpql4mixxxdz8z2bn33c";
+  };
+
+  propagatedBuildInputs = [ numpy pytorch threadpoolctl tqdm ];
+  checkInputs = [ dill pytestcov pytestCheckHook ];
+
+  disabledTests = [ "test_affine" ];  # deprecated division operator '/'
+
+  meta = {
+    description = "High-performance data loading and augmentation library in PyTorch";
+    homepage = "https://rising.rtfd.io";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ bcdarwin ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/roboschool/default.nix b/nixpkgs/pkgs/development/python-modules/roboschool/default.nix
index 53b909844ac9..9387f3775beb 100644
--- a/nixpkgs/pkgs/development/python-modules/roboschool/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/roboschool/default.nix
@@ -4,7 +4,7 @@
 , python
 , fetchFromGitHub
 , fetchpatch
-, qt5
+, qtbase
 , boost
 , assimp
 , gym
@@ -33,14 +33,14 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     pkgconfig
-    qt5.qtbase # needs the `moc` tool
+    qtbase # needs the `moc` tool
     which
   ];
 
   buildInputs = [
     bullet-roboschool
     assimp
-    qt5.qtbase
+    qtbase
     boost
   ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/robotframework-requests/default.nix b/nixpkgs/pkgs/development/python-modules/robotframework-requests/default.nix
index bd6b884ed7dc..72f7aabb70ce 100644
--- a/nixpkgs/pkgs/development/python-modules/robotframework-requests/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robotframework-requests/default.nix
@@ -8,12 +8,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.6.6";
+  version = "0.7.1";
   pname = "robotframework-requests";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "01b6d02052349663b7faae5e9363877b1e5ea1f181bd52b1a29df3b03a348bcf";
+    sha256 = "501a1c7415f839d6837eedd57f2b6ed20576aab318bf14e3878a77c9b106aa45";
   };
 
   buildInputs = [ unittest2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/robotframework/default.nix b/nixpkgs/pkgs/development/python-modules/robotframework/default.nix
index a1251fa0093a..cf9f4ea86f92 100644
--- a/nixpkgs/pkgs/development/python-modules/robotframework/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robotframework/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "robotframework";
-  version = "3.1.2";
+  version = "3.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f10dd7c0c8c7962a4f80dd1e026b5db731b9391bc6e1f9ebb96d685eb1230dbc";
+    sha256 = "d693e6d06b17f48669e2a8c4cb6c1f0d56e5f1a74835d18b8ea2118da7bf2d79";
     extension = "zip";
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/robotsuite/default.nix b/nixpkgs/pkgs/development/python-modules/robotsuite/default.nix
index 75b7fac0cfc0..e9d4ddbed116 100644
--- a/nixpkgs/pkgs/development/python-modules/robotsuite/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/robotsuite/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "robotsuite";
-  version = "2.0.0";
+  version = "2.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15iw7g6gspf1ill0mzjrj71dirqfc86f1j14wphdvs2lazv8d50z";
+    sha256 = "8764e01990ac6774e0c983579bcb9cb79f44373a61ad47fbae9a1dc7eedbdd61";
   };
 
   buildInputs = [ unittest2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/rope/default.nix b/nixpkgs/pkgs/development/python-modules/rope/default.nix
index 73b5e0b8c2b5..fd7bf55ad52c 100644
--- a/nixpkgs/pkgs/development/python-modules/rope/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rope/default.nix
@@ -4,11 +4,9 @@ buildPythonPackage rec {
   pname = "rope";
   version = "0.17.0";
 
-  disabled = pythonAtLeast "3.8";  # 0.17 should support Python 3.8
-
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1qa9nqryp05ah9b4r8cy5ph31kr9cm4ak79pvzbg7p23bxqdd2k5";
+    sha256 = "658ad6705f43dcf3d6df379da9486529cf30e02d9ea14c5682aa80eb33b649e1";
   };
 
   checkInputs = [ nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/rq/default.nix b/nixpkgs/pkgs/development/python-modules/rq/default.nix
index 9f57fb486d91..66ca024b2bb5 100644
--- a/nixpkgs/pkgs/development/python-modules/rq/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rq/default.nix
@@ -1,12 +1,15 @@
-{ stdenv, fetchPypi, buildPythonPackage, click, redis }:
+{ stdenv, fetchFromGitHub, buildPythonPackage, isPy27, click, redis }:
 
 buildPythonPackage rec {
   pname = "rq";
-  version = "1.3.0";
+  version = "1.5.1";
+  disabled = isPy27;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0xr38j35iqmhx0f2l8ix34vjs9flpqv2y17k33crh7rhm6gi9ja9";
+  src = fetchFromGitHub {
+    owner = "rq";
+    repo = "rq";
+    rev = "v${version}";
+    sha256 = "0i7yyw828wdvl7ap4gb7jhm4p94502is3xxrgrdgwwp0l1rac004";
   };
 
   # test require a running redis rerver, which is something we can't do yet
diff --git a/nixpkgs/pkgs/development/python-modules/rsa/4_0.nix b/nixpkgs/pkgs/development/python-modules/rsa/4_0.nix
new file mode 100644
index 000000000000..459ca0437968
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/rsa/4_0.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, unittest2
+, pyasn1
+, mock
+, isPy3k
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "rsa";
+  version = "4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1a836406405730121ae9823e19c6e806c62bbad73f890574fff50efa4122c487";
+  };
+
+  checkInputs = [ unittest2 mock ];
+  propagatedBuildInputs = [ pyasn1 ];
+
+  preConfigure = stdenv.lib.optionalString (isPy3k && pythonOlder "3.7") ''
+    substituteInPlace setup.py --replace "open('README.md')" "open('README.md',encoding='utf-8')"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://stuvel.eu/rsa";
+    license = licenses.asl20;
+    description = "A pure-Python RSA implementation";
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/python-modules/rsa/default.nix b/nixpkgs/pkgs/development/python-modules/rsa/default.nix
index 459ca0437968..a5380709eda9 100644
--- a/nixpkgs/pkgs/development/python-modules/rsa/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rsa/default.nix
@@ -6,15 +6,16 @@
 , mock
 , isPy3k
 , pythonOlder
+, poetry
 }:
 
 buildPythonPackage rec {
   pname = "rsa";
-  version = "4.0";
+  version = "4.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1a836406405730121ae9823e19c6e806c62bbad73f890574fff50efa4122c487";
+    sha256 = "109ea5a66744dd859bf16fe904b8d8b627adafb9408753161e766a92e7d681fa";
   };
 
   checkInputs = [ unittest2 mock ];
@@ -24,6 +25,9 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "open('README.md')" "open('README.md',encoding='utf-8')"
   '';
 
+  # No tests in archive
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage = "https://stuvel.eu/rsa";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/rtmidi-python/default.nix b/nixpkgs/pkgs/development/python-modules/rtmidi-python/default.nix
new file mode 100644
index 000000000000..68927cc9ca03
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/rtmidi-python/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchPypi
+, alsaLib
+}:
+
+buildPythonPackage rec {
+  pname = "rtmidi-python";
+  version = "0.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1wpcaxfpbmsjc78g8841kpixr0a3v6zn0ak058s3mm25kcysp4m0";
+  };
+
+  buildInputs = [ alsaLib ];
+
+  # package has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "rtmidi_python"
+  ];
+
+  meta = with lib; {
+    description = "Python wrapper for RtMidi";
+    homepage = "https://github.com/superquadratic/rtmidi-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/rtmixer/default.nix b/nixpkgs/pkgs/development/python-modules/rtmixer/default.nix
new file mode 100644
index 000000000000..e1115bd81800
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/rtmixer/default.nix
@@ -0,0 +1,40 @@
+{ fetchFromGitHub
+, buildPythonPackage
+, isPy27
+, cython
+, portaudio
+, cffi
+, pa-ringbuffer
+, sounddevice
+, lib
+}:
+
+buildPythonPackage rec {
+  pname = "rtmixer";
+  version = "0.1.1";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "spatialaudio";
+    repo = "python-rtmixer";
+    rev = "${version}";
+    sha256 = "1bvgzzxiypvvb3qacbcry6761x9sk3dnx7jga7pli63f69vakg4y";
+    fetchSubmodules = true;
+  };
+
+  buildInputs = [ portaudio ];
+  nativeBuildInputs = [ cython ];
+
+  propagatedBuildInputs = [
+    cffi
+    pa-ringbuffer
+    sounddevice
+  ];
+
+  meta = {
+    description = "Reliable low-latency audio playback and recording with Python, using PortAudio via the sounddevice module";
+    homepage = "https://python-rtmixer.readthedocs.io";
+    maintainers = with lib.maintainers; [ laikq ];
+    license = lib.licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/rubymarshal/default.nix b/nixpkgs/pkgs/development/python-modules/rubymarshal/default.nix
index 4f042dcf90f7..9668a26e0944 100644
--- a/nixpkgs/pkgs/development/python-modules/rubymarshal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rubymarshal/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "rubymarshal";
-  version = "1.2.6";
+  version = "1.2.7";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0gq344jlb9wkapzpxj7jqwjlc5ccdhhspkw6rfb1d0rammq6hpf6";
+    sha256 = "94aa84fa42393f773c8215fab679bd3b72bbdb9f7931643d3672184cde9981d9";
   };
 
   propagatedBuildInputs = [ hypothesis ];
diff --git a/nixpkgs/pkgs/development/python-modules/runway-python/default.nix b/nixpkgs/pkgs/development/python-modules/runway-python/default.nix
index d2d63b2b5c4c..9c7f89585d89 100644
--- a/nixpkgs/pkgs/development/python-modules/runway-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/runway-python/default.nix
@@ -5,6 +5,7 @@
 , flask-compress
 , flask-cors
 , flask-sockets
+, imageio
 , numpy
 , scipy
 , pillow
@@ -18,14 +19,29 @@
 
 buildPythonPackage rec {
   pname = "runway-python";
-  version = "0.5.9";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1d75c44008275213034977c75bc2dc6f419e7f11d087984e3faea1e0cf6da69d";
+    sha256 = "695d78f8edeb6a7ca98d8351adb36948d56cceeffe8a84896c9fbfd349fc4cb8";
   };
 
-  propagatedBuildInputs = [ flask flask-compress flask-cors flask-sockets numpy scipy pillow gevent wget six colorcet unidecode urllib3 ];
+  propagatedBuildInputs = [
+    colorcet
+    flask
+    flask-compress
+    flask-cors
+    flask-sockets
+    gevent
+    imageio
+    numpy
+    pillow
+    scipy
+    six
+    unidecode
+    urllib3
+    wget
+  ];
 
   # tests are not packaged in the released tarball
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/rx/default.nix b/nixpkgs/pkgs/development/python-modules/rx/default.nix
index fd57a8013c1f..00808e744a29 100644
--- a/nixpkgs/pkgs/development/python-modules/rx/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/rx/default.nix
@@ -1,15 +1,16 @@
-{ lib, fetchFromGitHub, buildPythonPackage, nose }:
+{ lib, fetchFromGitHub, buildPythonPackage, pythonOlder, nose }:
 
 buildPythonPackage rec {
   pname = "rx";
-  version = "1.6.1";
+  version = "3.1.0";
+  disabled = pythonOlder "3.6";
 
   # There are no tests on the pypi source
   src = fetchFromGitHub {
     owner = "ReactiveX";
     repo = "rxpy";
-    rev = version;
-    sha256 = "14bca67a26clzcf2abz2yb8g9lfxffjs2l236dp966sp0lfbpsn5";
+    rev = "v${version}";
+    sha256 = "0rcwa8001il9p7s096b9gc5yld8cyxvrsmwh1gpc9b87j172z6ax";
   };
 
   checkInputs = [ nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/sabyenc3/default.nix b/nixpkgs/pkgs/development/python-modules/sabyenc3/default.nix
new file mode 100644
index 000000000000..aab3201047d6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sabyenc3/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchPypi, python3Packages }:
+
+python3Packages.buildPythonPackage rec {
+  pname = "sabyenc3";
+  version = "4.0.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "dfaa0bdd01752a9cfde0d349a8f4e178b04b1cf9c1bc018b287961192cd2bb90";
+  };
+
+  # tests are not included in pypi distribution
+  doCheck = false;
+
+  meta = {
+    description = "yEnc Decoding for Python 3";
+    homepage = "https://github.com/sabnzbd/sabyenc/";
+    license = lib.licenses.lgpl3;
+    maintainers = [ lib.maintainers.lovek323 ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sacremoses/default.nix b/nixpkgs/pkgs/development/python-modules/sacremoses/default.nix
index ef0fcb57dc95..3785ebcf86cf 100644
--- a/nixpkgs/pkgs/development/python-modules/sacremoses/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sacremoses/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/alvations/sacremoses";
     description = "Python port of Moses tokenizer, truecaser and normalizer";
     license = licenses.lgpl21Plus;
-    platforms = [ "x86_64-linux" ];
+    platforms = platforms.unix;
     maintainers = with maintainers; [ pashashocky ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/samsungctl/default.nix b/nixpkgs/pkgs/development/python-modules/samsungctl/default.nix
new file mode 100644
index 000000000000..d29e89db8462
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/samsungctl/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchPypi
+, websocket_client
+}:
+
+buildPythonPackage rec {
+  pname = "samsungctl";
+  version = "0.7.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ipz3fd65rqkxlb02sql0awc3vnslrwb2pfrsnpfnf8bfgxpbh9g";
+  };
+
+  propagatedBuildInputs = [
+    websocket_client
+  ];
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "samsungctl" ];
+
+  meta = with lib; {
+    description = "Remote control Samsung televisions via a TCP/IP connection";
+    homepage = "https://github.com/Ape/samsungctl";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/samsungtvws/default.nix b/nixpkgs/pkgs/development/python-modules/samsungtvws/default.nix
new file mode 100644
index 000000000000..b41935c58256
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/samsungtvws/default.nix
@@ -0,0 +1,36 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, requests
+, websocket_client
+}:
+
+buildPythonPackage rec {
+  pname = "samsungtvws";
+  version = "1.5.3";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "054rr8hiacdjfxqssnxnd3xp9hh8350zjzzjvh1199bpps4l1l6n";
+  };
+
+  patchPhase = ''
+    substituteInPlace setup.py --replace "websocket-client==" "websocket-client>="
+  '';
+
+  propagatedBuildInputs = [
+    websocket_client
+    requests
+  ];
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "samsungtvws" ];
+
+  meta = with lib; {
+    description = "Samsung Smart TV WS API wrapper";
+    homepage = "https://github.com/xchwarze/samsung-tv-ws-api";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix b/nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix
index 498e9cb34b11..4642b69f7d2e 100644
--- a/nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sanic-auth/default.nix
@@ -3,20 +3,20 @@
 buildPythonPackage rec {
   pname = "Sanic-Auth";
   version = "0.2.0";
-  
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "b7cb9e93296c035ada0aa1ebfb33f9f7b62f7774c519e374b7fe703ff73589cb";
   };
-  
+
   propagatedBuildInputs = [ sanic ];
-  
+
   checkInputs = [ pytest ];
-  
+
   checkPhase = ''
     pytest tests
   '';
-  
+
   meta = with lib; {
     description = "Simple Authentication for Sanic";
     homepage = "https://github.com/pyx/sanic-auth/";
diff --git a/nixpkgs/pkgs/development/python-modules/sanic/default.nix b/nixpkgs/pkgs/development/python-modules/sanic/default.nix
index 14eb1d9a3f37..c4f56e2d4c6d 100644
--- a/nixpkgs/pkgs/development/python-modules/sanic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sanic/default.nix
@@ -9,11 +9,9 @@
 , ujson
 , pytest
 , gunicorn
-, pytestcov
 , aiohttp
 , beautifulsoup4
 , pytest-sanic
-, pytest-sugar
 , pytest-benchmark
 
 # required just httpcore / requests-async
@@ -100,11 +98,9 @@ buildPythonPackage rec {
   checkInputs = [
     pytest
     gunicorn
-    pytestcov
     aiohttp
     beautifulsoup4
     pytest-sanic
-    pytest-sugar
     pytest-benchmark
     uvicorn
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/sapi-python-client/default.nix b/nixpkgs/pkgs/development/python-modules/sapi-python-client/default.nix
index 155950dff2ce..847acb3c9cd4 100644
--- a/nixpkgs/pkgs/development/python-modules/sapi-python-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sapi-python-client/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, git, setuptools, setuptools_scm, fetchFromGitHub, requests, boto3, buildPythonPackage, responses }: 
+{ stdenv, git, setuptools, setuptools_scm, fetchFromGitHub, requests, boto3, buildPythonPackage, responses }:
 
-buildPythonPackage rec { 
-    pname = "sapi-python-client"; 
-    version = "0.1.3"; 
+buildPythonPackage rec {
+    pname = "sapi-python-client";
+    version = "0.1.3";
 
     src = fetchFromGitHub {
         owner = "keboola";
@@ -17,15 +17,14 @@ buildPythonPackage rec {
 
     doCheck = false; # requires API token and an active keboola bucket
 
-    nativeBuildInputs = [ git setuptools_scm ]; 
+    nativeBuildInputs = [ git setuptools_scm ];
 
-    propagatedBuildInputs = [ setuptools requests boto3 responses ]; 
+    propagatedBuildInputs = [ setuptools requests boto3 responses ];
 
-    meta = with stdenv.lib; { 
-        description = "Keboola Connection Storage API client"; 
-        homepage = "https://github.com/keboola/sapi-python-client"; 
+    meta = with stdenv.lib; {
+        description = "Keboola Connection Storage API client";
+        homepage = "https://github.com/keboola/sapi-python-client";
         maintainers = with maintainers; [ mrmebelman ];
-        license = licenses.mit; 
-    }; 
+        license = licenses.mit;
+    };
 }
-
diff --git a/nixpkgs/pkgs/development/python-modules/sarge/default.nix b/nixpkgs/pkgs/development/python-modules/sarge/default.nix
index 37a72278d856..1d46e65d3490 100644
--- a/nixpkgs/pkgs/development/python-modules/sarge/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sarge/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "sarge";
-  version = "0.1.5.post0";
+  version = "0.1.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "da8cc90883f8e5ab4af0d746438f608662f5f2a35da2e858517927edefa134b0";
+    sha256 = "f48fb904e64f10ad6bef62422eaf4736acfd9b13ab64ba44822637a9dbb53265";
   };
 
   # No tests in PyPI tarball
diff --git a/nixpkgs/pkgs/development/python-modules/sasmodels/default.nix b/nixpkgs/pkgs/development/python-modules/sasmodels/default.nix
index 1715cf2b7c32..06d2d40d1802 100644
--- a/nixpkgs/pkgs/development/python-modules/sasmodels/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sasmodels/default.nix
@@ -4,13 +4,13 @@
 
 buildPythonPackage rec {
   pname = "sasmodels";
-  version = "1.0.1";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "SasView";
     repo = "sasmodels";
     rev = "v${version}";
-    sha256 = "0k4334nxf1n6gwb9m57sqcchmlssglfd116mpl72glmmdc451d5j";
+    sha256 = "1qvh7q0fkls5r8r9mrph6igcvv8x3qsslqsc5jf1n20alcs5zjrl";
   };
 
   buildInputs = [ opencl-headers ];
diff --git a/nixpkgs/pkgs/development/python-modules/scapy/default.nix b/nixpkgs/pkgs/development/python-modules/scapy/default.nix
index ec0ccc102f34..2b9eb5517a46 100644
--- a/nixpkgs/pkgs/development/python-modules/scapy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scapy/default.nix
@@ -1,6 +1,6 @@
-{ buildPythonPackage, fetchFromGitHub, lib, isPyPy, isPy3k, pythonOlder
+{ buildPythonPackage, fetchFromGitHub, lib, isPyPy
 , pycrypto, ecdsa # TODO
-, enum34, mock
+, tox, mock, coverage, can, brotli
 , withOptionalDeps ? true, tcpdump, ipython
 , withCryptography ? true, cryptography
 , withVoipSupport ? true, sox
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "scapy";
-  version = "2.4.3";
+  version = "2.4.4";
 
   disabled = isPyPy;
 
@@ -21,14 +21,11 @@ buildPythonPackage rec {
     owner = "secdev";
     repo = "scapy";
     rev = "v${version}";
-    sha256 = "08ypdzp0p3gvmz3pwi0i9q5f7hz9cq8yn6gawia49ynallwnv4zy";
+    sha256 = "1wpx7gps3g8q5ykbfcd67mxwcs416zg37b53fwfzzlc1m58vhk3p";
   };
 
-  # TODO: Temporary workaround
-  patches = [ ./fix-version.patch ];
-
   postPatch = ''
-    sed -i "s/NIXPKGS_SCAPY_VERSION/${version}/" scapy/__init__.py
+    printf "${version}" > scapy/VERSION
   '' + lib.optionalString withManufDb ''
     substituteInPlace scapy/data.py --replace "/opt/wireshark" "${wireshark}"
   '';
@@ -38,16 +35,41 @@ buildPythonPackage rec {
     ++ lib.optional withCryptography cryptography
     ++ lib.optional withVoipSupport sox
     ++ lib.optional withPlottingSupport matplotlib
-    ++ lib.optionals withGraphicsSupport [ pyx texlive.combined.scheme-minimal graphviz imagemagick ]
-    ++ lib.optional (isPy3k && pythonOlder "3.4") enum34
-    ++ lib.optional doCheck mock;
+    ++ lib.optionals withGraphicsSupport [ pyx texlive.combined.scheme-minimal graphviz imagemagick ];
 
-  # Tests fail with Python 3.6 (seems to be an upstream bug, I'll investigate)
-  doCheck = if isPy3k then false else true;
+  # Running the tests seems too complicated:
+  doCheck = false;
+  checkInputs = [ tox mock coverage can brotli ];
+  checkPhase = ''
+    patchShebangs .
+    .config/ci/test.sh
+  '';
 
   meta = with lib; {
-    description = "Powerful interactive network packet manipulation program";
+    description = "A Python-based network packet manipulation program and library";
+    longDescription = ''
+      Scapy is a powerful Python-based interactive packet manipulation program
+      and library.
+
+      It is able to forge or decode packets of a wide number of protocols, send
+      them on the wire, capture them, store or read them using pcap files,
+      match requests and replies, and much more. It is designed to allow fast
+      packet prototyping by using default values that work.
+
+      It can easily handle most classical tasks like scanning, tracerouting,
+      probing, unit tests, attacks or network discovery (it can replace hping,
+      85% of nmap, arpspoof, arp-sk, arping, tcpdump, wireshark, p0f, etc.). It
+      also performs very well at a lot of other specific tasks that most other
+      tools can't handle, like sending invalid frames, injecting your own
+      802.11 frames, combining techniques (VLAN hopping+ARP cache poisoning,
+      VoIP decoding on WEP protected channel, ...), etc.
+
+      Scapy supports Python 2.7 and Python 3 (3.4 to 3.8). It's intended to be
+      cross platform, and runs on many different platforms (Linux, OSX, *BSD,
+      and Windows).
+    '';
     homepage = "https://scapy.net/";
+    changelog = "https://github.com/secdev/scapy/releases/tag/v${version}";
     license = licenses.gpl2;
     platforms = platforms.unix;
     maintainers = with maintainers; [ primeos bjornfor ];
diff --git a/nixpkgs/pkgs/development/python-modules/scapy/fix-version.patch b/nixpkgs/pkgs/development/python-modules/scapy/fix-version.patch
deleted file mode 100644
index c39458e9feac..000000000000
--- a/nixpkgs/pkgs/development/python-modules/scapy/fix-version.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/scapy/__init__.py b/scapy/__init__.py
-index d5ad6164..245ce2fb 100644
---- a/scapy/__init__.py
-+++ b/scapy/__init__.py
-@@ -90,7 +90,7 @@ def _version():
-                 return 'unknown.version'
- 
- 
--VERSION = __version__ = _version()
-+VERSION = __version__ = "NIXPKGS_SCAPY_VERSION"
- VERSION_MAIN = re.search(r"[0-9.]+", VERSION).group()
- 
- if __name__ == "__main__":
diff --git a/nixpkgs/pkgs/development/python-modules/schema/default.nix b/nixpkgs/pkgs/development/python-modules/schema/default.nix
index 2214bc2da528..8dd89480074a 100644
--- a/nixpkgs/pkgs/development/python-modules/schema/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/schema/default.nix
@@ -3,11 +3,11 @@
 buildPythonPackage rec {
 
   pname = "schema";
-  version = "0.7.2";
+  version = "0.7.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b536f2375b49fdf56f36279addae98bd86a8afbd58b3c32ce363c464bed5fc1c";
+    sha256 = "4cf529318cfd1e844ecbe02f41f7e5aa027463e7403666a52746f31f04f47a5e";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-build/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-build/default.nix
index 745723a01bc7..6694c3abe4df 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-build/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-build/default.nix
@@ -26,11 +26,11 @@
 
 buildPythonPackage rec {
   pname = "scikit-build";
-  version = "0.10.0";
+  version = "0.11.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7342017cc82dd6178e3b19377389b8a8d1f8b429d9cdb315cfb1094e34a0f526";
+    sha256 = "0p4smkl2rbpl00m5va5qa8hp2hqb3284p2cs6k8zlmi4kgbdyh6s";
   };
 
   propagatedBuildInputs = [
@@ -59,15 +59,6 @@ buildPythonPackage rec {
 
   dontUseCmakeConfigure = true;
 
-  # scikit-build PR #458. Remove in version > 0.10.0
-  patches = [
-    (fetchpatch {
-      name = "python38-platform_linux_distribution-fix-458";
-      url = "https://github.com/scikit-build/scikit-build/commit/faa7284e5bc4c72bc8744987acdf3297b5d2e7e4.patch";
-      sha256 = "1hgl3cnkf266zaw534b64c88waxfz9721wha0m6j3hsnxk76ayjv";
-    })
-  ];
-
   disabledTests = lib.concatMapStringsSep " and " (s: "not " + s) ([
     "test_hello_develop" # tries setuptools develop install
     "test_source_distribution" # pip has no way to install missing dependencies
@@ -75,6 +66,7 @@ buildPythonPackage rec {
     "test_fortran_compiler" # passes if gfortran is available
     "test_install_command" # tries to alter out path
     "test_test_command" # tries to alter out path
+    "test_setup" # tries to install using distutils
   ]);
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-image/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-image/default.nix
index 41f2609df781..44d2c240ce54 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-image/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-image/default.nix
@@ -13,20 +13,33 @@
 , cloudpickle
 , pytest
 , imageio
+, tifffile
 }:
 
 buildPythonPackage rec {
   pname = "scikit-image";
-  version = "0.16.2";
+  version = "0.17.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dd7fbd32da74d4e9967dc15845f731f16e7966cee61f5dc0e12e2abb1305068c";
+    sha256 = "bd954c0588f0f7e81d9763dc95e06950e68247d540476e06cb77bcbcd8c2d8b3";
   };
 
-  buildInputs = [ cython ];
+  nativeBuildInputs = [ cython ];
 
-  propagatedBuildInputs = [ numpy scipy matplotlib networkx six pillow pywavelets dask cloudpickle imageio ];
+  propagatedBuildInputs = [
+    cloudpickle
+    dask
+    imageio
+    matplotlib
+    networkx
+    numpy
+    pillow
+    pywavelets
+    scipy
+    six
+    tifffile
+  ];
 
   checkInputs = [ pytest ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/scikit-optimize/default.nix b/nixpkgs/pkgs/development/python-modules/scikit-optimize/default.nix
index f8e30397189b..0a5171f22fbf 100644
--- a/nixpkgs/pkgs/development/python-modules/scikit-optimize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikit-optimize/default.nix
@@ -1,25 +1,29 @@
 { lib
+, isPy27
 , buildPythonPackage
 , fetchFromGitHub
+, matplotlib
 , numpy
 , scipy
 , scikitlearn
 , pyaml
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "scikit-optimize";
-  version = "0.6";
+  version = "0.8.1";
+  disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "scikit-optimize";
     repo = "scikit-optimize";
     rev = "v${version}";
-    sha256 = "1srbb20k8ddhpcfxwdflapfh6xfyrd3dnclcg3bsfq1byrcmv0d4";
+    sha256 = "1bz8gxccx8n99abw49j8h5zf3i568g5hcf8nz1yinma8jqhxjkjh";
   };
 
   propagatedBuildInputs = [
+    matplotlib
     numpy
     scipy
     scikitlearn
@@ -27,14 +31,9 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
   ];
 
-  # remove --ignore at next release > 0.6
-  checkPhase = ''
-    pytest skopt --ignore skopt/tests/test_searchcv.py
-  '';
-
   meta = with lib; {
     description = "Sequential model-based optimization toolbox";
     homepage = "https://scikit-optimize.github.io/";
diff --git a/nixpkgs/pkgs/development/python-modules/scikitlearn/default.nix b/nixpkgs/pkgs/development/python-modules/scikitlearn/default.nix
index 454e631634bf..cffd29f09d3a 100644
--- a/nixpkgs/pkgs/development/python-modules/scikitlearn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikitlearn/default.nix
@@ -8,17 +8,18 @@
 , cython
 , joblib
 , llvmPackages
+, threadpoolctl
 }:
 
 buildPythonPackage rec {
   pname = "scikit-learn";
-  version = "0.22.2.post1";
+  version = "0.23.2";
   # UnboundLocalError: local variable 'message' referenced before assignment
   disabled = stdenv.isi686;  # https://github.com/scikit-learn/scikit-learn/issues/5534
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0z81n13dxvd6qwq5lsnzw2machmxbirhdhr73v90fi55ic9qslsp";
+    sha256 = "20766f515e6cd6f954554387dfae705d93c7b544ec0e6c6a5d8e006f6f7ef480";
   };
 
   buildInputs = [
@@ -38,6 +39,7 @@ buildPythonPackage rec {
     scipy
     numpy.blas
     joblib
+    threadpoolctl
   ];
   checkInputs = [ pytest ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/scikits-odes/default.nix b/nixpkgs/pkgs/development/python-modules/scikits-odes/default.nix
index 7927da30c892..d85d8e396f20 100644
--- a/nixpkgs/pkgs/development/python-modules/scikits-odes/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scikits-odes/default.nix
@@ -6,6 +6,7 @@
 , cython
 , enum34
 , gfortran
+, isPy27
 , isPy3k
 , numpy
 , pytest
@@ -18,6 +19,8 @@ buildPythonPackage rec {
   pname = "scikits.odes";
   version = "2.6.1";
 
+  disabled = isPy27;
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "0kbf2n16h9s35x6pavlx6sff0pqr68i0x0609z92a4vadni32n6b";
@@ -46,7 +49,7 @@ buildPythonPackage rec {
     description = "A scikit offering extra ode/dae solvers, as an extension to what is available in scipy";
     homepage = "https://github.com/bmcage/odes";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ flokli idontgetoutmuch ];
+    maintainers = with maintainers; [ idontgetoutmuch ];
     platforms = [ "aarch64-linux" "x86_64-linux" "x86_64-darwin" ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/scipy/default.nix b/nixpkgs/pkgs/development/python-modules/scipy/default.nix
index ace6c248ab2c..8ebb436e2880 100644
--- a/nixpkgs/pkgs/development/python-modules/scipy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scipy/default.nix
@@ -9,11 +9,11 @@ let
   });
 in buildPythonPackage rec {
   pname = "scipy";
-  version = "1.4.1";
+  version = "1.5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dee1bbf3a6c8f73b6b218cb28eed8dd13347ea2f87d572ce19b289d6fd3fbc59";
+    sha256 = "066c513d90eb3fd7567a9e150828d39111ebd88d3e924cdfc9f8ce19ab6f90c9";
   };
 
   checkInputs = [ nose pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/scour/default.nix b/nixpkgs/pkgs/development/python-modules/scour/default.nix
index 67eac7296443..4f1f39293869 100644
--- a/nixpkgs/pkgs/development/python-modules/scour/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scour/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "scour";
-  version = "0.37";
+  version = "0.38";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "05k1f8i8v7sp5v39lian865vwvapq05a6vmvk7fwnxv8kivi6ccn";
+    sha256 = "cf50a13dcdf8cfe1861f0ce334f413604e376a7681c5b181e15322f43c3befcd";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/scrapy-fake-useragent/default.nix b/nixpkgs/pkgs/development/python-modules/scrapy-fake-useragent/default.nix
index 26e142434c59..d3bf05b09655 100644
--- a/nixpkgs/pkgs/development/python-modules/scrapy-fake-useragent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scrapy-fake-useragent/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "scrapy-fake-useragent";
-  version = "1.2.0";
+  version = "1.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02mayk804vdl15wjpx7jcjkc4zgrra4izf6iv00mcxq4fd4ck03l";
+    sha256 = "3b17e982e646918dc25080da0672812d07bfb7a92a58377c014c74e0182c665e";
   };
 
   propagatedBuildInputs = [ fake-useragent ];
diff --git a/nixpkgs/pkgs/development/python-modules/scrapy/default.nix b/nixpkgs/pkgs/development/python-modules/scrapy/default.nix
index 2827f7151f4d..db91528da632 100644
--- a/nixpkgs/pkgs/development/python-modules/scrapy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/scrapy/default.nix
@@ -23,10 +23,12 @@
 , sybil
 , pytest-twisted
 , botocore
+, itemadapter
+, itemloaders
 }:
 
 buildPythonPackage rec {
-  version = "2.1.0";
+  version = "2.3.0";
   pname = "Scrapy";
 
   disabled = isPy27;
@@ -55,30 +57,25 @@ buildPythonPackage rec {
     w3lib
     zope_interface
     protego
-  ];
-
-  patches = [
-    # Scrapy is usually installed via pip where copying all
-    # permissions makes sense. In Nix the files copied are owned by
-    # root and readonly. As a consequence scrapy can't edit the
-    # project templates.
-    ./permissions-fix.patch
+    itemadapter
+    itemloaders
   ];
 
   LC_ALL = "en_US.UTF-8";
 
   # Disable doctest plugin—enabled in the shipped pytest.ini—because it causes pytest to hang
   # Ignore proxy tests because requires mitmproxy
+  # Ignore utils_display tests because it requires pygments
   # Ignore test_retry_dns_error because tries to resolve an invalid dns and weirdly fails with "Reactor was unclean"
   # Ignore xml encoding test on darwin because lxml can't find encodings https://bugs.launchpad.net/lxml/+bug/707396
   checkPhase = ''
     substituteInPlace pytest.ini --replace "--doctest-modules" ""
-    pytest --ignore=tests/test_linkextractors_deprecated.py --ignore=tests/test_proxy_connect.py --deselect tests/test_crawl.py::CrawlTestCase::test_retry_dns_error ${lib.optionalString stdenv.isDarwin "--deselect tests/test_utils_iterators.py::LxmlXmliterTestCase::test_xmliter_encoding"}
+    pytest --ignore=tests/test_linkextractors_deprecated.py --ignore=tests/test_proxy_connect.py --ignore=tests/test_utils_display.py --deselect tests/test_crawl.py::CrawlTestCase::test_retry_dns_error ${lib.optionalString stdenv.isDarwin "--deselect tests/test_utils_iterators.py::LxmlXmliterTestCase::test_xmliter_encoding"}
   '';
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "640aea0f9be9b055f5cfec5ab78ee88bb37a5be3809b138329bd2af51392ec7f";
+    sha256 = "b4d08cdacb615563c291d053ef1ba2dc08d9d4b6d81578684eaa1cf7b832f90c";
   };
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/development/python-modules/scrapy/permissions-fix.patch b/nixpkgs/pkgs/development/python-modules/scrapy/permissions-fix.patch
deleted file mode 100644
index 53038cf74e5f..000000000000
--- a/nixpkgs/pkgs/development/python-modules/scrapy/permissions-fix.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff --git a/scrapy/commands/startproject.py b/scrapy/commands/startproject.py
-index 5941066..89f8edb 100644
---- a/scrapy/commands/startproject.py
-+++ b/scrapy/commands/startproject.py
-@@ -4,7 +4,7 @@ import os
- import string
- from importlib import import_module
- from os.path import join, exists, abspath
--from shutil import ignore_patterns, move, copy2, copystat
-+from shutil import ignore_patterns, move, copyfile, copystat
- 
- import scrapy
- from scrapy.commands import ScrapyCommand
-@@ -76,8 +76,7 @@ class Command(ScrapyCommand):
-             if os.path.isdir(srcname):
-                 self._copytree(srcname, dstname)
-             else:
--                copy2(srcname, dstname)
--        copystat(src, dst)
-+                copyfile(srcname, dstname)
- 
-     def run(self, args, opts):
-         if len(args) not in (1, 2):
diff --git a/nixpkgs/pkgs/development/python-modules/seekpath/default.nix b/nixpkgs/pkgs/development/python-modules/seekpath/default.nix
index 61668bd6a0a6..e70ba02ce0e3 100644
--- a/nixpkgs/pkgs/development/python-modules/seekpath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/seekpath/default.nix
@@ -1,17 +1,21 @@
-{ stdenv, buildPythonPackage, fetchPypi, numpy, future, spglib, glibcLocales, pytest }:
+{ stdenv, buildPythonPackage, fetchFromGitHub, pythonOlder, numpy, future, spglib, glibcLocales, pytest, scipy }:
 
 buildPythonPackage rec {
   pname = "seekpath";
-  version = "1.9.7";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b83ea23b54209b7f34f3fcabe7248cebbcc3cc164c394f1659b35942edaedb1c";
+  version = "2.0.1";
+  disabled = pythonOlder "3.5";
+
+  src = fetchFromGitHub {
+    owner = "giovannipizzi";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0x592650ynacmx5n5bilj5lja4iw0gf1nfypy82cmy5z363qhqxn";
   };
 
   LC_ALL = "en_US.utf-8";
 
-  propagatedBuildInputs = [ numpy spglib future ];
+  # scipy isn't listed in install_requires, but used in package
+  propagatedBuildInputs = [ numpy spglib future scipy ];
 
   nativeBuildInputs = [ glibcLocales ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/segments/default.nix b/nixpkgs/pkgs/development/python-modules/segments/default.nix
new file mode 100644
index 000000000000..8c2e22708aab
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/segments/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, regex
+, csvw
+, clldutils
+, mock
+, pytestCheckHook
+, pytest-mock
+}:
+
+buildPythonPackage rec {
+  pname = "segments";
+  version = "2.1.3";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "cldf";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "12lnpk834r3y7hw5x7nvswa60ddh69ylvr44k46gqcfba160hhb0";
+  };
+
+  patchPhase = ''
+    substituteInPlace setup.cfg --replace "--cov" ""
+  '';
+
+  propagatedBuildInputs = [
+    regex
+    csvw
+    clldutils
+  ];
+
+  checkInputs = [
+    mock
+    pytestCheckHook
+    pytest-mock
+  ];
+
+  meta = with lib; {
+    description = "Unicode Standard tokenization routines and orthography profile segmentation";
+    homepage = "https://github.com/cldf/segments";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/selectors2/default.nix b/nixpkgs/pkgs/development/python-modules/selectors2/default.nix
index 159047eafd7c..c78f1811a069 100644
--- a/nixpkgs/pkgs/development/python-modules/selectors2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/selectors2/default.nix
@@ -2,12 +2,12 @@
 , nose, psutil, mock }:
 
 buildPythonPackage rec {
-  version = "2.0.1";
+  version = "2.0.2";
   pname = "selectors2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "81b77c4c6f607248b1d6bbdb5935403fef294b224b842a830bbfabb400c81884";
+    sha256 = "1f1bbaac203a23fbc851dc1b5a6e92c50698cc8cefa5873eb5b89eef53d1d82b";
   };
 
   checkInputs = [ nose psutil mock ];
@@ -17,7 +17,8 @@ buildPythonPackage rec {
     # Trick to disable certain tests that depend on timing which
     # will always fail on hydra
     export TRAVIS=""
-    nosetests tests/test_selectors2.py
+    nosetests tests/test_selectors2.py \
+      --exclude=test_above_fd_setsize
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/semver/default.nix b/nixpkgs/pkgs/development/python-modules/semver/default.nix
index bc0262a89c93..5aca34b52f11 100644
--- a/nixpkgs/pkgs/development/python-modules/semver/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/semver/default.nix
@@ -1,24 +1,27 @@
-{ stdenv, fetchFromGitHub, buildPythonPackage, pytest }:
+{ stdenv
+, fetchFromGitHub
+, buildPythonPackage
+, pytestCheckHook
+, pytestcov
+}:
 
-buildPythonPackage {
+buildPythonPackage rec {
   pname = "semver";
-  version = "2.8.1";
+  version = "2.10.2";
 
   src = fetchFromGitHub {
-    owner = "k-bx";
+    owner = "python-semver";
     repo = "python-semver";
-    rev = "41775dd5f143dfa6ca94885056c9ef5b3ed4e6e1"; # not tagged in repository
-    sha256 = "1rqaakha4sw06k9h0h4g1wmk66zkmhpq92y2rw0kyfpp6xk1zbk2";
+    rev = version;
+    sha256 = "0yxjmcgk5iwp53l9z1cg0ajrj18i09ircs11ifpdrggzm8n1blf3";
   };
 
-  checkInputs = [ pytest ];
-  checkPhase = ''
-    py.test
-  '';
+  preCheck = "rm -rf dist"; # confuses source vs dist imports in pytest
+  checkInputs = [ pytestCheckHook pytestcov ];
 
   meta = with stdenv.lib; {
     description = "Python package to work with Semantic Versioning (http://semver.org/)";
-    homepage = "https://github.com/k-bx/python-semver";
+    homepage = "https://python-semver.readthedocs.io/en/latest/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ np ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix b/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
index d556dcb74cf2..8aa61748af86 100644
--- a/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -17,18 +17,24 @@
 , stdenv
 , tornado
 , urllib3
+, trytond
+, werkzeug
+, executing
+, pure-eval
+, asttokens
 }:
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "0.13.5";
+  version = "0.16.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c6b919623e488134a728f16326c6f0bcdab7e3f59e7f4c472a90eea4d6d8fe82";
+    sha256 = "e12eb1c2c01cd9e9cfe70608dbda4ef451f37ef0b7cbb92e5d43f87c341d6334";
   };
 
-  checkInputs = [ django flask tornado bottle rq falcon sqlalchemy ]
+  checkInputs = [ django flask tornado bottle rq falcon sqlalchemy werkzeug trytond
+    executing pure-eval asttokens ]
   ++ stdenv.lib.optionals isPy3k [ celery pyramid sanic aiohttp ];
 
   propagatedBuildInputs = [ urllib3 certifi ];
diff --git a/nixpkgs/pkgs/development/python-modules/serpent/default.nix b/nixpkgs/pkgs/development/python-modules/serpent/default.nix
index 701de5200461..cfb734e54759 100644
--- a/nixpkgs/pkgs/development/python-modules/serpent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/serpent/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "serpent";
-  version = "1.28";
+  version = "1.30.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1arnckykpkvv2qrp49l1k7q5mr5pisswl0rvdx98x8wsl1n361pk";
+    sha256 = "72753820246a7d8486e8b385353e3bbf769abfceec2e850fa527a288b084ff7a";
   };
 
   propagatedBuildInputs = lib.optionals isPy27 [ enum34 ];
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools/default.nix
index 69b89a376fc2..b618ec6f634b 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools/default.nix
@@ -13,7 +13,7 @@
 
 let
   pname = "setuptools";
-  version = "46.1.3";
+  version = "47.3.1";
 
   # Create an sdist of setuptools
   sdist = stdenv.mkDerivation rec {
@@ -23,7 +23,7 @@ let
       owner = "pypa";
       repo = pname;
       rev = "v${version}";
-      sha256 = "1f6bp3qy5zvykimadk8k11k3629hmnwlw2cfw4vwcsvdarhig673";
+      sha256 = "0sy3p4ibgqx67hzn1f254jh8070a8kl9g2la62p3c74k2x7p0r7f";
       name = "${pname}-${version}-source";
     };
 
diff --git a/nixpkgs/pkgs/development/python-modules/setuptools_scm/default.nix b/nixpkgs/pkgs/development/python-modules/setuptools_scm/default.nix
index 54622c36e6b7..fb527a1336d9 100644
--- a/nixpkgs/pkgs/development/python-modules/setuptools_scm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/setuptools_scm/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "setuptools_scm";
-  version = "3.4.3";
+  version = "4.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "26b8a108783cd88f4b15ff1f0f347d6b476db25d0c226159b835d713f9487320";
+    sha256 = "a8994582e716ec690f33fec70cca0f85bd23ec974e3f783233e4879090a7faa8";
   };
 
   # Requires pytest, circular dependency
diff --git a/nixpkgs/pkgs/development/python-modules/sh/default.nix b/nixpkgs/pkgs/development/python-modules/sh/default.nix
index 913840110c91..de23241e3791 100644
--- a/nixpkgs/pkgs/development/python-modules/sh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sh/default.nix
@@ -1,28 +1,22 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, python, coverage, lsof, glibcLocales }:
+{ lib, buildPythonPackage, fetchPypi, fetchpatch, python, coverage, lsof, glibcLocales, coreutils }:
 
 buildPythonPackage rec {
   pname = "sh";
-  version = "1.12.14";
+  version = "1.13.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1z2hx357xp3v4cv44xmqp7lli3frndqpyfmpbxf7n76h7s1zaaxm";
+    sha256 = "18w6wawmpzfh52s0jimwn59a7rfa7blrmg7bhwnq8siwbqhd58wp";
   };
 
   patches = [
-    # Disable tests that fail on Darwin
-    # Some of the failures are due to Nix using GNU coreutils
+    # Disable tests that fail on Darwin sandbox
     ./disable-broken-tests-darwin.patch
-    # Fix tests for Python 3.7. See: https://github.com/amoffat/sh/pull/468
-    (fetchpatch {
-      url = "https://github.com/amoffat/sh/commit/b6202f75706473f02084d819e0765056afa43664.patch";
-      sha256 = "1kzxyxcc88zhgn2kmfg9yrbs4n405b2jq7qykb453l52hy10vi94";
-      excludes = [ ".travis.yml" ];
-    })
   ];
 
   postPatch = ''
     sed -i 's#/usr/bin/env python#${python.interpreter}#' test.py
+    sed -i 's#/bin/sleep#${coreutils.outPath}/bin/sleep#' test.py
   '';
 
   checkInputs = [ coverage lsof glibcLocales ];
@@ -33,9 +27,10 @@ buildPythonPackage rec {
     HOME=$(mktemp -d)
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Python subprocess interface";
     homepage = "https://pypi.python.org/pypi/sh/";
-    license = stdenv.lib.licenses.mit;
+    license = licenses.mit;
+    maintainers = with maintainers; [ siriobalmelli ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/sh/disable-broken-tests-darwin.patch b/nixpkgs/pkgs/development/python-modules/sh/disable-broken-tests-darwin.patch
index 6488dd1ffeaa..c51490ce6a40 100644
--- a/nixpkgs/pkgs/development/python-modules/sh/disable-broken-tests-darwin.patch
+++ b/nixpkgs/pkgs/development/python-modules/sh/disable-broken-tests-darwin.patch
@@ -1,49 +1,49 @@
-From 264f2f6a04d25156bba43524a6b172d2e99c53f4 Mon Sep 17 00:00:00 2001
-From: Ben Wolsieffer <benwolsieffer@gmail.com>
-Date: Fri, 21 Dec 2018 17:39:45 -0500
-Subject: [PATCH] Disable tests that fail on OSX.
+From c596ad546fe7460b57a62799837757eb641309c1 Mon Sep 17 00:00:00 2001
+From: Sirio Balmelli <sirio@b-ad.ch>
+Date: Mon, 20 Jul 2020 19:51:20 +0200
+Subject: [PATCH] Disable tests that fail on Darwin (macOS) or with sandboxing
 
-Some of the failures are due to the use of GNU ls.
+Signed-off-by: Sirio Balmelli <sirio@b-ad.ch>
 ---
  test.py | 4 ++++
  1 file changed, 4 insertions(+)
 
 diff --git a/test.py b/test.py
-index 68ef40c..2f53360 100644
+index f8029c0..ba1d141 100644
 --- a/test.py
 +++ b/test.py
-@@ -352,6 +352,7 @@ exit(3)
+@@ -404,6 +404,7 @@ exit(3)
          self.assertEqual(sed(_in="one test three", e="s/test/two/").strip(),
-                 "one two three")
+                          "one two three")
  
-+    @not_osx
++    @not_macos
      def test_ok_code(self):
          from sh import ls, ErrorReturnCode_1, ErrorReturnCode_2
  
-@@ -498,6 +499,7 @@ while True:
-         self.assertEqual(out, match)
+@@ -1004,6 +1005,7 @@ print(sys.argv[1])
+         now = time.time()
+         self.assertGreater(now - start, sleep_time)
  
- 
-+    @not_osx
-     def test_environment(self):
-         """ tests that environments variables that we pass into sh commands
-         exist in the environment, and on the sh module """
-@@ -861,6 +863,7 @@ print(sys.argv[1])
-         self.assertTrue(now - start > sleep_time)
- 
- 
-+    @not_osx
++    @not_macos
      def test_background_exception(self):
          from sh import ls, ErrorReturnCode_1, ErrorReturnCode_2
-         p = ls("/ofawjeofj", _bg=True) # should not raise
-@@ -2036,6 +2039,7 @@ else:
-         self.assertEqual(p, "test")
- 
- 
-+    @not_osx
-     def test_signal_exception(self):
-         from sh import SignalException_15
+         p = ls("/ofawjeofj", _bg=True, _bg_exc=False)  # should not raise
+@@ -1801,6 +1803,7 @@ exit(49)
+         p = python(py.name, _ok_code=49, _bg=True)
+         self.assertEqual(49, p.exit_code)
+ 
++    @not_macos
+     def test_cwd(self):
+         from sh import pwd
+         from os.path import realpath
+@@ -2899,6 +2902,7 @@ print("hi")
+         python(py.name, _in=stdin)
+ 
+     @requires_utf8
++    @skipUnless(False, "Does not work in sandbox")
+     def test_unicode_path(self):
+         from sh import Command
  
 -- 
-2.20.0
+2.27.0
 
diff --git a/nixpkgs/pkgs/development/python-modules/shamir-mnemonic/default.nix b/nixpkgs/pkgs/development/python-modules/shamir-mnemonic/default.nix
index 13a946aeafd0..2225466658d5 100644
--- a/nixpkgs/pkgs/development/python-modules/shamir-mnemonic/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shamir-mnemonic/default.nix
@@ -17,6 +17,6 @@ buildPythonPackage rec {
     description = "Reference implementation of SLIP-0039";
     homepage = "https://github.com/trezor/python-shamir-mnemonic";
     license = licenses.mit;
-    maintainers = [ maintainers."1000101" ];
+    maintainers = with maintainers; [ _1000101 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/shiboken2/nix_compile_cflags.patch b/nixpkgs/pkgs/development/python-modules/shiboken2/nix_compile_cflags.patch
index 0884c020e832..c3c63dc67ba9 100644
--- a/nixpkgs/pkgs/development/python-modules/shiboken2/nix_compile_cflags.patch
+++ b/nixpkgs/pkgs/development/python-modules/shiboken2/nix_compile_cflags.patch
@@ -1,6 +1,6 @@
---- pyside-setup-everywhere-src-5.12.3/sources/shiboken2/ApiExtractor/clangparser/compilersupport.cpp~	2019-06-15 10:31:04.712949189 +0200
-+++ pyside-setup-everywhere-src-5.12.3/sources/shiboken2/ApiExtractor/clangparser/compilersupport.cpp	2019-06-15 11:52:52.894987343 +0200
-@@ -317,15 +317,15 @@
+--- pyside-setup-everywhere-src-5.12.6/sources/shiboken2/ApiExtractor/clangparser/compilersupport.cpp~	2020-07-08 14:37:13.022476435 -0700
++++ pyside-setup-everywhere-src-5.12.6/sources/shiboken2/ApiExtractor/clangparser/compilersupport.cpp	2020-07-08 14:37:18.271484269 -0700
+@@ -330,17 +330,15 @@
      }
  #endif // NEED_CLANG_BUILTIN_INCLUDES
  
@@ -9,10 +9,12 @@
 -    // A fix for this has been added to Clang 5.0, so, the code can be removed
 -    // once Clang 5.0 is the minimum version.
 -    if (needsGppInternalHeaders()) {
--        const HeaderPaths gppPaths = gppInternalIncludePaths(QStringLiteral("g++"));
+-        const HeaderPaths gppPaths = gppInternalIncludePaths(compilerFromCMake(QStringLiteral("g++")));
 -        for (const HeaderPath &h : gppPaths) {
--            if (h.path.contains("c++"))
+-            if (h.path.contains("c++")
+-                || h.path.contains("sysroot")) { // centOS
 -                headerPaths.append(h);
+-            }
 +    const HeaderPaths gppPaths = gppInternalIncludePaths(QStringLiteral("g++"));
 +    for (const HeaderPath &h : gppPaths) {
 +        // PySide2 requires that Qt headers are not -isystem
@@ -25,3 +27,4 @@
          }
      }
  #else
+
diff --git a/nixpkgs/pkgs/development/python-modules/shortuuid/default.nix b/nixpkgs/pkgs/development/python-modules/shortuuid/default.nix
index fc2a25dab5ce..4798bc4ff7e6 100644
--- a/nixpkgs/pkgs/development/python-modules/shortuuid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shortuuid/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "shortuuid";
-  version = "0.5.0";
+  version = "1.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d08fd398f40f8baf87e15eef8355e92fa541bca4eb8465fefab7ee22f92711b9";
+    sha256 = "3c11d2007b915c43bee3e10625f068d8a349e04f0d81f08f5fa08507427ebf1f";
   };
 
   buildInputs = [pep8];
diff --git a/nixpkgs/pkgs/development/python-modules/shouldbe/default.nix b/nixpkgs/pkgs/development/python-modules/shouldbe/default.nix
index 1623d216ac9c..068ed9343117 100644
--- a/nixpkgs/pkgs/development/python-modules/shouldbe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/shouldbe/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , buildPythonPackage
+, pythonAtLeast
 , fetchPypi
 , nose
 , forbiddenfruit
@@ -8,6 +9,8 @@
 buildPythonPackage rec {
   version = "0.1.2";
   pname = "shouldbe";
+  # incompatible, https://github.com/DirectXMan12/should_be/issues/4
+  disabled = pythonAtLeast "3.8";
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/development/python-modules/sievelib/default.nix b/nixpkgs/pkgs/development/python-modules/sievelib/default.nix
index 8204cc3b4156..7fd955abd17c 100644
--- a/nixpkgs/pkgs/development/python-modules/sievelib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sievelib/default.nix
@@ -12,9 +12,15 @@ buildPythonPackage rec {
 
   patches = [
     (fetchpatch {
+      name = "pip-10-pip-req.patch";
       url = "https://github.com/tonioo/sievelib/commit/1deef0e2bf039a0e817ea6f19aaf1947dc9fafbc.patch";
       sha256 = "0vaj73mcij9dism8vfaai82irh8j1b2n8gf9jl1a19d2l26jrflk";
     })
+    (fetchpatch {
+      name = "requirements-in-setup-py.patch";
+      url = "https://github.com/tonioo/sievelib/commit/91f40ec226ea288e98379da01672a46dabd89fc9.patch";
+      sha256 = "0hph89xn16r353rg6f05bh0cgigmwdc736bya089qc03jhssrgns";
+    })
   ];
 
   buildInputs = [ setuptools_scm ];
diff --git a/nixpkgs/pkgs/development/python-modules/simpleparse/default.nix b/nixpkgs/pkgs/development/python-modules/simpleparse/default.nix
index acb071781173..d1117b3a9d89 100644
--- a/nixpkgs/pkgs/development/python-modules/simpleparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/simpleparse/default.nix
@@ -6,14 +6,14 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.2.0";
+  version = "2.2.2";
   pname = "simpleparse";
   disabled = isPy3k || isPyPy;
 
   src = fetchPypi {
     pname = "SimpleParse";
     inherit version;
-    sha256 = "18ccdc249bb550717af796af04a7d50aef523368901f64036a48eee5daca149d";
+    sha256 = "010szm4mbqgfdksa2n4l9avj617rb0gkwrryc70mfjmyww0bd1m6";
   };
 
   doCheck = false;  # weird error
diff --git a/nixpkgs/pkgs/development/python-modules/simpy/default.nix b/nixpkgs/pkgs/development/python-modules/simpy/default.nix
index bcf853e999ce..f718b3655f6f 100644
--- a/nixpkgs/pkgs/development/python-modules/simpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/simpy/default.nix
@@ -1,18 +1,27 @@
-{ buildPythonPackage, fetchPypi, lib }:
+{ buildPythonPackage, fetchPypi, isPy27, lib, setuptools, setuptools_scm
+, pytestCheckHook }:
 
 buildPythonPackage rec {
   pname = "simpy";
-  version = "3.0.13";
+  version = "4.0.1";
+
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dd8c16ca3cff1574c99fe9f5ea4019c631c327f2bdc842e8b1a5c55f5e3e9d27";
+    sha256 = "b36542e2faab612f861c5ef4da17220ac1553f5892b3583c67281dbe4faad404";
   };
 
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [ setuptools ];
+
+  checkInputs = [ pytestCheckHook ];
+
   meta = with lib; {
-    homepage = "https://simpy.readthedocs.io/en/latest/";
-    description = "A process-based discrete-event simulation framework based on standard Python.";
+    homepage = "https://simpy.readthedocs.io/en/${version}/";
+    description = "Process-based discrete-event simulation framework based on standard Python";
     license = [ licenses.mit ];
-    maintainers = with maintainers; [ shlevy ];
+    maintainers = with maintainers; [ dmrauh shlevy ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/six/default.nix b/nixpkgs/pkgs/development/python-modules/six/default.nix
index 46f7f6d38b6b..8d8cd790cdef 100644
--- a/nixpkgs/pkgs/development/python-modules/six/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/six/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "six";
-  version = "1.14.0";
+  version = "1.15.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "236bdbdce46e6e6a3d61a337c0f8b763ca1e8717c03b369e87a7ec7ce1319c0a";
+    sha256 = "30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/skein/default.nix b/nixpkgs/pkgs/development/python-modules/skein/default.nix
new file mode 100644
index 000000000000..630c4370a87d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/skein/default.nix
@@ -0,0 +1,39 @@
+{ buildPythonPackage
+, callPackage
+, fetchPypi
+, isPy27
+, jre
+, lib
+, pythonPackages
+, stdenv
+}:
+
+let
+  pname = "skein";
+  version = "0.8.0";
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0nb64p1hzshgi1kfc2jx1v9vn8b0wzs50460wfra3fsxh0ap66ab";
+  };
+  skeinJar = callPackage ./skeinjar.nix { inherit src version; };
+in
+buildPythonPackage rec {
+  inherit pname version src;
+  disabled = isPy27;
+
+  propagatedBuildInputs = with pythonPackages; [ cryptography grpcio grpcio-tools jupyter pytest pyyaml requests jre ];
+
+  preBuild = ''
+    # Ensure skein.jar exists skips the maven build in setup.py
+    mkdir -p skein/java
+    ln -s ${skeinJar} skein/java/skein.jar
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://jcristharif.com/skein";
+    description = "A tool and library for easily deploying applications on Apache YARN";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ alexbiehl ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/python-modules/skein/skeinjar.nix b/nixpkgs/pkgs/development/python-modules/skein/skeinjar.nix
new file mode 100644
index 000000000000..c1a0d8a57515
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/skein/skeinjar.nix
@@ -0,0 +1,21 @@
+{ callPackage, stdenv, maven, src, version }:
+
+let
+  skeinRepo = callPackage ./skeinrepo.nix { inherit src version; };
+in
+stdenv.mkDerivation rec {
+  name = "skein-${version}.jar";
+
+  inherit src;
+
+  nativeBuildInputs = [ maven ];
+
+  buildPhase = ''
+    mvn --offline -f java/pom.xml package -Dmaven.repo.local="${skeinRepo}" -Dskein.version=${version} -Dversion=${version}
+  '';
+
+  installPhase = ''
+    # Making sure skein.jar exists skips the maven build in setup.py
+    mv java/target/skein-*.jar $out
+  '';
+}
diff --git a/nixpkgs/pkgs/development/python-modules/skein/skeinrepo.nix b/nixpkgs/pkgs/development/python-modules/skein/skeinrepo.nix
new file mode 100644
index 000000000000..85b4f19c8f73
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/skein/skeinrepo.nix
@@ -0,0 +1,46 @@
+{ autoPatchelfHook, lib, maven, stdenv, src, version }:
+
+stdenv.mkDerivation rec {
+  name = "skein-${version}-maven-repo";
+
+  inherit src;
+
+  nativeBuildInputs = [ maven ] ++ lib.optional stdenv.isLinux autoPatchelfHook;
+
+  doBuild = false;
+
+  installPhase = ''
+    mkdir -p $out
+
+    archs="${
+      if stdenv.isLinux
+      then "linux-x86_32 linux-x86_64"
+      else "osx-x86_64"
+    }"
+
+    for arch in $archs
+    do
+      mvn -Dmaven.repo.local=$out dependency:get -Dartifact=com.google.protobuf:protoc:3.0.0:exe:$arch
+      mvn -Dmaven.repo.local=$out dependency:get -Dartifact=io.grpc:protoc-gen-grpc-java:1.16.0:exe:$arch
+    done
+
+    if ${ lib.boolToString stdenv.isLinux }
+    then
+      autoPatchelf $out
+    fi
+
+    # We have to use maven package here as dependency:go-offline doesn't
+    # fetch every required jar.
+    mvn -f java/pom.xml -Dmaven.repo.local=$out package
+
+    rm $(find $out -name _remote.repositories)
+    rm $(find $out -name resolver-status.properties)
+  '';
+
+  outputHashMode = "recursive";
+  outputHashAlgo = "sha256";
+  outputHash = if stdenv.isLinux
+    then "12f0q3444qw6y4f6qsa9540a0fz4cgi844zzi8z1phqn3k4dnl6v"
+    else "0bjbwiv17cary1isxca0m2hsvgs1i5fh18z247h1hky73lnhbrz8";
+
+} // lib.optionalAttrs stdenv.isLinux { dontAutoPatchelf = true; }
diff --git a/nixpkgs/pkgs/development/python-modules/smart_open/default.nix b/nixpkgs/pkgs/development/python-modules/smart_open/default.nix
index fadeb93f0a13..6dff98a09b46 100644
--- a/nixpkgs/pkgs/development/python-modules/smart_open/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/smart_open/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 , boto
 , boto3
 , bz2file
@@ -12,11 +13,12 @@
 
 buildPythonPackage rec {
   pname = "smart_open";
-  version = "1.11.1";
+  version = "2.1.1";
+  disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "221cc08ae926af6ad72d141f208d228e1e801b1ee9b15f3e466eecf89d931002";
+    sha256 = "51b05acd85ec007e1d4dcdbf2bbf917218a45026f37d559559401114bb5e5840";
   };
 
   # nixpkgs version of moto is >=1.2.0, remove version pin to fix build
diff --git a/nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix b/nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix
index 1d8389d80640..bdedfc0ed4b4 100644
--- a/nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snowflake-connector-python/default.nix
@@ -25,12 +25,12 @@
 
 buildPythonPackage rec {
   pname = "snowflake-connector-python";
-  version = "2.2.7";
+  version = "2.3.2";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "84974778dd8d1efd4ff87d8404d71241f90e02044b1b94a52eea567080f93ac4";
+    sha256 = "0as7m736wgx684wssnvhvixjkqidnhxn9i98rcdgagr67s3akfdy";
   };
 
   propagatedBuildInputs = [
@@ -57,12 +57,15 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "'cffi>=1.9,<1.14'," "'cffi~=1.9',"
+      --replace "'cryptography>=2.5.0,<3.0.0'," "'cryptography'," \
+      --replace "'idna<2.10'," "'idna'," \
+      --replace "'requests<2.24.0'," "'requests',"
   '';
 
   # tests are not working
   # XXX: fix the tests
   doCheck = false;
+  pythonImportsCheck = [ "snowflake" "snowflake.connector" ];
 
   meta = with lib; {
     description = "Snowflake Connector for Python";
diff --git a/nixpkgs/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix b/nixpkgs/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
index 9e4bab5284c0..0eb0b6bebec6 100644
--- a/nixpkgs/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "snowflake-sqlalchemy";
-  version = "1.1.18";
+  version = "1.2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5c19890d94bc4e5b76e7ac1a3e4c9e2b49b4d95214156d140a781042b8389725";
+    sha256 = "2c598ef37623ef4d035a827f1e84725b3239a47f4366417d089de88f72fc4ac9";
   };
 
   propagatedBuildInputs = [
@@ -19,6 +19,8 @@ buildPythonPackage rec {
     snowflake-connector-python
   ];
 
+  pythonImportsCheck = [ "snowflake.sqlalchemy" ];
+
   meta = with lib; {
     description = "Snowflake SQLAlchemy Dialect";
     homepage = "https://www.snowflake.net/";
diff --git a/nixpkgs/pkgs/development/python-modules/snscrape/default.nix b/nixpkgs/pkgs/development/python-modules/snscrape/default.nix
index 4370388959d0..b7d7f25614d9 100644
--- a/nixpkgs/pkgs/development/python-modules/snscrape/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/snscrape/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "snscrape";
-  version = "0.3.2";
+  version = "0.3.4";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ea038827afe439577eb109ebd1b5c481d516d489c624fc3fe6e92ec71ef42be9";
+    sha256 = "36ba7f95c8bf5202749189f760e591952f19c849379c35ff598aafafe5d0cfef";
   };
 
   # There are no tests; make sure the executable works.
diff --git a/nixpkgs/pkgs/development/python-modules/soco/default.nix b/nixpkgs/pkgs/development/python-modules/soco/default.nix
index 0af09cc01ce7..b56e43e13219 100644
--- a/nixpkgs/pkgs/development/python-modules/soco/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/soco/default.nix
@@ -1,4 +1,5 @@
 { lib, buildPythonPackage, fetchPypi, xmltodict, requests
+, toml
 
 # Test dependencies
 , pytest, pytestcov, coveralls, pylint, flake8, graphviz, mock, sphinx
@@ -14,13 +15,7 @@ buildPythonPackage rec {
     sha256 = "0dgca286vhrabm4r4jj545k895z6w2c70ars06vrjhf9cpgg7qck";
   };
 
-  postPatch = ''
-    # https://github.com/SoCo/SoCo/pull/670
-    substituteInPlace requirements-dev.txt \
-      --replace "pytest-cov>=2.4.0,<2.6" "pytest-cov>=2.4.0"
-  '';
-
-  propagatedBuildInputs = [ xmltodict requests ];
+  propagatedBuildInputs = [ xmltodict requests toml ];
   checkInputs = [
     pytest pytestcov coveralls pylint flake8 graphviz mock sphinx
     sphinx_rtd_theme
diff --git a/nixpkgs/pkgs/development/python-modules/solo-python/default.nix b/nixpkgs/pkgs/development/python-modules/solo-python/default.nix
index 1b1896187f9d..0ce6e338e61f 100644
--- a/nixpkgs/pkgs/development/python-modules/solo-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/solo-python/default.nix
@@ -3,7 +3,7 @@
 
  buildPythonPackage rec {
   pname = "solo-python";
-  version = "0.0.23";
+  version = "0.0.26";
   format = "flit";
   disabled = pythonOlder "3.6"; # only python>=3.6 is supported
 
@@ -11,7 +11,7 @@
     owner = "solokeys";
     repo = pname;
     rev = version;
-    sha256 = "0r9cq0sd8pqnavgwa5cqgdxzbgly2baq8fpclnnz6anb2974kg3f";
+    sha256 = "05rwqrhr1as6zqhg63d6wga7l42jm2azbav5w6ih8mx5zbxf61yz";
   };
 
   # replaced pinned fido, with unrestricted fido version
diff --git a/nixpkgs/pkgs/development/python-modules/somajo/default.nix b/nixpkgs/pkgs/development/python-modules/somajo/default.nix
index 958c9ab82662..c0b8aaca24fc 100644
--- a/nixpkgs/pkgs/development/python-modules/somajo/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/somajo/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonPackage rec {
   pname = "SoMaJo";
-  version = "2.0.6";
+  version = "2.1.1";
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "tsproisl";
     repo = pname;
     rev = "v${version}";
-    sha256 = "08nicj3nj6pi6djli26gf0kf3s2da9ysn1cpkyw7j88v8vav0p7s";
+    sha256 = "0yj3yb0qvfdv4wh7nzcsh9in8nzk7b59dvjj0x02rsmlv4kw9ah1";
   };
 
   propagatedBuildInputs = [ regex ];
diff --git a/nixpkgs/pkgs/development/python-modules/sopel/default.nix b/nixpkgs/pkgs/development/python-modules/sopel/default.nix
index d01fd722ab83..0c4c3f9b7b22 100644
--- a/nixpkgs/pkgs/development/python-modules/sopel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sopel/default.nix
@@ -5,20 +5,21 @@
 , praw
 , pyenchant
 , pygeoip
-, pytest
+, pytestCheckHook
 , python
 , pytz
+, sqlalchemy
 , xmltodict
 }:
 
 buildPythonPackage rec {
   pname = "sopel";
-  version = "6.6.9";
+  version = "7.0.6";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1arldn3p2yp09wnn2cw50r5ri303d5jdsjnf6lgfl82jhfmk49a2";
+    sha256 = "5e394d9797e221f90a95e5eb9987e8c1faf4f2488964f521e8ca1628798f0a38";
   };
 
   propagatedBuildInputs = [
@@ -29,20 +30,26 @@ buildPythonPackage rec {
     pyenchant
     pygeoip
     pytz
+    sqlalchemy
     xmltodict
   ];
 
   # remove once https://github.com/sopel-irc/sopel/pull/1653 lands
   postPatch = ''
     substituteInPlace requirements.txt \
-      --replace "praw<6.0.0" "praw<7.0.0"
+      --replace "praw>=4.0.0,<6.0.0" "praw"
   '';
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
-  checkPhase = ''
-    HOME=$PWD # otherwise tries to create tmpdirs at root
-    pytest .
+  preCheck = ''
+    export TESTDIR=$(mktemp -d)
+    cp -R ./test $TESTDIR
+    pushd $TESTDIR
+  '';
+
+  postCheck = ''
+    popd
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/sorl_thumbnail/default.nix b/nixpkgs/pkgs/development/python-modules/sorl_thumbnail/default.nix
index 1979daf85be3..f62af59c4edc 100644
--- a/nixpkgs/pkgs/development/python-modules/sorl_thumbnail/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sorl_thumbnail/default.nix
@@ -1,17 +1,21 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
+, setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "sorl-thumbnail";
-  version = "12.5.0";
+  version = "12.6.3";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8dfe5fda91a5047d1d35a0b9effe7b000764a01d648e15ca076f44e9c34b6dbd";
+    sha256 = "66771521f3c0ed771e1ce8e1aaf1639ebff18f7f5a40cfd3083da8f0fe6c7c99";
   };
 
+  nativeBuildInputs = [ setuptools_scm ];
   # Disabled due to an improper configuration error when tested against django. This looks like something broken in the test cases for sorl.
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/sortedcollections/default.nix b/nixpkgs/pkgs/development/python-modules/sortedcollections/default.nix
index ffcf0bfeac04..3742c625205c 100644
--- a/nixpkgs/pkgs/development/python-modules/sortedcollections/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sortedcollections/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "sortedcollections";
-  version = "1.1.2";
+  version = "1.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12nkw69lnyvh9wy6rsd0ng4bcia81vkhj1rj1kj1k3vzppn0sgmr";
+    sha256 = "0sihzm5aqz7r3irh4jn6rzicb7lf81d27z7vl6kaslnhwcsizhsq";
   };
 
   propagatedBuildInputs = [ sortedcontainers ];
diff --git a/nixpkgs/pkgs/development/python-modules/sortedcontainers/default.nix b/nixpkgs/pkgs/development/python-modules/sortedcontainers/default.nix
index c5ae45b8500c..9df3d809f2cb 100644
--- a/nixpkgs/pkgs/development/python-modules/sortedcontainers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sortedcontainers/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "sortedcontainers";
-  version = "2.1.0";
+  version = "2.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "974e9a32f56b17c1bac2aebd9dcf197f3eb9cd30553c5852a3187ad162e1a03a";
+    sha256 = "4e73a757831fc3ca4de2859c422564239a31d8213d09a2a666e375807034d2ba";
   };
 
   # pypi tarball does not come with tests
diff --git a/nixpkgs/pkgs/development/python-modules/sounddevice/default.nix b/nixpkgs/pkgs/development/python-modules/sounddevice/default.nix
index 9a6baf80f04a..eb46580a7b30 100644
--- a/nixpkgs/pkgs/development/python-modules/sounddevice/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sounddevice/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , cffi
 , numpy
 , portaudio
@@ -9,11 +10,12 @@
 
 buildPythonPackage rec {
   pname = "sounddevice";
-  version = "0.3.15";
+  version = "0.4.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "028f6e5df83027f4bfba5d6d61e6d46eb8689f9e647825e09f539920dee17d2c";
+    sha256 = "007cfef077c447eebbdbca3d510ca4365c211c2c6c4d2912d6eec43c8cbcbc02";
   };
 
   propagatedBuildInputs = [ cffi numpy portaudio ];
diff --git a/nixpkgs/pkgs/development/python-modules/soupsieve/1.nix b/nixpkgs/pkgs/development/python-modules/soupsieve/1.nix
new file mode 100644
index 000000000000..bb5ecbc839c2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/soupsieve/1.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytest
+, beautifulsoup4
+, isPy3k
+, backports_functools_lru_cache
+}:
+
+buildPythonPackage rec {
+  pname = "soupsieve";
+  version = "1.9.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "7985bacc98c34923a439967c1a602dc4f1e15f923b6fcf02344184f86cc7efaa";
+  };
+
+  checkPhase = ''
+    py.test
+  '';
+
+  checkInputs = [ pytest beautifulsoup4 ];
+
+  propagatedBuildInputs = lib.optional (!isPy3k) backports_functools_lru_cache;
+
+  # Circular test dependency on beautifulsoup4
+  doCheck = false;
+
+  meta = {
+    description = "A CSS4 selector implementation for Beautiful Soup";
+    license = lib.licenses.mit;
+    homepage = "https://github.com/facelessuser/soupsieve";
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/python-modules/soupsieve/default.nix b/nixpkgs/pkgs/development/python-modules/soupsieve/default.nix
index bb5ecbc839c2..22d1926d8bb4 100644
--- a/nixpkgs/pkgs/development/python-modules/soupsieve/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/soupsieve/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "soupsieve";
-  version = "1.9.6";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7985bacc98c34923a439967c1a602dc4f1e15f923b6fcf02344184f86cc7efaa";
+    sha256 = "a59dc181727e95d25f781f0eb4fd1825ff45590ec8ff49eadfd7f1a537cc0232";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/annotation-test/annotate.py b/nixpkgs/pkgs/development/python-modules/spacy/annotation-test/annotate.py
new file mode 100644
index 000000000000..822eb8ac0743
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/spacy/annotation-test/annotate.py
@@ -0,0 +1,69 @@
+import pytest
+import spacy
+
+en_text = (
+    "When Sebastian Thrun started working on self-driving cars at "
+    "Google in 2007, few people outside of the company took him "
+    "seriously. “I can tell you very senior CEOs of major American "
+    "car companies would shake my hand and turn away because I wasn’t "
+    "worth talking to,” said Thrun, in an interview with Recode earlier "
+    "this week.")
+
+
+@pytest.fixture
+def en_core_web_sm():
+    return spacy.load("en_core_web_sm")
+
+
+@pytest.fixture
+def doc_en_core_web_sm(en_core_web_sm):
+    return en_core_web_sm(en_text)
+
+
+def test_entities(doc_en_core_web_sm):
+    entities = list(map(lambda e: (e.text, e.label_),
+                        doc_en_core_web_sm.ents))
+
+    assert entities == [
+        ('Sebastian Thrun', 'PERSON'),
+        ('Google', 'ORG'), ('2007', 'DATE'),
+        ('American', 'NORP'),
+        ('Thrun', 'ORG'),
+        ('earlier this week', 'DATE')
+    ]
+
+
+def test_nouns(doc_en_core_web_sm):
+    assert [
+        chunk.text for chunk in doc_en_core_web_sm.noun_chunks] == [
+        'Sebastian Thrun',
+        'self-driving cars',
+        'Google',
+        'few people',
+        'the company',
+        'him',
+        'I',
+        'you',
+        'very senior CEOs',
+        'major American car companies',
+        'my hand',
+        'I',
+        'Thrun',
+        'an interview',
+        'Recode']
+
+
+def test_verbs(doc_en_core_web_sm):
+    assert [
+        token.lemma_ for token in doc_en_core_web_sm if token.pos_ == "VERB"] == [
+        'start',
+        'work',
+        'drive',
+        'take',
+        'can',
+        'tell',
+        'would',
+        'shake',
+        'turn',
+        'talk',
+        'say']
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/annotation-test/default.nix b/nixpkgs/pkgs/development/python-modules/spacy/annotation-test/default.nix
new file mode 100644
index 000000000000..1b066ff3c39d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/spacy/annotation-test/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, pytest, spacy_models }:
+
+stdenv.mkDerivation {
+  name = "spacy-annotation-test";
+
+  src = ./.;
+
+  dontConfigure = true;
+  dontBuild = true;
+  doCheck = true;
+
+  checkInputs = [ pytest spacy_models.en_core_web_sm ];
+
+  checkPhase = ''
+    pytest annotate.py
+  '';
+
+  installPhase = ''
+    touch $out
+  '';
+
+  meta.timeout = 60;
+}
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/default.nix b/nixpkgs/pkgs/development/python-modules/spacy/default.nix
index f0a143ec30c7..077aea4dc9a3 100644
--- a/nixpkgs/pkgs/development/python-modules/spacy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spacy/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, callPackage
 , fetchPypi
 , pythonOlder
 , pytest
@@ -21,11 +22,11 @@
 
 buildPythonPackage rec {
   pname = "spacy";
-  version = "2.3.0";
+  version = "2.3.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0nri437dyapiq5gx8lbmjdfvqw2cnw3di13kp44rzr17bm5yh2jv";
+    sha256 = "07zf7kivj4r1n6xwisld7n90bpi095bqbc9xpv668grq1rpf53c1";
   };
 
   propagatedBuildInputs = [
@@ -54,9 +55,18 @@ buildPythonPackage rec {
   # '';
 
   postPatch = ''
-    substituteInPlace setup.cfg --replace "thinc==7.4.1" "thinc>=7.4.1,<8"
+    substituteInPlace setup.cfg \
+      --replace "blis>=0.4.0,<0.5.0" "blis>=0.4.0,<1.0" \
+      --replace "catalogue>=0.0.7,<1.1.0" "catalogue>=0.0.7,<3.0" \
+      --replace "plac>=0.9.6,<1.2.0" "plac>=0.9.6,<2.0" \
+      --replace "srsly>=1.0.2,<1.1.0" "srsly>=1.0.2,<3.0" \
+      --replace "thinc==7.4.1" "thinc>=7.4.1,<8"
   '';
 
+  pythonImportsCheck = [ "spacy" ];
+
+  passthru.tests = callPackage ./annotation-test {};
+
   meta = with lib; {
     description = "Industrial-strength Natural Language Processing (NLP) with Python and Cython";
     homepage = "https://github.com/explosion/spaCy";
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/models.json b/nixpkgs/pkgs/development/python-modules/spacy/models.json
index 1c02b05d303e..3a427f8932a5 100644
--- a/nixpkgs/pkgs/development/python-modules/spacy/models.json
+++ b/nixpkgs/pkgs/development/python-modules/spacy/models.json
@@ -1,79 +1,145 @@
 [{
+  "pname": "da_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "18y1jany1ha27jkwb9563haxsbylm0axkh5c8009lsfxc8y2w9hr",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "da_core_news_md",
+  "version": "2.3.0",
+  "sha256": "06nm5grj5jdx0rja7vw1f91vvd69p6vhafrwpfr1npqk24j6cacb",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "da_core_news_sm",
+  "version": "2.3.0",
+  "sha256": "00byhlrcbg4wxplr473g9b3126pvk4vwy0q34xg0zx4994qb6rgn",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "de_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "0rixhgdz4z7sq6f2b1w3n5cn1645cr37g40hbd9xzlvdzdf5cg6d",
+  "license": "mit"
+},
+{
   "pname": "de_core_news_md",
   "version": "2.3.0",
   "sha256": "0kxir1w000r5fn1kpa38m7688xinkn2mk1m82aiwqlck3r72jdi6",
-  "license": "cc-by-sa-40"
+  "license": "mit"
 },
 {
   "pname": "de_core_news_sm",
   "version": "2.3.0",
   "sha256": "00cbmrf4njg28laysapdnp4rv4lw4yw03rxkynw1ain5fwb0izl7",
-  "license": "cc-by-sa-40"
+  "license": "mit"
+},
+{
+  "pname": "el_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "001c19dd1kirlvzbdv2i89zw8nf6c4icv2w0chm7rd6x9m3i13gd",
+  "license": "cc-by-nc-sa-30"
 },
 {
   "pname": "el_core_news_md",
   "version": "2.3.0",
   "sha256": "170x8bzm5nf02mhkxyxjk58yk2639hsjb5b9prcc69500c0vmnp0",
-  "license": "cc-by-sa-40"
+  "license": "cc-by-nc-sa-30"
 },
 {
   "pname": "el_core_news_sm",
   "version": "2.3.0",
   "sha256": "10mh3za4jvr07rawzk8ps642rp11s3smraj9xvrxflik4fqkz18b",
-  "license": "cc-by-sa-40"
+  "license": "cc-by-nc-sa-30"
 },
 {
   "pname": "en_core_web_lg",
   "version": "2.3.0",
   "sha256": "0mfa5wz31ya295jhyj489gb4qy806zmpq1zc11bvv5alv2m35if2",
-  "license": "cc-by-sa-40"
+  "license": "mit"
 },
 {
   "pname": "en_core_web_md",
   "version": "2.3.0",
   "sha256": "1ys8sqkhiap1mq6mhbkbq8bc07lvl68xngbx725xkwvirzl5gabh",
-  "license": "cc-by-sa-40"
+  "license": "mit"
 },
 {
   "pname": "en_core_web_sm",
   "version": "2.3.0",
   "sha256": "04icv9qf4pj53ll8vqxcjl2a723q1k00i7lifk8wx5saif28g37a",
-  "license": "cc-by-sa-40"
+  "license": "mit"
 },
 {
   "pname": "en_vectors_web_lg",
   "version": "2.3.0",
   "sha256": "13g012rwh0bcxx3ii5mmygqzyryah1y3zd000zhidnacc1x1g743",
-  "license": "cc-by-sa-40"
+  "license": "cc-by-sa-30"
+},
+{
+  "pname": "es_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "1r0pr0lzs3j9w7rd5z9nw87iayjm36v7f7gamvaiiphs6bc5p7ls",
+  "license": "gpl3"
 },
 {
   "pname": "es_core_news_md",
   "version": "2.3.0",
   "sha256": "0nz33bmpr3rxqbnv6vb1id8pkfsvh8ii8vqplwgb3b8772kmpzy2",
-  "license": "cc-by-sa-40"
+  "license": "gpl3"
 },
 {
   "pname": "es_core_news_sm",
   "version": "2.3.0",
   "sha256": "02xqhg4m0gg5r9yibvl02zixkll6w0nsmbdhp07y5yyaqjarc90d",
-  "license": "cc-by-sa-40"
+  "license": "gpl3"
+},
+{
+  "pname": "fr_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "1yliamws8nqqjhpk9gr2dzlk0dms2mr958zbj21biv8fimbq60ik",
+  "license": "lgpllr"
 },
 {
   "pname": "fr_core_news_md",
   "version": "2.3.0",
   "sha256": "04fk212ksac3bp9dj7dmzsdcnbqmbsgymsic6ddcv9zbfdv5d0db",
-  "license": "cc-by-sa-40"
+  "license": "lgpllr"
 },
 {
   "pname": "fr_core_news_sm",
   "version": "2.3.0",
   "sha256": "0kldww855z67qfc9maa9z1lsvdf5vj5vc8gj0x3h68kv5n1xr4h0",
-  "license": "cc-by-sa-40"
+  "license": "lgpllr"
+},
+{
+  "pname": "it_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "192rdmqnwl3ajxzhnw4r1cqv5bkziv0yc2bbzckmzqss64wk7k70",
+  "license": "cc-by-nc-sa-30"
+},
+{
+  "pname": "it_core_news_md",
+  "version": "2.3.0",
+  "sha256": "019ih4vwq1w6j38j0wc8pyyg1an6yy37wxq2w4amwppynmmcnd5w",
+  "license": "cc-by-nc-sa-30"
 },
 {
   "pname": "it_core_news_sm",
   "version": "2.3.0",
   "sha256": "1c3ywqa8li0j7cyvd1xqbb096y61978hd6qv7rc6cxxjdhmkrrds",
+  "license": "cc-by-nc-sa-40"
+},
+{
+  "pname": "lt_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "0hn5w8n7mgv33i6gvnaxl1j44n9gz4j86gg1a9jjlgdw5z98n0p2",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "lt_core_news_md",
+  "version": "2.3.0",
+  "sha256": "1xya79cz2xd5vgzg6qg0ww5j2bmv7kppdk3mdjf6zpwrlzwdbk5d",
   "license": "cc-by-sa-40"
 },
 {
@@ -83,26 +149,116 @@
   "license": "cc-by-sa-40"
 },
 {
+  "pname": "nb_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "18mblypw3c82004qz5w1p3262iqwn99wl9b781dq7aqwxskr02d6",
+  "license": "mit"
+},
+{
+  "pname": "nb_core_news_md",
+  "version": "2.3.0",
+  "sha256": "0iw97k9glxbar8mrpvnmmcb1nffgdhb83akn99p53pwmqbzxy9p3",
+  "license": "mit"
+},
+{
   "pname": "nb_core_news_sm",
   "version": "2.3.0",
   "sha256": "07b7xri2q3m7fvn9a2gjc1044a3f14231vr32hrw96h7k6vg95h7",
   "license": "mit"
 },
 {
+  "pname": "nl_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "016166kzpgi0p3m0x3k308a0r60a28yz7npagjvmpl1dfm9lzhnv",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "nl_core_news_md",
+  "version": "2.3.0",
+  "sha256": "1anfhig531k9k14s0cbgsvmvifp3h50qi1h8dhx894kjmq10k2lg",
+  "license": "cc-by-sa-40"
+},
+{
   "pname": "nl_core_news_sm",
   "version": "2.3.0",
   "sha256": "0alvz7pn7cj0yax8h5gp71vrdblh3mcsmyhzgiddsd44ry35nxnj",
   "license": "cc-by-sa-40"
 },
 {
+  "pname": "pl_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "1acchp8pv1h4c6cwvxz07lh4ychn6aw809zfg3mbbsxgsgd2ahjr",
+  "license": "gpl3"
+},
+{
+  "pname": "pl_core_news_md",
+  "version": "2.3.0",
+  "sha256": "19jjjjvbys3ayibkm3cx497b4bh63ll39hfq04wx116rj4ajpwwg",
+  "license": "gpl3"
+},
+{
+  "pname": "pl_core_news_sm",
+  "version": "2.3.0",
+  "sha256": "166mqlfkgiszcc6hwg2mr6sir9y88y22nd81a1nidq0fiif5lfji",
+  "license": "gpl3"
+},
+{
+  "pname": "pt_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "18gvdmfwyy2sbq6206imglhghyagd6a4gb6wcfkwhm7lzbnq714d",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "pt_core_news_md",
+  "version": "2.3.0",
+  "sha256": "1yxnpwby2aq6ydvd35lylc4fs141fisfnzlx8pl88pp2b2gxijvl",
+  "license": "cc-by-sa-40"
+},
+{
   "pname": "pt_core_news_sm",
   "version": "2.3.0",
   "sha256": "1vcvzdg9f93x0vaafkk9l9xhpmaavfj0cf0l3p06c5kx2d76f9ph",
   "license": "cc-by-sa-40"
 },
 {
+  "pname": "ro_core_news_sm",
+  "version": "2.3.0",
+  "sha256": "0lsmbdwsaczv37y5sa1vvgwszy2hs8jp24a0nvc5qm8vb71rxj8w",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "ro_core_news_md",
+  "version": "2.3.0",
+  "sha256": "1igwkz3yd1117gi2g78yilh9ln8n5yrdimas4prfxjgzwid3q8bc",
+  "license": "cc-by-sa-40"
+},
+{
+  "pname": "ro_core_news_lg",
+  "version": "2.3.0",
+  "sha256": "0id1y32kjfans7llh1i55rgr4n2x6xn208y4qf6yl3pbc17i0n9z",
+  "license": "cc-by-sa-40"
+},
+{
   "pname": "xx_ent_wiki_sm",
   "version": "2.3.0",
   "sha256": "0x3zmmybl5kh4dn5prkfmr4q5j9bh13p40qc3rhdfi0i3jxc11pn",
-  "license": "cc-by-sa-40"
+  "license": "mit"
+},
+{
+  "pname": "zh_core_web_lg",
+  "version": "2.3.1",
+  "sha256": "17zxk7cz47k07yb3qaigc3sx4dj4zwilr1lsn2jq6w7jc8k2h1ll",
+  "license": "mit"
+},
+{
+  "pname": "zh_core_web_md",
+  "version": "2.3.1",
+  "sha256": "1n4iwxyam4ykn0f9jdzwkhczack8r9c3kkbyga3c4h6iwqsflzcj",
+  "license": "mit"
+},
+{
+  "pname": "zh_core_web_sm",
+  "version": "2.3.1",
+  "sha256": "1lj5nwhx38cpwnvajwxlfkf84dr1xx2h6wwbg3scycsh459i9fpc",
+  "license": "mit"
 }]
diff --git a/nixpkgs/pkgs/development/python-modules/spacy/models.nix b/nixpkgs/pkgs/development/python-modules/spacy/models.nix
index b091c3b7d56c..c4a314ea4742 100644
--- a/nixpkgs/pkgs/development/python-modules/spacy/models.nix
+++ b/nixpkgs/pkgs/development/python-modules/spacy/models.nix
@@ -1,6 +1,9 @@
-{ stdenv, buildPythonPackage, fetchurl, spacy }:
+{ stdenv, lib, buildPythonPackage, fetchurl, jieba, pkuseg, spacy }:
 let
-  buildModelPackage = { pname, version, sha256, license }: buildPythonPackage {
+  buildModelPackage = { pname, version, sha256, license }:
+  let
+    lang = builtins.substring 0 2 pname;
+  in buildPythonPackage {
     inherit pname version;
 
     src = fetchurl {
@@ -8,7 +11,10 @@ let
       inherit sha256;
     };
 
-    propagatedBuildInputs = [ spacy ];
+    propagatedBuildInputs = [ spacy ]
+      ++ lib.optionals (lang == "zh") [ jieba pkuseg ];
+
+    pythonImportsCheck = [ pname ];
 
     meta = with stdenv.lib; {
       description = "Models for the spaCy NLP library";
diff --git a/nixpkgs/pkgs/development/python-modules/sparse/default.nix b/nixpkgs/pkgs/development/python-modules/sparse/default.nix
index 355453ed26e6..d72830f3fb90 100644
--- a/nixpkgs/pkgs/development/python-modules/sparse/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sparse/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , isPy3k
+, dask
 , numpy
 , scipy
 , numba
@@ -10,16 +11,16 @@
 
 buildPythonPackage rec {
   pname = "sparse";
-  version = "0.9.1";
+  version = "0.10.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04gfwm1y9knryx992biniqa3978n3chr38iy3y4i2b8wy52fzy3d";
+    sha256 = "ffbca00a53f938e4f04230f582b210440efb54d74d60af1d1ced3864f61677ac";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest dask ];
   propagatedBuildInputs = [
     numpy
     scipy
diff --git a/nixpkgs/pkgs/development/python-modules/spectral-cube/default.nix b/nixpkgs/pkgs/development/python-modules/spectral-cube/default.nix
index 3e520919f334..b0b3e4b8f65f 100644
--- a/nixpkgs/pkgs/development/python-modules/spectral-cube/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spectral-cube/default.nix
@@ -1,6 +1,7 @@
 { lib
 , fetchFromGitHub
 , buildPythonPackage
+, aplpy
 , astropy
 , radio_beam
 , pytest
@@ -24,7 +25,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ astropy-helpers ];
 
-  checkInputs = [ pytest pytest-astropy ];
+  checkInputs = [ aplpy pytest pytest-astropy ];
 
   # Disable automatic update of the astropy-helper module
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/spglib/default.nix b/nixpkgs/pkgs/development/python-modules/spglib/default.nix
index 2044e3799375..37b9c24a22e1 100644
--- a/nixpkgs/pkgs/development/python-modules/spglib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spglib/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "spglib";
-  version = "1.15.1";
+  version = "1.16.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0c1nbpd5wy361xga8lw36xwc9yyz7rylsjr0z7aw7bn3s35bnkbx";
+    sha256 = "94d056e48e7e6fe2e6fe4161471e774ac03221a6225fd83d551d3184220c1edf";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix
index f90ed55ee342..95aa0c5fdeb8 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix
@@ -1,11 +1,13 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-applehelp";
   version = "1.0.2";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
index 859181d675fc..8eec8ab3267a 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
@@ -1,11 +1,13 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-htmlhelp";
   version = "1.0.3";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix
index 6c860cafa59f..9b1d93287b03 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix
@@ -1,11 +1,13 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-jsmath";
   version = "1.0.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
index a60a36413ac1..d3e9f30f50a8 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , setuptools_scm
+, m2r
 , pyyaml
 , jsonschema
 , sphinxcontrib_httpdomain
@@ -9,14 +10,15 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-openapi";
-  version = "0.6.0";
+  version = "0.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02pkzcmxikcfvkvcfsclnhymzl1lc84jz6vmdaslbgh4j5vlp5ym";
+    sha256 = "1c1bd10d7653912c59a42f727c62cbb7b75f7905ddd9ccc477ebfd1bc69f0cf3";
   };
 
-  propagatedBuildInputs = [setuptools_scm pyyaml jsonschema sphinxcontrib_httpdomain];
+  nativeBuildInputs = [ setuptools_scm ];
+  propagatedBuildInputs = [ pyyaml jsonschema m2r sphinxcontrib_httpdomain ];
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
index 60b8a06510ff..f8e826adf1f3 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
@@ -1,11 +1,13 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-qthelp";
   version = "1.0.3";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
index 5a5c0e3df6fd..05f2749c49d6 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
@@ -1,11 +1,13 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-serializinghtml";
   version = "1.1.4";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
index 79b2aa42e36b..0dc7297be69c 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-spelling";
-  version = "4.3.0";
+  version = "5.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0304dac9286378f9c608af8d885a08fe03a9c62b3ebfa8802008018d92371c19";
+    sha256 = "c8250ff02e6033c3aeabc41e91dc185168fecefb0c5722aaa3e2055a829e1e4c";
   };
 
   propagatedBuildInputs = [ sphinx pyenchant pbr ];
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
index bcf24413d63d..6b03c245ebb7 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-tikz";
-  version = "0.4.8";
+  version = "0.4.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rvm0l40iz1z03d09irkqdwzi9gs6pn0203hylaqbix5c7gabwhy";
+    sha256 = "054429a04ed253256a676ecc29f0bae2c644d5bd1150cd95d658990a07ebc8fe";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-websupport/1_1.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-websupport/1_1.nix
new file mode 100644
index 000000000000..b1bdf6a0dff6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-websupport/1_1.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxcontrib-websupport";
+  version = "1.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1501befb0fdf1d1c29a800fdbf4ef5dc5369377300ddbdd16d2cd40e54c6eefc";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  doCheck = false;
+
+  meta = {
+    description = "Sphinx API for Web Apps";
+    homepage = "http://sphinx-doc.org/";
+    license = lib.licenses.bsd2;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix
index b1bdf6a0dff6..45027ba15c43 100644
--- a/nixpkgs/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix
@@ -1,19 +1,20 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, sphinxcontrib-serializinghtml
 , six
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-websupport";
-  version = "1.1.2";
+  version = "1.2.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1501befb0fdf1d1c29a800fdbf4ef5dc5369377300ddbdd16d2cd40e54c6eefc";
+    sha256 = "4edf0223a0685a7c485ae5a156b6f529ba1ee481a1417817935b20bde1956232";
   };
 
-  propagatedBuildInputs = [ six ];
+  propagatedBuildInputs = [ six sphinxcontrib-serializinghtml ];
 
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/spidev/default.nix b/nixpkgs/pkgs/development/python-modules/spidev/default.nix
new file mode 100644
index 000000000000..0d0fd582363e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/spidev/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "spidev";
+  version = "3.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "03cicc9kpi5khhq0bl4dcy8cjcl2j488mylp8sna47hnkwl5qzwa";
+  };
+
+  # package does not include tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "spidev" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/doceme/py-spidev";
+    description = "Python bindings for Linux SPI access through spidev";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/python-modules/splinter/default.nix b/nixpkgs/pkgs/development/python-modules/splinter/default.nix
index 1ff38f0a6dfb..fde5733a864a 100644
--- a/nixpkgs/pkgs/development/python-modules/splinter/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/splinter/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "splinter";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9e92535f273622507ac157612c3bb0e9cee7b5ccd2aa097d47b408e34c2ca356";
+    sha256 = "459e39e7a9f7572db6f1cdb5fdc5ccfc6404f021dccb969ee6287be2386a40db";
   };
 
   propagatedBuildInputs = [ selenium ];
diff --git a/nixpkgs/pkgs/development/python-modules/spotipy/default.nix b/nixpkgs/pkgs/development/python-modules/spotipy/default.nix
index 74ab81c2f08a..47b12a3565dd 100644
--- a/nixpkgs/pkgs/development/python-modules/spotipy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spotipy/default.nix
@@ -1,15 +1,23 @@
-{ stdenv, buildPythonPackage, fetchPypi, requests }:
+{ stdenv, buildPythonPackage, fetchPypi, requests, six, mock }:
 
 buildPythonPackage rec {
   pname = "spotipy";
-  version = "2.10.0";
+  version = "2.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0s2f9yxhfkfipbb06965gfjq4lg0khp5vcykijrx6dzxyh20vggm";
+    sha256 = "d1a85b8831ed60d2290ab9bbba289c548fb9680889757252c02dab2f2327d865";
   };
 
-  propagatedBuildInputs = [ requests ];
+  propagatedBuildInputs = [ requests six ];
+  checkInputs = [ mock ];
+
+  preConfigure = ''
+    substituteInPlace setup.py \
+      --replace "mock==2.0.0" "mock"
+  '';
+
+  pythonImportsCheck = [ "spotipy" ];
 
   meta = with stdenv.lib; {
     homepage = "https://spotipy.readthedocs.org/";
diff --git a/nixpkgs/pkgs/development/python-modules/spyder-kernels/0.x.nix b/nixpkgs/pkgs/development/python-modules/spyder-kernels/0.x.nix
index c4a61520333e..63ed0604fe52 100644
--- a/nixpkgs/pkgs/development/python-modules/spyder-kernels/0.x.nix
+++ b/nixpkgs/pkgs/development/python-modules/spyder-kernels/0.x.nix
@@ -1,4 +1,4 @@
-{ 
+{
   lib
   , buildPythonPackage
   , fetchFromGitHub
@@ -6,7 +6,7 @@
   , ipykernel
   , wurlitzer
   , jupyter_client
-  , pyzmq 
+  , pyzmq
   , numpy
   , pandas
   , scipy
diff --git a/nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix b/nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix
index 9a6d51e48307..868ce80558a6 100644
--- a/nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spyder-kernels/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "spyder-kernels";
-  version = "1.9.1";
+  version = "1.9.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "48f71252d0a7c7a91242e70d47618a432ee5f9f6666e651473a54bc55513571c";
+    sha256 = "ca9d997c475b714b54d2fd67aa140837ec3630e91cbbc2e0cd190f1b0bd9fe9d";
   };
 
   propagatedBuildInputs = [
@@ -23,7 +23,9 @@ buildPythonPackage rec {
 
   meta = with stdenv.lib; {
     description = "Jupyter kernels for Spyder's console";
-    homepage = "https://github.com/spyder-ide/spyder-kernels";
+    homepage = "https://docs.spyder-ide.org/current/ipythonconsole.html";
+    downloadPage = "https://github.com/spyder-ide/spyder-kernels/releases";
+    changelog = "https://github.com/spyder-ide/spyder-kernels/blob/master/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ gebner ];
   };
diff --git a/nixpkgs/pkgs/development/python-modules/spyder/3.nix b/nixpkgs/pkgs/development/python-modules/spyder/3.nix
index e5c5683f5dc4..cac20ad6fce5 100644
--- a/nixpkgs/pkgs/development/python-modules/spyder/3.nix
+++ b/nixpkgs/pkgs/development/python-modules/spyder/3.nix
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    jedi pycodestyle psutil pyflakes rope pylint keyring numpydoc 
+    jedi pycodestyle psutil pyflakes rope pylint keyring numpydoc
     qtconsole qtawesome nbconvert mccabe pyopengl cloudpickle spyder-kernels_0_5
     pygments qtpy pyzmq chardet pyqtwebengine
   ];
diff --git a/nixpkgs/pkgs/development/python-modules/spyder/default.nix b/nixpkgs/pkgs/development/python-modules/spyder/default.nix
index 47da1d9c0d2c..2b0276afc9d8 100644
--- a/nixpkgs/pkgs/development/python-modules/spyder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/spyder/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "spyder";
-  version = "4.1.3";
+  version = "4.1.5";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c88d973c6423fe0017818482a98163bb72e7f6a8c3127ff464930109df0958d9";
+    sha256 = "d467f020b694193873a237ce6744ae36bd5a59f4d2b7ffbeb15dda68b03f5aa1";
   };
 
   nativeBuildInputs = [ pyqtwebengine.wrapQtAppsHook ];
@@ -35,14 +35,17 @@ buildPythonPackage rec {
     comment = "Scientific Python Development Environment";
     desktopName = "Spyder";
     genericName = "Python IDE";
-    categories = "Application;Development;IDE;";
+    categories = "Development;IDE;";
   };
 
   postPatch = ''
     # remove dependency on pyqtwebengine
     # this is still part of the pyqt 5.11 version we have in nixpkgs
     sed -i /pyqtwebengine/d setup.py
-    substituteInPlace setup.py --replace "pyqt5<5.13" "pyqt5"
+    substituteInPlace setup.py \
+      --replace "pyqt5<5.13" "pyqt5" \
+      --replace "parso==0.7.0" "parso" \
+      --replace "jedi==0.17.1" "jedi"
   '';
 
   postInstall = ''
@@ -69,7 +72,9 @@ buildPythonPackage rec {
       environment for the Python language with advanced editing, interactive
       testing, debugging and introspection features.
     '';
-    homepage = "https://github.com/spyder-ide/spyder/";
+    homepage = "https://www.spyder-ide.org/";
+    downloadPage = "https://github.com/spyder-ide/spyder/releases";
+    changelog = "https://github.com/spyder-ide/spyder/blob/master/CHANGELOG.md";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ gebner ];
diff --git a/nixpkgs/pkgs/development/python-modules/sqlalchemy-citext/default.nix b/nixpkgs/pkgs/development/python-modules/sqlalchemy-citext/default.nix
index 1f0dd5eb7eae..bf8a9d3bbdbd 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlalchemy-citext/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlalchemy-citext/default.nix
@@ -7,20 +7,21 @@
 
 buildPythonPackage rec {
   pname = "sqlalchemy-citext";
-  version = "1.3-0";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7d7343037a35153d6f94c3c2f6baf391f88a57651c3bde5d6749d216859ae4c5";
+    sha256 = "69ba00f5505f92a1455a94eefc6d3fcf72dda3691ab5398a0b4d0d8d85bd6aab";
   };
 
   propagatedBuildInputs = [
     sqlalchemy
   ];
 
-  checkPhase = ''
-    ${python.interpreter} tests/test_citext.py
-  '';
+  # tests are not packaged in pypi tarball
+  doCheck = false;
+
+  pythonImportsCheck = [ "citext" ];
 
   meta = with lib; {
     description = "A sqlalchemy plugin that allows postgres use of CITEXT";
diff --git a/nixpkgs/pkgs/development/python-modules/sqlalchemy-continuum/default.nix b/nixpkgs/pkgs/development/python-modules/sqlalchemy-continuum/default.nix
new file mode 100644
index 000000000000..4050adc29f55
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sqlalchemy-continuum/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, lib
+, fetchPypi
+, buildPythonPackage
+, flask
+, flask_login
+, flask_sqlalchemy
+, flexmock
+, pytestCheckHook
+, sqlalchemy
+, sqlalchemy-utils
+, sqlalchemy-i18n
+}:
+
+buildPythonPackage rec {
+  pname = "SQLAlchemy-Continuum";
+  version = "1.3.11";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1c9yd9s98crqgs39rc2ld2r0nchgyjrfbjdlqb99y4hhc6lv04xw";
+  };
+
+  propagatedBuildInputs = [
+    sqlalchemy
+    sqlalchemy-utils
+  ];
+
+  # indicate tests that we don't have a database server at hand
+  DB = "sqlite";
+
+  checkInputs = [
+    pytestCheckHook
+    sqlalchemy-i18n
+    flask
+    flask_login
+    flask_sqlalchemy
+    flexmock
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/kvesteri/sqlalchemy-continuum/";
+    description = "Versioning and auditing extension for SQLAlchemy";
+    license = licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sqlalchemy-i18n/default.nix b/nixpkgs/pkgs/development/python-modules/sqlalchemy-i18n/default.nix
new file mode 100644
index 000000000000..4ef0adefe3e7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sqlalchemy-i18n/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, lib
+, fetchPypi
+, buildPythonPackage
+, sqlalchemy
+, sqlalchemy-utils
+, psycopg2
+}:
+
+buildPythonPackage rec {
+  pname = "SQLAlchemy-i18n";
+  version = "1.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "15xah8643p29kciz365ixs9pbsflj92pzr2d9anbdh2biyf4cka8";
+  };
+
+  propagatedBuildInputs = [
+    sqlalchemy
+    sqlalchemy-utils
+  ];
+
+  # tests require running a postgresql server
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://github.com/kvesteri/sqlalchemy-i18n";
+    description = "Internationalization extension for SQLAlchemy models";
+    license = licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sqlalchemy-utils/default.nix b/nixpkgs/pkgs/development/python-modules/sqlalchemy-utils/default.nix
index 67242a991659..657ec7ac0721 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlalchemy-utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlalchemy-utils/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "sqlalchemy-utils";
-  version = "0.36.5";
+  version = "0.36.6";
 
   src = fetchPypi {
     inherit version;
     pname = "SQLAlchemy-Utils";
-    sha256 = "0d3lrhqdw3lhkj79wpfxi6cmlxnw99prpq8m70c5q8kinv26h038";
+    sha256 = "0srs5w486wp5zydjs70igi5ypgxhm6h73grb85jz03fqpqaanzvs";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix b/nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix
index cd2b00021e7b..a4cb3bd6d734 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlalchemy/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "SQLAlchemy";
-  version = "1.3.17";
+  version = "1.3.19";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "156a27548ba4e1fed944ff9fcdc150633e61d350d673ae7baaf6c25c04ac1f71";
+    sha256 = "3bba2e9fbedb0511769780fe1d63007081008c5c2d7d715e91858c94dbaa260e";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sqlitedict/default.nix b/nixpkgs/pkgs/development/python-modules/sqlitedict/default.nix
index 5037aa2c3681..1c28d6a0976d 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlitedict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlitedict/default.nix
@@ -3,20 +3,20 @@
 buildPythonPackage rec {
   pname = "sqlitedict";
   version = "1.6.0";
-  
+
   src = fetchFromGitHub {
     owner = "RaRe-Technologies";
     repo = "sqlitedict";
     rev = version;
     sha256 = "1yq94lgpny9qcfbsl39npjvrsjfggi3lj2kpzcsxcfdfgxag6m2m";
   };
-  
+
   checkInputs = [ pytest ];
-  
+
   checkPhase = ''
     pytest tests
   '';
-  
+
   meta = with lib; {
     description = "Persistent, thread-safe dict";
     homepage = "https://github.com/RaRe-Technologies/sqlitedict";
diff --git a/nixpkgs/pkgs/development/python-modules/sqlmap/default.nix b/nixpkgs/pkgs/development/python-modules/sqlmap/default.nix
index 81aede240eeb..f2decd2c0dd4 100644
--- a/nixpkgs/pkgs/development/python-modules/sqlmap/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sqlmap/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "sqlmap";
-  version = "1.4.6";
+  version = "1.4.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0da3a6700a370fcd671265502c7c4aca39a1d055de9a1dcc8b9b751c9ad3efa8";
+    sha256 = "af789cc2d9b7cab2f71087967867b3587db9636b38bef1ffb39165a0675a6d87";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/srsly/default.nix b/nixpkgs/pkgs/development/python-modules/srsly/default.nix
index 39765f06a50e..d1de78788d85 100644
--- a/nixpkgs/pkgs/development/python-modules/srsly/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/srsly/default.nix
@@ -3,6 +3,7 @@
 , buildPythonPackage
 , fetchPypi
 , pythonOlder
+, cython
 , mock
 , numpy
 , pathlib
@@ -12,14 +13,16 @@
 
 buildPythonPackage rec {
   pname = "srsly";
-  version = "1.0.2";
+  version = "2.2.0";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1n0f9kbbz5akpbiqqz4j3p7zqai3zasw8cqai9zj1pv7sn0qn9ar";
+    sha256 = "1h246zvh2wsqyjlw3a3bwmd1zwrkgpflk4z4i9k3sqp2j1jika54";
   };
 
-  propagatedBuildInputs = lib.optional (pythonOlder "3.4") pathlib;
+  nativeBuildInputs = [ cython ];
 
   checkInputs = [
     mock
@@ -32,6 +35,8 @@ buildPythonPackage rec {
   # Possibly because of sandbox restrictions.
   doCheck = false;
 
+  pythonImportsCheck = [ "srsly" ];
+
   meta = with stdenv.lib; {
     description = "Modern high-performance serialization utilities for Python";
     homepage = "https://github.com/explosion/srsly";
diff --git a/nixpkgs/pkgs/development/python-modules/srvlookup/default.nix b/nixpkgs/pkgs/development/python-modules/srvlookup/default.nix
new file mode 100644
index 000000000000..6cbdc81ef86d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/srvlookup/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchPypi, buildPythonPackage
+, dnspython
+, mock, nose
+}:
+
+buildPythonPackage rec {
+  pname = "srvlookup";
+  version = "2.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1zf1v04zd5phabyqh0nhplr5a8vxskzfrzdh4akljnz1yk2n2a0b";
+  };
+
+  propagatedBuildInputs = [ dnspython ];
+  checkInputs = [ mock nose ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/gmr/srvlookup";
+    license = [ licenses.bsd3 ];
+    description = "A small wrapper for dnspython to return SRV records for a given host, protocol, and domain name as a list of namedtuples.";
+    maintainers = [ maintainers.mmlb ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sseclient/default.nix b/nixpkgs/pkgs/development/python-modules/sseclient/default.nix
index 559b3fff178a..8ba678ed5757 100644
--- a/nixpkgs/pkgs/development/python-modules/sseclient/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sseclient/default.nix
@@ -1,6 +1,6 @@
 { stdenv, buildPythonPackage, fetchPypi
 , requests, six
-, backports_unittest-mock, pytest, pytestrunner }:
+, backports_unittest-mock, pytestCheckHook, pytestrunner }:
 
 buildPythonPackage rec {
   pname = "sseclient";
@@ -13,7 +13,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests six ];
 
-  checkInputs = [ backports_unittest-mock pytest pytestrunner ];
+  checkInputs = [ backports_unittest-mock pytestCheckHook pytestrunner ];
+
+  # tries to open connection to wikipedia
+  disabledTests = [ "event_stream" ];
 
   meta = with stdenv.lib; {
     description = "Client library for reading Server Sent Event streams";
diff --git a/nixpkgs/pkgs/development/python-modules/sslyze/default.nix b/nixpkgs/pkgs/development/python-modules/sslyze/default.nix
new file mode 100644
index 000000000000..24b334ef8822
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sslyze/default.nix
@@ -0,0 +1,53 @@
+{ lib
+, fetchFromGitHub
+, pytest
+, buildPythonPackage
+, nassl
+, cryptography
+, typing-extensions
+, faker
+}:
+
+buildPythonPackage rec {
+  pname = "sslyze";
+  version = "3.0.8";
+
+  src = fetchFromGitHub {
+    owner = "nabla-c0d3";
+    repo = pname;
+    rev = version;
+    sha256 = "06mwzxw6xaqin2gwzcqb9r7qhbyx3k7zcxygxywi2bpxyjv9lq32";
+  };
+
+  patchPhase = ''
+    substituteInPlace setup.py \
+      --replace "cryptography>=2.6,<=2.9" "cryptography"
+  '';
+
+  checkInputs = [ pytest ];
+
+  checkPhase = ''
+    # Most of the tests are online; hence, applicable tests are listed
+    # explicitly here
+    pytest \
+      tests/test_main.py \
+      tests/test_scanner.py \
+      tests/cli_tests/test_console_output.py \
+      tests/cli_tests/test_json_output.py \
+      tests/cli_tests/test_server_string_parser.py \
+      tests/plugins_tests/test_scan_commands.py \
+      tests/plugins_tests/certificate_info/test_certificate_utils.py \
+      -k "not (TestScanner and test_client_certificate_missing)"
+  '';
+  pythonImportsCheck = [ "sslyze" ];
+
+  propagatedBuildInputs = [ nassl cryptography typing-extensions faker ];
+
+  meta = with lib; {
+    homepage = "https://github.com/nabla-c0d3/sslyze";
+    description = "Fast and powerful SSL/TLS scanning library";
+    platforms = platforms.linux ++ platforms.darwin;
+    license = licenses.agpl3;
+    maintainers = with maintainers; [ veehaitch ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/starfish/default.nix b/nixpkgs/pkgs/development/python-modules/starfish/default.nix
index 1affd797c13d..38f241111746 100644
--- a/nixpkgs/pkgs/development/python-modules/starfish/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/starfish/default.nix
@@ -26,11 +26,11 @@
 
 buildPythonPackage rec {
   pname = "starfish";
-  version = "0.1.10";
+  version = "0.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0340e37b732e184081b150f21bbbd4eed3643ab49f74633b9c4d827bda663235";
+    sha256 = "d635ef7b412b5781d6f98cd080b45098de6f3c7f7303e929b07c88b49d98ff12";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/starlette/default.nix b/nixpkgs/pkgs/development/python-modules/starlette/default.nix
index 842622e56f86..ff8a93d335ea 100644
--- a/nixpkgs/pkgs/development/python-modules/starlette/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/starlette/default.nix
@@ -21,19 +21,14 @@
 buildPythonPackage rec {
   pname = "starlette";
 
-  # This is not the latest version of Starlette, however, later
-  # versions of Starlette break FastAPI due to
-  # https://github.com/tiangolo/fastapi/issues/683. Please update when
-  # possible. FastAPI is currently Starlette's only dependent.
-
-  version = "0.13.4";
+  version = "0.13.8";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "1rk20rj62iigkkikb80bmalriyg1j3g28s25l8z2gijagv1v5c7l";
+    sha256 = "11i0yd8cqwscixajl734g11vf8pghki11c81chzfh8ifmj6mf9jk";
   };
 
   propagatedBuildInputs = [
@@ -57,6 +52,7 @@ buildPythonPackage rec {
   checkPhase = ''
     pytest --ignore=tests/test_graphql.py
   '';
+  pythonImportsCheck = [ "starlette" ];
 
   meta = with lib; {
     homepage = "https://www.starlette.io/";
diff --git a/nixpkgs/pkgs/development/python-modules/statsmodels/default.nix b/nixpkgs/pkgs/development/python-modules/statsmodels/default.nix
index c65fb0990f0f..ba6d0b64f544 100644
--- a/nixpkgs/pkgs/development/python-modules/statsmodels/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/statsmodels/default.nix
@@ -1,7 +1,7 @@
 { lib
-, self
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , nose
 , numpy
 , scipy
@@ -14,17 +14,20 @@
 buildPythonPackage rec {
   pname = "statsmodels";
   version = "0.11.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "5bde3fa0a35a91b45dba7cbc28270b5b649ff1d721c89290883f6e831672d5f0";
   };
 
-  checkInputs = with self; [ nose ];
-  propagatedBuildInputs = with self; [numpy scipy pandas patsy cython matplotlib];
+  nativeBuildInputs = [ cython ];
+  checkInputs = [ nose ];
+  propagatedBuildInputs = [ numpy scipy pandas patsy matplotlib ];
 
   # Huge test suites with several test failures
   doCheck = false;
+  pythonImportsCheck = [ "statsmodels" ];
 
   meta = {
     description = "Statistical computations and models for use with SciPy";
diff --git a/nixpkgs/pkgs/development/python-modules/stevedore/default.nix b/nixpkgs/pkgs/development/python-modules/stevedore/default.nix
index 0f73f8e8163b..2c09017d05be 100644
--- a/nixpkgs/pkgs/development/python-modules/stevedore/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stevedore/default.nix
@@ -1,19 +1,30 @@
-{ stdenv, buildPythonPackage, fetchPypi, pbr, setuptools, six }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, importlib-metadata
+, pbr
+, setuptools
+, six
+}:
 
 buildPythonPackage rec {
   pname = "stevedore";
-  version = "1.32.0";
+  version = "3.2.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "02shnm8r8c0bv494m8sjnrrlqy0pz5q5xrzpq069bx9sc8fszbqq";
+    sha256 = "1r8m8g7f13wdmfw5m7k0vj7bcx3psfg5yg2i8jlb08nrpsjily9q";
   };
 
-  doCheck = false;
+  propagatedBuildInputs = [ pbr setuptools six ]
+    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
-  propagatedBuildInputs = [ pbr setuptools six ];
+  doCheck = false;
+  pythonImportsCheck = [ "stevedore" ];
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "Manage dynamic plugins for Python applications";
     homepage = "https://pypi.python.org/pypi/stevedore";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/development/python-modules/streamz/default.nix b/nixpkgs/pkgs/development/python-modules/streamz/default.nix
index 9bbc312b183b..d34a826a0604 100644
--- a/nixpkgs/pkgs/development/python-modules/streamz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/streamz/default.nix
@@ -1,38 +1,27 @@
 { lib, buildPythonPackage, fetchPypi, fetchpatch
-, tornado
-, toolz
-, zict
-, six
-, pytest
-, networkx
-, distributed
 , confluent-kafka
+, distributed
+, flaky
 , graphviz
+, networkx
+, pytest
 , requests
+, six
+, toolz
+, tornado
+, zict
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "streamz";
-  version = "0.5.2";
+  version = "0.5.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "127rpdjgkcyjifmkqbhmqfbzlgi32n54rybrdxja610qr906y40c";
+    sha256 = "787ade4796c5b2e79af2aac678841ba3748a65a3adce150697dcdd31c4f80365";
   };
 
-  patches = [
-    # fix networkx rename issue of GiGraph.node -> DiGraph.nodes, remove on next bump
-    ( fetchpatch {
-      url = "https://github.com/python-streamz/streamz/commit/f8b7bdb6bcb9dd107677e82e755ff4695bf0c4be.patch";
-      sha256 = "1b2frp0j369gf55plxk2pigblhsc44m0rm9az01y83cjlcm26x2s";
-    })
-    # also, fix networkx rename issue of GiGraph.node -> DiGraph.nodes, remove on next bump
-    ( fetchpatch {
-      url = "https://github.com/python-streamz/streamz/commit/f7603f4cbea54f1548885881206a3ca9d6e52250.patch";
-      sha256 = "1125kqiaz6b3cifz0yk1zrkxj5804lfzl4kc58jhqajv8rsrbs45";
-    })
-  ];
-
   propagatedBuildInputs = [
     networkx
     tornado
@@ -44,11 +33,14 @@ buildPythonPackage rec {
   checkInputs = [
     confluent-kafka
     distributed
+    flaky
     graphviz
     pytest
     requests
   ];
 
+  disabled = pythonOlder "3.6";
+
   # Disable test_tcp_async because fails on sandbox build
   # disable kafka tests
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/strictyaml/default.nix b/nixpkgs/pkgs/development/python-modules/strictyaml/default.nix
index 2e4b416f0478..44345a9aa505 100644
--- a/nixpkgs/pkgs/development/python-modules/strictyaml/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/strictyaml/default.nix
@@ -1,17 +1,19 @@
 { buildPythonPackage
 , lib
 , fetchPypi
+, isPy27
 , ruamel_yaml
 , python-dateutil
 }:
 
 buildPythonPackage rec {
-  version = "1.0.6";
+  version = "1.1.0";
   pname = "strictyaml";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dd687a32577e0b832619ce0552eac86d6afad5fa7b61ab041bb765881c6a1f36";
+    sha256 = "6b07dbd4f77ab023ed4167c43ffc1b9f9354fb6075cc6ff3b91fefcbb80342ca";
   };
 
   propagatedBuildInputs = [ ruamel_yaml python-dateutil ];
@@ -19,6 +21,7 @@ buildPythonPackage rec {
   # Library tested with external tool
   # https://hitchdev.com/approach/contributing-to-hitch-libraries/
   doCheck = false;
+  pythonImportsCheck = [ "strictyaml" ];
 
   meta = with lib; {
     description = "Strict, typed YAML parser";
diff --git a/nixpkgs/pkgs/development/python-modules/stripe/default.nix b/nixpkgs/pkgs/development/python-modules/stripe/default.nix
index d675a1fd350d..c2f170fc6976 100644
--- a/nixpkgs/pkgs/development/python-modules/stripe/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stripe/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "stripe";
-  version = "2.48.0";
+  version = "2.50.0";
 
   # Tests require network connectivity and there's no easy way to disable
   # them. ~ C.
@@ -10,7 +10,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1w9ns4jjj0p50im9vbjn084zph1g2sfa6l01ydl98qsyj76f4psi";
+    sha256 = "0c3c02c9b65644502a701d4ff939964799bd1a581fb3f8bf75a3f8675527ef48";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/structlog/default.nix b/nixpkgs/pkgs/development/python-modules/structlog/default.nix
index 2156c7f28021..8f7e73a454a4 100644
--- a/nixpkgs/pkgs/development/python-modules/structlog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/structlog/default.nix
@@ -2,6 +2,7 @@
 , buildPythonPackage
 , fetchPypi
 , pytest
+, pytest-asyncio
 , python-rapidjson
 , pretend
 , freezegun
@@ -13,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "structlog";
-  version = "19.2.0";
+  version = "20.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4287058cf4ce1a59bc5dea290d6386d37f29a37529c9a51cdf7387e51710152b";
+    sha256 = "7a48375db6274ed1d0ae6123c486472aa1d0890b08d314d2b016f3aa7f35990b";
   };
 
-  checkInputs = [ pytest pretend freezegun simplejson twisted ]
+  checkInputs = [ pytest pytest-asyncio pretend freezegun simplejson twisted ]
     ++ lib.optionals (pythonAtLeast "3.6") [ python-rapidjson ];
   propagatedBuildInputs = [ six ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/stumpy/default.nix b/nixpkgs/pkgs/development/python-modules/stumpy/default.nix
index 4c26a62060e6..3ace2e925cbb 100644
--- a/nixpkgs/pkgs/development/python-modules/stumpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stumpy/default.nix
@@ -14,14 +14,14 @@
 , codecov
 }:
 
-buildPythonPackage {
+buildPythonPackage rec {
   pname = "stumpy";
-  version = "1.0";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "TDAmeritrade";
     repo = "stumpy";
-    rev = "115e477c1eec9291ab7c1fd8da30d67a70854f8e"; # no git version tag
+    rev = "v${version}";
     sha256 = "0s2s3y855jjwdb7p55zx8lknplz58ghpw547yzmqisacr968b67w";
   };
 
@@ -42,8 +42,9 @@ buildPythonPackage {
     codecov
   ];
 
+  # ignore changed numpy operations
   checkPhase = ''
-    pytest
+    pytest -k 'not allc'
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/stytra/default.nix b/nixpkgs/pkgs/development/python-modules/stytra/default.nix
index 9fba92ca12f7..88adbe4f7d94 100644
--- a/nixpkgs/pkgs/development/python-modules/stytra/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/stytra/default.nix
@@ -30,12 +30,12 @@
 
 buildPythonPackage rec {
   pname = "stytra";
-  version = "0.8.33";
+  version = "0.8.34";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b0aacc8e2c1bba33c337ebc76c0d8f2971c113d298aea2a375d84a5eeff5d83e";
+    sha256 = "aab9d07575ef599a9c0ae505656e3c03ec753462df3c15742f1f768f2b578f0a";
   };
   doCheck = false;
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/sunpy/default.nix b/nixpkgs/pkgs/development/python-modules/sunpy/default.nix
index ea937bef1bee..6830c7c13430 100644
--- a/nixpkgs/pkgs/development/python-modules/sunpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sunpy/default.nix
@@ -2,27 +2,29 @@
 , lib
 , buildPythonPackage
 , fetchFromGitHub
-, numpy
-, scipy
-, matplotlib
-, pandas
-, astropy
-, parfive
 , pythonOlder
-, sqlalchemy
-, scikitimage
-, glymur
-, beautifulsoup4
-, drms
-, python-dateutil
-, zeep
-, tqdm
+
 , asdf
+, astropy
 , astropy-helpers
+, beautifulsoup4
+, drms
+, glymur
 , hypothesis
+, matplotlib
+, numpy
+, pandas
+, parfive
 , pytest-astropy
-, pytestcov
 , pytest-mock
+, pytestcov
+, python-dateutil
+, scikitimage
+, scipy
+, sqlalchemy
+, towncrier
+, tqdm
+, zeep
 }:
 
 buildPythonPackage rec {
@@ -47,6 +49,7 @@ buildPythonPackage rec {
     parfive
     sqlalchemy
     scikitimage
+    towncrier
     glymur
     beautifulsoup4
     drms
diff --git a/nixpkgs/pkgs/development/python-modules/supervisor/default.nix b/nixpkgs/pkgs/development/python-modules/supervisor/default.nix
index 93dc91b4d10a..10c8f28e4463 100644
--- a/nixpkgs/pkgs/development/python-modules/supervisor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/supervisor/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "supervisor";
-  version = "4.1.0";
+  version = "4.2.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2dc86fe0476e945e61483d614ceb2cf4f93b95282eb243bdf792621994360383";
+    sha256 = "c479c875853e9c013d1fa73e529fd2165ff1ecaecc7e82810ba57e7362ae984d";
   };
 
   # wants to write to /tmp/foo which is likely already owned by another
diff --git a/nixpkgs/pkgs/development/python-modules/suseapi/default.nix b/nixpkgs/pkgs/development/python-modules/suseapi/default.nix
index 0e9f4f43656b..1c36f45090b8 100644
--- a/nixpkgs/pkgs/development/python-modules/suseapi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/suseapi/default.nix
@@ -36,4 +36,4 @@ buildPythonPackage rec {
     description = "Python module to work with various SUSE services";
     license = lib.licenses.gpl3Plus;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/svglib/default.nix b/nixpkgs/pkgs/development/python-modules/svglib/default.nix
new file mode 100644
index 000000000000..acd8fcb7816e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/svglib/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, cssselect2
+, lxml
+, pillow
+, pytest
+, reportlab
+, tinycss2
+}:
+
+buildPythonPackage rec {
+  pname = "svglib";
+  version = "1.0.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ff01593e8c07ea462d3742e1f4141bfa261cbd4400ceb25dfb8fec3508ad0e50";
+  };
+
+  disabled = !isPy3k;
+
+  propagatedBuildInputs = [
+    cssselect2
+    lxml
+    pillow
+    reportlab
+    tinycss2
+  ];
+
+  checkInputs = [
+    pytest
+  ];
+
+  # Ignore tests that require network access (TestWikipediaFlags and TestW3CSVG), and tests that
+  # require files missing in the 1.0.0 PyPI release (TestOtherFiles).
+  checkPhase = ''
+    py.test svglib tests -k 'not TestWikipediaFlags and not TestW3CSVG and not TestOtherFiles'
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/deeplook/svglib";
+    description = "A pure-Python library for reading and converting SVG";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ trepetti ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sybil/default.nix b/nixpkgs/pkgs/development/python-modules/sybil/default.nix
index 358c70d34254..a6f604dea037 100644
--- a/nixpkgs/pkgs/development/python-modules/sybil/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sybil/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonApplication rec {
   pname = "sybil";
-  version = "1.3.0";
+  version = "1.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0x34mzxvxj1kkld7sz9n90pdcinxcan56jg6cnnwkv87v7s1vna6";
+    sha256 = "fc46117619f2f704d1d1b02634fa3285f40479a3008172763b9998fe964f4d11";
   };
 
   checkInputs = [ pytest nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/sympy/1_5.nix b/nixpkgs/pkgs/development/python-modules/sympy/1_5.nix
new file mode 100644
index 000000000000..3a03fae154d7
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/sympy/1_5.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, fetchpatch
+, glibcLocales
+, mpmath
+}:
+
+buildPythonPackage rec {
+  pname = "sympy";
+  version = "1.5.1"; # Upgrades may break sage. Please test or ping @timokau.
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "d77901d748287d15281f5ffe5b0fef62dd38f357c2b827c44ff07f35695f4e7e";
+  };
+
+  checkInputs = [ glibcLocales ];
+
+  propagatedBuildInputs = [ mpmath ];
+
+  # tests take ~1h
+  doCheck = false;
+  pythonImportsCheck = [ "sympy" ];
+
+  preCheck = ''
+    export LANG="en_US.UTF-8"
+  '';
+
+  meta = with lib; {
+    description = "A Python library for symbolic mathematics";
+    homepage    = "https://www.sympy.org/";
+    license     = licenses.bsd3;
+    maintainers = with maintainers; [ lovek323 timokau ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/sympy/default.nix b/nixpkgs/pkgs/development/python-modules/sympy/default.nix
index 3a03fae154d7..52e2bb5af127 100644
--- a/nixpkgs/pkgs/development/python-modules/sympy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/sympy/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "sympy";
-  version = "1.5.1"; # Upgrades may break sage. Please test or ping @timokau.
+  version = "1.6.2"; # Upgrades may break sage. Please test or ping @timokau.
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d77901d748287d15281f5ffe5b0fef62dd38f357c2b827c44ff07f35695f4e7e";
+    sha256 = "1cfadcc80506e4b793f5b088558ca1fcbeaec24cd6fc86f1fdccaa3ee1d48708";
   };
 
   checkInputs = [ glibcLocales ];
diff --git a/nixpkgs/pkgs/development/python-modules/tag-expressions/default.nix b/nixpkgs/pkgs/development/python-modules/tag-expressions/default.nix
new file mode 100644
index 000000000000..7082ca54154b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tag-expressions/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "tag-expressions";
+  version = "1.1.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1c0a49c3c0357976822b03c43db8d4a1c5548e16fb07ac939c10bbd5183f529d";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Package to parse logical tag expressions";
+    homepage = "http://github.com/timofurrer/tag-expressions";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tasklib/default.nix b/nixpkgs/pkgs/development/python-modules/tasklib/default.nix
index 9e37df17bf29..1f204aecf141 100644
--- a/nixpkgs/pkgs/development/python-modules/tasklib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tasklib/default.nix
@@ -8,11 +8,11 @@ wsl_stub = writeShellScriptBin "wsl" "true";
 
 in buildPythonPackage rec {
   pname = "tasklib";
-  version = "1.3.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "19yra86g3wz2xgk22dnrjjh3gla969vb8jrps5rf0cdmsm9qqisv";
+    sha256 = "da66e84614b09443aa67c4dc2922213417329c39511dc5b384d8a5671e29115e";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/tblib/default.nix b/nixpkgs/pkgs/development/python-modules/tblib/default.nix
index e7cbb7848f41..86992e6e16aa 100644
--- a/nixpkgs/pkgs/development/python-modules/tblib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tblib/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "tblib";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "229bee3754cb5d98b4837dd5c4405e80cfab57cb9f93220410ad367f8b352344";
+    sha256 = "059bd77306ea7b419d4f76016aef6d7027cc8a0785579b5aad198803435f882c";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/tbm-utils/default.nix b/nixpkgs/pkgs/development/python-modules/tbm-utils/default.nix
index f3199f7e5d11..2d0efeceda04 100644
--- a/nixpkgs/pkgs/development/python-modules/tbm-utils/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tbm-utils/default.nix
@@ -10,16 +10,23 @@
 
 buildPythonPackage rec {
   pname = "tbm-utils";
-  version = "2.5.1";
+  version = "2.6.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5909852f8ce350631cdaaecaf0aee45569148d22bd429360a1c92a203ba5706b";
+    sha256 = "235748cceeb22c042e32d2fdfd4d710021bac9b938c4f2c35e1fce1cfd58f7ec";
   };
 
   propagatedBuildInputs = [ attrs pendulum pprintpp wrapt ];
 
+  # this versioning was done to prevent normal pip users from encountering
+  # issues with package failing to build from source, but nixpkgs is better
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "pendulum>=2.0,<=3.0,!=2.0.5,!=2.1.0" "pendulum>=2.0,<=3.0"
+  '';
+
   # No tests in archive.
   doCheck = false;
 
diff --git a/nixpkgs/pkgs/development/python-modules/tempora/default.nix b/nixpkgs/pkgs/development/python-modules/tempora/default.nix
index ebc79212c25d..238b250136cb 100644
--- a/nixpkgs/pkgs/development/python-modules/tempora/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tempora/default.nix
@@ -1,24 +1,30 @@
 { lib, buildPythonPackage, fetchPypi
-, setuptools_scm, pytest, freezegun, backports_unittest-mock
-, six, pytz, jaraco_functools }:
+, setuptools_scm, pytest, pytest-freezegun, freezegun, backports_unittest-mock
+, six, pytz, jaraco_functools, pythonOlder
+, pytest-flake8, pytestcov, pytest-black, pytest-mypy
+}:
 
 buildPythonPackage rec {
   pname = "tempora";
-  version = "1.14.1";
+  version = "4.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cb60b1d2b1664104e307f8e5269d7f4acdb077c82e35cd57246ae14a3427d2d6";
+    sha256 = "599a3a910b377f2b544c7b221582ecf4cb049b017c994b37f2b1a9ed1099716e";
   };
 
-  buildInputs = [ setuptools_scm ];
+  disabled = pythonOlder "3.2";
+
+  nativeBuildInputs = [ setuptools_scm ];
 
   propagatedBuildInputs = [ six pytz jaraco_functools ];
 
-  checkInputs = [ pytest freezegun backports_unittest-mock ];
+  checkInputs = [
+    pytest-freezegun pytest freezegun backports_unittest-mock
+    pytest-flake8 pytestcov pytest-black pytest-mypy
+  ];
 
   checkPhase = ''
-    substituteInPlace pytest.ini --replace "--flake8" ""
     pytest
   '';
 
diff --git a/nixpkgs/pkgs/development/python-modules/tensorboardx/default.nix b/nixpkgs/pkgs/development/python-modules/tensorboardx/default.nix
new file mode 100644
index 000000000000..d2532777d006
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tensorboardx/default.nix
@@ -0,0 +1,31 @@
+{ boto3, buildPythonPackage, crc32c, fetchFromGitHub, lib, matplotlib, moto
+, numpy, pillow, pytorch, protobuf, six, pytestCheckHook
+, tensorflow-tensorboard, torchvision }:
+
+buildPythonPackage rec {
+  pname = "tensorboardx";
+  version = "2.0";
+
+  src = fetchFromGitHub {
+    owner = "lanpa";
+    repo = "tensorboardX";
+    rev = "v${version}";
+    sha256 = "0qqalq0fhbx0wnd8wdwhyhkkv2brvj9qbk3373vk3wjxbribf5c7";
+  };
+
+  checkInputs = [
+    pytestCheckHook boto3 crc32c matplotlib moto pillow pytorch tensorflow-tensorboard torchvision
+  ];
+
+  propagatedBuildInputs = [ numpy protobuf six ];
+
+  disabledTests = [ "test_TorchVis"  "test_onnx_graph" ];
+
+  meta = with lib; {
+    description = "Library for writing tensorboard-compatible logs";
+    homepage = "https://github.com/lanpa/tensorboardX";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lebastr akamaus ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow-estimator/2/default.nix b/nixpkgs/pkgs/development/python-modules/tensorflow-estimator/2/default.nix
index dbac36ff07fb..16c3eeec7a1a 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorflow-estimator/2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow-estimator/2/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "tensorflow-estimator";
-  version = "2.1.0";
+  version = "2.2.0";
   format = "wheel";
 
   src = fetchPypi {
     pname = "tensorflow_estimator";
     inherit version format;
-    sha256 = "0wk9viil54ms1s2ir7zxygqa425i69hx8zngwhdqvw9nlr4gdig5";
+    sha256 = "1hkx4k6927xn4qpwiba6wa56n0qqm7s23bymm377j9bz2bfsr7fh";
   };
 
   propagatedBuildInputs = [ mock numpy absl-py ];
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow-probability/default.nix b/nixpkgs/pkgs/development/python-modules/tensorflow-probability/default.nix
index 21ce440c630a..763679190592 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorflow-probability/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow-probability/default.nix
@@ -61,7 +61,7 @@ let
     bazelTarget = ":pip_pkg";
 
     fetchAttrs = {
-      sha256 = "1snj7fxfxzvrqv9cpir1daxcg3fip6cvbk94y3mi2h50k3ni826i";
+      sha256 = "1qw7vkwnxy45z4vm94isq5m96xiz35sigag7vjg1xb2sklbymxh8";
     };
 
     buildAttrs = {
diff --git a/nixpkgs/pkgs/development/python-modules/tensorflow/1/default.nix b/nixpkgs/pkgs/development/python-modules/tensorflow/1/default.nix
index 5f65004b3d68..1aad8677ca28 100644
--- a/nixpkgs/pkgs/development/python-modules/tensorflow/1/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tensorflow/1/default.nix
@@ -132,6 +132,13 @@ let
       })
       ./lift-gast-restriction.patch
 
+      (fetchpatch {
+        # fix compilation with numpy >= 1.19
+        name = "add-const-overload.patch";
+        url = "https://github.com/tensorflow/tensorflow/commit/75ea0b31477d6ba9e990e296bbbd8ca4e7eebadf.patch";
+        sha256 = "1xp1icacig0xm0nmb05sbrf4nw4xbln9fhc308birrv8286zx7wv";
+      })
+
       # cuda 10.2 does not have "-bin2c-path" option anymore
       # https://github.com/tensorflow/tensorflow/issues/34429
       ../cuda-10.2-no-bin2c-path.patch
diff --git a/nixpkgs/pkgs/development/python-modules/test-tube/default.nix b/nixpkgs/pkgs/development/python-modules/test-tube/default.nix
new file mode 100644
index 000000000000..f0c26292c84b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/test-tube/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, pytestCheckHook
+, future
+, imageio
+, numpy
+, pandas
+, pytorch
+, tensorflow-tensorboard
+}:
+
+buildPythonPackage rec {
+  pname = "test-tube";
+  version = "0.7.5";
+
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "williamFalcon";
+    repo = pname;
+    rev = version;
+    sha256 = "0zpvlp1ybp2dhgap8jsalpfdyg8ycjhlfi3xrdf5dqffqvh2yhp2";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  propagatedBuildInputs = [
+    future
+    imageio
+    numpy
+    pandas
+    pytorch
+    tensorflow-tensorboard
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/williamFalcon/test-tube";
+    description = "Framework-agnostic library to track and parallelize hyperparameter search in machine learning experiments";
+    license = licenses.mit;
+    maintainers = [ maintainers.tbenst ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/testfixtures/default.nix b/nixpkgs/pkgs/development/python-modules/testfixtures/default.nix
index b3db882c82b2..7c875ec05918 100644
--- a/nixpkgs/pkgs/development/python-modules/testfixtures/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/testfixtures/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, isPy27
+{ lib, buildPythonPackage, fetchPypi, fetchpatch, isPy27
 , mock, pytest, sybil, zope_component, twisted }:
 
 buildPythonPackage rec {
@@ -15,12 +15,16 @@ buildPythonPackage rec {
   doCheck = !isPy27;
   checkPhase = ''
     # django is too much hasle to setup at the moment
-    pytest -W ignore::DeprecationWarning --ignore=testfixtures/tests/test_django testfixtures/tests
+    pytest -W ignore::DeprecationWarning \
+      --ignore=testfixtures/tests/test_django \
+      -k 'not (log_then_patch or our_wrap_dealing_with_mock_patch or patch_with_dict)' \
+      testfixtures/tests
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = "https://github.com/Simplistix/testfixtures";
     description = "A collection of helpers and mock objects for unit tests and doc tests";
     license = licenses.mit;
+    maintainers = with maintainers; [ siriobalmelli ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/testtools/default.nix b/nixpkgs/pkgs/development/python-modules/testtools/default.nix
index 8264314c96a6..8ef3d9c4320f 100644
--- a/nixpkgs/pkgs/development/python-modules/testtools/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/testtools/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "testtools";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5827ec6cf8233e0f29f51025addd713ca010061204fdea77484a2934690a0559";
+    sha256 = "64c974a6cca4385d05f4bbfa2deca1c39ce88ede31c3448bee86a7259a9a61c8";
   };
 
   propagatedBuildInputs = [ pbr python_mimeparse extras unittest2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/textacy/default.nix b/nixpkgs/pkgs/development/python-modules/textacy/default.nix
index 9d44ce98898e..2079dc1b9434 100644
--- a/nixpkgs/pkgs/development/python-modules/textacy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/textacy/default.nix
@@ -17,12 +17,12 @@
 
 buildPythonPackage rec {
   pname = "textacy";
-  version = "0.9.1";
+  version = "0.10.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1jhj02g6kh5vc0z4az7n547siav3gj5571bqpzdryskj6bsma2z1";
+    sha256 = "0a824333f53d19d24ca864c92da52f3fecd412f4ef3e1448864c45f06189fd6d";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/textfsm/default.nix b/nixpkgs/pkgs/development/python-modules/textfsm/default.nix
new file mode 100644
index 000000000000..04bc47913d8f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/textfsm/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, six
+, future
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "textfsm";
+  version = "1.1.1";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0fq2hphd89hns11nh0yifcp6brg6yy4n4hbvfk6avbjd7s40789a";
+  };
+
+  patches = [
+    (fetchpatch {
+      # remove pytest-runner dependency
+      url = "https://github.com/google/textfsm/commit/212db75fea4a79aca0f8f85a78954ffbc5667096.patch";
+      sha256 = "0n6qh3sz9wy5gdpq9jjxx8firis48ypr20yacs5bqri59sziwjp0";
+    })
+  ];
+
+  propagatedBuildInputs = [ six future ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Python module for parsing semi-structured text into python tables";
+    homepage = "https://github.com/google/textfsm";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/thespian/default.nix b/nixpkgs/pkgs/development/python-modules/thespian/default.nix
index add36ccf1b62..74f94aaf2558 100644
--- a/nixpkgs/pkgs/development/python-modules/thespian/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/thespian/default.nix
@@ -1,13 +1,13 @@
 { fetchPypi, buildPythonPackage, lib }:
 
 buildPythonPackage rec {
-  version = "3.10.0";
+  version = "3.10.1";
   pname = "thespian";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0n85nhj5hr8kv33jk4by8hnxm3kni5f4z1jhiw27dlf6cbgsv892";
+    sha256 = "e00bba5b0b91f9d7ec3df0ac671136df7a7be0a14dfea38ca3850488bca73d8c";
   };
 
   # Do not run the test suite: it takes a long time and uses
diff --git a/nixpkgs/pkgs/development/python-modules/thinc/default.nix b/nixpkgs/pkgs/development/python-modules/thinc/default.nix
index e47e17094af3..9272e25a1ba3 100644
--- a/nixpkgs/pkgs/development/python-modules/thinc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/thinc/default.nix
@@ -58,10 +58,20 @@ buildPythonPackage rec {
   # Cannot find cython modules.
   doCheck = false;
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "blis>=0.4.0,<0.5.0" "blis>=0.4.0,<1.0" \
+      --replace "catalogue>=0.0.7,<1.1.0" "catalogue>=0.0.7,<3.0" \
+      --replace "plac>=0.9.6,<1.2.0" "plac>=0.9.6,<2.0" \
+      --replace "srsly>=0.0.6,<1.1.0" "srsly>=0.0.6,<3.0"
+  '';
+
   checkPhase = ''
     pytest thinc/tests
   '';
 
+  pythonImportsCheck = [ "thinc" ];
+
   meta = with stdenv.lib; {
     description = "Practical Machine Learning for NLP in Python";
     homepage = "https://github.com/explosion/thinc";
diff --git a/nixpkgs/pkgs/development/python-modules/tifffile/default.nix b/nixpkgs/pkgs/development/python-modules/tifffile/default.nix
index fbf36b4ef97e..77187f42b5e4 100644
--- a/nixpkgs/pkgs/development/python-modules/tifffile/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tifffile/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "tifffile";
-  version = "2019.7.26.2";
+  version = "2020.8.25";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2abb91c3a23a61593c5635ac1a19f67e732b46291c305fcee0eeaad41181a13f";
+    sha256 = "b51e496bd9ee9c6875170a018bdb7b6f67e3946c4ab57afdb95b18b2c6937783";
   };
 
   patches = lib.optional isPy27 ./python2-regex-compat.patch;
diff --git a/nixpkgs/pkgs/development/python-modules/tiledb/default.nix b/nixpkgs/pkgs/development/python-modules/tiledb/default.nix
index cf688d75f01e..d5379b849ade 100644
--- a/nixpkgs/pkgs/development/python-modules/tiledb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tiledb/default.nix
@@ -3,28 +3,31 @@
 , buildPythonPackage
 , fetchFromGitHub
 , cython
+, pybind11
 , tiledb
 , numpy
 , wheel
 , isPy3k
 , setuptools_scm
 , psutil
+, pandas
 }:
 
 buildPythonPackage rec {
   pname = "tiledb";
-  version = "0.5.6";
+  version = "0.6.6";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "TileDB-Inc";
     repo = "TileDB-Py";
     rev = version;
-    sha256 = "0cgm4dhyqay26xmrzlv21ha8qh55m4q3yr338lrv81ngz77zxsvw";
+    sha256 = "0b2kn1xyf7d994kz29dpqiaf8yzvx0axw4yqi854c54pl22ddgzl";
   };
 
   nativeBuildInputs = [
     cython
+    pybind11
     setuptools_scm
   ];
 
@@ -39,6 +42,8 @@ buildPythonPackage rec {
 
   checkInputs = [
     psutil
+    # optional
+    pandas
   ];
 
   TILEDB_PATH = tiledb;
@@ -51,17 +56,25 @@ buildPythonPackage rec {
     # Hardcode path to shared object
     substituteInPlace tiledb/__init__.py --replace \
       'os.path.join(lib_dir, lib_name)' 'os.path.join("${tiledb}/lib", lib_name)'
-    
+
     # Disable failing test
     substituteInPlace tiledb/tests/test_examples.py --replace \
       "test_docs" "dont_test_docs"
+    # these tests don't always fail
+    substituteInPlace tiledb/tests/test_libtiledb.py --replace \
+      "test_varlen_write_int_subarray" "dont_test_varlen_write_int_subarray" \
+      --replace "test_memory_cleanup" "dont_test_memory_cleanup" \
+      --replace "test_ctx_thread_cleanup" "dont_test_ctx_thread_cleanup"
+    substituteInPlace tiledb/tests/test_metadata.py --replace \
+      "test_metadata_consecutive" "dont_test_metadata_consecutive"
   '';
 
   checkPhase = ''
-    pushd "$out"
+    pushd "$TMPDIR"
     ${python.interpreter} -m unittest tiledb.tests.all.suite_test
     popd
   '';
+  pythonImportsCheck = [ "tiledb" ];
 
   meta = with lib; {
     description = "Python interface to the TileDB storage manager";
diff --git a/nixpkgs/pkgs/development/python-modules/timelib/default.nix b/nixpkgs/pkgs/development/python-modules/timelib/default.nix
index 39ff4b6de15e..559dd0dd92f0 100644
--- a/nixpkgs/pkgs/development/python-modules/timelib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/timelib/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "timelib";
-  version = "0.2.4";
+  version = "0.2.5";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "49142233bdb5971d64a41e05a1f80a408a02be0dc7d9f8c99e7bdd0613ba81cb";
+    sha256 = "6ac9f79b09b63bbc07db88525c1f62de1f6d50b0fd9937a0cb05e3d38ce0af45";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/timezonefinder/default.nix b/nixpkgs/pkgs/development/python-modules/timezonefinder/default.nix
index f4339bbce4a8..ca07b50ceff8 100644
--- a/nixpkgs/pkgs/development/python-modules/timezonefinder/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/timezonefinder/default.nix
@@ -4,24 +4,26 @@
 , isPy27
 , numba
 , numpy
+, pytestCheckHook
+, pytestcov
 }:
 
 buildPythonPackage rec {
   pname = "timezonefinder";
-  version = "4.2.0";
+  version = "4.4.1";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0q8nd279labn03dz17s4xrglk1d31q9y8wcx99l51i5cxx53zsap";
+    sha256 = "c84e0f4b501419349e67972d25c535d9b5fd6c100c319747049b67812a4c6b97";
   };
 
   propagatedBuildInputs = [
     numpy
   ];
 
-  checkInputs = [ numba ];
+  checkInputs = [ numba pytestCheckHook pytestcov ];
 
   meta = with lib; {
     description = "fast python package for finding the timezone of any point on earth (coordinates) offline";
diff --git a/nixpkgs/pkgs/development/python-modules/tinycss2/default.nix b/nixpkgs/pkgs/development/python-modules/tinycss2/default.nix
index 2d8581cfb907..35c0f76b0843 100644
--- a/nixpkgs/pkgs/development/python-modules/tinycss2/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tinycss2/default.nix
@@ -1,6 +1,16 @@
-{ lib, buildPythonPackage, pythonOlder, fetchPypi
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, fetchpatch
 , webencodings
-, pytest, pytestrunner, pytestcov, pytest-flake8, pytest-isort }:
+# Check inputs
+, pytest
+, pytestrunner
+, pytestcov
+, pytest-flake8
+, pytest-isort
+}:
 
 buildPythonPackage rec {
   pname = "tinycss2";
@@ -12,12 +22,25 @@ buildPythonPackage rec {
     sha256 = "1kw84y09lggji4krkc58jyhsfj31w8npwhznr7lf19d0zbix09v4";
   };
 
-  patches = [ ./remove-redundant-dependency.patch ];
+  patches = [
+    (
+      fetchpatch {
+        name = "tinycss2-fix-pytest-flake8-fail.patch";
+        url = "https://github.com/Kozea/tinycss2/commit/6556604fb98c2153412384d6f0f705db2da1aa60.patch";
+        sha256 = "1srvdzg1bak65fawd611rlskcgn5abmwmyjnk8qrrrasr554bc59";
+      }
+    )
+  ];
 
   propagatedBuildInputs = [ webencodings ];
 
   checkInputs = [ pytest pytestrunner pytestcov pytest-flake8 pytest-isort ];
 
+  # https://github.com/PyCQA/pycodestyle/issues/598
+  preCheck = ''
+    printf "[flake8]\nignore=W504,E741,E126" >> setup.cfg
+  '';
+
   meta = with lib; {
     description = "Low-level CSS parser for Python";
     homepage = "https://github.com/Kozea/tinycss2";
diff --git a/nixpkgs/pkgs/development/python-modules/tinycss2/remove-redundant-dependency.patch b/nixpkgs/pkgs/development/python-modules/tinycss2/remove-redundant-dependency.patch
deleted file mode 100644
index 27ec511c55f6..000000000000
--- a/nixpkgs/pkgs/development/python-modules/tinycss2/remove-redundant-dependency.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/setup.cfg b/setup.cfg
-index b3b3c2d..480f3e6 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -33,7 +33,6 @@ project_urls =
- 
- [options]
- packages = find:
--setup_requires = pytest-runner
- install_requires = 
- 	setuptools >= 39.2.0
- 	webencodings >= 0.4
diff --git a/nixpkgs/pkgs/development/python-modules/tinydb/default.nix b/nixpkgs/pkgs/development/python-modules/tinydb/default.nix
index f4de29b5e6c9..96b6242c85ed 100644
--- a/nixpkgs/pkgs/development/python-modules/tinydb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tinydb/default.nix
@@ -33,7 +33,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "A lightweight document oriented database written in pure Python with no external dependencies";
     homepage = "https://github.com/msiemens/tinydb";
-    license = licenses.asl20;                                                                                                                                                                      
+    license = licenses.asl20;
     maintainers = with maintainers; [ marcus7070 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/titlecase/default.nix b/nixpkgs/pkgs/development/python-modules/titlecase/default.nix
index aed342c119f5..c1de2454e4b4 100644
--- a/nixpkgs/pkgs/development/python-modules/titlecase/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/titlecase/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "titlecase";
-  version = "0.12.0";
+  version = "1.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0486i99wf8ssa7sgn81fn6fv6i4rhhq6n751bc740b3hzfbpmpl4";
+    sha256 = "16e279edf085293bc9c44a68ce959c7d6cd5c653e6b5669a3a3640015cb63eb6";
   };
 
   checkInputs = [ nose ];
diff --git a/nixpkgs/pkgs/development/python-modules/tld/default.nix b/nixpkgs/pkgs/development/python-modules/tld/default.nix
index 1256ee7ff963..a8d00d075142 100644
--- a/nixpkgs/pkgs/development/python-modules/tld/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tld/default.nix
@@ -2,11 +2,11 @@
 
 python.pkgs.buildPythonPackage rec {
   pname   = "tld";
-  version = "0.11.11";
+  version = "0.12.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "72c7170f68ade92a07be43b363afc8e42a98ffa3700d899a984fdbeedb339bac";
+    sha256 = "cf8410a7ed7b9477f563fa158dabef5117d8374cba55f65142ba0af6dcd15d4d";
   };
 
   propagatedBuildInputs = with python.pkgs; [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/tldextract/default.nix b/nixpkgs/pkgs/development/python-modules/tldextract/default.nix
index e771470b4003..b7df857533a0 100644
--- a/nixpkgs/pkgs/development/python-modules/tldextract/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tldextract/default.nix
@@ -1,19 +1,20 @@
-{ lib, fetchPypi, buildPythonPackage
+{ lib, fetchPypi, buildPythonPackage, setuptools_scm
 , requests, requests-file, idna, pytest
 , responses
 }:
 
 buildPythonPackage rec {
   pname   = "tldextract";
-  version = "2.2.2";
+  version = "2.2.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9aa21a1f7827df4209e242ec4fc2293af5940ec730cde46ea80f66ed97bfc808";
+    sha256 = "ab0e38977a129c72729476d5f8c85a8e1f8e49e9202e1db8dca76e95da7be9a8";
   };
 
   propagatedBuildInputs = [ requests requests-file idna ];
   checkInputs = [ pytest responses ];
+  nativeBuildInputs = [ setuptools_scm ];
 
   meta = {
     homepage = "https://github.com/john-kurkowski/tldextract";
diff --git a/nixpkgs/pkgs/development/python-modules/tls-parser/default.nix b/nixpkgs/pkgs/development/python-modules/tls-parser/default.nix
new file mode 100644
index 000000000000..5b6bfe6a0e28
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tls-parser/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, isPy27
+, fetchFromGitHub
+, buildPythonPackage
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "tls-parser";
+  version = "1.2.2";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "nabla-c0d3";
+    repo = "tls_parser";
+    rev = version;
+    sha256 = "12qj3vg02r5a51w6gbgb1gcxicqc10lbbsdi57jkkfvbqiindbd0";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    homepage = "https://github.com/nabla-c0d3/tls_parser";
+    description = "Small library to parse TLS records";
+    platforms = with platforms; linux ++ darwin;
+    license = licenses.mit;
+    maintainers = with maintainers; [ veehaitch ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/todoist/default.nix b/nixpkgs/pkgs/development/python-modules/todoist/default.nix
index f420cbaee974..ac7817962300 100644
--- a/nixpkgs/pkgs/development/python-modules/todoist/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/todoist/default.nix
@@ -1,20 +1,34 @@
 { stdenv, fetchPypi, buildPythonPackage
-, requests }:
+, requests, fetchpatch, pythonOlder, typing
+}:
 
 buildPythonPackage rec {
   pname = "todoist-python";
-  version = "8.1.1";
+  version = "8.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0khipf8v0gqvspq7m67aqv0ql3rdqyqr8qfhbm1szc1z6mygj8ns";
+    sha256 = "750b2d2300e8590cd56414ab7bbbc8dfcaf8c27102b342398955812176499498";
   };
 
-  propagatedBuildInputs = [ requests ];
+  patches = [
+    # From https://github.com/Doist/todoist-python/pull/80
+    (fetchpatch {
+      url = "https://github.com/Doist/todoist-python/commit/605443c67a8e2f105071e0da001c9f6f2a89ef19.patch";
+      sha256 = "0ah0s5by783kqlaimsbxz11idz0bhc2428aw9vdjpngmzb7ih1pa";
+    })
+    (fetchpatch {
+      url = "https://github.com/Doist/todoist-python/commit/f2f8e1e5b3ab1674ad9f0dff885702a25d1d18e9.patch";
+      sha256 = "1kp63yk9kj87zvvgfl60m6lxdm5sx3dny4g0s67ap1jbz350wifn";
+    })
+  ];
+
+  propagatedBuildInputs = [ requests ] ++ stdenv.lib.optional (pythonOlder "3.5") typing;
 
   meta = {
     description = "The official Todoist Python API library";
     homepage = "https://todoist-python.readthedocs.io/en/latest/";
     license = stdenv.lib.licenses.mit;
+    maintainers = with stdenv.lib.maintainers; [ ma27 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/tokenizers/default.nix b/nixpkgs/pkgs/development/python-modules/tokenizers/default.nix
new file mode 100644
index 000000000000..d650f350bd28
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tokenizers/default.nix
@@ -0,0 +1,129 @@
+{ stdenv
+, rustPlatform
+, fetchFromGitHub
+, fetchurl
+, maturin
+, pipInstallHook
+, pytest
+, python
+, requests
+}:
+
+let
+  robertaVocab = fetchurl {
+    url = "https://s3.amazonaws.com/models.huggingface.co/bert/roberta-base-vocab.json";
+    sha256 = "0m86wpkfb2gdh9x9i9ng2fvwk1rva4p0s98xw996nrjxs7166zwy";
+  };
+  robertaMerges = fetchurl {
+    url = "https://s3.amazonaws.com/models.huggingface.co/bert/roberta-base-merges.txt";
+    sha256 = "1idd4rvkpqqbks51i2vjbd928inw7slij9l4r063w3y5fd3ndq8w";
+  };
+  bertVocab = fetchurl {
+    url = "https://s3.amazonaws.com/models.huggingface.co/bert/bert-base-uncased-vocab.txt";
+    sha256 = "18rq42cmqa8zanydsbzrb34xwy4l6cz1y900r4kls57cbhvyvv07";
+  };
+  openaiVocab = fetchurl {
+    url = "https://s3.amazonaws.com/models.huggingface.co/bert/openai-gpt-vocab.json";
+    sha256 = "0y40gc9bixj5rxv674br1rxmxkd3ly29p80x1596h8yywwcrpx7x";
+  };
+  openaiMerges = fetchurl {
+    url = "https://s3.amazonaws.com/models.huggingface.co/bert/openai-gpt-merges.txt";
+    sha256 = "09a754pm4djjglv3x5pkgwd6f79i2rq8ydg0f7c3q1wmwqdbba8f";
+  };
+in rustPlatform.buildRustPackage rec {
+  pname = "tokenizers";
+  version = "0.8.1";
+
+  src = fetchFromGitHub {
+    owner = "huggingface";
+    repo = pname;
+    rev = "python-v${version}";
+    sha256 = "0sxdwx05hr87j2z32rk4rgwn6a26w9r7m5fgj6ah1sgagiiyxbjw";
+  };
+
+  # Update parking_lot to be compatible with recent Rust versions, that
+  # replace asm! by llvm_asm!:
+  #
+  # https://github.com/Amanieu/parking_lot/pull/223
+  #
+  # Remove once upstream updates this dependency.
+  cargoPatches = [ ./update-parking-lot.diff ];
+
+  cargoSha256 = "0cdkxmj8z2wdspn6r62lqlpvd0sj1z0cmb1zpqaajxvr0b2kjlj8";
+
+  sourceRoot = "source/bindings/python";
+
+  nativeBuildInputs = [
+    maturin
+    pipInstallHook
+  ];
+
+  propagatedBuildInputs = [
+    python
+  ];
+
+  # tokenizers uses pyo3, which requires Rust nightly.
+  RUSTC_BOOTSTRAP = 1;
+
+  doCheck = false;
+  doInstallCheck = true;
+
+  postUnpack = ''
+    # Add data files for tests, otherwise tests attempt network access.
+    mkdir $sourceRoot/tests/data
+    ( cd $sourceRoot/tests/data
+      ln -s ${robertaVocab} roberta-base-vocab.json
+      ln -s ${robertaMerges} roberta-base-merges.txt
+      ln -s ${bertVocab} bert-base-uncased-vocab.txt
+      ln -s ${openaiVocab} openai-gpt-vocab.json
+      ln -s ${openaiMerges} openai-gpt-merges.txt )
+  '';
+
+  postPatch = ''
+    # pyo3's build check verifies that Rust is a nightly
+    # version. Disable this check.
+    substituteInPlace $NIX_BUILD_TOP/$cargoDepsCopy/pyo3/build.rs \
+      --replace "check_rustc_version()?;" ""
+
+    # Patching the vendored dependency invalidates the file
+    # checksums, so remove them. This should be safe, since
+    # this is just a copy of the vendored dependencies and
+    # the integrity of the vendored dependencies is validated
+    # by cargoSha256.
+    sed -r -i 's|"files":\{[^}]+\}|"files":{}|' \
+      $NIX_BUILD_TOP/$cargoDepsCopy/pyo3/.cargo-checksum.json
+
+    # Maturin uses the crate name as the wheel name.
+    substituteInPlace Cargo.toml \
+      --replace "tokenizers-python" "tokenizers"
+  '';
+
+  buildPhase = ''
+    maturin build --release --manylinux off
+  '';
+
+  installPhase = ''
+    # Put the wheels where the pip install hook can find them.
+    install -Dm644 -t dist target/wheels/*.whl
+    pipInstallPhase
+  '';
+
+  installCheckInputs = [
+    pytest
+    requests
+  ];
+
+  installCheckPhase = ''
+    # Append paths, or the binding's tokenizer module will be
+    # used, since the test directories have __init__.py
+    pytest --import-mode=append
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/huggingface/tokenizers";
+    description = "Fast State-of-the-Art Tokenizers optimized for Research and Production";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tokenizers/update-parking-lot.diff b/nixpkgs/pkgs/development/python-modules/tokenizers/update-parking-lot.diff
new file mode 100644
index 000000000000..d8f144465ac9
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tokenizers/update-parking-lot.diff
@@ -0,0 +1,63 @@
+diff --git a/bindings/python/Cargo.lock b/bindings/python/Cargo.lock
+index f50db71..ea71817 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -269,7 +269,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ 
+ [[package]]
+ name = "lock_api"
+-version = "0.3.3"
++version = "0.3.4"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+  "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -337,16 +337,16 @@ dependencies = [
+ 
+ [[package]]
+ name = "parking_lot"
+-version = "0.10.0"
++version = "0.10.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+- "lock_api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot_core 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "parking_lot_core 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
+ ]
+ 
+ [[package]]
+ name = "parking_lot_core"
+-version = "0.7.0"
++version = "0.7.2"
+ source = "registry+https://github.com/rust-lang/crates.io-index"
+ dependencies = [
+  "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -409,7 +409,7 @@ dependencies = [
+  "inventory 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
+  "libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)",
+  "num-traits 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
+- "parking_lot 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "parking_lot 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
+  "paste 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
+  "pyo3cls 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)",
+  "regex 1.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
+@@ -768,7 +768,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ "checksum itoa 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e"
+ "checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+ "checksum libc 0.2.68 (registry+https://github.com/rust-lang/crates.io-index)" = "dea0c0405123bba743ee3f91f49b1c7cfb684eef0da0a50110f758ccf24cdff0"
+-"checksum lock_api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "79b2de95ecb4691949fea4716ca53cdbcfccb2c612e19644a8bad05edcf9f47b"
++"checksum lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
+ "checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+ "checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
+ "checksum memoffset 0.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b4fc2c02a7e374099d4ee95a193111f72d2110197fe200272371758f6c3643d8"
+@@ -777,8 +777,8 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
+ "checksum number_prefix 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "17b02fc0ff9a9e4b35b3342880f48e896ebf69f2967921fe8646bf5b7125956a"
+ "checksum onig 6.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bd91ccd8a02fce2f7e8a86655aec67bc6c171e6f8e704118a0e8c4b866a05a8a"
+ "checksum onig_sys 69.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3814583fad89f3c60ae0701d80e87e1fd3028741723deda72d0d4a0ecf0cb0db"
+-"checksum parking_lot 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "92e98c49ab0b7ce5b222f2cc9193fc4efe11c6d0bd4f648e374684a6857b1cfc"
+-"checksum parking_lot_core 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7582838484df45743c8434fbff785e8edf260c28748353d44bc0da32e0ceabf1"
++"checksum parking_lot 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e"
++"checksum parking_lot_core 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3"
+ "checksum paste 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ab4fb1930692d1b6a9cfabdde3d06ea0a7d186518e2f4d67660d8970e2fa647a"
+ "checksum paste-impl 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "a62486e111e571b1e93b710b61e8f493c0013be39629b714cb166bdb06aa5a8a"
+ "checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
diff --git a/nixpkgs/pkgs/development/python-modules/tomlkit/default.nix b/nixpkgs/pkgs/development/python-modules/tomlkit/default.nix
index deff7769dfb4..27f952386f12 100644
--- a/nixpkgs/pkgs/development/python-modules/tomlkit/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tomlkit/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "tomlkit";
-  version = "0.5.11";
+  version = "0.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1kq1663iqxgwrmb883n55ypi5axnixla2hrby9g2x227asifsi7h";
+    sha256 = "ac57f29693fab3e309ea789252fcce3061e19110085aa31af5446ca749325618";
   };
 
   propagatedBuildInputs =
diff --git a/nixpkgs/pkgs/development/python-modules/torchgpipe/default.nix b/nixpkgs/pkgs/development/python-modules/torchgpipe/default.nix
new file mode 100644
index 000000000000..e7aa53360ed5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/torchgpipe/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, isPy27
+, pytest
+, pytestrunner
+, pytestCheckHook
+, pytorch
+}:
+
+buildPythonPackage rec {
+  pname = "torchgpipe";
+  version = "0.0.5";
+
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "kakaobrain";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0mqdavnqb8a320li2r7xw11w2lg03l59xxyg2fxpg4z57v0rbasi";
+  };
+
+  propagatedBuildInputs = [ pytorch ];
+
+  checkInputs = [ pytest pytestrunner pytestCheckHook ];
+  disabledTests = [ "test_inplace_on_requires_grad" ];
+  # seems like a harmless failure:
+  ## AssertionError:
+  ## Pattern 'a leaf Variable that requires grad has been used in an in-place operation.'
+  ## does not match 'a leaf Variable that requires grad is being used in an in-place operation.'
+
+  meta = with lib; {
+    description = "GPipe implemented in Pytorch and optimized for CUDA rather than TPU";
+    homepage = "https://torchgpipe.readthedocs.io";
+    license = licenses.asl20;
+    maintainers = [ maintainers.bcdarwin ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tornado/4.nix b/nixpkgs/pkgs/development/python-modules/tornado/4.nix
new file mode 100644
index 000000000000..6d889a09d25e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tornado/4.nix
@@ -0,0 +1,37 @@
+{ lib
+, python
+, buildPythonPackage
+, fetchPypi
+, backports_abc
+, backports_ssl_match_hostname
+, certifi
+, singledispatch
+, futures
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "tornado";
+  version = "4.5.3";
+
+  propagatedBuildInputs = lib.optionals isPy27 [ backports_abc certifi singledispatch backports_ssl_match_hostname futures ];
+
+  # We specify the name of the test files to prevent
+  # https://github.com/NixOS/nixpkgs/issues/14634
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover *_test.py
+  '';
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "02jzd23l4r6fswmwxaica9ldlyc2p6q8dk6dyff7j58fmdzf853d";
+  };
+
+  __darwinAllowLocalNetworking = true;
+
+  meta = {
+    description = "A web framework and asynchronous networking library";
+    homepage = "https://www.tornadoweb.org/";
+    license = lib.licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tornado/5.nix b/nixpkgs/pkgs/development/python-modules/tornado/5.nix
new file mode 100644
index 000000000000..da270331978d
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/tornado/5.nix
@@ -0,0 +1,37 @@
+{ lib
+, python
+, buildPythonPackage
+, fetchPypi
+, backports_abc
+, backports_ssl_match_hostname
+, certifi
+, singledispatch
+, futures
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "tornado";
+  version = "5.1.1";
+
+  propagatedBuildInputs = lib.optionals isPy27 [ backports_abc certifi singledispatch backports_ssl_match_hostname futures ];
+
+  # We specify the name of the test files to prevent
+  # https://github.com/NixOS/nixpkgs/issues/14634
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover *_test.py
+  '';
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "4e5158d97583502a7e2739951553cbd88a72076f152b4b11b64b9a10c4c49409";
+  };
+
+  __darwinAllowLocalNetworking = true;
+
+  meta = {
+    description = "A web framework and asynchronous networking library";
+    homepage = "https://www.tornadoweb.org/";
+    license = lib.licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tornado/default.nix b/nixpkgs/pkgs/development/python-modules/tornado/default.nix
index 102cf0fed574..8d9cadeb3e54 100644
--- a/nixpkgs/pkgs/development/python-modules/tornado/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tornado/default.nix
@@ -2,35 +2,11 @@
 , python
 , buildPythonPackage
 , fetchPypi
-, backports_abc
-, backports_ssl_match_hostname
-, certifi
-, singledispatch
-, pythonOlder
-, futures
-, version ? "5.1"
 }:
 
-let
-  versionMap = {
-    "4.5.3" = {
-      sha256 = "02jzd23l4r6fswmwxaica9ldlyc2p6q8dk6dyff7j58fmdzf853d";
-    };
-    "5.1" = {
-      sha256 = "4f66a2172cb947387193ca4c2c3e19131f1c70fa8be470ddbbd9317fd0801582";
-    };
-  };
-in
-
-with versionMap.${version};
-
 buildPythonPackage rec {
   pname = "tornado";
-  inherit version;
-
-  propagatedBuildInputs = [ backports_abc  certifi singledispatch ]
-    ++ lib.optional (pythonOlder "3.5") backports_ssl_match_hostname
-    ++ lib.optional (pythonOlder "3.2") futures;
+  version = "6.0.4";
 
   # We specify the name of the test files to prevent
   # https://github.com/NixOS/nixpkgs/issues/14634
@@ -39,14 +15,15 @@ buildPythonPackage rec {
   '';
 
   src = fetchPypi {
-    inherit pname sha256 version;
+    inherit pname version;
+    sha256 = "0fe2d45ba43b00a41cd73f8be321a44936dc1aba233dee979f17a042b83eb6dc";
   };
 
   __darwinAllowLocalNetworking = true;
 
   meta = {
     description = "A web framework and asynchronous networking library";
-    homepage = "http://www.tornadoweb.org/";
+    homepage = "https://www.tornadoweb.org/";
     license = lib.licenses.asl20;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/towncrier/default.nix b/nixpkgs/pkgs/development/python-modules/towncrier/default.nix
new file mode 100644
index 000000000000..a7573e669a8c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/towncrier/default.nix
@@ -0,0 +1,40 @@
+{ lib, buildPythonPackage, fetchPypi, isPy27
+, click
+, click-default-group
+, incremental
+, jinja2
+, pytestCheckHook
+, toml
+, twisted
+, git # shells out to git
+}:
+
+buildPythonPackage rec {
+  pname = "towncrier";
+  version = "19.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "15l1gb0hhi9pf3mhhb9vpc93w6w3hrih2ljmzbkgfb3dwqd1l9a8";
+  };
+
+  propagatedBuildInputs = [
+    click
+    click-default-group
+    incremental
+    jinja2
+    toml
+  ];
+
+  # zope.interface collision
+  doCheck = !isPy27;
+  checkInputs = [ git twisted pytestCheckHook ];
+  pythonImportsCheck = [ "towncrier" ];
+
+  meta = with lib; {
+    description = "Utility to produce useful, summarised news files";
+    homepage = "https://github.com/twisted/towncrier/";
+    license = licenses.mit;
+    maintainers = with maintainers; [  ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/tox/default.nix b/nixpkgs/pkgs/development/python-modules/tox/default.nix
index 7300597c56e1..40883928f565 100644
--- a/nixpkgs/pkgs/development/python-modules/tox/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tox/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "tox";
-  version = "3.14.6";
+  version = "3.19.0";
 
   buildInputs = [ setuptools_scm ];
   propagatedBuildInputs = [ packaging pluggy py six virtualenv toml filelock ];
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a4a6689045d93c208d77230853b28058b7513f5123647b67bf012f82fa168303";
+    sha256 = "17e61a93afe5c49281fb969ab71f7a3f22d7586d1c56f9a74219910f356fe7d3";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/tqdm/default.nix b/nixpkgs/pkgs/development/python-modules/tqdm/default.nix
index 138c24ebbe3c..c83f6159fde8 100644
--- a/nixpkgs/pkgs/development/python-modules/tqdm/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tqdm/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "tqdm";
-  version = "4.46.1";
+  version = "4.48.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cd140979c2bebd2311dfb14781d8f19bd5a9debb92dcab9f6ef899c987fcf71f";
+    sha256 = "564d632ea2b9cb52979f7956e093e831c28d441c11751682f84c86fc46e4fd21";
   };
 
   checkInputs = [ nose coverage glibcLocales flake8 ];
diff --git a/nixpkgs/pkgs/development/python-modules/traits/default.nix b/nixpkgs/pkgs/development/python-modules/traits/default.nix
index 5bd849908356..789ba7a1691e 100644
--- a/nixpkgs/pkgs/development/python-modules/traits/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/traits/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , python
 , pytest
 , numpy
@@ -8,11 +9,12 @@
 
 buildPythonPackage rec {
   pname = "traits";
-  version = "5.2.0";
+  version = "6.1.1";
+  disabled = isPy27; # setup.py no longer py3 compat
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1b71vp0l4523428aw098xw6rmkl8vlcy2aag40akijbyz1nnk541";
+    sha256 = "807da52ee0d4fc1241c8f8a04d274a28d4b23d3a5f942152497d19405482d04f";
   };
 
   # Use pytest because its easier to discover tests
diff --git a/nixpkgs/pkgs/development/python-modules/traitsui/default.nix b/nixpkgs/pkgs/development/python-modules/traitsui/default.nix
index 617ba227c41e..01788f63d4f4 100644
--- a/nixpkgs/pkgs/development/python-modules/traitsui/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/traitsui/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "traitsui";
-  version = "6.1.3";
+  version = "7.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0kw1xy5ax6l0lzmk7pfzjw6qs0idv78k3118my7cbvw1n5iiff28";
+    sha256 = "74fb4db848ac1343241fa4dc5d9bf3fab561f309826c602e8a3568309df91fe3";
   };
 
   propagatedBuildInputs = [ traits pyface six ];
diff --git a/nixpkgs/pkgs/development/python-modules/transformers/default.nix b/nixpkgs/pkgs/development/python-modules/transformers/default.nix
index 09ebf739d7d7..328cfb0ba8bb 100644
--- a/nixpkgs/pkgs/development/python-modules/transformers/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/transformers/default.nix
@@ -1,41 +1,96 @@
 { buildPythonPackage
 , stdenv
 , fetchFromGitHub
-, sacremoses
-, requests
-, sentencepiece
 , boto3
-, tqdm
+, filelock
 , regex
+, requests
 , numpy
-, pytest
+, parameterized
+, sacremoses
+, sentencepiece
+, timeout-decorator
+, tokenizers
+, tqdm
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "transformers";
-  version = "2.2.1";
+  version = "3.2.0";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1p8p3lhhiyk1xl9gpgq4vbchyz57v3w7hhvsj1r90zs3cckindl8";
+    sha256 = "0jj94153kgdyklra30xcszxv11hwzfigzy82fgvgzvbwlxv3a1j5";
   };
 
-  propagatedBuildInputs = [ numpy sacremoses requests sentencepiece boto3 tqdm regex ];
+  propagatedBuildInputs = [
+    boto3
+    filelock
+    numpy
+    regex
+    requests
+    sacremoses
+    sentencepiece
+    tokenizers
+    tqdm
+  ];
+
+  checkInputs = [
+    parameterized
+    pytestCheckHook
+    timeout-decorator
+  ];
 
-  checkInputs = [ pytest ];
-  # pretrained tries to download from s3
-  checkPhase = ''
-    cd transformers # avoid importing local files
-    HOME=$TMPDIR pytest -k 'not pretrained_tokenizers'
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "tokenizers == 0.8.1.rc2" "tokenizers>=0.8"
   '';
 
+  preCheck = ''
+    export HOME="$TMPDIR"
+
+    # This test requires the nlp module, which we haven't
+    # packaged yet. However, nlp is optional for transformers
+    # itself
+    rm tests/test_trainer.py
+  '';
+
+  # We have to run from the main directory for the tests. However,
+  # letting pytest discover tests leads to errors.
+  pytestFlagsArray = [ "tests" ];
+
+  # Disable tests that require network access.
+  disabledTests = [
+    "PegasusTokenizationTest"
+    "T5TokenizationTest"
+    "test_all_tokenizers"
+    "test_batch_encoding_is_fast"
+    "test_batch_encoding_pickle"
+    "test_config_from_model_shortcut"
+    "test_config_model_type_from_model_identifier"
+    "test_from_pretrained_use_fast_toggle"
+    "test_hf_api"
+    "test_outputs_can_be_shorter"
+    "test_outputs_not_longer_than_maxlen"
+    "test_padding_accepts_tensors"
+    "test_pretokenized_tokenizers"
+    "test_tokenizer_equivalence_en_de"
+    "test_tokenizer_from_model_type"
+    "test_tokenizer_from_model_type"
+    "test_tokenizer_from_pretrained"
+    "test_tokenizer_from_tokenizer_class"
+    "test_tokenizer_identifier_with_correct_config"
+  ];
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/huggingface/transformers";
     description = "State-of-the-art Natural Language Processing for TensorFlow 2.0 and PyTorch";
+    changelog = "https://github.com/huggingface/transformers/releases/tag/v${version}";
     license = licenses.asl20;
-    platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ pashashocky ];
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ danieldk pashashocky ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/transip/default.nix b/nixpkgs/pkgs/development/python-modules/transip/default.nix
index e71660d5b88e..8ea70a19ead4 100644
--- a/nixpkgs/pkgs/development/python-modules/transip/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/transip/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchFromGitHub
+, isPy27
 , requests
 , cryptography
 , suds-jurko
@@ -10,6 +11,7 @@
 buildPythonPackage rec {
   pname = "transip-api";
   version = "2.0.0";
+  disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "benkonrath";
diff --git a/nixpkgs/pkgs/development/python-modules/transitions/default.nix b/nixpkgs/pkgs/development/python-modules/transitions/default.nix
index e292c77c8c86..a8e84acc2dfd 100644
--- a/nixpkgs/pkgs/development/python-modules/transitions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/transitions/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "transitions";
-  version = "0.7.2";
+  version = "0.8.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5566c9d32e438ee9eb1f046e3ac1a0b2689f32807b47859210162084d4c84ab7";
+    sha256 = "0j3pswbckrhd6plblb0bwzsbvk50nqmxq6dvjclvcr5cljzs7xvg";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/translationstring/default.nix b/nixpkgs/pkgs/development/python-modules/translationstring/default.nix
index 0933b90ede9f..013615de800b 100644
--- a/nixpkgs/pkgs/development/python-modules/translationstring/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/translationstring/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "translationstring";
-  version = "1.3";
+  version = "1.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4ee44cfa58c52ade8910ea0ebc3d2d84bdcad9fa0422405b1801ec9b9a65b72d";
+    sha256 = "bf947538d76e69ba12ab17283b10355a9ecfbc078e6123443f43f2107f6376f3";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/trezor/default.nix b/nixpkgs/pkgs/development/python-modules/trezor/default.nix
index e7bec00863ae..0e0c6da021fb 100644
--- a/nixpkgs/pkgs/development/python-modules/trezor/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trezor/default.nix
@@ -1,31 +1,56 @@
-{ lib, fetchPypi, buildPythonPackage, isPy3k, python, pytest
-, typing-extensions
-, protobuf
-, hidapi
-, ecdsa
-, mnemonic
-, requests
-, pyblake2
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, installShellFiles
+, attrs
 , click
 , construct
+, ecdsa
+, hidapi
 , libusb1
+, mnemonic
+, pillow
+, protobuf
+, pyblake2
+, requests
 , rlp
 , shamir-mnemonic
+, typing-extensions
 , trezor-udev-rules
+, pytest
 }:
 
 buildPythonPackage rec {
   pname = "trezor";
-  version = "0.12.0";
+  version = "0.12.2";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ycmpwjv5xp25993divjhaq5j766zgcy22xx39xfc1pcvldq5g7n";
+    sha256 = "0r0j0y0ii62ppawc8qqjyaq0fkmmb0zk1xb3f9navxp556w2dljv";
   };
 
-  propagatedBuildInputs = [ typing-extensions protobuf hidapi ecdsa mnemonic requests pyblake2 click construct libusb1 rlp shamir-mnemonic trezor-udev-rules ];
+  nativeBuildInputs = [ installShellFiles ];
+
+  propagatedBuildInputs = [
+    attrs
+    click
+    construct
+    ecdsa
+    hidapi
+    libusb1
+    mnemonic
+    pillow
+    protobuf
+    pyblake2
+    requests
+    rlp
+    shamir-mnemonic
+    typing-extensions
+    trezor-udev-rules
+  ];
 
   checkInputs = [
     pytest
@@ -38,10 +63,20 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
+  postFixup = ''
+    mkdir completions
+    _TREZORCTL_COMPLETE=source_bash $out/bin/trezorctl > completions/trezorctl || true
+    _TREZORCTL_COMPLETE=source_zsh $out/bin/trezorctl > completions/_trezorctl || true
+    _TREZORCTL_COMPLETE=source_fish $out/bin/trezorctl > completions/trezorctl.fish || true
+    installShellCompletion --bash completions/trezorctl
+    installShellCompletion --zsh completions/_trezorctl
+    installShellCompletion --fish completions/trezorctl.fish
+  '';
+
   meta = with lib; {
-    description = "Python library for communicating with TREZOR Bitcoin Hardware Wallet";
+    description = "Python library for communicating with Trezor Hardware Wallet";
     homepage = "https://github.com/trezor/trezor-firmware/tree/master/python";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ np prusnak mmahut maintainers."1000101" ];
+    maintainers = with maintainers; [ np prusnak mmahut _1000101 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/trezor_agent/default.nix b/nixpkgs/pkgs/development/python-modules/trezor_agent/default.nix
index 2c254aa25bbf..82cb14b31cb1 100644
--- a/nixpkgs/pkgs/development/python-modules/trezor_agent/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trezor_agent/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "trezor_agent";
-  version = "0.10.0";
+  version = "0.11.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e82bf000c1178b1a7612f2a90487eb34c6234d2edb15dc8e310ad875d8298690";
+    sha256 = "139d917d6495bf290bcc21da457f84ccd2e74c78b4d59a649e0cdde4288cd20c";
   };
 
   propagatedBuildInputs = [ setuptools trezor libagent ecdsa ed25519 mnemonic keepkey semver wheel pinentry ];
diff --git a/nixpkgs/pkgs/development/python-modules/trimesh/default.nix b/nixpkgs/pkgs/development/python-modules/trimesh/default.nix
index c6d1ba00a850..f9a2dfa6af38 100644
--- a/nixpkgs/pkgs/development/python-modules/trimesh/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trimesh/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "trimesh";
-  version = "3.6.43";
+  version = "3.8.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f62dbaf4739858148fe4889f3b4dff93da281982b6592f211c4d33c2e00678eb";
+    sha256 = "50d2e74f2047a50d097a394fb11b12443f764dfc7145140d5029f7019dea6d4d";
   };
 
   propagatedBuildInputs = [ numpy ];
diff --git a/nixpkgs/pkgs/development/python-modules/trio/default.nix b/nixpkgs/pkgs/development/python-modules/trio/default.nix
index 135142529a95..658dea91049f 100644
--- a/nixpkgs/pkgs/development/python-modules/trio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trio/default.nix
@@ -5,7 +5,7 @@
 , idna
 , outcome
 , contextvars
-, pytest
+, pytestCheckHook
 , pyopenssl
 , trustme
 , sniffio
@@ -18,23 +18,23 @@
 
 buildPythonPackage rec {
   pname = "trio";
-  version = "0.13.0";
+  version = "0.16.0";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f1cf00054ad974c86d9b7afa187a65d79fd5995340abe01e8e4784d86f4acb30";
+    sha256 = "df067dd0560c321af39d412cd81fc3a7d13f55af9150527daab980683e9fcf3c";
   };
 
-  checkInputs = [ astor pytest pyopenssl trustme jedi pylint yapf ];
+  checkInputs = [ astor pytestCheckHook pyopenssl trustme jedi pylint yapf ];
   # It appears that the build sandbox doesn't include /etc/services, and these tests try to use it.
-  checkPhase = ''
-    HOME=$TMPDIR py.test -k 'not getnameinfo \
-                             and not SocketType_resolve \
-                             and not getprotobyname \
-                             and not waitpid \
-                             and not static_tool_sees_all_symbols'
-  '';
+  disabledTests = [
+    "getnameinfo"
+    "SocketType_resolve"
+    "getprotobyname"
+    "waitpid"
+    "static_tool_sees_all_symbols"
+  ];
 
   propagatedBuildInputs = [
     attrs
diff --git a/nixpkgs/pkgs/applications/office/trytond/default.nix b/nixpkgs/pkgs/development/python-modules/trytond/default.nix
index c45562a0c8dd..54eae801dfe7 100644
--- a/nixpkgs/pkgs/applications/office/trytond/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/trytond/default.nix
@@ -1,40 +1,68 @@
-{ stdenv, python2Packages
-, withPostgresql ? true }:
+{ stdenv
+, buildPythonApplication
+, fetchPypi
+, pythonOlder
+, mock
+, lxml
+, relatorio
+, genshi
+, dateutil
+, polib
+, python-sql
+, werkzeug
+, wrapt
+, passlib
+, bcrypt
+, pydot
+, python-Levenshtein
+, simplejson
+, html2text
+, psycopg2
+, withPostgresql ? true
+}:
 
 with stdenv.lib;
 
-python2Packages.buildPythonApplication rec {
+buildPythonApplication rec {
   pname = "trytond";
-  version = "4.8.4";
-  src = python2Packages.fetchPypi {
+  version = "5.6.5";
+  disabled = pythonOlder "3.5";
+
+  src = fetchPypi {
     inherit pname version;
-    sha256 = "1935045b1b4674de602b4279a9cfd0a14431624a28ccb490234cffecb81fbca7";
+    sha256 = "a373d73b141d71f8e30d728dd8380955bc0f33daaa097201fa9a952e3663e6d8";
   };
 
   # Tells the tests which database to use
   DB_NAME = ":memory:";
 
-  buildInputs = with python2Packages; [
+  buildInputs = [
     mock
   ];
-  propagatedBuildInputs = with python2Packages; ([
-    dateutil
+  propagatedBuildInputs = [
     lxml
+    relatorio
+    genshi
+    dateutil
     polib
     python-sql
-    relatorio
     werkzeug
     wrapt
-    ipaddress
+    passlib
 
     # extra dependencies
     bcrypt
     pydot
     python-Levenshtein
     simplejson
-    cdecimal
     html2text
-  ] ++ stdenv.lib.optional withPostgresql psycopg2);
+  ] ++ stdenv.lib.optional withPostgresql psycopg2;
+
+  # If unset, trytond will try to mkdir /homeless-shelter
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
   meta = {
     description = "The server of the Tryton application platform";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/python-modules/tvdb_api/default.nix b/nixpkgs/pkgs/development/python-modules/tvdb_api/default.nix
index 6c298dce7c7b..beabc8c23106 100644
--- a/nixpkgs/pkgs/development/python-modules/tvdb_api/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tvdb_api/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "tvdb_api";
-  version = "2.0";
+  version = "3.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b1de28a5100121d91b1f6a8ec7e86f2c4bdf48fb22fab3c6fe21e7fb7346bf8f";
+    sha256 = "6a0135815cb680da38d78121d4d659d8e54a25f4db2816cd86d62916b92f23b2";
   };
 
   propagatedBuildInputs = [ requests-cache ];
diff --git a/nixpkgs/pkgs/development/python-modules/tvnamer/default.nix b/nixpkgs/pkgs/development/python-modules/tvnamer/default.nix
index b0df40089928..1b4e32de68ef 100644
--- a/nixpkgs/pkgs/development/python-modules/tvnamer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tvnamer/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "tvnamer";
-  version = "2.5";
+  version = "3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "75e38454757c77060ad3782bd071682d6d316de86f9aec1c2042d236f93aec7b";
+    sha256 = "00ae7354dec9cca8e652139eba9cf6945371321cdf05ee903a6a59f6d31cef6b";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/tweepy/default.nix b/nixpkgs/pkgs/development/python-modules/tweepy/default.nix
index 13fafe788fd2..1c5535ec079b 100644
--- a/nixpkgs/pkgs/development/python-modules/tweepy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tweepy/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "tweepy";
-  version = "3.8.0";
+  version = "3.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0sri92mzhkifn16klkk2mhc2vcrvdmfp2wvkpfss518sln5q5gca";
+    sha256 = "bfd19a5c11f35f7f199c795f99d9cbf8a52eb33f0ecfb6c91ee10b601180f604";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/twiggy/default.nix b/nixpkgs/pkgs/development/python-modules/twiggy/default.nix
index 6c502ebe011c..fdff4a90f9e1 100644
--- a/nixpkgs/pkgs/development/python-modules/twiggy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twiggy/default.nix
@@ -1,17 +1,19 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, six
 }:
 
 buildPythonPackage rec {
   pname = "Twiggy";
-  version = "0.4.7";
+  version = "0.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "44d8aa51110efaab0712b5ec2b015149ad4f28e28f729004aac45d0ad8e19be0";
+    sha256 = "259ae96cb22e80c49e75c37dc2f7497028c5dc19018958f05fa00ec08fc2569f";
   };
 
+  propagatedBuildInputs = [ six ];
   doCheck = false;
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/twilio/default.nix b/nixpkgs/pkgs/development/python-modules/twilio/default.nix
index 18e28c358b49..d4cd7b5d59bf 100644
--- a/nixpkgs/pkgs/development/python-modules/twilio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twilio/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "twilio";
-  version = "6.39.0";
+  version = "6.43.0";
   # tests not included in PyPi, so fetch from github instead
   src = fetchFromGitHub {
     owner = "twilio";
     repo = "twilio-python";
     rev = version;
-    sha256 = "1l2j54kjd1lrf072a3i5037qxpm8n378dddzd3m711ylz6vp638f";
+    sha256 = "0p2chrzakqx5694g305j0klh9lxlclm5qp0qjm6wqicivyybggzg";
   };
 
   buildInputs = [ nose mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/twill/default.nix b/nixpkgs/pkgs/development/python-modules/twill/default.nix
index e11d7392e1c0..a717ab2bc9d2 100644
--- a/nixpkgs/pkgs/development/python-modules/twill/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twill/default.nix
@@ -1,21 +1,29 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, nose }:
+{ lib, buildPythonPackage, fetchPypi, isPy3k, nose
+, lxml
+, requests
+, pyparsing
+}:
 buildPythonPackage rec {
   pname = "twill";
-  version = "1.8.0";
-
-  disabled = isPy3k;
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d63e8b09aa4f6645571c70cd3ba47a911abbae4d7baa4b38fc7eb72f6cfda188";
+    sha256 = "85bc45bc34e3d4116123e3021c07d3a86b5e67be1ee01bc8062288eb83ae7799";
   };
 
   checkInputs = [ nose ];
 
+  propagatedBuildInputs = [
+    lxml
+    requests
+    pyparsing
+  ];
+
   doCheck = false; # pypi package comes without tests, other homepage does not provide all verisons
 
   meta = with lib; {
-    homepage = "http://twill.idyll.org/";
+    homepage = "https://twill-tools.github.io/twill/";
     description = "A simple scripting language for Web browsing";
     license     = licenses.mit;
     maintainers = with maintainers; [ mic92 ];
diff --git a/nixpkgs/pkgs/development/python-modules/twine/default.nix b/nixpkgs/pkgs/development/python-modules/twine/default.nix
index b3dddbbba68e..47f9fe1a034e 100644
--- a/nixpkgs/pkgs/development/python-modules/twine/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/twine/default.nix
@@ -8,16 +8,18 @@
 , requests_toolbelt
 , setuptools_scm
 , tqdm
+, colorama
+, rfc3986
 }:
 
 buildPythonPackage rec {
   pname = "twine";
-  version = "3.1.1";
+  version = "3.2.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d561a5e511f70275e5a485a6275ff61851c16ffcb3a95a602189161112d9f160";
+    sha256 = "34352fd52ec3b9d29837e6072d5a2a7c6fe4290e97bba46bb8d478b5c598f7ab";
   };
 
   nativeBuildInputs = [ setuptools_scm ];
@@ -29,6 +31,8 @@ buildPythonPackage rec {
     requests
     requests_toolbelt
     tqdm
+    colorama
+    rfc3986
   ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # Requires network
diff --git a/nixpkgs/pkgs/development/python-modules/txaio/default.nix b/nixpkgs/pkgs/development/python-modules/txaio/default.nix
index 7fb1b9e5b5cd..7e87a2d59ea4 100644
--- a/nixpkgs/pkgs/development/python-modules/txaio/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/txaio/default.nix
@@ -1,12 +1,13 @@
-{ stdenv, buildPythonPackage, fetchPypi, pytest, mock, six, twisted,isPy37 }:
+{ stdenv, buildPythonPackage, fetchPypi, pytest, mock, six, twisted, isPy37, isPy27 }:
 
 buildPythonPackage rec {
   pname = "txaio";
-  version = "18.8.1";
+  version = "20.4.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "67e360ac73b12c52058219bb5f8b3ed4105d2636707a36a7cdafb56fe06db7fe";
+    sha256 = "17938f2bca4a9cabce61346758e482ca4e600160cbc28e861493eac74a19539d";
   };
 
   checkInputs = [ pytest mock ];
diff --git a/nixpkgs/pkgs/development/python-modules/txdbus/default.nix b/nixpkgs/pkgs/development/python-modules/txdbus/default.nix
index 8ef694d34ff2..636e19b39bab 100644
--- a/nixpkgs/pkgs/development/python-modules/txdbus/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/txdbus/default.nix
@@ -17,6 +17,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/cocagne/txdbus";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/typed-ast/default.nix b/nixpkgs/pkgs/development/python-modules/typed-ast/default.nix
index 5095265e33f6..608ce8b65fea 100644
--- a/nixpkgs/pkgs/development/python-modules/typed-ast/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/typed-ast/default.nix
@@ -1,12 +1,12 @@
 { buildPythonPackage, fetchFromGitHub, lib, pythonOlder }:
 buildPythonPackage rec {
   pname = "typed-ast";
-  version = "1.4.0";
+  version = "1.4.1";
   src = fetchFromGitHub{
     owner = "python";
     repo = "typed_ast";
     rev = version;
-    sha256 = "0l0hz809f7i356kmqkvfsaswiidb98j9hs9rrjnfawzqcbffzgyb";
+    sha256 = "086r9qhls6mz1w72a6d1ld3m4fbkxklf6mgwbs8wpw0zlxjm7y40";
   };
   # Only works with Python 3.3 and newer;
   disabled = pythonOlder "3.3";
diff --git a/nixpkgs/pkgs/development/python-modules/typeguard/default.nix b/nixpkgs/pkgs/development/python-modules/typeguard/default.nix
index 042bd2e76547..2f0617731e10 100644
--- a/nixpkgs/pkgs/development/python-modules/typeguard/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/typeguard/default.nix
@@ -4,16 +4,17 @@
 , stdenv
 , setuptools_scm
 , pytest
+, typing-extensions
 , glibcLocales
 }:
 
 buildPythonPackage rec {
   pname = "typeguard";
-  version = "2.7.1";
+  version = "2.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2d545c71e9439c21bcd7c28f5f55b3606e6106f7031ab58375656a1aed483ef2";
+    sha256 = "123jnq7igm26a5347jf2j60bww9g84l80f208dzlbk49h7cg77jj";
   };
 
   buildInputs = [ setuptools_scm ];
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     substituteInPlace setup.cfg --replace " --cov" ""
   '';
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytest typing-extensions ];
 
   checkPhase = ''
     py.test .
diff --git a/nixpkgs/pkgs/development/python-modules/typing-extensions/default.nix b/nixpkgs/pkgs/development/python-modules/typing-extensions/default.nix
index d6ae7cefc392..655b3384af17 100644
--- a/nixpkgs/pkgs/development/python-modules/typing-extensions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/typing-extensions/default.nix
@@ -4,11 +4,11 @@ let
 
 in buildPythonPackage rec {
   pname = "typing_extensions";
-  version = "3.7.4.2";
+  version = "3.7.4.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "79ee589a3caca649a9bfd2a8de4709837400dfa00b6cc81962a1e6a1815969ae";
+    sha256 = "99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c";
   };
 
   checkInputs = lib.optional (pythonOlder "3.5") typing;
diff --git a/nixpkgs/pkgs/development/python-modules/typing-inspect/default.nix b/nixpkgs/pkgs/development/python-modules/typing-inspect/default.nix
new file mode 100644
index 000000000000..849b56d2d0c2
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/typing-inspect/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, typing-extensions
+, mypy-extensions
+}:
+
+buildPythonPackage rec {
+  pname = "typing-inspect";
+  version = "0.6.0";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "typing_inspect";
+    sha256 = "1dzs9a1pr23dhbvmnvms2jv7l7jk26023g5ysf0zvnq8b791s6wg";
+  };
+
+  propagatedBuildInputs = [
+    typing-extensions
+    mypy-extensions
+  ];
+
+  meta = with lib; {
+    description = "Runtime inspection utilities for Python typing module";
+    homepage = "https://github.com/ilevkivskyi/typing_inspect";
+    license = licenses.mit;
+    maintainers = with maintainers; [ albakham ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/typing/default.nix b/nixpkgs/pkgs/development/python-modules/typing/default.nix
index 6c25031a8dc7..0d5c2119921a 100644
--- a/nixpkgs/pkgs/development/python-modules/typing/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/typing/default.nix
@@ -5,11 +5,11 @@ let
 
 in buildPythonPackage rec {
   pname = "typing";
-  version = "3.7.4.1";
+  version = "3.7.4.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "91dfe6f3f706ee8cc32d38edbbf304e9b7583fb37108fef38229617f8b3eba23";
+    sha256 = "1187fb9c82fd670d10aa07bbb6cfcfe4bdda42d6fab8d5134f04e8c4d0b71cc9";
   };
 
   # Error for Python3.6: ImportError: cannot import name 'ann_module'
diff --git a/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix b/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix
index f10f76d53cf3..e5ab11595303 100644
--- a/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/tzlocal/default.nix
@@ -3,13 +3,13 @@
 
 buildPythonPackage rec {
   pname = "tzlocal";
-  version = "2.0.0";
+  version = "2.1";
 
   propagatedBuildInputs = [ pytz ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "949b9dd5ba4be17190a80c0268167d7e6c92c62b30026cf9764caf3e308e5590";
+    sha256 = "643c97c5294aedc737780a49d9df30889321cbe1204eac2c2ec6134035a92e44";
   };
 
   # test fail (timezone test fail)
diff --git a/nixpkgs/pkgs/development/python-modules/u-msgpack-python/default.nix b/nixpkgs/pkgs/development/python-modules/u-msgpack-python/default.nix
index 93cd1a21a94d..ef4fe47b7a27 100644
--- a/nixpkgs/pkgs/development/python-modules/u-msgpack-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/u-msgpack-python/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "u-msgpack-python";
-  version = "2.5.2";
+  version = "2.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "09c85a8af77376034396681e76bf30c249a4fd8e5ebb239f8a468d3655f210d0";
+    sha256 = "996e4c4454771f0ff0fd2a7566b1a159d305d3611cd755addf444e3533e2bc54";
   };
 
   LC_ALL="en_US.UTF-8";
diff --git a/nixpkgs/pkgs/development/python-modules/uamqp/default.nix b/nixpkgs/pkgs/development/python-modules/uamqp/default.nix
index e1527ea27e69..1e7132525a22 100644
--- a/nixpkgs/pkgs/development/python-modules/uamqp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uamqp/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "uamqp";
-  version = "1.2.8";
+  version = "1.2.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12yq435h27iv1kzgq3gl7c7hxdivvc2sl0l1kslgf2wxw53n7jgj";
+    sha256 = "398dd818e9a6c14f00c434e7ad3fcbe1d0344f2f4c23bca8c5026280ae032f4f";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/uarray/default.nix b/nixpkgs/pkgs/development/python-modules/uarray/default.nix
index 7e03017ce56b..37ba1ab25e2f 100644
--- a/nixpkgs/pkgs/development/python-modules/uarray/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uarray/default.nix
@@ -17,11 +17,11 @@
 
 buildPythonPackage rec {
   pname = "uarray";
-  version = "0.5.1";
+  version = "0.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0j2pin54pwm1vdgza8irxcjb2za7h41c0ils04afssdn59cixslx";
+    sha256 = "fa63ae7034833a99bc1628d3cd5501d4d00f2e6437b6cbe73f710dcf212a6bea";
   };
 
   doCheck = false; # currently has circular dependency module import, remove when bumping to >0.5.1
diff --git a/nixpkgs/pkgs/development/python-modules/ueberzug/default.nix b/nixpkgs/pkgs/development/python-modules/ueberzug/default.nix
index c956e5d8b345..d80009e64788 100644
--- a/nixpkgs/pkgs/development/python-modules/ueberzug/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ueberzug/default.nix
@@ -4,13 +4,13 @@
 
 buildPythonPackage rec {
   pname = "ueberzug";
-  version = "18.1.5";
+  version = "18.1.6";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1rj864sdn1975v59i8j3cfa9hni1hacq0z2b8m7wib0da9apygby";
+    sha256 = "13a9q9rvkbsym5nrc1y2anhyx317vj1vi8k8kln8gin2yw311pyb";
   };
 
   buildInputs = [ libX11 libXext ];
diff --git a/nixpkgs/pkgs/development/python-modules/ufonormalizer/default.nix b/nixpkgs/pkgs/development/python-modules/ufonormalizer/default.nix
new file mode 100644
index 000000000000..1fbed4ad1aa5
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ufonormalizer/default.nix
@@ -0,0 +1,19 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "ufonormalizer";
+  version = "0.4.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1rn64a0i151qk6h5f9pijcmja195i2d6f8jbi5h4xkgkinm9wwzj";
+    extension = "zip";
+  };
+
+  meta = with lib; {
+    description = "Script to normalize the XML and other data inside of a UFO";
+    homepage = "https://github.com/unified-font-object/ufoNormalizer";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix b/nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix
new file mode 100644
index 000000000000..db5b1400fe45
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ufoprocessor/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildPythonPackage, fetchPypi
+, defcon, fonttools, lxml, fs
+, mutatormath, fontmath, fontparts
+, setuptools_scm
+}:
+
+buildPythonPackage rec {
+  pname = "ufoProcessor";
+  version = "1.9.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0ns11aamgavgsfj8qf5kq7dvzmgl0mhr1cbych2f075ipfdvva5s";
+    extension = "zip";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [
+    defcon
+    lxml
+    fonttools
+    fs
+    fontmath
+    fontparts
+    mutatormath
+  ];
+
+  meta = with lib; {
+    description = "Read, write and generate UFOs with designspace data";
+    homepage = "https://github.com/LettError/ufoProcessor";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ujson/2.nix b/nixpkgs/pkgs/development/python-modules/ujson/2.nix
new file mode 100644
index 000000000000..e1d1185f6f5e
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/ujson/2.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, setuptools_scm
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "ujson";
+  version = "2.0.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "18z9gb9ggy1r464b9q1gqs078mqgrkj6dys5a47529rqk3yfybdx";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://pypi.python.org/pypi/ujson";
+    description = "Ultra fast JSON encoder and decoder for Python";
+    license = licenses.bsd3;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/ujson/default.nix b/nixpkgs/pkgs/development/python-modules/ujson/default.nix
index d60ec743032e..9df71ee49c3e 100644
--- a/nixpkgs/pkgs/development/python-modules/ujson/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ujson/default.nix
@@ -1,19 +1,23 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy3k
 , isPyPy
+, setuptools_scm
 }:
 
 buildPythonPackage rec {
   pname = "ujson";
-  version = "1.35";
-  disabled = isPyPy;
+  version = "3.1.0";
+  disabled = isPyPy || (!isPy3k);
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11jz5wi7mbgqcsz52iqhpyykiaasila4lq8cmc2d54bfa3jp6q7n";
+    sha256 = "00bda1de275ed6fe81817902189c75dfd156b4fa29b44dc1f4620775d2f50cf7";
   };
 
+  nativeBuildInputs = [ setuptools_scm ];
+
   meta = with stdenv.lib; {
     homepage = "https://pypi.python.org/pypi/ujson";
     description = "Ultra fast JSON encoder and decoder for Python";
diff --git a/nixpkgs/pkgs/development/python-modules/uncertainties/default.nix b/nixpkgs/pkgs/development/python-modules/uncertainties/default.nix
index 2e87565554c6..8cf066245593 100644
--- a/nixpkgs/pkgs/development/python-modules/uncertainties/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uncertainties/default.nix
@@ -1,18 +1,20 @@
-{ stdenv, fetchPypi, buildPythonPackage, nose, numpy }:
+{ stdenv, fetchPypi, buildPythonPackage
+, nose, numpy, future
+}:
 
 buildPythonPackage rec {
   pname = "uncertainties";
-  version = "3.1.2";
+  version = "3.1.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "07kahmr0vfmncf8y4x6ldjrghnd4gsf0fwykgjj5ijvqi9xc21xs";
+    sha256 = "0s69kdhl8vhqazhxqdvb06l83x0iqdm0yr4vp3p52alzi6a8lm33";
   };
 
-  buildInputs = [ nose numpy ];
+  propagatedBuildInputs = [ future ];
+  checkInputs = [ nose numpy ];
 
-  # No tests included
-  doCheck = false;
+  checkPhase = "python setup.py nosetests -sv";
 
   meta = with stdenv.lib; {
     homepage = "https://pythonhosted.org/uncertainties/";
diff --git a/nixpkgs/pkgs/development/python-modules/uncompyle6/default.nix b/nixpkgs/pkgs/development/python-modules/uncompyle6/default.nix
index fd76813ea712..9e793ec3fb30 100644
--- a/nixpkgs/pkgs/development/python-modules/uncompyle6/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uncompyle6/default.nix
@@ -11,11 +11,11 @@
 
 buildPythonPackage rec {
   pname = "uncompyle6";
-  version = "3.6.7";
+  version = "3.7.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6f5ae93cfb0ccf22b6b10b608c982bc0fa9bed2481ead57242c02ac64a573db7";
+    sha256 = "a45f98f40edb47c2a0e2786ffe7d68fc2cb4ad05b2efcb50e95c337f6ecae353";
   };
 
   checkInputs = [ nose pytest hypothesis six ];
diff --git a/nixpkgs/pkgs/development/python-modules/unicodedata2/default.nix b/nixpkgs/pkgs/development/python-modules/unicodedata2/default.nix
new file mode 100644
index 000000000000..09b75e0c7776
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/unicodedata2/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pytest }:
+
+buildPythonPackage rec {
+  pname = "unicodedata2";
+  version = "13.0.0-2";
+
+  src = fetchFromGitHub {
+    owner  = "mikekap";
+    repo   = pname;
+    rev    = version;
+    sha256 = "0p9brbiwyg98q52y0gfyps52xv57fwqfpq0mn18p1xc1imip3h2b";
+  };
+
+  checkInputs = [ pytest ];
+  checkPhase = "pytest tests";
+
+  meta = with lib; {
+    description = "Backport and updates for the unicodedata module";
+    homepage = "http://github.com/mikekap/unicodedata2";
+    license = licenses.asl20;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/unittest-xml-reporting/default.nix b/nixpkgs/pkgs/development/python-modules/unittest-xml-reporting/default.nix
index f39876d6396a..c8d1edc42109 100644
--- a/nixpkgs/pkgs/development/python-modules/unittest-xml-reporting/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/unittest-xml-reporting/default.nix
@@ -1,8 +1,9 @@
-{lib, fetchPypi, buildPythonPackage, six}:
+{lib, fetchPypi, buildPythonPackage, isPy27, six}:
 
 buildPythonPackage rec {
   pname = "unittest-xml-reporting";
-  version = "2.5.2";
+  version = "3.0.4";
+  disabled = isPy27;
 
   propagatedBuildInputs = [six];
 
@@ -11,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9d28ddf6524cf0ff9293f61bd12e792de298f8561a5c945acea63fb437789e0e";
+    sha256 = "984cebba69e889401bfe3adb9088ca376b3a1f923f0590d005126c1bffd1a695";
   };
   meta = with lib; {
     homepage = "https://github.com/xmlrunner/unittest-xml-reporting/tree/master/";
diff --git a/nixpkgs/pkgs/development/python-modules/untangle/default.nix b/nixpkgs/pkgs/development/python-modules/untangle/default.nix
index 9b8e915a8ba7..820c96c38c90 100644
--- a/nixpkgs/pkgs/development/python-modules/untangle/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/untangle/default.nix
@@ -3,7 +3,7 @@
 buildPythonPackage rec {
   pname = "untangle";
   version = "1.1.1";
-  
+
   src = fetchFromGitHub {
     owner = "stchris";
     repo = "untangle";
@@ -11,11 +11,11 @@ buildPythonPackage rec {
     rev = "61b57cd771a40df7d1621e9ec3c68d9acd733d31";
     sha256 = "0ffvlfyyl82xi4akz1lls32lrnlrn44ik41v8x8xh9ghy0n0ick7";
   };
-  
+
   checkPhase = ''
     ${python.interpreter} -m unittest discover -s tests
   '';
-  
+
   meta = with lib; {
     description = "Convert XML documents into Python objects";
     homepage = "https://github.com/stchris/untangle";
diff --git a/nixpkgs/pkgs/development/python-modules/update_checker/default.nix b/nixpkgs/pkgs/development/python-modules/update_checker/default.nix
index e319422ce7b3..fd3d0b02b630 100644
--- a/nixpkgs/pkgs/development/python-modules/update_checker/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/update_checker/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "update_checker";
-  version = "0.17";
+  version = "0.18.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0qhfn5fjjab50gbnj2053wdfppzkydqgapfz35ymrm1vysvqvvrd";
+    sha256 = "6a2d45bb4ac585884a6b03f9eade9161cedd9e8111545141e9aa9058932acb13";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/uproot/default.nix b/nixpkgs/pkgs/development/python-modules/uproot/default.nix
index 3d472a604d64..81b6f276289c 100644
--- a/nixpkgs/pkgs/development/python-modules/uproot/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uproot/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "uproot";
-  version = "3.11.7";
+  version = "3.12.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3fbf9dfe5ce996ffda3a49d16eba804b95fb05bc041fc4e7bc05317a03bf6cba";
+    sha256 = "1603140896b9d3495cedeee2b872e97759085777c1299317072ad3f415211abc";
   };
 
   nativeBuildInputs = [ pytestrunner ];
diff --git a/nixpkgs/pkgs/development/python-modules/uranium/default.nix b/nixpkgs/pkgs/development/python-modules/uranium/default.nix
index af13fa8d17af..0bcfa0305e8c 100644
--- a/nixpkgs/pkgs/development/python-modules/uranium/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uranium/default.nix
@@ -2,7 +2,7 @@
 , pyqt5, numpy, scipy, shapely, libarcus, doxygen, gettext, pythonOlder }:
 
 buildPythonPackage rec {
-  version = "4.6.1";
+  version = "4.7.1";
   pname = "uranium";
   format = "other";
 
@@ -10,7 +10,7 @@ buildPythonPackage rec {
     owner = "Ultimaker";
     repo = "Uranium";
     rev = version;
-    sha256 = "07pksjbgxs1ks2i6pgxkwfg9c56pcql7f9p89dnwaf2rcn7yhx6r";
+    sha256 = "1h5d3scy3cnbyhh0pbavflpqklhn2lbp7hl193rc5gx8yzr3mqbh";
   };
 
   disabled = pythonOlder "3.5.0";
diff --git a/nixpkgs/pkgs/development/python-modules/urllib3/default.nix b/nixpkgs/pkgs/development/python-modules/urllib3/default.nix
index 0c54f8f2518c..2715388e8f20 100644
--- a/nixpkgs/pkgs/development/python-modules/urllib3/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/urllib3/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "urllib3";
-  version = "1.25.9";
+  version = "1.25.10";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3018294ebefce6572a474f0604c2021e33b3fd8006ecd11d62107a5d2a963527";
+    sha256 = "91056c15fa70756691db97756772bb1eb9678fa585d9184f24534b100dc60f4a";
   };
 
   NOSE_EXCLUDE = stdenv.lib.concatStringsSep "," [
diff --git a/nixpkgs/pkgs/development/python-modules/urwid-readline/default.nix b/nixpkgs/pkgs/development/python-modules/urwid-readline/default.nix
new file mode 100644
index 000000000000..1ded152cba91
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/urwid-readline/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, urwid
+, glibcLocales
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "urwid_readline";
+  version = "0.11";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "24e376d4b75940d19e8bc81c264be5d383f8d4da560f68f648dd16c85f6afdb5";
+  };
+
+  propagatedBuildInputs = [
+    urwid
+  ];
+
+  checkInputs = [
+    glibcLocales
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "A textbox edit widget for urwid that supports readline shortcuts";
+    homepage = "https://github.com/rr-/urwid_readline";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/urwid/default.nix b/nixpkgs/pkgs/development/python-modules/urwid/default.nix
index 3e71cae26e39..36fe4b51495d 100644
--- a/nixpkgs/pkgs/development/python-modules/urwid/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/urwid/default.nix
@@ -1,18 +1,24 @@
-{ stdenv, buildPythonPackage, fetchPypi, glibcLocales }:
+{ stdenv, buildPythonPackage, fetchPypi, isPy3k, isPy27, glibcLocales }:
 
 buildPythonPackage rec {
   pname = "urwid";
-  version = "2.1.0";
+  version = "2.1.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0896f36060beb6bf3801cb554303fef336a79661401797551ba106d23ab4cd86";
+    sha256 = "09nmi2nmvpcmbh3w3fb0dn0c7yp7r20i5pfcr6q722xh6mp8cw3q";
   };
 
   # tests need to be able to set locale
   LC_ALL = "en_US.UTF-8";
   checkInputs = [ glibcLocales ];
 
+  # tests which assert on strings don't decode results correctly
+  doCheck = isPy3k;
+
+  pythonImportsCheck = [ "urwid" ];
+
   meta = with stdenv.lib; {
     description = "A full-featured console (xterm et al.) user interface library";
     homepage = "http://excess.org/urwid";
diff --git a/nixpkgs/pkgs/development/python-modules/us/default.nix b/nixpkgs/pkgs/development/python-modules/us/default.nix
index 307f6fd75245..4e7d97068f25 100644
--- a/nixpkgs/pkgs/development/python-modules/us/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/us/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "us";
-  version = "1.0.0";
+  version = "2.0.2";
 
   propagatedBuildInputs = [ jellyfish ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1niglalkp7pinibzbxjdz9mxx9qmwkrh8884dag3kr72cfkrpp09";
+    sha256 = "cb11ad0d43deff3a1c3690c74f0c731cff5b862c73339df2edd91133e1496fbc";
   };
 
   # Upstream requires jellyfish==0.5.6 but we have 0.6.1
diff --git a/nixpkgs/pkgs/development/python-modules/userpath/default.nix b/nixpkgs/pkgs/development/python-modules/userpath/default.nix
new file mode 100644
index 000000000000..8366a56158dd
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/userpath/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, click
+, distro
+}:
+
+buildPythonPackage rec {
+  pname = "userpath";
+  version = "1.4.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256="0mfjmvx286z1dmnrc7bm65x8gj8qrmkcyagl0vf5ywfq0bm48591";
+  };
+
+  propagatedBuildInputs = [ click distro ];
+
+  # test suite is difficult to emulate in sandbox due to shell manipulation
+  doCheck = false;
+
+  pythonImportsCheck = [ "click" "userpath" ];
+
+  meta = with lib; {
+    description = "Cross-platform tool for adding locations to the user PATH";
+    homepage = "https://github.com/ofek/userpath";
+    license = [ licenses.asl20 licenses.mit ];
+    maintainers = with maintainers; [ yevhenshymotiuk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/uvcclient/default.nix b/nixpkgs/pkgs/development/python-modules/uvcclient/default.nix
new file mode 100644
index 000000000000..1490172a463a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/uvcclient/default.nix
@@ -0,0 +1,29 @@
+{ lib, buildPythonPackage, fetchFromGitHub, nose, mock }:
+
+buildPythonPackage rec {
+  pname = "uvcclient";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "kk7ds";
+    repo = pname;
+    rev = "58e7a53815482b7778481f81cde95f53a60bb6f6";
+    sha256 = "0k8aswrk1n08w6pi6dg0zdzsmk23cafihkrss9ywg3i85w7q43x2";
+  };
+
+  checkInputs = [
+    nose
+    mock
+  ];
+
+  checkPhase = ''
+    nosetests
+  '';
+
+  meta = with lib; {
+    description = "Client for Ubiquiti's Unifi Camera NVR";
+    homepage = "https://github.com/kk7ds/uvcclient";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/uvicorn/default.nix b/nixpkgs/pkgs/development/python-modules/uvicorn/default.nix
index d839c421ea0a..ddf98d2d4921 100644
--- a/nixpkgs/pkgs/development/python-modules/uvicorn/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uvicorn/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "uvicorn";
-  version = "0.11.2";
+  version = "0.11.5";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "145c569j4511zw3wglyv9qgd7g1757ypi2blcckpcmahqw11l5p2";
+    sha256 = "0cf0vw6kzxwlkvk5gw85wv3kg1kdil0wkq3s7rmxpvrk6gjk8jvq";
   };
 
   propagatedBuildInputs = [
@@ -35,18 +35,14 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "h11==0.8.*" "h11"
+      --replace "h11==0.8.*" "h11" \
+      --replace "httptools==0.0.13" "httptools"
   '';
 
   checkInputs = [ pytest requests ];
+  # watchgod required the watchgod package, which isn't available in nixpkgs
   checkPhase = ''
-    pytest
-  '';
-
-  # LICENCE.md gets propagated without this, causing collisions
-  # see https://github.com/encode/uvicorn/issues/392
-  postInstall = ''
-    rm $out/LICENSE.md
+    pytest --ignore=tests/supervisors/test_watchgodreload.py
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/uvloop/default.nix b/nixpkgs/pkgs/development/python-modules/uvloop/default.nix
index 109d8d8efab2..b06f41ce5a31 100644
--- a/nixpkgs/pkgs/development/python-modules/uvloop/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/uvloop/default.nix
@@ -6,6 +6,7 @@
 , libuv
 , psutil
 , isPy27
+, pythonAtLeast
 , CoreServices
 , ApplicationServices
 # Check Inputs
@@ -48,13 +49,16 @@ buildPythonPackage rec {
 
   disabledTests = [
     "test_sock_cancel_add_reader_race"  # asyncio version of test is supposed to be skipped but skip doesn't happen. uvloop version runs fine
-  ];
+  ] ++ lib.optionals (pythonAtLeast "3.8") [ "test_write_to_closed_transport" ];  # https://github.com/MagicStack/uvloop/issues/355
 
   # force using installed/compiled uvloop vs source by moving tests to temp dir
   preCheck = ''
     export TEST_DIR=$(mktemp -d)
     cp -r tests $TEST_DIR
     pushd $TEST_DIR
+  '' + lib.optionalString stdenv.isDarwin ''
+    # Some tests fail on Darwin
+    rm tests/test_[stu]*.py
   '';
   postCheck = ''
     popd
diff --git a/nixpkgs/pkgs/development/python-modules/validators/default.nix b/nixpkgs/pkgs/development/python-modules/validators/default.nix
index b9be035135fb..6ec8db340681 100644
--- a/nixpkgs/pkgs/development/python-modules/validators/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/validators/default.nix
@@ -1,20 +1,22 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , six
 , decorator
-, pytest
+, pytestCheckHook
 , isort
 , flake8
 }:
 
 buildPythonPackage rec {
   pname = "validators";
-  version = "0.14.3";
+  version = "0.17.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6a0d9502219aee486f1ee12d8a9635e4a56f3dbcfa204b4e0de3a038ae35f34f";
+    sha256 = "401cb441dd61bb1a03b10c8a3a884642409e22a2a19e03bbfc4891e0ddbc7268";
   };
 
   propagatedBuildInputs = [
@@ -23,14 +25,12 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    pytest
+    pytestCheckHook
     flake8
     isort
   ];
 
-  checkPhase = ''
-    pytest
-  '';
+  disabledTests = lib.optionals isPy27 [ "url" ];
 
   meta = with lib; {
     description = "Python Data Validation for Humans™";
diff --git a/nixpkgs/pkgs/development/python-modules/varint/default.nix b/nixpkgs/pkgs/development/python-modules/varint/default.nix
index 5f32dff4aa5c..143a452344ee 100644
--- a/nixpkgs/pkgs/development/python-modules/varint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/varint/default.nix
@@ -22,4 +22,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ rakesh4g ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/python-modules/vcrpy/default.nix b/nixpkgs/pkgs/development/python-modules/vcrpy/default.nix
index ddd4015aad1e..633c4f266cdc 100644
--- a/nixpkgs/pkgs/development/python-modules/vcrpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vcrpy/default.nix
@@ -15,11 +15,11 @@
 
 buildPythonPackage rec {
   pname = "vcrpy";
-  version = "3.0.0";
+  version = "4.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "21168d5ae14263a833d4b71acfd8278d8841114f24be1b4ab4a5719d0c7f07bc";
+    sha256 = "4138e79eb35981ad391406cbb7227bce7eba8bad788dcf1a89c2e4a8b740debe";
   };
 
   checkInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/vcver/default.nix b/nixpkgs/pkgs/development/python-modules/vcver/default.nix
new file mode 100644
index 000000000000..74b44cddc464
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/vcver/default.nix
@@ -0,0 +1,31 @@
+{ lib, buildPythonPackage, fetchFromGitHub
+, packaging
+, fetchurl, python }:
+
+buildPythonPackage rec {
+  pname = "vcver";
+  version = "0.2.10";
+
+  src = fetchFromGitHub {
+    owner = "toumorokoshi";
+    repo = "vcver-python";
+    rev = "c5d8a6f1f0e49bb25f5dbb07312e42cb4da096d6";
+    sha256 = "1cvgs70jf7ki78338zaglaw2dkvyndmx15ybd6k4zqwwsfgk490b";
+  };
+
+  propagatedBuildInputs = [
+    packaging
+  ];
+
+  # circular dependency on test tool uranium https://pypi.org/project/uranium/
+  doCheck = false;
+
+  pythonImportTests = [ "vcver" ];
+
+  meta = with lib; {
+    description = "Reference Implementation of vcver";
+    homepage = "https://github.com/toumorokoshi/vcver-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/vdirsyncer/stable.nix b/nixpkgs/pkgs/development/python-modules/vdirsyncer/stable.nix
index cb90bfbc5988..6e1dc9825670 100644
--- a/nixpkgs/pkgs/development/python-modules/vdirsyncer/stable.nix
+++ b/nixpkgs/pkgs/development/python-modules/vdirsyncer/stable.nix
@@ -1,9 +1,7 @@
 { stdenv
-, pythonAtLeast
 , buildPythonPackage
 , fetchPypi
 , isPy27
-, fetchpatch
 , click
 , click-log
 , click-threading
@@ -11,25 +9,21 @@
 , requests
 , requests_oauthlib # required for google oauth sync
 , atomicwrites
-, milksnake
-, shippai
 , hypothesis
-, pytest
+, pytestCheckHook
 , pytest-localserver
 , pytest-subtesthack
 , setuptools_scm
 }:
 
-# Packaging documentation at:
-# https://github.com/pimutils/vdirsyncer/blob/0.16.7/docs/packaging.rst
 buildPythonPackage rec {
-  version = "0.16.7";
+  version = "0.16.8";
   pname = "vdirsyncer";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6c9bcfb9bcb01246c83ba6f8551cf54c58af3323210755485fc23bb7848512ef";
+    sha256 = "bfdb422f52e1d4d60bd0635d203fb59fa7f613397d079661eb48e79464ba13c5";
   };
 
   propagatedBuildInputs = [
@@ -46,43 +40,25 @@ buildPythonPackage rec {
 
   checkInputs = [
     hypothesis
-    pytest
+    pytestCheckHook
     pytest-localserver
     pytest-subtesthack
   ];
 
-  patches = [
-    # Fixes for hypothesis: https://github.com/pimutils/vdirsyncer/pull/779
-    (fetchpatch {
-      url = "https://github.com/pimutils/vdirsyncer/commit/22ad88a6b18b0979c5d1f1d610c1d2f8f87f4b89.patch";
-      sha256 = "0dbzj6jlxhdidnm3i21a758z83sdiwzhpd45pbkhycfhgmqmhjpl";
-    })
-  ];
-
   postPatch = ''
-    # Invalid argument: 'perform_health_check' is not a valid setting
-    substituteInPlace tests/conftest.py \
-      --replace "perform_health_check=False" ""
-    substituteInPlace tests/unit/test_repair.py \
-      --replace $'@settings(perform_health_check=False)  # Using the random module for UIDs\n' ""
+    substituteInPlace setup.py --replace "click>=5.0,<6.0" "click"
   '';
 
-  checkPhase = ''
-    make DETERMINISTIC_TESTS=true PYTEST_ARGS="--deselect=tests/system/cli/test_sync.py::test_verbosity" test
+  preCheck = ''
+    export DETERMINISTIC_TESTS=true
   '';
-  # Tests started to fail lately, for any python version even as low as 3.5 but
-  # if you enable the check, you'll see even severer errors with a higher then
-  # 3.5 python version. Hence it's marked as broken for higher then 3.5 and the
-  # checks are disabled unconditionally. As a general end user advice, use the
-  # normal "unstable" `vdirsyncer` derivation, not this one.
-  doCheck = false;
+
+  disabledTests = [ "test_verbosity" ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/pimutils/vdirsyncer";
     description = "Synchronize calendars and contacts";
     license = licenses.mit;
-    # vdirsyncer (unstable) works with mainline python versions
-    broken = (pythonAtLeast "3.6");
     maintainers = with maintainers; [ loewenheim ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/vega/default.nix b/nixpkgs/pkgs/development/python-modules/vega/default.nix
index 4bd3f1b99318..b81481b0774a 100644
--- a/nixpkgs/pkgs/development/python-modules/vega/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vega/default.nix
@@ -1,17 +1,22 @@
-{ stdenv, buildPythonPackage , fetchPypi
-, pytest, jupyter_core, pandas, ipywidgets }:
+{ stdenv, buildPythonPackage , fetchPypi, pythonOlder
+, pytest, jupyter_core, pandas, ipywidgets, jupyter, altair }:
 
 buildPythonPackage rec {
   pname = "vega";
-  version = "2.6.0";
+  version = "3.4.0";
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c66354d6d164cc3d7254bcd129d8d861daf4a9e9cb8738b1724791777f6c29f0";
+    sha256 = "f343ceb11add58d24cd320d69e410b111a56c98c9069ebb4ef89c608c4c1950d";
   };
 
   buildInputs = [ pytest ];
-  propagatedBuildInputs = [ jupyter_core pandas ipywidgets ];
+  propagatedBuildInputs = [ jupyter jupyter_core pandas ipywidgets ];
+
+  # currently, recommonmark is broken on python3
+  doCheck = false;
+  checkInputs = [ altair ];
 
   meta = with stdenv.lib; {
     description = "An IPython/Jupyter widget for Vega and Vega-Lite";
diff --git a/nixpkgs/pkgs/development/python-modules/venusian/default.nix b/nixpkgs/pkgs/development/python-modules/venusian/default.nix
index 8817b057cc94..06f0d55acf00 100644
--- a/nixpkgs/pkgs/development/python-modules/venusian/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/venusian/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , pytest
 , pytestcov
 }:
@@ -8,6 +9,7 @@
 buildPythonPackage rec {
   pname = "venusian";
   version = "3.0.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/development/python-modules/vertica-python/default.nix b/nixpkgs/pkgs/development/python-modules/vertica-python/default.nix
index 8beb39b26d9e..7247e0794679 100644
--- a/nixpkgs/pkgs/development/python-modules/vertica-python/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vertica-python/default.nix
@@ -2,22 +2,22 @@
 
 buildPythonPackage rec {
   pname = "vertica-python";
-  version = "0.10.4";
-  
+  version = "0.11.0";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "570525d0371806993874bd2ee0f47cc5d68994abb5aa382e964e53e0b81160b2";
+    sha256 = "cceb39d081b8d1628956205642e740a9fabcfd2c6ecd982c51134fba8215d0bd";
   };
-  
+
   propagatedBuildInputs = [ future dateutil six ];
-  
+
   checkInputs = [ pytest mock parameterized ];
-  
+
   # Integration tests require an accessible Vertica db
   checkPhase = ''
     pytest --ignore vertica_python/tests/integration_tests
   '';
-  
+
   meta = with lib; {
     description = "Native Python client for Vertica database";
     homepage = "https://github.com/vertica/vertica-python";
diff --git a/nixpkgs/pkgs/development/python-modules/virtual-display/default.nix b/nixpkgs/pkgs/development/python-modules/virtual-display/default.nix
index 1b56f0466106..958f8a01704c 100644
--- a/nixpkgs/pkgs/development/python-modules/virtual-display/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/virtual-display/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec {
   pname = "PyVirtualDisplay";
-  version = "0.2.5";
+  version = "1.3.2";
 
   propagatedBuildInputs = [ EasyProcess ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5b267c8ffc98fcbd084ba852ab4caef3f22e9362bc5d117e1697e767553eaf41";
+    sha256 = "3fa85a6e490e45eab64e6be19841e0ab15ec8054c97f162079a061da6a93eba0";
   };
 
   # requires X server
diff --git a/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix b/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix
index 5ca27330103d..6a9d91d79c89 100644
--- a/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/virtualenv/default.nix
@@ -17,11 +17,11 @@
 
 buildPythonPackage rec {
   pname = "virtualenv";
-  version = "20.0.21";
+  version = "20.0.31";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1kxnxxwa25ghlkpyrxa8pi49v87b7ps2gyla7d1h6kbz9sfn45m1";
+    sha256 = "43add625c53c596d38f971a465553f6318decc39d98512bc100fa1b1e839c8dc";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/vispy/default.nix b/nixpkgs/pkgs/development/python-modules/vispy/default.nix
new file mode 100644
index 000000000000..029132933a9b
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/vispy/default.nix
@@ -0,0 +1,40 @@
+{ lib, buildPythonPackage, substituteAll, stdenv,
+  fetchPypi, numpy, cython, freetype-py, fontconfig, libGL,
+  setuptools_scm, setuptools-scm-git-archive
+  }:
+
+buildPythonPackage rec {
+  pname = "vispy";
+  version = "0.6.4";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "07sb4qww6mgzm66qsrr3pd66yz39r6jj4ibb3qmfg1kwnxs6ayv2";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./library-paths.patch;
+      fontconfig = "${fontconfig.lib}/lib/libfontconfig${stdenv.hostPlatform.extensions.sharedLibrary}";
+      gl = "${libGL.out}/lib/libGL${stdenv.hostPlatform.extensions.sharedLibrary}";
+    })
+  ];
+
+  nativeBuildInputs = [
+    cython setuptools_scm setuptools-scm-git-archive
+  ];
+
+  propagatedBuildInputs = [
+    numpy freetype-py fontconfig libGL
+  ];
+
+  doCheck = false;  # otherwise runs OSX code on linux.
+  pythonImportsCheck = [ "vispy" ];
+
+  meta = with lib; {
+    homepage = "http://vispy.org/index.html";
+    description = "Interactive scientific visualization in Python";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ goertzenator ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/vispy/library-paths.patch b/nixpkgs/pkgs/development/python-modules/vispy/library-paths.patch
new file mode 100644
index 000000000000..05b583c12e4f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/vispy/library-paths.patch
@@ -0,0 +1,39 @@
+diff --git a/vispy/ext/fontconfig.py b/vispy/ext/fontconfig.py
+index ff24662b..6a5079f0 100644
+--- a/vispy/ext/fontconfig.py
++++ b/vispy/ext/fontconfig.py
+@@ -7,10 +7,7 @@ from ..util.wrappers import run_subprocess
+ 
+ # Some code adapted from Pyglet
+ 
+-fc = util.find_library('fontconfig')
+-if fc is None:
+-    raise ImportError('fontconfig not found')
+-fontconfig = cdll.LoadLibrary(fc)
++fontconfig = cdll.LoadLibrary('@fontconfig@')
+ 
+ FC_FAMILY = 'family'.encode('ASCII')
+ FC_SIZE = 'size'.encode('ASCII')
+diff --git a/vispy/gloo/gl/gl2.py b/vispy/gloo/gl/gl2.py
+index d5bd9c38..63350e73 100644
+--- a/vispy/gloo/gl/gl2.py
++++ b/vispy/gloo/gl/gl2.py
+@@ -39,16 +39,8 @@ elif sys.platform.startswith('win'):
+         pass
+ else:
+     # Unix-ish
+-    if sys.platform.startswith('darwin'):
+-        _fname = ctypes.util.find_library('OpenGL')
+-    else:
+-        _fname = ctypes.util.find_library('GL')
+-    if not _fname:
+-        logger.warning('Could not load OpenGL library.')
+-        _lib = None
+-    else:
+-        # Load lib
+-        _lib = ctypes.cdll.LoadLibrary(_fname)
++    # Load lib
++    _lib = ctypes.cdll.LoadLibrary("@gl@")
+ 
+ 
+ def _have_context():
diff --git a/nixpkgs/pkgs/development/python-modules/vmprof/default.nix b/nixpkgs/pkgs/development/python-modules/vmprof/default.nix
index 70e7dbeba697..149efb753e20 100644
--- a/nixpkgs/pkgs/development/python-modules/vmprof/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/vmprof/default.nix
@@ -1,6 +1,9 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, colorama
+, libunwind
+, pytz
 , requests
 , six
 }:
@@ -14,16 +17,16 @@ buildPythonPackage rec {
     sha256 = "a2d872a40196404386d1e0d960e97b37c86c3f72a4f9d5a2b5f9ca1adaff5b62";
   };
 
-  propagatedBuildInputs = [ requests six];
+  buildInputs = [ libunwind ];
+  propagatedBuildInputs = [ colorama requests six pytz ];
 
   # No tests included
   doCheck = false;
+  pythonImportsCheck = [ "vmprof" ];
 
   meta = with stdenv.lib; {
     description = "A vmprof client";
     license = licenses.mit;
     homepage = "https://vmprof.readthedocs.org/";
-    broken = true;
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/voluptuous-serialize/default.nix b/nixpkgs/pkgs/development/python-modules/voluptuous-serialize/default.nix
index f310148d75d4..383eed03a4e3 100644
--- a/nixpkgs/pkgs/development/python-modules/voluptuous-serialize/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/voluptuous-serialize/default.nix
@@ -2,13 +2,13 @@
 
 buildPythonPackage rec  {
   pname = "voluptuous-serialize";
-  version = "2.3.0";
+  version = "2.4.0";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1xcjyp1190z6a226fg0clvhf43gjsbyn60amblsg7w7cw86d033l";
+    sha256 = "1r7avibzf009h5rlh7mbh1fc01daligvi2axjn5qxh810g5igfn6";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/vulture/default.nix b/nixpkgs/pkgs/development/python-modules/vulture/default.nix
new file mode 100644
index 000000000000..22b5af442d65
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/vulture/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildPythonPackage, fetchPypi, isPy27, coverage, pytest, pytestcov }:
+
+buildPythonPackage rec {
+  pname = "vulture";
+  version = "2.0";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "ab0dce458ab746212cc02ac10cf31912c43bbfdcccb49025745b00850beab086";
+  };
+
+  checkInputs = [ coverage pytest pytestcov ];
+  checkPhase = "pytest";
+
+  meta = with stdenv.lib; {
+    description = "Finds unused code in Python programs";
+    homepage = "https://github.com/jendrikseipp/vulture";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mcwitt ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/waitress/default.nix b/nixpkgs/pkgs/development/python-modules/waitress/default.nix
index 72da3204a646..3812ed06b60c 100644
--- a/nixpkgs/pkgs/development/python-modules/waitress/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/waitress/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "waitress";
-  version = "1.3.1";
+  version = "1.4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "278e09d6849acc1365404bbf7d790d0423b159802e850c726e8cd0a126a2dac7";
+    sha256 = "1bb436508a7487ac6cb097ae7a7fe5413aefca610550baf58f0940e51ecfb261";
   };
 
   doCheck = false;
diff --git a/nixpkgs/pkgs/development/python-modules/wasabi/default.nix b/nixpkgs/pkgs/development/python-modules/wasabi/default.nix
index 1865b5792b16..ec9cbb3d5608 100644
--- a/nixpkgs/pkgs/development/python-modules/wasabi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wasabi/default.nix
@@ -1,30 +1,25 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
-, pytest
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "wasabi";
-  version = "0.6.0";
+  version = "0.8.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0qv0zpr6kwjwygx9k8jgafiil5wh2zsyryvbxghzv4yn7jb3xpdq";
+    sha256 = "75fec6db6193c8615d7f398ae4aa2c4ad294e6e3e81c6a6dbbbd3864ee2223c3";
   };
 
-  checkInputs = [
-    pytest
-  ];
-
-  checkPhase = ''
-    pytest wasabi/tests
-  '';
+  checkInputs = [ pytestCheckHook ];
 
   meta = with stdenv.lib; {
     description = "A lightweight console printing and formatting toolkit";
     homepage = "https://github.com/ines/wasabi";
+    changelog = "https://github.com/ines/wasabi/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ danieldk ];
-    };
+  };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/watchdog/default.nix b/nixpkgs/pkgs/development/python-modules/watchdog/default.nix
index 5347c696cc22..17f7b540c605 100644
--- a/nixpkgs/pkgs/development/python-modules/watchdog/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/watchdog/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "watchdog";
-  version = "0.10.2";
+  version = "0.10.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ss58k33l5vah894lykid6ar6kw7z1f29cl4hzr5xvgs8fvfyq65";
+    sha256 = "4214e1379d128b0588021880ccaf40317ee156d4603ac388b9adcf29165e0c04";
   };
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin
diff --git a/nixpkgs/pkgs/development/python-modules/wcwidth/default.nix b/nixpkgs/pkgs/development/python-modules/wcwidth/default.nix
index 30b966cdf8c8..7d5cbc69ecaa 100644
--- a/nixpkgs/pkgs/development/python-modules/wcwidth/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wcwidth/default.nix
@@ -1,23 +1,27 @@
-{ lib, fetchPypi, buildPythonPackage, pytest }:
+{ lib, fetchPypi, buildPythonPackage, pytestCheckHook
+, isPy3k
+, backports_functools_lru_cache
+, setuptools
+}:
 
 buildPythonPackage rec {
   pname = "wcwidth";
-  version = "0.1.9";
+  version = "0.2.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ee73862862a156bf77ff92b09034fc4825dd3af9cf81bc5b360668d425f3c5f1";
+    sha256 = "c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
+
+  propagatedBuildInputs = [ setuptools ] ++ lib.optionals (!isPy3k) [
+    backports_functools_lru_cache
+  ];
 
   # To prevent infinite recursion with pytest
   doCheck = false;
 
-  checkPhase = ''
-    pytest
-  '';
-
   meta = with lib; {
     description = "Measures number of Terminal column cells of wide-character codes";
     longDescription = ''
diff --git a/nixpkgs/pkgs/development/python-modules/web/default.nix b/nixpkgs/pkgs/development/python-modules/web/default.nix
index ea1ffc7826fb..bf21d7ed5c36 100644
--- a/nixpkgs/pkgs/development/python-modules/web/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/web/default.nix
@@ -5,13 +5,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.40";
+  version = "0.61";
   pname = "web.py";
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "dc5e42ffbc42d77d07f75b7acca9975a3368ae609774e49ddebb497a784131f3";
+    sha256 = "c7a9081aeb086cd3e703c7553a47ee75188d1d325f25eec7654d9bb00b5eccbb";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/webcolors/default.nix b/nixpkgs/pkgs/development/python-modules/webcolors/default.nix
index e0e2f97501be..273cd7ac5d18 100644
--- a/nixpkgs/pkgs/development/python-modules/webcolors/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/webcolors/default.nix
@@ -1,17 +1,19 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, isPy27
 , python
 , six
 }:
 
 buildPythonPackage rec {
   pname = "webcolors";
-  version = "1.10";
+  version = "1.11.1";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7b11194c414dcf4b9bd8fb5ceaafc9da183b27430883c62f620589eb79b91b6e";
+    sha256 = "76f360636957d1c976db7466bc71dcb713bb95ac8911944dffc55c01cb516de6";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/nixpkgs/pkgs/development/python-modules/webdavclient3/default.nix b/nixpkgs/pkgs/development/python-modules/webdavclient3/default.nix
new file mode 100644
index 000000000000..eb13cd6b9bbf
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/webdavclient3/default.nix
@@ -0,0 +1,30 @@
+{ buildPythonPackage, fetchPypi, isPy27, lib, dateutil, lxml, requests
+, pytestCheckHook }:
+
+buildPythonPackage rec {
+  pname = "webdavclient3";
+  version = "3.14.5";
+
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0yw3n5m70ysjn1ch48znpn4zr4a1bd0lsm7q2grqz7q5hfjzjwk0";
+  };
+
+  propagatedBuildInputs = [ dateutil lxml requests ];
+
+  checkInputs = [ pytestCheckHook ];
+
+  # disable tests completely, as most of them fail due to urllib3 not being able to establish a http connection
+  doCheck = false;
+
+  pythonImportsCheck = [ "webdav3.client" ];
+
+  meta = with lib; {
+    description = "Easy to use WebDAV Client for Python 3.x";
+    homepage = "https://github.com/ezhov-evgeny/webdav-client-python-3";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dmrauh ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/websocket_client/default.nix b/nixpkgs/pkgs/development/python-modules/websocket_client/default.nix
index ad830a0890ae..dacae3e81e1f 100644
--- a/nixpkgs/pkgs/development/python-modules/websocket_client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/websocket_client/default.nix
@@ -4,12 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "0.56.0";
+  version = "0.57.0";
   pname = "websocket_client";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0fpxjyr74klnyis3yf6m54askl0h5dchxcwbfjsq92xng0455m8z";
+    sha256 = "d735b91d6d1692a6a181f2a8c9e0238e5f6373356f561bb9dc4c7af36f452010";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/websockets/default.nix b/nixpkgs/pkgs/development/python-modules/websockets/default.nix
index 1e1e1ef58a8e..eeb12bd5b75b 100644
--- a/nixpkgs/pkgs/development/python-modules/websockets/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/websockets/default.nix
@@ -22,6 +22,13 @@ buildPythonPackage rec {
   # Tests fail on Darwin with `OSError: AF_UNIX path too long`
   doCheck = !stdenv.isDarwin;
 
+  # Disable all tests that need to terminate within a predetermined amount of
+  # time.  This is nondeterministic.
+  patchPhase = ''
+    sed -i 's/with self.assertCompletesWithin.*:/if True:/' \
+      tests/test_protocol.py
+  '';
+
   meta = with lib; {
     description = "WebSocket implementation in Python 3";
     homepage = "https://github.com/aaugustin/websockets";
diff --git a/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix b/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix
index 5e0d6df0af0d..a4146d4d3b12 100644
--- a/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/werkzeug/default.nix
@@ -1,24 +1,28 @@
 { stdenv, buildPythonPackage, fetchPypi
 , itsdangerous, hypothesis
-, pytest, requests
+, pytestCheckHook, requests
 , pytest-timeout
+, isPy3k
  }:
 
 buildPythonPackage rec {
   pname = "Werkzeug";
-  version = "0.16.1";
+  version = "1.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b353856d37dec59d6511359f97f6a4b2468442e454bd1c98298ddce53cac1f04";
+    sha256 = "6c80b1e5ad3665290ea39320b91e1be1e0d5f60652b964a3070216de83d2e47c";
   };
 
   propagatedBuildInputs = [ itsdangerous ];
-  checkInputs = [ pytest requests hypothesis pytest-timeout ];
+  checkInputs = [ pytestCheckHook requests hypothesis pytest-timeout ];
 
-  checkPhase = ''
-    pytest ${stdenv.lib.optionalString stdenv.isDarwin "-k 'not test_get_machine_id'"}
-  '';
+  disabledTests = stdenv.lib.optionals stdenv.isDarwin [
+    "test_get_machine_id"
+  ];
+
+  # Python 2 pytest fails with INTERNALERROR due to a deprecation warning.
+  doCheck = isPy3k;
 
   meta = with stdenv.lib; {
     homepage = "https://palletsprojects.com/p/werkzeug/";
diff --git a/nixpkgs/pkgs/development/python-modules/west/default.nix b/nixpkgs/pkgs/development/python-modules/west/default.nix
new file mode 100644
index 000000000000..686ba1196b1f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/west/default.nix
@@ -0,0 +1,53 @@
+{ lib, fetchPypi, buildPythonPackage, isPy3k
+, colorama, configobj, packaging, pyyaml, pykwalify
+}:
+
+buildPythonPackage rec {
+  version = "0.7.3";
+  pname = "west";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "86a36049ae3c8b1ce12d3183911b3082b38b2998e858285309581e37dc22d8fa";
+  };
+
+  propagatedBuildInputs = [
+    colorama
+    configobj
+    packaging
+    pyyaml
+    pykwalify
+  ];
+
+  # pypi package does not include tests (and for good reason):
+  # tests run under 'tox' and have west try to git clone repos (not sandboxable)
+  doCheck = false;
+  pythonImportsCheck = [
+    "west"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/zephyrproject-rtos/west";
+    description = "Zephyr RTOS meta tool";
+    longDescription = ''
+      West lets you manage multiple Git repositories under a single directory using a single file,
+      called the west manifest file, or manifest for short.
+
+      The manifest file is named west.yml.
+      You use west init to set up this directory,
+      then west update to fetch and/or update the repositories
+      named in the manifest.
+
+      By default, west uses upstream Zephyr’s manifest file
+      (https://github.com/zephyrproject-rtos/zephyr/blob/master/west.yml),
+      but west doesn’t care if the manifest repository is a Zephyr tree or not.
+
+      For more details, see Multiple Repository Management in the west documentation
+      (https://docs.zephyrproject.org/latest/guides/west/repo-tool.html).
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ siriobalmelli ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/wheel/default.nix b/nixpkgs/pkgs/development/python-modules/wheel/default.nix
index 4527006fadd5..fd93cbdcea37 100644
--- a/nixpkgs/pkgs/development/python-modules/wheel/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wheel/default.nix
@@ -1,41 +1,51 @@
 { lib
-, setuptools
-, pip
 , buildPythonPackage
 , fetchFromGitHub
-, pytest
-, pytestcov
-, coverage
-, jsonschema
 , bootstrapped-pip
+, setuptools
 }:
 
 buildPythonPackage rec {
   pname = "wheel";
-  version = "0.33.6";
+  version = "0.34.2";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "pypa";
     repo = pname;
     rev = version;
-    sha256 = "1bg4bxazsjxp621ymaykd8l75k7rvcvwawlipmjk7nsrl72l4p0s";
+    sha256 = "1mwh35ycv07ajnpcjc4rjdmndh6nyg03gdgag5m8c2af7z1xlcmj";
     name = "${pname}-${version}-source";
   };
 
-  checkInputs = [ pytest pytestcov coverage ];
-  nativeBuildInputs = [ bootstrapped-pip setuptools ];
+  nativeBuildInputs = [
+    bootstrapped-pip
+    setuptools
+  ];
 
-  catchConflicts = false;
   # No tests in archive
   doCheck = false;
+  pythonImportsCheck = [ "wheel" ];
 
   # We add this flag to ignore the copy installed by bootstrapped-pip
   pipInstallFlags = [ "--ignore-installed" ];
 
-  meta = {
-    description = "A built-package format for Python";
-    license = with lib.licenses; [ mit ];
+  meta = with lib; {
     homepage = "https://bitbucket.org/pypa/wheel/";
+    description = "A built-package format for Python";
+    longDescription = ''
+      This library is the reference implementation of the Python wheel packaging standard,
+      as defined in PEP 427.
+
+      It has two different roles:
+
+      - A setuptools extension for building wheels that provides the bdist_wheel setuptools command
+      - A command line tool for working with wheel files
+
+      It should be noted that wheel is not intended to be used as a library,
+      and as such there is no stable, public API.
+    '';
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ siriobalmelli ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/whitenoise/default.nix b/nixpkgs/pkgs/development/python-modules/whitenoise/default.nix
index 9ef4fd14979d..dbc069f434e4 100644
--- a/nixpkgs/pkgs/development/python-modules/whitenoise/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/whitenoise/default.nix
@@ -2,12 +2,12 @@
 
 buildPythonPackage rec {
   pname = "whitenoise";
-  version = "5.0.1";
+  version = "5.2.0";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0f9137f74bd95fa54329ace88d8dc695fbe895369a632e35f7a136e003e41d73";
+    sha256 = "05ce0be39ad85740a78750c86a93485c40f08ad8c62a6006de0233765996e5c7";
   };
 
   # No tests
diff --git a/nixpkgs/pkgs/development/python-modules/willow/default.nix b/nixpkgs/pkgs/development/python-modules/willow/default.nix
index 275a46a1472d..e9e5001fec91 100644
--- a/nixpkgs/pkgs/development/python-modules/willow/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/willow/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "willow";
-  version = "1.3";
+  version = "1.4";
   disabled = pythonOlder "2.7";
 
   src = fetchPypi {
     pname = "Willow";
     inherit version;
-    sha256 = "0dzc3cjkwp0h3v1n94c33zr5yw5fdd6dkm6vccp9i8dncmpw912g";
+    sha256 = "0b3lh7z98nlh4yn0cmvk7bimhfk5w4qvbmjr6jn880ji9h2ixq6d";
   };
 
   propagatedBuildInputs = [ six pillow ];
diff --git a/nixpkgs/pkgs/development/python-modules/word2vec/default.nix b/nixpkgs/pkgs/development/python-modules/word2vec/default.nix
index 77cea74f6691..1e448c377096 100644
--- a/nixpkgs/pkgs/development/python-modules/word2vec/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/word2vec/default.nix
@@ -1,35 +1,52 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, fetchzip
 , cython
 , numpy
 , scikitlearn
 , six
-, python
+, setuptools_scm
+, gcc
+, pytest
+, pytestcov
 , isPy27
 }:
-
+let
+  testData = fetchzip {
+    url = "http://mattmahoney.net/dc/text8.zip";
+    sha256 = "0w3l64bww9znmmvd9cqbfmh3dddnlrjicz43y5qq6fhi9cfqjfar";
+  };
+in
 buildPythonPackage rec {
   pname = "word2vec";
-  version = "0.10.6";
+  version = "0.11.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "95aa222ff2d5c2559192414b794870d14a022016ba83f1bef0cf8cc185e41483";
+    sha256 = "222d8ffb47f385c43eba45e3f308e605fc9736b2b7137d74979adf1a31e7c8b4";
   };
 
+  nativeBuildInputs = [ setuptools_scm gcc ];
+
   propagatedBuildInputs = [ cython numpy scikitlearn six ];
 
+  checkInputs = [ pytest pytestcov ];
+
+  # Checks require test data downloaded separately
+  # See project source Makefile:test-data rule for reference
   checkPhase = ''
-   cd word2vec/tests;
-    ${python.interpreter} test_word2vec.py
+    PATH=$PATH:$out/bin
+    mkdir data
+    head -c 100000 ${testData}/text8 > data/text8-small
+    pytest
   '';
 
   meta = with stdenv.lib; {
     description = "Tool for computing continuous distributed representations of words";
     homepage = "https://github.com/danielfrg/word2vec";
-    license     = licenses.asl20;
+    license = licenses.asl20;
     maintainers = with maintainers; [ NikolaMandic ];
   };
 
diff --git a/nixpkgs/pkgs/development/python-modules/wordcloud/default.nix b/nixpkgs/pkgs/development/python-modules/wordcloud/default.nix
index 759e48eb997e..d005527b4c35 100644
--- a/nixpkgs/pkgs/development/python-modules/wordcloud/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wordcloud/default.nix
@@ -1,18 +1,12 @@
 { stdenv, buildPythonPackage, fetchFromGitHub
-, codecov, coverage
-, flake8
 , matplotlib
 , mock
 , numpy
 , pillow
 , pytest
 , pytestcov
-, pytest-sugar
-, setuptools
-, twine
-, wheel
 }:
-  
+
 buildPythonPackage rec {
   pname = "word_cloud";
   version = "1.6.0";
@@ -28,12 +22,12 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ matplotlib numpy pillow ];
 
   # Tests require extra dependencies
-  checkInputs = [ codecov coverage flake8 mock pytest pytestcov pytest-sugar setuptools twine wheel ];
+  checkInputs = [ mock pytest pytestcov ];
   # skip tests which make assumptions about installation
   checkPhase = ''
     pytest -k 'not cli_as_executable'
   '';
-  
+
   meta = with stdenv.lib; {
     description = "A little word cloud generator in Python";
     homepage = "https://github.com/amueller/word_cloud";
diff --git a/nixpkgs/pkgs/development/python-modules/wptserve/default.nix b/nixpkgs/pkgs/development/python-modules/wptserve/default.nix
index 65e3669734f6..7caf36fa6b2b 100644
--- a/nixpkgs/pkgs/development/python-modules/wptserve/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wptserve/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "wptserve";
-  version = "2.0";
+  version = "3.0";
 
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9d0c6adc279748abea81ac12b7a2cac97ebbdd87826dc11f6dbd85b781e9442a";
+    sha256 = "11990a92b07e4535c2723c34a88bd905c66acec9cda6efa7a7b61371bfe8d87a";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/python-modules/wrapt/default.nix b/nixpkgs/pkgs/development/python-modules/wrapt/default.nix
index a380e6ac3798..0d5376e10047 100644
--- a/nixpkgs/pkgs/development/python-modules/wrapt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wrapt/default.nix
@@ -5,14 +5,14 @@
 
 buildPythonPackage rec {
   pname = "wrapt";
-  version = "1.11.2";
+  version = "1.12.1";
 
   # No tests in archive
   doCheck = false;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "565a021fd19419476b9362b05eeaa094178de64f8361e44468f9e9d7843901e1";
+    sha256 = "b62ffa81fb85f4332a4f609cab4ac40709470da05643a082ec1eb88e6d9b97d7";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/wsproto/0.14.nix b/nixpkgs/pkgs/development/python-modules/wsproto/0.14.nix
index 79a66d2e4b1d..a8488d8c4ab8 100644
--- a/nixpkgs/pkgs/development/python-modules/wsproto/0.14.nix
+++ b/nixpkgs/pkgs/development/python-modules/wsproto/0.14.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "wsproto";
-  version = "0.15.0";
+  version = "0.14.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "614798c30e5dc2b3f65acc03d2d50842b97621487350ce79a80a711229edfa9d";
+    sha256 = "051s127qb5dladxa14n9nqajwq7xki1dz1was5r5v9df5a0jq8pd";
   };
 
   propagatedBuildInputs = [ h11 enum34 ];
diff --git a/nixpkgs/pkgs/development/python-modules/wtf-peewee/default.nix b/nixpkgs/pkgs/development/python-modules/wtf-peewee/default.nix
index efd3fbd77ab6..69db4e50f675 100644
--- a/nixpkgs/pkgs/development/python-modules/wtf-peewee/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wtf-peewee/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "wtf-peewee";
-  version = "3.0.0";
+  version = "3.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "acd05d136c8595da3327fcf9176fa85fdcec1f2aac51d235e46e6fc7a0871283";
+    sha256 = "03qs6np5s9r0nmsryfzll29ajcqk27b18kcbgd9plf80ys3nb6kd";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/wtforms/default.nix b/nixpkgs/pkgs/development/python-modules/wtforms/default.nix
index 410abbbb622b..66667c74ef3d 100644
--- a/nixpkgs/pkgs/development/python-modules/wtforms/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wtforms/default.nix
@@ -5,12 +5,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.3.1";
+  version = "2.3.3";
   pname = "WTForms";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0whrd9cqhlibm31yqhvhp9illddxf0cpgcn3v806f7ajmsri66l6";
+    sha256 = "81195de0ac94fbc8368abbaf9197b88c4f3ffd6c2719b5bf5fc9da744f3d829c";
   };
 
   propagatedBuildInputs = [ markupsafe ];
diff --git a/nixpkgs/pkgs/development/python-modules/wurlitzer/default.nix b/nixpkgs/pkgs/development/python-modules/wurlitzer/default.nix
index 272c903f57b1..e6897830fb7b 100644
--- a/nixpkgs/pkgs/development/python-modules/wurlitzer/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/wurlitzer/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "wurlitzer";
-  version = "2.0.0";
+  version = "2.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0xndv47iwc9k8cp5r9r1z3r0xww0r5x5b7qsmn39gk2gsg0119c6";
+    sha256 = "0hvmbc41kdwrjns8z1s4a59a4azdvzb8q3vs7nn1li4qm4l0g3yh";
   };
 
   propagatedBuildInputs = lib.optionals isPy27 [ selectors2 ];
diff --git a/nixpkgs/pkgs/development/python-modules/wxPython/4.0.nix b/nixpkgs/pkgs/development/python-modules/wxPython/4.0.nix
index e185e26a4f7e..406493362c46 100644
--- a/nixpkgs/pkgs/development/python-modules/wxPython/4.0.nix
+++ b/nixpkgs/pkgs/development/python-modules/wxPython/4.0.nix
@@ -1,29 +1,18 @@
 { lib
 , stdenv
-, openglSupport ? true
-, libX11
-, pyopengl
 , buildPythonPackage
 , fetchPypi
 , pkgconfig
-, libjpeg
-, libtiff
-, SDL
-, gst-plugins-base
-, libnotify
-, freeglut
-, xorg
 , which
 , cairo
-, requests
 , pango
-, pathlib2
 , python
 , doxygen
 , ncurses
-, libpng
-, gstreamer
 , wxGTK
+, numpy
+, pillow
+, six
 }:
 
 buildPythonPackage rec {
@@ -38,16 +27,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   nativeBuildInputs = [ pkgconfig which doxygen wxGTK ];
-
-  buildInputs = [ libjpeg libtiff SDL
-      gst-plugins-base libnotify freeglut xorg.libSM ncurses
-      requests libpng gstreamer libX11
-      pathlib2
-      (wxGTK.gtk)
-  ]
-    ++ lib.optional openglSupport pyopengl;
-
-  hardeningDisable = [ "format" ];
+  buildInputs = [ ncurses wxGTK.gtk ];
 
   DOXYGEN = "${doxygen}/bin/doxygen";
 
@@ -68,10 +48,9 @@ buildPythonPackage rec {
 
   installPhase = ''
     ${python.interpreter} setup.py install --skip-build --prefix=$out
-    wrapPythonPrograms
   '';
 
-  passthru = { inherit wxGTK openglSupport; };
+  passthru = { inherit wxGTK; };
 
 
   meta = {
diff --git a/nixpkgs/pkgs/development/python-modules/xarray/default.nix b/nixpkgs/pkgs/development/python-modules/xarray/default.nix
index abce8ac12fe7..d905a11e3418 100644
--- a/nixpkgs/pkgs/development/python-modules/xarray/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xarray/default.nix
@@ -5,20 +5,21 @@
 , numpy
 , pandas
 , python
+, setuptools
 , isPy3k
 }:
 
 buildPythonPackage rec {
   pname = "xarray";
-  version = "0.15.1";
+  version = "0.16.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "64e3138d87b641e22fe7a003c94abc685896b247b63e434505c1e6b38c91a8fb";
+    sha256 = "5e1af056ff834bf62ca57da917159328fab21b1f8c25284f92083016bb2d92a5";
   };
 
   checkInputs = [ pytest ];
-  propagatedBuildInputs = [numpy pandas];
+  propagatedBuildInputs = [ numpy pandas setuptools ];
 
   checkPhase = ''
     pytest $out/${python.sitePackages}
diff --git a/nixpkgs/pkgs/development/python-modules/xcffib/default.nix b/nixpkgs/pkgs/development/python-modules/xcffib/default.nix
index 1bb421194f9f..8f949f20e92a 100644
--- a/nixpkgs/pkgs/development/python-modules/xcffib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xcffib/default.nix
@@ -3,16 +3,17 @@
 , fetchPypi
 , xorg
 , cffi
+, nose
 , six
 }:
 
 buildPythonPackage rec {
-  version = "0.9.0";
+  version = "0.10.1";
   pname = "xcffib";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1r03yvxwbimh8ngfrbd436f9r535vvj6m1b3zfgz9kl76c8yn5ic";
+    sha256 = "cab1630a51076b11819c97e6da461ddd4cb21bdf65c071d1c57a846c9b129c12";
   };
 
   patchPhase = ''
@@ -22,6 +23,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ cffi six ];
 
+  checkInputs = [ nose ];
+
+  pythonImportsCheck = [ "xcffib" ];
+
   meta = with stdenv.lib; {
     description = "A drop in replacement for xpyb, an XCB python binding";
     homepage = "https://github.com/tych0/xcffib";
diff --git a/nixpkgs/pkgs/development/python-modules/xdis/default.nix b/nixpkgs/pkgs/development/python-modules/xdis/default.nix
index b4c8e46f146d..27f3c1af202d 100644
--- a/nixpkgs/pkgs/development/python-modules/xdis/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xdis/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "xdis";
-  version = "4.2.4";
+  version = "5.0.4";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "rocky";
     repo = "python-xdis";
     rev = version;
-    sha256 = "0nq6ijmj48c2dk75vmb040wgvr4y7wyjxrcm2dyvcwfk2h6phwri";
+    sha256 = "0hh5pam8dabvh0w1bks0rqfq85gjy3h6ljrzmjg0nqsaapp1g4dd";
   };
 
   checkInputs = [ pytest ];
diff --git a/nixpkgs/pkgs/development/python-modules/xlib/default.nix b/nixpkgs/pkgs/development/python-modules/xlib/default.nix
index 4c98497c8b17..3d82b599dc06 100644
--- a/nixpkgs/pkgs/development/python-modules/xlib/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xlib/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonPackage rec {
   pname = "xlib";
-  version = "0.25";
+  version = "0.28";
 
   src = fetchFromGitHub {
     owner = "python-xlib";
     repo = "python-xlib";
     rev = version;
-    sha256 = "1nncx7v9chmgh56afg6dklz3479s5zg3kq91mzh4mj512y0skyki";
+    sha256 = "13551vi65034pjf2g7zkw5dyjqcjfyk32a640g5jr055ssf0bjkc";
   };
 
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix b/nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix
index e1694b9d33e9..1c42b1b17845 100644
--- a/nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xlsx2csv/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "xlsx2csv";
-  version = "0.7.6";
+  version = "0.7.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "ff4121d42d318f31f71b248f37acfc21455a7d897a3c117b578744c89bc34f6c";
+    sha256 = "09vigknmz15izirfddkmb3a39h1rp2jmc00bnrff12i757n7jjl4";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix b/nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix
index b2bd5af56c8c..d02b7e2e066a 100644
--- a/nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xml2rfc/default.nix
@@ -1,20 +1,22 @@
 { lib, fetchPypi, buildPythonPackage, intervaltree, pyflakes, requests, lxml, google-i18n-address
-, pycountry, html5lib, six, kitchen, pypdf2, dict2xml, weasyprint
+, pycountry, html5lib, six, kitchen, pypdf2, dict2xml, weasyprint, pyyaml, jinja2
 , stdenv
 }:
 
 buildPythonPackage rec {
   pname = "xml2rfc";
-  version = "2.41.0";
+  version = "2.47.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0xmhgn62a8a7282yd003zz63mrgyajb6sg29bfyllx3mxmdlb0iz";
+    sha256 = "7f621ed0e5a30c2b67c0e50778627b7a35e1ccfea9db19ea89b4c72a8faf42c0";
   };
 
   propagatedBuildInputs = [
     intervaltree
+    jinja2
     pyflakes
+    pyyaml
     requests
     lxml
     google-i18n-address
diff --git a/nixpkgs/pkgs/development/python-modules/xmlschema/default.nix b/nixpkgs/pkgs/development/python-modules/xmlschema/default.nix
index d3db09bc022e..ac2a323aed52 100644
--- a/nixpkgs/pkgs/development/python-modules/xmlschema/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xmlschema/default.nix
@@ -1,26 +1,27 @@
 { lib, buildPythonPackage, fetchFromGitHub
 , elementpath
+, lxml
 , pytest
 }:
 
 buildPythonPackage rec {
-  version = "1.1.0";
+  version = "1.2.3";
   pname = "xmlschema";
 
   src = fetchFromGitHub {
     owner = "sissaschool";
     repo = "xmlschema";
     rev = "v${version}";
-    sha256 = "1h8321jb6q3dhlh3608y3f3sbbzfd3jg1psyirxkrm4w5xs3lbvy";
+    sha256 = "1lasi84d5v66xpd40fbj3lqwc5hfh3izxrr2wbfdbj4a3m996zc9";
   };
 
   propagatedBuildInputs = [ elementpath ];
 
-  checkInputs = [ pytest ];
+  checkInputs = [ lxml pytest ];
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "elementpath~=1.4.0" "elementpath~=1.4"
+      --replace "elementpath~=2.0.0" "elementpath~=2.0"
   '';
 
   # Ignore broken fixtures, and tests for files which don't exist.
diff --git a/nixpkgs/pkgs/development/python-modules/xnd/default.nix b/nixpkgs/pkgs/development/python-modules/xnd/default.nix
index 558e414debf8..3178e171f844 100644
--- a/nixpkgs/pkgs/development/python-modules/xnd/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xnd/default.nix
@@ -1,4 +1,6 @@
-{ buildPythonPackage
+{ stdenv
+, buildPythonPackage
+, python
 , ndtypes
 , libndtypes
 , libxnd
@@ -25,5 +27,14 @@ buildPythonPackage {
   postInstall = ''
     mkdir $out/include
     cp python/xnd/*.h $out/include
+  '' + stdenv.lib.optionalString stdenv.isDarwin ''
+    install_name_tool -add_rpath ${libxnd}/lib $out/${python.sitePackages}/xnd/_xnd.*.so
+  '';
+
+  checkPhase = ''
+    pushd python
+    mv xnd _xnd
+    python test_xnd.py
+    popd
   '';
 }
diff --git a/nixpkgs/pkgs/development/python-modules/xpybutil/default.nix b/nixpkgs/pkgs/development/python-modules/xpybutil/default.nix
new file mode 100644
index 000000000000..07cfc96e7fdd
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/xpybutil/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildPythonPackage, fetchFromGitHub, xcffib, pillow, nose }:
+
+buildPythonPackage rec {
+  pname = "xpybutil";
+  version = "0.0.6";
+
+  # Pypi only offers a wheel
+  src = fetchFromGitHub {
+    owner = "BurntSushi";
+    repo = pname;
+    rev = version;
+    sha256 = "17gbqq955fcl29aayn8l0x14azc60cxgkvdxblz9q8x3l50w0xpg";
+  };
+
+  # pillow is a dependency in image.py which is not listed in setup.py
+  propagatedBuildInputs = [ xcffib pillow ];
+
+  checkInputs = [ nose ];
+
+  meta = with lib; {
+    homepage = "https://github.com/BurntSushi/xpybutil";
+    description = "An incomplete xcb-util port plus some extras";
+    license = licenses.wtfpl;
+    maintainers = with maintainers; [ artturin ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/xxhash/default.nix b/nixpkgs/pkgs/development/python-modules/xxhash/default.nix
index a3a5da18a98f..52b3f8b1b5b5 100644
--- a/nixpkgs/pkgs/development/python-modules/xxhash/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/xxhash/default.nix
@@ -4,12 +4,12 @@
 }:
 
 buildPythonPackage rec {
-  version = "1.4.3";
+  version = "2.0.0";
   pname = "xxhash";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8b6b1afe7731d7d9cbb0398b4a811ebb5e6be5c174f72c68abf81f919a435de9";
+    sha256 = "58ca818554c1476fa1456f6cd4b87002e2294f09baf0f81e5a2a4968e62c423c";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/yamllint/default.nix b/nixpkgs/pkgs/development/python-modules/yamllint/default.nix
index c01c862e2f45..892a9840a341 100644
--- a/nixpkgs/pkgs/development/python-modules/yamllint/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yamllint/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "yamllint";
-  version = "1.23.0";
+  version = "1.24.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1agl80csxhiqglm0idwhw98iqfpp61c9inzcdaz4czsfyivzzwsr";
+    sha256 = "07xn11i0c7x72xjxkkzrq9zxl40vfdr41mfvhlayrk6dpbk8vdj0";
   };
 
   checkInputs = [ nose ];
@@ -21,6 +21,6 @@ buildPythonPackage rec {
     description = "A linter for YAML files";
     homepage = "https://github.com/adrienverge/yamllint";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ mikefaille ];
+    maintainers = with maintainers; [ jonringer mikefaille ];
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/yamlordereddictloader/default.nix b/nixpkgs/pkgs/development/python-modules/yamlordereddictloader/default.nix
new file mode 100644
index 000000000000..ce9602a4720c
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/yamlordereddictloader/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy27
+, ordereddict
+, pyyaml
+}:
+
+buildPythonPackage rec {
+  pname = "yamlordereddictloader";
+  version = "0.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "03h8wa6pzqjiw25s3jv9gydn77gs444mf31lrgvpgy53kswz0c3z";
+  };
+
+  propagatedBuildInputs = [ pyyaml ] ++ lib.optional (isPy27) ordereddict;
+
+  # no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "yamlordereddictloader" ];
+
+  meta = with lib; {
+    description = "YAML loader and dump for PyYAML allowing to keep keys order";
+    homepage = "https://github.com/fmenabe/python-yamlordereddictloader";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/yapf/default.nix b/nixpkgs/pkgs/development/python-modules/yapf/default.nix
index f4e154f2cbcd..65a4e9abcb29 100644
--- a/nixpkgs/pkgs/development/python-modules/yapf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yapf/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "yapf";
-  version = "0.29.0";
+  version = "0.30.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "712e23c468506bf12cadd10169f852572ecc61b266258422d45aaf4ad7ef43de";
+    sha256 = "3000abee4c28daebad55da6c85f3cd07b8062ce48e2e9943c8da1b9667d48427";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/yappi/default.nix b/nixpkgs/pkgs/development/python-modules/yappi/default.nix
index 5bb1abd98cef..e0be34a2d318 100644
--- a/nixpkgs/pkgs/development/python-modules/yappi/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yappi/default.nix
@@ -1,8 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, nose }:
+{ lib, buildPythonPackage, fetchPypi, isPy27, nose }:
 
 buildPythonPackage rec {
   pname = "yappi";
   version = "1.2.5";
+  disabled = isPy27; # invalid syntax
 
   src = fetchPypi {
     inherit pname version;
diff --git a/nixpkgs/pkgs/development/python-modules/yarl/default.nix b/nixpkgs/pkgs/development/python-modules/yarl/default.nix
index bfb09f9c1c5c..3ab7fb49c43a 100644
--- a/nixpkgs/pkgs/development/python-modules/yarl/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yarl/default.nix
@@ -1,23 +1,29 @@
 { stdenv
+, lib
 , fetchPypi
 , buildPythonPackage
+, pythonOlder
 , multidict
 , pytestrunner
 , pytest
+, typing-extensions
 , idna
 }:
 
 buildPythonPackage rec {
   pname = "yarl";
-  version = "1.4.2";
+  version = "1.5.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "58cd9c469eced558cd81aa3f484b2924e8897049e06889e8ff2510435b7ef74b";
+    sha256 = "c22c75b5f394f3d47105045ea551e08a3e804dc7e01b37800ca35b58f856c3d6";
   };
 
   checkInputs = [ pytest pytestrunner ];
-  propagatedBuildInputs = [ multidict idna ];
+  propagatedBuildInputs = [ multidict idna ]
+    ++ lib.optionals (pythonOlder "3.8") [
+      typing-extensions
+    ];
 
   meta = with stdenv.lib; {
     description = "Yet another URL library";
diff --git a/nixpkgs/pkgs/development/python-modules/yattag/default.nix b/nixpkgs/pkgs/development/python-modules/yattag/default.nix
index 32b378ddd57b..211a4b60c813 100644
--- a/nixpkgs/pkgs/development/python-modules/yattag/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yattag/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "yattag";
-  version = "1.12.2";
+  version = "1.14.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1g0zhf09vs8cq0l5lx10dnqpimvg5mzh9k0z12n6nnfsw11cila7";
+    sha256 = "5731a31cb7452c0c6930dd1a284e0170b39eee959851a2aceb8d6af4134a5fa8";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/ydiff/default.nix b/nixpkgs/pkgs/development/python-modules/ydiff/default.nix
index ea30e62546fe..822bb40783e9 100644
--- a/nixpkgs/pkgs/development/python-modules/ydiff/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/ydiff/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "ydiff";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mxcl17sx1d4vaw22ammnnn3y19mm7r6ljbarcjzi519klz26bnf";
+    sha256 = "f5430577ecd30974d766ee9b8333e06dc76a947b4aae36d39612a0787865a121";
   };
 
   # test suite requires a multitude of other version control tooling
diff --git a/nixpkgs/pkgs/development/python-modules/yeelight/default.nix b/nixpkgs/pkgs/development/python-modules/yeelight/default.nix
new file mode 100644
index 000000000000..4cc7056da19a
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/yeelight/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchPypi, buildPythonPackage, future, enum-compat }:
+
+buildPythonPackage rec {
+  pname = "yeelight";
+  version = "0.5.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "8d49846f0cede1e312cbcd1d0e44c42073910bbcadb31b87ce2a7d24dea3af38";
+  };
+
+  propagatedBuildInputs = [ future enum-compat ];
+
+  meta = with stdenv.lib; {
+    description = "A Python library for controlling YeeLight RGB bulbs";
+    homepage = "https://gitlab.com/stavros/python-yeelight/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/yfinance/default.nix b/nixpkgs/pkgs/development/python-modules/yfinance/default.nix
new file mode 100644
index 000000000000..55068d3d5e69
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/yfinance/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, multitasking
+, numpy
+, pandas
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "yfinance";
+  version = "0.1.54";
+
+  # GitHub source releases aren't tagged
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "cee223cbd31e14955869f7978bcf83776d644345c7dea31ba5d41c309bfb0d3d";
+  };
+
+  propagatedBuildInputs = [
+    multitasking
+    numpy
+    pandas
+    requests
+  ];
+
+  doCheck = false;  # Tests require internet access
+  pythonImportsCheck = [ "yfinance" ];
+
+  meta = with lib; {
+    description = "Yahoo! Finance market data downloader (+faster Pandas Datareader)";
+    homepage = "https://aroussi.com/post/python-yahoo-finance";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ drewrisinger ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/yq/default.nix b/nixpkgs/pkgs/development/python-modules/yq/default.nix
new file mode 100644
index 000000000000..f795a8fdfad6
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/yq/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pkgs
+, argcomplete
+, pyyaml
+, xmltodict
+# Test inputs
+, coverage
+, flake8
+, jq
+, pytest
+, unixtools
+, toml
+}:
+
+buildPythonPackage rec {
+  pname = "yq";
+  version = "2.11.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1gp9q5w1bjbw7wmba5hm8ippwvkind0p02n07fqa9jlqglhxhm46";
+  };
+
+  propagatedBuildInputs = [
+    pyyaml
+    xmltodict
+    argcomplete
+  ];
+
+  doCheck = true;
+
+  checkInputs = [
+   unixtools.script
+   pytest
+   coverage
+   flake8
+   pkgs.jq
+   toml
+  ];
+
+  # tests fails if stdin is not a tty
+  checkPhase = "echo | script -c 'pytest ./test/test.py'";
+
+  pythonImportsCheck = [ "yq" ];
+
+  meta = with lib; {
+    description = "Command-line YAML processor - jq wrapper for YAML documents.";
+    homepage = "https://github.com/kislyuk/yq";
+    license = [ licenses.asl20 ];
+    maintainers = [ maintainers.womfoo ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/yt/default.nix b/nixpkgs/pkgs/development/python-modules/yt/default.nix
index ce89ec0fd3d4..353400120f3c 100644
--- a/nixpkgs/pkgs/development/python-modules/yt/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yt/default.nix
@@ -15,12 +15,12 @@
 
 buildPythonPackage rec {
   pname = "yt";
-  version = "3.5.1";
+  version = "3.6.0";
   disabled = isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c8ef8eceb934dc189d63dc336109fad3002140a9a32b19f38d1812d5d5a30d71";
+    sha256 = "effb00536f19fd2bdc18f67dacd5550b82066a6adce5b928f27a01d7505109ec";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/yubico-client/default.nix b/nixpkgs/pkgs/development/python-modules/yubico-client/default.nix
index f679c54f96ca..e8457055c180 100644
--- a/nixpkgs/pkgs/development/python-modules/yubico-client/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/yubico-client/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "yubico-client";
-  version = "1.12.0";
+  version = "1.13.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1d74c6341210c94b639f7c7c8930550e73d5c1be60402e418e9dc95e038f8527";
+    sha256 = "e3b86cd2a123105edfacad40551c7b26e9c1193d81ffe168ee704ebfd3d11162";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/nixpkgs/pkgs/development/python-modules/zarr/default.nix b/nixpkgs/pkgs/development/python-modules/zarr/default.nix
index ac7c2b6af010..c51694c6306f 100644
--- a/nixpkgs/pkgs/development/python-modules/zarr/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zarr/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, isPy27
 , fetchPypi
 , setuptools_scm
 , asciitree
@@ -11,11 +12,12 @@
 
 buildPythonPackage rec {
   pname = "zarr";
-  version = "2.3.2";
+  version = "2.4.0";
+  disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c62d0158fb287151c978904935a177b3d2d318dea3057cfbeac8541915dfa105";
+    sha256 = "53aa21b989a47ddc5e916eaff6115b824c0864444b1c6f3aaf4f6cf9a51ed608";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zconfig/default.nix b/nixpkgs/pkgs/development/python-modules/zconfig/default.nix
index 75f8647730cc..ef4754504dd6 100644
--- a/nixpkgs/pkgs/development/python-modules/zconfig/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zconfig/default.nix
@@ -1,9 +1,11 @@
 { stdenv
 , fetchPypi
+, fetchpatch
 , buildPythonPackage
 , zope_testrunner
 , manuel
 , docutils
+, pythonAtLeast
 }:
 
 buildPythonPackage rec {
@@ -15,7 +17,13 @@ buildPythonPackage rec {
     sha256 = "0s7aycxna07a04b4rswbkj4y5qh3gxy2mcsqb9dmy0iimj9f9550";
   };
 
-  patches = stdenv.lib.optional stdenv.hostPlatform.isMusl ./remove-setlocale-test.patch;
+  patches = [
+    # fixes 3.8+ logger validation issues, has been merged into master, remove next bump
+    (fetchpatch {
+      url = "https://github.com/zopefoundation/ZConfig/commit/f0c2990d35ac3c924ecc8be4a5c71c8e4abbd0e5.patch";
+      sha256 = "1bjg3wrvii0rwzf3s0vlpzgg2ckj0h2zxkyxwjcr64s4k2vaq9ij";
+    })
+  ] ++ stdenv.lib.optional stdenv.hostPlatform.isMusl ./remove-setlocale-test.patch;
 
   buildInputs = [ manuel docutils ];
   propagatedBuildInputs = [ zope_testrunner ];
diff --git a/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix b/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix
index e9d3c6e038ea..9e8d0853ecf9 100644
--- a/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zeroconf/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "zeroconf";
-  version = "0.26.3";
+  version = "0.28.2";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "43ad5006c00be2040cdca1fe768206f4a25356d3cc87eff8b66bd7ead2a82440";
+    sha256 = "447d6da0b6426c0c67d5c29339e51b2d75e2c1f129605ad35a0cb84a454f09bc";
   };
 
   propagatedBuildInputs = [ ifaddr ]
diff --git a/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix b/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix
index 3e05dc1bfad4..1e1a55d689de 100644
--- a/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zha-quirks/default.nix
@@ -4,14 +4,14 @@
 
 buildPythonPackage rec {
   pname = "zha-quirks";
-  version = "0.0.39";
+  version = "0.0.43";
 
   nativeBuildInputs = [ pytest ];
   buildInputs = [ aiohttp zigpy ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "99d4b20a933b97b323c558f4057036ebe349bf603e97826c498d17d9cc80ff0b";
+    sha256 = "16f62dddce73bb27408b13a0d6526a250b588ca020405b2369e72d5dc9fa7607";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/python-modules/zict/default.nix b/nixpkgs/pkgs/development/python-modules/zict/default.nix
index 9208b54981bc..c5629a6fb73f 100644
--- a/nixpkgs/pkgs/development/python-modules/zict/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zict/default.nix
@@ -1,15 +1,17 @@
 { stdenv, buildPythonPackage, fetchPypi
-, pytest, heapdict }:
+, pytest, heapdict, pythonOlder }:
 
 buildPythonPackage rec {
   pname = "zict";
-  version = "1.0.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "04532600mnsvzv43l2jvjrn7sflg0wkjqzy7nj7m3vvxm5gd4kg3";
+    sha256 = "8e2969797627c8a663575c2fc6fcb53a05e37cdb83ee65f341fc6e0c3d0ced16";
   };
 
+  disabled = pythonOlder "3.6";
+
   buildInputs = [ pytest ];
   propagatedBuildInputs = [ heapdict ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/zigpy-cc/default.nix b/nixpkgs/pkgs/development/python-modules/zigpy-cc/default.nix
new file mode 100644
index 000000000000..76887e399207
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/zigpy-cc/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, pyserial, pyserial-asyncio, zigpy
+, asynctest, pytest, pytest-asyncio }:
+
+buildPythonPackage rec {
+  pname = "zigpy-cc";
+  version = "0.5.1";
+
+  propagatedBuildInputs = [ pyserial pyserial-asyncio zigpy ];
+  checkInputs = [ asynctest pytest pytest-asyncio ];
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "06759615b28c45beaa5f03e594769a373d41674b96aeafefccd5c4e1c67e25ca";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A library which communicates with Texas Instruments CC2531 radios for zigpy";
+    homepage = "http://github.com/sanyatuning/zigpy-cc";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ etu mvnetbiz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix b/nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix
index c9df7824093f..af52e9425307 100644
--- a/nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zigpy-deconz/default.nix
@@ -1,25 +1,24 @@
 { stdenv, buildPythonPackage, fetchPypi
-, aiohttp, crccheck, pyserial, pyserial-asyncio, pycryptodome, zigpy
-, pytest }:
+, pyserial, pyserial-asyncio, zigpy
+, pytest, pytest-asyncio, asynctest }:
 
 buildPythonPackage rec {
   pname = "zigpy-deconz";
-  version = "0.7.0";
+  version = "0.9.2";
 
-  nativeBuildInputs = [ pytest ];
-  buildInputs = [ aiohttp crccheck pycryptodome ];
   propagatedBuildInputs = [ pyserial pyserial-asyncio zigpy ];
+  checkInputs = [ pytest pytest-asyncio asynctest ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "049k6lvgf6yjkinbbzm7gqrzqljk2ky9kfw8n53x8kjyfmfp71i2";
+    sha256 = "f4256136d714c00d22f6d2abf975438e2bc080cc43b8afef0decb80ed8066ef6";
   };
 
   meta = with stdenv.lib; {
     description = "Library which communicates with Deconz radios for zigpy";
     homepage = "https://github.com/zigpy/zigpy-deconz";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ etu ];
+    maintainers = with maintainers; [ etu mvnetbiz ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/zigpy-xbee/default.nix b/nixpkgs/pkgs/development/python-modules/zigpy-xbee/default.nix
new file mode 100644
index 000000000000..702666448018
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/zigpy-xbee/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, pyserial, pyserial-asyncio, zigpy
+, pytest }:
+
+buildPythonPackage rec {
+  pname = "zigpy-xbee";
+  version = "0.12.1";
+
+  buildInputs = [ pyserial pyserial-asyncio zigpy ];
+  checkInputs = [ pytest ];
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "09488hl27qjv8shw38iiyzvzwcjkc0k4n00l2bfn1ac443xzw0vh";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A library which communicates with XBee radios for zigpy";
+    homepage = "http://github.com/zigpy/zigpy-xbee";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ etu mvnetbiz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/zigpy-zigate/default.nix b/nixpkgs/pkgs/development/python-modules/zigpy-zigate/default.nix
new file mode 100644
index 000000000000..43f291841ffc
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/zigpy-zigate/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi
+, pyserial, pyserial-asyncio, zigpy
+, pytest }:
+
+buildPythonPackage rec {
+  pname = "zigpy-zigate";
+  version = "0.6.1";
+
+  buildInputs = [ pyserial pyserial-asyncio zigpy ];
+  checkInputs = [ pytest ];
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0xxqv65drrr96b9ncwsx9ayd369lpwimj1jjb0d7j6l9lil0wmf5";
+  };
+
+  meta = with stdenv.lib; {
+    description = "A library which communicates with ZiGate radios for zigpy";
+    homepage = "http://github.com/doudz/zigpy-zigate";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ etu mvnetbiz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/zigpy/default.nix b/nixpkgs/pkgs/development/python-modules/zigpy/default.nix
index 726f1fde4e64..e85784e51ad4 100644
--- a/nixpkgs/pkgs/development/python-modules/zigpy/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zigpy/default.nix
@@ -1,25 +1,24 @@
 { stdenv, buildPythonPackage, fetchPypi
-, aiohttp, crccheck, pycryptodome, pycrypto
+, aiohttp, crccheck, pycryptodome, pycrypto, voluptuous
 , pytest, pytest-asyncio, asynctest }:
 
 buildPythonPackage rec {
-  pname = "zigpy-homeassistant";
-  version = "0.11.0";
+  pname = "zigpy";
+  version = "0.22.2";
 
-  nativeBuildInputs = [ pytest pytest-asyncio asynctest ];
-  buildInputs = [ aiohttp pycryptodome ];
-  propagatedBuildInputs = [ crccheck pycrypto ];
+  propagatedBuildInputs = [ aiohttp crccheck pycrypto pycryptodome voluptuous ];
+  checkInputs = [ pytest pytest-asyncio asynctest ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "021wg9yhz8dsif60r8s5621mf63bsayjjb2bimhq0am03ql0fysl";
+    sha256 = "a43129932c6e4af0d2d57542218faf7695e2424ce18a5a8915d016e1303f5e44";
   };
 
   meta = with stdenv.lib; {
     description = "Library implementing a ZigBee stack";
     homepage = "https://github.com/zigpy/zigpy";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ etu ];
+    maintainers = with maintainers; [ etu mvnetbiz ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/python-modules/zimports/default.nix b/nixpkgs/pkgs/development/python-modules/zimports/default.nix
index 43588361ca78..338dd93150b3 100644
--- a/nixpkgs/pkgs/development/python-modules/zimports/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zimports/default.nix
@@ -5,6 +5,7 @@
 , flake8-import-order
 , pyflakes
 , mock
+, setuptools
 }:
 
 buildPythonPackage rec {
@@ -23,12 +24,19 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     pyflakes
     flake8-import-order
+    setuptools
   ];
 
   checkInputs = [
     mock
   ];
 
+  checkPhase = ''
+    runHook preInstallCheck
+    PYTHONPATH= $out/bin/zimports --help >/dev/null
+    runHook postInstallCheck
+  '';
+
   meta = with lib; {
     description = "Python import rewriter";
     homepage = "https://github.com/sqlalchemyorg/zimports";
diff --git a/nixpkgs/pkgs/development/python-modules/zipp/1.nix b/nixpkgs/pkgs/development/python-modules/zipp/1.nix
new file mode 100644
index 000000000000..0de729928d0f
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/zipp/1.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools_scm
+, pytest
+, pytest-flake8
+, more-itertools
+, toml
+}:
+
+buildPythonPackage rec {
+  pname = "zipp";
+  version = "1.0.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0v3qayhqv7vyzydpydwcp51bqciw8p2ajddw68x5k8zppc0vx3yk";
+  };
+
+  nativeBuildInputs = [ setuptools_scm ];
+
+  propagatedBuildInputs = [ more-itertools ];
+
+  checkInputs = [ pytest pytest-flake8 ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  # Prevent infinite recursion with pytest
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Pathlib-compatible object wrapper for zip files";
+    homepage = "https://github.com/jaraco/zipp";
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/zipp/default.nix b/nixpkgs/pkgs/development/python-modules/zipp/default.nix
index 13cb2131a4d7..5d4bc589d361 100644
--- a/nixpkgs/pkgs/development/python-modules/zipp/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zipp/default.nix
@@ -5,18 +5,19 @@
 , pytest
 , pytest-flake8
 , more-itertools
+, toml
 }:
 
 buildPythonPackage rec {
   pname = "zipp";
-  version = "0.6.0";
+  version = "3.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3718b1cbcd963c7d4c5511a8240812904164b7f381b647143a89d3b98f9bcd8e";
+    sha256 = "c599e4d75c98f6798c509911d08a22e6c021d074469042177c8c86fb92eefd96";
   };
 
-  nativeBuildInputs = [ setuptools_scm ];
+  nativeBuildInputs = [ setuptools_scm toml ];
 
   propagatedBuildInputs = [ more-itertools ];
 
diff --git a/nixpkgs/pkgs/development/python-modules/zodb/default.nix b/nixpkgs/pkgs/development/python-modules/zodb/default.nix
index bcc164ea380e..e8097461d3b1 100644
--- a/nixpkgs/pkgs/development/python-modules/zodb/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zodb/default.nix
@@ -1,8 +1,8 @@
 { stdenv
 , fetchPypi
-, fetchpatch
 , buildPythonPackage
 , python
+, pythonAtLeast
 , zope_testrunner
 , transaction
 , six
@@ -17,26 +17,21 @@
 
 buildPythonPackage rec {
     pname = "ZODB";
-    version = "5.5.1";
+    version = "5.6.0";
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "20155942fa326e89ad8544225bafd74237af332ce9d7c7105a22318fe8269666";
+      sha256 = "1zh7rd182l15swkbkm3ib0wgyn16xasdz2mzry8k4lwk6dagnm26";
     };
 
-    patches = [
-      # Compatibility with transaction v3.0
-      (fetchpatch {
-        url = "https://github.com/zopefoundation/ZODB/commit/0adcc6877f690186c97cc5da7e13788946d5e0df.patch";
-        sha256 = "1zmbgm7r36nj5w7icpinp61fm81svh2wk213pzr3l0jxzr9i5qi4";
-      })
-    ];
-
     # remove broken test
     postPatch = ''
       rm -vf src/ZODB/tests/testdocumentation.py
     '';
 
+    # ZConfig 3.5.0 is not compatible with Python 3.8
+    disabled = pythonAtLeast "3.8";
+
     propagatedBuildInputs = [
       transaction
       six
diff --git a/nixpkgs/pkgs/development/python-modules/zope_component/default.nix b/nixpkgs/pkgs/development/python-modules/zope_component/default.nix
index a658f9896874..df0835841bce 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_component/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_component/default.nix
@@ -12,11 +12,11 @@
 
 buildPythonPackage rec {
   pname = "zope.component";
-  version = "4.6.1";
+  version = "4.6.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d9c7c27673d787faff8a83797ce34d6ebcae26a370e25bddb465ac2182766aca";
+    sha256 = "91628918218b3e6f6323de2a7b845e09ddc5cae131c034896c051b084bba3c92";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/development/python-modules/zope_configuration/default.nix b/nixpkgs/pkgs/development/python-modules/zope_configuration/default.nix
index 664aa0af6e88..587cbf60d88c 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_configuration/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_configuration/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "zope.configuration";
-  version = "4.3.1";
+  version = "4.4.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "6e16747f9fd6b9d8f09d78edf2a6f539cad0fa4ad49d8deb9cf63447cc4168e1";
+    sha256 = "e9f02bac44405ad1526399d6574b91d792f9694f9c67df8b64e91fe10fcddb3c";
   };
 
   checkInputs = [ zope_testrunner manuel ];
diff --git a/nixpkgs/pkgs/development/python-modules/zope_contenttype/default.nix b/nixpkgs/pkgs/development/python-modules/zope_contenttype/default.nix
index d3cd69943a75..b1792d718543 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_contenttype/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_contenttype/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildPythonPackage
 , fetchPypi
+, zope_testrunner
 }:
 
 buildPythonPackage rec {
@@ -12,12 +13,12 @@ buildPythonPackage rec {
     sha256 = "c12d929c67ab3eaef9b8a7fba3d19cce8500c8fd25afed8058c8e15f324cbd5b";
   };
 
+  checkInputs = [ zope_testrunner ];
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/zopefoundation/zope.contenttype";
     description = "A utility module for content-type (MIME type) handling";
     license = licenses.zpl20;
     maintainers = with maintainers; [ goibhniu ];
-    broken = true;
   };
-
 }
diff --git a/nixpkgs/pkgs/development/python-modules/zope_exceptions/default.nix b/nixpkgs/pkgs/development/python-modules/zope_exceptions/default.nix
index 04e68f038e99..ae7797b8736b 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_exceptions/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_exceptions/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "zope.exceptions";
-  version = "4.3";
+  version = "4.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5fa59c3c1044bb9448aeec8328db0bfceaae2a2174e88528d3fe04adf8d47211";
+    sha256 = "0d72886b1bb8af4c346a117a540f28ab122577f5e3a105a261be72cd15776fda";
   };
 
   propagatedBuildInputs = [ zope_interface ];
diff --git a/nixpkgs/pkgs/development/python-modules/zope_filerepresentation/default.nix b/nixpkgs/pkgs/development/python-modules/zope_filerepresentation/default.nix
index 0a7e959e11fe..82a981402ebe 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_filerepresentation/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_filerepresentation/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "zope.filerepresentation";
-  version = "4.2.0";
+  version = "5.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c9bff2b2492b2fe716ee54538441a98d6145d1de87dd921eaa44ac834fbb63b6";
+    sha256 = "3fbca4730c871d8e37b9730763c42b69ba44117cf6d0848014495bb301cae2d6";
   };
 
   propagatedBuildInputs = [ zope_schema ];
diff --git a/nixpkgs/pkgs/development/python-modules/zope_i18n/default.nix b/nixpkgs/pkgs/development/python-modules/zope_i18n/default.nix
deleted file mode 100644
index 662188db153e..000000000000
--- a/nixpkgs/pkgs/development/python-modules/zope_i18n/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, pytz
-, zope_component
-}:
-
-buildPythonPackage rec {
-  pname = "zope.i18n";
-  version = "4.7.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "9fcc1adb4e5f6188769ab36f6f40a59b567bb5eef91f714584e0dfd0891be5d0";
-  };
-
-  propagatedBuildInputs = [ pytz zope_component ];
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/zopefoundation/zope.i18n";
-    description = "Zope Internationalization Support";
-    license = licenses.zpl20;
-    maintainers = with maintainers; [ goibhniu ];
-    broken = true;
-  };
-
-}
diff --git a/nixpkgs/pkgs/development/python-modules/zope_schema/default.nix b/nixpkgs/pkgs/development/python-modules/zope_schema/default.nix
index 8ecbf0a9907b..d32fb05ef94a 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_schema/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_schema/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "zope.schema";
-  version = "4.9.3";
+  version = "6.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2d971da8707cab47b1916534b9929dcd9d7f23aed790e6b4cbe3103d5b18069d";
+    sha256 = "20fbbce8a0726ba34f0e3958676498feebb818f06575193254e139d8d7214f26";
   };
 
   propagatedBuildInputs = [ zope_location zope_event zope_interface zope_testing ];
diff --git a/nixpkgs/pkgs/development/python-modules/zope_testrunner/default.nix b/nixpkgs/pkgs/development/python-modules/zope_testrunner/default.nix
index 9b7145a58511..90fa0b8143cd 100644
--- a/nixpkgs/pkgs/development/python-modules/zope_testrunner/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zope_testrunner/default.nix
@@ -10,11 +10,11 @@
 
 buildPythonPackage rec {
   pname = "zope.testrunner";
-  version = "5.1";
+  version = "5.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "354a65f6c6fe6c0584e2fcf06d7318e90dc7f7de1b7008d8913733e299317870";
+    sha256 = "873d6017abadc213992a0c38c786ed020341b6e0fe78d14bc2a684cf5a70de4b";
   };
 
   propagatedBuildInputs = [ zope_interface zope_exceptions zope_testing six ];
diff --git a/nixpkgs/pkgs/development/python-modules/zopfli/default.nix b/nixpkgs/pkgs/development/python-modules/zopfli/default.nix
new file mode 100644
index 000000000000..58b7d43f3d22
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/zopfli/default.nix
@@ -0,0 +1,21 @@
+{ lib, buildPythonPackage, fetchPypi, pytest }:
+
+buildPythonPackage rec {
+  pname = "zopfli";
+  version = "0.1.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0smaxh7iihjr9mwxw1ifc9vnlh3ra8l060dd1gbvp1963k0r68pd";
+    extension = "zip";
+  };
+
+  checkInputs = [ pytest ];
+
+  meta = with lib; {
+    description = "cPython bindings for zopfli";
+    homepage = "https://github.com/obp/py-zopfli";
+    license = licenses.asl20;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/python-modules/zstandard/default.nix b/nixpkgs/pkgs/development/python-modules/zstandard/default.nix
index bcac246e8f62..58b3c5af8252 100755
--- a/nixpkgs/pkgs/development/python-modules/zstandard/default.nix
+++ b/nixpkgs/pkgs/development/python-modules/zstandard/default.nix
@@ -3,22 +3,21 @@
 , fetchPypi
 , cffi
 , hypothesis
-, zstd
 }:
 
 buildPythonPackage rec {
   pname = "zstandard";
-  version = "0.13.0";
-  
+  version = "0.14.0";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "e5cbd8b751bd498f275b0582f449f92f14e64f4e03b5bf51c571240d40d43561";
+    sha256 = "0lkn7n3bfp7zip6hkqwkqwc8pxmhhs4rr699k77h51rfln6kjllh";
   };
-  
-  propagatedBuildInputs = [ cffi zstd ];
-  
+
+  propagatedBuildInputs = [ cffi ];
+
   checkInputs = [ hypothesis ];
-    
+
   meta = with lib; {
     description = "zstandard bindings for Python";
     homepage = "https://github.com/indygreg/python-zstandard";
diff --git a/nixpkgs/pkgs/development/python-modules/zulip/default.nix b/nixpkgs/pkgs/development/python-modules/zulip/default.nix
new file mode 100644
index 000000000000..229a4f17bd34
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/zulip/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, isPy3k
+, fetchFromGitHub
+, requests
+, matrix-client
+, distro
+}:
+
+buildPythonPackage rec {
+  pname = "zulip";
+  version = "0.7.0";
+
+  disabled = !isPy3k;
+
+  # no sdist on PyPI
+  src = fetchFromGitHub {
+    owner = "zulip";
+    repo = "python-zulip-api";
+    rev = version;
+    sha256 = "0waldgpzq3ms1r1z14lxdj56lf082fnmi83l3fn8i8gqr8nvnch1";
+  };
+  sourceRoot = "source/zulip";
+
+  propagatedBuildInputs = [
+    requests
+    matrix-client
+    distro
+  ];
+
+  preCheck = ''
+    export COLUMNS=80
+  '';
+
+  meta = with lib; {
+    description = "Bindings for the Zulip message API";
+    homepage = "https://github.com/zulip/python-zulip-api";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/r-modules/default.nix b/nixpkgs/pkgs/development/r-modules/default.nix
index da42a5dd8200..2d2839c0e007 100644
--- a/nixpkgs/pkgs/development/r-modules/default.nix
+++ b/nixpkgs/pkgs/development/r-modules/default.nix
@@ -334,7 +334,7 @@ let
     rtiff = [ pkgs.libtiff.dev ];
     runjags = [ pkgs.jags ];
     RVowpalWabbit = [ pkgs.zlib.dev pkgs.boost ];
-    rzmq = [ pkgs.zeromq3 ];
+    rzmq = [ pkgs.zeromq ];
     SAVE = [ pkgs.zlib pkgs.bzip2 pkgs.icu pkgs.lzma pkgs.pcre ];
     sdcTable = [ pkgs.gmp pkgs.glpk ];
     seewave = [ pkgs.fftw.dev pkgs.libsndfile.dev ];
@@ -705,6 +705,10 @@ let
       preConfigure = "patchShebangs configure";
     });
 
+    RcppParallel = old.RcppParallel.overrideDerivation (attrs: {
+      preConfigure = "patchShebangs configure";
+    });
+
     ggbio = old.ggbio.overrideDerivation (attrs: {
       patches = [
         (pkgs.fetchpatch {
diff --git a/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix b/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
index 65f27f497b7f..9ccc369429df 100644
--- a/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/nixpkgs/pkgs/development/ruby-modules/gem-config/default.nix
@@ -305,19 +305,26 @@ in
   };
 
   mathematical = attrs: {
-    buildInputs = [
+    nativeBuildInputs = [
+      ruby
       cmake
       bison
       flex
-      glib
       pkgconfig
+      python3
+    ];
+
+    buildInputs = [
       cairo
-      pango
+      fribidi
       gdk-pixbuf
+      glib
       libxml2
-      python3
+      pango
     ];
 
+    strictDeps = true;
+
     # The ruby build script takes care of this
     dontUseCmakeConfigure = true;
 
diff --git a/nixpkgs/pkgs/development/ruby-modules/solargraph/Gemfile.lock b/nixpkgs/pkgs/development/ruby-modules/solargraph/Gemfile.lock
index d9438a799565..f5ef7d8d32ff 100644
--- a/nixpkgs/pkgs/development/ruby-modules/solargraph/Gemfile.lock
+++ b/nixpkgs/pkgs/development/ruby-modules/solargraph/Gemfile.lock
@@ -1,7 +1,7 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    ast (2.4.0)
+    ast (2.4.1)
     backport (1.1.2)
     benchmark (0.1.0)
     e2mmap (0.1.0)
@@ -11,22 +11,26 @@ GEM
     nokogiri (1.10.9)
       mini_portile2 (~> 2.4.0)
     parallel (1.19.1)
-    parser (2.7.0.5)
+    parser (2.7.1.3)
       ast (~> 2.4.0)
     rainbow (3.0.0)
-    reverse_markdown (1.4.0)
+    regexp_parser (1.7.1)
+    reverse_markdown (2.0.0)
       nokogiri
     rexml (3.2.4)
-    rubocop (0.80.1)
-      jaro_winkler (~> 1.5.1)
+    rubocop (0.85.1)
       parallel (~> 1.10)
       parser (>= 2.7.0.1)
       rainbow (>= 2.2.2, < 4.0)
+      regexp_parser (>= 1.7)
       rexml
+      rubocop-ast (>= 0.0.3)
       ruby-progressbar (~> 1.7)
-      unicode-display_width (>= 1.4.0, < 1.7)
+      unicode-display_width (>= 1.4.0, < 2.0)
+    rubocop-ast (0.0.3)
+      parser (>= 2.7.0.1)
     ruby-progressbar (1.10.1)
-    solargraph (0.38.6)
+    solargraph (0.39.8)
       backport (~> 1.1)
       benchmark
       bundler (>= 1.17.2)
@@ -35,15 +39,15 @@ GEM
       maruku (~> 0.7, >= 0.7.3)
       nokogiri (~> 1.9, >= 1.9.1)
       parser (~> 2.3)
-      reverse_markdown (~> 1.0, >= 1.0.5)
+      reverse_markdown (>= 1.0.5, < 3)
       rubocop (~> 0.52)
       thor (~> 1.0)
       tilt (~> 2.0)
-      yard (~> 0.9)
+      yard (~> 0.9, >= 0.9.24)
     thor (1.0.1)
     tilt (2.0.10)
-    unicode-display_width (1.6.1)
-    yard (0.9.24)
+    unicode-display_width (1.7.0)
+    yard (0.9.25)
 
 PLATFORMS
   ruby
diff --git a/nixpkgs/pkgs/development/ruby-modules/solargraph/gemset.nix b/nixpkgs/pkgs/development/ruby-modules/solargraph/gemset.nix
index a6ec78b74585..655384ec49ad 100644
--- a/nixpkgs/pkgs/development/ruby-modules/solargraph/gemset.nix
+++ b/nixpkgs/pkgs/development/ruby-modules/solargraph/gemset.nix
@@ -1,14 +1,13 @@
 {
   ast = {
-    dependencies = [];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "184ssy3w93nkajlz2c70ifm79jp3j737294kbc5fjw69v1w0n9x7";
+      sha256 = "1l3468czzjmxl93ap40hp7z94yxp4nbag0bxqs789bm30md90m2a";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "2.4.1";
   };
   backport = {
     dependencies = [];
@@ -104,10 +103,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0iirjc36irgwpfb58jdf9gli382cj893y9caqhxas8anpzzlikgc";
+      sha256 = "162122h7vkg9crc9gsjwpy6bjrwg9r8ghhimwk952i5rrln3kird";
       type = "gem";
     };
-    version = "2.7.0.5";
+    version = "2.7.1.3";
   };
   rainbow = {
     dependencies = [];
@@ -120,16 +119,26 @@
     };
     version = "3.0.0";
   };
+  regexp_parser = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "106azpr2c280y2f8jnr6fd49q1abb43xh9hhgbxc4d4kvzpa8094";
+      type = "gem";
+    };
+    version = "1.7.1";
+  };
   reverse_markdown = {
     dependencies = ["nokogiri"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0w786j869fjhjf72waj0hc9i4ghi45b78a2am27kij4sa2hmsc53";
+      sha256 = "0w6fv779542vdliq2kmikfhymjv55z8mgzblkfjdy2agl07da9c6";
       type = "gem";
     };
-    version = "1.4.0";
+    version = "2.0.0";
   };
   rexml = {
     dependencies = [];
@@ -143,15 +152,26 @@
     version = "3.2.4";
   };
   rubocop = {
-    dependencies = ["jaro_winkler" "parallel" "parser" "rainbow" "rexml" "ruby-progressbar" "unicode-display_width"];
+    dependencies = ["parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i8pw7p4dk11xpahs0j6vlvqlv3rgapaccj933g0i34hbx392lj8";
+      sha256 = "1ghvlbaxcvwqqpkikzdg125frf5i733lhnih79ghrvc4rykvi86h";
       type = "gem";
     };
-    version = "0.80.1";
+    version = "0.85.1";
+  };
+  rubocop-ast = {
+    dependencies = ["parser"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lbs9is1y85cmd6p3yq3v0nppq4rhpy8ynk2ln0y4rwrlb5088dh";
+      type = "gem";
+    };
+    version = "0.0.3";
   };
   ruby-progressbar = {
     dependencies = [];
@@ -170,10 +190,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06kcqm032sq1y4pgg7cl32hv74573b1vsy79x81zglar80ybgzv4";
+      sha256 = "140zs7syf6l641p6459rg1byc2h9z2ldhmc0hbzmkgqp4lw18n7c";
       type = "gem";
     };
-    version = "0.38.6";
+    version = "0.39.8";
   };
   thor = {
     dependencies = [];
@@ -198,25 +218,23 @@
     version = "2.0.10";
   };
   unicode-display_width = {
-    dependencies = [];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1pppclzq4qb26g321553nm9xqca3zgllvpwb2kqxsdadwj51s09x";
+      sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
       type = "gem";
     };
-    version = "1.6.1";
+    version = "1.7.0";
   };
   yard = {
-    dependencies = [];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1g0bw2qcl48fxawrdf68l229508z53mrqisavji2lkxzv4w4j2pp";
+      sha256 = "126m49mvh4lbvlvrprq7xj2vjixbq3xqr8dwr089vadvs0rkn4rd";
       type = "gem";
     };
-    version = "0.9.24";
+    version = "0.9.25";
   };
-}
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/development/tools/alloy/default.nix b/nixpkgs/pkgs/development/tools/alloy/default.nix
index ed91df066c3a..44a6d7329baa 100644
--- a/nixpkgs/pkgs/development/tools/alloy/default.nix
+++ b/nixpkgs/pkgs/development/tools/alloy/default.nix
@@ -44,7 +44,7 @@ let generic = { major, version, src }:
       homepage = "http://alloytools.org/";
       downloadPage = "http://alloytools.org/download.html";
       license = licenses.mit;
-      platforms = platforms.linux;
+      platforms = platforms.unix;
       maintainers = with maintainers; [ notbandali ];
     };
   };
diff --git a/nixpkgs/pkgs/development/tools/ameba/default.nix b/nixpkgs/pkgs/development/tools/ameba/default.nix
index a2d829f85c28..9b7cf3f1de8d 100644
--- a/nixpkgs/pkgs/development/tools/ameba/default.nix
+++ b/nixpkgs/pkgs/development/tools/ameba/default.nix
@@ -2,13 +2,13 @@
 
 crystal.buildCrystalPackage rec {
   pname = "ameba";
-  version = "0.12.1";
+  version = "0.13.2";
 
   src = fetchFromGitHub {
     owner = "crystal-ameba";
     repo = "ameba";
     rev = "v${version}";
-    sha256 = "0c2j2qki0czkpsqxv75qg95pk9f0w4rqa5ln07rs4bj9dk2lrr3l";
+    sha256 = "0wyfx9nwda0s3arpdalz5zgh83v6wfz1a3l2k5v0jglpczq3m04m";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/tools/ammonite/default.nix b/nixpkgs/pkgs/development/tools/ammonite/default.nix
index 271869bd7c4e..8e420f5f4625 100644
--- a/nixpkgs/pkgs/development/tools/ammonite/default.nix
+++ b/nixpkgs/pkgs/development/tools/ammonite/default.nix
@@ -8,7 +8,7 @@ let
 common = { scalaVersion, sha256 }:
 stdenv.mkDerivation rec {
   pname = "ammonite";
-  version = "2.0.4";
+  version = "2.2.0";
 
   src = fetchurl {
     url = "https://github.com/lihaoyi/Ammonite/releases/download/${version}/${scalaVersion}-${version}";
@@ -40,6 +40,6 @@ stdenv.mkDerivation rec {
   };
 };
 in {
-  ammonite_2_12 = common { scalaVersion = "2.12"; sha256 = "068lcdi1y3zcspr0qmppflad7a4kls9gi321rp8dc5qc6f9nnk04"; };
-  ammonite_2_13 = common { scalaVersion = "2.13"; sha256 = "0fa0q9nk00crr2ws2mmw6pp4vf0xy53bqqhnws524ywwg6zwrl9s"; };
+  ammonite_2_12 = common { scalaVersion = "2.12"; sha256 = "0nclfqwy3jfn1680z1hd0zzmc0b79wpvx6gn1jnm19aq7qcvh5zp"; };
+  ammonite_2_13 = common { scalaVersion = "2.13"; sha256 = "104bnahn382sb6vwjvchsg0jrnkkwjn08rfh0g5ra7lwhgcj2719"; };
 }
diff --git a/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix b/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
index 037645490952..48805d168089 100644
--- a/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/cargo-tarpaulin/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-tarpaulin";
-  version = "0.13.3";
+  version = "0.14.3";
 
   src = fetchFromGitHub {
     owner = "xd009642";
     repo = "tarpaulin";
     rev = "${version}";
-    sha256 = "1zc03frbag0lhxxbrdhip5h61ah16rqfcs314nyx7lfn3jd0gqzd";
+    sha256 = "03d8h5b174699yivaamlvaqzck9zs119jk29yf70dvxw7cs0nngv";
   };
 
   nativeBuildInputs = [
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   ];
   buildInputs = [ openssl ];
 
-  cargoSha256 = "15qf5hb6gm4lm1dcsqqs8nmd43m1qmw2g2zpj3c0abs5fbdz8k3a";
+  cargoSha256 = "0zzp2wyq48j6n64fm37qfl65cg4yzf9ysichhkmkc6viq8x0f66d";
   #checkFlags = [ "--test-threads" "1" ];
   doCheck = false;
 
@@ -25,6 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/xd009642/tarpaulin";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ hugoreeves ];
-    platforms = platforms.linux;
+    platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix b/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix
index 288482ab6f7d..5dba30e76636 100644
--- a/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  version = "8.33";
+  version = "8.36";
   pname = "checkstyle";
 
   src = fetchurl {
     url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
-    sha256 = "03innxi9f44z2c785a94n3i0adm6mn3jjgqlvgx46nmigvw41mz6";
+    sha256 = "1f8g330akx3sdc35dgvy6kksr7y3dnnj7029qrpn745bd9fh92hh";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix b/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix
index 545cc035c929..e450bbefe242 100644
--- a/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/codeql/default.nix
@@ -12,7 +12,7 @@
 
 stdenv.mkDerivation rec {
   pname = "codeql";
-  version = "2.2.1";
+  version = "2.2.5";
 
   dontConfigure = true;
   dontBuild = true;
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
 
   src = fetchzip {
     url = "https://github.com/github/codeql-cli-binaries/releases/download/v${version}/codeql.zip";
-    sha256 = "0ijgvp2ifs4wnqmxidinwdcpv41iia74nk0xahasnjm8ljvgnnqh";
+    sha256 = "1x9crby4idkvfy6i5l0r00ixnx3ij68zjh1l5n92hyzlf0snv28d";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/tools/analysis/eresi/default.nix b/nixpkgs/pkgs/development/tools/analysis/eresi/default.nix
index c8c0d0c69601..b8abad44f241 100644
--- a/nixpkgs/pkgs/development/tools/analysis/eresi/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/eresi/default.nix
@@ -61,7 +61,6 @@ stdenv.mkDerivation rec {
     description = "The ERESI Reverse Engineering Software Interface";
     license = lib.licenses.gpl2;
     homepage = "http://www.eresi-project.org/";
-    maintainers = [ lib.maintainers.aszlig ];
     platforms = lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/analysis/flow/default.nix b/nixpkgs/pkgs/development/tools/analysis/flow/default.nix
index aed991dab30a..cc3ef8ed0f7f 100644
--- a/nixpkgs/pkgs/development/tools/analysis/flow/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/flow/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "flow";
-  version = "0.127.0";
+  version = "0.133.0";
 
   src = fetchFromGitHub {
     owner  = "facebook";
     repo   = "flow";
     rev    = "refs/tags/v${version}";
-    sha256 = "0daacbb4il3mm8fkbk5qlpvzp3pmrqagq2hr1gsjaf8vnmissvvm";
+    sha256 = "1r4s4gw50pvp4r4mq2w45s9i7fbkf7zycgp8rrj1dqzmkl9v6kii";
   };
 
   installPhase = ''
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/facebook/flow/releases/tag/v${version}";
     license = licenses.mit;
     platforms = ocamlPackages.ocaml.meta.platforms;
+    broken = stdenv.isAarch64; # https://github.com/facebook/flow/issues/7556
     maintainers = with maintainers; [ marsam puffnfresh ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix b/nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix
index c7ac2986fd6c..179a74c56d50 100644
--- a/nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/frama-c/default.nix
@@ -23,12 +23,12 @@ in
 
 stdenv.mkDerivation rec {
   pname = "frama-c";
-  version = "20.0";
-  slang   = "Calcium";
+  version = "21.1";
+  slang   = "Scandium";
 
   src = fetchurl {
     url    = "http://frama-c.com/download/frama-c-${version}-${slang}.tar.gz";
-    sha256 = "03dvn162djylj2skmk6vv75gh87mm4s5cspkzcrlm5x0rlla2yqn";
+    sha256 = "0qq0d08dzr0dmdjysiimdqmwlzgnn932vp5kf8lfn3nl45ai09dy";
   };
 
   preConfigure = lib.optionalString stdenv.cc.isClang "configureFlagsArray=(\"--with-cpp=clang -E -C\")";
diff --git a/nixpkgs/pkgs/development/tools/analysis/hopper/default.nix b/nixpkgs/pkgs/development/tools/analysis/hopper/default.nix
index bd7b831b8162..68f12dac70f5 100644
--- a/nixpkgs/pkgs/development/tools/analysis/hopper/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/hopper/default.nix
@@ -12,12 +12,12 @@
 }:
 stdenv.mkDerivation rec {
   pname = "hopper";
-  version = "4.5.28";
+  version = "4.5.29";
   rev = "v${lib.versions.major version}";
 
   src = fetchurl {
     url = "https://d2ap6ypl1xbe4k.cloudfront.net/Hopper-${rev}-${version}-Linux.pkg.tar.xz";
-    sha256 = "0mjpkd5c9igkxp9jg8cvrgrxw9x7ag1p5xivjbzhb3vld6xjm4dh";
+    sha256 = "1v1pff5fiv41khvrnlpdks2vddjnvziyn14qqj6v26snyhwi86zh";
   };
 
   sourceRoot = ".";
diff --git a/nixpkgs/pkgs/development/tools/analysis/hotspot/default.nix b/nixpkgs/pkgs/development/tools/analysis/hotspot/default.nix
index 23ca35b3717e..f04d060290f1 100644
--- a/nixpkgs/pkgs/development/tools/analysis/hotspot/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/hotspot/default.nix
@@ -17,13 +17,13 @@
 
 mkDerivation rec {
   pname = "hotspot";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "KDAB";
     repo = "hotspot";
     rev = "v${version}";
-    sha256 = "05rkzrvak93z8mzcpm4mcjxb933l8pjsxr9a595wfn1gn2ihmada";
+    sha256 = "1f68bssh3p387hkavfjkqcf7qf7w5caznmjfjldicxphap4riqr5";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/development/tools/analysis/include-what-you-use/default.nix b/nixpkgs/pkgs/development/tools/analysis/include-what-you-use/default.nix
index 6e19d89702ac..8bda0ac2223f 100644
--- a/nixpkgs/pkgs/development/tools/analysis/include-what-you-use/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/include-what-you-use/default.nix
@@ -3,10 +3,10 @@
 stdenv.mkDerivation rec {
   pname = "include-what-you-use";
   # Also bump llvmPackages in all-packages.nix to the supported version!
-  version = "0.13";
+  version = "0.14";
 
   src = fetchurl {
-    sha256 = "1jav4qf7d303by9iy6v08w73wfwzj76i54inh90w1s34m9q44aa9";
+    sha256 = "1vq0c8jqspvlss8hbazml44fi0mbslgnp2i9wcr0qrjpvfbl6623";
     url = "${meta.homepage}/downloads/${pname}-${version}.src.tar.gz";
   };
 
diff --git a/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix b/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix
index e2c174783d4b..cbc736e1a26c 100644
--- a/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/panopticon/default.nix
@@ -45,6 +45,5 @@ rustPlatform.buildRustPackage rec {
     '';
     license = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ leenaars ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/analysis/pmd/default.nix b/nixpkgs/pkgs/development/tools/analysis/pmd/default.nix
index 3f3731e2ac83..f91cdbead82c 100644
--- a/nixpkgs/pkgs/development/tools/analysis/pmd/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/pmd/default.nix
@@ -1,20 +1,21 @@
-{ stdenv, fetchurl, unzip }:
+{ stdenv, fetchurl, unzip, makeWrapper, openjdk }:
 
 stdenv.mkDerivation rec {
   pname = "pmd";
-  version = "6.17.0";
-
-  nativeBuildInputs = [ unzip ];
+  version = "6.26.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/pmd/pmd-bin-${version}.zip";
-    sha256 = "0000w28dg5z8gs7cxhx7d0fv10ry0yxamk5my28ncqqsg7a4qy8w";
+    sha256 = "1vlqwrbqk2cbp8kgxkm61c4blai81ib35yjf6wms16w0hvbqf2b4";
   };
 
+  nativeBuildInputs = [ unzip makeWrapper ];
+
   installPhase = ''
     runHook preInstall
     mkdir -p $out
     cp -R {bin,lib} $out
+    wrapProgram $out/bin/run.sh --prefix PATH : ${openjdk.jre}/bin
     runHook postInstall
   '';
 
diff --git a/nixpkgs/pkgs/development/tools/analysis/radare2/cutter.nix b/nixpkgs/pkgs/development/tools/analysis/radare2/cutter.nix
index 3f90e5f73436..1cef52a34443 100644
--- a/nixpkgs/pkgs/development/tools/analysis/radare2/cutter.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/radare2/cutter.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "radare2-cutter";
-  version = "1.10.3";
+  version = "1.12.0";
 
   src = fetchFromGitHub {
     owner = "radareorg";
     repo = "cutter";
     rev = "v${version}";
-    sha256 = "0qj8jyij02nif4jpirl09ygwnv8a9zi3vkb5sf5s8mg7qwlpnvyk";
+    sha256 = "0ljj3j3apbbw628n2nyrxpbnclixx20bqjxm0xwggqzz9vywsar0";
   };
 
   postUnpack = "export sourceRoot=$sourceRoot/src";
diff --git a/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix b/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix
index f77ea1602f4f..e86ef2532498 100644
--- a/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/radare2/default.nix
@@ -110,24 +110,24 @@ in {
   #<generated>
   # DO NOT EDIT! Automatically generated by ./update.py
   radare2 = generic {
-    version_commit = "24545";
-    gittap = "4.4.0";
-    gittip = "9ea0b7ce566cfdcfb3513f407c4056915204294a";
-    rev = "4.4.0";
-    version = "4.4.0";
-    sha256 = "0gwdnrnk7wdgkajp2qwg4fyplh7nsbmf01bzx07px6xmiscd9z2s";
-    cs_ver = "4.0.1";
-    cs_sha256 = "0ijwxxk71nr9z91yxw20zfj4bbsbrgvixps5c7cpj163xlzlwba6";
+    version_commit = "24959";
+    gittap = "4.5.1";
+    gittip = "293cf5ae65ba4e28828095dcae212955593ba255";
+    rev = "4.5.1";
+    version = "4.5.1";
+    sha256 = "0qigy1px0jy74c5ig73dc2fqjcy6vcy76i25dx9r3as6zfpkkaxj";
+    cs_ver = "4.0.2";
+    cs_sha256 = "0y5g74yjyliciawpn16zhdwya7bd3d7b1cccpcccc2wg8vni1k2w";
   };
   r2-for-cutter = generic {
-    version_commit = "24605";
-    gittap = "4.4.0";
-    gittip = "9ea0b7ce566cfdcfb3513f407c4056915204294a";
-    rev = "9ea0b7ce566cfdcfb3513f407c4056915204294a";
-    version = "2020-04-14";
-    sha256 = "0gwdnrnk7wdgkajp2qwg4fyplh7nsbmf01bzx07px6xmiscd9z2s";
-    cs_ver = "4.0.1";
-    cs_sha256 = "0ijwxxk71nr9z91yxw20zfj4bbsbrgvixps5c7cpj163xlzlwba6";
+    version_commit = "24959";
+    gittap = "4.5.1";
+    gittip = "293cf5ae65ba4e28828095dcae212955593ba255";
+    rev = "4.5.1";
+    version = "4.5.1";
+    sha256 = "0qigy1px0jy74c5ig73dc2fqjcy6vcy76i25dx9r3as6zfpkkaxj";
+    cs_ver = "4.0.2";
+    cs_sha256 = "0y5g74yjyliciawpn16zhdwya7bd3d7b1cccpcccc2wg8vni1k2w";
   };
   #</generated>
 }
diff --git a/nixpkgs/pkgs/development/tools/analysis/radare2/update.py b/nixpkgs/pkgs/development/tools/analysis/radare2/update.py
index b9e72e623660..ebd6e073fe53 100755
--- a/nixpkgs/pkgs/development/tools/analysis/radare2/update.py
+++ b/nixpkgs/pkgs/development/tools/analysis/radare2/update.py
@@ -5,6 +5,8 @@
 # and is formatted with black.
 import fileinput
 import json
+import xml.etree.ElementTree as ET
+from urllib.parse import urlparse
 import re
 import subprocess
 import tempfile
@@ -30,10 +32,20 @@ def prefetch_github(owner: str, repo: str, ref: str) -> str:
 
 
 def get_radare2_rev() -> str:
-    url = "https://api.github.com/repos/radare/radare2/releases/latest"
-    with urllib.request.urlopen(url) as response:
-        release = json.load(response)  # type: ignore
-    return release["tag_name"]
+    feed_url = "http://github.com/radareorg/radare2/releases.atom"
+    with urllib.request.urlopen(feed_url) as resp:
+        tree = ET.fromstring(resp.read())
+    releases = tree.findall(".//{http://www.w3.org/2005/Atom}entry")
+    for release in releases:
+        link = release.find("{http://www.w3.org/2005/Atom}link")
+        assert link is not None
+        url = urlparse(link.attrib["href"])
+        tag = url.path.split("/")[-1]
+        if re.match(r"[0-9.]+", tag):
+            return tag
+        else:
+            print(f"ignore {tag}")
+    raise RuntimeError(f"No release found at {feed_url}")
 
 
 def get_cutter_version() -> str:
diff --git a/nixpkgs/pkgs/development/tools/analysis/randoop/default.nix b/nixpkgs/pkgs/development/tools/analysis/randoop/default.nix
index 54c990ee0584..0e57509d9f73 100644
--- a/nixpkgs/pkgs/development/tools/analysis/randoop/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/randoop/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, unzip }:
 
 stdenv.mkDerivation rec {
-  version = "4.2.3";
+  version = "4.2.4";
   pname = "randoop";
 
   src = fetchurl {
     url = "https://github.com/randoop/randoop/releases/download/v${version}/${pname}-${version}.zip";
-    sha256 = "0apmwbh761b02z8i4s3d270ms0c1fw98d10rpczngrs2jz37s2m9";
+    sha256 = "1p6l5xzz7cbhrk5wy3906llhnwk0l8nck53pvi0l57kz7bdnag5w";
   };
 
   buildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix b/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix
new file mode 100644
index 000000000000..adf17dabecee
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/analysis/svlint/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "svlint";
+  version = "0.4.7";
+
+  src = fetchFromGitHub {
+    owner = "dalance";
+    repo = "svlint";
+    rev = "v${version}";
+    sha256 = "0gn68achvhyxljvhw5rwraxjcgdwrl1bwbsn596ka15nrk4lwb34";
+  };
+
+  cargoSha256 = "0v94zsh4jhzjnqbkgwn8rjbs72i5cw2nmkwn7xhdbbwxh17a88x4";
+
+  meta = with lib; {
+    description = "SystemVerilog linter";
+    homepage = "https://github.com/dalance/svlint";
+    license = licenses.mit;
+    maintainers = with maintainers; [ trepetti ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix b/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix
index d4d09f7ae26d..fe7b834e8e81 100644
--- a/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/tflint/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "tflint";
-  version = "0.16.2";
+  version = "0.20.2";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    sha256 = "09s4a7xgzr6qr268j3bqjj18s9gn9xcssfvm6w918m7wd39zgqy0";
+    sha256 = "123ndg7byrflczxzhk2c48bb8wlwgqzf1m0dzi0mnw3h52qiqjyp";
   };
 
-  vendorSha256 = "1w833lx52m61dv4aq25946bnfwj8yd2g7w989d66ih39simxsvzr";
+  vendorSha256 = "1prf1hffvwl2hdkrr8hqz1wwcz2n9dzhf68ziz5k3fzsx30jki9l";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix b/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix
index 251162efd8f7..e10052203edb 100644
--- a/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/tfsec/default.nix
@@ -2,17 +2,19 @@
 
 buildGoPackage rec {
   pname = "tfsec";
-  version = "0.21.0";
+  version = "0.27.0";
 
   src = fetchFromGitHub {
     owner = "liamg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0mmh161zwrkjwpw01zcgh7hsap7lgdxhg191bajzig6vlq287jyh";
+    sha256 = "12n6l18g0kg28clzyzwc2lq9rnch3vshp07isgvfp7193bhf8hyv";
   };
 
   goPackagePath = "github.com/liamg/tfsec";
 
+  buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/version.Version=${version}" ];
+
   meta = with lib; {
     homepage = "https://github.com/liamg/tfsec";
     description = "Static analysis powered security scanner for your terraform code";
diff --git a/nixpkgs/pkgs/development/tools/analysis/valgrind/default.nix b/nixpkgs/pkgs/development/tools/analysis/valgrind/default.nix
index 9d8e999c385c..2e485b3ed67b 100644
--- a/nixpkgs/pkgs/development/tools/analysis/valgrind/default.nix
+++ b/nixpkgs/pkgs/development/tools/analysis/valgrind/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, perl, gdb, cctools, xnu, bootstrap_cmds }:
 
 stdenv.mkDerivation rec {
-  name = "valgrind-3.15.0";
+  name = "valgrind-3.16.1";
 
   src = fetchurl {
     url = "https://sourceware.org/pub/valgrind/${name}.tar.bz2";
-    sha256 = "1ccawxrni8brcvwhygy12iprkvz409hbr9xkk1bd03gnm2fplz21";
+    sha256 = "1jik19rcd34ip8a5c9nv5wfj8k8maqb8cyclr4xhznq2gcpkl7y9";
   };
 
   outputs = [ "out" "dev" "man" "doc" ];
@@ -38,10 +38,6 @@ stdenv.mkDerivation rec {
       sed -i coregrind/link_tool_exe_darwin.in \
           -e 's/^my \$archstr = .*/my $archstr = "x86_64";/g'
 
-      echo "substitute hardcoded /usr/include/mach with ${xnu}/include/mach"
-      substituteInPlace coregrind/Makefile.in \
-         --replace /usr/include/mach ${xnu}/include/mach
-
       substituteInPlace coregrind/m_debuginfo/readmacho.c \
          --replace /usr/bin/dsymutil ${stdenv.cc.bintools.bintools}/bin/dsymutil
 
@@ -54,7 +50,8 @@ stdenv.mkDerivation rec {
   postPatch = "";
 
   configureFlags =
-    stdenv.lib.optional (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin") "--enable-only64bit";
+    stdenv.lib.optional (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "x86_64-darwin") "--enable-only64bit"
+    ++ stdenv.lib.optional stdenv.hostPlatform.isDarwin "--with-xcodedir=${xnu}/include";
 
   doCheck = false; # fails
 
diff --git a/nixpkgs/pkgs/development/tools/async/default.nix b/nixpkgs/pkgs/development/tools/async/default.nix
index dad1e2f65741..e63f9a18a63a 100644
--- a/nixpkgs/pkgs/development/tools/async/default.nix
+++ b/nixpkgs/pkgs/development/tools/async/default.nix
@@ -24,6 +24,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ctbur/async";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ minijackson ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/avro-tools/default.nix b/nixpkgs/pkgs/development/tools/avro-tools/default.nix
index c337afa5a6d9..e78f34449974 100644
--- a/nixpkgs/pkgs/development/tools/avro-tools/default.nix
+++ b/nixpkgs/pkgs/development/tools/avro-tools/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "avro-tools";
-  version = "1.9.1";
+  version = "1.9.2";
 
   src = fetchurl {
     url =
     "https://repo1.maven.org/maven2/org/apache/avro/avro-tools/${version}/${pname}-${version}.jar";
-    sha256 = "0d73qbfx59pa4mgsjwgl5dvc4895rm90pdwr4sbd77biscjad94s";
+    sha256 = "169cv4fjsj69fa2s87gh1i7wk0xzh3l7sx5yyz3cgyjalg4a12n1";
   };
 
   dontUnpack = true;
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://avro.apache.org/";
     description = "Avro command-line tools and utilities";
     license     = lib.licenses.asl20;
-    maintainers = [ lib.maintainers.nequissimus ];
+    maintainers = with lib.maintainers; [ nequissimus ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix b/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix
index 8af26a06c5c2..a486d318608c 100644
--- a/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/aws-sam-cli/default.nix
@@ -1,4 +1,5 @@
-{ lib
+{ fetchFromGitHub
+, lib
 , python
 , enableTelemetry ? false
 }:
@@ -6,6 +7,14 @@
 let
   py = python.override {
     packageOverrides = self: super: {
+      aws-sam-translator = super.aws-sam-translator.overridePythonAttrs (oldAttrs: rec {
+        version = "1.25.0";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "08756yl5lpqgrpr80f2b6bdcgygr37l6q1yygklcg9hz4yfpccav";
+        };
+      });
+
       flask = super.flask.overridePythonAttrs (oldAttrs: rec {
         version = "1.0.2";
         src = oldAttrs.src.override {
@@ -30,11 +39,11 @@ with py.pkgs;
 
 buildPythonApplication rec {
   pname = "aws-sam-cli";
-  version = "0.44.0";
+  version = "1.0.0rc1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0r3m41xjmg8m2jwsqwc9kdkcs3xbz8dsl240ybwbnr7rp29pnirf";
+    sha256 = "011b334gdvd9lhqia8c952q3cmzj99vik680180nbp0qh2xw6zpf";
   };
 
   # Tests are not included in the PyPI package
@@ -66,10 +75,12 @@ buildPythonApplication rec {
   # fix over-restrictive version bounds
   postPatch = ''
     substituteInPlace requirements/base.txt \
+      --replace "boto3~=1.13.0, >=1.13.0" "boto3~=1.14.3" \
       --replace "serverlessrepo==0.1.9" "serverlessrepo~=0.1.9" \
       --replace "python-dateutil~=2.6, <2.8.1" "python-dateutil~=2.6" \
-      --replace "tomlkit==0.5.8" "tomlkit~=0.5.8" \
-      --replace "requests==2.22.0" "requests~=2.22"
+      --replace "jmespath~=0.9.5" "jmespath~=0.10.0" \
+      --replace "tomlkit==0.5.8" "tomlkit~=0.7.0" \
+      --replace "requests==2.23.0" "requests~=2.24"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/azcopy/default.nix b/nixpkgs/pkgs/development/tools/azcopy/default.nix
index 903245deb31e..3d0fe8513c8a 100644
--- a/nixpkgs/pkgs/development/tools/azcopy/default.nix
+++ b/nixpkgs/pkgs/development/tools/azcopy/default.nix
@@ -2,18 +2,20 @@
 
 buildGoModule rec {
   pname = "azure-storage-azcopy";
-  version = "10.4.3";
+  version = "10.6.0";
 
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "azure-storage-azcopy";
-    rev = version;
-    sha256 = "0yl7iznjyng1i3d994qrryllni702gga7h45sx8i3sgpy8544yjf";
+    rev = "v${version}";
+    sha256 = "0izjnbldgf0597j4rh2ir9jsc2nzp9vwxcgllvkm5lh1xqf6i0nf";
   };
 
   subPackages = [ "." ];
 
-  vendorSha256 = "1276k2hpyr7bqp6hdi576xcdcd2c8vz100jpls663z7vb2rbpvxf";
+  vendorSha256 = "10sxkb2dh1il4ps15dlvq0xsry8hax27imb5qg3khdmjhb4yaj7k";
+
+  doCheck = false;
 
   postInstall = ''
     ln -rs "$out/bin/azure-storage-azcopy" "$out/bin/azcopy"
@@ -24,4 +26,4 @@ buildGoModule rec {
     license = licenses.mit;
     description = "The new Azure Storage data transfer utility - AzCopy v10";
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/bazel-gazelle/default.nix b/nixpkgs/pkgs/development/tools/bazel-gazelle/default.nix
index ff019e785100..a3838283c5eb 100644
--- a/nixpkgs/pkgs/development/tools/bazel-gazelle/default.nix
+++ b/nixpkgs/pkgs/development/tools/bazel-gazelle/default.nix
@@ -5,17 +5,19 @@
 
 buildGoModule rec {
   pname = "bazel-gazelle";
-  version = "0.20.0";
+  version = "0.21.1";
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1rw9zq8rmc0zr91kk70xl67dl6jx4dswwisv3bd1f16yncqgv2a1";
+    sha256 = "12ffrildgx4lah7bdnhr7i8z5jp05lll6gmmpzshmzz8dsgf39y4";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   subPackages = [ "cmd/gazelle" ];
 
   meta = with lib; {
@@ -28,4 +30,4 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ kalbasit ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/bazel-kazel/default.nix b/nixpkgs/pkgs/development/tools/bazel-kazel/default.nix
new file mode 100644
index 000000000000..55f79a993ac5
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/bazel-kazel/default.nix
@@ -0,0 +1,26 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "bazel-kazel";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "kubernetes";
+    repo = "repo-infra";
+    rev = "v${version}";
+    sha256 = "121asn0h2vfgqnjk72wqjcfq0w15k15abjdm39i8hv455kzrc2hs";
+  };
+
+  vendorSha256 = "1pzkjh4n9ai8yqi98bkdhicjdr2l8j3fckl5n90c2gdcwqyxvgkf";
+
+  doCheck = false;
+
+  subPackages = [ "cmd/kazel" ];
+
+  meta = with lib; {
+    description = "kazel - a BUILD file generator for go and bazel";
+    homepage = "https://github.com/kubernetes/repo-infra";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ kalbasit ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/bazel-watcher/default.nix b/nixpkgs/pkgs/development/tools/bazel-watcher/default.nix
index f331272a5f31..fae1310bd589 100644
--- a/nixpkgs/pkgs/development/tools/bazel-watcher/default.nix
+++ b/nixpkgs/pkgs/development/tools/bazel-watcher/default.nix
@@ -56,7 +56,7 @@ buildBazelPackage rec {
       sed -e '/^FILE:@bazel_gazelle_go_repository_tools.*/d' -i $bazelOut/external/\@*.marker
     '';
 
-    sha256 = "16zgjd6zww9skk34ggfx5l3kbsdyv98zxawrvmx1arv5gaj63pp9";
+    sha256 = "0rfdwss8aahydiybwhi3j0qw12j1l91k9lbn1vaip0bmnq5qfwh9";
   };
 
   buildAttrs = {
diff --git a/nixpkgs/pkgs/development/tools/bazelisk/default.nix b/nixpkgs/pkgs/development/tools/bazelisk/default.nix
index 05776712b32f..e639c7ab314b 100644
--- a/nixpkgs/pkgs/development/tools/bazelisk/default.nix
+++ b/nixpkgs/pkgs/development/tools/bazelisk/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "bazelisk";
-  version = "1.5.0";
+  version = "1.6.1";
 
   patches = [ ./gomod.patch ];
 
@@ -10,10 +10,12 @@ buildGoModule rec {
     owner = "bazelbuild";
     repo = pname;
     rev = "v${version}";
-    sha256 = "06vimiklcprsxq7l6rmxshv8l0kjr7aanpm206qgx3wvw4shibmw";
+    sha256 = "0g5zwdk7p1snqcbm4w3hsi3fm7sbsijrfj4ajxg7mifywqpmzm2l";
   };
 
-  vendorSha256 = "11iwgrnid0f8sq9f23m1a3s55sc7lpl60phykmd9ss4xs39bapl5";
+  vendorSha256 = "1jgm6j04glvk7ib5yd0h04p9qxzl1ca100cv909kngx52jp61yxp";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.BazeliskVersion=${version}" ];
 
diff --git a/nixpkgs/pkgs/development/tools/bazelisk/gomod.patch b/nixpkgs/pkgs/development/tools/bazelisk/gomod.patch
index d41d81e7ede5..0c35004b294d 100644
--- a/nixpkgs/pkgs/development/tools/bazelisk/gomod.patch
+++ b/nixpkgs/pkgs/development/tools/bazelisk/gomod.patch
@@ -6,7 +6,7 @@ index 8eef134..54382cb 100644
  go 1.14
  
  require (
-+	github.com/bazelbuild/rules_go v0.23.3
++	github.com/bazelbuild/rules_go v0.23.7
  	github.com/hashicorp/go-version v1.2.0
  	github.com/mitchellh/go-homedir v1.1.0
  )
diff --git a/nixpkgs/pkgs/development/tools/bloaty/default.nix b/nixpkgs/pkgs/development/tools/bloaty/default.nix
index 8d3472a4a385..28df0aaa6963 100644
--- a/nixpkgs/pkgs/development/tools/bloaty/default.nix
+++ b/nixpkgs/pkgs/development/tools/bloaty/default.nix
@@ -1,14 +1,14 @@
 { stdenv, cmake, zlib, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  version = "1.0";
+  version = "1.1";
   pname = "bloaty";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "bloaty";
     rev = "v${version}";
-    sha256 = "0fck83zyh9bwlwdk3fkhv3337g9nii6rzf96gyghmnrsp9rzxs3l";
+    sha256 = "1556gb8gb8jwf5mwxppcqz3mp269b5jhd51kj341iqkbn27zzngk";
     fetchSubmodules = true;
   };
 
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/google/bloaty";
     license = licenses.asl20;
     platforms = platforms.unix;
-    maintainers = [ maintainers.dtzWill ];
+    maintainers = with maintainers; [ dtzWill ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/apache-ant/1.9.nix b/nixpkgs/pkgs/development/tools/build-managers/apache-ant/1.9.nix
index 3f43cad17c4b..49f8435b3773 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/apache-ant/1.9.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/apache-ant/1.9.nix
@@ -1,6 +1,6 @@
 { fetchurl, stdenv, coreutils, makeWrapper }:
 
-let version = "1.9.6"; in
+let version = "1.9.15"; in
 
 stdenv.mkDerivation {
   pname = "ant";
@@ -10,7 +10,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://apache/ant/binaries/apache-ant-${version}-bin.tar.bz2";
-    sha256 = "1cwd5vq175gyicw0hkm8idwa33zxwhf7xlxywaqxcqqdjql0jfx4";
+    sha256 = "0yfx5qsvrg12lar4908ndbnlpppy7g7qk8ay41y4sz9g873v07mr";
   };
 
   contrib = fetchurl {
diff --git a/nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix b/nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix
index f06467867ce2..b0411090fbe5 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/apache-ant/default.nix
@@ -1,6 +1,6 @@
 { fetchurl, stdenv, coreutils, makeWrapper }:
 
-let version = "1.10.2"; in
+let version = "1.10.8"; in
 
 stdenv.mkDerivation {
   pname = "ant";
@@ -10,12 +10,12 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://apache/ant/binaries/apache-ant-${version}-bin.tar.bz2";
-    sha256 = "0662qammjvibh9kgkxzadkayfn2r7iwnagbwaw28crqqclrb2rp1";
+    sha256 = "0zh94csb2hl6ir2ccn18ps506mjgh3mffnrb8wpsmp1x5fcykha5";
   };
 
   contrib = fetchurl {
     url = "mirror://sourceforge/ant-contrib/ant-contrib-1.0b3-bin.tar.bz2";
-    sha256 = "96effcca2581c1ab42a4828c770b48d54852edf9e71cefc9ed2ffd6590571ad1";
+    sha256 = "1l8say86bz9gxp4yy777z7nm4j6m905pg342li1aphc14p5grvwn";
   };
 
   installPhase =
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
index d615657ebeb4..9910256afc0a 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel-remote/default.nix
@@ -64,7 +64,7 @@ buildBazelPackage rec {
       sed -e '/^FILE:@bazel_gazelle_go_repository_tools.*/d' -i $bazelOut/external/\@*.marker
     '';
 
-    sha256 = "0rfjyvw370yn4rp1f2772b2h3jbycymdw26zx38krzy5zq0iajyp";
+    sha256 = "1m7fmb03lirffxx04ck73bn5zwaji7zdwhlqq8s1c6pgp755d3vi";
   };
 
   buildAttrs = {
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix
index 6d4ba50a9fbb..c507169cf37a 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_26/default.nix
@@ -236,6 +236,8 @@ stdenv.mkDerivation rec {
       fetch --experimental_distdir=${distDir}
       build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')"
       build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')"
+      build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')"
+      build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')"
       build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')"
       build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')"
       build --host_javabase='@local_jdk//:jdk'
@@ -245,6 +247,8 @@ stdenv.mkDerivation rec {
       # add the same environment vars to compile.sh
       sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
index 19d33235a340..ad6e9ee44566 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_0_29/default.nix
@@ -417,6 +417,8 @@ stdenv.mkDerivation rec {
       fetch --distdir=${distDir}
       build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')"
       build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')"
+      build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')"
+      build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')"
       build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')"
       build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')"
       build --host_javabase='@local_jdk//:jdk'
@@ -426,6 +428,8 @@ stdenv.mkDerivation rec {
       # add the same environment vars to compile.sh
       sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
index eff8aede6c16..8dcdc71415fa 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_1/default.nix
@@ -417,6 +417,8 @@ stdenv.mkDerivation rec {
       fetch --distdir=${distDir}
       build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')"
       build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')"
+      build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')"
+      build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')"
       build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')"
       build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')"
       build --host_javabase='@local_jdk//:jdk'
@@ -426,6 +428,8 @@ stdenv.mkDerivation rec {
       # add the same environment vars to compile.sh
       sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
index 77caa2325622..0bfc9071d7e6 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, callPackage, lib, fetchurl, fetchFromGitHub
+{ stdenv, callPackage, lib, fetchurl, fetchFromGitHub, installShellFiles
 , runCommand, runCommandCC, makeWrapper, recurseIntoAttrs
 # this package (through the fixpoint glass)
 , bazel_self
@@ -25,11 +25,11 @@
 }:
 
 let
-  version = "3.2.0";
+  version = "3.3.1";
 
   src = fetchurl {
     url = "https://github.com/bazelbuild/bazel/releases/download/${version}/bazel-${version}-dist.zip";
-    sha256 = "1ylbfdcb6rhnc3sr292c6shl754i0h0i050f4gr4bppn6sa15v24";
+    sha256 = "0ir796kl8r9hpr3li26qsdy1z2lx2bv82zmk4a2s7q64clyg9wg0";
   };
 
   # Update with `eval $(nix-build -A bazel.updater)`,
@@ -53,8 +53,8 @@ let
        else srcs."java_tools_javac11_linux-v8.0.zip")
       srcs."coverage_output_generator-v2.1.zip"
       srcs.build_bazel_rules_nodejs
-      srcs."android_tools_pkg-0.16.0.tar.gz"
-      srcs."3.1.0.tar.gz"
+      srcs."android_tools_pkg-0.19.0rc1.tar.gz"
+      srcs."bazel-toolchains-3.1.0.tar.gz"
       srcs.rules_pkg
       srcs.rules_cc
       srcs.rules_java
@@ -419,10 +419,18 @@ stdenv.mkDerivation rec {
 
       # add nix environment vars to .bazelrc
       cat >> .bazelrc <<EOF
+      # Limit the resources Bazel is allowed to use during the build to 1/2 the
+      # available RAM and 3/4 the available CPU cores. This should help avoid
+      # overwhelming the build machine.
+      build --local_ram_resources=HOST_RAM*.5
+      build --local_cpu_resources=HOST_CPUS*.75
+
       build --distdir=${distDir}
       fetch --distdir=${distDir}
       build --copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt="/g')"
       build --host_copt="$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt="/g')"
+      build --linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt="/g')"
+      build --host_linkopt="$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt="/g')"
       build --linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt="-Wl,/g')"
       build --host_linkopt="-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt="-Wl,/g')"
       build --host_javabase='@local_jdk//:jdk'
@@ -432,6 +440,8 @@ stdenv.mkDerivation rec {
       # add the same environment vars to compile.sh
       sed -e "/\$command \\\\$/a --copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --copt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_copt=\"$(echo $NIX_CFLAGS_COMPILE | sed -e 's/ /" --host_copt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --linkopt=\"/g')\" \\\\" \
+          -e "/\$command \\\\$/a --host_linkopt=\"$(echo $(< ${stdenv.cc}/nix-support/libcxx-ldflags) | sed -e 's/ /" --host_linkopt=\"/g')\" \\\\" \
           -e "/\$command \\\\$/a --linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_linkopt=\"-Wl,$(echo $NIX_LDFLAGS | sed -e 's/ /" --host_linkopt=\"-Wl,/g')\" \\\\" \
           -e "/\$command \\\\$/a --host_javabase='@local_jdk//:jdk' \\\\" \
@@ -465,6 +475,7 @@ stdenv.mkDerivation rec {
   # when a command can’t be found in a bazel build, you might also
   # need to add it to `defaultShellPath`.
   nativeBuildInputs = [
+    installShellFiles
     zip
     python3
     unzip
@@ -507,9 +518,15 @@ stdenv.mkDerivation rec {
     mv ./bazel_src/output/bazel $out/bin/bazel-${version}-${system}-${arch}
 
     # shell completion files
-    mkdir -p $out/share/bash-completion/completions $out/share/zsh/site-functions
-    mv ./bazel_src/output/bazel-complete.bash $out/share/bash-completion/completions/bazel
-    cp ./bazel_src/scripts/zsh_completion/_bazel $out/share/zsh/site-functions/
+    installShellCompletion --bash \
+      --name bazel.bash \
+      ./bazel_src/output/bazel-complete.bash
+    installShellCompletion --zsh \
+      --name _bazel \
+      ./bazel_src/scripts/zsh_completion/_bazel
+    installShellCompletion --fish \
+      --name bazel.fish \
+      ./bazel_src/scripts/fish/completions/bazel.fish
   '';
 
   doInstallCheck = true;
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/src-deps.json b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/src-deps.json
index 786a31c9bb31..4007a77b0652 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/src-deps.json
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/bazel_3/src-deps.json
@@ -7,6 +7,14 @@
             "https://github.com/bazelbuild/rules_sass/archive/1.25.0.zip"
         ]
     },
+    "1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz": {
+        "name": "1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz",
+        "sha256": "5a725b777976b77aa122b707d1b6f0f39b6020f66cd427bb111a585599c857b1",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz",
+            "https://github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz"
+        ]
+    },
     "2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz": {
         "name": "2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz",
         "sha256": "c00ceec469dbcf7929972e3c79f20c14033824538038a554952f5c31d8832f96",
@@ -15,14 +23,6 @@
             "https://github.com/bazelbuild/bazel-skylib/archive/2d4c9528e0f453b5950eeaeac11d8d09f5a504d4.tar.gz"
         ]
     },
-    "3.1.0.tar.gz": {
-        "name": "3.1.0.tar.gz",
-        "sha256": "726b5423e1c7a3866a3a6d68e7123b4a955e9fcbe912a51e0f737e6dab1d0af2",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/3.1.0.tar.gz",
-            "https://github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz"
-        ]
-    },
     "46993efdd33b73649796c5fc5c9efb193ae19d51.zip": {
         "name": "46993efdd33b73649796c5fc5c9efb193ae19d51.zip",
         "sha256": "66184688debeeefcc2a16a2f80b03f514deac8346fe888fb7e691a52c023dd88",
@@ -65,14 +65,22 @@
         "patch_cmds_win": [
             "Add-Content -Path BUILD -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
         ],
-        "sha256": "e2cbd43a9d23aa32197c29d689a7e017f205acb07053f5dd584f500a1a9d4361",
-        "url": "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.16.0.tar.gz"
+        "sha256": "761e997a9055fe5e2b70aba8d64e78d4c2113feafaa8ac81909cb63e403f3087",
+        "url": "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.19.0rc1.tar.gz"
     },
-    "android_tools_pkg-0.16.0.tar.gz": {
-        "name": "android_tools_pkg-0.16.0.tar.gz",
-        "sha256": "e2cbd43a9d23aa32197c29d689a7e017f205acb07053f5dd584f500a1a9d4361",
+    "android_tools_pkg-0.19.0rc1.tar.gz": {
+        "name": "android_tools_pkg-0.19.0rc1.tar.gz",
+        "sha256": "761e997a9055fe5e2b70aba8d64e78d4c2113feafaa8ac81909cb63e403f3087",
         "urls": [
-            "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.16.0.tar.gz"
+            "https://mirror.bazel.build/bazel_android_tools/android_tools_pkg-0.19.0rc1.tar.gz"
+        ]
+    },
+    "bazel-toolchains-3.1.0.tar.gz": {
+        "name": "bazel-toolchains-3.1.0.tar.gz",
+        "sha256": "726b5423e1c7a3866a3a6d68e7123b4a955e9fcbe912a51e0f737e6dab1d0af2",
+        "urls": [
+            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz",
+            "https://github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz"
         ]
     },
     "bazel_j2objc": {
@@ -114,10 +122,19 @@
         "sha256": "726b5423e1c7a3866a3a6d68e7123b4a955e9fcbe912a51e0f737e6dab1d0af2",
         "strip_prefix": "bazel-toolchains-3.1.0",
         "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/archive/3.1.0.tar.gz",
+            "https://mirror.bazel.build/github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz",
             "https://github.com/bazelbuild/bazel-toolchains/releases/download/3.1.0/bazel-toolchains-3.1.0.tar.gz"
         ]
     },
+    "bazel_website": {
+        "build_file_content": "\nexports_files([\"_sass/style.scss\"])\n",
+        "name": "bazel_website",
+        "sha256": "a5f531dd1d62e6947dcfc279656ffc2fdf6f447c163914c5eabf7961b4cb6eb4",
+        "strip_prefix": "bazel-website-c174fa288aa079b68416d2ce2cc97268fa172f42",
+        "urls": [
+            "https://github.com/bazelbuild/bazel-website/archive/c174fa288aa079b68416d2ce2cc97268fa172f42.tar.gz"
+        ]
+    },
     "build_bazel_rules_nodejs": {
         "name": "build_bazel_rules_nodejs",
         "sha256": "b6670f9f43faa66e3009488bbd909bc7bc46a5a9661a33f6bc578068d1837f37",
@@ -126,14 +143,6 @@
             "https://github.com/bazelbuild/rules_nodejs/releases/download/1.3.0/rules_nodejs-1.3.0.tar.gz"
         ]
     },
-    "c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz": {
-        "name": "c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz",
-        "sha256": "e6a76586b264f30679688f65f7e71ac112d1446681010a13bf22d9ca071f34b7",
-        "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz",
-            "https://github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz"
-        ]
-    },
     "com_google_googletest": {
         "name": "com_google_googletest",
         "sha256": "9dc9157a9a1551ec7a7e43daea9a694a0bb5fb8bec81235d8a1e6ef64c716dcb",
@@ -201,11 +210,11 @@
     },
     "io_bazel_skydoc": {
         "name": "io_bazel_skydoc",
-        "sha256": "e6a76586b264f30679688f65f7e71ac112d1446681010a13bf22d9ca071f34b7",
-        "strip_prefix": "skydoc-c7bbde2950769aac9a99364b0926230060a3ce04",
+        "sha256": "5a725b777976b77aa122b707d1b6f0f39b6020f66cd427bb111a585599c857b1",
+        "strip_prefix": "stardoc-1ef781ced3b1443dca3ed05dec1989eca1a4e1cd",
         "urls": [
-            "https://mirror.bazel.build/github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz",
-            "https://github.com/bazelbuild/skydoc/archive/c7bbde2950769aac9a99364b0926230060a3ce04.tar.gz"
+            "https://mirror.bazel.build/github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz",
+            "https://github.com/bazelbuild/stardoc/archive/1ef781ced3b1443dca3ed05dec1989eca1a4e1cd.tar.gz"
         ]
     },
     "java_tools_javac11_darwin-v8.0.zip": {
@@ -337,6 +346,15 @@
             "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64-minimal-b23d4e05466f2aa1fdcd72d3d3a8e962206b64bf-1581689068.tar.gz"
         ]
     },
+    "openjdk_linux_ppc64le_vanilla": {
+        "downloaded_file_path": "adoptopenjdk-ppc64le-vanilla.tar.gz",
+        "name": "openjdk_linux_ppc64le_vanilla",
+        "sha256": "a417db0295b1f4b538ecbaf7c774f3a177fab9657a665940170936c0eca4e71a",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz",
+            "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz"
+        ]
+    },
     "openjdk_linux_vanilla": {
         "downloaded_file_path": "zulu-linux-vanilla.tar.gz",
         "name": "openjdk_linux_vanilla",
@@ -589,6 +607,24 @@
             "https://mirror.bazel.build/openjdk/azul-zulu11.37.17-ca-jdk11.0.6/zulu11.37.17-ca-jdk11.0.6-linux_x64.tar.gz"
         ]
     },
+    "remotejdk11_linux_ppc64le_for_testing": {
+        "build_file": "@local_jdk//:BUILD.bazel",
+        "name": "remotejdk11_linux_ppc64le_for_testing",
+        "patch_cmds": [
+            "test -f BUILD.bazel && chmod u+w BUILD.bazel || true",
+            "echo >> BUILD.bazel",
+            "echo 'exports_files([\"WORKSPACE\"], visibility = [\"//visibility:public\"])' >> BUILD.bazel"
+        ],
+        "patch_cmds_win": [
+            "Add-Content -Path BUILD.bazel -Value \"`nexports_files([`\"WORKSPACE`\"], visibility = [`\"//visibility:public`\"])`n\" -Force"
+        ],
+        "sha256": "a417db0295b1f4b538ecbaf7c774f3a177fab9657a665940170936c0eca4e71a",
+        "strip_prefix": "jdk-11.0.7+10",
+        "urls": [
+            "https://mirror.bazel.build/openjdk/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz",
+            "https://github.com/AdoptOpenJDK/openjdk11-binaries/releases/download/jdk-11.0.7%2B10/OpenJDK11U-jdk_ppc64le_linux_hotspot_11.0.7_10.tar.gz"
+        ]
+    },
     "remotejdk11_macos_for_testing": {
         "build_file": "@local_jdk//:BUILD.bazel",
         "name": "remotejdk11_macos_for_testing",
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
index 2f026c9d99c0..dd9bc4016f54 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/buildtools/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "bazel-buildtools";
-  version = "3.2.1";
+  version = "3.3.0";
 
   goPackagePath = "github.com/bazelbuild/buildtools";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "bazelbuild";
     repo = "buildtools";
     rev = version;
-    sha256 = "1f2shjskcmn3xpgvb9skli5xaf942wgyg5ps7r905n1zc0gm8izn";
+    sha256 = "0g411gjbm02qd5b50iy6kk81kx2n5zw5x1m6i6g7nrmh38p3pn9k";
   };
 
   goDeps = ./deps.nix;
@@ -24,6 +24,5 @@ buildGoPackage rec {
     homepage = "https://github.com/bazelbuild/buildtools";
     license = licenses.asl20;
     maintainers = with maintainers; [ elasticdog uri-canva marsam ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bazel/update-srcDeps.py b/nixpkgs/pkgs/development/tools/build-managers/bazel/update-srcDeps.py
index e57dc05bb72a..52d40e0f94e8 100755
--- a/nixpkgs/pkgs/development/tools/build-managers/bazel/update-srcDeps.py
+++ b/nixpkgs/pkgs/development/tools/build-managers/bazel/update-srcDeps.py
@@ -35,6 +35,7 @@ def list_source_repository(**kw): pass
 def new_local_repository(**kw): pass
 def local_repository(**kw): pass
 DOC_VERSIONS = []
+def stardoc_repositories(**kw): pass
 def skydoc_repositories(**kw): pass
 def rules_sass_dependencies(**kw): pass
 def node_repositories(**kw): pass
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix
index 51ca62d05202..c3049edee64e 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bloop/default.nix
@@ -1,78 +1,92 @@
-{ stdenv, lib, fetchurl, coursier, python, makeWrapper }:
-
-let
-  baseName = "bloop";
-  version = "1.3.4";
-  nailgunCommit = "d7ed5db"; # Fetched from https://github.com/scalacenter/bloop/releases/download/v${version}/install.py
-
-  client = stdenv.mkDerivation {
-    name = "${baseName}-client-${version}";
-
-    src = fetchurl {
-      url = "https://raw.githubusercontent.com/scalacenter/nailgun/${nailgunCommit}/pynailgun/ng.py";
-      sha256 = "0lrj25m0nvphz2i5mqjwccpyrd7gn8a5k22k5khrpdh6ldxqis8a";
-    };
-
-    phases = [ "installPhase" ];
+{ stdenv
+, fetchurl
+, coursier
+, autoPatchelfHook
+, installShellFiles
+, jre
+, lib
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bloop";
+  version = "1.4.4";
+
+  bloop-coursier-channel = fetchurl {
+    url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bloop-coursier.json";
+    sha256 = "1pyf559bpnsmvca4kw36nb9lwkwa9q0ghrpa117s96dhvrp3i2bv";
+  };
 
-    installPhase = ''cp $src $out'';
+  bloop-bash = fetchurl {
+    url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bash-completions";
+    sha256 = "1ldxlqv353gvhdn4yq7z506ywvnjv6fjsi8wigwhzg89876pwsys";
   };
 
-  server = stdenv.mkDerivation {
-    name = "${baseName}-server-${version}";
-    buildCommand = ''
-      mkdir -p $out/bin
+  bloop-fish = fetchurl {
+    url = "https://github.com/scalacenter/bloop/releases/download/v${version}/fish-completions";
+    sha256 = "1pa8h81l2498q8dbd83fzipr99myjwxpy8xdgzhvqzdmfv6aa4m0";
+  };
 
-      export COURSIER_CACHE=$(pwd)
-      ${coursier}/bin/coursier bootstrap ch.epfl.scala:bloop-frontend_2.12:${version} \
-        -r "bintray:scalameta/maven" \
-        -r "bintray:scalacenter/releases" \
-        -r "https://oss.sonatype.org/content/repositories/staging" \
-        --deterministic \
-        -f --main bloop.Server -o $out/bin/blp-server
-    '';
-    outputHashMode = "recursive";
-    outputHashAlgo = "sha256";
-    outputHash     = "1z33ip6hgfwiixm2gimz819p5cnxn1fmxb3ryyf77jzwsx7py718";
+  bloop-zsh = fetchurl {
+    url = "https://github.com/scalacenter/bloop/releases/download/v${version}/zsh-completions";
+    sha256 = "1xzg0qfkjdmzm3mvg82mc4iia8cl7b6vbl8ng4ir2xsz00zjrlsq";
   };
 
-  zsh = stdenv.mkDerivation {
-    name = "${baseName}-zshcompletion-${version}";
+  bloop-coursier = stdenv.mkDerivation rec {
+    name = "${pname}-coursier-${version}";
 
-    src = fetchurl {
-      url = "https://raw.githubusercontent.com/scalacenter/bloop/v${version}/etc/zsh/_bloop";
-      sha256 = "09qq5888vaqlqan2jbs2qajz2c3ff13zj8r0x2pcxsqmvlqr02hp";
-    };
+    platform = if stdenv.isLinux && stdenv.isx86_64 then "x86_64-pc-linux"
+               else if stdenv.isDarwin && stdenv.isx86_64 then "x86_64-apple-darwin"
+               else throw "unsupported platform";
 
     phases = [ "installPhase" ];
+    installPhase = ''
+      export COURSIER_CACHE=$(pwd)
+      export COURSIER_JVM_CACHE=$(pwd)
 
-    installPhase = ''cp $src $out'';
-  };
-in
-stdenv.mkDerivation {
-  name = "${baseName}-${version}";
+      mkdir channel
+      ln -s ${bloop-coursier-channel} channel/bloop.json
+      ${coursier}/bin/coursier install --install-dir $out --install-platform ${platform} --default-channels=false --channel channel --only-prebuilt=true bloop
+
+      # Remove binary part of the coursier launcher script to make derivation output hash stable
+      sed -i '5,$ d' $out/bloop
+   '';
 
-  buildInputs = [ makeWrapper ];
+    outputHashMode = "recursive";
+    outputHashAlgo = "sha256";
+    outputHash     = if stdenv.isLinux && stdenv.isx86_64 then "0hf0priy93zqba78a9nvbgl3mzwlc4jz43gz7cv2cdkj6x0lp0y1"
+                     else if stdenv.isDarwin && stdenv.isx86_64 then "0g2rnmlfnqymji4f4rn0kaz7hipgv3bakdpn08600gg1f3s8gabw"
+                     else throw "unsupported platform";
+  };
 
-  phases = [ "installPhase" ];
+  dontUnpack = true;
+  nativeBuildInputs = [ autoPatchelfHook installShellFiles ];
+  buildInputs = [ stdenv.cc.cc.lib zlib ];
+  propagatedBuildInputs = [ jre ];
 
   installPhase = ''
+    export COURSIER_CACHE=$(pwd)
+    export COURSIER_JVM_CACHE=$(pwd)
+
     mkdir -p $out/bin
-    mkdir -p $out/share/zsh/site-functions
+    cp ${bloop-coursier}/bloop $out/bloop
+    cp ${bloop-coursier}/.bloop.aux $out/.bloop.aux
+    ln -s $out/bloop $out/bin/bloop
 
-    ln -s ${server}/bin/blp-server $out/blp-server
-    ln -s ${zsh} $out/share/zsh/site-functions/_bloop
+    # patch the bloop launcher so that it works when symlinked
+    sed "s|\$(dirname \"\$0\")|$out|" -i $out/bloop
 
-    cp ${client} $out/bloop
-    chmod +x $out/bloop
-    makeWrapper $out/bloop $out/bin/bloop \
-      --prefix PATH : ${lib.makeBinPath [ python ]}
+    #Install completions
+    installShellCompletion --name bloop --bash ${bloop-bash}
+    installShellCompletion --name _bloop --zsh ${bloop-zsh}
+    installShellCompletion --name bloop.fish --fish ${bloop-fish}
   '';
 
   meta = with stdenv.lib; {
     homepage = "https://scalacenter.github.io/bloop/";
     license = licenses.asl20;
     description = "Bloop is a Scala build server and command-line tool to make the compile and test developer workflows fast and productive in a build-tool-agnostic way.";
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ tomahna ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix b/nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix
index b119b5a38105..219bd6e30e3b 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/bmake/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bmake";
-  version = "20200606";
+  version = "20200710";
 
   src = fetchurl {
     url    = "http://www.crufty.net/ftp/pub/sjg/${pname}-${version}.tar.gz";
-    sha256 = "00kh1g8z6808ylbfcn9afpb0xmb99k302dfdsmyx1rsn65xs58v7";
+    sha256 = "0v5paqdc0wnqlw4dy45mnydkmabsky33nvd7viwd2ygg351zqf35";
   };
 
   nativeBuildInputs = [ getopt ];
diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/application-services.patch b/nixpkgs/pkgs/development/tools/build-managers/cmake/application-services.patch
index e0399d0a6c6e..75873d6055c0 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/cmake/application-services.patch
+++ b/nixpkgs/pkgs/development/tools/build-managers/cmake/application-services.patch
@@ -1,11 +1,8 @@
 diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt
-index 8aff8f6..af1852d 100644
+index 1b6bb00d4c..487114daa8 100644
 --- a/Source/CMakeLists.txt
 +++ b/Source/CMakeLists.txt
-@@ -791,12 +791,11 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR MATCHES "sparc"
-   endif()
- endif()
- 
+@@ -893,7 +893,6 @@ endif()
  # On Apple we need CoreFoundation and CoreServices
  if(APPLE)
    target_link_libraries(CMakeLib "-framework CoreFoundation")
@@ -13,13 +10,11 @@ index 8aff8f6..af1852d 100644
  endif()
  
  if(WIN32 AND NOT UNIX)
-   # We need the rpcrt4 library on Windows.
-   # We need the crypt32 library on Windows for crypto/cert APIs.
 diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
-index e353a37..b06f842 100644
+index a5ce5d18f4..3d6838ce82 100644
 --- a/Source/cmGlobalXCodeGenerator.cxx
 +++ b/Source/cmGlobalXCodeGenerator.cxx
-@@ -35,11 +35,6 @@
+@@ -43,11 +43,6 @@
  
  struct cmLinkImplementation;
  
@@ -32,12 +27,12 @@ index e353a37..b06f842 100644
  #  include "cmXMLParser.h"
  
 diff --git a/Utilities/cmlibarchive/CMakeLists.txt b/Utilities/cmlibarchive/CMakeLists.txt
-index d7af6e2..d4808fc 100644
+index bfcaf30bb7..1da540aee5 100644
 --- a/Utilities/cmlibarchive/CMakeLists.txt
 +++ b/Utilities/cmlibarchive/CMakeLists.txt
-@@ -1662,11 +1662,6 @@ IF(MSVC)
-   ADD_DEFINITIONS(-D_CRT_SECURE_NO_DEPRECATE)
- ENDIF(MSVC)
+@@ -2007,11 +2007,6 @@ IF(ENABLE_TEST)
+ ENDIF(ENABLE_TEST)
+ ENDIF()
  
 -# We need CoreServices on Mac OS.
 -IF(APPLE)
@@ -45,16 +40,5 @@ index d7af6e2..d4808fc 100644
 -ENDIF(APPLE)
 -
  add_subdirectory(libarchive)
- 
- install(FILES COPYING DESTINATION ${CMAKE_DOC_DIR}/cmlibarchive)
-index e505bdd..f45557d 100644
---- a/Utilities/cmlibuv/src/unix/darwin-proctitle.c
-+++ b/Utilities/cmlibuv/src/unix/darwin-proctitle.c
-@@ -30,7 +30,6 @@
-
- #if !TARGET_OS_IPHONE
- # include <CoreFoundation/CoreFoundation.h>
--# include <ApplicationServices/ApplicationServices.h>
- #endif
-
- #define S(s) pCFStringCreateWithCString(NULL, (s), kCFStringEncodingUTF8)
+ IF(0) # CMake does not build libarchive's command-line tools.
+ add_subdirectory(cat)
diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix b/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix
index 17362702e322..559a4c191b68 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/cmake/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, pkgconfig
+{ stdenv, lib, fetchurl, pkgconfig, fetchpatch
 , bzip2, curl, expat, libarchive, xz, zlib, libuv, rhash
 , buildPackages
 # darwin attributes
@@ -19,12 +19,12 @@ stdenv.mkDerivation rec {
           + lib.optionalString useNcurses "-cursesUI"
           + lib.optionalString withQt5 "-qt5UI"
           + lib.optionalString useQt4 "-qt4UI";
-  version = "3.17.2";
+  version = "3.18.2";
 
   src = fetchurl {
     url = "${meta.homepage}files/v${lib.versions.majorMinor version}/cmake-${version}.tar.gz";
     # compare with https://cmake.org/files/v${lib.versions.majorMinor version}/cmake-${version}-SHA-256.txt
-    sha256 = "199srp8yfai51pcbpmfyc4s8vzrmh2dm91bp582hj2l29x634xzw";
+    sha256 = "0zhxsnxm5d8wdarz2gs3r41r1dfrnh35ki75fa684gaxfzy40kjx";
   };
 
   patches = [
@@ -110,8 +110,17 @@ stdenv.mkDerivation rec {
   doCheck = false; # fails
 
   meta = with lib; {
-    homepage = "http://www.cmake.org/";
+    homepage = "https://cmake.org/";
+    changelog = "https://cmake.org/cmake/help/v${lib.versions.majorMinor version}/"
+      + "release/${lib.versions.majorMinor version}.html";
     description = "Cross-Platform Makefile Generator";
+    longDescription = ''
+      CMake is an open-source, cross-platform family of tools designed to
+      build, test and package software. CMake is used to control the software
+      compilation process using simple platform and compiler independent
+      configuration files, and generate native makefiles and workspaces that
+      can be used in the compiler environment of your choice.
+    '';
     platforms = if useQt4 then qt4.meta.platforms else platforms.all;
     maintainers = with maintainers; [ ttuegel lnl7 ];
     license = licenses.bsd3;
diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/libuv-application-services.patch b/nixpkgs/pkgs/development/tools/build-managers/cmake/libuv-application-services.patch
index eb3df1e4ff6a..6607a9c6ed1f 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/cmake/libuv-application-services.patch
+++ b/nixpkgs/pkgs/development/tools/build-managers/cmake/libuv-application-services.patch
@@ -1,7 +1,8 @@
-diff -ur cmake-3.12.1/Utilities/cmlibuv/CMakeLists.txt cmake-3.12.1-patched/Utilities/cmlibuv/CMakeLists.txt
---- cmake-3.12.1/Utilities/cmlibuv/CMakeLists.txt	2018-08-09 21:14:08.000000000 +0900
-+++ cmake-3.12.1-patched/Utilities/cmlibuv/CMakeLists.txt	2018-08-13 10:14:53.000000000 +0900
-@@ -173,6 +173,22 @@
+diff --git a/Utilities/cmlibuv/CMakeLists.txt b/Utilities/cmlibuv/CMakeLists.txt
+index 7625cf65d9..167903e309 100644
+--- a/Utilities/cmlibuv/CMakeLists.txt
++++ b/Utilities/cmlibuv/CMakeLists.txt
+@@ -193,6 +193,22 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
      src/unix/kqueue.c
      src/unix/proctitle.c
      )
@@ -24,9 +25,10 @@ diff -ur cmake-3.12.1/Utilities/cmlibuv/CMakeLists.txt cmake-3.12.1-patched/Util
  endif()
  
  if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-diff -ur cmake-3.12.1/Utilities/cmlibuv/src/unix/fsevents.c cmake-3.12.1-patched/Utilities/cmlibuv/src/unix/fsevents.c
---- cmake-3.12.1/Utilities/cmlibuv/src/unix/fsevents.c	2018-08-09 21:14:08.000000000 +0900
-+++ cmake-3.12.1-patched/Utilities/cmlibuv/src/unix/fsevents.c	2018-08-13 10:01:29.000000000 +0900
+diff --git a/Utilities/cmlibuv/src/unix/fsevents.c b/Utilities/cmlibuv/src/unix/fsevents.c
+index a51f29b3f6..3f6bf01968 100644
+--- a/Utilities/cmlibuv/src/unix/fsevents.c
++++ b/Utilities/cmlibuv/src/unix/fsevents.c
 @@ -21,7 +21,7 @@
  #include "uv.h"
  #include "internal.h"
@@ -35,17 +37,17 @@ diff -ur cmake-3.12.1/Utilities/cmlibuv/src/unix/fsevents.c cmake-3.12.1-patched
 +#if !HAVE_CORESERVICES_CORESERVICES_H || MAC_OS_X_VERSION_MAX_ALLOWED < 1070
  
  /* iOS (currently) doesn't provide the FSEvents-API (nor CoreServices) */
- 
-@@ -38,7 +38,7 @@
+ /* macOS prior to 10.7 doesn't provide the full FSEvents API so use kqueue */
+@@ -39,7 +39,7 @@ int uv__fsevents_close(uv_fs_event_t* handle) {
  void uv__fsevents_loop_delete(uv_loop_t* loop) {
  }
  
 -#else /* TARGET_OS_IPHONE */
 +#else /* !HAVE_CORESERVICES_CORESERVICES_H */
  
- #include <dlfcn.h>
- #include <assert.h>
-@@ -916,4 +916,4 @@
+ #include "darwin-stub.h"
+ 
+@@ -920,4 +920,4 @@ int uv__fsevents_close(uv_fs_event_t* handle) {
    return 0;
  }
  
diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/search-path.patch b/nixpkgs/pkgs/development/tools/build-managers/cmake/search-path.patch
index 2f5e4d62c86d..b71c2dd44416 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/cmake/search-path.patch
+++ b/nixpkgs/pkgs/development/tools/build-managers/cmake/search-path.patch
@@ -1,9 +1,10 @@
-diff -ur cmake-3.9.1/Modules/Platform/UnixPaths.cmake cmake-3.9.1-mod/Modules/Platform/UnixPaths.cmake
---- cmake-3.9.1/Modules/Platform/UnixPaths.cmake	2017-08-10 13:36:32.000000000 +0000
-+++ cmake-3.9.1-mod/Modules/Platform/UnixPaths.cmake	2017-09-03 01:24:31.901473539 +0000
-@@ -22,9 +22,6 @@
- # List common installation prefixes.  These will be used for all
- # search types.
+diff --git a/Modules/Platform/UnixPaths.cmake b/Modules/Platform/UnixPaths.cmake
+index b9381c3d7d..cecc40a89e 100644
+--- a/Modules/Platform/UnixPaths.cmake
++++ b/Modules/Platform/UnixPaths.cmake
+@@ -26,9 +26,6 @@ get_filename_component(_CMAKE_INSTALL_DIR "${_CMAKE_INSTALL_DIR}" PATH)
+ # please make sure to keep Help/variable/CMAKE_SYSTEM_PREFIX_PATH.rst
+ # synchronized
  list(APPEND CMAKE_SYSTEM_PREFIX_PATH
 -  # Standard
 -  /usr/local /usr /
@@ -11,7 +12,7 @@ diff -ur cmake-3.9.1/Modules/Platform/UnixPaths.cmake cmake-3.9.1-mod/Modules/Pl
    # CMake install location
    "${_CMAKE_INSTALL_DIR}"
    )
-@@ -43,31 +40,26 @@
+@@ -47,24 +44,19 @@ endif()
  
  # Non "standard" but common install prefixes
  list(APPEND CMAKE_SYSTEM_PREFIX_PATH
@@ -39,12 +40,7 @@ diff -ur cmake-3.9.1/Modules/Platform/UnixPaths.cmake cmake-3.9.1-mod/Modules/Pl
    )
  
  if(CMAKE_SYSROOT_COMPILE)
-   set(_cmake_sysroot_compile "${CMAKE_SYSROOT_COMPILE}")
- else()
-   set(_cmake_sysroot_compile "${CMAKE_SYSROOT}")
- endif()
- 
- # Default per-language values.  These may be later replaced after
+@@ -77,15 +69,15 @@ endif()
  # parsing the implicit directory information from compiler output.
  set(_CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES_INIT
    ${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES}
@@ -62,11 +58,12 @@ diff -ur cmake-3.9.1/Modules/Platform/UnixPaths.cmake cmake-3.9.1-mod/Modules/Pl
 +  @libc_dev@/include
    )
  
- # Enable use of lib32 and lib64 search path variants by default.
-diff -ur cmake-3.9.1/Modules/Platform/WindowsPaths.cmake cmake-3.9.1-mod/Modules/Platform/WindowsPaths.cmake
---- cmake-3.9.1/Modules/Platform/WindowsPaths.cmake	2017-08-10 13:36:32.000000000 +0000
-+++ cmake-3.9.1-mod/Modules/Platform/WindowsPaths.cmake	2017-09-03 01:19:32.808355986 +0000
-@@ -66,7 +66,7 @@
+ unset(_cmake_sysroot_compile)
+diff --git a/Modules/Platform/WindowsPaths.cmake b/Modules/Platform/WindowsPaths.cmake
+index b9e2f17979..ab517cd4a7 100644
+--- a/Modules/Platform/WindowsPaths.cmake
++++ b/Modules/Platform/WindowsPaths.cmake
+@@ -70,7 +70,7 @@ endif()
  
  if(CMAKE_CROSSCOMPILING AND NOT CMAKE_HOST_SYSTEM_NAME MATCHES "Windows")
    # MinGW (useful when cross compiling from linux with CMAKE_FIND_ROOT_PATH set)
diff --git a/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh b/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh
index 87bbefa6bbfa..0bb695615fce 100755
--- a/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh
+++ b/nixpkgs/pkgs/development/tools/build-managers/cmake/setup-hook.sh
@@ -48,7 +48,7 @@ cmakeConfigurePhase() {
 
     # on macOS we want to prefer Unix-style headers to Frameworks
     # because we usually do not package the framework
-    cmakeFlags="-DCMAKE_FIND_FRAMEWORK=last $cmakeFlags"
+    cmakeFlags="-DCMAKE_FIND_FRAMEWORK=LAST $cmakeFlags"
 
     # on macOS i686 was only relevant for 10.5 or earlier.
     cmakeFlags="-DCMAKE_OSX_ARCHITECTURES=x86_64 $cmakeFlags"
@@ -68,6 +68,24 @@ cmakeConfigurePhase() {
     # nix/store directory.
     cmakeFlags="-DCMAKE_INSTALL_NAME_DIR=${!outputLib}/lib $cmakeFlags"
 
+    # The docdir flag needs to include PROJECT_NAME as per GNU guidelines,
+    # try to extract it from CMakeLists.txt.
+    if [[ -z "$shareDocName" ]]; then
+        local cmakeLists="${cmakeDir}/CMakeLists.txt"
+        if [[ -f "$cmakeLists" ]]; then
+            local shareDocName="$(grep --only-matching --perl-regexp --ignore-case '\bproject\s*\(\s*"?\K([^[:space:]")]+)' < "$cmakeLists" | head -n1)"
+        fi
+        # The argument sometimes contains garbage or variable interpolation.
+        # When that is the case, let’s fall back to the derivation name.
+        if [[ -z "$shareDocName" ]] || echo "$shareDocName" | grep -q '[^a-zA-Z0-9_+-]'; then
+            if [[ -n "${pname-}" ]]; then
+                shareDocName="$pname"
+            else
+                shareDocName="$(echo "$name" | sed 's/-[^a-zA-Z].*//')"
+            fi
+        fi
+    fi
+
     # This ensures correct paths with multiple output derivations
     # It requires the project to use variables from GNUInstallDirs module
     # https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html
diff --git a/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix b/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix
index d7aec3527b3b..e09277e498d2 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/conan/default.nix
@@ -1,4 +1,4 @@
-{ lib, python3, git, pkgconfig }:
+{ lib, python3, fetchFromGitHub, git, pkgconfig }:
 
 # Note:
 # Conan has specific dependency demands; check
@@ -39,12 +39,14 @@ let newPython = python3.override {
 };
 
 in newPython.pkgs.buildPythonApplication rec {
-  version = "1.25.0";
+  version = "1.27.0";
   pname = "conan";
 
-  src = newPython.pkgs.fetchPypi {
-    inherit pname version;
-    sha256 = "1wgmx6s4h5m6zixb3wlaicy56rsqcy2srzmvii80xdx9g5wvi9pv";
+  src = fetchFromGitHub {
+    owner = "conan-io";
+    repo = "conan";
+    rev = version;
+    sha256 = "0ncqs1p4g23fmzgdmwppgxr8w275h38hgjdzs456cgivz8xs9rjl";
   };
 
   propagatedBuildInputs = with newPython.pkgs; [
@@ -75,23 +77,20 @@ in newPython.pkgs.buildPythonApplication rec {
   ] ++ (with newPython.pkgs; [
     codecov
     mock
-    pytest
-    node-semver
     nose
     parameterized
     webtest
   ]);
 
-  # Conan 1.14.0 has removed all tests from the Pypi source dist:
-  #     https://github.com/conan-io/conan/pull/4713
-  # We have recommended they be added back:
-  #     https://github.com/conan-io/conan/issues/4563#issuecomment-602225083
+  # TODO: reenable tests now that we fetch tests w/ the source from GitHub.
+  # Not enabled right now due to time constraints/failing tests that I didn't have time to track down
   doCheck = false;
 
   postPatch = ''
     substituteInPlace conans/requirements.txt \
       --replace "PyYAML>=3.11, <3.14.0" "PyYAML" \
-      --replace "deprecation>=2.0, <2.1" "deprecation"
+      --replace "deprecation>=2.0, <2.1" "deprecation" \
+      --replace "six>=1.10.0,<=1.14.0" "six"
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/build-managers/fac/cargo-lock.patch b/nixpkgs/pkgs/development/tools/build-managers/fac/cargo-lock.patch
new file mode 100644
index 000000000000..86768d4611e3
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/build-managers/fac/cargo-lock.patch
@@ -0,0 +1,802 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..4ab2c17
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,796 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "ahash"
++version = "0.3.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e8fd72866655d1904d6b0997d0b07ba561047d070fbe29de039031c641b61217"
++
++[[package]]
++name = "aho-corasick"
++version = "0.7.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
++dependencies = [
++ "memchr",
++]
++
++[[package]]
++name = "ansi_term"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
++dependencies = [
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "atty"
++version = "0.2.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
++dependencies = [
++ "hermit-abi",
++ "libc",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "autocfg"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
++
++[[package]]
++name = "bigbro"
++version = "0.5.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3eaac07a3e62cd31e2102ca97c7fdf20002893ba2a396d29ea4710d2415cdce5"
++dependencies = [
++ "libc",
++ "seccomp-droundy",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++
++[[package]]
++name = "cc"
++version = "1.0.59"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "66120af515773fb005778dc07c261bd201ec8ce50bd6e7144c927753fe013381"
++
++[[package]]
++name = "cfg-if"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
++
++[[package]]
++name = "clap"
++version = "2.33.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
++dependencies = [
++ "ansi_term",
++ "atty",
++ "bitflags",
++ "strsim",
++ "textwrap",
++ "unicode-width",
++ "vec_map",
++]
++
++[[package]]
++name = "crude-profiler"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9389510ac716b6ace8c4b635420cf023e12c81b61e933bfef06639142f149ecd"
++dependencies = [
++ "lazy_static 0.2.11",
++]
++
++[[package]]
++name = "ctrlc"
++version = "3.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d0b676fa23f995faf587496dcd1c80fead847ed58d2da52ac1caca9a72790dd2"
++dependencies = [
++ "nix",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "either"
++version = "1.6.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cd56b59865bce947ac5958779cfa508f6c3b9497cc762b7e24a12d11ccde2c4f"
++
++[[package]]
++name = "env_logger"
++version = "0.7.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
++dependencies = [
++ "log",
++ "regex",
++]
++
++[[package]]
++name = "fac"
++version = "0.5.3"
++dependencies = [
++ "atty",
++ "bigbro",
++ "clap",
++ "crude-profiler",
++ "ctrlc",
++ "git-version",
++ "internment",
++ "lazy_static 1.4.0",
++ "libc",
++ "metrohash",
++ "notify",
++ "num_cpus",
++ "pathdiff",
++ "quickcheck",
++ "termcolor",
++ "tinyset",
++]
++
++[[package]]
++name = "filetime"
++version = "0.2.12"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3ed85775dcc68644b5c950ac06a2b23768d3bc9390464151aaf27136998dcf9e"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "redox_syscall",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "fsevent"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5ab7d1bd1bd33cc98b0889831b72da23c0aa4df9cec7e0702f46ecea04b35db6"
++dependencies = [
++ "bitflags",
++ "fsevent-sys",
++]
++
++[[package]]
++name = "fsevent-sys"
++version = "2.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f41b048a94555da0f42f1d632e2e19510084fb8e303b0daa2816e733fb3644a0"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "fuchsia-zircon"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
++dependencies = [
++ "bitflags",
++ "fuchsia-zircon-sys",
++]
++
++[[package]]
++name = "fuchsia-zircon-sys"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
++
++[[package]]
++name = "gcc"
++version = "0.3.55"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
++
++[[package]]
++name = "getrandom"
++version = "0.1.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "wasi",
++]
++
++[[package]]
++name = "git-version"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "94918e83f1e01dedc2e361d00ce9487b14c58c7f40bab148026fa39d42cb41e2"
++dependencies = [
++ "git-version-macro",
++ "proc-macro-hack",
++]
++
++[[package]]
++name = "git-version-macro"
++version = "0.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "34a97a52fdee1870a34fa6e4b77570cba531b27d1838874fef4429a791a3d657"
++dependencies = [
++ "proc-macro-hack",
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "hashbrown"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e91b62f79061a0bc2e046024cb7ba44b08419ed238ecbd9adbd787434b9e8c25"
++dependencies = [
++ "ahash",
++ "autocfg",
++]
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "inotify"
++version = "0.7.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4816c66d2c8ae673df83366c18341538f234a26d65a9ecea5c348b453ac1d02f"
++dependencies = [
++ "bitflags",
++ "inotify-sys",
++ "libc",
++]
++
++[[package]]
++name = "inotify-sys"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e74a1aa87c59aeff6ef2cc2fa62d41bc43f54952f55652656b18a02fd5e356c0"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "internment"
++version = "0.3.13"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7e5cba670f596a69e619cb796bcf609cb32c0ba4415d1e809104b8b832130d79"
++dependencies = [
++ "hashbrown",
++ "lazy_static 1.4.0",
++ "serde",
++ "state",
++ "tinyset",
++]
++
++[[package]]
++name = "iovec"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "itertools"
++version = "0.9.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
++dependencies = [
++ "either",
++]
++
++[[package]]
++name = "kernel32-sys"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
++dependencies = [
++ "winapi 0.2.8",
++ "winapi-build",
++]
++
++[[package]]
++name = "lazy_static"
++version = "0.2.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73"
++
++[[package]]
++name = "lazy_static"
++version = "1.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
++
++[[package]]
++name = "lazycell"
++version = "1.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55"
++
++[[package]]
++name = "libc"
++version = "0.2.77"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f2f96b10ec2560088a8e76961b00d47107b3a625fecb76dedb29ee7ccbf98235"
++
++[[package]]
++name = "log"
++version = "0.4.11"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
++dependencies = [
++ "cfg-if",
++]
++
++[[package]]
++name = "memchr"
++version = "2.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
++
++[[package]]
++name = "metrohash"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3ba553cb19e2acbc54baa16faef215126243fe45e53357a3b2e9f4ebc7b0506c"
++
++[[package]]
++name = "mio"
++version = "0.6.22"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430"
++dependencies = [
++ "cfg-if",
++ "fuchsia-zircon",
++ "fuchsia-zircon-sys",
++ "iovec",
++ "kernel32-sys",
++ "libc",
++ "log",
++ "miow",
++ "net2",
++ "slab",
++ "winapi 0.2.8",
++]
++
++[[package]]
++name = "mio-extras"
++version = "2.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "52403fe290012ce777c4626790c8951324a2b9e3316b3143779c72b029742f19"
++dependencies = [
++ "lazycell",
++ "log",
++ "mio",
++ "slab",
++]
++
++[[package]]
++name = "miow"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
++dependencies = [
++ "kernel32-sys",
++ "net2",
++ "winapi 0.2.8",
++ "ws2_32-sys",
++]
++
++[[package]]
++name = "net2"
++version = "0.2.35"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3ebc3ec692ed7c9a255596c67808dee269f64655d8baf7b4f0638e51ba1d6853"
++dependencies = [
++ "cfg-if",
++ "libc",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "nix"
++version = "0.17.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "50e4785f2c3b7589a0d0c1dd60285e1188adac4006e8abd6dd578e1567027363"
++dependencies = [
++ "bitflags",
++ "cc",
++ "cfg-if",
++ "libc",
++ "void",
++]
++
++[[package]]
++name = "notify"
++version = "4.0.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "80ae4a7688d1fab81c5bf19c64fc8db920be8d519ce6336ed4e7efe024724dbd"
++dependencies = [
++ "bitflags",
++ "filetime",
++ "fsevent",
++ "fsevent-sys",
++ "inotify",
++ "libc",
++ "mio",
++ "mio-extras",
++ "walkdir",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "num_cpus"
++version = "1.13.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
++dependencies = [
++ "hermit-abi",
++ "libc",
++]
++
++[[package]]
++name = "pathdiff"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "877630b3de15c0b64cc52f659345724fbf6bdad9bd9566699fc53688f3c34a34"
++
++[[package]]
++name = "pkg-config"
++version = "0.3.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
++
++[[package]]
++name = "ppv-lite86"
++version = "0.2.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20"
++
++[[package]]
++name = "proc-macro-hack"
++version = "0.5.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.21"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "36e28516df94f3dd551a587da5357459d9b36d945a7c37c3557928c1c2ff2a2c"
++dependencies = [
++ "unicode-xid",
++]
++
++[[package]]
++name = "quickcheck"
++version = "0.9.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a44883e74aa97ad63db83c4bf8ca490f02b2fc02f92575e720c8551e843c945f"
++dependencies = [
++ "env_logger",
++ "log",
++ "rand",
++ "rand_core",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
++dependencies = [
++ "proc-macro2",
++]
++
++[[package]]
++name = "rand"
++version = "0.7.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
++dependencies = [
++ "getrandom",
++ "libc",
++ "rand_chacha",
++ "rand_core",
++ "rand_hc",
++]
++
++[[package]]
++name = "rand_chacha"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
++dependencies = [
++ "ppv-lite86",
++ "rand_core",
++]
++
++[[package]]
++name = "rand_core"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
++dependencies = [
++ "getrandom",
++]
++
++[[package]]
++name = "rand_hc"
++version = "0.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
++dependencies = [
++ "rand_core",
++]
++
++[[package]]
++name = "redox_syscall"
++version = "0.1.57"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
++
++[[package]]
++name = "regex"
++version = "1.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
++dependencies = [
++ "aho-corasick",
++ "memchr",
++ "regex-syntax",
++ "thread_local 1.0.1",
++]
++
++[[package]]
++name = "regex-syntax"
++version = "0.6.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
++
++[[package]]
++name = "same-file"
++version = "1.0.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
++dependencies = [
++ "winapi-util",
++]
++
++[[package]]
++name = "seccomp-droundy"
++version = "0.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d4b762ab71c6bf1a9a3e0b21e8600b73b088f2a6562e03cd77b2826821fae5f8"
++dependencies = [
++ "libc",
++ "seccomp-droundy-sys",
++]
++
++[[package]]
++name = "seccomp-droundy-sys"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "200976cc4ff22cd8b9c6c23681fe6aa89a12aa3637c86dd16e44c05d7c373488"
++dependencies = [
++ "gcc",
++ "libc",
++ "pkg-config",
++]
++
++[[package]]
++name = "serde"
++version = "1.0.115"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5"
++
++[[package]]
++name = "slab"
++version = "0.4.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
++
++[[package]]
++name = "state"
++version = "0.4.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7345c971d1ef21ffdbd103a75990a15eb03604fc8b8852ca8cb418ee1a099028"
++dependencies = [
++ "thread_local 0.3.3",
++]
++
++[[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.40"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "963f7d3cc59b59b9325165add223142bbf1df27655d07789f109896d353d8350"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-xid",
++]
++
++[[package]]
++name = "termcolor"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
++dependencies = [
++ "winapi-util",
++]
++
++[[package]]
++name = "textwrap"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
++dependencies = [
++ "unicode-width",
++]
++
++[[package]]
++name = "thread-id"
++version = "3.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1"
++dependencies = [
++ "libc",
++ "redox_syscall",
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "thread_local"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c85048c6260d17cf486ceae3282d9fb6b90be220bf5b28c400f5485ffc29f0c7"
++dependencies = [
++ "thread-id",
++ "unreachable",
++]
++
++[[package]]
++name = "thread_local"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
++dependencies = [
++ "lazy_static 1.4.0",
++]
++
++[[package]]
++name = "tinyset"
++version = "0.4.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "784f540960a63144d63992caf430ed87e39d920f2c474cb8ac586ff31fb861fc"
++dependencies = [
++ "itertools",
++ "rand",
++]
++
++[[package]]
++name = "unicode-width"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
++
++[[package]]
++name = "unicode-xid"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
++
++[[package]]
++name = "unreachable"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1f2ae5ddb18e1c92664717616dd9549dde73f539f01bd7b77c2edb2446bdff91"
++dependencies = [
++ "void",
++]
++
++[[package]]
++name = "vec_map"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
++
++[[package]]
++name = "void"
++version = "1.0.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
++
++[[package]]
++name = "walkdir"
++version = "2.3.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
++dependencies = [
++ "same-file",
++ "winapi 0.3.9",
++ "winapi-util",
++]
++
++[[package]]
++name = "wasi"
++version = "0.9.0+wasi-snapshot-preview1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
++
++[[package]]
++name = "winapi"
++version = "0.2.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
++
++[[package]]
++name = "winapi"
++version = "0.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
++dependencies = [
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
++]
++
++[[package]]
++name = "winapi-build"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++
++[[package]]
++name = "winapi-util"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
++dependencies = [
++ "winapi 0.3.9",
++]
++
++[[package]]
++name = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++
++[[package]]
++name = "ws2_32-sys"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
++dependencies = [
++ "winapi 0.2.8",
++ "winapi-build",
++]
diff --git a/nixpkgs/pkgs/development/tools/build-managers/fac/default.nix b/nixpkgs/pkgs/development/tools/build-managers/fac/default.nix
new file mode 100644
index 000000000000..8c41eb3ac51a
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/build-managers/fac/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, git, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "fac-build";
+  version = "0.5.3";
+
+  src = fetchFromGitHub {
+    owner = "droundy";
+    repo = "fac";
+    rev = version;
+    sha256 = "1gifrlb31jy8633rnhny58ccp3wlmd338129c6sh0h1a38vkmsxk";
+  };
+
+  # workaround for missing Cargo.lock file
+  cargoPatches = [ ./cargo-lock.patch ];
+
+  cargoSha256 = "0hjfq61y1ikdcajr2k514k7fad2zxbwq7yb5nk1wx38f1524709q";
+
+  # fac includes a unit test called ls_files_works which assumes it's
+  # running in a git repo. Nix's sandbox runs cargo build outside git,
+  # so this test won't work.
+  checkFlagsArray = [ "--skip=ls_files_works" ];
+
+  # fac calls git at runtime, expecting it to be in the PATH,
+  # so we need to patch it to call git by absolute path instead.
+  postPatch = ''
+    substituteInPlace src/git.rs \
+        --replace 'std::process::Command::new("git")' \
+        'std::process::Command::new("${git}/bin/git")'
+  '';
+
+  meta = with stdenv.lib; {
+    description = ''
+      A build system that uses ptrace to handle dependencies automatically
+    '';
+    longDescription = ''
+      Fac is a general-purpose build system inspired by make that utilizes
+      ptrace to ensure that all dependences are enumerated and that all
+      source files are added to a (git) repo. An important feature of fac
+      is that it automatically handles dependencies, rather than either
+      complaining about them or giving an incorrect build. Currently, fac
+      only runs on linux systems, but on those systems it is incredibly
+      easy to use!
+    '';
+    homepage = "https://physics.oregonstate.edu/~roundyd/fac";
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.dpercy ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/build-managers/gnumake/default.nix b/nixpkgs/pkgs/development/tools/build-managers/gnumake/default.nix
new file mode 100644
index 000000000000..f01f38ecd233
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/build-managers/gnumake/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, fetchurl, guileSupport ? false, pkgconfig ? null , guile ? null }:
+
+assert guileSupport -> ( pkgconfig != null && guile != null );
+
+let
+  version = "4.3";
+in
+stdenv.mkDerivation {
+  pname = "gnumake";
+  inherit version;
+
+  src = fetchurl {
+    url = "mirror://gnu/make/make-${version}.tar.gz";
+    sha256 = "06cfqzpqsvdnsxbysl5p2fgdgxgl9y4p7scpnrfa8z2zgkjdspz0";
+  };
+
+  patches = [
+    # Purity: don't look for library dependencies (of the form `-lfoo') in /lib
+    # and /usr/lib. It's a stupid feature anyway. Likewise, when searching for
+    # included Makefiles, don't look in /usr/include and friends.
+    ./impure-dirs.patch
+  ];
+
+  nativeBuildInputs = stdenv.lib.optionals guileSupport [ pkgconfig ];
+  buildInputs = stdenv.lib.optionals guileSupport [ guile ];
+
+  configureFlags = stdenv.lib.optional guileSupport "--with-guile"
+
+    # Make uses this test to decide whether it should keep track of
+    # subseconds. Apple made this possible with APFS and macOS 10.13.
+    # However, we still support macOS 10.11 and 10.12. Binaries built
+    # in Nixpkgs will be unable to use futimens to set mtime less than
+    # a second. So, tell Make to ignore nanoseconds in mtime here by
+    # overriding the autoconf test for the struct.
+    # See https://github.com/NixOS/nixpkgs/issues/51221 for discussion.
+    ++ stdenv.lib.optional stdenv.isDarwin "ac_cv_struct_st_mtim_nsec=no";
+
+  outputs = [ "out" "man" "info" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://www.gnu.org/software/make/";
+    description = "A tool to control the generation of non-source files from sources";
+    license = licenses.gpl3Plus;
+
+    longDescription = ''
+      Make is a tool which controls the generation of executables and
+      other non-source files of a program from the program's source files.
+
+      Make gets its knowledge of how to build your program from a file
+      called the makefile, which lists each of the non-source files and
+      how to compute it from other files. When you write a program, you
+      should write a makefile for it, so that it is possible to use Make
+      to build and install the program.
+    '';
+
+    platforms = platforms.all;
+    maintainers = [ maintainers.vrthra ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/build-managers/gnumake/impure-dirs.patch b/nixpkgs/pkgs/development/tools/build-managers/gnumake/impure-dirs.patch
new file mode 100644
index 000000000000..6c7d9d2463c3
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/build-managers/gnumake/impure-dirs.patch
@@ -0,0 +1,25 @@
+diff -Naur a/src/read.c b/src/read.c
+--- a/src/read.c
++++ b/src/read.c
+@@ -109,9 +109,6 @@
+ #endif
+     INCLUDEDIR,
+ #ifndef _AMIGA
+-    "/usr/gnu/include",
+-    "/usr/local/include",
+-    "/usr/include",
+ #endif
+     0
+   };
+diff -Naur a/src/remake.c b/src/remake.c
+--- a/src/remake.c
++++ b/src/remake.c
+@@ -1601,8 +1601,6 @@
+   static const char *dirs[] =
+     {
+ #ifndef _AMIGA
+-      "/lib",
+-      "/usr/lib",
+ #endif
+ #if defined(WINDOWS32) && !defined(LIBDIR)
+ /*
diff --git a/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix b/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix
index b5215611c0c3..73e9bc7b5601 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/gradle/default.nix
@@ -51,14 +51,24 @@ rec {
     };
   };
 
-  gradle_latest = gradle_5_6;
+  gradle_latest = gradle_6_6;
+
+  gradle_6_6 = gradleGen rec {
+    name = "gradle-6.6";
+    nativeVersion = "0.22-milestone-4";
+
+    src = fetchurl {
+      url = "https://services.gradle.org/distributions/${name}-bin.zip";
+      sha256 = "09a0fnz6fn8yaxm3q3iwyjm3nnaz7k8i1xlpc7sm414py043by76";
+    };
+  };
 
   gradle_5_6 = gradleGen rec {
     name = "gradle-5.6.4";
     nativeVersion = "0.18";
 
     src = fetchurl {
-      url = "http://services.gradle.org/distributions/${name}-bin.zip";
+      url = "https://services.gradle.org/distributions/${name}-bin.zip";
       sha256 = "1f3067073041bc44554d0efe5d402a33bc3d3c93cc39ab684f308586d732a80d";
     };
   };
@@ -68,7 +78,7 @@ rec {
     nativeVersion = "0.14";
 
     src = fetchurl {
-      url = "http://services.gradle.org/distributions/${name}-bin.zip";
+      url = "https://services.gradle.org/distributions/${name}-bin.zip";
       sha256 = "0vhqxnk0yj3q9jam5w4kpia70i4h0q4pjxxqwynh3qml0vrcn9l6";
     };
   };
diff --git a/nixpkgs/pkgs/development/tools/build-managers/mage/default.nix b/nixpkgs/pkgs/development/tools/build-managers/mage/default.nix
index ed145d38c7f7..6c9d8bfc8385 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/mage/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/mage/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "mage";
-  version = "1.9.0";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "magefile";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0lazf4r5ps1s04pvz608qaxbrbc6dv0j99n39iv42zwxxh0mbd0p";
+    sha256 = "0c77xgz2bz4j9sh9v7f49iqyamc4lvvldcmn6v50hk98s9193gbf";
   };
 
   vendorSha256 = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
 
+  doCheck = false;
+
   buildFlagsArray = [
     "-ldflags="
     "-X github.com/magefile/mage/mage.commitHash=v${version}"
@@ -25,6 +27,5 @@ buildGoModule rec {
     homepage = "https://magefile.org/";
     license = licenses.asl20;
     maintainers = with maintainers; [ swdunlop ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch
index bd81efd52085..e5ac95d0b9dc 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch
+++ b/nixpkgs/pkgs/development/tools/build-managers/meson/allow-dirs-outside-of-prefix.patch
@@ -1,6 +1,6 @@
 --- a/mesonbuild/coredata.py
 +++ b/mesonbuild/coredata.py
-@@ -483,7 +483,6 @@ class CoreData:
+@@ -491,7 +491,6 @@ class CoreData:
              return value
          if option.endswith('dir') and value.is_absolute() and \
             option not in builtin_dir_noprefix_options:
@@ -8,7 +8,7 @@
              # commonpath will always return a path in the native format, so we
              # must use pathlib.PurePath to do the same conversion before
              # comparing.
-@@ -495,7 +494,7 @@ class CoreData:
+@@ -503,7 +502,7 @@ class CoreData:
              try:
                  value = value.relative_to(prefix)
              except ValueError:
diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch
new file mode 100644
index 000000000000..f1e3c76e8b53
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/build-managers/meson/clear-old-rpath.patch
@@ -0,0 +1,20 @@
+diff --git a/mesonbuild/scripts/depfixer.py b/mesonbuild/scripts/depfixer.py
+index 4176b9a03..faaabf616 100644
+--- a/mesonbuild/scripts/depfixer.py
++++ b/mesonbuild/scripts/depfixer.py
+@@ -336,6 +336,15 @@ class Elf(DataSizes):
+         if not new_rpath:
+             self.remove_rpath_entry(entrynum)
+         else:
++            # Clear old rpath to avoid stale references,
++            # not heeding the warning above about de-duplication
++            # since it does not seem to cause issues for us
++            # and not doing so trips up Nix’s reference checker.
++            # See https://github.com/NixOS/nixpkgs/pull/46020
++            # and https://github.com/NixOS/nixpkgs/issues/95163
++            self.bf.seek(rp_off)
++            self.bf.write(b'\0'*len(old_rpath))
++
+             self.bf.seek(rp_off)
+             self.bf.write(new_rpath)
+             self.bf.write(b'\0')
diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix b/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix
index 5b1266da3823..aa11ba7638bb 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/meson/default.nix
@@ -1,33 +1,29 @@
 { lib
-, python3Packages
+, python3
 , stdenv
 , writeTextDir
 , substituteAll
 , pkgsHostHost
+, fetchpatch
 }:
 
-python3Packages.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "meson";
-  version = "0.54.2";
+  version = "0.55.1";
 
-  src = python3Packages.fetchPypi {
+  src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "0m84zb0q67vnxmd6ldz477w6yjdnk9c44xhlwh1g1pzqx3m6wwd7";
+    sha256 = "O1dB+ITgSSi9+hlHRn/wavpsmOYjwlzvda33HKOc4IA=";
   };
 
-  postFixup = ''
-    pushd $out/bin
-    # undo shell wrapper as meson tools are called with python
-    for i in *; do
-      mv ".$i-wrapped" "$i"
-    done
-    popd
-
-    # Do not propagate Python
-    rm $out/nix-support/propagated-build-inputs
-  '';
-
   patches = [
+    # Meson 0.55.0 incorrectly considers skipped tests as failures,
+    # which makes some packages like gjs fail to build.
+    (fetchpatch {
+      url = "https://github.com/mesonbuild/meson/commit/7db49db67d4aa7582cf46feb7157235e66aa95b1.diff";
+      sha256 = "1chq52sgk24afdlswssr8n8p6fa2wz8rjlxvkjhpqg1kg3qnqc9p";
+    })
+
     # Upstream insists on not allowing bindir and other dir options
     # outside of prefix for some reason:
     # https://github.com/mesonbuild/meson/issues/2561
@@ -55,6 +51,14 @@ python3Packages.buildPythonApplication rec {
       src = ./fix-rpath.patch;
       inherit (builtins) storeDir;
     })
+
+    # When Meson removes build_rpath from DT_RUNPATH entry, it just writes
+    # the shorter NUL-terminated new rpath over the old one to reduce
+    # the risk of potentially breaking the ELF files.
+    # But this can cause much bigger problem for Nix as it can produce
+    # cut-in-half-by-\0 store path references.
+    # Let’s just clear the whole rpath and hope for the best.
+    ./clear-old-rpath.patch
   ];
 
   setupHook = ./setup-hook.sh;
@@ -68,6 +72,18 @@ python3Packages.buildPythonApplication rec {
   # checkInputs = [ ninja pkgconfig ];
   # checkPhase = "python ./run_project_tests.py";
 
+  postFixup = ''
+    pushd $out/bin
+    # undo shell wrapper as meson tools are called with python
+    for i in *; do
+      mv ".$i-wrapped" "$i"
+    done
+    popd
+
+    # Do not propagate Python
+    rm $out/nix-support/propagated-build-inputs
+  '';
+
   meta = with lib; {
     homepage = "https://mesonbuild.com";
     description = "SCons-like build system that use python as a front-end language and Ninja as a building backend";
diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/fix-rpath.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/fix-rpath.patch
index 6cf7afc2bdf3..d34b6c4c4345 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/meson/fix-rpath.patch
+++ b/nixpkgs/pkgs/development/tools/build-managers/meson/fix-rpath.patch
@@ -1,56 +1,24 @@
---- a/mesonbuild/linkers.py
-+++ b/mesonbuild/linkers.py
-@@ -527,8 +527,10 @@ class GnuLikeDynamicLinkerMixin:
-         # In order to avoid relinking for RPATH removal, the binary needs to contain just
-         # enough space in the ELF header to hold the final installation RPATH.
-         paths = ':'.join(all_paths)
--        if len(paths) < len(install_rpath):
--            padding = 'X' * (len(install_rpath) - len(paths))
-+        store_paths = ':'.join(filter(lambda path: path.startswith('@storeDir@'), all_paths))
-+        extra_space_needed = len(install_rpath + (':' if install_rpath and store_paths else '') + store_paths) - len(paths)
-+        if extra_space_needed > 0:
-+            padding = 'X' * extra_space_needed
-             if not paths:
-                 paths = padding
-             else:
-@@ -902,8 +904,10 @@ class SolarisDynamicLinker(PosixDynamicLinkerMixin, DynamicLinker):
-         # In order to avoid relinking for RPATH removal, the binary needs to contain just
-         # enough space in the ELF header to hold the final installation RPATH.
-         paths = ':'.join(all_paths)
--        if len(paths) < len(install_rpath):
--            padding = 'X' * (len(install_rpath) - len(paths))
-+        store_paths = ':'.join(filter(lambda path: path.startswith('@storeDir@'), all_paths))
-+        extra_space_needed = len(install_rpath + (':' if install_rpath and store_paths else '') + store_paths) - len(paths)
-+        if extra_space_needed > 0:
-+            padding = 'X' * extra_space_needed
-             if not paths:
-                 paths = padding
-             else:
---- a/mesonbuild/scripts/depfixer.py
-+++ b/mesonbuild/scripts/depfixer.py
-@@ -303,6 +303,14 @@ class Elf(DataSizes):
-             return
-         self.bf.seek(rp_off)
-         old_rpath = self.read_str()
+--- a/mesonbuild/backend/backends.py
++++ b/mesonbuild/backend/backends.py
+@@ -456,6 +456,21 @@ class Backend:
+                 args.extend(self.environment.coredata.get_external_link_args(target.for_machine, lang))
+             except Exception:
+                 pass
 +
-+        if new_rpath:
-+            new_rpath += b':'
-+        else:
-+            new_rpath = b''
++        nix_ldflags = os.environ.get('NIX_LDFLAGS', '').split()
++        next_is_path = False
++        # Try to add rpaths set by user or ld-wrapper so that they are not removed.
++        # Based on https://github.com/NixOS/nixpkgs/blob/69711a2f5ffe8cda208163be5258266172ff527f/pkgs/build-support/bintools-wrapper/ld-wrapper.sh#L148-L177
++        for flag in nix_ldflags:
++            if flag == '-rpath' or flag == '-L':
++                next_is_path = True
++            elif next_is_path or flag.startswith('-L/'):
++                if flag.startswith('-L/'):
++                    flag = flag[2:]
++                if flag.startswith('@storeDir@'):
++                    dirs.add(flag)
++                next_is_path = False
 +
-+        new_rpath += b':'.join(filter(lambda path: path.startswith(b'@storeDir@'), old_rpath.split(b':')))
-+
-         if len(old_rpath) < len(new_rpath):
-             sys.exit("New rpath must not be longer than the old one.")
-         # The linker does read-only string deduplication. If there is a
-@@ -316,6 +324,10 @@ class Elf(DataSizes):
-         if not new_rpath:
-             self.remove_rpath_entry(entrynum)
-         else:
-+            # clean old rpath to avoid stale references
-+            # (see https://github.com/NixOS/nixpkgs/pull/46020)
-+            self.bf.seek(rp_off)
-+            self.bf.write(b'\0'*len(old_rpath))
-             self.bf.seek(rp_off)
-             self.bf.write(new_rpath)
-             self.bf.write(b'\0')
+         # Match rpath formats:
+         # -Wl,-rpath=
+         # -Wl,-rpath,
diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch
index e59795486aa8..0c924bacf73f 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch
+++ b/nixpkgs/pkgs/development/tools/build-managers/meson/gir-fallback-path.patch
@@ -1,8 +1,8 @@
 --- a/mesonbuild/modules/gnome.py
 +++ b/mesonbuild/modules/gnome.py
-@@ -801,6 +801,13 @@ class GnomeModule(ExtensionModule):
-             scan_command += ['--sources-top-dirs', os.path.join(state.environment.get_source_dir(), self.interpreter.subproject_dir, state.subproject)]
-             scan_command += ['--sources-top-dirs', os.path.join(state.environment.get_build_dir(), self.interpreter.subproject_dir, state.subproject)]
+@@ -807,6 +807,13 @@ class GnomeModule(ExtensionModule):
+         if fatal_warnings:
+             scan_command.append('--warn-error')
  
 +        if len(set([girtarget.get_custom_install_dir()[0] for girtarget in girtargets])) > 1:
 +            raise MesonException('generate_gir tries to build multiple libraries with different install_dir at once: {}'.format(','.join([str(girtarget) for girtarget in girtargets])))
diff --git a/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch b/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch
index 6326f5ec3cfb..ada58fff6d41 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch
+++ b/nixpkgs/pkgs/development/tools/build-managers/meson/more-env-vars.patch
@@ -1,8 +1,8 @@
 diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
-index 17058df6b..7a68b7f15 100644
+index 219b62ec8..e3ceaddbd 100644
 --- a/mesonbuild/envconfig.py
 +++ b/mesonbuild/envconfig.py
-@@ -120,7 +120,7 @@ def get_env_var_pair(for_machine: MachineChoice,
+@@ -94,7 +94,7 @@ def get_env_var_pair(for_machine: MachineChoice,
          # compiling we fall back on the unprefixed host version. This
          # allows native builds to never need to worry about the 'BUILD_*'
          # ones.
diff --git a/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix b/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix
index dffdbdb9aed4..3fc893fd07cf 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/mill/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mill";
-  version = "0.7.1";
+  version = "0.8.0";
 
   src = fetchurl {
     url = "https://github.com/lihaoyi/mill/releases/download/${version}/${version}";
-    sha256 = "1fa7cjrp16618hj6xzrxiy44ghxvzgkvygzdzyi8jj2y5jnwxf10";
+    sha256 = "04pf76iyrbq2h2hksx0r2fmnd0d9mi6an24zvfv7k79rch11cql1";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/build-managers/ninja/default.nix b/nixpkgs/pkgs/development/tools/build-managers/ninja/default.nix
index efe9a4954947..bc5ad7744d68 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/ninja/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/ninja/default.nix
@@ -4,13 +4,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "ninja";
-  version = "1.10.0";
+  version = "1.10.1";
 
   src = fetchFromGitHub {
     owner = "ninja-build";
     repo = "ninja";
     rev = "v${version}";
-    sha256 = "1fbzl7mrcrwp527sgkc1npfl3k6bbpydpiq98xcf1a1hkrx0z5x4";
+    sha256 = "1bmv7zfqwp48ga6vnqvy0gzkclv40xgq19q4ihl58r6cn4swccn3";
   };
 
   nativeBuildInputs = [ python3 re2c ] ++ optionals buildDocs [ asciidoc docbook_xml_dtd_45 docbook_xsl libxslt.bin ];
diff --git a/nixpkgs/pkgs/development/tools/build-managers/redo-apenwarr/default.nix b/nixpkgs/pkgs/development/tools/build-managers/redo-apenwarr/default.nix
index 79707fc64db5..c62fb0f2515d 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/redo-apenwarr/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/redo-apenwarr/default.nix
@@ -1,16 +1,16 @@
-{ stdenv, lib, python3, fetchFromGitHub, mkdocs, which, findutils, coreutils
-, perl
+{ stdenv, lib, python3, fetchFromGitHub, which, findutils, coreutils
+, perl, installShellFiles
 , doCheck ? true
 }: stdenv.mkDerivation rec {
 
   pname = "redo-apenwarr";
-  version = "0.42a";
+  version = "0.42c";
 
   src = fetchFromGitHub rec {
     owner = "apenwarr";
     repo = "redo";
     rev = "${repo}-${version}";
-    sha256 = "172z2idslhcqibd4lw82k6349nl5fdda2vj10dqcjz0lvv6n7php";
+    sha256 = "0kc2gag1n5583195gs38gjm8mb7in9y70c07fxibsay19pvvb8iw";
   };
 
   postPatch = ''
@@ -53,15 +53,21 @@
     (with python3.pkgs; [ beautifulsoup4 markdown ])
     which
     findutils
+    installShellFiles
   ];
 
+  postInstall = ''
+    installShellCompletion --bash contrib/bash_completion.d/redo
+  '';
+
   meta = with lib; {
-    description = "Smaller, easier, more powerful, and more reliable than make. An implementation of djb's redo.";
+    description = "Smaller, easier, more powerful, and more reliable than make. An implementation of djb's redo";
     homepage = "https://github.com/apenwarr/redo";
     maintainers = with maintainers; [
       andrewchambers
       ck3d
     ];
     license = licenses.asl20;
+    platforms = python3.meta.platforms;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/redo-c/Makefile b/nixpkgs/pkgs/development/tools/build-managers/redo-c/Makefile
new file mode 100644
index 000000000000..f2c43cc5003c
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/build-managers/redo-c/Makefile
@@ -0,0 +1,10 @@
+CFLAGS=-Os
+
+all: redo links
+
+links:
+	sh links.do
+
+install:
+	mkdir -p "$(out)/bin"
+	cp --no-dereference redo redo-* "$(out)/bin"
diff --git a/nixpkgs/pkgs/development/tools/build-managers/redo-c/default.nix b/nixpkgs/pkgs/development/tools/build-managers/redo-c/default.nix
new file mode 100644
index 000000000000..1480f32a50f3
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/build-managers/redo-c/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub }:
+stdenv.mkDerivation rec {
+  pname = "redo-c";
+  version = "0.2";
+
+  src = fetchFromGitHub {
+    owner = "leahneukirchen";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "11wc2sgw1ssdm83cjdc6ndnp1bv5mzhbw7njw47mk7ri1ic1x51b";
+  };
+
+  postPatch = ''
+    cp '${./Makefile}' Makefile
+  '';
+
+  meta = with stdenv.lib; {
+    description = "An implementation of the redo build system in portable C with zero dependencies";
+    homepage = "https://github.com/leahneukirchen/redo-c";
+    license = licenses.cc0;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ ck3d ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/build-managers/redo-sh/default.nix b/nixpkgs/pkgs/development/tools/build-managers/redo-sh/default.nix
index d8c6cdf18888..315b74b820e5 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/redo-sh/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/redo-sh/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, makeWrapper }:
+{ stdenv, fetchurl, makeWrapper, coreutils }:
 
 stdenv.mkDerivation {
-  version = "2.0.3";
+  version = "4.0.3";
   pname = "redo-sh";
 
   src = fetchurl {
     url = "http://news.dieweltistgarnichtso.net/bin/archives/redo-sh.tar.gz";
-    sha256 = "1ycx3hik7vnlbwxacn1dzr48fwsn2ials0sg6k9l3gcyrha5wf1n";
+    sha256 = "1n84ld4fihqa7a6kn3f177dknz89qcvissfwz1m21bwdq950avia";
   };
 
   buildInputs = [ makeWrapper ];
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
     mv man "$out/share"
     mv bin "$out"
     for p in $out/bin/*; do
-      wrapProgram "$p" --suffix PATH : "$out/bin"
+      wrapProgram "$p" --prefix PATH : "$out/bin:${coreutils}/bin"
     done
   '';
 
@@ -25,7 +25,7 @@ stdenv.mkDerivation {
     description = "Redo implementation in Bourne Shell";
     homepage = "http://news.dieweltistgarnichtso.net/bin/redo-sh.html";
     license  = licenses.agpl3;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ sternenseemann ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix b/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix
new file mode 100644
index 000000000000..ae2e63e040b1
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/build-managers/rocm-cmake/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "rocm-cmake";
+  version = "3.8.0";
+
+  src = fetchFromGitHub {
+    owner = "RadeonOpenCompute";
+    repo = "rocm-cmake";
+    rev = "rocm-${version}";
+    sha256 = "1x1mj1acarhin319zycms8sqm9ylw2mcdbkpqjlb8yfsgiaa99ja";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    description = "CMake modules for common build tasks for the ROCm stack";
+    homepage = "https://github.com/RadeonOpenCompute/rocm-cmake";
+    license = licenses.mit;
+    maintainers = with maintainers; [ danieldk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix b/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix
index ae9d47addddd..2eb364344060 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/sbt/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "sbt";
-  version = "1.3.12";
+  version = "1.3.13";
 
   src = fetchurl {
     urls = [
       "https://piccolo.link/sbt-${version}.tgz"
       "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz"
     ];
-    sha256 = "0mwdqn0vk90wdpfzrbbc8l28407z5d62bvsi6jlgds2vbywjprxl";
+    sha256 = "08mx84kzpm750zjxm225nh9wqm7js5y2k6hgb8xw3n574zg58hc5";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/tools/build-managers/scons/common.nix b/nixpkgs/pkgs/development/tools/build-managers/scons/common.nix
index 41ac16bed7a1..7a15c193423c 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/scons/common.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/scons/common.nix
@@ -1,6 +1,6 @@
 { version, sha256 }:
 
-{ stdenv, fetchurl, python3Packages, python2Packages, scons }:
+{ stdenv, fetchurl, python3Packages, lib }:
 
 python3Packages.buildPythonApplication rec {
   pname = "scons";
@@ -13,7 +13,13 @@ python3Packages.buildPythonApplication rec {
 
   setupHook = ./setup-hook.sh;
 
-  passthru.py2 = scons.override { python3Packages = python2Packages; };
+  postPatch = lib.optionalString (lib.versionAtLeast version "4.0.0") ''
+    substituteInPlace setup.cfg \
+      --replace "build/dist" "dist"
+  '';
+
+  # The release tarballs don't contain any tests (runtest.py and test/*):
+  doCheck = lib.versionOlder version "4.0.0";
 
   meta = with stdenv.lib; {
     description = "An improved, cross-platform substitute for Make";
diff --git a/nixpkgs/pkgs/development/tools/build-managers/scons/default.nix b/nixpkgs/pkgs/development/tools/build-managers/scons/default.nix
index 19b092b86bab..eb86d5955971 100644
--- a/nixpkgs/pkgs/development/tools/build-managers/scons/default.nix
+++ b/nixpkgs/pkgs/development/tools/build-managers/scons/default.nix
@@ -7,8 +7,12 @@ in {
     version = "3.0.1";
     sha256 = "0wzid419mlwqw9llrg8gsx4nkzhqy16m4m40r0xnh6cwscw5wir4";
   }).override { python3Packages = python2Packages; };
-  scons_latest = mkScons {
+  scons_3_1_2 = (mkScons {
     version = "3.1.2";
     sha256 = "1yzq2gg9zwz9rvfn42v5jzl3g4qf1khhny6zfbi2hib55zvg60bq";
+  }).override { python3Packages = python2Packages; };
+  scons_latest = mkScons {
+    version = "4.0.1";
+    sha256 = "0z00l9wzaiqyjq0hapbvsjclvcfjjjq04kmxi7ffq966nl2d2bkj";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/buildah/default.nix b/nixpkgs/pkgs/development/tools/buildah/default.nix
index 3b1e0aaa00f6..7c796b47f28a 100644
--- a/nixpkgs/pkgs/development/tools/buildah/default.nix
+++ b/nixpkgs/pkgs/development/tools/buildah/default.nix
@@ -1,6 +1,7 @@
 { stdenv
 , buildGoModule
 , fetchFromGitHub
+, go-md2man
 , installShellFiles
 , pkg-config
 , gpgme
@@ -13,20 +14,22 @@
 
 buildGoModule rec {
   pname = "buildah";
-  version = "1.15.0";
+  version = "1.16.2";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "buildah";
     rev = "v${version}";
-    sha256 = "0nhqw8s8m819mhb0kpji0if8ji9cmkcb821zab7h65azk0p8qh20";
+    sha256 = "0zvf060nsd8cvyclkaasqlc9bw699vh2004qrvcy8hf50b2z1bi2";
   };
 
   outputs = [ "out" "man" ];
 
   vendorSha256 = null;
 
-  nativeBuildInputs = [ installShellFiles pkg-config ];
+  doCheck = false;
+
+  nativeBuildInputs = [ go-md2man installShellFiles pkg-config ];
 
   buildInputs = [
     btrfs-progs
@@ -39,12 +42,12 @@ buildGoModule rec {
 
   buildPhase = ''
     patchShebangs .
-    make GIT_COMMIT="unknown"
-    make -C docs
+    make bin/buildah GIT_COMMIT="unknown"
+    make -C docs GOMD2MAN="${go-md2man}/bin/go-md2man"
   '';
 
   installPhase = ''
-    install -Dm755 buildah $out/bin/buildah
+    install -Dm755 bin/buildah $out/bin/buildah
     installShellCompletion --bash contrib/completions/bash/buildah
     make -C docs install PREFIX="$man"
   '';
diff --git a/nixpkgs/pkgs/development/tools/buildkit/default.nix b/nixpkgs/pkgs/development/tools/buildkit/default.nix
index 2626ae719420..d4c143b0bd02 100644
--- a/nixpkgs/pkgs/development/tools/buildkit/default.nix
+++ b/nixpkgs/pkgs/development/tools/buildkit/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "buildkit";
-  version = "0.7.1";
+  version = "0.7.2";
 
   goPackagePath = "github.com/moby/buildkit";
   subPackages = [ "cmd/buildctl" ] ++ stdenv.lib.optionals stdenv.isLinux [ "cmd/buildkitd" ];
@@ -11,10 +11,10 @@ buildGoPackage rec {
     owner = "moby";
     repo = "buildkit";
     rev = "v${version}";
-    sha256 = "048h69ffgmpir2ix9ldi6zrzlwxa5yz3idg5ajspz2dihmzmnwws";
+    sha256 = "0kn2ad0rh3xlcxjxslkyrfxhv3cx88996nhxn86605x1mybxb2iq";
   };
 
-  buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/version.Version=${version}" ];
+  buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/version.Version=${version} -X ${goPackagePath}/version.Revision=${src.rev}" ];
 
   meta = with stdenv.lib; {
     description = "Concurrent, cache-efficient, and Dockerfile-agnostic builder toolkit";
diff --git a/nixpkgs/pkgs/development/tools/buildpack/default.nix b/nixpkgs/pkgs/development/tools/buildpack/default.nix
index c3eace891743..1d8e53ba5256 100644
--- a/nixpkgs/pkgs/development/tools/buildpack/default.nix
+++ b/nixpkgs/pkgs/development/tools/buildpack/default.nix
@@ -1,26 +1,33 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "pack";
-  version = "0.7.0";
+  version = "0.13.0";
 
   src = fetchFromGitHub {
     owner = "buildpacks";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0glfxrw3x35m4nmhr9xwlc14y5g9zni85rcrcn3dvkvgh4m6ipaj";
+    sha256 = "0h7lgsg5d74pfa15kx0y3ngnvmz64znqk2k73iyjya9pi9h8hh88";
   };
 
-  goPackagePath = "github.com/buildpacks/pack";
+  vendorSha256 = "1c38g169kq9kv6x0x1rlg39ywbc1q66fndby0v85b3ri3xb52869";
+
+  nativeBuildInputs = [ installShellFiles ];
 
   subPackages = [ "cmd/pack" ];
 
-  buildFlagsArray = [ "-ldflags=-s -w -X github.com/buildpacks/pack/cmd.Version=${version}" ];
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/buildpacks/pack.Version=${version}" ];
+
+  postInstall = ''
+    installShellCompletion --bash --name pack.bash $(PACK_HOME=$PWD $out/bin/pack completion --shell bash)
+    installShellCompletion --zsh --name _pack $(PACK_HOME=$PWD $out/bin/pack completion --shell zsh)
+  '';
 
   meta = with lib; {
     homepage = "https://buildpacks.io/";
     changelog = "https://github.com/buildpacks/pack/releases/tag/v${version}";
-    description = "Local CLI for building apps using Cloud Native Buildpacks";
+    description = "CLI for building apps using Cloud Native Buildpacks";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
   };
diff --git a/nixpkgs/pkgs/development/tools/cargo-flamegraph/default.nix b/nixpkgs/pkgs/development/tools/cargo-flamegraph/default.nix
index 08b248dd0f68..feaa3c312f48 100644
--- a/nixpkgs/pkgs/development/tools/cargo-flamegraph/default.nix
+++ b/nixpkgs/pkgs/development/tools/cargo-flamegraph/default.nix
@@ -32,6 +32,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ferrous-systems/flamegraph";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ killercup ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/cargo-web/default.nix b/nixpkgs/pkgs/development/tools/cargo-web/default.nix
index 4e6f8fbc71a7..3008c15d848a 100644
--- a/nixpkgs/pkgs/development/tools/cargo-web/default.nix
+++ b/nixpkgs/pkgs/development/tools/cargo-web/default.nix
@@ -23,6 +23,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/koute/cargo-web";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ kevincox ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/castxml/default.nix b/nixpkgs/pkgs/development/tools/castxml/default.nix
index 1011f95cce7f..0a455b4d7cdf 100644
--- a/nixpkgs/pkgs/development/tools/castxml/default.nix
+++ b/nixpkgs/pkgs/development/tools/castxml/default.nix
@@ -8,13 +8,13 @@
 stdenv.mkDerivation rec {
 
   pname   = "CastXML";
-  version = "0.2.0";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner  = pname;
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "1qpgr5hyb692h7l5igmq53m6a6vi4d9qp8ks893cflfx9955h3ip";
+    sha256 = "0ypj67xrgj228myp7l1gsjw1ja97q68nmj98dsd33srmiayqraj4";
   };
 
   nativeBuildInputs = [ cmake ] ++ stdenv.lib.optionals withMan [ pythonPackages.sphinx ];
diff --git a/nixpkgs/pkgs/development/tools/chit/default.nix b/nixpkgs/pkgs/development/tools/chit/default.nix
index c7a8483719fb..564c5dcbcb53 100644
--- a/nixpkgs/pkgs/development/tools/chit/default.nix
+++ b/nixpkgs/pkgs/development/tools/chit/default.nix
@@ -39,6 +39,5 @@ buildRustPackage rec {
     homepage = "https://github.com/peterheesterman/chit";
     license = licenses.mit;
     maintainers = [ maintainers.lilyball ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/cloudfoundry-cli/default.nix b/nixpkgs/pkgs/development/tools/cloudfoundry-cli/default.nix
index 9d0c1ab92ff4..642c42108aa5 100644
--- a/nixpkgs/pkgs/development/tools/cloudfoundry-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/cloudfoundry-cli/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles }:
+{ stdenv, buildGoPackage, fetchFromGitHub, fetchurl, installShellFiles }:
 
 buildGoPackage rec {
   pname = "cloudfoundry-cli";
-  version = "6.51.0";
+  version = "7.0.1";
 
   goPackagePath = "code.cloudfoundry.org/cli";
 
@@ -12,7 +12,14 @@ buildGoPackage rec {
     owner = "cloudfoundry";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "189cqng7y12knqm4n1bfajbc2lx027rwb44wddmj5iya27i7fv8f";
+    sha256 = "0jh4x7xlijp1naak5qyc256zkzlrczl6g4iz94s8wx2zj7np0q5l";
+  };
+
+  # upstream have helpfully moved the bash completion script to a separate
+  # repo which receives no releases or even tags
+  bashCompletionScript = fetchurl {
+    url = "https://raw.githubusercontent.com/cloudfoundry/cli-ci/6087781a0e195465a35c79c8e968ae708c6f6351/ci/installers/completion/cf7";
+    sha256 = "1vhg9jcgaxcvvb4pqnhkf27b3qivs4d3w232j0gbh9393m3qxrvy";
   };
 
   nativeBuildInputs = [ installShellFiles ];
@@ -35,7 +42,7 @@ buildGoPackage rec {
 
   installPhase = ''
     install -Dm555 out/cf "$out/bin/cf"
-    installShellCompletion --bash "$src/ci/installers/completion/cf"
+    installShellCompletion --bash $bashCompletionScript
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/tools/cmake-format/default.nix b/nixpkgs/pkgs/development/tools/cmake-format/default.nix
index 394dc7b2f514..0d9edebe19b5 100644
--- a/nixpkgs/pkgs/development/tools/cmake-format/default.nix
+++ b/nixpkgs/pkgs/development/tools/cmake-format/default.nix
@@ -10,12 +10,15 @@
 
 buildPythonApplication rec {
   pname = "cmake-format";
-  version = "0.6.10";
+  version = "0.6.13";
+  # The source distribution does not build because of missing files.
+  format = "wheel";
 
   src = fetchPypi {
-    inherit version;
-    pname = "cmake_format";
-    sha256 = "14ypplkjah4hcb1ad8978xip4vvzxy1nkysvyi1wn9b24cbfzw42";
+    inherit version format;
+    python = "py3";
+    pname = "cmakelang";
+    sha256 = "0kmggnfbv6bba75l3zfzqwk0swi90brjka307m2kcz2w35kr8jvn";
   };
 
   propagatedBuildInputs = [ autopep8 flake8 jinja2 pylint pyyaml ];
diff --git a/nixpkgs/pkgs/development/tools/cmake-language-server/default.nix b/nixpkgs/pkgs/development/tools/cmake-language-server/default.nix
index 135fdccd7c53..628bb31fbe93 100644
--- a/nixpkgs/pkgs/development/tools/cmake-language-server/default.nix
+++ b/nixpkgs/pkgs/development/tools/cmake-language-server/default.nix
@@ -1,6 +1,7 @@
 { stdenv, buildPythonApplication, fetchFromGitHub
 , poetry, pygls, pyparsing
 , cmake, pytest, pytest-datadir
+, fetchpatch
 }:
 
 buildPythonApplication rec {
@@ -15,6 +16,17 @@ buildPythonApplication rec {
     sha256 = "0vz7bjxkk0phjhz3h9kj6yr7wnk3g7lqmkqraa0kw12mzcfck837";
   };
 
+  # can be removed after v0.1.2
+  patches = stdenv.lib.optional stdenv.isDarwin (fetchpatch {
+    url = "https://github.com/regen100/cmake-language-server/commit/0ec120f39127f25898ab110b43819e3e9becb8a3.patch";
+    sha256 = "1xbmarvsvzd61fnlap4qscnijli2rw2iqr7cyyvar2jd87z6sfp0";
+  });
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'pygls = "^0.8.1"' 'pygls = "^0.9.0"'
+  '';
+
   nativeBuildInputs = [ poetry ];
   propagatedBuildInputs = [ pygls pyparsing ];
 
diff --git a/nixpkgs/pkgs/development/tools/conftest/default.nix b/nixpkgs/pkgs/development/tools/conftest/default.nix
index eb55bf5dd4c4..2f661dd44aec 100644
--- a/nixpkgs/pkgs/development/tools/conftest/default.nix
+++ b/nixpkgs/pkgs/development/tools/conftest/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "conftest";
-  version = "0.18.2";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
-    owner = "instrumenta";
+    owner = "open-policy-agent";
     repo = "conftest";
     rev = "v${version}";
-    sha256 = "15xzldcmnpfg1hd5zr5i7x2zjrgkwnp4nylxbn9kfic2dpjp1a38";
+    sha256 = "0v9cya3x0v1fqpqswayskmm0xzbvfn4hbhz2k6b3j6fzcq2dnzj3";
   };
 
-  vendorSha256 = "1kay7b5rxypj4i0d2iwdlb1mj0qq3zvlrjp34zzv5kywz5gy4144";
+  vendorSha256 = "1nxl00f8dbdiykwa54qm9r0cv16zcab880ay8mlmxba7srysvb1y";
+
+  doCheck = false;
 
   buildFlagsArray = ''
     -ldflags=
@@ -20,9 +22,8 @@ buildGoModule rec {
 
   meta = with lib; {
     description = "Write tests against structured configuration data";
-    homepage = "https://github.com/instrumenta/conftest";
+    inherit (src.meta) homepage;
     license = licenses.asl20;
     maintainers = with maintainers; [ yurrriq ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/container-linux-config-transpiler/default.nix b/nixpkgs/pkgs/development/tools/container-linux-config-transpiler/default.nix
index 005c5d55b79d..b5200e22cad8 100644
--- a/nixpkgs/pkgs/development/tools/container-linux-config-transpiler/default.nix
+++ b/nixpkgs/pkgs/development/tools/container-linux-config-transpiler/default.nix
@@ -4,7 +4,7 @@ with lib;
 
 buildGoPackage rec {
   pname = "ct";
-  version = "0.7.0";
+  version = "0.9.0";
 
   goPackagePath = "github.com/coreos/container-linux-config-transpiler";
 
@@ -12,7 +12,7 @@ buildGoPackage rec {
     owner = "coreos";
     repo = "container-linux-config-transpiler";
     rev = "v${version}";
-    sha256="058zjk9yqgdli55gc6y48455il6wjpslyz2r2ckk2ki9c5qc8b7c";
+    sha256="1w6nvgrl5qp3ci9igflk9dlk3020psv5m4f3p57f3qcx9vrcl4lw";
   };
 
   buildFlagsArray = ''
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
index 06d69c152bad..aee2a4e23416 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/buildkite-cli/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0jxh3yhh0sdvaykhinxngpipk369hw8z1y3g2z4c1115m5rjp2bb";
 
+  doCheck = false;
+
   subPackages = [ "cmd/bk" ];
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.VERSION=${version}" ];
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/drone-cli/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/drone-cli/default.nix
index bbd2c2f19358..3df406eb560b 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/drone-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/drone-cli/default.nix
@@ -1,13 +1,14 @@
 { stdenv, fetchFromGitHub, buildGoModule }:
 
-let version = "1.2.1";
+let version = "1.2.2";
 in buildGoModule rec {
   inherit version;
   pname = "drone-cli";
   revision = "v${version}";
-  goPackagePath = "github.com/drone/drone-cli";
 
-  vendorSha256 = "1zzx5yy0pp0c8pias4sfxfvdzhhrff9f8j51qf6dkif99xwdq3hb";
+  vendorSha256 = "1ryh94cj37j8x6qwxr5ydyw6cnjppakg1w84sipm11d0vvv98bhi";
+
+  doCheck = false;
 
   preBuild = ''
     buildFlagsArray+=("-ldflags" "-X main.version=${version}")
@@ -17,7 +18,7 @@ in buildGoModule rec {
     owner = "drone";
     repo = "drone-cli";
     rev = revision;
-    sha256 = "19icihi5nxcafxlh4w61nl4cd0dhvik9zl8g4gqmazikjqsjms2j";
+    sha256 = "082yqm72y8s3v06gkcg947p62sd63y3r2bmdsrfgdrzb5w5a75bl";
   };
 
   meta = with stdenv.lib; {
@@ -25,4 +26,4 @@ in buildGoModule rec {
     license = licenses.asl20;
     description = "Command line client for the Drone continuous integration server.";
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix
index 54b801da0756..307dda4f993b 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/drone/default.nix
@@ -2,16 +2,17 @@
 
 buildGoModule rec {
   name = "drone.io-${version}";
-  version = "1.6.5";
-  goPackagePath = "github.com/drone/drone";
+  version = "1.9.0";
 
-  vendorSha256 = "1dvf8vz3jr9smki3jql0kvd8z8rwdq93y7blbr2yjjfsdvx6lxl1";
+  vendorSha256 = "0idf11sr417lxcjryplgb87affr6lgzxazzlyvk0y40hp8zbhwsx";
+
+  doCheck = false;
 
   src = fetchFromGitHub {
     owner = "drone";
     repo = "drone";
     rev = "v${version}";
-    sha256 = "05cgd72qyss836fby0adhrm5p8g7639psk2yslhg6pmz0cqfbq9m";
+    sha256 = "1lsyd245fr1f74rpccvvw41h5g75b79afrb8g589bj13ggjav0xy";
   };
 
   meta = with stdenv.lib; {
@@ -19,4 +20,4 @@ buildGoModule rec {
     license = licenses.asl20;
     description = "Continuous Integration platform built on container technology";
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix
index bdad33dee742..c85f5473de88 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/fly/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "fly";
-  version = "6.3.0";
+  version = "6.5.1";
 
   src = fetchFromGitHub {
     owner = "concourse";
     repo = "concourse";
     rev = "v${version}";
-    sha256 = "006qkg661hzbc2gpcnpxm09bp1kbb98y0bgdr49bjlnapcmdgr1b";
+    sha256 = "0ldw40xn9nb5picly32nq558x0klvkyrr9af0jfngbvm4l5209bc";
   };
 
-  vendorSha256 = "03az7l9rf2syw837zliny82xhkqlad16z0vfcg5h21m3bhz6v6jy";
+  vendorSha256 = "1fxbxkg7disndlmb065abnfn7sn79qclkcbizmrq49f064w1ijr4";
+
+  doCheck = false;
 
   subPackages = [ "fly" ];
 
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index 9cacf76dbbf9..af591a540d4a 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
@@ -1,22 +1,23 @@
 { lib, buildGoPackage, fetchFromGitLab, fetchurl }:
 
 let
-  version = "13.0.1";
+  version = "13.4.0";
   # Gitlab runner embeds some docker images these are prebuilt for arm and x86_64
   docker_x86_64 = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-x86_64.tar.xz";
-    sha256 = "1hrdi9fvni21lrc7lx8bjxdiqyf02cihl7pxlvcji0j1lmxyz721";
+    sha256 = "0rdnrnkm9pcdzi3ddmk0ia9r6lv548by08q1nrb7683jywr7bin3";
   };
 
   docker_arm = fetchurl {
     url = "https://gitlab-runner-downloads.s3.amazonaws.com/v${version}/helper-images/prebuilt-arm.tar.xz";
-    sha256 = "0k41k6brmdh9rz6k4kis0wabgvrfl1vm63w36h2kk2vnwxg27s91";
+    sha256 = "1nd32vqp096h36p89c0v21yijn3dzz4ix5bwsbl20mc8m802wvg7";
   };
 in
 buildGoPackage rec {
   inherit version;
   pname = "gitlab-runner";
   goPackagePath = "gitlab.com/gitlab-org/gitlab-runner";
+  subPackages = [ "." ];
   commonPackagePath = "${goPackagePath}/common";
   buildFlagsArray = ''
     -ldflags=
@@ -29,13 +30,12 @@ buildGoPackage rec {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "155f1lvvx1rq50xjfl4ligxnya9js2rkzp45vwwfdwrvy0qlx8sf";
+    sha256 = "124gplxs3a6kyc7b7mwsf0l02i9qi0ifjn3r2m7vq5wvk31qa97b";
   };
 
   patches = [ ./fix-shell-path.patch ];
 
   postInstall = ''
-    touch $out/bin/hello
     install -d $out/bin/helper-images
     ln -sf ${docker_x86_64} $out/bin/helper-images/prebuilt-x86_64.tar.xz
     ln -sf ${docker_arm} $out/bin/helper-images/prebuilt-arm.tar.xz
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix
new file mode 100644
index 000000000000..c8316f4bb571
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/hercules-ci-agent/default.nix
@@ -0,0 +1,21 @@
+{ gnutar, gzip, git, haskell, haskellPackages, lib, makeWrapper }:
+let
+  inherit (haskell.lib) overrideCabal addBuildDepends;
+  inherit (lib) makeBinPath;
+  pkg =
+    # justStaticExecutables is needed due to https://github.com/NixOS/nix/issues/2990
+    overrideCabal
+      (addBuildDepends (haskell.lib.justStaticExecutables haskellPackages.hercules-ci-agent) [ makeWrapper ])
+      (o: {
+        postInstall = ''
+          ${o.postInstall or ""}
+          mkdir -p $out/libexec
+          mv $out/bin/hercules-ci-agent $out/libexec
+          makeWrapper $out/libexec/hercules-ci-agent $out/bin/hercules-ci-agent --prefix PATH : ${makeBinPath [ gnutar gzip git ]}
+        '';
+      });
+in pkg // {
+    meta = pkg.meta // {
+      position = toString ./default.nix + ":1";
+    };
+  }
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
index d9d7b490cf14..310755fb5324 100644
--- a/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jenkins";
-  version = "2.235.1";
+  version = "2.249.1";
 
   src = fetchurl {
     url = "http://mirrors.jenkins.io/war-stable/${version}/jenkins.war";
-    sha256 = "0pb7dy95ygvyb25hm6akf40f5gr5wa2njad7ncglrpmz14xfnxb3";
+    sha256 = "1mjvxl48v0rdrs6hzwh4mx5xvx3lnqs6njx3d7nfdfp2nf2s9353";
   };
 
   buildCommand = ''
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/laminar/default.nix b/nixpkgs/pkgs/development/tools/continuous-integration/laminar/default.nix
new file mode 100644
index 000000000000..5a326e94a544
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/laminar/default.nix
@@ -0,0 +1,80 @@
+{ stdenv
+, lib
+, fetchurl
+, cmake
+, capnproto
+, sqlite
+, boost
+, zlib
+, rapidjson
+, pandoc
+, enableSystemd ? false
+, customConfig ? null
+}:
+let
+  js.vue = fetchurl {
+    url = "https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.min.js";
+    sha256 = "01zklp5cyik65dfn64m8h2y2dxzgbyzgmbf99y7fwgnf0155r7pq";
+  };
+  js.vue-router = fetchurl {
+    url =
+      "https://cdnjs.cloudflare.com/ajax/libs/vue-router/2.7.0/vue-router.min.js";
+    sha256 = "07gx7znb30rk1z7w6ca7dlfjp44q12bbq6jghwfm27mf6psa80as";
+  };
+  js.ansi_up = fetchurl {
+    url = "https://raw.githubusercontent.com/drudru/ansi_up/v1.3.0/ansi_up.js";
+    sha256 = "1993dywxqi2ylnxybwk7m0s0bg2bq7kfllpyr0s8ck6chd0p8i6r";
+  };
+  js.Chart = fetchurl {
+    url = "https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.min.js";
+    sha256 = "1jh4h12qchsba03dx03mrvs4r8g9qfjn56xm56jqzgqf7r209xq9";
+  };
+  css.bootstrap = fetchurl {
+    url =
+      "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css";
+    sha256 = "11vx860prsx7wsy8b0yrrk04ih8kvrxkk8l16snsc4n286bdkyri";
+  };
+in stdenv.mkDerivation rec {
+  name = "laminar";
+  version = "0.8";
+  src = fetchurl {
+    url = "https://github.com/ohwgiles/laminar/archive/${version}.tar.gz";
+    sha256 = "05g73j3vpib47kr7mackcazf7s6bc3xwz4h6k7sp7yb5ng7gj20g";
+  };
+  patches = [ ./patches/no-network.patch ];
+  nativeBuildInputs = [ cmake pandoc ];
+  buildInputs = [ capnproto sqlite boost zlib rapidjson ];
+  preBuild = ''
+    mkdir -p js css
+    cp  ${js.vue}         js/vue.min.js
+    cp  ${js.vue-router}  js/vue-router.min.js
+    cp  ${js.ansi_up}     js/ansi_up.js
+    cp  ${js.Chart}       js/Chart.min.js
+    cp  ${css.bootstrap}  css/bootstrap.min.css
+  '';
+  postInstall = ''
+    mv $out/usr/share $out
+    mkdir $out/bin
+    mv $out/usr/{bin,sbin}/* $out/bin
+    rmdir $out/usr/{bin,sbin}
+    rmdir $out/usr
+
+    mkdir -p $out/share/doc/laminar
+    pandoc -s ../UserManual.md -o $out/share/doc/laminar/UserManual.html
+  '' + lib.optionalString (customConfig != null) ''
+    cp ${customConfig} /etc/etc/laminar.conf
+  '' + (if enableSystemd then ''
+    sed -i "s,/etc/,$out/etc/," $out/lib/systemd/system/laminar.service
+    sed -i "s,/usr/sbin/,$out/bin/," $out/lib/systemd/system/laminar.service
+  '' else ''
+    rm -r $out/lib # it contains only systemd unit file
+  '');
+
+  meta = with stdenv.lib; {
+    description = "Lightweight and modular continuous integration service";
+    homepage = "https://laminar.ohwg.net";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ kaction ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/continuous-integration/laminar/patches/no-network.patch b/nixpkgs/pkgs/development/tools/continuous-integration/laminar/patches/no-network.patch
new file mode 100644
index 000000000000..80e74de95aa2
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/continuous-integration/laminar/patches/no-network.patch
@@ -0,0 +1,26 @@
+Build system that downloads stuff from network is bad. Build system that
+does so unconditionally is twice as bad.
+
+Required files are downloaded as separate fixed-output derivations and
+put into correct location before build phase starts.
+
+--- laminar-0.8/CMakeLists.txt
++++ laminar-0.8-new/CMakeLists.txt
+@@ -69,17 +69,6 @@
+     COMMAND sh -c '( echo -n "\\#define INDEX_HTML_UNCOMPRESSED_SIZE " && wc -c < "${CMAKE_SOURCE_DIR}/src/resources/index.html" ) > index_html_size.h'
+     DEPENDS src/resources/index.html)
+ 
+-# Download 3rd-party frontend JS libs...
+-file(DOWNLOAD https://cdnjs.cloudflare.com/ajax/libs/vue/2.3.4/vue.min.js
+-        js/vue.min.js EXPECTED_MD5 ae2fca1cfa0e31377819b1b0ffef704c)
+-file(DOWNLOAD https://cdnjs.cloudflare.com/ajax/libs/vue-router/2.7.0/vue-router.min.js
+-        js/vue-router.min.js EXPECTED_MD5 5d3e35710dbe02de78c39e3e439b8d4e)
+-file(DOWNLOAD https://raw.githubusercontent.com/drudru/ansi_up/v1.3.0/ansi_up.js
+-        js/ansi_up.js EXPECTED_MD5 158566dc1ff8f2804de972f7e841e2f6)
+-file(DOWNLOAD https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.2/Chart.min.js
+-        js/Chart.min.js EXPECTED_MD5 f6c8efa65711e0cbbc99ba72997ecd0e)
+-file(DOWNLOAD https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css
+-        css/bootstrap.min.css EXPECTED_MD5 5d5357cb3704e1f43a1f5bfed2aebf42)
+ # ...and compile them
+ generate_compressed_bins(${CMAKE_BINARY_DIR} js/vue-router.min.js js/vue.min.js
+     js/ansi_up.js js/Chart.min.js css/bootstrap.min.css)
diff --git a/nixpkgs/pkgs/development/tools/corgi/default.nix b/nixpkgs/pkgs/development/tools/corgi/default.nix
index 2dcc68a09f2e..a1549de18436 100644
--- a/nixpkgs/pkgs/development/tools/corgi/default.nix
+++ b/nixpkgs/pkgs/development/tools/corgi/default.nix
@@ -23,7 +23,6 @@ buildGoPackage rec {
     '';
     homepage = "https://github.com/DrakeW/corgi";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ kalbasit ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/coursier/default.nix b/nixpkgs/pkgs/development/tools/coursier/default.nix
index b54a831e9556..921c5194d58a 100644
--- a/nixpkgs/pkgs/development/tools/coursier/default.nix
+++ b/nixpkgs/pkgs/development/tools/coursier/default.nix
@@ -8,11 +8,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "coursier";
-  version = "2.0.0-RC6-18";
+  version = "2.0.0-RC6-26";
 
   src = fetchurl {
     url = "https://github.com/coursier/coursier/releases/download/v${version}/coursier";
-    sha256 = "0vym99fyn0g8l5y2zvhf73ww17wywrh503wg5aw4nilj8w1ncvn2";
+    sha256 = "0dpm1q4vxhv9ji87qdnsqvdmi0k5757kkd3p83g116skpkzmymvq";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/cue/default.nix b/nixpkgs/pkgs/development/tools/cue/default.nix
index 65f47c837b83..cdd0f2ae1053 100644
--- a/nixpkgs/pkgs/development/tools/cue/default.nix
+++ b/nixpkgs/pkgs/development/tools/cue/default.nix
@@ -2,15 +2,17 @@
 
 buildGoModule rec {
   pname = "cue";
-  version = "0.2.0";
+  version = "0.2.2";
 
   src = fetchgit {
     url = "https://cue.googlesource.com/cue";
     rev = "v${version}";
-    sha256 = "06kag5dwkq4zsh1b52b74g3slsxlwwiap2w3709qjhrgda8w2zn3";
+    sha256 = "1crl5fldczc3jkwf7gvwvghckr6gfinfslzca4ps1098lbq83zcq";
   };
 
-  vendorSha256 = "1lhjd98n9j1cq36b5lhscb7k32qmyqg7zs6zc8yab494bm8sz89g";
+  vendorSha256 = "0l6slaji9nh16jqp1nvib95h2db1xyjh6knk5hj2zaa1rks4b092";
+
+  doCheck = false;
 
   subPackages = [ "cmd/cue" ];
 
diff --git a/nixpkgs/pkgs/development/tools/dapper/default.nix b/nixpkgs/pkgs/development/tools/dapper/default.nix
index c2dadeb6a933..664dd61246d6 100644
--- a/nixpkgs/pkgs/development/tools/dapper/default.nix
+++ b/nixpkgs/pkgs/development/tools/dapper/default.nix
@@ -5,7 +5,7 @@
 
 buildGoPackage rec {
   pname = "dapper";
-  version = "0.5.1";
+  version = "0.5.3";
 
   goPackagePath = "github.com/rancher/dapper";
 
@@ -13,7 +13,7 @@ buildGoPackage rec {
     owner = "rancher";
     repo = "dapper";
     rev = "v${version}";
-    sha256 = "0sf56ii4sn2wdq5kiyl02sgvq0lvynzgiq8v5wrkkabj5107fiqw";
+    sha256 = "1h62jahrxpmqx6r3mlakzap8gisrymgkp5syyarpab05qm1inngd";
   };
    patchPhase = ''
      substituteInPlace main.go --replace 0.0.0 ${version}
diff --git a/nixpkgs/pkgs/development/tools/dapr/cli/default.nix b/nixpkgs/pkgs/development/tools/dapr/cli/default.nix
new file mode 100644
index 000000000000..ef61edcbb8dd
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/dapr/cli/default.nix
@@ -0,0 +1,31 @@
+{ buildGoModule, fetchFromGitHub, stdenv }:
+
+let
+  pname = "dapr";
+  version = "0.9.0";
+  sha256 = "1vdbh5pg3j7kqqqhhf4d9xfzbpqmjc4x373sk43pb05prg4w71s7";
+  vendorSha256 = "19qcpd5i60xmsr8m8mx16imm5falkqcgqpwpx3clfvqxjyflglpp";
+in buildGoModule {
+  inherit pname version vendorSha256;
+
+  src = fetchFromGitHub {
+    inherit sha256;
+
+    owner = "dapr";
+    repo = "cli";
+    rev = "v${version}";
+  };
+
+  doCheck = false;
+
+  postInstall = ''
+    mv $out/bin/cli $out/bin/dapr
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://dapr.io";
+    description = "A CLI for managing Dapr, the distributed application runtime";
+    license = licenses.mit;
+    maintainers = with maintainers; [ lucperkins ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/database/dbmate/default.nix b/nixpkgs/pkgs/development/tools/database/dbmate/default.nix
index ccf7a699dae8..4858b84abfa6 100644
--- a/nixpkgs/pkgs/development/tools/database/dbmate/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/dbmate/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "dbmate";
-  version = "1.8.0";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "amacneil";
     repo = "dbmate";
     rev = "v${version}";
-    sha256 = "16grd03r41n0vj5fs7j6jk395zs2q0i878p9nh1ycicy64nzmxky";
+    sha256 = "09zb7r8f6m1w9ax9ayaxjzwmqcgx5f6x4lclfi1wdn6f6qaans4w";
   };
 
-  vendorSha256 = "1915h1hi2y2sx5jvx84c1j281zaz100gbhyalvg5jqjr1van5s4d";
+  vendorSha256 = "012kgdvw7hj3m40v3nnpg916n02nxv19zid07h8g4qwprzg49iq2";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Database migration tool";
@@ -20,4 +22,4 @@ buildGoModule rec {
     maintainers = [ maintainers.manveru ];
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/database/liquibase/default.nix b/nixpkgs/pkgs/development/tools/database/liquibase/default.nix
index ae993f9611e0..553f9ce92801 100644
--- a/nixpkgs/pkgs/development/tools/database/liquibase/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/liquibase/default.nix
@@ -10,11 +10,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "liquibase";
-  version = "3.10.0";
+  version = "4.0.0";
 
   src = fetchurl {
     url = "https://github.com/liquibase/liquibase/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "1h5mcbs6mkk6cqjm8qm63rynz7611gq32v2jirl1qn71x2s7pq6y";
+    sha256 = "06wpvqyv7w749l3ndvzg1p774rv1apbmbpwbdlad57pih4nqa7mm";
   };
 
   buildInputs = [ jre makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/database/sqldeveloper/default.nix b/nixpkgs/pkgs/development/tools/database/sqldeveloper/default.nix
index 1e40bc52b4f7..49cc7b42b3da 100644
--- a/nixpkgs/pkgs/development/tools/database/sqldeveloper/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/sqldeveloper/default.nix
@@ -1,7 +1,7 @@
 { stdenv, makeDesktopItem, makeWrapper, requireFile, unzip, jdk }:
 
 let
-  version = "19.4.0.354.1759";
+  version = "20.2.0.175.1842";
 
   desktopItem = makeDesktopItem {
     name = "sqldeveloper";
@@ -10,7 +10,7 @@ let
     desktopName = "Oracle SQL Developer";
     genericName = "Oracle SQL Developer";
     comment = "Oracle's Oracle DB GUI client";
-    categories = "Application;Development;";
+    categories = "Development;";
   };
 in
   stdenv.mkDerivation {
@@ -46,7 +46,7 @@ in
 
         nix-prefetch-url --type sha256 file:///path/to/${name}
     '';
-    sha256 = "1hk3hfxyl6ryp4v1l9mgzflban565ayfmm2k412azmw5rnmjf6fv";
+    sha256 = "1fcaq7ffn1q35f7rvp3ybs2191lvfc0jgjx7y4wn1nqglgj7zy7n";
   };
 
   buildInputs = [ makeWrapper unzip ];
diff --git a/nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix b/nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix
index f8a8ee70e9d6..7fcdbd1a6ad8 100644
--- a/nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/sqlitebrowser/default.nix
@@ -1,30 +1,30 @@
 { mkDerivation, lib, fetchFromGitHub, cmake, antlr
-, qtbase, qttools, qscintilla, sqlite }:
+, qtbase, qttools, sqlite }:
 
 mkDerivation rec {
   pname = "sqlitebrowser";
-  version = "3.11.2";
+  version = "3.12.0";
 
   src = fetchFromGitHub {
-    owner  = pname;
-    repo   = pname;
-    rev    = "v${version}";
-    sha256 = "0ydd5fg76d5d23byac1f7f8mzx3brmd0cnnkd58qpmlzi7p9hcvx";
+    owner = pname;
+    repo = pname;
+    rev = version;
+    sha256 = "1arv4rzl8s1vjjqzz35l2b1rfzr2b8b23v97fdw1kdxpwvs63l99";
   };
 
-  buildInputs = [ antlr qtbase qscintilla sqlite ];
+  # We should be using qscintilla from nixpkgs instead of the vendored version,
+  # but qscintilla is currently in a bit of a mess as some consumers expect a
+  # -qt4 or -qt5 prefix while others do not.
+  # We *really* should get that cleaned up.
+  buildInputs = [ antlr qtbase sqlite ];
 
   nativeBuildInputs = [ cmake qttools ];
 
-  NIX_LDFLAGS = "-lQt5PrintSupport";
-
-  enableParallelBuilding = true;
-
   meta = with lib; {
     description = "DB Browser for SQLite";
     homepage = "https://sqlitebrowser.org/";
     license = licenses.gpl3;
-    maintainers = with maintainers; [  ];
+    maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/database/timescaledb-parallel-copy/default.nix b/nixpkgs/pkgs/development/tools/database/timescaledb-parallel-copy/default.nix
index 166cda52a3d9..a0e05bf4ae57 100644
--- a/nixpkgs/pkgs/development/tools/database/timescaledb-parallel-copy/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/timescaledb-parallel-copy/default.nix
@@ -1,26 +1,22 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
-  name = "timescaledb-parallel-copy";
-  version = "0.2.0";
-
-  owner  = "timescale";
-  repo   = "timescaledb-parallel-copy";
-
-  goPackagePath = with src; "github.com/${owner}/${repo}";
-  goDeps = ./deps.nix;
+buildGoModule rec {
+  pname = "timescaledb-parallel-copy";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
-    inherit owner repo;
-    rev    = version;
-    sha256 = "1z9vf29vrxqs8imbisv681d02p4cfk3hlsrin6hhibxf1h0br9gd";
+    owner = "timescale";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0r8c78l8vg7l24c3vzs2qr2prfjpagvdkp95fh9gyz76nvik29ba";
   };
 
+  vendorSha256 = "03siay3hv1sgmmp7w4f9b0xb8c6bnbx0v4wy5grjl5k04zhnj76b";
+
   meta = with stdenv.lib; {
     description = "Bulk, parallel insert of CSV records into PostgreSQL";
-    homepage    = "https://github.com/timescale/timescaledb-parallel-copy";
-    license     = licenses.asl20;
-    platforms   = platforms.unix;
+    homepage = "https://github.com/timescale/timescaledb-parallel-copy";
+    license = licenses.asl20;
     maintainers = with maintainers; [ thoughtpolice ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/database/timescaledb-parallel-copy/deps.nix b/nixpkgs/pkgs/development/tools/database/timescaledb-parallel-copy/deps.nix
deleted file mode 100644
index ac145fcd34ed..000000000000
--- a/nixpkgs/pkgs/development/tools/database/timescaledb-parallel-copy/deps.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/jmoiron/sqlx";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jmoiron/sqlx";
-      rev = "82935fac6c1a317907c8f43ed3f7f85ea844a78b";
-      sha256 = "0cbscnss2ifc3qgmy97i0zbirrp4hix4jlcz853f4bg5n2zzgwh2";
-    };
-  }
-  {
-    goPackagePath = "github.com/lib/pq";
-    fetch = {
-      type = "git";
-      url = "https://github.com/lib/pq";
-      rev = "7aad666537ab32b76f0966145530335f1fed51fd";
-      sha256 = "12qczn5afbf6203wnbpay1kazzh20jg5qyakrph3j1r13n91nc1r";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix b/nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix
index da5ba3fea64d..2079925049dd 100644
--- a/nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/timescaledb-tune/default.nix
@@ -1,20 +1,18 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
-  name = "timescaledb-tune";
-  version = "0.6.0";
-
-  goPackagePath = "github.com/timescale/timescaledb-tune";
-
-  goDeps = ./deps.nix;
+buildGoModule rec {
+  pname = "timescaledb-tune";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "timescale";
-    repo = name;
-    rev = version;
-    sha256 = "0hjxmjgkqm9sbjbyhs3pzkk1d9vvlcbzwl7ghsigh4h7rw3a0mpk";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0vncwwvw7y6g3crd4n5vvd6jwdsa8vsvsmfwy5mad4j6lix09ajx";
   };
 
+  vendorSha256 = "0hbpprbxs19fcar7xcy42kn9yfzhal2zsv5pml9ghiv2s61yns4z";
+
   meta = with stdenv.lib; {
     description = "A tool for tuning your TimescaleDB for better performance";
     homepage = "https://github.com/timescale/timescaledb-tune";
diff --git a/nixpkgs/pkgs/development/tools/database/timescaledb-tune/deps.nix b/nixpkgs/pkgs/development/tools/database/timescaledb-tune/deps.nix
deleted file mode 100644
index d898770fd4ef..000000000000
--- a/nixpkgs/pkgs/development/tools/database/timescaledb-tune/deps.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/fatih/color";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fatih/color";
-      rev = "3f9d52f7176a6927daacff70a3e8d1dc2025c53e";
-      sha256 = "165ww24x6ba47ji4j14mp3f006ksnmi53ws9280pgd2zcw91nbn8";
-    };
-  }
-  {
-    goPackagePath = "github.com/pbnjay/memory";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pbnjay/memory";
-      rev = "974d429e7ae40c89e7dcd41cfcc22a0bfbe42510";
-      sha256 = "0kazg5psdn90pqadrzma5chdwh0l2by9z31sspr47gx93fhjmkkq";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/development/tools/database/webdis/default.nix b/nixpkgs/pkgs/development/tools/database/webdis/default.nix
index 96b39e42d101..ec22252cbe02 100644
--- a/nixpkgs/pkgs/development/tools/database/webdis/default.nix
+++ b/nixpkgs/pkgs/development/tools/database/webdis/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "webdis";
-  version = "0.1.10";
+  version = "0.1.11";
 
   src = fetchFromGitHub {
     owner = "nicolasff";
     repo = pname;
     rev = version;
-    sha256 = "1hn4fq0asivfs56rw9ck1vc3g6h6fnwywh8v4zs2bkyn62fg9mcw";
+    sha256 = "162xbx4dhfx4a6sksm7x60gr7ylyila4vidmdf0bn7xlvglggazf";
   };
 
   buildInputs = [ hiredis http-parser jansson libevent ];
diff --git a/nixpkgs/pkgs/development/tools/delve/default.nix b/nixpkgs/pkgs/development/tools/delve/default.nix
index b990fe10b05c..892ee6dd3297 100644
--- a/nixpkgs/pkgs/development/tools/delve/default.nix
+++ b/nixpkgs/pkgs/development/tools/delve/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "delve";
-  version = "1.4.1";
+  version = "1.5.0";
 
   goPackagePath = "github.com/go-delve/delve";
   excludedPackages = "\\(_fixtures\\|scripts\\|service/test\\)";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "go-delve";
     repo = "delve";
     rev = "v${version}";
-    sha256 = "007bc69r26w0sv6v9mbjdnmnkahpfk5998isx81ma7cinqdhi1cj";
+    sha256 = "0m7fryclrj0qzqzcjn0xc9vl43srijyfahfkqdbm59xgpws67anp";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/tools/dep/default.nix b/nixpkgs/pkgs/development/tools/dep/default.nix
index 8d7f3b213caf..8b7c54832e28 100644
--- a/nixpkgs/pkgs/development/tools/dep/default.nix
+++ b/nixpkgs/pkgs/development/tools/dep/default.nix
@@ -21,7 +21,6 @@ buildGoPackage rec {
     homepage = "https://github.com/golang/dep";
     description = "Go dependency management tool";
     license = licenses.bsd3;
-    platforms = platforms.all;
     maintainers = with maintainers; [ carlsverre rvolosatovs ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/dep2nix/deps.nix b/nixpkgs/pkgs/development/tools/dep2nix/deps.nix
index fc9280e9df5b..ceedc50fc887 100644
--- a/nixpkgs/pkgs/development/tools/dep2nix/deps.nix
+++ b/nixpkgs/pkgs/development/tools/dep2nix/deps.nix
@@ -1,145 +1,129 @@
-
-  # file automatically generated from Gopkg.lock with https://github.com/nixcloud/dep2nix (golang dep)
-  [
-  
-    {
-      goPackagePath  = "github.com/Masterminds/semver";
-      fetch = {
-        type = "git";
-        url = "https://github.com/Masterminds/semver";
-        rev =  "a93e51b5a57ef416dac8bb02d11407b6f55d8929";
-        sha256 = "1rd3p135r7iw0lvaa6vk7afxna87chq61a7a0wqnxd3xgpnpa9ik";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/Masterminds/vcs";
-      fetch = {
-        type = "git";
-        url = "https://github.com/Masterminds/vcs";
-        rev =  "6f1c6d150500e452704e9863f68c2559f58616bf";
-        sha256 = "02bpyzccazw9lwqchcz349al4vlxnz4m5gzwigk02zg2qpa1j53j";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/armon/go-radix";
-      fetch = {
-        type = "git";
-        url = "https://github.com/armon/go-radix";
-        rev =  "1fca145dffbcaa8fe914309b1ec0cfc67500fe61";
-        sha256 = "19jws9ngncpbhghzcy7biyb4r8jh14mzknyk67cvq6ln7kh1qyic";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/boltdb/bolt";
-      fetch = {
-        type = "git";
-        url = "https://github.com/boltdb/bolt";
-        rev =  "2f1ce7a837dcb8da3ec595b1dac9d0632f0f99e8";
-        sha256 = "0z7j06lijfi4y30ggf2znak2zf2srv2m6c68ar712wd2ys44qb3r";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/golang/dep";
-      fetch = {
-        type = "git";
-        url = "https://github.com/CrushedPixel/dep";
-        rev =  "fa9f32339c8855ebe7e7bc66e549036a7e06d37a";
-        sha256 = "1knaxs1ji1b0b68393f24r8qzvahxz9x7rqwc8jsjlshvpz0hlm6";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/golang/protobuf";
-      fetch = {
-        type = "git";
-        url = "https://github.com/golang/protobuf";
-        rev =  "bbd03ef6da3a115852eaf24c8a1c46aeb39aa175";
-        sha256 = "1pyli3dcagi7jzpiazph4fhkz7a3z4bhd25nwbb7g0iy69b8z1g4";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/jmank88/nuts";
-      fetch = {
-        type = "git";
-        url = "https://github.com/jmank88/nuts";
-        rev =  "8b28145dffc87104e66d074f62ea8080edfad7c8";
-        sha256 = "1d0xj1dj1lfalq3pg15h0c645n84lf122xx3zkm7hawq9zri6n5k";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/nightlyone/lockfile";
-      fetch = {
-        type = "git";
-        url = "https://github.com/nightlyone/lockfile";
-        rev =  "6a197d5ea61168f2ac821de2b7f011b250904900";
-        sha256 = "03znnf6rzyyi4h4qj81py1xpfs3pnfm39j4bfc9qzakz5j9y1gdl";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/pelletier/go-toml";
-      fetch = {
-        type = "git";
-        url = "https://github.com/pelletier/go-toml";
-        rev =  "acdc4509485b587f5e675510c4f2c63e90ff68a8";
-        sha256 = "1y5m9pngxhsfzcnxh8ma5nsllx74wn0jr47p2n6i3inrjqxr12xh";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/pkg/errors";
-      fetch = {
-        type = "git";
-        url = "https://github.com/pkg/errors";
-        rev =  "645ef00459ed84a119197bfb8d8205042c6df63d";
-        sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/sdboyer/constext";
-      fetch = {
-        type = "git";
-        url = "https://github.com/sdboyer/constext";
-        rev =  "836a144573533ea4da4e6929c235fd348aed1c80";
-        sha256 = "0055yw73di4spa1wwpa2pyb708wmh9r3xd8dcv8pn81dba94if1w";
-      };
-    }
-    
-    {
-      goPackagePath  = "golang.org/x/net";
-      fetch = {
-        type = "git";
-        url = "https://go.googlesource.com/net";
-        rev =  "dc948dff8834a7fe1ca525f8d04e261c2b56e70d";
-        sha256 = "0gkw1am63agb1rgpxr2qhns9npr99mzwrxg7px88qq8h93zzd4kg";
-      };
-    }
-    
-    {
-      goPackagePath  = "golang.org/x/sync";
-      fetch = {
-        type = "git";
-        url = "https://go.googlesource.com/sync";
-        rev =  "fd80eb99c8f653c847d294a001bdf2a3a6f768f5";
-        sha256 = "12lzldlj1cqc1babp1hkkn76fglzn5abkqvmbpr4f2j95mf9x836";
-      };
-    }
-    
-    {
-      goPackagePath  = "golang.org/x/sys";
-      fetch = {
-        type = "git";
-        url = "https://go.googlesource.com/sys";
-        rev =  "37707fdb30a5b38865cfb95e5aab41707daec7fd";
-        sha256 = "1abrr2507a737hdqv4q7pw7hv6ls9pdiq9crhdi52r3gcz6hvizg";
-      };
-    }
-    
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "github.com/Masterminds/semver";
+    fetch = {
+      type = "git";
+      url = "https://github.com/carolynvs/semver.git";
+      rev =  "a93e51b5a57ef416dac8bb02d11407b6f55d8929";
+      sha256 = "1rd3p135r7iw0lvaa6vk7afxna87chq61a7a0wqnxd3xgpnpa9ik";
+    };
+  }
+  {
+    goPackagePath  = "github.com/Masterminds/vcs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Masterminds/vcs";
+      rev =  "6f1c6d150500e452704e9863f68c2559f58616bf";
+      sha256 = "02bpyzccazw9lwqchcz349al4vlxnz4m5gzwigk02zg2qpa1j53j";
+    };
+  }
+  {
+    goPackagePath  = "github.com/armon/go-radix";
+    fetch = {
+      type = "git";
+      url = "https://github.com/armon/go-radix";
+      rev =  "1fca145dffbcaa8fe914309b1ec0cfc67500fe61";
+      sha256 = "19jws9ngncpbhghzcy7biyb4r8jh14mzknyk67cvq6ln7kh1qyic";
+    };
+  }
+  {
+    goPackagePath  = "github.com/boltdb/bolt";
+    fetch = {
+      type = "git";
+      url = "https://github.com/boltdb/bolt";
+      rev =  "2f1ce7a837dcb8da3ec595b1dac9d0632f0f99e8";
+      sha256 = "0z7j06lijfi4y30ggf2znak2zf2srv2m6c68ar712wd2ys44qb3r";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/dep";
+    fetch = {
+      type = "git";
+      url = "https://github.com/CrushedPixel/dep";
+      rev =  "fa9f32339c8855ebe7e7bc66e549036a7e06d37a";
+      sha256 = "1knaxs1ji1b0b68393f24r8qzvahxz9x7rqwc8jsjlshvpz0hlm6";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev =  "bbd03ef6da3a115852eaf24c8a1c46aeb39aa175";
+      sha256 = "1pyli3dcagi7jzpiazph4fhkz7a3z4bhd25nwbb7g0iy69b8z1g4";
+    };
+  }
+  {
+    goPackagePath  = "github.com/jmank88/nuts";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jmank88/nuts";
+      rev =  "8b28145dffc87104e66d074f62ea8080edfad7c8";
+      sha256 = "1d0xj1dj1lfalq3pg15h0c645n84lf122xx3zkm7hawq9zri6n5k";
+    };
+  }
+  {
+    goPackagePath  = "github.com/nightlyone/lockfile";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nightlyone/lockfile";
+      rev =  "6a197d5ea61168f2ac821de2b7f011b250904900";
+      sha256 = "03znnf6rzyyi4h4qj81py1xpfs3pnfm39j4bfc9qzakz5j9y1gdl";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pelletier/go-toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pelletier/go-toml";
+      rev =  "acdc4509485b587f5e675510c4f2c63e90ff68a8";
+      sha256 = "1y5m9pngxhsfzcnxh8ma5nsllx74wn0jr47p2n6i3inrjqxr12xh";
+    };
+  }
+  {
+    goPackagePath  = "github.com/pkg/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/errors";
+      rev =  "645ef00459ed84a119197bfb8d8205042c6df63d";
+      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/sdboyer/constext";
+    fetch = {
+      type = "git";
+      url = "https://github.com/sdboyer/constext";
+      rev =  "836a144573533ea4da4e6929c235fd348aed1c80";
+      sha256 = "0055yw73di4spa1wwpa2pyb708wmh9r3xd8dcv8pn81dba94if1w";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev =  "dc948dff8834a7fe1ca525f8d04e261c2b56e70d";
+      sha256 = "0gkw1am63agb1rgpxr2qhns9npr99mzwrxg7px88qq8h93zzd4kg";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sync";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sync";
+      rev =  "fd80eb99c8f653c847d294a001bdf2a3a6f768f5";
+      sha256 = "12lzldlj1cqc1babp1hkkn76fglzn5abkqvmbpr4f2j95mf9x836";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev =  "37707fdb30a5b38865cfb95e5aab41707daec7fd";
+      sha256 = "1abrr2507a737hdqv4q7pw7hv6ls9pdiq9crhdi52r3gcz6hvizg";
+    };
+  }
 ]
diff --git a/nixpkgs/pkgs/development/tools/devd/default.nix b/nixpkgs/pkgs/development/tools/devd/default.nix
index 1e48ecde7638..2d5a38458d3a 100644
--- a/nixpkgs/pkgs/development/tools/devd/default.nix
+++ b/nixpkgs/pkgs/development/tools/devd/default.nix
@@ -11,12 +11,10 @@ buildGoPackage rec {
   };
   goPackagePath = "github.com/cortesi/devd";
   subPackages = [ "cmd/devd" ];
-  goDeps = ./deps.nix;
   meta = with stdenv.lib; {
     description = "A local webserver for developers";
     homepage = "https://github.com/cortesi/devd";
     license = licenses.mit;
     maintainers = with maintainers; [ brianhicks ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/devd/deps.nix b/nixpkgs/pkgs/development/tools/devd/deps.nix
deleted file mode 100644
index 2cf6dd7eb23b..000000000000
--- a/nixpkgs/pkgs/development/tools/devd/deps.nix
+++ /dev/null
@@ -1,201 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
-  {
-    goPackagePath  = "github.com/GeertJohan/go.rice";
-    fetch = {
-      type = "git";
-      url = "https://github.com/GeertJohan/go.rice";
-      rev =  "c02ca9a983da5807ddf7d796784928f5be4afd09";
-      sha256 = "1wzi3fprizg29dd4b4bmwz49x154k8cry9d7c08441y1i8w895yw";
-    };
-  }
-  {
-    goPackagePath  = "github.com/alecthomas/template";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/template";
-      rev =  "a0175ee3bccc567396460bf5acd36800cb10c49c";
-      sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
-    };
-  }
-  {
-    goPackagePath  = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev =  "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a";
-      sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
-    };
-  }
-  {
-    goPackagePath  = "github.com/bmatcuk/doublestar";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bmatcuk/doublestar";
-      rev =  "85a78806aa1b4707d1dbace9be592cf1ece91ab3";
-      sha256 = "01fd5j142pgsj5gfba43646aa6vd09fzvjhhik2r30nj4lsyy3z8";
-    };
-  }
-  {
-    goPackagePath  = "github.com/cortesi/moddwatch";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cortesi/moddwatch";
-      rev =  "0a1e0881aa8823d4dbec04c5b65a32a33f467e46";
-      sha256 = "0f9gi2vvrhsbbvfqzlx2dcgn389qj1h77rvh2iffqhnsn3cxf5fr";
-    };
-  }
-  {
-    goPackagePath  = "github.com/cortesi/termlog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cortesi/termlog";
-      rev =  "87cefd5ac843f65364f70a1fd2477bb6437690e8";
-      sha256 = "1mygv1bv6dkm5p1wsvzrsyq771k6apdcxlyfqdp5ay8vl75jxvmb";
-    };
-  }
-  {
-    goPackagePath  = "github.com/daaku/go.zipexe";
-    fetch = {
-      type = "git";
-      url = "https://github.com/daaku/go.zipexe";
-      rev =  "a5fe2436ffcb3236e175e5149162b41cd28bd27d";
-      sha256 = "0vi5pskhifb6zw78w2j97qbhs09zmrlk4b48mybgk5b3sswp6510";
-    };
-  }
-  {
-    goPackagePath  = "github.com/dustin/go-humanize";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dustin/go-humanize";
-      rev =  "9f541cc9db5d55bce703bd99987c9d5cb8eea45e";
-      sha256 = "1kqf1kavdyvjk7f8kx62pnm7fbypn9z1vbf8v2qdh3y7z7a0cbl3";
-    };
-  }
-  {
-    goPackagePath  = "github.com/fatih/color";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fatih/color";
-      rev =  "3f9d52f7176a6927daacff70a3e8d1dc2025c53e";
-      sha256 = "165ww24x6ba47ji4j14mp3f006ksnmi53ws9280pgd2zcw91nbn8";
-    };
-  }
-  {
-    goPackagePath  = "github.com/goji/httpauth";
-    fetch = {
-      type = "git";
-      url = "https://github.com/goji/httpauth";
-      rev =  "2da839ab0f4df05a6db5eb277995589dadbd4fb9";
-      sha256 = "0rcz1qxdbc2gw0gaj81kag94k98izs9vmhcp5mzs7979s7q4kym1";
-    };
-  }
-  {
-    goPackagePath  = "github.com/gorilla/websocket";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/websocket";
-      rev =  "66b9c49e59c6c48f0ffce28c2d8b8a5678502c6d";
-      sha256 = "00i4vb31nsfkzzk7swvx3i75r2d960js3dri1875vypk3v2s0pzk";
-    };
-  }
-  {
-    goPackagePath  = "github.com/juju/ratelimit";
-    fetch = {
-      type = "git";
-      url = "https://github.com/juju/ratelimit";
-      rev =  "59fac5042749a5afb9af70e813da1dd5474f0167";
-      sha256 = "0ppwvwbh9jdpdk4f9924vw373cpfz5g5ad10c707p22a984vanrz";
-    };
-  }
-  {
-    goPackagePath  = "github.com/kardianos/osext";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kardianos/osext";
-      rev =  "ae77be60afb1dcacde03767a8c37337fad28ac14";
-      sha256 = "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mattn/go-colorable";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-colorable";
-      rev =  "167de6bfdfba052fa6b2d3664c8f5272e23c9072";
-      sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mattn/go-isatty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-isatty";
-      rev =  "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c";
-      sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mitchellh/go-homedir";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/go-homedir";
-      rev =  "ae18d6b8b3205b561c79e8e5f69bff09736185f4";
-      sha256 = "0f0z0aa4wivk4z1y503dmnw0k0g0g403dly8i4q263gfshs82sbq";
-    };
-  }
-  {
-    goPackagePath  = "github.com/rjeczalik/notify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rjeczalik/notify";
-      rev =  "629144ba06a1c6af28c1e42c228e3d42594ce081";
-      sha256 = "0745w0mdr9xfr4rxw4pfr1sl8apc7wr7mvfykdl4wslq3mdj8a91";
-    };
-  }
-  {
-    goPackagePath  = "github.com/toqueteos/webbrowser";
-    fetch = {
-      type = "git";
-      url = "https://github.com/toqueteos/webbrowser";
-      rev =  "43eedf9c266f511c55ef7eace9ee549e269b54b4";
-      sha256 = "0wa8xv0gh9iq3dlwb48dx8w2awrsarqa900hszan8gaxgag7x7ih";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev =  "505ab145d0a99da450461ae2c1a9f6cd10d1f447";
-      sha256 = "1vbsvcvmjz6c00p5vf8ls533p52fx2y3gy6v4k5qrdlzl4wf0i5s";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev =  "927f97764cc334a6575f4b7a1584a147864d5723";
-      sha256 = "0np7b766gb92vbm514yhdl7cjmqvn0dxdxskd84aas2ri1fkpgw5";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev =  "b4a75ba826a64a70990f11a225237acd6ef35c9f";
-      sha256 = "0kzrd2wywkcq35iakbzplqyma4bvf2ng3mzi7917kxcbdq3fflrj";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/kingpin";
-      rev =  "947dcec5ba9c011838740e680966fd7087a71d0d";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/development/tools/diesel-cli/default.nix b/nixpkgs/pkgs/development/tools/diesel-cli/default.nix
index 6eac1af512b3..6a447dd57c92 100644
--- a/nixpkgs/pkgs/development/tools/diesel-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/diesel-cli/default.nix
@@ -71,7 +71,6 @@ rustPlatform.buildRustPackage rec {
     description = "Database tool for working with Rust projects that use Diesel";
     homepage = "https://github.com/diesel-rs/diesel/tree/master/diesel_cli";
     license = with licenses; [ mit asl20 ];
-    platforms = platforms.all;
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/dive/default.nix b/nixpkgs/pkgs/development/tools/dive/default.nix
index b48d7425b140..3cb050df0363 100644
--- a/nixpkgs/pkgs/development/tools/dive/default.nix
+++ b/nixpkgs/pkgs/development/tools/dive/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0219q9zjc0i6fbdngqh0wjpmq8wj5bjiz5dls0c1aam0lh4vwkhc";
 
+  doCheck = false;
+
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = stdenv.lib.optionals stdenv.isLinux [ btrfs-progs gpgme lvm2 ];
@@ -25,4 +27,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ marsam spacekookie ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/doctl/default.nix b/nixpkgs/pkgs/development/tools/doctl/default.nix
index e65fb4a64b73..45795b67ea4a 100644
--- a/nixpkgs/pkgs/development/tools/doctl/default.nix
+++ b/nixpkgs/pkgs/development/tools/doctl/default.nix
@@ -2,10 +2,12 @@
 
 buildGoModule rec {
   pname = "doctl";
-  version = "1.45.1";
+  version = "1.46.0";
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   subPackages = [ "cmd/doctl" ];
 
   buildFlagsArray = let t = "github.com/digitalocean/doctl"; in ''
@@ -30,14 +32,13 @@ buildGoModule rec {
     owner = "digitalocean";
     repo = "doctl";
     rev = "v${version}";
-    sha256 = "1zzdjpbag23kr6j3c7zkgqaavlna1q792qhs6s234vxm85zmwh4j";
+    sha256 = "1f9gw1qjannswx1vy64a5a2cfr8azsci241pk0xhrhk6aqpjzx1n";
   };
 
   meta = with lib; {
     description = "A command line tool for DigitalOcean services";
     homepage = "https://github.com/digitalocean/doctl";
     license = licenses.asl20;
-    platforms = platforms.all;
     maintainers = [ maintainers.siddharthist ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/documentation/doxygen/default.nix b/nixpkgs/pkgs/development/tools/documentation/doxygen/default.nix
index a8e5f1799161..772b654df935 100644
--- a/nixpkgs/pkgs/development/tools/documentation/doxygen/default.nix
+++ b/nixpkgs/pkgs/development/tools/documentation/doxygen/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
 
-  name = "doxygen-1.8.18";
+  name = "doxygen-1.8.19";
 
   src = fetchurl {
     urls = [
       "mirror://sourceforge/doxygen/${name}.src.tar.gz" # faster, with https, etc.
       "http://doxygen.nl/files/${name}.src.tar.gz"
     ];
-    sha256 = "0mh6s1ri1fs5yb27m0avnjsbcxpchgb9aaprq4bd3lj6vjg3s5qq";
+    sha256 = "1lvqfw2yzba588c5ggl8yhw7aw4xkk44mrghsd9yqlajc48x25dc";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix b/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix
index 3c0b0cff548f..c93ee954ceab 100644
--- a/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix
+++ b/nixpkgs/pkgs/development/tools/documentation/gtk-doc/default.nix
@@ -68,6 +68,10 @@ python3.pkgs.buildPythonApplication rec {
       --replace "${python3}" ""
   '';
 
+  # find: ‘...-gtk-doc-1.32/lib/python3.8/site-packages’: No such file or directory
+  # https://github.com/NixOS/nixpkgs/pull/90208#issuecomment-644051108
+  dontUsePythonRecompileBytecode = true;
+
   passthru = {
     # Consumers are expected to copy the m4 files to their source tree, let them reuse the patch
     respect_xml_catalog_files_var_patch = ./respect-xml-catalog-files-var.patch;
diff --git a/nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix b/nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix
index 3a33925a86f2..5ab74a4b95ff 100644
--- a/nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix
+++ b/nixpkgs/pkgs/development/tools/documentation/mdsh/default.nix
@@ -18,6 +18,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/zimbatm/mdsh";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ zimbatm ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/dot-http/default.nix b/nixpkgs/pkgs/development/tools/dot-http/default.nix
new file mode 100644
index 000000000000..1c81a4145d29
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/dot-http/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, rustPlatform, fetchFromGitHub, pkg-config, openssl, libiconv, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "dot-http";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "bayne";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1s2q4kdldhb5gd14g2h6vzrbjgbbbs9zp2dgmna0rhk1h4qv0mml";
+  };
+
+  cargoSha256 = "0an3hskq1k2j4gdn8wvhfb9pqsc34ibs5bv7sjznkp5jma6fdr9w";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [
+    libiconv Security
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Text-based scriptable HTTP client";
+    homepage = "https://github.com/bayne/dot-http";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mredaelli ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/drip/default.nix b/nixpkgs/pkgs/development/tools/drip/default.nix
index 2a7d2c6626be..b4edf8ec081b 100644
--- a/nixpkgs/pkgs/development/tools/drip/default.nix
+++ b/nixpkgs/pkgs/development/tools/drip/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, jdk, which, makeWrapper }:
+{ stdenv, fetchFromGitHub, jdk8, which, makeWrapper }:
 
 stdenv.mkDerivation rec {
   pname = "drip";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ makeWrapper ];
 
-  buildInputs = [ jdk ];
+  buildInputs = [ jdk8 ];
 
   postPatch = ''
     patchShebangs .
diff --git a/nixpkgs/pkgs/development/tools/dt-schema/default.nix b/nixpkgs/pkgs/development/tools/dt-schema/default.nix
new file mode 100644
index 000000000000..5cba13b66892
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/dt-schema/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, git
+, ruamel_yaml
+, jsonschema
+, rfc3987
+, setuptools
+, setuptools_scm
+}:
+
+buildPythonPackage rec {
+  pname = "dtschema";
+  version = "2020.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1zdm0zbn1dfk02yqghfvd0nb26hmzivb6mln6bvxjfdcv6n7pdqf";
+  };
+
+  nativeBuildInputs = [ setuptools_scm git ];
+  propagatedBuildInputs = [
+    setuptools
+    ruamel_yaml
+    jsonschema
+    rfc3987
+  ];
+
+  meta = with lib; {
+    description = "Tooling for devicetree validation using YAML and jsonschema";
+    homepage = "https://github.com/devicetree-org/dt-schema/";
+    # all files have SPDX tags
+    license = with licenses; [ bsd2 gpl2 ];
+    maintainers = with maintainers; [ sorki ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/development/tools/easyjson/default.nix b/nixpkgs/pkgs/development/tools/easyjson/default.nix
index 4f3d89c07881..ef99bbd01c31 100644
--- a/nixpkgs/pkgs/development/tools/easyjson/default.nix
+++ b/nixpkgs/pkgs/development/tools/easyjson/default.nix
@@ -4,7 +4,6 @@ buildGoPackage {
   pname = "easyjson";
   version = "unstable-2019-06-26";
   goPackagePath = "github.com/mailru/easyjson";
-  goDeps = ./deps.nix;
 
   src = fetchFromGitHub {
     owner = "mailru";
@@ -13,13 +12,10 @@ buildGoPackage {
     sha256 = "0q85h383mhbkcjm2vqm72bi8n2252fv3c56q3lclzb8n2crnjcdk";
   };
 
-  enableParallelBuilding = true;
-
   meta = with stdenv.lib; {
     homepage = "https://github.com/mailru/easyjson";
     description = "Fast JSON serializer for golang";
     license = licenses.mit;
     maintainers = with maintainers; [ chiiruno ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/easyjson/deps.nix b/nixpkgs/pkgs/development/tools/easyjson/deps.nix
deleted file mode 100644
index 0429d8876b29..000000000000
--- a/nixpkgs/pkgs/development/tools/easyjson/deps.nix
+++ /dev/null
@@ -1,3 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-]
diff --git a/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix b/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix
new file mode 100644
index 000000000000..44411d0db72c
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/eclipse-mat/default.nix
@@ -0,0 +1,119 @@
+{ buildEnv
+, fetchurl
+, fontconfig
+, freetype
+, glib
+, gsettings-desktop-schemas
+, gtk3
+, jdk11
+, lib
+, libX11
+, libXrender
+, libXtst
+, makeDesktopItem
+, makeWrapper
+, shared-mime-info
+, stdenv
+, unzip
+, webkitgtk
+, zlib
+}:
+
+with lib;
+let
+  pVersion = "1.10.0.20200225";
+  pVersionTriple = splitVersion pVersion;
+  majorVersion = elemAt pVersionTriple 0;
+  minorVersion = elemAt pVersionTriple 1;
+  patchVersion = elemAt pVersionTriple 2;
+  baseVersion = "${majorVersion}.${minorVersion}.${patchVersion}";
+  jdk = jdk11;
+in
+stdenv.mkDerivation rec {
+  pname = "eclipse-mat";
+  version = "${pVersion}";
+
+  src = fetchurl {
+    url = "http://ftp.halifax.rwth-aachen.de/eclipse//mat/${baseVersion}/rcp/MemoryAnalyzer-${version}-linux.gtk.x86_64.zip";
+    sha256 = "11cg01gjjvlm6lr6z6rwqs1r31xx5pxddnz55ca0s33lrnywf9fx";
+  };
+
+  desktopItem = makeDesktopItem {
+    name = "eclipse-mat";
+    exec = "eclipse-mat";
+    icon = "eclipse";
+    comment = "Eclipse Memory Analyzer";
+    desktopName = "Eclipse MAT";
+    genericName = "Java Memory Analyzer";
+    categories = "Development;";
+  };
+
+  unpackPhase = ''
+    unzip $src
+  '';
+
+  buildCommand = ''
+    mkdir -p $out
+    unzip $src
+    mv mat $out
+
+    # Patch binaries.
+    interpreter=$(echo ${stdenv.glibc.out}/lib/ld-linux*.so.2)
+    libCairo=$out/eclipse/libcairo-swt.so
+    patchelf --set-interpreter $interpreter $out/mat/MemoryAnalyzer
+    [ -f $libCairo ] && patchelf --set-rpath ${
+      stdenv.lib.makeLibraryPath [ freetype fontconfig libX11 libXrender zlib ]
+    } $libCairo
+
+    # Create wrapper script.  Pass -configuration to store settings in ~/.eclipse-mat/<version>
+    makeWrapper $out/mat/MemoryAnalyzer $out/bin/eclipse-mat \
+      --prefix PATH : ${jdk}/bin \
+      --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath ([ glib gtk3 libXtst webkitgtk ])} \
+      --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH" \
+      --add-flags "-configuration \$HOME/.eclipse-mat/''${version}/configuration"
+
+    # Create desktop item.
+    mkdir -p $out/share/applications
+    cp ${desktopItem}/share/applications/* $out/share/applications
+    mkdir -p $out/share/pixmaps
+    find $out/mat/plugins -name 'eclipse*.png' -type f -exec cp {} $out/share/pixmaps \;
+    mv $out/share/pixmaps/eclipse64.png $out/share/pixmaps/eclipse.png
+  '';
+
+  buildInputs = [
+    fontconfig
+    freetype
+    glib
+    gsettings-desktop-schemas
+    gtk3
+    jdk
+    libX11
+    libXrender
+    libXtst
+    makeWrapper
+    zlib
+    unzip
+    shared-mime-info
+    webkitgtk
+  ];
+
+  dontBuild = true;
+  dontConfigure = true;
+
+  meta = with stdenv.lib; {
+    description = "Fast and feature-rich Java heap analyzer";
+    longDescription = ''
+      The Eclipse Memory Analyzer is a tool that helps you find memory
+      leaks and reduce memory consumption. Use the Memory Analyzer to
+      analyze productive heap dumps with hundreds of millions of
+      objects, quickly calculate the retained sizes of objects, see
+      who is preventing the Garbage Collector from collecting objects,
+      run a report to automatically extract leak suspects.
+    '';
+    homepage = "https://www.eclipse.org/mat";
+    license = licenses.epl20;
+    maintainers = [ maintainers.ktor ];
+    platforms = [ "x86_64-linux" ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/development/tools/ejson/default.nix b/nixpkgs/pkgs/development/tools/ejson/default.nix
index a9481cbb306e..17e3f5f7be19 100644
--- a/nixpkgs/pkgs/development/tools/ejson/default.nix
+++ b/nixpkgs/pkgs/development/tools/ejson/default.nix
@@ -16,8 +16,6 @@ in buildGoPackage rec {
   goPackagePath = "github.com/Shopify/ejson";
   subPackages = [ "cmd/ejson" ];
 
-  goDeps = ./deps.nix;
-
   src = fetchFromGitHub {
     owner = "Shopify";
     repo = "ejson";
diff --git a/nixpkgs/pkgs/development/tools/ejson/deps.nix b/nixpkgs/pkgs/development/tools/ejson/deps.nix
deleted file mode 100644
index b0c7defc5d78..000000000000
--- a/nixpkgs/pkgs/development/tools/ejson/deps.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
-  {
-    goPackagePath  = "github.com/codegangsta/cli";
-    fetch = {
-      type = "git";
-      url = "https://github.com/codegangsta/cli";
-      rev =  "9908e96513e5a94de37004098a3974a567f18111";
-      sha256 = "0g6sihdb53nlf770dp3jc0qqxnlir5n2yjbp5p5vf7kcj3p54p34";
-    };
-  }
-  {
-    goPackagePath  = "github.com/dustin/gojson";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dustin/gojson";
-      rev =  "057ac0edc14e44d03df3bb03449e666ff50884c1";
-      sha256 = "1kzzbi5yshcg1v99gab5ymd3psild3p0rbq9jf7mssjvh11yza6f";
-    };
-  }
-  {
-    goPackagePath  = "github.com/smartystreets/goconvey";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smartystreets/goconvey";
-      rev =  "90f2eae17a8bdcbe3f6f654fc76af7f39e97d7b9";
-      sha256 = "0s984ksmc8npf642nwwd1a81c2sfi613v7yia9jff710i5472fah";
-    };
-  }
-  {
-    goPackagePath  = "github.com/urfave/cli";
-    fetch = {
-      type = "git";
-      url = "https://github.com/urfave/cli";
-      rev =  "cfb38830724cc34fedffe9a2a29fb54fa9169cd1";
-      sha256 = "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev =  "ca7e7f10cb9fd9c1a6ff7f60436c086d73714180";
-      sha256 = "02wmfdq40fjszrd9l2w4c1g34zxnxyydwr4sqvp2blmw2s6ww4bx";
-    };
-  }
-]
\ No newline at end of file
diff --git a/nixpkgs/pkgs/development/tools/electron/default.nix b/nixpkgs/pkgs/development/tools/electron/default.nix
index 14f9c209537d..c9df28e5cded 100644
--- a/nixpkgs/pkgs/development/tools/electron/default.nix
+++ b/nixpkgs/pkgs/development/tools/electron/default.nix
@@ -3,7 +3,10 @@
 let
   mkElectron = import ./generic.nix args;
 in
-{
+rec {
+
+  electron = electron_10;
+
   electron_3 = mkElectron "3.1.13" {
     x86_64-linux = "1psmbplz6jhnnf6hmfhxbmmhn4n1dpnhzbc12pxn645xhfpk9ark";
     x86_64-darwin = "1vvjm4jifzjqvbs2kjlwg1h9p2czr2b5imjr9hld1j8nyfrzb0dx";
@@ -36,27 +39,35 @@ in
     aarch64-linux = "4ae23b75be821044f7e5878fe8e56ab3109cbd403ecd88221effa6abf850260b";
   };
 
-  electron_7 = mkElectron "7.3.1" {
-    x86_64-linux = "66f37aadf65c0274cc6e46b09e52c38b2c8c5b2d6bbf1cd8196cd69b9f9ab737";
-    x86_64-darwin = "351b30cab32539752ce5f9b53d2345352df922d57a152643c4eeb636a8941d23";
-    i686-linux = "f80b8a684da13736d7614ca4ad5704812d12537111cb45010e5f42e7e4403554";
-    armv7l-linux = "ef054696f4138e261b1310522d57bbdc5336e34488b3e273a8a794f8c26509c7";
-    aarch64-linux = "f32376ca85c9017b7ab399e58fa176d882baacb048dd69d816831f8dde9054bb";
+  electron_7 = mkElectron "7.3.3" {
+    x86_64-linux = "a947228a859149bec5bd937f9f3c03eb0aa4d78cfe4dfa9aead60d3646a357f9";
+    x86_64-darwin = "e081436abef52212065f560ea6add1c0cd13d287a1b3cc76b28d2762f7651a4e";
+    i686-linux = "5fb756900af43a9daa6c63ccd0ac4752f5a479b8c6ae576323fd925dbe5ecbf5";
+    armv7l-linux = "830678f6db27fa4852cf456d8b2828a3e4e3c63fe2bced6b358eae88d1063793";
+    aarch64-linux = "03d06120464c353068e2ac6c40f89eedffd6b5b3c4c96efdb406c96a6136a066";
+  };
+
+  electron_8 = mkElectron "8.5.1" {
+    x86_64-linux = "e58bf26ba52e43de77115b6e6844eba8a8cec2ac8aae500cf48fe862014202d9";
+    x86_64-darwin = "cf0d42ecde7ca374ddf1b440aaaf441e16a02890112fcbffc03f37f8ec3b1958";
+    i686-linux = "4c7ff6225b1ac4b710c454072d9fb8c04a66bb0353e7d6cffb89bcf6d4458d81";
+    armv7l-linux = "13afd8b2e36eb8d1582687e16fac5394d6d3b9734d73f94d0d6ef843ba14cec2";
+    aarch64-linux = "ff39e5e0e644cbf4ff1d29fc25e94b9eced7ea45d787d1b86fa4e50513336b7b";
   };
 
-  electron_8 = mkElectron "8.3.1" {
-    x86_64-linux = "d5ad2bd32f7bf88f869a401017b35be0ea71e6fc7798fe2397b21602573e2639";
-    x86_64-darwin = "abe864d9e6327d499120f328e699f4819110d4245bce2f92b84e19d8cdc1c771";
-    i686-linux = "e75692c062b15c7f664cf3ff30832a526f3f66080469f7f93befaa4e0860c011";
-    armv7l-linux = "cfa0a14225b617492a311c21ad973f24708bc4013a992271368006cdb12ed488";
-    aarch64-linux = "1b9cd3ed7eb53ed914ac04c82d736c2677af807e553c87f0698890c2a3dcfd57";
+  electron_9 = mkElectron "9.3.0" {
+    x86_64-linux = "0c34fa1dbf7708bd4a3f08fde50eafb9903b1c467104dca3e3ced5e7f764b302";
+    x86_64-darwin = "25057470c2f3a1c40fa1c25086256041fa70419378fa3d41eeb805ebd3919b20";
+    i686-linux = "ea09d10e496450d2d7bb7a37cab7124cc5484117dd7d7d6c4106586ff675d1d5";
+    armv7l-linux = "a8b46d6c98546d605a02850c906408dc11104e8ee4366c3d8a956896fafdfcd3";
+    aarch64-linux = "791d898d02e45975657ed15f2d83af31d5688e7db0075a6e20021db3420eb320";
   };
 
-  electron_9 = mkElectron "9.0.2" {
-    x86_64-linux = "08326f505692010d6c92f444a25f450cf19323cd98c5d94cab1057e80601caa1";
-    x86_64-darwin = "8ab5b48f873582a9231bc85b0f73d9735fabca51364b8c505da8f8238d658da5";
-    i686-linux = "2e950e4ab91453f7611fcfedbe90eff844677dbcc7df87a6fe0889bd3d82daaa";
-    armv7l-linux = "cc098caebbed5022f26d12f9b5dc316a35dbae0bcf62b9fc72c3b385f93a32d5";
-    aarch64-linux = "ee39854d8e9ee06e9b94c457a52b0556f570316bbd755d7022e3eade4b5974d5";
+  electron_10 = mkElectron "10.1.1" {
+    x86_64-linux = "4147e88bdbec6893bf9927f0d4f3dd090d26705f5b7f688223bc65253a8b0220";
+    x86_64-darwin = "5b6814ae1064cc337efcdb2ad01ab9daa003a6a1d6e05d79288ede0a3665b991";
+    i686-linux = "d29682b7ea44dcdca5e7265bd1e28046275295a9ac23982af3d216a7f47a7a57";
+    armv7l-linux = "341a2eacb0381c1f409b8e28cf2c0fe6f75a61410614baf80309f51dd4201a34";
+    aarch64-linux = "d5e5b069f3173ed89f4cca7e9723f28a5f7a720637b7addac02972c5db042b6c";
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/electron/generic.nix b/nixpkgs/pkgs/development/tools/electron/generic.nix
index 04b610dde1c5..f24358676dd7 100644
--- a/nixpkgs/pkgs/development/tools/electron/generic.nix
+++ b/nixpkgs/pkgs/development/tools/electron/generic.nix
@@ -10,6 +10,7 @@ let
     license = licenses.mit;
     maintainers = with maintainers; [ travisbhartwell manveru prusnak ];
     platforms = [ "x86_64-darwin" "x86_64-linux" "i686-linux" "armv7l-linux" "aarch64-linux" ];
+    knownVulnerabilities = optional (versionOlder version "6.0.0") "Electron version ${version} is EOL";
   };
 
   fetcher = vers: tag: hash: fetchurl {
@@ -33,7 +34,7 @@ let
     src = fetcher version (get tags platform) (get hashes platform);
   };
 
-  electronLibPath = stdenv.lib.makeLibraryPath ([ libuuid at-spi2-atk at-spi2-core ] ++ stdenv.lib.optionals (version > "9") [ libdrm mesa ]);
+  electronLibPath = with stdenv.lib; makeLibraryPath ([ libuuid at-spi2-atk at-spi2-core ] ++ optionals (! versionOlder version "9.0.0") [ libdrm mesa ]);
 
   linux = {
     buildInputs = [ glib gtk3 ];
diff --git a/nixpkgs/pkgs/development/tools/eliot-tree/default.nix b/nixpkgs/pkgs/development/tools/eliot-tree/default.nix
new file mode 100644
index 000000000000..95108c21bb9c
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/eliot-tree/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "eliot-tree";
+  version = "19.0.1";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "18gvijsm0vh3x83mv8dd80c3mpm80r7i111qsg4y7rj4i590phma";
+  };
+
+  checkInputs = with python3Packages; [
+    testtools
+    pytest
+   ];
+
+  propagatedBuildInputs = with python3Packages; [
+    colored
+    eliot
+    iso8601
+    jmespath
+    setuptools
+    toolz
+  ];
+
+  # Tests run eliot-tree in out/bin.
+  checkPhase = ''
+    export PATH=$out/bin:$PATH
+    pytest
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/jonathanj/eliottree";
+    description = "Render Eliot logs as an ASCII tree";
+    license = licenses.mit;
+    maintainers = [ maintainers.dpausp ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/fdroidserver/default.nix b/nixpkgs/pkgs/development/tools/fdroidserver/default.nix
index c038e4fdfaf1..2b96830b0022 100644
--- a/nixpkgs/pkgs/development/tools/fdroidserver/default.nix
+++ b/nixpkgs/pkgs/development/tools/fdroidserver/default.nix
@@ -4,14 +4,14 @@
 , lib }:
 
 python.pkgs.buildPythonApplication rec {
-  version = "1.1.7";
+  version = "1.1.9";
   pname = "fdroidserver";
 
   src = fetchFromGitLab {
     owner = "fdroid";
     repo = "fdroidserver";
     rev = version;
-    sha256 = "1xs4qmja7mm9m67368k2s9p7pmkdx9xz4g3xrsks0s8hwwyliz1s";
+    sha256 = "098dcg8jdi4q1prfjmd2lbhcyzb8fmmfhbxhid4kqx8vcv7r0iql";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/tools/fedora-coreos-config-transpiler/default.nix b/nixpkgs/pkgs/development/tools/fedora-coreos-config-transpiler/default.nix
new file mode 100644
index 000000000000..7ff7af7d18e7
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/fedora-coreos-config-transpiler/default.nix
@@ -0,0 +1,37 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+with lib;
+
+buildGoModule rec {
+  pname = "fcct";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "coreos";
+    repo = "fcct";
+    rev = "v${version}";
+    sha256 = "18hmnip1s0smp58q500p8dfbrmi4i3nsyq22ri5cs53wbvz3ih1l";
+  };
+
+  vendorSha256 = null;
+
+  doCheck = false;
+
+  subPackages = [ "internal" ];
+
+  buildFlagsArray = ''
+    -ldflags=-X github.com/coreos/fcct/internal/version.Raw=v${version}
+  '';
+
+  postInstall = ''
+    mv $out/bin/{internal,fcct}
+  '';
+
+  meta = {
+    description = "Translates Fedora CoreOS configs into Ignition configs";
+    license = licenses.asl20;
+    homepage = "https://github.com/coreos/fcct";
+    maintainers = with maintainers; [ elijahcaine ruuda ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix b/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix
index 85b68cff20d8..79c8236a065d 100644
--- a/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix
+++ b/nixpkgs/pkgs/development/tools/flatpak-builder/default.nix
@@ -46,13 +46,13 @@ let
   installed_test_metadir = "${placeholder "installedTests"}/share/installed-tests/flatpak-builder";
 in stdenv.mkDerivation rec {
   pname = "flatpak-builder";
-  version = "1.0.10";
+  version = "1.0.11";
 
   outputs = [ "out" "doc" "man" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/flatpak/flatpak-builder/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "1fn61cl1d33yd1jgqm8jpffjw3xlyyhkn032g14d9gnwkcaf4649";
+    sha256 = "EYNLdrvSs8S/GCYy0jGsnP1+C988y1j7WzcLfczM1Ew=";
   };
 
   nativeBuildInputs = [
@@ -87,9 +87,11 @@ in stdenv.mkDerivation rec {
   patches = [
     # patch taken from gtk_doc
     ./respect-xml-catalog-files-var.patch
+
+    # Hardcode paths
     (substituteAll {
       src = ./fix-paths.patch;
-      bzr = "${breezy}/bin/bzr";
+      brz = "${breezy}/bin/brz";
       cp = "${coreutils}/bin/cp";
       patch = "${patch}/bin/patch";
       tar = "${gnutar}/bin/tar";
diff --git a/nixpkgs/pkgs/development/tools/flatpak-builder/fix-paths.patch b/nixpkgs/pkgs/development/tools/flatpak-builder/fix-paths.patch
index e24fade68669..c0df2c6cbe7e 100644
--- a/nixpkgs/pkgs/development/tools/flatpak-builder/fix-paths.patch
+++ b/nixpkgs/pkgs/development/tools/flatpak-builder/fix-paths.patch
@@ -1,5 +1,16 @@
+diff --git a/src/builder-context.c b/src/builder-context.c
+index dde12790..3a379297 100644
 --- a/src/builder-context.c
 +++ b/src/builder-context.c
+@@ -256,7 +256,7 @@ builder_context_init (BuilderContext *self)
+   g_autofree char *path = NULL;
+ 
+   self->rofiles_file_lock = init;
+-  path = g_find_program_in_path ("rofiles-fuse");
++  path = g_find_program_in_path ("@rofilesfuse@");
+   self->have_rofiles = path != NULL;
+ }
+ 
 @@ -800,7 +800,7 @@ builder_context_enable_rofiles (BuilderContext *self,
    g_autoptr(GFile) rofiles_base = NULL;
    g_autoptr(GFile) rofiles_dir = NULL;
@@ -9,6 +20,8 @@
                     "-o",
                     "kernel_cache,entry_timeout=60,attr_timeout=60,splice_write,splice_move",
                     (char *)flatpak_file_get_path_cached (self->app_dir),
+diff --git a/src/builder-git.c b/src/builder-git.c
+index ef517adb..6ab095f0 100644
 --- a/src/builder-git.c
 +++ b/src/builder-git.c
 @@ -44,7 +44,7 @@ git (GFile   *dir,
@@ -29,6 +42,8 @@
    va_end (ap);
  
    return res;
+diff --git a/src/builder-source-archive.c b/src/builder-source-archive.c
+index 3c694e57..0de62318 100644
 --- a/src/builder-source-archive.c
 +++ b/src/builder-source-archive.c
 @@ -443,7 +443,7 @@ tar (GFile   *dir,
@@ -67,17 +82,21 @@
    va_end (ap);
  
    return res;
+diff --git a/src/builder-source-bzr.c b/src/builder-source-bzr.c
+index ceeec94a..8abe6f53 100644
 --- a/src/builder-source-bzr.c
 +++ b/src/builder-source-bzr.c
 @@ -124,7 +124,7 @@ bzr (GFile   *dir,
+   gboolean res;
    va_list ap;
  
-   va_start (ap, error);
--  res = flatpak_spawn (dir, output, 0, error, "bzr", ap);
-+  res = flatpak_spawn (dir, output, 0, error, "@bzr@", ap);
-   va_end (ap);
+-  brz = g_find_program_in_path ("brz");
++  brz = g_find_program_in_path ("@brz@");
  
-   return res;
+   va_start (ap, error);
+   res = flatpak_spawn (dir, output, 0, error, brz ? brz : "bzr", ap);
+diff --git a/src/builder-source-patch.c b/src/builder-source-patch.c
+index 8721e1e4..d7f4d840 100644
 --- a/src/builder-source-patch.c
 +++ b/src/builder-source-patch.c
 @@ -247,15 +247,15 @@ patch (GFile      *dir,
@@ -99,6 +118,8 @@
    }
    for (i = 0; extra_options != NULL && extra_options[i] != NULL; i++)
      g_ptr_array_add (args, (gchar *) extra_options[i]);
+diff --git a/src/builder-utils.c b/src/builder-utils.c
+index f1c06db5..2e3347c5 100644
 --- a/src/builder-utils.c
 +++ b/src/builder-utils.c
 @@ -149,7 +149,7 @@ strip (GError **error,
diff --git a/nixpkgs/pkgs/development/tools/flyway/default.nix b/nixpkgs/pkgs/development/tools/flyway/default.nix
index adb36d8e92cb..c89b7acc51d8 100644
--- a/nixpkgs/pkgs/development/tools/flyway/default.nix
+++ b/nixpkgs/pkgs/development/tools/flyway/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, jre_headless, makeWrapper }:
   let
-    version = "6.4.4";
+    version = "6.5.5";
   in
     stdenv.mkDerivation {
       pname = "flyway";
       inherit version;
       src = fetchurl {
         url = "https://repo1.maven.org/maven2/org/flywaydb/flyway-commandline/${version}/flyway-commandline-${version}.tar.gz";
-        sha256 = "16zckqq64jv3031ssrvzw4ny98gnxhy2hsdp877i38zxqsvzdcym";
+        sha256 = "0g40lgrm9cslkdr4yn0h737djdr9fdyrc4hkq7wsrj0wx6d819dn";
       };
       nativeBuildInputs = [ makeWrapper ];
       dontBuild = true;
diff --git a/nixpkgs/pkgs/development/tools/gauge/default.nix b/nixpkgs/pkgs/development/tools/gauge/default.nix
index c9a462f1832e..8755466ec8ce 100644
--- a/nixpkgs/pkgs/development/tools/gauge/default.nix
+++ b/nixpkgs/pkgs/development/tools/gauge/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "gauge";
-  version = "1.1.1";
+  version = "1.1.3";
 
   goPackagePath = "github.com/getgauge/gauge";
   excludedPackages = ''\(build\|man\)'';
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "getgauge";
     repo = "gauge";
     rev = "v${version}";
-    sha256 = "01x4838jljhhhcwfh6zbhy3g7l7nqvypv3g0ch9n2amsf2s16s3l";
+    sha256 = "11qllg1alv9khkgjarpzlsqg5ygisjprg79n2jqhv1w6izx88cqc";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/tools/gdm/default.nix b/nixpkgs/pkgs/development/tools/gdm/default.nix
index 284579fd362a..2217ea591ffa 100644
--- a/nixpkgs/pkgs/development/tools/gdm/default.nix
+++ b/nixpkgs/pkgs/development/tools/gdm/default.nix
@@ -19,7 +19,6 @@ buildGoPackage rec {
     description = "Minimalist dependency manager for Go written in Go.";
     homepage = "https://github.com/sparrc/gdm";
     license = licenses.unlicense;
-    platforms = platforms.all;
     maintainers = [ maintainers.mic92 ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/ginkgo/default.nix b/nixpkgs/pkgs/development/tools/ginkgo/default.nix
new file mode 100644
index 000000000000..cf2e649962c6
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/ginkgo/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "ginkgo";
+  version = "1.14.1";
+
+  src = fetchFromGitHub {
+    owner = "onsi";
+    repo = "ginkgo";
+    rev = "v${version}";
+    sha256 = "01nn33r1rg210zv0qmck0b16545gzr057w1kz8ca86l64qrwbcxx";
+  };
+  vendorSha256 = "072amyw1ir18v9vk268j2y7dhw3lfwvxzvzsdqhnp50rxsa911bx";
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "BDD Testing Framework for Go";
+    homepage = "https://github.com/onsi/ginkgo";
+    license = licenses.mit;
+    maintainers = with maintainers; [ saschagrunert ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/gir/default.nix b/nixpkgs/pkgs/development/tools/gir/default.nix
index 49e1e6bbe8b8..02a3c13afb3d 100644
--- a/nixpkgs/pkgs/development/tools/gir/default.nix
+++ b/nixpkgs/pkgs/development/tools/gir/default.nix
@@ -18,6 +18,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/gtk-rs/gir/";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ekleog ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix b/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix
index 1c5811f7b5ab..0ceb6f566a31 100644
--- a/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix
+++ b/nixpkgs/pkgs/development/tools/git-quick-stats/default.nix
@@ -1,14 +1,46 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv
+, fetchFromGitHub
+, makeWrapper
+, coreutils
+, gawk
+, git
+, gnugrep
+, ncurses
+, utillinux
+}:
+
 stdenv.mkDerivation rec {
   pname = "git-quick-stats";
-  version = "2.1.1";
+  version = "2.1.4";
+
   src = fetchFromGitHub {
     repo = "git-quick-stats";
     owner = "arzzen";
     rev = version;
-    sha256 = "1mdja838jxhcasi251fsc3yig3s5vmfqab1wpm34xinr8blii90f";
+    sha256 = "0fg0fijghcz7hvbc9y8dfksz0qmsz700kc2mfb03y90kja99v68y";
   };
-  PREFIX = builtins.placeholder "out";
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installFlags = [
+    "PREFIX=${builtins.placeholder "out"}"
+  ];
+
+  postInstall =
+    let
+      path = stdenv.lib.makeBinPath [
+        coreutils
+        gawk
+        git
+        gnugrep
+        ncurses
+        utillinux
+      ];
+    in
+    ''
+      wrapProgram $out/bin/git-quick-stats --suffix PATH : ${path}
+    '';
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/arzzen/git-quick-stats";
     description = "A simple and efficient way to access various statistics in git repository";
diff --git a/nixpkgs/pkgs/development/tools/gllvm/default.nix b/nixpkgs/pkgs/development/tools/gllvm/default.nix
index 6b64a088353e..7c4213b4cc0b 100644
--- a/nixpkgs/pkgs/development/tools/gllvm/default.nix
+++ b/nixpkgs/pkgs/development/tools/gllvm/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "gllvm";
-  version = "1.2.6";
+  version = "1.2.7";
 
   goPackagePath = "github.com/SRI-CSL/gllvm";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "SRI-CSL";
     repo = "gllvm";
     rev = "v${version}";
-    sha256 = "0qzmrprc7npc0ln6mhkjrm8fgh2n94rdylixk11p6imxyx5fj3gg";
+    sha256 = "13cmmgbcdfgyxnxqfrn4m6vf0bhpday8lmrr3sm6rk48g77cq203";
   };
 
   meta = with stdenv.lib; {
@@ -18,6 +18,5 @@ buildGoPackage rec {
     description = "Whole Program LLVM: wllvm ported to go";
     license = licenses.bsd3;
     maintainers = with maintainers; [ dtzWill ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/global-platform-pro/default.nix b/nixpkgs/pkgs/development/tools/global-platform-pro/default.nix
index a9fb671f4a3b..2f125d3ea8a3 100644
--- a/nixpkgs/pkgs/development/tools/global-platform-pro/default.nix
+++ b/nixpkgs/pkgs/development/tools/global-platform-pro/default.nix
@@ -1,5 +1,6 @@
-{ stdenv, fetchFromGitHub, jdk, maven, makeWrapper, jre_headless, pcsclite }:
+{ stdenv, fetchFromGitHub, jdk8, maven, makeWrapper, jre8_headless, pcsclite }:
 
+let jdk = jdk8; jre_headless = jre8_headless; in
 # TODO: This is quite a bit of duplicated logic with gephi. Factor it out?
 stdenv.mkDerivation rec {
   pname = "global-platform-pro";
diff --git a/nixpkgs/pkgs/development/tools/go-bindata-assetfs/default.nix b/nixpkgs/pkgs/development/tools/go-bindata-assetfs/default.nix
index ffdb2a092a05..30344a52e065 100644
--- a/nixpkgs/pkgs/development/tools/go-bindata-assetfs/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-bindata-assetfs/default.nix
@@ -16,7 +16,6 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     description = "Serve embedded files from jteeuwen/go-bindata";
     license = licenses.bsd2;
-    platforms = platforms.all;
     maintainers = with maintainers; [ avnik ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/go-bindata/default.nix b/nixpkgs/pkgs/development/tools/go-bindata/default.nix
index 9db1501f9405..9256fab43bf8 100644
--- a/nixpkgs/pkgs/development/tools/go-bindata/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-bindata/default.nix
@@ -20,6 +20,5 @@ buildGoPackage {
     description = "A small utility which generates Go code from any file, useful for embedding binary data in a Go program";
     maintainers = with maintainers; [ cstrahan ];
     license = licenses.cc0;
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/go-junit-report/default.nix b/nixpkgs/pkgs/development/tools/go-junit-report/default.nix
index 3c6cf7e3d83b..96ebce0eaca6 100644
--- a/nixpkgs/pkgs/development/tools/go-junit-report/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-junit-report/default.nix
@@ -19,6 +19,5 @@ buildGoPackage rec {
     homepage    = "https://${goPackagePath}";
     maintainers = with maintainers; [ cryptix ];
     license     = licenses.mit;
-    platforms   = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/go-migrate/default.nix b/nixpkgs/pkgs/development/tools/go-migrate/default.nix
new file mode 100644
index 000000000000..ee942beb92cc
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/go-migrate/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "go-migrate";
+  version = "4.12.2";
+
+  src = fetchFromGitHub {
+    owner = "golang-migrate";
+    repo = "migrate";
+    rev = "v${version}";
+    sha256 = "0vrc9y90aamj618sfipq2sgzllhdr4hmicj4yvl147klwb1rxlz6";
+  };
+
+  vendorSha256 = "0jpz5xvwsw4l7nmi7s1grvbfy4xjp50hrjycwicgv2ll719gz5v0";
+
+  subPackages = [ "cmd/migrate" ];
+
+  meta = with stdenv.lib; {
+    homepage    = "https://github.com/golang-migrate/migrate";
+    description = "Database migrations. CLI and Golang library.";
+    maintainers = with maintainers; [ offline ];
+    license     = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/go-protobuf/default.nix b/nixpkgs/pkgs/development/tools/go-protobuf/default.nix
index 62a750269209..28d429c64328 100644
--- a/nixpkgs/pkgs/development/tools/go-protobuf/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-protobuf/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "04w9vhkrwb2zfqk73xmhignjyvjqmz1j93slkqp7v8jj2dhyla54";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage    = "https://github.com/golang/protobuf";
     description = " Go bindings for protocol buffer";
@@ -20,4 +22,4 @@ buildGoModule rec {
     license     = licenses.bsd3;
     platforms   = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/go-repo-root/default.nix b/nixpkgs/pkgs/development/tools/go-repo-root/default.nix
index 7fcec1937c7a..3392a19b6360 100644
--- a/nixpkgs/pkgs/development/tools/go-repo-root/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-repo-root/default.nix
@@ -4,7 +4,7 @@ buildGoPackage rec {
   pname = "go-repo-root";
   version = "20140911-${stdenv.lib.strings.substring 0 7 rev}";
   rev = "90041e5c7dc634651549f96814a452f4e0e680f9";
-  
+
   goPackagePath = "github.com/cstrahan/go-repo-root";
 
   src = fetchgit {
diff --git a/nixpkgs/pkgs/development/tools/go-swag/default.nix b/nixpkgs/pkgs/development/tools/go-swag/default.nix
new file mode 100644
index 000000000000..0a0eb41d6131
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/go-swag/default.nix
@@ -0,0 +1,24 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "go-swag";
+  version = "1.6.7";
+
+  src = fetchFromGitHub {
+    owner = "swaggo";
+    repo = "swag";
+    rev = "df209afeed2334a97c83aff34ea7abcad85c31f6";
+    sha256 = "17pmcfkcmgjvs4drs0fyhp2m39gw83s0ck3rdzdkgdhrbhva9ksx";
+  };
+
+  vendorSha256 = "1i2n2sz2hc89nf2fqfq3swldz0xwrnms4j9q0lrss5gm3bk49q7f";
+
+  subPackages = [ "cmd/swag" ];
+
+  meta = with lib; {
+    description = "Automatically generate RESTful API documentation with Swagger 2.0 for Go";
+    homepage = "https://github.com/swaggo/swag";
+    license = licenses.mit;
+    maintainers = with maintainers; [ stephenwithph ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/go-swagger/default.nix b/nixpkgs/pkgs/development/tools/go-swagger/default.nix
index e2a0402348a1..7f0a1a50b6d5 100644
--- a/nixpkgs/pkgs/development/tools/go-swagger/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-swagger/default.nix
@@ -2,19 +2,23 @@
 
 buildGoModule rec {
   pname = "go-swagger";
-  version = "0.24.0";
+  version = "0.25.0";
 
   src = fetchFromGitHub {
     owner = "go-swagger";
     repo = pname;
     rev = "v${version}";
-    sha256 = "051av25vnrcpvj9w6mqalwk7byw52m2dlh1m56y30xvm0ybbnayn";
+    sha256 = "05zyja58ff0k4fsfmb1j8q5p7lysi78m7jklrzz2xv8ianifkfbg";
   };
 
-  vendorSha256 = "020z4izc8i4yhbbr8h2fn8bqbis9q9yfcrjnixd6rsiayw1brh4p";
+  vendorSha256 = "0vvr167spwk7whqzdp5vd8sm0qwc5g3namm4iqw3vff2pifjgs40";
+
+  doCheck = false;
 
   subPackages = [ "cmd/swagger" ];
 
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/go-swagger/go-swagger/cmd/swagger/commands.Version=${version} -X github.com/go-swagger/go-swagger/cmd/swagger/commands.Commit=${src.rev}" ];
+
   meta = with lib; {
     description = "Golang implementation of Swagger 2.0, representation of your RESTful API";
     homepage = "https://github.com/go-swagger/go-swagger";
diff --git a/nixpkgs/pkgs/development/tools/go-task/default.nix b/nixpkgs/pkgs/development/tools/go-task/default.nix
new file mode 100644
index 000000000000..c196f167ce0b
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/go-task/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "go-task";
+  version = "2.8.1";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = "task";
+    rev = "v${version}";
+    sha256 = "1yf5s22q4hsxvgzrj4k6gbbq0whl5b9j12mbwimxaf53q535wy4q";
+  };
+
+  vendorSha256 = null;
+
+  doCheck = false;
+
+  subPackages = [ "cmd/task" ];
+
+  buildFlagsArray = [
+    "-ldflags=-s -w -X main.version=${version}"
+  ];
+
+  postInstall = ''
+    mv $out/bin/task $out/bin/go-task
+  '';
+
+  meta = with lib; {
+    homepage = "https://taskfile.dev/";
+    description = "A task runner / simpler Make alternative written in Go";
+    license = licenses.mit;
+    maintainers = with maintainers; [ parasrah ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/go-toml/default.nix b/nixpkgs/pkgs/development/tools/go-toml/default.nix
index 0cb16354b217..3d892378133a 100644
--- a/nixpkgs/pkgs/development/tools/go-toml/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-toml/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "go-toml";
-  version = "1.8.0";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "pelletier";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0fxmjm85c9h43lvqz71wr93fcc63bhj82nwby80222xx8ja63g7y";
+    sha256 = "1pi1r9ds0vxjza4qrbk52y98wxrzh1ghwzc9c2v1w6i02pdwdcz9";
   };
 
   goPackagePath = "github.com/pelletier/go-toml";
diff --git a/nixpkgs/pkgs/development/tools/go-tools/default.nix b/nixpkgs/pkgs/development/tools/go-tools/default.nix
index 8362d1db02c7..ec4b1ee66b3d 100644
--- a/nixpkgs/pkgs/development/tools/go-tools/default.nix
+++ b/nixpkgs/pkgs/development/tools/go-tools/default.nix
@@ -5,21 +5,23 @@
 
 buildGoModule rec {
   pname = "go-tools";
-  version = "2020.1.4";
+  version = "2020.1.5";
 
   src = fetchFromGitHub {
     owner = "dominikh";
     repo = "go-tools";
     rev = version;
-    sha256 = "182j3zzx1bj4j4jiamqn49v9nd3vcrx727f7i9zgcrgmiscvw3mh";
+    sha256 = "1ry3ywncc9qkmh8ihh67v6k8nmqhq2gvfyrl1ykl4z6s56b7f9za";
   };
 
   vendorSha256 = "0nbbngsphklzhcmqafrw1im2l1vnfcma9sb4vskdpdrsadv5ss5r";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "A collection of tools and libraries for working with Go code, including linters and static analysis";
     homepage = "https://staticcheck.io";
     license = licenses.mit;
     maintainers = with maintainers; [ rvolosatovs kalbasit ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/gocode-gomod/default.nix b/nixpkgs/pkgs/development/tools/gocode-gomod/default.nix
index 603568236e66..01ee2931c998 100644
--- a/nixpkgs/pkgs/development/tools/gocode-gomod/default.nix
+++ b/nixpkgs/pkgs/development/tools/gocode-gomod/default.nix
@@ -1,11 +1,8 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
-  pname = "gocode-gomod-unstable";
-  version = "2019-03-27";
-  rev = "81059208699789f992bb4a4a3fedd734e335468d";
-
-  goPackagePath = "github.com/stamblerre/gocode";
+buildGoModule rec {
+  pname = "gocode-gomod";
+  version = "1.0.0";
 
   # we must allow references to the original `go` package,
   # because `gocode` needs to dig into $GOROOT to provide completions for the
@@ -15,14 +12,13 @@ buildGoPackage rec {
   excludedPackages = ''internal/suggest/testdata'';
 
   src = fetchFromGitHub {
-    inherit rev;
-
     owner = "stamblerre";
     repo = "gocode";
-    sha256 = "0y5lc7sq3913mvvczwx8mq5l3l9yg34jzaw742q8jpd1jzqyza94";
+    rev = "v${version}";
+    sha256 = "YAOYrPPKgnjCErq8+iW0Le51clGBv0MJy2Nnn7UVo/s=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = null;
 
   postInstall = ''
     mv $out/bin/gocode $out/bin/gocode-gomod
@@ -44,7 +40,6 @@ buildGoPackage rec {
     '';
     homepage = "https://github.com/stamblerre/gocode";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ kalbasit rvolosatovs ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/gocode-gomod/deps.nix b/nixpkgs/pkgs/development/tools/gocode-gomod/deps.nix
deleted file mode 100644
index ac9662697063..000000000000
--- a/nixpkgs/pkgs/development/tools/gocode-gomod/deps.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "78dc5bac0cacea7969e98b79c3b86597e0aa4e25";
-      sha256 = "16jg2x1sfm39kz4rchn0gxyq99fnkxw6v51wxriqbs76a2wrznp9";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/development/tools/gocode/default.nix b/nixpkgs/pkgs/development/tools/gocode/default.nix
index b4e9a8d43cb7..f38d06b34c61 100644
--- a/nixpkgs/pkgs/development/tools/gocode/default.nix
+++ b/nixpkgs/pkgs/development/tools/gocode/default.nix
@@ -39,7 +39,6 @@ buildGoPackage rec {
     '';
     homepage = "https://github.com/mdempsky/gocode";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ kalbasit ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/godef/default.nix b/nixpkgs/pkgs/development/tools/godef/default.nix
index a1dfac9b79be..c8149ecc82dd 100644
--- a/nixpkgs/pkgs/development/tools/godef/default.nix
+++ b/nixpkgs/pkgs/development/tools/godef/default.nix
@@ -5,11 +5,12 @@ buildGoModule rec {
   version = "1.1.2";
   rev = "v${version}";
 
-  goPackagePath = "github.com/rogpeppe/godef";
   subPackages = [ "." ];
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   src = fetchFromGitHub {
     inherit rev;
     owner = "rogpeppe";
@@ -23,4 +24,4 @@ buildGoModule rec {
     maintainers = with stdenv.lib.maintainers; [ vdemeester rvolosatovs ];
     license = stdenv.lib.licenses.bsd3;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/godot/default.nix b/nixpkgs/pkgs/development/tools/godot/default.nix
index 832d30ee8e87..0d35ce253b1a 100644
--- a/nixpkgs/pkgs/development/tools/godot/default.nix
+++ b/nixpkgs/pkgs/development/tools/godot/default.nix
@@ -10,13 +10,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "godot";
-  version = "3.2.1";
+  version = "3.2.2";
 
   src = fetchFromGitHub {
     owner  = "godotengine";
     repo   = "godot";
     rev    = "${version}-stable";
-    sha256 = "1kndls0rklha7kz9l4i2ivjxab4jpk3b2j7dcgcg2qc3s81yd0r6";
+    sha256 = "1libz83mbyrkbbsmmi8z2rydv3ls0w9r4vb5v6diqqwn7ka8z804";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/development/tools/godot/dont_clobber_environment.patch b/nixpkgs/pkgs/development/tools/godot/dont_clobber_environment.patch
index 3782aced1a4f..b7c1d3d62335 100644
--- a/nixpkgs/pkgs/development/tools/godot/dont_clobber_environment.patch
+++ b/nixpkgs/pkgs/development/tools/godot/dont_clobber_environment.patch
@@ -1,16 +1,18 @@
-+++ build/SConstruct
-@@ -63,10 +63,10 @@ elif platform_arg == 'javascript':
-     custom_tools = ['cc', 'c++', 'ar', 'link', 'textfile', 'zip']
-
+diff --git a/SConstruct b/SConstruct
+index b3d033dc90..04b8dcc832 100644
+--- a/SConstruct
++++ b/SConstruct
+@@ -62,10 +62,9 @@ elif platform_arg == "javascript":
+     custom_tools = ["cc", "c++", "ar", "link", "textfile", "zip"]
+ 
  env_base = Environment(tools=custom_tools)
--if 'TERM' in os.environ:
--    env_base['ENV']['TERM'] = os.environ['TERM']
--env_base.AppendENVPath('PATH', os.getenv('PATH'))
--env_base.AppendENVPath('PKG_CONFIG_PATH', os.getenv('PKG_CONFIG_PATH'))
+-if "TERM" in os.environ:
+-    env_base["ENV"]["TERM"] = os.environ["TERM"]
+-env_base.AppendENVPath("PATH", os.getenv("PATH"))
+-env_base.AppendENVPath("PKG_CONFIG_PATH", os.getenv("PKG_CONFIG_PATH"))
 +for k in ("TERM", "PATH", "PKG_CONFIG_PATH"):
 +    if (k in os.environ):
 +        env_base["ENV"][k] = os.environ[k]
-+
  env_base.disabled_modules = []
  env_base.use_ptrcall = False
  env_base.module_version_string = ""
diff --git a/nixpkgs/pkgs/development/tools/godot/headless.nix b/nixpkgs/pkgs/development/tools/godot/headless.nix
new file mode 100644
index 000000000000..0ae28b774fbc
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/godot/headless.nix
@@ -0,0 +1,18 @@
+{ godot, stdenv }:
+godot.overrideAttrs (oldAttrs: rec {
+  pname = "godot-headless";
+  sconsFlags = "target=release_debug platform=server tools=yes";
+  installPhase = ''
+    mkdir -p "$out/bin"
+    cp bin/godot_server.* $out/bin/godot-headless
+
+    mkdir "$dev"
+    cp -r modules/gdnative/include $dev
+
+    mkdir -p "$man/share/man/man6"
+    cp misc/dist/linux/godot.6 "$man/share/man/man6/"
+  '';
+  meta.description =
+    "Free and Open Source 2D and 3D game engine (headless build)";
+  meta.maintainers = with stdenv.lib.maintainers; [ twey yusdacra ];
+})
diff --git a/nixpkgs/pkgs/development/tools/godot/pkg_config_additions.patch b/nixpkgs/pkgs/development/tools/godot/pkg_config_additions.patch
index 409baaa6f266..9e2e5c3536db 100644
--- a/nixpkgs/pkgs/development/tools/godot/pkg_config_additions.patch
+++ b/nixpkgs/pkgs/development/tools/godot/pkg_config_additions.patch
@@ -1,22 +1,25 @@
+diff --git a/platform/x11/detect.py b/platform/x11/detect.py
+index 5674e78350..7051d8e73c 100644
+--- a/platform/x11/detect.py
 +++ b/platform/x11/detect.py
-@@ -175,6 +175,11 @@ def configure(env):
-     env.ParseConfig('pkg-config xrender --cflags --libs')
-     env.ParseConfig('pkg-config xi --cflags --libs')
+@@ -201,6 +201,11 @@ def configure(env):
+     env.ParseConfig("pkg-config xrender --cflags --libs")
+     env.ParseConfig("pkg-config xi --cflags --libs")
  
-+    env.ParseConfig('pkg-config xext --cflags --libs')
-+    env.ParseConfig('pkg-config xfixes --cflags --libs')
-+    env.ParseConfig('pkg-config glu --cflags --libs')
-+    env.ParseConfig('pkg-config zlib --cflags --libs')
++    env.ParseConfig("pkg-config xext --cflags --libs")
++    env.ParseConfig("pkg-config xfixes --cflags --libs")
++    env.ParseConfig("pkg-config glu --cflags --libs")
++    env.ParseConfig("pkg-config zlib --cflags --libs")
 +
-     if (env['touch']):
-         env.Append(CPPFLAGS=['-DTOUCH_ENABLED'])
+     if env["touch"]:
+         env.Append(CPPDEFINES=["TOUCH_ENABLED"])
  
-@@ -264,7 +269,7 @@ def configure(env):
+@@ -299,7 +304,7 @@ def configure(env):
          print("Enabling ALSA")
-         env.Append(CPPFLAGS=["-DALSA_ENABLED", "-DALSAMIDI_ENABLED"])
- 	# Don't parse --cflags, we don't need to add /usr/include/alsa to include path
--        env.ParseConfig('pkg-config alsa --libs')
-+        env.ParseConfig('pkg-config alsa --cflags --libs')
+         env.Append(CPPDEFINES=["ALSA_ENABLED", "ALSAMIDI_ENABLED"])
+         # Don't parse --cflags, we don't need to add /usr/include/alsa to include path
+-        env.ParseConfig("pkg-config alsa --libs")
++        env.ParseConfig("pkg-config alsa --cflags --libs")
      else:
          print("ALSA libraries not found, disabling driver")
  
diff --git a/nixpkgs/pkgs/development/tools/godot/server.nix b/nixpkgs/pkgs/development/tools/godot/server.nix
new file mode 100644
index 000000000000..48f21b796c36
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/godot/server.nix
@@ -0,0 +1,18 @@
+{ godot, stdenv }:
+godot.overrideAttrs (oldAttrs: rec {
+  pname = "godot-server";
+  sconsFlags = "target=release platform=server tools=no";
+  installPhase = ''
+    mkdir -p "$out/bin"
+    cp bin/godot_server.* $out/bin/godot-server
+
+    mkdir "$dev"
+    cp -r modules/gdnative/include $dev
+
+    mkdir -p "$man/share/man/man6"
+    cp misc/dist/linux/godot.6 "$man/share/man/man6/"
+  '';
+  meta.description =
+    "Free and Open Source 2D and 3D game engine (server build)";
+  meta.maintainers = with stdenv.lib.maintainers; [ twey yusdacra ];
+})
diff --git a/nixpkgs/pkgs/development/tools/gofumpt/default.nix b/nixpkgs/pkgs/development/tools/gofumpt/default.nix
index adb2ef463f7a..080f4bd3305a 100644
--- a/nixpkgs/pkgs/development/tools/gofumpt/default.nix
+++ b/nixpkgs/pkgs/development/tools/gofumpt/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "14a3p163xy861xb6x160wy15hzjc75n36jdyzaxl877i17shba8z";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "A stricter gofmt";
     homepage = "https://github.com/mvdan/gofumpt";
     license = licenses.bsd3;
     maintainers = with maintainers; [ rvolosatovs ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/gogetdoc/default.nix b/nixpkgs/pkgs/development/tools/gogetdoc/default.nix
index 6898c998ef60..2a111a8d1ab3 100644
--- a/nixpkgs/pkgs/development/tools/gogetdoc/default.nix
+++ b/nixpkgs/pkgs/development/tools/gogetdoc/default.nix
@@ -10,6 +10,8 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   excludedPackages = "\\(testdata\\)";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/development/tools/golangci-lint/default.nix b/nixpkgs/pkgs/development/tools/golangci-lint/default.nix
index 256e53415567..1eaa00e80864 100644
--- a/nixpkgs/pkgs/development/tools/golangci-lint/default.nix
+++ b/nixpkgs/pkgs/development/tools/golangci-lint/default.nix
@@ -1,24 +1,37 @@
-{ buildGoModule, fetchFromGitHub, lib }:
+{ buildGoModule, fetchFromGitHub, lib, installShellFiles }:
 
 buildGoModule rec {
   pname = "golangci-lint";
-  version = "1.27.0";
+  version = "1.31.0";
 
   src = fetchFromGitHub {
     owner = "golangci";
     repo = "golangci-lint";
     rev = "v${version}";
-    sha256 = "1capiw8af4wmx3wpfslb30xivfyh72x5kj12f8p5pwhl6id31931";
+    sha256 = "10divgsc095jiw7n3gwzikbgvsd0hdwjyv469vq939zm7rqq3acy";
   };
 
-  vendorSha256 = "16wr8ixicbvdpg5mg6q07sa1b03ydpwdbvbjl3r9qihdqkhhzlr1";
+  vendorSha256 = "1pa99jfz6i696x6v06aq56r0kmxmz4khb1hw7pvxds0bn16a4swr";
+
+  doCheck = false;
+
   subPackages = [ "cmd/golangci-lint" ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev} -X main.date=19700101-00:00:00" ];
+
+  postInstall = ''
+    for shell in bash zsh; do
+      HOME=$TMPDIR $out/bin/golangci-lint completion $shell > golangci-lint.$shell
+      installShellCompletion golangci-lint.$shell
+    done
+  '';
+
   meta = with lib; {
-    description = "Linters Runner for Go. 5x faster than gometalinter. Nice colored output.";
-    homepage = "https://golangci.com/";
-    license = licenses.agpl3;
-    platforms = platforms.unix;
+    description = "Fast linters Runner for Go";
+    homepage = "https://golangci-lint.run/";
+    license = licenses.gpl3;
     maintainers = with maintainers; [ anpryl manveru ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/golint/default.nix b/nixpkgs/pkgs/development/tools/golint/default.nix
index b0b53f7699c2..284bb32f89e8 100644
--- a/nixpkgs/pkgs/development/tools/golint/default.nix
+++ b/nixpkgs/pkgs/development/tools/golint/default.nix
@@ -4,7 +4,7 @@ buildGoPackage rec {
   pname = "lint";
   version = "20181026-${stdenv.lib.strings.substring 0 7 rev}";
   rev = "c67002cb31c3a748b7688c27f20d8358b4193582";
-  
+
   goPackagePath = "golang.org/x/lint";
   excludedPackages = "testdata";
 
@@ -25,6 +25,5 @@ buildGoPackage rec {
     description = "Linter for Go source code";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jhillyerd ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/gomodifytags/default.nix b/nixpkgs/pkgs/development/tools/gomodifytags/default.nix
index e90844167dd2..cf2c5a5b9a6f 100644
--- a/nixpkgs/pkgs/development/tools/gomodifytags/default.nix
+++ b/nixpkgs/pkgs/development/tools/gomodifytags/default.nix
@@ -6,7 +6,7 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
-  goPackagePath = "github.com/fatih/gomodifytags";
+  doCheck = false;
 
   src = fetchFromGitHub {
     owner = "fatih";
@@ -21,4 +21,4 @@ buildGoModule rec {
     maintainers = with stdenv.lib.maintainers; [ vdemeester ];
     license = stdenv.lib.licenses.bsd3;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/gopkgs/default.nix b/nixpkgs/pkgs/development/tools/gopkgs/default.nix
index c1773333b5d2..d112654ab437 100644
--- a/nixpkgs/pkgs/development/tools/gopkgs/default.nix
+++ b/nixpkgs/pkgs/development/tools/gopkgs/default.nix
@@ -4,8 +4,6 @@ buildGoModule rec {
   pname = "gopkgs";
   version = "2.1.2";
 
-  goPackagePath = "github.com/uudashr/gopkgs";
-
   subPackages = [ "cmd/gopkgs" ];
 
   src = fetchFromGitHub {
@@ -17,10 +15,12 @@ buildGoModule rec {
 
   vendorSha256 = "1pwsc488ldw039by8nqpni801zry7dnf0rx4hhd73xpv2w7s8n2r";
 
+  doCheck = false;
+
   meta = {
     description = "Tool to get list available Go packages.";
     homepage = "https://github.com/uudashr/gopkgs";
     maintainers = with stdenv.lib.maintainers; [ vdemeester ];
     license = stdenv.lib.licenses.mit;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/gopls/default.nix b/nixpkgs/pkgs/development/tools/gopls/default.nix
index a77f9fa8ddd3..1e750a2dec50 100644
--- a/nixpkgs/pkgs/development/tools/gopls/default.nix
+++ b/nixpkgs/pkgs/development/tools/gopls/default.nix
@@ -1,22 +1,24 @@
-{ stdenv, go, buildGoModule, fetchgit }:
+{ stdenv, buildGoModule, fetchgit }:
 
 buildGoModule rec {
   pname = "gopls";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchgit {
     rev = "gopls/v${version}";
     url = "https://go.googlesource.com/tools";
-    sha256 = "18migk7arxm8ysfzidl7mdr069fxym9bfi6zisj7dliczw0qnkzv";
+    sha256 = "150jg1qmdszfvh1x5fagawgc24xy19xjg9y1hq3drwy7lfdnahmq";
   };
 
   modRoot = "gopls";
-  vendorSha256 = "1jaav6c5vybgks5hc164is0i7h097c5l75s7w3wi5a3zyzkbiyny";
+  vendorSha256 = "1s3d4hnbw0mab7njck79qmgkjn87vs4ffk44zk2qdrzqjjlqq5iv";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Official language server for the Go language";
     homepage = "https://github.com/golang/tools/tree/master/gopls";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ mic92 ];
+    maintainers = with maintainers; [ mic92 zimbatm ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/gore/default.nix b/nixpkgs/pkgs/development/tools/gore/default.nix
index 92eeaeaeddbd..fbc3152cef19 100644
--- a/nixpkgs/pkgs/development/tools/gore/default.nix
+++ b/nixpkgs/pkgs/development/tools/gore/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "3bq6sRKS5dq7WCPpKGm2q5gFajthR3zhrTFGve9zXhY=";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Yet another Go REPL that works nicely.";
     homepage = "https://github.com/motemen/gore";
diff --git a/nixpkgs/pkgs/development/tools/gosec/default.nix b/nixpkgs/pkgs/development/tools/gosec/default.nix
index 2600d13cab93..ffbd98a45772 100644
--- a/nixpkgs/pkgs/development/tools/gosec/default.nix
+++ b/nixpkgs/pkgs/development/tools/gosec/default.nix
@@ -1,29 +1,30 @@
-{ buildGoPackage
-, lib
-, fetchFromGitHub
-}:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "gosec";
-  version = "1.2.0";
+  version = "2.4.0";
 
-  goPackagePath = "github.com/securego/gosec";
-  excludedPackages = ''cmd/tlsconfig'';
+  subPackages = [ "cmd/gosec" ];
 
   src = fetchFromGitHub {
     owner = "securego";
-    repo = "gosec";
-    rev = version;
-    sha256 = "1420yl4cjp4v4xv0l0wbahgl6bjhz77lx5va9hqa6abddmqvx1hg";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0mqijzr3vj4wycykqpjz9xw9fhpbnzz988z2q3nldb5ax0pyrxca";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "063dpq1k5lykp18gshlgg098yvppicv3cz8gjn1mvfhac2rl9yqr";
 
-  meta = with lib; {
-    description = "Golang security checker";
+  doCheck = false;
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version} -X main.GitTag=${src.rev} -X main.BuildDate=unknown" ];
+
+  meta = with stdenv.lib; {
     homepage = "https://github.com/securego/gosec";
-    license = licenses.asl20 ;
-    maintainers = with maintainers; [ kalbasit ];
+    description = "Golang security checker";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ kalbasit nilp0inter ];
     platforms = platforms.linux ++ platforms.darwin;
   };
 }
+
diff --git a/nixpkgs/pkgs/development/tools/gosec/deps.nix b/nixpkgs/pkgs/development/tools/gosec/deps.nix
deleted file mode 100644
index 80a77e7fb807..000000000000
--- a/nixpkgs/pkgs/development/tools/gosec/deps.nix
+++ /dev/null
@@ -1,193 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-
-  {
-    goPackagePath = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev = "v1.1.1";
-      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "v1.2.0";
-      sha256 = "0kf4b59rcbb1cchfny2dm9jyznp8ri2hsb14n8iak1q8986xa0ab";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/kisielk/gotool";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kisielk/gotool";
-      rev = "0de1eaf82fa3";
-      sha256 = "177af7bjq6clmkqshnmnwlpwvx80kpi2277q275iwq59lp48viq1";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/kr/pretty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pretty";
-      rev = "v0.1.0";
-      sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/kr/pty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pty";
-      rev = "v1.1.1";
-      sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/kr/text";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/text";
-      rev = "v0.1.0";
-      sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/nbutton23/zxcvbn-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nbutton23/zxcvbn-go";
-      rev = "a22cb81b2ecd";
-      sha256 = "0hm16vc7xrw0cqla6xcn59bb7n2sa0j8rkniywn5dqnbrpza12cd";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/onsi/ginkgo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/onsi/ginkgo";
-      rev = "11459a886d9c";
-      sha256 = "1nswc1fnrrs792qbix05h91bilj8rr3wxmxgwi97p2gjk0r292zh";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/onsi/gomega";
-    fetch = {
-      type = "git";
-      url = "https://github.com/onsi/gomega";
-      rev = "dcabb60a477c";
-      sha256 = "1775lv5jbsgv3ghq5v2827slqlhqdadrzc1nkpq4y0hdv2qzrgkm";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev = "v1.0.0";
-      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/ryanuber/go-glob";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ryanuber/go-glob";
-      rev = "256dc444b735";
-      sha256 = "07rsd7hranghwc68ib0r2zxd9d5djanzjvd84j9dgj3wqsyg5mi2";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev = "v1.2.2";
-      sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
-    };
-  }
-
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "8351a756f30f";
-      sha256 = "0b6m579i3wrx1m69mqkdng5gjfssprxx0pg45kzrdi68sh0zr5d1";
-    };
-  }
-
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "1d60e4601c6f";
-      sha256 = "046jlanz2lkxq1r57x9bl6s4cvfqaic6p2xybsj8mq1120jv4rs6";
-    };
-  }
-
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "164713f0dfce";
-      sha256 = "1qn9vvyqsaaj0az0rbilzc4pfv9sl4vh78c2g37yya5gcdnarh3w";
-    };
-  }
-
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "1cbadb444a80";
-      sha256 = "0ih9ysagh4ylj08393497sscf3yziybc6acg4mrh0wa7mld75j56";
-    };
-  }
-
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "e531a2a1c15f";
-      sha256 = "0740w56nmjqdj7ld1h3gpcpi3x8n81bdx0pp267rz9hmwkrb2s1c";
-    };
-  }
-
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "788fd7840127";
-      sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
-    };
-  }
-
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "eb3733d160e7";
-      sha256 = "1srhvcaa9db3a6xj29mkjr5kg33y71pclrlx4vcwz5m1lgb5c7q6";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/development/tools/gotags/default.nix b/nixpkgs/pkgs/development/tools/gotags/default.nix
index 881ae7e24d4a..5499a22ec01b 100644
--- a/nixpkgs/pkgs/development/tools/gotags/default.nix
+++ b/nixpkgs/pkgs/development/tools/gotags/default.nix
@@ -4,7 +4,7 @@ buildGoPackage rec {
   pname = "gotags";
   version = "20150803-${stdenv.lib.strings.substring 0 7 rev}";
   rev = "be986a34e20634775ac73e11a5b55916085c48e7";
-  
+
   goPackagePath = "github.com/jstemmer/gotags";
 
   src = fetchgit {
diff --git a/nixpkgs/pkgs/development/tools/gotestsum/default.nix b/nixpkgs/pkgs/development/tools/gotestsum/default.nix
index fba4585155ed..71bccc74ce65 100644
--- a/nixpkgs/pkgs/development/tools/gotestsum/default.nix
+++ b/nixpkgs/pkgs/development/tools/gotestsum/default.nix
@@ -2,19 +2,23 @@
 
 buildGoModule rec {
   pname = "gotestsum";
-  version = "0.4.2";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "gotestyourself";
     repo = "gotestsum";
     rev = "v${version}";
-    sha256 = "0zifha3mj7386q2accrdmd8qniingadxz1v8vg4mciwi723msr44";
+    sha256 = "1jq529m788yp3b6j4dhxgcw7qm1lyxx1ir2vwr41vp7gh17fmwar";
   };
 
-  vendorSha256 = "0d45i8wm35m2cdbk48razkdr49a3hfwnp84inlz7hj054cq6vimi";
+  vendorSha256 = "1injixhllv41glb3yz276gjrkiwwkfimrhb367d2pvjpzqmhplan";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
+  subPackages = [ "." ];
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/gotestyourself/gotestsum";
     description = "A human friendly `go test` runner";
@@ -22,4 +26,4 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ endocrimes ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/gotools/default.nix b/nixpkgs/pkgs/development/tools/gotools/default.nix
index a7858474a426..11926b3b0c66 100644
--- a/nixpkgs/pkgs/development/tools/gotools/default.nix
+++ b/nixpkgs/pkgs/development/tools/gotools/default.nix
@@ -11,18 +11,24 @@ buildGoModule rec {
     sha256 = "0a8c7j4w784w441j3j3bh640vy1g6g214641qv485wyi0xj49anf";
   };
 
-  # Build of golang.org/x/tools/gopls fails with:
-  #   can't load package: package golang.org/x/tools/gopls: unknown import path "golang.org/x/tools/gopls": cannot find module providing package golang.org/x/tools/gopls
-  # That is most probably caused by golang.org/x/tools/gopls containing a separate Go module.
-  # In order to fix this, we simply remove the module.
-  # Note that build of golang.org/x/tools/cmd/gopls provides identical binary as golang.org/x/tools/gopls.
-  # See https://github.com/NixOS/nixpkgs/pull/64335.
+  # The gopls folder contains a Go submodule which causes a build failure.
+  # Given that, we can't have the gopls binary be part of the gotools
+  # derivation.
+  #
+  # The attribute "gopls" provides the gopls binary.
+  #
+  # Related
+  #
+  # * https://github.com/NixOS/nixpkgs/pull/85868
+  # * https://github.com/NixOS/nixpkgs/issues/88716
   postPatch = ''
     rm -rf gopls
   '';
 
   vendorSha256 = "0pplmqxrnc8qnr5708igx4dm7rb0hicvhg6lh5hj8zkx38nb19s0";
 
+  doCheck = false;
+
   postConfigure = ''
     # Make the builtin tools available here
     mkdir -p $out/bin
@@ -47,4 +53,4 @@ buildGoModule rec {
   # Do not copy this without a good reason for enabling
   # In this case tools is heavily coupled with go itself and embeds paths.
   allowGoReference = true;
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/gox/default.nix b/nixpkgs/pkgs/development/tools/gox/default.nix
index 7c800df0a6ba..34e7d338318c 100644
--- a/nixpkgs/pkgs/development/tools/gox/default.nix
+++ b/nixpkgs/pkgs/development/tools/gox/default.nix
@@ -16,7 +16,6 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     homepage = "https://github.com/mitchellh/gox";
     description = "A dead simple, no frills Go cross compile tool";
-    platforms = platforms.all;
     license = licenses.mpl20;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix b/nixpkgs/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix
new file mode 100644
index 000000000000..60b9ba3e0e45
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/haskell/dconf2nix/dconf2nix.nix
@@ -0,0 +1,24 @@
+{ mkDerivation, base, containers, fetchgit, hedgehog
+, optparse-applicative, parsec, stdenv, template-haskell, text
+}:
+mkDerivation {
+  pname = "dconf2nix";
+  version = "0.0.6";
+  src = fetchgit {
+    url = "https://github.com/gvolpe/dconf2nix.git";
+    sha256 = "0ql3xrr05kg1xrfxq86mhzh5ky33sngx57sahzck3rb8fv2g6amv";
+    rev = "cf976e033c1a89f897924baa219c3b227fe68489";
+    fetchSubmodules = true;
+  };
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    base containers optparse-applicative parsec text
+  ];
+  executableHaskellDepends = [ base ];
+  testHaskellDepends = [
+    base containers hedgehog parsec template-haskell text
+  ];
+  description = "Convert dconf files to Nix, as expected by Home Manager";
+  license = stdenv.lib.licenses.asl20;
+}
diff --git a/nixpkgs/pkgs/development/tools/haskell/dconf2nix/default.nix b/nixpkgs/pkgs/development/tools/haskell/dconf2nix/default.nix
new file mode 100644
index 000000000000..cfd391866ee3
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/haskell/dconf2nix/default.nix
@@ -0,0 +1,32 @@
+{ haskell, haskellPackages, lib, runCommand }:
+
+let
+  dconf2nix =
+    haskell.lib.justStaticExecutables
+      (haskell.lib.overrideCabal haskellPackages.dconf2nix (oldAttrs: {
+        maintainers = (oldAttrs.maintainers or []) ++ [
+          lib.maintainers.gvolpe
+        ];
+      }));
+in
+
+dconf2nix.overrideAttrs (oldAttrs: {
+  passthru = (oldAttrs.passthru or {}) // {
+    updateScript = ./update.sh;
+
+    # These tests can be run with the following command.
+    #
+    # $ nix-build -A dconf2nix.passthru.tests
+    tests =
+      runCommand
+        "dconf2nix-tests"
+        {
+          nativeBuildInputs = [
+            dconf2nix
+          ];
+        }
+        ''
+          dconf2nix > $out
+        '';
+  };
+})
diff --git a/nixpkgs/pkgs/development/tools/haskell/dconf2nix/update.sh b/nixpkgs/pkgs/development/tools/haskell/dconf2nix/update.sh
new file mode 100755
index 000000000000..8129824e256b
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/haskell/dconf2nix/update.sh
@@ -0,0 +1,26 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p cabal2nix curl jq
+#
+# This script will update the dconf2nix derivation to the latest version using
+# cabal2nix.
+
+set -eo pipefail
+
+# This is the directory of this update.sh script.
+script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+
+# dconf2nix derivation created with cabal2nix.
+dconf2nix_derivation_file="${script_dir}/dconf2nix.nix"
+
+# This is the current revision of dconf2nix in Nixpkgs.
+old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$dconf2nix_derivation_file")"
+
+# This is the latest release version of dconf2nix on GitHub.
+new_version=$(curl --silent "https://api.github.com/repos/gvolpe/dconf2nix/releases" | jq '.[0].tag_name' --raw-output)
+
+echo "Updating dconf2nix from old version $old_version to new version $new_version."
+echo "Running cabal2nix and outputting to ${dconf2nix_derivation_file}..."
+
+cabal2nix --revision "$new_version" "https://github.com/gvolpe/dconf2nix.git" > "$dconf2nix_derivation_file"
+
+echo "Finished."
diff --git a/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/default.nix b/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/default.nix
new file mode 100644
index 000000000000..10cfa57f9147
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/default.nix
@@ -0,0 +1,48 @@
+{ mkDerivation, aeson, base, binary, blaze-markup, brittany
+, bytestring, containers, data-default, deepseq, Diff, directory
+, extra, fetchgit, filepath, floskell, fourmolu, ghc, ghc-boot-th
+, ghc-paths, ghcide, gitrev, hashable, haskell-lsp
+, haskell-lsp-types, hie-bios, hslogger, hspec, hspec-core, lens
+, lsp-test, optparse-applicative, optparse-simple, ormolu, process
+, regex-tdfa, retrie, safe-exceptions, shake, stdenv, stm
+, stylish-haskell, tasty, tasty-ant-xml, tasty-expected-failure
+, tasty-golden, tasty-hunit, tasty-rerun, temporary, text, time
+, transformers, unix, unordered-containers, yaml
+}:
+mkDerivation {
+  pname = "haskell-language-server";
+  version = "0.4.0.0";
+  src = fetchgit {
+    url = "https://github.com/haskell/haskell-language-server.git";
+    sha256 = "1fh9k9b3880m6ql4i10yn2yanskk9xhrakrrddqvainhcf2ik8hl";
+    rev = "c4576992f443a9abe48ffcfa0e2d2b9bce15d7ae";
+    fetchSubmodules = true;
+  };
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    aeson base binary brittany bytestring containers data-default
+    deepseq Diff directory extra filepath floskell fourmolu ghc
+    ghc-boot-th ghcide gitrev hashable haskell-lsp hie-bios hslogger
+    lens optparse-simple ormolu process regex-tdfa retrie
+    safe-exceptions shake stylish-haskell temporary text time
+    transformers unix unordered-containers
+  ];
+  executableHaskellDepends = [
+    base binary containers data-default directory extra filepath ghc
+    ghc-paths ghcide gitrev hashable haskell-lsp hie-bios hslogger
+    optparse-applicative process safe-exceptions shake text time
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    aeson base blaze-markup bytestring containers data-default
+    directory filepath haskell-lsp haskell-lsp-types hie-bios hslogger
+    hspec hspec-core lens lsp-test process stm tasty tasty-ant-xml
+    tasty-expected-failure tasty-golden tasty-hunit tasty-rerun
+    temporary text transformers unordered-containers yaml
+  ];
+  testToolDepends = [ ghcide ];
+  homepage = "https://github.com/haskell/haskell-language-server#readme";
+  description = "LSP server for GHC";
+  license = stdenv.lib.licenses.asl20;
+}
diff --git a/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/hls-brittany.nix b/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/hls-brittany.nix
new file mode 100644
index 000000000000..0519cf42dd8c
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/hls-brittany.nix
@@ -0,0 +1,36 @@
+{ mkDerivation, aeson, base, butcher, bytestring, cmdargs
+, containers, czipwith, data-tree-print, deepseq, directory, extra
+, fetchgit, filepath, ghc, ghc-boot-th, ghc-exactprint, ghc-paths
+, hspec, monad-memo, mtl, multistate, parsec, pretty, random, safe
+, semigroups, stdenv, strict, syb, text, transformers, uniplate
+, unsafe, yaml
+}:
+mkDerivation {
+  pname = "brittany";
+  version = "0.12.1.1";
+  src = fetchgit {
+    url = "https://github.com/bubba/brittany";
+    sha256 = "1rkk09f8750qykrmkqfqbh44dbx1p8aq1caznxxlw8zqfvx39cxl";
+    rev = "c59655f10d5ad295c2481537fc8abf0a297d9d1c";
+    fetchSubmodules = true;
+  };
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    aeson base butcher bytestring cmdargs containers czipwith
+    data-tree-print deepseq directory extra filepath ghc ghc-boot-th
+    ghc-exactprint ghc-paths monad-memo mtl multistate pretty random
+    safe semigroups strict syb text transformers uniplate unsafe yaml
+  ];
+  executableHaskellDepends = [ base ];
+  testHaskellDepends = [
+    aeson base butcher bytestring cmdargs containers czipwith
+    data-tree-print deepseq directory extra filepath ghc ghc-boot-th
+    ghc-exactprint ghc-paths hspec monad-memo mtl multistate parsec
+    pretty safe semigroups strict syb text transformers uniplate unsafe
+    yaml
+  ];
+  homepage = "https://github.com/lspitzner/brittany/";
+  description = "Haskell source code formatter";
+  license = stdenv.lib.licenses.agpl3;
+}
diff --git a/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/hls-ghcide.nix b/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/hls-ghcide.nix
new file mode 100644
index 000000000000..af38312a3616
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/hls-ghcide.nix
@@ -0,0 +1,57 @@
+{ mkDerivation, aeson, array, async, base, base16-bytestring
+, binary, bytestring, Chart, Chart-diagrams, containers
+, cryptohash-sha1, data-default, deepseq, diagrams, diagrams-svg
+, directory, extra, fetchgit, filepath, fuzzy, ghc, ghc-boot
+, ghc-boot-th, ghc-check, ghc-paths, ghc-typelits-knownnat, gitrev
+, haddock-library, hashable, haskell-lsp, haskell-lsp-types
+, hie-bios, hslogger, lens, lsp-test, mtl, network-uri
+, optparse-applicative, prettyprinter, prettyprinter-ansi-terminal
+, process, QuickCheck, quickcheck-instances, regex-tdfa
+, rope-utf16-splay, safe, safe-exceptions, shake, sorted-list
+, stdenv, stm, syb, tasty, tasty-expected-failure, tasty-hunit
+, tasty-quickcheck, tasty-rerun, text, time, transformers, unix
+, unordered-containers, utf8-string, yaml
+}:
+mkDerivation {
+  pname = "ghcide";
+  version = "0.3.0";
+  src = fetchgit {
+    url = "https://github.com/haskell/ghcide";
+    sha256 = "15v3g3i5v0xbq50lfvl4bv3rx01nixiqx02sddqi5lj2idgmg24g";
+    rev = "96cf8c53d0bdc16d3d2cd0559b74962593ce6dc5";
+    fetchSubmodules = true;
+  };
+  isLibrary = true;
+  isExecutable = true;
+  libraryHaskellDepends = [
+    aeson array async base base16-bytestring binary bytestring
+    containers cryptohash-sha1 data-default deepseq directory extra
+    filepath fuzzy ghc ghc-boot ghc-boot-th ghc-check ghc-paths
+    haddock-library hashable haskell-lsp haskell-lsp-types hie-bios
+    hslogger mtl network-uri prettyprinter prettyprinter-ansi-terminal
+    regex-tdfa rope-utf16-splay safe safe-exceptions shake sorted-list
+    stm syb text time transformers unix unordered-containers
+    utf8-string
+  ];
+  executableHaskellDepends = [
+    aeson base bytestring containers data-default directory extra
+    filepath gitrev hashable haskell-lsp haskell-lsp-types hie-bios
+    lens lsp-test optparse-applicative process safe-exceptions text
+    unordered-containers
+  ];
+  testHaskellDepends = [
+    aeson base binary bytestring containers directory extra filepath
+    ghc ghc-typelits-knownnat haddock-library haskell-lsp
+    haskell-lsp-types lens lsp-test network-uri optparse-applicative
+    process QuickCheck quickcheck-instances rope-utf16-splay safe
+    safe-exceptions shake tasty tasty-expected-failure tasty-hunit
+    tasty-quickcheck tasty-rerun text
+  ];
+  benchmarkHaskellDepends = [
+    aeson base Chart Chart-diagrams diagrams diagrams-svg directory
+    extra filepath shake text yaml
+  ];
+  homepage = "https://github.com/haskell/ghcide#readme";
+  description = "The core of an IDE";
+  license = stdenv.lib.licenses.asl20;
+}
diff --git a/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/update.sh b/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/update.sh
new file mode 100755
index 000000000000..fd22a80126d9
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/haskell/haskell-language-server/update.sh
@@ -0,0 +1,71 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p cabal2nix jq curl
+#
+# This script will update the haskell-language-server derivation to the latest version using
+# cabal2nix.
+#
+# Note that you should always try building haskell-language-server after updating it here, since
+# some of the overrides in pkgs/development/haskell/configuration-nix.nix may
+# need to be updated/changed.
+#
+# Remember to split out different updates into multiple commits
+
+set -eo pipefail
+
+# This is the directory of this update.sh script.
+script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+
+# ===========================
+# ghcide fork on https://github.com/wz1000/ghcide
+# ===========================
+
+# ghcide derivation created with cabal2nix.
+ghcide_derivation_file="${script_dir}/hls-ghcide.nix"
+
+# This is the current revision of hls in Nixpkgs.
+ghcide_old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$ghcide_derivation_file")"
+
+# This is the revision of ghcide used by hls on GitHub.
+ghcide_new_version=$(curl --silent "https://api.github.com/repos/haskell/haskell-language-server/contents/ghcide" | jq '.sha' --raw-output)
+
+echo "Updating haskell-language-server's ghcide from old version $ghcide_old_version to new version $ghcide_new_version."
+echo "Running cabal2nix and outputting to ${ghcide_derivation_file}..."
+
+cabal2nix --revision "$ghcide_new_version" "https://github.com/haskell/ghcide" > "$ghcide_derivation_file"
+
+# ===========================
+# HLS maintainer's Brittany fork
+# ===========================
+
+# brittany derivation created with cabal2nix.
+brittany_derivation_file="${script_dir}/hls-brittany.nix"
+
+# This is the current revision of the brittany fork in Nixpkgs.
+brittany_old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$brittany_derivation_file")"
+
+brittany_new_version=$(curl --silent "https://api.github.com/repos/bubba/brittany/commits/ghc-8.10.1" | jq '.sha' --raw-output)
+
+echo "Updating haskell-language-server's brittany from old version $brittany_old_version to new version $brittany_new_version."
+echo "Running cabal2nix and outputting to ${brittany_derivation_file}..."
+
+cabal2nix --revision "$brittany_new_version" "https://github.com/bubba/brittany" > "$brittany_derivation_file"
+
+# ===========================
+# HLS
+# ===========================
+
+# hls derivation created with cabal2nix.
+hls_derivation_file="${script_dir}/default.nix"
+
+# This is the current revision of hls in Nixpkgs.
+hls_old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$hls_derivation_file")"
+
+# This is the latest release version of hls on GitHub.
+hls_new_version=$(curl --silent "https://api.github.com/repos/haskell/haskell-language-server/commits/master" | jq '.sha' --raw-output)
+
+echo "Updating haskell-language-server from old version $hls_old_version to new version $hls_new_version."
+echo "Running cabal2nix and outputting to ${hls_derivation_file}..."
+
+cabal2nix --revision "$hls_new_version" "https://github.com/haskell/haskell-language-server.git" > "$hls_derivation_file"
+
+echo "Finished."
diff --git a/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix b/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix
index 7d99a5e9a573..df889d43d463 100644
--- a/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix
+++ b/nixpkgs/pkgs/development/tools/haskell/hyper-haskell/default.nix
@@ -1,9 +1,9 @@
-{ stdenv, fetchFromGitHub, jshon, electron
+{ stdenv, fetchFromGitHub, jshon, electron_3
 , runtimeShell, hyper-haskell-server, extra-packages ? [] }:
 
 let
   binPath = stdenv.lib.makeBinPath ([ hyper-haskell-server ] ++ extra-packages);
-
+  electron = electron_3;
 in stdenv.mkDerivation rec {
   pname = "hyper-haskell";
   version = "0.1.0.2";
diff --git a/nixpkgs/pkgs/development/tools/haskell/ihaskell/wrapper.nix b/nixpkgs/pkgs/development/tools/haskell/ihaskell/wrapper.nix
index 9b33d6e06708..60f8c2ecb252 100644
--- a/nixpkgs/pkgs/development/tools/haskell/ihaskell/wrapper.nix
+++ b/nixpkgs/pkgs/development/tools/haskell/ihaskell/wrapper.nix
@@ -9,7 +9,7 @@ let
   ihaskellSh = writeScriptBin "ihaskell-notebook" ''
     #! ${stdenv.shell}
     export GHC_PACKAGE_PATH="$(echo ${ihaskellEnv}/lib/*/package.conf.d| tr ' ' ':'):$GHC_PACKAGE_PATH"
-    export PATH="${stdenv.lib.makeBinPath ([ ihaskellEnv jupyter ])}''${PATH:+':'}$PATH
+    export PATH="${stdenv.lib.makeBinPath ([ ihaskellEnv jupyter ])}''${PATH:+:}$PATH"
     ${ihaskellEnv}/bin/ihaskell install -l $(${ihaskellEnv}/bin/ghc --print-libdir) && ${jupyter}/bin/jupyter notebook
   '';
 in
diff --git a/nixpkgs/pkgs/development/tools/hcloud/default.nix b/nixpkgs/pkgs/development/tools/hcloud/default.nix
index ee7ed4766228..704477421ceb 100644
--- a/nixpkgs/pkgs/development/tools/hcloud/default.nix
+++ b/nixpkgs/pkgs/development/tools/hcloud/default.nix
@@ -1,40 +1,35 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "hcloud";
-  version = "1.16.2";
-
-  goPackagePath = "github.com/hetznercloud/cli";
+  version = "1.19.1";
 
   src = fetchFromGitHub {
     owner = "hetznercloud";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "0cxh92df8gdl4bmr22pdvdxdkdjyfy0jv48y0k6awy1xz61r94ap";
+    sha256 = "0iq04jfqvmwlm6947kzz4c3a33lvwxvj42z179rc3126b5v7bq54";
   };
 
-  vendorSha256 = "1iiqmdnjnrsqgjisb5j5casa2hmqmafn79157skl5zxawndvc2rj";
+  nativeBuildInputs = [ installShellFiles ];
 
-  buildFlagsArray = [ "-ldflags=" "-w -X github.com/hetznercloud/cli/cli.Version=${version}" ];
+  vendorSha256 = "1svwrb5wyz5d8fgx36bpypnfq4hmpfxyd197cla9wnqpbkia7n5r";
 
-  postInstall = ''
-    mkdir -p \
-      $out/etc/bash_completion.d \
-      $out/share/zsh/vendor-completions
+  doCheck = false;
 
-    # Add bash completions
-    $out/bin/hcloud completion bash > "$out/etc/bash_completion.d/hcloud"
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/hetznercloud/cli/cli.Version=${version}" ];
 
-    # Add zsh completions
-    echo "#compdef hcloud" > "$out/share/zsh/vendor-completions/_hcloud"
-    $out/bin/hcloud completion zsh >> "$out/share/zsh/vendor-completions/_hcloud"
+  postInstall = ''
+    for shell in bash zsh; do
+      $out/bin/hcloud completion $shell > hcloud.$shell
+      installShellCompletion hcloud.$shell
+    done
   '';
 
   meta = {
     description = "A command-line interface for Hetzner Cloud, a provider for cloud virtual private servers";
     homepage = "https://github.com/hetznercloud/cli";
     license = stdenv.lib.licenses.mit;
-    platforms = stdenv.lib.platforms.all;
     maintainers = [ stdenv.lib.maintainers.zauberpony ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/heroku/default.nix b/nixpkgs/pkgs/development/tools/heroku/default.nix
index 23e0f5684574..5ef184090606 100644
--- a/nixpkgs/pkgs/development/tools/heroku/default.nix
+++ b/nixpkgs/pkgs/development/tools/heroku/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "heroku";
-  version = "7.41.1";
+  version = "7.42.2";
 
   src = fetchurl {
     url = "https://cli-assets.heroku.com/heroku-v${version}/heroku-v${version}.tar.xz";
-    sha256 = "12ilk0rkpwx8n9b7dird2jfmwnkqndlwjf5wgdcbl014mkl1411b";
+    sha256 = "1fddqqn2nwvniignkq8d5jvh0217zb960s402h57l4wg3djq7phr";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    homepage = "https://cli.heroku.com";
+    homepage = "https://devcenter.heroku.com/articles/heroku-cli";
     description = "Everything you need to get started using Heroku";
     maintainers = with lib.maintainers; [ aflatter mirdhyn peterhoeg marsam ];
     license = lib.licenses.mit;
diff --git a/nixpkgs/pkgs/development/tools/icestorm/default.nix b/nixpkgs/pkgs/development/tools/icestorm/default.nix
index 607e2ffe4a96..15ca059a8802 100644
--- a/nixpkgs/pkgs/development/tools/icestorm/default.nix
+++ b/nixpkgs/pkgs/development/tools/icestorm/default.nix
@@ -11,7 +11,7 @@
 
 stdenv.mkDerivation rec {
   pname = "icestorm";
-  version = "2019.09.13";
+  version = "2020.08.19";
 
   passthru = rec {
     pythonPkg = if usePyPy then pypy3 else python3;
@@ -19,10 +19,10 @@ stdenv.mkDerivation rec {
   };
 
   src = fetchFromGitHub {
-    owner  = "cliffordwolf";
+    owner  = "YosysHQ";
     repo   = "icestorm";
-    rev    = "0ec00d892a91cc68e45479b46161f649caea2933";
-    sha256 = "1qlh99fafb7xga702k64fmc9m700nsddrfgcq4x8qn8fplsb64f1";
+    rev    = "da52117ccd5b4147f64dc7345357ec5439cd7543";
+    sha256 = "072bl3vmvb06ry0ci3b1sfjpm3iigb874khzja4azcai969ybp4k";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/development/tools/java/visualvm/default.nix b/nixpkgs/pkgs/development/tools/java/visualvm/default.nix
index c59f6716a7b6..6cf97277bb5a 100644
--- a/nixpkgs/pkgs/development/tools/java/visualvm/default.nix
+++ b/nixpkgs/pkgs/development/tools/java/visualvm/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchzip, lib, makeWrapper, makeDesktopItem, jdk, gawk }:
 
 stdenv.mkDerivation rec {
-  version = "2.0.2";
+  version = "2.0.4";
   pname = "visualvm";
 
   src = fetchzip {
     url = "https://github.com/visualvm/visualvm.src/releases/download/${version}/visualvm_${builtins.replaceStrings ["."] [""]  version}.zip";
-    sha256 = "19h5804izhdhdwbpyfbfqsjwmnabz2djbhkv7gvzs66jxc6q8mgx";
+    sha256 = "1ic6gjsw90j7pr1yyplmk1zc319ld49i6d4zlgs7mlz1m4bn5jv3";
   };
 
   desktopItem = makeDesktopItem {
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
       comment = "Java Troubleshooting Tool";
       desktopName = "VisualVM";
       genericName = "Java Troubleshooting Tool";
-      categories = "Application;Development;";
+      categories = "Development;";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/jazzy/Gemfile.lock b/nixpkgs/pkgs/development/tools/jazzy/Gemfile.lock
index bed539369ac3..9f6050001ccd 100644
--- a/nixpkgs/pkgs/development/tools/jazzy/Gemfile.lock
+++ b/nixpkgs/pkgs/development/tools/jazzy/Gemfile.lock
@@ -2,20 +2,20 @@ GEM
   remote: https://rubygems.org/
   specs:
     CFPropertyList (3.0.2)
-    activesupport (4.2.11.1)
+    activesupport (4.2.11.3)
       i18n (~> 0.7)
       minitest (~> 5.1)
       thread_safe (~> 0.3, >= 0.3.4)
       tzinfo (~> 1.1)
-    algoliasearch (1.27.1)
+    algoliasearch (1.27.3)
       httpclient (~> 2.8, >= 2.8.3)
       json (>= 1.5.1)
     atomos (0.1.3)
     claide (1.0.3)
-    cocoapods (1.9.1)
+    cocoapods (1.9.3)
       activesupport (>= 4.0.2, < 5)
       claide (>= 1.0.2, < 2.0)
-      cocoapods-core (= 1.9.1)
+      cocoapods-core (= 1.9.3)
       cocoapods-deintegrate (>= 1.0.3, < 2.0)
       cocoapods-downloader (>= 1.2.2, < 2.0)
       cocoapods-plugins (>= 1.0.0, < 2.0)
@@ -31,7 +31,7 @@ GEM
       nap (~> 1.0)
       ruby-macho (~> 1.4)
       xcodeproj (>= 1.14.0, < 2.0)
-    cocoapods-core (1.9.1)
+    cocoapods-core (1.9.3)
       activesupport (>= 4.0.2, < 6)
       algoliasearch (~> 1.0)
       concurrent-ruby (~> 1.1)
@@ -40,12 +40,12 @@ GEM
       netrc (~> 0.11)
       typhoeus (~> 1.0)
     cocoapods-deintegrate (1.0.4)
-    cocoapods-downloader (1.3.0)
+    cocoapods-downloader (1.4.0)
     cocoapods-plugins (1.0.0)
       nap
     cocoapods-search (1.0.0)
     cocoapods-stats (1.1.0)
-    cocoapods-trunk (1.4.1)
+    cocoapods-trunk (1.5.0)
       nap (>= 0.8, < 2.0)
       netrc (~> 0.11)
     cocoapods-try (1.2.0)
@@ -54,14 +54,14 @@ GEM
     escape (0.0.4)
     ethon (0.12.0)
       ffi (>= 1.3.0)
-    ffi (1.12.2)
+    ffi (1.13.1)
     fourflusher (2.3.1)
     fuzzy_match (2.0.4)
     gh_inspector (1.1.3)
     httpclient (2.8.3)
     i18n (0.9.5)
       concurrent-ruby (~> 1.0)
-    jazzy (0.13.3)
+    jazzy (0.13.5)
       cocoapods (~> 1.5)
       mustache (~> 1.1)
       open4
@@ -70,34 +70,34 @@ GEM
       sassc (~> 2.1)
       sqlite3 (~> 1.3)
       xcinvoke (~> 0.3.0)
-    json (2.3.0)
+    json (2.3.1)
     liferaft (0.0.6)
-    minitest (5.14.0)
+    minitest (5.14.1)
     molinillo (0.6.6)
     mustache (1.1.1)
-    nanaimo (0.2.6)
+    nanaimo (0.3.0)
     nap (1.1.0)
     netrc (0.11.0)
     open4 (1.3.4)
     redcarpet (3.5.0)
-    rouge (3.18.0)
+    rouge (3.21.0)
     ruby-macho (1.4.0)
-    sassc (2.3.0)
+    sassc (2.4.0)
       ffi (~> 1.9)
     sqlite3 (1.4.2)
     thread_safe (0.3.6)
-    typhoeus (1.3.1)
+    typhoeus (1.4.0)
       ethon (>= 0.9.0)
     tzinfo (1.2.7)
       thread_safe (~> 0.1)
     xcinvoke (0.3.0)
       liferaft (~> 0.0.6)
-    xcodeproj (1.16.0)
+    xcodeproj (1.17.1)
       CFPropertyList (>= 2.3.3, < 4.0)
       atomos (~> 0.1.3)
       claide (>= 1.0.2, < 2.0)
       colored2 (~> 3.1)
-      nanaimo (~> 0.2.6)
+      nanaimo (~> 0.3.0)
 
 PLATFORMS
   ruby
diff --git a/nixpkgs/pkgs/development/tools/jazzy/gemset.nix b/nixpkgs/pkgs/development/tools/jazzy/gemset.nix
index f4f9c8104d4d..aa4492560b81 100644
--- a/nixpkgs/pkgs/development/tools/jazzy/gemset.nix
+++ b/nixpkgs/pkgs/development/tools/jazzy/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vbq7a805bfvyik2q3kl9s3r418f5qzvysqbz2cwy4hr7m2q4ir6";
+      sha256 = "0wp36wi3r3dscmcr0q6sbz13hr5h911c24ar7zrmmcy7p32ial2i";
       type = "gem";
     };
-    version = "4.2.11.1";
+    version = "4.2.11.3";
   };
   algoliasearch = {
     dependencies = ["httpclient" "json"];
@@ -16,10 +16,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ayg8j3819ay2d8618jv32ca16fh8qsgjsiq9j32yd016c170nkj";
+      sha256 = "1z94dnx0rljsfa3k24i1nc0vf1nfk3bbk89nqc6n1ax25h4fs5sw";
       type = "gem";
     };
-    version = "1.27.1";
+    version = "1.27.3";
   };
   atomos = {
     groups = ["default"];
@@ -57,10 +57,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0wxr81qy4jsbxl066nlfp8zlqk31i6fsmd7f01xmi9bv04990hrs";
+      sha256 = "0zqj1878izp34cn7552q2djs3zd4a5ylyv0af3yxbz34z0qllk60";
       type = "gem";
     };
-    version = "1.9.1";
+    version = "1.9.3";
   };
   cocoapods-core = {
     dependencies = ["activesupport" "algoliasearch" "concurrent-ruby" "fuzzy_match" "nap" "netrc" "typhoeus"];
@@ -68,10 +68,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0c1679fkyp06dwsh93r0ldzly9vc74g0br4jdngwvdl4g0j4fyzc";
+      sha256 = "0sn1561sdhq2bh35pmi9nhq1adjcgdkhxybd9pxcjs75zmqzpz13";
       type = "gem";
     };
-    version = "1.9.1";
+    version = "1.9.3";
   };
   cocoapods-deintegrate = {
     groups = ["default"];
@@ -88,10 +88,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "08vn0pgcyn6w6fq5xjd7szv2h9s5rzl17kyidnd7fl5qdmzc9c54";
+      sha256 = "1j03hxvz3m82fwgx3jayw0y2iqm7zpacn88r6nfj2arkbjxmvjwz";
       type = "gem";
     };
-    version = "1.3.0";
+    version = "1.4.0";
   };
   cocoapods-plugins = {
     dependencies = ["nap"];
@@ -126,10 +126,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vrwsgaq3nf7v3pwksgqy0mhswrp3ipczrc96vl3ii2pcc9ilwkw";
+      sha256 = "12c6028bmdwrbqcb49mr5qj1p3vcijnjqbsbzywfx1isp44j9mv5";
       type = "gem";
     };
-    version = "1.4.1";
+    version = "1.5.0";
   };
   cocoapods-try = {
     groups = ["default"];
@@ -183,10 +183,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
+      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
       type = "gem";
     };
-    version = "1.12.2";
+    version = "1.13.1";
   };
   fourflusher = {
     groups = ["default"];
@@ -243,20 +243,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1iv98hfmxf1vib63bq8l0wgx5n8kw2kmsj55y2vs04f2kcav3n4n";
+      sha256 = "1ysx3zq069mi1w69z0dqck9ss9iv18w8a2f6j663vqq6kn1b69dm";
       type = "gem";
     };
-    version = "0.13.3";
+    version = "0.13.5";
   };
   json = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0nrmw2r4nfxlfgprfgki3hjifgrcrs3l5zvm3ca3gb4743yr25mn";
+      sha256 = "158fawfwmv2sq4whqqaksfykkiad2xxrrj0nmpnc6vnlzi1bp7iz";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.3.1";
   };
   liferaft = {
     source = {
@@ -271,10 +271,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g73x65hmjph8dg1h3rkzfg7ys3ffxm35hj35grw75fixmq53qyz";
+      sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
       type = "gem";
     };
-    version = "5.14.0";
+    version = "5.14.1";
   };
   molinillo = {
     groups = ["default"];
@@ -301,10 +301,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ajfyaqjw3dzykk612yw8sm21savfqy292hgps8h8l4lvxww1lz6";
+      sha256 = "0xi36h3f7nm8bc2k0b6svpda1lyank2gf872lxjbhw3h95hdrbma";
       type = "gem";
     };
-    version = "0.2.6";
+    version = "0.3.0";
   };
   nap = {
     source = {
@@ -345,10 +345,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1n9h0ls2a2zq0bcsw31wxci1wdxb8s3vglfadxpcs6b04vkf6nqq";
+      sha256 = "1agrrmj88k9jkk36ra1ml2c1jffpp595pkxmcla74ac9ia09vn3s";
       type = "gem";
     };
-    version = "3.18.0";
+    version = "3.21.0";
   };
   ruby-macho = {
     groups = ["default"];
@@ -366,10 +366,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1qzfnvb8khvc6w2sn3k91mndc2w50xxx5c84jkr6xdxlmaq1a3kg";
+      sha256 = "0gpqv48xhl8mb8qqhcifcp0pixn206a7imc07g48armklfqa4q2c";
       type = "gem";
     };
-    version = "2.3.0";
+    version = "2.4.0";
   };
   sqlite3 = {
     groups = ["default"];
@@ -395,10 +395,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cni8b1idcp0dk8kybmxydadhfpaj3lbs99w5kjibv8bsmip2zi5";
+      sha256 = "1m22yrkmbj81rzhlny81j427qdvz57yk5wbcf3km0nf3bl6qiygz";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "1.4.0";
   };
   tzinfo = {
     dependencies = ["thread_safe"];
@@ -426,9 +426,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1bkk8y6lzd86w9yx72hd1nil3fkk5f0v3il9vm554gzpl6dhc2bi";
+      sha256 = "0mv5rsbgwq4vzri31w2f1474arrsr5j69rdhklrci6jnjps8dmx9";
       type = "gem";
     };
-    version = "1.16.0";
+    version = "1.17.1";
   };
 }
\ No newline at end of file
diff --git a/nixpkgs/pkgs/development/tools/jid/default.nix b/nixpkgs/pkgs/development/tools/jid/default.nix
index e031159d37c5..e6eef68ec6cf 100644
--- a/nixpkgs/pkgs/development/tools/jid/default.nix
+++ b/nixpkgs/pkgs/development/tools/jid/default.nix
@@ -19,7 +19,6 @@ buildGoPackage rec {
     description = "A command-line tool to incrementally drill down JSON";
     homepage = "https://github.com/simeji/jid";
     license = stdenv.lib.licenses.mit;
-    platforms = stdenv.lib.platforms.all;
     maintainers = with stdenv.lib.maintainers; [ stesie ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/jo/default.nix b/nixpkgs/pkgs/development/tools/jo/default.nix
index 0dcd02eb6188..8592e38de7f7 100644
--- a/nixpkgs/pkgs/development/tools/jo/default.nix
+++ b/nixpkgs/pkgs/development/tools/jo/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jo";
-  version = "1.3";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner  = "jpmens";
     repo = "jo";
     rev = version;
-    sha256 ="11miqg0i83drwkn66b4333vhfdw62al11dyfgp30alg6pcab3icl";
+    sha256 ="1jnv3g38vaa66m83hqibyki31ii81xfpvjw6wgdv18ci3iwvsz3v";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/tools/jp/default.nix b/nixpkgs/pkgs/development/tools/jp/default.nix
index 1e7d1023edfa..f05c788dabe1 100644
--- a/nixpkgs/pkgs/development/tools/jp/default.nix
+++ b/nixpkgs/pkgs/development/tools/jp/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "jp";
-  version = "0.1.2";
+  version = "0.1.3";
   rev = version;
 
   goPackagePath = "github.com/jmespath/jp";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     inherit rev;
     owner = "jmespath";
     repo = "jp";
-    sha256 = "1i0jl0c062crigkxqx8zpyqliz8j4d37y95cna33jl777kx42r6h";
+    sha256 = "0fdbnihbd0kq56am3bmh2zrfk4fqjslcbm48malbgmpqw3a5nvpi";
   };
   meta = with stdenv.lib; {
     description = "A command line interface to the JMESPath expression language for JSON";
diff --git a/nixpkgs/pkgs/development/tools/just/default.nix b/nixpkgs/pkgs/development/tools/just/default.nix
index 5fa2b12e9c39..ebf44d9d699b 100644
--- a/nixpkgs/pkgs/development/tools/just/default.nix
+++ b/nixpkgs/pkgs/development/tools/just/default.nix
@@ -1,18 +1,17 @@
-{ stdenv, fetchFromGitHub, rustPlatform, coreutils, bash, dash
-, installShellFiles }:
+{ stdenv, fetchFromGitHub, rustPlatform, coreutils, bash, installShellFiles }:
 
 rustPlatform.buildRustPackage rec {
   pname = "just";
-  version = "0.5.11";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "casey";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0li5lspxfrim8gymqzzd5djjfbfi7jh1m234qlzy5vkx2q9qg0xv";
+    sha256 = "07fjixz8y5rxfwpyr1kiimnn27jhc20gacd17i0yvfcpy5qf8z5p";
   };
 
-  cargoSha256 = "1sp8xrh3gmgmphh1bv050p1ybjybk9x8kswyxz2rd93q3zb5hpzz";
+  cargoSha256 = "1zn0kiqi8p25lscjd661gczay631nwzadl36cfzqnbww6blayy1j";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -24,7 +23,7 @@ rustPlatform.buildRustPackage rec {
     installShellCompletion --zsh  --name _just     completions/just.zsh
   '';
 
-  checkInputs = [ coreutils bash dash ];
+  checkInputs = [ coreutils bash ];
 
   preCheck = ''
     # USER must not be empty
@@ -41,22 +40,12 @@ rustPlatform.buildRustPackage rec {
 
   # Skip "edit" when running "cargo test",
   # since this test case needs "cat".
-  checkPhase = ''
-    runHook preCheck
-    echo "Running cargo test --
-        --skip edit
-        ''${checkFlags} ''${checkFlagsArray+''${checkFlagsArray[@]}}"
-    cargo test -- \
-        --skip edit \
-        ''${checkFlags} ''${checkFlagsArray+"''${checkFlagsArray[@]}"}
-    runHook postCheck
-  '';
+  checkFlagsArray = [ "--skip=edit" ];
 
   meta = with stdenv.lib; {
     description = "A handy way to save and run project-specific commands";
     homepage = "https://github.com/casey/just";
     license = licenses.cc0;
     maintainers = with maintainers; [ xrelkd ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/k6/default.nix b/nixpkgs/pkgs/development/tools/k6/default.nix
index 136b44bd8436..bf4f83f90210 100644
--- a/nixpkgs/pkgs/development/tools/k6/default.nix
+++ b/nixpkgs/pkgs/development/tools/k6/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "k6";
-  version = "0.26.2";
+  version = "0.27.1";
 
   goPackagePath = "github.com/loadimpact/k6";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "loadimpact";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0s5haycpfnfyvxxhhm7205gzylsbjndx9f134f245p4xm5bxhxbf";
+    sha256 = "0ni7x64al49adzy6kwzxyi56w556qy34888hxsldjrnndlchc0vz";
   };
 
   subPackages = [ "./" ];
diff --git a/nixpkgs/pkgs/development/tools/kafkacat/default.nix b/nixpkgs/pkgs/development/tools/kafkacat/default.nix
index 5b67d4ddbc57..6e7db6b35c6b 100644
--- a/nixpkgs/pkgs/development/tools/kafkacat/default.nix
+++ b/nixpkgs/pkgs/development/tools/kafkacat/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "kafkacat";
 
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "edenhill";
     repo = "kafkacat";
     rev = version;
-    sha256 = "0lf2pf3zqncd4a44h0mjm66qnw02k9kvz1hjkah6p6gp7mx3ksjv";
+    sha256 = "0z3bw00s269myfd1xqksjyznmgp74xfs09xqlq347adsgby3cmfs";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/development/tools/kcli/default.nix b/nixpkgs/pkgs/development/tools/kcli/default.nix
index fece8c17cead..3a0fff71dc79 100644
--- a/nixpkgs/pkgs/development/tools/kcli/default.nix
+++ b/nixpkgs/pkgs/development/tools/kcli/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0whqrms5mc7v14p2h1jfvkawm30xaylivijlsghrsaq468qcgg15";
 
+  doCheck = false;
+
   subPackages = [ "." ];
 
   meta = with stdenv.lib; {
@@ -21,4 +23,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ cswank ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/kexpand/default.nix b/nixpkgs/pkgs/development/tools/kexpand/default.nix
index e6c562721c28..8e45eb2654bd 100644
--- a/nixpkgs/pkgs/development/tools/kexpand/default.nix
+++ b/nixpkgs/pkgs/development/tools/kexpand/default.nix
@@ -13,6 +13,4 @@ buildGoPackage {
     rev = "c508a43a4e84410dfd30827603e902148c5c1f3c";
     sha256 = "0946h74lsqnr1106j7i2w2a5jg2bbk831d7prlws4bb2kigfm38p";
   };
-
-  goDeps = ./deps.nix;
 }
diff --git a/nixpkgs/pkgs/development/tools/kexpand/deps.nix b/nixpkgs/pkgs/development/tools/kexpand/deps.nix
deleted file mode 100644
index c049d9683cce..000000000000
--- a/nixpkgs/pkgs/development/tools/kexpand/deps.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-
-  {
-    goPackagePath = "github.com/ghodss/yaml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ghodss/yaml";
-      rev = "v1.0.0";
-      sha256 = "0skwmimpy7hlh7pva2slpcplnm912rp3igs98xnqmn859kwa5v8g";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/golang/glog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/glog";
-      rev = "23def4e6c14b";
-      sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/spf13/cobra";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cobra";
-      rev = "v0.0.3";
-      sha256 = "1q1nsx05svyv9fv3fy6xv6gs9ffimkyzsfm49flvl3wnvf1ncrkd";
-    };
-  }
-
-  {
-    goPackagePath = "github.com/spf13/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/pflag";
-      rev = "v1.0.3";
-      sha256 = "1cj3cjm7d3zk0mf1xdybh0jywkbbw7a6yr3y22x9sis31scprswd";
-    };
-  }
-
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "20d25e280405";
-      sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
-    };
-  }
-
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.1";
-      sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/development/tools/kind/default.nix b/nixpkgs/pkgs/development/tools/kind/default.nix
index f58303cae6f2..6ea2c87f8888 100644
--- a/nixpkgs/pkgs/development/tools/kind/default.nix
+++ b/nixpkgs/pkgs/development/tools/kind/default.nix
@@ -14,7 +14,9 @@ buildGoModule rec {
   };
 
   vendorSha256 = "1qvbm8v8yah6r6cw1cvdw79yiwxb2amzdkkzvzbwigy0j4bvn9mi";
-  goPackagePath = "sigs.k8s.io/kind";
+
+  doCheck = false;
+
   subPackages = [ "." ];
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/nixpkgs/pkgs/development/tools/knightos/kcc/default.nix b/nixpkgs/pkgs/development/tools/knightos/kcc/default.nix
new file mode 100644
index 000000000000..49851dd0c074
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/knightos/kcc/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, cmake, bison, flex, boost }:
+
+stdenv.mkDerivation rec {
+  pname = "kcc";
+
+  version = "4.0.0";
+
+  src = fetchFromGitHub {
+    owner = "KnightOS";
+    repo = "kcc";
+    rev = version;
+    sha256 = "1cd226nqbxq32mppkljavq1kb74jqfqns9r7fskszr42hbygynk4";
+  };
+
+  nativeBuildInputs = [ cmake bison flex ];
+
+  buildInputs = [ boost ];
+
+  meta = with stdenv.lib; {
+    homepage    = "https://knightos.org/";
+    description = "KnightOS C compiler";
+    license     = licenses.gpl2Plus;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/knightos/kimg/default.nix b/nixpkgs/pkgs/development/tools/knightos/kimg/default.nix
new file mode 100644
index 000000000000..b6f490e1d9d4
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/knightos/kimg/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, cmake, asciidoc, pkg-config, imagemagick }:
+
+stdenv.mkDerivation rec {
+  pname = "kimg";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "KnightOS";
+    repo = "kimg";
+    rev = version;
+    sha256 = "00gj420m0jvhgm8kkslw8r69nl7r73bxrh6gqs2mx16ymcpkanpk";
+  };
+
+  nativeBuildInputs = [ cmake asciidoc pkg-config ];
+
+  buildInputs = [ imagemagick ];
+
+  hardeningDisable = [ "format" ];
+
+  meta = with stdenv.lib; {
+    homepage    = "https://knightos.org/";
+    description = "Converts image formats supported by ImageMagick to the KnightOS image format";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/knightos/kpack/default.nix b/nixpkgs/pkgs/development/tools/knightos/kpack/default.nix
new file mode 100644
index 000000000000..96af43e61605
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/knightos/kpack/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, cmake, asciidoc, libxslt, docbook_xsl }:
+
+stdenv.mkDerivation rec {
+  pname = "kpack";
+
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "KnightOS";
+    repo = "kpack";
+    rev = version;
+    sha256 = "0kakfbzdvq5ldv1gdzl473j73c9nfdyx4xzfkriglkrqmksqc329";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ asciidoc libxslt.bin docbook_xsl ];
+
+  hardeningDisable = [ "fortify" ];
+
+  meta = with stdenv.lib; {
+    homepage    = "https://knightos.org/";
+    description = "A tool to create or extract KnightOS packages";
+    license     = licenses.lgpl2Only;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix b/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix
new file mode 100644
index 000000000000..380bdc58d49b
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/knightos/mkrom/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, cmake, asciidoc }:
+
+stdenv.mkDerivation rec {
+  pname = "mkrom";
+  version = "1.0.2";
+
+  src = fetchFromGitHub {
+    owner = "KnightOS";
+    repo = "mkrom";
+    rev = version;
+    sha256 = "1nx3787gvs04xdvvamzkjkn9nmy2w70ja8dnh4szk420mvpc85na";
+  };
+
+  nativeBuildInputs = [
+    asciidoc
+    cmake
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  meta = with stdenv.lib; {
+    homepage    = "https://knightos.org/";
+    description = "Packages KnightOS distribution files into a ROM";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/knightos/scas/default.nix b/nixpkgs/pkgs/development/tools/knightos/scas/default.nix
new file mode 100644
index 000000000000..ad21e68eed8c
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/knightos/scas/default.nix
@@ -0,0 +1,26 @@
+{ fetchFromGitHub, stdenv, cmake }:
+
+
+stdenv.mkDerivation rec {
+  pname = "scas";
+
+  version = "0.4.6";
+
+  src = fetchFromGitHub {
+    owner = "KnightOS";
+    repo = "scas";
+    rev = version;
+    sha256 = "1c6s9nivbwgv0f8n7j73h54ydgqw5dcpq8l752dfrnqg3kv3nn0h";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  hardeningDisable = [ "format" ];
+
+  meta = with stdenv.lib; {
+    homepage    = "https://knightos.org/";
+    description = "Assembler and linker for the Z80.";
+    license     = licenses.mit;
+    maintainers = with maintainers; [ siraben ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/ktlint/default.nix b/nixpkgs/pkgs/development/tools/ktlint/default.nix
index b8a8dc75158e..fce25903aca9 100644
--- a/nixpkgs/pkgs/development/tools/ktlint/default.nix
+++ b/nixpkgs/pkgs/development/tools/ktlint/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ktlint";
-  version = "0.37.1";
+  version = "0.37.2";
 
   src = fetchurl {
     url = "https://github.com/shyiko/ktlint/releases/download/${version}/ktlint";
-    sha256 = "0i5frcy3ya1qwq0hl67gq6fgz0c8vgskgha25irsw7j2ndf4qp8i";
+    sha256 = "1hhycvvp21gy6g71hwf3pk2jnccpnhcf2z7c85shzffhddy1wc0v";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/kubectx/default.nix b/nixpkgs/pkgs/development/tools/kubectx/default.nix
index 8b980dc7e31e..59a7c8300e2e 100644
--- a/nixpkgs/pkgs/development/tools/kubectx/default.nix
+++ b/nixpkgs/pkgs/development/tools/kubectx/default.nix
@@ -1,53 +1,31 @@
-{ stdenv, lib, fetchFromGitHub, kubectl, makeWrapper }:
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
 
-with lib;
-
-stdenv.mkDerivation rec {
+buildGoModule rec {
   pname = "kubectx";
-  version = "0.9.0";
+  version = "0.9.1";
 
   src = fetchFromGitHub {
     owner = "ahmetb";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1b22jk8zl944w5zn3s7ybkkbmzp9519x32pfqwd1malfly7dzf55";
+    sha256 = "1c7y5hj4w72bm6y3riw0acayn4w9x7bbf1vykqcprbyw3a3dvcsw";
   };
 
-  buildInputs = [ makeWrapper ];
+  vendorSha256 = "168hfdc2rfwpz2ls607bz5vsm1aw4brhwm8hmbiq1n1l2dn2dj0y";
 
-  dontBuild = true;
   doCheck = false;
 
-  installPhase = ''
-    mkdir -p $out/bin
-    mkdir -p $out/share/zsh/site-functions
-    mkdir -p $out/share/bash-completion/completions
-    mkdir -p $out/share/fish/vendor_completions.d
-
-    cp kubectx $out/bin
-    cp kubens $out/bin
-
-    # Provide ZSH completions
-    cp completion/kubectx.zsh $out/share/zsh/site-functions/_kubectx
-    cp completion/kubens.zsh $out/share/zsh/site-functions/_kubens
-
-    # Provide BASH completions
-    cp completion/kubectx.bash $out/share/bash-completion/completions/kubectx
-    cp completion/kubens.bash $out/share/bash-completion/completions/kubens
-
-    # Provide FISH completions
-    cp completion/*.fish $out/share/fish/vendor_completions.d/
+  nativeBuildInputs = [ installShellFiles ];
 
-    for f in $out/bin/*; do
-      wrapProgram $f --prefix PATH : ${makeBinPath [ kubectl ]}
-    done
+  postInstall = ''
+    installShellCompletion completion/*
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "Fast way to switch between clusters and namespaces in kubectl!";
     license = licenses.asl20;
     homepage = "https://github.com/ahmetb/kubectx";
-    maintainers = with maintainers; [ periklis ];
+    maintainers = with maintainers; [ jlesquembre ];
     platforms = with platforms; unix;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/kubeprompt/default.nix b/nixpkgs/pkgs/development/tools/kubeprompt/default.nix
index bac22169edf2..51369bc1f91e 100644
--- a/nixpkgs/pkgs/development/tools/kubeprompt/default.nix
+++ b/nixpkgs/pkgs/development/tools/kubeprompt/default.nix
@@ -15,17 +15,17 @@ buildGoModule rec {
     export buildFlagsArray+=(
       "-ldflags=
         -w -s
-        -X ${goPackagePath}/pkg/version.Version=${version}")
+        -X github.com/jlesquembre/kubeprompt/pkg/version.Version=${version}")
   '';
 
-  goPackagePath = "github.com/jlesquembre/kubeprompt";
   vendorSha256 = "089lfkvyf00f05kkmr935jbrddf2c0v7m2356whqnz7ad6a2whsi";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Kubernetes prompt";
     homepage = "https://github.com/jlesquembre/kubeprompt";
     license = licenses.epl20;
     maintainers = with maintainers; [ jlesquembre ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/kustomize/default.nix b/nixpkgs/pkgs/development/tools/kustomize/default.nix
index e35cc1c8fbd5..63a3c7746688 100644
--- a/nixpkgs/pkgs/development/tools/kustomize/default.nix
+++ b/nixpkgs/pkgs/development/tools/kustomize/default.nix
@@ -1,29 +1,29 @@
-{ lib, buildGoModule, fetchFromGitHub, tree }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "kustomize";
-  version = "3.3.1";
-  # rev is the 3.3.1 commit, mainly for kustomize version command output
-  rev = "f2ac5a2d0df13c047fb20cbc12ef1a3b41ce2dad";
+  version = "3.8.1";
+  # rev is the 3.8.1 commit, mainly for kustomize version command output
+  rev = "6a50372dd5686df22750b0c729adaf369fbf193c";
 
-  buildFlagsArray = let t = "sigs.k8s.io/kustomize/v3/provenance"; in ''
-    -ldflags=
-      -s -X ${t}.version=${version}
-         -X ${t}.gitCommit=${rev}
-         -X ${t}.buildDate=unknown
-  '';
+  buildFlagsArray = let t = "sigs.k8s.io/kustomize/api/provenance"; in
+    ''
+      -ldflags=
+        -s -X ${t}.version=${version}
+           -X ${t}.gitCommit=${rev}
+    '';
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "0yxxz0b56r18w178y32s619zy8ci6l93c6vlzx11hhxhbw43f6v6";
+    rev = "kustomize/v${version}";
+    sha256 = "07zdp6xv8viwnaz1qacwhg82dlzcrgb8dls6yz9qk4qcnsk6badx";
   };
 
   # avoid finding test and development commands
   sourceRoot = "source/kustomize";
 
-  vendorSha256 = "06mf5zvxn10g5rqjpqv3afvhj9xmijbj8ag8pqcg1996s4rp4p7a";
+  vendorSha256 = "01ff3w4hwp4ynqhg8cplv0i2ixs811d2x2j6xbh1lslyyh3z3wc5";
 
   meta = with lib; {
     description = "Customization of kubernetes YAML configurations";
@@ -36,4 +36,4 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ carlosdagos vdemeester periklis zaninime ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/lattice-diamond/default.nix b/nixpkgs/pkgs/development/tools/lattice-diamond/default.nix
index 1dea14401138..6720603b2e5f 100644
--- a/nixpkgs/pkgs/development/tools/lattice-diamond/default.nix
+++ b/nixpkgs/pkgs/development/tools/lattice-diamond/default.nix
@@ -1,5 +1,5 @@
 { stdenv, rpmextract, patchelf, makeWrapper, file, requireFile, glib, zlib, 
-    freetype, fontconfig, xorg }:
+    freetype, fontconfig, xorg, libusb-compat-0_1 }:
 
 stdenv.mkDerivation {
   name = "diamond-3.10";
@@ -98,6 +98,7 @@ stdenv.mkDerivation {
   libPath = stdenv.lib.makeLibraryPath [
     glib zlib freetype fontconfig
     xorg.libSM xorg.libICE xorg.libXrender xorg.libXext xorg.libX11 xorg.libXt
+    libusb-compat-0_1
   ];
 
   meta = {
diff --git a/nixpkgs/pkgs/development/tools/lazygit/default.nix b/nixpkgs/pkgs/development/tools/lazygit/default.nix
index c3ae1eb30e87..02b4d8abf247 100644
--- a/nixpkgs/pkgs/development/tools/lazygit/default.nix
+++ b/nixpkgs/pkgs/development/tools/lazygit/default.nix
@@ -1,20 +1,21 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "lazygit";
-  version = "0.20.4";
-
-  goPackagePath = "github.com/jesseduffield/lazygit";
-
-  subPackages = [ "." ];
+  version = "0.22.8";
 
   src = fetchFromGitHub {
     owner = "jesseduffield";
     repo = pname;
     rev = "v${version}";
-    sha256 = "134f04ybzgghm7ghyxair111aflmkjrbfj0bkxfp1w0a3jm6sfsk";
+    sha256 = "1jq093nsfh7xqvsjvaad9wvqd3rjrpyp5fl8qxwbhaj3sxx19v7g";
   };
 
+  vendorSha256 = null;
+  subPackages = [ "." ];
+
+  buildFlagsArray = [ "-ldflags=-X main.version=${version} -X main.buildSource=nix" ];
+
   meta = with stdenv.lib; {
     description = "Simple terminal UI for git commands";
     homepage = "https://github.com/jesseduffield/lazygit";
diff --git a/nixpkgs/pkgs/development/tools/leaps/default.nix b/nixpkgs/pkgs/development/tools/leaps/default.nix
index 569ad6eb3cfe..bb8673d4d56b 100644
--- a/nixpkgs/pkgs/development/tools/leaps/default.nix
+++ b/nixpkgs/pkgs/development/tools/leaps/default.nix
@@ -14,7 +14,7 @@ buildGoPackage rec {
   };
 
   goDeps = ./deps.nix;
-  
+
   meta = {
     description = "A pair programming tool and library written in Golang";
     homepage = "https://github.com/jeffail/leaps/";
@@ -23,4 +23,3 @@ buildGoPackage rec {
     platforms = stdenv.lib.platforms.unix;
   };
 }
-
diff --git a/nixpkgs/pkgs/development/tools/leaps/deps.nix b/nixpkgs/pkgs/development/tools/leaps/deps.nix
index afaf42779b3e..ee06659c72ec 100644
--- a/nixpkgs/pkgs/development/tools/leaps/deps.nix
+++ b/nixpkgs/pkgs/development/tools/leaps/deps.nix
@@ -1,185 +1,165 @@
-
-  # file automatically generated from Gopkg.lock with https://github.com/nixcloud/dep2nix (golang dep)
-  [
-  
-    {
-      goPackagePath  = "github.com/Azure/go-autorest";
-      fetch = {
-        type = "git";
-        url = "https://github.com/Azure/go-autorest";
-        rev =  "fc3b03a2d2d1f43fad3007038bd16f044f870722";
-        sha256 = "1j6aqbizlpiqcywdsj4dy4i76g8fbqc7d61c22ppc9knw0968h4r";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/Jeffail/gabs";
-      fetch = {
-        type = "git";
-        url = "https://github.com/Jeffail/gabs";
-        rev =  "2a3aa15961d5fee6047b8151b67ac2f08ba2c48c";
-        sha256 = "1fx6fyl5x037viwlj319f3gsq749an17q5l6n2zvf3ny5wq0iqxr";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/amir/raidman";
-      fetch = {
-        type = "git";
-        url = "https://github.com/amir/raidman";
-        rev =  "1ccc43bfb9c93cb401a4025e49c64ba71e5e668b";
-        sha256 = "074ckbyslrwn23q4x01hn3j7c3xngagn36lbli2g51n9j3x14jxr";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/azure/azure-sdk-for-go";
-      fetch = {
-        type = "git";
-        url = "https://github.com/azure/azure-sdk-for-go";
-        rev =  "21b68149ccf7c16b3f028bb4c7fd0ab458fe308f";
-        sha256 = "0zlhrh3n9mc5w7r0sdaqmpqfm2d290b50an0k1bvrr892m4cnxaq";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/cenkalti/backoff";
-      fetch = {
-        type = "git";
-        url = "https://github.com/cenkalti/backoff";
-        rev =  "61153c768f31ee5f130071d08fc82b85208528de";
-        sha256 = "08x77mgb9zsj047n74rx6c16jjx985lmy4s6fl58mdgxgxjv54y5";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/dgrijalva/jwt-go";
-      fetch = {
-        type = "git";
-        url = "https://github.com/dgrijalva/jwt-go";
-        rev =  "dbeaa9332f19a944acb5736b4456cfcc02140e29";
-        sha256 = "0zk6l6kzsjdijfn7c4h0aywdjx5j2hjwi67vy1k6wr46hc8ks2hs";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/elazarl/go-bindata-assetfs";
-      fetch = {
-        type = "git";
-        url = "https://github.com/elazarl/go-bindata-assetfs";
-        rev =  "30f82fa23fd844bd5bb1e5f216db87fd77b5eb43";
-        sha256 = "1swfb37g6sga3awvcmxf49ngbpvjv7ih5an9f8ixjqcfcwnb7nzp";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/garyburd/redigo";
-      fetch = {
-        type = "git";
-        url = "https://github.com/garyburd/redigo";
-        rev =  "d1ed5c67e5794de818ea85e6b522fda02623a484";
-        sha256 = "0gw18k9kg93hvdks93hckrdqppg1bav82sp2c98q6z36dkvaih24";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/go-sql-driver/mysql";
-      fetch = {
-        type = "git";
-        url = "https://github.com/go-sql-driver/mysql";
-        rev =  "a0583e0143b1624142adab07e0e97fe106d99561";
-        sha256 = "1rw1m91dpm23s6nn6jc4zi6rq2mgl7zx07gyadrdn0sh7cj8c89d";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/golang/protobuf";
-      fetch = {
-        type = "git";
-        url = "https://github.com/golang/protobuf";
-        rev =  "925541529c1fa6821df4e44ce2723319eb2be768";
-        sha256 = "1d3zjvhl115l23xakj0014qpjchivlg098h10v5nfirkk1i9f9sa";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/gorilla/websocket";
-      fetch = {
-        type = "git";
-        url = "https://github.com/gorilla/websocket";
-        rev =  "ea4d1f681babbce9545c9c5f3d5194a789c89f5b";
-        sha256 = "1bhgs2542qs49p1dafybqxfs2qc072xv41w5nswyrknwyjxxs2a1";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/kardianos/osext";
-      fetch = {
-        type = "git";
-        url = "https://github.com/kardianos/osext";
-        rev =  "ae77be60afb1dcacde03767a8c37337fad28ac14";
-        sha256 = "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/lib/pq";
-      fetch = {
-        type = "git";
-        url = "https://github.com/lib/pq";
-        rev =  "88edab0803230a3898347e77b474f8c1820a1f20";
-        sha256 = "02y7c8xy33x5q4167x2drzrys41nfi7wxxp9hy4vpazfws88al9p";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/marstr/guid";
-      fetch = {
-        type = "git";
-        url = "https://github.com/marstr/guid";
-        rev =  "8bdf7d1a087ccc975cf37dd6507da50698fd19ca";
-        sha256 = "1mxcigzfc1bbh5b616hm89bp06allhwcsas9v9lks235h0acgn4x";
-      };
-    }
-    
-    {
-      goPackagePath  = "github.com/satori/go.uuid";
-      fetch = {
-        type = "git";
-        url = "https://github.com/satori/go.uuid";
-        rev =  "f58768cc1a7a7e77a3bd49e98cdd21419399b6a3";
-        sha256 = "1j4s5pfg2ldm35y8ls8jah4dya2grfnx2drb4jcbjsyrp4cm5yfb";
-      };
-    }
-    
-    {
-      goPackagePath  = "golang.org/x/net";
-      fetch = {
-        type = "git";
-        url = "https://go.googlesource.com/net";
-        rev =  "cbe0f9307d0156177f9dd5dc85da1a31abc5f2fb";
-        sha256 = "1hmpqkxh97ayyy0xcdvf1bwirwja4wyin3sh0fzjlh93aqmqgylf";
-      };
-    }
-    
-    {
-      goPackagePath  = "gopkg.in/alexcesaro/statsd.v2";
-      fetch = {
-        type = "git";
-        url = "https://gopkg.in/alexcesaro/statsd.v2";
-        rev =  "7fea3f0d2fab1ad973e641e51dba45443a311a90";
-        sha256 = "02jdx68vicwsgabrnwgg1rvc45rinyh8ikinqgbqc56c5hkx3brj";
-      };
-    }
-    
-    {
-      goPackagePath  = "gopkg.in/yaml.v2";
-      fetch = {
-        type = "git";
-        url = "https://gopkg.in/yaml.v2";
-        rev =  "d670f9405373e636a5a2765eea47fac0c9bc91a4";
-        sha256 = "1w1xid51n8v1mydn2m3vgggw8qgpd5a5sr62snsc77d99fpjsrs0";
-      };
-    }
-    
-]
\ No newline at end of file
+# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
+[
+  {
+    goPackagePath  = "github.com/Azure/go-autorest";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Azure/go-autorest";
+      rev =  "fc3b03a2d2d1f43fad3007038bd16f044f870722";
+      sha256 = "1j6aqbizlpiqcywdsj4dy4i76g8fbqc7d61c22ppc9knw0968h4r";
+    };
+  }
+  {
+    goPackagePath  = "github.com/Jeffail/gabs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Jeffail/gabs";
+      rev =  "2a3aa15961d5fee6047b8151b67ac2f08ba2c48c";
+      sha256 = "1fx6fyl5x037viwlj319f3gsq749an17q5l6n2zvf3ny5wq0iqxr";
+    };
+  }
+  {
+    goPackagePath  = "github.com/amir/raidman";
+    fetch = {
+      type = "git";
+      url = "https://github.com/amir/raidman";
+      rev =  "1ccc43bfb9c93cb401a4025e49c64ba71e5e668b";
+      sha256 = "074ckbyslrwn23q4x01hn3j7c3xngagn36lbli2g51n9j3x14jxr";
+    };
+  }
+  {
+    goPackagePath  = "github.com/azure/azure-sdk-for-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/azure/azure-sdk-for-go";
+      rev =  "21b68149ccf7c16b3f028bb4c7fd0ab458fe308f";
+      sha256 = "0zlhrh3n9mc5w7r0sdaqmpqfm2d290b50an0k1bvrr892m4cnxaq";
+    };
+  }
+  {
+    goPackagePath  = "github.com/cenkalti/backoff";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cenkalti/backoff";
+      rev =  "61153c768f31ee5f130071d08fc82b85208528de";
+      sha256 = "08x77mgb9zsj047n74rx6c16jjx985lmy4s6fl58mdgxgxjv54y5";
+    };
+  }
+  {
+    goPackagePath  = "github.com/dgrijalva/jwt-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dgrijalva/jwt-go";
+      rev =  "dbeaa9332f19a944acb5736b4456cfcc02140e29";
+      sha256 = "0zk6l6kzsjdijfn7c4h0aywdjx5j2hjwi67vy1k6wr46hc8ks2hs";
+    };
+  }
+  {
+    goPackagePath  = "github.com/elazarl/go-bindata-assetfs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/elazarl/go-bindata-assetfs";
+      rev =  "30f82fa23fd844bd5bb1e5f216db87fd77b5eb43";
+      sha256 = "1swfb37g6sga3awvcmxf49ngbpvjv7ih5an9f8ixjqcfcwnb7nzp";
+    };
+  }
+  {
+    goPackagePath  = "github.com/garyburd/redigo";
+    fetch = {
+      type = "git";
+      url = "https://github.com/garyburd/redigo";
+      rev =  "d1ed5c67e5794de818ea85e6b522fda02623a484";
+      sha256 = "0gw18k9kg93hvdks93hckrdqppg1bav82sp2c98q6z36dkvaih24";
+    };
+  }
+  {
+    goPackagePath  = "github.com/go-sql-driver/mysql";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-sql-driver/mysql";
+      rev =  "a0583e0143b1624142adab07e0e97fe106d99561";
+      sha256 = "1rw1m91dpm23s6nn6jc4zi6rq2mgl7zx07gyadrdn0sh7cj8c89d";
+    };
+  }
+  {
+    goPackagePath  = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev =  "925541529c1fa6821df4e44ce2723319eb2be768";
+      sha256 = "1d3zjvhl115l23xakj0014qpjchivlg098h10v5nfirkk1i9f9sa";
+    };
+  }
+  {
+    goPackagePath  = "github.com/gorilla/websocket";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/websocket";
+      rev =  "ea4d1f681babbce9545c9c5f3d5194a789c89f5b";
+      sha256 = "1bhgs2542qs49p1dafybqxfs2qc072xv41w5nswyrknwyjxxs2a1";
+    };
+  }
+  {
+    goPackagePath  = "github.com/kardianos/osext";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kardianos/osext";
+      rev =  "ae77be60afb1dcacde03767a8c37337fad28ac14";
+      sha256 = "056dkgxrqjj5r18bnc3knlpgdz5p3yvp12y4y978hnsfhwaqvbjz";
+    };
+  }
+  {
+    goPackagePath  = "github.com/lib/pq";
+    fetch = {
+      type = "git";
+      url = "https://github.com/lib/pq";
+      rev =  "88edab0803230a3898347e77b474f8c1820a1f20";
+      sha256 = "02y7c8xy33x5q4167x2drzrys41nfi7wxxp9hy4vpazfws88al9p";
+    };
+  }
+  {
+    goPackagePath  = "github.com/marstr/guid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/marstr/guid";
+      rev =  "8bdf7d1a087ccc975cf37dd6507da50698fd19ca";
+      sha256 = "1mxcigzfc1bbh5b616hm89bp06allhwcsas9v9lks235h0acgn4x";
+    };
+  }
+  {
+    goPackagePath  = "github.com/satori/go.uuid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/satori/go.uuid";
+      rev =  "f58768cc1a7a7e77a3bd49e98cdd21419399b6a3";
+      sha256 = "1j4s5pfg2ldm35y8ls8jah4dya2grfnx2drb4jcbjsyrp4cm5yfb";
+    };
+  }
+  {
+    goPackagePath  = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev =  "cbe0f9307d0156177f9dd5dc85da1a31abc5f2fb";
+      sha256 = "1hmpqkxh97ayyy0xcdvf1bwirwja4wyin3sh0fzjlh93aqmqgylf";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/alexcesaro/statsd.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alexcesaro/statsd";
+      rev =  "7fea3f0d2fab1ad973e641e51dba45443a311a90";
+      sha256 = "02jdx68vicwsgabrnwgg1rvc45rinyh8ikinqgbqc56c5hkx3brj";
+    };
+  }
+  {
+    goPackagePath  = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-yaml/yaml";
+      rev =  "d670f9405373e636a5a2765eea47fac0c9bc91a4";
+      sha256 = "1w1xid51n8v1mydn2m3vgggw8qgpd5a5sr62snsc77d99fpjsrs0";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/development/tools/manul/default.nix b/nixpkgs/pkgs/development/tools/manul/default.nix
index b789a99578dd..71010149a921 100644
--- a/nixpkgs/pkgs/development/tools/manul/default.nix
+++ b/nixpkgs/pkgs/development/tools/manul/default.nix
@@ -13,6 +13,7 @@ buildGoPackage {
     sha256 = "06kglxdgj1dfpc9bdnvhsh8z0c1pdbmwmfx4km01wpppzk06dnvm";
   };
 
+  deleteVendor = true;
   goDeps = ./deps.nix;
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/tools/metals/default.nix b/nixpkgs/pkgs/development/tools/metals/default.nix
index 5f4af6268770..55125fbeff45 100644
--- a/nixpkgs/pkgs/development/tools/metals/default.nix
+++ b/nixpkgs/pkgs/development/tools/metals/default.nix
@@ -1,10 +1,11 @@
 { stdenv, lib, coursier, jdk, jre, makeWrapper }:
 
-let
-  baseName = "metals";
-  version = "0.9.0";
+stdenv.mkDerivation rec {
+  pname = "metals";
+  version = "0.9.4";
+
   deps = stdenv.mkDerivation {
-    name = "${baseName}-deps-${version}";
+    name = "${pname}-deps-${version}";
     buildCommand = ''
       export COURSIER_CACHE=$(pwd)
       ${coursier}/bin/coursier fetch org.scalameta:metals_2.12:${version} \
@@ -15,11 +16,8 @@ let
     '';
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash     = "116q2jzqlmdhkqvjg31b9ib8w1k7rlr8gmjcr7z32idpn16hqg59";
+    outputHash     = "1k07gg13z3kambvvrxsc27781cd5npb2a50ahdbj7x6j6h67k0pg";
   };
-in
-stdenv.mkDerivation rec {
-  name = "${baseName}-${version}";
 
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ jdk deps ];
diff --git a/nixpkgs/pkgs/development/tools/micronaut/default.nix b/nixpkgs/pkgs/development/tools/micronaut/default.nix
index e781bb80ac8c..5d032d42108f 100644
--- a/nixpkgs/pkgs/development/tools/micronaut/default.nix
+++ b/nixpkgs/pkgs/development/tools/micronaut/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "micronaut";
-  version = "1.3.5";
+  version = "1.3.7";
 
   src = fetchzip {
     url = "https://github.com/micronaut-projects/micronaut-core/releases/download/v${version}/${pname}-${version}.zip";
-    sha256 = "16n1dk9jgy78mrkvr78m4x772kn09y5aa4d06wl4sdgn6apcq2mc";
+    sha256 = "1f9fhp10fdm18g33kxl70l6l3x1k8p81h2c3zahjmhlg0sam78zw";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
diff --git a/nixpkgs/pkgs/development/tools/minizinc/default.nix b/nixpkgs/pkgs/development/tools/minizinc/default.nix
index 6dfe0f570f93..308343c1ec6f 100644
--- a/nixpkgs/pkgs/development/tools/minizinc/default.nix
+++ b/nixpkgs/pkgs/development/tools/minizinc/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, fetchFromGitHub, cmake, flex, bison }:
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, flex, bison }:
 let
-  version = "2.2.3";
+  version = "2.4.3";
 in
 stdenv.mkDerivation {
   pname = "minizinc";
@@ -11,10 +11,19 @@ stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "MiniZinc";
     repo = "libminizinc";
-    rev = "3d66971a0cad6edbe796f4dd940229d38e5bfe3d"; # tags on the repo are disappearing: See https://github.com/MiniZinc/libminizinc/issues/257
-    sha256 = "1q31y9131aj2lsm34srm8i1s0271qcaaknzvym3r8awynm14saq5";
+    rev = version;
+    sha256 = "0mahf621zwwywimly5nd6j39j7qr48k5p7zwpfqnjq4wn010mbf8";
   };
 
+  patches = [
+    # Fix build with newer Bison versions:
+    # https://github.com/MiniZinc/libminizinc/issues/389
+    (fetchpatch {
+      url = "https://github.com/MiniZinc/libminizinc/commit/d3136f6f198d3081943c17ac6890dbe14a81d112.diff";
+      sha256 = "1f4wxn9422ndgq6dd0vqdxm2313srm7gn9nh82aas2xijdxlmz2c";
+    })
+  ];
+
   meta = with stdenv.lib; {
     homepage = "https://www.minizinc.org/";
     description = "MiniZinc is a medium-level constraint modelling language.";
diff --git a/nixpkgs/pkgs/development/tools/misc/act/default.nix b/nixpkgs/pkgs/development/tools/misc/act/default.nix
index 21ad66b62bd1..3864337badf2 100644
--- a/nixpkgs/pkgs/development/tools/misc/act/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/act/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "act";
-  version = "0.2.9";
+  version = "0.2.13";
 
   src = fetchFromGitHub {
     owner = "nektos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "17w7pqpn9pkzc85lrsmyhxy6rip47dxw1hkz4ml3y5n68nysfpb9";
+    sha256 = "112vmq9wg31alw9lw1jmsdvkd7kz1d9ak4p9dli7vgr9rhdf0hnb";
   };
 
-  vendorSha256 = "0qf26g0a2j1mbzlc7xjackww22w9bl1x0iw3q1x6kq7fp8xiwhdn";
+  vendorSha256 = "0bcrw3hf92m7n58lrlm0vj1wiwwy82q2rl1a725q3d6xwvi5kh9h";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
diff --git a/nixpkgs/pkgs/development/tools/misc/arcanist/default.nix b/nixpkgs/pkgs/development/tools/misc/arcanist/default.nix
index a6265ba89d03..fcddf1d0cacc 100644
--- a/nixpkgs/pkgs/development/tools/misc/arcanist/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/arcanist/default.nix
@@ -1,53 +1,54 @@
-{ stdenv, fetchFromGitHub, php, flex, makeWrapper }:
+{ stdenv, fetchFromGitHub, php, flex }:
+
+# Make a custom wrapper. If `wrapProgram` is used, arcanist thinks .arc-wrapped is being
+# invoked and complains about it being an unknown toolset. We could use `makeWrapper`, but
+# then we’d need to still craft a script that does the `php libexec/arcanist/bin/...` dance
+# anyway... So just do everything at once.
+let makeArcWrapper = toolset: ''
+    cat << WRAPPER > $out/bin/${toolset}
+    #!$shell -e
+    export PATH='${php}/bin/'\''${PATH:+':'}\$PATH
+    exec ${php}/bin/php $out/libexec/arcanist/bin/${toolset} "\$@"
+    WRAPPER
+    chmod +x $out/bin/${toolset}
+'';
 
-let
-  libphutil = fetchFromGitHub {
-    owner = "phacility";
-    repo = "libphutil";
-    rev = "cc2a3dbf590389400da55563cb6993f321ec6d73";
-    sha256 = "1k7sr3racwz845i7r5kdwvgqrz8gldz07pxj3yw77s58rqbix3ad";
-  };
-  arcanist = fetchFromGitHub {
-    owner = "phacility";
-    repo = "arcanist";
-    rev = "21a1828ea06cf031e93082db8664d73efc88290a";
-    sha256 = "05rq9l9z7446ks270viay57r5ibx702b5bnlf4ck529zc4abympx";
-  };
 in
+
 stdenv.mkDerivation {
   pname = "arcanist";
-  version = "20200127";
-
-  src = [ arcanist libphutil ];
-  buildInputs = [ php makeWrapper flex ];
+  version = "20200711";
 
-  unpackPhase = ''
-    cp -aR ${libphutil} libphutil
-    cp -aR ${arcanist} arcanist
-    chmod +w -R libphutil arcanist
-  '';
+  src = fetchFromGitHub {
+    owner = "phacility";
+    repo = "arcanist";
+    rev = "2565cc7b4d1dbce6bc7a5b3c4e72ae94be4712fe";
+    sha256 = "0jiv4aj4m5750dqw9r8hizjkwiyxk4cg4grkr63sllsa2dpiibxw";
+  };
+  buildInputs = [ php flex ];
 
   postPatch = stdenv.lib.optionalString stdenv.isAarch64 ''
-    substituteInPlace libphutil/support/xhpast/Makefile \
+    substituteInPlace support/xhpast/Makefile \
       --replace "-minline-all-stringops" ""
   '';
 
   buildPhase = ''
-    (
-      cd libphutil/support/xhpast
-      make clean all install
-    )
+    make xhpast -C support/xhpast
   '';
+
   installPhase = ''
     mkdir -p $out/bin $out/libexec
-    cp -R libphutil $out/libexec/libphutil
-    cp -R arcanist  $out/libexec/arcanist
-    ${if stdenv.isDarwin then ''
-        echo "#! $shell -e" > $out/bin/arc
-        echo "exec ${php}/bin/php $out/libexec/arcanist/scripts/arcanist.php "'"$@"' >> $out/bin/arc
-        chmod +x $out/bin/arc''
-      else ''
-        ln -s $out/libexec/arcanist/scripts/arcanist.php $out/bin/arc''}
+    make install -C support/xhpast
+    cp -R $src $out/libexec/arcanist
+
+    ${makeArcWrapper "arc"}
+    ${makeArcWrapper "phage"}
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/arc help diff -- > /dev/null
+    $out/bin/phage help alias -- > /dev/null
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/development/tools/misc/argbash/default.nix b/nixpkgs/pkgs/development/tools/misc/argbash/default.nix
index 0cc25ddf20b6..0c0511ec7922 100644
--- a/nixpkgs/pkgs/development/tools/misc/argbash/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/argbash/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "argbash";
 
-  version = "2.8.1";
+  version = "2.10.0";
 
   src = fetchFromGitHub {
     owner = "matejak";
     repo = "argbash";
     rev = "${version}";
-    sha256 = "0zara7v3pnwiwkpb0x0g37pxhmim4425q4gba712f6djj115r1mr";
+    sha256 = "1xdhpbnc0xjv6ydcm122hhdjcl77jhiqnccjfqjp3cd1lfmzvg8v";
   };
 
   sourceRoot = "source/resources";
diff --git a/nixpkgs/pkgs/development/tools/misc/asls/default.nix b/nixpkgs/pkgs/development/tools/misc/asls/default.nix
new file mode 100644
index 000000000000..5b53456deac6
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/asls/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, fetchurl
+, erlangR22
+}:
+
+stdenv.mkDerivation rec {
+  pname = "asls";
+  version = "0.5.0";
+
+  src = fetchurl {
+    url = "https://github.com/saulecabrera/asls/releases/download/v${version}/bin.tar.gz";
+    sha256 = "1h6r2lbf54aylzmbiy74ys42fhjv9q824bdrcp40gxx1v2yjc5h5";
+  };
+
+  buildInputs = [ erlangR22 ];
+  installPhase = "install -Dm755 -t $out/bin asls";
+
+  meta = with stdenv.lib; {
+    description = "AssemblyScript Language Server";
+    homepage = "https://github.com/saulecabrera/asls";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ saulecabrera ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/blackmagic/default.nix b/nixpkgs/pkgs/development/tools/misc/blackmagic/default.nix
index 6e733cfe28ab..48ae364a26eb 100644
--- a/nixpkgs/pkgs/development/tools/misc/blackmagic/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/blackmagic/default.nix
@@ -7,15 +7,15 @@ with lib;
 
 stdenv.mkDerivation rec {
   pname = "blackmagic";
-  version = "unstable-2020-02-20";
+  version = "unstable-2020-08-05";
   # `git describe --always`
-  firmwareVersion = "v1.6.1-409-g7a595ea";
+  firmwareVersion = "v1.6.1-539-gdd74ec8";
 
   src = fetchFromGitHub {
     owner = "blacksphere";
     repo = "blackmagic";
-    rev = "7a595ead255f2a052fe4561c24a0577112c9de84";
-    sha256 = "01kdm1rkj7ll0px882crf9w27d2ka8f3hcdmvhb9jwd60bf5dlap";
+    rev = "dd74ec8e6f734302daa1ee361af88dfb5043f166";
+    sha256 = "18w8y64fs7wfdypa4vm3migk5w095z8nbd8qp795f322mf2bz281";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/development/tools/misc/blackmagic/helper.sh b/nixpkgs/pkgs/development/tools/misc/blackmagic/helper.sh
index 278a758c186a..bae57f633cfb 100755
--- a/nixpkgs/pkgs/development/tools/misc/blackmagic/helper.sh
+++ b/nixpkgs/pkgs/development/tools/misc/blackmagic/helper.sh
@@ -23,18 +23,10 @@ make_platform() {
   make clean
   make PROBE_HOST="$1"
 
-  if [ "$1" = "libftdi" ]; then
+  if [ "$1" = "hosted" ]; then
     install -m 0555 blackmagic "$out/bin"
   fi
 
-  if [ "$1" = "pc-hosted" ]; then
-    install -m 0555 blackmagic_hosted "$out/bin"
-  fi
-
-  if [ "$1" = "pc-stlinkv2" ]; then
-    install -m 0555 blackmagic_stlinkv2 "$out/bin"
-  fi
-
   for f in $PRODUCTS; do
     if [ -r "$f" ]; then
       mkdir -p "$out/firmware/$1"
diff --git a/nixpkgs/pkgs/development/tools/misc/cc-tool/default.nix b/nixpkgs/pkgs/development/tools/misc/cc-tool/default.nix
new file mode 100644
index 000000000000..6be0ab2acb50
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/cc-tool/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, fetchFromGitHub
+, autoreconfHook
+, boost
+, libusb1
+, pkg-config
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cc-tool";
+  version = "unstable-2020-05-19";
+
+  src = fetchFromGitHub {
+    owner = "dashesy";
+    repo = pname;
+    rev = "19e707eafaaddee8b996ad27a9f3e1aafcb900d2";
+    hash = "sha256:1f78j498fdd36xbci57jkgh25gq14g3b6xmp76imdpar0jkpyljv";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  buildInputs = [ boost libusb1 ];
+
+  postPatch = ''
+    substituteInPlace udev/90-cc-debugger.rules \
+      --replace 'MODE="0666"' 'MODE="0660", GROUP="plugdev", TAG+="uaccess"'
+  '';
+
+  postInstall = ''
+    install -D udev/90-cc-debugger.rules $out/lib/udev/rules.d/90-cc-debugger.rules
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Command line tool for the Texas Instruments CC Debugger";
+    longDescription = ''
+      cc-tool provides support for Texas Instruments CC Debugger
+    '';
+    homepage = "https://github.com/dashesy/cc-tool";
+    license = licenses.gpl2;
+    platforms = with platforms; linux ++ darwin;
+    maintainers = [ maintainers.CRTified ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/ccache/default.nix b/nixpkgs/pkgs/development/tools/misc/ccache/default.nix
index 61ed3825bd93..e0a6a8065b5a 100644
--- a/nixpkgs/pkgs/development/tools/misc/ccache/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/ccache/default.nix
@@ -1,30 +1,22 @@
-{ stdenv, fetchurl, perl, zlib, makeWrapper }:
+{ stdenv, fetchFromGitHub, asciidoc-full, gperf, perl, autoreconfHook, zlib, makeWrapper }:
 
 let ccache = stdenv.mkDerivation rec {
   pname = "ccache";
-  version = "3.4.1";
+  version = "3.7.11";
 
-  src = fetchurl {
-    sha256 = "1pppi4jbkkj641cdynmc35jaj40jjicw7gj75ran5qs5886jcblc";
-    url = "mirror://samba/ccache/${pname}-${version}.tar.xz";
+  src = fetchFromGitHub {
+    owner = "ccache";
+    repo = "ccache";
+    rev = "v${version}";
+    sha256 = "03c6riz4vb0jipplk69c1j8arjjrjn676kglsrzqf8cidrh8j91c";
   };
 
-  nativeBuildInputs = [ perl ];
+  nativeBuildInputs = [ asciidoc-full autoreconfHook gperf perl ];
 
   buildInputs = [ zlib ];
 
   outputs = [ "out" "man" ];
 
-  # non to be fail on filesystems with unconventional blocksizes (zfs on Hydra?)
-  patches = [
-    ./fix-debug-prefix-map-suite.patch
-    ./skip-fs-dependent-test.patch
-  ];
-
-  postPatch = ''
-    substituteInPlace Makefile.in --replace 'objs) $(extra_libs)' 'objs)'
-  '';
-
   doCheck = !stdenv.isDarwin;
 
   passthru = {
@@ -71,8 +63,8 @@ let ccache = stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "Compiler cache for fast recompilation of C/C++ code";
-    homepage = "http://ccache.samba.org/";
-    downloadPage = "https://ccache.samba.org/download.html";
+    homepage = "https://ccache.dev/";
+    downloadPage = "https://ccache.dev/download.html";
     license = licenses.gpl3Plus;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/development/tools/misc/ccache/fix-debug-prefix-map-suite.patch b/nixpkgs/pkgs/development/tools/misc/ccache/fix-debug-prefix-map-suite.patch
deleted file mode 100644
index 98a6fbf10bf1..000000000000
--- a/nixpkgs/pkgs/development/tools/misc/ccache/fix-debug-prefix-map-suite.patch
+++ /dev/null
@@ -1,42 +0,0 @@
---- a/test/suites/debug_prefix_map.bash
-+++ b/test/suites/debug_prefix_map.bash
-@@ -29,7 +29,7 @@
-     expect_stat 'cache hit (preprocessed)' 0
-     expect_stat 'cache miss' 1
-     expect_stat 'files in cache' 2
--    if grep -E "[^=]`pwd`[^=]" test.o >/dev/null 2>&1; then
-+    if objdump -g test.o | grep ": `pwd`$" >/dev/null 2>&1; then
-         test_failed "Source dir (`pwd`) found in test.o"
-     fi
-
-@@ -39,7 +39,7 @@
-     expect_stat 'cache hit (preprocessed)' 0
-     expect_stat 'cache miss' 1
-     expect_stat 'files in cache' 2
--    if grep -E "[^=]`pwd`[^=]" test.o >/dev/null 2>&1; then
-+    if objdump -g test.o | grep ": `pwd`$" >/dev/null 2>&1; then
-         test_failed "Source dir (`pwd`) found in test.o"
-     fi
-
-@@ -52,10 +52,10 @@
-     expect_stat 'cache hit (preprocessed)' 0
-     expect_stat 'cache miss' 1
-     expect_stat 'files in cache' 2
--    if grep -E "[^=]`pwd`[^=]" test.o >/dev/null 2>&1; then
-+    if objdump -g test.o | grep ": `pwd`$" >/dev/null 2>&1; then
-         test_failed "Source dir (`pwd`) found in test.o"
-     fi
--    if ! grep "name" test.o >/dev/null 2>&1; then
-+    if ! objdump -g test.o | grep ": name$" >/dev/null 2>&1; then
-         test_failed "Relocation (name) not found in test.o"
-     fi
-
-@@ -65,7 +65,7 @@
-     expect_stat 'cache hit (preprocessed)' 0
-     expect_stat 'cache miss' 1
-     expect_stat 'files in cache' 2
--    if grep -E "[^=]`pwd`[^=]" test.o >/dev/null 2>&1; then
-+    if objdump -g test.o | grep ": `pwd`$" >/dev/null 2>&1; then
-         test_failed "Source dir (`pwd`) found in test.o"
-     fi
- }
diff --git a/nixpkgs/pkgs/development/tools/misc/ccache/skip-fs-dependent-test.patch b/nixpkgs/pkgs/development/tools/misc/ccache/skip-fs-dependent-test.patch
deleted file mode 100644
index 7b233df6531b..000000000000
--- a/nixpkgs/pkgs/development/tools/misc/ccache/skip-fs-dependent-test.patch
+++ /dev/null
@@ -1,26 +0,0 @@
---- a/test/suites/cleanup.bash
-+++ b/test/suites/cleanup.bash
-@@ -94,23 +94,6 @@
-
-     $CCACHE -F 0 -M 256K >/dev/null
-     CCACHE_LOGFILE=/tmp/foo $CCACHE -c >/dev/null
--    expect_file_count 3 '*.o' $CCACHE_DIR
--    expect_file_count 3 '*.d' $CCACHE_DIR
--    expect_file_count 3 '*.stderr' $CCACHE_DIR
--    expect_stat 'files in cache' 9
--    expect_stat 'cleanups performed' 1
--    for i in 3 4 5; do
--        file=$CCACHE_DIR/a/result$i-4017.o
--        if [ ! -f $file ]; then
--            test_failed "File $file removed when it shouldn't"
--        fi
--    done
--    for i in 0 1 2 6 7 8 9; do
--        file=$CCACHE_DIR/a/result$i-4017.o
--        if [ -f $file ]; then
--            test_failed "File $file not removed when it should"
--        fi
--    done
-
-     # -------------------------------------------------------------------------
-     TEST "Automatic cache cleanup, limit_multiple 0.9"
diff --git a/nixpkgs/pkgs/development/tools/misc/circleci-cli/default.nix b/nixpkgs/pkgs/development/tools/misc/circleci-cli/default.nix
index 8c87e1642df3..b434358e1d20 100644
--- a/nixpkgs/pkgs/development/tools/misc/circleci-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/circleci-cli/default.nix
@@ -2,18 +2,20 @@
 
 buildGoModule rec {
   pname = "circleci-cli";
-  version = "0.1.7971";
+  version = "0.1.9454";
 
   src = fetchFromGitHub {
     owner = "CircleCI-Public";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0nrmdql3h9jnfgmp8898c9v07f5h5r9dvabaqhk98r6a77g3rr98";
+    sha256 = "0ld7lb69wmhyrpqjaj1pddx93x529qk2fzyrwlipglwn3mbala5a";
   };
 
-  vendorSha256 = "0y35ps2pw9z7gi4z50byd1py87bf2jdvj7l7w2gxpppmhi83myc9";
+  vendorSha256 = "1zd95n9k2fags0qh3wvjinxv1ahygr958mmiax2kz117yipaz4rb";
 
-  buildFlagsArray = [ "-ldflags=-s -w -X github.com/CircleCI-Public/circleci-cli/version.Version=${version}" ];
+  doCheck = false;
+
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/CircleCI-Public/circleci-cli/version.Version=${version} -X github.com/CircleCI-Public/circleci-cli/version.Commit=${src.rev} -X github.com/CircleCI-Public/circleci-cli/version.packageManager=nix" ];
 
   preBuild = ''
     substituteInPlace data/data.go \
@@ -34,4 +36,4 @@ buildGoModule rec {
     license = licenses.mit;
     homepage = "https://circleci.com/";
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/cli11/default.nix b/nixpkgs/pkgs/development/tools/misc/cli11/default.nix
index f6a4a4d9f6a4..0d058ef1f881 100644
--- a/nixpkgs/pkgs/development/tools/misc/cli11/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/cli11/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cli11";
-  version = "1.9.0";
+  version = "1.9.1";
 
   src = fetchFromGitHub {
     owner = "CLIUtils";
     repo = "CLI11";
     rev = "v${version}";
-    sha256 = "1nqri8ahisi00nwh6cynhq5n9iq9iydkysnxj36r2y20yvbi4bxj";
+    sha256 = "0hbch0vk8irgmiaxnfqlqys65v1770rxxdfn3d23m2vqyjh0j9l6";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix b/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix
index 487c979c7092..65f12bfbb098 100644
--- a/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/clojure-lsp/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "clojure-lsp";
-  version = "20200514T134144";
+  version = "20200828T065654";
 
   src = fetchurl {
     url = "https://github.com/snoe/clojure-lsp/releases/download/release-${version}/${pname}";
-    sha256 = "1c56k9zxi71gjlrmjk2risx04dzr460vql42pfjwm1cv543kij9r";
+    sha256 = "1399xjcnnb7vazy1jv3h7lnh1dyn81yk2bwi6ai991a9fsinjnf2";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/development/tools/misc/cproto/cproto_patch b/nixpkgs/pkgs/development/tools/misc/cproto/cproto.patch
index 3743fef977b0..3743fef977b0 100644
--- a/nixpkgs/pkgs/development/tools/misc/cproto/cproto_patch
+++ b/nixpkgs/pkgs/development/tools/misc/cproto/cproto.patch
diff --git a/nixpkgs/pkgs/development/tools/misc/cproto/default.nix b/nixpkgs/pkgs/development/tools/misc/cproto/default.nix
index 8b4317a45386..ef0e2cab7771 100644
--- a/nixpkgs/pkgs/development/tools/misc/cproto/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/cproto/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "cproto";
-  version = "4.7o";
+  version = "4.7p";
 
   src = fetchurl {
     urls = [
@@ -10,11 +10,11 @@ stdenv.mkDerivation rec {
       # No version listings and apparently no versioned tarball over http(s).
       "ftp://ftp.invisible-island.net/cproto/cproto-${version}.tgz"
     ];
-    sha256 = "0kxlrhhgm84v2q6n3wp7bb77g7wjxkb7azdvb6a70naf0rr0nsy7";
+    sha256 = "0vm1784yw8gax1r7bzgq0chjgfzwxvmkala2awghmd3zyi7k60nj";
   };
 
   # patch made by Joe Khoobyar copied from gentoo bugs
-  patches = ./cproto_patch;
+  patches = [ ./cproto.patch ];
 
   nativeBuildInputs = [ flex bison ];
 
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
     description = "Tool to generate C function prototypes from C source code";
     homepage = "https://invisible-island.net/cproto/";
     license = licenses.publicDomain;
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/easypdkprog/default.nix b/nixpkgs/pkgs/development/tools/misc/easypdkprog/default.nix
new file mode 100644
index 000000000000..92d1a550ea80
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/easypdkprog/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "easypdkprog";
+  version = "1.3";
+
+  src = fetchFromGitHub {
+    owner = "free-pdk";
+    repo = "easy-pdk-programmer-software";
+    rev = version;
+    sha256 = "0hc3gdmn6l01z63hzzwdhbdyy288gh5v219bsfm8fb1498vpnd6f";
+  };
+
+  installPhase = ''
+    install -Dm755 -t $out/bin easypdkprog
+  '' + lib.optionalString stdenv.isLinux ''
+    install -Dm644 -t $out/etc/udev/rules.d Linux_udevrules/70-stm32vcp.rules
+  '';
+
+  meta = with lib; {
+    description = "Read, write and execute programs on PADAUK microcontroller";
+    homepage = "https://github.com/free-pdk/easy-pdk-programmer-software";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ david-sawatzke ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix b/nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix
index 6b45dc3c2a0a..3975ad3511fb 100644
--- a/nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/editorconfig-checker/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "132blcdw3lywxhqslkcpwwvkzl4cpbbkhb7ba8mrvfgl5kvfm1q0";
 
+  doCheck = false;
+
   nativeBuildInputs = [ installShellFiles ];
 
   buildFlagsArray = [ "-ldflags=-X main.version=${version}" ];
diff --git a/nixpkgs/pkgs/development/tools/misc/elfinfo/default.nix b/nixpkgs/pkgs/development/tools/misc/elfinfo/default.nix
index bd8a9fecee67..3778793b71cd 100644
--- a/nixpkgs/pkgs/development/tools/misc/elfinfo/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/elfinfo/default.nix
@@ -2,14 +2,14 @@
 
 buildGoPackage rec {
   pname = "elfinfo";
-  version = "1.0.1";
+  version = "1.1.0";
 
   goPackagePath = "github.com/xyproto/elfinfo";
   src = fetchFromGitHub {
     rev = version;
     owner = "xyproto";
     repo = "elfinfo";
-    sha256 = "1iahivc1jm9gv1dijykw2pryjdwb896bv42xmq9v6ax86rsnzqww";
+    sha256 = "1n8bg0rcq9fqa6rdnk6x9ngvm59hcayblkpjv9j5myn2vmm6fv8m";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/tools/misc/elfutils/default.nix b/nixpkgs/pkgs/development/tools/misc/elfutils/default.nix
index 56bfe26ec069..4ad7f8300665 100644
--- a/nixpkgs/pkgs/development/tools/misc/elfutils/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/elfutils/default.nix
@@ -1,13 +1,13 @@
-{ lib, stdenv, fetchurl, m4, zlib, bzip2, bison, flex, gettext, xz, setupDebugInfoDirs }:
+{ lib, stdenv, fetchurl, m4, zlib, bzip2, bison, flex, gettext, xz, setupDebugInfoDirs, argp-standalone }:
 
 # TODO: Look at the hardcoded paths to kernel, modules etc.
 stdenv.mkDerivation rec {
   pname = "elfutils";
-  version = "0.176";
+  version = "0.180";
 
   src = fetchurl {
     url = "https://sourceware.org/elfutils/ftp/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "08qhrl4g6qqr4ga46jhh78y56a47p3msa5b2x1qhzbxhf71lfmzb";
+    sha256 = "17an1f67bfzxin482nbcxdl5qvywm27i9kypjyx8ilarbkivc9xq";
   };
 
   patches = [ ./debug-info-from-env.patch ];
@@ -17,13 +17,19 @@ stdenv.mkDerivation rec {
   # We need bzip2 in NativeInputs because otherwise we can't unpack the src,
   # as the host-bzip2 will be in the path.
   nativeBuildInputs = [ m4 bison flex gettext bzip2 ];
-  buildInputs = [ zlib bzip2 xz ];
+  buildInputs = [ zlib bzip2 xz ]
+    ++ lib.optional stdenv.hostPlatform.isMusl argp-standalone;
 
   propagatedNativeBuildInputs = [ setupDebugInfoDirs ];
 
+  preConfigure = lib.optionalString stdenv.hostPlatform.isMusl ''
+    NIX_CFLAGS_COMPILE+=" -fgnu89-inline"
+  '';
+
   configureFlags =
     [ "--program-prefix=eu-" # prevent collisions with binutils
       "--enable-deterministic-archives"
+      "--disable-debuginfod"
     ];
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix b/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix
index a1ea1d8903b0..4a1d1288a4c2 100644
--- a/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/fswatch/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fswatch";
-  version = "1.14.0";
+  version = "1.15.0";
 
   src = fetchFromGitHub {
     owner = "emcrisostomo";
     repo = "fswatch";
     rev = version;
-    sha256 = "1d1fvm36qgh6a5j9v24wai61d297pvzxr14jngjlhh4i474ff21i";
+    sha256 = "11479ac436g8bwk0lfnmdms0cirv9k11pdvfrrg9jwkki1j1abkk";
   };
 
   nativeBuildInputs = [ autoreconfHook ] ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices ];
diff --git a/nixpkgs/pkgs/development/tools/misc/fujprog/default.nix b/nixpkgs/pkgs/development/tools/misc/fujprog/default.nix
new file mode 100644
index 000000000000..61aeea9967d3
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/fujprog/default.nix
@@ -0,0 +1,37 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkgconfig
+, libftdi1
+, libusb-compat-0_1
+}:
+
+stdenv.mkDerivation rec {
+  pname = "fujprog";
+  version = "4.6";
+
+  src = fetchFromGitHub {
+    owner = "kost";
+    repo = "${pname}";
+    rev = "v${version}";
+    sha256 = "04l5rrfrp3pflwz5ncwvb4ibbsqib2259m23bzfi8m80aj216shd";
+  };
+
+  nativeBuildInputs = [
+    cmake
+    pkgconfig
+  ];
+
+  buildInputs = [
+    libftdi1
+    libusb-compat-0_1
+  ];
+
+  meta = with stdenv.lib; {
+    description = "JTAG programmer for the ULX3S and ULX2S open hardware FPGA development boards.";
+    homepage = "https://github.com/kost/fujprog";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ trepetti ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/gdb/default.nix b/nixpkgs/pkgs/development/tools/misc/gdb/default.nix
index 7702df423bb5..a4806634432d 100644
--- a/nixpkgs/pkgs/development/tools/misc/gdb/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/gdb/default.nix
@@ -17,20 +17,19 @@
 }:
 
 let
-  basename = "gdb-${version}";
-  version = "9.2";
+  basename = "gdb";
+  targetPrefix = stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
+                 "${stdenv.targetPlatform.config}-";
 in
 
 assert pythonSupport -> python3 != null;
 
 stdenv.mkDerivation rec {
-  name =
-    stdenv.lib.optionalString (stdenv.targetPlatform != stdenv.hostPlatform)
-                              (stdenv.targetPlatform.config + "-")
-    + basename;
+  pname = targetPrefix + basename;
+  version = "9.2";
 
   src = fetchurl {
-    url = "mirror://gnu/gdb/${basename}.tar.xz";
+    url = "mirror://gnu/gdb/${basename}-${version}.tar.xz";
     sha256 = "0mf5fn8v937qwnal4ykn3ji1y2sxk0fa1yfqi679hxmpg6pdf31n";
   };
 
diff --git a/nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix b/nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix
index d5f8cfa173b1..ecbfc2ae7569 100644
--- a/nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/gdbgui/default.nix
@@ -8,11 +8,13 @@
 , pygdbmi
 , pygments
 , gevent
+, gevent-websocket
+, eventlet
 , }:
 
 buildPythonApplication rec {
   pname = "gdbgui";
-  version = "0.13.2.0";
+  version = "0.13.2.1";
 
   buildInputs = [ gdb ];
   propagatedBuildInputs = [
@@ -22,11 +24,13 @@ buildPythonApplication rec {
     pygdbmi
     pygments
     gevent
+    gevent-websocket
+    eventlet
   ];
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0m1fnwafzrpk77yj3p26vszlz11cv4g2lj38kymk1ilcifh4gqw0";
+    sha256 = "0zn5wi47m8pn4amx574ryyhqvhynipxzyxbx0878ap6g36vh6l1h";
   };
 
   postPatch = ''
@@ -45,6 +49,7 @@ buildPythonApplication rec {
 
   meta = with stdenv.lib; {
     description = "A browser-based frontend for GDB";
+    homepage = "https://www.gdbgui.com/";
     license = licenses.gpl3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ yrashk ];
diff --git a/nixpkgs/pkgs/development/tools/misc/global/default.nix b/nixpkgs/pkgs/development/tools/misc/global/default.nix
index 6f24fc7251e5..36798fe4fc1a 100644
--- a/nixpkgs/pkgs/development/tools/misc/global/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/global/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "global";
-  version = "6.6.4";
+  version = "6.6.5";
 
   src = fetchurl {
     url = "mirror://gnu/global/${pname}-${version}.tar.gz";
-    sha256 = "1515642wsjz7x3rsgaqk4sc7n0z2znl7idsk8jz8wgy5aswqqzlq";
+    sha256 = "10vvsgx8v54whb4j9mk5qqyb5h3rdd9da0il3wir8pcpksyk0dww";
   };
 
   nativeBuildInputs = [ libtool makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/misc/go-license-detector/default.nix b/nixpkgs/pkgs/development/tools/misc/go-license-detector/default.nix
index 22b85a1fa334..91c6518bc26d 100644
--- a/nixpkgs/pkgs/development/tools/misc/go-license-detector/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/go-license-detector/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "0gan5l7vsq0hixxcymhhs8p07v92w60r0lhgvrr9a99nic12vmia";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Reliable project licenses detector";
     homepage = "https://github.com/src-d/go-license-detector";
     license = licenses.asl20;
     maintainers = with maintainers; [ dtzWill ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/help2man/default.nix b/nixpkgs/pkgs/development/tools/misc/help2man/default.nix
index 4e80e13941da..f23b5a9c8fdd 100644
--- a/nixpkgs/pkgs/development/tools/misc/help2man/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/help2man/default.nix
@@ -6,11 +6,11 @@
 # files.
 
 stdenv.mkDerivation rec {
-  name = "help2man-1.47.15";
+  name = "help2man-1.47.16";
 
   src = fetchurl {
     url = "mirror://gnu/help2man/${name}.tar.xz";
-    sha256 = "076dvc0z0qp73rpmg0c8bkpfh969h4gzzc442hv1bcyf1srkann2";
+    sha256 = "1x586h7wvripcay35kdh2kvydx84y8yy93ffjah2rqw6bc65iy1y";
   };
 
   nativeBuildInputs = [ gettext perlPackages.LocaleGettext ];
diff --git a/nixpkgs/pkgs/development/tools/misc/hound/default.nix b/nixpkgs/pkgs/development/tools/misc/hound/default.nix
index 2d7431f9e8b0..4e817251bffe 100644
--- a/nixpkgs/pkgs/development/tools/misc/hound/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/hound/default.nix
@@ -22,8 +22,6 @@ buildGoPackage rec {
     sha256 = "0g6nvgqjabprcl9z5ci5frhbam1dzq978h1d6aanf8vvzslfgdpq";
   };
 
-  goDeps = ./deps.nix;
-
   postInstall = with stdenv; let
     binPath = lib.makeBinPath [ mercurial git ];
   in ''
diff --git a/nixpkgs/pkgs/development/tools/misc/hound/deps.nix b/nixpkgs/pkgs/development/tools/misc/hound/deps.nix
deleted file mode 100644
index fe51488c7066..000000000000
--- a/nixpkgs/pkgs/development/tools/misc/hound/deps.nix
+++ /dev/null
@@ -1 +0,0 @@
-[]
diff --git a/nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix b/nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix
index b585d27b710f..6cd439a898b8 100644
--- a/nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/hydra-cli/default.nix
@@ -25,7 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/nlewo/hydra-cli";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ gilligan lewo ];
-    platforms = platforms.all;
   };
 
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/hydra/default.nix b/nixpkgs/pkgs/development/tools/misc/hydra/default.nix
index fb884c8ffac5..a6b0383d54f7 100644
--- a/nixpkgs/pkgs/development/tools/misc/hydra/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/hydra/default.nix
@@ -1,4 +1,4 @@
-{ fetchFromGitHub, nixStable, callPackage, nixFlakes, fetchpatch, nixosTests }:
+{ fetchFromGitHub, nixStable, callPackage, nixFlakes, nixosTests }:
 
 {
   # Package for phase-1 of the db migration for Hydra.
@@ -24,22 +24,15 @@
   # so when having an older version, `pkgs.hydra-migration` should be deployed first.
 
   hydra-unstable = callPackage ./common.nix {
-    version = "2020-06-01";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "hydra";
-      rev = "750e2e618ac6d3df02c57a2cf8758bc66a27c40a";
-      sha256 = "1szfzf9kw5cj6yn57gfxrffbdkdf8v3xy9914924blpn5qll31g4";
+      rev = "e707990e2d6afab203c7ef1d769d49c564eff151";
+      sha256 = "0iilf953f6s58szzyd1hzc9b2b2yw8lhbsb8xrb08szpfz7ifwqa";
     };
     nix = nixFlakes;
 
-    patches = [
-      (fetchpatch {
-        url = "https://github.com/NixOS/hydra/commit/d4822a5f4b57dff26bdbf436723a87dd62bbcf30.patch";
-        sha256 = "1n6hyjz1hzvka4wi78d4wg0sg2wanrdmizqy23vmp7pmv8s3gz8w";
-      })
-    ];
-
     tests = {
       db-migration = nixosTests.hydra-db-migration.mig;
       basic = nixosTests.hydra.hydra-unstable;
diff --git a/nixpkgs/pkgs/development/tools/misc/intltool/default.nix b/nixpkgs/pkgs/development/tools/misc/intltool/default.nix
index 0a04e5786f59..20f880938c66 100644
--- a/nixpkgs/pkgs/development/tools/misc/intltool/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/intltool/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, gettext, perlPackages }:
+{ stdenv, fetchurl, fetchpatch, gettext, perlPackages, buildPackages }:
 
 stdenv.mkDerivation rec {
   pname = "intltool";
@@ -19,8 +19,14 @@ stdenv.mkDerivation rec {
     sha256 = "12q2140867r5d0dysly72khi7b0mm2gd7nlm1k81iyg7fxgnyz45";
   })];
 
+  nativeBuildInputs = with perlPackages; [ perl XMLParser ];
   propagatedBuildInputs = [ gettext ] ++ (with perlPackages; [ perl XMLParser ]);
 
+  postInstall = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+    for f in $out/bin/*; do
+      substituteInPlace $f --replace "${buildPackages.perl}" "${perlPackages.perl}"
+    done
+  '';
   meta = with stdenv.lib; {
     description = "Translation helper tool";
     homepage = "https://launchpad.net/intltool/";
diff --git a/nixpkgs/pkgs/development/tools/misc/itm-tools/cargo-lock.patch b/nixpkgs/pkgs/development/tools/misc/itm-tools/cargo-lock.patch
new file mode 100644
index 000000000000..1559510cd9f1
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/itm-tools/cargo-lock.patch
@@ -0,0 +1,321 @@
+diff --git a/Cargo.lock b/Cargo.lock
+new file mode 100644
+index 0000000..d9d39e5
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,315 @@
++# This file is automatically @generated by Cargo.
++# It is not intended for manual editing.
++[[package]]
++name = "addr2line"
++version = "0.12.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "602d785912f476e480434627e8732e6766b760c045bbf897d9dfaa9f4fbd399c"
++dependencies = [
++ "gimli",
++]
++
++[[package]]
++name = "adler32"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "567b077b825e468cc974f0020d4082ee6e03132512f207ef1a02fd5d00d1f32d"
++
++[[package]]
++name = "ansi_term"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
++dependencies = [
++ "winapi",
++]
++
++[[package]]
++name = "atty"
++version = "0.2.14"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
++dependencies = [
++ "hermit-abi",
++ "libc",
++ "winapi",
++]
++
++[[package]]
++name = "backtrace"
++version = "0.3.49"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05100821de9e028f12ae3d189176b41ee198341eb8f369956407fea2f5cc666c"
++dependencies = [
++ "addr2line",
++ "cfg-if",
++ "libc",
++ "miniz_oxide",
++ "object",
++ "rustc-demangle",
++]
++
++[[package]]
++name = "bitflags"
++version = "1.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
++
++[[package]]
++name = "byteorder"
++version = "1.3.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
++
++[[package]]
++name = "cfg-if"
++version = "0.1.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
++
++[[package]]
++name = "clap"
++version = "2.33.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
++dependencies = [
++ "ansi_term",
++ "atty",
++ "bitflags",
++ "strsim",
++ "textwrap",
++ "unicode-width",
++ "vec_map",
++]
++
++[[package]]
++name = "either"
++version = "1.5.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
++
++[[package]]
++name = "exitfailure"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2ff5bd832af37f366c6c194d813a11cd90ac484f124f079294f28e357ae40515"
++dependencies = [
++ "failure",
++]
++
++[[package]]
++name = "failure"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
++dependencies = [
++ "backtrace",
++ "failure_derive",
++]
++
++[[package]]
++name = "failure_derive"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++ "synstructure",
++]
++
++[[package]]
++name = "gimli"
++version = "0.21.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c"
++
++[[package]]
++name = "hermit-abi"
++version = "0.1.15"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
++dependencies = [
++ "libc",
++]
++
++[[package]]
++name = "itm"
++version = "0.4.0"
++source = "git+https://github.com/rust-embedded/itm#5dd476d03de0738062a876fd3845900ab04833a4"
++dependencies = [
++ "byteorder",
++ "either",
++ "thiserror",
++]
++
++[[package]]
++name = "itm-tools"
++version = "0.1.0"
++dependencies = [
++ "clap",
++ "exitfailure",
++ "failure",
++ "itm",
++ "rustc-demangle",
++ "xmas-elf",
++]
++
++[[package]]
++name = "libc"
++version = "0.2.71"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"
++
++[[package]]
++name = "miniz_oxide"
++version = "0.3.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435"
++dependencies = [
++ "adler32",
++]
++
++[[package]]
++name = "object"
++version = "0.20.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "1ab52be62400ca80aa00285d25253d7f7c437b7375c4de678f5405d3afe82ca5"
++
++[[package]]
++name = "proc-macro2"
++version = "1.0.18"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa"
++dependencies = [
++ "unicode-xid",
++]
++
++[[package]]
++name = "quote"
++version = "1.0.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
++dependencies = [
++ "proc-macro2",
++]
++
++[[package]]
++name = "rustc-demangle"
++version = "0.1.16"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
++
++[[package]]
++name = "strsim"
++version = "0.8.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
++
++[[package]]
++name = "syn"
++version = "1.0.33"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e8d5d96e8cbb005d6959f119f773bfaebb5684296108fb32600c00cde305b2cd"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "unicode-xid",
++]
++
++[[package]]
++name = "synstructure"
++version = "0.12.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++ "unicode-xid",
++]
++
++[[package]]
++name = "textwrap"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
++dependencies = [
++ "unicode-width",
++]
++
++[[package]]
++name = "thiserror"
++version = "1.0.20"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08"
++dependencies = [
++ "thiserror-impl",
++]
++
++[[package]]
++name = "thiserror-impl"
++version = "1.0.20"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793"
++dependencies = [
++ "proc-macro2",
++ "quote",
++ "syn",
++]
++
++[[package]]
++name = "unicode-width"
++version = "0.1.8"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
++
++[[package]]
++name = "unicode-xid"
++version = "0.2.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
++
++[[package]]
++name = "vec_map"
++version = "0.8.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
++
++[[package]]
++name = "winapi"
++version = "0.3.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
++dependencies = [
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
++]
++
++[[package]]
++name = "winapi-i686-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++
++[[package]]
++name = "winapi-x86_64-pc-windows-gnu"
++version = "0.4.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++
++[[package]]
++name = "xmas-elf"
++version = "0.6.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "22678df5df766e8d1e5d609da69f0c3132d794edf6ab5e75e7abcd2270d4cf58"
++dependencies = [
++ "zero",
++]
++
++[[package]]
++name = "zero"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5f1bc8a6b2005884962297587045002d8cfb8dcec9db332f4ca216ddc5de82c5"
diff --git a/nixpkgs/pkgs/development/tools/misc/itm-tools/default.nix b/nixpkgs/pkgs/development/tools/misc/itm-tools/default.nix
new file mode 100644
index 000000000000..6fb256951115
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/itm-tools/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchFromGitHub, rustPlatform, pkg-config }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "itm-tools";
+  version = "unstable-2019-11-15";
+
+  src = fetchFromGitHub {
+    owner = "japaric";
+    repo = pname;
+    rev = "e94155e44019d893ac8e6dab51cc282d344ab700";
+    sha256 = "19xkjym0i7y52cfhvis49c59nzvgw4906cd8bkz8ka38mbgfqgiy";
+  };
+
+  cargoPatches = [ ./cargo-lock.patch ];
+
+  cargoSha256 = "0rl2ph5igwjl7rwpwcf6afnxly5av7cd6va6wn82lxm606giyq75";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Tools for analyzing ITM traces";
+    homepage = "https://github.com/japaric/itm-tools";
+    license = with licenses; [ asl20 mit ];
+    maintainers = with maintainers; [ hh sb0 ];
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/development/tools/misc/linuxkit/default.nix b/nixpkgs/pkgs/development/tools/misc/linuxkit/default.nix
index 4fe7740cadf4..eeb2102bdf0c 100644
--- a/nixpkgs/pkgs/development/tools/misc/linuxkit/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/linuxkit/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname   = "linuxkit";
-  version = "0.7";
+  version = "0.8";
 
   goPackagePath = "github.com/linuxkit/linuxkit";
 
@@ -10,14 +10,12 @@ buildGoPackage rec {
     owner = "linuxkit";
     repo = "linuxkit";
     rev = "v${version}";
-    sha256 = "1mnaqzd4r0fdgjhjvbi4p0wwvz69i82b33iizz81wvkr1mkakgl2";
+    sha256 = "15jj60k8wz9cahjbdscnwyyfb1k1grjh7yrilb1cj4r8mby4sp2g";
   };
 
   subPackages = [ "src/cmd/linuxkit" ];
 
-  preBuild = ''
-    buildFlagsArray+=("-ldflags" "-X github.com/linuxkit/linuxkit/src/cmd/linuxkit/version.Version=${src.rev}")
-  '';
+  buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/src/cmd/linuxkit/version.GitCommit=${src.rev} -X ${goPackagePath}/src/cmd/linuxkit/version.Version=${version}" ];
 
   meta = with lib; {
     description = "A toolkit for building secure, portable and lean operating systems for containers";
diff --git a/nixpkgs/pkgs/development/tools/misc/lit/default.nix b/nixpkgs/pkgs/development/tools/misc/lit/default.nix
index 1e511cc0f0b0..7c7549e3844c 100644
--- a/nixpkgs/pkgs/development/tools/misc/lit/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/lit/default.nix
@@ -2,11 +2,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "lit";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "0vkqv0ijjkfg70j26cxqz75bpn2p78all5j5cw2gfcrn4c5aldf0";
+    sha256 = "13s8v9s2f284fnh47xdyc75gq2i9pndl39q8v4wl7v7lwri2hv8r";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/development/tools/misc/mkcert/default.nix b/nixpkgs/pkgs/development/tools/misc/mkcert/default.nix
index 218473aee78d..ec4042a2a276 100644
--- a/nixpkgs/pkgs/development/tools/misc/mkcert/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/mkcert/default.nix
@@ -13,10 +13,10 @@ buildGoModule rec {
 
   vendorSha256 = "0b8ggdpbyxx5n2myhchhlwmm5nndwpykp1ylnzdyw12mdskfvn9h";
 
-  goPackagePath = "github.com/FiloSottile/mkcert";
+  doCheck = false;
+
   buildFlagsArray = ''
-    -ldflags=
-      -X ${goPackagePath}/main.Version=${version}
+    -ldflags=-X main.Version=v${version}
   '';
 
   meta = with lib; {
@@ -25,4 +25,4 @@ buildGoModule rec {
     license = licenses.bsd3;
     maintainers = [ maintainers.marsam ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/nix-build-uncached/default.nix b/nixpkgs/pkgs/development/tools/misc/nix-build-uncached/default.nix
index 11833816ec82..eca2dc966624 100644
--- a/nixpkgs/pkgs/development/tools/misc/nix-build-uncached/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/nix-build-uncached/default.nix
@@ -1,25 +1,21 @@
-{ lib, buildGoModule, fetchFromGitHub, nix, makeWrapper }:
+{ lib, buildGoModule, fetchFromGitHub, makeWrapper }:
 
 buildGoModule rec {
   pname = "nix-build-uncached";
-  version = "0.1.1";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "nix-build-uncached";
     rev = "v${version}";
-    sha256 = "0jkpg3ab56lg2kdms9w9ka9ba89py3ajksjsi1rd3iqi74zz2mmh";
+    sha256 = "106k4234gpi8mr0n0rfsgwk4z7v0b2gim0r5bhjvg2v566j67g02";
   };
 
-  goPackagePath = "github.com/Mic92/nix-build-uncached";
   vendorSha256 = null;
 
-  nativeBuildInputs = [ makeWrapper ];
+  doCheck = false;
 
-  postInstall = ''
-    wrapProgram $out/bin/nix-build-uncached \
-      --prefix PATH ":" ${lib.makeBinPath [ nix ]}
-  '';
+  nativeBuildInputs = [ makeWrapper ];
 
   meta = with lib; {
     description = "A CI friendly wrapper around nix-build";
diff --git a/nixpkgs/pkgs/development/tools/misc/nrfutil/default.nix b/nixpkgs/pkgs/development/tools/misc/nrfutil/default.nix
index 0a6155e649e5..eeb9100a4c8f 100644
--- a/nixpkgs/pkgs/development/tools/misc/nrfutil/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/nrfutil/default.nix
@@ -1,25 +1,22 @@
-{ stdenv, python2Packages, fetchFromGitHub }:
+{ stdenv, python37Packages, fetchFromGitHub }:
 
-with python2Packages; buildPythonApplication rec {
+with python37Packages; buildPythonApplication rec {
   pname = "nrfutil";
-  version = "5.2.0";
+  version = "6.1";
 
   src = fetchFromGitHub {
     owner = "NordicSemiconductor";
     repo = "pc-nrfutil";
     rev = "v${version}";
-    sha256 = "1hajjgz8r4fjbwqr22p5dvb6k83dpxf8k7mhx20gkbrrx9ivqh79";
+    sha256 = "0g43lf5jmk0qxb7r4h68wr38fli6pjjk67w8l2cpdm9rd8jz4lpn";
   };
 
-  propagatedBuildInputs = [ pc-ble-driver-py six pyserial enum34 click ecdsa
+  propagatedBuildInputs = [ pc-ble-driver-py six pyserial enum34  click ecdsa
     protobuf tqdm piccata pyspinel intelhex pyyaml crcmod libusb1 ipaddress ];
 
   checkInputs = [ nose behave ];
 
   postPatch = ''
-    # remove version bound on pyyaml
-    sed -i /pyyaml/d requirements.txt
-
     mkdir test-reports
   '';
 
diff --git a/nixpkgs/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix b/nixpkgs/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix
new file mode 100644
index 000000000000..58178cde1744
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/nxpmicro-mfgtools/default.nix
@@ -0,0 +1,46 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, bzip2
+, libusb1
+, libzip
+, openssl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nxpmicro-mfgtools";
+  version = "1.3.191";
+
+  src = fetchFromGitHub {
+    owner = "NXPmicro";
+    repo = "mfgtools";
+    rev = "uuu_${version}";
+    sha256 = "196blmd7nf5kamvay22rvnkds2v6h7ab8lyl10dknxgy8i8siqq9";
+  };
+
+  nativeBuildInputs = [ cmake pkg-config ];
+
+  buildInputs = [ bzip2 libusb1 libzip openssl ];
+
+  preConfigure = "echo ${version} > .tarball-version";
+
+  meta = with stdenv.lib; {
+    description = "Freescale/NXP I.MX chip image deploy tools";
+    longDescription = ''
+      UUU (Universal Update Utility) is a command line tool, evolved out of
+      MFGTools (aka MFGTools v3).
+
+      One of the main purposes is to upload images to I.MX SoC's using at least
+      their boot ROM.
+
+      With time, the need for an update utility portable to Linux and Windows
+      increased. UUU has the same usage on both Windows and Linux. It means the same
+      script works on both OS.
+    '';
+    homepage = "https://github.com/NXPmicro/mfgtools";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.bmilanov ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/objconv/default.nix b/nixpkgs/pkgs/development/tools/misc/objconv/default.nix
index 9fdaca52ca8a..52cc1b2d5c58 100644
--- a/nixpkgs/pkgs/development/tools/misc/objconv/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/objconv/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "objconv";
-  version = "2.51";
+  version = "2.52";
 
   src = fetchurl {
     # Versioned archive of objconv sources maintained by orivej.
     url = "https://archive.org/download/objconv/${pname}-${version}.zip";
-    sha256 = "0wp6ld9vk11f4nnkn56627zmlv9k5vafi99qa3yyn1pgcd61zcfs";
+    sha256 = "0r117r7yvqvvdgwgwxpkyzi6p5nm0xb6p67wvkmvggm9fdyl3z8v";
   };
 
   nativeBuildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/development/tools/misc/openocd/default.nix b/nixpkgs/pkgs/development/tools/misc/openocd/default.nix
index 0d6bcd959ebd..47212e9967d0 100644
--- a/nixpkgs/pkgs/development/tools/misc/openocd/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/openocd/default.nix
@@ -1,24 +1,17 @@
-{ stdenv, lib, fetchurl, fetchpatch, libftdi1, libusb1, pkgconfig, hidapi }:
+{ stdenv, lib, fetchgit, libftdi1, libusb1, pkgconfig, hidapi, autoreconfHook }:
 
 stdenv.mkDerivation rec {
   pname = "openocd";
-  version = "0.10.0";
+  version = "2020-09-02";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/openocd/openocd-${version}.tar.bz2";
-    sha256 = "1bhn2c85rdz4gf23358kg050xlzh7yxbbwmqp24c0akmh3bff4kk";
+  src = fetchgit {
+    url = "https://git.code.sf.net/p/openocd/code";
+    rev = "d46f28c2ea2611f5fbbc679a5eed253d3dcd2fe3";
+    sha256 = "1256qqhn3pxmijfk1x0y5b5kc5ar88ivykkvx0h1m7pdwqfs6zm9";
+    fetchSubmodules = true;
   };
 
-  patches = [
-    # Fix FTDI channel configuration for SheevaPlug
-    # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=837989
-    (fetchpatch {
-      url = "https://salsa.debian.org/electronics-team/openocd/raw/9a94335daa332a37a51920f87afbad4d36fad2d5/debian/patches/fix-sheeva.patch";
-      sha256 = "01x021fagwvgxdpzk7psap7ryqiya4m4mi4nqr27asbmb3q46g5r";
-    })
-  ];
-
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig autoreconfHook ];
   buildInputs = [ libftdi1 libusb1 hidapi ];
 
   configureFlags = [
@@ -34,14 +27,9 @@ stdenv.mkDerivation rec {
     "--enable-remote-bitbang"
   ];
 
-  NIX_CFLAGS_COMPILE = toString (lib.optionals stdenv.cc.isGNU [
-    "-Wno-implicit-fallthrough"
-    "-Wno-format-truncation"
-    "-Wno-format-overflow"
-    "-Wno-error=tautological-compare"
-    "-Wno-error=array-bounds"
+  NIX_CFLAGS_COMPILE = lib.optionals stdenv.cc.isGNU [
     "-Wno-error=cpp"
-  ]);
+  ];
 
   postInstall = lib.optionalString stdenv.isLinux ''
     mkdir -p "$out/etc/udev/rules.d"
@@ -64,7 +52,7 @@ stdenv.mkDerivation rec {
       "remote target" for source-level debugging of embedded systems using the
       GNU GDB program.
     '';
-    homepage = "http://openocd.sourceforge.net/";
+    homepage = "https://openocd.sourceforge.net/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ bjornfor ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/development/tools/misc/pahole/default.nix b/nixpkgs/pkgs/development/tools/misc/pahole/default.nix
index 8541c7a307a2..bb88862a8e8e 100644
--- a/nixpkgs/pkgs/development/tools/misc/pahole/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/pahole/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pahole";
-  version = "1.16";
+  version = "1.17";
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/devel/pahole/pahole.git";
     rev = "v${version}";
-    sha256 = "1gfc9v4dgs811v1zjk0d9hsgmizllw2hibc83ykmakzysimaxsy3";
+    sha256 = "13dxsmhpf9n2wqggf4gd6f12rm0vhv0q96jd50gkvaxzzvgpzzbc";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/development/tools/misc/patchelf/0.9.nix b/nixpkgs/pkgs/development/tools/misc/patchelf/0.9.nix
new file mode 100644
index 000000000000..c64d722ca711
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/patchelf/0.9.nix
@@ -0,0 +1,16 @@
+{ stdenv, fetchurl, patchelf }:
+
+stdenv.mkDerivation rec {
+  name = "patchelf-0.9";
+
+  src = fetchurl {
+    url = "https://nixos.org/releases/patchelf/${name}/${name}.tar.bz2";
+    sha256 = "a0f65c1ba148890e9f2f7823f4bedf7ecad5417772f64f994004f59a39014f83";
+  };
+
+  setupHook = [ ./setup-hook.sh ];
+
+  doCheck = false; # fails 8 out of 24 tests, problems when loading libc.so.6
+
+  inherit (patchelf) meta;
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/patchelf/default.nix b/nixpkgs/pkgs/development/tools/misc/patchelf/default.nix
index 7c543100bb80..1d31709ccf0c 100644
--- a/nixpkgs/pkgs/development/tools/misc/patchelf/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/patchelf/default.nix
@@ -6,16 +6,18 @@
 # files.
 
 stdenv.mkDerivation rec {
-  name = "patchelf-0.9";
+  pname = "patchelf";
+  version = "0.12";
 
   src = fetchurl {
-    url = "https://nixos.org/releases/patchelf/${name}/${name}.tar.bz2";
-    sha256 = "a0f65c1ba148890e9f2f7823f4bedf7ecad5417772f64f994004f59a39014f83";
+    url = "https://github.com/NixOS/${pname}/releases/download/${version}/${pname}-${version}.tar.bz2";
+    sha256 = "14npmdxppmh0ci140w8i8cy7zg1pnqg81a1mdsnza711ab7k36k9";
   };
 
   setupHook = [ ./setup-hook.sh ];
 
-  doCheck = false; # fails 8 out of 24 tests, problems when loading libc.so.6
+  # fails 8 out of 24 tests, problems when loading libc.so.6
+  doCheck = stdenv.name == "stdenv-linux";
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/NixOS/patchelf/blob/master/README";
diff --git a/nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix b/nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix
index 858e8e5a9b8f..0d9eeb84bfb4 100644
--- a/nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix
+++ b/nixpkgs/pkgs/development/tools/misc/patchelf/unstable.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "patchelf-${version}";
-  version = "2020-06-03";
+  version = "2020-07-11";
 
   src = fetchFromGitHub {
     owner = "NixOS";
     repo = "patchelf";
-    rev = "4aff679d9eaa1a3ec0228901a4e79b57361b4094";
-    sha256 = "1i47z2dl6pgv5krl58lwy3xs327jmhy9cni3b8yampab1kh9ad1l";
+    rev = "126372b636733b160e693c9913e871f6755c02e";
+    sha256 = "07cn40ypys5pyc3jfgxvqj7qk5v6m2rr5brnpmxdsl1557ryx226";
   };
 
   # Drop test that fails on musl (?)
diff --git a/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix b/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix
index 0c1a3dfc9326..f9d792d185f8 100644
--- a/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/pwndbg/default.nix
@@ -21,14 +21,14 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "pwndbg";
-  version = "2019.12.09";
+  version = "2020.07.23";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "pwndbg";
     repo = "pwndbg";
     rev = version;
-    sha256 = "0kn28mjdq91zf7d6vqzbm74f0ligp829m9jzjxfn4zlx6wrmkd0s";
+    sha256 = "0w1dmjy8ii12367wza8c35a9q9x204fppf6x328q75bhb3gd845c";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/misc/replacement/default.nix b/nixpkgs/pkgs/development/tools/misc/replacement/default.nix
new file mode 100644
index 000000000000..3d0218ffab23
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/replacement/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, fetchFromGitHub
+, python3Packages
+}:
+
+python3Packages.buildPythonApplication rec {
+  pname = "replacement";
+  version = "0.4.4";
+
+  disabled = python3Packages.isPy27;
+
+  src = fetchFromGitHub {
+    owner = "siriobalmelli";
+    repo = "replacement";
+    rev = "v${version}";
+    sha256 = "0j4lvn3rx1kqvxcsd8nhc2lgk48jyyl7qffhlkvakhy60f9lymj3";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    ruamel_yaml
+  ];
+
+  checkInputs = with python3Packages; [
+    pytestCheckHook
+    sh
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/siriobalmelli/replacement";
+    description = "A tool to execute yaml templates and output text";
+    longDescription = ''
+        Replacement is a python utility
+        that parses a yaml template and outputs text.
+
+        A 'template' is a YAML file containing a 'replacement' object.
+
+        A 'replacement' object contains a list of blocks,
+        each of which is executed in sequence.
+
+        This tool is useful in generating configuration files,
+        static websites and the like.
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ siriobalmelli ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/reviewdog/default.nix b/nixpkgs/pkgs/development/tools/misc/reviewdog/default.nix
index 9e4dbcac5b80..de8a113d1011 100644
--- a/nixpkgs/pkgs/development/tools/misc/reviewdog/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/reviewdog/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "reviewdog";
-  version = "0.10.0";
+  version = "0.10.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ag55n3gfwcp6v8v3hha8bdqxw9r4bmz97p00vyqla9gjzn5ka9w";
+    sha256 = "1xi5dfdy66qa6xvy60fk2lmp9gxyi0nfkyvybcazn8mrd99hfh6l";
   };
 
-  vendorSha256 = "0lann22hjdcrwyab76hinvbbmg3rf7y3knrxlfg0164gl3y5xb5g";
+  vendorSha256 = "0cxi01jxg89lsk91dv782746i8g9ksanx8igmgafq9vq25lld7yg";
+
+  doCheck = false;
 
   subPackages = [ "cmd/reviewdog" ];
 
diff --git a/nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix b/nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix
index a7e197f9d7e9..b9f84edc964a 100644
--- a/nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/saleae-logic/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
     comment = "Software for Saleae logic analyzers";
     desktopName = "Saleae Logic";
     genericName = "Logic analyzer";
-    categories = "Application;Development";
+    categories = "Development";
   };
 
   buildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/development/tools/misc/scc/default.nix b/nixpkgs/pkgs/development/tools/misc/scc/default.nix
index 47596789de7a..8a6a1471d0a4 100644
--- a/nixpkgs/pkgs/development/tools/misc/scc/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/scc/default.nix
@@ -1,20 +1,20 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "scc";
-  version = "2.12.0";
+  version = "2.13.0";
 
   src = fetchFromGitHub {
     owner = "boyter";
     repo = "scc";
     rev = "v${version}";
-    sha256 = "0hbcq5qn97kr9d4q9m2p1mj3ijn8zmwycrs5bgf1kfiwr09wg2yh";
+    sha256 = "16p5g20n5jsbisbgikk9xny94xx6c0dxf19saa686ghh31jr2hh3";
   };
 
-  goPackagePath = "github.com/boyter/scc";
+  vendorSha256 = null;
 
   # scc has a scripts/ sub-package that's for testing.
-  subPackages = [ "./" ];
+  excludedPackages = [ "scripts" ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/boyter/scc";
diff --git a/nixpkgs/pkgs/development/tools/misc/stm32cubemx/default.nix b/nixpkgs/pkgs/development/tools/misc/stm32cubemx/default.nix
index 53336ab417cd..80549d8848f3 100644
--- a/nixpkgs/pkgs/development/tools/misc/stm32cubemx/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/stm32cubemx/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, requireFile, makeDesktopItem, libicns, imagemagick, zstd, jre }:
+{ stdenv, requireFile, makeDesktopItem, libicns, imagemagick, jre, fetchzip }:
 
 let
-  version = "5.3.0";
+  version = "5.6.1";
   desktopItem = makeDesktopItem {
     name = "stm32CubeMX";
     exec = "stm32cubemx";
     desktopName = "STM32CubeMX";
-    categories = "Application;Development;";
+    categories = "Development;";
     icon = "stm32cubemx";
   };
 in
@@ -14,32 +14,19 @@ stdenv.mkDerivation rec {
   pname = "stm32cubemx";
   inherit version;
 
-  src = requireFile rec {
-    name = "STM32CubeMX.tar.zst";
-    message = ''
-      Unfortunately, we cannot download file ${name} automatically.
-      Please proceed with the following steps to download and add it to the Nix
-      store yourself:
 
-      1. get en.STM32CubeMX_${builtins.replaceStrings ["."] ["-"] version}.zip
-      2. unzip en.STM32CubeMX_${builtins.replaceStrings ["."] ["-"] version}.zip
-      3. run the setup: java -jar SetupSTM32CubeMX-${version}.exe
-      4. create a tar from created folder: tar --zstd -cf ${name} STM32CubeMX
-      5. add the result to the store: nix-prefetch-url file://\$PWD/${name}
-
-      Notice: The setup will quit with an error about /bin/chmod
-    '';
-    sha256 = "1r5k5wmsvw1w2nfs3nb4gc6pb3j0x6bqljn9jzc4r8y5bxc34rr8";
+  src = fetchzip {
+    url = "https://sw-center.st.com/packs/resource/library/stm32cube_mx_v${builtins.replaceStrings ["."] [""] version}.zip";
+    sha256 = "1y4a340wcjl88kjw1f1x85ffp4b5g1psryn9mgkd717w2bfpf29l";
+    stripRoot= false;
   };
 
-  nativeBuildInputs = [ libicns imagemagick zstd ];
+  nativeBuildInputs = [ libicns imagemagick ];
 
   buildCommand = ''
-    mkdir -p $out/{bin,opt,share/applications}
-
-    tar --extract --zstd --file $src --directory $out/opt/
+    mkdir -p $out/{bin,opt/STM32CubeMX,share/applications}
+    cp -r $src/. $out/opt/STM32CubeMX/
     chmod +rx $out/opt/STM32CubeMX/STM32CubeMX.exe
-
     cat << EOF > $out/bin/${pname}
     #!${stdenv.shell}
     ${jre}/bin/java -jar $out/opt/STM32CubeMX/STM32CubeMX.exe
@@ -63,7 +50,8 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = ''
+    description = "A graphical tool for configuring STM32 microcontrollers and microprocessors";
+    longDescription = ''
       A graphical tool that allows a very easy configuration of STM32
       microcontrollers and microprocessors, as well as the generation of the
       corresponding initialization C code for the Arm® Cortex®-M core or a
diff --git a/nixpkgs/pkgs/development/tools/misc/strace/default.nix b/nixpkgs/pkgs/development/tools/misc/strace/default.nix
index 23700a2ddc2d..ccbed6d430af 100644
--- a/nixpkgs/pkgs/development/tools/misc/strace/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/strace/default.nix
@@ -2,19 +2,19 @@
 
 stdenv.mkDerivation rec {
   pname = "strace";
-  version = "5.7";
+  version = "5.8";
 
   src = fetchurl {
     url = "https://strace.io/files/${version}/${pname}-${version}.tar.xz";
-    sha256 = "1n6cfz3i2krkyvxpdp3kmxhf7sy5xp0danzaiirbk5fdkfgvb15j";
+    sha256 = "1abs3svkg9985f4jrxx34sj1dcpsf95vv1a0g01c777zgygncjnz";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
   nativeBuildInputs = [ perl ];
 
-  buildInputs = stdenv.lib.optional libunwind.supportsHost libunwind; # support -k
+  buildInputs = [ perl.out ] ++ stdenv.lib.optional libunwind.supportsHost libunwind; # support -k
 
-  postPatch = "patchShebangs strace-graph";
+  postPatch = "patchShebangs --host strace-graph";
 
   configureFlags = stdenv.lib.optional (!stdenv.hostPlatform.isx86) "--enable-mpers=check";
 
diff --git a/nixpkgs/pkgs/development/tools/misc/svls/default.nix b/nixpkgs/pkgs/development/tools/misc/svls/default.nix
new file mode 100644
index 000000000000..f04c93e7a171
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/svls/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "svls";
+  version = "0.1.17";
+
+  src = fetchFromGitHub {
+    owner = "dalance";
+    repo = "svls";
+    rev = "v${version}";
+    sha256 = "0qcd9pkshk94c6skzld8cyzppl05hk4vcmmaya8r9l6kdi1f4b5m";
+  };
+
+  cargoSha256 = "0dqa7iw0sffzh07qysznh7ma3d3vl5fhd0i2qmz7a3dvw8mvyvsm";
+
+  meta = with lib; {
+    description = "SystemVerilog language server";
+    homepage = "https://github.com/dalance/svls";
+    license = licenses.mit;
+    maintainers = with maintainers; [ trepetti ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/swig/4.nix b/nixpkgs/pkgs/development/tools/misc/swig/4.nix
index a35a9a35281d..4096b7353fa4 100644
--- a/nixpkgs/pkgs/development/tools/misc/swig/4.nix
+++ b/nixpkgs/pkgs/development/tools/misc/swig/4.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "swig";
-  version = "4.0.1";
+  version = "4.0.2";
 
   src = fetchFromGitHub {
     owner = "swig";
     repo = "swig";
     rev = "rel-${version}";
-    sha256 = "1i1gl5gd6b5i1hiazq7m4nvlq86zd0fhk052xhwlnb596pjhgyhf";
+    sha256 = "12vlps766xvwck8q0i280s8yx21qm2dxl34710ybpmz3c1cfdjsc";
   };
 
   PCRE_CONFIG = "${pcre.dev}/bin/pcre-config";
diff --git a/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix b/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix
index 70b07dd71cd5..a4fb72666ca6 100644
--- a/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/terracognita/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "terracognita";
-  version = "0.4.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "cycloidio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0ib0p361sxh2qzxccg32pcml4by4mk45abhljwmljwybs34wh5rh";
+    sha256 = "1z0vf3x46w3glwvq185hgmfkg7xfq31c7d3yjhh8qkwbhkx4bga4";
   };
 
-  vendorSha256 = "0q772i49nyxzs51jrh45n14ljh7qj5wygkn2x32pxi6ykw6la4x8";
+  vendorSha256 = "1dmv16v1c9sydbl1g69pgwvrhznd0a133giwrcbqi4cyg1fdb3sr";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
@@ -23,4 +25,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = [ maintainers.marsam ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix b/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix
index cbbdd416ff8b..4d999f32446b 100644
--- a/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/terraform-ls/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "terraform-ls";
-  version = "0.3.2";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "11776nq1ixrg791xlmryjxldsc8gn69j1fc0wd6cdywy8yp2lh4w";
+    sha256 = "1afdd1zs242nh1cync5ip1fbah34wc3gbsx3hwwiisc8yziwiq18";
   };
 
   goPackagePath = "github.com/hashicorp/terraform-ls";
diff --git a/nixpkgs/pkgs/development/tools/misc/terraformer/default.nix b/nixpkgs/pkgs/development/tools/misc/terraformer/default.nix
new file mode 100644
index 000000000000..6ff0dd77aae2
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/terraformer/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "terraformer";
+  version = "0.8.8";
+
+  src = fetchFromGitHub {
+    owner = "GoogleCloudPlatform";
+    repo = pname;
+    rev = version;
+    sha256 = "1lzf30vpa0blbkz4ngnhrn3hpbqflqd4sni4bly9yqh4fnc44nvi";
+  };
+
+  vendorSha256 = "087448wkaw6jxv9d26hck4w3vdh06vcgywna6ydkqvxr0hp011b6";
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "CLI tool to generate terraform files from existing infrastructure (reverse Terraform). Infrastructure to Code";
+    homepage = "https://github.com/GoogleCloudPlatform/terraformer";
+    license = licenses.asl20;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/texinfo/6.7.nix b/nixpkgs/pkgs/development/tools/misc/texinfo/6.7.nix
new file mode 100644
index 000000000000..7915d6e3c6be
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/misc/texinfo/6.7.nix
@@ -0,0 +1,4 @@
+import ./common.nix {
+  version = "6.7";
+  sha256 = "1aicn1v3czqii08wc91jw089n1x3gfchkf808q2as59dak0h714q";
+}
diff --git a/nixpkgs/pkgs/development/tools/misc/texinfo/common.nix b/nixpkgs/pkgs/development/tools/misc/texinfo/common.nix
index ec51dc2259d9..f0f4c269fae7 100644
--- a/nixpkgs/pkgs/development/tools/misc/texinfo/common.nix
+++ b/nixpkgs/pkgs/development/tools/misc/texinfo/common.nix
@@ -12,7 +12,7 @@
 # files.
 
 let
-  crossBuildTools = interactive && stdenv.hostPlatform != stdenv.buildPlatform;
+  crossBuildTools = stdenv.hostPlatform != stdenv.buildPlatform;
 in
 
 with stdenv.lib;
@@ -26,8 +26,7 @@ stdenv.mkDerivation {
     inherit sha256;
   };
 
-  patches = optional (version == "6.5") ./perl.patch
-    ++ optional crossBuildTools ./cross-tools-flags.patch;
+  patches = optional crossBuildTools ./cross-tools-flags.patch;
 
   # ncurses is required to build `makedoc'
   # this feature is introduced by the ./cross-tools-flags.patch
diff --git a/nixpkgs/pkgs/development/tools/misc/texinfo/cross-tools-flags.patch b/nixpkgs/pkgs/development/tools/misc/texinfo/cross-tools-flags.patch
index da28a309719e..f0a8c4dfdc1e 100644
--- a/nixpkgs/pkgs/development/tools/misc/texinfo/cross-tools-flags.patch
+++ b/nixpkgs/pkgs/development/tools/misc/texinfo/cross-tools-flags.patch
@@ -4,8 +4,9 @@ diff -ur texinfo-6.5/configure texinfo-6.5-patched/configure
 @@ -23281,7 +23281,7 @@
    # env -i gives this build host configure a clean environment;
    # consequently, we have to re-initialize $PATH.
-   env -i CC="$CC_FOR_BUILD" AR="$AR_FOR_BUILD" RANLIB="$RANLIB_FOR_BUILD" \
+-  env -i CC="$BUILD_CC" AR="$BUILD_AR" RANLIB="$BUILD_RANLIB" \
 -      PATH="$PATH" \
++  env -i CC="$CC_FOR_BUILD" AR="$AR_FOR_BUILD" RANLIB="$RANLIB_FOR_BUILD" \
 +      PATH="$PATH" CFLAGS="$NATIVE_TOOLS_CFLAGS" LDFLAGS="$NATIVE_TOOLS_LDFLAGS" \
        tools_only=1 \
      ${confdir}/configure --build=${build} --host=${build} \
diff --git a/nixpkgs/pkgs/development/tools/misc/texinfo/perl.patch b/nixpkgs/pkgs/development/tools/misc/texinfo/perl.patch
deleted file mode 100644
index e651b37371c7..000000000000
--- a/nixpkgs/pkgs/development/tools/misc/texinfo/perl.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-Adapted from http://svn.savannah.gnu.org/viewvc/texinfo/
-Author: gavin
---- trunk/tp/Texinfo/Parser.pm  2018-06-04 19:51:36 UTC (rev 8006)
-+++ trunk/tp/Texinfo/Parser.pm  2018-07-13 15:31:28 UTC (rev 8007)
-@@ -5531,11 +5531,11 @@
-     }
-   } elsif ($command eq 'clickstyle') {
-     # REMACRO
--    if ($line =~ /^\s+@([[:alnum:]][[:alnum:]\-]*)({})?\s*/) {
-+    if ($line =~ /^\s+@([[:alnum:]][[:alnum:]\-]*)(\{\})?\s*/) {
-       $args = ['@'.$1];
-       $self->{'clickstyle'} = $1;
-       $remaining = $line;
--      $remaining =~ s/^\s+@([[:alnum:]][[:alnum:]\-]*)({})?\s*(\@(c|comment)((\@|\s+).*)?)?//;
-+      $remaining =~ s/^\s+@([[:alnum:]][[:alnum:]\-]*)(\{\})?\s*(\@(c|comment)((\@|\s+).*)?)?//;
-       $has_comment = 1 if (defined($4));
-     } else {
-       $self->line_error (sprintf($self->__(
---- trunk/tp/Texinfo/Convert/XSParagraph/xspara.c       2018-07-13 15:31:28 UTC (rev 8007)
-+++ trunk/tp/Texinfo/Convert/XSParagraph/xspara.c       2018-07-13 15:39:29 UTC (rev 8008)
-@@ -248,6 +248,11 @@
- 
-   dTHX;
- 
-+#if PERL_VERSION > 27 || (PERL_VERSION == 27 && PERL_SUBVERSION > 8)
-+  /* needed due to thread-safe locale handling in newer perls */
-+  switch_to_global_locale();
-+#endif
-+
-   if (setlocale (LC_CTYPE, "en_US.UTF-8")
-       || setlocale (LC_CTYPE, "en_US.utf8"))
-     goto success;
-@@ -320,6 +325,10 @@
-     {
- success: ;
-       free (utf8_locale);
-+#if PERL_VERSION > 27 || (PERL_VERSION == 27 && PERL_SUBVERSION > 8)
-+      /* needed due to thread-safe locale handling in newer perls */
-+      sync_locale();
-+#endif
-       /*
-       fprintf (stderr, "tried to set LC_CTYPE to UTF-8.\n");
-       fprintf (stderr, "character encoding is: %s\n",
diff --git a/nixpkgs/pkgs/development/tools/misc/texlab/default.nix b/nixpkgs/pkgs/development/tools/misc/texlab/default.nix
index 8185b14cd73f..8b734bdd1c18 100644
--- a/nixpkgs/pkgs/development/tools/misc/texlab/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/texlab/default.nix
@@ -31,6 +31,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://texlab.netlify.com/";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar metadark ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/tockloader/default.nix b/nixpkgs/pkgs/development/tools/misc/tockloader/default.nix
index 18c5393a6b7b..298e6f7c9d59 100644
--- a/nixpkgs/pkgs/development/tools/misc/tockloader/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/tockloader/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "tockloader";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0l8mvlqzyq2bfb6g5zhgv2ndgyyrmpww2l7f2snbli73g6x5j2g2";
+    sha256 = "11k4ppwq845lnj265ydfr0cn1rrym5amx2i19x1h3ccbxc3gsy3x";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/nixpkgs/pkgs/development/tools/misc/tokei/default.nix b/nixpkgs/pkgs/development/tools/misc/tokei/default.nix
index dee4c910fb80..baf14b933dcb 100644
--- a/nixpkgs/pkgs/development/tools/misc/tokei/default.nix
+++ b/nixpkgs/pkgs/development/tools/misc/tokei/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tokei";
-  version = "11.2.1";
+  version = "12.0.4";
 
   src = fetchFromGitHub {
     owner = "XAMPPRocky";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1bdq66si9vvvyf5nia8ww77imp0f8jas0yfcvq1rialwm9922dfl";
+    sha256 = "0vj6xpp5ss82n1zxljy5893s8l1pdhar5xqay5vvglkp8bzblin6";
   };
 
-  cargoSha256 = "17666wh4sfzhgxngymd02892mqpkr8jm6a4w95wwsc9iinzbygrm";
+  cargoSha256 = "02c2pdjzd49qznm1yj3rnli48267ajjdklrb1cpj0rhpirw4rh1j";
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [
     libiconv darwin.apple_sdk.frameworks.Security
@@ -28,6 +28,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/XAMPPRocky/tokei";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ gebner lilyball ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/misc/travis/Gemfile.lock b/nixpkgs/pkgs/development/tools/misc/travis/Gemfile.lock
index e26b31cbaf0c..91df15a9bb65 100644
--- a/nixpkgs/pkgs/development/tools/misc/travis/Gemfile.lock
+++ b/nixpkgs/pkgs/development/tools/misc/travis/Gemfile.lock
@@ -1,28 +1,38 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    addressable (2.4.0)
-    backports (3.16.1)
-    coderay (1.1.2)
+    activesupport (5.2.4.3)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 0.7, < 2)
+      minitest (~> 5.1)
+      tzinfo (~> 1.1)
+    addressable (2.7.0)
+      public_suffix (>= 2.0.2, < 5.0)
+    coderay (1.1.3)
+    concurrent-ruby (1.1.6)
     ethon (0.12.0)
       ffi (>= 1.3.0)
-    faraday (0.17.3)
+    faraday (1.0.1)
       multipart-post (>= 1.2, < 3)
-    faraday_middleware (0.14.0)
-      faraday (>= 0.7.4, < 1.0)
-    ffi (1.12.2)
-    gh (0.15.1)
-      addressable (~> 2.4.0)
-      backports
-      faraday (~> 0.8)
+    faraday_middleware (1.0.0)
+      faraday (~> 1.0)
+    ffi (1.13.1)
+    gh (0.17.0)
+      activesupport (~> 5.0)
+      addressable (~> 2.4)
+      faraday (~> 1.0)
+      faraday_middleware (~> 1.0)
       multi_json (~> 1.0)
       net-http-persistent (~> 2.9)
       net-http-pipeline
-    highline (1.7.10)
+    highline (2.0.3)
+    i18n (1.8.3)
+      concurrent-ruby (~> 1.0)
     json (2.3.0)
     launchy (2.4.3)
       addressable (~> 2.3)
     method_source (0.9.2)
+    minitest (5.14.1)
     multi_json (1.14.1)
     multipart-post (2.1.1)
     net-http-persistent (2.9.4)
@@ -30,20 +40,24 @@ GEM
     pry (0.11.3)
       coderay (~> 1.1.0)
       method_source (~> 0.9.0)
+    public_suffix (4.0.5)
     pusher-client (0.6.2)
       json
       websocket (~> 1.0)
-    travis (1.8.11)
-      backports
-      faraday (~> 0.9)
-      faraday_middleware (~> 0.9, >= 0.9.1)
+    thread_safe (0.3.6)
+    travis (1.9.1)
+      faraday (~> 1.0)
+      faraday_middleware (~> 1.0)
       gh (~> 0.13)
-      highline (~> 1.6)
-      launchy (~> 2.1)
+      highline (~> 2.0)
+      json (~> 2.3)
+      launchy (~> 2.1, < 2.5.0)
       pusher-client (~> 0.4)
       typhoeus (~> 0.6, >= 0.6.8)
     typhoeus (0.8.0)
       ethon (>= 0.8.0)
+    tzinfo (1.2.7)
+      thread_safe (~> 0.1)
     websocket (1.2.8)
 
 PLATFORMS
diff --git a/nixpkgs/pkgs/development/tools/misc/travis/gemset.nix b/nixpkgs/pkgs/development/tools/misc/travis/gemset.nix
index da2f5e8e7ac8..e10475a916b1 100644
--- a/nixpkgs/pkgs/development/tools/misc/travis/gemset.nix
+++ b/nixpkgs/pkgs/development/tools/misc/travis/gemset.nix
@@ -1,31 +1,45 @@
 {
-  addressable = {
+  activesupport = {
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mpn7sbjl477h56gmxsjqb89r5s3w7vx5af994ssgc3iamvgzgvs";
+      sha256 = "02fdawr3wyvpzpja3r7mvb8lmn2mm5jdw502bx3ncr2sy2nw1kx6";
       type = "gem";
     };
-    version = "2.4.0";
+    version = "5.2.4.3";
   };
-  backports = {
+  addressable = {
+    dependencies = ["public_suffix"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sp3l5wa77klj34sqib95ppxyam53x3p57xk0y6gy2c3z29z6hs5";
+      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
       type = "gem";
     };
-    version = "3.16.1";
+    version = "2.7.0";
   };
   coderay = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15vav4bhcc2x3jmi3izb11l4d9f3xv8hp2fszb7iqmpsccv1pz4y";
+      sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
       type = "gem";
     };
-    version = "1.1.2";
+    version = "1.1.3";
+  };
+  concurrent-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+      type = "gem";
+    };
+    version = "1.1.6";
   };
   ethon = {
     dependencies = ["ffi"];
@@ -42,10 +56,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13aghksmni2sl15y7wfpx6k5l3lfd8j9gdyqi6cbw6jgc7bqyyn2";
+      sha256 = "0wwks9652xwgjm7yszcq5xr960pjypc07ivwzbjzpvy9zh2fw6iq";
       type = "gem";
     };
-    version = "0.17.3";
+    version = "1.0.1";
   };
   faraday_middleware = {
     dependencies = ["faraday"];
@@ -53,37 +67,52 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1x7jgvpzl1nm7hqcnc8carq6yj1lijq74jv8pph4sb3bcpfpvcsc";
+      sha256 = "0jik2kgfinwnfi6fpp512vlvs0mlggign3gkbpkg5fw1jr9his0r";
       type = "gem";
     };
-    version = "0.14.0";
+    version = "1.0.0";
   };
   ffi = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
+      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
       type = "gem";
     };
-    version = "1.12.2";
+    version = "1.13.1";
   };
   gh = {
-    dependencies = ["addressable" "backports" "faraday" "multi_json" "net-http-persistent" "net-http-pipeline"];
+    dependencies = ["activesupport" "addressable" "faraday" "faraday_middleware" "multi_json" "net-http-persistent" "net-http-pipeline"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0g4df0jsscq16g6f27flfmvk7p4sbq81d5mdylbz4ikqq60kywzg";
+      sha256 = "1nj2dm2pahfa4d39y8csvjv5l3hpsm6yjq2y96vj2bqgg0qs26bj";
       type = "gem";
     };
-    version = "0.15.1";
+    version = "0.17.0";
   };
   highline = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01ib7jp85xjc4gh4jg0wyzllm46hwv8p0w1m4c75pbgi41fps50y";
+      sha256 = "0yclf57n2j3cw8144ania99h1zinf8q3f5zrhqa754j6gl95rp9d";
       type = "gem";
     };
-    version = "1.7.10";
+    version = "2.0.3";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10nq1xjqvkhngiygji831qx9bryjwws95r4vrnlq9142bzkg670s";
+      type = "gem";
+    };
+    version = "1.8.3";
   };
   json = {
     groups = ["default"];
@@ -114,6 +143,16 @@
     };
     version = "0.9.2";
   };
+  minitest = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "09bz9nsznxgaf06cx3b5z71glgl0hdw469gqx3w7bqijgrb55p5g";
+      type = "gem";
+    };
+    version = "5.14.1";
+  };
   multi_json = {
     groups = ["default"];
     platforms = [];
@@ -159,6 +198,16 @@
     };
     version = "0.11.3";
   };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g";
+      type = "gem";
+    };
+    version = "4.0.5";
+  };
   pusher-client = {
     dependencies = ["json" "websocket"];
     source = {
@@ -168,16 +217,26 @@
     };
     version = "0.6.2";
   };
+  thread_safe = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
+      type = "gem";
+    };
+    version = "0.3.6";
+  };
   travis = {
-    dependencies = ["backports" "faraday" "faraday_middleware" "gh" "highline" "launchy" "pusher-client" "typhoeus"];
+    dependencies = ["faraday" "faraday_middleware" "gh" "highline" "json" "launchy" "pusher-client" "typhoeus"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18zbi46as4d2wn83safawciyny0g2sk7yz5fvjvqmfk4ywpfrwrr";
+      sha256 = "1yizj5nqvyrfbyiv1kfwc33dylhsmk5l007z06djj152v04z63i3";
       type = "gem";
     };
-    version = "1.8.11";
+    version = "1.9.1";
   };
   typhoeus = {
     dependencies = ["ethon"];
@@ -188,6 +247,17 @@
     };
     version = "0.8.0";
   };
+  tzinfo = {
+    dependencies = ["thread_safe"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1i3jh086w1kbdj3k5l60lc3nwbanmzdf8yjj3mlrx9b2gjjxhi9r";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
   websocket = {
     source = {
       remotes = ["https://rubygems.org"];
diff --git a/nixpkgs/pkgs/development/tools/mockgen/default.nix b/nixpkgs/pkgs/development/tools/mockgen/default.nix
new file mode 100644
index 000000000000..def5e892e2f3
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/mockgen/default.nix
@@ -0,0 +1,23 @@
+{ buildGoModule, lib, fetchFromGitHub }:
+buildGoModule rec {
+  pname = "mockgen";
+  version = "1.4.4";
+  src = fetchFromGitHub {
+    owner = "golang";
+    repo = "mock";
+    rev = "v${version}";
+    sha256 = "1lj0dvd6div4jaq1s0afpwqaq9ah8cxhkq93wii2ably1xmp2l0a";
+  };
+  vendorSha256 = "1md4cg1zzhc276sc7i2v0xvg5pf6gzy0n9ga2g1lx3d572igq1wy";
+
+  doCheck = false;
+
+  subPackages = [ "mockgen" ];
+
+  meta = with lib; {
+    description = "GoMock is a mocking framework for the Go programming language.";
+    homepage = "https://github.com/golang/mock";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bouk ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/mod/default.nix b/nixpkgs/pkgs/development/tools/mod/default.nix
index 839594f4cc80..32fd2258daaf 100644
--- a/nixpkgs/pkgs/development/tools/mod/default.nix
+++ b/nixpkgs/pkgs/development/tools/mod/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "032s62rjjq7bqiz5fg17yfkq4j4dsbl6vhvs1wf2sg8jvbqmvdwn";
 
+  doCheck = false;
+
   subPackages = [ "cmd/mod" ];
 
   meta = with lib; {
@@ -26,4 +28,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ kalbasit ];
     platforms = platforms.linux ++ platforms.darwin;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/modd/default.nix b/nixpkgs/pkgs/development/tools/modd/default.nix
index 106f23ac3f11..5c63447fdc5f 100644
--- a/nixpkgs/pkgs/development/tools/modd/default.nix
+++ b/nixpkgs/pkgs/development/tools/modd/default.nix
@@ -11,12 +11,10 @@ buildGoPackage rec {
   };
   goPackagePath = "github.com/cortesi/modd";
   subPackages = [ "cmd/modd" ];
-  goDeps = ./deps.nix;
   meta = with stdenv.lib; {
     description = "A flexible developer tool that runs processes and responds to filesystem changes";
     homepage = "https://github.com/cortesi/modd";
     license = licenses.mit;
     maintainers = with maintainers; [ kierdavis ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/modd/deps.nix b/nixpkgs/pkgs/development/tools/modd/deps.nix
deleted file mode 100644
index 42190e655778..000000000000
--- a/nixpkgs/pkgs/development/tools/modd/deps.nix
+++ /dev/null
@@ -1,138 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
-  {
-    goPackagePath  = "github.com/alecthomas/template";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/template";
-      rev =  "a0175ee3bccc567396460bf5acd36800cb10c49c";
-      sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
-    };
-  }
-  {
-    goPackagePath  = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev =  "2efee857e7cfd4f3d0138cc3cbb1b4966962b93a";
-      sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
-    };
-  }
-  {
-    goPackagePath  = "github.com/bmatcuk/doublestar";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bmatcuk/doublestar";
-      rev =  "85a78806aa1b4707d1dbace9be592cf1ece91ab3";
-      sha256 = "01fd5j142pgsj5gfba43646aa6vd09fzvjhhik2r30nj4lsyy3z8";
-    };
-  }
-  {
-    goPackagePath  = "github.com/cortesi/moddwatch";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cortesi/moddwatch";
-      rev =  "d27f53de245eb09b9e475d498cc01c91ba8e89c8";
-      sha256 = "1ivxk6zxrc5rhd0p5kqi8jg58ql2mwdvrxvfzz8fkj1lxz975p9p";
-    };
-  }
-  {
-    goPackagePath  = "github.com/cortesi/termlog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cortesi/termlog";
-      rev =  "87cefd5ac843f65364f70a1fd2477bb6437690e8";
-      sha256 = "1mygv1bv6dkm5p1wsvzrsyq771k6apdcxlyfqdp5ay8vl75jxvmb";
-    };
-  }
-  {
-    goPackagePath  = "github.com/fatih/color";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fatih/color";
-      rev =  "3f9d52f7176a6927daacff70a3e8d1dc2025c53e";
-      sha256 = "165ww24x6ba47ji4j14mp3f006ksnmi53ws9280pgd2zcw91nbn8";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mattn/go-colorable";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-colorable";
-      rev =  "167de6bfdfba052fa6b2d3664c8f5272e23c9072";
-      sha256 = "1nwjmsppsjicr7anq8na6md7b1z84l9ppnlr045hhxjvbkqwalvx";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mattn/go-isatty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-isatty";
-      rev =  "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c";
-      sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w";
-    };
-  }
-  {
-    goPackagePath  = "github.com/rjeczalik/notify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rjeczalik/notify";
-      rev =  "629144ba06a1c6af28c1e42c228e3d42594ce081";
-      sha256 = "0745w0mdr9xfr4rxw4pfr1sl8apc7wr7mvfykdl4wslq3mdj8a91";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev =  "505ab145d0a99da450461ae2c1a9f6cd10d1f447";
-      sha256 = "1vbsvcvmjz6c00p5vf8ls533p52fx2y3gy6v4k5qrdlzl4wf0i5s";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev =  "927f97764cc334a6575f4b7a1584a147864d5723";
-      sha256 = "0np7b766gb92vbm514yhdl7cjmqvn0dxdxskd84aas2ri1fkpgw5";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev =  "37e7f081c4d4c64e13b10787722085407fe5d15f";
-      sha256 = "1bb0mw6ckb1k7z8v3iil2qlqwfj408fvvp8m1cik2b46p7snyjhm";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev =  "b4a75ba826a64a70990f11a225237acd6ef35c9f";
-      sha256 = "0kzrd2wywkcq35iakbzplqyma4bvf2ng3mzi7917kxcbdq3fflrj";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/kingpin";
-      rev =  "947dcec5ba9c011838740e680966fd7087a71d0d";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-  {
-    goPackagePath  = "mvdan.cc/sh";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mvdan/sh";
-      rev =  "8aeb0734cd0f08b7a473c9ac816be8687ca909cc";
-      sha256 = "1mj8qfkyb6k490qjy3riq6pm440qajf5lc8m74x7xhq5059qkgxx";
-    };
-  }
-]
\ No newline at end of file
diff --git a/nixpkgs/pkgs/development/tools/mustache-go/default.nix b/nixpkgs/pkgs/development/tools/mustache-go/default.nix
index 2f3d21f9c82d..7bcf72df55ce 100644
--- a/nixpkgs/pkgs/development/tools/mustache-go/default.nix
+++ b/nixpkgs/pkgs/development/tools/mustache-go/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "mustache-go";
-  version = "1.0.1";
+  version = "1.2.0";
 
   goPackagePath = "github.com/cbroglie/mustache";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "cbroglie";
     repo = "mustache";
     rev = "v${version}";
-    sha256 = "1aywj4fijsv66n6gjiz3l8g1vg0fqzwbf8dcdcgfsvsdb056p90v";
+    sha256 = "0mnh5zbpfwymddm1dppg9i9d1r8jqyg03z2gl6c5a8fgbrnxpjvc";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/tools/node-webkit/nw12.nix b/nixpkgs/pkgs/development/tools/node-webkit/nw12.nix
index 307e123bf77d..ffd2a78f5094 100644
--- a/nixpkgs/pkgs/development/tools/node-webkit/nw12.nix
+++ b/nixpkgs/pkgs/development/tools/node-webkit/nw12.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, buildEnv, makeWrapper
+{ stdenv, lib, fetchurl, buildEnv, makeWrapper
 , xorg, alsaLib, dbus, glib, gtk2, atk, pango, freetype, fontconfig
 , gdk-pixbuf, cairo, nss, nspr, gconf, expat, systemd, libcap
 , libnotify}:
@@ -39,7 +39,7 @@ in stdenv.mkDerivation rec {
     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/nwjs/nw
     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/nwjs/nwjc
 
-    ln -s ${systemd.lib}/lib/libudev.so $out/share/nwjs/libudev.so.0
+    ln -s ${lib.getLib systemd}/lib/libudev.so $out/share/nwjs/libudev.so.0
 
     patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:${stdenv.lib.makeLibraryPath [ stdenv.cc.cc ]}:$out/share/nwjs" $out/share/nwjs/nw
     patchelf --set-rpath "${nwEnv}/lib:${nwEnv}/lib64:$out/share/nwjs" $out/share/nwjs/nwjc
diff --git a/nixpkgs/pkgs/development/tools/nsis/default.nix b/nixpkgs/pkgs/development/tools/nsis/default.nix
index 5b9e7434a8de..33be56c539dc 100644
--- a/nixpkgs/pkgs/development/tools/nsis/default.nix
+++ b/nixpkgs/pkgs/development/tools/nsis/default.nix
@@ -1,18 +1,23 @@
-{ stdenv, fetchurl, fetchzip, scons, zlib }:
+{ stdenv
+, fetchurl
+, fetchzip
+, sconsPackages
+, zlib
+}:
 
 stdenv.mkDerivation rec {
   pname = "nsis";
-  version = "3.05";
+  version = "3.06.1";
 
   src =
     fetchurl {
       url = "mirror://sourceforge/project/nsis/NSIS%203/${version}/nsis-${version}-src.tar.bz2";
-      sha256 = "1sbwx5vzpddharkb7nj4q5z3i5fbg4lan63ng738cw4hmc4v7qdn";
+      sha256 = "1w1z2m982l6j8lw8hy91c3979wbnqglcf4148f9v79vl32znhpcv";
     };
   srcWinDistributable =
     fetchzip {
       url = "mirror://sourceforge/project/nsis/NSIS%203/${version}/nsis-${version}.zip";
-      sha256 = "0i3pzdilyy5g0r2c92pd2jl92ji9f75vv98mndzq8vw03a34yh3q";
+      sha256 = "04qm9jqbcybpwcrjlksggffdyafzwxxcaz9xhjw8w5rb95x7lw5q";
     };
 
   postUnpack = ''
@@ -22,7 +27,7 @@ stdenv.mkDerivation rec {
     chmod -R u+w $out/share/nsis
   '';
 
-  nativeBuildInputs = [ scons.py2 ];
+  nativeBuildInputs = [ sconsPackages.scons_3_1_2 ];
   buildInputs = [ zlib ];
 
   sconsFlags = [
diff --git a/nixpkgs/pkgs/development/tools/nwjs/default.nix b/nixpkgs/pkgs/development/tools/nwjs/default.nix
index ab16d9511514..4eedc003272c 100644
--- a/nixpkgs/pkgs/development/tools/nwjs/default.nix
+++ b/nixpkgs/pkgs/development/tools/nwjs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, buildEnv, makeWrapper
+{ stdenv, lib, fetchurl, buildEnv, makeWrapper
 
 , xorg, alsaLib, dbus, glib, gtk3, atk, pango, freetype, fontconfig
 , gdk-pixbuf, cairo, nss, nspr, gconf, expat, systemd, libcap
@@ -61,7 +61,7 @@ in stdenv.mkDerivation rec {
 
       patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $out/share/nwjs/nw
 
-      ln -s ${systemd.lib}/lib/libudev.so $out/share/nwjs/libudev.so.0
+      ln -s ${lib.getLib systemd}/lib/libudev.so $out/share/nwjs/libudev.so.0
 
       libpath="$out/share/nwjs/lib/"
       for f in "$libpath"/*.so; do
diff --git a/nixpkgs/pkgs/development/tools/ocaml/camlp4/default.nix b/nixpkgs/pkgs/development/tools/ocaml/camlp4/default.nix
index ea1b39650980..73228655cca0 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/camlp4/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/camlp4/default.nix
@@ -43,6 +43,11 @@ stdenv.mkDerivation rec {
   dontAddPrefix = true;
 
   preConfigure = ''
+    # increase stack space for spacetime variant of the compiler
+    # https://github.com/ocaml/ocaml/issues/7435
+    # but disallowed by darwin sandbox
+    ulimit -s unlimited || true
+
     configureFlagsArray=(
       --bindir=$out/bin
       --libdir=$out/lib/ocaml/${ocaml.version}/site-lib
diff --git a/nixpkgs/pkgs/development/tools/ocaml/camlp5/default.nix b/nixpkgs/pkgs/development/tools/ocaml/camlp5/default.nix
index 9a69f88c8043..7e7c185fbc7a 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/camlp5/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/camlp5/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation {
 
-  name = "camlp5-7.11";
+  name = "camlp5-7.12";
 
   src = fetchzip {
-    url = "https://github.com/camlp5/camlp5/archive/rel711.tar.gz";
-    sha256 = "1s1f9i0r0czxlbnsaz4kvs2ahknmqxcm5ypl75g7scjcbl0an2x4";
+    url = "https://github.com/camlp5/camlp5/archive/rel712.tar.gz";
+    sha256 = "12ix5g15bys932hyf9gs637iz76m0ji9075d83jfdmx85q30llgf";
   };
 
   buildInputs = [ ocaml ];
diff --git a/nixpkgs/pkgs/development/tools/ocaml/dune-release/default.nix b/nixpkgs/pkgs/development/tools/ocaml/dune-release/default.nix
new file mode 100644
index 000000000000..c267b2757a43
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/ocaml/dune-release/default.nix
@@ -0,0 +1,54 @@
+{ lib, buildDunePackage, fetchurl, makeWrapper
+, curly, fmt, bos, cmdliner, re, rresult, logs
+, odoc, opam-format, opam-core, opam-state, yojson
+, opam, git, findlib, mercurial, bzip2, gnutar, coreutils
+, alcotest, mdx
+}:
+
+# don't include dune as runtime dep, so user can
+# choose between dune and dune_2
+let runtimeInputs = [ opam findlib git mercurial bzip2 gnutar coreutils ];
+in buildDunePackage rec {
+  pname = "dune-release";
+  version = "1.4.0";
+
+  minimumOCamlVersion = "4.06";
+
+  src = fetchurl {
+    url = "https://github.com/ocamllabs/${pname}/releases/download/${version}/${pname}-${version}.tbz";
+    sha256 = "1frinv1rsrm30q6jclicsswpshkdwwdgxx7sp6q9w4c2p211n1ln";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ curly fmt cmdliner re opam-format opam-state opam-core
+                  rresult logs odoc bos yojson ];
+  checkInputs = [ alcotest mdx ] ++ runtimeInputs;
+  doCheck = true;
+
+  useDune2 = true;
+
+  postPatch = ''
+    # remove check for curl in PATH, since curly is patched
+    # to have a fixed path to the binary in nix store
+    sed -i '/must_exist (Cmd\.v "curl"/d' lib/github.ml
+
+    # set bogus user info in git so git commit doesn't fail
+    sed -i '/git init/ a \    $ git config user.name test; git config user.email "pseudo@pseudo.invalid"' \
+      tests/bin/{delegate_info,errors,tag,no_doc,x-commit-hash}/run.t
+    # ignore weird yes error message
+    sed -i 's/yes |/yes 2>\/dev\/null |/' tests/bin/no_doc/run.t
+  '';
+
+  # tool specific env vars have been deprecated, use PATH
+  preFixup = ''
+    wrapProgram $out/bin/dune-release \
+      --prefix PATH : "${lib.makeBinPath runtimeInputs}"
+  '';
+
+  meta = with lib; {
+    description = "Release dune packages in opam";
+    homepage = "https://github.com/ocamllabs/dune-release";
+    license = licenses.isc;
+    maintainers = with maintainers; [ sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix b/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
index ac3b7f2a4299..177fa96f5b96 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/dune/2.nix
@@ -1,22 +1,30 @@
-{ stdenv, fetchurl, ocaml, findlib }:
+{ stdenv, fetchurl, ocaml, findlib, fetchpatch }:
 
-if stdenv.lib.versionOlder ocaml.version "4.07"
+if stdenv.lib.versionOlder ocaml.version "4.08"
 then throw "dune is not available for OCaml ${ocaml.version}"
 else
 
 stdenv.mkDerivation rec {
   pname = "dune";
-  version = "2.6.0";
+  version = "2.7.1";
 
   src = fetchurl {
     url = "https://github.com/ocaml/dune/releases/download/${version}/dune-${version}.tbz";
-    sha256 = "1hvgj78xqqqph8dwn1jjkjp8bpppvwzx33lzkvwh5wn5zd4xij8j";
+    sha256 = "0pcjf209gynjwipnpplaqyvyivnawqiwhvqnivhkybisicpqyln3";
   };
 
   buildInputs = [ ocaml findlib ];
 
   buildFlags = "release";
 
+  patches = [
+    # Fix setup.ml configure path. Remove with the next release.
+    (fetchpatch {
+      url = "https://github.com/ocaml/dune/commit/8a3d7f2f2015b71384caa07226d1a89dba9d6c25.patch";
+      sha256 = "0dw4q10030h9xcdlxw2vp7qm0hd2qpkb98rir5d55m9vn65w8j28";
+    })
+  ];
+
   dontAddPrefix = true;
 
   installFlags = [ "PREFIX=${placeholder "out"}" "LIBDIR=$(OCAMLFIND_DESTDIR)" ];
diff --git a/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix b/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
index 90e0a7935de5..c0812c39a3e6 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/compiler.nix
@@ -1,19 +1,19 @@
-{ lib, fetchFromGitHub, buildDunePackage
-, ocaml, findlib, cmdliner, dune, cppo, yojson, ocaml-migrate-parsetree
+{ lib, fetchurl, buildDunePackage
+, ocaml, findlib, cmdliner, dune_2, cppo, yojson, ocaml-migrate-parsetree
+, menhir
 }:
 
 buildDunePackage rec {
 	pname = "js_of_ocaml-compiler";
-	version = "3.5.2";
+	version = "3.7.0";
+	useDune2 = true;
 
-	src = fetchFromGitHub {
-		owner = "ocsigen";
-		repo = "js_of_ocaml";
-		rev = version;
-		sha256 = "1fm855iavljx7rf9hii2qb7ky920zv082d9zlcl504by1bxp1yg8";
+	src = fetchurl {
+		url = "https://github.com/ocsigen/js_of_ocaml/releases/download/${version}/js_of_ocaml-${version}.tbz";
+		sha256 = "0rw6cfkl3zlyav8q2w7grxxqjmg35mz5rgvmkiqb58nl4gmgzx6w";
 	};
 
-	nativeBuildInputs = [ ocaml findlib dune cppo ];
+	nativeBuildInputs = [ ocaml findlib dune_2 cppo menhir ];
   buildInputs = [ cmdliner ];
 
   configurePlatforms = [];
@@ -23,6 +23,6 @@ buildDunePackage rec {
 		description = "Compiler from OCaml bytecode to Javascript";
 		license = lib.licenses.gpl2;
 		maintainers = [ lib.maintainers.vbgl ];
-		inherit (src.meta) homepage;
+		homepage = "https://ocsigen.org/js_of_ocaml/";
 	};
 }
diff --git a/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/default.nix b/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
index 9ca6ca67421f..9a57b590d6cf 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, ocaml, findlib, dune, js_of_ocaml-compiler
+{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
 , ocaml-migrate-parsetree, ppx_tools_versioned, uchar
 }:
 
@@ -8,9 +8,7 @@ stdenv.mkDerivation {
   inherit (js_of_ocaml-compiler) version src installPhase meta;
 
   buildInputs = [ findlib ocaml-migrate-parsetree ppx_tools_versioned ];
-  nativeBuildInputs = [ ocaml findlib dune ];
-
-  postPatch = "patchShebangs lib/generate_stubs.sh";
+  nativeBuildInputs = [ ocaml findlib dune_2 ];
 
 	propagatedBuildInputs = [ js_of_ocaml-compiler uchar ];
 
diff --git a/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix b/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix
index 5c8f4377e8d7..2ad8578894f5 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/lwt.nix
@@ -1,4 +1,4 @@
-{ stdenv, ocaml, findlib, dune, js_of_ocaml-compiler, js_of_ocaml-ppx
+{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler, js_of_ocaml-ppx
 , ocaml-migrate-parsetree, ppx_tools_versioned
 , js_of_ocaml, ocaml_lwt, lwt_log
 }:
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
 
 	inherit (js_of_ocaml-compiler) version src installPhase meta;
 
-	buildInputs = [ ocaml findlib dune js_of_ocaml-ppx ocaml-migrate-parsetree ppx_tools_versioned ];
+	buildInputs = [ ocaml findlib dune_2 js_of_ocaml-ppx ocaml-migrate-parsetree ppx_tools_versioned ];
 
 	propagatedBuildInputs = [ js_of_ocaml ocaml_lwt lwt_log ];
 
diff --git a/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix b/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix
index 344352467e9b..50bcd69eb66a 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ocamlbuild.nix
@@ -1,4 +1,4 @@
-{ stdenv, ocaml, findlib, dune, js_of_ocaml-compiler
+{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
 , ocamlbuild
 }:
 
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
 
 	inherit (js_of_ocaml-compiler) version src installPhase meta;
 
-	buildInputs = [ ocaml findlib dune ];
+	buildInputs = [ ocaml findlib dune_2 ];
 
 	propagatedBuildInputs = [ ocamlbuild ];
 
diff --git a/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix b/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix
index 3adad22bd9c3..69783c7eada1 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ppx.nix
@@ -1,4 +1,4 @@
-{ stdenv, ocaml, findlib, dune, js_of_ocaml-compiler
+{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
 , ocaml-migrate-parsetree, ppx_tools_versioned
 , js_of_ocaml
 }:
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
 
 	inherit (js_of_ocaml-compiler) version src installPhase meta;
 
-	buildInputs = [ ocaml findlib dune ocaml-migrate-parsetree ppx_tools_versioned js_of_ocaml ];
+	buildInputs = [ ocaml findlib dune_2 ocaml-migrate-parsetree ppx_tools_versioned js_of_ocaml ];
 
 	buildPhase = "dune build -p js_of_ocaml-ppx";
 }
diff --git a/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix b/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix
index 47396829f8a0..d3cc4e08787f 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/ppx_deriving_json.nix
@@ -1,4 +1,4 @@
-{ stdenv, ocaml, findlib, dune, js_of_ocaml-compiler
+{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
 , js_of_ocaml, ppxlib
 }:
 
@@ -7,7 +7,7 @@ stdenv.mkDerivation {
 
 	inherit (js_of_ocaml-compiler) version src installPhase meta;
 
-	buildInputs = [ ocaml findlib dune ];
+	buildInputs = [ ocaml findlib dune_2 ];
 
 	propagatedBuildInputs = [ js_of_ocaml ppxlib ];
 
diff --git a/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix b/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix
index c39c985183ad..fcfeeaf8d99a 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/js_of_ocaml/tyxml.nix
@@ -1,4 +1,4 @@
-{ stdenv, ocaml, findlib, dune, js_of_ocaml-compiler
+{ stdenv, ocaml, findlib, dune_2, js_of_ocaml-compiler
 , js_of_ocaml-ppx, ocaml-migrate-parsetree, ppx_tools_versioned
 , js_of_ocaml, reactivedata, tyxml
 }:
@@ -8,7 +8,7 @@ stdenv.mkDerivation {
 
 	inherit (js_of_ocaml-compiler) version src installPhase meta;
 
-	buildInputs = [ ocaml findlib dune js_of_ocaml-ppx ocaml-migrate-parsetree ppx_tools_versioned ];
+	buildInputs = [ ocaml findlib dune_2 js_of_ocaml-ppx ocaml-migrate-parsetree ppx_tools_versioned ];
 
 	propagatedBuildInputs = [ js_of_ocaml reactivedata tyxml ];
 
diff --git a/nixpkgs/pkgs/development/tools/ocaml/merlin/default.nix b/nixpkgs/pkgs/development/tools/ocaml/merlin/default.nix
index 4b11dd13983d..54712be2b6ec 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/merlin/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/merlin/default.nix
@@ -2,13 +2,13 @@
 
 buildDunePackage rec {
   pname = "merlin";
-  version = "3.3.6";
+  version = "3.3.9";
 
   minimumOCamlVersion = "4.02.1";
 
   src = fetchurl {
     url = "https://github.com/ocaml/merlin/releases/download/v${version}/merlin-v${version}.tbz";
-    sha256 = "1360cm0jkn2v2y5p3yzdyw9661a1vpddcibkbfblmk95qafx4civ";
+    sha256 = "00ng8299l5rzpak8ljxzr6dgxw6z52ivm91159ahv09xk4d0y5x3";
   };
 
   buildInputs = [ yojson ];
diff --git a/nixpkgs/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix b/nixpkgs/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix
new file mode 100644
index 000000000000..7af1b4513a85
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/ocaml/merlin/dot-merlin-reader.nix
@@ -0,0 +1,24 @@
+{ lib, fetchurl, ocamlPackages }:
+
+with ocamlPackages;
+
+buildDunePackage rec {
+  pname = "dot-merlin-reader";
+  version = "3.4.0";
+
+  minimumOCamlVersion = "4.02.1";
+
+  src = fetchurl {
+    url = "https://github.com/ocaml/merlin/releases/download/v${version}/merlin-v${version}.tbz";
+    sha256 = "048rkpbvayksv8mgmkgi17vv0y9xplv7v2ww4d1hs7bkm5zzsvg2";
+  };
+
+  buildInputs = [ yojson csexp result ];
+
+  meta = with lib; {
+    description = "Reads config files for merlin";
+    homepage = "https://github.com/ocaml/merlin";
+    license = licenses.mit;
+    maintainers = [ maintainers.hongchangwu ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/default.nix b/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/default.nix
index c79f65b47a80..5b607d3d6c64 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/ocamlformat/default.nix
@@ -1,19 +1,49 @@
-{ lib, fetchurl, ocamlPackages }:
+{ lib, fetchurl, fetchzip, ocamlPackages }:
 
-with ocamlPackages; buildDunePackage rec {
-  pname = "ocamlformat";
-  version = "0.14.2";
+with ocamlPackages;
 
-  minimumOCamlVersion = "4.06";
+let
+  mkOCamlformat = {
+      version,
+      sha256,
+      buildInputs,
+      useDune2 ? true,
+      tarballName ? "ocamlformat-${version}.tbz",
+      # The 'src' argument can be removed when 0.11.0 is pruned
+      src ? fetchurl {
+          url = "https://github.com/ocaml-ppx/ocamlformat/releases/download/${version}/${tarballName}";
+          inherit sha256;
+        }
+    }:
+    buildDunePackage rec {
+      pname = "ocamlformat";
 
-  useDune2 = true;
+      minimumOCamlVersion = "4.06";
 
-  src = fetchurl {
-    url = "https://github.com/ocaml-ppx/ocamlformat/releases/download/${version}/ocamlformat-${version}.tbz";
-    sha256 = "16phz1sg9b070p6fm8d42j0piizg05vghdjmw8aj7xm82b1pm7sz";
-  };
+      inherit src version useDune2 buildInputs;
+
+      meta = {
+        homepage = "https://github.com/ocaml-ppx/ocamlformat";
+        description = "Auto-formatter for OCaml code";
+        maintainers = [ lib.maintainers.Zimmi48 lib.maintainers.marsam ];
+        license = lib.licenses.mit;
+      };
+    };
+
+  post_0_11_buildInputs = [
+    base
+    cmdliner
+    fpath
+    ocaml-migrate-parsetree
+    odoc
+    re
+    stdio
+    uuseg
+    uutf
+  ];
 
-  buildInputs = [
+  post_0_14_buildInputs = [
+    base
     cmdliner
     fpath
     ocaml-migrate-parsetree
@@ -25,11 +55,62 @@ with ocamlPackages; buildDunePackage rec {
     fix
     menhir
   ];
+in
+
+# Older versions should be removed when their usage decrease
+# This script scraps Github looking for OCamlformat's options and versions usage:
+#  https://gist.github.com/Julow/110dc94308d6078225e0665e3eccd433
 
-  meta = {
-    homepage = "https://github.com/ocaml-ppx/ocamlformat";
-    description = "Auto-formatter for OCaml code";
-    maintainers = [ lib.maintainers.Zimmi48 ];
-    license = lib.licenses.mit;
+rec {
+  ocamlformat_0_11_0 = mkOCamlformat rec {
+    version = "0.11.0";
+    src = fetchzip {
+      url = "https://github.com/ocaml-ppx/ocamlformat/archive/0.11.0.tar.gz";
+      inherit sha256;
+    };
+    sha256 = "0zvjn71jd4d3znnpgh0yphb2w8ggs457b6bl6cg1fmpdgxnds6yx";
+    useDune2 = false;
+    buildInputs = post_0_11_buildInputs;
   };
+
+  ocamlformat_0_12 = mkOCamlformat {
+    version = "0.12";
+    sha256 = "1zi8x597dhp2822j6j28s84yyiqppl7kykpwqqclx6ybypvlzdpj";
+    useDune2 = false;
+    buildInputs = post_0_11_buildInputs;
+  };
+
+  ocamlformat_0_13_0 = mkOCamlformat rec {
+    version = "0.13.0";
+    sha256 = "0ki2flqi3xkhw9mfridivb6laxm7gml8rj9qz42vqmy9yx76jjxq";
+    tarballName = "ocamlformat-${version}-2.tbz";
+    useDune2 = false;
+    buildInputs = post_0_11_buildInputs;
+  };
+
+  ocamlformat_0_14_0 = mkOCamlformat {
+    version = "0.14.0";
+    sha256 = "070c0x6z5y0lyls56zm34g8lyc093wkr0jfp50dvrkr9fk1sx2wi";
+    buildInputs = post_0_14_buildInputs;
+  };
+
+  ocamlformat_0_14_1 = mkOCamlformat {
+    version = "0.14.1";
+    sha256 = "03wn46xib63748157xchj7gflkw5000fcjw6n89h9g82q9slazaa";
+    buildInputs = post_0_14_buildInputs;
+  };
+
+  ocamlformat_0_14_2 = mkOCamlformat {
+    version = "0.14.2";
+    sha256 = "16phz1sg9b070p6fm8d42j0piizg05vghdjmw8aj7xm82b1pm7sz";
+    buildInputs = post_0_14_buildInputs;
+  };
+
+  ocamlformat_0_15_0 = mkOCamlformat {
+    version = "0.15.0";
+    sha256 = "0190vz59n6ma9ca1m3syl3mc8i1smj1m3d8x1jp21f710y4llfr6";
+    buildInputs = post_0_14_buildInputs;
+  };
+
+  ocamlformat = ocamlformat_0_15_0;
 }
diff --git a/nixpkgs/pkgs/development/tools/ocaml/ocp-indent/default.nix b/nixpkgs/pkgs/development/tools/ocaml/ocp-indent/default.nix
index 729985f87fd6..675f66dcf474 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/ocp-indent/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/ocp-indent/default.nix
@@ -1,12 +1,12 @@
 { lib, fetchzip, buildDunePackage, cmdliner }:
 
 buildDunePackage rec {
-  version = "1.8.1";
+  version = "1.8.2";
   pname = "ocp-indent";
 
   src = fetchzip {
     url = "https://github.com/OCamlPro/ocp-indent/archive/${version}.tar.gz";
-    sha256 = "0h4ysh36q1fxc40inhsdq2swqpfm15lpilqqcafs5ska42pn7s68";
+    sha256 = "1dvcl108ir9nqkk4mjm9xhhj4p9dx9bmg8bnms54fizs1x3x8ar3";
   };
 
   minimumOCamlVersion = "4.02";
diff --git a/nixpkgs/pkgs/development/tools/ocaml/ocp-index/default.nix b/nixpkgs/pkgs/development/tools/ocaml/ocp-index/default.nix
index b9404016b4e0..9c888e284fc5 100644
--- a/nixpkgs/pkgs/development/tools/ocaml/ocp-index/default.nix
+++ b/nixpkgs/pkgs/development/tools/ocaml/ocp-index/default.nix
@@ -1,15 +1,15 @@
-{ lib, fetchurl, buildDunePackage, ocp-build, ocp-indent, cmdliner, re }:
+{ lib, fetchzip, buildDunePackage, cppo, ocp-indent, cmdliner, re }:
 
 buildDunePackage rec {
   pname = "ocp-index";
-  version = "1.2";
+  version = "1.2.1";
 
-  src = fetchurl {
-    url = "https://github.com/OCamlPro/ocp-index/releases/download/${version}/ocp-index-${version}.tbz";
-    sha256 = "1lchw02sakjjppmzr0rzlarwbg1lc2bl7pwcfpsiycnaz46x6gmr";
+  src = fetchzip {
+    url = "https://github.com/OCamlPro/ocp-index/archive/${version}.tar.gz";
+    sha256 = "08r7mxdnxmhff37fw4hmrpjgckgi5kaiiiirwp4rmdl594z0h9c8";
   };
 
-  buildInputs = [ ocp-build cmdliner re ];
+  buildInputs = [ cppo cmdliner re ];
 
   propagatedBuildInputs = [ ocp-indent ];
 
diff --git a/nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix b/nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix
index 973f777d8cb9..c435d80b08fc 100644
--- a/nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix
+++ b/nixpkgs/pkgs/development/tools/omnisharp-roslyn/default.nix
@@ -7,11 +7,11 @@
 stdenv.mkDerivation rec {
 
   pname = "omnisharp-roslyn";
-  version = "1.35.1";
+  version = "1.37.1";
 
   src = fetchurl {
     url = "https://github.com/OmniSharp/omnisharp-roslyn/releases/download/v${version}/omnisharp-mono.tar.gz";
-    sha256 = "0gx87qc9r3lhqn6q95y74z67sjcxnazkkdi9zswmaqyvjn8x7vf4";
+    sha256 = "04pyychzwhhcv0js0qyramz6nd0wz03qqqgvz1j9m9wxyiz0dv3c";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix b/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix
index d1ecdd1efd96..d3fd81a0f941 100644
--- a/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix
+++ b/nixpkgs/pkgs/development/tools/open-policy-agent/default.nix
@@ -2,22 +2,25 @@
 
 buildGoPackage rec {
   pname = "open-policy-agent";
-  version = "0.15.0";
+  version = "0.23.2";
 
   goPackagePath = "github.com/open-policy-agent/opa";
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "opa";
     rev = "v${version}";
-    sha256 = "0i9735v73a7wfq02p4hsy61g7d7bip6zmb8bnsiz2ma84g2g533w";
+    sha256 = "18hpanfrzg6xnq1g0yws6g0lw4y191pnrqphccv13j6kqk3k10ps";
   };
-  goDeps = ./deps.nix;
+
+  buildFlagsArray = ''
+    -ldflags=
+      -X ${goPackagePath}/version.Version=${version}
+  '';
 
   meta = with lib; {
     description = "General-purpose policy engine";
     homepage = "https://www.openpolicyagent.org";
     license = licenses.asl20;
     maintainers = with maintainers; [ lewo ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/open-policy-agent/deps.nix b/nixpkgs/pkgs/development/tools/open-policy-agent/deps.nix
deleted file mode 100644
index ba9eed180d57..000000000000
--- a/nixpkgs/pkgs/development/tools/open-policy-agent/deps.nix
+++ /dev/null
@@ -1,408 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "github.com/OneOfOne/xxhash";
-    fetch = {
-      type = "git";
-      url = "https://github.com/OneOfOne/xxhash";
-      rev = "v1.2.3";
-      sha256 = "0hxyvv77ghja6vim210s7fa1n2zlvykvjak8s3k3nkj85h611kwb";
-    };
-  }
-  {
-    goPackagePath = "github.com/beorn7/perks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/beorn7/perks";
-      rev = "3a771d992973";
-      sha256 = "1l2lns4f5jabp61201sh88zf3b0q793w4zdgp9nll7mmfcxxjif3";
-    };
-  }
-  {
-    goPackagePath = "github.com/cespare/xxhash";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cespare/xxhash";
-      rev = "v1.1.0";
-      sha256 = "1qyzlcdcayavfazvi03izx83fvip8h36kis44zr2sg7xf6sx6l4x";
-    };
-  }
-  {
-    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/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath = "github.com/ghodss/yaml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ghodss/yaml";
-      rev = "c7ce16629ff4";
-      sha256 = "10cyv1gy3zwwkr04kk8cvhifb7xddakyvnk5s13yfcqj9hcjz8d1";
-    };
-  }
-  {
-    goPackagePath = "github.com/gobwas/glob";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gobwas/glob";
-      rev = "v0.2.3";
-      sha256 = "0jxk1x806zn5x86342s72dq2qy64ksb3zrvrlgir2avjhwb18n6z";
-    };
-  }
-  {
-    goPackagePath = "github.com/gogo/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gogo/protobuf";
-      rev = "v1.3.0";
-      sha256 = "0slfyrmbpdcppf0z3waar90bpszdhi2gv705ys1b0zx5x6ax8f1a";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "d3de96c4c28e";
-      sha256 = "0k41z9dybs3fvgb1jzgnxr91qad9rnf9a269l95jics58m3kn7f5";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/mux";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/mux";
-      rev = "521ea7b17d02";
-      sha256 = "0bd83nd6jc2vsddwnb8w6gpw6qpfg449n6wb4dmk12ybmdhkwrvf";
-    };
-  }
-  {
-    goPackagePath = "github.com/inconshreveable/mousetrap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/inconshreveable/mousetrap";
-      rev = "v1.0.0";
-      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
-    };
-  }
-  {
-    goPackagePath = "github.com/kisielk/errcheck";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kisielk/errcheck";
-      rev = "v1.2.0";
-      sha256 = "0am6g10ipdxw84byscm7shda654882wjcbinq5c4696m6mhi2qrd";
-    };
-  }
-  {
-    goPackagePath = "github.com/kisielk/gotool";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kisielk/gotool";
-      rev = "v1.0.0";
-      sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
-    };
-  }
-  {
-    goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
-    fetch = {
-      type = "git";
-      url = "https://github.com/konsorten/go-windows-terminal-sequences";
-      rev = "v1.0.2";
-      sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-runewidth";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-runewidth";
-      rev = "b20a3daf6a39";
-      sha256 = "0crivpncmh22696d5cy7k15ll5yqfjcigk0xy73wb6g1q6vnfxs7";
-    };
-  }
-  {
-    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matttproud/golang_protobuf_extensions";
-      rev = "v1.0.1";
-      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
-    };
-  }
-  {
-    goPackagePath = "github.com/mna/pigeon";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mna/pigeon";
-      rev = "bb0192cfc2ae";
-      sha256 = "1yid3pm46hjszikbap2wbfh97vpnha0qncywlnm1mk1pzglfgdy9";
-    };
-  }
-  {
-    goPackagePath = "github.com/olekukonko/tablewriter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/olekukonko/tablewriter";
-      rev = "v0.0.1";
-      sha256 = "0hh95glg7d2md185r03wn52j2r33jc4zil0qvcrs66ka7bdxi7vj";
-    };
-  }
-  {
-    goPackagePath = "github.com/peterh/liner";
-    fetch = {
-      type = "git";
-      url = "https://github.com/peterh/liner";
-      rev = "bf27d3ba8e1d";
-      sha256 = "0xx9923l4a46kjd1wpscqw31p4am28xrhd17xgw1cnx06bznb36v";
-    };
-  }
-  {
-    goPackagePath = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev = "059132a15dd0";
-      sha256 = "0bxkbh2rq40kdk8i05am5np77cnskx3571v2k300j5mmj1rl1ijg";
-    };
-  }
-  {
-    goPackagePath = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev = "v1.0.0";
-      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_golang";
-      rev = "f30f42803563";
-      sha256 = "0d3a9igvpdx516wpvj3b1ki1c4n2lvp5ghvzpqk95j2fxzyyzcxg";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "5c3871d89910";
-      sha256 = "04psf81l9fjcwascsys428v03fx4fi894h7fhrj2vvcz723q57k0";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/common";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/common";
-      rev = "7e9e6cabbd39";
-      sha256 = "00nmyp6k6x53gl7csca6bja010wnxf2p2pxfph3y0l2ap44qb38w";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/procfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/procfs";
-      rev = "185b4288413d";
-      sha256 = "0d85429kdw5dgj5zhyiz1sq3i5691vj2gjnda93nnxxzx9acg8cv";
-    };
-  }
-  {
-    goPackagePath = "github.com/rcrowley/go-metrics";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rcrowley/go-metrics";
-      rev = "3113b8401b8a";
-      sha256 = "1m5q5dsvkqz809aag6dyan74wdrp69g2mb9killbv7z4ls2mlfr3";
-    };
-  }
-  {
-    goPackagePath = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev = "v1.4.1";
-      sha256 = "1m7ny9jkb98cxqhsp13xa5hnqh1s9f25x04q6arsala4zswsw33c";
-    };
-  }
-  {
-    goPackagePath = "github.com/spaolacci/murmur3";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spaolacci/murmur3";
-      rev = "f09979ecbc72";
-      sha256 = "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/cobra";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cobra";
-      rev = "fe5e611709b0";
-      sha256 = "1pn7g9jmhqc9yg6x02dgp4phiggnnxz8a11pv5y4vxhrvkjm6h71";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/pflag";
-      rev = "082b515c9490";
-      sha256 = "03jil8szw5hsp0x4pgzdxas2njqij2466p20q1ag18lmgncjl50m";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/objx";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/objx";
-      rev = "v0.1.1";
-      sha256 = "0iph0qmpyqg4kwv8jsx6a56a7hhqq8swrazv40ycxk9rzr0s8yls";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev = "v1.2.2";
-      sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
-    };
-  }
-  {
-    goPackagePath = "github.com/yashtewari/glob-intersection";
-    fetch = {
-      type = "git";
-      url = "https://github.com/yashtewari/glob-intersection";
-      rev = "5c77d914dd0b";
-      sha256 = "1mfdk6iwqbhikcccds81knqlrj1phf9pad39fs2y8bzr6n7nqfzz";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "c2843e01d9a2";
-      sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/lint";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/lint";
-      rev = "1baf3a9d7d67";
-      sha256 = "0aql4lb9cf2kcb9jx90bvpp9chrmic2y3fwfvdq76hq2qvr4818d";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "3b0461eec859";
-      sha256 = "0l00c8l0a8xnv6qdpwfzxxsr58jggacgzdrwiprrfx2xqm37b6d5";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "112230192c58";
-      sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "d0b11bdaac8a";
-      sha256 = "18yfsmw622l7gc5sqriv5qmck6903vvhivpzp8i3xfy3z33dybdl";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "v0.3.0";
-      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "5eefd052ad72";
-      sha256 = "1bgpq8j3a1mwsd9cbp9hqmb5ms6vp4b0a2xsrlpwrfpyswnyagi0";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/xerrors";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/xerrors";
-      rev = "a985d3407aa7";
-      sha256 = "00wzr5w8aadipgc3rkk8f11i41znskfj9ix5nhhaxyg7isrslgcj";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/genproto";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-genproto";
-      rev = "11092d34479b";
-      sha256 = "12qcrjq658zga5fj4n0wgm11pzpr3gafwg25cinl5qcq4p9cnl0r";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "20d25e280405";
-      sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/fsnotify.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/fsnotify.v1";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.1";
-      sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/development/tools/operator-sdk/default.nix b/nixpkgs/pkgs/development/tools/operator-sdk/default.nix
new file mode 100644
index 000000000000..79baecd74f55
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/operator-sdk/default.nix
@@ -0,0 +1,35 @@
+{ buildGoModule, go, lib, fetchFromGitHub, makeWrapper }:
+
+buildGoModule rec {
+  pname = "operator-sdk";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "operator-framework";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1p2ra7mqn7crip6sjgq2j49782ncvs4qahjwg6jk5rdvvi4hbyc7";
+  };
+
+  vendorSha256 = "0zy540cbfm1kfc5sp802a9a5l2gkpgqprn8mlh9zg4d4shni61wa";
+
+  doCheck = false;
+
+  subPackages = [ "cmd/operator-sdk" ];
+
+  buildInputs = [ go makeWrapper ];
+
+  # operator-sdk uses the go compiler at runtime
+  allowGoReference = true;
+  postFixup = ''
+    wrapProgram $out/bin/operator-sdk --prefix PATH : ${lib.makeBinPath [ go ]}
+  '';
+
+  meta = with lib; {
+    description = "SDK for building Kubernetes applications. Provides high level APIs, useful abstractions, and project scaffolding.";
+    homepage = "https://github.com/operator-framework/operator-sdk";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ arnarg ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/osslsigncode/default.nix b/nixpkgs/pkgs/development/tools/osslsigncode/default.nix
index a867e3850e2e..6924ec9e37a7 100644
--- a/nixpkgs/pkgs/development/tools/osslsigncode/default.nix
+++ b/nixpkgs/pkgs/development/tools/osslsigncode/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "osslsigncode";
-  version = "unstable-2019-07-25";
+  version = "unstable-2020-08-02";
 
   src = fetchFromGitHub {
     owner = "mtrojnar";
     repo = pname;
-    rev = "18810b7e0bb1d8e0d25b6c2565a065cf66bce5d7";
-    sha256 = "02jnbr3xdsb5dpll3k65080ryrfr7agawmjavwxd0v40w0an5yq8";
+    rev = "01b3fb5b542ed0b41e3860aeee7a85b735491ff2";
+    sha256 = "03ynm1ycbi86blglma3xiwadck8kc5yb0gawjzlhyv90jidn680l";
   };
 
   nativeBuildInputs = [ autoreconfHook libgsf pkgconfig openssl curl ];
@@ -24,8 +24,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/mtrojnar/osslsigncode";
     description = "OpenSSL based Authenticode signing for PE/MSI/Java CAB files";
     license = licenses.gpl3Plus;
-    maintainers = [ maintainers.mmahut ];
+    maintainers = with maintainers; [ mmahut ];
     platforms = platforms.all;
   };
 }
-
diff --git a/nixpkgs/pkgs/development/tools/out-of-tree/default.nix b/nixpkgs/pkgs/development/tools/out-of-tree/default.nix
index ff5a3ec1b54f..b902dd2cc406 100644
--- a/nixpkgs/pkgs/development/tools/out-of-tree/default.nix
+++ b/nixpkgs/pkgs/development/tools/out-of-tree/default.nix
@@ -14,6 +14,8 @@ buildGoModule rec {
 
   vendorSha256 = "0kg5c4h7xnwfcfshrh5n76xv98wzr73kxzr8q65iphsjimbxcpy3";
 
+  doCheck = false;
+
   postFixup = ''
     wrapProgram $out/bin/out-of-tree \
       --prefix PATH : "${stdenv.lib.makeBinPath [ qemu docker which ]}"
diff --git a/nixpkgs/pkgs/development/tools/packer/default.nix b/nixpkgs/pkgs/development/tools/packer/default.nix
index 382fda72a4cd..1fc2fcfe5bfa 100644
--- a/nixpkgs/pkgs/development/tools/packer/default.nix
+++ b/nixpkgs/pkgs/development/tools/packer/default.nix
@@ -1,7 +1,7 @@
 { stdenv, buildGoPackage, fetchFromGitHub }:
 buildGoPackage rec {
   pname = "packer";
-  version = "1.6.0";
+  version = "1.6.3";
 
   goPackagePath = "github.com/hashicorp/packer";
 
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "hashicorp";
     repo = "packer";
     rev = "v${version}";
-    sha256 = "0qddljg330i7059kvij84pjzz67g6qh1w2zcmsj6rv58ix8xsfx7";
+    sha256 = "0f4an5ghb6l83za077019bgndvpf2xdb3xn4ryqw1xf84hvk5vwx";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/tools/packet-cli/default.nix b/nixpkgs/pkgs/development/tools/packet-cli/default.nix
index 546b441db4bb..f7bcc8bf8f49 100644
--- a/nixpkgs/pkgs/development/tools/packet-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/packet-cli/default.nix
@@ -2,22 +2,27 @@
 
 buildGoModule rec {
   pname = "packet-cli";
-  version = "0.0.7";
+  version = "0.0.8";
 
   src = fetchFromGitHub {
     owner = "packethost";
     repo = pname;
     rev = version;
-    sha256 = "1ixdqq0xwy2l2m1w93rzqw5gfrzw7w03r42qab3n733m4jkf4ni1";
+    sha256 = "0ys6zyhyi65g0sj15pb6rslgbjgkh73y32gc0yvhfd6xmgzaxpxf";
   };
 
-  vendorSha256 = "10praxaiscxq4v3zknrabldxl7rpklkr5wdlwa5lxsx0if8mrvp7";
+  vendorSha256 = "1h9p3hrr61hwkhkh4qbw0ld3hd5xi75qm8rwfrpz5z06jba1ll25";
+
+  postInstall = ''
+    ln -s $out/bin/packet-cli $out/bin/packet
+  '';
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Official Packet CLI";
     homepage = "https://github.com/packethost/packet-cli";
     license = licenses.mit;
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/parinfer-rust/default.nix b/nixpkgs/pkgs/development/tools/parinfer-rust/default.nix
index d016d21b738c..f1627c7ed397 100644
--- a/nixpkgs/pkgs/development/tools/parinfer-rust/default.nix
+++ b/nixpkgs/pkgs/development/tools/parinfer-rust/default.nix
@@ -32,6 +32,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/eraserhd/parinfer-rust";
     license = licenses.isc;
     maintainers = with maintainers; [ eraserhd ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/parsing/bison/default.nix b/nixpkgs/pkgs/development/tools/parsing/bison/default.nix
index ef70962eddf9..ca422f931da0 100644
--- a/nixpkgs/pkgs/development/tools/parsing/bison/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/bison/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bison";
-  version = "3.6.2";
+  version = "3.7.1";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "16h8panwpljwdq902v9x7inpnks51fn0kqlbyqfjvpilv6md73p2";
+    sha256 = "04vx6sah3bnr3a5n9knw306sb3y41pjfl7k9ihbsimghkj1m5n8x";
   };
 
   nativeBuildInputs = [ m4 perl ] ++ stdenv.lib.optional stdenv.isSunOS help2man;
diff --git a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
index 3e09afd54bf8..b91acdca688e 100644
--- a/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
+++ b/nixpkgs/pkgs/development/tools/parsing/tree-sitter/default.nix
@@ -55,6 +55,10 @@ in rustPlatform.buildRustPackage {
     # needed for the tests
     rm -rf test/fixtures/grammars
     ln -s ${grammars} test/fixtures/grammars
+
+    # These functions do not appear in the source code
+    sed -i /_ts_query_context/d lib/binding_web/exports.json
+    sed -i /___assert_fail/d lib/binding_web/exports.json
   '';
 
   # Compile web assembly with emscripten. The --debug flag prevents us from
@@ -89,7 +93,6 @@ in rustPlatform.buildRustPackage {
       * Robust enough to provide useful results even in the presence of syntax errors
       * Dependency-free so that the runtime library (which is written in pure C) can be embedded in any application
     '';
-    platforms = lib.platforms.all;
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ Profpatsch ];
     # Darwin needs some more work with default libraries
diff --git a/nixpkgs/pkgs/development/tools/pet/default.nix b/nixpkgs/pkgs/development/tools/pet/default.nix
index d37c529ecf9b..4ed16d417466 100644
--- a/nixpkgs/pkgs/development/tools/pet/default.nix
+++ b/nixpkgs/pkgs/development/tools/pet/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0pnd89iqdj3f719xf4iy5r04n51d0rrrf0qb2zjirpw7vh7g82i9";
 
+  doCheck = false;
+
   subPackages = [ "." ];
 
   meta = with lib; {
@@ -22,4 +24,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ kalbasit ];
     platforms = platforms.linux ++ platforms.darwin;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/pgformatter/default.nix b/nixpkgs/pkgs/development/tools/pgformatter/default.nix
index c1cb8cea8a65..1cd9f9ea17ba 100644
--- a/nixpkgs/pkgs/development/tools/pgformatter/default.nix
+++ b/nixpkgs/pkgs/development/tools/pgformatter/default.nix
@@ -2,13 +2,13 @@
 
 perlPackages.buildPerlPackage rec {
   pname = "pgformatter";
-  version = "4.3";
+  version = "4.4";
 
   src = fetchFromGitHub {
     owner = "darold";
     repo = "pgFormatter";
     rev = "v${version}";
-    sha256 = "0n8ydj01nmnkd8glzjb0yrsyax1pmdfvaxb5xj4pkb2mf6zm94qy";
+    sha256 = "1sqjw6q005lws7qhkd26jqyb1xqmpcklzw5hk8paxxi8mzyjn0jp";
   };
 
   outputs = [ "out" ];
diff --git a/nixpkgs/pkgs/development/tools/pipenv/default.nix b/nixpkgs/pkgs/development/tools/pipenv/default.nix
index 5f9e122c16a9..3a6ea879e58b 100644
--- a/nixpkgs/pkgs/development/tools/pipenv/default.nix
+++ b/nixpkgs/pkgs/development/tools/pipenv/default.nix
@@ -6,7 +6,7 @@ with python3.pkgs;
 
 let
 
-  runtimeDeps = [
+  runtimeDeps = ps: with ps; [
     certifi
     setuptools
     pip
@@ -14,15 +14,15 @@ let
     virtualenv-clone
   ];
 
-  pythonEnv = python3.withPackages(ps: with ps; runtimeDeps);
+  pythonEnv = python3.withPackages runtimeDeps;
 
 in buildPythonApplication rec {
   pname = "pipenv";
-  version = "2020.6.2";
+  version = "2020.8.13";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "12s7c3f3k5v1szdhklsxwisf9v3dk4mb9fh7762afpgs8mrrmm3x";
+    sha256 = "eff0e10eadb330f612edfa5051d3d8e775e9e0e918c3c50361da703bd0daa035";
   };
 
   LC_ALL = "en_US.UTF-8";
@@ -36,7 +36,7 @@ in buildPythonApplication rec {
       --replace "sys.executable" "'${pythonEnv.interpreter}'"
   '';
 
-  propagatedBuildInputs = runtimeDeps;
+  propagatedBuildInputs = runtimeDeps python3.pkgs;
 
   doCheck = true;
   checkPhase = ''
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
index 50a0c3447bd4..cca876ca1e6b 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/default.nix
@@ -6,11 +6,7 @@
 let
   inherit (poetryLib) isCompatible readTOML moduleName;
 
-  # Poetry2nix version
-  version = "1.9.2";
-
   /* The default list of poetry2nix override overlays */
-  defaultPoetryOverrides = (import ./overrides.nix { inherit pkgs lib; });
   mkEvalPep508 = import ./pep508.nix {
     inherit lib poetryLib;
     stdenv = pkgs.stdenv;
@@ -22,6 +18,14 @@ let
   # Get license by id falling back to input string
   getLicenseBySpdxId = spdxId: spdxLicenses.${spdxId} or spdxId;
 
+  # Experimental withPlugins functionality
+  toPluginAble = (import ./plugins.nix { inherit pkgs lib; }).toPluginAble;
+in
+lib.makeScope pkgs.newScope (self: {
+
+  # Poetry2nix version
+  version = "1.12.0";
+
   /*
      Returns an attrset { python, poetryPackages, pyProject, poetryLock } for the given pyproject/lockfile.
   */
@@ -29,10 +33,11 @@ let
     { projectDir ? null
     , pyproject ? projectDir + "/pyproject.toml"
     , poetrylock ? projectDir + "/poetry.lock"
-    , overrides ? [ defaultPoetryOverrides ]
+    , overrides ? self.defaultPoetryOverrides
     , python ? pkgs.python3
     , pwd ? projectDir
     , preferWheels ? false
+    , __isBootstrap ? false  # Hack: Always add Poetry as a build input unless bootstrapping
     }@attrs:
     let
       poetryPkg = poetry.override { inherit python; };
@@ -77,6 +82,7 @@ let
                   value = self.mkPoetryDep (
                     pkgMeta // {
                       inherit pwd preferWheels;
+                      inherit __isBootstrap;
                       source = pkgMeta.source or null;
                       files = lockFiles.${name};
                       pythonPackages = self;
@@ -106,7 +112,9 @@ let
                   # The canonical name is setuptools-scm
                   setuptools-scm = super.setuptools_scm;
 
-                  inherit (hooks) pipBuildHook removePathDependenciesHook poetry2nixFixupHook;
+                  __toPluginAble = toPluginAble self;
+
+                  inherit (hooks) pipBuildHook removePathDependenciesHook poetry2nixFixupHook wheelUnpackHook;
                 }
             )
             # Null out any filtered packages, we don't want python.pkgs from nixpkgs
@@ -114,7 +122,7 @@ let
             # Create poetry2nix layer
             baseOverlay
           ] ++ # User provided overrides
-          overrides
+          (if builtins.typeOf overrides == "list" then overrides else [ overrides ])
         );
       packageOverrides = lib.foldr lib.composeExtensions (self: super: { }) overlays;
       py = python.override { inherit packageOverrides; self = py; };
@@ -137,7 +145,7 @@ let
     { projectDir ? null
     , pyproject ? projectDir + "/pyproject.toml"
     , poetrylock ? projectDir + "/poetry.lock"
-    , overrides ? [ defaultPoetryOverrides ]
+    , overrides ? self.defaultPoetryOverrides
     , pwd ? projectDir
     , python ? pkgs.python3
     , preferWheels ? false
@@ -145,19 +153,34 @@ let
     , editablePackageSources ? { }
     }:
     let
-      py = mkPoetryPackages (
+      py = self.mkPoetryPackages (
         {
           inherit pyproject poetrylock overrides python pwd preferWheels;
         }
       );
 
+      inherit (py) pyProject;
+
+      # Add executables from tool.poetry.scripts
+      scripts = pyProject.tool.poetry.scripts or { };
+      hasScripts = scripts != { };
+      scriptsPackage = import ./shell-scripts.nix {
+        inherit scripts lib;
+        inherit (py) python;
+      };
+
+      hasEditable = editablePackageSources != { };
       editablePackage = import ./editable.nix {
         inherit pkgs lib poetryLib editablePackageSources;
         inherit (py) pyProject python;
       };
 
     in
-    py.python.withPackages (_: py.poetryPackages ++ lib.optional (editablePackageSources != { }) editablePackage);
+    py.python.withPackages (
+      _: py.poetryPackages
+        ++ lib.optional hasEditable editablePackage
+        ++ lib.optional hasScripts scriptsPackage
+    );
 
   /* Creates a Python application from pyproject.toml and poetry.lock
 
@@ -168,19 +191,20 @@ let
   */
   mkPoetryApplication =
     { projectDir ? null
-    , src ? poetryLib.cleanPythonSources { src = projectDir; }
+    , src ? self.cleanPythonSources { src = projectDir; }
     , pyproject ? projectDir + "/pyproject.toml"
     , poetrylock ? projectDir + "/poetry.lock"
-    , overrides ? [ defaultPoetryOverrides ]
+    , overrides ? self.defaultPoetryOverrides
     , meta ? { }
     , python ? pkgs.python3
     , pwd ? projectDir
     , preferWheels ? false
+    , __isBootstrap ? false  # Hack: Always add Poetry as a build input unless bootstrapping
     , ...
     }@attrs:
     let
-      poetryPython = mkPoetryPackages {
-        inherit pyproject poetrylock overrides python pwd preferWheels;
+      poetryPython = self.mkPoetryPackages {
+        inherit pyproject poetrylock overrides python pwd preferWheels __isBootstrap;
       };
       py = poetryPython.python;
 
@@ -206,7 +230,7 @@ let
           (
             dep:
             let
-              pkg = py.pkgs."${dep}";
+              pkg = py.pkgs."${moduleName dep}";
               constraints = deps.${dep}.python or "";
               isCompat = compat constraints;
             in
@@ -265,29 +289,48 @@ let
     app;
 
   /* Poetry2nix CLI used to supplement SHA-256 hashes for git dependencies  */
-  cli = import ./cli.nix { inherit pkgs lib version; };
-in
-{
-  inherit mkPoetryEnv mkPoetryApplication mkPoetryPackages cli version;
+  cli = import ./cli.nix {
+    inherit pkgs lib;
+    inherit (self) version;
+  };
+
+  # inherit mkPoetryEnv mkPoetryApplication mkPoetryPackages;
 
   inherit (poetryLib) cleanPythonSources;
 
-  /*
-  The default list of poetry2nix override overlays
 
-  Can be overriden by calling defaultPoetryOverrides.overrideOverlay which takes an overlay function
+  /*
+  Create a new default set of overrides with the same structure as the built-in ones
   */
-  defaultPoetryOverrides = {
-    __functor = defaultPoetryOverrides;
-    overrideOverlay = fn: self: super:
+  mkDefaultPoetryOverrides = defaults: {
+    __functor = defaults;
+
+    extend = overlay:
+      let
+        composed = lib.foldr lib.composeExtensions overlay [ defaults ];
+      in
+      self.mkDefaultPoetryOverrides composed;
+
+    overrideOverlay = fn:
       let
-        defaultSet = defaultPoetryOverrides self super;
-        customSet = fn self super;
+        overlay = self: super:
+          let
+            defaultSet = defaults self super;
+            customSet = fn self super;
+          in
+          defaultSet // customSet;
       in
-      defaultSet // customSet;
+      self.mkDefaultPoetryOverrides overlay;
   };
 
   /*
+  The default list of poetry2nix override overlays
+
+  Can be overriden by calling defaultPoetryOverrides.overrideOverlay which takes an overlay function
+  */
+  defaultPoetryOverrides = self.mkDefaultPoetryOverrides (import ./overrides.nix { inherit pkgs lib; });
+
+  /*
   Convenience functions for specifying overlays with or without the poerty2nix default overrides
   */
   overrides = {
@@ -303,8 +346,8 @@ in
     combining it with poetry2nix default overrides
     */
     withDefaults = overlay: [
-      defaultPoetryOverrides
+      self.defaultPoetryOverrides
       overlay
     ];
   };
-}
+})
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix
index 001a3d09c6b9..e248a5e22359 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/default.nix
@@ -49,4 +49,16 @@ in
         } ./fixup-hook.sh
     ) { };
 
+  # When the "wheel" package itself is a wheel the nixpkgs hook (which pulls in "wheel") leads to infinite recursion
+  # It doesn't _really_ depend on wheel though, it just copies the wheel.
+  wheelUnpackHook = callPackage
+    ({}:
+      makeSetupHook
+        {
+          name = "wheel-unpack-hook.sh";
+          deps = [ ];
+        } ./wheel-unpack-hook.sh
+    ) { };
+
+
 }
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/wheel-unpack-hook.sh b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/wheel-unpack-hook.sh
new file mode 100644
index 000000000000..fca808a933ba
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/hooks/wheel-unpack-hook.sh
@@ -0,0 +1,18 @@
+# Setup hook to use in case a wheel is fetched
+echo "Sourcing wheel setup hook"
+
+wheelUnpackPhase(){
+    echo "Executing wheelUnpackPhase"
+    runHook preUnpack
+
+    mkdir -p dist
+    cp "$src" "dist/$(stripHash "$src")"
+
+#     runHook postUnpack # Calls find...?
+    echo "Finished executing wheelUnpackPhase"
+}
+
+if [ -z "${dontUseWheelUnpack-}" ] && [ -z "${unpackPhase-}" ]; then
+    echo "Using wheelUnpackPhase"
+    unpackPhase=wheelUnpackPhase
+fi
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
index 39233929abb9..bdd30cbffa87 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/lib.nix
@@ -154,7 +154,9 @@ let
     , pyProject
     }:
     let
-      buildSystem = lib.attrByPath [ "build-system" "build-backend" ] "" pyProject;
+      missingBuildBackendError = "No build-system.build-backend section in pyproject.toml. "
+        + "Add such a section as described in https://python-poetry.org/docs/pyproject/#poetry-and-pep-517";
+      buildSystem = lib.attrByPath [ "build-system" "build-backend" ] (throw missingBuildBackendError) pyProject;
       drvAttr = moduleName (builtins.elemAt (builtins.split "\\.|:" buildSystem) 0);
     in
     if buildSystem == "" then [ ] else (
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
index 20175f6bade4..2791d7dfcb40 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/mk-poetry-dep.nix
@@ -17,6 +17,7 @@
 , sourceSpec
 , supportedExtensions ? lib.importJSON ./extensions.json
 , preferWheels ? false
+, __isBootstrap ? false  # Hack: Always add Poetry as a build input unless bootstrapping
 , ...
 }:
 
@@ -46,10 +47,16 @@ pythonPackages.callPackage
       isGit = isSource && source.type == "git";
       isLocal = isSource && source.type == "directory";
       localDepPath = toPath source.url;
-      pyProject = poetryLib.readTOML (localDepPath + "/pyproject.toml");
-      buildSystemPkgs = poetryLib.getBuildSystemPkgs {
-        inherit pythonPackages pyProject;
-      };
+
+      buildSystemPkgs =
+        let
+          pyProjectPath = localDepPath + "/pyproject.toml";
+          pyProject = poetryLib.readTOML pyProjectPath;
+        in
+        if builtins.pathExists pyProjectPath then poetryLib.getBuildSystemPkgs {
+          inherit pythonPackages pyProject;
+        } else [ ];
+
       fileInfo =
         let
           isBdist = f: lib.strings.hasSuffix "whl" f.file;
@@ -106,6 +113,7 @@ pythonPackages.callPackage
         baseBuildInputs
         ++ lib.optional (!isSource) (getManyLinuxDeps fileInfo.name).pkg
         ++ lib.optional isLocal buildSystemPkgs
+        ++ lib.optional (!__isBootstrap) [ pythonPackages.poetry ]
       );
 
       propagatedBuildInputs =
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
index 62f2ed6e3065..d722ec71b9af 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/overrides.nix
@@ -12,6 +12,40 @@ self: super:
     }
   );
 
+  ansible = super.ansible.overridePythonAttrs (
+    old: {
+
+      prePatch = pkgs.python.pkgs.ansible.prePatch or "";
+
+      postInstall = pkgs.python.pkgs.ansible.postInstall or "";
+
+      # Inputs copied from nixpkgs as ansible doesn't specify it's dependencies
+      # in a correct manner.
+      propagatedBuildInputs = old.propagatedBuildInputs ++ [
+        self.pycrypto
+        self.paramiko
+        self.jinja2
+        self.pyyaml
+        self.httplib2
+        self.six
+        self.netaddr
+        self.dnspython
+        self.jmespath
+        self.dopy
+        self.ncclient
+      ];
+    }
+  );
+
+  ansible-lint = super.ansible-lint.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ self.setuptools-scm-git-archive ];
+      preBuild = ''
+        export HOME=$(mktemp -d)
+      '';
+    }
+  );
+
   astroid = super.astroid.overridePythonAttrs (
     old: rec {
       buildInputs = old.buildInputs ++ [ self.pytest-runner ];
@@ -24,7 +58,7 @@ self: super:
       nativeBuildInputs = old.nativeBuildInputs ++ [
         pkgs.pkgconfig
       ];
-      buildInputs = old.buildInputs ++ [ pkgs.ffmpeg ];
+      buildInputs = old.buildInputs ++ [ pkgs.ffmpeg_4 ];
     }
   );
 
@@ -135,6 +169,15 @@ self: super:
     }
   );
 
+  h3 = super.h3.overridePythonAttrs (
+    old: {
+      preBuild = (old.preBuild or "") + ''
+        substituteInPlace h3/h3.py \
+          --replace "'{}/{}'.format(_dirname, libh3_path)" '"${pkgs.h3}/lib/libh3${pkgs.stdenv.hostPlatform.extensions.sharedLibrary}"'
+      '';
+    }
+  );
+
   h5py = super.h5py.overridePythonAttrs (
     old:
     if old.format != "wheel" then rec {
@@ -241,8 +284,7 @@ self: super:
   kiwisolver = super.kiwisolver.overridePythonAttrs (
     old: {
       buildInputs = old.buildInputs ++ [
-        # cppy is at the time of writing not in nixpkgs
-        (self.cppy or null)
+        self.cppy
       ];
     }
   );
@@ -255,6 +297,11 @@ self: super:
     }
   );
 
+  libvirt-python = super.libvirt-python.overridePythonAttrs ({ nativeBuildInputs ? [ ], ... }: {
+    nativeBuildInputs = nativeBuildInputs ++ [ pkgs.pkgconfig ];
+    propagatedBuildInputs = [ pkgs.libvirt ];
+  });
+
   llvmlite = super.llvmlite.overridePythonAttrs (
     old: {
       nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.llvm ];
@@ -320,6 +367,13 @@ self: super:
         pkgs.pkgconfig
       ];
 
+      postPatch = ''
+        cat > setup.cfg <<EOF
+        [libs]
+        system_freetype = True
+        EOF
+      '';
+
       propagatedBuildInputs = old.propagatedBuildInputs ++ [
         pkgs.libpng
         pkgs.freetype
@@ -345,6 +399,31 @@ self: super:
     }
   );
 
+  mip = super.mip.overridePythonAttrs (
+    old: {
+      nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.autoPatchelfHook ];
+
+      buildInputs = old.buildInputs ++ [ pkgs.zlib self.cppy ];
+    }
+  );
+
+  molecule =
+    if lib.versionOlder super.molecule.version "3.0.0" then (super.molecule.overridePythonAttrs (
+      old: {
+        patches = (old.patches or [ ]) ++ [
+          # Fix build with more recent setuptools versions
+          (pkgs.fetchpatch {
+            url = "https://github.com/ansible-community/molecule/commit/c9fee498646a702c77b5aecf6497cff324acd056.patch";
+            sha256 = "1g1n45izdz0a3c9akgxx14zhdw6c3dkb48j8pq64n82fa6ndl1b7";
+            excludes = [ "pyproject.toml" ];
+          })
+        ];
+        buildInputs = old.buildInputs ++ [ self.setuptools-scm-git-archive ];
+      }
+    )) else super.molecule.overridePythonAttrs (old: {
+      buildInputs = old.buildInputs ++ [ self.setuptools-scm-git-archive ];
+    });
+
   netcdf4 = super.netcdf4.overridePythonAttrs (
     old: {
       buildInputs = old.buildInputs ++ [
@@ -439,12 +518,16 @@ self: super:
 
   psycopg2 = super.psycopg2.overridePythonAttrs (
     old: {
+      buildInputs = old.buildInputs
+        ++ lib.optional stdenv.isDarwin pkgs.openssl;
       nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.postgresql ];
     }
   );
 
   psycopg2-binary = super.psycopg2-binary.overridePythonAttrs (
     old: {
+      buildInputs = old.buildInputs
+        ++ lib.optional stdenv.isDarwin pkgs.openssl;
       nativeBuildInputs = old.nativeBuildInputs ++ [ pkgs.postgresql ];
     }
   );
@@ -454,7 +537,14 @@ self: super:
       old:
       let
         parseMinor = drv: lib.concatStringsSep "." (lib.take 2 (lib.splitVersion drv.version));
-        _arrow-cpp = pkgs.arrow-cpp.override { inherit (self) python; };
+
+        # Starting with nixpkgs revision f149c7030a7, pyarrow takes "python3" as an argument
+        # instead of "python". Below we inspect function arguments to maintain compatibilitiy.
+        _arrow-cpp = pkgs.arrow-cpp.override (
+          builtins.intersectAttrs
+            (lib.functionArgs pkgs.arrow-cpp.override) { python = self.python; python3 = self.python; }
+        );
+
         ARROW_HOME = _arrow-cpp;
         arrowCppVersion = parseMinor pkgs.arrow-cpp;
         pyArrowVersion = parseMinor super.pyarrow;
@@ -595,6 +685,12 @@ self: super:
     }
   );
 
+  python-ldap = super.python-ldap.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ pkgs.openldap pkgs.cyrus_sasl ];
+    }
+  );
+
   pytoml = super.pytoml.overridePythonAttrs (
     old: {
       doCheck = false;
@@ -728,6 +824,12 @@ self: super:
     }
   );
 
+  ffmpeg-python = super.ffmpeg-python.overridePythonAttrs (
+    old: {
+      buildInputs = old.buildInputs ++ [ self.pytest-runner ];
+    }
+  );
+
   python-prctl = super.python-prctl.overridePythonAttrs (
     old: {
       buildInputs = old.buildInputs ++ [
@@ -841,6 +943,14 @@ self: super:
     }
   );
 
+  tensorflow = super.tensorflow.overridePythonAttrs (
+    old: {
+      postInstall = ''
+        rm $out/bin/tensorboard
+      '';
+    }
+  );
+
   tensorpack = super.tensorpack.overridePythonAttrs (
     old: {
       postPatch = ''
@@ -849,6 +959,9 @@ self: super:
     }
   );
 
+  # nix uses a dash, poetry uses an underscore
+  typing_extensions = super.typing_extensions or self.typing-extensions;
+
   urwidtrees = super.urwidtrees.overridePythonAttrs (
     old: {
       propagatedBuildInputs = old.propagatedBuildInputs ++ [
@@ -865,6 +978,16 @@ self: super:
     }
   );
 
+  vispy = super.vispy.overrideAttrs (
+    old: {
+      inherit (pkgs.python3.pkgs.vispy) patches;
+      nativeBuildInputs = old.nativeBuildInputs ++ [
+        self.cython
+        self.setuptools-scm-git-archive
+      ];
+    }
+  );
+
   uvloop = super.uvloop.overridePythonAttrs (
     old: {
       buildInputs = old.buildInputs ++ lib.optionals stdenv.isDarwin [
@@ -874,17 +997,34 @@ self: super:
     }
   );
 
+
   # Stop infinite recursion by using bootstrapped pkg from nixpkgs
-  wheel = (
-    pkgs.python3.pkgs.override {
+  bootstrapped-pip = super.bootstrapped-pip.override {
+    wheel = (pkgs.python3.pkgs.override {
       python = self.python;
-    }
-  ).wheel.overridePythonAttrs (
-    old:
-    if old.format == "other" then old else {
-      inherit (super.wheel) pname name version src;
-    }
-  );
+    }).wheel;
+  };
+  wheel =
+    let
+      isWheel = super.wheel.src.isWheel or false;
+      # If "wheel" is a pre-built binary wheel
+      wheelPackage = super.buildPythonPackage {
+        inherit (super.wheel) pname name version src;
+        inherit (pkgs.python3.pkgs.wheel) meta;
+        format = "wheel";
+      };
+      # If "wheel" is built from source
+      sourcePackage = (
+        pkgs.python3.pkgs.override {
+          python = self.python;
+        }
+      ).wheel.overridePythonAttrs (
+        old: {
+          inherit (super.wheel) pname name version src;
+        }
+      );
+    in
+    if isWheel then wheelPackage else sourcePackage;
 
   zipp =
     (
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix
index 7135cace2878..ffa78c5dc017 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pep425.nix
@@ -62,7 +62,7 @@ let
   selectWheel = files:
     let
       filesWithoutSources = (builtins.filter (x: hasSuffix ".whl" x.file) files);
-      isPyAbiCompatible = pyabi: x: x == "none" || lib.hasPrefix pyabi x || (
+      isPyAbiCompatible = pyabi: x: x == "none" || lib.hasPrefix pyabi x || lib.hasPrefix x pyabi || (
         # The CPython stable ABI is abi3 as in the shared library suffix.
         python.passthru.implementation == "cpython" &&
           builtins.elemAt (lib.splitString "." python.version) 0 == "3" &&
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix
index b41b6e4a9116..d06a1c1d6ae6 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/default.nix
@@ -7,6 +7,9 @@ poetry2nix.mkPoetryApplication {
 
   projectDir = ./.;
 
+  # Don't include poetry in inputs
+  __isBootstrap = true;
+
   src = fetchFromGitHub (lib.importJSON ./src.json);
 
   # "Vendor" dependencies (for build-system support)
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock
index ce1771856814..1ec0c9260d2e 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/poetry.lock
@@ -113,7 +113,7 @@ description = "Python package for providing Mozilla's CA Bundle."
 name = "certifi"
 optional = false
 python-versions = "*"
-version = "2020.4.5.2"
+version = "2020.6.20"
 
 [[package]]
 category = "main"
@@ -160,7 +160,7 @@ clikit = ">=0.4.0,<0.5.0"
 [[package]]
 category = "dev"
 description = "Composable command line interface toolkit"
-marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" or python_version >= \"3.6\" and python_version < \"4.0\""
+marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" or python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.6\" and python_version < \"4.0\""
 name = "click"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
@@ -169,7 +169,7 @@ version = "7.1.2"
 [[package]]
 category = "dev"
 description = "Composable command line interface toolkit"
-marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
+marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
 name = "click"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
@@ -253,7 +253,7 @@ description = "Code coverage measurement for Python"
 name = "coverage"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4"
-version = "5.1"
+version = "5.2"
 
 [package.extras]
 toml = ["toml"]
@@ -267,10 +267,6 @@ optional = false
 python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
 version = "2.8"
 
-[package.dependencies]
-cffi = ">=1.8,<1.11.3 || >1.11.3"
-six = ">=1.4.1"
-
 [package.dependencies.enum34]
 python = "<3"
 version = "*"
@@ -279,6 +275,10 @@ version = "*"
 python = "<3"
 version = "*"
 
+[package.dependencies]
+cffi = ">=1.8,<1.11.3 || >1.11.3"
+six = ">=1.4.1"
+
 [package.extras]
 docs = ["sphinx (>=1.6.5,<1.8.0 || >1.8.0)", "sphinx-rtd-theme"]
 docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
@@ -293,7 +293,7 @@ marker = "python_version >= \"2.7\" and python_version < \"2.8\" and (sys_platfo
 name = "cryptography"
 optional = false
 python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*"
-version = "2.9.2"
+version = "3.0"
 
 [package.dependencies]
 cffi = ">=1.8,<1.11.3 || >1.11.3"
@@ -308,10 +308,11 @@ python = "<3"
 version = "*"
 
 [package.extras]
-docs = ["sphinx (>=1.6.5,<1.8.0 || >1.8.0)", "sphinx-rtd-theme"]
+docs = ["sphinx (>=1.6.5,<1.8.0 || >1.8.0,<3.1.0 || >3.1.0,<3.1.1 || >3.1.1)", "sphinx-rtd-theme"]
 docstest = ["doc8", "pyenchant (>=1.6.11)", "twine (>=1.12.0)", "sphinxcontrib-spelling (>=4.0.1)"]
 idna = ["idna (>=2.1)"]
-pep8test = ["flake8", "flake8-import-order", "pep8-naming"]
+pep8test = ["black", "flake8", "flake8-import-order", "pep8-naming"]
+ssh = ["bcrypt (>=3.1.5)"]
 test = ["pytest (>=3.6.0,<3.9.0 || >3.9.0,<3.9.1 || >3.9.1,<3.9.2 || >3.9.2)", "pretend", "iso8601", "pytz", "hypothesis (>=1.11.4,<3.79.2 || >3.79.2)"]
 
 [[package]]
@@ -320,7 +321,7 @@ description = "Distribution utilities"
 name = "distlib"
 optional = false
 python-versions = "*"
-version = "0.3.0"
+version = "0.3.1"
 
 [[package]]
 category = "main"
@@ -418,6 +419,24 @@ genshi = ["genshi"]
 lxml = ["lxml"]
 
 [[package]]
+category = "main"
+description = "HTML parser based on the WHATWG HTML specification"
+name = "html5lib"
+optional = false
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
+version = "1.1"
+
+[package.dependencies]
+six = ">=1.9"
+webencodings = "*"
+
+[package.extras]
+all = ["genshi", "chardet (>=2.2)", "lxml"]
+chardet = ["chardet (>=2.2)"]
+genshi = ["genshi"]
+lxml = ["lxml"]
+
+[[package]]
 category = "dev"
 description = "HTTP client mock for Python"
 name = "httpretty"
@@ -434,7 +453,7 @@ description = "File identification library for Python"
 name = "identify"
 optional = false
 python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
-version = "1.4.19"
+version = "1.4.24"
 
 [package.extras]
 license = ["editdistance"]
@@ -453,7 +472,7 @@ description = "Internationalized Domain Names in Applications (IDNA)"
 name = "idna"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-version = "2.9"
+version = "2.10"
 
 [[package]]
 category = "main"
@@ -488,10 +507,6 @@ python-versions = ">=2.7,!=3.0,!=3.1,!=3.2,!=3.3"
 version = "1.0.2"
 
 [package.dependencies]
-[package.dependencies.pathlib2]
-python = "<3"
-version = "*"
-
 [package.dependencies.typing]
 python = "<3.5"
 version = "*"
@@ -503,17 +518,13 @@ marker = "python_version < \"3.7\""
 name = "importlib-resources"
 optional = false
 python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
-version = "2.0.0"
+version = "3.0.0"
 
 [package.dependencies]
 [package.dependencies.contextlib2]
 python = "<3"
 version = "*"
 
-[package.dependencies.importlib-metadata]
-python = "<3.8"
-version = "*"
-
 [package.dependencies.pathlib2]
 python = "<3"
 version = "*"
@@ -557,7 +568,7 @@ dev = ["testpath"]
 [[package]]
 category = "dev"
 description = "A very fast and expressive template engine."
-marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
+marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
 name = "jinja2"
 optional = false
 python-versions = "*"
@@ -572,7 +583,7 @@ i18n = ["Babel (>=0.8)"]
 [[package]]
 category = "dev"
 description = "A very fast and expressive template engine."
-marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
+marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" or python_version >= \"2.7.9\" and python_version < \"2.8.0\""
 name = "jinja2"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
@@ -664,7 +675,7 @@ testing = ["pytest (>=3.5,<3.7.3 || >3.7.3)", "pytest-checkdocs (>=1.2.3)", "pyt
 [[package]]
 category = "dev"
 description = "Python LiveReload is an awesome tool for web developers"
-marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
+marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" or python_version >= \"2.7.9\" and python_version < \"2.8.0\""
 name = "livereload"
 optional = false
 python-versions = "*"
@@ -673,7 +684,11 @@ version = "2.6.2"
 [package.dependencies]
 six = "*"
 
-[package.dependencies.tornado]
+[[package.dependencies.tornado]]
+python = ">=2.7,<2.8"
+version = "<6"
+
+[[package.dependencies.tornado]]
 python = ">=2.8"
 version = "*"
 
@@ -758,7 +773,7 @@ markdown = "*"
 [[package]]
 category = "dev"
 description = "Safely add untrusted strings to HTML/XML markup."
-marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
+marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" or python_version >= \"2.7.9\" and python_version < \"2.8.0\""
 name = "markupsafe"
 optional = false
 python-versions = ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*"
@@ -851,7 +866,7 @@ marker = "python_version >= \"3.5\""
 name = "more-itertools"
 optional = false
 python-versions = ">=3.5"
-version = "8.3.0"
+version = "8.4.0"
 
 [[package]]
 category = "main"
@@ -1050,7 +1065,7 @@ description = "library with cross-python path, ini-parsing, io, code, log facili
 name = "py"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
-version = "1.8.1"
+version = "1.9.0"
 
 [[package]]
 category = "main"
@@ -1256,11 +1271,11 @@ description = "Pytest plugin for measuring coverage."
 name = "pytest-cov"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
-version = "2.9.0"
+version = "2.10.0"
 
 [package.dependencies]
 coverage = ">=4.4"
-pytest = ">=3.6"
+pytest = ">=4.6"
 
 [package.extras]
 testing = ["fields", "hunter", "process-tests (2.0.2)", "six", "pytest-xdist", "virtualenv"]
@@ -1289,7 +1304,7 @@ description = "pytest-sugar is a plugin for pytest that changes the default look
 name = "pytest-sugar"
 optional = false
 python-versions = "*"
-version = "0.9.3"
+version = "0.9.4"
 
 [package.dependencies]
 packaging = ">=14.1"
@@ -1328,7 +1343,7 @@ marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_v
 name = "regex"
 optional = false
 python-versions = "*"
-version = "2020.6.8"
+version = "2020.7.14"
 
 [[package]]
 category = "main"
@@ -1354,7 +1369,7 @@ description = "Python HTTP for Humans."
 name = "requests"
 optional = false
 python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*"
-version = "2.23.0"
+version = "2.24.0"
 
 [package.dependencies]
 certifi = ">=2017.4.17"
@@ -1491,7 +1506,7 @@ version = ">=3.6,<4.0"
 [[package]]
 category = "dev"
 description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed."
-marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
+marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\" and python_full_version >= \"2.7.9\" and python_full_version < \"2.8.0\" or python_version >= \"3.4\" and python_version < \"4.0\""
 name = "tornado"
 optional = false
 python-versions = ">= 2.7, !=3.0.*, !=3.1.*, !=3.2.*, != 3.3.*"
@@ -1533,7 +1548,7 @@ description = "tox is a generic virtualenv management and test command line tool
 name = "tox"
 optional = false
 python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7"
-version = "3.15.2"
+version = "3.17.1"
 
 [package.dependencies]
 colorama = ">=0.4.1"
@@ -1560,7 +1575,7 @@ marker = "python_version >= \"2.7.9\" and python_version < \"2.8.0\" or python_v
 name = "tqdm"
 optional = false
 python-versions = ">=2.6, !=3.0.*, !=3.1.*"
-version = "4.46.1"
+version = "4.48.0"
 
 [package.extras]
 dev = ["py-make (>=0.1.0)", "twine", "argopt", "pydoc-markdown"]
@@ -1580,8 +1595,8 @@ description = "Type Hints for Python"
 marker = "python_version >= \"2.7\" and python_version < \"2.8\" or python_version >= \"3.4\" and python_version < \"3.5\" or python_version < \"3.5\""
 name = "typing"
 optional = false
-python-versions = "*"
-version = "3.7.4.1"
+python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
+version = "3.7.4.3"
 
 [[package]]
 category = "main"
@@ -1635,11 +1650,11 @@ description = "Virtual Python Environment builder"
 name = "virtualenv"
 optional = false
 python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
-version = "20.0.21"
+version = "20.0.27"
 
 [package.dependencies]
 appdirs = ">=1.4.3,<2"
-distlib = ">=0.3.0,<1"
+distlib = ">=0.3.1,<1"
 filelock = ">=3.0.0,<4"
 six = ">=1.9.0,<2"
 
@@ -1649,11 +1664,11 @@ version = ">=0.12,<2"
 
 [package.dependencies.importlib-resources]
 python = "<3.7"
-version = ">=1.0,<2"
+version = ">=1.0"
 
 [package.extras]
 docs = ["sphinx (>=3)", "sphinx-argparse (>=0.2.5)", "sphinx-rtd-theme (>=0.4.3)", "towncrier (>=19.9.0rc1)", "proselint (>=0.10.2)"]
-testing = ["pytest (>=4)", "coverage (>=5)", "coverage-enable-subprocess (>=1)", "pytest-xdist (>=1.31.0)", "pytest-mock (>=2)", "pytest-env (>=0.6.2)", "pytest-randomly (>=1)", "pytest-timeout", "packaging (>=20.0)", "xonsh (>=0.9.16)"]
+testing = ["pytest (>=4)", "coverage (>=5)", "coverage-enable-subprocess (>=1)", "pytest-xdist (>=1.31.0)", "pytest-mock (>=2)", "pytest-env (>=0.6.2)", "pytest-randomly (>=1)", "pytest-timeout (>=1)", "pytest-freezegun (>=0.4.1)", "flaky (>=3)", "packaging (>=20.0)", "xonsh (>=0.9.16)"]
 
 [[package]]
 category = "dev"
@@ -1662,7 +1677,7 @@ marker = "python_version < \"3.5\" or python_version >= \"3.5\""
 name = "wcwidth"
 optional = false
 python-versions = "*"
-version = "0.2.4"
+version = "0.2.5"
 
 [package.dependencies]
 [package.dependencies."backports.functools-lru-cache"]
@@ -1733,8 +1748,8 @@ cachy = [
     {file = "cachy-0.3.0.tar.gz", hash = "sha256:186581f4ceb42a0bbe040c407da73c14092379b1e4c0e327fdb72ae4a9b269b1"},
 ]
 certifi = [
-    {file = "certifi-2020.4.5.2-py2.py3-none-any.whl", hash = "sha256:9cd41137dc19af6a5e03b630eefe7d1f458d964d406342dd3edf625839b944cc"},
-    {file = "certifi-2020.4.5.2.tar.gz", hash = "sha256:5ad7e9a056d25ffa5082862e36f119f7f7cec6457fa07ee2f8c339814b80c9b1"},
+    {file = "certifi-2020.6.20-py2.py3-none-any.whl", hash = "sha256:8fc0819f1f30ba15bdb34cceffb9ef04d99f420f68eb75d901e9560b8749fc41"},
+    {file = "certifi-2020.6.20.tar.gz", hash = "sha256:5930595817496dd21bb8dc35dad090f1c2cd0adfaf21204bf6732ca5d8ee34d3"},
 ]
 cffi = [
     {file = "cffi-1.14.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:1cae98a7054b5c9391eb3249b86e0e99ab1e02bb0cc0575da191aedadbdf4384"},
@@ -1835,37 +1850,40 @@ coverage = [
     {file = "coverage-4.5.4-cp37-cp37m-win_amd64.whl", hash = "sha256:23cc09ed395b03424d1ae30dcc292615c1372bfba7141eb85e11e50efaa6b351"},
     {file = "coverage-4.5.4-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:141f08ed3c4b1847015e2cd62ec06d35e67a3ac185c26f7635f4406b90afa9c5"},
     {file = "coverage-4.5.4.tar.gz", hash = "sha256:e07d9f1a23e9e93ab5c62902833bf3e4b1f65502927379148b6622686223125c"},
-    {file = "coverage-5.1-cp27-cp27m-macosx_10_12_x86_64.whl", hash = "sha256:0cb4be7e784dcdc050fc58ef05b71aa8e89b7e6636b99967fadbdba694cf2b65"},
-    {file = "coverage-5.1-cp27-cp27m-macosx_10_13_intel.whl", hash = "sha256:c317eaf5ff46a34305b202e73404f55f7389ef834b8dbf4da09b9b9b37f76dd2"},
-    {file = "coverage-5.1-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:b83835506dfc185a319031cf853fa4bb1b3974b1f913f5bb1a0f3d98bdcded04"},
-    {file = "coverage-5.1-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:5f2294dbf7875b991c381e3d5af2bcc3494d836affa52b809c91697449d0eda6"},
-    {file = "coverage-5.1-cp27-cp27m-win32.whl", hash = "sha256:de807ae933cfb7f0c7d9d981a053772452217df2bf38e7e6267c9cbf9545a796"},
-    {file = "coverage-5.1-cp27-cp27m-win_amd64.whl", hash = "sha256:bf9cb9a9fd8891e7efd2d44deb24b86d647394b9705b744ff6f8261e6f29a730"},
-    {file = "coverage-5.1-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:acf3763ed01af8410fc36afea23707d4ea58ba7e86a8ee915dfb9ceff9ef69d0"},
-    {file = "coverage-5.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:dec5202bfe6f672d4511086e125db035a52b00f1648d6407cc8e526912c0353a"},
-    {file = "coverage-5.1-cp35-cp35m-macosx_10_12_x86_64.whl", hash = "sha256:7a5bdad4edec57b5fb8dae7d3ee58622d626fd3a0be0dfceda162a7035885ecf"},
-    {file = "coverage-5.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:1601e480b9b99697a570cea7ef749e88123c04b92d84cedaa01e117436b4a0a9"},
-    {file = "coverage-5.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:dbe8c6ae7534b5b024296464f387d57c13caa942f6d8e6e0346f27e509f0f768"},
-    {file = "coverage-5.1-cp35-cp35m-win32.whl", hash = "sha256:a027ef0492ede1e03a8054e3c37b8def89a1e3c471482e9f046906ba4f2aafd2"},
-    {file = "coverage-5.1-cp35-cp35m-win_amd64.whl", hash = "sha256:0e61d9803d5851849c24f78227939c701ced6704f337cad0a91e0972c51c1ee7"},
-    {file = "coverage-5.1-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:2d27a3f742c98e5c6b461ee6ef7287400a1956c11421eb574d843d9ec1f772f0"},
-    {file = "coverage-5.1-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:66460ab1599d3cf894bb6baee8c684788819b71a5dc1e8fa2ecc152e5d752019"},
-    {file = "coverage-5.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:5c542d1e62eece33c306d66fe0a5c4f7f7b3c08fecc46ead86d7916684b36d6c"},
-    {file = "coverage-5.1-cp36-cp36m-win32.whl", hash = "sha256:2742c7515b9eb368718cd091bad1a1b44135cc72468c731302b3d641895b83d1"},
-    {file = "coverage-5.1-cp36-cp36m-win_amd64.whl", hash = "sha256:dead2ddede4c7ba6cb3a721870f5141c97dc7d85a079edb4bd8d88c3ad5b20c7"},
-    {file = "coverage-5.1-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:01333e1bd22c59713ba8a79f088b3955946e293114479bbfc2e37d522be03355"},
-    {file = "coverage-5.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:e1ea316102ea1e1770724db01998d1603ed921c54a86a2efcb03428d5417e489"},
-    {file = "coverage-5.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:adeb4c5b608574a3d647011af36f7586811a2c1197c861aedb548dd2453b41cd"},
-    {file = "coverage-5.1-cp37-cp37m-win32.whl", hash = "sha256:782caea581a6e9ff75eccda79287daefd1d2631cc09d642b6ee2d6da21fc0a4e"},
-    {file = "coverage-5.1-cp37-cp37m-win_amd64.whl", hash = "sha256:00f1d23f4336efc3b311ed0d807feb45098fc86dee1ca13b3d6768cdab187c8a"},
-    {file = "coverage-5.1-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:402e1744733df483b93abbf209283898e9f0d67470707e3c7516d84f48524f55"},
-    {file = "coverage-5.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:a3f3654d5734a3ece152636aad89f58afc9213c6520062db3978239db122f03c"},
-    {file = "coverage-5.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:6402bd2fdedabbdb63a316308142597534ea8e1895f4e7d8bf7476c5e8751fef"},
-    {file = "coverage-5.1-cp38-cp38-win32.whl", hash = "sha256:8fa0cbc7ecad630e5b0f4f35b0f6ad419246b02bc750de7ac66db92667996d24"},
-    {file = "coverage-5.1-cp38-cp38-win_amd64.whl", hash = "sha256:79a3cfd6346ce6c13145731d39db47b7a7b859c0272f02cdb89a3bdcbae233a0"},
-    {file = "coverage-5.1-cp39-cp39-win32.whl", hash = "sha256:a82b92b04a23d3c8a581fc049228bafde988abacba397d57ce95fe95e0338ab4"},
-    {file = "coverage-5.1-cp39-cp39-win_amd64.whl", hash = "sha256:bb28a7245de68bf29f6fb199545d072d1036a1917dca17a1e75bbb919e14ee8e"},
-    {file = "coverage-5.1.tar.gz", hash = "sha256:f90bfc4ad18450c80b024036eaf91e4a246ae287701aaa88eaebebf150868052"},
+    {file = "coverage-5.2-cp27-cp27m-macosx_10_13_intel.whl", hash = "sha256:d9ad0a988ae20face62520785ec3595a5e64f35a21762a57d115dae0b8fb894a"},
+    {file = "coverage-5.2-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:4bb385a747e6ae8a65290b3df60d6c8a692a5599dc66c9fa3520e667886f2e10"},
+    {file = "coverage-5.2-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:9702e2cb1c6dec01fb8e1a64c015817c0800a6eca287552c47a5ee0ebddccf62"},
+    {file = "coverage-5.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:42fa45a29f1059eda4d3c7b509589cc0343cd6bbf083d6118216830cd1a51613"},
+    {file = "coverage-5.2-cp27-cp27m-win32.whl", hash = "sha256:41d88736c42f4a22c494c32cc48a05828236e37c991bd9760f8923415e3169e4"},
+    {file = "coverage-5.2-cp27-cp27m-win_amd64.whl", hash = "sha256:bbb387811f7a18bdc61a2ea3d102be0c7e239b0db9c83be7bfa50f095db5b92a"},
+    {file = "coverage-5.2-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:3740b796015b889e46c260ff18b84683fa2e30f0f75a171fb10d2bf9fb91fc70"},
+    {file = "coverage-5.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:ebf2431b2d457ae5217f3a1179533c456f3272ded16f8ed0b32961a6d90e38ee"},
+    {file = "coverage-5.2-cp35-cp35m-macosx_10_13_x86_64.whl", hash = "sha256:d54d7ea74cc00482a2410d63bf10aa34ebe1c49ac50779652106c867f9986d6b"},
+    {file = "coverage-5.2-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:87bdc8135b8ee739840eee19b184804e5d57f518578ffc797f5afa2c3c297913"},
+    {file = "coverage-5.2-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:ed9a21502e9223f563e071759f769c3d6a2e1ba5328c31e86830368e8d78bc9c"},
+    {file = "coverage-5.2-cp35-cp35m-win32.whl", hash = "sha256:509294f3e76d3f26b35083973fbc952e01e1727656d979b11182f273f08aa80b"},
+    {file = "coverage-5.2-cp35-cp35m-win_amd64.whl", hash = "sha256:ca63dae130a2e788f2b249200f01d7fa240f24da0596501d387a50e57aa7075e"},
+    {file = "coverage-5.2-cp36-cp36m-macosx_10_13_x86_64.whl", hash = "sha256:5c74c5b6045969b07c9fb36b665c9cac84d6c174a809fc1b21bdc06c7836d9a0"},
+    {file = "coverage-5.2-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:c32aa13cc3fe86b0f744dfe35a7f879ee33ac0a560684fef0f3e1580352b818f"},
+    {file = "coverage-5.2-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:1e58fca3d9ec1a423f1b7f2aa34af4f733cbfa9020c8fe39ca451b6071237405"},
+    {file = "coverage-5.2-cp36-cp36m-win32.whl", hash = "sha256:3b2c34690f613525672697910894b60d15800ac7e779fbd0fccf532486c1ba40"},
+    {file = "coverage-5.2-cp36-cp36m-win_amd64.whl", hash = "sha256:a4d511012beb967a39580ba7d2549edf1e6865a33e5fe51e4dce550522b3ac0e"},
+    {file = "coverage-5.2-cp37-cp37m-macosx_10_13_x86_64.whl", hash = "sha256:32ecee61a43be509b91a526819717d5e5650e009a8d5eda8631a59c721d5f3b6"},
+    {file = "coverage-5.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:6f91b4492c5cde83bfe462f5b2b997cdf96a138f7c58b1140f05de5751623cf1"},
+    {file = "coverage-5.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:bfcc811883699ed49afc58b1ed9f80428a18eb9166422bce3c31a53dba00fd1d"},
+    {file = "coverage-5.2-cp37-cp37m-win32.whl", hash = "sha256:60a3d36297b65c7f78329b80120f72947140f45b5c7a017ea730f9112b40f2ec"},
+    {file = "coverage-5.2-cp37-cp37m-win_amd64.whl", hash = "sha256:12eaccd86d9a373aea59869bc9cfa0ab6ba8b1477752110cb4c10d165474f703"},
+    {file = "coverage-5.2-cp38-cp38-macosx_10_13_x86_64.whl", hash = "sha256:d82db1b9a92cb5c67661ca6616bdca6ff931deceebb98eecbd328812dab52032"},
+    {file = "coverage-5.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:214eb2110217f2636a9329bc766507ab71a3a06a8ea30cdeebb47c24dce5972d"},
+    {file = "coverage-5.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:8a3decd12e7934d0254939e2bf434bf04a5890c5bf91a982685021786a08087e"},
+    {file = "coverage-5.2-cp38-cp38-win32.whl", hash = "sha256:1dcebae667b73fd4aa69237e6afb39abc2f27520f2358590c1b13dd90e32abe7"},
+    {file = "coverage-5.2-cp38-cp38-win_amd64.whl", hash = "sha256:f50632ef2d749f541ca8e6c07c9928a37f87505ce3a9f20c8446ad310f1aa87b"},
+    {file = "coverage-5.2-cp39-cp39-macosx_10_13_x86_64.whl", hash = "sha256:7403675df5e27745571aba1c957c7da2dacb537c21e14007ec3a417bf31f7f3d"},
+    {file = "coverage-5.2-cp39-cp39-manylinux1_i686.whl", hash = "sha256:0fc4e0d91350d6f43ef6a61f64a48e917637e1dcfcba4b4b7d543c628ef82c2d"},
+    {file = "coverage-5.2-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:25fe74b5b2f1b4abb11e103bb7984daca8f8292683957d0738cd692f6a7cc64c"},
+    {file = "coverage-5.2-cp39-cp39-win32.whl", hash = "sha256:d67599521dff98ec8c34cd9652cbcfe16ed076a2209625fca9dc7419b6370e5c"},
+    {file = "coverage-5.2-cp39-cp39-win_amd64.whl", hash = "sha256:10f2a618a6e75adf64329f828a6a5b40244c1c50f5ef4ce4109e904e69c71bd2"},
+    {file = "coverage-5.2.tar.gz", hash = "sha256:1874bdc943654ba46d28f179c1846f5710eda3aeb265ff029e0ac2b52daae404"},
 ]
 cryptography = [
     {file = "cryptography-2.8-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:fb81c17e0ebe3358486cd8cc3ad78adbae58af12fc2bf2bc0bb84e8090fa5ce8"},
@@ -1889,28 +1907,29 @@ cryptography = [
     {file = "cryptography-2.8-cp38-cp38-win32.whl", hash = "sha256:73fd30c57fa2d0a1d7a49c561c40c2f79c7d6c374cc7750e9ac7c99176f6428e"},
     {file = "cryptography-2.8-cp38-cp38-win_amd64.whl", hash = "sha256:971221ed40f058f5662a604bd1ae6e4521d84e6cad0b7b170564cc34169c8f13"},
     {file = "cryptography-2.8.tar.gz", hash = "sha256:3cda1f0ed8747339bbdf71b9f38ca74c7b592f24f65cdb3ab3765e4b02871651"},
-    {file = "cryptography-2.9.2-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:daf54a4b07d67ad437ff239c8a4080cfd1cc7213df57d33c97de7b4738048d5e"},
-    {file = "cryptography-2.9.2-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:3b3eba865ea2754738616f87292b7f29448aec342a7c720956f8083d252bf28b"},
-    {file = "cryptography-2.9.2-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:c447cf087cf2dbddc1add6987bbe2f767ed5317adb2d08af940db517dd704365"},
-    {file = "cryptography-2.9.2-cp27-cp27m-win32.whl", hash = "sha256:f118a95c7480f5be0df8afeb9a11bd199aa20afab7a96bcf20409b411a3a85f0"},
-    {file = "cryptography-2.9.2-cp27-cp27m-win_amd64.whl", hash = "sha256:c4fd17d92e9d55b84707f4fd09992081ba872d1a0c610c109c18e062e06a2e55"},
-    {file = "cryptography-2.9.2-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:d0d5aeaedd29be304848f1c5059074a740fa9f6f26b84c5b63e8b29e73dfc270"},
-    {file = "cryptography-2.9.2-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:1e4014639d3d73fbc5ceff206049c5a9a849cefd106a49fa7aaaa25cc0ce35cf"},
-    {file = "cryptography-2.9.2-cp35-abi3-macosx_10_9_x86_64.whl", hash = "sha256:96c080ae7118c10fcbe6229ab43eb8b090fccd31a09ef55f83f690d1ef619a1d"},
-    {file = "cryptography-2.9.2-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:e993468c859d084d5579e2ebee101de8f5a27ce8e2159959b6673b418fd8c785"},
-    {file = "cryptography-2.9.2-cp35-abi3-manylinux2010_x86_64.whl", hash = "sha256:88c881dd5a147e08d1bdcf2315c04972381d026cdb803325c03fe2b4a8ed858b"},
-    {file = "cryptography-2.9.2-cp35-cp35m-win32.whl", hash = "sha256:651448cd2e3a6bc2bb76c3663785133c40d5e1a8c1a9c5429e4354201c6024ae"},
-    {file = "cryptography-2.9.2-cp35-cp35m-win_amd64.whl", hash = "sha256:726086c17f94747cedbee6efa77e99ae170caebeb1116353c6cf0ab67ea6829b"},
-    {file = "cryptography-2.9.2-cp36-cp36m-win32.whl", hash = "sha256:091d31c42f444c6f519485ed528d8b451d1a0c7bf30e8ca583a0cac44b8a0df6"},
-    {file = "cryptography-2.9.2-cp36-cp36m-win_amd64.whl", hash = "sha256:bb1f0281887d89617b4c68e8db9a2c42b9efebf2702a3c5bf70599421a8623e3"},
-    {file = "cryptography-2.9.2-cp37-cp37m-win32.whl", hash = "sha256:18452582a3c85b96014b45686af264563e3e5d99d226589f057ace56196ec78b"},
-    {file = "cryptography-2.9.2-cp37-cp37m-win_amd64.whl", hash = "sha256:22e91636a51170df0ae4dcbd250d318fd28c9f491c4e50b625a49964b24fe46e"},
-    {file = "cryptography-2.9.2-cp38-cp38-win32.whl", hash = "sha256:844a76bc04472e5135b909da6aed84360f522ff5dfa47f93e3dd2a0b84a89fa0"},
-    {file = "cryptography-2.9.2-cp38-cp38-win_amd64.whl", hash = "sha256:1dfa985f62b137909496e7fc182dac687206d8d089dd03eaeb28ae16eec8e7d5"},
-    {file = "cryptography-2.9.2.tar.gz", hash = "sha256:a0c30272fb4ddda5f5ffc1089d7405b7a71b0b0f51993cb4e5dbb4590b2fc229"},
+    {file = "cryptography-3.0-cp27-cp27m-macosx_10_10_x86_64.whl", hash = "sha256:ab49edd5bea8d8b39a44b3db618e4783ef84c19c8b47286bf05dfdb3efb01c83"},
+    {file = "cryptography-3.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:124af7255ffc8e964d9ff26971b3a6153e1a8a220b9a685dc407976ecb27a06a"},
+    {file = "cryptography-3.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:51e40123083d2f946794f9fe4adeeee2922b581fa3602128ce85ff813d85b81f"},
+    {file = "cryptography-3.0-cp27-cp27m-win32.whl", hash = "sha256:dea0ba7fe6f9461d244679efa968d215ea1f989b9c1957d7f10c21e5c7c09ad6"},
+    {file = "cryptography-3.0-cp27-cp27m-win_amd64.whl", hash = "sha256:8ecf9400d0893836ff41b6f977a33972145a855b6efeb605b49ee273c5e6469f"},
+    {file = "cryptography-3.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:0c608ff4d4adad9e39b5057de43657515c7da1ccb1807c3a27d4cf31fc923b4b"},
+    {file = "cryptography-3.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:bec7568c6970b865f2bcebbe84d547c52bb2abadf74cefce396ba07571109c67"},
+    {file = "cryptography-3.0-cp35-abi3-macosx_10_10_x86_64.whl", hash = "sha256:0cbfed8ea74631fe4de00630f4bb592dad564d57f73150d6f6796a24e76c76cd"},
+    {file = "cryptography-3.0-cp35-abi3-manylinux1_x86_64.whl", hash = "sha256:a09fd9c1cca9a46b6ad4bea0a1f86ab1de3c0c932364dbcf9a6c2a5eeb44fa77"},
+    {file = "cryptography-3.0-cp35-abi3-manylinux2010_x86_64.whl", hash = "sha256:ce82cc06588e5cbc2a7df3c8a9c778f2cb722f56835a23a68b5a7264726bb00c"},
+    {file = "cryptography-3.0-cp35-cp35m-win32.whl", hash = "sha256:9367d00e14dee8d02134c6c9524bb4bd39d4c162456343d07191e2a0b5ec8b3b"},
+    {file = "cryptography-3.0-cp35-cp35m-win_amd64.whl", hash = "sha256:384d7c681b1ab904fff3400a6909261cae1d0939cc483a68bdedab282fb89a07"},
+    {file = "cryptography-3.0-cp36-cp36m-win32.whl", hash = "sha256:4d355f2aee4a29063c10164b032d9fa8a82e2c30768737a2fd56d256146ad559"},
+    {file = "cryptography-3.0-cp36-cp36m-win_amd64.whl", hash = "sha256:45741f5499150593178fc98d2c1a9c6722df88b99c821ad6ae298eff0ba1ae71"},
+    {file = "cryptography-3.0-cp37-cp37m-win32.whl", hash = "sha256:8ecef21ac982aa78309bb6f092d1677812927e8b5ef204a10c326fc29f1367e2"},
+    {file = "cryptography-3.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4b9303507254ccb1181d1803a2080a798910ba89b1a3c9f53639885c90f7a756"},
+    {file = "cryptography-3.0-cp38-cp38-win32.whl", hash = "sha256:8713ddb888119b0d2a1462357d5946b8911be01ddbf31451e1d07eaa5077a261"},
+    {file = "cryptography-3.0-cp38-cp38-win_amd64.whl", hash = "sha256:bea0b0468f89cdea625bb3f692cd7a4222d80a6bdafd6fb923963f2b9da0e15f"},
+    {file = "cryptography-3.0.tar.gz", hash = "sha256:8e924dbc025206e97756e8903039662aa58aa9ba357d8e1d8fc29e3092322053"},
 ]
 distlib = [
-    {file = "distlib-0.3.0.zip", hash = "sha256:2e166e231a26b36d6dfe35a48c4464346620f8645ed0ace01ee31822b288de21"},
+    {file = "distlib-0.3.1-py2.py3-none-any.whl", hash = "sha256:8c09de2c67b3e7deef7184574fc060ab8a793e7adbb183d942c389c8b13c52fb"},
+    {file = "distlib-0.3.1.zip", hash = "sha256:edf6116872c863e1aa9d5bb7cb5e05a022c519a4594dc703843343a9ddd9bff1"},
 ]
 entrypoints = [
     {file = "entrypoints-0.3-py2.py3-none-any.whl", hash = "sha256:589f874b313739ad35be6e0cd7efde2a4e9b6fea91edcc34e58ecbb8dbe56d19"},
@@ -1946,19 +1965,21 @@ glob2 = [
 html5lib = [
     {file = "html5lib-1.0.1-py2.py3-none-any.whl", hash = "sha256:20b159aa3badc9d5ee8f5c647e5efd02ed2a66ab8d354930bd9ff139fc1dc0a3"},
     {file = "html5lib-1.0.1.tar.gz", hash = "sha256:66cb0dcfdbbc4f9c3ba1a63fdb511ffdbd4f513b2b6d81b80cd26ce6b3fb3736"},
+    {file = "html5lib-1.1-py2.py3-none-any.whl", hash = "sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d"},
+    {file = "html5lib-1.1.tar.gz", hash = "sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f"},
 ]
 httpretty = [
     {file = "httpretty-0.9.7.tar.gz", hash = "sha256:66216f26b9d2c52e81808f3e674a6fb65d4bf719721394a1a9be926177e55fbe"},
 ]
 identify = [
-    {file = "identify-1.4.19-py2.py3-none-any.whl", hash = "sha256:781fd3401f5d2b17b22a8b18b493a48d5d948e3330634e82742e23f9c20234ef"},
-    {file = "identify-1.4.19.tar.gz", hash = "sha256:249ebc7e2066d6393d27c1b1be3b70433f824a120b1d8274d362f1eb419e3b52"},
+    {file = "identify-1.4.24-py2.py3-none-any.whl", hash = "sha256:5519601b70c831011fb425ffd214101df7639ba3980f24dc283f7675b19127b3"},
+    {file = "identify-1.4.24.tar.gz", hash = "sha256:06b4373546ae55eaaefdac54f006951dbd968fe2912846c00e565b09cfaed101"},
 ]
 idna = [
     {file = "idna-2.8-py2.py3-none-any.whl", hash = "sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c"},
     {file = "idna-2.8.tar.gz", hash = "sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407"},
-    {file = "idna-2.9-py2.py3-none-any.whl", hash = "sha256:a068a21ceac8a4d63dbfd964670474107f541babbd2250d61922f029858365fa"},
-    {file = "idna-2.9.tar.gz", hash = "sha256:7588d1c14ae4c77d74036e8c22ff447b26d0fde8f007354fd48a7814db15b7cb"},
+    {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"},
+    {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"},
 ]
 importlib-metadata = [
     {file = "importlib_metadata-1.1.3-py2.py3-none-any.whl", hash = "sha256:7c7f8ac40673f507f349bef2eed21a0e5f01ddf5b2a7356a6c65eb2099b53764"},
@@ -1967,8 +1988,8 @@ importlib-metadata = [
 importlib-resources = [
     {file = "importlib_resources-1.0.2-py2.py3-none-any.whl", hash = "sha256:6e2783b2538bd5a14678284a3962b0660c715e5a0f10243fd5e00a4b5974f50b"},
     {file = "importlib_resources-1.0.2.tar.gz", hash = "sha256:d3279fd0f6f847cced9f7acc19bd3e5df54d34f93a2e7bb5f238f81545787078"},
-    {file = "importlib_resources-2.0.0-py2.py3-none-any.whl", hash = "sha256:a86462cf34a6d391d1d5d598a5e2f5aac9fc00b265d40542e1196328f015d1f6"},
-    {file = "importlib_resources-2.0.0.tar.gz", hash = "sha256:7f6aae2ed252ba10f5d1af5676b0e35f3b3eb7d3cc103b8365cc92aec0c79258"},
+    {file = "importlib_resources-3.0.0-py2.py3-none-any.whl", hash = "sha256:d028f66b66c0d5732dae86ba4276999855e162a749c92620a38c1d779ed138a7"},
+    {file = "importlib_resources-3.0.0.tar.gz", hash = "sha256:19f745a6eca188b490b1428c8d1d4a0d2368759f32370ea8fb89cad2ab1106c3"},
 ]
 ipaddress = [
     {file = "ipaddress-1.0.23-py2.py3-none-any.whl", hash = "sha256:6e0f4a39e66cb5bb9a137b00276a2eff74f93b71dcbdad6f10ff7df9d3557fcc"},
@@ -2071,8 +2092,8 @@ more-itertools = [
     {file = "more_itertools-5.0.0-py3-none-any.whl", hash = "sha256:fe7a7cae1ccb57d33952113ff4fa1bc5f879963600ed74918f1236e212ee50b9"},
     {file = "more-itertools-7.2.0.tar.gz", hash = "sha256:409cd48d4db7052af495b09dec721011634af3753ae1ef92d2b32f73a745f832"},
     {file = "more_itertools-7.2.0-py3-none-any.whl", hash = "sha256:92b8c4b06dac4f0611c0729b2f2ede52b2e1bac1ab48f089c7ddc12e26bb60c4"},
-    {file = "more-itertools-8.3.0.tar.gz", hash = "sha256:558bb897a2232f5e4f8e2399089e35aecb746e1f9191b6584a151647e89267be"},
-    {file = "more_itertools-8.3.0-py3-none-any.whl", hash = "sha256:7818f596b1e87be009031c7653d01acc46ed422e6656b394b0f765ce66ed4982"},
+    {file = "more-itertools-8.4.0.tar.gz", hash = "sha256:68c70cc7167bdf5c7c9d8f6954a7837089c6a36bf565383919bb595efb8a17e5"},
+    {file = "more_itertools-8.4.0-py3-none-any.whl", hash = "sha256:b78134b2063dd214000685165d81c154522c3ee0a1c0d4d113c80361c234c5a2"},
 ]
 msgpack = [
     {file = "msgpack-1.0.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:cec8bf10981ed70998d98431cd814db0ecf3384e6b113366e7f36af71a0fca08"},
@@ -2143,8 +2164,8 @@ ptyprocess = [
     {file = "ptyprocess-0.6.0.tar.gz", hash = "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0"},
 ]
 py = [
-    {file = "py-1.8.1-py2.py3-none-any.whl", hash = "sha256:c20fdd83a5dbc0af9efd622bee9a5564e278f6380fffcacc43ba6f43db2813b0"},
-    {file = "py-1.8.1.tar.gz", hash = "sha256:5e27081401262157467ad6e7f851b7aa402c5852dbcb3dae06768434de5752aa"},
+    {file = "py-1.9.0-py2.py3-none-any.whl", hash = "sha256:366389d1db726cd2fcfc79732e75410e5fe4d31db13692115529d34069a043c2"},
+    {file = "py-1.9.0.tar.gz", hash = "sha256:9ca6883ce56b4e8da7e79ac18787889fa5206c79dcc67fb065376cd2fe03f342"},
 ]
 pycparser = [
     {file = "pycparser-2.20-py2.py3-none-any.whl", hash = "sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705"},
@@ -2190,15 +2211,15 @@ pytest = [
 pytest-cov = [
     {file = "pytest-cov-2.8.1.tar.gz", hash = "sha256:cc6742d8bac45070217169f5f72ceee1e0e55b0221f54bcf24845972d3a47f2b"},
     {file = "pytest_cov-2.8.1-py2.py3-none-any.whl", hash = "sha256:cdbdef4f870408ebdbfeb44e63e07eb18bb4619fae852f6e760645fa36172626"},
-    {file = "pytest-cov-2.9.0.tar.gz", hash = "sha256:b6a814b8ed6247bd81ff47f038511b57fe1ce7f4cc25b9106f1a4b106f1d9322"},
-    {file = "pytest_cov-2.9.0-py2.py3-none-any.whl", hash = "sha256:c87dfd8465d865655a8213859f1b4749b43448b5fae465cb981e16d52a811424"},
+    {file = "pytest-cov-2.10.0.tar.gz", hash = "sha256:1a629dc9f48e53512fcbfda6b07de490c374b0c83c55ff7a1720b3fccff0ac87"},
+    {file = "pytest_cov-2.10.0-py2.py3-none-any.whl", hash = "sha256:6e6d18092dce6fad667cd7020deed816f858ad3b49d5b5e2b1cc1c97a4dba65c"},
 ]
 pytest-mock = [
     {file = "pytest-mock-1.13.0.tar.gz", hash = "sha256:e24a911ec96773022ebcc7030059b57cd3480b56d4f5d19b7c370ec635e6aed5"},
     {file = "pytest_mock-1.13.0-py2.py3-none-any.whl", hash = "sha256:67e414b3caef7bff6fc6bd83b22b5bc39147e4493f483c2679bc9d4dc485a94d"},
 ]
 pytest-sugar = [
-    {file = "pytest-sugar-0.9.3.tar.gz", hash = "sha256:1630b5b7ea3624919b73fde37cffb87965c5087a4afab8a43074ff44e0d810c4"},
+    {file = "pytest-sugar-0.9.4.tar.gz", hash = "sha256:b1b2186b0a72aada6859bea2a5764145e3aaa2c1cfbb23c3a19b5f7b697563d3"},
 ]
 pywin32-ctypes = [
     {file = "pywin32-ctypes-0.2.0.tar.gz", hash = "sha256:24ffc3b341d457d48e8922352130cf2644024a4ff09762a2261fd34c36ee5942"},
@@ -2229,33 +2250,33 @@ pyyaml = [
     {file = "PyYAML-5.3.1.tar.gz", hash = "sha256:b8eac752c5e14d3eca0e6dd9199cd627518cb5ec06add0de9d32baeee6fe645d"},
 ]
 regex = [
-    {file = "regex-2020.6.8-cp27-cp27m-win32.whl", hash = "sha256:fbff901c54c22425a5b809b914a3bfaf4b9570eee0e5ce8186ac71eb2025191c"},
-    {file = "regex-2020.6.8-cp27-cp27m-win_amd64.whl", hash = "sha256:112e34adf95e45158c597feea65d06a8124898bdeac975c9087fe71b572bd938"},
-    {file = "regex-2020.6.8-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:92d8a043a4241a710c1cf7593f5577fbb832cf6c3a00ff3fc1ff2052aff5dd89"},
-    {file = "regex-2020.6.8-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:bae83f2a56ab30d5353b47f9b2a33e4aac4de9401fb582b55c42b132a8ac3868"},
-    {file = "regex-2020.6.8-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:b2ba0f78b3ef375114856cbdaa30559914d081c416b431f2437f83ce4f8b7f2f"},
-    {file = "regex-2020.6.8-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:95fa7726d073c87141f7bbfb04c284901f8328e2d430eeb71b8ffdd5742a5ded"},
-    {file = "regex-2020.6.8-cp36-cp36m-win32.whl", hash = "sha256:e3cdc9423808f7e1bb9c2e0bdb1c9dc37b0607b30d646ff6faf0d4e41ee8fee3"},
-    {file = "regex-2020.6.8-cp36-cp36m-win_amd64.whl", hash = "sha256:c78e66a922de1c95a208e4ec02e2e5cf0bb83a36ceececc10a72841e53fbf2bd"},
-    {file = "regex-2020.6.8-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:08997a37b221a3e27d68ffb601e45abfb0093d39ee770e4257bd2f5115e8cb0a"},
-    {file = "regex-2020.6.8-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:2f6f211633ee8d3f7706953e9d3edc7ce63a1d6aad0be5dcee1ece127eea13ae"},
-    {file = "regex-2020.6.8-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:55b4c25cbb3b29f8d5e63aeed27b49fa0f8476b0d4e1b3171d85db891938cc3a"},
-    {file = "regex-2020.6.8-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:89cda1a5d3e33ec9e231ece7307afc101b5217523d55ef4dc7fb2abd6de71ba3"},
-    {file = "regex-2020.6.8-cp37-cp37m-win32.whl", hash = "sha256:690f858d9a94d903cf5cada62ce069b5d93b313d7d05456dbcd99420856562d9"},
-    {file = "regex-2020.6.8-cp37-cp37m-win_amd64.whl", hash = "sha256:1700419d8a18c26ff396b3b06ace315b5f2a6e780dad387e4c48717a12a22c29"},
-    {file = "regex-2020.6.8-cp38-cp38-manylinux1_i686.whl", hash = "sha256:654cb773b2792e50151f0e22be0f2b6e1c3a04c5328ff1d9d59c0398d37ef610"},
-    {file = "regex-2020.6.8-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:52e1b4bef02f4040b2fd547357a170fc1146e60ab310cdbdd098db86e929b387"},
-    {file = "regex-2020.6.8-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:cf59bbf282b627130f5ba68b7fa3abdb96372b24b66bdf72a4920e8153fc7910"},
-    {file = "regex-2020.6.8-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:5aaa5928b039ae440d775acea11d01e42ff26e1561c0ffcd3d805750973c6baf"},
-    {file = "regex-2020.6.8-cp38-cp38-win32.whl", hash = "sha256:97712e0d0af05febd8ab63d2ef0ab2d0cd9deddf4476f7aa153f76feef4b2754"},
-    {file = "regex-2020.6.8-cp38-cp38-win_amd64.whl", hash = "sha256:6ad8663c17db4c5ef438141f99e291c4d4edfeaacc0ce28b5bba2b0bf273d9b5"},
-    {file = "regex-2020.6.8.tar.gz", hash = "sha256:e9b64e609d37438f7d6e68c2546d2cb8062f3adb27e6336bc129b51be20773ac"},
+    {file = "regex-2020.7.14-cp27-cp27m-win32.whl", hash = "sha256:e46d13f38cfcbb79bfdb2964b0fe12561fe633caf964a77a5f8d4e45fe5d2ef7"},
+    {file = "regex-2020.7.14-cp27-cp27m-win_amd64.whl", hash = "sha256:6961548bba529cac7c07af2fd4d527c5b91bb8fe18995fed6044ac22b3d14644"},
+    {file = "regex-2020.7.14-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:c50a724d136ec10d920661f1442e4a8b010a4fe5aebd65e0c2241ea41dbe93dc"},
+    {file = "regex-2020.7.14-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8a51f2c6d1f884e98846a0a9021ff6861bdb98457879f412fdc2b42d14494067"},
+    {file = "regex-2020.7.14-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:9c568495e35599625f7b999774e29e8d6b01a6fb684d77dee1f56d41b11b40cd"},
+    {file = "regex-2020.7.14-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:51178c738d559a2d1071ce0b0f56e57eb315bcf8f7d4cf127674b533e3101f88"},
+    {file = "regex-2020.7.14-cp36-cp36m-win32.whl", hash = "sha256:9eddaafb3c48e0900690c1727fba226c4804b8e6127ea409689c3bb492d06de4"},
+    {file = "regex-2020.7.14-cp36-cp36m-win_amd64.whl", hash = "sha256:14a53646369157baa0499513f96091eb70382eb50b2c82393d17d7ec81b7b85f"},
+    {file = "regex-2020.7.14-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:1269fef3167bb52631ad4fa7dd27bf635d5a0790b8e6222065d42e91bede4162"},
+    {file = "regex-2020.7.14-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:d0a5095d52b90ff38592bbdc2644f17c6d495762edf47d876049cfd2968fbccf"},
+    {file = "regex-2020.7.14-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:4c037fd14c5f4e308b8370b447b469ca10e69427966527edcab07f52d88388f7"},
+    {file = "regex-2020.7.14-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:bc3d98f621898b4a9bc7fecc00513eec8f40b5b83913d74ccb445f037d58cd89"},
+    {file = "regex-2020.7.14-cp37-cp37m-win32.whl", hash = "sha256:46bac5ca10fb748d6c55843a931855e2727a7a22584f302dd9bb1506e69f83f6"},
+    {file = "regex-2020.7.14-cp37-cp37m-win_amd64.whl", hash = "sha256:0dc64ee3f33cd7899f79a8d788abfbec168410be356ed9bd30bbd3f0a23a7204"},
+    {file = "regex-2020.7.14-cp38-cp38-manylinux1_i686.whl", hash = "sha256:5ea81ea3dbd6767873c611687141ec7b06ed8bab43f68fad5b7be184a920dc99"},
+    {file = "regex-2020.7.14-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:bbb332d45b32df41200380fff14712cb6093b61bd142272a10b16778c418e98e"},
+    {file = "regex-2020.7.14-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:c11d6033115dc4887c456565303f540c44197f4fc1a2bfb192224a301534888e"},
+    {file = "regex-2020.7.14-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:75aaa27aa521a182824d89e5ab0a1d16ca207318a6b65042b046053cfc8ed07a"},
+    {file = "regex-2020.7.14-cp38-cp38-win32.whl", hash = "sha256:d6cff2276e502b86a25fd10c2a96973fdb45c7a977dca2138d661417f3728341"},
+    {file = "regex-2020.7.14-cp38-cp38-win_amd64.whl", hash = "sha256:7a2dd66d2d4df34fa82c9dc85657c5e019b87932019947faece7983f2089a840"},
+    {file = "regex-2020.7.14.tar.gz", hash = "sha256:3a3af27a8d23143c49a3420efe5b3f8cf1a48c6fc8bc6856b03f638abc1833bb"},
 ]
 requests = [
     {file = "requests-2.21.0-py2.py3-none-any.whl", hash = "sha256:7bf2a778576d825600030a110f3c0e3e8edc51dfaafe1c146e39a2027784957b"},
     {file = "requests-2.21.0.tar.gz", hash = "sha256:502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e"},
-    {file = "requests-2.23.0-py2.py3-none-any.whl", hash = "sha256:43999036bfa82904b6af1d99e4882b560e5e2c68e5c4b0aa03b655f3d7d73fee"},
-    {file = "requests-2.23.0.tar.gz", hash = "sha256:b3f43d496c6daba4493e7c431722aeb7dbc6288f52a6e04e7b6023b0247817e6"},
+    {file = "requests-2.24.0-py2.py3-none-any.whl", hash = "sha256:fe75cc94a9443b9246fc7049224f75604b113c36acb93f87b80ed42c44cbb898"},
+    {file = "requests-2.24.0.tar.gz", hash = "sha256:b3559a131db72c33ee969480840fff4bb6dd111de7dd27c8ee1f820f4f00231b"},
 ]
 requests-toolbelt = [
     {file = "requests-toolbelt-0.8.0.tar.gz", hash = "sha256:f6a531936c6fa4c6cfce1b9c10d5c4f498d16528d2a54a22ca00011205a187b5"},
@@ -2293,6 +2314,7 @@ six = [
 ]
 subprocess32 = [
     {file = "subprocess32-3.5.4-cp27-cp27m-macosx_10_6_intel.whl", hash = "sha256:88e37c1aac5388df41cc8a8456bb49ebffd321a3ad4d70358e3518176de3a56b"},
+    {file = "subprocess32-3.5.4-cp27-cp27mu-manylinux2014_x86_64.whl", hash = "sha256:e45d985aef903c5b7444d34350b05da91a9e0ea015415ab45a21212786c649d0"},
     {file = "subprocess32-3.5.4.tar.gz", hash = "sha256:eb2937c80497978d181efa1b839ec2d9622cf9600a039a79d0e108d1f9aec79d"},
 ]
 termcolor = [
@@ -2327,12 +2349,12 @@ tornado = [
 tox = [
     {file = "tox-3.12.1-py2.py3-none-any.whl", hash = "sha256:f5c8e446b51edd2ea97df31d4ded8c8b72e7d6c619519da6bb6084b9dd5770f9"},
     {file = "tox-3.12.1.tar.gz", hash = "sha256:f87fd33892a2df0950e5e034def9468988b8d008c7e9416be665fcc0dd45b14f"},
-    {file = "tox-3.15.2-py2.py3-none-any.whl", hash = "sha256:50a188b8e17580c1fb931f494a754e6507d4185f54fb18aca5ba3e12d2ffd55e"},
-    {file = "tox-3.15.2.tar.gz", hash = "sha256:c696d36cd7c6a28ada2da780400e44851b20ee19ef08cfe73344a1dcebbbe9f3"},
+    {file = "tox-3.17.1-py2.py3-none-any.whl", hash = "sha256:cf130909a224515f6c894023150ccc860c4cf5ecad64f583b9d43ed1aa7e5da8"},
+    {file = "tox-3.17.1.tar.gz", hash = "sha256:5968c07b3aeea715ac2fe723a912e0b6a0c53bebad24fc37eb559b7497f217fa"},
 ]
 tqdm = [
-    {file = "tqdm-4.46.1-py2.py3-none-any.whl", hash = "sha256:07c06493f1403c1380b630ae3dcbe5ae62abcf369a93bbc052502279f189ab8c"},
-    {file = "tqdm-4.46.1.tar.gz", hash = "sha256:cd140979c2bebd2311dfb14781d8f19bd5a9debb92dcab9f6ef899c987fcf71f"},
+    {file = "tqdm-4.48.0-py2.py3-none-any.whl", hash = "sha256:fcb7cb5b729b60a27f300b15c1ffd4744f080fb483b88f31dc8654b082cc8ea5"},
+    {file = "tqdm-4.48.0.tar.gz", hash = "sha256:6baa75a88582b1db6d34ce4690da5501d2a1cb65c34664840a456b2c9f794d29"},
 ]
 typed-ast = [
     {file = "typed_ast-1.4.1-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:73d785a950fc82dd2a25897d525d003f6378d1cb23ab305578394694202a58c3"},
@@ -2358,9 +2380,8 @@ typed-ast = [
     {file = "typed_ast-1.4.1.tar.gz", hash = "sha256:8c8aaad94455178e3187ab22c8b01a3837f8ee50e09cf31f1ba129eb293ec30b"},
 ]
 typing = [
-    {file = "typing-3.7.4.1-py2-none-any.whl", hash = "sha256:c8cabb5ab8945cd2f54917be357d134db9cc1eb039e59d1606dc1e60cb1d9d36"},
-    {file = "typing-3.7.4.1-py3-none-any.whl", hash = "sha256:f38d83c5a7a7086543a0f649564d661859c5146a85775ab90c0d2f93ffaa9714"},
-    {file = "typing-3.7.4.1.tar.gz", hash = "sha256:91dfe6f3f706ee8cc32d38edbbf304e9b7583fb37108fef38229617f8b3eba23"},
+    {file = "typing-3.7.4.3-py2-none-any.whl", hash = "sha256:283d868f5071ab9ad873e5e52268d611e851c870a2ba354193026f2dfb29d8b5"},
+    {file = "typing-3.7.4.3.tar.gz", hash = "sha256:1187fb9c82fd670d10aa07bbb6cfcfe4bdda42d6fab8d5134f04e8c4d0b71cc9"},
 ]
 typing-extensions = [
     {file = "typing_extensions-3.7.4.2-py2-none-any.whl", hash = "sha256:f8d2bd89d25bc39dabe7d23df520442fa1d8969b82544370e03d88b5a591c392"},
@@ -2376,12 +2397,12 @@ urllib3 = [
 virtualenv = [
     {file = "virtualenv-16.7.10-py2.py3-none-any.whl", hash = "sha256:105893c8dc66b7817691c7371439ec18e3b6c5e323a304b5ed96cdd2e75cc1ec"},
     {file = "virtualenv-16.7.10.tar.gz", hash = "sha256:e88fdcb08b0ecb11da97868f463dd06275923f50d87f4b9c8b2fc0994eec40f4"},
-    {file = "virtualenv-20.0.21-py2.py3-none-any.whl", hash = "sha256:a730548b27366c5e6cbdf6f97406d861cccece2e22275e8e1a757aeff5e00c70"},
-    {file = "virtualenv-20.0.21.tar.gz", hash = "sha256:a116629d4e7f4d03433b8afa27f43deba09d48bc48f5ecefa4f015a178efb6cf"},
+    {file = "virtualenv-20.0.27-py2.py3-none-any.whl", hash = "sha256:c51f1ba727d1614ce8fd62457748b469fbedfdab2c7e5dd480c9ae3fbe1233f1"},
+    {file = "virtualenv-20.0.27.tar.gz", hash = "sha256:26cdd725a57fef4c7c22060dba4647ebd8ca377e30d1c1cf547b30a0b79c43b4"},
 ]
 wcwidth = [
-    {file = "wcwidth-0.2.4-py2.py3-none-any.whl", hash = "sha256:79375666b9954d4a1a10739315816324c3e73110af9d0e102d906fdb0aec009f"},
-    {file = "wcwidth-0.2.4.tar.gz", hash = "sha256:8c6b5b6ee1360b842645f336d9e5d68c55817c26d3050f46b235ef2bc650e48f"},
+    {file = "wcwidth-0.2.5-py2.py3-none-any.whl", hash = "sha256:beb4802a9cebb9144e99086eff703a642a13d6a0052920003a230f3294bbe784"},
+    {file = "wcwidth-0.2.5.tar.gz", hash = "sha256:c4d647b99872929fdb7bdcaa4fbe7f01413ed3d98077df798530e5b04f116c83"},
 ]
 webencodings = [
     {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"},
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml
index 0cdaef9908a3..76dca20043ee 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/pyproject.toml
@@ -1,6 +1,6 @@
 [tool.poetry]
 name = "poetry"
-version = "1.0.8"
+version = "1.0.10"
 description = "Python dependency management and packaging made easy."
 authors = [
     "Sébastien Eustace <sebastien@eustace.io>"
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json
index 5e91db253ebb..ab987011a620 100644
--- a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/pkgs/poetry/src.json
@@ -1,6 +1,6 @@
 {
     "owner": "python-poetry",
     "repo": "poetry",
-    "rev": "6f9d6b0e1b7b1d3a7d7b2ca3478ad2cb0a7188e2",
-    "sha256": "1g9kcp3zlfk3f063hz1av9jj7s60pwxzqgj59w21sd5fx7yzdsaf"
+    "rev": "d3c9049a18ae33baacfcb5c698777282f2f58128",
+    "sha256": "00qfzjjs6clh93gfl1px3ma9km8qxl3f4z819nmyl58zc8ni3zyv"
 }
\ No newline at end of file
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/plugins.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/plugins.nix
new file mode 100644
index 000000000000..b5e807c6e2d9
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/plugins.nix
@@ -0,0 +1,70 @@
+{ pkgs, lib }:
+let
+  inherit (pkgs) stdenv;
+
+  mkPluginDrv =
+    { self
+    , plugins
+    , drv
+    , postInstall ? ""
+    , nativeBuildInputs ? [ ]
+    , buildInputs ? [ ]
+    }:
+    let
+      env = self.python.withPackages (ps: plugins);
+    in
+    stdenv.mkDerivation {
+      pname = drv.pname + "-with-plugins";
+
+      inherit (drv) src version meta;
+
+      buildInputs = drv.buildInputs ++ drv.propagatedBuildInputs ++ buildInputs;
+      nativeBuildInputs = drv.nativeBuildInputs ++ nativeBuildInputs;
+
+      dontConfigure = true;
+      dontBuild = true;
+      dontUsePythonRecompileBytecode = true;
+
+      passthru = {
+        inherit (drv.passthru) withPlugins;
+        inherit plugins;
+      };
+
+      # Link bin/ from environment, but only if it's in a plugin
+      installPhase = ''
+        runHook preInstall
+
+        mkdir -p $out/bin
+
+        for bindir in ${lib.concatStringsSep " " (map (d: "${lib.getBin d}/bin") plugins)}; do
+          for bin in $bindir/*; do
+            ln -s ${env}/bin/$(basename $bin) $out/bin/
+          done
+        done
+
+        runHook postInstall
+      '';
+
+      inherit postInstall;
+    };
+
+in
+{
+
+  # Provide the `withPlugins` function
+  toPluginAble = self: { drv
+                       , finalDrv
+                       , postInstall ? ""
+                       , nativeBuildInputs ? [ ]
+                       , buildInputs ? [ ]
+                       }: drv.overridePythonAttrs (old: {
+    passthru = old.passthru // {
+      withPlugins = pluginFn: mkPluginDrv {
+        plugins = [ finalDrv ] ++ pluginFn self;
+        inherit self postInstall nativeBuildInputs buildInputs;
+        drv = finalDrv;
+      };
+    };
+  });
+
+}
diff --git a/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/shell-scripts.nix b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/shell-scripts.nix
new file mode 100644
index 000000000000..cbaa4439afe1
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/poetry2nix/poetry2nix/shell-scripts.nix
@@ -0,0 +1,41 @@
+{ lib
+, scripts
+, python
+}:
+let
+  mkScript = bin: entrypoint:
+    let
+      elem = builtins.elemAt (builtins.split ":" entrypoint);
+      module = elem 0;
+      fn = elem 2;
+    in
+    ''
+      cat << EOF >> $out/bin/${bin}
+      #!${python.interpreter}
+      import sys
+      import re
+
+      # Insert "" to add CWD to import path
+      sys.path.insert(0, "")
+
+      from ${module} import ${fn}
+
+      if __name__ == '__main__':
+          sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', "", sys.argv[0])
+          sys.exit(${fn}())
+      EOF
+      chmod +x $out/bin/${bin}
+    '';
+in
+python.pkgs.buildPythonPackage {
+  name = "poetry2nix-env-scripts";
+  dontUnpack = true;
+  dontUseSetuptoolsBuild = true;
+  dontConfigure = true;
+  dontUseSetuptoolsCheck = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    ${lib.concatStringsSep "\n" (lib.mapAttrsToList mkScript scripts)}
+  '';
+}
diff --git a/nixpkgs/pkgs/development/tools/profiling/heaptrack/default.nix b/nixpkgs/pkgs/development/tools/profiling/heaptrack/default.nix
index 817bb1171711..ed31f438a0aa 100644
--- a/nixpkgs/pkgs/development/tools/profiling/heaptrack/default.nix
+++ b/nixpkgs/pkgs/development/tools/profiling/heaptrack/default.nix
@@ -6,13 +6,13 @@
 
 mkDerivation rec {
   pname = "heaptrack";
-  version = "1.1.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "KDE";
     repo = "heaptrack";
     rev = "v${version}";
-    sha256 = "0vgwldl5n41r4y3pv8w29gmyln0k2w6m59zrfw9psm4hkxvivzlx";
+    sha256 = "0pw82c26da014i1qxnaib3fqa52ijhf0m4swhjc3qq4hm2dx9bxj";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules ];
diff --git a/nixpkgs/pkgs/development/tools/profiling/oprofile/default.nix b/nixpkgs/pkgs/development/tools/profiling/oprofile/default.nix
index 6e6cb9fc4cf4..ca346cd1f149 100644
--- a/nixpkgs/pkgs/development/tools/profiling/oprofile/default.nix
+++ b/nixpkgs/pkgs/development/tools/profiling/oprofile/default.nix
@@ -8,11 +8,11 @@
 assert withGUI -> qt4 != null;
 
 stdenv.mkDerivation rec {
-  name = "oprofile-1.3.0";
+  name = "oprofile-1.4.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/oprofile/${name}.tar.gz";
-    sha256 = "1rj76vvkhpfn9k04s7jhb813ximfcwd9h5gh18pr4fgcw6yxiplm";
+    sha256 = "04m46ni0ryk4sqmzd6mahwzp7iwhwqzfbmfi42fki261sycnz83v";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/tools/profiling/sysprof/default.nix b/nixpkgs/pkgs/development/tools/profiling/sysprof/default.nix
index 620bce7a0fff..ce7313098822 100644
--- a/nixpkgs/pkgs/development/tools/profiling/sysprof/default.nix
+++ b/nixpkgs/pkgs/development/tools/profiling/sysprof/default.nix
@@ -1,4 +1,5 @@
 { stdenv
+, lib
 , desktop-file-utils
 , fetchurl
 , fetchpatch
@@ -50,7 +51,7 @@ stdenv.mkDerivation rec {
     wrapGAppsHook
     gnome3.adwaita-icon-theme
   ];
-  buildInputs = [ glib gtk3 pango polkit systemd.dev systemd.lib libdazzle ];
+  buildInputs = [ glib gtk3 pango polkit systemd.dev (lib.getLib systemd) libdazzle ];
 
   mesonFlags = [
     "-Dsystemdunitdir=lib/systemd/system"
diff --git a/nixpkgs/pkgs/development/tools/proto-contrib/default.nix b/nixpkgs/pkgs/development/tools/proto-contrib/default.nix
index 90253ed57048..74f47f3f996e 100644
--- a/nixpkgs/pkgs/development/tools/proto-contrib/default.nix
+++ b/nixpkgs/pkgs/development/tools/proto-contrib/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1ivvq5ch9grdrwqq29flv9821kyb16k0cj6wgj5v0dyn63w420aw";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Contributed tools and other packages on top of the Go proto package";
     homepage = "https://github.com/emicklei/proto-contrib";
@@ -20,4 +22,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ kalbasit ];
     platforms = platforms.linux ++ platforms.darwin;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/protoc-gen-doc/default.nix b/nixpkgs/pkgs/development/tools/protoc-gen-doc/default.nix
index 5579d006e97b..1a1991be9499 100644
--- a/nixpkgs/pkgs/development/tools/protoc-gen-doc/default.nix
+++ b/nixpkgs/pkgs/development/tools/protoc-gen-doc/default.nix
@@ -13,6 +13,8 @@ buildGoModule {
 
   vendorSha256 = "17qdpsff8jk7ks5v6ix1rb966x3yvq03vk5bs2zbnxfdra7bv3n6";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Documentation generator plugin for Google Protocol Buffers";
     longDescription = ''
@@ -27,4 +29,4 @@ buildGoModule {
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/prototool/default.nix b/nixpkgs/pkgs/development/tools/prototool/default.nix
index a5cf91b70d1d..e58b89a27363 100644
--- a/nixpkgs/pkgs/development/tools/prototool/default.nix
+++ b/nixpkgs/pkgs/development/tools/prototool/default.nix
@@ -15,6 +15,8 @@ buildGoModule rec {
 
   vendorSha256 = "0gyj0yrri2j4yxmyn4d4vdhaxf2p08srpjcxg9zpaxwv5rrvipav";
 
+  doCheck = false;
+
   postInstall = ''
     wrapProgram "$out/bin/prototool" \
       --prefix PROTOTOOL_PROTOC_BIN_PATH : "${protobuf}/bin/protoc" \
diff --git a/nixpkgs/pkgs/development/tools/purescript/spago/spago.nix b/nixpkgs/pkgs/development/tools/purescript/spago/spago.nix
index 254a7bc97e43..b36bc26433d3 100644
--- a/nixpkgs/pkgs/development/tools/purescript/spago/spago.nix
+++ b/nixpkgs/pkgs/development/tools/purescript/spago/spago.nix
@@ -11,11 +11,11 @@
 }:
 mkDerivation {
   pname = "spago";
-  version = "0.15.1";
+  version = "0.16.0";
   src = fetchgit {
     url = "https://github.com/purescript/spago.git";
-    sha256 = "09ypbm03ap8xfhq803ra3cc01dxcavckn7nis6hi80dk2xxlhc3d";
-    rev = "d5d206ff0f5c686f8b609fb4bc2e866959cc0144";
+    sha256 = "0z4s0z14n1v9wajs7mj2b295rrrw24gdca79drzlv6x1y6dj7sxh";
+    rev = "71b093cdf5e48ded645303281ab4a3ea5b730f5d";
     fetchSubmodules = true;
   };
   isLibrary = true;
diff --git a/nixpkgs/pkgs/development/tools/quicktemplate/default.nix b/nixpkgs/pkgs/development/tools/quicktemplate/default.nix
index d9433f535dad..8f75540f3a61 100644
--- a/nixpkgs/pkgs/development/tools/quicktemplate/default.nix
+++ b/nixpkgs/pkgs/development/tools/quicktemplate/default.nix
@@ -13,13 +13,10 @@ buildGoPackage {
     sha256 = "1pimf5bwivklsr438if6l8by34gr48a05gl6hq07cvc8z6wl01m2";
   };
 
-  enableParallelBuilding = true;
-
   meta = with stdenv.lib; {
     homepage = "https://github.com/valyala/quicktemplate";
     description = "Fast, powerful, yet easy to use template engine for Go";
     license = licenses.mit;
     maintainers = with maintainers; [ chiiruno ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix b/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix
index f4cf500c2f9c..3cb5ae2b9306 100644
--- a/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix
+++ b/nixpkgs/pkgs/development/tools/react-native-debugger/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, unzip, cairo, xorg, gdk-pixbuf, fontconfig, pango, gnome2, atk, gtk2, glib
-, freetype, dbus, nss, nspr, alsaLib, cups, expat, udev, makeDesktopItem
+{ stdenv, fetchurl, unzip, cairo, xorg, gdk-pixbuf, fontconfig, pango, gnome3, atk, at-spi2-atk, at-spi2-core
+, gtk3, glib, freetype, dbus, nss, nspr, alsaLib, cups, expat, udev, makeDesktopItem
 }:
 
 let
@@ -10,7 +10,7 @@ let
     fontconfig
     pango
     atk
-    gtk2
+    gtk3
     glib
     freetype
     dbus
@@ -20,8 +20,8 @@ let
     cups
     expat
     udev
-
-    gnome2.GConf
+    at-spi2-atk
+    at-spi2-core
 
     xorg.libX11
     xorg.libXcursor
@@ -38,11 +38,10 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "react-native-debugger";
-  version = "0.9.10";
-
+  version = "0.11.4";
   src = fetchurl {
     url = "https://github.com/jhen0409/react-native-debugger/releases/download/v${version}/rn-debugger-linux-x64.zip";
-    sha256 = "158275sp37smc8lnrcbj56lp7aa6fj9gzb6fzjgz9r980qgzhia6";
+    sha256 = "1dnlxdqcn90r509ff5003fibkrprdr0ydpnwg5p0xzs6rz3k8698";
   };
 
   buildInputs = [ unzip ];
@@ -52,15 +51,15 @@ in stdenv.mkDerivation rec {
     unzip $src -d $out
 
     mkdir $out/{lib,bin,share}
-    mv $out/lib{node,ffmpeg}.so $out/lib
+    mv $out/{libEGL,libGLESv2,libvk_swiftshader,libffmpeg}.so $out/lib
     mv $out/!(lib|share|bin) $out/share
 
     patchelf \
       --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
       --set-rpath ${rpath}:$out/lib \
-      $out/share/React\ Native\ Debugger
+      $out/share/react-native-debugger
 
-    ln -s $out/share/React\ Native\ Debugger $out/bin/React\ Native\ Debugger
+    ln -s $out/share/react-native-debugger $out/bin/react-native-debugger
 
     install -Dm644 "${desktopItem}/share/applications/"* \
       -t $out/share/applications/
@@ -68,10 +67,10 @@ in stdenv.mkDerivation rec {
 
   desktopItem = makeDesktopItem {
     name = "rndebugger";
-    exec = "React\\ Native\\ Debugger";
+    exec = "react-native-debugger";
     desktopName = "React Native Debugger";
     genericName = "React Native Debugger";
-    categories = "Development;Tools;";
+    categories = "Development;Debugger;";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/tools/rebazel/default.nix b/nixpkgs/pkgs/development/tools/rebazel/default.nix
new file mode 100644
index 000000000000..73a58ee100bf
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rebazel/default.nix
@@ -0,0 +1,21 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+rustPlatform.buildRustPackage rec {
+  pname = "rebazel";
+  version = "0.1.4";
+
+  src = fetchFromGitHub {
+    owner = "meetup";
+    repo = "rebazel";
+    rev = "v${version}";
+    hash = "sha256-v84ZXhtJpejQmP61NmP06+qrtMu/0yb7UyD7U12xlME=";
+  };
+
+  cargoSha256 = "sha256-2FmtbvtNfNoocj3Ly553KBLfOgBAa/eAxOrfZ3NGzzw=";
+
+  meta = with lib; {
+    description = "tool for expediting bazel build workflows";
+    homepage = "https://github.com/meetup/rebazel";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zimbatm ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/reftools/default.nix b/nixpkgs/pkgs/development/tools/reftools/default.nix
index 7f8d1be1a52b..440d2f961337 100644
--- a/nixpkgs/pkgs/development/tools/reftools/default.nix
+++ b/nixpkgs/pkgs/development/tools/reftools/default.nix
@@ -10,7 +10,8 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
-  goPackagePath = "github.com/davidrjenni/reftools";
+  doCheck = false;
+
   excludedPackages = "\\(cmd/fillswitch/test-fixtures\\)";
 
   src = fetchFromGitHub {
@@ -28,4 +29,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ kalbasit ];
     platforms = platforms.linux ++ platforms.darwin;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/renderizer/default.nix b/nixpkgs/pkgs/development/tools/renderizer/default.nix
index 877fdeea8f2b..2b2c57135cb0 100644
--- a/nixpkgs/pkgs/development/tools/renderizer/default.nix
+++ b/nixpkgs/pkgs/development/tools/renderizer/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "13z357ww4j5bmmy8ag6d6gd5b2dib8kby73q8317pqnqzaxrrbcj";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "CLI to render Go template text files";
     inherit (src.meta) homepage;
     license = licenses.gpl3;
     maintainers = with maintainers; [ yurrriq ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/reno/default.nix b/nixpkgs/pkgs/development/tools/reno/default.nix
index 2b082d03b5f3..b05bb2cd26a3 100644
--- a/nixpkgs/pkgs/development/tools/reno/default.nix
+++ b/nixpkgs/pkgs/development/tools/reno/default.nix
@@ -1,27 +1,58 @@
-{ stdenv, fetchurl, pythonPackages }:
+{ stdenv
+, git
+, gnupg1
+, python3Packages
+}:
 
-with pythonPackages; buildPythonApplication rec {
+with python3Packages; buildPythonApplication rec {
   pname = "reno";
-  version = "2.3.2";
+  version = "3.1.0";
 
-  src = fetchurl {
-    url = "mirror://pypi/r/reno/${pname}-${version}.tar.gz";
-    sha256 = "018vl9fj706jjf07xdx8q6761s53mrihjn69yjq09gp0vmp1g7i4";
+  # Must be built from python sdist because of versioning quirks
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "2510e3aae4874674187f88f22f854e6b0ea1881b77039808a68ac1a5e8ee69b6";
   };
 
-  # Don't know how to make tests pass
-  doCheck = false;
+  propagatedBuildInputs = [
+    dulwich
+    pbr
+    pyyaml
+    setuptools  # required for finding pkg_resources at runtime
+  ];
 
-  # Nothing to strip (python files)
-  dontStrip = true;
+  checkInputs = [
+    # Python packages
+    pytestCheckHook
+    docutils
+    fixtures
+    sphinx
+    testtools
+    testscenarios
 
-  propagatedBuildInputs = [ pbr six pyyaml dulwich ];
-  buildInputs = [ Babel ];
+    # Required programs to run all tests
+    git
+    gnupg1
+  ];
+
+  # remove b/c doesn't list all dependencies, and requires a few packages not in nixpkgs
+  postPatch = ''
+    rm test-requirements.txt
+  '';
+
+  disabledTests = [
+    "test_build_cache_db" # expects to be run from a git repository
+  ];
+
+  # verify executable
+  postCheck = ''
+    $out/bin/reno -h
+  '';
 
   meta = with stdenv.lib; {
     description = "Release Notes Manager";
-    homepage    = "http://docs.openstack.org/developer/reno/";
-    license     = licenses.asl20;
-    maintainers = with maintainers; [ guillaumekoenig ];
+    homepage = "https://docs.openstack.org/reno/latest";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ drewrisinger guillaumekoenig ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rgp/default.nix b/nixpkgs/pkgs/development/tools/rgp/default.nix
index dea0512b7d6b..8c3da159d64e 100644
--- a/nixpkgs/pkgs/development/tools/rgp/default.nix
+++ b/nixpkgs/pkgs/development/tools/rgp/default.nix
@@ -13,16 +13,20 @@
 , libXi
 , ncurses5
 , qtbase
+, qtdeclarative
 , zlib
 }:
 
+let
+  buildNum = "2020-09-11-26";
+in
 stdenv.mkDerivation rec {
   pname = "rgp";
-  version = "1.7.0.29";
+  version = "1.8";
 
   src = fetchurl {
-    url = "https://github.com/GPUOpen-Tools/radeon_gpu_profiler/releases/download/v${lib.versions.majorMinor version}/RadeonGPUProfiler_${version}.tgz";
-    sha256 = "d7d4aa92231796a509dfcf92e9618cac98ae6572c12efd0871eb43afa4e8240a";
+    url = "https://github.com/GPUOpen-Tools/radeon_gpu_profiler/releases/download/v${lib.versions.majorMinor version}/RadeonDeveloperTools-${buildNum}.tgz";
+    sha256 = "1lpkh7sfpq697lm4xnkpjfchh8zpy49f4mb3c5qcn7brav5iqwfh";
   };
 
   nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
@@ -38,6 +42,7 @@ stdenv.mkDerivation rec {
     libXi
     ncurses5
     qtbase
+    qtdeclarative
     zlib
   ];
 
diff --git a/nixpkgs/pkgs/development/tools/richgo/default.nix b/nixpkgs/pkgs/development/tools/richgo/default.nix
index 4fc4d4abc618..e6478086f79a 100644
--- a/nixpkgs/pkgs/development/tools/richgo/default.nix
+++ b/nixpkgs/pkgs/development/tools/richgo/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1nvk3akjwfcbvif1w4cglsqplcajlwq3mnvk9b75nmn9qaqfbfjf";
 
+  doCheck = false;
+
   subPackages = [ "." ];
 
   meta = with stdenv.lib; {
@@ -21,4 +23,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ rvolosatovs ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/rq/default.nix b/nixpkgs/pkgs/development/tools/rq/default.nix
index 89ba58ea5f53..68d3bfce06b0 100644
--- a/nixpkgs/pkgs/development/tools/rq/default.nix
+++ b/nixpkgs/pkgs/development/tools/rq/default.nix
@@ -13,7 +13,7 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "0c5vwy3c5ji602dj64z6jqvcpi2xff03zvjbnwihb3ydqwnb3v67";
 
-  buildInputs = [ llvmPackages.clang-unwrapped v8 ] 
+  buildInputs = [ llvmPackages.clang-unwrapped v8 ]
   ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
   configurePhase = ''
@@ -26,6 +26,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dflemstr/rq";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ aristid filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/run/default.nix b/nixpkgs/pkgs/development/tools/run/default.nix
index 518cc3e2557f..41d1a8a29fd8 100644
--- a/nixpkgs/pkgs/development/tools/run/default.nix
+++ b/nixpkgs/pkgs/development/tools/run/default.nix
@@ -12,6 +12,8 @@ buildGoModule rec {
 
   vendorSha256 = "1g5rmiiwqpm8gky9yr5f2a7zsjjmm9i12r7yxj9cz7y3rmw9sw8c";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Easily manage and invoke small scripts and wrappers";
     homepage    = "https://github.com/TekWizely/run";
@@ -19,4 +21,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ rawkode filalex77 ];
     platforms   = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-asm/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-asm/default.nix
index d8aca4045bff..76b49056a3f2 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-asm/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-asm/default.nix
@@ -24,6 +24,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/gnzlbg/cargo-asm";
     license = licenses.mit;
     maintainers = [ maintainers.danieldk ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix
new file mode 100644
index 000000000000..ce01fc1f00c6
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-c/default.nix
@@ -0,0 +1,50 @@
+{ rustPlatform, stdenv, lib, fetchFromGitHub, fetchurl
+, pkg-config, openssl
+, CoreFoundation, libiconv, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-c";
+  version = "0.6.13";
+
+  src = stdenv.mkDerivation rec {
+    name = "${pname}-source-${version}";
+
+    src = fetchFromGitHub {
+      owner = "lu-zero";
+      repo = pname;
+      rev = "v${version}";
+      sha256 = "0ks2w3gclahidv6r6i0d0d6sli7r8wabxzgmhq03czy5w7kr0x56";
+    };
+    cargoLock = fetchurl {
+      url = "https://github.com/lu-zero/${pname}/releases/download/v${version}/Cargo.lock";
+      sha256 = "0czy5q8hkjqyn53p7cjxnxfgwygx2a6casjb4nj5gxss2x3haih6";
+    };
+
+    installPhase = ''
+      mkdir -p $out
+      cp -R ./* $out/
+      cp ${cargoLock} $out/Cargo.lock
+    '';
+  };
+
+  cargoSha256 = "0jjkcawcz6wacx22zir9ay1qsi5ffk7c4gwa6jpky4a94zr1h690";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ openssl ]
+  ++ stdenv.lib.optionals stdenv.isDarwin [ CoreFoundation libiconv Security ];
+
+  meta = with lib; {
+    description = "A cargo subcommand to build and install C-ABI compatibile dynamic and static libraries";
+    longDescription = ''
+      Cargo C-ABI helpers. A cargo applet that produces and installs a correct
+      pkg-config file, a static library and a dynamic library, and a C header
+      to be used by any C (and C-compatible) software.
+    '';
+    homepage = "https://github.com/lu-zero/cargo-c";
+    changelog = "https://github.com/lu-zero/cargo-c/releases/tag/v${version}";
+    license = licenses.mit;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-cache/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-cache/default.nix
new file mode 100644
index 000000000000..0f3571045d67
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-cache/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, rustPlatform, libiconv, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-cache";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "matthiaskrgr";
+    repo = pname;
+    rev = version;
+    sha256 = "02d593w1x8160p4m3jwm1dyvv383cy7njijlcaw49jczxv5isqbi";
+  };
+
+  cargoSha256 = "150ifd7gq6csrasqw91z4nsaj6w7kf69j0w6wydr3z7bdahmlgqw";
+
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
+
+  checkFlagsArray = [ "offline_tests" ];
+
+  meta = with stdenv.lib; {
+    description = "Manage cargo cache (\${CARGO_HOME}, ~/.cargo/), print sizes of dirs and remove dirs selectively";
+    homepage = "https://github.com/matthiaskrgr/cargo-cache";
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ filalex77 ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix
index 1093440ecbfe..750b651651c4 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-crev/default.nix
@@ -1,19 +1,28 @@
-{ stdenv, fetchFromGitHub, rustPlatform, Security, openssl, pkgconfig, libiconv, curl }:
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+, perl
+, pkg-config
+, Security
+, curl
+, libiconv
+, openssl
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-crev";
-  version = "0.16.1";
+  version = "0.17.0";
 
   src = fetchFromGitHub {
     owner = "crev-dev";
     repo = "cargo-crev";
     rev = "v${version}";
-    sha256 = "16da30zbv8f7w8bxsssmrpzm41a966wby1l6ldyiiszs980qh7c5";
+    sha256 = "1s5wb5m0d77qi90pyxld98ap37xnxrz3sz5gazq0pp5i9c9xa124";
   };
 
-  cargoSha256 = "0z365pgdd95apk2zz2n0gx85s0gf8ccfbqippxqn1fdsppihib6g";
+  cargoSha256 = "10dzvzjqib751h2p1pl0z3dy2d17xwrcp9vyfrfr185yximcw2wx";
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ perl pkg-config ];
 
   buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [ Security libiconv curl ];
 
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix
index 70fee45a873c..34126a7713ff 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-deny/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-deny";
-  version = "0.6.8";
+  version = "0.7.0";
 
   src = fetchFromGitHub {
     owner = "EmbarkStudios";
     repo = pname;
     rev = version;
-    sha256 = "0nv3min7jyrv4scn7bhizc9vmqhmv6sg0nvfnr0m59pm5806vdpi";
+    sha256 = "0mfccjcll7dxrhdi2bhfbggmkqdp8cmq5vf8vbb05qzpvlswvkf7";
   };
 
-  cargoSha256 = "1vywm3iqs3qnkrvi7i70sv21hznn3y3hza1i9gvcxfmh03wzhwx0";
+  cargoSha256 = "1gp5m432273mr0zwq1kdswdjgp0kajr0imymqyc4yj9i931by1xv";
 
   nativeBuildInputs = [ perl pkgconfig ];
 
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-embed/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-embed/default.nix
new file mode 100644
index 000000000000..dafcd1ded2fd
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-embed/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib
+, rustPlatform, fetchFromGitHub
+, libusb1, pkg-config, rustfmt }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-embed";
+  version = "0.8.0";
+
+  src = fetchFromGitHub {
+    owner = "probe-rs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0klkgl7c42vhqxj6svw26lcr7rccq89bl17jn3p751x6281zvr35";
+  };
+
+  cargoSha256 = "0w21q2fpr077m8jr24ld3qjimwk1m4fy9dh14fq9nv5xd4f5s8n8";
+
+  nativeBuildInputs = [ pkg-config rustfmt ];
+  buildInputs = [ libusb1 ];
+
+  meta = with lib; {
+    description = "A cargo extension for working with microcontrollers.";
+    homepage = "http://probe.rs/";
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ fooker ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix
index ebe23e19737f..c32a87e7839f 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-expand/default.nix
@@ -2,23 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-expand";
-  version = "0.6.0";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "dtolnay";
     repo = pname;
     rev = version;
-    sha256 = "1xinaxxdsyhy8jl6albw8q9nl12iq11xny6a6a55niqzhvy1sdmp";
+    sha256 = "0bdv6h3mzmv46pdyvwl0v0bg719dlsxlx378ws6vgi1cga24g37i";
   };
 
-  cargoSha256 = "0i326vny4gygalsimsgkqsvlq09av8pv9a7a0yxcbk170a7zyxb0";
+  cargoSha256 = "0qpihfgfqxw5fyhn124c5lbfaxr717bqf8mrbagh3vdgvk75j0qz";
 
   meta = with lib; {
     description =
       "A utility and Cargo subcommand designed to let people expand macros in their Rust source code";
     homepage = "https://github.com/dtolnay/cargo-expand";
     license = with licenses; [ mit asl20 ];
-    platforms = platforms.all;
     maintainers = with maintainers; [ xrelkd ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-flash/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-flash/default.nix
new file mode 100644
index 000000000000..d4844de21a07
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-flash/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, lib
+, rustPlatform, fetchFromGitHub
+, libusb1, pkg-config, rustfmt }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-flash";
+  version = "0.8.0";
+
+  src = fetchFromGitHub {
+    owner = "probe-rs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1bcpv1r4pdpp22w7za7kdy7jl487x3nlwxiz6sqq3iq6wq3j9zj0";
+  };
+
+  cargoSha256 = "1pf117fgw9x9diksqv58cw7i0kzmp25yj73y5ll69sk46b6z4j90";
+
+  nativeBuildInputs = [ pkg-config rustfmt ];
+  buildInputs = [ libusb1 ];
+
+  meta = with lib; {
+    description = "A cargo extension for working with microcontrollers.";
+    homepage = "http://probe.rs/";
+    license = with licenses; [ asl20 /* or */ mit ];
+    maintainers = with maintainers; [ fooker ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-fund/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-fund/default.nix
new file mode 100644
index 000000000000..06f99268d0b7
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-fund/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, pkg-config, rustPlatform, Security, curl, openssl, libiconv }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-fund";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "acfoltzer";
+    repo = pname;
+    rev = version;
+    sha256 = "1jim5bgq3fc33391qpa1q1csbzqf4hk1qyfzwxpcs5pb4ixb6vgk";
+  };
+
+  cargoSha256 = "181gcmaw2w5a6ah8a2ahsnc1zkadpmx1azkwh2a6x8myhzw2dxsj";
+
+  # The tests need a GitHub API token.
+  doCheck = false;
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [ Security libiconv curl ];
+
+  meta = with stdenv.lib; {
+    description = "Discover funding links for your project's dependencies";
+    homepage = "https://github.com/acfoltzer/cargo-fund";
+    license = with licenses; [ mit /* or */ asl20 ];
+    maintainers = with maintainers; [ johntitor ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix
index 7379fbffe5eb..14c849ac0afe 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-fuzz/default.nix
@@ -1,23 +1,24 @@
-{ stdenv, fetchFromGitHub, fetchurl, runCommand, rustPlatform }:
+{ stdenv, fetchFromGitHub, rustPlatform }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-fuzz";
-  version = "0.5.4";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "rust-fuzz";
     repo = "cargo-fuzz";
     rev = version;
-    sha256 = "0qy4xb7bxyw2x2ya7zmbkz48wxb69jcnvvj7021f1kyc6wdwcxs7";
+    sha256 = "1d4bq9140bri8cd9zcxh5hhc51vr0s6jadjhwkp688w7k10rq7w8";
   };
 
-  cargoSha256 = "0d24crgx6wrb1p96w2yww7cs474x2pz4i6f26cry8pf5dwqfsqdm";
+  cargoSha256 = "0zxhak79f50m8nw95ny733mk4x2f7kyk6q9v4f7jr2rkcldhgrpr";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "Command line helpers for fuzzing";
     homepage = "https://github.com/rust-fuzz/cargo-fuzz";
     license = with licenses; [ mit asl20 ];
     maintainers = [ maintainers.ekleog ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix
index 09956976fb69..d30c3ad62923 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-geiger/default.nix
@@ -50,6 +50,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rust-secure-code/cargo-geiger";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ evanjs ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix
index 360cb469e6cd..5a2627620277 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-generate/default.nix
@@ -29,6 +29,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ashleygwilliams/cargo-generate";
     license = licenses.asl20;
     maintainers = [ maintainers.turbomack ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix
index f16a5d5727a1..5a8c9150279a 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-inspect/default.nix
@@ -2,24 +2,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-inspect";
-  version = "0.10.1";
+  version = "0.10.3";
 
   src = fetchFromGitHub {
     owner = "mre";
     repo = pname;
     rev = version;
-    sha256 = "0rjy8jlar939fkl7wi8a6zxsrl4axz2nrhv745ny8x38ii4sfbzr";
+    sha256 = "026vc8d0jkc1d7dlp3ldmwks7svpvqzl0k5niri8a12cl5w5b9hj";
   };
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoSha256 = "0v7g9rkw7axy99vcfi7sy2pw7wnpq424jvd8xchcv8ghh8yw9lyc";
+  cargoSha256 = "1ryi5qi1zz2yljyj4rn84q9zkzafc9w4nw3zc01hlzpnb1sjw5sw";
 
   meta = with lib; {
     description = "See what Rust is doing behind the curtains";
     homepage = "https://github.com/mre/cargo-inspect";
     license = with licenses; [ mit asl20 ];
-    platforms = platforms.all;
     maintainers = with maintainers; [ minijackson ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-make/Cargo.lock b/nixpkgs/pkgs/development/tools/rust/cargo-make/Cargo.lock
deleted file mode 100644
index 7ba549f28da8..000000000000
--- a/nixpkgs/pkgs/development/tools/rust/cargo-make/Cargo.lock
+++ /dev/null
@@ -1,1109 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-[[package]]
-name = "adler32"
-version = "1.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2"
-
-[[package]]
-name = "aho-corasick"
-version = "0.7.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "ansi_term"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "arrayref"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
-
-[[package]]
-name = "arrayvec"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
-
-[[package]]
-name = "attohttpc"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d5db1932a9d70d5091139d6b0e04ec6a4d9f9184041c15d71a5ef954cb3c5312"
-dependencies = [
- "flate2",
- "http",
- "log",
- "native-tls",
- "openssl",
- "url",
-]
-
-[[package]]
-name = "atty"
-version = "0.2.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-dependencies = [
- "hermit-abi",
- "libc",
- "winapi",
-]
-
-[[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.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53d1ccbaf7d9ec9537465a97bf19edc1a4e158ecb49fc16178202238c569cc42"
-
-[[package]]
-name = "bitflags"
-version = "1.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-
-[[package]]
-name = "blake2b_simd"
-version = "0.5.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
-dependencies = [
- "arrayref",
- "arrayvec",
- "constant_time_eq",
-]
-
-[[package]]
-name = "bytes"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "130aac562c0dd69c56b3b1cc8ffd2e17be31d0b6c25b61c96b76231aa23e39e1"
-
-[[package]]
-name = "cargo-make"
-version = "0.31.0"
-dependencies = [
- "ci_info",
- "clap",
- "colored",
- "dirs",
- "duckscript",
- "duckscriptsdk",
- "envmnt",
- "fern",
- "fsio",
- "git_info",
- "glob",
- "home",
- "indexmap",
- "log",
- "run_script",
- "rust_info",
- "rusty-hook",
- "semver",
- "serde",
- "serde_derive",
- "serde_json",
- "shell2batch",
- "toml",
-]
-
-[[package]]
-name = "cc"
-version = "1.0.54"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bbb73db36c1246e9034e307d0fba23f9a2e251faa47ade70c1bd252220c8311"
-
-[[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.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19c5f9baeac8a1176ca7fc58a0cc1abadd84d360365a93d1dd31e926f3f502b"
-dependencies = [
- "envmnt",
-]
-
-[[package]]
-name = "clap"
-version = "2.33.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
-dependencies = [
- "ansi_term",
- "atty",
- "bitflags",
- "strsim",
- "textwrap",
- "unicode-width",
- "vec_map",
-]
-
-[[package]]
-name = "colored"
-version = "1.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4ffc801dacf156c5854b9df4f425a626539c3a6ef7893cc0c5084a23f0b6c59"
-dependencies = [
- "atty",
- "lazy_static",
- "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.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "core-foundation-sys"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
-
-[[package]]
-name = "crc32fast"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
-dependencies = [
- "autocfg",
- "cfg-if",
- "lazy_static",
-]
-
-[[package]]
-name = "dirs"
-version = "2.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3"
-dependencies = [
- "cfg-if",
- "dirs-sys",
-]
-
-[[package]]
-name = "dirs-sys"
-version = "0.3.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a"
-dependencies = [
- "libc",
- "redox_users",
- "winapi",
-]
-
-[[package]]
-name = "duckscript"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f4c3da85470786f086bd14c0b299092715a99f8d8bb0ac2b787cbaab71e6ba6"
-dependencies = [
- "fsio",
-]
-
-[[package]]
-name = "duckscriptsdk"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b258092ada5ae7b5dda45906ebcae3e77c419a98e324750bc92af2b8912dd65e"
-dependencies = [
- "attohttpc",
- "base64 0.12.1",
- "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",
- "encoding-index-korean",
- "encoding-index-simpchinese",
- "encoding-index-singlebyte",
- "encoding-index-tradchinese",
-]
-
-[[package]]
-name = "encoding-index-japanese"
-version = "1.20141219.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
-dependencies = [
- "encoding_index_tests",
-]
-
-[[package]]
-name = "encoding-index-korean"
-version = "1.20141219.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
-dependencies = [
- "encoding_index_tests",
-]
-
-[[package]]
-name = "encoding-index-simpchinese"
-version = "1.20141219.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
-dependencies = [
- "encoding_index_tests",
-]
-
-[[package]]
-name = "encoding-index-singlebyte"
-version = "1.20141219.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
-dependencies = [
- "encoding_index_tests",
-]
-
-[[package]]
-name = "encoding-index-tradchinese"
-version = "1.20141219.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
-dependencies = [
- "encoding_index_tests",
-]
-
-[[package]]
-name = "encoding_index_tests"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
-
-[[package]]
-name = "envmnt"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5fba7e7d8c007e12db7b3bd6f04b8e47e206c9173d9c75413a042ccc941723c8"
-dependencies = [
- "fsio",
- "indexmap",
-]
-
-[[package]]
-name = "fern"
-version = "0.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c9a4820f0ccc8a7afd67c39a0f1a0f4b07ca1725164271a64939d7aeb9af065"
-dependencies = [
- "log",
-]
-
-[[package]]
-name = "flate2"
-version = "1.0.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2cfff41391129e0a856d6d822600b8d71179d46879e310417eb9c762eb178b42"
-dependencies = [
- "cfg-if",
- "crc32fast",
- "libc",
- "miniz_oxide",
-]
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[package]]
-name = "foreign-types"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-dependencies = [
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-[[package]]
-name = "fs_extra"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f2a4a2034423744d2cc7ca2068453168dcdb82c438419e639a26bd87839c674"
-
-[[package]]
-name = "fsio"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2131cb03096f67334dfba2f0bc46afc5564b08a919d042c6e217e2665741fc54"
-dependencies = [
- "rand",
- "users",
-]
-
-[[package]]
-name = "getopts"
-version = "0.2.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
-dependencies = [
- "unicode-width",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.1.14"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
-dependencies = [
- "cfg-if",
- "libc",
- "wasi",
-]
-
-[[package]]
-name = "git_info"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "641b847f0375f4b2c595438eefc17a9c0fbf47b400cbdd1ad9332bf1e16b779d"
-
-[[package]]
-name = "glob"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.13"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91780f809e750b0a89f5544be56617ff6b1227ee485bcb06ebe10cdf89bd3b71"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "home"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2456aef2e6b6a9784192ae780c0f15bc57df0e918585282325e8c8ac27737654"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "http"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9"
-dependencies = [
- "bytes",
- "fnv",
- "itoa",
-]
-
-[[package]]
-name = "idna"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
-dependencies = [
- "matches",
- "unicode-bidi",
- "unicode-normalization",
-]
-
-[[package]]
-name = "indexmap"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c398b2b113b55809ceb9ee3e753fcbac793f1956663f3c36549c1346015c2afe"
-dependencies = [
- "autocfg",
- "serde",
-]
-
-[[package]]
-name = "itoa"
-version = "0.4.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",
- "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.71"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"
-
-[[package]]
-name = "log"
-version = "0.4.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
-dependencies = [
- "cfg-if",
-]
-
-[[package]]
-name = "matches"
-version = "0.1.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
-
-[[package]]
-name = "memchr"
-version = "2.3.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
-
-[[package]]
-name = "meval"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f79496a5651c8d57cd033c5add8ca7ee4e3d5f7587a4777484640d9cb60392d9"
-dependencies = [
- "fnv",
- "nom",
-]
-
-[[package]]
-name = "miniz_oxide"
-version = "0.3.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa679ff6578b1cddee93d7e82e263b94a575e0bfced07284eb0c037c1d2416a5"
-dependencies = [
- "adler32",
-]
-
-[[package]]
-name = "native-tls"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b0d88c06fe90d5ee94048ba40409ef1d9315d86f6f38c2efdaad4fb50c58b2d"
-dependencies = [
- "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.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
-dependencies = [
- "hermit-abi",
- "libc",
-]
-
-[[package]]
-name = "openssl"
-version = "0.10.29"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cee6d85f4cb4c4f59a6a85d5b68a233d280c82e29e822913b9c8b129fbf20bdd"
-dependencies = [
- "bitflags",
- "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.58"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de"
-dependencies = [
- "autocfg",
- "cc",
- "libc",
- "pkg-config",
- "vcpkg",
-]
-
-[[package]]
-name = "percent-encoding"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
-
-[[package]]
-name = "pkg-config"
-version = "0.3.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "beae6331a816b1f65d04c45b078fd8e6c93e8071771f41b8163255bbd8d7c8fa"
-dependencies = [
- "unicode-xid",
-]
-
-[[package]]
-name = "quote"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54a21852a652ad6f610c9510194f398ff6f8692e334fd1145fed931f7fbe44ea"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "rand"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-dependencies = [
- "getrandom",
- "libc",
- "rand_chacha",
- "rand_core",
- "rand_hc",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-dependencies = [
- "ppv-lite86",
- "rand_core",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "rand_hc"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-dependencies = [
- "rand_core",
-]
-
-[[package]]
-name = "redox_syscall"
-version = "0.1.56"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
-
-[[package]]
-name = "redox_users"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431"
-dependencies = [
- "getrandom",
- "redox_syscall",
- "rust-argon2",
-]
-
-[[package]]
-name = "regex"
-version = "1.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
- "thread_local",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.6.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
-
-[[package]]
-name = "remove_dir_all"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "run_script"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8e8fc35067815a04a35fe2144361e1257b0f1041f0d413664f38e44d1a73cb4"
-dependencies = [
- "fsio",
-]
-
-[[package]]
-name = "rust-argon2"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017"
-dependencies = [
- "base64 0.11.0",
- "blake2b_simd",
- "constant_time_eq",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "rust_info"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "02b506bd796703b88d74a3edb529acde6c71d81bb078c392eecd60a745cb1d2f"
-
-[[package]]
-name = "rusty-hook"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27138b73a8ce63ae918707a5e3b57f9b0c0842a57b82f0e43474cf4e3aaf0ff4"
-dependencies = [
- "ci_info",
- "getopts",
- "nias",
- "toml",
-]
-
-[[package]]
-name = "ryu"
-version = "1.0.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
-
-[[package]]
-name = "same-file"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "schannel"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
-dependencies = [
- "lazy_static",
- "winapi",
-]
-
-[[package]]
-name = "security-framework"
-version = "0.4.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "64808902d7d99f78eaddd2b4e2509713babc3dc3c85ad6f4c447680f3c01e535"
-dependencies = [
- "bitflags",
- "core-foundation",
- "core-foundation-sys",
- "libc",
- "security-framework-sys",
-]
-
-[[package]]
-name = "security-framework-sys"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17bf11d99252f512695eb468de5516e5cf75455521e69dfe343f3b74e4748405"
-dependencies = [
- "core-foundation-sys",
- "libc",
-]
-
-[[package]]
-name = "semver"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "394cec28fa623e00903caf7ba4fa6fb9a0e260280bb8cdbbba029611108a0190"
-dependencies = [
- "semver-parser",
-]
-
-[[package]]
-name = "semver-parser"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-
-[[package]]
-name = "serde"
-version = "1.0.111"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c9124df5b40cbd380080b2cc6ab894c040a3070d995f5c9dc77e18c34a8ae37d"
-
-[[package]]
-name = "serde_derive"
-version = "1.0.111"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f2c3ac8e6ca1e9c80b8be1023940162bf81ae3cffbb1809474152f2ce1eb250"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.53"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "993948e75b189211a9b31a7528f950c6adc21f9720b6438ff80a7fa2f864cea2"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "shell2batch"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "185a52ee351c1001753c9e3b2eb48c525ff7f51803a4f2cef4365b5c3b743f65"
-dependencies = [
- "regex",
-]
-
-[[package]]
-name = "smallvec"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4"
-
-[[package]]
-name = "strsim"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-
-[[package]]
-name = "syn"
-version = "1.0.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93a56fabc59dce20fe48b6c832cc249c713e7ed88fa28b0ee0a3bfcaae5fe4e2"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-xid",
-]
-
-[[package]]
-name = "tempfile"
-version = "3.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
-dependencies = [
- "cfg-if",
- "libc",
- "rand",
- "redox_syscall",
- "remove_dir_all",
- "winapi",
-]
-
-[[package]]
-name = "textwrap"
-version = "0.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-dependencies = [
- "unicode-width",
-]
-
-[[package]]
-name = "thiserror"
-version = "1.0.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b13f926965ad00595dd129fa12823b04bbf866e9085ab0a5f2b05b850fbfc344"
-dependencies = [
- "thiserror-impl",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "893582086c2f98cde18f906265a65b5030a074b1046c674ae898be6519a7f479"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "thread_local"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
-dependencies = [
- "lazy_static",
-]
-
-[[package]]
-name = "toml"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "uname"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b72f89f0ca32e4db1c04e2a72f5345d59796d4866a1ee0609084569f73683dc8"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "unicode-bidi"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
-dependencies = [
- "matches",
-]
-
-[[package]]
-name = "unicode-normalization"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4"
-dependencies = [
- "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",
- "matches",
- "percent-encoding",
-]
-
-[[package]]
-name = "users"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c72f4267aea0c3ec6d07eaabea6ead7c5ddacfafc5e22bcf8d186706851fb4cf"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "vcpkg"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55d1e41d56121e07f1e223db0a4def204e45c85425f6a16d462fd07c8d10d74c"
-
-[[package]]
-name = "vec_map"
-version = "0.8.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
-
-[[package]]
-name = "walkdir"
-version = "2.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
-dependencies = [
- "same-file",
- "winapi",
- "winapi-util",
-]
-
-[[package]]
-name = "wasi"
-version = "0.9.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-
-[[package]]
-name = "which"
-version = "4.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd3edc3cf5458851a4d6a2329232bd5f42c7f9bbe4c4782c4ef9ce37e5d101b2"
-dependencies = [
- "libc",
- "thiserror",
-]
-
-[[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",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix
index d4023dcf2549..a1e9f7971f4d 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-make/default.nix
@@ -1,30 +1,22 @@
-{ stdenv, fetchurl, runCommand, fetchFromGitHub, rustPlatform, Security, openssl, pkg-config }:
+{ stdenv, fetchurl, runCommand, fetchCrate, rustPlatform, Security, openssl, pkg-config
+, SystemConfiguration
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-make";
-  version = "0.31.0";
+  version = "0.32.4";
 
-  src =
-    let
-      source = fetchFromGitHub {
-        owner = "sagiegurari";
-        repo = pname;
-        rev = version;
-        sha256 = "0svb3avmmkgwsv1dvzgzixp5fvcl93hn8xb3zx729jq8a47l2vsi";
-      };
-    in
-    runCommand "source" {} ''
-      cp -R ${source} $out
-      chmod +w $out
-      cp ${./Cargo.lock} $out/Cargo.lock
-    '';
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "04x363wz82f0sr4128f1nk1wxnnszxsmaxjs92mbvmpbvry82ivq";
+  };
 
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ openssl ]
-    ++ stdenv.lib.optionals stdenv.isDarwin [ Security ];
+    ++ stdenv.lib.optionals stdenv.isDarwin [ Security SystemConfiguration ];
 
-  cargoSha256 = "0yk06kpqjfc39dxk9f67c5qijnm8f8lvrb9da1kn8ql8dv8crsw2";
+  cargoSha256 = "1fgcxgm800sr0y6ab7c42l335b6c00cx0f2r5rgayi645a47a1zf";
 
   # Some tests fail because they need network access.
   # However, Travis ensures a proper build.
@@ -37,6 +29,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/sagiegurari/cargo-make";
     license = licenses.asl20;
     maintainers = with maintainers; [ xrelkd ma27 ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-raze/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-raze/default.nix
index 96b4cd078bc7..8df03a4bd15c 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-raze/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-raze/default.nix
@@ -26,6 +26,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/google/cargo-raze";
     license = licenses.asl20;
     maintainers = with maintainers; [ elasticdog ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix
index 2dfbfeeb1794..72883ab4508e 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-sweep/default.nix
@@ -17,7 +17,6 @@ rustPlatform.buildRustPackage rec {
     description = "A Cargo subcommand for cleaning up unused build files generated by Cargo";
     homepage = "https://github.com/holmgr/cargo-sweep";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ xrelkd ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-sync-readme/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-sync-readme/default.nix
new file mode 100644
index 000000000000..f42868826d55
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-sync-readme/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-sync-readme";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "phaazon";
+    repo = pname;
+    rev = version;
+    sha256 = "1c38q87fyfmj6nlwdpavb1xxpi26ncywkgqcwbvblad15c6ydcyc";
+  };
+
+  cargoSha256 = "1x15q6wv5278hm3ns2wmw4i8602g35y1jyv1b8wa5i4dnh52dj83";
+
+  meta = with stdenv.lib; {
+    description = "A cargo plugin that generates a Markdown section in your README based on your Rust documentation";
+    homepage = "https://github.com/phaazon/cargo-sync-readme";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ b4dm4n ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix
index e724f26f7823..b7879adcc31c 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-udeps/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-udeps";
-  version = "0.1.12";
+  version = "0.1.14";
 
   src = fetchFromGitHub {
     owner = "est31";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1hf2zkv3yd72kkvdwigms3wzchmh4i56ym3swpx35dij2h8g08mx";
+    sha256 = "0imvq63i3s9qmm0x8cbaknjap2yfmpzva3y0sxmgkcm8ajkvp114";
   };
 
-  cargoSha256 = "0xb9fmcrsm47zkb26jw5rsi9wfz3jh19fbc74gnsrffdmfsd7mm2";
+  cargoSha256 = "196w9rgz4pwqvkiy839kqz765ljqx1k129w4nvxgxv3rcmy4lbzm";
 
   nativeBuildInputs = [ pkgconfig ];
 
@@ -26,6 +26,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/est31/cargo-udeps";
     license = licenses.mit;
     maintainers = with maintainers; [ b4dm4n ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix
index 850b6d2e1e71..8bd4bf6fff8f 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-watch/default.nix
@@ -1,29 +1,30 @@
-{ stdenv, lib, rustPlatform, fetchFromGitHub, CoreServices }:
+{ stdenv, lib, rustPlatform, fetchFromGitHub, CoreServices, rust }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-watch";
-  version = "7.4.1";
+  version = "7.5.0";
 
   src = fetchFromGitHub {
     owner = "passcod";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1nq7sfdxvqldj94laz562y4cvgagm67b6a5b7bzxdip0sf1l11f8";
+    sha256 = "181v922nx8152ymszig1kw6y0mnix6si1zfnv6vqgr5r53pwkbc1";
   };
 
-  cargoSha256 = "1rjx3k8li8ck5cdygm4pd2i5wkslr6d9z9vl2vp0x6hqv1gcv5zh";
+  cargoSha256 = "1abhzi1396x8lnxvakj34nysl3ybvsaf21j678wzaqwj16sd3w3d";
 
   buildInputs = lib.optional stdenv.isDarwin CoreServices;
 
   # `test with_cargo` tries to call cargo-watch as a cargo subcommand
   # (calling cargo-watch with command `cargo watch`)
-  checkPhase = "PATH=target/debug:$PATH cargo test";
+  preCheck = ''
+    export PATH="$(pwd)/target/${rust.toRustTarget stdenv.hostPlatform}/release:$PATH"
+  '';
 
   meta = with lib; {
     description = "A Cargo subcommand for watching over Cargo project's source";
     homepage = "https://github.com/passcod/cargo-watch";
     license = licenses.cc0;
-    platforms = platforms.all;
     maintainers = with maintainers; [ xrelkd ivan ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/cargo-xbuild/default.nix b/nixpkgs/pkgs/development/tools/rust/cargo-xbuild/default.nix
index 6af944e9c5d6..912f5199b4c8 100644
--- a/nixpkgs/pkgs/development/tools/rust/cargo-xbuild/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/cargo-xbuild/default.nix
@@ -2,22 +2,21 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-xbuild";
-  version = "0.5.29";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "rust-osdev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "05wg1xx2mcwb9cplmrpg13jimddlzmv7hf5g3vjppjp8kz2gb7zj";
+    sha256 = "0kmnwx2fg4nq009dzwk840z8n4rayvpk6hjpryczv56sjdcqm2zv";
   };
 
-  cargoSha256 = "1s2xsfld29shvjzyp16y263hnbqxrq8i2557y0g09xmfm5x0jhix";
+  cargoSha256 = "0vnhaf7b2ai151wjadgj7pm5hdcj7rv1ckj5mjn74r3vvds2jdn7";
 
   meta = with stdenv.lib; {
     description = "Automatically cross-compiles the sysroot crates core, compiler_builtins, and alloc";
     homepage = "https://github.com/rust-osdev/cargo-xbuild";
     license = with licenses; [ mit asl20 ];
-    maintainers = with maintainers; [ xrelkd ];
-    platforms = platforms.all;
+    maintainers = with maintainers; [ johntitor xrelkd ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/maturin/Cargo.lock.patch b/nixpkgs/pkgs/development/tools/rust/maturin/Cargo.lock.patch
deleted file mode 100644
index 9f7d46d4901f..000000000000
--- a/nixpkgs/pkgs/development/tools/rust/maturin/Cargo.lock.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/Cargo.lock b/Cargo.lock
-index 09ecb81..c37c646 100644
---- a/Cargo.lock
-+++ b/Cargo.lock
-@@ -733,7 +733,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
- 
- [[package]]
- name = "maturin"
--version = "0.8.0-beta.1"
-+version = "0.8.0"
- dependencies = [
-  "base64 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
-  "bytesize 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
diff --git a/nixpkgs/pkgs/development/tools/rust/maturin/default.nix b/nixpkgs/pkgs/development/tools/rust/maturin/default.nix
index e4ee97d02427..723ea94152ca 100644
--- a/nixpkgs/pkgs/development/tools/rust/maturin/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/maturin/default.nix
@@ -5,21 +5,16 @@ let
   inherit (darwin.apple_sdk.frameworks) Security;
 in rustPlatform.buildRustPackage rec {
   name = "maturin-${version}";
-  version = "0.8.0";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "PyO3";
     repo = "maturin";
     rev = "v${version}";
-    sha256 = "1fjai0c0j8zzaj4c186dkbvx6cpj0vi3sc1qbjbgn2cm8azsd6m6";
+    sha256 = "08l5r7d75id6qzf8xhkjv4hkdr64cq4dbcmdjywmvf9szjbnr65z";
   };
 
-  # The maturin 0.8.0 lockfile has an incorrect version for maturin
-  # itself. The upstream lockfiles are normally correct, so this
-  # should be removed post-0.8.0.
-  cargoPatches = [ ./Cargo.lock.patch ];
-
-  cargoSha256 = "01sh523fi46k5xwdslhnmjz128jkdw47gp9bd8gim3ay13zkcn1i";
+  cargoSha256 = "1n0sxkhcdg2rbzqd7826pa7sxlnn0c2sc8l6lc98xw21vvqisc8n";
 
   nativeBuildInputs = [ pkgconfig ];
 
@@ -35,6 +30,5 @@ in rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/PyO3/maturin";
     license = licenses.mit;
     maintainers = [ maintainers.danieldk ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/racer/default.nix b/nixpkgs/pkgs/development/tools/rust/racer/default.nix
index 0a29577e0cdd..86f1989729eb 100644
--- a/nixpkgs/pkgs/development/tools/rust/racer/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/racer/default.nix
@@ -2,22 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "racer";
-  version = "2.1.30";
+  version = "2.1.35";
 
   src = fetchFromGitHub {
     owner = "racer-rust";
     repo = "racer";
-    rev = "c2b0080243fefdad7f7b223e8a7fdef3e1f0fa77";
-    sha256 = "0svvdkfqpk2rw0wxyrhkxy553k55lg7jxc0ly4w1195iwv14ad3y";
+    rev = "v${version}";
+    sha256 = "0c00b81s7abnadjbf4i39lhdkipx7z44sr8p78jd1fl61yyrspli";
   };
 
-  cargoSha256 = "0zaqa89z3nf23s2q1jpmfz4lygh4zq9ymql71d748fgjy9psr449";
+  cargoSha256 = "1nbp2jp65fqwsq9i04iyi4pbszs035w6id50p5ypw234cqxznikm";
 
-  buildInputs = [ makeWrapper ]
-                ++ stdenv.lib.optional stdenv.isDarwin Security;
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
   # a nightly compiler is required unless we use this cheat code.
-  RUSTC_BOOTSTRAP=1;
+  RUSTC_BOOTSTRAP = 1;
 
   RUST_SRC_PATH = rustPlatform.rustcSrc;
   postInstall = ''
@@ -45,6 +45,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/racer-rust/racer";
     license = licenses.mit;
     maintainers = with maintainers; [ jagajaga ma27 ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/racerd/default.nix b/nixpkgs/pkgs/development/tools/rust/racerd/default.nix
index 72588b37415a..26e2a5ba50e3 100644
--- a/nixpkgs/pkgs/development/tools/rust/racerd/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/racerd/default.nix
@@ -37,9 +37,9 @@ rustPlatform.buildRustPackage rec {
   '';
 
   meta = with stdenv.lib; {
+    broken = true;
     description = "JSON/HTTP Server based on racer for adding Rust support to editors and IDEs";
     homepage = "https://github.com/jwilm/racerd";
     license = licenses.asl20;
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix
index 43bf5415ce01..5d66f6e21007 100644
--- a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/default.nix
@@ -2,10 +2,10 @@
 
 {
   rust-analyzer-unwrapped = callPackage ./generic.nix rec {
-    rev = "2020-06-01";
+    rev = "2020-09-21";
     version = "unstable-${rev}";
-    sha256 = "0chm47mrd4hybhvzn4cndq2ck0mj948mm181p1i1j1w0ms7zk1fg";
-    cargoSha256 = "0yaz50f7hirlcs8bxc5dh170lch9l1gscwayan71k3pz23wkvlzs";
+    sha256 = "1wjm69r1c6s8a4rd91csg7c48bp8jamxsrm5m6rg3bk2gqp8yzz8";
+    cargoSha256 = "089w2i6lvpjxkxghkb2mij9sxfxlcc1zv4iq4qmzq8gnc6ddz12d";
   };
 
   rust-analyzer = callPackage ./wrapper.nix {} {
diff --git a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/generic.nix b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/generic.nix
index ae6ad80cdd9a..3bd6d1ccee14 100644
--- a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/generic.nix
+++ b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/generic.nix
@@ -1,9 +1,10 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, darwin
-, useJemalloc ? false
+{ lib, stdenv, fetchFromGitHub, rustPlatform, darwin, cmake
+, useMimalloc ? false
 , doCheck ? true
 
 # Version specific args
-, rev, version, sha256, cargoSha256 }:
+, rev, version, sha256, cargoSha256
+}:
 
 rustPlatform.buildRustPackage {
   pname = "rust-analyzer-unwrapped";
@@ -15,29 +16,41 @@ rustPlatform.buildRustPackage {
     inherit rev sha256;
   };
 
+  patches = [
+    # FIXME: Temporary fix for our rust 1.45.0 since rust-analyzer requires 1.46.0
+    ./no-loop-in-const-fn.patch
+    ./no-option-zip.patch
+  ];
+
   buildAndTestSubdir = "crates/rust-analyzer";
 
-  cargoBuildFlags = lib.optional useJemalloc "--features=jemalloc";
+  cargoBuildFlags = lib.optional useMimalloc "--features=mimalloc";
 
-  nativeBuildInputs = lib.optionals doCheck [ rustPlatform.rustcSrc ];
+  nativeBuildInputs = lib.optional useMimalloc cmake;
 
   buildInputs = lib.optionals stdenv.hostPlatform.isDarwin
     [ darwin.apple_sdk.frameworks.CoreServices ];
 
+  RUST_ANALYZER_REV = rev;
+
   inherit doCheck;
-  # Skip tests running `rustup` for `cargo fmt`.
-  preCheck = ''
-    fakeRustup=$(mktemp -d)
-    ln -s $(command -v true) $fakeRustup/rustup
-    export PATH=$PATH''${PATH:+:}$fakeRustup
+  preCheck = lib.optionalString doCheck ''
     export RUST_SRC_PATH=${rustPlatform.rustcSrc}
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    versionOutput="$($out/bin/rust-analyzer --version)"
+    echo "'rust-analyzer --version' returns: $versionOutput"
+    [[ "$versionOutput" == "rust-analyzer ${rev}" ]]
+    runHook postInstallCheck
+  '';
+
   meta = with stdenv.lib; {
     description = "An experimental modular compiler frontend for the Rust language";
     homepage = "https://github.com/rust-analyzer/rust-analyzer";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ oxalica ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-loop-in-const-fn.patch b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-loop-in-const-fn.patch
new file mode 100644
index 000000000000..e750b3c4e122
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-loop-in-const-fn.patch
@@ -0,0 +1,223 @@
+This patch revert 4b989009e3839cfc6f021d1552a46561cee6cde2 (CONST LOOPS ARE HERE).
+
+diff --git a/crates/parser/src/grammar/expressions.rs b/crates/parser/src/grammar/expressions.rs
+index 5f885edfd..e72929f8c 100644
+--- a/crates/parser/src/grammar/expressions.rs
++++ b/crates/parser/src/grammar/expressions.rs
+@@ -316,7 +316,7 @@ fn expr_bp(p: &mut Parser, mut r: Restrictions, bp: u8) -> (Option<CompletedMark
+ }
+
+ const LHS_FIRST: TokenSet =
+-    atom::ATOM_EXPR_FIRST.union(TokenSet::new(&[T![&], T![*], T![!], T![.], T![-]]));
++    atom::ATOM_EXPR_FIRST.union(token_set![T![&], T![*], T![!], T![.], T![-]]);
+
+ fn lhs(p: &mut Parser, r: Restrictions) -> Option<(CompletedMarker, BlockLike)> {
+     let m;
+diff --git a/crates/parser/src/grammar/expressions/atom.rs b/crates/parser/src/grammar/expressions/atom.rs
+index 66a92a4e1..ba6dd2fbc 100644
+--- a/crates/parser/src/grammar/expressions/atom.rs
++++ b/crates/parser/src/grammar/expressions/atom.rs
+@@ -15,7 +15,7 @@ use super::*;
+ //     let _ = b"e";
+ //     let _ = br"f";
+ // }
+-pub(crate) const LITERAL_FIRST: TokenSet = TokenSet::new(&[
++pub(crate) const LITERAL_FIRST: TokenSet = token_set![
+     TRUE_KW,
+     FALSE_KW,
+     INT_NUMBER,
+@@ -25,8 +25,8 @@ pub(crate) const LITERAL_FIRST: TokenSet = TokenSet::new(&[
+     STRING,
+     RAW_STRING,
+     BYTE_STRING,
+-    RAW_BYTE_STRING,
+-]);
++    RAW_BYTE_STRING
++];
+
+ pub(crate) fn literal(p: &mut Parser) -> Option<CompletedMarker> {
+     if !p.at_ts(LITERAL_FIRST) {
+@@ -39,7 +39,7 @@ pub(crate) fn literal(p: &mut Parser) -> Option<CompletedMarker> {
+
+ // E.g. for after the break in `if break {}`, this should not match
+ pub(super) const ATOM_EXPR_FIRST: TokenSet =
+-    LITERAL_FIRST.union(paths::PATH_FIRST).union(TokenSet::new(&[
++    LITERAL_FIRST.union(paths::PATH_FIRST).union(token_set![
+         T!['('],
+         T!['{'],
+         T!['['],
+@@ -59,9 +59,9 @@ pub(super) const ATOM_EXPR_FIRST: TokenSet =
+         T![loop],
+         T![for],
+         LIFETIME,
+-    ]));
++    ]);
+
+-const EXPR_RECOVERY_SET: TokenSet = TokenSet::new(&[LET_KW, R_DOLLAR]);
++const EXPR_RECOVERY_SET: TokenSet = token_set![LET_KW, R_DOLLAR];
+
+ pub(super) fn atom_expr(p: &mut Parser, r: Restrictions) -> Option<(CompletedMarker, BlockLike)> {
+     if let Some(m) = literal(p) {
+diff --git a/crates/parser/src/grammar/items.rs b/crates/parser/src/grammar/items.rs
+index 22810e6fb..8fd8f3b80 100644
+--- a/crates/parser/src/grammar/items.rs
++++ b/crates/parser/src/grammar/items.rs
+@@ -26,7 +26,7 @@ pub(super) fn mod_contents(p: &mut Parser, stop_on_r_curly: bool) {
+     }
+ }
+
+-pub(super) const ITEM_RECOVERY_SET: TokenSet = TokenSet::new(&[
++pub(super) const ITEM_RECOVERY_SET: TokenSet = token_set![
+     FN_KW,
+     STRUCT_KW,
+     ENUM_KW,
+@@ -41,7 +41,7 @@ pub(super) const ITEM_RECOVERY_SET: TokenSet = TokenSet::new(&[
+     USE_KW,
+     MACRO_KW,
+     T![;],
+-]);
++];
+
+ pub(super) fn item_or_macro(p: &mut Parser, stop_on_r_curly: bool) {
+     let m = p.start();
+diff --git a/crates/parser/src/grammar/paths.rs b/crates/parser/src/grammar/paths.rs
+index 5d297e2d6..52562afa4 100644
+--- a/crates/parser/src/grammar/paths.rs
++++ b/crates/parser/src/grammar/paths.rs
+@@ -3,7 +3,7 @@
+ use super::*;
+
+ pub(super) const PATH_FIRST: TokenSet =
+-    TokenSet::new(&[IDENT, T![self], T![super], T![crate], T![:], T![<]]);
++    token_set![IDENT, T![self], T![super], T![crate], T![:], T![<]];
+
+ pub(super) fn is_path_start(p: &Parser) -> bool {
+     is_use_path_start(p) || p.at(T![<])
+diff --git a/crates/parser/src/grammar/patterns.rs b/crates/parser/src/grammar/patterns.rs
+index 796f206e1..07b1d6dd5 100644
+--- a/crates/parser/src/grammar/patterns.rs
++++ b/crates/parser/src/grammar/patterns.rs
+@@ -2,18 +2,9 @@
+
+ use super::*;
+
+-pub(super) const PATTERN_FIRST: TokenSet =
+-    expressions::LITERAL_FIRST.union(paths::PATH_FIRST).union(TokenSet::new(&[
+-        T![box],
+-        T![ref],
+-        T![mut],
+-        T!['('],
+-        T!['['],
+-        T![&],
+-        T![_],
+-        T![-],
+-        T![.],
+-    ]));
++pub(super) const PATTERN_FIRST: TokenSet = expressions::LITERAL_FIRST
++    .union(paths::PATH_FIRST)
++    .union(token_set![T![box], T![ref], T![mut], T!['('], T!['['], T![&], T![_], T![-], T![.]]);
+
+ pub(crate) fn pattern(p: &mut Parser) {
+     pattern_r(p, PAT_RECOVERY_SET);
+@@ -83,7 +74,7 @@ fn pattern_single_r(p: &mut Parser, recovery_set: TokenSet) {
+ }
+
+ const PAT_RECOVERY_SET: TokenSet =
+-    TokenSet::new(&[LET_KW, IF_KW, WHILE_KW, LOOP_KW, MATCH_KW, R_PAREN, COMMA]);
++    token_set![LET_KW, IF_KW, WHILE_KW, LOOP_KW, MATCH_KW, R_PAREN, COMMA];
+
+ fn atom_pat(p: &mut Parser, recovery_set: TokenSet) -> Option<CompletedMarker> {
+     let m = match p.nth(0) {
+diff --git a/crates/parser/src/grammar/types.rs b/crates/parser/src/grammar/types.rs
+index 1ea130ac5..9d00eb9b9 100644
+--- a/crates/parser/src/grammar/types.rs
++++ b/crates/parser/src/grammar/types.rs
+@@ -2,7 +2,7 @@
+
+ use super::*;
+
+-pub(super) const TYPE_FIRST: TokenSet = paths::PATH_FIRST.union(TokenSet::new(&[
++pub(super) const TYPE_FIRST: TokenSet = paths::PATH_FIRST.union(token_set![
+     T!['('],
+     T!['['],
+     T![<],
+@@ -16,16 +16,16 @@ pub(super) const TYPE_FIRST: TokenSet = paths::PATH_FIRST.union(TokenSet::new(&[
+     T![for],
+     T![impl],
+     T![dyn],
+-]));
++]);
+
+-const TYPE_RECOVERY_SET: TokenSet = TokenSet::new(&[
++const TYPE_RECOVERY_SET: TokenSet = token_set![
+     T![')'],
+     T![,],
+     L_DOLLAR,
+     // test_err struct_field_recover
+     // struct S { f pub g: () }
+     T![pub],
+-]);
++];
+
+ pub(crate) fn type_(p: &mut Parser) {
+     type_with_bounds_cond(p, true);
+diff --git a/crates/parser/src/token_set.rs b/crates/parser/src/token_set.rs
+index a68f0144e..994017acf 100644
+--- a/crates/parser/src/token_set.rs
++++ b/crates/parser/src/token_set.rs
+@@ -9,21 +9,15 @@ pub(crate) struct TokenSet(u128);
+ impl TokenSet {
+     pub(crate) const EMPTY: TokenSet = TokenSet(0);
+
+-    pub(crate) const fn new(kinds: &[SyntaxKind]) -> TokenSet {
+-        let mut res = 0u128;
+-        let mut i = 0;
+-        while i < kinds.len() {
+-            res |= mask(kinds[i]);
+-            i += 1
+-        }
+-        TokenSet(res)
++    pub(crate) const fn singleton(kind: SyntaxKind) -> TokenSet {
++        TokenSet(mask(kind))
+     }
+
+     pub(crate) const fn union(self, other: TokenSet) -> TokenSet {
+         TokenSet(self.0 | other.0)
+     }
+
+-    pub(crate) const fn contains(&self, kind: SyntaxKind) -> bool {
++    pub(crate) fn contains(&self, kind: SyntaxKind) -> bool {
+         self.0 & mask(kind) != 0
+     }
+ }
+@@ -32,10 +26,16 @@ const fn mask(kind: SyntaxKind) -> u128 {
+     1u128 << (kind as usize)
+ }
+
++#[macro_export]
++macro_rules! token_set {
++    ($($t:expr),*) => { TokenSet::EMPTY$(.union(TokenSet::singleton($t)))* };
++    ($($t:expr),* ,) => { token_set!($($t),*) };
++}
++
+ #[test]
+ fn token_set_works_for_tokens() {
+     use crate::SyntaxKind::*;
+-    let ts = TokenSet::new(&[EOF, SHEBANG]);
++    let ts = token_set![EOF, SHEBANG];
+     assert!(ts.contains(EOF));
+     assert!(ts.contains(SHEBANG));
+     assert!(!ts.contains(PLUS));
+diff --git a/xtask/src/install.rs b/xtask/src/install.rs
+index d829790d7..b25a6e301 100644
+--- a/xtask/src/install.rs
++++ b/xtask/src/install.rs
+@@ -7,7 +7,7 @@ use anyhow::{bail, format_err, Context, Result};
+ use crate::not_bash::{pushd, run};
+
+ // Latest stable, feel free to send a PR if this lags behind.
+-const REQUIRED_RUST_VERSION: u32 = 46;
++const REQUIRED_RUST_VERSION: u32 = 43;
+
+ pub struct InstallCmd {
+     pub client: Option<ClientOpt>,
diff --git a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-option-zip.patch b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-option-zip.patch
new file mode 100644
index 000000000000..b2cf679cee95
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/no-option-zip.patch
@@ -0,0 +1,72 @@
+diff --git a/crates/assists/src/handlers/merge_imports.rs b/crates/assists/src/handlers/merge_imports.rs
+index fe33cee53..2184a4154 100644
+--- a/crates/assists/src/handlers/merge_imports.rs
++++ b/crates/assists/src/handlers/merge_imports.rs
+@@ -32,7 +32,7 @@ pub(crate) fn merge_imports(acc: &mut Assists, ctx: &AssistContext) -> Option<()
+     if let Some(use_item) = tree.syntax().parent().and_then(ast::Use::cast) {
+         let (merged, to_delete) =
+             next_prev().filter_map(|dir| neighbor(&use_item, dir)).find_map(|use_item2| {
+-                try_merge_imports(&use_item, &use_item2, MergeBehaviour::Full).zip(Some(use_item2))
++                Some((try_merge_imports(&use_item, &use_item2, MergeBehaviour::Full)?, use_item2))
+             })?;
+
+         rewriter.replace_ast(&use_item, &merged);
+@@ -44,7 +44,7 @@ pub(crate) fn merge_imports(acc: &mut Assists, ctx: &AssistContext) -> Option<()
+     } else {
+         let (merged, to_delete) =
+             next_prev().filter_map(|dir| neighbor(&tree, dir)).find_map(|use_tree| {
+-                try_merge_trees(&tree, &use_tree, MergeBehaviour::Full).zip(Some(use_tree))
++                Some((try_merge_trees(&tree, &use_tree, MergeBehaviour::Full)?, use_tree))
+             })?;
+
+         rewriter.replace_ast(&tree, &merged);
+diff --git a/crates/assists/src/utils/insert_use.rs b/crates/assists/src/utils/insert_use.rs
+index 09f4a2224..2c3a0ca0b 100644
+--- a/crates/assists/src/utils/insert_use.rs
++++ b/crates/assists/src/utils/insert_use.rs
+@@ -280,7 +280,7 @@ fn common_prefix(lhs: &ast::Path, rhs: &ast::Path) -> Option<(ast::Path, ast::Pa
+         }
+         res = Some((lhs_curr.clone(), rhs_curr.clone()));
+
+-        match lhs_curr.parent_path().zip(rhs_curr.parent_path()) {
++        match zip(lhs_curr.parent_path(), rhs_curr.parent_path()) {
+             Some((lhs, rhs)) => {
+                 lhs_curr = lhs;
+                 rhs_curr = rhs;
+@@ -324,7 +324,7 @@ fn path_cmp(a: &ast::Path, b: &ast::Path) -> Ordering {
+             // cmp_by would be useful for us here but that is currently unstable
+             // cmp doesnt work due the lifetimes on text's return type
+             a.zip(b)
+-                .flat_map(|(seg, seg2)| seg.name_ref().zip(seg2.name_ref()))
++                .flat_map(|(seg, seg2)| zip(seg.name_ref(), seg2.name_ref()))
+                 .find_map(|(a, b)| match a.text().cmp(b.text()) {
+                     ord @ Ordering::Greater | ord @ Ordering::Less => Some(ord),
+                     Ordering::Equal => None,
+@@ -404,8 +404,8 @@ fn find_insert_position(
+     let path_node_iter = scope
+         .as_syntax_node()
+         .children()
+-        .filter_map(|node| ast::Use::cast(node.clone()).zip(Some(node)))
+-        .flat_map(|(use_, node)| use_.use_tree().and_then(|tree| tree.path()).zip(Some(node)));
++        .filter_map(|node| zip(ast::Use::cast(node.clone()), Some(node)))
++        .flat_map(|(use_, node)| zip(use_.use_tree().and_then(|tree| tree.path()), Some(node)));
+     // Iterator that discards anything thats not in the required grouping
+     // This implementation allows the user to rearrange their import groups as this only takes the first group that fits
+     let group_iter = path_node_iter
+@@ -423,7 +423,7 @@ fn find_insert_position(
+             segments
+                 .clone()
+                 .zip(check_segments)
+-                .flat_map(|(seg, seg2)| seg.name_ref().zip(seg2.name_ref()))
++                .flat_map(|(seg, seg2)| zip(seg.name_ref(), seg2.name_ref()))
+                 .all(|(l, r)| l.text() <= r.text())
+         });
+     match post_insert {
+@@ -931,3 +931,7 @@ use foo::bar::baz::Qux;",
+         assert_eq!(result.map(|u| u.to_string()), None);
+     }
+ }
++
++fn zip<T, U>(x: Option<T>, y: Option<U>) -> Option<(T, U)> {
++    Some((x?, y?))
++}
diff --git a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/update.sh b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/update.sh
index 929112542596..b0435be72083 100755
--- a/nixpkgs/pkgs/development/tools/rust/rust-analyzer/update.sh
+++ b/nixpkgs/pkgs/development/tools/rust/rust-analyzer/update.sh
@@ -49,13 +49,16 @@ sed "s/cargoSha256 = \".*\"/cargoSha256 = \"$cargo_sha256\"/" \
 build_deps="../../../../misc/vscode-extensions/rust-analyzer/build-deps"
 # We need devDependencies to build vsix.
 jq '{ name, version, dependencies: (.dependencies + .devDependencies) }' "$node_src/package.json" \
-    >"$build_deps/package.json"
+    >"$build_deps/package.json.new"
 
-# FIXME: Lock the version of @type/vscode, the latest one (1.43.0) will cause build failure.
-vscode_lock_ver="$(jq '.dependencies."@types/vscode".version' --raw-output "$node_src/package-lock.json")"
-jq '.dependencies."@types/vscode" = "'$vscode_lock_ver'"' "$build_deps/package.json" >"$build_deps/package.json.new"
-mv "$build_deps"/package.json{.new,}
+if cmp --quiet "$build_deps"/package.json{.new,}; then
+    echo "package.json not changed, skip updating nodePackages"
+    rm "$build_deps"/package.json.new
+else
+    echo "package.json changed, updating nodePackages"
+    mv "$build_deps"/package.json{.new,}
 
-pushd "../../../node-packages"
-./generate.sh
-popd
+    pushd "../../../node-packages"
+    ./generate.sh
+    popd
+fi
diff --git a/nixpkgs/pkgs/development/tools/rust/rustup/0001-dynamically-patchelf-binaries.patch b/nixpkgs/pkgs/development/tools/rust/rustup/0001-dynamically-patchelf-binaries.patch
index d46ad59109e9..13649b387a3e 100644
--- a/nixpkgs/pkgs/development/tools/rust/rustup/0001-dynamically-patchelf-binaries.patch
+++ b/nixpkgs/pkgs/development/tools/rust/rustup/0001-dynamically-patchelf-binaries.patch
@@ -1,30 +1,24 @@
 diff --git a/src/dist/component/package.rs b/src/dist/component/package.rs
-index 4b432785..fa45e87e 100644
+index 3beddf54..0f859b8d 100644
 --- a/src/dist/component/package.rs
 +++ b/src/dist/component/package.rs
-@@ -109,10 +109,11 @@ impl Package for DirectoryPackage {
-             match &*part.0 {
-                 "file" => {
-                     if self.copy {
--                        builder.copy_file(path.clone(), &src_path)?
-+                        builder.copy_file(path.clone(), &src_path)?;
+@@ -113,6 +113,7 @@ impl Package for DirectoryPackage {
                      } else {
--                        builder.move_file(path.clone(), &src_path)?
-+                        builder.move_file(path.clone(), &src_path)?;
+                         builder.move_file(path.clone(), &src_path)?
                      }
 +                    nix_patchelf_if_needed(&target.prefix().path().join(path.clone()), &src_path)
                  }
                  "dir" => {
                      if self.copy {
-@@ -135,6 +136,22 @@ impl Package for DirectoryPackage {
+@@ -135,6 +136,29 @@ impl Package for DirectoryPackage {
      }
  }
  
 +fn nix_patchelf_if_needed(dest_path: &Path, src_path: &Path) {
-+    let is_bin = if let Some(p) = src_path.parent() {
-+        p.ends_with("bin")
++    let (is_bin, is_lib) = if let Some(p) = src_path.parent() {
++        (p.ends_with("bin"), p.ends_with("lib"))
 +    } else {
-+        false
++        (false, false)
 +    };
 +
 +    if is_bin {
@@ -34,6 +28,13 @@ index 4b432785..fa45e87e 100644
 +            .arg(dest_path)
 +            .output();
 +    }
++    else if is_lib {
++        let _ = ::std::process::Command::new("@patchelf@/bin/patchelf")
++            .arg("--set-rpath")
++            .arg("@libPath@")
++            .arg(dest_path)
++            .output();
++    }
 +}
 +
  #[derive(Debug)]
diff --git a/nixpkgs/pkgs/development/tools/rust/rustup/default.nix b/nixpkgs/pkgs/development/tools/rust/rustup/default.nix
index 959eb6875ce3..e5ef80b87ee4 100644
--- a/nixpkgs/pkgs/development/tools/rust/rustup/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/rustup/default.nix
@@ -1,34 +1,41 @@
 { stdenv, lib, runCommand, patchelf
-, fetchFromGitHub, rustPlatform
-, pkgconfig, curl, Security, CoreServices }:
+, fetchFromGitHub, rustPlatform, makeWrapper
+, pkgconfig, curl, zlib, Security, CoreServices }:
+
+let
+  libPath = lib.makeLibraryPath [
+    zlib # libz.so.1
+  ];
+in
 
 rustPlatform.buildRustPackage rec {
   pname = "rustup";
-  version = "1.21.1";
+  version = "1.22.1";
 
   src = fetchFromGitHub {
     owner = "rust-lang";
     repo = "rustup";
     rev = version;
-    sha256 = "0d7l3j8js16zgdx37kykavr343v65vchldz88j38jjyc43pcm2pg";
+    sha256 = "0nf42pkyn87y0n93vd63bihx74h4bpisv74aqldg3vcav2iv35s1";
   };
 
-  cargoSha256 = "1y13kfski36rfvqkp3mxxn12aidp339j7rigv49msyr004ac5y8s";
+  cargoSha256 = "0ghjrx7y25s6rjp06h0iyv4195x7daj57bqza01i1j4hm5nkhqhi";
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
 
   buildInputs = [
-    curl
+    curl zlib
   ] ++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices Security ];
 
   cargoBuildFlags = [ "--features no-self-update" ];
 
   patches = lib.optionals stdenv.isLinux [
-    (runCommand "0001-dynamically-patchelf-binaries.patch" { CC=stdenv.cc; patchelf = patchelf; } ''
-       export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
-       substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
-         --subst-var patchelf \
-         --subst-var dynamicLinker
+    (runCommand "0001-dynamically-patchelf-binaries.patch" { CC=stdenv.cc; patchelf = patchelf; libPath = "$ORIGIN/../lib:${libPath}"; } ''
+     export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
+     substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
+       --subst-var patchelf \
+       --subst-var dynamicLinker \
+       --subst-var libPath
     '')
   ];
 
@@ -46,6 +53,8 @@ rustPlatform.buildRustPackage rec {
     done
     popd
 
+    wrapProgram $out/bin/rustup --prefix "LD_LIBRARY_PATH" : "${libPath}"
+
     # tries to create .rustup
     export HOME=$(mktemp -d)
     mkdir -p "$out/share/"{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions}
@@ -66,6 +75,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://www.rustup.rs/";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = [ maintainers.mic92 ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix b/nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix
index 733504435ec9..348fe6d9c71f 100644
--- a/nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix
+++ b/nixpkgs/pkgs/development/tools/rust/svd2rust/default.nix
@@ -23,6 +23,5 @@ buildRustPackage rec {
     description = "Generate Rust register maps (`struct`s) from SVD files";
     homepage = "https://github.com/rust-embedded/svd2rust";
     license = with licenses; [ mit asl20 ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/scalafmt/default.nix b/nixpkgs/pkgs/development/tools/scalafmt/default.nix
index 0905c27d4c1c..0f14f52295e8 100644
--- a/nixpkgs/pkgs/development/tools/scalafmt/default.nix
+++ b/nixpkgs/pkgs/development/tools/scalafmt/default.nix
@@ -2,7 +2,7 @@
 
 let
   baseName = "scalafmt";
-  version = "2.5.2";
+  version = "2.6.4";
   deps = stdenv.mkDerivation {
     name = "${baseName}-deps-${version}";
     buildCommand = ''
@@ -13,7 +13,7 @@ let
     '';
     outputHashMode = "recursive";
     outputHashAlgo = "sha256";
-    outputHash     = "14sfpzhd7r8srl9qyrdfqwmgrircqsgrr5hwvg8h1vaiwakq7m00";
+    outputHash     = "1h19rsxsn2piifillv29nwks2k9l391jwygjbfy8pc0ha8yi63mw";
   };
 in
 stdenv.mkDerivation {
diff --git a/nixpkgs/pkgs/development/tools/selenium/chromedriver/default.nix b/nixpkgs/pkgs/development/tools/selenium/chromedriver/default.nix
index 8aad3230003e..fc743d560168 100644
--- a/nixpkgs/pkgs/development/tools/selenium/chromedriver/default.nix
+++ b/nixpkgs/pkgs/development/tools/selenium/chromedriver/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchurl, cairo, fontconfig, freetype, gdk-pixbuf, glib
 , glibc, gtk2, libX11, makeWrapper, nspr, nss, pango, unzip, gconf
-, libXi, libXrender, libXext
+, libxcb, libXi, libXrender, libXext
 }:
 let
   allSpecs = {
     x86_64-linux = {
       system = "linux64";
-      sha256 = "149p43zaz45malmff1274r2bwjcyjwsdickivk3pd0mvnjbfid2r";
+      sha256 = "0absr1fp2h87gpyw6jxj2f08sbhkkh3pf13145hfyzdvajj5rfjy";
     };
 
     x86_64-darwin = {
       system = "mac64";
-      sha256 = "1xpyqxpsz3r653ls67s6alv4g2vr4lxf29gyxc162ikywyrx80nr";
+      sha256 = "1p9k92fgyx0xis6r50vhcpx3iws2gaspq3dnpigglv3bj9yg8zvi";
     };
   };
 
@@ -23,12 +23,12 @@ let
     cairo fontconfig freetype
     gdk-pixbuf glib gtk2 gconf
     libX11 nspr nss pango libXrender
-    gconf libXext libXi
+    gconf libxcb libXext libXi
   ];
 in
 stdenv.mkDerivation rec {
   pname = "chromedriver";
-  version = "83.0.4103.39";
+  version = "85.0.4183.87";
 
   src = fetchurl {
     url = "https://chromedriver.storage.googleapis.com/${version}/chromedriver_${spec.system}.zip";
diff --git a/nixpkgs/pkgs/development/tools/skaffold/default.nix b/nixpkgs/pkgs/development/tools/skaffold/default.nix
index e104784fbe8f..f397348416c9 100644
--- a/nixpkgs/pkgs/development/tools/skaffold/default.nix
+++ b/nixpkgs/pkgs/development/tools/skaffold/default.nix
@@ -2,17 +2,16 @@
 
 buildGoPackage rec {
   pname = "skaffold";
-  version = "1.11.0";
-  # rev is the ${version} commit, mainly for skaffold version command output
-  rev = "931a70a6334436735bfc4ff7633232dd5fc73cc1";
+  version = "1.14.0";
 
   goPackagePath = "github.com/GoogleContainerTools/skaffold";
   subPackages = ["cmd/skaffold"];
 
   buildFlagsArray = let t = "${goPackagePath}/pkg/skaffold"; in  ''
     -ldflags=
+      -s -w
       -X ${t}/version.version=v${version}
-      -X ${t}/version.gitCommit=${rev}
+      -X ${t}/version.gitCommit=${src.rev}
       -X ${t}/version.buildDate=unknown
   '';
 
@@ -20,7 +19,7 @@ buildGoPackage rec {
     owner = "GoogleContainerTools";
     repo = "skaffold";
     rev = "v${version}";
-    sha256 = "035xp34m8kzb75mivgf3kw026n2h6g2a7j2mi32nxl1a794w36zi";
+    sha256 = "18wk8cnp0sc47drgjc0iis4dkqwr9h5yxi40c1gjsiscrvy5akvc";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/nixpkgs/pkgs/development/tools/skopeo/default.nix b/nixpkgs/pkgs/development/tools/skopeo/default.nix
index 45b6867197ef..db5f392b2ce6 100644
--- a/nixpkgs/pkgs/development/tools/skopeo/default.nix
+++ b/nixpkgs/pkgs/development/tools/skopeo/default.nix
@@ -1,7 +1,6 @@
 { stdenv
 , buildGoModule
 , fetchFromGitHub
-, runCommand
 , gpgme
 , lvm2
 , btrfs-progs
@@ -10,24 +9,25 @@
 , installShellFiles
 , makeWrapper
 , fuse-overlayfs
-, nixosTests
 }:
 
 buildGoModule rec {
   pname = "skopeo";
-  version = "1.0.0";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "containers";
     repo = "skopeo";
-    sha256 = "1zg0agf8x7fa8zdzfzgncm64j363lmxrqjhdzsx6mlig87k17p05";
+    sha256 = "1v7k3ki10i6082r7zswblyirx6zck674y6bw3plssw4p1l2611rd";
   };
 
   outputs = [ "out" "man" ];
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   nativeBuildInputs = [ pkg-config go-md2man installShellFiles makeWrapper ];
 
   buildInputs = [ gpgme ]
@@ -35,22 +35,18 @@ buildGoModule rec {
 
   buildPhase = ''
     patchShebangs .
-    make binary-local
+    make bin/skopeo docs
   '';
 
   installPhase = ''
-    make install-binary PREFIX=$out
-    make install-docs MANINSTALLDIR="$man/share/man"
+    install -Dm755 bin/skopeo -t $out/bin
+    installManPage docs/*.[1-9]
     installShellCompletion --bash completions/bash/skopeo
-  '';
-
-  postInstall = stdenv.lib.optionals stdenv.isLinux ''
+  '' + stdenv.lib.optionalString stdenv.isLinux ''
     wrapProgram $out/bin/skopeo \
       --prefix PATH : ${stdenv.lib.makeBinPath [ fuse-overlayfs ]}
   '';
 
-  passthru.tests.docker-tools = nixosTests.docker-tools;
-
   meta = with stdenv.lib; {
     description = "A command line utility for various operations on container images and image repositories";
     homepage = "https://github.com/containers/skopeo";
diff --git a/nixpkgs/pkgs/development/tools/so/default.nix b/nixpkgs/pkgs/development/tools/so/default.nix
new file mode 100644
index 000000000000..0ee2359c8413
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/so/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, rustPlatform, fetchFromGitHub, openssl, pkg-config, libiconv, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "so";
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    owner = "samtay";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "09zswxxli9f5ayjwmvqhkp1yv2s4f435dcfp4cyia1zddbrh2zck";
+  };
+
+  cargoSha256 = "1ddbhy1plag4ckbmlyj47wnky7vgmfa68msl3hl25h1lwmzaf1aq";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ openssl ] ++ stdenv.lib.optionals stdenv.isDarwin [
+    libiconv Security
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A TUI interface to the StackExchange network";
+    homepage = "https://github.com/samtay/so";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mredaelli ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/spring-boot-cli/default.nix b/nixpkgs/pkgs/development/tools/spring-boot-cli/default.nix
index b59ef341dffe..38573e075146 100644
--- a/nixpkgs/pkgs/development/tools/spring-boot-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/spring-boot-cli/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "spring-boot-cli";
-  version = "2.3.0";
+  version = "2.3.2";
 
   src = fetchzip {
     url = "https://repo.spring.io/release/org/springframework/boot/${pname}/${version}.RELEASE/${pname}-${version}.RELEASE-bin.zip";
-    sha256 = "1zjbgs1qx75jgxc46x9380iqh8pfgacih38ad3qxd0106a8lcp5h";
+    sha256 = "1zqfnxz57234227rp303iwis0mjkkjkpcqnj9jgw78gykjnqdmmq";
   };
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
diff --git a/nixpkgs/pkgs/development/tools/statik/default.nix b/nixpkgs/pkgs/development/tools/statik/default.nix
index e26431b26875..f535fa055ed0 100644
--- a/nixpkgs/pkgs/development/tools/statik/default.nix
+++ b/nixpkgs/pkgs/development/tools/statik/default.nix
@@ -4,7 +4,6 @@ buildGoPackage {
   pname = "statik";
   version = "unstable-2019-07-31";
   goPackagePath = "github.com/rakyll/statik";
-  goDeps = ./deps.nix;
 
   src = fetchFromGitHub {
     owner = "rakyll";
@@ -13,13 +12,10 @@ buildGoPackage {
     sha256 = "15wwgrprfq36pa13b9anp7097q1fqcad28hirvivybmc011p0fri";
   };
 
-  enableParallelBuilding = true;
-
   meta = with stdenv.lib; {
     homepage = "https://github.com/rakyll/statik";
     description = "Embed files into a Go executable ";
     license = licenses.asl20;
     maintainers = with maintainers; [ chiiruno ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/statik/deps.nix b/nixpkgs/pkgs/development/tools/statik/deps.nix
deleted file mode 100644
index 0429d8876b29..000000000000
--- a/nixpkgs/pkgs/development/tools/statik/deps.nix
+++ /dev/null
@@ -1,3 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-]
diff --git a/nixpkgs/pkgs/development/tools/summon/default.nix b/nixpkgs/pkgs/development/tools/summon/default.nix
new file mode 100644
index 000000000000..e01c60e3a89c
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/summon/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, buildGoModule, fetchFromGitHub, lib, patchResolver ? true }:
+
+with stdenv.lib;
+
+buildGoModule rec {
+  pname = "summon";
+  version = "0.8.2";
+
+  src = fetchFromGitHub {
+    owner = "cyberark";
+    repo = "summon";
+    rev = "v${version}";
+    sha256 = "1z4xnrncwvp3rfm97zvc0ivvw2fh1hrjhj3rplvidzxjfyasbvwv";
+  };
+
+  vendorSha256 = "1597vrs4b7k6gkmkvf7xnd38rvjixmlcz0j7npmik9nbkm57l74m";
+
+  subPackages = [ "cmd" ];
+
+  # Patches provider resolver to support resolving unqualified names
+  # from $PATH, e.g. `summon -p gopass` instead of `summon -p $(which gopass)`
+  patches = optional patchResolver [ ./resolve-paths.patch ];
+
+  postInstall = ''
+    mv $out/bin/cmd $out/bin/summon
+  '';
+
+  meta = with lib; {
+    description =
+      "CLI that provides on-demand secrets access for common DevOps tools";
+    homepage = "https://cyberark.github.io/summon";
+    license = lib.licenses.mit;
+    maintainers = with maintainers; [ quentini ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/summon/resolve-paths.patch b/nixpkgs/pkgs/development/tools/summon/resolve-paths.patch
new file mode 100644
index 000000000000..cd49c50e2bda
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/summon/resolve-paths.patch
@@ -0,0 +1,39 @@
+From dd34727ebfbd59738084eeb7c2a020e40a4d0abe Mon Sep 17 00:00:00 2001
+From: Quentin <Quentin Inkling>
+Date: Mon, 29 Jun 2020 17:35:04 +0300
+Subject: [PATCH] Patch for
+
+---
+ provider/provider.go | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+diff --git a/provider/provider.go b/provider/provider.go
+index c1e28d9..f20fdaa 100644
+--- a/provider/provider.go
++++ b/provider/provider.go
+@@ -78,7 +78,22 @@ func expandPath(provider string) string {
+ 	if path.Base(provider) != provider {
+ 		return provider
+ 	}
++
++	var (
++		stdOut bytes.Buffer
++		stdErr bytes.Buffer
++	)
++	cmd := exec.Command("which", provider)
++	cmd.Stdout = &stdOut
++	cmd.Stderr = &stdErr
++	err := cmd.Run()
++
++	if err == nil {
++		return strings.TrimSpace(stdOut.String())
++	}
++
+ 	return path.Join(DefaultPath, provider)
++
+ }
+ 
+ func getDefaultPath() string {
+-- 
+2.27.0
+
diff --git a/nixpkgs/pkgs/development/tools/swiftformat/default.nix b/nixpkgs/pkgs/development/tools/swiftformat/default.nix
index ac4502b05ab7..c47955695f5c 100644
--- a/nixpkgs/pkgs/development/tools/swiftformat/default.nix
+++ b/nixpkgs/pkgs/development/tools/swiftformat/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "swiftformat";
-  version = "0.44.2";
+  version = "0.44.9";
 
   src = fetchFromGitHub {
     owner = "nicklockwood";
     repo = "SwiftFormat";
     rev = "${version}";
-    sha256 = "17g4w8kmkrhcp7lrfi525ck9jhcm96d0nn93yadacdjcdnchmih1";
+    sha256 = "0zajvbaf3r02k53lv5zdxf13apc6chnjmj69zkyac48lpnpbcxq6";
   };
 
   preConfigure = "LD=$CC";
diff --git a/nixpkgs/pkgs/development/tools/the-way/default.nix b/nixpkgs/pkgs/development/tools/the-way/default.nix
new file mode 100644
index 000000000000..6042f5f891a6
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/the-way/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, rustPlatform, installShellFiles, AppKit, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "the-way";
+  version = "0.7.0";
+
+  src = fetchFromGitHub {
+    owner = "out-of-cheese-error";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1whmvzpqm8x1q45mzrp4p40nj251drcryj9z4qjxgjlfsd5d1fxq";
+  };
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin  [ AppKit Security ];
+
+  cargoSha256 = "0adhgp6blwx7s1hlwqzzsgkzc43q9avxx8a9ykvvv2s1w7m9ql78";
+  checkFlagsArray = stdenv.lib.optionals stdenv.isDarwin [ "--skip=copy" ];
+  cargoParallelTestThreads = false;
+
+  postInstall = ''
+    $out/bin/the-way config default tmp.toml
+    for shell in bash fish zsh; do
+      THE_WAY_CONFIG=tmp.toml $out/bin/the-way complete $shell > the-way.$shell
+      installShellCompletion the-way.$shell
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Terminal code snippets manager";
+    homepage = "https://github.com/out-of-cheese-error/the-way";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ numkem ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/tracy/default.nix b/nixpkgs/pkgs/development/tools/tracy/default.nix
index d446511298fa..96f232304aaf 100644
--- a/nixpkgs/pkgs/development/tools/tracy/default.nix
+++ b/nixpkgs/pkgs/development/tools/tracy/default.nix
@@ -1,34 +1,42 @@
-{ stdenv, lib, darwin, fetchFromGitHub, tbb, gtk2, glfw, pkgconfig, freetype, Carbon, AppKit }:
+{ stdenv, lib, darwin, fetchFromGitHub, tbb, gtk3, glfw, pkgconfig, freetype, Carbon, AppKit, capstone }:
 
 stdenv.mkDerivation rec {
-  name    = "tracy-${version}";
-  version = "0.6.3";
+  pname = "tracy";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "wolfpld";
     repo = "tracy";
     rev = "v${version}";
-    sha256 = "0pgq8h5gq141zq1k4cgj6cp74kh4zqbp7h4wh29q4grjb04yy06i";
+    sha256 = "13zg3ijzhh7qkhgqff2ca23nd4gj7ac8jr0bp9w1gjf2cpgqkm40";
   };
 
   nativeBuildInputs = [ pkgconfig ];
 
-  buildInputs = [ glfw ]
+  buildInputs = [ glfw capstone ]
     ++ lib.optionals stdenv.isDarwin [ Carbon AppKit freetype ]
-    ++ lib.optionals stdenv.isLinux [ gtk2 tbb ];
+    ++ lib.optionals stdenv.isLinux [ gtk3 tbb ];
 
-  NIX_CFLAGS_COMPILE = []
+  NIX_CFLAGS_COMPILE = [ ]
     ++ lib.optional stdenv.isLinux "-ltbb"
     ++ lib.optional stdenv.cc.isClang "-faligned-allocation";
 
   buildPhase = ''
     make -j $NIX_BUILD_CORES -C profiler/build/unix release
     make -j $NIX_BUILD_CORES -C import-chrome/build/unix/ release
+    make -j $NIX_BUILD_CORES -C capture/build/unix/ release
+    make -j $NIX_BUILD_CORES -C update/build/unix/ release
   '';
 
   installPhase = ''
     install -D ./profiler/build/unix/Tracy-release $out/bin/Tracy
     install -D ./import-chrome/build/unix/import-chrome-release $out/bin/import-chrome
+    install -D ./capture/build/unix/capture-release $out/bin/capture
+    install -D ./update/build/unix/update-release $out/bin/update
+  '';
+
+  fixupPhase = lib.optionalString stdenv.isDarwin ''
+    install_name_tool -change libcapstone.4.dylib ${capstone}/lib/libcapstone.4.dylib $out/bin/Tracy
   '';
 
   meta = with stdenv.lib; {
@@ -36,6 +44,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/wolfpld/tracy";
     platforms = platforms.linux ++ platforms.darwin;
     license = licenses.bsd3;
-    maintainers = with maintainers; [ mpickering ];
+    maintainers = with maintainers; [ mpickering nagisa ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/trellis/default.nix b/nixpkgs/pkgs/development/tools/trellis/default.nix
index 132492735649..21f14adc2f71 100644
--- a/nixpkgs/pkgs/development/tools/trellis/default.nix
+++ b/nixpkgs/pkgs/development/tools/trellis/default.nix
@@ -8,18 +8,18 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "trellis";
-  version = "2020.03.25";
+  version = "2020.07.27";
 
   # git describe --tags
   realVersion = with stdenv.lib; with builtins;
-    "1.0-152-g${substring 0 7 (elemAt srcs 0).rev}";
+    "1.0-182-g${substring 0 7 (elemAt srcs 0).rev}";
 
   srcs = [
     (fetchFromGitHub {
        owner  = "SymbiFlow";
        repo   = "prjtrellis";
-       rev    = "c27bfc220a9f85f04173840d1ea081ba478adc9c";
-       sha256 = "1fyl51246ns2njvij8g7k9a9axvhz8n8g09fny5dym9q7hcx08qh";
+       rev    = "8c0a6382e11b160ed88d17af8493c12a897617ed";
+       sha256 = "1g0ppjfw8dq5cg5kl2p1p87grb0i88apaim4f5b6wj4sfqz8iln8";
        name   = "trellis";
      })
 
diff --git a/nixpkgs/pkgs/development/tools/tychus/default.nix b/nixpkgs/pkgs/development/tools/tychus/default.nix
index 82dce7f81e78..5eb6dd097897 100644
--- a/nixpkgs/pkgs/development/tools/tychus/default.nix
+++ b/nixpkgs/pkgs/development/tools/tychus/default.nix
@@ -23,6 +23,5 @@ buildGoPackage rec {
     description = "Command line utility to live-reload your application.";
     homepage = "https://github.com/devlocker/tychus";
     license = stdenv.lib.licenses.mit;
-    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/unity3d/default.nix b/nixpkgs/pkgs/development/tools/unity3d/default.nix
index 13ab61b55675..dfb5f6abf481 100644
--- a/nixpkgs/pkgs/development/tools/unity3d/default.nix
+++ b/nixpkgs/pkgs/development/tools/unity3d/default.nix
@@ -4,7 +4,7 @@
 , cairo, dbus, expat, zlib, libpng12, nodejs, gnutar, gcc, gcc_32bit
 , libX11, libXcursor, libXdamage, libXfixes, libXrender, libXi
 , libXcomposite, libXext, libXrandr, libXtst, libSM, libICE, libxcb, chromium
-, libpqxx
+, libpqxx, libselinux, pciutils, libpulseaudio
 }:
 
 let
@@ -15,6 +15,8 @@ let
     libX11 libXcursor libXdamage libXfixes libXrender libXi
     libXcomposite libXext libXrandr libXtst libSM libICE libxcb
     libpqxx gtk3
+
+    libselinux pciutils libpulseaudio
   ];
   libPath32 = lib.makeLibraryPath [ gcc_32bit.cc ];
   binPath = lib.makeBinPath [ nodejs gnutar ];
@@ -56,6 +58,7 @@ in stdenv.mkDerivation {
 
     mkdir -p $out/bin
     makeWrapper $unitydir/Unity $out/bin/unity-editor \
+      --prefix LD_LIBRARY_PATH : "${libPath64}" \
       --prefix LD_PRELOAD : "$unitydir/libunity-nosuid.so" \
       --prefix PATH : "${binPath}"
   '';
diff --git a/nixpkgs/pkgs/development/tools/unityhub/default.nix b/nixpkgs/pkgs/development/tools/unityhub/default.nix
index bb84584e836e..85b7a704b9cc 100644
--- a/nixpkgs/pkgs/development/tools/unityhub/default.nix
+++ b/nixpkgs/pkgs/development/tools/unityhub/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, appimageTools, gsettings-desktop-schemas, gtk3 }:
 
 let
-  version = "2.3.1";
+  version = "2.3.2";
 in appimageTools.wrapType2 rec {
   name = "unityhub";
 
@@ -11,7 +11,10 @@ in appimageTools.wrapType2 rec {
     libpqxx gtk3 libsecret lsb-release openssl nodejs ncurses5
 
     libX11 libXcursor libXdamage libXfixes libXrender libXi
-    libXcomposite libXext libXrandr libXtst libSM libICE libxcb ]);
+    libXcomposite libXext libXrandr libXtst libSM libICE libxcb
+
+    libselinux pciutils libpulseaudio libxml2
+  ]);
 
   profile = ''
     export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
@@ -20,7 +23,7 @@ in appimageTools.wrapType2 rec {
   src = fetchurl {
     # mirror of https://public-cdn.cloud.unity3d.com/hub/prod/UnityHub.AppImage
     url = "https://archive.org/download/unity-hub-${version}/UnityHub.AppImage";
-    sha256 = "09nrgjlknl3hgrrl7rc79bmbrq6r6sl49dw0cmvs37vjqnvlr8ny";
+    sha256 = "07nfyfp9apshqarc6pgshsczila6x4943hiyyizc55kp85aw0imn";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/development/tools/vagrant/0004-Support-system-installed-plugins.patch b/nixpkgs/pkgs/development/tools/vagrant/0004-Support-system-installed-plugins.patch
index f87ff5135b3f..fa6555c594ef 100644
--- a/nixpkgs/pkgs/development/tools/vagrant/0004-Support-system-installed-plugins.patch
+++ b/nixpkgs/pkgs/development/tools/vagrant/0004-Support-system-installed-plugins.patch
@@ -1,7 +1,7 @@
 From: Antonio Terceiro <terceiro@debian.org>
 Date: Wed, 27 May 2015 09:36:17 -0300
 Subject: Support system-installed plugins
-Source: https://salsa.debian.org/ruby-team/vagrant/blob/cb672c6dc0c63f6552c5ec4d6d7d22929d353503/debian/patches/0004-Support-system-installed-plugins.patch
+Source: https://salsa.debian.org/ruby-team/vagrant/-/blob/9d86f222/debian/patches/0004-Support-system-installed-plugins.patch
 
 Plugins must be installed as regular Ruby libraries, and they must
 contain /usr/share/vagrant-plugins/plugins.d/$PLUGINNAME.json with the
@@ -22,7 +22,7 @@ following content:
  2 files changed, 23 insertions(+), 3 deletions(-)
 
 diff --git a/lib/vagrant/plugin/manager.rb b/lib/vagrant/plugin/manager.rb
-index 567347d..d9d76a0 100644
+index 9058e68..2772131 100644
 --- a/lib/vagrant/plugin/manager.rb
 +++ b/lib/vagrant/plugin/manager.rb
 @@ -18,7 +18,7 @@ module Vagrant
@@ -80,7 +80,7 @@ index c6872d4..935d431 100644
        end
  
        # Add a plugin that is installed to the state file.
-@@ -107,6 +123,14 @@ module Vagrant
+@@ -107,6 +123,10 @@ module Vagrant
            f.close
            FileUtils.mv(f.path, @path)
          end
@@ -88,10 +88,6 @@ index c6872d4..935d431 100644
 +        # Ignore permission denied against system-installed plugins; regular
 +        # users are not supposed to write there.
 +        raise unless @system
-+      rescue Errno::EROFS
-+        # Ignore read-only filesystem against system-installed plugins; regular
-+        # users are not supposed to write there.
-+        raise unless @system
        end
  
        protected
diff --git a/nixpkgs/pkgs/development/tools/vagrant/default.nix b/nixpkgs/pkgs/development/tools/vagrant/default.nix
index 338e8f68d355..4e2930f97a28 100644
--- a/nixpkgs/pkgs/development/tools/vagrant/default.nix
+++ b/nixpkgs/pkgs/development/tools/vagrant/default.nix
@@ -5,9 +5,9 @@
 let
   # NOTE: bumping the version and updating the hash is insufficient;
   # you must use bundix to generate a new gemset.nix in the Vagrant source.
-  version = "2.2.9";
+  version = "2.2.10";
   url = "https://github.com/hashicorp/vagrant/archive/v${version}.tar.gz";
-  sha256 = "0fbickjjliaw3cpkh3pl9bp56b2gcqn87c5ag67amc450ah43rdq";
+  sha256 = "07wlj4m79m9li3za1jkk4imdhqwpca86qz3c0h706s0w8cmv4bbj";
 
   deps = bundlerEnv rec {
     name = "${pname}-${version}";
@@ -54,13 +54,6 @@ in buildRubyGem rec {
     ./unofficial-installation-nowarn.patch
     ./use-system-bundler-version.patch
     ./0004-Support-system-installed-plugins.patch
-
-    # fix deprecation warning on ruby 2.6.5.
-    # See also https://github.com/hashicorp/vagrant/pull/11307
-    (fetchpatch {
-      url = "https://github.com/hashicorp/vagrant/commit/d18ed567aaa5da23c9e91ab87f360e7bf6760f13.patch";
-      sha256 = "0f61qj41rc3fdggmnha4jrqg4pzmfiriwpsz4fcgf7c0bx6qha7q";
-    })
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/development/tools/vagrant/gemset.nix b/nixpkgs/pkgs/development/tools/vagrant/gemset.nix
index 00838c6e0c55..3c22b74efed0 100644
--- a/nixpkgs/pkgs/development/tools/vagrant/gemset.nix
+++ b/nixpkgs/pkgs/development/tools/vagrant/gemset.nix
@@ -24,20 +24,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ic028k8xgm2dds9mqnvwwx3ibaz32j8455zxr9f4bcnviyahya5";
+      sha256 = "08hd3d2lfi19cns4d6wkq51scasn17l83fgbzbjjk3dqccz4rg3j";
       type = "gem";
     };
-    version = "3.0.0";
+    version = "4.0.0";
   };
   concurrent-ruby = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "094387x4yasb797mv07cs3g6f08y56virc2rjcpb1k79rzaj3nhl";
+      sha256 = "1vnxrbhi7cq3p4y2v9iwd10v1c7l15is4var14hwnb2jip4fyjzz";
       type = "gem";
     };
-    version = "1.1.6";
+    version = "1.1.7";
   };
   domain_name = {
     dependencies = ["unf"];
@@ -149,21 +149,21 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10nq1xjqvkhngiygji831qx9bryjwws95r4vrnlq9142bzkg670s";
+      sha256 = "153sx77p16vawrs4qpkv7qlzf9v5fks4g7xqcj1dwk40i6g7rfzk";
       type = "gem";
     };
-    version = "1.8.3";
+    version = "1.8.5";
   };
   listen = {
-    dependencies = ["rb-fsevent" "rb-inotify" "ruby_dep"];
+    dependencies = ["rb-fsevent" "rb-inotify"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01v5mrnfqm6sgm8xn2v5swxsn1wlmq7rzh2i48d4jzjsc7qvb6mx";
+      sha256 = "1w923wmdi3gyiky0asqdw5dnh3gcjs2xyn82ajvjfjwh6sn0clgi";
       type = "gem";
     };
-    version = "3.1.5";
+    version = "3.2.1";
   };
   little-plugger = {
     groups = ["default"];
@@ -191,10 +191,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06j6iaj89h9jhkx1x3hlswqrfnqds8br05xb1qra69dpvbdmjcwn";
+      sha256 = "0pkmhcxi8lp74bq5gz9lxrvaiv5w0745kk7s4bw2b1x07qqri0n9";
+      type = "gem";
+    };
+    version = "2.3.0";
+  };
+  mime = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nskys7brz2bylhxiknl0z9i19w3wb1knf0h93in6mjq70jdw5cr";
       type = "gem";
     };
-    version = "2.2.2";
+    version = "0.4.4";
   };
   mime-types = {
     dependencies = ["mime-types-data"];
@@ -222,10 +232,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xy54mjf7xg41l8qrg1bqri75agdqmxap9z466fjismc1rn2jwfr";
+      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
       type = "gem";
     };
-    version = "1.14.1";
+    version = "1.15.0";
   };
   net-scp = {
     dependencies = ["net-ssh"];
@@ -244,20 +254,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "04674g4n6mryjajlcd82af8g8k95la4b1bj712dh71hw1c9vhw1y";
+      sha256 = "185vsybznqgqbb4i2qnxvf1gam8lb634nqcrq7r3i2zy1g6xd8mi";
       type = "gem";
     };
-    version = "2.1.2";
+    version = "3.0.0";
   };
   net-ssh = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "101wd2px9lady54aqmkibvy4j62zk32w0rjz4vnigyg974fsga40";
+      sha256 = "0jp3jgcn8cij407xx9ldb5h9c6jv13jc4cf6kk2idclz43ww21c9";
       type = "gem";
     };
-    version = "5.2.0";
+    version = "6.1.0";
   };
   netrc = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/development/tools/vagrant/use-system-bundler-version.patch b/nixpkgs/pkgs/development/tools/vagrant/use-system-bundler-version.patch
index c386acf4a1c7..8262220140a6 100644
--- a/nixpkgs/pkgs/development/tools/vagrant/use-system-bundler-version.patch
+++ b/nixpkgs/pkgs/development/tools/vagrant/use-system-bundler-version.patch
@@ -1,8 +1,8 @@
-diff --git i/lib/vagrant/bundler.rb w/lib/vagrant/bundler.rb
-index 301e40e37..e361ab510 100644
---- i/lib/vagrant/bundler.rb
-+++ w/lib/vagrant/bundler.rb
-@@ -217,7 +217,7 @@ module Vagrant
+diff --git a/lib/vagrant/bundler.rb b/lib/vagrant/bundler.rb
+index 336ac1e05..1bfd84c0d 100644
+--- a/lib/vagrant/bundler.rb
++++ b/lib/vagrant/bundler.rb
+@@ -470,7 +470,7 @@ module Vagrant
        source_list = {}
        system_plugins = plugins.map do |plugin_name, plugin_info|
          plugin_name if plugin_info["system"]
diff --git a/nixpkgs/pkgs/development/tools/vcstool/default.nix b/nixpkgs/pkgs/development/tools/vcstool/default.nix
index c4a1cf739870..9657543e0c70 100644
--- a/nixpkgs/pkgs/development/tools/vcstool/default.nix
+++ b/nixpkgs/pkgs/development/tools/vcstool/default.nix
@@ -5,11 +5,11 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "vcstool";
-  version = "0.2.7";
+  version = "0.2.9";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1mq8lmb1wh55cqdj7javq7qia4217h6vf5ljc99gsjyibi7g7d3k";
+    sha256 = "1lb0j120sj76swi702ah6ryn770m1y7gh69237zxpyh897pn5paa";
   };
 
   propagatedBuildInputs = [ pyyaml setuptools ];
diff --git a/nixpkgs/pkgs/development/tools/vend/default.nix b/nixpkgs/pkgs/development/tools/vend/default.nix
new file mode 100644
index 000000000000..ef59ea8dd65c
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/vend/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "vend";
+
+  /*
+  This package is used to generate vendor folders for
+  packages that use the `runVend` option with `buildGoModule`.
+
+  Do not update this package without checking that the vendorSha256
+  hashes of packages using the `runVend` option are unchanged
+  or updating their vendorSha256 hashes if necessary.
+  */
+  version = "1.0.2";
+  # Disable the bot
+  # nixpkgs-update: no auto update
+
+  # Disable `mod tidy`, patch was refused upstream
+  # https://github.com/nomad-software/vend/pull/9
+  patches = [ ./remove_tidy.patch ];
+
+  src = fetchFromGitHub {
+    owner = "nomad-software";
+    repo = "vend";
+    rev = "v${version}";
+    sha256 = "0h9rwwb56nzs46xsvl92af71i8b3wz3pf9ngi8v0i2bpk7p3p89d";
+  };
+
+  vendorSha256 = null;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/nomad-software/vend";
+    description = "A utility which vendors go code including c dependencies";
+    maintainers = with maintainers; [ c00w mic92 zowoq ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/vend/remove_tidy.patch b/nixpkgs/pkgs/development/tools/vend/remove_tidy.patch
new file mode 100644
index 000000000000..d5db74a1bd70
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/vend/remove_tidy.patch
@@ -0,0 +1,13 @@
+diff --git a/cli/cmd.go b/cli/cmd.go
+index c766559..3a133fd 100644
+--- a/cli/cmd.go
++++ b/cli/cmd.go
+@@ -12,7 +12,7 @@ import (
+ // UpdateModule makes sure the module is updated ready to vendor the
+ // dependencies.
+ func UpdateModule() {
+-	var commands = []string{"tidy", "download", "vendor"}
++	var commands = []string{"download", "vendor"}
+ 
+ 	for _, command := range commands {
+ 		cmd := exec.Command("go", "mod", command)
diff --git a/nixpkgs/pkgs/development/tools/vultr-cli/default.nix b/nixpkgs/pkgs/development/tools/vultr-cli/default.nix
index 6f217c602194..c0b34fe3ca68 100644
--- a/nixpkgs/pkgs/development/tools/vultr-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/vultr-cli/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "vultr-cli";
-  version = "0.3.2";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "vultr";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1gqc4w5j9x7vxvxah6hmqd5i1lxyybpml7yfzzcbngwgwm3y5ym0";
+    sha256 = "0gp1v62iqh3hk46cc5sh8a1nw5nf98m969fdhgxdppwr5dhj9isp";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Official command line tool for Vultr services";
     homepage = "https://github.com/vultr/vultr-cli";
diff --git a/nixpkgs/pkgs/development/tools/vultr/default.nix b/nixpkgs/pkgs/development/tools/vultr/default.nix
index 8bd8a55bce8d..7c396f69f259 100644
--- a/nixpkgs/pkgs/development/tools/vultr/default.nix
+++ b/nixpkgs/pkgs/development/tools/vultr/default.nix
@@ -2,21 +2,20 @@
 
 buildGoPackage rec {
   pname = "vultr";
-  version = "2.0.1";
+  version = "2.0.2";
   goPackagePath = "github.com/JamesClonk/vultr";
 
   src = fetchFromGitHub {
     owner = "JamesClonk";
     repo = "vultr";
     rev = "v${version}";
-    sha256 = "16wlncf0wax5jhpbfif5k16knigxy89vcby0b821klv6hlm6cc58";
+    sha256 = "0br8nxi9syraarp4hzav9a3p4zxhyi45cq5dsclzxi3fga2l6mqg";
   };
 
   meta = {
     description = "A command line tool for Vultr services, a provider for cloud virtual private servers";
     homepage = "https://github.com/JamesClonk/vultr";
     license = stdenv.lib.licenses.mit;
-    platforms = stdenv.lib.platforms.all;
     maintainers = [ stdenv.lib.maintainers.zauberpony ];
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/wabt/default.nix b/nixpkgs/pkgs/development/tools/wabt/default.nix
index 11c9875bf9df..a8ade2b815cc 100644
--- a/nixpkgs/pkgs/development/tools/wabt/default.nix
+++ b/nixpkgs/pkgs/development/tools/wabt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wabt";
-  version = "1.0.16";
+  version = "1.0.19";
 
   src = fetchFromGitHub {
     owner = "WebAssembly";
     repo = "wabt";
     rev = version;
-    sha256 = "1zzc46d6m7l5lil423417crdda2cqb396p2idcla2ps161hwq3qp";
+    sha256 = "0g1iy1icnjfkc0dadkrif4nlixpvq626023rgj02m9al64gf9hvx";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/0001-Add-cargo.lock.patch b/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/0001-Add-cargo.lock.patch
deleted file mode 100644
index 86fbb81de054..000000000000
--- a/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/0001-Add-cargo.lock.patch
+++ /dev/null
@@ -1,2546 +0,0 @@
-From a13aff157f899a6388b3c9e621680049f329a028 Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Fri, 1 May 2020 23:44:08 +0200
-Subject: [PATCH] Add cargo.lock
-
----
- Cargo.lock | 2527 ++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 2527 insertions(+)
- create mode 100644 Cargo.lock
-
-diff --git a/Cargo.lock b/Cargo.lock
-new file mode 100644
-index 00000000..4822cea1
---- /dev/null
-+++ b/Cargo.lock
-@@ -0,0 +1,2527 @@
-+# This file is automatically @generated by Cargo.
-+# It is not intended for manual editing.
-+[[package]]
-+name = "add"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "adler32"
-+version = "1.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2"
-+
-+[[package]]
-+name = "aho-corasick"
-+version = "0.7.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
-+dependencies = [
-+ "memchr",
-+]
-+
-+[[package]]
-+name = "ansi_term"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
-+dependencies = [
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "anyhow"
-+version = "1.0.28"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d9a60d744a80c30fcb657dfe2c1b22bcb3e814c1a1e3674f32bf5820b570fbff"
-+
-+[[package]]
-+name = "arrayref"
-+version = "0.3.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
-+
-+[[package]]
-+name = "arrayvec"
-+version = "0.5.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
-+
-+[[package]]
-+name = "ascii"
-+version = "0.8.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "97be891acc47ca214468e09425d02cef3af2c94d0d82081cd02061f996802f14"
-+
-+[[package]]
-+name = "askama"
-+version = "0.7.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "eed81479263c8753e06f4981f5a313b3fe6cbff30c3ff8d9ae15ef0c72d93fb5"
-+dependencies = [
-+ "askama_derive",
-+ "askama_shared",
-+]
-+
-+[[package]]
-+name = "askama_derive"
-+version = "0.7.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "46580c08e5520afadc6e9064759e15fc743489a4db78f9c751113e3d32a1e083"
-+dependencies = [
-+ "askama_shared",
-+ "nom 4.2.3",
-+ "proc-macro2 0.4.30",
-+ "quote 0.6.13",
-+ "syn 0.15.44",
-+]
-+
-+[[package]]
-+name = "askama_shared"
-+version = "0.7.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "64509fd5c2fa767fa7ea973b732c61f0b8d30d1adf084e5164523e51a5e35d71"
-+dependencies = [
-+ "num-traits 0.2.11",
-+ "serde",
-+ "serde_derive",
-+ "toml 0.4.10",
-+]
-+
-+[[package]]
-+name = "assert_cmd"
-+version = "0.11.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2dc477793bd82ec39799b6f6b3df64938532fdf2ab0d49ef817eac65856a5a1e"
-+dependencies = [
-+ "escargot",
-+ "predicates",
-+ "predicates-core",
-+ "predicates-tree",
-+]
-+
-+[[package]]
-+name = "atty"
-+version = "0.2.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-+dependencies = [
-+ "hermit-abi",
-+ "libc",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "autocfg"
-+version = "0.1.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
-+
-+[[package]]
-+name = "autocfg"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
-+
-+[[package]]
-+name = "base64"
-+version = "0.9.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
-+dependencies = [
-+ "byteorder",
-+ "safemem",
-+]
-+
-+[[package]]
-+name = "base64"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
-+
-+[[package]]
-+name = "bitflags"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
-+
-+[[package]]
-+name = "bitflags"
-+version = "1.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-+
-+[[package]]
-+name = "blake2b_simd"
-+version = "0.5.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
-+dependencies = [
-+ "arrayref",
-+ "arrayvec",
-+ "constant_time_eq",
-+]
-+
-+[[package]]
-+name = "buf_redux"
-+version = "0.8.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f"
-+dependencies = [
-+ "memchr",
-+ "safemem",
-+]
-+
-+[[package]]
-+name = "bumpalo"
-+version = "3.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "12ae9db68ad7fac5fe51304d20f016c911539251075a214f8e663babefa35187"
-+
-+[[package]]
-+name = "byteorder"
-+version = "1.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
-+
-+[[package]]
-+name = "canvas"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "cc"
-+version = "1.0.52"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c3d87b23d6a92cd03af510a5ade527033f6aa6fa92161e2d5863a907d4c5e31d"
-+
-+[[package]]
-+name = "cfg-if"
-+version = "0.1.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-+
-+[[package]]
-+name = "char"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "chrono"
-+version = "0.4.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "80094f509cf8b5ae86a4966a39b3ff66cd7e2a3e594accec3743ff3fabeab5b2"
-+dependencies = [
-+ "num-integer",
-+ "num-traits 0.2.11",
-+ "time",
-+]
-+
-+[[package]]
-+name = "chunked_transfer"
-+version = "0.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "498d20a7aaf62625b9bf26e637cf7736417cde1d0c99f1d04d1170229a85cf87"
-+
-+[[package]]
-+name = "clap"
-+version = "2.33.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
-+dependencies = [
-+ "ansi_term",
-+ "atty",
-+ "bitflags 1.2.1",
-+ "strsim 0.8.0",
-+ "textwrap",
-+ "unicode-width",
-+ "vec_map",
-+]
-+
-+[[package]]
-+name = "closures"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "cloudabi"
-+version = "0.0.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-+dependencies = [
-+ "bitflags 1.2.1",
-+]
-+
-+[[package]]
-+name = "color_quant"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0dbbb57365263e881e805dc77d94697c9118fd94d8da011240555aa7b23445bd"
-+
-+[[package]]
-+name = "console_error_panic_hook"
-+version = "0.1.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b8d976903543e0c48546a91908f21588a680a8c8f984df9a5d69feccb2b2a211"
-+dependencies = [
-+ "cfg-if",
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "console_log"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "constant_time_eq"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
-+
-+[[package]]
-+name = "crossbeam-deque"
-+version = "0.7.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
-+dependencies = [
-+ "crossbeam-epoch",
-+ "crossbeam-utils",
-+ "maybe-uninit",
-+]
-+
-+[[package]]
-+name = "crossbeam-epoch"
-+version = "0.8.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
-+dependencies = [
-+ "autocfg 1.0.0",
-+ "cfg-if",
-+ "crossbeam-utils",
-+ "lazy_static",
-+ "maybe-uninit",
-+ "memoffset",
-+ "scopeguard",
-+]
-+
-+[[package]]
-+name = "crossbeam-queue"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db"
-+dependencies = [
-+ "cfg-if",
-+ "crossbeam-utils",
-+]
-+
-+[[package]]
-+name = "crossbeam-utils"
-+version = "0.7.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
-+dependencies = [
-+ "autocfg 1.0.0",
-+ "cfg-if",
-+ "lazy_static",
-+]
-+
-+[[package]]
-+name = "curl"
-+version = "0.4.29"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "762e34611d2d5233a506a79072be944fddd057db2f18e04c0d6fa79e3fd466fd"
-+dependencies = [
-+ "curl-sys",
-+ "libc",
-+ "openssl-probe",
-+ "openssl-sys",
-+ "schannel",
-+ "socket2",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "curl-sys"
-+version = "0.4.31+curl-7.70.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dcd62757cc4f5ab9404bc6ca9f0ae447e729a1403948ce5106bd588ceac6a3b0"
-+dependencies = [
-+ "cc",
-+ "libc",
-+ "libz-sys",
-+ "openssl-sys",
-+ "pkg-config",
-+ "vcpkg",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "deflate"
-+version = "0.7.20"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4"
-+dependencies = [
-+ "adler32",
-+ "byteorder",
-+]
-+
-+[[package]]
-+name = "diff"
-+version = "0.1.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499"
-+
-+[[package]]
-+name = "difference"
-+version = "2.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
-+
-+[[package]]
-+name = "dirs"
-+version = "1.0.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901"
-+dependencies = [
-+ "libc",
-+ "redox_users",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "docopt"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7f525a586d310c87df72ebcd98009e57f1cc030c8c268305287a476beb653969"
-+dependencies = [
-+ "lazy_static",
-+ "regex",
-+ "serde",
-+ "strsim 0.9.3",
-+]
-+
-+[[package]]
-+name = "dom"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "either"
-+version = "1.5.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
-+
-+[[package]]
-+name = "enum_primitive"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180"
-+dependencies = [
-+ "num-traits 0.1.43",
-+]
-+
-+[[package]]
-+name = "env_logger"
-+version = "0.7.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
-+dependencies = [
-+ "atty",
-+ "humantime",
-+ "log 0.4.8",
-+ "regex",
-+ "termcolor",
-+]
-+
-+[[package]]
-+name = "escargot"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ceb9adbf9874d5d028b5e4c5739d22b71988252b25c9c98fe7cf9738bee84597"
-+dependencies = [
-+ "lazy_static",
-+ "log 0.4.8",
-+ "serde",
-+ "serde_json",
-+]
-+
-+[[package]]
-+name = "fetch"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "serde",
-+ "serde_derive",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "filetime"
-+version = "0.2.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f59efc38004c988e4201d11d263b8171f49a2e7ec0bdbb71773433f271504a5e"
-+dependencies = [
-+ "cfg-if",
-+ "libc",
-+ "redox_syscall",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "float-cmp"
-+version = "0.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "da62c4f1b81918835a8c6a484a397775fff5953fe83529afd51b05f5c6a6617d"
-+dependencies = [
-+ "num-traits 0.2.11",
-+]
-+
-+[[package]]
-+name = "foreign-types"
-+version = "0.3.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-+dependencies = [
-+ "foreign-types-shared",
-+]
-+
-+[[package]]
-+name = "foreign-types-shared"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-+
-+[[package]]
-+name = "fuchsia-cprng"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
-+
-+[[package]]
-+name = "futures"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5c329ae8753502fb44ae4fc2b622fa2a94652c41e795143765ba0927f92ab780"
-+dependencies = [
-+ "futures-channel",
-+ "futures-core",
-+ "futures-executor",
-+ "futures-io",
-+ "futures-sink",
-+ "futures-task",
-+ "futures-util",
-+]
-+
-+[[package]]
-+name = "futures-channel"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f0c77d04ce8edd9cb903932b608268b3fffec4163dc053b3b402bf47eac1f1a8"
-+dependencies = [
-+ "futures-core",
-+ "futures-sink",
-+]
-+
-+[[package]]
-+name = "futures-channel-preview"
-+version = "0.3.0-alpha.19"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d5e5f4df964fa9c1c2f8bddeb5c3611631cacd93baf810fc8bb2fb4b495c263a"
-+dependencies = [
-+ "futures-core-preview",
-+]
-+
-+[[package]]
-+name = "futures-core"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f25592f769825e89b92358db00d26f965761e094951ac44d3663ef25b7ac464a"
-+
-+[[package]]
-+name = "futures-core-preview"
-+version = "0.3.0-alpha.19"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b35b6263fb1ef523c3056565fa67b1d16f0a8604ff12b11b08c25f28a734c60a"
-+
-+[[package]]
-+name = "futures-executor"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f674f3e1bcb15b37284a90cedf55afdba482ab061c407a9c0ebbd0f3109741ba"
-+dependencies = [
-+ "futures-core",
-+ "futures-task",
-+ "futures-util",
-+]
-+
-+[[package]]
-+name = "futures-io"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a638959aa96152c7a4cddf50fcb1e3fede0583b27157c26e67d6f99904090dc6"
-+
-+[[package]]
-+name = "futures-macro"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9a5081aa3de1f7542a794a397cde100ed903b0630152d0973479018fd85423a7"
-+dependencies = [
-+ "proc-macro-hack",
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "syn 1.0.18",
-+]
-+
-+[[package]]
-+name = "futures-sink"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3466821b4bc114d95b087b850a724c6f83115e929bc88f1fa98a3304a944c8a6"
-+
-+[[package]]
-+name = "futures-task"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7b0a34e53cf6cdcd0178aa573aed466b646eb3db769570841fda0c7ede375a27"
-+
-+[[package]]
-+name = "futures-util"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "22766cf25d64306bedf0384da004d05c9974ab104fcc4528f1236181c18004c5"
-+dependencies = [
-+ "futures-channel",
-+ "futures-core",
-+ "futures-io",
-+ "futures-macro",
-+ "futures-sink",
-+ "futures-task",
-+ "memchr",
-+ "pin-utils",
-+ "proc-macro-hack",
-+ "proc-macro-nested",
-+ "slab",
-+]
-+
-+[[package]]
-+name = "getrandom"
-+version = "0.1.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
-+dependencies = [
-+ "cfg-if",
-+ "libc",
-+ "wasi",
-+]
-+
-+[[package]]
-+name = "gif"
-+version = "0.9.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e2e41945ba23db3bf51b24756d73d81acb4f28d85c3dccc32c6fae904438c25f"
-+dependencies = [
-+ "color_quant",
-+ "lzw",
-+]
-+
-+[[package]]
-+name = "glob"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
-+
-+[[package]]
-+name = "guide-supported-types-examples"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "heck"
-+version = "0.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
-+dependencies = [
-+ "unicode-segmentation",
-+]
-+
-+[[package]]
-+name = "hello_world"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "hermit-abi"
-+version = "0.1.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "61565ff7aaace3525556587bd2dc31d4a07071957be715e63ce7b1eccf51a8f4"
-+dependencies = [
-+ "libc",
-+]
-+
-+[[package]]
-+name = "httparse"
-+version = "1.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
-+
-+[[package]]
-+name = "humantime"
-+version = "1.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
-+dependencies = [
-+ "quick-error",
-+]
-+
-+[[package]]
-+name = "id-arena"
-+version = "2.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005"
-+dependencies = [
-+ "rayon",
-+]
-+
-+[[package]]
-+name = "idna"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
-+dependencies = [
-+ "matches",
-+ "unicode-bidi",
-+ "unicode-normalization",
-+]
-+
-+[[package]]
-+name = "image"
-+version = "0.12.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d95816db758249fe16f23a4e23f1a3a817fe11892dbfd1c5836f625324702158"
-+dependencies = [
-+ "byteorder",
-+ "enum_primitive",
-+ "gif",
-+ "jpeg-decoder",
-+ "num-iter",
-+ "num-rational",
-+ "num-traits 0.1.43",
-+ "png",
-+ "scoped_threadpool",
-+]
-+
-+[[package]]
-+name = "import_js"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "inflate"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e7e0062d2dc2f17d2f13750d95316ae8a2ff909af0fda957084f5defd87c43bb"
-+
-+[[package]]
-+name = "itoa"
-+version = "0.4.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b8b7a7c0c47db5545ed3fef7468ee7bb5b74691498139e4b3f6a20685dc6dd8e"
-+
-+[[package]]
-+name = "jpeg-decoder"
-+version = "0.1.19"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5b47b4c4e017b01abdc5bcc126d2d1002e5a75bbe3ce73f9f4f311a916363704"
-+dependencies = [
-+ "byteorder",
-+ "rayon",
-+]
-+
-+[[package]]
-+name = "js-sys"
-+version = "0.3.39"
-+dependencies = [
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "wasm-bindgen-test",
-+]
-+
-+[[package]]
-+name = "julia_set"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "lazy_static"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-+
-+[[package]]
-+name = "leb128"
-+version = "0.2.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a"
-+
-+[[package]]
-+name = "libc"
-+version = "0.2.69"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "99e85c08494b21a9054e7fe1374a732aeadaff3980b6990b94bfd3a70f690005"
-+
-+[[package]]
-+name = "libz-sys"
-+version = "1.0.25"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe"
-+dependencies = [
-+ "cc",
-+ "libc",
-+ "pkg-config",
-+ "vcpkg",
-+]
-+
-+[[package]]
-+name = "log"
-+version = "0.3.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
-+dependencies = [
-+ "log 0.4.8",
-+]
-+
-+[[package]]
-+name = "log"
-+version = "0.4.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
-+dependencies = [
-+ "cfg-if",
-+]
-+
-+[[package]]
-+name = "lzw"
-+version = "0.10.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084"
-+
-+[[package]]
-+name = "matches"
-+version = "0.1.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
-+
-+[[package]]
-+name = "maybe-uninit"
-+version = "2.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
-+
-+[[package]]
-+name = "memchr"
-+version = "2.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
-+
-+[[package]]
-+name = "memoffset"
-+version = "0.5.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b4fc2c02a7e374099d4ee95a193111f72d2110197fe200272371758f6c3643d8"
-+dependencies = [
-+ "autocfg 1.0.0",
-+]
-+
-+[[package]]
-+name = "mime"
-+version = "0.2.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0"
-+dependencies = [
-+ "log 0.3.9",
-+]
-+
-+[[package]]
-+name = "mime_guess"
-+version = "1.8.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "216929a5ee4dd316b1702eedf5e74548c123d370f47841ceaac38ca154690ca3"
-+dependencies = [
-+ "mime",
-+ "phf",
-+ "phf_codegen",
-+ "unicase",
-+]
-+
-+[[package]]
-+name = "multipart"
-+version = "0.15.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "adba94490a79baf2d6a23eac897157047008272fa3eecb3373ae6377b91eca28"
-+dependencies = [
-+ "buf_redux",
-+ "httparse",
-+ "log 0.4.8",
-+ "mime",
-+ "mime_guess",
-+ "quick-error",
-+ "rand 0.4.6",
-+ "safemem",
-+ "tempdir",
-+ "twoway",
-+]
-+
-+[[package]]
-+name = "no-std"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "nom"
-+version = "4.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2ad2a91a8e869eeb30b9cb3119ae87773a8f4ae617f41b1eb9c154b2905f7bd6"
-+dependencies = [
-+ "memchr",
-+ "version_check 0.1.5",
-+]
-+
-+[[package]]
-+name = "nom"
-+version = "5.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0b471253da97532da4b61552249c521e01e736071f71c1a4f7ebbfbf0a06aad6"
-+dependencies = [
-+ "memchr",
-+ "version_check 0.9.1",
-+]
-+
-+[[package]]
-+name = "normalize-line-endings"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
-+
-+[[package]]
-+name = "num-integer"
-+version = "0.1.42"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3f6ea62e9d81a77cd3ee9a2a5b9b609447857f3d358704331e4ef39eb247fcba"
-+dependencies = [
-+ "autocfg 1.0.0",
-+ "num-traits 0.2.11",
-+]
-+
-+[[package]]
-+name = "num-iter"
-+version = "0.1.40"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dfb0800a0291891dd9f4fe7bd9c19384f98f7fbe0cd0f39a2c6b88b9868bbc00"
-+dependencies = [
-+ "autocfg 1.0.0",
-+ "num-integer",
-+ "num-traits 0.2.11",
-+]
-+
-+[[package]]
-+name = "num-rational"
-+version = "0.1.42"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e"
-+dependencies = [
-+ "num-integer",
-+ "num-traits 0.2.11",
-+]
-+
-+[[package]]
-+name = "num-traits"
-+version = "0.1.43"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
-+dependencies = [
-+ "num-traits 0.2.11",
-+]
-+
-+[[package]]
-+name = "num-traits"
-+version = "0.2.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c62be47e61d1842b9170f0fdeec8eba98e60e90e5446449a0545e5152acd7096"
-+dependencies = [
-+ "autocfg 1.0.0",
-+]
-+
-+[[package]]
-+name = "num_cpus"
-+version = "1.13.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
-+dependencies = [
-+ "hermit-abi",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "openssl"
-+version = "0.10.29"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cee6d85f4cb4c4f59a6a85d5b68a233d280c82e29e822913b9c8b129fbf20bdd"
-+dependencies = [
-+ "bitflags 1.2.1",
-+ "cfg-if",
-+ "foreign-types",
-+ "lazy_static",
-+ "libc",
-+ "openssl-sys",
-+]
-+
-+[[package]]
-+name = "openssl-probe"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
-+
-+[[package]]
-+name = "openssl-src"
-+version = "111.9.0+1.1.1g"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a2dbe10ddd1eb335aba3780eb2eaa13e1b7b441d2562fd962398740927f39ec4"
-+dependencies = [
-+ "cc",
-+]
-+
-+[[package]]
-+name = "openssl-sys"
-+version = "0.9.55"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7717097d810a0f2e2323f9e5d11e71608355e24828410b55b9d4f18aa5f9a5d8"
-+dependencies = [
-+ "autocfg 1.0.0",
-+ "cc",
-+ "libc",
-+ "openssl-src",
-+ "pkg-config",
-+ "vcpkg",
-+]
-+
-+[[package]]
-+name = "percent-encoding"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
-+
-+[[package]]
-+name = "performance"
-+version = "0.1.0"
-+dependencies = [
-+ "humantime",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "phf"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18"
-+dependencies = [
-+ "phf_shared",
-+]
-+
-+[[package]]
-+name = "phf_codegen"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e"
-+dependencies = [
-+ "phf_generator",
-+ "phf_shared",
-+]
-+
-+[[package]]
-+name = "phf_generator"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662"
-+dependencies = [
-+ "phf_shared",
-+ "rand 0.6.5",
-+]
-+
-+[[package]]
-+name = "phf_shared"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0"
-+dependencies = [
-+ "siphasher",
-+ "unicase",
-+]
-+
-+[[package]]
-+name = "pin-utils"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
-+
-+[[package]]
-+name = "pkg-config"
-+version = "0.3.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
-+
-+[[package]]
-+name = "png"
-+version = "0.6.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3cb773e9a557edb568ce9935cf783e3cdcabe06a9449d41b3e5506d88e582c82"
-+dependencies = [
-+ "bitflags 0.7.0",
-+ "deflate",
-+ "inflate",
-+ "num-iter",
-+]
-+
-+[[package]]
-+name = "ppv-lite86"
-+version = "0.2.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
-+
-+[[package]]
-+name = "predicates"
-+version = "1.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "347a1b6f0b21e636bc9872fb60b83b8e185f6f5516298b8238699f7f9a531030"
-+dependencies = [
-+ "difference",
-+ "float-cmp",
-+ "normalize-line-endings",
-+ "predicates-core",
-+ "regex",
-+]
-+
-+[[package]]
-+name = "predicates-core"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "06075c3a3e92559ff8929e7a280684489ea27fe44805174c3ebd9328dcb37178"
-+
-+[[package]]
-+name = "predicates-tree"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8e63c4859013b38a76eca2414c64911fba30def9e3202ac461a2d22831220124"
-+dependencies = [
-+ "predicates-core",
-+ "treeline",
-+]
-+
-+[[package]]
-+name = "proc-macro-error"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "98e9e4b82e0ef281812565ea4751049f1bdcdfccda7d3f459f2e138a40c08678"
-+dependencies = [
-+ "proc-macro-error-attr",
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "syn 1.0.18",
-+ "version_check 0.9.1",
-+]
-+
-+[[package]]
-+name = "proc-macro-error-attr"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4f5444ead4e9935abd7f27dc51f7e852a0569ac888096d5ec2499470794e2e53"
-+dependencies = [
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "syn 1.0.18",
-+ "syn-mid",
-+ "version_check 0.9.1",
-+]
-+
-+[[package]]
-+name = "proc-macro-hack"
-+version = "0.5.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0d659fe7c6d27f25e9d80a1a094c223f5246f6a6596453e09d7229bf42750b63"
-+
-+[[package]]
-+name = "proc-macro-nested"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8e946095f9d3ed29ec38de908c22f95d9ac008e424c7bcae54c75a79c527c694"
-+
-+[[package]]
-+name = "proc-macro2"
-+version = "0.4.30"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
-+dependencies = [
-+ "unicode-xid 0.1.0",
-+]
-+
-+[[package]]
-+name = "proc-macro2"
-+version = "1.0.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "df246d292ff63439fea9bc8c0a270bed0e390d5ebd4db4ba15aba81111b5abe3"
-+dependencies = [
-+ "unicode-xid 0.2.0",
-+]
-+
-+[[package]]
-+name = "quick-error"
-+version = "1.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-+
-+[[package]]
-+name = "quote"
-+version = "0.6.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
-+dependencies = [
-+ "proc-macro2 0.4.30",
-+]
-+
-+[[package]]
-+name = "quote"
-+version = "1.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4c1f4b0efa5fc5e8ceb705136bfee52cfdb6a4e3509f770b478cd6ed434232a7"
-+dependencies = [
-+ "proc-macro2 1.0.10",
-+]
-+
-+[[package]]
-+name = "rand"
-+version = "0.4.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
-+dependencies = [
-+ "fuchsia-cprng",
-+ "libc",
-+ "rand_core 0.3.1",
-+ "rdrand",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "rand"
-+version = "0.5.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
-+dependencies = [
-+ "cloudabi",
-+ "fuchsia-cprng",
-+ "libc",
-+ "rand_core 0.3.1",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "rand"
-+version = "0.6.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
-+dependencies = [
-+ "autocfg 0.1.7",
-+ "libc",
-+ "rand_chacha 0.1.1",
-+ "rand_core 0.4.2",
-+ "rand_hc 0.1.0",
-+ "rand_isaac",
-+ "rand_jitter",
-+ "rand_os",
-+ "rand_pcg",
-+ "rand_xorshift",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "rand"
-+version = "0.7.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-+dependencies = [
-+ "getrandom",
-+ "libc",
-+ "rand_chacha 0.2.2",
-+ "rand_core 0.5.1",
-+ "rand_hc 0.2.0",
-+]
-+
-+[[package]]
-+name = "rand_chacha"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
-+dependencies = [
-+ "autocfg 0.1.7",
-+ "rand_core 0.3.1",
-+]
-+
-+[[package]]
-+name = "rand_chacha"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
-+dependencies = [
-+ "ppv-lite86",
-+ "rand_core 0.5.1",
-+]
-+
-+[[package]]
-+name = "rand_core"
-+version = "0.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
-+dependencies = [
-+ "rand_core 0.4.2",
-+]
-+
-+[[package]]
-+name = "rand_core"
-+version = "0.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
-+
-+[[package]]
-+name = "rand_core"
-+version = "0.5.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-+dependencies = [
-+ "getrandom",
-+]
-+
-+[[package]]
-+name = "rand_hc"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
-+dependencies = [
-+ "rand_core 0.3.1",
-+]
-+
-+[[package]]
-+name = "rand_hc"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-+dependencies = [
-+ "rand_core 0.5.1",
-+]
-+
-+[[package]]
-+name = "rand_isaac"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
-+dependencies = [
-+ "rand_core 0.3.1",
-+]
-+
-+[[package]]
-+name = "rand_jitter"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
-+dependencies = [
-+ "libc",
-+ "rand_core 0.4.2",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "rand_os"
-+version = "0.1.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
-+dependencies = [
-+ "cloudabi",
-+ "fuchsia-cprng",
-+ "libc",
-+ "rand_core 0.4.2",
-+ "rdrand",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "rand_pcg"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
-+dependencies = [
-+ "autocfg 0.1.7",
-+ "rand_core 0.4.2",
-+]
-+
-+[[package]]
-+name = "rand_xorshift"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
-+dependencies = [
-+ "rand_core 0.3.1",
-+]
-+
-+[[package]]
-+name = "rayon"
-+version = "1.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "db6ce3297f9c85e16621bb8cca38a06779ffc31bb8184e1be4bed2be4678a098"
-+dependencies = [
-+ "crossbeam-deque",
-+ "either",
-+ "rayon-core",
-+]
-+
-+[[package]]
-+name = "rayon-core"
-+version = "1.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "08a89b46efaf957e52b18062fb2f4660f8b8a4dde1807ca002690868ef2c85a9"
-+dependencies = [
-+ "crossbeam-deque",
-+ "crossbeam-queue",
-+ "crossbeam-utils",
-+ "lazy_static",
-+ "num_cpus",
-+]
-+
-+[[package]]
-+name = "raytrace-parallel"
-+version = "0.1.0"
-+dependencies = [
-+ "console_error_panic_hook",
-+ "futures-channel-preview",
-+ "js-sys",
-+ "rayon",
-+ "rayon-core",
-+ "raytracer",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "raytracer"
-+version = "0.1.0"
-+source = "git+https://github.com/alexcrichton/raytracer?branch=update-deps#42faa13859f7d8d47fd18be785c108003a207786"
-+dependencies = [
-+ "image",
-+ "serde",
-+ "serde_derive",
-+]
-+
-+[[package]]
-+name = "rdrand"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
-+dependencies = [
-+ "rand_core 0.3.1",
-+]
-+
-+[[package]]
-+name = "redox_syscall"
-+version = "0.1.56"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
-+
-+[[package]]
-+name = "redox_users"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431"
-+dependencies = [
-+ "getrandom",
-+ "redox_syscall",
-+ "rust-argon2",
-+]
-+
-+[[package]]
-+name = "regex"
-+version = "1.3.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a6020f034922e3194c711b82a627453881bc4682166cabb07134a10c26ba7692"
-+dependencies = [
-+ "aho-corasick",
-+ "memchr",
-+ "regex-syntax",
-+ "thread_local",
-+]
-+
-+[[package]]
-+name = "regex-syntax"
-+version = "0.6.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7fe5bd57d1d7414c6b5ed48563a2c855d995ff777729dcd91c369ec7fea395ae"
-+
-+[[package]]
-+name = "remove_dir_all"
-+version = "0.5.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
-+dependencies = [
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "request-animation-frame"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "rouille"
-+version = "3.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "112568052ec17fa26c6c11c40acbb30d3ad244bf3d6da0be181f5e7e42e5004f"
-+dependencies = [
-+ "base64 0.9.3",
-+ "chrono",
-+ "filetime",
-+ "multipart",
-+ "num_cpus",
-+ "rand 0.5.6",
-+ "serde",
-+ "serde_derive",
-+ "serde_json",
-+ "sha1",
-+ "term",
-+ "threadpool",
-+ "time",
-+ "tiny_http",
-+ "url",
-+]
-+
-+[[package]]
-+name = "rust-argon2"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017"
-+dependencies = [
-+ "base64 0.11.0",
-+ "blake2b_simd",
-+ "constant_time_eq",
-+ "crossbeam-utils",
-+]
-+
-+[[package]]
-+name = "rust-duck-typed-interfaces"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "rustc-demangle"
-+version = "0.1.16"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
-+
-+[[package]]
-+name = "ryu"
-+version = "1.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ed3d612bc64430efeb3f7ee6ef26d590dce0c43249217bddc62112540c7941e1"
-+
-+[[package]]
-+name = "safemem"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
-+
-+[[package]]
-+name = "sample"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "wasm-bindgen-test",
-+]
-+
-+[[package]]
-+name = "schannel"
-+version = "0.1.18"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "039c25b130bd8c1321ee2d7de7fde2659fa9c2744e4bb29711cfc852ea53cd19"
-+dependencies = [
-+ "lazy_static",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "scoped-tls"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"
-+
-+[[package]]
-+name = "scoped_threadpool"
-+version = "0.1.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
-+
-+[[package]]
-+name = "scopeguard"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-+
-+[[package]]
-+name = "serde"
-+version = "1.0.106"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "36df6ac6412072f67cf767ebbde4133a5b2e88e76dc6187fa7104cd16f783399"
-+dependencies = [
-+ "serde_derive",
-+]
-+
-+[[package]]
-+name = "serde_derive"
-+version = "1.0.106"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9e549e3abf4fb8621bd1609f11dfc9f5e50320802273b12f3811a67e6716ea6c"
-+dependencies = [
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "syn 1.0.18",
-+]
-+
-+[[package]]
-+name = "serde_json"
-+version = "1.0.52"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a7894c8ed05b7a3a279aeb79025fdec1d3158080b75b98a08faf2806bb799edd"
-+dependencies = [
-+ "itoa",
-+ "ryu",
-+ "serde",
-+]
-+
-+[[package]]
-+name = "sha1"
-+version = "0.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
-+
-+[[package]]
-+name = "siphasher"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
-+
-+[[package]]
-+name = "slab"
-+version = "0.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
-+
-+[[package]]
-+name = "smallvec"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c7cb5678e1615754284ec264d9bb5b4c27d2018577fd90ac0ceb578591ed5ee4"
-+
-+[[package]]
-+name = "socket2"
-+version = "0.3.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
-+dependencies = [
-+ "cfg-if",
-+ "libc",
-+ "redox_syscall",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "sourcefile"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4bf77cb82ba8453b42b6ae1d692e4cdc92f9a47beaf89a847c8be83f4e328ad3"
-+
-+[[package]]
-+name = "strsim"
-+version = "0.8.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
-+
-+[[package]]
-+name = "strsim"
-+version = "0.9.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
-+
-+[[package]]
-+name = "structopt"
-+version = "0.3.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "863246aaf5ddd0d6928dfeb1a9ca65f505599e4e1b399935ef7e75107516b4ef"
-+dependencies = [
-+ "clap",
-+ "lazy_static",
-+ "structopt-derive",
-+]
-+
-+[[package]]
-+name = "structopt-derive"
-+version = "0.4.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d239ca4b13aee7a2142e6795cbd69e457665ff8037aed33b3effdc430d2f927a"
-+dependencies = [
-+ "heck",
-+ "proc-macro-error",
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "syn 1.0.18",
-+]
-+
-+[[package]]
-+name = "syn"
-+version = "0.15.44"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5"
-+dependencies = [
-+ "proc-macro2 0.4.30",
-+ "quote 0.6.13",
-+ "unicode-xid 0.1.0",
-+]
-+
-+[[package]]
-+name = "syn"
-+version = "1.0.18"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "410a7488c0a728c7ceb4ad59b9567eb4053d02e8cc7f5c0e0eeeb39518369213"
-+dependencies = [
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "unicode-xid 0.2.0",
-+]
-+
-+[[package]]
-+name = "syn-mid"
-+version = "0.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
-+dependencies = [
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "syn 1.0.18",
-+]
-+
-+[[package]]
-+name = "tempdir"
-+version = "0.3.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
-+dependencies = [
-+ "rand 0.4.6",
-+ "remove_dir_all",
-+]
-+
-+[[package]]
-+name = "tempfile"
-+version = "3.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
-+dependencies = [
-+ "cfg-if",
-+ "libc",
-+ "rand 0.7.3",
-+ "redox_syscall",
-+ "remove_dir_all",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "term"
-+version = "0.5.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42"
-+dependencies = [
-+ "byteorder",
-+ "dirs",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "termcolor"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
-+dependencies = [
-+ "winapi-util",
-+]
-+
-+[[package]]
-+name = "textwrap"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-+dependencies = [
-+ "unicode-width",
-+]
-+
-+[[package]]
-+name = "thread_local"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
-+dependencies = [
-+ "lazy_static",
-+]
-+
-+[[package]]
-+name = "threadpool"
-+version = "1.8.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e8dae184447c15d5a6916d973c642aec485105a13cd238192a6927ae3e077d66"
-+dependencies = [
-+ "num_cpus",
-+]
-+
-+[[package]]
-+name = "time"
-+version = "0.1.43"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
-+dependencies = [
-+ "libc",
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "tiny_http"
-+version = "0.6.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1661fa0a44c95d01604bd05c66732a446c657efb62b5164a7a083a3b552b4951"
-+dependencies = [
-+ "ascii",
-+ "chrono",
-+ "chunked_transfer",
-+ "log 0.4.8",
-+ "url",
-+]
-+
-+[[package]]
-+name = "todomvc"
-+version = "0.1.0"
-+dependencies = [
-+ "askama",
-+ "console_error_panic_hook",
-+ "js-sys",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "toml"
-+version = "0.4.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f"
-+dependencies = [
-+ "serde",
-+]
-+
-+[[package]]
-+name = "toml"
-+version = "0.5.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
-+dependencies = [
-+ "serde",
-+]
-+
-+[[package]]
-+name = "treeline"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
-+
-+[[package]]
-+name = "trybuild"
-+version = "1.0.26"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4e5696e4fd793743fbcc29943fe965ea3993b6c3d2a6a3a35c6680d926fd3a49"
-+dependencies = [
-+ "glob",
-+ "lazy_static",
-+ "serde",
-+ "serde_json",
-+ "termcolor",
-+ "toml 0.5.6",
-+]
-+
-+[[package]]
-+name = "twoway"
-+version = "0.1.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1"
-+dependencies = [
-+ "memchr",
-+]
-+
-+[[package]]
-+name = "typescript-tests"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "unicase"
-+version = "1.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33"
-+dependencies = [
-+ "version_check 0.1.5",
-+]
-+
-+[[package]]
-+name = "unicode-bidi"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
-+dependencies = [
-+ "matches",
-+]
-+
-+[[package]]
-+name = "unicode-normalization"
-+version = "0.1.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5479532badd04e128284890390c1e876ef7a993d0570b3597ae43dfa1d59afa4"
-+dependencies = [
-+ "smallvec",
-+]
-+
-+[[package]]
-+name = "unicode-segmentation"
-+version = "1.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
-+
-+[[package]]
-+name = "unicode-width"
-+version = "0.1.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
-+
-+[[package]]
-+name = "unicode-xid"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
-+
-+[[package]]
-+name = "unicode-xid"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
-+
-+[[package]]
-+name = "url"
-+version = "1.7.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
-+dependencies = [
-+ "idna",
-+ "matches",
-+ "percent-encoding",
-+]
-+
-+[[package]]
-+name = "vcpkg"
-+version = "0.2.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168"
-+
-+[[package]]
-+name = "vec_map"
-+version = "0.8.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
-+
-+[[package]]
-+name = "version_check"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
-+
-+[[package]]
-+name = "version_check"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce"
-+
-+[[package]]
-+name = "walrus"
-+version = "0.14.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4d96e9ec3f81fdb3210b12b2b1e9e39369c8050a3a28e692e5247e3ab5196410"
-+dependencies = [
-+ "anyhow",
-+ "id-arena",
-+ "leb128",
-+ "log 0.4.8",
-+ "rayon",
-+ "walrus-macro",
-+ "wasmparser 0.42.1",
-+]
-+
-+[[package]]
-+name = "walrus-macro"
-+version = "0.14.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2bc16925d405153a91e01cdac2a5549aa25ca9148b5176e25e601f6536344d94"
-+dependencies = [
-+ "heck",
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "syn 1.0.18",
-+]
-+
-+[[package]]
-+name = "wasi"
-+version = "0.9.0+wasi-snapshot-preview1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-+
-+[[package]]
-+name = "wasm-bindgen"
-+version = "0.2.62"
-+dependencies = [
-+ "cfg-if",
-+ "js-sys",
-+ "serde",
-+ "serde_derive",
-+ "serde_json",
-+ "wasm-bindgen-futures",
-+ "wasm-bindgen-macro",
-+ "wasm-bindgen-test",
-+ "wasm-bindgen-test-crate-a",
-+ "wasm-bindgen-test-crate-b",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-anyref-xform"
-+version = "0.2.62"
-+dependencies = [
-+ "anyhow",
-+ "rayon",
-+ "walrus",
-+ "wasmprinter",
-+ "wast 3.0.4",
-+ "wat",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-backend"
-+version = "0.2.62"
-+dependencies = [
-+ "bumpalo",
-+ "lazy_static",
-+ "log 0.4.8",
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "syn 1.0.18",
-+ "wasm-bindgen-shared",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-benchmark"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-cli"
-+version = "0.2.62"
-+dependencies = [
-+ "anyhow",
-+ "assert_cmd",
-+ "curl",
-+ "diff",
-+ "docopt",
-+ "env_logger",
-+ "log 0.4.8",
-+ "openssl",
-+ "predicates",
-+ "rayon",
-+ "rouille",
-+ "serde",
-+ "serde_derive",
-+ "serde_json",
-+ "tempfile",
-+ "walrus",
-+ "wasm-bindgen-cli-support",
-+ "wasm-bindgen-shared",
-+ "wit-printer",
-+ "wit-text",
-+ "wit-validator",
-+ "wit-walrus",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-cli-support"
-+version = "0.2.62"
-+dependencies = [
-+ "anyhow",
-+ "base64 0.9.3",
-+ "log 0.4.8",
-+ "rustc-demangle",
-+ "serde_json",
-+ "tempfile",
-+ "walrus",
-+ "wasm-bindgen-anyref-xform",
-+ "wasm-bindgen-multi-value-xform",
-+ "wasm-bindgen-shared",
-+ "wasm-bindgen-threads-xform",
-+ "wasm-bindgen-wasm-conventions",
-+ "wasm-bindgen-wasm-interpreter",
-+ "wit-text",
-+ "wit-validator",
-+ "wit-walrus",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-futures"
-+version = "0.4.12"
-+dependencies = [
-+ "cfg-if",
-+ "futures-channel-preview",
-+ "js-sys",
-+ "wasm-bindgen",
-+ "wasm-bindgen-test",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-macro"
-+version = "0.2.62"
-+dependencies = [
-+ "quote 1.0.4",
-+ "trybuild",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "wasm-bindgen-macro-support",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-macro-support"
-+version = "0.2.62"
-+dependencies = [
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "syn 1.0.18",
-+ "wasm-bindgen-backend",
-+ "wasm-bindgen-shared",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-multi-value-xform"
-+version = "0.2.62"
-+dependencies = [
-+ "anyhow",
-+ "rayon",
-+ "walrus",
-+ "wasmprinter",
-+ "wast 3.0.4",
-+ "wat",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-paint"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-shared"
-+version = "0.2.62"
-+
-+[[package]]
-+name = "wasm-bindgen-test"
-+version = "0.3.12"
-+dependencies = [
-+ "console_error_panic_hook",
-+ "js-sys",
-+ "scoped-tls",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "wasm-bindgen-test-macro",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-test-crate-a"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-test-crate-b"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-test-macro"
-+version = "0.3.12"
-+dependencies = [
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-threads-xform"
-+version = "0.2.62"
-+dependencies = [
-+ "anyhow",
-+ "walrus",
-+ "wasm-bindgen-wasm-conventions",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-wasm-conventions"
-+version = "0.2.62"
-+dependencies = [
-+ "anyhow",
-+ "walrus",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-wasm-interpreter"
-+version = "0.2.62"
-+dependencies = [
-+ "anyhow",
-+ "log 0.4.8",
-+ "tempfile",
-+ "walrus",
-+ "wat",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-webidl"
-+version = "0.2.62"
-+dependencies = [
-+ "anyhow",
-+ "env_logger",
-+ "heck",
-+ "lazy_static",
-+ "log 0.4.8",
-+ "proc-macro2 1.0.10",
-+ "quote 1.0.4",
-+ "sourcefile",
-+ "structopt",
-+ "syn 1.0.18",
-+ "wasm-bindgen-backend",
-+ "weedle",
-+]
-+
-+[[package]]
-+name = "wasm-in-wasm"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+]
-+
-+[[package]]
-+name = "wasm2js"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "wasmparser"
-+version = "0.42.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1527c84a5bd585215f29c06b0e2a5274e478ad4dfc970d26ffad66fdc6cb311d"
-+
-+[[package]]
-+name = "wasmparser"
-+version = "0.51.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aeb1956b19469d1c5e63e459d29e7b5aa0f558d9f16fcef09736f8a265e6c10a"
-+
-+[[package]]
-+name = "wasmprinter"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8bd423d45b95fcee11775472bfdce66c63c45ada23c1b338e0a63d623a6c475b"
-+dependencies = [
-+ "anyhow",
-+ "wasmparser 0.51.4",
-+]
-+
-+[[package]]
-+name = "wast"
-+version = "3.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "233648f540f07fce9b972436f2fbcae8a750c1121b6d32d949e1a44b4d9fc7b1"
-+dependencies = [
-+ "leb128",
-+]
-+
-+[[package]]
-+name = "wast"
-+version = "14.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "47b11c94c63d5365a76ea287f8e6e5b6050233fae4b2423aea2a1e126a385e17"
-+dependencies = [
-+ "leb128",
-+]
-+
-+[[package]]
-+name = "wat"
-+version = "1.0.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "03db18bc33cff3859c296efbefdcc00763a644539feeadca3415a1cee8a2835d"
-+dependencies = [
-+ "wast 14.0.0",
-+]
-+
-+[[package]]
-+name = "web-sys"
-+version = "0.3.39"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "wasm-bindgen-test",
-+]
-+
-+[[package]]
-+name = "webaudio"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "webgl"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "webidl-tests"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "wasm-bindgen-test",
-+ "wasm-bindgen-webidl",
-+]
-+
-+[[package]]
-+name = "websockets"
-+version = "0.1.0"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "webxr"
-+version = "0.1.0"
-+dependencies = [
-+ "futures",
-+ "js-sys",
-+ "serde",
-+ "serde_derive",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "weedle"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8a7d4f9feb723a800d8f7b74edc9fa44ff35cb0b2ec64886714362f423427f37"
-+dependencies = [
-+ "nom 5.1.1",
-+]
-+
-+[[package]]
-+name = "winapi"
-+version = "0.3.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
-+dependencies = [
-+ "winapi-i686-pc-windows-gnu",
-+ "winapi-x86_64-pc-windows-gnu",
-+]
-+
-+[[package]]
-+name = "winapi-i686-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-+
-+[[package]]
-+name = "winapi-util"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-+dependencies = [
-+ "winapi",
-+]
-+
-+[[package]]
-+name = "winapi-x86_64-pc-windows-gnu"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-+
-+[[package]]
-+name = "wit-parser"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "29a378ab795034efe2c4a6c8a388a2d9b31d360ad441c0bc9859b3d4d37e62a3"
-+dependencies = [
-+ "anyhow",
-+ "leb128",
-+ "wit-schema-version",
-+]
-+
-+[[package]]
-+name = "wit-printer"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8c76e17384f4feb766d109a42c309b78de75ea2b3745f663ac3f5f331633f77f"
-+dependencies = [
-+ "anyhow",
-+ "wasmprinter",
-+ "wit-parser",
-+ "wit-schema-version",
-+]
-+
-+[[package]]
-+name = "wit-schema-version"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bfee4a6a4716eefa0682e7a3b836152e894a3e4f34a9d6c2c3e1c94429bfe36a"
-+
-+[[package]]
-+name = "wit-text"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2aa19a002c984e25356af8938a8f4b7f0c9fe3963498e7ae1f90d64da9e563f5"
-+dependencies = [
-+ "anyhow",
-+ "wast 3.0.4",
-+ "wit-writer",
-+]
-+
-+[[package]]
-+name = "wit-validator"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2454229f760a433842db154c9bb54da896fdf2352b1d63261f617bcdf20be0bd"
-+dependencies = [
-+ "anyhow",
-+ "wasmparser 0.51.4",
-+ "wit-parser",
-+ "wit-schema-version",
-+]
-+
-+[[package]]
-+name = "wit-walrus"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8e14fbb9453201558c582d227c2b75df5c050409f467e8c220fcd57dc369280a"
-+dependencies = [
-+ "anyhow",
-+ "id-arena",
-+ "walrus",
-+ "wit-parser",
-+ "wit-schema-version",
-+ "wit-writer",
-+]
-+
-+[[package]]
-+name = "wit-writer"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ebeb128df9e103e61f8ddd8a190259f3c48b73fe86a5932f40f4de526ef357e8"
-+dependencies = [
-+ "leb128",
-+ "wit-schema-version",
-+]
-+
-+[[package]]
-+name = "without-a-bundler"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "without-a-bundler-no-modules"
-+version = "0.1.0"
-+dependencies = [
-+ "wasm-bindgen",
-+ "web-sys",
-+]
--- 
-2.25.4
-
diff --git a/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock b/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock
new file mode 100644
index 000000000000..eed61d4ec143
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/Cargo.lock
@@ -0,0 +1,2557 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+[[package]]
+name = "add"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "adler32"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234"
+
+[[package]]
+name = "aho-corasick"
+version = "0.7.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "ansi_term"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6b602bfe940d21c130f3895acd65221e8a61270debe89d628b9cb4e3ccb8569b"
+
+[[package]]
+name = "arrayref"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
+
+[[package]]
+name = "arrayvec"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
+
+[[package]]
+name = "ascii"
+version = "0.8.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "97be891acc47ca214468e09425d02cef3af2c94d0d82081cd02061f996802f14"
+
+[[package]]
+name = "askama"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70a6e7ebd44d0047fd48206c83c5cd3214acc7b9d87f001da170145c47ef7d12"
+dependencies = [
+ "askama_derive",
+ "askama_escape",
+ "askama_shared",
+]
+
+[[package]]
+name = "askama_derive"
+version = "0.10.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1d7169690c4f56343dcd821ab834972a22570a2662a19a84fd7775d5e1c3881"
+dependencies = [
+ "askama_shared",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "askama_escape"
+version = "0.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90c108c1a94380c89d2215d0ac54ce09796823cca0fd91b299cfff3b33e346fb"
+
+[[package]]
+name = "askama_shared"
+version = "0.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62fc272363345c8cdc030e4c259d9d028237f8b057dc9bb327772a257bde6bb5"
+dependencies = [
+ "askama_escape",
+ "humansize",
+ "nom",
+ "num-traits 0.2.12",
+ "percent-encoding 2.1.0",
+ "proc-macro2",
+ "quote",
+ "serde",
+ "syn",
+ "toml",
+]
+
+[[package]]
+name = "assert_cmd"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c88b9ca26f9c16ec830350d309397e74ee9abdfd8eb1f71cb6ecc71a3fc818da"
+dependencies = [
+ "doc-comment",
+ "predicates",
+ "predicates-core",
+ "predicates-tree",
+ "wait-timeout",
+]
+
+[[package]]
+name = "atty"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
+dependencies = [
+ "hermit-abi",
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "autocfg"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
+
+[[package]]
+name = "autocfg"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
+
+[[package]]
+name = "base64"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
+dependencies = [
+ "byteorder",
+ "safemem",
+]
+
+[[package]]
+name = "base64"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
+
+[[package]]
+name = "bitflags"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
+
+[[package]]
+name = "bitflags"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
+
+[[package]]
+name = "blake2b_simd"
+version = "0.5.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
+dependencies = [
+ "arrayref",
+ "arrayvec",
+ "constant_time_eq",
+]
+
+[[package]]
+name = "buf_redux"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b953a6887648bb07a535631f2bc00fbdb2a2216f135552cb3f534ed136b9c07f"
+dependencies = [
+ "memchr",
+ "safemem",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
+
+[[package]]
+name = "byteorder"
+version = "1.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
+
+[[package]]
+name = "canvas"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518"
+
+[[package]]
+name = "cfg-if"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
+
+[[package]]
+name = "char"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "chrono"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6"
+dependencies = [
+ "num-integer",
+ "num-traits 0.2.12",
+ "time",
+]
+
+[[package]]
+name = "chunked_transfer"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "498d20a7aaf62625b9bf26e637cf7736417cde1d0c99f1d04d1170229a85cf87"
+
+[[package]]
+name = "clap"
+version = "2.33.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
+dependencies = [
+ "ansi_term",
+ "atty",
+ "bitflags 1.2.1",
+ "strsim 0.8.0",
+ "textwrap",
+ "unicode-width",
+ "vec_map",
+]
+
+[[package]]
+name = "closures"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "cloudabi"
+version = "0.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
+dependencies = [
+ "bitflags 1.2.1",
+]
+
+[[package]]
+name = "color_quant"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0dbbb57365263e881e805dc77d94697c9118fd94d8da011240555aa7b23445bd"
+
+[[package]]
+name = "console_error_panic_hook"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b8d976903543e0c48546a91908f21588a680a8c8f984df9a5d69feccb2b2a211"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "console_log"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "constant_time_eq"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+ "maybe-uninit",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
+dependencies = [
+ "autocfg 1.0.0",
+ "cfg-if",
+ "crossbeam-utils",
+ "lazy_static",
+ "maybe-uninit",
+ "memoffset",
+ "scopeguard",
+]
+
+[[package]]
+name = "crossbeam-queue"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
+dependencies = [
+ "cfg-if",
+ "crossbeam-utils",
+ "maybe-uninit",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
+dependencies = [
+ "autocfg 1.0.0",
+ "cfg-if",
+ "lazy_static",
+]
+
+[[package]]
+name = "curl"
+version = "0.4.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9447ad28eee2a5cfb031c329d46bef77487244fff6a724b378885b8691a35f78"
+dependencies = [
+ "curl-sys",
+ "libc",
+ "openssl-probe",
+ "openssl-sys",
+ "schannel",
+ "socket2",
+ "winapi",
+]
+
+[[package]]
+name = "curl-sys"
+version = "0.4.33+curl-7.71.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e9818ea018327f79c811612f29b9834d2abddbe7db81460a2d5c7e12946b337"
+dependencies = [
+ "cc",
+ "libc",
+ "libz-sys",
+ "openssl-sys",
+ "pkg-config",
+ "vcpkg",
+ "winapi",
+]
+
+[[package]]
+name = "deflate"
+version = "0.7.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "707b6a7b384888a70c8d2e8650b3e60170dfc6a67bb4aa67b6dfca57af4bedb4"
+dependencies = [
+ "adler32",
+ "byteorder",
+]
+
+[[package]]
+name = "deno"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "diff"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0e25ea47919b1560c4e3b7fe0aaab9becf5b84a10325ddf7db0f0ba5e1026499"
+
+[[package]]
+name = "difference"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
+
+[[package]]
+name = "dirs"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "doc-comment"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10"
+
+[[package]]
+name = "docopt"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f525a586d310c87df72ebcd98009e57f1cc030c8c268305287a476beb653969"
+dependencies = [
+ "lazy_static",
+ "regex",
+ "serde",
+ "strsim 0.9.3",
+]
+
+[[package]]
+name = "dom"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "either"
+version = "1.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
+
+[[package]]
+name = "enum_primitive"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "be4551092f4d519593039259a9ed8daedf0da12e5109c5280338073eaeb81180"
+dependencies = [
+ "num-traits 0.1.43",
+]
+
+[[package]]
+name = "env_logger"
+version = "0.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
+dependencies = [
+ "atty",
+ "humantime 1.3.0",
+ "log 0.4.11",
+ "regex",
+ "termcolor",
+]
+
+[[package]]
+name = "fetch"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "serde",
+ "serde_derive",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "filetime"
+version = "0.2.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e500da2fab70bdc43f8f0e0b350a227f31c72311c56aba48f01d5cd62bb0345b"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "winapi",
+]
+
+[[package]]
+name = "float-cmp"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1267f4ac4f343772758f7b1bdcbe767c218bbab93bb432acbf5162bbf85a6c4"
+dependencies = [
+ "num-traits 0.2.12",
+]
+
+[[package]]
+name = "foreign-types"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
+dependencies = [
+ "foreign-types-shared",
+]
+
+[[package]]
+name = "foreign-types-shared"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
+
+[[package]]
+name = "fuchsia-cprng"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
+
+[[package]]
+name = "futures"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-executor",
+ "futures-io",
+ "futures-sink",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-channel"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
+dependencies = [
+ "futures-core",
+ "futures-sink",
+]
+
+[[package]]
+name = "futures-channel-preview"
+version = "0.3.0-alpha.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d5e5f4df964fa9c1c2f8bddeb5c3611631cacd93baf810fc8bb2fb4b495c263a"
+dependencies = [
+ "futures-core-preview",
+]
+
+[[package]]
+name = "futures-core"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"
+
+[[package]]
+name = "futures-core-preview"
+version = "0.3.0-alpha.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b35b6263fb1ef523c3056565fa67b1d16f0a8604ff12b11b08c25f28a734c60a"
+
+[[package]]
+name = "futures-executor"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314"
+dependencies = [
+ "futures-core",
+ "futures-task",
+ "futures-util",
+]
+
+[[package]]
+name = "futures-io"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789"
+
+[[package]]
+name = "futures-macro"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"
+dependencies = [
+ "proc-macro-hack",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "futures-sink"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc"
+
+[[package]]
+name = "futures-task"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "futures-util"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
+dependencies = [
+ "futures-channel",
+ "futures-core",
+ "futures-io",
+ "futures-macro",
+ "futures-sink",
+ "futures-task",
+ "memchr",
+ "pin-project",
+ "pin-utils",
+ "proc-macro-hack",
+ "proc-macro-nested",
+ "slab",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.1.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "wasi",
+]
+
+[[package]]
+name = "gif"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2e41945ba23db3bf51b24756d73d81acb4f28d85c3dccc32c6fae904438c25f"
+dependencies = [
+ "color_quant",
+ "lzw",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
+
+[[package]]
+name = "guide-supported-types-examples"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "heck"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
+dependencies = [
+ "unicode-segmentation",
+]
+
+[[package]]
+name = "hello_world"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "hermit-abi"
+version = "0.1.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "httparse"
+version = "1.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
+
+[[package]]
+name = "humansize"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b6cab2627acfc432780848602f3f558f7e9dd427352224b0d9324025796d2a5e"
+
+[[package]]
+name = "humantime"
+version = "1.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
+dependencies = [
+ "quick-error",
+]
+
+[[package]]
+name = "humantime"
+version = "2.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c1ad908cc71012b7bea4d0c53ba96a8cba9962f048fa68d143376143d863b7a"
+
+[[package]]
+name = "id-arena"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005"
+dependencies = [
+ "rayon",
+]
+
+[[package]]
+name = "idna"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
+dependencies = [
+ "matches",
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "image"
+version = "0.12.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d95816db758249fe16f23a4e23f1a3a817fe11892dbfd1c5836f625324702158"
+dependencies = [
+ "byteorder",
+ "enum_primitive",
+ "gif",
+ "jpeg-decoder",
+ "num-iter",
+ "num-rational",
+ "num-traits 0.1.43",
+ "png",
+ "scoped_threadpool",
+]
+
+[[package]]
+name = "import_js"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "inflate"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7e0062d2dc2f17d2f13750d95316ae8a2ff909af0fda957084f5defd87c43bb"
+
+[[package]]
+name = "itoa"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
+
+[[package]]
+name = "jpeg-decoder"
+version = "0.1.20"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc797adac5f083b8ff0ca6f6294a999393d76e197c36488e2ef732c4715f6fa3"
+dependencies = [
+ "byteorder",
+ "rayon",
+]
+
+[[package]]
+name = "js-sys"
+version = "0.3.44"
+dependencies = [
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-test",
+]
+
+[[package]]
+name = "julia_set"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "leb128"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3576a87f2ba00f6f106fdfcd16db1d698d648a26ad8e0573cad8537c3c362d2a"
+
+[[package]]
+name = "libc"
+version = "0.2.74"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2f02823cf78b754822df5f7f268fb59822e7296276d3e069d8e8cb26a14bd10"
+
+[[package]]
+name = "libz-sys"
+version = "1.0.25"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe"
+dependencies = [
+ "cc",
+ "libc",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "log"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
+dependencies = [
+ "log 0.4.11",
+]
+
+[[package]]
+name = "log"
+version = "0.4.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
+dependencies = [
+ "cfg-if",
+]
+
+[[package]]
+name = "lzw"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084"
+
+[[package]]
+name = "matches"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
+
+[[package]]
+name = "maybe-uninit"
+version = "2.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
+
+[[package]]
+name = "memchr"
+version = "2.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
+
+[[package]]
+name = "memoffset"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f"
+dependencies = [
+ "autocfg 1.0.0",
+]
+
+[[package]]
+name = "mime"
+version = "0.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0"
+dependencies = [
+ "log 0.3.9",
+]
+
+[[package]]
+name = "mime_guess"
+version = "1.8.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "216929a5ee4dd316b1702eedf5e74548c123d370f47841ceaac38ca154690ca3"
+dependencies = [
+ "mime",
+ "phf",
+ "phf_codegen",
+ "unicase",
+]
+
+[[package]]
+name = "multipart"
+version = "0.15.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adba94490a79baf2d6a23eac897157047008272fa3eecb3373ae6377b91eca28"
+dependencies = [
+ "buf_redux",
+ "httparse",
+ "log 0.4.11",
+ "mime",
+ "mime_guess",
+ "quick-error",
+ "rand 0.4.6",
+ "safemem",
+ "tempdir",
+ "twoway",
+]
+
+[[package]]
+name = "no-std"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "nom"
+version = "5.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af"
+dependencies = [
+ "memchr",
+ "version_check 0.9.2",
+]
+
+[[package]]
+name = "normalize-line-endings"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be"
+
+[[package]]
+name = "num-integer"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b"
+dependencies = [
+ "autocfg 1.0.0",
+ "num-traits 0.2.12",
+]
+
+[[package]]
+name = "num-iter"
+version = "0.1.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f"
+dependencies = [
+ "autocfg 1.0.0",
+ "num-integer",
+ "num-traits 0.2.12",
+]
+
+[[package]]
+name = "num-rational"
+version = "0.1.42"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e"
+dependencies = [
+ "num-integer",
+ "num-traits 0.2.12",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
+dependencies = [
+ "num-traits 0.2.12",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
+dependencies = [
+ "autocfg 1.0.0",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.13.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
+
+[[package]]
+name = "openssl"
+version = "0.10.30"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8d575eff3665419f9b83678ff2815858ad9d11567e082f5ac1814baba4e2bcb4"
+dependencies = [
+ "bitflags 1.2.1",
+ "cfg-if",
+ "foreign-types",
+ "lazy_static",
+ "libc",
+ "openssl-sys",
+]
+
+[[package]]
+name = "openssl-probe"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
+
+[[package]]
+name = "openssl-src"
+version = "111.10.2+1.1.1g"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a287fdb22e32b5b60624d4a5a7a02dbe82777f730ec0dbc42a0554326fef5a70"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "openssl-sys"
+version = "0.9.58"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de"
+dependencies = [
+ "autocfg 1.0.0",
+ "cc",
+ "libc",
+ "openssl-src",
+ "pkg-config",
+ "vcpkg",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
+
+[[package]]
+name = "percent-encoding"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
+
+[[package]]
+name = "performance"
+version = "0.1.0"
+dependencies = [
+ "humantime 2.0.1",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "phf"
+version = "0.7.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18"
+dependencies = [
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.7.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.7.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662"
+dependencies = [
+ "phf_shared",
+ "rand 0.6.5",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.7.24"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0"
+dependencies = [
+ "siphasher",
+ "unicase",
+]
+
+[[package]]
+name = "pin-project"
+version = "0.4.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca4433fff2ae79342e497d9f8ee990d174071408f28f726d6d83af93e58e48aa"
+dependencies = [
+ "pin-project-internal",
+]
+
+[[package]]
+name = "pin-project-internal"
+version = "0.4.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2c0e815c3ee9a031fdf5af21c10aa17c573c9c6a566328d99e3936c34e36461f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "pin-utils"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184"
+
+[[package]]
+name = "pkg-config"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
+
+[[package]]
+name = "png"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3cb773e9a557edb568ce9935cf783e3cdcabe06a9449d41b3e5506d88e582c82"
+dependencies = [
+ "bitflags 0.7.0",
+ "deflate",
+ "inflate",
+ "num-iter",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
+
+[[package]]
+name = "predicates"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96bfead12e90dccead362d62bb2c90a5f6fc4584963645bc7f71a735e0b0735a"
+dependencies = [
+ "difference",
+ "float-cmp",
+ "normalize-line-endings",
+ "predicates-core",
+ "regex",
+]
+
+[[package]]
+name = "predicates-core"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06075c3a3e92559ff8929e7a280684489ea27fe44805174c3ebd9328dcb37178"
+
+[[package]]
+name = "predicates-tree"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e63c4859013b38a76eca2414c64911fba30def9e3202ac461a2d22831220124"
+dependencies = [
+ "predicates-core",
+ "treeline",
+]
+
+[[package]]
+name = "proc-macro-error"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fc175e9777c3116627248584e8f8b3e2987405cabe1c0adf7d1dd28f09dc7880"
+dependencies = [
+ "proc-macro-error-attr",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "version_check 0.9.2",
+]
+
+[[package]]
+name = "proc-macro-error-attr"
+version = "1.0.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3cc9795ca17eb581285ec44936da7fc2335a3f34f2ddd13118b6f4d515435c50"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "syn-mid",
+ "version_check 0.9.2",
+]
+
+[[package]]
+name = "proc-macro-hack"
+version = "0.5.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "99c605b9a0adc77b7211c6b1f722dcb613d68d66859a44f3d485a6da332b0598"
+
+[[package]]
+name = "proc-macro-nested"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12"
+dependencies = [
+ "unicode-xid",
+]
+
+[[package]]
+name = "quick-error"
+version = "1.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
+
+[[package]]
+name = "quote"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
+dependencies = [
+ "fuchsia-cprng",
+ "libc",
+ "rand_core 0.3.1",
+ "rdrand",
+ "winapi",
+]
+
+[[package]]
+name = "rand"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
+dependencies = [
+ "cloudabi",
+ "fuchsia-cprng",
+ "libc",
+ "rand_core 0.3.1",
+ "winapi",
+]
+
+[[package]]
+name = "rand"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
+dependencies = [
+ "autocfg 0.1.7",
+ "libc",
+ "rand_chacha 0.1.1",
+ "rand_core 0.4.2",
+ "rand_hc 0.1.0",
+ "rand_isaac",
+ "rand_jitter",
+ "rand_os",
+ "rand_pcg",
+ "rand_xorshift",
+ "winapi",
+]
+
+[[package]]
+name = "rand"
+version = "0.7.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
+dependencies = [
+ "getrandom",
+ "libc",
+ "rand_chacha 0.2.2",
+ "rand_core 0.5.1",
+ "rand_hc 0.2.0",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
+dependencies = [
+ "autocfg 0.1.7",
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
+dependencies = [
+ "ppv-lite86",
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
+dependencies = [
+ "rand_core 0.4.2",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
+
+[[package]]
+name = "rand_core"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "rand_hc"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
+dependencies = [
+ "rand_core 0.5.1",
+]
+
+[[package]]
+name = "rand_isaac"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "rand_jitter"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
+dependencies = [
+ "libc",
+ "rand_core 0.4.2",
+ "winapi",
+]
+
+[[package]]
+name = "rand_os"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
+dependencies = [
+ "cloudabi",
+ "fuchsia-cprng",
+ "libc",
+ "rand_core 0.4.2",
+ "rdrand",
+ "winapi",
+]
+
+[[package]]
+name = "rand_pcg"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
+dependencies = [
+ "autocfg 0.1.7",
+ "rand_core 0.4.2",
+]
+
+[[package]]
+name = "rand_xorshift"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "rayon"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080"
+dependencies = [
+ "autocfg 1.0.0",
+ "crossbeam-deque",
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.7.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-queue",
+ "crossbeam-utils",
+ "lazy_static",
+ "num_cpus",
+]
+
+[[package]]
+name = "raytrace-parallel"
+version = "0.1.0"
+dependencies = [
+ "console_error_panic_hook",
+ "futures-channel-preview",
+ "js-sys",
+ "rayon",
+ "rayon-core",
+ "raytracer",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "raytracer"
+version = "0.1.0"
+source = "git+https://github.com/alexcrichton/raytracer?branch=update-deps#42faa13859f7d8d47fd18be785c108003a207786"
+dependencies = [
+ "image",
+ "serde",
+ "serde_derive",
+]
+
+[[package]]
+name = "rdrand"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
+dependencies = [
+ "rand_core 0.3.1",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.1.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
+
+[[package]]
+name = "redox_users"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431"
+dependencies = [
+ "getrandom",
+ "redox_syscall",
+ "rust-argon2",
+]
+
+[[package]]
+name = "regex"
+version = "1.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+ "thread_local",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
+
+[[package]]
+name = "remove_dir_all"
+version = "0.5.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "request-animation-frame"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "rouille"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "112568052ec17fa26c6c11c40acbb30d3ad244bf3d6da0be181f5e7e42e5004f"
+dependencies = [
+ "base64 0.9.3",
+ "chrono",
+ "filetime",
+ "multipart",
+ "num_cpus",
+ "rand 0.5.6",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "sha1",
+ "term",
+ "threadpool",
+ "time",
+ "tiny_http",
+ "url",
+]
+
+[[package]]
+name = "rust-argon2"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017"
+dependencies = [
+ "base64 0.11.0",
+ "blake2b_simd",
+ "constant_time_eq",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "rust-duck-typed-interfaces"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "rustc-demangle"
+version = "0.1.16"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
+
+[[package]]
+name = "ryu"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
+
+[[package]]
+name = "safemem"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
+
+[[package]]
+name = "sample"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-test",
+]
+
+[[package]]
+name = "schannel"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
+dependencies = [
+ "lazy_static",
+ "winapi",
+]
+
+[[package]]
+name = "scoped-tls"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"
+
+[[package]]
+name = "scoped_threadpool"
+version = "0.1.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
+
+[[package]]
+name = "scopeguard"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
+
+[[package]]
+name = "serde"
+version = "1.0.114"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.114"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.57"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "164eacbdb13512ec2745fb09d51fd5b22b0d65ed294a1dcf7285a360c80a675c"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "sha1"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2579985fda508104f7587689507983eadd6a6e84dd35d6d115361f530916fa0d"
+
+[[package]]
+name = "siphasher"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
+
+[[package]]
+name = "slab"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
+
+[[package]]
+name = "socket2"
+version = "0.3.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall",
+ "winapi",
+]
+
+[[package]]
+name = "sourcefile"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4bf77cb82ba8453b42b6ae1d692e4cdc92f9a47beaf89a847c8be83f4e328ad3"
+
+[[package]]
+name = "strsim"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
+
+[[package]]
+name = "strsim"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6446ced80d6c486436db5c078dde11a9f73d42b57fb273121e160b84f63d894c"
+
+[[package]]
+name = "structopt"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de2f5e239ee807089b62adce73e48c625e0ed80df02c7ab3f068f5db5281065c"
+dependencies = [
+ "clap",
+ "lazy_static",
+ "structopt-derive",
+]
+
+[[package]]
+name = "structopt-derive"
+version = "0.4.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "510413f9de616762a4fbeab62509bf15c729603b72d7cd71280fbca431b1c118"
+dependencies = [
+ "heck",
+ "proc-macro-error",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4cdb98bcb1f9d81d07b536179c269ea15999b5d14ea958196413869445bb5250"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-xid",
+]
+
+[[package]]
+name = "syn-mid"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7be3539f6c128a931cf19dcee741c1af532c7fd387baa739c03dd2e96479338a"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "tempdir"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
+dependencies = [
+ "rand 0.4.6",
+ "remove_dir_all",
+]
+
+[[package]]
+name = "tempfile"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "rand 0.7.3",
+ "redox_syscall",
+ "remove_dir_all",
+ "winapi",
+]
+
+[[package]]
+name = "term"
+version = "0.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "edd106a334b7657c10b7c540a0106114feadeb4dc314513e97df481d5d966f42"
+dependencies = [
+ "byteorder",
+ "dirs",
+ "winapi",
+]
+
+[[package]]
+name = "termcolor"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "textwrap"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "threadpool"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
+dependencies = [
+ "num_cpus",
+]
+
+[[package]]
+name = "time"
+version = "0.1.43"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
+[[package]]
+name = "tiny_http"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1661fa0a44c95d01604bd05c66732a446c657efb62b5164a7a083a3b552b4951"
+dependencies = [
+ "ascii",
+ "chrono",
+ "chunked_transfer",
+ "log 0.4.11",
+ "url",
+]
+
+[[package]]
+name = "tinyvec"
+version = "0.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed"
+
+[[package]]
+name = "todomvc"
+version = "0.1.0"
+dependencies = [
+ "askama",
+ "console_error_panic_hook",
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "toml"
+version = "0.5.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ffc92d160b1eef40665be3a05630d003936a3bc7da7421277846c2613e92c71a"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "treeline"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
+
+[[package]]
+name = "trybuild"
+version = "1.0.31"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a4d94e6adf00b96b1ab94fcfcd8c3cf916733b39adf90c8f72693629887b9b8"
+dependencies = [
+ "glob",
+ "lazy_static",
+ "serde",
+ "serde_json",
+ "termcolor",
+ "toml",
+]
+
+[[package]]
+name = "twoway"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59b11b2b5241ba34be09c3cc85a36e56e48f9888862e19cedf23336d35316ed1"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "typescript-tests"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "unicase"
+version = "1.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33"
+dependencies = [
+ "version_check 0.1.5",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
+dependencies = [
+ "matches",
+]
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-segmentation"
+version = "1.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e83e153d1053cbb5a118eeff7fd5be06ed99153f00dbcd8ae310c5fb2b22edc0"
+
+[[package]]
+name = "unicode-width"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
+
+[[package]]
+name = "unicode-xid"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
+
+[[package]]
+name = "url"
+version = "1.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
+dependencies = [
+ "idna",
+ "matches",
+ "percent-encoding 1.0.1",
+]
+
+[[package]]
+name = "vcpkg"
+version = "0.2.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
+
+[[package]]
+name = "vec_map"
+version = "0.8.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+
+[[package]]
+name = "version_check"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
+
+[[package]]
+name = "version_check"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
+
+[[package]]
+name = "wait-timeout"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "walrus"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d470d0583e65f4cab21a1ff3c1ba3dd23ae49e68f516f0afceaeb001b32af39"
+dependencies = [
+ "anyhow",
+ "id-arena",
+ "leb128",
+ "log 0.4.11",
+ "rayon",
+ "walrus-macro",
+ "wasmparser 0.59.0",
+]
+
+[[package]]
+name = "walrus-macro"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7c2bb690b44cb1b0fdcc54d4998d21f8bdaf706b93775425e440b174f39ad16"
+dependencies = [
+ "heck",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
+[[package]]
+name = "wasi"
+version = "0.9.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.67"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-macro",
+ "wasm-bindgen-test",
+ "wasm-bindgen-test-crate-a",
+ "wasm-bindgen-test-crate-b",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.67"
+dependencies = [
+ "bumpalo",
+ "lazy_static",
+ "log 0.4.11",
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-benchmark"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-cli"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "assert_cmd",
+ "curl",
+ "diff",
+ "docopt",
+ "env_logger",
+ "log 0.4.11",
+ "openssl",
+ "predicates",
+ "rayon",
+ "rouille",
+ "serde",
+ "serde_derive",
+ "serde_json",
+ "tempfile",
+ "walrus",
+ "wasm-bindgen-cli-support",
+ "wasm-bindgen-shared",
+ "wit-printer",
+ "wit-text",
+ "wit-validator",
+ "wit-walrus",
+]
+
+[[package]]
+name = "wasm-bindgen-cli-support"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "base64 0.9.3",
+ "log 0.4.11",
+ "rustc-demangle",
+ "serde_json",
+ "tempfile",
+ "walrus",
+ "wasm-bindgen-externref-xform",
+ "wasm-bindgen-multi-value-xform",
+ "wasm-bindgen-shared",
+ "wasm-bindgen-threads-xform",
+ "wasm-bindgen-wasm-conventions",
+ "wasm-bindgen-wasm-interpreter",
+ "wit-text",
+ "wit-validator",
+ "wit-walrus",
+]
+
+[[package]]
+name = "wasm-bindgen-externref-xform"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "rayon",
+ "walrus",
+ "wasmprinter",
+ "wast",
+ "wat",
+]
+
+[[package]]
+name = "wasm-bindgen-futures"
+version = "0.4.17"
+dependencies = [
+ "cfg-if",
+ "futures-channel-preview",
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-test",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.67"
+dependencies = [
+ "quote",
+ "trybuild",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.67"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-multi-value-xform"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "rayon",
+ "walrus",
+ "wasmprinter",
+ "wast",
+ "wat",
+]
+
+[[package]]
+name = "wasm-bindgen-paint"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.67"
+
+[[package]]
+name = "wasm-bindgen-test"
+version = "0.3.17"
+dependencies = [
+ "console_error_panic_hook",
+ "js-sys",
+ "scoped-tls",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-test-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-test-crate-a"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "wasm-bindgen-test-crate-b"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "wasm-bindgen-test-macro"
+version = "0.3.17"
+dependencies = [
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "wasm-bindgen-threads-xform"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "walrus",
+ "wasm-bindgen-wasm-conventions",
+]
+
+[[package]]
+name = "wasm-bindgen-wasm-conventions"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "walrus",
+]
+
+[[package]]
+name = "wasm-bindgen-wasm-interpreter"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "log 0.4.11",
+ "tempfile",
+ "walrus",
+ "wasm-bindgen-wasm-conventions",
+ "wat",
+]
+
+[[package]]
+name = "wasm-bindgen-webidl"
+version = "0.2.67"
+dependencies = [
+ "anyhow",
+ "env_logger",
+ "heck",
+ "lazy_static",
+ "log 0.4.11",
+ "proc-macro2",
+ "quote",
+ "sourcefile",
+ "structopt",
+ "syn",
+ "wasm-bindgen-backend",
+ "weedle",
+]
+
+[[package]]
+name = "wasm-in-wasm"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+]
+
+[[package]]
+name = "wasm-in-wasm-imports"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+]
+
+[[package]]
+name = "wasm2js"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "wasmparser"
+version = "0.59.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a950e6a618f62147fd514ff445b2a0b53120d382751960797f85f058c7eda9b9"
+
+[[package]]
+name = "wasmparser"
+version = "0.60.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2d5790a08f11f3d6b5767f6c49152df74b215e3dc5a38147713c4f6a05aac7f"
+
+[[package]]
+name = "wasmprinter"
+version = "0.2.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ecc836dba85dd00df43d71b22063bcb367d324aa1be0d046077cc7fca4c43876"
+dependencies = [
+ "anyhow",
+ "wasmparser 0.60.2",
+]
+
+[[package]]
+name = "wast"
+version = "21.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b1844f66a2bc8526d71690104c0e78a8e59ffa1597b7245769d174ebb91deb5"
+dependencies = [
+ "leb128",
+]
+
+[[package]]
+name = "wat"
+version = "1.0.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ce85d72b74242c340e9e3492cfb602652d7bb324c3172dd441b5577e39a2e18c"
+dependencies = [
+ "wast",
+]
+
+[[package]]
+name = "web-sys"
+version = "0.3.44"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "wasm-bindgen-test",
+]
+
+[[package]]
+name = "webaudio"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "webgl"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "webidl-tests"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-test",
+ "wasm-bindgen-webidl",
+]
+
+[[package]]
+name = "webrtc_datachannel"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "websockets"
+version = "0.1.0"
+dependencies = [
+ "js-sys",
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "webxr"
+version = "0.1.0"
+dependencies = [
+ "futures",
+ "js-sys",
+ "serde",
+ "serde_derive",
+ "wasm-bindgen",
+ "wasm-bindgen-futures",
+ "web-sys",
+]
+
+[[package]]
+name = "weedle"
+version = "0.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a7d4f9feb723a800d8f7b74edc9fa44ff35cb0b2ec64886714362f423427f37"
+dependencies = [
+ "nom",
+]
+
+[[package]]
+name = "winapi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+dependencies = [
+ "winapi-i686-pc-windows-gnu",
+ "winapi-x86_64-pc-windows-gnu",
+]
+
+[[package]]
+name = "winapi-i686-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+
+[[package]]
+name = "winapi-util"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
+dependencies = [
+ "winapi",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "wit-parser"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f5fd97866f4b9c8e1ed57bcf9446f3d0d8ba37e2dd01c3c612c046c053b06f7"
+dependencies = [
+ "anyhow",
+ "leb128",
+ "wit-schema-version",
+]
+
+[[package]]
+name = "wit-printer"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93f19ca44555a3c14d69acee6447a6e4f52771b0c6e5d8db3e42db3b90f6fce9"
+dependencies = [
+ "anyhow",
+ "wasmprinter",
+ "wit-parser",
+ "wit-schema-version",
+]
+
+[[package]]
+name = "wit-schema-version"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfee4a6a4716eefa0682e7a3b836152e894a3e4f34a9d6c2c3e1c94429bfe36a"
+
+[[package]]
+name = "wit-text"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33358e95c77d660f1c7c07f4a93c2bd89768965e844e3c50730bb4b42658df5f"
+dependencies = [
+ "anyhow",
+ "wast",
+ "wit-writer",
+]
+
+[[package]]
+name = "wit-validator"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c11d93d925420e7872b226c4161849c32be38385ccab026b88df99d8ddc6ba6"
+dependencies = [
+ "anyhow",
+ "wasmparser 0.59.0",
+ "wit-parser",
+ "wit-schema-version",
+]
+
+[[package]]
+name = "wit-walrus"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b532d7bc47d02a08463adc934301efbf67e7b1e1284f8a68edc85d1ca84fa125"
+dependencies = [
+ "anyhow",
+ "id-arena",
+ "walrus",
+ "wit-parser",
+ "wit-schema-version",
+ "wit-writer",
+]
+
+[[package]]
+name = "wit-writer"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2ad01ba5e9cbcff799a0689e56a153776ea694cec777f605938cb9880d41a09"
+dependencies = [
+ "leb128",
+ "wit-schema-version",
+]
+
+[[package]]
+name = "without-a-bundler"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
+
+[[package]]
+name = "without-a-bundler-no-modules"
+version = "0.1.0"
+dependencies = [
+ "wasm-bindgen",
+ "web-sys",
+]
diff --git a/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix b/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix
index 9adabeb573fd..0863905e932b 100644
--- a/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix
+++ b/nixpkgs/pkgs/development/tools/wasm-bindgen-cli/default.nix
@@ -1,21 +1,29 @@
-{ rustPlatform, fetchFromGitHub, lib, openssl, pkgconfig, stdenv, curl, Security, ... }:
+{ rustPlatform, fetchFromGitHub, lib, openssl, pkgconfig, stdenv, curl, Security
+, runCommand
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "wasm-bindgen-cli";
-  version = "0.2.62";
+  version = "0.2.67";
 
-  src = fetchFromGitHub {
-    owner = "rustwasm";
-    repo = "wasm-bindgen";
-    rev = version;
-    sha256 = "0d3ph3g220nvzwxa71rch03j5c0w06v8z4lmlyp5kky6p86r37hz";
-  };
+  src =
+    let
+      tarball = fetchFromGitHub {
+        owner = "rustwasm";
+        repo = "wasm-bindgen";
+        rev = version;
+        sha256 = "0qx178aicbn59b150j5r78zya5n0yljvw4c4lhvg8x4cpfshjb5j";
+      };
+    in runCommand "source" { } ''
+      cp -R ${tarball} $out
+      chmod -R +w $out
+      cp ${./Cargo.lock} $out/Cargo.lock
+    '';
 
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security curl ];
   nativeBuildInputs = [ pkgconfig ];
 
-  cargoSha256 = "13lj2yx2bcwac1b4gpwcgiwqvy178zis6r1pidn4pgwqv7zxa7p2";
-  cargoPatches = [ ./0001-Add-cargo.lock.patch ];
+  cargoSha256 = "0chpw6syqxn824cbkdjx1s26vmajx511gc4mp9y64vy7b7asba6x";
   cargoBuildFlags = [ "-p" pname ];
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/development/tools/wasm-pack/default.nix b/nixpkgs/pkgs/development/tools/wasm-pack/default.nix
index e36e811ea564..93bda0b81807 100644
--- a/nixpkgs/pkgs/development/tools/wasm-pack/default.nix
+++ b/nixpkgs/pkgs/development/tools/wasm-pack/default.nix
@@ -38,6 +38,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rustwasm/wasm-pack";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = [ maintainers.dhkl ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/winpdb/default.nix b/nixpkgs/pkgs/development/tools/winpdb/default.nix
index 500fde0ef479..8db0b719c67b 100644
--- a/nixpkgs/pkgs/development/tools/winpdb/default.nix
+++ b/nixpkgs/pkgs/development/tools/winpdb/default.nix
@@ -18,7 +18,7 @@ pythonPackages.buildPythonApplication rec {
     comment = "Platform independend Python debugger";
     desktopName = "Winpdb";
     genericName = "Python Debugger";
-    categories = "Application;Development;Debugger;";
+    categories = "Development;Debugger;";
   };
 
   # Don't call gnome-terminal with "--disable-factory" flag, which is
diff --git a/nixpkgs/pkgs/development/tools/wrangler/default.nix b/nixpkgs/pkgs/development/tools/wrangler/default.nix
index cdbba236922a..fd84afb16175 100644
--- a/nixpkgs/pkgs/development/tools/wrangler/default.nix
+++ b/nixpkgs/pkgs/development/tools/wrangler/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wrangler";
-  version = "1.9.2";
+  version = "1.10.3";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0i3fhdq8v9459mlnazkv9bpkcv01rdy5rk149lhpsan76zlyzzwr";
+    sha256 = "0703zlrmv0if575rj1mrgfg1a5qbf98sqjhhj09hab69i96wbrk9";
   };
 
-  cargoSha256 = "0c2ss3j53vra1b4m3jsy2w2gdf6k1hw3qf6sd4qlg2ybk4k83g3b";
+  cargoSha256 = "0znzyqzvbqcl4mmxpsvaf592xrs968x57czj45jibmafq033dbfa";
 
   nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
 
@@ -31,6 +31,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/cloudflare/wrangler";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/development/tools/ws/default.nix b/nixpkgs/pkgs/development/tools/ws/default.nix
index 952538956485..4a6d8892208d 100644
--- a/nixpkgs/pkgs/development/tools/ws/default.nix
+++ b/nixpkgs/pkgs/development/tools/ws/default.nix
@@ -14,8 +14,6 @@ buildGoPackage rec {
     sha256 = "192slrz1cj1chzmfrl0d9ai8bq6s4w0iwpvxkhxb9krga7mkp9xb";
   };
 
-  goDeps = ./deps.nix;
-
   meta = with stdenv.lib; {
     description = "websocket command line tool";
     homepage    = "https://github.com/hashrocket/ws";
diff --git a/nixpkgs/pkgs/development/tools/ws/deps.nix b/nixpkgs/pkgs/development/tools/ws/deps.nix
deleted file mode 100644
index 82988437145f..000000000000
--- a/nixpkgs/pkgs/development/tools/ws/deps.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
-[
-  {
-    goPackagePath = "github.com/fatih/color";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fatih/color";
-      rev = "5df930a27be2502f99b292b7cc09ebad4d0891f4";
-      sha256 = "1xqwvpn5jkp1xqvv9hx4h7cxrsnamryhy2pszcqpbm28dpd3airb";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/development/tools/wxformbuilder/default.nix b/nixpkgs/pkgs/development/tools/wxformbuilder/default.nix
new file mode 100644
index 000000000000..a3f8196b124b
--- /dev/null
+++ b/nixpkgs/pkgs/development/tools/wxformbuilder/default.nix
@@ -0,0 +1,35 @@
+{ stdenv
+, fetchFromGitHub
+, wxGTK31
+, meson
+, ninja
+}:
+
+stdenv.mkDerivation {
+  pname = "wxFormBuilder";
+  version = "unstable-2020-08-18";
+
+  src = fetchFromGitHub {
+    owner = "wxFormBuilder";
+    repo = "wxFormBuilder";
+    rev = "d053665cc33a79dd935b518b5e7aea6baf493c92";
+    sha256 = "sha256-hTO7Fyp5ZWpq2CfIYEXB85oOkNrqr6Njfh8h0t9B6wU=";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    ninja
+    meson
+  ];
+
+  buildInputs = [
+    wxGTK31
+  ];
+
+  meta = with stdenv.lib; {
+    description = "RAD tool for wxWidgets GUI design";
+    homepage = "https://github.com/wxFormBuilder/wxFormBuilder";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ matthuszagh ];
+  };
+}
diff --git a/nixpkgs/pkgs/development/tools/yarn/default.nix b/nixpkgs/pkgs/development/tools/yarn/default.nix
index dfdd921fd03d..22ce3553352f 100644
--- a/nixpkgs/pkgs/development/tools/yarn/default.nix
+++ b/nixpkgs/pkgs/development/tools/yarn/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "yarn";
-  version = "1.22.4";
+  version = "1.22.5";
 
   src = fetchzip {
     url = "https://github.com/yarnpkg/yarn/releases/download/v${version}/yarn-v${version}.tar.gz";
-    sha256 = "1s054c9cmlmzy6cfkawhaxvaxhqcq0a17n4sb12p0bp2lzkax9lm";
+    sha256 = "1yb1pb80jhw6mx1r28hf7zd54dygmnrf30r3fz7kn9nrgdpl5in8";
   };
 
   buildInputs = [ nodejs ];
diff --git a/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix b/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
index 22032e145d3f..89bc169d5038 100644
--- a/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
+++ b/nixpkgs/pkgs/development/tools/yarn2nix-moretea/yarn2nix/default.nix
@@ -284,7 +284,7 @@ in rec {
         '')
         workspaceDependenciesTransitive;
 
-    in stdenv.mkDerivation (builtins.removeAttrs attrs ["pkgConfig" "workspaceDependencies"] // {
+    in stdenv.mkDerivation (builtins.removeAttrs attrs ["yarnNix" "pkgConfig" "workspaceDependencies"] // {
       inherit src pname;
 
       name = baseName;
@@ -389,7 +389,7 @@ in rec {
     # yarn2nix is the only package that requires the yarnNix option.
     # All the other projects can auto-generate that file.
     yarnNix = ./yarn.nix;
-    
+
     # Using the filter above and importing package.json from the filtered
     # source results in an error in restricted mode. To circumvent this,
     # we import package.json from the unfiltered source
diff --git a/nixpkgs/pkgs/development/tools/ydiff/default.nix b/nixpkgs/pkgs/development/tools/ydiff/default.nix
index f3ecbb451f65..510808fc4127 100644
--- a/nixpkgs/pkgs/development/tools/ydiff/default.nix
+++ b/nixpkgs/pkgs/development/tools/ydiff/default.nix
@@ -5,11 +5,11 @@ with pythonPackages;
 
 buildPythonApplication rec {
   pname = "ydiff";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0mxcl17sx1d4vaw22ammnnn3y19mm7r6ljbarcjzi519klz26bnf";
+    sha256 = "f5430577ecd30974d766ee9b8333e06dc76a947b4aae36d39612a0787865a121";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/development/tools/yj/default.nix b/nixpkgs/pkgs/development/tools/yj/default.nix
index a2076668f604..94237abf89b7 100644
--- a/nixpkgs/pkgs/development/tools/yj/default.nix
+++ b/nixpkgs/pkgs/development/tools/yj/default.nix
@@ -20,7 +20,6 @@ buildGoPackage rec {
     description = ''Convert YAML <=> TOML <=> JSON <=> HCL'';
     license = licenses.asl20;
     maintainers = with maintainers; [ Profpatsch ];
-    platforms = platforms.all;
     downloadPage = "https://github.com/sclevine/yj";
     updateWalker = true;
     inherit version;
diff --git a/nixpkgs/pkgs/development/tools/yq-go/default.nix b/nixpkgs/pkgs/development/tools/yq-go/default.nix
index fc6fcd234850..ea5532599618 100644
--- a/nixpkgs/pkgs/development/tools/yq-go/default.nix
+++ b/nixpkgs/pkgs/development/tools/yq-go/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "yq-go";
-  version = "3.3.1";
+  version = "3.3.2";
 
   src = fetchFromGitHub {
     owner = "mikefarah";
     rev = version;
     repo = "yq";
-    sha256 = "0fr6zwnij3r53dqdw43qfmp4nw26gv6zmj066l44fazka4fl25i6";
+    sha256 = "1rdpjxnq6cs6gwpp4bijp38b657yzjqcdzf98lhhpbpskjz8k8pp";
   };
 
   vendorSha256 = "1bjy3qr26zndr3dhh9gd33rhm5gy779525qgzjw4a4mla0p2q6kl";
 
+  doCheck = false;
+
   nativeBuildInputs = [ installShellFiles ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/development/tools/yq/default.nix b/nixpkgs/pkgs/development/tools/yq/default.nix
deleted file mode 100644
index c15fad015990..000000000000
--- a/nixpkgs/pkgs/development/tools/yq/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ lib, buildPythonApplication, fetchPypi, pyyaml, xmltodict, jq }:
-
-buildPythonApplication rec {
-  pname = "yq";
-  version = "2.8.1";
-
-  propagatedBuildInputs = [ pyyaml xmltodict jq ];
-
-  # ValueError: underlying buffer has been detached
-  doCheck = false;
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "042p3s011635rbjax9wvwjdrb1kyzw38a6qn59b0j0k7krz6rlr4";
-  };
-
-  meta = with lib; {
-    description = "Command-line YAML processor - jq wrapper for YAML documents.";
-    homepage = "https://github.com/kislyuk/yq";
-    license = [ licenses.asl20 ];
-    maintainers = [ maintainers.womfoo ];
-  };
-}
diff --git a/nixpkgs/pkgs/development/web/cypress/default.nix b/nixpkgs/pkgs/development/web/cypress/default.nix
index 3b38d86b45b4..e11a5e18058e 100644
--- a/nixpkgs/pkgs/development/web/cypress/default.nix
+++ b/nixpkgs/pkgs/development/web/cypress/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchzip, autoPatchelfHook, xorg, gtk2, gnome2, gtk3, nss, alsaLib, udev, unzip, wrapGAppsHook }:
+{ stdenv, lib, fetchzip, autoPatchelfHook, xorg, gtk2, gnome2, gtk3, nss, alsaLib, udev, unzip, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "cypress";
-  version = "4.8.0";
+  version = "4.12.1";
 
   src = fetchzip {
     url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip";
-    sha256 = "0wivvh3fhyhxx9f6vp0kgqkjj4957hj0b15r2igbxnyqvahwxgx7";
+    sha256 = "00sma1q7hbhzjkjnkv8y37ar0wnxk9mkqlpsplgyyyx3gx81nn3s";
   };
 
   # don't remove runtime deps
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     nss gtk2 alsaLib gnome2.GConf gtk3 unzip
   ];
 
-  runtimeDependencies = [ udev.lib ];
+  runtimeDependencies = [ (lib.getLib udev) ];
 
   installPhase = ''
     mkdir -p $out/bin $out/opt/cypress
diff --git a/nixpkgs/pkgs/development/web/deno/default.nix b/nixpkgs/pkgs/development/web/deno/default.nix
index 199d7f81fe0f..45606151e28d 100644
--- a/nixpkgs/pkgs/development/web/deno/default.nix
+++ b/nixpkgs/pkgs/development/web/deno/default.nix
@@ -18,22 +18,21 @@ let
 in
 rustPlatform.buildRustPackage rec {
   pname = "deno";
-  version = "1.1.0";
+  version = "1.3.3";
 
   src = fetchFromGitHub {
     owner = "denoland";
     repo = pname;
     rev = "v${version}";
-    sha256 = "11rxfnjam1kr8piiw0s4r0qg8rj4qfpppp6dixk1hhsq2iwbnzj6";
+    sha256 = "0jbnx23f1323sh1rfx8rza2pzr4li4199wblrl4vw4zp5hj4qnkm";
     fetchSubmodules = true;
   };
-  cargoSha256 = "107i9zvlwiwad58c7lmh6zl9iwlqn1h8qk7zf7x68b6498p8nh7d";
+  cargoSha256 = "08zi3ynbi44rdgid9qalgsb5g8dcwclr6ynwxvhi8r0v5i7swwrx";
 
   # Install completions post-install
   nativeBuildInputs = [ installShellFiles ];
 
-  buildInputs = with stdenv.lib; [ ]
-    ++ optionals stdenv.isDarwin [ Security CoreServices ];
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security CoreServices ];
 
   # The rusty_v8 package will try to download a `librusty_v8.a` release at build time to our read-only filesystem
   # To avoid this we pre-download the file and place it in the locations it will require it in advance
diff --git a/nixpkgs/pkgs/development/web/deno/deps.nix b/nixpkgs/pkgs/development/web/deno/deps.nix
index 9218e8ad97d2..f6baca6fb016 100644
--- a/nixpkgs/pkgs/development/web/deno/deps.nix
+++ b/nixpkgs/pkgs/development/web/deno/deps.nix
@@ -2,11 +2,11 @@
 {}:
 rec {
   rustyV8Lib = {
-    version = "0.5.0";
+    version = "0.9.1";
     sha256s = {
-      x86_64-linux = "1jmrqf5ns2y51cxx9r88my15m6gc6wmg54xadi3kphq47n4hmdfw";
-      aarch64-linux = "14v57pxpkz1fs483rbbc8k55rc4x41dqi0k12zdrjwa5ycdam3m5";
-      x86_64-darwin = "0466px7k2zvbsswwcrr342i5ml669gf76xd8yzzypsmb7l71s6vr";
+      x86_64-linux = "07zph4x3k659ywld27b60as7j06bdbab2ws1pf67iwg7w6h7iash";
+      aarch64-linux = "0w9mbsdpkrla3ayaswpdjhiqs74h23qi2sv9355h138pw431ymnx";
+      x86_64-darwin = "091kzdg431lvkvcy0401di3if53pii0isk5ipfpsvic82kr7vaqk";
     };
   };
 }
diff --git a/nixpkgs/pkgs/development/web/deno/update/common.ts b/nixpkgs/pkgs/development/web/deno/update/common.ts
index 71e4d638f8d7..d8956b21d163 100644
--- a/nixpkgs/pkgs/development/web/deno/update/common.ts
+++ b/nixpkgs/pkgs/development/web/deno/update/common.ts
@@ -8,7 +8,20 @@ const run = async (command: string, args: string[]) => {
     { cmd: [command, ...args], stdout: "piped", stderr: "piped" },
   );
   if (!(await cmd.status()).success) {
-    throw await cmd.stderrOutput().then((b) => decode(b));
+    const error = await cmd.stderrOutput().then((b) => decode(b).trimEnd());
+    // Known error we can ignore
+    if (error.includes("'allow-unsafe-native-code-during-evaluation'")) {
+      // Extract the target sha256 out of the error
+      const target = "  got:    sha256:";
+      const match = error
+        .split("\n")
+        .find((l) => l.includes(target))
+        ?.split(target)[1];
+      if (typeof match !== "undefined") {
+        return match;
+      }
+    }
+    throw new Error(error);
   }
   return cmd.output().then((b) => decode(b).trimEnd());
 };
diff --git a/nixpkgs/pkgs/development/web/flyctl/default.nix b/nixpkgs/pkgs/development/web/flyctl/default.nix
index 1a7a3d6607f4..8a2cbbe3857c 100644
--- a/nixpkgs/pkgs/development/web/flyctl/default.nix
+++ b/nixpkgs/pkgs/development/web/flyctl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "flyctl";
-  version = "0.0.131";
+  version = "0.0.140";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = "flyctl";
     rev = "v${version}";
-    sha256 = "0b9qrraydihw4wglif3rjmjlqdsgxh873023z3rgrvf7dwrhc9y0";
+    sha256 = "19yap6n3fw8cf9y6bb6yzl24m4f49jv38j7dj4hs09a5qwh85rz4";
   };
 
   preBuild = ''
@@ -17,7 +17,9 @@ buildGoModule rec {
 
   subPackages = [ "." ];
 
-  vendorSha256 = "1gxz9pp4zl8q7pmwg9z261fjrjfr658k1sn5nq1xzz51wrlzg9ag";
+  vendorSha256 = "0vxfnq9ng7ybkw1xla7m2in2sg6hzvghczqnjrj96n07fln0s9rs";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X github.com/superfly/flyctl/flyctl.Version=${version} -X github.com/superfly/flyctl/flyctl.Commit=${src.rev} -X github.com/superfly/flyctl/flyctl.BuildDate=1970-01-01T00:00:00+0000 -X github.com/superfly/flyctl/flyctl.Environment=production" ];
 
@@ -27,4 +29,4 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ aaronjanse ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/web/grails/default.nix b/nixpkgs/pkgs/development/web/grails/default.nix
index fc68fa532460..55ec74eb1735 100644
--- a/nixpkgs/pkgs/development/web/grails/default.nix
+++ b/nixpkgs/pkgs/development/web/grails/default.nix
@@ -11,11 +11,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "grails";
-  version = "4.0.3";
+  version = "4.1.0.M1";
 
   src = fetchurl {
     url = "https://github.com/grails/grails-core/releases/download/v${version}/grails-${version}.zip";
-    sha256 = "107dvgwv2ldpdr99q1nvb1i93jj635p1n7md6q14v9m4a6a226sa";
+    sha256 = "0l99x3g485qjpdd7ga553xpi1s6rq21p8v16qjzqwdhyld961qsr";
   };
 
   buildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/development/web/lucky-cli/default.nix b/nixpkgs/pkgs/development/web/lucky-cli/default.nix
index f2f6ab0f35db..8add66bf998a 100644
--- a/nixpkgs/pkgs/development/web/lucky-cli/default.nix
+++ b/nixpkgs/pkgs/development/web/lucky-cli/default.nix
@@ -2,13 +2,13 @@
 
 crystal.buildCrystalPackage rec {
   pname = "lucky-cli";
-  version = "0.21.0";
+  version = "0.23.1";
 
   src = fetchFromGitHub {
     owner = "luckyframework";
     repo = "lucky_cli";
     rev = "v${version}";
-    sha256 = "0g0arf13brh6g0hynxs8bsp8jh3dd66rmf2d3qh2qjvk10101g0r";
+    sha256 = "0xj7mcmz1rxv3ff530q8c5y1y7hccsmr8azk9nhmrk1q355vnxfw";
   };
 
   # the integration tests will try to clone a remote repos
diff --git a/nixpkgs/pkgs/development/web/minify/default.nix b/nixpkgs/pkgs/development/web/minify/default.nix
index b813e87b5430..4ef1913fd667 100644
--- a/nixpkgs/pkgs/development/web/minify/default.nix
+++ b/nixpkgs/pkgs/development/web/minify/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "120d3nzk8cr5496cxp5p6ydlzw9mmpg7dllqhv1kpgwlbxmd8vr3";
 
+  doCheck = false;
+
   buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version}" ];
 
   meta = with lib; {
@@ -20,4 +22,4 @@ buildGoModule rec {
     license = licenses.mit;
     homepage = "https://go.tacodewolff.nl/minify";
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/web/newman/default.nix b/nixpkgs/pkgs/development/web/newman/default.nix
new file mode 100644
index 000000000000..ed4041ab76f0
--- /dev/null
+++ b/nixpkgs/pkgs/development/web/newman/default.nix
@@ -0,0 +1,19 @@
+{ pkgs, nodejs, stdenv, lib, ... }:
+
+let
+
+  packageName = with lib; concatStrings (map (entry: (concatStrings (mapAttrsToList (key: value: "${key}-${value}") entry))) (importJSON ./package.json));
+
+  nodePackages = import ./node-composition.nix {
+    inherit pkgs nodejs;
+    inherit (stdenv.hostPlatform) system;
+  };
+in
+nodePackages.newman.override {
+  meta = with lib; {
+    homepage = "https://www.getpostman.com";
+    description = "Newman is a command-line collection runner for Postman";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/development/web/newman/generate-dependencies.sh b/nixpkgs/pkgs/development/web/newman/generate-dependencies.sh
new file mode 100755
index 000000000000..7111289d2909
--- /dev/null
+++ b/nixpkgs/pkgs/development/web/newman/generate-dependencies.sh
@@ -0,0 +1,9 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p nodePackages.node2nix
+
+node2nix \
+  --node-env node-env.nix \
+  --development \
+  --input package.json \
+  --output node-packages.nix \
+  --composition node-composition.nix
diff --git a/nixpkgs/pkgs/development/web/newman/node-composition.nix b/nixpkgs/pkgs/development/web/newman/node-composition.nix
new file mode 100644
index 000000000000..c970861a86f0
--- /dev/null
+++ b/nixpkgs/pkgs/development/web/newman/node-composition.nix
@@ -0,0 +1,17 @@
+# This file has been generated by node2nix 1.8.0. Do not edit!
+
+{pkgs ? import <nixpkgs> {
+    inherit system;
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
+
+let
+  nodeEnv = import ./node-env.nix {
+    inherit (pkgs) stdenv python2 utillinux runCommand writeTextFile;
+    inherit nodejs;
+    libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+  };
+in
+import ./node-packages.nix {
+  inherit (pkgs) fetchurl fetchgit;
+  inherit nodeEnv;
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/development/web/newman/node-env.nix b/nixpkgs/pkgs/development/web/newman/node-env.nix
new file mode 100644
index 000000000000..e1abf5304935
--- /dev/null
+++ b/nixpkgs/pkgs/development/web/newman/node-env.nix
@@ -0,0 +1,542 @@
+# This file originates from node2nix
+
+{stdenv, nodejs, python2, utillinux, libtool, runCommand, writeTextFile}:
+
+let
+  python = if nodejs ? python then nodejs.python else python2;
+
+  # Create a tar wrapper that filters all the 'Ignoring unknown extended header keyword' noise
+  tarWrapper = runCommand "tarWrapper" {} ''
+    mkdir -p $out/bin
+
+    cat > $out/bin/tar <<EOF
+    #! ${stdenv.shell} -e
+    $(type -p tar) "\$@" --warning=no-unknown-keyword --delay-directory-restore
+    EOF
+
+    chmod +x $out/bin/tar
+  '';
+
+  # Function that generates a TGZ file from a NPM project
+  buildNodeSourceDist =
+    { name, version, src, ... }:
+
+    stdenv.mkDerivation {
+      name = "node-tarball-${name}-${version}";
+      inherit src;
+      buildInputs = [ nodejs ];
+      buildPhase = ''
+        export HOME=$TMPDIR
+        tgzFile=$(npm pack | tail -n 1) # Hooks to the pack command will add output (https://docs.npmjs.com/misc/scripts)
+      '';
+      installPhase = ''
+        mkdir -p $out/tarballs
+        mv $tgzFile $out/tarballs
+        mkdir -p $out/nix-support
+        echo "file source-dist $out/tarballs/$tgzFile" >> $out/nix-support/hydra-build-products
+      '';
+    };
+
+  includeDependencies = {dependencies}:
+    stdenv.lib.optionalString (dependencies != [])
+      (stdenv.lib.concatMapStrings (dependency:
+        ''
+          # Bundle the dependencies of the package
+          mkdir -p node_modules
+          cd node_modules
+
+          # Only include dependencies if they don't exist. They may also be bundled in the package.
+          if [ ! -e "${dependency.name}" ]
+          then
+              ${composePackage dependency}
+          fi
+
+          cd ..
+        ''
+      ) dependencies);
+
+  # Recursively composes the dependencies of a package
+  composePackage = { name, packageName, src, dependencies ? [], ... }@args:
+    builtins.addErrorContext "while evaluating node package '${packageName}'" ''
+      DIR=$(pwd)
+      cd $TMPDIR
+
+      unpackFile ${src}
+
+      # Make the base dir in which the target dependency resides first
+      mkdir -p "$(dirname "$DIR/${packageName}")"
+
+      if [ -f "${src}" ]
+      then
+          # Figure out what directory has been unpacked
+          packageDir="$(find . -maxdepth 1 -type d | tail -1)"
+
+          # Restore write permissions to make building work
+          find "$packageDir" -type d -exec chmod u+x {} \;
+          chmod -R u+w "$packageDir"
+
+          # Move the extracted tarball into the output folder
+          mv "$packageDir" "$DIR/${packageName}"
+      elif [ -d "${src}" ]
+      then
+          # Get a stripped name (without hash) of the source directory.
+          # On old nixpkgs it's already set internally.
+          if [ -z "$strippedName" ]
+          then
+              strippedName="$(stripHash ${src})"
+          fi
+
+          # Restore write permissions to make building work
+          chmod -R u+w "$strippedName"
+
+          # Move the extracted directory into the output folder
+          mv "$strippedName" "$DIR/${packageName}"
+      fi
+
+      # Unset the stripped name to not confuse the next unpack step
+      unset strippedName
+
+      # Include the dependencies of the package
+      cd "$DIR/${packageName}"
+      ${includeDependencies { inherit dependencies; }}
+      cd ..
+      ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+    '';
+
+  pinpointDependencies = {dependencies, production}:
+    let
+      pinpointDependenciesFromPackageJSON = writeTextFile {
+        name = "pinpointDependencies.js";
+        text = ''
+          var fs = require('fs');
+          var path = require('path');
+
+          function resolveDependencyVersion(location, name) {
+              if(location == process.env['NIX_STORE']) {
+                  return null;
+              } else {
+                  var dependencyPackageJSON = path.join(location, "node_modules", name, "package.json");
+
+                  if(fs.existsSync(dependencyPackageJSON)) {
+                      var dependencyPackageObj = JSON.parse(fs.readFileSync(dependencyPackageJSON));
+
+                      if(dependencyPackageObj.name == name) {
+                          return dependencyPackageObj.version;
+                      }
+                  } else {
+                      return resolveDependencyVersion(path.resolve(location, ".."), name);
+                  }
+              }
+          }
+
+          function replaceDependencies(dependencies) {
+              if(typeof dependencies == "object" && dependencies !== null) {
+                  for(var dependency in dependencies) {
+                      var resolvedVersion = resolveDependencyVersion(process.cwd(), dependency);
+
+                      if(resolvedVersion === null) {
+                          process.stderr.write("WARNING: cannot pinpoint dependency: "+dependency+", context: "+process.cwd()+"\n");
+                      } else {
+                          dependencies[dependency] = resolvedVersion;
+                      }
+                  }
+              }
+          }
+
+          /* Read the package.json configuration */
+          var packageObj = JSON.parse(fs.readFileSync('./package.json'));
+
+          /* Pinpoint all dependencies */
+          replaceDependencies(packageObj.dependencies);
+          if(process.argv[2] == "development") {
+              replaceDependencies(packageObj.devDependencies);
+          }
+          replaceDependencies(packageObj.optionalDependencies);
+
+          /* Write the fixed package.json file */
+          fs.writeFileSync("package.json", JSON.stringify(packageObj, null, 2));
+        '';
+      };
+    in
+    ''
+      node ${pinpointDependenciesFromPackageJSON} ${if production then "production" else "development"}
+
+      ${stdenv.lib.optionalString (dependencies != [])
+        ''
+          if [ -d node_modules ]
+          then
+              cd node_modules
+              ${stdenv.lib.concatMapStrings (dependency: pinpointDependenciesOfPackage dependency) dependencies}
+              cd ..
+          fi
+        ''}
+    '';
+
+  # Recursively traverses all dependencies of a package and pinpoints all
+  # dependencies in the package.json file to the versions that are actually
+  # being used.
+
+  pinpointDependenciesOfPackage = { packageName, dependencies ? [], production ? true, ... }@args:
+    ''
+      if [ -d "${packageName}" ]
+      then
+          cd "${packageName}"
+          ${pinpointDependencies { inherit dependencies production; }}
+          cd ..
+          ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+      fi
+    '';
+
+  # Extract the Node.js source code which is used to compile packages with
+  # native bindings
+  nodeSources = runCommand "node-sources" {} ''
+    tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
+    mv node-* $out
+  '';
+
+  # Script that adds _integrity fields to all package.json files to prevent NPM from consulting the cache (that is empty)
+  addIntegrityFieldsScript = writeTextFile {
+    name = "addintegrityfields.js";
+    text = ''
+      var fs = require('fs');
+      var path = require('path');
+
+      function augmentDependencies(baseDir, dependencies) {
+          for(var dependencyName in dependencies) {
+              var dependency = dependencies[dependencyName];
+
+              // Open package.json and augment metadata fields
+              var packageJSONDir = path.join(baseDir, "node_modules", dependencyName);
+              var packageJSONPath = path.join(packageJSONDir, "package.json");
+
+              if(fs.existsSync(packageJSONPath)) { // Only augment packages that exist. Sometimes we may have production installs in which development dependencies can be ignored
+                  console.log("Adding metadata fields to: "+packageJSONPath);
+                  var packageObj = JSON.parse(fs.readFileSync(packageJSONPath));
+
+                  if(dependency.integrity) {
+                      packageObj["_integrity"] = dependency.integrity;
+                  } else {
+                      packageObj["_integrity"] = "sha1-000000000000000000000000000="; // When no _integrity string has been provided (e.g. by Git dependencies), add a dummy one. It does not seem to harm and it bypasses downloads.
+                  }
+
+                  if(dependency.resolved) {
+                      packageObj["_resolved"] = dependency.resolved; // Adopt the resolved property if one has been provided
+                  } else {
+                      packageObj["_resolved"] = dependency.version; // Set the resolved version to the version identifier. This prevents NPM from cloning Git repositories.
+                  }
+
+                  if(dependency.from !== undefined) { // Adopt from property if one has been provided
+                      packageObj["_from"] = dependency.from;
+                  }
+
+                  fs.writeFileSync(packageJSONPath, JSON.stringify(packageObj, null, 2));
+              }
+
+              // Augment transitive dependencies
+              if(dependency.dependencies !== undefined) {
+                  augmentDependencies(packageJSONDir, dependency.dependencies);
+              }
+          }
+      }
+
+      if(fs.existsSync("./package-lock.json")) {
+          var packageLock = JSON.parse(fs.readFileSync("./package-lock.json"));
+
+          if(packageLock.lockfileVersion !== 1) {
+             process.stderr.write("Sorry, I only understand lock file version 1!\n");
+             process.exit(1);
+          }
+
+          if(packageLock.dependencies !== undefined) {
+              augmentDependencies(".", packageLock.dependencies);
+          }
+      }
+    '';
+  };
+
+  # Reconstructs a package-lock file from the node_modules/ folder structure and package.json files with dummy sha1 hashes
+  reconstructPackageLock = writeTextFile {
+    name = "addintegrityfields.js";
+    text = ''
+      var fs = require('fs');
+      var path = require('path');
+
+      var packageObj = JSON.parse(fs.readFileSync("package.json"));
+
+      var lockObj = {
+          name: packageObj.name,
+          version: packageObj.version,
+          lockfileVersion: 1,
+          requires: true,
+          dependencies: {}
+      };
+
+      function augmentPackageJSON(filePath, dependencies) {
+          var packageJSON = path.join(filePath, "package.json");
+          if(fs.existsSync(packageJSON)) {
+              var packageObj = JSON.parse(fs.readFileSync(packageJSON));
+              dependencies[packageObj.name] = {
+                  version: packageObj.version,
+                  integrity: "sha1-000000000000000000000000000=",
+                  dependencies: {}
+              };
+              processDependencies(path.join(filePath, "node_modules"), dependencies[packageObj.name].dependencies);
+          }
+      }
+
+      function processDependencies(dir, dependencies) {
+          if(fs.existsSync(dir)) {
+              var files = fs.readdirSync(dir);
+
+              files.forEach(function(entry) {
+                  var filePath = path.join(dir, entry);
+                  var stats = fs.statSync(filePath);
+
+                  if(stats.isDirectory()) {
+                      if(entry.substr(0, 1) == "@") {
+                          // When we encounter a namespace folder, augment all packages belonging to the scope
+                          var pkgFiles = fs.readdirSync(filePath);
+
+                          pkgFiles.forEach(function(entry) {
+                              if(stats.isDirectory()) {
+                                  var pkgFilePath = path.join(filePath, entry);
+                                  augmentPackageJSON(pkgFilePath, dependencies);
+                              }
+                          });
+                      } else {
+                          augmentPackageJSON(filePath, dependencies);
+                      }
+                  }
+              });
+          }
+      }
+
+      processDependencies("node_modules", lockObj.dependencies);
+
+      fs.writeFileSync("package-lock.json", JSON.stringify(lockObj, null, 2));
+    '';
+  };
+
+  prepareAndInvokeNPM = {packageName, bypassCache, reconstructLock, npmFlags, production}:
+    let
+      forceOfflineFlag = if bypassCache then "--offline" else "--registry http://www.example.com";
+    in
+    ''
+        # Pinpoint the versions of all dependencies to the ones that are actually being used
+        echo "pinpointing versions of dependencies..."
+        source $pinpointDependenciesScriptPath
+
+        # Patch the shebangs of the bundled modules to prevent them from
+        # calling executables outside the Nix store as much as possible
+        patchShebangs .
+
+        # Deploy the Node.js package by running npm install. Since the
+        # dependencies have been provided already by ourselves, it should not
+        # attempt to install them again, which is good, because we want to make
+        # it Nix's responsibility. If it needs to install any dependencies
+        # anyway (e.g. because the dependency parameters are
+        # incomplete/incorrect), it fails.
+        #
+        # The other responsibilities of NPM are kept -- version checks, build
+        # steps, postprocessing etc.
+
+        export HOME=$TMPDIR
+        cd "${packageName}"
+        runHook preRebuild
+
+        ${stdenv.lib.optionalString bypassCache ''
+          ${stdenv.lib.optionalString reconstructLock ''
+            if [ -f package-lock.json ]
+            then
+                echo "WARNING: Reconstruct lock option enabled, but a lock file already exists!"
+                echo "This will most likely result in version mismatches! We will remove the lock file and regenerate it!"
+                rm package-lock.json
+            else
+                echo "No package-lock.json file found, reconstructing..."
+            fi
+
+            node ${reconstructPackageLock}
+          ''}
+
+          node ${addIntegrityFieldsScript}
+        ''}
+
+        npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} rebuild
+
+        if [ "''${dontNpmInstall-}" != "1" ]
+        then
+            # NPM tries to download packages even when they already exist if npm-shrinkwrap is used.
+            rm -f npm-shrinkwrap.json
+
+            npm ${forceOfflineFlag} --nodedir=${nodeSources} ${npmFlags} ${stdenv.lib.optionalString production "--production"} install
+        fi
+    '';
+
+  # Builds and composes an NPM package including all its dependencies
+  buildNodePackage =
+    { name
+    , packageName
+    , version
+    , dependencies ? []
+    , buildInputs ? []
+    , production ? true
+    , npmFlags ? ""
+    , dontNpmInstall ? false
+    , bypassCache ? false
+    , reconstructLock ? false
+    , preRebuild ? ""
+    , dontStrip ? true
+    , unpackPhase ? "true"
+    , buildPhase ? "true"
+    , ... }@args:
+
+    let
+      extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" "dontStrip" "dontNpmInstall" "preRebuild" "unpackPhase" "buildPhase" ];
+    in
+    stdenv.mkDerivation ({
+      name = "node_${name}-${version}";
+      buildInputs = [ tarWrapper python nodejs ]
+        ++ stdenv.lib.optional (stdenv.isLinux) utillinux
+        ++ stdenv.lib.optional (stdenv.isDarwin) libtool
+        ++ buildInputs;
+
+      inherit nodejs;
+
+      inherit dontStrip; # Stripping may fail a build for some package deployments
+      inherit dontNpmInstall preRebuild unpackPhase buildPhase;
+
+      compositionScript = composePackage args;
+      pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+      passAsFile = [ "compositionScript" "pinpointDependenciesScript" ];
+
+      installPhase = ''
+        # Create and enter a root node_modules/ folder
+        mkdir -p $out/lib/node_modules
+        cd $out/lib/node_modules
+
+        # Compose the package and all its dependencies
+        source $compositionScriptPath
+
+        ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+        # Create symlink to the deployed executable folder, if applicable
+        if [ -d "$out/lib/node_modules/.bin" ]
+        then
+            ln -s $out/lib/node_modules/.bin $out/bin
+        fi
+
+        # Create symlinks to the deployed manual page folders, if applicable
+        if [ -d "$out/lib/node_modules/${packageName}/man" ]
+        then
+            mkdir -p $out/share
+            for dir in "$out/lib/node_modules/${packageName}/man/"*
+            do
+                mkdir -p $out/share/man/$(basename "$dir")
+                for page in "$dir"/*
+                do
+                    ln -s $page $out/share/man/$(basename "$dir")
+                done
+            done
+        fi
+
+        # Run post install hook, if provided
+        runHook postInstall
+      '';
+    } // extraArgs);
+
+  # Builds a development shell
+  buildNodeShell =
+    { name
+    , packageName
+    , version
+    , src
+    , dependencies ? []
+    , buildInputs ? []
+    , production ? true
+    , npmFlags ? ""
+    , dontNpmInstall ? false
+    , bypassCache ? false
+    , reconstructLock ? false
+    , dontStrip ? true
+    , unpackPhase ? "true"
+    , buildPhase ? "true"
+    , ... }@args:
+
+    let
+      extraArgs = removeAttrs args [ "name" "dependencies" "buildInputs" ];
+
+      nodeDependencies = stdenv.mkDerivation ({
+        name = "node-dependencies-${name}-${version}";
+
+        buildInputs = [ tarWrapper python nodejs ]
+          ++ stdenv.lib.optional (stdenv.isLinux) utillinux
+          ++ stdenv.lib.optional (stdenv.isDarwin) libtool
+          ++ buildInputs;
+
+        inherit dontStrip; # Stripping may fail a build for some package deployments
+        inherit dontNpmInstall unpackPhase buildPhase;
+
+        includeScript = includeDependencies { inherit dependencies; };
+        pinpointDependenciesScript = pinpointDependenciesOfPackage args;
+
+        passAsFile = [ "includeScript" "pinpointDependenciesScript" ];
+
+        installPhase = ''
+          mkdir -p $out/${packageName}
+          cd $out/${packageName}
+
+          source $includeScriptPath
+
+          # Create fake package.json to make the npm commands work properly
+          cp ${src}/package.json .
+          chmod 644 package.json
+          ${stdenv.lib.optionalString bypassCache ''
+            if [ -f ${src}/package-lock.json ]
+            then
+                cp ${src}/package-lock.json .
+            fi
+          ''}
+
+          # Go to the parent folder to make sure that all packages are pinpointed
+          cd ..
+          ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+          ${prepareAndInvokeNPM { inherit packageName bypassCache reconstructLock npmFlags production; }}
+
+          # Expose the executables that were installed
+          cd ..
+          ${stdenv.lib.optionalString (builtins.substring 0 1 packageName == "@") "cd .."}
+
+          mv ${packageName} lib
+          ln -s $out/lib/node_modules/.bin $out/bin
+        '';
+      } // extraArgs);
+    in
+    stdenv.mkDerivation {
+      name = "node-shell-${name}-${version}";
+
+      buildInputs = [ python nodejs ] ++ stdenv.lib.optional (stdenv.isLinux) utillinux ++ buildInputs;
+      buildCommand = ''
+        mkdir -p $out/bin
+        cat > $out/bin/shell <<EOF
+        #! ${stdenv.shell} -e
+        $shellHook
+        exec ${stdenv.shell}
+        EOF
+        chmod +x $out/bin/shell
+      '';
+
+      # Provide the dependencies in a development shell through the NODE_PATH environment variable
+      inherit nodeDependencies;
+      shellHook = stdenv.lib.optionalString (dependencies != []) ''
+        export NODE_PATH=${nodeDependencies}/lib/node_modules
+        export PATH="${nodeDependencies}/bin:$PATH"
+      '';
+    };
+in
+{
+  buildNodeSourceDist = stdenv.lib.makeOverridable buildNodeSourceDist;
+  buildNodePackage = stdenv.lib.makeOverridable buildNodePackage;
+  buildNodeShell = stdenv.lib.makeOverridable buildNodeShell;
+}
diff --git a/nixpkgs/pkgs/development/web/newman/node-packages.nix b/nixpkgs/pkgs/development/web/newman/node-packages.nix
new file mode 100644
index 000000000000..22b7aeccc960
--- /dev/null
+++ b/nixpkgs/pkgs/development/web/newman/node-packages.nix
@@ -0,0 +1,5957 @@
+# This file has been generated by node2nix 1.8.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+  sources = {
+    "@babel/code-frame-7.10.4" = {
+      name = "_at_babel_slash_code-frame";
+      packageName = "@babel/code-frame";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz";
+        sha512 = "vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==";
+      };
+    };
+    "@babel/core-7.11.6" = {
+      name = "_at_babel_slash_core";
+      packageName = "@babel/core";
+      version = "7.11.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.11.6.tgz";
+        sha512 = "Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg==";
+      };
+    };
+    "@babel/generator-7.11.6" = {
+      name = "_at_babel_slash_generator";
+      packageName = "@babel/generator";
+      version = "7.11.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.11.6.tgz";
+        sha512 = "DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA==";
+      };
+    };
+    "@babel/helper-function-name-7.10.4" = {
+      name = "_at_babel_slash_helper-function-name";
+      packageName = "@babel/helper-function-name";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
+        sha512 = "YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==";
+      };
+    };
+    "@babel/helper-get-function-arity-7.10.4" = {
+      name = "_at_babel_slash_helper-get-function-arity";
+      packageName = "@babel/helper-get-function-arity";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
+        sha512 = "EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==";
+      };
+    };
+    "@babel/helper-member-expression-to-functions-7.11.0" = {
+      name = "_at_babel_slash_helper-member-expression-to-functions";
+      packageName = "@babel/helper-member-expression-to-functions";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz";
+        sha512 = "JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==";
+      };
+    };
+    "@babel/helper-module-imports-7.10.4" = {
+      name = "_at_babel_slash_helper-module-imports";
+      packageName = "@babel/helper-module-imports";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz";
+        sha512 = "nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==";
+      };
+    };
+    "@babel/helper-module-transforms-7.11.0" = {
+      name = "_at_babel_slash_helper-module-transforms";
+      packageName = "@babel/helper-module-transforms";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz";
+        sha512 = "02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==";
+      };
+    };
+    "@babel/helper-optimise-call-expression-7.10.4" = {
+      name = "_at_babel_slash_helper-optimise-call-expression";
+      packageName = "@babel/helper-optimise-call-expression";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz";
+        sha512 = "n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==";
+      };
+    };
+    "@babel/helper-replace-supers-7.10.4" = {
+      name = "_at_babel_slash_helper-replace-supers";
+      packageName = "@babel/helper-replace-supers";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz";
+        sha512 = "sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==";
+      };
+    };
+    "@babel/helper-simple-access-7.10.4" = {
+      name = "_at_babel_slash_helper-simple-access";
+      packageName = "@babel/helper-simple-access";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz";
+        sha512 = "0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==";
+      };
+    };
+    "@babel/helper-split-export-declaration-7.11.0" = {
+      name = "_at_babel_slash_helper-split-export-declaration";
+      packageName = "@babel/helper-split-export-declaration";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz";
+        sha512 = "74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==";
+      };
+    };
+    "@babel/helper-validator-identifier-7.10.4" = {
+      name = "_at_babel_slash_helper-validator-identifier";
+      packageName = "@babel/helper-validator-identifier";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
+        sha512 = "3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==";
+      };
+    };
+    "@babel/helpers-7.10.4" = {
+      name = "_at_babel_slash_helpers";
+      packageName = "@babel/helpers";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz";
+        sha512 = "L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==";
+      };
+    };
+    "@babel/highlight-7.10.4" = {
+      name = "_at_babel_slash_highlight";
+      packageName = "@babel/highlight";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz";
+        sha512 = "i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==";
+      };
+    };
+    "@babel/parser-7.11.5" = {
+      name = "_at_babel_slash_parser";
+      packageName = "@babel/parser";
+      version = "7.11.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.11.5.tgz";
+        sha512 = "X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q==";
+      };
+    };
+    "@babel/template-7.10.4" = {
+      name = "_at_babel_slash_template";
+      packageName = "@babel/template";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz";
+        sha512 = "ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==";
+      };
+    };
+    "@babel/traverse-7.11.5" = {
+      name = "_at_babel_slash_traverse";
+      packageName = "@babel/traverse";
+      version = "7.11.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.5.tgz";
+        sha512 = "EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ==";
+      };
+    };
+    "@babel/types-7.11.5" = {
+      name = "_at_babel_slash_types";
+      packageName = "@babel/types";
+      version = "7.11.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.11.5.tgz";
+        sha512 = "bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q==";
+      };
+    };
+    "@eslint/eslintrc-0.1.3" = {
+      name = "_at_eslint_slash_eslintrc";
+      packageName = "@eslint/eslintrc";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.1.3.tgz";
+        sha512 = "4YVwPkANLeNtRjMekzux1ci8hIaH5eGKktGqR0d3LWsKNn5B2X/1Z6Trxy7jQXl9EBGE6Yj02O+t09FMeRllaA==";
+      };
+    };
+    "@istanbuljs/load-nyc-config-1.1.0" = {
+      name = "_at_istanbuljs_slash_load-nyc-config";
+      packageName = "@istanbuljs/load-nyc-config";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz";
+        sha512 = "VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==";
+      };
+    };
+    "@istanbuljs/schema-0.1.2" = {
+      name = "_at_istanbuljs_slash_schema";
+      packageName = "@istanbuljs/schema";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz";
+        sha512 = "tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==";
+      };
+    };
+    "@postman/form-data-3.1.0" = {
+      name = "_at_postman_slash_form-data";
+      packageName = "@postman/form-data";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@postman/form-data/-/form-data-3.1.0.tgz";
+        sha512 = "6x1UHKQ45Sv5yLFjqhhtyk3YGOF9677RVRQjfr32Bkt45pH8yIlqcpPxiIR4/ZEs3GFk5vl5j9ymmdLTt0HR6Q==";
+      };
+    };
+    "@postman/tunnel-agent-0.6.3" = {
+      name = "_at_postman_slash_tunnel-agent";
+      packageName = "@postman/tunnel-agent";
+      version = "0.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@postman/tunnel-agent/-/tunnel-agent-0.6.3.tgz";
+        sha512 = "k57fzmAZ2PJGxfOA4SGR05ejorHbVAa/84Hxh/2nAztjNXc4ZjOm9NUIk6/Z6LCrBvJZqjRZbN8e/nROVUPVdg==";
+      };
+    };
+    "@sinonjs/commons-1.8.1" = {
+      name = "_at_sinonjs_slash_commons";
+      packageName = "@sinonjs/commons";
+      version = "1.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz";
+        sha512 = "892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==";
+      };
+    };
+    "@sinonjs/fake-timers-6.0.1" = {
+      name = "_at_sinonjs_slash_fake-timers";
+      packageName = "@sinonjs/fake-timers";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz";
+        sha512 = "MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==";
+      };
+    };
+    "@sinonjs/formatio-5.0.1" = {
+      name = "_at_sinonjs_slash_formatio";
+      packageName = "@sinonjs/formatio";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-5.0.1.tgz";
+        sha512 = "KaiQ5pBf1MpS09MuA0kp6KBQt2JUOQycqVG1NZXvzeaXe5LGFqAKueIS0bw4w0P9r7KuBSVdUk5QjXsUdu2CxQ==";
+      };
+    };
+    "@sinonjs/samsam-5.1.0" = {
+      name = "_at_sinonjs_slash_samsam";
+      packageName = "@sinonjs/samsam";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.1.0.tgz";
+        sha512 = "42nyaQOVunX5Pm6GRJobmzbS7iLI+fhERITnETXzzwDZh+TtDr/Au3yAvXVjFmZ4wEUaE4Y3NFZfKv0bV0cbtg==";
+      };
+    };
+    "@sinonjs/text-encoding-0.7.1" = {
+      name = "_at_sinonjs_slash_text-encoding";
+      packageName = "@sinonjs/text-encoding";
+      version = "0.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz";
+        sha512 = "+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==";
+      };
+    };
+    "@types/color-name-1.1.1" = {
+      name = "_at_types_slash_color-name";
+      packageName = "@types/color-name";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz";
+        sha512 = "rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==";
+      };
+    };
+    "JSONStream-1.3.2" = {
+      name = "JSONStream";
+      packageName = "JSONStream";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.2.tgz";
+        sha1 = "c102371b6ec3a7cf3b847ca00c20bb0fce4c6dea";
+      };
+    };
+    "acorn-7.4.0" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "7.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz";
+        sha512 = "+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==";
+      };
+    };
+    "acorn-jsx-5.3.1" = {
+      name = "acorn-jsx";
+      packageName = "acorn-jsx";
+      version = "5.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.1.tgz";
+        sha512 = "K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==";
+      };
+    };
+    "aggregate-error-3.1.0" = {
+      name = "aggregate-error";
+      packageName = "aggregate-error";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz";
+        sha512 = "4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==";
+      };
+    };
+    "ajv-6.12.4" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "6.12.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz";
+        sha512 = "eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==";
+      };
+    };
+    "ansi-colors-4.1.1" = {
+      name = "ansi-colors";
+      packageName = "ansi-colors";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz";
+        sha512 = "JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==";
+      };
+    };
+    "ansi-escape-sequences-4.1.0" = {
+      name = "ansi-escape-sequences";
+      packageName = "ansi-escape-sequences";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-escape-sequences/-/ansi-escape-sequences-4.1.0.tgz";
+        sha512 = "dzW9kHxH011uBsidTXd14JXgzye/YLb2LzeKZ4bsgl/Knwx8AtbSFkkGxagdNOoh0DlqHCmfiEjWKBaqjOanVw==";
+      };
+    };
+    "ansi-regex-2.1.1" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
+        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+      };
+    };
+    "ansi-regex-3.0.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz";
+        sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+      };
+    };
+    "ansi-regex-4.1.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
+        sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
+      };
+    };
+    "ansi-regex-5.0.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz";
+        sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==";
+      };
+    };
+    "ansi-styles-2.2.1" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz";
+        sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
+      };
+    };
+    "ansi-styles-3.2.1" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz";
+        sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
+      };
+    };
+    "ansi-styles-4.2.1" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz";
+        sha512 = "9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==";
+      };
+    };
+    "anymatch-3.1.1" = {
+      name = "anymatch";
+      packageName = "anymatch";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz";
+        sha512 = "mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==";
+      };
+    };
+    "append-transform-2.0.0" = {
+      name = "append-transform";
+      packageName = "append-transform";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz";
+        sha512 = "7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg==";
+      };
+    };
+    "archy-1.0.0" = {
+      name = "archy";
+      packageName = "archy";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz";
+        sha1 = "f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40";
+      };
+    };
+    "argparse-1.0.10" = {
+      name = "argparse";
+      packageName = "argparse";
+      version = "1.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
+        sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
+      };
+    };
+    "array-back-1.0.4" = {
+      name = "array-back";
+      packageName = "array-back";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz";
+        sha1 = "644ba7f095f7ffcf7c43b5f0dc39d3c1f03c063b";
+      };
+    };
+    "array-back-2.0.0" = {
+      name = "array-back";
+      packageName = "array-back";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz";
+        sha512 = "eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==";
+      };
+    };
+    "array-back-3.1.0" = {
+      name = "array-back";
+      packageName = "array-back";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz";
+        sha512 = "TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==";
+      };
+    };
+    "array-back-4.0.1" = {
+      name = "array-back";
+      packageName = "array-back";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-back/-/array-back-4.0.1.tgz";
+        sha512 = "Z/JnaVEXv+A9xabHzN43FiiiWEE7gPCRXMrVmRm00tWbjZRul1iHm7ECzlyNq1p4a4ATXz+G9FJ3GqGOkOV3fg==";
+      };
+    };
+    "array-uniq-1.0.3" = {
+      name = "array-uniq";
+      packageName = "array-uniq";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz";
+        sha1 = "af6ac877a25cc7f74e058894753858dfdb24fdb6";
+      };
+    };
+    "array.prototype.map-1.0.2" = {
+      name = "array.prototype.map";
+      packageName = "array.prototype.map";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array.prototype.map/-/array.prototype.map-1.0.2.tgz";
+        sha512 = "Az3OYxgsa1g7xDYp86l0nnN4bcmuEITGe1rbdEBVkrqkzMgDcbdQ2R7r41pNzti+4NMces3H8gMmuioZUilLgw==";
+      };
+    };
+    "asn1-0.2.4" = {
+      name = "asn1";
+      packageName = "asn1";
+      version = "0.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz";
+        sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
+      };
+    };
+    "assert-plus-1.0.0" = {
+      name = "assert-plus";
+      packageName = "assert-plus";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz";
+        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+      };
+    };
+    "assertion-error-1.1.0" = {
+      name = "assertion-error";
+      packageName = "assertion-error";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz";
+        sha512 = "jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==";
+      };
+    };
+    "astral-regex-1.0.0" = {
+      name = "astral-regex";
+      packageName = "astral-regex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz";
+        sha512 = "+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==";
+      };
+    };
+    "async-1.0.0" = {
+      name = "async";
+      packageName = "async";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-1.0.0.tgz";
+        sha1 = "f8fc04ca3a13784ade9e1641af98578cfbd647a9";
+      };
+    };
+    "async-1.5.2" = {
+      name = "async";
+      packageName = "async";
+      version = "1.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-1.5.2.tgz";
+        sha1 = "ec6a61ae56480c0c3cb241c95618e20892f9672a";
+      };
+    };
+    "async-2.6.3" = {
+      name = "async";
+      packageName = "async";
+      version = "2.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-2.6.3.tgz";
+        sha512 = "zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==";
+      };
+    };
+    "async-3.2.0" = {
+      name = "async";
+      packageName = "async";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz";
+        sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==";
+      };
+    };
+    "asynckit-0.4.0" = {
+      name = "asynckit";
+      packageName = "asynckit";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz";
+        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+      };
+    };
+    "aws-sign2-0.7.0" = {
+      name = "aws-sign2";
+      packageName = "aws-sign2";
+      version = "0.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz";
+        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+      };
+    };
+    "aws4-1.10.1" = {
+      name = "aws4";
+      packageName = "aws4";
+      version = "1.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz";
+        sha512 = "zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==";
+      };
+    };
+    "balanced-match-1.0.0" = {
+      name = "balanced-match";
+      packageName = "balanced-match";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
+        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+      };
+    };
+    "base64-js-1.3.1" = {
+      name = "base64-js";
+      packageName = "base64-js";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz";
+        sha512 = "mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==";
+      };
+    };
+    "bcrypt-pbkdf-1.0.2" = {
+      name = "bcrypt-pbkdf";
+      packageName = "bcrypt-pbkdf";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+        sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+      };
+    };
+    "binary-extensions-2.1.0" = {
+      name = "binary-extensions";
+      packageName = "binary-extensions";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz";
+        sha512 = "1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==";
+      };
+    };
+    "bl-1.2.3" = {
+      name = "bl";
+      packageName = "bl";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz";
+        sha512 = "pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==";
+      };
+    };
+    "bluebird-2.11.0" = {
+      name = "bluebird";
+      packageName = "bluebird";
+      version = "2.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz";
+        sha1 = "534b9033c022c9579c56ba3b3e5a5caafbb650e1";
+      };
+    };
+    "bluebird-3.7.2" = {
+      name = "bluebird";
+      packageName = "bluebird";
+      version = "3.7.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz";
+        sha512 = "XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==";
+      };
+    };
+    "brace-expansion-1.1.11" = {
+      name = "brace-expansion";
+      packageName = "brace-expansion";
+      version = "1.1.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
+        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+      };
+    };
+    "braces-3.0.2" = {
+      name = "braces";
+      packageName = "braces";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz";
+        sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
+      };
+    };
+    "brotli-1.3.2" = {
+      name = "brotli";
+      packageName = "brotli";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/brotli/-/brotli-1.3.2.tgz";
+        sha1 = "525a9cad4fcba96475d7d388f6aecb13eed52f46";
+      };
+    };
+    "browser-stdout-1.3.1" = {
+      name = "browser-stdout";
+      packageName = "browser-stdout";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz";
+        sha512 = "qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==";
+      };
+    };
+    "buffer-alloc-1.2.0" = {
+      name = "buffer-alloc";
+      packageName = "buffer-alloc";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz";
+        sha512 = "CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==";
+      };
+    };
+    "buffer-alloc-unsafe-1.1.0" = {
+      name = "buffer-alloc-unsafe";
+      packageName = "buffer-alloc-unsafe";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz";
+        sha512 = "TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==";
+      };
+    };
+    "buffer-fill-1.0.0" = {
+      name = "buffer-fill";
+      packageName = "buffer-fill";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz";
+        sha1 = "f8f78b76789888ef39f205cd637f68e702122b2c";
+      };
+    };
+    "buffer-from-1.1.1" = {
+      name = "buffer-from";
+      packageName = "buffer-from";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz";
+        sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==";
+      };
+    };
+    "cache-point-2.0.0" = {
+      name = "cache-point";
+      packageName = "cache-point";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cache-point/-/cache-point-2.0.0.tgz";
+        sha512 = "4gkeHlFpSKgm3vm2gJN5sPqfmijYRFYCQ6tv5cLw0xVmT6r1z1vd4FNnpuOREco3cBs1G709sZ72LdgddKvL5w==";
+      };
+    };
+    "caching-transform-4.0.0" = {
+      name = "caching-transform";
+      packageName = "caching-transform";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz";
+        sha512 = "kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA==";
+      };
+    };
+    "callsites-3.1.0" = {
+      name = "callsites";
+      packageName = "callsites";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz";
+        sha512 = "P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==";
+      };
+    };
+    "camelcase-5.3.1" = {
+      name = "camelcase";
+      packageName = "camelcase";
+      version = "5.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz";
+        sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
+      };
+    };
+    "caseless-0.12.0" = {
+      name = "caseless";
+      packageName = "caseless";
+      version = "0.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz";
+        sha1 = "1b681c21ff84033c826543090689420d187151dc";
+      };
+    };
+    "catharsis-0.8.11" = {
+      name = "catharsis";
+      packageName = "catharsis";
+      version = "0.8.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/catharsis/-/catharsis-0.8.11.tgz";
+        sha512 = "a+xUyMV7hD1BrDQA/3iPV7oc+6W26BgVJO05PGEoatMyIuPScQKsde6i3YorWX1qs+AZjnJ18NqdKoCtKiNh1g==";
+      };
+    };
+    "chai-4.2.0" = {
+      name = "chai";
+      packageName = "chai";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz";
+        sha512 = "XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==";
+      };
+    };
+    "chalk-1.1.3" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz";
+        sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
+      };
+    };
+    "chalk-2.4.2" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
+        sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
+      };
+    };
+    "chalk-4.1.0" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz";
+        sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==";
+      };
+    };
+    "chardet-1.2.1" = {
+      name = "chardet";
+      packageName = "chardet";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chardet/-/chardet-1.2.1.tgz";
+        sha512 = "bnDt+69nS8Hi7Xmt0uDiQ32/hRpMK/0pc4lc32Y87voBgdsz26VZXOyo5VNQWQfe7rUsevZIfWB82C5QSpCXcQ==";
+      };
+    };
+    "charset-1.0.1" = {
+      name = "charset";
+      packageName = "charset";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/charset/-/charset-1.0.1.tgz";
+        sha512 = "6dVyOOYjpfFcL1Y4qChrAoQLRHvj2ziyhcm0QJlhOcAhykL/k1kTUPbeo+87MNRTRdk2OIIsIXbuF3x2wi5EXg==";
+      };
+    };
+    "check-error-1.0.2" = {
+      name = "check-error";
+      packageName = "check-error";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz";
+        sha1 = "574d312edd88bb5dd8912e9286dd6c0aed4aac82";
+      };
+    };
+    "chokidar-3.4.2" = {
+      name = "chokidar";
+      packageName = "chokidar";
+      version = "3.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.2.tgz";
+        sha512 = "IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==";
+      };
+    };
+    "chownr-1.1.4" = {
+      name = "chownr";
+      packageName = "chownr";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz";
+        sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==";
+      };
+    };
+    "clean-stack-2.2.0" = {
+      name = "clean-stack";
+      packageName = "clean-stack";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz";
+        sha512 = "4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==";
+      };
+    };
+    "cli-progress-3.8.2" = {
+      name = "cli-progress";
+      packageName = "cli-progress";
+      version = "3.8.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-progress/-/cli-progress-3.8.2.tgz";
+        sha512 = "qRwBxLldMSfxB+YGFgNRaj5vyyHe1yMpVeDL79c+7puGujdKJHQHydgqXDcrkvQgJ5U/d3lpf6vffSoVVUftVQ==";
+      };
+    };
+    "cli-table3-0.6.0" = {
+      name = "cli-table3";
+      packageName = "cli-table3";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz";
+        sha512 = "gnB85c3MGC7Nm9I/FkiasNBOKjOiO1RNuXXarQms37q4QMpWdlbBgD/VnOStA2faG1dpXMv31RFApjX1/QdgWQ==";
+      };
+    };
+    "cliui-5.0.0" = {
+      name = "cliui";
+      packageName = "cliui";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz";
+        sha512 = "PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==";
+      };
+    };
+    "cliui-6.0.0" = {
+      name = "cliui";
+      packageName = "cliui";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz";
+        sha512 = "t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==";
+      };
+    };
+    "collect-all-1.0.3" = {
+      name = "collect-all";
+      packageName = "collect-all";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/collect-all/-/collect-all-1.0.3.tgz";
+        sha512 = "0y0rBgoX8IzIjBAUnO73SEtSb4Mhk3IoceWJq5zZSxb9mWORhWH8xLYo4EDSOE1jRBk1LhmfjqWFFt10h/+MEA==";
+      };
+    };
+    "color-convert-1.9.3" = {
+      name = "color-convert";
+      packageName = "color-convert";
+      version = "1.9.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz";
+        sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==";
+      };
+    };
+    "color-convert-2.0.1" = {
+      name = "color-convert";
+      packageName = "color-convert";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
+        sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
+      };
+    };
+    "color-name-1.1.3" = {
+      name = "color-name";
+      packageName = "color-name";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz";
+        sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+      };
+    };
+    "color-name-1.1.4" = {
+      name = "color-name";
+      packageName = "color-name";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
+        sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
+      };
+    };
+    "colors-1.0.3" = {
+      name = "colors";
+      packageName = "colors";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz";
+        sha1 = "0433f44d809680fdeb60ed260f1b0c262e82a40b";
+      };
+    };
+    "colors-1.4.0" = {
+      name = "colors";
+      packageName = "colors";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz";
+        sha512 = "a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==";
+      };
+    };
+    "combined-stream-1.0.8" = {
+      name = "combined-stream";
+      packageName = "combined-stream";
+      version = "1.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
+        sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
+      };
+    };
+    "command-line-args-5.1.1" = {
+      name = "command-line-args";
+      packageName = "command-line-args";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz";
+        sha512 = "hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg==";
+      };
+    };
+    "command-line-tool-0.8.0" = {
+      name = "command-line-tool";
+      packageName = "command-line-tool";
+      version = "0.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/command-line-tool/-/command-line-tool-0.8.0.tgz";
+        sha512 = "Xw18HVx/QzQV3Sc5k1vy3kgtOeGmsKIqwtFFoyjI4bbcpSgnw2CWVULvtakyw4s6fhyAdI6soQQhXc2OzJy62g==";
+      };
+    };
+    "command-line-usage-4.1.0" = {
+      name = "command-line-usage";
+      packageName = "command-line-usage";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/command-line-usage/-/command-line-usage-4.1.0.tgz";
+        sha512 = "MxS8Ad995KpdAC0Jopo/ovGIroV/m0KHwzKfXxKag6FHOkGsH8/lv5yjgablcRxCJJC0oJeUMuO/gmaq+Wq46g==";
+      };
+    };
+    "commander-2.20.3" = {
+      name = "commander";
+      packageName = "commander";
+      version = "2.20.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz";
+        sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==";
+      };
+    };
+    "commander-2.9.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "2.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz";
+        sha1 = "9c99094176e12240cb22d6c5146098400fe0f7d4";
+      };
+    };
+    "commander-5.1.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz";
+        sha512 = "P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==";
+      };
+    };
+    "commander-6.1.0" = {
+      name = "commander";
+      packageName = "commander";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-6.1.0.tgz";
+        sha512 = "wl7PNrYWd2y5mp1OK/LhTlv8Ff4kQJQRXXAvF+uU/TPNiVJUxZLRYGj/B0y/lPGAVcSbJqH2Za/cvHmrPMC8mA==";
+      };
+    };
+    "comment-parser-0.7.6" = {
+      name = "comment-parser";
+      packageName = "comment-parser";
+      version = "0.7.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/comment-parser/-/comment-parser-0.7.6.tgz";
+        sha512 = "GKNxVA7/iuTnAqGADlTWX4tkhzxZKXp5fLJqKTlQLHkE65XDUKutZ3BHaJC5IGcper2tT3QRD1xr4o3jNpgXXg==";
+      };
+    };
+    "common-sequence-2.0.0" = {
+      name = "common-sequence";
+      packageName = "common-sequence";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/common-sequence/-/common-sequence-2.0.0.tgz";
+        sha512 = "f0QqPLpRTgMQn/pQIynf+SdE73Lw5Q1jn4hjirHLgH/NJ71TiHjXusV16BmOyuK5rRQ1W2f++II+TFZbQOh4hA==";
+      };
+    };
+    "commondir-1.0.1" = {
+      name = "commondir";
+      packageName = "commondir";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz";
+        sha1 = "ddd800da0c66127393cca5950ea968a3aaf1253b";
+      };
+    };
+    "concat-map-0.0.1" = {
+      name = "concat-map";
+      packageName = "concat-map";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    };
+    "concat-stream-1.6.2" = {
+      name = "concat-stream";
+      packageName = "concat-stream";
+      version = "1.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz";
+        sha512 = "27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==";
+      };
+    };
+    "config-master-3.1.0" = {
+      name = "config-master";
+      packageName = "config-master";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/config-master/-/config-master-3.1.0.tgz";
+        sha1 = "667663590505a283bf26a484d68489d74c5485da";
+      };
+    };
+    "convert-source-map-1.7.0" = {
+      name = "convert-source-map";
+      packageName = "convert-source-map";
+      version = "1.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz";
+        sha512 = "4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==";
+      };
+    };
+    "core-util-is-1.0.2" = {
+      name = "core-util-is";
+      packageName = "core-util-is";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+      };
+    };
+    "cross-spawn-7.0.3" = {
+      name = "cross-spawn";
+      packageName = "cross-spawn";
+      version = "7.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz";
+        sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==";
+      };
+    };
+    "csv-parse-4.12.0" = {
+      name = "csv-parse";
+      packageName = "csv-parse";
+      version = "4.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-4.12.0.tgz";
+        sha512 = "wPQl3H79vWLPI8cgKFcQXl0NBgYYEqVnT1i6/So7OjMpsI540oD7p93r3w6fDSyPvwkTepG05F69/7AViX2lXg==";
+      };
+    };
+    "cycle-1.0.3" = {
+      name = "cycle";
+      packageName = "cycle";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz";
+        sha1 = "21e80b2be8580f98b468f379430662b046c34ad2";
+      };
+    };
+    "dashdash-1.14.1" = {
+      name = "dashdash";
+      packageName = "dashdash";
+      version = "1.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz";
+        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+      };
+    };
+    "date-format-0.0.2" = {
+      name = "date-format";
+      packageName = "date-format";
+      version = "0.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/date-format/-/date-format-0.0.2.tgz";
+        sha1 = "fafd448f72115ef1e2b739155ae92f2be6c28dd1";
+      };
+    };
+    "dbug-0.4.2" = {
+      name = "dbug";
+      packageName = "dbug";
+      version = "0.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dbug/-/dbug-0.4.2.tgz";
+        sha1 = "32b4b3105e8861043a6f9ac755d80e542d365b31";
+      };
+    };
+    "debug-3.2.6" = {
+      name = "debug";
+      packageName = "debug";
+      version = "3.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz";
+        sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==";
+      };
+    };
+    "debug-4.1.1" = {
+      name = "debug";
+      packageName = "debug";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz";
+        sha512 = "pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==";
+      };
+    };
+    "debug-4.2.0" = {
+      name = "debug";
+      packageName = "debug";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz";
+        sha512 = "IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==";
+      };
+    };
+    "decamelize-1.2.0" = {
+      name = "decamelize";
+      packageName = "decamelize";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
+        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+      };
+    };
+    "deep-eql-3.0.1" = {
+      name = "deep-eql";
+      packageName = "deep-eql";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz";
+        sha512 = "+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==";
+      };
+    };
+    "deep-extend-0.6.0" = {
+      name = "deep-extend";
+      packageName = "deep-extend";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz";
+        sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
+      };
+    };
+    "deep-is-0.1.3" = {
+      name = "deep-is";
+      packageName = "deep-is";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz";
+        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+      };
+    };
+    "default-require-extensions-3.0.0" = {
+      name = "default-require-extensions";
+      packageName = "default-require-extensions";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz";
+        sha512 = "ek6DpXq/SCpvjhpFsLFRVtIxJCRw6fUR42lYMVZuUMK7n8eMz4Uh5clckdBjEpLhn/gEBZo7hDJnJcwdKLKQjg==";
+      };
+    };
+    "define-properties-1.1.3" = {
+      name = "define-properties";
+      packageName = "define-properties";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz";
+        sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==";
+      };
+    };
+    "delayed-stream-1.0.0" = {
+      name = "delayed-stream";
+      packageName = "delayed-stream";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
+        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+      };
+    };
+    "diff-4.0.2" = {
+      name = "diff";
+      packageName = "diff";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz";
+        sha512 = "58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==";
+      };
+    };
+    "dmd-5.0.2" = {
+      name = "dmd";
+      packageName = "dmd";
+      version = "5.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dmd/-/dmd-5.0.2.tgz";
+        sha512 = "npXsE2+/onRPk/LCrUmx7PcUSqcSVnbrDDMi2nBSawNZ8QXlHE/8xaEZ6pNqPD1lQZv8LGr1xEIpyxP336xyfw==";
+      };
+    };
+    "docker-modem-1.0.9" = {
+      name = "docker-modem";
+      packageName = "docker-modem";
+      version = "1.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/docker-modem/-/docker-modem-1.0.9.tgz";
+        sha512 = "lVjqCSCIAUDZPAZIeyM125HXfNvOmYYInciphNrLrylUtKyW66meAjSPXWchKVzoIYZx69TPnAepVSSkeawoIw==";
+      };
+    };
+    "dockerfile_lint-0.3.4" = {
+      name = "dockerfile_lint";
+      packageName = "dockerfile_lint";
+      version = "0.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dockerfile_lint/-/dockerfile_lint-0.3.4.tgz";
+        sha512 = "+4SUTb7Helo7TuhzNsukJgV6T7B7GGFYnn1h5c5DFrV0VmtXGcqSyZYBHz+s+vrFDt8ehE2DqGdrmG1RaqPkpw==";
+      };
+    };
+    "dockerode-2.5.8" = {
+      name = "dockerode";
+      packageName = "dockerode";
+      version = "2.5.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dockerode/-/dockerode-2.5.8.tgz";
+        sha512 = "+7iOUYBeDTScmOmQqpUYQaE7F4vvIt6+gIZNHWhqAQEI887tiPFB9OvXI/HzQYqfUNvukMK+9myLW63oTJPZpw==";
+      };
+    };
+    "doctrine-3.0.0" = {
+      name = "doctrine";
+      packageName = "doctrine";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz";
+        sha512 = "yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==";
+      };
+    };
+    "dom-serializer-0.2.2" = {
+      name = "dom-serializer";
+      packageName = "dom-serializer";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz";
+        sha512 = "2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==";
+      };
+    };
+    "domelementtype-1.3.1" = {
+      name = "domelementtype";
+      packageName = "domelementtype";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz";
+        sha512 = "BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==";
+      };
+    };
+    "domelementtype-2.0.1" = {
+      name = "domelementtype";
+      packageName = "domelementtype";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.0.1.tgz";
+        sha512 = "5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ==";
+      };
+    };
+    "domhandler-2.4.2" = {
+      name = "domhandler";
+      packageName = "domhandler";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz";
+        sha512 = "JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==";
+      };
+    };
+    "domutils-1.7.0" = {
+      name = "domutils";
+      packageName = "domutils";
+      version = "1.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz";
+        sha512 = "Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==";
+      };
+    };
+    "ecc-jsbn-0.1.2" = {
+      name = "ecc-jsbn";
+      packageName = "ecc-jsbn";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+        sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+      };
+    };
+    "editorconfig-0.15.3" = {
+      name = "editorconfig";
+      packageName = "editorconfig";
+      version = "0.15.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz";
+        sha512 = "M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==";
+      };
+    };
+    "emoji-regex-7.0.3" = {
+      name = "emoji-regex";
+      packageName = "emoji-regex";
+      version = "7.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz";
+        sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==";
+      };
+    };
+    "emoji-regex-8.0.0" = {
+      name = "emoji-regex";
+      packageName = "emoji-regex";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz";
+        sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==";
+      };
+    };
+    "end-of-stream-1.4.4" = {
+      name = "end-of-stream";
+      packageName = "end-of-stream";
+      version = "1.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz";
+        sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==";
+      };
+    };
+    "enquirer-2.3.6" = {
+      name = "enquirer";
+      packageName = "enquirer";
+      version = "2.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz";
+        sha512 = "yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==";
+      };
+    };
+    "entities-1.1.2" = {
+      name = "entities";
+      packageName = "entities";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz";
+        sha512 = "f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==";
+      };
+    };
+    "entities-2.0.3" = {
+      name = "entities";
+      packageName = "entities";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz";
+        sha512 = "MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==";
+      };
+    };
+    "es-abstract-1.17.6" = {
+      name = "es-abstract";
+      packageName = "es-abstract";
+      version = "1.17.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz";
+        sha512 = "Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==";
+      };
+    };
+    "es-array-method-boxes-properly-1.0.0" = {
+      name = "es-array-method-boxes-properly";
+      packageName = "es-array-method-boxes-properly";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz";
+        sha512 = "wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==";
+      };
+    };
+    "es-get-iterator-1.1.0" = {
+      name = "es-get-iterator";
+      packageName = "es-get-iterator";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.0.tgz";
+        sha512 = "UfrmHuWQlNMTs35e1ypnvikg6jCz3SK8v8ImvmDsh36fCVUR1MqoFDiyn0/k52C8NqO3YsO8Oe0azeesNuqSsQ==";
+      };
+    };
+    "es-to-primitive-1.2.1" = {
+      name = "es-to-primitive";
+      packageName = "es-to-primitive";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
+        sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==";
+      };
+    };
+    "es6-error-4.1.1" = {
+      name = "es6-error";
+      packageName = "es6-error";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz";
+        sha512 = "Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==";
+      };
+    };
+    "escape-html-1.0.3" = {
+      name = "escape-html";
+      packageName = "escape-html";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz";
+        sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+      };
+    };
+    "escape-string-regexp-1.0.5" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+      };
+    };
+    "escape-string-regexp-2.0.0" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz";
+        sha512 = "UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==";
+      };
+    };
+    "escape-string-regexp-4.0.0" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
+        sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
+      };
+    };
+    "eslint-7.8.0" = {
+      name = "eslint";
+      packageName = "eslint";
+      version = "7.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.8.0.tgz";
+        sha512 = "qgtVyLZqKd2ZXWnLQA4NtVbOyH56zivOAdBFWE54RFkSZjokzNrcP4Z0eVWsZ+84ByXv+jL9k/wE1ENYe8xRFw==";
+      };
+    };
+    "eslint-plugin-jsdoc-30.3.0" = {
+      name = "eslint-plugin-jsdoc";
+      packageName = "eslint-plugin-jsdoc";
+      version = "30.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-30.3.0.tgz";
+        sha512 = "RvDLH26ILwX2J60P7tlNdz5IlTFeC52TEFgAC12+nz/lOx4a7n3/hP8fBPFZrQP07WA1t9ZOO8H/i7cEs2BTnA==";
+      };
+    };
+    "eslint-plugin-lodash-7.1.0" = {
+      name = "eslint-plugin-lodash";
+      packageName = "eslint-plugin-lodash";
+      version = "7.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-lodash/-/eslint-plugin-lodash-7.1.0.tgz";
+        sha512 = "BRkEI/+ZjmeDCM1DfzR+NVwYkC/+ChJhaOSm3Xm7rer/fs89TKU6AMtkQiDdqQel1wZ4IJM+B6hlep9xwVKaMQ==";
+      };
+    };
+    "eslint-plugin-mocha-8.0.0" = {
+      name = "eslint-plugin-mocha";
+      packageName = "eslint-plugin-mocha";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-8.0.0.tgz";
+        sha512 = "n67etbWDz6NQM+HnTwZHyBwz/bLlYPOxUbw7bPuCyFujv7ZpaT/Vn6KTAbT02gf7nRljtYIjWcTxK/n8a57rQQ==";
+      };
+    };
+    "eslint-plugin-security-1.4.0" = {
+      name = "eslint-plugin-security";
+      packageName = "eslint-plugin-security";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.4.0.tgz";
+        sha512 = "xlS7P2PLMXeqfhyf3NpqbvbnW04kN8M9NtmhpR3XGyOvt/vNKS7XPXT5EDbwKW9vCjWH4PpfQvgD/+JgN0VJKA==";
+      };
+    };
+    "eslint-scope-5.1.0" = {
+      name = "eslint-scope";
+      packageName = "eslint-scope";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz";
+        sha512 = "iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==";
+      };
+    };
+    "eslint-utils-2.1.0" = {
+      name = "eslint-utils";
+      packageName = "eslint-utils";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz";
+        sha512 = "w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==";
+      };
+    };
+    "eslint-visitor-keys-1.3.0" = {
+      name = "eslint-visitor-keys";
+      packageName = "eslint-visitor-keys";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
+        sha512 = "6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==";
+      };
+    };
+    "espree-7.3.0" = {
+      name = "espree";
+      packageName = "espree";
+      version = "7.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz";
+        sha512 = "dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==";
+      };
+    };
+    "esprima-4.0.1" = {
+      name = "esprima";
+      packageName = "esprima";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
+        sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
+      };
+    };
+    "esquery-1.3.1" = {
+      name = "esquery";
+      packageName = "esquery";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz";
+        sha512 = "olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==";
+      };
+    };
+    "esrecurse-4.3.0" = {
+      name = "esrecurse";
+      packageName = "esrecurse";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz";
+        sha512 = "KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==";
+      };
+    };
+    "estraverse-4.3.0" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz";
+        sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==";
+      };
+    };
+    "estraverse-5.2.0" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz";
+        sha512 = "BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==";
+      };
+    };
+    "esutils-2.0.3" = {
+      name = "esutils";
+      packageName = "esutils";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz";
+        sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
+      };
+    };
+    "eventemitter3-4.0.7" = {
+      name = "eventemitter3";
+      packageName = "eventemitter3";
+      version = "4.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz";
+        sha512 = "8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==";
+      };
+    };
+    "extend-3.0.2" = {
+      name = "extend";
+      packageName = "extend";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
+        sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
+      };
+    };
+    "extsprintf-1.3.0" = {
+      name = "extsprintf";
+      packageName = "extsprintf";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz";
+        sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+      };
+    };
+    "eyes-0.1.8" = {
+      name = "eyes";
+      packageName = "eyes";
+      version = "0.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz";
+        sha1 = "62cf120234c683785d902348a800ef3e0cc20bc0";
+      };
+    };
+    "faker-5.1.0" = {
+      name = "faker";
+      packageName = "faker";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/faker/-/faker-5.1.0.tgz";
+        sha512 = "RrWKFSSA/aNLP0g3o2WW1Zez7/MnMr7xkiZmoCfAGZmdkDQZ6l2KtuXHN5XjdvpRjDl8+3vf+Rrtl06Z352+Mw==";
+      };
+    };
+    "fast-deep-equal-3.1.3" = {
+      name = "fast-deep-equal";
+      packageName = "fast-deep-equal";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+        sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
+      };
+    };
+    "fast-json-stable-stringify-2.1.0" = {
+      name = "fast-json-stable-stringify";
+      packageName = "fast-json-stable-stringify";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
+        sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
+      };
+    };
+    "fast-levenshtein-2.0.6" = {
+      name = "fast-levenshtein";
+      packageName = "fast-levenshtein";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+        sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+      };
+    };
+    "file-entry-cache-5.0.1" = {
+      name = "file-entry-cache";
+      packageName = "file-entry-cache";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz";
+        sha512 = "bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==";
+      };
+    };
+    "file-set-4.0.1" = {
+      name = "file-set";
+      packageName = "file-set";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-set/-/file-set-4.0.1.tgz";
+        sha512 = "tRzX4kGPmxS2HDK2q2L4qcPopTl/gcyahve2/O8l8hHNJgJ7m+r/ZncCJ1MmFWEMp1yHxJGIU9gAcsWu5jPMpg==";
+      };
+    };
+    "file-type-3.9.0" = {
+      name = "file-type";
+      packageName = "file-type";
+      version = "3.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz";
+        sha1 = "257a078384d1db8087bc449d107d52a52672b9e9";
+      };
+    };
+    "filesize-6.1.0" = {
+      name = "filesize";
+      packageName = "filesize";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/filesize/-/filesize-6.1.0.tgz";
+        sha512 = "LpCHtPQ3sFx67z+uh2HnSyWSLLu5Jxo21795uRDuar/EOuYWXib5EmPaGIBuSnRqH2IODiKA2k5re/K9OnN/Yg==";
+      };
+    };
+    "fill-range-7.0.1" = {
+      name = "fill-range";
+      packageName = "fill-range";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz";
+        sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
+      };
+    };
+    "find-cache-dir-3.3.1" = {
+      name = "find-cache-dir";
+      packageName = "find-cache-dir";
+      version = "3.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz";
+        sha512 = "t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==";
+      };
+    };
+    "find-replace-3.0.0" = {
+      name = "find-replace";
+      packageName = "find-replace";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz";
+        sha512 = "6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==";
+      };
+    };
+    "find-up-3.0.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz";
+        sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==";
+      };
+    };
+    "find-up-4.1.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz";
+        sha512 = "PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==";
+      };
+    };
+    "find-up-5.0.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz";
+        sha512 = "78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==";
+      };
+    };
+    "flat-4.1.0" = {
+      name = "flat";
+      packageName = "flat";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz";
+        sha512 = "Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==";
+      };
+    };
+    "flat-cache-2.0.1" = {
+      name = "flat-cache";
+      packageName = "flat-cache";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz";
+        sha512 = "LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==";
+      };
+    };
+    "flatted-2.0.1" = {
+      name = "flatted";
+      packageName = "flatted";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flatted/-/flatted-2.0.1.tgz";
+        sha512 = "a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg==";
+      };
+    };
+    "foreground-child-2.0.0" = {
+      name = "foreground-child";
+      packageName = "foreground-child";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz";
+        sha512 = "dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==";
+      };
+    };
+    "forever-agent-0.6.1" = {
+      name = "forever-agent";
+      packageName = "forever-agent";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz";
+        sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+      };
+    };
+    "fromentries-1.2.1" = {
+      name = "fromentries";
+      packageName = "fromentries";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fromentries/-/fromentries-1.2.1.tgz";
+        sha512 = "Xu2Qh8yqYuDhQGOhD5iJGninErSfI9A3FrriD3tjUgV5VbJFeH8vfgZ9HnC6jWN80QDVNQK5vmxRAmEAp7Mevw==";
+      };
+    };
+    "fs-constants-1.0.0" = {
+      name = "fs-constants";
+      packageName = "fs-constants";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz";
+        sha512 = "y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==";
+      };
+    };
+    "fs-then-native-2.0.0" = {
+      name = "fs-then-native";
+      packageName = "fs-then-native";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-then-native/-/fs-then-native-2.0.0.tgz";
+        sha1 = "19a124d94d90c22c8e045f2e8dd6ebea36d48c67";
+      };
+    };
+    "fs.realpath-1.0.0" = {
+      name = "fs.realpath";
+      packageName = "fs.realpath";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
+        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+      };
+    };
+    "fsevents-2.1.3" = {
+      name = "fsevents";
+      packageName = "fsevents";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz";
+        sha512 = "Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==";
+      };
+    };
+    "function-bind-1.1.1" = {
+      name = "function-bind";
+      packageName = "function-bind";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
+        sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
+      };
+    };
+    "functional-red-black-tree-1.0.1" = {
+      name = "functional-red-black-tree";
+      packageName = "functional-red-black-tree";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
+        sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
+      };
+    };
+    "gensync-1.0.0-beta.1" = {
+      name = "gensync";
+      packageName = "gensync";
+      version = "1.0.0-beta.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz";
+        sha512 = "r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==";
+      };
+    };
+    "get-caller-file-2.0.5" = {
+      name = "get-caller-file";
+      packageName = "get-caller-file";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz";
+        sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
+      };
+    };
+    "get-func-name-2.0.0" = {
+      name = "get-func-name";
+      packageName = "get-func-name";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz";
+        sha1 = "ead774abee72e20409433a066366023dd6887a41";
+      };
+    };
+    "get-package-type-0.1.0" = {
+      name = "get-package-type";
+      packageName = "get-package-type";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz";
+        sha512 = "pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==";
+      };
+    };
+    "getpass-0.1.7" = {
+      name = "getpass";
+      packageName = "getpass";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz";
+        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+      };
+    };
+    "glob-7.1.6" = {
+      name = "glob";
+      packageName = "glob";
+      version = "7.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
+        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+      };
+    };
+    "glob-parent-5.1.1" = {
+      name = "glob-parent";
+      packageName = "glob-parent";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz";
+        sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==";
+      };
+    };
+    "globals-11.12.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "11.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz";
+        sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==";
+      };
+    };
+    "globals-12.4.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "12.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz";
+        sha512 = "BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==";
+      };
+    };
+    "graceful-fs-4.2.4" = {
+      name = "graceful-fs";
+      packageName = "graceful-fs";
+      version = "4.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz";
+        sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==";
+      };
+    };
+    "graceful-readlink-1.0.1" = {
+      name = "graceful-readlink";
+      packageName = "graceful-readlink";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz";
+        sha1 = "4cafad76bc62f02fa039b2f94e9a3dd3a391a725";
+      };
+    };
+    "growl-1.10.5" = {
+      name = "growl";
+      packageName = "growl";
+      version = "1.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz";
+        sha512 = "qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==";
+      };
+    };
+    "handlebars-4.7.6" = {
+      name = "handlebars";
+      packageName = "handlebars";
+      version = "4.7.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz";
+        sha512 = "1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==";
+      };
+    };
+    "har-schema-2.0.0" = {
+      name = "har-schema";
+      packageName = "har-schema";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz";
+        sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+      };
+    };
+    "har-validator-5.1.5" = {
+      name = "har-validator";
+      packageName = "har-validator";
+      version = "5.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz";
+        sha512 = "nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==";
+      };
+    };
+    "has-1.0.3" = {
+      name = "has";
+      packageName = "has";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
+        sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
+      };
+    };
+    "has-ansi-2.0.0" = {
+      name = "has-ansi";
+      packageName = "has-ansi";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz";
+        sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+      };
+    };
+    "has-flag-3.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz";
+        sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+      };
+    };
+    "has-flag-4.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
+        sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
+      };
+    };
+    "has-symbols-1.0.1" = {
+      name = "has-symbols";
+      packageName = "has-symbols";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz";
+        sha512 = "PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==";
+      };
+    };
+    "hasha-5.2.0" = {
+      name = "hasha";
+      packageName = "hasha";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hasha/-/hasha-5.2.0.tgz";
+        sha512 = "2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw==";
+      };
+    };
+    "he-1.2.0" = {
+      name = "he";
+      packageName = "he";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz";
+        sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
+      };
+    };
+    "html-escaper-2.0.2" = {
+      name = "html-escaper";
+      packageName = "html-escaper";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz";
+        sha512 = "H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==";
+      };
+    };
+    "htmlparser2-3.10.1" = {
+      name = "htmlparser2";
+      packageName = "htmlparser2";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz";
+        sha512 = "IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==";
+      };
+    };
+    "http-reasons-0.1.0" = {
+      name = "http-reasons";
+      packageName = "http-reasons";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-reasons/-/http-reasons-0.1.0.tgz";
+        sha1 = "a953ca670078669dde142ce899401b9d6e85d3b4";
+      };
+    };
+    "http-signature-1.3.4" = {
+      name = "http-signature";
+      packageName = "http-signature";
+      version = "1.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.3.4.tgz";
+        sha512 = "CbG3io8gUSIxNNSgq+XMjgpTMzAeVRipxVXjuGrDhH5M1a2kZ03w20s8FCLR1NjnnJj10KbvabvckmtQcYNb9g==";
+      };
+    };
+    "httpntlm-1.7.6" = {
+      name = "httpntlm";
+      packageName = "httpntlm";
+      version = "1.7.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/httpntlm/-/httpntlm-1.7.6.tgz";
+        sha1 = "6991e8352836007d67101b83db8ed0f915f906d0";
+      };
+    };
+    "httpreq-0.4.24" = {
+      name = "httpreq";
+      packageName = "httpreq";
+      version = "0.4.24";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/httpreq/-/httpreq-0.4.24.tgz";
+        sha1 = "4335ffd82cd969668a39465c929ac61d6393627f";
+      };
+    };
+    "iconv-lite-0.6.2" = {
+      name = "iconv-lite";
+      packageName = "iconv-lite";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz";
+        sha512 = "2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==";
+      };
+    };
+    "ignore-4.0.6" = {
+      name = "ignore";
+      packageName = "ignore";
+      version = "4.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz";
+        sha512 = "cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==";
+      };
+    };
+    "import-fresh-3.2.1" = {
+      name = "import-fresh";
+      packageName = "import-fresh";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz";
+        sha512 = "6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==";
+      };
+    };
+    "imurmurhash-0.1.4" = {
+      name = "imurmurhash";
+      packageName = "imurmurhash";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz";
+        sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+      };
+    };
+    "indent-string-4.0.0" = {
+      name = "indent-string";
+      packageName = "indent-string";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz";
+        sha512 = "EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==";
+      };
+    };
+    "inflight-1.0.6" = {
+      name = "inflight";
+      packageName = "inflight";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
+        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+      };
+    };
+    "inherits-2.0.4" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
+        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+      };
+    };
+    "intel-1.2.0" = {
+      name = "intel";
+      packageName = "intel";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/intel/-/intel-1.2.0.tgz";
+        sha1 = "11d1147eb6b3f4582bdf5337b37d541584e9e41e";
+      };
+    };
+    "interpret-1.4.0" = {
+      name = "interpret";
+      packageName = "interpret";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz";
+        sha512 = "agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==";
+      };
+    };
+    "ip-regex-2.1.0" = {
+      name = "ip-regex";
+      packageName = "ip-regex";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz";
+        sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
+      };
+    };
+    "is-arguments-1.0.4" = {
+      name = "is-arguments";
+      packageName = "is-arguments";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-arguments/-/is-arguments-1.0.4.tgz";
+        sha512 = "xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA==";
+      };
+    };
+    "is-binary-path-2.1.0" = {
+      name = "is-binary-path";
+      packageName = "is-binary-path";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz";
+        sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==";
+      };
+    };
+    "is-buffer-2.0.4" = {
+      name = "is-buffer";
+      packageName = "is-buffer";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz";
+        sha512 = "Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==";
+      };
+    };
+    "is-callable-1.2.1" = {
+      name = "is-callable";
+      packageName = "is-callable";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.1.tgz";
+        sha512 = "wliAfSzx6V+6WfMOmus1xy0XvSgf/dlStkvTfq7F0g4bOIW0PSUbnyse3NhDwdyYS1ozfUtAAySqTws3z9Eqgg==";
+      };
+    };
+    "is-date-object-1.0.2" = {
+      name = "is-date-object";
+      packageName = "is-date-object";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz";
+        sha512 = "USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==";
+      };
+    };
+    "is-extglob-2.1.1" = {
+      name = "is-extglob";
+      packageName = "is-extglob";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz";
+        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+      };
+    };
+    "is-fullwidth-code-point-2.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+        sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+      };
+    };
+    "is-fullwidth-code-point-3.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
+        sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
+      };
+    };
+    "is-glob-4.0.1" = {
+      name = "is-glob";
+      packageName = "is-glob";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
+        sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
+      };
+    };
+    "is-map-2.0.1" = {
+      name = "is-map";
+      packageName = "is-map";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-map/-/is-map-2.0.1.tgz";
+        sha512 = "T/S49scO8plUiAOA2DBTBG3JHpn1yiw0kRp6dgiZ0v2/6twi5eiB0rHtHFH9ZIrvlWc6+4O+m4zg5+Z833aXgw==";
+      };
+    };
+    "is-number-7.0.0" = {
+      name = "is-number";
+      packageName = "is-number";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz";
+        sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
+      };
+    };
+    "is-plain-obj-1.1.0" = {
+      name = "is-plain-obj";
+      packageName = "is-plain-obj";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz";
+        sha1 = "71a50c8429dfca773c92a390a4a03b39fcd51d3e";
+      };
+    };
+    "is-regex-1.1.1" = {
+      name = "is-regex";
+      packageName = "is-regex";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz";
+        sha512 = "1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==";
+      };
+    };
+    "is-set-2.0.1" = {
+      name = "is-set";
+      packageName = "is-set";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-set/-/is-set-2.0.1.tgz";
+        sha512 = "eJEzOtVyenDs1TMzSQ3kU3K+E0GUS9sno+F0OBT97xsgcJsF9nXMBtkT9/kut5JEpM7oL7X/0qxR17K3mcwIAA==";
+      };
+    };
+    "is-stream-2.0.0" = {
+      name = "is-stream";
+      packageName = "is-stream";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz";
+        sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
+      };
+    };
+    "is-string-1.0.5" = {
+      name = "is-string";
+      packageName = "is-string";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-string/-/is-string-1.0.5.tgz";
+        sha512 = "buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ==";
+      };
+    };
+    "is-symbol-1.0.3" = {
+      name = "is-symbol";
+      packageName = "is-symbol";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz";
+        sha512 = "OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==";
+      };
+    };
+    "is-typedarray-1.0.0" = {
+      name = "is-typedarray";
+      packageName = "is-typedarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
+        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+      };
+    };
+    "is-windows-1.0.2" = {
+      name = "is-windows";
+      packageName = "is-windows";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz";
+        sha512 = "eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==";
+      };
+    };
+    "isarray-0.0.1" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz";
+        sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+      };
+    };
+    "isarray-1.0.0" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+      };
+    };
+    "isarray-2.0.5" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz";
+        sha512 = "xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==";
+      };
+    };
+    "isexe-2.0.0" = {
+      name = "isexe";
+      packageName = "isexe";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";
+        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+      };
+    };
+    "isstream-0.1.2" = {
+      name = "isstream";
+      packageName = "isstream";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
+        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+      };
+    };
+    "istanbul-lib-coverage-3.0.0" = {
+      name = "istanbul-lib-coverage";
+      packageName = "istanbul-lib-coverage";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz";
+        sha512 = "UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==";
+      };
+    };
+    "istanbul-lib-hook-3.0.0" = {
+      name = "istanbul-lib-hook";
+      packageName = "istanbul-lib-hook";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz";
+        sha512 = "Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ==";
+      };
+    };
+    "istanbul-lib-instrument-4.0.3" = {
+      name = "istanbul-lib-instrument";
+      packageName = "istanbul-lib-instrument";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz";
+        sha512 = "BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==";
+      };
+    };
+    "istanbul-lib-processinfo-2.0.2" = {
+      name = "istanbul-lib-processinfo";
+      packageName = "istanbul-lib-processinfo";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.2.tgz";
+        sha512 = "kOwpa7z9hme+IBPZMzQ5vdQj8srYgAtaRqeI48NGmAQ+/5yKiHLV0QbYqQpxsdEF0+w14SoB8YbnHKcXE2KnYw==";
+      };
+    };
+    "istanbul-lib-report-3.0.0" = {
+      name = "istanbul-lib-report";
+      packageName = "istanbul-lib-report";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz";
+        sha512 = "wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==";
+      };
+    };
+    "istanbul-lib-source-maps-4.0.0" = {
+      name = "istanbul-lib-source-maps";
+      packageName = "istanbul-lib-source-maps";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz";
+        sha512 = "c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==";
+      };
+    };
+    "istanbul-reports-3.0.2" = {
+      name = "istanbul-reports";
+      packageName = "istanbul-reports";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz";
+        sha512 = "9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==";
+      };
+    };
+    "iterate-iterator-1.0.1" = {
+      name = "iterate-iterator";
+      packageName = "iterate-iterator";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iterate-iterator/-/iterate-iterator-1.0.1.tgz";
+        sha512 = "3Q6tudGN05kbkDQDI4CqjaBf4qf85w6W6GnuZDtUVYwKgtC1q8yxYX7CZed7N+tLzQqS6roujWvszf13T+n9aw==";
+      };
+    };
+    "iterate-value-1.0.2" = {
+      name = "iterate-value";
+      packageName = "iterate-value";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iterate-value/-/iterate-value-1.0.2.tgz";
+        sha512 = "A6fMAio4D2ot2r/TYzr4yUWrmwNdsN5xL7+HUiyACE4DXm+q8HtPcnFTp+NnW3k4N05tZ7FVYFFb2CR13NxyHQ==";
+      };
+    };
+    "js-sha512-0.8.0" = {
+      name = "js-sha512";
+      packageName = "js-sha512";
+      version = "0.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz";
+        sha512 = "PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==";
+      };
+    };
+    "js-tokens-4.0.0" = {
+      name = "js-tokens";
+      packageName = "js-tokens";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz";
+        sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
+      };
+    };
+    "js-yaml-3.13.1" = {
+      name = "js-yaml";
+      packageName = "js-yaml";
+      version = "3.13.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz";
+        sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==";
+      };
+    };
+    "js-yaml-3.14.0" = {
+      name = "js-yaml";
+      packageName = "js-yaml";
+      version = "3.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz";
+        sha512 = "/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==";
+      };
+    };
+    "js2xmlparser-4.0.1" = {
+      name = "js2xmlparser";
+      packageName = "js2xmlparser";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js2xmlparser/-/js2xmlparser-4.0.1.tgz";
+        sha512 = "KrPTolcw6RocpYjdC7pL7v62e55q7qOMHvLX1UCLc5AAS8qeJ6nukarEJAF2KL2PZxlbGueEbINqZR2bDe/gUw==";
+      };
+    };
+    "jsbn-0.1.1" = {
+      name = "jsbn";
+      packageName = "jsbn";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz";
+        sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+      };
+    };
+    "jsdoc-3.6.5" = {
+      name = "jsdoc";
+      packageName = "jsdoc";
+      version = "3.6.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsdoc/-/jsdoc-3.6.5.tgz";
+        sha512 = "SbY+i9ONuxSK35cgVHaI8O9senTE4CDYAmGSDJ5l3+sfe62Ff4gy96osy6OW84t4K4A8iGnMrlRrsSItSNp3RQ==";
+      };
+    };
+    "jsdoc-api-6.0.0" = {
+      name = "jsdoc-api";
+      packageName = "jsdoc-api";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsdoc-api/-/jsdoc-api-6.0.0.tgz";
+        sha512 = "zvfB63nAc9e+Rv2kKmJfE6tmo4x8KFho5vKr6VfYTlCCgqtrfPv0McCdqT4betUT9rWtw0zGkNUVkVqeQipY6Q==";
+      };
+    };
+    "jsdoc-parse-5.0.0" = {
+      name = "jsdoc-parse";
+      packageName = "jsdoc-parse";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsdoc-parse/-/jsdoc-parse-5.0.0.tgz";
+        sha512 = "Khw8c3glrTeA3/PfUJUBvhrMhWpSClORBUvL4pvq2wFcqvUVmA96wxnMkCno2GfZY4pnd8BStK5WGKGyn4Vckg==";
+      };
+    };
+    "jsdoc-to-markdown-6.0.1" = {
+      name = "jsdoc-to-markdown";
+      packageName = "jsdoc-to-markdown";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsdoc-to-markdown/-/jsdoc-to-markdown-6.0.1.tgz";
+        sha512 = "hUI2PAR5n/KlmQU3mAWO9i3D7jVbhyvUHfQ6oYVBt+wnnsyxpsAuhCODY1ryLOb2U9OPJd4GIK9mL2hqy7fHDg==";
+      };
+    };
+    "jsdoctypeparser-9.0.0" = {
+      name = "jsdoctypeparser";
+      packageName = "jsdoctypeparser";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsdoctypeparser/-/jsdoctypeparser-9.0.0.tgz";
+        sha512 = "jrTA2jJIL6/DAEILBEh2/w9QxCuwmvNXIry39Ay/HVfhE3o2yVV0U44blYkqdHA/OKloJEqvJy0xU+GSdE2SIw==";
+      };
+    };
+    "jsesc-2.5.2" = {
+      name = "jsesc";
+      packageName = "jsesc";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz";
+        sha512 = "OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==";
+      };
+    };
+    "json-schema-0.2.3" = {
+      name = "json-schema";
+      packageName = "json-schema";
+      version = "0.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz";
+        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+      };
+    };
+    "json-schema-traverse-0.4.1" = {
+      name = "json-schema-traverse";
+      packageName = "json-schema-traverse";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+        sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
+      };
+    };
+    "json-stable-stringify-without-jsonify-1.0.1" = {
+      name = "json-stable-stringify-without-jsonify";
+      packageName = "json-stable-stringify-without-jsonify";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
+        sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
+      };
+    };
+    "json-stringify-safe-5.0.1" = {
+      name = "json-stringify-safe";
+      packageName = "json-stringify-safe";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+      };
+    };
+    "json5-2.1.3" = {
+      name = "json5";
+      packageName = "json5";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz";
+        sha512 = "KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==";
+      };
+    };
+    "jsonparse-1.3.1" = {
+      name = "jsonparse";
+      packageName = "jsonparse";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz";
+        sha1 = "3f4dae4a91fac315f71062f8521cc239f1366280";
+      };
+    };
+    "jsprim-1.4.1" = {
+      name = "jsprim";
+      packageName = "jsprim";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz";
+        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+      };
+    };
+    "junit-report-builder-2.1.0" = {
+      name = "junit-report-builder";
+      packageName = "junit-report-builder";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/junit-report-builder/-/junit-report-builder-2.1.0.tgz";
+        sha512 = "Ioj5I4w18ZcHFaaisqCKdh1z+ipzN7sA2JB+h+WOlGcOMWm0FFN1dfxkgc2I4EXfhSP/mOfM3W43uFzEdz4sTw==";
+      };
+    };
+    "just-extend-4.1.0" = {
+      name = "just-extend";
+      packageName = "just-extend";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/just-extend/-/just-extend-4.1.0.tgz";
+        sha512 = "ApcjaOdVTJ7y4r08xI5wIqpvwS48Q0PBG4DJROcEkH1f8MdAiNFyFxz3xoL0LWAVwjrwPYZdVHHxhRHcx/uGLA==";
+      };
+    };
+    "klaw-3.0.0" = {
+      name = "klaw";
+      packageName = "klaw";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/klaw/-/klaw-3.0.0.tgz";
+        sha512 = "0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g==";
+      };
+    };
+    "levn-0.4.1" = {
+      name = "levn";
+      packageName = "levn";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz";
+        sha512 = "+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==";
+      };
+    };
+    "linkify-it-2.2.0" = {
+      name = "linkify-it";
+      packageName = "linkify-it";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz";
+        sha512 = "GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==";
+      };
+    };
+    "liquid-json-0.3.1" = {
+      name = "liquid-json";
+      packageName = "liquid-json";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/liquid-json/-/liquid-json-0.3.1.tgz";
+        sha1 = "9155a18136d8a6b2615e5f16f9a2448ab6b50eea";
+      };
+    };
+    "locate-path-3.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz";
+        sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==";
+      };
+    };
+    "locate-path-5.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz";
+        sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==";
+      };
+    };
+    "locate-path-6.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz";
+        sha512 = "iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==";
+      };
+    };
+    "lodash-2.4.2" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-2.4.2.tgz";
+        sha1 = "fadd834b9683073da179b3eae6d9c0d15053f73e";
+      };
+    };
+    "lodash-3.10.1" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz";
+        sha1 = "5bf45e8e49ba4189e17d482789dfd15bd140b7b6";
+      };
+    };
+    "lodash-4.17.19" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "4.17.19";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz";
+        sha512 = "JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ==";
+      };
+    };
+    "lodash-4.17.20" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "4.17.20";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz";
+        sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==";
+      };
+    };
+    "lodash.camelcase-4.3.0" = {
+      name = "lodash.camelcase";
+      packageName = "lodash.camelcase";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz";
+        sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6";
+      };
+    };
+    "lodash.clonedeep-4.5.0" = {
+      name = "lodash.clonedeep";
+      packageName = "lodash.clonedeep";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
+        sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+      };
+    };
+    "lodash.escaperegexp-4.1.2" = {
+      name = "lodash.escaperegexp";
+      packageName = "lodash.escaperegexp";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz";
+        sha1 = "64762c48618082518ac3df4ccf5d5886dae20347";
+      };
+    };
+    "lodash.flattendeep-4.4.0" = {
+      name = "lodash.flattendeep";
+      packageName = "lodash.flattendeep";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz";
+        sha1 = "fb030917f86a3134e5bc9bec0d69e0013ddfedb2";
+      };
+    };
+    "lodash.get-4.4.2" = {
+      name = "lodash.get";
+      packageName = "lodash.get";
+      version = "4.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz";
+        sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99";
+      };
+    };
+    "lodash.isplainobject-4.0.6" = {
+      name = "lodash.isplainobject";
+      packageName = "lodash.isplainobject";
+      version = "4.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz";
+        sha1 = "7c526a52d89b45c45cc690b88163be0497f550cb";
+      };
+    };
+    "lodash.isstring-4.0.1" = {
+      name = "lodash.isstring";
+      packageName = "lodash.isstring";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz";
+        sha1 = "d527dfb5456eca7cc9bb95d5daeaf88ba54a5451";
+      };
+    };
+    "lodash.mergewith-4.6.2" = {
+      name = "lodash.mergewith";
+      packageName = "lodash.mergewith";
+      version = "4.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz";
+        sha512 = "GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ==";
+      };
+    };
+    "lodash.omit-4.5.0" = {
+      name = "lodash.omit";
+      packageName = "lodash.omit";
+      version = "4.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz";
+        sha1 = "6eb19ae5a1ee1dd9df0b969e66ce0b7fa30b5e60";
+      };
+    };
+    "lodash.padend-4.6.1" = {
+      name = "lodash.padend";
+      packageName = "lodash.padend";
+      version = "4.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz";
+        sha1 = "53ccba047d06e158d311f45da625f4e49e6f166e";
+      };
+    };
+    "lodash.pick-4.4.0" = {
+      name = "lodash.pick";
+      packageName = "lodash.pick";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz";
+        sha1 = "52f05610fff9ded422611441ed1fc123a03001b3";
+      };
+    };
+    "lodash.set-4.3.2" = {
+      name = "lodash.set";
+      packageName = "lodash.set";
+      version = "4.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz";
+        sha1 = "d8757b1da807dde24816b0d6a84bea1a76230b23";
+      };
+    };
+    "log-symbols-4.0.0" = {
+      name = "log-symbols";
+      packageName = "log-symbols";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz";
+        sha512 = "FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==";
+      };
+    };
+    "lru-cache-4.1.5" = {
+      name = "lru-cache";
+      packageName = "lru-cache";
+      version = "4.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz";
+        sha512 = "sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==";
+      };
+    };
+    "make-dir-1.3.0" = {
+      name = "make-dir";
+      packageName = "make-dir";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz";
+        sha512 = "2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==";
+      };
+    };
+    "make-dir-3.1.0" = {
+      name = "make-dir";
+      packageName = "make-dir";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz";
+        sha512 = "g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==";
+      };
+    };
+    "markdown-it-10.0.0" = {
+      name = "markdown-it";
+      packageName = "markdown-it";
+      version = "10.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz";
+        sha512 = "YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==";
+      };
+    };
+    "markdown-it-anchor-5.3.0" = {
+      name = "markdown-it-anchor";
+      packageName = "markdown-it-anchor";
+      version = "5.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-5.3.0.tgz";
+        sha512 = "/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==";
+      };
+    };
+    "marked-0.8.2" = {
+      name = "marked";
+      packageName = "marked";
+      version = "0.8.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/marked/-/marked-0.8.2.tgz";
+        sha512 = "EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==";
+      };
+    };
+    "marked-1.1.1" = {
+      name = "marked";
+      packageName = "marked";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/marked/-/marked-1.1.1.tgz";
+        sha512 = "mJzT8D2yPxoPh7h0UXkB+dBj4FykPJ2OIfxAWeIHrvoHDkFxukV/29QxoFQoPM6RLEwhIFdJpmKBlqVM3s2ZIw==";
+      };
+    };
+    "mdurl-1.0.1" = {
+      name = "mdurl";
+      packageName = "mdurl";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz";
+        sha1 = "fe85b2ec75a59037f2adfec100fd6c601761152e";
+      };
+    };
+    "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-format-2.0.0" = {
+      name = "mime-format";
+      packageName = "mime-format";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-format/-/mime-format-2.0.0.tgz";
+        sha1 = "e29f8891e284d78270246f0050d6834bdbbe1332";
+      };
+    };
+    "mime-types-2.1.27" = {
+      name = "mime-types";
+      packageName = "mime-types";
+      version = "2.1.27";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz";
+        sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
+      };
+    };
+    "minimatch-3.0.4" = {
+      name = "minimatch";
+      packageName = "minimatch";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+      };
+    };
+    "minimist-1.2.5" = {
+      name = "minimist";
+      packageName = "minimist";
+      version = "1.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
+        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+      };
+    };
+    "mkdirp-0.5.5" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "0.5.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz";
+        sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
+      };
+    };
+    "mkdirp-1.0.4" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz";
+        sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==";
+      };
+    };
+    "mkdirp2-1.0.4" = {
+      name = "mkdirp2";
+      packageName = "mkdirp2";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp2/-/mkdirp2-1.0.4.tgz";
+        sha512 = "Q2PKB4ZR4UPtjLl76JfzlgSCUZhSV1AXQgAZa1qt5RiaALFjP/CDrGvFBrOz7Ck6McPcwMAxTsJvWOUjOU8XMw==";
+      };
+    };
+    "mocha-8.1.3" = {
+      name = "mocha";
+      packageName = "mocha";
+      version = "8.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mocha/-/mocha-8.1.3.tgz";
+        sha512 = "ZbaYib4hT4PpF4bdSO2DohooKXIn4lDeiYqB+vTmCdr6l2woW0b6H3pf5x4sM5nwQMru9RvjjHYWVGltR50ZBw==";
+      };
+    };
+    "ms-2.1.2" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
+        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+      };
+    };
+    "natural-compare-1.4.0" = {
+      name = "natural-compare";
+      packageName = "natural-compare";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz";
+        sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
+      };
+    };
+    "neo-async-2.6.2" = {
+      name = "neo-async";
+      packageName = "neo-async";
+      version = "2.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz";
+        sha512 = "Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==";
+      };
+    };
+    "nise-4.0.4" = {
+      name = "nise";
+      packageName = "nise";
+      version = "4.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nise/-/nise-4.0.4.tgz";
+        sha512 = "bTTRUNlemx6deJa+ZyoCUTRvH3liK5+N6VQZ4NIw90AgDXY6iPnsqplNFf6STcj+ePk0H/xqxnP75Lr0J0Fq3A==";
+      };
+    };
+    "nock-13.0.4" = {
+      name = "nock";
+      packageName = "nock";
+      version = "13.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nock/-/nock-13.0.4.tgz";
+        sha512 = "alqTV8Qt7TUbc74x1pKRLSENzfjp4nywovcJgi/1aXDiUxXdt7TkruSTF5MDWPP7UoPVgea4F9ghVdmX0xxnSA==";
+      };
+    };
+    "node-oauth1-1.3.0" = {
+      name = "node-oauth1";
+      packageName = "node-oauth1";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-oauth1/-/node-oauth1-1.3.0.tgz";
+        sha512 = "0yggixNfrA1KcBwvh/Hy2xAS1Wfs9dcg6TdFf2zN7gilcAigMdrtZ4ybrBSXBgLvGDw9V1p2MRnGBMq7XjTWLg==";
+      };
+    };
+    "node-preload-0.2.1" = {
+      name = "node-preload";
+      packageName = "node-preload";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz";
+        sha512 = "RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ==";
+      };
+    };
+    "normalize-path-3.0.0" = {
+      name = "normalize-path";
+      packageName = "normalize-path";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz";
+        sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
+      };
+    };
+    "number-is-nan-1.0.1" = {
+      name = "number-is-nan";
+      packageName = "number-is-nan";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz";
+        sha1 = "097b602b53422a522c1afb8790318336941a011d";
+      };
+    };
+    "nyc-15.1.0" = {
+      name = "nyc";
+      packageName = "nyc";
+      version = "15.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz";
+        sha512 = "jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A==";
+      };
+    };
+    "oauth-sign-0.9.0" = {
+      name = "oauth-sign";
+      packageName = "oauth-sign";
+      version = "0.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz";
+        sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
+      };
+    };
+    "object-assign-4.1.1" = {
+      name = "object-assign";
+      packageName = "object-assign";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz";
+        sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+      };
+    };
+    "object-get-2.1.1" = {
+      name = "object-get";
+      packageName = "object-get";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-get/-/object-get-2.1.1.tgz";
+        sha512 = "7n4IpLMzGGcLEMiQKsNR7vCe+N5E9LORFrtNUVy4sO3dj9a3HedZCxEL2T7QuLhcHN1NBuBsMOKaOsAYI9IIvg==";
+      };
+    };
+    "object-hash-1.3.1" = {
+      name = "object-hash";
+      packageName = "object-hash";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz";
+        sha512 = "OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==";
+      };
+    };
+    "object-inspect-1.8.0" = {
+      name = "object-inspect";
+      packageName = "object-inspect";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz";
+        sha512 = "jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==";
+      };
+    };
+    "object-keys-1.1.1" = {
+      name = "object-keys";
+      packageName = "object-keys";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz";
+        sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==";
+      };
+    };
+    "object-to-spawn-args-2.0.0" = {
+      name = "object-to-spawn-args";
+      packageName = "object-to-spawn-args";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-to-spawn-args/-/object-to-spawn-args-2.0.0.tgz";
+        sha512 = "ZMT4owlXg3JGegecLlAgAA/6BsdKHn63R3ayXcAa3zFkF7oUBHcSb0oxszeutYe0FO2c1lT5pwCuidLkC4Gx3g==";
+      };
+    };
+    "object.assign-4.1.0" = {
+      name = "object.assign";
+      packageName = "object.assign";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz";
+        sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==";
+      };
+    };
+    "once-1.4.0" = {
+      name = "once";
+      packageName = "once";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
+        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+      };
+    };
+    "optionator-0.9.1" = {
+      name = "optionator";
+      packageName = "optionator";
+      version = "0.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz";
+        sha512 = "74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==";
+      };
+    };
+    "p-limit-2.3.0" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
+        sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
+      };
+    };
+    "p-limit-3.0.2" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-3.0.2.tgz";
+        sha512 = "iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg==";
+      };
+    };
+    "p-locate-3.0.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz";
+        sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==";
+      };
+    };
+    "p-locate-4.1.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz";
+        sha512 = "R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==";
+      };
+    };
+    "p-locate-5.0.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz";
+        sha512 = "LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==";
+      };
+    };
+    "p-map-3.0.0" = {
+      name = "p-map";
+      packageName = "p-map";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz";
+        sha512 = "d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==";
+      };
+    };
+    "p-try-2.2.0" = {
+      name = "p-try";
+      packageName = "p-try";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
+        sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
+      };
+    };
+    "package-hash-4.0.0" = {
+      name = "package-hash";
+      packageName = "package-hash";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz";
+        sha512 = "whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ==";
+      };
+    };
+    "packity-0.3.2" = {
+      name = "packity";
+      packageName = "packity";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/packity/-/packity-0.3.2.tgz";
+        sha1 = "20566861a3ef24428e6d505fc542df452e7e9303";
+      };
+    };
+    "parent-module-1.0.1" = {
+      name = "parent-module";
+      packageName = "parent-module";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz";
+        sha512 = "GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==";
+      };
+    };
+    "parse-gitignore-1.0.1" = {
+      name = "parse-gitignore";
+      packageName = "parse-gitignore";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-gitignore/-/parse-gitignore-1.0.1.tgz";
+        sha512 = "UGyowyjtx26n65kdAMWhm6/3uy5uSrpcuH7tt+QEVudiBoVS+eqHxD5kbi9oWVRwj7sCzXqwuM+rUGw7earl6A==";
+      };
+    };
+    "parse-ms-2.1.0" = {
+      name = "parse-ms";
+      packageName = "parse-ms";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-ms/-/parse-ms-2.1.0.tgz";
+        sha512 = "kHt7kzLoS9VBZfUsiKjv43mr91ea+U05EyKkEtqp7vNbHxmaVuEqN7XxeEVnGrMtYOAxGrDElSi96K7EgO1zCA==";
+      };
+    };
+    "path-exists-3.0.0" = {
+      name = "path-exists";
+      packageName = "path-exists";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz";
+        sha1 = "ce0ebeaa5f78cb18925ea7d810d7b59b010fd515";
+      };
+    };
+    "path-exists-4.0.0" = {
+      name = "path-exists";
+      packageName = "path-exists";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz";
+        sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==";
+      };
+    };
+    "path-is-absolute-1.0.1" = {
+      name = "path-is-absolute";
+      packageName = "path-is-absolute";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    };
+    "path-key-3.1.1" = {
+      name = "path-key";
+      packageName = "path-key";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz";
+        sha512 = "ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==";
+      };
+    };
+    "path-parse-1.0.6" = {
+      name = "path-parse";
+      packageName = "path-parse";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
+        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
+      };
+    };
+    "path-to-regexp-1.8.0" = {
+      name = "path-to-regexp";
+      packageName = "path-to-regexp";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz";
+        sha512 = "n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==";
+      };
+    };
+    "pathval-1.1.0" = {
+      name = "pathval";
+      packageName = "pathval";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz";
+        sha1 = "b942e6d4bde653005ef6b71361def8727d0645e0";
+      };
+    };
+    "performance-now-2.1.0" = {
+      name = "performance-now";
+      packageName = "performance-now";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz";
+        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+      };
+    };
+    "picomatch-2.2.2" = {
+      name = "picomatch";
+      packageName = "picomatch";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz";
+        sha512 = "q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==";
+      };
+    };
+    "pify-3.0.0" = {
+      name = "pify";
+      packageName = "pify";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz";
+        sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176";
+      };
+    };
+    "pkg-dir-4.2.0" = {
+      name = "pkg-dir";
+      packageName = "pkg-dir";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz";
+        sha512 = "HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==";
+      };
+    };
+    "postcss-7.0.32" = {
+      name = "postcss";
+      packageName = "postcss";
+      version = "7.0.32";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz";
+        sha512 = "03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==";
+      };
+    };
+    "postman-collection-3.6.6" = {
+      name = "postman-collection";
+      packageName = "postman-collection";
+      version = "3.6.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postman-collection/-/postman-collection-3.6.6.tgz";
+        sha512 = "fm9AGKHbL2coSzD5nw+F07JrX7jzqu2doGIXevPPrwlpTZyTM6yagEdENeO/Na8rSUrI1+tKPj+TgAFiLvtF4w==";
+      };
+    };
+    "postman-collection-transformer-3.3.3" = {
+      name = "postman-collection-transformer";
+      packageName = "postman-collection-transformer";
+      version = "3.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postman-collection-transformer/-/postman-collection-transformer-3.3.3.tgz";
+        sha512 = "Ra0hfljwB6xnGJ7a638K0TkXTf5BuwGNo1Ahpa9ECehOTOlUFisE8dqX5VZl04QGbpvN5nmr0rwrtLXtK53Abg==";
+      };
+    };
+    "postman-jsdoc-theme-0.0.3" = {
+      name = "postman-jsdoc-theme";
+      packageName = "postman-jsdoc-theme";
+      version = "0.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postman-jsdoc-theme/-/postman-jsdoc-theme-0.0.3.tgz";
+        sha1 = "60e4fbf3b2175f772520b3c978c07a8bd32b5829";
+      };
+    };
+    "postman-request-2.88.1-postman.24" = {
+      name = "postman-request";
+      packageName = "postman-request";
+      version = "2.88.1-postman.24";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postman-request/-/postman-request-2.88.1-postman.24.tgz";
+        sha512 = "afW2QxA9YCSaMUBFGRWvxnyjN4SqgXC5HqKJ0DFNfbx4ZW6AsBCFXeb5NAFgCH3kZ/og0XhUSDV+imjWwahLLg==";
+      };
+    };
+    "postman-runtime-7.26.5" = {
+      name = "postman-runtime";
+      packageName = "postman-runtime";
+      version = "7.26.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postman-runtime/-/postman-runtime-7.26.5.tgz";
+        sha512 = "5sY4iWjG4GeGQ5o4QAJkAt79jmcZhOrs3XSbtCLrs4NqoZpTBx5WDQr6h1Dy4Y8Q0X/9NMCYqF/c5pnsqUyDCQ==";
+      };
+    };
+    "postman-sandbox-3.5.9" = {
+      name = "postman-sandbox";
+      packageName = "postman-sandbox";
+      version = "3.5.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postman-sandbox/-/postman-sandbox-3.5.9.tgz";
+        sha512 = "B9mREFulQuYOa9+B7rklb94d9iZ6EYyhsUvdIfxphGUByimb6mOhumWV0sGbrtxVTsCAtTpN/68Shm7NCjrZ0A==";
+      };
+    };
+    "postman-url-encoder-2.1.3" = {
+      name = "postman-url-encoder";
+      packageName = "postman-url-encoder";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postman-url-encoder/-/postman-url-encoder-2.1.3.tgz";
+        sha512 = "CwQjnoxaugCGeOyzVeZ4k1cNQ6iS8OBCzuWzcf4kLStKeRp0MwmLKYv25frynmDpugUUimq/d+FZCq6GtIX9Ag==";
+      };
+    };
+    "prelude-ls-1.2.1" = {
+      name = "prelude-ls";
+      packageName = "prelude-ls";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz";
+        sha512 = "vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==";
+      };
+    };
+    "pretty-ms-7.0.0" = {
+      name = "pretty-ms";
+      packageName = "pretty-ms";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pretty-ms/-/pretty-ms-7.0.0.tgz";
+        sha512 = "J3aPWiC5e9ZeZFuSeBraGxSkGMOvulSWsxDByOcbD1Pr75YL3LSNIKIb52WXbCLE1sS5s4inBBbryjF4Y05Ceg==";
+      };
+    };
+    "process-nextick-args-2.0.1" = {
+      name = "process-nextick-args";
+      packageName = "process-nextick-args";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+        sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
+      };
+    };
+    "process-on-spawn-1.0.0" = {
+      name = "process-on-spawn";
+      packageName = "process-on-spawn";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz";
+        sha512 = "1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==";
+      };
+    };
+    "progress-2.0.3" = {
+      name = "progress";
+      packageName = "progress";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz";
+        sha512 = "7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==";
+      };
+    };
+    "promise.allsettled-1.0.2" = {
+      name = "promise.allsettled";
+      packageName = "promise.allsettled";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/promise.allsettled/-/promise.allsettled-1.0.2.tgz";
+        sha512 = "UpcYW5S1RaNKT6pd+s9jp9K9rlQge1UXKskec0j6Mmuq7UJCvlS2J2/s/yuPN8ehftf9HXMxWlKiPbGGUzpoRg==";
+      };
+    };
+    "propagate-2.0.1" = {
+      name = "propagate";
+      packageName = "propagate";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz";
+        sha512 = "vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag==";
+      };
+    };
+    "pseudomap-1.0.2" = {
+      name = "pseudomap";
+      packageName = "pseudomap";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz";
+        sha1 = "f052a28da70e618917ef0a8ac34c1ae5a68286b3";
+      };
+    };
+    "psl-1.8.0" = {
+      name = "psl";
+      packageName = "psl";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz";
+        sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
+      };
+    };
+    "pump-1.0.3" = {
+      name = "pump";
+      packageName = "pump";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pump/-/pump-1.0.3.tgz";
+        sha512 = "8k0JupWme55+9tCVE+FS5ULT3K6AbgqrGa58lTT49RpyfwwcGedHqaC5LlQNdEAumn/wFsu6aPwkuPMioy8kqw==";
+      };
+    };
+    "punycode-2.1.1" = {
+      name = "punycode";
+      packageName = "punycode";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
+        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
+      };
+    };
+    "q-1.0.1" = {
+      name = "q";
+      packageName = "q";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/q/-/q-1.0.1.tgz";
+        sha1 = "11872aeedee89268110b10a718448ffb10112a14";
+      };
+    };
+    "qs-6.5.2" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
+        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
+      };
+    };
+    "ramda-0.27.1" = {
+      name = "ramda";
+      packageName = "ramda";
+      version = "0.27.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ramda/-/ramda-0.27.1.tgz";
+        sha512 = "PgIdVpn5y5Yns8vqb8FzBUEYn98V3xcPgawAkkgj0YJ0qDsnHCiNmZYfOGMgOvoB0eWFLpYbhxUR3mxfDIMvpw==";
+      };
+    };
+    "randombytes-2.1.0" = {
+      name = "randombytes";
+      packageName = "randombytes";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz";
+        sha512 = "vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==";
+      };
+    };
+    "readable-stream-1.0.34" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "1.0.34";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz";
+        sha1 = "125820e34bc842d2f2aaafafe4c2916ee32c157c";
+      };
+    };
+    "readable-stream-2.3.7" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "2.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
+        sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
+      };
+    };
+    "readable-stream-3.6.0" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
+        sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
+      };
+    };
+    "readdir-0.0.13" = {
+      name = "readdir";
+      packageName = "readdir";
+      version = "0.0.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readdir/-/readdir-0.0.13.tgz";
+        sha1 = "4dd002d3f30dc11afe3bb177ad8e99094f7f62dd";
+      };
+    };
+    "readdirp-3.4.0" = {
+      name = "readdirp";
+      packageName = "readdirp";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz";
+        sha512 = "0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==";
+      };
+    };
+    "rechoir-0.6.2" = {
+      name = "rechoir";
+      packageName = "rechoir";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz";
+        sha1 = "85204b54dba82d5742e28c96756ef43af50e3384";
+      };
+    };
+    "recursive-readdir-2.2.2" = {
+      name = "recursive-readdir";
+      packageName = "recursive-readdir";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/recursive-readdir/-/recursive-readdir-2.2.2.tgz";
+        sha512 = "nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg==";
+      };
+    };
+    "reduce-extract-1.0.0" = {
+      name = "reduce-extract";
+      packageName = "reduce-extract";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reduce-extract/-/reduce-extract-1.0.0.tgz";
+        sha1 = "67f2385beda65061b5f5f4312662e8b080ca1525";
+      };
+    };
+    "reduce-flatten-1.0.1" = {
+      name = "reduce-flatten";
+      packageName = "reduce-flatten";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz";
+        sha1 = "258c78efd153ddf93cb561237f61184f3696e327";
+      };
+    };
+    "reduce-flatten-3.0.0" = {
+      name = "reduce-flatten";
+      packageName = "reduce-flatten";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-3.0.0.tgz";
+        sha512 = "eczl8wAYBxJ6Egl6I1ECIF+8z6sHu+KE7BzaEDZTpPXKXfy9SUDQlVYwkRcNTjJLC3Iakxbhss50KuT/R6SYfg==";
+      };
+    };
+    "reduce-unique-2.0.1" = {
+      name = "reduce-unique";
+      packageName = "reduce-unique";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reduce-unique/-/reduce-unique-2.0.1.tgz";
+        sha512 = "x4jH/8L1eyZGR785WY+ePtyMNhycl1N2XOLxhCbzZFaqF4AXjLzqSxa2UHgJ2ZVR/HHyPOvl1L7xRnW8ye5MdA==";
+      };
+    };
+    "reduce-without-1.0.1" = {
+      name = "reduce-without";
+      packageName = "reduce-without";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reduce-without/-/reduce-without-1.0.1.tgz";
+        sha1 = "68ad0ead11855c9a37d4e8256c15bbf87972fc8c";
+      };
+    };
+    "regexpp-3.1.0" = {
+      name = "regexpp";
+      packageName = "regexpp";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz";
+        sha512 = "ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==";
+      };
+    };
+    "regextras-0.7.1" = {
+      name = "regextras";
+      packageName = "regextras";
+      version = "0.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regextras/-/regextras-0.7.1.tgz";
+        sha512 = "9YXf6xtW+qzQ+hcMQXx95MOvfqXFgsKDZodX3qZB0x2n5Z94ioetIITsBtvJbiOyxa/6s9AtyweBLCdPmPko/w==";
+      };
+    };
+    "release-zalgo-1.0.0" = {
+      name = "release-zalgo";
+      packageName = "release-zalgo";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz";
+        sha1 = "09700b7e5074329739330e535c5a90fb67851730";
+      };
+    };
+    "require-directory-2.1.1" = {
+      name = "require-directory";
+      packageName = "require-directory";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz";
+        sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+      };
+    };
+    "require-main-filename-2.0.0" = {
+      name = "require-main-filename";
+      packageName = "require-main-filename";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz";
+        sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
+      };
+    };
+    "requizzle-0.2.3" = {
+      name = "requizzle";
+      packageName = "requizzle";
+      version = "0.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/requizzle/-/requizzle-0.2.3.tgz";
+        sha512 = "YanoyJjykPxGHii0fZP0uUPEXpvqfBDxWV7s6GKAiiOsiqhX6vHNyW3Qzdmqp/iq/ExbhaGbVrjB4ruEVSM4GQ==";
+      };
+    };
+    "resolve-1.17.0" = {
+      name = "resolve";
+      packageName = "resolve";
+      version = "1.17.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz";
+        sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==";
+      };
+    };
+    "resolve-from-4.0.0" = {
+      name = "resolve-from";
+      packageName = "resolve-from";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz";
+        sha512 = "pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==";
+      };
+    };
+    "resolve-from-5.0.0" = {
+      name = "resolve-from";
+      packageName = "resolve-from";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz";
+        sha512 = "qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==";
+      };
+    };
+    "ret-0.1.15" = {
+      name = "ret";
+      packageName = "ret";
+      version = "0.1.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz";
+        sha512 = "TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==";
+      };
+    };
+    "rimraf-2.6.3" = {
+      name = "rimraf";
+      packageName = "rimraf";
+      version = "2.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz";
+        sha512 = "mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==";
+      };
+    };
+    "rimraf-3.0.2" = {
+      name = "rimraf";
+      packageName = "rimraf";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz";
+        sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
+      };
+    };
+    "safe-buffer-5.1.2" = {
+      name = "safe-buffer";
+      packageName = "safe-buffer";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
+        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+      };
+    };
+    "safe-buffer-5.2.1" = {
+      name = "safe-buffer";
+      packageName = "safe-buffer";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
+        sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
+      };
+    };
+    "safe-regex-1.1.0" = {
+      name = "safe-regex";
+      packageName = "safe-regex";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz";
+        sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+      };
+    };
+    "safer-buffer-2.1.2" = {
+      name = "safer-buffer";
+      packageName = "safer-buffer";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
+        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+      };
+    };
+    "sanitize-html-1.20.1" = {
+      name = "sanitize-html";
+      packageName = "sanitize-html";
+      version = "1.20.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.20.1.tgz";
+        sha512 = "txnH8TQjaQvg2Q0HY06G6CDJLVYCpbnxrdO0WN8gjCKaU5J0KbyGYhZxx5QJg3WLZ1lB7XU9kDkfrCXUozqptA==";
+      };
+    };
+    "sax-1.2.4" = {
+      name = "sax";
+      packageName = "sax";
+      version = "1.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz";
+        sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==";
+      };
+    };
+    "semver-5.7.1" = {
+      name = "semver";
+      packageName = "semver";
+      version = "5.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
+        sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
+      };
+    };
+    "semver-6.3.0" = {
+      name = "semver";
+      packageName = "semver";
+      version = "6.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz";
+        sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
+      };
+    };
+    "semver-7.3.2" = {
+      name = "semver";
+      packageName = "semver";
+      version = "7.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz";
+        sha512 = "OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==";
+      };
+    };
+    "serialised-error-1.1.3" = {
+      name = "serialised-error";
+      packageName = "serialised-error";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialised-error/-/serialised-error-1.1.3.tgz";
+        sha512 = "vybp3GItaR1ZtO2nxZZo8eOo7fnVaNtP3XE2vJKgzkKR2bagCkdJ1EpYYhEMd3qu/80DwQk9KjsNSxE3fXWq0g==";
+      };
+    };
+    "serialize-javascript-4.0.0" = {
+      name = "serialize-javascript";
+      packageName = "serialize-javascript";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz";
+        sha512 = "GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==";
+      };
+    };
+    "server-destroy-1.0.1" = {
+      name = "server-destroy";
+      packageName = "server-destroy";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz";
+        sha1 = "f13bf928e42b9c3e79383e61cc3998b5d14e6cdd";
+      };
+    };
+    "set-blocking-2.0.0" = {
+      name = "set-blocking";
+      packageName = "set-blocking";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
+        sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+      };
+    };
+    "shebang-command-2.0.0" = {
+      name = "shebang-command";
+      packageName = "shebang-command";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz";
+        sha512 = "kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==";
+      };
+    };
+    "shebang-regex-3.0.0" = {
+      name = "shebang-regex";
+      packageName = "shebang-regex";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz";
+        sha512 = "7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==";
+      };
+    };
+    "shelljs-0.8.4" = {
+      name = "shelljs";
+      packageName = "shelljs";
+      version = "0.8.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz";
+        sha512 = "7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==";
+      };
+    };
+    "sigmund-1.0.1" = {
+      name = "sigmund";
+      packageName = "sigmund";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz";
+        sha1 = "3ff21f198cad2175f9f3b781853fd94d0d19b590";
+      };
+    };
+    "signal-exit-3.0.3" = {
+      name = "signal-exit";
+      packageName = "signal-exit";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz";
+        sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==";
+      };
+    };
+    "sinon-9.0.3" = {
+      name = "sinon";
+      packageName = "sinon";
+      version = "9.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sinon/-/sinon-9.0.3.tgz";
+        sha512 = "IKo9MIM111+smz9JGwLmw5U1075n1YXeAq8YeSFlndCLhAL5KGn6bLgu7b/4AYHTV/LcEMcRm2wU2YiL55/6Pg==";
+      };
+    };
+    "slice-ansi-2.1.0" = {
+      name = "slice-ansi";
+      packageName = "slice-ansi";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz";
+        sha512 = "Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==";
+      };
+    };
+    "sort-array-4.1.2" = {
+      name = "sort-array";
+      packageName = "sort-array";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sort-array/-/sort-array-4.1.2.tgz";
+        sha512 = "G5IUpM+OcVnyaWHMv84Y/RQYiFQoSu6eUtJZu840iM6nR7zeY/eOGny2epkr5VKqCGDkOj3UBzOluDZ7hFpljA==";
+      };
+    };
+    "source-map-0.5.7" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.5.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz";
+        sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+      };
+    };
+    "source-map-0.6.1" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
+        sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
+      };
+    };
+    "spawn-wrap-2.0.0" = {
+      name = "spawn-wrap";
+      packageName = "spawn-wrap";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz";
+        sha512 = "EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg==";
+      };
+    };
+    "spdx-exceptions-2.3.0" = {
+      name = "spdx-exceptions";
+      packageName = "spdx-exceptions";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz";
+        sha512 = "/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==";
+      };
+    };
+    "spdx-expression-parse-3.0.1" = {
+      name = "spdx-expression-parse";
+      packageName = "spdx-expression-parse";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz";
+        sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==";
+      };
+    };
+    "spdx-license-ids-3.0.5" = {
+      name = "spdx-license-ids";
+      packageName = "spdx-license-ids";
+      version = "3.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz";
+        sha512 = "J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==";
+      };
+    };
+    "split-ca-1.0.1" = {
+      name = "split-ca";
+      packageName = "split-ca";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split-ca/-/split-ca-1.0.1.tgz";
+        sha1 = "6c83aff3692fa61256e0cd197e05e9de157691a6";
+      };
+    };
+    "sprintf-js-1.0.3" = {
+      name = "sprintf-js";
+      packageName = "sprintf-js";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz";
+        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+      };
+    };
+    "srcset-1.0.0" = {
+      name = "srcset";
+      packageName = "srcset";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/srcset/-/srcset-1.0.0.tgz";
+        sha1 = "a5669de12b42f3b1d5e83ed03c71046fc48f41ef";
+      };
+    };
+    "sshpk-1.16.1" = {
+      name = "sshpk";
+      packageName = "sshpk";
+      version = "1.16.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz";
+        sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==";
+      };
+    };
+    "stack-trace-0.0.10" = {
+      name = "stack-trace";
+      packageName = "stack-trace";
+      version = "0.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz";
+        sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0";
+      };
+    };
+    "stack-trace-0.0.9" = {
+      name = "stack-trace";
+      packageName = "stack-trace";
+      version = "0.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.9.tgz";
+        sha1 = "a8f6eaeca90674c333e7c43953f275b451510695";
+      };
+    };
+    "stream-connect-1.0.2" = {
+      name = "stream-connect";
+      packageName = "stream-connect";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-connect/-/stream-connect-1.0.2.tgz";
+        sha1 = "18bc81f2edb35b8b5d9a8009200a985314428a97";
+      };
+    };
+    "stream-length-1.0.2" = {
+      name = "stream-length";
+      packageName = "stream-length";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-length/-/stream-length-1.0.2.tgz";
+        sha1 = "8277f3cbee49a4daabcfdb4e2f4a9b5e9f2c9f00";
+      };
+    };
+    "stream-via-1.0.4" = {
+      name = "stream-via";
+      packageName = "stream-via";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-via/-/stream-via-1.0.4.tgz";
+        sha512 = "DBp0lSvX5G9KGRDTkR/R+a29H+Wk2xItOF+MpZLLNDWbEV9tGPnqLPxHEYjmiz8xGtJHRIqmI+hCjmNzqoA4nQ==";
+      };
+    };
+    "strftime-0.10.0" = {
+      name = "strftime";
+      packageName = "strftime";
+      version = "0.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strftime/-/strftime-0.10.0.tgz";
+        sha1 = "b3f0fa419295202a5a289f6d6be9f4909a617193";
+      };
+    };
+    "string-width-2.1.1" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz";
+        sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==";
+      };
+    };
+    "string-width-3.1.0" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz";
+        sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
+      };
+    };
+    "string-width-4.2.0" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz";
+        sha512 = "zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==";
+      };
+    };
+    "string.prototype.trimend-1.0.1" = {
+      name = "string.prototype.trimend";
+      packageName = "string.prototype.trimend";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz";
+        sha512 = "LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==";
+      };
+    };
+    "string.prototype.trimstart-1.0.1" = {
+      name = "string.prototype.trimstart";
+      packageName = "string.prototype.trimstart";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz";
+        sha512 = "XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==";
+      };
+    };
+    "string_decoder-0.10.31" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "0.10.31";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
+        sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+      };
+    };
+    "string_decoder-1.1.1" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
+        sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
+      };
+    };
+    "string_decoder-1.3.0" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz";
+        sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==";
+      };
+    };
+    "strip-ansi-3.0.1" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
+        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+      };
+    };
+    "strip-ansi-4.0.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz";
+        sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+      };
+    };
+    "strip-ansi-5.2.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz";
+        sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
+      };
+    };
+    "strip-ansi-6.0.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz";
+        sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
+      };
+    };
+    "strip-bom-4.0.0" = {
+      name = "strip-bom";
+      packageName = "strip-bom";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz";
+        sha512 = "3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==";
+      };
+    };
+    "strip-json-comments-3.0.1" = {
+      name = "strip-json-comments";
+      packageName = "strip-json-comments";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.0.1.tgz";
+        sha512 = "VTyMAUfdm047mwKl+u79WIdrZxtFtn+nBxHeb844XBQ9uMNTuTHdx2hc5RiAJYqwTj3wc/xe5HLSdJSkJ+WfZw==";
+      };
+    };
+    "strip-json-comments-3.1.1" = {
+      name = "strip-json-comments";
+      packageName = "strip-json-comments";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+        sha512 = "6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==";
+      };
+    };
+    "supports-color-2.0.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz";
+        sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+      };
+    };
+    "supports-color-5.5.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "5.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
+        sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
+      };
+    };
+    "supports-color-6.1.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz";
+        sha512 = "qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==";
+      };
+    };
+    "supports-color-7.1.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "7.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz";
+        sha512 = "oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==";
+      };
+    };
+    "supports-color-7.2.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
+        sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
+      };
+    };
+    "symbol-0.3.1" = {
+      name = "symbol";
+      packageName = "symbol";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/symbol/-/symbol-0.3.1.tgz";
+        sha1 = "b6f9a900d496a57f02408f22198c109dda063041";
+      };
+    };
+    "table-5.4.6" = {
+      name = "table";
+      packageName = "table";
+      version = "5.4.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/table/-/table-5.4.6.tgz";
+        sha512 = "wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==";
+      };
+    };
+    "table-layout-0.4.5" = {
+      name = "table-layout";
+      packageName = "table-layout";
+      version = "0.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz";
+        sha512 = "zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==";
+      };
+    };
+    "taffydb-2.6.2" = {
+      name = "taffydb";
+      packageName = "taffydb";
+      version = "2.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz";
+        sha1 = "7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268";
+      };
+    };
+    "tar-fs-1.16.3" = {
+      name = "tar-fs";
+      packageName = "tar-fs";
+      version = "1.16.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.3.tgz";
+        sha512 = "NvCeXpYx7OsmOh8zIOP/ebG55zZmxLE0etfWRbWok+q2Qo8x/vOR/IJT1taADXPe+jsiu9axDb3X4B+iIgNlKw==";
+      };
+    };
+    "tar-stream-1.6.2" = {
+      name = "tar-stream";
+      packageName = "tar-stream";
+      version = "1.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz";
+        sha512 = "rzS0heiNf8Xn7/mpdSVVSMAWAoy9bfb1WOTYC78Z0UQKeKa/CWS8FOq0lKGNa8DWKAn9gxjCvMLYc5PGXYlK2A==";
+      };
+    };
+    "teleport-javascript-1.0.0" = {
+      name = "teleport-javascript";
+      packageName = "teleport-javascript";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/teleport-javascript/-/teleport-javascript-1.0.0.tgz";
+        sha512 = "j1llvWVFyEn/6XIFDfX5LAU43DXe0GCt3NfXDwJ8XpRRMkS+i50SAkonAONBy+vxwPFBd50MFU8a2uj8R/ccLg==";
+      };
+    };
+    "temp-path-1.0.0" = {
+      name = "temp-path";
+      packageName = "temp-path";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/temp-path/-/temp-path-1.0.0.tgz";
+        sha1 = "24b1543973ab442896d9ad367dd9cbdbfafe918b";
+      };
+    };
+    "test-exclude-6.0.0" = {
+      name = "test-exclude";
+      packageName = "test-exclude";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz";
+        sha512 = "cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==";
+      };
+    };
+    "test-value-1.1.0" = {
+      name = "test-value";
+      packageName = "test-value";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/test-value/-/test-value-1.1.0.tgz";
+        sha1 = "a09136f72ec043d27c893707c2b159bfad7de93f";
+      };
+    };
+    "test-value-2.1.0" = {
+      name = "test-value";
+      packageName = "test-value";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz";
+        sha1 = "11da6ff670f3471a73b625ca4f3fdcf7bb748291";
+      };
+    };
+    "test-value-3.0.0" = {
+      name = "test-value";
+      packageName = "test-value";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/test-value/-/test-value-3.0.0.tgz";
+        sha512 = "sVACdAWcZkSU9x7AOmJo5TqE+GyNJknHaHsMrR6ZnhjVlVN9Yx6FjHrsKZ3BjIpPCT68zYesPWkakrNupwfOTQ==";
+      };
+    };
+    "text-table-0.2.0" = {
+      name = "text-table";
+      packageName = "text-table";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz";
+        sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
+      };
+    };
+    "through-2.3.8" = {
+      name = "through";
+      packageName = "through";
+      version = "2.3.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
+        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+      };
+    };
+    "to-buffer-1.1.1" = {
+      name = "to-buffer";
+      packageName = "to-buffer";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-buffer/-/to-buffer-1.1.1.tgz";
+        sha512 = "lx9B5iv7msuFYE3dytT+KE5tap+rNYw+K4jVkb9R/asAb+pbBSM17jtunHplhBe6RRJdZx3Pn2Jph24O32mOVg==";
+      };
+    };
+    "to-fast-properties-2.0.0" = {
+      name = "to-fast-properties";
+      packageName = "to-fast-properties";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+        sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+      };
+    };
+    "to-regex-range-5.0.1" = {
+      name = "to-regex-range";
+      packageName = "to-regex-range";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz";
+        sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==";
+      };
+    };
+    "tough-cookie-2.5.0" = {
+      name = "tough-cookie";
+      packageName = "tough-cookie";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz";
+        sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==";
+      };
+    };
+    "tough-cookie-3.0.1" = {
+      name = "tough-cookie";
+      packageName = "tough-cookie";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz";
+        sha512 = "yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==";
+      };
+    };
+    "tweetnacl-0.14.5" = {
+      name = "tweetnacl";
+      packageName = "tweetnacl";
+      version = "0.14.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz";
+        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+      };
+    };
+    "type-check-0.4.0" = {
+      name = "type-check";
+      packageName = "type-check";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz";
+        sha512 = "XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==";
+      };
+    };
+    "type-detect-4.0.8" = {
+      name = "type-detect";
+      packageName = "type-detect";
+      version = "4.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz";
+        sha512 = "0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==";
+      };
+    };
+    "type-fest-0.8.1" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz";
+        sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==";
+      };
+    };
+    "typedarray-0.0.6" = {
+      name = "typedarray";
+      packageName = "typedarray";
+      version = "0.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz";
+        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+      };
+    };
+    "typedarray-to-buffer-3.1.5" = {
+      name = "typedarray-to-buffer";
+      packageName = "typedarray-to-buffer";
+      version = "3.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
+        sha512 = "zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==";
+      };
+    };
+    "typical-2.6.1" = {
+      name = "typical";
+      packageName = "typical";
+      version = "2.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz";
+        sha1 = "5c080e5d661cbbe38259d2e70a3c7253e873881d";
+      };
+    };
+    "typical-4.0.0" = {
+      name = "typical";
+      packageName = "typical";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz";
+        sha512 = "VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==";
+      };
+    };
+    "typical-6.0.1" = {
+      name = "typical";
+      packageName = "typical";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typical/-/typical-6.0.1.tgz";
+        sha512 = "+g3NEp7fJLe9DPa1TArHm9QAA7YciZmWnfAqEaFrBihQ7epOv9i99rjtgb6Iz0wh3WuQDjsCTDfgRoGnmHN81A==";
+      };
+    };
+    "uc.micro-1.0.6" = {
+      name = "uc.micro";
+      packageName = "uc.micro";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz";
+        sha512 = "8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==";
+      };
+    };
+    "uglify-js-3.10.4" = {
+      name = "uglify-js";
+      packageName = "uglify-js";
+      version = "3.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.4.tgz";
+        sha512 = "kBFT3U4Dcj4/pJ52vfjCSfyLyvG9VYYuGYPmrPvAxRw/i7xHiT4VvCev+uiEMcEEiu6UNB6KgWmGtSUYIWScbw==";
+      };
+    };
+    "underscore-1.10.2" = {
+      name = "underscore";
+      packageName = "underscore";
+      version = "1.10.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/underscore/-/underscore-1.10.2.tgz";
+        sha512 = "N4P+Q/BuyuEKFJ43B9gYuOj4TQUHXX+j2FqguVOpjkssLUUrnJofCcBccJSCoeturDoZU6GorDTHSvUDlSQbTg==";
+      };
+    };
+    "underscore-1.7.0" = {
+      name = "underscore";
+      packageName = "underscore";
+      version = "1.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/underscore/-/underscore-1.7.0.tgz";
+        sha1 = "6bbaf0877500d36be34ecaa584e0db9fef035209";
+      };
+    };
+    "uri-js-4.4.0" = {
+      name = "uri-js";
+      packageName = "uri-js";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz";
+        sha512 = "B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==";
+      };
+    };
+    "utcstring-0.1.0" = {
+      name = "utcstring";
+      packageName = "utcstring";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/utcstring/-/utcstring-0.1.0.tgz";
+        sha1 = "430fd510ab7fc95b5d5910c902d79880c208436b";
+      };
+    };
+    "util-deprecate-1.0.2" = {
+      name = "util-deprecate";
+      packageName = "util-deprecate";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    };
+    "uuid-3.3.2" = {
+      name = "uuid";
+      packageName = "uuid";
+      version = "3.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz";
+        sha512 = "yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA==";
+      };
+    };
+    "uuid-3.4.0" = {
+      name = "uuid";
+      packageName = "uuid";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
+        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
+      };
+    };
+    "uvm-1.7.9" = {
+      name = "uvm";
+      packageName = "uvm";
+      version = "1.7.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uvm/-/uvm-1.7.9.tgz";
+        sha512 = "Z3Uf7Jm8Cpvxf8FMjE7cFBaXsXzKu2n3kFqV23pQNLg8rrZqi6fmLFnLCn5EhiEC94XdcQCCNjrGeOnFdy1xsA==";
+      };
+    };
+    "v8-compile-cache-2.1.1" = {
+      name = "v8-compile-cache";
+      packageName = "v8-compile-cache";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz";
+        sha512 = "8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==";
+      };
+    };
+    "verror-1.10.0" = {
+      name = "verror";
+      packageName = "verror";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz";
+        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+      };
+    };
+    "walk-back-2.0.1" = {
+      name = "walk-back";
+      packageName = "walk-back";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/walk-back/-/walk-back-2.0.1.tgz";
+        sha1 = "554e2a9d874fac47a8cb006bf44c2f0c4998a0a4";
+      };
+    };
+    "walk-back-4.0.0" = {
+      name = "walk-back";
+      packageName = "walk-back";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/walk-back/-/walk-back-4.0.0.tgz";
+        sha512 = "kudCA8PXVQfrqv2mFTG72vDBRi8BKWxGgFLwPpzHcpZnSwZk93WMwUDVcLHWNsnm+Y0AC4Vb6MUNRgaHfyV2DQ==";
+      };
+    };
+    "which-2.0.2" = {
+      name = "which";
+      packageName = "which";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which/-/which-2.0.2.tgz";
+        sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==";
+      };
+    };
+    "which-module-2.0.0" = {
+      name = "which-module";
+      packageName = "which-module";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz";
+        sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+      };
+    };
+    "wide-align-1.1.3" = {
+      name = "wide-align";
+      packageName = "wide-align";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
+        sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
+      };
+    };
+    "winston-2.4.5" = {
+      name = "winston";
+      packageName = "winston";
+      version = "2.4.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston/-/winston-2.4.5.tgz";
+        sha512 = "TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==";
+      };
+    };
+    "word-wrap-1.2.3" = {
+      name = "word-wrap";
+      packageName = "word-wrap";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz";
+        sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==";
+      };
+    };
+    "wordwrap-1.0.0" = {
+      name = "wordwrap";
+      packageName = "wordwrap";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz";
+        sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
+      };
+    };
+    "wordwrapjs-3.0.0" = {
+      name = "wordwrapjs";
+      packageName = "wordwrapjs";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz";
+        sha512 = "mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==";
+      };
+    };
+    "workerpool-6.0.0" = {
+      name = "workerpool";
+      packageName = "workerpool";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/workerpool/-/workerpool-6.0.0.tgz";
+        sha512 = "fU2OcNA/GVAJLLyKUoHkAgIhKb0JoCpSjLC/G2vYKxUjVmQwGbRVeoPJ1a8U4pnVofz4AQV5Y/NEw8oKqxEBtA==";
+      };
+    };
+    "wrap-ansi-5.1.0" = {
+      name = "wrap-ansi";
+      packageName = "wrap-ansi";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
+        sha512 = "QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==";
+      };
+    };
+    "wrap-ansi-6.2.0" = {
+      name = "wrap-ansi";
+      packageName = "wrap-ansi";
+      version = "6.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz";
+        sha512 = "r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==";
+      };
+    };
+    "wrappy-1.0.2" = {
+      name = "wrappy";
+      packageName = "wrappy";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
+        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+      };
+    };
+    "write-1.0.3" = {
+      name = "write";
+      packageName = "write";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/write/-/write-1.0.3.tgz";
+        sha512 = "/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==";
+      };
+    };
+    "write-file-atomic-3.0.3" = {
+      name = "write-file-atomic";
+      packageName = "write-file-atomic";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz";
+        sha512 = "AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==";
+      };
+    };
+    "xml2js-0.4.23" = {
+      name = "xml2js";
+      packageName = "xml2js";
+      version = "0.4.23";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz";
+        sha512 = "ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==";
+      };
+    };
+    "xmlbuilder-10.1.1" = {
+      name = "xmlbuilder";
+      packageName = "xmlbuilder";
+      version = "10.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-10.1.1.tgz";
+        sha512 = "OyzrcFLL/nb6fMGHbiRDuPup9ljBycsdCypwuyg5AAHvyWzGfChJpCXMG88AGTIMFhGZ9RccFN1e6lhg3hkwKg==";
+      };
+    };
+    "xmlbuilder-11.0.1" = {
+      name = "xmlbuilder";
+      packageName = "xmlbuilder";
+      version = "11.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz";
+        sha512 = "fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==";
+      };
+    };
+    "xmlbuilder-15.1.1" = {
+      name = "xmlbuilder";
+      packageName = "xmlbuilder";
+      version = "15.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-15.1.1.tgz";
+        sha512 = "yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==";
+      };
+    };
+    "xmlcreate-2.0.3" = {
+      name = "xmlcreate";
+      packageName = "xmlcreate";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xmlcreate/-/xmlcreate-2.0.3.tgz";
+        sha512 = "HgS+X6zAztGa9zIK3Y3LXuJes33Lz9x+YyTxgrkIdabu2vqcGOWwdfCpf1hWLRrd553wd4QCDf6BBO6FfdsRiQ==";
+      };
+    };
+    "xtend-4.0.2" = {
+      name = "xtend";
+      packageName = "xtend";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
+        sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
+      };
+    };
+    "y18n-4.0.0" = {
+      name = "y18n";
+      packageName = "y18n";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz";
+        sha512 = "r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==";
+      };
+    };
+    "yallist-2.1.2" = {
+      name = "yallist";
+      packageName = "yallist";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz";
+        sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+      };
+    };
+    "yargs-13.3.2" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "13.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz";
+        sha512 = "AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==";
+      };
+    };
+    "yargs-14.2.3" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "14.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz";
+        sha512 = "ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==";
+      };
+    };
+    "yargs-15.4.1" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "15.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz";
+        sha512 = "aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==";
+      };
+    };
+    "yargs-parser-13.1.2" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "13.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz";
+        sha512 = "3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==";
+      };
+    };
+    "yargs-parser-15.0.1" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "15.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz";
+        sha512 = "0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==";
+      };
+    };
+    "yargs-parser-18.1.3" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "18.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz";
+        sha512 = "o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==";
+      };
+    };
+    "yargs-unparser-1.6.1" = {
+      name = "yargs-unparser";
+      packageName = "yargs-unparser";
+      version = "1.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.1.tgz";
+        sha512 = "qZV14lK9MWsGCmcr7u5oXGH0dbGqZAIxTDrWXZDo5zUr6b6iUmelNKO6x6R1dQT24AH3LgRxJpr8meWy2unolA==";
+      };
+    };
+  };
+in
+{
+  newman = nodeEnv.buildNodePackage {
+    name = "newman";
+    packageName = "newman";
+    version = "5.2.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/newman/-/newman-5.2.0.tgz";
+      sha512 = "VzvKHhdPM7QvuwQfnJMj50hHLf27AE9hCAbMgbP5aXIQ12eKhrL3if1U0OWcB+BvSLdww9nKvMDwvuF72/ipFw==";
+    };
+    dependencies = [
+      sources."@babel/code-frame-7.10.4"
+      (sources."@babel/core-7.11.6" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."semver-5.7.1"
+          sources."source-map-0.5.7"
+        ];
+      })
+      (sources."@babel/generator-7.11.6" // {
+        dependencies = [
+          sources."source-map-0.5.7"
+        ];
+      })
+      sources."@babel/helper-function-name-7.10.4"
+      sources."@babel/helper-get-function-arity-7.10.4"
+      sources."@babel/helper-member-expression-to-functions-7.11.0"
+      sources."@babel/helper-module-imports-7.10.4"
+      sources."@babel/helper-module-transforms-7.11.0"
+      sources."@babel/helper-optimise-call-expression-7.10.4"
+      sources."@babel/helper-replace-supers-7.10.4"
+      sources."@babel/helper-simple-access-7.10.4"
+      sources."@babel/helper-split-export-declaration-7.11.0"
+      sources."@babel/helper-validator-identifier-7.10.4"
+      sources."@babel/helpers-7.10.4"
+      sources."@babel/highlight-7.10.4"
+      sources."@babel/parser-7.11.5"
+      sources."@babel/template-7.10.4"
+      (sources."@babel/traverse-7.11.5" // {
+        dependencies = [
+          sources."debug-4.2.0"
+          sources."globals-11.12.0"
+        ];
+      })
+      sources."@babel/types-7.11.5"
+      (sources."@eslint/eslintrc-0.1.3" // {
+        dependencies = [
+          sources."debug-4.2.0"
+        ];
+      })
+      (sources."@istanbuljs/load-nyc-config-1.1.0" // {
+        dependencies = [
+          sources."find-up-4.1.0"
+          sources."locate-path-5.0.0"
+          sources."p-limit-2.3.0"
+          sources."p-locate-4.1.0"
+        ];
+      })
+      sources."@istanbuljs/schema-0.1.2"
+      sources."@postman/form-data-3.1.0"
+      sources."@postman/tunnel-agent-0.6.3"
+      sources."@sinonjs/commons-1.8.1"
+      sources."@sinonjs/fake-timers-6.0.1"
+      sources."@sinonjs/formatio-5.0.1"
+      sources."@sinonjs/samsam-5.1.0"
+      sources."@sinonjs/text-encoding-0.7.1"
+      sources."@types/color-name-1.1.1"
+      sources."JSONStream-1.3.2"
+      sources."acorn-7.4.0"
+      sources."acorn-jsx-5.3.1"
+      sources."aggregate-error-3.1.0"
+      sources."ajv-6.12.4"
+      sources."ansi-colors-4.1.1"
+      (sources."ansi-escape-sequences-4.1.0" // {
+        dependencies = [
+          sources."array-back-3.1.0"
+        ];
+      })
+      sources."ansi-regex-5.0.0"
+      sources."ansi-styles-3.2.1"
+      sources."anymatch-3.1.1"
+      sources."append-transform-2.0.0"
+      sources."archy-1.0.0"
+      sources."argparse-1.0.10"
+      sources."array-back-4.0.1"
+      sources."array-uniq-1.0.3"
+      sources."array.prototype.map-1.0.2"
+      sources."asn1-0.2.4"
+      sources."assert-plus-1.0.0"
+      sources."assertion-error-1.1.0"
+      sources."astral-regex-1.0.0"
+      sources."async-3.2.0"
+      sources."asynckit-0.4.0"
+      sources."aws-sign2-0.7.0"
+      sources."aws4-1.10.1"
+      sources."balanced-match-1.0.0"
+      sources."base64-js-1.3.1"
+      sources."bcrypt-pbkdf-1.0.2"
+      sources."binary-extensions-2.1.0"
+      (sources."bl-1.2.3" // {
+        dependencies = [
+          (sources."readable-stream-2.3.7" // {
+            dependencies = [
+              sources."safe-buffer-5.1.2"
+            ];
+          })
+          (sources."string_decoder-1.1.1" // {
+            dependencies = [
+              sources."safe-buffer-5.1.2"
+            ];
+          })
+        ];
+      })
+      sources."bluebird-2.11.0"
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."brotli-1.3.2"
+      sources."browser-stdout-1.3.1"
+      sources."buffer-alloc-1.2.0"
+      sources."buffer-alloc-unsafe-1.1.0"
+      sources."buffer-fill-1.0.0"
+      sources."buffer-from-1.1.1"
+      sources."cache-point-2.0.0"
+      (sources."caching-transform-4.0.0" // {
+        dependencies = [
+          sources."make-dir-3.1.0"
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."callsites-3.1.0"
+      sources."camelcase-5.3.1"
+      sources."caseless-0.12.0"
+      sources."catharsis-0.8.11"
+      sources."chai-4.2.0"
+      sources."chalk-2.4.2"
+      sources."chardet-1.2.1"
+      sources."charset-1.0.1"
+      sources."check-error-1.0.2"
+      sources."chokidar-3.4.2"
+      sources."chownr-1.1.4"
+      sources."clean-stack-2.2.0"
+      sources."cli-progress-3.8.2"
+      sources."cli-table3-0.6.0"
+      (sources."cliui-5.0.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."emoji-regex-7.0.3"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."collect-all-1.0.3"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."colors-1.4.0"
+      sources."combined-stream-1.0.8"
+      (sources."command-line-args-5.1.1" // {
+        dependencies = [
+          sources."array-back-3.1.0"
+          sources."typical-4.0.0"
+        ];
+      })
+      (sources."command-line-tool-0.8.0" // {
+        dependencies = [
+          sources."array-back-2.0.0"
+        ];
+      })
+      (sources."command-line-usage-4.1.0" // {
+        dependencies = [
+          sources."array-back-2.0.0"
+        ];
+      })
+      sources."commander-6.1.0"
+      sources."comment-parser-0.7.6"
+      sources."common-sequence-2.0.0"
+      sources."commondir-1.0.1"
+      sources."concat-map-0.0.1"
+      (sources."concat-stream-1.6.2" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      (sources."config-master-3.1.0" // {
+        dependencies = [
+          sources."walk-back-2.0.1"
+        ];
+      })
+      (sources."convert-source-map-1.7.0" // {
+        dependencies = [
+          sources."safe-buffer-5.1.2"
+        ];
+      })
+      sources."core-util-is-1.0.2"
+      sources."cross-spawn-7.0.3"
+      sources."csv-parse-4.12.0"
+      sources."cycle-1.0.3"
+      sources."dashdash-1.14.1"
+      sources."date-format-0.0.2"
+      sources."dbug-0.4.2"
+      sources."debug-3.2.6"
+      sources."decamelize-1.2.0"
+      sources."deep-eql-3.0.1"
+      sources."deep-extend-0.6.0"
+      sources."deep-is-0.1.3"
+      sources."default-require-extensions-3.0.0"
+      sources."define-properties-1.1.3"
+      sources."delayed-stream-1.0.0"
+      sources."diff-4.0.2"
+      (sources."dmd-5.0.2" // {
+        dependencies = [
+          sources."reduce-flatten-3.0.0"
+        ];
+      })
+      (sources."docker-modem-1.0.9" // {
+        dependencies = [
+          sources."isarray-0.0.1"
+          sources."readable-stream-1.0.34"
+          sources."string_decoder-0.10.31"
+        ];
+      })
+      (sources."dockerfile_lint-0.3.4" // {
+        dependencies = [
+          sources."commander-2.9.0"
+          sources."js-yaml-3.13.1"
+          sources."lodash-2.4.2"
+        ];
+      })
+      sources."dockerode-2.5.8"
+      sources."doctrine-3.0.0"
+      (sources."dom-serializer-0.2.2" // {
+        dependencies = [
+          sources."domelementtype-2.0.1"
+          sources."entities-2.0.3"
+        ];
+      })
+      sources."domelementtype-1.3.1"
+      sources."domhandler-2.4.2"
+      sources."domutils-1.7.0"
+      sources."ecc-jsbn-0.1.2"
+      (sources."editorconfig-0.15.3" // {
+        dependencies = [
+          sources."commander-2.20.3"
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."emoji-regex-8.0.0"
+      sources."end-of-stream-1.4.4"
+      sources."enquirer-2.3.6"
+      sources."entities-1.1.2"
+      sources."es-abstract-1.17.6"
+      sources."es-array-method-boxes-properly-1.0.0"
+      (sources."es-get-iterator-1.1.0" // {
+        dependencies = [
+          sources."isarray-2.0.5"
+        ];
+      })
+      sources."es-to-primitive-1.2.1"
+      sources."es6-error-4.1.1"
+      sources."escape-html-1.0.3"
+      sources."escape-string-regexp-1.0.5"
+      (sources."eslint-7.8.0" // {
+        dependencies = [
+          sources."ansi-styles-4.2.1"
+          sources."chalk-4.1.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."debug-4.2.0"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      (sources."eslint-plugin-jsdoc-30.3.0" // {
+        dependencies = [
+          sources."debug-4.2.0"
+        ];
+      })
+      sources."eslint-plugin-lodash-7.1.0"
+      sources."eslint-plugin-mocha-8.0.0"
+      sources."eslint-plugin-security-1.4.0"
+      sources."eslint-scope-5.1.0"
+      sources."eslint-utils-2.1.0"
+      sources."eslint-visitor-keys-1.3.0"
+      sources."espree-7.3.0"
+      sources."esprima-4.0.1"
+      (sources."esquery-1.3.1" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.2.0"
+        ];
+      })
+      sources."estraverse-4.3.0"
+      sources."esutils-2.0.3"
+      sources."eventemitter3-4.0.7"
+      sources."extend-3.0.2"
+      sources."extsprintf-1.3.0"
+      sources."eyes-0.1.8"
+      sources."faker-5.1.0"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-levenshtein-2.0.6"
+      sources."file-entry-cache-5.0.1"
+      sources."file-set-4.0.1"
+      sources."file-type-3.9.0"
+      sources."filesize-6.1.0"
+      sources."fill-range-7.0.1"
+      (sources."find-cache-dir-3.3.1" // {
+        dependencies = [
+          sources."make-dir-3.1.0"
+          sources."semver-6.3.0"
+        ];
+      })
+      (sources."find-replace-3.0.0" // {
+        dependencies = [
+          sources."array-back-3.1.0"
+        ];
+      })
+      sources."find-up-5.0.0"
+      sources."flat-4.1.0"
+      sources."flat-cache-2.0.1"
+      sources."flatted-2.0.1"
+      sources."foreground-child-2.0.0"
+      sources."forever-agent-0.6.1"
+      sources."fromentries-1.2.1"
+      sources."fs-constants-1.0.0"
+      sources."fs-then-native-2.0.0"
+      sources."fs.realpath-1.0.0"
+      sources."fsevents-2.1.3"
+      sources."function-bind-1.1.1"
+      sources."functional-red-black-tree-1.0.1"
+      sources."gensync-1.0.0-beta.1"
+      sources."get-caller-file-2.0.5"
+      sources."get-func-name-2.0.0"
+      sources."get-package-type-0.1.0"
+      sources."getpass-0.1.7"
+      sources."glob-7.1.6"
+      sources."glob-parent-5.1.1"
+      sources."globals-12.4.0"
+      sources."graceful-fs-4.2.4"
+      sources."graceful-readlink-1.0.1"
+      sources."growl-1.10.5"
+      sources."handlebars-4.7.6"
+      sources."har-schema-2.0.0"
+      sources."har-validator-5.1.5"
+      sources."has-1.0.3"
+      (sources."has-ansi-2.0.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+        ];
+      })
+      sources."has-flag-3.0.0"
+      sources."has-symbols-1.0.1"
+      sources."hasha-5.2.0"
+      sources."he-1.2.0"
+      sources."html-escaper-2.0.2"
+      sources."htmlparser2-3.10.1"
+      sources."http-reasons-0.1.0"
+      sources."http-signature-1.3.4"
+      sources."httpntlm-1.7.6"
+      sources."httpreq-0.4.24"
+      sources."iconv-lite-0.6.2"
+      sources."ignore-4.0.6"
+      (sources."import-fresh-3.2.1" // {
+        dependencies = [
+          sources."resolve-from-4.0.0"
+        ];
+      })
+      sources."imurmurhash-0.1.4"
+      sources."indent-string-4.0.0"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      (sources."intel-1.2.0" // {
+        dependencies = [
+          sources."ansi-regex-2.1.1"
+          sources."ansi-styles-2.2.1"
+          sources."chalk-1.1.3"
+          sources."strip-ansi-3.0.1"
+          sources."supports-color-2.0.0"
+        ];
+      })
+      sources."interpret-1.4.0"
+      sources."ip-regex-2.1.0"
+      sources."is-arguments-1.0.4"
+      sources."is-binary-path-2.1.0"
+      sources."is-buffer-2.0.4"
+      sources."is-callable-1.2.1"
+      sources."is-date-object-1.0.2"
+      sources."is-extglob-2.1.1"
+      sources."is-fullwidth-code-point-3.0.0"
+      sources."is-glob-4.0.1"
+      sources."is-map-2.0.1"
+      sources."is-number-7.0.0"
+      sources."is-plain-obj-1.1.0"
+      sources."is-regex-1.1.1"
+      sources."is-set-2.0.1"
+      sources."is-stream-2.0.0"
+      sources."is-string-1.0.5"
+      sources."is-symbol-1.0.3"
+      sources."is-typedarray-1.0.0"
+      sources."is-windows-1.0.2"
+      sources."isarray-1.0.0"
+      sources."isexe-2.0.0"
+      sources."isstream-0.1.2"
+      sources."istanbul-lib-coverage-3.0.0"
+      sources."istanbul-lib-hook-3.0.0"
+      (sources."istanbul-lib-instrument-4.0.3" // {
+        dependencies = [
+          sources."semver-6.3.0"
+        ];
+      })
+      (sources."istanbul-lib-processinfo-2.0.2" // {
+        dependencies = [
+          sources."make-dir-3.1.0"
+          sources."rimraf-3.0.2"
+          sources."semver-6.3.0"
+        ];
+      })
+      (sources."istanbul-lib-report-3.0.0" // {
+        dependencies = [
+          sources."has-flag-4.0.0"
+          sources."make-dir-3.1.0"
+          sources."semver-6.3.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      (sources."istanbul-lib-source-maps-4.0.0" // {
+        dependencies = [
+          sources."debug-4.2.0"
+        ];
+      })
+      sources."istanbul-reports-3.0.2"
+      sources."iterate-iterator-1.0.1"
+      sources."iterate-value-1.0.2"
+      sources."js-sha512-0.8.0"
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.0"
+      sources."js2xmlparser-4.0.1"
+      sources."jsbn-0.1.1"
+      (sources."jsdoc-3.6.5" // {
+        dependencies = [
+          sources."bluebird-3.7.2"
+          sources."escape-string-regexp-2.0.0"
+          sources."marked-0.8.2"
+          sources."underscore-1.10.2"
+        ];
+      })
+      sources."jsdoc-api-6.0.0"
+      sources."jsdoc-parse-5.0.0"
+      sources."jsdoc-to-markdown-6.0.1"
+      sources."jsdoctypeparser-9.0.0"
+      sources."jsesc-2.5.2"
+      sources."json-schema-0.2.3"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stable-stringify-without-jsonify-1.0.1"
+      sources."json-stringify-safe-5.0.1"
+      sources."json5-2.1.3"
+      sources."jsonparse-1.3.1"
+      sources."jsprim-1.4.1"
+      (sources."junit-report-builder-2.1.0" // {
+        dependencies = [
+          sources."xmlbuilder-10.1.1"
+        ];
+      })
+      sources."just-extend-4.1.0"
+      sources."klaw-3.0.0"
+      sources."levn-0.4.1"
+      sources."linkify-it-2.2.0"
+      sources."liquid-json-0.3.1"
+      sources."locate-path-6.0.0"
+      sources."lodash-4.17.20"
+      sources."lodash.camelcase-4.3.0"
+      sources."lodash.clonedeep-4.5.0"
+      sources."lodash.escaperegexp-4.1.2"
+      sources."lodash.flattendeep-4.4.0"
+      sources."lodash.get-4.4.2"
+      sources."lodash.isplainobject-4.0.6"
+      sources."lodash.isstring-4.0.1"
+      sources."lodash.mergewith-4.6.2"
+      sources."lodash.omit-4.5.0"
+      sources."lodash.padend-4.6.1"
+      sources."lodash.pick-4.4.0"
+      sources."lodash.set-4.3.2"
+      (sources."log-symbols-4.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.2.1"
+          sources."chalk-4.1.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."lru-cache-4.1.5"
+      sources."make-dir-1.3.0"
+      (sources."markdown-it-10.0.0" // {
+        dependencies = [
+          sources."entities-2.0.3"
+        ];
+      })
+      sources."markdown-it-anchor-5.3.0"
+      sources."marked-1.1.1"
+      sources."mdurl-1.0.1"
+      sources."mime-db-1.44.0"
+      sources."mime-format-2.0.0"
+      sources."mime-types-2.1.27"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."mkdirp-1.0.4"
+      sources."mkdirp2-1.0.4"
+      (sources."mocha-8.1.3" // {
+        dependencies = [
+          sources."debug-4.1.1"
+          sources."escape-string-regexp-4.0.0"
+          sources."has-flag-4.0.0"
+          sources."strip-json-comments-3.0.1"
+          sources."supports-color-7.1.0"
+        ];
+      })
+      sources."ms-2.1.2"
+      sources."natural-compare-1.4.0"
+      sources."neo-async-2.6.2"
+      sources."nise-4.0.4"
+      (sources."nock-13.0.4" // {
+        dependencies = [
+          sources."debug-4.2.0"
+        ];
+      })
+      sources."node-oauth1-1.3.0"
+      sources."node-preload-0.2.1"
+      sources."normalize-path-3.0.0"
+      sources."number-is-nan-1.0.1"
+      (sources."nyc-15.1.0" // {
+        dependencies = [
+          sources."ansi-styles-4.2.1"
+          sources."cliui-6.0.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+          sources."find-up-4.1.0"
+          sources."locate-path-5.0.0"
+          sources."make-dir-3.1.0"
+          sources."p-limit-2.3.0"
+          sources."p-locate-4.1.0"
+          sources."rimraf-3.0.2"
+          sources."semver-6.3.0"
+          sources."wrap-ansi-6.2.0"
+          sources."yargs-15.4.1"
+          sources."yargs-parser-18.1.3"
+        ];
+      })
+      sources."oauth-sign-0.9.0"
+      sources."object-assign-4.1.1"
+      sources."object-get-2.1.1"
+      sources."object-hash-1.3.1"
+      sources."object-inspect-1.8.0"
+      sources."object-keys-1.1.1"
+      sources."object-to-spawn-args-2.0.0"
+      sources."object.assign-4.1.0"
+      sources."once-1.4.0"
+      sources."optionator-0.9.1"
+      sources."p-limit-3.0.2"
+      sources."p-locate-5.0.0"
+      sources."p-map-3.0.0"
+      sources."p-try-2.2.0"
+      sources."package-hash-4.0.0"
+      (sources."packity-0.3.2" // {
+        dependencies = [
+          sources."async-1.5.2"
+          sources."commander-2.20.3"
+          sources."lodash-3.10.1"
+          sources."semver-5.7.1"
+        ];
+      })
+      sources."parent-module-1.0.1"
+      sources."parse-gitignore-1.0.1"
+      sources."parse-ms-2.1.0"
+      sources."path-exists-4.0.0"
+      sources."path-is-absolute-1.0.1"
+      sources."path-key-3.1.1"
+      sources."path-parse-1.0.6"
+      (sources."path-to-regexp-1.8.0" // {
+        dependencies = [
+          sources."isarray-0.0.1"
+        ];
+      })
+      sources."pathval-1.1.0"
+      sources."performance-now-2.1.0"
+      sources."picomatch-2.2.2"
+      sources."pify-3.0.0"
+      (sources."pkg-dir-4.2.0" // {
+        dependencies = [
+          sources."find-up-4.1.0"
+          sources."locate-path-5.0.0"
+          sources."p-limit-2.3.0"
+          sources."p-locate-4.1.0"
+        ];
+      })
+      (sources."postcss-7.0.32" // {
+        dependencies = [
+          sources."supports-color-6.1.0"
+        ];
+      })
+      sources."postman-collection-3.6.6"
+      (sources."postman-collection-transformer-3.3.3" // {
+        dependencies = [
+          sources."commander-5.1.0"
+          sources."lodash-4.17.19"
+        ];
+      })
+      sources."postman-jsdoc-theme-0.0.3"
+      (sources."postman-request-2.88.1-postman.24" // {
+        dependencies = [
+          sources."tough-cookie-2.5.0"
+        ];
+      })
+      (sources."postman-runtime-7.26.5" // {
+        dependencies = [
+          sources."async-2.6.3"
+        ];
+      })
+      sources."postman-sandbox-3.5.9"
+      sources."postman-url-encoder-2.1.3"
+      sources."prelude-ls-1.2.1"
+      sources."pretty-ms-7.0.0"
+      sources."process-nextick-args-2.0.1"
+      sources."process-on-spawn-1.0.0"
+      sources."progress-2.0.3"
+      sources."promise.allsettled-1.0.2"
+      sources."propagate-2.0.1"
+      sources."pseudomap-1.0.2"
+      sources."psl-1.8.0"
+      sources."pump-1.0.3"
+      sources."punycode-2.1.1"
+      sources."q-1.0.1"
+      sources."qs-6.5.2"
+      sources."ramda-0.27.1"
+      sources."randombytes-2.1.0"
+      sources."readable-stream-3.6.0"
+      sources."readdir-0.0.13"
+      sources."readdirp-3.4.0"
+      sources."rechoir-0.6.2"
+      sources."recursive-readdir-2.2.2"
+      (sources."reduce-extract-1.0.0" // {
+        dependencies = [
+          sources."array-back-1.0.4"
+          sources."test-value-1.1.0"
+        ];
+      })
+      sources."reduce-flatten-1.0.1"
+      sources."reduce-unique-2.0.1"
+      (sources."reduce-without-1.0.1" // {
+        dependencies = [
+          sources."array-back-1.0.4"
+          sources."test-value-2.1.0"
+        ];
+      })
+      sources."regexpp-3.1.0"
+      sources."regextras-0.7.1"
+      sources."release-zalgo-1.0.0"
+      sources."require-directory-2.1.1"
+      sources."require-main-filename-2.0.0"
+      sources."requizzle-0.2.3"
+      sources."resolve-1.17.0"
+      sources."resolve-from-5.0.0"
+      sources."ret-0.1.15"
+      sources."rimraf-2.6.3"
+      sources."safe-buffer-5.2.1"
+      sources."safe-regex-1.1.0"
+      sources."safer-buffer-2.1.2"
+      sources."sanitize-html-1.20.1"
+      sources."sax-1.2.4"
+      sources."semver-7.3.2"
+      (sources."serialised-error-1.1.3" // {
+        dependencies = [
+          sources."stack-trace-0.0.9"
+        ];
+      })
+      sources."serialize-javascript-4.0.0"
+      sources."server-destroy-1.0.1"
+      sources."set-blocking-2.0.0"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      sources."shelljs-0.8.4"
+      sources."sigmund-1.0.1"
+      sources."signal-exit-3.0.3"
+      (sources."sinon-9.0.3" // {
+        dependencies = [
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      (sources."slice-ansi-2.1.0" // {
+        dependencies = [
+          sources."is-fullwidth-code-point-2.0.0"
+        ];
+      })
+      (sources."sort-array-4.1.2" // {
+        dependencies = [
+          sources."typical-6.0.1"
+        ];
+      })
+      sources."source-map-0.6.1"
+      (sources."spawn-wrap-2.0.0" // {
+        dependencies = [
+          sources."make-dir-3.1.0"
+          sources."rimraf-3.0.2"
+          sources."semver-6.3.0"
+        ];
+      })
+      sources."spdx-exceptions-2.3.0"
+      sources."spdx-expression-parse-3.0.1"
+      sources."spdx-license-ids-3.0.5"
+      sources."split-ca-1.0.1"
+      sources."sprintf-js-1.0.3"
+      sources."srcset-1.0.0"
+      sources."sshpk-1.16.1"
+      sources."stack-trace-0.0.10"
+      (sources."stream-connect-1.0.2" // {
+        dependencies = [
+          sources."array-back-1.0.4"
+        ];
+      })
+      sources."stream-length-1.0.2"
+      sources."stream-via-1.0.4"
+      sources."strftime-0.10.0"
+      sources."string-width-4.2.0"
+      sources."string.prototype.trimend-1.0.1"
+      sources."string.prototype.trimstart-1.0.1"
+      sources."string_decoder-1.3.0"
+      sources."strip-ansi-6.0.0"
+      sources."strip-bom-4.0.0"
+      sources."strip-json-comments-3.1.1"
+      sources."supports-color-5.5.0"
+      sources."symbol-0.3.1"
+      (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"
+        ];
+      })
+      (sources."table-layout-0.4.5" // {
+        dependencies = [
+          sources."array-back-2.0.0"
+        ];
+      })
+      sources."taffydb-2.6.2"
+      (sources."tar-fs-1.16.3" // {
+        dependencies = [
+          sources."mkdirp-0.5.5"
+        ];
+      })
+      (sources."tar-stream-1.6.2" // {
+        dependencies = [
+          sources."readable-stream-2.3.7"
+          sources."safe-buffer-5.1.2"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."teleport-javascript-1.0.0"
+      sources."temp-path-1.0.0"
+      sources."test-exclude-6.0.0"
+      (sources."test-value-3.0.0" // {
+        dependencies = [
+          sources."array-back-2.0.0"
+        ];
+      })
+      sources."text-table-0.2.0"
+      sources."through-2.3.8"
+      sources."to-buffer-1.1.1"
+      sources."to-fast-properties-2.0.0"
+      sources."to-regex-range-5.0.1"
+      sources."tough-cookie-3.0.1"
+      sources."tweetnacl-0.14.5"
+      sources."type-check-0.4.0"
+      sources."type-detect-4.0.8"
+      sources."type-fest-0.8.1"
+      sources."typedarray-0.0.6"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."typical-2.6.1"
+      sources."uc.micro-1.0.6"
+      sources."uglify-js-3.10.4"
+      sources."underscore-1.7.0"
+      sources."uri-js-4.4.0"
+      sources."utcstring-0.1.0"
+      sources."util-deprecate-1.0.2"
+      sources."uuid-3.4.0"
+      (sources."uvm-1.7.9" // {
+        dependencies = [
+          sources."lodash-4.17.19"
+          sources."uuid-3.3.2"
+        ];
+      })
+      sources."v8-compile-cache-2.1.1"
+      sources."verror-1.10.0"
+      sources."walk-back-4.0.0"
+      sources."which-2.0.2"
+      sources."which-module-2.0.0"
+      (sources."wide-align-1.1.3" // {
+        dependencies = [
+          sources."ansi-regex-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-2.1.1"
+          sources."strip-ansi-4.0.0"
+        ];
+      })
+      (sources."winston-2.4.5" // {
+        dependencies = [
+          sources."async-1.0.0"
+          sources."colors-1.0.3"
+        ];
+      })
+      sources."word-wrap-1.2.3"
+      sources."wordwrap-1.0.0"
+      sources."wordwrapjs-3.0.0"
+      sources."workerpool-6.0.0"
+      (sources."wrap-ansi-5.1.0" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."emoji-regex-7.0.3"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      (sources."write-1.0.3" // {
+        dependencies = [
+          sources."mkdirp-0.5.5"
+        ];
+      })
+      sources."write-file-atomic-3.0.3"
+      (sources."xml2js-0.4.23" // {
+        dependencies = [
+          sources."xmlbuilder-11.0.1"
+        ];
+      })
+      sources."xmlbuilder-15.1.1"
+      sources."xmlcreate-2.0.3"
+      sources."xtend-4.0.2"
+      sources."y18n-4.0.0"
+      sources."yallist-2.1.2"
+      (sources."yargs-13.3.2" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."emoji-regex-7.0.3"
+          sources."find-up-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."locate-path-3.0.0"
+          sources."p-limit-2.3.0"
+          sources."p-locate-3.0.0"
+          sources."path-exists-3.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+        ];
+      })
+      sources."yargs-parser-13.1.2"
+      (sources."yargs-unparser-1.6.1" // {
+        dependencies = [
+          sources."ansi-regex-4.1.0"
+          sources."emoji-regex-7.0.3"
+          sources."find-up-3.0.0"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."locate-path-3.0.0"
+          sources."p-limit-2.3.0"
+          sources."p-locate-3.0.0"
+          sources."path-exists-3.0.0"
+          sources."string-width-3.1.0"
+          sources."strip-ansi-5.2.0"
+          sources."yargs-14.2.3"
+          sources."yargs-parser-15.0.1"
+        ];
+      })
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Command-line companion utility for Postman";
+      homepage = https://github.com/postmanlabs/newman;
+      license = "Apache-2.0";
+    };
+    production = false;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/development/web/newman/package.json b/nixpkgs/pkgs/development/web/newman/package.json
new file mode 100644
index 000000000000..98268bd610ed
--- /dev/null
+++ b/nixpkgs/pkgs/development/web/newman/package.json
@@ -0,0 +1,3 @@
+[
+  "newman"
+]
diff --git a/nixpkgs/pkgs/development/web/nodejs/nodejs.nix b/nixpkgs/pkgs/development/web/nodejs/nodejs.nix
index 5eeed80007bf..12754b6d4412 100644
--- a/nixpkgs/pkgs/development/web/nodejs/nodejs.nix
+++ b/nixpkgs/pkgs/development/web/nodejs/nodejs.nix
@@ -141,7 +141,7 @@ in
       description = "Event-driven I/O framework for the V8 JavaScript engine";
       homepage = "https://nodejs.org";
       license = licenses.mit;
-      maintainers = with maintainers; [ goibhniu gilligan cko ];
+      maintainers = with maintainers; [ goibhniu gilligan cko marsam ];
       platforms = platforms.linux ++ platforms.darwin;
     };
 
diff --git a/nixpkgs/pkgs/development/web/nodejs/v10.nix b/nixpkgs/pkgs/development/web/nodejs/v10.nix
index f473bb250aac..1fa463892042 100644
--- a/nixpkgs/pkgs/development/web/nodejs/v10.nix
+++ b/nixpkgs/pkgs/development/web/nodejs/v10.nix
@@ -8,6 +8,6 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "10.21.0";
-    sha256 = "0fxpvjm3gyfwapn55av8q9w1ds0l4nmn6ybdlslcmjiqhfi1zc16";
+    version = "10.22.1";
+    sha256 = "0pr569qiabr4m7k38s7rwi3iyzrc5jmx19z2z0k7n4xfvhjlfzzl";
   }
diff --git a/nixpkgs/pkgs/development/web/nodejs/v12.nix b/nixpkgs/pkgs/development/web/nodejs/v12.nix
index 214292afbbe1..0e8362268331 100644
--- a/nixpkgs/pkgs/development/web/nodejs/v12.nix
+++ b/nixpkgs/pkgs/development/web/nodejs/v12.nix
@@ -8,6 +8,6 @@ let
 in
   buildNodejs {
     inherit enableNpm;
-    version = "12.18.1";
-    sha256 = "0yjwd8yilm85wkginvhhchcikjsl8g3l3qagbg0l2y1hg8f0anfa";
+    version = "12.18.4";
+    sha256 = "02gncjrrjqdwf9ydmg96yn9ldsw539q9w88cknax1djkisqkrw15";
   }
diff --git a/nixpkgs/pkgs/development/web/nodejs/v13.nix b/nixpkgs/pkgs/development/web/nodejs/v13.nix
deleted file mode 100644
index f157269b6364..000000000000
--- a/nixpkgs/pkgs/development/web/nodejs/v13.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ callPackage, openssl, icu, python3, enableNpm ? true }:
-
-let
-  buildNodejs = callPackage ./nodejs.nix {
-    inherit openssl icu;
-    python = python3;
-  };
-in
-  buildNodejs {
-    inherit enableNpm;
-    version = "13.14.0";
-    sha256 = "1gi9nl99wsiqpwm266jdsa8g6rmjw4wqwgrkx9f2qk1y3hjcs0vf";
-  }
diff --git a/nixpkgs/pkgs/development/web/nodejs/v14.nix b/nixpkgs/pkgs/development/web/nodejs/v14.nix
index 92cac53c7830..549f29db2fec 100644
--- a/nixpkgs/pkgs/development/web/nodejs/v14.nix
+++ b/nixpkgs/pkgs/development/web/nodejs/v14.nix
@@ -1,14 +1,13 @@
-{ callPackage, openssl, icu66, python3, enableNpm ? true }:
+{ callPackage, openssl, python3, enableNpm ? true }:
 
 let
   buildNodejs = callPackage ./nodejs.nix {
     inherit openssl;
-    icu = icu66;
     python = python3;
   };
 in
   buildNodejs {
     inherit enableNpm;
-    version = "14.4.0";
-    sha256 = "1fbx1r3fflpsy0s7zknca0xyv2gg0ff5fl8czzsb79imqjlgcy0x";
+    version = "14.9.0";
+    sha256 = "1xkfivr0qci50ksg66szyasdlbiwh2j7ia4n6qc5csih2nvzcbh1";
   }
diff --git a/nixpkgs/pkgs/development/web/postman/default.nix b/nixpkgs/pkgs/development/web/postman/default.nix
index e56ab1bbba79..1495b811d09b 100644
--- a/nixpkgs/pkgs/development/web/postman/default.nix
+++ b/nixpkgs/pkgs/development/web/postman/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchurl, makeDesktopItem, wrapGAppsHook
-, atk, at-spi2-atk, alsaLib, cairo, cups, dbus, expat, gdk-pixbuf, glib, gtk3
-, freetype, fontconfig, nss, nspr, pango, udev, libX11, libxcb, libXi
+, atk, at-spi2-atk, at-spi2-core, alsaLib, cairo, cups, dbus, expat, gdk-pixbuf, glib, gtk3
+, freetype, fontconfig, nss, nspr, pango, udev, libuuid, libX11, libxcb, libXi
 , libXcursor, libXdamage, libXrandr, libXcomposite, libXext, libXfixes
 , libXrender, libXtst, libXScrnSaver
 }:
 
 stdenv.mkDerivation rec {
   pname = "postman";
-  version = "7.24.0";
+  version = "7.32.0";
 
   src = fetchurl {
     url = "https://dl.pstmn.io/download/version/${version}/linux64";
-    sha256 = "0wriyj58icgljmghghyxi1mnjr1vh5jyp8lzwcf6lcsdvsh0ccmw";
+    sha256 = "0dn9awzhaafsdsiwwj6870zyqw4spsmc08zgcc5dhnpcnjcyldf3";
     name = "${pname}.tar.gz";
   };
 
@@ -25,13 +25,14 @@ stdenv.mkDerivation rec {
     comment = "API Development Environment";
     desktopName = "Postman";
     genericName = "Postman";
-    categories = "Application;Development;";
+    categories = "Development;";
   };
 
   buildInputs = [
     stdenv.cc.cc.lib
     atk
     at-spi2-atk
+    at-spi2-core
     alsaLib
     cairo
     cups
@@ -46,6 +47,7 @@ stdenv.mkDerivation rec {
     nspr
     pango
     udev
+    libuuid
     libX11
     libxcb
     libXi
diff --git a/nixpkgs/pkgs/development/web/shopify-themekit/default.nix b/nixpkgs/pkgs/development/web/shopify-themekit/default.nix
index b8bc3deaca18..a50140c15327 100644
--- a/nixpkgs/pkgs/development/web/shopify-themekit/default.nix
+++ b/nixpkgs/pkgs/development/web/shopify-themekit/default.nix
@@ -19,7 +19,6 @@ buildGoPackage rec {
     description = "A command line tool for shopify themes";
     homepage = "https://shopify.github.io/themekit/";
     license = licenses.mit;
-    maintainers = with maintainers; [ maintainers."1000101" ];
-    platforms = platforms.all;
+    maintainers = with maintainers; [ _1000101 ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/development/web/twitter-bootstrap/default.nix b/nixpkgs/pkgs/development/web/twitter-bootstrap/default.nix
index 87a25ef0bf9b..336e5af5a4b3 100644
--- a/nixpkgs/pkgs/development/web/twitter-bootstrap/default.nix
+++ b/nixpkgs/pkgs/development/web/twitter-bootstrap/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bootstrap";
-  version = "4.5.0";
+  version = "4.5.2";
 
   src = fetchurl {
     url = "https://github.com/twbs/bootstrap/releases/download/v${version}/${pname}-${version}-dist.zip";
-    sha256 = "0wnz7112qfar5qaadxbsp2qpcjaqn0mmzi4j0v4z6rx6lyvar5mb";
+    sha256 = "03brvh7fir9ylfr0c5b6kvf79bkjny0wxw4r5q8x8h2niycrkazg";
   };
 
   buildInputs = [ unzip ];
diff --git a/nixpkgs/pkgs/games/anki/default.nix b/nixpkgs/pkgs/games/anki/default.nix
index 489e72768ea4..0d713b1f71e1 100644
--- a/nixpkgs/pkgs/games/anki/default.nix
+++ b/nixpkgs/pkgs/games/anki/default.nix
@@ -31,7 +31,7 @@
 
 let
   # when updating, also update rev-manual to a recent version of
-  # https://github.com/dae/ankidocs
+  # https://github.com/ankitects/anki-docs
   # The manual is distributed independently of the software.
   version = "2.1.15";
   sha256-pkg = "12dvyf3j9df4nrhhnqbzd9b21rpzkh4i6yhhangn2zf7ch0pclss";
@@ -42,8 +42,8 @@ let
     pname = "anki-manual";
     inherit version;
     src = fetchFromGitHub {
-      owner = "dae";
-      repo = "ankidocs";
+      owner = "ankitects";
+      repo = "anki-docs";
       rev = rev-manual;
       sha256 = sha256-manual;
     };
@@ -112,16 +112,10 @@ buildPythonApplication rec {
     ./no-version-check.patch
   ];
 
-  buildPhase = ''
-    # Dummy build phase
-    # Anki does not use setup.py
-  '';
+  # Anki does not use setup.py
+  dontBuild = true;
 
   postPatch = ''
-    # Remove unused starter. We'll create our own, minimalistic,
-    # starter.
-    # rm anki/anki
-
     # Remove QT translation files. We'll use the standard QT ones.
     rm "locale/"*.qm
 
@@ -134,10 +128,10 @@ buildPythonApplication rec {
   # UTF-8 locale needed for testing
   LC_ALL = "en_US.UTF-8";
 
+  # - Anki writes some files to $HOME during tests
+  # - Skip tests using network
   checkPhase = ''
-    # - Anki writes some files to $HOME during tests
-    # - Skip tests using network
-    env HOME=$TMP pytest --ignore tests/test_sync.py
+    HOME=$TMP pytest --ignore tests/test_sync.py
   '';
 
   installPhase = ''
@@ -170,6 +164,7 @@ buildPythonApplication rec {
     cp -r ${manual}/share/doc/anki/html $doc/share/doc/anki
   '';
 
+  # now wrapPythonPrograms from postFixup will add both python and qt env variables
   dontWrapQtApps = true;
 
   preFixup = ''
@@ -179,8 +174,6 @@ buildPythonApplication rec {
     )
   '';
 
-  # now wrapPythonPrograms from postFixup will add both python and qt env variables
-
   passthru = {
     inherit manual;
   };
diff --git a/nixpkgs/pkgs/games/arena/default.nix b/nixpkgs/pkgs/games/arena/default.nix
index a8e147b6a7e3..beba98b6316a 100644
--- a/nixpkgs/pkgs/games/arena/default.nix
+++ b/nixpkgs/pkgs/games/arena/default.nix
@@ -12,11 +12,11 @@ let
 
 in
 stdenv.mkDerivation rec {
-  name = "arena-1.1";
+  name = "arena-3.10-beta";
 
   src = fetchurl {
-    url = "http://www.playwitharena.de/downloads/arenalinux_64bit_1.1.tar.gz";
-    sha256 = "1sh71v5ymzwflq8ycx9j9kl0jhqllgs6z24h4h8j5z8pwdh528v6";
+    url = "http://www.playwitharena.de/downloads/arenalinux_64bit_3.10beta.tar.gz";
+    sha256 = "1pzb9sg4lzbbi4gbldvlb85p8xyl9xnplxwyb9pkk2mwzvvxkf0d";
   };
 
   # stdenv.cc.cc.lib is in that list to pick up libstdc++.so. Is there a better way?
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
     # Remove executable bits from data files. This matters for the find command
     # we'll use below to find all bundled engines.
-    chmod -x $out/lib/${name}/Engines/*/*.{txt,bin,bmp}
+    chmod -x $out/lib/${name}/Engines/*/*.{txt,bin,bmp,zip}
   '';
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/games/assaultcube/default.nix b/nixpkgs/pkgs/games/assaultcube/default.nix
index f40e2ecf2209..6c3a7f1168e6 100644
--- a/nixpkgs/pkgs/games/assaultcube/default.nix
+++ b/nixpkgs/pkgs/games/assaultcube/default.nix
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
     desktopName = "AssaultCube";
     comment = "A multiplayer, first-person shooter game, based on the CUBE engine. Fast, arcade gameplay.";
     genericName = "First-person shooter";
-    categories = "Application;Game;ActionGame;Shooter";
+    categories = "Game;ActionGame;Shooter";
     icon = "assaultcube.png";
     exec = pname;
   };
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/builder.nix b/nixpkgs/pkgs/games/cataclysm-dda/builder.nix
new file mode 100644
index 000000000000..24128875f3a1
--- /dev/null
+++ b/nixpkgs/pkgs/games/cataclysm-dda/builder.nix
@@ -0,0 +1,49 @@
+{ stdenvNoCC, lib, type }:
+
+assert lib.elem type [
+  "mod"
+  "soundpack"
+  "tileset"
+];
+
+{ modName, version, src, ... } @ args:
+
+stdenvNoCC.mkDerivation (args // rec {
+  pname = args.pname or "cataclysm-dda-${type}-${modName}";
+
+  modRoot = args.modRoot or ".";
+
+  configurePhase = args.configurePhase or ''
+    runHook preConfigure
+    runHook postConfigure
+  '';
+
+  buildPhase = args.buildPhase or ''
+    runHook preBuild
+    runHook postBuild
+  '';
+
+  checkPhase = args.checkPhase or ''
+    runHook preCheck
+    runHook postCheck
+  '';
+
+  installPhase = let
+    baseDir = {
+      mod = "mods";
+      soundpack = "sound";
+      tileset = "gfx";
+    }.${type};
+  in args.installPhase or ''
+    runHook preInstall
+    destdir="$out/share/cataclysm-dda/${baseDir}"
+    mkdir -p "$destdir"
+    cp -R "${modRoot}" "$destdir/${modName}"
+    runHook postInstall
+  '';
+
+  passthru = {
+    forTiles = true;
+    forCurses = type == "mod";
+  };
+})
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/common.nix b/nixpkgs/pkgs/games/cataclysm-dda/common.nix
index f904a3c0f354..9ec73cdebe03 100644
--- a/nixpkgs/pkgs/games/cataclysm-dda/common.nix
+++ b/nixpkgs/pkgs/games/cataclysm-dda/common.nix
@@ -1,6 +1,7 @@
-{ stdenv, fetchFromGitHub, pkgconfig, gettext, ncurses, CoreFoundation
+{ stdenv, runtimeShell, pkgconfig, gettext, ncurses, CoreFoundation
 , tiles, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf, freetype, Cocoa
-, debug, runtimeShell
+, debug
+, useXdgDir
 }:
 
 let
@@ -12,98 +13,100 @@ let
   tilesDeps = [ SDL2 SDL2_image SDL2_mixer SDL2_ttf freetype ]
     ++ optionals stdenv.isDarwin [ Cocoa ];
 
-  common = {
-    nativeBuildInputs = [ pkgconfig ];
-
-    buildInputs = cursesDeps ++ optionals tiles tilesDeps;
-
-    postPatch = ''
-      patchShebangs .
-    '';
+  installXDGAppLauncher = ''
+    launcher="$out/share/applications/cataclysm-dda.desktop"
+    install -D -m 444 data/xdg/*cataclysm-dda.desktop -T "$launcher"
+    sed -i "$launcher" -e "s,\(Exec=\)\(cataclysm-tiles\),\1$out/bin/\2,"
+    install -D -m 444 data/xdg/cataclysm-dda.svg -t $out/share/icons/hicolor/scalable/apps
+  '';
+
+  installMacOSAppLauncher = ''
+    app=$out/Applications/Cataclysm.app
+    install -D -m 444 data/osx/Info.plist -t $app/Contents
+    install -D -m 444 data/osx/AppIcon.icns -t $app/Contents/Resources
+    mkdir $app/Contents/MacOS
+    launcher=$app/Contents/MacOS/Cataclysm.sh
+    cat << EOF > $launcher
+    #!${runtimeShell}
+    $out/bin/cataclysm-tiles
+    EOF
+    chmod 555 $launcher
+  '';
+in
 
-    makeFlags = [
-      "PREFIX=$(out)" "USE_HOME_DIR=1" "LANGUAGES=all"
-    ] ++ optionals (!debug) [
-      "RELEASE=1"
-    ] ++ optionals tiles [
-      "TILES=1" "SOUND=1"
-    ] ++ optionals stdenv.isDarwin [
-      "NATIVE=osx" "CLANG=1"
-    ];
-
-    postInstall = optionalString tiles
-    ( if !stdenv.isDarwin
-      then utils.installXDGAppLauncher
-      else utils.installMacOSAppLauncher
-    );
-
-    dontStrip = debug;
-
-    # https://hydra.nixos.org/build/65193254
-    # src/weather_data.cpp:203:1: fatal error: opening dependency file obj/tiles/weather_data.d: No such file or directory
-    # make: *** [Makefile:687: obj/tiles/weather_data.o] Error 1
-    enableParallelBuilding = false;
-
-    meta = with stdenv.lib; {
-      description = "A free, post apocalyptic, zombie infested rogue-like";
-      longDescription = ''
-        Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic world.
-        Surviving is difficult: you have been thrown, ill-equipped, into a
-        landscape now riddled with monstrosities of which flesh eating zombies are
-        neither the strangest nor the deadliest.
-
-        Yet with care and a little luck, many things are possible. You may try to
-        eke out an existence in the forests silently executing threats and
-        providing sustenance with your longbow. You can ride into town in a
-        jerry-rigged vehicle, all guns blazing, to settle matters in a fug of
-        smoke from your molotovs. You could take a more measured approach and
-        construct an impregnable fortress, surrounded by traps to protect you from
-        the horrors without. The longer you survive, the more skilled and adapted
-        you will get and the better equipped and armed to deal with the threats
-        you are presented with.
-
-        In the course of your ordeal there will be opportunities and temptations
-        to improve or change your very nature. There are tales of survivors fitted
-        with extraordinary cybernetics giving great power and stories too of
-        gravely mutated survivors who, warped by their ingestion of exotic
-        substances or radiation, now more closely resemble insects, birds or fish
-        than their original form.
-      '';
-      homepage = "https://cataclysmdda.org/";
-      license = licenses.cc-by-sa-30;
-      maintainers = with maintainers; [ mnacamura ];
-      platforms = platforms.unix;
-    };
+stdenv.mkDerivation {
+  pname = "cataclysm-dda";
+
+  nativeBuildInputs = [ pkgconfig ];
+
+  buildInputs = cursesDeps ++ optionals tiles tilesDeps;
+
+  postPatch = ''
+    patchShebangs .
+
+    # Locale patch required for Darwin builds, see:
+    # https://github.com/NixOS/nixpkgs/pull/74064#issuecomment-560083970
+    sed -i src/translations.cpp \
+        -e 's@#elif (defined(__linux__) || (defined(MACOSX) && !defined(TILES)))@#elif 1@'
+  '';
+
+  makeFlags = [
+    "PREFIX=$(out)" "LANGUAGES=all"
+    (if useXdgDir then "USE_XDG_DIR=1" else "USE_HOME_DIR=1")
+  ] ++ optionals (!debug) [
+    "RELEASE=1"
+  ] ++ optionals tiles [
+    "TILES=1" "SOUND=1"
+  ] ++ optionals stdenv.isDarwin [
+    "NATIVE=osx" "CLANG=1"
+  ];
+
+  postInstall = optionalString tiles
+  ( if !stdenv.isDarwin
+    then installXDGAppLauncher
+    else installMacOSAppLauncher
+  );
+
+  dontStrip = debug;
+
+  # https://hydra.nixos.org/build/65193254
+  # src/weather_data.cpp:203:1: fatal error: opening dependency file obj/tiles/weather_data.d: No such file or directory
+  # make: *** [Makefile:687: obj/tiles/weather_data.o] Error 1
+  enableParallelBuilding = false;
+
+  passthru = {
+    isTiles = tiles;
+    isCurses = !tiles;
   };
 
-  utils = {
-    fetchFromCleverRaven = { rev, sha256 }:
-    fetchFromGitHub {
-      owner = "CleverRaven";
-      repo = "Cataclysm-DDA";
-      inherit rev sha256;
-    };
-
-    installXDGAppLauncher = ''
-      launcher="$out/share/applications/cataclysm-dda.desktop"
-      install -D -m 444 data/xdg/*cataclysm-dda.desktop -T "$launcher"
-      sed -i "$launcher" -e "s,\(Exec=\)\(cataclysm-tiles\),\1$out/bin/\2,"
-      install -D -m 444 data/xdg/cataclysm-dda.svg -t $out/share/icons/hicolor/scalable/apps
-    '';
-
-    installMacOSAppLauncher = ''
-      app=$out/Applications/Cataclysm.app
-      install -D -m 444 data/osx/Info.plist -t $app/Contents
-      install -D -m 444 data/osx/AppIcon.icns -t $app/Contents/Resources
-      mkdir $app/Contents/MacOS
-      launcher=$app/Contents/MacOS/Cataclysm.sh
-      cat << EOF > $launcher
-      #!${runtimeShell}
-      $out/bin/cataclysm-tiles
-      EOF
-      chmod 555 $launcher
+  meta = with stdenv.lib; {
+    description = "A free, post apocalyptic, zombie infested rogue-like";
+    longDescription = ''
+      Cataclysm: Dark Days Ahead is a roguelike set in a post-apocalyptic world.
+      Surviving is difficult: you have been thrown, ill-equipped, into a
+      landscape now riddled with monstrosities of which flesh eating zombies are
+      neither the strangest nor the deadliest.
+
+      Yet with care and a little luck, many things are possible. You may try to
+      eke out an existence in the forests silently executing threats and
+      providing sustenance with your longbow. You can ride into town in a
+      jerry-rigged vehicle, all guns blazing, to settle matters in a fug of
+      smoke from your molotovs. You could take a more measured approach and
+      construct an impregnable fortress, surrounded by traps to protect you from
+      the horrors without. The longer you survive, the more skilled and adapted
+      you will get and the better equipped and armed to deal with the threats
+      you are presented with.
+
+      In the course of your ordeal there will be opportunities and temptations
+      to improve or change your very nature. There are tales of survivors fitted
+      with extraordinary cybernetics giving great power and stories too of
+      gravely mutated survivors who, warped by their ingestion of exotic
+      substances or radiation, now more closely resemble insects, birds or fish
+      than their original form.
     '';
+    homepage = "https://cataclysmdda.org/";
+    license = licenses.cc-by-sa-30;
+    maintainers = with maintainers; [ mnacamura ];
+    platforms = platforms.unix;
   };
-in
-
-{ inherit common utils; }
+}
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/default.nix b/nixpkgs/pkgs/games/cataclysm-dda/default.nix
index ad1a9c409d57..ada212ea7e9f 100644
--- a/nixpkgs/pkgs/games/cataclysm-dda/default.nix
+++ b/nixpkgs/pkgs/games/cataclysm-dda/default.nix
@@ -1,25 +1,42 @@
-{ stdenv, callPackage, CoreFoundation
-, tiles ? true, Cocoa
-, debug ? false
-}:
+{ newScope, darwin }:
 
 let
-  inherit (callPackage ./common.nix { inherit tiles CoreFoundation Cocoa debug; }) common utils;
-  inherit (utils) fetchFromCleverRaven;
-in
+  callPackage = newScope self;
 
-stdenv.mkDerivation (common // rec {
-  version = "0.E";
-  name = "cataclysm-dda-${version}";
+  stable = rec {
+    tiles = callPackage ./stable.nix {
+      inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa;
+    };
 
-  src = fetchFromCleverRaven {
-    rev = version;
-    sha256 = "0pbi0fw37zimzdklfj58s1ql0wlqq7dy6idkcsib3hn910ajaxan";
+    curses = tiles.override { tiles = false; };
   };
 
-  patches = [ ./patches/fix_locale_dir.patch ];
+  git = rec {
+    tiles = callPackage ./git.nix {
+      inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa;
+    };
 
-  meta = with stdenv.lib.maintainers; common.meta // {
-    maintainers = common.meta.maintainers ++ [ skeidel ];
+    curses = tiles.override { tiles = false; };
   };
-})
+
+  lib = callPackage ./lib.nix {};
+
+  pkgs = callPackage ./pkgs {};
+
+  self = {
+    inherit
+    callPackage
+    stable
+    git;
+
+    inherit (lib)
+    buildMod
+    buildSoundPack
+    buildTileSet
+    wrapCDDA;
+
+    inherit pkgs;
+  };
+in
+
+self
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/git.nix b/nixpkgs/pkgs/games/cataclysm-dda/git.nix
index 8e3c3e33994f..36f37f7aeba4 100644
--- a/nixpkgs/pkgs/games/cataclysm-dda/git.nix
+++ b/nixpkgs/pkgs/games/cataclysm-dda/git.nix
@@ -1,33 +1,41 @@
-{ stdenv, callPackage, CoreFoundation
+{ lib, callPackage, CoreFoundation, fetchFromGitHub, pkgs, wrapCDDA
 , tiles ? true, Cocoa
 , debug ? false
+, useXdgDir ? false
+, version ? "2019-11-22"
+, rev ? "a6c8ece992bffeae3788425dd4b3b5871e66a9cd"
+, sha256 ? "0ww2q5gykxm802z1kffmnrfahjlx123j1gfszklpsv0b1fccm1ab"
 }:
 
 let
-  inherit (stdenv.lib) substring;
-  inherit (callPackage ./common.nix { inherit tiles CoreFoundation Cocoa debug; }) common utils;
-  inherit (utils) fetchFromCleverRaven;
-in
+  common = callPackage ./common.nix {
+    inherit CoreFoundation tiles Cocoa debug useXdgDir;
+  };
 
-stdenv.mkDerivation (common // rec {
-  version = "2019-11-22";
-  name = "cataclysm-dda-git-${version}";
+  self = common.overrideAttrs (common: rec {
+    pname = common.pname + "-git";
+    inherit version;
 
-  src = fetchFromCleverRaven {
-    rev = "a6c8ece992bffeae3788425dd4b3b5871e66a9cd";
-    sha256 = "0ww2q5gykxm802z1kffmnrfahjlx123j1gfszklpsv0b1fccm1ab";
-  };
+    src = fetchFromGitHub {
+      owner = "CleverRaven";
+      repo = "Cataclysm-DDA";
+      inherit rev sha256;
+    };
 
-  patches = [
-    # Locale patch required for Darwin builds, see: https://github.com/NixOS/nixpkgs/pull/74064#issuecomment-560083970
-    ./patches/fix_locale_dir_git.patch
-  ];
+    makeFlags = common.makeFlags ++ [
+      "VERSION=git-${version}-${lib.substring 0 8 src.rev}"
+    ];
 
-  makeFlags = common.makeFlags ++ [
-    "VERSION=git-${version}-${substring 0 8 src.rev}"
-  ];
+    passthru = common.passthru // {
+      pkgs = pkgs.override { build = self; };
+      withMods = wrapCDDA self;
+    };
 
-  meta = with stdenv.lib.maintainers; common.meta // {
-    maintainers = common.meta.maintainers ++ [ rardiol ];
-  };
-})
+    meta = common.meta // {
+      maintainers = with lib.maintainers;
+      common.meta.maintainers ++ [ rardiol ];
+    };
+  });
+in
+
+self
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/lib.nix b/nixpkgs/pkgs/games/cataclysm-dda/lib.nix
new file mode 100644
index 000000000000..02678ed0228e
--- /dev/null
+++ b/nixpkgs/pkgs/games/cataclysm-dda/lib.nix
@@ -0,0 +1,17 @@
+{ callPackage }:
+
+{
+  buildMod = callPackage ./builder.nix {
+    type = "mod";
+  };
+
+  buildSoundPack = callPackage ./builder.nix {
+    type = "soundpack";
+  };
+
+  buildTileSet = callPackage ./builder.nix {
+    type = "tileset";
+  };
+
+  wrapCDDA = callPackage ./wrapper.nix {};
+}
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir.patch b/nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir.patch
deleted file mode 100644
index 5bfff892d2af..000000000000
--- a/nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/src/translations.cpp
-+++ b/src/translations.cpp
-@@ -212,14 +212,12 @@ void set_language()
-     auto env = getenv( "LANGUAGE" );
-     locale_dir = std::string( PATH_INFO::base_path() + "lang/mo/" + ( env ? env : "none" ) +
-                               "/LC_MESSAGES/cataclysm-dda.mo" );
--#elif (defined(__linux__) || (defined(MACOSX) && !defined(TILES)))
-+#else
-     if( !PATH_INFO::base_path().empty() ) {
-         locale_dir = PATH_INFO::base_path() + "share/locale";
-     } else {
-         locale_dir = "lang/mo";
-     }
--#else
--    locale_dir = "lang/mo";
- #endif
- 
-     const char *locale_dir_char = locale_dir.c_str();
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir_git.patch b/nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir_git.patch
deleted file mode 100644
index 79b442ff5c99..000000000000
--- a/nixpkgs/pkgs/games/cataclysm-dda/patches/fix_locale_dir_git.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/src/translations.cpp b/src/translations.cpp
-index 067e2cd77d..5660d18b3d 100644
---- a/src/translations.cpp
-+++ b/src/translations.cpp
-@@ -211,14 +211,12 @@ void set_language()
-     auto env = getenv( "LANGUAGE" );
-     locale_dir = std::string( FILENAMES["base_path"] + "lang/mo/" + ( env ? env : "none" ) +
-                               "/LC_MESSAGES/cataclysm-dda.mo" );
--#elif (defined(__linux__) || (defined(MACOSX) && !defined(TILES)))
-+#else
-     if( !FILENAMES["base_path"].empty() ) {
-         locale_dir = FILENAMES["base_path"] + "share/locale";
-     } else {
-         locale_dir = "lang/mo";
-     }
--#else
--    locale_dir = "lang/mo";
- #endif
-
-     const char *locale_dir_char = locale_dir.c_str();
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/pkgs/default.nix b/nixpkgs/pkgs/games/cataclysm-dda/pkgs/default.nix
new file mode 100644
index 000000000000..6f3df09a7861
--- /dev/null
+++ b/nixpkgs/pkgs/games/cataclysm-dda/pkgs/default.nix
@@ -0,0 +1,27 @@
+{ lib, callPackage, build ? null }:
+
+let
+  pkgs = {
+    mod = {
+    };
+
+    soundpack = {
+    };
+
+    tileset = {
+      UndeadPeople = callPackage ./tilesets/UndeadPeople {};
+    };
+  };
+
+  pkgs' = lib.mapAttrs (_: mod: lib.filterAttrs availableForBuild mod) pkgs;
+
+  availableForBuild = _: mod:
+  if isNull build then
+    true
+  else if build.isTiles then
+    mod.forTiles
+  else
+    mod.forCurses;
+in
+
+lib.makeExtensible (_: pkgs')
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/pkgs/tilesets/UndeadPeople/default.nix b/nixpkgs/pkgs/games/cataclysm-dda/pkgs/tilesets/UndeadPeople/default.nix
new file mode 100644
index 000000000000..7a58cea82081
--- /dev/null
+++ b/nixpkgs/pkgs/games/cataclysm-dda/pkgs/tilesets/UndeadPeople/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildTileSet, fetchFromGitHub }:
+
+buildTileSet {
+  modName = "UndeadPeople";
+  version = "2020-07-08";
+
+  src = fetchFromGitHub {
+    owner = "SomeDeadGuy";
+    repo = "UndeadPeopleTileset";
+    rev = "f7f13b850fafe2261deee051f45d9c611a661534";
+    sha256 = "0r06srjr7rq51jk9yfyxz80nfgb98mkn86cbcjfxpibgbqvcp0zm";
+  };
+
+  modRoot = "MSX++UnDeadPeopleEdition";
+
+  meta = with lib; {
+    description = "Cataclysm DDA tileset based on MSX++ tileset";
+    homepage = "https://github.com/SomeDeadGuy/UndeadPeopleTileset";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ mnacamura ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/stable.nix b/nixpkgs/pkgs/games/cataclysm-dda/stable.nix
new file mode 100644
index 000000000000..076a33a9e899
--- /dev/null
+++ b/nixpkgs/pkgs/games/cataclysm-dda/stable.nix
@@ -0,0 +1,34 @@
+{ lib, callPackage, CoreFoundation, fetchFromGitHub, pkgs, wrapCDDA
+, tiles ? true, Cocoa
+, debug ? false
+, useXdgDir ? false
+}:
+
+let
+  common = callPackage ./common.nix {
+    inherit CoreFoundation tiles Cocoa debug useXdgDir;
+  };
+
+  self = common.overrideAttrs (common: rec {
+    version = "0.E-2";
+
+    src = fetchFromGitHub {
+      owner = "CleverRaven";
+      repo = "Cataclysm-DDA";
+      rev = version;
+      sha256 = "15l6w6lxays7qmsv0ci2ry53asb9an9dh7l7fc13256k085qcg68";
+    };
+
+    passthru = common.passthru // {
+      pkgs = pkgs.override { build = self; };
+      withMods = wrapCDDA self;
+    };
+
+    meta = common.meta // {
+      maintainers = with lib.maintainers;
+      common.meta.maintainers ++ [ skeidel ];
+    };
+  });
+in
+
+self
diff --git a/nixpkgs/pkgs/games/cataclysm-dda/wrapper.nix b/nixpkgs/pkgs/games/cataclysm-dda/wrapper.nix
new file mode 100644
index 000000000000..a73c320f9c67
--- /dev/null
+++ b/nixpkgs/pkgs/games/cataclysm-dda/wrapper.nix
@@ -0,0 +1,47 @@
+{ lib, symlinkJoin, makeWrapper }:
+
+unwrapped:
+
+pkgsSpec:
+
+let
+  mods = if lib.isFunction pkgsSpec
+         then pkgsSpec unwrapped.pkgs
+         else pkgsSpec;
+in
+
+if builtins.length mods == 0
+then unwrapped
+else symlinkJoin {
+  name = unwrapped.name + "-with-mods";
+
+  paths = [ unwrapped ] ++ mods;
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postBuild = ''
+    if [ -x $out/bin/cataclysm ]; then
+        wrapProgram $out/bin/cataclysm \
+            --add-flags "--datadir $out/share/cataclysm-dda/"
+    fi
+    if [ -x $out/bin/cataclysm-tiles ]; then
+        wrapProgram $out/bin/cataclysm-tiles \
+            --add-flags "--datadir $out/share/cataclysm-dda/"
+    fi
+
+    # Launch the wrapped program
+    replaceProgram() {
+        cp "$1" "''${1}.bk"
+        unlink "$1"
+        mv "''${1}.bk" "$1"
+        sed -i "$1" -e "s,/nix/store/.\+\(/bin/cataclysm-tiles\),$out\1,"
+    }
+    for script in "$out/share/applications/cataclysm-dda.desktop" \
+                  "$out/Applications/Cataclysm.app/Contents/MacOS/Cataclysm.sh"
+    do
+        if [ -e "$script" ]; then
+            replaceProgram "$script"
+        fi
+    done
+  '';
+}
diff --git a/nixpkgs/pkgs/games/chiaki/default.nix b/nixpkgs/pkgs/games/chiaki/default.nix
index ac228118444a..be4ec7b73b49 100644
--- a/nixpkgs/pkgs/games/chiaki/default.nix
+++ b/nixpkgs/pkgs/games/chiaki/default.nix
@@ -1,23 +1,23 @@
 { lib, mkDerivation, fetchFromGitHub
-, cmake, ffmpeg_3, libopus, qtbase, qtmultimedia, qtsvg, pkgconfig, protobuf
+, cmake, ffmpeg, libopus, qtbase, qtmultimedia, qtsvg, pkgconfig, protobuf
 , python3Packages, SDL2 }:
 
 mkDerivation rec {
   pname = "chiaki";
-  version = "1.1.3";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "thestr4ng3r";
     repo = "chiaki";
     fetchSubmodules = true;
-    sha256 = "12cb4wpibh077san9rpsmavihf0xy9iqc9zl7y0aagrkl50h19kr";
+    sha256 = "00lzsbjd1w1bhlblgf7zp112sk8ac09c3bzi5ljxbn02mi0an3qp";
   };
 
   nativeBuildInputs = [
     cmake pkgconfig protobuf python3Packages.python python3Packages.protobuf
   ];
-  buildInputs = [ ffmpeg_3 libopus qtbase qtmultimedia qtsvg protobuf SDL2 ];
+  buildInputs = [ ffmpeg libopus qtbase qtmultimedia qtsvg protobuf SDL2 ];
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/games/chocolate-doom/default.nix b/nixpkgs/pkgs/games/chocolate-doom/default.nix
index 1c2a24de01dd..1b77a72f8d0b 100644
--- a/nixpkgs/pkgs/games/chocolate-doom/default.nix
+++ b/nixpkgs/pkgs/games/chocolate-doom/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "chocolate-doom";
-  version = "3.0.0";
+  version = "3.0.1";
 
   src = fetchFromGitHub {
     owner = "chocolate-doom";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "0ajzb767wyj8vzhjpsmgslw42b0155ji4alk26shxl7k5ijbzn0j";
+    sha256 = "1zlcqhd49c5n8vaahgaqrc2y10z86xng51sbd82xm3rk2dly25jp";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/games/cockatrice/default.nix b/nixpkgs/pkgs/games/cockatrice/default.nix
index 9d07d09e27b2..848bf2ab8851 100644
--- a/nixpkgs/pkgs/games/cockatrice/default.nix
+++ b/nixpkgs/pkgs/games/cockatrice/default.nix
@@ -4,13 +4,13 @@
 
 mkDerivation rec {
   pname = "cockatrice";
-  version = "2020-03-20-Release-2.7.4";
+  version = "2020-08-23-Release-2.7.5";
 
   src = fetchFromGitHub {
     owner = "Cockatrice";
     repo = "Cockatrice";
     rev = "${version}";
-    sha256 = "1d229gswfcqxch19wb744d9h897qwzf2y9imwrbcwnlhpbr1j62k";
+    sha256 = "1yaxm7q0ja3rgx197hh8ynjc6ncc4hm0qdn9v7f0l4fbv0bdpv34";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/games/crawl/crawl_purify.patch b/nixpkgs/pkgs/games/crawl/crawl_purify.patch
index f792dc013f0d..dda55b09f329 100644
--- a/nixpkgs/pkgs/games/crawl/crawl_purify.patch
+++ b/nixpkgs/pkgs/games/crawl/crawl_purify.patch
@@ -1,37 +1,22 @@
-diff -ru3 crawl-ref-0.23.2-src-old/crawl-ref/source/Makefile crawl-ref-0.23.2-src-new/crawl-ref/source/Makefile
---- crawl-ref-0.23.2-src-old/crawl-ref/source/Makefile	1970-01-01 03:00:01.000000000 +0300
-+++ crawl-ref-0.23.2-src-new/crawl-ref/source/Makefile	2017-07-27 14:45:34.611221571 +0300
-@@ -224,9 +224,9 @@
-	STRIP := strip -x
-	NEED_APPKIT = YesPlease
-	LIBNCURSES_IS_UNICODE = Yes
+diff --git a/crawl-ref/source/Makefile b/crawl-ref/source/Makefile
+--- a/crawl-ref/source/Makefile
++++ b/crawl-ref/source/Makefile
+@@ -248,9 +248,9 @@ ifeq ($(uname_S),Darwin)
+ 	STRIP := strip -x
+ 	NEED_APPKIT = YesPlease
+ 	LIBNCURSES_IS_UNICODE = Yes
 -	NO_PKGCONFIG = Yes
 -	BUILD_SQLITE = YesPlease
 -	BUILD_ZLIB = YesPlease
 +	#NO_PKGCONFIG = Yes
 +	#BUILD_SQLITE = YesPlease
 +	#BUILD_ZLIB = YesPlease
-	ifdef TILES
-		EXTRA_LIBS += -framework AppKit -framework AudioUnit -framework CoreAudio -framework ForceFeedback -framework Carbon -framework IOKit -framework OpenGL -framework AudioToolbox -framework CoreVideo contrib/install/$(ARCH)/lib/libSDL2main.a
-		BUILD_FREETYPE = YesPlease
-@@ -286,13 +286,7 @@
- LIBZ := contrib/install/$(ARCH)/lib/libz.a
- 
- ifndef CROSSHOST
--	# FreeBSD keeps all of its userland includes in /usr/local so
--	# look there
--	ifeq ($(uname_S),FreeBSD)
--		SQLITE_INCLUDE_DIR := /usr/local/include
--	else
--		SQLITE_INCLUDE_DIR := /usr/include
--	endif
-+	SQLITE_INCLUDE_DIR := ${sqlite}/include
- else
- 	# This is totally wrong, works only with some old-style setups, and
- 	# on some architectures of Debian/new FHS multiarch -- excluding, for
-diff -ru3 crawl-ref-0.23.2-src-old/crawl-ref/source/util/find_font crawl-ref-0.23.2-src-new/crawl-ref/source/util/find_font
---- crawl-ref-0.23.2-src-old/crawl-ref/source/util/find_font	1970-01-01 03:00:01.000000000 +0300
-+++ crawl-ref-0.23.2-src-new/crawl-ref/source/util/find_font	2017-07-27 14:44:29.784235540 +0300
+ 	ifdef TILES
+ 		EXTRA_LIBS += -framework AppKit -framework AudioUnit -framework CoreAudio -framework ForceFeedback -framework Carbon -framework IOKit -framework OpenGL -framework AudioToolbox -framework CoreVideo contrib/install/$(ARCH)/lib/libSDL2main.a
+ 		BUILD_FREETYPE = YesPlease
+diff --git a/crawl-ref/source/util/find_font b/crawl-ref/source/util/find_font
+--- a/crawl-ref/source/util/find_font
++++ b/crawl-ref/source/util/find_font
 @@ -1,6 +1,6 @@
  #! /bin/sh
  
@@ -59,4 +44,4 @@ diff --git a/crawl-ref/source/windowmanager-sdl.cc b/crawl-ref/source/windowmana
 +# include <SDL2/SDL_image.h>
  # if defined(USE_SOUND) && !defined(WINMM_PLAY_SOUNDS)
  #  include <SDL2/SDL_mixer.h>
- # endif
\ No newline at end of file
+ # endif
diff --git a/nixpkgs/pkgs/games/crawl/default.nix b/nixpkgs/pkgs/games/crawl/default.nix
index 8fe3b20419ac..20e31c979e6f 100644
--- a/nixpkgs/pkgs/games/crawl/default.nix
+++ b/nixpkgs/pkgs/games/crawl/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   name = "crawl-${version}${lib.optionalString tileMode "-tiles"}";
-  version = "0.24.1";
+  version = "0.25.1";
 
   src = fetchFromGitHub {
     owner = "crawl";
     repo = "crawl";
     rev = version;
-    sha256 = "1fiizkigmbrw0nb1l1m3syl2mw4a4r36l1y0n4z8z7slp79bsbv4";
+    sha256 = "0i1cvwzwmcb07ynz1nk2svprfhsgcqmagvj5jfzayvcb1a2ww23b";
   };
 
   # Patch hard-coded paths and remove force library builds
diff --git a/nixpkgs/pkgs/games/crispy-doom/default.nix b/nixpkgs/pkgs/games/crispy-doom/default.nix
index ea7c3c6e4784..5bd6e714e427 100644
--- a/nixpkgs/pkgs/games/crispy-doom/default.nix
+++ b/nixpkgs/pkgs/games/crispy-doom/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, autoreconfHook, pkgconfig, SDL2, SDL2_mixer, SDL2_net, fetchFromGitHub }:
+{ stdenv, autoreconfHook, pkgconfig, SDL2, SDL2_mixer, SDL2_net, fetchFromGitHub, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "crispy-doom";
@@ -11,6 +11,18 @@ stdenv.mkDerivation rec {
     sha256 = "1b6gn0dysv631jynh769whww9xcss1gms78sz3nrn855q1dsvcb4";
   };
 
+  patches = [
+    # Fixes CVE-2020-14983
+    (fetchpatch {
+      url = "https://github.com/chocolate-doom/chocolate-doom/commit/f1a8d991aa8a14afcb605cf2f65cd15fda204c56.diff";
+      sha256 = "1z6pxg9azcqq7g09hjc09d01knd803nhqilkw2kbx8648hil9mgn";
+    })
+    (fetchpatch {
+      url = "https://github.com/chocolate-doom/chocolate-doom/commit/54fb12eeaa7d527defbe65e7e00e37d5feb7c597.diff";
+      sha256 = "0ww21jn02ld73rkp06f7fqy92jqv8c9q4d1mvsryag1gmvy57znj";
+    })
+  ];
+
   postPatch = ''
     sed -e 's#/games#/bin#g' -i src{,/setup}/Makefile.am
   '';
diff --git a/nixpkgs/pkgs/games/curseofwar/default.nix b/nixpkgs/pkgs/games/curseofwar/default.nix
index 8b915345f862..9aff3798b6ba 100644
--- a/nixpkgs/pkgs/games/curseofwar/default.nix
+++ b/nixpkgs/pkgs/games/curseofwar/default.nix
@@ -1,34 +1,30 @@
 { stdenv
 , fetchFromGitHub
-, fetchpatch
 , ncurses
 , SDL
 }:
 
 stdenv.mkDerivation rec {
   pname = "curseofwar";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "a-nikolaev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1bj3lv5vrnwzzkgj31pyf1lzkz10qphvzlfz7a3j4plqkczjq92y";
+    sha256 = "1wd71wdnj9izg5d95m81yx3684g4zdi7fsy0j5wwnbd9j34ilz1i";
   };
 
-  patches = [(fetchpatch {
-    # Pull request #40: https://github.com/a-nikolaev/curseofwar/pull/40
-    name = "prefix-independent-data";
-    url = "https://github.com/fgaz/curseofwar/commit/947dea527b2bf4c6e107b8e9c66f4c4fd775b6f9.patch";
-    sha256 = "0ak5igaxmbavkbl8101xx6gswhwgzm5f6wyplwapgh7cylnclc61";
-  })];
-
   buildInputs = [
     ncurses
     SDL
   ];
 
-  makeFlags = (if isNull SDL then [] else [ "SDL=yes" ]) ++ [ "PREFIX=$(out)" ];
+  makeFlags = (if isNull SDL then [] else [ "SDL=yes" ]) ++ [
+    "PREFIX=$(out)"
+    # force platform's cc on darwin, otherwise gcc is used
+    "CC=${stdenv.cc.targetPrefix}cc"
+  ];
 
   meta = with stdenv.lib; {
     description = "A fast-paced action strategy game";
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/default.nix b/nixpkgs/pkgs/games/dwarf-fortress/default.nix
index 0664af117e1e..2a4df9bf7cf7 100644
--- a/nixpkgs/pkgs/games/dwarf-fortress/default.nix
+++ b/nixpkgs/pkgs/games/dwarf-fortress/default.nix
@@ -86,6 +86,8 @@ let
         twbt = twbt;
         dfhack = dfhack;
         dwarf-therapist = dwarf-therapist;
+
+        jdk = pkgs.jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
       };
   }) (lib.attrNames self.df-hashes));
 
@@ -104,7 +106,9 @@ let
 
     soundSense = callPackage ./soundsense.nix { };
 
-    legends-browser = callPackage ./legends-browser {};
+    legends-browser = callPackage ./legends-browser {
+      jre = pkgs.jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+    };
 
     themes = recurseIntoAttrs (callPackage ./themes {
       stdenv = stdenvNoCC;
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/dfhack/default.nix b/nixpkgs/pkgs/games/dwarf-fortress/dfhack/default.nix
index bd37f6180b14..11c21b82c29c 100644
--- a/nixpkgs/pkgs/games/dwarf-fortress/dfhack/default.nix
+++ b/nixpkgs/pkgs/games/dwarf-fortress/dfhack/default.nix
@@ -1,5 +1,5 @@
 { stdenv, buildEnv, lib, fetchFromGitHub, cmake, writeScriptBin
-, perl, XMLLibXML, XMLLibXSLT, zlib
+, perl, XMLLibXML, XMLLibXSLT, zlib, ruby
 , enableStoneSense ? false,  allegro5, libGLU, libGL
 , enableTWBT ? true, twbt
 , SDL
@@ -53,10 +53,10 @@ let
       prerelease = true;
     };
     "0.47.04" = {
-      dfHackRelease = "0.47.04-alpha0";
-      sha256 = "07056k6717mqim9skwjprqplj8jmmli6g4p2c72c8000jwnn2hjy";
-      xmlRev = "23500e4e9bd1885365d0a2ef1746c321c1dd50aa";
-      prerelease = true;
+      dfHackRelease = "0.47.04-r2";
+      sha256 = "18ppn1dqaxi6ahjzsvb9kw70rvca106a1hibhzc4rxmraypnqb89";
+      xmlRev = "036b662a1bbc96b4911f3cbe74dfa1243b6459bc";
+      prerelease = false;
     };
   };
 
@@ -109,6 +109,19 @@ let
     };
 
     patches = [ ./fix-stonesense.patch ];
+
+    # As of
+    # https://github.com/DFHack/dfhack/commit/56e43a0dde023c5a4595a22b29d800153b31e3c4,
+    # dfhack gets its goodies from the directory above the Dwarf_Fortress
+    # executable, which leads to stock Dwarf Fortress and not the built
+    # environment where all the dfhack resources are symlinked to (typically
+    # ~/.local/share/df_linux). This causes errors like `tweak is not a
+    # recognized command` to be reported and dfhack to lose some of its
+    # functionality.
+    postPatch = ''
+      sed -i 's@cached_path = path_string.*@cached_path = getenv("DF_DIR");@' library/Process-linux.cpp
+    '';
+
     nativeBuildInputs = [ cmake perl XMLLibXML XMLLibXSLT fakegit ];
     # We don't use system libraries because dfhack needs old C++ ABI.
     buildInputs = [ zlib SDL ]
@@ -127,6 +140,12 @@ let
     cmakeFlags = [ "-DDFHACK_BUILD_ARCH=${arch}" "-DDOWNLOAD_RUBY=OFF" ]
               ++ lib.optionals enableStoneSense [ "-DBUILD_STONESENSE=ON" "-DSTONESENSE_INTERNAL_SO=OFF" ];
 
+    # dfhack expects an unversioned libruby.so to be present in the hack
+    # subdirectory for ruby plugins to function.
+    postInstall = ''
+      ln -s ${ruby}/lib/libruby-*.so $out/hack/libruby.so
+    '';
+
     enableParallelBuilding = true;
   };
 in
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/themes/themes.json b/nixpkgs/pkgs/games/dwarf-fortress/themes/themes.json
index 48f47c4fbb9e..8b0b9127d5b1 100644
--- a/nixpkgs/pkgs/games/dwarf-fortress/themes/themes.json
+++ b/nixpkgs/pkgs/games/dwarf-fortress/themes/themes.json
@@ -1,8 +1,8 @@
 [
   {
     "name": "afro-graphics",
-    "version": "47.02",
-    "sha256": "0np4jc05905q3bjplbrfi09q4rq3pjbf2vmbrmazfagj2mp8m7z5"
+    "version": "47.04",
+    "sha256": "1x1ir0qi3g8wgzwm1pnrkrqb6lhnjq87vs30l8kva6y5wr4sz7q0"
   },
   {
     "name": "autoreiv",
@@ -21,48 +21,53 @@
   },
   {
     "name": "gemset",
-    "version": "47.02",
-    "sha256": "0gz6cfx9kyldh5dxicyw0yl9lq4qw51vvlpzl767ml0bx3w38bwy"
+    "version": "47.04",
+    "sha256": "015nkkdnpykhz6a1n8qi3wgap19a4wavz4n2xbvfa4g770lcjd92"
   },
   {
     "name": "ironhand",
-    "version": "47.02",
-    "sha256": "0j612xxz8g91zslw3a6yls3bzzmz0xdi2n0zx9zkmpzcl67f39ry"
+    "version": "47.04",
+    "sha256": "0x3hi1isgc2cv7c3qz87rm7ik0kbd748djpnghvjdqpj3a0n1ih2"
   },
   {
     "name": "jolly-bastion",
-    "version": "47.02",
-    "sha256": "1df2hvm72lklmhhphcwsqm1m3dnaqxd8qvpygg5x71cfgkjd41ic"
+    "version": "47.04",
+    "sha256": "0799ad90g62nvpdcl6zq3vr2nvfc62lprm4br9n2hbs8wgrra6rq"
   },
   {
     "name": "mayday",
-    "version": "47.01",
-    "sha256": "02fby7y4zzq8qgq2wsdvzp1k6zgfhdkm768zp0zzj9byi6gmnaq6"
+    "version": "47.04a",
+    "sha256": "1hpj40762n81grsddg3nc5jxc0bqmy2xamxvsgxzb2bx0b7akz0w"
+  },
+  {
+    "name": "meph",
+    "version": "47.04_v5.5.0_V1.1.2",
+    "sha256": "0q8hfm66rag61qd2hab7lsr4nyg52bn1hvy6bl7z6kv4yj5cra50"
   },
   {
     "name": "obsidian",
-    "version": "47.02",
-    "sha256": "03b26z557099k0l44lizagh17pz1y6apy496ivzv426xy0mzz684"
+    "version": "47.04a",
+    "sha256": "0y5kmj362i9y8w1n5d1nx80yq88c0xqps9i02gvnls6r421a4nms"
   },
   {
     "name": "phoebus",
-    "version": "47.02a",
-    "sha256": "16zllnkrxi2365rd5m392xv72a9wvai0l3pz8xwkb8nlws8f58lb"
+    "version": "47.04a",
+    "sha256": "1ihbqs5a3b8pydbcynblvgw2bxkgr9hhpmgjlji7a7zvz8m6h6pw"
   },
   {
     "name": "rally-ho",
-    "version": "47.02",
-    "sha256": "0xw2psmfjrgab0267scc7frgl9h1ypc0mbymn8z3x06m5wc3hbdh"
+    "version": "47.04",
+    "sha256": "0pmvpfbj07ll674lw7mjgkb4kgjk4mxr82fjq4ppvwrnzx6vi2g0"
   },
   {
     "name": "spacefox",
-    "version": "47.02",
-    "sha256": "180fp2s489m2arc2z11j1qjnpcadjjkyami13yr3zd0v7msg64h8"
+    "version": "47.04",
+    "sha256": "0sk3k5bcpfl2xind4vfrgzbcqqbw0mg47pm3d3h44vi6hl3bdaqj"
   },
   {
     "name": "taffer",
-    "version": "47.01b",
-    "sha256": "0b5hnli3gg32r7yvb3x1fqrmpxlk33j1hila2wiihybkkfnvxy5f"
+    "version": "47.04",
+    "sha256": "1ly2sc0pb2kybb8grj19zx372whblmd0bj8p64akpi2rrywi13sy"
   },
   {
     "name": "tergel",
@@ -70,8 +75,13 @@
     "sha256": "142sd1i11vvirn68rp4gqzl67ww597df1lc57ycnpnz0n3q39kxy"
   },
   {
+    "name": "vettlingr",
+    "version": "1.4a",
+    "sha256": "1p4y0dm52rb49dnmcnivddlsd94m4gr1pxn04fpjbrvck22klgpj"
+  },
+  {
     "name": "wanderlust",
-    "version": "47.02",
-    "sha256": "0c36nxry189qdyinjk03wwm3j7q9q7b2sabkv7glx8yz2i61j5q9"
+    "version": "47.04",
+    "sha256": "1z56m8zplq5d18sbkwg5lwcy8iwfa5hbxixsm3hdxm04qyld1z89"
   }
 ]
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/twbt/default.nix b/nixpkgs/pkgs/games/dwarf-fortress/twbt/default.nix
index b5bff0e9b7a8..a0990e04f93a 100644
--- a/nixpkgs/pkgs/games/dwarf-fortress/twbt/default.nix
+++ b/nixpkgs/pkgs/games/dwarf-fortress/twbt/default.nix
@@ -42,9 +42,10 @@ let
       prerelease = false;
     };
     "0.47.04" = {
-      twbtRelease = "6.61";
-      sha256 = "07bqy9rkd64h033sxdpigp5zq4xrr0xd36wdr1b21g649mv8j6yw";
-      prerelease = false;
+      twbtRelease = "6.xx";
+      dfhackRelease = "0.47.04-r2";
+      sha256 = "092dgp8fh1j4nqr9wbzn89ib1nhscclr8m91lfxsvg0mgn7j8xlv";
+      prerelease = true;
     };
   };
 
@@ -58,7 +59,11 @@ stdenvNoCC.mkDerivation rec {
   version = release.twbtRelease;
 
   src = fetchurl {
-    url = "https://github.com/mifki/df-twbt/releases/download/v${version}/twbt-${version}-linux.zip";
+    url =
+      if version == "6.xx" then
+        "https://github.com/thurin/df-twbt/releases/download/${release.dfhackRelease}/twbt-${version}-linux64-${release.dfhackRelease}.zip"
+      else
+        "https://github.com/mifki/df-twbt/releases/download/v${version}/twbt-${version}-linux.zip";
     sha256 = release.sha256;
   };
 
diff --git a/nixpkgs/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in b/nixpkgs/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in
index 054935af012e..b041067d89e4 100644
--- a/nixpkgs/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in
+++ b/nixpkgs/pkgs/games/dwarf-fortress/wrapper/dwarf-fortress-init.in
@@ -1,6 +1,6 @@
 shopt -s extglob
 
-[ -z "$DF_DIR" ] && DF_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/df_linux"
+[ -z "$DF_DIR" ] && export DF_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/df_linux"
 env_dir="@env@"
 exe="$env_dir/@exe@"
 
diff --git a/nixpkgs/pkgs/games/eduke32/default.nix b/nixpkgs/pkgs/games/eduke32/default.nix
index 60abe2964676..53baac79eed6 100644
--- a/nixpkgs/pkgs/games/eduke32/default.nix
+++ b/nixpkgs/pkgs/games/eduke32/default.nix
@@ -12,7 +12,7 @@ let
     comment = "Duke Nukem 3D port";
     desktopName = "Enhanced Duke Nukem 3D";
     genericName = "Duke Nukem 3D port";
-    categories = "Application;Game;";
+    categories = "Game;";
   };
 
   wrapper = "eduke32-wrapper";
diff --git a/nixpkgs/pkgs/games/eidolon/default.nix b/nixpkgs/pkgs/games/eidolon/default.nix
index 5461304d3343..e982c95c4d66 100644
--- a/nixpkgs/pkgs/games/eidolon/default.nix
+++ b/nixpkgs/pkgs/games/eidolon/default.nix
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
     description = "A single TUI-based registry for drm-free, wine and steam games on linux, accessed through a rofi launch menu";
     homepage = "https://github.com/nicohman/eidolon";
     license = licenses.gpl3;
-    maintainers = [ maintainers."0x4A6F" ];
+    maintainers = with maintainers; [ _0x4A6F ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/games/empty-epsilon/default.nix b/nixpkgs/pkgs/games/empty-epsilon/default.nix
index 73d42c65008e..098ed35406f4 100644
--- a/nixpkgs/pkgs/games/empty-epsilon/default.nix
+++ b/nixpkgs/pkgs/games/empty-epsilon/default.nix
@@ -3,8 +3,8 @@
 let
 
   major = "2020";
-  minor = "04";
-  patch = "09";
+  minor = "08";
+  patch = "07";
 
   version = "${major}.${minor}.${patch}";
 
@@ -16,7 +16,7 @@ let
       owner = "daid";
       repo = "SeriousProton";
       rev = "EE-${version}";
-      sha256 = "0blqsii8pgxajargd1idry2zakhnvl7j309yjmddarpvafg73blj";
+      sha256 = "1mfizhmwh6xgb5n34l3wrbxm21f7gsvsyacsmnxw9rkz0ya7ch30";
     };
 
     nativeBuildInputs = [ cmake ];
@@ -42,7 +42,7 @@ stdenv.mkDerivation {
     owner = "daid";
     repo = "EmptyEpsilon";
     rev = "EE-${version}";
-    sha256 = "1hdni8m6m7bgx11scqqqzhcjrmrl0jsxb6cr6rvjbqnahzi23slr";
+    sha256 = "0p41wx9yk09xjmfkjpdgi3b2999ps2am3xqwd866q11f6ci7viv5";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/games/endgame-singularity/default.nix b/nixpkgs/pkgs/games/endgame-singularity/default.nix
index 46f21629ca36..4e855dbd053f 100644
--- a/nixpkgs/pkgs/games/endgame-singularity/default.nix
+++ b/nixpkgs/pkgs/games/endgame-singularity/default.nix
@@ -1,46 +1,38 @@
-{ stdenv, fetchurl, unzip, python2 }:
+{ stdenv
+, fetchurl
+, fetchFromGitHub
+, unzip
+, python3
+, enableDefaultMusicPack ? true
+}:
 
-python2.pkgs.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "endgame-singularity";
-  version = "0.30c";
-  format = "other";
+  version = "1.00";
 
   srcs = [
-    (fetchurl {
-      url = "http://www.emhsoft.com/singularity/singularity-${version}-src.tar.gz";
-      sha256 = "13zjhf67gmla67nkfpxb01rxs8j9n4hs0s4n9lnnq4zgb709yxgl";
+    (fetchFromGitHub {
+      owner = "singularity";
+      repo = "singularity";
+      rev = "v${version}";
+      sha256 = "0ndrnxwii8lag6vrjpwpf5n36hhv223bb46d431l9gsigbizv0hl";
     })
-    (fetchurl {
+  ] ++ stdenv.lib.optional enableDefaultMusicPack (
+    fetchurl {
       url = "http://www.emhsoft.com/singularity/endgame-singularity-music-007.zip";
       sha256 = "0vf2qaf66jh56728pq1zbnw50yckjz6pf6c6qw6dl7vk60kkqnpb";
-    })
-  ];
-  sourceRoot = ".";
+    }
+  );
+  sourceRoot = "source";
 
   nativeBuildInputs = [ unzip ]; # The music is zipped
-  propagatedBuildInputs = with python2.pkgs; [ pygame numpy ];
-
-  # This is not an error: it needs both compilation rounds
-  buildPhase = ''
-    ${python2.interpreter} -m compileall "singularity-${version}"
-    ${python2.interpreter} -O -m compileall "singularity-${version}"
-  '';
-
-  installPhase = ''
-    install -Dm755 "singularity-${version}/singularity.py"  "$out/share/singularity.py"
-    install -Dm644 "singularity-${version}/singularity.pyo" "$out/share/singularity.pyo"
-    install -Dm644 "singularity-${version}/singularity.pyc" "$out/share/singularity.pyc"
-    cp -R "singularity-${version}/code" "singularity-${version}/data" "$out/share/"
-    cp -R "endgame-singularity-music-007" "$out/share/music"
-  '';
+  propagatedBuildInputs = with python3.pkgs; [ pygame numpy polib ];
 
-  # Tell it where to find python libraries
-  # Also cd to the same directory as the code, since it uses relative paths
-  postFixup = ''
-    makeWrapper "${python2.interpreter}" "$out/bin/endgame-singularity" \
-          --set PYTHONPATH "$PYTHONPATH" \
-          --run "cd \"$out/share\"" \
-          --add-flags "$out/share/singularity.py"
+  # Add the music
+  postInstall = stdenv.lib.optionalString enableDefaultMusicPack ''
+    cp -R "../endgame-singularity-music-007" \
+          "$(echo $out/lib/python*/site-packages/singularity)/music"
+          # ↑ we cannot glob on [...]/music, it doesn't exist yet
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/games/exult/arch.patch b/nixpkgs/pkgs/games/exult/arch.patch
deleted file mode 100644
index 70de34184a24..000000000000
--- a/nixpkgs/pkgs/games/exult/arch.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-diff -aur exult-1.4.9rc1.orig/desktop/exult.desktop exult-1.4.9rc1/desktop/exult.desktop
---- exult-1.4.9rc1.orig/desktop/exult.desktop	2008-07-11 05:41:06.000000000 +0600
-+++ exult-1.4.9rc1/desktop/exult.desktop	2012-05-19 13:15:30.616084585 +0600
-@@ -1,9 +1,8 @@
- [Desktop Entry]
--Encoding=UTF-8
- Name=Exult
- Comment=Exult Ultima 7 Engine
- Exec=exult
--Icon=exult.png
-+Icon=exult
- Terminal=false
- Type=Application
--Categories=Application;Game;RolePlaying;
-+Categories=Game;RolePlaying;
-diff -aur exult-1.4.9rc1.orig/files/databuf.h exult-1.4.9rc1/files/databuf.h
---- exult-1.4.9rc1.orig/files/databuf.h	2010-03-10 09:07:05.000000000 +0500
-+++ exult-1.4.9rc1/files/databuf.h	2012-05-19 12:50:16.856076030 +0600
-@@ -18,6 +18,7 @@
- #define DATA_H
- 
- #include <cstdio>
-+#include <cstddef>
- #include <cstring>
- #include <cassert>
- #include <fstream>
-diff -aur exult-1.4.9rc1.orig/files/U7obj.h exult-1.4.9rc1/files/U7obj.h
---- exult-1.4.9rc1.orig/files/U7obj.h	2010-02-25 07:52:07.000000000 +0500
-+++ exult-1.4.9rc1/files/U7obj.h	2012-05-19 12:50:35.916076137 +0600
-@@ -26,6 +26,7 @@
- #include <string>
- #include <vector>
- #include <cstring>
-+#include <cstddef>
- #include "common_types.h"
- #include "utils.h"
- 
-diff -aur exult-1.4.9rc1.orig/imagewin/manip.h exult-1.4.9rc1/imagewin/manip.h
---- exult-1.4.9rc1.orig/imagewin/manip.h	2010-08-29 20:26:00.000000000 +0600
-+++ exult-1.4.9rc1/imagewin/manip.h	2012-05-19 13:02:45.159413596 +0600
-@@ -319,7 +319,7 @@
- 	static uintD copy(uintS src)
- 	{
- 		unsigned int r, g, b;
--		split_source(src,r,g,b);
-+		ManipBaseSrc<color_s,color_d>::split_source(src,r,g,b);
- 		return ManipBaseDest<color_d>::rgb(r,g,b);
- 	}
- 	static void copy(uintD& dest, uintS src)
-diff -aur exult-1.4.9rc1.orig/istring.h exult-1.4.9rc1/istring.h
---- exult-1.4.9rc1.orig/istring.h	2005-06-07 15:55:39.000000000 +0600
-+++ exult-1.4.9rc1/istring.h	2012-05-19 13:01:14.886079750 +0600
-@@ -162,19 +162,19 @@
- 
- 	_Myt& operator+=(const _Myt& _Right)
- 		{	// append _Right
--		append(_Right);
-+		this->append(_Right);
- 		return (*this);
- 		}
- 
- 	_Myt& operator+=(const _Elem *_Ptr)
- 		{	// append [_Ptr, <null>)
--		append(_Ptr);
-+		this->append(_Ptr);
- 		return (*this);
- 		}
- 
- 	_Myt& operator+=(_Elem _Ch)
- 		{	// append 1 * _Ch
--		append(static_cast<size_type>(1), _Ch);
-+		this->append(static_cast<size_type>(1), _Ch);
- 		return (*this);
- 		}
- 
-diff -aur exult-1.4.9rc1.orig/shapes/pngio.cc exult-1.4.9rc1/shapes/pngio.cc
---- exult-1.4.9rc1.orig/shapes/pngio.cc	2010-02-15 18:48:11.000000000 -0200
-+++ exult-1.4.9rc1/shapes/pngio.cc	2013-09-22 20:56:37.809763588 -0300
-@@ -26,6 +26,7 @@
- #ifdef HAVE_CONFIG_H
- #  include <config.h>
- #endif
-+#include <string.h>
- 
- #ifdef HAVE_PNG_H
- 
-@@ -79,7 +80,7 @@
- 		}
- 					// Allocate info. structure.
- 	png_infop info = png_create_info_struct(png);
--	if (setjmp(png->jmpbuf))	// Handle errors.
-+	if (setjmp(png_jmpbuf(png)))	// Handle errors.
- 		{
- 		png_destroy_read_struct(&png, &info, 0);
- 		fclose(fp);
-@@ -208,7 +209,7 @@
- 		}
- 					// Allocate info. structure.
- 	png_infop info = png_create_info_struct(png);
--	if (setjmp(png->jmpbuf))	// Handle errors.
-+	if (setjmp(png_jmpbuf(png)))	// Handle errors.
- 		{
- 		png_destroy_write_struct(&png, &info);
- 		fclose(fp);
-@@ -306,7 +307,7 @@
- 		}
- 					// Allocate info. structure.
- 	png_infop info = png_create_info_struct(png);
--	if (setjmp(png->jmpbuf))	// Handle errors.
-+	if (setjmp(png_jmpbuf(png)))	// Handle errors.
- 		{
- 		png_destroy_read_struct(&png, &info, 0);
- 		fclose(fp);
-@@ -395,7 +396,7 @@
- 		}
- 					// Allocate info. structure.
- 	png_infop info = png_create_info_struct(png);
--	if (setjmp(png->jmpbuf))	// Handle errors.
-+	if (setjmp(png_jmpbuf(png)))	// Handle errors.
- 		{
- 		png_destroy_write_struct(&png, &info);
- 		fclose(fp);
-
diff --git a/nixpkgs/pkgs/games/exult/default.nix b/nixpkgs/pkgs/games/exult/default.nix
index e735c9c58172..adbf4dd07025 100644
--- a/nixpkgs/pkgs/games/exult/default.nix
+++ b/nixpkgs/pkgs/games/exult/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, SDL, libogg, libvorbis, zlib, unzip }:
+{ stdenv, fetchurl, pkgconfig, SDL2, libogg, libvorbis, zlib, unzip }:
 
 let
 
@@ -12,27 +12,20 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "exult-1.4.9rc1";
+  name = "exult-1.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/exult/${name}.tar.gz";
-    sha256 = "0a03a2l3ji6h48n106d4w55l8v6lni1axniafnvvv5c5n3nz5bgd";
+    sha256 = "1dm27qkxj30567zb70q4acddsizn0xyi3z87hg7lysxdkyv49s3s";
   };
 
   configureFlags = [ "--disable-tools" ];
 
-  patches =
-    [ # Arch Linux patch set.
-      ./arch.patch
-    ];
-
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ SDL libogg libvorbis zlib unzip ];
+  buildInputs = [ SDL2 libogg libvorbis zlib unzip ];
 
   enableParallelBuilding = true;
 
-  makeFlags = [ "DESTDIR=$(out)" ];
-
   NIX_LDFLAGS = "-lX11";
 
   postInstall =
diff --git a/nixpkgs/pkgs/games/factorio/default.nix b/nixpkgs/pkgs/games/factorio/default.nix
index 3b47cb40ad0f..0226acf16046 100644
--- a/nixpkgs/pkgs/games/factorio/default.nix
+++ b/nixpkgs/pkgs/games/factorio/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, makeWrapper
+{ stdenv, fetchurl, makeWrapper, makeDesktopItem
 , alsaLib, libpulseaudio, libX11, libXcursor, libXinerama, libXrandr, libXi, libGL
 , libSM, libICE, libXext, factorio-utils
 , releaseType
@@ -45,6 +45,16 @@ let
     Note the ultimate "_" is replaced with "-" in the --name arg!
   '';
 
+  desktopItem = makeDesktopItem {
+    name = "factorio";
+    desktopName = "Factorio";
+    comment = "A game in which you build and maintain factories.";
+    exec = "factorio";
+    icon = "factorio";
+    type = "Application";
+    categories = "Game";
+  };
+
   branch = if experimental then "experimental" else "stable";
 
   # NB `experimental` directs us to take the latest build, regardless of its branch;
@@ -52,15 +62,15 @@ let
   binDists = {
     x86_64-linux = let bdist = bdistForArch { inUrl = "linux64"; inTar = "x64"; }; in {
       alpha = {
-        stable        = bdist { sha256 = "1fg2wnia6anzya4m53jf2xqwwspvwskz3awdb3j0v3fzijps94wc"; version = "0.17.79"; withAuth = true; };
-        experimental  = bdist { sha256 = "1h0gv7cdn999hm2fl93kq6g98bzd1x3c8afq8v0a04dqjarjgr86"; version = "0.18.32"; withAuth = true; };
+        stable        = bdist { sha256 = "0zixscff0svpb0yg8nzczp2z4filqqxi1k0z0nrpzn2hhzhf1464"; version = "1.0.0"; withAuth = true; };
+        experimental  = bdist { sha256 = "0zixscff0svpb0yg8nzczp2z4filqqxi1k0z0nrpzn2hhzhf1464"; version = "1.0.0"; withAuth = true; };
       };
       headless = {
-        stable        = bdist { sha256 = "1pr39nm23fj83jy272798gbl9003rgi4vgsi33f2iw3dk3x15kls"; version = "0.17.79"; };
-        experimental  = bdist { sha256 = "017ggrsnhwyfgx99q0wjagafjvk5pb6lcxl72y37gig72bfcapab"; version = "0.18.32"; };
+        stable        = bdist { sha256 = "0r0lplns8nxna2viv8qyx9mp4cckdvx6k20w2g2fwnj3jjmf3nc1"; version = "1.0.0"; };
+        experimental  = bdist { sha256 = "0r0lplns8nxna2viv8qyx9mp4cckdvx6k20w2g2fwnj3jjmf3nc1"; version = "1.0.0"; };
       };
       demo = {
-        stable        = bdist { sha256 = "07qknasaqvzl9vy1fglm7xmdi7ynhmslrb0a209fhbfs0s7qqlgi"; version = "0.17.79"; };
+        stable        = bdist { sha256 = "0h9cqbp143w47zcl4qg4skns4cngq0k40s5jwbk0wi5asjz8whqn"; version = "1.0.0"; };
       };
     };
     i686-linux = let bdist = bdistForArch { inUrl = "linux32"; inTar = "i386"; }; in {
@@ -166,7 +176,7 @@ let
       '';
       homepage = "https://www.factorio.com/";
       license = stdenv.lib.licenses.unfree;
-      maintainers = with stdenv.lib.maintainers; [ Baughn elitak erictapen ];
+      maintainers = with stdenv.lib.maintainers; [ Baughn elitak erictapen priegger ];
       platforms = [ "i686-linux" "x86_64-linux" ];
     };
   };
@@ -224,6 +234,11 @@ let
         ${updateConfigSh}
         EOF
         ) $out/share/factorio/update-config.sh
+
+        mkdir -p $out/share/icons/hicolor/{64x64,128x128}/apps
+        cp -a data/core/graphics/factorio-icon.png $out/share/icons/hicolor/64x64/apps/factorio.png
+        cp -a data/core/graphics/factorio-icon@2x.png $out/share/icons/hicolor/128x128/apps/factorio.png
+        ln -s ${desktopItem}/share/applications $out/share/
       '';
     };
     alpha = demo // {
diff --git a/nixpkgs/pkgs/games/flightgear/default.nix b/nixpkgs/pkgs/games/flightgear/default.nix
index c16c33666f31..e32f2e96d4fa 100644
--- a/nixpkgs/pkgs/games/flightgear/default.nix
+++ b/nixpkgs/pkgs/games/flightgear/default.nix
@@ -6,15 +6,15 @@
 }:
 
 let
-  version = "2019.1.1";
+  version = "2020.1.2";
   shortVersion = builtins.substring 0 6 version;
   data = stdenv.mkDerivation rec {
-    pname = "flightgear-base";
+    pname = "flightgear-data";
     inherit version;
 
     src = fetchurl {
       url = "mirror://sourceforge/flightgear/release-${shortVersion}/FlightGear-${version}-data.tar.bz2";
-      sha256 = "14zm0hzshbca4ych72631hpc4pw2w24zib62ri3lwm8nz6j63qhf";
+      sha256 = "0ldsjb54k8nb99h6n4f4x20nawd2pa0a8skkwkrgckdpmdv0zwyk";
     };
 
     phases = [ "installPhase" ];
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/flightgear/release-${shortVersion}/${pname}-${version}.tar.bz2";
-    sha256 = "189wal08p9lrz757pmazxnf85sfymsqrm3nfvdad95pfp6bg7pyi";
+    sha256 = "1770kgwa7z70sx6da9x1q9cszpd3ywz6nn8jrb6xv8ldjqcpqpvb";
   };
 
   # Of all the files in the source and data archives, there doesn't seem to be
diff --git a/nixpkgs/pkgs/games/frogatto/default.nix b/nixpkgs/pkgs/games/frogatto/default.nix
index 35ff97061125..efcff024a542 100644
--- a/nixpkgs/pkgs/games/frogatto/default.nix
+++ b/nixpkgs/pkgs/games/frogatto/default.nix
@@ -12,7 +12,7 @@ let
     comment = description;
     desktopName = "Frogatto";
     genericName = "frogatto";
-    categories = "Application;Game;ArcadeGame;";
+    categories = "Game;ArcadeGame;";
   };
   version = "unstable-2018-12-18";
 in buildEnv {
diff --git a/nixpkgs/pkgs/games/frotz/default.nix b/nixpkgs/pkgs/games/frotz/default.nix
index 40b6748693d1..800da177a3dc 100644
--- a/nixpkgs/pkgs/games/frotz/default.nix
+++ b/nixpkgs/pkgs/games/frotz/default.nix
@@ -1,25 +1,40 @@
-{ stdenv, fetchFromGitHub, ncurses }:
+{ fetchFromGitLab
+, libao
+, libmodplug
+, libsamplerate
+, libsndfile
+, libvorbis
+, ncurses
+, stdenv }:
 
 stdenv.mkDerivation rec {
-  version = "2.44";
+  version = "2.52";
   pname = "frotz";
 
-  src = fetchFromGitHub {
+  src = fetchFromGitLab {
+    domain = "gitlab.com";
     owner = "DavidGriffith";
     repo = "frotz";
     rev = version;
-    sha256 = "0gjkk4gxzqmxfdirrz2lr0bms6l9fc31vkmlywigkbdlh8wxgypp";
+    sha256 = "11ca1dz31b7s5vxjqncwjwmbbcr2m5v2rxjn49g4gnvwd6mqw48y";
   };
 
-  makeFlags = [ "CC=cc" "PREFIX=$(out)" "CURSES=-lncurses" ];
-
-  buildInputs = [ ncurses ];
+  buildInputs = [ libao libmodplug libsamplerate libsndfile libvorbis ncurses ];
+  preBuild = ''
+    makeFlagsArray+=(
+      CC="cc"
+      CFLAGS="-D_DEFAULT_SOURCE -D_XOPEN_SOURCE=600"
+      LDFLAGS="-lncursesw -ltinfo"
+    )
+  '';
+  installFlags = [ "PREFIX=$(out)" ];
 
   meta = with stdenv.lib; {
-    homepage = "http://frotz.sourceforge.net/";
+    homepage = "https://davidgriffith.gitlab.io/frotz/";
+    changelog = "https://gitlab.com/DavidGriffith/frotz/-/raw/${version}/NEWS";
     description = "A z-machine interpreter for Infocom games and other interactive fiction.";
     platforms = platforms.unix;
-    maintainers = [ maintainers.nicknovitski ];
+    maintainers = with maintainers; [ nicknovitski  ddelabru ];
     license = licenses.gpl2;
   };
 }
diff --git a/nixpkgs/pkgs/games/gambatte/default.nix b/nixpkgs/pkgs/games/gambatte/default.nix
index ac099e21d56f..b2a2f0a3f92d 100644
--- a/nixpkgs/pkgs/games/gambatte/default.nix
+++ b/nixpkgs/pkgs/games/gambatte/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchFromGitHub, scons, qt4 }:
+{ stdenv, fetchFromGitHub, scons, qt4, alsaLib }:
 
 stdenv.mkDerivation {
   pname = "gambatte";
-  version = "2016-05-03";
+  version = "2020-03-14";
 
   src = fetchFromGitHub {
     owner = "sinamas";
     repo = "gambatte";
-    rev = "f8a810b103c4549f66035dd2be4279c8f0d95e77";
-    sha256 = "1arv4zkh3fhrghsykl4blazc9diw09m44pyff1059z5b98smxy3v";
+    rev = "56e3371151b5ee86dcdcf4868324ebc6de220bc9";
+    sha256 = "0cc6zcvxpvi5hgcssb1zy0fkj9nk7n0d2xm88a4v05kpm5zw7sh2";
   };
 
-  buildInputs = [ scons qt4 ];
+  buildInputs = [ scons qt4 alsaLib ];
 
   patches = [ ./fix-scons-paths.patch ];
 
diff --git a/nixpkgs/pkgs/games/gargoyle/default.nix b/nixpkgs/pkgs/games/gargoyle/default.nix
index 8c5675407d0b..c4c512be2b89 100644
--- a/nixpkgs/pkgs/games/gargoyle/default.nix
+++ b/nixpkgs/pkgs/games/gargoyle/default.nix
@@ -19,14 +19,15 @@ let
 
 in
 
-stdenv.mkDerivation {
-  name = "gargoyle-2018-10-06";
+stdenv.mkDerivation rec {
+  pname = "gargoyle";
+  version = "2019.1.1";
 
   src = fetchFromGitHub {
     owner = "garglk";
     repo = "garglk";
-    rev = "d03391563fa75942fbf8f8deeeacf3a8be9fc3b0";
-    sha256 = "0icwgc25gp7krq6zf66hljydc6vps6bb4knywnrfgnfcmcalqqx9";
+    rev = version;
+    sha256 = "0w54avmbp4i4zps2rb4acmpa641s6wvwbrln4vbdhcz97fx48nzz";
   };
 
   nativeBuildInputs = [ jam pkgconfig ] ++ stdenv.lib.optional stdenv.isDarwin cctools;
diff --git a/nixpkgs/pkgs/games/gemrb/default.nix b/nixpkgs/pkgs/games/gemrb/default.nix
index 4f7d1cb37503..91b841f6c51b 100644
--- a/nixpkgs/pkgs/games/gemrb/default.nix
+++ b/nixpkgs/pkgs/games/gemrb/default.nix
@@ -4,24 +4,27 @@
 
 stdenv.mkDerivation rec {
   pname = "gemrb";
-  version = "0.8.6";
+  version = "0.8.7";
 
   src = fetchFromGitHub {
-    owner  = "gemrb";
-    repo   = "gemrb";
-    rev    = "v${version}";
-    sha256 = "0vsr3fsqmv9b7s5l0cwhpq2pf7ah2wvgmcn9y8asj6w8hprp17d4";
+    owner = "gemrb";
+    repo = "gemrb";
+    rev = "v${version}";
+    sha256 = "14j9mhrbi4gnrbv25nlsvcxzkylijzrnwbqqnrg7pr452lb3srpb";
   };
 
-  # TODO: make libpng, libvorbis, sdl_mixer, freetype, vlc, glew (and other gl reqs) optional
+  # TODO: make libpng, libvorbis, sdl_mixer, freetype, vlc, glew (and other gl
+  # reqs) optional
   buildInputs = [ freetype python openal SDL2 SDL2_mixer zlib libpng libvorbis libiconv ];
 
   nativeBuildInputs = [ cmake ];
 
-  enableParallelBuilding = true;
-
+  # TODO: add proper OpenGL support. We are currently (0.8.7) getting a shader
+  # error on execution when enabled.
   cmakeFlags = [
     "-DLAYOUT=opt"
+    # "-DOPENGL_BACKEND=GLES"
+    # "-DOpenGL_GL_PREFERENCE=GLVND"
   ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/games/gnome-hexgl/default.nix b/nixpkgs/pkgs/games/gnome-hexgl/default.nix
index 6212c1bbec19..cfa9a0b81d02 100644
--- a/nixpkgs/pkgs/games/gnome-hexgl/default.nix
+++ b/nixpkgs/pkgs/games/gnome-hexgl/default.nix
@@ -2,7 +2,7 @@
 , fetchFromGitHub
 , ninja
 , meson
-, pkgconfig
+, pkg-config
 , gthree
 , gsound
 , epoxy
@@ -11,19 +11,19 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-hexgl";
-  version = "0.2.0";
+  version = "unstable-2020-07-24";
 
   src = fetchFromGitHub {
     owner = "alexlarsson";
     repo = "gnome-hexgl";
-    rev = version;
-    sha256 = "08iy2iciscd2wbhh6v4cpghx8r94v1ffbgla9yb3bcsdhlag0iw4";
+    rev = "f47a351055a235730795341dcd6b2397cc4bfa0c";
+    sha256 = "yZWGymaSUfnCP8VAEdDH64w0muSnRK/XPi1/IqTrE4k=";
   };
 
   nativeBuildInputs = [
     ninja
     meson
-    pkgconfig
+    pkg-config
   ];
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/games/gzdoom/default.nix b/nixpkgs/pkgs/games/gzdoom/default.nix
index e6f27eedbb9a..fdbdda2d313e 100644
--- a/nixpkgs/pkgs/games/gzdoom/default.nix
+++ b/nixpkgs/pkgs/games/gzdoom/default.nix
@@ -1,55 +1,85 @@
-{ stdenv, fetchFromGitHub, cmake, makeWrapper
-, openal, fluidsynth_1, soundfont-fluid, libGL, SDL2
-, bzip2, zlib, libjpeg, libsndfile, mpg123, game-music-emu }:
+{ stdenv, fetchFromGitHub, cmake, makeWrapper, openal, fluidsynth_1
+, soundfont-fluid, libGL, SDL2, bzip2, zlib, libjpeg, libsndfile, mpg123
+, game-music-emu, pkgconfig }:
 
-stdenv.mkDerivation rec {
-  pname = "gzdoom";
-  version = "4.3.3";
-
-  src = fetchFromGitHub {
+let
+  zmusic-src = fetchFromGitHub {
     owner = "coelckers";
-    repo = "gzdoom";
-    rev = "g${version}";
-    sha256 = "1c4vhnvvwy1rs8xm01kqd486h5xsiccwkf95fjx7912zr49yalks";
+    repo = "zmusic";
+    rev = "2d0ea861174f9e2031400ab29f5bcc8425521cc6";
+    sha256 = "1ac7lhbzwfr0fsyv7n70hvb8imzngxn1qyanmv9j26j0h90hhl8a";
   };
+  zmusic = stdenv.mkDerivation {
+    pname = "zmusic";
+    version = "1.1.0";
+
+    src = zmusic-src;
+
+    nativeBuildInputs = [ cmake pkgconfig ];
+
+    preConfigure = ''
+      sed -i \
+        -e "s@/usr/share/sounds/sf2/@${soundfont-fluid}/share/soundfonts/@g" \
+        -e "s@FluidR3_GM.sf2@FluidR3_GM2-2.sf2@g" \
+        source/mididevices/music_fluidsynth_mididevice.cpp
+    '';
 
-  nativeBuildInputs = [ cmake makeWrapper ];
-  buildInputs = [
-    SDL2 libGL openal fluidsynth_1 bzip2 zlib libjpeg libsndfile mpg123
-    game-music-emu
-  ];
-
-  enableParallelBuilding = true;
-
-  NIX_CFLAGS_LINK = "-lopenal -lfluidsynth";
-
-  preConfigure = ''
-    sed -i \
-      -e "s@/usr/share/sounds/sf2/@${soundfont-fluid}/share/soundfonts/@g" \
-      -e "s@FluidR3_GM.sf2@FluidR3_GM2-2.sf2@g" \
-      libraries/zmusic/mididevices/music_fluidsynth_mididevice.cpp
-  '';
-
-  installPhase = ''
-    install -Dm755 gzdoom "$out/lib/gzdoom/gzdoom"
-    for i in *.pk3; do
-      install -Dm644 "$i" "$out/lib/gzdoom/$i"
-    done
-    for i in fm_banks/*; do
-      install -Dm644 "$i" "$out/lib/gzdoom/$i"
-    done
-    for i in soundfonts/*; do
-      install -Dm644 "$i" "$out/lib/gzdoom/$i"
-    done
-    mkdir $out/bin
-    makeWrapper $out/lib/gzdoom/gzdoom $out/bin/gzdoom
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/coelckers/gzdoom";
-    description = "A Doom source port based on ZDoom. It features an OpenGL renderer and lots of new features";
-    license = licenses.gpl3;
-    platforms = ["x86_64-linux"];
-    maintainers = with maintainers; [ lassulus ];
   };
-}
+
+  gzdoom = stdenv.mkDerivation rec {
+    pname = "gzdoom";
+    version = "4.4.2";
+
+    src = fetchFromGitHub {
+      owner = "coelckers";
+      repo = "gzdoom";
+      rev = "g${version}";
+      sha256 = "1xkkmbsdv64wyb9r2fv5mwyqw0bjryk528jghdrh47pndmjs9a38";
+      fetchSubmodules = true;
+    };
+
+    nativeBuildInputs = [ cmake makeWrapper pkgconfig ];
+    buildInputs = [
+      SDL2
+      libGL
+      openal
+      fluidsynth_1
+      bzip2
+      zlib
+      libjpeg
+      libsndfile
+      mpg123
+      game-music-emu
+      zmusic
+    ];
+
+    enableParallelBuilding = true;
+
+    NIX_CFLAGS_LINK = "-lopenal -lfluidsynth";
+
+    installPhase = ''
+      install -Dm755 gzdoom "$out/lib/gzdoom/gzdoom"
+      for i in *.pk3; do
+        install -Dm644 "$i" "$out/lib/gzdoom/$i"
+      done
+      for i in fm_banks/*; do
+        install -Dm644 "$i" "$out/lib/gzdoom/$i"
+      done
+      for i in soundfonts/*; do
+        install -Dm644 "$i" "$out/lib/gzdoom/$i"
+      done
+      mkdir $out/bin
+      makeWrapper $out/lib/gzdoom/gzdoom $out/bin/gzdoom
+    '';
+
+    meta = with stdenv.lib; {
+      homepage = "https://github.com/coelckers/gzdoom";
+      description =
+        "A Doom source port based on ZDoom. It features an OpenGL renderer and lots of new features";
+      license = licenses.gpl3;
+      platforms = [ "x86_64-linux" ];
+      maintainers = with maintainers; [ lassulus ];
+    };
+  };
+
+in gzdoom
diff --git a/nixpkgs/pkgs/games/hedgewars/default.nix b/nixpkgs/pkgs/games/hedgewars/default.nix
index 00df6f338210..f31a44e97c09 100644
--- a/nixpkgs/pkgs/games/hedgewars/default.nix
+++ b/nixpkgs/pkgs/games/hedgewars/default.nix
@@ -2,6 +2,7 @@
 , lib, fetchurl, cmake, pkgconfig, lua5_1, SDL2, SDL2_mixer
 , zlib, libpng, libGL, libGLU, physfs
 , qtbase, qttools
+, llvm
 , withServer ? true
 }:
 
@@ -27,6 +28,7 @@ mkDerivation rec {
   buildInputs = [
     SDL2_ttf SDL2_net SDL2 SDL2_mixer SDL2_image
     fpc lua5_1
+    llvm # hard-requirement on aarch64, for some reason not strictly necessary on x86-64
     ffmpeg_3 freeglut physfs
     qtbase
   ] ++ lib.optional withServer ghc;
@@ -34,6 +36,10 @@ mkDerivation rec {
   postPatch = ''
     substituteInPlace gameServer/CMakeLists.txt \
       --replace mask evaluate
+
+    # compile with fpc >= 3.2.0
+    # https://github.com/archlinux/svntogit-community/blob/75a1b3900fb3dd553d5114bbc8474d85fd6abb02/trunk/PKGBUILD#L26
+    sed -i 's/procedure ShiftWorld(Dir: LongInt); inline;/procedure ShiftWorld(Dir: LongInt);/' hedgewars/uWorld.pas
   '';
 
   cmakeFlags = [
@@ -42,7 +48,7 @@ mkDerivation rec {
   ];
 
 
-  # hslogger brings network-3 and network-bsd which conflict with 
+  # hslogger brings network-3 and network-bsd which conflict with
   # network-2.6.3.1
   preConfigure = ''
     substituteInPlace gameServer/CMakeLists.txt \
@@ -97,6 +103,5 @@ mkDerivation rec {
        all movement on the battlefield has ceased).'';
     maintainers = with maintainers; [ kragniz fpletz ];
     inherit (ghc.meta) platforms;
-    hydraPlatforms = [];
   };
 }
diff --git a/nixpkgs/pkgs/games/hyperrogue/default.nix b/nixpkgs/pkgs/games/hyperrogue/default.nix
index 1ef0fd147d87..32882f168945 100644
--- a/nixpkgs/pkgs/games/hyperrogue/default.nix
+++ b/nixpkgs/pkgs/games/hyperrogue/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hyperrogue";
-  version = "11.3l";
+  version = "11.3o";
 
   src = fetchFromGitHub {
     owner = "zenorogue";
     repo = "hyperrogue";
     rev = "v${version}";
-    sha256 = "0fniyaf9mgg99s03wbdc36zg909kshpdfk9pn8pkai0x99lghkwb";
+    sha256 = "0bijgbqpc867pq8lbwwvcnc713gm51mmz625xb5br0q2qw09nkyh";
   };
 
   CPPFLAGS = "-I${SDL.dev}/include/SDL";
diff --git a/nixpkgs/pkgs/games/instead/default.nix b/nixpkgs/pkgs/games/instead/default.nix
index f131b920990c..34a31fee7292 100644
--- a/nixpkgs/pkgs/games/instead/default.nix
+++ b/nixpkgs/pkgs/games/instead/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, SDL2, SDL2_ttf, SDL2_image, SDL2_mixer, pkgconfig, lua, zlib, unzip }:
 
 let
-  version = "3.3.1";
+  version = "3.3.2";
 
   # I took several games at random from http://instead.syscall.ru/games/
   games = [
@@ -33,7 +33,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "mirror://sourceforge/project/instead/instead/${version}/instead_${version}.tar.gz";
-    sha256 = "10bppcdjnd0all71l5akdvy7fx0c8s8x0za9qxszs8cjmlv9z1q0";
+    sha256 = "u5j2kDKRvMQPsG8iA6uOBScuyE/e1BJIK2+qVL6jqQs=";
   };
 
   NIX_LDFLAGS = "-llua -lgcc_s";
@@ -41,6 +41,11 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ pkgconfig unzip ];
   buildInputs = [ SDL2 SDL2_ttf SDL2_image SDL2_mixer lua zlib ];
 
+  postPatch = ''
+    substituteInPlace configure.sh \
+      --replace "/tmp/sdl-test" $(mktemp)
+  '';
+  
   configurePhase = ''
     { echo 2; echo $out; } | ./configure.sh
   '';
diff --git a/nixpkgs/pkgs/games/katago/default.nix b/nixpkgs/pkgs/games/katago/default.nix
index fd4303eb2b1d..20ad47d3e0a8 100644
--- a/nixpkgs/pkgs/games/katago/default.nix
+++ b/nixpkgs/pkgs/games/katago/default.nix
@@ -13,52 +13,46 @@
 , opencl-headers ? null
 , ocl-icd ? null
 , gperftools ? null
-, cudaSupport ? false
-, useTcmalloc ? true}:
+, eigen ? null
+, enableAVX2 ? false
+, enableBigBoards ? false
+, enableCuda ? false
+, enableGPU ? true
+, enableTcmalloc ? true}:
 
-assert cudaSupport -> (
-  libGL_driver != null && 
+assert !enableGPU -> (
+  eigen != null &&
+  !enableCuda);
+
+assert enableCuda -> (
+  libGL_driver != null &&
   cudatoolkit != null &&
   cudnn != null);
 
-assert !cudaSupport -> (
-  opencl-headers != null &&
-  ocl-icd != null);
+assert !enableCuda -> (
+  !enableGPU || (
+    opencl-headers != null &&
+    ocl-icd != null));
 
-assert useTcmalloc -> (
+assert enableTcmalloc -> (
   gperftools != null);
 
 let
-  env = if cudaSupport 
+  env = if enableCuda
     then gcc8Stdenv
     else stdenv;
 
 in env.mkDerivation rec {
   pname = "katago";
-  version = "1.4.4";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "lightvector";
     repo = "katago";
     rev = "v${version}";
-    sha256 = "14xs2bm8sky9cdsjdahjqs82q6blzcw05f5d9r1h171dm1hcx566";
+    sha256 = "030ff9prnvpadgcb4x4hx6b6ggg10bwqcj8vd8nwrdz9sjq67yf7";
   };
 
-  # To workaround CMake 3.17.0's new buggy behavior wrt CUDA Compiler testing
-  # See the following tracking issues:
-  # KataGo:
-  #  - Issue #225: https://github.com/lightvector/KataGo/issues/225
-  #  - PR #227: https://github.com/lightvector/KataGo/pull/227
-  # CMake:
-  #  - Issue #20708: https://gitlab.kitware.com/cmake/cmake/-/issues/20708
-  patches = [
-    (fetchpatch {
-      name = "227.patch";
-      url = "https://patch-diff.githubusercontent.com/raw/lightvector/KataGo/pull/227.patch";
-      sha256 = "03f1vmdjhb79mpj95sijcwla8acy32clrjgrn4xqw5h90zdgj511";
-    })
-  ];
-
   nativeBuildInputs = [
     cmake
     makeWrapper
@@ -67,36 +61,44 @@ in env.mkDerivation rec {
   buildInputs = [
     libzip
     boost
-  ] ++ lib.optionals cudaSupport [
+  ] ++ lib.optionals (!enableGPU) [
+    eigen
+  ] ++ lib.optionals (enableGPU && enableCuda) [
     cudnn
     libGL_driver
-  ] ++ lib.optionals (!cudaSupport) [
+  ] ++ lib.optionals (enableGPU && !enableCuda) [
     opencl-headers
     ocl-icd
-  ] ++ lib.optionals useTcmalloc [
+  ] ++ lib.optionals enableTcmalloc [
     gperftools
   ];
 
   cmakeFlags = [
     "-DNO_GIT_REVISION=ON"
-  ] ++ lib.optionals cudaSupport [
+  ] ++ lib.optionals (!enableGPU) [
+    "-DUSE_BACKEND=EIGEN"
+  ] ++ lib.optionals enableAVX2 [
+    "-DUSE_AVX2=ON"
+  ] ++ lib.optionals (enableGPU && enableCuda) [
     "-DUSE_BACKEND=CUDA"
-  ] ++ lib.optionals (!cudaSupport) [
+  ] ++ lib.optionals (enableGPU && !enableCuda) [
     "-DUSE_BACKEND=OPENCL"
-  ] ++ lib.optionals useTcmalloc [
+  ] ++ lib.optionals enableTcmalloc [
     "-DUSE_TCMALLOC=ON"
+  ] ++ lib.optionals enableBigBoards [
+    "-DUSE_BIGGER_BOARDS_EXPENSIVE=ON"
   ];
 
   preConfigure = ''
     cd cpp/
-  '' + lib.optionalString cudaSupport ''
+  '' + lib.optionalString enableCuda ''
     export CUDA_PATH="${cudatoolkit}"
     export EXTRA_LDFLAGS="-L/run/opengl-driver/lib"
   '';
 
   installPhase = ''
     mkdir -p $out/bin; cp katago $out/bin;
-  '' + lib.optionalString cudaSupport ''
+  '' + lib.optionalString enableCuda ''
     wrapProgram $out/bin/katago \
       --prefix LD_LIBRARY_PATH : "/run/opengl-driver/lib"
   '';
diff --git a/nixpkgs/pkgs/games/klavaro/default.nix b/nixpkgs/pkgs/games/klavaro/default.nix
index 557f75580ca9..ac2c787d3ff2 100644
--- a/nixpkgs/pkgs/games/klavaro/default.nix
+++ b/nixpkgs/pkgs/games/klavaro/default.nix
@@ -10,11 +10,11 @@
 
 stdenv.mkDerivation rec {
   pname = "klavaro";
-  version = "3.10";
+  version = "3.11";
 
   src = fetchurl {
     url = "mirror://sourceforge/klavaro/${pname}-${version}.tar.bz2";
-    sha256 = "0jnzdrndiq6m0bwgid977z5ghp4q61clwdlzfpx4fd2ml5x3iq95";
+    sha256 = "1rkxaqb62w4mv86fcnmr32lq6y0h4hh92wmsy5ddb9a8jnzx6r7w";
   };
 
   nativeBuildInputs = [ intltool makeWrapper pkgconfig ];
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Free touch typing tutor program";
     homepage = "http://klavaro.sourceforge.net/";
+    changelog = "https://sourceforge.net/p/klavaro/code/HEAD/tree/trunk/ChangeLog";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ mimame davidak ];
diff --git a/nixpkgs/pkgs/games/koboredux/default.nix b/nixpkgs/pkgs/games/koboredux/default.nix
new file mode 100644
index 000000000000..746e9d6bbef0
--- /dev/null
+++ b/nixpkgs/pkgs/games/koboredux/default.nix
@@ -0,0 +1,87 @@
+{ stdenv
+, fetchFromGitHub
+, fetchpatch
+, requireFile
+, cmake
+, pkg-config
+, SDL2
+, SDL2_image
+, audiality2
+, useProprietaryAssets ? true
+}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  pname = "koboredux";
+  version = "0.7.5.1";
+
+  src =
+    [(fetchFromGitHub {
+      owner = "olofson";
+      repo = "koboredux";
+      rev = "v${version}";
+      sha256 = "09h9r65z8bar2z89s09j6px0gdq355kjf38rmd85xb2aqwnm6xig";
+    })]
+    ++
+    (optional useProprietaryAssets (requireFile {
+      name = "koboredux-${version}-Linux.tar.bz2";
+      sha256 = "11bmicx9i11m4c3dp19jsql0zy4rjf5a28x4hd2wl8h3bf8cdgav";
+      message = ''
+        Please purchase the game on https://olofson.itch.io/kobo-redux
+        and download the Linux build.
+
+        Once you have downloaded the file, please use the following command
+        and re-run the installation:
+
+        nix-prefetch-url file://\$PWD/koboredux-${version}-Linux.tar.bz2
+
+        Alternatively, install the "koboredux-free" package, which replaces the
+        proprietary assets with a placeholder theme.
+      '';
+    }));
+
+  sourceRoot = "source"; # needed when we have the assets source
+
+  # Fix clang build
+  patches = [(fetchpatch {
+    url = "https://github.com/olofson/koboredux/commit/cf92b8a61d002ccaa9fbcda7a96dab08a681dee4.patch";
+    sha256 = "0dwhvis7ghf3mgzjd2rwn8hk3ndlgfwwcqaq581yc5rwd73v6vw4";
+  })];
+
+  postPatch = optionalString useProprietaryAssets ''
+    cp -r ../koboredux-${version}-Linux/sfx/redux data/sfx/
+    cp -r ../koboredux-${version}-Linux/gfx/redux data/gfx/
+    cp -r ../koboredux-${version}-Linux/gfx/redux_fullscreen data/gfx/
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    SDL2
+    SDL2_image
+    audiality2
+  ];
+
+  meta = {
+    description = "A frantic 80's style 2D shooter, similar to XKobo and Kobo Deluxe" +
+      optionalString (!useProprietaryAssets) " (built without proprietary assets)";
+    longDescription = ''
+      Kobo Redux is a frantic 80's style 2D shooter, inspired by the look and
+      feel of 90's arcade cabinets. The gameplay is fast and unforgiving,
+      although with less of the frustrating quirkiness of the actual games
+      of the 80's. A true challenge in the spirit of the arcade era!
+    '' + optionalString (!useProprietaryAssets) ''
+
+      This version replaces the official proprietary assets with placeholders.
+      For the full experience, consider installing "koboredux" instead.
+    '';
+    homepage = "https://olofson.itch.io/kobo-redux";
+    license = with licenses; if useProprietaryAssets then unfree else gpl2;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ fgaz ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/games/left4gore/default.nix b/nixpkgs/pkgs/games/left4gore/default.nix
new file mode 100644
index 000000000000..597f7da2b3d2
--- /dev/null
+++ b/nixpkgs/pkgs/games/left4gore/default.nix
@@ -0,0 +1,48 @@
+{ stdenvNoCC, lib, fetchurl, buildFHSUserEnv }:
+
+let
+  version = "2.3";
+
+  # Unwrapped package, for putting into the FHS env
+  left4gore-unwrapped = stdenvNoCC.mkDerivation {
+    pname = "left4gore-unwrapped";
+    inherit version;
+
+    src = fetchurl {
+      url = "http://www.left4gore.com/dist/left4gore-${version}-linux.tar.gz";
+      sha256 = "1n57nh32ybn6kirn8djh0nsjx6m84c0jfi1x8r4w2qr0qky3z7p0";
+    };
+
+    installPhase = ''
+      mkdir -p $out/bin
+      cp left4gore $out/bin
+    '';
+  };
+
+  # FHS env, as patchelf will not work
+  env = buildFHSUserEnv {
+    name = "left4gore-env-${version}";
+    targetPkgs = _: [ left4gore-unwrapped ];
+    runScript = "left4gore";
+  };
+
+in stdenvNoCC.mkDerivation {
+  pname = "left4gore";
+  inherit version;
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    ln -s ${env}/bin/* $out/bin/left4gore
+  '';
+
+  meta = with lib; {
+    homepage = "http://www.left4gore.com";
+    description = "Memory patcher which adds the gore back into Left 4 Dead 2";
+    license = licenses.unfree; # Probably the best choice
+    maintainers = with maintainers; [ das_j ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/legendary-gl/default.nix b/nixpkgs/pkgs/games/legendary-gl/default.nix
new file mode 100644
index 000000000000..114aa6ab12ae
--- /dev/null
+++ b/nixpkgs/pkgs/games/legendary-gl/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, fetchFromGitHub
+, buildPythonApplication
+, pythonOlder
+, requests
+}:
+
+buildPythonApplication rec {
+  pname = "legendary-gl"; # Name in pypi
+  version = "0.0.14";
+
+  src = fetchFromGitHub {
+    owner = "derrod";
+    repo = "legendary";
+    rev = version;
+    sha256 = "05r88qi8mmbj07wxcpb3fhbl40qscbq1aqb0mnj9bpmi9gf5zll5";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  disabled = pythonOlder "3.8";
+
+  meta = with lib; {
+    description = "A free and open-source Epic Games Launcher alternative";
+    homepage = "https://github.com/derrod/legendary";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ wchresta ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/games/megaglest/default.nix b/nixpkgs/pkgs/games/megaglest/default.nix
index d5129818cb23..c34ca5dee957 100644
--- a/nixpkgs/pkgs/games/megaglest/default.nix
+++ b/nixpkgs/pkgs/games/megaglest/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, cmake, pkgconfig, git, curl, SDL2, xercesc, openal, lua, vlc
+{ stdenv, cmake, pkgconfig, git, curl, SDL2, xercesc, openal, lua, libvlc
 , libjpeg, wxGTK, cppunit, ftgl, glew, libogg, libvorbis, buildEnv, libpng
 , fontconfig, freetype, xorg, makeWrapper, bash, which, gnome3, libGLU, glib
 , fetchFromGitHub
@@ -29,7 +29,7 @@ stdenv.mkDerivation {
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ cmake git curl SDL2 xercesc openal lua libpng libjpeg vlc wxGTK
+  buildInputs = [ cmake git curl SDL2 xercesc openal lua libpng libjpeg libvlc wxGTK
     glib cppunit fontconfig freetype ftgl glew libogg libvorbis makeWrapper libGLU ];
 
   configurePhase = ''
diff --git a/nixpkgs/pkgs/games/minecraft-server/default.nix b/nixpkgs/pkgs/games/minecraft-server/default.nix
index d0ae0a597176..7216a42b00f8 100644
--- a/nixpkgs/pkgs/games/minecraft-server/default.nix
+++ b/nixpkgs/pkgs/games/minecraft-server/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, jre_headless }:
 stdenv.mkDerivation {
   pname = "minecraft-server";
-  version = "1.15.2";
+  version = "1.16.3";
 
   src = fetchurl {
-    url = "https://launcher.mojang.com/v1/objects/bb2b6b1aefcd70dfd1892149ac3a215f6c636b07/server.jar";
+    url = "https://launcher.mojang.com/v1/objects/f02f4473dbf152c23d7d484952121db0b36698cb/server.jar";
     # sha1 because that comes from mojang via api
-    sha1 = "bb2b6b1aefcd70dfd1892149ac3a215f6c636b07";
+    sha1 = "f02f4473dbf152c23d7d484952121db0b36698cb";
   };
 
   preferLocalBuild = true;
diff --git a/nixpkgs/pkgs/games/minecraft/default.nix b/nixpkgs/pkgs/games/minecraft/default.nix
index 650bb223c9af..9bdf979d7dd4 100644
--- a/nixpkgs/pkgs/games/minecraft/default.nix
+++ b/nixpkgs/pkgs/games/minecraft/default.nix
@@ -36,7 +36,7 @@ let
     icon = "minecraft-launcher";
     comment = "Official launcher for Minecraft, a sandbox-building game";
     desktopName = "Minecraft Launcher";
-    categories = "Game;Application;";
+    categories = "Game;";
   };
 
   envLibPath = stdenv.lib.makeLibraryPath [
@@ -59,7 +59,6 @@ let
     freetype
     gdk-pixbuf
     glib
-    gnome2.GConf
     gnome2.pango
     gtk3-x11
     gtk2-x11
@@ -87,11 +86,11 @@ in
 stdenv.mkDerivation rec {
   pname = "minecraft-launcher";
 
-  version = "2.1.14947";
+  version = "2.1.17627";
 
   src = fetchurl {
     url = "https://launcher.mojang.com/download/linux/x86_64/minecraft-launcher_${version}.tar.gz";
-    sha256 = "1lsc39n1kq08sssnpr6kf4lfpy01a7i7rgvi298mmxsprjmc7a9q";
+    sha256 = "04zjjyy0psfxfibzbac9w0kkgqwfpf1qmbj5gspyvhaib7k8may0";
   };
 
   icon = fetchurl {
@@ -134,6 +133,7 @@ stdenv.mkDerivation rec {
     makeWrapper $out/opt/minecraft-launcher/minecraft-launcher $out/bin/minecraft-launcher \
       --prefix LD_LIBRARY_PATH : ${envLibPath} \
       --prefix PATH : ${stdenv.lib.makeBinPath [ jre ]} \
+      --set JAVA_HOME ${stdenv.lib.makeBinPath [ jre ]} \
       --run "cd /tmp" \
       "''${gappsWrapperArgs[@]}"
   '';
diff --git a/nixpkgs/pkgs/games/minetest/default.nix b/nixpkgs/pkgs/games/minetest/default.nix
index db36b43ea299..f49ec1f4a826 100644
--- a/nixpkgs/pkgs/games/minetest/default.nix
+++ b/nixpkgs/pkgs/games/minetest/default.nix
@@ -39,7 +39,7 @@ let
     ] ++ optionals buildClient [
       "-DOpenGL_GL_PREFERENCE=GLVND"
     ];
-    
+
     NIX_CFLAGS_COMPILE = "-DluaL_reg=luaL_Reg"; # needed since luajit-2.1.0-beta3
 
     nativeBuildInputs = [ cmake doxygen graphviz ];
@@ -47,7 +47,7 @@ let
     buildInputs = [
       irrlicht luajit jsoncpp gettext freetype sqlite curl bzip2 ncurses
       gmp libspatialindex
-    ] ++ optionals stdenv.isDarwin [ 
+    ] ++ optionals stdenv.isDarwin [
       libiconv OpenGL OpenAL Carbon Cocoa
     ] ++ optionals buildClient [
       libpng libjpeg libGLU libGL openal libogg libvorbis xorg.libX11 libXxf86vm
@@ -76,9 +76,9 @@ let
   };
 
   v5 = {
-    version = "5.2.0";
-    sha256 = "0pj9hkxwc1vzng2khbixi79557sbawf6mqkzl589jciyqa7jqkv1";
-    dataSha256 = "1kjz7x3xiqqnpyrd6339a139pbdxx31c4qpg8pmns410hsm8i358";
+    version = "5.3.0";
+    sha256 = "03ga3j3cg38w4lg4d4qxasmnjdl8n3lbizidrinanvyfdyvznyh6";
+    dataSha256 = "1liciwlh013z5h08ib0psjbwn5wkvlr937ir7kslfk4vly984cjx";
   };
 
 in {
diff --git a/nixpkgs/pkgs/games/mnemosyne/default.nix b/nixpkgs/pkgs/games/mnemosyne/default.nix
index 44bd396e9fab..4a92b8c1014a 100644
--- a/nixpkgs/pkgs/games/mnemosyne/default.nix
+++ b/nixpkgs/pkgs/games/mnemosyne/default.nix
@@ -5,11 +5,11 @@
 
 python.pkgs.buildPythonApplication rec {
   pname = "mnemosyne";
-  version = "2.7.1";
+  version = "2.7.2";
 
   src = fetchurl {
     url    = "mirror://sourceforge/project/mnemosyne-proj/mnemosyne/mnemosyne-${version}/Mnemosyne-${version}.tar.gz";
-    sha256 = "0dhvg9cxc6m6kzk75h363h1g0bl80cqz11cijh0zpz9f4w6lnqsq";
+    sha256 = "09yp9zc00xrc9dmjbsscnkb3hsv3yj46sxikc0r6s9cbghn3nypy";
   };
 
   nativeBuildInputs = with python.pkgs; [ pyqtwebengine.wrapQtAppsHook ];
diff --git a/nixpkgs/pkgs/games/mudlet/default.nix b/nixpkgs/pkgs/games/mudlet/default.nix
index 75d16586a39f..b73af4515d3c 100644
--- a/nixpkgs/pkgs/games/mudlet/default.nix
+++ b/nixpkgs/pkgs/games/mudlet/default.nix
@@ -6,14 +6,14 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mudlet";
-  version = "4.3";
+  version = "4.9.1";
 
   src = fetchFromGitHub {
     owner = "Mudlet";
     repo = "Mudlet";
     rev = "Mudlet-${version}";
     fetchSubmodules = true;
-    sha256 = "0qqdmivfwf9jmv5yx90z1fj99nlhnq762lfw6bcxgv74y4l4b4c0";
+    sha256 = "0i022qcmlq4xwl2yh4xd5qdc0ag52605qmqqz6bim0h8f3dp8cx1";
   };
 
   nativeBuildInputs = [ cmake wrapQtAppsHook git qttools which ];
diff --git a/nixpkgs/pkgs/games/multimc/default.nix b/nixpkgs/pkgs/games/multimc/default.nix
index bcdd950de4ad..472a8b2966c8 100644
--- a/nixpkgs/pkgs/games/multimc/default.nix
+++ b/nixpkgs/pkgs/games/multimc/default.nix
@@ -1,6 +1,7 @@
-{ stdenv, mkDerivation, fetchFromGitHub, cmake, jdk, zlib, file, makeWrapper, xorg, libpulseaudio, qtbase }:
+{ stdenv, mkDerivation, fetchFromGitHub, cmake, jdk8, zlib, file, makeWrapper, xorg, libpulseaudio, qtbase }:
 
 let
+  jdk = jdk8;
   libpath = with xorg; stdenv.lib.makeLibraryPath [ libX11 libXext libXcursor libXrandr libXxf86vm libpulseaudio ];
 in mkDerivation rec {
   pname = "multimc";
diff --git a/nixpkgs/pkgs/games/ninvaders/default.nix b/nixpkgs/pkgs/games/ninvaders/default.nix
index 009cb1e548f5..26462c1eef5c 100644
--- a/nixpkgs/pkgs/games/ninvaders/default.nix
+++ b/nixpkgs/pkgs/games/ninvaders/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     description = "Space Invaders clone based on ncurses";
     homepage = "http://ninvaders.sourceforge.net/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ maintainers."1000101" ];
+    maintainers = with maintainers; [ _1000101 ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/games/openjk/default.nix b/nixpkgs/pkgs/games/openjk/default.nix
index 2d08a1da9998..0fe327b308e9 100644
--- a/nixpkgs/pkgs/games/openjk/default.nix
+++ b/nixpkgs/pkgs/games/openjk/default.nix
@@ -21,13 +21,13 @@ let
   };
 in stdenv.mkDerivation {
   pname = "OpenJK";
-  version = "2019-11-29";
+  version = "2020-07-03";
 
   src = fetchFromGitHub {
     owner = "JACoders";
     repo = "OpenJK";
-    rev = "eed60925ad1b0d513d3747264f3bf98615fa4b2a";
-    sha256 = "0b33cr540vz7w7dlagqf3yldmyx9y2pri20j44pd8fxapq4krrmb";
+    rev = "0a336ce4dffe6505e3f754b59732402a1db95752";
+    sha256 = "1xagbz42hi3ivs208mnay2dbgh90pmwwbar2p1yfhj3zl3cghcs8";
   };
 
   dontAddPrefix = true;
diff --git a/nixpkgs/pkgs/games/openmw/tes3mp.nix b/nixpkgs/pkgs/games/openmw/tes3mp.nix
index 59bdc6901078..df332c0e5bf3 100644
--- a/nixpkgs/pkgs/games/openmw/tes3mp.nix
+++ b/nixpkgs/pkgs/games/openmw/tes3mp.nix
@@ -1,4 +1,4 @@
-{ stdenv, cmake, openmw, fetchFromGitHub, luajit, makeWrapper }:
+{ stdenv, cmake, openmw, fetchFromGitHub, luajit, makeWrapper, mygui }:
 
 # revisions are taken from https://github.com/GrimKriegor/TES3MP-deploy
 
@@ -28,6 +28,17 @@ let
     rev = "24aae91d9ddad38cdb3b0e0a13af59f142803e94";
     sha256 = "1rfmxxr9ircfagdpbdrzl26msdhx1i3g974cblbv69078cradfh3";
   };
+  # https://github.com/TES3MP/openmw-tes3mp/issues/555
+  mygui_ = mygui.overrideAttrs (oldAttrs: rec {
+    version = "3.2.2";
+
+    src = fetchFromGitHub {
+      owner = "MyGUI";
+      repo = "mygui";
+      rev = "MyGUI${version}";
+      sha256 = "1wk7jmwm55rhlqqcyvqsxdmwvl70bysl9azh4kd9n57qlmgk3zmw";
+    };
+  });
 in openmw.overrideAttrs (oldAttrs: rec {
   version = "2019-11-19";
   name = "openmw-tes3mp-${version}";
@@ -41,7 +52,7 @@ in openmw.overrideAttrs (oldAttrs: rec {
   };
 
   nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ makeWrapper ];
-  buildInputs = oldAttrs.buildInputs ++ [ luajit ];
+  buildInputs = [ luajit mygui_ ] ++ oldAttrs.buildInputs;
 
   cmakeFlags = oldAttrs.cmakeFlags ++ [
     "-DBUILD_OPENCS=OFF"
@@ -50,7 +61,7 @@ in openmw.overrideAttrs (oldAttrs: rec {
     "-DRakNet_LIBRARY_DEBUG=${rakNetLibrary}/lib/libRakNetLibStatic.a"
   ];
 
-  # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95175
+  # https://github.com/TES3MP/openmw-tes3mp/issues/552
   patches = [
     ./tes3mp.patch
   ];
diff --git a/nixpkgs/pkgs/games/openrct2/default.nix b/nixpkgs/pkgs/games/openrct2/default.nix
index b519e0c7e925..45133be461ca 100644
--- a/nixpkgs/pkgs/games/openrct2/default.nix
+++ b/nixpkgs/pkgs/games/openrct2/default.nix
@@ -1,23 +1,23 @@
-{ stdenv, fetchFromGitHub,
-  SDL2, cmake, curl, fontconfig, freetype, icu, jansson, libiconv, libpng,
-  libpthreadstubs, libzip, libGLU, openssl, pkgconfig, speexdsp, zlib
+{ stdenv, fetchFromGitHub
+, SDL2, cmake, curl, duktape, fontconfig, freetype, icu, jansson, libGLU
+, libiconv, libpng, libpthreadstubs, libzip, openssl, pkgconfig, speexdsp, zlib
 }:
 
 let
-  version = "0.2.6";
+  version = "0.3.0";
 
   openrct2-src = fetchFromGitHub {
     owner = "OpenRCT2";
     repo = "OpenRCT2";
     rev = "v${version}";
-    sha256 = "1vikbkg3wh5ngzdfilb6irbh6nqinf138qpdz8wz9izlvl8s36k4";
+    sha256 = "0xs8pnn3lq30iy76pv42hywsrabapcrrkl597dhjafwh1xaxxj91";
   };
 
   objects-src = fetchFromGitHub {
     owner = "OpenRCT2";
     repo = "objects";
-    rev = "v1.0.14";
-    sha256 = "1bqbia5y73v4r0sv5cvi5729jh2ns7cxn557blh715yxswk91590";
+    rev = "v1.0.16";
+    sha256 = "1xz50ghiqj9rm0m6d65j09ich6dlhyj36zah6zvmmzr4kg6svnk5";
   };
 
   title-sequences-src = fetchFromGitHub {
@@ -41,15 +41,16 @@ stdenv.mkDerivation {
   buildInputs = [
     SDL2
     curl
+    duktape
     fontconfig
     freetype
     icu
     jansson
+    libGLU
     libiconv
     libpng
     libpthreadstubs
     libzip
-    libGLU
     openssl
     speexdsp
     zlib
@@ -57,7 +58,7 @@ stdenv.mkDerivation {
 
   postUnpack = ''
     cp -r ${objects-src}         $sourceRoot/data/object
-    cp -r ${title-sequences-src} $sourceRoot/data/title
+    cp -r ${title-sequences-src} $sourceRoot/data/sequence
   '';
 
   cmakeFlags = [
@@ -74,6 +75,6 @@ stdenv.mkDerivation {
     homepage = "https://openrct2.io/";
     license = licenses.gpl3;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/nixpkgs/pkgs/games/openttd/default.nix b/nixpkgs/pkgs/games/openttd/default.nix
index 223f0a6ae8c5..bab4e510e7da 100644
--- a/nixpkgs/pkgs/games/openttd/default.nix
+++ b/nixpkgs/pkgs/games/openttd/default.nix
@@ -29,11 +29,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "openttd";
-  version = "1.10.2";
+  version = "1.10.3";
 
   src = fetchurl {
     url = "https://cdn.openttd.org/openttd-releases/${version}/${pname}-${version}-source.tar.xz";
-    sha256 = "1xdn9rr858nq22a13cpbhcw74bwygf7lw95kvx3wn4zvb795b74k";
+    sha256 = "0fxmfz1mm95a2x0rnzfff9wb8q57w0cvsdd0z7agdcbyakph25n1";
   };
 
   nativeBuildInputs = [ pkgconfig which makeWrapper ];
diff --git a/nixpkgs/pkgs/games/openttd/jgrpp.nix b/nixpkgs/pkgs/games/openttd/jgrpp.nix
new file mode 100644
index 000000000000..83a8f9276945
--- /dev/null
+++ b/nixpkgs/pkgs/games/openttd/jgrpp.nix
@@ -0,0 +1,13 @@
+{ fetchFromGitHub, openttd, ... }:
+
+openttd.overrideAttrs (oldAttrs: rec {
+  pname = "openttd-jgrpp";
+  version = "0.34.4";
+
+  src = fetchFromGitHub rec {
+    owner = "JGRennison";
+    repo = "OpenTTD-patches";
+    rev = "jgrpp-${version}";
+    sha256 = "125mgia5hgcsn8314xyiip3z8y23rc3kdv7jczbncqlzsc75624v";
+  };
+})
diff --git a/nixpkgs/pkgs/games/openxray/default.nix b/nixpkgs/pkgs/games/openxray/default.nix
index 9e38852a02a5..fe2e978c4cc4 100644
--- a/nixpkgs/pkgs/games/openxray/default.nix
+++ b/nixpkgs/pkgs/games/openxray/default.nix
@@ -3,13 +3,13 @@
 , pcre, makeWrapper }:
 
 let
-  version = "558";
+  version = "730-july-preview";
 
   src = fetchFromGitHub {
     owner = "OpenXRay";
     repo = "xray-16";
     rev = version;
-    sha256 = "1wnkx9g0ww4f5pljrb0wzs054jzkig1i5hlz1p509rfvnhc50afp";
+    sha256 = "1nish3sbpk0hsag7r4nyx8j6pl9mlgx58v8dhzg2vwj2q32isyb2";
     fetchSubmodules = true;
   };
 
@@ -40,7 +40,6 @@ in stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
   cmakeFlags = [ "-DCMAKE_INCLUDE_PATH=${cryptopp}/include/cryptopp" ];
-  installFlags = [ "DESTDIR=${placeholder "out"}" ];
 
   buildInputs = [
     glew freeimage liblockfile openal cryptopp libtheora SDL2 lzo
@@ -54,11 +53,6 @@ in stdenv.mkDerivation rec {
   '';
 
   postInstall = ''
-    mv $out/var/empty/* $out
-    install -Dm755 $out/games/xr_3da $out/bin/xr_3da
-    install -Dm644 $src/License.txt $out/share/licenses/openxray/License.txt
-    rm -r $out/var $out/games
-
     # needed because of SDL_LoadObject library loading code
     wrapProgram $out/bin/xr_3da \
       --prefix LD_LIBRARY_PATH : $out/lib
diff --git a/nixpkgs/pkgs/games/osu-lazer/bypass-tamper-detection.patch b/nixpkgs/pkgs/games/osu-lazer/bypass-tamper-detection.patch
new file mode 100644
index 000000000000..576f83a96c57
--- /dev/null
+++ b/nixpkgs/pkgs/games/osu-lazer/bypass-tamper-detection.patch
@@ -0,0 +1,23 @@
+diff --git a/osu.Game/OsuGameBase.cs b/osu.Game/OsuGameBase.cs

+index 98f60d52d..a27ce47ca 100644

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

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

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

+         [BackgroundDependencyLoader]

+         private void load()

+         {

+-            try

+-            {

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

+-                    VersionHash = str.ComputeMD5Hash();

+-            }

+-            catch

+-            {

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

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

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

+-            }

++            VersionHash = "253aa3a3a356a71295bf5b018cd4fda1";

+ 

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

+ 

diff --git a/nixpkgs/pkgs/games/osu-lazer/default.nix b/nixpkgs/pkgs/games/osu-lazer/default.nix
new file mode 100644
index 000000000000..fa27eab27581
--- /dev/null
+++ b/nixpkgs/pkgs/games/osu-lazer/default.nix
@@ -0,0 +1,111 @@
+{ lib, stdenv, fetchFromGitHub, fetchurl, makeWrapper, makeDesktopItem, linkFarmFromDrvs
+, dotnet-sdk, dotnet-netcore, dotnetPackages
+, ffmpeg_4, alsaLib, SDL2, lttng-ust, numactl, alsaPlugins
+}:
+
+let
+  runtimeDeps = [
+    ffmpeg_4 alsaLib SDL2 lttng-ust numactl
+  ];
+
+  # https://docs.microsoft.com/en-us/dotnet/core/rid-catalog#using-rids
+  runtimeId = "linux-x64";
+
+in stdenv.mkDerivation rec {
+  pname = "osu-lazer";
+  version = "2020.903.0";
+
+  src = fetchFromGitHub {
+    owner = "ppy";
+    repo = "osu";
+    rev = version;
+    sha256 = "01apjgi2r8jaihp7sp1y69fmplkiy383zxxdbjn1m797f0ls37ca";
+  };
+
+  patches = [ ./bypass-tamper-detection.patch ];
+  patchFlags = [ "--binary" "-p1" ];
+
+  nativeBuildInputs = [ dotnet-sdk dotnetPackages.Nuget makeWrapper ];
+
+  nugetDeps = linkFarmFromDrvs "${pname}-nuget-deps" (import ./deps.nix {
+    fetchNuGet = { name, version, sha256 }: fetchurl {
+      name = "nuget-${name}-${version}.nupkg";
+      url = "https://www.nuget.org/api/v2/package/${name}/${version}";
+      inherit sha256;
+    };
+  });
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    export DOTNET_CLI_TELEMETRY_OPTOUT=1
+    export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+
+    nuget sources Add -Name nixos -Source "$PWD/nixos"
+    nuget init "$nugetDeps" "$PWD/nixos"
+
+    # FIXME: https://github.com/NuGet/Home/issues/4413
+    mkdir -p $HOME/.nuget/NuGet
+    cp $HOME/.config/NuGet/NuGet.Config $HOME/.nuget/NuGet
+
+    dotnet restore --source "$PWD/nixos" osu.Desktop
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    dotnet build osu.Desktop \
+      --no-restore \
+      --configuration Release \
+      -p:Version=${version}
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    dotnet publish osu.Desktop \
+      --no-build \
+      --configuration Release \
+      --no-self-contained \
+      --output $out/lib/osu
+    shopt -s extglob
+    rm -r $out/lib/osu/runtimes/!(${runtimeId})
+
+    makeWrapper $out/lib/osu/osu\! $out/bin/osu\! \
+      --set DOTNET_ROOT "${dotnet-netcore}" \
+      --suffix LD_LIBRARY_PATH : "${lib.makeLibraryPath runtimeDeps}"
+    for i in 16 32 48 64 96 128 256 512 1024; do
+      install -D ./assets/lazer.png $out/share/icons/hicolor/''${i}x$i/apps/osu\!.png
+    done
+    cp -r ${makeDesktopItem {
+      desktopName = "osu!";
+      name = "osu";
+      exec = "osu!";
+      icon = "osu!";
+      comment = meta.description;
+      type = "Application";
+      categories = "Game;";
+    }}/share/applications $out/share
+
+    runHook postInstall
+  '';
+
+  # Strip breaks the executable.
+  dontStrip = true;
+
+  meta = with lib; {
+    description = "Rhythm is just a *click* away";
+    homepage = "https://osu.ppy.sh";
+    license = with licenses; [
+      mit
+      cc-by-nc-40
+      unfreeRedistributable # osu-framework contains libbass.so in repository
+    ];
+    maintainers = with maintainers; [ oxalica ];
+    platforms = [ "x86_64-linux" ];
+  };
+  passthru.updateScript = ./update.sh;
+}
diff --git a/nixpkgs/pkgs/games/osu-lazer/deps.nix b/nixpkgs/pkgs/games/osu-lazer/deps.nix
new file mode 100644
index 000000000000..6c8aa4bd18fd
--- /dev/null
+++ b/nixpkgs/pkgs/games/osu-lazer/deps.nix
@@ -0,0 +1,1517 @@
+{ fetchNuGet }: [
+  (fetchNuGet {
+    name = "Dapper";
+    version = "2.0.35";
+    sha256 = "0465i2p5kjj0hmadyw0xrpn43zpc4bnbid9mg561739fyjyjwmfm";
+  })
+  (fetchNuGet {
+    name = "DeltaCompressionDotNet";
+    version = "2.0.0.0";
+    sha256 = "0zhj7m3zaf9wcg51385in9qg1xgkvp8yyzgq3r5k4sagm7y68aqy";
+  })
+  (fetchNuGet {
+    name = "DiffPlex";
+    version = "1.6.3";
+    sha256 = "0yi72afddddz0s8phx855rnjrga7n51bcma10dc91l0ffcwf5xwz";
+  })
+  (fetchNuGet {
+    name = "DiscordRichPresence";
+    version = "1.0.150";
+    sha256 = "0qmbi4sccia3w80q8xfvj3bw62nvz047wq198n2b2aflkf47bq79";
+  })
+  (fetchNuGet {
+    name = "FFmpeg.AutoGen";
+    version = "4.3.0.1";
+    sha256 = "0n6x57mnnvcjnrs8zyvy07h5zm4bcfy9gh4n4bvd9fx5ys4pxkvv";
+  })
+  (fetchNuGet {
+    name = "Humanizer";
+    version = "2.8.26";
+    sha256 = "11kddzyzqpq9gkz0hmrblq494nh86va6wxx6z89xi6w1f4vj15ak";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core";
+    version = "2.2.0";
+    sha256 = "08mzg65y9d3zvq16rsmpapcdan71ggq2mpks6k777h3wlm2sh3p5";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core";
+    version = "2.8.26";
+    sha256 = "1v8xd12yms4qq1md4vh6faxicmqrvahqdd7sdkyzrphab9v44nsm";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.af";
+    version = "2.8.26";
+    sha256 = "0znrq4frlkq1qi20301hlzxa6mdc275fa1i1a1i8ldgk9cjq94k9";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.ar";
+    version = "2.8.26";
+    sha256 = "1hi7mln48p1nmxlgdq725s4cvla9nlkvbmrsql1rfjjlsy8hn6n7";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.az";
+    version = "2.8.26";
+    sha256 = "0av7ycrqwvmikqia3z3qkp9967zilrhayny17zkm0d0mnjq62vs6";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.bg";
+    version = "2.8.26";
+    sha256 = "13j6zk2cmk7a119azxlpjhfwykrzk0vkf5a799fb2fzkvhnj4hkg";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.bn-BD";
+    version = "2.8.26";
+    sha256 = "0h619sksggfi7dnaycz6bj9aiqdgn0d8dpgjgdl73crw52lr70p9";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.cs";
+    version = "2.8.26";
+    sha256 = "11bh3k15388bi5wizaihnwqk7wb4n7q636fqjllwdhjggqrsc3f6";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.da";
+    version = "2.8.26";
+    sha256 = "09b3x3bw3cgby9qvaccnqz2y6d8gl3497dh7q0dk1iznsxbk4x4m";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.de";
+    version = "2.8.26";
+    sha256 = "1pyp2a9my20wlwjjzv563kshl9fpjb2kd4cw41l4wvsz1bsq3l22";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.el";
+    version = "2.8.26";
+    sha256 = "0v3sdcxca4dam1y5yjh9n6v711ys0zdv38hr4kij35s6277ls6lb";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.es";
+    version = "2.8.26";
+    sha256 = "0wh9qvqf80cngwsz2jnrsjpmaax4xa2xp8bbk5xs480kp071z37q";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.fa";
+    version = "2.8.26";
+    sha256 = "00v56ddjfv6sr6w5246gn5z0padwswvnngp8mdl7gjfg5ycmbkl1";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.fi-FI";
+    version = "2.8.26";
+    sha256 = "1pgs0j5ri50a6vhljplhrlc8jj1hrd9ggxkj60d9v5kk9xibzzyd";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.fr";
+    version = "2.8.26";
+    sha256 = "0kkhgy3yn8vfqlx3dhb9m3cazkgfxarknam4macng9y17l7wj83m";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.fr-BE";
+    version = "2.8.26";
+    sha256 = "13spcx07hph366qk073pz63s56nadaac7l4mr4a66gbpqd3814kb";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.he";
+    version = "2.8.26";
+    sha256 = "1ccn82aj3rhrhsa3kvkrmjw0p687icxlfja8ngbh7sby4cszx9bk";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.hr";
+    version = "2.8.26";
+    sha256 = "12ii79bhai3kv7zr3k9k9dh569r6p3m4l4gj25cln2isr4wdi5r9";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.hu";
+    version = "2.8.26";
+    sha256 = "0cibbdxiqhwrjmxlr805mg3l9v0fl2ydx4m50608rkysjq6vxx7y";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.hy";
+    version = "2.8.26";
+    sha256 = "15aikm04f74abm4ak8rvnnkrlcz155gibn1y81pbgsyn7yrh84v3";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.id";
+    version = "2.8.26";
+    sha256 = "1i9gpzdfhmbvrqg858kqz5461sp3sh60g16dmcmyi1ik0qlspijn";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.it";
+    version = "2.8.26";
+    sha256 = "01j7qskmqcxsakbx3bkxcjyzrh6nxi2v6kfzsfb0vf980qqq331l";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.ja";
+    version = "2.8.26";
+    sha256 = "07d19ns4a4pa2k4vdc1af7wj10gaflq1ny4mx6y574afkdi8v6d5";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.lv";
+    version = "2.8.26";
+    sha256 = "1pm64sj65nmngyfa3hjcw67icfmlzr232hmgpnw7306sb7dxmnfv";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.ms-MY";
+    version = "2.8.26";
+    sha256 = "1yx4cc023kc4k14abk2ycmjy6y2xaknaz4zria7xsadf0fabd1jc";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.mt";
+    version = "2.8.26";
+    sha256 = "0iai35pzka9g6c3sgswki06fk6gdnq8kc88wyb4pcciivazz31px";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.nb";
+    version = "2.8.26";
+    sha256 = "0xprhiyjyq6mpha2lrav59n1f48508ddvm9nmdk5sm5k26ff3l90";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.nb-NO";
+    version = "2.8.26";
+    sha256 = "160c98wfh7d2xlvlra4x5rdj4klgcjwcy3gkb4ipg655byn2m1j2";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.nl";
+    version = "2.8.26";
+    sha256 = "067pqm4i1mk83fqqr0bvzrchrvxwdnff18z3djgagclh1i4xqlvk";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.pl";
+    version = "2.8.26";
+    sha256 = "1r1bbqb990war1hiag5f88yxw0k9jiid1ihb4s5bc1lzs3vfsb6x";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.pt";
+    version = "2.8.26";
+    sha256 = "1bik0vjjdzw51yl11ng9gsi3ihz50ibwh1gdhh2vd13jxjzb512p";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.ro";
+    version = "2.8.26";
+    sha256 = "12f2hry6x1p1mgx6g4kpig2jpybx52ibghvhdhjbbfhy32gv8dr0";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.ru";
+    version = "2.8.26";
+    sha256 = "1hri12kwymzvdqcr66l8yiqiw3pmf9fk492z10yqljm576kyshgg";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.sk";
+    version = "2.8.26";
+    sha256 = "07jfgk67axw97b85dn4bwpjwf3swd74j9hdd870qps12xfp98i9j";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.sl";
+    version = "2.8.26";
+    sha256 = "060xbzwb7p9ypbqfklih2zal2rh6h55gq4hv3i6alvlbd3vsx29n";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.sr";
+    version = "2.8.26";
+    sha256 = "0i2c24qmqnhp85b088qlbagxd48hcl0v1ly4m7hfbvx5s7fg8riv";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.sr-Latn";
+    version = "2.8.26";
+    sha256 = "1911a69sqssh9f007vmxbgyj4ym2ym4423xvw6cmbfhjcrhkfpbi";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.sv";
+    version = "2.8.26";
+    sha256 = "056h8n9i18yl78f9ppzn2kkrz2cs46aqv0j5y8xq360zarggh0nm";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.tr";
+    version = "2.8.26";
+    sha256 = "0dk8ga3fpxifxxkz0n68654h65cvrx00hy7q00m5vgvmcp70gxxn";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.uk";
+    version = "2.8.26";
+    sha256 = "0bnj5xqlcqp4n8i04ra78dax4854zbf2jsygvb4lpiayyyaj2bxw";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.uz-Cyrl-UZ";
+    version = "2.8.26";
+    sha256 = "1bbf6mxas6brjw7rjljq5saz6v3ic6zbvm1b3c1jbk0hc0qkd7c8";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.uz-Latn-UZ";
+    version = "2.8.26";
+    sha256 = "1bfgfihpynax30g9kq8kra7c4jxps2ccxsxrs9gls47xbs35cw2f";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.vi";
+    version = "2.8.26";
+    sha256 = "1vm765nvkp6wyfwlcgppimjrk04lkg8lscch3n1i1i5hlqxrs9ch";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.zh-CN";
+    version = "2.8.26";
+    sha256 = "1qyl12rdh4iv1k1qcivcmxxnh8y93ainf22pmch8vvw9yjhs1y7s";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.zh-Hans";
+    version = "2.8.26";
+    sha256 = "1gqv3dyk236wlp5wb7kd4qnyrmp3cy36ycykl7zr91s25cdls5vy";
+  })
+  (fetchNuGet {
+    name = "Humanizer.Core.zh-Hant";
+    version = "2.8.26";
+    sha256 = "1rhzbiqbx04l3kvzjklix90fxyc6vvmmw0p564ajdiximivs0pbh";
+  })
+  (fetchNuGet {
+    name = "JetBrains.Annotations";
+    version = "2020.1.0";
+    sha256 = "13fqcr6bs4x9rn0mpx110xl5apwh8ds1h0lx208znrm178ywqm8y";
+  })
+  (fetchNuGet {
+    name = "ManagedBass";
+    version = "2.0.4";
+    sha256 = "13hwd0yany4j52abbaaqsgq8lag2w9vjxxsj4qfbgwp4qs39x003";
+  })
+  (fetchNuGet {
+    name = "ManagedBass.Fx";
+    version = "2.0.1";
+    sha256 = "1rbjpgpm0ri7l2gqdy691rsv3visna2nbxawgvhdqljw068r8a8d";
+  })
+  (fetchNuGet {
+    name = "managed-midi";
+    version = "1.9.14";
+    sha256 = "025jh146zy98699y4civ7nxlkx312lwkl4sr8pha626q7q1kg89h";
+  })
+  (fetchNuGet {
+    name = "Markdig";
+    version = "0.21.1";
+    sha256 = "119v22rvg51ifg54r1ndf2bw7hv1lf5wn3cd04ccg8d7r8c0yhbk";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Bcl.AsyncInterfaces";
+    version = "1.1.0";
+    sha256 = "1dq5yw7cy6s42193yl4iqscfw5vzkjkgv0zyy32scr4jza6ni1a1";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build.Framework";
+    version = "15.3.409";
+    sha256 = "1dhanwb9ihbfay85xj7cwn0byzmmdz94hqfi3q6r1ncwdjd8y1s2";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Build.Locator";
+    version = "1.2.6";
+    sha256 = "1rnfd7wq2bkynqj767xmq9ha38mz010fmqvvvrgb4v86gd537737";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.Analyzers";
+    version = "3.0.0";
+    sha256 = "0bbl0jpqywqmzz2gagld1p2gvdfldjfjmm25hil9wj2nq1zc4di8";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.BannedApiAnalyzers";
+    version = "3.3.0";
+    sha256 = "04z03ir9sal5h9ha97isbh660jijslb8zfiaa48w2r2l6pabz5kd";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.Common";
+    version = "3.7.0";
+    sha256 = "0882492nx6x68b0pkh3q5xaawz0b2l5x35r40722ignyjnvjydph";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.CSharp";
+    version = "3.7.0";
+    sha256 = "0adw6rcag8wxydzyiyhls2mxaqkay5qlz25z1fxrlv5qnchqn0n5";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.CSharp.Workspaces";
+    version = "3.7.0";
+    sha256 = "15rlz65wbky0yq7b9s8xwk68dgrhgsk4rj88q9pyjxbm5938vrav";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.FxCopAnalyzers";
+    version = "3.0.0";
+    sha256 = "0a17vb6jnj6kch70d7vki84728hlc3zpffsbv533yji6kf6x6d24";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.VersionCheckAnalyzer";
+    version = "3.0.0";
+    sha256 = "11g3hj3p885zj7bn99qzh68m1xifbwzrgmx1pkvpi10rmgkpyh8j";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.Workspaces.Common";
+    version = "3.7.0";
+    sha256 = "00nm453w4n6kjsicmz5izvkf1ki9rp3xnc9n3y7a9b1g5sxg36fs";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeAnalysis.Workspaces.MSBuild";
+    version = "3.7.0";
+    sha256 = "1sh8s7b16j06p3gmzsgwd8690vagah4908bpa3gyz2fxgfnj46ax";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeQuality.Analyzers";
+    version = "3.0.0";
+    sha256 = "1x3yf21m41w2iv9nlwp03q6byqgivd48h2dlm5vgv5bd53xjfz77";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.0.1";
+    sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.5.0";
+    sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Data.Sqlite.Core";
+    version = "2.2.6";
+    sha256 = "0fx8698k71vzr8pdc6q8bsbzg6r8a42s4hkzmiyv13ibmyb5q68k";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Diagnostics.NETCore.Client";
+    version = "0.2.61701";
+    sha256 = "1ic1607jj4ln8dbibf1fz5v9svk9x2kqlgvhndc6ijaqnbc4wcr1";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Diagnostics.Runtime";
+    version = "2.0.142701";
+    sha256 = "114ivn09zlxkna78hyxa3h40k5iaivapws755i0aiys7nxhdn3mw";
+  })
+  (fetchNuGet {
+    name = "Microsoft.DotNet.PlatformAbstractions";
+    version = "2.1.0";
+    sha256 = "1qydvyyinj3b5mraazjal3n2k7jqhn05b6n1a2f3qjkqkxi63dmy";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore";
+    version = "2.2.6";
+    sha256 = "18j2cr50wsikwv7gy3vrjvmpdxckvv537qma8afdpr3yn2klayh5";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Abstractions";
+    version = "2.2.6";
+    sha256 = "1dyxb5ibx24frlgbqy7zch0falq9p1189zvlbxgl94m0hvpml5j3";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Analyzers";
+    version = "2.2.6";
+    sha256 = "10f2lxxmh0xrdjvnam31fqfnjkaick23mpfvahj3ca5l07bph0rc";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Design";
+    version = "2.2.6";
+    sha256 = "0kjjkh1yfb56wnkmciqzfn9vymqfjap364y5amia0lmqmhfz8g7f";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Relational";
+    version = "2.2.6";
+    sha256 = "0c0z4mrqldjfslyxywb2ydk8hn9ybhkvz6lxx3idrfalq3ni5f1z";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Sqlite";
+    version = "2.2.6";
+    sha256 = "0z8k5ns841imaqha5abb1ka0rsfzy90k6qkrvix11sp6k9i7lsam";
+  })
+  (fetchNuGet {
+    name = "Microsoft.EntityFrameworkCore.Sqlite.Core";
+    version = "2.2.6";
+    sha256 = "0jzqw4672mzxjvzas09sl0zyzzayfgkv003a7bw5g2gjyiphf630";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Caching.Abstractions";
+    version = "2.2.0";
+    sha256 = "0hhxc5dp52faha1bdqw0k426zicsv6x1kfqi30m9agr0b2hixj52";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Caching.Memory";
+    version = "2.2.0";
+    sha256 = "0bzrsn5vas86w66bd04xilnlb21nx4l6lz7d3acvy6y8ir2vb5dv";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration";
+    version = "2.2.0";
+    sha256 = "02250qrs3jqqbggfvd0mkim82817f79x6jh8fx2i7r58d0m66qkl";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Abstractions";
+    version = "2.2.0";
+    sha256 = "1fv5277hyhfqmc0gqszyqb1ilwnijm8kc9606yia6hwr8pxyg674";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Configuration.Binder";
+    version = "2.2.0";
+    sha256 = "10qyjdkymdmag3r807kvbnwag4j3nz65i4cwikbd77jjvz92ya3j";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection";
+    version = "2.2.0";
+    sha256 = "0lvv45rvq1xbf47lz818rjydc776zk8mf7svpzh1dml4qwlx9zck";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyInjection.Abstractions";
+    version = "2.2.0";
+    sha256 = "1jyzfdr9651h3x6pxwhpfbb9mysfh8f8z1jvy4g117h9790r9zx5";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.DependencyModel";
+    version = "2.1.0";
+    sha256 = "0dl4qhjgifm6v3jsfzvzkvddyic77ggp9fq49ah661v45gk6ilgd";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging";
+    version = "2.2.0";
+    sha256 = "0bx3ljyvvcbikradq2h583rl72h8bxdz33aghk026cxzpv2mm3wm";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Logging.Abstractions";
+    version = "2.2.0";
+    sha256 = "02w7hp6jicr7cl5p456k2cmrjvvhm6spg5kxnlncw3b72358m5wl";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.ObjectPool";
+    version = "3.0.3";
+    sha256 = "0zxsdwh9mhy3wsbjyfr4k0r10s1h06dzw8hcck9aknv155q26zqk";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Options";
+    version = "2.2.0";
+    sha256 = "1b20yh03fg4nmmi3vlf6gf13vrdkmklshfzl3ijygcs4c2hly6v0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Extensions.Primitives";
+    version = "2.2.0";
+    sha256 = "0znah6arbcqari49ymigg3wiy2hgdifz8zsq8vdc3ynnf45r7h0c";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Net.Compilers.Toolset";
+    version = "3.1.0";
+    sha256 = "1csf8hgwvyxjlxdygacrk3pp0xkzydc1kvsv68cxy8h7gd62k0w0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NetCore.Analyzers";
+    version = "3.0.0";
+    sha256 = "0b8biyw7nymqfbg08g2vmpf1xm6g1mm6hz4gjxc5f3g72kd2nswj";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.0.1";
+    sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.1.0";
+    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "2.1.2";
+    sha256 = "1507hnpr9my3z4w1r6xk5n0s1j3y6a2c2cnynj76za7cphxi1141";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "3.1.0";
+    sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "3.1.1";
+    sha256 = "05hmaygd5131rnqi6ipv7agsbpi7ka18779vw45iw6b385l7n987";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.0.1";
+    sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.1.0";
+    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NetFramework.Analyzers";
+    version = "3.0.0";
+    sha256 = "09dqizym3bca4281714yxrhhgryxpjhjfjnyfswlhyh42qi3ix2k";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Primitives";
+    version = "4.0.1";
+    sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Primitives";
+    version = "4.3.0";
+    sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Registry";
+    version = "4.7.0";
+    sha256 = "0bx21jjbs7l5ydyw4p6cn07chryxpmchq2nl5pirzz4l3b0q4dgs";
+  })
+  (fetchNuGet {
+    name = "Mono.Cecil";
+    version = "0.9.6.1";
+    sha256 = "1fr7969h5q611l5227xw6nvv5rzap76vbpk0wg9hxbcxk3hn7szf";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "1.6.0";
+    sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "1.6.1";
+    sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "2.0.0";
+    sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "12.0.2";
+    sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "12.0.3";
+    sha256 = "17dzl305d835mzign8r15vkmav2hq8l6g7942dfjpnzr17wwl89x";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "9.0.1";
+    sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r";
+  })
+  (fetchNuGet {
+    name = "NUnit";
+    version = "3.12.0";
+    sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2";
+  })
+  (fetchNuGet {
+    name = "ppy.osu.Framework";
+    version = "2020.903.0";
+    sha256 = "0g15yw8c21m2g0lpca4f519dgj2phccz15nqdbaq49736akr4qzm";
+  })
+  (fetchNuGet {
+    name = "ppy.osu.Framework.NativeLibs";
+    version = "2020.213.0";
+    sha256 = "1yzrx7bji2163dzvyqri42byc7lgxlm59xbwgi312dw5714snmxy";
+  })
+  (fetchNuGet {
+    name = "ppy.osu.Game.Resources";
+    version = "2020.903.0";
+    sha256 = "0f94kms4xyjl9xwf26j6n6k5zfbx61a6bkd3vljfmbmr88advssy";
+  })
+  (fetchNuGet {
+    name = "ppy.osuTK.NS20";
+    version = "1.0.161";
+    sha256 = "0li5vcpki1ih605c8h1hjf15m9wawkdaizcxib6v3mfjf860ma3s";
+  })
+  (fetchNuGet {
+    name = "ppy.SDL2-CS";
+    version = "1.0.15";
+    sha256 = "0qld7sp7y7hwwxsdxc8m17nyb2zwfxym63j50icvf0rlawmrl7ca";
+  })
+  (fetchNuGet {
+    name = "ppy.squirrel.windows";
+    version = "1.9.0.4";
+    sha256 = "1m8shcmgs0fs225qd0navr1qr6csqjin9sg2x0d7xpfk04nd2hi7";
+  })
+  (fetchNuGet {
+    name = "Remotion.Linq";
+    version = "2.2.0";
+    sha256 = "1y46ni0xswmmiryp8sydjgryafwn458dr91f9xn653w73kdyk4xf";
+  })
+  (fetchNuGet {
+    name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
+  })
+  (fetchNuGet {
+    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
+  })
+  (fetchNuGet {
+    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System";
+    version = "4.0.0";
+    sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System";
+    version = "4.3.0";
+    sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.IO.Compression";
+    version = "4.1.0";
+    sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.IO.Compression";
+    version = "4.3.0";
+    sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Net.Http";
+    version = "4.0.1";
+    sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Net.Http";
+    version = "4.3.0";
+    sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography";
+    version = "4.0.0";
+    sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography.Apple";
+    version = "4.3.0";
+    sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
+  })
+  (fetchNuGet {
+    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
+  })
+  (fetchNuGet {
+    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
+  })
+  (fetchNuGet {
+    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.Apple";
+    version = "4.3.0";
+    sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi";
+  })
+  (fetchNuGet {
+    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3";
+  })
+  (fetchNuGet {
+    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
+  })
+  (fetchNuGet {
+    name = "Sentry";
+    version = "2.1.6";
+    sha256 = "0vc45p1arxwifv5fb6lzkqqxlsvm4i0xmpq2vc73vbjqzydd2phm";
+  })
+  (fetchNuGet {
+    name = "Sentry.PlatformAbstractions";
+    version = "1.1.1";
+    sha256 = "10mxyxmyjpr0y1ik2j55pp7ifn101sw319cbpf28i2xbfp0cvcaj";
+  })
+  (fetchNuGet {
+    name = "Sentry.Protocol";
+    version = "2.1.6";
+    sha256 = "0qc18kc9d7f0s6hmnpji3sbz0z09kdgg4fwh55rrmpfgr3w851s7";
+  })
+  (fetchNuGet {
+    name = "SharpCompress";
+    version = "0.17.1";
+    sha256 = "1ffiacghbcnr3fkgvdcad7b1nky54nhmmn2sm43sks9zm8grvva4";
+  })
+  (fetchNuGet {
+    name = "SharpCompress";
+    version = "0.26.0";
+    sha256 = "03cygf8p44j1bfn6z9cn2xrw6zhvhq17xac1sph5rgq7vq2m5iq5";
+  })
+  (fetchNuGet {
+    name = "SharpFNT";
+    version = "2.0.0";
+    sha256 = "1bgacgh9hbck0qvji6frbb50sdiqfdng2fvvfgfw8b9qaql91mx0";
+  })
+  (fetchNuGet {
+    name = "SixLabors.Core";
+    version = "1.0.0-beta0008";
+    sha256 = "1yqcv5d2igsrmi9hf8xzikn0fms47skqpr552yzbj4z4wnraahaw";
+  })
+  (fetchNuGet {
+    name = "SixLabors.ImageSharp";
+    version = "1.0.0-beta0007";
+    sha256 = "1k3hrp26imyqjarkrcsrhvamlmynzv6cakzq68yx69c0h8lmscaf";
+  })
+  (fetchNuGet {
+    name = "Splat";
+    version = "1.6.2";
+    sha256 = "154w9q0z8697rcpqs4x233crx5ap1z4pl4xc21hsd3csbhw13ykf";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.bundle_green";
+    version = "1.1.12";
+    sha256 = "0jbyd25ag15fyn9nawjikv0v5ylk2zh5pxgr6gm4kpbpqys86sq9";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.core";
+    version = "1.1.12";
+    sha256 = "03gflsn2wl6v0a8zvh6y5xdhx0xxmfrn6jfldiy829x3fx74zgdl";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.lib.e_sqlite3.linux";
+    version = "1.1.12";
+    sha256 = "10mlq914d3zggdjf4bv27w6jx0gqqjf6f91y5ri6pbvaqyhi28h5";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.lib.e_sqlite3.osx";
+    version = "1.1.12";
+    sha256 = "1hixg6n9sqllfrcihj145lh1l38inv827808difvazd4zr3mi0z1";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.lib.e_sqlite3.v110_xp";
+    version = "1.1.12";
+    sha256 = "107sivk5p38dg1kyvqrxgp67dj89s8l6brf9l52k6s4vrn4hrrk7";
+  })
+  (fetchNuGet {
+    name = "SQLitePCLRaw.provider.e_sqlite3.netstandard11";
+    version = "1.1.12";
+    sha256 = "0qr2d7ka6f5c7bybdhiyq7nl90c9575szmi0nfpknd9c0w024if4";
+  })
+  (fetchNuGet {
+    name = "StbiSharp";
+    version = "1.0.12";
+    sha256 = "044lyc6522s8q4kgvly0rsxghkiv4dwzycl2ibxf7q5dvws02qvp";
+  })
+  (fetchNuGet {
+    name = "System.AppContext";
+    version = "4.1.0";
+    sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
+  })
+  (fetchNuGet {
+    name = "System.AppContext";
+    version = "4.3.0";
+    sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.0.0";
+    sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.3.0";
+    sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.4.0";
+    sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.5.0";
+    sha256 = "1ywfqn4md6g3iilpxjn5dsr0f5lx6z0yvhqp4pgjcamygg73cz2c";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.5.1";
+    sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
+    version = "4.0.11";
+    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
+    version = "4.3.0";
+    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Concurrent";
+    version = "4.0.12";
+    sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Concurrent";
+    version = "4.3.0";
+    sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Immutable";
+    version = "1.5.0";
+    sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Immutable";
+    version = "1.7.1";
+    sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.Annotations";
+    version = "4.5.0";
+    sha256 = "1jj6f6g87k0iwsgmg3xmnn67a14mq88np0l1ys5zkxhkvbc8976p";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.Annotations";
+    version = "4.7.0";
+    sha256 = "06x1m46ddxj0ng28d7gry9gjkqdg2kp89jyf480g5gznyybbs49z";
+  })
+  (fetchNuGet {
+    name = "System.Composition";
+    version = "1.0.31";
+    sha256 = "0aa27jz73qb0xm6dyxv22qhfrmyyqjyn2dvvsd9asi82lcdh9i61";
+  })
+  (fetchNuGet {
+    name = "System.Composition.AttributedModel";
+    version = "1.0.31";
+    sha256 = "1ipyb86hvw754kmk47vjmzyilvj5hymg9nqabz70sbgsz1fygrdv";
+  })
+  (fetchNuGet {
+    name = "System.Composition.Convention";
+    version = "1.0.31";
+    sha256 = "00gqcdrql7vhynxh4xq0s9j5nw27kghmn2n773v7lhzjh3ash18r";
+  })
+  (fetchNuGet {
+    name = "System.Composition.Hosting";
+    version = "1.0.31";
+    sha256 = "1f1bnk3j7ndx9r7zpzibmrhw78clys1pspl20j2dhnmkiwhl23vy";
+  })
+  (fetchNuGet {
+    name = "System.Composition.Runtime";
+    version = "1.0.31";
+    sha256 = "1shfybfzsn4g6aim4pggb5ha31g0fz2kkk0519c4vj6m166g39ws";
+  })
+  (fetchNuGet {
+    name = "System.Composition.TypedParts";
+    version = "1.0.31";
+    sha256 = "1m4j19zx50lbbdx1xxbgpsd1dai2r3kzkyapw47kdvkb89qjkl63";
+  })
+  (fetchNuGet {
+    name = "System.Console";
+    version = "4.0.0";
+    sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf";
+  })
+  (fetchNuGet {
+    name = "System.Console";
+    version = "4.3.0";
+    sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "4.0.0";
+    sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "4.3.0";
+    sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "4.5.0";
+    sha256 = "1y8m0p3127nak5yspapfnz25qc9x53gqpvwr3hdpsvrcd2r1pgyj";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tools";
+    version = "4.0.1";
+    sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tools";
+    version = "4.3.0";
+    sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tracing";
+    version = "4.1.0";
+    sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tracing";
+    version = "4.3.0";
+    sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4";
+  })
+  (fetchNuGet {
+    name = "System.Dynamic.Runtime";
+    version = "4.0.11";
+    sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.0.11";
+    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.3.0";
+    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Calendars";
+    version = "4.0.1";
+    sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Calendars";
+    version = "4.3.0";
+    sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.0.1";
+    sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.3.0";
+    sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
+  })
+  (fetchNuGet {
+    name = "System.Interactive.Async";
+    version = "3.2.0";
+    sha256 = "0y5r5y7dlccjpgg17rjrrzi3jya4ysyydamxs33qckkv4jb3534d";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.1.0";
+    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.3.0";
+    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression";
+    version = "4.1.0";
+    sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression";
+    version = "4.3.0";
+    sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression.ZipFile";
+    version = "4.0.1";
+    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression.ZipFile";
+    version = "4.3.0";
+    sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.0.1";
+    sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.0.1";
+    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.3.0";
+    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+  })
+  (fetchNuGet {
+    name = "System.IO.Packaging";
+    version = "4.7.0";
+    sha256 = "1vivvf158ilcpp6bq70zyafimi0lng546b34csmjb09k19wgxpiv";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.1.0";
+    sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.3.0";
+    sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Expressions";
+    version = "4.1.0";
+    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Expressions";
+    version = "4.3.0";
+    sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Queryable";
+    version = "4.0.1";
+    sha256 = "11jn9k34g245yyf260gr3ldzvaqa9477w2c5nhb1p8vjx4xm3qaw";
+  })
+  (fetchNuGet {
+    name = "System.Memory";
+    version = "4.5.1";
+    sha256 = "0f07d7hny38lq9w69wx4lxkn4wszrqf9m9js6fh9is645csm167c";
+  })
+  (fetchNuGet {
+    name = "System.Memory";
+    version = "4.5.3";
+    sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a";
+  })
+  (fetchNuGet {
+    name = "System.Memory";
+    version = "4.5.4";
+    sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y";
+  })
+  (fetchNuGet {
+    name = "System.Net.Http";
+    version = "4.1.0";
+    sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb";
+  })
+  (fetchNuGet {
+    name = "System.Net.Http";
+    version = "4.3.0";
+    sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j";
+  })
+  (fetchNuGet {
+    name = "System.Net.Primitives";
+    version = "4.0.11";
+    sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
+  })
+  (fetchNuGet {
+    name = "System.Net.Primitives";
+    version = "4.3.0";
+    sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii";
+  })
+  (fetchNuGet {
+    name = "System.Net.Sockets";
+    version = "4.1.0";
+    sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls";
+  })
+  (fetchNuGet {
+    name = "System.Net.Sockets";
+    version = "4.3.0";
+    sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla";
+  })
+  (fetchNuGet {
+    name = "System.Numerics.Vectors";
+    version = "4.4.0";
+    sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba";
+  })
+  (fetchNuGet {
+    name = "System.Numerics.Vectors";
+    version = "4.5.0";
+    sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59";
+  })
+  (fetchNuGet {
+    name = "System.ObjectModel";
+    version = "4.0.12";
+    sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
+  })
+  (fetchNuGet {
+    name = "System.ObjectModel";
+    version = "4.3.0";
+    sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
+  })
+  (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.1.0";
+    sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
+  })
+  (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.3.0";
+    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.0.1";
+    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.3.0";
+    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.ILGeneration";
+    version = "4.0.1";
+    sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.ILGeneration";
+    version = "4.3.0";
+    sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.0.1";
+    sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.3.0";
+    sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.7.0";
+    sha256 = "0mbjfajmafkca47zr8v36brvknzks5a7pgb49kfq2d188pyv6iap";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Extensions";
+    version = "4.0.1";
+    sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Extensions";
+    version = "4.3.0";
+    sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Metadata";
+    version = "1.6.0";
+    sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Metadata";
+    version = "1.8.1";
+    sha256 = "17xxl3m99wa4hcpqy42vl8qb1jk2jfq32rj3sfjc1a46hi2si5jj";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.0.1";
+    sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.3.0";
+    sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.TypeExtensions";
+    version = "4.1.0";
+    sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.TypeExtensions";
+    version = "4.3.0";
+    sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.3.0";
+    sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.1.0";
+    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.3.0";
+    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.5.1";
+    sha256 = "1xcrjx5fwg284qdnxyi2d0lzdm5q4frlpkp0nf6vvkx1kdz2prrf";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.5.2";
+    sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.7.0";
+    sha256 = "16r6sn4czfjk8qhnz7bnqlyiaaszr0ihinb7mq9zzr1wba257r54";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.7.1";
+    sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.1.0";
+    sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.0.1";
+    sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.3.0";
+    sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.1.0";
+    sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices.RuntimeInformation";
+    version = "4.0.0";
+    sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices.RuntimeInformation";
+    version = "4.3.0";
+    sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Numerics";
+    version = "4.0.1";
+    sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Numerics";
+    version = "4.3.0";
+    sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Primitives";
+    version = "4.1.1";
+    sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
+  })
+  (fetchNuGet {
+    name = "System.Security.AccessControl";
+    version = "4.7.0";
+    sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Algorithms";
+    version = "4.2.0";
+    sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Algorithms";
+    version = "4.3.0";
+    sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Cng";
+    version = "4.2.0";
+    sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Cng";
+    version = "4.3.0";
+    sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Csp";
+    version = "4.0.0";
+    sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Csp";
+    version = "4.3.0";
+    sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Encoding";
+    version = "4.0.0";
+    sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Encoding";
+    version = "4.3.0";
+    sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.OpenSsl";
+    version = "4.0.0";
+    sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Primitives";
+    version = "4.0.0";
+    sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Primitives";
+    version = "4.3.0";
+    sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.X509Certificates";
+    version = "4.1.0";
+    sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.X509Certificates";
+    version = "4.3.0";
+    sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal.Windows";
+    version = "4.7.0";
+    sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.0.11";
+    sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.CodePages";
+    version = "4.5.1";
+    sha256 = "1z21qyfs6sg76rp68qdx0c9iy57naan89pg7p6i3qpj8kyzn921w";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.CodePages";
+    version = "4.7.1";
+    sha256 = "1y1hdap9qbl7vp74j8s9zcbh3v1rnrrvcc55wj1hl6has2v3qh1r";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.Extensions";
+    version = "4.0.11";
+    sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.Extensions";
+    version = "4.3.0";
+    sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
+  })
+  (fetchNuGet {
+    name = "System.Text.RegularExpressions";
+    version = "4.1.0";
+    sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
+  })
+  (fetchNuGet {
+    name = "System.Text.RegularExpressions";
+    version = "4.3.0";
+    sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.0.11";
+    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.3.0";
+    sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.0.11";
+    sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.3.0";
+    sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.0.0";
+    sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.3.0";
+    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.5.3";
+    sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Thread";
+    version = "4.0.0";
+    sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Timer";
+    version = "4.0.1";
+    sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Timer";
+    version = "4.3.0";
+    sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56";
+  })
+  (fetchNuGet {
+    name = "System.Xml.ReaderWriter";
+    version = "4.0.11";
+    sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
+  })
+  (fetchNuGet {
+    name = "System.Xml.ReaderWriter";
+    version = "4.3.0";
+    sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XDocument";
+    version = "4.0.11";
+    sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XDocument";
+    version = "4.3.0";
+    sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
+  })
+]
diff --git a/nixpkgs/pkgs/games/osu-lazer/update.sh b/nixpkgs/pkgs/games/osu-lazer/update.sh
new file mode 100755
index 000000000000..be8fa3fe7168
--- /dev/null
+++ b/nixpkgs/pkgs/games/osu-lazer/update.sh
@@ -0,0 +1,58 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq common-updater-scripts dotnet-sdk_3
+set -eo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+deps_file="$(realpath "./deps.nix")"
+
+new_version="$(curl -s "https://api.github.com/repos/ppy/osu/releases" | jq -r '.[0].name')"
+old_version="$(sed -nE 's/\s*version = "(.*)".*/\1/p' ./default.nix)"
+if [[ "$new_version" == "$old_version" ]]; then
+  echo "Up to date"
+  exit 0
+fi
+
+cd ../../..
+update-source-version osu-lazer "$new_version"
+store_src="$(nix-build . -A osu-lazer.src --no-out-link)"
+src="$(mktemp -d /tmp/osu-src.XXX)"
+echo "Temp src dir: $src"
+cp -rT "$store_src" "$src"
+chmod -R +w "$src"
+
+pushd "$src"
+
+# Setup empty nuget package folder to force reinstall.
+mkdir ./nuget_tmp.packages
+cat >./nuget_tmp.config <<EOF
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+  <packageSources>
+    <add key="nuget" value="https://api.nuget.org/v3/index.json" />
+  </packageSources>
+  <config>
+    <add key="globalPackagesFolder" value="$(realpath ./nuget_tmp.packages)" />
+  </config>
+</configuration>
+EOF
+
+dotnet restore osu.Desktop --configfile ./nuget_tmp.config
+
+echo "{ fetchNuGet }: [" >"$deps_file"
+while read pkg_spec; do
+  { read pkg_name; read pkg_version; } < <(
+    # Build version part should be ignored: `3.0.0-beta2.20059.3+77df2220` -> `3.0.0-beta2.20059.3`
+    sed -nE 's/.*<id>([^<]*).*/\1/p; s/.*<version>([^<+]*).*/\1/p' "$pkg_spec")
+  pkg_sha256="$(nix-hash --type sha256 --flat --base32 "$(dirname "$pkg_spec")"/*.nupkg)"
+  cat >>"$deps_file" <<EOF
+  (fetchNuGet {
+    name = "$pkg_name";
+    version = "$pkg_version";
+    sha256 = "$pkg_sha256";
+  })
+EOF
+done < <(find ./nuget_tmp.packages -name '*.nuspec' | sort)
+echo "]" >>"$deps_file"
+
+popd
+rm -r "$src"
diff --git a/nixpkgs/pkgs/games/papermc/default.nix b/nixpkgs/pkgs/games/papermc/default.nix
index 9695a3500586..c5f7dc379259 100644
--- a/nixpkgs/pkgs/games/papermc/default.nix
+++ b/nixpkgs/pkgs/games/papermc/default.nix
@@ -1,10 +1,10 @@
-{ stdenv, fetchurl, jre }:
+{ stdenv, fetchurl, bash, jre }:
 let
-  mcVersion = "1.15.2";
-  buildNum = "161";
+  mcVersion = "1.16.2";
+  buildNum = "141";
   jar = fetchurl {
     url = "https://papermc.io/api/v1/paper/${mcVersion}/${buildNum}/download";
-    sha256 = "1jngj5djs1fjdj25wg9iszw0dsp56f386j8ydms7x4ky8s8kxyms";
+    sha256 = "1qhhnaysw9r73fpvj9qcmjah722a6a4s6g4cblna56n1hpz4lw1s";
   };
 in stdenv.mkDerivation {
   pname = "papermc";
@@ -13,22 +13,23 @@ in stdenv.mkDerivation {
   preferLocalBuild = true;
 
   dontUnpack = true;
-  installPhase = ''
-    mkdir -p $out/bin
-    cp ${jar} $out/papermc.jar
-    cat > $out/bin/minecraft-server << EOF
-    #!/bin/sh
-    exec ${jre}/bin/java \$@ -jar $out/papermc.jar nogui
-    EOF
-    chmod +x $out/bin/minecraft-server
+  dontConfigure = true;
+
+  buildPhase = ''
+    cat > minecraft-server << EOF
+    #!${bash}/bin/sh
+    exec ${jre}/bin/java \$@ -jar $out/share/papermc/papermc.jar nogui
   '';
 
-  phases = "installPhase";
+  installPhase = ''
+    install -Dm444 ${jar} $out/share/papermc/papermc.jar
+    install -Dm555 -t $out/bin minecraft-server
+  '';
 
   meta = {
     description = "High-performance Minecraft Server";
     homepage    = "https://papermc.io/";
-    license     = stdenv.lib.licenses.gpl3;
+    license     = stdenv.lib.licenses.gpl3Only;
     platforms   = stdenv.lib.platforms.unix;
     maintainers = with stdenv.lib.maintainers; [ aaronjanse ];
   };
diff --git a/nixpkgs/pkgs/games/pentobi/default.nix b/nixpkgs/pkgs/games/pentobi/default.nix
index 909f09a0b392..2b5a86ad52c9 100644
--- a/nixpkgs/pkgs/games/pentobi/default.nix
+++ b/nixpkgs/pkgs/games/pentobi/default.nix
@@ -5,12 +5,12 @@
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
-  version = "18.0";
+  version = "18.1";
   pname = "pentobi";
 
   src = fetchurl {
     url = "mirror://sourceforge/pentobi/${pname}-${version}.tar.xz";
-    sha256 = "0dlvshywxijl0hrkl66szamcr77arh118f44ngr1ail8mg1fx1fy";
+    sha256 = "1vfw61lk9z7dngncmx3fggy5ld7ksdk48dpwnsq2vl5fh3f71qbq";
   };
 
   nativeBuildInputs = [ cmake docbook_xsl wrapQtAppsHook ];
diff --git a/nixpkgs/pkgs/games/runelite/default.nix b/nixpkgs/pkgs/games/runelite/default.nix
index 9b6ca4f7c057..df8a5c3e8dcd 100644
--- a/nixpkgs/pkgs/games/runelite/default.nix
+++ b/nixpkgs/pkgs/games/runelite/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     terminal = "false";
     desktopName = "RuneLite";
     genericName = "Oldschool Runescape";
-    categories = "Application;Game";
+    categories = "Game";
     startupNotify = null;
   };
 
diff --git a/nixpkgs/pkgs/games/sfrotz/default.nix b/nixpkgs/pkgs/games/sfrotz/default.nix
new file mode 100644
index 000000000000..6e4839703a1c
--- /dev/null
+++ b/nixpkgs/pkgs/games/sfrotz/default.nix
@@ -0,0 +1,69 @@
+{ fetchFromGitLab
+, freetype
+, libao
+, libjpeg
+, libmodplug
+, libpng
+, libsamplerate
+, libsndfile
+, libvorbis
+, pkg-config
+, SDL2
+, SDL2_mixer
+, stdenv
+, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "sfrotz";
+  version = "2.52";
+
+  src = fetchFromGitLab  {
+    domain = "gitlab.com";
+    owner = "DavidGriffith";
+    repo = "frotz";
+    rev = version;
+    sha256 = "11ca1dz31b7s5vxjqncwjwmbbcr2m5v2rxjn49g4gnvwd6mqw48y";
+  };
+
+  buildInputs = [
+    freetype
+    libao
+    libjpeg
+    libmodplug
+    libpng
+    libsamplerate
+    libsndfile
+    libvorbis
+    SDL2
+    SDL2_mixer
+    zlib
+  ];
+  nativeBuildInputs = [ pkg-config ];
+  makeFlags = [ "PREFIX=${placeholder "out"}" ];
+  buildPhase = "make sdl";
+  installTargets = [ "install_sfrotz" ];
+
+  meta = with stdenv.lib; {
+    description =
+      "Interpreter for Infocom and other Z-Machine games (SDL interface)";
+    longDescription = ''
+      Frotz is a Z-Machine interpreter. The Z-machine is a virtual machine
+      designed by Infocom to run all of their text adventures. It went through
+      multiple revisions during the lifetime of the company, and two further
+      revisions (V7 and V8) were created by Graham Nelson after the company's
+      demise. The specification is now quite well documented; this version of
+      Frotz supports version 1.0.
+
+      This version of Frotz fully supports all these versions of the Z-Machine
+      including the graphical version 6. Graphics and sound are created through
+      the use of the SDL libraries. AIFF sound effects and music in MOD and OGG
+      formats are supported when packaged in Blorb container files or optionally
+      from individual files.
+    '';
+    homepage = "https://davidgriffith.gitlab.io/frotz/";
+    changelog = "https://gitlab.com/DavidGriffith/frotz/-/raw/${version}/NEWS";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ ddelabru ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/shattered-pixel-dungeon/default.nix b/nixpkgs/pkgs/games/shattered-pixel-dungeon/default.nix
index f96f61764b54..f3808102bd1d 100644
--- a/nixpkgs/pkgs/games/shattered-pixel-dungeon/default.nix
+++ b/nixpkgs/pkgs/games/shattered-pixel-dungeon/default.nix
@@ -1,29 +1,30 @@
 { stdenv
-, fetchurl
 , makeWrapper
 , fetchFromGitHub
+, nixosTests
 , gradle_5
 , perl
 , jre
-, xorg
-, openal
+, libpulseaudio
 }:
 
 let
   pname = "shattered-pixel-dungeon";
-  version = "0.7.5f";
+  version = "0.8.2d";
 
   src = fetchFromGitHub {
     owner = "00-Evan";
-    repo = "shattered-pixel-dungeon-gdx";
+    repo = "shattered-pixel-dungeon";
     rev = "v${version}";
-    sha256 = "05awbbc7np9li50shdbpv9dgdgry6lra8d5gibwn578m2g9srbxx";
+    sha256 = "11lgalam1aacw01ar7nawiim4pbxqzrdrnxvj6wq9mg83hgsz65l";
   };
 
   postPatch = ''
     # disable gradle plugins with native code and their targets
     perl -i.bak1 -pe "s#(^\s*id '.+' version '.+'$)#// \1#" build.gradle
     perl -i.bak2 -pe "s#(.*)#// \1# if /^(buildscript|task portable|task nsis|task proguard|task tgz|task\(afterEclipseImport\)|launch4j|macAppBundle|buildRpm|buildDeb|shadowJar)/ ... /^}/" build.gradle
+    # Remove unbuildable android stuff
+    rm android/build.gradle
   '';
 
   # fake build to pre-download deps into fixed-output derivation
@@ -33,7 +34,7 @@ let
     nativeBuildInputs = [ gradle_5 perl ];
     buildPhase = ''
       export GRADLE_USER_HOME=$(mktemp -d)
-      gradle --no-daemon desktop:dist
+      gradle --no-daemon desktop:release
     '';
     # perl code mavenizes pathes (com.squareup.okio/okio/1.13.0/a9283170b7305c8d92d25aff02a6ab7e45d06cbe/okio-1.13.0.jar -> com/squareup/okio/okio/1.13.0/okio-1.13.0.jar)
     installPhase = ''
@@ -43,7 +44,7 @@ let
     '';
     outputHashAlgo = "sha256";
     outputHashMode = "recursive";
-    outputHash = "1k0v5scadw9ziq4dw2rckmh8x2xlmxslfsxmpw79zg78n3hvwhf1";
+    outputHash = "0ih10c6c85vhrqgilqmkzqjx3dc8cscvs9wkh90zgdj10qv0iba3";
   };
 
 in stdenv.mkDerivation rec {
@@ -54,21 +55,25 @@ in stdenv.mkDerivation rec {
   buildPhase = ''
     export GRADLE_USER_HOME=$(mktemp -d)
     # point to offline repo
-    sed -ie "s#mavenLocal()#mavenLocal(); maven { url '${deps}' }#g" build.gradle
-    gradle --offline --no-daemon desktop:dist
+    sed -ie "s#repositories {#repositories { maven { url '${deps}' };#g" build.gradle
+    gradle --offline --no-daemon desktop:release
   '';
 
   installPhase = ''
     install -Dm644 desktop/build/libs/desktop-${version}.jar $out/share/shattered-pixel-dungeon.jar
     mkdir $out/bin
     makeWrapper ${jre}/bin/java $out/bin/shattered-pixel-dungeon \
-      --prefix LD_LIBRARY_PATH : ${xorg.libXxf86vm}/lib:${openal}/lib \
+      --prefix LD_LIBRARY_PATH : ${libpulseaudio}/lib \
       --add-flags "-jar $out/share/shattered-pixel-dungeon.jar"
   '';
 
+  passthru.tests = {
+    shattered-pixel-dungeon-starts = nixosTests.shattered-pixel-dungeon;
+  };
+
   meta = with stdenv.lib; {
     homepage = "https://shatteredpixel.com/";
-    downloadPage = "https://github.com/00-Evan/shattered-pixel-dungeon-gdx/releases";
+    downloadPage = "https://github.com/00-Evan/shattered-pixel-dungeon/releases";
     description = "Traditional roguelike game with pixel-art graphics and simple interface";
     license = licenses.gpl3;
     maintainers = with maintainers; [ fgaz ];
diff --git a/nixpkgs/pkgs/games/sm64ex/default.nix b/nixpkgs/pkgs/games/sm64ex/default.nix
new file mode 100644
index 000000000000..e5aeb84fbf11
--- /dev/null
+++ b/nixpkgs/pkgs/games/sm64ex/default.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, fetchFromGitHub
+, python3
+, pkg-config
+, audiofile
+, SDL2
+, hexdump
+, requireFile
+, compileFlags ? [ ]
+, region ? "us"
+, baseRom ? requireFile {
+    name = "baserom.${region}.z64";
+    message = ''
+      This nix expression requires that baserom.${region}.z64 is
+      already part of the store. To get this file you can dump your Super Mario 64 cartridge's contents
+      and add it to the nix store with nix-store --add-fixed sha256 <FILE>.
+      Note that if you are not using a US baserom, you must overwrite the "region" attribute with either "eu" or "jp".
+    '';
+    sha256 = {
+      "us" = "17ce077343c6133f8c9f2d6d6d9a4ab62c8cd2aa57c40aea1f490b4c8bb21d91";
+      "eu" = "c792e5ebcba34c8d98c0c44cf29747c8ee67e7b907fcc77887f9ff2523f80572";
+      "jp" = "9cf7a80db321b07a8d461fe536c02c87b7412433953891cdec9191bfad2db317";
+    }.${region};
+  }
+}:
+
+stdenv.mkDerivation rec {
+  pname = "sm64ex";
+  version = "unstable-2020-06-19";
+
+  src = fetchFromGitHub {
+    owner = "sm64pc";
+    repo = "sm64ex";
+    rev = "f5005418348cf1a53bfa75ff415a513ef0b9b273";
+    sha256 = "0adyshkqk5c4lxhdxc3j6ax4svfka26486qpa5q2gl2nixwg9zxn";
+  };
+
+  nativeBuildInputs = [ python3 pkg-config ];
+  buildInputs = [ audiofile SDL2 hexdump ];
+
+  makeFlags = [ "VERSION=${region}" ] ++ compileFlags
+    ++ stdenv.lib.optionals stdenv.isDarwin [ "OSX_BUILD=1" ];
+
+  inherit baseRom;
+
+  preBuild = ''
+    patchShebangs extract_assets.py
+    cp $baseRom ./baserom.${region}.z64
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp build/${region}_pc/sm64.${region}.f3dex2e $out/bin/sm64ex
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/sm64pc/sm64ex";
+    description = "Super Mario 64 port based off of decompilation";
+    longDescription = ''
+      Super Mario 64 port based off of decompilation.
+      Note that you must supply a baserom yourself to extract assets from.
+      If you are not using an US baserom, you must overwrite the "region" attribute with either "eu" or "jp".
+      If you would like to use patches sm64ex distributes as makeflags, add them to the "compileFlags" attribute.
+    '';
+    license = licenses.unfree;
+    maintainers = with maintainers; [ ivar ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/games/spring/springlobby.nix b/nixpkgs/pkgs/games/spring/springlobby.nix
index e627575df940..9912675ee673 100644
--- a/nixpkgs/pkgs/games/spring/springlobby.nix
+++ b/nixpkgs/pkgs/games/spring/springlobby.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "springlobby";
-  version = "0.269";
+  version = "0.270";
 
   src = fetchurl {
     url = "https://springlobby.springrts.com/dl/stable/springlobby-${version}.tar.bz2";
-    sha256 = "1shgrfs4ssjj8m0c7805jisjzpc60796l0vja3yjfdksrz7yxvhg";
+    sha256 = "1r1g2hw9ipsmsmzbhsi7bxqra1za6x7j1kw12qzl5psqyq8rqbgs";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/games/steam/default.nix b/nixpkgs/pkgs/games/steam/default.nix
index 5aab54b83221..ff2c6e13288a 100644
--- a/nixpkgs/pkgs/games/steam/default.nix
+++ b/nixpkgs/pkgs/games/steam/default.nix
@@ -1,4 +1,4 @@
-{ pkgs, newScope }:
+{ pkgs, newScope, buildFHSUserEnv }:
 
 let
   callPackage = newScope self;
@@ -12,12 +12,13 @@ let
     steam-runtime-wrapped = callPackage ./runtime-wrapped.nix { };
     steam = callPackage ./steam.nix { };
     steam-fonts = callPackage ./fonts.nix { };
-    steam-chrootenv = callPackage ./chrootenv.nix {
+    steam-fhsenv = callPackage ./fhsenv.nix {
       glxinfo-i686 = pkgs.pkgsi686Linux.glxinfo;
       steam-runtime-wrapped-i686 =
         if steamArch == "amd64"
         then pkgs.pkgsi686Linux.steamPackages.steam-runtime-wrapped
         else null;
+      inherit buildFHSUserEnv;
     };
     steamcmd = callPackage ./steamcmd.nix { };
   };
diff --git a/nixpkgs/pkgs/games/steam/chrootenv.nix b/nixpkgs/pkgs/games/steam/fhsenv.nix
index 56e1a09f36e8..32acef9757be 100644
--- a/nixpkgs/pkgs/games/steam/chrootenv.nix
+++ b/nixpkgs/pkgs/games/steam/fhsenv.nix
@@ -35,13 +35,19 @@ let
       # Steam VR
       procps
       usbutils
-    ] ++ lib.optional withJava jdk
+    ] ++ lib.optional withJava jdk8 # TODO: upgrade https://github.com/NixOS/nixpkgs/pull/89731
       ++ lib.optional withPrimus primus
       ++ extraPkgs pkgs;
 
   ldPath = map (x: "/steamrt/${steam-runtime-wrapped.arch}/" + x) steam-runtime-wrapped.libs
            ++ lib.optionals (steam-runtime-wrapped-i686 != null) (map (x: "/steamrt/${steam-runtime-wrapped-i686.arch}/" + x) steam-runtime-wrapped-i686.libs);
 
+  # Zachtronics and a few other studios expect STEAM_LD_LIBRARY_PATH to be present
+  exportLDPath = ''
+    export LD_LIBRARY_PATH=/lib32:/lib64:${lib.concatStringsSep ":" ldPath}''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
+    export STEAM_LD_LIBRARY_PATH="$STEAM_LD_LIBRARY_PATH''${STEAM_LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
+  '';
+
   setupSh = writeScript "setup.sh" ''
     #!${runtimeShell}
   '';
@@ -54,6 +60,7 @@ let
       exit 0
     fi
     export LD_LIBRARY_PATH="$runtime_paths''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
+    export STEAM_LD_LIBRARY_PATH="$STEAM_LD_LIBRARY_PATH''${STEAM_LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"
     exec "$@"
   '';
 
@@ -82,6 +89,7 @@ in buildFHSUserEnv rec {
     at-spi2-core   # CrossCode
     gst_all_1.gstreamer
     gst_all_1.gst-plugins-ugly
+    gst_all_1.gst-plugins-base
     libdrm
     mono
     xorg.xkeyboardconfig
@@ -186,8 +194,6 @@ in buildFHSUserEnv rec {
     SDL_mixer
     SDL2_ttf
     SDL2_mixer
-    gstreamer
-    gst-plugins-base
     libappindicator-gtk2
     libcaca
     libcanberra
@@ -251,6 +257,7 @@ in buildFHSUserEnv rec {
     EOF
       fi
     fi
+    ${lib.optionalString (!nativeOnly) exportLDPath}
     exec steam "$@"
   '';
 
@@ -272,7 +279,7 @@ in buildFHSUserEnv rec {
         exit 1
       fi
       shift
-      ${lib.optionalString (!nativeOnly) "export LD_LIBRARY_PATH=/lib32:/lib64:${lib.concatStringsSep ":" ldPath}\${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH"}
+      ${lib.optionalString (!nativeOnly) exportLDPath}
       exec -- "$run" "$@"
     '';
   };
diff --git a/nixpkgs/pkgs/games/steam/runtime.nix b/nixpkgs/pkgs/games/steam/runtime.nix
index 6d81d6c775e2..4f373b9be30f 100644
--- a/nixpkgs/pkgs/games/steam/runtime.nix
+++ b/nixpkgs/pkgs/games/steam/runtime.nix
@@ -4,11 +4,11 @@ stdenv.mkDerivation rec {
 
   name = "steam-runtime";
   # from https://repo.steampowered.com/steamrt-images-scout/snapshots/
-  version = "0.20200417.0";
+  version = "0.20200720.0";
 
   src = fetchurl {
     url = "https://repo.steampowered.com/steamrt-images-scout/snapshots/${version}/steam-runtime.tar.xz";
-    sha256 = "0d4dfl6i31i8187wj8rr9yvmrg32bx96bsgs2ya21b00czf070sy";
+    sha256 = "03qdlr1xk84jb4c60ilis00vjhj70bxc0bbgk5g5b1883l2frljd";
     name = "scout-runtime-${version}.tar.gz";
   };
 
diff --git a/nixpkgs/pkgs/games/stockfish/default.nix b/nixpkgs/pkgs/games/stockfish/default.nix
index 5e8429f0336a..bdea1db9b3e9 100644
--- a/nixpkgs/pkgs/games/stockfish/default.nix
+++ b/nixpkgs/pkgs/games/stockfish/default.nix
@@ -4,20 +4,31 @@ let arch = if stdenv.isx86_64 then "x86-64" else
            if stdenv.isi686 then "x86-32" else
            "unknown";
 
-    version = "11";
+    version = "12";
+
+    nnueFile = "nn-82215d0fd0df.nnue";
+    nnue = fetchurl {
+      name = nnueFile;
+        url = "https://tests.stockfishchess.org/api/nn/${nnueFile}";
+      sha256 = "1r4yqrh4di05syyhl84hqcz84djpbd605b27zhbxwg6zs07ms8c2";
+    };
 in
 
 stdenv.mkDerivation {
-
   pname = "stockfish";
   inherit version;
 
   src = fetchurl {
     url = "https://github.com/official-stockfish/Stockfish/archive/sf_${version}.tar.gz";
-    sha256 = "16di83s79gf9kzdhcal5y0q9d59544gd5xqf1k8bwrqvc36628l0";
+    sha256 = "16980aicm5i6i9252239q4f9bcxg1gnqkv6nphrmpz4drg8i3v6i";
   };
 
-  postUnpack = "sourceRoot+=/src";
+  postUnpack = ''
+    sourceRoot+=/src
+    echo ${nnue}
+    cp "${nnue}" "$sourceRoot/${nnueFile}"
+  '';
+
   makeFlags = [ "PREFIX=$(out)" "ARCH=${arch}" ];
   buildFlags = [ "build" ];
 
diff --git a/nixpkgs/pkgs/games/super-tux-kart/default.nix b/nixpkgs/pkgs/games/super-tux-kart/default.nix
index 70c5657508bd..b3a7966071a7 100644
--- a/nixpkgs/pkgs/games/super-tux-kart/default.nix
+++ b/nixpkgs/pkgs/games/super-tux-kart/default.nix
@@ -1,7 +1,8 @@
-{ stdenv, fetchFromGitHub, fetchsvn, cmake, pkgconfig, makeWrapper
-, openal, freealut, libGLU, libGL, libvorbis, libogg, gettext, curl, freetype
-, fribidi, libtool, bluez, libjpeg, libpng, zlib, libX11, libXrandr, enet, harfbuzz }:
-
+{ lib, stdenv, fetchFromGitHub, fetchsvn, cmake, pkgconfig, makeWrapper
+, openal, freealut, libGLU, libGL, libvorbis, libogg, gettext, curl, freetype, glew
+, fribidi, libtool, bluez, libjpeg, libpng, zlib, libX11, libXrandr, harfbuzz
+, mcpp, wiiuse, angelscript
+}:
 let
   dir = "stk-code";
   assets = fetchsvn {
@@ -11,34 +12,62 @@ let
     name   = "stk-assets";
   };
 
+  # List of bundled libraries in stk-code/lib to keep
+  # Those are the libraries that cannot be replaced
+  # with system packages.
+  bundledLibraries = [
+    # Bullet 2.87 is incompatible (bullet 2.79 needed whereas 2.87 is packaged)
+    # The api changed in a lot of classes, too much work to adapt
+    "bullet"
+    # Upstream Libenet doesn't yet support IPv6,
+    # So we will use the bundled libenet which
+    # has been fixed to support it.
+    "enet"
+    # Internal library of STK, nothing to do about it
+    "graphics_utils"
+    # This irrlicht is bundled with cmake
+    # whereas upstream irrlicht still uses
+    # archaic Makefiles, too complicated to switch to.
+    "irrlicht"
+    # Not packaged to this date
+    "libraqm"
+    # Not packaged to this date
+    "libsquish"
+  ];
 in stdenv.mkDerivation rec {
+
   pname = "supertuxkart";
   version = "1.1";
 
-  srcs = [
-    (fetchFromGitHub {
-      owner  = "supertuxkart";
-      repo   = "stk-code";
-      rev    = version;
-      sha256 = "01vxxl94583ixswzmi4caz8dk64r56pn3zxh7v63zml60yfvxbvp";
-      name   = dir;
-    })
-  ];
+  src = fetchFromGitHub {
+    owner  = "supertuxkart";
+    repo   = "stk-code";
+    rev    = version;
+    sha256 = "01vxxl94583ixswzmi4caz8dk64r56pn3zxh7v63zml60yfvxbvp";
+    name   = dir;
+  };
+
+  # Deletes all bundled libs in stk-code/lib except those
+  # That couldn't be replaced with system packages
+  postPatch = ''
+    find lib -maxdepth 1 -type d | egrep -v "^lib$|${(lib.concatStringsSep "|" bundledLibraries)}" | xargs -n1 -L1 -r -I{} rm -rf {}
+  '';
 
   nativeBuildInputs = [ cmake gettext libtool pkgconfig makeWrapper ];
 
   buildInputs = [
     libX11 libXrandr
-    openal freealut libGLU libGL libvorbis libogg zlib freetype
-    curl fribidi bluez libjpeg libpng enet harfbuzz
+    openal freealut libGLU libGL libvorbis libogg zlib freetype glew
+    curl fribidi bluez libjpeg libpng harfbuzz
+    mcpp wiiuse angelscript
   ];
 
-  enableParallelBuilding = true;
-
   cmakeFlags = [
     "-DBUILD_RECORDER=OFF"         # libopenglrecorder is not in nixpkgs
     "-DUSE_SYSTEM_ANGELSCRIPT=OFF" # doesn't work with 2.31.2 or 2.32.0
     "-DCHECK_ASSETS=OFF"
+    "-DUSE_SYSTEM_WIIUSE=ON"
+    "-DUSE_SYSTEM_ANGELSCRIPT=ON"
   ];
 
   # Obtain the assets directly from the fetched store path, to avoid duplicating assets across multiple engine builds
@@ -46,9 +75,9 @@ in stdenv.mkDerivation rec {
     wrapProgram $out/bin/supertuxkart --set-default SUPERTUXKART_ASSETS_DIR "${assets}"
   '';
 
-  sourceRoot = dir;
+  enableParallelBuilding = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A Free 3D kart racing game";
     longDescription = ''
       SuperTuxKart is a Free 3D kart racing game, with many tracks,
diff --git a/nixpkgs/pkgs/games/tdm/default.nix b/nixpkgs/pkgs/games/tdm/default.nix
index 32f91f598684..055ab9d38e8c 100644
--- a/nixpkgs/pkgs/games/tdm/default.nix
+++ b/nixpkgs/pkgs/games/tdm/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchurl, binutils-unwrapped, scons, gnum4, p7zip, glibc_multi, mesa
+{ stdenv, fetchurl, binutils-unwrapped, sconsPackages, gnum4, p7zip, glibc_multi, mesa
 , xorg, libGLU, libGL, openal
 , lib, makeWrapper, makeDesktopItem }:
 
 let
   pname = "tdm";
-  version = "2.07";
+  version = "2.08";
 
   desktop = makeDesktopItem {
     desktopName = pname;
     name = pname;
     exec = "@out@/bin/${pname}";
     icon = pname;
-    terminal = "False";
+    terminal = "false";
     comment = "The Dark Mod - stealth FPS inspired by the Thief series";
     type = "Application";
     categories = "Game;";
@@ -21,10 +21,10 @@ in stdenv.mkDerivation {
   name = "${pname}-${version}";
   src = fetchurl {
     url = "https://www.thedarkmod.com/sources/thedarkmod.${version}.src.7z";
-    sha256 = "17wdpip8zvm2njz0xrf7xcxl73hnsc6i83zj18kn8rnjkpy50dd6";
+    sha256 = "0bmv07j6s6q3m7hnpx7cwrycjkbvlf0y9sg9migakni0jg9yz5ps";
   };
   nativeBuildInputs = [
-    p7zip scons.py2 gnum4 makeWrapper
+    p7zip sconsPackages.scons_3_1_2 gnum4 makeWrapper
   ];
   buildInputs = [
     glibc_multi mesa.dev xorg.libX11.dev openal
@@ -39,13 +39,15 @@ in stdenv.mkDerivation {
   preBuild = ''
     pushd tdm_update
     scons BUILD=release TARGET_ARCH=x64
-    install -Dm755 tdm_update.linux $out/share/libexec/tdm_update.linux
+    install -Dm755 bin/tdm_update.linux64 $out/share/libexec/tdm_update.linux
     popd
   '';
 
   # why oh why can it find ld but not strip?
   postPatch = ''
     sed -i 's!strip \$!${binutils-unwrapped}/bin/strip $!' SConstruct
+    # This adds math.h needed for math::floor
+    sed -i 's|#include "Util.h"|#include "Util.h"\n#include <math.h>|' tdm_update/ConsoleUpdater.cpp
   '';
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/games/the-powder-toy/default.nix b/nixpkgs/pkgs/games/the-powder-toy/default.nix
index 72b4bf20383a..af392eca8d8f 100644
--- a/nixpkgs/pkgs/games/the-powder-toy/default.nix
+++ b/nixpkgs/pkgs/games/the-powder-toy/default.nix
@@ -1,21 +1,24 @@
-{ stdenv, fetchFromGitHub, scons, pkgconfig, SDL2, lua, fftwFloat, zlib, bzip2 }:
+
+{ stdenv, fetchFromGitHub, scons, pkgconfig, SDL2, lua, fftwFloat,
+  zlib, bzip2, curl, darwin }:
 
 stdenv.mkDerivation rec {
   pname = "the-powder-toy";
-  version = "94.1";
+  version = "95.0";
 
   src = fetchFromGitHub {
-    owner = "ThePowderToy";
+    owner = "The-Powder-Toy";
     repo = "The-Powder-Toy";
     rev = "v${version}";
-    sha256 = "0w3i4zjkw52qbv3s9cgcwxrdbb1npy0ka7wygyb76xcb17bj0l0b";
+    sha256 = "18rp2g1mj0gklra06wm9dm57h73hmm301npndh0y8ap192i5s8sa";
   };
 
   nativeBuildInputs = [ scons pkgconfig ];
 
-  buildInputs = [ SDL2 lua fftwFloat zlib bzip2 ];
+  propagatedBuildInputs = stdenv.lib.optionals stdenv.isDarwin
+    [ darwin.apple_sdk.frameworks.Cocoa ];
 
-  sconsFlags = "--tool=";
+  buildInputs = [ SDL2 lua fftwFloat zlib bzip2 curl ];
 
   installPhase = ''
     install -Dm 755 build/powder* "$out/bin/powder"
@@ -28,6 +31,6 @@ stdenv.mkDerivation rec {
     homepage = "http://powdertoy.co.uk/";
     platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
     license = licenses.gpl3;
-    maintainers = with maintainers; [ abbradar ];
+    maintainers = with maintainers; [ abbradar siraben ];
   };
 }
diff --git a/nixpkgs/pkgs/games/tome2/default.nix b/nixpkgs/pkgs/games/tome2/default.nix
index a632e523aaa8..fa73697ab42a 100644
--- a/nixpkgs/pkgs/games/tome2/default.nix
+++ b/nixpkgs/pkgs/games/tome2/default.nix
@@ -9,7 +9,7 @@ let
     name = pname;
     exec = "${pname}-x11";
     icon = pname;
-    terminal = "False";
+    terminal = "false";
     comment = description;
     type = "Application";
     categories = "Game;RolePlaying;";
diff --git a/nixpkgs/pkgs/games/tuxpaint/default.nix b/nixpkgs/pkgs/games/tuxpaint/default.nix
index ea37ded6b6cd..a5bea42d04e5 100644
--- a/nixpkgs/pkgs/games/tuxpaint/default.nix
+++ b/nixpkgs/pkgs/games/tuxpaint/default.nix
@@ -30,6 +30,12 @@ stdenv.mkDerivation rec {
   };
 
   postInstall = ''
+    # Install desktop file
+    mkdir -p $out/share/applications
+    cp hildon/tuxpaint.xpm $out/share/pixmaps
+    sed -e "s+Exec=tuxpaint+Exec=$out/bin/tuxpaint+" < src/tuxpaint.desktop > $out/share/applications/tuxpaint.desktop
+ 
+    # Install stamps
     tar xzf $stamps
     cd tuxpaint-stamps-2014.08.23
     make install-all PREFIX=$out
diff --git a/nixpkgs/pkgs/games/ultrastardx/default.nix b/nixpkgs/pkgs/games/ultrastardx/default.nix
index b2d601df3498..b6e1da204edf 100644
--- a/nixpkgs/pkgs/games/ultrastardx/default.nix
+++ b/nixpkgs/pkgs/games/ultrastardx/default.nix
@@ -1,7 +1,26 @@
-{ stdenv, autoreconfHook, fetchFromGitHub, pkgconfig
-, lua, fpc, pcre, portaudio, freetype, libpng
-, SDL2, SDL2_image, SDL2_gfx, SDL2_mixer, SDL2_net, SDL2_ttf
-, ffmpeg, sqlite, zlib, libX11, libGLU, libGL }:
+{ stdenv
+, autoreconfHook
+, fetchFromGitHub
+, fetchpatch
+, pkgconfig
+, lua
+, fpc
+, pcre
+, portaudio
+, freetype
+, libpng
+, SDL2
+, SDL2_image
+, SDL2_gfx
+, SDL2_mixer
+, SDL2_net, SDL2_ttf
+, ffmpeg
+, sqlite
+, zlib
+, libX11
+, libGLU
+, libGL
+}:
 
 let
   sharedLibs = [
@@ -12,17 +31,25 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "ultrastardx";
-  version = "unstable-2019-01-07";
+  version = "2020.4.0";
   src = fetchFromGitHub {
     owner = "UltraStar-Deluxe";
     repo = "USDX";
-    rev = "3df142590f29db1505cc58746af9f8cf7cb4a6a5";
-    sha256 = "0853rg7vppkmw37wm9xm0m0wab3r09ws6w04xs2wgwj1mwl0d70j";
+    rev = "v${version}";
+    sha256 = "0vmfv8zpyf8ymx3rjydpd7iqis080lni94vb316vfxkgvjmqbhym";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
   buildInputs = [ fpc libpng ] ++ sharedLibs;
 
+  patches = [
+    (fetchpatch {
+      name = "fpc-3.2-support.patch";
+      url = "https://github.com/UltraStar-Deluxe/USDX/commit/1b8e8714c1523ef49c2fd689a1545d097a3d76d7.patch";
+      sha256 = "02zmjymj9w1mkpf7armdpf067byvml6lprs1ca4lhpkv45abddp4";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace src/config.inc.in \
       --subst-var-by libpcre_LIBNAME libpcre.so.1
diff --git a/nixpkgs/pkgs/games/unnethack/default.nix b/nixpkgs/pkgs/games/unnethack/default.nix
index 1ac87c1d41b2..2dde86297e87 100644
--- a/nixpkgs/pkgs/games/unnethack/default.nix
+++ b/nixpkgs/pkgs/games/unnethack/default.nix
@@ -1,13 +1,15 @@
-{ stdenv, fetchgit, utillinux, ncurses, flex, bison }:
+{ stdenv, fetchFromGitHub, fetchpatch, utillinux, ncurses, flex, bison }:
 
 stdenv.mkDerivation rec {
   pname = "unnethack";
-  version = "5.2.0";
+  version = "5.3.2";
 
-  src = fetchgit {
-    url = "https://github.com/UnNetHack/UnNetHack";
-    rev = "refs/tags/${version}";
-    sha256 = "088gd2c7v95f2pm9ky38i28sz73mnsksr2p2hhhflkchxncd21f1";
+  src = fetchFromGitHub {
+    name = "UnNetHack";
+    owner = "UnNetHack";
+    repo = "UnNetHack";
+    rev = version;
+    sha256 = "1rg0mqyplgn3dfh3wz09a600qxk7aidqw4d84kyiincljvhyb7ps";
   };
 
   buildInputs = [ ncurses ];
@@ -22,6 +24,14 @@ stdenv.mkDerivation rec {
                    ];
 
   makeFlags = [ "GAMEPERM=744" ];
+  patches = [
+    # fix regression with bison, merged in master
+    (fetchpatch {
+      name = "fix-bison.patch";
+      url = "https://github.com/UnNetHack/UnNetHack/commit/04f0a3a850a94eb8837ddcef31303968240d1c31.patch";
+      sha256 = "1zblbwqqz9nx16k6n31wi2hdvz775lvzmkjblmrx18nbm4ylj0n9";
+    })
+  ];
 
   enableParallelBuilding = true;
 
@@ -54,5 +64,5 @@ stdenv.mkDerivation rec {
     license = "nethack";
     platforms = platforms.all;
     maintainers = with maintainers; [ abbradar ];
-  }; 
+  };
 }
diff --git a/nixpkgs/pkgs/games/uqm/default.nix b/nixpkgs/pkgs/games/uqm/default.nix
index 523ae354b760..bce8fde3acd6 100644
--- a/nixpkgs/pkgs/games/uqm/default.nix
+++ b/nixpkgs/pkgs/games/uqm/default.nix
@@ -65,9 +65,11 @@ in stdenv.mkDerivation rec {
     ln -s "${videos}" "uqm-${version}/content/addons/3dovideo"
   '';
 
-  # Using _STRINGS_H as include guard conflicts with glibc.
   postPatch = ''
+    # Using _STRINGS_H as include guard conflicts with glibc.
     sed -i -e '/^#/s/_STRINGS_H/_UQM_STRINGS_H/g' src/uqm/comm/*/strings.h
+    # See https://github.com/NixOS/nixpkgs/pull/93560
+    sed -i -e 's,/tmp/,$TMPDIR/,' build/unix/config_functions
   '';
 
   # uqm has a 'unique' build system with a root script incidentally called
diff --git a/nixpkgs/pkgs/games/ut2004/wrapper.nix b/nixpkgs/pkgs/games/ut2004/wrapper.nix
index 31d0763be4d2..0f70a07ca8fc 100644
--- a/nixpkgs/pkgs/games/ut2004/wrapper.nix
+++ b/nixpkgs/pkgs/games/ut2004/wrapper.nix
@@ -27,7 +27,7 @@ let
     desktopName = "Unreal Tournament 2004";
     comment = "A first-person shooter video game developed by Epic Games and Digital Extreme";
     genericName = "First-person shooter";
-    categories = "Application;Game;";
+    categories = "Game;";
     exec = "ut2004";
   };
 
diff --git a/nixpkgs/pkgs/games/vassal/default.nix b/nixpkgs/pkgs/games/vassal/default.nix
index 55848d91fab5..413d98d26ace 100644
--- a/nixpkgs/pkgs/games/vassal/default.nix
+++ b/nixpkgs/pkgs/games/vassal/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, jre, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  name = "VASSAL-3.2.17";
+  name = "VASSAL-3.3.2";
 
   src = fetchurl {
     url = "mirror://sourceforge/vassalengine/${name}-linux.tar.bz2";
-    sha256 = "0nxskr46janxnb31c03zv61kr46vy98l7cwxha3vll81l4ij1sjb";
+    sha256 = "1abhlkl27gyfa1lghvv76xa6ks5hiwv2s9wb9ddadm0m07f87n1w";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/games/vdrift/default.nix b/nixpkgs/pkgs/games/vdrift/default.nix
index 99475af49e1f..ea8b3941f8b4 100644
--- a/nixpkgs/pkgs/games/vdrift/default.nix
+++ b/nixpkgs/pkgs/games/vdrift/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fetchsvn, pkgconfig, scons, libGLU, libGL, SDL2, SDL2_image
+{ stdenv, fetchFromGitHub, fetchsvn, pkgconfig, sconsPackages, libGLU, libGL, SDL2, SDL2_image
 , libvorbis, bullet, curl, gettext, writeTextFile
 
 , data ? fetchsvn {
@@ -20,7 +20,7 @@ let
       sha256 = "001wq3c4n9wzxqfpq40b1jcl16sxbqv2zbkpy9rq2wf9h417q6hg";
     };
 
-    nativeBuildInputs = [ pkgconfig scons.py2 ];
+    nativeBuildInputs = [ pkgconfig sconsPackages.scons_3_1_2 ];
     buildInputs = [ libGLU libGL SDL2 SDL2_image libvorbis bullet curl gettext ];
 
     patches = [ ./0001-Ignore-missing-data-for-installation.patch ];
diff --git a/nixpkgs/pkgs/games/wesnoth/default.nix b/nixpkgs/pkgs/games/wesnoth/default.nix
index 2eb45ded7e29..ce375392041e 100644
--- a/nixpkgs/pkgs/games/wesnoth/default.nix
+++ b/nixpkgs/pkgs/games/wesnoth/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wesnoth";
-  version = "1.14.12";
+  version = "1.14.13";
 
   src = fetchFromGitHub {
     rev = version;
     owner = "wesnoth";
     repo = "wesnoth";
-    sha256 = "0xpypy0yfjmjp3apvlh51nm19p1cjhjw2p547kvmrckm7y6naaw8";
+    sha256 = "1ka07h4sgmbc24qbaz0pbryx0yk339l4jzg32hy01qdvl2n40w3h";
   };
 
   nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/nixpkgs/pkgs/applications/science/misc/rink/cargo-lock.patch b/nixpkgs/pkgs/games/wyvern/cargo-lock.patch
index 1fb3c2f4b568..89b2517e26de 100644
--- a/nixpkgs/pkgs/applications/science/misc/rink/cargo-lock.patch
+++ b/nixpkgs/pkgs/games/wyvern/cargo-lock.patch
@@ -1,14 +1,14 @@
 diff --git a/Cargo.lock b/Cargo.lock
 new file mode 100644
-index 0000000..17d0ae9
+index 0000000..8be5b39
 --- /dev/null
 +++ b/Cargo.lock
-@@ -0,0 +1,2625 @@
+@@ -0,0 +1,2508 @@
 +# This file is automatically @generated by Cargo.
 +# It is not intended for manual editing.
 +[[package]]
 +name = "adler32"
-+version = "1.0.4"
++version = "1.0.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -20,98 +20,129 @@ index 0000000..17d0ae9
 +]
 +
 +[[package]]
-+name = "autocfg"
-+version = "0.1.7"
++name = "aho-corasick"
++version = "0.7.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "backtrace"
-+version = "0.3.40"
++name = "ansi_term"
++version = "0.11.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "backtrace-sys"
-+version = "0.1.32"
++name = "argon2rs"
++version = "0.2.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "base64"
-+version = "0.9.3"
++name = "arrayvec"
++version = "0.4.11"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "base64"
-+version = "0.10.1"
++name = "atty"
++version = "0.2.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "autocfg"
++version = "0.1.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "backtrace"
++version = "0.3.34"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "backtrace-sys 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "bincode"
-+version = "0.6.1"
++name = "backtrace-sys"
++version = "0.1.31"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cc 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "base64"
++version = "0.10.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "bitflags"
-+version = "0.4.0"
++name = "bit-set"
++version = "0.5.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bit-vec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "bitflags"
-+version = "0.7.0"
++name = "bit-vec"
++version = "0.5.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "bitflags"
-+version = "1.2.1"
++version = "1.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "bodyparser"
-+version = "0.5.0"
++name = "blake2-rfc"
++version = "0.2.18"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "persistent 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "plugin 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_json 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "buf_redux"
-+version = "0.3.0"
++name = "build_const"
++version = "0.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "byteorder"
-+version = "1.3.2"
++name = "butlerd"
++version = "0.1.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "hyper 0.12.33 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "reqwest 0.9.19 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "bytes"
-+version = "0.3.0"
++name = "byteorder"
++version = "1.3.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -120,79 +151,130 @@ index 0000000..17d0ae9
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "bzip2"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "bzip2-sys"
++version = "0.1.7"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cc 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "c2-chacha"
-+version = "0.2.3"
++version = "0.2.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "cc"
-+version = "1.0.48"
++version = "1.0.38"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "cfg-if"
-+version = "0.1.10"
++version = "0.1.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "chrono"
-+version = "0.2.25"
++name = "clap"
++version = "2.33.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "num 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "chrono"
-+version = "0.4.10"
++name = "clap-verbosity-flag"
++version = "0.2.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "chrono-humanize"
-+version = "0.0.6"
++name = "clicolors-control"
++version = "1.0.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "chrono 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)",
++ "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "chrono-tz"
-+version = "0.2.5"
++name = "cloudabi"
++version = "0.0.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "chrono 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "parse-zoneinfo 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "cloudabi"
-+version = "0.0.3"
++name = "confy"
++version = "0.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "directories 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "conduit-mime-types"
-+version = "0.7.3"
++name = "console"
++version = "0.7.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
++ "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "constant_time_eq"
++version = "0.1.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "cookie"
++version = "0.11.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -206,16 +288,35 @@ index 0000000..17d0ae9
 +
 +[[package]]
 +name = "cookie_store"
++version = "0.5.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cookie 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "publicsuffix 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "cookie_store"
 +version = "0.7.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
 + "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
 + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "publicsuffix 1.5.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)",
++ "publicsuffix 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
 + "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
 + "try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -227,7 +328,7 @@ index 0000000..17d0ae9
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -236,32 +337,49 @@ index 0000000..17d0ae9
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "crc"
++version = "1.8.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
 +name = "crc32fast"
 +version = "1.2.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "crossbeam-deque"
-+version = "0.7.2"
++version = "0.6.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "crossbeam-epoch 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "crossbeam-deque"
++version = "0.7.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "crossbeam-epoch 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-epoch 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "crossbeam-epoch"
-+version = "0.8.0"
++version = "0.7.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memoffset 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
@@ -278,107 +396,115 @@ index 0000000..17d0ae9
 +version = "0.6.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "crossbeam-utils"
-+version = "0.7.0"
++name = "curl"
++version = "0.4.22"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "curl-sys 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)",
++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (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.48 (registry+https://github.com/rust-lang/crates.io-index)",
++ "schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "socket2 0.3.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "dtoa"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "dtoa"
-+version = "0.4.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "either"
-+version = "1.5.3"
++name = "curl-sys"
++version = "0.4.20"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cc 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)",
++ "openssl-sys 0.9.48 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "encoding"
-+version = "0.2.33"
++name = "dialoguer"
++version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "console 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "encoding-index-japanese"
-+version = "1.20141219.5"
++name = "directories"
++version = "0.10.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "encoding-index-korean"
-+version = "1.20141219.5"
++name = "dirs"
++version = "1.0.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_users 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "encoding-index-simpchinese"
-+version = "1.20141219.5"
++name = "dtoa"
++version = "0.4.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
 +
 +[[package]]
-+name = "encoding-index-singlebyte"
-+version = "1.20141219.5"
++name = "eidolon"
++version = "1.4.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "butlerd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "human-panic 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
++ "structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "encoding-index-tradchinese"
-+version = "1.20141219.5"
++name = "either"
++version = "1.5.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
 +
 +[[package]]
-+name = "encoding_index_tests"
-+version = "0.1.4"
++name = "encode_unicode"
++version = "0.3.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "encoding_rs"
-+version = "0.8.22"
++version = "0.8.17"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "error"
-+version = "0.1.9"
++name = "env_logger"
++version = "0.5.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -386,48 +512,38 @@ index 0000000..17d0ae9
 +version = "0.12.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
++ "backtrace 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
 + "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "failure"
-+version = "0.1.6"
++version = "0.1.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "backtrace 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
++ "failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "failure_derive"
-+version = "0.1.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "filetime"
-+version = "0.1.15"
++version = "0.1.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.15.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "flate2"
-+version = "1.0.13"
++version = "1.0.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
 + "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "miniz_oxide_c_api 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -449,24 +565,6 @@ index 0000000..17d0ae9
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "fsevent"
-+version = "0.2.17"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fsevent-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "fsevent-sys"
-+version = "0.1.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
 +name = "fuchsia-cprng"
 +version = "0.1.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -476,7 +574,7 @@ index 0000000..17d0ae9
 +version = "0.3.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
@@ -486,8 +584,17 @@ index 0000000..17d0ae9
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "futf"
++version = "0.1.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "mac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "new_debug_unreachable 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
 +name = "futures"
-+version = "0.1.29"
++version = "0.1.28"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -495,24 +602,37 @@ index 0000000..17d0ae9
 +version = "0.1.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "getrandom"
-+version = "0.1.13"
++version = "0.1.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "glob"
-+version = "0.2.11"
++name = "gog"
++version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cookie 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "curl 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)",
++ "error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "reqwest 0.9.19 (registry+https://github.com/rust-lang/crates.io-index)",
++ "select 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "user_agent 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
 +name = "h2"
@@ -522,9 +642,9 @@ index 0000000..17d0ae9
 + "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
 + "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
 + "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "string 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -532,43 +652,29 @@ index 0000000..17d0ae9
 +]
 +
 +[[package]]
-+name = "handlebars"
-+version = "0.25.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pest 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "handlebars-iron"
-+version = "0.23.1"
++name = "heck"
++version = "0.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "handlebars 0.25.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "notify 3.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "plugin 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "walkdir 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-segmentation 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "hermit-abi"
-+version = "0.1.6"
++name = "html5ever"
++version = "0.23.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "markup5ever 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.15.42 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "http"
-+version = "0.1.21"
++version = "0.1.18"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -582,8 +688,8 @@ index 0000000..17d0ae9
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
 + "tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
@@ -593,36 +699,42 @@ index 0000000..17d0ae9
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "hyper"
-+version = "0.10.16"
++name = "human-panic"
++version = "1.0.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "backtrace 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)",
++ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "termcolor 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "humantime"
++version = "1.2.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "hyper"
-+version = "0.12.35"
++version = "0.12.33"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
 + "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
 + "h2 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
 + "http-body 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
 + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
 + "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -630,12 +742,12 @@ index 0000000..17d0ae9
 + "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
 + "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
 + "tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
 + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
 + "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-threadpool 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-timer 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-threadpool 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
 + "want 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
@@ -645,8 +757,8 @@ index 0000000..17d0ae9
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "hyper 0.12.35 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hyper 0.12.33 (registry+https://github.com/rust-lang/crates.io-index)",
 + "native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
 + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
@@ -658,99 +770,49 @@ index 0000000..17d0ae9
 +dependencies = [
 + "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
 + "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-normalization 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "idna"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-normalization 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "indexmap"
-+version = "1.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "inotify"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "iovec"
-+version = "0.1.4"
++version = "1.0.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
 +
 +[[package]]
-+name = "ipc-channel"
-+version = "0.5.1"
++name = "indicatif"
++version = "0.10.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bincode 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "console 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "irc"
-+version = "0.11.8"
++name = "inflate"
++version = "0.4.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "iron"
-+version = "0.5.1"
++name = "iovec"
++version = "0.1.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "conduit-mime-types 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "error 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "hyper 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "modifier 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "plugin 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "typemap 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "itoa"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "itoa"
 +version = "0.4.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "json"
-+version = "0.10.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
 +name = "kernel32-sys"
 +version = "0.2.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -760,63 +822,53 @@ index 0000000..17d0ae9
 +]
 +
 +[[package]]
-+name = "language-tags"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "lazy_static"
-+version = "0.2.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
 +name = "lazy_static"
-+version = "1.4.0"
++version = "1.3.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "libc"
-+version = "0.2.66"
++version = "0.2.60"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "limiter"
-+version = "0.3.2"
++name = "libflate"
++version = "0.1.25"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rle-decode-fast 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "take_mut 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "linefeed"
-+version = "0.4.0"
++name = "libz-sys"
++version = "1.0.25"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "nix 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ole32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "shell32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-normalization 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "lock_api"
-+version = "0.3.3"
++version = "0.1.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "log"
-+version = "0.3.9"
++name = "lock_api"
++version = "0.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -824,17 +876,28 @@ index 0000000..17d0ae9
 +version = "0.4.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "logger"
-+version = "0.3.0"
++name = "mac"
++version = "0.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "markup5ever"
++version = "0.8.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
++ "phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
++ "string_cache 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "string_cache_codegen 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tendril 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -843,26 +906,13 @@ index 0000000..17d0ae9
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "maybe-uninit"
-+version = "2.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "memchr"
-+version = "0.1.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
 +name = "memchr"
 +version = "2.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "memoffset"
-+version = "0.5.3"
++version = "0.5.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -870,72 +920,52 @@ index 0000000..17d0ae9
 +
 +[[package]]
 +name = "mime"
-+version = "0.2.6"
++version = "0.3.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicase 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "mime"
-+version = "0.3.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
 +name = "mime_guess"
-+version = "1.8.7"
++version = "2.0.0-alpha.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
 + "phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
 + "phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
 + "unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "mime_guess"
-+version = "2.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "mime 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
 +name = "miniz_oxide"
-+version = "0.3.5"
++version = "0.3.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "mio"
-+version = "0.5.1"
++name = "miniz_oxide_c_api"
++version = "0.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bytes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "miow 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "nix 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "slab 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.38 (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.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "miniz_oxide 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "mio"
-+version = "0.6.21"
++version = "0.6.19"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
 + "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
 + "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
 + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
 + "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -945,17 +975,6 @@ index 0000000..17d0ae9
 +
 +[[package]]
 +name = "miow"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "miow"
 +version = "0.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
@@ -966,47 +985,19 @@ index 0000000..17d0ae9
 +]
 +
 +[[package]]
-+name = "modifier"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "mount"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "sequence_trie 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "multipart"
-+version = "0.8.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "buf_redux 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mime_guess 1.8.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
 +name = "native-tls"
 +version = "0.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (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 0.10.24 (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)",
++ "openssl-sys 0.9.48 (registry+https://github.com/rust-lang/crates.io-index)",
++ "schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "security-framework 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "security-framework-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
@@ -1015,191 +1006,98 @@ index 0000000..17d0ae9
 +version = "0.2.33"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "nix"
-+version = "0.5.1"
++name = "new_debug_unreachable"
++version = "1.0.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
 +
 +[[package]]
-+name = "nix"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc_version 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "semver 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "notify"
-+version = "3.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "filetime 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fsevent 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "fsevent-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "inotify 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "walkdir 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "num"
-+version = "0.1.42"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "num-bigint 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-complex 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-rational 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "num-bigint"
-+version = "0.1.44"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "num-complex"
-+version = "0.1.43"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "num-integer"
-+version = "0.1.41"
++name = "nodrop"
++version = "0.1.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
 +
 +[[package]]
-+name = "num-iter"
-+version = "0.1.39"
++name = "num-traits"
++version = "0.2.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "num-rational"
-+version = "0.1.42"
++name = "num_cpus"
++version = "1.10.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "num-bigint 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "num-traits"
-+version = "0.1.43"
++name = "number_prefix"
++version = "0.2.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "num-traits"
-+version = "0.2.10"
++name = "openssl"
++version = "0.10.24"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (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.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "openssl-sys 0.9.48 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "num_cpus"
-+version = "1.11.1"
++name = "openssl-probe"
++version = "0.1.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
 +
 +[[package]]
-+name = "ole32-sys"
-+version = "0.2.0"
++name = "openssl-sys"
++version = "0.9.48"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cc 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "pkg-config 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "openssl"
-+version = "0.10.26"
++name = "os_type"
++version = "2.2.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "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)",
++ "regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "openssl-probe"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "openssl-sys"
-+version = "0.9.53"
++name = "owning_ref"
++version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "params"
-+version = "0.6.0"
++name = "parking_lot"
++version = "0.7.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bodyparser 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "multipart 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "plugin 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_json 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "urlencoded 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1207,31 +1105,35 @@ index 0000000..17d0ae9
 +version = "0.9.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "lock_api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lock_api 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "parking_lot_core"
-+version = "0.6.2"
++version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "parse-zoneinfo"
-+version = "0.1.1"
++name = "parking_lot_core"
++version = "0.6.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1240,25 +1142,6 @@ index 0000000..17d0ae9
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "percent-encoding"
-+version = "2.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "persistent"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "plugin 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "pest"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
 +name = "phf"
 +version = "0.7.24"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1295,58 +1178,55 @@ index 0000000..17d0ae9
 +
 +[[package]]
 +name = "pkg-config"
-+version = "0.3.17"
++version = "0.3.15"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "plugin"
-+version = "0.2.6"
++name = "podio"
++version = "0.1.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "typemap 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
 +
 +[[package]]
 +name = "ppv-lite86"
-+version = "0.2.6"
++version = "0.2.5"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "precomputed-hash"
++version = "0.1.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "proc-macro2"
-+version = "1.0.7"
++version = "0.4.30"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "publicsuffix"
-+version = "1.5.4"
++version = "1.5.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "quick-error"
-+version = "1.2.3"
++version = "1.2.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "quote"
-+version = "0.3.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "quote"
-+version = "1.0.2"
++version = "0.6.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1354,7 +1234,7 @@ index 0000000..17d0ae9
 +version = "0.3.23"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
@@ -1364,10 +1244,22 @@ index 0000000..17d0ae9
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rand"
++version = "0.5.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1375,28 +1267,28 @@ index 0000000..17d0ae9
 +version = "0.6.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "rand"
-+version = "0.7.2"
++version = "0.7.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getrandom 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (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_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
@@ -1405,7 +1297,7 @@ index 0000000..17d0ae9
 +version = "0.1.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
@@ -1414,8 +1306,8 @@ index 0000000..17d0ae9
 +version = "0.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1423,20 +1315,20 @@ index 0000000..17d0ae9
 +version = "0.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "rand_core"
-+version = "0.4.2"
++version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "rand_core"
-+version = "0.5.1"
++version = "0.5.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getrandom 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1452,7 +1344,7 @@ index 0000000..17d0ae9
 +version = "0.2.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1468,9 +1360,9 @@ index 0000000..17d0ae9
 +version = "0.1.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1480,10 +1372,10 @@ index 0000000..17d0ae9
 +dependencies = [
 + "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
 + "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1491,8 +1383,8 @@ index 0000000..17d0ae9
 +version = "0.1.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1504,6 +1396,28 @@ index 0000000..17d0ae9
 +]
 +
 +[[package]]
++name = "rayon"
++version = "1.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rayon-core 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "rayon-core"
++version = "1.5.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
 +name = "rdrand"
 +version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1517,6 +1431,17 @@ index 0000000..17d0ae9
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "redox_users"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "argon2rs 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
 +name = "regex"
 +version = "0.2.11"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -1530,10 +1455,13 @@ index 0000000..17d0ae9
 +
 +[[package]]
 +name = "regex"
-+version = "1.3.1"
++version = "1.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "aho-corasick 0.7.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "regex-syntax 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1546,7 +1474,7 @@ index 0000000..17d0ae9
 +
 +[[package]]
 +name = "regex-syntax"
-+version = "0.6.12"
++version = "0.6.11"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
@@ -1554,136 +1482,51 @@ index 0000000..17d0ae9
 +version = "0.5.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "reqwest"
-+version = "0.9.24"
++version = "0.9.19"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
 + "cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "cookie_store 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "encoding_rs 0.8.22 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "hyper 0.12.35 (registry+https://github.com/rust-lang/crates.io-index)",
++ "encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)",
++ "flate2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
++ "http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hyper 0.12.33 (registry+https://github.com/rust-lang/crates.io-index)",
 + "hyper-tls 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mime 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mime_guess 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)",
 + "native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
 + "serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)",
 + "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
 + "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
 + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-threadpool 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-timer 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-threadpool 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
 + "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)",
 + "winreg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "rink"
-+version = "0.4.4"
-+dependencies = [
-+ "chrono 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "chrono-humanize 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "chrono-tz 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "json 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "linefeed 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "reqwest 0.9.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rust-gmp 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_derive 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "strsim 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "xml-rs 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rink-irc"
-+version = "0.4.0"
-+dependencies = [
-+ "glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "irc 0.11.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rink 0.4.4",
-+]
-+
-+[[package]]
-+name = "rink-web"
-+version = "0.4.0"
-+dependencies = [
-+ "chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "handlebars 0.25.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "handlebars-iron 0.23.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "limiter 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "logger 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mount 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "params 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rink 0.4.4",
-+ "router 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_derive 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_json 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "staticfile 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "toml 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "route-recognizer"
-+version = "0.1.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "router"
-+version = "0.5.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "route-recognizer 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rust-gmp"
-+version = "0.5.0"
++name = "rle-decode-fast"
++version = "1.0.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
 +
 +[[package]]
 +name = "rustc-demangle"
-+version = "0.1.16"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "rustc-serialize"
-+version = "0.3.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "rustc_version"
-+version = "0.1.7"
++version = "0.1.15"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "semver 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
 +
 +[[package]]
 +name = "rustc_version"
@@ -1695,60 +1538,68 @@ index 0000000..17d0ae9
 +
 +[[package]]
 +name = "ryu"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "safemem"
-+version = "0.3.3"
++version = "1.0.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "same-file"
-+version = "0.1.3"
++version = "1.0.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "schannel"
-+version = "0.1.16"
++version = "0.1.15"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
++name = "scoped_threadpool"
++version = "0.1.9"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "scopeguard"
++version = "0.3.3"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
 +name = "scopeguard"
 +version = "1.0.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "security-framework"
-+version = "0.3.4"
++version = "0.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)",
 + "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "security-framework-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "security-framework-sys"
-+version = "0.3.3"
++version = "0.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "semver"
-+version = "0.1.20"
++name = "select"
++version = "0.4.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "html5ever 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
 +name = "semver"
@@ -1764,202 +1615,239 @@ index 0000000..17d0ae9
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "sequence_trie"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
 +name = "serde"
-+version = "0.8.23"
++version = "1.0.98"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "serde"
-+version = "1.0.104"
++name = "serde_derive"
++version = "1.0.98"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.15.42 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "serde_codegen"
-+version = "0.8.23"
++name = "serde_json"
++version = "1.0.40"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_codegen_internals 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 0.10.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ryu 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "serde_codegen_internals"
-+version = "0.11.3"
++name = "serde_urlencoded"
++version = "0.5.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "syn 0.10.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "serde_derive"
-+version = "0.8.23"
++name = "siphasher"
++version = "0.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "serde_codegen 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
 +
 +[[package]]
-+name = "serde_derive"
-+version = "1.0.104"
++name = "slab"
++version = "0.4.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
 +
 +[[package]]
-+name = "serde_json"
-+version = "0.8.6"
++name = "smallvec"
++version = "0.6.10"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "socket2"
++version = "0.3.10"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "dtoa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "itoa 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "serde_json"
-+version = "1.0.44"
++name = "stable_deref_trait"
++version = "1.1.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "string"
++version = "0.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "serde_urlencoded"
-+version = "0.5.5"
++name = "string_cache"
++version = "0.7.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "new_debug_unreachable 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
++ "precomputed-hash 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "string_cache_codegen 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "string_cache_shared 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "shell32-sys"
-+version = "0.1.2"
++name = "string_cache_codegen"
++version = "0.4.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
++ "phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "string_cache_shared 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "siphasher"
-+version = "0.2.3"
++name = "string_cache_shared"
++version = "0.3.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "slab"
-+version = "0.1.3"
++name = "strsim"
++version = "0.8.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "slab"
-+version = "0.4.2"
++name = "structopt"
++version = "0.2.18"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "structopt-derive 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "smallvec"
-+version = "0.6.13"
++name = "structopt-derive"
++version = "0.2.18"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.15.42 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "smallvec"
-+version = "1.1.0"
++name = "syn"
++version = "0.15.42"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "staticfile"
-+version = "0.4.0"
++name = "synstructure"
++version = "0.10.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mount 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)",
++ "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)",
++ "syn 0.15.42 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "string"
-+version = "0.2.1"
++name = "take_mut"
++version = "0.2.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++
++[[package]]
++name = "tempdir"
++version = "0.3.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "strsim"
-+version = "0.5.2"
++name = "tempfile"
++version = "2.2.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++]
 +
 +[[package]]
-+name = "syn"
-+version = "0.10.8"
++name = "tempfile"
++version = "3.1.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
++ "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "tendril"
++version = "0.4.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futf 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "utf-8 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "syn"
-+version = "1.0.13"
++name = "termcolor"
++version = "0.3.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wincolor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "synstructure"
-+version = "0.12.3"
++name = "termcolor"
++version = "1.0.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "tempdir"
-+version = "0.3.7"
++name = "termios"
++version = "0.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "tempfile"
-+version = "3.1.0"
++name = "textwrap"
++version = "0.11.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1967,7 +1855,7 @@ index 0000000..17d0ae9
 +version = "0.3.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1975,9 +1863,9 @@ index 0000000..17d0ae9
 +version = "0.1.42"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)",
 + "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -1986,16 +1874,16 @@ index 0000000..17d0ae9
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
 + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
 + "tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-threadpool 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-timer 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-threadpool 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -2004,8 +1892,8 @@ index 0000000..17d0ae9
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -2013,17 +1901,17 @@ index 0000000..17d0ae9
 +version = "0.1.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "tokio-executor"
-+version = "0.1.9"
++version = "0.1.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -2032,35 +1920,35 @@ index 0000000..17d0ae9
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
 + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "tokio-reactor"
-+version = "0.1.11"
++version = "0.1.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
 + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
 + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-sync 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-sync 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "tokio-sync"
-+version = "0.1.7"
++version = "0.1.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -2069,55 +1957,49 @@ index 0000000..17d0ae9
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
++ "iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)",
 + "tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "tokio-threadpool"
-+version = "0.1.17"
++version = "0.1.15"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
 + "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
 + "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
 + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)",
 + "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "tokio-timer"
-+version = "0.2.12"
++version = "0.2.11"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
 + "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tokio-executor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
 +name = "toml"
-+version = "0.2.1"
++version = "0.4.10"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "traitobject"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
 +name = "try-lock"
 +version = "0.2.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2127,20 +2009,7 @@ index 0000000..17d0ae9
 +version = "0.3.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "typeable"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "typemap"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "unsafe-any 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -2158,10 +2027,10 @@ index 0000000..17d0ae9
 +
 +[[package]]
 +name = "unicase"
-+version = "2.6.0"
++version = "2.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -2174,36 +2043,28 @@ index 0000000..17d0ae9
 +
 +[[package]]
 +name = "unicode-normalization"
-+version = "0.1.11"
++version = "0.1.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "unicode-width"
-+version = "0.1.7"
++name = "unicode-segmentation"
++version = "1.3.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "unicode-xid"
-+version = "0.0.4"
++name = "unicode-width"
++version = "0.1.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "unicode-xid"
-+version = "0.2.0"
++version = "0.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "unsafe-any"
-+version = "0.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
 +name = "url"
 +version = "1.7.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
@@ -2214,25 +2075,22 @@ index 0000000..17d0ae9
 +]
 +
 +[[package]]
-+name = "url"
-+version = "2.1.0"
++name = "user_agent"
++version = "0.6.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cookie 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cookie_store 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "reqwest 0.9.19 (registry+https://github.com/rust-lang/crates.io-index)",
++ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "urlencoded"
-+version = "0.5.0"
++name = "utf-8"
++version = "0.7.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "bodyparser 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "plugin 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
 +
 +[[package]]
 +name = "utf8-ranges"
@@ -2241,10 +2099,11 @@ index 0000000..17d0ae9
 +
 +[[package]]
 +name = "uuid"
-+version = "0.3.1"
++version = "0.6.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -2257,41 +2116,27 @@ index 0000000..17d0ae9
 +
 +[[package]]
 +name = "vcpkg"
-+version = "0.2.8"
++version = "0.2.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
-+name = "version_check"
-+version = "0.1.5"
++name = "vec_map"
++version = "0.8.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "version_check"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "void"
-+version = "1.0.2"
++version = "0.1.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "walkdir"
-+version = "0.1.8"
++version = "2.2.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "walkdir"
-+version = "1.0.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "same-file 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "same-file 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -2299,24 +2144,19 @@ index 0000000..17d0ae9
 +version = "0.2.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)",
++ "futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)",
 + "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
 + "try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
-+name = "wasi"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
 +name = "winapi"
 +version = "0.2.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
 +name = "winapi"
-+version = "0.3.8"
++version = "0.3.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
 + "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -2334,16 +2174,41 @@ index 0000000..17d0ae9
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "winapi-util"
++version = "0.1.2"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
 +name = "winapi-x86_64-pc-windows-gnu"
 +version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +
 +[[package]]
++name = "wincolor"
++version = "0.1.6"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "wincolor"
++version = "1.0.1"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++dependencies = [
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
 +name = "winreg"
 +version = "0.6.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[[package]]
@@ -2356,174 +2221,193 @@ index 0000000..17d0ae9
 +]
 +
 +[[package]]
-+name = "xml-rs"
-+version = "0.3.6"
++name = "wyvern"
++version = "1.4.1"
++dependencies = [
++ "clap-verbosity-flag 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "confy 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "console 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "curl 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dialoguer 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "eidolon 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "gog 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "human-panic 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "indicatif 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "inflate 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
++ "lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rayon 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "reqwest 0.9.19 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)",
++ "serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)",
++ "structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)",
++ "tempfile 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)",
++ "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
++ "walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
++ "zip 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
++]
++
++[[package]]
++name = "zip"
++version = "0.5.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
 +dependencies = [
-+ "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libflate 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)",
++ "podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)",
 +]
 +
 +[metadata]
-+"checksum adler32 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2e7343e7fc9de883d1b0341e0b13970f764c14101234857d2ddafa1cb1cac2"
++"checksum adler32 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7e522997b529f05601e05166c07ed17789691f562762c7f3b987263d2dedee5c"
 +"checksum aho-corasick 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "81ce3d38065e618af2d7b77e10c5ad9a069859b4be3c2250f674af3840d9c8a5"
-+"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
-+"checksum backtrace 0.3.40 (registry+https://github.com/rust-lang/crates.io-index)" = "924c76597f0d9ca25d762c25a4d369d51267536465dc5064bdf0eb073ed477ea"
-+"checksum backtrace-sys 0.1.32 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6575f128516de27e3ce99689419835fce9643a9b215a14d2b5b685be018491"
++"checksum 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 argon2rs 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3f67b0b6a86dae6e67ff4ca2b6201396074996379fba2b92ff649126f37cb392"
++"checksum arrayvec 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b8d73f9beda665eaa98ab9e4f7442bd4e7de6652587de55b2525e52e29c1b0ba"
++"checksum atty 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1803c647a3ec87095e7ae7acfca019e98de5ec9a7d01343f611cf3152ed71a90"
++"checksum autocfg 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "22130e92352b948e7e82a49cdb0aa94f2211761117f29e052dd397c1ac33542b"
++"checksum backtrace 0.3.34 (registry+https://github.com/rust-lang/crates.io-index)" = "b5164d292487f037ece34ec0de2fcede2faa162f085dd96d2385ab81b12765ba"
++"checksum backtrace-sys 0.1.31 (registry+https://github.com/rust-lang/crates.io-index)" = "82a830b4ef2d1124a711c71d263c5abdc710ef8e907bd508c88be475cebc422b"
 +"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e"
-+"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643"
-+"checksum bincode 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "55eb0b7fd108527b0c77860f75eca70214e11a8b4c6ef05148c54c05a25d48ad"
-+"checksum bitflags 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8dead7461c1127cf637931a1e50934eb6eee8bff2f74433ac7909e9afcee04a3"
-+"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d"
-+"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-+"checksum bodyparser 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6928e817538b74a73d1dd6e9a942a2a35c632a597b6bb14fd009480f859a6bf5"
-+"checksum buf_redux 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "861b9d19b9f5cb40647242d10d0cb0a13de0a96d5ff8c8a01ea324fa3956eb7d"
++"checksum bit-set 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e84c238982c4b1e1ee668d136c510c67a13465279c0cb367ea6baf6310620a80"
++"checksum bit-vec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f59bbe95d4e52a6398ec21238d31577f2b28a9d86807f06ca59d191d8440d0bb"
++"checksum bitflags 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3d155346769a6855b86399e9bc3814ab343cd3d62c7e985113d46a0ec3c281fd"
++"checksum blake2-rfc 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "5d6d530bdd2d52966a6d03b7a964add7ae1a288d25214066fd4b600f0f796400"
++"checksum build_const 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "39092a32794787acd8525ee150305ff051b0aa6cc2abaf193924f5ab05425f39"
++"checksum butlerd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "095899eb6b69e0a1c98215e51a44c67b8e3c902ebb9440afaafe2eb45e650a09"
 +"checksum byteorder 1.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c3dd8985a7111efc5c80b44e23ecdd8c007de8ade3b96595387e812b957cf5"
-+"checksum bytes 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c129aff112dcc562970abb69e2508b40850dd24c274761bb50fb8a0067ba6c27"
 +"checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c"
-+"checksum c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb"
-+"checksum cc 1.0.48 (registry+https://github.com/rust-lang/crates.io-index)" = "f52a465a666ca3d838ebbf08b241383421412fe7ebb463527bba275526d89f76"
-+"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-+"checksum chrono 0.2.25 (registry+https://github.com/rust-lang/crates.io-index)" = "9213f7cd7c27e95c2b57c49f0e69b1ea65b27138da84a170133fd21b07659c00"
-+"checksum chrono 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "31850b4a4d6bae316f7a09e691c944c28299298837edc0a03f755618c23cbc01"
-+"checksum chrono-humanize 0.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "92afb1436280b0e4ed573c747ad30a1469cd945c201265b4d01e72cfa598da4f"
-+"checksum chrono-tz 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "45438695f3f154032951a341ecca7ed200714bea615096885c9e86ca9fa3d66b"
++"checksum bzip2 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "42b7c3cbf0fa9c1b82308d57191728ca0256cb821220f4e2fd410a72ade26e3b"
++"checksum bzip2-sys 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "6584aa36f5ad4c9247f5323b0a42f37802b37a836f0ad87084d7a33961abe25f"
++"checksum c2-chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7d64d04786e0f528460fc884753cf8dddcc466be308f6026f8e355c41a0e4101"
++"checksum cc 1.0.38 (registry+https://github.com/rust-lang/crates.io-index)" = "ce400c638d48ee0e9ab75aef7997609ec57367ccfe1463f21bf53c3eca67bf46"
++"checksum cfg-if 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "b486ce3ccf7ffd79fdeb678eac06a9e6c09fc88d33836340becb8fffe87c5e33"
++"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
++"checksum clap-verbosity-flag 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bda14f5323b2b747f52908c5b7b8af7790784088bc7c2957a11695e39ad476dc"
++"checksum clicolors-control 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "73abfd4c73d003a674ce5d2933fca6ce6c42480ea84a5ffe0a2dc39ed56300f9"
 +"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-+"checksum conduit-mime-types 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "95ca30253581af809925ef68c2641cc140d6183f43e12e0af4992d53768bd7b8"
++"checksum confy 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4b1400cd0dae7f27d2c7ced9492e1398d2e2df614570092a4936c73b416dedea"
++"checksum console 0.7.7 (registry+https://github.com/rust-lang/crates.io-index)" = "8ca57c2c14b8a2bf3105bc9d15574aad80babf6a9c44b1058034cdf8bd169628"
++"checksum constant_time_eq 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "8ff012e225ce166d4422e0e78419d901719760f62ae2b7969ca6b564d1b54a9e"
++"checksum cookie 0.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "99be24cfcf40d56ed37fd11c2123be833959bbc5bddecb46e1c2e442e15fa3e0"
 +"checksum cookie 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "888604f00b3db336d2af898ec3c1d5d0ddf5e6d462220f2ededc33a87ac4bbd5"
++"checksum cookie_store 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b0d2f2ecb21dce00e2453268370312978af9b8024020c7a37ae2cc6dbbe64685"
 +"checksum cookie_store 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46750b3f362965f197996c4448e4a0935e791bf7d6631bfce9ee0af3d24c919c"
 +"checksum core-foundation 0.6.4 (registry+https://github.com/rust-lang/crates.io-index)" = "25b9e03f145fd4f2bf705e07b900cd41fc636598fe5dc452fd0db1441c3f496d"
 +"checksum core-foundation-sys 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e7ca8a5221364ef15ce201e8ed2f609fc312682a8f4e0e3d4aa5879764e0fa3b"
++"checksum crc 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d663548de7f5cca343f1e0a48d14dcfb0e9eb4e079ec58883b7251539fa10aeb"
 +"checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
-+"checksum crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3aa945d63861bfe624b55d153a39684da1e8c0bc8fba932f7ee3a3c16cea3ca"
-+"checksum crossbeam-epoch 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5064ebdbf05ce3cb95e45c8b086f72263f4166b29b97f6baff7ef7fe047b55ac"
++"checksum crossbeam-deque 0.6.3 (registry+https://github.com/rust-lang/crates.io-index)" = "05e44b8cf3e1a625844d1750e1f7820da46044ff6d28f4d43e455ba3e5bb2c13"
++"checksum crossbeam-deque 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b18cd2e169ad86297e6bc0ad9aa679aee9daa4f19e8163860faf7c164e4f5a71"
++"checksum crossbeam-epoch 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "fedcd6772e37f3da2a9af9bf12ebe046c0dfe657992377b4df982a2b54cd37a9"
 +"checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b"
 +"checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6"
-+"checksum crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce446db02cdc3165b94ae73111e570793400d0794e46125cc4056c81cbb039f4"
-+"checksum dtoa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "0dd841b58510c9618291ffa448da2e4e0f699d984d436122372f446dae62263d"
++"checksum curl 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)" = "f8ed9a22aa8c4e49ac0c896279ef532a43a7df2f54fcd19fa36960de029f965f"
++"checksum curl-sys 0.4.20 (registry+https://github.com/rust-lang/crates.io-index)" = "5e90ae10f635645cba9cad1023535f54915a95c58c44751c6ed70dbaeb17a408"
++"checksum dialoguer 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "116f66c4e7b19af0d52857aa4ff710cc3b4781d9c16616e31540bc55ec57ba8c"
++"checksum directories 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc2561db021b6f1321d0f16b67ed28ce843ef4610dfaa432e3ffa2e8a3050ebf"
++"checksum dirs 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3fd78930633bd1c6e35c4b42b1df7b0cbc6bc191146e512bb3bedf243fcc3901"
 +"checksum dtoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "ea57b42383d091c85abcc2706240b94ab2a8fa1fc81c10ff23c4de06e2a90b5e"
-+"checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
-+"checksum encoding 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "6b0d943856b990d12d3b55b359144ff341533e516d94098b1d3fc1ac666d36ec"
-+"checksum encoding-index-japanese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "04e8b2ff42e9a05335dbf8b5c6f7567e5591d0d916ccef4e0b1710d32a0d0c91"
-+"checksum encoding-index-korean 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "4dc33fb8e6bcba213fe2f14275f0963fd16f0a02c878e3095ecfdf5bee529d81"
-+"checksum encoding-index-simpchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d87a7194909b9118fc707194baa434a4e3b0fb6a5a757c73c3adb07aa25031f7"
-+"checksum encoding-index-singlebyte 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3351d5acffb224af9ca265f435b859c7c01537c0849754d3db3fdf2bfe2ae84a"
-+"checksum encoding-index-tradchinese 1.20141219.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fd0e20d5688ce3cab59eb3ef3a2083a5c77bf496cb798dc6fcdb75f323890c18"
-+"checksum encoding_index_tests 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a246d82be1c9d791c5dfde9a2bd045fc3cbba3fa2b11ad558f27d01712f00569"
-+"checksum encoding_rs 0.8.22 (registry+https://github.com/rust-lang/crates.io-index)" = "cd8d03faa7fe0c1431609dfad7bbe827af30f82e1e2ae6f7ee4fca6bd764bc28"
-+"checksum error 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "a6e606f14042bb87cc02ef6a14db6c90ab92ed6f62d87e69377bc759fd7987cc"
++"checksum eidolon 1.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "8a501eef266fdb28e1414b6104ca799a216bce6dc4ae1217ad0f40d591351671"
++"checksum either 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5527cfe0d098f36e3f8839852688e63c8fff1c90b2b405aef730615f9a7bcf7b"
++"checksum encode_unicode 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "90b2c9496c001e8cb61827acdefad780795c42264c137744cae6f7d9e3450abd"
++"checksum encoding_rs 0.8.17 (registry+https://github.com/rust-lang/crates.io-index)" = "4155785c79f2f6701f185eb2e6b4caf0555ec03477cb4c70db67b465311620ed"
++"checksum env_logger 0.5.13 (registry+https://github.com/rust-lang/crates.io-index)" = "15b0a4d2e39f8420210be8b27eeda28029729e2fd4291019455016c348240c38"
 +"checksum error-chain 0.12.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3ab49e9dcb602294bc42f9a7dfc9bc6e936fca4418ea300dbfb84fe16de0b7d9"
-+"checksum failure 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "f8273f13c977665c5db7eb2b99ae520952fe5ac831ae4cd09d80c4c7042b5ed9"
-+"checksum failure_derive 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "0bc225b78e0391e4b8683440bf2e63c2deeeb2ce5189eab46e2b68c6d3725d08"
-+"checksum filetime 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "714653f3e34871534de23771ac7b26e999651a0a228f47beb324dfdf1dd4b10f"
-+"checksum flate2 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6bd6d6f4752952feb71363cffc9ebac9411b75b87c6ab6058c40c8900cf43c0f"
++"checksum failure 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "795bd83d3abeb9220f257e597aa0080a508b27533824adf336529648f6abf7e2"
++"checksum failure_derive 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "ea1063915fd7ef4309e222a5a07cf9c319fb9c7836b1f89b85458672dbb127e1"
++"checksum flate2 1.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "550934ad4808d5d39365e5d61727309bf18b3b02c6c56b729cb92e7dd84bc3d8"
 +"checksum fnv 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2fad85553e09a6f881f739c29f0b00b0f01357c743266d478b68951ce23285f3"
 +"checksum foreign-types 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
 +"checksum foreign-types-shared 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-+"checksum fsevent 0.2.17 (registry+https://github.com/rust-lang/crates.io-index)" = "c4bbbf71584aeed076100b5665ac14e3d85eeb31fdbb45fbd41ef9a682b5ec05"
-+"checksum fsevent-sys 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "1a772d36c338d07a032d5375a36f15f9a7043bf0cb8ce7cee658e037c6032874"
 +"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
 +"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82"
 +"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7"
-+"checksum futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)" = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef"
++"checksum futf 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "7c9c1ce3fa9336301af935ab852c437817d14cd33690446569392e65170aac3b"
++"checksum futures 0.1.28 (registry+https://github.com/rust-lang/crates.io-index)" = "45dc39533a6cae6da2b56da48edae506bb767ec07370f86f70fc062e9d435869"
 +"checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4"
-+"checksum getrandom 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "e7db7ca94ed4cd01190ceee0d8a8052f08a247aa1b469a7f68c6a3b71afcf407"
-+"checksum glob 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "8be18de09a56b60ed0edf84bc9df007e30040691af7acd1c41874faac5895bfb"
++"checksum getrandom 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "cd8e190892c840661957ba9f32dacfb3eb405e657f9f9f60485605f0bb37d6f8"
++"checksum gog 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "19bfb6c45ea1fba86f5880b4f239ef8034230387d90a0dfea70e094caeabf0be"
 +"checksum h2 0.1.26 (registry+https://github.com/rust-lang/crates.io-index)" = "a5b34c246847f938a410a03c5458c7fee2274436675e76d8b903c08efc29c462"
-+"checksum handlebars 0.25.3 (registry+https://github.com/rust-lang/crates.io-index)" = "15bdf598fc3c2de40c6b340213028301c0d225eea55a2294e6cc148074e557a1"
-+"checksum handlebars-iron 0.23.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1f86cf6ff931aa78e61415ad40c48a9af101b9a888eeed6ecf4f48dc52e80b76"
-+"checksum hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772"
-+"checksum http 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)" = "d6ccf5ede3a895d8856620237b2f02972c1bbc78d2965ad7fe8838d4a0ed41f0"
++"checksum heck 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "20564e78d53d2bb135c343b3f47714a56af2061f1c928fdb541dc7b9fdd94205"
++"checksum html5ever 0.23.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5ce65ac8028cf5a287a7dbf6c4e0a6cf2dcf022ed5b167a81bae66ebf599a8b7"
++"checksum http 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "372bcb56f939e449117fb0869c2e8fd8753a8223d92a172c6e808cf123a5b6e4"
 +"checksum http-body 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6741c859c1b2463a423a1dbce98d418e6c3c3fc720fb0d45528657320920292d"
 +"checksum httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9"
-+"checksum hyper 0.10.16 (registry+https://github.com/rust-lang/crates.io-index)" = "0a0652d9a2609a968c14be1a9ea00bf4b1d64e2e1f53a1b51b6fff3a6e829273"
-+"checksum hyper 0.12.35 (registry+https://github.com/rust-lang/crates.io-index)" = "9dbe6ed1438e1f8ad955a4701e9a944938e9519f6888d12d8558b645e247d5f6"
++"checksum human-panic 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "21638c5955a6daf3ecc42cae702335fc37a72a4abcc6959ce457b31a7d43bbdd"
++"checksum humantime 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca7e5f2e110db35f93b837c81797f3714500b81d517bf20c431b16d3ca4f114"
++"checksum hyper 0.12.33 (registry+https://github.com/rust-lang/crates.io-index)" = "7cb44cbce9d8ee4fb36e4c0ad7b794ac44ebaad924b9c8291a63215bb44c2c8f"
 +"checksum hyper-tls 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3a800d6aa50af4b5850b2b0f659625ce9504df908e9733b635720483be26174f"
 +"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e"
-+"checksum idna 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
-+"checksum indexmap 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712d7b3ea5827fcb9d4fda14bf4da5f136f0db2ae9c8f4bd4e2d1c6fde4e6db2"
-+"checksum inotify 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e8458c07bdbdaf309c80e2c3304d14c3db64e7465d4f07cf589ccb83fd0ff31a"
-+"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
-+"checksum ipc-channel 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "675587430ede6756dd03fdfdf9888f22f83855fd131c8451d842a710b059e571"
-+"checksum irc 0.11.8 (registry+https://github.com/rust-lang/crates.io-index)" = "6a45f7136bbfeec4377afc6363b38440ce153d8a61777d56da0c6b1176cf135a"
-+"checksum iron 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2440ae846e7a8c7f9b401db8f6e31b4ea5e7d3688b91761337da7e054520c75b"
-+"checksum itoa 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ae3088ea4baeceb0284ee9eea42f591226e6beaecf65373e41b38d95a1b8e7a1"
++"checksum indexmap 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7e81a7c05f79578dbc15793d8b619db9ba32b4577003ef3af1a91c416798c58d"
++"checksum indicatif 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)" = "40ecd1e2ee08e6c255ce890f5a99d17000850e664e7acf119fb03b25b0575bfe"
++"checksum inflate 0.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1cdb29978cc5797bd8dcc8e5bf7de604891df2a8dc576973d71a281e916db2ff"
++"checksum iovec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dbe6e417e7d0975db6512b90796e8ce223145ac4e33c377e4a42882a0e88bb08"
 +"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
-+"checksum json 0.10.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f3fb4510c0dbc38f7f43bdbe8b53defae0cd338b81ef416462a0ef69d600165c"
 +"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d"
-+"checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a"
-+"checksum lazy_static 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73"
-+"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-+"checksum libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)" = "d515b1f41455adea1313a4a2ac8a8a477634fbae63cc6100e3aebb207ce61558"
-+"checksum limiter 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cbc5d8bf63416df5331084dd9883b9598582f0d7ad5e42d53e55b05366931676"
-+"checksum linefeed 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1301a570e4e7d2d0f324b7a3fa73eac85b05c81b656a0983b16ebc8c504e53b6"
-+"checksum lock_api 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "79b2de95ecb4691949fea4716ca53cdbcfccb2c612e19644a8bad05edcf9f47b"
-+"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b"
++"checksum lazy_static 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bc5729f27f159ddd61f4df6228e827e86643d4d3e7c32183cb30a1c08f604a14"
++"checksum libc 0.2.60 (registry+https://github.com/rust-lang/crates.io-index)" = "d44e80633f007889c7eff624b709ab43c92d708caad982295768a7b13ca3b5eb"
++"checksum libflate 0.1.25 (registry+https://github.com/rust-lang/crates.io-index)" = "90c6f86f4b0caa347206f916f8b687b51d77c6ef8ff18d52dd007491fd580529"
++"checksum libz-sys 1.0.25 (registry+https://github.com/rust-lang/crates.io-index)" = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe"
++"checksum lock_api 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "62ebf1391f6acad60e5c8b43706dde4582df75c06698ab44511d15016bc2442c"
++"checksum lock_api 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f8912e782533a93a167888781b836336a6ca5da6175c05944c86cf28c31104dc"
 +"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
-+"checksum logger 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "92ff59f9a797ff30f711fe6b8489ad424953cee17c206de77d3c5957a9182ba7"
++"checksum mac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
++"checksum markup5ever 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f1af46a727284117e09780d05038b1ce6fc9c76cc6df183c3dae5a8955a25e21"
 +"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
-+"checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
-+"checksum memchr 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "d8b629fb514376c675b98c1421e80b151d3817ac42d7c667717d282761418d20"
 +"checksum memchr 2.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88579771288728879b57485cc7d6b07d648c9f0141eb955f8ab7f9d45394468e"
-+"checksum memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "75189eb85871ea5c2e2c15abbdd541185f63b408415e5051f5cac122d8c774b9"
-+"checksum mime 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "ba626b8a6de5da682e1caa06bdb42a335aee5a84db8e5046a3e8ab17ba0a3ae0"
-+"checksum mime 0.3.14 (registry+https://github.com/rust-lang/crates.io-index)" = "dd1d63acd1b78403cc0c325605908475dd9b9a3acbf65ed8bcab97e27014afcf"
-+"checksum mime_guess 1.8.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0d977de9ee851a0b16e932979515c0f3da82403183879811bc97d50bd9cc50f7"
-+"checksum mime_guess 2.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1a0ed03949aef72dbdf3116a383d7b38b4768e6f960528cd6a6044aa9ed68599"
-+"checksum miniz_oxide 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6f3f74f726ae935c3f514300cc6773a0c9492abc5e972d42ba0c0ebb88757625"
-+"checksum mio 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a637d1ca14eacae06296a008fa7ad955347e34efcb5891cfd8ba05491a37907e"
-+"checksum mio 0.6.21 (registry+https://github.com/rust-lang/crates.io-index)" = "302dec22bcf6bae6dfb69c647187f4b4d0fb6f535521f7bc022430ce8e12008f"
-+"checksum miow 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3e690c5df6b2f60acd45d56378981e827ff8295562fc8d34f573deb267a59cd1"
++"checksum memoffset 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ce6075db033bbbb7ee5a0bbd3a3186bbae616f57fb001c485c7ff77955f8177f"
++"checksum mime 0.3.13 (registry+https://github.com/rust-lang/crates.io-index)" = "3e27ca21f40a310bd06d9031785f4801710d566c184a6e15bad4f1d9b65f9425"
++"checksum mime_guess 2.0.0-alpha.6 (registry+https://github.com/rust-lang/crates.io-index)" = "30de2e4613efcba1ec63d8133f344076952090c122992a903359be5a4f99c3ed"
++"checksum miniz_oxide 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c061edee74a88eb35d876ce88b94d77a0448a201de111c244b70d047f5820516"
++"checksum miniz_oxide_c_api 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6c675792957b0d19933816c4e1d56663c341dd9bfa31cb2140ff2267c1d8ecf4"
++"checksum mio 0.6.19 (registry+https://github.com/rust-lang/crates.io-index)" = "83f51996a3ed004ef184e16818edc51fadffe8e7ca68be67f9dee67d84d0ff23"
 +"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
-+"checksum modifier 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "41f5c9112cb662acd3b204077e0de5bc66305fa8df65c8019d5adb10e9ab6e58"
-+"checksum mount 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "32245731923cd096899502fc4c4317cfd09f121e80e73f7f576cf3777a824256"
-+"checksum multipart 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b16d6498fe5b0c2f6d973fd9753da099948834f96584d628e44a75f0d2955b03"
 +"checksum native-tls 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4b2df1a4c22fd44a62147fd8f13dd0f95c9d8ca7b2610299b2a2f9cf8964274e"
 +"checksum net2 0.2.33 (registry+https://github.com/rust-lang/crates.io-index)" = "42550d9fb7b6684a6d404d9fa7250c2eb2646df731d1c06afc06dcee9e1bcf88"
-+"checksum nix 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bfb3ddedaa14746434a02041940495bf11325c22f6d36125d3bdd56090d50a79"
-+"checksum nix 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a0d95c5fa8b641c10ad0b8887454ebaafa3c92b5cd5350f8fc693adafd178e7b"
-+"checksum notify 3.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "13fdd4a6894329b193f38f03a88823ce721275fdfdb29820c44a30515033524e"
-+"checksum num 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e"
-+"checksum num-bigint 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)" = "e63899ad0da84ce718c14936262a41cee2c79c981fc0a0e7c7beb47d5a07e8c1"
-+"checksum num-complex 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "b288631d7878aaf59442cffd36910ea604ecd7745c36054328595114001c9656"
-+"checksum num-integer 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "b85e541ef8255f6cf42bbfe4ef361305c6c135d10919ecc26126c4e5ae94bc09"
-+"checksum num-iter 0.1.39 (registry+https://github.com/rust-lang/crates.io-index)" = "76bd5272412d173d6bf9afdf98db8612bbabc9a7a830b7bfc9c188911716132e"
-+"checksum num-rational 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "ee314c74bd753fc86b4780aa9475da469155f3848473a261d2d18e35245a784e"
-+"checksum num-traits 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31"
-+"checksum num-traits 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c81ffc11c212fa327657cb19dd85eb7419e163b5b076bede2bdb5c974c07e4"
-+"checksum num_cpus 1.11.1 (registry+https://github.com/rust-lang/crates.io-index)" = "76dac5ed2a876980778b8b85f75a71b6cbf0db0b1232ee12f826bccb00d09d72"
-+"checksum ole32-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5d2c49021782e5233cd243168edfa8037574afed4eba4bbaf538b3d8d1789d8c"
-+"checksum openssl 0.10.26 (registry+https://github.com/rust-lang/crates.io-index)" = "3a3cc5799d98e1088141b8e01ff760112bbd9f19d850c124500566ca6901a585"
++"checksum new_debug_unreachable 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "f40f005c60db6e03bae699e414c58bf9aa7ea02a2d0b9bfbcf19286cc4c82b30"
++"checksum nodrop 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "2f9667ddcc6cc8a43afc9b7917599d7216aa09c463919ea32c59ed6cac8bc945"
++"checksum num-traits 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "6ba9a427cfca2be13aa6f6403b0b7e7368fe982bfa16fccc450ce74c46cd9b32"
++"checksum num_cpus 1.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bcef43580c035376c0705c42792c294b66974abbfd2789b511784023f71f3273"
++"checksum number_prefix 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "dbf9993e59c894e3c08aa1c2712914e9e6bf1fcbfc6bef283e2183df345a4fee"
++"checksum openssl 0.10.24 (registry+https://github.com/rust-lang/crates.io-index)" = "8152bb5a9b5b721538462336e3bef9a539f892715e5037fda0f984577311af15"
 +"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
-+"checksum openssl-sys 0.9.53 (registry+https://github.com/rust-lang/crates.io-index)" = "465d16ae7fc0e313318f7de5cecf57b2fbe7511fd213978b457e1c96ff46736f"
-+"checksum params 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "421e9f2c30e80365c9672709be664bfc84f73b088720d1cc1f4e99675814bb37"
++"checksum openssl-sys 0.9.48 (registry+https://github.com/rust-lang/crates.io-index)" = "b5ba300217253bcc5dc68bed23d782affa45000193866e025329aa8a7a9f05b8"
++"checksum os_type 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7edc011af0ae98b7f88cf7e4a83b70a54a75d2b8cb013d6efd02e5956207e9eb"
++"checksum owning_ref 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "49a4b8ea2179e6a2e27411d3bca09ca6dd630821cf6894c6c7c8467a8ee7ef13"
++"checksum parking_lot 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ab41b4aed082705d1056416ae4468b6ea99d52599ecf3169b00088d43113e337"
 +"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252"
++"checksum parking_lot_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94c8c7923936b28d546dfd14d4472eaf34c99b14e1c973a32b3e6d4eb04298c9"
 +"checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b"
-+"checksum parse-zoneinfo 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f4ee19a3656dadae35a33467f9714f1228dd34766dbe49e10e656b5296867aea"
 +"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831"
-+"checksum percent-encoding 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
-+"checksum persistent 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d4c9c94f2ef72dc272c6bcc8157ccf2bc7da14f4c58c69059ac2fc48492d6916"
-+"checksum pest 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0a6dda33d67c26f0aac90d324ab2eb7239c819fc7b2552fe9faa4fe88441edc8"
 +"checksum phf 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18"
 +"checksum phf_codegen 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e"
 +"checksum phf_generator 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662"
 +"checksum phf_shared 0.7.24 (registry+https://github.com/rust-lang/crates.io-index)" = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0"
-+"checksum pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)" = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
-+"checksum plugin 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "1a6a0dc3910bc8db877ffed8e457763b317cf880df4ae19109b9f77d277cf6e0"
-+"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
-+"checksum proc-macro2 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0319972dcae462681daf4da1adeeaa066e3ebd29c69be96c6abb1259d2ee2bcc"
-+"checksum publicsuffix 1.5.4 (registry+https://github.com/rust-lang/crates.io-index)" = "3bbaa49075179162b49acac1c6aa45fb4dafb5f13cf6794276d77bc7fd95757b"
-+"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-+"checksum quote 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e920b65c65f10b2ae65c831a81a073a89edd28c7cce89475bff467ab4167a"
-+"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
++"checksum pkg-config 0.3.15 (registry+https://github.com/rust-lang/crates.io-index)" = "a7c1d2cfa5a714db3b5f24f0915e74fcdf91d09d496ba61329705dda7774d2af"
++"checksum podio 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "780fb4b6698bbf9cf2444ea5d22411cef2953f0824b98f33cf454ec5615645bd"
++"checksum ppv-lite86 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e3cbf9f658cdb5000fcf6f362b8ea2ba154b9f146a61c7a20d647034c6b6561b"
++"checksum precomputed-hash 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
++"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759"
++"checksum publicsuffix 1.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5afecba86dcf1e4fd610246f89899d1924fe12e1e89f555eb7c7f710f3c5ad1d"
++"checksum quick-error 1.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9274b940887ce9addde99c4eee6b5c44cc494b182b97e73dc8ffdcb3397fd3f0"
++"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1"
 +"checksum rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)" = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c"
 +"checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
++"checksum rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9"
 +"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
-+"checksum rand 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "3ae1b169243eaf61759b8475a998f0a385e42042370f3a7dbaf35246eacc8412"
++"checksum rand 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d47eab0e83d9693d40f825f86948aa16eff6750ead4bdffc4ab95b8b3a7f052c"
 +"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef"
 +"checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
 +"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
-+"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
-+"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
++"checksum rand_core 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d0e7a549d590831370895ab7ba4ea0c1b6b011d106b5ff2da6eee112615e6dc0"
++"checksum rand_core 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "615e683324e75af5d43d8f7a39ffe3ee4a9dc42c5c701167a71dc59c3a493aca"
 +"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4"
 +"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
 +"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08"
@@ -2531,101 +2415,100 @@ index 0000000..17d0ae9
 +"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071"
 +"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44"
 +"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c"
++"checksum rayon 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a4b0186e22767d5b9738a05eab7c6ac90b15db17e5b5f9bd87976dd7d89a10a4"
++"checksum rayon-core 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ebbe0df8435ac0c397d467b6cad6d25543d06e8a019ef3f6af3c384597515bd2"
 +"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
 +"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
++"checksum redox_users 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3fe5204c3a17e97dde73f285d49be585df59ed84b50a872baf416e73b62c3828"
 +"checksum regex 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "9329abc99e39129fcceabd24cf5d85b4671ef7c29c50e972bc5afe32438ec384"
-+"checksum regex 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dc220bd33bdce8f093101afe22a037b8eb0e5af33592e6a9caafff0d4cb81cbd"
++"checksum regex 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "88c3d9193984285d544df4a30c23a4e62ead42edf70a4452ceb76dac1ce05c26"
 +"checksum regex-syntax 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7d707a4fa2637f2dca2ef9fd02225ec7661fe01a53623c1e6515b6916511f7a7"
-+"checksum regex-syntax 0.6.12 (registry+https://github.com/rust-lang/crates.io-index)" = "11a7e20d1cce64ef2fed88b66d347f88bd9babb82845b2b858f3edbf59a4f716"
++"checksum regex-syntax 0.6.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b143cceb2ca5e56d5671988ef8b15615733e7ee16cd348e064333b251b89343f"
 +"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
-+"checksum reqwest 0.9.24 (registry+https://github.com/rust-lang/crates.io-index)" = "f88643aea3c1343c804950d7bf983bd2067f5ab59db6d613a08e05572f2714ab"
-+"checksum route-recognizer 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "ea509065eb0b3c446acdd0102f0d46567dc30902dc0be91d6552035d92b0f4f8"
-+"checksum router 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b9b1797ff166029cb632237bb5542696e54961b4cf75a324c6f05c9cf0584e4e"
-+"checksum rust-gmp 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c3ddf28998d5730b96a9fe188557953de503d77ff403ae175ad1417921e5d906"
-+"checksum rustc-demangle 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
-+"checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
-+"checksum rustc_version 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "c5f5376ea5e30ce23c03eb77cbe4962b988deead10910c372b226388b594c084"
++"checksum reqwest 0.9.19 (registry+https://github.com/rust-lang/crates.io-index)" = "1d0777154c2c3eb54f5c480db01de845652d941e47191277cc673634c3853939"
++"checksum rle-decode-fast 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cabe4fa914dec5870285fa7f71f602645da47c486e68486d2b4ceb4a343e90ac"
++"checksum rustc-demangle 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "a7f4dccf6f4891ebcc0c39f9b6eb1a83b9bf5d747cb439ec6fba4f3b977038af"
 +"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-+"checksum ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8"
-+"checksum safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072"
-+"checksum same-file 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d931a44fdaa43b8637009e7632a02adc4f2b2e0733c08caa4cf00e8da4a117a7"
-+"checksum schannel 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "87f550b06b6cba9c8b8be3ee73f391990116bf527450d2556e9b9ce263b9a021"
++"checksum ryu 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c92464b447c0ee8c4fb3824ecc8383b81717b9f1e74ba2e72540aef7b9f82997"
++"checksum same-file 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "585e8ddcedc187886a30fa705c47985c3fa88d06624095856b36ca0b82ff4421"
++"checksum schannel 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "f2f6abf258d99c3c1c5c2131d99d064e94b7b3dd5f416483057f308fea253339"
++"checksum scoped_threadpool 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
++"checksum scopeguard 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "94258f53601af11e6a49f722422f6e3425c52b06245a5cf9bc09908b174f5e27"
 +"checksum scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d"
-+"checksum security-framework 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8ef2429d7cefe5fd28bd1d2ed41c944547d4ff84776f5935b456da44593a16df"
-+"checksum security-framework-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "e31493fc37615debb8c5090a7aeb4a9730bc61e77ab10b9af59f1a202284f895"
-+"checksum semver 0.1.20 (registry+https://github.com/rust-lang/crates.io-index)" = "d4f410fedcf71af0345d7607d246e7ad15faaadd49d240ee3b24e5dc21a820ac"
++"checksum security-framework 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "eee63d0f4a9ec776eeb30e220f0bc1e092c3ad744b2a379e3993070364d3adc2"
++"checksum security-framework-sys 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "9636f8989cbf61385ae4824b98c1aaa54c994d7d8b41f11c601ed799f0549a56"
++"checksum select 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ac645958c62108d11f90f8d34e4dc2799c838fc995ed4c2075867a2a8d5be76b"
 +"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
 +"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-+"checksum sequence_trie 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c915714ca833b1d4d6b8f6a9d72a3ff632fe45b40a8d184ef79c81bec6327eed"
-+"checksum serde 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)" = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8"
-+"checksum serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449"
-+"checksum serde_codegen 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)" = "a4c5d8a33087d8984f9535daa62a6498a08f6476050b00ab9339dd847e4c25cc"
-+"checksum serde_codegen_internals 0.11.3 (registry+https://github.com/rust-lang/crates.io-index)" = "afad7924a009f859f380e4a2e3a509a845c2ac66435fcead74a4d983b21ae806"
-+"checksum serde_derive 0.8.23 (registry+https://github.com/rust-lang/crates.io-index)" = "ce44e5f4264b39e9d29c875357b7cc3ebdfb967bb9e22bfb5e44ffa400af5306"
-+"checksum serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "128f9e303a5a29922045a830221b8f78ec74a5f544944f3d5984f8ec3895ef64"
-+"checksum serde_json 0.8.6 (registry+https://github.com/rust-lang/crates.io-index)" = "67f7d2e9edc3523a9c8ec8cd6ec481b3a27810aafee3e625d311febd3e656b4c"
-+"checksum serde_json 1.0.44 (registry+https://github.com/rust-lang/crates.io-index)" = "48c575e0cc52bdd09b47f330f646cf59afc586e9c4e3ccd6fc1f625b8ea1dad7"
++"checksum serde 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)" = "7fe5626ac617da2f2d9c48af5515a21d5a480dbd151e01bb1c355e26a3e68113"
++"checksum serde_derive 1.0.98 (registry+https://github.com/rust-lang/crates.io-index)" = "01e69e1b8a631f245467ee275b8c757b818653c6d704cdbcaeb56b56767b529c"
++"checksum serde_json 1.0.40 (registry+https://github.com/rust-lang/crates.io-index)" = "051c49229f282f7c6f3813f8286cc1e3323e8051823fce42c7ea80fe13521704"
 +"checksum serde_urlencoded 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "642dd69105886af2efd227f75a520ec9b44a820d65bc133a9131f7d229fd165a"
-+"checksum shell32-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9ee04b46101f57121c9da2b151988283b6beb79b34f5bb29a58ee48cb695122c"
 +"checksum siphasher 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
-+"checksum slab 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d807fd58c4181bbabed77cb3b891ba9748241a552bcc5be698faaebefc54f46e"
 +"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
-+"checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6"
-+"checksum smallvec 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "44e59e0c9fa00817912ae6e4e6e3c4fe04455e75699d06eedc7d85917ed8e8f4"
-+"checksum staticfile 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "31493480e073d52522a94cdf56269dd8eb05f99549effd1826b0271690608878"
++"checksum smallvec 0.6.10 (registry+https://github.com/rust-lang/crates.io-index)" = "ab606a9c5e214920bb66c458cd7be8ef094f813f20fe77a54cc7dbfff220d4b7"
++"checksum socket2 0.3.10 (registry+https://github.com/rust-lang/crates.io-index)" = "df028e0e632c2a1823d920ad74895e7f9128e6438cbc4bc6fd1f180e644767b9"
++"checksum stable_deref_trait 1.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "dba1a27d3efae4351c8051072d619e3ade2820635c3958d826bfea39d59b54c8"
 +"checksum string 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d24114bfcceb867ca7f71a0d3fe45d45619ec47a6fbfa98cb14e14250bfa5d6d"
-+"checksum strsim 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "67f84c44fbb2f91db7fef94554e6b2ac05909c9c0b0bc23bb98d3a1aebfe7f7c"
-+"checksum syn 0.10.8 (registry+https://github.com/rust-lang/crates.io-index)" = "58fd09df59565db3399efbba34ba8a2fec1307511ebd245d0061ff9d42691673"
-+"checksum syn 1.0.13 (registry+https://github.com/rust-lang/crates.io-index)" = "1e4ff033220a41d1a57d8125eab57bf5263783dfdcc18688b1dacc6ce9651ef8"
-+"checksum synstructure 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "67656ea1dc1b41b1451851562ea232ec2e5a80242139f7e679ceccfb5d61f545"
++"checksum string_cache 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "25d70109977172b127fe834e5449e5ab1740b9ba49fa18a2020f509174f25423"
++"checksum string_cache_codegen 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1eea1eee654ef80933142157fdad9dd8bc43cf7c74e999e369263496f04ff4da"
++"checksum string_cache_shared 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc"
++"checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
++"checksum structopt 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "16c2cdbf9cc375f15d1b4141bc48aeef444806655cd0e904207edc8d68d86ed7"
++"checksum structopt-derive 0.2.18 (registry+https://github.com/rust-lang/crates.io-index)" = "53010261a84b37689f9ed7d395165029f9cc7abb9f56bbfe86bee2597ed25107"
++"checksum syn 0.15.42 (registry+https://github.com/rust-lang/crates.io-index)" = "eadc09306ca51a40555dd6fc2b415538e9e18bc9f870e47b1a524a79fe2dcf5e"
++"checksum synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f"
++"checksum take_mut 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f764005d11ee5f36500a149ace24e00e3da98b0158b3e2d53a7495660d3f4d60"
 +"checksum tempdir 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "15f2b5fb00ccdf689e0149d1b1b3c03fead81c2b37735d812fa8bddbbf41b6d8"
++"checksum tempfile 2.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "11ce2fe9db64b842314052e2421ac61a73ce41b898dc8e3750398b219c5fc1e0"
 +"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
++"checksum tendril 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "707feda9f2582d5d680d733e38755547a3e8fb471e7ba11452ecfd9ce93a5d3b"
++"checksum termcolor 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "adc4587ead41bf016f11af03e55a624c06568b5a19db4e90fde573d805074f83"
++"checksum termcolor 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "96d6098003bde162e4277c70665bd87c326f5a0c3f3fbfb285787fa482d54e6e"
++"checksum termios 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "72b620c5ea021d75a735c943269bb07d30c9b77d6ac6b236bc8b5c496ef05625"
++"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
 +"checksum thread_local 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c6b53e329000edc2b34dbe8545fd20e55a333362d0a321909685a19bd28c3f1b"
 +"checksum time 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "db8dcfca086c1143c9270ac42a2bbd8a7ee477b78ac8e45b19abfb0cbede4b6f"
 +"checksum tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6"
 +"checksum tokio-buf 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8fb220f46c53859a4b7ec083e41dec9778ff0b1851c0942b211edb89e0ccdc46"
 +"checksum tokio-current-thread 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "d16217cad7f1b840c5a97dfb3c43b0c871fef423a6e8d2118c604e843662a443"
-+"checksum tokio-executor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "ca6df436c42b0c3330a82d855d2ef017cd793090ad550a6bc2184f4b933532ab"
++"checksum tokio-executor 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "0f27ee0e6db01c5f0b2973824547ce7e637b2ed79b891a9677b0de9bd532b6ac"
 +"checksum tokio-io 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "5090db468dad16e1a7a54c8c67280c5e4b544f3d3e018f0b913b400261f85926"
-+"checksum tokio-reactor 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "6732fe6b53c8d11178dcb77ac6d9682af27fc6d4cb87789449152e5377377146"
-+"checksum tokio-sync 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "d06554cce1ae4a50f42fba8023918afa931413aded705b560e29600ccf7c6d76"
++"checksum tokio-reactor 0.1.9 (registry+https://github.com/rust-lang/crates.io-index)" = "6af16bfac7e112bea8b0442542161bfc41cbfa4466b580bdda7d18cb88b911ce"
++"checksum tokio-sync 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "2162248ff317e2bc713b261f242b69dbb838b85248ed20bb21df56d60ea4cae7"
 +"checksum tokio-tcp 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1d14b10654be682ac43efee27401d792507e30fd8d26389e1da3b185de2e4119"
-+"checksum tokio-threadpool 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "f0c32ffea4827978e9aa392d2f743d973c1dfa3730a2ed3f22ce1e6984da848c"
-+"checksum tokio-timer 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "1739638e364e558128461fc1ad84d997702c8e31c2e6b18fb99842268199e827"
-+"checksum toml 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "736b60249cb25337bc196faa43ee12c705e426f3d55c214d73a4e7be06f92cb4"
-+"checksum traitobject 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079"
++"checksum tokio-threadpool 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "90ca01319dea1e376a001e8dc192d42ebde6dd532532a5bad988ac37db365b19"
++"checksum tokio-timer 0.2.11 (registry+https://github.com/rust-lang/crates.io-index)" = "f2106812d500ed25a4f38235b9cae8f78a09edf43203e16e59c3b769a342a60e"
++"checksum toml 0.4.10 (registry+https://github.com/rust-lang/crates.io-index)" = "758664fc71a3a69038656bee8b6be6477d2a6c315a6b81f7081f591bffa4111f"
 +"checksum try-lock 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e604eb7b43c06650e854be16a2a03155743d3752dd1c943f6829e26b7a36e382"
 +"checksum try_from 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "283d3b89e1368717881a9d51dad843cc435380d8109c9e47d38780a324698d8b"
-+"checksum typeable 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1410f6f91f21d1612654e7cc69193b0334f909dcf2c790c4826254fbb86f8887"
-+"checksum typemap 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "653be63c80a3296da5551e1bfd2cca35227e13cdd08c6668903ae2f4f77aa1f6"
 +"checksum ucd-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa9b3b49edd3468c0e6565d85783f51af95212b6fa3986a5500954f00b460874"
 +"checksum unicase 1.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7f4765f83163b74f957c797ad9253caf97f103fb064d3999aea9568d09fc8a33"
-+"checksum unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6"
++"checksum unicase 2.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a84e5511b2a947f3ae965dcb29b13b7b1691b6e7332cf5dbc1744138d5acb7f6"
 +"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
-+"checksum unicode-normalization 0.1.11 (registry+https://github.com/rust-lang/crates.io-index)" = "b561e267b2326bb4cebfc0ef9e68355c7abe6c6f522aeac2f5bf95d56c59bdcf"
-+"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
-+"checksum unicode-xid 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f860d7d29cf02cb2f3f359fd35991af3d30bac52c57d265a3c461074cb4dc"
-+"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
-+"checksum unsafe-any 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f30360d7979f5e9c6e6cea48af192ea8fab4afb3cf72597154b8f08935bc9c7f"
++"checksum unicode-normalization 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "141339a08b982d942be2ca06ff8b076563cbe223d1befd5450716790d44e2426"
++"checksum unicode-segmentation 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1967f4cdfc355b37fd76d2a954fb2ed3871034eb4f26d60537d88795cfc332a9"
++"checksum unicode-width 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "882386231c45df4700b275c7ff55b6f3698780a650026380e72dabe76fa46526"
++"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc"
 +"checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a"
-+"checksum url 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "75b414f6c464c879d7f9babf951f23bc3743fb7313c081b2e6ca719067ea9d61"
-+"checksum urlencoded 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8c28708636d6f7298a53b1cdb6af40f1ab523209a7cb83cf4d41b3ebc671d319"
++"checksum user_agent 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "970a778e2284bd68e55ca4e93b858da333cd85c3d5d8b4eab2c6e729cd6f47c4"
++"checksum utf-8 0.7.5 (registry+https://github.com/rust-lang/crates.io-index)" = "05e42f7c18b8f902290b009cde6d651262f956c98bc51bca4cd1d511c9cd85c7"
 +"checksum utf8-ranges 1.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b4ae116fef2b7fea257ed6440d3cfcff7f190865f170cdad00bb6465bf18ecba"
-+"checksum uuid 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1a9ff57156caf7e22f37baf3c9d8f6ce8194842c23419dafcb0716024514d162"
++"checksum uuid 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "e1436e58182935dcd9ce0add9ea0b558e8a87befe01c1a301e6020aeb0876363"
 +"checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a"
-+"checksum vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168"
++"checksum vcpkg 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "33dd455d0f96e90a75803cfeb7f948768c08d70a6de9a8d2362461935698bf95"
++"checksum vec_map 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
 +"checksum version_check 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "914b1a6776c4c929a602fafd8bc742e06365d4bcbe48c30f9cca5824f70dc9dd"
-+"checksum version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce"
-+"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d"
-+"checksum walkdir 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "c66c0b9792f0a765345452775f3adbd28dde9d33f30d13e5dcc5ae17cf6f3780"
-+"checksum walkdir 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "bb08f9e670fab86099470b97cd2b252d6527f0b3cc1401acdb595ffc9dd288ff"
++"checksum walkdir 2.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9658c94fa8b940eab2250bd5a457f9c48b748420d71293b165c8cdbe2f55f71e"
 +"checksum want 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b6395efa4784b027708f7451087e647ec73cc74f5d9bc2e418404248d679a230"
-+"checksum wasi 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b89c3ce4ce14bdc6fb6beaf9ec7928ca331de5df7e5ea278375642a2f478570d"
 +"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a"
-+"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
++"checksum winapi 0.3.7 (registry+https://github.com/rust-lang/crates.io-index)" = "f10e386af2b13e47c89e7236a7a14a086791a2b88ebad6df9bf42040195cf770"
 +"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc"
 +"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
++"checksum winapi-util 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7168bab6e1daee33b4557efd0e95d5ca70a03706d39fa5f3fe7a236f584b03c9"
 +"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++"checksum wincolor 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eeb06499a3a4d44302791052df005d5232b927ed1a9658146d842165c4de7767"
++"checksum wincolor 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "561ed901ae465d6185fa7864d63fbd5720d0ef718366c9a4dc83cf6170d7e9ba"
 +"checksum winreg 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b2986deb581c4fe11b621998a5e53361efe6b48a151178d0cd9eeffa4dc6acc9"
 +"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e"
-+"checksum xml-rs 0.3.6 (registry+https://github.com/rust-lang/crates.io-index)" = "7ec6c39eaa68382c8e31e35239402c0a9489d4141a8ceb0c716099a0b515b562"
++"checksum zip 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c18fc320faf909036e46ac785ea827f72e485304877faf1a3a39538d3714dbc3"
diff --git a/nixpkgs/pkgs/games/wyvern/default.nix b/nixpkgs/pkgs/games/wyvern/default.nix
new file mode 100644
index 000000000000..4723a6c52fa7
--- /dev/null
+++ b/nixpkgs/pkgs/games/wyvern/default.nix
@@ -0,0 +1,36 @@
+{ stdenv
+, fetchgit
+, rustPlatform
+, unzip
+, rsync
+, innoextract
+, curl
+, cmake
+, pkgconfig
+, openssl
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "wyvern";
+  version = "1.4.1";
+
+  src = fetchgit {
+    url = "https://git.sr.ht/~nicohman/wyvern";
+    rev = "${version}";
+    sha256 = "1sl3yhash1527amc8rs4374fd7jbgnkyy7qpw94ms2gs80sdv3s5";
+  };
+  cargoPatches = [ ./cargo-lock.patch ];
+
+  cargoSha256 = "sha256:1nd5qla3p1jrssg5fqal8m3jcbxax0wsfc8cp97jdrpqlcgqfmrx";
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+  buildInputs = [ openssl ];
+
+  meta = with stdenv.lib; {
+    description = "A simple CLI client for installing and maintaining linux GOG games";
+    homepage = "https://git.sr.ht/~nicohman/wyvern";
+    license = licenses.gpl3;
+    maintainers = with maintainers;[ _0x4A6F ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/games/xcowsay/default.nix b/nixpkgs/pkgs/games/xcowsay/default.nix
new file mode 100644
index 000000000000..dd95bf1e5a16
--- /dev/null
+++ b/nixpkgs/pkgs/games/xcowsay/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchurl, makeWrapper, pkg-config
+, dbus, dbus-glib, gtk3, gdk-pixbuf, librsvg
+, fortune
+}:
+
+stdenv.mkDerivation rec {
+  pname = "xcowsay";
+  version = "1.5";
+
+  src = fetchurl {
+    url = "http://www.nickg.me.uk/files/xcowsay-${version}.tar.gz";
+    sha256 = "0pyaa062z1ag26dhkm1yzp2hivnlmhlpqn5xg7mx9r1m652mm91y";
+  };
+
+  buildInputs = [
+    dbus
+    dbus-glib
+    gtk3
+    gdk-pixbuf # loading cow images
+    librsvg # dreaming SVG images
+  ];
+  nativeBuildInputs = [ makeWrapper pkg-config ];
+
+  configureFlags = [ "--enable-dbus" ];
+
+  postInstall = ''
+    for tool in xcowdream xcowsay xcowthink xcowfortune; do
+      wrapProgram $out/bin/$tool \
+        --prefix PATH : $out/bin:${fortune}/bin
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "http://www.doof.me.uk/xcowsay";
+    description =
+      "A program based on cowsay that displays a cute cow and message on your desktop";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ das_j ];
+  };
+}
diff --git a/nixpkgs/pkgs/games/zandronum/default.nix b/nixpkgs/pkgs/games/zandronum/default.nix
index e7200ff22e95..bdafff992434 100644
--- a/nixpkgs/pkgs/games/zandronum/default.nix
+++ b/nixpkgs/pkgs/games/zandronum/default.nix
@@ -14,7 +14,7 @@ in stdenv.mkDerivation rec {
   version = "3.0.1";
 
   src = fetchhg {
-    url = "https://bitbucket.org/Torr_Samaho/zandronum-stable";
+    url = "https://hg.osdn.net/view/zandronum/zandronum-stable";
     rev = "ZA_${version}";
     sha256 = "16v5b6wfrmabs3ky6isbfhlrqdjrr1pvfxlxwk0im02kcpxxw9qw";
   };
diff --git a/nixpkgs/pkgs/misc/autotiling/default.nix b/nixpkgs/pkgs/misc/autotiling/default.nix
new file mode 100644
index 000000000000..b104f359363b
--- /dev/null
+++ b/nixpkgs/pkgs/misc/autotiling/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonApplication, fetchPypi, i3ipc, importlib-metadata }:
+
+buildPythonApplication rec {
+  pname = "autotiling";
+  version = "1.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0hwvy9bxwv9fakqqiyrkmpckxgm0z85c240p84ibdhja9sm086v0";
+  };
+
+  propagatedBuildInputs = [ i3ipc importlib-metadata ];
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://github.com/nwg-piotr/autotiling";
+    description = "Script for sway and i3 to automatically switch the horizontal / vertical window split orientation";
+    license = licenses.gpl3Plus;
+    platforms= platforms.linux;
+    maintainers = with maintainers; [ artturin ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/misc/cbeams/default.nix b/nixpkgs/pkgs/misc/cbeams/default.nix
index ec045ebf3efd..928b03df09f7 100644
--- a/nixpkgs/pkgs/misc/cbeams/default.nix
+++ b/nixpkgs/pkgs/misc/cbeams/default.nix
@@ -16,6 +16,6 @@ buildPythonApplication rec {
     homepage = "https://github.com/tartley/cbeams";
     description = "Command-line program to draw animated colored circles in the terminal";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/nixpkgs/pkgs/misc/cups/drivers/cups-bjnp/default.nix b/nixpkgs/pkgs/misc/cups/drivers/cups-bjnp/default.nix
index e9fac1c73e2f..9dbfdd8b8030 100644
--- a/nixpkgs/pkgs/misc/cups/drivers/cups-bjnp/default.nix
+++ b/nixpkgs/pkgs/misc/cups/drivers/cups-bjnp/default.nix
@@ -11,7 +11,11 @@ stdenv.mkDerivation rec {
   preConfigure = ''configureFlags="--with-cupsbackenddir=$out/lib/cups/backend"'';
 
   buildInputs = [cups];
-  NIX_CFLAGS_COMPILE = [ "-include stdio.h" "-Wno-error=stringop-truncation" ];
+  NIX_CFLAGS_COMPILE = [
+    "-include stdio.h"
+    "-Wno-error=stringop-truncation"
+    "-Wno-error=deprecated-declarations"
+  ];
 
   meta = {
     description = "CUPS back-end for Canon printers";
diff --git a/nixpkgs/pkgs/misc/cups/drivers/hl1210w/default.nix b/nixpkgs/pkgs/misc/cups/drivers/hl1210w/default.nix
new file mode 100644
index 000000000000..88947ed33394
--- /dev/null
+++ b/nixpkgs/pkgs/misc/cups/drivers/hl1210w/default.nix
@@ -0,0 +1,62 @@
+{stdenv, pkgsi686Linux, fetchurl, cups, dpkg, gnused, makeWrapper, ghostscript, file, a2ps, coreutils, gawk}:
+
+let
+  version = "3.0.1-1";
+  cupsdeb = fetchurl {
+    url = "https://download.brother.com/welcome/dlf101546/hl1210wcupswrapper-${version}.i386.deb";
+    sha256 = "0395mnw6c7qpjgjch9in5q9p2fjdqvz9bwfwp6q1hzhs08ryk7w0";
+  };
+  lprdeb = fetchurl {
+    url = "https://download.brother.com/welcome/dlf101547/hl1210wlpr-${version}.i386.deb";
+    sha256 = "1sl3g2cd4a2gygryrr27ax3qaa65cbirz3kzskd8afkwqpmjyv7j";
+  };
+in
+stdenv.mkDerivation {
+  name = "cups-brother-hl1210W";
+
+  srcs = [ lprdeb cupsdeb ];
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ cups ghostscript dpkg a2ps ];
+  dontUnpack = true;
+
+  installPhase = ''
+    # install lpr
+    dpkg-deb -x ${lprdeb} $out
+
+    substituteInPlace $out/opt/brother/Printers/HL1210W/lpd/filter_HL1210W \
+      --replace /opt "$out/opt"
+
+    sed -i '/GHOST_SCRIPT=/c\GHOST_SCRIPT=gs' $out/opt/brother/Printers/HL1210W/lpd/psconvert2
+
+    patchelf --set-interpreter ${pkgsi686Linux.glibc.out}/lib/ld-linux.so.2 $out/opt/brother/Printers/HL1210W/lpd/brprintconflsr3
+    patchelf --set-interpreter ${pkgsi686Linux.glibc.out}/lib/ld-linux.so.2 $out/opt/brother/Printers/HL1210W/lpd/rawtobr3
+    patchelf --set-interpreter ${pkgsi686Linux.glibc.out}/lib/ld-linux.so.2 $out/opt/brother/Printers/HL1210W/inf/braddprinter
+
+    wrapProgram $out/opt/brother/Printers/HL1210W/lpd/psconvert2 \
+      --prefix PATH ":" ${ stdenv.lib.makeBinPath [ gnused coreutils gawk ] }
+    wrapProgram $out/opt/brother/Printers/HL1210W/lpd/filter_HL1210W \
+      --prefix PATH ":" ${ stdenv.lib.makeBinPath [ ghostscript a2ps file gnused coreutils ] }
+
+    # install cups
+    dpkg-deb -x ${cupsdeb} $out
+
+    substituteInPlace $out/opt/brother/Printers/HL1210W/cupswrapper/brother_lpdwrapper_HL1210W --replace /opt "$out/opt"
+
+    mkdir -p $out/lib/cups/filter
+    ln -s $out/opt/brother/Printers/HL1210W/cupswrapper/brother_lpdwrapper_HL1210W $out/lib/cups/filter/brother_lpdwrapper_HL1210W
+    ln -s $out/opt/brother/Printers/HL1210W/cupswrapper/brother-HL1210W-cups-en.ppd $out/lib/cups/filter/brother-HL1210W-cups-en.ppd
+    # cp brcupsconfig4 $out/opt/brother/Printers/HL1110/cupswrapper/
+    ln -s $out/opt/brother/Printers/HL1210W/cupswrapper/brcupsconfig4 $out/lib/cups/filter/brcupsconfig4
+
+    wrapProgram $out/opt/brother/Printers/HL1210W/cupswrapper/brother_lpdwrapper_HL1210W \
+      --prefix PATH ":" ${ stdenv.lib.makeBinPath [ gnused coreutils gawk ] }
+    '';
+
+  meta = {
+    homepage = "http://www.brother.com/";
+    description = "Brother HL1210W printer driver";
+    license = stdenv.lib.licenses.unfree;
+    platforms = stdenv.lib.platforms.linux;
+    downloadPage = "https://support.brother.com/g/b/downloadlist.aspx?c=nz&lang=en&prod=hl1210w_eu_as&os=128";
+  };
+}
diff --git a/nixpkgs/pkgs/misc/drivers/epkowa/default.nix b/nixpkgs/pkgs/misc/drivers/epkowa/default.nix
index 9724e68a04df..6016cc779f19 100644
--- a/nixpkgs/pkgs/misc/drivers/epkowa/default.nix
+++ b/nixpkgs/pkgs/misc/drivers/epkowa/default.nix
@@ -39,7 +39,7 @@ let plugins = {
         "https://download2.ebz.epson.net/iscan/plugin/perfection-v330/rpm/x64/iscan-perfection-v330-bundle-${version}.x64.rpm.tar.gz"
         "https://web.archive.org/web/https://download2.ebz.epson.net/iscan/plugin/perfection-v330/rpm/x64/iscan-perfection-v330-bundle-${version}.x64.rpm.tar.gz"
       ];
-      sha256 = "16iq5gmfcgkvcx5hixggxgb8lwin5gjdhnq0zabgpfqg11n2w21q";
+      sha256 = "056c04pfsf98nnknphg28l489isqb6y4l2c8g7wqhclwgj7m338i";
     };
 
     nativeBuildInputs = [ autoPatchelfHook rpm ];
@@ -69,7 +69,7 @@ let plugins = {
         "https://download2.ebz.epson.net/iscan/plugin/gt-x770/rpm/x64/iscan-gt-x770-bundle-${version}.x64.rpm.tar.gz"
         "https://web.archive.org/web/https://download2.ebz.epson.net/iscan/plugin/gt-x770/rpm/x64/iscan-gt-x770-bundle-${version}.x64.rpm.tar.gz"
       ];
-      sha256 = "1cz4z3wz216s77z185m665jcgdslil5gn4dsi118nv1fm17z3jik";
+      sha256 = "1chxdm6smv2d14pn2jl9xyd0vr42diy7vpskd3b9a61gf5h3gj03";
     };
     installPhase = ''
       cd plugins
@@ -99,7 +99,7 @@ let plugins = {
         "https://download2.ebz.epson.net/iscan/plugin/gt-f720/rpm/x64/iscan-gt-f720-bundle-${version}.x64.rpm.tar.gz"
         "https://web.archive.org/web/https://download2.ebz.epson.net/iscan/plugin/gt-f720/rpm/x64/iscan-gt-f720-bundle-${version}.x64.rpm.tar.gz"
       ];
-      sha256 = "12rivh00n9mhagy5yjl1m0bv7ypbig6brqkxm0a12xy0mjq7yv8y";
+      sha256 = "1xnbmb2rn610kqpg1x6k1cc13zlmx2f3l2xnj6809rnhg96qqn20";
     };
     installPhase = ''
       cd plugins
@@ -129,7 +129,7 @@ let plugins = {
         "https://download2.ebz.epson.net/iscan/plugin/gt-s80/rpm/x64/iscan-gt-s80-bundle-${version}.x64.rpm.tar.gz"
         "https://web.archive.org/web/https://download2.ebz.epson.net/iscan/plugin/gt-s80/rpm/x64/iscan-gt-s80-bundle-${version}.x64.rpm.tar.gz"
       ];
-      sha256 = "1ran75zsxcdci00jakngkz6p9lj4q483hjapmf80p68rzhpmdr5y";
+      sha256 = "00qfdgs03k7bbs67zjrk8hbxvlyinsmk890amp9cmpfjfzdxgg58";
     };
     installPhase = ''
       cd plugins
@@ -162,7 +162,7 @@ let plugins = {
         "https://download2.ebz.epson.net/iscan/plugin/gt-s650/rpm/x64/iscan-gt-s650-bundle-${version}.x64.rpm.tar.gz"
         "https://web.archive.org/web/https://download2.ebz.epson.net/iscan/plugin/gt-s650/rpm/x64/iscan-gt-s650-bundle-${version}.x64.rpm.tar.gz"
       ];
-      sha256 = "1ffddf488c5fc1eb39452499951bd13a2dc1971980c0551176076c81af363038";
+      sha256 = "0fn4lz4g0a8l301v6yv7fwl37wgwhz5y90nf681f655xxc91hqh7";
     };
 
     nativeBuildInputs = [ autoPatchelfHook rpm ];
@@ -199,7 +199,7 @@ let plugins = {
         "https://download2.ebz.epson.net/iscan/general/rpm/x64/iscan-bundle-${version}.x64.rpm.tar.gz"
         "https://web.archive.org/web/https://download2.ebz.epson.net/iscan/general/rpm/x64/iscan-bundle-${version}.x64.rpm.tar.gz"
       ];
-      sha256 = "1l0y4dy88y91jdq66pxrxqmiwsxwy0rd7x4bh0cw08r4iyhjqprz";
+      sha256 = "0jssigsgkxb9i7qa7db291a1gbvwl795i4ahvb7bnqp33czkj85k";
     };
     installPhase = ''
       cd plugins
diff --git a/nixpkgs/pkgs/misc/drivers/epson-escpr2/default.nix b/nixpkgs/pkgs/misc/drivers/epson-escpr2/default.nix
index 94b840776207..040ac00085e3 100644
--- a/nixpkgs/pkgs/misc/drivers/epson-escpr2/default.nix
+++ b/nixpkgs/pkgs/misc/drivers/epson-escpr2/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "epson-inkjet-printer-escpr2";
-  version = "1.1.12";
+  version = "1.1.17";
 
   src = fetchurl {
     # To find new versions, visit
@@ -10,11 +10,11 @@ stdenv.mkDerivation rec {
     # some printer like for instance "WF-7210" to get to the most recent
     # version.  
     # NOTE: Don't forget to update the webarchive link too!
-    urls = [ 
-      "https://download3.ebz.epson.net/dsc/f/03/00/11/12/33/f7e44f924a4f479e4c74f8f587e07c57de3abd85/epson-inkjet-printer-escpr2-1.1.12-1lsb3.2.src.rpm"
-      "https://web.archive.org/web/20200523220202if_/https://download3.ebz.epson.net/dsc/f/03/00/11/12/33/f7e44f924a4f479e4c74f8f587e07c57de3abd85/epson-inkjet-printer-escpr2-1.1.12-1lsb3.2.src.rpm"
+    urls = [
+      "https://download3.ebz.epson.net/dsc/f/03/00/11/79/08/18185180910529f498f629f5fc08d3d479cdf5c3/epson-inkjet-printer-escpr2-1.1.17-1lsb3.2.src.rpm"
+      "https://web.archive.org/web/20200726093746if_/https://download3.ebz.epson.net/dsc/f/03/00/11/79/08/18185180910529f498f629f5fc08d3d479cdf5c3/epson-inkjet-printer-escpr2-1.1.17-1lsb3.2.src.rpm"
     ];
-    sha256 = "07sq5xlmidqiycv0qwvpk2xf22vbkbk4fclnjlnx7s08d2jl75kv";
+    sha256 = "0bqqc04z9gayas5p7410la5nad7waykqyw1z1imcqimfl4qrz1m6";
   };
 
   patches = [ ./cups-filter-ppd-dirs.patch ];
diff --git a/nixpkgs/pkgs/misc/drivers/hplip/default.nix b/nixpkgs/pkgs/misc/drivers/hplip/default.nix
index 98ced28b8773..afd1f8f6fe4f 100644
--- a/nixpkgs/pkgs/misc/drivers/hplip/default.nix
+++ b/nixpkgs/pkgs/misc/drivers/hplip/default.nix
@@ -230,7 +230,7 @@ python3Packages.buildPythonApplication {
 
   # There are some binaries there, which reference gcc-unwrapped otherwise.
   stripDebugList = [
-    "share/hplip" "lib/cups/backend" "lib/cups/filter" "lib/python3.7/site-packages" "lib/sane"
+    "share/hplip" "lib/cups/backend" "lib/cups/filter" python3Packages.python.sitePackages "lib/sane"
   ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/misc/drivers/sc-controller/default.nix b/nixpkgs/pkgs/misc/drivers/sc-controller/default.nix
index 4de6e54cd5fb..29264b4f61d3 100644
--- a/nixpkgs/pkgs/misc/drivers/sc-controller/default.nix
+++ b/nixpkgs/pkgs/misc/drivers/sc-controller/default.nix
@@ -34,9 +34,6 @@ buildPythonApplication rec {
 
   preFixup = ''
     gappsWrapperArgs+=(--prefix LD_LIBRARY_PATH : "$LD_LIBRARY_PATH")
-    # gdk-pixbuf setup hook can not choose between propagated librsvg
-    # and our librsvg with GObject introspection.
-    GDK_PIXBUF_MODULE_FILE=$(echo ${librsvg}/lib/gdk-pixbuf-2.0/*/loaders.cache)
   '';
 
   postFixup = ''
diff --git a/nixpkgs/pkgs/misc/drivers/xboxdrv/default.nix b/nixpkgs/pkgs/misc/drivers/xboxdrv/default.nix
index eb0511b0c4ec..f7fd59fd9fd1 100644
--- a/nixpkgs/pkgs/misc/drivers/xboxdrv/default.nix
+++ b/nixpkgs/pkgs/misc/drivers/xboxdrv/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, scons, libX11, pkgconfig
+{ stdenv, fetchurl, sconsPackages, libX11, pkgconfig
 , libusb1, boost, glib, dbus-glib }:
 
 let
@@ -13,7 +13,7 @@ in stdenv.mkDerivation {
   };
 
   makeFlags = [ "PREFIX=$(out)" ];
-  nativeBuildInputs = [ pkgconfig scons.py2 ];
+  nativeBuildInputs = [ pkgconfig sconsPackages.scons_3_1_2 ];
   buildInputs = [ libX11 libusb1 boost glib dbus-glib ];
   dontUseSconsInstall = true;
 
diff --git a/nixpkgs/pkgs/misc/drivers/xow/default.nix b/nixpkgs/pkgs/misc/drivers/xow/default.nix
index 8702c480457d..785f7f396e9d 100644
--- a/nixpkgs/pkgs/misc/drivers/xow/default.nix
+++ b/nixpkgs/pkgs/misc/drivers/xow/default.nix
@@ -1,14 +1,19 @@
-{ stdenv, fetchFromGitHub, libusb1 }:
+{ stdenv, cabextract, fetchurl, fetchFromGitHub, libusb1 }:
 
 stdenv.mkDerivation rec {
   pname = "xow";
-  version = "0.4";
+  version = "0.5";
 
   src = fetchFromGitHub {
     owner = "medusalix";
     repo = "xow";
     rev = "v${version}";
-    sha256 = "1xkwcx2gqip9v2h3zjmrn7sgcck3midl5alhsmr3zivgdipamynv";
+    sha256 = "071r2kx44k1sc49cad3i607xg618mf34ki1ykr5lnfx9y6qyz075";
+  };
+
+  firmware = fetchurl {
+    url = "http://download.windowsupdate.com/c/msdownload/update/driver/drvs/2017/07/1cd6a87c-623f-4407-a52d-c31be49e925c_e19f60808bdcbfbd3c3df6be3e71ffc52e43261e.cab";
+    sha256 = "013g1zngxffavqrk5jy934q3bdhsv6z05ilfixdn8dj0zy26lwv5";
   };
 
   makeFlags = [
@@ -20,7 +25,14 @@ stdenv.mkDerivation rec {
     "MODPDIR=${placeholder ''out''}/lib/modprobe.d"
     "SYSDDIR=${placeholder ''out''}/lib/systemd/system"
   ];
+
+  postUnpack = ''
+    cabextract -F FW_ACC_00U.bin ${firmware}
+    mv FW_ACC_00U.bin source/firmware.bin
+  '';
+
   enableParallelBuilding = true;
+  nativeBuildInputs = [ cabextract ];
   buildInputs = [ libusb1 ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/misc/emulators/ccemux/default.nix b/nixpkgs/pkgs/misc/emulators/ccemux/default.nix
index fc5d4c813882..2313a63dc698 100644
--- a/nixpkgs/pkgs/misc/emulators/ccemux/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/ccemux/default.nix
@@ -29,7 +29,7 @@ let
     comment = "A modular ComputerCraft emulator";
     desktopName = "CCEmuX";
     genericName = "ComputerCraft Emulator";
-    categories = "Application;Emulator;";
+    categories = "Emulator;";
   };
 in
 
diff --git a/nixpkgs/pkgs/misc/emulators/dosbox/default.nix b/nixpkgs/pkgs/misc/emulators/dosbox/default.nix
index b70f0e058c07..160c8733ff5c 100644
--- a/nixpkgs/pkgs/misc/emulators/dosbox/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/dosbox/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
     comment = "x86 emulator with internal DOS";
     desktopName = "DOSBox";
     genericName = "DOS emulator";
-    categories = "Application;Emulator;";
+    categories = "Emulator;";
   };
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/misc/emulators/emu2/default.nix b/nixpkgs/pkgs/misc/emulators/emu2/default.nix
new file mode 100644
index 000000000000..fb13b602b6a6
--- /dev/null
+++ b/nixpkgs/pkgs/misc/emulators/emu2/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "emu2";
+  version = "unstable-2020-06-04";
+
+  src = fetchFromGitHub {
+    owner  = "dmsc";
+    repo   = "emu2";
+    rev    = "f9599d347aab07d9281400ec8b214aabd187fbcd";
+    sha256 = "0d8fb3wp477kfi0p4mmr69lxsbgb4gl9pqmm68g9ixzrfch837v4";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/dmsc/emu2/";
+    description = "A simple text-mode x86 + DOS emulator";
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ dramaturg ];
+    license = licenses.gpl2;
+  };
+}
diff --git a/nixpkgs/pkgs/misc/emulators/gxemul/default.nix b/nixpkgs/pkgs/misc/emulators/gxemul/default.nix
index e742fde90ac9..8671056d14eb 100644
--- a/nixpkgs/pkgs/misc/emulators/gxemul/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/gxemul/default.nix
@@ -2,26 +2,24 @@
 
 stdenv.mkDerivation rec {
   pname = "gxemul";
-  version = "0.6.0.1";
+  version = "0.6.2";
 
   src = fetchurl {
-    url = "http://gxemul.sourceforge.net/src/${pname}-${version}.tar.gz";
-    sha256 = "1afd9l0igyv7qgc0pn3rkdgrl5d0ywlyib0qhg4li23zilyq5407";
+    url = "http://gavare.se/gxemul/src/gxemul-${version}.tar.gz";
+    sha256 = "0iqmazfn7ss5n27m1a9n9nps3vzhag1phzb7qw0wgczycmwsq0x7";
   };
 
   configurePhase = "./configure";
 
   installPhase = ''
-    mkdir -p $out/bin;
-    mkdir -p $out/share/${pname}-${version};
-    cp gxemul $out/bin;
-    cp -r doc $out/share/${pname}-${version};
-    cp -r demos $out/share/${pname}-${version};
-    cp -r ./man $out/;
+    mkdir -p {$out/bin,$out/share/${pname}-${version}}
+    cp -r {doc,demos} $out/share/${pname}-${version}
+    cp gxemul $out/bin
+    cp -r ./man $out
   '';
 
-  meta = {
-    license = stdenv.lib.licenses.bsd3;
+  meta = with stdenv.lib; {
+    homepage = "http://gavare.se/gxemul/";
     description = "Gavare's experimental emulator";
     longDescription = ''
       GXemul is a framework for full-system computer architecture
@@ -32,6 +30,6 @@ stdenv.mkDerivation rec {
       and serial controllers. The emulation is working well enough to
       allow several unmodified "guest" operating systems to run.
     '';
-    homepage = "http://gxemul.sourceforge.net/";
+    license = licenses.bsd3;
   };
 }
diff --git a/nixpkgs/pkgs/misc/emulators/mame/default.nix b/nixpkgs/pkgs/misc/emulators/mame/default.nix
index d72af71f6634..f83e26c28ce1 100644
--- a/nixpkgs/pkgs/misc/emulators/mame/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/mame/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, mkDerivation, fetchFromGitHub, makeDesktopItem, makeWrapper
+{ stdenv, mkDerivation, fetchFromGitHub, fetchpatch, makeDesktopItem, makeWrapper
 , python, pkgconfig, SDL2, SDL2_ttf, alsaLib, which, qtbase, libXinerama
 , libpcap, CoreAudioKit, ForceFeedback
 , installShellFiles }:
@@ -7,7 +7,7 @@ with stdenv;
 
 let
   majorVersion = "0";
-  minorVersion = "221";
+  minorVersion = "224";
 
   desktopItem = makeDesktopItem {
     name = "MAME";
@@ -26,7 +26,7 @@ in mkDerivation {
     owner = "mamedev";
     repo = "mame";
     rev = "mame${majorVersion}${minorVersion}";
-    sha256 = "1pqwa5qcrk0wgbyns6fkv7j3pn7byf216cixc3phhhgvfidgr8ww";
+    sha256 = "1z012fk7nlvxxixxcavmzc9443xli6i7xzz7fdf755g7v1cys7im";
   };
 
   hardeningDisable = [ "fortify" ];
@@ -51,7 +51,15 @@ in mkDerivation {
   # by default MAME assumes that paths with stock resources
   # are relative and that you run MAME changing to
   # install directory, so we add absolute paths here
-  patches = [ ./emuopts.patch ];
+  patches = [
+    ./emuopts.patch
+    # Make the parallel build reliable -- see https://github.com/mamedev/mame/pull/7279
+    (fetchpatch {
+      name = "fix-mame-parallel-build.patch";
+      url = "https://github.com/mamedev/mame/commit/13a54fd4e8b8b1a4aad77671562b2d9ef3d82e1f.patch";
+      sha256 = "1p4bszir9hcdjx6am58p48zh17rhjzlhx2baiacas7fnig61i02n";
+    })
+  ];
 
   postPatch = ''
     substituteInPlace src/emu/emuopts.cpp \
diff --git a/nixpkgs/pkgs/misc/emulators/mgba/default.nix b/nixpkgs/pkgs/misc/emulators/mgba/default.nix
index 872fdc713836..73845581b1bf 100644
--- a/nixpkgs/pkgs/misc/emulators/mgba/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/mgba/default.nix
@@ -15,13 +15,13 @@ let
   };
 in stdenv.mkDerivation rec {
   pname = "mgba";
-  version = "0.8.1";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "mgba-emu";
     repo = "mgba";
     rev = version;
-    sha256 = "1if82mfaak3696w5d5yshynpzywrxgvg3ifdfi2rwlpvq1gpd429";
+    sha256 = "0rwlfjdr0rzbq4kaplvwsgyb8xq6nrzxss2c8xrgw9hqw3ymx4s3";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/misc/emulators/openmsx/custom-nixos.mk b/nixpkgs/pkgs/misc/emulators/openmsx/custom-nix.mk
index 9098762e40d5..9098762e40d5 100644
--- a/nixpkgs/pkgs/misc/emulators/openmsx/custom-nixos.mk
+++ b/nixpkgs/pkgs/misc/emulators/openmsx/custom-nix.mk
diff --git a/nixpkgs/pkgs/misc/emulators/openmsx/default.nix b/nixpkgs/pkgs/misc/emulators/openmsx/default.nix
index 68b464f4d358..dc533c4f17ce 100644
--- a/nixpkgs/pkgs/misc/emulators/openmsx/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/openmsx/default.nix
@@ -2,21 +2,19 @@
 , python
 , alsaLib, glew, libGL, libpng
 , libogg, libtheora, libvorbis
-, SDL, SDL_image, SDL_ttf
+, SDL2, SDL2_image, SDL2_ttf
 , freetype, tcl, zlib
 }:
 
-with stdenv.lib;
 stdenv.mkDerivation rec {
-
   pname = "openmsx";
-  version = "0.15.0";
+  version = "16.0";
 
   src = fetchFromGitHub {
     owner = "openMSX";
     repo = "openMSX";
-    rev = "RELEASE_0_15_0";
-    sha256 = "1lv5kdw0812mkf7k20z2djzk0pbs792xq2mibbnz9rfjf02whi7l";
+    rev = "RELEASE_${builtins.replaceStrings ["."] ["_"] version}";
+    sha256 = "04sphn9ph378r0qv881riv90cgz58650jcqcwmi1mv6gbcb3img5";
     fetchSubmodules = true;
   };
 
@@ -24,10 +22,10 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ alsaLib glew libGL libpng
     libogg libtheora libvorbis freetype
-    SDL SDL_image SDL_ttf tcl zlib ];
+    SDL2 SDL2_image SDL2_ttf tcl zlib ];
 
   postPatch = ''
-    cp ${./custom-nixos.mk} build/custom.mk
+    cp ${./custom-nix.mk} build/custom.mk
   '';
 
   dontAddPrefix = true;
@@ -36,8 +34,8 @@ stdenv.mkDerivation rec {
   # for providing support to Nixpkgs :)
   TCL_CONFIG="${tcl}/lib/";
 
-  meta = {
-    description = "A MSX emulator";
+  meta = with stdenv.lib;{
+    description = "The MSX emulator that aims for perfection";
     longDescription = ''
       OpenMSX is an emulator for the MSX home computer system. Its goal is
       to emulate all aspects of the MSX with 100% accuracy.
@@ -45,5 +43,6 @@ stdenv.mkDerivation rec {
     homepage = "https://openmsx.org";
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
+    license = with licenses; [ bsd2 boost gpl2 ];
   };
 }
diff --git a/nixpkgs/pkgs/misc/emulators/pcsx2/default.nix b/nixpkgs/pkgs/misc/emulators/pcsx2/default.nix
index 3faba2ee467c..af2cca5494e1 100644
--- a/nixpkgs/pkgs/misc/emulators/pcsx2/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/pcsx2/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pcsx2";
-  version = "1.6.0-rc";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "PCSX2";
     repo = "pcsx2";
     rev = "v${version}";
-    sha256 = "1mdv1dgwawb4k6bs1jh6j2jaaxg168fbssm1lwnlk5di0gz31h23";
+    sha256 = "0528kh3275285lvfsykycdhc35c1z8pmccl2s7dfi3va2cp4x8wa";
   };
 
   postPatch = "sed '1i#include \"x86intrin.h\"' -i common/src/x86emitter/cpudetect.cpp";
diff --git a/nixpkgs/pkgs/misc/emulators/resim/default.nix b/nixpkgs/pkgs/misc/emulators/resim/default.nix
index 81acdf81f2ec..ba7ac6212576 100644
--- a/nixpkgs/pkgs/misc/emulators/resim/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/resim/default.nix
@@ -15,4 +15,6 @@ stdenv.mkDerivation {
     cp -v libresim/libarmsim.so $out/lib/libarmsim.so
     cp -v vc4emul/vc4emul $out/bin/vc4emul
   '';
+
+  meta.license = stdenv.lib.licenses.mit;
 }
diff --git a/nixpkgs/pkgs/misc/emulators/retroarch/default.nix b/nixpkgs/pkgs/misc/emulators/retroarch/default.nix
index a9950a14b4d9..bfc2c338769c 100644
--- a/nixpkgs/pkgs/misc/emulators/retroarch/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/retroarch/default.nix
@@ -43,9 +43,6 @@ stdenv.mkDerivation rec {
                                               libXdmcp libXext libXxf86vm mesa udev
                                               wayland libxkbcommon ];
 
-  # we use prefix-less pkg-config
-  PKG_CONF_PATH = "pkg-config";
-
   enableParallelBuilding = true;
 
   configureFlags = stdenv.lib.optionals stdenv.isLinux [ "--enable-kms" "--enable-egl" ];
diff --git a/nixpkgs/pkgs/misc/emulators/rpcs3/default.nix b/nixpkgs/pkgs/misc/emulators/rpcs3/default.nix
index 5e26624d6c7a..f71420674e5c 100644
--- a/nixpkgs/pkgs/misc/emulators/rpcs3/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/rpcs3/default.nix
@@ -1,5 +1,6 @@
 { mkDerivation, lib, fetchgit, cmake, pkgconfig, git
-, qtbase, qtquickcontrols, openal, glew, vulkan-loader, libpng, ffmpeg_3, libevdev, python3
+, qtbase, qtquickcontrols, openal, glew, vulkan-headers, vulkan-loader, libpng
+, ffmpeg, libevdev, python3
 , pulseaudioSupport ? true, libpulseaudio
 , waylandSupport ? true, wayland
 , alsaSupport ? true, alsaLib
@@ -15,7 +16,7 @@ mkDerivation {
 
   src = fetchgit {
     url = "https://github.com/RPCS3/rpcs3";
-    rev = "341fdf7eb14763fd06e2eab9a4b2b8f1adf9fdbd";
+    rev = "v${majorVersion}";
     sha256 = "1qx97zkkjl6bmv5rhfyjqynbz0v8h40b2wxqnl59g287wj0yk3y1";
   };
 
@@ -36,7 +37,8 @@ mkDerivation {
   nativeBuildInputs = [ cmake pkgconfig git ];
 
   buildInputs = [
-    qtbase qtquickcontrols openal glew vulkan-loader libpng ffmpeg_3 libevdev python3
+    qtbase qtquickcontrols openal glew vulkan-headers vulkan-loader libpng ffmpeg
+    libevdev python3
   ] ++ lib.optional pulseaudioSupport libpulseaudio
     ++ lib.optional alsaSupport alsaLib
     ++ lib.optional waylandSupport wayland;
diff --git a/nixpkgs/pkgs/misc/emulators/ryujinx/default.nix b/nixpkgs/pkgs/misc/emulators/ryujinx/default.nix
new file mode 100644
index 000000000000..d1fa03898231
--- /dev/null
+++ b/nixpkgs/pkgs/misc/emulators/ryujinx/default.nix
@@ -0,0 +1,106 @@
+{ stdenv, fetchFromGitHub, fetchurl, makeWrapper, makeDesktopItem, linkFarmFromDrvs
+, dotnet-sdk_3, dotnetPackages, dotnetCorePackages
+, SDL2, libX11, openal
+, gtk3, gobject-introspection, wrapGAppsHook
+}:
+
+let
+  runtimeDeps = [
+    SDL2
+    gtk3
+    libX11
+    openal
+  ];
+in stdenv.mkDerivation rec {
+  pname = "ryujinx";
+  version = "1.0.5346";
+
+  src = fetchFromGitHub {
+    owner = "Ryujinx";
+    repo = "Ryujinx";
+    rev = "2ce59c44bcb2d789f4d6312b26cf41f36915d73c";
+    sha256 = "0hk8jdacg8ryhh0mpnfjbzrrpy8gv87f4hp0hybyypglmaxz8grm";
+  };
+
+  nativeBuildInputs = [ dotnet-sdk_3 dotnetPackages.Nuget makeWrapper wrapGAppsHook gobject-introspection ];
+
+  nugetDeps = linkFarmFromDrvs "${pname}-nuget-deps" (import ./deps.nix {
+    fetchNuGet = { name, version, sha256 }: fetchurl {
+      name = "nuget-${name}-${version}.nupkg";
+      url = "https://www.nuget.org/api/v2/package/${name}/${version}";
+      inherit sha256;
+    };
+  });
+
+  patches = [ ./log.patch ]; # Without this, Ryujinx tries to write logs to the nix store. This patch makes it write to "~/.config/Ryujinx/Logs" on Linux.
+
+  configurePhase = ''
+    runHook preConfigure
+
+    export HOME=$(mktemp -d)
+    export DOTNET_CLI_TELEMETRY_OPTOUT=1
+    export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1
+
+    nuget sources Add -Name nixos -Source "$PWD/nixos"
+    nuget init "$nugetDeps" "$PWD/nixos"
+
+    # FIXME: https://github.com/NuGet/Home/issues/4413
+    mkdir -p $HOME/.nuget/NuGet
+    cp $HOME/.config/NuGet/NuGet.Config $HOME/.nuget/NuGet
+
+    dotnet restore --source "$PWD/nixos" Ryujinx.sln
+
+    runHook postConfigure
+  '';
+
+  buildPhase = ''
+    runHook preBuild
+    dotnet build Ryujinx.sln \
+      --no-restore \
+      --configuration Release \
+      -p:Version=${version}
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    dotnet publish Ryujinx.sln \
+      --no-build \
+      --configuration Release \
+      --no-self-contained \
+      --output $out/lib/ryujinx
+    shopt -s extglob
+
+    makeWrapper $out/lib/ryujinx/Ryujinx $out/bin/Ryujinx \
+      --set DOTNET_ROOT "${dotnetCorePackages.netcore_3_1}" \
+      --suffix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath runtimeDeps}" \
+      ''${gappsWrapperArgs[@]}
+
+    for i in 16 32 48 64 96 128 256 512 1024; do
+      install -D ${src}/Ryujinx/Ui/assets/Icon.png $out/share/icons/hicolor/''${i}x$i/apps/ryujinx.png
+    done
+    cp -r ${makeDesktopItem {
+      desktopName = "Ryujinx";
+      name = "ryujinx";
+      exec = "Ryujinx";
+      icon = "ryujinx";
+      comment = meta.description;
+      type = "Application";
+      categories = "Game;";
+    }}/share/applications $out/share
+
+    runHook postInstall
+  '';
+
+  # Strip breaks the executable.
+  dontStrip = true;
+
+  meta = with stdenv.lib; {
+    description = "Experimental Nintendo Switch Emulator written in C#";
+    homepage = "https://ryujinx.org/";
+    license = licenses.mit;
+    maintainers = [ maintainers.ivar ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/misc/emulators/ryujinx/deps.nix b/nixpkgs/pkgs/misc/emulators/ryujinx/deps.nix
new file mode 100644
index 000000000000..94093e1e29c6
--- /dev/null
+++ b/nixpkgs/pkgs/misc/emulators/ryujinx/deps.nix
@@ -0,0 +1,1062 @@
+{ fetchNuGet }: [
+  (fetchNuGet {
+    name = "AtkSharp";
+    version = "3.22.25.56";
+    sha256 = "069fm4wplxb4s1i6mdj00b22zqpz6pg9miglcj8mkf1b4lnn09g0";
+  })
+  (fetchNuGet {
+    name = "CairoSharp";
+    version = "3.22.25.56";
+    sha256 = "0b7p4yj88wgayh464j3rkbc4js8z57wxy3mprgvx86i3rc2v5jd9";
+  })
+  (fetchNuGet {
+    name = "Concentus";
+    version = "1.1.7";
+    sha256 = "0y5z444wrbhlmsqpy2sxmajl1fbf74843lvgj3y6vz260dn2q0l0";
+  })
+  (fetchNuGet {
+    name = "DiscordRichPresence";
+    version = "1.0.150";
+    sha256 = "0qmbi4sccia3w80q8xfvj3bw62nvz047wq198n2b2aflkf47bq79";
+  })
+  (fetchNuGet {
+    name = "FFmpeg.AutoGen";
+    version = "4.3.0";
+    sha256 = "03lb3xzgwxik8nljq87pr1b9bsxbsl3a4kvy0kqkw9f57n29ihvk";
+  })
+  (fetchNuGet {
+    name = "GdkSharp";
+    version = "3.22.25.56";
+    sha256 = "0f708dwy6i9hghxs711scwkww28lvfjd6gykk7xv921vich5xvy6";
+  })
+  (fetchNuGet {
+    name = "GioSharp";
+    version = "3.22.25.56";
+    sha256 = "1i7x1bakv5sq27ppl6w79c1wbvnfhf1713plc9ixaznh1fclcnwr";
+  })
+  (fetchNuGet {
+    name = "GLibSharp";
+    version = "3.22.25.56";
+    sha256 = "12czfm0lgjcy9hgqsiycwfv124dq619svrnsi036246i5hycj37w";
+  })
+  (fetchNuGet {
+    name = "GLWidget";
+    version = "1.0.2";
+    sha256 = "0nb46jiscnsywwdfy7zhx1bw4jfmca3s6l8dhbi99gc4bvp8ar7p";
+  })
+  (fetchNuGet {
+    name = "GtkSharp";
+    version = "3.22.25.56";
+    sha256 = "18dbn834wimdmxmgsqd81hyvjyyzgbnayzvz9f714cgw4yjkjyqs";
+  })
+  (fetchNuGet {
+    name = "GtkSharp.Dependencies";
+    version = "1.1.0";
+    sha256 = "1g1rhcn38ww97638rds6l5bysra43hkhv47fy71fvq89623zgyxn";
+  })
+  (fetchNuGet {
+    name = "LibHac";
+    version = "0.12.0";
+    sha256 = "08r9b9cdcbz6339sw8r5dfy2a8iw53df0j3xq9rygkg02xspimld";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.App.Runtime.linux-x64";
+    version = "3.1.8";
+    sha256 = "140zr3nwkmf6xc52gq4iz6ycyh95fxy0jpgn637pkd9z423z8135";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.App.Runtime.osx-x64";
+    version = "3.1.8";
+    sha256 = "0dkib4r4v5wqxsi6zca6x3zin1x4lha53dqbgsaiah961h1yhpp4";
+  })
+  (fetchNuGet {
+    name = "Microsoft.AspNetCore.App.Runtime.win-x64";
+    version = "3.1.8";
+    sha256 = "05sv39b6sc8fhh3m8kwq0lp58n8mrv5ivxa60rfqk6v6i7gs8b0f";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CodeCoverage";
+    version = "16.7.0";
+    sha256 = "10f6y1q8w61vc8ffqd7jsndwfskkfqbdzfqswyxnrr0qkkqx29v1";
+  })
+  (fetchNuGet {
+    name = "Microsoft.CSharp";
+    version = "4.0.1";
+    sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj";
+  })
+  (fetchNuGet {
+    name = "Microsoft.DotNet.InternalAbstractions";
+    version = "1.0.0";
+    sha256 = "0mp8ihqlb7fsa789frjzidrfjc1lrhk88qp3xm5qvr7vf4wy4z8x";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.App.Host.osx-x64";
+    version = "3.1.8";
+    sha256 = "1ip8pgra9z6ha3yc4xqkb85cl9kx2jbwhwzdi3dp8bkqbvlirvkb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.App.Host.win-x64";
+    version = "3.1.8";
+    sha256 = "1d7wlnibf9fgq57hwnjqhlh33hxg417ljf1djb9yan4xik1wl4hb";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.App.Runtime.linux-x64";
+    version = "3.1.8";
+    sha256 = "1bv9n9wzsqf9g8h6z10p61xkcx8ad4nnip83qv8yyfvhr4kdmbsa";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.App.Runtime.osx-x64";
+    version = "3.1.8";
+    sha256 = "1iabp5czrz9wmsqcl0gi8r580vlhky3aak5ndz9fw065wlsqpv7w";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.App.Runtime.win-x64";
+    version = "3.1.8";
+    sha256 = "010c514ls1q9gdnyj0kvknx7a0z034lfbbcxqa8cjiv0snax4pqz";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.0.1";
+    sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "1.1.0";
+    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "2.0.0";
+    sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Platforms";
+    version = "3.1.0";
+    sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.0.1";
+    sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NETCore.Targets";
+    version = "1.1.0";
+    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+  })
+  (fetchNuGet {
+    name = "Microsoft.NET.Test.Sdk";
+    version = "16.7.0";
+    sha256 = "1vkp6b82566z2pxn9035wrh4339kz3ki17g5qlwmwdbn4br6lcfy";
+  })
+  (fetchNuGet {
+    name = "Microsoft.TestPlatform.ObjectModel";
+    version = "16.7.0";
+    sha256 = "0nmw80ap2rn9h4i1x7qb15n763sh3wy8hjp1i5n0av7100g0yjqz";
+  })
+  (fetchNuGet {
+    name = "Microsoft.TestPlatform.TestHost";
+    version = "16.7.0";
+    sha256 = "0485nv0wcwdwjhif5a7d1i0znaf9acqyawhpqcwschw827chqzrs";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Primitives";
+    version = "4.0.1";
+    sha256 = "1n8ap0cmljbqskxpf8fjzn7kh1vvlndsa75k01qig26mbw97k2q7";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Primitives";
+    version = "4.3.0";
+    sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Registry";
+    version = "4.3.0";
+    sha256 = "1gxyzxam8163vk1kb6xzxjj4iwspjsz9zhgn1w9rjzciphaz0ig7";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Registry";
+    version = "4.5.0";
+    sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.Registry";
+    version = "4.7.0";
+    sha256 = "0bx21jjbs7l5ydyw4p6cn07chryxpmchq2nl5pirzz4l3b0q4dgs";
+  })
+  (fetchNuGet {
+    name = "Microsoft.Win32.SystemEvents";
+    version = "4.5.0";
+    sha256 = "0fnkv3ky12227zqg4zshx4kw2mvysq2ppxjibfw02cc3iprv4njq";
+  })
+  (fetchNuGet {
+    name = "Mono.Posix.NETStandard";
+    version = "1.0.0";
+    sha256 = "0xlja36hwpjm837haq15mjh2prcf68lyrmn72nvgpz8qnf9vappw";
+  })
+  (fetchNuGet {
+    name = "MsgPack.Cli";
+    version = "1.0.1";
+    sha256 = "1dk2bs3g16lsxcjjm7gfx6jxa4667wccw94jlh2ql7y7smvh9z8r";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "1.6.0";
+    sha256 = "0nmmv4yw7gw04ik8ialj3ak0j6pxa9spih67hnn1h2c38ba8h58k";
+  })
+  (fetchNuGet {
+    name = "NETStandard.Library";
+    version = "2.0.0";
+    sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "12.0.2";
+    sha256 = "0w2fbji1smd2y7x25qqibf1qrznmv4s6s0jvrbvr6alb7mfyqvh5";
+  })
+  (fetchNuGet {
+    name = "Newtonsoft.Json";
+    version = "9.0.1";
+    sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r";
+  })
+  (fetchNuGet {
+    name = "NuGet.Frameworks";
+    version = "5.0.0";
+    sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr";
+  })
+  (fetchNuGet {
+    name = "NUnit";
+    version = "3.12.0";
+    sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2";
+  })
+  (fetchNuGet {
+    name = "NUnit3TestAdapter";
+    version = "3.17.0";
+    sha256 = "0kxc6z3b8ccdrcyqz88jm5yh5ch9nbg303v67q8sp5hhs8rl8nk6";
+  })
+  (fetchNuGet {
+    name = "OpenTK.NetStandard";
+    version = "1.0.5.12";
+    sha256 = "1n8j6k47189l5b6rnhyq391d84v6zkpiiqq41cccb6qizvrcgl69";
+  })
+  (fetchNuGet {
+    name = "PangoSharp";
+    version = "3.22.25.56";
+    sha256 = "12b0761nfsci4rvzcba4hrh5rcn6q24qaxwwz66myb82c999qj8w";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Collections";
+    version = "4.3.0";
+    sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Diagnostics.Tools";
+    version = "4.3.0";
+    sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Diagnostics.Tracing";
+    version = "4.3.0";
+    sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Globalization";
+    version = "4.3.0";
+    sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Globalization.Calendars";
+    version = "4.3.0";
+    sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.IO";
+    version = "4.3.0";
+    sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection";
+    version = "4.3.0";
+    sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection.Extensions";
+    version = "4.3.0";
+    sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Reflection.Primitives";
+    version = "4.3.0";
+    sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Resources.ResourceManager";
+    version = "4.3.0";
+    sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime";
+    version = "4.3.0";
+    sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime.Handles";
+    version = "4.3.0";
+    sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Text.Encoding.Extensions";
+    version = "4.3.0";
+    sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Threading.Tasks";
+    version = "4.3.0";
+    sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va";
+  })
+  (fetchNuGet {
+    name = "runtime.any.System.Threading.Timer";
+    version = "4.3.0";
+    sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086";
+  })
+  (fetchNuGet {
+    name = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
+  })
+  (fetchNuGet {
+    name = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
+  })
+  (fetchNuGet {
+    name = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System";
+    version = "4.0.0";
+    sha256 = "1ppk69xk59ggacj9n7g6fyxvzmk1g5p4fkijm0d7xqfkig98qrkf";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System";
+    version = "4.3.0";
+    sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.IO.Compression";
+    version = "4.1.0";
+    sha256 = "0d720z4lzyfcabmmnvh0bnj76ll7djhji2hmfh3h44sdkjnlkknk";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Net.Http";
+    version = "4.0.1";
+    sha256 = "1hgv2bmbaskx77v8glh7waxws973jn4ah35zysnkxmf0196sfxg6";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography";
+    version = "4.0.0";
+    sha256 = "0k57aa2c3b10wl3hfqbgrl7xq7g8hh3a3ir44b31dn5p61iiw3z9";
+  })
+  (fetchNuGet {
+    name = "runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
+  })
+  (fetchNuGet {
+    name = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
+  })
+  (fetchNuGet {
+    name = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
+  })
+  (fetchNuGet {
+    name = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3";
+  })
+  (fetchNuGet {
+    name = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
+  })
+  (fetchNuGet {
+    name = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.Microsoft.Win32.Primitives";
+    version = "4.3.0";
+    sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Console";
+    version = "4.3.0";
+    sha256 = "1pfpkvc6x2if8zbdzg9rnc5fx51yllprl8zkm5npni2k50lisy80";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Net.Primitives";
+    version = "4.3.0";
+    sha256 = "0bdnglg59pzx9394sy4ic66kmxhqp8q8bvmykdxcbs5mm0ipwwm4";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Net.Sockets";
+    version = "4.3.0";
+    sha256 = "03npdxzy8gfv035bv1b9rz7c7hv0rxl5904wjz51if491mw0xy12";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Private.Uri";
+    version = "4.3.0";
+    sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk";
+  })
+  (fetchNuGet {
+    name = "runtime.unix.System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p";
+  })
+  (fetchNuGet {
+    name = "runtime.win.Microsoft.Win32.Primitives";
+    version = "4.3.0";
+    sha256 = "0k1h8nnp1s0p8rjwgjyj1387cc1yycv0k22igxc963lqdzrx2z36";
+  })
+  (fetchNuGet {
+    name = "runtime.win.System.Console";
+    version = "4.3.0";
+    sha256 = "0x2yajfrbc5zc6g7nmlr44xpjk6p1hxjq47jn3xki5j7i33zw9jc";
+  })
+  (fetchNuGet {
+    name = "runtime.win.System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "16fbn4bcynad1ygdq0yk1wmckvs8jvrrf104xa5dc2hlc8y3x58f";
+  })
+  (fetchNuGet {
+    name = "runtime.win.System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "1c01nklbxywszsbfaxc76hsz7gdxac3jkphrywfkdsi3v4bwd6g8";
+  })
+  (fetchNuGet {
+    name = "runtime.win.System.Net.Primitives";
+    version = "4.3.0";
+    sha256 = "1dixh195bi7473n17hspll6i562gghdz9m4jk8d4kzi1mlzjk9cf";
+  })
+  (fetchNuGet {
+    name = "runtime.win.System.Net.Sockets";
+    version = "4.3.0";
+    sha256 = "0lr3zki831vs6qhk5wckv2b9qbfk9rcj0ds2926qvj1b9y9m6sck";
+  })
+  (fetchNuGet {
+    name = "runtime.win.System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "1700famsxndccfbcdz9q14qb20p49lax67mqwpgy4gx3vja1yczr";
+  })
+  (fetchNuGet {
+    name = "Ryujinx.Graphics.Nvdec.Dependencies";
+    version = "4.3.0";
+    sha256 = "0szgbdhyhvzpw8nb9k2ww37p5qipab1pdll8idkk57y5xnl2f7ll";
+  })
+  (fetchNuGet {
+    name = "System.AppContext";
+    version = "4.1.0";
+    sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.0.0";
+    sha256 = "13s659bcmg9nwb6z78971z1lr6bmh2wghxi1ayqyzl4jijd351gr";
+  })
+  (fetchNuGet {
+    name = "System.Buffers";
+    version = "4.3.0";
+    sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy";
+  })
+  (fetchNuGet {
+    name = "System.CodeDom";
+    version = "4.4.0";
+    sha256 = "1zgbafm5p380r50ap5iddp11kzhr9khrf2pnai6k593wjar74p1g";
+  })
+  (fetchNuGet {
+    name = "System.CodeDom";
+    version = "4.7.0";
+    sha256 = "1lch8gwmw420wsvbv9ir4v5g1ij2ag23cbgi3c9gramj1h4vhlz2";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
+    version = "4.0.11";
+    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
+  })
+  (fetchNuGet {
+    name = "System.Collections";
+    version = "4.3.0";
+    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Concurrent";
+    version = "4.0.12";
+    sha256 = "07y08kvrzpak873pmyxs129g1ch8l27zmg51pcyj2jvq03n0r0fc";
+  })
+  (fetchNuGet {
+    name = "System.Collections.NonGeneric";
+    version = "4.3.0";
+    sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
+  })
+  (fetchNuGet {
+    name = "System.Collections.Specialized";
+    version = "4.3.0";
+    sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel";
+    version = "4.3.0";
+    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.EventBasedAsync";
+    version = "4.3.0";
+    sha256 = "1rv9bkb8yyhqqqrx6x95njv6mdxlbvv527b44mrd93g8fmgkifl7";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.Primitives";
+    version = "4.3.0";
+    sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
+  })
+  (fetchNuGet {
+    name = "System.ComponentModel.TypeConverter";
+    version = "4.3.0";
+    sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
+  })
+  (fetchNuGet {
+    name = "System.Console";
+    version = "4.0.0";
+    sha256 = "0ynxqbc3z1nwbrc11hkkpw9skw116z4y9wjzn7id49p9yi7mzmlf";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.DiagnosticSource";
+    version = "4.0.0";
+    sha256 = "1n6c3fbz7v8d3pn77h4v5wvsfrfg7v1c57lg3nff3cjyh597v23m";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Process";
+    version = "4.3.0";
+    sha256 = "0g4prsbkygq8m21naqmcp70f24a1ksyix3dihb1r1f71lpi3cfj7";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tools";
+    version = "4.0.1";
+    sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tracing";
+    version = "4.1.0";
+    sha256 = "1d2r76v1x610x61ahfpigda89gd13qydz6vbwzhpqlyvq8jj6394";
+  })
+  (fetchNuGet {
+    name = "System.Diagnostics.Tracing";
+    version = "4.3.0";
+    sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4";
+  })
+  (fetchNuGet {
+    name = "System.Drawing.Common";
+    version = "4.5.0";
+    sha256 = "0knqa0zsm91nfr34br8gx5kjqq4v81zdhqkacvs2hzc8nqk0ddhc";
+  })
+  (fetchNuGet {
+    name = "System.Dynamic.Runtime";
+    version = "4.0.11";
+    sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.0.11";
+    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
+  })
+  (fetchNuGet {
+    name = "System.Globalization";
+    version = "4.3.0";
+    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Calendars";
+    version = "4.0.1";
+    sha256 = "0bv0alrm2ck2zk3rz25lfyk9h42f3ywq77mx1syl6vvyncnpg4qh";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.0.1";
+    sha256 = "0hjhdb5ri8z9l93bw04s7ynwrjrhx2n0p34sf33a9hl9phz69fyc";
+  })
+  (fetchNuGet {
+    name = "System.Globalization.Extensions";
+    version = "4.3.0";
+    sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.1.0";
+    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+  })
+  (fetchNuGet {
+    name = "System.IO";
+    version = "4.3.0";
+    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression";
+    version = "4.1.0";
+    sha256 = "0iym7s3jkl8n0vzm3jd6xqg9zjjjqni05x45dwxyjr2dy88hlgji";
+  })
+  (fetchNuGet {
+    name = "System.IO.Compression.ZipFile";
+    version = "4.0.1";
+    sha256 = "0h72znbagmgvswzr46mihn7xm7chfk2fhrp5krzkjf29pz0i6z82";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.0.1";
+    sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.0.1";
+    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+  })
+  (fetchNuGet {
+    name = "System.IO.FileSystem.Primitives";
+    version = "4.3.0";
+    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.1.0";
+    sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
+  })
+  (fetchNuGet {
+    name = "System.Linq";
+    version = "4.3.0";
+    sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+  })
+  (fetchNuGet {
+    name = "System.Linq.Expressions";
+    version = "4.1.0";
+    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
+  })
+  (fetchNuGet {
+    name = "System.Management";
+    version = "4.7.0";
+    sha256 = "0aw61jl6l78liiq04afxplz0ad5qbyg6vmyjaqrlnrv7whb58n66";
+  })
+  (fetchNuGet {
+    name = "System.Net.Http";
+    version = "4.1.0";
+    sha256 = "1i5rqij1icg05j8rrkw4gd4pgia1978mqhjzhsjg69lvwcdfg8yb";
+  })
+  (fetchNuGet {
+    name = "System.Net.NameResolution";
+    version = "4.3.0";
+    sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq";
+  })
+  (fetchNuGet {
+    name = "System.Net.Primitives";
+    version = "4.0.11";
+    sha256 = "10xzzaynkzkakp7jai1ik3r805zrqjxiz7vcagchyxs2v26a516r";
+  })
+  (fetchNuGet {
+    name = "System.Net.Sockets";
+    version = "4.1.0";
+    sha256 = "1385fvh8h29da5hh58jm1v78fzi9fi5vj93vhlm2kvqpfahvpqls";
+  })
+  (fetchNuGet {
+    name = "System.Numerics.Vectors";
+    version = "4.3.0";
+    sha256 = "05kji1mv4sl75iwmc613p873145nynm02xiajx8pn0h2kx53d23s";
+  })
+  (fetchNuGet {
+    name = "System.ObjectModel";
+    version = "4.0.12";
+    sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
+  })
+  (fetchNuGet {
+    name = "System.Private.Uri";
+    version = "4.3.0";
+    sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx";
+  })
+  (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.1.0";
+    sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
+  })
+  (fetchNuGet {
+    name = "System.Reflection";
+    version = "4.3.0";
+    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.0.1";
+    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit";
+    version = "4.3.0";
+    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.ILGeneration";
+    version = "4.0.1";
+    sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.ILGeneration";
+    version = "4.3.0";
+    sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.0.1";
+    sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Emit.Lightweight";
+    version = "4.3.0";
+    sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Extensions";
+    version = "4.0.1";
+    sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Extensions";
+    version = "4.3.0";
+    sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.0.1";
+    sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.Primitives";
+    version = "4.3.0";
+    sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.TypeExtensions";
+    version = "4.1.0";
+    sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
+  })
+  (fetchNuGet {
+    name = "System.Reflection.TypeExtensions";
+    version = "4.3.0";
+    sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
+  })
+  (fetchNuGet {
+    name = "System.Resources.ResourceManager";
+    version = "4.3.0";
+    sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.1.0";
+    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+  })
+  (fetchNuGet {
+    name = "System.Runtime";
+    version = "4.3.0";
+    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.6.0";
+    sha256 = "0xmzi2gpbmgyfr75p24rqqsba3cmrqgmcv45lsqp5amgrdwd0f0m";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.CompilerServices.Unsafe";
+    version = "5.0.0-preview.7.20364.11";
+    sha256 = "19sl184f6rjhfsizq0vapysazd6yd66lf638rszvrdhqlsxssz2m";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.1.0";
+    sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.0.1";
+    sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Handles";
+    version = "4.3.0";
+    sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.1.0";
+    sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices.RuntimeInformation";
+    version = "4.0.0";
+    sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.InteropServices.RuntimeInformation";
+    version = "4.3.0";
+    sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Numerics";
+    version = "4.0.1";
+    sha256 = "1y308zfvy0l5nrn46mqqr4wb4z1xk758pkk8svbz8b5ij7jnv4nn";
+  })
+  (fetchNuGet {
+    name = "System.Runtime.Serialization.Primitives";
+    version = "4.1.1";
+    sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
+  })
+  (fetchNuGet {
+    name = "System.Security.AccessControl";
+    version = "4.5.0";
+    sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0";
+  })
+  (fetchNuGet {
+    name = "System.Security.AccessControl";
+    version = "4.7.0";
+    sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz";
+  })
+  (fetchNuGet {
+    name = "System.Security.Claims";
+    version = "4.3.0";
+    sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Algorithms";
+    version = "4.2.0";
+    sha256 = "148s9g5dgm33ri7dnh19s4lgnlxbpwvrw2jnzllq2kijj4i4vs85";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Cng";
+    version = "4.2.0";
+    sha256 = "118jijz446kix20blxip0f0q8mhsh9bz118mwc2ch1p6g7facpzc";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Csp";
+    version = "4.0.0";
+    sha256 = "1cwv8lqj8r15q81d2pz2jwzzbaji0l28xfrpw29kdpsaypm92z2q";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Encoding";
+    version = "4.0.0";
+    sha256 = "0a8y1a5wkmpawc787gfmnrnbzdgxmx1a14ax43jf3rj9gxmy3vk4";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.OpenSsl";
+    version = "4.0.0";
+    sha256 = "16sx3cig3d0ilvzl8xxgffmxbiqx87zdi8fc73i3i7zjih1a7f4q";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.Primitives";
+    version = "4.0.0";
+    sha256 = "0i7cfnwph9a10bm26m538h5xcr8b36jscp9sy1zhgifksxz4yixh";
+  })
+  (fetchNuGet {
+    name = "System.Security.Cryptography.X509Certificates";
+    version = "4.1.0";
+    sha256 = "0clg1bv55mfv5dq00m19cp634zx6inm31kf8ppbq1jgyjf2185dh";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal";
+    version = "4.3.0";
+    sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal.Windows";
+    version = "4.3.0";
+    sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal.Windows";
+    version = "4.5.0";
+    sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86";
+  })
+  (fetchNuGet {
+    name = "System.Security.Principal.Windows";
+    version = "4.7.0";
+    sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.0.11";
+    sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.Extensions";
+    version = "4.0.11";
+    sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
+  })
+  (fetchNuGet {
+    name = "System.Text.Encoding.Extensions";
+    version = "4.3.0";
+    sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
+  })
+  (fetchNuGet {
+    name = "System.Text.RegularExpressions";
+    version = "4.1.0";
+    sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
+  })
+  (fetchNuGet {
+    name = "System.Text.RegularExpressions";
+    version = "4.3.0";
+    sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.0.11";
+    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+  })
+  (fetchNuGet {
+    name = "System.Threading";
+    version = "4.3.0";
+    sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Overlapped";
+    version = "4.3.0";
+    sha256 = "1nahikhqh9nk756dh8p011j36rlcp1bzz3vwi2b4m1l2s3vz8idm";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.0.11";
+    sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks";
+    version = "4.3.0";
+    sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.0.0";
+    sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Tasks.Extensions";
+    version = "4.3.0";
+    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Thread";
+    version = "4.3.0";
+    sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4";
+  })
+  (fetchNuGet {
+    name = "System.Threading.ThreadPool";
+    version = "4.3.0";
+    sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1";
+  })
+  (fetchNuGet {
+    name = "System.Threading.Timer";
+    version = "4.0.1";
+    sha256 = "15n54f1f8nn3mjcjrlzdg6q3520571y012mx7v991x2fvp73lmg6";
+  })
+  (fetchNuGet {
+    name = "System.Xml.ReaderWriter";
+    version = "4.0.11";
+    sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
+  })
+  (fetchNuGet {
+    name = "System.Xml.ReaderWriter";
+    version = "4.3.0";
+    sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XDocument";
+    version = "4.0.11";
+    sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XmlDocument";
+    version = "4.3.0";
+    sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XPath";
+    version = "4.3.0";
+    sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci";
+  })
+  (fetchNuGet {
+    name = "System.Xml.XPath.XmlDocument";
+    version = "4.3.0";
+    sha256 = "1h9lh7qkp0lff33z847sdfjj8yaz98ylbnkbxlnsbflhj9xyfqrm";
+  })
+]
diff --git a/nixpkgs/pkgs/misc/emulators/ryujinx/fetch-deps.sh b/nixpkgs/pkgs/misc/emulators/ryujinx/fetch-deps.sh
new file mode 100755
index 000000000000..ce9873a16929
--- /dev/null
+++ b/nixpkgs/pkgs/misc/emulators/ryujinx/fetch-deps.sh
@@ -0,0 +1,41 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq common-updater-scripts dotnet-sdk_3
+set -eo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
+
+deps_file="$(realpath "./deps.nix")"
+
+# Setup empty nuget package folder to force reinstall.
+mkdir ./nuget_tmp.packages
+cat >./nuget_tmp.config <<EOF
+<?xml version="1.0" encoding="utf-8"?>
+<configuration>
+  <packageSources>
+    <add key="nuget" value="https://api.nuget.org/v3/index.json" />
+  </packageSources>
+  <config>
+    <add key="globalPackagesFolder" value="$(realpath ./nuget_tmp.packages)" />
+  </config>
+</configuration>
+EOF
+
+dotnet restore Ryujinx.sln --configfile ./nuget_tmp.config
+
+echo "{ fetchNuGet }: [" >"$deps_file"
+while read pkg_spec; do
+  { read pkg_name; read pkg_version; } < <(
+    # Build version part should be ignored: `3.0.0-beta2.20059.3+77df2220` -> `3.0.0-beta2.20059.3`
+    sed -nE 's/.*<id>([^<]*).*/\1/p; s/.*<version>([^<+]*).*/\1/p' "$pkg_spec")
+  pkg_sha256="$(nix-hash --type sha256 --flat --base32 "$(dirname "$pkg_spec")"/*.nupkg)"
+  cat >>"$deps_file" <<EOF
+  (fetchNuGet {
+    name = "$pkg_name";
+    version = "$pkg_version";
+    sha256 = "$pkg_sha256";
+  })
+EOF
+done < <(find ./nuget_tmp.packages -name '*.nuspec' | sort)
+echo "]" >>"$deps_file"
+
+popd
+rm -r "$src"
diff --git a/nixpkgs/pkgs/misc/emulators/ryujinx/log.patch b/nixpkgs/pkgs/misc/emulators/ryujinx/log.patch
new file mode 100644
index 000000000000..d25e22fbd373
--- /dev/null
+++ b/nixpkgs/pkgs/misc/emulators/ryujinx/log.patch
@@ -0,0 +1,13 @@
+diff --git a/Ryujinx.Common/Configuration/LoggerModule.cs b/Ryujinx.Common/Configuration/LoggerModule.cs
+index 20c0fb46..ce933730 100644
+--- a/Ryujinx.Common/Configuration/LoggerModule.cs
++++ b/Ryujinx.Common/Configuration/LoggerModule.cs
+@@ -75,7 +75,7 @@ namespace Ryujinx.Configuration
+             if (e.NewValue)
+             {
+                 Logger.AddTarget(new AsyncLogTargetWrapper(
+-                    new FileLogTarget(AppDomain.CurrentDomain.BaseDirectory, "file"),
++		      new FileLogTarget(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Ryujinx"), "file"),
+                     1000,
+                     AsyncLogTargetOverflowAction.Block
+                 ));
diff --git a/nixpkgs/pkgs/misc/emulators/sameboy/default.nix b/nixpkgs/pkgs/misc/emulators/sameboy/default.nix
new file mode 100644
index 000000000000..e90cc5a00f50
--- /dev/null
+++ b/nixpkgs/pkgs/misc/emulators/sameboy/default.nix
@@ -0,0 +1,53 @@
+{ stdenv, fetchFromGitHub, gtk3, rgbds, SDL2, wrapGAppsHook, glib }:
+
+stdenv.mkDerivation rec {
+  pname = "sameboy";
+  version = "0.13.6";
+
+  src = fetchFromGitHub {
+    owner = "LIJI32";
+    repo = "SameBoy";
+    rev = "v${version}";
+    sha256 = "04w8lybi7ssnax37ka4qw7pmcm7cgnmk90p9m73zbyp5chgpqqzc";
+  };
+
+  enableParallelBuilding = true;
+  # glib and wrapGAppsHook are needed to make the Open ROM menu work.
+  nativeBuildInputs = [ rgbds glib wrapGAppsHook ];
+  buildInputs = [ SDL2 ];
+
+  makeFlags = "CONF=release DATA_DIR=$(out)/share/sameboy/";
+
+  patchPhase = ''
+    sed 's/-Werror //g' -i Makefile
+    sed 's@"libgtk-3.so"@"${gtk3}/lib/libgtk-3.so"@g' -i OpenDialog/gtk.c
+  '';
+
+  installPhase = ''
+    pushd build/bin/SDL
+    install -Dm755 sameboy $out/bin/sameboy
+    rm sameboy
+    mkdir -p $out/share/sameboy
+    cp -r * $out/share/sameboy
+    popd
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://sameboy.github.io";
+    description = "Game Boy, Game Boy Color, and Super Game Boy emulator";
+
+    longDescription = ''
+      SameBoy is a user friendly Game Boy, Game Boy Color and Super
+      Game Boy emulator for macOS, Windows and Unix-like platforms.
+      SameBoy is extremely accurate and includes a wide range of
+      powerful debugging features, making it ideal for both casual
+      players and developers. In addition to accuracy and developer
+      capabilities, SameBoy has all the features one would expect from
+      an emulator – from save states to scaling filters.
+    '';
+
+    license = licenses.mit;
+    maintainers = with maintainers; [ NieDzejkob ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/misc/emulators/simplenes/default.nix b/nixpkgs/pkgs/misc/emulators/simplenes/default.nix
new file mode 100644
index 000000000000..d4805a62d761
--- /dev/null
+++ b/nixpkgs/pkgs/misc/emulators/simplenes/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, sfml
+}:
+
+stdenv.mkDerivation rec {
+  pname = "simplenes";
+  version = "unstable-2019-03-13";
+
+  src = fetchFromGitHub {
+    owner = "amhndu";
+    repo = "SimpleNES";
+    rev = "4edb7117970c21a33b3bfe11a6606764fffc5173";
+    sha256 = "1nmwj431iwqzzcykxd4xinqmg0rm14mx7zsjyhcc5skz7pihz86g";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ sfml ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ./SimpleNES $out/bin
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/amhndu/SimpleNES";
+    description = "An NES emulator written in C++";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ ivar ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/misc/emulators/snes9x-gtk/default.nix b/nixpkgs/pkgs/misc/emulators/snes9x-gtk/default.nix
index 6560024b19e0..f33af245f710 100644
--- a/nixpkgs/pkgs/misc/emulators/snes9x-gtk/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/snes9x-gtk/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, wrapGAppsHook
 , SDL2, zlib, gtk3, libxml2, libXv, epoxy, minizip, pulseaudio, portaudio }:
 
 stdenv.mkDerivation rec {
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   };
 
   enableParallelBuilding = true;
-  nativeBuildInputs = [ meson ninja pkgconfig ];
+  nativeBuildInputs = [ meson ninja pkgconfig wrapGAppsHook ];
   buildInputs = [ SDL2 zlib gtk3 libxml2 libXv epoxy minizip pulseaudio portaudio ];
 
   preConfigure = "cd gtk";
diff --git a/nixpkgs/pkgs/misc/emulators/stella/default.nix b/nixpkgs/pkgs/misc/emulators/stella/default.nix
index 591b2daaf15b..4c657fc30bba 100644
--- a/nixpkgs/pkgs/misc/emulators/stella/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/stella/default.nix
@@ -4,13 +4,13 @@ with stdenv.lib;
 stdenv.mkDerivation rec {
 
   pname = "stella";
-  version = "6.2";
+  version = "6.2.1";
 
   src = fetchFromGitHub {
     owner = "stella-emu";
     repo = "stella";
     rev = version;
-    sha256 = "1d97g4m686xsj6r5vy5x74ys9yk0hcpdppxh714n8hhcc9aglm19";
+    sha256 = "1yhszswwg217x8d2qlcasi9l97y1z6w1pgliys4p27zv5b1ygy7p";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/misc/emulators/vice/default.nix b/nixpkgs/pkgs/misc/emulators/vice/default.nix
index ca3149785a4d..c80d820059fa 100644
--- a/nixpkgs/pkgs/misc/emulators/vice/default.nix
+++ b/nixpkgs/pkgs/misc/emulators/vice/default.nix
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     comment = "Commodore 64 emulator";
     desktopName = "VICE";
     genericName = "Commodore 64 emulator";
-    categories = "Application;Emulator;";
+    categories = "Emulator;";
   };
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/misc/emulators/wine/sources.nix b/nixpkgs/pkgs/misc/emulators/wine/sources.nix
index dd3cae339ca1..bb61872f7c3b 100644
--- a/nixpkgs/pkgs/misc/emulators/wine/sources.nix
+++ b/nixpkgs/pkgs/misc/emulators/wine/sources.nix
@@ -39,19 +39,22 @@ in rec {
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the SHA256 for staging as well.
-    version = "5.10";
+    version = "5.16";
     url = "https://dl.winehq.org/wine/source/5.x/wine-${version}.tar.xz";
-    sha256 = "0g9k094biyjc0ng3vnncdr1psf0ykn36nqirrqdzc5y82s9a1alv";
+    sha256 = "0j9268s1dy4cjvhcf4igbg54gaws4a1l3pda449qy2p2i4psdncq";
     inherit (stable) mono gecko32 gecko64;
   };
 
   staging = fetchFromGitHub rec {
     # https://github.com/wine-staging/wine-staging/releases
     inherit (unstable) version;
-    sha256 = "1nnj52g0kp7i38qw85sp5qsf7gph1hh3ywibrdfpjmjpyj30v7sw";
+    sha256 = "1rrw15mrygv9zcbqz0c3s7q7971wqj89ys2bvvm4b0d2h4j0k6wq";
     owner = "wine-staging";
     repo = "wine-staging";
     rev = "v${version}";
+
+    # Just keep list empty, if current release haven't broken patchsets
+    disabledPatchsets = [ ];
   };
 
   winetricks = fetchFromGitHub rec {
diff --git a/nixpkgs/pkgs/misc/emulators/wine/staging.nix b/nixpkgs/pkgs/misc/emulators/wine/staging.nix
index 48ea93a97a8e..f3b9fa304204 100644
--- a/nixpkgs/pkgs/misc/emulators/wine/staging.nix
+++ b/nixpkgs/pkgs/misc/emulators/wine/staging.nix
@@ -8,7 +8,7 @@ let patch = (callPackage ./sources.nix {}).staging;
 in assert stdenv.lib.getVersion wineUnstable == patch.version;
 
 (stdenv.lib.overrideDerivation wineUnstable (self: {
-  buildInputs = build-inputs [ "perl" "utillinux" "autoconf" ] self.buildInputs;
+  buildInputs = build-inputs [ "perl" "utillinux" "autoconf" "gitMinimal" ] self.buildInputs;
 
   name = "${self.name}-staging";
 
@@ -18,7 +18,7 @@ in assert stdenv.lib.getVersion wineUnstable == patch.version;
     chmod +w patches
     cd patches
     patchShebangs gitapply.sh
-    ./patchinstall.sh DESTDIR="$PWD/.." --all
+    ./patchinstall.sh DESTDIR="$PWD/.." --all ${stdenv.lib.concatMapStringsSep " " (ps: "-W ${ps}") patch.disabledPatchsets}
     cd ..
   '';
 })) // {
diff --git a/nixpkgs/pkgs/misc/flashfocus/default.nix b/nixpkgs/pkgs/misc/flashfocus/default.nix
new file mode 100644
index 000000000000..98f368132a91
--- /dev/null
+++ b/nixpkgs/pkgs/misc/flashfocus/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildPythonApplication, fetchPypi, xcffib, pyyaml, click, i3ipc, marshmallow, cffi, xpybutil, pytestrunner }:
+
+
+buildPythonApplication rec {
+  pname = "flashfocus";
+  version = "2.2.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1z20d596rnc7cs0rrd221gjn14dmbr11djv94y9p4v7rr788sswv";
+  };
+
+  nativeBuildInputs = [ pytestrunner ];
+  propagatedBuildInputs = [ i3ipc xcffib click cffi xpybutil marshmallow pyyaml ];
+
+  # Tests require access to a X session
+  doCheck = false;
+
+  pythonImportsCheck = [ "flashfocus" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/fennerm/flashfocus";
+    description = "Simple focus animations for tiling window managers";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ artturin ];
+  };
+}
diff --git a/nixpkgs/pkgs/misc/ghostscript/default.nix b/nixpkgs/pkgs/misc/ghostscript/default.nix
index a10595591875..d3d06d98cb13 100644
--- a/nixpkgs/pkgs/misc/ghostscript/default.nix
+++ b/nixpkgs/pkgs/misc/ghostscript/default.nix
@@ -45,6 +45,11 @@ stdenv.mkDerivation rec {
   };
 
   patches = [
+    (fetchpatch {
+      name = "CVE-2020-15900.patch";
+      url = "https://github.com/ArtifexSoftware/ghostpdl/commit/5d499272b95a6b890a1397e11d20937de000d31b.patch";
+      sha256 = "1nnnrn8q33x7nc8227ygc60f3mj4bjzrhj40sxp6dah58rb5x5jz";
+    })
     ./urw-font-files.patch
     ./doc-no-ref.diff
     # rebased version of upstream http://git.ghostscript.com/?p=ghostpdl.git;a=patch;h=1b4c3669a20c,
@@ -99,9 +104,6 @@ stdenv.mkDerivation rec {
 
     cp -r Resource "$out/share/ghostscript/${version}"
 
-    mkdir -p "$doc/share/doc/ghostscript"
-    mv "$doc/share/doc/${version}" "$doc/share/doc/ghostscript/"
-
     ln -s "${fonts}" "$out/share/ghostscript/fonts"
   '' + stdenv.lib.optionalString stdenv.isDarwin ''
     for file in $out/lib/*.dylib* ; do
diff --git a/nixpkgs/pkgs/misc/hdt/default.nix b/nixpkgs/pkgs/misc/hdt/default.nix
new file mode 100644
index 000000000000..8a4c7c3e6f54
--- /dev/null
+++ b/nixpkgs/pkgs/misc/hdt/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, libtool, pkgconfig, zlib, serd }:
+
+stdenv.mkDerivation rec {
+  pname = "hdt";
+  version = "1.3.3";
+
+  src = fetchFromGitHub {
+    owner = "rdfhdt";
+    repo = "hdt-cpp";
+    rev = "v${version}";
+    sha256 = "1vsq80jnix6cy78ayag7v8ajyw7h8dqyad1q6xkf2hzz3skvr34z";
+  };
+
+  buildInputs = [ zlib serd ];
+
+  nativeBuildInputs = [ autoreconfHook libtool pkgconfig ];
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    homepage = "http://www.rdfhdt.org/";
+    description = "Header Dictionary Triples (HDT) is a compression format for RDF data that can also be queried for Triple Patterns.";
+    license = licenses.lgpl21;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.koslambrou ];
+  };
+}
diff --git a/nixpkgs/pkgs/misc/logging/beats/6.x.nix b/nixpkgs/pkgs/misc/logging/beats/6.x.nix
index c3bca18a9a44..2d01ea622612 100644
--- a/nixpkgs/pkgs/misc/logging/beats/6.x.nix
+++ b/nixpkgs/pkgs/misc/logging/beats/6.x.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, elk6Version, buildGoPackage, libpcap, systemd }:
+{ stdenv, lib, fetchFromGitHub, elk6Version, buildGoPackage, libpcap, systemd }:
 
 let beat = package : extraArgs : buildGoPackage (rec {
       name = "${package}-${version}";
@@ -46,7 +46,7 @@ in {
       journal entries from Linuxes with systemd.
     '';
     buildInputs = [ systemd.dev ];
-    postFixup = let libPath = stdenv.lib.makeLibraryPath [ systemd.lib ]; in ''
+    postFixup = let libPath = stdenv.lib.makeLibraryPath [ (lib.getLib systemd) ]; in ''
       patchelf --set-rpath ${libPath} "$out/bin/journalbeat"
     '';
   };
diff --git a/nixpkgs/pkgs/misc/logging/beats/7.x.nix b/nixpkgs/pkgs/misc/logging/beats/7.x.nix
index 61c89339fe70..465051d3726e 100644
--- a/nixpkgs/pkgs/misc/logging/beats/7.x.nix
+++ b/nixpkgs/pkgs/misc/logging/beats/7.x.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, elk7Version, buildGoPackage, libpcap, systemd }:
+{ stdenv, lib, fetchFromGitHub, elk7Version, buildGoPackage, libpcap, systemd }:
 
 let beat = package : extraArgs : buildGoPackage (rec {
       name = "${package}-${version}";
@@ -45,7 +45,7 @@ in {
       journal entries from Linuxes with systemd.
     '';
     buildInputs = [ systemd.dev ];
-    postFixup = let libPath = stdenv.lib.makeLibraryPath [ systemd.lib ]; in ''
+    postFixup = let libPath = stdenv.lib.makeLibraryPath [ (lib.getLib systemd) ]; in ''
       patchelf --set-rpath ${libPath} "$out/bin/journalbeat"
     '';
   };
diff --git a/nixpkgs/pkgs/misc/scrcpy/default.nix b/nixpkgs/pkgs/misc/scrcpy/default.nix
index 2f0d184402fc..adebcbd633db 100644
--- a/nixpkgs/pkgs/misc/scrcpy/default.nix
+++ b/nixpkgs/pkgs/misc/scrcpy/default.nix
@@ -5,15 +5,15 @@
 , fetchpatch
 
 , platform-tools
-, ffmpeg_3
+, ffmpeg
 , SDL2
 }:
 
 let
-  version = "1.14";
+  version = "1.15.1";
   prebuilt_server = fetchurl {
     url = "https://github.com/Genymobile/scrcpy/releases/download/v${version}/scrcpy-server-v${version}";
-    sha256 = "082n57a9lw39lfjxybgim09qf0id9m0rpfb3zmqng58fp2i1h6qx";
+    sha256 = "1hrp2rfwl06ff2b2i12ccka58l1brvn6xqgm1f38k36s61mbs1py";
   };
 in
 stdenv.mkDerivation rec {
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
     owner = "Genymobile";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1w06gsvgjdbpb9lvvhpjwmysxjl0daiigjfh3cxfgz88447bgw7j";
+    sha256 = "0ijar1cycj42p39cgpnwdwr6nz5pyr6vacr1gvc0f6k92pl8vr13";
   };
 
   # postPatch:
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ makeWrapper meson ninja pkg-config ];
 
-  buildInputs = [ ffmpeg_3 SDL2 ];
+  buildInputs = [ ffmpeg SDL2 ];
 
   # Manually install the server jar to prevent Meson from "fixing" it
   preConfigure = ''
diff --git a/nixpkgs/pkgs/misc/screensavers/light-locker/default.nix b/nixpkgs/pkgs/misc/screensavers/light-locker/default.nix
index 4d257650338c..c4915bec8959 100644
--- a/nixpkgs/pkgs/misc/screensavers/light-locker/default.nix
+++ b/nixpkgs/pkgs/misc/screensavers/light-locker/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , pkgconfig
@@ -65,7 +66,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/misc/screensavers/pipes/default.nix b/nixpkgs/pkgs/misc/screensavers/pipes/default.nix
index 211b7614f3b8..94d6299d3832 100644
--- a/nixpkgs/pkgs/misc/screensavers/pipes/default.nix
+++ b/nixpkgs/pkgs/misc/screensavers/pipes/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgs }:
+{ stdenv, fetchurl, makeWrapper, coreutils, ncurses }:
 
 stdenv.mkDerivation rec {
   pname = "pipes";
@@ -9,11 +9,14 @@ stdenv.mkDerivation rec {
     sha256 = "09m4alb3clp3rhnqga5v6070p7n1gmnwp2ssqhq87nf2ipfpcaak";
   };
 
-  buildInputs = with pkgs; [ bash ];
+  buildInputs = [ makeWrapper ];
 
   installPhase = ''
     mkdir $out -p
     make PREFIX=$out/ install
+
+    wrapProgram $out/bin/pipes.sh \
+      --set PATH "${stdenv.lib.makeBinPath [ coreutils ncurses ]}"
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix b/nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix
index 9cc093f222b3..b59ed85f6bc2 100644
--- a/nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix
+++ b/nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix
@@ -2,11 +2,11 @@
 , libXdmcp, libXt }:
 
 stdenv.mkDerivation rec {
-  name = "xlockmore-5.63";
+  name = "xlockmore-5.65";
 
   src = fetchurl {
     url = "http://sillycycle.com/xlock/${name}.tar.xz";
-    sha256 = "1qhbl6axffbajxzwg4xyf52hdxk5xvg63gxk0s9z8g0fdfj242wr";
+    sha256 = "0d4l8ibbvc62whlq8rrbvqr3011a7h21l9na93r579g0dfwdbh6d";
     curlOpts = "--user-agent 'Mozilla/5.0'";
   };
 
diff --git a/nixpkgs/pkgs/misc/screensavers/xscreensaver/default.nix b/nixpkgs/pkgs/misc/screensavers/xscreensaver/default.nix
index 1dd09852d27c..71108c9c6899 100644
--- a/nixpkgs/pkgs/misc/screensavers/xscreensaver/default.nix
+++ b/nixpkgs/pkgs/misc/screensavers/xscreensaver/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchurl, pkgconfig, bc, perl, perlPackages, pam, libXext, libXScrnSaver, libX11
 , libXrandr, libXmu, libXxf86vm, libXrender, libXxf86misc, libjpeg, libGLU, libGL, gtk2
-, libxml2, libglade, intltool, xorg, makeWrapper, gle
+, libxml2, libglade, intltool, xorg, makeWrapper, gle, gdk-pixbuf, gdk-pixbuf-xlib
 , forceInstallAllHacks ? false
 }:
 
@@ -16,7 +16,8 @@ stdenv.mkDerivation rec {
   buildInputs =
     [ pkgconfig bc perl libjpeg libGLU libGL gtk2 libxml2 libglade pam
       libXext libXScrnSaver libX11 libXrandr libXmu libXxf86vm libXrender
-      libXxf86misc intltool xorg.appres makeWrapper gle
+      libXxf86misc intltool xorg.appres makeWrapper gle gdk-pixbuf
+      gdk-pixbuf-xlib
     ];
 
   preConfigure =
diff --git a/nixpkgs/pkgs/misc/seafile-shared/default.nix b/nixpkgs/pkgs/misc/seafile-shared/default.nix
index 7546c7626ed8..21a89e5f5f2e 100644
--- a/nixpkgs/pkgs/misc/seafile-shared/default.nix
+++ b/nixpkgs/pkgs/misc/seafile-shared/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "seafile-shared";
-  version = "7.0.7";
+  version = "7.0.8";
 
   src = fetchFromGitHub {
     owner = "haiwen";
     repo = "seafile";
     rev = "v${version}";
-    sha256 = "0vgzb923x2q2w1zgbc56d50a5qj9xm77lg7czfzg3va7vd921gy8";
+    sha256 = "0q0zylv8hkhnfw0084bj1wmqwqvpflmdy1njxvvkjsbnflh8kc2y";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/misc/sndio/default.nix b/nixpkgs/pkgs/misc/sndio/default.nix
index c415714f573c..46c505ed439c 100644
--- a/nixpkgs/pkgs/misc/sndio/default.nix
+++ b/nixpkgs/pkgs/misc/sndio/default.nix
@@ -1,23 +1,17 @@
-{ stdenv, fetchurl, alsaLib }:
+{ stdenv, fetchurl, alsaLib, fixDarwinDylibNames }:
 
 stdenv.mkDerivation rec {
   pname = "sndio";
-  version = "1.6.0";
+  version = "1.7.0";
   enableParallelBuilding = true;
-  buildInputs = stdenv.lib.optionals stdenv.isLinux [ alsaLib ];
+  buildInputs = stdenv.lib.optionals stdenv.isLinux [ alsaLib ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ fixDarwinDylibNames ];
 
   src = fetchurl {
     url = "http://www.sndio.org/sndio-${version}.tar.gz";
-    sha256 = "1havdx3q4mipgddmd2bnygr1yh6y64567m1yqwjapkhsq550dq4r";
+    sha256 = "0ljmac0lnjn61admgbcwjfcr5fwccrsblx9rj9bys8wlhz8f796x";
   };
 
-  postFixup = stdenv.lib.optionalString stdenv.isDarwin ''
-    install_name_tool -id $out/lib/libsndio.7.0.dylib $out/lib/libsndio.7.0.dylib
-    for file in $out/bin/*; do
-      install_name_tool -change libsndio.7.0.dylib $out/lib/libsndio.dylib $file
-    done
-  '';
-
   meta = with stdenv.lib; {
     homepage = "http://www.sndio.org";
     description = "Small audio and MIDI framework part of the OpenBSD project";
diff --git a/nixpkgs/pkgs/misc/solfege/default.nix b/nixpkgs/pkgs/misc/solfege/default.nix
index 05e13f3c9aae..21615b0c2b65 100644
--- a/nixpkgs/pkgs/misc/solfege/default.nix
+++ b/nixpkgs/pkgs/misc/solfege/default.nix
@@ -15,6 +15,7 @@ buildPythonApplication rec {
   patches = [
     ./css.patch
     ./menubar.patch
+    ./texinfo.patch
     ./webbrowser.patch
   ];
 
diff --git a/nixpkgs/pkgs/misc/solfege/texinfo.patch b/nixpkgs/pkgs/misc/solfege/texinfo.patch
new file mode 100644
index 000000000000..d681b3e901bd
--- /dev/null
+++ b/nixpkgs/pkgs/misc/solfege/texinfo.patch
@@ -0,0 +1,20 @@
+Fix build with texinfo 6.7. Otherwise
+
+    makeinfo -I topdocs --no-split --no-headers --output AUTHORS topdocs/AUTHORS.texi
+
+fails with
+
+    utf8 "\xC1" does not map to Unicode at /nix/store/...-texinfo-6.7/share/texinfo/Texinfo/ParserNonXS.pm line 1796, <FH> line 38.
+
+--- a/topdocs/AUTHORS.texi
++++ b/topdocs/AUTHORS.texi
+@@ -1,2 +1,3 @@
+ \input texinfo
++@documentencoding ISO-8859-1
+ @setfilename AUTHORS.info
+--- a/topdocs/README.texi
++++ b/topdocs/README.texi
+@@ -1,2 +1,3 @@
+ \input texinfo
++@documentencoding ISO-8859-1
+ @setfilename README.info
diff --git a/nixpkgs/pkgs/misc/stabber/default.nix b/nixpkgs/pkgs/misc/stabber/default.nix
index 17ef047ede73..2c63bf40d36b 100644
--- a/nixpkgs/pkgs/misc/stabber/default.nix
+++ b/nixpkgs/pkgs/misc/stabber/default.nix
@@ -6,13 +6,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation {
   pname = "stabber-unstable";
-  version = "2016-11-09";
+  version = "2020-06-08";
 
   src = fetchFromGitHub {
     owner = "boothj5";
     repo = "stabber";
-    rev = "ed75087e4483233eb2cc5472dbd85ddfb7a1d4d4";
-    sha256 = "1l6cibggi9rx6d26j1g92r1m8zm1g899f6z7n4pfqp84mrfqgz0p";
+    rev = "3e5c2200715666aad403d0076e8ab584b329965e";
+    sha256 = "0042nbgagl4gcxa5fj7bikjdi1gbk0jwyqnzc5lswpb0l5y0i1ql";
   };
 
   preAutoreconf = ''
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Stubbed XMPP Server";
-    homepage = "https://github.com/boothj5/stabber";
+    homepage = "https://github.com/profanity-im/stabber";
     license = licenses.gpl3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ hschaeidt ];
diff --git a/nixpkgs/pkgs/misc/tmux-plugins/default.nix b/nixpkgs/pkgs/misc/tmux-plugins/default.nix
index 23c513ea175c..8efa0000da7b 100644
--- a/nixpkgs/pkgs/misc/tmux-plugins/default.nix
+++ b/nixpkgs/pkgs/misc/tmux-plugins/default.nix
@@ -89,12 +89,12 @@ in rec {
 
   cpu = mkDerivation {
     pluginName = "cpu";
-    version = "unstable-2020-04-05";
+    version = "unstable-2020-07-25";
     src = fetchFromGitHub {
       owner = "tmux-plugins";
       repo = "tmux-cpu";
-      rev = "8858050756e1fc3c081d37894b441f05ea893a67";
-      sha256 = "1bydzrnd9y5y46hjr844p4ylx2dpijn6pv3w94yyvwbyswmirhff";
+      rev = "20120a38ade17057441482b43eb5390e6ea2c1c1";
+      sha256 = "1gdz2awyd9icvyiw2p40gwymh6ngjhb9mkiv63ix53snp9ii794i";
     };
   };
 
@@ -109,6 +109,20 @@ in rec {
     };
   };
 
+  fingers = mkDerivation rec {
+    pluginName = "fingers";
+    rtpFilePath = "tmux-fingers.tmux";
+    version = "1.0.1";
+    src = fetchFromGitHub {
+      owner = "Morantron";
+      repo = "tmux-fingers";
+      rev = version;
+      sha256 = "0gp37m3d0irrsih96qv2yalvr1wmf1n64589d4qzyzq16lzyjcr0";
+      fetchSubmodules = true;
+    };
+    dependencies = [ pkgs.gawk ];
+  };
+
   fpp = mkDerivation {
     pluginName = "fpp";
     version = "unstable-2016-03-08";
@@ -170,6 +184,17 @@ in rec {
     };
   };
 
+  nord = mkDerivation rec {
+    pluginName = "nord";
+    version = "0.3.0";
+    src = pkgs.fetchFromGitHub {
+      owner = "arcticicestudio";
+      repo = "nord-tmux";
+      rev = "v${version}";
+      sha256 = "14xhh49izvjw4ycwq5gx4if7a0bcnvgsf3irywc3qps6jjcf5ymk";
+    };
+  };
+
   maildir-counter = mkDerivation {
     pluginName = "maildir-counter";
     version = "unstable-2016-11-25";
diff --git a/nixpkgs/pkgs/misc/uboot/default.nix b/nixpkgs/pkgs/misc/uboot/default.nix
index 1bd4dfffd8e1..59f73b42439a 100644
--- a/nixpkgs/pkgs/misc/uboot/default.nix
+++ b/nixpkgs/pkgs/misc/uboot/default.nix
@@ -18,10 +18,10 @@
 }:
 
 let
-  defaultVersion = "2020.04";
+  defaultVersion = "2020.07";
   defaultSrc = fetchurl {
     url = "ftp://ftp.denx.de/pub/u-boot/u-boot-${defaultVersion}.tar.bz2";
-    sha256 = "0wjkasnz87q86hx93inspdjfjsinmxi87bcvj30c773x0fpjlwzy";
+    sha256 = "0sjzy262x93aaqd6z24ziaq19xjjjk5f577ivf768vmvwsgbzxf1";
   };
   buildUBoot = {
     version ? null
@@ -176,7 +176,7 @@ in {
   ubootNovena = buildUBoot {
     defconfig = "novena_defconfig";
     extraMeta.platforms = ["armv7l-linux"];
-    filesToInstall = ["u-boot.bin" "SPL"];
+    filesToInstall = ["u-boot-dtb.img" "SPL"];
   };
 
   # Flashing instructions:
@@ -271,6 +271,13 @@ in {
     filesToInstall = ["u-boot-sunxi-with-spl.bin"];
   };
 
+  ubootPinebookPro = buildUBoot {
+    defconfig = "pinebook-pro-rk3399_defconfig";
+    extraMeta.platforms = ["aarch64-linux"];
+    BL31 = "${armTrustedFirmwareRK3399}/bl31.elf";
+    filesToInstall = [ "u-boot.itb" "idbloader.img"];
+  };
+
   ubootQemuAarch64 = buildUBoot {
     defconfig = "qemu_arm64_defconfig";
     extraMeta.platforms = ["aarch64-linux"];
diff --git a/nixpkgs/pkgs/misc/uq/default.nix b/nixpkgs/pkgs/misc/uq/default.nix
index fe3a1e2a5d15..5c0fb9549100 100755
--- a/nixpkgs/pkgs/misc/uq/default.nix
+++ b/nixpkgs/pkgs/misc/uq/default.nix
@@ -21,6 +21,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/lostutils/uq";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/misc/vim-plugins/deprecated.json b/nixpkgs/pkgs/misc/vim-plugins/deprecated.json
index 218a1ab622fd..b95e91a19b2c 100644
--- a/nixpkgs/pkgs/misc/vim-plugins/deprecated.json
+++ b/nixpkgs/pkgs/misc/vim-plugins/deprecated.json
@@ -3,6 +3,10 @@
         "date": "2020-03-27",
         "new": "vim-gist"
     },
+    "nvim-lsp": {
+        "date": "2020-08-31",
+        "new": "nvim-lspconfig"
+    },
     "vim-jade": {
         "date": "2020-03-27",
         "new": "vim-pug"
diff --git a/nixpkgs/pkgs/misc/vim-plugins/generated.nix b/nixpkgs/pkgs/misc/vim-plugins/generated.nix
index e3714edc0aef..24f2750fe68f 100644
--- a/nixpkgs/pkgs/misc/vim-plugins/generated.nix
+++ b/nixpkgs/pkgs/misc/vim-plugins/generated.nix
@@ -41,12 +41,12 @@ let
 
   agda-vim = buildVimPluginFrom2Nix {
     pname = "agda-vim";
-    version = "2020-04-06";
+    version = "2020-07-26";
     src = fetchFromGitHub {
       owner = "derekelkins";
       repo = "agda-vim";
-      rev = "3643fa185ebe3bf35cf690a4b3b90d36e36405b0";
-      sha256 = "09lpg223l1s8zpsmbg1r18cnr7r3np32nsv185qgcv889mlildqn";
+      rev = "3c92e212a05eb254849a597d8d002abf69699aa0";
+      sha256 = "0m3kinhzjk0cky372j1kw6hhy14khshkh9jbw35a5q18c4xvy4pq";
     };
     meta.homepage = "https://github.com/derekelkins/agda-vim/";
   };
@@ -65,12 +65,12 @@ let
 
   ale = buildVimPluginFrom2Nix {
     pname = "ale";
-    version = "2020-06-11";
+    version = "2020-09-26";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "1428c7b29e50af56f53ee1d587679d97a027dd72";
-      sha256 = "0zhrgfsk7fvs8wabgdp5ps73ggsghsw19cnjvlbw4cnib6p9176a";
+      rev = "94927195eeb5f8576d81ae5c35c0b63b07d6c412";
+      sha256 = "1jyxxn6j7jkcr1yky6p1y798rza04q3pivsddig8qk85kg6dkgy5";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -89,12 +89,12 @@ let
 
   ansible-vim = buildVimPluginFrom2Nix {
     pname = "ansible-vim";
-    version = "2020-05-14";
+    version = "2020-07-13";
     src = fetchFromGitHub {
       owner = "pearofducks";
       repo = "ansible-vim";
-      rev = "fa0192fe508000d904e79d17706471732075c653";
-      sha256 = "12nhiz5hnbi4l5ksb26xhj47r5g5z68zncgdlmqkkfqzqw1cj9c3";
+      rev = "cfdde31672bce2f60bedc36842ab9bca8d28ba5b";
+      sha256 = "01lpnvdym9izaq29kbgwa7kl303nnzsn0cpqq75bv7glymglbn0m";
     };
     meta.homepage = "https://github.com/pearofducks/ansible-vim/";
   };
@@ -135,14 +135,26 @@ let
     meta.homepage = "https://github.com/vim-scripts/argtextobj.vim/";
   };
 
+  asyncomplete-vim = buildVimPluginFrom2Nix {
+    pname = "asyncomplete-vim";
+    version = "2020-09-17";
+    src = fetchFromGitHub {
+      owner = "prabirshrestha";
+      repo = "asyncomplete.vim";
+      rev = "20a279b079452dba6e841755f8e9cc5aed75d05e";
+      sha256 = "0fsafx0h3nmsrsscg233cyfhm2vj6n1k0n37l2mg0kbv77pzicga";
+    };
+    meta.homepage = "https://github.com/prabirshrestha/asyncomplete.vim/";
+  };
+
   ats-vim = buildVimPluginFrom2Nix {
     pname = "ats-vim";
-    version = "2020-03-24";
+    version = "2020-09-04";
     src = fetchFromGitHub {
       owner = "vmchale";
       repo = "ats-vim";
-      rev = "a17576687217a2e8066356cc211afb99b5de65e8";
-      sha256 = "0dv60za39v2w5d9mbk1r263fqpv11bdfyqp39b0snw40f0kh92z0";
+      rev = "8e3e722b6d09ed81313573b4e7b108b265628ff1";
+      sha256 = "1jj4q8dmal7rgizqm59dbgjf8by8lxjwnbg39gkbmjiwhdj8q67h";
     };
     meta.homepage = "https://github.com/vmchale/ats-vim/";
   };
@@ -185,12 +197,12 @@ let
 
   awesome-vim-colorschemes = buildVimPluginFrom2Nix {
     pname = "awesome-vim-colorschemes";
-    version = "2020-03-26";
+    version = "2020-09-11";
     src = fetchFromGitHub {
       owner = "rafi";
       repo = "awesome-vim-colorschemes";
-      rev = "4ad0ce02b8efa3c6e014e224a34b67b927d31c88";
-      sha256 = "0crg0gph8wmb412yvknh6ic42i3p5hd8c736rv61v52b2g0dgwxm";
+      rev = "41a0d9ea4dac077c2050ceaf144f9ed72d6849d8";
+      sha256 = "12ivlzyw0iq9jsj3ll2wwbya0ssl4vdk1vvjpg7v4xhxgh96s3jr";
     };
     meta.homepage = "https://github.com/rafi/awesome-vim-colorschemes/";
   };
@@ -269,12 +281,12 @@ let
 
   calendar-vim = buildVimPluginFrom2Nix {
     pname = "calendar-vim";
-    version = "2020-06-09";
+    version = "2020-08-15";
     src = fetchFromGitHub {
       owner = "itchyny";
       repo = "calendar.vim";
-      rev = "932648c890d27b3a1f0e5f5f63e4564384dfdb63";
-      sha256 = "1p1lrxk45qphpmnkszhaks7li0h3y3biif9427n6mjckl860g5c7";
+      rev = "9b2dcc18ba104820eac1701aaca44dcc24d90eb4";
+      sha256 = "1vy0np1i8whyw9wfkcx564kvlxspwvrp4sznk6iixjln6ha7ngil";
     };
     meta.homepage = "https://github.com/itchyny/calendar.vim/";
   };
@@ -329,12 +341,12 @@ let
 
   clang_complete = buildVimPluginFrom2Nix {
     pname = "clang_complete";
-    version = "2020-05-06";
+    version = "2020-09-18";
     src = fetchFromGitHub {
       owner = "xavierd";
       repo = "clang_complete";
-      rev = "10e5102af5d1b16ba7aa3fb51d67153041f82ed7";
-      sha256 = "0crynvmdp9a5rws5hfnsn19kxqviyp29n8fz40wq7k1g5vrhvdl7";
+      rev = "293a1062274a06be61797612034bd8d87851406e";
+      sha256 = "1whipcrr4pcg1bkivq3l753v3f3glbhkdd6wp6f9czspr7hx2h2d";
     };
     meta.homepage = "https://github.com/xavierd/clang_complete/";
   };
@@ -351,184 +363,64 @@ let
     meta.homepage = "https://github.com/bbchung/clighter8/";
   };
 
-  coc-css = buildVimPluginFrom2Nix {
-    pname = "coc-css";
-    version = "2020-04-15";
+  coc-clap = buildVimPluginFrom2Nix {
+    pname = "coc-clap";
+    version = "2020-07-17";
     src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-css";
-      rev = "41fe3122753b62c4416eb5e4ca4bef1cb3d3ebd2";
-      sha256 = "13xg0v2iwf8nrd1bba5nmwgav37fb8q4fqr5bsg3qxlbghpw0bbl";
+      owner = "vn-ki";
+      repo = "coc-clap";
+      rev = "09d9059c243a25c5859fd73fff6b664d8bf5eed0";
+      sha256 = "057kad7nwc75c92d2al6q25gs7vrf0l14529iclrgd61vg369sva";
     };
-    meta.homepage = "https://github.com/neoclide/coc-css/";
+    meta.homepage = "https://github.com/vn-ki/coc-clap/";
   };
 
   coc-denite = buildVimPluginFrom2Nix {
     pname = "coc-denite";
-    version = "2020-04-17";
+    version = "2020-09-10";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc-denite";
-      rev = "50a573af21a9563f331f2711f3fd7a568c33907f";
-      sha256 = "06h3if5sn5sqgrq1ql1j7g5xy658mwywd7ri1hajzi8s3mb5lanq";
+      rev = "8ff425faab53e8bb8c53eec1afdf19a29c8086f6";
+      sha256 = "06ddv9brb4zy8ylas36dkmblr93n6c5dp6vpp3c7asxc1kx58gc5";
     };
     meta.homepage = "https://github.com/neoclide/coc-denite/";
   };
 
-  coc-emmet = buildVimPluginFrom2Nix {
-    pname = "coc-emmet";
-    version = "2020-05-19";
+  coc-explorer = buildVimPluginFrom2Nix {
+    pname = "coc-explorer";
+    version = "2020-09-19";
     src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-emmet";
-      rev = "5424c10fb8c451059cdcf04b10aa7c28178ce5b0";
-      sha256 = "15zfmsy7ymcp3js3y8f6wvwj3r0p9a45v1zvq07ilwri91z6nkrl";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-emmet/";
-  };
-
-  coc-eslint = buildVimPluginFrom2Nix {
-    pname = "coc-eslint";
-    version = "2020-05-21";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-eslint";
-      rev = "eed42192dab175bbf249e21c18c85cbd5afdd92a";
-      sha256 = "1a9csiyj7abksar917acfjgypmc28rcfsqga0p1550mjxvkjr2ia";
+      owner = "weirongxu";
+      repo = "coc-explorer";
+      rev = "810fa85761f44519116d4c8020f163e4ec76ad01";
+      sha256 = "04gnz214gkb3hsxb2xwisbmmjf6njka6yvaf8xcwzplzxxnl2zxg";
     };
-    meta.homepage = "https://github.com/neoclide/coc-eslint/";
+    meta.homepage = "https://github.com/weirongxu/coc-explorer/";
   };
 
   coc-fzf = buildVimPluginFrom2Nix {
     pname = "coc-fzf";
-    version = "2020-06-13";
+    version = "2020-09-03";
     src = fetchFromGitHub {
       owner = "antoinemadec";
       repo = "coc-fzf";
-      rev = "2c98c9f34718f5f639bfaae1c193fbe39749f7fc";
-      sha256 = "126yqr53y4y30p4sp7942nic6lql6lfx0a1wb0psrrvrc8ccbbpp";
+      rev = "2047783c1c9f7bcc020612a719d932e848a2d39d";
+      sha256 = "15fxpip9zz5z8np3qrsgadh7p8y8446bxb9vbcr80fcq3j8fmq0v";
     };
     meta.homepage = "https://github.com/antoinemadec/coc-fzf/";
   };
 
-  coc-git = buildVimPluginFrom2Nix {
-    pname = "coc-git";
-    version = "2020-06-11";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-git";
-      rev = "bbddf4a9447848cdd18a693268bffcc0fe523c08";
-      sha256 = "11c5rnlf45wz0slvl0gcqcdc9xb859pxy44xynfbbsl0ii1l8zc1";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-git/";
-  };
-
-  coc-go = buildVimPluginFrom2Nix {
-    pname = "coc-go";
-    version = "2020-06-10";
+  coc-markdownlint = buildVimPluginFrom2Nix {
+    pname = "coc-markdownlint";
+    version = "2020-09-17";
     src = fetchFromGitHub {
-      owner = "josa42";
-      repo = "coc-go";
-      rev = "38b0b30355f85a7952a2e6602fdb1cdf9141a501";
-      sha256 = "0wmdfcglvixfqahjg3lc5q7y36wk6lzczr5nhnwixh9cis1nybx6";
-    };
-    meta.homepage = "https://github.com/josa42/coc-go/";
-  };
-
-  coc-highlight = buildVimPluginFrom2Nix {
-    pname = "coc-highlight";
-    version = "2019-10-18";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-highlight";
-      rev = "b4e82ebd5fe855d004dd481e2ecf2fa88faed284";
-      sha256 = "06h64jq8cgj5hc19inidns046kkb76750179jsw7xv5zbp93ygap";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-highlight/";
-  };
-
-  coc-html = buildVimPluginFrom2Nix {
-    pname = "coc-html";
-    version = "2020-03-30";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-html";
-      rev = "8ae5d2832761b5868f69c67f33ce26f9edb26c65";
-      sha256 = "1rf9qfimnbxjr5s55pzm8npixan5cz2v17g4j34f18i9ky6yyk0b";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-html/";
-  };
-
-  coc-imselect = buildVimPluginFrom2Nix {
-    pname = "coc-imselect";
-    version = "2020-02-18";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-imselect";
-      rev = "01442d2fb7d344122e59755f59782a0e1bf7d294";
-      sha256 = "1vqx9yna66njdw1my15ac6djr3yvnb6das96nx12mpingnw85kky";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-imselect/";
-  };
-
-  coc-java = buildVimPluginFrom2Nix {
-    pname = "coc-java";
-    version = "2020-05-29";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-java";
-      rev = "bf698c0df4d63c7c84013d58111b7b458f6b12f1";
-      sha256 = "1nyswz55dg4d1nz6ff2479ibnzcdhv9ky8a4awlakwp0g0c3680s";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-java/";
-  };
-
-  coc-jest = buildVimPluginFrom2Nix {
-    pname = "coc-jest";
-    version = "2020-05-27";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-jest";
-      rev = "431471caa9011868327fff0f9f7e0a944b7ca33b";
-      sha256 = "0vcri3kp8njsp4zgl74vc6ydhxq5spzx6pm798jh2lvrid2byvg9";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-jest/";
-  };
-
-  coc-json = buildVimPluginFrom2Nix {
-    pname = "coc-json";
-    version = "2020-05-12";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-json";
-      rev = "66b482dbc8008b9a111e6141aa2e63baa16fb2d4";
-      sha256 = "0ixqk417ba1yz7lnjkir5h9h8qm5jc9sh2190vmddxr8wgxhjhbb";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-json/";
-  };
-
-  coc-lists = buildVimPluginFrom2Nix {
-    pname = "coc-lists";
-    version = "2020-04-28";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-lists";
-      rev = "aaa16caf94c50e7c301cb3848e988639cf0599a3";
-      sha256 = "1m8i8r7fl1csnx6f4mrbaf7ncng8yyfnprqax0zyiryc5i4nqjbg";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-lists/";
-  };
-
-  coc-metals = buildVimPluginFrom2Nix {
-    pname = "coc-metals";
-    version = "2020-06-12";
-    src = fetchFromGitHub {
-      owner = "ckipp01";
-      repo = "coc-metals";
-      rev = "b6ed6dad8c9f57e2ee84b60c0cf69c88c5ccf3bc";
-      sha256 = "0abvls1vxyzxzsrlmm5javahsxxslgli43b1ffbrk7cz8cbhgdsy";
+      owner = "fannheyward";
+      repo = "coc-markdownlint";
+      rev = "3da74c203bf9db5c702142791338c1fdeec3310d";
+      sha256 = "09zh0pchv0iirr7hfig1x6zai90fzg33ap9n6dhd3fa2yrd8qgci";
     };
-    meta.homepage = "https://github.com/ckipp01/coc-metals/";
+    meta.homepage = "https://github.com/fannheyward/coc-markdownlint/";
   };
 
   coc-neco = buildVimPluginFrom2Nix {
@@ -543,266 +435,50 @@ let
     meta.homepage = "https://github.com/neoclide/coc-neco/";
   };
 
-  coc-pairs = buildVimPluginFrom2Nix {
-    pname = "coc-pairs";
-    version = "2020-03-09";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-pairs";
-      rev = "79deeaabdc4f091c22f3dd67d439a0a336e8aa7e";
-      sha256 = "1w6p2dk7yj8ldxg1qxh9zpn9ypm6gn66gi0vbax33wf5c0dmp0v9";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-pairs/";
-  };
-
-  coc-prettier = buildVimPluginFrom2Nix {
-    pname = "coc-prettier";
-    version = "2020-05-27";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-prettier";
-      rev = "1fbfe34dfce455111e3eae939fc8a37d2fd1ec42";
-      sha256 = "170zhsq73shykxszwwcqakrnl5cawf9kkgc1mqy0l0jqmw3jk8qy";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-prettier/";
-  };
-
-  coc-python = buildVimPluginFrom2Nix {
-    pname = "coc-python";
-    version = "2020-05-08";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-python";
-      rev = "c4b450a62020ff37b27ea0b8d05de3e3c53344c6";
-      sha256 = "1hk29c55nk21avhrk9i8dppcid62jnr1y2b9lml14c4y01yr4mpp";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-python/";
-  };
-
-  coc-r-lsp = buildVimPluginFrom2Nix {
-    pname = "coc-r-lsp";
-    version = "2019-12-07";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-r-lsp";
-      rev = "a1b97e36c601975a8d730b6965f25592b1ecd1e7";
-      sha256 = "04g1kbgm8p0asrsibmg4w6wj8i2xzwc70g7rkcs2bj3pakbkvws6";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-r-lsp/";
-  };
-
-  coc-rls = buildVimPluginFrom2Nix {
-    pname = "coc-rls";
-    version = "2020-05-13";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-rls";
-      rev = "166fd05342d026759246594eb5fd8d0bc240505d";
-      sha256 = "17x0h2g5791z5xmhl7kps09b9zrac2yni3r59rrx96rry50fkca5";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-rls/";
-  };
-
-  coc-rust-analyzer = buildVimPluginFrom2Nix {
-    pname = "coc-rust-analyzer";
-    version = "2020-06-11";
-    src = fetchFromGitHub {
-      owner = "fannheyward";
-      repo = "coc-rust-analyzer";
-      rev = "a2e98801bcbe88d100f2fcb23087ba61203ad101";
-      sha256 = "0a2a6pjvbb29syhh796z3gfrgjx4vpkbjirsgzdfb12icigbjdz7";
-    };
-    meta.homepage = "https://github.com/fannheyward/coc-rust-analyzer/";
-  };
-
-  coc-smartf = buildVimPluginFrom2Nix {
-    pname = "coc-smartf";
-    version = "2019-07-26";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-smartf";
-      rev = "d40714eab8e5fe26fac492ffd30e98cd1bfbdec5";
-      sha256 = "0kfrq5hk8zn24cl7fiy48nyvd30a2dva93c61079axkdg9912yd7";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-smartf/";
-  };
-
-  coc-snippets = buildVimPluginFrom2Nix {
-    pname = "coc-snippets";
-    version = "2020-06-10";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-snippets";
-      rev = "a36f36afe7094562756202d1bb88c1f80597393e";
-      sha256 = "117idj29gk8psj27zmwazanwxf4br08mlkcpnkxyw6blm5aibzpp";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-snippets/";
-  };
-
-  coc-solargraph = buildVimPluginFrom2Nix {
-    pname = "coc-solargraph";
-    version = "2020-02-14";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-solargraph";
-      rev = "231447aae26a0e88aa6d9e207a7354c4ca37d564";
-      sha256 = "0amcx519r9j8jr6ckglywsjlyph3m5jq4qvbfwyir8ihxhxa4b0d";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-solargraph/";
-  };
-
   coc-spell-checker = buildVimPluginFrom2Nix {
     pname = "coc-spell-checker";
-    version = "2020-05-15";
+    version = "2020-09-15";
     src = fetchFromGitHub {
       owner = "iamcco";
       repo = "coc-spell-checker";
-      rev = "bc9802c667aac992fab2f47b0da096c28dca0dfd";
-      sha256 = "1fsjf07w0z9l2zra46krpg1d6qxg51niz9zmxas66si90qb2j3d7";
+      rev = "a76ebbff41fec61bb7a3c2556a670720db3f9ff9";
+      sha256 = "0i2znngg8jyxgns1kqi5168c4899wj2b8h8n14yy6pxgidhgqvzp";
     };
     meta.homepage = "https://github.com/iamcco/coc-spell-checker/";
   };
 
-  coc-stylelint = buildVimPluginFrom2Nix {
-    pname = "coc-stylelint";
-    version = "2019-08-20";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-stylelint";
-      rev = "288a372261cbc23ae4a6e26b1621c6e3218d00ad";
-      sha256 = "1qir8diqnv1a78lzw9p3jsbni52gdg38rx1lj5i4iyff9282ir2x";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-stylelint/";
-  };
-
-  coc-tabnine = buildVimPluginFrom2Nix {
-    pname = "coc-tabnine";
-    version = "2020-01-06";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-tabnine";
-      rev = "442c829185ecab2268d1b9fd076c5286bbd39562";
-      sha256 = "0as4b33nnp7anqbxkkja8lp37y4a74b3507zyk3gmmna0my1ca3r";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-tabnine/";
-  };
-
-  coc-tslint = buildVimPluginFrom2Nix {
-    pname = "coc-tslint";
-    version = "2019-07-03";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-tslint";
-      rev = "6128761577806d7047fa05d1a527945490d6316c";
-      sha256 = "1vi4vrawknkd5wjyb0j143jbfis9vaanl219a7argirwjs057vpd";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-tslint/";
-  };
-
-  coc-tslint-plugin = buildVimPluginFrom2Nix {
-    pname = "coc-tslint-plugin";
-    version = "2019-07-18";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-tslint-plugin";
-      rev = "acc1356253a5088f630d9910b5fc13dc5d108bbc";
-      sha256 = "1cjgimqgd70x5zhw641z6g4hc54vrkg3r4sscg092gkrdpkq3969";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-tslint-plugin/";
-  };
-
-  coc-tsserver = buildVimPluginFrom2Nix {
-    pname = "coc-tsserver";
-    version = "2020-05-22";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-tsserver";
-      rev = "bac002caef532d6dc58c10a2885eeed463082d4f";
-      sha256 = "1b10bdlqbj82rragymka691fz0phgk6v63diijkyb1ia302q1613";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-tsserver/";
-  };
-
-  coc-vetur = buildVimPluginFrom2Nix {
-    pname = "coc-vetur";
-    version = "2020-05-14";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-vetur";
-      rev = "679eb834ac8c16290a0cc50ab7c222e1144644f7";
-      sha256 = "1jkz0qixrp7vzpv9l2ls0yl5kyqzi3bbvydpifdb858j8jqbk4dq";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-vetur/";
-  };
-
-  coc-vimtex = buildVimPluginFrom2Nix {
-    pname = "coc-vimtex";
-    version = "2020-03-27";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-vimtex";
-      rev = "0a4f8ee29afc4e1dcfdc8846f116a1db32fa9867";
-      sha256 = "0z9kxm40kr8a5sa06vkg7xaai2n54y21xfkrsx774zzdkcrrkizk";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-vimtex/";
-  };
-
-  coc-wxml = buildVimPluginFrom2Nix {
-    pname = "coc-wxml";
-    version = "2019-06-20";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-wxml";
-      rev = "f02550939d33a0175c34186904c376bbae878e60";
-      sha256 = "1448019dzdy55j4plhzlnp2qkfzk0zkqqs7kn94ndn60hn1x889m";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-wxml/";
-  };
-
-  coc-yaml = buildVimPluginFrom2Nix {
-    pname = "coc-yaml";
-    version = "2020-03-06";
+  coc-vimlsp = buildVimPluginFrom2Nix {
+    pname = "coc-vimlsp";
+    version = "2020-08-01";
     src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-yaml";
-      rev = "338192a2434b96b139fb8c07d260da00b3100997";
-      sha256 = "020jpsm9ss2v3x1g43m920w2yamv8khl7mg7wm4sx6qsl3rlfq4g";
-    };
-    meta.homepage = "https://github.com/neoclide/coc-yaml/";
-  };
-
-  coc-yank = buildVimPluginFrom2Nix {
-    pname = "coc-yank";
-    version = "2020-06-02";
-    src = fetchFromGitHub {
-      owner = "neoclide";
-      repo = "coc-yank";
-      rev = "7983c28509a61a7eb014e178525845797f5779ed";
-      sha256 = "1mjdd1kqvc5hzygjs2gv8vrpr3wc2a9590cr6vq0pfllxbkyqjng";
+      owner = "iamcco";
+      repo = "coc-vimlsp";
+      rev = "efb672fe82d8619d83d3978714393e13aee8e296";
+      sha256 = "16whzvyzbx8zh7z33w7pir264dmbapkanb15mkazfhkh0wm3sfvf";
     };
-    meta.homepage = "https://github.com/neoclide/coc-yank/";
+    meta.homepage = "https://github.com/iamcco/coc-vimlsp/";
   };
 
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc-nvim";
-    version = "2020-06-13";
+    version = "2020-09-26";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "d66250193333f786b0706d4f1aebbd3e17505c43";
-      sha256 = "0k4f0xf9h6v5xhvkzklg233x6y15bn22yg07g3nkgh10b8mpspbs";
+      rev = "2b83490cb1228abe4bf2c2557f1407321f6af734";
+      sha256 = "10pgj0kh4vd0wvsb68l3k2af5rhmh249a2cf4mhbl8jb1g76bnrl";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
 
   colorizer = buildVimPluginFrom2Nix {
     pname = "colorizer";
-    version = "2018-06-16";
+    version = "2020-07-23";
     src = fetchFromGitHub {
       owner = "lilydjwg";
       repo = "colorizer";
-      rev = "afc1491e5b9c36305ce710bdad2b48f069141183";
-      sha256 = "1dpiv9z8h6196acncyjhzd1qa56y17468fpxbfzrx5q2266sajc7";
+      rev = "1ddc68adbf45331158c61507a55fcc918bb61654";
+      sha256 = "16zrpgnlb3v4yvpycq9spivs97vzv18m3jc47rl0hgpjdf6vhkxx";
     };
     meta.homepage = "https://github.com/lilydjwg/colorizer/";
   };
@@ -834,16 +510,40 @@ let
 
   committia-vim = buildVimPluginFrom2Nix {
     pname = "committia-vim";
-    version = "2020-05-14";
+    version = "2020-08-27";
     src = fetchFromGitHub {
       owner = "rhysd";
       repo = "committia.vim";
-      rev = "2cded48477a5e308c77a0d289cc9b540669b701f";
-      sha256 = "1g6ykdh7d16q6nvpvmxx4ss8w7cisx5r8qmbrrvhpwmbb3894pxp";
+      rev = "1d288281586d1e6b52646a4c412df3dd3a2fe231";
+      sha256 = "11ik72qi7fvxkz7fnyisaa0xscy4pksq8l2pvclywzg3lcclhxp1";
     };
     meta.homepage = "https://github.com/rhysd/committia.vim/";
   };
 
+  completion-nvim = buildVimPluginFrom2Nix {
+    pname = "completion-nvim";
+    version = "2020-09-25";
+    src = fetchFromGitHub {
+      owner = "nvim-lua";
+      repo = "completion-nvim";
+      rev = "c0594169312cb16a9957fd98deac64edd43cb1c1";
+      sha256 = "0zyjf57c1q36jzcvmf32w86k0mfhxlkbia8nl4mpm7fjq22vyjp3";
+    };
+    meta.homepage = "https://github.com/nvim-lua/completion-nvim/";
+  };
+
+  completion-treesitter = buildVimPluginFrom2Nix {
+    pname = "completion-treesitter";
+    version = "2020-06-26";
+    src = fetchFromGitHub {
+      owner = "nvim-treesitter";
+      repo = "completion-treesitter";
+      rev = "45c9b2faff4785539a0d0c655440c2465fed985a";
+      sha256 = "19pgdzzk7zq85b1grfjf0nncvs5vxrd4rj1p90iw2amq4mvqrx3l";
+    };
+    meta.homepage = "https://github.com/nvim-treesitter/completion-treesitter/";
+  };
+
   concealedyank-vim = buildVimPluginFrom2Nix {
     pname = "concealedyank-vim";
     version = "2013-03-24";
@@ -858,28 +558,40 @@ let
 
   conjure = buildVimPluginFrom2Nix {
     pname = "conjure";
-    version = "2020-05-26";
+    version = "2020-09-20";
     src = fetchFromGitHub {
       owner = "Olical";
       repo = "conjure";
-      rev = "5cb5e37913fa6fe410ee150f5cd8c75e34b060c4";
-      sha256 = "1h23qf0i97lcng1llc0q80jizsv7hkpnyvaj5dr3kfbwi84nfkmp";
+      rev = "a9431410d74f2281ae626727342a5d23d4a12552";
+      sha256 = "00b73dxirn3m0rvagskgc00vyrkkcnbxfkn22jnzv84fjvvcj375";
     };
     meta.homepage = "https://github.com/Olical/conjure/";
   };
 
   context_filetype-vim = buildVimPluginFrom2Nix {
     pname = "context_filetype-vim";
-    version = "2020-04-27";
+    version = "2020-09-17";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "context_filetype.vim";
-      rev = "a96f74ac35b77ebe2c5788ca31e66d87ab239adb";
-      sha256 = "1pgb86cpv4649qnxfw4280sqghldm66s572pg610giqjxda4a52s";
+      rev = "cf25d744ac35872364c49fac3cb6a546e8af92ce";
+      sha256 = "0mq0wh6kihmn5izaz81zl274yxc1x4gr9qmz9sjdhh122i9gbfs8";
     };
     meta.homepage = "https://github.com/Shougo/context_filetype.vim/";
   };
 
+  Coqtail = buildVimPluginFrom2Nix {
+    pname = "Coqtail";
+    version = "2020-09-16";
+    src = fetchFromGitHub {
+      owner = "whonore";
+      repo = "Coqtail";
+      rev = "7ea2fd5f42910dcd10eaaccddedcc33f2edd2ef1";
+      sha256 = "1f14sg9v80ir9f1zk4xqjbqqd0cv2pxpipbflzwafmwcs5chz6rv";
+    };
+    meta.homepage = "https://github.com/whonore/Coqtail/";
+  };
+
   cosco-vim = buildVimPluginFrom2Nix {
     pname = "cosco-vim";
     version = "2018-08-07";
@@ -894,12 +606,12 @@ let
 
   cpsm = buildVimPluginFrom2Nix {
     pname = "cpsm";
-    version = "2018-09-08";
+    version = "2020-08-01";
     src = fetchFromGitHub {
       owner = "nixprime";
       repo = "cpsm";
-      rev = "900023c56dfdd200841d5c2f2f7000f332d2614f";
-      sha256 = "1p1ry11f39fcz32i3b3p0p8n99qrnvrx4d7p0123123dj7wbxk3p";
+      rev = "42cfb0f83083b33640619c208341629bff67bd8a";
+      sha256 = "0wcq442wj73ra0agflljjkhcwlma7r703l7l9hn7zd8wfb4iv48s";
     };
     meta.homepage = "https://github.com/nixprime/cpsm/";
   };
@@ -918,12 +630,12 @@ let
 
   csv-vim = buildVimPluginFrom2Nix {
     pname = "csv-vim";
-    version = "2020-05-29";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "csv.vim";
-      rev = "c84fd12a226d7b3b8d4b7e77ed5ddd1c5fa970ad";
-      sha256 = "1gjhbgwqf1zg813a3wcqj2x29gs4x7yc185mxi3lvnxghwj9j2i3";
+      rev = "e23f03632ad2544f0232b824dd5520fd0b58d235";
+      sha256 = "12b127v6yxwik7q2wbyqag4082yzp44sm0x4xwnv55xhlz4w6xws";
     };
     meta.homepage = "https://github.com/chrisbra/csv.vim/";
   };
@@ -966,72 +678,72 @@ let
 
   ctrlp-vim = buildVimPluginFrom2Nix {
     pname = "ctrlp-vim";
-    version = "2020-05-26";
+    version = "2020-09-21";
     src = fetchFromGitHub {
       owner = "ctrlpvim";
       repo = "ctrlp.vim";
-      rev = "d93d97813dc839ef0782302a0debd7c4877f09f3";
-      sha256 = "0lgw839xnmdsbaiflqp3i2liqhg4lp01iaz0jv380kbw9g6k666k";
+      rev = "ae5237f8eb9bbc1ad7f8903738e0dc2af194f740";
+      sha256 = "18inmxhqzw40sm5ixybbliikbhs10zrqp58qjcd8qc4grj8z6lcp";
     };
     meta.homepage = "https://github.com/ctrlpvim/ctrlp.vim/";
   };
 
   dart-vim-plugin = buildVimPluginFrom2Nix {
     pname = "dart-vim-plugin";
-    version = "2020-05-20";
+    version = "2020-08-14";
     src = fetchFromGitHub {
       owner = "dart-lang";
       repo = "dart-vim-plugin";
-      rev = "70bc2f27d579d24e4973aea19df2fdffb1a8c95d";
-      sha256 = "01agwm0scg7g5l04djxmj22rd5rd3di1z9g89hp2lr3rqp8ipdrn";
+      rev = "378bddc9f0e109607935ab9a4ac717df008deac7";
+      sha256 = "0idaph0wdaf2rk9mh468zg8c4gf5hyvad5zqlpcd9q1f576ysswy";
     };
     meta.homepage = "https://github.com/dart-lang/dart-vim-plugin/";
   };
 
   defx-git = buildVimPluginFrom2Nix {
     pname = "defx-git";
-    version = "2020-01-18";
+    version = "2020-08-14";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "defx-git";
-      rev = "b5d0b842064ddb7a7af0e790f4648cb1909ed43f";
-      sha256 = "0i8vi6zhnv088qc3f3wa5h4b17xnpvmr603srhg44zx2clcjblnr";
+      rev = "717b30addcd5204cf11c0736792c4b7c45005b88";
+      sha256 = "1mx398lpzbzvrd1jawlxa4sd84ba60w3k9l46hg53hmbp1df4wff";
     };
     meta.homepage = "https://github.com/kristijanhusak/defx-git/";
   };
 
   defx-icons = buildVimPluginFrom2Nix {
     pname = "defx-icons";
-    version = "2020-02-10";
+    version = "2020-08-09";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "defx-icons";
-      rev = "2e4df3b6302da537ac7df28fbc0e0991c6c1aa0e";
-      sha256 = "0wkn02z75pvfl0xrhgq80sw0qfidjg5s0zm5mij632pq3dm7axiq";
+      rev = "3259550f918b2cfb9794b62e7bb94b863f75f489";
+      sha256 = "1a65p99f9f1idzkxl4fd1klxidf40lvs79bym1fydv1zw34x8qzv";
     };
     meta.homepage = "https://github.com/kristijanhusak/defx-icons/";
   };
 
   defx-nvim = buildVimPluginFrom2Nix {
     pname = "defx-nvim";
-    version = "2020-06-09";
+    version = "2020-09-24";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "defx.nvim";
-      rev = "bc2a3fcbe9db21623dcc7c2d5c4c1b1289283dfc";
-      sha256 = "00gyrfhz7mf93swqzi4n459vbk9rpcqsc9qfzgnv38myh800s2ih";
+      rev = "a84cb7f88afc904123858b226240c3339b7ca814";
+      sha256 = "1ryc0ahrjjc20344jbvxz9miyrqdjs7gz6r2awkf0ayyz6nx5gch";
     };
     meta.homepage = "https://github.com/Shougo/defx.nvim/";
   };
 
   delimitMate = buildVimPluginFrom2Nix {
     pname = "delimitMate";
-    version = "2017-06-19";
+    version = "2020-07-29";
     src = fetchFromGitHub {
       owner = "Raimondi";
       repo = "delimitMate";
-      rev = "728b57a6564c1d2bdfb9b9e0f2f8c5ba3d7e0c5c";
-      sha256 = "0fskm9gz81dk8arcidrm71mv72a7isng1clssqkqn5wnygbiimsn";
+      rev = "16687aec24d803bc76cae2d7bfe2b73b1cdda4ef";
+      sha256 = "067bj6if0jyqy1x3hqjdc2d4jrgldz1ffppb4l9ih06m03zdqkjd";
     };
     meta.homepage = "https://github.com/Raimondi/delimitMate/";
   };
@@ -1050,36 +762,36 @@ let
 
   denite-git = buildVimPluginFrom2Nix {
     pname = "denite-git";
-    version = "2020-03-02";
+    version = "2020-09-10";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "denite-git";
-      rev = "88b5323a6fc0ace197eed5205215d80f3b613f91";
-      sha256 = "0b687i64hr8hll7pv7r1xz906b46cl2q62zm18ipikhkpva6iv13";
+      rev = "2c80ef41fa56bbb4a0d48c4153404be694368141";
+      sha256 = "08kdhn4kry8sc8gyffp8zl609nlajhd1x6qi50n5216r9dk03jlk";
     };
     meta.homepage = "https://github.com/neoclide/denite-git/";
   };
 
   denite-nvim = buildVimPluginFrom2Nix {
     pname = "denite-nvim";
-    version = "2020-06-11";
+    version = "2020-09-23";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "6139d4cd2d6944be8b713766f92f521eaa056c18";
-      sha256 = "0v64fj9jjq51h2cr1haih4ac4kffvzp6g0gli2vs4vjcbjbcil5r";
+      rev = "cb06d89aaded0bc2418d03a8fbb263ca0ef70406";
+      sha256 = "0dk4w6yljnhf4qwhgamnw2bnmqikgqb8nshifn5l767sm3hk7d2h";
     };
     meta.homepage = "https://github.com/Shougo/denite.nvim/";
   };
 
   deol-nvim = buildVimPluginFrom2Nix {
     pname = "deol-nvim";
-    version = "2020-04-14";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deol.nvim";
-      rev = "d438a6f550910a5688481ff0251771ac7dd09245";
-      sha256 = "0p6kvl1pgf5d5rnag297dhjzzplmawvmi2j1r2m6p0732ls4qxrw";
+      rev = "2c4d9117186a6cf86030d213ef2de60b5dbced19";
+      sha256 = "1aka5zg7jihy1958xp4j2z3kdzmb2d4w5cbl95na4hik5rz4hyxj";
     };
     meta.homepage = "https://github.com/Shougo/deol.nvim/";
   };
@@ -1172,13 +884,12 @@ let
 
   deoplete-jedi = buildVimPluginFrom2Nix {
     pname = "deoplete-jedi";
-    version = "2020-04-13";
+    version = "2020-08-06";
     src = fetchFromGitHub {
       owner = "deoplete-plugins";
       repo = "deoplete-jedi";
-      rev = "42f4c24a951b0fb5e76a70e5234f16193a8a746d";
-      sha256 = "1incjz7xsh4cfxw06ff07830ywn0p99b1zmml8pkapbnh3x2bjgc";
-      fetchSubmodules = true;
+      rev = "2786058b9022ce6e50db7f75088e69e07185e52c";
+      sha256 = "0myn6rgwq7yd3hpxdxa7kj3dlk2x9ljqlznqg95qcm8i0w53z1wg";
     };
     meta.homepage = "https://github.com/deoplete-plugins/deoplete-jedi/";
   };
@@ -1197,24 +908,24 @@ let
 
   deoplete-khard = buildVimPluginFrom2Nix {
     pname = "deoplete-khard";
-    version = "2020-04-30";
+    version = "2020-09-18";
     src = fetchFromGitHub {
       owner = "nicoe";
       repo = "deoplete-khard";
-      rev = "7f81116b1c68d49f189a2aca62a31729fb7bb0e7";
-      sha256 = "0jnpv0lpli9qjqwkzfl66fyhywa6q586q44d26q3h7sllxpz0066";
+      rev = "dc2b519e8da0df10c3954946285caf484d376497";
+      sha256 = "126mhnn4dqwm3aw6v4c3s3fnz40lki4cbb8xfrmxfbnbnjw1yx4x";
     };
     meta.homepage = "https://github.com/nicoe/deoplete-khard/";
   };
 
   deoplete-lsp = buildVimPluginFrom2Nix {
     pname = "deoplete-lsp";
-    version = "2020-06-11";
+    version = "2020-09-18";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete-lsp";
-      rev = "64a8663e529686fc43390942672ff2b33beda0e3";
-      sha256 = "1z8axvcrzip4bgmnn62p3q7rr3y7avkf7l4k2r266bkxwgsmh50k";
+      rev = "17cd3fae3044eb8148bc22167257d4ae13165eb1";
+      sha256 = "1xag51j71ifjn64xyaz7whml796pdl8vsw0ad22wndwzb95kyxdm";
     };
     meta.homepage = "https://github.com/Shougo/deoplete-lsp/";
   };
@@ -1233,12 +944,12 @@ let
 
   deoplete-phpactor = buildVimPluginFrom2Nix {
     pname = "deoplete-phpactor";
-    version = "2019-02-22";
+    version = "2020-09-12";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "deoplete-phpactor";
-      rev = "53e239effb8ff20fc0a192206e96d98d4f9001ad";
-      sha256 = "14097r9fmyp9zxfgv0fj2s52qd1v5cxdckfg4zph7lg3yri1hx9p";
+      rev = "3668d35d8ea8177bb70cfb239169d3c12bc54f6a";
+      sha256 = "1cjdr8py7brxz419vf125jkyfjrx3n5z65ranj23z20ifc945g6b";
     };
     meta.homepage = "https://github.com/kristijanhusak/deoplete-phpactor/";
   };
@@ -1279,6 +990,18 @@ let
     meta.homepage = "https://github.com/carlitux/deoplete-ternjs/";
   };
 
+  deoplete-vim-lsp = buildVimPluginFrom2Nix {
+    pname = "deoplete-vim-lsp";
+    version = "2020-07-24";
+    src = fetchFromGitHub {
+      owner = "lighttiger2505";
+      repo = "deoplete-vim-lsp";
+      rev = "2ea06074dc07c67ccffc24b976b92e17e9d795d1";
+      sha256 = "03rpw1z5fgglba7vymi3ln810nh5x3x9hjqlm41shdik9pgmg867";
+    };
+    meta.homepage = "https://github.com/lighttiger2505/deoplete-vim-lsp/";
+  };
+
   deoplete-zsh = buildVimPluginFrom2Nix {
     pname = "deoplete-zsh";
     version = "2019-11-10";
@@ -1293,28 +1016,52 @@ let
 
   deoplete-nvim = buildVimPluginFrom2Nix {
     pname = "deoplete-nvim";
-    version = "2020-06-11";
+    version = "2020-09-12";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "deoplete.nvim";
-      rev = "e04bfc18b604c54ebc319d2eebf8fe3a830a9212";
-      sha256 = "01bf55zbw2v2qzbpk0jm5j4dhq8rs78m2pbljsnl2772vll4iv38";
+      rev = "895fafe572585b807a31d4ba2835188d7b38cc41";
+      sha256 = "1irhdp1bdwpyj9g40mb4n1mjw2f1hxswhgf2f1nkv1cx0j8pvkzd";
     };
     meta.homepage = "https://github.com/Shougo/deoplete.nvim/";
   };
 
+  devdocs-vim = buildVimPluginFrom2Nix {
+    pname = "devdocs-vim";
+    version = "2018-08-27";
+    src = fetchFromGitHub {
+      owner = "rhysd";
+      repo = "devdocs.vim";
+      rev = "1c91c619874f11f2062f80e6ca4b49456f21ae91";
+      sha256 = "1nxww2mjabl2g2wchxc4h3a58j64acls24zb5jmfi71b8sai8a9b";
+    };
+    meta.homepage = "https://github.com/rhysd/devdocs.vim/";
+  };
+
   dhall-vim = buildVimPluginFrom2Nix {
     pname = "dhall-vim";
-    version = "2020-01-02";
+    version = "2020-08-19";
     src = fetchFromGitHub {
       owner = "vmchale";
       repo = "dhall-vim";
-      rev = "607958520f8bd4308fe52937e211f6db4ad84cf3";
-      sha256 = "0rnkmfrzsm4hg6ln8g8qj9ff8z2sk7cnf4gqrswychqhhkg1f817";
+      rev = "77d1c165bcbe6bb7f9eedbeafe390c2107d3c52e";
+      sha256 = "03x55x0gvf7n4i8hh6s5453mf5h43pf7kdy817q6w1149bd90vxy";
     };
     meta.homepage = "https://github.com/vmchale/dhall-vim/";
   };
 
+  diagnostic-nvim = buildVimPluginFrom2Nix {
+    pname = "diagnostic-nvim";
+    version = "2020-09-16";
+    src = fetchFromGitHub {
+      owner = "nvim-lua";
+      repo = "diagnostic-nvim";
+      rev = "49abd2e71772f6976b7e1360782570535069bc94";
+      sha256 = "16i99j76j1s8p7kjyr49pwj9jlqiq0krzwyxxk1z16shfymvav88";
+    };
+    meta.homepage = "https://github.com/nvim-lua/diagnostic-nvim/";
+  };
+
   direnv-vim = buildVimPluginFrom2Nix {
     pname = "direnv-vim";
     version = "2019-04-30";
@@ -1339,6 +1086,18 @@ let
     meta.homepage = "https://github.com/vim-scripts/DoxygenToolkit.vim/";
   };
 
+  dracula-vim = buildVimPluginFrom2Nix {
+    pname = "dracula-vim";
+    version = "2020-07-19";
+    src = fetchFromGitHub {
+      owner = "dracula";
+      repo = "vim";
+      rev = "b64b22affafca7d3831a20949115b91031d596ec";
+      sha256 = "1f5hwfcrsfq3yk53kkn4syaxmri8wh8h6rpq867468b8rdcnhq01";
+    };
+    meta.homepage = "https://github.com/dracula/vim/";
+  };
+
   echodoc-vim = buildVimPluginFrom2Nix {
     pname = "echodoc-vim";
     version = "2020-06-08";
@@ -1366,24 +1125,36 @@ let
 
   elm-vim = buildVimPluginFrom2Nix {
     pname = "elm-vim";
-    version = "2019-04-05";
+    version = "2020-09-23";
     src = fetchFromGitHub {
       owner = "elmcast";
       repo = "elm-vim";
-      rev = "165107a9fd2b20c8f050fc4f977b4e41c790b1e7";
-      sha256 = "0gf7b49by0ybx3ndz7sz5dwcfnps4sz6wsr02lyarj8f8116ysy5";
+      rev = "4b71facd77297cb33bbb3b14894676cff0a9bd1d";
+      sha256 = "1kxkjm6fzmircg5gh7w2bmvjgk8ly5vvq9l31m4p6ql48azg2ilc";
     };
     meta.homepage = "https://github.com/elmcast/elm-vim/";
   };
 
+  elvish-vim = buildVimPluginFrom2Nix {
+    pname = "elvish-vim";
+    version = "2019-06-29";
+    src = fetchFromGitHub {
+      owner = "dmix";
+      repo = "elvish.vim";
+      rev = "67ef8e89bff7cb8ea936f2164c8c268bbb3295f0";
+      sha256 = "133hr3i7zxysf2gnnimhz3gf3nda3fyfxmqq7mhq544v2mki4x9m";
+    };
+    meta.homepage = "https://github.com/dmix/elvish.vim/";
+  };
+
   emmet-vim = buildVimPluginFrom2Nix {
     pname = "emmet-vim";
-    version = "2020-05-04";
+    version = "2020-06-20";
     src = fetchFromGitHub {
       owner = "mattn";
       repo = "emmet-vim";
-      rev = "76285f8ec456a8c0d01ea0fa9d0b757c7eb0bab3";
-      sha256 = "1qrqg4kr55hisi5f4qlkj1zvvlgfpby9pyynlb669d8414013f67";
+      rev = "dc6cb4fd074f4c371158eeab0c8e4ce4af33534b";
+      sha256 = "1cy201c5imbw2pw65f1s0nn8p6vwm00nqlvxwygh18dhy2qv4gfa";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/mattn/emmet-vim/";
@@ -1427,12 +1198,12 @@ let
 
   far-vim = buildVimPluginFrom2Nix {
     pname = "far-vim";
-    version = "2020-03-09";
+    version = "2020-07-23";
     src = fetchFromGitHub {
       owner = "brooth";
       repo = "far.vim";
-      rev = "2a8a9c22237d224f2c24680901b61b6f9bffb061";
-      sha256 = "0hk2p10cx36dz6vf22v4hx3shkkhqhkmxp6s1l517kkchh98m4bg";
+      rev = "aaf7b252301d03100ba3923c17d026562a0b17b8";
+      sha256 = "10ij80x2drmk3jr5c7pm9k3jrci9qb26gmqagpxpmiv1is9sdx0a";
     };
     meta.homepage = "https://github.com/brooth/far.vim/";
   };
@@ -1524,12 +1295,12 @@ let
 
   fruzzy = buildVimPluginFrom2Nix {
     pname = "fruzzy";
-    version = "2019-10-28";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "raghur";
       repo = "fruzzy";
-      rev = "b312ae79db98cf6939c8319f2511efa06889e8e3";
-      sha256 = "01iisbawq2w7yw866qvv109amnvyaymzyz9nqal3cjrrcwk6mmdk";
+      rev = "4cdfee7b828a5cace22bfd93cf23fee0b2b233c4";
+      sha256 = "1dmxz283ypz1klcmdf4jk699aifr3dywkh9y8v8v8vyflampqwwp";
     };
     meta.homepage = "https://github.com/raghur/fruzzy/";
   };
@@ -1548,12 +1319,12 @@ let
 
   fzf-vim = buildVimPluginFrom2Nix {
     pname = "fzf-vim";
-    version = "2020-06-07";
+    version = "2020-09-11";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "8f1e73b598d27d78dfb5843be19a73b6a3b222b1";
-      sha256 = "0zdimx6q2fivimdvh0cnm6w718vjxj0abv67869ijh1d4mfrmvyf";
+      rev = "3348aef05d02828cd8b071ab29476af2029ea3d3";
+      sha256 = "0jyk9c3ksxss8zjk0qqkm95074glbf31a5w78sdzwn352xm8nakp";
     };
     meta.homepage = "https://github.com/junegunn/fzf.vim/";
   };
@@ -1584,12 +1355,12 @@ let
 
   ghcid = buildVimPluginFrom2Nix {
     pname = "ghcid";
-    version = "2020-06-06";
+    version = "2020-08-12";
     src = fetchFromGitHub {
       owner = "ndmitchell";
       repo = "ghcid";
-      rev = "bddd18ffabbdb10ca1fadf25e7d7d1201470f444";
-      sha256 = "1sxh3zdrwajz0nabqbzg24sxlc8kwiqrwh4mvrwavwyh7xr29jxd";
+      rev = "d6191a111a1160ddecb05292eefe28ae362ccbaa";
+      sha256 = "17dp28a3ipbx8fwsj0h9imkrgd0nfjzpcsn1zjdbih1kfh494smf";
     };
     meta.homepage = "https://github.com/ndmitchell/ghcid/";
   };
@@ -1606,6 +1377,18 @@ let
     meta.homepage = "https://github.com/eagletmt/ghcmod-vim/";
   };
 
+  git-messenger-vim = buildVimPluginFrom2Nix {
+    pname = "git-messenger-vim";
+    version = "2020-08-20";
+    src = fetchFromGitHub {
+      owner = "rhysd";
+      repo = "git-messenger.vim";
+      rev = "c16b0d43ca57e77081f1f23f67552efe37110b39";
+      sha256 = "171w3dv3jl4mw1ikh5p688v0a8nf85h862d9zvsmdzs2v6ajigpw";
+    };
+    meta.homepage = "https://github.com/rhysd/git-messenger.vim/";
+  };
+
   gitignore-vim = buildVimPluginFrom2Nix {
     pname = "gitignore-vim";
     version = "2014-03-16";
@@ -1630,26 +1413,50 @@ let
     meta.homepage = "https://github.com/gregsexton/gitv/";
   };
 
+  golden-ratio = buildVimPluginFrom2Nix {
+    pname = "golden-ratio";
+    version = "2020-04-03";
+    src = fetchFromGitHub {
+      owner = "roman";
+      repo = "golden-ratio";
+      rev = "8313b6d6723c9e77ef1d3760af2cdd244e8db043";
+      sha256 = "03nm1wr0qsrirg4z4171f4nygnqgb6w06ldr6rbbz4a1f7j8j654";
+    };
+    meta.homepage = "https://github.com/roman/golden-ratio/";
+  };
+
+  gotests-vim = buildVimPluginFrom2Nix {
+    pname = "gotests-vim";
+    version = "2019-04-10";
+    src = fetchFromGitHub {
+      owner = "buoto";
+      repo = "gotests-vim";
+      rev = "e0ad687be26875153ecd43d16db3b93a637394e4";
+      sha256 = "01w981v7rya9fnxwdhlka4vfzlnw87pxmfcqmvxh3p96lmi71xjm";
+    };
+    meta.homepage = "https://github.com/buoto/gotests-vim/";
+  };
+
   goyo-vim = buildVimPluginFrom2Nix {
     pname = "goyo-vim";
-    version = "2020-06-08";
+    version = "2020-08-29";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "goyo.vim";
-      rev = "3e129198bba7d6b50406902002ad7d213a6cccaa";
-      sha256 = "1b2wsxbg27nmwxrncwddkl2ck8hbiqdqi821vl9d1fl5nx042y2b";
+      rev = "a865dec7ca7616dbbd69315ad1417b84d0c411f8";
+      sha256 = "09mqmcz79dwcc5mv0p2wc84jc20ipa0vv2yckp4la4xh909ph4hm";
     };
     meta.homepage = "https://github.com/junegunn/goyo.vim/";
   };
 
   gruvbox = buildVimPluginFrom2Nix {
     pname = "gruvbox";
-    version = "2020-02-23";
+    version = "2020-07-03";
     src = fetchFromGitHub {
       owner = "morhetz";
       repo = "gruvbox";
-      rev = "040138616bec342d5ea94d4db296f8ddca17007a";
-      sha256 = "0qk2mqs04qlxkc1ldgjbiv1yisi2xl2b8svmjz0hdp9y2l5vfccw";
+      rev = "bf2885a95efdad7bd5e4794dd0213917770d79b7";
+      sha256 = "0576sqzljal3k8rsnbmcvlsk4ywg1vfgkxkvrv2zac2d5wwa9i8z";
     };
     meta.homepage = "https://github.com/morhetz/gruvbox/";
   };
@@ -1726,14 +1533,38 @@ let
     meta.homepage = "https://github.com/mpickering/hlint-refactor-vim/";
   };
 
+  hoon-vim = buildVimPluginFrom2Nix {
+    pname = "hoon-vim";
+    version = "2020-02-19";
+    src = fetchFromGitHub {
+      owner = "urbit";
+      repo = "hoon.vim";
+      rev = "116f29971a2fbec8e484daeba8afd9d60f85800f";
+      sha256 = "029rm8njpsa0lhhh504975lmw7yr2bkvxi2gag1l9279r629vp2r";
+    };
+    meta.homepage = "https://github.com/urbit/hoon.vim/";
+  };
+
+  i3config-vim = buildVimPluginFrom2Nix {
+    pname = "i3config-vim";
+    version = "2020-03-28";
+    src = fetchFromGitHub {
+      owner = "mboughaba";
+      repo = "i3config.vim";
+      rev = "c3fe1a901392ee11721e08d2a0d2886a7f8b8e83";
+      sha256 = "1cygyn7p0x2smqsjxly5xbsdnrjnq5kj1a0a8qg356j0l112j7z2";
+    };
+    meta.homepage = "https://github.com/mboughaba/i3config.vim/";
+  };
+
   iceberg-vim = buildVimPluginFrom2Nix {
     pname = "iceberg-vim";
-    version = "2020-05-15";
+    version = "2020-07-20";
     src = fetchFromGitHub {
       owner = "cocopon";
       repo = "iceberg.vim";
-      rev = "bdd630fb15dca7793b04deaf1c1fb3a6af33ceae";
-      sha256 = "045jm4gz8gqv7mgz04l3q42mj1ji9qv99n915zq8fgzfskc0pixj";
+      rev = "203d56849325fb0420587c9951859a755798aea3";
+      sha256 = "16calikypw9gyb4vzybwqgl329v6wpqj05z6m2ajbr027fksxfjr";
     };
     meta.homepage = "https://github.com/cocopon/iceberg.vim/";
   };
@@ -1800,12 +1631,12 @@ let
 
   indentLine = buildVimPluginFrom2Nix {
     pname = "indentLine";
-    version = "2020-05-29";
+    version = "2020-09-04";
     src = fetchFromGitHub {
       owner = "Yggdroot";
       repo = "indentLine";
-      rev = "43dbd7092801637972b1d9fcecaaeee11f8e00cf";
-      sha256 = "0qnzi19vb5qk773pc9v75wqm2ipdkcscljblla6gq05srm1h8x9d";
+      rev = "5bf49035522dea94b72638d039828c6f84b7ae34";
+      sha256 = "098ng8f2dv29pgvai4nsm2d5qyw44gd9dxjmdc3mdznzmn0clvvf";
     };
     meta.homepage = "https://github.com/Yggdroot/indentLine/";
   };
@@ -1824,12 +1655,12 @@ let
 
   iosvkem = buildVimPluginFrom2Nix {
     pname = "iosvkem";
-    version = "2020-01-18";
+    version = "2020-06-18";
     src = fetchFromGitHub {
       owner = "neutaaaaan";
       repo = "iosvkem";
-      rev = "08e36b649c83eece7edbd2e04e42e077aebc78eb";
-      sha256 = "0jawl7fs6wl3ny9vsmzqv5pnkv5nn6wj1nx7hzgdl41183958pni";
+      rev = "df359d91510be0c078905568d9033c891a3a2f4b";
+      sha256 = "0xqh5hr4m6hm2vfms1iqarzhgkmrgx6f5ywyh6qhwkbrdj8q3lyq";
     };
     meta.homepage = "https://github.com/neutaaaaan/iosvkem/";
   };
@@ -1872,12 +1703,12 @@ let
 
   jedi-vim = buildVimPluginFrom2Nix {
     pname = "jedi-vim";
-    version = "2020-03-07";
+    version = "2020-07-17";
     src = fetchFromGitHub {
       owner = "davidhalter";
       repo = "jedi-vim";
-      rev = "e83112f9aab147ab485ee7af72e01d047c5206d3";
-      sha256 = "0yj1bsfn43crmfn0ylyzyz41z0vmvapl5cgm7k1rnbj96i7vifx7";
+      rev = "a17b0333031bd3652ad4c6169caaed05ffb7c49d";
+      sha256 = "0xqsh0mw64s9ph4sd550fc129q567dld3vk7fciwd2905h9q0k8q";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/davidhalter/jedi-vim/";
@@ -1921,24 +1752,24 @@ let
 
   julia-vim = buildVimPluginFrom2Nix {
     pname = "julia-vim";
-    version = "2020-06-06";
+    version = "2020-09-07";
     src = fetchFromGitHub {
       owner = "JuliaEditorSupport";
       repo = "julia-vim";
-      rev = "f0fab9a2df5223815f7dc46f44f69566aa9e51d1";
-      sha256 = "145wxlv5rifk93lvai17625r1c94lnbi8rnda0vidr0dhhgcl7v7";
+      rev = "33116e1135ffa0c09997c111785beb5232efc7cf";
+      sha256 = "1qx1xpnnzvb5h86mrywx56yqw5lbma9xmwdgi6dh6x8mzald7agw";
     };
     meta.homepage = "https://github.com/JuliaEditorSupport/julia-vim/";
   };
 
   kotlin-vim = buildVimPluginFrom2Nix {
     pname = "kotlin-vim";
-    version = "2019-05-26";
+    version = "2020-08-11";
     src = fetchFromGitHub {
       owner = "udalov";
       repo = "kotlin-vim";
-      rev = "b9fa728701a0aa0b9a2ffe92f10880348fc27a8f";
-      sha256 = "1yqzxabhpc4jbdlzhsysp0vi1ayqg0vnpysvx4ynd9961q2fk3sz";
+      rev = "26970168ca88c62b271fbc0a275dbe31cda94bd6";
+      sha256 = "0mvwz8gwv619b4l7g3mafvd6q4khl0xis0a8v300d8i3pjhx4i40";
     };
     meta.homepage = "https://github.com/udalov/kotlin-vim/";
   };
@@ -2017,12 +1848,12 @@ let
 
   lexima-vim = buildVimPluginFrom2Nix {
     pname = "lexima-vim";
-    version = "2019-07-22";
+    version = "2020-07-31";
     src = fetchFromGitHub {
       owner = "cohama";
       repo = "lexima.vim";
-      rev = "aa32e972b69230625989daa09ee5fd74a2d877ef";
-      sha256 = "15cc09vb0yrasz76qkcqxhj95y1m6yrsx3wsn6khx39kp1bas0jd";
+      rev = "89bf4dc13539131a29cf938074b3f1ce9d000bfd";
+      sha256 = "19b73r3v4i64kiijihzqlbj6bf6jd1w90qc7d3lg95iwlaczd8v0";
     };
     meta.homepage = "https://github.com/cohama/lexima.vim/";
   };
@@ -2041,24 +1872,24 @@ let
 
   lh-brackets = buildVimPluginFrom2Nix {
     pname = "lh-brackets";
-    version = "2020-06-03";
+    version = "2020-06-16";
     src = fetchFromGitHub {
       owner = "LucHermitte";
       repo = "lh-brackets";
-      rev = "d6ea4b24b14f3ead29dc8df2e2d942c2b0287948";
-      sha256 = "0gh21v0gnwhq2gim1hhfd0376zk4jdhfn9dldczxvzipxw3jaknr";
+      rev = "0553fecb3425dafe65a724ad01d85427285ac184";
+      sha256 = "0ih6ccsqhqc9cynkzqfb55x5mfz743hvdrxzlhm0axrkxxn3nczb";
     };
     meta.homepage = "https://github.com/LucHermitte/lh-brackets/";
   };
 
   lh-vim-lib = buildVimPluginFrom2Nix {
     pname = "lh-vim-lib";
-    version = "2020-06-03";
+    version = "2020-09-25";
     src = fetchFromGitHub {
       owner = "LucHermitte";
       repo = "lh-vim-lib";
-      rev = "448982501112f69f8edb7fb7bb61573091036366";
-      sha256 = "1k4man0jm8pkvb2f8l2f743ipwiz76ljzzn1hi4pvs0wncdr7k6q";
+      rev = "90fba59dc0426bc5987588883de903c0795c542a";
+      sha256 = "14b43jdksyjd5ln8zgf0pwpdndlcs5nnivy68ky92mh6k38xhzgl";
     };
     meta.homepage = "https://github.com/LucHermitte/lh-vim-lib/";
   };
@@ -2077,40 +1908,52 @@ let
 
   lightline-bufferline = buildVimPluginFrom2Nix {
     pname = "lightline-bufferline";
-    version = "2020-05-08";
+    version = "2020-09-04";
     src = fetchFromGitHub {
       owner = "mengelbrecht";
       repo = "lightline-bufferline";
-      rev = "ef674de5ca1c963ad12f04631ea58f90dbbc70da";
-      sha256 = "0kdla3gmkyk77vqz6hj41alq3jmrkml7836fhsd3hb50f6wwvk11";
+      rev = "6417dd8c864ccd6fb2b79882d30ca0227bfd2204";
+      sha256 = "0aars37arix00l63kn5p4gq3dvzpmrzxz1ap20k1mr2dy7pmval5";
     };
     meta.homepage = "https://github.com/mengelbrecht/lightline-bufferline/";
   };
 
   lightline-vim = buildVimPluginFrom2Nix {
     pname = "lightline-vim";
-    version = "2020-05-18";
+    version = "2020-09-25";
     src = fetchFromGitHub {
       owner = "itchyny";
       repo = "lightline.vim";
-      rev = "c172131e0369672bc1b9454a2aec6d532d350dcc";
-      sha256 = "04nxldbb885n11vwz61c1r4h65y26six5cs9invbz27h4pgyrvna";
+      rev = "2afc3ab4dda191c75764d3239d1cf56356759dd4";
+      sha256 = "0yvinwvzhqb87nqg38azd19c9w0yrkl06mx3agji2mvn23p66ab5";
     };
     meta.homepage = "https://github.com/itchyny/lightline.vim/";
   };
 
   limelight-vim = buildVimPluginFrom2Nix {
     pname = "limelight-vim";
-    version = "2019-07-09";
+    version = "2020-09-07";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "limelight.vim";
-      rev = "26e913a2e061195245bc62d24009ab67143a3c32";
-      sha256 = "0bxmihv9i96k6pl37pzgri03vbvjwlp34rl4gkj8w2ajhhi6nsnn";
+      rev = "815c6122504361d52e10172601471b416d040ca8";
+      sha256 = "1af9jz05iphp6738vvfchnvhfxw7wx2hxqs0iyjkmi7w43hsw0sy";
     };
     meta.homepage = "https://github.com/junegunn/limelight.vim/";
   };
 
+  lsp_extensions-nvim = buildVimPluginFrom2Nix {
+    pname = "lsp_extensions-nvim";
+    version = "2020-09-06";
+    src = fetchFromGitHub {
+      owner = "tjdevries";
+      repo = "lsp_extensions.nvim";
+      rev = "7c3f907c3cf94d5797dcdaf5a72c5364a91e6bd2";
+      sha256 = "0c9glx0hn28m5jzz52ny1rcp63s9fdlznvywy4gzwwqi9rscqznz";
+    };
+    meta.homepage = "https://github.com/tjdevries/lsp_extensions.nvim/";
+  };
+
   lushtags = buildVimPluginFrom2Nix {
     pname = "lushtags";
     version = "2017-04-19";
@@ -2173,12 +2016,12 @@ let
 
   ncm2 = buildVimPluginFrom2Nix {
     pname = "ncm2";
-    version = "2020-03-05";
+    version = "2020-07-26";
     src = fetchFromGitHub {
       owner = "ncm2";
       repo = "ncm2";
-      rev = "6596df4631ee1ee17351a78f382d4efd0b82c05e";
-      sha256 = "16276cjviij92ypqj9148828k4dhiywam0dz07v3rikknak11cra";
+      rev = "7d49f7b473db732878091f2f8c68bc47b015559b";
+      sha256 = "112pspa730pvwiv0hbzn9z6i3zpn25p8g45wf67kj2084wiqkkx3";
     };
     meta.homepage = "https://github.com/ncm2/ncm2/";
   };
@@ -2195,18 +2038,102 @@ let
     meta.homepage = "https://github.com/ncm2/ncm2-bufword/";
   };
 
+  ncm2-cssomni = buildVimPluginFrom2Nix {
+    pname = "ncm2-cssomni";
+    version = "2018-07-09";
+    src = fetchFromGitHub {
+      owner = "ncm2";
+      repo = "ncm2-cssomni";
+      rev = "adaf78b921ee4320fd9d7adaa5bff7f3794f373a";
+      sha256 = "0z79n1fivw60whx2fy6239lq8c2xnbzzadijplj51gy34jk4hki0";
+    };
+    meta.homepage = "https://github.com/ncm2/ncm2-cssomni/";
+  };
+
+  ncm2-dictionary = buildVimPluginFrom2Nix {
+    pname = "ncm2-dictionary";
+    version = "2018-11-15";
+    src = fetchFromGitHub {
+      owner = "yuki-ycino";
+      repo = "ncm2-dictionary";
+      rev = "c93b52ab0cd1a9ebe5711414c3134f4bba9be6af";
+      sha256 = "096l8prqm7zb2s27j2cpnydggszicaji7xjlmhrav7dzc51avafy";
+    };
+    meta.homepage = "https://github.com/yuki-ycino/ncm2-dictionary/";
+  };
+
+  ncm2-github = buildVimPluginFrom2Nix {
+    pname = "ncm2-github";
+    version = "2018-08-01";
+    src = fetchFromGitHub {
+      owner = "ncm2";
+      repo = "ncm2-github";
+      rev = "2d7ed04a8fe5b8c27cfef5781a944d9865eed61f";
+      sha256 = "1dcxknbjm2mxrw1l2i56xrjyxlp0vr6gr5l62x5hcd5wfkzi74a1";
+    };
+    meta.homepage = "https://github.com/ncm2/ncm2-github/";
+  };
+
+  ncm2-html-subscope = buildVimPluginFrom2Nix {
+    pname = "ncm2-html-subscope";
+    version = "2018-07-01";
+    src = fetchFromGitHub {
+      owner = "ncm2";
+      repo = "ncm2-html-subscope";
+      rev = "8294cf1bb55fb805454a9230aeb91dbb0f733a14";
+      sha256 = "19h1jjqv6jwv5fnxxa6gv0qiyc3rbnxf0zibqxzdclmskrdgjacq";
+    };
+    meta.homepage = "https://github.com/ncm2/ncm2-html-subscope/";
+  };
+
   ncm2-jedi = buildVimPluginFrom2Nix {
     pname = "ncm2-jedi";
-    version = "2019-11-19";
+    version = "2020-08-06";
     src = fetchFromGitHub {
       owner = "ncm2";
       repo = "ncm2-jedi";
-      rev = "b28bf6d054051cc1c7a6b148323d3adb9baa4ed5";
-      sha256 = "07pq8akzvlb8hzksgxx1c50j09ia0xnszq1f83x75kqsjg5f6nhy";
+      rev = "d378d3e80e15368c1714fd6c20dd461dc7db9796";
+      sha256 = "0bphij55pjh87wcy0xk9yvgi0w3i0wvhbg71vddq0jn6m3r2gmlf";
     };
     meta.homepage = "https://github.com/ncm2/ncm2-jedi/";
   };
 
+  ncm2-markdown-subscope = buildVimPluginFrom2Nix {
+    pname = "ncm2-markdown-subscope";
+    version = "2020-03-09";
+    src = fetchFromGitHub {
+      owner = "ncm2";
+      repo = "ncm2-markdown-subscope";
+      rev = "beeef1e88df29d2718f0fb73cdd4702eaf449f13";
+      sha256 = "0hh5bs76k5jsjzdp5lm53gma517s8ijrdp0acjjvsagz7r7gymq7";
+    };
+    meta.homepage = "https://github.com/ncm2/ncm2-markdown-subscope/";
+  };
+
+  ncm2-neoinclude = buildVimPluginFrom2Nix {
+    pname = "ncm2-neoinclude";
+    version = "2020-07-19";
+    src = fetchFromGitHub {
+      owner = "ncm2";
+      repo = "ncm2-neoinclude";
+      rev = "081f48c735c5f51849ec14e6a266b5400bf94b62";
+      sha256 = "0xsvj8ng9blhwl8fxscm3iflppvf7p7kpl3hxh0z14xhdy3nynyi";
+    };
+    meta.homepage = "https://github.com/ncm2/ncm2-neoinclude/";
+  };
+
+  ncm2-neosnippet = buildVimPluginFrom2Nix {
+    pname = "ncm2-neosnippet";
+    version = "2019-01-26";
+    src = fetchFromGitHub {
+      owner = "ncm2";
+      repo = "ncm2-neosnippet";
+      rev = "650552528a2297179b8bb3afc1d9bb44ea97911b";
+      sha256 = "14ammx1qa72m6mafd64mc9qw3sgnmjqgq5vvcylqzqwy26wwla1b";
+    };
+    meta.homepage = "https://github.com/ncm2/ncm2-neosnippet/";
+  };
+
   ncm2-path = buildVimPluginFrom2Nix {
     pname = "ncm2-path";
     version = "2019-02-20";
@@ -2219,6 +2146,30 @@ let
     meta.homepage = "https://github.com/ncm2/ncm2-path/";
   };
 
+  ncm2-syntax = buildVimPluginFrom2Nix {
+    pname = "ncm2-syntax";
+    version = "2020-07-19";
+    src = fetchFromGitHub {
+      owner = "ncm2";
+      repo = "ncm2-syntax";
+      rev = "d41d60b22175822c14f497378a05398e3eca2517";
+      sha256 = "065sflxr6sp491ifvcf7bzvpn5c47qc0mr091v2p2k73lp9jx2s2";
+    };
+    meta.homepage = "https://github.com/ncm2/ncm2-syntax/";
+  };
+
+  ncm2-tagprefix = buildVimPluginFrom2Nix {
+    pname = "ncm2-tagprefix";
+    version = "2018-11-08";
+    src = fetchFromGitHub {
+      owner = "ncm2";
+      repo = "ncm2-tagprefix";
+      rev = "6bff80cbd3edb02a0c91a26820606d0dcbfeb3bd";
+      sha256 = "0a3dgvs3jflhh5015jw7iahlblvnlq7vllh9avwh9pggd7zwc42k";
+    };
+    meta.homepage = "https://github.com/ncm2/ncm2-tagprefix/";
+  };
+
   ncm2-tmux = buildVimPluginFrom2Nix {
     pname = "ncm2-tmux";
     version = "2019-01-11";
@@ -2243,6 +2194,18 @@ let
     meta.homepage = "https://github.com/ncm2/ncm2-ultisnips/";
   };
 
+  ncm2-vim = buildVimPluginFrom2Nix {
+    pname = "ncm2-vim";
+    version = "2020-07-19";
+    src = fetchFromGitHub {
+      owner = "ncm2";
+      repo = "ncm2-vim";
+      rev = "876ad5f30d1e296a4ab425a0e22a8162876ac48b";
+      sha256 = "19b2xl5cvy3pk14r3k02149whdrcgisnqv2rzm5bic4w23532ad2";
+    };
+    meta.homepage = "https://github.com/ncm2/ncm2-vim/";
+  };
+
   neco-ghc = buildVimPluginFrom2Nix {
     pname = "neco-ghc";
     version = "2020-06-06";
@@ -2269,36 +2232,36 @@ let
 
   neco-syntax = buildVimPluginFrom2Nix {
     pname = "neco-syntax";
-    version = "2019-11-10";
+    version = "2020-09-13";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neco-syntax";
-      rev = "6c3862ac82d2c917fa8b4126832de7d3a909f1fe";
-      sha256 = "1kmzlz6c5bs7f4dxgrdn4azwh55k6ghhyzy8jjdgj0wsb309y92k";
+      rev = "f8d7b748b022aac8ce73458574da5616f1c5fb65";
+      sha256 = "12h8qm6l40a2dgbimn579bdyar0dq88hk7mdd0vhyj15c1305kda";
     };
     meta.homepage = "https://github.com/Shougo/neco-syntax/";
   };
 
   neco-vim = buildVimPluginFrom2Nix {
     pname = "neco-vim";
-    version = "2020-04-08";
+    version = "2020-09-13";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neco-vim";
-      rev = "4fbc3f5f3a2b2d5299c388e2f1ffef04fcaf87ba";
-      sha256 = "0lk5p2aihalcarsjnvn1yidgv0xqp1bk29wywsbp8ni964s0si39";
+      rev = "e7b5a73cba668a351b0953063b6e18e1dc1773b2";
+      sha256 = "0mfli085rpr5assb4n21wnd59fnnsbfilim7impcwr9imvrw6ymf";
     };
     meta.homepage = "https://github.com/Shougo/neco-vim/";
   };
 
   neocomplete-vim = buildVimPluginFrom2Nix {
     pname = "neocomplete-vim";
-    version = "2020-01-23";
+    version = "2020-08-12";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neocomplete.vim";
-      rev = "0f83788cb67e0743a3a9c8d3a3a6e52a01bdc6c2";
-      sha256 = "1ydnb576qbdbij7ipciw0m46wbj45gj7xirpmqxazgp9y6b13isf";
+      rev = "f80bbf8f2f1717a127e5fbe885729daa862def81";
+      sha256 = "0cks5fvr05k0lp2mwflqzx0mq6a3881c1304hdyci57j5bkkyvkj";
     };
     meta.homepage = "https://github.com/Shougo/neocomplete.vim/";
   };
@@ -2317,36 +2280,36 @@ let
 
   neoformat = buildVimPluginFrom2Nix {
     pname = "neoformat";
-    version = "2020-06-12";
+    version = "2020-09-19";
     src = fetchFromGitHub {
       owner = "sbdchd";
       repo = "neoformat";
-      rev = "1cee66fe6219f8cc698eb244ba4001bdad1d09cb";
-      sha256 = "0w5hw5qc5n0i2hal91nilmxazskixv6c1rcszgqar4dfh951kazy";
+      rev = "4f259033bfbc1465c3a8348fcf632260d96a3e6f";
+      sha256 = "09grfx66m5wasqy8blhqhfcqnsh3b4gfyyi09l1zda1vr2hhvz15";
     };
     meta.homepage = "https://github.com/sbdchd/neoformat/";
   };
 
   neoinclude-vim = buildVimPluginFrom2Nix {
     pname = "neoinclude-vim";
-    version = "2019-05-11";
+    version = "2020-09-13";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neoinclude.vim";
-      rev = "5125e73de0a8b4f2c399e4896e21be1b8f7b3d39";
-      sha256 = "0qw63xyvrxvdzx01k5nnsv3p8zmnd77cwbkk24pikqrscxw3ypsz";
+      rev = "954cfc9dfdb303f2c2fa867b9cf949dd74512628";
+      sha256 = "0slp6mz8ds5raqhbi9gpr1ilgw745lfzjygyd58r6jcg2givsiik";
     };
     meta.homepage = "https://github.com/Shougo/neoinclude.vim/";
   };
 
   neomake = buildVimPluginFrom2Nix {
     pname = "neomake";
-    version = "2020-04-09";
+    version = "2020-07-15";
     src = fetchFromGitHub {
       owner = "neomake";
       repo = "neomake";
-      rev = "d10e53956161176c7f8a1ef2899880d5384f47b0";
-      sha256 = "0zv27bln0n687s0xm19nrk16i58hmxdhy26jmjh335zji0ydx27v";
+      rev = "a3082cca83424e28730c738cf33157326b0be5ba";
+      sha256 = "0jxxy6ibj73xh77rvfkcqr98q1pr563zsmzq1qdm3s9lb6xvzka6";
     };
     meta.homepage = "https://github.com/neomake/neomake/";
   };
@@ -2365,60 +2328,60 @@ let
 
   neosnippet-snippets = buildVimPluginFrom2Nix {
     pname = "neosnippet-snippets";
-    version = "2020-05-06";
+    version = "2020-09-24";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neosnippet-snippets";
-      rev = "66abcb7de82a45be6ba8b669d5e7bdca51deafdd";
-      sha256 = "0a0irlhj1skkwy1897q6dbg9zh8v6b0sx12dsgj3z37rvplfw78y";
+      rev = "886a414e339fe40a47f30da8aa6012a6e0906018";
+      sha256 = "0rnqa2cc7imapizg52r5dxzq2x2m8sxvds2q27ablzcvvghsjh96";
     };
     meta.homepage = "https://github.com/Shougo/neosnippet-snippets/";
   };
 
   neosnippet-vim = buildVimPluginFrom2Nix {
     pname = "neosnippet-vim";
-    version = "2020-06-13";
+    version = "2020-09-10";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neosnippet.vim";
-      rev = "a52edf794bae0174a682131333c891717633994b";
-      sha256 = "1k3ncjlikdbsjk33fi14y88yqywrpzdfz8kwzjfxjlidbzzlzk0w";
+      rev = "30b6b53b7a86b84371714b4a0f092d5d303c4a35";
+      sha256 = "0q06a0wq2aqgkjc5jndccffibr85hf33w2igcah3x6dl203p4ips";
     };
     meta.homepage = "https://github.com/Shougo/neosnippet.vim/";
   };
 
   NeoSolarized = buildVimPluginFrom2Nix {
     pname = "NeoSolarized";
-    version = "2020-03-10";
+    version = "2020-08-07";
     src = fetchFromGitHub {
       owner = "overcache";
       repo = "NeoSolarized";
-      rev = "70609c44215c8d2c43ad8c631296caae08a9c8d4";
-      sha256 = "0bxrm2vm3z1y37sm6m2hdn72g2sw31dx1xhmjvd0ng72cnp84d9k";
+      rev = "b94b1a9ad51e2de015266f10fdc6e142f97bd617";
+      sha256 = "019nz56yirpg1ahg8adfafrxznalw056qwm3xjm9kzg6da8j6v48";
     };
     meta.homepage = "https://github.com/overcache/NeoSolarized/";
   };
 
   neoterm = buildVimPluginFrom2Nix {
     pname = "neoterm";
-    version = "2020-05-30";
+    version = "2020-09-25";
     src = fetchFromGitHub {
       owner = "kassio";
       repo = "neoterm";
-      rev = "d6667d8fca8425753d7da215f57e1a0e936e75de";
-      sha256 = "1wmsqnhbd438xs8dp2jrkk7fhzzi7w1l66jqwfwz6sxl0ayc3k7y";
+      rev = "018f66204223336f74c0c5d2952a270e7bffc330";
+      sha256 = "18066iby2baw09srvpy9s7qwiybd8fwvg0a9k5h1rpjf47lss42s";
     };
     meta.homepage = "https://github.com/kassio/neoterm/";
   };
 
   neovim-fuzzy = buildVimPluginFrom2Nix {
     pname = "neovim-fuzzy";
-    version = "2019-11-14";
+    version = "2020-09-16";
     src = fetchFromGitHub {
       owner = "cloudhead";
       repo = "neovim-fuzzy";
-      rev = "53383395befafce802c902c21b54847074454491";
-      sha256 = "064qi6zv2hrzn91pvr31b9zj2q0k9vbkk5csdhw5y52q26p1gakq";
+      rev = "78f4d79f703aff49c9bcee5d527234c2f64425d5";
+      sha256 = "1dq79jabyyyphgigqac9jf7hhadfh336fm8hklh1d64xlzyrfp6s";
     };
     meta.homepage = "https://github.com/cloudhead/neovim-fuzzy/";
   };
@@ -2437,12 +2400,12 @@ let
 
   neoyank-vim = buildVimPluginFrom2Nix {
     pname = "neoyank-vim";
-    version = "2019-12-11";
+    version = "2020-07-27";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "neoyank.vim";
-      rev = "1829c6e426f829edea46660d0db08d4488010fcd";
-      sha256 = "1y6fvxqpj3rwf1fmjib177lqzh3z7syp7bccn79g1j8177m515w6";
+      rev = "0d86f6565a6193cdf017ac4f79e52fed04d5c0fb";
+      sha256 = "02n1n3hb3bn5x9na05crhwmdmk66wyjx8i01fsyazlpv32v1wfsy";
     };
     meta.homepage = "https://github.com/Shougo/neoyank.vim/";
   };
@@ -2461,26 +2424,38 @@ let
 
   nerdtree = buildVimPluginFrom2Nix {
     pname = "nerdtree";
-    version = "2020-06-01";
+    version = "2020-08-18";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "nerdtree";
-      rev = "d48ab70721d4f688ed34bd5939e2d6f4c89548c5";
-      sha256 = "0rd228ks4gppskcvz6cj94gnbd9wykic8f4ilc9smaqw817gq20s";
+      rev = "577ddc73f0a1d2fd6166ed3268ab8536111037e0";
+      sha256 = "0bccr18nr42vwbb4i765yxjw18piyiyd12sm4snbkkxahp9yswf7";
     };
     meta.homepage = "https://github.com/preservim/nerdtree/";
   };
 
   nerdtree-git-plugin = buildVimPluginFrom2Nix {
     pname = "nerdtree-git-plugin";
-    version = "2019-01-09";
+    version = "2020-09-25";
     src = fetchFromGitHub {
-      owner = "albfan";
+      owner = "Xuyuanp";
       repo = "nerdtree-git-plugin";
-      rev = "95e20577cd442ad6256aff9bb2e9c80db05c13f0";
-      sha256 = "15i66mxvygs6xa2jvk7bqdagxx1lcvynmyb9g75whgbv7is80qn7";
+      rev = "85c4bed898d2d755a2a2ffbfc2433084ce107cdd";
+      sha256 = "1m8s5x30k875812fbznvbq3pch5jpy29jr5rpzr0pr2ni5wkv6a4";
     };
-    meta.homepage = "https://github.com/albfan/nerdtree-git-plugin/";
+    meta.homepage = "https://github.com/Xuyuanp/nerdtree-git-plugin/";
+  };
+
+  neuron-vim = buildVimPluginFrom2Nix {
+    pname = "neuron-vim";
+    version = "2020-08-07";
+    src = fetchFromGitHub {
+      owner = "ihsanturk";
+      repo = "neuron.vim";
+      rev = "07521a3ef2940bd726e7b4d50b82e46898e686cc";
+      sha256 = "0myadiy6y2p73lhdzk2w55whg4i5rs004jaw1m21cz0dk8k8ibn2";
+    };
+    meta.homepage = "https://github.com/ihsanturk/neuron.vim/";
   };
 
   nim-vim = buildVimPluginFrom2Nix {
@@ -2497,12 +2472,12 @@ let
 
   nord-vim = buildVimPluginFrom2Nix {
     pname = "nord-vim";
-    version = "2019-12-17";
+    version = "2020-07-06";
     src = fetchFromGitHub {
       owner = "arcticicestudio";
       repo = "nord-vim";
-      rev = "f06189a4c054fe8c22e46aca4d451e03456f2283";
-      sha256 = "0gk4zq0gz3nnwfkldswg9bjpk0gf6d6mgfzcgvj0pnlbja6ass81";
+      rev = "57dffa746907e8ce5c4b520146ed0d89d3c29a51";
+      sha256 = "0xpz71rj74514789v6x9wrg95n8bsag8f5ygd7js40qrwpxq6b4j";
     };
     meta.homepage = "https://github.com/arcticicestudio/nord-vim/";
   };
@@ -2545,38 +2520,38 @@ let
 
   nvim-gdb = buildVimPluginFrom2Nix {
     pname = "nvim-gdb";
-    version = "2020-05-20";
+    version = "2020-09-15";
     src = fetchFromGitHub {
       owner = "sakhnik";
       repo = "nvim-gdb";
-      rev = "67c37060deba03d123c4654c1b3da426c92d6f61";
-      sha256 = "0rsgpnl20pxfqcwd5gr89mkqv3im4s7v4d1cvxvi9wj0ix06pxm1";
+      rev = "db06dcbdc480b936b2da3028addb80807fdc8ed6";
+      sha256 = "1d3jg75l8zgwxigmyy274rhn8ldfx003qzmfj2abd9lncqcs43va";
     };
     meta.homepage = "https://github.com/sakhnik/nvim-gdb/";
   };
 
   nvim-hs-vim = buildVimPluginFrom2Nix {
     pname = "nvim-hs-vim";
-    version = "2019-04-14";
+    version = "2020-08-29";
     src = fetchFromGitHub {
       owner = "neovimhaskell";
       repo = "nvim-hs.vim";
-      rev = "5bc177a87c9575c4995df90a098d330fe6e02f75";
-      sha256 = "14jgvkvakpy36md5si2a3rf2w869snb65inriq68xbk32bg5pg8q";
+      rev = "30baacd3c7a10625cb2d4dd64ae3bbfc4fe3f8c6";
+      sha256 = "1w6cr6j77nwxszm1d0y4phvjsz9q4aw214xkscw6izakfmk06h1x";
     };
     meta.homepage = "https://github.com/neovimhaskell/nvim-hs.vim/";
   };
 
-  nvim-lsp = buildVimPluginFrom2Nix {
-    pname = "nvim-lsp";
-    version = "2020-06-13";
+  nvim-lspconfig = buildVimPluginFrom2Nix {
+    pname = "nvim-lspconfig";
+    version = "2020-09-07";
     src = fetchFromGitHub {
       owner = "neovim";
-      repo = "nvim-lsp";
-      rev = "9ec118cdc7ce6442bf8beba903ab395b2f60190f";
-      sha256 = "1idam76jwvs82c2384y4az4rqp5cg29qhic12fnpy8m74b3rqla8";
+      repo = "nvim-lspconfig";
+      rev = "60133c47e0fd82556d7ca092546ebfa8d047466e";
+      sha256 = "15ysbbvxlgy1qx8rjv2i9pgjshldcs3m1ff0my2y5mnr3cpqb3s6";
     };
-    meta.homepage = "https://github.com/neovim/nvim-lsp/";
+    meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
 
   nvim-terminal-lua = buildVimPluginFrom2Nix {
@@ -2591,6 +2566,18 @@ let
     meta.homepage = "https://github.com/norcalli/nvim-terminal.lua/";
   };
 
+  nvim-treesitter = buildVimPluginFrom2Nix {
+    pname = "nvim-treesitter";
+    version = "2020-09-23";
+    src = fetchFromGitHub {
+      owner = "nvim-treesitter";
+      repo = "nvim-treesitter";
+      rev = "98c12ec23a6df2f2f505304b61c4b2eefc0a568f";
+      sha256 = "138rsbk2kx929cih6r3rqmgrygamnc1l9kh62pqsrphi28jh5178";
+    };
+    meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
+  };
+
   nvim-yarp = buildVimPluginFrom2Nix {
     pname = "nvim-yarp";
     version = "2020-04-08";
@@ -2615,6 +2602,30 @@ let
     meta.homepage = "https://github.com/neovim/nvimdev.nvim/";
   };
 
+  oceanic-next = buildVimPluginFrom2Nix {
+    pname = "oceanic-next";
+    version = "2019-04-10";
+    src = fetchFromGitHub {
+      owner = "mhartington";
+      repo = "oceanic-next";
+      rev = "08158eec24cd154afd1623686aeb336fad580be7";
+      sha256 = "1s2h9mnhl54ww7zpdllwlxz93d5i7l7rx3s9mr8w6sv8azcak3v8";
+    };
+    meta.homepage = "https://github.com/mhartington/oceanic-next/";
+  };
+
+  onedark-vim = buildVimPluginFrom2Nix {
+    pname = "onedark-vim";
+    version = "2020-08-12";
+    src = fetchFromGitHub {
+      owner = "joshdick";
+      repo = "onedark.vim";
+      rev = "7f9b1802b0d76f4f8fe7ad5bbef472c96e1c104f";
+      sha256 = "11fk496xk0564fcfmc77b2m98l6dmvb4ph50vyq73a1mlcs1438c";
+    };
+    meta.homepage = "https://github.com/joshdick/onedark.vim/";
+  };
+
   onehalf = buildVimPluginFrom2Nix {
     pname = "onehalf";
     version = "2020-06-11";
@@ -2629,12 +2640,12 @@ let
 
   open-browser-github-vim = buildVimPluginFrom2Nix {
     pname = "open-browser-github-vim";
-    version = "2020-03-16";
+    version = "2020-07-08";
     src = fetchFromGitHub {
       owner = "tyru";
       repo = "open-browser-github.vim";
-      rev = "db483ae17f02a8561e85b2071b90359a9a3bd18d";
-      sha256 = "09x9lfyi9gfhy4m1vp6z1kxpvi31rr8dnlqhh6fgskkziiqch3jw";
+      rev = "7c31cd0093fdf89d53fa02b210c82b1326b00a8c";
+      sha256 = "1r3b16b7siyxj3n44z899spma5vamc5g76p947h95m9d0rc6sfnk";
     };
     meta.homepage = "https://github.com/tyru/open-browser-github.vim/";
   };
@@ -2653,24 +2664,24 @@ let
 
   palenight-vim = buildVimPluginFrom2Nix {
     pname = "palenight-vim";
-    version = "2020-01-17";
+    version = "2020-09-08";
     src = fetchFromGitHub {
       owner = "drewtempelmeyer";
       repo = "palenight.vim";
-      rev = "f332f9efe73227a47c18bade892ac55682641733";
-      sha256 = "0nd2hqvxnjnbsp17x666nwyy0s9j9b6igyfhl44p7lkci6560gwp";
+      rev = "294f190da3bd50a7c91fed1b94c92fd0930791ec";
+      sha256 = "0s9mna0dcpszz3wyz1qmmrm76rxkjlmyxn7697k5vz4l49zzyi39";
     };
     meta.homepage = "https://github.com/drewtempelmeyer/palenight.vim/";
   };
 
   papercolor-theme = buildVimPluginFrom2Nix {
     pname = "papercolor-theme";
-    version = "2019-11-06";
+    version = "2020-06-16";
     src = fetchFromGitHub {
       owner = "NLKNguyen";
       repo = "papercolor-theme";
-      rev = "ddd09867ed4e020b3ba2eb47dc3ef365da5b0fed";
-      sha256 = "1dhbnd99xs6l5alqhn9m1nynmr9sbvrqj2137l23ysisprl3rgmr";
+      rev = "c657f5c2d5964bbae633f8a42c16f8316f6d6733";
+      sha256 = "1vv1gd64isrgyxc4fyp5mzlhffwkzdc8agnv0aka4v7qdaca45ni";
     };
     meta.homepage = "https://github.com/NLKNguyen/papercolor-theme/";
   };
@@ -2713,12 +2724,12 @@ let
 
   plantuml-syntax = buildVimPluginFrom2Nix {
     pname = "plantuml-syntax";
-    version = "2020-05-09";
+    version = "2020-07-03";
     src = fetchFromGitHub {
       owner = "aklt";
       repo = "plantuml-syntax";
-      rev = "8dddc45f3f7ba4f0319a14e6f0167d97a703ac55";
-      sha256 = "1fkls8qwkdgr5fyaml9rlrjzrbwav2zyp2xyfdyg4h6pbgchvkbl";
+      rev = "eb3df3092a767c844db3f3ff355da840abd0aa97";
+      sha256 = "02psvyxli5gs2cx2sha33mk98ivllb8zr1jwgv4hgi5bh6qd7wg3";
     };
     meta.homepage = "https://github.com/aklt/plantuml-syntax/";
   };
@@ -2797,12 +2808,12 @@ let
 
   quick-scope = buildVimPluginFrom2Nix {
     pname = "quick-scope";
-    version = "2020-05-09";
+    version = "2020-07-31";
     src = fetchFromGitHub {
       owner = "unblevable";
       repo = "quick-scope";
-      rev = "95578ca8eef44fcdba5e144b78604018590c6cef";
-      sha256 = "1h5kc2wffvaljdvggp2s74jkd7z88y2r5g1flqlgda2x1ihlhavm";
+      rev = "64a5e6f9791e75f4d87b176d5c11f31041aa4169";
+      sha256 = "1b1s8jmfip40s9m466c78jczp22dq2brbsnmdaz7gc1fgxyb5858";
     };
     meta.homepage = "https://github.com/unblevable/quick-scope/";
   };
@@ -2965,12 +2976,12 @@ let
 
   rust-vim = buildVimPluginFrom2Nix {
     pname = "rust-vim";
-    version = "2020-06-11";
+    version = "2020-09-18";
     src = fetchFromGitHub {
       owner = "rust-lang";
       repo = "rust.vim";
-      rev = "0d8ce07aaa3b95e61bf319b25bb3b1a4ecc780c2";
-      sha256 = "0bwj60zvafv5z61yy66ab6ng1ilnj20k3xnxl6myzvfn70rsp5yd";
+      rev = "96e79e397126be1a64fb53d8e3656842fe1a4532";
+      sha256 = "0siml7vqiq5nvymyw8az48rv5dsf9dad8y8hy22j57lknd67b8h3";
     };
     meta.homepage = "https://github.com/rust-lang/rust.vim/";
   };
@@ -2999,6 +3010,18 @@ let
     meta.homepage = "https://github.com/megaannum/self/";
   };
 
+  semantic-highlight-vim = buildVimPluginFrom2Nix {
+    pname = "semantic-highlight-vim";
+    version = "2020-09-11";
+    src = fetchFromGitHub {
+      owner = "jaxbot";
+      repo = "semantic-highlight.vim";
+      rev = "7e141c2b7be0f2600276004fd2e7382a3fa0f690";
+      sha256 = "04975ly6zd58zhs2v07dw6m1dha0gkmfm0pvhlrgcrf2qp8n4m3v";
+    };
+    meta.homepage = "https://github.com/jaxbot/semantic-highlight.vim/";
+  };
+
   semshi = buildVimPluginFrom2Nix {
     pname = "semshi";
     version = "2019-12-01";
@@ -3013,12 +3036,12 @@ let
 
   seoul256-vim = buildVimPluginFrom2Nix {
     pname = "seoul256-vim";
-    version = "2020-03-14";
+    version = "2020-06-21";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "seoul256.vim";
-      rev = "cfc0167e546a40eb26ec2a0a0f1c141a8c1bcaf1";
-      sha256 = "1z980hsmf6gcvd16ja67az131mrgv5fv6v0ivsh0ga8hwc4f9l6q";
+      rev = "24ed467ca6ef9ce7ede56c9ffb1c6b30cd0ee906";
+      sha256 = "0ihs5nxdyx3jr1n96l2yx4b5gc48x7qbyxv6dc53ihw2vpn783fx";
     };
     meta.homepage = "https://github.com/junegunn/seoul256.vim/";
   };
@@ -3047,18 +3070,42 @@ let
     meta.homepage = "https://github.com/vim-scripts/ShowMultiBase/";
   };
 
+  sideways-vim = buildVimPluginFrom2Nix {
+    pname = "sideways-vim";
+    version = "2020-09-21";
+    src = fetchFromGitHub {
+      owner = "AndrewRadev";
+      repo = "sideways.vim";
+      rev = "19c5a21206b6c9f999004256a10e7381450ea83f";
+      sha256 = "14h8lf70wccafapifzf9c6cjprik9n1a1wmv5gpajyqqbvzh1yv6";
+    };
+    meta.homepage = "https://github.com/AndrewRadev/sideways.vim/";
+  };
+
   SimpylFold = buildVimPluginFrom2Nix {
     pname = "SimpylFold";
-    version = "2017-06-13";
+    version = "2020-09-09";
     src = fetchFromGitHub {
       owner = "tmhedberg";
       repo = "SimpylFold";
-      rev = "aa0371d9d708388f3ba385ccc67a7504586a20d9";
-      sha256 = "1gjv78x2cgh79a04l411kdhkm53f93czs54p07kadpa9659z93ss";
+      rev = "0459df8a0bbfc8ef1bfd88db889e881626f65914";
+      sha256 = "1lydkm86d84fsmbklwcgnlb95vczri9a8d898hrnfvskyx050y2w";
     };
     meta.homepage = "https://github.com/tmhedberg/SimpylFold/";
   };
 
+  skim-vim = buildVimPluginFrom2Nix {
+    pname = "skim-vim";
+    version = "2019-07-31";
+    src = fetchFromGitHub {
+      owner = "lotabout";
+      repo = "skim.vim";
+      rev = "4e9d9a3deb2060e2e79fede1c213f13ac7866eb5";
+      sha256 = "0vpfn2zivk8cf2l841jbd78zl1vzdw1wjf9p0dm6pgr84kj9pkx4";
+    };
+    meta.homepage = "https://github.com/lotabout/skim.vim/";
+  };
+
   sky-color-clock-vim = buildVimPluginFrom2Nix {
     pname = "sky-color-clock-vim";
     version = "2018-11-03";
@@ -3109,12 +3156,12 @@ let
 
   Spacegray-vim = buildVimPluginFrom2Nix {
     pname = "Spacegray-vim";
-    version = "2019-02-23";
+    version = "2020-09-18";
     src = fetchFromGitHub {
       owner = "ajh17";
       repo = "Spacegray.vim";
-      rev = "69e8fefce04e2aff6a01cc4c295493359b0e4fa1";
-      sha256 = "0ks5yd1vmpjw8ml7hqd2zz2d8mqkqhfw2ya73y1igf6as70za896";
+      rev = "338b319da09b5e62744a54c79148262ba0f24bf3";
+      sha256 = "0jkv0sg1sc7d8br32zmwr5m1iwbvzi43f4gvshfi71c6k2fyhwlb";
     };
     meta.homepage = "https://github.com/ajh17/Spacegray.vim/";
   };
@@ -3169,12 +3216,12 @@ let
 
   splitjoin-vim = buildVimPluginFrom2Nix {
     pname = "splitjoin-vim";
-    version = "2020-06-11";
+    version = "2020-09-21";
     src = fetchFromGitHub {
       owner = "AndrewRadev";
       repo = "splitjoin.vim";
-      rev = "03dc38772d59e78de3d87b27438fecab70dd6688";
-      sha256 = "0xn972gppr87lx37p01x1ikh2nwn56szhgnikw1v269vnysic15m";
+      rev = "7148cbc3b9c4f70cea9fdccb72ae246b6d499c20";
+      sha256 = "0smaghrigmr8jmw919pmlcvv6a7w7rw2j12gnbks30pi45y547jm";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/AndrewRadev/splitjoin.vim/";
@@ -3218,24 +3265,24 @@ let
 
   swift-vim = buildVimPluginFrom2Nix {
     pname = "swift-vim";
-    version = "2020-02-21";
+    version = "2020-09-04";
     src = fetchFromGitHub {
       owner = "keith";
       repo = "swift.vim";
-      rev = "c4053da88208cef5a32a5862694d36b73f6ce310";
-      sha256 = "0awz0pf3awrwhay40wngfllpmmh24zwm02ra530x4n1hk74iwf2v";
+      rev = "bfc662d11b3a006815d0b6972c1c0c2ebbc3b16e";
+      sha256 = "1qf5f9p0kfi6bq2qi9izarva6r711vzlbrbdax8nq9g0pxa1bj3f";
     };
     meta.homepage = "https://github.com/keith/swift.vim/";
   };
 
   syntastic = buildVimPluginFrom2Nix {
     pname = "syntastic";
-    version = "2020-04-19";
+    version = "2020-09-17";
     src = fetchFromGitHub {
       owner = "vim-syntastic";
       repo = "syntastic";
-      rev = "b3e2d8470fddc7f2b598f09023ebc5045a3fb1fd";
-      sha256 = "1ljsh0npbcv9g6l23z4jpba0bk1k5n13ix0p0rr22cipgzlxsbvh";
+      rev = "20fb41cb3ee7efd041866fad7384668d131a0029";
+      sha256 = "1gmk9hlyz8k5880gzs0pqbpmscjzfj3cwfdkg950w5ky2lm0i7n2";
     };
     meta.homepage = "https://github.com/vim-syntastic/syntastic/";
   };
@@ -3278,14 +3325,14 @@ let
 
   tagbar = buildVimPluginFrom2Nix {
     pname = "tagbar";
-    version = "2020-06-11";
+    version = "2020-09-23";
     src = fetchFromGitHub {
-      owner = "majutsushi";
+      owner = "preservim";
       repo = "tagbar";
-      rev = "56399f446c64d187c106e112afa4d97985508eba";
-      sha256 = "1bmfv09lxwq9b8hp4v2avmd979178lm60xxf5g0qiifrr4ym2gqk";
+      rev = "6099093050d84094001f2f226ddc09d7c2edcdd6";
+      sha256 = "1gvyq1gra9k3fjjzr4lh9kwf0h2a5di242kxlwyj78p9606cdf9g";
     };
-    meta.homepage = "https://github.com/majutsushi/tagbar/";
+    meta.homepage = "https://github.com/preservim/tagbar/";
   };
 
   taglist-vim = buildVimPluginFrom2Nix {
@@ -3314,24 +3361,24 @@ let
 
   tcomment_vim = buildVimPluginFrom2Nix {
     pname = "tcomment_vim";
-    version = "2020-05-12";
+    version = "2020-08-23";
     src = fetchFromGitHub {
       owner = "tomtom";
       repo = "tcomment_vim";
-      rev = "22f3707fd19e1573b4379f3b8db0e967f4ae6492";
-      sha256 = "0nj7bsmkw8yc4hfnbsm32lf4qcwc4qd18nr5sb7vrkm6ipsr2qyz";
+      rev = "25bdb50a6c5934d4ac9313cef0d7d2168d84803b";
+      sha256 = "04dmdydrc4v055qkjn5gfvibyzd30fg00abnk8ijvabfcmhvlh40";
     };
     meta.homepage = "https://github.com/tomtom/tcomment_vim/";
   };
 
   tender-vim = buildVimPluginFrom2Nix {
     pname = "tender-vim";
-    version = "2020-04-24";
+    version = "2020-06-29";
     src = fetchFromGitHub {
       owner = "jacoborus";
       repo = "tender.vim";
-      rev = "44d04bc9ecb0188e7b1a3e6b6715b9a63dc8f3e1";
-      sha256 = "059my5q6gqjdkaf7qn842h92c6y7lp5z8wpwsi2ww6anzy85506z";
+      rev = "25924cb8b29a5158e56fb896a2540c70691c7a28";
+      sha256 = "0mm5h5jhb6y0f1zsfhq0frvdm6s93skshi66rfrpn82l93zigw4c";
     };
     meta.homepage = "https://github.com/jacoborus/tender.vim/";
   };
@@ -3362,12 +3409,12 @@ let
 
   thumbnail-vim = buildVimPluginFrom2Nix {
     pname = "thumbnail-vim";
-    version = "2020-05-07";
+    version = "2020-08-15";
     src = fetchFromGitHub {
       owner = "itchyny";
       repo = "thumbnail.vim";
-      rev = "c238441923d4eefd0c1436686b35e8fa9e643a3e";
-      sha256 = "101w0pvfcnms07w4l6yjhn4b4hb3rvwm827qb2z4rb14fydakias";
+      rev = "161ff743cb031eff376780108b018735d92160b0";
+      sha256 = "105a1a9kahfdicw1gkdhc88w41pyhmhv6yw2kh1flkaikzqlxbc8";
     };
     meta.homepage = "https://github.com/itchyny/thumbnail.vim/";
   };
@@ -3411,24 +3458,24 @@ let
 
   traces-vim = buildVimPluginFrom2Nix {
     pname = "traces-vim";
-    version = "2020-01-22";
+    version = "2020-09-24";
     src = fetchFromGitHub {
       owner = "markonm";
       repo = "traces.vim";
-      rev = "4d3858eb060a1fd2213b075a707d39cbb118ae3e";
-      sha256 = "0qny9z459x7hp5y43iivws2m312clacysdy1nnb3cr1fyhw9pflx";
+      rev = "8ea8d8b98e61cddaff159b4328310f4096c7bb2b";
+      sha256 = "1fs7j7v72nv5374pqpx68xjc8kl3fyyhwz4hc029kljqlvgg0lrj";
     };
     meta.homepage = "https://github.com/markonm/traces.vim/";
   };
 
   tslime-vim = buildVimPluginFrom2Nix {
     pname = "tslime-vim";
-    version = "2018-07-23";
+    version = "2020-09-09";
     src = fetchFromGitHub {
       owner = "jgdavey";
       repo = "tslime.vim";
-      rev = "28e9eba642a791c6a6b044433dce8e5451b26fb0";
-      sha256 = "1y5xikryv6851d0rjk9c64agawshp5208mwym6ma9ngs7s3s1l4x";
+      rev = "9b2b99e409336584103b83c597fdb6234875ae25";
+      sha256 = "048ycam0awcf98zhha6c5n1fk366w559bmjcanik2sqlqw1f74as";
     };
     meta.homepage = "https://github.com/jgdavey/tslime.vim/";
   };
@@ -3447,24 +3494,24 @@ let
 
   typescript-vim = buildVimPluginFrom2Nix {
     pname = "typescript-vim";
-    version = "2020-02-13";
+    version = "2020-09-09";
     src = fetchFromGitHub {
       owner = "leafgarland";
       repo = "typescript-vim";
-      rev = "17d85d8051ba21283e62a9101734981e10b732fd";
-      sha256 = "17z8ygns97wlnm4vq7kgkx3ymnbb2f6imxn02fc0iywkrhdqv7mj";
+      rev = "9f247d7693cd12171239c56c355ba863f559f424";
+      sha256 = "1m16rhvmymxps41s7f6nh6gnbfiw5qwkvl23jr9z91xsq58jzj9l";
     };
     meta.homepage = "https://github.com/leafgarland/typescript-vim/";
   };
 
   ultisnips = buildVimPluginFrom2Nix {
     pname = "ultisnips";
-    version = "2020-05-19";
+    version = "2020-09-08";
     src = fetchFromGitHub {
       owner = "SirVer";
       repo = "ultisnips";
-      rev = "e83c82099d9bd43dc7895e3cb5b114ee5a2a07c6";
-      sha256 = "0a9fqgg8sg8s19q9inxyzl6lqdsnxs22csqs2rss1qz9dsic4yrh";
+      rev = "7941f98337564d4e86cf2b7467b64def4d212794";
+      sha256 = "0miihbj9h3ay6iq1ld13ixij3l4h02yrmc7bq8iarw776l89gin0";
     };
     meta.homepage = "https://github.com/SirVer/ultisnips/";
   };
@@ -3483,24 +3530,24 @@ let
 
   unicode-vim = buildVimPluginFrom2Nix {
     pname = "unicode-vim";
-    version = "2020-06-09";
+    version = "2020-08-10";
     src = fetchFromGitHub {
       owner = "chrisbra";
       repo = "unicode.vim";
-      rev = "76e95c6f8c863f5079cd103b18990684bb02d525";
-      sha256 = "0v3w117bimd74r9i209hgqy75x83hdd3za26l8g729w56kqgq5r8";
+      rev = "e9b21134f4e8bc8cd09fa6145749511ac8800f98";
+      sha256 = "0rfkd11arkmc2z2m9lz5hnqxfcp2b98hmzgf424s44xyhrn98y16";
     };
     meta.homepage = "https://github.com/chrisbra/unicode.vim/";
   };
 
   unite-vim = buildVimPluginFrom2Nix {
     pname = "unite-vim";
-    version = "2019-08-27";
+    version = "2020-06-28";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "unite.vim";
-      rev = "5addeca429f64130d74d2f7cb8255afdb9e309d2";
-      sha256 = "03bqljjc1h43qimm81mv8ywkx5388kd6clm2f7887diiww0fgvfi";
+      rev = "787c777ff2fedd46fc10e315bdfea339fe016d33";
+      sha256 = "1bm48d3n07i2hy7bqz6pzyl3zb5mikhplmk5fk5x09q2i47l6bqg";
     };
     meta.homepage = "https://github.com/Shougo/unite.vim/";
   };
@@ -3553,18 +3600,6 @@ let
     meta.homepage = "https://github.com/vhda/verilog_systemverilog.vim/";
   };
 
-  vim = buildVimPluginFrom2Nix {
-    pname = "vim";
-    version = "2020-05-19";
-    src = fetchFromGitHub {
-      owner = "dracula";
-      repo = "vim";
-      rev = "494dbe9d4effff140ffe6743b614d900a0f34dd7";
-      sha256 = "0d85kgxb52xw6120q6zrksr10nj54s8qi0fl6gqw6nc08ldaq0b1";
-    };
-    meta.homepage = "https://github.com/dracula/vim/";
-  };
-
   vim-abolish = buildVimPluginFrom2Nix {
     pname = "vim-abolish";
     version = "2019-11-13";
@@ -3805,26 +3840,38 @@ let
     meta.homepage = "https://github.com/MarcWeber/vim-addon-xdebug/";
   };
 
+  vim-after-object = buildVimPluginFrom2Nix {
+    pname = "vim-after-object";
+    version = "2018-09-17";
+    src = fetchFromGitHub {
+      owner = "junegunn";
+      repo = "vim-after-object";
+      rev = "7f52106df8a05e9bc1c53960c31a55f77e303903";
+      sha256 = "13726m0c73n5pw9gil4ahbg71ibklrwkw9yvbr6qxxvn6qyijpdy";
+    };
+    meta.homepage = "https://github.com/junegunn/vim-after-object/";
+  };
+
   vim-airline = buildVimPluginFrom2Nix {
     pname = "vim-airline";
-    version = "2020-06-11";
+    version = "2020-09-26";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline";
-      rev = "ee85ed4c673b859cf8c3626a6669b8e3cd2392fa";
-      sha256 = "1wayink1n9l590kfi28xp37kw186g7j0dr5kgfr7xz8mk2g0wg0k";
+      rev = "9614105d09ff0d6e1043ab33028615f107fe94a5";
+      sha256 = "11kkzl473l4nrz3k13264sn23pmpr1pdcnmxkzndpx1k0r3f87qy";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline/";
   };
 
   vim-airline-themes = buildVimPluginFrom2Nix {
     pname = "vim-airline-themes";
-    version = "2020-04-01";
+    version = "2020-08-27";
     src = fetchFromGitHub {
       owner = "vim-airline";
       repo = "vim-airline-themes";
-      rev = "3fb676b8729a98817f561ef1554c0ad1a514c96a";
-      sha256 = "18bfw09ywmw10jiv37iw2ijf46jhj2yw5wndqdgn7k42gy1wk7p6";
+      rev = "155bce6665ab8c83447102e8402cc9d3b7c3b3f3";
+      sha256 = "1qavi386va4wnalaf03b19lfxypbkjcjdiiasbdzfnlqpz7d4rwy";
     };
     meta.homepage = "https://github.com/vim-airline/vim-airline-themes/";
   };
@@ -3879,12 +3926,12 @@ let
 
   vim-autoformat = buildVimPluginFrom2Nix {
     pname = "vim-autoformat";
-    version = "2020-05-29";
+    version = "2020-07-29";
     src = fetchFromGitHub {
       owner = "Chiel92";
       repo = "vim-autoformat";
-      rev = "f116a3b86cb3e9fbcd8563cce4958759610d8f51";
-      sha256 = "1vamldn3y9pima18ryrrzn2mz1czzzadkiiklcrcl104v9mhv4am";
+      rev = "273ccae26d6b5ab10bb48479c0ff5971018e3c5a";
+      sha256 = "07fldl6fsi3ns2zx4va69g01gb5mdsva8qpyjmryhn08l2qz0c40";
     };
     meta.homepage = "https://github.com/Chiel92/vim-autoformat/";
   };
@@ -3903,24 +3950,24 @@ let
 
   vim-bazel = buildVimPluginFrom2Nix {
     pname = "vim-bazel";
-    version = "2019-08-14";
+    version = "2020-08-22";
     src = fetchFromGitHub {
       owner = "bazelbuild";
       repo = "vim-bazel";
-      rev = "7c4987b4266d117a9f1d4c7fe7f4dfba33dfc8c8";
-      sha256 = "182w8ibr34z86nmx6byabkah0q9fgrzml8m2ardaqzqjqr2ya5yg";
+      rev = "85a044d854e5e48f72414726c255112be31e2cac";
+      sha256 = "1hcfbl958v39w00kyfg75rcxs9xzaqnd98i4y322ayqfgrhd95n8";
     };
     meta.homepage = "https://github.com/bazelbuild/vim-bazel/";
   };
 
   vim-beancount = buildVimPluginFrom2Nix {
     pname = "vim-beancount";
-    version = "2020-05-14";
+    version = "2020-08-06";
     src = fetchFromGitHub {
       owner = "nathangrigg";
       repo = "vim-beancount";
-      rev = "53ab32f82723d685648b691af3d8a64a2a119d43";
-      sha256 = "1vvfr1wz2770h4rh48qnaqbbdbfxj6pcyhyfh0vf641l46v6wzf8";
+      rev = "6d762beaa526d4e56280619aa62b1013b50457b7";
+      sha256 = "0r4ziynmil432k1xjglqjx0bh5069aav3k9r58ksqg716w4zvzys";
     };
     meta.homepage = "https://github.com/nathangrigg/vim-beancount/";
   };
@@ -3937,6 +3984,18 @@ let
     meta.homepage = "https://github.com/ntpeters/vim-better-whitespace/";
   };
 
+  vim-bsv = buildVimPluginFrom2Nix {
+    pname = "vim-bsv";
+    version = "2019-07-11";
+    src = fetchFromGitHub {
+      owner = "mtikekar";
+      repo = "vim-bsv";
+      rev = "dc775cb06891dd0923b5e2a882f5dcee6451540a";
+      sha256 = "18wsbvypi62nwgcazw2m47d6k8ymlv1zwabs2gwl931n710ldkfc";
+    };
+    meta.homepage = "https://github.com/mtikekar/vim-bsv/";
+  };
+
   vim-buffergator = buildVimPluginFrom2Nix {
     pname = "vim-buffergator";
     version = "2018-05-02";
@@ -3963,16 +4022,28 @@ let
 
   vim-bufkill = buildVimPluginFrom2Nix {
     pname = "vim-bufkill";
-    version = "2020-04-29";
+    version = "2020-08-04";
     src = fetchFromGitHub {
       owner = "qpkorr";
       repo = "vim-bufkill";
-      rev = "1bcdcb4a03a6ac1de06bc84b7f94ca08f4485f42";
-      sha256 = "0j3r63j2vs0lm1vnfzwcwqbahncnqq46wmaf1rp8i9l8skqm20px";
+      rev = "2bd6d7e791668ea52bb26be2639406fcf617271f";
+      sha256 = "1cvma03bg9psil67kg1x90lny7a31ljz5shybcl1jrfpzsybcqvg";
     };
     meta.homepage = "https://github.com/qpkorr/vim-bufkill/";
   };
 
+  vim-carbon-now-sh = buildVimPluginFrom2Nix {
+    pname = "vim-carbon-now-sh";
+    version = "2019-02-14";
+    src = fetchFromGitHub {
+      owner = "kristijanhusak";
+      repo = "vim-carbon-now-sh";
+      rev = "789b15d17966a1100ed2889d670923dd6d9ff063";
+      sha256 = "1vfhdqv8mf8w0s4nv8k2rqzvahvh1lxm4zsd3ks1n334f580w8x4";
+    };
+    meta.homepage = "https://github.com/kristijanhusak/vim-carbon-now-sh/";
+  };
+
   vim-choosewin = buildVimPluginFrom2Nix {
     pname = "vim-choosewin";
     version = "2019-09-17";
@@ -3985,6 +4056,30 @@ let
     meta.homepage = "https://github.com/t9md/vim-choosewin/";
   };
 
+  vim-clang-format = buildVimPluginFrom2Nix {
+    pname = "vim-clang-format";
+    version = "2019-05-15";
+    src = fetchFromGitHub {
+      owner = "rhysd";
+      repo = "vim-clang-format";
+      rev = "95593b67723f23979cd7344ecfd049f2f917830f";
+      sha256 = "0n0k13k63l8n0ixs4zrhlz923apvdp2mldadxqlhmvsvncmlqmpn";
+    };
+    meta.homepage = "https://github.com/rhysd/vim-clang-format/";
+  };
+
+  vim-clap = buildVimPluginFrom2Nix {
+    pname = "vim-clap";
+    version = "2020-09-26";
+    src = fetchFromGitHub {
+      owner = "liuchengxu";
+      repo = "vim-clap";
+      rev = "96351ea98afa8ff825925d7758208219dddd6c9c";
+      sha256 = "1aav8d47y9n0hkb6is47mz2a4pbgwlg2id0lw0zzbvsxjvidrgpr";
+    };
+    meta.homepage = "https://github.com/liuchengxu/vim-clap/";
+  };
+
   vim-clojure-highlight = buildVimPluginFrom2Nix {
     pname = "vim-clojure-highlight";
     version = "2015-07-05";
@@ -4023,12 +4118,12 @@ let
 
   vim-codefmt = buildVimPluginFrom2Nix {
     pname = "vim-codefmt";
-    version = "2020-06-08";
+    version = "2020-09-09";
     src = fetchFromGitHub {
       owner = "google";
       repo = "vim-codefmt";
-      rev = "90335990808167d910671a625f3ee9de9aac1058";
-      sha256 = "1rq0ivynsq35h5kpzpd963bgkbx9lb26wlxrb2l8xha0zzzsmhpz";
+      rev = "9346c381c94c0f9312c6e7970a4ab15419935464";
+      sha256 = "03nymldw5ifc57z5vr0xaz00vml6v854zp2fnzm4q9v9n295kh66";
     };
     meta.homepage = "https://github.com/google/vim-codefmt/";
   };
@@ -4129,6 +4224,18 @@ let
     meta.homepage = "https://github.com/octol/vim-cpp-enhanced-highlight/";
   };
 
+  vim-crates = buildVimPluginFrom2Nix {
+    pname = "vim-crates";
+    version = "2019-11-11";
+    src = fetchFromGitHub {
+      owner = "mhinz";
+      repo = "vim-crates";
+      rev = "addbb157d0652ce5288c5b5b6f32f8716eb47898";
+      sha256 = "1pczfm9vjjna3xdqym9h69gi47kiwi97lzjf9jjlkmyg1s4pwlsp";
+    };
+    meta.homepage = "https://github.com/mhinz/vim-crates/";
+  };
+
   vim-csharp = buildVimPluginFrom2Nix {
     pname = "vim-csharp";
     version = "2017-03-29";
@@ -4143,36 +4250,36 @@ let
 
   vim-css-color = buildVimPluginFrom2Nix {
     pname = "vim-css-color";
-    version = "2020-04-16";
+    version = "2020-08-16";
     src = fetchFromGitHub {
       owner = "ap";
       repo = "vim-css-color";
-      rev = "741dd18a35e251ededc0687eea9b8d100d3b83b8";
-      sha256 = "1mjwyznprhhfmwi1djyjgxkqv9bwima1ysxa9782rk198j2n87vs";
+      rev = "4694c6ea03a065a3f6ddbebce56797a21e8241ef";
+      sha256 = "12bzxrdvb9s0d8llkq6h63g86qxs0gv9x7401apl6qrs79prrb4a";
     };
     meta.homepage = "https://github.com/ap/vim-css-color/";
   };
 
   vim-cue = buildVimPluginFrom2Nix {
     pname = "vim-cue";
-    version = "2020-05-20";
+    version = "2020-07-20";
     src = fetchFromGitHub {
       owner = "jjo";
       repo = "vim-cue";
-      rev = "9b26fb250d473f949fc90cabe70efff316a90248";
-      sha256 = "0aybj1xxi860cn7wzg13z50f16kdsyhba0z7qwchps4fr24xkjms";
+      rev = "339edaf79ff1287ce6a23baaa421e68463cf1a2e";
+      sha256 = "0jr30plym17fdg90smb7g35yi9iz9b7s4md6cxj83zg4vj2hyjh1";
     };
     meta.homepage = "https://github.com/jjo/vim-cue/";
   };
 
   vim-cursorword = buildVimPluginFrom2Nix {
     pname = "vim-cursorword";
-    version = "2020-05-02";
+    version = "2020-06-20";
     src = fetchFromGitHub {
       owner = "itchyny";
       repo = "vim-cursorword";
-      rev = "109604ab6f35744e133802d7cf61795721612cac";
-      sha256 = "1mrkkl6pchrmd2s5wjdh46p54hchv7jvgdbjjxmvzhg5ndk0zxvf";
+      rev = "cc8114226ceefb5cafe1890e0900d3efb7dab1fd";
+      sha256 = "1x5ljk82bxc3qhrq5pz0dsab8rg1234syd1xmpkgvif52s9g4mfk";
     };
     meta.homepage = "https://github.com/itchyny/vim-cursorword/";
   };
@@ -4203,24 +4310,24 @@ let
 
   vim-dasht = buildVimPluginFrom2Nix {
     pname = "vim-dasht";
-    version = "2020-05-18";
+    version = "2020-07-11";
     src = fetchFromGitHub {
       owner = "sunaku";
       repo = "vim-dasht";
-      rev = "efee6525f7f61f2b201cbb09c888941c3e5a5e27";
-      sha256 = "186rvr9vw140sin219q6psvh70vlqas9vfnbbg5ms6n7wvhz6a19";
+      rev = "c1c91ecfd30f0e4e946854a6f7c67eb2d1e21c98";
+      sha256 = "0ldkyzsn4b555pb9qdr0k6w6m3w7ziy7v6bcnx0n8ppq4fl68pz2";
     };
     meta.homepage = "https://github.com/sunaku/vim-dasht/";
   };
 
   vim-devicons = buildVimPluginFrom2Nix {
     pname = "vim-devicons";
-    version = "2020-06-12";
+    version = "2020-09-26";
     src = fetchFromGitHub {
       owner = "ryanoasis";
       repo = "vim-devicons";
-      rev = "84ec4562c21882dfe80b779cd645c607ec9d9727";
-      sha256 = "1nv7aivnrxa91b2ylxzfiss46r9m2qf13v8wlhav85mgd51nhj99";
+      rev = "929dbd023f0de84d1abb502b7d77eddad33419a6";
+      sha256 = "15qj771nss9jxfrqnfgvk0d5zrna3g064lqbwrfxmc816k1j56w0";
     };
     meta.homepage = "https://github.com/ryanoasis/vim-devicons/";
   };
@@ -4251,16 +4358,28 @@ let
 
   vim-dirvish = buildVimPluginFrom2Nix {
     pname = "vim-dirvish";
-    version = "2020-05-01";
+    version = "2020-09-07";
     src = fetchFromGitHub {
       owner = "justinmk";
       repo = "vim-dirvish";
-      rev = "a19760770b810050e748de14ced589dd34c2dcb5";
-      sha256 = "0iz72p992z2bkvz66x7fgyd9hpjq558h009bsjvfr4l6fpbi4ys2";
+      rev = "9c0dc32af9235d42715751b30cf04fa0584c1798";
+      sha256 = "1xl655mnhjn1mbqzvxblsbqyg3yq50ri2a7szvqmpywq8rr0ymq9";
     };
     meta.homepage = "https://github.com/justinmk/vim-dirvish/";
   };
 
+  vim-dirvish-git = buildVimPluginFrom2Nix {
+    pname = "vim-dirvish-git";
+    version = "2020-06-04";
+    src = fetchFromGitHub {
+      owner = "kristijanhusak";
+      repo = "vim-dirvish-git";
+      rev = "8a3a8b88ed0815500c2912658fe0de7583ee1d45";
+      sha256 = "1z8a718kam2r87kimhayxndjbmpgk0mgwrc5v52bid584xml584k";
+    };
+    meta.homepage = "https://github.com/kristijanhusak/vim-dirvish-git/";
+  };
+
   vim-dispatch = buildVimPluginFrom2Nix {
     pname = "vim-dispatch";
     version = "2020-04-19";
@@ -4359,12 +4478,12 @@ let
 
   vim-elixir = buildVimPluginFrom2Nix {
     pname = "vim-elixir";
-    version = "2020-04-25";
+    version = "2020-09-26";
     src = fetchFromGitHub {
       owner = "elixir-editors";
       repo = "vim-elixir";
-      rev = "53c530f79cfcd12498e31fcf8ecc466eba34c75c";
-      sha256 = "13yr7iwi4w0m4zgkq1ia74qcca9wh9k0bz2y1yvm81db0bllsf6s";
+      rev = "f52785dcc02ac873d276358939967c30c45cc7ed";
+      sha256 = "0vnl78v77f0sszjk24bjbh4hq1zzjj3ijqmb5jkyn6i22nmdxncm";
     };
     meta.homepage = "https://github.com/elixir-editors/vim-elixir/";
   };
@@ -4395,24 +4514,24 @@ let
 
   vim-eunuch = buildVimPluginFrom2Nix {
     pname = "vim-eunuch";
-    version = "2020-01-16";
+    version = "2020-08-07";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-eunuch";
-      rev = "33e875b31c8b811a0a47908884a5e2339106bbe8";
-      sha256 = "1xadb22kd40swmww0qxmmkcpcq6viy8l167pjck5q32hfngll5d3";
+      rev = "4a4bf16b499dcde371c05c77ed4083c4b5228278";
+      sha256 = "1wclxqw3b4jcj34jb830551c9bbrsm79mp7aahbqnjgq025j53x0";
     };
     meta.homepage = "https://github.com/tpope/vim-eunuch/";
   };
 
   vim-exchange = buildVimPluginFrom2Nix {
     pname = "vim-exchange";
-    version = "2017-01-27";
+    version = "2020-06-24";
     src = fetchFromGitHub {
       owner = "tommcdo";
       repo = "vim-exchange";
-      rev = "05d82b87711c6c8b9b7389bfb91c24bc4f62aa87";
-      sha256 = "09fa156y8pxpzdbngifa7yzg1vjg1fjsgp1h9inj818zbig8mamb";
+      rev = "0e95600517aad244d947b955a2e34ec30bdd09ff";
+      sha256 = "1dh8xc5szm5rrv7xp299hcfhgp1155k5kfipzz6q2r69blhwyl1d";
     };
     meta.homepage = "https://github.com/tommcdo/vim-exchange/";
   };
@@ -4455,12 +4574,12 @@ let
 
   vim-fireplace = buildVimPluginFrom2Nix {
     pname = "vim-fireplace";
-    version = "2020-06-08";
+    version = "2020-09-23";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fireplace";
-      rev = "15fcf3db308ce34a12c1e41a88178c7cccea0d96";
-      sha256 = "148qjhln1v4cv15idsn36n82g0g7bjq2vhf0il9a6djwycf374kb";
+      rev = "f936a7671888638dec54b86f2e49001a0e5e6005";
+      sha256 = "0yvvwi4kf6frrgdwd86p2bpcgh4x2lrhav1yl58q6mrdp2qjl446";
     };
     meta.homepage = "https://github.com/tpope/vim-fireplace/";
   };
@@ -4513,14 +4632,26 @@ let
     meta.homepage = "https://github.com/dcharbon/vim-flatbuffers/";
   };
 
+  vim-floaterm = buildVimPluginFrom2Nix {
+    pname = "vim-floaterm";
+    version = "2020-09-16";
+    src = fetchFromGitHub {
+      owner = "voldikss";
+      repo = "vim-floaterm";
+      rev = "dfaecd8d3fede970a1e4c38e2287e0fa5a264253";
+      sha256 = "0wkhib4cawh6hq1ihq851afdj6chkxw4a4dqgjkvz2f6krhpblj5";
+    };
+    meta.homepage = "https://github.com/voldikss/vim-floaterm/";
+  };
+
   vim-flutter = buildVimPluginFrom2Nix {
     pname = "vim-flutter";
-    version = "2019-09-29";
+    version = "2020-09-14";
     src = fetchFromGitHub {
       owner = "thosakwe";
       repo = "vim-flutter";
-      rev = "030a4e609f8f38922fa4ec9a27836d9dabaae957";
-      sha256 = "0jibmr0v0pqml1cprs3qmkhhmacpb2bwpk8lhaz4dzp8jlga9g00";
+      rev = "5a6de53adcc72742138b666b305869999fc8066e";
+      sha256 = "1zxa1gz47qpkcrzniax6q1bq9a953rypj1cfbcjb62h5ggx2rr5n";
     };
     meta.homepage = "https://github.com/thosakwe/vim-flutter/";
   };
@@ -4551,24 +4682,24 @@ let
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2020-05-31";
+    version = "2020-09-24";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "27a5c3abd211c2784513dab4db082fa414ad0967";
-      sha256 = "18rvp600vk0anbzxdgcw3kdswqr3100b3jgnmz6c2k5c50wz37rm";
+      rev = "49315d0c74acb983f2902260ebc9d86f85758ea4";
+      sha256 = "0i2lhfw542c7xm7d10b0q5isw3398ycyn06mnp429nwb7fldv1ww";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
 
   vim-ghost = buildVimPluginFrom2Nix {
     pname = "vim-ghost";
-    version = "2020-06-04";
+    version = "2020-06-19";
     src = fetchFromGitHub {
       owner = "raghur";
       repo = "vim-ghost";
-      rev = "fd3665df734c1f8d3620b11fc8bdfacb2faae35e";
-      sha256 = "0p1y5g9fj58m48z9c6vdis7d4zajlv9j0y8065rmivws3df9n50j";
+      rev = "77330855a36350e75393cdeefb743da1040627ce";
+      sha256 = "0g3wvp02cv69v7xcsbib35bw9yf36iq6ffny7lmaf0s1pj2kwpzz";
     };
     meta.homepage = "https://github.com/raghur/vim-ghost/";
   };
@@ -4587,12 +4718,12 @@ let
 
   vim-gista = buildVimPluginFrom2Nix {
     pname = "vim-gista";
-    version = "2020-01-04";
+    version = "2020-09-19";
     src = fetchFromGitHub {
       owner = "lambdalisue";
       repo = "vim-gista";
-      rev = "af13c0062a46d73384f15abee5a54e164fcaad8e";
-      sha256 = "0f3pxahsaj37iln1k3289h7pj7z4fm0z3vfd0szf1spv3hzcjapd";
+      rev = "c046de1b9d4cf97ff6f80cf3bdbb75b1094f2aaf";
+      sha256 = "0q08hs4y9d4c4zdd0lh4k054133y0455fkn47gi7h16m01g92imc";
     };
     meta.homepage = "https://github.com/lambdalisue/vim-gista/";
   };
@@ -4611,12 +4742,12 @@ let
 
   vim-gitgutter = buildVimPluginFrom2Nix {
     pname = "vim-gitgutter";
-    version = "2020-06-10";
+    version = "2020-09-11";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-gitgutter";
-      rev = "e31e9bb35f7346caab4fcf972d44449bdfd3230a";
-      sha256 = "1mmasjz0d6nyjjrlgwiz9kd420l16q90mhscwz3i65xw0zqlmcgj";
+      rev = "ea79bc01c2efc84cf8e71fbe5fd8adbf4242739d";
+      sha256 = "0dv69ganm4rv2909yy9w13y82bik4maa5x1z3kpv0hrd55qay40z";
     };
     meta.homepage = "https://github.com/airblade/vim-gitgutter/";
   };
@@ -4647,48 +4778,48 @@ let
 
   vim-go = buildVimPluginFrom2Nix {
     pname = "vim-go";
-    version = "2020-06-09";
+    version = "2020-09-21";
     src = fetchFromGitHub {
       owner = "fatih";
       repo = "vim-go";
-      rev = "354774cd7aea891cf553c34d79582be3346c1615";
-      sha256 = "0pqmm6s50vxs9788f6avgwrdp1vi5mv3lzrxi2nxqdxvrcxngk93";
+      rev = "0a9792612fb87c5581906a9cc410b472c25a0d78";
+      sha256 = "1gwswqmxd29hpj8rvf2v866877xc4fz3jhymkf0whhw62ya5gr9v";
     };
     meta.homepage = "https://github.com/fatih/vim-go/";
   };
 
   vim-grammarous = buildVimPluginFrom2Nix {
     pname = "vim-grammarous";
-    version = "2019-03-30";
+    version = "2020-09-16";
     src = fetchFromGitHub {
       owner = "rhysd";
       repo = "vim-grammarous";
-      rev = "083cbee6094c9ec347d7c75af421be27d2ec7e70";
-      sha256 = "1cxycr2ijzxn9d5xgp9ri4f2i4d87a3100nsc11iwa2bzir4xsiz";
+      rev = "a3d67402099ca3554dc06eb7cb514865e39ec0ea";
+      sha256 = "0w1qicka7g386qg7iyfg7fh30hmdx5yvmh3qza6ifj5x4w99l0ri";
     };
     meta.homepage = "https://github.com/rhysd/vim-grammarous/";
   };
 
   vim-graphql = buildVimPluginFrom2Nix {
     pname = "vim-graphql";
-    version = "2020-03-30";
+    version = "2020-09-14";
     src = fetchFromGitHub {
       owner = "jparise";
       repo = "vim-graphql";
-      rev = "a3ff39f955e60baeddd8c3c4d1cab291ce37d66e";
-      sha256 = "0d98b0zpbyjcafp0q25c3qsx13q74nszxsi5jxxjnpz1wv6s83x1";
+      rev = "b06a6e62db170f085aa4af7f2439ae7e453eb1d3";
+      sha256 = "12qwz7m652jgn86210mbbg1glcmshm67wdhrsb36bxqrx39g1ghh";
     };
     meta.homepage = "https://github.com/jparise/vim-graphql/";
   };
 
   vim-grepper = buildVimPluginFrom2Nix {
     pname = "vim-grepper";
-    version = "2019-12-09";
+    version = "2020-07-12";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-grepper";
-      rev = "dde6a660c7dd4e02b331da238ea477770073aca2";
-      sha256 = "0c411yg2s6wb8141lqpgasg7iwgvfwy88z6l0c0gccmk8knypxhm";
+      rev = "e9004ce564891412cfe433cfbb97295cccd06b39";
+      sha256 = "1cs72x3wv4i11x7ch3gna1sxqn5zj3bd34smchfd00g4mf201lhs";
     };
     meta.homepage = "https://github.com/mhinz/vim-grepper/";
   };
@@ -4827,12 +4958,12 @@ let
 
   vim-html-template-literals = buildVimPluginFrom2Nix {
     pname = "vim-html-template-literals";
-    version = "2020-05-17";
+    version = "2020-09-02";
     src = fetchFromGitHub {
       owner = "jonsmithers";
       repo = "vim-html-template-literals";
-      rev = "0959db06cd74408935a589fb59ec63af91a1557b";
-      sha256 = "0vq0y9adx2023p0nqv020921r474216msrkm0lkb5v776xm4mks2";
+      rev = "602dba70bdcfc2e280e0c0503e74a8a92519db49";
+      sha256 = "0x0sbmcig3r058sg78bfj8dv0lwlgdcwvw9kxviynyhk2qkg9zl9";
     };
     meta.homepage = "https://github.com/jonsmithers/vim-html-template-literals/";
   };
@@ -4863,12 +4994,12 @@ let
 
   vim-hybrid-material = buildVimPluginFrom2Nix {
     pname = "vim-hybrid-material";
-    version = "2018-11-12";
+    version = "2020-06-16";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "vim-hybrid-material";
-      rev = "f2e92ac7e5c4bb75d72f0abaea939e4364e00e2e";
-      sha256 = "01b9n598106qh68ky3fykczq13pldi221r7lrxvg0vnv2zp1z5qd";
+      rev = "ad031275c63a05b6acb6014a2401d8719a290bd4";
+      sha256 = "0qjg25cfdx9706svw4b527arfdq4ypshay11ak62yswirkvgsc2c";
     };
     meta.homepage = "https://github.com/kristijanhusak/vim-hybrid-material/";
   };
@@ -4887,12 +5018,12 @@ let
 
   vim-illuminate = buildVimPluginFrom2Nix {
     pname = "vim-illuminate";
-    version = "2020-06-09";
+    version = "2020-08-25";
     src = fetchFromGitHub {
       owner = "RRethy";
       repo = "vim-illuminate";
-      rev = "0778289e391c419f7a3af9de8229f798ee292013";
-      sha256 = "1l5s5f4fw96w437rdf85lym7g75hnz8sb2fdj9hygyg0sp42r0cf";
+      rev = "56e7df8f402a8302fa7f6cb21760d366a105d94c";
+      sha256 = "0j4986pdh06q5d0bq4k6lq0b6bgi1fazng106ykhg3aaxjqqhs37";
     };
     meta.homepage = "https://github.com/RRethy/vim-illuminate/";
   };
@@ -4959,12 +5090,12 @@ let
 
   vim-isort = buildVimPluginFrom2Nix {
     pname = "vim-isort";
-    version = "2019-06-08";
+    version = "2020-08-14";
     src = fetchFromGitHub {
       owner = "fisadev";
       repo = "vim-isort";
-      rev = "b749d009075a333634dc61a039a2dc0e7f34609c";
-      sha256 = "1h8s21kwbjdg632jvd46r2va7il4f1dbgwfw8fkds0n08rbnpdjw";
+      rev = "94b1f1202899aa0b6e2cc20e6d1f133eafe24331";
+      sha256 = "16r2nsdapf3r0zjqwwbl0k8g2p81h9zs14b91dhskyvs0hvf7cfy";
     };
     meta.homepage = "https://github.com/fisadev/vim-isort/";
   };
@@ -4983,12 +5114,12 @@ let
 
   vim-javacomplete2 = buildVimPluginFrom2Nix {
     pname = "vim-javacomplete2";
-    version = "2020-04-23";
+    version = "2020-07-29";
     src = fetchFromGitHub {
       owner = "artur-shaik";
       repo = "vim-javacomplete2";
-      rev = "3ebc63c4b79eec08eb81bdddc8f4c7cfe9cb702f";
-      sha256 = "0dwgqnjcnnyvmrplbxkzmfyrm0rgd4z5kgx5989c528gp0dwhaja";
+      rev = "80cf31797a85012b7408701073d743a45a3fbf36";
+      sha256 = "19ci5n8rkf4wf4ivqj2mjig4m6phvy14k0zplkbafccaadnc0k21";
     };
     meta.homepage = "https://github.com/artur-shaik/vim-javacomplete2/";
   };
@@ -5044,12 +5175,12 @@ let
 
   vim-jsdoc = buildVimPluginFrom2Nix {
     pname = "vim-jsdoc";
-    version = "2020-06-09";
+    version = "2020-08-31";
     src = fetchFromGitHub {
       owner = "heavenshell";
       repo = "vim-jsdoc";
-      rev = "3b88595805ac7c0499dc05bc8aa5cc7909c6f5b7";
-      sha256 = "04yjjcfmaby466krqzmvwg0cb2ydri6pj49x48z15h4s9ac47p66";
+      rev = "5bbe872ee41e50bd5b99bf6204d6147dab39cdc5";
+      sha256 = "0jmmkqzan5mkc0j05243f5layqj7fny92rl1vlj32ipv8wgdmczn";
     };
     meta.homepage = "https://github.com/heavenshell/vim-jsdoc/";
   };
@@ -5080,24 +5211,36 @@ let
 
   vim-jsx-pretty = buildVimPluginFrom2Nix {
     pname = "vim-jsx-pretty";
-    version = "2020-04-11";
+    version = "2020-09-26";
     src = fetchFromGitHub {
       owner = "MaxMEllon";
       repo = "vim-jsx-pretty";
-      rev = "496c44d89281d1e13c9bb4c75a2e69daba48b47b";
-      sha256 = "09xr8pbx27qpffcr0j1857cpyxgkv5xay6mgpzvynpxq21xrmm3q";
+      rev = "7682eb98da8a3a2e484261514b512d6a419f7aa8";
+      sha256 = "05f1wjrpgbpcx0y9yn2ak9fy5zml1rbhsb3viy603pcqchwcgjxl";
     };
     meta.homepage = "https://github.com/MaxMEllon/vim-jsx-pretty/";
   };
 
+  vim-jsx-typescript = buildVimPluginFrom2Nix {
+    pname = "vim-jsx-typescript";
+    version = "2020-07-08";
+    src = fetchFromGitHub {
+      owner = "peitalin";
+      repo = "vim-jsx-typescript";
+      rev = "07370d48c605ec027543b52762930165b1b27779";
+      sha256 = "190nyy7kr6i3xr6nrjlfv643s1c48kxlbh8ynk8p53yf32gcxwz7";
+    };
+    meta.homepage = "https://github.com/peitalin/vim-jsx-typescript/";
+  };
+
   vim-kitty-navigator = buildVimPluginFrom2Nix {
     pname = "vim-kitty-navigator";
-    version = "2019-11-04";
+    version = "2020-09-16";
     src = fetchFromGitHub {
       owner = "knubie";
       repo = "vim-kitty-navigator";
-      rev = "c32357892f10117291461631d51a6bfd20e72b9a";
-      sha256 = "0zqvcnbns0vbxkqr0mpiapql8cvp54nn5a6mwc7l24jr6plhiwmn";
+      rev = "ebdf6988bac3d1ebc45b3e51a86f3c065cf60c24";
+      sha256 = "0zw24lhgs37lpbbdv2ir9s7g0fd3gjhjx2kvv54cs6mjszg2qmsm";
     };
     meta.homepage = "https://github.com/knubie/vim-kitty-navigator/";
   };
@@ -5116,12 +5259,12 @@ let
 
   vim-latex-live-preview = buildVimPluginFrom2Nix {
     pname = "vim-latex-live-preview";
-    version = "2018-09-25";
+    version = "2020-09-11";
     src = fetchFromGitHub {
       owner = "xuhdev";
       repo = "vim-latex-live-preview";
-      rev = "855c30915547c7e9c19b7e6efb528730c071d2e8";
-      sha256 = "14fgbq7wyyhhzkd8832g07z97jg1b9awibzf3sn33ih7p5bb3hhp";
+      rev = "afdf3f4778119f0bfacb07629d0155d58eb5562a";
+      sha256 = "0zihnphc021alqbn1f84n233r6a31n499046yw1yspkcnpz7mcxm";
     };
     meta.homepage = "https://github.com/xuhdev/vim-latex-live-preview/";
   };
@@ -5176,36 +5319,36 @@ let
 
   vim-lion = buildVimPluginFrom2Nix {
     pname = "vim-lion";
-    version = "2018-02-05";
+    version = "2020-07-18";
     src = fetchFromGitHub {
       owner = "tommcdo";
       repo = "vim-lion";
-      rev = "75306ac1922952ca1a401aee43ddbb304029926d";
-      sha256 = "0kkf91ppn5jhvnpmmjsp6rvf97pqj57jrbn3qmmy925ncfqh90ld";
+      rev = "ce46593ecd60e6051fb6e4d3986d2fc9f5a618b1";
+      sha256 = "1ci9yi55wcg6388fv3dqhjsyp3nvmf9dz7q2nqsxpyd6yj1szrh7";
     };
     meta.homepage = "https://github.com/tommcdo/vim-lion/";
   };
 
   vim-liquid = buildVimPluginFrom2Nix {
     pname = "vim-liquid";
-    version = "2019-11-13";
+    version = "2020-07-01";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-liquid";
-      rev = "9ebc192daec70e620c22d574b5a1c1e16f89a48c";
-      sha256 = "0cvcjiii5wv55n695284k520rrwi0l4gqpyiqnrpnhmsaqks0n0f";
+      rev = "94bd2ea1fd45cf0a21edc3433231e7fcb7791323";
+      sha256 = "0r8lisyhbzyw2w9xzbashlhnag98vws78xwmh03dpd8kbpcdiz0w";
     };
     meta.homepage = "https://github.com/tpope/vim-liquid/";
   };
 
   vim-localvimrc = buildVimPluginFrom2Nix {
     pname = "vim-localvimrc";
-    version = "2020-05-20";
+    version = "2020-06-30";
     src = fetchFromGitHub {
       owner = "embear";
       repo = "vim-localvimrc";
-      rev = "7f9d254a0c46889454cc2fd2d5918b413e4cb85a";
-      sha256 = "0428hbcj4w9lwmsv9jribkp5fjcbw3sg0gs81jf9n5ax0mxgnbzy";
+      rev = "ac6444afb5fd11e3f7750f696a0c6b8b0b6ec116";
+      sha256 = "182fvmfnpcqda0cm878lk79iprxsd7nb9r97jmr7lx5agdcvzaqb";
     };
     meta.homepage = "https://github.com/embear/vim-localvimrc/";
   };
@@ -5224,24 +5367,36 @@ let
 
   vim-lsc = buildVimPluginFrom2Nix {
     pname = "vim-lsc";
-    version = "2020-06-10";
+    version = "2020-09-21";
     src = fetchFromGitHub {
       owner = "natebosch";
       repo = "vim-lsc";
-      rev = "b34ad0fdd1223e5c1c39d23c01f13954ca2ad500";
-      sha256 = "1zqk0zimq2qyqhhfb5693zkcxz16vyrd7k2wd488avqi1jbhiffc";
+      rev = "8262f528ca50832826efd0605ddc17a3830b53d1";
+      sha256 = "0s1ayrprv59dki7xhzzlzxdfrkm3i70p8wh8sf48higvcrsjjylv";
     };
     meta.homepage = "https://github.com/natebosch/vim-lsc/";
   };
 
+  vim-lsp = buildVimPluginFrom2Nix {
+    pname = "vim-lsp";
+    version = "2020-09-26";
+    src = fetchFromGitHub {
+      owner = "prabirshrestha";
+      repo = "vim-lsp";
+      rev = "ec3090d161ea8b18f6159965f109ba192afb8188";
+      sha256 = "042zz3m71r5nmw8rpqj44a1vi1xhkxxalpxpdi3zqmjyad0fbvbm";
+    };
+    meta.homepage = "https://github.com/prabirshrestha/vim-lsp/";
+  };
+
   vim-maktaba = buildVimPluginFrom2Nix {
     pname = "vim-maktaba";
-    version = "2020-06-13";
+    version = "2020-09-23";
     src = fetchFromGitHub {
       owner = "google";
       repo = "vim-maktaba";
-      rev = "5c49c44be62e595d3d1d81a15259cd1bfc722825";
-      sha256 = "0nr7hbwpwzzzxinpjfdlaia3ys6vrw10i3wbjhr41iga6gkg6w2v";
+      rev = "cdf8247c0abd251475be26a044b2e95698df6c09";
+      sha256 = "0i4926gw06m8pqqn8a8k2xsxxg0pm3q8q1k3xd0imxi3gkyvz1fq";
     };
     meta.homepage = "https://github.com/google/vim-maktaba/";
   };
@@ -5258,18 +5413,42 @@ let
     meta.homepage = "https://github.com/lambdalisue/vim-manpager/";
   };
 
+  vim-markbar = buildVimPluginFrom2Nix {
+    pname = "vim-markbar";
+    version = "2020-08-31";
+    src = fetchFromGitHub {
+      owner = "Yilin-Yang";
+      repo = "vim-markbar";
+      rev = "df13c3abe88c01a716b1099de953dcfa1679e663";
+      sha256 = "1y5w182d57z1nl8c7ng25m88by88pnxqdsxmcnnygdfjmvbv8jl9";
+    };
+    meta.homepage = "https://github.com/Yilin-Yang/vim-markbar/";
+  };
+
   vim-markdown = buildVimPluginFrom2Nix {
     pname = "vim-markdown";
-    version = "2019-07-09";
+    version = "2020-07-14";
     src = fetchFromGitHub {
       owner = "plasticboy";
       repo = "vim-markdown";
-      rev = "da5a7ac96f517e0fd6f886bc3fbe27156ca1f946";
-      sha256 = "198bsv88njz6l2pf9yjxb8292aj7x8n2sxi50q3cdsg29a3y2i5c";
+      rev = "8e5d86f7b85234d3d1b4207dceebc43a768ed5d4";
+      sha256 = "013vh2rnfifm5j56imar03rvchz68ll4lbgy9y8fbw7s9a0k6yaa";
     };
     meta.homepage = "https://github.com/plasticboy/vim-markdown/";
   };
 
+  vim-matchup = buildVimPluginFrom2Nix {
+    pname = "vim-matchup";
+    version = "2020-09-07";
+    src = fetchFromGitHub {
+      owner = "andymass";
+      repo = "vim-matchup";
+      rev = "9e0b6f37113e21fecd42ef6b04762de4aafe2cf3";
+      sha256 = "0cy7k96458qk5fn7fbvki42b2pgrrk803shixs4ww43iipya6m5b";
+    };
+    meta.homepage = "https://github.com/andymass/vim-matchup/";
+  };
+
   vim-mergetool = buildVimPluginFrom2Nix {
     pname = "vim-mergetool";
     version = "2019-06-22";
@@ -5282,6 +5461,18 @@ let
     meta.homepage = "https://github.com/samoshkin/vim-mergetool/";
   };
 
+  vim-merginal = buildVimPluginFrom2Nix {
+    pname = "vim-merginal";
+    version = "2020-01-29";
+    src = fetchFromGitHub {
+      owner = "idanarye";
+      repo = "vim-merginal";
+      rev = "02ac69b0468b7aec437df48df07f939558e85c9a";
+      sha256 = "0m5lym56xzp1gnwb79vjmigfi6ar0iqbzaydv2r8c47jj7xyxiz6";
+    };
+    meta.homepage = "https://github.com/idanarye/vim-merginal/";
+  };
+
   vim-metamath = buildVimPluginFrom2Nix {
     pname = "vim-metamath";
     version = "2017-02-10";
@@ -5306,6 +5497,18 @@ let
     meta.homepage = "https://github.com/xolox/vim-misc/";
   };
 
+  vim-monokai = buildVimPluginFrom2Nix {
+    pname = "vim-monokai";
+    version = "2020-09-12";
+    src = fetchFromGitHub {
+      owner = "crusoexia";
+      repo = "vim-monokai";
+      rev = "39a3bd877c26792838ed58c1b8b3e0a5daa11402";
+      sha256 = "01cmbrzbvsdl8946rwdz8jhnpfr5fapgvpx65vnqq2bisc901dz3";
+    };
+    meta.homepage = "https://github.com/crusoexia/vim-monokai/";
+  };
+
   vim-monokai-pro = buildVimPluginFrom2Nix {
     pname = "vim-monokai-pro";
     version = "2020-05-07";
@@ -5320,12 +5523,12 @@ let
 
   vim-move = buildVimPluginFrom2Nix {
     pname = "vim-move";
-    version = "2019-11-23";
+    version = "2020-07-29";
     src = fetchFromGitHub {
       owner = "matze";
       repo = "vim-move";
-      rev = "58049562efb0e6e077416d897b760c4dc9bb25c4";
-      sha256 = "18pnk6ri73a6dq86zh510wy1s0z1dwnsyay7lxrgirjgh3s9nhhq";
+      rev = "1460aa915c521864c926aa51fe20bf6bb8eaa065";
+      sha256 = "0sbdd1z8nlwpac1n4234pnczavxr1kazvj86xp4a8aa7vggdm9xa";
     };
     meta.homepage = "https://github.com/matze/vim-move/";
   };
@@ -5344,28 +5547,40 @@ let
 
   vim-multiple-cursors = buildVimPluginFrom2Nix {
     pname = "vim-multiple-cursors";
-    version = "2020-05-19";
+    version = "2020-07-30";
     src = fetchFromGitHub {
       owner = "terryma";
       repo = "vim-multiple-cursors";
-      rev = "ec93676024590327263e8138443614ec4da8c9bc";
-      sha256 = "09rcs435nh74p5dwdw8k1mv1w2lni4y098dg99j6dh6859lc3hw8";
+      rev = "6456718e1d30b42c04b920c5413ca44f68f08759";
+      sha256 = "0dmap8hjk6a0127fkab1pp5cllmijhqx80ijasngg11kxl0wzl32";
     };
     meta.homepage = "https://github.com/terryma/vim-multiple-cursors/";
   };
 
   vim-mundo = buildVimPluginFrom2Nix {
     pname = "vim-mundo";
-    version = "2020-05-06";
+    version = "2020-07-20";
     src = fetchFromGitHub {
       owner = "simnalamburt";
       repo = "vim-mundo";
-      rev = "046fc0664b953ab17153da379df0b9fd34b85ec1";
-      sha256 = "0np83qa95cfg1059r4iaf31sfhs86241jzkmw026gdja9s30q3m1";
+      rev = "f6b24082b1d22932cb834673c37aa936b6f4f6da";
+      sha256 = "1xr7g5wxfdd2rzdr94p2sasfm6zyha2rhjr3rx5mnpbcik7l3j61";
     };
     meta.homepage = "https://github.com/simnalamburt/vim-mundo/";
   };
 
+  vim-nerdtree-syntax-highlight = buildVimPluginFrom2Nix {
+    pname = "vim-nerdtree-syntax-highlight";
+    version = "2020-07-19";
+    src = fetchFromGitHub {
+      owner = "tiagofumo";
+      repo = "vim-nerdtree-syntax-highlight";
+      rev = "1acc12aa7f773ede38538293332905f1ba3fea6a";
+      sha256 = "0zm023mhi1si9g5r46md1v4rlls6z2m6kyn1jcfxjqyrgba67899";
+    };
+    meta.homepage = "https://github.com/tiagofumo/vim-nerdtree-syntax-highlight/";
+  };
+
   vim-nerdtree-tabs = buildVimPluginFrom2Nix {
     pname = "vim-nerdtree-tabs";
     version = "2018-12-21";
@@ -5380,12 +5595,12 @@ let
 
   vim-nftables = buildVimPluginFrom2Nix {
     pname = "vim-nftables";
-    version = "2020-02-21";
+    version = "2020-06-29";
     src = fetchFromGitHub {
       owner = "nfnty";
       repo = "vim-nftables";
-      rev = "01c7b97eff12fd4b624e6efa2c0468163db61ebc";
-      sha256 = "1n3mpaa60k4w0sqpkgw19aksa1sbcqz7vl8fp6bj6i63bhiprsqf";
+      rev = "26f8a506c6f3e41f1e4a8d6aa94c9a79a666bbff";
+      sha256 = "1z5ffgxdq8niggm18qikrh5hl8zs05gdij4z6dfnzy00xvancc40";
     };
     meta.homepage = "https://github.com/nfnty/vim-nftables/";
   };
@@ -5416,12 +5631,12 @@ let
 
   vim-nix = buildVimPluginFrom2Nix {
     pname = "vim-nix";
-    version = "2019-06-03";
+    version = "2020-06-23";
     src = fetchFromGitHub {
       owner = "LnL7";
       repo = "vim-nix";
-      rev = "a3eed01f4de995a51dfdd06287e44fcb231f6adf";
-      sha256 = "0pwdfwws1dj3705m00ghw3dvym5zbm00bfsj023gmbp6vr8wn6yi";
+      rev = "d733cb96707a2a6bdc6102b6d89f947688e0e959";
+      sha256 = "12k2gwm8b1n02361gpjhsldql99yd7qsh80a3lbwc5c5gz5j8jsb";
     };
     meta.homepage = "https://github.com/LnL7/vim-nix/";
   };
@@ -5450,14 +5665,26 @@ let
     meta.homepage = "https://github.com/tpope/vim-obsession/";
   };
 
+  vim-ocaml = buildVimPluginFrom2Nix {
+    pname = "vim-ocaml";
+    version = "2020-09-14";
+    src = fetchFromGitHub {
+      owner = "ocaml";
+      repo = "vim-ocaml";
+      rev = "acee4ad4d65ddaf81895cca9e28baea4c13fa76a";
+      sha256 = "0rrjcc5i1isia74nrrik5avkd0casbjhgyqb2ph2176gywz6h5y5";
+    };
+    meta.homepage = "https://github.com/ocaml/vim-ocaml/";
+  };
+
   vim-one = buildVimPluginFrom2Nix {
     pname = "vim-one";
-    version = "2019-04-09";
+    version = "2020-08-09";
     src = fetchFromGitHub {
       owner = "rakr";
       repo = "vim-one";
-      rev = "6695e135415c53a8fbe96672e382200aa1ffb4b4";
-      sha256 = "0951r9kw23zlwd7fda6ib2d9k0akpfd2hvh82pasgw3ks9v1n2vf";
+      rev = "f8bcef1968f01842d92abbcb098ec28ad3931ea5";
+      sha256 = "12czxjh68hdnca4wdk9ypd5c56v1njv6wc2bcxqaj1ff09pgllmy";
     };
     meta.homepage = "https://github.com/rakr/vim-one/";
   };
@@ -5500,16 +5727,52 @@ let
 
   vim-orgmode = buildVimPluginFrom2Nix {
     pname = "vim-orgmode";
-    version = "2020-05-09";
+    version = "2020-07-14";
     src = fetchFromGitHub {
       owner = "jceb";
       repo = "vim-orgmode";
-      rev = "ecdc5b279d7b4e0ae4ebfb9e0f139e3ca6698033";
-      sha256 = "00yihsp5fmpw1ch013brrjkxb6h4slkxms1n154glz8pm95bqsm0";
+      rev = "ad5f154a5bd9daffb7cf50719f0cc945f445af85";
+      sha256 = "09x3x53vf2fir9jhi38v9sai7dx5i40ylx1yk42459bgig2vv1aa";
     };
     meta.homepage = "https://github.com/jceb/vim-orgmode/";
   };
 
+  vim-osc52 = buildVimPluginFrom2Nix {
+    pname = "vim-osc52";
+    version = "2020-09-19";
+    src = fetchFromGitHub {
+      owner = "fcpg";
+      repo = "vim-osc52";
+      rev = "551f20e62e68684a5b745ae08b0c4236d86e4c2b";
+      sha256 = "0yxjs32ab27l3kmh5lpinj15m11winqsnmykjq7lizs15v7gd2s9";
+    };
+    meta.homepage = "https://github.com/fcpg/vim-osc52/";
+  };
+
+  vim-over = buildVimPluginFrom2Nix {
+    pname = "vim-over";
+    version = "2020-01-26";
+    src = fetchFromGitHub {
+      owner = "osyo-manga";
+      repo = "vim-over";
+      rev = "878f83bdac0cda308f599d319f45c7877d5274a9";
+      sha256 = "00k29pcn69d9036jhjpd1xqxh59qwl30l37lsfijlv18ks0wwiqn";
+    };
+    meta.homepage = "https://github.com/osyo-manga/vim-over/";
+  };
+
+  vim-packer = buildVimPluginFrom2Nix {
+    pname = "vim-packer";
+    version = "2018-11-11";
+    src = fetchFromGitHub {
+      owner = "hashivim";
+      repo = "vim-packer";
+      rev = "c2561f41e46df8a78a6b51226f60607582052134";
+      sha256 = "070ncbmwh8wxxfzf7phx0hb0dk9krlvsj5mvrn7kr5y3mngdg9v4";
+    };
+    meta.homepage = "https://github.com/hashivim/vim-packer/";
+  };
+
   vim-pager = buildVimPluginFrom2Nix {
     pname = "vim-pager";
     version = "2015-08-26";
@@ -5524,12 +5787,12 @@ let
 
   vim-pandoc = buildVimPluginFrom2Nix {
     pname = "vim-pandoc";
-    version = "2020-05-15";
+    version = "2020-07-30";
     src = fetchFromGitHub {
       owner = "vim-pandoc";
       repo = "vim-pandoc";
-      rev = "e49f9e7e3fc041dab0e9a1de4b564b3ddd8f77aa";
-      sha256 = "0i1zcnsc962bzm3q6kw8bldd9xh6vb7kw0j72c4dzwdw4ayx0wf1";
+      rev = "049ece9fa8f21afaa62215865afac22daa6fd30f";
+      sha256 = "0wjrbp06ffh9ficd22lcijrc99n72b7gbg5lqpms9r0442fb88kq";
     };
     meta.homepage = "https://github.com/vim-pandoc/vim-pandoc/";
   };
@@ -5548,12 +5811,12 @@ let
 
   vim-pandoc-syntax = buildVimPluginFrom2Nix {
     pname = "vim-pandoc-syntax";
-    version = "2020-01-31";
+    version = "2020-08-10";
     src = fetchFromGitHub {
       owner = "vim-pandoc";
       repo = "vim-pandoc-syntax";
-      rev = "0d1129e5cf1b0e3a90e923c3b5f40133bf153f7c";
-      sha256 = "162l2p8md8lfyfjxzlmlz5ky5kvvr6wjmdk8r8lk6ygpkl2b51f7";
+      rev = "59680708cdc98c3fae9acb6c261374bfd808335a";
+      sha256 = "1yiczv4l2rg8wva2gbjvv7k9s6y9p0gwmlazdd9rnq28nhmxx3gv";
     };
     meta.homepage = "https://github.com/vim-pandoc/vim-pandoc-syntax/";
   };
@@ -5608,24 +5871,24 @@ let
 
   vim-pencil = buildVimPluginFrom2Nix {
     pname = "vim-pencil";
-    version = "2019-12-13";
+    version = "2020-07-29";
     src = fetchFromGitHub {
       owner = "reedes";
       repo = "vim-pencil";
-      rev = "09458527601fdb2fbd174317bdddfb34e4c64e79";
-      sha256 = "09b30cxlwbr9l07ya05is9q2y9vzbzhcc656nvjjzf968l496xr2";
+      rev = "dad5a3626ab68039f2676c46e7a1635e0669cc63";
+      sha256 = "1s1vxzqc5gvch2rfibn7ksmxj81gscfzg0bpvnq34jp430adzdc7";
     };
     meta.homepage = "https://github.com/reedes/vim-pencil/";
   };
 
   vim-phabricator = buildVimPluginFrom2Nix {
     pname = "vim-phabricator";
-    version = "2020-01-23";
+    version = "2020-09-16";
     src = fetchFromGitHub {
       owner = "jparise";
       repo = "vim-phabricator";
-      rev = "065c7e3f2d92a6792b50f087393b2c9a10a1e825";
-      sha256 = "0yhf347fhrs0aqsq1swqihyav32442lv2chzjr3mzqcym8zbzsh6";
+      rev = "d5c0571f44f2c44ba32df2d12e52b4dfcd4921ed";
+      sha256 = "003zi8dvyyhvlb30zz8ah7iai8pmwmsk2jwa38386ff0jfm6dkpq";
     };
     meta.homepage = "https://github.com/jparise/vim-phabricator/";
   };
@@ -5644,12 +5907,12 @@ let
 
   vim-plug = buildVimPluginFrom2Nix {
     pname = "vim-plug";
-    version = "2020-06-08";
+    version = "2020-09-08";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "vim-plug";
-      rev = "01aab60adef47c6606aa68c8783f5b994fda9fc4";
-      sha256 = "1x5m98k20ncvhz6sngzxwhh74s2ll3d119p1g0di4vr59rkx8szq";
+      rev = "d16273e07231260e02412625f98651bc6ceebb56";
+      sha256 = "0ckglxbnxq50jfigbmgjwaj2vj1g6xjwyipzxbph2b64yi2kklg5";
     };
     meta.homepage = "https://github.com/junegunn/vim-plug/";
   };
@@ -5668,16 +5931,28 @@ let
 
   vim-polyglot = buildVimPluginFrom2Nix {
     pname = "vim-polyglot";
-    version = "2020-06-13";
+    version = "2020-09-25";
     src = fetchFromGitHub {
       owner = "sheerun";
       repo = "vim-polyglot";
-      rev = "a86c0179ebc99b15d403e3f1d4a4cfff83b47de8";
-      sha256 = "0bsq2nvzxb6j0zn6c9hvrsz47ahcp3iki5acz4l1y841xgd880zm";
+      rev = "33b86476b63f7fc2286336eb488a149a85cb08cb";
+      sha256 = "044imdn5dslrjd8hb62bsp1i2pxm1ps43kx56rlzgnlb633mfvpd";
     };
     meta.homepage = "https://github.com/sheerun/vim-polyglot/";
   };
 
+  vim-poweryank = buildVimPluginFrom2Nix {
+    pname = "vim-poweryank";
+    version = "2017-08-13";
+    src = fetchFromGitHub {
+      owner = "haya14busa";
+      repo = "vim-poweryank";
+      rev = "48dff95dbd64423c96fdae5c18eaddb5b5fa3064";
+      sha256 = "016w6nn2qhra9v55sn6g6qf1pj8f072f22r97nzxy4958k7f114a";
+    };
+    meta.homepage = "https://github.com/haya14busa/vim-poweryank/";
+  };
+
   vim-prettyprint = buildVimPluginFrom2Nix {
     pname = "vim-prettyprint";
     version = "2016-07-16";
@@ -5728,12 +6003,12 @@ let
 
   vim-ps1 = buildVimPluginFrom2Nix {
     pname = "vim-ps1";
-    version = "2020-06-03";
+    version = "2020-07-31";
     src = fetchFromGitHub {
       owner = "PProvost";
       repo = "vim-ps1";
-      rev = "9d52746c3f879aa1aca4deb46edd63823d76d89d";
-      sha256 = "1yx1rnpln0lxvf6pbdn8yyxiyhi7rfl8wl94kd8djk51h5lhq1n3";
+      rev = "21d8d9a9db864f230a2d12d5076351daf20d7a44";
+      sha256 = "0s6mi1mzlk40sfdqghdsv709fs89hf9d6iqaw3arzs9lmin2i4ka";
     };
     meta.homepage = "https://github.com/PProvost/vim-ps1/";
   };
@@ -5788,28 +6063,52 @@ let
 
   vim-quickrun = buildVimPluginFrom2Nix {
     pname = "vim-quickrun";
-    version = "2020-05-16";
+    version = "2020-08-25";
     src = fetchFromGitHub {
       owner = "thinca";
       repo = "vim-quickrun";
-      rev = "3041ad7f0b3f9122d4f00bda2f3bb554bf89105c";
-      sha256 = "1ncfw4inb6rdlrayvijy7769wyppiihmazmfcjdx5g42mycfxg0y";
+      rev = "c688f336a4aeb002319994f4fb4a8873f204f0ab";
+      sha256 = "1wzcvshwn4gvjbcmni1r473001m5ipamggkcpwsa7xr74sj4rn73";
     };
     meta.homepage = "https://github.com/thinca/vim-quickrun/";
   };
 
   vim-racer = buildVimPluginFrom2Nix {
     pname = "vim-racer";
-    version = "2020-03-06";
+    version = "2020-06-18";
     src = fetchFromGitHub {
       owner = "racer-rust";
       repo = "vim-racer";
-      rev = "950b78f36e568134f5dcabc9a146c61e0084d220";
-      sha256 = "0k62yybilh2052w6zfscw7daz7y1qnqv1311zngjim5z8xmp7j1l";
+      rev = "250e9fd496edde1516a5e68e9837ccf5e46cc895";
+      sha256 = "1ar5wv776xslxrs2mmxr5kzz5pp4a4v8jydh9s6cqbfzglgr9kw5";
     };
     meta.homepage = "https://github.com/racer-rust/vim-racer/";
   };
 
+  vim-ragtag = buildVimPluginFrom2Nix {
+    pname = "vim-ragtag";
+    version = "2020-01-26";
+    src = fetchFromGitHub {
+      owner = "tpope";
+      repo = "vim-ragtag";
+      rev = "6f1af76cd669c4fb07f0c4e20fdee3077620e3d8";
+      sha256 = "1q5klbnwsg26zxhs3knhamk3srg7dmq46n83sa5rw2kmikb2idg2";
+    };
+    meta.homepage = "https://github.com/tpope/vim-ragtag/";
+  };
+
+  vim-rails = buildVimPluginFrom2Nix {
+    pname = "vim-rails";
+    version = "2020-09-14";
+    src = fetchFromGitHub {
+      owner = "tpope";
+      repo = "vim-rails";
+      rev = "3cc34304643abf8d28d2482e74119d0d5f4b5302";
+      sha256 = "1j2a3kwcff4avniph4z8g4im59z8fs2kj7vkwzgalj828nncx5g6";
+    };
+    meta.homepage = "https://github.com/tpope/vim-rails/";
+  };
+
   vim-repeat = buildVimPluginFrom2Nix {
     pname = "vim-repeat";
     version = "2019-11-13";
@@ -5836,12 +6135,12 @@ let
 
   vim-rooter = buildVimPluginFrom2Nix {
     pname = "vim-rooter";
-    version = "2020-04-17";
+    version = "2020-09-18";
     src = fetchFromGitHub {
       owner = "airblade";
       repo = "vim-rooter";
-      rev = "d64f3e04df9914e784508019a1a1f291cbb40bd4";
-      sha256 = "1vwydkjm5h12kcnqmg2cv1cqf9hmhmyy2lx5lj3g0g6ra27yfjnw";
+      rev = "45ea40da3f223fff83fce0a643875e560ed20aae";
+      sha256 = "1bm8hpnm02pbivcvjn20qr6hk3yyb3flfkv7pk66sffhiyj44rh2";
     };
     meta.homepage = "https://github.com/airblade/vim-rooter/";
   };
@@ -5860,36 +6159,36 @@ let
 
   vim-ruby = buildVimPluginFrom2Nix {
     pname = "vim-ruby";
-    version = "2020-04-19";
+    version = "2020-08-28";
     src = fetchFromGitHub {
       owner = "vim-ruby";
       repo = "vim-ruby";
-      rev = "fd49b25e08618b58db678c3f8ce6e443b1ad04e7";
-      sha256 = "086pzicqal2cmvbrzy09d93c7cz5scgjcqc9xn4cw19dn55irllp";
+      rev = "e367f7b33fe9159c943963f3f839e4d08b74090e";
+      sha256 = "1pngmr6ww4fmn71rshi1npyswp48dq3p7m02s6s703bg83smvmc8";
     };
     meta.homepage = "https://github.com/vim-ruby/vim-ruby/";
   };
 
   vim-salve = buildVimPluginFrom2Nix {
     pname = "vim-salve";
-    version = "2019-11-13";
+    version = "2020-09-22";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-salve";
-      rev = "876104d364420a7a11a2d97729dd4ab0a2f8a72e";
-      sha256 = "1hj0qg182jv3cwg85rg4z0f8f8hr409is71z7sxhnhjq9fn1h6xj";
+      rev = "5958a99c4ac783cec668380917ac1f62b27466fe";
+      sha256 = "1vs2rfhcxm9v4ndnsx85b1i29h67qv748k3nvdxc145v1hjcnapm";
     };
     meta.homepage = "https://github.com/tpope/vim-salve/";
   };
 
   vim-sandwich = buildVimPluginFrom2Nix {
     pname = "vim-sandwich";
-    version = "2020-02-13";
+    version = "2020-07-27";
     src = fetchFromGitHub {
       owner = "machakann";
       repo = "vim-sandwich";
-      rev = "02e3b6d1ff9ce346c115166855137b318b63c536";
-      sha256 = "1jd5i0ykvwf5jnm3g3rm2r0zn64xqk38p2xl55la9a1a99j9mfxh";
+      rev = "f0bb324395bf6e00ec17fc7af60d2ccb8d494595";
+      sha256 = "19fqpccvawh2wjkzgp64jijq4nnhirmgvrrycxzcx7lj612mbpmc";
     };
     meta.homepage = "https://github.com/machakann/vim-sandwich/";
   };
@@ -5992,12 +6291,12 @@ let
 
   vim-signify = buildVimPluginFrom2Nix {
     pname = "vim-signify";
-    version = "2020-06-08";
+    version = "2020-08-13";
     src = fetchFromGitHub {
       owner = "mhinz";
       repo = "vim-signify";
-      rev = "c3d450eb5f5e76d99d23b10493d4e08c5bb1ae71";
-      sha256 = "0ms0c36zsqqpxrq4mx9k5viblcapw9kpjm9cdrs8fnldlz6i0yhh";
+      rev = "98c693f7a1a91b73d9232d868765b4d20af892fe";
+      sha256 = "05ppj7sqp8i7qhaf6vz427nnwsnkgf9nlq3lhyhbl14cjkrhqny9";
     };
     meta.homepage = "https://github.com/mhinz/vim-signify/";
   };
@@ -6028,12 +6327,12 @@ let
 
   vim-slime = buildVimPluginFrom2Nix {
     pname = "vim-slime";
-    version = "2020-04-12";
+    version = "2020-08-06";
     src = fetchFromGitHub {
       owner = "jpalardy";
       repo = "vim-slime";
-      rev = "a81139239d6447b1c021e4873e6a14b47f32b65a";
-      sha256 = "0wavkm9k2vm23nm5bmc3lpm6cac7mihzjcyk4r77qgdgmnnxkm49";
+      rev = "db486eaa39f14d130ddf6338aaa02127aa04b272";
+      sha256 = "1x9vflsbdl1b03irkvfpapb0c4mw9lymfghcjy1wxjl2vpq630ia";
     };
     meta.homepage = "https://github.com/jpalardy/vim-slime/";
   };
@@ -6050,6 +6349,18 @@ let
     meta.homepage = "https://github.com/t9md/vim-smalls/";
   };
 
+  vim-smoothie = buildVimPluginFrom2Nix {
+    pname = "vim-smoothie";
+    version = "2019-12-02";
+    src = fetchFromGitHub {
+      owner = "psliwka";
+      repo = "vim-smoothie";
+      rev = "d3de4fbd7a9331b3eb05fa632611ebd34882cc83";
+      sha256 = "1bsqnz02jaydr92mmcrdlva4zxs28zgxwgznr2bwk4wnn26i54p6";
+    };
+    meta.homepage = "https://github.com/psliwka/vim-smoothie/";
+  };
+
   vim-smt2 = buildVimPluginFrom2Nix {
     pname = "vim-smt2";
     version = "2018-05-20";
@@ -6064,12 +6375,12 @@ let
 
   vim-sneak = buildVimPluginFrom2Nix {
     pname = "vim-sneak";
-    version = "2020-02-29";
+    version = "2020-09-01";
     src = fetchFromGitHub {
       owner = "justinmk";
       repo = "vim-sneak";
-      rev = "98a5c946d6dc76528b9d9b044059b5ef1fab5a48";
-      sha256 = "0xcxr658i5vzdkxfssd7zx6n3ar9b6dg4b2ddaswgnwq75xphrh9";
+      rev = "65e5e4668371152c6ef7a6269c6a6b960cef21b4";
+      sha256 = "0bfibshqqa17n9vbdd2g8kalnc78v1ag3hzws9pdacrcsxhsh0ry";
     };
     meta.homepage = "https://github.com/justinmk/vim-sneak/";
   };
@@ -6088,12 +6399,12 @@ let
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2020-06-02";
+    version = "2020-09-26";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "900bf93c6680e38ce568dba26c3f48b4365ac730";
-      sha256 = "1gxqmvr6hz7vblrji2dz2l1x18264ainbl70j60yfx3vjp5aa9vq";
+      rev = "730443a98e9bfa8709ed51a355f17a9ce86a9fb4";
+      sha256 = "0cc6iby5ffzpr0lpkfn75bxbzcvm3196cr3d0gdjvgk322c91ajp";
     };
     meta.homepage = "https://github.com/honza/vim-snippets/";
   };
@@ -6232,24 +6543,24 @@ let
 
   vim-SyntaxRange = buildVimPluginFrom2Nix {
     pname = "vim-SyntaxRange";
-    version = "2020-05-09";
+    version = "2020-08-18";
     src = fetchFromGitHub {
       owner = "inkarkat";
       repo = "vim-SyntaxRange";
-      rev = "35d116cd1c70d2066b332a76ddbf354786cbb996";
-      sha256 = "0mxih2ixaqnzh915w8zycdjxf07ax648dw5nvglcp7ym4r8fzg0q";
+      rev = "602316468bc044e047db88f50157b61fa00b65cb";
+      sha256 = "0zrrvd9xrivx61fiz799mdbwdzl7damdgm6i9h0sl1v95hclhi3i";
     };
     meta.homepage = "https://github.com/inkarkat/vim-SyntaxRange/";
   };
 
   vim-table-mode = buildVimPluginFrom2Nix {
     pname = "vim-table-mode";
-    version = "2020-05-06";
+    version = "2020-08-19";
     src = fetchFromGitHub {
       owner = "dhruvasagar";
       repo = "vim-table-mode";
-      rev = "640400908075c50704e127448175d3ede6bba2e9";
-      sha256 = "0gbj324wwgai1kprn78srq3cvldpi6hx9gsr5kk2sn2yxq32xp3y";
+      rev = "3476c4e517aa86bc131c707d32f2e508bd5be468";
+      sha256 = "0vglazxlsg7ai4c5znxaddpjnfhz6a9slzs0kzzqvmhd3xr7vfg1";
     };
     meta.homepage = "https://github.com/dhruvasagar/vim-table-mode/";
   };
@@ -6280,24 +6591,37 @@ let
 
   vim-terraform = buildVimPluginFrom2Nix {
     pname = "vim-terraform";
-    version = "2020-03-03";
+    version = "2020-09-23";
     src = fetchFromGitHub {
       owner = "hashivim";
       repo = "vim-terraform";
-      rev = "89c47c6c68f6260ba34ee0733437d863046fbe95";
-      sha256 = "1gkr3akvx44802i8cv4zw8j3bk5qk0h0rgz5k9jgkfch2yc76gzg";
+      rev = "f77a07617a649684148de97e5a9115e659166f6a";
+      sha256 = "01rgbiddczyx56b6fha6jgxmr0kfhjz8d9rmbfnqlnynmy5545ic";
     };
     meta.homepage = "https://github.com/hashivim/vim-terraform/";
   };
 
+  vim-terraform-completion = buildVimPluginFrom2Nix {
+    pname = "vim-terraform-completion";
+    version = "2019-07-28";
+    src = fetchFromGitHub {
+      owner = "juliosueiras";
+      repo = "vim-terraform-completion";
+      rev = "1c8792d1e85154aa6fc05eb746711bf2df2274d9";
+      sha256 = "0j87vhxkrv8sdrlv9w5p2zkiv9ssb3rckbffjcfhn9365d41bhgr";
+      fetchSubmodules = true;
+    };
+    meta.homepage = "https://github.com/juliosueiras/vim-terraform-completion/";
+  };
+
   vim-test = buildVimPluginFrom2Nix {
     pname = "vim-test";
-    version = "2020-06-08";
+    version = "2020-09-01";
     src = fetchFromGitHub {
       owner = "vim-test";
       repo = "vim-test";
-      rev = "2f185e0e5b0e7344c1e391045dc33a2e7a41d8eb";
-      sha256 = "1djl6phjc7vzhwbaxsc70mqp1f83iz99bcfyghphs9fhgdg46jiz";
+      rev = "795f16430c568fc13266be9239bf70f19b8ae50f";
+      sha256 = "06j24di1r2p1qpiy86h75ghfsf0lqkfllf7kf64gjas89gbc9i89";
     };
     meta.homepage = "https://github.com/vim-test/vim-test/";
   };
@@ -6376,24 +6700,24 @@ let
 
   vim-themis = buildVimPluginFrom2Nix {
     pname = "vim-themis";
-    version = "2020-03-08";
+    version = "2020-08-23";
     src = fetchFromGitHub {
       owner = "thinca";
       repo = "vim-themis";
-      rev = "2d10aee9c9982f4f5974e88351934759c69640e7";
-      sha256 = "06ab0kjamzpyql71qmc8qhvb72rx07x2g598aidk8nqkk36x87ai";
+      rev = "51bec3386b661d28fda7736006475b8b2ebe343d";
+      sha256 = "05988ila63kj1r62v7ii76972fgw2300h4dbaml81i643yw0p81p";
     };
     meta.homepage = "https://github.com/thinca/vim-themis/";
   };
 
   vim-tmux = buildVimPluginFrom2Nix {
     pname = "vim-tmux";
-    version = "2019-03-22";
+    version = "2020-07-25";
     src = fetchFromGitHub {
       owner = "tmux-plugins";
       repo = "vim-tmux";
-      rev = "4e77341a2f8b9b7e41e81e9debbcecaea5987c85";
-      sha256 = "16fgc0lx1jr8zbayanf5w677ssiw5xb8vwfaca295c8xlk760c3m";
+      rev = "7e7680fb1bb05bca1c800213b265f45433ed1e33";
+      sha256 = "19al4a4g8wfz43am32ncz8dg58wxhzn30p7r4n1780pv8hzkdrsb";
     };
     meta.homepage = "https://github.com/tmux-plugins/vim-tmux/";
   };
@@ -6424,12 +6748,12 @@ let
 
   vim-tmux-navigator = buildVimPluginFrom2Nix {
     pname = "vim-tmux-navigator";
-    version = "2020-04-23";
+    version = "2020-09-18";
     src = fetchFromGitHub {
       owner = "christoomey";
       repo = "vim-tmux-navigator";
-      rev = "44ba6fbe45895cd541ebfc87606add5c76e3829b";
-      sha256 = "075cncr53w9xc1kqm50zl8yl18aspn3zdr6qjqyslf7gkw8yk38d";
+      rev = "2fd76aa930e34838335c1aa125b88e7ea671e6c0";
+      sha256 = "1xy0vp9sgqjm6qpfic2bbla4mxihw7j41gvi8cn0wsira6qcwda0";
     };
     meta.homepage = "https://github.com/christoomey/vim-tmux-navigator/";
   };
@@ -6448,24 +6772,24 @@ let
 
   vim-toml = buildVimPluginFrom2Nix {
     pname = "vim-toml";
-    version = "2019-08-28";
+    version = "2020-07-06";
     src = fetchFromGitHub {
       owner = "cespare";
       repo = "vim-toml";
-      rev = "a4ec206052aa347d7df90dc4b6697b7f2b7929bc";
-      sha256 = "1dgykq4vl7vvj2f8lvg58rzqddm53i278g26ljwfimgqc8l6gmqd";
+      rev = "897cb4eaa81a0366bc859effe14116660d4015cd";
+      sha256 = "0ps9kwclqfdydk4132255i9rzcic0sp6d217arjsk1w6gm7m9lm6";
     };
     meta.homepage = "https://github.com/cespare/vim-toml/";
   };
 
   vim-trailing-whitespace = buildVimPluginFrom2Nix {
     pname = "vim-trailing-whitespace";
-    version = "2019-12-09";
+    version = "2020-06-29";
     src = fetchFromGitHub {
       owner = "bronson";
       repo = "vim-trailing-whitespace";
-      rev = "6b7cdecff252474fe560d32c6f05641f3c5952c7";
-      sha256 = "0arv1hmlw7c1rlkc00hzjyg48pg8g4cc9q9l2hy8kpmsl037akm3";
+      rev = "610ca1a97c8dc85cdeb38635e5a4703317c4b94d";
+      sha256 = "1bh15yw2aysvpn2ndnc0s6jzc0y93x6q1blc5pph67rdix5bm7gy";
     };
     meta.homepage = "https://github.com/bronson/vim-trailing-whitespace/";
   };
@@ -6494,6 +6818,18 @@ let
     meta.homepage = "https://github.com/lumiliet/vim-twig/";
   };
 
+  vim-twiggy = buildVimPluginFrom2Nix {
+    pname = "vim-twiggy";
+    version = "2020-09-07";
+    src = fetchFromGitHub {
+      owner = "sodapopcan";
+      repo = "vim-twiggy";
+      rev = "c0edb8a684f624d6f177c2625fc9db617a3d539f";
+      sha256 = "13fm3mgnvbhm93cn0jglnqm8hhmwvh5xg088pn5wmwrn9bjj00gz";
+    };
+    meta.homepage = "https://github.com/sodapopcan/vim-twiggy/";
+  };
+
   vim-unimpaired = buildVimPluginFrom2Nix {
     pname = "vim-unimpaired";
     version = "2020-04-26";
@@ -6506,14 +6842,26 @@ let
     meta.homepage = "https://github.com/tpope/vim-unimpaired/";
   };
 
+  vim-vagrant = buildVimPluginFrom2Nix {
+    pname = "vim-vagrant";
+    version = "2018-11-11";
+    src = fetchFromGitHub {
+      owner = "hashivim";
+      repo = "vim-vagrant";
+      rev = "7741242ed9617ed53ba7e47e801634b819047ac0";
+      sha256 = "0inpgcrca955h0ic7pgl6bfzs7rssjgssvrvqq3y93j5addmh60m";
+    };
+    meta.homepage = "https://github.com/hashivim/vim-vagrant/";
+  };
+
   vim-vinegar = buildVimPluginFrom2Nix {
     pname = "vim-vinegar";
-    version = "2019-11-13";
+    version = "2020-06-27";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-vinegar";
-      rev = "fcce70f1403ba4101668a4c960c577bddbd00f06";
-      sha256 = "0zxqdyla40xcp0ps362b85bqwl3mp4zfmfdggl0gwvgd5m949yk0";
+      rev = "5fee9d230ec4a6a16c45f2c71482595e4d9a67bd";
+      sha256 = "14n0mnj1lmk3bmhm0knipsw120dlxpsd98fimmchw0kd80vpph41";
     };
     meta.homepage = "https://github.com/tpope/vim-vinegar/";
   };
@@ -6532,12 +6880,12 @@ let
 
   vim-visual-multi = buildVimPluginFrom2Nix {
     pname = "vim-visual-multi";
-    version = "2020-06-08";
+    version = "2020-09-20";
     src = fetchFromGitHub {
       owner = "mg979";
       repo = "vim-visual-multi";
-      rev = "f972b5357af0e5c9b840f8e82eceb313891ef8b2";
-      sha256 = "0ngvl4ikd45d1nhfpnpp003mfwx9mv5ywgk9mi5fjn2bc9a2y4l7";
+      rev = "68c9570285f067020f0358623cafe63dbc2bd63f";
+      sha256 = "1dpv6v449bcn6n72jjgvlnc9mnq3cpfy9b8m6mmjgvzgzkc1wj10";
     };
     meta.homepage = "https://github.com/mg979/vim-visual-multi/";
   };
@@ -6554,6 +6902,30 @@ let
     meta.homepage = "https://github.com/thinca/vim-visualstar/";
   };
 
+  vim-vsnip = buildVimPluginFrom2Nix {
+    pname = "vim-vsnip";
+    version = "2020-09-23";
+    src = fetchFromGitHub {
+      owner = "hrsh7th";
+      repo = "vim-vsnip";
+      rev = "ec25ffcdf793dd5af6d73ce75d21709a60a4689f";
+      sha256 = "07gkygdspxn0fwlgcyhli85nlgg8g4y4v991n80vmk0rhsxqdh90";
+    };
+    meta.homepage = "https://github.com/hrsh7th/vim-vsnip/";
+  };
+
+  vim-vsnip-integ = buildVimPluginFrom2Nix {
+    pname = "vim-vsnip-integ";
+    version = "2020-08-19";
+    src = fetchFromGitHub {
+      owner = "hrsh7th";
+      repo = "vim-vsnip-integ";
+      rev = "4a076bea73e307738ac5d08f60a0936cab391efd";
+      sha256 = "1jx6ijmj48ffymfn20d0syp1ywv19gmjvf3hb6rdwsk421y58chv";
+    };
+    meta.homepage = "https://github.com/hrsh7th/vim-vsnip-integ/";
+  };
+
   vim-vue = buildVimPluginFrom2Nix {
     pname = "vim-vue";
     version = "2019-08-03";
@@ -6592,12 +6964,12 @@ let
 
   vim-which-key = buildVimPluginFrom2Nix {
     pname = "vim-which-key";
-    version = "2020-06-10";
+    version = "2020-09-22";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-which-key";
-      rev = "dffbb044f7974bf4615960689a3ff64e63daeab3";
-      sha256 = "0ggnz2bz6mh9i38cgpkf87j27bhr8klk9a4ws57rkwfz3qppd4lj";
+      rev = "89644adb8cc75ea96b4ab8e8218f22f1cc0deb23";
+      sha256 = "1cyzfj86qizqnqi3ypf0cx4pvl9bsas77pxd1jpb5f3lslh2xhh8";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-which-key/";
   };
@@ -6712,12 +7084,12 @@ let
 
   vimfiler-vim = buildVimPluginFrom2Nix {
     pname = "vimfiler-vim";
-    version = "2019-07-30";
+    version = "2020-07-13";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "vimfiler.vim";
-      rev = "26d3fec10cb8921d510064411784301794229a93";
-      sha256 = "0iv1smk0999sfm3iqdlpb2il74l01lxfahwg87g7h3gq9frky2wd";
+      rev = "0fdf9f2f7e6014a49625433058c1665f72a3b86f";
+      sha256 = "028hcmr7xxqmb55m9q2h2x9kr5xq5866ivr0in23jm44s897yr25";
     };
     meta.homepage = "https://github.com/Shougo/vimfiler.vim/";
   };
@@ -6760,16 +7132,28 @@ let
 
   vimproc-vim = buildVimPluginFrom2Nix {
     pname = "vimproc-vim";
-    version = "2020-01-20";
+    version = "2020-06-23";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "vimproc.vim";
-      rev = "51f4664c92f0f1b121127c84d3b1c901e1c698f0";
-      sha256 = "06nzh4x7j7j3nvw2s4m1gmds0z0bldxbizja91jd43qma9xnwvlk";
+      rev = "8f40d86ab938d5df8c1c9824320621ae9f0d5609";
+      sha256 = "11k59lc31056lk9ndkmi9a4459lnv6hdhvw3y4gpin40xchl6d61";
     };
     meta.homepage = "https://github.com/Shougo/vimproc.vim/";
   };
 
+  vimsence = buildVimPluginFrom2Nix {
+    pname = "vimsence";
+    version = "2020-06-30";
+    src = fetchFromGitHub {
+      owner = "hugolgst";
+      repo = "vimsence";
+      rev = "d6bb167499b8e43e889b305c8670b2445f505ced";
+      sha256 = "0f6jzkfjcvaln61jbva2laws8aqhs5vk4314z900d3hb7rfclrfy";
+    };
+    meta.homepage = "https://github.com/hugolgst/vimsence/";
+  };
+
   vimshell-vim = buildVimPluginFrom2Nix {
     pname = "vimshell-vim";
     version = "2019-07-16";
@@ -6782,14 +7166,27 @@ let
     meta.homepage = "https://github.com/Shougo/vimshell.vim/";
   };
 
+  vimspector = buildVimPluginFrom2Nix {
+    pname = "vimspector";
+    version = "2020-09-25";
+    src = fetchFromGitHub {
+      owner = "puremourning";
+      repo = "vimspector";
+      rev = "42b79d8cbd7e26d4573bc3c0f3cf5aa33bdc602d";
+      sha256 = "1gsxm1gl47v2ik4v7z32vcmlb0b5ybvla5ay0r8v7s9skbsmaq63";
+      fetchSubmodules = true;
+    };
+    meta.homepage = "https://github.com/puremourning/vimspector/";
+  };
+
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2020-06-09";
+    version = "2020-09-26";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "49bc335fffa40a7b7b84b6110b57ebcbaaf019ea";
-      sha256 = "06zdj0pgr6d8vddx87rk36lb00nngydl367g06zi8jkx4673rzz8";
+      rev = "2417bc53c34dc66b008b7057c9acb34e575517bc";
+      sha256 = "10kh3qq76m3k4kcqpm0jhvp1ydj0ffh12h8d5v5r9bcdh4iv82k5";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -6832,12 +7229,12 @@ let
 
   vista-vim = buildVimPluginFrom2Nix {
     pname = "vista-vim";
-    version = "2020-06-06";
+    version = "2020-09-22";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vista.vim";
-      rev = "bfd70f620d30dc756d8ae57056b7a67a3fbbff22";
-      sha256 = "1a60qbswwdl58pqg6d9llj4l96h9vz7vp99s7ji0zjg8vzzklyxm";
+      rev = "9c9adf16db3445005181751f0d3db143d58fe24d";
+      sha256 = "0d1c2p63kkvhgwcrj97qc4yahnx7z9q14qwadbj924w8qlvylmff";
     };
     meta.homepage = "https://github.com/liuchengxu/vista.vim/";
   };
@@ -6916,12 +7313,12 @@ let
 
   xptemplate = buildVimPluginFrom2Nix {
     pname = "xptemplate";
-    version = "2020-02-08";
+    version = "2020-06-29";
     src = fetchFromGitHub {
       owner = "drmingdrmer";
       repo = "xptemplate";
-      rev = "79d650bad58b9c896ec47785f8a0c7b603105c2d";
-      sha256 = "1myxp0ldk0s46aipx1iswa9zx2fkc4gwqpmhbswqgg7sxl1bz30g";
+      rev = "359ffe4d426bce2e95f5866b682856b25555396f";
+      sha256 = "1rj5k58n1ybcc7qxsxlh09p2v4cps5xyzxmvjfrixy1qm2f85kd5";
     };
     meta.homepage = "https://github.com/drmingdrmer/xptemplate/";
   };
@@ -6952,12 +7349,12 @@ let
 
   yats-vim = buildVimPluginFrom2Nix {
     pname = "yats-vim";
-    version = "2020-05-15";
+    version = "2020-09-26";
     src = fetchFromGitHub {
       owner = "HerringtonDarkholme";
       repo = "yats.vim";
-      rev = "fbbb4b2fa346f556aee8424c98ee51e849949bb1";
-      sha256 = "1plgig0m7zb4zk7mqj5g12nc622dpngj4g4wvkg2ffic2krz9fdx";
+      rev = "a3866f0f8b5b156cc33abe9b94e74718a399f73d";
+      sha256 = "1v3xks9s9ql6byc1x84w45jdf9phq7jvwbpr5pv8qy7wyc1iksgc";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/HerringtonDarkholme/yats.vim/";
@@ -6965,12 +7362,12 @@ let
 
   YouCompleteMe = buildVimPluginFrom2Nix {
     pname = "YouCompleteMe";
-    version = "2020-06-12";
+    version = "2020-09-20";
     src = fetchFromGitHub {
       owner = "ycm-core";
       repo = "YouCompleteMe";
-      rev = "8bc02ee4877bfe07ed92cc4d471c353f1ab84ef6";
-      sha256 = "1m1qhyqax7pdrsw9zdwy64d8rg5hcvmbyl8fqmbhz22lxdg5bvzv";
+      rev = "4891999f055167cf845671c231d7740c104074bd";
+      sha256 = "0cgbrgw1ppk7a8vwg0j2zf123clczkf9qv6gaaqmm8kz9j2n4pkb";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
@@ -7002,24 +7399,24 @@ let
 
   zenburn = buildVimPluginFrom2Nix {
     pname = "zenburn";
-    version = "2020-01-23";
+    version = "2020-09-08";
     src = fetchFromGitHub {
       owner = "jnurmine";
       repo = "zenburn";
-      rev = "ec6f369a000602e37e7c066b725f9d6bd12538f4";
-      sha256 = "1ff5ac8lp7fq854kgf03c5h695lm60giw0qda5z428mmzwq0xask";
+      rev = "4ec3795d81fc83b6f43389a6291bfa99394473a8";
+      sha256 = "148s2szjx61rp93nxa95552m87mn4n4ga00dlbvvv7sm607mvxd8";
     };
     meta.homepage = "https://github.com/jnurmine/zenburn/";
   };
 
   zig-vim = buildVimPluginFrom2Nix {
     pname = "zig-vim";
-    version = "2020-05-21";
+    version = "2020-09-20";
     src = fetchFromGitHub {
       owner = "ziglang";
       repo = "zig.vim";
-      rev = "912e9c792702519ca03cd3e3048e8d276a5d3947";
-      sha256 = "1svy3bp8rhcbimcp5p4crz57fiv1p2xvcr4xs90frsncq1r483q9";
+      rev = "9979e503e675b432c55a83891238c631f7f16a01";
+      sha256 = "05cmc3173yscmk2r976280z53z3z7v8ysyy4i0z4v998l804hq5c";
     };
     meta.homepage = "https://github.com/ziglang/zig.vim/";
   };
diff --git a/nixpkgs/pkgs/misc/vim-plugins/overrides.nix b/nixpkgs/pkgs/misc/vim-plugins/overrides.nix
index 11ffbfed9ad8..3874a85c191a 100644
--- a/nixpkgs/pkgs/misc/vim-plugins/overrides.nix
+++ b/nixpkgs/pkgs/misc/vim-plugins/overrides.nix
@@ -2,6 +2,7 @@
 , python, cmake, meson, vim, ruby
 , which, fetchFromGitHub, fetchgit, fetchurl, fetchzip, fetchpatch
 , llvmPackages, rustPlatform
+, pkgconfig, curl, openssl, libgit2, libiconv
 , xkb-switch, fzf, skim, stylish-haskell
 , python3, boost, icu, ncurses
 , ycmd, rake
@@ -13,9 +14,6 @@
 , nodePackages
 , dasht
 
-# coc-go dependency
-, go
-
 # deoplete-khard dependency
 , khard
 
@@ -61,16 +59,18 @@ self: super: {
   };
 
   LanguageClient-neovim = let
-    version = "0.1.157";
-    LanguageClient-neovim-src = fetchurl {
-      url = "https://github.com/autozimu/LanguageClient-neovim/archive/${version}.tar.gz";
-      sha256 = "1ccq5akkm8n612ni5g7w7v5gv73g7p1d9i92k0bnsy33fvi3pmnh";
+    version = "0.1.158";
+    LanguageClient-neovim-src = fetchFromGitHub {
+      owner = "autozimu";
+      repo = "LanguageClient-neovim";
+      rev = version;
+      sha256 = "14xggdgp5qw4yj4gdsgr8s2nxm098m88q8rx6fzd2j20njv308ki";
     };
     LanguageClient-neovim-bin = rustPlatform.buildRustPackage {
       name = "LanguageClient-neovim-bin";
       src = LanguageClient-neovim-src;
 
-      cargoSha256 = "0r3f7sixkvgfrw0j81bxj1jpam5si9dnivrw63s29cvjxrdbnmqz";
+      cargoSha256 = "0nin1gydf6q4mmxljm2xbd1jfl3wpzx3pvlqwspahblv9j2bf5ck";
       buildInputs = stdenv.lib.optionals stdenv.isDarwin [ CoreServices ];
 
       # FIXME: Use impure version of CoreFoundation because of missing symbols.
@@ -122,199 +122,6 @@ self: super: {
     '';
   });
 
-  coc-go = super.coc-go.overrideAttrs(old: {
-    preFixup = ''
-      substituteInPlace "$out"/share/vim-plugins/coc-go/src/utils/tools.ts \
-        --replace 'const cmd = `GOPATH=''${gopath}; go ''${args}`' 'const cmd = `GOPATH=''${gopath}; ${go}/bin/go ''${args}`'
-    '';
-  });
-
-  coc-css = buildVimPluginFrom2Nix {
-    pname = "coc-css";
-    version = nodePackages.coc-css.version;
-    src = "${nodePackages.coc-css}/lib/node_modules/coc-css";
-  };
-
-  coc-emmet = buildVimPluginFrom2Nix {
-    pname = "coc-emmet";
-    version = nodePackages.coc-emmet.version;
-    src = "${nodePackages.coc-emmet}/lib/node_modules/coc-emmet";
-  };
-
-  coc-eslint = buildVimPluginFrom2Nix {
-    pname = "coc-eslint";
-    version = nodePackages.coc-eslint.version;
-    src = "${nodePackages.coc-eslint}/lib/node_modules/coc-eslint";
-  };
-
-  coc-git = buildVimPluginFrom2Nix {
-    pname = "coc-git";
-    version = nodePackages.coc-git.version;
-    src = "${nodePackages.coc-git}/lib/node_modules/coc-git";
-  };
-
-  coc-highlight = buildVimPluginFrom2Nix {
-    pname = "coc-highlight";
-    version = nodePackages.coc-highlight.version;
-    src = "${nodePackages.coc-highlight}/lib/node_modules/coc-highlight";
-  };
-
-  coc-html = buildVimPluginFrom2Nix {
-    pname = "coc-html";
-    version = nodePackages.coc-html.version;
-    src = "${nodePackages.coc-html}/lib/node_modules/coc-html";
-  };
-
-  coc-imselect = buildVimPluginFrom2Nix {
-    pname = "coc-imselect";
-    version = nodePackages.coc-imselect.version;
-    src = "${nodePackages.coc-imselect}/lib/node_modules/coc-imselect";
-  };
-
-  coc-java = buildVimPluginFrom2Nix {
-    pname = "coc-java";
-    version = nodePackages.coc-java.version;
-    src = "${nodePackages.coc-java}/lib/node_modules/coc-java";
-  };
-
-  coc-jest = buildVimPluginFrom2Nix {
-    pname = "coc-jest";
-    version = nodePackages.coc-jest.version;
-    src = "${nodePackages.coc-jest}/lib/node_modules/coc-jest";
-  };
-
-  coc-json = buildVimPluginFrom2Nix {
-    pname = "coc-json";
-    version = nodePackages.coc-json.version;
-    src = "${nodePackages.coc-json}/lib/node_modules/coc-json";
-  };
-
-  coc-lists = buildVimPluginFrom2Nix {
-    pname = "coc-lists";
-    version = nodePackages.coc-lists.version;
-    src = "${nodePackages.coc-lists}/lib/node_modules/coc-lists";
-  };
-
-  coc-metals = buildVimPluginFrom2Nix {
-    pname = "coc-metals";
-    version = nodePackages.coc-metals.version;
-    src = "${nodePackages.coc-metals}/lib/node_modules/coc-metals";
-  };
-
-  coc-pairs = buildVimPluginFrom2Nix {
-    pname = "coc-pairs";
-    version = nodePackages.coc-pairs.version;
-    src = "${nodePackages.coc-pairs}/lib/node_modules/coc-pairs";
-  };
-
-  coc-prettier = buildVimPluginFrom2Nix {
-    pname = "coc-prettier";
-    version = nodePackages.coc-prettier.version;
-    src = "${nodePackages.coc-prettier}/lib/node_modules/coc-prettier";
-  };
-
-  coc-python = buildVimPluginFrom2Nix {
-    pname = "coc-python";
-    version = nodePackages.coc-python.version;
-    src = "${nodePackages.coc-python}/lib/node_modules/coc-python";
-  };
-
-  coc-r-lsp = buildVimPluginFrom2Nix {
-    pname = "coc-r-lsp";
-    version = nodePackages.coc-r-lsp.version;
-    src = "${nodePackages.coc-r-lsp}/lib/node_modules/coc-r-lsp";
-  };
-
-  coc-rls = buildVimPluginFrom2Nix {
-    pname = "coc-rls";
-    version = nodePackages.coc-rls.version;
-    src = "${nodePackages.coc-rls}/lib/node_modules/coc-rls";
-  };
-
-  coc-rust-analyzer = buildVimPluginFrom2Nix {
-    pname = "coc-rust-analyzer";
-    version = nodePackages.coc-rust-analyzer.version;
-    src = "${nodePackages.coc-rust-analyzer}/lib/node_modules/coc-rust-analyzer";
-  };
-
-  coc-smartf = buildVimPluginFrom2Nix {
-    pname = "coc-smartf";
-    version = nodePackages.coc-smartf.version;
-    src = "${nodePackages.coc-smartf}/lib/node_modules/coc-smartf";
-  };
-
-  coc-snippets = buildVimPluginFrom2Nix {
-    pname = "coc-snippets";
-    version = nodePackages.coc-snippets.version;
-    src = "${nodePackages.coc-snippets}/lib/node_modules/coc-snippets";
-  };
-
-  coc-solargraph = buildVimPluginFrom2Nix {
-    pname = "coc-solargraph";
-    version = nodePackages.coc-solargraph.version;
-    src = "${nodePackages.coc-solargraph}/lib/node_modules/coc-solargraph";
-  };
-
-  coc-stylelint = buildVimPluginFrom2Nix {
-    pname = "coc-stylelint";
-    version = nodePackages.coc-stylelint.version;
-    src = "${nodePackages.coc-stylelint}/lib/node_modules/coc-stylelint";
-  };
-
-  coc-tabnine = buildVimPluginFrom2Nix {
-    pname = "coc-tabnine";
-    version = nodePackages.coc-tabnine.version;
-    src = "${nodePackages.coc-tabnine}/lib/node_modules/coc-tabnine";
-  };
-
-  coc-tslint = buildVimPluginFrom2Nix {
-    pname = "coc-tslint";
-    version = nodePackages.coc-tslint.version;
-    src = "${nodePackages.coc-tslint}/lib/node_modules/coc-tslint";
-  };
-
-  coc-tslint-plugin = buildVimPluginFrom2Nix {
-    pname = "coc-tslint-plugin";
-    version = nodePackages.coc-tslint-plugin.version;
-    src = "${nodePackages.coc-tslint-plugin}/lib/node_modules/coc-tslint-plugin";
-  };
-
-  coc-tsserver = buildVimPluginFrom2Nix {
-    pname = "coc-tsserver";
-    version = nodePackages.coc-tsserver.version;
-    src = "${nodePackages.coc-tsserver}/lib/node_modules/coc-tsserver";
-  };
-
-  coc-vetur = buildVimPluginFrom2Nix {
-    pname = "coc-vetur";
-    version = nodePackages.coc-vetur.version;
-    src = "${nodePackages.coc-vetur}/lib/node_modules/coc-vetur";
-  };
-
-  coc-vimtex = buildVimPluginFrom2Nix {
-    pname = "coc-vimtex";
-    version = nodePackages.coc-vimtex.version;
-    src = "${nodePackages.coc-vimtex}/lib/node_modules/coc-vimtex";
-  };
-
-  coc-wxml = buildVimPluginFrom2Nix {
-    pname = "coc-wxml";
-    version = nodePackages.coc-wxml.version;
-    src = "${nodePackages.coc-wxml}/lib/node_modules/coc-wxml";
-  };
-
-  coc-yaml = buildVimPluginFrom2Nix {
-    pname = "coc-yaml";
-    version = nodePackages.coc-yaml.version;
-    src = "${nodePackages.coc-yaml}/lib/node_modules/coc-yaml";
-  };
-
-  coc-yank = buildVimPluginFrom2Nix {
-    pname = "coc-yank";
-    version = nodePackages.coc-yank.version;
-    src = "${nodePackages.coc-yank}/lib/node_modules/coc-yank";
-  };
-
   command-t = super.command-t.overrideAttrs(old: {
     buildInputs = [ ruby rake ];
     buildPhase = ''
@@ -421,6 +228,14 @@ self: super: {
     configurePhase = "cd plugins/nvim";
   });
 
+  vimsence = super.vimsence.overrideAttrs(old: {
+    meta = with stdenv.lib; {
+      description = "Discord rich presence for Vim";
+      homepage = "https://github.com/hugolgst/vimsence";
+      maintainers = with stdenv.lib.maintainers; [ hugolgst ];
+    };
+  });
+
   vim-gist = super.vim-gist.overrideAttrs(old: {
     dependencies = with super; [ webapi-vim ];
   });
@@ -440,6 +255,18 @@ self: super: {
     passthru.python3Dependencies = ps: with ps; [ jedi ];
   });
 
+  ncm2-neoinclude = super.ncm2-neoinclude.overrideAttrs(old: {
+    dependencies = with super; [ neoinclude-vim ];
+  });
+
+  ncm2-neosnippet = super.ncm2-neosnippet.overrideAttrs(old: {
+    dependencies = with super; [ neosnippet-vim ];
+  });
+
+  ncm2-syntax = super.ncm2-syntax.overrideAttrs(old: {
+    dependencies = with super; [ neco-syntax ];
+  });
+
   ncm2-ultisnips = super.ncm2-ultisnips.overrideAttrs(old: {
     dependencies = with super; [ ultisnips ];
   });
@@ -448,6 +275,10 @@ self: super: {
     dependencies = [ self.fzfWrapper ];
   });
 
+  skim-vim = super.skim-vim.overrideAttrs(old: {
+    dependencies = [ self.skim ];
+  });
+
   sved = let
     # we put the script in its own derivation to benefit the magic of wrapGAppsHook
     svedbackend = stdenv.mkDerivation {
@@ -554,6 +385,10 @@ self: super: {
     dependencies = with super; [ vim-maktaba ];
   });
 
+  vim-beancount = super.vim-beancount.overrideAttrs(old: {
+    passthru.python3Dependencies = ps: with ps; [ beancount ];
+  });
+
   vim-codefmt = super.vim-codefmt.overrideAttrs(old: {
     dependencies = with super; [ vim-maktaba ];
   });
@@ -742,4 +577,73 @@ self: super: {
         ${vim}/bin/vim --cmd ":set rtp^=$PWD" -c 'ru plugin/unicode.vim' -c 'UnicodeCache' -c ':echohl Normal' -c ':q' > /dev/null
       '';
   });
-}
+
+  vim-clap = super.vim-clap.overrideAttrs(old: {
+    preFixup = let
+      maple-bin = rustPlatform.buildRustPackage {
+        name = "maple";
+        src = old.src;
+
+        nativeBuildInputs = [
+          pkgconfig
+        ];
+
+        buildInputs = [
+          openssl
+        ] ++ stdenv.lib.optionals stdenv.isDarwin [
+          CoreServices
+          curl
+          libgit2
+          libiconv
+        ];
+
+        cargoSha256 = "0qqys51slz85rnx6knjyivnmyq4rj6rrnz7w72kqcl8da8zjbx7b";
+      };
+    in ''
+      ln -s ${maple-bin}/bin/maple $target/bin/maple
+    '';
+  });
+} // (
+  let
+    nodePackageNames = [
+      "coc-go"
+      "coc-css"
+      "coc-emmet"
+      "coc-eslint"
+      "coc-git"
+      "coc-highlight"
+      "coc-html"
+      "coc-imselect"
+      "coc-java"
+      "coc-jest"
+      "coc-json"
+      "coc-lists"
+      "coc-metals"
+      "coc-pairs"
+      "coc-prettier"
+      "coc-python"
+      "coc-r-lsp"
+      "coc-rls"
+      "coc-rust-analyzer"
+      "coc-smartf"
+      "coc-snippets"
+      "coc-solargraph"
+      "coc-stylelint"
+      "coc-tabnine"
+      "coc-tslint"
+      "coc-tslint-plugin"
+      "coc-tsserver"
+      "coc-vetur"
+      "coc-vimtex"
+      "coc-wxml"
+      "coc-yaml"
+      "coc-yank"
+    ];
+    nodePackage2VimPackage = name: buildVimPluginFrom2Nix {
+      pname = name;
+      inherit (nodePackages.${name}) version meta;
+      src = "${nodePackages.${name}}/lib/node_modules/${name}";
+    };
+  in
+  lib.genAttrs nodePackageNames nodePackage2VimPackage
+)
diff --git a/nixpkgs/pkgs/misc/vim-plugins/update.py b/nixpkgs/pkgs/misc/vim-plugins/update.py
index 84d57133d228..b9bab293a797 100755
--- a/nixpkgs/pkgs/misc/vim-plugins/update.py
+++ b/nixpkgs/pkgs/misc/vim-plugins/update.py
@@ -40,7 +40,6 @@ DEFAULT_IN = ROOT.joinpath("vim-plugin-names")
 DEFAULT_OUT = ROOT.joinpath("generated.nix")
 DEPRECATED = ROOT.joinpath("deprecated.json")
 
-
 def retry(ExceptionToCheck: Any, tries: int = 4, delay: float = 3, backoff: float = 2):
     """Retry calling the decorated function using an exponential backoff.
     http://www.saltycrane.com/blog/2009/11/trying-out-retry-decorator-python/
@@ -71,6 +70,12 @@ def retry(ExceptionToCheck: Any, tries: int = 4, delay: float = 3, backoff: floa
 
     return deco_retry
 
+def make_request(url: str) -> urllib.request.Request:
+    token = os.getenv("GITHUB_API_TOKEN")
+    headers = {}
+    if token is not None:
+       headers["Authorization"] = f"token {token}"
+    return urllib.request.Request(url, headers=headers)
 
 class Repo:
     def __init__(
@@ -91,9 +96,8 @@ class Repo:
     @retry(urllib.error.URLError, tries=4, delay=3, backoff=2)
     def has_submodules(self) -> bool:
         try:
-            urllib.request.urlopen(
-                self.url(f"blob/{self.branch}/.gitmodules"), timeout=10
-            ).close()
+            req = make_request(self.url(f"blob/{self.branch}/.gitmodules"))
+            urllib.request.urlopen(req, timeout=10).close()
         except urllib.error.HTTPError as e:
             if e.code == 404:
                 return False
@@ -104,7 +108,8 @@ class Repo:
     @retry(urllib.error.URLError, tries=4, delay=3, backoff=2)
     def latest_commit(self) -> Tuple[str, datetime]:
         commit_url = self.url(f"commits/{self.branch}.atom")
-        with urllib.request.urlopen(commit_url, timeout=10) as req:
+        commit_req = make_request(commit_url)
+        with urllib.request.urlopen(commit_req, timeout=10) as req:
             self.check_for_redirect(commit_url, req)
             xml = req.read()
             root = ET.fromstring(xml)
diff --git a/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names b/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names
index e22ddc50ddd1..5ed015253b48 100644
--- a/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/nixpkgs/pkgs/misc/vim-plugins/vim-plugin-names
@@ -3,7 +3,6 @@ airblade/vim-gitgutter
 airblade/vim-rooter
 ajh17/Spacegray.vim
 aklt/plantuml-syntax
-albfan/nerdtree-git-plugin
 altercation/vim-colors-solarized
 alvan/vim-closetag
 alx741/vim-hindent
@@ -11,9 +10,11 @@ alx741/vim-stylishask
 amiorin/ctrlp-z
 andrep/vimacs
 andreshazard/vim-logreview
+AndrewRadev/sideways.vim
 AndrewRadev/splitjoin.vim
 andsild/peskcolor.vim
 andviro/flake8-vim
+andymass/vim-matchup
 andys8/vim-elm-syntax
 antoinemadec/coc-fzf
 ap/vim-css-color
@@ -35,6 +36,7 @@ bohlender/vim-smt2
 brennanfee/vim-gui-position
 bronson/vim-trailing-whitespace
 brooth/far.vim
+buoto/gotests-vim
 carlitux/deoplete-ternjs
 ccarpita/rtorrent-syntax-file
 cespare/vim-toml
@@ -51,11 +53,11 @@ chriskempson/base16-vim
 christoomey/vim-sort-motion
 christoomey/vim-tmux-navigator
 ckarnell/antonys-macro-repeater
-ckipp01/coc-metals
 cloudhead/neovim-fuzzy
 CoatiSoftware/vim-sourcetrail
 cocopon/iceberg.vim
 cohama/lexima.vim
+crusoexia/vim-monokai
 ctjhoa/spacevim
 ctrlpvim/ctrlp.vim
 dag/vim-fish
@@ -79,7 +81,8 @@ dhruvasagar/vim-table-mode
 digitaltoad/vim-pug
 direnv/direnv.vim
 dleonard0/pony-vim-syntax
-dracula/vim
+dmix/elvish.vim
+dracula/vim as dracula-vim
 drewtempelmeyer/palenight.vim
 drmingdrmer/xptemplate
 dylanaraps/wal.vim
@@ -97,9 +100,10 @@ enomsg/vim-haskellConcealPlus
 ensime/ensime-vim
 ervandew/supertab
 esneider/YUNOcommit.vim
-fannheyward/coc-rust-analyzer
+fannheyward/coc-markdownlint
 farmergreg/vim-lastplace
 fatih/vim-go
+fcpg/vim-osc52
 FelikZ/ctrlp-py-matcher
 fenetikm/falcon
 fisadev/vim-isort
@@ -128,22 +132,31 @@ guns/vim-clojure-highlight
 guns/vim-clojure-static
 guns/vim-sexp
 guns/xterm-color-table.vim
+hashivim/vim-packer
 hashivim/vim-terraform
+hashivim/vim-vagrant
 haya14busa/incsearch-easymotion.vim
 haya14busa/incsearch.vim
 haya14busa/is.vim
 haya14busa/vim-asterisk
+haya14busa/vim-poweryank
 heavenshell/vim-jsdoc
 hecal3/vim-leader-guide
 henrik/vim-indexed-search
 HerringtonDarkholme/yats.vim
 honza/vim-snippets
 hotwatermorning/auto-git-diff
+hrsh7th/vim-vsnip
+hrsh7th/vim-vsnip-integ
 hsanson/vim-android
 hsitz/VimOrganizer
+hugolgst/vimsence
 iamcco/coc-spell-checker
+iamcco/coc-vimlsp
 ianks/vim-tsx
+idanarye/vim-merginal
 idris-hackers/idris-vim
+ihsanturk/neuron.vim
 Inazuma110/deoplete-greek
 inkarkat/vim-SyntaxRange
 int3/vim-extradite
@@ -155,6 +168,7 @@ itchyny/vim-gitbranch
 ivanov/vim-ipython
 jacoborus/tender.vim
 jaredgorski/SpaceCamp
+jaxbot/semantic-highlight.vim
 JazzCore/ctrlp-cmatcher
 jceb/vim-hier
 jceb/vim-orgmode
@@ -163,7 +177,7 @@ jeetsukumaran/vim-indentwise
 jeffkreeftmeijer/neovim-sensible
 jeffkreeftmeijer/vim-numbertoggle
 jelera/vim-javascript-syntax
-jgdavey/tslime.vim
+jgdavey/tslime.vim@main
 jhradilek/vim-docbk
 jhradilek/vim-snippets as vim-docbk-snippets
 jiangmiao/auto-pairs
@@ -174,7 +188,7 @@ jnurmine/zenburn
 jonbri/vim-colorstepper
 jonsmithers/vim-html-template-literals
 joonty/vim-xdebug
-josa42/coc-go
+joshdick/onedark.vim
 jpalardy/vim-slime
 jparise/vim-graphql
 jparise/vim-phabricator
@@ -183,12 +197,14 @@ jsfaint/gen_tags.vim
 JuliaEditorSupport/deoplete-julia
 JuliaEditorSupport/julia-vim
 Julian/vim-textobj-variable-segment
+juliosueiras/vim-terraform-completion
 junegunn/fzf.vim
 junegunn/goyo.vim
 junegunn/gv.vim
 junegunn/limelight.vim
 junegunn/seoul256.vim
 junegunn/vader.vim
+junegunn/vim-after-object
 junegunn/vim-easy-align
 junegunn/vim-github-dashboard
 junegunn/vim-peekaboo
@@ -218,6 +234,8 @@ konfekt/fastfold
 kristijanhusak/defx-git
 kristijanhusak/defx-icons
 kristijanhusak/deoplete-phpactor
+kristijanhusak/vim-carbon-now-sh
+kristijanhusak/vim-dirvish-git
 kristijanhusak/vim-hybrid-material
 kshenoy/vim-signature
 lambdalisue/vim-gista
@@ -231,10 +249,13 @@ lepture/vim-jinja
 lervag/vimtex
 lfilho/cosco.vim
 lifepillar/vim-mucomplete
+lighttiger2505/deoplete-vim-lsp
 lilydjwg/colorizer
+liuchengxu/vim-clap
 liuchengxu/vim-which-key
 liuchengxu/vista.vim
 LnL7/vim-nix
+lotabout/skim.vim
 LucHermitte/lh-brackets
 LucHermitte/lh-vim-lib
 ludovicchabant/vim-gutentags
@@ -246,7 +267,6 @@ lyokha/vim-xkbswitch
 machakann/vim-highlightedyank
 machakann/vim-sandwich
 machakann/vim-swap
-majutsushi/tagbar
 maksimr/vim-jsbeautify
 MarcWeber/vim-addon-actions
 MarcWeber/vim-addon-async
@@ -277,11 +297,14 @@ matze/vim-move
 maximbaz/lightline-ale
 MaxMEllon/vim-jsx-pretty
 mbbill/undotree
+mboughaba/i3config.vim
 megaannum/forms
 megaannum/self
 mengelbrecht/lightline-bufferline
 mfukar/robotframework-vim
 mg979/vim-visual-multi
+mhartington/oceanic-next
+mhinz/vim-crates
 mhinz/vim-grepper
 mhinz/vim-janah
 mhinz/vim-sayonara
@@ -297,6 +320,7 @@ mopp/sky-color-clock.vim
 morhetz/gruvbox
 motus/pig.vim
 mpickering/hlint-refactor-vim
+mtikekar/vim-bsv
 nanotech/jellybeans.vim
 natebosch/vim-lsc
 nathanaelkane/vim-indent-guides
@@ -306,48 +330,28 @@ nbouscal/vim-stylish-haskell
 ncm2/float-preview.nvim
 ncm2/ncm2
 ncm2/ncm2-bufword
+ncm2/ncm2-cssomni
+ncm2/ncm2-github
+ncm2/ncm2-html-subscope
 ncm2/ncm2-jedi
+ncm2/ncm2-markdown-subscope
+ncm2/ncm2-neoinclude
+ncm2/ncm2-neosnippet
 ncm2/ncm2-path
+ncm2/ncm2-syntax
+ncm2/ncm2-tagprefix
 ncm2/ncm2-tmux
 ncm2/ncm2-ultisnips
+ncm2/ncm2-vim
 ndmitchell/ghcid
-neoclide/coc-css
 neoclide/coc-denite
-neoclide/coc-emmet
-neoclide/coc-eslint
-neoclide/coc-git
-neoclide/coc-highlight
-neoclide/coc-html
-neoclide/coc-imselect
-neoclide/coc-java
-neoclide/coc-jest
-neoclide/coc-json
-neoclide/coc-lists
 neoclide/coc-neco
-neoclide/coc-pairs
-neoclide/coc-prettier
-neoclide/coc-python
-neoclide/coc-r-lsp
-neoclide/coc-rls
-neoclide/coc-smartf
-neoclide/coc-snippets
-neoclide/coc-solargraph
-neoclide/coc-stylelint
-neoclide/coc-tabnine
-neoclide/coc-tslint
-neoclide/coc-tslint-plugin
-neoclide/coc-tsserver
-neoclide/coc-vetur
-neoclide/coc-vimtex
-neoclide/coc-wxml
-neoclide/coc-yaml
-neoclide/coc-yank
 neoclide/coc.nvim@release
 neoclide/denite-extra
 neoclide/denite-git
 neoclide/vim-easygit
 neomake/neomake
-neovim/nvim-lsp
+neovim/nvim-lspconfig
 neovim/nvimdev.nvim
 neovimhaskell/haskell-vim
 neovimhaskell/nvim-hs.vim
@@ -362,17 +366,24 @@ norcalli/nvim-terminal.lua
 ntpeters/vim-better-whitespace
 numirias/semshi
 nvie/vim-flake8
+nvim-lua/completion-nvim
+nvim-lua/diagnostic-nvim
+nvim-treesitter/completion-treesitter
+nvim-treesitter/nvim-treesitter
+ocaml/vim-ocaml
 octol/vim-cpp-enhanced-highlight
 Olical/conjure
 OrangeT/vim-csharp
 osyo-manga/shabadou.vim
 osyo-manga/vim-anzu
+osyo-manga/vim-over
 osyo-manga/vim-textobj-multiblock
 osyo-manga/vim-watchdogs
 overcache/NeoSolarized
 pangloss/vim-javascript
 parsonsmatt/intero-neovim
 pearofducks/ansible-vim
+peitalin/vim-jsx-typescript
 peterbjorgensen/sved
 peterhoeg/vim-qml
 phanviet/vim-monokai-pro
@@ -381,9 +392,14 @@ ponko2/deoplete-fish
 posva/vim-vue
 powerman/vim-plugin-AnsiEsc
 PProvost/vim-ps1
+prabirshrestha/asyncomplete.vim
+prabirshrestha/vim-lsp
 preservim/nerdcommenter
 preservim/nerdtree
+preservim/tagbar
+psliwka/vim-smoothie
 ptzz/lf.vim
+puremourning/vimspector
 purescript-contrib/purescript-vim
 python-mode/python-mode
 qnighy/lalrpop.vim
@@ -400,10 +416,14 @@ rbgrouleff/bclose.vim
 reedes/vim-pencil
 reedes/vim-wordy
 rhysd/committia.vim
+rhysd/devdocs.vim
+rhysd/git-messenger.vim
+rhysd/vim-clang-format
 rhysd/vim-grammarous
 rhysd/vim-operator-surround
 rodjek/vim-puppet
 romainl/vim-cool
+roman/golden-ratio
 ron89/thesaurus_query.vim
 roxma/nvim-cm-racer
 roxma/nvim-completion-manager
@@ -448,6 +468,7 @@ sjl/gundo.vim
 sjl/splice.vim
 sk1418/last256
 slashmili/alchemist.vim
+sodapopcan/vim-twiggy
 solarnz/arcanist.vim
 sonph/onehalf
 stefandtw/quickfix-reflector.vim
@@ -470,7 +491,9 @@ thinca/vim-themis
 thinca/vim-visualstar
 thirtythreeforty/lessspace.vim
 thosakwe/vim-flutter
+tiagofumo/vim-nerdtree-syntax-highlight
 tikhomirov/vim-glsl
+tjdevries/lsp_extensions.nvim
 tmhedberg/SimpylFold
 tmsvg/pear-tree
 tmux-plugins/vim-tmux
@@ -495,6 +518,8 @@ tpope/vim-liquid
 tpope/vim-obsession
 tpope/vim-pathogen
 tpope/vim-projectionist
+tpope/vim-ragtag
+tpope/vim-rails
 tpope/vim-repeat
 tpope/vim-rhubarb
 tpope/vim-rsi
@@ -521,6 +546,7 @@ uarun/vim-protobuf
 udalov/kotlin-vim
 ujihisa/neco-look
 unblevable/quick-scope
+urbit/hoon.vim
 Valodim/deoplete-notmuch
 vhda/verilog_systemverilog.vim
 vim-airline/vim-airline
@@ -565,12 +591,16 @@ vimwiki/vimwiki
 vito-c/jq.vim
 vmchale/ats-vim
 vmchale/dhall-vim
+vn-ki/coc-clap
+voldikss/vim-floaterm
 VundleVim/Vundle.vim
 w0ng/vim-hybrid
 wakatime/vim-wakatime
 wannesm/wmgraphviz.vim
+weirongxu/coc-explorer
 wellle/targets.vim
 wellle/tmux-complete.vim
+whonore/Coqtail
 will133/vim-dirdiff
 wincent/command-t
 wincent/ferret
@@ -579,7 +609,10 @@ xavierd/clang_complete
 xolox/vim-easytags
 xolox/vim-misc
 xuhdev/vim-latex-live-preview
+Xuyuanp/nerdtree-git-plugin
 ycm-core/YouCompleteMe
 Yggdroot/indentLine
+Yilin-Yang/vim-markbar
+yuki-ycino/ncm2-dictionary
 zah/nim.vim
 ziglang/zig.vim
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/cpptools/default.nix b/nixpkgs/pkgs/misc/vscode-extensions/cpptools/default.nix
index 84919e07c5e2..8c46b242ef45 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/cpptools/default.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/cpptools/default.nix
@@ -50,19 +50,15 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
   mktplcRef = {
     name = "cpptools";
     publisher = "ms-vscode";
-    version = "0.27.1";
+    version = "0.29.0";
   };
 
   vsix = fetchurl {
+    name = "${mktplcRef.publisher}-${mktplcRef.name}.zip";
     url = "https://github.com/microsoft/vscode-cpptools/releases/download/${mktplcRef.version}/cpptools-linux.vsix";
-    sha256 = "1if43zis2cy32c6y1zsh0ih0y2kpdag0flkb795b3m5iwm38rjsq";
+    sha256 = "0qw21wd6hfqrmvyvr2ggydcfsk1hralj5x3s8hhwqyspb7szggxi";
   };
 
-  unpackPhase = ''
-    unzip $src
-    cd extension
-  '';
-
   buildInputs = [
     jq
   ];
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/default.nix b/nixpkgs/pkgs/misc/vscode-extensions/default.nix
index cb145ade054c..a914d70f173e 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/default.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, callPackage, vscode-utils, llvmPackages_8 }:
+{ stdenv, callPackage, vscode-utils, llvmPackages_8, llvmPackages_latest }:
 
 let
   inherit (vscode-utils) buildVscodeMarketplaceExtension;
@@ -60,6 +60,18 @@ in
     };
   };
 
+  haskell.haskell = buildVscodeMarketplaceExtension {
+    mktplcRef = {
+      name = "haskell";
+      publisher = "haskell";
+      version = "1.1.0";
+      sha256 = "1wg06lyk0qn9jd6gi007sg7v0z9z8gwq7x2449d4ihs9n3w5l0gb";
+    };
+    meta = with stdenv.lib; {
+      license = licenses.mit;
+    };
+  };
+
   james-yu.latex-workshop = buildVscodeMarketplaceExtension {
     mktplcRef = {
       name = "latex-workshop";
@@ -76,8 +88,8 @@ in
     mktplcRef = {
       name = "language-haskell";
       publisher = "justusadam";
-      version = "3.0.3";
-      sha256 = "1sg4g8h1gww4y67zix5f33v2gf121k2fcm6l1m7lygpkn40a8dsj";
+      version = "3.2.1";
+      sha256 = "0lxp8xz17ciy93nj4lzxqvz71vw1zdyamrnh2n792yair8890rr6";
     };
     meta = {
       license = stdenv.lib.licenses.bsd3;
@@ -178,6 +190,10 @@ in
     };
   };
 
+  vadimcn.vscode-lldb = callPackage ./vscode-lldb {
+    lldb = llvmPackages_latest.lldb;
+  };
+
   vscodevim.vim = buildVscodeMarketplaceExtension {
     mktplcRef = {
       name = "vim";
@@ -190,6 +206,19 @@ in
     };
   };
 
+  xaver.clang-format = buildVscodeMarketplaceExtension {
+    mktplcRef = {
+      name = "clang-format";
+      publisher = "xaver";
+      version = "1.9.0";
+      sha256 = "abd0ef9176eff864f278c548c944032b8f4d8ec97d9ac6e7383d60c92e258c2f";
+    };
+    meta = with stdenv.lib; {
+      license = licenses.mit;
+      maintainers = [ maintainers.zeratax ];
+    };
+  };
+
   llvm-org.lldb-vscode = llvmPackages_8.lldb;
 
   WakaTime.vscode-wakatime = callPackage ./wakatime {};
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/python/default.nix b/nixpkgs/pkgs/misc/vscode-extensions/python/default.nix
index 8f5a92e47222..f5dbadd689d8 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/python/default.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/python/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchurl, vscode-utils, extractNuGet
 , icu, curl, openssl, lttng-ust, autoPatchelfHook
-, python3
+, python3, musl
 , pythonUseFixed ? false       # When `true`, the python default setting will be fixed to specified.
                                # Use version from `PATH` for default setting otherwise.
                                # Defaults to `false` as we expect it to be project specific most of the time.
@@ -37,12 +37,17 @@ let
       sha256 = languageServerSha256;
     };
   };
-in vscode-utils.buildVscodeMarketplaceExtension {
+in vscode-utils.buildVscodeMarketplaceExtension rec {
   mktplcRef = {
     name = "python";
     publisher = "ms-python";
-    version = "2020.3.71659";
-    sha256 = "1smhnhkfchmljz8aj1br70023ysgd2hj6pm1ncn1jxphf89qi1ja";
+    version = "2020.8.103604";
+  };
+
+  vsix = fetchurl {
+    name = "${mktplcRef.publisher}-${mktplcRef.name}.zip";
+    url = "https://github.com/microsoft/vscode-python/releases/download/${mktplcRef.version}/ms-python-release.vsix";
+    sha256 = "1gncnhmwjipaf7hzpimwzqdzyqyy4sznkq4qr2mn1ndjl6s1hh58";
   };
 
   buildInputs = [
@@ -50,6 +55,7 @@ in vscode-utils.buildVscodeMarketplaceExtension {
     curl
     openssl
     lttng-ust
+    musl
   ];
 
   nativeBuildInputs = [
@@ -81,6 +87,7 @@ in vscode-utils.buildVscodeMarketplaceExtension {
 
   meta = with lib; {
     license = licenses.mit;
+    platforms = [ "x86_64-linux" ];
     maintainers = [ maintainers.jraygauthier ];
   };
 }
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json b/nixpkgs/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json
index f6414e643cc4..4af15f4619ea 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json
+++ b/nixpkgs/pkgs/misc/vscode-extensions/rust-analyzer/build-deps/package.json
@@ -2,25 +2,25 @@
   "name": "rust-analyzer",
   "version": "0.4.0-dev",
   "dependencies": {
-    "node-fetch": "^2.6.0",
-    "vscode-languageclient": "7.0.0-next.1",
-    "@rollup/plugin-commonjs": "^12.0.0",
-    "@rollup/plugin-node-resolve": "^8.0.0",
-    "@types/glob": "^7.1.1",
+    "node-fetch": "^2.6.1",
+    "vscode-languageclient": "7.0.0-next.9",
+    "@rollup/plugin-commonjs": "^13.0.2",
+    "@rollup/plugin-node-resolve": "^8.4.0",
+    "@types/glob": "^7.1.3",
     "@types/mocha": "^7.0.2",
-    "@types/node": "^14.0.5",
+    "@types/node": "~12.7.0",
     "@types/node-fetch": "^2.5.7",
-    "@types/vscode": "1.45.0",
-    "@typescript-eslint/eslint-plugin": "^3.0.0",
-    "@typescript-eslint/parser": "^3.0.0",
-    "eslint": "^7.0.0",
+    "@types/vscode": "^1.47.1",
+    "@typescript-eslint/eslint-plugin": "^3.10.1",
+    "@typescript-eslint/parser": "^3.10.1",
+    "eslint": "^7.8.0",
     "glob": "^7.1.6",
-    "mocha": "^7.1.2",
-    "rollup": "^2.10.7",
-    "tslib": "^2.0.0",
-    "typescript": "^3.9.3",
+    "mocha": "^8.1.3",
+    "rollup": "^2.26.9",
+    "tslib": "^2.0.1",
+    "typescript": "^3.9.7",
     "typescript-formatter": "^7.2.2",
-    "vsce": "^1.75.0",
-    "vscode-test": "^1.3.0"
+    "vsce": "^1.79.5",
+    "vscode-test": "^1.4.0"
   }
 }
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/updateSettings.nix b/nixpkgs/pkgs/misc/vscode-extensions/updateSettings.nix
index a033229c5898..c7fecf080720 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/updateSettings.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/updateSettings.nix
@@ -16,7 +16,7 @@ let
 
   updateVSCodeSettingsCmd = ''
   (
-    echo 'updateSettings.nix: Updating ${vscodeSettingsFile}...' 
+    echo 'updateSettings.nix: Updating ${vscodeSettingsFile}...'
     oldSettings=$(cat ${vscodeSettingsFile})
     echo $oldSettings' ${builtins.toJSON settings}' | ${jq}/bin/jq -s add > ${vscodeSettingsFile}
   )'';
@@ -25,10 +25,10 @@ let
   fileName = builtins.baseNameOf vscodeSettingsFile;
   symlinkFromUserSettingCmd = lib.optionalString symlinkFromUserSetting
     '' && mkdir -p "${userSettingsFolder}" && ln -sfv "$(pwd)/${vscodeSettingsFile}" "${userSettingsFolder}/" '';
-in 
+in
 
   writeShellScriptBin ''vscodeNixUpdate-${lib.removeSuffix ".json" (fileName)}''
-  (lib.optionalString (settings != {}) 
+  (lib.optionalString (settings != {})
     (if createIfDoesNotExists then ''
       [ ! -f "${vscodeSettingsFile}" ] && ${createEmptySettingsCmd}
       ${updateVSCodeSettingsCmd} ${symlinkFromUserSettingCmd}
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/build-deps/package.json b/nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/build-deps/package.json
new file mode 100644
index 000000000000..6e73ee446d86
--- /dev/null
+++ b/nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/build-deps/package.json
@@ -0,0 +1,24 @@
+{
+	"name": "vscode-lldb",
+	"version": "1.5.3",
+	"dependencies": {
+		"@types/json5": "^0.0.30",
+		"@types/mocha": "^7.0.1",
+		"@types/node": "^8.10.50",
+		"@types/vscode": "^1.31.0",
+		"@types/yauzl": "^2.9.0",
+		"json5": "^2.1.0",
+		"memory-streams": "^0.1.3",
+		"mocha": "^7.0.1",
+		"source-map-support": "^0.5.12",
+		"string-argv": "^0.3.1",
+		"ts-loader": "^6.2.1",
+		"typescript": "^3.7.0",
+		"vsce": "^1.73.0",
+		"vscode-debugadapter-testsupport": "^1.35.0",
+		"vscode-debugprotocol": "^1.35.0",
+		"webpack": "^4.39.1",
+		"webpack-cli": "^3.3.7",
+		"yauzl": "^2.10.0"
+	}
+}
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/cmake-build-extension-only.patch b/nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/cmake-build-extension-only.patch
new file mode 100644
index 000000000000..db62552b913b
--- /dev/null
+++ b/nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/cmake-build-extension-only.patch
@@ -0,0 +1,45 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -9,13 +9,6 @@ include(cmake/CopyFiles.cmake)
+ set(CMAKE_CXX_STANDARD 11)
+ set(CMAKE_INSTALL_PREFIX $ENV{HOME}/.vscode/extensions/vscode-lldb CACHE PATH "Install location")
+ 
+-set(LLDB_ROOT $ENV{LLDB_ROOT} CACHE PATH "Root of LLDB build directory")
+-if (LLDB_ROOT)
+-    message("Using LLDB from ${LLDB_ROOT}")
+-else()
+-    message(FATAL_ERROR "LLDB_ROOT not set." )
+-endif()
+-
+ # General OS-specific definitions
+ if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
+     set(DylibPrefix lib)
+@@ -64,8 +57,9 @@ set(UpdateFile ${CMAKE_COMMAND} -E copy_if_different)
+ 
+ # Adapter
+ 
+-add_subdirectory(adapter)
+-add_subdirectory(lldb)
++add_custom_target(adapter)
++add_custom_target(lldb)
++add_custom_target(codelldb)
+ 
+ # Extension package content
+ 
+@@ -74,16 +68,6 @@ configure_file(package.json ${CMAKE_CURRENT_BINARY_DIR}/package.json @ONLY)
+ configure_file(webpack.config.js ${CMAKE_CURRENT_BINARY_DIR}/webpack.config.js @ONLY)
+ file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/package-lock.json DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+ 
+-# Run 'npm install'
+-execute_process(
+-    COMMAND ${NPM} install
+-    WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+-    RESULT_VARIABLE Result
+-)
+-if (NOT ${Result} EQUAL 0)
+-    message(FATAL_ERROR "npm intall failed: ${Result}")
+-endif()
+-
+ # Copy it back, so we can commit the lock file.
+ file(COPY ${CMAKE_CURRENT_BINARY_DIR}/package-lock.json DESTINATION ${CMAKE_CURRENT_SOURCE_DIR})
+ 
\ No newline at end of file
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/default.nix b/nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/default.nix
new file mode 100644
index 000000000000..f22c9df36a1b
--- /dev/null
+++ b/nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/default.nix
@@ -0,0 +1,106 @@
+{ lib, stdenv, vscode-utils, fetchFromGitHub, rustPlatform, makeWrapper, jq
+, nodePackages, cmake, nodejs, unzip, python3, lldb, breakpointHook
+, setDefaultLldbPath ? true
+}:
+assert lib.versionAtLeast python3.version "3.5";
+let
+  publisher = "vadimcn";
+  name = "vscode-lldb";
+  version = "1.5.3";
+
+  dylibExt = stdenv.hostPlatform.extensions.sharedLibrary;
+
+  src = fetchFromGitHub {
+    owner = "vadimcn";
+    repo = "vscode-lldb";
+    rev = "v${version}";
+    sha256 = "1139945j3z0fxc3nlyvd81k0ypymqsj051idrbgbibwshpi86y93";
+    fetchSubmodules = true;
+  };
+
+  adapter = rustPlatform.buildRustPackage {
+    pname = "${name}-adapter";
+    inherit version src;
+
+    cargoSha256 = "0jl4msf2jcjxddwqkx8fr0c35wg4vwvg5c19mihri1v34i09zc5r";
+
+    # It will pollute the build environment of `buildRustPackage`.
+    cargoPatches = [ ./reset-cargo-config.patch ];
+
+    nativeBuildInputs = [ makeWrapper ];
+
+    buildAndTestSubdir = "adapter";
+
+    # Hack: Need a nightly compiler.
+    RUSTC_BOOTSTRAP = 1;
+
+    # `adapter` expects a special hierarchy to resolve everything well.
+    postInstall = ''
+      mkdir -p $out/adapter
+      mv -t $out/adapter \
+        $out/bin/* \
+        $out/lib/* \
+        ./adapter/*.py \
+        ./formatters/*.py
+      rmdir $out/{bin,lib}
+    '';
+
+    postFixup = ''
+      wrapProgram $out/adapter/codelldb \
+        --prefix PATH : "${python3}/bin" \
+        --prefix LD_LIBRARY_PATH : "${python3}/lib"
+    '';
+  };
+
+  build-deps = nodePackages."vscode-lldb-build-deps-../../misc/vscode-extensions/vscode-lldb/build-deps";
+
+  vsix = stdenv.mkDerivation {
+    name = "${name}-${version}-vsix";
+    inherit src;
+
+    # Only build the extension. We handle `adapter` and `lldb` with nix.
+    patches = [ ./cmake-build-extension-only.patch ];
+
+    nativeBuildInputs = [ cmake nodejs unzip breakpointHook ];
+
+    postConfigure = ''
+      cp -r ${build-deps}/lib/node_modules/vscode-lldb/{node_modules,package-lock.json} .
+    '';
+
+    makeFlags = [ "vsix_bootstrap" ];
+
+    installPhase = ''
+      unzip ./codelldb-bootstrap.vsix 'extension/*' -d ./vsix-extracted
+      mv vsix-extracted/extension $out
+
+      ln -s ${adapter}/adapter $out
+      # Mark that adapter and lldb are installed.
+      touch $out/platform.ok
+    '';
+
+    dontStrip = true;
+    dontPatchELF = true;
+  };
+
+in vscode-utils.buildVscodeExtension {
+  inherit name;
+  src = vsix;
+
+  nativeBuildInputs = lib.optional setDefaultLldbPath jq;
+  postUnpack = lib.optionalString setDefaultLldbPath ''
+    jq '.contributes.configuration.properties."lldb.library".default = $s' \
+      --arg s "${lldb}/lib/liblldb.so" \
+      $sourceRoot/package.json >$sourceRoot/package.json.new
+    mv $sourceRoot/package.json.new $sourceRoot/package.json
+  '';
+
+  vscodeExtUniqueId = "${publisher}.${name}";
+
+  meta = with lib; {
+    description = "A native debugger extension for VSCode based on LLDB";
+    homepage = "https://github.com/vadimcn/vscode-lldb";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ oxalica ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/reset-cargo-config.patch b/nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/reset-cargo-config.patch
new file mode 100644
index 000000000000..300f8cd96ef9
--- /dev/null
+++ b/nixpkgs/pkgs/misc/vscode-extensions/vscode-lldb/reset-cargo-config.patch
@@ -0,0 +1,11 @@
+--- a/.cargo/config
++++ b/.cargo/config
+@@ -1,8 +0,0 @@
+-[build]
+-target-dir = "build/target"
+-
+-[target.armv7-unknown-linux-gnueabihf]
+-linker = "arm-linux-gnueabihf-gcc"
+-
+-[target.aarch64-unknown-linux-gnu]
+-linker = "aarch64-linux-gnu-gcc"
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/vscodeEnv.nix b/nixpkgs/pkgs/misc/vscode-extensions/vscodeEnv.nix
index 6e4bb7b3ea88..7c58a4bdfb34 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/vscodeEnv.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/vscodeEnv.nix
@@ -21,13 +21,13 @@
 , user-data-dir ? ''"''${TMP}''${name}"/vscode-data-dir''
 # if file exists will use it and import the extensions in it into this dervation else will use empty extensions list
 # this file will be created/updated by vscodeExts2nix when vscode exists
-, mutableExtensionsFile 
+, mutableExtensionsFile
 }:
-let  
+let
   mutableExtensionsFilePath = toString mutableExtensionsFile;
-  mutableExtensions = if builtins.pathExists mutableExtensionsFile 
+  mutableExtensions = if builtins.pathExists mutableExtensionsFile
                       then import mutableExtensionsFilePath else [];
-  vscodeWithConfiguration = import ./vscodeWithConfiguration.nix { 
+  vscodeWithConfiguration = import ./vscodeWithConfiguration.nix {
     inherit lib writeShellScriptBin extensionsFromVscodeMarketplace;
     vscodeDefault = vscode;
   }
@@ -63,19 +63,19 @@ let
     symlinkFromUserSetting = (user-data-dir != "");
   };
 
-  vscodeExts2nix = import ./vscodeExts2nix.nix { 
+  vscodeExts2nix = import ./vscodeExts2nix.nix {
     inherit lib writeShellScriptBin;
     vscodeDefault = vscodeWithConfiguration;
   }
   {
     extensionsToIgnore = nixExtensions;
-    extensions = mutableExtensions; 
+    extensions = mutableExtensions;
   };
   code = writeShellScriptBin "code" ''
     ${updateSettingsCmd}/bin/vscodeNixUpdate-settings
     ${updateLaunchCmd}/bin/vscodeNixUpdate-launch
     ${updateKeybindingsCmd}/bin/vscodeNixUpdate-keybindings
-    ${vscodeWithConfiguration}/bin/code --wait "$@" 
+    ${vscodeWithConfiguration}/bin/code --wait "$@"
     echo 'running vscodeExts2nix to update ${mutableExtensionsFilePath}...'
     ${vscodeExts2nix}/bin/vscodeExts2nix > ${mutableExtensionsFilePath}
   '';
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/vscodeEnvTest.nix b/nixpkgs/pkgs/misc/vscode-extensions/vscodeEnvTest.nix
index d7e586cab6ec..19a9edbf1afe 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/vscodeEnvTest.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/vscodeEnvTest.nix
@@ -1,5 +1,5 @@
 with import <nixpkgs>{};
-callPackage (import ./vscodeEnv.nix) { 
+callPackage (import ./vscodeEnv.nix) {
   extensionsFromVscodeMarketplace = vscode-utils.extensionsFromVscodeMarketplace;
   vscodeDefault = vscode;
 } {
@@ -9,4 +9,3 @@ callPackage (import ./vscodeEnv.nix) {
     t = "test";
   };
 }
-
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/vscodeExts2nix.nix b/nixpkgs/pkgs/misc/vscode-extensions/vscodeExts2nix.nix
index afd176b4c5e4..58ad5866c935 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/vscodeExts2nix.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/vscodeExts2nix.nix
@@ -1,24 +1,24 @@
-# based on the passed vscode will stdout a nix expression with the installed vscode extensions 
+# based on the passed vscode will stdout a nix expression with the installed vscode extensions
 { lib
 , vscodeDefault
 , writeShellScriptBin
 }:
 
 ##User input
-{ vscode             ? vscodeDefault 
+{ vscode             ? vscodeDefault
 , extensionsToIgnore ? []
 # will use those extensions to get sha256 if still exists when executed.
-, extensions         ? [] 
+, extensions         ? []
 }:
-let 
+let
   mktplcExtRefToFetchArgs = import ./mktplcExtRefToFetchArgs.nix;
 in
 writeShellScriptBin "vscodeExts2nix" ''
-  echo '[' 
+  echo '['
 
   for line in $(${vscode}/bin/code --list-extensions --show-versions \
     ${lib.optionalString (extensionsToIgnore != []) ''
-      | grep -v -i '^\(${lib.concatMapStringsSep "\\|" (e : ''${e.publisher}.${e.name}'') extensionsToIgnore}\)' 
+      | grep -v -i '^\(${lib.concatMapStringsSep "\\|" (e : ''${e.publisher}.${e.name}'') extensionsToIgnore}\)'
     ''}
   ) ; do
     [[ $line =~ ([^.]*)\.([^@]*)@(.*) ]]
diff --git a/nixpkgs/pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix b/nixpkgs/pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix
index f15d14c74418..e20c631f8c03 100644
--- a/nixpkgs/pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix
+++ b/nixpkgs/pkgs/misc/vscode-extensions/vscodeWithConfiguration.nix
@@ -1,22 +1,22 @@
 # wrapper over vscode to control extensions per project (extensions folder will be created in execution path)
-{ lib                             
-, writeShellScriptBin             
-, extensionsFromVscodeMarketplace 
+{ lib
+, writeShellScriptBin
+, extensionsFromVscodeMarketplace
 , vscodeDefault
 }:
 ## User input
-{ vscode ? vscodeDefault                          
+{ vscode ? vscodeDefault
 # extensions to be symlinked into the project's extensions folder
-, nixExtensions        ? []                   
+, nixExtensions        ? []
 # extensions to be copied into the project's extensions folder
-, mutableExtensions    ? []        
-, vscodeExtsFolderName ? ".vscode-exts"        
+, mutableExtensions    ? []
+, vscodeExtsFolderName ? ".vscode-exts"
 , user-data-dir ? ''"''${TMP}vscodeWithConfiguration/vscode-data-dir"''
 }:
-let 
+let
   nixExtsDrvs = extensionsFromVscodeMarketplace nixExtensions;
   mutExtsDrvs = extensionsFromVscodeMarketplace mutableExtensions;
-  mutableExtsPaths = lib.forEach mutExtsDrvs ( e: 
+  mutableExtsPaths = lib.forEach mutExtsDrvs ( e:
   {
     origin = ''${e}/share/vscode/extensions/${e.vscodeExtUniqueId}'';
     target = ''${vscodeExtsFolderName}/${e.vscodeExtUniqueId}-${(lib.findSingle (ext: ''${ext.publisher}.${ext.name}'' == e.vscodeExtUniqueId) "" "m" mutableExtensions ).version}'';
@@ -39,16 +39,16 @@ let
         cp -a ${ePath.origin} ${ePath.target}
         chmod -R u+rwx ${ePath.target}
       fi
-      '') mutableExtsPaths} 
+      '') mutableExtsPaths}
   '';
 in
   writeShellScriptBin "code" ''
-    if ! [[ "$@" =~ "--list-extension" ]]; then 
-      mkdir -p "${vscodeExtsFolderName}" 
+    if ! [[ "$@" =~ "--list-extension" ]]; then
+      mkdir -p "${vscodeExtsFolderName}"
       ${rmExtensions}
       ${cpExtensions}
     fi
-    ${vscode}/bin/code --extensions-dir "${vscodeExtsFolderName}" ${ 
+    ${vscode}/bin/code --extensions-dir "${vscodeExtsFolderName}" ${
       lib.optionalString (user-data-dir != "") ''--user-data-dir ${user-data-dir }''
       } "$@"
   ''
diff --git a/nixpkgs/pkgs/os-specific/darwin/discrete-scroll/default.nix b/nixpkgs/pkgs/os-specific/darwin/discrete-scroll/default.nix
new file mode 100644
index 000000000000..e72402b77933
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/discrete-scroll/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, lib, fetchFromGitHub, Cocoa }:
+
+## after launching for the first time, grant access for parent application (e.g. Terminal.app)
+## from 'system preferences >> security & privacy >> accessibility'
+## and then launch again
+
+stdenv.mkDerivation rec {
+  pname = "discrete-scroll";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "emreyolcu";
+    repo = "discrete-scroll";
+    rev = "v${version}";
+    sha256 = "0aqkp4kkwjlkll91xbqwf8asjww8ylsdgqvdk8d06bwdvg2cgvhg";
+  };
+
+  buildInputs = [ Cocoa ];
+
+  buildPhase = ''
+    cc -std=c99 -O3 -Wall -framework Cocoa -o dc DiscreteScroll/main.m
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp ./dc $out/bin/discretescroll
+  '';
+
+  meta = with lib; {
+    description = "Fix for OS X's scroll wheel problem";
+    homepage = "https://github.com/emreyolcu/discrete-scroll";
+    platforms = platforms.darwin;
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/darwin/ios-deploy/default.nix b/nixpkgs/pkgs/os-specific/darwin/ios-deploy/default.nix
new file mode 100644
index 000000000000..6567093700df
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/darwin/ios-deploy/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenvNoCC, rsync, fetchFromGitHub }:
+
+# Note this is impure, using system XCode to build ios-deploy. We
+# should have a special flag for users to enable this.
+
+let version = "1.11.0";
+in stdenvNoCC.mkDerivation {
+  pname = "ios-deploy";
+  inherit version;
+  src = fetchFromGitHub {
+    owner = "ios-control";
+    repo = "ios-deploy";
+    rev = version;
+    sha256 = "0hqwikdrcnslx4kkw9b0n7n443gzn2gbrw15pp2fnkcw5s0698sc";
+  };
+  nativeBuildInputs = [ rsync ];
+  buildPhase = ''
+    LD=$CC
+    tmp=$(mktemp -d)
+    ln -s /usr/bin/xcodebuild $tmp
+    export PATH="$PATH:$tmp"
+    xcodebuild -configuration Release SYMROOT=build OBJROOT=$tmp
+  '';
+  checkPhase = ''
+    xcodebuild test -scheme ios-deploy-tests -configuration Release SYMROOT=build
+  '';
+  installPhase = ''
+    install -D build/Release/ios-deploy $out/bin/ios-deploy
+  '';
+  meta = {
+    platforms = lib.platforms.darwin;
+    description = "Install and debug iOS apps from the command line. Designed to work on un-jailbroken devices";
+    license = lib.licenses.gpl3;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/darwin/smimesign/default.nix b/nixpkgs/pkgs/os-specific/darwin/smimesign/default.nix
index 39582ff6dcce..6b7e38891619 100644
--- a/nixpkgs/pkgs/os-specific/darwin/smimesign/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/smimesign/default.nix
@@ -2,25 +2,24 @@
 
 buildGoModule rec {
   pname = "smimesign";
-  version = "v0.0.13";
+  version = "0.1.0";
 
   src = fetchFromGitHub {
-    owner  = "github";
-    repo   = "smimesign";
-    rev    = version;
-    sha256 = "0higcg2rdz02c0n50vigg7w7bxc7wlmg1x2ygrbh3iwms5lc74vi";
+    owner = "github";
+    repo = "smimesign";
+    rev = "v${version}";
+    sha256 = "12f8vprp4v78l9ifrlql0mvpyw5qa8nlrh5ajq5js8wljzpx7wsv";
   };
 
-  vendorSha256 = "00000000000000000hlvwysx045nbw0xr5nngh7zj1wcqxhhm206";
+  vendorSha256 = "1cldxykm9qj5rvyfafam45y5xj4f19700s2f9w7ndhxgfp9vahvz";
 
-  buildFlagsArray = "-ldflags=-X main.versionString=${version}";
+  buildFlagsArray = "-ldflags=-X main.versionString=v${version}";
 
   meta = with lib; {
-    description = "An S/MIME signing utility for macOS and Windows that is compatible with Git.";
-
-    homepage    = "https://github.com/github/smimesign";
-    license     = licenses.mit;
-    platforms   = platforms.darwin;
+    description = "An S/MIME signing utility for macOS and Windows that is compatible with Git";
+    homepage = "https://github.com/github/smimesign";
+    license = licenses.mit;
+    platforms = platforms.darwin ++ platforms.windows;
     maintainers = [ maintainers.enorris ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/darwin/spacebar/default.nix b/nixpkgs/pkgs/os-specific/darwin/spacebar/default.nix
index 9cbd6e62c7a2..7af7e408223a 100644
--- a/nixpkgs/pkgs/os-specific/darwin/spacebar/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/spacebar/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "spacebar";
-  version = "0.5.0";
+  version = "1.1.1";
 
   src = fetchFromGitHub {
-    owner = "somdoron";
+    owner = "cmacrae";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0v8v4xsc67qpzm859r93ggq7rr7hmaj6dahdlg6g3ppj81cq0khz";
+    sha256 = "1x0wzm380nv81j26jqqg4y4dwanydnpdsca41ndw6xyj9zlv73f7";
   };
 
   buildInputs = [ Carbon Cocoa ScriptingBridge ];
@@ -21,8 +21,8 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    description = "A status bar for yabai tiling window management";
-    homepage = "https://github.com/somdoron/spacebar";
+    description = "A minimal status bar for macOS";
+    homepage = "https://github.com/cmacrae/spacebar";
     platforms = platforms.darwin;
     maintainers = [ maintainers.cmacrae ];
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/os-specific/darwin/yabai/default.nix b/nixpkgs/pkgs/os-specific/darwin/yabai/default.nix
index 5d8c8f60aec6..742a3948707e 100644
--- a/nixpkgs/pkgs/os-specific/darwin/yabai/default.nix
+++ b/nixpkgs/pkgs/os-specific/darwin/yabai/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchFromGitHub, Carbon, Cocoa, ScriptingBridge }:
+{ stdenv, fetchFromGitHub, Carbon, Cocoa, ScriptingBridge, xxd }:
 
 stdenv.mkDerivation rec {
   pname = "yabai";
-  version = "3.2.0";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "koekeishiya";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1iq5p4k6klffglxfhmzc2jvlilwn0w97vb5v4b91spiyp39nqcfw";
+    sha256 = "0y4idivqkmi3xsc8yjdzh1b15qzgyqlw7ifs26v3dc91lkjhfc4x";
   };
 
-  buildInputs = [ Carbon Cocoa ScriptingBridge ];
+  buildInputs = [ Carbon Cocoa ScriptingBridge xxd ];
 
   installPhase = ''
     mkdir -p $out/bin
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://github.com/koekeishiya/yabai";
     platforms = platforms.darwin;
-    maintainers = [ maintainers.cmacrae maintainers.shardy ];
+    maintainers = with maintainers; [ cmacrae shardy ];
     license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-lib/default.nix b/nixpkgs/pkgs/os-specific/linux/alsa-lib/default.nix
index 335ae204833d..3c5427340baf 100644
--- a/nixpkgs/pkgs/os-specific/linux/alsa-lib/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-lib/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, alsa-ucm-conf, alsa-topology-conf }:
 
 stdenv.mkDerivation rec {
-  name = "alsa-lib-1.2.2";
+  name = "alsa-lib-1.2.3";
 
   src = fetchurl {
     url = "mirror://alsa/lib/${name}.tar.bz2";
-    sha256 = "1v5kb8jyvrpkvvq7dq8hfbmcj68lml97i4s0prxpfx2mh3c57s6q";
+    sha256 = "13k7dx1g749z74rz71hs5j8z0pqdjgx7l69pn0vsy7jizhi0kw02";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-topology-conf/default.nix b/nixpkgs/pkgs/os-specific/linux/alsa-topology-conf/default.nix
index f73bbbdba357..54340d017ade 100644
--- a/nixpkgs/pkgs/os-specific/linux/alsa-topology-conf/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-topology-conf/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "alsa-topology-conf-${version}";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchurl {
     url = "mirror://alsa/lib/${name}.tar.bz2";
-    sha256 = "09cls485ckdjsp4azhv3nw7chyg3r7zrqgald6yp70f7cysxcwml";
+    sha256 = "1zwxc9zhfcmyffjjbibzpdvf4kx7wv9g2zl6xz7y0d6srfr9jgw3";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-ucm-conf/default.nix b/nixpkgs/pkgs/os-specific/linux/alsa-ucm-conf/default.nix
index 685ba3e2c3e5..2a9f28c855a5 100644
--- a/nixpkgs/pkgs/os-specific/linux/alsa-ucm-conf/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-ucm-conf/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "alsa-ucm-conf-${version}";
-  version = "1.2.2";
+  version = "1.2.3";
 
   src = fetchurl {
     url = "mirror://alsa/lib/${name}.tar.bz2";
-    sha256 = "0364fgzdm2qrsqvgqri25gzscbma7yqlv31wz8b1z9c5phlxkgvy";
+    sha256 = "000db5yla7dljidjbbwbiaxvc1a7wh1zpw694gipaymj9fh4vhhv";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/os-specific/linux/alsa-utils/default.nix b/nixpkgs/pkgs/os-specific/linux/alsa-utils/default.nix
index 470536db4b7b..91d7e05a882c 100644
--- a/nixpkgs/pkgs/os-specific/linux/alsa-utils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/alsa-utils/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, alsaLib, gettext, ncurses, libsamplerate, pciutils, fftw}:
+{stdenv, fetchurl, alsaLib, gettext, makeWrapper, ncurses, libsamplerate, pciutils, which, fftw}:
 
 stdenv.mkDerivation rec {
   pname = "alsa-utils";
@@ -9,18 +9,17 @@ stdenv.mkDerivation rec {
     sha256 = "1ai1z4kf91b1m3qrpwqkc1af5vm2fkdkknqv95xdwf19q94aw6gz";
   };
 
-  patchPhase = ''
-    substituteInPlace alsa-info/alsa-info.sh \
-      --replace "which" "type -p" \
-      --replace "lspci" "${pciutils}/bin/lspci"
-  '';
-  nativeBuildInputs = [ gettext ];
+  nativeBuildInputs = [ gettext makeWrapper ];
   buildInputs = [ alsaLib ncurses libsamplerate fftw ];
 
   configureFlags = [ "--disable-xmlto" "--with-udev-rules-dir=$(out)/lib/udev/rules.d" ];
 
   installFlags = [ "ASOUND_STATE_DIR=$(TMPDIR)/dummy" ];
 
+  postFixup = ''
+    wrapProgram $out/bin/alsa-info.sh --prefix PATH : "${stdenv.lib.makeBinPath [ which pciutils ]}"
+  '';
+
   meta = with stdenv.lib; {
     homepage = "http://www.alsa-project.org/";
     description = "ALSA, the Advanced Linux Sound Architecture utils";
diff --git a/nixpkgs/pkgs/os-specific/linux/apparmor/default.nix b/nixpkgs/pkgs/os-specific/linux/apparmor/default.nix
index afb6799fbafc..0e10add55613 100644
--- a/nixpkgs/pkgs/os-specific/linux/apparmor/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/apparmor/default.nix
@@ -30,7 +30,18 @@ let
     sha256 = "03nislxccnbxld89giak2s8xa4mdbwscfxbdwhmw5qpvgz08dgwh";
   };
 
+  # See <https://gitlab.com/apparmor/apparmor/-/issues/74> This and the
+  # accompanying application in prePatchCommon should be removed in 2.13.5
+  gnumake43Patch = fetchpatch {
+    url = "https://gitlab.com/apparmor/apparmor/-/merge_requests/465.patch";
+    name = "2-23-fix-build-with-make-4.3.patch";
+    sha256 = "0xw028iqp69j9mxv0kbwraplgkj5i5djdlgf0anpkc5cdbsf96r9";
+  };
+
   prePatchCommon = ''
+    patch -p1 < ${gnumake43Patch}
+    chmod a+x ./common/list_capabilities.sh ./common/list_af_names.sh
+    patchShebangs ./common/list_capabilities.sh ./common/list_af_names.sh
     substituteInPlace ./common/Make.rules --replace "/usr/bin/pod2man" "${buildPackages.perl}/bin/pod2man"
     substituteInPlace ./common/Make.rules --replace "/usr/bin/pod2html" "${buildPackages.perl}/bin/pod2html"
     substituteInPlace ./common/Make.rules --replace "/usr/include/linux/capability.h" "${linuxHeaders}/include/linux/capability.h"
@@ -119,7 +130,11 @@ let
       libapparmor.python
     ];
 
-    prePatch = prePatchCommon;
+    prePatch = prePatchCommon + ''
+      substituteInPlace ./utils/apparmor/easyprof.py --replace "/sbin/apparmor_parser" "${apparmor-parser}/bin/apparmor_parser"
+      substituteInPlace ./utils/apparmor/aa.py --replace "/sbin/apparmor_parser" "${apparmor-parser}/bin/apparmor_parser"
+      substituteInPlace ./utils/logprof.conf --replace "/sbin/apparmor_parser" "${apparmor-parser}/bin/apparmor_parser"
+    '';
     inherit patches;
     postPatch = "cd ./utils";
     makeFlags = [ "LANGS=" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/batman-adv/version.nix b/nixpkgs/pkgs/os-specific/linux/batman-adv/version.nix
index f9f3013e1f96..e617881a570c 100644
--- a/nixpkgs/pkgs/os-specific/linux/batman-adv/version.nix
+++ b/nixpkgs/pkgs/os-specific/linux/batman-adv/version.nix
@@ -1,9 +1,9 @@
 {
-  version = "2019.5";
+  version = "2020.3";
 
   sha256 = {
-    batman-adv = "1v18zvvg12jgywncbhxshgjc93r72ajpxgw22zp0zx22g2q13z99";
-    alfred = "09npizg89ks1wm19l5xz0pq1ljpsbwy030xnprqnd0p53976wywa";
-    batctl = "1b9w4636dq8m38nzr8j0v0j3b0vdsw84c58c2isc33h66dx8brgz";
+    batman-adv = "0wrzh0k44zzjx2s5zj65hjkh4jm9y38qpis1s5cbx9cyj756slb5";
+    alfred = "13bvccz90pkjl09jyw68gj23pbrw9b05w1vhds9sjggwf3jkj5w2";
+    batctl = "0r2w2v4sy6wgr7mp9lc7yj9k4ldsbsm3425rjil7p0b17zmzf4rm";
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/bcc/default.nix b/nixpkgs/pkgs/os-specific/linux/bcc/default.nix
index 7f95ef47ee9c..de02ffb30a39 100644
--- a/nixpkgs/pkgs/os-specific/linux/bcc/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/bcc/default.nix
@@ -1,15 +1,16 @@
-{ stdenv, fetchurl, makeWrapper, cmake, llvmPackages, kernel
+{ stdenv, fetchurl, fetchpatch
+, makeWrapper, cmake, llvmPackages, kernel
 , flex, bison, elfutils, python, luajit, netperf, iperf, libelf
 , systemtap, bash
 }:
 
 python.pkgs.buildPythonApplication rec {
   pname = "bcc";
-  version = "0.14.0";
+  version = "0.16.0";
 
   src = fetchurl {
     url = "https://github.com/iovisor/bcc/releases/download/v${version}/bcc-src-with-submodule.tar.gz";
-    sha256 = "1hw02bib06fjyw61as5pmhf0qxy0wv0nw8fff2i8a9d1zcd8xf3p";
+    sha256 = "sha256-ekVRyugpZOU1nr0N9kWCSoJTmtD2qGsn/DmWgK7XZ/c=";
   };
   format = "other";
 
@@ -23,6 +24,12 @@ python.pkgs.buildPythonApplication rec {
     # This is needed until we fix
     # https://github.com/NixOS/nixpkgs/issues/40427
     ./fix-deadlock-detector-import.patch
+
+    # This is already upstream; remove it on the next release
+    (fetchpatch {
+      url = "https://github.com/iovisor/bcc/commit/60de17161fe7f44b534a8da343edbad2427220e3.patch";
+      sha256 = "0pd5b4vgpdxbsrjwrw2kmn4l9hpj0rwdm3hvwvk7dsr3raz7w4b3";
+    })
   ];
 
   propagatedBuildInputs = [ python.pkgs.netaddr ];
diff --git a/nixpkgs/pkgs/os-specific/linux/bpftrace/default.nix b/nixpkgs/pkgs/os-specific/linux/bpftrace/default.nix
index 0c360e60b7e0..fc7c8ecba2da 100644
--- a/nixpkgs/pkgs/os-specific/linux/bpftrace/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/bpftrace/default.nix
@@ -1,17 +1,18 @@
 { stdenv, fetchFromGitHub
 , cmake, pkgconfig, flex, bison
-, llvmPackages, kernel, elfutils, libelf, bcc
+, llvmPackages, kernel, elfutils
+, libelf, libbfd, libbpf, libopcodes, bcc
 }:
 
 stdenv.mkDerivation rec {
   pname = "bpftrace";
-  version = "0.9.4";
+  version = "0.11.0";
 
   src = fetchFromGitHub {
     owner  = "iovisor";
     repo   = "bpftrace";
     rev    = "refs/tags/v${version}";
-    sha256 = "00fvkq3razwacnpb82zkpv63dgyigbqx3gj6g0ka94nwa74i5i77";
+    sha256 = "02f2r731yj3fdc8341id1ksk4dma9rwm2765n2xgx2ldrrz5823y";
   };
 
   enableParallelBuilding = true;
@@ -19,6 +20,7 @@ stdenv.mkDerivation rec {
   buildInputs = with llvmPackages;
     [ llvm clang-unwrapped
       kernel elfutils libelf bcc
+      libbpf libbfd libopcodes
     ];
 
   nativeBuildInputs = [ cmake pkgconfig flex bison ]
@@ -41,7 +43,7 @@ stdenv.mkDerivation rec {
   #
   cmakeFlags =
     [ "-DBUILD_TESTING=FALSE"
-      "-DLIBBCC_INCLUDE_DIRS=${bcc}/include/bcc"
+      "-DLIBBCC_INCLUDE_DIRS=${bcc}/include"
     ];
 
   # nuke the example/reference output .txt files, for the included tools,
diff --git a/nixpkgs/pkgs/os-specific/linux/btfs/default.nix b/nixpkgs/pkgs/os-specific/linux/btfs/default.nix
index 146a66154241..b4107e8ba001 100644
--- a/nixpkgs/pkgs/os-specific/linux/btfs/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/btfs/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "btfs";
-  version = "2.21";
+  version = "2.22";
 
   src = fetchFromGitHub {
     owner  = "johang";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "0zqkzfc49jl9kn3m0cg7q0156xyzrdl5w4v70p16sqxdly86mwb0";
+    sha256 = "1z88bk1z4sns3jdn56x83mvh06snxg0lr5h4v0c24lzlf5wbdifz";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/nixpkgs/pkgs/os-specific/linux/busybox/0001-Fix-build-with-glibc-2.31.patch b/nixpkgs/pkgs/os-specific/linux/busybox/0001-Fix-build-with-glibc-2.31.patch
new file mode 100644
index 000000000000..029333b57e4d
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/busybox/0001-Fix-build-with-glibc-2.31.patch
@@ -0,0 +1,71 @@
+From c29b637b55c93214993f40b1a223233d40b8a7d6 Mon Sep 17 00:00:00 2001
+From: Maximilian Bosch <maximilian@mbosch.me>
+Date: Wed, 19 Feb 2020 22:32:28 +0100
+Subject: [PATCH] Fix build with glibc 2.31
+
+This is derived from the corresponding upstream patch[1], however this
+one doesn't apply cleanly on busybox-1.31.1, so I rebased the patch
+locally and added it directly to nixpkgs.
+
+[1] https://git.busybox.net/busybox/patch/?id=d3539be8f27b8cbfdfee460fe08299158f08bcd9
+---
+ coreutils/date.c         | 2 +-
+ libbb/missing_syscalls.c | 8 --------
+ util-linux/rdate.c       | 8 ++++++--
+ 3 files changed, 7 insertions(+), 11 deletions(-)
+
+diff --git a/coreutils/date.c b/coreutils/date.c
+index 3414d38..931b7f9 100644
+--- a/coreutils/date.c
++++ b/coreutils/date.c
+@@ -303,7 +303,7 @@ int date_main(int argc UNUSED_PARAM, char **argv)
+ 		ts.tv_sec = validate_tm_time(date_str, &tm_time);
+ 
+ 		/* if setting time, set it */
+-		if ((opt & OPT_SET) && stime(&ts.tv_sec) < 0) {
++		if ((opt & OPT_SET) && clock_settime(CLOCK_REALTIME, &ts) < 0) {
+ 			bb_perror_msg("can't set date");
+ 		}
+ 	}
+diff --git a/libbb/missing_syscalls.c b/libbb/missing_syscalls.c
+index 87cf59b..dc40d91 100644
+--- a/libbb/missing_syscalls.c
++++ b/libbb/missing_syscalls.c
+@@ -15,14 +15,6 @@ pid_t getsid(pid_t pid)
+ 	return syscall(__NR_getsid, pid);
+ }
+ 
+-int stime(const time_t *t)
+-{
+-	struct timeval tv;
+-	tv.tv_sec = *t;
+-	tv.tv_usec = 0;
+-	return settimeofday(&tv, NULL);
+-}
+-
+ int sethostname(const char *name, size_t len)
+ {
+ 	return syscall(__NR_sethostname, name, len);
+diff --git a/util-linux/rdate.c b/util-linux/rdate.c
+index 70f829e..878375d 100644
+--- a/util-linux/rdate.c
++++ b/util-linux/rdate.c
+@@ -95,9 +95,13 @@ int rdate_main(int argc UNUSED_PARAM, char **argv)
+ 	if (!(flags & 2)) { /* no -p (-s may be present) */
+ 		if (time(NULL) == remote_time)
+ 			bb_error_msg("current time matches remote time");
+-		else
+-			if (stime(&remote_time) < 0)
++		else {
++			struct timespec ts;
++			ts.tv_sec = remote_time;
++			ts.tv_nsec = 0;
++			if (clock_settime(CLOCK_REALTIME, &ts) < 0)
+ 				bb_perror_msg_and_die("can't set time of day");
++		}
+ 	}
+ 
+ 	if (flags != 1) /* not lone -s */
+-- 
+2.25.0
+
diff --git a/nixpkgs/pkgs/os-specific/linux/busybox/0001-wget-implement-TLS-verification-with-ENABLE_FEATURE_.patch b/nixpkgs/pkgs/os-specific/linux/busybox/0001-wget-implement-TLS-verification-with-ENABLE_FEATURE_.patch
new file mode 100644
index 000000000000..d11cd670d5e8
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/busybox/0001-wget-implement-TLS-verification-with-ENABLE_FEATURE_.patch
@@ -0,0 +1,94 @@
+From 45fa3f18adf57ef9d743038743d9c90573aeeb91 Mon Sep 17 00:00:00 2001
+From: Dimitri John Ledkov <xnox@ubuntu.com>
+Date: Tue, 19 May 2020 18:20:39 +0100
+Subject: [PATCH] wget: implement TLS verification with
+ ENABLE_FEATURE_WGET_OPENSSL
+
+When ENABLE_FEATURE_WGET_OPENSSL is enabled, correctly implement TLS
+verification by default. And only ignore verification errors, if
+--no-check-certificate was passed.
+
+Also note, that previously OPENSSL implementation did not implement
+TLS verification, nor printed any warning messages that verification
+was not performed.
+
+Bug-Ubuntu: https://bugs.launchpad.net/bugs/1879533
+
+CVE-2018-1000500
+
+Signed-off-by: Dimitri John Ledkov <xnox@ubuntu.com>
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+---
+ networking/wget.c | 20 +++++++++++++++++---
+ 1 file changed, 17 insertions(+), 3 deletions(-)
+
+diff --git a/networking/wget.c b/networking/wget.c
+index f2fc9e215..6a8c08324 100644
+--- a/networking/wget.c
++++ b/networking/wget.c
+@@ -91,6 +91,9 @@
+ //config:	patches, but do want to waste bandwidth expaining how wrong
+ //config:	it is, you will be ignored.
+ //config:
++//config:	FEATURE_WGET_OPENSSL does implement TLS verification
++//config:	using the certificates available to OpenSSL.
++//config:
+ //config:config FEATURE_WGET_OPENSSL
+ //config:	bool "Try to connect to HTTPS using openssl"
+ //config:	default y
+@@ -115,6 +118,9 @@
+ //config:	If openssl can't be executed, internal TLS code will be used
+ //config:	(if you enabled it); if openssl can be executed but fails later,
+ //config:	wget can't detect this, and download will fail.
++//config:
++//config:	By default TLS verification is performed, unless
++//config:	--no-check-certificate option is passed.
+ 
+ //applet:IF_WGET(APPLET(wget, BB_DIR_USR_BIN, BB_SUID_DROP))
+ 
+@@ -124,8 +130,11 @@
+ //usage:	IF_FEATURE_WGET_LONG_OPTIONS(
+ //usage:       "[-c|--continue] [--spider] [-q|--quiet] [-O|--output-document FILE]\n"
+ //usage:       "	[-o|--output-file FILE] [--header 'header: value'] [-Y|--proxy on/off]\n"
++//usage:	IF_FEATURE_WGET_OPENSSL(
++//usage:       "	[--no-check-certificate]\n"
++//usage:	)
+ /* Since we ignore these opts, we don't show them in --help */
+-/* //usage:    "	[--no-check-certificate] [--no-cache] [--passive-ftp] [-t TRIES]" */
++/* //usage:    "	[--no-cache] [--passive-ftp] [-t TRIES]" */
+ /* //usage:    "	[-nv] [-nc] [-nH] [-np]" */
+ //usage:       "	[-P DIR] [-S|--server-response] [-U|--user-agent AGENT]" IF_FEATURE_WGET_TIMEOUT(" [-T SEC]") " URL..."
+ //usage:	)
+@@ -137,7 +146,9 @@
+ //usage:       "Retrieve files via HTTP or FTP\n"
+ //usage:	IF_FEATURE_WGET_LONG_OPTIONS(
+ //usage:     "\n	--spider	Only check URL existence: $? is 0 if exists"
+-///////:     "\n	--no-check-certificate	Don't validate the server's certificate"
++//usage:	IF_FEATURE_WGET_OPENSSL(
++//usage:     "\n	--no-check-certificate	Don't validate the server's certificate"
++//usage:	)
+ //usage:	)
+ //usage:     "\n	-c		Continue retrieval of aborted transfer"
+ //usage:     "\n	-q		Quiet"
+@@ -662,7 +673,7 @@ static int spawn_https_helper_openssl(const char *host, unsigned port)
+ 	pid = xvfork();
+ 	if (pid == 0) {
+ 		/* Child */
+-		char *argv[8];
++		char *argv[9];
+ 
+ 		close(sp[0]);
+ 		xmove_fd(sp[1], 0);
+@@ -689,6 +700,9 @@ static int spawn_https_helper_openssl(const char *host, unsigned port)
+ 			argv[5] = (char*)"-servername";
+ 			argv[6] = (char*)servername;
+ 		}
++		if (!(option_mask32 & WGET_OPT_NO_CHECK_CERT)) {
++			argv[7] = (char*)"-verify_return_error";
++		}
+ 
+ 		BB_EXECVP(argv[0], argv);
+ 		xmove_fd(3, 2);
+-- 
+2.28.0
+
diff --git a/nixpkgs/pkgs/os-specific/linux/busybox/default.nix b/nixpkgs/pkgs/os-specific/linux/busybox/default.nix
index 430066831b87..599754129b43 100644
--- a/nixpkgs/pkgs/os-specific/linux/busybox/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/busybox/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, buildPackages, fetchurl
+{ stdenv, lib, buildPackages, fetchurl, fetchFromGitLab
 , enableStatic ? false
 , enableMinimal ? false
 # Allow forcing musl without switching stdenv itself, e.g. for our bootstrapping:
@@ -31,9 +31,26 @@ let
     CONFIG_FEATURE_UTMP n
     CONFIG_FEATURE_WTMP n
   '';
+
+  # The debian version lacks behind the upstream version and also contains
+  # a debian-specific suffix. We only fetch the debian repository to get the
+  # default.script
+  debianVersion = "1.30.1-6";
+  debianSource = fetchFromGitLab {
+    domain = "salsa.debian.org";
+    owner = "installer-team";
+    repo = "busybox";
+    rev = "debian/1%${debianVersion}";
+    sha256 = "sha256-6r0RXtmqGXtJbvLSD1Ma1xpqR8oXL2bBKaUE/cSENL8=";
+  };
+  debianDispatcherScript = "${debianSource}/debian/tree/udhcpc/etc/udhcpc/default.script";
+  outDispatchPath = "$out/default.script";
 in
 
 stdenv.mkDerivation rec {
+  # TODO: When bumping this version, please validate whether the wget patch is present upstream
+  # and remove the patch if it is. The patch should be present upstream for all versions 1.32.0+.
+  # See NixOs/nixpkgs#94722 for context.
   name = "busybox-1.31.1";
 
   # Note to whoever is updating busybox: please verify that:
@@ -49,6 +66,8 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./busybox-in-store.patch
+    ./0001-Fix-build-with-glibc-2.31.patch
+    ./0001-wget-implement-TLS-verification-with-ENABLE_FEATURE_.patch
   ] ++ stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ./clang-cross.patch;
 
   postPatch = "patchShebangs .";
@@ -80,6 +99,9 @@ stdenv.mkDerivation rec {
     # Bump from 4KB, much faster I/O
     CONFIG_FEATURE_COPYBUF_KB 64
 
+    # Set the path for the udhcpc script
+    CONFIG_UDHCPC_DEFAULT_SCRIPT "${outDispatchPath}"
+
     ${extraConfig}
     CONFIG_CROSS_COMPILER_PREFIX "${stdenv.cc.targetPrefix}"
     ${libcConfig}
@@ -94,6 +116,15 @@ stdenv.mkDerivation rec {
     makeFlagsArray+=("CC=${stdenv.cc.targetPrefix}cc -isystem ${musl.dev}/include -B${musl}/lib -L${musl}/lib")
   '';
 
+  postInstall = ''
+    sed -e '
+    1 a busybox() { '$out'/bin/busybox "$@"; }\
+    logger() { '$out'/bin/logger "$@"; }\
+    ' ${debianDispatcherScript} > ${outDispatchPath}
+    chmod 555 ${outDispatchPath}
+    PATH=$out/bin patchShebangs ${outDispatchPath}
+  '';
+
   depsBuildBuild = [ buildPackages.stdenv.cc ];
 
   buildInputs = lib.optionals (enableStatic && !useMusl && stdenv.cc.libc ? static) [ stdenv.cc.libc stdenv.cc.libc.static ];
@@ -106,7 +137,7 @@ stdenv.mkDerivation rec {
     description = "Tiny versions of common UNIX utilities in a single small executable";
     homepage = "https://busybox.net/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ TethysSvensson ];
     platforms = platforms.linux;
     priority = 10;
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/can-isotp/default.nix b/nixpkgs/pkgs/os-specific/linux/can-isotp/default.nix
index 7f16ecb9e6d4..cccc7550fba8 100644
--- a/nixpkgs/pkgs/os-specific/linux/can-isotp/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/can-isotp/default.nix
@@ -2,15 +2,15 @@
 
 stdenv.mkDerivation {
   pname = "can-isotp";
-  version = "20180629";
+  version = "20200910";
 
   hardeningDisable = [ "pic" ];
   
   src = fetchFromGitHub {
     owner = "hartkopp";
     repo = "can-isotp";
-    rev = "6003f9997587e6a563cebf1f246bcd0eb6deff3d";
-    sha256 = "0b2pqb0vd1wgv2zpl7lvfavqkzr8mrwhrv7zdqkq3rz9givcv8w7";
+    rev = "21a3a59e2bfad246782896841e7af042382fcae7";
+    sha256 = "1laax93czalclg7cy9iq1r7hfh9jigh7igj06y9lski75ap2vhfq";
   };
 
   KERNELDIR = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
diff --git a/nixpkgs/pkgs/os-specific/linux/checksec/default.nix b/nixpkgs/pkgs/os-specific/linux/checksec/default.nix
index 7984c25bf3fd..5a66e536956f 100644
--- a/nixpkgs/pkgs/os-specific/linux/checksec/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/checksec/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "checksec";
-  version = "2.2.1";
+  version = "2.2.3";
 
   src = fetchFromGitHub {
     owner = "slimm609";
     repo = "checksec.sh";
     rev = version;
-    sha256 = "035ydf7kp9yh5gpjnq4cgi76j582a0q6dxcbgkraxpkml0d8n2xd";
+    sha256 = "0hw8bd7dj71m1ml9zvfab2j87jacs542z7a89nziapckmg6kmh6f";
   };
 
   patches = [ ./0001-attempt-to-modprobe-config-before-checking-kernel.patch ];
diff --git a/nixpkgs/pkgs/os-specific/linux/conky/default.nix b/nixpkgs/pkgs/os-specific/linux/conky/default.nix
index 14f17da55a77..ee67140cd861 100644
--- a/nixpkgs/pkgs/os-specific/linux/conky/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/conky/default.nix
@@ -68,13 +68,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "conky";
-  version = "1.11.5";
+  version = "1.11.6";
 
   src = fetchFromGitHub {
     owner = "brndnmtthws";
     repo = "conky";
     rev = "v${version}";
-    sha256 = "1a75ss48mn9pknrxy33dh5rdgm67a5kpddsyqfhlcn1761kfzzyp";
+    sha256 = "0y2g66fjqp2hdk0y1h4ijxhnv34j16gizvxpmbigwh4n6zijcm6v";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/conspy/default.nix b/nixpkgs/pkgs/os-specific/linux/conspy/default.nix
index 32905b8ec39f..a52b87385706 100644
--- a/nixpkgs/pkgs/os-specific/linux/conspy/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/conspy/default.nix
@@ -3,11 +3,11 @@ let
   s = # Generated upstream information
   rec {
     baseName="conspy";
-    version="1.14";
+    version="1.16";
     name="${baseName}-${version}";
-    hash="069k26xpzsvrn3197ix5yd294zvz03zi2xqj4fip6rlsw74habsf";
-    url="mirror://sourceforge/project/conspy/conspy-1.14-1/conspy-1.14.tar.gz";
-    sha256="069k26xpzsvrn3197ix5yd294zvz03zi2xqj4fip6rlsw74habsf";
+    hash="02andak806vd04bgjlr0y0d2ddx7cazyf8nvca80vlh8x94gcppf";
+    url="mirror://sourceforge/project/conspy/conspy-1.16-1/conspy-1.16.tar.gz";
+    sha256="02andak806vd04bgjlr0y0d2ddx7cazyf8nvca80vlh8x94gcppf";
   };
   buildInputs = [
     autoconf automake ncurses
diff --git a/nixpkgs/pkgs/os-specific/linux/cpuid/default.nix b/nixpkgs/pkgs/os-specific/linux/cpuid/default.nix
new file mode 100644
index 000000000000..df0017eadc1f
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/cpuid/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, perl }:
+
+stdenv.mkDerivation rec {
+  pname = "cpuid";
+  version = "20200427";
+
+  src = fetchurl {
+    name = "${pname}-${version}.src.tar.gz";
+    url = "http://etallen.com/cpuid/${pname}-${version}.src.tar.gz";
+    sha256 = "1m31238z2ya8f8pzpyklwp0ksf5xicqrw1z941hhhx913wzldaf1";
+  };
+
+  # For pod2man during the build process.
+  nativeBuildInputs = [ perl ];
+
+  # As runtime dependency for cpuinfo2cpuid.
+  buildInputs = [ perl ];
+
+  # The Makefile hardcodes $(BUILDROOT)/usr as installation
+  # destination. Just nuke all mentions of /usr to get the right
+  # installation location.
+  patchPhase = ''
+    sed -i -e 's,/usr/,/,' Makefile
+  '';
+
+  installPhase = ''
+    make install BUILDROOT=$out
+
+    if [ ! -x $out/bin/cpuid ]; then
+      echo Failed to properly patch Makefile.
+      exit 1
+    fi
+  '';
+
+  meta = {
+    description = "Linux tool to dump x86 CPUID information about the CPU";
+    longDescription = ''
+      cpuid dumps detailed information about the CPU(s) gathered from the CPUID
+      instruction, and also determines the exact model of CPU(s). It supports
+      Intel, AMD, VIA, Hygon, and Zhaoxin CPUs, as well as older Transmeta,
+      Cyrix, UMC, NexGen, Rise, and SiS CPUs.
+    '';
+
+    platforms = [ "i686-linux" "x86_64-linux" ];
+    license = stdenv.lib.licenses.gpl2;
+    homepage = "http://etallen.com/cpuid.html";
+    maintainers = with stdenv.lib.maintainers; [ blitz ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/cramfsprogs/default.nix b/nixpkgs/pkgs/os-specific/linux/cramfsprogs/default.nix
new file mode 100644
index 000000000000..8633823ab5c5
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/cramfsprogs/default.nix
@@ -0,0 +1,32 @@
+{ stdenv
+, fetchurl
+, zlib
+}:
+
+stdenv.mkDerivation rec {
+  pname = "cramfsprogs";
+  version = "1.1";
+
+  src = fetchurl {
+    url = "mirror://debian/pool/main/c/cramfs/cramfs_${version}.orig.tar.gz";
+    sha256 = "0s13sabykbkbp0pcw8clxddwzxckyq7ywm2ial343ip7qjiaqg0k";
+  };
+
+  # CramFs is unmaintained upstream: https://tracker.debian.org/pkg/cramfs.
+  # So patch the "missing include" bug ourselves.
+  patches = [ ./include-sysmacros.patch ];
+
+  installPhase = ''
+    install --target $out/bin -D cramfsck mkcramfs
+  '';
+
+  buildInputs = [ zlib ];
+
+  meta = with stdenv.lib; {
+    description = "Tools to create, check, and extract content of CramFs images";
+    homepage = "https://packages.debian.org/jessie/cramfsprogs";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ pamplemousse ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/cramfsprogs/include-sysmacros.patch b/nixpkgs/pkgs/os-specific/linux/cramfsprogs/include-sysmacros.patch
new file mode 100644
index 000000000000..7c115a66ac90
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/cramfsprogs/include-sysmacros.patch
@@ -0,0 +1,12 @@
+diff --git a/mkcramfs.c b/mkcramfs.c
+index a2ef018959d..bec83c112d1 100644
+--- a/mkcramfs.c
++++ b/mkcramfs.c
+@@ -22,6 +22,7 @@
+  * If you change the disk format of cramfs, please update fs/cramfs/README.
+  */
+ 
++#include <sys/sysmacros.h>
+ #include <sys/types.h>
+ #include <stdio.h>
+ #include <sys/stat.h>
diff --git a/nixpkgs/pkgs/os-specific/linux/cramfsswap/builder.sh b/nixpkgs/pkgs/os-specific/linux/cramfsswap/builder.sh
deleted file mode 100644
index 51a5b11dda69..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/cramfsswap/builder.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-source $stdenv/setup
-
-export DESTDIR=$out
-mkdir -p $out/usr/bin
-
-genericBuild
diff --git a/nixpkgs/pkgs/os-specific/linux/cramfsswap/default.nix b/nixpkgs/pkgs/os-specific/linux/cramfsswap/default.nix
index eb04761eef47..afb38364c4e6 100644
--- a/nixpkgs/pkgs/os-specific/linux/cramfsswap/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/cramfsswap/default.nix
@@ -1,17 +1,22 @@
 {stdenv, fetchurl, zlib}:
 
-stdenv.mkDerivation {
-  name = "cramfsswap-1.4.1";
-  builder = ./builder.sh;
+stdenv.mkDerivation rec {
+  pname = "cramfsswap";
+  version = "1.4.1";
+
   src = fetchurl {
-    url = "mirror://debian/pool/main/c/cramfsswap/cramfsswap_1.4.1.tar.gz";
+    url = "mirror://debian/pool/main/c/cramfsswap/${pname}_${version}.tar.gz";
     sha256 = "0c6lbx1inkbcvvhh3y6fvfaq3w7d1zv7psgpjs5f3zjk1jysi9qd";
   };
 
   buildInputs = [zlib];
 
+  installPhase = ''
+    install --target $out/bin -D cramfsswap
+  '';
+
   meta = with stdenv.lib; {
-    description = "swap endianess of a cram filesystem (cramfs)";
+    description = "Swap endianess of a cram filesystem (cramfs)";
     homepage = "https://packages.debian.org/sid/utils/cramfsswap";
     license = licenses.gpl2;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/os-specific/linux/crda/default.nix b/nixpkgs/pkgs/os-specific/linux/crda/default.nix
index 5811e9358b01..979b7cf1deb3 100644
--- a/nixpkgs/pkgs/os-specific/linux/crda/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/crda/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, fetchpatch, libgcrypt, libnl, pkgconfig, python3, wireless-regdb }:
+{ stdenv, fetchurl, fetchpatch, libgcrypt, libnl, pkgconfig, python3Packages, wireless-regdb }:
 
 stdenv.mkDerivation rec {
   pname = "crda";
@@ -25,13 +25,14 @@ stdenv.mkDerivation rec {
   buildInputs = [ libgcrypt libnl ];
   nativeBuildInputs = [
     pkgconfig
-    python3
-    python3.pkgs.pycrypto
+    python3Packages.pycrypto
   ];
 
   postPatch = ''
     patchShebangs utils/
-    substituteInPlace Makefile --replace ldconfig true
+    substituteInPlace Makefile \
+      --replace ldconfig true \
+      --replace pkg-config $PKG_CONFIG
     sed -i crda.c \
       -e "/\/usr\/.*\/regulatory.bin/d" \
       -e "s|/lib/crda|${wireless-regdb}/lib/crda|g"
diff --git a/nixpkgs/pkgs/os-specific/linux/cryptodev/default.nix b/nixpkgs/pkgs/os-specific/linux/cryptodev/default.nix
index 321f00b0ef2d..79132852d239 100644
--- a/nixpkgs/pkgs/os-specific/linux/cryptodev/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/cryptodev/default.nix
@@ -1,14 +1,14 @@
-{ fetchurl, stdenv, kernel ? false }:
+{ fetchFromGitHub, stdenv, kernel ? false }:
 
 stdenv.mkDerivation rec {
-  pname = "cryptodev-linux-1.9";
+  pname = "cryptodev-linux-1.11";
   name = "${pname}-${kernel.version}";
 
-  src = fetchurl {
-    urls = [
-      "http://nwl.cc/pub/cryptodev-linux/${pname}.tar.gz"
-    ];
-    sha256 = "0l3r8s71vkd0s2h01r7fhqnc3j8cqw4msibrdxvps9hfnd4hnk4z";
+  src = fetchFromGitHub {
+    owner = "cryptodev-linux";
+    repo = "cryptodev-linux";
+    rev = pname;
+    sha256 = "1ky850qiyacq8p3lng7n3w6h3x2clqrz4lkv2cv3psy92mg9pvc9";
   };
 
   hardeningDisable = [ "pic" ];
@@ -22,6 +22,5 @@ stdenv.mkDerivation rec {
     homepage = "http://cryptodev-linux.org/";
     license = stdenv.lib.licenses.gpl2Plus;
     platforms = stdenv.lib.platforms.linux;
-    broken = !stdenv.lib.versionOlder kernel.version "4.13";
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/cryptsetup/default.nix b/nixpkgs/pkgs/os-specific/linux/cryptsetup/default.nix
index 06be9f3432e7..caa22b4df3ec 100644
--- a/nixpkgs/pkgs/os-specific/linux/cryptsetup/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/cryptsetup/default.nix
@@ -1,17 +1,15 @@
 { stdenv, fetchurl, lvm2, json_c
-, openssl, libuuid, pkgconfig, popt
-, enablePython ? false, python2 ? null }:
-
-assert enablePython -> python2 != null;
+, openssl, libuuid, pkgconfig, popt }:
 
 stdenv.mkDerivation rec {
-  name = "cryptsetup-2.1.0";
+  pname = "cryptsetup";
+  version = "2.3.3";
 
   outputs = [ "out" "dev" "man" ];
 
   src = fetchurl {
-    url = "mirror://kernel/linux/utils/cryptsetup/v2.1/${name}.tar.xz";
-    sha256 = "15y8n547garz0x5kqv09gscdsrz0c0y1y6c5cp8pccwg3xsb5vm3";
+    url = "mirror://kernel/linux/utils/cryptsetup/v2.3/${pname}-${version}.tar.xz";
+    sha256 = "1pw2bq4nv2z3xyycckxkbp7dp9kkp2n6bspna3plryg277z4zjiv";
   };
 
   # Disable 4 test cases that fail in a sandbox
@@ -19,9 +17,6 @@ stdenv.mkDerivation rec {
 
   postPatch = ''
     patchShebangs tests
-    ${stdenv.lib.optionalString enablePython ''
-      patchShebangs ./python/pycryptsetup-test.py
-    ''}
 
     # O_DIRECT is filesystem dependent and fails in a sandbox (on tmpfs)
     # and on several filesystem types (btrfs, zfs) without sandboxing.
@@ -34,11 +29,10 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--enable-cryptsetup-reencrypt"
     "--with-crypto_backend=openssl"
-  ] ++ stdenv.lib.optional enablePython "--enable-python";
+  ];
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ lvm2 json_c openssl libuuid popt ]
-    ++ stdenv.lib.optional enablePython python2;
+  buildInputs = [ lvm2 json_c openssl libuuid popt ];
 
   doCheck = true;
 
diff --git a/nixpkgs/pkgs/os-specific/linux/deepin-anything/default.nix b/nixpkgs/pkgs/os-specific/linux/deepin-anything/default.nix
deleted file mode 100644
index 4139cc153cdd..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/deepin-anything/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ stdenv, deepin, kernel }:
-
-stdenv.mkDerivation {
-  pname = "deepin-anything-module";
-  version = "${deepin.deepin-anything.version}-${kernel.version}";
-  src = deepin.deepin-anything.modsrc;
-
-  nativeBuildInputs = kernel.moduleBuildDependencies;
-
-  buildPhase = ''
-    make -C src/deepin-anything-0.0 kdir=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build
-  '';
-
-  installPhase = ''
-     install -m 644 -D -t $out/lib/modules/${kernel.modDirVersion}/extra src/deepin-anything-0.0/*.ko
-  '';
-
-  meta = deepin.deepin-anything.meta // {
-    description = deepin.deepin-anything.meta.description + " (kernel modules)";
-    badPlatforms = [ "aarch64-linux" ];  # the kernel module is not building
-  };
-}
diff --git a/nixpkgs/pkgs/os-specific/linux/device-tree/default.nix b/nixpkgs/pkgs/os-specific/linux/device-tree/default.nix
index 13d819a08a5b..0599289ab726 100644
--- a/nixpkgs/pkgs/os-specific/linux/device-tree/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/device-tree/default.nix
@@ -1,16 +1,31 @@
 { stdenvNoCC, dtc, findutils }:
 
 with stdenvNoCC.lib; {
-  applyOverlays = (base: overlays: stdenvNoCC.mkDerivation {
+  applyOverlays = (base: overlays': stdenvNoCC.mkDerivation {
     name = "device-tree-overlays";
     nativeBuildInputs = [ dtc findutils ];
     buildCommand = let
-      quotedDtbos = concatMapStringsSep " " (o: "\"${toString o}\"") (toList overlays);
+      overlays = toList overlays';
     in ''
-      for dtb in $(find ${base} -name "*.dtb" ); do
-        outDtb=$out/$(realpath --relative-to "${base}" "$dtb")
-        mkdir -p "$(dirname "$outDtb")"
-        fdtoverlay -o "$outDtb" -i "$dtb" ${quotedDtbos};
+      mkdir -p $out
+      cd ${base}
+      find . -type f -name '*.dtb' -print0 \
+        | xargs -0 cp -v --no-preserve=mode --target-directory $out --parents
+
+      for dtb in $(find $out -type f -name '*.dtb'); do
+        dtbCompat="$( fdtget -t s $dtb / compatible )"
+
+        ${flip (concatMapStringsSep "\n") overlays (o: ''
+        overlayCompat="$( fdtget -t s ${o.dtboFile} / compatible )"
+        # overlayCompat in dtbCompat
+        if [[ "$dtbCompat" =~ "$overlayCompat" ]]; then
+          echo "Applying overlay ${o.name} to $( basename $dtb )"
+          mv $dtb{,.in}
+          fdtoverlay -o "$dtb" -i "$dtb.in" ${o.dtboFile};
+          rm $dtb.in
+        fi
+        '')}
+
       done
     '';
   });
diff --git a/nixpkgs/pkgs/os-specific/linux/device-tree/raspberrypi.nix b/nixpkgs/pkgs/os-specific/linux/device-tree/raspberrypi.nix
index b5886f6bd116..5a0d5710392b 100644
--- a/nixpkgs/pkgs/os-specific/linux/device-tree/raspberrypi.nix
+++ b/nixpkgs/pkgs/os-specific/linux/device-tree/raspberrypi.nix
@@ -31,6 +31,7 @@ stdenvNoCC.mkDerivation {
     overlays = "${raspberrypifw}/share/raspberrypi/boot/overlays";
   };
   meta = with stdenvNoCC.lib; {
-    platforms = [ "armv6l-linux" "armv7l-linux" "aarch64-linux" ];
+    inherit (raspberrypifw.meta) platforms homepage license;
+    description = "DTBs for the Raspberry Pi";
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/displaylink/default.nix b/nixpkgs/pkgs/os-specific/linux/displaylink/default.nix
index 642d05e4beb6..3db9a7d3005c 100644
--- a/nixpkgs/pkgs/os-specific/linux/displaylink/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/displaylink/default.nix
@@ -11,17 +11,17 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "displaylink";
-  version = "5.2.14";
+  version = "5.3.1.34";
 
   src = requireFile rec {
     name = "displaylink.zip";
-    sha256 = "03b176y95f04rg3lcnjps9llsjbvd8yksh1fpvjwaciz48mnxh2i";
+    sha256 = "1c1kbjgpb71f73qnyl44rvwi6l4ivddq789rwvvh0ahw2jm324hy";
     message = ''
       In order to install the DisplayLink drivers, you must first
       comply with DisplayLink's EULA and download the binaries and
       sources from here:
 
-      http://www.displaylink.com/downloads/file?id=1369
+      https://www.displaylink.com/downloads/file?id=1576
 
       Once you have downloaded the file, please use the following
       commands and re-run the installation:
@@ -67,7 +67,7 @@ in stdenv.mkDerivation rec {
 
   meta = with stdenv.lib; {
     description = "DisplayLink DL-5xxx, DL-41xx and DL-3x00 Driver for Linux";
-    maintainers = with maintainers; [ nshalman abbradar peterhoeg ];
+    maintainers = with maintainers; [ nshalman abbradar peterhoeg eyjhb ];
     platforms = [ "x86_64-linux" "i686-linux" ];
     license = licenses.unfree;
     homepage = "https://www.displaylink.com/";
diff --git a/nixpkgs/pkgs/os-specific/linux/dmidecode/default.nix b/nixpkgs/pkgs/os-specific/linux/dmidecode/default.nix
index 97ad75851a6a..7d0990d9f81a 100644
--- a/nixpkgs/pkgs/os-specific/linux/dmidecode/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/dmidecode/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, fetchpatch }:
 
 stdenv.mkDerivation rec {
   name = "dmidecode-3.2";
@@ -8,6 +8,50 @@ stdenv.mkDerivation rec {
     sha256 = "1pcfhcgs2ifdjwp7amnsr3lq95pgxpr150bjhdinvl505px0cw07";
   };
 
+  patches = [
+    # suggested patches for 3.2 according to https://www.nongnu.org/dmidecode/
+    (fetchpatch {
+      name = "0001-fix_redfish_hostname_print_length.patch";
+      url = "https://git.savannah.gnu.org/cgit/dmidecode.git/patch/?id=fde47bb227b8fa817c88d7e10a8eb771c46de1df";
+      sha256 = "133nd0c72p68hnqs5m714167761r1pp6bd3kgbsrsrwdx40jlc3m";
+    })
+    (fetchpatch {
+      name = "0002-add_logical_non-volatile_device_to_memory_device_types.patch";
+      url = "https://git.savannah.gnu.org/cgit/dmidecode.git/patch/?id=74dfb854b8199ddb0a27e89296fa565f4706cb9d";
+      sha256 = "0wdpmlcwmqdyyrsmyis8jb7cx3q6fnqpdpc5xly663dj841jcvwh";
+    })
+    (fetchpatch {
+      name = "0003-only-scan-devmem-for-entry-point-on-x86.patch";
+      url = "https://git.savannah.gnu.org/cgit/dmidecode.git/patch/?id=e12ec26e19e02281d3e7258c3aabb88a5cf5ec1d";
+      sha256 = "1y2858n98bfa49syjinx911vza6mm7aa6xalvzjgdlyirhccs30i";
+    })
+    (fetchpatch {
+      name = "0004-fix_formatting_of_tpm_table_output.patch";
+      url = "https://git.savannah.gnu.org/cgit/dmidecode.git/patch/?id=1d0db85949a5bdd96375f6131d393a11204302a6";
+      sha256 = "11s8jciw7xf2668v79qcq2c9w2gwvm3dkcik8dl9v74p654y1nr8";
+    })
+    (fetchpatch {
+      name = "0005-fix_system-slot_information_for_pcie_ssd.patch";
+      url = "https://git.savannah.gnu.org/cgit/dmidecode.git/patch/?id=fd08479625b5845e4d725ab628628f7ebfccc407";
+      sha256 = "07l61wvsw1d8g14zzf6zm7l0ri9kkqz8j5n4h116qwhg1p2k49y4";
+    })
+    (fetchpatch {
+      name = "0006-print_type_33_name_unconditionally.patch";
+      url = "https://git.savannah.gnu.org/cgit/dmidecode.git/patch/?id=65438a7ec0f4cddccf810136da6f280bd148af71";
+      sha256 = "0gqz576ccxys0c8217spf1qmw9lxi9xalw85jjqwsi2bj1k6vy4n";
+    })
+    (fetchpatch {
+      name = "0007-dont_choke_on_invalid_processor_voltage.patch";
+      url = "https://git.savannah.gnu.org/cgit/dmidecode.git/patch/?id=5bb7eb173b72256f70c6b3f3916d7a444be93340";
+      sha256 = "1dkg4lq9kn2g1w5raz1gssn6zqk078zjqbnh9i32f822f727syhp";
+    })
+    (fetchpatch {
+      name = "0008-fix_the_alignment_of_type_25_name.patch";
+      url = "https://git.savannah.gnu.org/cgit/dmidecode.git/patch/?id=557c3c373a9992d45d4358a6a2ccf53b03276f39";
+      sha256 = "18hc91pk7civyqrlilg3kn2nmp2warhh49xlbzrwqi7hgipyf12z";
+    })
+  ];
+
   makeFlags = [ "prefix=$(out)" ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/os-specific/linux/dpdk/default.nix b/nixpkgs/pkgs/os-specific/linux/dpdk/default.nix
index 8ad703bdd4b6..aacbc3cdfbe2 100644
--- a/nixpkgs/pkgs/os-specific/linux/dpdk/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/dpdk/default.nix
@@ -11,11 +11,11 @@ let
 
 in stdenv.mkDerivation rec {
   name = "dpdk-${version}" + lib.optionalString mod "-${kernel.version}";
-  version = "19.11";
+  version = "20.05";
 
   src = fetchurl {
     url = "https://fast.dpdk.org/rel/dpdk-${version}.tar.xz";
-    sha256 = "1aqjn6bm9miv3v2rbqi1rh1c19wa8nip9fvnqaqpnrs3i2b36wa6";
+    sha256 = "0h0xv2zwb91b9n29afg5ihn06a8q28in64hag2f112kc19f79jj8";
   };
 
   nativeBuildInputs = [
@@ -38,7 +38,7 @@ in stdenv.mkDerivation rec {
   ] ++ lib.optionals mod kernel.moduleBuildDependencies;
 
   postPatch = ''
-    patchShebangs config/arm
+    patchShebangs config/arm buildtools
   '';
 
   mesonFlags = [
diff --git a/nixpkgs/pkgs/os-specific/linux/e1000e/default.nix b/nixpkgs/pkgs/os-specific/linux/e1000e/default.nix
index ea17c287a292..d5d6697a01e3 100644
--- a/nixpkgs/pkgs/os-specific/linux/e1000e/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/e1000e/default.nix
@@ -4,11 +4,11 @@ assert stdenv.lib.versionOlder kernel.version "4.10";
 
 stdenv.mkDerivation rec {
   name = "e1000e-${version}-${kernel.version}";
-  version = "3.3.5.3";
+  version = "3.8.4";
 
   src = fetchurl {
     url = "mirror://sourceforge/e1000/e1000e-${version}.tar.gz";
-    sha256 = "1ajz3vdnf1y307k585w95r6jlh4ah8d74bq36gdkjl1z5hgiqi9q";
+    sha256 = "1q8dbqh14c7r15q6k6iv5k0d6xpi74i71d5r54py60gr099m2ha4";
   };
 
   hardeningDisable = [ "pic" ];
@@ -16,7 +16,8 @@ stdenv.mkDerivation rec {
   configurePhase = ''
     cd src
     kernel_version=${kernel.modDirVersion}
-    sed -i -e 's|/lib/modules|${kernel.dev}/lib/modules|' Makefile
+    substituteInPlace common.mk \
+      --replace "/lib/modules" "${kernel.dev}/lib/modules"
     export makeFlags="BUILD_KERNEL=$kernel_version"
   '';
 
diff --git a/nixpkgs/pkgs/os-specific/linux/earlyoom/default.nix b/nixpkgs/pkgs/os-specific/linux/earlyoom/default.nix
index 8233c065c2b4..575da8aca732 100644
--- a/nixpkgs/pkgs/os-specific/linux/earlyoom/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/earlyoom/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "earlyoom";
-  version = "1.6";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "rfjakob";
     repo = "earlyoom";
     rev = "v${version}";
-    sha256 = "0g2bjsvnqq5h4g1k3a0x6ixb334wpzbm2gafl78b6ic6j45smwcs";
+    sha256 = "1cn0bgbgiq69i8mk8zxly1f7j01afm82g672qzccz6swsi2637j4";
   };
 
   nativeBuildInputs = stdenv.lib.optionals withManpage [ pandoc installShellFiles ];
diff --git a/nixpkgs/pkgs/os-specific/linux/ell/default.nix b/nixpkgs/pkgs/os-specific/linux/ell/default.nix
index cb971d452d61..9faeb831b4b2 100644
--- a/nixpkgs/pkgs/os-specific/linux/ell/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ell/default.nix
@@ -7,14 +7,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ell";
-  version = "0.31";
+  version = "0.33";
 
   outputs = [ "out" "dev" ];
 
   src = fetchgit {
      url = "https://git.kernel.org/pub/scm/libs/${pname}/${pname}.git";
      rev = version;
-     sha256 = "1qlpc906xd78fzxvvj2kxi3aikgnw0c0h3x620s131apax4qrnqa";
+     sha256 = "0li788l57m2ic1i33fag4nnblqghbwqjyqkgppi8s2sifcvswfbw";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/os-specific/linux/evdi/default.nix b/nixpkgs/pkgs/os-specific/linux/evdi/default.nix
index 2a6ce13c1628..119ba22ca264 100644
--- a/nixpkgs/pkgs/os-specific/linux/evdi/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/evdi/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "evdi";
-  version = "unstable-20200222";
+  version = "unstable-20200416";
 
   src = fetchFromGitHub {
     owner = "DisplayLink";
     repo = pname;
-    rev = "bb3038c1b10aae99feddc7354c74a5bf22341246";
-    sha256 = "058f8gdma6fndg2w512l08mwl79h4hffacx4rnfkjxrb2ard3gd1";
+    rev = "dc595db636845aef39490496bc075f6bf067106c";
+    sha256 = "1yrny6jj9403z0rxbd3nxf49xc4w0rfpl7xsq03pq32pb3vlbqw7";
   };
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
@@ -24,11 +24,12 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     install -Dm755 module/evdi.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/gpu/drm/evdi/evdi.ko
-    install -Dm755 library/libevdi.so.1.6.4 $out/lib/libevdi.so
+    install -Dm755 library/libevdi.so $out/lib/libevdi.so
   '';
 
   meta = with stdenv.lib; {
     description = "Extensible Virtual Display Interface";
+    maintainers = with maintainers; [ eyjhb ];
     platforms = platforms.linux;
     license = with licenses; [ lgpl21 gpl2 ];
     homepage = "https://www.displaylink.com/";
diff --git a/nixpkgs/pkgs/os-specific/linux/eventstat/default.nix b/nixpkgs/pkgs/os-specific/linux/eventstat/default.nix
index 6dfaa6ab38bb..ca4984257212 100644
--- a/nixpkgs/pkgs/os-specific/linux/eventstat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/eventstat/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "eventstat";
-  version = "0.04.09";
+  version = "0.04.10";
   src = fetchzip {
     url = "https://kernel.ubuntu.com/~cking/tarballs/eventstat/eventstat-${version}.tar.gz";
-    sha256 = "1b3m58mak62ym2amnmk62c2d6fypk30fw6jsmirh1qz7dwix4bl5";
+    sha256 = "0rmg49m56qxji7gwci03pkk4f4hnaq1n2x1348dqkaf5zs5nhi6b";
   };
   buildInputs = [ ncurses ];
   installFlags = [ "DESTDIR=$(out)" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/exfat/default.nix b/nixpkgs/pkgs/os-specific/linux/exfat/default.nix
index 59f9c709e5fa..5e212825bab3 100644
--- a/nixpkgs/pkgs/os-specific/linux/exfat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/exfat/default.nix
@@ -5,14 +5,19 @@
 assert lib.versionAtLeast kernel.version  "4.2" || lib.versionOlder kernel.version "4.0";
 
 stdenv.mkDerivation rec {
+  # linux kernel above 5.7 comes with its own exfat implementation https://github.com/arter97/exfat-linux/issues/27
+  # Assertion moved here due to some tests unintenionally triggering it,
+  # e.g. nixosTests.kernel-latest; it's unclear how/why so far.
+  assertion = assert lib.versionOlder kernel.version "5.8"; null;
+
   name = "exfat-nofuse-${version}-${kernel.version}";
-  version = "2019-09-06";
+  version = "2020-04-15";
 
   src = fetchFromGitHub {
-    owner = "AdrianBan";
+    owner = "barrybingo";
     repo = "exfat-nofuse";
-    rev = "5536f067373c196f152061f5000fe0032dc07c48";
-    sha256 = "00mhadsv2iw8z00a6170hwbvk3afx484nn3irmd5f5kmhs34sw7k";
+    rev = "297a5739cd4a942a1d814d05a9cd9b542e7b8fc8";
+    sha256 = "14jahy7n6pr482fjfrlf9ck3f2rkr5ds0n5r85xdfsla37ria26d";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/ffado/default.nix b/nixpkgs/pkgs/os-specific/linux/ffado/default.nix
index e814091d59e2..b93caccc7574 100644
--- a/nixpkgs/pkgs/os-specific/linux/ffado/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/ffado/default.nix
@@ -13,7 +13,7 @@
 , libxmlxx3
 , pkgconfig
 , python3
-, scons
+, sconsPackages
 , which
 , wrapQtAppsHook
 }:
@@ -45,7 +45,7 @@ mkDerivation rec {
 
   nativeBuildInputs = [
     desktop-file-utils
-    scons.py2
+    sconsPackages.scons_3_1_2
     pkgconfig
     which
     python
diff --git a/nixpkgs/pkgs/os-specific/linux/firejail/default.nix b/nixpkgs/pkgs/os-specific/linux/firejail/default.nix
index 8c7a109cb76b..272b8612d7a7 100644
--- a/nixpkgs/pkgs/os-specific/linux/firejail/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/firejail/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, which}:
+{stdenv, fetchurl, fetchpatch, which, nixosTests}:
 let
   s = # Generated upstream information
   rec {
@@ -20,6 +20,19 @@ stdenv.mkDerivation {
     name = "${s.name}.tar.bz2";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2020-17367.patch";
+      url = "https://github.com/netblue30/firejail/commit/2c734d6350ad321fccbefc5ef0382199ac331b37.patch";
+      sha256 = "1gxz4jxp80gxnn46195qxcpmikwqab9d0ylj9zkm62lycp84ij6n";
+    })
+    (fetchpatch {
+      name = "CVE-2020-17368.patch";
+      url = "https://github.com/netblue30/firejail/commit/34193604fed04cad2b7b6b0f1a3a0428afd9ed5b.patch";
+      sha256 = "0n4ch3qykxx870201l8lz81f7h84vk93pzz77f5cjbd30cxnbddl";
+    })
+  ];
+
   prePatch = ''
     # Allow whitelisting ~/.nix-profile
     substituteInPlace etc/firejail.config --replace \
@@ -63,6 +76,8 @@ stdenv.mkDerivation {
   # bash: src/fsec-optimize/fsec-optimize: No such file or directory
   enableParallelBuilding = false;
 
+  passthru.tests = nixosTests.firejail;
+
   meta = {
     inherit (s) version;
     description = ''Namespace-based sandboxing tool for Linux'';
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/firmware-manager/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/firmware-manager/default.nix
new file mode 100644
index 000000000000..e98de6bbe9e8
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/firmware-manager/default.nix
@@ -0,0 +1,38 @@
+{ rustPlatform, lib, fetchFromGitHub, lzma, pkgconfig, openssl, dbus, glib, udev, cairo, pango, atk, gdk-pixbuf, gtk3, wrapGAppsHook }:
+rustPlatform.buildRustPackage rec {
+  pname = "firmware-manager";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "pop-os";
+    repo = pname;
+    rev = version;
+    sha256 = "0x9604jsflqxvbkfp139mzjicpyx8v21139jj8bp88c14ngvmdlw";
+  };
+
+  nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
+
+  buildInputs = [ lzma openssl dbus glib udev cairo pango atk gdk-pixbuf gtk3 ];
+
+  depsExtraArgs.postPatch = "make prefix='$(out)' toml-gen";
+
+  postPatch = ''
+    sed -i 's|etc|$(prefix)/etc|' Makefile
+  '';
+
+  buildPhase = "make prefix='$(out)'";
+
+  installPhase = "make prefix='$(out)' install";
+
+  cargoSha256 = "0byc0pqa1w2qnfrx3psrzdq1c8qjslbmzxg872b9v6fr5d4c9cvg";
+
+  doCheck = false;
+
+  meta = {
+    description = "Graphical frontend for firmware management";
+    homepage = "https://github.com/pop-os/firmware-manager";
+    license = lib.licenses.gpl3;
+    maintainers = [ lib.maintainers.shlevy ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/fwupd/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/fwupd/default.nix
index af9237d1d833..d502d049ace4 100644
--- a/nixpkgs/pkgs/os-specific/linux/firmware/fwupd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/fwupd/default.nix
@@ -5,9 +5,9 @@
 , fetchpatch
 , substituteAll
 , gtk-doc
-, pkgconfig
+, pkg-config
 , gobject-introspection
-, intltool
+, gettext
 , libgudev
 , polkit
 , libxmlb
@@ -23,13 +23,12 @@
 , libsmbios
 , efivar
 , gnu-efi
-, libyaml
 , valgrind
 , meson
 , libuuid
 , colord
 , docbook_xml_dtd_43
-, docbook_xsl
+, docbook-xsl-nons
 , ninja
 , gcab
 , python3
@@ -67,10 +66,6 @@ let
     requests
   ]);
 
-  fontsConf = makeFontsConf {
-    fontDirectories = [ freefont_ttf ];
-  };
-
   isx86 = stdenv.isx86_64 || stdenv.isi686;
 
   # Dell isn't supported on Aarch64
@@ -93,30 +88,50 @@ let
 
   self = stdenv.mkDerivation rec {
     pname = "fwupd";
-    version = "1.4.4";
-
-    src = fetchurl {
-      url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz";
-      sha256 = "03yn96kxs53vxcbza17y99rdhbjlybv44gkc90vaj6301grxahnp";
-    };
+    version = "1.4.6";
 
     # libfwupd goes to lib
     # daemon, plug-ins and libfwupdplugin go to out
     # CLI programs go to out
     outputs = [ "out" "lib" "dev" "devdoc" "man" "installedTests" ];
 
+    src = fetchurl {
+      url = "https://people.freedesktop.org/~hughsient/releases/fwupd-${version}.tar.xz";
+      sha256 = "AKG5stioIveQc7ooYb/2UoOaBzbPUFzYk8tZK0rzvK0=";
+    };
+
+    patches = [
+      # Do not try to create useless paths in /var.
+      ./fix-paths.patch
+
+      # Allow installing
+      ./add-option-for-installation-sysconfdir.patch
+
+      # Install plug-ins and libfwupdplugin to out,
+      # they are not really part of the library.
+      ./install-fwupdplugin-to-out.patch
+
+      # Installed tests are installed to different output
+      # we also cannot have fwupd-tests.conf in $out/etc since it would form a cycle.
+      (substituteAll {
+        src = ./installed-tests-path.patch;
+        # Needs a different set of modules than po/make-images.
+        inherit installedTestsPython;
+      })
+    ];
+
     nativeBuildInputs = [
       meson
       ninja
       gtk-doc
-      pkgconfig
+      pkg-config
       gobject-introspection
-      intltool
+      gettext
       shared-mime-info
       valgrind
       gcab
       docbook_xml_dtd_43
-      docbook_xsl
+      docbook-xsl-nons
       help2man
       libxslt
       python
@@ -133,7 +148,6 @@ let
       libsoup
       elfutils
       gnu-efi
-      libyaml
       libgudev
       colord
       libjcat
@@ -152,50 +166,6 @@ let
       libsmbios
     ];
 
-    patches = [
-      ./fix-paths.patch
-      ./add-option-for-installation-sysconfdir.patch
-
-      # Install plug-ins and libfwupdplugin to out,
-      # they are not really part of the library.
-      ./install-fwupdplugin-to-out.patch
-
-      # Installed tests are installed to different output
-      # we also cannot have fwupd-tests.conf in $out/etc since it would form a cycle.
-      (substituteAll {
-        src = ./installed-tests-path.patch;
-        # Needs a different set of modules than po/make-images.
-        inherit installedTestsPython;
-      })
-    ];
-
-    postPatch = ''
-      patchShebangs \
-        contrib/get-version.py \
-        contrib/generate-version-script.py \
-        meson_post_install.sh \
-        po/make-images \
-        po/make-images.sh \
-        po/test-deps
-    '';
-
-    # /etc/os-release not available in sandbox
-    # doCheck = true;
-
-    preFixup = let
-      binPath = [
-        efibootmgr
-        bubblewrap
-        tpm2-tools
-      ] ++ stdenv.lib.optional haveFlashrom flashrom;
-    in ''
-      gappsWrapperArgs+=(
-        --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
-        # See programs reached with fu_common_find_program_in_path in source
-        --prefix PATH : "${stdenv.lib.makeBinPath binPath}"
-      )
-    '';
-
     mesonFlags = [
       "-Dgtkdoc=true"
       "-Dplugin_dummy=true"
@@ -223,20 +193,57 @@ let
       "-Dplugin_flashrom=true"
     ];
 
-    FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file
+    # TODO: wrapGAppsHook wraps efi capsule even though it is not ELF
+    dontWrapGApps = true;
+
+    # /etc/os-release not available in sandbox
+    # doCheck = true;
+
+    # Environment variables
+
+    # Fontconfig error: Cannot load default config file
+    FONTCONFIG_FILE =
+      let
+        fontsConf = makeFontsConf {
+          fontDirectories = [ freefont_ttf ];
+        };
+      in fontsConf;
 
     # error: “PolicyKit files are missing”
     # https://github.com/NixOS/nixpkgs/pull/67625#issuecomment-525788428
     PKG_CONFIG_POLKIT_GOBJECT_1_ACTIONDIR = "/run/current-system/sw/share/polkit-1/actions";
 
-    # TODO: wrapGAppsHook wraps efi capsule even though it is not elf
-    dontWrapGApps = true;
+    # Phase hooks
+
+    postPatch = ''
+      patchShebangs \
+        contrib/get-version.py \
+        contrib/generate-version-script.py \
+        meson_post_install.sh \
+        po/make-images \
+        po/make-images.sh \
+        po/test-deps
+    '';
 
     preCheck = ''
       addToSearchPath XDG_DATA_DIRS "${shared-mime-info}/share"
     '';
 
-    # so we need to wrap the executables manually
+    preFixup = let
+      binPath = [
+        efibootmgr
+        bubblewrap
+        tpm2-tools
+      ] ++ stdenv.lib.optional haveFlashrom flashrom;
+    in ''
+      gappsWrapperArgs+=(
+        --prefix XDG_DATA_DIRS : "${shared-mime-info}/share"
+        # See programs reached with fu_common_find_program_in_path in source
+        --prefix PATH : "${stdenv.lib.makeBinPath binPath}"
+      )
+    '';
+
+    # Since we had to disable wrapGAppsHook, we need to wrap the executables manually.
     postFixup = ''
       find -L "$out/bin" "$out/libexec" -type f -executable -print0 \
         | while IFS= read -r -d ''' file; do
@@ -307,7 +314,7 @@ let
     meta = with stdenv.lib; {
       homepage = "https://fwupd.org/";
       maintainers = with maintainers; [ jtojnar ];
-      license = [ licenses.gpl2 ];
+      license = licenses.lgpl21Plus;
       platforms = platforms.linux;
     };
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/firmware/system76-firmware/default.nix b/nixpkgs/pkgs/os-specific/linux/firmware/system76-firmware/default.nix
new file mode 100644
index 000000000000..40598abac921
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/firmware/system76-firmware/default.nix
@@ -0,0 +1,39 @@
+{ rustPlatform, lib, fetchFromGitHub, lzma, pkgconfig, openssl, dbus, efibootmgr, makeWrapper }:
+rustPlatform.buildRustPackage rec {
+  pname = "system76-firmware";
+  # Check Makefile when updating, make sure postInstall matches make install
+  version = "1.0.17";
+
+  src = fetchFromGitHub {
+    owner = "pop-os";
+    repo = pname;
+    rev = version;
+    sha256 = "0cnrskfk3sam90lfpgsraqs4bx9yz8rxhwfs8rxdri04lakxgghg";
+  };
+
+  nativeBuildInputs = [ pkgconfig makeWrapper ];
+
+  buildInputs = [ lzma openssl dbus ];
+
+  cargoBuildFlags = [ "--workspace" ];
+
+  cargoSha256 = "06jrmxy68glcmbn9px29wc0s8pqdn26iy4jn3c246dapv1zvbb4s";
+
+  # Purposefully don't install systemd unit file, that's for NixOS
+  postInstall = ''
+    install -D -m -0644 data/system76-firmware-daemon.conf $out/etc/dbus-1/system.d/system76-firmware-daemon.conf
+
+    for bin in $out/bin/system76-firmware-*
+    do
+      wrapProgram $bin --prefix PATH : "${efibootmgr}/bin"
+    done
+  '';
+
+  meta = {
+    description = "Tools for managing firmware updates for system76 devices.";
+    homepage = "https://github.com/pop-os/system76-firmware";
+    license = lib.licenses.gpl3;
+    maintainers = [ lib.maintainers.shlevy ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/fnotifystat/default.nix b/nixpkgs/pkgs/os-specific/linux/fnotifystat/default.nix
index ef247ad956b6..f01c96259a80 100644
--- a/nixpkgs/pkgs/os-specific/linux/fnotifystat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fnotifystat/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "fnotifystat";
-  version = "0.02.05";
+  version = "0.02.06";
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/fnotifystat/fnotifystat-${version}.tar.gz";
-    sha256 = "1b8pxq731sj976m2daf0hnqfaaq688vqnjffinpwh2w9nzzi4gi9";
+    sha256 = "1mr2qzh8r8qq7haz4qgci2k5lcrcy493fm0m3ri40a81vaajfniy";
   };
   installFlags = [ "DESTDIR=$(out)" ];
   postInstall = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/forkstat/default.nix b/nixpkgs/pkgs/os-specific/linux/forkstat/default.nix
index eee4691aeb30..d42091085baf 100644
--- a/nixpkgs/pkgs/os-specific/linux/forkstat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/forkstat/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "forkstat";
-  version = "0.02.14";
+  version = "0.02.15";
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/forkstat/forkstat-${version}.tar.xz";
-    sha256 = "10kibb5psb5gqdmq9lfb7qw566diwg54gdb49b5zd71qwpybk3dl";
+    sha256 = "11dvg7bbklpfywx6i6vb29vvc28pbfk3mff0g18n5imxvzsd7jxs";
   };
   installFlags = [ "DESTDIR=$(out)" ];
   postInstall = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/fscrypt/default.nix b/nixpkgs/pkgs/os-specific/linux/fscrypt/default.nix
index aee406b03f0c..000400e4cdf9 100644
--- a/nixpkgs/pkgs/os-specific/linux/fscrypt/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fscrypt/default.nix
@@ -21,6 +21,8 @@ buildGoModule rec {
 
   vendorSha256 = "0yak221mlyfacvlsaq9g3xiyk94n94vqgkbaji8d21pi8hhr38m6";
 
+  doCheck = false;
+
   nativeBuildInputs = [ gnum4 ];
   buildInputs = [ pam ];
 
@@ -32,10 +34,6 @@ buildGoModule rec {
     make install
   '';
 
-  preFixup = ''
-    remove-references-to -t ${fscrypt-experimental.go} $out/lib/security/pam_fscrypt.so
-  '';
-
   meta = with stdenv.lib; {
     description =
       "A high-level tool for the management of Linux filesystem encryption";
diff --git a/nixpkgs/pkgs/os-specific/linux/fswebcam/default.nix b/nixpkgs/pkgs/os-specific/linux/fswebcam/default.nix
index 53a1bdbc4c7e..fc1a25633821 100644
--- a/nixpkgs/pkgs/os-specific/linux/fswebcam/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fswebcam/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, libv4l, gd }:
 
 stdenv.mkDerivation rec {
-  name = "fswebcam-20140113";
+  name = "fswebcam-20200725";
 
   src = fetchurl {
     url = "https://www.sanslogic.co.uk/fswebcam/files/${name}.tar.gz";
-    sha256 = "3ee389f72a7737700d22e0c954720b1e3bbadc8a0daad6426c25489ba9dc3199";
+    sha256 = "1dazsrcaw9s30zz3jpxamk9lkff5dkmflp1s0jjjvdbwa0k6k6ii";
   };
 
   buildInputs =
diff --git a/nixpkgs/pkgs/os-specific/linux/fuse/common.nix b/nixpkgs/pkgs/os-specific/linux/fuse/common.nix
index b0f684e6242a..2010be53c2d8 100644
--- a/nixpkgs/pkgs/os-specific/linux/fuse/common.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fuse/common.nix
@@ -2,7 +2,7 @@
 
 { stdenv, fetchFromGitHub, fetchpatch
 , fusePackages, utillinux, gettext
-, meson, ninja, pkgconfig
+, meson, ninja, pkg-config
 , autoreconfHook
 , python3Packages, which
 }:
@@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
       else [ ./fuse2-Do-not-set-FUSERMOUNT_DIR.patch ]);
 
   nativeBuildInputs = if isFuse3
-    then [ meson ninja pkgconfig ]
+    then [ meson ninja pkg-config ]
     else [ autoreconfHook gettext ];
 
   outputs = [ "out" ] ++ stdenv.lib.optional isFuse3 "common";
@@ -60,6 +60,10 @@ in stdenv.mkDerivation rec {
       # ./fuse3-install_man.patch)
       install -D -m444 doc/fusermount3.1 $out/share/man/man1/fusermount3.1
       install -D -m444 doc/mount.fuse3.8 $out/share/man/man8/mount.fuse3.8
+
+      # TODO: Temporary version fix:
+      substituteInPlace meson.build \
+        --replace "version: '3.9.3'" "version: '${version}'"
     '' else ''
       sed -e 's@CONFIG_RPATH=/usr/share/gettext/config.rpath@CONFIG_RPATH=${gettext}/share/gettext/config.rpath@' -i makeconf.sh
       ./makeconf.sh
diff --git a/nixpkgs/pkgs/os-specific/linux/fuse/default.nix b/nixpkgs/pkgs/os-specific/linux/fuse/default.nix
index 4d2e12367de7..8c342743dfce 100644
--- a/nixpkgs/pkgs/os-specific/linux/fuse/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fuse/default.nix
@@ -11,7 +11,7 @@ in {
   };
 
   fuse_3 = mkFuse {
-    version = "3.9.2";
-    sha256Hash = "10xsbly7rv895c9zv4fqmnrxbdc0kd1qhlk75x4m9cv95f93k843";
+    version = "3.9.4";
+    sha256Hash = "1j11niqw3p94yd6mfdrkdra0nic8a38fc179y5h9yz81q39m2f3b";
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/fwts/default.nix b/nixpkgs/pkgs/os-specific/linux/fwts/default.nix
index d05a8c52551b..5de0eea0beac 100644
--- a/nixpkgs/pkgs/os-specific/linux/fwts/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/fwts/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fwts";
-  version = "20.05.00";
+  version = "20.08.00";
 
   src = fetchzip {
     url = "http://fwts.ubuntu.com/release/${pname}-V${version}.tar.gz";
-    sha256 = "14rqm45al6w42mzi0rqpwbw1spy7iv1jhywhwkdgs4w91zzc4gaj";
+    sha256 = "098vxj5sd2nm88jmj6cxzcvid8w81m8fxdz881iki0pi7ysixa5q";
     stripRoot = false;
   };
 
diff --git a/nixpkgs/pkgs/os-specific/linux/gobi_loader/default.nix b/nixpkgs/pkgs/os-specific/linux/gobi_loader/default.nix
new file mode 100644
index 000000000000..b8735354c2c6
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/gobi_loader/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "gobi_loader";
+  version = "0.7";
+
+  src = fetchurl {
+    url = "https://www.codon.org.uk/~mjg59/gobi_loader/download/${pname}-${version}.tar.gz";
+    sha256 = "0jkmpqkiddpxrzl2s9s3kh64ha48m00nn53f82m1rphw8maw5gbq";
+  };
+
+  postPatch = ''
+    substituteInPlace 60-gobi.rules --replace "gobi_loader" "${placeholder "out"}/lib/udev/gobi_loader"
+    substituteInPlace 60-gobi.rules --replace "/lib/firmware" "/run/current-system/firmware"
+  '';
+
+  makeFlags = "prefix=${placeholder "out"}";
+
+  meta = with stdenv.lib; {
+    description = "Firmware loader for Qualcomm Gobi USB chipsets";
+    homepage = "https://www.codon.org.uk/~mjg59/gobi_loader/";
+    license = with licenses; [ gpl2 ];
+    maintainers = with maintainers; [ _0x4A6F ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/guvcview/default.nix b/nixpkgs/pkgs/os-specific/linux/guvcview/default.nix
index 41c21502e0b3..d780cade7865 100644
--- a/nixpkgs/pkgs/os-specific/linux/guvcview/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/guvcview/default.nix
@@ -5,7 +5,7 @@
 , pkgconfig
 , portaudio
 , SDL2
-, ffmpeg_3
+, ffmpeg
 , udev
 , libusb1
 , libv4l
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     SDL2
     alsaLib
-    ffmpeg_3
+    ffmpeg
     libusb1
     libv4l
     portaudio
diff --git a/nixpkgs/pkgs/os-specific/linux/hwdata/default.nix b/nixpkgs/pkgs/os-specific/linux/hwdata/default.nix
index 2f6e6cd5cc9a..9b54f404f72e 100644
--- a/nixpkgs/pkgs/os-specific/linux/hwdata/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/hwdata/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hwdata";
-  version = "0.316";
+  version = "0.335";
 
   src = fetchFromGitHub {
     owner = "vcrhonek";
     repo = "hwdata";
     rev = "v${version}";
-    sha256 = "0k3fypykbq9943cnxlmmpk0xp9nhhf46pfdhkgm99iaa27b8s1gb";
+    sha256 = "0f8ikwfrs6xd5sywypd9rq9cln8a0rf3vj6nm0adwzn1p8mgmrb2";
   };
 
   preConfigure = "patchShebangs ./configure";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
 
   outputHashMode = "recursive";
   outputHashAlgo = "sha256";
-  outputHash = "0g2w4jr4p1hykracp2za7jb0rcr51kks1m43pzcaf7g99x8669ww";
+  outputHash = "101lppd1805drwd038b4njr5czzjnqqxf3xlf6v3l22wfwr2cn3l";
 
   meta = {
     homepage = "https://github.com/vcrhonek/hwdata";
diff --git a/nixpkgs/pkgs/os-specific/linux/ifmetric/default.nix b/nixpkgs/pkgs/os-specific/linux/ifmetric/default.nix
new file mode 100644
index 000000000000..1f69d728f604
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/ifmetric/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchurl, lynx }:
+
+stdenv.mkDerivation rec {
+  pname = "ifmetric";
+  version = "0.3";
+
+  src = fetchurl {
+    url = "http://0pointer.de/lennart/projects/${pname}/${pname}-${version}.tar.gz";
+    sha256 = "1v0s5x81jzwnnl7hr254d4nkyc8qcv983pzr6vqmbr9l9q553a0g";
+  };
+
+  buildInputs = [ lynx ];
+
+  patches = [
+    # Fixes an issue related to the netlink API.
+    # Upstream is largely inactive; this is a Debian patch.
+    (fetchurl {
+      url = "https://launchpadlibrarian.net/85974387/10_netlink_fix.patch";
+      sha256 = "1pnlcr0qvk0bd5243wpg14i387zp978f4xhwwkcqn1cir91x7fbc";
+    })
+  ];
+
+  meta = with stdenv.lib; {
+    description = "Tool for setting IP interface metrics";
+    longDescription = ''
+      ifmetric is a Linux tool for setting the metrics of all IPv4 routes
+      attached to a given network interface at once. This may be used to change
+      the priority of routing IPv4 traffic over the interface. Lower metrics
+      correlate with higher priorities.
+    '';
+    homepage = "http://0pointer.de/lennart/projects/ifmetric";
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.anna328p ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/intel-compute-runtime/default.nix b/nixpkgs/pkgs/os-specific/linux/intel-compute-runtime/default.nix
index 869041256b62..bba3549daf67 100644
--- a/nixpkgs/pkgs/os-specific/linux/intel-compute-runtime/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/intel-compute-runtime/default.nix
@@ -11,18 +11,15 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-compute-runtime";
-  version = "20.02.15268";
+  version = "20.33.17675";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "compute-runtime";
     rev = version;
-    sha256 = "138gi92w85bn6haw5x38k39pgiyvvzfhiwpvz6hqlx2j03n8cs2k";
+    sha256 = "1ckzspf05skdrjh947gv96finxbv5dpgc84hppm5pdsp5q70iyxp";
   };
 
-  # Build script tries to write the ICD to /etc
-  patches = [ ./etc-dir.patch ];
-
   nativeBuildInputs = [ cmake pkgconfig ];
 
   buildInputs = [ intel-gmmlib intel-graphics-compiler libva ];
@@ -31,7 +28,7 @@ stdenv.mkDerivation rec {
     "-DSKIP_UNIT_TESTS=1"
 
     "-DIGC_DIR=${intel-graphics-compiler}"
-    "-DETC_DIR=${placeholder "out"}/etc"
+    "-DOCL_ICD_VENDORDIR=${placeholder "out"}/etc/OpenCL/vendors"
 
     # The install script assumes this path is relative to CMAKE_INSTALL_PREFIX
     "-DCMAKE_INSTALL_LIBDIR=lib"
@@ -43,7 +40,7 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ intel-gmmlib intel-graphics-compiler libva ]} \
+    patchelf --set-rpath ${stdenv.lib.makeLibraryPath [ intel-gmmlib intel-graphics-compiler libva stdenv.cc.cc.lib ]} \
       $out/lib/intel-opencl/libigdrcl.so
   '';
 
diff --git a/nixpkgs/pkgs/os-specific/linux/intel-compute-runtime/etc-dir.patch b/nixpkgs/pkgs/os-specific/linux/intel-compute-runtime/etc-dir.patch
deleted file mode 100644
index d9a80ffa6f97..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/intel-compute-runtime/etc-dir.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/package.cmake b/package.cmake
-index 24960d5..e9a21e7 100644
---- a/package.cmake
-+++ b/package.cmake
-@@ -24,7 +24,9 @@ if(UNIX)
- 
-   get_os_release_info(os_name os_version)
- 
--  if("${os_name}" STREQUAL "clear-linux-os")
-+  if(DEFINED ETC_DIR)
-+    set(_dir_etc ${ETC_DIR})
-+  elseif("${os_name}" STREQUAL "clear-linux-os")
-     # clear-linux-os distribution avoids /etc for distribution defaults.
-     set(_dir_etc "/usr/share/defaults/etc")
-   else()
diff --git a/nixpkgs/pkgs/os-specific/linux/iproute/default.nix b/nixpkgs/pkgs/os-specific/linux/iproute/default.nix
index 3ac79464ac4b..a9fcf455ee43 100644
--- a/nixpkgs/pkgs/os-specific/linux/iproute/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iproute/default.nix
@@ -5,16 +5,19 @@
 
 stdenv.mkDerivation rec {
   pname = "iproute2";
-  version = "5.7.0";
+  version = "5.8.0";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/net/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "088gs56iqhdlpw1iqjwrss4zxd4zbl2wl8s2implrrdajjxcfpbj";
+    sha256 = "0vk4vickrpahdhl3zazr2qn2bf99v5549ncirjpwiy4h0a4izkfg";
   };
 
   preConfigure = ''
     # Don't try to create /var/lib/arpd:
     sed -e '/ARPDDIR/d' -i Makefile
+    # TODO: Drop temporary version fix for 5.8 (53159d81) once 5.9 is out:
+    substituteInPlace include/version.h \
+      --replace "v5.7.0-77-gb687d1067169" "5.8.0"
   '';
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/iproute/mptcp.nix b/nixpkgs/pkgs/os-specific/linux/iproute/mptcp.nix
index 4a58ae9e0469..63f0abcd2a29 100644
--- a/nixpkgs/pkgs/os-specific/linux/iproute/mptcp.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iproute/mptcp.nix
@@ -11,6 +11,12 @@ iproute.overrideAttrs (oa: rec {
     sha256 = "07fihvwlaj0ng8s8sxqhd0a9h1narcnp4ibk88km9cpsd32xv4q3";
   };
 
+  preConfigure = ''
+    # Don't try to create /var/lib/arpd:
+    sed -e '/ARPDDIR/d' -i Makefile
+    patchShebangs configure
+  '';
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/multipath-tcp/iproute-mptcp";
     description = "IP-Route extensions for MultiPath TCP";
diff --git a/nixpkgs/pkgs/os-specific/linux/iptables/default.nix b/nixpkgs/pkgs/os-specific/linux/iptables/default.nix
index 7502769c3aed..c9c342ad7682 100644
--- a/nixpkgs/pkgs/os-specific/linux/iptables/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iptables/default.nix
@@ -6,12 +6,12 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "1.8.4";
+  version = "1.8.5";
   pname = "iptables";
 
   src = fetchurl {
     url = "https://www.netfilter.org/projects/${pname}/files/${pname}-${version}.tar.bz2";
-    sha256 = "0z0mgs1ghvn3slc868mgbf2g26njgrzcy5ggyb5w4i55j1a3lflr";
+    sha256 = "02a3575ypdpg6a2x752mhk3f7h1381ymkq1n0gss6fp6292xfmyl";
   };
 
   nativeBuildInputs = [ pkgconfig pruneLibtoolFiles flex bison ];
diff --git a/nixpkgs/pkgs/os-specific/linux/iptstate/default.nix b/nixpkgs/pkgs/os-specific/linux/iptstate/default.nix
index cd290113e00e..529a82e96469 100644
--- a/nixpkgs/pkgs/os-specific/linux/iptstate/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iptstate/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ trevorj ];
     downloadPage = "https://github.com/jaymzh/iptstate/releases";
+    license = licenses.zlib;
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/iputils/default.nix b/nixpkgs/pkgs/os-specific/linux/iputils/default.nix
index 127846383484..e12c44888a0b 100644
--- a/nixpkgs/pkgs/os-specific/linux/iputils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iputils/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchFromGitHub, fetchpatch
+{ stdenv, fetchFromGitHub
 , meson, ninja, pkgconfig, gettext, libxslt, docbook_xsl_ns
-, libcap, nettle, libidn2, systemd
+, libcap, systemd, libidn2
 }:
 
 with stdenv.lib;
 
 let
-  version = "20190709";
+  version = "20200821";
   sunAsIsLicense = {
     fullName = "AS-IS, SUN MICROSYSTEMS license";
     url = "https://github.com/iputils/iputils/blob/s${version}/rdisc.c";
@@ -19,26 +19,27 @@ in stdenv.mkDerivation rec {
     owner = pname;
     repo = pname;
     rev = "s${version}";
-    sha256 = "04bp4af15adp79ipxmiakfp0ij6hx5qam266flzbr94pr8z8l693";
+    sha256 = "1jhbcz75a4ij1myyyi110ma1d8d5hpm3scz9pyw7js6qym50xvh4";
   };
 
-  mesonFlags =
-    [ "-DUSE_CRYPTO=nettle"
-      "-DBUILD_RARPD=true"
-      "-DBUILD_TRACEROUTE6=true"
-      "-DNO_SETCAP_OR_SUID=true"
-      "-Dsystemdunitdir=etc/systemd/system"
-    ]
+  mesonFlags = [
+    "-DBUILD_RARPD=true"
+    "-DBUILD_TRACEROUTE6=true"
+    "-DBUILD_TFTPD=true"
+    "-DNO_SETCAP_OR_SUID=true"
+    "-Dsystemdunitdir=etc/systemd/system"
+  ]
     # Disable idn usage w/musl (https://github.com/iputils/iputils/pull/111):
     ++ optional stdenv.hostPlatform.isMusl "-DUSE_IDN=false";
 
   nativeBuildInputs = [ meson ninja pkgconfig gettext libxslt.bin docbook_xsl_ns ];
-  buildInputs = [ libcap nettle systemd ]
+  buildInputs = [ libcap systemd ]
     ++ optional (!stdenv.hostPlatform.isMusl) libidn2;
 
   meta = {
-    homepage = "https://github.com/iputils/iputils";
     description = "A set of small useful utilities for Linux networking";
+    inherit (src.meta) homepage;
+    changelog = "https://github.com/iputils/iputils/releases/tag/s${version}";
     license = with licenses; [ gpl2Plus bsd3 sunAsIsLicense ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ primeos lheckemann ];
diff --git a/nixpkgs/pkgs/os-specific/linux/irqbalance/default.nix b/nixpkgs/pkgs/os-specific/linux/irqbalance/default.nix
index 4c4e1ff025d9..d61d02b5598d 100644
--- a/nixpkgs/pkgs/os-specific/linux/irqbalance/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/irqbalance/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "irqbalance";
-  version = "1.6.0";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "irqbalance";
     repo = "irqbalance";
     rev = "v${version}";
-    sha256 = "01r9s63yxaijg8jqcbkwqlyqq2z673szb0vzd7qb2y3gk5jlif2y";
+    sha256 = "1677ap6z4hvwga0vb8hrvpc0qggyarg9mlg11pxywz7mq94vdx19";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/nixpkgs/pkgs/os-specific/linux/iw/default.nix b/nixpkgs/pkgs/os-specific/linux/iw/default.nix
index 585bbfd165e2..cbd19b7da8b4 100644
--- a/nixpkgs/pkgs/os-specific/linux/iw/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iw/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "iw";
-  version = "5.4";
+  version = "5.8";
 
   src = fetchurl {
     url = "https://www.kernel.org/pub/software/network/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0prrgb11pjrr6dw71v7nx2bic127qzrjifvz183v3mw8f1kryim2";
+    sha256 = "1d1dfynrzh52zdia1l23ajv4q5wixgffnc1gkz05qrxnn2n4p75m";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/os-specific/linux/iwd/default.nix b/nixpkgs/pkgs/os-specific/linux/iwd/default.nix
index be2a4ff3e56a..adf37a1b71b6 100644
--- a/nixpkgs/pkgs/os-specific/linux/iwd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/iwd/default.nix
@@ -13,14 +13,16 @@
 
 stdenv.mkDerivation rec {
   pname = "iwd";
-  version = "1.7";
+  version = "1.9";
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/network/wireless/iwd.git";
     rev = version;
-    sha256 = "1qi25qav1rv8gm5lbrip8ayq5vwynmyv2q4ar7bbmnjh6cglvyh2";
+    sha256 = "193wa13i2prfz1zr7nvwbgrxgacms57zj1n7x28yy5hmm3nnwbrd";
   };
 
+  outputs = [ "out" "man" ];
+
   nativeBuildInputs = [
     autoreconfHook
     docutils
diff --git a/nixpkgs/pkgs/os-specific/linux/jool/source.nix b/nixpkgs/pkgs/os-specific/linux/jool/source.nix
index 9e8de46edba7..abf7b0dac45f 100644
--- a/nixpkgs/pkgs/os-specific/linux/jool/source.nix
+++ b/nixpkgs/pkgs/os-specific/linux/jool/source.nix
@@ -1,11 +1,11 @@
 { fetchFromGitHub }:
 
 rec {
-  version = "4.0.5";
+  version = "4.0.9";
   src = fetchFromGitHub {
     owner = "NICMx";
     repo = "Jool";
     rev = "v${version}";
-    sha256 = "0zfda8mbcg4mgg39shxdx5n2bq6zi9w3v8bcx03b3dp09lmq45y3";
+    sha256 = "0zhdpk1sbsv1iyr9rvj94wk853684avz3zzn4cv2k4254d7n25m7";
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix b/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix
index 06eb81a49b00..8bd5d0212044 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/common-config.nix
@@ -244,6 +244,8 @@ let
       DRM_AMDGPU_SI = whenAtLeast "4.9" yes;
       # (stable) amdgpu support for bonaire and newer chipsets
       DRM_AMDGPU_CIK = whenAtLeast "4.9" yes;
+      # Allow device firmware updates
+      DRM_DP_AUX_CHARDEV = whenAtLeast "4.6" yes;
     } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux") {
       # Intel GVT-g graphics virtualization supports 64-bit only
       DRM_I915_GVT = whenAtLeast "4.16" yes;
@@ -257,7 +259,7 @@ let
       SND_HDA_RECONFIG    = yes; # Support reconfiguration of jack functions
       # Support configuring jack functions via fw mechanism at boot
       SND_HDA_PATCH_LOADER = yes;
-      SND_HDA_CODEC_CA0132_DSP = whenOlder "5.8" yes; # Enable DSP firmware loading on Creative Soundblaster Z/Zx/ZxR/Recon
+      SND_HDA_CODEC_CA0132_DSP = whenOlder "5.7" yes; # Enable DSP firmware loading on Creative Soundblaster Z/Zx/ZxR/Recon
       SND_OSSEMUL         = yes;
       SND_USB_CAIAQ_INPUT = yes;
       # Enable PSS mixer (Beethoven ADSP-16 and other compatible)
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/gpio-utils.nix b/nixpkgs/pkgs/os-specific/linux/kernel/gpio-utils.nix
index 447704eedc8d..e28d838efb3f 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/gpio-utils.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/gpio-utils.nix
@@ -18,7 +18,8 @@ stdenv.mkDerivation {
 
   meta = {
     description = "Linux tools to inspect the gpiochip interface";
-    maintainers = with stdenv.lib.maintainers; [ kwohlfahrt ];
-    platforms = stdenv.lib.platforms.linux;
+    maintainers = with maintainers; [ kwohlfahrt ];
+    platforms = platforms.linux;
+    license = licenses.gpl2;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix
index e531f878d029..d3ea80ecb22d 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-libre.nix
@@ -1,8 +1,8 @@
 { stdenv, lib, fetchsvn, linux
 , scripts ? fetchsvn {
     url = "https://www.fsfla.org/svn/fsfla/software/linux-libre/releases/branches/";
-    rev = "17537";
-    sha256 = "15fj5ba28jw515fzfp4pbrkpq5xyvxvx7r9yh1l0qsxjzs2zml8b";
+    rev = "17624";
+    sha256 = "0gs3mpiffny408l9kdrxpj48axarfb2fxvcw4w8zsz5wr7yig0n2";
   }
 , ...
 }:
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
new file mode 100644
index 000000000000..f58f08ca913d
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.4.nix
@@ -0,0 +1,41 @@
+{ lib, buildLinux, fetchurl
+, kernelPatches ? [ ]
+, structuredExtraConfig ? {}
+, extraMeta ? {}
+, argsOverride ? {}
+, ... } @ args:
+
+let
+  version = "5.4.66-rt38"; # updated by ./update-rt.sh
+  branch = lib.versions.majorMinor version;
+  kversion = builtins.elemAt (lib.splitString "-" version) 0;
+in buildLinux (args // {
+  inherit version;
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
+    sha256 = "1cnsrz21kcf0h7krpv9p1a7n59mybr5ii0jdi3yc3x3lcwvk06gz";
+  };
+
+  kernelPatches = let rt-patch = {
+    name = "rt";
+    patch = fetchurl {
+      url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
+      sha256 = "1w0v5wl5fhxl5axd4701dljxhv9rywpgiix3yv7l6i3c5b8iw1zi";
+    };
+  }; in [ rt-patch ] ++ lib.remove rt-patch kernelPatches;
+
+  structuredExtraConfig = with lib.kernel; {
+    PREEMPT_RT = yes;
+    # Fix error: unused option: PREEMPT_RT.
+    EXPERT = yes; # PREEMPT_RT depends on it (in kernel/Kconfig.preempt)
+    # Fix error: option not set correctly: PREEMPT_VOLUNTARY (wanted 'y', got 'n').
+    PREEMPT_VOLUNTARY = lib.mkForce no; # PREEMPT_RT deselects it.
+    # Fix error: unused option: RT_GROUP_SCHED.
+    RT_GROUP_SCHED = lib.mkForce (option no); # Removed by sched-disable-rt-group-sched-on-rt.patch.
+  } // structuredExtraConfig;
+
+  extraMeta = extraMeta // {
+    inherit branch;
+  };
+} // argsOverride)
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix
new file mode 100644
index 000000000000..7c77454040d5
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-rt-5.6.nix
@@ -0,0 +1,41 @@
+{ lib, buildLinux, fetchurl
+, kernelPatches ? [ ]
+, structuredExtraConfig ? {}
+, extraMeta ? {}
+, argsOverride ? {}
+, ... } @ args:
+
+let
+  version = "5.6.19-rt12"; # updated by ./update-rt.sh
+  branch = lib.versions.majorMinor version;
+  kversion = builtins.elemAt (lib.splitString "-" version) 0;
+in buildLinux (args // {
+  inherit version;
+
+  src = fetchurl {
+    url = "mirror://kernel/linux/kernel/v5.x/linux-${kversion}.tar.xz";
+    sha256 = "1s0yc1138sglbm4vyizl4r7hnc1l7nykdjp4063ad67yayr2ylv2";
+  };
+
+  kernelPatches = let rt-patch = {
+    name = "rt";
+    patch = fetchurl {
+      url = "mirror://kernel/linux/kernel/projects/rt/${branch}/older/patch-${version}.patch.xz";
+      sha256 = "0ia8rx0615x0z2s4ppw1244crg7c5ak07c9n3wbnz7y8bk8hyxws";
+    };
+  }; in [ rt-patch ] ++ lib.remove rt-patch kernelPatches;
+
+  structuredExtraConfig = with lib.kernel; {
+    PREEMPT_RT = yes;
+    # Fix error: unused option: PREEMPT_RT.
+    EXPERT = yes; # PREEMPT_RT depends on it (in kernel/Kconfig.preempt)
+    # Fix error: option not set correctly: PREEMPT_VOLUNTARY (wanted 'y', got 'n').
+    PREEMPT_VOLUNTARY = lib.mkForce no; # PREEMPT_RT deselects it.
+    # Fix error: unused option: RT_GROUP_SCHED.
+    RT_GROUP_SCHED = lib.mkForce (option no); # Removed by sched-disable-rt-group-sched-on-rt.patch.
+  } // structuredExtraConfig;
+
+  extraMeta = extraMeta // {
+    inherit branch;
+  };
+} // argsOverride)
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
index 456913c5e6d1..81dcb5d4563b 100644
--- a/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
@@ -1,13 +1,14 @@
-{ stdenv, buildPackages, fetchgit, fetchpatch, perl, buildLinux, ... } @ args:
+{ stdenv, buildPackages, fetchFromGitHub, fetchpatch, perl, buildLinux, ... } @ args:
 
 buildLinux (args // {
-  version = "5.3.2020.04.04";
-  modDirVersion = "5.3.0";
+  version = "5.8.0-2020.09.07";
+  modDirVersion = "5.8.0";
 
-  src = fetchgit {
-    url = "https://evilpiepirate.org/git/bcachefs.git";
-    rev = "a27d7265e75f6d65c2b972ce4ac27abfc153c230";
-    sha256 = "0wnjl4xs7073d5ipcsplv5qpcxb7zpfqd5gqvh3mhqc5j3qn816x";
+  src = fetchFromGitHub {
+    owner = "koverstreet";
+    repo = "bcachefs";
+    rev = "fb2821e72648f35d3cff61ac26041d634fd1dacf";
+    sha256 = "0f9hx6fz27rm8h1lk9868v727klvyzcbw6hcgm5mypbfq1nqirdy";
   };
 
   extraConfig = "BCACHEFS_FS m";
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/linux-zen.nix b/nixpkgs/pkgs/os-specific/linux/kernel/linux-zen.nix
new file mode 100644
index 000000000000..ce90893586aa
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/linux-zen.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, buildLinux, ... } @ args:
+
+let
+  version = "5.8.10";
+in
+
+buildLinux (args // {
+  modDirVersion = "${version}-zen1";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "zen-kernel";
+    repo = "zen-kernel";
+    rev = "v${version}-zen1";
+    sha256 = "1mm4x2amnpwixvi7q8pj9my75b08ps2mafgz4j2iszpylkdzi53d";
+  };
+
+  extraMeta = {
+    branch = "5.8/master";
+    maintainers = with stdenv.lib.maintainers; [ atemu ];
+  };
+
+} // (args.argsOverride or {}))
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/update-rt.sh b/nixpkgs/pkgs/os-specific/linux/kernel/update-rt.sh
new file mode 100755
index 000000000000..bcfa494d7e7a
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/update-rt.sh
@@ -0,0 +1,77 @@
+#!/usr/bin/env bash
+set -euo pipefail
+
+# To update all rt kernels run: ./update-rt.sh
+
+# To update just one ./linux-rt-5.X.nix run: ./update-rt.sh ./linux-rt-5.X.nix
+
+# To add a new kernel branch 5.Y run: ./update-rt.sh ./linux-rt-5.Y.nix
+# (with nonexistent .nix file) and update all-packages.nix.
+
+# To commit run with: env COMMIT=1
+
+mirror=https://kernel.org/pub/linux/kernel
+
+main() {
+    if [ $# -ge 1 ]; then
+        update-if-needed "$1"
+    else
+        update-all-if-needed
+    fi
+}
+
+update-all-if-needed() {
+    for f in "$(dirname "$0")"/linux-rt-*.nix; do
+        update-if-needed "$f"
+    done
+}
+
+file-version() {
+    file="$1" # e.g. ./linux-rt-5.4.nix
+    if [ -e "$file" ]; then
+        grep ' version = ' "$file" | grep -o '[0-9].[^"]*'
+    fi
+}
+
+latest-rt-version() {
+    branch="$1" # e.g. 5.4
+    curl -sL "$mirror/projects/rt/$branch/sha256sums.asc" |
+        sed -ne '/.patch.xz/ { s/.*patch-\(.*\).patch.xz/\1/; p; q }'
+}
+
+update-if-needed() {
+    file="$1" # e.g. ./linux-rt-5.4.nix (created if does not exist)
+    branch=$(basename "$file" .nix) # e.g. linux-rt-5.4
+    branch=${branch#linux-rt-} # e.g. 5.4
+    cur=$(file-version "$file") # e.g. 5.4.59-rt36 or empty
+    new=$(latest-rt-version "$branch") # e.g. 5.4.61-rt37
+    kversion=${new%-*} # e.g. 5.4.61
+    major=${branch%.*} # e.g 5
+    nixattr="linux-rt_${branch/./_}"
+    if [ "$new" = "$cur" ]; then
+        echo "$nixattr: $cur (up-to-date)"
+        return
+    fi
+    khash=$(nix-prefetch-url "$mirror/v${major}.x/linux-${kversion}.tar.xz")
+    phash=$(nix-prefetch-url "$mirror/projects/rt/${branch}/older/patch-${new}.patch.xz")
+    if [ "$cur" ]; then
+        msg="$nixattr: $cur -> $new"
+    else
+        msg="$nixattr: init at $new"
+        prev=$(ls "$(dirname "$0")"/linux-rt-*.nix | tail -1)
+        cp "$prev" "$file"
+        cur=$(file-version "$file")
+    fi
+    echo "$msg"
+    sed -i "$file" \
+        -e "s/$cur/$new/" \
+        -e "s|kernel/v[0-9]*|kernel/v$major|" \
+        -e "1,/.patch.xz/ s/sha256 = .*/sha256 = \"$khash\";/" \
+        -e "1,/.patch.xz/! s/sha256 = .*/sha256 = \"$phash\";/"
+    if [ "${COMMIT:-}" ]; then
+        git add "$file"
+        git commit -m "$msg"
+    fi
+}
+
+return 2>/dev/null || main "$@"
diff --git a/nixpkgs/pkgs/os-specific/linux/kernel/update.sh b/nixpkgs/pkgs/os-specific/linux/kernel/update.sh
index 55fdce06c973..560edced36ea 100755
--- a/nixpkgs/pkgs/os-specific/linux/kernel/update.sh
+++ b/nixpkgs/pkgs/os-specific/linux/kernel/update.sh
@@ -58,6 +58,9 @@ ls $NIXPKGS/pkgs/os-specific/linux/kernel | while read FILE; do
   echo "Updated $OLDVER -> $V"
 done
 
+# Update linux-rt
+COMMIT=1 $NIXPKGS/pkgs/os-specific/linux/kernel/update-rt.sh
+
 # Update linux-libre
 COMMIT=1 $NIXPKGS/pkgs/os-specific/linux/kernel/update-libre.sh
 
diff --git a/nixpkgs/pkgs/os-specific/linux/klibc/default.nix b/nixpkgs/pkgs/os-specific/linux/klibc/default.nix
index a92970726dca..55faa216a12c 100644
--- a/nixpkgs/pkgs/os-specific/linux/klibc/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/klibc/default.nix
@@ -9,11 +9,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "klibc";
-  version = "2.0.7";
+  version = "2.0.8";
 
   src = fetchurl {
     url = "mirror://kernel/linux/libs/klibc/2.0/klibc-${version}.tar.xz";
-    sha256 = "08li3aj9bvzabrih98jdxi3m19h85cp53s8cr7cqad42r8vjdvxb";
+    sha256 = "0dmlkhnn5q8fc6rkzsisir4chkzmmiq6xkjmvyvf0g7yihwz2j2f";
   };
 
   patches = [ ./no-reinstall-kernel-headers.patch ];
diff --git a/nixpkgs/pkgs/os-specific/linux/klibc/shrunk.nix b/nixpkgs/pkgs/os-specific/linux/klibc/shrunk.nix
index b5b9783c6e7d..8b79940ed78c 100644
--- a/nixpkgs/pkgs/os-specific/linux/klibc/shrunk.nix
+++ b/nixpkgs/pkgs/os-specific/linux/klibc/shrunk.nix
@@ -22,7 +22,5 @@ stdenv.mkDerivation {
   ''; # */
   allowedReferences = ["out"];
 
-  meta = {
-    platforms = stdenv.lib.platforms.linux;
-  };
+  inherit (klibc) meta;
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/kmod-blacklist-ubuntu/default.nix b/nixpkgs/pkgs/os-specific/linux/kmod-blacklist-ubuntu/default.nix
index e14e190cd7c5..17f34f9bbd79 100644
--- a/nixpkgs/pkgs/os-specific/linux/kmod-blacklist-ubuntu/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kmod-blacklist-ubuntu/default.nix
@@ -34,5 +34,6 @@ in stdenv.mkDerivation {
     homepage = "https://packages.ubuntu.com/source/zesty/kmod";
     description = "Linux kernel module blacklists from Ubuntu";
     platforms = platforms.linux;
+    license = with licenses; [ gpl2Plus lgpl21Plus ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/kmod-debian-aliases/default.nix b/nixpkgs/pkgs/os-specific/linux/kmod-debian-aliases/default.nix
index f0f413317277..23d323f84b8f 100644
--- a/nixpkgs/pkgs/os-specific/linux/kmod-debian-aliases/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kmod-debian-aliases/default.nix
@@ -14,10 +14,11 @@ stdenv.mkDerivation rec {
     cp aliases.conf $out
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "https://packages.debian.org/source/sid/kmod";
     description = "Linux configuration file for modprobe";
-    maintainers = with lib.maintainers; [ mathnerd314 ];
-    platforms = with lib.platforms; linux;
+    maintainers = with maintainers; [ mathnerd314 ];
+    platforms = with platforms; linux;
+    license = with licenses; [ gpl2Plus lgpl21Plus ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/kmod/default.nix b/nixpkgs/pkgs/os-specific/linux/kmod/default.nix
index de025b436f54..805b8a32aedd 100644
--- a/nixpkgs/pkgs/os-specific/linux/kmod/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kmod/default.nix
@@ -8,11 +8,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "kmod";
-  version = "26";
+  version = "27";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/kernel/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "17dvrls70nr3b3x1wm8pwbqy4r8a5c20m0dhys8mjhsnpg425fsp";
+    sha256 = "035wzfzjx4nwidk747p8n085mgkvy531ppn16krrajx2dkqzply1";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig libxslt ];
@@ -24,7 +24,7 @@ in stdenv.mkDerivation rec {
     "--with-modulesdirs=${modulesDirs}"
   ] ++ lib.optional withStatic "--enable-static";
 
-  patches = [ ./module-dir.patch ]
+  patches = [ ./module-dir.patch ./no-name-field.patch ]
     ++ lib.optional stdenv.isDarwin ./darwin.patch
     ++ lib.optional withStatic ./enable-static.patch;
 
@@ -38,8 +38,16 @@ in stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    homepage = "https://www.kernel.org/pub/linux/utils/kernel/kmod/";
     description = "Tools for loading and managing Linux kernel modules";
+    longDescription = ''
+      kmod is a set of tools to handle common tasks with Linux kernel modules
+      like insert, remove, list, check properties, resolve dependencies and
+      aliases. These tools are designed on top of libkmod, a library that is
+      shipped with kmod.
+    '';
+    homepage = "https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/";
+    downloadPage = "https://www.kernel.org/pub/linux/utils/kernel/kmod/";
+    changelog = "https://git.kernel.org/pub/scm/utils/kernel/kmod/kmod.git/plain/NEWS?h=v${version}";
     license = licenses.lgpl21;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/kmod/no-name-field.patch b/nixpkgs/pkgs/os-specific/linux/kmod/no-name-field.patch
new file mode 100644
index 000000000000..282f59e55e52
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/kmod/no-name-field.patch
@@ -0,0 +1,24 @@
+
+---
+ tools/modinfo.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/tools/modinfo.c b/tools/modinfo.c
+index 0231bb0..7b2259e 100644
+--- a/tools/modinfo.c
++++ b/tools/modinfo.c
+@@ -178,7 +178,10 @@ static int modinfo_do(struct kmod_module *mod)
+ 	is_builtin = (filename == NULL);
+ 
+ 	if (is_builtin) {
+-		printf("%-16s%s%c", "name:", kmod_module_get_name(mod), separator);
++		if (field == NULL || field != NULL && streq(field, "name")){
++			printf("%-16s%s%c", "name:",
++			       kmod_module_get_name(mod), separator);
++		}
+ 		filename = "(builtin)";
+ 	}
+ 
+-- 
+2.28.0
+
diff --git a/nixpkgs/pkgs/os-specific/linux/kmscon/default.nix b/nixpkgs/pkgs/os-specific/linux/kmscon/default.nix
index a79f762a8a21..29f99629df87 100644
--- a/nixpkgs/pkgs/os-specific/linux/kmscon/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/kmscon/default.nix
@@ -1,5 +1,6 @@
 { stdenv
-, fetchurl
+, fetchFromGitHub
+, autoreconfHook
 , libtsm
 , systemd
 , libxkbcommon
@@ -13,32 +14,32 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "kmscon-8";
-
-  src = fetchurl {
-    url = "https://www.freedesktop.org/software/kmscon/releases/${name}.tar.xz";
-    sha256 = "0axfwrp3c8f4gb67ap2sqnkn75idpiw09s35wwn6kgagvhf1rc0a";
+  pname = "kmscon";
+  version = "unstable-2018-09-07";
+
+  src = fetchFromGitHub {
+    owner = "Aetf";
+    repo = "kmscon";
+    rev = "01dd0a231e2125a40ceba5f59fd945ff29bf2cdc";
+    sha256 = "0q62kjsvy2iwy8adfiygx2bfwlh83rphgxbis95ycspqidg9py87";
   };
 
   buildInputs = [
+    libGLU libGL
+    libdrm
     libtsm
-    systemd
     libxkbcommon
-    libdrm
-    libGLU libGL
+    libxslt
     pango
     pixman
-    pkgconfig
-    docbook_xsl
-    libxslt
+    systemd
   ];
 
-  patches = [ ./kmscon-8-glibc-2.26.patch ];
-
-  # FIXME: Remove as soon as kmscon > 8 comes along.
-  postPatch = ''
-    sed -i -e 's/libsystemd-daemon libsystemd-login/libsystemd/g' configure
-  '';
+  nativeBuildInputs = [
+    autoreconfHook
+    docbook_xsl
+    pkgconfig
+  ];
 
   configureFlags = [
     "--enable-multi-seat"
@@ -49,10 +50,10 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "KMS/DRM based System Console";
     homepage = "http://www.freedesktop.org/wiki/Software/kmscon/";
-    license = stdenv.lib.licenses.mit;
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.mit;
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/kmscon/kmscon-8-glibc-2.26.patch b/nixpkgs/pkgs/os-specific/linux/kmscon/kmscon-8-glibc-2.26.patch
deleted file mode 100644
index b70a750180e2..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/kmscon/kmscon-8-glibc-2.26.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/src/pty.c b/src/pty.c
-index 3494104..1443f4a 100644
---- a/src/pty.c
-+++ b/src/pty.c
-@@ -299,7 +299,7 @@ static void setup_child(int master, struct winsize *ws)
- 	if (ret)
- 		log_warn("cannot reset blocked signals: %m");
- 
--	for (i = 1; i < SIGUNUSED; ++i)
-+	for (i = 1; i < SIGSYS; ++i)
- 		signal(i, SIG_DFL);
- 
- 	ret = grantpt(master);
-diff --git a/src/uterm_vt.c b/src/uterm_vt.c
-index af377f5..fbe9e76 100644
---- a/src/uterm_vt.c
-+++ b/src/uterm_vt.c
-@@ -40,6 +40,7 @@
- #include <sys/ioctl.h>
- #include <sys/signalfd.h>
- #include <sys/stat.h>
-+#include <sys/sysmacros.h>
- #include <termios.h>
- #include <time.h>
- #include <unistd.h>
diff --git a/nixpkgs/pkgs/os-specific/linux/libaio/default.nix b/nixpkgs/pkgs/os-specific/linux/libaio/default.nix
index 63d446319d6f..ac000976a680 100644
--- a/nixpkgs/pkgs/os-specific/linux/libaio/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/libaio/default.nix
@@ -1,19 +1,14 @@
 { stdenv, fetchurl, fetchpatch }:
 
 stdenv.mkDerivation rec {
-  version = "0.3.110";
+  version = "0.3.111";
   pname = "libaio";
 
   src = fetchurl {
-    url = "https://fedorahosted.org/releases/l/i/libaio/${pname}-${version}.tar.gz";
-    sha256 = "0zjzfkwd1kdvq6zpawhzisv7qbq1ffs343i5fs9p498pcf7046g0";
+    url = "https://pagure.io/libaio/archive/${pname}-${version}/${pname}-${pname}-${version}.tar.gz";
+    sha256 = "1fih2y2js0dl9qshpyb14m0nnxlms2527shgcxg0hnbflv5igg76";
   };
 
-  patches = [ (fetchpatch {
-    url = "https://pagure.io/libaio/c/da47c32b2ff39e52fbed1622c34b86bc88d7c217.patch";
-    sha256 = "1kqpiswjn549s3w3m89bw5qkl7bw5pvq6gp5cdzd926ymlgivj5c";
-  }) ];
-
   postPatch = ''
     patchShebangs harness
 
diff --git a/nixpkgs/pkgs/os-specific/linux/libbpf/default.nix b/nixpkgs/pkgs/os-specific/linux/libbpf/default.nix
index aefb5ff6835c..68ccef6529c3 100644
--- a/nixpkgs/pkgs/os-specific/linux/libbpf/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/libbpf/default.nix
@@ -1,20 +1,36 @@
 { stdenv, fetchFromGitHub, pkgconfig
 , libelf, zlib
+, fetchpatch
 }:
 
 with builtins;
 
 stdenv.mkDerivation rec {
   pname = "libbpf";
-  version = "0.0.8";
+  version = "0.1.0";
 
   src = fetchFromGitHub {
-    owner = "libbpf";
-    repo = "libbpf";
-    rev = "v${version}";
-    sha256 = "02vbpg9v5sjcw7ihximy63cjmz82q5izkp91i44m1qp6qj5qn4sr";
+    owner  = "libbpf";
+    repo   = "libbpf";
+    rev    = "v${version}";
+    sha256 = "1wi3a795jq0smqg1c5ml2ghai47n1m5ijmch017wscybx4jdlynv";
   };
 
+  patches = [
+    (fetchpatch { # included upstream for > 0.1.0
+      name = "link-zlib.patch";
+      url = "https://github.com/libbpf/libbpf/commit/8b14cb43ff837.diff";
+      sha256 = "17mvjrs7s727drz013a8qlyj0345ldi2kph6pazcmxv6kl1qrz2z";
+    })
+  ];
+  patchFlags = "-p2";
+  # https://github.com/libbpf/libbpf/pull/201#issuecomment-689174740
+  postPatch = ''
+    substituteInPlace ../scripts/check-reallocarray.sh \
+      --replace 'mktemp /tmp/' 'mktemp ' \
+      --replace '/bin/rm' 'rm'
+  '';
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libelf zlib ];
 
@@ -22,11 +38,6 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
   makeFlags = [ "PREFIX=$(out)" ];
 
-  patchPhase = ''
-    substituteInPlace ../scripts/check-reallocarray.sh \
-      --replace '/bin/rm' 'rm'
-  '';
-
   # FIXME: Multi-output requires some fixes to the way the pkgconfig file is
   # constructed (it gets put in $out instead of $dev for some reason, with
   # improper paths embedded). Don't enable it for now.
@@ -37,7 +48,7 @@ stdenv.mkDerivation rec {
     description = "Upstream mirror of libbpf";
     homepage    = "https://github.com/libbpf/libbpf";
     license     = with licenses; [ lgpl21 /* or */ bsd2 ];
-    maintainers = with maintainers; [ thoughtpolice ];
+    maintainers = with maintainers; [ thoughtpolice vcunat ];
     platforms   = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/libfabric/default.nix b/nixpkgs/pkgs/os-specific/linux/libfabric/default.nix
index 40f92f38d164..52de79e1f2df 100644
--- a/nixpkgs/pkgs/os-specific/linux/libfabric/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/libfabric/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "libfabric";
-  version = "1.10.1";
+  version = "1.11.0";
 
   enableParallelBuilding = true;
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "ofiwg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0nf5x4v9rhyd67r6f6q3dw4sraaja8jfdkhhg9g8x41czmx4d456";
+    sha256 = "1wgn6gsiy64rb76i46dsqlvp687lwqzxwg5lgj1y5y7lyqbq96wp";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ] ;
diff --git a/nixpkgs/pkgs/os-specific/linux/libvolume_id/default.nix b/nixpkgs/pkgs/os-specific/linux/libvolume_id/default.nix
index e54dee10c1d4..98ddc50e2e48 100644
--- a/nixpkgs/pkgs/os-specific/linux/libvolume_id/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/libvolume_id/default.nix
@@ -1,8 +1,8 @@
 {stdenv, fetchurl}:
-   
+
 stdenv.mkDerivation {
   name = "libvolume_id-0.81.1";
-   
+
   src = fetchurl {
     url = "https://www.marcuscom.com/downloads/libvolume_id-0.81.1.tar.bz2";
     sha256 = "029z04vdxxsl8gycm9whcljhv6dy4b12ybsxdb99jr251gl1ifs5";
@@ -18,7 +18,8 @@ stdenv.mkDerivation {
     cp -f libvolume_id.so.0 $out/lib/
   ";
 
-  meta = {
-    platforms = stdenv.lib.platforms.linux;
+  meta = with stdenv.lib; {
+    platforms = platforms.linux;
+    license = licenses.gpl2;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/linuxptp/default.nix b/nixpkgs/pkgs/os-specific/linux/linuxptp/default.nix
index 84a0f4a10d5f..79048064eccb 100644
--- a/nixpkgs/pkgs/os-specific/linux/linuxptp/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/linuxptp/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "linuxptp";
-  version = "2.0";
+  version = "3.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/linuxptp/${pname}-${version}.tgz";
-    sha256 = "0zcw8nllla06451r7bfsa31q4z8jj56j67i07l1azm473r0dj90a";
+    sha256 = "11aps4bc0maihldlb2d0yh2fnj6x4vwjad337kszyny74akyqk6p";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/lockdep/default.nix b/nixpkgs/pkgs/os-specific/linux/lockdep/default.nix
index 74abd12868d5..2e9003c3f926 100644
--- a/nixpkgs/pkgs/os-specific/linux/lockdep/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/lockdep/default.nix
@@ -1,16 +1,47 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, bash, flex, bison, valgrind }:
 
 stdenv.mkDerivation rec {
   pname = "lockdep";
-  version = "4.1.2";
-  fullver = "4.1.2";
 
+  # it would be nice to be able to pick a kernel version in sync with something
+  # else we already ship, but it seems userspace lockdep isn't very well maintained
+  # and appears broken in many kernel releases
+  version = "5.0.21";
+  fullver = "5.0.21";
   src = fetchurl {
-    url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1mdyjhnzhh254cblahqmpsk226z006z6sm9dmwvg6jlhpsw4cjhy";
+    url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
+    sha256 = "1my2m9hvnvdrvzcg0fgqgaga59y2cd5zlpv7xrfj2nn98sjhglwq";
   };
 
-  preConfigure = "cd tools/lib/lockdep";
+  # ensure *this* kernel's userspace-headers are picked up before we
+  # fall back to those in glibc, as they will be from a mismatched
+  # kernel version
+  postPatch = ''
+    substituteInPlace tools/lib/lockdep/Makefile \
+      --replace 'CONFIG_INCLUDES =' $'CONFIG_INCLUDES = -I../../../usr/include\n#'
+  '';
+
+  nativeBuildInputs = [ flex bison ];
+
+  buildPhase = ''
+    make defconfig
+    make headers_install
+    cd tools/lib/lockdep
+    make
+  '';
+
+  doCheck = true;
+  checkInputs = [ valgrind ];
+  checkPhase = ''
+    # there are more /bin/bash references than just shebangs
+    for f in lockdep run_tests.sh tests/*.sh; do
+      substituteInPlace $f \
+        --replace '/bin/bash' '${bash}/bin/bash'
+    done
+
+    ./run_tests.sh
+  '';
+
   installPhase = ''
     mkdir -p $out/bin $out/lib $out/include
 
diff --git a/nixpkgs/pkgs/os-specific/linux/lvm2/default.nix b/nixpkgs/pkgs/os-specific/linux/lvm2/default.nix
index 8db4be94e4ed..7bbd1768c043 100644
--- a/nixpkgs/pkgs/os-specific/linux/lvm2/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/lvm2/default.nix
@@ -1,48 +1,72 @@
-{ stdenv, fetchgit, fetchpatch, pkgconfig, systemd, udev, utillinux, libuuid
+{ stdenv
+, fetchpatch
+, fetchurl
+, pkgconfig
+, utillinux
+, libuuid
 , thin-provisioning-tools, libaio
-, enable_dmeventd ? false }:
+, enableCmdlib ? false
+, enableDmeventd ? false
+, udev ? null
+, nixosTests
+}:
 
-let
-  version = "2.03.01";
-in
+# configure: error: --enable-dmeventd requires --enable-cmdlib to be used as well
+assert enableDmeventd -> enableCmdlib;
 
-stdenv.mkDerivation {
-  pname = "lvm2";
-  inherit version;
+stdenv.mkDerivation rec {
+  pname = "lvm2" + stdenv.lib.optionalString enableDmeventd "with-dmeventd";
+  version = "2.03.10";
 
-  src = fetchgit {
-    url = "git://sourceware.org/git/lvm2.git";
-    rev = "v${builtins.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "0jlaswf1srdxiqpgpp97j950ddjds8z0kr4pbwmal2za2blrgvbl";
+  src = fetchurl {
+    url = "https://mirrors.kernel.org/sourceware/lvm2/LVM2.${version}.tgz";
+    sha256 = "1l0fkn9abrgk5mfn6jfh9qhdr86b59l1c5pk6lp8jh0491d69las";
   };
 
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ udev libuuid thin-provisioning-tools libaio ];
+
   configureFlags = [
     "--disable-readline"
-    "--enable-udev_rules"
-    "--enable-udev_sync"
     "--enable-pkgconfig"
-    "--enable-cmdlib"
-  ] ++ stdenv.lib.optional enable_dmeventd " --enable-dmeventd"
-  ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    "--with-default-locking-dir=/run/lock/lvm"
+    "--with-default-run-dir=/run/lvm"
+    "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
+  ] ++ stdenv.lib.optionals (!enableCmdlib) [
+    "--bindir=${placeholder "bin"}/bin"
+    "--sbindir=${placeholder "bin"}/bin"
+    "--libdir=${placeholder "lib"}/lib"
+  ] ++ stdenv.lib.optional enableCmdlib "--enable-cmdlib"
+  ++ stdenv.lib.optionals enableDmeventd [
+    "--enable-dmeventd"
+    "--with-dmeventd-pidfile=/run/dmeventd/pid"
+    "--with-default-dm-run-dir=/run/dmeventd"
+  ] ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
     "ac_cv_func_malloc_0_nonnull=yes"
     "ac_cv_func_realloc_0_nonnull=yes"
+  ] ++
+  stdenv.lib.optionals (udev != null) [
+    "--enable-udev_rules"
+    "--enable-udev_sync"
   ];
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ udev libuuid thin-provisioning-tools libaio ];
+  preConfigure = ''
+    sed -i /DEFAULT_SYS_DIR/d Makefile.in
+    sed -i /DEFAULT_PROFILE_DIR/d conf/Makefile.in
+    substituteInPlace scripts/lvm2_activation_generator_systemd_red_hat.c \
+      --replace /usr/bin/udevadm /run/current-system/systemd/bin/udevadm
+    # https://github.com/lvmteam/lvm2/issues/36
+    substituteInPlace udev/69-dm-lvm-metad.rules.in \
+      --replace "(BINDIR)/systemd-run" /run/current-system/systemd/bin/systemd-run
 
-  preConfigure =
-    ''
-      sed -i /DEFAULT_SYS_DIR/d Makefile.in
-      sed -i /DEFAULT_PROFILE_DIR/d conf/Makefile.in
-    '' + stdenv.lib.optionalString (systemd != null) ''
-      substituteInPlace scripts/lvm2_activation_generator_systemd_red_hat.c \
-        --replace /usr/bin/udevadm ${systemd}/bin/udevadm
-    '';
+    substituteInPlace make.tmpl.in --replace "@systemdsystemunitdir@" "$out/lib/systemd/system"
+    substituteInPlace libdm/make.tmpl.in --replace "@systemdsystemunitdir@" "$out/lib/systemd/system"
+  '';
+
+  postConfigure = ''
+    sed -i 's|^#define LVM_CONFIGURE_LINE.*$|#define LVM_CONFIGURE_LINE "<removed>"|g' ./include/configure.h
+  '';
 
-  # https://github.com/NixOS/nixpkgs/pull/52597
-  # gcc: error: ../../device_mapper/libdevice-mapper.a: No such file or directory
-  enableParallelBuilding = false;
 
   patches = stdenv.lib.optionals stdenv.hostPlatform.isMusl [
     (fetchpatch {
@@ -64,30 +88,41 @@ stdenv.mkDerivation {
 
   doCheck = false; # requires root
 
+  makeFlags = stdenv.lib.optionals (udev != null) [
+    "SYSTEMD_GENERATOR_DIR=$(out)/lib/systemd/system-generators"
+  ];
+
   # To prevent make install from failing.
   installFlags = [ "OWNER=" "GROUP=" "confdir=$(out)/etc" ];
 
   # Install systemd stuff.
-  #installTargets = "install install_systemd_generators install_systemd_units install_tmpfiles_configuration";
-
-  postInstall =
-    ''
-      substituteInPlace $out/lib/udev/rules.d/13-dm-disk.rules \
-        --replace $out/sbin/blkid ${utillinux}/sbin/blkid
-    '' + stdenv.lib.optionalString (systemd != null) ''
-      # Systemd stuff
-      mkdir -p $out/etc/systemd/system $out/lib/systemd/system-generators
-      cp scripts/blk_availability_systemd_red_hat.service $out/etc/systemd/system
-      cp scripts/lvm2_activation_generator_systemd_red_hat $out/lib/systemd/system-generators
-    '';
+  installTargets = [ "install" ] ++ stdenv.lib.optionals (udev != null) [
+    "install_systemd_generators"
+    "install_systemd_units"
+    "install_tmpfiles_configuration"
+  ];
+
+  # only split bin and lib out from out if cmdlib isn't enabled
+  outputs = [
+    "out"
+    "dev"
+    "man"
+  ] ++ stdenv.lib.optionals (enableCmdlib != true) [
+    "bin"
+    "lib"
+  ];
+
+  postInstall = stdenv.lib.optionalString (enableCmdlib != true) ''
+    moveToOutput lib/libdevmapper.so $lib
+  '';
+
+  passthru.tests.installer = nixosTests.installer.lvm;
 
   meta = with stdenv.lib; {
     homepage = "http://sourceware.org/lvm2/";
     description = "Tools to support Logical Volume Management (LVM) on Linux";
     platforms = platforms.linux;
     license = with licenses; [ gpl2 bsd2 lgpl21 ];
-    maintainers = with maintainers; [raskin];
-    inherit version;
-    downloadPage = "ftp://sources.redhat.com/pub/lvm2/";
+    maintainers = with maintainers; [ raskin ajs124 ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/lvm2/default.upstream b/nixpkgs/pkgs/os-specific/linux/lvm2/default.upstream
deleted file mode 100644
index 1e5aaf5ab5cf..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/lvm2/default.upstream
+++ /dev/null
@@ -1,4 +0,0 @@
-url ftp://sources.redhat.com/pub/lvm2/
-version_link '[.]tgz$'
-version '.*[^0-9.][^.]*[.]([0-9.]+)[.].*' '\1'
-do_overwrite () { do_overwrite_just_version; }
diff --git a/nixpkgs/pkgs/os-specific/linux/lxc/default.nix b/nixpkgs/pkgs/os-specific/linux/lxc/default.nix
index cc25f90f2481..21c1eede9d7a 100644
--- a/nixpkgs/pkgs/os-specific/linux/lxc/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/lxc/default.nix
@@ -9,11 +9,11 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "lxc";
-  version = "4.0.2";
+  version = "4.0.4";
 
   src = fetchurl {
     url = "https://linuxcontainers.org/downloads/lxc/lxc-${version}.tar.gz";
-    sha256 = "1c2wbbcvs58slyq0skxizx61q1lb4yvak28x4gzsbzh3yg6nscya";
+    sha256 = "15frszz5am9bnr8vh1zpg89x0xigcfm19jax0z16cazd42xahr9w";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix b/nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix
index 4011b3885625..bcc8614bc6ab 100644
--- a/nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/lxcfs/default.nix
@@ -4,13 +4,14 @@
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
-  name = "lxcfs-4.0.3";
+  pname = "lxcfs";
+  version = "4.0.5";
 
   src = fetchFromGitHub {
     owner = "lxc";
     repo = "lxcfs";
-    rev = name;
-    sha256 = "0v6c5vc3i1l4sy4iamzdqvwibj6xr1lna4w1hxkn3s6jggcbxwca";
+    rev = "lxcfs-${version}";
+    sha256 = "12mk9hgqzzh1874389lrpvldlp87qxxa1sxzk5zr0d0n1857am5y";
   };
 
   nativeBuildInputs = [ pkgconfig help2man autoreconfHook ];
@@ -40,8 +41,9 @@ stdenv.mkDerivation rec {
   '';
 
   meta = {
-    homepage = "https://linuxcontainers.org/lxcfs";
     description = "FUSE filesystem for LXC";
+    homepage = "https://linuxcontainers.org/lxcfs";
+    changelog = "https://linuxcontainers.org/lxcfs/news/";
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ mic92 fpletz ];
diff --git a/nixpkgs/pkgs/os-specific/linux/microcode/amd.nix b/nixpkgs/pkgs/os-specific/linux/microcode/amd.nix
index a1a37db9dd6f..135187c9a108 100644
--- a/nixpkgs/pkgs/os-specific/linux/microcode/amd.nix
+++ b/nixpkgs/pkgs/os-specific/linux/microcode/amd.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation {
 
   meta = with stdenv.lib; {
     description = "AMD Processor microcode patch";
-    homepage = "http://www.amd64.org/support/microcode.html";
+    homepage = "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git";
     license = licenses.unfreeRedistributableFirmware;
     platforms = platforms.linux;
   };
diff --git a/nixpkgs/pkgs/os-specific/linux/mmc-utils/default.nix b/nixpkgs/pkgs/os-specific/linux/mmc-utils/default.nix
index 61ad327c3942..6a9f807947d4 100644
--- a/nixpkgs/pkgs/os-specific/linux/mmc-utils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/mmc-utils/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation {
   pname = "mmc-utils";
-  version = "2018-12-14";
+  version = "2019-10-04";
 
   src = fetchgit {
     url = "git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git";
-    rev = "aef913e31b659462fe6b9320d241676cba97f67b";
-    sha256 = "1mak9rqjp6yvqk2h5hfil5a9gfx138h62n3cryckfbhr6fmaylm7";
+    rev = "73d6c59af8d1bcedf5de4aa1f5d5b7f765f545f5";
+    sha256 = "18a7qm86gavg15gv4h6xfnapgq24v4dyvhwfp53lkssxyhjbli0z";
   };
 
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/multipath-tools/default.nix b/nixpkgs/pkgs/os-specific/linux/multipath-tools/default.nix
index d60b4a9a549d..02853f6497fc 100644
--- a/nixpkgs/pkgs/os-specific/linux/multipath-tools/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/multipath-tools/default.nix
@@ -10,8 +10,13 @@ stdenv.mkDerivation rec {
     sha256 = "1mgjylklh1cx8px8ffgl12kyc0ln3445vbabd2sy8chq31rpiiq8";
   };
 
+  patches = [
+    # fix build with json-c 0.14 https://www.redhat.com/archives/dm-devel/2020-May/msg00261.html
+    ./json-c-0.14.patch
+  ];
+
   postPatch = ''
-    substituteInPlace libmultipath/Makefile --replace /usr/include/libdevmapper.h ${lvm2}/include/libdevmapper.h
+    substituteInPlace libmultipath/Makefile --replace /usr/include/libdevmapper.h ${stdenv.lib.getDev lvm2}/include/libdevmapper.h
     sed -i -re '
       s,^( *#define +DEFAULT_MULTIPATHDIR\>).*,\1 "'"$out/lib/multipath"'",
     ' libmultipath/defaults.h
diff --git a/nixpkgs/pkgs/os-specific/linux/multipath-tools/json-c-0.14.patch b/nixpkgs/pkgs/os-specific/linux/multipath-tools/json-c-0.14.patch
new file mode 100644
index 000000000000..d5fee4248830
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/multipath-tools/json-c-0.14.patch
@@ -0,0 +1,21 @@
+diff --git a/libdmmp/libdmmp_private.h b/libdmmp/libdmmp_private.h
+index ac85b63f..b1a6ddea 100644
+--- a/libdmmp/libdmmp_private.h
++++ b/libdmmp/libdmmp_private.h
+@@ -30,6 +30,7 @@
+ #include <stdint.h>
+ #include <string.h>
+ #include <assert.h>
++#include <stdbool.h>
+ #include <json.h>
+ 
+ #include "libdmmp/libdmmp.h"
+@@ -82,7 +83,7 @@ static out_type func_name(struct dmmp_context *ctx, const char *var_name) { \
+ do { \
+ 	json_type j_type = json_type_null; \
+ 	json_object *j_obj_tmp = NULL; \
+-	if (json_object_object_get_ex(j_obj, key, &j_obj_tmp) != TRUE) { \
++	if (json_object_object_get_ex(j_obj, key, &j_obj_tmp) != true) { \
+ 		_error(ctx, "Invalid JSON output from multipathd IPC: " \
+ 		       "key '%s' not found", key); \
+ 		rc = DMMP_ERR_IPC_ERROR; \
diff --git a/nixpkgs/pkgs/os-specific/linux/musl/default.nix b/nixpkgs/pkgs/os-specific/linux/musl/default.nix
index 422ad5c1cb50..67d08454a844 100644
--- a/nixpkgs/pkgs/os-specific/linux/musl/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/musl/default.nix
@@ -35,11 +35,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "musl";
-  version = "1.1.24";
+  version = "1.2.0";
 
   src = fetchurl {
     url    = "https://www.musl-libc.org/releases/${pname}-${version}.tar.gz";
-    sha256 = "18r2a00k82hz0mqdvgm7crzc7305l36109c0j9yjmkxj2alcjw0k";
+    sha256 = "1s6lix02k1ijm4nmhzpmwzk5w6xfkhn70nvvk8zjs51r24cpppn6";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/os-specific/linux/mwprocapture/default.nix b/nixpkgs/pkgs/os-specific/linux/mwprocapture/default.nix
index acb4676a3f51..c5f293011db3 100644
--- a/nixpkgs/pkgs/os-specific/linux/mwprocapture/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/mwprocapture/default.nix
@@ -15,11 +15,11 @@ let
 in
 stdenv.mkDerivation rec {
   name = "mwprocapture-1.2.${version}-${kernel.version}";
-  version = "4054";
+  version = "4177";
 
   src = fetchurl {
     url = "http://www.magewell.com/files/drivers/ProCaptureForLinux_${version}.tar.gz";
-    sha256 = "0ylx75jcwlqds8w6lm11nxdlzxvy7xlz4rka2k5d6gmqa5fv19c2";
+    sha256 = "1nf51w9yixpvr767k49sfdb9n9rv5qc72f5yki1mkghbmabw7vys";
   };
 
   nativeBuildInputs = [ kernel.moduleBuildDependencies ];
diff --git a/nixpkgs/pkgs/os-specific/linux/netatop/default.nix b/nixpkgs/pkgs/os-specific/linux/netatop/default.nix
index 93bb1316d20d..e433fd1e9f33 100644
--- a/nixpkgs/pkgs/os-specific/linux/netatop/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/netatop/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, kernel, zlib }:
 
 let
-  version = "2.0";
+  version = "3.1";
 in
 
 stdenv.mkDerivation {
@@ -9,7 +9,7 @@ stdenv.mkDerivation {
 
   src = fetchurl {
     url = "http://www.atoptool.nl/download/netatop-${version}.tar.gz";
-    sha256 = "03n248p1l3ps7gj2hdlcbrb1fsw1zcmgzypj4j4l4rynjjh7qvf6";
+    sha256 = "0qjw8glfdmngfvbn1w63q128vxdz2jlabw13y140ga9i5ibl6vvk";
   };
 
   buildInputs = [ zlib ];
@@ -24,6 +24,7 @@ stdenv.mkDerivation {
         -e s,/usr,$out, \
         -e /init.d/d \
         -e /depmod/d \
+        -e /netatop.service/d \
         Makefile
   '';
 
diff --git a/nixpkgs/pkgs/os-specific/linux/nftables/default.nix b/nixpkgs/pkgs/os-specific/linux/nftables/default.nix
index 34f899977d1a..9ec42ad66b06 100644
--- a/nixpkgs/pkgs/os-specific/linux/nftables/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/nftables/default.nix
@@ -10,12 +10,12 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "0.9.3";
+  version = "0.9.6";
   pname = "nftables";
 
   src = fetchurl {
     url = "https://netfilter.org/projects/nftables/files/${pname}-${version}.tar.bz2";
-    sha256 = "0y6vbqp6x8w165q65h4n9sba1406gaz0d4744gqszbm7w9f92swm";
+    sha256 = "0vmn6xwqa1nq6crfxshh049b199d0aj6hfgin7k068xhibzgvmk8";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/os-specific/linux/numworks-udev-rules/50-numworks-calculator.rules b/nixpkgs/pkgs/os-specific/linux/numworks-udev-rules/50-numworks-calculator.rules
new file mode 100644
index 000000000000..ab07de99718b
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/numworks-udev-rules/50-numworks-calculator.rules
@@ -0,0 +1,2 @@
+SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="a291", TAG+="uaccess"
+SUBSYSTEM=="usb", ATTR{idVendor}=="0483", ATTR{idProduct}=="df11", TAG+="uaccess"
diff --git a/nixpkgs/pkgs/os-specific/linux/numworks-udev-rules/default.nix b/nixpkgs/pkgs/os-specific/linux/numworks-udev-rules/default.nix
new file mode 100644
index 000000000000..4a123b202730
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/numworks-udev-rules/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "numworks-udev-rules";
+  version = "unstable-2020-08-31";
+
+  udevRules = ./50-numworks-calculator.rules;
+  dontUnpack = true;
+
+  installPhase = ''
+    install -Dm 644 "${udevRules}" "$out/lib/udev/rules.d/50-numworks-calculator.rules"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Udev rules for Numworks calculators";
+    homepage = "https://numworks.com";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ shamilton ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/numworks-udev-rules/update.sh b/nixpkgs/pkgs/os-specific/linux/numworks-udev-rules/update.sh
new file mode 100755
index 000000000000..3949f6fd8f41
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/numworks-udev-rules/update.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+wget -O 50-numworks-calculator.rules "https://workshop.numworks.com/files/drivers/linux/50-numworks-calculator.rules"
diff --git a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
index e195bf587eed..7c37fcf231fc 100644
--- a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -22,31 +22,42 @@ rec {
   # Policy: use the highest stable version as the default (on our master).
   stable = if stdenv.hostPlatform.system == "x86_64-linux"
     then generic {
-      version = "440.82";
-      sha256_64bit = "13km9800skyraa0s312fc4hwyw5pzb0jfkrv1yg6anppyan1bm7d";
-      settingsSha256 = "15psxvd65wi6hmxmd2vvsp2v0m07axw613hb355nh15r1dpkr3ma";
-      persistencedSha256 = "13izz9p2kg9g38gf57g3s2sw7wshp1i9m5pzljh9v82c4c22x1fw";
+      version = "450.66";
+      sha256_64bit = "1a6va0gvbzpkyza693v2ml1is4xbv8wxasqk0zd5y7rxin94c1ms";
+      settingsSha256 = "0mkgs91gx7xb7f24xkq9fl7i8d4l7s0wr9a44b1gm1vkw82fm7lj";
+      persistencedSha256 = "02id8cg8fba7c1j4m6vj4gp2mv39lz2k557kdjw8lszcpw6f1fhh";
     }
     else legacy_390;
 
   # No active beta right now
   beta = stable;
 
+  # Vulkan developer beta driver
+  vulkan_beta = generic {
+    version = "450.56.11";
+    persistencedVersion = "450.57";
+    settingsVersion = "450.57";
+    sha256_64bit = "1k64h8sp4rf6kc7liypznjgkmxi67njy1s8xy2r341fhl62pl010";
+    settingsSha256 = "1clbj9a3kv3j8jg35c197gd7b3f9f9f4h9ll5hlax95hdg12lgan";
+    persistencedSha256 = "17747z1fsbiznfsmahxmz8kmhwwcjanpfih60v5mwzk63gy4i3d5";
+    url = "https://developer.nvidia.com/vulkan-beta-4505611-linux";
+  };
+
   # Last one supporting x86
   legacy_390 = generic {
-    version = "390.132";
-    sha256_32bit = "0xgjywzkmmm6a5gby67l2kx0gn7bcxksv4wam0sqym6l1s7v5bai";
-    sha256_64bit = "0qgzsajrc3xkf2jjkwip3la0f2ixp45f76nmz5cphvzrb7k2slxn";
-    settingsSha256 = "07nylqzhldq1gr40q7x5424p2aml3qqnvl2zvnpzc65x2way34v6";
-    persistencedSha256 = "0vab5rj9b1n9yl9674q7i88w1i5p8nhvrwsayn7i1vh4wp3m840r";
+    version = "390.138";
+    sha256_32bit = "0y3qjygl0kfz9qs0rp9scn1k3l8ym9dib7wpkyh5gs4klcip7xkv";
+    sha256_64bit = "0rnnb5l4i8s76vlg6yvlrxhm2x9wdqw7k5hgf4fyaa3cr3k1kysz";
+    settingsSha256 = "0ad6hwl56nvbdv9g85lw7ywadqvc2gaq9x6d2vjcia9kg4vrmfqx";
+    persistencedSha256 = "15jciyq6i3pz1g67xzqlwmc62v3xswzhjcqmfcdndvlvhcibsimr";
   };
 
   legacy_340 = generic {
-    version = "340.107";
-    sha256_32bit = "0mh83affz6bim26ws7kkwwcfj2s6vkdy4d45hifsbshr82qd52wd";
-    sha256_64bit = "0pv9yv3x0kg9hfkmc50xb54ahxkbnyy2vyy4hj2h0s6m9sb5kqz3";
-    settingsSha256 = "1zf0fy9jj6ipm5vk153swpixqm75iricmx7x49pmr97kzyczaxa7";
-    persistencedSha256 = "0v225jkiqk9rma6whxs1a4fyr4haa75bvi52ss3vsyn62zzl24na";
+    version = "340.108";
+    sha256_32bit = "1jkwa1phf0x4sgw8pvr9d6krmmr3wkgwyygrxhdazwyr2bbalci0";
+    sha256_64bit = "06xp6c0sa7v1b82gf0pq0i5p0vdhmm3v964v0ypw36y0nzqx8wf6";
+    settingsSha256 = "0zm29jcf0mp1nykcravnzb5isypm8l8mg2gpsvwxipb7nk1ivy34";
+    persistencedSha256 = "1ax4xn3nmxg1y6immq933cqzw6cj04x93saiasdc0kjlv0pvvnkn";
     useGLVND = false;
 
     patches = [ ./vm_operations_struct-fault.patch ];
diff --git a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/generic.nix b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/generic.nix
index 1d73ab8171a2..8a9e340a20a2 100644
--- a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/generic.nix
+++ b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/generic.nix
@@ -1,8 +1,11 @@
 { version
+, url ? null
 , sha256_32bit ? null
 , sha256_64bit
 , settingsSha256
+, settingsVersion ? version
 , persistencedSha256
+, persistencedVersion ? version
 , useGLVND ? true
 , useProfiles ? true
 , preferGtk2 ? false
@@ -11,7 +14,7 @@
 , prePatch ? ""
 , patches ? []
 , broken ? false
-}:
+}@args:
 
 { stdenv, callPackage, pkgs, pkgsi686Linux, fetchurl
 , kernel ? null, perl, nukeReferences
@@ -19,6 +22,9 @@
   # nvidia-settings).  Used to support 32-bit binaries on 64-bit
   # Linux.
   libsOnly ? false
+, # don't include the bundled 32-bit libraries on 64-bit platforms,
+  # even if it’s in downloaded binary
+  disable32Bit ? false
 }:
 
 with stdenv.lib;
@@ -30,7 +36,7 @@ assert ! versionOlder version "391" -> stdenv.hostPlatform.system == "x86_64-lin
 let
   nameSuffix = optionalString (!libsOnly) "-${kernel.version}";
   pkgSuffix = optionalString (versionOlder version "304") "-pkg0";
-  i686bundled = versionAtLeast version "391";
+  i686bundled = versionAtLeast version "391" && !disable32Bit;
 
   libPathFor = pkgs: pkgs.lib.makeLibraryPath [ pkgs.libdrm pkgs.xorg.libXext pkgs.xorg.libX11
     pkgs.xorg.libXv pkgs.xorg.libXrandr pkgs.xorg.libxcb pkgs.zlib pkgs.stdenv.cc.cc ];
@@ -43,12 +49,12 @@ let
     src =
       if stdenv.hostPlatform.system == "x86_64-linux" then
         fetchurl {
-          url = "https://download.nvidia.com/XFree86/Linux-x86_64/${version}/NVIDIA-Linux-x86_64-${version}${pkgSuffix}.run";
+          url = args.url or "https://download.nvidia.com/XFree86/Linux-x86_64/${version}/NVIDIA-Linux-x86_64-${version}${pkgSuffix}.run";
           sha256 = sha256_64bit;
         }
       else if stdenv.hostPlatform.system == "i686-linux" then
         fetchurl {
-          url = "https://download.nvidia.com/XFree86/Linux-x86/${version}/NVIDIA-Linux-x86-${version}${pkgSuffix}.run";
+          url = args.url or "https://download.nvidia.com/XFree86/Linux-x86/${version}/NVIDIA-Linux-x86-${version}${pkgSuffix}.run";
           sha256 = sha256_32bit;
         }
       else throw "nvidia-x11 does not support platform ${stdenv.hostPlatform.system}";
@@ -86,13 +92,14 @@ let
         withGtk3 = !preferGtk2;
       };
       persistenced = mapNullable (hash: callPackage (import ./persistenced.nix self hash) { }) persistencedSha256;
+      inherit persistencedVersion settingsVersion;
     };
 
     meta = with stdenv.lib; {
       homepage = "https://www.nvidia.com/object/unix.html";
       description = "X.org driver and kernel module for NVIDIA graphics cards";
       license = licenses.unfreeRedistributable;
-      platforms = [ "i686-linux" "x86_64-linux" ];
+      platforms = [ "x86_64-linux" ] ++ optionals (!i686bundled) [ "i686-linux" ];
       maintainers = with maintainers; [ baracoder ];
       priority = 4; # resolves collision with xorg-server's "lib/xorg/modules/extensions/libglx.so"
       inherit broken;
diff --git a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/persistenced.nix b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/persistenced.nix
index de36ad06c60c..ff2792ac315d 100644
--- a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/persistenced.nix
+++ b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/persistenced.nix
@@ -2,14 +2,14 @@ nvidia_x11: sha256:
 
 { stdenv, fetchFromGitHub, m4 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "nvidia-persistenced";
-  inherit (nvidia_x11) version;
+  version = nvidia_x11.persistencedVersion;
 
   src = fetchFromGitHub {
     owner = "NVIDIA";
     repo = "nvidia-persistenced";
-    rev = nvidia_x11.version;
+    rev = nvidia_x11.persistencedVersion;
     inherit sha256;
   };
 
diff --git a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/settings.nix b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/settings.nix
index b1250e56ee06..fbddd7b7fa21 100644
--- a/nixpkgs/pkgs/os-specific/linux/nvidia-x11/settings.nix
+++ b/nixpkgs/pkgs/os-specific/linux/nvidia-x11/settings.nix
@@ -9,13 +9,13 @@ let
   src = fetchFromGitHub {
     owner = "NVIDIA";
     repo = "nvidia-settings";
-    rev = nvidia_x11.version;
+    rev = nvidia_x11.settingsVersion;
     inherit sha256;
   };
 
   libXNVCtrl = stdenv.mkDerivation {
     pname = "libXNVCtrl";
-    inherit (nvidia_x11) version;
+    version = nvidia_x11.settingsVersion;
     inherit src;
 
     buildInputs = [ libXrandr libXext ];
@@ -42,7 +42,7 @@ in
 
 stdenv.mkDerivation {
   pname = "nvidia-settings";
-  inherit (nvidia_x11) version;
+  version = nvidia_x11.settingsVersion;
   inherit src;
 
   nativeBuildInputs = [ pkgconfig m4 ];
diff --git a/nixpkgs/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix b/nixpkgs/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix
new file mode 100644
index 000000000000..3247e8c4eda5
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/oci-seccomp-bpf-hook/default.nix
@@ -0,0 +1,58 @@
+{ stdenv
+, buildGoModule
+, fetchFromGitHub
+, go-md2man
+, installShellFiles
+, pkg-config
+, bcc
+, libseccomp
+}:
+
+buildGoModule rec {
+  pname = "oci-seccomp-bpf-hook";
+  version = "1.2.0";
+  src = fetchFromGitHub {
+    owner = "containers";
+    repo = "oci-seccomp-bpf-hook";
+    rev = "v${version}";
+    sha256 = "143x4daixzhhhpli1l14r7dr7dn3q42w8dddr16jzhhwighsirqw";
+  };
+  vendorSha256 = null;
+  doCheck = false;
+
+  outputs = [ "out" "man" ];
+  nativeBuildInputs = [
+    go-md2man
+    installShellFiles
+    pkg-config
+  ];
+  buildInputs = [
+    bcc
+    libseccomp
+  ];
+
+  buildPhase = ''
+    make
+  '';
+
+  postBuild = ''
+    substituteInPlace oci-seccomp-bpf-hook.json --replace HOOK_BIN_DIR "$out/bin"
+  '';
+
+  installPhase = ''
+    install -Dm755 bin/* -t $out/bin
+    install -Dm644 oci-seccomp-bpf-hook.json -t $out
+    installManPage docs/*.[1-9]
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/containers/oci-seccomp-bpf-hook";
+    description = ''
+      OCI hook to trace syscalls and generate a seccomp profile
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ saschagrunert ];
+    platforms = platforms.linux;
+    badPlatforms = [ "aarch64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/open-iscsi/default.nix b/nixpkgs/pkgs/os-specific/linux/open-iscsi/default.nix
index 43859dc9af3a..01bbd9a9cc16 100644
--- a/nixpkgs/pkgs/os-specific/linux/open-iscsi/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/open-iscsi/default.nix
@@ -4,7 +4,7 @@
 
 stdenv.mkDerivation rec {
   pname = "open-iscsi";
-  version = "2.1.1";
+  version = "2.1.2";
 
   nativeBuildInputs = [ autoconf automake gettext libtool perl pkgconf ];
   buildInputs = [ kmod openisns.lib openssl systemd utillinux ];
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     owner = "open-iscsi";
     repo = "open-iscsi";
     rev = version;
-    sha256 = "1xa3mbid9mkajp8mr8jx6cymv0kd7yqs96jvff54n6wb9qhn9qll";
+    sha256 = "0fazf2ighj0akrvcj3jm3kd6wl9lgznvr38g6icwfkqk7bykjkam";
   };
 
   DESTDIR = "$(out)";
diff --git a/nixpkgs/pkgs/os-specific/linux/openvswitch/default.nix b/nixpkgs/pkgs/os-specific/linux/openvswitch/default.nix
index f0fb0a834ffe..33b252a02254 100644
--- a/nixpkgs/pkgs/os-specific/linux/openvswitch/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/openvswitch/default.nix
@@ -8,12 +8,12 @@ let
   _kernel = kernel;
   pythonEnv = python3.withPackages (ps: with ps; [ six ]);
 in stdenv.mkDerivation rec {
-  version = "2.13.0";
+  version = "2.14.0";
   pname = "openvswitch";
 
   src = fetchurl {
     url = "https://www.openvswitch.org/releases/${pname}-${version}.tar.gz";
-    sha256 = "0cd5vmfr6zwgcnkwys6rag6cmz68v0librpaplianv734xs74pyx";
+    sha256 = "0q52k6mq1jfsv0ix55mjd5ljlalhklhqfrma3l61dzhgihmfawa1";
   };
 
   kernel = optional (_kernel != null) _kernel.dev;
diff --git a/nixpkgs/pkgs/os-specific/linux/pam_gnupg/default.nix b/nixpkgs/pkgs/os-specific/linux/pam_gnupg/default.nix
new file mode 100644
index 000000000000..84135f2492aa
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/pam_gnupg/default.nix
@@ -0,0 +1,32 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pam, gnupg }:
+
+stdenv.mkDerivation rec {
+  pname = "pam_gnupg";
+  version = "0.1";
+
+  src = fetchFromGitHub {
+    owner = "cruegge";
+    repo = "pam-gnupg";
+    rev = "v${version}";
+    sha256 = "0b70mazyvcbg6xyqllm62rwhbz0y94pcy202db1qyy4w8466bhsw";
+  };
+
+  configureFlags = [
+    "--with-moduledir=${placeholder "out"}/lib/security"
+  ];
+
+  buildInputs = [ pam gnupg ];
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  meta = with stdenv.lib; {
+    description = "Unlock GnuPG keys on login";
+    longDescription = ''
+      A PAM module that hands over your login password to gpg-agent. This can
+      be useful if you are using a GnuPG-based password manager like pass.
+    '';
+    homepage = "https://github.com/cruegge/pam-gnupg";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ mtreca ];
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/pam_p11/default.nix b/nixpkgs/pkgs/os-specific/linux/pam_p11/default.nix
new file mode 100644
index 000000000000..d5336cc9f4ce
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/pam_p11/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, autoreconfHook, pkg-config, openssl, libp11, pam }:
+
+stdenv.mkDerivation rec {
+  pname = "pam_p11";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "OpenSC";
+    repo = "pam_p11";
+    rev = "pam_p11-${version}";
+    sha256 = "1caidy18rq5zk82d51x8vwidmkhwmanf3qm25x1yrdlbhxv6m7lk";
+  };
+
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
+  buildInputs = [ pam openssl libp11 ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/OpenSC/pam_p11";
+    description = "Authentication with PKCS#11 modules";
+    license = licenses.lgpl21Plus;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ sb0 ];
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/pcm/default.nix b/nixpkgs/pkgs/os-specific/linux/pcm/default.nix
index f8f0d165d74b..3c49e53d8008 100644
--- a/nixpkgs/pkgs/os-specific/linux/pcm/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/pcm/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  version = "202005";
+  version = "202008";
   pname = "pcm";
 
   src = fetchFromGitHub {
     owner = "opcm";
     repo = "pcm";
     rev = version;
-    sha256 = "10dyjgbxb263i64p4zfvy6xjb2hp7wg2k6ygsr8ikjawllxp8m01";
+    sha256 = "1paxwq0p39vp2ma0rg7dkalc3r28wzj77sm3alavvk2vxgvxi0ig";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/piper/default.nix b/nixpkgs/pkgs/os-specific/linux/piper/default.nix
index 0da972316788..641c8b8ba81f 100644
--- a/nixpkgs/pkgs/os-specific/linux/piper/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/piper/default.nix
@@ -4,7 +4,7 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "piper";
-  version = "0.5";
+  version = "0.5.1";
 
   format = "other";
 
@@ -12,7 +12,7 @@ python3.pkgs.buildPythonApplication rec {
     owner  = "libratbag";
     repo   = "piper";
     rev    =  version;
-    sha256 = "00vrcsbsv2477l1ncpyzc61lhxgac84dsgr3sjs8qxw3nh1gaasv";
+    sha256 = "1nfjnsiwg2rs6gkjsxzhr2708i6di149dgwq3cf6l12rxqpb8arj";
   };
 
   nativeBuildInputs = [ meson ninja gettext pkgconfig wrapGAppsHook desktop-file-utils appstream-glib gobject-introspection ];
diff --git a/nixpkgs/pkgs/os-specific/linux/powerstat/default.nix b/nixpkgs/pkgs/os-specific/linux/powerstat/default.nix
index dd3b24dd19a2..6020139ad4b4 100644
--- a/nixpkgs/pkgs/os-specific/linux/powerstat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/powerstat/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "powerstat";
-  version = "0.02.23";
+  version = "0.02.24";
   
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "1yj8ja0hw92wscazxh9vr3qdz24wpw2fgd3w7w088srfzg2aqf3a";
+    sha256 = "0yrc1xi9flxn2mvmzp0b0vd0md5z4p8fd4y8bszc67xy12qiqy0j";
   };
   
   installFlags = [ "DESTDIR=${placeholder "out"}" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/powertop/default.nix b/nixpkgs/pkgs/os-specific/linux/powertop/default.nix
index bcac7ab63c0a..4bf318d743ea 100644
--- a/nixpkgs/pkgs/os-specific/linux/powertop/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/powertop/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "powertop";
-  version = "2.10";
+  version = "2.13";
 
   src = fetchurl {
-    url = "https://01.org/sites/default/files/downloads/${pname}-v${version}.tar.gz";
-    sha256 = "0xaazqccyd42v2q532dxx40nqhb9sfsa6cyx8641rl57mfg4bdyk";
+    url = "https://01.org/sites/default/files/downloads/${pname}-${version}.tar.gz";
+    sha256 = "0y1ixw8v17fdb1ima0zshrd0rh4zxdh10r93nrrvq6d4lhn9jpx6";
   };
 
   outputs = [ "out" "man" ];
@@ -20,10 +20,7 @@ stdenv.mkDerivation rec {
       url = "https://git.alpinelinux.org/aports/plain/main/powertop/strerror_r.patch?id=3b9214d436f1611f297b01f72469d66bfe729d6e";
       sha256 = "1kzddhcrb0n2iah4lhgxwwy4mkhq09ch25jjngyq6pdj6pmfkpfw";
     }
-  ) ++ [
-    # Fix vertical scrolling, see: https://lists.01.org/pipermail/powertop/2019-March/002046.html
-    ./fix-vertical-scrolling.patch
-  ];
+  );
 
   postPatch = ''
     substituteInPlace src/main.cpp --replace "/sbin/modprobe" "modprobe"
diff --git a/nixpkgs/pkgs/os-specific/linux/powertop/fix-vertical-scrolling.patch b/nixpkgs/pkgs/os-specific/linux/powertop/fix-vertical-scrolling.patch
deleted file mode 100644
index b9b3fdbaf343..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/powertop/fix-vertical-scrolling.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/display.cpp b/src/display.cpp
-index 07227c5..7b3a7a2 100644
---- a/src/display.cpp
-+++ b/src/display.cpp
-@@ -244,7 +244,7 @@ void cursor_down(void)
- 	w = tab_windows[tab_names[current_tab]];
- 	if (w) {
- 		if (w->ypad_pos < 1000) {
--			if (tab_names[current_tab] == "Tunables" || "WakeUp") {
-+			if (tab_names[current_tab] == "Tunables" || tab_names[current_tab] == "WakeUp") {
- 		                if ((w->cursor_pos + 7) >= LINES) { 
- 					prefresh(w->win, ++w->ypad_pos, w->xpad_pos, 
- 						1, 0, LINES - 3, COLS - 1);
diff --git a/nixpkgs/pkgs/os-specific/linux/r8125/default.nix b/nixpkgs/pkgs/os-specific/linux/r8125/default.nix
index a837b2261380..8cdf11f80add 100644
--- a/nixpkgs/pkgs/os-specific/linux/r8125/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/r8125/default.nix
@@ -4,7 +4,7 @@ stdenv.mkDerivation rec {
   pname = "r8125";
   # On update please verify (using `diff -r`) that the source matches the
   # realtek version.
-  version = "9.003.02";
+  version = "9.003.05";
 
   # This is a mirror. The original website[1] doesn't allow non-interactive
   # downloads, instead emailing you a download link.
@@ -12,8 +12,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "ibmibmibm";
     repo = "r8125";
-    rev = "${version}";
-    sha256 = "09ip17x8nhcpxkkhyyawkmd10n73j2ffh1i2nmsr7l3jfq7f9zac";
+    rev = version;
+    sha256 = "016vh997xjs01si0zzs572vgflq3czxd0v4m7h1m3qxcv2cvq7i0";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/rdma-core/default.nix b/nixpkgs/pkgs/os-specific/linux/rdma-core/default.nix
index a9cf7fe03b4a..59a7125aad6d 100644
--- a/nixpkgs/pkgs/os-specific/linux/rdma-core/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rdma-core/default.nix
@@ -4,7 +4,7 @@
 } :
 
 let
-  version = "29.0";
+  version = "31.0";
 
 in stdenv.mkDerivation {
   pname = "rdma-core";
@@ -14,7 +14,7 @@ in stdenv.mkDerivation {
     owner = "linux-rdma";
     repo = "rdma-core";
     rev = "v${version}";
-    sha256 = "03r7jbhw64siyrna9mz0qzppfzp8ilwi7iqdkxgyy33rndncqqnq";
+    sha256 = "0qr8a25ylmkwfgyj519zvl74q16bhf4895xjich2r98rl2yg0qdl";
   };
 
   nativeBuildInputs = [ cmake pkgconfig pandoc docutils makeWrapper ];
diff --git a/nixpkgs/pkgs/os-specific/linux/rfkill/default.nix b/nixpkgs/pkgs/os-specific/linux/rfkill/default.nix
deleted file mode 100644
index 10d46a84821f..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/rfkill/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ stdenv, fetchurl }:
-
-stdenv.mkDerivation rec {
-  name = "rfkill-0.5";
-
-  src = fetchurl {
-    url = "mirror://kernel/software/network/rfkill/${name}.tar.bz2";
-    sha256 = "01zs7p9kd92pxgcgwl5w46h3iyx4acfg6m1j5fgnflsaa350q5iy";
-  };
-
-  makeFlags = [ "PREFIX=$(out)" ];
-
-  meta = with stdenv.lib; {
-    homepage = "http://wireless.kernel.org/en/users/Documentation/rfkill";
-    description = "A tool to query, enable and disable wireless devices";
-    platforms = platforms.linux;
-    maintainers = [ maintainers.eelco ];
-    license = licenses.isc;
-  };
-}
diff --git a/nixpkgs/pkgs/os-specific/linux/rfkill/udev.nix b/nixpkgs/pkgs/os-specific/linux/rfkill/udev.nix
index 3ee112126ac6..a24c947673de 100644
--- a/nixpkgs/pkgs/os-specific/linux/rfkill/udev.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rfkill/udev.nix
@@ -47,9 +47,10 @@ in stdenv.mkDerivation {
     cp ${rfkillHook} "$out/bin/rfkill-hook.sh"
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = "http://wireless.kernel.org/en/users/Documentation/rfkill";
     description = "Rules+hook for udev to catch rfkill state changes";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
+    license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/roccat-tools/default.nix b/nixpkgs/pkgs/os-specific/linux/roccat-tools/default.nix
index 5c4848980a94..f8a1b836a6c6 100644
--- a/nixpkgs/pkgs/os-specific/linux/roccat-tools/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/roccat-tools/default.nix
@@ -1,5 +1,6 @@
 { stdenv, fetchurl, cmake, pkgconfig, gettext
 , dbus, dbus-glib, libgaminggear, libgudev, lua
+, harfbuzz
 }:
 
 stdenv.mkDerivation rec {
@@ -32,6 +33,8 @@ stdenv.mkDerivation rec {
     "-DLIBDIR=lib"
   ];
 
+  NIX_CFLAGS_COMPILE = [ "-I${harfbuzz.dev}/include/harfbuzz" ];
+
   meta = {
     description = "Tools to configure ROCCAT devices";
     homepage = "http://roccat.sourceforge.net/";
diff --git a/nixpkgs/pkgs/os-specific/linux/rtl8192eu/default.nix b/nixpkgs/pkgs/os-specific/linux/rtl8192eu/default.nix
index 909a972efa38..c6527ac285d2 100644
--- a/nixpkgs/pkgs/os-specific/linux/rtl8192eu/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rtl8192eu/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchFromGitHub, kernel }:
+{ stdenv, lib, fetchFromGitHub, kernel, bc }:
 
 with lib;
 
@@ -6,19 +6,21 @@ let modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wi
 
 in stdenv.mkDerivation rec {
   name = "rtl8192eu-${kernel.version}-${version}";
-  version = "4.4.1.20190319";
+  version = "4.4.1.20200620";
 
   src = fetchFromGitHub {
     owner = "Mange";
     repo = "rtl8192eu-linux-driver";
-    rev = "0a7199b";
-    sha256 = "0xxb8z7fd997ny53bgmf95hyqsmwjplbj6fry0rf65k9x9nggx71";
+    rev = "925ac2be34dd608a7ca42daebf9713f0c1bcec74";
+    sha256 = "159vg0scq47wnn600karpgzx3naaiyl1rg8608c8d28nhm62gvjz";
   };
 
   hardeningDisable = [ "pic" ];
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
 
+  buildInputs = [ bc ];
+
   makeFlags = [ "KSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ];
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/os-specific/linux/rtl8821ce/default.nix b/nixpkgs/pkgs/os-specific/linux/rtl8821ce/default.nix
index 4be462991223..ae6586262a5c 100644
--- a/nixpkgs/pkgs/os-specific/linux/rtl8821ce/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rtl8821ce/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchFromGitHub, kernel, bc }:
 stdenv.mkDerivation rec {
   name = "rtl8821ce-${kernel.version}-${version}";
-  version = "5.2.5_1.26055.20180108";
+  version = "5.5.2_34066.20200325";
 
   src = fetchFromGitHub {
     owner = "tomaspinho";
     repo = "rtl8821ce";
-    rev = "ab6154e150bbc7d12b0525d4cc1298ae196e45de";
-    sha256 = "1my0hidqnv4s7hi5897m81pq0sjw05np0g27hlkg9fwb83b5kzsg";
+    rev = "8d7edbe6a78fd79cfab85d599dad9dc34138abd1";
+    sha256 = "1hsf8lqjnkrkvk0gps8yb3lx72mvws6xbgkbdmgdkz7qdxmha8bp";
   };
 
   hardeningDisable = [ "pic" ];
@@ -32,6 +32,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/tomaspinho/rtl8821ce";
     license = licenses.gpl2;
     platforms = platforms.linux;
-    maintainers = [ maintainers.hhm ];
+    maintainers = with maintainers; [ hhm samuelgrf ];
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/rtl8821cu/default.nix b/nixpkgs/pkgs/os-specific/linux/rtl8821cu/default.nix
new file mode 100644
index 000000000000..62ea8aaaab5e
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/rtl8821cu/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, kernel, bc }:
+stdenv.mkDerivation rec {
+  name = "rtl8821cu-${kernel.version}-${version}";
+  version = "unstable-2020-05-16";
+
+  src = fetchFromGitHub {
+    owner = "brektrou";
+    repo = "rtl8821cu";
+    rev = "5c510c9f14352fed4906a10921040b9e46b58346";
+    sha256 = "1n74h1m3l2dj35caswaghzcjwcv5qlv3gj6j1rqdddbyg5khl4ag";
+  };
+
+  hardeningDisable = [ "pic" ];
+
+  nativeBuildInputs = [ bc ];
+  buildInputs = kernel.moduleBuildDependencies;
+
+  prePatch = ''
+    substituteInPlace ./Makefile \
+      --replace /lib/modules/ "${kernel.dev}/lib/modules/" \
+      --replace '$(shell uname -r)' "${kernel.modDirVersion}" \
+      --replace /sbin/depmod \# \
+      --replace '$(MODDESTDIR)' "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
+  '';
+
+  preInstall = ''
+    mkdir -p "$out/lib/modules/${kernel.modDirVersion}/kernel/net/wireless/"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Realtek rtl8821cu driver";
+    homepage = "https://github.com/brektrou/rtl8821CU";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.contrun ];
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/rtlwifi_new/default.nix b/nixpkgs/pkgs/os-specific/linux/rtlwifi_new/default.nix
index 403f0a400107..78e5510ad17e 100644
--- a/nixpkgs/pkgs/os-specific/linux/rtlwifi_new/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/rtlwifi_new/default.nix
@@ -7,9 +7,10 @@ let modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wi
 in stdenv.mkDerivation rec {
   pname = "rtlwifi_new";
   version = "2019-08-21";
+  # When updating see https://github.com/lwfinger/rtl8723be/issues/17#issuecomment-657326751
 
   src = fetchFromGitHub {
-    owner = "lwfinger";
+    owner = "rtlwifi-linux";
     repo = "rtlwifi_new";
     rev = "a108e3de87c2ed30b71c3c4595b79ab7a2f9e348";
     sha256 = "15kjs9i9vvmn1cdzccd5cljf3m45r4ssm65klkj2fdkf3kljj38k";
diff --git a/nixpkgs/pkgs/os-specific/linux/sd-switch/default.nix b/nixpkgs/pkgs/os-specific/linux/sd-switch/default.nix
new file mode 100644
index 000000000000..7cbad8d6df3b
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/sd-switch/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitLab, rustPlatform, pkg-config, dbus }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "sd-switch";
+  version = "0.2.0";
+
+  src = fetchFromGitLab {
+    owner = "rycee";
+    repo = pname;
+    rev = version;
+    sha256 = "1bhks4ma3sn95bsszs6lj9cwfr8zgmja0hqfp8xr5iq77ww2p6k3";
+  };
+
+  cargoSha256 = "0lskxakzh3yji0rzk8jcfz1sv4j19b5kmdsaj7401m5w84s1cbjw";
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ dbus ];
+
+  meta = with stdenv.lib; {
+    description = "A systemd unit switcher for Home Manager";
+    homepage = "https://gitlab.com/rycee/sd-switch";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ rycee ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/smemstat/default.nix b/nixpkgs/pkgs/os-specific/linux/smemstat/default.nix
index 6693b3799482..64525052af20 100644
--- a/nixpkgs/pkgs/os-specific/linux/smemstat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/smemstat/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "smemstat";
-  version = "0.02.07";
+  version = "0.02.08";
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/smemstat/smemstat-${version}.tar.xz";
-    sha256 = "09i5n1zjw45qrfbc2vglh1xk1jwqnc91bgsq7bkp29d9dpfpzhdc";
+    sha256 = "1agigvkv1868cskivzrwyiixl658x5bv7xpz4xjc8mlii4maivpp";
   };
   buildInputs = [ ncurses ];
   installFlags = [ "DESTDIR=$(out)" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/sysdig/default.nix b/nixpkgs/pkgs/os-specific/linux/sysdig/default.nix
index 59577eb8d519..bef9231385a0 100644
--- a/nixpkgs/pkgs/os-specific/linux/sysdig/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/sysdig/default.nix
@@ -5,13 +5,13 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "sysdig";
-  version = "0.26.7";
+  version = "0.27.0";
 
   src = fetchFromGitHub {
     owner = "draios";
     repo = "sysdig";
     rev = version;
-    sha256 = "09m6j2cl70jxb0k4ydsgrida381bipf0v026xz661152cy23r3ff";
+    sha256 = "0lpp271g0749sx7qgpwl6myi0kgfpsxk1kc4yp3r9k1pynv8bq1b";
   };
 
   nativeBuildInputs = [ cmake perl ];
diff --git a/nixpkgs/pkgs/os-specific/linux/sysklogd/default.nix b/nixpkgs/pkgs/os-specific/linux/sysklogd/default.nix
index c8378f2a0cbc..f93e9012e05d 100644
--- a/nixpkgs/pkgs/os-specific/linux/sysklogd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/sysklogd/default.nix
@@ -21,8 +21,9 @@ stdenv.mkDerivation {
 
   preInstall = "mkdir -p $out/share/man/man5/ $out/share/man/man8/ $out/sbin";
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A system logging daemon";
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
+    license = licenses.gpl2;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/syslinux/default.nix b/nixpkgs/pkgs/os-specific/linux/syslinux/default.nix
index edb951dae3da..28681aed5640 100644
--- a/nixpkgs/pkgs/os-specific/linux/syslinux/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/syslinux/default.nix
@@ -22,9 +22,15 @@ stdenv.mkDerivation {
       url = mkURL "fa1349f1" "0002-gfxboot-menu-label.patch";
       sha256 = "06ifgzbpjj4picpj17zgprsfi501zf4pp85qjjgn29i5rs291zni";
     })
-    (fetchpatch {
-      url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/0005-gnu-efi-version-compatibility.patch?h=packages/syslinux";
-      sha256 = "0fbqz56hj8az8ws26m39hyp3l5fvcbzvzdddqz3x6n56hzdpz1p6";
+    (fetchurl {
+      url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/0005-gnu-efi-version-compatibility.patch?id=821c3da473d1399d930d5b4a086e46a4179eaa45";
+      name = "0005-gnu-efi-version-compatibility.patch";
+      sha256 = "1mz2idg8cwn0mvd3jixxynhkn7rhmi5fp8cc8zznh5f0ysfra446";
+    })
+    (fetchurl {
+      url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/0025-reproducible-build.patch?id=821c3da473d1399d930d5b4a086e46a4179eaa45";
+      name = "0025-reproducible-build.patch";
+      sha256 = "0qk6wc6z3648828y3961pn4pi7xhd20a6fqn6z1mnj22bbvzcxls";
     })
     (fetchurl {
       # mbr.bin: too big (452 > 440)
@@ -70,6 +76,7 @@ stdenv.mkDerivation {
     "DATADIR=$(out)/share"
     "MANDIR=$(out)/share/man"
     "PERL=perl"
+    "HEXDATE=0x00000000"
   ]
     ++ stdenv.lib.optionals stdenv.hostPlatform.isi686 [ "bios" "efi32" ];
 
diff --git a/nixpkgs/pkgs/os-specific/linux/system76-acpi/default.nix b/nixpkgs/pkgs/os-specific/linux/system76-acpi/default.nix
new file mode 100644
index 000000000000..b7c0e27669da
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/system76-acpi/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, kernel }:
+let
+  version = "1.0.1";
+  sha256 = "0jmm9h607f7k20yassm6af9mh5l00yih5248wwv4i05bd68yw3p5";
+in
+stdenv.mkDerivation {
+  name = "system76-acpi-module-${version}-${kernel.version}";
+
+  passthru.moduleName = "system76_acpi";
+
+  src = fetchFromGitHub {
+    owner = "pop-os";
+    repo = "system76-acpi-dkms";
+    rev = version;
+    inherit sha256;
+  };
+
+  hardeningDisable = [ "pic" ];
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
+  buildFlags = [
+    "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+  ];
+
+  installPhase = ''
+    install -D system76_acpi.ko $out/lib/modules/${kernel.modDirVersion}/misc/system76_acpi.ko
+    mkdir -p $out/lib/udev/hwdb.d
+    mv lib/udev/hwdb.d/* $out/lib/udev/hwdb.d
+  '';
+
+  meta = with stdenv.lib; {
+    maintainers = [ maintainers.khumba ];
+    license = [ licenses.gpl2Only ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+    broken = versionOlder kernel.version "4.14";
+    description = "System76 ACPI Driver (DKMS)";
+    homepage = "https://github.com/pop-os/system76-acpi-dkms";
+    longDescription = ''
+      This provides the system76_acpi in-tree driver for systems missing it.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/system76-io/default.nix b/nixpkgs/pkgs/os-specific/linux/system76-io/default.nix
new file mode 100644
index 000000000000..dac1e2db1e38
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/system76-io/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, kernel }:
+let
+  version = "1.0.1";
+  sha256 = "0qkgkkjy1isv6ws6hrcal75dxjz98rpnvqbm7agdcc6yv0c17wwh";
+in
+stdenv.mkDerivation {
+  name = "system76-io-module-${version}-${kernel.version}";
+
+  passthru.moduleName = "system76_io";
+
+  src = fetchFromGitHub {
+    owner = "pop-os";
+    repo = "system76-io-dkms";
+    rev = version;
+    inherit sha256;
+  };
+
+  hardeningDisable = [ "pic" ];
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
+  buildFlags = [
+    "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+  ];
+
+  installPhase = ''
+    install -D system76-io.ko $out/lib/modules/${kernel.modDirVersion}/misc/system76-io.ko
+  '';
+
+  meta = with stdenv.lib; {
+    maintainers = [ maintainers.khumba ];
+    license = [ licenses.gpl2Plus ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+    broken = versionOlder kernel.version "4.14";
+    description = "DKMS module for controlling System76 I/O board";
+    homepage = "https://github.com/pop-os/system76-io-dkms";
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/system76/default.nix b/nixpkgs/pkgs/os-specific/linux/system76/default.nix
new file mode 100644
index 000000000000..02eca1d5bbd5
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/system76/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, fetchFromGitHub, kernel }:
+let
+  version = "1.0.9";
+  sha256 = "0i4825y2vd679kdjv30ifzj1i1066d3x37z4lgk39hx16993k162";
+in
+stdenv.mkDerivation {
+  name = "system76-module-${version}-${kernel.version}";
+
+  passthru.moduleName = "system76";
+
+  src = fetchFromGitHub {
+    owner = "pop-os";
+    repo = "system76-dkms";
+    rev = version;
+    inherit sha256;
+  };
+
+  hardeningDisable = [ "pic" ];
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
+  buildFlags = [
+    "KERNEL_DIR=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+  ];
+
+  installPhase = ''
+    install -D system76.ko $out/lib/modules/${kernel.modDirVersion}/misc/system76.ko
+    mkdir -p $out/lib/udev/hwdb.d
+    mv lib/udev/hwdb.d/* $out/lib/udev/hwdb.d
+  '';
+
+  meta = with stdenv.lib; {
+    maintainers = [ maintainers.khumba ];
+    license = [ licenses.gpl2Plus ];
+    platforms = [ "i686-linux" "x86_64-linux" ];
+    broken = versionOlder kernel.version "4.14";
+    description = "System76 DKMS driver";
+    homepage = "https://github.com/pop-os/system76-dkms";
+    longDescription = ''
+      The System76 DKMS driver. On newer System76 laptops, this driver controls
+      some of the hotkeys and allows for custom fan control.
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch
index c88d0eeeff2b..390e7f9f09b3 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0001-Start-device-units-for-uninitialised-encrypted-devic.patch
@@ -1,4 +1,4 @@
-From b873e4c0de3e24f2ec9370e5a217247217e90587 Mon Sep 17 00:00:00 2001
+From 54fb14592fc41752c3cd26552c974dd1ad4b9e73 Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Tue, 8 Jan 2013 15:46:30 +0100
 Subject: [PATCH 01/18] Start device units for uninitialised encrypted devices
@@ -13,7 +13,7 @@ unit.  (However, this ignores the fsck unit, so it's not perfect...)
  1 file changed, 4 deletions(-)
 
 diff --git a/rules.d/99-systemd.rules.in b/rules.d/99-systemd.rules.in
-index c34b606216..3ab8c1c3fe 100644
+index 1c60eec587..b2486da130 100644
 --- a/rules.d/99-systemd.rules.in
 +++ b/rules.d/99-systemd.rules.in
 @@ -17,10 +17,6 @@ SUBSYSTEM=="ubi", TAG+="systemd"
@@ -28,5 +28,5 @@ index c34b606216..3ab8c1c3fe 100644
  SUBSYSTEM=="block", ENV{ID_PART_GPT_AUTO_ROOT}=="1", ENV{ID_FS_TYPE}!="crypto_LUKS", SYMLINK+="gpt-auto-root"
  SUBSYSTEM=="block", ENV{ID_PART_GPT_AUTO_ROOT}=="1", ENV{ID_FS_TYPE}=="crypto_LUKS", SYMLINK+="gpt-auto-root-luks"
 -- 
-2.26.2
+2.27.0
 
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch
index 4f94cb465d4e..9bb69092ca4e 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0002-Don-t-try-to-unmount-nix-or-nix-store.patch
@@ -1,4 +1,4 @@
-From bdd3ff777dd8253ff5732118dd6de0fa9a9b95fe Mon Sep 17 00:00:00 2001
+From d52880eeae09aaacd308430499f55810157b1a6d Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Fri, 12 Apr 2013 13:16:57 +0200
 Subject: [PATCH 02/18] Don't try to unmount /nix or /nix/store
@@ -7,18 +7,18 @@ They'll still be remounted read-only.
 
 https://github.com/NixOS/nixos/issues/126
 ---
- src/core/mount.c      | 2 ++
- src/shutdown/umount.c | 2 ++
+ src/shared/fstab-util.c | 2 ++
+ src/shutdown/umount.c   | 2 ++
  2 files changed, 4 insertions(+)
 
-diff --git a/src/core/mount.c b/src/core/mount.c
-index 1c4aefd734..a5553226f8 100644
---- a/src/core/mount.c
-+++ b/src/core/mount.c
-@@ -412,6 +412,8 @@ static bool mount_is_extrinsic(Mount *m) {
- 
-         if (PATH_IN_SET(m->where,  /* Don't bother with the OS data itself */
-                         "/",       /* (strictly speaking redundant: should already be covered by the perpetual flag check above) */
+diff --git a/src/shared/fstab-util.c b/src/shared/fstab-util.c
+index 806dda8475..0220741c91 100644
+--- a/src/shared/fstab-util.c
++++ b/src/shared/fstab-util.c
+@@ -40,6 +40,8 @@ bool fstab_is_extrinsic(const char *mount, const char *opts) {
+         /* Don't bother with the OS data itself */
+         if (PATH_IN_SET(mount,
+                         "/",
 +                        "/nix",
 +                        "/nix/store",
                          "/usr",
@@ -38,5 +38,5 @@ index 8a5e80eeaa..fab35ed6f3 100644
                  || path_equal(path, "/usr")
  #endif
 -- 
-2.26.2
+2.27.0
 
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch
index 73aab8dd91ca..5ee54f39b741 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0003-Fix-NixOS-containers.patch
@@ -1,4 +1,4 @@
-From c28b3b2e254433e93549ee6fe8c93b43ce455776 Mon Sep 17 00:00:00 2001
+From 794073e466a3b6c8e138f0e6d15c8d6465a1a4a9 Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Wed, 16 Apr 2014 10:59:28 +0200
 Subject: [PATCH 03/18] Fix NixOS containers
@@ -10,10 +10,10 @@ container, so checking early whether it exists will fail.
  1 file changed, 2 insertions(+)
 
 diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
-index 734dee1130..a97b1a4bc9 100644
+index 3b9493f232..0117a9939d 100644
 --- a/src/nspawn/nspawn.c
 +++ b/src/nspawn/nspawn.c
-@@ -5018,6 +5018,7 @@ static int run(int argc, char *argv[]) {
+@@ -5122,6 +5122,7 @@ static int run(int argc, char *argv[]) {
                                  goto finish;
                          }
                  } else {
@@ -21,7 +21,7 @@ index 734dee1130..a97b1a4bc9 100644
                          const char *p, *q;
  
                          if (arg_pivot_root_new)
-@@ -5032,6 +5033,7 @@ static int run(int argc, char *argv[]) {
+@@ -5136,6 +5137,7 @@ static int run(int argc, char *argv[]) {
                                  r = -EINVAL;
                                  goto finish;
                          }
@@ -30,5 +30,5 @@ index 734dee1130..a97b1a4bc9 100644
  
          } else {
 -- 
-2.26.2
+2.27.0
 
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch
index e10726a2cb1f..cdef28ad68ed 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0004-Look-for-fsck-in-the-right-place.patch
@@ -1,4 +1,4 @@
-From baf52609ad18785aa1d2cd043185ae9438d59411 Mon Sep 17 00:00:00 2001
+From caa8dcfa87cf2e46a7a1cce9c16f929916cf9186 Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Thu, 1 May 2014 14:10:10 +0200
 Subject: [PATCH 04/18] Look for fsck in the right place
@@ -21,5 +21,5 @@ index 80f7107b9d..74e48a385f 100644
                  cmdline[i++] = "-T";
  
 -- 
-2.26.2
+2.27.0
 
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch
index a9b60cbb2e20..95dd17531ab2 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0005-Add-some-NixOS-specific-unit-directories.patch
@@ -1,4 +1,4 @@
-From 45f80155b7c2edb1e73c233283f1ab1582e1cfbe Mon Sep 17 00:00:00 2001
+From e5d73359928b79bd846bda29ce61fe276d8c0b76 Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Fri, 19 Dec 2014 14:46:17 +0100
 Subject: [PATCH 05/18] Add some NixOS-specific unit directories
@@ -10,51 +10,36 @@ persistent, mutable units (used for Dysnomia).
 
 Also, remove /usr and /lib as these don't exist on NixOS.
 ---
- src/core/systemd.pc.in   |  4 ++--
- src/shared/path-lookup.c | 18 +++++-------------
- 2 files changed, 7 insertions(+), 15 deletions(-)
+ src/basic/path-lookup.c | 20 +++++---------------
+ src/core/systemd.pc.in  |  5 +++--
+ 2 files changed, 8 insertions(+), 17 deletions(-)
 
-diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in
-index 8331832c7a..bedb97115d 100644
---- a/src/core/systemd.pc.in
-+++ b/src/core/systemd.pc.in
-@@ -17,8 +17,8 @@ systemduserunitdir=${prefix}/lib/systemd/user
- systemduserpresetdir=${prefix}/lib/systemd/user-preset
- systemdsystemconfdir=${sysconfdir}/systemd/system
- systemduserconfdir=${sysconfdir}/systemd/user
--systemdsystemunitpath=${systemdsystemconfdir}:/etc/systemd/system:/run/systemd/system:/usr/local/lib/systemd/system:${systemdsystemunitdir}:/usr/lib/systemd/system:/lib/systemd/system
--systemduserunitpath=${systemduserconfdir}:/etc/systemd/user:/run/systemd/user:/usr/local/lib/systemd/user:/usr/local/share/systemd/user:${systemduserunitdir}:/usr/lib/systemd/user:/usr/share/systemd/user
-+systemdsystemunitpath=${systemdsystemconfdir}:/etc/systemd/system:/etc/systemd-mutable/system:/nix/var/nix/profiles/default/lib/systemd/system:/run/systemd/system:${systemdsystemunitdir}
-+systemduserunitpath=${systemduserconfdir}:/etc/systemd/user:/etc/systemd-mutable/user:/nix/var/nix/profiles/default/lib/systemd/user:/run/systemd/user:${systemduserunitdir}
- systemdsystemgeneratordir=${rootprefix}/lib/systemd/system-generators
- systemdusergeneratordir=${prefix}/lib/systemd/user-generators
- systemdsystemgeneratorpath=/run/systemd/system-generators:/etc/systemd/system-generators:/usr/local/lib/systemd/system-generators:${systemdsystemgeneratordir}
-diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c
-index 48e0eec09a..a9d38f16d0 100644
---- a/src/shared/path-lookup.c
-+++ b/src/shared/path-lookup.c
-@@ -98,17 +98,14 @@ int xdg_user_data_dir(char **ret, const char *suffix) {
+diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c
+index 52968dee34..bba2eb09b8 100644
+--- a/src/basic/path-lookup.c
++++ b/src/basic/path-lookup.c
+@@ -94,17 +94,14 @@ int xdg_user_data_dir(char **ret, const char *suffix) {
  }
  
  static const char* const user_data_unit_paths[] = {
 -        "/usr/local/lib/systemd/user",
 -        "/usr/local/share/systemd/user",
-         USER_DATA_UNIT_PATH,
+         USER_DATA_UNIT_DIR,
 -        "/usr/lib/systemd/user",
 -        "/usr/share/systemd/user",
          NULL
  };
  
  static const char* const user_config_unit_paths[] = {
-         USER_CONFIG_UNIT_PATH,
+         USER_CONFIG_UNIT_DIR,
          "/etc/systemd/user",
 +        "/etc/systemd-mutable/user",
          NULL
  };
  
-@@ -604,15 +601,14 @@ int lookup_paths_init(
+@@ -616,15 +613,14 @@ int lookup_paths_init(
                                          persistent_config,
-                                         SYSTEM_CONFIG_UNIT_PATH,
+                                         SYSTEM_CONFIG_UNIT_DIR,
                                          "/etc/systemd/system",
 +                                        "/etc/systemd-mutable/system",
 +                                        "/nix/var/nix/profiles/default/lib/systemd/system",
@@ -70,9 +55,9 @@ index 48e0eec09a..a9d38f16d0 100644
                                          STRV_IFNOTNULL(generator_late));
                          break;
  
-@@ -628,14 +624,12 @@ int lookup_paths_init(
+@@ -640,14 +636,12 @@ int lookup_paths_init(
                                          persistent_config,
-                                         USER_CONFIG_UNIT_PATH,
+                                         USER_CONFIG_UNIT_DIR,
                                          "/etc/systemd/user",
 +                                        "/etc/systemd-mutable/user",
 +                                        "/nix/var/nix/profiles/default/lib/systemd/user",
@@ -82,26 +67,58 @@ index 48e0eec09a..a9d38f16d0 100644
 -                                        "/usr/local/share/systemd/user",
 -                                        "/usr/share/systemd/user",
 -                                        "/usr/local/lib/systemd/user",
-                                         USER_DATA_UNIT_PATH,
+                                         USER_DATA_UNIT_DIR,
 -                                        "/usr/lib/systemd/user",
                                          STRV_IFNOTNULL(generator_late));
                          break;
  
-@@ -824,14 +818,12 @@ char **generator_binary_paths(UnitFileScope scope) {
-         case UNIT_FILE_SYSTEM:
-                 return strv_new("/run/systemd/system-generators",
-                                 "/etc/systemd/system-generators",
--                                "/usr/local/lib/systemd/system-generators",
-                                 SYSTEM_GENERATOR_PATH);
+@@ -797,7 +791,6 @@ char **generator_binary_paths(UnitFileScope scope) {
+                 case UNIT_FILE_SYSTEM:
+                         add = strv_new("/run/systemd/system-generators",
+                                        "/etc/systemd/system-generators",
+-                                       "/usr/local/lib/systemd/system-generators",
+                                        SYSTEM_GENERATOR_DIR);
+                         break;
+ 
+@@ -805,7 +798,6 @@ char **generator_binary_paths(UnitFileScope scope) {
+                 case UNIT_FILE_USER:
+                         add = strv_new("/run/systemd/user-generators",
+                                        "/etc/systemd/user-generators",
+-                                       "/usr/local/lib/systemd/user-generators",
+                                        USER_GENERATOR_DIR);
+                         break;
+ 
+@@ -844,12 +836,10 @@ char **env_generator_binary_paths(bool is_system) {
+                 if (is_system)
+                         add = strv_new("/run/systemd/system-environment-generators",
+                                         "/etc/systemd/system-environment-generators",
+-                                        "/usr/local/lib/systemd/system-environment-generators",
+                                         SYSTEM_ENV_GENERATOR_DIR);
+                 else
+                         add = strv_new("/run/systemd/user-environment-generators",
+                                        "/etc/systemd/user-environment-generators",
+-                                       "/usr/local/lib/systemd/user-environment-generators",
+                                        USER_ENV_GENERATOR_DIR);
+ 
+                 if (!add)
+diff --git a/src/core/systemd.pc.in b/src/core/systemd.pc.in
+index 8424837824..b1c541bc52 100644
+--- a/src/core/systemd.pc.in
++++ b/src/core/systemd.pc.in
+@@ -38,10 +38,11 @@ systemdsystemconfdir=${systemd_system_conf_dir}
+ systemd_user_conf_dir=${sysconfdir}/systemd/user
+ systemduserconfdir=${systemd_user_conf_dir}
+ 
+-systemd_system_unit_path=${systemd_system_conf_dir}:/etc/systemd/system:/run/systemd/system:/usr/local/lib/systemd/system:${systemd_system_unit_dir}:/usr/lib/systemd/system:/lib/systemd/system
++systemd_system_unit_path=${systemd_system_conf_dir}:/etc/systemd/system:/etc/systemd-mutable/system:/nix/var/nix/profiles/default/lib/systemd/system:/run/systemd/system:${systemdsystemunitdir}
+ systemdsystemunitpath=${systemd_system_unit_path}
  
-         case UNIT_FILE_GLOBAL:
-         case UNIT_FILE_USER:
-                 return strv_new("/run/systemd/user-generators",
-                                 "/etc/systemd/user-generators",
--                                "/usr/local/lib/systemd/user-generators",
-                                 USER_GENERATOR_PATH);
+-systemd_user_unit_path=${systemd_user_conf_dir}:/etc/systemd/user:/run/systemd/user:/usr/local/lib/systemd/user:/usr/local/share/systemd/user:${systemd_user_unit_dir}:/usr/lib/systemd/user:/usr/share/systemd/user
++systemd_user_unit_path=${systemd_user_conf_dir}:/etc/systemd/user:/etc/systemd-mutable/user:/nix/var/nix/profiles/default/lib/systemd/user:/run/systemd/user:${systemduserunitdir}
++
+ systemduserunitpath=${systemd_user_unit_path}
  
-         default:
+ systemd_system_generator_dir=${root_prefix}/lib/systemd/system-generators
 -- 
-2.26.2
+2.27.0
 
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch
index 0b57dc1f9c89..3e519e7fe73d 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0006-Get-rid-of-a-useless-message-in-user-sessions.patch
@@ -1,4 +1,4 @@
-From d52058070c0c12bb05f82460f0b4b55678b724e9 Mon Sep 17 00:00:00 2001
+From 1a3de021d9b8da060a77af6e26d2b61bafefda74 Mon Sep 17 00:00:00 2001
 From: Eelco Dolstra <eelco.dolstra@logicblox.com>
 Date: Mon, 11 May 2015 15:39:38 +0200
 Subject: [PATCH 06/18] Get rid of a useless message in user sessions
@@ -13,10 +13,10 @@ in containers.
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/src/core/unit.c b/src/core/unit.c
-index 97e1b0004c..d3cc2ba9ec 100644
+index 2c09def06f..c70540e1a3 100644
 --- a/src/core/unit.c
 +++ b/src/core/unit.c
-@@ -2043,7 +2043,8 @@ static void unit_check_binds_to(Unit *u) {
+@@ -2150,7 +2150,8 @@ static void unit_check_binds_to(Unit *u) {
          }
  
          assert(other);
@@ -27,5 +27,5 @@ index 97e1b0004c..d3cc2ba9ec 100644
          /* A unit we need to run is gone. Sniff. Let's stop this. */
          r = manager_add_job(u->manager, JOB_STOP, u, JOB_FAIL, NULL, &error, NULL);
 -- 
-2.26.2
+2.27.0
 
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch
index 5703c4f43fd4..b63a051ae075 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0007-hostnamed-localed-timedated-disable-methods-that-cha.patch
@@ -1,30 +1,20 @@
-From 409fc808794942ad1736c2cc74853d9792e4ad02 Mon Sep 17 00:00:00 2001
+From 6c12e0d2afe80563e692fc1f2f545a487c83418c Mon Sep 17 00:00:00 2001
 From: Gabriel Ebner <gebner@gebner.org>
 Date: Sun, 6 Dec 2015 14:26:36 +0100
 Subject: [PATCH 07/18] hostnamed, localed, timedated: disable methods that
  change system settings.
 
 ---
- src/hostname/hostnamed.c |  9 +++++++++
+ src/hostname/hostnamed.c |  6 ++++++
  src/locale/localed.c     |  9 +++++++++
  src/timedate/timedated.c | 10 ++++++++++
- 3 files changed, 28 insertions(+)
+ 3 files changed, 25 insertions(+)
 
 diff --git a/src/hostname/hostnamed.c b/src/hostname/hostnamed.c
-index 21f6471495..8c5af7619f 100644
+index 7f6607a527..b5a9388916 100644
 --- a/src/hostname/hostnamed.c
 +++ b/src/hostname/hostnamed.c
-@@ -422,6 +422,9 @@ static int method_set_hostname(sd_bus_message *m, void *userdata, sd_bus_error *
-         if (r < 0)
-                 return r;
- 
-+        return sd_bus_error_setf(error, SD_BUS_ERROR_NOT_SUPPORTED,
-+            "Changing system settings via systemd is not supported on NixOS.");
-+
-         if (isempty(name))
-                 name = c->data[PROP_STATIC_HOSTNAME];
- 
-@@ -478,6 +481,9 @@ static int method_set_static_hostname(sd_bus_message *m, void *userdata, sd_bus_
+@@ -626,6 +626,9 @@ static int method_set_static_hostname(sd_bus_message *m, void *userdata, sd_bus_
          if (r < 0)
                  return r;
  
@@ -33,8 +23,8 @@ index 21f6471495..8c5af7619f 100644
 +
          name = empty_to_null(name);
  
-         if (streq_ptr(name, c->data[PROP_STATIC_HOSTNAME]))
-@@ -535,6 +541,9 @@ static int set_machine_info(Context *c, sd_bus_message *m, int prop, sd_bus_mess
+         context_read_etc_hostname(c);
+@@ -685,6 +688,9 @@ static int set_machine_info(Context *c, sd_bus_message *m, int prop, sd_bus_mess
          if (r < 0)
                  return r;
  
@@ -43,12 +33,12 @@ index 21f6471495..8c5af7619f 100644
 +
          name = empty_to_null(name);
  
-         if (streq_ptr(name, c->data[prop]))
+         context_read_machine_info(c);
 diff --git a/src/locale/localed.c b/src/locale/localed.c
-index 09f16d25f4..c1cb87cef1 100644
+index 715ce5cac7..014f7dcf6c 100644
 --- a/src/locale/localed.c
 +++ b/src/locale/localed.c
-@@ -275,6 +275,9 @@ static int method_set_locale(sd_bus_message *m, void *userdata, sd_bus_error *er
+@@ -317,6 +317,9 @@ static int method_set_locale(sd_bus_message *m, void *userdata, sd_bus_error *er
          if (r < 0)
                  return r;
  
@@ -56,9 +46,9 @@ index 09f16d25f4..c1cb87cef1 100644
 +            "Changing system settings via systemd is not supported on NixOS.");
 +
          /* If single locale without variable name is provided, then we assume it is LANG=. */
-         if (strv_length(l) == 1 && !strchr(*l, '=')) {
-                 if (!locale_is_valid(*l))
-@@ -410,6 +413,9 @@ static int method_set_vc_keyboard(sd_bus_message *m, void *userdata, sd_bus_erro
+         if (strv_length(l) == 1 && !strchr(l[0], '=')) {
+                 if (!locale_is_valid(l[0]))
+@@ -432,6 +435,9 @@ static int method_set_vc_keyboard(sd_bus_message *m, void *userdata, sd_bus_erro
          if (r < 0)
                  return r;
  
@@ -68,7 +58,7 @@ index 09f16d25f4..c1cb87cef1 100644
          keymap = empty_to_null(keymap);
          keymap_toggle = empty_to_null(keymap_toggle);
  
-@@ -586,6 +592,9 @@ static int method_set_x11_keyboard(sd_bus_message *m, void *userdata, sd_bus_err
+@@ -606,6 +612,9 @@ static int method_set_x11_keyboard(sd_bus_message *m, void *userdata, sd_bus_err
          if (r < 0)
                  return r;
  
@@ -79,10 +69,10 @@ index 09f16d25f4..c1cb87cef1 100644
          model = empty_to_null(model);
          variant = empty_to_null(variant);
 diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
-index 5e2fb50d83..63865f557c 100644
+index c467b85477..3e78b2f575 100644
 --- a/src/timedate/timedated.c
 +++ b/src/timedate/timedated.c
-@@ -652,6 +652,10 @@ static int method_set_timezone(sd_bus_message *m, void *userdata, sd_bus_error *
+@@ -646,6 +646,10 @@ static int method_set_timezone(sd_bus_message *m, void *userdata, sd_bus_error *
          if (r < 0)
                  return r;
  
@@ -93,7 +83,7 @@ index 5e2fb50d83..63865f557c 100644
          if (!timezone_is_valid(z, LOG_DEBUG))
                  return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid or not installed time zone '%s'", z);
  
-@@ -731,6 +735,9 @@ static int method_set_local_rtc(sd_bus_message *m, void *userdata, sd_bus_error
+@@ -725,6 +729,9 @@ static int method_set_local_rtc(sd_bus_message *m, void *userdata, sd_bus_error
          if (r < 0)
                  return r;
  
@@ -103,7 +93,7 @@ index 5e2fb50d83..63865f557c 100644
          if (lrtc == c->local_rtc)
                  return sd_bus_reply_method_return(m, NULL);
  
-@@ -923,6 +930,9 @@ static int method_set_ntp(sd_bus_message *m, void *userdata, sd_bus_error *error
+@@ -917,6 +924,9 @@ static int method_set_ntp(sd_bus_message *m, void *userdata, sd_bus_error *error
          if (r < 0)
                  return r;
  
@@ -114,5 +104,5 @@ index 5e2fb50d83..63865f557c 100644
          if (r < 0)
                  return r;
 -- 
-2.26.2
+2.27.0
 
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch
index a9bf9abee520..63bd03fcf38e 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0008-Fix-hwdb-paths.patch
@@ -1,4 +1,4 @@
-From b56fc7b6ae8014eb2f71924c89498f395a1a81bd Mon Sep 17 00:00:00 2001
+From 1e40be83eca9a831509ae764081c2252934478c3 Mon Sep 17 00:00:00 2001
 From: Nikolay Amiantov <ab@fmap.me>
 Date: Thu, 7 Jul 2016 02:47:13 +0300
 Subject: [PATCH 08/18] Fix hwdb paths
@@ -28,5 +28,5 @@ index b3febdbb31..eba00a5bc7 100644
  _public_ int sd_hwdb_new(sd_hwdb **ret) {
          _cleanup_(sd_hwdb_unrefp) sd_hwdb *hwdb = NULL;
 -- 
-2.26.2
+2.27.0
 
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
index 12a9dd5a77f6..dcdc0cd7ea01 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0009-Change-usr-share-zoneinfo-to-etc-zoneinfo.patch
@@ -1,4 +1,4 @@
-From 4d304a321796db4de827aa39a149bea23d039214 Mon Sep 17 00:00:00 2001
+From 5e235e1f720f37fc5581b40c9a13d365368e74a8 Mon Sep 17 00:00:00 2001
 From: Nikolay Amiantov <ab@fmap.me>
 Date: Tue, 11 Oct 2016 13:12:08 +0300
 Subject: [PATCH 09/18] Change /usr/share/zoneinfo to /etc/zoneinfo
@@ -35,10 +35,10 @@ index 0f1652ee2e..71c4f95c2e 100644
      <literal>Etc/UTC</literal>. The resulting link should lead to the
      corresponding binary
 diff --git a/src/basic/time-util.c b/src/basic/time-util.c
-index 105584e2e7..5238f69931 100644
+index 15cc1b8851..d0abde5933 100644
 --- a/src/basic/time-util.c
 +++ b/src/basic/time-util.c
-@@ -1217,7 +1217,7 @@ int get_timezones(char ***ret) {
+@@ -1259,7 +1259,7 @@ int get_timezones(char ***ret) {
          n_allocated = 2;
          n_zones = 1;
  
@@ -47,7 +47,7 @@ index 105584e2e7..5238f69931 100644
          if (f) {
                  for (;;) {
                          _cleanup_free_ char *line = NULL;
-@@ -1312,7 +1312,7 @@ bool timezone_is_valid(const char *name, int log_level) {
+@@ -1354,7 +1354,7 @@ bool timezone_is_valid(const char *name, int log_level) {
          if (p - name >= PATH_MAX)
                  return false;
  
@@ -56,7 +56,7 @@ index 105584e2e7..5238f69931 100644
  
          fd = open(t, O_RDONLY|O_CLOEXEC);
          if (fd < 0) {
-@@ -1410,7 +1410,7 @@ int get_timezone(char **ret) {
+@@ -1452,7 +1452,7 @@ int get_timezone(char **ret) {
          if (r < 0)
                  return r; /* returns EINVAL if not a symlink */
  
@@ -66,10 +66,10 @@ index 105584e2e7..5238f69931 100644
                  return -EINVAL;
  
 diff --git a/src/firstboot/firstboot.c b/src/firstboot/firstboot.c
-index 901fbf0815..b57bdd8fbe 100644
+index a3f442518e..feff49e280 100644
 --- a/src/firstboot/firstboot.c
 +++ b/src/firstboot/firstboot.c
-@@ -431,7 +431,7 @@ static int process_timezone(void) {
+@@ -459,7 +459,7 @@ static int process_timezone(void) {
          if (isempty(arg_timezone))
                  return 0;
  
@@ -79,10 +79,10 @@ index 901fbf0815..b57bdd8fbe 100644
          (void) mkdir_parents(etc_localtime, 0755);
          if (symlink(e, etc_localtime) < 0)
 diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
-index a97b1a4bc9..aed60439e3 100644
+index 0117a9939d..d86445b40f 100644
 --- a/src/nspawn/nspawn.c
 +++ b/src/nspawn/nspawn.c
-@@ -1657,8 +1657,8 @@ static int userns_mkdir(const char *root, const char *path, mode_t mode, uid_t u
+@@ -1699,8 +1699,8 @@ static int userns_mkdir(const char *root, const char *path, mode_t mode, uid_t u
  static const char *timezone_from_path(const char *path) {
          return PATH_STARTSWITH_SET(
                          path,
@@ -94,10 +94,10 @@ index a97b1a4bc9..aed60439e3 100644
  
  static bool etc_writable(void) {
 diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
-index 63865f557c..8021a8b753 100644
+index 3e78b2f575..de5477a08f 100644
 --- a/src/timedate/timedated.c
 +++ b/src/timedate/timedated.c
-@@ -264,7 +264,7 @@ static int context_read_data(Context *c) {
+@@ -269,7 +269,7 @@ static int context_read_data(Context *c) {
  
          r = get_timezone(&t);
          if (r == -EINVAL)
@@ -106,7 +106,7 @@ index 63865f557c..8021a8b753 100644
          else if (r < 0)
                  log_warning_errno(r, "Failed to get target of /etc/localtime: %m");
  
-@@ -288,7 +288,7 @@ static int context_write_data_timezone(Context *c) {
+@@ -293,7 +293,7 @@ static int context_write_data_timezone(Context *c) {
  
          if (isempty(c->zone) || streq(c->zone, "UTC")) {
  
@@ -115,7 +115,7 @@ index 63865f557c..8021a8b753 100644
  
                          if (unlink("/etc/localtime") < 0 && errno != ENOENT)
                                  return -errno;
-@@ -296,9 +296,9 @@ static int context_write_data_timezone(Context *c) {
+@@ -301,9 +301,9 @@ static int context_write_data_timezone(Context *c) {
                          return 0;
                  }
  
@@ -128,5 +128,5 @@ index 63865f557c..8021a8b753 100644
                          return -ENOMEM;
  
 -- 
-2.26.2
+2.27.0
 
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch
index 7e6453f2ddd3..50c2a1174dfb 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0010-localectl-use-etc-X11-xkb-for-list-x11.patch
@@ -1,4 +1,4 @@
-From cb3f1ec1793cbf74c4b5663e038bd49ff4576192 Mon Sep 17 00:00:00 2001
+From 141d1d7acf5f018df86f0a5f7fbe49a8e928fd73 Mon Sep 17 00:00:00 2001
 From: Imuli <i@imu.li>
 Date: Wed, 19 Oct 2016 08:46:47 -0400
 Subject: [PATCH 10/18] localectl: use /etc/X11/xkb for list-x11-*
@@ -10,10 +10,10 @@ NixOS has an option to link the xkb data files to /etc/X11, but not to
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/locale/localectl.c b/src/locale/localectl.c
-index 6f2d37d222..7aa2310d48 100644
+index e0664de826..c521f33a2a 100644
 --- a/src/locale/localectl.c
 +++ b/src/locale/localectl.c
-@@ -286,7 +286,7 @@ static int list_x11_keymaps(int argc, char **argv, void *userdata) {
+@@ -277,7 +277,7 @@ static int list_x11_keymaps(int argc, char **argv, void *userdata) {
          } state = NONE, look_for;
          int r;
  
@@ -23,5 +23,5 @@ index 6f2d37d222..7aa2310d48 100644
                  return log_error_errno(errno, "Failed to open keyboard mapping list. %m");
  
 -- 
-2.26.2
+2.27.0
 
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch
index 080cd4670e6f..8ad310984ed7 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0011-build-don-t-create-statedir-and-don-t-touch-prefixdi.patch
@@ -1,4 +1,4 @@
-From 0ffb786d0e12a61899af448b1e4dd32a53ea5a8e Mon Sep 17 00:00:00 2001
+From db3946f465c0066fb1775a92c1fcc6450134904d Mon Sep 17 00:00:00 2001
 From: Franz Pletz <fpletz@fnordicwalking.de>
 Date: Sun, 11 Feb 2018 04:37:44 +0100
 Subject: [PATCH 11/18] build: don't create statedir and don't touch prefixdir
@@ -8,10 +8,10 @@ Subject: [PATCH 11/18] build: don't create statedir and don't touch prefixdir
  1 file changed, 3 deletions(-)
 
 diff --git a/meson.build b/meson.build
-index fc216d22da..078db3bb5d 100644
+index dbbddb68e2..bbeb23223d 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -3176,9 +3176,6 @@ install_data('LICENSE.GPL2',
+@@ -3369,9 +3369,6 @@ install_data('LICENSE.GPL2',
               'src/libsystemd/sd-bus/GVARIANT-SERIALIZATION',
               install_dir : docdir)
  
@@ -20,7 +20,7 @@ index fc216d22da..078db3bb5d 100644
 -
  ############################################################
  
- meson_check_help = find_program('tools/meson-check-help.sh')
+ check_help = find_program('tools/check-help.sh')
 -- 
-2.26.2
+2.27.0
 
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0012-Install-default-configuration-into-out-share-factory.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0012-Install-default-configuration-into-out-share-factory.patch
index 2961a2ebe56f..0844f85763b3 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0012-Install-default-configuration-into-out-share-factory.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0012-Install-default-configuration-into-out-share-factory.patch
@@ -1,4 +1,4 @@
-From 3dbcdab1ba22c4eeca6d61718c09bcb9b5551764 Mon Sep 17 00:00:00 2001
+From 245af064c4d315d868cc12201b3663f61702cce3 Mon Sep 17 00:00:00 2001
 From: =?UTF-8?q?J=C3=B6rg=20Thalheim?= <joerg@thalheim.io>
 Date: Mon, 26 Feb 2018 14:25:57 +0000
 Subject: [PATCH 12/18] Install default configuration into $out/share/factory
@@ -31,10 +31,10 @@ store again, while having executables looking up files in /etc.
  17 files changed, 29 insertions(+), 26 deletions(-)
 
 diff --git a/hwdb.d/meson.build b/hwdb.d/meson.build
-index 4df6dabf89..02d8d69095 100644
+index 5c77387a26..6404bc01ba 100644
 --- a/hwdb.d/meson.build
 +++ b/hwdb.d/meson.build
-@@ -27,7 +27,7 @@ if conf.get('ENABLE_HWDB') == 1
+@@ -43,7 +43,7 @@ if conf.get('ENABLE_HWDB') == 1
                       install_dir : udevhwdbdir)
  
          meson.add_install_script('sh', '-c',
@@ -44,10 +44,10 @@ index 4df6dabf89..02d8d69095 100644
          meson.add_install_script('sh', '-c',
                                   'test -n "$DESTDIR" || @0@/systemd-hwdb update'
 diff --git a/meson.build b/meson.build
-index 078db3bb5d..6e1a6483fc 100644
+index bbeb23223d..1a9c56fad2 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -154,6 +154,9 @@ udevhwdbdir = join_paths(udevlibexecdir, 'hwdb.d')
+@@ -163,6 +163,9 @@ udevhwdbdir = join_paths(udevlibexecdir, 'hwdb.d')
  catalogdir = join_paths(prefixdir, 'lib/systemd/catalog')
  kernelinstalldir = join_paths(prefixdir, 'lib/kernel/install.d')
  factorydir = join_paths(datadir, 'factory')
@@ -57,7 +57,7 @@ index 078db3bb5d..6e1a6483fc 100644
  bootlibdir = join_paths(prefixdir, 'lib/systemd/boot/efi')
  testsdir = join_paths(prefixdir, 'lib/systemd/tests')
  systemdstatedir = join_paths(localstatedir, 'lib/systemd')
-@@ -2503,7 +2506,7 @@ if conf.get('ENABLE_BINFMT') == 1
+@@ -2651,7 +2654,7 @@ if conf.get('ENABLE_BINFMT') == 1
          meson.add_install_script('sh', '-c',
                                   mkdir_p.format(binfmtdir))
          meson.add_install_script('sh', '-c',
@@ -66,16 +66,16 @@ index 078db3bb5d..6e1a6483fc 100644
  endif
  
  if conf.get('ENABLE_REPART') == 1
-@@ -2604,7 +2607,7 @@ executable('systemd-sleep',
-            install_dir : rootlibexecdir)
+@@ -2767,7 +2770,7 @@ executable(
+         install_dir : rootlibexecdir)
  
  install_data('src/sleep/sleep.conf',
 -             install_dir : pkgsysconfdir)
 +             install_dir : factorypkgconfdir)
  
- exe = executable('systemd-sysctl',
-                  'src/sysctl/sysctl.c',
-@@ -2916,7 +2919,7 @@ if conf.get('HAVE_KMOD') == 1
+ public_programs += executable(
+         'systemd-sysctl',
+@@ -3101,7 +3104,7 @@ if conf.get('HAVE_KMOD') == 1
          meson.add_install_script('sh', '-c',
                                   mkdir_p.format(modulesloaddir))
          meson.add_install_script('sh', '-c',
@@ -83,8 +83,8 @@ index 078db3bb5d..6e1a6483fc 100644
 +                                 mkdir_p.format(join_paths(factoryconfdir, 'modules-load.d')))
  endif
  
- exe = executable('systemd-nspawn',
-@@ -3159,7 +3162,7 @@ install_subdir('factory/etc',
+ public_programs += executable(
+@@ -3352,7 +3355,7 @@ install_subdir('factory/etc',
                 install_dir : factorydir)
  
  install_data('xorg/50-systemd-user.sh',
@@ -94,10 +94,10 @@ index 078db3bb5d..6e1a6483fc 100644
               install_dir : modprobedir)
  install_data('LICENSE.GPL2',
 diff --git a/network/meson.build b/network/meson.build
-index 544dcf4387..1828c50863 100644
+index 99a650eac3..8105a4e48d 100644
 --- a/network/meson.build
 +++ b/network/meson.build
-@@ -10,7 +10,7 @@ if conf.get('ENABLE_NETWORKD') == 1
+@@ -11,7 +11,7 @@ if conf.get('ENABLE_NETWORKD') == 1
                       install_dir : networkdir)
  
          meson.add_install_script('sh', '-c',
@@ -107,10 +107,10 @@ index 544dcf4387..1828c50863 100644
  
  install_data('99-default.link',
 diff --git a/src/core/meson.build b/src/core/meson.build
-index 3586838f59..02ddf1a123 100644
+index fa95108523..60ee0e31c1 100644
 --- a/src/core/meson.build
 +++ b/src/core/meson.build
-@@ -179,8 +179,8 @@ libcore = static_library(
+@@ -183,8 +183,8 @@ libcore = static_library(
  systemd_sources = files('main.c')
  
  in_files = [['macros.systemd',   rpmmacrosdir],
@@ -121,7 +121,7 @@ index 3586838f59..02ddf1a123 100644
              ['systemd.pc',       pkgconfigdatadir],
              ['triggers.systemd', '']]
  
-@@ -212,6 +212,6 @@ meson.add_install_script('sh', '-c', mkdir_p.format(systemsleepdir))
+@@ -216,6 +216,6 @@ meson.add_install_script('sh', '-c', mkdir_p.format(systemsleepdir))
  meson.add_install_script('sh', '-c', mkdir_p.format(systemgeneratordir))
  meson.add_install_script('sh', '-c', mkdir_p.format(usergeneratordir))
  
@@ -180,15 +180,16 @@ index 5796f77cac..75d975c260 100644
  if get_option('create-log-dirs')
          meson.add_install_script(
 diff --git a/src/kernel-install/meson.build b/src/kernel-install/meson.build
-index 261c3aaae4..dbc5e23513 100644
+index 9ae342dfba..65df666337 100644
 --- a/src/kernel-install/meson.build
 +++ b/src/kernel-install/meson.build
-@@ -11,4 +11,4 @@ install_data('00-entry-directory.install',
-              install_dir : kernelinstalldir)
+@@ -14,5 +14,5 @@ if want_kernel_install
+ 		install_dir : kernelinstalldir)
  
- meson.add_install_script('sh', '-c',
--                         mkdir_p.format(join_paths(sysconfdir, 'kernel/install.d')))
-+                         mkdir_p.format(join_paths(factoryconfdir, 'kernel/install.d')))
+ 	meson.add_install_script('sh', '-c',
+-				mkdir_p.format(join_paths(sysconfdir, 'kernel/install.d')))
++				mkdir_p.format(join_paths(factoryconfdir, 'kernel/install.d')))
+ endif
 diff --git a/src/login/meson.build b/src/login/meson.build
 index 0a7d3d5440..ff90149c1c 100644
 --- a/src/login/meson.build
@@ -203,10 +204,10 @@ index 0a7d3d5440..ff90149c1c 100644
          install_data('org.freedesktop.login1.conf',
                       install_dir : dbuspolicydir)
 diff --git a/src/network/meson.build b/src/network/meson.build
-index c1c02cfda1..1bfa79a03b 100644
+index b3a88d9910..be56d1e9d7 100644
 --- a/src/network/meson.build
 +++ b/src/network/meson.build
-@@ -201,7 +201,7 @@ if conf.get('ENABLE_NETWORKD') == 1
+@@ -229,7 +229,7 @@ if conf.get('ENABLE_NETWORKD') == 1
          endif
  
          install_data('networkd.conf',
@@ -227,10 +228,10 @@ index adbac24b54..e9dc88dfa2 100644
 +                     install_dir : factorypkgconfdir)
  endif
 diff --git a/src/resolve/meson.build b/src/resolve/meson.build
-index c4d8d4e5d9..f550c289a5 100644
+index 92b67b6333..ac5b9a0b0a 100644
 --- a/src/resolve/meson.build
 +++ b/src/resolve/meson.build
-@@ -170,7 +170,7 @@ if conf.get('ENABLE_RESOLVE') == 1
+@@ -168,7 +168,7 @@ if conf.get('ENABLE_RESOLVE') == 1
                  output : 'resolved.conf',
                  configuration : substs)
          install_data(resolved_conf,
@@ -253,10 +254,10 @@ index e5c118c8db..19235df9ca 100644
                       install_dir : dbuspolicydir)
          install_data('org.freedesktop.timesync1.service',
 diff --git a/src/udev/meson.build b/src/udev/meson.build
-index 173b10be50..82638cf5a9 100644
+index aa23b07090..ad004d803a 100644
 --- a/src/udev/meson.build
 +++ b/src/udev/meson.build
-@@ -187,7 +187,7 @@ foreach prog : [['ata_id/ata_id.c'],
+@@ -186,7 +186,7 @@ foreach prog : [['ata_id/ata_id.c'],
  endforeach
  
  install_data('udev.conf',
@@ -265,7 +266,7 @@ index 173b10be50..82638cf5a9 100644
  
  configure_file(
          input : 'udev.pc.in',
-@@ -196,7 +196,7 @@ configure_file(
+@@ -195,7 +195,7 @@ configure_file(
          install_dir : pkgconfigdatadir == 'no' ? '' : pkgconfigdatadir)
  
  meson.add_install_script('sh', '-c',
@@ -285,10 +286,10 @@ index 3f072e3db7..bd9f843eba 100644
 -                         mkdir_p.format(join_paths(sysconfdir, 'sysctl.d')))
 +                         mkdir_p.format(join_paths(factoryconfdir, 'sysctl.d')))
 diff --git a/tmpfiles.d/meson.build b/tmpfiles.d/meson.build
-index e77f46d06b..04d2ef621d 100644
+index 0a9582d8b9..3c56ca7d83 100644
 --- a/tmpfiles.d/meson.build
 +++ b/tmpfiles.d/meson.build
-@@ -57,5 +57,5 @@ endforeach
+@@ -58,5 +58,5 @@ endforeach
  if enable_tmpfiles
          meson.add_install_script(
                  'sh', '-c',
@@ -296,7 +297,7 @@ index e77f46d06b..04d2ef621d 100644
 +                mkdir_p.format(join_paths(factoryconfdir, 'tmpfiles.d')))
  endif
 diff --git a/units/meson.build b/units/meson.build
-index ea91f0cc9e..8622054ca5 100644
+index aa2ed115ea..12e2925226 100644
 --- a/units/meson.build
 +++ b/units/meson.build
 @@ -323,7 +323,7 @@ install_data('user-.slice.d/10-defaults.conf',
@@ -309,5 +310,5 @@ index ea91f0cc9e..8622054ca5 100644
                           join_paths(dbussystemservicedir, 'org.freedesktop.systemd1.service'),
                           join_paths(dbussessionservicedir, 'org.freedesktop.systemd1.service'))
 -- 
-2.26.2
+2.27.0
 
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0013-inherit-systemd-environment-when-calling-generators.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0013-inherit-systemd-environment-when-calling-generators.patch
index 5aa397afe8e6..a15220fd3f93 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0013-inherit-systemd-environment-when-calling-generators.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0013-inherit-systemd-environment-when-calling-generators.patch
@@ -1,4 +1,4 @@
-From 0b0510aa72cf8026f34f300efa3f150f45971404 Mon Sep 17 00:00:00 2001
+From bfaa53731ffe984c93c5321099d1341b5059f029 Mon Sep 17 00:00:00 2001
 From: Andreas Rammhold <andreas@rammhold.de>
 Date: Fri, 2 Nov 2018 21:15:42 +0100
 Subject: [PATCH 13/18] inherit systemd environment when calling generators.
@@ -16,10 +16,10 @@ executables that are being called from managers.
  1 file changed, 8 insertions(+), 3 deletions(-)
 
 diff --git a/src/core/manager.c b/src/core/manager.c
-index 25afdbea04..7afd5e5a37 100644
+index 41e0d73736..d02de06f09 100644
 --- a/src/core/manager.c
 +++ b/src/core/manager.c
-@@ -3896,9 +3896,14 @@ static int manager_run_generators(Manager *m) {
+@@ -4095,9 +4095,14 @@ static int manager_run_generators(Manager *m) {
          argv[4] = NULL;
  
          RUN_WITH_UMASK(0022)
@@ -38,5 +38,5 @@ index 25afdbea04..7afd5e5a37 100644
  
  finish:
 -- 
-2.26.2
+2.27.0
 
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0014-add-rootprefix-to-lookup-dir-paths.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0014-add-rootprefix-to-lookup-dir-paths.patch
index 91c091baa9e7..dca7b5591d29 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0014-add-rootprefix-to-lookup-dir-paths.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0014-add-rootprefix-to-lookup-dir-paths.patch
@@ -1,4 +1,4 @@
-From 4bd20cf0450455e2f9831b09ba91811ba3d58961 Mon Sep 17 00:00:00 2001
+From d8b93ef32f3b95a6ce6548a8ad1504a485ffbe81 Mon Sep 17 00:00:00 2001
 From: Andreas Rammhold <andreas@rammhold.de>
 Date: Thu, 9 May 2019 11:15:22 +0200
 Subject: [PATCH 14/18] add rootprefix to lookup dir paths
@@ -34,5 +34,5 @@ index 970654a1ad..bb261040f8 100644
  #define CONF_PATHS(n)                           \
          CONF_PATHS_USR(n)                       \
 -- 
-2.26.2
+2.27.0
 
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0015-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0015-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
index 2bc75e279282..1bd9e23d25c2 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0015-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0015-systemd-shutdown-execute-scripts-in-etc-systemd-syst.patch
@@ -1,4 +1,4 @@
-From f23a1e00de028048a2a21d322493039cce7ee214 Mon Sep 17 00:00:00 2001
+From b3bc0aa899c51d19edfb53af2b00dde64123ab06 Mon Sep 17 00:00:00 2001
 From: Nikolay Amiantov <ab@fmap.me>
 Date: Thu, 25 Jul 2019 20:45:55 +0300
 Subject: [PATCH 15/18] systemd-shutdown: execute scripts in
@@ -10,10 +10,10 @@ This is needed for NixOS to use such scripts as systemd directory is immutable.
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/shutdown/shutdown.c b/src/shutdown/shutdown.c
-index 15e6c1799e..412bdefe74 100644
+index 06c9710c6e..dadcc3117d 100644
 --- a/src/shutdown/shutdown.c
 +++ b/src/shutdown/shutdown.c
-@@ -298,7 +298,7 @@ int main(int argc, char *argv[]) {
+@@ -312,7 +312,7 @@ int main(int argc, char *argv[]) {
          _cleanup_free_ char *cgroup = NULL;
          char *arguments[3], *watchdog_device;
          int cmd, r, umount_log_level = LOG_INFO;
@@ -23,5 +23,5 @@ index 15e6c1799e..412bdefe74 100644
          /* The log target defaults to console, but the original systemd process will pass its log target in through a
           * command line argument, which will override this default. Also, ensure we'll never log to the journal or
 -- 
-2.26.2
+2.27.0
 
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0016-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0016-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
index 97f63c02c380..d99c7ecc96c1 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0016-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0016-systemd-sleep-execute-scripts-in-etc-systemd-system-.patch
@@ -1,4 +1,4 @@
-From 758b8211e6e76524d62a2e0ffcf37dcf55e3be87 Mon Sep 17 00:00:00 2001
+From 2679210f4ce804713bf1d244ac0fb8ac7b9b1e5f Mon Sep 17 00:00:00 2001
 From: Nikolay Amiantov <ab@fmap.me>
 Date: Thu, 25 Jul 2019 20:46:58 +0300
 Subject: [PATCH 16/18] systemd-sleep: execute scripts in
@@ -10,10 +10,10 @@ This is needed for NixOS to use such scripts as systemd directory is immutable.
  1 file changed, 1 insertion(+)
 
 diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
-index fbfddc0262..d2530b9421 100644
+index 7029352ca5..6d9c636872 100644
 --- a/src/sleep/sleep.c
 +++ b/src/sleep/sleep.c
-@@ -178,6 +178,7 @@ static int execute(char **modes, char **states) {
+@@ -182,6 +182,7 @@ static int execute(char **modes, char **states) {
          };
          static const char* const dirs[] = {
                  SYSTEM_SLEEP_PATH,
@@ -22,5 +22,5 @@ index fbfddc0262..d2530b9421 100644
          };
  
 -- 
-2.26.2
+2.27.0
 
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0017-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0017-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch
index 2a0bb0103f54..f45e4edd8e84 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0017-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0017-kmod-static-nodes.service-Update-ConditionFileNotEmp.patch
@@ -1,4 +1,4 @@
-From ce9fe2249c91fdfb224eaffce63e3dbdb4a5c25d Mon Sep 17 00:00:00 2001
+From 561b0cc9a1faed5729d6f701304a65c2968394ec Mon Sep 17 00:00:00 2001
 From: Florian Klink <flokli@flokli.de>
 Date: Sat, 7 Mar 2020 22:40:27 +0100
 Subject: [PATCH 17/18] kmod-static-nodes.service: Update ConditionFileNotEmpty
@@ -23,5 +23,5 @@ index 0971edf9ec..87105a87b9 100644
  [Service]
  Type=oneshot
 -- 
-2.26.2
+2.27.0
 
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/0018-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch b/nixpkgs/pkgs/os-specific/linux/systemd/0018-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
index 08b2fa056f8b..a964aeede76b 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/0018-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/0018-path-util.h-add-placeholder-for-DEFAULT_PATH_NORMAL.patch
@@ -1,4 +1,4 @@
-From 55b69fc1b5441e3aff8f1ab684ba8eed3718a32d Mon Sep 17 00:00:00 2001
+From 0d9d7c03054babdbd1fa5f6f266b56e8c96e9ba5 Mon Sep 17 00:00:00 2001
 From: Florian Klink <flokli@flokli.de>
 Date: Sun, 8 Mar 2020 01:05:54 +0100
 Subject: [PATCH 18/18] path-util.h: add placeholder for DEFAULT_PATH_NORMAL
@@ -29,5 +29,5 @@ index 30031fca8e..d97145539a 100644
  #if HAVE_SPLIT_USR
  #  define DEFAULT_PATH DEFAULT_PATH_SPLIT_USR
 -- 
-2.26.2
+2.27.0
 
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/cryptsetup-generator.nix b/nixpkgs/pkgs/os-specific/linux/systemd/cryptsetup-generator.nix
deleted file mode 100644
index 3fd8ff07f425..000000000000
--- a/nixpkgs/pkgs/os-specific/linux/systemd/cryptsetup-generator.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ systemd, cryptsetup }:
-
-systemd.overrideAttrs (p: {
-  version = p.version;
-  name = "systemd-cryptsetup-generator-${p.version}";
-
-  buildInputs = p.buildInputs ++ [ cryptsetup ];
-  outputs = [ "out" ];
-
-  buildPhase = ''
-    ninja systemd-cryptsetup systemd-cryptsetup-generator
-  '';
-
-  # As ninja install is not used here, the rpath needs to be manually fixed.
-  # Otherwise the resulting binary doesn't properly link against systemd-shared.so
-  postFixup = ''
-    for prog in `find $out -type f -executable`; do
-      (patchelf --print-needed $prog | grep 'libsystemd-shared-.*\.so' > /dev/null) && (
-        patchelf --set-rpath `patchelf --print-rpath $prog`:"$out/lib/systemd" $prog
-      ) || true
-    done
-    # test it's OK
-    "$out"/lib/systemd/systemd-cryptsetup
-  '';
-
-  installPhase = ''
-    mkdir -p $out/lib/systemd/
-    cp systemd-cryptsetup $out/lib/systemd/systemd-cryptsetup
-    cp src/shared/*.so $out/lib/systemd/
-
-    mkdir -p $out/lib/systemd/system-generators/
-    cp systemd-cryptsetup-generator $out/lib/systemd/system-generators/systemd-cryptsetup-generator
-  '';
-})
diff --git a/nixpkgs/pkgs/os-specific/linux/systemd/default.nix b/nixpkgs/pkgs/os-specific/linux/systemd/default.nix
index 3235fb3b95cd..54060b156f26 100644
--- a/nixpkgs/pkgs/os-specific/linux/systemd/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/systemd/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, pkgconfig, intltool, gperf, libcap
-, curl, kmod, gnupg, gnutar, xz, pam, acl, libuuid, m4, utillinux, libffi
+{ stdenv, lib, fetchFromGitHub, pkgconfig, intltool, gperf, libcap
+, curl, kmod, gnupg, gnutar, xz, pam, acl, libuuid, m4, e2fsprogs, utillinux, libffi
 , glib, kbd, libxslt, coreutils, libgcrypt, libgpgerror, libidn2, libapparmor
-, audit, lz4, bzip2, libmicrohttpd, pcre2
+, audit, lz4, bzip2, pcre2
 , linuxHeaders ? stdenv.cc.libc.linuxHeaders
 , iptables, gnu-efi, bashInteractive
 , gettext, docbook_xsl, docbook_xml_dtd_42, docbook_xml_dtd_45
@@ -9,6 +9,7 @@
 , patchelf
 , substituteAll
 , getent
+, cryptsetup, lvm2
 , buildPackages
 , perl
 , withSelinux ? false, libselinux
@@ -16,33 +17,24 @@
 , withKexectools ? lib.any (lib.meta.platformMatch stdenv.hostPlatform) kexectools.meta.platforms, kexectools
 }:
 
-let gnupg-minimal = gnupg.override {
-  enableMinimal = true;
-  guiSupport = false;
-  pcsclite = null;
-  sqlite = null;
-  pinentry = null;
-  adns = null;
-  gnutls = null;
-  libusb1 = null;
-  openldap = null;
-  readline = null;
-  zlib = null;
-  bzip2 = null;
-};
+let
+  version = "246";
 in stdenv.mkDerivation {
-  version = "245.5";
+  inherit version;
   pname = "systemd";
 
-  # When updating, use https://github.com/systemd/systemd-stable tree, not the development one!
-  # Also fresh patches should be cherry-picked from that tree to our current one.
+  # We use systemd/systemd-stable for src, and ship NixOS-specific patches inside nixpkgs directly
+  # This has proven to be less error-prone than the previous systemd fork.
   src = fetchFromGitHub {
     owner = "systemd";
     repo = "systemd-stable";
-    rev = "9a506b7e9291d997a920af9ac299e7b834368119";
-    sha256 = "19qd92hjlsljr6x5mbw1l2vdzz5y9hy7y7g0dwgpfifb0lwkxqbr";
+    rev = "v${version}";
+    sha256 = "0zrkyxrh5rm45f2l1rnjyv229bcyzawfw7c63jqxwix75px60dyw";
   };
 
+  # If these need to be regenerated, `git am path/to/00*.patch` them into a
+  # systemd worktree, rebase to the more recent systemd version, and export the
+  # patches again via `git format-patch v${version}`.
   patches = [
     ./0001-Start-device-units-for-uninitialised-encrypted-devic.patch
     ./0002-Don-t-try-to-unmount-nix-or-nix-store.patch
@@ -75,7 +67,7 @@ in stdenv.mkDerivation {
       "find_program('${stdenv.cc.bintools.targetPrefix}objcopy'"
   '';
 
-  outputs = [ "out" "lib" "man" "dev" ];
+  outputs = [ "out" "man" "dev" ];
 
   nativeBuildInputs =
     [ pkgconfig intltool gperf libxslt gettext docbook_xsl docbook_xml_dtd_42 docbook_xml_dtd_45
@@ -89,8 +81,8 @@ in stdenv.mkDerivation {
     ];
   buildInputs =
     [ linuxHeaders libcap curl.dev kmod xz pam acl
-      /* cryptsetup */ libuuid glib libgcrypt libgpgerror libidn2
-      libmicrohttpd pcre2 ] ++
+      cryptsetup libuuid glib libgcrypt libgpgerror libidn2
+      pcre2 ] ++
       stdenv.lib.optional withKexectools kexectools ++
       stdenv.lib.optional withLibseccomp libseccomp ++
     [ libffi audit lz4 bzip2 libapparmor
@@ -105,7 +97,6 @@ in stdenv.mkDerivation {
     "-Ddbussystemservicedir=${placeholder "out"}/share/dbus-1/system-services"
     "-Dpamconfdir=${placeholder "out"}/etc/pam.d"
     "-Drootprefix=${placeholder "out"}"
-    "-Drootlibdir=${placeholder "lib"}/lib"
     "-Dpkgconfiglibdir=${placeholder "dev"}/lib/pkgconfig"
     "-Dpkgconfigdatadir=${placeholder "dev"}/share/pkgconfig"
     "-Dloadkeys-path=${kbd}/bin/loadkeys"
@@ -120,6 +111,7 @@ in stdenv.mkDerivation {
     "-Dhostnamed=true"
     "-Dnetworkd=true"
     "-Dportabled=false"
+    "-Dremote=false"
     "-Dsysusers=false"
     "-Dtimedated=true"
     "-Dtimesyncd=true"
@@ -175,12 +167,28 @@ in stdenv.mkDerivation {
     export LC_ALL="en_US.UTF-8";
     # FIXME: patch this in systemd properly (and send upstream).
     # already fixed in f00929ad622c978f8ad83590a15a765b4beecac9: (u)mount
-    for i in src/remount-fs/remount-fs.c src/core/mount.c src/core/swap.c src/fsck/fsck.c units/emergency.service.in units/rescue.service.in src/journal/cat.c src/shutdown/shutdown.c src/nspawn/nspawn.c src/shared/generator.c units/systemd-logind.service.in units/systemd-nspawn@.service.in; do
+    for i in \
+      src/core/mount.c \
+      src/core/swap.c \
+      src/cryptsetup/cryptsetup-generator.c \
+      src/fsck/fsck.c \
+      src/journal/cat.c \
+      src/nspawn/nspawn.c \
+      src/remount-fs/remount-fs.c \
+      src/shared/generator.c \
+      src/shutdown/shutdown.c \
+      units/emergency.service.in \
+      units/rescue.service.in \
+      units/systemd-logind.service.in \
+      units/systemd-nspawn@.service.in; \
+    do
       test -e $i
       substituteInPlace $i \
         --replace /usr/bin/getent ${getent}/bin/getent \
+        --replace /sbin/mkswap ${lib.getBin utillinux}/sbin/mkswap \
         --replace /sbin/swapon ${lib.getBin utillinux}/sbin/swapon \
         --replace /sbin/swapoff ${lib.getBin utillinux}/sbin/swapoff \
+        --replace /sbin/mke2fs ${lib.getBin e2fsprogs}/sbin/mke2fs \
         --replace /sbin/fsck ${lib.getBin utillinux}/sbin/fsck \
         --replace /bin/echo ${coreutils}/bin/echo \
         --replace /bin/cat ${coreutils}/bin/cat \
@@ -196,7 +204,7 @@ in stdenv.mkDerivation {
 
     # absolute paths to gpg & tar
     substituteInPlace src/import/pull-common.c \
-      --replace '"gpg"' '"${gnupg-minimal}/bin/gpg"'
+      --replace '"gpg"' '"${gnupg}/bin/gpg"'
     for file in src/import/{{export,import,pull}-tar,import-common}.c; do
       substituteInPlace $file \
         --replace '"tar"' '"${gnutar}/bin/tar"'
@@ -257,38 +265,10 @@ in stdenv.mkDerivation {
 
     # "kernel-install" shouldn't be used on NixOS.
     find $out -name "*kernel-install*" -exec rm {} \;
-
-    # Keep only libudev and libsystemd in the lib output.
-    mkdir -p $out/lib
-    mv $lib/lib/security $lib/lib/libnss* $out/lib/
   ''; # */
 
   enableParallelBuilding = true;
 
-  # On aarch64 we "leak" a reference to $out/lib/systemd/catalog in the lib
-  # output. The result of that is a dependency cycle between $out and $lib.
-  # Thus nix (rightfully) marks the build as failed. That reference originates
-  # from an array of strings (catalog_file_dirs) in systemd
-  # (src/src/journal/catalog.{c,h}).  The only consumer (as of v242) of the
-  # symbol is the main function of journalctl.  Still libsystemd.so contains
-  # the VALUE but not the symbol.  Systemd seems to be properly using function
-  # & data sections together with the linker flags to garbage collect unused
-  # sections (-Wl,--gc-sections).  For unknown reasons those flags do not
-  # eliminate the unused string constants, in this case on aarch64-linux. The
-  # hacky way is to just remove the reference after we finished compiling.
-  # Since it can not be used (there is no symbol to actually refer to it) there
-  # should not be any harm.  It is a bit odd and I really do not like starting
-  # these kind of hacks but there doesn't seem to be a straight forward way at
-  # this point in time.
-  # The reference will be replaced by the same reference the usual nukeRefs
-  # tooling uses.  The standard tooling can not / should not be uesd since it
-  # is a bit too excessive and could potentially do us some (more) harm.
-  postFixup = ''
-    nukedRef=$(echo $out | sed -e "s,$NIX_STORE/[^-]*-\(.*\),$NIX_STORE/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-\1,")
-    cat $lib/lib/libsystemd.so | perl -pe "s|$out/lib/systemd/catalog|$nukedRef/lib/systemd/catalog|" > $lib/lib/libsystemd.so.tmp
-    mv $lib/lib/libsystemd.so.tmp $(readlink -f $lib/lib/libsystemd.so)
-  '';
-
   # The interface version prevents NixOS from switching to an
   # incompatible systemd at runtime.  (Switching across reboots is
   # fine, of course.)  It should be increased whenever systemd changes
diff --git a/nixpkgs/pkgs/os-specific/linux/sysvinit/default.nix b/nixpkgs/pkgs/os-specific/linux/sysvinit/default.nix
index 0fc5acba4dac..5d081f2db825 100644
--- a/nixpkgs/pkgs/os-specific/linux/sysvinit/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/sysvinit/default.nix
@@ -1,13 +1,13 @@
 { stdenv, fetchurl, withoutInitTools ? false }:
 
-let version = "2.96"; in
+let version = "2.97"; in
 
 stdenv.mkDerivation {
   name = (if withoutInitTools then "sysvtools" else "sysvinit") + "-" + version;
 
   src = fetchurl {
     url = "mirror://savannah/sysvinit/sysvinit-${version}.tar.xz";
-    sha256 = "11xmcamvjmrw874zp0vc37hrqc4hz02i0iy8n4xa4dd25avjcbia";
+    sha256 = "042iyayyh3j28vfbypzn822b73r3nfmyn79f9mixigqrfn2rcn9d";
   };
 
   prePatch = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/targetcli/default.nix b/nixpkgs/pkgs/os-specific/linux/targetcli/default.nix
index 65d46ad34c16..94920c4012a4 100644
--- a/nixpkgs/pkgs/os-specific/linux/targetcli/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/targetcli/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, python, fetchFromGitHub }:
+{ stdenv, python3, fetchFromGitHub }:
 
-python.pkgs.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "targetcli";
-  version = "2.1.51";
+  version = "2.1.53";
 
   src = fetchFromGitHub {
     owner = "open-iscsi";
     repo = "${pname}-fb";
     rev = "v${version}";
-    sha256 = "07i9kyr525hlk32amzgycirwgwykdbjy5fmw6ji0nnhvk2jh4arn";
+    sha256 = "1qrq7y5hnghzbxgrxgl153n8jlhw31kqjbr93jsvlvhz5b3ci750";
   };
 
-  propagatedBuildInputs = with python.pkgs; [ configshell rtslib ];
+  propagatedBuildInputs = with python3.pkgs; [ configshell rtslib ];
 
   postInstall = ''
     install -D targetcli.8 -t $out/share/man/man8/
diff --git a/nixpkgs/pkgs/os-specific/linux/tiscamera/default.nix b/nixpkgs/pkgs/os-specific/linux/tiscamera/default.nix
index fb2773b4d3ad..f9196fc16864 100644
--- a/nixpkgs/pkgs/os-specific/linux/tiscamera/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/tiscamera/default.nix
@@ -2,7 +2,7 @@
 , stdenv
 , fetchFromGitHub
 , cmake
-, pkgconfig
+, pkg-config
 , pcre
 , tinyxml
 , libusb1
@@ -12,7 +12,6 @@
 , gst_all_1
 , libwebcam
 , libunwind
-, gstreamer
 , elfutils
 , orc
 , python3
@@ -32,7 +31,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     cmake
-    pkgconfig
+    pkg-config
   ];
 
   buildInputs = [
@@ -46,54 +45,37 @@ stdenv.mkDerivation rec {
     gst_all_1.gst-plugins-base
     libwebcam
     libunwind
-    gstreamer
     elfutils
     orc
     python3
     libuuid
   ];
 
-
   cmakeFlags = [
     "-DBUILD_ARAVIS=OFF" # For GigE support. Won't need it as our camera is usb.
     "-DBUILD_GST_1_0=ON"
     "-DBUILD_TOOLS=ON"
     "-DBUILD_V4L2=ON"
     "-DBUILD_LIBUSB=ON"
+    "-DTCAM_INSTALL_UDEV=${placeholder "out"}/lib/udev/rules.d"
+    "-DTCAM_INSTALL_UVCDYNCTRL=${placeholder "out"}/share/uvcdynctrl/data/199e"
+    "-DTCAM_INSTALL_GST_1_0=${placeholder "out"}/lib/gstreamer-1.0"
+    "-DTCAM_INSTALL_GIR=${placeholder "out"}/share/gir-1.0"
+    "-DTCAM_INSTALL_TYPELIB=${placeholder "out"}/lib/girepository-1.0"
+    "-DTCAM_INSTALL_SYSTEMD=${placeholder "out"}/etc/systemd/system"
+    # There are gobject introspection commands launched as part of the build. Those have a runtime
+    # dependency on `libtcam` (which itself is built as part of this build). In order to allow
+    # that, we set the dynamic linker's path to point on the build time location of the library.
+    "-DCMAKE_SKIP_BUILD_RPATH=OFF"
   ];
 
   postPatch = ''
-    substituteInPlace ./data/udev/80-theimagingsource-cameras.rules.in \
-      --replace "/usr/bin/uvcdynctrl" "${libwebcam}/bin/uvcdynctrl" \
-      --replace "/path/to/tiscamera/uvc-extensions" "$out/share/uvcdynctrl/data/199e"
-
     substituteInPlace ./src/BackendLoader.cpp \
       --replace '"libtcam-v4l2.so"' "\"$out/lib/tcam-0/libtcam-v4l2.so\"" \
       --replace '"libtcam-aravis.so"' "\"$out/lib/tcam-0/libtcam-aravis.so\"" \
       --replace '"libtcam-libusb.so"' "\"$out/lib/tcam-0/libtcam-libusb.so\""
   '';
 
-  preConfigure = ''
-    cmakeFlagsArray=(
-      $cmakeFlagsArray
-      "-DCMAKE_INSTALL_PREFIX=$out"
-      "-DTCAM_INSTALL_UDEV=$out/lib/udev/rules.d"
-      "-DTCAM_INSTALL_UVCDYNCTRL=$out/share/uvcdynctrl/data/199e"
-      "-DTCAM_INSTALL_GST_1_0=$out/lib/gstreamer-1.0"
-      "-DTCAM_INSTALL_GIR=$out/share/gir-1.0"
-      "-DTCAM_INSTALL_TYPELIB=$out/lib/girepository-1.0"
-      "-DTCAM_INSTALL_SYSTEMD=$out/etc/systemd/system"
-    )
-  '';
-
-
-  # There are gobject introspection commands launched as part of the build. Those have a runtime
-  # dependency on `libtcam` (which itself is built as part of this build). In order to allow
-  # that, we set the dynamic linker's path to point on the build time location of the library.
-  preBuild = ''
-    export LD_LIBRARY_PATH=$PWD/src''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH
-  '';
-
   meta = with lib; {
     description = "The Linux sources and UVC firmwares for The Imaging Source cameras";
     homepage = "https://github.com/TheImagingSource/tiscamera";
diff --git a/nixpkgs/pkgs/os-specific/linux/turbostat/default.nix b/nixpkgs/pkgs/os-specific/linux/turbostat/default.nix
index 4207589aaff0..035dddcc4ec0 100644
--- a/nixpkgs/pkgs/os-specific/linux/turbostat/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/turbostat/default.nix
@@ -1,9 +1,10 @@
-{ stdenv, kernel }:
+{ stdenv, kernel, libcap }:
 
 stdenv.mkDerivation {
   pname = "turbostat";
   inherit (kernel) src version;
 
+  buildInputs = [ libcap ];
   makeFlags = [ "PREFIX=${placeholder "out"}" ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/os-specific/linux/undervolt/default.nix b/nixpkgs/pkgs/os-specific/linux/undervolt/default.nix
index 696625761b16..2f03ee8c8201 100644
--- a/nixpkgs/pkgs/os-specific/linux/undervolt/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/undervolt/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, python3Packages }:
 
 python3Packages.buildPythonApplication rec {
-  version = "0.2.11";
+  version = "0.3.0";
   pname = "undervolt";
 
   src = fetchFromGitHub {
     owner = "georgewhewell";
     repo = "undervolt";
     rev = version;
-    sha256 = "18mnf3x687qal7k8yk2sdxzgbyn3rqchgflbi1sksryznmksqqw5";
+    sha256 = "1aybk8vbb4745raz7rvpkk6b98xrdiwjhkpbv3kwsgsr9sj42lp0";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/os-specific/linux/util-linux/default.nix b/nixpkgs/pkgs/os-specific/linux/util-linux/default.nix
index aa23a162a929..ac6ad8a4bb76 100644
--- a/nixpkgs/pkgs/os-specific/linux/util-linux/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/util-linux/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "util-linux";
-  version = "2.35.1";
+  version = "2.36";
 
   src = fetchurl {
     url = "mirror://kernel/linux/utils/util-linux/v${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1yfpy6bkab4jw61mpx48gfy24yrqp4a7arvpis8csrkk53fkxpnr";
+    sha256 = "1cg0m4psswg71v6wrqc2bngcw20fsp01vbijxdzvdf8kxdkiqjwy";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/os-specific/linux/v4l-utils/default.nix b/nixpkgs/pkgs/os-specific/linux/v4l-utils/default.nix
index c23c37aa56d0..2c9b395949aa 100644
--- a/nixpkgs/pkgs/os-specific/linux/v4l-utils/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/v4l-utils/default.nix
@@ -12,11 +12,11 @@ let
 # we need to use stdenv.mkDerivation in order not to pollute the libv4l’s closure with Qt
 in stdenv.mkDerivation rec {
   pname = "v4l-utils";
-  version = "1.18.1";
+  version = "1.20.0";
 
   src = fetchurl {
     url = "https://linuxtv.org/downloads/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "0hpkqm2bpg1ma2shjzcf6xsrpyjd8h5cakgh8a3iyh126wjl5z15";
+    sha256 = "1xr66y6w422hil6s7n8d61a2vhwh4im8l267amf41jvw7xqihqcm";
   };
 
   outputs = [ "out" ] ++ lib.optional withUtils "lib" ++ [ "dev" ];
@@ -41,6 +41,7 @@ in stdenv.mkDerivation rec {
 
   postPatch = ''
     patchShebangs utils/cec-ctl/msg2ctl.pl
+    patchShebangs utils/libcecutil/cec-gen.pl
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/os-specific/linux/wireguard/default.nix b/nixpkgs/pkgs/os-specific/linux/wireguard/default.nix
index 6af465da4731..b8b65fecafc2 100644
--- a/nixpkgs/pkgs/os-specific/linux/wireguard/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/wireguard/default.nix
@@ -7,11 +7,11 @@ assert stdenv.lib.versionOlder kernel.version "5.6";
 
 stdenv.mkDerivation rec {
   pname = "wireguard";
-  version = "1.0.20200611";
+  version = "1.0.20200908";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/wireguard-linux-compat/snapshot/wireguard-linux-compat-${version}.tar.xz";
-    sha256 = "0a8xsjxp8krmm2px07x9qw8nhvp5ispf4mnc6k59p0qp26qbva5d";
+    sha256 = "1nd2kc3c62907kxm1084dw7krd8xsy3hxydmcpz4jvk03vm5dnkg";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/xf86-video-nested/default.nix b/nixpkgs/pkgs/os-specific/linux/xf86-video-nested/default.nix
index c117293d3ad1..f86393cba84d 100644
--- a/nixpkgs/pkgs/os-specific/linux/xf86-video-nested/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/xf86-video-nested/default.nix
@@ -20,10 +20,11 @@ stdenv.mkDerivation {
 
   CFLAGS = "-I${pixman}/include/pixman-1";
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = "https://cgit.freedesktop.org/xorg/driver/xf86-video-nested";
     description = "A driver to run Xorg on top of Xorg or something else";
-    maintainers = [ stdenv.lib.maintainers.goibhniu ];
-    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ maintainers.goibhniu ];
+    platforms = platforms.linux;
+    license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/linux/xpadneo/default.nix b/nixpkgs/pkgs/os-specific/linux/xpadneo/default.nix
new file mode 100644
index 000000000000..5f1018969212
--- /dev/null
+++ b/nixpkgs/pkgs/os-specific/linux/xpadneo/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, kernel, bluez }:
+
+stdenv.mkDerivation rec {
+  pname = "xpadneo";
+  version = "0.8.3";
+
+  src = fetchFromGitHub {
+    owner = "atar-axis";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1g3ml7vq0dzwl9815c3l0i0qz3a7v8c376c6dqbfkbj2f1d43vqs";
+  };
+
+  setSourceRoot = ''
+    export sourceRoot=$(pwd)/source/hid-xpadneo/src
+  '';
+
+  postPatch = ''
+    # Set kernel module version
+    substituteInPlace hid-xpadneo.c \
+      --subst-var-by DO_NOT_CHANGE ${version}
+  '';
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+  buildInputs = [ bluez ];
+
+  makeFlags = [
+    "-C"
+    "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+    "M=$(sourceRoot)"
+  ];
+
+  buildFlags = [ "modules" ];
+  installFlags = [ "INSTALL_MOD_PATH=${placeholder "out"}" ];
+  installTargets = [ "modules_install" ];
+
+  meta = with stdenv.lib; {
+    description = "Advanced Linux driver for Xbox One wireless controllers";
+    homepage = "https://atar-axis.github.io/xpadneo";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/os-specific/linux/zenmonitor/default.nix b/nixpkgs/pkgs/os-specific/linux/zenmonitor/default.nix
index e9e0e82a0932..23acaaa3e231 100644
--- a/nixpkgs/pkgs/os-specific/linux/zenmonitor/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/zenmonitor/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zenmonitor";
-  version = "1.4.0";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "ocerman";
     repo = "zenmonitor";
     rev = "v${version}";
-    sha256 = "1mn496iqfmhqsac7a5r0bdfddzrfiz6l34qiga0pip925g7hsm52";
+    sha256 = "0smv94vi36hziw42gasivyw25h5n1sgwwk1cv78id5g85w0kw246";
   };
 
   buildInputs = [ gtk3 ];
diff --git a/nixpkgs/pkgs/os-specific/linux/zenpower/default.nix b/nixpkgs/pkgs/os-specific/linux/zenpower/default.nix
index bc1d803bb100..43885027d9e7 100644
--- a/nixpkgs/pkgs/os-specific/linux/zenpower/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/zenpower/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zenpower";
-  version = "0.1.10";
+  version = "0.1.12";
 
   src = fetchFromGitHub {
     owner = "ocerman";
     repo = "zenpower";
     rev = "v${version}";
-    sha256 = "1fqqaj7fq49yi2yip518036w80r9w7mkxpbkrxqzlydpma1x9v5m";
+    sha256 = "116yrw4ygh3fqwhniaqq0nps29pq87mi2q1375f1ylkfiak8n63a";
   };
 
   hardeningDisable = [ "pic" ];
diff --git a/nixpkgs/pkgs/os-specific/linux/zfs/default.nix b/nixpkgs/pkgs/os-specific/linux/zfs/default.nix
index 56b36d4f3685..27e26b13a533 100644
--- a/nixpkgs/pkgs/os-specific/linux/zfs/default.nix
+++ b/nixpkgs/pkgs/os-specific/linux/zfs/default.nix
@@ -42,25 +42,27 @@ let
         inherit rev sha256;
       };
 
-      patches = [ ./BACKPORT-Linux-5.8-compat-__vmalloc.patch ] ++ extraPatches;
+      patches = extraPatches;
 
       postPatch = optionalString buildKernel ''
         patchShebangs scripts
         # The arrays must remain the same length, so we repeat a flag that is
         # already part of the command and therefore has no effect.
-        substituteInPlace ./module/zfs/zfs_ctldir.c --replace '"/usr/bin/env", "umount"' '"${utillinux}/bin/umount", "-n"' \
-                                                    --replace '"/usr/bin/env", "mount"'  '"${utillinux}/bin/mount", "-n"'
+        substituteInPlace ./module/${optionalString isUnstable "os/linux/"}zfs/zfs_ctldir.c \
+          --replace '"/usr/bin/env", "umount"' '"${utillinux}/bin/umount", "-n"' \
+          --replace '"/usr/bin/env", "mount"'  '"${utillinux}/bin/mount", "-n"'
       '' + optionalString buildUser ''
         substituteInPlace ./lib/libzfs/libzfs_mount.c --replace "/bin/umount"             "${utillinux}/bin/umount" \
                                                       --replace "/bin/mount"              "${utillinux}/bin/mount"
-        substituteInPlace ./lib/libshare/nfs.c        --replace "/usr/sbin/exportfs"      "${
+        substituteInPlace ./lib/libshare/${optionalString isUnstable "os/linux/"}nfs.c --replace "/usr/sbin/exportfs" "${
           # We don't *need* python support, but we set it like this to minimize closure size:
           # If it's disabled by default, no need to enable it, even if we have python enabled
           # And if it's enabled by default, only change that if we explicitly disable python to remove python from the closure
           nfs-utils.override (old: { enablePython = old.enablePython or true && enablePython; })
         }/bin/exportfs"
         substituteInPlace ./config/user-systemd.m4    --replace "/usr/lib/modules-load.d" "$out/etc/modules-load.d"
-        substituteInPlace ./config/zfs-build.m4       --replace "\$sysconfdir/init.d"     "$out/etc/init.d"
+        substituteInPlace ./config/zfs-build.m4       --replace "\$sysconfdir/init.d"     "$out/etc/init.d" \
+                                                      --replace "/etc/default"            "$out/etc/default"
         substituteInPlace ./etc/zfs/Makefile.am       --replace "\$(sysconfdir)"          "$out/etc"
         substituteInPlace ./cmd/zed/Makefile.am       --replace "\$(sysconfdir)"          "$out/etc"
 
@@ -79,6 +81,13 @@ let
         substituteInPlace ./etc/systemd/system/Makefile.am \
           --replace '$(DESTDIR)$(systemdunitdir)' "$out"'$(DESTDIR)$(systemdunitdir)'
 
+        ${optionalString isUnstable ''
+        substituteInPlace ./contrib/initramfs/conf.d/Makefile.am \
+          --replace "/usr/share/initramfs-tools/conf.d" "$out/usr/share/initramfs-tools/conf.d"
+        substituteInPlace ./contrib/initramfs/conf-hooks.d/Makefile.am \
+          --replace "/usr/share/initramfs-tools/conf-hooks.d" "$out/usr/share/initramfs-tools/conf-hooks.d"
+        ''}
+
         substituteInPlace ./etc/systemd/system/zfs-share.service.in \
           --replace "/bin/rm " "${coreutils}/bin/rm "
 
@@ -190,6 +199,7 @@ in {
     version = "0.8.4";
 
     sha256 = "1hl4n900d24gl4vd65qdzq4m62b7bpvckldazcbd1xqcn8xhi6wp";
+    extraPatches = [ ./BACKPORT-Linux-5.8-compat-__vmalloc.patch ];
   };
 
   zfsUnstable = common {
@@ -197,9 +207,9 @@ in {
     # incompatibleKernelVersion = "4.19";
 
     # this package should point to a version / git revision compatible with the latest kernel release
-    version = "0.8.4";
+    version = "2.0.0-rc1";
 
-    sha256 = "1hl4n900d24gl4vd65qdzq4m62b7bpvckldazcbd1xqcn8xhi6wp";
+    sha256 = "0d1m5zwgqzfwbscvb60zvzkjgl5nkbvas22vjsyci3xygz0qwjsb";
     isUnstable = true;
   };
 }
diff --git a/nixpkgs/pkgs/os-specific/windows/mingw-w64/default.nix b/nixpkgs/pkgs/os-specific/windows/mingw-w64/default.nix
index 7efc2e213133..6c17e0718bb5 100644
--- a/nixpkgs/pkgs/os-specific/windows/mingw-w64/default.nix
+++ b/nixpkgs/pkgs/os-specific/windows/mingw-w64/default.nix
@@ -1,14 +1,14 @@
 { stdenv, windows, fetchurl }:
 
 let
-  version = "5.0.4";
+  version = "6.0.0";
 in stdenv.mkDerivation {
   pname = "mingw-w64";
   inherit version;
 
   src = fetchurl {
     url = "mirror://sourceforge/mingw-w64/mingw-w64-v${version}.tar.bz2";
-    sha256 = "00zq3z1hbzd5yzmskskjg79xrzwsqx7ihyprfaxy4hb897vf29sm";
+    sha256 = "1w28mynv500y03h92nh87rgw3fnp82qwnjbxrrzqkmr63q812pl0";
   };
 
   outputs = [ "out" "dev" ];
@@ -23,7 +23,6 @@ in stdenv.mkDerivation {
   buildInputs = [ windows.mingw_w64_headers ];
   dontStrip = true;
   hardeningDisable = [ "stackprotector" "fortify" ];
-  patches = [ ./osvi.patch ];
 
   meta = {
     platforms = stdenv.lib.platforms.windows;
diff --git a/nixpkgs/pkgs/os-specific/windows/mingw-w64/headers.nix b/nixpkgs/pkgs/os-specific/windows/mingw-w64/headers.nix
index 6a93cea67080..1fd27a8c4573 100644
--- a/nixpkgs/pkgs/os-specific/windows/mingw-w64/headers.nix
+++ b/nixpkgs/pkgs/os-specific/windows/mingw-w64/headers.nix
@@ -4,8 +4,6 @@ stdenvNoCC.mkDerivation {
   name = "${mingw_w64.name}-headers";
   inherit (mingw_w64) src meta;
 
-  patches = [ ./osvi.patch ];
-
   preConfigure = ''
     cd mingw-w64-headers
   '';
diff --git a/nixpkgs/pkgs/os-specific/windows/mingw-w64/osvi.patch b/nixpkgs/pkgs/os-specific/windows/mingw-w64/osvi.patch
deleted file mode 100644
index c51ff4bd5dfd..000000000000
--- a/nixpkgs/pkgs/os-specific/windows/mingw-w64/osvi.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Fix `error:  osvi  undeclared (first use in this function)' issue.
-
-See: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=863064
---- a/mingw-w64-headers/include/multimon.h
-+++ b/mingw-w64-headers/include/multimon.h
-@@ -127,7 +127,7 @@
-   WINBOOL IsPlatformNT() {
-     OSVERSIONINFOA oi = { 0 };
- 
--    oi.dwOSVersionInfoSize = sizeof (osvi);
-+    oi.dwOSVersionInfoSize = sizeof (oi);
-     GetVersionExA ((OSVERSIONINFOA *) &oi);
-     return (oi.dwPlatformId == VER_PLATFORM_WIN32_NT);
-   }
\ No newline at end of file
diff --git a/nixpkgs/pkgs/pkgs-lib/default.nix b/nixpkgs/pkgs/pkgs-lib/default.nix
new file mode 100644
index 000000000000..113dcebf8c68
--- /dev/null
+++ b/nixpkgs/pkgs/pkgs-lib/default.nix
@@ -0,0 +1,11 @@
+# pkgs-lib is for functions and values that can't be in lib because
+# they depend on some packages. This notably is *not* for supporting package
+# building, instead pkgs/build-support is the place for that.
+{ lib, pkgs }: {
+  # setting format types and generators. These do not fit in lib/types.nix,
+  # because they depend on pkgs for rendering some formats
+  formats = import ./formats.nix {
+    inherit lib pkgs;
+  };
+}
+
diff --git a/nixpkgs/pkgs/pkgs-lib/formats.nix b/nixpkgs/pkgs/pkgs-lib/formats.nix
new file mode 100644
index 000000000000..14589f8ecdc3
--- /dev/null
+++ b/nixpkgs/pkgs/pkgs-lib/formats.nix
@@ -0,0 +1,109 @@
+{ lib, pkgs }:
+rec {
+
+  /*
+
+  Every following entry represents a format for program configuration files
+  used for `settings`-style options (see https://github.com/NixOS/rfcs/pull/42).
+  Each entry should look as follows:
+
+    <format> = <parameters>: {
+      #        ^^ Parameters for controlling the format
+
+      # The module system type most suitable for representing such a format
+      # The description needs to be overwritten for recursive types
+      type = ...;
+
+      # generate :: Name -> Value -> Path
+      # A function for generating a file with a value of such a type
+      generate = ...;
+
+    });
+  */
+
+
+  json = {}: {
+
+    type = with lib.types; let
+      valueType = nullOr (oneOf [
+        bool
+        int
+        float
+        str
+        (attrsOf valueType)
+        (listOf valueType)
+      ]) // {
+        description = "JSON value";
+      };
+    in valueType;
+
+    generate = name: value: pkgs.runCommandNoCC name {
+      nativeBuildInputs = [ pkgs.jq ];
+      value = builtins.toJSON value;
+      passAsFile = [ "value" ];
+    } ''
+      jq . "$valuePath"> $out
+    '';
+
+  };
+
+  # YAML has been a strict superset of JSON since 1.2
+  yaml = {}:
+    let jsonSet = json {};
+    in jsonSet // {
+      type = jsonSet.type // {
+        description = "YAML value";
+      };
+    };
+
+  ini = { listsAsDuplicateKeys ? false, ... }@args: {
+
+    type = with lib.types; let
+
+      singleIniAtom = nullOr (oneOf [
+        bool
+        int
+        float
+        str
+      ]) // {
+        description = "INI atom (null, bool, int, float or string)";
+      };
+
+      iniAtom =
+        if listsAsDuplicateKeys then
+          coercedTo singleIniAtom lib.singleton (listOf singleIniAtom) // {
+            description = singleIniAtom.description + " or a list of them for duplicate keys";
+          }
+        else
+          singleIniAtom;
+
+    in attrsOf (attrsOf iniAtom);
+
+    generate = name: value: pkgs.writeText name (lib.generators.toINI args value);
+
+  };
+
+  toml = {}: json {} // {
+    type = with lib.types; let
+      valueType = oneOf [
+        bool
+        int
+        float
+        str
+        (attrsOf valueType)
+        (listOf valueType)
+      ] // {
+        description = "TOML value";
+      };
+    in valueType;
+
+    generate = name: value: pkgs.runCommandNoCC name {
+      nativeBuildInputs = [ pkgs.remarshal ];
+      value = builtins.toJSON value;
+      passAsFile = [ "value" ];
+    } ''
+      json2toml "$valuePath" "$out"
+    '';
+
+  };
+}
diff --git a/nixpkgs/pkgs/pkgs-lib/tests/default.nix b/nixpkgs/pkgs/pkgs-lib/tests/default.nix
new file mode 100644
index 000000000000..f3549ea9b0f2
--- /dev/null
+++ b/nixpkgs/pkgs/pkgs-lib/tests/default.nix
@@ -0,0 +1,7 @@
+# Call nix-build on this file to run all tests in this directory
+{ pkgs ? import ../../.. {} }:
+let
+  formats = import ./formats.nix { inherit pkgs; };
+in pkgs.linkFarm "nixpkgs-pkgs-lib-tests" [
+  { name = "formats"; path = import ./formats.nix { inherit pkgs; }; }
+]
diff --git a/nixpkgs/pkgs/pkgs-lib/tests/formats.nix b/nixpkgs/pkgs/pkgs-lib/tests/formats.nix
new file mode 100644
index 000000000000..bf6be8595e1b
--- /dev/null
+++ b/nixpkgs/pkgs/pkgs-lib/tests/formats.nix
@@ -0,0 +1,157 @@
+{ pkgs }:
+let
+  inherit (pkgs) lib formats;
+in
+with lib;
+let
+
+  evalFormat = format: args: def:
+    let
+      formatSet = format args;
+      config = formatSet.type.merge [] (imap1 (n: def: {
+        value = def;
+        file = "def${toString n}";
+      }) [ def ]);
+    in formatSet.generate "test-format-file" config;
+
+  runBuildTest = name: { drv, expected }: pkgs.runCommandNoCC name {} ''
+    if diff ${drv} ${builtins.toFile "expected" expected}; then
+      touch $out
+    else
+      echo "Got: $(cat ${drv})"
+      echo "Should be: ${expected}"
+      exit 1
+    fi
+  '';
+
+  runBuildTests = tests: pkgs.linkFarm "nixpkgs-pkgs-lib-format-tests" (mapAttrsToList (name: value: { inherit name; path = runBuildTest name value; }) (filterAttrs (name: value: value != null) tests));
+
+in runBuildTests {
+
+  testJsonAtoms = {
+    drv = evalFormat formats.json {} {
+      null = null;
+      false = false;
+      true = true;
+      int = 10;
+      float = 3.141;
+      str = "foo";
+      attrs.foo = null;
+      list = [ null null ];
+    };
+    expected = ''
+      {
+        "attrs": {
+          "foo": null
+        },
+        "false": false,
+        "float": 3.141,
+        "int": 10,
+        "list": [
+          null,
+          null
+        ],
+        "null": null,
+        "str": "foo",
+        "true": true
+      }
+    '';
+  };
+
+  testYamlAtoms = {
+    drv = evalFormat formats.yaml {} {
+      null = null;
+      false = false;
+      true = true;
+      float = 3.141;
+      str = "foo";
+      attrs.foo = null;
+      list = [ null null ];
+    };
+    expected = ''
+      {
+        "attrs": {
+          "foo": null
+        },
+        "false": false,
+        "float": 3.141,
+        "list": [
+          null,
+          null
+        ],
+        "null": null,
+        "str": "foo",
+        "true": true
+      }
+    '';
+  };
+
+  testIniAtoms = {
+    drv = evalFormat formats.ini {} {
+      foo = {
+        bool = true;
+        int = 10;
+        float = 3.141;
+        str = "string";
+      };
+    };
+    expected = ''
+      [foo]
+      bool=true
+      float=3.141000
+      int=10
+      str=string
+    '';
+  };
+
+  testIniDuplicateKeys = {
+    drv = evalFormat formats.ini { listsAsDuplicateKeys = true; } {
+      foo = {
+        bar = [ null true "test" 1.2 10 ];
+        baz = false;
+        qux = "qux";
+      };
+    };
+    expected = ''
+      [foo]
+      bar=null
+      bar=true
+      bar=test
+      bar=1.200000
+      bar=10
+      baz=false
+      qux=qux
+    '';
+  };
+
+  testTomlAtoms = {
+    drv = evalFormat formats.toml {} {
+      false = false;
+      true = true;
+      int = 10;
+      float = 3.141;
+      str = "foo";
+      attrs.foo = "foo";
+      list = [ 1 2 ];
+      level1.level2.level3.level4 = "deep";
+    };
+    expected = ''
+      false = false
+      float = 3.141
+      int = 10
+      list = [1, 2]
+      str = "foo"
+      true = true
+
+      [attrs]
+      foo = "foo"
+
+      [level1]
+
+      [level1.level2]
+
+      [level1.level2.level3]
+      level4 = "deep"
+    '';
+  };
+}
diff --git a/nixpkgs/pkgs/servers/adguardhome/default.nix b/nixpkgs/pkgs/servers/adguardhome/default.nix
index 54000a81b67d..3260ce4f053a 100644
--- a/nixpkgs/pkgs/servers/adguardhome/default.nix
+++ b/nixpkgs/pkgs/servers/adguardhome/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     description = "Network-wide ads & trackers blocking DNS server";
     platforms = platforms.linux;
     maintainers = with maintainers; [ numkem ];
+    license = licenses.gpl3;
   };
 }
diff --git a/nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix b/nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix
index f81fef3cbe86..2d0d4abd9141 100644
--- a/nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix
+++ b/nixpkgs/pkgs/servers/amqp/rabbitmq-server/default.nix
@@ -8,12 +8,12 @@
 stdenv.mkDerivation rec {
   pname = "rabbitmq-server";
 
-  version = "3.8.4";
+  version = "3.8.8";
 
   # when updating, consider bumping elixir version in all-packages.nix
   src = fetchurl {
     url = "https://github.com/rabbitmq/rabbitmq-server/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "1sa9zfd8hv5mxgnxva9sydqnyzwssxjkbba028pwpml2im97z7j5";
+    sha256 = "14rzlikaqxi7cvpy4np1s1pnkila547zdxsb7nl4ilman1zwdgk7";
   };
 
   buildInputs =
@@ -62,7 +62,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://www.rabbitmq.com/";
     description = "An implementation of the AMQP messaging protocol";
-    license = stdenv.lib.licenses.mpl11;
+    license = stdenv.lib.licenses.mpl20;
     platforms = stdenv.lib.platforms.unix;
     maintainers = with stdenv.lib.maintainers; [ Profpatsch ];
   };
diff --git a/nixpkgs/pkgs/servers/apache-kafka/default.nix b/nixpkgs/pkgs/servers/apache-kafka/default.nix
index a8baefa98ea0..6daf3251102b 100644
--- a/nixpkgs/pkgs/servers/apache-kafka/default.nix
+++ b/nixpkgs/pkgs/servers/apache-kafka/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, jre, makeWrapper, bash, coreutils, gnugrep, gnused, ps,
+{ stdenv, fetchurl, jre8, makeWrapper, bash, coreutils, gnugrep, gnused, ps,
   majorVersion ? "1.0" }:
 
 let
@@ -49,11 +49,18 @@ let
       sha256 = "0bldfrvd351agm237icnvn36va67crpnzmbh6dlq84ip910xsgas";
     };
     "2.4" = {
-      kafkaVersion = "2.4.0";
+      kafkaVersion = "2.4.1";
       scalaVersion = "2.12";
-      sha256 = "1vng5ipkjzqy0wijc706w2m1rjl5d0nsgbxiacci739y1jmjnn5r";
+      sha256 = "0ahsprmpjz026mhbr79187wfdrxcg352iipyfqfrx68q878wnxr1";
+    };
+    "2.5" = {
+      kafkaVersion = "2.5.0";
+      scalaVersion = "2.13";
+      sha256 = "0w3g7ii8x63m2blv2a8c491d0diczpliaqm9f7w5yn98hikh0aqi";
     };
   };
+
+  jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
 in
 
 with versionMap.${majorVersion};
diff --git a/nixpkgs/pkgs/servers/atlassian/confluence.nix b/nixpkgs/pkgs/servers/atlassian/confluence.nix
index 64ecd981fc47..ab5c2da5edd1 100644
--- a/nixpkgs/pkgs/servers/atlassian/confluence.nix
+++ b/nixpkgs/pkgs/servers/atlassian/confluence.nix
@@ -8,11 +8,11 @@ assert withMysql -> (mysql_jdbc != null);
 
 stdenvNoCC.mkDerivation rec {
   pname = "atlassian-confluence";
-  version = "7.5.1";
+  version = "7.7.2";
 
   src = fetchurl {
     url = "https://product-downloads.atlassian.com/software/confluence/downloads/${pname}-${version}.tar.gz";
-    sha256 = "0lxvff0sn1kxsm599lq72hw11qnwjn2da3mz1h8mqz0rn2adhg07";
+    sha256 = "12ay2y7ixaxzj12pw66k65743ic3iccicn49cnjmas51c5ww09h1";
   };
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/servers/atlassian/jira.nix b/nixpkgs/pkgs/servers/atlassian/jira.nix
index fd35ef8735ab..ab3746e6e0a6 100644
--- a/nixpkgs/pkgs/servers/atlassian/jira.nix
+++ b/nixpkgs/pkgs/servers/atlassian/jira.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "atlassian-jira";
-  version = "8.9.0";
+  version = "8.12.0";
 
   src = fetchurl {
     url = "https://product-downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-${version}.tar.gz";
-    sha256 = "1rpibkp57nw084yd018924g1mdcqk8gnj99m85fmmhpppgbh9ca9";
+    sha256 = "149yqj60b35mbvjz7jyh5a3ayh61kvwrz452s0zyb1q3pirj10xq";
   };
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/servers/bazarr/default.nix b/nixpkgs/pkgs/servers/bazarr/default.nix
index 075b5e584477..92ca263f46fe 100644
--- a/nixpkgs/pkgs/servers/bazarr/default.nix
+++ b/nixpkgs/pkgs/servers/bazarr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bazarr";
-  version = "0.8.4.4";
+  version = "0.9.0.2";
 
   src = fetchurl {
     url = "https://github.com/morpheus65535/bazarr/archive/v${version}.tar.gz";
-    sha256 = "09qpy5fyyidi45968qg37cighfh3rgwsi8pfz4fk5fp2v1xq23yg";
+    sha256 = "1lvldklj61hg9h1m0ixaa4zcf4ggdj6wf4myhwwampq4bmr2havj";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     cp -r * $out/src
 
     mkdir -p $out/bin
-    makeWrapper "${(python3.withPackages (ps: [ps.lxml])).interpreter}" \
+    makeWrapper "${(python3.withPackages (ps: [ps.lxml ps.numpy])).interpreter}" \
       $out/bin/bazarr \
       --add-flags "$out/src/bazarr.py" \
   '';
diff --git a/nixpkgs/pkgs/servers/blockbook/default.nix b/nixpkgs/pkgs/servers/blockbook/default.nix
index 4afabb858c38..5a4111269913 100644
--- a/nixpkgs/pkgs/servers/blockbook/default.nix
+++ b/nixpkgs/pkgs/servers/blockbook/default.nix
@@ -1,15 +1,14 @@
 { stdenv
 , buildGoModule
-, lib
 , fetchFromGitHub
-, rocksdb
-, bzip2
-, zlib
 , packr
-, snappy
 , pkg-config
-, zeromq
+, bzip2
 , lz4
+, rocksdb
+, snappy
+, zeromq
+, zlib
 }:
 
 buildGoModule rec {
@@ -24,11 +23,14 @@ buildGoModule rec {
     sha256 = "0da1kav5x2xcmwvdgfk1q70l1k0sqqj3njgx2xx885d40m6qbnrs";
   };
 
-  vendorSha256 = "1qjlvhizl8cy06cgf4phia70bgbm4lj57z5z2gyr8aglx98bnpdn";
+  runVend = true;
+  vendorSha256 = "0p7vyw61nwvmaz7gz2bdh9fi6wp62i2vnzw6iz2r8cims4sbz53b";
 
-  buildInputs = [ bzip2 zlib snappy zeromq lz4 ];
+  doCheck = false;
 
-  nativeBuildInputs = [ pkg-config packr ];
+  nativeBuildInputs = [ packr pkg-config ];
+
+  buildInputs = [ bzip2 lz4 rocksdb snappy zeromq zlib ];
 
   buildFlagsArray = ''
     -ldflags=
@@ -37,35 +39,26 @@ buildGoModule rec {
        -X github.com/trezor/blockbook/common.buildDate=unknown
   '';
 
-  goethereum = fetchFromGitHub {
-    owner = "ethereum";
-    repo = "go-ethereum";
-    rev = "v1.8.20";
-    sha256 = "0m2q1nz6f39pyr2rk6vflkwi4ykganzwr7wndpwr9rliw0x8jgi0";
-  };
-
-  overrideModAttrs = (_: {
-      postBuild = ''
-      rm -r vendor/github.com/ethereum/go-ethereum
-      cp -r --reflink=auto ${goethereum} vendor/github.com/ethereum/go-ethereum
-      '';
-    });
-
-  preBuild = lib.optionalString stdenv.isDarwin ''
+  preBuild = stdenv.lib.optionalString stdenv.isDarwin ''
     ulimit -n 8192
   '' + ''
-    export CGO_CFLAGS="-I${rocksdb}/include"
-    export CGO_LDFLAGS="-L${rocksdb}/lib -lrocksdb -lstdc++ -lm -lz -lbz2 -lsnappy -llz4"
+    export CGO_LDFLAGS="-L${stdenv.cc.cc.lib}/lib -lrocksdb -lz -lbz2 -lsnappy -llz4 -lm -lstdc++"
     packr clean && packr
   '';
 
   subPackages = [ "." ];
 
-  meta = with lib; {
+  postInstall = ''
+    mkdir -p $out/share/
+    cp -r $src/static/templates/ $out/share/
+    cp -r $src/static/css/ $out/share/
+  '';
+
+  meta = with stdenv.lib; {
     description = "Trezor address/account balance backend";
     homepage = "https://github.com/trezor/blockbook";
     license = licenses.agpl3;
-    maintainers = with maintainers; [ mmahut maintainers."1000101" ];
-    platforms = remove "aarch64-linux" platforms.unix;
+    maintainers = with maintainers; [ mmahut _1000101 ];
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/servers/caddy/default.nix b/nixpkgs/pkgs/servers/caddy/default.nix
index 415f85371850..a4e787db739f 100644
--- a/nixpkgs/pkgs/servers/caddy/default.nix
+++ b/nixpkgs/pkgs/servers/caddy/default.nix
@@ -1,36 +1,26 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
 
 buildGoModule rec {
   pname = "caddy";
-  version = "1.0.5";
+  version = "2.2.0";
 
-  goPackagePath = "github.com/caddyserver/caddy";
-
-  subPackages = [ "caddy" ];
+  subPackages = [ "cmd/caddy" ];
 
   src = fetchFromGitHub {
     owner = "caddyserver";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0jrhwmr6gggppskg5h450wybzkv17iq69dgw36hd1dp56q002i7g";
+    sha256 = "086zgbwb3v11gik2w024p7m7ywkzn0w27y6hrngd4rxylj7jq7c8";
   };
-  vendorSha256 = "09vnci9pp8zp7bvn8zj68wslz2nc54nhcd0ll31sqfjbp00215mj";
 
-  preBuild = ''
-    cat << EOF > caddy/main.go
-    package main
-    import "github.com/caddyserver/caddy/caddy/caddymain"
-    func main() {
-      caddymain.EnableTelemetry = false
-      caddymain.Run()
-    }
-    EOF
-  '';
+  vendorSha256 = "1rm7v03v6rf9fdqrrl639z8a46cdzswjp8rdpygcsndqfznn5w7b";
+
+  passthru.tests = { inherit (nixosTests) caddy; };
 
   meta = with stdenv.lib; {
     homepage = "https://caddyserver.com";
     description = "Fast, cross-platform HTTP/2 web server with automatic HTTPS";
     license = licenses.asl20;
-    maintainers = with maintainers; [ rushmorem fpletz zimbatm filalex77 ];
+    maintainers = with maintainers; [ filalex77 ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/caddy/v1.nix b/nixpkgs/pkgs/servers/caddy/v1.nix
new file mode 100644
index 000000000000..dce4eea84b8a
--- /dev/null
+++ b/nixpkgs/pkgs/servers/caddy/v1.nix
@@ -0,0 +1,38 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "caddy";
+  version = "1.0.5";
+
+  goPackagePath = "github.com/caddyserver/caddy";
+
+  subPackages = [ "caddy" ];
+
+  src = fetchFromGitHub {
+    owner = "caddyserver";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0jrhwmr6gggppskg5h450wybzkv17iq69dgw36hd1dp56q002i7g";
+  };
+
+  vendorSha256 = "09vnci9pp8zp7bvn8zj68wslz2nc54nhcd0ll31sqfjbp00215mj";
+
+  preBuild = ''
+    cat << EOF > caddy/main.go
+    package main
+    import "github.com/caddyserver/caddy/caddy/caddymain"
+    var run = caddymain.Run // replaced for tests
+    func main() {
+      caddymain.EnableTelemetry = false
+      run()
+    }
+    EOF
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://caddyserver.com";
+    description = "Fast, cross-platform HTTP/2 web server with automatic HTTPS";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ rushmorem fpletz zimbatm filalex77 ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/caddy/v2.nix b/nixpkgs/pkgs/servers/caddy/v2.nix
deleted file mode 100644
index c4f12e58b0fa..000000000000
--- a/nixpkgs/pkgs/servers/caddy/v2.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
-
-buildGoModule rec {
-  pname = "caddy";
-  version = "2.0.0";
-
-  subPackages = [ "cmd/caddy" ];
-
-  src = fetchFromGitHub {
-    owner = "caddyserver";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1c1frfx0qkprhf4var70cncvrw8s9gjag2hygndbd9055hb52bvv";
-  };
-  vendorSha256 = "004hpjxpp18f71vy5v5ky0g07a8d5xh5qwl5b4bbx34hpf8yxs81";
-
-  meta = with stdenv.lib; {
-    homepage = "https://caddyserver.com";
-    description = "Fast, cross-platform HTTP/2 web server with automatic HTTPS";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ filalex77 ];
-  };
-}
diff --git a/nixpkgs/pkgs/servers/cayley/default.nix b/nixpkgs/pkgs/servers/cayley/default.nix
index c62a28e41bdf..0d89d2f11653 100644
--- a/nixpkgs/pkgs/servers/cayley/default.nix
+++ b/nixpkgs/pkgs/servers/cayley/default.nix
@@ -19,7 +19,7 @@ buildGoPackage rec {
     -ldflags=
       -X=main.Version=${version}
   '';
-  
+
   meta = {
     homepage = "https://cayley.io/";
     description = "A graph database inspired by Freebase and Knowledge Graph";
diff --git a/nixpkgs/pkgs/servers/clickhouse/default.nix b/nixpkgs/pkgs/servers/clickhouse/default.nix
index 9521d470a0f1..4fd5b6c4751e 100644
--- a/nixpkgs/pkgs/servers/clickhouse/default.nix
+++ b/nixpkgs/pkgs/servers/clickhouse/default.nix
@@ -1,39 +1,53 @@
 { stdenv, fetchFromGitHub, cmake, libtool, lldClang, ninja
-, boost, brotli, capnproto, cctz, clang-unwrapped, double-conversion, gperftools
-, icu, jemalloc, libcpuid, libxml2, lld, llvm, lz4, libmysqlclient, openssl
-, poco, protobuf, rapidjson, re2, rdkafka, readline, sparsehash, unixODBC
+, boost, brotli, capnproto, cctz, clang-unwrapped, double-conversion
+, icu, jemalloc, libcpuid, libxml2, lld, llvm, lz4, libmysqlclient, openssl, perl
+, poco, protobuf, python3, rapidjson, re2, rdkafka, readline, sparsehash, unixODBC
 , xxHash, zstd
 }:
 
 stdenv.mkDerivation rec {
   pname = "clickhouse";
-  version = "19.17.9.60";
+  version = "20.5.2.7";
 
   src = fetchFromGitHub {
-    owner  = "yandex";
+    owner  = "ClickHouse";
     repo   = "ClickHouse";
     rev    = "v${version}-stable";
-    sha256 = "0k1ncn7i4szpw4jlhv3zmw6mrkkm8qfs39nj1zbawjqrkgnw70kg";
+    fetchSubmodules = true;
+    sha256 = "15b499czsv727wwdb1i1ja5wfsk6ii3pqpk6dlqic9cdmkh8c8ic";
   };
 
   nativeBuildInputs = [ cmake libtool lldClang.bintools ninja ];
   buildInputs = [
-    boost brotli capnproto cctz clang-unwrapped double-conversion gperftools
-    icu jemalloc libcpuid libxml2 lld llvm lz4 libmysqlclient openssl
-    poco protobuf rapidjson re2 rdkafka readline sparsehash unixODBC
+    boost brotli capnproto cctz clang-unwrapped double-conversion
+    icu jemalloc libcpuid libxml2 lld llvm lz4 libmysqlclient openssl perl
+    poco protobuf python3 rapidjson re2 rdkafka readline sparsehash unixODBC
     xxHash zstd
   ];
 
+  postPatch = ''
+    patchShebangs src/
+
+    substituteInPlace contrib/openssl-cmake/CMakeLists.txt \
+      --replace '/usr/bin/env perl' perl
+    substituteInPlace src/Storages/System/StorageSystemLicenses.sh \
+      --replace 'git rev-parse --show-toplevel' '$src'
+    substituteInPlace utils/check-style/check-duplicate-includes.sh \
+      --replace 'git rev-parse --show-toplevel' '$src'
+    substituteInPlace utils/check-style/check-ungrouped-includes.sh \
+      --replace 'git rev-parse --show-toplevel' '$src'
+    substituteInPlace utils/generate-ya-make/generate-ya-make.sh \
+      --replace 'git rev-parse --show-toplevel' '$src'
+    substituteInPlace utils/list-licenses/list-licenses.sh \
+      --replace 'git rev-parse --show-toplevel' '$src'
+    substituteInPlace utils/check-style/check-style \
+      --replace 'git rev-parse --show-toplevel' '$src'
+  '';
+
   cmakeFlags = [
     "-DENABLE_TESTS=OFF"
-    "-DUNBUNDLED=ON"
-    "-DUSE_STATIC_LIBRARIES=OFF"
   ];
 
-  postPatch = ''
-    patchShebangs dbms/programs/clang/copy_headers.sh
-  '';
-
   postInstall = ''
     rm -rf $out/share/clickhouse-test
 
@@ -46,7 +60,7 @@ stdenv.mkDerivation rec {
   hardeningDisable = [ "format" ];
 
   meta = with stdenv.lib; {
-    homepage = "https://clickhouse.yandex/";
+    homepage = "https://clickhouse.tech/";
     description = "Column-oriented database management system";
     license = licenses.asl20;
     maintainers = with maintainers; [ orivej ];
diff --git a/nixpkgs/pkgs/servers/code-server/default.nix b/nixpkgs/pkgs/servers/code-server/default.nix
new file mode 100644
index 000000000000..91da7e179b4a
--- /dev/null
+++ b/nixpkgs/pkgs/servers/code-server/default.nix
@@ -0,0 +1,187 @@
+{ stdenv, fetchFromGitHub, makeWrapper, runCommand
+, moreutils, jq, git, zip, rsync, pkgconfig, yarn, python2
+, nodejs-12_x, libsecret, xorg, ripgrep, nettools }:
+
+let
+  system = stdenv.hostPlatform.system;
+
+  nodejs = nodejs-12_x;
+  python = python2;
+  yarn' = yarn.override { inherit nodejs; };
+  defaultYarnOpts = [ "frozen-lockfile" "non-interactive" "no-progress"];
+
+in stdenv.mkDerivation rec {
+  pname = "code-server";
+  version = "3.4.1";
+  commit = "d3773c11f147bdd7a4f5acfefdee23c26f069e76";
+
+  src = fetchFromGitHub {
+    owner = "cdr";
+    repo = "code-server";
+    rev = version;
+    sha256 = "PfDD0waloppGZ09zCQ9ggBeVL/Dhfv6QmEs/fs7QLtA=";
+    fetchSubmodules = true;
+  };
+
+  yarnCache = stdenv.mkDerivation {
+    name = "${pname}-${version}-${system}-yarn-cache";
+    inherit src;
+    phases = ["unpackPhase" "buildPhase"];
+    nativeBuildInputs = [ yarn' git ];
+    buildPhase = ''
+      export HOME=$PWD
+
+      patchShebangs ./ci
+
+      # apply code-server patches as code-server has patched vscode yarn.lock
+      yarn vscode:patch
+
+      yarn config set yarn-offline-mirror $out
+      find "$PWD" -name "yarn.lock" -printf "%h\n" | \
+        xargs -I {} yarn --cwd {} \
+          --frozen-lockfile --ignore-scripts --ignore-platform \
+          --ignore-engines --no-progress --non-interactive
+    '';
+    outputHashMode = "recursive";
+    outputHashAlgo = "sha256";
+
+    # to get hash values use nix-build -A code-server.yarnPrefetchCache
+    outputHash = {
+      x86_64-linux = "Zze2hEm2Np+SyQ0KXy5CZr5wilZbHBYXNYcRJBUUkQo=";
+      aarch64-linux = "LiIvGuBismWSL2yV2DuKUWDjIzuIQU/VVxtiD4xJ+6Q=";
+    }.${system} or (throw "Unsupported system ${system}");
+  };
+
+  # Extract the Node.js source code which is used to compile packages with
+  # native bindings
+  nodeSources = runCommand "node-sources" {} ''
+    tar --no-same-owner --no-same-permissions -xf ${nodejs.src}
+    mv node-* $out
+  '';
+
+  nativeBuildInputs = [
+    nodejs yarn' python pkgconfig zip makeWrapper git rsync jq moreutils
+  ];
+  buildInputs = [ libsecret xorg.libX11 xorg.libxkbfile ];
+
+  patchPhase = ''
+    export HOME=$PWD
+
+    patchShebangs ./ci
+
+    # apply code-server vscode patches
+    yarn vscode:patch
+
+    # allow offline install for vscode
+    substituteInPlace lib/vscode/build/npm/postinstall.js \
+      --replace '--ignore-optional' '--offline'
+
+    # fix path to ifconfig, so vscode can get mac address
+    substituteInPlace lib/vscode/src/vs/base/node/macAddress.ts \
+      --replace '/sbin/ifconfig' '${nettools}/bin/ifconfig'
+
+    # disable automatic updates
+    sed -i '/update.mode/,/\}/{s/default:.*/default: "none",/g}' \
+      lib/vscode/src/vs/platform/update/common/update.config.contribution.ts
+
+    # inject git commit
+    substituteInPlace ci/build/build-release.sh \
+      --replace '$(git rev-parse HEAD)' "$commit"
+
+    # remove all built-in extensions, as these are 3rd party extensions that
+    # gets downloaded from vscode marketplace
+    jq --slurp '.[0] * .[1]' "lib/vscode/product.json" <(
+      cat << EOF
+    {
+      "builtInExtensions": []
+    }
+    EOF
+    ) | sponge lib/vscode/product.json
+  '';
+
+  configurePhase = ''
+    # set default yarn opts
+    ${stdenv.lib.concatMapStrings (option: ''
+      yarn --offline config set ${option}
+    '') defaultYarnOpts}
+
+    # set offline mirror to yarn cache we created in previous steps
+    yarn --offline config set yarn-offline-mirror "${yarnCache}"
+
+    # set nodedir, so we can build binaries later
+    npm config set nodedir "${nodeSources}"
+
+    # skip browser downloads for playwright
+    export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD="true"
+  '';
+
+  buildPhase = ''
+    # install code-server dependencies
+    yarn --offline
+
+    # install vscode dependencies without running script for all vscode packages
+    # that require patching for postinstall scripts to succeed
+    for d in lib/vscode lib/vscode/build; do
+      yarn --offline --cwd $d --offline --ignore-scripts
+    done
+
+    # put ripgrep binary into bin, so postinstall does not try to download it
+    find -name vscode-ripgrep -type d \
+      -execdir mkdir -p {}/bin \; \
+      -execdir ln -s ${ripgrep}/bin/rg {}/bin/rg \;
+
+    # patch shebangs of everything, also cached files, as otherwise postinstall
+    # will not be able to find /usr/bin/env, as it does not exists in sandbox
+    patchShebangs .
+
+    # rebuild binaries, we use npm here, as yarn does not provider alternative
+    # that would not atempt to try to reinstall everything and break out
+    # patching attempts
+    npm rebuild --prefix lib/vscode --update-binary
+
+    # run postinstall scripts, which eventually do yarn install on all
+    # additional requirements
+    yarn --cwd lib/vscode postinstall --frozen-lockfile --offline
+
+    # build code-server
+    yarn build
+
+    # build vscode
+    yarn build:vscode
+
+    # create release
+    yarn release
+  '';
+
+  installPhase = ''
+    mkdir -p $out/libexec/code-server $out/bin
+
+    # copy release to libexec path
+    cp -R -T release "$out/libexec/code-server"
+
+    # install only production dependencies
+    yarn --offline --cwd "$out/libexec/code-server" --production
+
+    # create wrapper
+    makeWrapper "${nodejs-12_x}/bin/node" "$out/bin/code-server" \
+      --add-flags "$out/libexec/code-server/out/node/entry.js"
+  '';
+
+  passthru = {
+    prefetchYarnCache = stdenv.lib.overrideDerivation yarnCache (d: {
+      outputHash = stdenv.lib.fakeSha256;
+    });
+  };
+
+  meta = with stdenv.lib; {
+    description = "Run VS Code on a remote server.";
+    longDescription = ''
+      code-server is VS Code running on a remote server, accessible through the
+      browser.
+    '';
+    homepage = "https://github.com/cdr/code-server";
+    license = licenses.mit;
+    maintainers = with maintainers; [ offline ];
+    platforms = ["x86_64-linux"];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/computing/slurm/common-env-echo.patch b/nixpkgs/pkgs/servers/computing/slurm/common-env-echo.patch
new file mode 100644
index 000000000000..4236421a63d2
--- /dev/null
+++ b/nixpkgs/pkgs/servers/computing/slurm/common-env-echo.patch
@@ -0,0 +1,13 @@
+diff --git a/src/common/env.c b/src/common/env.c
+index 987846d..73d3b3b 100644
+--- a/src/common/env.c
++++ b/src/common/env.c
+@@ -1941,7 +1941,7 @@ char **env_array_user_default(const char *username, int timeout, int mode,
+ 	char **env = NULL;
+ 	char *starttoken = "XXXXSLURMSTARTPARSINGHEREXXXX";
+ 	char *stoptoken  = "XXXXSLURMSTOPPARSINGHEREXXXXX";
+-	char cmdstr[256], *env_loc = NULL;
++	char cmdstr[MAXPATHLEN], *env_loc = NULL;
+ 	char *stepd_path = NULL;
+ 	int fd1, fd2, fildes[2], found, fval, len, rc, timeleft;
+ 	int buf_read, buf_rem, config_timeout;
diff --git a/nixpkgs/pkgs/servers/computing/slurm/default.nix b/nixpkgs/pkgs/servers/computing/slurm/default.nix
index 1f09c98377f1..cc77dbd4891d 100644
--- a/nixpkgs/pkgs/servers/computing/slurm/default.nix
+++ b/nixpkgs/pkgs/servers/computing/slurm/default.nix
@@ -1,14 +1,15 @@
 { stdenv, fetchFromGitHub, pkgconfig, libtool, curl
-, python, munge, perl, pam, openssl, zlib, shadow, coreutils
+, python3, munge, perl, pam, zlib, shadow, coreutils
 , ncurses, libmysqlclient, gtk2, lua, hwloc, numactl
-, readline, freeipmi, libssh2, xorg, lz4, rdma-core, nixosTests
+, readline, freeipmi, xorg, lz4, rdma-core, nixosTests
+, pmix
 # enable internal X11 support via libssh2
 , enableX11 ? true
 }:
 
 stdenv.mkDerivation rec {
   pname = "slurm";
-  version = "19.05.7.1";
+  version = "20.02.5.1";
 
   # N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
   # because the latter does not keep older releases.
@@ -17,11 +18,19 @@ stdenv.mkDerivation rec {
     repo = "slurm";
     # The release tags use - instead of .
     rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}";
-    sha256 = "115f40k8y7d569nbl6g0mkyshgv925lawlwar7ib5296g30p97f0";
+    sha256 = "09d4zyyjl5mcrzhzbh6nhc35mzim1sy0h0p2h468nwk1fbl81ff5";
   };
 
   outputs = [ "out" "dev" ];
 
+  patches = [
+    # increase string length to allow for full
+    # path of 'echo' in nix store
+    ./common-env-echo.patch
+    # Required for configure to pick up the right dlopen path
+    ./pmix-configure.patch
+  ];
+
   prePatch = ''
     substituteInPlace src/common/env.c \
         --replace "/bin/echo" "${coreutils}/bin/echo"
@@ -35,24 +44,24 @@ stdenv.mkDerivation rec {
   # this doesn't fix tests completely at least makes slurmd to launch
   hardeningDisable = [ "bindnow" ];
 
-  nativeBuildInputs = [ pkgconfig libtool ];
+  nativeBuildInputs = [ pkgconfig libtool python3 ];
   buildInputs = [
-    curl python munge perl pam openssl zlib
+    curl python3 munge perl pam zlib
       libmysqlclient ncurses gtk2 lz4 rdma-core
       lua hwloc numactl readline freeipmi shadow.su
-  ] ++ stdenv.lib.optionals enableX11 [ libssh2 xorg.xauth ];
+      pmix
+  ] ++ stdenv.lib.optionals enableX11 [ xorg.xauth ];
 
   configureFlags = with stdenv.lib;
     [ "--with-freeipmi=${freeipmi}"
       "--with-hwloc=${hwloc.dev}"
       "--with-lz4=${lz4.dev}"
       "--with-munge=${munge}"
-      "--with-ssl=${openssl.dev}"
       "--with-zlib=${zlib}"
       "--with-ofed=${rdma-core}"
       "--sysconfdir=/etc/slurm"
+      "--with-pmix=${pmix}"
     ] ++ (optional (gtk2 == null)  "--disable-gtktest")
-      ++ (optional enableX11 "--with-libssh2=${libssh2.dev}")
       ++ (optional (!enableX11) "--disable-x11");
 
 
diff --git a/nixpkgs/pkgs/servers/computing/slurm/pmix-configure.patch b/nixpkgs/pkgs/servers/computing/slurm/pmix-configure.patch
new file mode 100644
index 000000000000..21c2197c3ff1
--- /dev/null
+++ b/nixpkgs/pkgs/servers/computing/slurm/pmix-configure.patch
@@ -0,0 +1,13 @@
+diff --git a/configure b/configure
+index 1cf53bc..ab68441 100755
+--- a/configure
++++ b/configure
+@@ -21207,7 +21207,7 @@ rm -f conftest.err conftest.i conftest.$ac_ext
+                 as_fn_error $? "error processing $x_ac_cv_pmix_libdir: PMIx v3.x was already found in one of the previous paths" "$LINENO" 5
+               fi
+               _x_ac_pmix_v3_found="1"
+-              PMIX_V3_CPPFLAGS="-I$x_ac_cv_pmix_dir/include"
++              PMIX_V3_CPPFLAGS="-I$x_ac_cv_pmix_dir/include -DPMIXP_V3_LIBPATH=\\\"$x_ac_cv_pmix_libdir\\\""
+               if test "$ac_with_rpath" = "yes"; then
+                 PMIX_V3_LDFLAGS="-Wl,-rpath -Wl,$x_ac_cv_pmix_libdir -L$x_ac_cv_pmix_libdir"
+               else
diff --git a/nixpkgs/pkgs/servers/computing/storm/default.nix b/nixpkgs/pkgs/servers/computing/storm/default.nix
index d55dd14601e8..b8ae0bc4e852 100644
--- a/nixpkgs/pkgs/servers/computing/storm/default.nix
+++ b/nixpkgs/pkgs/servers/computing/storm/default.nix
@@ -1,24 +1,27 @@
 { stdenv, lib, fetchurl, zip, unzip
-, jzmq, jdk, python
-, confFile ? "", extraLibraryPaths ? [], extraJars ? [] }:
+, jdk, python
+, confFile ? ""
+, extraLibraryPaths ? []
+, extraJars ? []
+}:
 
 stdenv.mkDerivation rec {
-  name = "apache-storm-" + version;
-  version = "1.2.1";
+  pname = "apache-storm";
+  version = "2.1.0";
+  name = "${pname}-${version}";
+
   src = fetchurl {
-    url =
-    "mirror://apache/storm/${name}/${name}.tar.gz";
-    sha256 = "177dqgbviagrpvalg8h67mwiwwgmiqsg0hh97hcqqcjg71ypnjkv";
+    url = "mirror://apache/storm/${name}/${name}.tar.gz";
+    sha256 = "1i3z08rfy7aavshrbrskv9dmlhx1fjgrhhqm0pczfam4vnas8yg2";
   };
 
-  buildInputs = [ zip unzip jzmq ];
+  buildInputs = [ zip unzip ];
 
   installPhase = ''
     mkdir -p $out/share/${name}
     mv public $out/docs
     mv examples $out/share/${name}/.
 
-    rm -f lib/jzmq* || exit 1
     mv external extlib* lib $out/.
     mv conf bin $out/.
     mv log4j2 $out/conf/.
@@ -35,21 +38,22 @@ stdenv.mkDerivation rec {
       -e "s|STORM_CONF_DIR = .*|STORM_CONF_DIR = os.getenv('STORM_CONF_DIR','$out/conf')|" \
       -e 's|STORM_LOG4J2_CONF_DIR =.*|STORM_LOG4J2_CONF_DIR = os.path.join(STORM_CONF_DIR, "log4j2")|' \
         $out/bin/storm.py
+
     # Default jdk location
     sed -i -e 's|#.*export JAVA_HOME=.*|export JAVA_HOME="${jdk.home}"|' \
            $out/conf/storm-env.sh
-    unzip  $out/lib/storm-core-${version}.jar defaults.yaml;
-    zip -d $out/lib/storm-core-${version}.jar defaults.yaml;
+    ls -lh $out/lib
+    unzip  $out/lib/storm-client-${version}.jar defaults.yaml;
+    zip -d $out/lib/storm-client-${version}.jar defaults.yaml;
     sed -i \
-       -e 's|java.library.path: .*|java.library.path: "${jzmq}/lib:${lib.concatStringsSep ":" extraLibraryPaths}"|' \
+       -e 's|java.library.path: .*|java.library.path: "${lib.concatStringsSep ":" extraLibraryPaths}"|' \
        -e 's|storm.log4j2.conf.dir: .*|storm.log4j2.conf.dir: "conf/log4j2"|' \
       defaults.yaml
     ${if confFile != "" then ''cat ${confFile} >> defaults.yaml'' else ""}
     mv defaults.yaml $out/conf;
 
-    # Link to jzmq jar and extra jars
+    # Link to extra jars
     cd $out/lib;
-    ln -s ${jzmq}/share/java/*.jar;
     ${lib.concatMapStrings (jar: "ln -s ${jar};\n") extraJars}
   '';
 
diff --git a/nixpkgs/pkgs/servers/consul/default.nix b/nixpkgs/pkgs/servers/consul/default.nix
index d550a5cb699e..b2f9b27e8f80 100644
--- a/nixpkgs/pkgs/servers/consul/default.nix
+++ b/nixpkgs/pkgs/servers/consul/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "consul";
-  version = "1.7.4";
+  version = "1.8.3";
   rev = "v${version}";
 
   # Note: Currently only release tags are supported, because they have the Consul UI
@@ -17,7 +17,7 @@ buildGoModule rec {
     owner = "hashicorp";
     repo = pname;
     inherit rev;
-    sha256 = "0yx0ry8gwgvw1mkz3nv4rn2pwslm0q7jxlk70gaw6386mxxmj0sk";
+    sha256 = "172m8izv0jqvwxl8nwxdy6x7syp7gn70x4zx41h6ajy4h564l16y";
   };
 
   passthru.tests.consul = nixosTests.consul;
@@ -26,7 +26,10 @@ buildGoModule rec {
   # has a split module structure in one repo
   subPackages = ["." "connect/certgen"];
 
-  vendorSha256 = "1lcpldkssbq6qkkq22bvx9jb5klcxr8422mpx47wz39pry8vy9b6";
+  vendorSha256 = "1q4mvmypza2n2kqnri71y9k2qqmb34x3pa7ifql8gwlp8r0bicy7";
+
+  doCheck = false;
+
   deleteVendor = true;
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/servers/coturn/default.nix b/nixpkgs/pkgs/servers/coturn/default.nix
index f50a5afa81e7..c32ddecc7a36 100644
--- a/nixpkgs/pkgs/servers/coturn/default.nix
+++ b/nixpkgs/pkgs/servers/coturn/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "coturn";
-  version = "4.5.1.2";
+  version = "4.5.1.3";
 
   src = fetchFromGitHub {
     owner = "coturn";
     repo = "coturn";
     rev = version;
-    sha256 = "01y65az8qyv2kjnb4fj7rgl4zq5pc2b286gfn727x3hfhksx9zp2";
+    sha256 = "1801931k4qdvc7jvaqxvjyhbh1xsvjz0pjajf6xc222n4ggar1q5";
   };
 
   buildInputs = [ openssl libevent ];
diff --git a/nixpkgs/pkgs/servers/demoit/default.nix b/nixpkgs/pkgs/servers/demoit/default.nix
index 514b6873a1a8..675792da6803 100644
--- a/nixpkgs/pkgs/servers/demoit/default.nix
+++ b/nixpkgs/pkgs/servers/demoit/default.nix
@@ -1,19 +1,21 @@
 { stdenv
-, buildGoPackage
+, buildGoModule
 , fetchFromGitHub
 }:
 
-buildGoPackage {
+buildGoModule {
   pname = "demoit";
-  version = "unstable-2019-05-10";
+  version = "unstable-2020-06-11";
   goPackagePath = "github.com/dgageot/demoit";
 
   src = fetchFromGitHub {
     owner = "dgageot";
     repo = "demoit";
-    rev = "c1d4780620ebf083cb4a81b83c80e7547ff7bc23";
-    sha256 = "0l0pw0kzgnrk6a6f4ls3s82icjp7q9djbaxwfpjswbcfdzrsk4p2";
+    rev = "5762b169e7f2fc18913874bf52323ffbb906ce84";
+    sha256 = "1jcjqr758d29h3y9ajvzhy1xmxfix5mwhylz6jwhy5nmk28bjzx9";
   };
+  vendorSha256 = null;
+  subPackages = [ "." ];
 
   meta = with stdenv.lib; {
     description = "Live coding demos without Context Switching";
diff --git a/nixpkgs/pkgs/servers/dex/default.nix b/nixpkgs/pkgs/servers/dex/default.nix
index 09a3cd877ab9..5886a2ae73a3 100644
--- a/nixpkgs/pkgs/servers/dex/default.nix
+++ b/nixpkgs/pkgs/servers/dex/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "dex";
-  version = "2.17.0";
+  version = "2.23.0";
 
   src = fetchFromGitHub {
     owner = "dexidp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1z94svpiwrs64m83gpfnniv0ac1fnmvywvl05f20ind1wlf8bvwn";
+    sha256 = "1fr5r7d0xwj0b69jhszyyif4yc4kiy7zpfcpf83zdy12mh8f96c8";
   };
 
   goPackagePath = "github.com/dexidp/dex";
diff --git a/nixpkgs/pkgs/servers/dgraph/default.nix b/nixpkgs/pkgs/servers/dgraph/default.nix
index de62b6e6a43b..c1657dbfec4e 100644
--- a/nixpkgs/pkgs/servers/dgraph/default.nix
+++ b/nixpkgs/pkgs/servers/dgraph/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "dgraph";
-  version = "20.03.3";
+  version = "20.07.0";
 
   src = fetchFromGitHub {
     owner = "dgraph-io";
     repo = "dgraph";
     rev = "v${version}";
-    sha256 = "0z2zc0mf7ndf3cpzi1js396s1yxpgfjaj9jacifsi8v6i6r0c6cz";
+    sha256 = "0jcr3imv6vy40c8zdahsfph5mdxkmp2yqapl5982cf0a61gj7brp";
   };
 
-  vendorSha256 = "1nz4yr3y4dr9l09hcsp8x3zhbww9kz0av1ax4192f5zxpw1q275s";
+  vendorSha256 = "0fb8ba2slav6jk93qwaw715myanivrpajfjwi654n0psr57vc7gf";
+
+  doCheck = false;
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/servers/dico/default.nix b/nixpkgs/pkgs/servers/dico/default.nix
index ea549cd79677..69ec2e6222b7 100644
--- a/nixpkgs/pkgs/servers/dico/default.nix
+++ b/nixpkgs/pkgs/servers/dico/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dico";
-  version = "2.9";
+  version = "2.10";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0i9xqhy3h5nlizcmav4mv5ay8ivdgn4l4k0k7fxix3fsc87nijyr";
+    sha256 = "0qag47mzs00d53hnrmh381r0jay42766vp5xrffmzmsn2307x8vl";
   };
 
   hardeningDisable = [ "format" ];
diff --git a/nixpkgs/pkgs/servers/dict/default.nix b/nixpkgs/pkgs/servers/dict/default.nix
index 88f31332580e..5e4d625c187b 100644
--- a/nixpkgs/pkgs/servers/dict/default.nix
+++ b/nixpkgs/pkgs/servers/dict/default.nix
@@ -13,24 +13,26 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ bison flex libtool which ];
 
-  # Makefile(.in) contains "clientparse.c clientparse.h: clientparse.y" which
-  # causes bison to run twice, and break the build when this happens in
-  # parallel.  Test with "make -j clientparse.c clientparse.h".  The error
-  # message may be "mv: cannot move 'y.tab.c' to 'clientparse.c'".
-  enableParallelBuilding = false;
+  # In earlier versions, parallel building was not supported but it's OK with 1.13
+  enableParallelBuilding = true;
 
   patchPhase = "patch -p0 < ${./buildfix.diff}";
+
   configureFlags = [
     "--enable-dictorg"
     "--datadir=/run/current-system/sw/share/dictd"
     "--sysconfdir=/etc"
   ];
 
+  postInstall = ''
+    install -Dm444 -t $out/share/doc/${pname} NEWS README
+  '';
+
   meta = with stdenv.lib; {
     description = "Dict protocol server and client";
-    homepage    = "http://www.dict.org";
-    license     = licenses.gpl2;
+    homepage = "http://www.dict.org";
+    license = licenses.gpl2;
     maintainers = with maintainers; [ ];
-    platforms   = platforms.linux;
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/servers/dns/bind/default.nix b/nixpkgs/pkgs/servers/dns/bind/default.nix
index 2aae5634cc5e..2afc5da51f57 100644
--- a/nixpkgs/pkgs/servers/dns/bind/default.nix
+++ b/nixpkgs/pkgs/servers/dns/bind/default.nix
@@ -1,8 +1,8 @@
 { config, stdenv, lib, fetchurl, fetchpatch
-, perl
-, libcap, libtool, libxml2, openssl
+, perl, pkg-config
+, libcap, libtool, libxml2, openssl, libuv
 , enablePython ? config.bind.enablePython or false, python3 ? null
-, enableSeccomp ? false, libseccomp ? null, buildPackages
+, enableSeccomp ? false, libseccomp ? null, buildPackages, nixosTests
 }:
 
 assert enableSeccomp -> libseccomp != null;
@@ -10,11 +10,11 @@ assert enablePython -> python3 != null;
 
 stdenv.mkDerivation rec {
   pname = "bind";
-  version = "9.14.12";
+  version = "9.16.7";
 
   src = fetchurl {
-    url = "https://ftp.isc.org/isc/bind9/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1j7ldvdschmvzxrbajjhmdsl2iqxc1lm64vk0a5sdykxpy9y8kcw";
+    url = "https://downloads.isc.org/isc/bind9/${version}/${pname}-${version}.tar.xz";
+    sha256 = "1l8lhgnkj3fnl1101bs3pzj5gv2x5m9ahvrbyscsc9mxxc91hzcz";
   };
 
   outputs = [ "out" "lib" "dev" "man" "dnsutils" "host" ];
@@ -24,8 +24,8 @@ stdenv.mkDerivation rec {
     ./remove-mkdir-var.patch
   ];
 
-  nativeBuildInputs = [ perl ];
-  buildInputs = [ libtool libxml2 openssl ]
+  nativeBuildInputs = [ perl pkg-config ];
+  buildInputs = [ libtool libxml2 openssl libuv ]
     ++ lib.optional stdenv.isLinux libcap
     ++ lib.optional enableSeccomp libseccomp
     ++ lib.optional enablePython (python3.withPackages (ps: with ps; [ ply ]));
@@ -35,8 +35,6 @@ stdenv.mkDerivation rec {
   configureFlags = [
     "--localstatedir=/var"
     "--with-libtool"
-    "--with-libxml2=${libxml2.dev}"
-    "--with-openssl=${openssl.dev}"
     (if enablePython then "--with-python" else "--without-python")
     "--without-atf"
     "--without-dlopen"
@@ -59,7 +57,6 @@ stdenv.mkDerivation rec {
 
   postInstall = ''
     moveToOutput bin/bind9-config $dev
-    moveToOutput bin/isc-config.sh $dev
 
     moveToOutput bin/host $host
 
@@ -68,13 +65,15 @@ stdenv.mkDerivation rec {
     moveToOutput bin/nslookup $dnsutils
     moveToOutput bin/nsupdate $dnsutils
 
-    for f in "$lib/lib/"*.la "$dev/bin/"{isc-config.sh,bind*-config}; do
+    for f in "$lib/lib/"*.la "$dev/bin/"bind*-config; do
       sed -i "$f" -e 's|-L${openssl.dev}|-L${openssl.out}|g'
     done
   '';
 
   doCheck = false; # requires root and the net
 
+  passthru.tests = { inherit (nixosTests) bind; };
+
   meta = with stdenv.lib; {
     homepage = "https://www.isc.org/downloads/bind/";
     description = "Domain name server";
diff --git a/nixpkgs/pkgs/servers/dns/bind/dont-keep-configure-flags.patch b/nixpkgs/pkgs/servers/dns/bind/dont-keep-configure-flags.patch
index 17fdb15ad460..ceb887e678eb 100644
--- a/nixpkgs/pkgs/servers/dns/bind/dont-keep-configure-flags.patch
+++ b/nixpkgs/pkgs/servers/dns/bind/dont-keep-configure-flags.patch
@@ -1,40 +1,37 @@
-diff --git a/bin/named/include/named/globals.h b/bin/named/include/named/globals.h
-index b8e356b..cbe6c94 100644
---- a/bin/named/include/named/globals.h
-+++ b/bin/named/include/named/globals.h
-@@ -68,7 +68,9 @@ EXTERN const char *		named_g_version		INIT(VERSION);
- EXTERN const char *		named_g_product		INIT(PRODUCT);
- EXTERN const char *		named_g_description	INIT(DESCRIPTION);
- EXTERN const char *		named_g_srcid		INIT(SRCID);
+diff -ru a/bin/named/include/named/globals.h b/bin/named/include/named/globals.h
+--- a/bin/named/include/named/globals.h	2020-09-24 17:43:49.398977491 +0200
++++ b/bin/named/include/named/globals.h	2020-09-24 17:44:36.826590553 +0200
+@@ -69,7 +69,9 @@
+ EXTERN const char *named_g_product     INIT(PRODUCT);
+ EXTERN const char *named_g_description INIT(DESCRIPTION);
+ EXTERN const char *named_g_srcid       INIT(SRCID);
 +#if 0
- EXTERN const char *		named_g_configargs	INIT(CONFIGARGS);
+ EXTERN const char *named_g_configargs  INIT(CONFIGARGS);
 +#endif
- EXTERN const char *		named_g_builder		INIT(BUILDER);
- EXTERN in_port_t		named_g_port		INIT(0);
- EXTERN isc_dscp_t		named_g_dscp		INIT(-1);
-diff --git a/bin/named/main.c b/bin/named/main.c
-index 62d9ce3..342abdc 100644
---- a/bin/named/main.c
-+++ b/bin/named/main.c
-@@ -459,8 +459,10 @@ printversion(bool verbose) {
+ EXTERN const char *named_g_builder     INIT(BUILDER);
+ EXTERN in_port_t named_g_port	       INIT(0);
+ EXTERN isc_dscp_t named_g_dscp	       INIT(-1);
+diff -ru a/bin/named/main.c b/bin/named/main.c
+--- a/bin/named/main.c	2020-09-24 17:43:49.399977504 +0200
++++ b/bin/named/main.c	2020-09-24 17:44:24.102426273 +0200
+@@ -506,7 +506,9 @@
  	}
  
  	printf("running on %s\n", named_os_uname());
 +#if 0
- 	printf("built by %s with %s\n",
- 	       named_g_builder, named_g_configargs);
+ 	printf("built by %s with %s\n", named_g_builder, named_g_configargs);
 +#endif
  #ifdef __clang__
  	printf("compiled by CLANG %s\n", __VERSION__);
- #else
-@@ -1001,9 +1003,11 @@ setup(void) {
- 		      NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
- 		      "running on %s", named_os_uname());
+ #else /* ifdef __clang__ */
+@@ -1102,9 +1104,11 @@
+ 		      NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE, "running on %s",
+ 		      named_os_uname());
  
 +#if 0
  	isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
- 		      NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE,
- 		      "built with %s", named_g_configargs);
+ 		      NAMED_LOGMODULE_MAIN, ISC_LOG_NOTICE, "built with %s",
+ 		      named_g_configargs);
 +#endif
  
  	isc_log_write(named_g_lctx, NAMED_LOGCATEGORY_GENERAL,
diff --git a/nixpkgs/pkgs/servers/dns/coredns/default.nix b/nixpkgs/pkgs/servers/dns/coredns/default.nix
index 598f5bedc2bf..981056b53c1c 100644
--- a/nixpkgs/pkgs/servers/dns/coredns/default.nix
+++ b/nixpkgs/pkgs/servers/dns/coredns/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "coredns";
-  version = "1.6.9";
-
-  goPackagePath = "github.com/coredns/coredns";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "coredns";
     repo = "coredns";
     rev = "v${version}";
-    sha256 = "18c02ss0sxxg8lkhdmyaac2x5alfxsizf6jqhck8bqkf6hiyv5hc";
+    sha256 = "1wayfr26gwgdl0sfrvskb4hkxfmxfy7idbrpw3z4r05fkr2886xj";
   };
 
-  vendorSha256 = "0ykhqsz4a7bkkxcg7w23jl3qs36law1f8l1b5r3i26qlamibqxl7";
+  vendorSha256 = "17znl3vkg73hnrfl697rw201nsd5sijgalnbkljk1b4m0a01zik1";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     homepage = "https://coredns.io";
@@ -21,4 +21,4 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ rushmorem rtreffer deltaevo ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/dns/dnsdist/default.nix b/nixpkgs/pkgs/servers/dns/dnsdist/default.nix
index 0c236fe93155..98947bd1873c 100644
--- a/nixpkgs/pkgs/servers/dns/dnsdist/default.nix
+++ b/nixpkgs/pkgs/servers/dns/dnsdist/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dnsdist";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/dnsdist-${version}.tar.bz2";
-    sha256 = "1h0x5xd13j8xxrrinb7d55851m6n9w0r15wx9m3c50dk7qngldm3";
+    sha256 = "0n3vy84kczvbwbzmr1d2c9lh3im77gz83wczj0im4zs91kpw81rc";
   };
 
   nativeBuildInputs = [ pkgconfig protobuf ];
diff --git a/nixpkgs/pkgs/servers/dns/knot-dns/default.nix b/nixpkgs/pkgs/servers/dns/knot-dns/default.nix
index 3dc6fd3e2c73..3ebb31e20f24 100644
--- a/nixpkgs/pkgs/servers/dns/knot-dns/default.nix
+++ b/nixpkgs/pkgs/servers/dns/knot-dns/default.nix
@@ -1,18 +1,17 @@
 { stdenv, fetchurl, pkgconfig, gnutls, liburcu, lmdb, libcap_ng, libidn2, libunistring
-, systemd, nettle, libedit, zlib, libiconv, libintl
+, systemd, nettle, libedit, zlib, libiconv, libintl, libmaxminddb, libbpf, nghttp2
 , autoreconfHook
 }:
 
 let inherit (stdenv.lib) optional optionals; in
 
-# Note: ATM only the libraries have been tested in nixpkgs.
 stdenv.mkDerivation rec {
   pname = "knot-dns";
-  version = "2.9.5";
+  version = "3.0.0";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-dns/knot-${version}.tar.xz";
-    sha256 = "1109a8ba212ff8ddfdbaf44a6f8fc13a2b880a98a9e54c19112ba72a1aacbf76";
+    sha256 = "f1c96aff6e873a2f9b1b8c2441d5a7801dd48d3abdb738a4d24b26c2a8fbe6c4";
   };
 
   outputs = [ "bin" "out" "dev" ];
@@ -27,6 +26,7 @@ stdenv.mkDerivation rec {
     # Don't try to create directories like /var/lib/knot at build time.
     # They are later created from NixOS itself.
     ./dont-create-run-time-dirs.patch
+    ./runtime-deps.patch
   ];
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
@@ -34,9 +34,15 @@ stdenv.mkDerivation rec {
     gnutls liburcu libidn2 libunistring
     nettle libedit
     libiconv lmdb libintl
+    nghttp2 # DoH support in kdig
+    libmaxminddb # optional for geoip module (it's tiny)
     # without sphinx &al. for developer documentation
+    # TODO: add dnstap support?
   ]
-    ++ optionals stdenv.isLinux [ libcap_ng systemd ]
+    ++ optionals stdenv.isLinux [
+      libcap_ng systemd
+      libbpf # XDP support
+    ]
     ++ optional stdenv.isDarwin zlib; # perhaps due to gnutls
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/servers/dns/knot-dns/runtime-deps.patch b/nixpkgs/pkgs/servers/dns/knot-dns/runtime-deps.patch
new file mode 100644
index 000000000000..19fc9cd07b18
--- /dev/null
+++ b/nixpkgs/pkgs/servers/dns/knot-dns/runtime-deps.patch
@@ -0,0 +1,14 @@
+Remove unnecessary runtime dependencies.
+
+`knotc status configure` shows summary from the configure script,
+but that contains also references like include paths.
+Filter these at least in a crude way (whole lines).
+--- a/configure.ac
++++ b/configure.ac
+@@ -766,5 +766,5 @@ result_msg_base="  Knot DNS $VERSION
+ 
+-result_msg_esc=$(echo -n "$result_msg_base" | sed '$!s/$/\\n/' | tr -d '\n')
++result_msg_esc=$(echo -n "$result_msg_base" | grep -Fv "$NIX_STORE" | sed '$!s/$/\\n/' | tr -d '\n')
+ 
+ AC_DEFINE_UNQUOTED([CONFIGURE_SUMMARY],["$result_msg_esc"],[Configure summary])
+ 
diff --git a/nixpkgs/pkgs/servers/dns/knot-resolver/default.nix b/nixpkgs/pkgs/servers/dns/knot-resolver/default.nix
index f596934a4298..9f54d2f5fa30 100644
--- a/nixpkgs/pkgs/servers/dns/knot-resolver/default.nix
+++ b/nixpkgs/pkgs/servers/dns/knot-resolver/default.nix
@@ -16,11 +16,11 @@ lua = luajitPackages;
 
 unwrapped = stdenv.mkDerivation rec {
   pname = "knot-resolver";
-  version = "5.1.1";
+  version = "5.1.3";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-resolver/${pname}-${version}.tar.xz";
-    sha256 = "f72214046df8aae2b1a5c6d1ad0bc8b166aa060df5b008f6e88b4f6ba79cbf4e";
+    sha256 = "20cd829027e39a9f7d993894e3640e886825b492d9ac1a744ac5616cc101458b";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/nixpkgs/pkgs/servers/dns/ncdns/default.nix b/nixpkgs/pkgs/servers/dns/ncdns/default.nix
new file mode 100644
index 000000000000..f1d124176bb4
--- /dev/null
+++ b/nixpkgs/pkgs/servers/dns/ncdns/default.nix
@@ -0,0 +1,40 @@
+{ lib, nixosTests, git, buildGoPackage, fetchFromGitHub, libcap }:
+
+buildGoPackage rec {
+  pname = "ncdns";
+  version = "0.0.10.3";
+
+  goPackagePath = "github.com/namecoin/ncdns";
+  goDeps = ./deps.nix;
+
+  src = fetchFromGitHub {
+    owner = "namecoin";
+    repo = "ncdns";
+    rev = "v${version}";
+    sha256 = "12q5al48mkjhgyk7z5wyklzzrdbcqhwxl79axa4gh9ld75prghbq";
+  };
+
+  patches = [ ./fix-tpl-path.patch ];
+
+  buildInputs = [ libcap ];
+
+  preBuild = ''
+    go generate github.com/namecoin/x509-signature-splice/...
+  '';
+
+  postInstall = ''
+    mkdir -p "$out/share"
+    cp -r "$src/_doc" "$out/share/doc"
+    cp -r "$src/_tpl" "$out/share/tpl"
+  '';
+
+  meta = with lib; {
+    description = "Namecoin to DNS bridge daemon";
+    homepage = "https://github.com/namecoin/ncdns";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ rnhmjoj ];
+  };
+
+  passthru.tests.ncdns = nixosTests.ncdns;
+
+}
diff --git a/nixpkgs/pkgs/servers/dns/ncdns/deps.nix b/nixpkgs/pkgs/servers/dns/ncdns/deps.nix
new file mode 100644
index 000000000000..7ac3f2897e02
--- /dev/null
+++ b/nixpkgs/pkgs/servers/dns/ncdns/deps.nix
@@ -0,0 +1,309 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
+[
+  {
+    goPackagePath = "github.com/BurntSushi/toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/BurntSushi/toml";
+      rev = "3012a1dbe2e4bd1391d42b32f0577cb7bbc7f005";
+      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
+    };
+  }
+  {
+    goPackagePath = "github.com/alecthomas/template";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/template";
+      rev = "fb15b899a75114aa79cc930e33c46b577cc664b1";
+      sha256 = "1vlasv4dgycydh5wx6jdcvz40zdv90zz1h7836z7lhsi2ymvii26";
+    };
+  }
+  {
+    goPackagePath = "github.com/alecthomas/units";
+    fetch = {
+      type = "git";
+      url = "https://github.com/alecthomas/units";
+      rev = "f65c72e2690dc4b403c8bd637baf4611cd4c069b";
+      sha256 = "04jyqm7m3m01ppfy1f9xk4qvrwvs78q9zml6llyf2b3v5k6b2bbc";
+    };
+  }
+  {
+    goPackagePath = "github.com/btcsuite/btcd";
+    fetch = {
+      type = "git";
+      url = "https://github.com/btcsuite/btcd";
+      rev = "9f0179fd2c46caba343b6515602cf37172f14d5f";
+      sha256 = "0cvpjsxlyzm04pwzi7nj43k9h5wfxj07jdc49qxsav5323v1nvka";
+    };
+  }
+  {
+    goPackagePath = "github.com/btcsuite/btclog";
+    fetch = {
+      type = "git";
+      url = "https://github.com/btcsuite/btclog";
+      rev = "84c8d2346e9fc8c7b947e243b9c24e6df9fd206a";
+      sha256 = "02dl46wcnfpg9sqvg0ipipkpnd7lrf4fnvb9zy56jqa7mfcwc7wk";
+    };
+  }
+  {
+    goPackagePath = "github.com/btcsuite/btcutil";
+    fetch = {
+      type = "git";
+      url = "https://github.com/btcsuite/btcutil";
+      rev = "b2bf7f89d674a3702182b7e15f52807896051af3";
+      sha256 = "0wwykb4cbq8xj2mls2mxma5vaahdgdy3vqw1r2fi4wyj0yr4kyw9";
+    };
+  }
+  {
+    goPackagePath = "github.com/btcsuite/go-socks";
+    fetch = {
+      type = "git";
+      url = "https://github.com/btcsuite/go-socks";
+      rev = "4720035b7bfd2a9bb130b1c184f8bbe41b6f0d0f";
+      sha256 = "18cv2icj059lq4s99p6yh91hlas5f2gi3f1p4c10sjgwrs933d7b";
+    };
+  }
+  {
+    goPackagePath = "github.com/btcsuite/websocket";
+    fetch = {
+      type = "git";
+      url = "https://github.com/btcsuite/websocket";
+      rev = "31079b6807923eb23992c421b114992b95131b55";
+      sha256 = "0xpkf257ml6fpfdgv7hxxc41n0d5yxxm3njm50qpzp7j71l9cjwa";
+    };
+  }
+  {
+    goPackagePath = "github.com/coreos/go-systemd";
+    fetch = {
+      type = "git";
+      url = "https://github.com/coreos/go-systemd";
+      rev = "b51e752dd1c9c618846f8bc5b95ab524bd7b11c2";
+      sha256 = "127dj1iwp69yj74nwh9ckgc0mkk1mv4yzbxmbdxix1r7j6q35z3j";
+    };
+  }
+  {
+    goPackagePath = "github.com/golang/groupcache";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/groupcache";
+      rev = "8c9f03a8e57eb486e42badaed3fb287da51807ba";
+      sha256 = "0vjjr79r32icjzlb05wn02k59av7jx0rn1jijml8r4whlg7dnkfh";
+    };
+  }
+  {
+    goPackagePath = "github.com/hlandau/buildinfo";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hlandau/buildinfo";
+      rev = "337a29b5499734e584d4630ce535af64c5fe7813";
+      sha256 = "1kq3r1i4rr9bcvj5yg8w1l95f6sfc3kn6kgcdmlh5i3j9w2sram8";
+    };
+  }
+  {
+    goPackagePath = "github.com/hlandau/degoutils";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hlandau/degoutils";
+      rev = "8fa2440b63444dad556d76366f1c3ee070c8a577";
+      sha256 = "1yj39jbrk3xx3cyl8f4asakc74lsl0brasi25xjf6219pg69q0iy";
+    };
+  }
+  {
+    goPackagePath = "github.com/hlandau/dexlogconfig";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hlandau/dexlogconfig";
+      rev = "244f29bd260884993b176cd14ef2f7631f6f3c18";
+      sha256 = "1d01ghx6xawj3nk3lpk51wbbpxdnc9vzvijvlayvp7cxgsacslbc";
+    };
+  }
+  {
+    goPackagePath = "github.com/hlandau/xlog";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hlandau/xlog";
+      rev = "197ef798aed28e08ed3e176e678fda81be993a31";
+      sha256 = "08rjlqnjbfgpz5rbjq89l7y5vyhk99ivr928sqdi5gnqznbqs4m8";
+    };
+  }
+  {
+    goPackagePath = "github.com/kr/pretty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kr/pretty";
+      rev = "4e0886370c3a67530192c6a238cff68f56c141b0";
+      sha256 = "1ywbfzz1h3a3qd8rpkiqwi1dm4w8ls9ijb4x1b7567grns9f0vnp";
+    };
+  }
+  {
+    goPackagePath = "github.com/kr/text";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kr/text";
+      rev = "702c74938df48b97370179f33ce2107bd7ff3b3e";
+      sha256 = "0hf58ypz6rxsw6nx3i856whir9lvy4sdx946wbw1nfaf2rdmr9vx";
+    };
+  }
+  {
+    goPackagePath = "github.com/mattn/go-isatty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-isatty";
+      rev = "cb30d6282491c185f77d9bec5d25de1bb61a06bc";
+      sha256 = "0v59mv94acd2m72q8adhigxkx1vn38l5h0d8hp0nxga2v9f3v8kd";
+    };
+  }
+  {
+    goPackagePath = "github.com/miekg/dns";
+    fetch = {
+      type = "git";
+      url = "https://github.com/miekg/dns";
+      rev = "203ad2480beb9330454efc215d21f16c607e8174";
+      sha256 = "12i2l79whv7a8c27f1dvq4wqikx4d0l30r1ja68zfgrgik6vryxq";
+    };
+  }
+  {
+    goPackagePath = "github.com/namecoin/btcd";
+    fetch = {
+      type = "git";
+      url = "https://github.com/namecoin/btcd";
+      rev = "69a10543311fa68737d0a77b4cd045b0b0abfb75";
+      sha256 = "1zbfigs3hrjhdwp19877lpgivdcz3k80149nxdmxlmp03xcswcqy";
+    };
+  }
+  {
+    goPackagePath = "github.com/namecoin/ncbtcjson";
+    fetch = {
+      type = "git";
+      url = "https://github.com/namecoin/ncbtcjson";
+      rev = "fa221af062c70f802db6ed66e1546cc4a41ec277";
+      sha256 = "1fmz5aylsji27vj5f3f3gg9xj99735gh5prvcfz0gmk68v1mnr4i";
+    };
+  }
+  {
+    goPackagePath = "github.com/namecoin/ncrpcclient";
+    fetch = {
+      type = "git";
+      url = "https://github.com/namecoin/ncrpcclient";
+      rev = "858e1a5acd8b2da56462f50323633cdf2fe80977";
+      sha256 = "0pj951wm6fdkk2yv4bxaxka52i7rb6w3fs9ah3fy7p8wchr4smjx";
+    };
+  }
+  {
+    goPackagePath = "github.com/namecoin/tlsrestrictnss";
+    fetch = {
+      type = "git";
+      url = "https://github.com/namecoin/tlsrestrictnss";
+      rev = "945a9f3d995fcb175fd0b19549e21a3e87ba8c13";
+      sha256 = "18qphkqnjw3bwflkyyrddyzgwscs37j7y6ynm9g78bqb5skviqqy";
+    };
+  }
+  {
+    goPackagePath = "github.com/namecoin/x509-signature-splice";
+    fetch = {
+      type = "git";
+      url = "https://github.com/namecoin/x509-signature-splice";
+      rev = "d8b4bf2df701c55239a9fe82bb1e7bea10e30599";
+      sha256 = "0jlj4gb60s7b69d8yx6ljhxgvqgjz01n0h59fswblw09wfba8c4j";
+    };
+  }
+  {
+    goPackagePath = "github.com/ogier/pflag";
+    fetch = {
+      type = "git";
+      url = "https://github.com/ogier/pflag";
+      rev = "45c278ab3607870051a2ea9040bb85fcb8557481";
+      sha256 = "0620v75wppfd84d95n312wpngcb73cph4q3ivs1h0waljfnsrd5l";
+    };
+  }
+  {
+    goPackagePath = "github.com/shiena/ansicolor";
+    fetch = {
+      type = "git";
+      url = "https://github.com/shiena/ansicolor";
+      rev = "a422bbe96644373c5753384a59d678f7d261ff10";
+      sha256 = "1dcn8a9z6a5dxa2m3fkppnajcls8lanbl38qggkf646yi5qsk1hc";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev = "279210d13fedf5be6d476bad5df6a015042bb905";
+      sha256 = "0syi72jba84nn1z89bqpcv94wjvzj71dwg1pj30xrcixcz1zsg26";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev = "627f9648deb96c27737b83199d44bb5c1010cbcf";
+      sha256 = "0ziz7i9mhz6dy2f58dsa83flkk165w1cnazm7yksql5i9m7x099z";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "6fdc65e7d9800cc59998e8ac0d9406a20ff5f399";
+      sha256 = "0al5gzij4qkrp11i1h8j7288pg6y716zyh2v0886pv2knha7gjvj";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/alecthomas/kingpin.v2";
+      rev = "947dcec5ba9c011838740e680966fd7087a71d0d";
+      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/hlandau/configurable.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/hlandau/configurable.v1";
+      rev = "41496864a1fe3e0fef2973f22372b755d2897402";
+      sha256 = "0i9jbdvi8rz12xsrzzbfxg5lwsqakjcmccsa5a32asmv26k5byqa";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/hlandau/easyconfig.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/hlandau/easyconfig.v1";
+      rev = "c31249162931b4963bbe6e501cccb60d23271a3f";
+      sha256 = "1v8j1pyzcfj1l4pmb1c6mszci6xzc4agdam2kq79kyvbsvbbw9dc";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/hlandau/madns.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/hlandau/madns.v2";
+      rev = "26979b3e4b5aa3e0bd53cf0a014f9eaf43b578e3";
+      sha256 = "09r4m4mqdgd7hvxyvss9m64lq0kk8nylnq2bgnkrclgzpi87fmmb";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/hlandau/service.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/hlandau/service.v2";
+      rev = "b64b3467ebd16f64faec1640c25e318efc0c0d7b";
+      sha256 = "0lpx88f46ylx9lf6jgwcjgklll1pc1mlakrywpa0wzhjj7a4jinc";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/hlandau/svcutils.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/hlandau/svcutils.v1";
+      rev = "c25dac49e50cbbcbef8c81b089f56156f4067729";
+      sha256 = "12b6p71mk33r44d71xizjq82fls0ykfwfl5gnmckbgpxms4bj2xf";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/servers/dns/ncdns/fix-tpl-path.patch b/nixpkgs/pkgs/servers/dns/ncdns/fix-tpl-path.patch
new file mode 100644
index 000000000000..850fb4d1b189
--- /dev/null
+++ b/nixpkgs/pkgs/servers/dns/ncdns/fix-tpl-path.patch
@@ -0,0 +1,27 @@
+This sets a default value for the tpl directory that works for Nixpkgs.
+
+diff --git a/server/web.go b/server/web.go
+index d024a42..0522d02 100644
+--- a/server/web.go
++++ b/server/web.go
+@@ -10,6 +10,7 @@ import "path/filepath"
+ import "time"
+ import "strings"
+ import "fmt"
++import "os"
+ 
+ var layoutTpl *template.Template
+ var mainPageTpl *template.Template
+@@ -44,7 +45,11 @@ func deriveTemplate(filename string) (*template.Template, error) {
+ }
+ 
+ func (s *Server) tplFilename(filename string) string {
+-	td := filepath.Join(s.cfg.ConfigDir, "..", "tpl")
++	ex, err := os.Executable()
++	if err != nil {
++		panic(err)
++	}
++	td := filepath.Join(filepath.Dir(ex), "..", "share", "tpl")
+ 	if s.cfg.TplPath != "" {
+ 		td = s.cfg.TplPath
+ 	}
diff --git a/nixpkgs/pkgs/servers/dns/nsd/default.nix b/nixpkgs/pkgs/servers/dns/nsd/default.nix
index 43c2900443e2..2dfdf108c4fa 100644
--- a/nixpkgs/pkgs/servers/dns/nsd/default.nix
+++ b/nixpkgs/pkgs/servers/dns/nsd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, libevent, openssl
+{ stdenv, fetchurl, libevent, openssl, nixosTests
 , bind8Stats       ? false
 , checking         ? false
 , ipv6             ? true
@@ -11,16 +11,16 @@
 , rrtypes          ? false
 , zoneStats        ? false
 
-, configFile ? "etc/nsd/nsd.conf"
+, configFile ? "/etc/nsd/nsd.conf"
 }:
 
 stdenv.mkDerivation rec {
   pname = "nsd";
-  version = "4.3.1";
+  version = "4.3.2";
 
   src = fetchurl {
     url = "https://www.nlnetlabs.nl/downloads/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "11w9kl99fs888f3zwx2j92i8lcp78vq91jac8s317a2icv74mczl";
+    sha256 = "0ac3mbn5z4nc18782m9aswdpi2m9f4665vidw0ciyigdh0pywp2v";
   };
 
   prePatch = ''
@@ -52,6 +52,10 @@ stdenv.mkDerivation rec {
     sed 's@$(INSTALL_DATA) nsd.conf.sample $(DESTDIR)$(nsdconfigfile).sample@@g' -i Makefile.in
   '';
 
+  passthru.tests = {
+    inherit (nixosTests) nsd;
+  };
+
   meta = with stdenv.lib; {
     homepage = "http://www.nlnetlabs.nl";
     description = "Authoritative only, high performance, simple and open source name server";
diff --git a/nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix b/nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix
index 10a18ab1d458..051e619af4e4 100644
--- a/nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix
+++ b/nixpkgs/pkgs/servers/dns/pdns-recursor/default.nix
@@ -8,11 +8,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "pdns-recursor";
-  version = "4.3.1";
+  version = "4.3.3";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/pdns-recursor-${version}.tar.bz2";
-    sha256 = "1n9gymis0h1grgg63ig3kk9cb27ayy1w6s8hcn8n4g5dzi90h8sl";
+    sha256 = "020mx8mh6zrixkhsc2p1c2ccl9zfypay988jjxbk6ql020flig0b";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/servers/documize-community/default.nix b/nixpkgs/pkgs/servers/documize-community/default.nix
index 9a6580353fc2..09c511b4d6f2 100644
--- a/nixpkgs/pkgs/servers/documize-community/default.nix
+++ b/nixpkgs/pkgs/servers/documize-community/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   nativeBuildInputs = [ go-bindata go-bindata-assetfs ];
 
   # This is really weird, but they've managed to screw up
diff --git a/nixpkgs/pkgs/servers/echoip/default.nix b/nixpkgs/pkgs/servers/echoip/default.nix
index 18952d01c91d..745cf96df46a 100644
--- a/nixpkgs/pkgs/servers/echoip/default.nix
+++ b/nixpkgs/pkgs/servers/echoip/default.nix
@@ -13,6 +13,8 @@ buildGoModule {
 
   vendorSha256 = "0vvs717pl5gzggxpbn2vkyxmpiw5zjdfnpbh8i81xidbqvlnm22h";
 
+  doCheck = false;
+
   outputs = [ "out" "index" ];
 
   postInstall = ''
@@ -25,4 +27,4 @@ buildGoModule {
     license = licenses.bsd3;
     maintainers = with maintainers; [ rvolosatovs ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/etcd/3.4.nix b/nixpkgs/pkgs/servers/etcd/3.4.nix
index 699ec033d3f3..be52b1bf1a58 100644
--- a/nixpkgs/pkgs/servers/etcd/3.4.nix
+++ b/nixpkgs/pkgs/servers/etcd/3.4.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "etcd";
-  version = "3.4.9";
+  version = "3.4.13";
 
-  #vendorSha256 = null; revert to `null` for > 3.4.9
-
-  vendorSha256 = "1fhrycl8m8ddb7mwasbyfiwrl4d9lfdk7zd3mxb7ahkipdp2c94z";
   deleteVendor = true;
+  vendorSha256 = "0jlnh4789xa2dhbyp33k9r278kc588ykggamnnfqivb27s2646bc";
+
+  doCheck = false;
 
   src = fetchFromGitHub {
     owner = "etcd-io";
     repo = "etcd";
     rev = "v${version}";
-    sha256 = "16l4wmnm7mkhpb2vzf6xnhhyx6lj8xx3z6x1bfs05idajnrw824p";
+    sha256 = "0bvky593241i60qf6793sxzsxwfl3f56cgscnva9f2jfhk157wmy";
   };
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/servers/etcd/default.nix b/nixpkgs/pkgs/servers/etcd/default.nix
index 4c0df659f3ed..53ad0d6ed240 100644
--- a/nixpkgs/pkgs/servers/etcd/default.nix
+++ b/nixpkgs/pkgs/servers/etcd/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "etcd";
-  version = "3.3.22";
+  version = "3.3.25";
 
   goPackagePath = "github.com/coreos/etcd";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "etcd-io";
     repo = "etcd";
     rev = "v${version}";
-    sha256 = "1rd390qfx9k20j9gh1wp1g9ygc571f2kv1dg2wvqij3kwydhymcj";
+    sha256 = "10cyy6jr2xzmla5yyn850cv323ixrk70fjpk8lxjjjvy0ffmb6hj";
   };
 
   buildPhase = ''
@@ -24,10 +24,7 @@ buildGoPackage rec {
     install -Dm755 bin/* bin/functional/cmd/* -t $out/bin
   '';
 
-  passthru.tests = with nixosTests; {
-    etcd = etcd;
-    etcd-cluster = etcd-cluster;
-  };
+  passthru.tests = { inherit (nixosTests) etcd etcd-cluster; };
 
   meta = with lib; {
     description = "Distributed reliable key-value store for the most critical data of a distributed system";
diff --git a/nixpkgs/pkgs/servers/fcgiwrap/default.nix b/nixpkgs/pkgs/servers/fcgiwrap/default.nix
index cd4d3116213f..a15e1c15b15b 100644
--- a/nixpkgs/pkgs/servers/fcgiwrap/default.nix
+++ b/nixpkgs/pkgs/servers/fcgiwrap/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     description = "Simple server for running CGI applications over FastCGI";
     maintainers = with maintainers; [ lethalman ];
     platforms = with platforms; linux;
+    license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/servers/freeradius/default.nix b/nixpkgs/pkgs/servers/freeradius/default.nix
index 9c80b7e7db39..84c92619f735 100644
--- a/nixpkgs/pkgs/servers/freeradius/default.nix
+++ b/nixpkgs/pkgs/servers/freeradius/default.nix
@@ -43,11 +43,11 @@ assert withRest -> curl != null && withJson;
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "freeradius";
-  version = "3.0.20";
+  version = "3.0.21";
 
   src = fetchurl {
     url = "ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-${version}.tar.gz";
-    sha256 = "0zrnlpril8lcnyd6zz0wy45wj5i2k2krcf42dwa0rldjsjh6nazp";
+    sha256 = "1bij07angf6ll6bq8lccd4fx1a1clf7k13kh5vbryh6lf7a19y9b";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/servers/ftp/bftpd/default.nix b/nixpkgs/pkgs/servers/ftp/bftpd/default.nix
index bb35ec075dde..538877169e1a 100644
--- a/nixpkgs/pkgs/servers/ftp/bftpd/default.nix
+++ b/nixpkgs/pkgs/servers/ftp/bftpd/default.nix
@@ -5,11 +5,11 @@ let
 
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
-  version = "5.4";
+  version = "5.6";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/${pname}/${pname}/${name}/${name}.tar.gz";
-    sha256 = "19fd9r233wkjk8gdxn6qsjgfijiw67a48xhgbm2kq46bx80yf3pg";
+    sha256 = "18ksld775balh0yx2icj7fya9fvjkfgvwznvccdlmhi3zidg550h";
   };
 
   preConfigure = ''
@@ -31,6 +31,6 @@ in stdenv.mkDerivation rec {
     homepage = "http://bftpd.sf.net/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ raskin ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/servers/ftp/pure-ftpd/default.nix b/nixpkgs/pkgs/servers/ftp/pure-ftpd/default.nix
index 020d2967f3e5..32e039f546b5 100644
--- a/nixpkgs/pkgs/servers/ftp/pure-ftpd/default.nix
+++ b/nixpkgs/pkgs/servers/ftp/pure-ftpd/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, openssl }:
+{ stdenv, fetchurl, openssl, fetchpatch }:
 
 stdenv.mkDerivation rec {
   name = "pure-ftpd-1.0.49";
@@ -8,6 +8,19 @@ stdenv.mkDerivation rec {
     sha256 = "19cjr262n6h560fi9nm7l1srwf93k34bp8dp1c6gh90bqxcg8yvn";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2020-9274.patch";
+      url = "https://github.com/jedisct1/pure-ftpd/commit/8d0d42542e2cb7a56d645fbe4d0ef436e38bcefa.patch";
+      sha256 = "1yd84p6bd4rf21hg3kqpi2a02cac6dz5ag4xx3c2dl5vbzhr5a8k";
+    })
+    (fetchpatch {
+      name = "CVE-2020-9365.patch";
+      url = "https://github.com/jedisct1/pure-ftpd/commit/bf6fcd4935e95128cf22af5924cdc8fe5c0579da.patch";
+      sha256 = "003klx7j82qf92qr1dxg32v5r2bhhywplynd3xil1lbcd3s3mqhi";
+    })
+  ];
+
   buildInputs = [ openssl ];
 
   configureFlags = [ "--with-tls" ];
diff --git a/nixpkgs/pkgs/servers/gemini/molly-brown/default.nix b/nixpkgs/pkgs/servers/gemini/molly-brown/default.nix
new file mode 100644
index 000000000000..216a4015ef95
--- /dev/null
+++ b/nixpkgs/pkgs/servers/gemini/molly-brown/default.nix
@@ -0,0 +1,26 @@
+{ lib, buildGoPackage, fetchgit, nixosTests }:
+
+buildGoPackage rec {
+  pname = "molly-brown";
+  version = "unstable-2020-07-06";
+  rev = "2e510328ef1737c67641c588095e4628e3dfa8d3";
+
+  goPackagePath = "tildegit.org/solderpunk/molly-brown";
+
+  src = fetchgit {
+    inherit rev;
+    url = "https://tildegit.org/solderpunk/molly-brown.git";
+    sha256 = "0c2pmkcs5a04h2vwzbhj6rg47mb9wcmkh22i56kx7clh51wbbvc4";
+  };
+
+  goDeps = ./deps.nix;
+
+  passthru.tests.basic = nixosTests.molly-brown;
+
+  meta = with lib; {
+    description = "Full-featured Gemini server";
+    homepage = "https://tildegit.org/solderpunk/molly-brown";
+    maintainers = with maintainers; [ ehmry ];
+    license = licenses.bsd2;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/gemini/molly-brown/deps.nix b/nixpkgs/pkgs/servers/gemini/molly-brown/deps.nix
new file mode 100644
index 000000000000..95427e8f7907
--- /dev/null
+++ b/nixpkgs/pkgs/servers/gemini/molly-brown/deps.nix
@@ -0,0 +1,12 @@
+# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
+[
+  {
+    goPackagePath = "github.com/BurntSushi/toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/BurntSushi/toml";
+      rev = "3012a1dbe2e4bd1391d42b32f0577cb7bbc7f005";
+      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/servers/gobetween/default.nix b/nixpkgs/pkgs/servers/gobetween/default.nix
index 2b474d818ad2..9f28a89f51eb 100644
--- a/nixpkgs/pkgs/servers/gobetween/default.nix
+++ b/nixpkgs/pkgs/servers/gobetween/default.nix
@@ -1,38 +1,25 @@
-{ rsync, buildGoModule, fetchFromGitHub, lib, runCommand, enableStatic ? false }:
+{ buildGoModule, fetchFromGitHub, lib, enableStatic ? false }:
 
 buildGoModule rec {
   pname = "gobetween";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = "yyyar";
     repo = "gobetween";
     rev = version;
-    sha256 = "f01593509ccece063acd47002c4fc52261fbbbcdbf14b088d813b7d8e38fcca8";
+    sha256 = "0bxf89l53sqan9qq23rwawjkcanv9p61sw56zjqhyx78f0bh0zbc";
   };
-  patches = [ ./gomod.patch ];
 
-  deleteVendor = true;
+  patches = [
+    ./gomod.patch
+  ];
 
   buildPhase = ''
     make -e build${lib.optionalString enableStatic "-static"}
   '';
 
-  lxd = fetchFromGitHub {
-    owner = "lxc";
-    repo = "lxd";
-    rev = "41efd98813f3b42f1752ff6c2c7569a054924623";
-    sha256 = "02vnvjjkzl7b0i2cn03f1lb3jgj5rd3wdkii4pqi9bvmhzszg0l2";
-  };
-
-  overrideModAttrs = (_: {
-      postBuild = ''
-      rm -r vendor/github.com/lxc/lxd
-      cp -r --reflink=auto ${lxd} vendor/github.com/lxc/lxd
-      '';
-    });
-
-  vendorSha256 = "1pd0zrjwpw6yv2s86a818yy2ma2fkazd3sb2h6zfp9mvyixgxgri";
+  vendorSha256 = "1nkni9ikpc0wngh5v0qmlpn5s9v85lb2ih22f3h3lih7nc29yv87";
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/servers/gobetween/gomod.patch b/nixpkgs/pkgs/servers/gobetween/gomod.patch
index 98181e3fe794..2f0fb408061f 100644
--- a/nixpkgs/pkgs/servers/gobetween/gomod.patch
+++ b/nixpkgs/pkgs/servers/gobetween/gomod.patch
@@ -1,21 +1,13 @@
-diff --git a/go.mod b/go.mod
-index 536631a..f91e862 100644
---- a/go.mod
-+++ b/go.mod
-@@ -7,7 +7,7 @@ require (
- 	github.com/burntsushi/toml v0.3.1
- 	github.com/elgs/gojq v0.0.0-20160421194050-81fa9a608a13
- 	github.com/elgs/gosplitargs v0.0.0-20161028071935-a491c5eeb3c8 // indirect
--	github.com/flosch/pongo2 v0.0.0-20181225140029-79872a7b2769 // indirect
-+	github.com/flosch/pongo2 v0.0.0-20190707114632-bbf5a6c351f4 // indirect
- 	github.com/fsouza/go-dockerclient v1.3.6
- 	github.com/gin-contrib/cors v0.0.0-20190301062745-f9e10995c85a
- 	github.com/gin-gonic/gin v1.3.0
-@@ -20,7 +20,6 @@ require (
+diff --git a/src/go.mod b/src/go.mod
+index 3242342..795c306 100644
+--- a/src/go.mod
++++ b/src/go.mod
+@@ -28,7 +28,7 @@ require (
  	github.com/juju/go4 v0.0.0-20160222163258-40d72ab9641a // indirect
  	github.com/juju/persistent-cookiejar v0.0.0-20171026135701-d5e5a8405ef9 // indirect
- 	github.com/juju/schema v0.0.0-20181210140654-64a6158e9071 // indirect
--	github.com/juju/utils v0.0.0-20180820210520-bf9cc5bdd62d // indirect
- 	github.com/juju/webbrowser v0.0.0-20180907093207-efb9432b2bcb // indirect
- 	github.com/julienschmidt/httprouter v1.2.0 // indirect
- 	github.com/lxc/lxd v0.0.0-20190314233831-41efd98813f3
+ 	github.com/juju/webbrowser v1.0.0 // indirect
+-	github.com/lxc/lxd v0.0.0-20200706202337-814c96fcec74
++	github.com/lxc/lxd v0.0.0-20200727014606-0d408e8e8ebb
+ 	github.com/mattn/go-colorable v0.1.7 // indirect
+ 	github.com/miekg/dns v1.1.30
+ 	github.com/mitchellh/go-testing-interface v1.14.0 // indirect
diff --git a/nixpkgs/pkgs/servers/gonic/default.nix b/nixpkgs/pkgs/servers/gonic/default.nix
new file mode 100644
index 000000000000..343b3d2b19d1
--- /dev/null
+++ b/nixpkgs/pkgs/servers/gonic/default.nix
@@ -0,0 +1,59 @@
+{ lib, buildGoPackage, fetchFromGitHub
+, pkg-config, taglib, alsaLib
+
+# Disable on-the-fly transcoding,
+# removing the dependency on ffmpeg.
+# The server will (as of 0.11.0) gracefully fall back
+# to the original file, but if transcoding is configured
+# that takes a while. So best to disable all transcoding
+# in the configuration if you disable transcodingSupport.
+, transcodingSupport ? true, ffmpeg
+
+# udpater
+, writers, vgo2nix }:
+
+assert transcodingSupport -> ffmpeg != null;
+
+let
+  # update these, then run `updateScript` to update dependencies
+  version = "0.11.0";
+  rev = "056fb54a703ef5b5194ce112cbbdd8fb53dbb1ea";
+  sha256 = "0hd794wrz29nh89lfnq67w1rc23sg085rqf1agwlgpqycns2djl9";
+
+  src = fetchFromGitHub {
+    owner = "sentriz";
+    repo = "gonic";
+    inherit rev sha256;
+  };
+
+in
+buildGoPackage {
+  pname = "gonic-${version}";
+  inherit version src;
+  goPackagePath = "go.senan.xyz/gonic";
+  goDeps = ./deps.nix;
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ taglib alsaLib ];
+
+  postPatch = lib.optionalString transcodingSupport ''
+    substituteInPlace \
+       server/encode/encode.go \
+      --replace \
+        'ffmpegPath = "/usr/bin/ffmpeg"' \
+        'ffmpegPath = "${ffmpeg}/bin/ffmpeg"' \
+  '';
+
+  passthru.updateScript = writers.writeDash "update-gonic" ''
+    ${vgo2nix}/bin/vgo2nix \
+      -dir ${src} \
+      -outfile ${lib.escapeShellArg (toString ./deps.nix)}
+  '';
+
+  meta = {
+    homepage = "https://github.com/sentriz/gonic";
+    description = "Music streaming server / subsonic server API implementation";
+    license = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [ Profpatsch ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/gonic/deps.nix b/nixpkgs/pkgs/servers/gonic/deps.nix
new file mode 100644
index 000000000000..71b2f83a0e01
--- /dev/null
+++ b/nixpkgs/pkgs/servers/gonic/deps.nix
@@ -0,0 +1,795 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+  {
+    goPackagePath = "cloud.google.com/go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/googleapis/google-cloud-go";
+      rev = "v0.33.1";
+      sha256 = "1xs487sqajpvnhlwp130sfaajyinhxxq2yvmv2533mwf0zhcpz6v";
+    };
+  }
+  {
+    goPackagePath = "dmitri.shuralyov.com/gpu/mtl";
+    fetch = {
+      type = "git";
+      url = "https://dmitri.shuralyov.com/gpu/mtl";
+      rev = "666a987793e9";
+      sha256 = "1isd03hgiwcf2ld1rlp0plrnfz7r4i7c5q4kb6hkcd22axnmrv0z";
+    };
+  }
+  {
+    goPackagePath = "github.com/BurntSushi/toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/BurntSushi/toml";
+      rev = "v0.3.1";
+      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
+    };
+  }
+  {
+    goPackagePath = "github.com/BurntSushi/xgb";
+    fetch = {
+      type = "git";
+      url = "https://github.com/BurntSushi/xgb";
+      rev = "27f122750802";
+      sha256 = "18lp2x8f5bljvlz0r7xn744f0c9rywjsb9ifiszqqdcpwhsa0kvj";
+    };
+  }
+  {
+    goPackagePath = "github.com/Masterminds/goutils";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Masterminds/goutils";
+      rev = "v1.1.0";
+      sha256 = "180px47gj936qyk5bkv5mbbgiil9abdjq6kwkf7sq70vyi9mcfiq";
+    };
+  }
+  {
+    goPackagePath = "github.com/Masterminds/semver";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Masterminds/semver";
+      rev = "v1.5.0";
+      sha256 = "1i169xscsxsh8lsw8bz2apnsqixld37xdnfh36i30xy5wnf0iwfx";
+    };
+  }
+  {
+    goPackagePath = "github.com/Masterminds/sprig";
+    fetch = {
+      type = "git";
+      url = "https://github.com/Masterminds/sprig";
+      rev = "v2.22.0";
+      sha256 = "09dzwhj4zh3p6f1jhyic16n4qdnvpamz7hyk9fycpm4b1jfq63gd";
+    };
+  }
+  {
+    goPackagePath = "github.com/OneOfOne/xxhash";
+    fetch = {
+      type = "git";
+      url = "https://github.com/OneOfOne/xxhash";
+      rev = "v1.2.2";
+      sha256 = "1mjfhrwhvxa48rycjnqpqzm521i38h1hdyz6pdwmhd7xb8j6gwi6";
+    };
+  }
+  {
+    goPackagePath = "github.com/cespare/xxhash";
+    fetch = {
+      type = "git";
+      url = "https://github.com/cespare/xxhash";
+      rev = "v1.1.0";
+      sha256 = "1qyzlcdcayavfazvi03izx83fvip8h36kis44zr2sg7xf6sx6l4x";
+    };
+  }
+  {
+    goPackagePath = "github.com/d4l3k/messagediff";
+    fetch = {
+      type = "git";
+      url = "https://github.com/d4l3k/messagediff";
+      rev = "7e0a312ae40b";
+      sha256 = "1ab2gm7ys33rs84fjzqcb7b4jy2rr1a0w5a9kakfaf80wd0rjrah";
+    };
+  }
+  {
+    goPackagePath = "github.com/davecgh/go-spew";
+    fetch = {
+      type = "git";
+      url = "https://github.com/davecgh/go-spew";
+      rev = "v1.1.1";
+      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
+    };
+  }
+  {
+    goPackagePath = "github.com/denisenkom/go-mssqldb";
+    fetch = {
+      type = "git";
+      url = "https://github.com/denisenkom/go-mssqldb";
+      rev = "732737034ffd";
+      sha256 = "0k1inn33lbfj97d5ir3k5gffjcpb39kairq91jfrz6pnbq0w3zlf";
+    };
+  }
+  {
+    goPackagePath = "github.com/disintegration/imaging";
+    fetch = {
+      type = "git";
+      url = "https://github.com/disintegration/imaging";
+      rev = "v1.6.2";
+      sha256 = "1sl201nmk601h0aii4234sycn4v2b0rjxf8yhrnik4yjzd68q9x5";
+    };
+  }
+  {
+    goPackagePath = "github.com/dustin/go-humanize";
+    fetch = {
+      type = "git";
+      url = "https://github.com/dustin/go-humanize";
+      rev = "v1.0.0";
+      sha256 = "1kqf1kavdyvjk7f8kx62pnm7fbypn9z1vbf8v2qdh3y7z7a0cbl3";
+    };
+  }
+  {
+    goPackagePath = "github.com/erikstmartin/go-testdb";
+    fetch = {
+      type = "git";
+      url = "https://github.com/erikstmartin/go-testdb";
+      rev = "8d10e4a1bae5";
+      sha256 = "1fhrqcpv8x74qwxx9gpnhgqbz5wkp2bnsq92w418l1fnrgh4ppmq";
+    };
+  }
+  {
+    goPackagePath = "github.com/faiface/beep";
+    fetch = {
+      type = "git";
+      url = "https://github.com/faiface/beep";
+      rev = "v1.0.2";
+      sha256 = "07j0k0ynw1q8f7fzsan4kvfmdlda11583sck66hxfsk9zbp8vpxv";
+    };
+  }
+  {
+    goPackagePath = "github.com/gdamore/encoding";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gdamore/encoding";
+      rev = "v1.0.0";
+      sha256 = "1vmm5zll92i2fm4ajqx0gyx0p9j36496x5nabi3y0x7h0inv0pk9";
+    };
+  }
+  {
+    goPackagePath = "github.com/gdamore/tcell";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gdamore/tcell";
+      rev = "v1.1.1";
+      sha256 = "0il2nnxp2cqiy73m49215dnf9in3vd25ji8qxbmq87c5qy7i1q9d";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-audio/audio";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-audio/audio";
+      rev = "v1.0.0";
+      sha256 = "05ai13yc8wwk2zlk9br62lh4z9hs1q685l7ij618bknf449vjsf3";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-audio/riff";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-audio/riff";
+      rev = "v1.0.0";
+      sha256 = "0wg3p3gsad1rql7bzx7pwwsyd00a5gdb8f1h7zfr7hlqja5skwb4";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-audio/wav";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-audio/wav";
+      rev = "v1.0.0";
+      sha256 = "058mgc5ahjibnsqayk3k75l04gg9mv27bpmj79jyrya3kaczpamk";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-gl/glfw";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-gl/glfw";
+      rev = "6f7a984d4dc4";
+      sha256 = "1nyv7h08qf4dp8w9pmcnrc6vv9bkwj8fil6pz0mkbss5hf4i8xcq";
+    };
+  }
+  {
+    goPackagePath = "github.com/go-sql-driver/mysql";
+    fetch = {
+      type = "git";
+      url = "https://github.com/go-sql-driver/mysql";
+      rev = "v1.5.0";
+      sha256 = "11x0m9yf3kdnf6981182r824psgxwfaqhn3x3in4yiidp0w0hk3v";
+    };
+  }
+  {
+    goPackagePath = "github.com/gofrs/uuid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gofrs/uuid";
+      rev = "v3.2.0";
+      sha256 = "1q63mp7bznhfgyw133c0wc0hpcj1cq9bcf7w1f8r6inkcrils1fz";
+    };
+  }
+  {
+    goPackagePath = "github.com/golang-sql/civil";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang-sql/civil";
+      rev = "cb61b32ac6fe";
+      sha256 = "0yadfbvi0w06lg3sxw0daji02jxd3vv2in26yfmwpl4vd4vm9zay";
+    };
+  }
+  {
+    goPackagePath = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev = "v1.2.0";
+      sha256 = "0kf4b59rcbb1cchfny2dm9jyznp8ri2hsb14n8iak1q8986xa0ab";
+    };
+  }
+  {
+    goPackagePath = "github.com/google/go-cmp";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/go-cmp";
+      rev = "v0.2.0";
+      sha256 = "1fbv0x27k9sn8svafc0hjwsnckk864lv4yi7bvzrxvmd3d5hskds";
+    };
+  }
+  {
+    goPackagePath = "github.com/google/uuid";
+    fetch = {
+      type = "git";
+      url = "https://github.com/google/uuid";
+      rev = "v1.1.1";
+      sha256 = "0hfxcf9frkb57k6q0rdkrmnfs78ms21r1qfk9fhlqga2yh5xg8zb";
+    };
+  }
+  {
+    goPackagePath = "github.com/gopherjs/gopherjs";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gopherjs/gopherjs";
+      rev = "0210a2f0f73c";
+      sha256 = "1n80xjfc1dkxs8h8mkpw83n89wi5n7hzc3rxhwjs76rkxpq3rc9j";
+    };
+  }
+  {
+    goPackagePath = "github.com/gopherjs/gopherwasm";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gopherjs/gopherwasm";
+      rev = "v1.0.0";
+      sha256 = "0q20il68gqnrc0s8jndc8mw1ynln60a4xy1lrqakzmp8whyilwri";
+    };
+  }
+  {
+    goPackagePath = "github.com/gorilla/context";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/context";
+      rev = "v1.1.1";
+      sha256 = "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4";
+    };
+  }
+  {
+    goPackagePath = "github.com/gorilla/mux";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/mux";
+      rev = "v1.7.4";
+      sha256 = "1d0sy1paa055ic84sp3766s9pa24q008hf77dc842vrgvn8p3wmh";
+    };
+  }
+  {
+    goPackagePath = "github.com/gorilla/securecookie";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/securecookie";
+      rev = "v1.1.1";
+      sha256 = "16bqimpxs9vj5n59vm04y04v665l7jh0sddxn787pfafyxcmh410";
+    };
+  }
+  {
+    goPackagePath = "github.com/gorilla/sessions";
+    fetch = {
+      type = "git";
+      url = "https://github.com/gorilla/sessions";
+      rev = "v1.2.0";
+      sha256 = "1kz6ydgp7vamhl2ak02hvzp2yv1dbfbwzsdxn6271lyzzdvz4pp1";
+    };
+  }
+  {
+    goPackagePath = "github.com/hajimehoshi/go-mp3";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hajimehoshi/go-mp3";
+      rev = "v0.2.1";
+      sha256 = "0dxqpyj4xbq570if25g5wqbbp6frhq733h2ny3b2z3z8hw4q7vgg";
+    };
+  }
+  {
+    goPackagePath = "github.com/hajimehoshi/oto";
+    fetch = {
+      type = "git";
+      url = "https://github.com/hajimehoshi/oto";
+      rev = "v0.6.1";
+      sha256 = "1k3c0y8gdxn2c8fqc8rbjrn7nbbbhii3krma267jg01qq2zpsm8h";
+    };
+  }
+  {
+    goPackagePath = "github.com/huandu/xstrings";
+    fetch = {
+      type = "git";
+      url = "https://github.com/huandu/xstrings";
+      rev = "v1.3.1";
+      sha256 = "0j5vsyjxclk7g7vfr3mfybbimywf3khr8yx07dsdcm1zjwb092iy";
+    };
+  }
+  {
+    goPackagePath = "github.com/icza/bitio";
+    fetch = {
+      type = "git";
+      url = "https://github.com/icza/bitio";
+      rev = "v1.0.0";
+      sha256 = "1c4ps4a9khx2bqp6v0p7b7l0s0gly3vj8rkh816vznj4mdlgk76w";
+    };
+  }
+  {
+    goPackagePath = "github.com/icza/mighty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/icza/mighty";
+      rev = "cfd07d671de6";
+      sha256 = "09prb460wqg72s753g3a9rm0ph60hp83najj0lx9ifp1lixnfb3d";
+    };
+  }
+  {
+    goPackagePath = "github.com/imdario/mergo";
+    fetch = {
+      type = "git";
+      url = "https://github.com/imdario/mergo";
+      rev = "v0.3.9";
+      sha256 = "042v7bzx575isa4pr868hrlv085qxpg8qi4m04jnkh5vbq4hvs90";
+    };
+  }
+  {
+    goPackagePath = "github.com/jfreymuth/oggvorbis";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jfreymuth/oggvorbis";
+      rev = "v1.0.0";
+      sha256 = "0c0r63sp4q8bl8vvgayr98m0fsscl1f65cd2h7i4cr1awg6r6l6a";
+    };
+  }
+  {
+    goPackagePath = "github.com/jfreymuth/vorbis";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jfreymuth/vorbis";
+      rev = "v1.0.0";
+      sha256 = "16gl1lwagiqw6ib48zsl4zpv1dmykz7fzhxc65vpcdipx2byhi7a";
+    };
+  }
+  {
+    goPackagePath = "github.com/jinzhu/gorm";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jinzhu/gorm";
+      rev = "v1.9.12";
+      sha256 = "06d25jvrqvp1bd4k7mh9gsk414d2vhpr049qvj46yx21hyv9d6v3";
+    };
+  }
+  {
+    goPackagePath = "github.com/jinzhu/inflection";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jinzhu/inflection";
+      rev = "v1.0.0";
+      sha256 = "165i20d11s03771gi43skl66salxj36212r25fbs0cgr4qgfj7fy";
+    };
+  }
+  {
+    goPackagePath = "github.com/jinzhu/now";
+    fetch = {
+      type = "git";
+      url = "https://github.com/jinzhu/now";
+      rev = "v1.0.1";
+      sha256 = "1b4gyw01b3rq3js43n0wqb1k2iymb2mnpdv7vapjs0lsbm4g5q1p";
+    };
+  }
+  {
+    goPackagePath = "github.com/joho/godotenv";
+    fetch = {
+      type = "git";
+      url = "https://github.com/joho/godotenv";
+      rev = "v1.3.0";
+      sha256 = "0ri8if0pc3x6jg4c3i8wr58xyfpxkwmcjk3rp8gb398a1aa3gpjm";
+    };
+  }
+  {
+    goPackagePath = "github.com/josephburnett/jd";
+    fetch = {
+      type = "git";
+      url = "https://github.com/josephburnett/jd";
+      rev = "aa1a7c66b42f";
+      sha256 = "0yjdnifwxhdgzcw4jkal3f69sgcjrdiscd5wg45d83zfrsqbb34c";
+    };
+  }
+  {
+    goPackagePath = "github.com/karrick/godirwalk";
+    fetch = {
+      type = "git";
+      url = "https://github.com/karrick/godirwalk";
+      rev = "v1.15.6";
+      sha256 = "0i8202kcihz2hvqp7zzbla5p9x2ljpbjg5zy5dy3x0capz0ina3c";
+    };
+  }
+  {
+    goPackagePath = "github.com/kr/pretty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kr/pretty";
+      rev = "v0.1.0";
+      sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp";
+    };
+  }
+  {
+    goPackagePath = "github.com/kr/pty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kr/pty";
+      rev = "v1.1.1";
+      sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6";
+    };
+  }
+  {
+    goPackagePath = "github.com/kr/text";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kr/text";
+      rev = "v0.1.0";
+      sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1";
+    };
+  }
+  {
+    goPackagePath = "github.com/lib/pq";
+    fetch = {
+      type = "git";
+      url = "https://github.com/lib/pq";
+      rev = "v1.3.0";
+      sha256 = "0bfravwqyj7z6v4lhsibbmgp7lajdydy4ij6c81g8hv0067x2mqw";
+    };
+  }
+  {
+    goPackagePath = "github.com/lucasb-eyer/go-colorful";
+    fetch = {
+      type = "git";
+      url = "https://github.com/lucasb-eyer/go-colorful";
+      rev = "12d3b2882a08";
+      sha256 = "1w95axfn1a6rz31xrks77ingr9mdkqyr7mh0glv664kz1wg2h0gw";
+    };
+  }
+  {
+    goPackagePath = "github.com/mattn/go-runewidth";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-runewidth";
+      rev = "v0.0.4";
+      sha256 = "00b3ssm7wiqln3k54z2wcnxr3k3c7m1ybyhb9h8ixzbzspld0qzs";
+    };
+  }
+  {
+    goPackagePath = "github.com/mattn/go-sqlite3";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mattn/go-sqlite3";
+      rev = "v2.0.3";
+      sha256 = "0gn4dgvwmbf8gmhn5nzpwixc39g8mkp3n8lhyjgvhvsl72llcdzv";
+    };
+  }
+  {
+    goPackagePath = "github.com/mewkiz/flac";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mewkiz/flac";
+      rev = "v1.0.6";
+      sha256 = "19083pfc6wxkb45s61di9a542jslcgkzif5z3qjymy085w4aizzx";
+    };
+  }
+  {
+    goPackagePath = "github.com/mewkiz/pkg";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mewkiz/pkg";
+      rev = "f6b5e26764c3";
+      sha256 = "0djxw953sp2cwqybjxsfrsfma5yjn8n1l19g8yrd629cb6r1ghq2";
+    };
+  }
+  {
+    goPackagePath = "github.com/mitchellh/copystructure";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/copystructure";
+      rev = "v1.0.0";
+      sha256 = "05njg92w1088v4yl0js0zdrpfq6k37i9j14mxkr3p90p5yd9rrrr";
+    };
+  }
+  {
+    goPackagePath = "github.com/mitchellh/go-wordwrap";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/go-wordwrap";
+      rev = "v1.0.0";
+      sha256 = "1jffbwcr3nnq6c12c5856bwzv2nxjzqk3jwgvxkwi1xhpd2by0bf";
+    };
+  }
+  {
+    goPackagePath = "github.com/mitchellh/reflectwalk";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mitchellh/reflectwalk";
+      rev = "v1.0.1";
+      sha256 = "0pa6a3nhzwv5s5yqcmsmsfhdp5ggxsg2wa86f3akawxrhrkjarnx";
+    };
+  }
+  {
+    goPackagePath = "github.com/nicksellen/audiotags";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nicksellen/audiotags";
+      rev = "94015fa599bd";
+      sha256 = "1817vw2j1lnk4y3925cszmkvwzsdcmgccrcdqyq39jqpwawl2c0j";
+    };
+  }
+  {
+    goPackagePath = "github.com/oklog/run";
+    fetch = {
+      type = "git";
+      url = "https://github.com/oklog/run";
+      rev = "v1.1.0";
+      sha256 = "0r55p3kgdkgw55i33lqvvvl60mjp92mhd1170m980sw98z9150jk";
+    };
+  }
+  {
+    goPackagePath = "github.com/oxtoacart/bpool";
+    fetch = {
+      type = "git";
+      url = "https://github.com/oxtoacart/bpool";
+      rev = "03653db5a59c";
+      sha256 = "1crdgm5w6kvcnvdglrrnrfkh5h60ldafwvrv00q97lz3790kgb15";
+    };
+  }
+  {
+    goPackagePath = "github.com/pelletier/go-toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pelletier/go-toml";
+      rev = "v1.6.0";
+      sha256 = "0l2830pi64fg0bdsyd5afkbw0p7879pppzdqqk3c7vjrjfmi5xbq";
+    };
+  }
+  {
+    goPackagePath = "github.com/peterbourgon/ff";
+    fetch = {
+      type = "git";
+      url = "https://github.com/peterbourgon/ff";
+      rev = "v1.7.0";
+      sha256 = "17msscfi4pfdih1w3sq0wsw6246a30fckga9kvjpzwva6jni0466";
+    };
+  }
+  {
+    goPackagePath = "github.com/pkg/errors";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pkg/errors";
+      rev = "v0.9.1";
+      sha256 = "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq";
+    };
+  }
+  {
+    goPackagePath = "github.com/pmezard/go-difflib";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pmezard/go-difflib";
+      rev = "v1.0.0";
+      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+    };
+  }
+  {
+    goPackagePath = "github.com/rainycape/unidecode";
+    fetch = {
+      type = "git";
+      url = "https://github.com/rainycape/unidecode";
+      rev = "cb7f23ec59be";
+      sha256 = "1wvzdijd640blwkgmw6h09frkfa04kcpdq87n2zh2ymj1dzla5v5";
+    };
+  }
+  {
+    goPackagePath = "github.com/spaolacci/murmur3";
+    fetch = {
+      type = "git";
+      url = "https://github.com/spaolacci/murmur3";
+      rev = "f09979ecbc72";
+      sha256 = "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25";
+    };
+  }
+  {
+    goPackagePath = "github.com/stretchr/objx";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/objx";
+      rev = "v0.1.0";
+      sha256 = "19ynspzjdynbi85xw06mh8ad5j0qa1vryvxjgvbnyrr8rbm4vd8w";
+    };
+  }
+  {
+    goPackagePath = "github.com/stretchr/testify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/testify";
+      rev = "v1.3.0";
+      sha256 = "0wjchp2c8xbgcbbq32w3kvblk6q6yn533g78nxl6iskq6y95lxsy";
+    };
+  }
+  {
+    goPackagePath = "github.com/wader/gormstore";
+    fetch = {
+      type = "git";
+      url = "https://github.com/wader/gormstore";
+      rev = "65a111a20c23";
+      sha256 = "0dnylv4gdqsizll7b07nivv6chanqm0014yhqg6gcjccns6bl9bm";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev = "06a226fb4e37";
+      sha256 = "0fdig6jx81g7a44dnxggibl909wchsj4nakmmhhz7db36sl0d7m5";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/exp";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/exp";
+      rev = "00229845015e";
+      sha256 = "0b0f05vbxzbgaaawxqns2m9qbvkfam1ylq8c8yhv7h6jnk2afaff";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/image";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/image";
+      rev = "33d19683fad8";
+      sha256 = "16qw6s9qlv84x98s9dib90y97x8bli3msaqw8kz498dbnbyx59zk";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/mobile";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/mobile";
+      rev = "4c31acba0007";
+      sha256 = "0k42pn6fq886k9hn85wbgg4h4y1myj7niw0746sn50zfbrmy3s2c";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/mod";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/mod";
+      rev = "331c550502dd";
+      sha256 = "0942gzs6mlsjal4drjmm8gr54pj1cdhsl9mnj3ygm200mf3fj6pi";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev = "3b0461eec859";
+      sha256 = "0l00c8l0a8xnv6qdpwfzxxsr58jggacgzdrwiprrfx2xqm37b6d5";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sync";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sync";
+      rev = "112230192c58";
+      sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "fe76b779f299";
+      sha256 = "0g6j3n9fdv1a2lp2i8wbaaya85yrbfx3ns6iq1s7l2ayhxxmgh6b";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev = "v0.3.0";
+      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev = "b753a1ba74fa";
+      sha256 = "1xyzswbz9cx0bns2n75fw9pbm82dk9dj2il9iknmryyxvci9n5zv";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/xerrors";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/xerrors";
+      rev = "1b5146add898";
+      sha256 = "0w2akj91krxjag0xdhsg78470888nicc5ismc2ap9jqpss6v1zih";
+    };
+  }
+  {
+    goPackagePath = "google.golang.org/appengine";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/appengine";
+      rev = "v1.4.0";
+      sha256 = "06zl7w4sxgdq2pl94wy9ncii6h0z3szl4xpqds0sv3b3wbdlhbnn";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/DATA-DOG/go-sqlmock.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/DATA-DOG/go-sqlmock.v1";
+      rev = "v1.3.0";
+      sha256 = "1684d6ima6638xwvr743kd7j5mpqq0vspcw9ai67bnb7m722qqqv";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/check.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/check.v1";
+      rev = "788fd7840127";
+      sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/gormigrate.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/gormigrate.v1";
+      rev = "v1.6.0";
+      sha256 = "03304vh58i5gxchrxy2v91bjdfgp7849jarmlanz3gaa2r574fmf";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/yaml.v2";
+      rev = "v2.2.4";
+      sha256 = "11bwj757wi8kdrcnlgfqb8vv2d2xdhlghmyagd19i62khrkchsg2";
+    };
+  }
+]
diff --git a/nixpkgs/pkgs/servers/gortr/default.nix b/nixpkgs/pkgs/servers/gortr/default.nix
index c0534d0f890b..2af795b2ca91 100644
--- a/nixpkgs/pkgs/servers/gortr/default.nix
+++ b/nixpkgs/pkgs/servers/gortr/default.nix
@@ -2,21 +2,22 @@
 
 buildGoModule rec {
   pname = "gortr";
-  version = "0.14.4";
+  version = "0.14.6";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1srwlpl8g0pzrxb2nyp6xvg10cidm2i6qb9m08k2g296hfgdqqq3";
+    sha256 = "1z1z4xl39qmd7df1zb2wsd2ycxr4aa9g23sfgp3ws4lhy5d6hyxw";
   };
   vendorSha256 = "1nwrzbpqycr4ixk8a90pgaxcwakv5nlfnql6hmcc518qrva198wp";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "The RPKI-to-Router server used at Cloudflare";
     homepage = "https://github.com/cloudflare/gortr/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ petabyteboy ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/gotify/default.nix b/nixpkgs/pkgs/servers/gotify/default.nix
index 5d305c1e4122..924625ebd783 100644
--- a/nixpkgs/pkgs/servers/gotify/default.nix
+++ b/nixpkgs/pkgs/servers/gotify/default.nix
@@ -3,7 +3,6 @@
 , lib
 , fetchFromGitHub
 , buildGoModule
-, packr
 , sqlite
 , callPackage
 }:
@@ -23,19 +22,14 @@ buildGoModule rec {
 
   vendorSha256 = import ./vendor-sha.nix;
 
-  postPatch = ''
-    substituteInPlace app.go \
-      --replace 'Version = "unknown"' 'Version = "${version}"'
-  '';
+  doCheck = false;
 
   buildInputs = [ sqlite ];
 
-  nativeBuildInputs = [ packr ];
-
   ui = callPackage ./ui.nix { };
 
   preBuild = ''
-    cp -r ${ui}/libexec/gotify-ui/deps/gotify-ui/build ui/build && packr
+    cp -r ${ui}/libexec/gotify-ui/deps/gotify-ui/build ui/build && go run hack/packr/packr.go
   '';
 
   passthru = {
@@ -47,7 +41,7 @@ buildGoModule rec {
   subPackages = [ "." ];
 
   buildFlagsArray = [
-    "-ldflags='-X main.Version=${version} -X main.Mode=prod'"
+    "-ldflags=-X main.Version=${version} -X main.Mode=prod"
   ];
 
   meta = with stdenv.lib; {
@@ -55,7 +49,6 @@ buildGoModule rec {
     homepage = "https://gotify.net";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
-    platforms = platforms.all;
   };
 
 }
diff --git a/nixpkgs/pkgs/servers/gotify/package.json b/nixpkgs/pkgs/servers/gotify/package.json
index 7e8defe38588..6224d533010d 100644
--- a/nixpkgs/pkgs/servers/gotify/package.json
+++ b/nixpkgs/pkgs/servers/gotify/package.json
@@ -5,24 +5,24 @@
   "homepage": ".",
   "proxy": "http://localhost:80",
   "dependencies": {
-    "@material-ui/core": "^4.9.5",
+    "@material-ui/core": "^4.11.0",
     "@material-ui/icons": "^4.9.1",
-    "axios": "^0.19.0",
-    "codemirror": "^5.43.0",
-    "detect-browser": "^5.1.0",
-    "js-base64": "^2.5.1",
-    "mobx": "^5.1.1",
-    "mobx-react": "^6.2.2",
-    "mobx-utils": "^5.0.2",
+    "axios": "^0.20.0",
+    "codemirror": "^5.57.0",
+    "detect-browser": "^5.1.1",
+    "js-base64": "^3.4.5",
+    "mobx": "^5.15.6",
+    "mobx-react": "^6.3.0",
+    "mobx-utils": "^5.6.1",
     "notifyjs": "^3.0.0",
     "prop-types": "^15.6.2",
     "react": "^16.4.2",
-    "react-codemirror2": "^7.1.0",
+    "react-codemirror2": "^7.2.1",
     "react-dom": "^16.4.2",
     "react-infinite": "^0.13.0",
     "react-markdown": "^4.0.6",
-    "react-router": "^5.1.2",
-    "react-router-dom": "^5.1.2",
+    "react-router": "^5.2.0",
+    "react-router-dom": "^5.2.0",
     "react-timeago": "^4.1.9",
     "remove-markdown": "^0.3.0",
     "typeface-roboto": "0.0.75"
@@ -32,36 +32,41 @@
     "build": "react-scripts build",
     "test": "react-scripts test --env=node",
     "eject": "react-scripts eject",
-    "lint": "tslint --project .",
-    "lintfix": "tslint --fix --project .",
+    "lint": "eslint \"src/*.{ts,tsx}\"",
     "format": "prettier \"src/**/*.{ts,tsx}\" --write",
     "testformat": "prettier \"src/**/*.{ts,tsx}\" --list-different"
   },
   "devDependencies": {
-    "@types/codemirror": "0.0.91",
+    "@types/codemirror": "0.0.98",
     "@types/detect-browser": "^4.0.0",
     "@types/get-port": "^4.0.0",
-    "@types/jest": "^25.2.1",
-    "@types/js-base64": "^2.3.1",
-    "@types/node": "^13.13.5",
-    "@types/notifyjs": "^3.0.0",
-    "@types/puppeteer": "^2.0.1",
-    "@types/react": "^16.4.11",
-    "@types/react-dom": "^16.0.7",
-    "@types/react-infinite": "0.0.34",
+    "@types/jest": "^26.0.13",
+    "@types/js-base64": "^3.0.0",
+    "@types/node": "^14.10.1",
+    "@types/notifyjs": "^3.0.2",
+    "@types/puppeteer": "^3.0.2",
+    "@types/react": "^16.9.49",
+    "@types/react-dom": "^16.9.8",
+    "@types/react-infinite": "0.0.35",
     "@types/react-router-dom": "^5.1.5",
     "@types/remove-markdown": "^0.1.1",
     "@types/rimraf": "^3.0.0",
+    "@typescript-eslint/eslint-plugin": "^4.1.0",
+    "@typescript-eslint/parser": "^4.1.0",
+    "eslint-config-prettier": "^6.11.0",
+    "eslint-plugin-import": "^2.22.0",
+    "eslint-plugin-jest": "^24.0.0",
+    "eslint-plugin-prefer-arrow": "^1.2.2",
+    "eslint-plugin-react": "^7.20.6",
+    "eslint-plugin-unicorn": "^21.0.0",
     "get-port": "^5.1.1",
-    "prettier": "^2.0.5",
-    "puppeteer": "^3.0.4",
-    "react-scripts": "^3.4.1",
+    "prettier": "^2.1.1",
+    "puppeteer": "^5.3.0",
+    "react-scripts": "^3.4.3",
     "rimraf": "^3.0.2",
     "tree-kill": "^1.2.0",
-    "tslint": "^6.1.2",
-    "tslint-sonarts": "^1.7.0",
-    "typescript": "3.8.3",
-    "wait-on": "^5.0.0"
+    "typescript": "4.0.2",
+    "wait-on": "^5.2.0"
   },
   "eslintConfig": {
     "extends": "react-app"
diff --git a/nixpkgs/pkgs/servers/gotify/source-sha.nix b/nixpkgs/pkgs/servers/gotify/source-sha.nix
index ddac1b246142..8f20c05407c6 100644
--- a/nixpkgs/pkgs/servers/gotify/source-sha.nix
+++ b/nixpkgs/pkgs/servers/gotify/source-sha.nix
@@ -1 +1 @@
-"18y2kaf0v7275a0b8ab5y3qk7qwh19aqxyy0gmlflzgr2nimpmrn"
\ No newline at end of file
+"1v123j9d4psbg7pnqnc7bc9li2qyahapjbimmf0qpfxacx968gm9"
diff --git a/nixpkgs/pkgs/servers/gotify/update.sh b/nixpkgs/pkgs/servers/gotify/update.sh
index dc39a15be739..f0a40e30c913 100755
--- a/nixpkgs/pkgs/servers/gotify/update.sh
+++ b/nixpkgs/pkgs/servers/gotify/update.sh
@@ -9,11 +9,11 @@ latest_release=$(curl --silent https://api.github.com/repos/gotify/server/releas
 version=$(jq -r '.tag_name' <<<"$latest_release")
 echo got version $version
 echo \""${version#v}"\" > "$dirname/version.nix"
-printf '%s' $(nix-prefetch-git --quiet --rev ${version} https://github.com/gotify/server | jq .sha256) > $dirname/source-sha.nix
+printf '%s\n' $(nix-prefetch-git --quiet --rev ${version} https://github.com/gotify/server | jq .sha256) > $dirname/source-sha.nix
 tput setaf 1
 echo zeroing vendorSha256 in $dirname/vendor-sha.nix
 tput sgr0
-printf '"%s"' "0000000000000000000000000000000000000000000000000000" > $dirname/vendor-sha.nix
+printf '"%s"\n' "0000000000000000000000000000000000000000000000000000" > $dirname/vendor-sha.nix
 
 GOTIFY_WEB_SRC="https://raw.githubusercontent.com/gotify/server/$version"
 
@@ -32,7 +32,7 @@ echo running nix-build for gotify itself in order to get vendorSha256
 set +e
 vendorSha256="$(nix-build -A gotify-server 2>&1 | grep "got:" | cut -d':' -f3)"
 set -e
-printf '"%s"' "$vendorSha256" > $dirname/vendor-sha.nix
+printf '"%s"\n' "$vendorSha256" > $dirname/vendor-sha.nix
 tput setaf 2
 echo got vendorSha256 of: $vendorSha256
 tput sgr0
diff --git a/nixpkgs/pkgs/servers/gotify/vendor-sha.nix b/nixpkgs/pkgs/servers/gotify/vendor-sha.nix
index 0705f436316d..f9e648a957ed 100644
--- a/nixpkgs/pkgs/servers/gotify/vendor-sha.nix
+++ b/nixpkgs/pkgs/servers/gotify/vendor-sha.nix
@@ -1 +1 @@
-"1ha0zgz1n07sd3if6823fi83j7yajysjdzfbwqk9rpsi6zv3cfh3"
\ No newline at end of file
+"1in4gzmrgb6z7p5fnz33f88g5l0vki2xlxlllk5wy9icp4h3h9sd"
diff --git a/nixpkgs/pkgs/servers/gotify/version.nix b/nixpkgs/pkgs/servers/gotify/version.nix
index fdfe425152c3..0018815632b4 100644
--- a/nixpkgs/pkgs/servers/gotify/version.nix
+++ b/nixpkgs/pkgs/servers/gotify/version.nix
@@ -1 +1 @@
-"2.0.16"
+"2.0.18"
diff --git a/nixpkgs/pkgs/servers/gotify/yarndeps.nix b/nixpkgs/pkgs/servers/gotify/yarndeps.nix
index 798c2787e34e..c6631cd96069 100644
--- a/nixpkgs/pkgs/servers/gotify/yarndeps.nix
+++ b/nixpkgs/pkgs/servers/gotify/yarndeps.nix
@@ -10,11 +10,19 @@
       };
     }
     {
-      name = "_babel_compat_data___compat_data_7.9.6.tgz";
+      name = "_babel_code_frame___code_frame_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_compat_data___compat_data_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.6.tgz";
-        sha1 = "3f604c40e420131affe6f2c8052e9a275ae2049b";
+        name = "_babel_code_frame___code_frame_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz";
+        sha1 = "168da1a36e90da68ae8d49c0f1b48c7c6249213a";
+      };
+    }
+    {
+      name = "_babel_compat_data___compat_data_7.11.0.tgz";
+      path = fetchurl {
+        name = "_babel_compat_data___compat_data_7.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz";
+        sha1 = "e9f73efe09af1355b723a7f39b11bad637d7c99c";
       };
     }
     {
@@ -26,243 +34,251 @@
       };
     }
     {
-      name = "_babel_core___core_7.9.6.tgz";
+      name = "_babel_core___core_7.11.6.tgz";
       path = fetchurl {
-        name = "_babel_core___core_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.9.6.tgz";
-        sha1 = "d9aa1f580abf3b2286ef40b6904d390904c63376";
+        name = "_babel_core___core_7.11.6.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz";
+        sha1 = "3a9455dc7387ff1bac45770650bc13ba04a15651";
       };
     }
     {
-      name = "_babel_generator___generator_7.9.6.tgz";
+      name = "_babel_generator___generator_7.11.6.tgz";
       path = fetchurl {
-        name = "_babel_generator___generator_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.6.tgz";
-        sha1 = "5408c82ac5de98cda0d77d8124e99fa1f2170a43";
+        name = "_babel_generator___generator_7.11.6.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz";
+        sha1 = "b868900f81b163b4d464ea24545c61cbac4dc620";
       };
     }
     {
-      name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.8.3.tgz";
+      name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz";
-        sha1 = "60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee";
+        name = "_babel_helper_annotate_as_pure___helper_annotate_as_pure_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz";
+        sha1 = "5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3";
       };
     }
     {
-      name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.8.3.tgz";
+      name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz";
-        sha1 = "c84097a427a061ac56a1c30ebf54b7b22d241503";
+        name = "_babel_helper_builder_binary_assignment_operator_visitor___helper_builder_binary_assignment_operator_visitor_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz";
+        sha1 = "bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3";
       };
     }
     {
-      name = "_babel_helper_builder_react_jsx_experimental___helper_builder_react_jsx_experimental_7.9.5.tgz";
+      name = "_babel_helper_builder_react_jsx_experimental___helper_builder_react_jsx_experimental_7.11.5.tgz";
       path = fetchurl {
-        name = "_babel_helper_builder_react_jsx_experimental___helper_builder_react_jsx_experimental_7.9.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.5.tgz";
-        sha1 = "0b4b3e04e6123f03b404ca4dfd6528fe6bb92fe3";
+        name = "_babel_helper_builder_react_jsx_experimental___helper_builder_react_jsx_experimental_7.11.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.11.5.tgz";
+        sha1 = "4ea43dd63857b0a35cd1f1b161dc29b43414e79f";
       };
     }
     {
-      name = "_babel_helper_builder_react_jsx___helper_builder_react_jsx_7.9.0.tgz";
+      name = "_babel_helper_builder_react_jsx___helper_builder_react_jsx_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_builder_react_jsx___helper_builder_react_jsx_7.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz";
-        sha1 = "16bf391990b57732700a3278d4d9a81231ea8d32";
+        name = "_babel_helper_builder_react_jsx___helper_builder_react_jsx_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz";
+        sha1 = "8095cddbff858e6fa9c326daee54a2f2732c1d5d";
       };
     }
     {
-      name = "_babel_helper_compilation_targets___helper_compilation_targets_7.9.6.tgz";
+      name = "_babel_helper_compilation_targets___helper_compilation_targets_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_compilation_targets___helper_compilation_targets_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.9.6.tgz";
-        sha1 = "1e05b7ccc9d38d2f8b40b458b380a04dcfadd38a";
+        name = "_babel_helper_compilation_targets___helper_compilation_targets_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz";
+        sha1 = "804ae8e3f04376607cc791b9d47d540276332bd2";
       };
     }
     {
-      name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.9.6.tgz";
+      name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.10.5.tgz";
       path = fetchurl {
-        name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.6.tgz";
-        sha1 = "965c8b0a9f051801fd9d3b372ca0ccf200a90897";
+        name = "_babel_helper_create_class_features_plugin___helper_create_class_features_plugin_7.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz";
+        sha1 = "9f61446ba80e8240b0a5c85c6fdac8459d6f259d";
       };
     }
     {
-      name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.8.8.tgz";
+      name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.8.8.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz";
-        sha1 = "5d84180b588f560b7864efaeea89243e58312087";
+        name = "_babel_helper_create_regexp_features_plugin___helper_create_regexp_features_plugin_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz";
+        sha1 = "fdd60d88524659a0b6959c0579925e425714f3b8";
       };
     }
     {
-      name = "_babel_helper_define_map___helper_define_map_7.8.3.tgz";
+      name = "_babel_helper_define_map___helper_define_map_7.10.5.tgz";
       path = fetchurl {
-        name = "_babel_helper_define_map___helper_define_map_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz";
-        sha1 = "a0655cad5451c3760b726eba875f1cd8faa02c15";
+        name = "_babel_helper_define_map___helper_define_map_7.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz";
+        sha1 = "b53c10db78a640800152692b13393147acb9bb30";
       };
     }
     {
-      name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.8.3.tgz";
+      name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.11.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz";
-        sha1 = "a728dc5b4e89e30fc2dfc7d04fa28a930653f982";
+        name = "_babel_helper_explode_assignable_expression___helper_explode_assignable_expression_7.11.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz";
+        sha1 = "2d8e3470252cc17aba917ede7803d4a7a276a41b";
       };
     }
     {
-      name = "_babel_helper_function_name___helper_function_name_7.9.5.tgz";
+      name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_function_name___helper_function_name_7.9.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz";
-        sha1 = "2b53820d35275120e1874a82e5aabe1376920a5c";
+        name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
+        sha1 = "d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a";
       };
     }
     {
-      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.8.3.tgz";
+      name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz";
-        sha1 = "b894b947bd004381ce63ea1db9f08547e920abd5";
+        name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
+        sha1 = "98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2";
       };
     }
     {
-      name = "_babel_helper_hoist_variables___helper_hoist_variables_7.8.3.tgz";
+      name = "_babel_helper_hoist_variables___helper_hoist_variables_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_hoist_variables___helper_hoist_variables_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz";
-        sha1 = "1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134";
+        name = "_babel_helper_hoist_variables___helper_hoist_variables_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz";
+        sha1 = "d49b001d1d5a68ca5e6604dda01a6297f7c9381e";
       };
     }
     {
-      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.8.3.tgz";
+      name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.11.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz";
-        sha1 = "659b710498ea6c1d9907e0c73f206eee7dadc24c";
+        name = "_babel_helper_member_expression_to_functions___helper_member_expression_to_functions_7.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz";
+        sha1 = "ae69c83d84ee82f4b42f96e2a09410935a8f26df";
       };
     }
     {
-      name = "_babel_helper_module_imports___helper_module_imports_7.8.3.tgz";
+      name = "_babel_helper_module_imports___helper_module_imports_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_module_imports___helper_module_imports_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz";
-        sha1 = "7fe39589b39c016331b6b8c3f441e8f0b1419498";
+        name = "_babel_helper_module_imports___helper_module_imports_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz";
+        sha1 = "4c5c54be04bd31670a7382797d75b9fa2e5b5620";
       };
     }
     {
-      name = "_babel_helper_module_transforms___helper_module_transforms_7.9.0.tgz";
+      name = "_babel_helper_module_transforms___helper_module_transforms_7.11.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_module_transforms___helper_module_transforms_7.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz";
-        sha1 = "43b34dfe15961918707d247327431388e9fe96e5";
+        name = "_babel_helper_module_transforms___helper_module_transforms_7.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz";
+        sha1 = "b16f250229e47211abdd84b34b64737c2ab2d359";
       };
     }
     {
-      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.8.3.tgz";
+      name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz";
-        sha1 = "7ed071813d09c75298ef4f208956006b6111ecb9";
+        name = "_babel_helper_optimise_call_expression___helper_optimise_call_expression_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz";
+        sha1 = "50dc96413d594f995a77905905b05893cd779673";
       };
     }
     {
-      name = "_babel_helper_plugin_utils___helper_plugin_utils_7.8.3.tgz";
+      name = "_babel_helper_plugin_utils___helper_plugin_utils_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_plugin_utils___helper_plugin_utils_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz";
-        sha1 = "9ea293be19babc0f52ff8ca88b34c3611b208670";
+        name = "_babel_helper_plugin_utils___helper_plugin_utils_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
+        sha1 = "2f75a831269d4f677de49986dff59927533cf375";
       };
     }
     {
-      name = "_babel_helper_regex___helper_regex_7.8.3.tgz";
+      name = "_babel_helper_regex___helper_regex_7.10.5.tgz";
       path = fetchurl {
-        name = "_babel_helper_regex___helper_regex_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz";
-        sha1 = "139772607d51b93f23effe72105b319d2a4c6965";
+        name = "_babel_helper_regex___helper_regex_7.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.5.tgz";
+        sha1 = "32dfbb79899073c415557053a19bd055aae50ae0";
       };
     }
     {
-      name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.8.3.tgz";
+      name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.11.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz";
-        sha1 = "273c600d8b9bf5006142c1e35887d555c12edd86";
+        name = "_babel_helper_remap_async_to_generator___helper_remap_async_to_generator_7.11.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz";
+        sha1 = "4474ea9f7438f18575e30b0cac784045b402a12d";
       };
     }
     {
-      name = "_babel_helper_replace_supers___helper_replace_supers_7.9.6.tgz";
+      name = "_babel_helper_replace_supers___helper_replace_supers_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_replace_supers___helper_replace_supers_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.9.6.tgz";
-        sha1 = "03149d7e6a5586ab6764996cd31d6981a17e1444";
+        name = "_babel_helper_replace_supers___helper_replace_supers_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz";
+        sha1 = "d585cd9388ea06e6031e4cd44b6713cbead9e6cf";
       };
     }
     {
-      name = "_babel_helper_simple_access___helper_simple_access_7.8.3.tgz";
+      name = "_babel_helper_simple_access___helper_simple_access_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_simple_access___helper_simple_access_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz";
-        sha1 = "7f8109928b4dab4654076986af575231deb639ae";
+        name = "_babel_helper_simple_access___helper_simple_access_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz";
+        sha1 = "0f5ccda2945277a2a7a2d3a821e15395edcf3461";
       };
     }
     {
-      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.8.3.tgz";
+      name = "_babel_helper_skip_transparent_expression_wrappers___helper_skip_transparent_expression_wrappers_7.11.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz";
-        sha1 = "31a9f30070f91368a7182cf05f831781065fc7a9";
+        name = "_babel_helper_skip_transparent_expression_wrappers___helper_skip_transparent_expression_wrappers_7.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz";
+        sha1 = "eec162f112c2f58d3af0af125e3bb57665146729";
       };
     }
     {
-      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.9.5.tgz";
+      name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.11.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.9.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz";
-        sha1 = "90977a8e6fbf6b431a7dc31752eee233bf052d80";
+        name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz";
+        sha1 = "f8a491244acf6a676158ac42072911ba83ad099f";
       };
     }
     {
-      name = "_babel_helper_wrap_function___helper_wrap_function_7.8.3.tgz";
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_wrap_function___helper_wrap_function_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz";
-        sha1 = "9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610";
+        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
+        sha1 = "a78c7a7251e01f616512d31b10adcf52ada5e0d2";
       };
     }
     {
-      name = "_babel_helpers___helpers_7.9.6.tgz";
+      name = "_babel_helper_wrap_function___helper_wrap_function_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_helpers___helpers_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.6.tgz";
-        sha1 = "092c774743471d0bb6c7de3ad465ab3d3486d580";
+        name = "_babel_helper_wrap_function___helper_wrap_function_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz";
+        sha1 = "8a6f701eab0ff39f765b5a1cfef409990e624b87";
       };
     }
     {
-      name = "_babel_highlight___highlight_7.9.0.tgz";
+      name = "_babel_helpers___helpers_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_highlight___highlight_7.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz";
-        sha1 = "4e9b45ccb82b79607271b2979ad82c7b68163079";
+        name = "_babel_helpers___helpers_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz";
+        sha1 = "2abeb0d721aff7c0a97376b9e1f6f65d7a475044";
       };
     }
     {
-      name = "_babel_parser___parser_7.9.6.tgz";
+      name = "_babel_highlight___highlight_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_parser___parser_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.6.tgz";
-        sha1 = "3b1bbb30dabe600cd72db58720998376ff653bc7";
+        name = "_babel_highlight___highlight_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz";
+        sha1 = "7d1bdfd65753538fabe6c38596cdb76d9ac60143";
       };
     }
     {
-      name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.8.3.tgz";
+      name = "_babel_parser___parser_7.11.5.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz";
-        sha1 = "bad329c670b382589721b27540c7d288601c6e6f";
+        name = "_babel_parser___parser_7.11.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz";
+        sha1 = "c7ff6303df71080ec7a4f5b8c003c58f1cf51037";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.10.5.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_async_generator_functions___plugin_proposal_async_generator_functions_7.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz";
+        sha1 = "3491cabf2f7c179ab820606cec27fed15e0e8558";
       };
     }
     {
@@ -274,6 +290,14 @@
       };
     }
     {
+      name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_class_properties___plugin_proposal_class_properties_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz";
+        sha1 = "a33bf632da390a59c7a8c570045d1115cd778807";
+      };
+    }
+    {
       name = "_babel_plugin_proposal_decorators___plugin_proposal_decorators_7.8.3.tgz";
       path = fetchurl {
         name = "_babel_plugin_proposal_decorators___plugin_proposal_decorators_7.8.3.tgz";
@@ -282,19 +306,35 @@
       };
     }
     {
-      name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.8.3.tgz";
+      name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz";
+        sha1 = "ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_export_namespace_from___plugin_proposal_export_namespace_from_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_export_namespace_from___plugin_proposal_export_namespace_from_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz";
+        sha1 = "570d883b91031637b3e2958eea3c438e62c05f54";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_dynamic_import___plugin_proposal_dynamic_import_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz";
-        sha1 = "38c4fe555744826e97e2ae930b0fb4cc07e66054";
+        name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz";
+        sha1 = "593e59c63528160233bd321b1aebe0820c2341db";
       };
     }
     {
-      name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.8.3.tgz";
+      name = "_babel_plugin_proposal_logical_assignment_operators___plugin_proposal_logical_assignment_operators_7.11.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_json_strings___plugin_proposal_json_strings_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz";
-        sha1 = "da5216b238a98b58a1e05d6852104b10f9a70d6b";
+        name = "_babel_plugin_proposal_logical_assignment_operators___plugin_proposal_logical_assignment_operators_7.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz";
+        sha1 = "9f80e482c03083c87125dee10026b58527ea20c8";
       };
     }
     {
@@ -306,6 +346,14 @@
       };
     }
     {
+      name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_nullish_coalescing_operator___plugin_proposal_nullish_coalescing_operator_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz";
+        sha1 = "02a7e961fc32e6d5b2db0649e01bf80ddee7e04a";
+      };
+    }
+    {
       name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.8.3.tgz";
       path = fetchurl {
         name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.8.3.tgz";
@@ -314,19 +362,27 @@
       };
     }
     {
-      name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.9.6.tgz";
+      name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.6.tgz";
-        sha1 = "7a093586fcb18b08266eb1a7177da671ac575b63";
+        name = "_babel_plugin_proposal_numeric_separator___plugin_proposal_numeric_separator_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz";
+        sha1 = "ce1590ff0a65ad12970a609d78855e9a4c1aef06";
       };
     }
     {
-      name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.8.3.tgz";
+      name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.11.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz";
-        sha1 = "9dee96ab1650eed88646ae9734ca167ac4a9c5c9";
+        name = "_babel_plugin_proposal_object_rest_spread___plugin_proposal_object_rest_spread_7.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz";
+        sha1 = "bd81f95a1f746760ea43b6c2d3d62b11790ad0af";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_optional_catch_binding___plugin_proposal_optional_catch_binding_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz";
+        sha1 = "31c938309d24a78a49d68fdabffaa863758554dd";
       };
     }
     {
@@ -338,11 +394,27 @@
       };
     }
     {
-      name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.8.8.tgz";
+      name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.11.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.8.8.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz";
-        sha1 = "ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d";
+        name = "_babel_plugin_proposal_optional_chaining___plugin_proposal_optional_chaining_7.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz";
+        sha1 = "de5866d0646f6afdaab8a566382fe3a221755076";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_private_methods___plugin_proposal_private_methods_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz";
+        sha1 = "b160d972b8fdba5c7d111a145fc8c421fc2a6909";
+      };
+    }
+    {
+      name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_proposal_unicode_property_regex___plugin_proposal_unicode_property_regex_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz";
+        sha1 = "4483cda53041ce3413b7fe2f00022665ddfaa75d";
       };
     }
     {
@@ -354,11 +426,19 @@
       };
     }
     {
-      name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.8.3.tgz";
+      name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.8.3.tgz";
-        sha1 = "8d2c15a9f1af624b0025f961682a9d53d3001bda";
+        name = "_babel_plugin_syntax_class_properties___plugin_syntax_class_properties_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz";
+        sha1 = "6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_decorators___plugin_syntax_decorators_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.10.4.tgz";
+        sha1 = "6853085b2c429f9d322d02f5a635018cdeb2360c";
       };
     }
     {
@@ -370,11 +450,19 @@
       };
     }
     {
-      name = "_babel_plugin_syntax_flow___plugin_syntax_flow_7.8.3.tgz";
+      name = "_babel_plugin_syntax_export_namespace_from___plugin_syntax_export_namespace_from_7.8.3.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_export_namespace_from___plugin_syntax_export_namespace_from_7.8.3.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz";
+        sha1 = "028964a9ba80dbc094c915c487ad7c4e7a66465a";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_flow___plugin_syntax_flow_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_flow___plugin_syntax_flow_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz";
-        sha1 = "f2c883bd61a6316f2c89380ae5122f923ba4527f";
+        name = "_babel_plugin_syntax_flow___plugin_syntax_flow_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.10.4.tgz";
+        sha1 = "53351dd7ae01995e567d04ce42af1a6e0ba846a6";
       };
     }
     {
@@ -386,11 +474,19 @@
       };
     }
     {
-      name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.8.3.tgz";
+      name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.10.4.tgz";
+        sha1 = "39abaae3cbf710c4373d8429484e6ba21340166c";
+      };
+    }
+    {
+      name = "_babel_plugin_syntax_logical_assignment_operators___plugin_syntax_logical_assignment_operators_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_jsx___plugin_syntax_jsx_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz";
-        sha1 = "521b06c83c40480f1e58b4fd33b92eceb1d6ea94";
+        name = "_babel_plugin_syntax_logical_assignment_operators___plugin_syntax_logical_assignment_operators_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz";
+        sha1 = "ca91ef46303530448b906652bac2e9fe9941f699";
       };
     }
     {
@@ -402,11 +498,11 @@
       };
     }
     {
-      name = "_babel_plugin_syntax_numeric_separator___plugin_syntax_numeric_separator_7.8.3.tgz";
+      name = "_babel_plugin_syntax_numeric_separator___plugin_syntax_numeric_separator_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_numeric_separator___plugin_syntax_numeric_separator_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz";
-        sha1 = "0e3fb63e09bea1b11e96467271c8308007e7c41f";
+        name = "_babel_plugin_syntax_numeric_separator___plugin_syntax_numeric_separator_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz";
+        sha1 = "b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97";
       };
     }
     {
@@ -434,99 +530,99 @@
       };
     }
     {
-      name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.8.3.tgz";
+      name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz";
-        sha1 = "3acdece695e6b13aaf57fc291d1a800950c71391";
+        name = "_babel_plugin_syntax_top_level_await___plugin_syntax_top_level_await_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz";
+        sha1 = "4bbeb8917b54fcf768364e0a81f560e33a3ef57d";
       };
     }
     {
-      name = "_babel_plugin_syntax_typescript___plugin_syntax_typescript_7.8.3.tgz";
+      name = "_babel_plugin_syntax_typescript___plugin_syntax_typescript_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_syntax_typescript___plugin_syntax_typescript_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.8.3.tgz";
-        sha1 = "c1f659dda97711a569cef75275f7e15dcaa6cabc";
+        name = "_babel_plugin_syntax_typescript___plugin_syntax_typescript_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz";
+        sha1 = "2f55e770d3501e83af217d782cb7517d7bb34d25";
       };
     }
     {
-      name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.8.3.tgz";
+      name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz";
-        sha1 = "82776c2ed0cd9e1a49956daeb896024c9473b8b6";
+        name = "_babel_plugin_transform_arrow_functions___plugin_transform_arrow_functions_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz";
+        sha1 = "e22960d77e697c74f41c501d44d73dbf8a6a64cd";
       };
     }
     {
-      name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.8.3.tgz";
+      name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz";
-        sha1 = "4308fad0d9409d71eafb9b1a6ee35f9d64b64086";
+        name = "_babel_plugin_transform_async_to_generator___plugin_transform_async_to_generator_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz";
+        sha1 = "41a5017e49eb6f3cda9392a51eef29405b245a37";
       };
     }
     {
-      name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.8.3.tgz";
+      name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz";
-        sha1 = "437eec5b799b5852072084b3ae5ef66e8349e8a3";
+        name = "_babel_plugin_transform_block_scoped_functions___plugin_transform_block_scoped_functions_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz";
+        sha1 = "1afa595744f75e43a91af73b0d998ecfe4ebc2e8";
       };
     }
     {
-      name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.8.3.tgz";
+      name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.11.1.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz";
-        sha1 = "97d35dab66857a437c166358b91d09050c868f3a";
+        name = "_babel_plugin_transform_block_scoping___plugin_transform_block_scoping_7.11.1.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz";
+        sha1 = "5b7efe98852bef8d652c0b28144cd93a9e4b5215";
       };
     }
     {
-      name = "_babel_plugin_transform_classes___plugin_transform_classes_7.9.5.tgz";
+      name = "_babel_plugin_transform_classes___plugin_transform_classes_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_classes___plugin_transform_classes_7.9.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz";
-        sha1 = "800597ddb8aefc2c293ed27459c1fcc935a26c2c";
+        name = "_babel_plugin_transform_classes___plugin_transform_classes_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz";
+        sha1 = "405136af2b3e218bc4a1926228bc917ab1a0adc7";
       };
     }
     {
-      name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.8.3.tgz";
+      name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz";
-        sha1 = "96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b";
+        name = "_babel_plugin_transform_computed_properties___plugin_transform_computed_properties_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz";
+        sha1 = "9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb";
       };
     }
     {
-      name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.9.5.tgz";
+      name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.9.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz";
-        sha1 = "72c97cf5f38604aea3abf3b935b0e17b1db76a50";
+        name = "_babel_plugin_transform_destructuring___plugin_transform_destructuring_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz";
+        sha1 = "70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5";
       };
     }
     {
-      name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.8.3.tgz";
+      name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz";
-        sha1 = "c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e";
+        name = "_babel_plugin_transform_dotall_regex___plugin_transform_dotall_regex_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz";
+        sha1 = "469c2062105c1eb6a040eaf4fac4b488078395ee";
       };
     }
     {
-      name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.8.3.tgz";
+      name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz";
-        sha1 = "8d12df309aa537f272899c565ea1768e286e21f1";
+        name = "_babel_plugin_transform_duplicate_keys___plugin_transform_duplicate_keys_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz";
+        sha1 = "697e50c9fee14380fe843d1f306b295617431e47";
       };
     }
     {
-      name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.8.3.tgz";
+      name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz";
-        sha1 = "581a6d7f56970e06bf51560cd64f5e947b70d7b7";
+        name = "_babel_plugin_transform_exponentiation_operator___plugin_transform_exponentiation_operator_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz";
+        sha1 = "5ae338c57f8cf4001bdb35607ae66b92d665af2e";
       };
     }
     {
@@ -538,115 +634,115 @@
       };
     }
     {
-      name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.9.0.tgz";
+      name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz";
-        sha1 = "0f260e27d3e29cd1bb3128da5e76c761aa6c108e";
+        name = "_babel_plugin_transform_for_of___plugin_transform_for_of_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz";
+        sha1 = "c08892e8819d3a5db29031b115af511dbbfebae9";
       };
     }
     {
-      name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.8.3.tgz";
+      name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz";
-        sha1 = "279373cb27322aaad67c2683e776dfc47196ed8b";
+        name = "_babel_plugin_transform_function_name___plugin_transform_function_name_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz";
+        sha1 = "6a467880e0fc9638514ba369111811ddbe2644b7";
       };
     }
     {
-      name = "_babel_plugin_transform_literals___plugin_transform_literals_7.8.3.tgz";
+      name = "_babel_plugin_transform_literals___plugin_transform_literals_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_literals___plugin_transform_literals_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz";
-        sha1 = "aef239823d91994ec7b68e55193525d76dbd5dc1";
+        name = "_babel_plugin_transform_literals___plugin_transform_literals_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz";
+        sha1 = "9f42ba0841100a135f22712d0e391c462f571f3c";
       };
     }
     {
-      name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.8.3.tgz";
+      name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz";
-        sha1 = "963fed4b620ac7cbf6029c755424029fa3a40410";
+        name = "_babel_plugin_transform_member_expression_literals___plugin_transform_member_expression_literals_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz";
+        sha1 = "b1ec44fcf195afcb8db2c62cd8e551c881baf8b7";
       };
     }
     {
-      name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.9.6.tgz";
+      name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.10.5.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.6.tgz";
-        sha1 = "8539ec42c153d12ea3836e0e3ac30d5aae7b258e";
+        name = "_babel_plugin_transform_modules_amd___plugin_transform_modules_amd_7.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz";
+        sha1 = "1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1";
       };
     }
     {
-      name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.9.6.tgz";
+      name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.6.tgz";
-        sha1 = "64b7474a4279ee588cacd1906695ca721687c277";
+        name = "_babel_plugin_transform_modules_commonjs___plugin_transform_modules_commonjs_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz";
+        sha1 = "66667c3eeda1ebf7896d41f1f16b17105a2fbca0";
       };
     }
     {
-      name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.9.6.tgz";
+      name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.10.5.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.6.tgz";
-        sha1 = "207f1461c78a231d5337a92140e52422510d81a4";
+        name = "_babel_plugin_transform_modules_systemjs___plugin_transform_modules_systemjs_7.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz";
+        sha1 = "6270099c854066681bae9e05f87e1b9cadbe8c85";
       };
     }
     {
-      name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.9.0.tgz";
+      name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz";
-        sha1 = "e909acae276fec280f9b821a5f38e1f08b480697";
+        name = "_babel_plugin_transform_modules_umd___plugin_transform_modules_umd_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz";
+        sha1 = "9a8481fe81b824654b3a0b65da3df89f3d21839e";
       };
     }
     {
-      name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.8.3.tgz";
+      name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz";
-        sha1 = "a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c";
+        name = "_babel_plugin_transform_named_capturing_groups_regex___plugin_transform_named_capturing_groups_regex_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz";
+        sha1 = "78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6";
       };
     }
     {
-      name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.8.3.tgz";
+      name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz";
-        sha1 = "60cc2ae66d85c95ab540eb34babb6434d4c70c43";
+        name = "_babel_plugin_transform_new_target___plugin_transform_new_target_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz";
+        sha1 = "9097d753cb7b024cb7381a3b2e52e9513a9c6888";
       };
     }
     {
-      name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.8.3.tgz";
+      name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz";
-        sha1 = "ebb6a1e7a86ffa96858bd6ac0102d65944261725";
+        name = "_babel_plugin_transform_object_super___plugin_transform_object_super_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz";
+        sha1 = "d7146c4d139433e7a6526f888c667e314a093894";
       };
     }
     {
-      name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.9.5.tgz";
+      name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.10.5.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.9.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz";
-        sha1 = "173b265746f5e15b2afe527eeda65b73623a0795";
+        name = "_babel_plugin_transform_parameters___plugin_transform_parameters_7.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz";
+        sha1 = "59d339d58d0b1950435f4043e74e2510005e2c4a";
       };
     }
     {
-      name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.8.3.tgz";
+      name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz";
-        sha1 = "33194300d8539c1ed28c62ad5087ba3807b98263";
+        name = "_babel_plugin_transform_property_literals___plugin_transform_property_literals_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz";
+        sha1 = "f6fe54b6590352298785b83edd815d214c42e3c0";
       };
     }
     {
-      name = "_babel_plugin_transform_react_constant_elements___plugin_transform_react_constant_elements_7.9.0.tgz";
+      name = "_babel_plugin_transform_react_constant_elements___plugin_transform_react_constant_elements_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_constant_elements___plugin_transform_react_constant_elements_7.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.9.0.tgz";
-        sha1 = "a75abc936a3819edec42d3386d9f1c93f28d9d9e";
+        name = "_babel_plugin_transform_react_constant_elements___plugin_transform_react_constant_elements_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.10.4.tgz";
+        sha1 = "0f485260bf1c29012bb973e7e404749eaac12c9e";
       };
     }
     {
@@ -658,51 +754,67 @@
       };
     }
     {
-      name = "_babel_plugin_transform_react_jsx_development___plugin_transform_react_jsx_development_7.9.0.tgz";
+      name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_react_display_name___plugin_transform_react_display_name_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.10.4.tgz";
+        sha1 = "b5795f4e3e3140419c3611b7a2a3832b9aef328d";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_react_jsx_development___plugin_transform_react_jsx_development_7.11.5.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_jsx_development___plugin_transform_react_jsx_development_7.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.9.0.tgz";
-        sha1 = "3c2a130727caf00c2a293f0aed24520825dbf754";
+        name = "_babel_plugin_transform_react_jsx_development___plugin_transform_react_jsx_development_7.11.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.11.5.tgz";
+        sha1 = "e1439e6a57ee3d43e9f54ace363fb29cefe5d7b6";
       };
     }
     {
-      name = "_babel_plugin_transform_react_jsx_self___plugin_transform_react_jsx_self_7.9.0.tgz";
+      name = "_babel_plugin_transform_react_jsx_self___plugin_transform_react_jsx_self_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_jsx_self___plugin_transform_react_jsx_self_7.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.9.0.tgz";
-        sha1 = "f4f26a325820205239bb915bad8e06fcadabb49b";
+        name = "_babel_plugin_transform_react_jsx_self___plugin_transform_react_jsx_self_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.10.4.tgz";
+        sha1 = "cd301a5fed8988c182ed0b9d55e9bd6db0bd9369";
       };
     }
     {
-      name = "_babel_plugin_transform_react_jsx_source___plugin_transform_react_jsx_source_7.9.0.tgz";
+      name = "_babel_plugin_transform_react_jsx_source___plugin_transform_react_jsx_source_7.10.5.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_jsx_source___plugin_transform_react_jsx_source_7.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz";
-        sha1 = "89ef93025240dd5d17d3122294a093e5e0183de0";
+        name = "_babel_plugin_transform_react_jsx_source___plugin_transform_react_jsx_source_7.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.10.5.tgz";
+        sha1 = "34f1779117520a779c054f2cdd9680435b9222b4";
       };
     }
     {
-      name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.9.4.tgz";
+      name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.9.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz";
-        sha1 = "86f576c8540bd06d0e95e0b61ea76d55f6cbd03f";
+        name = "_babel_plugin_transform_react_jsx___plugin_transform_react_jsx_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.10.4.tgz";
+        sha1 = "673c9f913948764a4421683b2bef2936968fddf2";
       };
     }
     {
-      name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.8.7.tgz";
+      name = "_babel_plugin_transform_react_pure_annotations___plugin_transform_react_pure_annotations_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.8.7.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz";
-        sha1 = "5e46a0dca2bee1ad8285eb0527e6abc9c37672f8";
+        name = "_babel_plugin_transform_react_pure_annotations___plugin_transform_react_pure_annotations_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.10.4.tgz";
+        sha1 = "3eefbb73db94afbc075f097523e445354a1c6501";
       };
     }
     {
-      name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.8.3.tgz";
+      name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz";
-        sha1 = "9a0635ac4e665d29b162837dd3cc50745dfdf1f5";
+        name = "_babel_plugin_transform_regenerator___plugin_transform_regenerator_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz";
+        sha1 = "2015e59d839074e76838de2159db421966fd8b63";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_reserved_words___plugin_transform_reserved_words_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz";
+        sha1 = "8f2682bcdcef9ed327e1b0861585d7013f8a54dd";
       };
     }
     {
@@ -714,59 +826,67 @@
       };
     }
     {
-      name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.8.3.tgz";
+      name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz";
-        sha1 = "28545216e023a832d4d3a1185ed492bcfeac08c8";
+        name = "_babel_plugin_transform_shorthand_properties___plugin_transform_shorthand_properties_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz";
+        sha1 = "9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6";
       };
     }
     {
-      name = "_babel_plugin_transform_spread___plugin_transform_spread_7.8.3.tgz";
+      name = "_babel_plugin_transform_spread___plugin_transform_spread_7.11.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_spread___plugin_transform_spread_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz";
-        sha1 = "9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8";
+        name = "_babel_plugin_transform_spread___plugin_transform_spread_7.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz";
+        sha1 = "fa84d300f5e4f57752fe41a6d1b3c554f13f17cc";
       };
     }
     {
-      name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.8.3.tgz";
+      name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz";
-        sha1 = "be7a1290f81dae767475452199e1f76d6175b100";
+        name = "_babel_plugin_transform_sticky_regex___plugin_transform_sticky_regex_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz";
+        sha1 = "8f3889ee8657581130a29d9cc91d7c73b7c4a28d";
       };
     }
     {
-      name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.8.3.tgz";
+      name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.10.5.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz";
-        sha1 = "7bfa4732b455ea6a43130adc0ba767ec0e402a80";
+        name = "_babel_plugin_transform_template_literals___plugin_transform_template_literals_7.10.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz";
+        sha1 = "78bc5d626a6642db3312d9d0f001f5e7639fde8c";
       };
     }
     {
-      name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.8.4.tgz";
+      name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.8.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz";
-        sha1 = "ede4062315ce0aaf8a657a920858f1a2f35fc412";
+        name = "_babel_plugin_transform_typeof_symbol___plugin_transform_typeof_symbol_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz";
+        sha1 = "9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc";
       };
     }
     {
-      name = "_babel_plugin_transform_typescript___plugin_transform_typescript_7.9.6.tgz";
+      name = "_babel_plugin_transform_typescript___plugin_transform_typescript_7.11.0.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_typescript___plugin_transform_typescript_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.9.6.tgz";
-        sha1 = "2248971416a506fc78278fc0c0ea3179224af1e9";
+        name = "_babel_plugin_transform_typescript___plugin_transform_typescript_7.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz";
+        sha1 = "2b4879676af37342ebb278216dd090ac67f13abb";
       };
     }
     {
-      name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.8.3.tgz";
+      name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz";
-        sha1 = "0cef36e3ba73e5c57273effb182f46b91a1ecaad";
+        name = "_babel_plugin_transform_unicode_escapes___plugin_transform_unicode_escapes_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz";
+        sha1 = "feae523391c7651ddac115dae0a9d06857892007";
+      };
+    }
+    {
+      name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.10.4.tgz";
+      path = fetchurl {
+        name = "_babel_plugin_transform_unicode_regex___plugin_transform_unicode_regex_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz";
+        sha1 = "e56d71f9282fac6db09c82742055576d5e6d80a8";
       };
     }
     {
@@ -778,19 +898,19 @@
       };
     }
     {
-      name = "_babel_preset_env___preset_env_7.9.6.tgz";
+      name = "_babel_preset_env___preset_env_7.11.5.tgz";
       path = fetchurl {
-        name = "_babel_preset_env___preset_env_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.6.tgz";
-        sha1 = "df063b276c6455ec6fcfc6e53aacc38da9b0aea6";
+        name = "_babel_preset_env___preset_env_7.11.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.5.tgz";
+        sha1 = "18cb4b9379e3e92ffea92c07471a99a2914e4272";
       };
     }
     {
-      name = "_babel_preset_modules___preset_modules_0.1.3.tgz";
+      name = "_babel_preset_modules___preset_modules_0.1.4.tgz";
       path = fetchurl {
-        name = "_babel_preset_modules___preset_modules_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz";
-        sha1 = "13242b53b5ef8c883c3cf7dddd55b36ce80fbc72";
+        name = "_babel_preset_modules___preset_modules_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz";
+        sha1 = "362f2b68c662842970fdb5e254ffc8fc1c2e415e";
       };
     }
     {
@@ -802,11 +922,11 @@
       };
     }
     {
-      name = "_babel_preset_react___preset_react_7.9.4.tgz";
+      name = "_babel_preset_react___preset_react_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_preset_react___preset_react_7.9.4.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.9.4.tgz";
-        sha1 = "c6c97693ac65b6b9c0b4f25b948a8f665463014d";
+        name = "_babel_preset_react___preset_react_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.10.4.tgz";
+        sha1 = "92e8a66d816f9911d11d4cc935be67adfc82dbcf";
       };
     }
     {
@@ -818,11 +938,11 @@
       };
     }
     {
-      name = "_babel_runtime_corejs3___runtime_corejs3_7.9.6.tgz";
+      name = "_babel_runtime_corejs3___runtime_corejs3_7.11.2.tgz";
       path = fetchurl {
-        name = "_babel_runtime_corejs3___runtime_corejs3_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.9.6.tgz";
-        sha1 = "67aded13fffbbc2cb93247388cf84d77a4be9a71";
+        name = "_babel_runtime_corejs3___runtime_corejs3_7.11.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.11.2.tgz";
+        sha1 = "02c3029743150188edeb66541195f54600278419";
       };
     }
     {
@@ -834,35 +954,35 @@
       };
     }
     {
-      name = "_babel_runtime___runtime_7.9.6.tgz";
+      name = "_babel_runtime___runtime_7.11.2.tgz";
       path = fetchurl {
-        name = "_babel_runtime___runtime_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz";
-        sha1 = "a9102eb5cadedf3f31d08a9ecf294af7827ea29f";
+        name = "_babel_runtime___runtime_7.11.2.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz";
+        sha1 = "f549c13c754cc40b87644b9fa9f09a6a95fe0736";
       };
     }
     {
-      name = "_babel_template___template_7.8.6.tgz";
+      name = "_babel_template___template_7.10.4.tgz";
       path = fetchurl {
-        name = "_babel_template___template_7.8.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz";
-        sha1 = "86b22af15f828dfb086474f964dcc3e39c43ce2b";
+        name = "_babel_template___template_7.10.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz";
+        sha1 = "3251996c4200ebc71d1a8fc405fba940f36ba278";
       };
     }
     {
-      name = "_babel_traverse___traverse_7.9.6.tgz";
+      name = "_babel_traverse___traverse_7.11.5.tgz";
       path = fetchurl {
-        name = "_babel_traverse___traverse_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.6.tgz";
-        sha1 = "5540d7577697bf619cc57b92aa0f1c231a94f442";
+        name = "_babel_traverse___traverse_7.11.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz";
+        sha1 = "be777b93b518eb6d76ee2e1ea1d143daa11e61c3";
       };
     }
     {
-      name = "_babel_types___types_7.9.6.tgz";
+      name = "_babel_types___types_7.11.5.tgz";
       path = fetchurl {
-        name = "_babel_types___types_7.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.9.6.tgz";
-        sha1 = "2c5502b427251e9de1bd2dff95add646d95cc9f7";
+        name = "_babel_types___types_7.11.5.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz";
+        sha1 = "d9de577d01252d77c6800cee039ee64faf75662d";
       };
     }
     {
@@ -906,11 +1026,11 @@
       };
     }
     {
-      name = "_hapi_address___address_4.0.1.tgz";
+      name = "_hapi_address___address_4.1.0.tgz";
       path = fetchurl {
-        name = "_hapi_address___address_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@hapi/address/-/address-4.0.1.tgz";
-        sha1 = "267301ddf7bc453718377a6fb3832a2f04a721dd";
+        name = "_hapi_address___address_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@hapi/address/-/address-4.1.0.tgz";
+        sha1 = "d60c5c0d930e77456fdcde2598e77302e2955e1d";
       };
     }
     {
@@ -938,11 +1058,11 @@
       };
     }
     {
-      name = "_hapi_hoek___hoek_9.0.4.tgz";
+      name = "_hapi_hoek___hoek_9.1.0.tgz";
       path = fetchurl {
-        name = "_hapi_hoek___hoek_9.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.0.4.tgz";
-        sha1 = "e80ad4e8e8d2adc6c77d985f698447e8628b6010";
+        name = "_hapi_hoek___hoek_9.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.1.0.tgz";
+        sha1 = "6c9eafc78c1529248f8f4d92b0799a712b6052c6";
       };
     }
     {
@@ -954,14 +1074,6 @@
       };
     }
     {
-      name = "_hapi_joi___joi_17.1.1.tgz";
-      path = fetchurl {
-        name = "_hapi_joi___joi_17.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/@hapi/joi/-/joi-17.1.1.tgz";
-        sha1 = "9cc8d7e2c2213d1e46708c6260184b447c661350";
-      };
-    }
-    {
       name = "_hapi_pinpoint___pinpoint_2.0.0.tgz";
       path = fetchurl {
         name = "_hapi_pinpoint___pinpoint_2.0.0.tgz";
@@ -1074,11 +1186,11 @@
       };
     }
     {
-      name = "_material_ui_core___core_4.9.13.tgz";
+      name = "_material_ui_core___core_4.11.0.tgz";
       path = fetchurl {
-        name = "_material_ui_core___core_4.9.13.tgz";
-        url  = "https://registry.yarnpkg.com/@material-ui/core/-/core-4.9.13.tgz";
-        sha1 = "024962bcdda05139e1bad17a1815bf4088702b15";
+        name = "_material_ui_core___core_4.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/@material-ui/core/-/core-4.11.0.tgz";
+        sha1 = "b69b26e4553c9e53f2bfaf1053e216a0af9be15a";
       };
     }
     {
@@ -1090,43 +1202,35 @@
       };
     }
     {
-      name = "_material_ui_react_transition_group___react_transition_group_4.3.0.tgz";
+      name = "_material_ui_styles___styles_4.10.0.tgz";
       path = fetchurl {
-        name = "_material_ui_react_transition_group___react_transition_group_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/@material-ui/react-transition-group/-/react-transition-group-4.3.0.tgz";
-        sha1 = "92529142addb5cc179dbf42d246c7e3fe4d6104b";
+        name = "_material_ui_styles___styles_4.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/@material-ui/styles/-/styles-4.10.0.tgz";
+        sha1 = "2406dc23aa358217aa8cc772e6237bd7f0544071";
       };
     }
     {
-      name = "_material_ui_styles___styles_4.9.13.tgz";
+      name = "_material_ui_system___system_4.9.14.tgz";
       path = fetchurl {
-        name = "_material_ui_styles___styles_4.9.13.tgz";
-        url  = "https://registry.yarnpkg.com/@material-ui/styles/-/styles-4.9.13.tgz";
-        sha1 = "08b3976bdd21c38bc076693d95834f97539f3b15";
+        name = "_material_ui_system___system_4.9.14.tgz";
+        url  = "https://registry.yarnpkg.com/@material-ui/system/-/system-4.9.14.tgz";
+        sha1 = "4b00c48b569340cefb2036d0596b93ac6c587a5f";
       };
     }
     {
-      name = "_material_ui_system___system_4.9.13.tgz";
+      name = "_material_ui_types___types_5.1.0.tgz";
       path = fetchurl {
-        name = "_material_ui_system___system_4.9.13.tgz";
-        url  = "https://registry.yarnpkg.com/@material-ui/system/-/system-4.9.13.tgz";
-        sha1 = "adefb3b6a5ddf0b00fe4e82ac63bb48276e9749d";
+        name = "_material_ui_types___types_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@material-ui/types/-/types-5.1.0.tgz";
+        sha1 = "efa1c7a0b0eaa4c7c87ac0390445f0f88b0d88f2";
       };
     }
     {
-      name = "_material_ui_types___types_5.0.1.tgz";
+      name = "_material_ui_utils___utils_4.10.2.tgz";
       path = fetchurl {
-        name = "_material_ui_types___types_5.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@material-ui/types/-/types-5.0.1.tgz";
-        sha1 = "c4954063cdc196eb327ee62c041368b1aebb6d61";
-      };
-    }
-    {
-      name = "_material_ui_utils___utils_4.9.12.tgz";
-      path = fetchurl {
-        name = "_material_ui_utils___utils_4.9.12.tgz";
-        url  = "https://registry.yarnpkg.com/@material-ui/utils/-/utils-4.9.12.tgz";
-        sha1 = "0d639f1c1ed83fffb2ae10c21d15a938795d9e65";
+        name = "_material_ui_utils___utils_4.10.2.tgz";
+        url  = "https://registry.yarnpkg.com/@material-ui/utils/-/utils-4.10.2.tgz";
+        sha1 = "3fd5470ca61b7341f1e0468ac8f29a70bf6df321";
       };
     }
     {
@@ -1138,6 +1242,22 @@
       };
     }
     {
+      name = "_nodelib_fs.scandir___fs.scandir_2.1.3.tgz";
+      path = fetchurl {
+        name = "_nodelib_fs.scandir___fs.scandir_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz";
+        sha1 = "3a582bdb53804c6ba6d146579c46e52130cf4a3b";
+      };
+    }
+    {
+      name = "_nodelib_fs.stat___fs.stat_2.0.3.tgz";
+      path = fetchurl {
+        name = "_nodelib_fs.stat___fs.stat_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz";
+        sha1 = "34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3";
+      };
+    }
+    {
       name = "_nodelib_fs.stat___fs.stat_1.1.3.tgz";
       path = fetchurl {
         name = "_nodelib_fs.stat___fs.stat_1.1.3.tgz";
@@ -1146,6 +1266,14 @@
       };
     }
     {
+      name = "_nodelib_fs.walk___fs.walk_1.2.4.tgz";
+      path = fetchurl {
+        name = "_nodelib_fs.walk___fs.walk_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz";
+        sha1 = "011b9202a70a6366e436ca5c065844528ab04976";
+      };
+    }
+    {
       name = "_svgr_babel_plugin_add_jsx_attribute___babel_plugin_add_jsx_attribute_4.2.0.tgz";
       path = fetchurl {
         name = "_svgr_babel_plugin_add_jsx_attribute___babel_plugin_add_jsx_attribute_4.2.0.tgz";
@@ -1258,11 +1386,11 @@
       };
     }
     {
-      name = "_types_babel__core___babel__core_7.1.7.tgz";
+      name = "_types_babel__core___babel__core_7.1.9.tgz";
       path = fetchurl {
-        name = "_types_babel__core___babel__core_7.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.7.tgz";
-        sha1 = "1dacad8840364a57c98d0dd4855c6dd3752c6b89";
+        name = "_types_babel__core___babel__core_7.1.9.tgz";
+        url  = "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.9.tgz";
+        sha1 = "77e59d438522a6fb898fa43dc3455c6e72f3963d";
       };
     }
     {
@@ -1282,19 +1410,19 @@
       };
     }
     {
-      name = "_types_babel__traverse___babel__traverse_7.0.11.tgz";
+      name = "_types_babel__traverse___babel__traverse_7.0.14.tgz";
       path = fetchurl {
-        name = "_types_babel__traverse___babel__traverse_7.0.11.tgz";
-        url  = "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.11.tgz";
-        sha1 = "1ae3010e8bf8851d324878b42acec71986486d18";
+        name = "_types_babel__traverse___babel__traverse_7.0.14.tgz";
+        url  = "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.14.tgz";
+        sha1 = "e99da8c075d4fb098c774ba65dabf7dc9954bd13";
       };
     }
     {
-      name = "_types_codemirror___codemirror_0.0.91.tgz";
+      name = "_types_codemirror___codemirror_0.0.98.tgz";
       path = fetchurl {
-        name = "_types_codemirror___codemirror_0.0.91.tgz";
-        url  = "https://registry.yarnpkg.com/@types/codemirror/-/codemirror-0.0.91.tgz";
-        sha1 = "4cb9832388726e57e747f0e3a8ab69105ad02a66";
+        name = "_types_codemirror___codemirror_0.0.98.tgz";
+        url  = "https://registry.yarnpkg.com/@types/codemirror/-/codemirror-0.0.98.tgz";
+        sha1 = "b35c7a4ab1fc1684b08a4e3eb65240020556ebfb";
       };
     }
     {
@@ -1322,19 +1450,11 @@
       };
     }
     {
-      name = "_types_estree___estree_0.0.44.tgz";
-      path = fetchurl {
-        name = "_types_estree___estree_0.0.44.tgz";
-        url  = "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.44.tgz";
-        sha1 = "980cc5a29a3ef3bea6ff1f7d021047d7ea575e21";
-      };
-    }
-    {
-      name = "_types_events___events_3.0.0.tgz";
+      name = "_types_estree___estree_0.0.45.tgz";
       path = fetchurl {
-        name = "_types_events___events_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz";
-        sha1 = "2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7";
+        name = "_types_estree___estree_0.0.45.tgz";
+        url  = "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.45.tgz";
+        sha1 = "e9387572998e5ecdac221950dab3e8c3b16af884";
       };
     }
     {
@@ -1346,27 +1466,27 @@
       };
     }
     {
-      name = "_types_glob___glob_7.1.1.tgz";
+      name = "_types_glob___glob_7.1.3.tgz";
       path = fetchurl {
-        name = "_types_glob___glob_7.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz";
-        sha1 = "aa59a1c6e3fbc421e07ccd31a944c30eba521575";
+        name = "_types_glob___glob_7.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz";
+        sha1 = "e6ba80f36b7daad2c685acd9266382e68985c183";
       };
     }
     {
-      name = "_types_history___history_4.7.5.tgz";
+      name = "_types_history___history_4.7.7.tgz";
       path = fetchurl {
-        name = "_types_history___history_4.7.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/history/-/history-4.7.5.tgz";
-        sha1 = "527d20ef68571a4af02ed74350164e7a67544860";
+        name = "_types_history___history_4.7.7.tgz";
+        url  = "https://registry.yarnpkg.com/@types/history/-/history-4.7.7.tgz";
+        sha1 = "613957d900fab9ff84c8dfb24fa3eef0c2a40896";
       };
     }
     {
-      name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.1.tgz";
+      name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.3.tgz";
       path = fetchurl {
-        name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz";
-        sha1 = "42995b446db9a48a11a07ec083499a860e9138ff";
+        name = "_types_istanbul_lib_coverage___istanbul_lib_coverage_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz";
+        sha1 = "4ba8ddb720221f432e443bd5f9117fd22cfd4762";
       };
     }
     {
@@ -1378,35 +1498,43 @@
       };
     }
     {
-      name = "_types_istanbul_reports___istanbul_reports_1.1.1.tgz";
+      name = "_types_istanbul_reports___istanbul_reports_1.1.2.tgz";
       path = fetchurl {
-        name = "_types_istanbul_reports___istanbul_reports_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz";
-        sha1 = "7a8cbf6a406f36c8add871625b278eaf0b0d255a";
+        name = "_types_istanbul_reports___istanbul_reports_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz";
+        sha1 = "e875cc689e47bce549ec81f3df5e6f6f11cfaeb2";
       };
     }
     {
-      name = "_types_jest___jest_25.2.1.tgz";
+      name = "_types_jest___jest_26.0.13.tgz";
       path = fetchurl {
-        name = "_types_jest___jest_25.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/jest/-/jest-25.2.1.tgz";
-        sha1 = "9544cd438607955381c1bdbdb97767a249297db5";
+        name = "_types_jest___jest_26.0.13.tgz";
+        url  = "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.13.tgz";
+        sha1 = "5a7b9d5312f5dd521a38329c38ee9d3802a0b85e";
       };
     }
     {
-      name = "_types_js_base64___js_base64_2.3.1.tgz";
+      name = "_types_js_base64___js_base64_3.0.0.tgz";
       path = fetchurl {
-        name = "_types_js_base64___js_base64_2.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/js-base64/-/js-base64-2.3.1.tgz";
-        sha1 = "c39f14f129408a3d96a1105a650d8b2b6eeb4168";
+        name = "_types_js_base64___js_base64_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/js-base64/-/js-base64-3.0.0.tgz";
+        sha1 = "b7b4c130facefefd5c57ba82664c41e2995f91be";
       };
     }
     {
-      name = "_types_json_schema___json_schema_7.0.4.tgz";
+      name = "_types_json_schema___json_schema_7.0.6.tgz";
       path = fetchurl {
-        name = "_types_json_schema___json_schema_7.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz";
-        sha1 = "38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339";
+        name = "_types_json_schema___json_schema_7.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz";
+        sha1 = "f4c7ec43e81b319a9815115031709f26987891f0";
+      };
+    }
+    {
+      name = "_types_json5___json5_0.0.29.tgz";
+      path = fetchurl {
+        name = "_types_json5___json5_0.0.29.tgz";
+        url  = "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz";
+        sha1 = "ee28707ae94e11d2b827bcbe5270bcea7f3e71ee";
       };
     }
     {
@@ -1418,19 +1546,27 @@
       };
     }
     {
-      name = "_types_node___node_13.13.5.tgz";
+      name = "_types_node___node_14.10.1.tgz";
       path = fetchurl {
-        name = "_types_node___node_13.13.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/node/-/node-13.13.5.tgz";
-        sha1 = "96ec3b0afafd64a4ccea9107b75bf8489f0e5765";
+        name = "_types_node___node_14.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-14.10.1.tgz";
+        sha1 = "cc323bad8e8a533d4822f45ce4e5326f36e42177";
       };
     }
     {
-      name = "_types_notifyjs___notifyjs_3.0.1.tgz";
+      name = "_types_normalize_package_data___normalize_package_data_2.4.0.tgz";
       path = fetchurl {
-        name = "_types_notifyjs___notifyjs_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/notifyjs/-/notifyjs-3.0.1.tgz";
-        sha1 = "eba3bec10e44309df4aba31a73bfd26a562bc755";
+        name = "_types_normalize_package_data___normalize_package_data_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
+        sha1 = "e486d0d97396d79beedd0a6e33f4534ff6b4973e";
+      };
+    }
+    {
+      name = "_types_notifyjs___notifyjs_3.0.2.tgz";
+      path = fetchurl {
+        name = "_types_notifyjs___notifyjs_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/notifyjs/-/notifyjs-3.0.2.tgz";
+        sha1 = "97451aa8225e7bbf4f73bf0cb6f9fd2e12889719";
       };
     }
     {
@@ -1450,35 +1586,35 @@
       };
     }
     {
-      name = "_types_puppeteer___puppeteer_2.0.1.tgz";
+      name = "_types_puppeteer___puppeteer_3.0.2.tgz";
       path = fetchurl {
-        name = "_types_puppeteer___puppeteer_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/puppeteer/-/puppeteer-2.0.1.tgz";
-        sha1 = "83a1d7f0a1c2e0edbbb488b4d8fb54b14ec9d455";
+        name = "_types_puppeteer___puppeteer_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/puppeteer/-/puppeteer-3.0.2.tgz";
+        sha1 = "20085220593b560c7332b6d46aecaf81ae263540";
       };
     }
     {
-      name = "_types_q___q_1.5.2.tgz";
+      name = "_types_q___q_1.5.4.tgz";
       path = fetchurl {
-        name = "_types_q___q_1.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz";
-        sha1 = "690a1475b84f2a884fd07cd797c00f5f31356ea8";
+        name = "_types_q___q_1.5.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz";
+        sha1 = "15925414e0ad2cd765bfef58842f7e26a7accb24";
       };
     }
     {
-      name = "_types_react_dom___react_dom_16.9.7.tgz";
+      name = "_types_react_dom___react_dom_16.9.8.tgz";
       path = fetchurl {
-        name = "_types_react_dom___react_dom_16.9.7.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.7.tgz";
-        sha1 = "60844d48ce252d7b2dccf0c7bb937130e27c0cd2";
+        name = "_types_react_dom___react_dom_16.9.8.tgz";
+        url  = "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.8.tgz";
+        sha1 = "fe4c1e11dfc67155733dfa6aa65108b4971cb423";
       };
     }
     {
-      name = "_types_react_infinite___react_infinite_0.0.34.tgz";
+      name = "_types_react_infinite___react_infinite_0.0.35.tgz";
       path = fetchurl {
-        name = "_types_react_infinite___react_infinite_0.0.34.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-infinite/-/react-infinite-0.0.34.tgz";
-        sha1 = "0b514f65c4ba80ad22dea079075e04345ddcaae2";
+        name = "_types_react_infinite___react_infinite_0.0.35.tgz";
+        url  = "https://registry.yarnpkg.com/@types/react-infinite/-/react-infinite-0.0.35.tgz";
+        sha1 = "0199474dcafe4a41c30d22a19ccafd8901634fb6";
       };
     }
     {
@@ -1490,27 +1626,27 @@
       };
     }
     {
-      name = "_types_react_router___react_router_5.1.7.tgz";
+      name = "_types_react_router___react_router_5.1.8.tgz";
       path = fetchurl {
-        name = "_types_react_router___react_router_5.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.7.tgz";
-        sha1 = "e9d12ed7dcfc79187e4d36667745b69a5aa11556";
+        name = "_types_react_router___react_router_5.1.8.tgz";
+        url  = "https://registry.yarnpkg.com/@types/react-router/-/react-router-5.1.8.tgz";
+        sha1 = "4614e5ba7559657438e17766bb95ef6ed6acc3fa";
       };
     }
     {
-      name = "_types_react_transition_group___react_transition_group_4.2.4.tgz";
+      name = "_types_react_transition_group___react_transition_group_4.4.0.tgz";
       path = fetchurl {
-        name = "_types_react_transition_group___react_transition_group_4.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.2.4.tgz";
-        sha1 = "c7416225987ccdb719262766c1483da8f826838d";
+        name = "_types_react_transition_group___react_transition_group_4.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/react-transition-group/-/react-transition-group-4.4.0.tgz";
+        sha1 = "882839db465df1320e4753e6e9f70ca7e9b4d46d";
       };
     }
     {
-      name = "_types_react___react_16.9.34.tgz";
+      name = "_types_react___react_16.9.49.tgz";
       path = fetchurl {
-        name = "_types_react___react_16.9.34.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react/-/react-16.9.34.tgz";
-        sha1 = "f7d5e331c468f53affed17a8a4d488cd44ea9349";
+        name = "_types_react___react_16.9.49.tgz";
+        url  = "https://registry.yarnpkg.com/@types/react/-/react-16.9.49.tgz";
+        sha1 = "09db021cf8089aba0cdb12a49f8021a69cce4872";
       };
     }
     {
@@ -1554,19 +1690,19 @@
       };
     }
     {
-      name = "_types_yargs___yargs_13.0.8.tgz";
+      name = "_types_yargs___yargs_13.0.10.tgz";
       path = fetchurl {
-        name = "_types_yargs___yargs_13.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.8.tgz";
-        sha1 = "a38c22def2f1c2068f8971acb3ea734eb3c64a99";
+        name = "_types_yargs___yargs_13.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.10.tgz";
+        sha1 = "e77bf3fc73c781d48c2eb541f87c453e321e5f4b";
       };
     }
     {
-      name = "_types_yargs___yargs_15.0.4.tgz";
+      name = "_types_yargs___yargs_15.0.5.tgz";
       path = fetchurl {
-        name = "_types_yargs___yargs_15.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.4.tgz";
-        sha1 = "7e5d0f8ca25e9d5849f2ea443cf7c402decd8299";
+        name = "_types_yargs___yargs_15.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.5.tgz";
+        sha1 = "947e9a6561483bdee9adffc983e91a6902af8b79";
       };
     }
     {
@@ -1578,35 +1714,91 @@
       };
     }
     {
-      name = "_typescript_eslint_eslint_plugin___eslint_plugin_2.31.0.tgz";
+      name = "_typescript_eslint_eslint_plugin___eslint_plugin_2.34.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_eslint_plugin___eslint_plugin_2.34.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.34.0.tgz";
+        sha1 = "6f8ce8a46c7dea4a6f1d171d2bb8fbae6dac2be9";
+      };
+    }
+    {
+      name = "_typescript_eslint_eslint_plugin___eslint_plugin_4.1.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_eslint_plugin___eslint_plugin_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.1.0.tgz";
+        sha1 = "7d309f60815ff35e9627ad85e41928d7b7fd443f";
+      };
+    }
+    {
+      name = "_typescript_eslint_experimental_utils___experimental_utils_2.34.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_experimental_utils___experimental_utils_2.34.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz";
+        sha1 = "d3524b644cdb40eebceca67f8cf3e4cc9c8f980f";
+      };
+    }
+    {
+      name = "_typescript_eslint_experimental_utils___experimental_utils_4.1.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_experimental_utils___experimental_utils_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-4.1.0.tgz";
+        sha1 = "263d7225645c09a411c8735eeffd417f50f49026";
+      };
+    }
+    {
+      name = "_typescript_eslint_parser___parser_2.34.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_parser___parser_2.34.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.34.0.tgz";
+        sha1 = "50252630ca319685420e9a39ca05fe185a256bc8";
+      };
+    }
+    {
+      name = "_typescript_eslint_parser___parser_4.1.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_parser___parser_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-4.1.0.tgz";
+        sha1 = "9b0409411725f14cd7faa81a664e5051225961db";
+      };
+    }
+    {
+      name = "_typescript_eslint_scope_manager___scope_manager_4.1.0.tgz";
       path = fetchurl {
-        name = "_typescript_eslint_eslint_plugin___eslint_plugin_2.31.0.tgz";
-        url  = "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.31.0.tgz";
-        sha1 = "942c921fec5e200b79593c71fafb1e3f57aa2e36";
+        name = "_typescript_eslint_scope_manager___scope_manager_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-4.1.0.tgz";
+        sha1 = "9e389745ee9cfe12252ed1e9958808abd6b3a683";
       };
     }
     {
-      name = "_typescript_eslint_experimental_utils___experimental_utils_2.31.0.tgz";
+      name = "_typescript_eslint_types___types_4.1.0.tgz";
       path = fetchurl {
-        name = "_typescript_eslint_experimental_utils___experimental_utils_2.31.0.tgz";
-        url  = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.31.0.tgz";
-        sha1 = "a9ec514bf7fd5e5e82bc10dcb6a86d58baae9508";
+        name = "_typescript_eslint_types___types_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-4.1.0.tgz";
+        sha1 = "edbd3fec346f34e13ce7aa176b03b497a32c496a";
       };
     }
     {
-      name = "_typescript_eslint_parser___parser_2.31.0.tgz";
+      name = "_typescript_eslint_typescript_estree___typescript_estree_2.34.0.tgz";
       path = fetchurl {
-        name = "_typescript_eslint_parser___parser_2.31.0.tgz";
-        url  = "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.31.0.tgz";
-        sha1 = "beddd4e8efe64995108b229b2862cd5752d40d6f";
+        name = "_typescript_eslint_typescript_estree___typescript_estree_2.34.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz";
+        sha1 = "14aeb6353b39ef0732cc7f1b8285294937cf37d5";
       };
     }
     {
-      name = "_typescript_eslint_typescript_estree___typescript_estree_2.31.0.tgz";
+      name = "_typescript_eslint_typescript_estree___typescript_estree_4.1.0.tgz";
       path = fetchurl {
-        name = "_typescript_eslint_typescript_estree___typescript_estree_2.31.0.tgz";
-        url  = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.31.0.tgz";
-        sha1 = "ac536c2d46672aa1f27ba0ec2140d53670635cfd";
+        name = "_typescript_eslint_typescript_estree___typescript_estree_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-4.1.0.tgz";
+        sha1 = "394046ead25164494218c0e3d6b960695ea967f6";
+      };
+    }
+    {
+      name = "_typescript_eslint_visitor_keys___visitor_keys_4.1.0.tgz";
+      path = fetchurl {
+        name = "_typescript_eslint_visitor_keys___visitor_keys_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-4.1.0.tgz";
+        sha1 = "b2d528c9484e7eda1aa4f86ccf0432fb16e4d545";
       };
     }
     {
@@ -1770,11 +1962,11 @@
       };
     }
     {
-      name = "abab___abab_2.0.3.tgz";
+      name = "abab___abab_2.0.5.tgz";
       path = fetchurl {
-        name = "abab___abab_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz";
-        sha1 = "623e2075e02eb2d3f2475e49f99c91846467907a";
+        name = "abab___abab_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz";
+        sha1 = "c0b678fb32d60fc1219c784d6a826fe385aeb79a";
       };
     }
     {
@@ -1794,11 +1986,11 @@
       };
     }
     {
-      name = "acorn_jsx___acorn_jsx_5.2.0.tgz";
+      name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
       path = fetchurl {
-        name = "acorn_jsx___acorn_jsx_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz";
-        sha1 = "4c66069173d6fdd68ed85239fc256226182b2ebe";
+        name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz";
+        sha1 = "fc8661e11b7ac1539c47dbfea2e72b3af34d267b";
       };
     }
     {
@@ -1826,11 +2018,11 @@
       };
     }
     {
-      name = "acorn___acorn_7.1.1.tgz";
+      name = "acorn___acorn_7.4.0.tgz";
       path = fetchurl {
-        name = "acorn___acorn_7.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz";
-        sha1 = "e35668de0b402f359de515c5482a1ab9f89a69bf";
+        name = "acorn___acorn_7.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-7.4.0.tgz";
+        sha1 = "e1ad486e6c54501634c6c397c5c121daa383607c";
       };
     }
     {
@@ -1858,19 +2050,19 @@
       };
     }
     {
-      name = "aggregate_error___aggregate_error_3.0.1.tgz";
+      name = "aggregate_error___aggregate_error_3.1.0.tgz";
       path = fetchurl {
-        name = "aggregate_error___aggregate_error_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz";
-        sha1 = "db2fe7246e536f40d9b5442a39e117d7dd6a24e0";
+        name = "aggregate_error___aggregate_error_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz";
+        sha1 = "92670ff50f5359bdb7a3e0d40d0ec30c5737687a";
       };
     }
     {
-      name = "airbnb_prop_types___airbnb_prop_types_2.15.0.tgz";
+      name = "airbnb_prop_types___airbnb_prop_types_2.16.0.tgz";
       path = fetchurl {
-        name = "airbnb_prop_types___airbnb_prop_types_2.15.0.tgz";
-        url  = "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.15.0.tgz";
-        sha1 = "5287820043af1eb469f5b0af0d6f70da6c52aaef";
+        name = "airbnb_prop_types___airbnb_prop_types_2.16.0.tgz";
+        url  = "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz";
+        sha1 = "b96274cefa1abb14f623f804173ee97c13971dc2";
       };
     }
     {
@@ -1882,19 +2074,19 @@
       };
     }
     {
-      name = "ajv_keywords___ajv_keywords_3.4.1.tgz";
+      name = "ajv_keywords___ajv_keywords_3.5.2.tgz";
       path = fetchurl {
-        name = "ajv_keywords___ajv_keywords_3.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz";
-        sha1 = "ef916e271c64ac12171fd8384eaae6b2345854da";
+        name = "ajv_keywords___ajv_keywords_3.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz";
+        sha1 = "31f29da5ab6e00d1c2d329acf7b5929614d5014d";
       };
     }
     {
-      name = "ajv___ajv_6.12.2.tgz";
+      name = "ajv___ajv_6.12.4.tgz";
       path = fetchurl {
-        name = "ajv___ajv_6.12.2.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz";
-        sha1 = "c629c5eced17baf314437918d2da88c99d5958cd";
+        name = "ajv___ajv_6.12.4.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.4.tgz";
+        sha1 = "0614facc4522127fa713445c6bfd3ebd376e2234";
       };
     }
     {
@@ -2106,6 +2298,14 @@
       };
     }
     {
+      name = "array_union___array_union_2.1.0.tgz";
+      path = fetchurl {
+        name = "array_union___array_union_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz";
+        sha1 = "b798420adbeb1de828d84acd8a2e23d3efe85e8d";
+      };
+    }
+    {
       name = "array_uniq___array_uniq_1.0.3.tgz";
       path = fetchurl {
         name = "array_uniq___array_uniq_1.0.3.tgz";
@@ -2138,6 +2338,14 @@
       };
     }
     {
+      name = "array.prototype.flatmap___array.prototype.flatmap_1.2.3.tgz";
+      path = fetchurl {
+        name = "array.prototype.flatmap___array.prototype.flatmap_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz";
+        sha1 = "1c13f84a178566042dd63de4414440db9222e443";
+      };
+    }
+    {
       name = "arrify___arrify_1.0.1.tgz";
       path = fetchurl {
         name = "arrify___arrify_1.0.1.tgz";
@@ -2154,11 +2362,11 @@
       };
     }
     {
-      name = "asn1.js___asn1.js_4.10.1.tgz";
+      name = "asn1.js___asn1.js_5.4.1.tgz";
       path = fetchurl {
-        name = "asn1.js___asn1.js_4.10.1.tgz";
-        url  = "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz";
-        sha1 = "b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0";
+        name = "asn1.js___asn1.js_5.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz";
+        sha1 = "11a980b84ebb91781ce35b0fdc2ee294e3783f07";
       };
     }
     {
@@ -2258,11 +2466,11 @@
       };
     }
     {
-      name = "autoprefixer___autoprefixer_9.7.6.tgz";
+      name = "autoprefixer___autoprefixer_9.8.6.tgz";
       path = fetchurl {
-        name = "autoprefixer___autoprefixer_9.7.6.tgz";
-        url  = "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.6.tgz";
-        sha1 = "63ac5bbc0ce7934e6997207d5bb00d68fa8293a4";
+        name = "autoprefixer___autoprefixer_9.8.6.tgz";
+        url  = "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz";
+        sha1 = "3b73594ca1bf9266320c5acf1588d74dea74210f";
       };
     }
     {
@@ -2274,11 +2482,11 @@
       };
     }
     {
-      name = "aws4___aws4_1.9.1.tgz";
+      name = "aws4___aws4_1.10.1.tgz";
       path = fetchurl {
-        name = "aws4___aws4_1.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz";
-        sha1 = "7e33d8f7d449b3f673cd72deb9abdc552dbe528e";
+        name = "aws4___aws4_1.10.1.tgz";
+        url  = "https://registry.yarnpkg.com/aws4/-/aws4-1.10.1.tgz";
+        sha1 = "e1e82e4f3e999e2cfd61b161280d16a111f86428";
       };
     }
     {
@@ -2290,11 +2498,19 @@
       };
     }
     {
-      name = "axobject_query___axobject_query_2.1.2.tgz";
+      name = "axios___axios_0.20.0.tgz";
       path = fetchurl {
-        name = "axobject_query___axobject_query_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.1.2.tgz";
-        sha1 = "2bdffc0371e643e5f03ba99065d5179b9ca79799";
+        name = "axios___axios_0.20.0.tgz";
+        url  = "https://registry.yarnpkg.com/axios/-/axios-0.20.0.tgz";
+        sha1 = "057ba30f04884694993a8cd07fa394cff11c50bd";
+      };
+    }
+    {
+      name = "axobject_query___axobject_query_2.2.0.tgz";
+      path = fetchurl {
+        name = "axobject_query___axobject_query_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz";
+        sha1 = "943d47e10c0b704aa42275e20edf3722648989be";
       };
     }
     {
@@ -2498,11 +2714,11 @@
       };
     }
     {
-      name = "binary_extensions___binary_extensions_2.0.0.tgz";
+      name = "binary_extensions___binary_extensions_2.1.0.tgz";
       path = fetchurl {
-        name = "binary_extensions___binary_extensions_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz";
-        sha1 = "23c0df14f6a88077f5f986c0d167ec03c3d5537c";
+        name = "binary_extensions___binary_extensions_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.1.0.tgz";
+        sha1 = "30fa40c9e7fe07dbc895678cd287024dea241dd9";
       };
     }
     {
@@ -2514,11 +2730,11 @@
       };
     }
     {
-      name = "bl___bl_4.0.2.tgz";
+      name = "bl___bl_4.0.3.tgz";
       path = fetchurl {
-        name = "bl___bl_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/bl/-/bl-4.0.2.tgz";
-        sha1 = "52b71e9088515d0606d9dd9cc7aa48dc1f98e73a";
+        name = "bl___bl_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz";
+        sha1 = "12d6287adc29080e22a705e5764b2a9522cdc489";
       };
     }
     {
@@ -2530,19 +2746,19 @@
       };
     }
     {
-      name = "bn.js___bn.js_4.11.8.tgz";
+      name = "bn.js___bn.js_4.11.9.tgz";
       path = fetchurl {
-        name = "bn.js___bn.js_4.11.8.tgz";
-        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz";
-        sha1 = "2cde09eb5ee341f484746bb0309b3253b1b1442f";
+        name = "bn.js___bn.js_4.11.9.tgz";
+        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz";
+        sha1 = "26d556829458f9d1e81fc48952493d0ba3507828";
       };
     }
     {
-      name = "bn.js___bn.js_5.1.1.tgz";
+      name = "bn.js___bn.js_5.1.3.tgz";
       path = fetchurl {
-        name = "bn.js___bn.js_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.1.tgz";
-        sha1 = "48efc4031a9c4041b9c99c6941d903463ab62eb5";
+        name = "bn.js___bn.js_5.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz";
+        sha1 = "beca005408f642ebebea80b042b4d18d2ac0ee6b";
       };
     }
     {
@@ -2650,11 +2866,11 @@
       };
     }
     {
-      name = "browserify_sign___browserify_sign_4.1.0.tgz";
+      name = "browserify_sign___browserify_sign_4.2.1.tgz";
       path = fetchurl {
-        name = "browserify_sign___browserify_sign_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.1.0.tgz";
-        sha1 = "4fe971b379a5aeb4925e06779f9fa1f41d249d70";
+        name = "browserify_sign___browserify_sign_4.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz";
+        sha1 = "eaf4add46dd54be3bb3b36c0cf15abbeba7956c3";
       };
     }
     {
@@ -2674,11 +2890,11 @@
       };
     }
     {
-      name = "browserslist___browserslist_4.12.0.tgz";
+      name = "browserslist___browserslist_4.14.2.tgz";
       path = fetchurl {
-        name = "browserslist___browserslist_4.12.0.tgz";
-        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz";
-        sha1 = "06c6d5715a1ede6c51fc39ff67fd647f740b656d";
+        name = "browserslist___browserslist_4.14.2.tgz";
+        url  = "https://registry.yarnpkg.com/browserslist/-/browserslist-4.14.2.tgz";
+        sha1 = "1b3cec458a1ba87588cc5e9be62f19b6d48813ce";
       };
     }
     {
@@ -2738,14 +2954,6 @@
       };
     }
     {
-      name = "builtin_modules___builtin_modules_1.1.1.tgz";
-      path = fetchurl {
-        name = "builtin_modules___builtin_modules_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz";
-        sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
-      };
-    }
-    {
       name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
       path = fetchurl {
         name = "builtin_status_codes___builtin_status_codes_3.0.0.tgz";
@@ -2866,11 +3074,11 @@
       };
     }
     {
-      name = "caniuse_lite___caniuse_lite_1.0.30001054.tgz";
+      name = "caniuse_lite___caniuse_lite_1.0.30001125.tgz";
       path = fetchurl {
-        name = "caniuse_lite___caniuse_lite_1.0.30001054.tgz";
-        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001054.tgz";
-        sha1 = "7e82fc42d927980b0ce1426c4813df12381e1a75";
+        name = "caniuse_lite___caniuse_lite_1.0.30001125.tgz";
+        url  = "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001125.tgz";
+        sha1 = "2a1a51ee045a0a2207474b086f628c34725e997b";
       };
     }
     {
@@ -2922,6 +3130,14 @@
       };
     }
     {
+      name = "chalk___chalk_4.1.0.tgz";
+      path = fetchurl {
+        name = "chalk___chalk_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz";
+        sha1 = "4e14870a618d9e2edd97dd8345fd9d9dc315646a";
+      };
+    }
+    {
       name = "character_entities_legacy___character_entities_legacy_1.1.4.tgz";
       path = fetchurl {
         name = "character_entities_legacy___character_entities_legacy_1.1.4.tgz";
@@ -2962,11 +3178,11 @@
       };
     }
     {
-      name = "chokidar___chokidar_3.4.0.tgz";
+      name = "chokidar___chokidar_3.4.2.tgz";
       path = fetchurl {
-        name = "chokidar___chokidar_3.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.0.tgz";
-        sha1 = "b30611423ce376357c765b9b8f904b9fba3c0be8";
+        name = "chokidar___chokidar_3.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz";
+        sha1 = "38dc8e658dec3809741eb3ef7bb0a47fe424232d";
       };
     }
     {
@@ -3018,6 +3234,14 @@
       };
     }
     {
+      name = "clean_regexp___clean_regexp_1.0.0.tgz";
+      path = fetchurl {
+        name = "clean_regexp___clean_regexp_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/clean-regexp/-/clean-regexp-1.0.0.tgz";
+        sha1 = "8df7c7aae51fd36874e8f8d05b9180bc11a3fed7";
+      };
+    }
+    {
       name = "clean_stack___clean_stack_2.2.0.tgz";
       path = fetchurl {
         name = "clean_stack___clean_stack_2.2.0.tgz";
@@ -3042,11 +3266,11 @@
       };
     }
     {
-      name = "cliui___cliui_4.1.0.tgz";
+      name = "cli_width___cli_width_3.0.0.tgz";
       path = fetchurl {
-        name = "cliui___cliui_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz";
-        sha1 = "348422dbe82d800b3022eef4f6ac10bf2e4d1b49";
+        name = "cli_width___cli_width_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz";
+        sha1 = "a2f48437a2caa9a22436e794bf071ec9e61cedf6";
       };
     }
     {
@@ -3074,11 +3298,11 @@
       };
     }
     {
-      name = "clsx___clsx_1.1.0.tgz";
+      name = "clsx___clsx_1.1.1.tgz";
       path = fetchurl {
-        name = "clsx___clsx_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/clsx/-/clsx-1.1.0.tgz";
-        sha1 = "62937c6adfea771247c34b54d320fb99624f5702";
+        name = "clsx___clsx_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/clsx/-/clsx-1.1.1.tgz";
+        sha1 = "98b3134f9abbdf23b2663491ace13c5c03a73188";
       };
     }
     {
@@ -3098,19 +3322,11 @@
       };
     }
     {
-      name = "code_point_at___code_point_at_1.1.0.tgz";
-      path = fetchurl {
-        name = "code_point_at___code_point_at_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz";
-        sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
-      };
-    }
-    {
-      name = "codemirror___codemirror_5.53.2.tgz";
+      name = "codemirror___codemirror_5.57.0.tgz";
       path = fetchurl {
-        name = "codemirror___codemirror_5.53.2.tgz";
-        url  = "https://registry.yarnpkg.com/codemirror/-/codemirror-5.53.2.tgz";
-        sha1 = "9799121cf8c50809cca487304e9de3a74d33f428";
+        name = "codemirror___codemirror_5.57.0.tgz";
+        url  = "https://registry.yarnpkg.com/codemirror/-/codemirror-5.57.0.tgz";
+        sha1 = "d26365b72f909f5d2dbb6b1209349ca1daeb2d50";
       };
     }
     {
@@ -3178,6 +3394,14 @@
       };
     }
     {
+      name = "colorette___colorette_1.2.1.tgz";
+      path = fetchurl {
+        name = "colorette___colorette_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/colorette/-/colorette-1.2.1.tgz";
+        sha1 = "4d0b921325c14faf92633086a536db6e89564b1b";
+      };
+    }
+    {
       name = "combined_stream___combined_stream_1.0.8.tgz";
       path = fetchurl {
         name = "combined_stream___combined_stream_1.0.8.tgz";
@@ -3434,11 +3658,11 @@
       };
     }
     {
-      name = "create_ecdh___create_ecdh_4.0.3.tgz";
+      name = "create_ecdh___create_ecdh_4.0.4.tgz";
       path = fetchurl {
-        name = "create_ecdh___create_ecdh_4.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz";
-        sha1 = "c9111b6f33045c4697f144787f9254cdc77c45ff";
+        name = "create_ecdh___create_ecdh_4.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz";
+        sha1 = "d6e7f4bffa66736085a0762fd3a632684dabcc4e";
       };
     }
     {
@@ -3586,11 +3810,11 @@
       };
     }
     {
-      name = "css_what___css_what_3.2.1.tgz";
+      name = "css_what___css_what_3.3.0.tgz";
       path = fetchurl {
-        name = "css_what___css_what_3.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz";
-        sha1 = "f4a8f12421064621b456755e34a03a2c22df5da1";
+        name = "css_what___css_what_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/css-what/-/css-what-3.3.0.tgz";
+        sha1 = "10fec696a9ece2e591ac772d759aacabac38cd39";
       };
     }
     {
@@ -3698,11 +3922,19 @@
       };
     }
     {
-      name = "csstype___csstype_2.6.10.tgz";
+      name = "csstype___csstype_2.6.13.tgz";
+      path = fetchurl {
+        name = "csstype___csstype_2.6.13.tgz";
+        url  = "https://registry.yarnpkg.com/csstype/-/csstype-2.6.13.tgz";
+        sha1 = "a6893015b90e84dd6e85d0e3b442a1e84f2dbe0f";
+      };
+    }
+    {
+      name = "csstype___csstype_3.0.3.tgz";
       path = fetchurl {
-        name = "csstype___csstype_2.6.10.tgz";
-        url  = "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz";
-        sha1 = "e63af50e66d7c266edb6b32909cfd0aabe03928b";
+        name = "csstype___csstype_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/csstype/-/csstype-3.0.3.tgz";
+        sha1 = "2b410bbeba38ba9633353aff34b05d9755d065f8";
       };
     }
     {
@@ -3890,11 +4122,11 @@
       };
     }
     {
-      name = "detect_browser___detect_browser_5.1.0.tgz";
+      name = "detect_browser___detect_browser_5.1.1.tgz";
       path = fetchurl {
-        name = "detect_browser___detect_browser_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.1.0.tgz";
-        sha1 = "0c51c66b747ad8f98a6832bf3026a5a23a7850ff";
+        name = "detect_browser___detect_browser_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/detect-browser/-/detect-browser-5.1.1.tgz";
+        sha1 = "a800db91d3fd60d0861669f5984f1be9ffbe009c";
       };
     }
     {
@@ -3922,6 +4154,14 @@
       };
     }
     {
+      name = "devtools_protocol___devtools_protocol_0.0.799653.tgz";
+      path = fetchurl {
+        name = "devtools_protocol___devtools_protocol_0.0.799653.tgz";
+        url  = "https://registry.yarnpkg.com/devtools-protocol/-/devtools-protocol-0.0.799653.tgz";
+        sha1 = "86fc95ce5bf4fdf4b77a58047ba9d2301078f119";
+      };
+    }
+    {
       name = "diff_sequences___diff_sequences_24.9.0.tgz";
       path = fetchurl {
         name = "diff_sequences___diff_sequences_24.9.0.tgz";
@@ -3938,14 +4178,6 @@
       };
     }
     {
-      name = "diff___diff_4.0.2.tgz";
-      path = fetchurl {
-        name = "diff___diff_4.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz";
-        sha1 = "60f3aecb89d5fae520c11aa19efc2bb982aade7d";
-      };
-    }
-    {
       name = "diffie_hellman___diffie_hellman_5.0.3.tgz";
       path = fetchurl {
         name = "diffie_hellman___diffie_hellman_5.0.3.tgz";
@@ -3962,6 +4194,14 @@
       };
     }
     {
+      name = "dir_glob___dir_glob_3.0.1.tgz";
+      path = fetchurl {
+        name = "dir_glob___dir_glob_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz";
+        sha1 = "56dbf73d992a4a93ba1584f4534063fd2e41717f";
+      };
+    }
+    {
       name = "dns_equal___dns_equal_1.0.0.tgz";
       path = fetchurl {
         name = "dns_equal___dns_equal_1.0.0.tgz";
@@ -4018,11 +4258,11 @@
       };
     }
     {
-      name = "dom_helpers___dom_helpers_5.1.4.tgz";
+      name = "dom_helpers___dom_helpers_5.2.0.tgz";
       path = fetchurl {
-        name = "dom_helpers___dom_helpers_5.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.1.4.tgz";
-        sha1 = "4609680ab5c79a45f2531441f1949b79d6587f4b";
+        name = "dom_helpers___dom_helpers_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-5.2.0.tgz";
+        sha1 = "57fd054c5f8f34c52a3eeffdb7e7e93cd357d95b";
       };
     }
     {
@@ -4034,6 +4274,14 @@
       };
     }
     {
+      name = "dom_serializer___dom_serializer_1.0.1.tgz";
+      path = fetchurl {
+        name = "dom_serializer___dom_serializer_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.0.1.tgz";
+        sha1 = "79695eb49af3cd8abc8d93a73da382deb1ca0795";
+      };
+    }
+    {
       name = "domain_browser___domain_browser_1.2.0.tgz";
       path = fetchurl {
         name = "domain_browser___domain_browser_1.2.0.tgz";
@@ -4098,11 +4346,11 @@
       };
     }
     {
-      name = "domutils___domutils_2.0.0.tgz";
+      name = "domutils___domutils_2.2.0.tgz";
       path = fetchurl {
-        name = "domutils___domutils_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/domutils/-/domutils-2.0.0.tgz";
-        sha1 = "15b8278e37bfa8468d157478c58c367718133c08";
+        name = "domutils___domutils_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/domutils/-/domutils-2.2.0.tgz";
+        sha1 = "f3ce1610af5c30280bde1b71f84b018b958f32cf";
       };
     }
     {
@@ -4114,11 +4362,11 @@
       };
     }
     {
-      name = "dot_prop___dot_prop_5.2.0.tgz";
+      name = "dot_prop___dot_prop_5.3.0.tgz";
       path = fetchurl {
-        name = "dot_prop___dot_prop_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz";
-        sha1 = "c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb";
+        name = "dot_prop___dot_prop_5.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz";
+        sha1 = "90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88";
       };
     }
     {
@@ -4138,11 +4386,11 @@
       };
     }
     {
-      name = "duplexer___duplexer_0.1.1.tgz";
+      name = "duplexer___duplexer_0.1.2.tgz";
       path = fetchurl {
-        name = "duplexer___duplexer_0.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz";
-        sha1 = "ace6ff808c1ce66b57d1ebf97977acb02334cfc1";
+        name = "duplexer___duplexer_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz";
+        sha1 = "3abe43aef3835f8ae077d136ddce0f276b0400e6";
       };
     }
     {
@@ -4170,19 +4418,19 @@
       };
     }
     {
-      name = "electron_to_chromium___electron_to_chromium_1.3.431.tgz";
+      name = "electron_to_chromium___electron_to_chromium_1.3.566.tgz";
       path = fetchurl {
-        name = "electron_to_chromium___electron_to_chromium_1.3.431.tgz";
-        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.431.tgz";
-        sha1 = "705dd8ef46200415ba837b31d927cdc1e43db303";
+        name = "electron_to_chromium___electron_to_chromium_1.3.566.tgz";
+        url  = "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.566.tgz";
+        sha1 = "e373876bb63e5c9bbcbe1b48cbb2db000f79bf88";
       };
     }
     {
-      name = "elliptic___elliptic_6.5.2.tgz";
+      name = "elliptic___elliptic_6.5.3.tgz";
       path = fetchurl {
-        name = "elliptic___elliptic_6.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz";
-        sha1 = "05c5678d7173c049d8ca433552224a495d0e3762";
+        name = "elliptic___elliptic_6.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz";
+        sha1 = "cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6";
       };
     }
     {
@@ -4226,11 +4474,11 @@
       };
     }
     {
-      name = "encoding___encoding_0.1.12.tgz";
+      name = "encoding___encoding_0.1.13.tgz";
       path = fetchurl {
-        name = "encoding___encoding_0.1.12.tgz";
-        url  = "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz";
-        sha1 = "538b66f3ee62cd1ab51ec323829d1f9480c74beb";
+        name = "encoding___encoding_0.1.13.tgz";
+        url  = "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz";
+        sha1 = "56574afdd791f54a8e9b2785c0582a2d26210fa9";
       };
     }
     {
@@ -4242,11 +4490,11 @@
       };
     }
     {
-      name = "enhanced_resolve___enhanced_resolve_4.1.1.tgz";
+      name = "enhanced_resolve___enhanced_resolve_4.3.0.tgz";
       path = fetchurl {
-        name = "enhanced_resolve___enhanced_resolve_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz";
-        sha1 = "2937e2b8066cd0fe7ce0990a98f0d71a35189f66";
+        name = "enhanced_resolve___enhanced_resolve_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz";
+        sha1 = "3b806f3bfafc1ec7de69551ef93cca46c1704126";
       };
     }
     {
@@ -4258,11 +4506,11 @@
       };
     }
     {
-      name = "entities___entities_2.0.0.tgz";
+      name = "entities___entities_2.0.3.tgz";
       path = fetchurl {
-        name = "entities___entities_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz";
-        sha1 = "68d6084cab1b079767540d80e56a39b423e4abf4";
+        name = "entities___entities_2.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz";
+        sha1 = "5c487e5742ab93c15abb5da22759b8590ec03b7f";
       };
     }
     {
@@ -4274,11 +4522,11 @@
       };
     }
     {
-      name = "enzyme_adapter_utils___enzyme_adapter_utils_1.13.0.tgz";
+      name = "enzyme_adapter_utils___enzyme_adapter_utils_1.13.1.tgz";
       path = fetchurl {
-        name = "enzyme_adapter_utils___enzyme_adapter_utils_1.13.0.tgz";
-        url  = "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.0.tgz";
-        sha1 = "01c885dde2114b4690bf741f8dc94cee3060eb78";
+        name = "enzyme_adapter_utils___enzyme_adapter_utils_1.13.1.tgz";
+        url  = "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.13.1.tgz";
+        sha1 = "59c1b734b0927543e3d8dc477299ec957feb312d";
       };
     }
     {
@@ -4298,11 +4546,19 @@
       };
     }
     {
-      name = "es_abstract___es_abstract_1.17.5.tgz";
+      name = "es_abstract___es_abstract_1.17.6.tgz";
       path = fetchurl {
-        name = "es_abstract___es_abstract_1.17.5.tgz";
-        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz";
-        sha1 = "d8c9d1d66c8981fb9200e2251d799eee92774ae9";
+        name = "es_abstract___es_abstract_1.17.6.tgz";
+        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz";
+        sha1 = "9142071707857b2cacc7b89ecb670316c3e2d52a";
+      };
+    }
+    {
+      name = "es_abstract___es_abstract_1.18.0_next.0.tgz";
+      path = fetchurl {
+        name = "es_abstract___es_abstract_1.18.0_next.0.tgz";
+        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.0.tgz";
+        sha1 = "b302834927e624d8e5837ed48224291f2c66e6fc";
       };
     }
     {
@@ -4338,6 +4594,14 @@
       };
     }
     {
+      name = "escalade___escalade_3.0.2.tgz";
+      path = fetchurl {
+        name = "escalade___escalade_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz";
+        sha1 = "6a580d70edb87880f22b4c91d0d56078df6962c4";
+      };
+    }
+    {
       name = "escape_html___escape_html_1.0.3.tgz";
       path = fetchurl {
         name = "escape_html___escape_html_1.0.3.tgz";
@@ -4362,11 +4626,27 @@
       };
     }
     {
-      name = "escodegen___escodegen_1.14.1.tgz";
+      name = "escodegen___escodegen_1.14.3.tgz";
       path = fetchurl {
-        name = "escodegen___escodegen_1.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz";
-        sha1 = "ba01d0c8278b5e95a9a45350142026659027a457";
+        name = "escodegen___escodegen_1.14.3.tgz";
+        url  = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz";
+        sha1 = "4e7b81fba61581dc97582ed78cab7f0e8d63f503";
+      };
+    }
+    {
+      name = "eslint_ast_utils___eslint_ast_utils_1.1.0.tgz";
+      path = fetchurl {
+        name = "eslint_ast_utils___eslint_ast_utils_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-ast-utils/-/eslint-ast-utils-1.1.0.tgz";
+        sha1 = "3d58ba557801cfb1c941d68131ee9f8c34bd1586";
+      };
+    }
+    {
+      name = "eslint_config_prettier___eslint_config_prettier_6.11.0.tgz";
+      path = fetchurl {
+        name = "eslint_config_prettier___eslint_config_prettier_6.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-6.11.0.tgz";
+        sha1 = "f6d2238c1290d01c859a8b5c1f7d352a0b0da8b1";
       };
     }
     {
@@ -4378,11 +4658,11 @@
       };
     }
     {
-      name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.3.tgz";
+      name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
       path = fetchurl {
-        name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz";
-        sha1 = "dbaa52b6b2816b50bc6711af75422de808e98404";
+        name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz";
+        sha1 = "85ffa81942c25012d8231096ddf679c03042c717";
       };
     }
     {
@@ -4418,6 +4698,22 @@
       };
     }
     {
+      name = "eslint_plugin_import___eslint_plugin_import_2.22.0.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_import___eslint_plugin_import_2.22.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz";
+        sha1 = "92f7736fe1fde3e2de77623c838dd992ff5ffb7e";
+      };
+    }
+    {
+      name = "eslint_plugin_jest___eslint_plugin_jest_24.0.0.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_jest___eslint_plugin_jest_24.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-24.0.0.tgz";
+        sha1 = "6b1c460c529104c7d16d889e76fe708b281c4d14";
+      };
+    }
+    {
       name = "eslint_plugin_jsx_a11y___eslint_plugin_jsx_a11y_6.2.3.tgz";
       path = fetchurl {
         name = "eslint_plugin_jsx_a11y___eslint_plugin_jsx_a11y_6.2.3.tgz";
@@ -4426,6 +4722,14 @@
       };
     }
     {
+      name = "eslint_plugin_prefer_arrow___eslint_plugin_prefer_arrow_1.2.2.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_prefer_arrow___eslint_plugin_prefer_arrow_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.2.tgz";
+        sha1 = "0c6d25a6b94cb3e0110a23d129760af5860edb6e";
+      };
+    }
+    {
       name = "eslint_plugin_react_hooks___eslint_plugin_react_hooks_1.7.0.tgz";
       path = fetchurl {
         name = "eslint_plugin_react_hooks___eslint_plugin_react_hooks_1.7.0.tgz";
@@ -4442,6 +4746,22 @@
       };
     }
     {
+      name = "eslint_plugin_react___eslint_plugin_react_7.20.6.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_react___eslint_plugin_react_7.20.6.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.6.tgz";
+        sha1 = "4d7845311a93c463493ccfa0a19c9c5d0fd69f60";
+      };
+    }
+    {
+      name = "eslint_plugin_unicorn___eslint_plugin_unicorn_21.0.0.tgz";
+      path = fetchurl {
+        name = "eslint_plugin_unicorn___eslint_plugin_unicorn_21.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-21.0.0.tgz";
+        sha1 = "7e3a8b0f725f003619e1f40d769939ecd8d708d0";
+      };
+    }
+    {
       name = "eslint_scope___eslint_scope_4.0.3.tgz";
       path = fetchurl {
         name = "eslint_scope___eslint_scope_4.0.3.tgz";
@@ -4450,11 +4770,19 @@
       };
     }
     {
-      name = "eslint_scope___eslint_scope_5.0.0.tgz";
+      name = "eslint_scope___eslint_scope_5.1.0.tgz";
       path = fetchurl {
-        name = "eslint_scope___eslint_scope_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz";
-        sha1 = "e87c8887c73e8d1ec84f1ca591645c358bfc8fb9";
+        name = "eslint_scope___eslint_scope_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz";
+        sha1 = "d0f971dfe59c69e0cada684b23d49dbf82600ce5";
+      };
+    }
+    {
+      name = "eslint_template_visitor___eslint_template_visitor_2.2.1.tgz";
+      path = fetchurl {
+        name = "eslint_template_visitor___eslint_template_visitor_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-template-visitor/-/eslint-template-visitor-2.2.1.tgz";
+        sha1 = "2dccb1ab28fa7429e56ba6dd0144def2d89bc2d6";
       };
     }
     {
@@ -4466,19 +4794,27 @@
       };
     }
     {
-      name = "eslint_utils___eslint_utils_2.0.0.tgz";
+      name = "eslint_utils___eslint_utils_2.1.0.tgz";
+      path = fetchurl {
+        name = "eslint_utils___eslint_utils_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz";
+        sha1 = "d2de5e03424e707dc10c74068ddedae708741b27";
+      };
+    }
+    {
+      name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
       path = fetchurl {
-        name = "eslint_utils___eslint_utils_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz";
-        sha1 = "7be1cc70f27a72a76cd14aa698bcabed6890e1cd";
+        name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
+        sha1 = "30ebd1ef7c2fdff01c3a4f151044af25fab0523e";
       };
     }
     {
-      name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
+      name = "eslint_visitor_keys___eslint_visitor_keys_2.0.0.tgz";
       path = fetchurl {
-        name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz";
-        sha1 = "e2a82cea84ff246ad6fb57f9bde5b46621459ec2";
+        name = "eslint_visitor_keys___eslint_visitor_keys_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz";
+        sha1 = "21fdc8fbcd9c795cc0321f0563702095751511a8";
       };
     }
     {
@@ -4514,11 +4850,11 @@
       };
     }
     {
-      name = "esrecurse___esrecurse_4.2.1.tgz";
+      name = "esrecurse___esrecurse_4.3.0.tgz";
       path = fetchurl {
-        name = "esrecurse___esrecurse_4.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz";
-        sha1 = "007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf";
+        name = "esrecurse___esrecurse_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz";
+        sha1 = "7ad7964d679abb28bee72cec63758b1c5d2c9921";
       };
     }
     {
@@ -4530,11 +4866,11 @@
       };
     }
     {
-      name = "estraverse___estraverse_5.1.0.tgz";
+      name = "estraverse___estraverse_5.2.0.tgz";
       path = fetchurl {
-        name = "estraverse___estraverse_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz";
-        sha1 = "374309d39fd935ae500e7b92e8a6b4c720e59642";
+        name = "estraverse___estraverse_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz";
+        sha1 = "307df42547e6cc7324d3cf03c155d5cdb8c53880";
       };
     }
     {
@@ -4554,19 +4890,19 @@
       };
     }
     {
-      name = "eventemitter3___eventemitter3_4.0.0.tgz";
+      name = "eventemitter3___eventemitter3_4.0.7.tgz";
       path = fetchurl {
-        name = "eventemitter3___eventemitter3_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz";
-        sha1 = "d65176163887ee59f386d64c82610b696a4a74eb";
+        name = "eventemitter3___eventemitter3_4.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz";
+        sha1 = "2de9b68f6528d5644ef5c59526a1b4a07306169f";
       };
     }
     {
-      name = "events___events_3.1.0.tgz";
+      name = "events___events_3.2.0.tgz";
       path = fetchurl {
-        name = "events___events_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz";
-        sha1 = "84279af1b34cb75aa88bf5ff291f6d0bd9b31a59";
+        name = "events___events_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz";
+        sha1 = "93b87c18f8efcd4202a461aec4dfc0556b639379";
       };
     }
     {
@@ -4682,11 +5018,11 @@
       };
     }
     {
-      name = "extract_zip___extract_zip_2.0.0.tgz";
+      name = "extract_zip___extract_zip_2.0.1.tgz";
       path = fetchurl {
-        name = "extract_zip___extract_zip_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.0.tgz";
-        sha1 = "f53b71d44f4ff5a4527a2259ade000fb8b303492";
+        name = "extract_zip___extract_zip_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/extract-zip/-/extract-zip-2.0.1.tgz";
+        sha1 = "663dca56fe46df890d5f131ef4a06d22bb8ba13a";
       };
     }
     {
@@ -4706,11 +5042,11 @@
       };
     }
     {
-      name = "fast_deep_equal___fast_deep_equal_3.1.1.tgz";
+      name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
       path = fetchurl {
-        name = "fast_deep_equal___fast_deep_equal_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz";
-        sha1 = "545145077c501491e33b15ec408c294376e94ae4";
+        name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+        sha1 = "3a7d56b559d6cbc3eb512325244e619a65c6c525";
       };
     }
     {
@@ -4722,6 +5058,14 @@
       };
     }
     {
+      name = "fast_glob___fast_glob_3.2.4.tgz";
+      path = fetchurl {
+        name = "fast_glob___fast_glob_3.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.4.tgz";
+        sha1 = "d20aefbf99579383e7f3cc66529158c9b98554d3";
+      };
+    }
+    {
       name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
       path = fetchurl {
         name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
@@ -4738,6 +5082,14 @@
       };
     }
     {
+      name = "fastq___fastq_1.8.0.tgz";
+      path = fetchurl {
+        name = "fastq___fastq_1.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/fastq/-/fastq-1.8.0.tgz";
+        sha1 = "550e1f9f59bbc65fe185cb6a9b4d95357107f481";
+      };
+    }
+    {
       name = "faye_websocket___faye_websocket_0.10.0.tgz";
       path = fetchurl {
         name = "faye_websocket___faye_websocket_0.10.0.tgz";
@@ -4946,11 +5298,11 @@
       };
     }
     {
-      name = "follow_redirects___follow_redirects_1.11.0.tgz";
+      name = "follow_redirects___follow_redirects_1.13.0.tgz";
       path = fetchurl {
-        name = "follow_redirects___follow_redirects_1.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.11.0.tgz";
-        sha1 = "afa14f08ba12a52963140fe43212658897bc0ecb";
+        name = "follow_redirects___follow_redirects_1.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.0.tgz";
+        sha1 = "b42e8d93a2a7eea5ed88633676d6597bc8e384db";
       };
     }
     {
@@ -5154,14 +5506,6 @@
       };
     }
     {
-      name = "get_caller_file___get_caller_file_1.0.3.tgz";
-      path = fetchurl {
-        name = "get_caller_file___get_caller_file_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz";
-        sha1 = "f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a";
-      };
-    }
-    {
       name = "get_caller_file___get_caller_file_2.0.5.tgz";
       path = fetchurl {
         name = "get_caller_file___get_caller_file_2.0.5.tgz";
@@ -5186,6 +5530,14 @@
       };
     }
     {
+      name = "get_stdin___get_stdin_6.0.0.tgz";
+      path = fetchurl {
+        name = "get_stdin___get_stdin_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/get-stdin/-/get-stdin-6.0.0.tgz";
+        sha1 = "9e09bf712b360ab9225e812048f71fde9c89657b";
+      };
+    }
+    {
       name = "get_stream___get_stream_4.1.0.tgz";
       path = fetchurl {
         name = "get_stream___get_stream_4.1.0.tgz";
@@ -5194,11 +5546,11 @@
       };
     }
     {
-      name = "get_stream___get_stream_5.1.0.tgz";
+      name = "get_stream___get_stream_5.2.0.tgz";
       path = fetchurl {
-        name = "get_stream___get_stream_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz";
-        sha1 = "01203cdc92597f9b909067c3e656cc1f4d3c4dc9";
+        name = "get_stream___get_stream_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz";
+        sha1 = "4966a1795ee5ace65e706c4b7beb71257d6e22d3";
       };
     }
     {
@@ -5290,6 +5642,14 @@
       };
     }
     {
+      name = "globby___globby_11.0.1.tgz";
+      path = fetchurl {
+        name = "globby___globby_11.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/globby/-/globby-11.0.1.tgz";
+        sha1 = "9a2bf107a068f3ffeabc49ad702c79ede8cfd357";
+      };
+    }
+    {
       name = "globby___globby_6.1.0.tgz";
       path = fetchurl {
         name = "globby___globby_6.1.0.tgz";
@@ -5314,14 +5674,6 @@
       };
     }
     {
-      name = "gud___gud_1.0.0.tgz";
-      path = fetchurl {
-        name = "gud___gud_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz";
-        sha1 = "a489581b17e6a70beca9abe3ae57de7a499852c0";
-      };
-    }
-    {
       name = "gzip_size___gzip_size_5.1.1.tgz";
       path = fetchurl {
         name = "gzip_size___gzip_size_5.1.1.tgz";
@@ -5346,11 +5698,11 @@
       };
     }
     {
-      name = "har_validator___har_validator_5.1.3.tgz";
+      name = "har_validator___har_validator_5.1.5.tgz";
       path = fetchurl {
-        name = "har_validator___har_validator_5.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz";
-        sha1 = "1ef89ebd3e4996557675eed9893110dc350fa080";
+        name = "har_validator___har_validator_5.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz";
+        sha1 = "1f0803b9f8cb20c0fa13822df1ecddb36bde1efd";
       };
     }
     {
@@ -5554,19 +5906,19 @@
       };
     }
     {
-      name = "html_minifier_terser___html_minifier_terser_5.1.0.tgz";
+      name = "html_minifier_terser___html_minifier_terser_5.1.1.tgz";
       path = fetchurl {
-        name = "html_minifier_terser___html_minifier_terser_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.0.tgz";
-        sha1 = "95d3df037f04835e9d1a09d1767c0e361a7de916";
+        name = "html_minifier_terser___html_minifier_terser_5.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz";
+        sha1 = "922e96f1f3bb60832c2634b79884096389b1f054";
       };
     }
     {
-      name = "html_to_react___html_to_react_1.4.2.tgz";
+      name = "html_to_react___html_to_react_1.4.3.tgz";
       path = fetchurl {
-        name = "html_to_react___html_to_react_1.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/html-to-react/-/html-to-react-1.4.2.tgz";
-        sha1 = "7b628ab56cd63a52f2d0b79d0fa838a51f088a57";
+        name = "html_to_react___html_to_react_1.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/html-to-react/-/html-to-react-1.4.3.tgz";
+        sha1 = "1430a1cb581ef29533892ec70a2fdc4554b17ffd";
       };
     }
     {
@@ -5626,11 +5978,11 @@
       };
     }
     {
-      name = "http_parser_js___http_parser_js_0.4.10.tgz";
+      name = "http_parser_js___http_parser_js_0.5.2.tgz";
       path = fetchurl {
-        name = "http_parser_js___http_parser_js_0.4.10.tgz";
-        url  = "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz";
-        sha1 = "92c9c1374c35085f75db359ec56cc257cbb93fa4";
+        name = "http_parser_js___http_parser_js_0.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.2.tgz";
+        sha1 = "da2e31d237b393aae72ace43882dd7e270a8ff77";
       };
     }
     {
@@ -5642,11 +5994,11 @@
       };
     }
     {
-      name = "http_proxy___http_proxy_1.18.0.tgz";
+      name = "http_proxy___http_proxy_1.18.1.tgz";
       path = fetchurl {
-        name = "http_proxy___http_proxy_1.18.0.tgz";
-        url  = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz";
-        sha1 = "dbe55f63e75a347db7f3d99974f2692a314a6a3a";
+        name = "http_proxy___http_proxy_1.18.1.tgz";
+        url  = "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz";
+        sha1 = "401541f0534884bbf95260334e72f88ee3976549";
       };
     }
     {
@@ -5674,11 +6026,11 @@
       };
     }
     {
-      name = "hyphenate_style_name___hyphenate_style_name_1.0.3.tgz";
+      name = "hyphenate_style_name___hyphenate_style_name_1.0.4.tgz";
       path = fetchurl {
-        name = "hyphenate_style_name___hyphenate_style_name_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.3.tgz";
-        sha1 = "097bb7fa0b8f1a9cf0bd5c734cf95899981a9b48";
+        name = "hyphenate_style_name___hyphenate_style_name_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/hyphenate-style-name/-/hyphenate-style-name-1.0.4.tgz";
+        sha1 = "691879af8e220aea5750e8827db4ef62a54e361d";
       };
     }
     {
@@ -5690,6 +6042,14 @@
       };
     }
     {
+      name = "iconv_lite___iconv_lite_0.6.2.tgz";
+      path = fetchurl {
+        name = "iconv_lite___iconv_lite_0.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz";
+        sha1 = "ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01";
+      };
+    }
+    {
       name = "icss_utils___icss_utils_4.1.1.tgz";
       path = fetchurl {
         name = "icss_utils___icss_utils_4.1.1.tgz";
@@ -5738,19 +6098,19 @@
       };
     }
     {
-      name = "immer___immer_1.10.0.tgz";
+      name = "ignore___ignore_5.1.8.tgz";
       path = fetchurl {
-        name = "immer___immer_1.10.0.tgz";
-        url  = "https://registry.yarnpkg.com/immer/-/immer-1.10.0.tgz";
-        sha1 = "bad67605ba9c810275d91e1c2a47d4582e98286d";
+        name = "ignore___ignore_5.1.8.tgz";
+        url  = "https://registry.yarnpkg.com/ignore/-/ignore-5.1.8.tgz";
+        sha1 = "f150a8b50a34289b33e22f5889abd4d8016f0e57";
       };
     }
     {
-      name = "immutable___immutable_3.8.2.tgz";
+      name = "immer___immer_1.10.0.tgz";
       path = fetchurl {
-        name = "immutable___immutable_3.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz";
-        sha1 = "c2439951455bb39913daf281376f1530e104adf3";
+        name = "immer___immer_1.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/immer/-/immer-1.10.0.tgz";
+        sha1 = "bad67605ba9c810275d91e1c2a47d4582e98286d";
       };
     }
     {
@@ -5794,6 +6154,14 @@
       };
     }
     {
+      name = "import_modules___import_modules_2.0.0.tgz";
+      path = fetchurl {
+        name = "import_modules___import_modules_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/import-modules/-/import-modules-2.0.0.tgz";
+        sha1 = "9c1e13b4e7a15682f70a6e3fa29534e4540cfc5d";
+      };
+    }
+    {
       name = "imurmurhash___imurmurhash_0.1.4.tgz";
       path = fetchurl {
         name = "imurmurhash___imurmurhash_0.1.4.tgz";
@@ -5874,11 +6242,11 @@
       };
     }
     {
-      name = "inquirer___inquirer_7.1.0.tgz";
+      name = "inquirer___inquirer_7.3.3.tgz";
       path = fetchurl {
-        name = "inquirer___inquirer_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/inquirer/-/inquirer-7.1.0.tgz";
-        sha1 = "1298a01859883e17c7264b82870ae1034f92dd29";
+        name = "inquirer___inquirer_7.3.3.tgz";
+        url  = "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.3.tgz";
+        sha1 = "04d176b2af04afc157a83fd7c100e98ee0aad003";
       };
     }
     {
@@ -5906,14 +6274,6 @@
       };
     }
     {
-      name = "invert_kv___invert_kv_2.0.0.tgz";
-      path = fetchurl {
-        name = "invert_kv___invert_kv_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz";
-        sha1 = "7393f5afa59ec9ff5f67a27620d11c226e3eec02";
-      };
-    }
-    {
       name = "ip_regex___ip_regex_2.1.0.tgz";
       path = fetchurl {
         name = "ip_regex___ip_regex_2.1.0.tgz";
@@ -6034,11 +6394,11 @@
       };
     }
     {
-      name = "is_callable___is_callable_1.1.5.tgz";
+      name = "is_callable___is_callable_1.2.1.tgz";
       path = fetchurl {
-        name = "is_callable___is_callable_1.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz";
-        sha1 = "f7e46b596890456db74e7f6e976cb3273d06faab";
+        name = "is_callable___is_callable_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.1.tgz";
+        sha1 = "4d1e21a4f437509d25ce55f8184350771421c96d";
       };
     }
     {
@@ -6114,11 +6474,11 @@
       };
     }
     {
-      name = "is_docker___is_docker_2.0.0.tgz";
+      name = "is_docker___is_docker_2.1.1.tgz";
       path = fetchurl {
-        name = "is_docker___is_docker_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz";
-        sha1 = "2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b";
+        name = "is_docker___is_docker_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-docker/-/is-docker-2.1.1.tgz";
+        sha1 = "4125a88e44e450d384e09047ede71adc2d144156";
       };
     }
     {
@@ -6146,14 +6506,6 @@
       };
     }
     {
-      name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
-      path = fetchurl {
-        name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
-        sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
-      };
-    }
-    {
       name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
       path = fetchurl {
         name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
@@ -6210,6 +6562,14 @@
       };
     }
     {
+      name = "is_negative_zero___is_negative_zero_2.0.0.tgz";
+      path = fetchurl {
+        name = "is_negative_zero___is_negative_zero_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.0.tgz";
+        sha1 = "9553b121b0fac28869da9ed459e20c7543788461";
+      };
+    }
+    {
       name = "is_number___is_number_3.0.0.tgz";
       path = fetchurl {
         name = "is_number___is_number_3.0.0.tgz";
@@ -6282,11 +6642,11 @@
       };
     }
     {
-      name = "is_regex___is_regex_1.0.5.tgz";
+      name = "is_regex___is_regex_1.1.1.tgz";
       path = fetchurl {
-        name = "is_regex___is_regex_1.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz";
-        sha1 = "39d589a358bf18967f726967120b8fc1aed74eae";
+        name = "is_regex___is_regex_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.1.tgz";
+        sha1 = "c6f98aacc546f6cec5468a07b7b153ab564a57b9";
       };
     }
     {
@@ -6634,11 +6994,11 @@
       };
     }
     {
-      name = "jest_pnp_resolver___jest_pnp_resolver_1.2.1.tgz";
+      name = "jest_pnp_resolver___jest_pnp_resolver_1.2.2.tgz";
       path = fetchurl {
-        name = "jest_pnp_resolver___jest_pnp_resolver_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz";
-        sha1 = "ecdae604c077a7fbc70defb6d517c3c1c898923a";
+        name = "jest_pnp_resolver___jest_pnp_resolver_1.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz";
+        sha1 = "b704ac0ae028a89108a4d040b3f919dfddc8e33c";
       };
     }
     {
@@ -6754,11 +7114,19 @@
       };
     }
     {
-      name = "js_base64___js_base64_2.5.2.tgz";
+      name = "joi___joi_17.2.1.tgz";
       path = fetchurl {
-        name = "js_base64___js_base64_2.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.2.tgz";
-        sha1 = "313b6274dda718f714d00b3330bbae6e38e90209";
+        name = "joi___joi_17.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/joi/-/joi-17.2.1.tgz";
+        sha1 = "e5140fdf07e8fecf9bc977c2832d1bdb1e3f2a0a";
+      };
+    }
+    {
+      name = "js_base64___js_base64_3.4.5.tgz";
+      path = fetchurl {
+        name = "js_base64___js_base64_3.4.5.tgz";
+        url  = "https://registry.yarnpkg.com/js-base64/-/js-base64-3.4.5.tgz";
+        sha1 = "6d1921e65a172cfd924604e1416dfaff45752c3e";
       };
     }
     {
@@ -6778,11 +7146,11 @@
       };
     }
     {
-      name = "js_yaml___js_yaml_3.13.1.tgz";
+      name = "js_yaml___js_yaml_3.14.0.tgz";
       path = fetchurl {
-        name = "js_yaml___js_yaml_3.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz";
-        sha1 = "aff151b30bfdfa8e49e05da22e7415e9dfa37847";
+        name = "js_yaml___js_yaml_3.14.0.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.0.tgz";
+        sha1 = "a7a34170f26a21bb162424d8adacb4113a69e482";
       };
     }
     {
@@ -6834,6 +7202,14 @@
       };
     }
     {
+      name = "json_parse_even_better_errors___json_parse_even_better_errors_2.3.1.tgz";
+      path = fetchurl {
+        name = "json_parse_even_better_errors___json_parse_even_better_errors_2.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz";
+        sha1 = "7c47805a94319928e05777405dc12e1f7a4ee02d";
+      };
+    }
+    {
       name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
       path = fetchurl {
         name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
@@ -6922,75 +7298,75 @@
       };
     }
     {
-      name = "jss_plugin_camel_case___jss_plugin_camel_case_10.1.1.tgz";
+      name = "jss_plugin_camel_case___jss_plugin_camel_case_10.4.0.tgz";
       path = fetchurl {
-        name = "jss_plugin_camel_case___jss_plugin_camel_case_10.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.1.1.tgz";
-        sha1 = "8e73ecc4f1d0f8dfe4dd31f6f9f2782588970e78";
+        name = "jss_plugin_camel_case___jss_plugin_camel_case_10.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/jss-plugin-camel-case/-/jss-plugin-camel-case-10.4.0.tgz";
+        sha1 = "46c75ff7fd61c304984c21af5817823f0f501ceb";
       };
     }
     {
-      name = "jss_plugin_default_unit___jss_plugin_default_unit_10.1.1.tgz";
+      name = "jss_plugin_default_unit___jss_plugin_default_unit_10.4.0.tgz";
       path = fetchurl {
-        name = "jss_plugin_default_unit___jss_plugin_default_unit_10.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.1.1.tgz";
-        sha1 = "2df86016dfe73085eead843f5794e3890e9c5c47";
+        name = "jss_plugin_default_unit___jss_plugin_default_unit_10.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/jss-plugin-default-unit/-/jss-plugin-default-unit-10.4.0.tgz";
+        sha1 = "2b10f01269eaea7f36f0f5fd1cfbfcc76ed42854";
       };
     }
     {
-      name = "jss_plugin_global___jss_plugin_global_10.1.1.tgz";
+      name = "jss_plugin_global___jss_plugin_global_10.4.0.tgz";
       path = fetchurl {
-        name = "jss_plugin_global___jss_plugin_global_10.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.1.1.tgz";
-        sha1 = "36b0d6d9facb74dfd99590643708a89260747d14";
+        name = "jss_plugin_global___jss_plugin_global_10.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/jss-plugin-global/-/jss-plugin-global-10.4.0.tgz";
+        sha1 = "19449425a94e4e74e113139b629fd44d3577f97d";
       };
     }
     {
-      name = "jss_plugin_nested___jss_plugin_nested_10.1.1.tgz";
+      name = "jss_plugin_nested___jss_plugin_nested_10.4.0.tgz";
       path = fetchurl {
-        name = "jss_plugin_nested___jss_plugin_nested_10.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.1.1.tgz";
-        sha1 = "5c3de2b8bda344de1ebcef3a4fd30870a29a8a8c";
+        name = "jss_plugin_nested___jss_plugin_nested_10.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/jss-plugin-nested/-/jss-plugin-nested-10.4.0.tgz";
+        sha1 = "017d0c02c0b6b454fd9d7d3fc33470a15eea9fd1";
       };
     }
     {
-      name = "jss_plugin_props_sort___jss_plugin_props_sort_10.1.1.tgz";
+      name = "jss_plugin_props_sort___jss_plugin_props_sort_10.4.0.tgz";
       path = fetchurl {
-        name = "jss_plugin_props_sort___jss_plugin_props_sort_10.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.1.1.tgz";
-        sha1 = "34bddcbfaf9430ec8ccdf92729f03bb10caf1785";
+        name = "jss_plugin_props_sort___jss_plugin_props_sort_10.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/jss-plugin-props-sort/-/jss-plugin-props-sort-10.4.0.tgz";
+        sha1 = "7110bf0b6049cc2080b220b506532bf0b70c0e07";
       };
     }
     {
-      name = "jss_plugin_rule_value_function___jss_plugin_rule_value_function_10.1.1.tgz";
+      name = "jss_plugin_rule_value_function___jss_plugin_rule_value_function_10.4.0.tgz";
       path = fetchurl {
-        name = "jss_plugin_rule_value_function___jss_plugin_rule_value_function_10.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.1.1.tgz";
-        sha1 = "be00dac6fc394aaddbcef5860b9eca6224d96382";
+        name = "jss_plugin_rule_value_function___jss_plugin_rule_value_function_10.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/jss-plugin-rule-value-function/-/jss-plugin-rule-value-function-10.4.0.tgz";
+        sha1 = "7cff4a91e84973536fa49b6ebbdbf7f339b01c82";
       };
     }
     {
-      name = "jss_plugin_vendor_prefixer___jss_plugin_vendor_prefixer_10.1.1.tgz";
+      name = "jss_plugin_vendor_prefixer___jss_plugin_vendor_prefixer_10.4.0.tgz";
       path = fetchurl {
-        name = "jss_plugin_vendor_prefixer___jss_plugin_vendor_prefixer_10.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.1.1.tgz";
-        sha1 = "8348b20749f790beebab3b6a8f7075b07c2cfcfd";
+        name = "jss_plugin_vendor_prefixer___jss_plugin_vendor_prefixer_10.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/jss-plugin-vendor-prefixer/-/jss-plugin-vendor-prefixer-10.4.0.tgz";
+        sha1 = "2a78f3c5d57d1e024fe7ad7c41de34d04e72ecc0";
       };
     }
     {
-      name = "jss___jss_10.1.1.tgz";
+      name = "jss___jss_10.4.0.tgz";
       path = fetchurl {
-        name = "jss___jss_10.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/jss/-/jss-10.1.1.tgz";
-        sha1 = "450b27d53761af3e500b43130a54cdbe157ea332";
+        name = "jss___jss_10.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/jss/-/jss-10.4.0.tgz";
+        sha1 = "473a6fbe42e85441020a07e9519dac1e8a2e79ca";
       };
     }
     {
-      name = "jsx_ast_utils___jsx_ast_utils_2.2.3.tgz";
+      name = "jsx_ast_utils___jsx_ast_utils_2.4.1.tgz";
       path = fetchurl {
-        name = "jsx_ast_utils___jsx_ast_utils_2.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz";
-        sha1 = "8a9364e402448a3ce7f14d357738310d9248054f";
+        name = "jsx_ast_utils___jsx_ast_utils_2.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz";
+        sha1 = "1114a4c1209481db06c690c2b4f488cc665f657e";
       };
     }
     {
@@ -7074,14 +7450,6 @@
       };
     }
     {
-      name = "lcid___lcid_2.0.0.tgz";
-      path = fetchurl {
-        name = "lcid___lcid_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz";
-        sha1 = "6ef5d2df60e52f82eb228a4c373e8d1f397253cf";
-      };
-    }
-    {
       name = "left_pad___left_pad_1.3.0.tgz";
       path = fetchurl {
         name = "left_pad___left_pad_1.3.0.tgz";
@@ -7210,6 +7578,14 @@
       };
     }
     {
+      name = "lodash.get___lodash.get_4.4.2.tgz";
+      path = fetchurl {
+        name = "lodash.get___lodash.get_4.4.2.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz";
+        sha1 = "2d177f652fa31e939b4438d5341499dfa3825e99";
+      };
+    }
+    {
       name = "lodash.isarray___lodash.isarray_3.0.4.tgz";
       path = fetchurl {
         name = "lodash.isarray___lodash.isarray_3.0.4.tgz";
@@ -7266,19 +7642,27 @@
       };
     }
     {
-      name = "lodash___lodash_4.17.15.tgz";
+      name = "lodash.zip___lodash.zip_4.2.0.tgz";
+      path = fetchurl {
+        name = "lodash.zip___lodash.zip_4.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.zip/-/lodash.zip-4.2.0.tgz";
+        sha1 = "ec6662e4896408ed4ab6c542a3990b72cc080020";
+      };
+    }
+    {
+      name = "lodash___lodash_4.17.20.tgz";
       path = fetchurl {
-        name = "lodash___lodash_4.17.15.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz";
-        sha1 = "b447f6670a0455bbfeedd11392eff330ea097548";
+        name = "lodash___lodash_4.17.20.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.20.tgz";
+        sha1 = "b44a9b6297bcb698f1c51a3545a2b3b368d59c52";
       };
     }
     {
-      name = "loglevel___loglevel_1.6.8.tgz";
+      name = "loglevel___loglevel_1.7.0.tgz";
       path = fetchurl {
-        name = "loglevel___loglevel_1.6.8.tgz";
-        url  = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz";
-        sha1 = "8a25fb75d092230ecd4457270d80b54e28011171";
+        name = "loglevel___loglevel_1.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.0.tgz";
+        sha1 = "728166855a740d59d38db01cf46f042caa041bb0";
       };
     }
     {
@@ -7338,14 +7722,6 @@
       };
     }
     {
-      name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
-      path = fetchurl {
-        name = "map_age_cleaner___map_age_cleaner_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz";
-        sha1 = "7d583a7306434c055fe474b0f45078e6e1b4b92a";
-      };
-    }
-    {
       name = "map_cache___map_cache_0.2.2.tgz";
       path = fetchurl {
         name = "map_cache___map_cache_0.2.2.tgz";
@@ -7410,14 +7786,6 @@
       };
     }
     {
-      name = "mem___mem_4.3.0.tgz";
-      path = fetchurl {
-        name = "mem___mem_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz";
-        sha1 = "461af497bc4ae09608cdb2e60eefb69bff744178";
-      };
-    }
-    {
       name = "memory_fs___memory_fs_0.4.1.tgz";
       path = fetchurl {
         name = "memory_fs___memory_fs_0.4.1.tgz";
@@ -7458,11 +7826,11 @@
       };
     }
     {
-      name = "merge2___merge2_1.3.0.tgz";
+      name = "merge2___merge2_1.4.1.tgz";
       path = fetchurl {
-        name = "merge2___merge2_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz";
-        sha1 = "5b366ee83b2f1582c48f87e47cf1a9352103ca81";
+        name = "merge2___merge2_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz";
+        sha1 = "4368892f885e907455a6fd7dc55c0c9d404990ae";
       };
     }
     {
@@ -7490,6 +7858,14 @@
       };
     }
     {
+      name = "micromatch___micromatch_4.0.2.tgz";
+      path = fetchurl {
+        name = "micromatch___micromatch_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz";
+        sha1 = "4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259";
+      };
+    }
+    {
       name = "miller_rabin___miller_rabin_4.0.1.tgz";
       path = fetchurl {
         name = "miller_rabin___miller_rabin_4.0.1.tgz";
@@ -7522,11 +7898,11 @@
       };
     }
     {
-      name = "mime___mime_2.4.5.tgz";
+      name = "mime___mime_2.4.6.tgz";
       path = fetchurl {
-        name = "mime___mime_2.4.5.tgz";
-        url  = "https://registry.yarnpkg.com/mime/-/mime-2.4.5.tgz";
-        sha1 = "d8de2ecb92982dedbb6541c9b6841d7f218ea009";
+        name = "mime___mime_2.4.6.tgz";
+        url  = "https://registry.yarnpkg.com/mime/-/mime-2.4.6.tgz";
+        sha1 = "e5b407c90db442f2beb5b162373d07b69affa4d1";
       };
     }
     {
@@ -7538,11 +7914,11 @@
       };
     }
     {
-      name = "mini_create_react_context___mini_create_react_context_0.3.2.tgz";
+      name = "mini_create_react_context___mini_create_react_context_0.4.0.tgz";
       path = fetchurl {
-        name = "mini_create_react_context___mini_create_react_context_0.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.3.2.tgz";
-        sha1 = "79fc598f283dd623da8e088b05db8cddab250189";
+        name = "mini_create_react_context___mini_create_react_context_0.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/mini-create-react-context/-/mini-create-react-context-0.4.0.tgz";
+        sha1 = "df60501c83151db69e28eac0ef08b4002efab040";
       };
     }
     {
@@ -7602,19 +7978,19 @@
       };
     }
     {
-      name = "minipass_pipeline___minipass_pipeline_1.2.2.tgz";
+      name = "minipass_pipeline___minipass_pipeline_1.2.4.tgz";
       path = fetchurl {
-        name = "minipass_pipeline___minipass_pipeline_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz";
-        sha1 = "3dcb6bb4a546e32969c7ad710f2c79a86abba93a";
+        name = "minipass_pipeline___minipass_pipeline_1.2.4.tgz";
+        url  = "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz";
+        sha1 = "68472f79711c084657c067c5c6ad93cddea8214c";
       };
     }
     {
-      name = "minipass___minipass_3.1.1.tgz";
+      name = "minipass___minipass_3.1.3.tgz";
       path = fetchurl {
-        name = "minipass___minipass_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz";
-        sha1 = "7607ce778472a185ad6d89082aa2070f79cedcd5";
+        name = "minipass___minipass_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz";
+        sha1 = "7d42ff1f39635482e15f9cdb53184deebd5815fd";
       };
     }
     {
@@ -7658,35 +8034,35 @@
       };
     }
     {
-      name = "mobx_react_lite___mobx_react_lite_2.0.6.tgz";
+      name = "mobx_react_lite___mobx_react_lite_2.2.1.tgz";
       path = fetchurl {
-        name = "mobx_react_lite___mobx_react_lite_2.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/mobx-react-lite/-/mobx-react-lite-2.0.6.tgz";
-        sha1 = "e1307a2b271c6a6016c8ad815a25014b7f95997d";
+        name = "mobx_react_lite___mobx_react_lite_2.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/mobx-react-lite/-/mobx-react-lite-2.2.1.tgz";
+        sha1 = "9c05dd799005d29ec1671ae86ca30b3ab5411055";
       };
     }
     {
-      name = "mobx_react___mobx_react_6.2.2.tgz";
+      name = "mobx_react___mobx_react_6.3.0.tgz";
       path = fetchurl {
-        name = "mobx_react___mobx_react_6.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/mobx-react/-/mobx-react-6.2.2.tgz";
-        sha1 = "45e8e7c4894cac8399bba0a91060d7cfb8ea084b";
+        name = "mobx_react___mobx_react_6.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/mobx-react/-/mobx-react-6.3.0.tgz";
+        sha1 = "7d11799f988bbdadc49e725081993b18baa20329";
       };
     }
     {
-      name = "mobx_utils___mobx_utils_5.5.7.tgz";
+      name = "mobx_utils___mobx_utils_5.6.1.tgz";
       path = fetchurl {
-        name = "mobx_utils___mobx_utils_5.5.7.tgz";
-        url  = "https://registry.yarnpkg.com/mobx-utils/-/mobx-utils-5.5.7.tgz";
-        sha1 = "0ef58f2d5e05ca0e59ba2322f84f9c763de6ce14";
+        name = "mobx_utils___mobx_utils_5.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/mobx-utils/-/mobx-utils-5.6.1.tgz";
+        sha1 = "b7d9184b7442fe704be367d4363a2e9961be28cc";
       };
     }
     {
-      name = "mobx___mobx_5.15.4.tgz";
+      name = "mobx___mobx_5.15.6.tgz";
       path = fetchurl {
-        name = "mobx___mobx_5.15.4.tgz";
-        url  = "https://registry.yarnpkg.com/mobx/-/mobx-5.15.4.tgz";
-        sha1 = "9da1a84e97ba624622f4e55a0bf3300fb931c2ab";
+        name = "mobx___mobx_5.15.6.tgz";
+        url  = "https://registry.yarnpkg.com/mobx/-/mobx-5.15.6.tgz";
+        sha1 = "24750af56f87bcf9c3cf82ece4c79eb91bb71968";
       };
     }
     {
@@ -7738,6 +8114,14 @@
       };
     }
     {
+      name = "multimap___multimap_1.1.0.tgz";
+      path = fetchurl {
+        name = "multimap___multimap_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/multimap/-/multimap-1.1.0.tgz";
+        sha1 = "5263febc085a1791c33b59bb3afc6a76a2a10ca8";
+      };
+    }
+    {
       name = "mute_stream___mute_stream_0.0.8.tgz";
       path = fetchurl {
         name = "mute_stream___mute_stream_0.0.8.tgz";
@@ -7778,11 +8162,11 @@
       };
     }
     {
-      name = "neo_async___neo_async_2.6.1.tgz";
+      name = "neo_async___neo_async_2.6.2.tgz";
       path = fetchurl {
-        name = "neo_async___neo_async_2.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz";
-        sha1 = "ac27ada66167fa8849a6addd837f6b189ad2081c";
+        name = "neo_async___neo_async_2.6.2.tgz";
+        url  = "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz";
+        sha1 = "b4aafb93e3aeb2d8174ca53cf163ab7d7308305f";
       };
     }
     {
@@ -7858,11 +8242,11 @@
       };
     }
     {
-      name = "node_releases___node_releases_1.1.55.tgz";
+      name = "node_releases___node_releases_1.1.61.tgz";
       path = fetchurl {
-        name = "node_releases___node_releases_1.1.55.tgz";
-        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.55.tgz";
-        sha1 = "8af23b7c561d8e2e6e36a46637bab84633b07cee";
+        name = "node_releases___node_releases_1.1.61.tgz";
+        url  = "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.61.tgz";
+        sha1 = "707b0fca9ce4e11783612ba4a2fcba09047af16e";
       };
     }
     {
@@ -7946,14 +8330,6 @@
       };
     }
     {
-      name = "number_is_nan___number_is_nan_1.0.1.tgz";
-      path = fetchurl {
-        name = "number_is_nan___number_is_nan_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
-        sha1 = "097b602b53422a522c1afb8790318336941a011d";
-      };
-    }
-    {
       name = "nwsapi___nwsapi_2.2.0.tgz";
       path = fetchurl {
         name = "nwsapi___nwsapi_2.2.0.tgz";
@@ -8002,11 +8378,11 @@
       };
     }
     {
-      name = "object_inspect___object_inspect_1.7.0.tgz";
+      name = "object_inspect___object_inspect_1.8.0.tgz";
       path = fetchurl {
-        name = "object_inspect___object_inspect_1.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz";
-        sha1 = "f4f6bd181ad77f006b5ece60bd0b6f398ff74a67";
+        name = "object_inspect___object_inspect_1.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz";
+        sha1 = "df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0";
       };
     }
     {
@@ -8042,19 +8418,19 @@
       };
     }
     {
-      name = "object.assign___object.assign_4.1.0.tgz";
+      name = "object.assign___object.assign_4.1.1.tgz";
       path = fetchurl {
-        name = "object.assign___object.assign_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz";
-        sha1 = "968bf1100d7956bb3ca086f006f846b3bc4008da";
+        name = "object.assign___object.assign_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.1.tgz";
+        sha1 = "303867a666cdd41936ecdedfb1f8f3e32a478cdd";
       };
     }
     {
-      name = "object.entries___object.entries_1.1.1.tgz";
+      name = "object.entries___object.entries_1.1.2.tgz";
       path = fetchurl {
-        name = "object.entries___object.entries_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz";
-        sha1 = "ee1cf04153de02bb093fec33683900f57ce5399b";
+        name = "object.entries___object.entries_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz";
+        sha1 = "bc73f00acb6b6bb16c203434b10f9a7e797d3add";
       };
     }
     {
@@ -8122,19 +8498,19 @@
       };
     }
     {
-      name = "onetime___onetime_5.1.0.tgz";
+      name = "onetime___onetime_5.1.2.tgz";
       path = fetchurl {
-        name = "onetime___onetime_5.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz";
-        sha1 = "fff0f3c91617fe62bb50189636e99ac8a6df7be5";
+        name = "onetime___onetime_5.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz";
+        sha1 = "d0e96ebb56b07476df1dd9c4806e5237985ca45e";
       };
     }
     {
-      name = "open___open_7.0.3.tgz";
+      name = "open___open_7.2.1.tgz";
       path = fetchurl {
-        name = "open___open_7.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/open/-/open-7.0.3.tgz";
-        sha1 = "db551a1af9c7ab4c7af664139930826138531c48";
+        name = "open___open_7.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/open/-/open-7.2.1.tgz";
+        sha1 = "07b0ade11a43f2a8ce718480bdf3d7563a095195";
       };
     }
     {
@@ -8178,14 +8554,6 @@
       };
     }
     {
-      name = "os_locale___os_locale_3.1.0.tgz";
-      path = fetchurl {
-        name = "os_locale___os_locale_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz";
-        sha1 = "a802a6ee17f24c10483ab9935719cef4ed16bf1a";
-      };
-    }
-    {
       name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
       path = fetchurl {
         name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
@@ -8194,14 +8562,6 @@
       };
     }
     {
-      name = "p_defer___p_defer_1.0.0.tgz";
-      path = fetchurl {
-        name = "p_defer___p_defer_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz";
-        sha1 = "9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c";
-      };
-    }
-    {
       name = "p_each_series___p_each_series_1.0.0.tgz";
       path = fetchurl {
         name = "p_each_series___p_each_series_1.0.0.tgz";
@@ -8218,14 +8578,6 @@
       };
     }
     {
-      name = "p_is_promise___p_is_promise_2.1.0.tgz";
-      path = fetchurl {
-        name = "p_is_promise___p_is_promise_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz";
-        sha1 = "918cebaea248a62cf7ffab8e3bca8c5f882fc42e";
-      };
-    }
-    {
       name = "p_limit___p_limit_1.3.0.tgz";
       path = fetchurl {
         name = "p_limit___p_limit_1.3.0.tgz";
@@ -8346,11 +8698,11 @@
       };
     }
     {
-      name = "parse_asn1___parse_asn1_5.1.5.tgz";
+      name = "parse_asn1___parse_asn1_5.1.6.tgz";
       path = fetchurl {
-        name = "parse_asn1___parse_asn1_5.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz";
-        sha1 = "003271343da58dc94cace494faef3d2147ecea0e";
+        name = "parse_asn1___parse_asn1_5.1.6.tgz";
+        url  = "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz";
+        sha1 = "385080a3ec13cb62a62d39409cb3e88844cdaed4";
       };
     }
     {
@@ -8378,11 +8730,11 @@
       };
     }
     {
-      name = "parse_json___parse_json_5.0.0.tgz";
+      name = "parse_json___parse_json_5.1.0.tgz";
       path = fetchurl {
-        name = "parse_json___parse_json_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz";
-        sha1 = "73e5114c986d143efa3712d4ea24db9a4266f60f";
+        name = "parse_json___parse_json_5.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-5.1.0.tgz";
+        sha1 = "f96088cdf24a8faa9aea9a009f2d9d942c999646";
       };
     }
     {
@@ -8546,11 +8898,11 @@
       };
     }
     {
-      name = "pbkdf2___pbkdf2_3.0.17.tgz";
+      name = "pbkdf2___pbkdf2_3.1.1.tgz";
       path = fetchurl {
-        name = "pbkdf2___pbkdf2_3.0.17.tgz";
-        url  = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz";
-        sha1 = "976c206530617b14ebb32114239f7b09336e93a6";
+        name = "pbkdf2___pbkdf2_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz";
+        sha1 = "cb8724b0fada984596856d1a6ebafd3584654b94";
       };
     }
     {
@@ -8666,11 +9018,11 @@
       };
     }
     {
-      name = "pkg_up___pkg_up_2.0.0.tgz";
+      name = "pluralize___pluralize_8.0.0.tgz";
       path = fetchurl {
-        name = "pkg_up___pkg_up_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz";
-        sha1 = "c819ac728059a461cab1c3889a2be3c49a004d7f";
+        name = "pluralize___pluralize_8.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz";
+        sha1 = "1a6fa16a38d12a1901e0320fa017051c539ce3b1";
       };
     }
     {
@@ -8690,19 +9042,19 @@
       };
     }
     {
-      name = "popper.js___popper.js_1.16.1.tgz";
+      name = "popper.js___popper.js_1.16.1_lts.tgz";
       path = fetchurl {
-        name = "popper.js___popper.js_1.16.1.tgz";
-        url  = "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz";
-        sha1 = "2a223cb3dc7b6213d740e40372be40de43e65b1b";
+        name = "popper.js___popper.js_1.16.1_lts.tgz";
+        url  = "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1-lts.tgz";
+        sha1 = "cf6847b807da3799d80ee3d6d2f90df8a3f50b05";
       };
     }
     {
-      name = "portfinder___portfinder_1.0.26.tgz";
+      name = "portfinder___portfinder_1.0.28.tgz";
       path = fetchurl {
-        name = "portfinder___portfinder_1.0.26.tgz";
-        url  = "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.26.tgz";
-        sha1 = "475658d56ca30bed72ac7f1378ed350bd1b64e70";
+        name = "portfinder___portfinder_1.0.28.tgz";
+        url  = "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz";
+        sha1 = "67c4622852bd5374dd1dd900f779f53462fac778";
       };
     }
     {
@@ -8730,11 +9082,11 @@
       };
     }
     {
-      name = "postcss_calc___postcss_calc_7.0.2.tgz";
+      name = "postcss_calc___postcss_calc_7.0.4.tgz";
       path = fetchurl {
-        name = "postcss_calc___postcss_calc_7.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.2.tgz";
-        sha1 = "504efcd008ca0273120568b0792b16cdcde8aac1";
+        name = "postcss_calc___postcss_calc_7.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.4.tgz";
+        sha1 = "5e177ddb417341e6d4a193c5d9fd8ada79094f8b";
       };
     }
     {
@@ -9026,11 +9378,11 @@
       };
     }
     {
-      name = "postcss_modules_local_by_default___postcss_modules_local_by_default_3.0.2.tgz";
+      name = "postcss_modules_local_by_default___postcss_modules_local_by_default_3.0.3.tgz";
       path = fetchurl {
-        name = "postcss_modules_local_by_default___postcss_modules_local_by_default_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz";
-        sha1 = "e8a6561be914aaf3c052876377524ca90dbb7915";
+        name = "postcss_modules_local_by_default___postcss_modules_local_by_default_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz";
+        sha1 = "bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0";
       };
     }
     {
@@ -9306,11 +9658,11 @@
       };
     }
     {
-      name = "postcss___postcss_7.0.29.tgz";
+      name = "postcss___postcss_7.0.32.tgz";
       path = fetchurl {
-        name = "postcss___postcss_7.0.29.tgz";
-        url  = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.29.tgz";
-        sha1 = "d3a903872bd52280b83bce38cdc83ce55c06129e";
+        name = "postcss___postcss_7.0.32.tgz";
+        url  = "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz";
+        sha1 = "4310d6ee347053da3433db2be492883d62cec59d";
       };
     }
     {
@@ -9330,19 +9682,19 @@
       };
     }
     {
-      name = "prettier___prettier_2.0.5.tgz";
+      name = "prettier___prettier_2.1.1.tgz";
       path = fetchurl {
-        name = "prettier___prettier_2.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz";
-        sha1 = "d6d56282455243f2f92cc1716692c08aa31522d4";
+        name = "prettier___prettier_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/prettier/-/prettier-2.1.1.tgz";
+        sha1 = "d9485dd5e499daa6cb547023b87a6cf51bee37d6";
       };
     }
     {
-      name = "pretty_bytes___pretty_bytes_5.3.0.tgz";
+      name = "pretty_bytes___pretty_bytes_5.4.1.tgz";
       path = fetchurl {
-        name = "pretty_bytes___pretty_bytes_5.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.3.0.tgz";
-        sha1 = "f2849e27db79fb4d6cfe24764fc4134f165989f2";
+        name = "pretty_bytes___pretty_bytes_5.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.4.1.tgz";
+        sha1 = "cd89f79bbcef21e3d21eb0da68ffe93f803e884b";
       };
     }
     {
@@ -9370,14 +9722,6 @@
       };
     }
     {
-      name = "private___private_0.1.8.tgz";
-      path = fetchurl {
-        name = "private___private_0.1.8.tgz";
-        url  = "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz";
-        sha1 = "2381edb3689f7a53d653190060fcf822d2f368ff";
-      };
-    }
-    {
       name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
       path = fetchurl {
         name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
@@ -9538,11 +9882,11 @@
       };
     }
     {
-      name = "puppeteer___puppeteer_3.0.4.tgz";
+      name = "puppeteer___puppeteer_5.3.0.tgz";
       path = fetchurl {
-        name = "puppeteer___puppeteer_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/puppeteer/-/puppeteer-3.0.4.tgz";
-        sha1 = "f445aae0a6732c65bbb90e963dcd6fd8fde0d780";
+        name = "puppeteer___puppeteer_5.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/puppeteer/-/puppeteer-5.3.0.tgz";
+        sha1 = "0abf83d0f2d1273baf2b56885a813f8052903e33";
       };
     }
     {
@@ -9594,11 +9938,11 @@
       };
     }
     {
-      name = "querystringify___querystringify_2.1.1.tgz";
+      name = "querystringify___querystringify_2.2.0.tgz";
       path = fetchurl {
-        name = "querystringify___querystringify_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz";
-        sha1 = "60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e";
+        name = "querystringify___querystringify_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz";
+        sha1 = "3345941b4153cb9d082d8eee4cda2016a9aef7f6";
       };
     }
     {
@@ -9610,11 +9954,11 @@
       };
     }
     {
-      name = "ramda___ramda_0.26.1.tgz";
+      name = "ramda___ramda_0.27.1.tgz";
       path = fetchurl {
-        name = "ramda___ramda_0.26.1.tgz";
-        url  = "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz";
-        sha1 = "8d41351eb8111c55353617fc3bbffad8e4d35d06";
+        name = "ramda___ramda_0.27.1.tgz";
+        url  = "https://registry.yarnpkg.com/ramda/-/ramda-0.27.1.tgz";
+        sha1 = "66fc2df3ef873874ffc2da6aa8984658abacf5c9";
       };
     }
     {
@@ -9658,11 +10002,11 @@
       };
     }
     {
-      name = "react_codemirror2___react_codemirror2_7.1.0.tgz";
+      name = "react_codemirror2___react_codemirror2_7.2.1.tgz";
       path = fetchurl {
-        name = "react_codemirror2___react_codemirror2_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/react-codemirror2/-/react-codemirror2-7.1.0.tgz";
-        sha1 = "b874a275ad4f6f2ee5adb23b550c0f4b8b82776d";
+        name = "react_codemirror2___react_codemirror2_7.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/react-codemirror2/-/react-codemirror2-7.2.1.tgz";
+        sha1 = "38dab492fcbe5fb8ebf5630e5bb7922db8d3a10c";
       };
     }
     {
@@ -9722,27 +10066,27 @@
       };
     }
     {
-      name = "react_router_dom___react_router_dom_5.1.2.tgz";
+      name = "react_router_dom___react_router_dom_5.2.0.tgz";
       path = fetchurl {
-        name = "react_router_dom___react_router_dom_5.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.1.2.tgz";
-        sha1 = "06701b834352f44d37fbb6311f870f84c76b9c18";
+        name = "react_router_dom___react_router_dom_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/react-router-dom/-/react-router-dom-5.2.0.tgz";
+        sha1 = "9e65a4d0c45e13289e66c7b17c7e175d0ea15662";
       };
     }
     {
-      name = "react_router___react_router_5.1.2.tgz";
+      name = "react_router___react_router_5.2.0.tgz";
       path = fetchurl {
-        name = "react_router___react_router_5.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/react-router/-/react-router-5.1.2.tgz";
-        sha1 = "6ea51d789cb36a6be1ba5f7c0d48dd9e817d3418";
+        name = "react_router___react_router_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/react-router/-/react-router-5.2.0.tgz";
+        sha1 = "424e75641ca8747fbf76e5ecca69781aa37ea293";
       };
     }
     {
-      name = "react_scripts___react_scripts_3.4.1.tgz";
+      name = "react_scripts___react_scripts_3.4.3.tgz";
       path = fetchurl {
-        name = "react_scripts___react_scripts_3.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-scripts/-/react-scripts-3.4.1.tgz";
-        sha1 = "f551298b5c71985cc491b9acf3c8e8c0ae3ada0a";
+        name = "react_scripts___react_scripts_3.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/react-scripts/-/react-scripts-3.4.3.tgz";
+        sha1 = "21de5eb93de41ee92cd0b85b0e1298d0bb2e6c51";
       };
     }
     {
@@ -9794,6 +10138,14 @@
       };
     }
     {
+      name = "read_pkg_up___read_pkg_up_7.0.1.tgz";
+      path = fetchurl {
+        name = "read_pkg_up___read_pkg_up_7.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz";
+        sha1 = "f3a6135758459733ae2b95638056e1854e7ef507";
+      };
+    }
+    {
       name = "read_pkg___read_pkg_2.0.0.tgz";
       path = fetchurl {
         name = "read_pkg___read_pkg_2.0.0.tgz";
@@ -9810,6 +10162,14 @@
       };
     }
     {
+      name = "read_pkg___read_pkg_5.2.0.tgz";
+      path = fetchurl {
+        name = "read_pkg___read_pkg_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz";
+        sha1 = "7bf295438ca5a33e56cd30e053b34ee7250c93cc";
+      };
+    }
+    {
       name = "readable_stream___readable_stream_2.3.7.tgz";
       path = fetchurl {
         name = "readable_stream___readable_stream_2.3.7.tgz";
@@ -9874,11 +10234,11 @@
       };
     }
     {
-      name = "regenerate___regenerate_1.4.0.tgz";
+      name = "regenerate___regenerate_1.4.1.tgz";
       path = fetchurl {
-        name = "regenerate___regenerate_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz";
-        sha1 = "4a856ec4b56e4077c557589cae85e7a4c8869a11";
+        name = "regenerate___regenerate_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz";
+        sha1 = "cad92ad8e6b591773485fbe05a485caf4f457e6f";
       };
     }
     {
@@ -9890,19 +10250,19 @@
       };
     }
     {
-      name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
+      name = "regenerator_runtime___regenerator_runtime_0.13.7.tgz";
       path = fetchurl {
-        name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
-        url  = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz";
-        sha1 = "d878a1d094b4306d10b9096484b33ebd55e26697";
+        name = "regenerator_runtime___regenerator_runtime_0.13.7.tgz";
+        url  = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz";
+        sha1 = "cac2dacc8a1ea675feaabaeb8ae833898ae46f55";
       };
     }
     {
-      name = "regenerator_transform___regenerator_transform_0.14.4.tgz";
+      name = "regenerator_transform___regenerator_transform_0.14.5.tgz";
       path = fetchurl {
-        name = "regenerator_transform___regenerator_transform_0.14.4.tgz";
-        url  = "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz";
-        sha1 = "5266857896518d1616a78a0479337a30ea974cc7";
+        name = "regenerator_transform___regenerator_transform_0.14.5.tgz";
+        url  = "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz";
+        sha1 = "c98da154683671c9c4dcb16ece736517e1b7feb4";
       };
     }
     {
@@ -9922,6 +10282,14 @@
       };
     }
     {
+      name = "regexp_tree___regexp_tree_0.1.21.tgz";
+      path = fetchurl {
+        name = "regexp_tree___regexp_tree_0.1.21.tgz";
+        url  = "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.21.tgz";
+        sha1 = "55e2246b7f7d36f1b461490942fa780299c400d7";
+      };
+    }
+    {
       name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
       path = fetchurl {
         name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
@@ -9954,11 +10322,11 @@
       };
     }
     {
-      name = "regjsgen___regjsgen_0.5.1.tgz";
+      name = "regjsgen___regjsgen_0.5.2.tgz";
       path = fetchurl {
-        name = "regjsgen___regjsgen_0.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz";
-        sha1 = "48f0bf1a5ea205196929c0d9798b42d1ed98443c";
+        name = "regjsgen___regjsgen_0.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz";
+        sha1 = "92ff295fb1deecbf6ecdab2543d207e91aa33733";
       };
     }
     {
@@ -10034,19 +10402,19 @@
       };
     }
     {
-      name = "request_promise_core___request_promise_core_1.1.3.tgz";
+      name = "request_promise_core___request_promise_core_1.1.4.tgz";
       path = fetchurl {
-        name = "request_promise_core___request_promise_core_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz";
-        sha1 = "e9a3c081b51380dfea677336061fea879a829ee9";
+        name = "request_promise_core___request_promise_core_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz";
+        sha1 = "3eedd4223208d419867b78ce815167d10593a22f";
       };
     }
     {
-      name = "request_promise_native___request_promise_native_1.0.8.tgz";
+      name = "request_promise_native___request_promise_native_1.0.9.tgz";
       path = fetchurl {
-        name = "request_promise_native___request_promise_native_1.0.8.tgz";
-        url  = "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz";
-        sha1 = "a455b960b826e44e2bf8999af64dff2bfe58cb36";
+        name = "request_promise_native___request_promise_native_1.0.9.tgz";
+        url  = "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz";
+        sha1 = "e407120526a5efdc9a39b28a5679bf47b9d9dc28";
       };
     }
     {
@@ -10066,14 +10434,6 @@
       };
     }
     {
-      name = "require_main_filename___require_main_filename_1.0.1.tgz";
-      path = fetchurl {
-        name = "require_main_filename___require_main_filename_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz";
-        sha1 = "97f717b69d48784f5f526a6c5aa8ffdda055a4d1";
-      };
-    }
-    {
       name = "require_main_filename___require_main_filename_2.0.0.tgz";
       path = fetchurl {
         name = "require_main_filename___require_main_filename_2.0.0.tgz";
@@ -10090,6 +10450,14 @@
       };
     }
     {
+      name = "reserved_words___reserved_words_0.1.2.tgz";
+      path = fetchurl {
+        name = "reserved_words___reserved_words_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/reserved-words/-/reserved-words-0.1.2.tgz";
+        sha1 = "00a0940f98cd501aeaaac316411d9adc52b31ab1";
+      };
+    }
+    {
       name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
       path = fetchurl {
         name = "resolve_cwd___resolve_cwd_2.0.0.tgz";
@@ -10186,6 +10554,14 @@
       };
     }
     {
+      name = "reusify___reusify_1.0.4.tgz";
+      path = fetchurl {
+        name = "reusify___reusify_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz";
+        sha1 = "90da382b1e126efc02146e90845a88db12925d76";
+      };
+    }
+    {
       name = "rework_visit___rework_visit_1.0.0.tgz";
       path = fetchurl {
         name = "rework_visit___rework_visit_1.0.0.tgz";
@@ -10266,6 +10642,14 @@
       };
     }
     {
+      name = "run_parallel___run_parallel_1.1.9.tgz";
+      path = fetchurl {
+        name = "run_parallel___run_parallel_1.1.9.tgz";
+        url  = "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz";
+        sha1 = "c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679";
+      };
+    }
+    {
       name = "run_queue___run_queue_1.0.3.tgz";
       path = fetchurl {
         name = "run_queue___run_queue_1.0.3.tgz";
@@ -10274,11 +10658,11 @@
       };
     }
     {
-      name = "rxjs___rxjs_6.5.5.tgz";
+      name = "rxjs___rxjs_6.6.3.tgz";
       path = fetchurl {
-        name = "rxjs___rxjs_6.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz";
-        sha1 = "c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec";
+        name = "rxjs___rxjs_6.6.3.tgz";
+        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.3.tgz";
+        sha1 = "8ca84635c4daa900c0d3967a6ee7ac60271ee552";
       };
     }
     {
@@ -10290,11 +10674,11 @@
       };
     }
     {
-      name = "safe_buffer___safe_buffer_5.2.0.tgz";
+      name = "safe_buffer___safe_buffer_5.2.1.tgz";
       path = fetchurl {
-        name = "safe_buffer___safe_buffer_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz";
-        sha1 = "b74daec49b1148f88c64b68d49b1e815c1f2f519";
+        name = "safe_buffer___safe_buffer_5.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz";
+        sha1 = "1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6";
       };
     }
     {
@@ -10306,6 +10690,14 @@
       };
     }
     {
+      name = "safe_regex___safe_regex_2.1.1.tgz";
+      path = fetchurl {
+        name = "safe_regex___safe_regex_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-2.1.1.tgz";
+        sha1 = "f7128f00d056e2fe5c11e81a1324dd974aadced2";
+      };
+    }
+    {
       name = "safer_buffer___safer_buffer_2.1.2.tgz";
       path = fetchurl {
         name = "safer_buffer___safer_buffer_2.1.2.tgz";
@@ -10370,11 +10762,11 @@
       };
     }
     {
-      name = "schema_utils___schema_utils_2.6.6.tgz";
+      name = "schema_utils___schema_utils_2.7.1.tgz";
       path = fetchurl {
-        name = "schema_utils___schema_utils_2.6.6.tgz";
-        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.6.tgz";
-        sha1 = "299fe6bd4a3365dc23d99fd446caff8f1d6c330c";
+        name = "schema_utils___schema_utils_2.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz";
+        sha1 = "1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7";
       };
     }
     {
@@ -10418,6 +10810,14 @@
       };
     }
     {
+      name = "semver___semver_7.3.2.tgz";
+      path = fetchurl {
+        name = "semver___semver_7.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz";
+        sha1 = "604962b052b81ed0786aae84389ffba70ffd3938";
+      };
+    }
+    {
       name = "send___send_0.17.1.tgz";
       path = fetchurl {
         name = "send___send_0.17.1.tgz";
@@ -10426,11 +10826,11 @@
       };
     }
     {
-      name = "serialize_javascript___serialize_javascript_2.1.2.tgz";
+      name = "serialize_javascript___serialize_javascript_4.0.0.tgz";
       path = fetchurl {
-        name = "serialize_javascript___serialize_javascript_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz";
-        sha1 = "ecec53b0e0317bdc95ef76ab7074b7384785fa61";
+        name = "serialize_javascript___serialize_javascript_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz";
+        sha1 = "b525e1238489a5ecfc42afacc3fe99e666f4b1aa";
       };
     }
     {
@@ -10562,11 +10962,11 @@
       };
     }
     {
-      name = "side_channel___side_channel_1.0.2.tgz";
+      name = "side_channel___side_channel_1.0.3.tgz";
       path = fetchurl {
-        name = "side_channel___side_channel_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz";
-        sha1 = "df5d1abadb4e4bf4af1cd8852bf132d2f7876947";
+        name = "side_channel___side_channel_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.3.tgz";
+        sha1 = "cdc46b057550bbab63706210838df5d4c19519c3";
       };
     }
     {
@@ -10658,11 +11058,11 @@
       };
     }
     {
-      name = "sockjs___sockjs_0.3.19.tgz";
+      name = "sockjs___sockjs_0.3.20.tgz";
       path = fetchurl {
-        name = "sockjs___sockjs_0.3.19.tgz";
-        url  = "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz";
-        sha1 = "d976bbe800af7bd20ae08598d582393508993c0d";
+        name = "sockjs___sockjs_0.3.20.tgz";
+        url  = "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz";
+        sha1 = "b26a283ec562ef8b2687b44033a4eeceac75d855";
       };
     }
     {
@@ -10722,11 +11122,11 @@
       };
     }
     {
-      name = "spdx_correct___spdx_correct_3.1.0.tgz";
+      name = "spdx_correct___spdx_correct_3.1.1.tgz";
       path = fetchurl {
-        name = "spdx_correct___spdx_correct_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz";
-        sha1 = "fb83e504445268f154b074e218c87c003cd31df4";
+        name = "spdx_correct___spdx_correct_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz";
+        sha1 = "dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9";
       };
     }
     {
@@ -10738,11 +11138,11 @@
       };
     }
     {
-      name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
+      name = "spdx_expression_parse___spdx_expression_parse_3.0.1.tgz";
       path = fetchurl {
-        name = "spdx_expression_parse___spdx_expression_parse_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz";
-        sha1 = "99e119b7a5da00e05491c9fa338b7904823b41d0";
+        name = "spdx_expression_parse___spdx_expression_parse_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz";
+        sha1 = "cf70f50482eefdc98e3ce0a6833e4a53ceeba679";
       };
     }
     {
@@ -10914,22 +11314,6 @@
       };
     }
     {
-      name = "string_width___string_width_1.0.2.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz";
-        sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
-      };
-    }
-    {
-      name = "string_width___string_width_2.1.1.tgz";
-      path = fetchurl {
-        name = "string_width___string_width_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
-        sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
-      };
-    }
-    {
       name = "string_width___string_width_3.1.0.tgz";
       path = fetchurl {
         name = "string_width___string_width_3.1.0.tgz";
@@ -10962,22 +11346,6 @@
       };
     }
     {
-      name = "string.prototype.trimleft___string.prototype.trimleft_2.1.2.tgz";
-      path = fetchurl {
-        name = "string.prototype.trimleft___string.prototype.trimleft_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz";
-        sha1 = "4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc";
-      };
-    }
-    {
-      name = "string.prototype.trimright___string.prototype.trimright_2.1.2.tgz";
-      path = fetchurl {
-        name = "string.prototype.trimright___string.prototype.trimright_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz";
-        sha1 = "c76f1cef30f21bbad8afeb8db1511496cfb0f2a3";
-      };
-    }
-    {
       name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
       path = fetchurl {
         name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
@@ -11066,11 +11434,11 @@
       };
     }
     {
-      name = "strip_json_comments___strip_json_comments_3.1.0.tgz";
+      name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
       path = fetchurl {
-        name = "strip_json_comments___strip_json_comments_3.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz";
-        sha1 = "7638d31422129ecf4457440009fba03f9f9ac180";
+        name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+        sha1 = "31f1281b3832630434831c310c01cccda8cbe006";
       };
     }
     {
@@ -11114,11 +11482,11 @@
       };
     }
     {
-      name = "supports_color___supports_color_7.1.0.tgz";
+      name = "supports_color___supports_color_7.2.0.tgz";
       path = fetchurl {
-        name = "supports_color___supports_color_7.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz";
-        sha1 = "68e32591df73e25ad1c4b49108a2ec507962bfd1";
+        name = "supports_color___supports_color_7.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz";
+        sha1 = "1b7dcdcb32b8138801b3e478ba6a51caa89648da";
       };
     }
     {
@@ -11162,43 +11530,43 @@
       };
     }
     {
-      name = "tar_fs___tar_fs_2.0.1.tgz";
+      name = "tar_fs___tar_fs_2.1.0.tgz";
       path = fetchurl {
-        name = "tar_fs___tar_fs_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.1.tgz";
-        sha1 = "e44086c1c60d31a4f0cf893b1c4e155dabfae9e2";
+        name = "tar_fs___tar_fs_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.0.tgz";
+        sha1 = "d1cdd121ab465ee0eb9ccde2d35049d3f3daf0d5";
       };
     }
     {
-      name = "tar_stream___tar_stream_2.1.2.tgz";
+      name = "tar_stream___tar_stream_2.1.4.tgz";
       path = fetchurl {
-        name = "tar_stream___tar_stream_2.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz";
-        sha1 = "6d5ef1a7e5783a95ff70b69b97455a5968dc1325";
+        name = "tar_stream___tar_stream_2.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.4.tgz";
+        sha1 = "c4fb1a11eb0da29b893a5b25476397ba2d053bfa";
       };
     }
     {
-      name = "terser_webpack_plugin___terser_webpack_plugin_2.3.5.tgz";
+      name = "terser_webpack_plugin___terser_webpack_plugin_2.3.8.tgz";
       path = fetchurl {
-        name = "terser_webpack_plugin___terser_webpack_plugin_2.3.5.tgz";
-        url  = "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz";
-        sha1 = "5ad971acce5c517440ba873ea4f09687de2f4a81";
+        name = "terser_webpack_plugin___terser_webpack_plugin_2.3.8.tgz";
+        url  = "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.8.tgz";
+        sha1 = "894764a19b0743f2f704e7c2a848c5283a696724";
       };
     }
     {
-      name = "terser_webpack_plugin___terser_webpack_plugin_1.4.3.tgz";
+      name = "terser_webpack_plugin___terser_webpack_plugin_1.4.5.tgz";
       path = fetchurl {
-        name = "terser_webpack_plugin___terser_webpack_plugin_1.4.3.tgz";
-        url  = "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz";
-        sha1 = "5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c";
+        name = "terser_webpack_plugin___terser_webpack_plugin_1.4.5.tgz";
+        url  = "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz";
+        sha1 = "a217aefaea330e734ffacb6120ec1fa312d6040b";
       };
     }
     {
-      name = "terser___terser_4.6.13.tgz";
+      name = "terser___terser_4.8.0.tgz";
       path = fetchurl {
-        name = "terser___terser_4.6.13.tgz";
-        url  = "https://registry.yarnpkg.com/terser/-/terser-4.6.13.tgz";
-        sha1 = "e879a7364a5e0db52ba4891ecde007422c56a916";
+        name = "terser___terser_4.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz";
+        sha1 = "63056343d7c70bb29f3af665865a46fe03a0df17";
       };
     }
     {
@@ -11418,35 +11786,19 @@
       };
     }
     {
-      name = "tslib___tslib_1.11.2.tgz";
+      name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
       path = fetchurl {
-        name = "tslib___tslib_1.11.2.tgz";
-        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.11.2.tgz";
-        sha1 = "9c79d83272c9a7aaf166f73915c9667ecdde3cc9";
+        name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
+        url  = "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz";
+        sha1 = "098547a6c4448807e8fcb8eae081064ee9a3c90b";
       };
     }
     {
-      name = "tslint_sonarts___tslint_sonarts_1.9.0.tgz";
+      name = "tslib___tslib_1.13.0.tgz";
       path = fetchurl {
-        name = "tslint_sonarts___tslint_sonarts_1.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/tslint-sonarts/-/tslint-sonarts-1.9.0.tgz";
-        sha1 = "feb593e92db328c0328b430b838adbe65d504de9";
-      };
-    }
-    {
-      name = "tslint___tslint_6.1.2.tgz";
-      path = fetchurl {
-        name = "tslint___tslint_6.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/tslint/-/tslint-6.1.2.tgz";
-        sha1 = "2433c248512cc5a7b2ab88ad44a6b1b34c6911cf";
-      };
-    }
-    {
-      name = "tsutils___tsutils_2.29.0.tgz";
-      path = fetchurl {
-        name = "tsutils___tsutils_2.29.0.tgz";
-        url  = "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz";
-        sha1 = "32b488501467acbedd4b85498673a0812aca0b99";
+        name = "tslib___tslib_1.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz";
+        sha1 = "c881e13cc7015894ed914862d276436fa9a47043";
       };
     }
     {
@@ -11498,6 +11850,14 @@
       };
     }
     {
+      name = "type_fest___type_fest_0.6.0.tgz";
+      path = fetchurl {
+        name = "type_fest___type_fest_0.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz";
+        sha1 = "8d2a2370d3df886eb5c90ada1c5bf6188acf838b";
+      };
+    }
+    {
       name = "type_fest___type_fest_0.8.1.tgz";
       path = fetchurl {
         name = "type_fest___type_fest_0.8.1.tgz";
@@ -11522,11 +11882,11 @@
       };
     }
     {
-      name = "type___type_2.0.0.tgz";
+      name = "type___type_2.1.0.tgz";
       path = fetchurl {
-        name = "type___type_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz";
-        sha1 = "5f16ff6ef2eb44f260494dae271033b29c09a9c3";
+        name = "type___type_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/type/-/type-2.1.0.tgz";
+        sha1 = "9bdc22c648cf8cf86dd23d32336a41cfb6475e3f";
       };
     }
     {
@@ -11546,11 +11906,11 @@
       };
     }
     {
-      name = "typescript___typescript_3.8.3.tgz";
+      name = "typescript___typescript_4.0.2.tgz";
       path = fetchurl {
-        name = "typescript___typescript_3.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz";
-        sha1 = "409eb8544ea0335711205869ec458ab109ee1061";
+        name = "typescript___typescript_4.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/typescript/-/typescript-4.0.2.tgz";
+        sha1 = "7ea7c88777c723c681e33bf7988be5d008d05ac2";
       };
     }
     {
@@ -11562,11 +11922,11 @@
       };
     }
     {
-      name = "unbzip2_stream___unbzip2_stream_1.4.2.tgz";
+      name = "unbzip2_stream___unbzip2_stream_1.4.3.tgz";
       path = fetchurl {
-        name = "unbzip2_stream___unbzip2_stream_1.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.2.tgz";
-        sha1 = "84eb9e783b186d8fb397515fbb656f312f1a7dbf";
+        name = "unbzip2_stream___unbzip2_stream_1.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz";
+        sha1 = "b0da04c4371311df771cdc215e87f2130991ace7";
       };
     }
     {
@@ -11746,11 +12106,11 @@
       };
     }
     {
-      name = "uri_js___uri_js_4.2.2.tgz";
+      name = "uri_js___uri_js_4.4.0.tgz";
       path = fetchurl {
-        name = "uri_js___uri_js_4.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz";
-        sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0";
+        name = "uri_js___uri_js_4.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz";
+        sha1 = "aa714261de793e8a82347a7bcc9ce74e86f28602";
       };
     }
     {
@@ -11858,11 +12218,11 @@
       };
     }
     {
-      name = "v8_compile_cache___v8_compile_cache_2.1.0.tgz";
+      name = "v8_compile_cache___v8_compile_cache_2.1.1.tgz";
       path = fetchurl {
-        name = "v8_compile_cache___v8_compile_cache_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz";
-        sha1 = "e14de37b31a6d194f5690d67efc4e7f6fc6ab30e";
+        name = "v8_compile_cache___v8_compile_cache_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz";
+        sha1 = "54bc3cdd43317bca91e35dcaf305b1a7237de745";
       };
     }
     {
@@ -11954,11 +12314,11 @@
       };
     }
     {
-      name = "wait_on___wait_on_5.0.0.tgz";
+      name = "wait_on___wait_on_5.2.0.tgz";
       path = fetchurl {
-        name = "wait_on___wait_on_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/wait-on/-/wait-on-5.0.0.tgz";
-        sha1 = "72e554b338490bbc7131362755ca1af04f46d029";
+        name = "wait_on___wait_on_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/wait-on/-/wait-on-5.2.0.tgz";
+        sha1 = "6711e74422523279714a36d52cf49fb47c9d9597";
       };
     }
     {
@@ -11970,11 +12330,19 @@
       };
     }
     {
-      name = "watchpack___watchpack_1.6.1.tgz";
+      name = "watchpack_chokidar2___watchpack_chokidar2_2.0.0.tgz";
       path = fetchurl {
-        name = "watchpack___watchpack_1.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.1.tgz";
-        sha1 = "280da0a8718592174010c078c7585a74cd8cd0e2";
+        name = "watchpack_chokidar2___watchpack_chokidar2_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.0.tgz";
+        sha1 = "9948a1866cbbd6cb824dea13a7ed691f6c8ddff0";
+      };
+    }
+    {
+      name = "watchpack___watchpack_1.7.4.tgz";
+      path = fetchurl {
+        name = "watchpack___watchpack_1.7.4.tgz";
+        url  = "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz";
+        sha1 = "6e9da53b3c80bb2d6508188f5b200410866cd30b";
       };
     }
     {
@@ -12002,11 +12370,11 @@
       };
     }
     {
-      name = "webpack_dev_server___webpack_dev_server_3.10.3.tgz";
+      name = "webpack_dev_server___webpack_dev_server_3.11.0.tgz";
       path = fetchurl {
-        name = "webpack_dev_server___webpack_dev_server_3.10.3.tgz";
-        url  = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz";
-        sha1 = "f35945036813e57ef582c2420ef7b470e14d3af0";
+        name = "webpack_dev_server___webpack_dev_server_3.11.0.tgz";
+        url  = "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz";
+        sha1 = "8f154a3bce1bcfd1cc618ef4e703278855e7ff8c";
       };
     }
     {
@@ -12042,19 +12410,27 @@
       };
     }
     {
-      name = "websocket_driver___websocket_driver_0.7.3.tgz";
+      name = "websocket_driver___websocket_driver_0.6.5.tgz";
+      path = fetchurl {
+        name = "websocket_driver___websocket_driver_0.6.5.tgz";
+        url  = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz";
+        sha1 = "5cb2556ceb85f4373c6d8238aa691c8454e13a36";
+      };
+    }
+    {
+      name = "websocket_driver___websocket_driver_0.7.4.tgz";
       path = fetchurl {
-        name = "websocket_driver___websocket_driver_0.7.3.tgz";
-        url  = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz";
-        sha1 = "a2d4e0d4f4f116f1e6297eba58b05d430100e9f9";
+        name = "websocket_driver___websocket_driver_0.7.4.tgz";
+        url  = "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz";
+        sha1 = "89ad5295bbf64b480abcba31e4953aca706f5760";
       };
     }
     {
-      name = "websocket_extensions___websocket_extensions_0.1.3.tgz";
+      name = "websocket_extensions___websocket_extensions_0.1.4.tgz";
       path = fetchurl {
-        name = "websocket_extensions___websocket_extensions_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz";
-        sha1 = "5d2ff22977003ec687a4b87073dfbbac146ccf29";
+        name = "websocket_extensions___websocket_extensions_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz";
+        sha1 = "7f8473bc839dfd87608adb95d7eb075211578a42";
       };
     }
     {
@@ -12066,11 +12442,11 @@
       };
     }
     {
-      name = "whatwg_fetch___whatwg_fetch_3.0.0.tgz";
+      name = "whatwg_fetch___whatwg_fetch_3.4.1.tgz";
       path = fetchurl {
-        name = "whatwg_fetch___whatwg_fetch_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz";
-        sha1 = "fc804e458cc460009b1a2b966bc8817d2578aefb";
+        name = "whatwg_fetch___whatwg_fetch_3.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-3.4.1.tgz";
+        sha1 = "e5f871572d6879663fa5674c8f833f15a8425ab3";
       };
     }
     {
@@ -12274,14 +12650,6 @@
       };
     }
     {
-      name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
-      path = fetchurl {
-        name = "wrap_ansi___wrap_ansi_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
-        sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
-      };
-    }
-    {
       name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
       path = fetchurl {
         name = "wrap_ansi___wrap_ansi_5.1.0.tgz";
@@ -12330,11 +12698,11 @@
       };
     }
     {
-      name = "ws___ws_7.2.5.tgz";
+      name = "ws___ws_7.3.1.tgz";
       path = fetchurl {
-        name = "ws___ws_7.2.5.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-7.2.5.tgz";
-        sha1 = "abb1370d4626a5a9cd79d8de404aa18b3465d10d";
+        name = "ws___ws_7.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz";
+        sha1 = "d0547bf67f7ce4f12a72dfe31262c68d7dc551c8";
       };
     }
     {
@@ -12402,19 +12770,11 @@
       };
     }
     {
-      name = "yaml___yaml_1.9.2.tgz";
-      path = fetchurl {
-        name = "yaml___yaml_1.9.2.tgz";
-        url  = "https://registry.yarnpkg.com/yaml/-/yaml-1.9.2.tgz";
-        sha1 = "f0cfa865f003ab707663e4f04b3956957ea564ed";
-      };
-    }
-    {
-      name = "yargs_parser___yargs_parser_11.1.1.tgz";
+      name = "yaml___yaml_1.10.0.tgz";
       path = fetchurl {
-        name = "yargs_parser___yargs_parser_11.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz";
-        sha1 = "879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4";
+        name = "yaml___yaml_1.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/yaml/-/yaml-1.10.0.tgz";
+        sha1 = "3b593add944876077d4d683fee01081bd9fff31e";
       };
     }
     {
@@ -12426,14 +12786,6 @@
       };
     }
     {
-      name = "yargs___yargs_12.0.5.tgz";
-      path = fetchurl {
-        name = "yargs___yargs_12.0.5.tgz";
-        url  = "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz";
-        sha1 = "05f5997b609647b64f66b81e3b4b10a368e7ad13";
-      };
-    }
-    {
       name = "yargs___yargs_13.3.2.tgz";
       path = fetchurl {
         name = "yargs___yargs_13.3.2.tgz";
diff --git a/nixpkgs/pkgs/servers/gpsd/default.nix b/nixpkgs/pkgs/servers/gpsd/default.nix
index 4e0d08324a0a..5f9beb4b8348 100644
--- a/nixpkgs/pkgs/servers/gpsd/default.nix
+++ b/nixpkgs/pkgs/servers/gpsd/default.nix
@@ -1,4 +1,4 @@
-{ fetchurl, stdenv, scons, pkgconfig, dbus, dbus-glib
+{ fetchurl, stdenv, sconsPackages, pkgconfig, dbus, dbus-glib
 , ncurses, libX11, libXt, libXpm, libXaw, libXext
 , libusb1, docbook_xml_dtd_412, docbook_xsl, bc
 , libxslt, xmlto, gpsdUser ? "gpsd", gpsdGroup ? "dialout"
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    scons.py2 pkgconfig docbook_xml_dtd_412 docbook_xsl xmlto bc
+    sconsPackages.scons_3_1_2 pkgconfig docbook_xml_dtd_412 docbook_xsl xmlto bc
     python2Packages.python
     python2Packages.wrapPython
   ];
diff --git a/nixpkgs/pkgs/servers/hashi-ui/default.nix b/nixpkgs/pkgs/servers/hashi-ui/default.nix
index 019a8dca3b65..70926e37739a 100644
--- a/nixpkgs/pkgs/servers/hashi-ui/default.nix
+++ b/nixpkgs/pkgs/servers/hashi-ui/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     description = "A modern user interface for hashicorp Consul & Nomad";
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ numkem ];
+    license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/servers/hasura/cli.nix b/nixpkgs/pkgs/servers/hasura/cli.nix
index a4d8d147fda6..af2f6f2a11f3 100644
--- a/nixpkgs/pkgs/servers/hasura/cli.nix
+++ b/nixpkgs/pkgs/servers/hasura/cli.nix
@@ -7,10 +7,11 @@ buildGoModule rec {
   src = hasura-graphql-engine.src;
   modRoot = "./cli";
 
-  goPackagePath = "github.com/hasura/graphql-engine/cli";
   subPackages = [ "cmd/hasura" ];
 
-  vendorSha256 = "0a3mlkl00r680v8x3hy24ykggq5qm7k3101krlyfrb5y4karp75a";
+  vendorSha256 = "sha256-Fp6o3xZ/964q8yzJJFrqWZtQ5zYNy6Wreh42YxWjNbU=";
+
+  doCheck = false;
 
   buildFlagsArray = [''-ldflags=
     -X github.com/hasura/graphql-engine/cli/version.BuildVersion=${version}
@@ -30,4 +31,4 @@ buildGoModule rec {
     inherit (hasura-graphql-engine.meta) license homepage maintainers;
     description = "Hasura GraphQL Engine CLI";
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/hasura/default.nix b/nixpkgs/pkgs/servers/hasura/default.nix
deleted file mode 100644
index 085274660351..000000000000
--- a/nixpkgs/pkgs/servers/hasura/default.nix
+++ /dev/null
@@ -1,63 +0,0 @@
-{ haskell }:
-
-with haskell.lib;
-
-let
-  # version in cabal file is invalid
-  version = "1.2.1";
-
-  pkgs = haskell.packages.ghc865.override {
-    overrides = self: super: {
-      # cabal2nix  --subpath server --maintainer offline --no-check --revision 1.2.1 https://github.com/hasura/graphql-engine.git
-      hasura-graphql-engine = justStaticExecutables
-        ((self.callPackage ./graphql-engine.nix { }).overrideDerivation (d: {
-          name = "graphql-engine-${version}";
-
-          inherit version;
-
-          # hasura needs VERSION env exported during build
-          preBuild = "export VERSION=${version}";
-        }));
-
-      hasura-cli = self.callPackage ./cli.nix {
-        hasura-graphql-engine = self.hasura-graphql-engine // {
-          inherit version;
-        };
-      };
-
-      # internal dependencies, non published on hackage (find revisions in cabal.project file)
-      # cabal2nix --revision <rev> https://github.com/hasura/ci-info-hs.git
-      ci-info = self.callPackage ./ci-info.nix { };
-      # cabal2nix --revision <rev> https://github.com/hasura/graphql-parser-hs.git
-      graphql-parser = self.callPackage ./graphql-parser.nix { };
-      # cabal2nix --revision <rev> https://github.com/hasura/pg-client-hs.git
-      pg-client = self.callPackage ./pg-client.nix { };
-
-      # version constrained dependencies, without these hasura will not build,
-      # find versions in graphql-engine.cabal
-      # cabal2nix cabal://dependent-map-0.2.4.0
-      dependent-map = self.callPackage ./dependent-map.nix { };
-      # cabal2nix cabal://dependent-sum-0.4
-      dependent-sum = self.callPackage ./dependent-sum.nix { };
-      # cabal2nix cabal://these-0.7.6
-      these = doJailbreak (self.callPackage ./these.nix { });
-      # cabal2nix cabal://immortal-0.2.2.1
-      immortal = self.callPackage ./immortal.nix { };
-      # cabal2nix cabal://network-uri-2.6.1.0
-      network-uri = self.callPackage ./network-uri.nix { };
-      # cabal2nix cabal://ghc-heap-view-0.6.0
-      ghc-heap-view = disableLibraryProfiling (self.callPackage ./ghc-heap-view.nix { });
-
-      # unmark broewn packages and do required modifications
-      stm-hamt = doJailbreak (unmarkBroken super.stm-hamt);
-      superbuffer = dontCheck (doJailbreak (unmarkBroken super.superbuffer));
-      Spock-core = dontCheck (unmarkBroken super.Spock-core);
-      stm-containers = dontCheck (unmarkBroken super.stm-containers);
-      ekg-json = unmarkBroken super.ekg-json;
-      list-t = dontCheck (unmarkBroken super.list-t);
-      primitive-extras = unmarkBroken super.primitive-extras;
-    };
-  };
-in {
-  inherit (pkgs) hasura-graphql-engine hasura-cli;
-}
diff --git a/nixpkgs/pkgs/servers/hasura/dependent-map.nix b/nixpkgs/pkgs/servers/hasura/dependent-map.nix
deleted file mode 100644
index 68ebb616b5f6..000000000000
--- a/nixpkgs/pkgs/servers/hasura/dependent-map.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-{ mkDerivation, base, containers, dependent-sum, stdenv }:
-mkDerivation {
-  pname = "dependent-map";
-  version = "0.2.4.0";
-  sha256 = "5db396bdb5d156434af920c074316c3b84b4d39ba8e1cd349c7bb6679cb28246";
-  revision = "1";
-  editedCabalFile = "0a5f35d1sgfq1cl1r5bgb5pwfjniiycxiif4ycxglaizp8g5rlr1";
-  libraryHaskellDepends = [ base containers dependent-sum ];
-  homepage = "https://github.com/mokus0/dependent-map";
-  description = "Dependent finite maps (partial dependent products)";
-  license = "unknown";
-  hydraPlatforms = stdenv.lib.platforms.none;
-}
diff --git a/nixpkgs/pkgs/servers/hasura/dependent-sum.nix b/nixpkgs/pkgs/servers/hasura/dependent-sum.nix
deleted file mode 100644
index 90717b873660..000000000000
--- a/nixpkgs/pkgs/servers/hasura/dependent-sum.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ mkDerivation, base, stdenv }:
-mkDerivation {
-  pname = "dependent-sum";
-  version = "0.4";
-  sha256 = "a8deecb4153a1878173f8d0a18de0378ab068bc15e5035b9e4cb478e8e4e1a1e";
-  libraryHaskellDepends = [ base ];
-  homepage = "https://github.com/mokus0/dependent-sum";
-  description = "Dependent sum type";
-  license = stdenv.lib.licenses.publicDomain;
-}
diff --git a/nixpkgs/pkgs/servers/hasura/ghc-heap-view.nix b/nixpkgs/pkgs/servers/hasura/ghc-heap-view.nix
deleted file mode 100644
index 54c873baee4b..000000000000
--- a/nixpkgs/pkgs/servers/hasura/ghc-heap-view.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ mkDerivation, base, binary, bytestring, Cabal, containers
-, deepseq, filepath, ghc-heap, stdenv, template-haskell
-, transformers
-}:
-mkDerivation {
-  pname = "ghc-heap-view";
-  version = "0.6.0";
-  sha256 = "99ed6034d02a7a942e1b6ed970e9f7028dcdfd5b5d29fd8a0fb89f1a5e7c5ec8";
-  enableSeparateDataOutput = true;
-  setupHaskellDepends = [ base Cabal filepath ];
-  libraryHaskellDepends = [
-    base binary bytestring containers ghc-heap template-haskell
-    transformers
-  ];
-  testHaskellDepends = [ base deepseq ];
-  description = "Extract the heap representation of Haskell values and thunks";
-  license = stdenv.lib.licenses.bsd3;
-}
diff --git a/nixpkgs/pkgs/servers/hasura/immortal.nix b/nixpkgs/pkgs/servers/hasura/immortal.nix
deleted file mode 100644
index c53f0f18709c..000000000000
--- a/nixpkgs/pkgs/servers/hasura/immortal.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ mkDerivation, base, lifted-base, monad-control, stdenv, stm
-, tasty, tasty-hunit, transformers, transformers-base
-}:
-mkDerivation {
-  pname = "immortal";
-  version = "0.2.2.1";
-  sha256 = "ed4aa1a2883a693a73fec47c8c2d5332d61a0626a2013403e1a8fb25cc6c8d8e";
-  libraryHaskellDepends = [
-    base lifted-base monad-control stm transformers-base
-  ];
-  testHaskellDepends = [
-    base lifted-base stm tasty tasty-hunit transformers
-  ];
-  homepage = "https://github.com/feuerbach/immortal";
-  description = "Spawn threads that never die (unless told to do so)";
-  license = stdenv.lib.licenses.mit;
-}
diff --git a/nixpkgs/pkgs/servers/hasura/network-uri.nix b/nixpkgs/pkgs/servers/hasura/network-uri.nix
deleted file mode 100644
index 45016d470a8d..000000000000
--- a/nixpkgs/pkgs/servers/hasura/network-uri.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ mkDerivation, base, deepseq, HUnit, parsec, stdenv
-, test-framework, test-framework-hunit, test-framework-quickcheck2
-}:
-mkDerivation {
-  pname = "network-uri";
-  version = "2.6.1.0";
-  sha256 = "423e0a2351236f3fcfd24e39cdbc38050ec2910f82245e69ca72a661f7fc47f0";
-  revision = "1";
-  editedCabalFile = "141nj7q0p9wkn5gr41ayc63cgaanr9m59yym47wpxqr3c334bk32";
-  libraryHaskellDepends = [ base deepseq parsec ];
-  testHaskellDepends = [
-    base HUnit test-framework test-framework-hunit
-    test-framework-quickcheck2
-  ];
-  homepage = "https://github.com/haskell/network-uri";
-  description = "URI manipulation";
-  license = stdenv.lib.licenses.bsd3;
-}
diff --git a/nixpkgs/pkgs/servers/hasura/these.nix b/nixpkgs/pkgs/servers/hasura/these.nix
deleted file mode 100644
index 396f9e2a2824..000000000000
--- a/nixpkgs/pkgs/servers/hasura/these.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ mkDerivation, aeson, base, base-compat, bifunctors, binary
-, containers, data-default-class, deepseq, hashable, keys, lens
-, mtl, QuickCheck, quickcheck-instances, semigroupoids, stdenv
-, tasty, tasty-quickcheck, transformers, transformers-compat
-, unordered-containers, vector, vector-instances
-}:
-mkDerivation {
-  pname = "these";
-  version = "0.7.6";
-  sha256 = "9464b83d98e626360a8ad9836ba77e5201cd1e9c89b95b1b11a28ef3c23ac746";
-  libraryHaskellDepends = [
-    aeson base base-compat bifunctors binary containers
-    data-default-class deepseq hashable keys lens mtl QuickCheck
-    semigroupoids transformers transformers-compat unordered-containers
-    vector vector-instances
-  ];
-  testHaskellDepends = [
-    aeson base base-compat bifunctors binary containers hashable lens
-    QuickCheck quickcheck-instances tasty tasty-quickcheck transformers
-    unordered-containers vector
-  ];
-  homepage = "https://github.com/isomorphism/these";
-  description = "An either-or-both data type & a generalized 'zip with padding' typeclass";
-  license = stdenv.lib.licenses.bsd3;
-}
diff --git a/nixpkgs/pkgs/servers/hitch/default.nix b/nixpkgs/pkgs/servers/hitch/default.nix
index c81cd80eb7a6..89aa63f35bdc 100644
--- a/nixpkgs/pkgs/servers/hitch/default.nix
+++ b/nixpkgs/pkgs/servers/hitch/default.nix
@@ -1,11 +1,11 @@
-{ stdenv, fetchurl, docutils, libev, openssl, pkgconfig }:
+{ stdenv, fetchurl, docutils, libev, openssl, pkgconfig, nixosTests }:
 stdenv.mkDerivation rec {
-  version = "1.5.2";
+  version = "1.6.0";
   pname = "hitch";
 
   src = fetchurl {
     url = "https://hitch-tls.org/source/${pname}-${version}.tar.gz";
-    sha256 = "1nnzqqigfw78nqhp81a72x1s8d6v49ayw4w5df0zzm2cb1jgv95i";
+    sha256 = "01n70yf8hx42jb801jv5q1xhrpqxyjnqhd98hjf81lvxpd5fnisf";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "doc" "man" ];
 
+  passthru.tests.hitch = nixosTests.hitch;
+
   meta = with stdenv.lib; {
     description = "Hitch is a libev-based high performance SSL/TLS proxy by Varnish Software";
     homepage = "https://hitch-tls.org/";
diff --git a/nixpkgs/pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch b/nixpkgs/pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch
deleted file mode 100644
index 0b9dd3e447d9..000000000000
--- a/nixpkgs/pkgs/servers/home-assistant/0001-setup.py-relax-dependencies.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 9d730514540929dc95a7313bdb385bab95d9a28c Mon Sep 17 00:00:00 2001
-From: Martin Weinelt <hexa@darmstadt.ccc.de>
-Date: Wed, 20 May 2020 23:23:23 +0200
-Subject: [PATCH] setup.py: relax dependencies
-
----
- setup.py | 14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/setup.py b/setup.py
-index 1473fd1f5f..149af58b3a 100755
---- a/setup.py
-+++ b/setup.py
-@@ -32,24 +32,24 @@ PROJECT_URLS = {
- PACKAGES = find_packages(exclude=["tests", "tests.*"])
- 
- REQUIRES = [
--    "aiohttp==3.6.1",
-+    "aiohttp>=3.6.1",
-     "astral==1.10.1",
-     "async_timeout==3.0.1",
-     "attrs==19.3.0",
-     "bcrypt==3.1.7",
-     "certifi>=2020.4.5.1",
-     "ciso8601==2.1.3",
--    "importlib-metadata==1.6.0",
-+    "importlib-metadata>=1.5.0",
-     "jinja2>=2.11.1",
-     "PyJWT==1.7.1",
-     # PyJWT has loose dependency. We want the latest one.
--    "cryptography==2.9.2",
-+    "cryptography>=2.9",
-     "pip>=8.0.3",
-     "python-slugify==4.0.0",
--    "pytz>=2020.1",
--    "pyyaml==5.3.1",
--    "requests==2.23.0",
--    "ruamel.yaml==0.15.100",
-+    "pytz>=2019.03",
-+    "pyyaml>=5.2",
-+    "requests>=2.22",
-+    "ruamel.yaml>=0.15.100",
-     "voluptuous==0.11.7",
-     "voluptuous-serialize==2.3.0",
- ]
--- 
-2.26.2
-
diff --git a/nixpkgs/pkgs/servers/home-assistant/component-packages.nix b/nixpkgs/pkgs/servers/home-assistant/component-packages.nix
index a87c6947a1a1..3342c488c935 100644
--- a/nixpkgs/pkgs/servers/home-assistant/component-packages.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/component-packages.nix
@@ -2,10 +2,11 @@
 # Do not edit!
 
 {
-  version = "0.111.0";
+  version = "0.114.4";
   components = {
     "abode" = ps: with ps; [ ]; # missing inputs: abodepy
-    "acer_projector" = ps: with ps; [ pyserial];
+    "accuweather" = ps: with ps; [ ]; # missing inputs: accuweather
+    "acer_projector" = ps: with ps; [ pyserial ];
     "acmeda" = ps: with ps; [ ]; # missing inputs: aiopulse
     "actiontec" = ps: with ps; [ ];
     "adguard" = ps: with ps; [ ]; # missing inputs: adguardhome
@@ -14,39 +15,39 @@
     "agent_dvr" = ps: with ps; [ ]; # missing inputs: agent-py
     "air_quality" = ps: with ps; [ ];
     "airly" = ps: with ps; [ ]; # missing inputs: airly
-    "airvisual" = ps: with ps; [ pyairvisual];
+    "airvisual" = ps: with ps; [ pyairvisual ];
     "aladdin_connect" = ps: with ps; [ ]; # missing inputs: aladdin_connect
     "alarm_control_panel" = ps: with ps; [ ];
-    "alarmdecoder" = ps: with ps; [ alarmdecoder];
+    "alarmdecoder" = ps: with ps; [ ]; # missing inputs: adext
     "alert" = ps: with ps; [ ];
-    "alexa" = ps: with ps; [ aiohttp-cors];
-    "almond" = ps: with ps; [ aiohttp-cors]; # missing inputs: pyalmond
+    "alexa" = ps: with ps; [ aiohttp-cors ];
+    "almond" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pyalmond
     "alpha_vantage" = ps: with ps; [ ]; # missing inputs: alpha_vantage
-    "amazon_polly" = ps: with ps; [ boto3];
-    "ambiclimate" = ps: with ps; [ aiohttp-cors]; # missing inputs: ambiclimate
+    "amazon_polly" = ps: with ps; [ boto3 ];
+    "ambiclimate" = ps: with ps; [ aiohttp-cors ]; # missing inputs: ambiclimate
     "ambient_station" = ps: with ps; [ ]; # missing inputs: aioambient
-    "amcrest" = ps: with ps; [ ha-ffmpeg]; # missing inputs: amcrest
+    "amcrest" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: amcrest
     "ampio" = ps: with ps; [ ]; # missing inputs: asmog
     "android_ip_webcam" = ps: with ps; [ ]; # missing inputs: pydroid-ipcam
-    "androidtv" = ps: with ps; [ ]; # missing inputs: adb-shell androidtv pure-python-adb
+    "androidtv" = ps: with ps; [ ]; # missing inputs: adb-shell[async] androidtv[async] pure-python-adb
     "anel_pwrctrl" = ps: with ps; [ ]; # missing inputs: anel_pwrctrl-homeassistant
     "anthemav" = ps: with ps; [ ]; # missing inputs: anthemav
-    "apache_kafka" = ps: with ps; [ aiokafka];
+    "apache_kafka" = ps: with ps; [ aiokafka ];
     "apcupsd" = ps: with ps; [ ]; # missing inputs: apcaccess
-    "api" = ps: with ps; [ aiohttp-cors];
+    "api" = ps: with ps; [ aiohttp-cors ];
     "apns" = ps: with ps; [ ]; # missing inputs: apns2
-    "apple_tv" = ps: with ps; [ pyatv];
-    "apprise" = ps: with ps; [ apprise];
+    "apple_tv" = ps: with ps; [ aiohttp-cors netdisco pyatv zeroconf ];
+    "apprise" = ps: with ps; [ apprise ];
     "aprs" = ps: with ps; [ ]; # missing inputs: aprslib geopy
     "aqualogic" = ps: with ps; [ ]; # missing inputs: aqualogic
     "aquostv" = ps: with ps; [ ]; # missing inputs: sharp_aquos_rc
     "arcam_fmj" = ps: with ps; [ ]; # missing inputs: arcam-fmj
     "arduino" = ps: with ps; [ ]; # missing inputs: PyMata
     "arest" = ps: with ps; [ ];
-    "arlo" = ps: with ps; [ ha-ffmpeg]; # missing inputs: pyarlo
+    "arlo" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: pyarlo
     "arris_tg2492lg" = ps: with ps; [ ]; # missing inputs: arris-tg2492lg
-    "aruba" = ps: with ps; [ pexpect];
-    "arwn" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
+    "aruba" = ps: with ps; [ pexpect ];
+    "arwn" = ps: with ps; [ aiohttp-cors paho-mqtt ];
     "asterisk_cdr" = ps: with ps; [ ]; # missing inputs: asterisk_mbox
     "asterisk_mbox" = ps: with ps; [ ]; # missing inputs: asterisk_mbox
     "asuswrt" = ps: with ps; [ ]; # missing inputs: aioasuswrt
@@ -56,16 +57,17 @@
     "august" = ps: with ps; [ ]; # missing inputs: py-august
     "aurora" = ps: with ps; [ ];
     "aurora_abb_powerone" = ps: with ps; [ ]; # missing inputs: aurorapy
-    "auth" = ps: with ps; [ aiohttp-cors];
-    "automation" = ps: with ps; [ ];
+    "auth" = ps: with ps; [ aiohttp-cors ];
+    "automation" = ps: with ps; [ aiohttp-cors ];
     "avea" = ps: with ps; [ ]; # missing inputs: avea
     "avion" = ps: with ps; [ ]; # missing inputs: avion
-    "avri" = ps: with ps; [ ]; # missing inputs: avri-api
+    "avri" = ps: with ps; [ pycountry ]; # missing inputs: avri-api
     "awair" = ps: with ps; [ ]; # missing inputs: python_awair
     "aws" = ps: with ps; [ ]; # missing inputs: aiobotocore
-    "axis" = ps: with ps; [ ]; # missing inputs: axis
+    "axis" = ps: with ps; [ aiohttp-cors paho-mqtt ]; # missing inputs: axis
+    "azure_devops" = ps: with ps; [ ]; # missing inputs: aioazuredevops
     "azure_event_hub" = ps: with ps; [ ]; # missing inputs: azure-eventhub
-    "azure_service_bus" = ps: with ps; [ azure-servicebus];
+    "azure_service_bus" = ps: with ps; [ azure-servicebus ];
     "baidu" = ps: with ps; [ ]; # missing inputs: baidu-aip
     "bayesian" = ps: with ps; [ ];
     "bbb_gpio" = ps: with ps; [ ]; # missing inputs: Adafruit_BBIO
@@ -78,21 +80,22 @@
     "blackbird" = ps: with ps; [ ]; # missing inputs: pyblackbird
     "blebox" = ps: with ps; [ ]; # missing inputs: blebox_uniapi
     "blink" = ps: with ps; [ ]; # missing inputs: blinkpy
-    "blinksticklight" = ps: with ps; [ BlinkStick];
+    "blinksticklight" = ps: with ps; [ BlinkStick ];
     "blinkt" = ps: with ps; [ ]; # missing inputs: blinkt
     "blockchain" = ps: with ps; [ ]; # missing inputs: python-blockchain-api
     "bloomsky" = ps: with ps; [ ];
-    "bluesound" = ps: with ps; [ xmltodict];
+    "bluesound" = ps: with ps; [ xmltodict ];
     "bluetooth_le_tracker" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL]
-    "bluetooth_tracker" = ps: with ps; [ bt_proximity]; # missing inputs: pybluez
+    "bluetooth_tracker" = ps: with ps; [ bt_proximity ]; # missing inputs: pybluez
     "bme280" = ps: with ps; [ ]; # missing inputs: i2csense smbus-cffi
     "bme680" = ps: with ps; [ ]; # missing inputs: bme680 smbus-cffi
     "bmp280" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-circuitpython-bmp280
     "bmw_connected_drive" = ps: with ps; [ ]; # missing inputs: bimmer_connected
     "bom" = ps: with ps; [ ]; # missing inputs: bomradarloop
-    "braviatv" = ps: with ps; [ bravia-tv];
-    "broadlink" = ps: with ps; [ broadlink];
-    "brother" = ps: with ps; [ ]; # missing inputs: brother
+    "bond" = ps: with ps; [ ]; # missing inputs: bond-api
+    "braviatv" = ps: with ps; [ bravia-tv ];
+    "broadlink" = ps: with ps; [ broadlink ];
+    "brother" = ps: with ps; [ brother ];
     "brottsplatskartan" = ps: with ps; [ ]; # missing inputs: brottsplatskartan
     "browser" = ps: with ps; [ ];
     "brunt" = ps: with ps; [ ]; # missing inputs: brunt
@@ -100,15 +103,15 @@
     "bt_home_hub_5" = ps: with ps; [ ]; # missing inputs: bthomehub5-devicelist
     "bt_smarthub" = ps: with ps; [ ]; # missing inputs: btsmarthub_devicelist
     "buienradar" = ps: with ps; [ ]; # missing inputs: buienradar
-    "caldav" = ps: with ps; [ caldav];
-    "calendar" = ps: with ps; [ aiohttp-cors];
-    "camera" = ps: with ps; [ aiohttp-cors];
-    "canary" = ps: with ps; [ ha-ffmpeg]; # missing inputs: py-canary
-    "cast" = ps: with ps; [ PyChromecast];
+    "caldav" = ps: with ps; [ caldav ];
+    "calendar" = ps: with ps; [ aiohttp-cors ];
+    "camera" = ps: with ps; [ aiohttp-cors ];
+    "canary" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: py-canary
+    "cast" = ps: with ps; [ aiohttp-cors hass-nabucasa PyChromecast zeroconf ];
     "cert_expiry" = ps: with ps; [ ];
     "channels" = ps: with ps; [ ]; # missing inputs: pychannels
     "circuit" = ps: with ps; [ ]; # missing inputs: circuit-webhook
-    "cisco_ios" = ps: with ps; [ pexpect];
+    "cisco_ios" = ps: with ps; [ pexpect ];
     "cisco_mobility_express" = ps: with ps; [ ]; # missing inputs: ciscomobilityexpress
     "cisco_webex_teams" = ps: with ps; [ ]; # missing inputs: webexteamssdk
     "citybikes" = ps: with ps; [ ];
@@ -117,83 +120,86 @@
     "clicksend" = ps: with ps; [ ];
     "clicksend_tts" = ps: with ps; [ ];
     "climate" = ps: with ps; [ ];
-    "cloud" = ps: with ps; [ aiohttp-cors hass-nabucasa];
+    "cloud" = ps: with ps; [ aiohttp-cors hass-nabucasa ];
     "cloudflare" = ps: with ps; [ ]; # missing inputs: pycfdns
     "cmus" = ps: with ps; [ ]; # missing inputs: pycmus
     "co2signal" = ps: with ps; [ ]; # missing inputs: co2signal
     "coinbase" = ps: with ps; [ ]; # missing inputs: coinbase
-    "coinmarketcap" = ps: with ps; [ coinmarketcap];
+    "coinmarketcap" = ps: with ps; [ coinmarketcap ];
     "comed_hourly_pricing" = ps: with ps; [ ];
     "comfoconnect" = ps: with ps; [ ]; # missing inputs: pycomfoconnect
     "command_line" = ps: with ps; [ ];
     "concord232" = ps: with ps; [ ]; # missing inputs: concord232
-    "config" = ps: with ps; [ aiohttp-cors];
+    "config" = ps: with ps; [ aiohttp-cors ];
     "configurator" = ps: with ps; [ ];
-    "conversation" = ps: with ps; [ aiohttp-cors];
+    "control4" = ps: with ps; [ ]; # missing inputs: pyControl4
+    "conversation" = ps: with ps; [ aiohttp-cors ];
     "coolmaster" = ps: with ps; [ ]; # missing inputs: pycoolmasternet
     "coronavirus" = ps: with ps; [ ]; # missing inputs: coronavirus
     "counter" = ps: with ps; [ ];
     "cover" = ps: with ps; [ ];
     "cppm_tracker" = ps: with ps; [ ]; # missing inputs: clearpasspy
-    "cpuspeed" = ps: with ps; [ py-cpuinfo];
+    "cpuspeed" = ps: with ps; [ py-cpuinfo ];
     "crimereports" = ps: with ps; [ ]; # missing inputs: crimereports
-    "cups" = ps: with ps; [ pycups];
+    "cups" = ps: with ps; [ pycups ];
     "currencylayer" = ps: with ps; [ ];
     "daikin" = ps: with ps; [ ]; # missing inputs: pydaikin
     "danfoss_air" = ps: with ps; [ ]; # missing inputs: pydanfossair
-    "darksky" = ps: with ps; [ python-forecastio];
-    "datadog" = ps: with ps; [ datadog];
+    "darksky" = ps: with ps; [ python-forecastio ];
+    "datadog" = ps: with ps; [ datadog ];
     "ddwrt" = ps: with ps; [ ];
+    "debugpy" = ps: with ps; [ debugpy ];
     "deconz" = ps: with ps; [ ]; # missing inputs: pydeconz
-    "decora" = ps: with ps; [ bluepy]; # missing inputs: decora
+    "decora" = ps: with ps; [ bluepy ]; # missing inputs: decora
     "decora_wifi" = ps: with ps; [ ]; # missing inputs: decora_wifi
-    "default_config" = ps: with ps; [ pynacl aiohttp-cors defusedxml distro hass-nabucasa netdisco sqlalchemy zeroconf]; # missing inputs: home-assistant-frontend
+    "default_config" = ps: with ps; [ pynacl aiohttp-cors defusedxml distro emoji hass-nabucasa netdisco sqlalchemy zeroconf ]; # missing inputs: home-assistant-frontend
     "delijn" = ps: with ps; [ ]; # missing inputs: pydelijn
-    "deluge" = ps: with ps; [ deluge-client];
-    "demo" = ps: with ps; [ aiohttp-cors];
+    "deluge" = ps: with ps; [ deluge-client ];
+    "demo" = ps: with ps; [ aiohttp-cors ];
     "denon" = ps: with ps; [ ];
-    "denonavr" = ps: with ps; [ denonavr];
+    "denonavr" = ps: with ps; [ denonavr getmac ];
     "derivative" = ps: with ps; [ ];
     "deutsche_bahn" = ps: with ps; [ ]; # missing inputs: schiene
-    "device_automation" = ps: with ps; [ aiohttp-cors];
+    "device_automation" = ps: with ps; [ ];
     "device_sun_light_trigger" = ps: with ps; [ ];
     "device_tracker" = ps: with ps; [ ];
     "devolo_home_control" = ps: with ps; [ ]; # missing inputs: devolo-home-control-api
+    "dexcom" = ps: with ps; [ ]; # missing inputs: pydexcom
     "dht" = ps: with ps; [ ]; # missing inputs: Adafruit-DHT
-    "dialogflow" = ps: with ps; [ aiohttp-cors];
-    "digital_ocean" = ps: with ps; [ digital-ocean];
+    "dialogflow" = ps: with ps; [ aiohttp-cors ];
+    "digital_ocean" = ps: with ps; [ digital-ocean ];
     "digitalloggers" = ps: with ps; [ ]; # missing inputs: dlipower
     "directv" = ps: with ps; [ ]; # missing inputs: directv
-    "discogs" = ps: with ps; [ discogs_client];
-    "discord" = ps: with ps; [ discordpy];
-    "discovery" = ps: with ps; [ netdisco];
-    "dlib_face_detect" = ps: with ps; [ face_recognition];
-    "dlib_face_identify" = ps: with ps; [ face_recognition];
+    "discogs" = ps: with ps; [ discogs_client ];
+    "discord" = ps: with ps; [ discordpy ];
+    "discovery" = ps: with ps; [ aiohttp-cors netdisco zeroconf ];
+    "dlib_face_detect" = ps: with ps; [ face_recognition ];
+    "dlib_face_identify" = ps: with ps; [ face_recognition ];
     "dlink" = ps: with ps; [ ]; # missing inputs: pyW215
-    "dlna_dmr" = ps: with ps; [ ]; # missing inputs: async-upnp-client
-    "dnsip" = ps: with ps; [ aiodns];
-    "dominos" = ps: with ps; [ aiohttp-cors]; # missing inputs: pizzapi
-    "doods" = ps: with ps; [ pillow]; # missing inputs: pydoods
-    "doorbird" = ps: with ps; [ aiohttp-cors sqlalchemy]; # missing inputs: doorbirdpy home-assistant-frontend
+    "dlna_dmr" = ps: with ps; [ async-upnp-client ];
+    "dnsip" = ps: with ps; [ aiodns ];
+    "dominos" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pizzapi
+    "doods" = ps: with ps; [ pillow ]; # missing inputs: pydoods
+    "doorbird" = ps: with ps; [ aiohttp-cors ]; # missing inputs: doorbirdpy
     "dovado" = ps: with ps; [ ]; # missing inputs: dovado
     "downloader" = ps: with ps; [ ];
     "dsmr" = ps: with ps; [ ]; # missing inputs: dsmr_parser
-    "dsmr_reader" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
+    "dsmr_reader" = ps: with ps; [ aiohttp-cors paho-mqtt ];
     "dte_energy_bridge" = ps: with ps; [ ];
     "dublin_bus_transport" = ps: with ps; [ ];
     "duckdns" = ps: with ps; [ ];
     "dunehd" = ps: with ps; [ ]; # missing inputs: pdunehd
-    "dwd_weather_warnings" = ps: with ps; [ ];
+    "dwd_weather_warnings" = ps: with ps; [ jsonpath xmltodict ];
     "dweet" = ps: with ps; [ ]; # missing inputs: dweepy
     "dynalite" = ps: with ps; [ ]; # missing inputs: dynalite_devices
-    "dyson" = ps: with ps; [ ]; # missing inputs: libpurecool
+    "dyson" = ps: with ps; [ aiohttp-cors zeroconf ]; # missing inputs: libpurecool
     "ebox" = ps: with ps; [ ]; # missing inputs: pyebox
     "ebusd" = ps: with ps; [ ]; # missing inputs: ebusdpy
     "ecoal_boiler" = ps: with ps; [ ]; # missing inputs: ecoaliface
     "ecobee" = ps: with ps; [ ]; # missing inputs: python-ecobee-api
     "econet" = ps: with ps; [ ]; # missing inputs: pyeconet
     "ecovacs" = ps: with ps; [ ]; # missing inputs: sucks
-    "eddystone_temperature" = ps: with ps; [ construct]; # missing inputs: beacontools[scan]
+    "eddystone_temperature" = ps: with ps; [ construct ]; # missing inputs: beacontools[scan]
     "edimax" = ps: with ps; [ ]; # missing inputs: pyedimax
     "edl21" = ps: with ps; [ ]; # missing inputs: pysml
     "ee_brightbox" = ps: with ps; [ ]; # missing inputs: eebrightbox
@@ -207,9 +213,9 @@
     "emby" = ps: with ps; [ ]; # missing inputs: pyemby
     "emoncms" = ps: with ps; [ ];
     "emoncms_history" = ps: with ps; [ ];
-    "emulated_hue" = ps: with ps; [ aiohttp-cors];
+    "emulated_hue" = ps: with ps; [ aiohttp-cors ];
     "emulated_roku" = ps: with ps; [ ]; # missing inputs: emulated_roku
-    "enigma2" = ps: with ps; [ ]; # missing inputs: openwebifpy
+    "enigma2" = ps: with ps; [ openwebifpy ];
     "enocean" = ps: with ps; [ ]; # missing inputs: enocean
     "enphase_envoy" = ps: with ps; [ ]; # missing inputs: envoy_reader
     "entur_public_transport" = ps: with ps; [ ]; # missing inputs: enturclient
@@ -219,8 +225,8 @@
     "ephember" = ps: with ps; [ ]; # missing inputs: pyephember
     "epson" = ps: with ps; [ ]; # missing inputs: epson-projector
     "epsonworkforce" = ps: with ps; [ ]; # missing inputs: epsonprinter
-    "eq3btsmart" = ps: with ps; [ construct]; # missing inputs: python-eq3bt
-    "esphome" = ps: with ps; [ aioesphomeapi];
+    "eq3btsmart" = ps: with ps; [ construct ]; # missing inputs: python-eq3bt
+    "esphome" = ps: with ps; [ aioesphomeapi ];
     "essent" = ps: with ps; [ ]; # missing inputs: PyEssent
     "etherscan" = ps: with ps; [ ]; # missing inputs: python-etherscan-api
     "eufy" = ps: with ps; [ ]; # missing inputs: lakeside
@@ -234,16 +240,17 @@
     "fan" = ps: with ps; [ ];
     "fastdotcom" = ps: with ps; [ ]; # missing inputs: fastdotcom
     "feedreader" = ps: with ps; [ ]; # missing inputs: feedparser-homeassistant
-    "ffmpeg" = ps: with ps; [ ha-ffmpeg];
-    "ffmpeg_motion" = ps: with ps; [ ha-ffmpeg];
-    "ffmpeg_noise" = ps: with ps; [ ha-ffmpeg];
+    "ffmpeg" = ps: with ps; [ ha-ffmpeg ];
+    "ffmpeg_motion" = ps: with ps; [ ha-ffmpeg ];
+    "ffmpeg_noise" = ps: with ps; [ ha-ffmpeg ];
     "fibaro" = ps: with ps; [ ]; # missing inputs: fiblary3
     "fido" = ps: with ps; [ ]; # missing inputs: pyfido
     "file" = ps: with ps; [ ];
     "filesize" = ps: with ps; [ ];
-    "filter" = ps: with ps; [ aiohttp-cors sqlalchemy];
-    "fints" = ps: with ps; [ fints];
-    "fitbit" = ps: with ps; [ aiohttp-cors fitbit];
+    "filter" = ps: with ps; [ aiohttp-cors sqlalchemy ];
+    "fints" = ps: with ps; [ fints ];
+    "firmata" = ps: with ps; [ ]; # missing inputs: pymata-express
+    "fitbit" = ps: with ps; [ aiohttp-cors fitbit ];
     "fixer" = ps: with ps; [ ]; # missing inputs: fixerio
     "fleetgo" = ps: with ps; [ ]; # missing inputs: ritassist
     "flexit" = ps: with ps; [ ]; # missing inputs: pyflexit pymodbus
@@ -253,24 +260,23 @@
     "flume" = ps: with ps; [ ]; # missing inputs: pyflume
     "flunearyou" = ps: with ps; [ ]; # missing inputs: pyflunearyou
     "flux" = ps: with ps; [ ];
-    "flux_led" = ps: with ps; [ flux-led];
+    "flux_led" = ps: with ps; [ flux-led ];
     "folder" = ps: with ps; [ ];
-    "folder_watcher" = ps: with ps; [ watchdog];
+    "folder_watcher" = ps: with ps; [ watchdog ];
     "foobot" = ps: with ps; [ ]; # missing inputs: foobot_async
     "forked_daapd" = ps: with ps; [ ]; # missing inputs: pyforked-daapd pylibrespot-java
-    "fortigate" = ps: with ps; [ ]; # missing inputs: pyfgt
     "fortios" = ps: with ps; [ ]; # missing inputs: fortiosapi
     "foscam" = ps: with ps; [ ]; # missing inputs: libpyfoscam
-    "foursquare" = ps: with ps; [ aiohttp-cors];
+    "foursquare" = ps: with ps; [ aiohttp-cors ];
     "free_mobile" = ps: with ps; [ ]; # missing inputs: freesms
-    "freebox" = ps: with ps; [ ]; # missing inputs: aiofreepybox
+    "freebox" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: aiofreepybox
     "freedns" = ps: with ps; [ ];
-    "fritz" = ps: with ps; [ fritzconnection];
-    "fritzbox" = ps: with ps; [ ]; # missing inputs: pyfritzhome
-    "fritzbox_callmonitor" = ps: with ps; [ fritzconnection];
-    "fritzbox_netmonitor" = ps: with ps; [ fritzconnection];
+    "fritz" = ps: with ps; [ fritzconnection ];
+    "fritzbox" = ps: with ps; [ pyfritzhome ];
+    "fritzbox_callmonitor" = ps: with ps; [ fritzconnection ];
+    "fritzbox_netmonitor" = ps: with ps; [ fritzconnection ];
     "fronius" = ps: with ps; [ ]; # missing inputs: pyfronius
-    "frontend" = ps: with ps; [ aiohttp-cors]; # missing inputs: home-assistant-frontend
+    "frontend" = ps: with ps; [ aiohttp-cors ]; # missing inputs: home-assistant-frontend
     "frontier_silicon" = ps: with ps; [ ]; # missing inputs: afsapi
     "futurenow" = ps: with ps; [ ]; # missing inputs: pyfnip
     "garadget" = ps: with ps; [ ];
@@ -284,29 +290,29 @@
     "geo_json_events" = ps: with ps; [ ]; # missing inputs: geojson_client
     "geo_location" = ps: with ps; [ ];
     "geo_rss_events" = ps: with ps; [ ]; # missing inputs: georss_generic_client
-    "geofency" = ps: with ps; [ aiohttp-cors];
+    "geofency" = ps: with ps; [ aiohttp-cors ];
     "geonetnz_quakes" = ps: with ps; [ ]; # missing inputs: aio_geojson_geonetnz_quakes
     "geonetnz_volcano" = ps: with ps; [ ]; # missing inputs: aio_geojson_geonetnz_volcano
     "gios" = ps: with ps; [ ]; # missing inputs: gios
-    "github" = ps: with ps; [ PyGithub];
-    "gitlab_ci" = ps: with ps; [ python-gitlab];
+    "github" = ps: with ps; [ PyGithub ];
+    "gitlab_ci" = ps: with ps; [ python-gitlab ];
     "gitter" = ps: with ps; [ ]; # missing inputs: gitterpy
     "glances" = ps: with ps; [ ]; # missing inputs: glances_api
     "gntp" = ps: with ps; [ ]; # missing inputs: gntp
     "goalfeed" = ps: with ps; [ ]; # missing inputs: pysher
     "gogogate2" = ps: with ps; [ ]; # missing inputs: gogogate2-api
-    "google" = ps: with ps; [ google_api_python_client httplib2 oauth2client];
-    "google_assistant" = ps: with ps; [ aiohttp-cors];
-    "google_cloud" = ps: with ps; [ google_cloud_texttospeech];
+    "google" = ps: with ps; [ google_api_python_client httplib2 oauth2client ];
+    "google_assistant" = ps: with ps; [ aiohttp-cors ];
+    "google_cloud" = ps: with ps; [ google_cloud_texttospeech ];
     "google_domains" = ps: with ps; [ ];
     "google_maps" = ps: with ps; [ ]; # missing inputs: locationsharinglib
-    "google_pubsub" = ps: with ps; [ google_cloud_pubsub];
-    "google_translate" = ps: with ps; [ gtts-token];
+    "google_pubsub" = ps: with ps; [ google_cloud_pubsub ];
+    "google_translate" = ps: with ps; [ gtts-token ];
     "google_travel_time" = ps: with ps; [ ]; # missing inputs: googlemaps
     "google_wifi" = ps: with ps; [ ];
-    "gpmdp" = ps: with ps; [ websocket_client];
+    "gpmdp" = ps: with ps; [ websocket_client ];
     "gpsd" = ps: with ps; [ ]; # missing inputs: gps3
-    "gpslogger" = ps: with ps; [ aiohttp-cors];
+    "gpslogger" = ps: with ps; [ aiohttp-cors ];
     "graphite" = ps: with ps; [ ];
     "greeneye_monitor" = ps: with ps; [ ]; # missing inputs: greeneye_monitor
     "greenwave" = ps: with ps; [ ]; # missing inputs: greenwavereality
@@ -319,8 +325,8 @@
     "habitica" = ps: with ps; [ ]; # missing inputs: habitipy
     "hangouts" = ps: with ps; [ ]; # missing inputs: hangups
     "harman_kardon_avr" = ps: with ps; [ ]; # missing inputs: hkavr
-    "harmony" = ps: with ps; [ aioharmony];
-    "hassio" = ps: with ps; [ aiohttp-cors];
+    "harmony" = ps: with ps; [ aioharmony ];
+    "hassio" = ps: with ps; [ aiohttp-cors ]; # missing inputs: home-assistant-frontend
     "haveibeenpwned" = ps: with ps; [ ];
     "hddtemp" = ps: with ps; [ ];
     "hdmi_cec" = ps: with ps; [ ]; # missing inputs: pyCEC
@@ -330,44 +336,46 @@
     "hikvision" = ps: with ps; [ ]; # missing inputs: pyhik
     "hikvisioncam" = ps: with ps; [ ]; # missing inputs: hikvision
     "hisense_aehw4a1" = ps: with ps; [ ]; # missing inputs: pyaehw4a1
-    "history" = ps: with ps; [ aiohttp-cors sqlalchemy];
-    "history_stats" = ps: with ps; [ aiohttp-cors sqlalchemy];
+    "history" = ps: with ps; [ aiohttp-cors sqlalchemy ];
+    "history_stats" = ps: with ps; [ aiohttp-cors sqlalchemy ];
     "hitron_coda" = ps: with ps; [ ];
     "hive" = ps: with ps; [ ]; # missing inputs: pyhiveapi
     "hlk_sw16" = ps: with ps; [ ]; # missing inputs: hlk-sw16
-    "home_connect" = ps: with ps; [ aiohttp-cors]; # missing inputs: homeconnect
+    "home_connect" = ps: with ps; [ aiohttp-cors ]; # missing inputs: homeconnect
     "homeassistant" = ps: with ps; [ ];
-    "homekit" = ps: with ps; [ HAP-python pyqrcode aiohttp-cors ha-ffmpeg]; # missing inputs: PyTurboJPEG base36 fnvhash
-    "homekit_controller" = ps: with ps; [ ]; # missing inputs: aiohomekit[IP]
-    "homematic" = ps: with ps; [ pyhomematic];
+    "homekit" = ps: with ps; [ HAP-python pyqrcode aiohttp-cors ha-ffmpeg zeroconf ]; # missing inputs: PyTurboJPEG base36 fnvhash
+    "homekit_controller" = ps: with ps; [ aiohttp-cors zeroconf ]; # missing inputs: aiohomekit[IP]
+    "homematic" = ps: with ps; [ pyhomematic ];
     "homematicip_cloud" = ps: with ps; [ ]; # missing inputs: homematicip
     "homeworks" = ps: with ps; [ ]; # missing inputs: pyhomeworks
     "honeywell" = ps: with ps; [ ]; # missing inputs: somecomfort
     "horizon" = ps: with ps; [ ]; # missing inputs: horimote
     "hp_ilo" = ps: with ps; [ ]; # missing inputs: python-hpilo
-    "html5" = ps: with ps; [ aiohttp-cors pywebpush];
-    "http" = ps: with ps; [ aiohttp-cors];
+    "html5" = ps: with ps; [ aiohttp-cors pywebpush ];
+    "http" = ps: with ps; [ aiohttp-cors ];
     "htu21d" = ps: with ps; [ ]; # missing inputs: i2csense smbus-cffi
-    "huawei_lte" = ps: with ps; [ getmac stringcase]; # missing inputs: huawei-lte-api url-normalize
+    "huawei_lte" = ps: with ps; [ getmac stringcase ]; # missing inputs: huawei-lte-api url-normalize
     "huawei_router" = ps: with ps; [ ];
-    "hue" = ps: with ps; [ aiohue];
+    "hue" = ps: with ps; [ aiohue ];
+    "humidifier" = ps: with ps; [ ];
     "hunterdouglas_powerview" = ps: with ps; [ ]; # missing inputs: aiopvapi
+    "hvv_departures" = ps: with ps; [ ]; # missing inputs: pygti
     "hydrawise" = ps: with ps; [ ]; # missing inputs: hydrawiser
     "hyperion" = ps: with ps; [ ];
     "ialarm" = ps: with ps; [ ]; # missing inputs: pyialarm
     "iammeter" = ps: with ps; [ ]; # missing inputs: iammeter
     "iaqualink" = ps: with ps; [ ]; # missing inputs: iaqualink
-    "icloud" = ps: with ps; [ pyicloud];
+    "icloud" = ps: with ps; [ pyicloud ];
     "idteck_prox" = ps: with ps; [ ]; # missing inputs: rfk101py
-    "ifttt" = ps: with ps; [ aiohttp-cors pyfttt];
+    "ifttt" = ps: with ps; [ aiohttp-cors pyfttt ];
     "iglo" = ps: with ps; [ ]; # missing inputs: iglo
     "ign_sismologia" = ps: with ps; [ ]; # missing inputs: georss_ign_sismologia_client
-    "ihc" = ps: with ps; [ defusedxml]; # missing inputs: ihcsdk
-    "image_processing" = ps: with ps; [ aiohttp-cors];
+    "ihc" = ps: with ps; [ defusedxml ]; # missing inputs: ihcsdk
+    "image_processing" = ps: with ps; [ aiohttp-cors ];
     "imap" = ps: with ps; [ ]; # missing inputs: aioimaplib
     "imap_email_content" = ps: with ps; [ ];
     "incomfort" = ps: with ps; [ ]; # missing inputs: incomfort-client
-    "influxdb" = ps: with ps; [ influxdb];
+    "influxdb" = ps: with ps; [ influxdb-client influxdb ];
     "input_boolean" = ps: with ps; [ ];
     "input_datetime" = ps: with ps; [ ];
     "input_number" = ps: with ps; [ ];
@@ -375,15 +383,15 @@
     "input_text" = ps: with ps; [ ];
     "insteon" = ps: with ps; [ ]; # missing inputs: pyinsteon
     "integration" = ps: with ps; [ ];
-    "intent" = ps: with ps; [ aiohttp-cors];
+    "intent" = ps: with ps; [ aiohttp-cors ];
     "intent_script" = ps: with ps; [ ];
     "intesishome" = ps: with ps; [ ]; # missing inputs: pyintesishome
-    "ios" = ps: with ps; [ aiohttp-cors zeroconf];
+    "ios" = ps: with ps; [ aiohttp-cors zeroconf ];
     "iota" = ps: with ps; [ ]; # missing inputs: pyota
     "iperf3" = ps: with ps; [ ]; # missing inputs: iperf3
     "ipma" = ps: with ps; [ ]; # missing inputs: pyipma
-    "ipp" = ps: with ps; [ ]; # missing inputs: pyipp
-    "iqvia" = ps: with ps; [ numpy]; # missing inputs: pyiqvia
+    "ipp" = ps: with ps; [ pyipp ];
+    "iqvia" = ps: with ps; [ numpy ]; # missing inputs: pyiqvia
     "irish_rail_transport" = ps: with ps; [ ]; # missing inputs: pyirishrail
     "islamic_prayer_times" = ps: with ps; [ ]; # missing inputs: prayer_times_calculator
     "iss" = ps: with ps; [ ]; # missing inputs: pyiss
@@ -398,94 +406,92 @@
     "kankun" = ps: with ps; [ ];
     "keba" = ps: with ps; [ ]; # missing inputs: keba-kecontact
     "keenetic_ndms2" = ps: with ps; [ ]; # missing inputs: ndms2_client
-    "kef" = ps: with ps; [ getmac]; # missing inputs: aiokef
+    "kef" = ps: with ps; [ getmac ]; # missing inputs: aiokef
     "keyboard" = ps: with ps; [ ]; # missing inputs: pyuserinput
-    "keyboard_remote" = ps: with ps; [ evdev]; # missing inputs: aionotify
+    "keyboard_remote" = ps: with ps; [ evdev ]; # missing inputs: aionotify
     "kira" = ps: with ps; [ ]; # missing inputs: pykira
     "kiwi" = ps: with ps; [ ]; # missing inputs: kiwiki-client
     "knx" = ps: with ps; [ ]; # missing inputs: xknx
-    "kodi" = ps: with ps; [ jsonrpc-async jsonrpc-websocket];
-    "konnected" = ps: with ps; [ aiohttp-cors]; # missing inputs: konnected
+    "kodi" = ps: with ps; [ jsonrpc-async jsonrpc-websocket ];
+    "konnected" = ps: with ps; [ aiohttp-cors ]; # missing inputs: konnected
     "kwb" = ps: with ps; [ ]; # missing inputs: pykwb
     "lacrosse" = ps: with ps; [ ]; # missing inputs: pylacrosse
     "lametric" = ps: with ps; [ ]; # missing inputs: lmnotify
     "lannouncer" = ps: with ps; [ ];
-    "lastfm" = ps: with ps; [ pylast];
+    "lastfm" = ps: with ps; [ pylast ];
     "launch_library" = ps: with ps; [ ]; # missing inputs: pylaunches
     "lcn" = ps: with ps; [ ]; # missing inputs: pypck
     "lg_netcast" = ps: with ps; [ ]; # missing inputs: pylgnetcast-homeassistant
     "lg_soundbar" = ps: with ps; [ ]; # missing inputs: temescal
     "life360" = ps: with ps; [ ]; # missing inputs: life360
-    "lifx" = ps: with ps; [ aiolifx aiolifx-effects];
+    "lifx" = ps: with ps; [ aiolifx aiolifx-effects ];
     "lifx_cloud" = ps: with ps; [ ];
     "lifx_legacy" = ps: with ps; [ ]; # missing inputs: liffylights
     "light" = ps: with ps; [ ];
     "lightwave" = ps: with ps; [ ]; # missing inputs: lightwave
-    "limitlessled" = ps: with ps; [ limitlessled];
+    "limitlessled" = ps: with ps; [ limitlessled ];
     "linksys_smart" = ps: with ps; [ ];
-    "linky" = ps: with ps; [ ]; # missing inputs: pylinky
-    "linode" = ps: with ps; [ linode-api];
-    "linux_battery" = ps: with ps; [ batinfo];
+    "linode" = ps: with ps; [ linode-api ];
+    "linux_battery" = ps: with ps; [ batinfo ];
     "lirc" = ps: with ps; [ ]; # missing inputs: python-lirc
     "litejet" = ps: with ps; [ ]; # missing inputs: pylitejet
     "llamalab_automate" = ps: with ps; [ ];
     "local_file" = ps: with ps; [ ];
     "local_ip" = ps: with ps; [ ];
-    "locative" = ps: with ps; [ aiohttp-cors];
+    "locative" = ps: with ps; [ aiohttp-cors ];
     "lock" = ps: with ps; [ ];
-    "lockitron" = ps: with ps; [ ];
-    "logbook" = ps: with ps; [ aiohttp-cors sqlalchemy]; # missing inputs: home-assistant-frontend
+    "logbook" = ps: with ps; [ aiohttp-cors sqlalchemy ]; # missing inputs: home-assistant-frontend
     "logentries" = ps: with ps; [ ];
     "logger" = ps: with ps; [ ];
-    "logi_circle" = ps: with ps; [ aiohttp-cors ha-ffmpeg]; # missing inputs: logi_circle
+    "logi_circle" = ps: with ps; [ aiohttp-cors ha-ffmpeg ]; # missing inputs: logi_circle
     "london_air" = ps: with ps; [ ];
     "london_underground" = ps: with ps; [ ]; # missing inputs: london-tube-status
     "loopenergy" = ps: with ps; [ ]; # missing inputs: pyloopenergy
     "lovelace" = ps: with ps; [ ];
-    "luci" = ps: with ps; [ openwrt-luci-rpc];
-    "luftdaten" = ps: with ps; [ luftdaten];
+    "luci" = ps: with ps; [ openwrt-luci-rpc ];
+    "luftdaten" = ps: with ps; [ luftdaten ];
     "lupusec" = ps: with ps; [ ]; # missing inputs: lupupy
     "lutron" = ps: with ps; [ ]; # missing inputs: pylutron
     "lutron_caseta" = ps: with ps; [ ]; # missing inputs: pylutron-caseta
     "lw12wifi" = ps: with ps; [ ]; # missing inputs: lw12
     "lyft" = ps: with ps; [ ]; # missing inputs: lyft_rides
     "magicseaweed" = ps: with ps; [ ]; # missing inputs: magicseaweed
-    "mailbox" = ps: with ps; [ aiohttp-cors];
-    "mailgun" = ps: with ps; [ aiohttp-cors]; # missing inputs: pymailgunner
+    "mailbox" = ps: with ps; [ aiohttp-cors ];
+    "mailgun" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pymailgunner
     "manual" = ps: with ps; [ ];
-    "manual_mqtt" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
-    "map" = ps: with ps; [ aiohttp-cors]; # missing inputs: home-assistant-frontend
+    "manual_mqtt" = ps: with ps; [ aiohttp-cors paho-mqtt ];
+    "map" = ps: with ps; [ aiohttp-cors ]; # missing inputs: home-assistant-frontend
     "marytts" = ps: with ps; [ ]; # missing inputs: speak2mary
     "mastodon" = ps: with ps; [ ]; # missing inputs: Mastodon.py
-    "matrix" = ps: with ps; [ matrix-client];
+    "matrix" = ps: with ps; [ matrix-client ];
     "maxcube" = ps: with ps; [ ]; # missing inputs: maxcube-api
     "mcp23017" = ps: with ps; [ ]; # missing inputs: RPi.GPIO adafruit-blinka adafruit-circuitpython-mcp230xx
-    "media_extractor" = ps: with ps; [ aiohttp-cors youtube-dl-light];
-    "media_player" = ps: with ps; [ aiohttp-cors];
+    "media_extractor" = ps: with ps; [ aiohttp-cors youtube-dl-light ];
+    "media_player" = ps: with ps; [ aiohttp-cors ];
     "mediaroom" = ps: with ps; [ ]; # missing inputs: pymediaroom
     "melcloud" = ps: with ps; [ ]; # missing inputs: pymelcloud
     "melissa" = ps: with ps; [ ]; # missing inputs: py-melissa-climate
-    "meraki" = ps: with ps; [ aiohttp-cors];
+    "meraki" = ps: with ps; [ aiohttp-cors ];
     "message_bird" = ps: with ps; [ ]; # missing inputs: messagebird
-    "met" = ps: with ps; [ pymetno];
-    "meteo_france" = ps: with ps; [ ]; # missing inputs: meteofrance vigilancemeteo
+    "met" = ps: with ps; [ pymetno ];
+    "meteo_france" = ps: with ps; [ ]; # missing inputs: meteofrance-api
     "meteoalarm" = ps: with ps; [ ]; # missing inputs: meteoalertapi
     "metoffice" = ps: with ps; [ ]; # missing inputs: datapoint
     "mfi" = ps: with ps; [ ]; # missing inputs: mficlient
     "mhz19" = ps: with ps; [ ]; # missing inputs: pmsensor
     "microsoft" = ps: with ps; [ ]; # missing inputs: pycsspeechtts
-    "microsoft_face" = ps: with ps; [ aiohttp-cors];
-    "microsoft_face_detect" = ps: with ps; [ aiohttp-cors];
-    "microsoft_face_identify" = ps: with ps; [ aiohttp-cors];
-    "miflora" = ps: with ps; [ bluepy]; # missing inputs: miflora
+    "microsoft_face" = ps: with ps; [ aiohttp-cors ];
+    "microsoft_face_detect" = ps: with ps; [ aiohttp-cors ];
+    "microsoft_face_identify" = ps: with ps; [ aiohttp-cors ];
+    "miflora" = ps: with ps; [ bluepy ]; # missing inputs: miflora
     "mikrotik" = ps: with ps; [ ]; # missing inputs: librouteros
     "mill" = ps: with ps; [ ]; # missing inputs: millheater
     "min_max" = ps: with ps; [ ];
-    "minecraft_server" = ps: with ps; [ aiodns getmac]; # missing inputs: mcstatus
-    "minio" = ps: with ps; [ minio];
+    "minecraft_server" = ps: with ps; [ aiodns getmac ]; # missing inputs: mcstatus
+    "minio" = ps: with ps; [ minio ];
     "mitemp_bt" = ps: with ps; [ ]; # missing inputs: mitemp_bt
     "mjpeg" = ps: with ps; [ ];
-    "mobile_app" = ps: with ps; [ pynacl aiohttp-cors];
+    "mobile_app" = ps: with ps; [ pynacl aiohttp-cors emoji hass-nabucasa ];
     "mochad" = ps: with ps; [ ]; # missing inputs: pymochad
     "modbus" = ps: with ps; [ ]; # missing inputs: pymodbus
     "modem_callerid" = ps: with ps; [ ]; # missing inputs: basicmodem
@@ -493,34 +499,34 @@
     "monoprice" = ps: with ps; [ ]; # missing inputs: pymonoprice
     "moon" = ps: with ps; [ ];
     "mpchc" = ps: with ps; [ ];
-    "mpd" = ps: with ps; [ mpd2];
-    "mqtt" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
-    "mqtt_eventstream" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
-    "mqtt_json" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
-    "mqtt_room" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
-    "mqtt_statestream" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
+    "mpd" = ps: with ps; [ mpd2 ];
+    "mqtt" = ps: with ps; [ aiohttp-cors paho-mqtt ];
+    "mqtt_eventstream" = ps: with ps; [ aiohttp-cors paho-mqtt ];
+    "mqtt_json" = ps: with ps; [ aiohttp-cors paho-mqtt ];
+    "mqtt_room" = ps: with ps; [ aiohttp-cors paho-mqtt ];
+    "mqtt_statestream" = ps: with ps; [ aiohttp-cors paho-mqtt ];
     "msteams" = ps: with ps; [ ]; # missing inputs: pymsteams
-    "mvglive" = ps: with ps; [ PyMVGLive];
+    "mvglive" = ps: with ps; [ PyMVGLive ];
     "mychevy" = ps: with ps; [ ]; # missing inputs: mychevy
     "mycroft" = ps: with ps; [ ]; # missing inputs: mycroftapi
     "myq" = ps: with ps; [ ]; # missing inputs: pymyq
-    "mysensors" = ps: with ps; [ ]; # missing inputs: pymysensors
-    "mystrom" = ps: with ps; [ aiohttp-cors]; # missing inputs: python-mystrom
+    "mysensors" = ps: with ps; [ aiohttp-cors paho-mqtt ]; # missing inputs: pymysensors
+    "mystrom" = ps: with ps; [ aiohttp-cors ]; # missing inputs: python-mystrom
     "mythicbeastsdns" = ps: with ps; [ ]; # missing inputs: mbddns
     "n26" = ps: with ps; [ ]; # missing inputs: n26
     "nad" = ps: with ps; [ ]; # missing inputs: nad_receiver
-    "namecheapdns" = ps: with ps; [ defusedxml];
-    "nanoleaf" = ps: with ps; [ pynanoleaf];
-    "neato" = ps: with ps; [ pybotvac];
+    "namecheapdns" = ps: with ps; [ defusedxml ];
+    "nanoleaf" = ps: with ps; [ pynanoleaf ];
+    "neato" = ps: with ps; [ pybotvac ];
     "nederlandse_spoorwegen" = ps: with ps; [ ]; # missing inputs: nsapi
     "nello" = ps: with ps; [ ]; # missing inputs: pynello
     "ness_alarm" = ps: with ps; [ ]; # missing inputs: nessclient
     "nest" = ps: with ps; [ ]; # missing inputs: python-nest
-    "netatmo" = ps: with ps; [ aiohttp-cors pyatmo];
+    "netatmo" = ps: with ps; [ aiohttp-cors hass-nabucasa pyatmo ];
     "netdata" = ps: with ps; [ ]; # missing inputs: netdata
     "netgear" = ps: with ps; [ ]; # missing inputs: pynetgear
     "netgear_lte" = ps: with ps; [ ]; # missing inputs: eternalegypt
-    "netio" = ps: with ps; [ aiohttp-cors]; # missing inputs: pynetio
+    "netio" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pynetio
     "neurio_energy" = ps: with ps; [ ]; # missing inputs: neurio
     "nexia" = ps: with ps; [ ]; # missing inputs: nexia
     "nextbus" = ps: with ps; [ ]; # missing inputs: py_nextbusnext
@@ -529,12 +535,13 @@
     "niko_home_control" = ps: with ps; [ ]; # missing inputs: niko-home-control
     "nilu" = ps: with ps; [ ]; # missing inputs: niluclient
     "nissan_leaf" = ps: with ps; [ ]; # missing inputs: pycarwings2
-    "nmap_tracker" = ps: with ps; [ getmac]; # missing inputs: python-nmap
+    "nmap_tracker" = ps: with ps; [ getmac ]; # missing inputs: python-nmap
     "nmbs" = ps: with ps; [ ]; # missing inputs: pyrail
     "no_ip" = ps: with ps; [ ];
     "noaa_tides" = ps: with ps; [ ]; # missing inputs: py_noaa
-    "norway_air" = ps: with ps; [ pymetno];
+    "norway_air" = ps: with ps; [ pymetno ];
     "notify" = ps: with ps; [ ];
+    "notify_events" = ps: with ps; [ ]; # missing inputs: notify-events
     "notion" = ps: with ps; [ ]; # missing inputs: aionotion
     "nsw_fuel_station" = ps: with ps; [ ]; # missing inputs: nsw-fuel-api-client
     "nsw_rural_fire_service_feed" = ps: with ps; [ ]; # missing inputs: aio_geojson_nsw_rfs_incidents
@@ -548,17 +555,17 @@
     "nzbget" = ps: with ps; [ ]; # missing inputs: pynzbgetapi
     "oasa_telematics" = ps: with ps; [ ]; # missing inputs: oasatelematics
     "obihai" = ps: with ps; [ ]; # missing inputs: pyobihai
-    "octoprint" = ps: with ps; [ ];
+    "octoprint" = ps: with ps; [ aiohttp-cors netdisco zeroconf ];
     "oem" = ps: with ps; [ ]; # missing inputs: oemthermostat
-    "ohmconnect" = ps: with ps; [ defusedxml];
+    "ohmconnect" = ps: with ps; [ defusedxml ];
     "ombi" = ps: with ps; [ ]; # missing inputs: pyombi
-    "onboarding" = ps: with ps; [ aiohttp-cors];
+    "onboarding" = ps: with ps; [ aiohttp-cors ];
     "onewire" = ps: with ps; [ ]; # missing inputs: pyownet
-    "onkyo" = ps: with ps; [ onkyo-eiscp];
-    "onvif" = ps: with ps; [ ha-ffmpeg]; # missing inputs: WSDiscovery onvif-zeep-async
+    "onkyo" = ps: with ps; [ onkyo-eiscp ];
+    "onvif" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: WSDiscovery onvif-zeep-async
     "openalpr_cloud" = ps: with ps; [ ];
     "openalpr_local" = ps: with ps; [ ];
-    "opencv" = ps: with ps; [ numpy]; # missing inputs: opencv-python-headless
+    "opencv" = ps: with ps; [ numpy ]; # missing inputs: opencv-python-headless
     "openerz" = ps: with ps; [ ]; # missing inputs: openerz-api
     "openevse" = ps: with ps; [ ]; # missing inputs: openevsewifi
     "openexchangerates" = ps: with ps; [ ];
@@ -569,21 +576,22 @@
     "opensky" = ps: with ps; [ ];
     "opentherm_gw" = ps: with ps; [ ]; # missing inputs: pyotgw
     "openuv" = ps: with ps; [ ]; # missing inputs: pyopenuv
-    "openweathermap" = ps: with ps; [ pyowm];
+    "openweathermap" = ps: with ps; [ pyowm ];
     "opnsense" = ps: with ps; [ ]; # missing inputs: pyopnsense
     "opple" = ps: with ps; [ ]; # missing inputs: pyoppleio
     "orangepi_gpio" = ps: with ps; [ ]; # missing inputs: OPi.GPIO
     "oru" = ps: with ps; [ ]; # missing inputs: oru
     "orvibo" = ps: with ps; [ ]; # missing inputs: orvibo
     "osramlightify" = ps: with ps; [ ]; # missing inputs: lightify
-    "otp" = ps: with ps; [ pyotp];
-    "owntracks" = ps: with ps; [ pynacl aiohttp-cors];
-    "ozw" = ps: with ps; [ ]; # missing inputs: python-openzwave-mqtt
+    "otp" = ps: with ps; [ pyotp ];
+    "ovo_energy" = ps: with ps; [ ]; # missing inputs: ovoenergy
+    "owntracks" = ps: with ps; [ pynacl aiohttp-cors hass-nabucasa paho-mqtt ];
+    "ozw" = ps: with ps; [ aiohttp-cors paho-mqtt ]; # missing inputs: python-openzwave-mqtt
     "panasonic_bluray" = ps: with ps; [ ]; # missing inputs: panacotta
     "panasonic_viera" = ps: with ps; [ ]; # missing inputs: panasonic_viera
-    "pandora" = ps: with ps; [ pexpect];
-    "panel_custom" = ps: with ps; [ aiohttp-cors]; # missing inputs: home-assistant-frontend
-    "panel_iframe" = ps: with ps; [ aiohttp-cors]; # missing inputs: home-assistant-frontend
+    "pandora" = ps: with ps; [ pexpect ];
+    "panel_custom" = ps: with ps; [ aiohttp-cors ]; # missing inputs: home-assistant-frontend
+    "panel_iframe" = ps: with ps; [ aiohttp-cors ]; # missing inputs: home-assistant-frontend
     "pcal9535a" = ps: with ps; [ ]; # missing inputs: pcal9535a
     "pencom" = ps: with ps; [ ]; # missing inputs: pencompy
     "persistent_notification" = ps: with ps; [ ];
@@ -597,40 +605,41 @@
     "ping" = ps: with ps; [ ];
     "pioneer" = ps: with ps; [ ];
     "pjlink" = ps: with ps; [ ]; # missing inputs: pypjlink2
-    "plaato" = ps: with ps; [ aiohttp-cors];
-    "plant" = ps: with ps; [ ];
-    "plex" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket];
+    "plaato" = ps: with ps; [ aiohttp-cors ];
+    "plant" = ps: with ps; [ sqlalchemy ];
+    "plex" = ps: with ps; [ aiohttp-cors plexapi plexauth plexwebsocket pysonos ];
     "plugwise" = ps: with ps; [ ]; # missing inputs: Plugwise_Smile
     "plum_lightpad" = ps: with ps; [ ]; # missing inputs: plumlightpad
     "pocketcasts" = ps: with ps; [ ]; # missing inputs: pocketcasts
-    "point" = ps: with ps; [ aiohttp-cors]; # missing inputs: pypoint
+    "point" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pypoint
+    "poolsense" = ps: with ps; [ ]; # missing inputs: poolsense
     "powerwall" = ps: with ps; [ ]; # missing inputs: tesla-powerwall
     "prezzibenzina" = ps: with ps; [ ]; # missing inputs: prezzibenzina-py
     "proliphix" = ps: with ps; [ ]; # missing inputs: proliphix
-    "prometheus" = ps: with ps; [ aiohttp-cors prometheus_client];
+    "prometheus" = ps: with ps; [ aiohttp-cors prometheus_client ];
     "prowl" = ps: with ps; [ ];
     "proximity" = ps: with ps; [ ];
     "proxmoxve" = ps: with ps; [ ]; # missing inputs: proxmoxer
-    "proxy" = ps: with ps; [ pillow];
+    "proxy" = ps: with ps; [ pillow ];
     "ps4" = ps: with ps; [ ]; # missing inputs: pyps4-2ndscreen
     "ptvsd" = ps: with ps; [ ]; # missing inputs: ptvsd
-    "pulseaudio_loopback" = ps: with ps; [ pulsectl];
-    "push" = ps: with ps; [ aiohttp-cors];
-    "pushbullet" = ps: with ps; [ pushbullet];
-    "pushover" = ps: with ps; [ pushover-complete];
+    "pulseaudio_loopback" = ps: with ps; [ pulsectl ];
+    "push" = ps: with ps; [ aiohttp-cors ];
+    "pushbullet" = ps: with ps; [ pushbullet ];
+    "pushover" = ps: with ps; [ pushover-complete ];
     "pushsafer" = ps: with ps; [ ];
-    "pvoutput" = ps: with ps; [ ];
+    "pvoutput" = ps: with ps; [ jsonpath xmltodict ];
     "pvpc_hourly_pricing" = ps: with ps; [ ]; # missing inputs: aiopvpc
     "pyload" = ps: with ps; [ ];
-    "python_script" = ps: with ps; [ restrictedpython];
+    "python_script" = ps: with ps; [ restrictedpython ];
     "qbittorrent" = ps: with ps; [ ]; # missing inputs: python-qbittorrent
     "qld_bushfire" = ps: with ps; [ ]; # missing inputs: georss_qld_bushfire_alert_client
     "qnap" = ps: with ps; [ ]; # missing inputs: qnapstats
-    "qrcode" = ps: with ps; [ pillow]; # missing inputs: pyzbar
+    "qrcode" = ps: with ps; [ pillow ]; # missing inputs: pyzbar
     "quantum_gateway" = ps: with ps; [ ]; # missing inputs: quantum-gateway
     "qvr_pro" = ps: with ps; [ ]; # missing inputs: pyqvrpro
     "qwikswitch" = ps: with ps; [ ]; # missing inputs: pyqwikswitch
-    "rachio" = ps: with ps; [ aiohttp-cors]; # missing inputs: rachiopy
+    "rachio" = ps: with ps; [ aiohttp-cors hass-nabucasa ]; # missing inputs: rachiopy
     "radarr" = ps: with ps; [ ];
     "radiotherm" = ps: with ps; [ ]; # missing inputs: radiotherm
     "rainbird" = ps: with ps; [ ]; # missing inputs: pyrainbird
@@ -641,124 +650,124 @@
     "raspihats" = ps: with ps; [ ]; # missing inputs: raspihats smbus-cffi
     "raspyrfm" = ps: with ps; [ ]; # missing inputs: raspyrfm-client
     "recollect_waste" = ps: with ps; [ ]; # missing inputs: recollect-waste
-    "recorder" = ps: with ps; [ sqlalchemy];
+    "recorder" = ps: with ps; [ sqlalchemy ];
     "recswitch" = ps: with ps; [ ]; # missing inputs: pyrecswitch
-    "reddit" = ps: with ps; [ praw];
+    "reddit" = ps: with ps; [ praw ];
     "rejseplanen" = ps: with ps; [ ]; # missing inputs: rjpl
-    "remember_the_milk" = ps: with ps; [ httplib2]; # missing inputs: RtmAPI
+    "remember_the_milk" = ps: with ps; [ httplib2 ]; # missing inputs: RtmAPI
     "remote" = ps: with ps; [ ];
     "remote_rpi_gpio" = ps: with ps; [ ]; # missing inputs: gpiozero
     "repetier" = ps: with ps; [ ]; # missing inputs: pyrepetier
-    "rest" = ps: with ps; [ jsonpath xmltodict];
+    "rest" = ps: with ps; [ jsonpath xmltodict ];
     "rest_command" = ps: with ps; [ ];
     "rflink" = ps: with ps; [ ]; # missing inputs: rflink
     "rfxtrx" = ps: with ps; [ ]; # missing inputs: pyRFXtrx
-    "ring" = ps: with ps; [ ha-ffmpeg]; # missing inputs: ring_doorbell
+    "ring" = ps: with ps; [ ha-ffmpeg ]; # missing inputs: ring_doorbell
     "ripple" = ps: with ps; [ ]; # missing inputs: python-ripple-api
-    "rmvtransport" = ps: with ps; [ ]; # missing inputs: PyRMVtransport
+    "rmvtransport" = ps: with ps; [ PyRMVtransport ];
     "rocketchat" = ps: with ps; [ ]; # missing inputs: rocketchat-API
     "roku" = ps: with ps; [ ]; # missing inputs: rokuecp
     "roomba" = ps: with ps; [ ]; # missing inputs: roombapy
-    "route53" = ps: with ps; [ boto3]; # missing inputs: ipify
+    "route53" = ps: with ps; [ boto3 ];
     "rova" = ps: with ps; [ ]; # missing inputs: rova
     "rpi_camera" = ps: with ps; [ ];
     "rpi_gpio" = ps: with ps; [ ]; # missing inputs: RPi.GPIO
     "rpi_gpio_pwm" = ps: with ps; [ ]; # missing inputs: pwmled
     "rpi_pfio" = ps: with ps; [ ]; # missing inputs: pifacecommon pifacedigitalio
     "rpi_rf" = ps: with ps; [ ]; # missing inputs: rpi-rf
-    "rss_feed_template" = ps: with ps; [ aiohttp-cors];
+    "rss_feed_template" = ps: with ps; [ aiohttp-cors ];
     "rtorrent" = ps: with ps; [ ];
     "russound_rio" = ps: with ps; [ ]; # missing inputs: russound_rio
     "russound_rnet" = ps: with ps; [ ]; # missing inputs: russound
-    "sabnzbd" = ps: with ps; [ ]; # missing inputs: pysabnzbd
-    "safe_mode" = ps: with ps; [ aiohttp-cors hass-nabucasa]; # missing inputs: home-assistant-frontend
+    "sabnzbd" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: pysabnzbd
+    "safe_mode" = ps: with ps; [ aiohttp-cors hass-nabucasa ]; # missing inputs: home-assistant-frontend
     "saj" = ps: with ps; [ ]; # missing inputs: pysaj
     "salt" = ps: with ps; [ ]; # missing inputs: saltbox
-    "samsungtv" = ps: with ps; [ ]; # missing inputs: samsungctl[websocket] samsungtvws[websocket]
+    "samsungtv" = ps: with ps; [ samsungctl samsungtvws ];
     "satel_integra" = ps: with ps; [ ]; # missing inputs: satel_integra
     "scene" = ps: with ps; [ ];
     "schluter" = ps: with ps; [ ]; # missing inputs: py-schluter
-    "scrape" = ps: with ps; [ beautifulsoup4];
+    "scrape" = ps: with ps; [ beautifulsoup4 jsonpath xmltodict ];
     "script" = ps: with ps; [ ];
     "scsgate" = ps: with ps; [ ]; # missing inputs: scsgate
-    "search" = ps: with ps; [ aiohttp-cors];
-    "season" = ps: with ps; [ ephem];
+    "search" = ps: with ps; [ aiohttp-cors ];
+    "season" = ps: with ps; [ ephem ];
     "sendgrid" = ps: with ps; [ ]; # missing inputs: sendgrid
     "sense" = ps: with ps; [ ]; # missing inputs: sense_energy
     "sensehat" = ps: with ps; [ ]; # missing inputs: sense-hat
     "sensibo" = ps: with ps; [ ]; # missing inputs: pysensibo
     "sensor" = ps: with ps; [ ];
-    "sentry" = ps: with ps; [ sentry-sdk];
-    "serial" = ps: with ps; [ pyserial-asyncio];
+    "sentry" = ps: with ps; [ sentry-sdk ];
+    "serial" = ps: with ps; [ pyserial-asyncio ];
     "serial_pm" = ps: with ps; [ ]; # missing inputs: pmsensor
     "sesame" = ps: with ps; [ ]; # missing inputs: pysesame2
-    "seven_segments" = ps: with ps; [ pillow];
+    "seven_segments" = ps: with ps; [ pillow ];
     "seventeentrack" = ps: with ps; [ ]; # missing inputs: py17track
     "shell_command" = ps: with ps; [ ];
-    "shiftr" = ps: with ps; [ paho-mqtt];
-    "shodan" = ps: with ps; [ shodan];
-    "shopping_list" = ps: with ps; [ aiohttp-cors];
+    "shiftr" = ps: with ps; [ paho-mqtt ];
+    "shodan" = ps: with ps; [ shodan ];
+    "shopping_list" = ps: with ps; [ aiohttp-cors ];
     "sht31" = ps: with ps; [ ]; # missing inputs: Adafruit-GPIO Adafruit-SHT31
     "sigfox" = ps: with ps; [ ];
-    "sighthound" = ps: with ps; [ pillow]; # missing inputs: simplehound
+    "sighthound" = ps: with ps; [ pillow ]; # missing inputs: simplehound
     "signal_messenger" = ps: with ps; [ ]; # missing inputs: pysignalclirestapi
     "simplepush" = ps: with ps; [ ]; # missing inputs: simplepush
     "simplisafe" = ps: with ps; [ ]; # missing inputs: simplisafe-python
     "simulated" = ps: with ps; [ ];
     "sinch" = ps: with ps; [ ]; # missing inputs: clx-sdk-xms
     "sisyphus" = ps: with ps; [ ]; # missing inputs: sisyphus-control
-    "sky_hub" = ps: with ps; [ ];
+    "sky_hub" = ps: with ps; [ ]; # missing inputs: pyskyqhub
     "skybeacon" = ps: with ps; [ ]; # missing inputs: pygatt[GATTTOOL]
     "skybell" = ps: with ps; [ ]; # missing inputs: skybellpy
     "slack" = ps: with ps; [ ]; # missing inputs: slackclient
     "sleepiq" = ps: with ps; [ ]; # missing inputs: sleepyq
     "slide" = ps: with ps; [ ]; # missing inputs: goslide-api
     "sma" = ps: with ps; [ ]; # missing inputs: pysma
-    "smappee" = ps: with ps; [ ]; # missing inputs: smappy
+    "smappee" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pysmappee
     "smarthab" = ps: with ps; [ ]; # missing inputs: smarthab
-    "smartthings" = ps: with ps; [ aiohttp-cors]; # missing inputs: pysmartapp pysmartthings
+    "smartthings" = ps: with ps; [ aiohttp-cors hass-nabucasa ]; # missing inputs: pysmartapp pysmartthings
     "smarty" = ps: with ps; [ ]; # missing inputs: pysmarty
     "smhi" = ps: with ps; [ ]; # missing inputs: smhi-pkg
     "sms" = ps: with ps; [ ]; # missing inputs: python-gammu
     "smtp" = ps: with ps; [ ];
-    "snapcast" = ps: with ps; [ snapcast];
-    "snips" = ps: with ps; [ aiohttp-cors hbmqtt paho-mqtt];
-    "snmp" = ps: with ps; [ pysnmp];
+    "snapcast" = ps: with ps; [ snapcast ];
+    "snips" = ps: with ps; [ aiohttp-cors paho-mqtt ];
+    "snmp" = ps: with ps; [ pysnmp ];
     "sochain" = ps: with ps; [ ]; # missing inputs: python-sochain-api
     "socialblade" = ps: with ps; [ ]; # missing inputs: socialbladeclient
-    "solaredge" = ps: with ps; [ stringcase]; # missing inputs: solaredge
+    "solaredge" = ps: with ps; [ stringcase ]; # missing inputs: solaredge
     "solaredge_local" = ps: with ps; [ ]; # missing inputs: solaredge-local
     "solarlog" = ps: with ps; [ ]; # missing inputs: sunwatcher
     "solax" = ps: with ps; [ ]; # missing inputs: solax
     "soma" = ps: with ps; [ ]; # missing inputs: pysoma
-    "somfy" = ps: with ps; [ aiohttp-cors]; # missing inputs: pymfy
+    "somfy" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pymfy
     "somfy_mylink" = ps: with ps; [ ]; # missing inputs: somfy-mylink-synergy
     "sonarr" = ps: with ps; [ ]; # missing inputs: sonarr
     "songpal" = ps: with ps; [ ]; # missing inputs: python-songpal
-    "sonos" = ps: with ps; [ pysonos];
+    "sonos" = ps: with ps; [ pysonos ];
     "sony_projector" = ps: with ps; [ ]; # missing inputs: pysdcp
-    "soundtouch" = ps: with ps; [ libsoundtouch];
-    "spaceapi" = ps: with ps; [ aiohttp-cors];
+    "soundtouch" = ps: with ps; [ aiohttp-cors libsoundtouch zeroconf ];
+    "spaceapi" = ps: with ps; [ aiohttp-cors ];
     "spc" = ps: with ps; [ ]; # missing inputs: pyspcwebgw
-    "speedtestdotnet" = ps: with ps; [ speedtest-cli];
+    "speedtestdotnet" = ps: with ps; [ speedtest-cli ];
     "spider" = ps: with ps; [ ]; # missing inputs: spiderpy
     "splunk" = ps: with ps; [ ];
     "spotcrime" = ps: with ps; [ ]; # missing inputs: spotcrime
-    "spotify" = ps: with ps; [ aiohttp-cors spotipy];
-    "sql" = ps: with ps; [ sqlalchemy];
-    "squeezebox" = ps: with ps; [ ]; # missing inputs: pysqueezebox
-    "ssdp" = ps: with ps; [ defusedxml netdisco];
+    "spotify" = ps: with ps; [ aiohttp-cors spotipy ];
+    "sql" = ps: with ps; [ sqlalchemy ];
+    "squeezebox" = ps: with ps; [ pysqueezebox ];
+    "ssdp" = ps: with ps; [ aiohttp-cors defusedxml netdisco zeroconf ];
     "starline" = ps: with ps; [ ]; # missing inputs: starline
     "starlingbank" = ps: with ps; [ ]; # missing inputs: starlingbank
-    "startca" = ps: with ps; [ xmltodict];
-    "statistics" = ps: with ps; [ ];
-    "statsd" = ps: with ps; [ statsd];
+    "startca" = ps: with ps; [ xmltodict ];
+    "statistics" = ps: with ps; [ sqlalchemy ];
+    "statsd" = ps: with ps; [ statsd ];
     "steam_online" = ps: with ps; [ ]; # missing inputs: steamodd
     "stiebel_eltron" = ps: with ps; [ ]; # missing inputs: pymodbus pystiebeleltron
     "stookalert" = ps: with ps; [ ]; # missing inputs: stookalert
-    "stream" = ps: with ps; [ aiohttp-cors av];
+    "stream" = ps: with ps; [ aiohttp-cors av ];
     "streamlabswater" = ps: with ps; [ ]; # missing inputs: streamlabswater
-    "stt" = ps: with ps; [ aiohttp-cors];
+    "stt" = ps: with ps; [ aiohttp-cors ];
     "suez_water" = ps: with ps; [ ]; # missing inputs: pysuez
     "sun" = ps: with ps; [ ];
     "supervisord" = ps: with ps; [ ];
@@ -771,15 +780,15 @@
     "switchbot" = ps: with ps; [ ]; # missing inputs: PySwitchbot
     "switcher_kis" = ps: with ps; [ ]; # missing inputs: aioswitcher
     "switchmate" = ps: with ps; [ ]; # missing inputs: pySwitchmate
-    "syncthru" = ps: with ps; [ ]; # missing inputs: pysyncthru
+    "syncthru" = ps: with ps; [ ]; # missing inputs: pysyncthru url-normalize
     "synology" = ps: with ps; [ ]; # missing inputs: py-synology
     "synology_chat" = ps: with ps; [ ];
     "synology_dsm" = ps: with ps; [ ]; # missing inputs: python-synology
     "synology_srm" = ps: with ps; [ ]; # missing inputs: synology-srm
     "syslog" = ps: with ps; [ ];
-    "system_health" = ps: with ps; [ aiohttp-cors];
-    "system_log" = ps: with ps; [ aiohttp-cors];
-    "systemmonitor" = ps: with ps; [ psutil];
+    "system_health" = ps: with ps; [ aiohttp-cors ];
+    "system_log" = ps: with ps; [ aiohttp-cors ];
+    "systemmonitor" = ps: with ps; [ psutil ];
     "tado" = ps: with ps; [ ]; # missing inputs: python-tado
     "tahoma" = ps: with ps; [ ]; # missing inputs: tahoma-api
     "tank_utility" = ps: with ps; [ ]; # missing inputs: tank_utility
@@ -787,19 +796,19 @@
     "tapsaff" = ps: with ps; [ ]; # missing inputs: tapsaff
     "tautulli" = ps: with ps; [ ]; # missing inputs: pytautulli
     "tcp" = ps: with ps; [ ];
-    "ted5000" = ps: with ps; [ xmltodict];
+    "ted5000" = ps: with ps; [ xmltodict ];
     "teksavvy" = ps: with ps; [ ];
-    "telegram" = ps: with ps; [ pysocks aiohttp-cors python-telegram-bot];
-    "telegram_bot" = ps: with ps; [ pysocks aiohttp-cors python-telegram-bot];
+    "telegram" = ps: with ps; [ pysocks aiohttp-cors python-telegram-bot ];
+    "telegram_bot" = ps: with ps; [ pysocks aiohttp-cors python-telegram-bot ];
     "tellduslive" = ps: with ps; [ ]; # missing inputs: tellduslive
     "tellstick" = ps: with ps; [ ]; # missing inputs: tellcore-net tellcore-py
     "telnet" = ps: with ps; [ ];
     "temper" = ps: with ps; [ ]; # missing inputs: temperusb
     "template" = ps: with ps; [ ];
-    "tensorflow" = ps: with ps; [ numpy pillow protobuf tensorflow];
+    "tensorflow" = ps: with ps; [ numpy pillow protobuf ]; # missing inputs: pycocotools tensorflow tf-models-official tf-slim
     "tesla" = ps: with ps; [ ]; # missing inputs: teslajsonpy
     "tfiac" = ps: with ps; [ ]; # missing inputs: pytfiac
-    "thermoworks_smoke" = ps: with ps; [ stringcase]; # missing inputs: thermoworks_smoke
+    "thermoworks_smoke" = ps: with ps; [ stringcase ]; # missing inputs: thermoworks_smoke
     "thethingsnetwork" = ps: with ps; [ ];
     "thingspeak" = ps: with ps; [ ]; # missing inputs: thingspeak
     "thinkingcleaner" = ps: with ps; [ ]; # missing inputs: pythinkingcleaner
@@ -812,51 +821,51 @@
     "timer" = ps: with ps; [ ];
     "tmb" = ps: with ps; [ ]; # missing inputs: tmb
     "tod" = ps: with ps; [ ];
-    "todoist" = ps: with ps; [ todoist];
+    "todoist" = ps: with ps; [ todoist ];
     "tof" = ps: with ps; [ ]; # missing inputs: RPi.GPIO VL53L1X2
     "tomato" = ps: with ps; [ ];
-    "toon" = ps: with ps; [ ]; # missing inputs: toonapilib
-    "torque" = ps: with ps; [ aiohttp-cors];
+    "toon" = ps: with ps; [ aiohttp-cors hass-nabucasa ]; # missing inputs: toonapi
+    "torque" = ps: with ps; [ aiohttp-cors ];
     "totalconnect" = ps: with ps; [ ]; # missing inputs: total_connect_client
     "touchline" = ps: with ps; [ ]; # missing inputs: pytouchline
-    "tplink" = ps: with ps; [ ]; # missing inputs: pyHS100
+    "tplink" = ps: with ps; [ pyhs100 ];
     "tplink_lte" = ps: with ps; [ ]; # missing inputs: tp-connected
-    "traccar" = ps: with ps; [ aiohttp-cors stringcase]; # missing inputs: pytraccar
+    "traccar" = ps: with ps; [ aiohttp-cors stringcase ]; # missing inputs: pytraccar
     "trackr" = ps: with ps; [ ]; # missing inputs: pytrackr
     "tradfri" = ps: with ps; [ ]; # missing inputs: pytradfri[async]
     "trafikverket_train" = ps: with ps; [ ]; # missing inputs: pytrafikverket
     "trafikverket_weatherstation" = ps: with ps; [ ]; # missing inputs: pytrafikverket
-    "transmission" = ps: with ps; [ transmissionrpc];
+    "transmission" = ps: with ps; [ transmissionrpc ];
     "transport_nsw" = ps: with ps; [ ]; # missing inputs: PyTransportNSW
     "travisci" = ps: with ps; [ ]; # missing inputs: TravisPy
-    "trend" = ps: with ps; [ numpy];
-    "tts" = ps: with ps; [ aiohttp-cors mutagen];
+    "trend" = ps: with ps; [ numpy ];
+    "tts" = ps: with ps; [ aiohttp-cors mutagen ];
     "tuya" = ps: with ps; [ ]; # missing inputs: tuyaha
     "twentemilieu" = ps: with ps; [ ]; # missing inputs: twentemilieu
-    "twilio" = ps: with ps; [ aiohttp-cors twilio];
-    "twilio_call" = ps: with ps; [ aiohttp-cors twilio];
-    "twilio_sms" = ps: with ps; [ aiohttp-cors twilio];
+    "twilio" = ps: with ps; [ aiohttp-cors twilio ];
+    "twilio_call" = ps: with ps; [ aiohttp-cors twilio ];
+    "twilio_sms" = ps: with ps; [ aiohttp-cors twilio ];
     "twitch" = ps: with ps; [ ]; # missing inputs: python-twitch-client
     "twitter" = ps: with ps; [ ]; # missing inputs: TwitterAPI
     "ubee" = ps: with ps; [ ]; # missing inputs: pyubee
     "ubus" = ps: with ps; [ ];
     "ue_smart_radio" = ps: with ps; [ ];
     "uk_transport" = ps: with ps; [ ];
-    "unifi" = ps: with ps; [ aiounifi];
-    "unifi_direct" = ps: with ps; [ pexpect];
+    "unifi" = ps: with ps; [ aiounifi ];
+    "unifi_direct" = ps: with ps; [ pexpect ];
     "unifiled" = ps: with ps; [ ]; # missing inputs: unifiled
     "universal" = ps: with ps; [ ];
     "upb" = ps: with ps; [ ]; # missing inputs: upb_lib
     "upc_connect" = ps: with ps; [ ]; # missing inputs: connect-box
     "upcloud" = ps: with ps; [ ]; # missing inputs: upcloud-api
-    "updater" = ps: with ps; [ distro];
-    "upnp" = ps: with ps; [ ]; # missing inputs: async-upnp-client
+    "updater" = ps: with ps; [ distro ];
+    "upnp" = ps: with ps; [ async-upnp-client ];
     "uptime" = ps: with ps; [ ];
     "uptimerobot" = ps: with ps; [ ]; # missing inputs: pyuptimerobot
     "uscis" = ps: with ps; [ ]; # missing inputs: uscisstatus
     "usgs_earthquakes_feed" = ps: with ps; [ ]; # missing inputs: geojson_client
     "utility_meter" = ps: with ps; [ ];
-    "uvc" = ps: with ps; [ ]; # missing inputs: uvcclient
+    "uvc" = ps: with ps; [ uvcclient ];
     "vacuum" = ps: with ps; [ ];
     "vallox" = ps: with ps; [ ]; # missing inputs: vallox-websocket-api
     "vasttrafik" = ps: with ps; [ ]; # missing inputs: vtjp
@@ -864,42 +873,43 @@
     "velux" = ps: with ps; [ ]; # missing inputs: pyvlx
     "venstar" = ps: with ps; [ ]; # missing inputs: venstarcolortouch
     "vera" = ps: with ps; [ ]; # missing inputs: pyvera
-    "verisure" = ps: with ps; [ jsonpath]; # missing inputs: vsure
+    "verisure" = ps: with ps; [ jsonpath ]; # missing inputs: vsure
     "versasense" = ps: with ps; [ ]; # missing inputs: pyversasense
-    "version" = ps: with ps; [ pyhaversion];
+    "version" = ps: with ps; [ pyhaversion ];
     "vesync" = ps: with ps; [ ]; # missing inputs: pyvesync
     "viaggiatreno" = ps: with ps; [ ];
     "vicare" = ps: with ps; [ ]; # missing inputs: PyViCare
     "vilfo" = ps: with ps; [ ]; # missing inputs: vilfo-api-client
     "vivotek" = ps: with ps; [ ]; # missing inputs: libpyvivotek
     "vizio" = ps: with ps; [ ]; # missing inputs: pyvizio
-    "vlc" = ps: with ps; [ python-vlc];
+    "vlc" = ps: with ps; [ python-vlc ];
     "vlc_telnet" = ps: with ps; [ ]; # missing inputs: python-telnet-vlc
     "voicerss" = ps: with ps; [ ];
     "volkszaehler" = ps: with ps; [ ]; # missing inputs: volkszaehler
-    "volumio" = ps: with ps; [ ];
+    "volumio" = ps: with ps; [ ]; # missing inputs: pyvolumio
     "volvooncall" = ps: with ps; [ ]; # missing inputs: volvooncall
-    "vultr" = ps: with ps; [ vultr];
+    "vultr" = ps: with ps; [ vultr ];
     "w800rf32" = ps: with ps; [ ]; # missing inputs: pyW800rf32
-    "wake_on_lan" = ps: with ps; [ wakeonlan];
+    "wake_on_lan" = ps: with ps; [ wakeonlan ];
     "waqi" = ps: with ps; [ ]; # missing inputs: waqiasync
     "water_heater" = ps: with ps; [ ];
     "waterfurnace" = ps: with ps; [ ]; # missing inputs: waterfurnace
     "watson_iot" = ps: with ps; [ ]; # missing inputs: ibmiotf
     "watson_tts" = ps: with ps; [ ]; # missing inputs: ibm-watson
-    "waze_travel_time" = ps: with ps; [ WazeRouteCalculator];
+    "waze_travel_time" = ps: with ps; [ WazeRouteCalculator ];
     "weather" = ps: with ps; [ ];
-    "webhook" = ps: with ps; [ aiohttp-cors];
+    "webhook" = ps: with ps; [ aiohttp-cors ];
     "webostv" = ps: with ps; [ ]; # missing inputs: aiopylgtv
-    "websocket_api" = ps: with ps; [ aiohttp-cors];
+    "websocket_api" = ps: with ps; [ aiohttp-cors ];
     "wemo" = ps: with ps; [ ]; # missing inputs: pywemo
     "whois" = ps: with ps; [ ]; # missing inputs: python-whois
     "wiffi" = ps: with ps; [ ]; # missing inputs: wiffi
-    "wink" = ps: with ps; [ aiohttp-cors]; # missing inputs: pubnubsub-handler python-wink
+    "wink" = ps: with ps; [ aiohttp-cors ]; # missing inputs: pubnubsub-handler python-wink
     "wirelesstag" = ps: with ps; [ ]; # missing inputs: wirelesstagpy
-    "withings" = ps: with ps; [ aiohttp-cors]; # missing inputs: withings-api
+    "withings" = ps: with ps; [ aiohttp-cors ]; # missing inputs: withings-api
     "wled" = ps: with ps; [ ]; # missing inputs: wled
-    "workday" = ps: with ps; [ holidays];
+    "wolflink" = ps: with ps; [ ]; # missing inputs: wolf_smartset
+    "workday" = ps: with ps; [ holidays ];
     "worldclock" = ps: with ps; [ ];
     "worldtidesinfo" = ps: with ps; [ ];
     "worxlandroid" = ps: with ps; [ ];
@@ -910,33 +920,33 @@
     "xbox_live" = ps: with ps; [ ]; # missing inputs: xboxapi
     "xeoma" = ps: with ps; [ ]; # missing inputs: pyxeoma
     "xfinity" = ps: with ps; [ ]; # missing inputs: xfinity-gateway
-    "xiaomi" = ps: with ps; [ ha-ffmpeg];
-    "xiaomi_aqara" = ps: with ps; [ ]; # missing inputs: PyXiaomiGateway
-    "xiaomi_miio" = ps: with ps; [ construct python-miio];
+    "xiaomi" = ps: with ps; [ ha-ffmpeg ];
+    "xiaomi_aqara" = ps: with ps; [ aiohttp-cors netdisco zeroconf ]; # missing inputs: PyXiaomiGateway
+    "xiaomi_miio" = ps: with ps; [ construct python-miio ];
     "xiaomi_tv" = ps: with ps; [ ]; # missing inputs: pymitv
-    "xmpp" = ps: with ps; [ slixmpp];
+    "xmpp" = ps: with ps; [ slixmpp ];
     "xs1" = ps: with ps; [ ]; # missing inputs: xs1-api-client
     "yale_smart_alarm" = ps: with ps; [ ]; # missing inputs: yalesmartalarmclient
-    "yamaha" = ps: with ps; [ rxv];
+    "yamaha" = ps: with ps; [ rxv ];
     "yamaha_musiccast" = ps: with ps; [ ]; # missing inputs: pymusiccast
-    "yandex_transport" = ps: with ps; [ ]; # missing inputs: ya_ma
+    "yandex_transport" = ps: with ps; [ ]; # missing inputs: aioymaps
     "yandextts" = ps: with ps; [ ];
-    "yeelight" = ps: with ps; [ ]; # missing inputs: yeelight
+    "yeelight" = ps: with ps; [ aiohttp-cors netdisco yeelight zeroconf ];
     "yeelightsunflower" = ps: with ps; [ ]; # missing inputs: yeelightsunflower
     "yessssms" = ps: with ps; [ ]; # missing inputs: YesssSMS
-    "yi" = ps: with ps; [ aioftp ha-ffmpeg];
-    "yr" = ps: with ps; [ xmltodict];
+    "yi" = ps: with ps; [ aioftp ha-ffmpeg ];
+    "yr" = ps: with ps; [ xmltodict ];
     "zabbix" = ps: with ps; [ ]; # missing inputs: pyzabbix
     "zamg" = ps: with ps; [ ];
     "zengge" = ps: with ps; [ ]; # missing inputs: zengge
-    "zeroconf" = ps: with ps; [ aiohttp-cors zeroconf];
+    "zeroconf" = ps: with ps; [ aiohttp-cors zeroconf ];
     "zerproc" = ps: with ps; [ ]; # missing inputs: pyzerproc
-    "zestimate" = ps: with ps; [ xmltodict];
-    "zha" = ps: with ps; [ pyserial zha-quirks zigpy-deconz]; # missing inputs: bellows zigpy-cc zigpy-xbee zigpy-zigate zigpy
+    "zestimate" = ps: with ps; [ xmltodict ];
+    "zha" = ps: with ps; [ bellows pyserial zha-quirks zigpy-cc zigpy-deconz zigpy-xbee zigpy-zigate zigpy ];
     "zhong_hong" = ps: with ps; [ ]; # missing inputs: zhong_hong_hvac
     "ziggo_mediabox_xl" = ps: with ps; [ ]; # missing inputs: ziggo-mediabox-xl
     "zone" = ps: with ps; [ ];
-    "zoneminder" = ps: with ps; [ zm-py];
-    "zwave" = ps: with ps; [ homeassistant-pyozw pydispatcher];
+    "zoneminder" = ps: with ps; [ zm-py ];
+    "zwave" = ps: with ps; [ homeassistant-pyozw pydispatcher ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/home-assistant/default.nix b/nixpkgs/pkgs/servers/home-assistant/default.nix
index 33fbbf663102..17ce095e3938 100644
--- a/nixpkgs/pkgs/servers/home-assistant/default.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchFromGitHub, fetchpatch, python3, protobuf3_6
+{ stdenv, nixosTests, lib, fetchurl, fetchFromGitHub, fetchpatch, python3, protobuf3_6
 
 # Look up dependencies of specified components in component-packages.nix
 , extraComponents ? [ ]
@@ -22,17 +22,18 @@ let
   defaultOverrides = [
     # Override the version of some packages pinned in Home Assistant's setup.py
 
-    # used by check_config script
-    # can be unpinned once https://github.com/home-assistant/home-assistant/issues/11917 is resolved
-    (mkOverride "colorlog" "4.0.2"
-      "3cf31b25cbc8f86ec01fef582ef3b840950dea414084ed19ab922c8b493f9b42")
+    # required by the sun/moon plugins
+    # https://github.com/home-assistant/core/issues/36636
+    (mkOverride "astral" "1.10.1"
+      "d2a67243c4503131c856cafb1b1276de52a86e5b8a1d507b7e08bee51cb67bf1")
 
-    # required by aioesphomeapi
-    (self: super: {
-      protobuf = super.protobuf.override {
-        protobuf = protobuf3_6;
-      };
-    })
+    # We have 3.x in nixpkgs which is incompatible with home-assistant atm:
+    # https://github.com/home-assistant/core/blob/dev/requirements_all.txt
+    (mkOverride "pyowm" "2.10.0"
+      "1xvcv3sbcn9na8cwz21nnjlixysfk5lymnf65d1nqkbgacc1mm4g")
+
+    (mkOverride "bcrypt" "3.1.7"
+      "0hhywhxx301cxivgxrpslrangbfpccc8y83qbwn1f57cab3nj00b")
 
     # hass-frontend does not exist in python3.pkgs
     (self: super: {
@@ -67,7 +68,7 @@ let
   extraBuildInputs = extraPackages py.pkgs;
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "0.111.0";
+  hassVersion = "0.114.4";
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "homeassistant";
@@ -76,7 +77,7 @@ in with py.pkgs; buildPythonApplication rec {
   disabled = pythonOlder "3.5";
 
   patches = [
-    ./0001-setup.py-relax-dependencies.patch
+    ./relax-dependencies.patch
   ];
 
   inherit availableComponents;
@@ -86,9 +87,14 @@ in with py.pkgs; buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = version;
-    sha256 = "0zg7fng3cfksn4hr8vixsmj8cbag8h4dg4qi69n56hc71rnpl9kw";
+    sha256 = "0k9px4ny0b72d9ysr3x72idprgfgjab1z91ildr87629826bb4n7";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "yarl==1.4.2" "yarl~=1.4"
+  '';
+
   propagatedBuildInputs = [
     # From setup.py
     aiohttp astral async-timeout attrs bcrypt certifi importlib-metadata jinja2
@@ -109,9 +115,14 @@ in with py.pkgs; buildPythonApplication rec {
     # - components' dependencies are not included, so they cannot be tested
     # - test_merge_id_schema requires pyqwikswitch
     # - test_loader.py tries to load not-packaged dependencies
+    # - test_notify pyotp doesn't like the short mock keys
     # - unclear why test_merge fails: assert merge_log_err.call_count != 0
     # - test_setup_safe_mode_if_no_frontend: requires dependencies for components we have not packaged
-    py.test --ignore tests/components --ignore tests/test_loader.py -k "not test_setup_safe_mode_if_no_frontend and not test_merge_id_schema and not test_merge"
+    py.test \
+      --ignore tests/components \
+      --ignore tests/test_loader.py \
+      --ignore tests/auth/mfa_modules/test_notify.py \
+      -k "not test_setup_safe_mode_if_no_frontend and not test_merge_id_schema and not test_merge"
 
     # Some basic components should be tested however
     py.test \
@@ -123,12 +134,15 @@ in with py.pkgs; buildPythonApplication rec {
 
   passthru = {
     inherit (py.pkgs) hass-frontend;
+    tests = {
+      inherit (nixosTests) home-assistant;
+    };
   };
 
   meta = with lib; {
     homepage = "https://home-assistant.io/";
     description = "Open-source home automation platform running on Python 3";
     license = licenses.asl20;
-    maintainers = with maintainers; [ dotlambda globin mic92 ];
+    maintainers = with maintainers; [ dotlambda globin mic92 hexa ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/home-assistant/frontend.nix b/nixpkgs/pkgs/servers/home-assistant/frontend.nix
index a2445dad324b..5c7227dc4e01 100644
--- a/nixpkgs/pkgs/servers/home-assistant/frontend.nix
+++ b/nixpkgs/pkgs/servers/home-assistant/frontend.nix
@@ -4,11 +4,11 @@ buildPythonPackage rec {
   # the frontend version corresponding to a specific home-assistant version can be found here
   # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
   pname = "home-assistant-frontend";
-  version = "20200603.2";
+  version = "20200811.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1p99f5q8frk5k5lh1gjxyq539p1iv9fslpbfirh8njx3d0a85l84";
+    sha256 = "0nrvfr4mw7h9py27hkak201jsfrvyxlgswfnda1l7k9ns9y4lpj8";
   };
 
   # no Python tests implemented
diff --git a/nixpkgs/pkgs/servers/home-assistant/parse-requirements.py b/nixpkgs/pkgs/servers/home-assistant/parse-requirements.py
index f802485d6c62..4fa4b8a48ee4 100755
--- a/nixpkgs/pkgs/servers/home-assistant/parse-requirements.py
+++ b/nixpkgs/pkgs/servers/home-assistant/parse-requirements.py
@@ -24,7 +24,7 @@ import sys
 import tarfile
 import tempfile
 from io import BytesIO
-from typing import Dict, Optional
+from typing import Dict, Optional, Set, Any
 from urllib.request import urlopen
 
 COMPONENT_PREFIX = "homeassistant.components"
@@ -79,11 +79,14 @@ def parse_components(version: str = "master"):
 
 
 # Recursively get the requirements of a component and its dependencies
-def get_reqs(components, component):
+def get_reqs(components: Dict[str, Dict[str, Any]], component: str, processed: Set[str]) -> Set[str]:
     requirements = set(components[component].get("requirements", []))
     deps = components[component].get("dependencies", [])
+    deps.extend(components[component].get("after_dependencies", []))
+    processed.add(component)
     for dependency in deps:
-        requirements.update(get_reqs(components, dependency))
+        if dependency not in processed:
+            requirements.update(get_reqs(components, dependency, processed))
     return requirements
 
 
@@ -110,6 +113,10 @@ def name_to_attr_path(req: str, packages: Dict[str, Dict[str, str]]) -> Optional
     # instead of python-3.6-python-mpd2 inside Nixpkgs
     if req.startswith("python-") or req.startswith("python_"):
         names.append(req[len("python-") :])
+    # Add name variant without extra_require, e.g. samsungctl
+    # instead of samsungctl[websocket]
+    if req.endswith("]"):
+        names.append(req[:req.find("[")])
     for name in names:
         # treat "-" and "_" equally
         name = re.sub("[-_]", "[-_]", name)
@@ -143,7 +150,7 @@ def main() -> None:
     for component in sorted(components.keys()):
         attr_paths = []
         missing_reqs = []
-        reqs = sorted(get_reqs(components, component))
+        reqs = sorted(get_reqs(components, component, set()))
         for req in reqs:
             # Some requirements are specified by url, e.g. https://example.org/foobar#xyz==1.0.0
             # Therefore, if there's a "#" in the line, only take the part after it
@@ -170,9 +177,10 @@ def main() -> None:
         f.write("  components = {\n")
         for component, deps in build_inputs.items():
             available, missing = deps
-            f.write(f'    "{component}" = ps: with ps; [ ')
-            f.write(" ".join(available))
-            f.write("];")
+            f.write(f'    "{component}" = ps: with ps; [')
+            if available:
+                f.write(" " + " ".join(available))
+            f.write(" ];")
             if len(missing) > 0:
                 f.write(f" # missing inputs: {' '.join(missing)}")
             f.write("\n")
diff --git a/nixpkgs/pkgs/servers/home-assistant/relax-dependencies.patch b/nixpkgs/pkgs/servers/home-assistant/relax-dependencies.patch
new file mode 100644
index 000000000000..d06a37352f6f
--- /dev/null
+++ b/nixpkgs/pkgs/servers/home-assistant/relax-dependencies.patch
@@ -0,0 +1,21 @@
+diff --git a/setup.py b/setup.py
+index 81f8727ed6..12200e0b9f 100755
+--- a/setup.py
++++ b/setup.py
+@@ -43,13 +43,13 @@ REQUIRES = [
+     "jinja2>=2.11.1",
+     "PyJWT==1.7.1",
+     # PyJWT has loose dependency. We want the latest one.
+-    "cryptography==2.9.2",
++    "cryptography>=2.9.2",
+     "pip>=8.0.3",
+     "python-slugify==4.0.1",
+     "pytz>=2020.1",
+     "pyyaml==5.3.1",
+-    "requests==2.24.0",
+-    "ruamel.yaml==0.15.100",
++    "requests>=2.23.0",
++    "ruamel.yaml>=0.15.100",
+     "voluptuous==0.11.7",
+     "voluptuous-serialize==2.4.0",
+     "yarl==1.4.2",
diff --git a/nixpkgs/pkgs/servers/home-assistant/test-timeout.patch b/nixpkgs/pkgs/servers/home-assistant/test-timeout.patch
new file mode 100644
index 000000000000..01b0edae1d74
--- /dev/null
+++ b/nixpkgs/pkgs/servers/home-assistant/test-timeout.patch
@@ -0,0 +1,13 @@
+diff --git a/tests/test_core.py b/tests/test_core.py
+index a63f42af61..04b333868b 100644
+--- a/tests/test_core.py
++++ b/tests/test_core.py
+@@ -1432,7 +1432,7 @@ async def test_chained_logging_hits_log_timeout(hass, caplog):
+     async def _task_chain_2():
+         nonlocal created
+         created += 1
+-        if created > 10:
++        if created > 1000:
+             return
+         hass.async_create_task(_task_chain_1())
+ 
diff --git a/nixpkgs/pkgs/servers/home-assistant/update.sh b/nixpkgs/pkgs/servers/home-assistant/update.sh
new file mode 100755
index 000000000000..11189cf3577a
--- /dev/null
+++ b/nixpkgs/pkgs/servers/home-assistant/update.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -p nix -p jq -p curl -p bash -p git -p nix-update -i bash
+
+set -eux
+
+DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
+cd "$DIR"
+
+CURRENT_VERSION=$(nix eval --raw '(with import ../../.. {}; home-assistant.version)')
+TARGET_VERSION=$(curl https://api.github.com/repos/home-assistant/core/releases/latest | jq -r '.name')
+MANIFEST=$(curl https://raw.githubusercontent.com/home-assistant/core/${TARGET_VERSION}/homeassistant/components/frontend/manifest.json)
+FRONTEND_VERSION=$(echo $MANIFEST | jq -r '.requirements[] | select(startswith("home-assistant-frontend")) | sub(".*==(?<vers>.*)"; .vers)')
+
+if [[ "$CURRENT_VERSION" == "$TARGET_VERSION" ]]; then
+    echo "home-assistant is up-to-date: ${CURRENT_VERSION}"
+    exit 0
+fi
+
+
+sed -i -e "s/version =.*/version = \"${TARGET_VERSION}\";/" \
+    component-packages.nix
+
+sed -i -e "s/hassVersion =.*/hassVersion = \"${TARGET_VERSION}\";/" \
+    default.nix
+
+./parse-requirements.py
+(
+    cd ../../..
+    nix-update --version "$FRONTEND_VERSION" home-assistant.hass-frontend
+    nix-update --version "$TARGET_VERSION" --build home-assistant
+)
+
+git add ./component-packages.nix ./default.nix ./frontend.nix
+git commit -m "homeassistant: ${CURRENT_VERSION} -> ${TARGET_VERSION}"
diff --git a/nixpkgs/pkgs/servers/http/apache-httpd/2.4.nix b/nixpkgs/pkgs/servers/http/apache-httpd/2.4.nix
index 8d8a0fceefb4..4b63b589ea95 100644
--- a/nixpkgs/pkgs/servers/http/apache-httpd/2.4.nix
+++ b/nixpkgs/pkgs/servers/http/apache-httpd/2.4.nix
@@ -16,12 +16,12 @@ assert ldapSupport -> aprutil.ldapSupport && openldap != null;
 assert http2Support -> nghttp2 != null;
 
 stdenv.mkDerivation rec {
-  version = "2.4.43";
+  version = "2.4.46";
   pname = "apache-httpd";
 
   src = fetchurl {
     url = "mirror://apache/httpd/httpd-${version}.tar.bz2";
-    sha256 = "0hqgw47r3p3521ygkkqs8s30s5crm683081avj6330gwncm6b5x4";
+    sha256 = "1sj1rwgbcjgkzac3ybjy7j68c9b3dv3ap71m48mrjhf6w7vds3kl";
   };
 
   # FIXME: -dev depends on -doc
@@ -39,7 +39,6 @@ stdenv.mkDerivation rec {
   prePatch = ''
     sed -i config.layout -e "s|installbuilddir:.*|installbuilddir: $dev/share/build|"
     sed -i support/apachectl.in -e 's|@LYNX_PATH@|${lynx}/bin/lynx|'
-    sed -i support/apachectl.in -e 's|$HTTPD -t|$HTTPD -t -f /etc/httpd/httpd.conf|'
   '';
 
   # Required for ‘pthread_cancel’.
diff --git a/nixpkgs/pkgs/servers/http/couchdb/3.nix b/nixpkgs/pkgs/servers/http/couchdb/3.nix
new file mode 100644
index 000000000000..3716afae4906
--- /dev/null
+++ b/nixpkgs/pkgs/servers/http/couchdb/3.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl, erlang, icu, openssl, spidermonkey
+, coreutils, bash, makeWrapper, python3 }:
+
+stdenv.mkDerivation rec {
+  pname = "couchdb";
+  version = "3.1.0";
+
+
+  # when updating this, please consider bumping the erlang/OTP version
+  # in all-packages.nix
+  src = fetchurl {
+    url = "mirror://apache/couchdb/source/${version}/apache-${pname}-${version}.tar.gz";
+    sha256 = "1vgqj3zsrkdqgnwzji3mqkapnfd6kq466f5xnya0fvzzl6bcfrs8";
+  };
+
+  buildInputs = [ erlang icu openssl spidermonkey (python3.withPackages(ps: with ps; [ requests ]))];
+  postPatch = ''
+    substituteInPlace src/couch/rebar.config.script --replace '/usr/include/mozjs-68' "${spidermonkey.dev}/include/mozjs-68"
+    patchShebangs bin/rebar
+  '';
+
+  dontAddPrefix= "True";
+  configureFlags = ["--spidermonkey-version=68"];
+  buildFlags = ["release"];
+
+  installPhase = ''
+    mkdir -p $out
+    cp -r rel/couchdb/* $out
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API";
+    homepage = "http://couchdb.apache.org";
+    license = licenses.asl20;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ lostnet ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/http/hiawatha/default.nix b/nixpkgs/pkgs/servers/http/hiawatha/default.nix
index b731d4d0b341..7def709a8408 100644
--- a/nixpkgs/pkgs/servers/http/hiawatha/default.nix
+++ b/nixpkgs/pkgs/servers/http/hiawatha/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hiawatha";
-  version = "10.9";
+  version = "10.11";
 
   src = fetchFromGitLab {
     owner = "hsleisink";
     repo = "hiawatha";
     rev = "v${version}";
-    sha256 = "0mcg36bidy3p57nyk9nliqjipfb3r2irziavlbr2d5g3smfv52z2";
+    sha256 = "10a7dqj37zrbmgnhwsw0mqm5x25kasl8p95g01rzakviwxkdrkid";
   };
 
   nativeBuildInputs = [ cmake ninja ];
diff --git a/nixpkgs/pkgs/servers/http/jetty/default.nix b/nixpkgs/pkgs/servers/http/jetty/default.nix
index 4f34fde1856c..20370fd37c70 100644
--- a/nixpkgs/pkgs/servers/http/jetty/default.nix
+++ b/nixpkgs/pkgs/servers/http/jetty/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jetty";
-  version = "9.4.29.v20200521";
+  version = "9.4.31.v20200723";
   src = fetchurl {
     url = "https://repo1.maven.org/maven2/org/eclipse/jetty/jetty-distribution/${version}/jetty-distribution-${version}.tar.gz";
     name = "jetty-distribution-${version}.tar.gz";
-    sha256 = "0ir7rzr5479k7whgy0fx6bjj7x978ghx4fxc64i39hg2kzcp5dbi";
+    sha256 = "1j1dhlrlj7xnijp55c1hd9r47m6bq37vpjkaf8f9fg7q9m2z9x6x";
   };
 
   phases = [ "unpackPhase" "installPhase" ];
diff --git a/nixpkgs/pkgs/servers/http/nginx/generic.nix b/nixpkgs/pkgs/servers/http/nginx/generic.nix
index 80bc1458ad7a..6ec5b0a78510 100644
--- a/nixpkgs/pkgs/servers/http/nginx/generic.nix
+++ b/nixpkgs/pkgs/servers/http/nginx/generic.nix
@@ -4,6 +4,7 @@
 , withDebug ? false
 , withStream ? true
 , withMail ? false
+, withPerl ? true
 , modules ? []
 , ...
 }:
@@ -87,7 +88,7 @@ stdenv.mkDerivation {
   ] ++ optionals withMail [
     "--with-mail"
     "--with-mail_ssl_module"
-  ] ++ optional (perl != null) [
+  ] ++ optionals withPerl [
     "--with-http_perl_module"
     "--with-perl=${perl}/bin/perl"
     "--with-perl_modules_path=lib/perl5"
diff --git a/nixpkgs/pkgs/servers/http/nginx/mainline.nix b/nixpkgs/pkgs/servers/http/nginx/mainline.nix
index c67606785e5b..de74a72e7880 100644
--- a/nixpkgs/pkgs/servers/http/nginx/mainline.nix
+++ b/nixpkgs/pkgs/servers/http/nginx/mainline.nix
@@ -1,6 +1,6 @@
 { callPackage, ... }@args:
 
 callPackage ./generic.nix args {
-  version = "1.19.0";
-  sha256 = "1j1n3rlvan6l9j3vw8axbbdm96w7s0x6ygmgqvbplzfd3wbid9j4";
+  version = "1.19.2";
+  sha256 = "0wr4ss4gld7x717m4j3a6l6f7ijblrrd55y563lkwhvr7sqpn7vw";
 }
diff --git a/nixpkgs/pkgs/servers/http/nginx/modules.nix b/nixpkgs/pkgs/servers/http/nginx/modules.nix
index 9fcb3305f0ac..ae658a7fdd4e 100644
--- a/nixpkgs/pkgs/servers/http/nginx/modules.nix
+++ b/nixpkgs/pkgs/servers/http/nginx/modules.nix
@@ -4,10 +4,11 @@ let
 
   http_proxy_connect_module_generic = patchName: rec {
     src = fetchFromGitHub {
+      name = "http_proxy_connect_module_generic";
       owner = "chobits";
       repo = "ngx_http_proxy_connect_module";
-      rev = "002f8f9ef15562dc3691b977134518ad216d7a90";
-      sha256 = "163wg0xb7w5mwh6wrfarzcgaf6c7gb5qydgpi2wk35k551f7286s";
+      rev = "96ae4e06381f821218f368ad0ba964f87cbe0266";
+      sha256 = "1nc7z31i7x9dzp67kzgvs34hs6ps749y26wcpi3wf5mm63i803rh";
     };
 
     patches = [
@@ -18,12 +19,26 @@ let
 in
 
 {
+  fastcgi-cache-purge = throw "fastcgi-cache-purge was renamed to cache-purge";
+  ngx_aws_auth = throw "ngx_aws_auth was renamed to aws-auth";
+
+  aws-auth = {
+    src = fetchFromGitHub {
+      name = "aws-auth";
+      owner = "anomalizer";
+      repo = "ngx_aws_auth";
+      rev = "2.1.1";
+      sha256 = "10z67g40w7wpd13fwxyknkbg3p6hn61i4v8xw6lh27br29v1y6h9";
+    };
+  };
+
   brotli = {
     src = let gitsrc = pkgs.fetchFromGitHub {
+      name = "brotli";
       owner = "google";
       repo = "ngx_brotli";
-      rev = "e505dce68acc190cc5a1e780a3b0275e39f160ca";
-      sha256 = "00j48lffki62y1nmjyy81iklw5nlyzvrjy3z04qch4fp3p57hwla";
+      rev = "25f86f0bac1101b6512135eac5f93c49c63609e3";
+      sha256 = "02hfvfa6milj40qc2ikpb9f95sxqvxk4hly3x74kqhysbdi06hhv";
     }; in pkgs.runCommandNoCC "ngx_brotli-src" {} ''
       cp -a ${gitsrc} $out
       substituteInPlace $out/filter/config \
@@ -32,8 +47,19 @@ in
     inputs = [ pkgs.brotli ];
   };
 
+  cache-purge = {
+    src = fetchFromGitHub {
+      name = "cache-purge";
+      owner  = "nginx-modules";
+      repo   = "ngx_cache_purge";
+      rev    = "2.5.1";
+      sha256 = "0va4jz36mxj76nmq05n3fgnpdad30cslg7c10vnlhdmmic9vqncd";
+    };
+  };
+
   coolkit = {
     src = fetchFromGitHub {
+      name = "coolkit";
       owner  = "FRiCKLE";
       repo   = "ngx_coolkit";
       rev    = "0.2";
@@ -43,6 +69,7 @@ in
 
   dav = {
     src = fetchFromGitHub {
+      name = "dav";
       owner = "arut";
       repo = "nginx-dav-ext-module";
       rev = "v3.0.0";
@@ -53,24 +80,27 @@ in
 
   develkit = {
     src = fetchFromGitHub {
-      owner = "simpl";
+      name = "develkit";
+      owner = "vision5";
       repo = "ngx_devel_kit";
-      rev = "v0.3.1rc1";
-      sha256 = "00vqvpx67qra2hr85hkvj1dha4h7x7v9sblw7w1df11nq1gzsdbb";
+      rev = "v0.3.1";
+      sha256 = "1c5zfpvm0hrd9lp8rasmw79dnr2aabh0i6y11wzb783bp8m3p2sq";
     };
   };
 
   echo = {
     src = fetchFromGitHub {
+      name = "echo";
       owner = "openresty";
       repo = "echo-nginx-module";
-      rev = "v0.61";
-      sha256 = "0brjhhphi94ms4gia7za0mfx0png4jbhvq6j0nzjwp537iyiy23k";
+      rev = "v0.62";
+      sha256 = "0kr1y094yw1a9fyrf4w73ikq18w5ys463wza9n7yfl77xdwirnvl";
     };
   };
 
   fancyindex = {
     src = fetchFromGitHub {
+      name = "fancyindex";
       owner = "aperezdc";
       repo = "ngx-fancyindex";
       rev = "v0.4.4";
@@ -78,17 +108,9 @@ in
     };
   };
 
-  fastcgi-cache-purge = {
-    src = fetchFromGitHub {
-      owner  = "nginx-modules";
-      repo   = "ngx_cache_purge";
-      rev    = "2.5";
-      sha256 = "1f4kxagzvz10vqbcjwi57wink6xw3s1h7wlrrlrlpkmhfbf9704y";
-    };
-  };
-
   fluentd = {
     src = fetchFromGitHub {
+      name = "fluentd";
       owner = "fluent";
       repo = "nginx-fluentd-module";
       rev = "8af234043059c857be27879bc547c141eafd5c13";
@@ -96,12 +118,17 @@ in
     };
   };
 
-  http_proxy_connect_module_v16 = http_proxy_connect_module_generic "proxy_connect_rewrite_101504" // {
-    supports = with lib.versions; version: major version == "1" && minor version == "16";
+  http_proxy_connect_module_v18 = http_proxy_connect_module_generic "proxy_connect_rewrite_1018" // {
+    supports = with lib.versions; version: major version == "1" && minor version == "18";
+  };
+
+  http_proxy_connect_module_v19 = http_proxy_connect_module_generic "proxy_connect_rewrite_1018" // {
+    supports = with lib.versions; version: major version == "1" && minor version == "19";
   };
 
   ipscrub = {
     src = fetchFromGitHub {
+      name = "ipscrub";
       owner = "masonicboom";
       repo = "ipscrub";
       rev = "v1.0.1";
@@ -112,6 +139,7 @@ in
 
   limit-speed = {
     src = fetchFromGitHub {
+      name = "limit-speed";
       owner = "yaoweibin";
       repo = "nginx_limit_speed_module";
       rev = "f77ad4a56fbb134878e75827b40cf801990ed936";
@@ -121,6 +149,7 @@ in
 
   live ={
     src = fetchFromGitHub {
+      name = "live";
       owner = "arut";
       repo = "nginx-live-module";
       rev = "5e4a1e3a718e65e5206c24eba00d42b0d1c4b7dd";
@@ -130,6 +159,7 @@ in
 
   lua = {
     src = fetchFromGitHub {
+      name = "lua";
       owner = "openresty";
       repo = "lua-nginx-module";
       rev = "v0.10.15";
@@ -145,6 +175,7 @@ in
 
   lua-upstream = {
     src = fetchFromGitHub {
+      name = "lua-upstream";
       owner = "openresty";
       repo = "lua-upstream-nginx-module";
       rev = "v0.07";
@@ -164,16 +195,18 @@ in
 
   modsecurity-nginx = {
     src = fetchFromGitHub {
+      name = "modsecurity-nginx";
       owner = "SpiderLabs";
       repo = "ModSecurity-nginx";
-      rev = "v1.0.0";
-      sha256 = "0zzpdqhbdqqy8kjkszv0mrq6136ah9v3zwr1jbh312j8izmzdyi7";
+      rev = "v1.0.1";
+      sha256 = "0cbb3g3g4v6q5zc6an212ia5kjjad62bidnkm8b70i4qv1615pzf";
     };
     inputs = [ pkgs.curl pkgs.geoip pkgs.libmodsecurity pkgs.libxml2 pkgs.lmdb pkgs.yajl ];
   };
 
   moreheaders = {
     src = fetchFromGitHub {
+      name = "moreheaders";
       owner = "openresty";
       repo = "headers-more-nginx-module";
       rev = "v0.33";
@@ -183,6 +216,7 @@ in
 
   mpeg-ts ={
     src = fetchFromGitHub {
+      name = "mpeg-ts";
       owner = "arut";
       repo = "nginx-ts-module";
       rev = "v0.1.1";
@@ -192,29 +226,22 @@ in
 
   naxsi ={
     src = fetchFromGitHub {
+      name = "naxsi";
       owner = "nbs-system";
       repo = "naxsi";
-      rev = "0.56";
-      sha256 = "12kn6wbl8xqc19fi05ffprqps4pplg4a6i1cf01xc0d6brx1fg8v";
+      rev = "95ac520eed2ea04098a76305fd0ad7e9158840b7";
+      sha256 = "0b5pnqkgg18kbw5rf2ifiq7lsx5rqmpqsql6hx5ycxjzxj6acfb3";
     } + "/naxsi_src";
   };
 
-  ngx_aws_auth = {
-    src = fetchFromGitHub {
-      owner = "anomalizer";
-      repo = "ngx_aws_auth";
-      rev = "2.1.1";
-      sha256 = "10z67g40w7wpd13fwxyknkbg3p6hn61i4v8xw6lh27br29v1y6h9";
-    };
-  };
-
   opentracing = {
     src =
       let src' = fetchFromGitHub {
+        name = "opentracing";
         owner = "opentracing-contrib";
         repo = "nginx-opentracing";
-        rev = "v0.7.0";
-        sha256 = "16jzxhhsyfjaxb50jy5py9ppscidfx1shvc29ihldp0zs6d8khma";
+        rev = "v0.10.0";
+        sha256 = "1q234s3p55xv820207dnh4fcxkqikjcq5rs02ai31ylpmfsf0kkb";
       };
       in "${src'}/opentracing";
     inputs = [ pkgs.opentracing-cpp ];
@@ -225,6 +252,7 @@ in
       version = pkgs.psol.version;
 
       moduleSrc = fetchFromGitHub {
+        name   = "pagespeed";
         owner  = "pagespeed";
         repo   = "ngx_pagespeed";
         rev    = "v${version}-stable";
@@ -253,16 +281,18 @@ in
 
   pam = {
     src = fetchFromGitHub {
+      name = "pam";
       owner = "stogh";
       repo = "ngx_http_auth_pam_module";
-      rev = "v1.5.1";
-      sha256 = "031q006bcv10dzxi3mzamqiyg14p48v0bzd5mrwz073pbf0ba2fl";
+      rev = "v1.5.2";
+      sha256 = "06nydxk82rc9yrw4408nakb197flxh4z1yv935crg65fn9706rl7";
     };
     inputs = [ pkgs.pam ];
   };
 
   pinba = {
     src = fetchFromGitHub {
+      name = "pinba";
       owner = "tony2001";
       repo = "ngx_http_pinba_module";
       rev = "28131255d4797a7e2f82a6a35cf9fc03c4678fe6";
@@ -272,15 +302,17 @@ in
 
   push-stream ={
     src = fetchFromGitHub {
+      name = "push-stream";
       owner = "wandenberg";
       repo = "nginx-push-stream-module";
-      rev = "0.5.4";
-      sha256 = "0izn7lqrp2zfl738aqa9i8c5lba97wkhcnqg8qbw3ipp5cysb2hr";
+      rev = "1cdc01521ed44dc614ebb5c0d19141cf047e1f90";
+      sha256 = "0ijka32b37dl07k2jl48db5a32ix43jaczrpjih84cvq8yph0jjr";
     };
   };
 
   rtmp ={
     src = fetchFromGitHub {
+      name = "rtmp";
       owner = "arut";
       repo = "nginx-rtmp-module";
       rev = "v1.2.1";
@@ -290,6 +322,7 @@ in
 
   set-misc = {
     src = fetchFromGitHub {
+      name = "set-misc";
       owner = "openresty";
       repo = "set-misc-nginx-module";
       rev = "v0.32";
@@ -299,15 +332,17 @@ in
 
   shibboleth = {
     src = fetchFromGitHub {
+      name = "shibboleth";
       owner = "nginx-shib";
       repo = "nginx-http-shibboleth";
-      rev = "48b70d87bf7796d7813813a837e52b3a86e6f6f4";
-      sha256 = "0k8xcln5sf0m4r0m550dkhl07zhncp285dpysk6r4v6vqzqmhzdc";
+      rev = "3f5ff4212fa12de23cb1acae8bf3a5a432b3f43b";
+      sha256 = "136zjipaz7iikgcgqwdv1mrh3ya996zyzbkdy6d4k07s2h9g7hy6";
     };
   };
 
   sla = {
     src = fetchFromGitHub {
+      name = "sla";
       owner = "goldenclone";
       repo = "nginx-sla";
       rev = "7778f0125974befbc83751d0e1cadb2dcea57601";
@@ -317,6 +352,7 @@ in
 
   slowfs-cache = {
     src = fetchFromGitHub {
+      name = "slowfs-cache";
       owner  = "FRiCKLE";
       repo   = "ngx_slowfs_cache";
       rev    = "1.10";
@@ -326,6 +362,7 @@ in
 
   sorted-querystring = {
     src = fetchFromGitHub {
+      name = "sorted-querystring";
       owner = "wandenberg";
       repo = "nginx-sorted-querystring-module";
       rev = "0.3";
@@ -335,7 +372,8 @@ in
 
   statsd = {
     src = fetchFromGitHub {
-      owner = "apcera";
+      name = "statsd";
+      owner = "harvesthq";
       repo = "nginx-statsd";
       rev = "b970e40467a624ba710c9a5106879a0554413d15";
       sha256 = "1x8j4i1i2ahrr7qvz03vkldgdjdxi6mx75mzkfizfcc8smr4salr";
@@ -344,6 +382,7 @@ in
 
   stream-sts = {
     src = fetchFromGitHub {
+      name = "stream-sts";
       owner = "vozlt";
       repo = "nginx-module-stream-sts";
       rev = "v0.1.1";
@@ -353,6 +392,7 @@ in
 
   sts = {
     src = fetchFromGitHub {
+      name = "sts";
       owner = "vozlt";
       repo = "nginx-module-sts";
       rev = "v0.1.1";
@@ -362,15 +402,17 @@ in
 
   subsFilter = {
     src = fetchFromGitHub {
+      name = "subsFilter";
       owner = "yaoweibin";
       repo = "ngx_http_substitutions_filter_module";
-      rev = "bc58cb11844bc42735bbaef7085ea86ace46d05b";
-      sha256 = "1q5hr3sqys4f365gzjci549rn9ylhgj4xb29ril04zr5vkhzlnar";
+      rev = "b8a71eacc7f986ba091282ab8b1bbbc6ae1807e0";
+      sha256 = "027jxzx66q9a6ycn47imjh40xmnqr0z423lz0ds3w4rf1c2x130f";
     };
   };
 
   sysguard = {
     src = fetchFromGitHub {
+      name = "sysguard";
       owner = "vozlt";
       repo = "nginx-module-sysguard";
       rev = "e512897f5aba4f79ccaeeebb51138f1704a58608";
@@ -380,15 +422,17 @@ in
 
   upstream-check = {
     src = fetchFromGitHub {
+      name = "upstream-check";
       owner = "yaoweibin";
       repo = "nginx_upstream_check_module";
-      rev = "007f76f7adbcbd6abd9352502af1a4ae463def85";
-      sha256 = "1qcg7c9rcl70wr1qf188shnn9s2f7cxnlw05s6scbvlgnf6ik6in";
+      rev = "e538034b6ad7992080d2403d6d3da56e4f7ac01e";
+      sha256 = "06y7k04072xzqyqyb08m0vaaizkp4rfwm0q7i735imbzw2rxb74l";
     };
   };
 
   upstream-tarantool = {
     src = fetchFromGitHub {
+      name = "upstream-tarantool";
       owner = "tarantool";
       repo = "nginx_upstream_module";
       rev = "v2.7.1";
@@ -399,6 +443,7 @@ in
 
   url = {
     src = fetchFromGitHub {
+      name = "url";
       owner = "vozlt";
       repo = "nginx-module-url";
       rev = "9299816ca6bc395625c3683fbd2aa7b916bfe91e";
@@ -408,6 +453,7 @@ in
 
   video-thumbextractor = {
     src = fetchFromGitHub {
+      name = "video-thumbextractor";
       owner = "wandenberg";
       repo = "nginx-video-thumbextractor-module";
       rev = "0.9.0";
@@ -418,6 +464,7 @@ in
 
   vts = {
     src = fetchFromGitHub {
+      name = "vts";
       owner = "vozlt";
       repo = "nginx-module-vts";
       rev = "v0.1.18";
diff --git a/nixpkgs/pkgs/servers/http/openresty/default.nix b/nixpkgs/pkgs/servers/http/openresty/default.nix
index 9c01cfb19e1d..734dfb041403 100644
--- a/nixpkgs/pkgs/servers/http/openresty/default.nix
+++ b/nixpkgs/pkgs/servers/http/openresty/default.nix
@@ -8,12 +8,12 @@
 
 callPackage ../nginx/generic.nix args rec {
   pname = "openresty";
-  nginxVersion = "1.15.8";
-  version = "${nginxVersion}.3";
+  nginxVersion = "1.17.8";
+  version = "${nginxVersion}.2";
 
   src = fetchurl {
     url = "https://openresty.org/download/openresty-${version}.tar.gz";
-    sha256 = "1a1la7vszv1parsnhphydblz64ffhycazncn3ividnvqg2mg735n";
+    sha256 = "1813w33hjm1hcqvl3b3f67qgi5zfjiqg6s01hiy12a5j3jqilcig";
   };
 
   fixPatch = patch: let name = patch.name or (builtins.baseNameOf patch); in
@@ -34,6 +34,8 @@ callPackage ../nginx/generic.nix args rec {
   postInstall = ''
     ln -s $out/luajit/bin/luajit-2.1.0-beta3 $out/bin/luajit-openresty
     ln -s $out/nginx/sbin/nginx $out/bin/nginx
+    ln -s $out/nginx/conf $out/conf
+    ln -s $out/nginx/html $out/html
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/servers/http/pshs/default.nix b/nixpkgs/pkgs/servers/http/pshs/default.nix
index f83ab4642f04..e8ecb16c0c52 100644
--- a/nixpkgs/pkgs/servers/http/pshs/default.nix
+++ b/nixpkgs/pkgs/servers/http/pshs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pshs";
-  version = "0.3.3";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "mgorny";
     repo = "pshs";
     rev = "v${version}";
-    sha256 = "04l03myh99npl78y8nss053gnc7k8q60vdbdpml19sshmwaw3fgi";
+    sha256 = "1j8j4r0vsmp6226q6jdgf9bzhx3qk7vdliwaw7f8kcsrkndkg6p4";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/nixpkgs/pkgs/servers/http/tomcat/tomcat-native.nix b/nixpkgs/pkgs/servers/http/tomcat/tomcat-native.nix
index 17c4367866fb..fa2769f99dd3 100644
--- a/nixpkgs/pkgs/servers/http/tomcat/tomcat-native.nix
+++ b/nixpkgs/pkgs/servers/http/tomcat/tomcat-native.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tomcat-native";
-  version = "1.2.24";
+  version = "1.2.25";
 
   src = fetchurl {
     url = "mirror://apache/tomcat/tomcat-connectors/native/${version}/source/${pname}-${version}-src.tar.gz";
-    sha512 = "5dae151a60f8bd5a9a29d63eca838c77174426025ee65a826f0698943494dd3656d50bcd417e220a926b9ce111ea167043d4b806264030e951873d06767b3d6f";
+    sha512 = "e121c0a18c51b5f952833df44c3a0add1f9a6e1b61e300abbafa0bc7e8f32296e64c9f81e9ad7389c1bd24abc40739e4726a56158d08e33b7ef00e5fa8a1d33d";
   };
 
   sourceRoot = "${pname}-${version}-src/native";
diff --git a/nixpkgs/pkgs/servers/http/unit/default.nix b/nixpkgs/pkgs/servers/http/unit/default.nix
index fbb7768dcbae..27f45fe6e479 100644
--- a/nixpkgs/pkgs/servers/http/unit/default.nix
+++ b/nixpkgs/pkgs/servers/http/unit/default.nix
@@ -1,15 +1,14 @@
 { stdenv, fetchFromGitHub, nixosTests, which
 , withPython2 ? false, python2
 , withPython3 ? true, python3, ncurses
-, withPHP72 ? false, php72
 , withPHP73 ? false, php73
 , withPHP74 ? true, php74
-, withPerl528 ? false, perl528
-, withPerl530 ? true, perl530
+, withPerl530 ? false, perl530
+, withPerl532 ? true, perl532
 , withPerldevel ? false, perldevel
 , withRuby_2_5 ? false, ruby_2_5
 , withRuby_2_6 ? true, ruby_2_6
-, withRuby_2_7 ? true, ruby_2_7
+, withRuby_2_7 ? false, ruby_2_7
 , withSSL ? true, openssl ? null
 , withIPv6 ? true
 , withDebug ? false
@@ -27,19 +26,18 @@ let
     fpmSupport = false;
   };
 
-  php72-unit = php72.override phpConfig;
   php73-unit = php73.override phpConfig;
   php74-unit = php74.override phpConfig;
 
 in stdenv.mkDerivation rec {
-  version = "1.18.0";
+  version = "1.19.0";
   pname = "unit";
 
   src = fetchFromGitHub {
     owner = "nginx";
     repo = "unit";
     rev = version;
-    sha256 = "0r2l3ra63qjjbpjzrmx75jp9fvz83yis4j3qxqdnmxm77psykwy8";
+    sha256 = "0k3q42q198sb0w6hyyymw92dbhz67axn6w6vnzr0d883xw3sva7k";
   };
 
   nativeBuildInputs = [ which ];
@@ -47,11 +45,10 @@ in stdenv.mkDerivation rec {
   buildInputs = [ ]
     ++ optional withPython2 python2
     ++ optionals withPython3 [ python3 ncurses ]
-    ++ optional withPHP72 php72-unit
     ++ optional withPHP73 php73-unit
     ++ optional withPHP74 php74-unit
-    ++ optional withPerl528 perl528
     ++ optional withPerl530 perl530
+    ++ optional withPerl532 perl532
     ++ optional withPerldevel perldevel
     ++ optional withRuby_2_5 ruby_2_5
     ++ optional withRuby_2_6 ruby_2_6
@@ -68,18 +65,16 @@ in stdenv.mkDerivation rec {
     ++ optional withDebug   "--debug";
 
   # Optionally add the PHP derivations used so they can be addressed in the configs
-  usedPhp72 = optionals withPHP72 php72-unit;
   usedPhp73 = optionals withPHP73 php73-unit;
   usedPhp74 = optionals withPHP74 php74-unit;
 
   postConfigure = ''
     ${optionalString withPython2    "./configure python --module=python2  --config=python2-config  --lib-path=${python2}/lib"}
     ${optionalString withPython3    "./configure python --module=python3  --config=python3-config  --lib-path=${python3}/lib"}
-    ${optionalString withPHP72      "./configure php    --module=php72    --config=${php72-unit.unwrapped.dev}/bin/php-config --lib-path=${php72-unit}/lib"}
     ${optionalString withPHP73      "./configure php    --module=php73    --config=${php73-unit.unwrapped.dev}/bin/php-config --lib-path=${php73-unit}/lib"}
     ${optionalString withPHP74      "./configure php    --module=php74    --config=${php74-unit.unwrapped.dev}/bin/php-config --lib-path=${php74-unit}/lib"}
-    ${optionalString withPerl528    "./configure perl   --module=perl528  --perl=${perl528}/bin/perl"}
     ${optionalString withPerl530    "./configure perl   --module=perl530  --perl=${perl530}/bin/perl"}
+    ${optionalString withPerl532    "./configure perl   --module=perl532  --perl=${perl532}/bin/perl"}
     ${optionalString withPerldevel  "./configure perl   --module=perldev  --perl=${perldevel}/bin/perl"}
     ${optionalString withRuby_2_5   "./configure ruby   --module=ruby25   --ruby=${ruby_2_5}/bin/ruby"}
     ${optionalString withRuby_2_6   "./configure ruby   --module=ruby26   --ruby=${ruby_2_6}/bin/ruby"}
diff --git a/nixpkgs/pkgs/servers/hydron/default.nix b/nixpkgs/pkgs/servers/hydron/default.nix
index 145d341bb516..28c92d073ff3 100644
--- a/nixpkgs/pkgs/servers/hydron/default.nix
+++ b/nixpkgs/pkgs/servers/hydron/default.nix
@@ -14,8 +14,6 @@ buildGoPackage {
     sha256 = "1xxykjf5iyavm12gd6nx4j8x2mlzzn7x8vm0j5009lsir98qr5zn";
   };
 
-  enableParallelBuilding = true;
-
   nativeBuildInputs = [ pkgconfig go-bindata ];
 
   buildInputs = [ ffmpeg-full graphicsmagick quicktemplate easyjson ];
@@ -25,6 +23,5 @@ buildGoPackage {
     description = "High performance media tagger and organizer";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ chiiruno ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/servers/hylafaxplus/default.nix b/nixpkgs/pkgs/servers/hylafaxplus/default.nix
index 21e39b5f2e20..9585ac46e5a3 100644
--- a/nixpkgs/pkgs/servers/hylafaxplus/default.nix
+++ b/nixpkgs/pkgs/servers/hylafaxplus/default.nix
@@ -30,8 +30,8 @@
 let
 
   name = "hylafaxplus-${version}";
-  version = "7.0.2";
-  sha256 = "17vym1gz5ppy3q6zbw2y4nkq1dspn31k12zcmva44fnw9diwvsfb";
+  version = "7.0.3";
+  sha256 = "139iwcwrn9i5lragxi33ilzah72w59wg4midfjjgx5cly3ah0iy4";
 
   configSite = substituteAll {
     name = "hylafaxplus-config.site";
diff --git a/nixpkgs/pkgs/servers/icingaweb2/default.nix b/nixpkgs/pkgs/servers/icingaweb2/default.nix
index a35b54592721..6414d445a00d 100644
--- a/nixpkgs/pkgs/servers/icingaweb2/default.nix
+++ b/nixpkgs/pkgs/servers/icingaweb2/default.nix
@@ -1,12 +1,12 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper, php }: with lib; stdenv.mkDerivation rec {
   pname = "icingaweb2";
-  version = "2.8.0";
+  version = "2.8.1";
 
   src = fetchFromGitHub {
     owner = "Icinga";
     repo = "icingaweb2";
     rev = "v${version}";
-    sha256 = "18q3d15w7d46g4vyq4iph5c1bbxcl8ikcdc8djrfi30wx36ziybs";
+    sha256 = "1hmw681a2qv578npr389szkxpbhcfqzq9c1wzkbjjm3avnvi37mf";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/imgproxy/default.nix b/nixpkgs/pkgs/servers/imgproxy/default.nix
index 099caf879634..5197b1d3dffe 100644
--- a/nixpkgs/pkgs/servers/imgproxy/default.nix
+++ b/nixpkgs/pkgs/servers/imgproxy/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "imgproxy";
-  version = "2.13.1";
+  version = "2.15.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    sha256 = "105mjlbzgv1c8argwgs0d9wm28m06nqi5hrk3358zg2jaa7ahaqf";
+    sha256 = "0p6vy5b6dhv23qnn6sk99hn0j5wiwqpaprsg5jgm2wxb0w2bfz0w";
     rev = "v${version}";
   };
 
-  vendorSha256 = "069if1ifsmdn5hrwybiifhnq6xzmdccq85mzi9v98iii18pzfwqx";
+  vendorSha256 = "0jrp778cjr8k8sbal0yn1zy7s9sj534q9i90qv4c29fxd9xw7qgp";
+
+  doCheck = false;
 
   nativeBuildInputs = [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/servers/irc/ngircd/default.nix b/nixpkgs/pkgs/servers/irc/ngircd/default.nix
index b564a9b5c961..ff754a5390c1 100644
--- a/nixpkgs/pkgs/servers/irc/ngircd/default.nix
+++ b/nixpkgs/pkgs/servers/irc/ngircd/default.nix
@@ -1,11 +1,12 @@
 { stdenv, fetchurl, zlib, openssl, pam, libiconv }:
 
 stdenv.mkDerivation rec {
-  name = "ngircd-25";
+  pname = "ngircd";
+  version = "26";
 
   src = fetchurl {
-    url = "https://ngircd.barton.de/pub/ngircd/${name}.tar.xz";
-    sha256 = "0kpf5qi98m9f833r4rx9n6h9p31biwk798jwc1mgzmix7sp7r6f4";
+    url = "https://ngircd.barton.de/pub/ngircd/${pname}-${version}.tar.xz";
+    sha256 = "1ijmv18fa648y7apxb9vp4j9iq6fxq850kz5v36rysaq614cdp2n";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/servers/irc/robustirc-bridge/default.nix b/nixpkgs/pkgs/servers/irc/robustirc-bridge/default.nix
new file mode 100644
index 000000000000..84b80203f57c
--- /dev/null
+++ b/nixpkgs/pkgs/servers/irc/robustirc-bridge/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
+
+buildGoModule rec {
+  pname = "robustirc-bridge";
+  version = "1.8";
+
+  src = fetchFromGitHub {
+    owner = "robustirc";
+    repo = "bridge";
+    rev = "v${version}";
+    sha256 = "12jzil97147f978shdgm6whz7699db0shh0c1fzgrjh512dw502c";
+  };
+
+  vendorSha256 = "0lm8j2iz0yysgi0bbh78ca629kb6sxvyy9al3aj2587hpvy79q85";
+
+  postInstall = ''
+    install -D robustirc-bridge.1 $out/share/man/man1/robustirc-bridge.1
+  '';
+
+  passthru.tests.robustirc-bridge = nixosTests.robustirc-bridge;
+
+  meta = with stdenv.lib; {
+    description = "Bridge to robustirc.net-IRC-Network";
+    homepage = "https://robustirc.net/";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.hax404 ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/isso/default.nix b/nixpkgs/pkgs/servers/isso/default.nix
index bb9302479e98..d2387a1fa629 100644
--- a/nixpkgs/pkgs/servers/isso/default.nix
+++ b/nixpkgs/pkgs/servers/isso/default.nix
@@ -1,26 +1,32 @@
-{ stdenv, python2, fetchFromGitHub }:
+{ stdenv, python3Packages, fetchFromGitHub }:
+
+with python3Packages; buildPythonApplication rec {
 
-with python2.pkgs; buildPythonApplication rec {
   pname = "isso";
-  version = "0.12.2";
+  # Can not use 0.12.2 because of:
+  # https://github.com/posativ/isso/issues/617
+  version = "unstable-2020-09-14";
 
   # no tests on PyPI
   src = fetchFromGitHub {
     owner = "posativ";
     repo = pname;
-    rev = version;
-    sha256 = "18v8lzwgl5hcbnawy50lfp3wnlc0rjhrnw9ja9260awkx7jra9ba";
+    rev = "f4d2705d4f1b51f444d0629355a6fcbcec8d57b5";
+    sha256 = "02jgfzq3svd54zj09jj7lm2r7ypqqjynzxa9dgnnm0pqvq728wzr";
   };
 
   propagatedBuildInputs = [
-    bleach
-    cffi
-    configparser
-    html5lib
-    ipaddr
+    itsdangerous
     jinja2
     misaka
+    html5lib
     werkzeug
+    bleach
+    flask-caching
+  ];
+
+  buildInputs = [
+    cffi
   ];
 
   checkInputs = [ nose ];
diff --git a/nixpkgs/pkgs/servers/jackett/default.nix b/nixpkgs/pkgs/servers/jackett/default.nix
index aaa762836bdd..e76fd0eae91c 100644
--- a/nixpkgs/pkgs/servers/jackett/default.nix
+++ b/nixpkgs/pkgs/servers/jackett/default.nix
@@ -1,46 +1,30 @@
-{ lib, stdenv, fetchurl, makeWrapper, curl, icu60, openssl, zlib }:
+{ lib, stdenv, fetchurl, mono, makeWrapper, curl, icu60, openssl, zlib }:
 
 stdenv.mkDerivation rec {
   pname = "jackett";
-  version = "0.16.175";
+  version = "0.16.1057";
 
-  src = {
-    x86_64-linux = fetchurl {
-      url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.LinuxAMDx64.tar.gz";
-      sha512 = "269n84qc8sfrmnidgrjywanbqr65mhkmk24dlqfi17pi0l27wi4fc4qmnjj683xwprz5hqjsmkqf963pbx4k3jaz0rp0jnizan91wij";
-    };
-    aarch64-linux = fetchurl {
-      url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.LinuxARM64.tar.gz";
-      sha512 = "0dmyhprd2vi2z9q5g79psqgsc3w0zdac4s6k20rngi8jxm5jgphzrzcic4rgdijyryap99my619k447w701a08vh9sfcfk0fjg9pgwb";
-    };
-  }."${stdenv.targetPlatform.system}" or (throw "Missing hash for host system: ${stdenv.targetPlatform.system}");
+  src = fetchurl {
+    url = "https://github.com/Jackett/Jackett/releases/download/v${version}/Jackett.Binaries.Mono.tar.gz";
+    sha256 = "0scc7xjyr7igbnmkg67lmzijvkgv3si1r502npnxamiflic59rnx";
+  };
 
-  buildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
-    mkdir -p $out/{bin,opt/${pname}-${version}}
-    cp -r * $out/opt/${pname}-${version}
-
-    makeWrapper "$out/opt/${pname}-${version}/jackett" $out/bin/Jackett \
-      --prefix LD_LIBRARY_PATH ':' "${curl.out}/lib:${icu60.out}/lib:${openssl.out}/lib:${zlib.out}/lib"
-  '';
+    mkdir -p $out/{bin,share/${pname}-${version}}
+    cp -r * $out/share/${pname}-${version}
 
-  preFixup = let
-    libPath = lib.makeLibraryPath [
-      stdenv.cc.cc.lib  # libstdc++.so.6
-    ];
-  in ''
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${libPath}" \
-      $out/opt/${pname}-${version}/jackett
+    makeWrapper "${mono}/bin/mono" $out/bin/Jackett \
+      --add-flags "$out/share/${pname}-${version}/JackettConsole.exe" \
+      --prefix LD_LIBRARY_PATH : ${stdenv.lib.makeLibraryPath [ curl icu60 openssl zlib ]}
   '';
 
   meta = with stdenv.lib; {
     description = "API Support for your favorite torrent trackers.";
     homepage = "https://github.com/Jackett/Jackett/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ edwtjo nyanloutre ];
-    platforms = [ "x86_64-linux" "aarch64-linux" ];
+    maintainers = with maintainers; [ edwtjo nyanloutre purcell ];
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/servers/jellyfin/10.5.x.nix b/nixpkgs/pkgs/servers/jellyfin/10.5.x.nix
new file mode 100644
index 000000000000..17903871c8d7
--- /dev/null
+++ b/nixpkgs/pkgs/servers/jellyfin/10.5.x.nix
@@ -0,0 +1,61 @@
+{ stdenv, lib, fetchurl, unzip, sqlite, makeWrapper, dotnetCorePackages, ffmpeg,
+  fontconfig, freetype, nixosTests }:
+
+let
+  os = if stdenv.isDarwin then "osx" else "linux";
+  arch =
+    with stdenv.hostPlatform;
+    if isx86_32 then "x86"
+    else if isx86_64 then "x64"
+    else if isAarch32 then "arm"
+    else if isAarch64 then "arm64"
+    else lib.warn "Unsupported architecture, some image processing features might be unavailable" "unknown";
+  musl = lib.optionalString stdenv.hostPlatform.isMusl
+    (if (arch != "x64")
+      then lib.warn "Some image processing features might be unavailable for non x86-64 with Musl" "musl-"
+      else "musl-");
+  runtimeDir = "${os}-${musl}${arch}";
+
+in stdenv.mkDerivation rec {
+  pname = "jellyfin";
+  version = "10.5.5";
+
+  # Impossible to build anything offline with dotnet
+  src = fetchurl {
+    url = "https://github.com/jellyfin/jellyfin/releases/download/v${version}/jellyfin_${version}_portable.tar.gz";
+    sha256 = "1s3hva1j5w74qc9wyqnmr5clk4smzfi7wvx8qrzrwy81mx7r5w27";
+  };
+
+  buildInputs = [
+    unzip
+    makeWrapper
+  ];
+
+  propagatedBuildInputs = [
+    dotnetCorePackages.aspnetcore_3_1
+    sqlite
+  ];
+
+  preferLocalBuild = true;
+
+  installPhase = ''
+    install -dm 755 "$out/opt/jellyfin"
+    cp -r * "$out/opt/jellyfin"
+    makeWrapper "${dotnetCorePackages.aspnetcore_3_1}/bin/dotnet" $out/bin/jellyfin \
+      --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [
+        sqlite fontconfig freetype stdenv.cc.cc.lib
+      ]}:$out/opt/jellyfin/runtimes/${runtimeDir}/native/" \
+      --add-flags "$out/opt/jellyfin/jellyfin.dll --ffmpeg ${ffmpeg}/bin/ffmpeg"
+  '';
+
+  passthru.tests = {
+    smoke-test = nixosTests.jellyfin;
+  };
+
+  meta =  with stdenv.lib; {
+    description = "The Free Software Media System";
+    homepage = "https://jellyfin.org/";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ nyanloutre minijackson ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/jellyfin/default.nix b/nixpkgs/pkgs/servers/jellyfin/default.nix
index 35476db92152..afa5375c9fdc 100644
--- a/nixpkgs/pkgs/servers/jellyfin/default.nix
+++ b/nixpkgs/pkgs/servers/jellyfin/default.nix
@@ -18,12 +18,12 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "jellyfin";
-  version = "10.5.5";
+  version = "10.6.4";
 
   # Impossible to build anything offline with dotnet
   src = fetchurl {
-    url = "https://github.com/jellyfin/jellyfin/releases/download/v${version}/jellyfin_${version}_portable.tar.gz";
-    sha256 = "1s3hva1j5w74qc9wyqnmr5clk4smzfi7wvx8qrzrwy81mx7r5w27";
+    url = "https://repo.jellyfin.org/releases/server/portable/versions/stable/combined/${version}/jellyfin_${version}.tar.gz";
+    sha256 = "OqN070aUKPk0dXAy8R/lKUnSWen+si/AJ6tkYh5ibqo=";
   };
 
   buildInputs = [
@@ -41,7 +41,6 @@ in stdenv.mkDerivation rec {
   installPhase = ''
     install -dm 755 "$out/opt/jellyfin"
     cp -r * "$out/opt/jellyfin"
-
     makeWrapper "${dotnetCorePackages.aspnetcore_3_1}/bin/dotnet" $out/bin/jellyfin \
       --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [
         sqlite fontconfig freetype stdenv.cc.cc.lib
@@ -55,8 +54,8 @@ in stdenv.mkDerivation rec {
 
   meta =  with stdenv.lib; {
     description = "The Free Software Media System";
-    homepage = "https://jellyfin.github.io/";
+    homepage = "https://jellyfin.org/";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ nyanloutre minijackson ];
+    maintainers = with maintainers; [ nyanloutre minijackson purcell ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/jicofo/default.nix b/nixpkgs/pkgs/servers/jicofo/default.nix
new file mode 100644
index 000000000000..266b94dbffa1
--- /dev/null
+++ b/nixpkgs/pkgs/servers/jicofo/default.nix
@@ -0,0 +1,43 @@
+{ pkgs, stdenv, fetchurl, dpkg, jre_headless, nixosTests }:
+
+let
+  pname = "jicofo";
+  version = "1.0-612";
+  src = fetchurl {
+    url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb";
+    sha256 = "0xv3p2h8g1jwcmxljdpz08d6dsz543mznp0nwgb6vr93faz8kc81";
+  };
+in
+stdenv.mkDerivation {
+  inherit pname version src;
+
+  dontBuild = true;
+
+  unpackCmd = "${dpkg}/bin/dpkg-deb -x $src debcontents";
+
+  installPhase = ''
+    substituteInPlace usr/share/jicofo/jicofo.sh \
+      --replace "exec java" "exec ${jre_headless}/bin/java"
+
+    mkdir -p $out/{share,bin}
+    mv usr/share/jicofo $out/share/
+    mv etc $out/
+    cp ${./logging.properties-journal} $out/etc/jitsi/jicofo/logging.properties-journal
+    ln -s $out/share/jicofo/jicofo.sh $out/bin/jicofo
+  '';
+
+  passthru.tests = {
+    single-node-smoke-test = nixosTests.jitsi-meet;
+  };
+
+  meta = with stdenv.lib; {
+    description = "A server side focus component used in Jitsi Meet conferences";
+    longDescription = ''
+      JItsi COnference FOcus is a server side focus component used in Jitsi Meet conferences.
+    '';
+    homepage = "https://github.com/jitsi/jicofo";
+    license = licenses.asl20;
+    maintainers = teams.jitsi.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/jicofo/logging.properties-journal b/nixpkgs/pkgs/servers/jicofo/logging.properties-journal
new file mode 100644
index 000000000000..2d68dec1b0ba
--- /dev/null
+++ b/nixpkgs/pkgs/servers/jicofo/logging.properties-journal
@@ -0,0 +1,10 @@
+handlers = java.util.logging.ConsoleHandler
+java.util.logging.ConsoleHandler.level = ALL
+java.util.logging.ConsoleHandler.formatter = net.java.sip.communicator.util.ScLogFormatter
+.level = INFO
+net.sf.level = SEVERE
+net.java.sip.communicator.plugin.reconnectplugin.level = FINE
+org.ice4j.level = SEVERE
+org.jitsi.impl.neomedia.level = SEVERE
+net.java.sip.communicator.service.resources.AbstractResourcesService.level = SEVERE
+net.java.sip.communicator.util.ScLogFormatter.disableTimestamp = true
diff --git a/nixpkgs/pkgs/servers/jitsi-videobridge/default.nix b/nixpkgs/pkgs/servers/jitsi-videobridge/default.nix
new file mode 100644
index 000000000000..37cffa2e9206
--- /dev/null
+++ b/nixpkgs/pkgs/servers/jitsi-videobridge/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, dpkg, jre_headless, nixosTests }:
+
+let
+  pname = "jitsi-videobridge2";
+  version = "2.1-273-g072dd44b";
+  src = fetchurl {
+    url = "https://download.jitsi.org/stable/${pname}_${version}-1_all.deb";
+    sha256 = "12l84wjn5iqnsg0816icgbx8jfcgyfnqclgyx303w4ncbvymlkv9";
+  };
+in
+stdenv.mkDerivation {
+  inherit pname version src;
+
+  dontBuild = true;
+
+  unpackCmd = "${dpkg}/bin/dpkg-deb -x $src debcontents";
+
+  installPhase = ''
+    substituteInPlace usr/share/jitsi-videobridge/jvb.sh \
+      --replace "exec java" "exec ${jre_headless}/bin/java"
+
+    mkdir -p $out/{bin,share/jitsi-videobridge,etc/jitsi/videobridge}
+    mv etc/jitsi/videobridge/logging.properties $out/etc/jitsi/videobridge/
+    cp ${./logging.properties-journal} $out/etc/jitsi/videobridge/logging.properties-journal
+    mv usr/share/jitsi-videobridge/* $out/share/jitsi-videobridge/
+    ln -s $out/share/jitsi-videobridge/jvb.sh $out/bin/jitsi-videobridge
+  '';
+
+  passthru.tests = {
+    single-host-smoke-test = nixosTests.jitsi-meet;
+  };
+
+  meta = with stdenv.lib; {
+    description = "A WebRTC compatible video router";
+    longDescription = ''
+      Jitsi Videobridge is an XMPP server component that allows for multiuser video communication.
+      Unlike the expensive dedicated hardware videobridges, Jitsi Videobridge does not mix the video
+      channels into a composite video stream, but only relays the received video channels to all call
+      participants. Therefore, while it does need to run on a server with good network bandwidth,
+      CPU horsepower is not that critical for performance.
+    '';
+    homepage = "https://github.com/jitsi/jitsi-videobridge";
+    license = licenses.asl20;
+    maintainers = teams.jitsi.members;
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/jitsi-videobridge/logging.properties-journal b/nixpkgs/pkgs/servers/jitsi-videobridge/logging.properties-journal
new file mode 100644
index 000000000000..915e32929122
--- /dev/null
+++ b/nixpkgs/pkgs/servers/jitsi-videobridge/logging.properties-journal
@@ -0,0 +1,7 @@
+handlers = java.util.logging.ConsoleHandler
+java.util.logging.ConsoleHandler.level = ALL
+java.util.logging.ConsoleHandler.formatter = org.jitsi.utils.logging2.JitsiLogFormatter
+.level = INFO
+org.jitsi.videobridge.xmpp.ComponentImpl.level = FINE
+org.jitsi.impl.neomedia.MediaStreamImpl.level = WARNING
+org.jitsi.utils.logging2.JitsiLogFormatter.disableTimestamp = true
diff --git a/nixpkgs/pkgs/servers/kapow/default.nix b/nixpkgs/pkgs/servers/kapow/default.nix
index 4f0e8cb4ec7a..520af62576e9 100644
--- a/nixpkgs/pkgs/servers/kapow/default.nix
+++ b/nixpkgs/pkgs/servers/kapow/default.nix
@@ -4,8 +4,6 @@ buildGoModule rec {
   pname = "kapow";
   version = "0.5.4";
 
-  goPackagePath = "github.com/BBVA/kapow";
-
   subPackages = [ "." ];
 
   src = fetchFromGitHub {
@@ -17,6 +15,8 @@ buildGoModule rec {
 
   vendorSha256 = "159s46rhg67mgglaxgddx3k8kssl0cqiq8yjdqgjhhxppf16r7dy";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/BBVA/kapow";
     description = "Expose command-line tools over HTTP";
diff --git a/nixpkgs/pkgs/servers/keycloak/default.nix b/nixpkgs/pkgs/servers/keycloak/default.nix
index ce24cc7071fe..614eb2a46798 100644
--- a/nixpkgs/pkgs/servers/keycloak/default.nix
+++ b/nixpkgs/pkgs/servers/keycloak/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname   = "keycloak";
-  version = "9.0.3";
+  version = "11.0.2";
 
   src = fetchzip {
     url    = "https://downloads.jboss.org/keycloak/${version}/keycloak-${version}.zip";
-    sha256 = "0nlfa6wwgj04xgg4ps5gpjp4iq2lmas97y5qz61lhns1p42xr4ls";
+    sha256 = "0ayg6cl6mff64qs36djnfs3is4x0pzhk7zwb27cbln77q3icc0j0";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/limesurvey/default.nix b/nixpkgs/pkgs/servers/limesurvey/default.nix
index 218630180876..5f5db310bf3f 100644
--- a/nixpkgs/pkgs/servers/limesurvey/default.nix
+++ b/nixpkgs/pkgs/servers/limesurvey/default.nix
@@ -1,14 +1,14 @@
-{ stdenv, fetchFromGitHub, writeText }:
+{ stdenv, fetchFromGitHub, writeText, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "limesurvey";
-  version = "3.17.12+190823";
+  version = "3.23.0+200813";
 
   src = fetchFromGitHub {
     owner = "LimeSurvey";
     repo = "LimeSurvey";
     rev = version;
-    sha256 = "1i7jpxndrbya5ggl4babscwzmxx4c0jwri5kpl7h2ihqrn90m4b5";
+    sha256 = "0r260z40g6b2bsfzxgfwdffbs17bl784xsc67n7q8222rs601hxf";
   };
 
   phpConfig = writeText "config.php" ''
@@ -27,6 +27,10 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
+  passthru.tests = {
+    smoke-test = nixosTests.limesurvey;
+  };
+
   meta = with stdenv.lib; {
     description = "Open source survey application";
     license = licenses.gpl2;
diff --git a/nixpkgs/pkgs/servers/livepeer/default.nix b/nixpkgs/pkgs/servers/livepeer/default.nix
index 38eb336ba219..60122d6b451d 100644
--- a/nixpkgs/pkgs/servers/livepeer/default.nix
+++ b/nixpkgs/pkgs/servers/livepeer/default.nix
@@ -1,32 +1,32 @@
-{ stdenv, fetchFromGitHub, buildGoPackage
-, pkgconfig, ffmpeg_3
+{ stdenv, fetchFromGitHub, buildGoModule
+, pkg-config, ffmpeg, gnutls
 }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "livepeer";
-  version = "0.2.4";
+  version = "0.5.10";
 
-  goPackagePath = "github.com/livepeer/go-livepeer";
-  goDeps = ./deps.nix;
+  runVend = true;
+  vendorSha256 = "0i5977skw4b209zvdvgvzfnhqb574067mmfk2gf9y590lgnr86f7";
 
   src = fetchFromGitHub {
     owner = "livepeer";
     repo = "go-livepeer";
-    rev = version;
-    sha256 = "07vhw787wq5q4xm7zvswjdsmr20pwfa39wfkgamb7hkrffn3k2ia";
+    rev = "v${version}";
+    sha256 = "0qccvnk2yyly7ha9lkcpd6zj5n9xnhdjkl3nllb9xziidsq6p65h";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  # livepeer_cli has a vendoring problem
+  subPackages = [ "cmd/livepeer" ];
 
-  buildInputs = [ ffmpeg_3 ];
+  nativeBuildInputs = [ pkg-config ];
 
-  enableParallelBuilding = true;
+  buildInputs = [ ffmpeg gnutls ];
 
   meta = with stdenv.lib; {
     description = "Official Go implementation of the Livepeer protocol";
     homepage = "https://livepeer.org";
     license = licenses.mit;
-    platforms = platforms.linux;
     maintainers = with maintainers; [ elitak ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/livepeer/deps.nix b/nixpkgs/pkgs/servers/livepeer/deps.nix
deleted file mode 100644
index 297d0724a496..000000000000
--- a/nixpkgs/pkgs/servers/livepeer/deps.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/golang/glog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/glog";
-      rev = "23def4e6c14b4da8ac2ed8007337bc5eb5007998";
-      sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
-    };
-  }
-  {
-    goPackagePath = "github.com/ericxtang/m3u8";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ericxtang/m3u8";
-      rev = "575aeb9f754a5dabcc03d4aa0ed05ecaee26499e";
-      sha256 = "08811y4kg6rgj40v80cwjcwhy094qrfigdwjsgr8d6bn64cf9fz2";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/servers/mail/dovecot/default.nix b/nixpkgs/pkgs/servers/mail/dovecot/default.nix
index a110df0fb42f..1a11e065d938 100644
--- a/nixpkgs/pkgs/servers/mail/dovecot/default.nix
+++ b/nixpkgs/pkgs/servers/mail/dovecot/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "dovecot";
-  version = "2.3.10.1";
+  version = "2.3.11.3";
 
   nativeBuildInputs = [ perl pkgconfig ];
   buildInputs =
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://dovecot.org/releases/2.3/${pname}-${version}.tar.gz";
-    sha256 = "035idr2j81s5mngnhd58rih79dhwwak7q01mqbx3rcmi4cpychk6";
+    sha256 = "1p5gp8jbavcsaara5mfn5cbrnlxssajnchczbgmmfzr7228fmnfk";
   };
 
   enableParallelBuilding = true;
@@ -84,7 +84,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://dovecot.org/";
     description = "Open source IMAP and POP3 email server written with security primarily in mind";
-    maintainers = with stdenv.lib.maintainers; [ peti rickynils fpletz globin ];
+    maintainers = with stdenv.lib.maintainers; [ peti fpletz globin ];
     platforms = stdenv.lib.platforms.unix;
   };
   passthru.tests = {
diff --git a/nixpkgs/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix b/nixpkgs/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
index 6b51aea6512e..5c01453cb277 100644
--- a/nixpkgs/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
+++ b/nixpkgs/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dovecot-pigeonhole";
-  version = "0.5.10";
+  version = "0.5.11";
 
   src = fetchurl {
     url = "https://pigeonhole.dovecot.org/releases/2.3/dovecot-2.3-pigeonhole-${version}.tar.gz";
-    sha256 = "0pk0579ifl3ymfzn505396bsjlg29ykwr7ag8prcbafayg4rrj28";
+    sha256 = "1w5mryv6izh1gv7davnl94rb0pvh5bxl2bydzbfla1b83x22m5qb";
   };
 
   buildInputs = [ dovecot openssl ];
@@ -32,7 +32,7 @@ stdenv.mkDerivation rec {
     homepage = "http://pigeonhole.dovecot.org/";
     description = "A sieve plugin for the Dovecot IMAP server";
     license = licenses.lgpl21;
-    maintainers = with maintainers; [ rickynils globin ];
+    maintainers = with maintainers; [ globin ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/servers/mail/exim/default.nix b/nixpkgs/pkgs/servers/mail/exim/default.nix
index a85cb92a3fb1..210863aa0078 100644
--- a/nixpkgs/pkgs/servers/mail/exim/default.nix
+++ b/nixpkgs/pkgs/servers/mail/exim/default.nix
@@ -4,15 +4,16 @@
 , enableAuthDovecot ? false, dovecot
 , enablePAM ? false, pam
 , enableSPF ? true, libspf2
+, enableDMARC ? true, opendmarc
 }:
 
 stdenv.mkDerivation rec {
   pname = "exim";
-  version = "4.93.0.4";
+  version = "4.94";
 
   src = fetchurl {
-    url = "https://ftp.exim.org/pub/exim/exim4/fixes/${pname}-${version}.tar.xz";
-    sha256 = "01g4sfycv13glnmfrapwhjbdw6z1z7w5bwjldxjmglwfw5p3czak";
+    url = "https://ftp.exim.org/pub/exim/exim4/${pname}-${version}.tar.xz";
+    sha256 = "1nsb2i5mqxfz1sl1bmbxmpb2qiaf3wffhfiw4j9vfpagy3xfhzpp";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -21,7 +22,8 @@ stdenv.mkDerivation rec {
     ++ stdenv.lib.optionals enableMySQL [ libmysqlclient zlib ]
     ++ stdenv.lib.optional enableAuthDovecot dovecot
     ++ stdenv.lib.optional enablePAM pam
-    ++ stdenv.lib.optional enableSPF libspf2;
+    ++ stdenv.lib.optional enableSPF libspf2
+    ++ stdenv.lib.optional enableDMARC opendmarc;
 
   preBuild = ''
     sed '
@@ -71,6 +73,10 @@ stdenv.mkDerivation rec {
         s:^# \(SUPPORT_SPF\)=.*:\1=yes:
         s:^# \(LDFLAGS += -lspf2\):\1:
       ''}
+      ${stdenv.lib.optionalString enableDMARC ''
+        s:^# \(SUPPORT_DMARC\)=.*:\1=yes:
+        s:^# \(LDFLAGS += -lopendmarc\):\1:
+      ''}
       #/^\s*#.*/d
       #/^\s*$/d
     ' < src/EDITME > Local/Makefile
@@ -92,11 +98,11 @@ stdenv.mkDerivation rec {
       done )
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = "http://exim.org/";
     description = "A mail transfer agent (MTA)";
-    license = stdenv.lib.licenses.gpl3;
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = [ stdenv.lib.maintainers.tv ];
+    license = with licenses; [ gpl2Plus bsd3 ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ tv ajs124 das_j ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/mail/mailman/default.nix b/nixpkgs/pkgs/servers/mail/mailman/default.nix
index 4a3abbc8c15a..879fd19adb0a 100644
--- a/nixpkgs/pkgs/servers/mail/mailman/default.nix
+++ b/nixpkgs/pkgs/servers/mail/mailman/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, isPy3k, alembic, aiosmtpd
-, dnspython, flufl_bounce, flufl_i18n, flufl_lock, lazr_config, lazr_delegates
-, passlib, requests, zope_configuration, click, falcon, importlib-resources
+{ stdenv, buildPythonPackage, fetchPypi, fetchpatch, isPy3k, alembic, aiosmtpd, dnspython
+, flufl_bounce, flufl_i18n, flufl_lock, lazr_config, lazr_delegates, passlib
+, requests, zope_configuration, click, falcon, importlib-resources
 , zope_component, lynx, postfix, authheaders, gunicorn
 }:
 
@@ -22,9 +22,14 @@ buildPythonPackage rec {
 
   patches = [
     (fetchpatch {
-      url = "https://gitlab.com/mailman/mailman/commit/4012396aa41d9f6c03fda89a13cc7bc655c19dd8.patch";
-      sha256 = "126nmqi7jma399lsf7gym5kra3xbl4mcs67hzfgn497vvzx77q47";
+      url = https://gitlab.com/mailman/mailman/-/commit/4b206e2a5267a0e17f345fd7b2d957122ba57566.patch;
+      sha256 = "06axmrn74p81wvcki36c7gfj5fp5q15zxz2yl3lrvijic7hbs4n2";
     })
+    (fetchpatch {
+      url = https://gitlab.com/mailman/mailman/-/commit/9613154f3c04fa2383fbf017031ef263c291418d.patch;
+      sha256 = "0vyw87s857vfxbf7kihwb6w094xyxmxbi1bpdqi3ybjamjycp55r";
+    })
+    ./log-stderr.patch
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/servers/mail/mailman/log-stderr.patch b/nixpkgs/pkgs/servers/mail/mailman/log-stderr.patch
new file mode 100644
index 000000000000..2edbe1f18313
--- /dev/null
+++ b/nixpkgs/pkgs/servers/mail/mailman/log-stderr.patch
@@ -0,0 +1,13 @@
+diff --git a/src/mailman/core/logging.py b/src/mailman/core/logging.py
+index f8f87279f..7ff13b003 100644
+--- a/src/mailman/core/logging.py
++++ b/src/mailman/core/logging.py
+@@ -142,6 +142,8 @@ def _init_logger(propagate, sub_name, log, logger_config):
+         address, facility = _get_syslog_params(logger_config)
+         handler = logging.handlers.SysLogHandler(
+             address=address, facility=facility)
++    elif logger_config.handler == 'stderr':
++        handler = logging.StreamHandler(sys.stderr)
+     else:
+         path_str = logger_config.path
+         path_abs = os.path.normpath(os.path.join(config.LOG_DIR, path_str))
diff --git a/nixpkgs/pkgs/servers/mail/opensmtpd/default.nix b/nixpkgs/pkgs/servers/mail/opensmtpd/default.nix
index c489f2b14f73..a59e18837d7d 100644
--- a/nixpkgs/pkgs/servers/mail/opensmtpd/default.nix
+++ b/nixpkgs/pkgs/servers/mail/opensmtpd/default.nix
@@ -57,7 +57,7 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.isc;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ rickynils obadz ekleog ];
+    maintainers = with maintainers; [ obadz ekleog ];
   };
   passthru.tests = {
     basic-functionality-and-dovecot-interaction = nixosTests.opensmtpd;
diff --git a/nixpkgs/pkgs/servers/mail/postfix/default.nix b/nixpkgs/pkgs/servers/mail/postfix/default.nix
index 585a6196831b..e449f4ae954e 100644
--- a/nixpkgs/pkgs/servers/mail/postfix/default.nix
+++ b/nixpkgs/pkgs/servers/mail/postfix/default.nix
@@ -26,11 +26,11 @@ in stdenv.mkDerivation rec {
 
   pname = "postfix";
 
-  version = "3.5.3";
+  version = "3.5.6";
 
   src = fetchurl {
     url = "ftp://ftp.cs.uu.nl/mirror/postfix/postfix-release/official/${pname}-${version}.tar.gz";
-    sha256 = "0xcd9pmv2p4znn6bqvka19h5h2lw90inyxrm5020acd0yaf0i0g3";
+    sha256 = "0shyxk83adv4pbfilmskyrgjpb57vyhmvqbmfqawxbc22mksmh4f";
   };
 
   nativeBuildInputs = [ makeWrapper m4 ];
@@ -101,7 +101,7 @@ in stdenv.mkDerivation rec {
     description = "A fast, easy to administer, and secure mail server";
     license = with licenses; [ ipl10 epl20 ];
     platforms = platforms.linux;
-    maintainers = with maintainers; [ rickynils globin ];
+    maintainers = with maintainers; [ globin ];
   };
 
 }
diff --git a/nixpkgs/pkgs/servers/martin/default.nix b/nixpkgs/pkgs/servers/martin/default.nix
new file mode 100644
index 000000000000..2c506dca6af5
--- /dev/null
+++ b/nixpkgs/pkgs/servers/martin/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, rustPlatform, fetchFromGitHub, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "martin";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "urbica";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1i9zhmjkgid4s90n52wqmrl3lwswcaxd6d47ssycgjl1nv0jla4k";
+  };
+
+  cargoSha256 = "08rr783qvpm1q7s60k7mh3k5npf0lg5s1x74lnxcxdgrlgpn5gcf";
+
+  buildInputs = with stdenv; lib.optional isDarwin Security;
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "Blazing fast and lightweight PostGIS vector tiles server";
+    homepage = "https://martin.urbica.co/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sikmir ];
+    platforms = with platforms; linux ++ darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/default.nix b/nixpkgs/pkgs/servers/matrix-synapse/default.nix
index fbcec04e5320..8ac43f018113 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/default.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/default.nix
@@ -9,11 +9,11 @@ let
 in
 buildPythonApplication rec {
   pname = "matrix-synapse";
-  version = "1.15.1";
+  version = "1.20.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1hfyqp5bzsqp002synxp9jcm9fwzw9p0gcklmycmv616x3flylkf";
+    sha256 = "1sf36vwvy2f9jy6dldq6gqfmh60384i5j64s7yc131b4dp0n7lcw";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix
index fb1b51508589..a2045ee15f11 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/node-packages.nix
@@ -4,31 +4,40 @@
 
 let
   sources = {
-    "@babel/code-frame-7.8.3" = {
+    "@babel/code-frame-7.10.3" = {
       name = "_at_babel_slash_code-frame";
       packageName = "@babel/code-frame";
-      version = "7.8.3";
+      version = "7.10.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz";
-        sha512 = "3d85pd9lfbm8yrlpn6wj9g56snbnpr9fx0w1b9x26jbirc2xfrvnifwzprp0f6bhqijshgm0q35axic8d11v4j0kq493dapcyk33n3b";
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.3.tgz";
+        sha512 = "fDx9eNW0qz0WkUeqL6tXEXzVlPh6Y5aCDEZesl0xBGA8ndRukX91Uk44ZqnkECp01NAZUdCAl+aiQNGi0k88Eg==";
       };
     };
-    "@babel/helper-validator-identifier-7.9.5" = {
+    "@babel/helper-validator-identifier-7.10.3" = {
       name = "_at_babel_slash_helper-validator-identifier";
       packageName = "@babel/helper-validator-identifier";
-      version = "7.9.5";
+      version = "7.10.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz";
-        sha512 = "3i5wlljsvjm0hxwjq4j1ddq6gcj2k518gh95wkx8qywkf90sb7l3d5aqga7hvfvz44nb2b0aq16jd3394zilmlbqcvczaq5llnapipz";
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.3.tgz";
+        sha512 = "bU8JvtlYpJSBPuj1VUmKpFGaDZuLxASky3LhaKj3bmpSTY6VWooSM8msk+Z0CZoErFye2tlABF6yDkT3FOPAXw==";
       };
     };
-    "@babel/highlight-7.9.0" = {
+    "@babel/highlight-7.10.3" = {
       name = "_at_babel_slash_highlight";
       packageName = "@babel/highlight";
-      version = "7.9.0";
+      version = "7.10.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz";
-        sha512 = "2qmdx9wdiv4yy36dc1ljghwd45kq6bhsddcbps8qznsrwvg3zjir6pb7nsfg4ypqrq6z2zif0ysjmwybpqp5xpz6rvymv2pbj54z5ll";
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.3.tgz";
+        sha512 = "Ih9B/u7AtgEnySE2L2F0Xm0GaM729XqqLfHkalTsbjXGyqmf/6M0Cu0WpvqueUlW+xk88BHw9Nkpj49naU+vWw==";
+      };
+    };
+    "@dabh/diagnostics-2.0.2" = {
+      name = "_at_dabh_slash_diagnostics";
+      packageName = "@dabh/diagnostics";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz";
+        sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==";
       };
     };
     "@slack/logger-1.1.1" = {
@@ -37,34 +46,34 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@slack/logger/-/logger-1.1.1.tgz";
-        sha512 = "26482151iyqnbfawnpnqggppifriyxx1gbyyi3688j782iiq4g1rqkm7q979z9qkv0pvvjrxdbi8v0gk3prax6j7v2zy0ndr44bj01w";
+        sha512 = "PAC5CMnNAv/FPtJ0le+YD2wUV+tZ7n3Bnjj9dBI+deIcHsExCnQkQmZE79cLvfuYXbz3PWyv5coti30MJQhEjA==";
       };
     };
-    "@slack/rtm-api-5.0.4" = {
+    "@slack/rtm-api-5.0.5" = {
       name = "_at_slack_slash_rtm-api";
       packageName = "@slack/rtm-api";
-      version = "5.0.4";
+      version = "5.0.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@slack/rtm-api/-/rtm-api-5.0.4.tgz";
-        sha512 = "1zx7c5wzbp2wc99lrzy0ipiil7jayn1643q0mm8bawdbi3gansd7axzn7ivcjlzgv9bn8pqlzc3lw0mwwlaqjs4z4d7zq6vnf6cw5g7";
+        url = "https://registry.npmjs.org/@slack/rtm-api/-/rtm-api-5.0.5.tgz";
+        sha512 = "x2B4hyoxjg62cxf4M5QRomx+xYp2XoajPKdd24SM2Sl4m+IrzwKzmcrysQuYmF6BMsm3IoTKymW5BBGckHGTIw==";
       };
     };
-    "@slack/types-1.6.0" = {
+    "@slack/types-1.7.0" = {
       name = "_at_slack_slash_types";
       packageName = "@slack/types";
-      version = "1.6.0";
+      version = "1.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@slack/types/-/types-1.6.0.tgz";
-        sha512 = "0hpy7rczl2a6379ipm7qxspq6qfh97iy2l7g0zzwn5jcmxlh5sjzl439k1hpxg7fpy66ldc455wlfyrk3wmgy8drlndw33iyq7w1fja";
+        url = "https://registry.npmjs.org/@slack/types/-/types-1.7.0.tgz";
+        sha512 = "aigLPmTO513JxeFyeII/74y+S5jU39tabDWPsZyMHJWCYqK3vCkRvV73NL+Ay+Tq5RC2NgSmkedk1wvQJ6oXLg==";
       };
     };
-    "@slack/web-api-5.8.1" = {
+    "@slack/web-api-5.10.0" = {
       name = "_at_slack_slash_web-api";
       packageName = "@slack/web-api";
-      version = "5.8.1";
+      version = "5.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@slack/web-api/-/web-api-5.8.1.tgz";
-        sha512 = "065zsa2i8s2av3igs52g2r8pn2i3qw3glflwbdn28i6wzvq0f3q2gp9vx44gfp5r5q1ymjwvk8wapsaaqgz1s781pymspcf6n977qrh";
+        url = "https://registry.npmjs.org/@slack/web-api/-/web-api-5.10.0.tgz";
+        sha512 = "t8c2lcSrdX8LIUOS1RvslbBBKvuNaTtbEcrWai4yDGkiNIxzhk+dHPcJzd7A4A0DkAgiEwXeezR7RCELuG8WgQ==";
       };
     };
     "@types/body-parser-1.19.0" = {
@@ -73,7 +82,7 @@ let
       version = "1.19.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz";
-        sha512 = "0av4v9bdhgbq0jils3jajym9gcfddyx63g2xx8fh6vqafqb5vdcm98p1kfl70ydih9m393zp13krslmii5bmf05ngyaxn139nn0kpsv";
+        sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==";
       };
     };
     "@types/caseless-0.12.2" = {
@@ -82,7 +91,7 @@ let
       version = "0.12.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/caseless/-/caseless-0.12.2.tgz";
-        sha512 = "39jv2a7v9mi41wxbv242icriy5asbzyk95iy25ay3gwa1d6yi40cd6gclbzn81hig9xvvi5z7j2gq4ybirjfyihpq8wa3s160r33jg9";
+        sha512 = "6ckxMjBBD8URvjB6J3NcnuAn5Pkl7t3TizAg+xdlzzQGSPSmBcXf8KoIH0ua/i+tio+ZRUHEXp0HEmvaR4kt0w==";
       };
     };
     "@types/chai-4.2.11" = {
@@ -91,7 +100,7 @@ let
       version = "4.2.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/chai/-/chai-4.2.11.tgz";
-        sha512 = "2rkrhbd0aip5x0bqbp3az1pfnz3wx0dqwmid3ibyrvgvz9z93xbf1prkm5rcnj7j58w70fydsrrjk0rl1fj3hcxm2z36zjsw7lrdfxp";
+        sha512 = "t7uW6eFafjO+qJ3BIV2gGUyZs27egcNRkUdalkud+Qa3+kg//f129iuOFivHDXQ+vnU3fDXuwgv0cqMCbcE8sw==";
       };
     };
     "@types/connect-3.4.33" = {
@@ -100,16 +109,7 @@ let
       version = "3.4.33";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz";
-        sha512 = "3n5gxr7z1jn60gvcnzls1c3fgzbv171acdp4shbn095wnbb8hdba3cjq1sac8aina3bg957ww5hg89swcgbdjfp9irmkkiqfs8npqfv";
-      };
-    };
-    "@types/events-3.0.0" = {
-      name = "_at_types_slash_events";
-      packageName = "@types/events";
-      version = "3.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz";
-        sha512 = "3v6shgxnlkc7izsc00g8ilpxi1q2mpcmbjyfawyqcj8mwfhlx2cnkm3hj87gsd39yyq33pilb0dbb4cdc8wwhn7dcwj4srg0amrp8qi";
+        sha512 = "2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==";
       };
     };
     "@types/express-4.17.6" = {
@@ -118,7 +118,7 @@ let
       version = "4.17.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/express/-/express-4.17.6.tgz";
-        sha512 = "3kwllih0493ahk6gi09pibb3c3x21r3qll2fv7vs9ixz694i6dp59w4799q8ar1yx500d03rvyc5pppf9p3rrdcw4fpkws8svvapycz";
+        sha512 = "n/mr9tZI83kd4azlPG5y997C/M4DNABK9yErhFM6hKdym4kkmd9j0vtsJyjFIwfRBxtrxZtAfGZCNRIBMFLK5w==";
       };
     };
     "@types/express-serve-static-core-4.17.7" = {
@@ -127,7 +127,7 @@ let
       version = "4.17.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.7.tgz";
-        sha512 = "07pihlgvdmd0kkpxd77h2mcqx93c3mz0g4jcv2p511jgksqwc4wgi4qjb59gbp2ya25inn0gsh9f3wsc8dzi73w5mhamxn5y27i7j0h";
+        sha512 = "EMgTj/DF9qpgLXyc+Btimg+XoH7A2liE8uKul8qSmMTHCeNYzydDKFdsJskDvw42UsesCnhO63dO0Grbj8J4Dw==";
       };
     };
     "@types/is-stream-1.1.0" = {
@@ -136,16 +136,16 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/is-stream/-/is-stream-1.1.0.tgz";
-        sha512 = "1i12j74qq6aga8wpwbn5vmy5abb0hms26hinya0mx503dwx51iqy39rsl07kha49nfmmz0sbrjbbm4s1lrcwj3as9xb8m8hxsv5lilf";
+        sha512 = "jkZatu4QVbR60mpIzjINmtS1ZF4a/FqdTUTBeQDVOQ2PYyidtwFKr0B5G6ERukKwliq+7mIXvxyppwzG5EgRYg==";
       };
     };
-    "@types/mime-2.0.1" = {
+    "@types/mime-2.0.2" = {
       name = "_at_types_slash_mime";
       packageName = "@types/mime";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.1.tgz";
-        sha512 = "35iimmp0d3zg4774qavnq9wh54dgnxfks59fks65f8q8d1008x00a1fmkdnxcs27znlc69mzbxp1frzpxx85c5w4x0ha5prgs0ks0hp";
+        url = "https://registry.npmjs.org/@types/mime/-/mime-2.0.2.tgz";
+        sha512 = "4kPlzbljFcsttWEq6aBW0OZe6BDajAmyvr2xknBG92tejQnvdGtT9+kXSZ580DqpxY9qG2xeQVF9Dq0ymUTo5Q==";
       };
     };
     "@types/mocha-7.0.2" = {
@@ -154,7 +154,7 @@ let
       version = "7.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/mocha/-/mocha-7.0.2.tgz";
-        sha512 = "3bnvharvlw03v41ibz38mhzb9h9ai3r3h46j9j6jj0g32ny0xak0ls9mnbs6bf7yfqccidc2vg1xwx16adxqngyayyci6130ysbdwv6";
+        sha512 = "ZvO2tAcjmMi8V/5Z3JsyofMe3hasRcaw88cto5etSVMwVQfeivGAlEYmaQgceUSVYFofVjT+ioHsATjdWcFt1w==";
       };
     };
     "@types/nedb-1.8.9" = {
@@ -163,7 +163,7 @@ let
       version = "1.8.9";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/nedb/-/nedb-1.8.9.tgz";
-        sha512 = "1ajp6pwl4fnpr0w1bkvd7fx77amhgwm32q8wcr6r124m6fq73f88qkgbgr8r0ll2s2pn1b9kajzzvbvl7rgib0p3bsd94826kffbm63";
+        sha512 = "w9Tl3DQCkdT0Ghes+PKhe+3/pZppBXuFFpSCjPJbb2KE3DjYmUpEyCYzjrAYlT9Y1TndnbbnChzkax2h/JorVQ==";
       };
     };
     "@types/node-13.9.3" = {
@@ -181,7 +181,16 @@ let
       version = "1.8.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/node-emoji/-/node-emoji-1.8.1.tgz";
-        sha512 = "288j4d6vcg0fbj43jaaf628f02s8zpsc0xagw0a5dr397ks6qnrcmjf91vl50b6f5xiddm6606hg3fa0va3yfpw4n56wnh5vl1mzx6i";
+        sha512 = "0fRfA90FWm6KJfw6P9QGyo0HDTCmthZ7cWaBQndITlaWLTZ6njRyKwrwpzpg+n6kBXBIGKeUHEQuBx7bphGJkA==";
+      };
+    };
+    "@types/nunjucks-3.1.3" = {
+      name = "_at_types_slash_nunjucks";
+      packageName = "@types/nunjucks";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/nunjucks/-/nunjucks-3.1.3.tgz";
+        sha512 = "42IiIIBdoB7ZDwCVhCWYT4fMCj+4TeacuVgh7xyT2du5EhkpA+OFeeDdYTFCUt1MrHb8Aw7ZqFvr8s1bwP9l8w==";
       };
     };
     "@types/p-queue-2.3.2" = {
@@ -190,16 +199,16 @@ let
       version = "2.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/p-queue/-/p-queue-2.3.2.tgz";
-        sha512 = "2ypziq4lf4i0kvxck1nv6l40sivqa5w95sagcihxbw8j87whz8yl80hwailygwlgyl3k3c6vca9nzn5h720l2vmhwfvz4vs17jjz83q";
+        sha512 = "eKAv5Ql6k78dh3ULCsSBxX6bFNuGjTmof5Q/T6PiECDq0Yf8IIn46jCyp3RJvCi8owaEmm3DZH1PEImjBMd/vQ==";
       };
     };
-    "@types/qs-6.9.2" = {
+    "@types/qs-6.9.3" = {
       name = "_at_types_slash_qs";
       packageName = "@types/qs";
-      version = "6.9.2";
+      version = "6.9.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.2.tgz";
-        sha512 = "3wd0wx623wmzc5fs372ziw4zr9ay93zqd17aqbsfvs90y6jp2n9ipv0k0mpgjidvrhrzkwdhh6xpxlyy3xmzxdvw1gjdk3phs5w7mkb";
+        url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.3.tgz";
+        sha512 = "7s9EQWupR1fTc2pSMtXRQ9w9gLOcrJn+h7HOXw4evxyvVqMi4f+q7d2tnFe3ng3SNHjtK+0EzGMGFUQX4/AQRA==";
       };
     };
     "@types/randomstring-1.1.6" = {
@@ -208,7 +217,7 @@ let
       version = "1.1.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/randomstring/-/randomstring-1.1.6.tgz";
-        sha512 = "0fx5jypv2k0dqp2wh8li9g82pylxq9d0d2qsgn55a1dkyvd8lsw31ih0n44sb9ippmiad7j21qrnq8md4bn0754j8pcb3giqhh1j4jx";
+        sha512 = "XRIZIMTxjcUukqQcYBdpFWGbcRDyNBXrvTEtTYgFMIbBNUVt+9mCKsU+jUUDLeFO/RXopUgR5OLiBqbY18vSHQ==";
       };
     };
     "@types/range-parser-1.2.3" = {
@@ -217,16 +226,16 @@ let
       version = "1.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz";
-        sha512 = "0w59kqlbrl9ich2pv2xqanzmg9f51404zqsba9l8aimqd77zbrdxcyq9q13xfnhr0d1dz4mx6z7n976ryc2nk2gfch5p507njm5f0bv";
+        sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==";
       };
     };
-    "@types/request-2.48.4" = {
+    "@types/request-2.48.5" = {
       name = "_at_types_slash_request";
       packageName = "@types/request";
-      version = "2.48.4";
+      version = "2.48.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/request/-/request-2.48.4.tgz";
-        sha512 = "21mnsvbrykpzp1f1rd2ibk3nsgr8kyqikk5rdmq4qlkpf10gnpxp414hnvnbwjp27l5hvpc5l0fx0qhw20h7zi143qw6iwq68qpansv";
+        url = "https://registry.npmjs.org/@types/request/-/request-2.48.5.tgz";
+        sha512 = "/LO7xRVnL3DxJ1WkPGDQrp4VTV1reX9RkC85mJ+Qzykj2Bdw+mG15aAfDahc76HtknjzE16SX/Yddn6MxVbmGQ==";
       };
     };
     "@types/request-promise-native-1.0.17" = {
@@ -235,7 +244,7 @@ let
       version = "1.0.17";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/request-promise-native/-/request-promise-native-1.0.17.tgz";
-        sha512 = "2m1kxdl06xbzf2zq8qx0kvwm6wjsxpxipyzzix8g7pvbnsi454zar84inrfm1bd5kyh1n2hj8q6ljv705r7816633nhifz6cv8xv7yk";
+        sha512 = "05/d0WbmuwjtGMYEdHIBZ0tqMJJQ2AD9LG2F6rKNBGX1SSFR27XveajH//2N/XYtual8T9Axwl+4v7oBtPUZqg==";
       };
     };
     "@types/retry-0.12.0" = {
@@ -244,16 +253,16 @@ let
       version = "0.12.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz";
-        sha512 = "2y01s1x2dh20ms4h4ih8j4rz6c66k40nj7kfl8z5bv1s77vqv4jq0ycai1gi0irx0m9y7jqcz140ica6273vrqmcvf2r2nkah58wqn1";
+        sha512 = "wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==";
       };
     };
-    "@types/serve-static-1.13.3" = {
+    "@types/serve-static-1.13.4" = {
       name = "_at_types_slash_serve-static";
       packageName = "@types/serve-static";
-      version = "1.13.3";
+      version = "1.13.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.3.tgz";
-        sha512 = "39fm32fi9qpb1bz4q399y9rzv02ywml2m1qmclyr1ckrmy4vdn8nv5f9986ckn19yapxif0ljs0gc717xd7dmssjnh37qrxkp1d56m2";
+        url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.4.tgz";
+        sha512 = "jTDt0o/YbpNwZbQmE/+2e+lfjJEJJR0I3OFaKQKPWkASkCoW3i6fsUnqudSMcNAfbtmADGu8f4MV4q+GqULmug==";
       };
     };
     "@types/tough-cookie-4.0.0" = {
@@ -262,25 +271,25 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.0.tgz";
-        sha512 = "3lf0afkwkxmp6a7g8ghfbm5zjaxy2i1hqirzcr2iycxzvwwihdldbkfwgyxrc6b8b40sqfmvl5g2k6v6mdmpq5m6gs81nvn12g6rpr3";
+        sha512 = "I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A==";
       };
     };
-    "@types/uuid-7.0.3" = {
+    "@types/uuid-7.0.4" = {
       name = "_at_types_slash_uuid";
       packageName = "@types/uuid";
-      version = "7.0.3";
+      version = "7.0.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/uuid/-/uuid-7.0.3.tgz";
-        sha512 = "0xq5zlv2b74hz2yna42yd0j6p1xr1mx681x9phwl3njd8by5i82n15zc03srpkjzmhb3r12llhhwfk3k941wjw8f36q8dbbjm6nlirx";
+        url = "https://registry.npmjs.org/@types/uuid/-/uuid-7.0.4.tgz";
+        sha512 = "WGZCqBZZ0mXN2RxvLHL6/7RCu+OWs28jgQMP04LWfpyJlQUMTR6YU9CNJAKDgbw+EV/u687INXuLUc7FuML/4g==";
       };
     };
-    "@types/ws-5.1.2" = {
+    "@types/ws-7.2.5" = {
       name = "_at_types_slash_ws";
       packageName = "@types/ws";
-      version = "5.1.2";
+      version = "7.2.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/ws/-/ws-5.1.2.tgz";
-        sha512 = "0x1hv5p5js6n69q53qgw3qly7d1ipwz0cqfd2kr8g79kx8rm4bqak7azjwgagzm1b96xrqaydfkaw9rqr3536jd7ikpfxfqli8dfi1n";
+        url = "https://registry.npmjs.org/@types/ws/-/ws-7.2.5.tgz";
+        sha512 = "4UEih9BI1nBKii385G9id1oFrSkLcClbwtDfcYj8HJLQqZVAtb/42vXVrYvRWCcufNF/a+rZD3MxNwghA7UmCg==";
       };
     };
     "@types/yargs-13.0.9" = {
@@ -289,7 +298,7 @@ let
       version = "13.0.9";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.9.tgz";
-        sha512 = "3758l5yl7cqv06qqaljs8hac31hwp4kz1nycsm1lj20dha116ylwx9kyd2dzpp8bml82ydl5r1ih31qxp9bmxc1hq1h6yyrh1ky3fy6";
+        sha512 = "xrvhZ4DZewMDhoH1utLtOAwYQy60eYFoXeje30TzM3VOvQlBwQaEpKFq5m34k1wOw2AKIi2pwtiAjdmhvlBUzg==";
       };
     };
     "@types/yargs-parser-13.1.0" = {
@@ -298,7 +307,7 @@ let
       version = "13.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-13.1.0.tgz";
-        sha512 = "0mdq44p4sr9zvkcmaaa0jgyz34qirza6kl4qcln5ir9h0lg63kr9ndclj6p8gpf3mir7kv3rlr7pzkkjhhgkj96l9rsrs0r2my9naw0";
+        sha512 = "gCubfBUZ6KxzoibJ+SCUc/57Ms1jz5NjHe4+dI2krNmU5zCPAphyLJYyTOg06ueIyfj+SaCUqmzun7ImlxDcKg==";
       };
     };
     "Slackdown-git://github.com/Half-Shot/slackdown#efd8934a3d9c3bf0064c0b217c5cf6b62ee697e4" = {
@@ -311,13 +320,22 @@ let
         sha256 = "474e972819b3e1db3af70be75966a3d501c6b9285f4550ff5548193e031eaf9b";
       };
     };
+    "a-sync-waterfall-1.0.1" = {
+      name = "a-sync-waterfall";
+      packageName = "a-sync-waterfall";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz";
+        sha512 = "RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==";
+      };
+    };
     "abbrev-1.1.1" = {
       name = "abbrev";
       packageName = "abbrev";
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz";
-        sha512 = "38s4f3id97wsb0rg9nm9zvxyq0nvwrmrpa5dzvrkp36mf5ibs98b4z6lvsbrwzzs0sbcank6c7gpp06vcwp9acfhp41rzlhi3ybsxwy";
+        sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
       };
     };
     "accepts-1.3.7" = {
@@ -326,7 +344,7 @@ let
       version = "1.3.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
-        sha512 = "2j51dxzbgz22q0k7dhivimfsqx9a0f0h9slfd7n20gz3y1944gx3y7xai54za0x3zhbar6vqiaab2i9p913cwqk414qk3cnrm138pr2";
+        sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
       };
     };
     "ajv-6.12.2" = {
@@ -335,7 +353,7 @@ let
       version = "6.12.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz";
-        sha512 = "18zdchlpq20znwglnbc54yvqpr9m7q96qp9zvys27is5c0vxfn5fk8nmwhpnplbxyka88xqqabad0427mbgz7y7mz6azrp6723pxrck";
+        sha512 = "k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==";
       };
     };
     "another-json-0.2.0" = {
@@ -353,7 +371,7 @@ let
       version = "3.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz";
-        sha512 = "2gpv8bq9jq550ygnnm5srza0w0lfg8mr8z39702l0rgxhf35sxmdzxpppvwcp50rpk0dgjz516nbkygm0fk4675kb9qsgb5x35cfh9c";
+        sha512 = "LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==";
       };
     };
     "ansi-regex-3.0.0" = {
@@ -371,7 +389,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
-        sha512 = "1v2gfp292kslpvam0l0h1iba35yi0n7dc6qv6fmxsdyfcp6zakkl13vrh3hzsw4zgh50jrrsg7xb2q2hn4g8a0dmf947mfcylymxanm";
+        sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
       };
     };
     "ansi-styles-3.2.1" = {
@@ -380,7 +398,7 @@ let
       version = "3.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz";
-        sha512 = "2lgkskkj4c1fsnrksy0yffda0wss84p8lfiazdc7jli7iqnvrxkzbxjzpvx13lm28qw0zkawfxvz2bdiisc72ccy7hx8i8rm4iijgam";
+        sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
       };
     };
     "anymatch-3.1.1" = {
@@ -389,7 +407,7 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz";
-        sha512 = "2776jrfn8kh9r6qhz6s43znnwvqmbqrjsch99hdv21j53sj4njyjhrya67drxk8y7hvi28mjvdjj277jy4qd2zfayrjli3cdbdkkkwq";
+        sha512 = "mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==";
       };
     };
     "arg-4.1.3" = {
@@ -398,7 +416,7 @@ let
       version = "4.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz";
-        sha512 = "2y8gq3qabgg6wbnvzwm79j1ncabh960rrr2qxq657mv4zsynr92l46mpfgpvk7hq416dpvqi66sy617bzgll3wcxmv7rlc6790bvi77";
+        sha512 = "58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==";
       };
     };
     "argparse-1.0.10" = {
@@ -407,7 +425,7 @@ let
       version = "1.0.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
-        sha512 = "17fhywmdjcp8g0ys089i5xg26yajkkg9zg8hyry3fghz75b2pq5vdx997dk5p2sc15r9nsj8rmf4f27g81hi92kzj5q86sdmg5ni553";
+        sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
       };
     };
     "array-flatten-1.1.1" = {
@@ -428,13 +446,22 @@ let
         sha1 = "5fcc373920775723cfd64d65c64bef53bf9eba6d";
       };
     };
+    "asap-2.0.6" = {
+      name = "asap";
+      packageName = "asap";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz";
+        sha1 = "e50347611d7e690943208bbdafebcbc2fb866d46";
+      };
+    };
     "asn1-0.2.4" = {
       name = "asn1";
       packageName = "asn1";
       version = "0.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz";
-        sha512 = "1v2z1ll0l8rif8hh0d03jc49kz3p8hym63q8ixbas48w4a8akl413hwn08nx83m89sj3mxl06aa0grp7n8hj6hcbsb2k3fhj913674g";
+        sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
       };
     };
     "assert-options-0.6.2" = {
@@ -443,7 +470,7 @@ let
       version = "0.6.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/assert-options/-/assert-options-0.6.2.tgz";
-        sha512 = "09k5n3gb7n70yrif6qql3da1jbby6nc5g2h4lp6wbqcj14x71nyms3rgvwngl6jc1wrrw3jykiln04dr0cjs9k67i0d39jpizkm5zr8";
+        sha512 = "KP9S549XptFAPGYmLRnIjQBL4/Ry8Jx5YNLQZ/l+eejqbTidBMnw4uZSAsUrzBq/lgyqDYqxcTF7cOxZb9gyEw==";
       };
     };
     "assert-plus-1.0.0" = {
@@ -461,7 +488,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz";
-        sha512 = "07swiwljqy13fyil4y9lp319zcqsgdkchaic1y4dlfi3flh5l4qlwv497g40bnspsl9h857a3ig5assmvjdwv913dppgymkvcsil2wf";
+        sha512 = "jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==";
       };
     };
     "async-0.2.10" = {
@@ -473,13 +500,13 @@ let
         sha1 = "b6bbe0b0674b9d719708ca38de8c237cb526c3d1";
       };
     };
-    "async-2.6.3" = {
+    "async-3.2.0" = {
       name = "async";
       packageName = "async";
-      version = "2.6.3";
+      version = "3.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/async/-/async-2.6.3.tgz";
-        sha512 = "1g679kw2qqpqx1yd4s778r8rw3cv9qwmib5x3klk64kcl5ndw71bljcpav5jkk6grizlpvrqszsbs6fkmnlvcq5fnz2q33mrnb6zyfd";
+        url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz";
+        sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==";
       };
     };
     "async-limiter-1.0.1" = {
@@ -488,7 +515,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz";
-        sha512 = "0sy81yyf4na58ic2m0ib0prkb9njb1qzl7wf3vlq4hhm4xnwgxaph0lr43gs1sd0rai2xp1h6phlwvni9jiggm94dd54i0wc1cabhvj";
+        sha512 = "csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==";
       };
     };
     "asynckit-0.4.0" = {
@@ -509,13 +536,13 @@ let
         sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
       };
     };
-    "aws4-1.9.1" = {
+    "aws4-1.10.0" = {
       name = "aws4";
       packageName = "aws4";
-      version = "1.9.1";
+      version = "1.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz";
-        sha512 = "2x4b6c0ny64yv6ljfs6sv82akh200klmnh1m1i18hdj28ksxkr9c0szphnwcasy3g5y3l1wn858wcxnc2gi9q5wql8s678fc61xbhf0";
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz";
+        sha512 = "3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA==";
       };
     };
     "axios-0.19.2" = {
@@ -524,7 +551,7 @@ let
       version = "0.19.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/axios/-/axios-0.19.2.tgz";
-        sha512 = "0fa6ngb4rkbyp5r4ccjgs2ykdbz8i2hcr41av59jicgq6mfva739kcd6n5dqzj3hsx7d4qi201g93li3qddn14bz9qvh76irgj2cf3y";
+        sha512 = "fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==";
       };
     };
     "babel-runtime-6.26.0" = {
@@ -551,7 +578,7 @@ let
       version = "3.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/base-x/-/base-x-3.0.8.tgz";
-        sha512 = "0j1z1n32mik68bxyihzyn0fik2lfw6msi9h22hnrdqz1x9dbsql1xyz7590vkpp54d8apf92cvnp1qzf4cqcy2fmv8zq9zqcc0zaps6";
+        sha512 = "Rl/1AWP4J/zRrk54hhlxH4drNxPJXYUaKffODVI53/dAsV4t9fBxyxYKAVPU1XBHxYwOWP9h9H0hM2MVw4YfJA==";
       };
     };
     "basic-auth-2.0.1" = {
@@ -560,7 +587,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz";
-        sha512 = "1x9j0wn0a3ia9mwgvicd30w346wzxj86zk9sly5wp07a2mpjm1sk4hk9iwrbcc8z6c72bkhvck6zrxbvcb6p8bbjhald78xw6k9wprl";
+        sha512 = "NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==";
       };
     };
     "bcrypt-pbkdf-1.0.2" = {
@@ -578,7 +605,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz";
-        sha512 = "2izzpdg2m0av5pzbv1zyjfi15ddz5yk1d4h9cilzc8z6pzq5abcicnm2xx4b2jdrjk2l4h3zfawsxhnbzlgvlv4700q5930k796s69y";
+        sha512 = "Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==";
       };
     };
     "binary-search-tree-0.2.5" = {
@@ -614,7 +641,7 @@ let
       version = "3.5.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/bluebird/-/bluebird-3.5.5.tgz";
-        sha512 = "3gqgjzrc40ykm2hcmh2g98d09h8wh19n5psqc5b7k03aysyymfnvlak115vfi4s02ygnky872sfhdl1r077wcnyrsmyndyzg4gbmag5";
+        sha512 = "5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w==";
       };
     };
     "body-parser-1.19.0" = {
@@ -623,7 +650,7 @@ let
       version = "1.19.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz";
-        sha512 = "2rl5ww96fwgmxdqhqmnknsaafw44vsr2xz7vf7nax8qz9jy8bmmdyawcy6yfny0wm7pi8m2jssakzjc1nin8z8207kv0gclpnrhy4bn";
+        sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
       };
     };
     "brace-expansion-1.1.11" = {
@@ -632,7 +659,7 @@ let
       version = "1.1.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
-        sha512 = "248cnpbbf0p32h53rd3g8wzpgrkaj4p078ra1g6l16f82i6bzkvmhwqan5rk88apbll9ly1476kngd7f7z27i3b3zxpbb3064f8yaw8";
+        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
       };
     };
     "braces-3.0.2" = {
@@ -641,7 +668,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz";
-        sha512 = "38dmhgggv4r7xf3chli957yj4gzfv9xhif8zzaqjnxavkrs1qbmj9m84vxh42n1jl9sddy16ryp4g93l1p8dvrc1pbcvk2ippwadjvg";
+        sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
       };
     };
     "browser-request-0.3.3" = {
@@ -659,7 +686,7 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz";
-        sha512 = "21jjhrf3wdmzsfqgva5s7shs1wdmcdxsjvi75p8z7i0q2i6n3654gpxjqlhbnpmzm25cpkshyi8swy13017qkp9m7xnbgw0bwiia45a";
+        sha512 = "qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==";
       };
     };
     "bs58-4.0.1" = {
@@ -677,7 +704,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz";
-        sha512 = "3c0m16i3fdv3vlq2zz8dakrnhqvs16gvggj485f91fiaa5v0p7pyhamcdw5fggr7djzd8nshmvz4hgbp7714smqxlld2an28q8if1ri";
+        sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==";
       };
     };
     "buffer-writer-2.0.0" = {
@@ -686,7 +713,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz";
-        sha512 = "21laqrygizzy6ccv03l1af9pq07ligp755ybgfzln99lh62xnn5sxhw6qlw717g9dym9pa2cg0k9mz5r1nkb0hckxnk9mal6swnkdkb";
+        sha512 = "a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw==";
       };
     };
     "builtin-modules-1.1.1" = {
@@ -704,7 +731,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz";
-        sha512 = "073ccjmvxf726gcgzy0pksvi8x8r51dq6hyv69sc75ynrin7anwk9q3sqhbbbjhqjjrmq42s5f5gdbcgj2jxai6ldpyq6y2ny78payd";
+        sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
       };
     };
     "camelcase-5.3.1" = {
@@ -713,7 +740,7 @@ let
       version = "5.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz";
-        sha512 = "0kg17fpj4c7akmpa9x0a3fi5glrc3y5k3ppjcpb3pd02ylg3fnzfdvz0pixd223crbs5980sjaxsk9q8kcqxm5d9cb7rlkv3m614vrg";
+        sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
       };
     };
     "caseless-0.12.0" = {
@@ -731,7 +758,7 @@ let
       version = "4.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz";
-        sha512 = "27pdhh35fbig9yxb0h8qp98cjapnpdxjnia2jc1hrhrda9ajab2hkpclrfd8b568ggrv2wrgi09bh0rf1vndc1b82nb74kf21p3f1ax";
+        sha512 = "XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==";
       };
     };
     "chalk-2.4.2" = {
@@ -740,7 +767,7 @@ let
       version = "2.4.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
-        sha512 = "2wr55z22i274wadq2cvpxga28a8igq9whc4m1q06sz5sn2hc4amradd5vd02wm92vyfg2qrb0bysd5drv7mfmlb2wqdf939v5zvxn1j";
+        sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
       };
     };
     "check-error-1.0.2" = {
@@ -758,7 +785,16 @@ let
       version = "3.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/chokidar/-/chokidar-3.3.0.tgz";
-        sha512 = "3hbyi14x38mvx936wbajln4g1l8fcyi8fwvcrhf2jqn0yzcyda1d20q67k445j9bvs5kr7jdhd2s07srb2pnm7hxmjngp2k6wn8lsbl";
+        sha512 = "dGmKLDdT3Gdl7fBUe8XK+gAtGmzy5Fn0XkkWQuYxGIgWVPPse2CxFA5mtrlD0TOHaHjEUqkWNyP1XdHoJES/4A==";
+      };
+    };
+    "chokidar-3.4.0" = {
+      name = "chokidar";
+      packageName = "chokidar";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-3.4.0.tgz";
+        sha512 = "aXAaho2VJtisB/1fg1+3nlLJqGOuewTzQpd/Tz0yTg2R0e4IGtshYvtjowyEumcBv2z+y4+kc75Mz7j5xJskcQ==";
       };
     };
     "cliui-5.0.0" = {
@@ -767,7 +803,7 @@ let
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz";
-        sha512 = "1fg1afsij2xwc4gpqbyhrp3s7q19w7bmii0ghmdv6cdx6giz3v0yqn25i3g7fw2lpi388jpvaf6nf9z2c7xp7w7psrww7569548d1rx";
+        sha512 = "PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==";
       };
     };
     "color-3.0.0" = {
@@ -776,7 +812,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/color/-/color-3.0.0.tgz";
-        sha512 = "3xh3l9zhh6dav7pp5hy88kbb6c52j0pf331ywpp6w2jaf94w25fjn4am930775mskxy75cxl90fji17cym40ivslxxlpcrlxgkmsalc";
+        sha512 = "jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==";
       };
     };
     "color-convert-1.9.3" = {
@@ -785,7 +821,7 @@ let
       version = "1.9.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz";
-        sha512 = "0d5pmdh1dh0qbpjrzdczwqkh0jwf8gxhq71mknwlxqz80h1q6kdrpghq4qfp0y4v650ia2jdihmzpb2n8hg00h72lnx05dgvysi9w21";
+        sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==";
       };
     };
     "color-name-1.1.3" = {
@@ -803,16 +839,7 @@ let
       version = "1.5.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz";
-        sha512 = "11p4cihq5874fmyvwkh0fp4dr2syliqsgg610rw46lsav41l6wcm4bgpkrl34gip3cqncw0ppmqwfknm5v02m1fj8qqk8cnlzk84bbl";
-      };
-    };
-    "colornames-1.1.1" = {
-      name = "colornames";
-      packageName = "colornames";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz";
-        sha1 = "f8889030685c7c4ff9e2a559f5077eb76a816f96";
+        sha512 = "dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==";
       };
     };
     "colors-1.4.0" = {
@@ -821,7 +848,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz";
-        sha512 = "2saczc8hcdmgns1cp1g1p7g2sq4yksrik0ffvfkhkavmmgx8haqm034a4c9zj8im6kfjh00n2xi360yqfy7vbsi98zri0943r72mrbb";
+        sha512 = "a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==";
       };
     };
     "colorspace-1.1.2" = {
@@ -830,7 +857,7 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz";
-        sha512 = "36j3cgfzngcjms1c0yfn487ibflffmb6hxgrknxbyrxrflc4kybm2r8a0mc1v8ljj7rbb7cjd54v2bimqb6rw0q5sqvwxznhfh8xpxy";
+        sha512 = "vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==";
       };
     };
     "combined-stream-1.0.8" = {
@@ -839,7 +866,7 @@ let
       version = "1.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
-        sha512 = "1v09nkip7zpn3k3prkkg53w331rhczpfgcqb0q42i97nafra43l2khl5zvhd4ar0qmh145nmw7944jy8p108ny0xpgy29gf2wqph0qm";
+        sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
       };
     };
     "commander-2.20.3" = {
@@ -848,7 +875,16 @@ let
       version = "2.20.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz";
-        sha512 = "1qqrwy7z476gqa94kjjyyzyi3x49k28ji7znbc65plrp67yzmpa2yyslh6bl965yl4jqb2fwb2ljzhgcvv2xxj8ab86n5rgryc6958s";
+        sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==";
+      };
+    };
+    "commander-3.0.2" = {
+      name = "commander";
+      packageName = "commander";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-3.0.2.tgz";
+        sha512 = "Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow==";
       };
     };
     "concat-map-0.0.1" = {
@@ -866,7 +902,7 @@ let
       version = "0.5.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz";
-        sha512 = "3976ggkw1lp21a6m3s19blb9a74kq7a0spw47v0m3vvi1k5wiamrsn20slcr9byx80x2la2sppkwjp7x10gc58142dl7412pvpv84qk";
+        sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==";
       };
     };
     "content-type-1.0.4" = {
@@ -875,7 +911,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
-        sha512 = "1f4y61wc913jrnga7nny83gzf9l2488q6sl1ry9lbwgh5x5d3va0xcc0xrmjk6gdxl6d4r6rsk800xp5bazhjrx05yx1wpc8c8gg0w4";
+        sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
       };
     };
     "cookie-0.4.0" = {
@@ -884,7 +920,7 @@ let
       version = "0.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz";
-        sha512 = "1g7bscknfpc6zgznz77hvll6cy5m9jv7zg9nkpdqzmgi0vhv75kh8iyqf6rdslkml47l3jihsz7hy0i8x5n6bfx9ba0kvvrp9y7qypq";
+        sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==";
       };
     };
     "cookie-signature-1.0.6" = {
@@ -902,7 +938,7 @@ let
       version = "2.6.11";
       src = fetchurl {
         url = "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz";
-        sha512 = "1db6yjq48a8kkrfrxd0miblcf7nk2b4afgpr8dfgjl3jvz3xclvrqmz590hx2h59jh79lgl35r101lw5jqs46qybizdbpgzljjyf277";
+        sha512 = "5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -938,7 +974,7 @@ let
       version = "2.6.9";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
-        sha512 = "0q0fsr8bk1m83z0am0h2xn09vyfcf18adscxms8hclznwks1aihsisd96h8npx0idq5wwnypnqrkyk25m5d9zh3dk7rjs29nybc8bkc";
+        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
       };
     };
     "debug-3.1.0" = {
@@ -947,7 +983,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz";
-        sha512 = "3g1hqsahr1ks2kpvdxrwzr57fj90nnr0hvwwrw8yyyzcv3i11sym8zwibxx67bl1mln0acddrzpkkdjjxnc6n2cm9fazmgzzsl1fzrr";
+        sha512 = "OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==";
       };
     };
     "debug-3.2.6" = {
@@ -956,7 +992,7 @@ let
       version = "3.2.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz";
-        sha512 = "1cyv14044rfh792n1hhsa44kk8dk95zk14w96i49gwq6g9wi6h9vn90xaragfy7rvggqvj178l5f16c78g47xgrwhjx3bp7zs6pxscr";
+        sha512 = "mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==";
       };
     };
     "decamelize-1.2.0" = {
@@ -974,7 +1010,7 @@ let
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz";
-        sha512 = "1rrbk0h0a836gj1x6lalzgqfs0v34d4fswq23c8lxzmb6k7pna45zd509h1r1fr312n4qml94xqlmzzga40sfa9vnzf6rkr4d1qh1zr";
+        sha512 = "+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==";
       };
     };
     "define-properties-1.1.3" = {
@@ -983,7 +1019,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz";
-        sha512 = "1fsa8nx7qgi958fykj36cndsf8ygj3132if6k4a36mkf11bl2j2gn7dn2nz07mfsygkx0415yxrjpzx8j369z1767fvr57nm1h9zjnw";
+        sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==";
       };
     };
     "delayed-stream-1.0.0" = {
@@ -1010,7 +1046,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz";
-        sha512 = "2phijq20j255bs4jjs11j5pa0x7y1084k6ch9xa8wgzp71zzgbpm23wyzbcs0mszvj971l9i5aav40sddm000484sl3ij4xzvlcgfc3";
+        sha512 = "g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==";
       };
     };
     "destroy-1.0.4" = {
@@ -1022,22 +1058,13 @@ let
         sha1 = "978857442c44749e4206613e37946205826abd80";
       };
     };
-    "diagnostics-1.1.1" = {
-      name = "diagnostics";
-      packageName = "diagnostics";
-      version = "1.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz";
-        sha512 = "0liin689xf3v7wxk1z5l1par3dyjkg487nk3siqn6b7zqxw2rd93rgw88ifsqwhv66s8d7qjxy8fjv4gxfgiwd69ryv573fcwzga2gk";
-      };
-    };
     "diff-3.5.0" = {
       name = "diff";
       packageName = "diff";
       version = "3.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz";
-        sha512 = "32bkv3cfhax4x5zhiyfn63wjhqwkzsjiql3my8p3d9hvv020p8f9hdi7mpqixrkpgs0g9k15mn736s449yad9wq1plhxyhxb2sam3h3";
+        sha512 = "A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==";
       };
     };
     "diff-4.0.2" = {
@@ -1046,7 +1073,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz";
-        sha512 = "3ndiq7a8qsn2j6vlq5c6d38ynlydlhvk6q01rj321lcarrh0z7721w6cbrdw7lkx6pyfms59y1jkqcl6g2ir1rz5xr17q40lk26djg7";
+        sha512 = "58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==";
       };
     };
     "ecc-jsbn-0.1.2" = {
@@ -1073,16 +1100,16 @@ let
       version = "7.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz";
-        sha512 = "2s4i22ccvwa2l4xwl9yz6mkyn2kpf58hp1nqiwmmgqlpyr57345i3ll0l4656ryik6a6wz1lgk4vbl6y0dwj5hx2kcbpv0h8924n00b";
+        sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==";
       };
     };
-    "enabled-1.0.2" = {
+    "enabled-2.0.0" = {
       name = "enabled";
       packageName = "enabled";
-      version = "1.0.2";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz";
-        sha1 = "965f6513d2c2d1c5f4652b64a2e3396467fc2f93";
+        url = "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz";
+        sha512 = "AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==";
       };
     };
     "encodeurl-1.0.2" = {
@@ -1094,22 +1121,13 @@ let
         sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
       };
     };
-    "env-variable-0.0.6" = {
-      name = "env-variable";
-      packageName = "env-variable";
-      version = "0.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz";
-        sha512 = "2v5v2dckp87kblfsmmyn76ky74yj2cvrv6kw1i7wlcidk2r7gnyhfil6i4zmw2qscgbsviv85x4840k7qgrkv8p6ssd8vj1v7sgjz3c";
-      };
-    };
-    "es-abstract-1.17.5" = {
+    "es-abstract-1.17.6" = {
       name = "es-abstract";
       packageName = "es-abstract";
-      version = "1.17.5";
+      version = "1.17.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz";
-        sha512 = "2kayciqh331d3kp1l8wdsp33kzdc02rv72z6x2327w2i6yks9b7xwxbg1xdrrkhaglr06liqzdjavq9qk9d487sf572rjfv62xml7q5";
+        url = "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.6.tgz";
+        sha512 = "Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==";
       };
     };
     "es-to-primitive-1.2.1" = {
@@ -1118,7 +1136,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
-        sha512 = "2y6j97j2f10gc52kw7qin10gm24m5hz1qq7ph6jf89y8a9i8vb268f2q0z78qjmngc765y9v0f1ldc5qb10b638yqlabda90sbaa8s0";
+        sha512 = "QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==";
       };
     };
     "escape-html-1.0.3" = {
@@ -1145,7 +1163,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz";
-        sha512 = "3xkdrhqvjj7430kp98pllh0yxbawxp4z1fnvbw5cawjr6mlbgyrd2v3b3kalrx3s515zc731a6ckmb10x9vaizf6sf4b5g84lndr72j";
+        sha512 = "UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==";
       };
     };
     "esprima-4.0.1" = {
@@ -1154,7 +1172,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
-        sha512 = "3h999di4dnwxb22lxlb7cbz42nalrv8g8sqdvrkkl5c27gnwhp1rva4039hmq6g1i0y4mfjgx6p4i2vwxxl0zlahfzdd9fl1qbqasvq";
+        sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
       };
     };
     "etag-1.8.1" = {
@@ -1172,7 +1190,7 @@ let
       version = "3.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.2.tgz";
-        sha512 = "3hv1mm8y1m0ayl0ds213ajdpc0xwalhi1iwvy2zdkg4kys5vdy97s8jz0sfvd91a3xwyy4946wmzk2lc1kpzww94pj307nmw8hm1yxn";
+        sha512 = "tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q==";
       };
     };
     "eventemitter3-4.0.4" = {
@@ -1181,7 +1199,7 @@ let
       version = "4.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.4.tgz";
-        sha512 = "2cj4h27lly85zb08gprjrkb92l8q8l1977704j7acj7rif052jiqap3l8d7zpdn9krqqi7if1f2cxp7f584045vr3l1pdviflp9ammf";
+        sha512 = "rlaVLnVxtxvoyLsQQFBx53YmXHDxRIzzTLbdfxqi4yocpSjAxXwkU0cScM5JgSKMqEhrZpnvQ2D9gjylR0AimQ==";
       };
     };
     "express-4.17.1" = {
@@ -1190,7 +1208,7 @@ let
       version = "4.17.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz";
-        sha512 = "3i2sxjf2x1r9wbfdyh5ll8ybbnqq6n4xfxdlc4dsqhssljrlih18csqg142lf16lcfcdgsmvf9pff0rzxjw7p0shnlmpajipwxpswlq";
+        sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==";
       };
     };
     "extend-3.0.2" = {
@@ -1199,7 +1217,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
-        sha512 = "3zad2109w3q3gh46s5msrnzfy2nl581sqpy20b52fs7v5pdjh3irpg7szl3xvh4sfy63218jy8ry6qlnir3baxbbfrb03swkw5swfky";
+        sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
       };
     };
     "extsprintf-1.3.0" = {
@@ -1211,13 +1229,13 @@ let
         sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
       };
     };
-    "fast-deep-equal-3.1.1" = {
+    "fast-deep-equal-3.1.3" = {
       name = "fast-deep-equal";
       packageName = "fast-deep-equal";
-      version = "3.1.1";
+      version = "3.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz";
-        sha512 = "1j7wq3vqvfgnpd2sjblnlgryxlic2fsy343fx8w4ywb2mngj1w5afq8fmly8cp9fi66dhz1fhcfpn23g5zasnzs6n1snb83qkkilhgi";
+        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+        sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
       };
     };
     "fast-json-stable-stringify-2.1.0" = {
@@ -1226,7 +1244,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
-        sha512 = "0gz06zkjlqc4r59ka14n3vwqjdgn40zd8r115ql3rkwqb7j42frmnsj3axr7p2md8ik52nqjn3myyv8ddavdhl4cq3xz4wbbz07y5wn";
+        sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
       };
     };
     "fast-safe-stringify-2.0.7" = {
@@ -1235,7 +1253,7 @@ let
       version = "2.0.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz";
-        sha512 = "1ab0spv3wadhidsh9x8qar1ryn7ahv308yzc5cl32wssk99rr7vrkcs00vn2kggz6drps08vk24gi9gmqpg39jd1rnaryykvh4vmnaj";
+        sha512 = "Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==";
       };
     };
     "fecha-2.3.3" = {
@@ -1244,7 +1262,16 @@ let
       version = "2.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz";
-        sha512 = "1v95kkfm8jnmrsplzk6zhsc2ngkvv2478pnvjnkl8z104b0mx3khf7xdps3dyi8d94kb73xcr5b2dmh58by9sirwcj0qk56hsf82hcm";
+        sha512 = "lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==";
+      };
+    };
+    "fecha-4.2.0" = {
+      name = "fecha";
+      packageName = "fecha";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz";
+        sha512 = "aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==";
       };
     };
     "file-stream-rotator-0.4.1" = {
@@ -1253,7 +1280,7 @@ let
       version = "0.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.4.1.tgz";
-        sha512 = "1jr6bdf22x3f4ql12ympal24yy1ggbxv5xl73ri70llghlcxr8wi9s8j40b5rf0h0sxm9m3g27qgck04aa5d7f9v19c0ws40bfrlxjv";
+        sha512 = "W3aa3QJEc8BS2MmdVpQiYLKHj3ijpto1gMDlsgCRSKfIUe6MwkcpODGPQ3vZfb0XvCeCqlu9CBQTN7oQri2TZQ==";
       };
     };
     "fill-range-7.0.1" = {
@@ -1262,7 +1289,7 @@ let
       version = "7.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz";
-        sha512 = "2jrai6ri6sni8xyi8yji49ai8vkczbbiw6pb3pd9bcdizb58ncgnhnfmghhw87flm8y96y2z16738lwdyshby665nv60ljcwwbkvsm8";
+        sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
       };
     };
     "finalhandler-1.1.2" = {
@@ -1271,7 +1298,7 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz";
-        sha512 = "1cfqk6g78cb12b1cki4pbcspsy40d0yny513myqji716njyhc5hrj7ll539kz96m6vn27168hhyqvd52cr5x1cs85mm7igfkrdrq1b8";
+        sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
       };
     };
     "find-up-3.0.0" = {
@@ -1280,7 +1307,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz";
-        sha512 = "2bg49lifm64h5jqjc20612wrx7cazw9np9ms02ys94kif4li8cp5in4rvmb1c1ssa8yhbsqkgprykkj4lf3jbz8qrgp1mf8c93gl86p";
+        sha512 = "1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==";
       };
     };
     "finity-0.5.4" = {
@@ -1289,7 +1316,7 @@ let
       version = "0.5.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/finity/-/finity-0.5.4.tgz";
-        sha512 = "3420xkd0dmzdspn9mf3c8hkgfm081kahfnnn03y27ahkdf5bm8slndl5ahmypqs11gnl34s7bcmvxy5lqc41x065rxavhvfbgzvjpyy";
+        sha512 = "3l+5/1tuw616Lgb0QBimxfdd2TqaDGpfCBpfX6EqtFmqUV3FtQnVEX4Aa62DagYEqnsTIjZcTfbq9msDbXYgyA==";
       };
     };
     "flat-4.1.0" = {
@@ -1298,7 +1325,16 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz";
-        sha512 = "0bj2zrb5x98lffdcjsvaf2hns9ih2jzj4dz9yg9k8zqrak4x0i93dvf01qp458mr6d1x4dsqsxc3ag00g2mskrr23h7x71kna4d67rz";
+        sha512 = "Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==";
+      };
+    };
+    "fn.name-1.1.0" = {
+      name = "fn.name";
+      packageName = "fn.name";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz";
+        sha512 = "GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==";
       };
     };
     "follow-redirects-1.5.10" = {
@@ -1307,7 +1343,7 @@ let
       version = "1.5.10";
       src = fetchurl {
         url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz";
-        sha512 = "1alfnscb0lnmf1ka8d5jrp48bizkbqrdz616r7q9yv4afqadlli1xmmf7lsvany1kmmnmwpvhbgx70mvcsnjf1ywjnzmkmk53h6apni";
+        sha512 = "0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==";
       };
     };
     "forever-agent-0.6.1" = {
@@ -1325,7 +1361,7 @@ let
       version = "2.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz";
-        sha512 = "0jj3hgqp9pmxmfavx6rvdfl3r4yf98clpsarqadz3hq0dxhjlh2ppd9x8bvmaq3nwjdqpdvqx25pwyin4ipixhgsn7s3p9fcc3wllnn";
+        sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==";
       };
     };
     "form-data-2.5.1" = {
@@ -1334,7 +1370,7 @@ let
       version = "2.5.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/form-data/-/form-data-2.5.1.tgz";
-        sha512 = "1aa6m5c13kybvcycjdyhr0qbb7097qs7kah89bbhynjs9r5fl6ibbhscpin31nshzhw5nszw5c6x10krrig90afh88la456cgflsvcv";
+        sha512 = "m21N3WOmEEURgk6B9GLOE4RuWOFf28Lhh9qGYeNlGq4VDXUlJy2th2slBNU8Gp8EzloYZOibZJ7t5ecIrFSjVA==";
       };
     };
     "forwarded-0.1.2" = {
@@ -1370,7 +1406,7 @@ let
       version = "2.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz";
-        sha512 = "2wj74g6h0wq34x3d4ncr7h3jkv1fdznmqpd4wdb1jfaz0icha7h65jq8sq6y6n3bc0i0z6w577z7hq4yiz8y7v5yid6ma9ih1mkvv02";
+        sha512 = "Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==";
       };
     };
     "function-bind-1.1.1" = {
@@ -1379,7 +1415,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
-        sha512 = "38chm1mh077ksx6hy2sssfz4q29hf0ncb9k6ila7si54zqcpl5fxd1rh6wi82blqp7jcspf4aynr7jqhbsg2yc9y42xpqqp6c1jz2n8";
+        sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
       };
     };
     "generate-function-2.3.1" = {
@@ -1388,7 +1424,7 @@ let
       version = "2.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz";
-        sha512 = "0lp1r8njdds2dp6nd5drc8f3xhg0bishvbn8g54s9ka42yss4lvq84sg465vgb2bw45kww8r4cilsw629nsnn34zkkfny8dyccpkq3r";
+        sha512 = "eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==";
       };
     };
     "generate-object-property-1.2.0" = {
@@ -1406,7 +1442,7 @@ let
       version = "2.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz";
-        sha512 = "0b7da6kb3xqk26cw4i6kb1lk911z06z53if2g8l23hmfpbhl6vfbn8iip55j1yplbqnly2abb9d349r6ky2z570839q3p9z2gf4y88g";
+        sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
       };
     };
     "get-func-name-2.0.0" = {
@@ -1433,7 +1469,7 @@ let
       version = "7.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz";
-        sha512 = "30h0j9f3xj7mwciwmi9q9ilhlc0l391jrvv0xws0yxgh389ynin3qqrw8xiyfy5w3f667bwn9p0i3f01s2ir0ai1rwbb038ij4fxixx";
+        sha512 = "vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==";
       };
     };
     "glob-parent-5.1.1" = {
@@ -1442,7 +1478,7 @@ let
       version = "5.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz";
-        sha512 = "1hi3ypyic536qm0jd2aw65wbaian4vxmgsnprw6p1mdfd75ks5x1mrgkgzl41xr6hnav27fqzpm227rj7qq8vcwb63m37m9cda3wwhn";
+        sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==";
       };
     };
     "growl-1.10.5" = {
@@ -1451,7 +1487,7 @@ let
       version = "1.10.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz";
-        sha512 = "146i7if4fjml1p6xw1ybb7vm22k6i8yc7r8wcw8yia7qy385w1s6j18ip91g5mv47zvv5fw5m8kpzlaayjs183fkpg174hbw4xgh6m8";
+        sha512 = "qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==";
       };
     };
     "har-schema-2.0.0" = {
@@ -1469,7 +1505,7 @@ let
       version = "5.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz";
-        sha512 = "3kaldgfsh3lfvgvw31s8b7q345zf7ixjahllncdckcw6qfs3gnbsamdxgs9kfigq7rwmja7v51ghh7y0rsp6q7jmvmbydhh645wxnxh";
+        sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==";
       };
     };
     "has-1.0.3" = {
@@ -1478,7 +1514,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/has/-/has-1.0.3.tgz";
-        sha512 = "37vh53c11hws66navka0w9xxm6rcr034bxpyvaldiqz1msafqf0jpi1aqxbaygs53arz9y510qg6dl6vrm285hrxniygs2l8lxnyrvz";
+        sha512 = "f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==";
       };
     };
     "has-flag-3.0.0" = {
@@ -1496,7 +1532,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz";
-        sha512 = "0mb9d5yqvznqmq073hdc4wl7175niiqpkpb7iqqv8p0q6xgmrhfap9ni6iwrx44w8p9vyg8n3zsllil5pdflzlh462dkydymfi2rdrw";
+        sha512 = "PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==";
       };
     };
     "he-1.2.0" = {
@@ -1505,7 +1541,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz";
-        sha512 = "0dwml2q9r97ga11qbbn5sb46v4g47lx174dz9g1jgxpycknhg1d5dlsij2vja905p8h243jj51hfa5cmzh8n9rdcs8r78lg86fl7z8p";
+        sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
       };
     };
     "http-errors-1.7.2" = {
@@ -1514,7 +1550,7 @@ let
       version = "1.7.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz";
-        sha512 = "13c4825kzqlxdqfjrlrwh15ira0bjm9m3b8qcrfzaysiky1m3gb6dv6gcjgpnap9mbl0fajqiibzp1w5r8qnyn8glaj4wgzf6vh2i5r";
+        sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==";
       };
     };
     "http-signature-1.2.0" = {
@@ -1532,7 +1568,7 @@ let
       version = "0.4.24";
       src = fetchurl {
         url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
-        sha512 = "2n3ygx6km56rdcd5kq52bs2113xqm3vlw2kb9r7pnmxd2qhxrfahp2ngc4w7x8x76fyfpapnixnbjq1i24nc11mj6q7rghwj2fifwxz";
+        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
       };
     };
     "immediate-3.0.6" = {
@@ -1568,7 +1604,7 @@ let
       version = "1.9.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
-        sha512 = "3gcwhv1wa2hb1vljlcmzhvzliks9rj7nzsw165vgy69jakw8g55ky474mj4j41vfbid8viy9nhwn9kx8pfqrikyl29i98zi9vmkz8nh";
+        sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
       };
     };
     "is-arrayish-0.3.2" = {
@@ -1577,7 +1613,7 @@ let
       version = "0.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz";
-        sha512 = "1cmy0k81vgz5z55rdyxfnx307053ksyp1lfgyj5jldkqqzmkx1z2k63fvzn7lgj8wdakmsa1mw408rm5xxfpk3avjqbnrb5yl56lm3r";
+        sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==";
       };
     };
     "is-binary-path-2.1.0" = {
@@ -1586,7 +1622,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz";
-        sha512 = "1gldm4swvg3612pg55yjza8dvpv4daf374dijjg8kcmndlq55933pdd7gw4gq4c2aa5fn9vnasz3h9spg3pd8p1rafkr91sxdhi3hb4";
+        sha512 = "ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==";
       };
     };
     "is-buffer-2.0.4" = {
@@ -1595,16 +1631,16 @@ let
       version = "2.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz";
-        sha512 = "3c1f1cy2867lfdcfxpy91qxbjxizlwa2dhz3mgckg17xd4xcx284ylzvfk3v7l6mdynrk7xc2rg31avi6caj053p7bgaf4p8ni6pb9a";
+        sha512 = "Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==";
       };
     };
-    "is-callable-1.1.5" = {
+    "is-callable-1.2.0" = {
       name = "is-callable";
       packageName = "is-callable";
-      version = "1.1.5";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz";
-        sha512 = "3wmff73yzck45x5shydqswbww8zkl03i43yhy7mm6av9770yvd2gj7xfrc8f45fw2ncn7mwblxvxlcap5rngmklkjiis902qgkay8hi";
+        url = "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz";
+        sha512 = "pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==";
       };
     };
     "is-date-object-1.0.2" = {
@@ -1613,7 +1649,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz";
-        sha512 = "39f971gzwirnxjw4b72c175nbn1hnmrn1wljvbzvxv69hw9vpialhjafh9nkh0g3p26a49zss3rr7pxfww1f6day4s89hmqkm7l6aai";
+        sha512 = "USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==";
       };
     };
     "is-extglob-2.1.1" = {
@@ -1640,7 +1676,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
-        sha512 = "19c23n8r8rfbz5rgs5csbjbpwgxvwi7y6kpsvlylgs2v1r1z2zm18qzzz2g8vnnwaldn5c4qalpc6p88rl0gjrrm278j52ks0m2svg4";
+        sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
       };
     };
     "is-my-ip-valid-1.0.0" = {
@@ -1649,7 +1685,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz";
-        sha512 = "1lnwwykigbkg3yqmr61cyiplxfdvpchcsi1fz67jwn55gvdrl597jpsd6jds205gjkn8c3zxbqmppmf3danpj0rrla7ffnicmwpys42";
+        sha512 = "gmh/eWXROncUzRnIa1Ubrt5b8ep/MGSnfAUI3aRp+sqTCs1tv1Isl8d8F6JmkN3dXKc3ehZMrtiPN9eL03NuaQ==";
       };
     };
     "is-my-json-valid-2.20.0" = {
@@ -1658,7 +1694,7 @@ let
       version = "2.20.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.20.0.tgz";
-        sha512 = "005dmrjrjkysq1ggcr34y7610cxy29gjkx91cv6lxl4gzk6hm9qmdqbbsx5qbcfd9b5vck824wgzk4pg5qfvq4mn44dpi0849jw2cax";
+        sha512 = "XTHBZSIIxNsIsZXg7XB5l8z/OBFosl1Wao4tXLpeC7eKU4Vm/kdop2azkPqULwnfGQjmeDIyey9g7afMMtdWAA==";
       };
     };
     "is-number-7.0.0" = {
@@ -1667,7 +1703,7 @@ let
       version = "7.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz";
-        sha512 = "2g7332xqrb0cm36cn6rwdmgq7sllf9w19sf6jy4w0s4vgqdq1kngsnpz0z49i3vnknk8ms442yjllrdbqxbap9ajprc8yrs91za4l73";
+        sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
       };
     };
     "is-property-1.0.2" = {
@@ -1679,13 +1715,13 @@ let
         sha1 = "57fe1c4e48474edd65b09911f26b1cd4095dda84";
       };
     };
-    "is-regex-1.0.5" = {
+    "is-regex-1.1.0" = {
       name = "is-regex";
       packageName = "is-regex";
-      version = "1.0.5";
+      version = "1.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz";
-        sha512 = "1hqaalcf1yqll2yzm71a1axvid0x87jp41hyicw16rl12rrh6sp6srr9lk7wxm6a1vl3ypw8qyd0imbq8fl2h7yq8l8xawdnkbrclmy";
+        url = "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz";
+        sha512 = "iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==";
       };
     };
     "is-stream-1.1.0" = {
@@ -1697,13 +1733,22 @@ let
         sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
       };
     };
+    "is-stream-2.0.0" = {
+      name = "is-stream";
+      packageName = "is-stream";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz";
+        sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
+      };
+    };
     "is-symbol-1.0.3" = {
       name = "is-symbol";
       packageName = "is-symbol";
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz";
-        sha512 = "1lmzzy2360gfg5639x8mzi5fpc1bgpdx0ffjlqaz9affd0lvvpi7yjwk15jsm1y1l8rf5jahyapv6rm2w3p86gxkghsp0jjlj2s621v";
+        sha512 = "OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==";
       };
     };
     "is-typedarray-1.0.0" = {
@@ -1748,7 +1793,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz";
-        sha512 = "0lwyvximqkf1q5w94x2747nj2v035is66vzalrbl3f2gdh9k1m3m29p8zw6r65ps5784x2lxwz8akmv085l4ai358rwbp84axz59lj5";
+        sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
       };
     };
     "js-yaml-3.13.1" = {
@@ -1757,7 +1802,16 @@ let
       version = "3.13.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz";
-        sha512 = "0kkjjrr0znm2ka89ywc5518c8dw0210z91fm94c7v11l8c96mkjh0ddld5mb7jmmnpzap7vn0fhvr29lma63c9is2ixq3fpp0xxrxk1";
+        sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==";
+      };
+    };
+    "js-yaml-3.14.0" = {
+      name = "js-yaml";
+      packageName = "js-yaml";
+      version = "3.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz";
+        sha512 = "/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==";
       };
     };
     "jsbn-0.1.1" = {
@@ -1784,7 +1838,7 @@ let
       version = "0.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
-        sha512 = "1bbgxs4777gn3q3yxi0n792cgz9pimf85pypr0w4wzpb22nr8fl9xi98pkcqd3n4fn7lnzffpq7qwpcl4dqc15py19lwqa2jwgw5dn5";
+        sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
       };
     };
     "json-stringify-safe-5.0.1" = {
@@ -1814,13 +1868,13 @@ let
         sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
       };
     };
-    "kuler-1.0.1" = {
+    "kuler-2.0.0" = {
       name = "kuler";
       packageName = "kuler";
-      version = "1.0.1";
+      version = "2.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz";
-        sha512 = "20zvfs0bqxvpjlp6kx2fhafnldxfv36dqcac42qng3x9kh25vqy4w6910fs63p5d56yjghbrn36niix6wsyi9dbj3n9zmh6wx9dbn97";
+        url = "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz";
+        sha512 = "Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==";
       };
     };
     "lie-3.1.1" = {
@@ -1832,13 +1886,13 @@ let
         sha1 = "9a436b2cc7746ca59de7a41fa469b3efb76bd87e";
       };
     };
-    "localforage-1.7.3" = {
+    "localforage-1.7.4" = {
       name = "localforage";
       packageName = "localforage";
-      version = "1.7.3";
+      version = "1.7.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/localforage/-/localforage-1.7.3.tgz";
-        sha512 = "20hynm98vq3srgz2h48290n0x06drf8avxm73rnqhkh036v5s5x2kk3phm2551p0zy3bh9hp5cjr6f0mwyhb4j0xi9fgqnwhz4safym";
+        url = "https://registry.npmjs.org/localforage/-/localforage-1.7.4.tgz";
+        sha512 = "3EmVZatmNVeCo/t6Te7P06h2alGwbq8wXlSkcSXMvDE2/edPmsVqTPlzGnZaqwZZDBs6v+kxWpqjVsqsNJT8jA==";
       };
     };
     "locate-path-3.0.0" = {
@@ -1847,7 +1901,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz";
-        sha512 = "3jbllbkvv54d6k6zss6spzsknz5icscyfclf377jjpndb8mmacq0v9vjr1w07zjn14gaz4d2hfi0yaqk4nvg6hbm16qi70nrkivn0zc";
+        sha512 = "7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==";
       };
     };
     "lodash-4.17.15" = {
@@ -1856,7 +1910,7 @@ let
       version = "4.17.15";
       src = fetchurl {
         url = "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz";
-        sha512 = "3a41cs1932x00vd7h32v6rfkaak3vhkwv4x0bg27ilhlmbpl95r3abc4vja21k42cdfprsy3sdfcp2xs02sfp1fflf7m3n2gd29q4zk";
+        sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==";
       };
     };
     "lodash.toarray-4.4.0" = {
@@ -1874,7 +1928,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz";
-        sha512 = "2fmk82kxm1wkgm5kgxx84nsf7pvyspj47axslj3sfcyx69hx1vymrgbqj00jfnmrjc80wb87xs3kyfa37k55wzhgvk6v21vw8d0sabm";
+        sha512 = "dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==";
       };
     };
     "logform-1.10.0" = {
@@ -1883,16 +1937,16 @@ let
       version = "1.10.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz";
-        sha512 = "1d27lbbzad8mj23z63lca3z7y2mjwnzdcrj2zpvcdid78ds12jyc349g1yc0naxbqrl3cz2cw9lprhgwryxygzc634cgmsli266hvks";
+        sha512 = "em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg==";
       };
     };
-    "logform-2.1.2" = {
+    "logform-2.2.0" = {
       name = "logform";
       packageName = "logform";
-      version = "2.1.2";
+      version = "2.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/logform/-/logform-2.1.2.tgz";
-        sha512 = "36z0bhkyb62pjrzaff6vpig94lzbaah80iq2hpy4pb49lkhxfawjlx9j8mw168wv33mb7i3lgl2xm2q82x0rc1qm95k0i24xbh62mps";
+        url = "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz";
+        sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==";
       };
     };
     "loglevel-1.6.8" = {
@@ -1901,7 +1955,7 @@ let
       version = "1.6.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz";
-        sha512 = "044sm3k7yyjzkbvzw2fgqqxdbd7z7gwqsi4sz03kb9cagpnr4jn2gfsxkfrdn4m1gnxd7n0rjbrvxymzr6w3wcwma99s01x0zx3pibf";
+        sha512 = "bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA==";
       };
     };
     "make-error-1.3.6" = {
@@ -1910,7 +1964,7 @@ let
       version = "1.3.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz";
-        sha512 = "2glh9fqac2bycfy6gmvv1r03pr484iglvv5ry3pjm6iz43h6qnkkw2l4sz9ydyadq6hip4wyjpj9jllbshxchh8k6lg5g5vsya23idk";
+        sha512 = "s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==";
       };
     };
     "matrix-appservice-0.4.1" = {
@@ -1919,7 +1973,7 @@ let
       version = "0.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/matrix-appservice/-/matrix-appservice-0.4.1.tgz";
-        sha512 = "0l9avxiihfhkrlwsibbl641ic15lc4gbfzs8zgrsssnlifzmbaz547yng8862rg65rp77gdyw427hci4jz7ssz1x3lxzg6ff3syn4cv";
+        sha512 = "mxHr9XDOvN/p6OFrfb4kkcEjCPftnXNzMS8Lg9Cz/pDy1arfRWq11vl9pL9bjzBaAouBGLpW1JzmCR2MsW+VKA==";
       };
     };
     "matrix-appservice-bridge-1.12.2" = {
@@ -1928,7 +1982,7 @@ let
       version = "1.12.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/matrix-appservice-bridge/-/matrix-appservice-bridge-1.12.2.tgz";
-        sha512 = "1avi6wrbnajmrf8il54w8zzb9ghvyqm8b09k2l2x009ixhrb1sj8k5yw5qnx03p640llnfsv2qch492vncwij40qxkh9q72qbagfq3h";
+        sha512 = "cGD31MLi4ARnx4DIyJndIhHIsNjaWUoBMXeAbnHhvkwkdVgZ9pgA6IKKmcBCFfsNX1r/I04KjcjlKpVdmZu4VQ==";
       };
     };
     "matrix-js-sdk-2.4.6" = {
@@ -1937,7 +1991,7 @@ let
       version = "2.4.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/matrix-js-sdk/-/matrix-js-sdk-2.4.6.tgz";
-        sha512 = "110nkrnw1667nkd00z3j6bgsl3pyvx2al4iffipy7phz88b3c7l6n2r1agd1qqxvyk7ay75ir4ycw9kr7zlxjcy9kd5hq00dkhkmmf9";
+        sha512 = "ydU64WwAYFjaTJ7JTv/JM3HmSY7leHWm3x3j0J4KWVhDDxsLoQ/v8Tc6FwlVom9/B9VvGTk+AG3aY0zgNk8LQg==";
       };
     };
     "media-typer-0.3.0" = {
@@ -1973,7 +2027,7 @@ let
       version = "1.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz";
-        sha512 = "1x901mk5cdib4xp27v4ivwwr7mhy64r4rk953bzivi5p9lf2bhw88ra2rhkd254xkdx2d3q30zkq239vc4yx4pfsj4hpys8rbr6fif7";
+        sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
       };
     };
     "mime-db-1.44.0" = {
@@ -1982,7 +2036,7 @@ let
       version = "1.44.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz";
-        sha512 = "2k6dwvka8mhl2jrx9zhc926nvifn7jpi4fcwjr3gdqik53ifzn67h986p9wcdd4qpc3hjmqpywdwssm5kw18bdn3xg1ag7cp9y97lzw";
+        sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
       };
     };
     "mime-types-2.1.27" = {
@@ -1991,7 +2045,7 @@ let
       version = "2.1.27";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz";
-        sha512 = "3pyj0i5wygq13w5i5i2ksjwrragi0p1dybqd5lvcd0gx21jxx1i1r567dbxklh9p50pwhaxwq9d4507hymr49ibz61xq8xc4sf6m214";
+        sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
       };
     };
     "minimatch-3.0.4" = {
@@ -2000,7 +2054,7 @@ let
       version = "3.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
-        sha512 = "1879a3j85h92ypvb7lpv1dqpcxl49rqnbgs5la18zmj1yqhwl60c2m74254wbr5pp3znckqpkg9dvjyrz6hfz8b9vag5a3j910db4f8";
+        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
       };
     };
     "minimist-1.2.5" = {
@@ -2009,7 +2063,7 @@ let
       version = "1.2.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
-        sha512 = "0pif0kjsr0cdm73cyicn9xdx9zkly45w4akmyfa39lkaf6lzysfr8kr145p54wjk26pbsk0w0qfdds3k4bxy4wl5l210i1b8qsngkql";
+        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
       };
     };
     "mkdirp-0.5.5" = {
@@ -2018,25 +2072,25 @@ let
       version = "0.5.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz";
-        sha512 = "32zxwnp110xb9sm0w7xdr51v2zj4k0b07yq702phnac2l8c91mxw6va27y193m42nvnw5dhby2jzg3b24fzjzkdr8337slz8ja81a9l";
+        sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
       };
     };
-    "mocha-7.1.2" = {
+    "mocha-7.2.0" = {
       name = "mocha";
       packageName = "mocha";
-      version = "7.1.2";
+      version = "7.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mocha/-/mocha-7.1.2.tgz";
-        sha512 = "0j821z4q3x7gz52pwp0ccpwmrw4k67x07njcpbnzgiij7dnmbwvsnkbg7h7ylyhhlk9xhccbn9hr12vx9vqw6sdy728sa4c29ss9pm3";
+        url = "https://registry.npmjs.org/mocha/-/mocha-7.2.0.tgz";
+        sha512 = "O9CIypScywTVpNaRrCAgoUnJgozpIofjKUYmJhiCIJMiuYnLI6otcb1/kpW9/n/tJODHGZ7i8aLQoDVsMtOKQQ==";
       };
     };
-    "moment-2.25.3" = {
+    "moment-2.27.0" = {
       name = "moment";
       packageName = "moment";
-      version = "2.25.3";
+      version = "2.27.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/moment/-/moment-2.25.3.tgz";
-        sha512 = "1v4vcj4k5s10qp4b8r46xib1h9klyqv5y31da7w46i769dbgliqp7ff5yd6pxmfp37ghnlgkk33x10ashkg7aclszfgqrpiy782zriy";
+        url = "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz";
+        sha512 = "al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==";
       };
     };
     "morgan-1.10.0" = {
@@ -2045,7 +2099,7 @@ let
       version = "1.10.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz";
-        sha512 = "1fzbmlpmyqjjnff6sjxk5h2ffib2ldzziy9x5k6200az86l7z9gqag28s6brw9yg2q7w0yjp69ir0p5qc5kfq7djy21xciqa82s1dq1";
+        sha512 = "AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==";
       };
     };
     "ms-2.0.0" = {
@@ -2063,7 +2117,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz";
-        sha512 = "352z145jr1zx0w6kmlz2jxcaw6j2pwwg9va3x4gk731zw1agka2b213avw12zx6hgn071ibm0f3p80n5cdv896npay4s6jwbrv7w2mn";
+        sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
       };
     };
     "ms-2.1.2" = {
@@ -2072,7 +2126,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
-        sha512 = "3dqfiiw6nxvvi24fndbzlccnjcas99bsd1kz5m2r78lzgpp6vx57jzbmxq3k1m7bsw88rwra0n4848l720fxxn5x20djck3wp3hysdh";
+        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
       };
     };
     "nedb-1.8.0" = {
@@ -2090,7 +2144,7 @@ let
       version = "0.6.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
-        sha512 = "0xi79rad0khwah5v2k6pvh8ajjgi7hp3zlkg6gk11pv70ydcq7li0kzcv1gnaf13gmblzhvx7hxs2nhypphb0sp4cggiy4ympndr5c5";
+        sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
       };
     };
     "node-emoji-1.10.0" = {
@@ -2099,7 +2153,7 @@ let
       version = "1.10.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz";
-        sha512 = "2zkcpjx5cbyc76hfkbldxgkkcs4cns9n7fqfnc2cxh3fsw1dr7zgbhh5pczvg34yclih7ja68xpvvrg2dy8hiv5c20pxr0zhbrzgpb2";
+        sha512 = "Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==";
       };
     };
     "node-environment-flags-1.0.6" = {
@@ -2108,7 +2162,7 @@ let
       version = "1.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.6.tgz";
-        sha512 = "0gis4xp1wacn31j3p8vdd32ykzs2pskf8pgfjkm092zcx72v03dphpsayrls8bmmi91s6ic4718lgi28mm40hj96f9ywbvfxbcz4jz4";
+        sha512 = "5Evy2epuL+6TM0lCQGpFIj6KwiEsGh1SrHUhTbNX+sLbBtjidPZFAnVK9y5yU1+h//RitLbRHTIMyxQPtxMdHw==";
       };
     };
     "nopt-3.0.6" = {
@@ -2126,7 +2180,16 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz";
-        sha512 = "0n301s7qa4645iyk3zpcgin8r19p0p8h8g50c3mnnrl9n3m9rpyxv79hjl6miix9daq12s69am1sbskhqnzbabmn2id0nippgj6rrp9";
+        sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
+      };
+    };
+    "nunjucks-3.2.1" = {
+      name = "nunjucks";
+      packageName = "nunjucks";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.1.tgz";
+        sha512 = "LYlVuC1ZNSalQQkLNNPvcgPt2M9FTY9bs39mTCuFXtqh7jWbYzhDlmz2M6onPiXEhdZo+b9anRhc+uBGuJZ2bQ==";
       };
     };
     "oauth-sign-0.9.0" = {
@@ -2135,7 +2198,7 @@ let
       version = "0.9.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz";
-        sha512 = "1jz644r7ybsq688ifahm64ih3ljqjjskm533bgir20pvc350f9cl0z162scih0r1idx8lpw5f8hxa2pkf0lhbdhr5y6ak2ga5863v3x";
+        sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
       };
     };
     "object-hash-1.3.1" = {
@@ -2144,16 +2207,16 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz";
-        sha512 = "06crm6ynp4rxakk4frrb4kjmi758r38fs5h0f6b7giyxhj0dghb6mdx7sbp0nhnk2w8cyb1bli07d9nbm086i34j8yx641qjpzawarr";
+        sha512 = "OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==";
       };
     };
-    "object-inspect-1.7.0" = {
+    "object-inspect-1.8.0" = {
       name = "object-inspect";
       packageName = "object-inspect";
-      version = "1.7.0";
+      version = "1.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz";
-        sha512 = "19lmsxagwl8zzqckw6p0bdjwjbq2bshicnw78az9ka40d0gjghmdm0ify1n3857fxadv43c6v0g27rk1dl514iwh40a5i3mv0fl9fkb";
+        url = "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz";
+        sha512 = "jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==";
       };
     };
     "object-keys-1.1.1" = {
@@ -2162,7 +2225,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz";
-        sha512 = "0nf2rr25ncya39v7cq274x3w4drfbdrc3iqdwd017s1wndwh9plsjagbvhl6j6l6piipprdsvgfx4vfz8q2piz7bi4bjcll8d4h9q1n";
+        sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==";
       };
     };
     "object.assign-4.1.0" = {
@@ -2171,7 +2234,7 @@ let
       version = "4.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz";
-        sha512 = "3krdp08gvbxvipalq64qy7bm86znxxdb7ap6bjki235qs17i9fsn6hqd22ga31sqyqa6iyy5xjfnnqc7lsck1kaybwsh154mrxcj4bv";
+        sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==";
       };
     };
     "object.getownpropertydescriptors-2.1.0" = {
@@ -2180,7 +2243,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz";
-        sha512 = "1b08dy2xs3gqhwviks5245b0m3fa6kkdcqi8wldr5cfvkpgwbvdx474k9y5cjnsf2z075gysifxsc39i59fslxrl55kgpa03xmcx7b7";
+        sha512 = "Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==";
       };
     };
     "on-finished-2.3.0" = {
@@ -2198,7 +2261,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz";
-        sha512 = "2n6994y8y4b146a5wpzzgw779yc227cqkmwsifc3fbn2kc9dzypjigqf72bpgsqrk7gs93l6fk4iqdk752jnsnpr89j58sbabw09455";
+        sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==";
       };
     };
     "once-1.4.0" = {
@@ -2210,13 +2273,13 @@ let
         sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
       };
     };
-    "one-time-0.0.4" = {
+    "one-time-1.0.0" = {
       name = "one-time";
       packageName = "one-time";
-      version = "0.0.4";
+      version = "1.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz";
-        sha1 = "f8cdf77884826fe4dff93e3a9cc37b1e4480742e";
+        url = "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz";
+        sha512 = "5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==";
       };
     };
     "p-cancelable-1.1.0" = {
@@ -2225,7 +2288,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz";
-        sha512 = "2bmkd9ncr81p8w6jy9v676ajg9q27znbjk80r723ydvf8gxk000q13693dhbd22dcagrmhwyjxblmm8w4xnfn6ng5srpkkqwv2dggdk";
+        sha512 = "s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==";
       };
     };
     "p-finally-1.0.0" = {
@@ -2243,7 +2306,7 @@ let
       version = "2.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
-        sha512 = "3mmng2h8sji2ah2j3f5gf0c26j2cmfwwqwck4kbpm8srxllwa8q1fd8jayhrk4f46g6zmw14lrzd4jc04079w1cqhjiy9wjanc3rzzz";
+        sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
       };
     };
     "p-locate-3.0.0" = {
@@ -2252,7 +2315,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz";
-        sha512 = "14sa2r3zdhvy3sq757d4l21nxrlb7picyigb8zm956bbjadcv22chrfa95wzzrf28z0cyj62b6yihhdc9508q82gs2q3yz8yk1pdvf7";
+        sha512 = "x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==";
       };
     };
     "p-queue-2.4.2" = {
@@ -2261,7 +2324,7 @@ let
       version = "2.4.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-queue/-/p-queue-2.4.2.tgz";
-        sha512 = "2gg2x51sw9m0zkdwnjpl5qldvapn19wkyf8zam8gzh2s77xnxcbxvvdhdhadavg4dcp6h1v68ni19kdbci1kd875pl1ih6943xz5kwz";
+        sha512 = "n8/y+yDJwBjoLQe1GSJbbaYQLTI7QHNZI2+rpmCDbe++WLf9HC3gf6iqj5yfPAV71W4UF3ql5W1+UBPXoXTxng==";
       };
     };
     "p-queue-6.4.0" = {
@@ -2270,7 +2333,7 @@ let
       version = "6.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-queue/-/p-queue-6.4.0.tgz";
-        sha512 = "13h8pdq8v2smhrh39bf4ks1z8cdik8qcv2df1wj3bxgs3k090sxccxxg9q1qjj120lvs1ki6cj9rc9aapqdyb95zk8v5ych333mvdsz";
+        sha512 = "X7ddxxiQ+bLR/CUt3/BVKrGcJDNxBr0pEEFKHHB6vTPWNUhgDv36GpIH18RmGM3YGPpBT+JWGjDDqsVGuF0ERw==";
       };
     };
     "p-retry-4.2.0" = {
@@ -2279,7 +2342,7 @@ let
       version = "4.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-retry/-/p-retry-4.2.0.tgz";
-        sha512 = "2cdd5shqcldjwsdr9wiccvsx1f27mx7lblp872mlm16kwamgy83swzwq5w9hlr98qwbzswldxp4jq9q9l0d6am752vnx1qiygrzgwcc";
+        sha512 = "jPH38/MRh263KKcq0wBNOGFJbm+U6784RilTmHjB/HM9kH9V8WlCpVUcdOmip9cjXOh6MxZ5yk1z2SjDUJfWmA==";
       };
     };
     "p-timeout-3.2.0" = {
@@ -2288,7 +2351,7 @@ let
       version = "3.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz";
-        sha512 = "03cbpzps5mxhlp6hywp92mnnrj4b6ag82f8vdqyz59xrxsrpn58qbh8nzrpiix2asj2d333i81aq0pw9bhki4yw7yf05hr04x9k04mf";
+        sha512 = "rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg==";
       };
     };
     "p-try-2.2.0" = {
@@ -2297,7 +2360,7 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
-        sha512 = "1skmb50xzdk3qzd1f9l5mw8xp29frkizl63bhb9l1amivqybqb23n2824906vx790hjlwyhhrfzpzr5xr6ilzvy1xyl0ly0ah0wz2a7";
+        sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
       };
     };
     "packet-reader-1.0.0" = {
@@ -2306,7 +2369,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz";
-        sha512 = "1fkk6mw49b8mqs4rghv7bwpyvgj3qkcj4qz8zkrwcw0xcwg7q0cdd1w17i962ppxl3d6rss2a03ws5b7ihz20207g2r27mpy7ysw0hw";
+        sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ==";
       };
     };
     "parseurl-1.3.3" = {
@@ -2315,7 +2378,7 @@ let
       version = "1.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
-        sha512 = "2lzxqjq4zp60k9gbskpqz7pr1yvb0c6nygd42sia7n6km2gc0cc844nlc5d6r9sshrjhjvs284143jzvz9wzd4r6xr9dz2k24xrwb0a";
+        sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
       };
     };
     "path-exists-3.0.0" = {
@@ -2342,7 +2405,7 @@ let
       version = "1.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
-        sha512 = "37qw5986wccpwwqckqky509s4nd6zwv200s9r2v6mcf5nsyxgf2x00m4yp918mkkz84sdh4q0kjbg0hhfq4flpz0l6v47hvc57qwa8r";
+        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
       };
     };
     "path-to-regexp-0.1.7" = {
@@ -2372,22 +2435,22 @@ let
         sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
       };
     };
-    "pg-8.1.0" = {
+    "pg-8.2.1" = {
       name = "pg";
       packageName = "pg";
-      version = "8.1.0";
+      version = "8.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg/-/pg-8.1.0.tgz";
-        sha512 = "19rxgl1nvww0s9csajl3j2q04j6gw6wnlbnpq4z7scayycs7721rfga1qmgmlaxkvh3fap43qqrirsxh6wj2q31fgnkqq66si49g7r6";
+        url = "https://registry.npmjs.org/pg/-/pg-8.2.1.tgz";
+        sha512 = "DKzffhpkWRr9jx7vKxA+ur79KG+SKw+PdjMb1IRhMiKI9zqYUGczwFprqy+5Veh/DCcFs1Y6V8lRLN5I1DlleQ==";
       };
     };
-    "pg-connection-string-2.2.2" = {
+    "pg-connection-string-2.2.3" = {
       name = "pg-connection-string";
       packageName = "pg-connection-string";
-      version = "2.2.2";
+      version = "2.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.2.2.tgz";
-        sha512 = "2masbrlwl4dan6y1qp1scs1y7j4qblmvdf006wslc1kj90zh2ipcqwqlmaqad1wr7dnlap7s6hybrcbn85r884w16ir0jdf67haa5zs";
+        url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.2.3.tgz";
+        sha512 = "I/KCSQGmOrZx6sMHXkOs2MjddrYcqpza3Dtsy0AjIgBr/bZiPJRK9WhABXN1Uy1UDazRbi9gZEzO2sAhL5EqiQ==";
       };
     };
     "pg-int8-1.0.1" = {
@@ -2396,43 +2459,43 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz";
-        sha512 = "2kr12hlmhrlca9f6gb14rvq93rn1z4ydmgv0ll7vak0nl5xxggq27y17346c3wj5afw3imsbvpaqcwjymb55hchj89czpdd5rnmlasq";
+        sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw==";
       };
     };
-    "pg-minify-1.6.0" = {
+    "pg-minify-1.6.1" = {
       name = "pg-minify";
       packageName = "pg-minify";
-      version = "1.6.0";
+      version = "1.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.0.tgz";
-        sha512 = "3v9hxw7f1r7k4lz9lkz7757anv76xclkafdk534yxfmd3qbnikn5f5f3rcfdvlkvlsg5vh8b69lyahbs9x27bpyg9bmzfj73yx5v375";
+        url = "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.1.tgz";
+        sha512 = "ujanxJJB9CSDUvlAOshtjdKAywOPR2vY0a7D+vvgk5rbrYcthZA7TjpN+Z+UwZsz/G/bUexYDT6huE33vYVN0g==";
       };
     };
-    "pg-pool-3.2.0" = {
+    "pg-pool-3.2.1" = {
       name = "pg-pool";
       packageName = "pg-pool";
-      version = "3.2.0";
+      version = "3.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.0.tgz";
-        sha512 = "20fvxybgsq315qj83xcgnii0aysl8pzr23flwzpndidax4zy48bp0f13zj32dls45jrw68m62w71c9w16vn9rnv2diz2z64s06g04pc";
+        url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.1.tgz";
+        sha512 = "BQDPWUeKenVrMMDN9opfns/kZo4lxmSWhIqo+cSAF7+lfi9ZclQbr9vfnlNaPr8wYF3UYjm5X0yPAhbcgqNOdA==";
       };
     };
-    "pg-promise-10.5.5" = {
+    "pg-promise-10.5.7" = {
       name = "pg-promise";
       packageName = "pg-promise";
-      version = "10.5.5";
+      version = "10.5.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.5.5.tgz";
-        sha512 = "3s3cyq162gdkgmdbc14skqwa4pyjx9cyia2148l9mlwfz2kqwfppmakzjp02q3z3bxjvlah51rlxdi5438r1fafqbsc1f3pngjs1k8i";
+        url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.5.7.tgz";
+        sha512 = "feCpn4J4MsNnR5Ve3fpbIlmbohwRirvZEI1Dcy72zwKvIKKRHPk7TJZFQHP4YQhaZ3sT3VGgg0o1/I+uhht/1g==";
       };
     };
-    "pg-protocol-1.2.2" = {
+    "pg-protocol-1.2.4" = {
       name = "pg-protocol";
       packageName = "pg-protocol";
-      version = "1.2.2";
+      version = "1.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.2.2.tgz";
-        sha512 = "2m49phqnmaig70q5a3ny43y8r5ks1sm3w1xrcfhwwchyrpdpgwnxmj3vhgw0i0rg49wwgwg1zj5c99rs2gi989riq6cgpd4fg24dj5g";
+        url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.2.4.tgz";
+        sha512 = "/8L/G+vW/VhWjTGXpGh8XVkXOFx1ZDY+Yuz//Ab8CfjInzFkreI+fDG3WjCeSra7fIZwAFxzbGptNbm8xSXenw==";
       };
     };
     "pg-types-2.2.0" = {
@@ -2441,7 +2504,7 @@ let
       version = "2.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz";
-        sha512 = "0c38xh9gvx9z3lxphm8y090qzm5rj4n7a9a80ls7dsf772ygk52w4v1pbn8il48wrrhgsqdshhhrxqff2pn641178wcp5rcn6b00c59";
+        sha512 = "qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA==";
       };
     };
     "pgpass-1.0.2" = {
@@ -2459,7 +2522,7 @@ let
       version = "2.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz";
-        sha512 = "1d2xjd4r28xk5ggmns7n33nvga0ywk30plvs17dr70qwq0jc17p8kmfsm50idvj6xdrj1fikz0yv63x1pychmz90bs6mkj7wvskyhxb";
+        sha512 = "q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==";
       };
     };
     "postgres-array-2.0.0" = {
@@ -2468,7 +2531,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz";
-        sha512 = "2wdj5g97ilfpmjbpn3cmzhfysw77z8x3hqxvlmcknxm6488jpxvjshdqmd8m59ydhznadxcq1wlnfynh2877di58dgay0rrlm96p5jn";
+        sha512 = "VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA==";
       };
     };
     "postgres-bytea-1.0.0" = {
@@ -2486,7 +2549,7 @@ let
       version = "1.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.5.tgz";
-        sha512 = "24bvdwh2jsv4xbp64ansgpqi55db9xbdv4clyh3aajxvx1lc4wm5mw8aqkf5f144szp2ram50ziy49bqqcr0c24c501f4agcklaxmm5";
+        sha512 = "pdau6GRPERdAYUQwkBnGKxEfPyhVZXG/JiS44iZWiNdSOWE09N2lUgN6yshuq6fVSon4Pm0VMXd1srUUkLe9iA==";
       };
     };
     "postgres-interval-1.2.0" = {
@@ -2495,7 +2558,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz";
-        sha512 = "1jy8mn5fadqlhqhznmyr55ghlzi2k9bxvvbyqbzb8rzzw101gbphlz18jyd533qqhkqf9wdyj3wc68vvdhvjbss6xs7xhzbrwl5g67m";
+        sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ==";
       };
     };
     "process-nextick-args-2.0.1" = {
@@ -2504,7 +2567,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
-        sha512 = "1mgan8li4i2l4y7lsr7snks85n6xg5x693cqmzpid3fkk9br7v5xzgvh1zlfs08zkxn6s0n6qhykr64mszjfyxd77dhmdi1jhx992yy";
+        sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
       };
     };
     "prom-client-11.5.3" = {
@@ -2513,7 +2576,7 @@ let
       version = "11.5.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/prom-client/-/prom-client-11.5.3.tgz";
-        sha512 = "3hnz5ii2bvrrh14qkfcnxkjsxwfrcasfr34masbkwg1n4c41yvv1ir5k9ylmc806izl1xcjzyhidsb3qp832x7vva5lrdnvchbbcgcb";
+        sha512 = "iz22FmTbtkyL2vt0MdDFY+kWof+S9UB/NACxSn2aJcewtw+EERsen0urSkZ2WrHseNdydsvcxCTAnPcSMZZv4Q==";
       };
     };
     "proxy-addr-2.0.6" = {
@@ -2522,7 +2585,7 @@ let
       version = "2.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
-        sha512 = "0xy6dm0910h3nsa0ik45yccdfm6f84nl3h9dpkb22crqhdr3mmiczcbrq9z53gq7l2ijxhxi3pzsfzafrzymw4c1nn68ml1y2pdy7vn";
+        sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
       };
     };
     "psl-1.8.0" = {
@@ -2531,7 +2594,7 @@ let
       version = "1.8.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz";
-        sha512 = "0hn7s5bxnn3k2hiqh8fmm7bvq4vd6j0a5hwj09jk31r1ylv6q28g5hl3z70m3gycwfb40vdp04fqi59hdjih3jz0fhszg0s5b7lx1s4";
+        sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
       };
     };
     "punycode-2.1.1" = {
@@ -2540,7 +2603,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
-        sha512 = "381vqgh5xkqzrr6cxbzfykgnnk83m7qgpx3wjwj1hddn3sg2aibjxyr30rajpgv4js0cqknrbzwbfk5ryhiiyigzfjrk3zysy6i26sx";
+        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
       };
     };
     "qs-6.5.2" = {
@@ -2549,7 +2612,7 @@ let
       version = "6.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
-        sha512 = "0c46ws0x9g3mmkgfmvd78bzvnmv2b8ryg4ah6jvyyqgjv9v994z7xdyvsc4vg9sf98gg7phvy3q1ahgaj5fy3dwzf2rki6bixgl15ip";
+        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
       };
     };
     "qs-6.7.0" = {
@@ -2558,16 +2621,16 @@ let
       version = "6.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz";
-        sha512 = "34x6fm4dnq8m0kps5ann831k8fvx7jzlrcw8vvri0ki2g2ywdrjr8j5y14bvj9c0fd01ndsyx43y6ji51bfhnxk2gr5fpsks52429sl";
+        sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
       };
     };
-    "quick-lru-5.1.0" = {
+    "quick-lru-5.1.1" = {
       name = "quick-lru";
       packageName = "quick-lru";
-      version = "5.1.0";
+      version = "5.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.0.tgz";
-        sha512 = "00p370py6dg4v3n92n6ma2a1pn9sa2j1dq1hah5935s1fghs4x3l4aqx149i2d2ix18rgk2rmrcdkd9sqjmxj985sizmklisd1hlc2s";
+        url = "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz";
+        sha512 = "WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==";
       };
     };
     "randomstring-1.1.5" = {
@@ -2585,7 +2648,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
-        sha512 = "15b00vag4wijzsp0lwi9jznpz16n858vq5p1p3dgjrqqil9c6d4x55s1nl1fi4cbq8307bylbvkd9qkhyk6qib8ksh8raibxb3jrf0y";
+        sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
       };
     };
     "raw-body-2.4.0" = {
@@ -2594,7 +2657,7 @@ let
       version = "2.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz";
-        sha512 = "3flyhj96ayiy8is22lwh9sp1yqq9ksym43x22yri2ikzladqqzxj6z657bc0xb5f2wl7qr2ja4byf57c9f7l2d3wqdglxih886zrv70";
+        sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==";
       };
     };
     "readable-stream-2.3.7" = {
@@ -2603,7 +2666,7 @@ let
       version = "2.3.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
-        sha512 = "0zrh6gjjzwwycwydra51xcrgjgzyqv6dq38bfpwzmlqn702mwb4nj4sjjn499rycqndfk6rby0dksnq72x8pcbvqv0b2893mvq6if0i";
+        sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
       };
     };
     "readable-stream-3.6.0" = {
@@ -2612,7 +2675,7 @@ let
       version = "3.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
-        sha512 = "1s8hs6ax9jwmmw558j3hyfx5lfn7qf66xg0giplz9jci7d8zp2d8vh96dzlis6xzpxfa5b2zbm8nm4mgsr71r6rl3w3qyfanb5qfn05";
+        sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
       };
     };
     "readdirp-3.2.0" = {
@@ -2621,7 +2684,16 @@ let
       version = "3.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/readdirp/-/readdirp-3.2.0.tgz";
-        sha512 = "0chzz12q3inpmwm6b4gi7g9n39jp24ah3mmjgss87hfsbx86vnxf49bx9wk2ng66037x2fh0cjf5rgx00c1m86lqlh7r6g9xm13ifbj";
+        sha512 = "crk4Qu3pmXwgxdSgGhgA/eXiJAPQiX4GMOZZMXnqKxHX7TaoL+3gQVo/WeuAiogr07DpnfjIMpXXa+PAIvwPGQ==";
+      };
+    };
+    "readdirp-3.4.0" = {
+      name = "readdirp";
+      packageName = "readdirp";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readdirp/-/readdirp-3.4.0.tgz";
+        sha512 = "0xe001vZBnJEK+uKcj8qOhyAKPzIT+gStxWr3LCB0DwcXR5NZJ3IaC+yGnHCYzB/S7ov3m3EEbZI2zeNvX+hGQ==";
       };
     };
     "regenerator-runtime-0.11.1" = {
@@ -2630,7 +2702,7 @@ let
       version = "0.11.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
-        sha512 = "03d4l8l8cyywh93wf5vw84lq56jh1b1d7jll4ny4z060j9hvx7w5q3q0b8q227jm93749k1c9h86r2pz0bm2xq5vp14g3r2kbvqc2rj";
+        sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==";
       };
     };
     "request-2.88.2" = {
@@ -2639,7 +2711,7 @@ let
       version = "2.88.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz";
-        sha512 = "23hm71jcxrwvp33azx8mx3w6dg21fr4w6lwvkvxyf6ckvhk3hz9dk8lzgkbiyzfl9ylhp4n807xp88ppq4gj5h07cmrgxf6nwxfvjrj";
+        sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==";
       };
     };
     "request-promise-core-1.1.3" = {
@@ -2648,7 +2720,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz";
-        sha512 = "00riv5nw32j70g67b1ll1h599bvdbnkgasnwl1m26pfdgdmgr6zaq500mprx5n77yrnhza27vs3c9icb4z5h6wnwmlha6f81bw3d2s0";
+        sha512 = "QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==";
       };
     };
     "request-promise-native-1.0.8" = {
@@ -2657,7 +2729,7 @@ let
       version = "1.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.8.tgz";
-        sha512 = "0qx1n06bjj430fidkma2dr90dmrixiza4ymk561v1xxpd5yp7r36lwirgsdn0nvra7s4xs9gs1xhd6fxvlps6q1wh5xq7m4d8n71akm";
+        sha512 = "dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==";
       };
     };
     "require-directory-2.1.1" = {
@@ -2675,7 +2747,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz";
-        sha512 = "2d0gd2x49nz3hgfwms6326sjw5fx7gqf997dnggc7l084cibgang6wr6ryksky32fvdz1bq72xm73kfxd3lj2qnfyjsp57jq287k8rl";
+        sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
       };
     };
     "resolve-1.17.0" = {
@@ -2684,7 +2756,7 @@ let
       version = "1.17.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz";
-        sha512 = "3byf4g1wqfhz5vqx4rbssknblmf4hbjxijmlzvnr7z2l54yr1m4lk14bly6kk6mkdhncfzvvikzk449liiia1ilrfv5iwcmi0jvpkw9";
+        sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==";
       };
     };
     "retry-0.12.0" = {
@@ -2702,7 +2774,7 @@ let
       version = "5.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
-        sha512 = "3xbm0dkya4bc3zwfwpdzbl8ngq0aai5ihlp2v3s39y7162c7wyvv9izj3g8hv6dy6vm2lq48lmfzygk0kxwbjb6xic7k4a329j99p8r";
+        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
       };
     };
     "safe-buffer-5.2.1" = {
@@ -2711,7 +2783,7 @@ let
       version = "5.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
-        sha512 = "1fq5yb2drm5x0pvp2ansqp7p3lq7q9p9z1pfhqfjgqs0ycq9zpnid55m5gx8ani9cwmjjcmn7nnn8j1f6iq3bxi56kdjwfa9six57df";
+        sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
       };
     };
     "safer-buffer-2.1.2" = {
@@ -2720,7 +2792,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
-        sha512 = "2v99f22kh56y72d3s8wrgdvf5n10ry40dh3fwnsxr4d5rfvxdfxfmc3qyqkscnj4f8799jy9bpg6cm21x2d811dr9ib83wjrlmkg6k1";
+        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
       };
     };
     "semver-4.3.2" = {
@@ -2738,7 +2810,7 @@ let
       version = "5.7.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
-        sha512 = "0cl68vp0ymkjpvim4s24v3awyk37d1bfbqrqv4ybwfi8yxga3d8fma2d6bh8dd4i2dsfwca324vaxm5dms61kdlmihdarfgzw6rmaxi";
+        sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
       };
     };
     "semver-6.3.0" = {
@@ -2747,7 +2819,7 @@ let
       version = "6.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz";
-        sha512 = "17wg4dv63jhss5hwqd135zz67r5c30b7a1xz33kfa7knxr0wfypyb8mj2xmc3l71qkxrz569n89xwp5d77m7adn0sr5wzfjlh2m6zvg";
+        sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
       };
     };
     "send-0.17.1" = {
@@ -2756,7 +2828,7 @@ let
       version = "0.17.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz";
-        sha512 = "016qgvxg1si6vn34p7piyc8mhvmav1zscm294wkcjf221y1l9zk5kwk5z6yn1ixspj12df25bpazb2h3fdclcf59xqc2h4w46r4mi86";
+        sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
       };
     };
     "serve-static-1.14.1" = {
@@ -2765,7 +2837,7 @@ let
       version = "1.14.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz";
-        sha512 = "0551vv6s1vgk5krzdn9cwnybsv6g4cyqpkk1dlkyv1pd8n7m8r7pi12r16bw12dzwl6ghj4qwizjsxc8vl26lv9c61fkq9r059yzji4";
+        sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
       };
     };
     "set-blocking-2.0.0" = {
@@ -2783,7 +2855,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz";
-        sha512 = "01qxzb0a6jrcxa6qh776v04ihqrmcy3qfbp9drfsjhfcsmaqd21mppr3ndj970ixfh6bpm8ai45jyqyzjfjw26pcyd82y6pyrcl1xr6";
+        sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
       };
     };
     "simple-swizzle-0.2.2" = {
@@ -2801,7 +2873,7 @@ let
       version = "0.6.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
-        sha512 = "3p7hw8p69ikj5mwapmqkacsjnbvdfk5ylyamjg9x5izkl717xvzj0vk3fnmx1n4pf54h5rs7r8ig5kk4jv4ycqqj0hv75cnx6k1lf2j";
+        sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
       };
     };
     "source-map-support-0.5.19" = {
@@ -2810,7 +2882,7 @@ let
       version = "0.5.19";
       src = fetchurl {
         url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz";
-        sha512 = "0dsfcfq64jhz0vidzqf94hmh4vlzhfid0z2wnr5fdv2lkpv7dvcqbya7fpha9cwqlpkc8w2if8z9aixdkcglh87370rq8426gpyd2as";
+        sha512 = "Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==";
       };
     };
     "spex-3.0.1" = {
@@ -2819,7 +2891,7 @@ let
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/spex/-/spex-3.0.1.tgz";
-        sha512 = "06c3i67lmyilbk851pqd0iy8vcd78y81p3mkbqzfcl69pmxx8n8qbjc3fpy8w3j70xsyi1hwl4761pfj93vb9ik3m7na1np99jrdf56";
+        sha512 = "priWZUrXBmVPHTOmtUeS7gZzCOUwRK87OHJw5K8bTC6MLOq93mQocx+vWccNyKPT2EY+goZvKGguGn2lx8TBDA==";
       };
     };
     "split-1.0.1" = {
@@ -2828,7 +2900,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/split/-/split-1.0.1.tgz";
-        sha512 = "2916kdi862ik0dlvr2wf2kvzmw8i8wk5spbr9wpdcksrkhrl3m0082jj1q4mqzvv50mlah5s4vcy6k18nacbj09kxbzp2pbysh8wg4r";
+        sha512 = "mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==";
       };
     };
     "sprintf-js-1.0.3" = {
@@ -2846,7 +2918,7 @@ let
       version = "1.16.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz";
-        sha512 = "0i4jnrxh6i17qij2vfki7qxmk435cnacvg363qg0hya5incfj57akgbas8zcx2cl5pds9jfgfyhqm8wlqz6damsg059gymv99aylx8x";
+        sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==";
       };
     };
     "stack-trace-0.0.10" = {
@@ -2882,7 +2954,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz";
-        sha512 = "29s1fqgr4mnhfxwczgdghfmmc1f792m9hysvcjxw2h5lfj8ndf2b6gm02m96qk5m75g4aisijvng4pk618anwbr8i9ay2jyszkqgslw";
+        sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==";
       };
     };
     "string-width-3.1.0" = {
@@ -2891,7 +2963,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz";
-        sha512 = "3bix3jva53vcp1im3aa1y2v1lywkm7ix81gkwkj4915s2675pmw1c9n5x98q1m985hzgwkk1fnc2q78qz7s0fixhf994md3lazxr9xx";
+        sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
       };
     };
     "string.prototype.trimend-1.0.1" = {
@@ -2900,25 +2972,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz";
-        sha512 = "3mb88v9lf22jx2d71lnxcxvixdfypq1iq7ys5f3zv0ayv2w3cij73wnfbq43yyd8gdyjn1k29pphx639shjk39pn6c9mdlk8qaz24rd";
-      };
-    };
-    "string.prototype.trimleft-2.1.2" = {
-      name = "string.prototype.trimleft";
-      packageName = "string.prototype.trimleft";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz";
-        sha512 = "15qfz59cpsj9svgvcs24q6h47jfy5zfhg7dy3b8ik3nvf97vhvijy8d51vrprx4z0vfyscg7i2xv9qs960h1pvnmzm1n95m6svk8840";
-      };
-    };
-    "string.prototype.trimright-2.1.2" = {
-      name = "string.prototype.trimright";
-      packageName = "string.prototype.trimright";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz";
-        sha512 = "0b5kvxgqr55r745bccsjz35w9galqf42rm3lf5f4p2i21c4yq5l0fz0s03z4gq1d7yi52i3x6n8fa1n3fhlplc8d49vlaipqvp51m34";
+        sha512 = "LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==";
       };
     };
     "string.prototype.trimstart-1.0.1" = {
@@ -2927,7 +2981,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz";
-        sha512 = "13md9cfrlvkvbprd9svis80yjkv8glqai07nlqizqi2yhxzhw7mxza2jhb6k6mx1z67ndgf4dcf0hy5579fj8772hsi5b3g1bwnf5jz";
+        sha512 = "XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==";
       };
     };
     "string_decoder-1.1.1" = {
@@ -2936,7 +2990,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
-        sha512 = "315yd4vzwrwk3vwj1klf46y1cj2jbvf88066y2rnwhksb98phj46jkxixbwsp3h607w7czy7cby522s7sx8mvspdpdm3s72y2ga3x4z";
+        sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
       };
     };
     "string_decoder-1.3.0" = {
@@ -2945,7 +2999,7 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz";
-        sha512 = "1w0mz57mvmqykm0jwma6lr4i9pip8p8c1ldaax7sxnrl6j0jbrkwggs037r1psmac0w04i9mb2rc1gzj1n2f0xvy1fr332n9pqmfi46";
+        sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==";
       };
     };
     "strip-ansi-4.0.0" = {
@@ -2963,7 +3017,7 @@ let
       version = "5.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz";
-        sha512 = "1cf4mpsr46nik5xxyb9wc4cz6c4yymi2ijpfx1nghnkl39l8pgq1sc7q19jzrjkwpn9i7hwg4q3rs4ny3vssrc6506an1lv0bb6rr0f";
+        sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
       };
     };
     "strip-json-comments-2.0.1" = {
@@ -2981,7 +3035,7 @@ let
       version = "5.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
-        sha512 = "2ihqi2z38fr1sq2jvwqgjqymncmkhxqz0x3bi97w4b4fn24wsdy71j139p95sb3nfrh3a449n0sqhm1z0jsi04860y8vdy8sp0n6da2";
+        sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
       };
     };
     "supports-color-6.0.0" = {
@@ -2990,7 +3044,7 @@ let
       version = "6.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz";
-        sha512 = "0p5l02lyminbqmcpm7257093sd8w5ca7q5xnnym2z71bwbhmisnyzn2jh5xma418sx29m8yinka6f7rphc7dl76lc88bm2w4z14lzx2";
+        sha512 = "on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==";
       };
     };
     "tdigest-0.1.1" = {
@@ -3008,7 +3062,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz";
-        sha512 = "1pazh99870gi3zslirzkribr37akp4zc5r73q78y89vpzjlcmpdrv7qx6wc3x2bwl20xcrq5hhs7cv3rzk8llm38nhqq9z0dhsldrds";
+        sha512 = "uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==";
       };
     };
     "through-2.3.8" = {
@@ -3026,7 +3080,7 @@ let
       version = "5.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz";
-        sha512 = "2qkrna8q80arai14s6f17djc3cgwiilnhibfykwzkif4gs9ny3fmqmxqf56fvc7fjwyr01p97nk1ckd67s8476cslmj3rwp7s5zp4zb";
+        sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==";
       };
     };
     "toidentifier-1.0.0" = {
@@ -3035,7 +3089,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz";
-        sha512 = "1bip1yxcfy4c0yl2kwmj9jyzfg1ixyj564wd1aaf46rabdiasx62yznb8bwn9cki886f353axgca42zma7q9rb4b50lhm1zz7y8g8y9";
+        sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
       };
     };
     "tough-cookie-2.5.0" = {
@@ -3044,7 +3098,7 @@ let
       version = "2.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz";
-        sha512 = "3xgcny117pqhfncr4gbmagzlnjiqqgq0lrvmljdfcdy64nc0xjfcbf1r08dmp1v1m3s51kq0yxc18nl3j9lbpr5bp5lgmi6719yqlly";
+        sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==";
       };
     };
     "triple-beam-1.3.0" = {
@@ -3053,25 +3107,25 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz";
-        sha512 = "0ppdjj0px3nrh57jbdhh12f3hx0xc2zg2zn61h3sdws4glcixr2k793bkv7hakb273pw8jq4qaxn0l28z658biy4bkd59a7bsyx9cay";
+        sha512 = "XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==";
       };
     };
-    "ts-node-8.10.1" = {
+    "ts-node-8.10.2" = {
       name = "ts-node";
       packageName = "ts-node";
-      version = "8.10.1";
+      version = "8.10.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ts-node/-/ts-node-8.10.1.tgz";
-        sha512 = "2zyrdhgyii4klwqhy8r5pps3w0g6x6rpbqnifm75sn9ws67zlalw9fbsfwfwkbww3n729hil48a6nxkavb1x4jypa4pi40ypva77lvd";
+        url = "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz";
+        sha512 = "ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==";
       };
     };
-    "tslib-1.12.0" = {
+    "tslib-1.13.0" = {
       name = "tslib";
       packageName = "tslib";
-      version = "1.12.0";
+      version = "1.13.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/tslib/-/tslib-1.12.0.tgz";
-        sha512 = "2l8pn1y3qicb8m0bf97jljyxbyjkarikq1z6vgh2rq527v2ah57p0rhsngsqx3ad4wzfchg8mlz2s4aylff6lvxw1gjp4zl8d145g76";
+        url = "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz";
+        sha512 = "i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==";
       };
     };
     "tslint-6.1.2" = {
@@ -3080,7 +3134,7 @@ let
       version = "6.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/tslint/-/tslint-6.1.2.tgz";
-        sha512 = "24dh0i5b1rkxy5g1n9d0kf4rg6layq6z3l5jg2hyz11lk8zdpqx2b03s0kwnjhx4l4ywg3js616wbh00nh3cmpw3g84f4xps8nnn8sk";
+        sha512 = "UyNrLdK3E0fQG/xWNqAFAC5ugtFyPO4JJR1KyyfQAyzR8W0fTRrC91A8Wej4BntFzcvETdCSDa/4PnNYJQLYiA==";
       };
     };
     "tsutils-2.29.0" = {
@@ -3089,7 +3143,7 @@ let
       version = "2.29.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz";
-        sha512 = "2cc8fsdfbgfcjj6y7dlr0kpmkhbw0j69cak4s21jb44w57dlwksrjx8wn1h4f1j2vx8dhj9mrqsbmmwd96mrsd59743ghq948f5b4l3";
+        sha512 = "g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==";
       };
     };
     "tunnel-agent-0.6.0" = {
@@ -3116,7 +3170,7 @@ let
       version = "4.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz";
-        sha512 = "3z3kf4kgd3czn50a158v1k2l61lpbznrbk8xvh2pdsfsrcsda3271427fzmp1r7awnvvzrhzclfm03cpv671rdlqyz56xpmh6cgzyni";
+        sha512 = "0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==";
       };
     };
     "type-is-1.6.18" = {
@@ -3125,16 +3179,16 @@ let
       version = "1.6.18";
       src = fetchurl {
         url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz";
-        sha512 = "3r7402x79nilhdgk4z21yjh5y9vix8lwlll1kzcn8jd2m89vzksdb6wddia77cxv3iwhd6i5hkv6n7diwjbhpy7y03i2kqlvfplli2f";
+        sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
       };
     };
-    "typescript-3.9.2" = {
+    "typescript-3.9.5" = {
       name = "typescript";
       packageName = "typescript";
-      version = "3.9.2";
+      version = "3.9.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.2.tgz";
-        sha512 = "15y587awly8lrclsfw0fp2r1545332rrpf0g7cpi90jj67sryyj76hgbb1fna5bzwlg3940bmnyhd7qmll6nwi86n6vpf7zi6mjssdb";
+        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.5.tgz";
+        sha512 = "hSAifV3k+i6lEoCJ2k6R2Z/rp/H3+8sdmcn5NrS3/3kE7+RyZXm9aqvxWqjEXHAd8b0pShatpcdMTvEdvAJltQ==";
       };
     };
     "underscore-1.4.4" = {
@@ -3146,13 +3200,13 @@ let
         sha1 = "61a6a32010622afa07963bf325203cf12239d604";
       };
     };
-    "unhomoglyph-1.0.5" = {
+    "unhomoglyph-1.0.6" = {
       name = "unhomoglyph";
       packageName = "unhomoglyph";
-      version = "1.0.5";
+      version = "1.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/unhomoglyph/-/unhomoglyph-1.0.5.tgz";
-        sha512 = "1p3flai5dwdy5krysfl6wjvz6b3pmkkzxwwpcycfkq93k17ghw7frlc5rnm1ra43h1a6lg6q44yp9ga19zhjv2q0nw3m0m8n7d31l5c";
+        url = "https://registry.npmjs.org/unhomoglyph/-/unhomoglyph-1.0.6.tgz";
+        sha512 = "7uvcWI3hWshSADBu4JpnyYbTVc7YlhF5GDW/oPD5AxIxl34k4wXR3WDkPnzLxkN32LiTCTKMQLtKVZiwki3zGg==";
       };
     };
     "unpipe-1.0.0" = {
@@ -3170,7 +3224,7 @@ let
       version = "4.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz";
-        sha512 = "2fz60s71ghl56ddfiiaws81xpiidlbjk69jyjmahz190d2advy9zdbcwh5if4rgg5hxdbfxhkwiipjrnjy8w834bxsmzambd2p4b3r9";
+        sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==";
       };
     };
     "util-deprecate-1.0.2" = {
@@ -3197,7 +3251,7 @@ let
       version = "3.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
-        sha512 = "3y9pcli1v8nqryqd2c4pxj9kcv92mjc22z4smg08pdjzrbwda19xmjbzms1dwr04995h4carz9s8mldbiqb8708694lwr501r3q6d0y";
+        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
       };
     };
     "uuid-7.0.3" = {
@@ -3206,7 +3260,7 @@ let
       version = "7.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/uuid/-/uuid-7.0.3.tgz";
-        sha512 = "057la6a6bzkdwiz137vdyjaigybq0gyc3i8xvgc3gs4ja5blpjwbq9si4zmji0cgb81wzsj44q8l1nrmmjgkpazl1h3d1ap99xs9x0c";
+        sha512 = "DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==";
       };
     };
     "vary-1.1.2" = {
@@ -3233,7 +3287,7 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz";
-        sha512 = "0hr4hxkk8yb9fz993bs69pf8z2z2qb6sdpxfxb84sd16lja9fsx444pk1ang1ivmjjv5srnsm6fihdj593w7rwxdh834cdmd9hms4hz";
+        sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==";
       };
     };
     "which-module-2.0.0" = {
@@ -3251,16 +3305,16 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
-        sha512 = "2224a32flpf40nhq6rj4idzkcdz0vx65bfxp90hd06db18l6fiqgxz1xnaygm3pbfb1a6v73hl8ryq4996b09zwwins0bqprx0hwsa0";
+        sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
       };
     };
-    "winston-3.2.1" = {
+    "winston-3.3.2" = {
       name = "winston";
       packageName = "winston";
-      version = "3.2.1";
+      version = "3.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz";
-        sha512 = "0xywwwrgdf54nfk0pzdpkgn27jwxkkfimf5s9jd04xihx03wwj71r0nafdmsdfg5brj9hsdalqj19vpl2442gx82210ax5xfj1ayknd";
+        url = "https://registry.npmjs.org/winston/-/winston-3.3.2.tgz";
+        sha512 = "vTOrUZlyQPS8VpCcQ1JT8BumDAUe4awCHZ9nmGgO7LqkV4atj0dKa5suA7Trf7QKtBszE2yUs9d8744Kz9j4jQ==";
       };
     };
     "winston-compat-0.1.5" = {
@@ -3269,7 +3323,7 @@ let
       version = "0.1.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/winston-compat/-/winston-compat-0.1.5.tgz";
-        sha512 = "3v94p4wq3xmi9d5f1gsk39fj6nc6nq8ivh7ka0whzvg7g71zplmgw9b5vkl7kqr66qm9xd5i4l0vhazmxzpgflqvhaq1lzsfiqczyqh";
+        sha512 = "EPvPcHT604AV3Ji6d3+vX8ENKIml9VSxMRnPQ+cuK/FX6f3hvPP2hxyoeeCOCFvDrJEujalfcKWlWPvAnFyS9g==";
       };
     };
     "winston-daily-rotate-file-3.10.0" = {
@@ -3278,16 +3332,16 @@ let
       version = "3.10.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-3.10.0.tgz";
-        sha512 = "22fkfci36zb0q6ygc6sg2x2l0886j2cayl6jbi703smf5h4iwa1g2j4dwwr30jr2zjgdyh95ig8yqfk0y8h51gnvi8zf2inn9yh5vr8";
+        sha512 = "KO8CfbI2CvdR3PaFApEH02GPXiwJ+vbkF1mCkTlvRIoXFI8EFlf1ACcuaahXTEiDEKCii6cNe95gsL4ZkbnphA==";
       };
     };
-    "winston-transport-4.3.0" = {
+    "winston-transport-4.4.0" = {
       name = "winston-transport";
       packageName = "winston-transport";
-      version = "4.3.0";
+      version = "4.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.3.0.tgz";
-        sha512 = "3a2khvz9qld5b1ci486nyphyi96pg5n8xin9f0lrx0hllvvjqkj8y393rs2fiyz7afg7244vchiv3ka3klm4xgykxrzipi20nxhyv07";
+        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz";
+        sha512 = "Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==";
       };
     };
     "wrap-ansi-5.1.0" = {
@@ -3296,7 +3350,7 @@ let
       version = "5.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz";
-        sha512 = "3nmsfqfd98a7bgjyhd334y5gzc98nnkipfkmk2z1v4m0acagmpq951d8brmrsxvpnk256fbrp7zkn5n8v02pn4q4zai7zgnvy47yba0";
+        sha512 = "QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==";
       };
     };
     "wrappy-1.0.2" = {
@@ -3314,7 +3368,7 @@ let
       version = "5.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz";
-        sha512 = "0f6ay7yn6xslzh3h66d5krqnp48d9g3ikwk0ijiyyxfkwaqxxf3b0qdswy6ych79mj44315qd16snlnk6m6npc5l0habgy5lc7wb8cd";
+        sha512 = "jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==";
       };
     };
     "xtend-4.0.2" = {
@@ -3323,7 +3377,7 @@ let
       version = "4.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
-        sha512 = "08w1d6fg23v422cfwd55306pfs9n9cqpz6hycahq3adm3n29wmhl9bmpn4vk75rlzgwn7hp4n3idqxvw8c53zbr04h7a98p43b199ic";
+        sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
       };
     };
     "y18n-4.0.0" = {
@@ -3332,7 +3386,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz";
-        sha512 = "3zj75gvpcgiphxpci4ji1znykk9n4cs0aw3dd6inwdvkmxyqn2483vya70lssjwq8alspnpw88vgii21fdrcn2vmfyppzgf4mkvzm5g";
+        sha512 = "r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==";
       };
     };
     "yargs-13.3.2" = {
@@ -3341,7 +3395,7 @@ let
       version = "13.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz";
-        sha512 = "19rg5b2rhj2kg44as5vv9jxmpr39lw250885w6nlfwyhvwd5nxnnx7fc35v7h615i65cik7k3wi7ac20c91kcgfi5wy7blgk31xjz81";
+        sha512 = "AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==";
       };
     };
     "yargs-parser-13.1.2" = {
@@ -3350,7 +3404,7 @@ let
       version = "13.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz";
-        sha512 = "375nan6m28q81h8q9a8vmcxgiq7s81yn1ql7zdikac0c4j2kmxdjzmbq14fcp9jm4ilcfzkd9ym4x7c80s7r6g488wf13zz2wsyqmny";
+        sha512 = "3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==";
       };
     };
     "yargs-unparser-1.6.0" = {
@@ -3359,7 +3413,7 @@ let
       version = "1.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz";
-        sha512 = "17qgbcv8wypl4qr620558qd8ff03nqqiq84mp200mizrbsfj4nyil345iny8zx4ia5hfpjmk2mnhqp7y54qpsypd993ml57cj14mnsv";
+        sha512 = "W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==";
       };
     };
     "yn-3.1.1" = {
@@ -3368,33 +3422,34 @@ let
       version = "3.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz";
-        sha512 = "3lq5f8c7lb89pyxhpb8nrbif4p5ganpyfzz267dgqxr6dn6yr0vgh017403bmy2v651m1wmd8k6x2fm5v37nmn1i8xngfxccn0347jk";
+        sha512 = "Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==";
       };
     };
   };
 in
 {
-  "matrix-appservice-slack-git+https://github.com/matrix-org/matrix-appservice-slack.git#1.3.1" = nodeEnv.buildNodePackage {
+  "matrix-appservice-slack-git+https://github.com/matrix-org/matrix-appservice-slack.git#1.4.0" = nodeEnv.buildNodePackage {
     name = "matrix-appservice-slack";
     packageName = "matrix-appservice-slack";
-    version = "1.3.1";
+    version = "1.4.0";
     src = fetchgit {
       url = "https://github.com/matrix-org/matrix-appservice-slack.git";
-      rev = "368c7af0c87053779d61b3c702fc533003960a99";
-      sha256 = "add6a164e982cfa8837168e4a8c0b4a3fb248c9cf331ea8c6109767f6fc76cef";
+      rev = "933c3a64fdff42ebc11e5385f588f981e201897d";
+      sha256 = "cddcff326688ceddfd37eae44d3947ea84cf1d8fd2062e3c203ffbf35e2ea7f6";
     };
     dependencies = [
-      sources."@babel/code-frame-7.8.3"
-      sources."@babel/helper-validator-identifier-7.9.5"
-      sources."@babel/highlight-7.9.0"
+      sources."@babel/code-frame-7.10.3"
+      sources."@babel/helper-validator-identifier-7.10.3"
+      sources."@babel/highlight-7.10.3"
+      sources."@dabh/diagnostics-2.0.2"
       sources."@slack/logger-1.1.1"
-      (sources."@slack/rtm-api-5.0.4" // {
+      (sources."@slack/rtm-api-5.0.5" // {
         dependencies = [
           sources."p-queue-2.4.2"
         ];
       })
-      sources."@slack/types-1.6.0"
-      (sources."@slack/web-api-5.8.1" // {
+      sources."@slack/types-1.7.0"
+      (sources."@slack/web-api-5.10.0" // {
         dependencies = [
           sources."p-queue-2.4.2"
         ];
@@ -3403,29 +3458,30 @@ in
       sources."@types/caseless-0.12.2"
       sources."@types/chai-4.2.11"
       sources."@types/connect-3.4.33"
-      sources."@types/events-3.0.0"
       sources."@types/express-4.17.6"
       sources."@types/express-serve-static-core-4.17.7"
       sources."@types/is-stream-1.1.0"
-      sources."@types/mime-2.0.1"
+      sources."@types/mime-2.0.2"
       sources."@types/mocha-7.0.2"
       sources."@types/nedb-1.8.9"
       sources."@types/node-13.9.3"
       sources."@types/node-emoji-1.8.1"
+      sources."@types/nunjucks-3.1.3"
       sources."@types/p-queue-2.3.2"
-      sources."@types/qs-6.9.2"
+      sources."@types/qs-6.9.3"
       sources."@types/randomstring-1.1.6"
       sources."@types/range-parser-1.2.3"
-      sources."@types/request-2.48.4"
+      sources."@types/request-2.48.5"
       sources."@types/request-promise-native-1.0.17"
       sources."@types/retry-0.12.0"
-      sources."@types/serve-static-1.13.3"
+      sources."@types/serve-static-1.13.4"
       sources."@types/tough-cookie-4.0.0"
-      sources."@types/uuid-7.0.3"
-      sources."@types/ws-5.1.2"
+      sources."@types/uuid-7.0.4"
+      sources."@types/ws-7.2.5"
       sources."@types/yargs-13.0.9"
       sources."@types/yargs-parser-13.1.0"
       sources."Slackdown-git://github.com/Half-Shot/slackdown#efd8934a3d9c3bf0064c0b217c5cf6b62ee697e4"
+      sources."a-sync-waterfall-1.0.1"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.7"
       sources."ajv-6.12.2"
@@ -3438,6 +3494,7 @@ in
       sources."argparse-1.0.10"
       sources."array-flatten-1.1.1"
       sources."array-uniq-1.0.2"
+      sources."asap-2.0.6"
       sources."asn1-0.2.4"
       sources."assert-options-0.6.2"
       sources."assert-plus-1.0.0"
@@ -3446,7 +3503,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."aws-sign2-0.7.0"
-      sources."aws4-1.9.1"
+      sources."aws4-1.10.0"
       sources."axios-0.19.2"
       sources."babel-runtime-6.26.0"
       sources."balanced-match-1.0.0"
@@ -3480,17 +3537,16 @@ in
         ];
       })
       sources."check-error-1.0.2"
-      sources."chokidar-3.3.0"
+      sources."chokidar-3.4.0"
       sources."cliui-5.0.0"
       sources."color-3.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."color-string-1.5.3"
-      sources."colornames-1.1.1"
       sources."colors-1.4.0"
       sources."colorspace-1.1.2"
       sources."combined-stream-1.0.8"
-      sources."commander-2.20.3"
+      sources."commander-3.0.2"
       sources."concat-map-0.0.1"
       sources."content-disposition-0.5.3"
       sources."content-type-1.0.4"
@@ -3507,15 +3563,13 @@ in
       sources."delayed-stream-1.0.0"
       sources."depd-1.1.2"
       sources."destroy-1.0.4"
-      sources."diagnostics-1.1.1"
       sources."diff-3.5.0"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."emoji-regex-7.0.3"
-      sources."enabled-1.0.2"
+      sources."enabled-2.0.0"
       sources."encodeurl-1.0.2"
-      sources."env-variable-0.0.6"
-      sources."es-abstract-1.17.5"
+      sources."es-abstract-1.17.6"
       sources."es-to-primitive-1.2.1"
       sources."escape-html-1.0.3"
       sources."escape-string-regexp-2.0.0"
@@ -3529,10 +3583,10 @@ in
       })
       sources."extend-3.0.2"
       sources."extsprintf-1.3.0"
-      sources."fast-deep-equal-3.1.1"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-safe-stringify-2.0.7"
-      sources."fecha-2.3.3"
+      sources."fecha-4.2.0"
       sources."file-stream-rotator-0.4.1"
       sources."fill-range-7.0.1"
       (sources."finalhandler-1.1.2" // {
@@ -3543,6 +3597,7 @@ in
       sources."find-up-3.0.0"
       sources."finity-0.5.4"
       sources."flat-4.1.0"
+      sources."fn.name-1.1.0"
       sources."follow-redirects-1.5.10"
       sources."forever-agent-0.6.1"
       sources."form-data-2.5.1"
@@ -3575,7 +3630,7 @@ in
       sources."is-arrayish-0.3.2"
       sources."is-binary-path-2.1.0"
       sources."is-buffer-2.0.4"
-      sources."is-callable-1.1.5"
+      sources."is-callable-1.2.0"
       sources."is-date-object-1.0.2"
       sources."is-extglob-2.1.1"
       sources."is-fullwidth-code-point-2.0.0"
@@ -3584,7 +3639,7 @@ in
       sources."is-my-json-valid-2.20.0"
       sources."is-number-7.0.0"
       sources."is-property-1.0.2"
-      sources."is-regex-1.0.5"
+      sources."is-regex-1.1.0"
       sources."is-stream-1.1.0"
       sources."is-symbol-1.0.3"
       sources."is-typedarray-1.0.0"
@@ -3592,21 +3647,21 @@ in
       sources."isexe-2.0.0"
       sources."isstream-0.1.2"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-3.13.1"
+      sources."js-yaml-3.14.0"
       sources."jsbn-0.1.1"
       sources."json-schema-0.2.3"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
       sources."jsonpointer-4.0.1"
       sources."jsprim-1.4.1"
-      sources."kuler-1.0.1"
+      sources."kuler-2.0.0"
       sources."lie-3.1.1"
-      sources."localforage-1.7.3"
+      sources."localforage-1.7.4"
       sources."locate-path-3.0.0"
       sources."lodash-4.17.15"
       sources."lodash.toarray-4.4.0"
       sources."log-symbols-3.0.0"
-      (sources."logform-2.1.2" // {
+      (sources."logform-2.2.0" // {
         dependencies = [
           sources."ms-2.1.2"
         ];
@@ -3629,15 +3684,18 @@ in
       sources."minimatch-3.0.4"
       sources."minimist-1.2.5"
       sources."mkdirp-0.5.5"
-      (sources."mocha-7.1.2" // {
+      (sources."mocha-7.2.0" // {
         dependencies = [
+          sources."chokidar-3.3.0"
           sources."debug-3.2.6"
           sources."escape-string-regexp-1.0.5"
+          sources."js-yaml-3.13.1"
           sources."ms-2.1.1"
+          sources."readdirp-3.2.0"
           sources."supports-color-6.0.0"
         ];
       })
-      sources."moment-2.25.3"
+      sources."moment-2.27.0"
       (sources."morgan-1.10.0" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -3655,16 +3713,17 @@ in
       })
       sources."nopt-3.0.6"
       sources."normalize-path-3.0.0"
+      sources."nunjucks-3.2.1"
       sources."oauth-sign-0.9.0"
       sources."object-hash-1.3.1"
-      sources."object-inspect-1.7.0"
+      sources."object-inspect-1.8.0"
       sources."object-keys-1.1.1"
       sources."object.assign-4.1.0"
       sources."object.getownpropertydescriptors-2.1.0"
       sources."on-finished-2.3.0"
       sources."on-headers-1.0.2"
       sources."once-1.4.0"
-      sources."one-time-0.0.4"
+      sources."one-time-1.0.0"
       sources."p-cancelable-1.1.0"
       sources."p-finally-1.0.0"
       sources."p-limit-2.3.0"
@@ -3685,13 +3744,13 @@ in
       sources."path-to-regexp-0.1.7"
       sources."pathval-1.1.0"
       sources."performance-now-2.1.0"
-      sources."pg-8.1.0"
-      sources."pg-connection-string-2.2.2"
+      sources."pg-8.2.1"
+      sources."pg-connection-string-2.2.3"
       sources."pg-int8-1.0.1"
-      sources."pg-minify-1.6.0"
-      sources."pg-pool-3.2.0"
-      sources."pg-promise-10.5.5"
-      sources."pg-protocol-1.2.2"
+      sources."pg-minify-1.6.1"
+      sources."pg-pool-3.2.1"
+      sources."pg-promise-10.5.7"
+      sources."pg-protocol-1.2.4"
       sources."pg-types-2.2.0"
       sources."pgpass-1.0.2"
       sources."picomatch-2.2.2"
@@ -3705,12 +3764,12 @@ in
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
       sources."qs-6.7.0"
-      sources."quick-lru-5.1.0"
+      sources."quick-lru-5.1.1"
       sources."randomstring-1.1.5"
       sources."range-parser-1.2.1"
       sources."raw-body-2.4.0"
       sources."readable-stream-3.6.0"
-      sources."readdirp-3.2.0"
+      sources."readdirp-3.4.0"
       sources."regenerator-runtime-0.11.1"
       (sources."request-2.88.2" // {
         dependencies = [
@@ -3753,8 +3812,6 @@ in
       sources."stealthy-require-1.1.1"
       sources."string-width-3.1.0"
       sources."string.prototype.trimend-1.0.1"
-      sources."string.prototype.trimleft-2.1.2"
-      sources."string.prototype.trimright-2.1.2"
       sources."string.prototype.trimstart-1.0.1"
       (sources."string_decoder-1.3.0" // {
         dependencies = [
@@ -3771,14 +3828,15 @@ in
       sources."toidentifier-1.0.0"
       sources."tough-cookie-2.5.0"
       sources."triple-beam-1.3.0"
-      (sources."ts-node-8.10.1" // {
+      (sources."ts-node-8.10.2" // {
         dependencies = [
           sources."diff-4.0.2"
         ];
       })
-      sources."tslib-1.12.0"
+      sources."tslib-1.13.0"
       (sources."tslint-6.1.2" // {
         dependencies = [
+          sources."commander-2.20.3"
           sources."diff-4.0.2"
           sources."semver-5.7.1"
         ];
@@ -3788,9 +3846,9 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-detect-4.0.8"
       sources."type-is-1.6.18"
-      sources."typescript-3.9.2"
+      sources."typescript-3.9.5"
       sources."underscore-1.4.4"
-      sources."unhomoglyph-1.0.5"
+      sources."unhomoglyph-1.0.6"
       sources."unpipe-1.0.0"
       sources."uri-js-4.2.2"
       sources."util-deprecate-1.0.2"
@@ -3807,13 +3865,15 @@ in
           sources."strip-ansi-4.0.0"
         ];
       })
-      (sources."winston-3.2.1" // {
+      (sources."winston-3.3.2" // {
         dependencies = [
-          sources."async-2.6.3"
+          sources."async-3.2.0"
+          sources."is-stream-2.0.0"
         ];
       })
       (sources."winston-compat-0.1.5" // {
         dependencies = [
+          sources."fecha-2.3.3"
           sources."logform-1.10.0"
           sources."ms-2.1.2"
         ];
@@ -3823,7 +3883,7 @@ in
           sources."semver-6.3.0"
         ];
       })
-      (sources."winston-transport-4.3.0" // {
+      (sources."winston-transport-4.4.0" // {
         dependencies = [
           sources."readable-stream-2.3.7"
           sources."string_decoder-1.1.1"
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/package.json b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/package.json
index 1807b9085b69..52568eefb77e 100644
--- a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/package.json
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/package.json
@@ -1,3 +1,3 @@
 [
-    {"matrix-appservice-slack": "git+https://github.com/matrix-org/matrix-appservice-slack.git#1.3.1" }
+    {"matrix-appservice-slack": "git+https://github.com/matrix-org/matrix-appservice-slack.git#1.4.0" }
 ]
diff --git a/nixpkgs/pkgs/servers/matterbridge/default.nix b/nixpkgs/pkgs/servers/matterbridge/default.nix
index 7f1868af4c35..b864c4d830b2 100644
--- a/nixpkgs/pkgs/servers/matterbridge/default.nix
+++ b/nixpkgs/pkgs/servers/matterbridge/default.nix
@@ -2,14 +2,15 @@
 
 buildGoModule rec {
   pname = "matterbridge";
-  version = "1.17.1";
+  version = "1.18.0";
 
-  goPackagePath = "github.com/42wim/matterbridge";
   vendorSha256 = null;
 
+  doCheck = false;
+
   src = fetchurl {
     url = "https://github.com/42wim/matterbridge/archive/v${version}.tar.gz";
-    sha256 = "0xf0s1bvlzqnxz2kvqx1h9gmgqxdlf34s27s3zradi8fwd8hriv6";
+    sha256 = "0ax2lis37ppxah4k9aqw1aj6pl5yz6npfriaw70g4952abvbkivw";
   };
 
   meta = with stdenv.lib; {
@@ -19,4 +20,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ ryantm ];
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/mattermost/default.nix b/nixpkgs/pkgs/servers/mattermost/default.nix
index 6327921aaac8..722802a019d2 100644
--- a/nixpkgs/pkgs/servers/mattermost/default.nix
+++ b/nixpkgs/pkgs/servers/mattermost/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchurl, fetchFromGitHub, buildGoPackage, buildEnv }:
 
 let
-  version = "5.15.0";
+  version = "5.25.3";
 
   mattermost-server = buildGoPackage rec {
     pname = "mattermost-server";
@@ -11,7 +11,7 @@ let
       owner = "mattermost";
       repo = "mattermost-server";
       rev = "v${version}";
-      sha256 = "1bh53h0bmpc1qmnbpsmwkfrvj66z18m7b1xg7pqikid57ssqxjx9";
+      sha256 = "03xcwlbb9ff5whsdn2m3kqskxpwpfciikjjndbhksc8k8963z07j";
     };
 
     goPackagePath = "github.com/mattermost/mattermost-server";
@@ -29,7 +29,7 @@ let
 
     src = fetchurl {
       url = "https://releases.mattermost.com/${version}/mattermost-${version}-linux-amd64.tar.gz";
-      sha256 = "13xmc2y4pp0b0svzaf4v7ynx6rxcvznx3vqmlrpiil414s69xv45";
+      sha256 = "1p1qxzrd6rj1i43vj18ysknrw2v02s7llx94nrdd5lk10ayzmg63";
     };
 
     installPhase = ''
diff --git a/nixpkgs/pkgs/servers/mautrix-telegram/default.nix b/nixpkgs/pkgs/servers/mautrix-telegram/default.nix
index da4f77e3394c..c39d4fc0d861 100644
--- a/nixpkgs/pkgs/servers/mautrix-telegram/default.nix
+++ b/nixpkgs/pkgs/servers/mautrix-telegram/default.nix
@@ -1,15 +1,24 @@
-{ lib, python3, mautrix-telegram }:
+{ lib, python3, mautrix-telegram, fetchFromGitHub }:
 
 with python3.pkgs;
 
-buildPythonPackage rec {
+let
+  # officially supported database drivers
+  dbDrivers = [
+    psycopg2
+    # sqlite driver is already shipped with python by default
+  ];
+
+in buildPythonPackage rec {
   pname = "mautrix-telegram";
-  version = "0.8.1";
+  version = "0.8.2";
   disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1gz6d28dq3ykvr3wp85wkc05lbppdzf5j9i62pgx0blmx3jh0yrk";
+  src = fetchFromGitHub {
+    owner = "tulir";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0mhy9b933haz1bldkglvn81warjxdjdzgkviiv5k6fykghq473jf";
   };
 
   postPatch = ''
@@ -30,7 +39,7 @@ buildPythonPackage rec {
     pillow
     lxml
     setuptools
-  ];
+  ] ++ dbDrivers;
 
   # `alembic` (a database migration tool) is only needed for the initial setup,
   # and not needed during the actual runtime. However `alembic` requires `mautrix-telegram`
@@ -39,7 +48,7 @@ buildPythonPackage rec {
   # Hence we need to patch away `alembic` from `mautrix-telegram` and create an `alembic`
   # which has `mautrix-telegram` in its environment.
   passthru.alembic = alembic.overrideAttrs (old: {
-    propagatedBuildInputs = old.propagatedBuildInputs ++ [
+    propagatedBuildInputs = old.propagatedBuildInputs ++ dbDrivers ++ [
       mautrix-telegram
     ];
   });
diff --git a/nixpkgs/pkgs/servers/mautrix-whatsapp/default.nix b/nixpkgs/pkgs/servers/mautrix-whatsapp/default.nix
index bb129063e26d..a63d75552cc0 100644
--- a/nixpkgs/pkgs/servers/mautrix-whatsapp/default.nix
+++ b/nixpkgs/pkgs/servers/mautrix-whatsapp/default.nix
@@ -2,30 +2,22 @@
 
 buildGoModule rec {
   pname = "mautrix-whatsapp";
-  version = "0.1.1";
+  version = "0.1.4";
 
   src = fetchFromGitHub {
     owner = "tulir";
     repo = "mautrix-whatsapp";
     rev = "v${version}";
-    sha256 = "0cjgyn311zvpdsagyndkw89bvdrcli5kqznss8dsh05wrllxp3x4";
+    sha256 = "1c77f3ffm6m9j8q9p1hb9i8zrqqpvfkr9ffamly44gs7xddmv9sv";
   };
 
   buildInputs = [ olm ];
 
-  vendorSha256 = "0980p9x62iav6j1w36w2i8pqyv6amnx4ngrgylq2vkjlcgihl2i8";
+  vendorSha256 = "01yr5321paqifmgzz235lknsa0w4hbs3182y6pxw8hqsvh18c48b";
 
-  overrideModAttrs = _: {
-    postBuild = ''
-      rm -r vendor/github.com/chai2010/webp
-      cp -r --reflink=auto ${fetchFromGitHub {
-        owner = "chai2010";
-        repo = "webp";
-        rev = "3da79ec3d682694d42bfd211db18fc1343c07cd7";
-        sha256 = "0gh3g52vz8na153mjmxkl80g3dvrcjw77xpjs1c02vagpj9jyw46";
-      }} vendor/github.com/chai2010/webp
-    '';
-  };
+  doCheck = false;
+
+  runVend = true;
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/tulir/mautrix-whatsapp";
diff --git a/nixpkgs/pkgs/servers/mbtileserver/default.nix b/nixpkgs/pkgs/servers/mbtileserver/default.nix
new file mode 100644
index 000000000000..56309f6f1bb9
--- /dev/null
+++ b/nixpkgs/pkgs/servers/mbtileserver/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "mbtileserver";
+  version = "0.6.1";
+
+  src = fetchFromGitHub {
+    owner = "consbio";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0b0982rn5jsv8zxfkrcmhys764nim6136hafc8ccj0mwdyvwafxd";
+  };
+
+  vendorSha256 = null;
+
+  meta = with lib; {
+    description = "A simple Go-based server for map tiles stored in mbtiles format";
+    homepage = "https://github.com/consbio/mbtileserver";
+    license = licenses.isc;
+    maintainers = with maintainers; [ sikmir ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/meguca/default.nix b/nixpkgs/pkgs/servers/meguca/default.nix
deleted file mode 100644
index 4c5521e97bb5..000000000000
--- a/nixpkgs/pkgs/servers/meguca/default.nix
+++ /dev/null
@@ -1,52 +0,0 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, pkgconfig, cmake, ffmpeg-full
-, ghostscript, graphicsmagick, quicktemplate, go-bindata, easyjson
-, nodePackages, emscripten, opencv, statik }:
-
-buildGoPackage {
-  pname = "meguca-unstable";
-  version = "2019-03-12";
-  goPackagePath = "github.com/bakape/meguca";
-  goDeps = ./server_deps.nix;
-
-  src = fetchFromGitHub {
-    owner = "bakape";
-    repo = "meguca";
-    rev = "21b08de09b38918061c5cd0bbd0dc9bcc1280525";
-    sha256 = "1nb3bf1bscbdma83sp9fbgvmxxlxh21j9h80wakfn85sndcrws5i";
-    fetchSubmodules = true;
-  };
-
-  enableParallelBuilding = true;
-  nativeBuildInputs = [ pkgconfig cmake go-bindata ];
-
-  buildInputs = [
-    ffmpeg-full graphicsmagick ghostscript quicktemplate
-    easyjson emscripten opencv statik
-  ];
-
-  buildPhase = ''
-    export HOME=`pwd`
-    cd go/src/github.com/bakape/meguca
-    ln -sf ${nodePackages.meguca}/lib/node_modules/meguca/node_modules
-    sed -i "/npm install --progress false --depth 0/d" Makefile
-    make -j $NIX_BUILD_CORES generate all
-  '' + stdenv.lib.optionalString (!stdenv.isDarwin) ''
-    make -j $NIX_BUILD_CORES wasm
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin $out/share/meguca
-    cp meguca $out/bin
-    cp -r www $out/share/meguca
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/bakape/meguca";
-    description = "High performance anonymous realtime imageboard";
-    license = licenses.agpl3Plus;
-    maintainers = with maintainers; [ chiiruno ];
-    platforms = platforms.all;
-    broken = true; # Broken on Hydra since 2019-04-18:
-    # https://hydra.nixos.org/build/98885902
-  };
-}
diff --git a/nixpkgs/pkgs/servers/meguca/server_deps.nix b/nixpkgs/pkgs/servers/meguca/server_deps.nix
deleted file mode 100644
index bff9d5624e83..000000000000
--- a/nixpkgs/pkgs/servers/meguca/server_deps.nix
+++ /dev/null
@@ -1,390 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/ErikDubbelboer/gspt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ErikDubbelboer/gspt";
-      rev = "e68493906b8382891943ddc9960cb9c6ecd1a1f0";
-      sha256 = "17xjyg6zw02yzly30hs92pwgn0w85naixr4kb2c0mgp5zavl1ffz";
-    };
-  }
-  {
-    goPackagePath = "github.com/Masterminds/squirrel";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Masterminds/squirrel";
-      rev = "d67d6a236213ef67cff454e09ea1bf742d943f6c";
-      sha256 = "0gzvnws0a29c663hjk379bybvxfmkiic3spkc985hdvn5gkbrwkq";
-    };
-  }
-  {
-    goPackagePath = "github.com/PuerkitoBio/goquery";
-    fetch = {
-      type = "git";
-      url = "https://github.com/PuerkitoBio/goquery";
-      rev = "3dcf72e6c17f694381a21592651ca1464ded0e10";
-      sha256 = "0fpsf6b54z33a7zl28x860jbaj3g5722g8kpqs6rdpaqv99yyvnn";
-    };
-  }
-  {
-    goPackagePath = "github.com/andybalholm/cascadia";
-    fetch = {
-      type = "git";
-      url = "https://github.com/andybalholm/cascadia";
-      rev = "680b6a57bda4f657485ad44bdea42342ead737bc";
-      sha256 = "0v95plagirbjlc4p00y9brhpvv4nm8q0gr63gcfs3shyh1a8xwbm";
-    };
-  }
-  {
-    goPackagePath = "github.com/aquilax/tripcode";
-    fetch = {
-      type = "git";
-      url = "https://github.com/aquilax/tripcode";
-      rev = "1a14b0a5e89f7fdb8a821562569338ad59ab2da5";
-      sha256 = "1ishrg37gkkx04gbchhsk7jp01mmfvln2i2zrncbj4qxs2amnn2l";
-    };
-  }
-  {
-    goPackagePath = "github.com/badoux/goscraper";
-    fetch = {
-      type = "git";
-      url = "https://github.com/badoux/goscraper";
-      rev = "9b4686c4b62c22b0489d53dddf5421605caba33e";
-      sha256 = "1f1wc4s2b6g1ndpihb0gn7cxmwyi4wfqi5slvsk6i6p9q4kxrkvx";
-    };
-  }
-  {
-    goPackagePath = "github.com/bakape/boorufetch";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bakape/boorufetch";
-      rev = "90aee10269a138a08ce49cd91635500336657a82";
-      sha256 = "0zaa2b3bl2hnl4lipghl6mbvpv9sq9r7skykp26c29qy77xy99nk";
-    };
-  }
-  {
-    goPackagePath = "github.com/bakape/captchouli";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bakape/captchouli";
-      rev = "b57177c8d2f239547e9545354e2f55fbc851ab47";
-      sha256 = "1fi24322bbicc2bpfla37nhy2w89cf67345dbybcavgcny5rs65a";
-    };
-  }
-  {
-    goPackagePath = "github.com/bakape/mnemonics";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bakape/mnemonics";
-      rev = "056d8d3259923b93bb0449a45b0c56ac20c77f1b";
-      sha256 = "137dl4bkpszj7pm4dyj222xdvy9lmwsgmm0l6bxni0msc3jdrqkl";
-    };
-  }
-  {
-    goPackagePath = "github.com/bakape/thumbnailer";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bakape/thumbnailer";
-      rev = "3d9565548e572a385b5a1ecf3bb9840c9ccd9949";
-      sha256 = "0zriks4j694y65ryf9xkiz0sc932hskjigmk83bj1069hkgzx9dk";
-    };
-  }
-  {
-    goPackagePath = "github.com/boltdb/bolt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/boltdb/bolt";
-      rev = "fd01fc79c553a8e99d512a07e8e0c63d4a3ccfc5";
-      sha256 = "12f5swiwzcamk87r9j73nn7rmyyday7jkgzfh7x5wdg9blzhrir2";
-    };
-  }
-  {
-    goPackagePath = "github.com/chai2010/webp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chai2010/webp";
-      rev = "76ae9d0b5d6d590fcc9772bf9cf0526128ee6fab";
-      sha256 = "0sanh0c2bvignxnrj9vlzr2sw1bd3cgw2lg0vkn63xxjj3bqmsbh";
-    };
-  }
-  {
-    goPackagePath = "github.com/dimfeld/httptreemux";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dimfeld/httptreemux";
-      rev = "a454a10de4a11f751681a0914461ab9e98c2a3ff";
-      sha256 = "0qx94lij9ldzd1xl36rl8blbgzjz9b4rkpydi44d9lik7qkdi5gp";
-    };
-  }
-  {
-    goPackagePath = "github.com/dsnet/compress";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dsnet/compress";
-      rev = "da652975a8eea9fa0735aba8056747a751db0bd3";
-      sha256 = "1wwjaymzb1xxq3ybch3nwn72xhi2s40cvz0cl986yad3w1xwzj91";
-    };
-  }
-  {
-    goPackagePath = "github.com/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev = "11844c0959f6fff69ba325d097fce35bd85a8e93";
-      sha256 = "0driasljawka9r914530mr9df2i5cwldcgj2v94qkhzlkb48ljwc";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-playground/ansi";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-playground/ansi";
-      rev = "777788a9be1a7296979a999c86b251fc777077a9";
-      sha256 = "1y2pqx04lc7cqg50scfivzw0n8f0dliflnih14f5jf4svff8s561";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-playground/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-playground/errors";
-      rev = "4050dd2e2e3b2052ef736048661d1d23a4a4e55d";
-      sha256 = "0b3bhf2c9fpv095db3ajyb1fz7nxjn7rfg9rjb83hqfm492wjy86";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-playground/log";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-playground/log";
-      rev = "fdcdf507e3bf20900bc1a44b0cbd73fee5bcbe19";
-      sha256 = "0mbzawm09n2kggrkmj0khrhipmdi191z01mw120ahbmmjdjls749";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/snappy";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/snappy";
-      rev = "2a8bb927dd31d8daada140a5d09578521ce5c36a";
-      sha256 = "0gp3kkzlm3wh37kgkhbqxq3zx07iqbgis5w9mf4d64h6vjq760is";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/handlers";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/handlers";
-      rev = "ac6d24f88de4584385a0cb3a88f953d08a2f7a05";
-      sha256 = "166p7yw2sy6lbxgyk722phkskmxzv3v21vf0l145zicrn30m9zli";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/websocket";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/websocket";
-      rev = "0ec3d1bd7fe50c503d6df98ee649d81f4857c564";
-      sha256 = "0mdq489izwy20bpjg31k8qnfgvh5r7mm5yq709q6xyzmzdd5nasx";
-    };
-  }
-  {
-    goPackagePath = "github.com/julienschmidt/httprouter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/julienschmidt/httprouter";
-      rev = "26a05976f9bf5c3aa992cc20e8588c359418ee58";
-      sha256 = "0bmvrgg373fxwqsr6nri01bmi9qdj6knxkmnbw70h9rmi2d9c585";
-    };
-  }
-  {
-    goPackagePath = "github.com/lann/builder";
-    fetch = {
-      type = "git";
-      url = "https://github.com/lann/builder";
-      rev = "47ae307949d02aa1f1069fdafc00ca08e1dbabac";
-      sha256 = "1kg9jy1rciznj627hafpq2mi7hr5d3ssgqcpwrm3bnlk9sqnydil";
-    };
-  }
-  {
-    goPackagePath = "github.com/lann/ps";
-    fetch = {
-      type = "git";
-      url = "https://github.com/lann/ps";
-      rev = "62de8c46ede02a7675c4c79c84883eb164cb71e3";
-      sha256 = "10yhcyymypvdiiipchsp80jbglk8c4r7lq7h54v9f4mxmvz6xgf7";
-    };
-  }
-  {
-    goPackagePath = "github.com/lib/pq";
-    fetch = {
-      type = "git";
-      url = "https://github.com/lib/pq";
-      rev = "9eb73efc1fcc404148b56765b0d3f61d9a5ef8ee";
-      sha256 = "17wkjdz265iqf92gj3ljslvjcqvkfblw11jdq2scc3kp1hcsfr10";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-sqlite3";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-sqlite3";
-      rev = "ad30583d8387ce8118f8605eaeb3b4f7b4ae0ee1";
-      sha256 = "024h09n4g41x4awzim5l0vxpj1nfwc9isf8bryrdnichpqpa6siz";
-    };
-  }
-  {
-    goPackagePath = "github.com/nwaples/rardecode";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nwaples/rardecode";
-      rev = "197ef08ef68c4454ae5970a9c2692d6056ceb8d7";
-      sha256 = "0vvijw7va283dbdvnf4bgkn7bjngxqzk1rzdpy8sl343r62bmh4g";
-    };
-  }
-  {
-    goPackagePath = "github.com/oschwald/maxminddb-golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/oschwald/maxminddb-golang";
-      rev = "fc04c43d3c694a35570a7e4358b0f4d4ac3fea32";
-      sha256 = "16bz3g8mkg2xhb4pxcpk6scxrmn48485jgky7wvi4gzpizlhsxxq";
-    };
-  }
-  {
-    goPackagePath = "github.com/otium/ytdl";
-    fetch = {
-      type = "git";
-      url = "https://github.com/otium/ytdl";
-      rev = "5c8ee71b4175be285baaff66147458254884f748";
-      sha256 = "1w22cfc6nr7z5fc3hmcymmx2xfcb66ylhfs89vn4i19ksxbkkcjk";
-    };
-  }
-  {
-    goPackagePath = "github.com/pierrec/lz4";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pierrec/lz4";
-      rev = "062282ea0dcff40c9fb8525789eef9644b1fbd6e";
-      sha256 = "04lzigxv2f4yv9gr1dybsjkcnmv1lj0mx9ls2ry1pzy2l9z6i6cp";
-    };
-  }
-  {
-    goPackagePath = "github.com/rakyll/statik";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rakyll/statik";
-      rev = "79258177a57a85a8ab2eca7ce0936aad80307f4e";
-      sha256 = "14wqh38a7dhm2jgr1lsl2wdvjmkgdapzl2z4a1vl7ncv3x43gkg5";
-    };
-  }
-  {
-    goPackagePath = "github.com/sevlyar/go-daemon";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sevlyar/go-daemon";
-      rev = "fedf95d0cd0be92511436dbc84c290ff1c104f61";
-      sha256 = "1ffjgx75wvpharzq60aqbpl78z1jwx13b21ifcadm1f976vdjq1q";
-    };
-  }
-  {
-    goPackagePath = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev = "dae0fa8d5b0c810a8ab733fbd5510c7cae84eca4";
-      sha256 = "1y1qjcg19z7q9sy32rhc148kdql2aw7xkcm9d6r1blrl0mdgpx0w";
-    };
-  }
-  {
-    goPackagePath = "github.com/ulikunitz/xz";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ulikunitz/xz";
-      rev = "6f934d456d51e742b4eeab20d925a827ef22320a";
-      sha256 = "1qpk02c0nfgfyg110nmbaiy5x12fpn0pm8gy7h1s8pwns133n831";
-    };
-  }
-  {
-    goPackagePath = "github.com/valyala/bytebufferpool";
-    fetch = {
-      type = "git";
-      url = "https://github.com/valyala/bytebufferpool";
-      rev = "cdfbe9377474227bb42120c1e22fd4433e7f69bf";
-      sha256 = "0c6cixd85dvl2gvs7sdh0k2wm8r3grl4fw0jg4w7d78cp8s2k7ag";
-    };
-  }
-  {
-    goPackagePath = "github.com/valyala/quicktemplate";
-    fetch = {
-      type = "git";
-      url = "https://github.com/valyala/quicktemplate";
-      rev = "d08324ac14fa81325830fae7eb30188ec68427f8";
-      sha256 = "0gpc1kcqvcn1f9mz2dww8bhrspnsk2fgxzvx398vy7a0xhxq8vhx";
-    };
-  }
-  {
-    goPackagePath = "gitlab.com/nyarla/go-crypt";
-    fetch = {
-      type = "git";
-      url = "https://gitlab.com/nyarla/go-crypt.git";
-      rev = "d9a5dc2b789bc330075d4b805d9b7c971f2865a1";
-      sha256 = "0249hbwvhy0xywi9b5k8964km27pvfkr3jvliy3azri6vnyvkkx1";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "c2843e01d9a2bc60bb26ad24e09734fdc2d9ec58";
-      sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "d8887717615a059821345a5c23649351b52a1c0b";
-      sha256 = "1wfm6ngxjyj7v5a2dqib6lw8bb2rdnf1kl48diykxjrsddn0s163";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "fead79001313d15903fb4605b4a1b781532cd93e";
-      sha256 = "12vwl6sv6w7q0dyvynjhbp67242rhh77d6nlsb22ajr8rf17c63i";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "5d731a35f4867878fc89f7744f7b6debb3beded6";
-      sha256 = "1ipmjki0i0dvpal1g0vgr8qc77kkvw3ka6yxlm0qzjk9j3579bsq";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/gomail.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/gomail.v2";
-      rev = "81ebce5c23dfd25c6c67194b37d3dd3f338c98b1";
-      sha256 = "0zdykrv5s19lnq0g49p6njldy4cpk4g161vyjafiw7f84h8r28mc";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/mholt/archiver.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/mholt/archiver.v2";
-      rev = "de0d89e255e17c8d75a40122055763e743ab0593";
-      sha256 = "02fsc0za0yi3dg0r5caa8vpxz6kqxjxxlmwzzj5899dlmdvqk57g";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/servers/mesos-dns/default.nix b/nixpkgs/pkgs/servers/mesos-dns/default.nix
index 8430f2d61e8e..e26b13bb25ab 100644
--- a/nixpkgs/pkgs/servers/mesos-dns/default.nix
+++ b/nixpkgs/pkgs/servers/mesos-dns/default.nix
@@ -4,7 +4,7 @@ buildGoPackage rec {
   pname = "mesos-dns";
   version = "0.1.2";
   rev = "v${version}";
-  
+
   goPackagePath = "github.com/mesosphere/mesos-dns";
 
   # Avoid including the benchmarking test helper in the output:
diff --git a/nixpkgs/pkgs/servers/metabase/default.nix b/nixpkgs/pkgs/servers/metabase/default.nix
index a85e6bbf71ea..2298ecc84ce0 100644
--- a/nixpkgs/pkgs/servers/metabase/default.nix
+++ b/nixpkgs/pkgs/servers/metabase/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "metabase";
-  version = "0.35.4";
+  version = "0.36.4";
 
   src = fetchurl {
     url = "http://downloads.metabase.com/v${version}/metabase.jar";
-    sha256 = "1mggrkd4ih8fak4nk3a8z5677nblvihjvkvgmix080cps44bcfd8";
+    sha256 = "1k6f22ii9vga8j9jxipl1r55msxgag0lbkjxw7vf285z1hdhwylq";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/microserver/default.nix b/nixpkgs/pkgs/servers/microserver/default.nix
new file mode 100644
index 000000000000..9132ef9672bd
--- /dev/null
+++ b/nixpkgs/pkgs/servers/microserver/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchFromGitHub, rustPlatform }:
+
+rustPlatform.buildRustPackage rec {
+   pname = "microserver";
+   version = "0.1.8";
+
+  src = fetchFromGitHub {
+    owner = "robertohuertasm";
+    repo = "microserver";
+    rev = "v${version}";
+    sha256 = "1i9689ra5jnmhkxabrx4zcp5f422w9ql9m4xzldqwmpnckm736v6";
+  };
+
+  cargoSha256 = "1yn3xmmhpixiviayicl2szlzfjx5crffp3pq75d5nz6ky3miai9l";
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/robertohuertasm/microserver";
+    description = "Simple ad-hoc server with SPA support";
+    maintainers = with maintainers; [ flosse ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/miniflux/default.nix b/nixpkgs/pkgs/servers/miniflux/default.nix
index 8420f53aba3c..55a328b21d55 100644
--- a/nixpkgs/pkgs/servers/miniflux/default.nix
+++ b/nixpkgs/pkgs/servers/miniflux/default.nix
@@ -1,17 +1,20 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles }:
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles, nixosTests }:
 
-buildGoPackage rec {
+let
   pname = "miniflux";
-  version = "2.0.21";
+  version = "2.0.23";
+
+in buildGoModule {
+  inherit pname version;
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "0yhzmfs35jfc7vq26r9c14v4lnv8sxj3pv23r2cx2rfx47b1zmk7";
+    sha256 = "0v0n5lvrfn3ngs1s1m3hv95dvnqn8ysksb044m4ifk2cr3b77ryc";
   };
 
-  goPackagePath = "miniflux.app";
+  vendorSha256 = "1iin5r9l8wb9gm0bwgdmpx0cp1q35ij4y7zf98lnj2kvb3jv5crp";
 
   nativeBuildInputs = [ installShellFiles ];
 
@@ -23,9 +26,11 @@ buildGoPackage rec {
 
   postInstall = ''
     mv $out/bin/miniflux.app $out/bin/miniflux
-    installManPage go/src/${goPackagePath}/miniflux.1
+    installManPage miniflux.1
   '';
 
+  passthru.tests = nixosTests.miniflux;
+
   meta = with stdenv.lib; {
     description = "Minimalist and opinionated feed reader";
     homepage = "https://miniflux.app/";
@@ -33,4 +38,3 @@ buildGoPackage rec {
     maintainers = with maintainers; [ rvolosatovs benpye ];
   };
 }
-
diff --git a/nixpkgs/pkgs/servers/minio/default.nix b/nixpkgs/pkgs/servers/minio/default.nix
index 9f9796b3a5e6..4a14dca660b3 100644
--- a/nixpkgs/pkgs/servers/minio/default.nix
+++ b/nixpkgs/pkgs/servers/minio/default.nix
@@ -2,22 +2,35 @@
 
 buildGoModule rec {
   pname = "minio";
-  version = "2020-05-01T22-19-14Z";
+  version = "2020-08-08T04-50-06Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "minio";
     rev = "RELEASE.${version}";
-    sha256 = "0yyq5j82rcl8yhn2jg8sjfxii6kzbrbmxvb05yiwv7p0q42ag5rn";
+    sha256 = "0l5yd3k154h3q9sc5psv80n9wpnhpj5sb3r9v9gsqcam46ljwpna";
   };
 
-  vendorSha256 = "15yx5nkyf424v42glg3cx0gkqckdfv1xn25570s9cwf8zid0zlxd";
+  vendorSha256 = "1xxhvgawkj2lq39cxgl4l5v41m6nsask79n2cxfpcgb00fqq147x";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
-  buildFlagsArray = [''-ldflags=
-    -s -w -X github.com/minio/minio/cmd.Version=${version}
-  ''];
+  patchPhase = ''
+    sed -i "s/Version.*/Version = \"${version}\"/g" cmd/build-constants.go
+    sed -i "s/ReleaseTag.*/ReleaseTag = \"RELEASE.${version}\"/g" cmd/build-constants.go
+    sed -i "s/CommitID.*/CommitID = \"${src.rev}\"/g" cmd/build-constants.go
+  '';
+
+  postConfigure = ''
+    export CGO_ENABLED=0
+  '';
+
+  buildFlagsArray = [
+    "-tags=kqueue"
+    "-trimpath"
+  ];
 
   passthru.tests.minio = nixosTests.minio;
 
@@ -28,4 +41,4 @@ buildGoModule rec {
     platforms = platforms.unix;
     license = licenses.asl20;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/mirrorbits/default.nix b/nixpkgs/pkgs/servers/mirrorbits/default.nix
index 0761468bd1ff..653ca399fcff 100644
--- a/nixpkgs/pkgs/servers/mirrorbits/default.nix
+++ b/nixpkgs/pkgs/servers/mirrorbits/default.nix
@@ -30,6 +30,7 @@ buildGoPackage rec {
   '';
 
   goPackagePath = "github.com/etix/mirrorbits";
+  deleteVendor = true;
   goDeps = ./deps.nix;
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/servers/misc/navidrome/default.nix b/nixpkgs/pkgs/servers/misc/navidrome/default.nix
new file mode 100644
index 000000000000..a14a5039721d
--- /dev/null
+++ b/nixpkgs/pkgs/servers/misc/navidrome/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchurl, ffmpeg, ffmpegSupport ? true, makeWrapper }:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  pname = "navidrome";
+  version = "0.29.0";
+
+  src = fetchurl {
+    url = "https://github.com/deluan/navidrome/releases/download/v${version}/navidrome_${version}_Linux_x86_64.tar.gz";
+    sha256 = "0dpv68wvrslgfgh18mb8ficji6k1i9jiid9bfw786andf4rwghyc";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  unpackPhase = ''
+     tar xvf $src navidrome
+  '';
+
+  installPhase = ''
+     mkdir -p $out/bin
+     cp navidrome $out/bin
+  '';
+
+  postFixup = ''
+    wrapProgram $out/bin/navidrome \
+      --prefix PATH : ${makeBinPath (optional ffmpegSupport ffmpeg)}
+  '';
+  
+  meta = {
+    description = "Navidrome Music Server and Streamer compatible with Subsonic/Airsonic";
+    homepage = "https://www.navidrome.org/";
+    license = licenses.gpl3;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ aciceri ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/misc/oven-media-engine/default.nix b/nixpkgs/pkgs/servers/misc/oven-media-engine/default.nix
new file mode 100644
index 000000000000..c207a33848dd
--- /dev/null
+++ b/nixpkgs/pkgs/servers/misc/oven-media-engine/default.nix
@@ -0,0 +1,69 @@
+{ stdenv
+, fetchFromGitHub
+, srt
+, ffmpeg_3_4
+, bc
+, pkgconfig
+, perl
+, openssl
+, zlib
+, ffmpeg
+, libvpx
+, libopus
+, srtp
+, jemalloc
+, ... }:
+
+let
+  ffmpeg = ffmpeg_3_4.overrideAttrs (super: {
+    pname = "${super.pname}-ovenmediaengine";
+    src = fetchFromGitHub {
+      owner = "Airensoft";
+      repo = "FFmpeg";
+      rev = "142b4bb64b64e337f80066e6af935a68627fedae";  # ome/3.4
+      sha256 = "0fla3940q3z0c0ik2xzkbvdfvrdg06ban7wi6y94y8mcipszpp11";
+    };
+  });
+in
+stdenv.mkDerivation rec {
+  pname = "oven-media-engine";
+  version = "0.10.4";
+
+  src = fetchFromGitHub {
+    owner = "AirenSoft";
+    repo = "OvenMediaEngine";
+    rev = "v${version}";
+    sha256 = "15lrlynsldlpa21ryzccf5skgiih6y5fc9qg0bfqh557wnnmml6w";
+  };
+
+  sourceRoot = "source/src";
+  makeFlags = "release CONFIG_LIBRARY_PATHS= CONFIG_PKG_PATHS= GLOBAL_CC=$(CC) GLOBAL_CXX=$(CXX) GLOBAL_LD=$(CXX) SHELL=${stdenv.shell}";
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [ bc pkgconfig perl ];
+  buildInputs = [ openssl srt zlib ffmpeg libvpx libopus srtp jemalloc ];
+
+  preBuild = ''
+    patchShebangs core/colorg++
+    patchShebangs core/colorgcc
+    patchShebangs projects/main/update_git_info.sh
+
+    sed -i -e '/^CC =/d' -e '/^CXX =/d' -e '/^AR =/d' projects/third_party/pugixml-1.9/scripts/pugixml.make
+  '';
+
+  installPhase = ''
+    install -Dm0755 bin/RELEASE/OvenMediaEngine $out/bin/OvenMediaEngine
+    install -Dm0644 ../misc/conf_examples/Origin.xml $out/share/examples/origin_conf/Server.xml
+    install -Dm0644 ../misc/conf_examples/Logger.xml $out/share/examples/origin_conf/Logger.xml
+    install -Dm0644 ../misc/conf_examples/Edge.xml $out/share/examples/edge_conf/Server.xml
+    install -Dm0644 ../misc/conf_examples/Logger.xml $out/share/examples/edge_conf/Logger.xml
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Open-source streaming video service with sub-second latency";
+    homepage    = "https://ovenmediaengine.com";
+    license     = licenses.gpl2;
+    maintainers = with maintainers; [ lukegb ];
+    platforms   = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/alertmanager-bot/default.nix b/nixpkgs/pkgs/servers/monitoring/alertmanager-bot/default.nix
index 8677a8d03f26..f28ef6617c7a 100644
--- a/nixpkgs/pkgs/servers/monitoring/alertmanager-bot/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/alertmanager-bot/default.nix
@@ -19,7 +19,6 @@ buildGoPackage rec {
     description = "Bot for Prometheus' Alertmanager";
     homepage = "https://github.com/metalmatze/alertmanager-bot";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ mmahut ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/monitoring/do-agent/default.nix b/nixpkgs/pkgs/servers/monitoring/do-agent/default.nix
index 1d6bb7198e5b..bbfdc97b6dc8 100644
--- a/nixpkgs/pkgs/servers/monitoring/do-agent/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/do-agent/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "do-agent";
-  version = "3.5.6";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "digitalocean";
     repo = "do-agent";
     rev = "${version}";
-    sha256 = "1gl034cslqa30fqy2p9rymgx398s1rcgbmfvzk5zjlrw47327k8i";
+    sha256 = "024fs2yln2i4s5aihwlz103w5wvmcwqx7hz9q3fw3dm18k3fjmn2";
   };
 
   buildFlagsArray = ''
@@ -18,6 +18,12 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
+  doCheck = false;
+
+  postInstall = ''
+    install -Dm444 -t $out/lib/systemd/system $src/packaging/etc/systemd/system/do-agent.service
+  '';
+
   meta = with lib; {
     description = "DigitalOcean droplet system metrics agent";
     longDescription = ''
@@ -30,4 +36,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ yvt ];
     platforms = platforms.linux;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/grafana/default.nix b/nixpkgs/pkgs/servers/monitoring/grafana/default.nix
index cb1bff7ba88f..975c09225101 100644
--- a/nixpkgs/pkgs/servers/monitoring/grafana/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/grafana/default.nix
@@ -1,8 +1,8 @@
-{ lib, buildGoModule, fetchurl, fetchFromGitHub }:
+{ lib, buildGoModule, fetchurl, fetchFromGitHub, nixosTests }:
 
 buildGoModule rec {
   pname = "grafana";
-  version = "7.0.3";
+  version = "7.2.0";
 
   excludedPackages = [ "release_publisher" ];
 
@@ -10,15 +10,15 @@ buildGoModule rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    sha256 = "1s5hq7icfnaiq7msk7vdz30wdhw13s115vg8ws7gqv5sl1hi0vlg";
+    sha256 = "1pzsg6kr5kq5767plji7m6ssy2z9jxjp9zp182baxjd634mmclcx";
   };
 
   srcStatic = fetchurl {
     url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
-    sha256 = "1wk991nvm6a18mah37dh0sdi72gdshpzdi367v7fpz2b9vd65b4g";
+    sha256 = "003sn06r94m68b6l91cjr3xr3i7hq54ay0gb562i6y5swrfkqqwz";
   };
 
-  vendorSha256 = "00xvpxhnvxdf030978paywl794mlmgqzd94b64hh67946acnbjcl";
+  vendorSha256 = "1b33kibvfa1qgalqb9ngxqimcn92cy8sllsc81wc9gmz4giz9mn1";
 
   postPatch = ''
     substituteInPlace pkg/cmd/grafana-server/main.go \
@@ -31,6 +31,8 @@ buildGoModule rec {
     mv grafana-*/{public,conf,tools} $out/share/grafana/
   '';
 
+  passthru.tests = { inherit (nixosTests) grafana; };
+
   meta = with lib; {
     description = "Gorgeous metric viz, dashboards & editors for Graphite, InfluxDB & OpenTSDB";
     license = licenses.asl20;
diff --git a/nixpkgs/pkgs/servers/monitoring/kapacitor/default.nix b/nixpkgs/pkgs/servers/monitoring/kapacitor/default.nix
index 6f2e51fffd61..0a15daf71c61 100644
--- a/nixpkgs/pkgs/servers/monitoring/kapacitor/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/kapacitor/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "kapacitor";
-  version = "1.5.5";
+  version = "1.5.6";
 
   goPackagePath = "github.com/influxdata/kapacitor";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "influxdata";
     repo = "kapacitor";
     rev = "v${version}";
-    sha256 = "17zk7fs6yl5hmhr3inwkafwmg2ihaicj43gdi5888dinhpa9bij1";
+    sha256 = "1jb04lnxjrms7x5nlrsd1s465rramm9z4zkqpfw1vfdsqa2dd8rc";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/servers/monitoring/loki/default.nix b/nixpkgs/pkgs/servers/monitoring/loki/default.nix
index 668695aa8df2..ec9d56f2cbb7 100644
--- a/nixpkgs/pkgs/servers/monitoring/loki/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/loki/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, makeWrapper, systemd }:
+{ stdenv, lib, buildGoPackage, fetchFromGitHub, makeWrapper, systemd }:
 
 buildGoPackage rec {
-  version = "1.5.0";
+  version = "1.6.1";
   pname = "grafana-loki";
   goPackagePath = "github.com/grafana/loki";
 
@@ -11,7 +11,7 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "loki";
-    sha256 = "137lnd69p8qfg2z8l32dr1mrk2lhrxjx392xfij11sy5i9blfc3n";
+    sha256 = "0bakskzizazc5cd6km3n6facc5val5567zinnxg3yjy29xdi64ww";
   };
 
   postPatch = ''
@@ -25,7 +25,7 @@ buildGoPackage rec {
 
   preFixup = stdenv.lib.optionalString stdenv.isLinux ''
     wrapProgram $out/bin/promtail \
-      --prefix LD_LIBRARY_PATH : "${systemd.lib}/lib"
+      --prefix LD_LIBRARY_PATH : "${lib.getLib systemd}/lib"
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/servers/monitoring/mtail/default.nix b/nixpkgs/pkgs/servers/monitoring/mtail/default.nix
index d701a7ca001e..8bd222ddbebf 100644
--- a/nixpkgs/pkgs/servers/monitoring/mtail/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/mtail/default.nix
@@ -2,16 +2,19 @@
 
 buildGoModule rec {
   pname = "mtail";
-  version = "3.0.0-rc35";
+  version = "3.0.0-rc36";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "mtail";
     rev = "v${version}";
-    sha256 = "04hzr0cw0dq7hmqvp1lhm5wl239yrxmcpsl25sqk74wy06cgrrqd";
+    sha256 = "1xdpjzcr143f7430wl9l6zzq9yhbkirr3fbfw60f10zpglrcx8a4";
   };
 
-  vendorSha256 = "1km3ldqz35lpkglp9n332vxr38xxfqyij1fi2qq0agyyydbvakj5";
+  vendorSha256 = "02fnvy897cygmipc5snza556qihjwrp1lf9qi9f5dzarphd6d0pw";
+
+  doCheck = false;
+
   subPackages = [ "cmd/mtail" ];
 
   preBuild = ''
@@ -27,4 +30,4 @@ buildGoModule rec {
     homepage = "https://github.com/google/mtail";
     description = "Tool for extracting metrics from application logs";
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/munin/default.nix b/nixpkgs/pkgs/servers/monitoring/munin/default.nix
index 22828e574497..435e613a9894 100644
--- a/nixpkgs/pkgs/servers/monitoring/munin/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/munin/default.nix
@@ -3,14 +3,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.0.63";
+  version = "2.0.64";
   pname = "munin";
 
   src = fetchFromGitHub {
     owner = "munin-monitoring";
     repo = "munin";
     rev = version;
-    sha256 = "0p1gzy6in15d6596b260qa0a144x8n8567cxdq0x4arw18004s3a";
+    sha256 = "00gvvy7s2h1kxdxss7n63ir87fn66kq48lp94ackdyj49526maz4";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/servers/monitoring/nagios/default.nix b/nixpkgs/pkgs/servers/monitoring/nagios/default.nix
index b8246c27b47d..12957f6d1bb5 100644
--- a/nixpkgs/pkgs/servers/monitoring/nagios/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/nagios/default.nix
@@ -14,6 +14,7 @@ stdenv.mkDerivation rec {
 
   configureFlags = [ "--localstatedir=/var/lib/nagios" ];
   buildFlags = [ "all" ];
+  CFLAGS = "-ldl";
 
   # Do not create /var directories
   preInstall = ''
@@ -36,6 +37,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://www.nagios.org/";
     license     = stdenv.lib.licenses.gpl2;
     platforms   = stdenv.lib.platforms.linux;
-    maintainers = with stdenv.lib.maintainers; [ thoughtpolice relrod ];
+    maintainers = with stdenv.lib.maintainers; [ immae thoughtpolice relrod ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/monitoring/plugins/wmiplus/default.nix b/nixpkgs/pkgs/servers/monitoring/plugins/wmiplus/default.nix
index 9a4e5d706e93..dacd4e2c5b7b 100644
--- a/nixpkgs/pkgs/servers/monitoring/plugins/wmiplus/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/plugins/wmiplus/default.nix
@@ -4,7 +4,7 @@
 
 stdenv.mkDerivation rec {
   pname = "check-wmiplus";
-  version = "1.64";
+  version = "1.65";
 
   # We fetch from github.com instead of the proper upstream as nix-build errors
   # out with 406 when trying to fetch the sources
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
     owner = "speartail";
     repo = "checkwmiplus";
     rev = "v${version}";
-    sha256 = "1m36rd2wnc5dk4mm9q4ch67w19144dl112p9s6lhc1sh6h25ln6r";
+    sha256 = "1as0iyhy4flpm37mb7lvah7rnd6ax88appjm1icwhy7iq03wi8pl";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix
index 0e1cc52c91c5..33f93cd130dd 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/apcupsd-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
 
 buildGoModule rec {
   pname = "apcupsd-exporter";
@@ -13,11 +13,14 @@ buildGoModule rec {
 
   vendorSha256 = "09x8y8pmgfn897hvnk122ry460y12b8a7y5fafri5wn9vxab9r82";
 
+  doCheck = false;
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) apcupsd; };
+
   meta = with stdenv.lib; {
     description = "Provides a Prometheus exporter for the apcupsd Network Information Server (NIS)";
     homepage = "https://github.com/mdlayher/apcupsd_exporter";
     license = licenses.mit;
-    maintainers = with maintainers; [ maintainers."1000101" mdlayher ];
-    platforms = platforms.all;
+    maintainers = with maintainers; [ _1000101 mdlayher ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix
index 21c469694c83..6f1a3f21f5b2 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter.nix
@@ -6,8 +6,6 @@ buildGoPackage rec {
 
   goPackagePath = "github.com/ribbybibby/s3_exporter";
 
-  goDeps = ./aws-s3-exporter_deps.nix;
-
   src = fetchFromGitHub {
     owner = "ribbybibby";
     repo = "s3_exporter";
@@ -22,6 +20,5 @@ buildGoPackage rec {
     homepage = "https://github.com/ribbybibby/s3_exporter";
     license = licenses.asl20;
     maintainers = [ maintainers.mmahut ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter_deps.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter_deps.nix
deleted file mode 100644
index 5ca160cb16f9..000000000000
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/aws-s3-exporter_deps.nix
+++ /dev/null
@@ -1,336 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "github.com/alecthomas/template";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/template";
-      rev = "a0175ee3bccc";
-      sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev = "2efee857e7cf";
-      sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
-    };
-  }
-  {
-    goPackagePath = "github.com/aws/aws-sdk-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/aws/aws-sdk-go";
-      rev = "v1.20.1";
-      sha256 = "0nhdkkcm11d2n2974kph6jjhddkp1fjbcpfgmalabc798gmqfg54";
-    };
-  }
-  {
-    goPackagePath = "github.com/beorn7/perks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/beorn7/perks";
-      rev = "v1.0.0";
-      sha256 = "1i1nz1f6g55xi2y3aiaz5kqfgvknarbfl4f0sx4nyyb4s7xb1z9x";
-    };
-  }
-  {
-    goPackagePath = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev = "v1.1.1";
-      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-kit/kit";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-kit/kit";
-      rev = "v0.8.0";
-      sha256 = "1rcywbc2pvab06qyf8pc2rdfjv7r6kxdv2v4wnpqnjhz225wqvc0";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-logfmt/logfmt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-logfmt/logfmt";
-      rev = "v0.3.0";
-      sha256 = "1gkgh3k5w1xwb2qbjq52p6azq3h1c1rr6pfwjlwj1zrijpzn2xb9";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-stack/stack";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-stack/stack";
-      rev = "v1.8.0";
-      sha256 = "0wk25751ryyvxclyp8jdk5c3ar0cmfr8lrjb66qbg4808x66b96v";
-    };
-  }
-  {
-    goPackagePath = "github.com/gogo/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gogo/protobuf";
-      rev = "v1.1.1";
-      sha256 = "1525pq7r6h3s8dncvq8gxi893p2nq8dxpzvq0nfl5b4p6mq0v1c2";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "v1.3.1";
-      sha256 = "15am4s4646qy6iv0g3kkqq52rzykqjhm4bf08dk0fy2r58knpsyl";
-    };
-  }
-  {
-    goPackagePath = "github.com/jmespath/go-jmespath";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jmespath/go-jmespath";
-      rev = "c2b33e8439af";
-      sha256 = "1r6w7ydx8ydryxk3sfhzsk8m6f1nsik9jg3i1zhi69v4kfl4d5cz";
-    };
-  }
-  {
-    goPackagePath = "github.com/json-iterator/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/json-iterator/go";
-      rev = "v1.1.6";
-      sha256 = "08caswxvdn7nvaqyj5kyny6ghpygandlbw9vxdj7l5vkp7q0s43r";
-    };
-  }
-  {
-    goPackagePath = "github.com/julienschmidt/httprouter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/julienschmidt/httprouter";
-      rev = "v1.2.0";
-      sha256 = "1k8bylc9s4vpvf5xhqh9h246dl1snxrzzz0614zz88cdh8yzs666";
-    };
-  }
-  {
-    goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
-    fetch = {
-      type = "git";
-      url = "https://github.com/konsorten/go-windows-terminal-sequences";
-      rev = "v1.0.2";
-      sha256 = "09mn209ika7ciy87xf2x31dq5fnqw39jidgaljvmqxwk7ff1hnx7";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/logfmt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/logfmt";
-      rev = "b84e30acd515";
-      sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9";
-    };
-  }
-  {
-    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matttproud/golang_protobuf_extensions";
-      rev = "v1.0.1";
-      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
-    };
-  }
-  {
-    goPackagePath = "github.com/modern-go/concurrent";
-    fetch = {
-      type = "git";
-      url = "https://github.com/modern-go/concurrent";
-      rev = "bacd9c7ef1dd";
-      sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs";
-    };
-  }
-  {
-    goPackagePath = "github.com/modern-go/reflect2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/modern-go/reflect2";
-      rev = "v1.0.1";
-      sha256 = "06a3sablw53n1dqqbr2f53jyksbxdmmk8axaas4yvnhyfi55k4lf";
-    };
-  }
-  {
-    goPackagePath = "github.com/mwitkow/go-conntrack";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mwitkow/go-conntrack";
-      rev = "cc309e4a2223";
-      sha256 = "0nbrnpk7bkmqg9mzwsxlm0y8m7s9qd9phr1q30qlx2qmdmz7c1mf";
-    };
-  }
-  {
-    goPackagePath = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev = "v0.8.0";
-      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
-    };
-  }
-  {
-    goPackagePath = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev = "v1.0.0";
-      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_golang";
-      rev = "v0.9.4";
-      sha256 = "0s134fj4i7k6pxdmxwkdi7amb1882yq33spv15hg3pkpbd3h311p";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "fd36f4220a90";
-      sha256 = "1bs5d72k361llflgl94c22n0w53j30rsfh84smgk8mbjbcmjsaa5";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/common";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/common";
-      rev = "v0.4.1";
-      sha256 = "0sf4sjdckblz1hqdfvripk3zyp8xq89w7q75kbsyg4c078af896s";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/procfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/procfs";
-      rev = "v0.0.2";
-      sha256 = "0s7pvs7fgnfpmym3cd0k219av321h9sf3yvdlnn3qy0ps280lg7k";
-    };
-  }
-  {
-    goPackagePath = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev = "v1.4.2";
-      sha256 = "087k2lxrr9p9dh68yw71d05h5g9p5v26zbwd6j7lghinjfaw334x";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/objx";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/objx";
-      rev = "v0.1.1";
-      sha256 = "0iph0qmpyqg4kwv8jsx6a56a7hhqq8swrazv40ycxk9rzr0s8yls";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev = "v1.3.0";
-      sha256 = "0wjchp2c8xbgcbbq32w3kvblk6q6yn533g78nxl6iskq6y95lxsy";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "c2843e01d9a2";
-      sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "d28f0bde5980";
-      sha256 = "18xj31h70m7xxb7gc86n9i21w6d7djbjz67zfaljm4jqskz6hxkf";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "37e7f081c4d4";
-      sha256 = "1bb0mw6ckb1k7z8v3iil2qlqwfj408fvvp8m1cik2b46p7snyjhm";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "b47fdc937951";
-      sha256 = "17k4qwql2zizrxwjd0qv0gccwgyyv2axiha1vh5lrjfps1h5kli7";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "v0.3.2";
-      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "90fa682c2a6e";
-      sha256 = "03ic2xsy51jw9749wl7gszdbz99iijbd2bckgygl6cm9w5m364ak";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v2";
-      rev = "v2.2.6";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "20d25e280405";
-      sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.1";
-      sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/bind-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/bind-exporter.nix
index d27fd094aa66..3913cbd5f852 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/bind-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/bind-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "bind_exporter";
@@ -14,6 +14,8 @@ buildGoPackage rec {
     sha256 = "1nd6pc1z627w4x55vd42zfhlqxxjmfsa9lyn0g6qq19k4l85v1qm";
   };
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) bind; };
+
   meta = with stdenv.lib; {
     description = "Prometheus exporter for bind9 server";
     homepage = "https://github.com/digitalocean/bind_exporter";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix
index b44ebd35e9a7..45d70d47d6e8 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix
@@ -1,8 +1,8 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "blackbox_exporter";
-  version = "0.16.0";
+  version = "0.17.0";
   rev = version;
 
   goPackagePath = "github.com/prometheus/blackbox_exporter";
@@ -11,17 +11,19 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "prometheus";
     repo = "blackbox_exporter";
-    sha256 = "1zbf3ljasv0r91rrmk3mj5nhimaf7xg3aih1ldz27rh5yww7gyzg";
+    sha256 = "00ganz6wfwyb9avkp2fr4bwpzvfiffsmpgndl8zp80bk7m1b3mnz";
   };
 
   # dns-lookup is performed for the tests
   doCheck = false;
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) blackbox; };
+
   meta = with stdenv.lib; {
     description = "Blackbox probing of endpoints over HTTP, HTTPS, DNS, TCP and ICMP";
     homepage = "https://github.com/prometheus/blackbox_exporter";
     license = licenses.asl20;
-    maintainers = with maintainers; [ globin fpletz willibutz ];
+    maintainers = with maintainers; [ globin fpletz willibutz Frostman ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/collectd-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/collectd-exporter.nix
index 95b6c0640344..12f9cd3d3501 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/collectd-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/collectd-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "collectd-exporter";
@@ -14,6 +14,8 @@ buildGoPackage rec {
     sha256 = "1p0kb7c8g0r0sp5a6xrx8vnwbw14hhwlqzk4n2xx2y8pvnbivajz";
   };
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) collectd; };
+
   meta = with stdenv.lib; {
     description = "Relay server for exporting metrics from collectd to Prometheus";
     homepage = "https://github.com/prometheus/collectd_exporter";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/consul-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/consul-exporter.nix
index 4267d8d34c11..ad6d366a2214 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/consul-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/consul-exporter.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "consul_exporter";
-  version = "0.3.0";
+  version = "0.6.0";
 
   goPackagePath = "github.com/prometheus/consul_exporter";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "prometheus";
     repo = "consul_exporter";
     rev = "v${version}";
-    sha256 = "1zffbxyfmqpbdqkx5rb5vjgd9j4p4zcrh6jvn1zhbdzrcs7khnd9";
+    sha256 = "0s30blb4d8zw9f6x7dsnc1rxmxzsaih9w3xxxgr6c9xsm347mj86";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/cups-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/cups-exporter.nix
index 9ba73b3d2104..a02dab88a3a6 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/cups-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/cups-exporter.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, python3Packages }:
+{ lib, fetchFromGitHub, python3Packages, nixosTests }:
 
 python3Packages.buildPythonApplication rec {
   pname = "prometheus-cups-exporter-unstable";
@@ -26,6 +26,8 @@ python3Packages.buildPythonApplication rec {
           --add-flags "$out/share/cups_exporter.py"
   '';
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) cups; };
+
   meta = with lib; {
     description = "A simple prometheus exporter for cups implemented in python";
     homepage = "https://github.com/ThoreKr/cups_exporter";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/default.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/default.nix
index c0b161954b26..7e729cd366f3 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/default.nix
@@ -1,13 +1,13 @@
-{ lib, go, buildGoPackage, fetchFromGitHub, mkYarnPackage }:
+{ lib, go, buildGoPackage, fetchFromGitHub, mkYarnPackage, nixosTests }:
 
 let
-  version = "2.18.1";
+  version = "2.20.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "prometheus";
     repo = "prometheus";
-    sha256 = "0ixgjp3j9dkdb0vv5n83h8w48xgi70m83im660z97y7mflr5s2cf";
+    sha256 = "0svhx08pbz55nhn6g9pn79zbhyvr394k5w3ny1mq3wp382h62r5j";
   };
 
   webui = mkYarnPackage {
@@ -61,6 +61,8 @@ in buildGoPackage rec {
 
   doCheck = true;
 
+  passthru.tests = { inherit (nixosTests) prometheus; };
+
   meta = with lib; {
     description = "Service monitoring system and time series database";
     homepage = "https://prometheus.io";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix
index 43c63e24dfcb..6f2fe462a469 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
 
 buildGoModule rec {
   pname = "dnsmasq_exporter";
@@ -13,10 +13,14 @@ buildGoModule rec {
 
   vendorSha256 = "1dqpa180pbdi2gcmp991d4cry560mx5rm5l9x065s9n9gnd38hvl";
 
+  doCheck = false;
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) dnsmasq; };
+
   meta = with stdenv.lib; {
     inherit (src.meta) homepage;
     description = "A dnsmasq exporter for Prometheus";
     license = licenses.asl20;
     maintainers = with maintainers; [ willibutz globin ma27 ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix
index 479ff174d114..2d5f58a920be 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/dovecot-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "dovecot_exporter";
@@ -15,6 +15,8 @@ buildGoPackage rec {
 
   goDeps = ./dovecot-exporter-deps.nix;
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) dovecot; };
+
   meta = with stdenv.lib; {
     inherit (src.meta) homepage;
     description = "Prometheus metrics exporter for Dovecot";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/fritzbox-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/fritzbox-exporter.nix
index 997b8784a1c5..2f062cbfcfe8 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/fritzbox-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/fritzbox-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "fritzbox-exporter";
@@ -16,6 +16,8 @@ buildGoPackage rec {
 
   goDeps = ./fritzbox-exporter-deps.nix;
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) fritzbox; };
+
   meta = with stdenv.lib; {
     description = "Prometheus Exporter for FRITZ!Box (TR64 and UPnP)";
     homepage = "https://github.com/ndecker/fritzbox_exporter";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix
index 06eba474c996..e6dcfb4a346b 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/gitlab-ci-pipelines-exporter.nix
@@ -22,6 +22,5 @@ buildGoPackage rec {
     homepage = "https://github.com/mvisonneau/gitlab-ci-pipelines-exporter";
     license = licenses.asl20;
     maintainers = [ maintainers.mmahut ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/json-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/json-exporter.nix
index c020817edc05..afa610809318 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/json-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/json-exporter.nix
@@ -1,5 +1,5 @@
 # This file was generated by go2nix.
-{ buildGoPackage, fetchFromGitHub, fetchpatch, lib }:
+{ buildGoPackage, fetchFromGitHub, fetchpatch, lib, nixosTests }:
 
 buildGoPackage {
   pname = "prometheus-json-exporter";
@@ -21,6 +21,8 @@ buildGoPackage {
     sha256 = "0mc5axhd2bykci41dgswl4r1552d70jsmb17lbih7czhsy6rgmrm";
   })];
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) json; };
+
   meta = with lib; {
     description = "A prometheus exporter which scrapes remote JSON by JSONPath";
     homepage = "https://github.com/kawamuray/prometheus-json-exporter";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/keylight-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/keylight-exporter.nix
index e1be2a0bddc7..47a91d7e3a8b 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/keylight-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/keylight-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
 
 buildGoModule rec {
   pname = "keylight-exporter";
@@ -13,6 +13,10 @@ buildGoModule rec {
 
   vendorSha256 = "0w065ls8dp687jmps4xdffcarss1wyls14dngr43g58xjw6519gb";
 
+  doCheck = false;
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) keylight; };
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/mdlayher/keylight_exporter";
     description = "Prometheus exporter for Elgato Key Light devices.";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/lnd-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/lnd-exporter.nix
index 225e7c575436..9499f70e71bd 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/lnd-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/lnd-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
 
 buildGoModule rec {
   pname = "lndmon-unstable";
@@ -13,6 +13,10 @@ buildGoModule rec {
 
   vendorSha256 = "083h2ksnqmcr48958r5pag9a28xvljpc3prip6wn70ifp2wpjpin";
 
+  doCheck = false;
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) lnd; };
+
   meta = with stdenv.lib; {
     inherit (src.meta) homepage;
     description = "Prometheus exporter for lnd (Lightning Network Daemon)";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/mail-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/mail-exporter.nix
index f845a6ef2567..bb8f8526a319 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/mail-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/mail-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles }:
+{ stdenv, buildGoPackage, fetchFromGitHub, installShellFiles, nixosTests }:
 
 buildGoPackage {
   pname = "mailexporter";
@@ -22,6 +22,8 @@ buildGoPackage {
     installManPage $src/man/mailexporter.conf.5
   '';
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) mail; };
+
   meta = with stdenv.lib; {
     description = "Export Prometheus-style metrics about mail server functionality";
     homepage = "https://github.com/cherti/mailexporter";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
index 0c357a768b55..fe1ce5e4a999 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/mikrotik-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
 
 buildGoModule rec {
   pname = "mikrotik-exporter-unstable";
@@ -13,10 +13,14 @@ buildGoModule rec {
 
   vendorSha256 = "0i5x4d3ra0s41knmybbg8gnjxgraxkid6y3gfkjwa65xcbp7hr7q";
 
+  doCheck = false;
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) mikrotik; };
+
   meta = with stdenv.lib; {
     inherit (src.meta) homepage;
     description = "Prometheus MikroTik device(s) exporter";
     license = licenses.bsd3;
     maintainers = with maintainers; [ mmilata ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/modemmanager-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/modemmanager-exporter.nix
new file mode 100644
index 000000000000..4c49c94f286a
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/modemmanager-exporter.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
+
+buildGoModule rec {
+  pname = "modemmanager-exporter";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "mdlayher";
+    repo = "modemmanager_exporter";
+    rev = "v${version}";
+    sha256 = "0d8z7qzk5j5jj0ixkwpi8dw9kki78mxrajdlzzcj2rcgbnwair91";
+  };
+
+  vendorSha256 = "0f6v97cvzdz7wygswpm87wf8r169x5rw28908vqhmqk644hli4zy";
+
+  doCheck = false;
+
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) modemmanager; };
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/mdlayher/modemmanager_exporter";
+    description = "Prometheus exporter for ModemManager and its devices.";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mdlayher ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/nextcloud-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/nextcloud-exporter.nix
index f3211280f7d7..d628cf32c572 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/nextcloud-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/nextcloud-exporter.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, buildGoPackage }:
+{ lib, fetchFromGitHub, buildGoPackage, nixosTests }:
 
 buildGoPackage rec {
   pname = "prometheus-nextcloud-exporter";
@@ -17,6 +17,8 @@ buildGoPackage rec {
 
   doCheck = true;
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) nextcloud; };
+
   meta = with lib; {
     description = "Prometheus exporter for Nextcloud servers.";
     homepage = "https://github.com/xperimental/nextcloud-exporter";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/nginx-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/nginx-exporter.nix
index 70f39418198e..e7c144b31d16 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/nginx-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/nginx-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "nginx_exporter";
@@ -19,6 +19,8 @@ buildGoPackage rec {
 
   doCheck = true;
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) nginx; };
+
   meta = with stdenv.lib; {
     description = "NGINX Prometheus Exporter for NGINX and NGINX Plus";
     homepage = "https://github.com/nginxinc/nginx-prometheus-exporter";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
index 68bac5c560e3..2c2fabf2357d 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/nginxlog-exporter.nix
@@ -22,6 +22,5 @@ buildGoPackage rec {
     homepage = "https://github.com/martin-helmich/prometheus-nginxlog-exporter";
     license = licenses.asl20;
     maintainers = with maintainers; [ mmahut ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/node-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/node-exporter.nix
index 8d5134437d98..38f054aeb2dd 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/node-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/node-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "node_exporter";
@@ -23,6 +23,8 @@ buildGoPackage rec {
         -X ${goPackagePath}/vendor/github.com/prometheus/common/version.Revision=${rev}
   '';
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) node; };
+
   meta = with stdenv.lib; {
     description = "Prometheus exporter for machine metrics";
     homepage = "https://github.com/prometheus/node_exporter";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/postfix-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/postfix-exporter.nix
index b5a933432524..c66373e92982 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/postfix-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/postfix-exporter.nix
@@ -1,5 +1,5 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, systemd, makeWrapper
-, withSystemdSupport ? true }:
+{ stdenv, lib, buildGoPackage, fetchFromGitHub, makeWrapper, nixosTests
+, systemd, withSystemdSupport ? true }:
 
 with stdenv.lib;
 
@@ -44,9 +44,11 @@ buildGoPackage rec {
 
   postInstall = optionalString withSystemdSupport ''
     wrapProgram $out/bin/postfix_exporter \
-      --prefix LD_LIBRARY_PATH : "${systemd.lib}/lib"
+      --prefix LD_LIBRARY_PATH : "${lib.getLib systemd}/lib"
   '';
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) postfix; };
+
   meta = {
     inherit (src.meta) homepage;
     description = "A Prometheus exporter for Postfix";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/postgres-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/postgres-exporter.nix
index e8af00b277b4..81ccaee65938 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/postgres-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/postgres-exporter.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "postgres_exporter";
@@ -15,6 +15,8 @@ buildGoPackage rec {
 
   doCheck = true;
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) postgres; };
+
   meta = with lib; {
     inherit (src.meta) homepage;
     description = "A Prometheus exporter for PostgreSQL";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/process-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/process-exporter.nix
index a29ab6496332..9b90b9a57f95 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/process-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/process-exporter.nix
@@ -6,8 +6,6 @@ buildGoPackage rec {
 
   goPackagePath = "github.com/ncabatoff/process-exporter";
 
-  goDeps = ./process-exporter_deps.nix;
-
   src = fetchFromGitHub {
     owner = "ncabatoff";
     repo = pname;
@@ -25,7 +23,7 @@ buildGoPackage rec {
     description = "Prometheus exporter that mines /proc to report on selected processes";
     homepage = "https://github.com/ncabatoff/process-exporter";
     license = licenses.mit;
-    maintainers = with maintainers; [ maintainers."1000101" ];
+    maintainers = with maintainers; [ _1000101 ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/process-exporter_deps.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/process-exporter_deps.nix
deleted file mode 100644
index c8880119207b..000000000000
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/process-exporter_deps.nix
+++ /dev/null
@@ -1,156 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "github.com/beorn7/perks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/beorn7/perks";
-      rev = "3a771d992973";
-      sha256 = "1l2lns4f5jabp61201sh88zf3b0q793w4zdgp9nll7mmfcxxjif3";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "v1.1.0";
-      sha256 = "0ya4ha7m20bw048m1159ppqzlvda4x0vdprlbk5sdgmy74h3xcdq";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/go-cmp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-cmp";
-      rev = "v0.2.0";
-      sha256 = "1fbv0x27k9sn8svafc0hjwsnckk864lv4yi7bvzrxvmd3d5hskds";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pretty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pretty";
-      rev = "v0.1.0";
-      sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pty";
-      rev = "v1.1.1";
-      sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/text";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/text";
-      rev = "v0.1.0";
-      sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1";
-    };
-  }
-  {
-    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matttproud/golang_protobuf_extensions";
-      rev = "v1.0.1";
-      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
-    };
-  }
-  {
-    goPackagePath = "github.com/ncabatoff/fakescraper";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ncabatoff/fakescraper";
-      rev = "15938421d91a";
-      sha256 = "1in2iakq6xly9r8gk0mfim8n0glbjzpa07hkaj1rlrm0i11jlc6f";
-    };
-  }
-  {
-    goPackagePath = "github.com/ncabatoff/go-seq";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ncabatoff/go-seq";
-      rev = "b08ef85ed833";
-      sha256 = "1x88x285n4wf221pp7ccmh2ai7rgcnwz764gn8k861qg30jl1ky6";
-    };
-  }
-  {
-    goPackagePath = "github.com/ncabatoff/procfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ncabatoff/procfs";
-      rev = "9ced60d7b905";
-      sha256 = "19756h4lw5v8f0xr70cl8gd0wfqcnszrhhgawqhyinnir82rz728";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_golang";
-      rev = "v0.8.0";
-      sha256 = "1xqny3147g12n4j03kxm8s9mvdbs3ln6i56c655mybrn9jjy48kd";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "5c3871d89910";
-      sha256 = "04psf81l9fjcwascsys428v03fx4fi894h7fhrj2vvcz723q57k0";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/common";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/common";
-      rev = "c7de2306084e";
-      sha256 = "11dqfm2d0m4sjjgyrnayman96g59x2apmvvqby9qmww2qj2k83ig";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/procfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/procfs";
-      rev = "ea9eea638872";
-      sha256 = "1j99qszynx2asac82bhzhk0g1nav87nfgkb1cz5a2iywj81liirj";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "37e7f081c4d4";
-      sha256 = "1bb0mw6ckb1k7z8v3iil2qlqwfj408fvvp8m1cik2b46p7snyjhm";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "788fd7840127";
-      sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.1";
-      sha256 = "0dwjrs2lp2gdlscs7bsrmyc5yf6mm4fvgw71bzr9mv2qrd2q73s1";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter.nix
index ea15fecc8ef0..9082fd81c632 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/redis-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "redis_exporter";
@@ -22,6 +22,8 @@ buildGoPackage rec {
        -X main.BuildDate=unknown
   '';
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) redis; };
+
   meta = with stdenv.lib; {
     description = "Prometheus exporter for Redis metrics";
     inherit (src.meta) homepage;
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/snmp-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/snmp-exporter.nix
index a456cda86e5e..d3b35a8a8f1a 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/snmp-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/snmp-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, net-snmp }:
+{ stdenv, buildGoPackage, fetchFromGitHub, net-snmp, nixosTests }:
 
 buildGoPackage rec {
   pname = "snmp_exporter";
@@ -17,6 +17,8 @@ buildGoPackage rec {
 
   doCheck = true;
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) snmp; };
+
   meta = with stdenv.lib; {
     description = "SNMP Exporter for Prometheus";
     homepage = "https://github.com/prometheus/snmp_exporter";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix
index 8502b76f708a..d6f4bea15313 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/surfboard-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub, nixosTests }:
 
 buildGoPackage rec {
   pname = "surfboard_exporter";
@@ -13,6 +13,8 @@ buildGoPackage rec {
     sha256 = "11qms26648nwlwslnaflinxcr5rnp55s908rm1qpnbz0jnxf5ipw";
   };
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) surfboard; };
+
   meta = with stdenv.lib; {
     description = "Arris Surfboard signal metrics exporter";
     homepage = "https://github.com/ipstatic/surfboard_exporter";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/tor-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/tor-exporter.nix
index 9fa798846878..bc8022f9feb1 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/tor-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/tor-exporter.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, python3Packages }:
+{ lib, fetchFromGitHub, python3Packages, nixosTests }:
 
 python3Packages.buildPythonApplication rec {
   name = "tor-exporter-${version}";
@@ -27,6 +27,8 @@ python3Packages.buildPythonApplication rec {
           --add-flags "$out/share/prometheus-tor-exporter.py"
   '';
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) tor; };
+
   meta = with lib; {
     description = "Prometheus exporter that exposes metrics from a Tor daemon";
     homepage = "https://github.com/atx/prometheus-tor_exporter";
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/varnish-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/varnish-exporter.nix
index 640730e3ca00..c94be3490fa7 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/varnish-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/varnish-exporter.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, makeWrapper, varnish }:
+{ lib, buildGoModule, fetchFromGitHub, makeWrapper, varnish, nixosTests }:
 
 buildGoModule rec {
   pname = "prometheus_varnish_exporter";
@@ -20,7 +20,7 @@ buildGoModule rec {
       --prefix PATH : "${varnish}/bin"
   '';
 
-  doCheck = true;
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) varnish; };
 
   meta = {
     homepage = "https://github.com/jonnenauha/prometheus_varnish_exporter";
@@ -28,4 +28,4 @@ buildGoModule rec {
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ MostAwesomeDude willibutz ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/webui-package.json b/nixpkgs/pkgs/servers/monitoring/prometheus/webui-package.json
index 64ac8689bbdf..09ebefa01102 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/webui-package.json
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/webui-package.json
@@ -24,7 +24,7 @@
     "fuzzy": "^0.1.3",
     "i": "^0.3.6",
     "jest-fetch-mock": "^2.1.2",
-    "jquery": "^3.3.1",
+    "jquery": "^3.5",
     "jquery.flot.tooltip": "^0.9.0",
     "jsdom": "^15.2.0",
     "moment": "^2.24.0",
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix
index 5eed837c910a..8b7d346e5600 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/webui-yarndeps.nix
@@ -4122,11 +4122,11 @@
       };
     }
     {
-      name = "elliptic___elliptic_6.5.2.tgz";
+      name = "elliptic___elliptic_6.5.3.tgz";
       path = fetchurl {
-        name = "elliptic___elliptic_6.5.2.tgz";
-        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz";
-        sha1 = "05c5678d7173c049d8ca433552224a495d0e3762";
+        name = "elliptic___elliptic_6.5.3.tgz";
+        url  = "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz";
+        sha1 = "cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6";
       };
     }
     {
@@ -6634,11 +6634,11 @@
       };
     }
     {
-      name = "jquery___jquery_3.4.1.tgz";
+      name = "jquery___jquery_3.5.1.tgz";
       path = fetchurl {
-        name = "jquery___jquery_3.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz";
-        sha1 = "714f1f8d9dde4bdfa55764ba37ef214630d80ef2";
+        name = "jquery___jquery_3.5.1.tgz";
+        url  = "https://registry.yarnpkg.com/jquery/-/jquery-3.5.1.tgz";
+        sha1 = "d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5";
       };
     }
     {
@@ -11698,11 +11698,11 @@
       };
     }
     {
-      name = "websocket_extensions___websocket_extensions_0.1.3.tgz";
+      name = "websocket_extensions___websocket_extensions_0.1.4.tgz";
       path = fetchurl {
-        name = "websocket_extensions___websocket_extensions_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz";
-        sha1 = "5d2ff22977003ec687a4b87073dfbbac146ccf29";
+        name = "websocket_extensions___websocket_extensions_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz";
+        sha1 = "7f8473bc839dfd87608adb95d7eb075211578a42";
       };
     }
     {
diff --git a/nixpkgs/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix b/nixpkgs/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix
index 240dc6263316..8f927f32e2d6 100644
--- a/nixpkgs/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix
+++ b/nixpkgs/pkgs/servers/monitoring/prometheus/wireguard-exporter.nix
@@ -1,4 +1,4 @@
-{ stdenv, rustPlatform, fetchFromGitHub, lib, Security }:
+{ stdenv, rustPlatform, fetchFromGitHub, lib, Security, nixosTests }:
 
 rustPlatform.buildRustPackage rec {
   pname = "wireguard-exporter";
@@ -15,6 +15,8 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
+  passthru.tests = { inherit (nixosTests.prometheus-exporters) wireguard; };
+
   meta = with lib; {
     description = "A Prometheus exporter for WireGuard, written in Rust.";
     homepage = "https://github.com/MindFlavor/prometheus_wireguard_exporter";
diff --git a/nixpkgs/pkgs/servers/monitoring/sensu-go/default.nix b/nixpkgs/pkgs/servers/monitoring/sensu-go/default.nix
index 5f9f3b80f800..7af9970b507d 100644
--- a/nixpkgs/pkgs/servers/monitoring/sensu-go/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/sensu-go/default.nix
@@ -4,21 +4,21 @@ let
   generic = { subPackages, pname, postInstall ? "" }:
     buildGoModule rec {
       inherit pname;
-      version = "5.20.1";
+      version = "5.21.2";
       shortRev = "3a1ac58"; # for internal version info
 
-      goPackagePath = "github.com/sensu/sensu-go";
-
       src = fetchFromGitHub {
         owner = "sensu";
         repo = "sensu-go";
         rev = "v${version}";
-        sha256 = "0wrcchz878sq7zhkb8p0s93k92xppihv5yyvkl363xs6519xzm7m";
+        sha256 = "1hsvdqz0ckk8d1yxinqwylw97jd3gnf7c63zkjly87vasg98qk9x";
       };
 
       inherit subPackages postInstall;
 
-  vendorSha256 = "03lkra5vf07zicd2aipvmkrda56ys5swwj6lq5hnp324ndajfcya";
+  vendorSha256 = "06yfaj9k5n3jw8a142sscaqrvdw2lq51v884lp65wjdwy5c3jbba";
+
+  doCheck = false;
 
       buildFlagsArray = let
         versionPkg = "github.com/sensu/sensu-go/version";
@@ -66,4 +66,4 @@ in
     pname = "sensu-go-agent";
     subPackages = [ "cmd/sensu-agent" ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/telegraf/default.nix b/nixpkgs/pkgs/servers/monitoring/telegraf/default.nix
index 388d7fe37908..b0e9ef356a6e 100644
--- a/nixpkgs/pkgs/servers/monitoring/telegraf/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/telegraf/default.nix
@@ -1,10 +1,8 @@
-{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
+{ lib, buildGoModule, fetchFromGitHub, nixosTests, fetchpatch }:
 
 buildGoModule rec {
   pname = "telegraf";
-  version = "1.14.4";
-
-  goPackagePath = "github.com/influxdata/telegraf";
+  version = "1.15.2";
 
   excludedPackages = "test";
 
@@ -14,10 +12,19 @@ buildGoModule rec {
     owner = "influxdata";
     repo = "telegraf";
     rev = "v${version}";
-    sha256 = "0kbf1r9b9xylq0akmklzy94pcljayhdjm539fwazp5c1364qmbjm";
+    sha256 = "045wjpq29dr0s48ns3a4p8pw1j0ssfcw6m91iim4pkrppj7bm2di";
   };
 
-  vendorSha256 = "05nj99hl5f5l0a2aswy19wmbm94hd1h03r227gmn419dkzc5hpah";
+  patches = [
+    # https://github.com/influxdata/telegraf/pull/7988
+    # fix broken cgo vendoring
+    (fetchpatch {
+      url = "https://github.com/influxdata/telegraf/commit/63e1f41d8ff246d191d008ff7f69d69cc34b4fae.patch";
+      sha256 = "0ikifc4414bid3g6hhxz18cw71z63s5g805klx98vrndjlpbqkzw";
+    })
+  ];
+
+  vendorSha256 = "0f95xigpkindd7dmci8kqpqq5dlirimbqh8ai73142asbrd5h4yr";
 
   buildFlagsArray = [ ''-ldflags=
     -w -s -X main.version=${version}
@@ -31,4 +38,4 @@ buildGoModule rec {
     homepage = "https://www.influxdata.com/time-series-platform/telegraf/";
     maintainers = with maintainers; [ mic92 roblabla foxit64 ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/thanos/default.nix b/nixpkgs/pkgs/servers/monitoring/thanos/default.nix
index 227085184298..1b4e46b8f0d9 100644
--- a/nixpkgs/pkgs/servers/monitoring/thanos/default.nix
+++ b/nixpkgs/pkgs/servers/monitoring/thanos/default.nix
@@ -1,16 +1,18 @@
 { stdenv, buildGoModule, fetchFromGitHub }:
 buildGoModule rec {
   pname = "thanos";
-  version = "0.12.2";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "thanos-io";
     repo = "thanos";
-    sha256 = "10xscm9h2krha66v96v2q85fynnxfizjcc47h7yz4xhjwvb5dgz2";
+    sha256 = "1y3jaj1sxbn9m1c2rihjw229qx4q35l8l70xiny34qhmpzp6y00p";
   };
 
-  vendorSha256 = "126rghnyjpykvjg9sr4kwpskc13qqafxgfn9ffykwc4jjz8vc07q";
+  vendorSha256 = "0ixriy5i1qc8hnslmiyd3qfw1g14zlmcslqwn2a9fpk7h0hwinba";
+
+  doCheck = false;
 
   subPackages = "cmd/thanos";
 
@@ -30,4 +32,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ basvandijk ];
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/timescale-prometheus/default.nix b/nixpkgs/pkgs/servers/monitoring/timescale-prometheus/default.nix
new file mode 100644
index 000000000000..6a0383610eb6
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/timescale-prometheus/default.nix
@@ -0,0 +1,30 @@
+{ stdenv
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "timescale-prometheus";
+  version = "0.1.0-beta.4";
+
+  src = fetchFromGitHub {
+    owner = "timescale";
+    repo = pname;
+    rev = "${version}";
+    sha256 = "1q9zjxxjxa5kkhlsh69bvgns3kzf23z84jjzg294qb7y7xypym5q";
+  };
+
+  vendorSha256 = "sha256:0y5rq2y48kf2z1z3a8ags6rqzfvjs54klk2679fk8x0yjamj5x04";
+
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/timescale/timescale-prometheus/pkg/version.Version=${version} -X github.com/timescale/timescale-prometheus/pkg/version.CommitHash=${src.rev}" ];
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    description = "An open-source analytical platform for Prometheus metrics";
+    homepage = "https://github.com/timescale/timescale-prometheus";
+    license = licenses.asl20;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ _0x4A6F ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/unifi-poller/default.nix b/nixpkgs/pkgs/servers/monitoring/unifi-poller/default.nix
new file mode 100644
index 000000000000..7ddc53f38e8f
--- /dev/null
+++ b/nixpkgs/pkgs/servers/monitoring/unifi-poller/default.nix
@@ -0,0 +1,31 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "unifi-poller";
+  version = "2.0.1";
+
+  src = fetchFromGitHub {
+    owner = "unifi-poller";
+    repo = "unifi-poller";
+    rev = "v${version}";
+    sha256 = "16q9hrbl9qgilj3vb7865l1yx0xhm7m4sx5j1ys5vi63drq59g93";
+  };
+
+  vendorSha256 = "1fgcbg34g0a0f85qv7bjanv2lpnnszcrspfppp2lnj9kv52j4c1w";
+
+  buildFlagsArray = ''
+    -ldflags=-w -s
+      -X github.com/prometheus/common/version.Branch=master
+      -X github.com/prometheus/common/version.BuildDate=unknown
+      -X github.com/prometheus/common/version.Revision=${src.rev}
+      -X github.com/prometheus/common/version.Version=${version}-0
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Collect ALL UniFi Controller, Site, Device & Client Data - Export to InfluxDB or Prometheus";
+    homepage = "https://github.com/unifi-poller/unifi-poller";
+    license = licenses.mit;
+    maintainers = with maintainers; [ elseym ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/server.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/server.nix
index fdf3fd476df1..9d0e1c199d32 100644
--- a/nixpkgs/pkgs/servers/monitoring/zabbix/server.nix
+++ b/nixpkgs/pkgs/servers/monitoring/zabbix/server.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, curl, libevent, libiconv, libxml2, openssl, pcre, zlib
+{ stdenv, fetchurl, autoreconfHook, pkgconfig, curl, libevent, libiconv, libxml2, openssl, pcre, zlib
 , jabberSupport ? true, iksemel
 , ldapSupport ? true, openldap
 , odbcSupport ? true, unixODBC
@@ -25,7 +25,7 @@ in
         inherit sha256;
       };
 
-      nativeBuildInputs = [ pkgconfig ];
+      nativeBuildInputs = [ autoreconfHook pkgconfig ];
       buildInputs = [
         curl
         libevent
@@ -65,6 +65,13 @@ in
         find database -name data.sql -exec sed -i 's|/usr/bin/||g' {} +
       '';
 
+      preAutoreconf = ''
+        for i in $(find . -type f -name "*.m4"); do
+          substituteInPlace $i \
+            --replace 'test -x "$PKG_CONFIG"' 'type -P "$PKG_CONFIG" >/dev/null'
+        done
+      '';
+
       postInstall = ''
         mkdir -p $out/share/zabbix/database/
         cp -r include $out/
diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix
index c75df46cf047..2552964fe880 100644
--- a/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix
+++ b/nixpkgs/pkgs/servers/monitoring/zabbix/versions.nix
@@ -1,12 +1,12 @@
 generic: {
-  v44 = generic {
-    version = "4.4.8";
-    sha256 = "0l9n4l5179lf90krv1kb0lraipj7q4hyba6r48n6rj2zqx2j4mn0";
+  v50 = generic {
+    version = "5.0.3";
+    sha256 = "1dc3fb9pa2cr6mfwgfyy1hpx26pbrws7989wj2kiiilmvimvrz1l";
   };
 
   v40 = generic {
-    version = "4.0.20";
-    sha256 = "0h6qx4imrf5inmmczxir81a9xhra8a1dxxv538mqhxhbpqn1yh3w";
+    version = "4.0.24";
+    sha256 = "01nm0pqsb168qawm1j7b3lixbwkz6hi8hd2052q6dlzqm7s2mi2s";
   };
 
   v30 = generic {
diff --git a/nixpkgs/pkgs/servers/monitoring/zabbix/web.nix b/nixpkgs/pkgs/servers/monitoring/zabbix/web.nix
index a75deff3db27..f677fe5c0af3 100644
--- a/nixpkgs/pkgs/servers/monitoring/zabbix/web.nix
+++ b/nixpkgs/pkgs/servers/monitoring/zabbix/web.nix
@@ -18,7 +18,7 @@ import ./versions.nix ({ version, sha256 }:
 
     installPhase = ''
       mkdir -p $out/share/zabbix/
-      cp -a frontends/php/. $out/share/zabbix/
+      cp -a ${if stdenv.lib.versionAtLeast version "5.0.0" then "ui/." else "frontends/php/."} $out/share/zabbix/
       cp ${phpConfig} $out/share/zabbix/conf/zabbix.conf.php
     '';
 
diff --git a/nixpkgs/pkgs/servers/mpd/clientlib.nix b/nixpkgs/pkgs/servers/mpd/clientlib.nix
index cb02a7684785..3016b7dba835 100644
--- a/nixpkgs/pkgs/servers/mpd/clientlib.nix
+++ b/nixpkgs/pkgs/servers/mpd/clientlib.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, meson, ninja, fixDarwinDylibNames }:
 
 stdenv.mkDerivation rec {
-  version = "2.18";
+  version = "2.19";
   pname = "libmpdclient";
 
   src = fetchFromGitHub {
     owner  = "MusicPlayerDaemon";
     repo   = "libmpdclient";
     rev    = "v${version}";
-    sha256 = "0p2dw3jwyl34azzvr9bm7q6ni8v4ix9qr5lig62xskvrrbjfc4a6";
+    sha256 = "01agvjscdxagw6jcfx0wg81c4b6p8rh0hp3slycmjs2b835kvmq2";
   };
 
   nativeBuildInputs = [ meson ninja ]
diff --git a/nixpkgs/pkgs/servers/mpd/default.nix b/nixpkgs/pkgs/servers/mpd/default.nix
index b801020a6652..d013f4318964 100644
--- a/nixpkgs/pkgs/servers/mpd/default.nix
+++ b/nixpkgs/pkgs/servers/mpd/default.nix
@@ -4,7 +4,7 @@
 # Archive support
 , bzip2, zziplib
 # Codecs
-, audiofile, faad2, ffmpeg_3, flac, fluidsynth, game-music-emu
+, audiofile, faad2, ffmpeg, flac, fluidsynth, game-music-emu
 , libmad, libmikmod, mpg123, libopus, libvorbis, lame
 # Filters
 , libsamplerate
@@ -46,7 +46,7 @@ let
     # Decoder plugins
     audiofile     = [ audiofile ];
     faad          = [ faad2 ];
-    ffmpeg        = [ ffmpeg_3 ];
+    ffmpeg        = [ ffmpeg ];
     flac          = [ flac ];
     fluidsynth    = [ fluidsynth ];
     gme           = [ game-music-emu ];
@@ -110,29 +110,15 @@ let
 
     in stdenv.mkDerivation rec {
       pname = "mpd";
-      version = "0.21.23";
+      version = "0.21.25";
 
       src = fetchFromGitHub {
         owner  = "MusicPlayerDaemon";
         repo   = "MPD";
         rev    = "v${version}";
-        sha256 = "0jnhjhm1ilpcwb4f58b8pgyzjq3dlr0j2xyk0zck0afwkdxyj9cb";
+        sha256 = "1yjp8pwr2zn0mp39ls1w0pl37zrjn5m9ycgjmcsw2wpa4709r356";
       };
 
-      # Won't be needed when 0.21.24 will be out
-      patches = [
-        # Tests fail otherwise, see https://github.com/MusicPlayerDaemon/MPD/issues/844
-        (fetchpatch {
-          url = "https://github.com/MusicPlayerDaemon/MPD/commit/7aea2853612743e111ae5e947c8d467049e291a8.patch";
-          sha256 = "1bmxlsaiz3wlg1yyc4rkwsmgvc0pirv0s1vdxxsn91yssmh16c2g";
-          excludes = [
-            # The patch fails otherwise because it tries to update the NEWS
-            # file which doesn't have the title "ver 0.21.24" yet.
-            "NEWS"
-          ];
-        })
-      ];
-
       buildInputs = [
         glib
         boost
diff --git a/nixpkgs/pkgs/servers/mqtt/mosquitto/default.nix b/nixpkgs/pkgs/servers/mqtt/mosquitto/default.nix
index 8f632ed9b58f..b2c52d77df59 100644
--- a/nixpkgs/pkgs/servers/mqtt/mosquitto/default.nix
+++ b/nixpkgs/pkgs/servers/mqtt/mosquitto/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mosquitto";
-  version = "1.6.10";
+  version = "1.6.11";
 
   src = fetchFromGitHub {
     owner  = "eclipse";
     repo   = "mosquitto";
     rev    = "v${version}";
-    sha256 = "0g9iywm0s08b0ax1qx4j5lixfc1m6p48lv14vlil6wns4azc3fsc";
+    sha256 = "05mwghfmp459f7c0yph0xp1a5k6c0wghxzqm0n8jw7yfj7qixv88";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/servers/nats-server/default.nix b/nixpkgs/pkgs/servers/nats-server/default.nix
index 743fc0fa1e56..b0ae2ebc2dc9 100644
--- a/nixpkgs/pkgs/servers/nats-server/default.nix
+++ b/nixpkgs/pkgs/servers/nats-server/default.nix
@@ -20,6 +20,5 @@ buildGoPackage rec {
     license = licenses.asl20;
     maintainers = [ maintainers.swdunlop ];
     homepage = "https://nats.io/";
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/servers/nats-streaming-server/default.nix b/nixpkgs/pkgs/servers/nats-streaming-server/default.nix
index efaec689a1ab..e5bce49d0578 100644
--- a/nixpkgs/pkgs/servers/nats-streaming-server/default.nix
+++ b/nixpkgs/pkgs/servers/nats-streaming-server/default.nix
@@ -19,6 +19,5 @@ buildGoPackage rec {
     license = licenses.asl20;
     maintainers = [ maintainers.swdunlop ];
     homepage = "https://nats.io/";
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/servers/nextcloud/default.nix b/nixpkgs/pkgs/servers/nextcloud/default.nix
index 9a7cc077508f..a6fcf6327930 100644
--- a/nixpkgs/pkgs/servers/nextcloud/default.nix
+++ b/nixpkgs/pkgs/servers/nextcloud/default.nix
@@ -33,7 +33,12 @@ in {
   };
 
   nextcloud18 = generic {
-    version = "18.0.4";
-    sha256 = "0aa3f4xbkzacfw0h9aic0ywk5mqlwka83qaszizj8lmk68kf3n7s";
+    version = "18.0.7";
+    sha256 = "0pka87ccrds17n6n5w5a80mc1s5yrf8d4mf6wsfaypwjbm3wfb2b";
+  };
+
+  nextcloud19 = generic {
+    version = "19.0.1";
+    sha256 = "0bavwvjjgx62i150wqh4gqavjva3mnhx6k3im79ib6ck1ph13wsf";
   };
 }
diff --git a/nixpkgs/pkgs/servers/nfs-ganesha/default.nix b/nixpkgs/pkgs/servers/nfs-ganesha/default.nix
new file mode 100644
index 000000000000..adbcbb63759b
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nfs-ganesha/default.nix
@@ -0,0 +1,48 @@
+{ stdenv, fetchFromGitHub, cmake, pkg-config
+, krb5, xfsprogs, jemalloc, dbus, libcap
+, ntirpc, liburcu, bison, flex, nfs-utils
+} :
+
+stdenv.mkDerivation rec {
+  pname = "nfs-ganesha";
+  version = "3.3";
+
+  src = fetchFromGitHub {
+    owner = "nfs-ganesha";
+    repo = "nfs-ganesha";
+    rev = "V${version}";
+    sha256 = "1w48rqrbqah0hnirvjdz8lyr9ah8b73j3cgsppb04gnrmpssgmb6";
+  };
+
+  patches = [ ./sysstatedir.patch ];
+
+  preConfigure = "cd src";
+
+  cmakeFlags = [ "-DUSE_SYSTEM_NTIRPC=ON" ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    bison
+    flex
+  ];
+
+  buildInputs = [
+    krb5
+    xfsprogs
+    jemalloc
+    dbus.lib
+    libcap
+    ntirpc
+    liburcu
+    nfs-utils
+  ];
+
+  meta = with stdenv.lib; {
+    description = "NFS server that runs in user space";
+    homepage = "https://github.com/nfs-ganesha/nfs-ganesha/wiki";
+    maintainers = [ maintainers.markuskowa ];
+    platforms = platforms.linux;
+    license = licenses.lgpl3Plus;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/nfs-ganesha/sysstatedir.patch b/nixpkgs/pkgs/servers/nfs-ganesha/sysstatedir.patch
new file mode 100644
index 000000000000..534f71743e71
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nfs-ganesha/sysstatedir.patch
@@ -0,0 +1,15 @@
+diff --git a/src/include/config-h.in.cmake b/src/include/config-h.in.cmake
+index 51697310b..2b5f91075 100644
+--- a/src/include/config-h.in.cmake
++++ b/src/include/config-h.in.cmake
+@@ -72,8 +72,8 @@
+ #define NFS_GANESHA 1
+ 
+ #define GANESHA_CONFIG_PATH "@SYSCONFDIR@/ganesha/ganesha.conf"
+-#define GANESHA_PIDFILE_PATH "@SYSSTATEDIR@/run/ganesha.pid"
+-#define NFS_V4_RECOV_ROOT "@SYSSTATEDIR@/lib/nfs/ganesha"
++#define GANESHA_PIDFILE_PATH "/run/ganesha.pid"
++#define NFS_V4_RECOV_ROOT "/var/lib/nfs/ganesha"
+ /**
+  * @brief Default value for krb5_param.ccache_dir
+  */
diff --git a/nixpkgs/pkgs/servers/nginx-sso/default.nix b/nixpkgs/pkgs/servers/nginx-sso/default.nix
index 769a8605f032..dffe48db58a3 100644
--- a/nixpkgs/pkgs/servers/nginx-sso/default.nix
+++ b/nixpkgs/pkgs/servers/nginx-sso/default.nix
@@ -1,8 +1,8 @@
-{ buildGoPackage, fetchFromGitHub, stdenv }:
+{ buildGoPackage, fetchFromGitHub, stdenv, nixosTests }:
 
 buildGoPackage rec {
   pname = "nginx-sso";
-  version = "0.24.1";
+  version = "0.25.0";
   rev = "v${version}";
 
   goPackagePath = "github.com/Luzifer/nginx-sso";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     inherit rev;
     owner = "Luzifer";
     repo = "nginx-sso";
-    sha256 = "1wij0a5ban2l6ahfra4n4dji7i5ndkqk1mgrblwm2ski7bl8yszx";
+    sha256 = "0z5h92rpr1rcfk11ggsb9w4ipg93fcb9byll7vl4c0mfcqkpm2dr";
   };
 
   postInstall = ''
@@ -19,6 +19,10 @@ buildGoPackage rec {
     cp -R $src/frontend $out/share
   '';
 
+  passthru.tests = {
+    inherit (nixosTests) nginx-sso;
+  };
+
   meta = with stdenv.lib; {
     description = "SSO authentication provider for the auth_request nginx module";
     homepage = "https://github.com/Luzifer/nginx-sso";
diff --git a/nixpkgs/pkgs/servers/nosql/influxdb/default.nix b/nixpkgs/pkgs/servers/nosql/influxdb/default.nix
index 4bddd77248a6..db07bdc96a4b 100644
--- a/nixpkgs/pkgs/servers/nosql/influxdb/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/influxdb/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "influxdb";
-  version = "1.8.0";
+  version = "1.8.2";
 
   src = fetchFromGitHub {
     owner = "influxdata";
     repo = pname;
     rev = "v${version}";
-    sha256 = "111n36xifmd644xp80imqxx61nlap6fdwx1di2qphlqb43z99jrq";
+    sha256 = "11zkia43i3in1xv84iz6rm9cfhf4k6nxn144m7dz7a7nv3chi20g";
   };
 
   vendorSha256 = "097x3z1fhdl5s3ni2qzbqxqr60l6lqcrbikq20fs052dp287q0sp";
 
+  doCheck = false;
+
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
   excludedPackages = "test";
@@ -23,4 +25,4 @@ buildGoModule rec {
     homepage = "https://influxdata.com/";
     maintainers = with maintainers; [ offline zimbatm ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/nosql/mongodb/asio-no-experimental-string-view-4-2.patch b/nixpkgs/pkgs/servers/nosql/mongodb/asio-no-experimental-string-view-4-2.patch
new file mode 100644
index 000000000000..3720dd9ba319
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/mongodb/asio-no-experimental-string-view-4-2.patch
@@ -0,0 +1,22 @@
+--- a/src/third_party/asio-master/asio/include/asio/detail/config.hpp
++++ b/src/third_party/asio-master/asio/include/asio/detail/config.hpp
+@@ -831,20 +831,8 @@
+ #     endif // (__cplusplus >= 201402)
+ #    endif // (_LIBCPP_VERSION < 7000)
+ #   else // defined(ASIO_HAS_CLANG_LIBCXX)
+-#    if (__cplusplus >= 201402)
+-#     if __has_include(<experimental/string_view>)
+-#      define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1
+-#     endif // __has_include(<experimental/string_view>)
+-#    endif // (__cplusplus >= 201402)
+ #   endif // // defined(ASIO_HAS_CLANG_LIBCXX)
+ #  endif // defined(__clang__)
+-#  if defined(__GNUC__)
+-#   if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) || (__GNUC__ > 4)
+-#    if (__cplusplus >= 201402)
+-#     define ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW 1
+-#    endif // (__cplusplus >= 201402)
+-#   endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) || (__GNUC__ > 4)
+-#  endif // defined(__GNUC__)
+ # endif // !defined(ASIO_DISABLE_STD_EXPERIMENTAL_STRING_VIEW)
+ #endif // !defined(ASIO_HAS_STD_EXPERIMENTAL_STRING_VIEW)
\ No newline at end of file
diff --git a/nixpkgs/pkgs/servers/nosql/mongodb/forget-build-dependencies-4-2.patch b/nixpkgs/pkgs/servers/nosql/mongodb/forget-build-dependencies-4-2.patch
new file mode 100644
index 000000000000..6d65238f22ab
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/mongodb/forget-build-dependencies-4-2.patch
@@ -0,0 +1,36 @@
+# MongoDB keeps track of its build parameters, which tricks nix into
+# keeping dependencies to build inputs in the final output.
+# We remove the build flags from buildInfo data.
+--- a/site_scons/mongo/generators.py
++++ b/site_scons/mongo/generators.py
+@@ -33,30 +33,12 @@ def default_buildinfo_environment_data():
+             True,
+             False,
+         ),
+-        (
+-            'ccflags',
+-            '$CCFLAGS',
+-            True,
+-            False,
+-        ),
+         (
+             'cxx',
+             '$CXX_VERSION',
+             True,
+             False,
+         ),
+-        (
+-            'cxxflags',
+-            '$CXXFLAGS',
+-            True,
+-            False,
+-        ),
+-        (
+-            'linkflags',
+-            '$LINKFLAGS',
+-            True,
+-            False,
+-        ),
+         (
+             'target_arch',
+             '$TARGET_ARCH',
\ No newline at end of file
diff --git a/nixpkgs/pkgs/servers/nosql/mongodb/forget-build-dependencies.patch b/nixpkgs/pkgs/servers/nosql/mongodb/forget-build-dependencies.patch
index 897618cceb12..37b4c259f2ac 100644
--- a/nixpkgs/pkgs/servers/nosql/mongodb/forget-build-dependencies.patch
+++ b/nixpkgs/pkgs/servers/nosql/mongodb/forget-build-dependencies.patch
@@ -1,3 +1,6 @@
+# MongoDB keeps track of its build parameters, which tricks nix into
+# keeping dependencies to build inputs in the final output.
+# We remove the build flags from buildInfo data.
 --- a/site_scons/mongo/generators.py
 +++ b/site_scons/mongo/generators.py
 @@ -18,10 +18,7 @@ def default_buildinfo_environment_data():
diff --git a/nixpkgs/pkgs/servers/nosql/mongodb/mongodb.nix b/nixpkgs/pkgs/servers/nosql/mongodb/mongodb.nix
index 8ffdbcd63c4c..f57ff7461989 100644
--- a/nixpkgs/pkgs/servers/nosql/mongodb/mongodb.nix
+++ b/nixpkgs/pkgs/servers/nosql/mongodb/mongodb.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchurl, scons, boost, gperftools, pcre-cpp, snappy, zlib, libyamlcpp
-, sasl, openssl, libpcap, python27, curl, Security, CoreFoundation, cctools }:
+{ stdenv, fetchurl, sconsPackages, boost, gperftools, pcre-cpp, snappy, zlib, libyamlcpp
+, sasl, openssl, libpcap, python27, python38, curl, Security, CoreFoundation, cctools }:
 
 # Note:
 # The command line tools are written in Go as part of a different package (mongodb-tools)
@@ -11,6 +11,17 @@ with stdenv.lib;
 }@args:
 
 let
+  variants = if versionAtLeast version "4.2"
+    then { python = python38.withPackages (ps: with ps; [ pyyaml cheetah3 psutil setuptools ]);
+            scons = sconsPackages.scons_latest;
+            mozjsVersion = "60";
+            mozjsReplace = "defined(HAVE___SINCOS)";
+          }
+    else { python = python27.withPackages (ps: with ps; [ pyyaml typing cheetah ]);
+            scons = sconsPackages.scons_3_1_2;
+            mozjsVersion = "45";
+            mozjsReplace = "defined(HAVE_SINCOS)";
+          };
   python = python27.withPackages (ps: with ps; [ pyyaml typing cheetah ]);
   system-libraries = [
     "boost"
@@ -27,14 +38,14 @@ let
 
 in stdenv.mkDerivation rec {
   inherit version;
-  name = "mongodb-${version}";
+  pname = "mongodb";
 
   src = fetchurl {
     url = "https://fastdl.mongodb.org/src/mongodb-src-r${version}.tar.gz";
     inherit sha256;
   };
 
-  nativeBuildInputs = [ scons.py2 ];
+  nativeBuildInputs = [ variants.scons ];
   buildInputs = [
     boost
     curl
@@ -43,7 +54,7 @@ in stdenv.mkDerivation rec {
     libyamlcpp
     openssl
     pcre-cpp
-    python
+    variants.python
     sasl
     snappy
     zlib
@@ -59,7 +70,7 @@ in stdenv.mkDerivation rec {
     substituteInPlace SConstruct \
         --replace "env = Environment(" "env = Environment(ENV = os.environ,"
   '' + stdenv.lib.optionalString stdenv.isDarwin ''
-    substituteInPlace src/third_party/mozjs-45/extract/js/src/jsmath.cpp --replace 'defined(HAVE_SINCOS)' 0
+    substituteInPlace src/third_party/mozjs-${variants.mozjsVersion}/extract/js/src/jsmath.cpp --replace '${variants.mozjsReplace}' 0
 
     substituteInPlace src/third_party/s2/s1angle.cc --replace drem remainder
     substituteInPlace src/third_party/s2/s1interval.cc --replace drem remainder
@@ -102,6 +113,13 @@ in stdenv.mkDerivation rec {
     rm -f "$out/bin/install_compass" || true
   '';
 
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    "$out/bin/mongo" --version
+    runHook postInstallCheck
+  '';
+
   prefixKey = "--prefix=";
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/servers/nosql/mongodb/v4_2.nix b/nixpkgs/pkgs/servers/nosql/mongodb/v4_2.nix
new file mode 100644
index 000000000000..3ebe69daca1b
--- /dev/null
+++ b/nixpkgs/pkgs/servers/nosql/mongodb/v4_2.nix
@@ -0,0 +1,17 @@
+{ stdenv, callPackage, lib, sasl, boost, Security, CoreFoundation, cctools }:
+
+let
+  buildMongoDB = callPackage ./mongodb.nix {
+    inherit sasl;
+    inherit boost;
+    inherit Security;
+    inherit CoreFoundation;
+    inherit cctools;
+  };
+in buildMongoDB {
+  version = "4.2.8";
+  sha256 = "13yvhi1258skdni00bh6ph609whqsmhiimhyqy1gs2liwdvh5278";
+  patches =
+    [ ./forget-build-dependencies-4-2.patch ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ ./asio-no-experimental-string-view-4-2.patch ];
+}
diff --git a/nixpkgs/pkgs/servers/nosql/redis/default.nix b/nixpkgs/pkgs/servers/nosql/redis/default.nix
index 8089fa46f92d..2ca829b62b12 100644
--- a/nixpkgs/pkgs/servers/nosql/redis/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/redis/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, lua, pkgconfig, systemd, jemalloc, nixosTests }:
 
 stdenv.mkDerivation rec {
-  version = "6.0.3";
+  version = "6.0.6";
   pname = "redis";
 
   src = fetchurl {
     url = "http://download.redis.io/releases/${pname}-${version}.tar.gz";
-    sha256 = "0fmvbhbgkrw75kqzgpklasylzff4zd0sxy2cvsrgg4pyh776v95w";
+    sha256 = "151x6qicmrmlxkmiwi2vdq8p50d52b9gglp8csag6pmgcfqlkb8j";
   };
 
   # Cross-compiling fixes
diff --git a/nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix b/nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix
index 46a23ed2529f..40ffddd4f105 100644
--- a/nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/rethinkdb/default.nix
@@ -5,20 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rethinkdb";
-  version = "2.3.6";
+  version = "2.4.1";
 
   src = fetchurl {
-    url = "https://download.rethinkdb.com/dist/${pname}-${version}.tgz";
-    sha256 = "0a6wlgqa2flf87jrp4fq4y9aihwyhgwclmss56z03b8hd5k5j8f4";
+    url = "https://download.rethinkdb.com/repository/raw/dist/${pname}-${version}.tgz";
+    sha256 = "5f1786c94797a0f8973597796e22545849dc214805cf1962ef76969e0b7d495b";
   };
 
-  patches = [
-    (fetchurl {
-        url = "https://github.com/rethinkdb/rethinkdb/commit/871bd3705a1f29c4ab07a096d562a4b06231a97c.patch";
-        sha256 = "05nagixlwnq3x7441fhll5vs70pxppbsciw8qjqp660bdb5m4jm1";
-    })
-  ];
-
   postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
     sed -i 's/raise.*No Xcode or CLT version detected.*/version = "7.0.0"/' external/v8_3.30.33.16/build/gyp/pylib/gyp/xcode_emulation.py
 
@@ -36,6 +29,8 @@ stdenv.mkDerivation rec {
     "--lib-path=${jemalloc}/lib"
   ];
 
+  makeFlags = [ "rethinkdb" ];
+
   buildInputs = [ protobuf boost zlib curl openssl icu makeWrapper ]
     ++ stdenv.lib.optional (!stdenv.isDarwin) jemalloc
     ++ stdenv.lib.optional stdenv.isDarwin libtool;
@@ -58,9 +53,8 @@ stdenv.mkDerivation rec {
       joins and group by, and is easy to setup and learn.
     '';
     homepage    = "http://www.rethinkdb.com";
-    license     = stdenv.lib.licenses.agpl3;
+    license     = stdenv.lib.licenses.asl20;
     platforms   = stdenv.lib.platforms.linux;
     maintainers = with stdenv.lib.maintainers; [ thoughtpolice bluescreen303 ];
-    broken = true;  # broken with openssl 1.1
   };
 }
diff --git a/nixpkgs/pkgs/servers/nosql/victoriametrics/default.nix b/nixpkgs/pkgs/servers/nosql/victoriametrics/default.nix
index 68f86f4c190c..b41861768d86 100644
--- a/nixpkgs/pkgs/servers/nosql/victoriametrics/default.nix
+++ b/nixpkgs/pkgs/servers/nosql/victoriametrics/default.nix
@@ -2,17 +2,19 @@
 
 buildGoPackage rec {
   pname = "VictoriaMetrics";
-  version = "1.37.0";
+  version = "1.40.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0p8fk73ydnhrdxgxr4b4xl84729rkkki38227xvxspx84j2fbhci";
+    sha256 = "0dnzc7yrd91g67wkx0g1b0gi7918pi1hqv4mjlxi2ccs8phxkk7l";
   };
 
   goPackagePath = "github.com/VictoriaMetrics/VictoriaMetrics";
 
+  buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/lib/buildinfo.Version=${version}" ];
+
   meta = with lib; {
     homepage = "https://victoriametrics.com/";
     description = "fast, cost-effective and scalable time series database, long-term remote storage for Prometheus";
diff --git a/nixpkgs/pkgs/servers/oauth2_proxy/default.nix b/nixpkgs/pkgs/servers/oauth2_proxy/default.nix
index 225c221b319e..4fd6a398a30d 100644
--- a/nixpkgs/pkgs/servers/oauth2_proxy/default.nix
+++ b/nixpkgs/pkgs/servers/oauth2_proxy/default.nix
@@ -1,28 +1,24 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
-  pname = "oauth2_proxy";
-  version = "5.1.0";
-
-  goPackagePath = "github.com/pusher/${pname}";
+buildGoModule rec {
+  pname = "oauth2-proxy";
+  version = "6.1.1";
 
   src = fetchFromGitHub {
     repo = pname;
-    owner = "pusher";
-    sha256 = "190k1v2c1f6vp9waqs01rlzm0jc3vrmsq1w1n0c2q2nfqx76y2wz";
+    owner = "oauth2-proxy";
+    sha256 = "10vvib4089yywd10kigjszsfxkzv8xzj7dy3wr5df8h80rcfa74n";
     rev = "v${version}";
   };
 
-  goDeps = ./deps.nix;
-
-  doCheck = true;
+  vendorSha256 = "0z8ibmpil899xvjaw7siswy22shjhx17a6lnjpr62paqdxy1sfwc";
 
   # Taken from https://github.com/oauth2-proxy/oauth2-proxy/blob/master/Makefile
   buildFlagsArray = ("-ldflags=-X main.VERSION=${version}");
 
   meta = with lib; {
     description = "A reverse proxy that provides authentication with Google, Github, or other providers";
-    homepage = "https://github.com/pusher/oauth2_proxy/";
+    homepage = "https://github.com/oauth2-proxy/oauth2-proxy/";
     license = licenses.mit;
     maintainers = with maintainers; [ yorickvp knl ];
   };
diff --git a/nixpkgs/pkgs/servers/oauth2_proxy/deps.nix b/nixpkgs/pkgs/servers/oauth2_proxy/deps.nix
deleted file mode 100644
index 611a07c2fda0..000000000000
--- a/nixpkgs/pkgs/servers/oauth2_proxy/deps.nix
+++ /dev/null
@@ -1,615 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "cloud.google.com/go";
-    fetch = {
-      type = "git";
-      url = "https://code.googlesource.com/gocloud";
-      rev = "v0.38.0";
-      sha256 = "0n6n13b7lri2fmc4bn4ifszyawj31dpbzvyv0xafsf81440z8cyh";
-    };
-  }
-  {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "v0.3.1";
-      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
-    };
-  }
-  {
-    goPackagePath = "github.com/alicebob/gopher-json";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alicebob/gopher-json";
-      rev = "5a6b3ba71ee6";
-      sha256 = "0hx6n722zq51p852lv56k39yjy09lw6mnr2c3x0p23rfyyrakj2p";
-    };
-  }
-  {
-    goPackagePath = "github.com/alicebob/miniredis";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alicebob/miniredis";
-      rev = "v2.11.2";
-      sha256 = "1fc6w9n1jznwj8ks2svxmjrv87pk3spjf5z3kcxpgpynp13pd55n";
-    };
-  }
-  {
-    goPackagePath = "github.com/bitly/go-simplejson";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bitly/go-simplejson";
-      rev = "v0.5.0";
-      sha256 = "0n9f9dz1jn1jx86d48569nznpjn9fmq3knn7r65xpy7jhih284jj";
-    };
-  }
-  {
-    goPackagePath = "github.com/bmizerany/assert";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bmizerany/assert";
-      rev = "b7ed37b82869";
-      sha256 = "18hy1wyl9zdi7sgxafrn3m7fadh6in0rhhb8l0cvkxqzdl0jcw2s";
-    };
-  }
-  {
-    goPackagePath = "github.com/census-instrumentation/opencensus-proto";
-    fetch = {
-      type = "git";
-      url = "https://github.com/census-instrumentation/opencensus-proto";
-      rev = "v0.2.1";
-      sha256 = "19fcx3sc99i5dsklny6r073z5j20vlwn2xqm6di1q3b1xwchzqfj";
-    };
-  }
-  {
-    goPackagePath = "github.com/chzyer/logex";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/logex";
-      rev = "v1.1.10";
-      sha256 = "08pbjj3wx9acavlwyr055isa8a5hnmllgdv5k6ra60l5y1brmlq4";
-    };
-  }
-  {
-    goPackagePath = "github.com/chzyer/readline";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/readline";
-      rev = "2972be24d48e";
-      sha256 = "104q8dazj8yf6b089jjr82fy9h1g80zyyzvp3g8b44a7d8ngjj6r";
-    };
-  }
-  {
-    goPackagePath = "github.com/chzyer/test";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/test";
-      rev = "a1ea475d72b1";
-      sha256 = "0rns2aqk22i9xsgyap0pq8wi4cfaxsri4d9q6xxhhyma8jjsnj2k";
-    };
-  }
-  {
-    goPackagePath = "github.com/client9/misspell";
-    fetch = {
-      type = "git";
-      url = "https://github.com/client9/misspell";
-      rev = "v0.3.4";
-      sha256 = "1vwf33wsc4la25zk9nylpbp9px3svlmldkm0bha4hp56jws4q9cs";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/go-oidc";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/go-oidc";
-      rev = "v2.2.1";
-      sha256 = "11m6slbpi33ynffml7812piq4anhjlf1qszjlsf26f5y7x3qh8n5";
-    };
-  }
-  {
-    goPackagePath = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev = "v1.1.0";
-      sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
-    };
-  }
-  {
-    goPackagePath = "github.com/dgrijalva/jwt-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgrijalva/jwt-go";
-      rev = "v3.2.0";
-      sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp";
-    };
-  }
-  {
-    goPackagePath = "github.com/envoyproxy/go-control-plane";
-    fetch = {
-      type = "git";
-      url = "https://github.com/envoyproxy/go-control-plane";
-      rev = "5f8ba28d4473";
-      sha256 = "1f1s764rd41vd9vgk3r14h1m6fz6pdvxj6fd83q58gxifbc4q5w4";
-    };
-  }
-  {
-    goPackagePath = "github.com/envoyproxy/protoc-gen-validate";
-    fetch = {
-      type = "git";
-      url = "https://github.com/envoyproxy/protoc-gen-validate";
-      rev = "v0.1.0";
-      sha256 = "0kxd3wwh3xwqk0r684hsy281xq4y71cd11d4q2hspcjbnlbwh7cy";
-    };
-  }
-  {
-    goPackagePath = "github.com/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-redis/redis";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-redis/redis";
-      rev = "v6.15.7";
-      sha256 = "0fc0sfispyzn652ny05wn6bz18a60n6ryk23ki8j97xx3l24nq2g";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/glog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/glog";
-      rev = "23def4e6c14b";
-      sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/mock";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/mock";
-      rev = "v1.2.0";
-      sha256 = "12ddj2g8ab87id6n2n67vnbhq6p8dvgsq1pzpqfriym4dk8w54fg";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "v1.3.2";
-      sha256 = "1k1wb4zr0qbwgpvz9q5ws9zhlal8hq7dmq62pwxxriksayl6hzym";
-    };
-  }
-  {
-    goPackagePath = "github.com/gomodule/redigo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gomodule/redigo";
-      rev = "v2.0.0";
-      sha256 = "1kg7s8027b4g1sfw0v3nh30c15j407kv684s53gg281r807dnfpk";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/btree";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/btree";
-      rev = "4030bb1f1f0c";
-      sha256 = "0ba430m9fbnagacp57krgidsyrgp3ycw5r7dj71brgp5r52g82p6";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/go-cmp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-cmp";
-      rev = "v0.3.0";
-      sha256 = "1hyxx3434zshl2m9ja78gwlkg1rx9yl6diqa7dnjb31xz5x4gbjj";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/martian";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/martian";
-      rev = "v2.1.0";
-      sha256 = "197hil6vrjk50b9wvwyzf61csid83whsjj6ik8mc9r2lryxlyyrp";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/pprof";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/pprof";
-      rev = "3ea8567a2e57";
-      sha256 = "09rhjn3ms0a72dw0yzbp237p7yhqma772zspddn6mgkh3gi3kn4c";
-    };
-  }
-  {
-    goPackagePath = "github.com/googleapis/gax-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/googleapis/gax-go";
-      rev = "v2.0.5";
-      sha256 = "1lxawwngv6miaqd25s3ba0didfzylbwisd2nz7r4gmbmin6jsjrx";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/golang-lru";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/golang-lru";
-      rev = "v0.5.1";
-      sha256 = "13f870cvk161bzjj6x41l45r5x9i1z9r2ymwmvm7768kg08zznpy";
-    };
-  }
-  {
-    goPackagePath = "github.com/hpcloud/tail";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hpcloud/tail";
-      rev = "v1.0.0";
-      sha256 = "1njpzc0pi1acg5zx9y6vj9xi6ksbsc5d387rd6904hy6rh2m6kn0";
-    };
-  }
-  {
-    goPackagePath = "github.com/jstemmer/go-junit-report";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jstemmer/go-junit-report";
-      rev = "af01ea7f8024";
-      sha256 = "1lp3n94ris12hac02wi31f3whs88lcrzwgdg43a5j6cafg9p1d0s";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pretty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pretty";
-      rev = "v0.2.0";
-      sha256 = "1ywbfzz1h3a3qd8rpkiqwi1dm4w8ls9ijb4x1b7567grns9f0vnp";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pty";
-      rev = "v1.1.1";
-      sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/text";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/text";
-      rev = "v0.1.0";
-      sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1";
-    };
-  }
-  {
-    goPackagePath = "github.com/mbland/hmacauth";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mbland/hmacauth";
-      rev = "44256dfd4bfa";
-      sha256 = "1d5pbjgc5j8pi3frsjp5gqg7j12bxdbl55nhy01cv4c96hay2ij1";
-    };
-  }
-  {
-    goPackagePath = "github.com/mreiferson/go-options";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mreiferson/go-options";
-      rev = "v1.0.0";
-      sha256 = "1pxs9ybrh196qy14ijn4zn51h2z28lj31y6vxrz2xxhgvpmfmxyl";
-    };
-  }
-  {
-    goPackagePath = "github.com/onsi/ginkgo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/onsi/ginkgo";
-      rev = "v1.12.0";
-      sha256 = "0ly246i0ax53l6dn9f1zlhkd9gs03hvbk7aazxay2dd5fxzh9n65";
-    };
-  }
-  {
-    goPackagePath = "github.com/onsi/gomega";
-    fetch = {
-      type = "git";
-      url = "https://github.com/onsi/gomega";
-      rev = "v1.9.0";
-      sha256 = "0l69r6nbnz6b3j9zrqn8aql88jjv1pqykzkvqdbhfprss9b2dy46";
-    };
-  }
-  {
-    goPackagePath = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev = "v1.0.0";
-      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-    };
-  }
-  {
-    goPackagePath = "github.com/pquerna/cachecontrol";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pquerna/cachecontrol";
-      rev = "1555304b9b35";
-      sha256 = "0nr3p9pms6jmr2s44vy2s22q1d3v6xns2kzsvkq2gg1rkx6c1hc9";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "14fe0d1b01d4";
-      sha256 = "0zdmk6rbbx39cvfz0r59v2jg5sg9yd02b4pds5n5llgvivi99550";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/objx";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/objx";
-      rev = "v0.1.0";
-      sha256 = "19ynspzjdynbi85xw06mh8ad5j0qa1vryvxjgvbnyrr8rbm4vd8w";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev = "v1.5.1";
-      sha256 = "09r89m1wy4cjv2nps1ykp00qjpi0531r07q3s34hr7m6njk4srkl";
-    };
-  }
-  {
-    goPackagePath = "github.com/yhat/wsutil";
-    fetch = {
-      type = "git";
-      url = "https://github.com/yhat/wsutil";
-      rev = "1d66fa95c997";
-      sha256 = "1agh4ss6y1laps8pg4mdl844ivmw2wrb7rnpfyag4gai4693i7bv";
-    };
-  }
-  {
-    goPackagePath = "github.com/yuin/gopher-lua";
-    fetch = {
-      type = "git";
-      url = "https://github.com/yuin/gopher-lua";
-      rev = "ab39c6098bdb";
-      sha256 = "13b0rrpv3988qw8rq6z7npajn1my059ybhafi5mxff9jw09k9sja";
-    };
-  }
-  {
-    goPackagePath = "go.opencensus.io";
-    fetch = {
-      type = "git";
-      url = "https://github.com/census-instrumentation/opencensus-go";
-      rev = "v0.21.0";
-      sha256 = "14s0a12xdzjvad0dgksgv8m3hh7nc585abvjkvyk6r67a29lxj6x";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "2aa609cf4a9d";
-      sha256 = "1yvis6fqbsd7f356aqyi18f76vnwj3bry6mxqnkvshq4cwrf92il";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/exp";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/exp";
-      rev = "509febef88a4";
-      sha256 = "02isrh39z8znrp5znplzy0dip2gnrl3jm1355raliyvhnhg04j6q";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/lint";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/lint";
-      rev = "959b441ac422";
-      sha256 = "1mgcv5f00pkzsbwnq2y7vqvd1b4lr5a3s47cphh2qv4indfk7pck";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "0de0cce0169b";
-      sha256 = "1db7s5kbzyh2zd5lpv05n7hp8wbwdvgk0wpiwrlnig94mkr0y5aq";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/oauth2";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/oauth2";
-      rev = "bf48bf16ab8d";
-      sha256 = "1sirdib60zwmh93kf9qrx51r8544k1p9rs5mk0797wibz3m4mrdg";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "112230192c58";
-      sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "bd437916bb0e";
-      sha256 = "1i8x26frmlin55k69k936zd1rp5sqnq14y5ms4rkxbfzhasdm2rx";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "v0.3.2";
-      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/time";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/time";
-      rev = "85acf8d2951c";
-      sha256 = "0yqnxsrarjk4qkda8kcxzmk7y90kkkxzx9iwryzrk7bzs87ky3xc";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "2c0ae7006135";
-      sha256 = "1lsi2ssxajclj3bciz2a41v1vjv768ja3v6wnbyhxy8xphwkp4fk";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/xerrors";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/xerrors";
-      rev = "a985d3407aa7";
-      sha256 = "00wzr5w8aadipgc3rkk8f11i41znskfj9ix5nhhaxyg7isrslgcj";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/api";
-    fetch = {
-      type = "git";
-      url = "https://code.googlesource.com/google-api-go-client";
-      rev = "v0.19.0";
-      sha256 = "0rbwijzl91xmbr9kqhiwx4fydm7r6ci6rxsi9jsy8zap9zy120f6";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/appengine";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/appengine";
-      rev = "v1.5.0";
-      sha256 = "0l7mkdnwhidv8m686x432vmx8z5nqcrr9f46ddgvrxbh4wvyfcll";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/genproto";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-genproto";
-      rev = "24fa4b261c55";
-      sha256 = "109zhaqlfd8zkbr1hk6zqbs6vcxfrk64scjwh2nswph05gr0m84d";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/grpc";
-    fetch = {
-      type = "git";
-      url = "https://github.com/grpc/grpc-go";
-      rev = "v1.27.0";
-      sha256 = "1ijrmgrxyabfn51nm3p9l81iaasq5fg237wnr6mdc4dzsfcg8kd7";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "20d25e280405";
-      sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/fsnotify.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/fsnotify.v1";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/fsnotify/fsnotify.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/fsnotify/fsnotify.v1";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/natefinch/lumberjack.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/natefinch/lumberjack.v2";
-      rev = "v2.0.0";
-      sha256 = "1m2sxypk7p805jvc68padvylyx5v7cwkh5klnnxxr0340kgspf08";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/square/go-jose.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/square/go-jose.v2";
-      rev = "v2.4.1";
-      sha256 = "1y0angxwryishwd1z0q7fp2xwjjhpw70kqh4ml4ly40akfhf1f5a";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/tomb.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/tomb.v1";
-      rev = "dd632973f1e7";
-      sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.4";
-      sha256 = "11bwj757wi8kdrcnlgfqb8vv2d2xdhlghmyagd19i62khrkchsg2";
-    };
-  }
-  {
-    goPackagePath = "honnef.co/go/tools";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dominikh/go-tools";
-      rev = "ea95bdfd59fc";
-      sha256 = "1763nw7pwpzkvzfnm63dgzcgbq9hwmq5l1nffchnhh77vgkaq4ic";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/servers/openafs/1.6/default.nix b/nixpkgs/pkgs/servers/openafs/1.6/default.nix
index 4dcc7b5e05de..8835024c1df0 100644
--- a/nixpkgs/pkgs/servers/openafs/1.6/default.nix
+++ b/nixpkgs/pkgs/servers/openafs/1.6/default.nix
@@ -85,5 +85,7 @@ stdenv.mkDerivation {
     license = licenses.ipl10;
     platforms = platforms.linux;
     maintainers = [ maintainers.maggesi maintainers.spacefrogg ];
+    # Package will be removed in 21.03
+    broken = true;
   };
 }
diff --git a/nixpkgs/pkgs/servers/openafs/1.6/module.nix b/nixpkgs/pkgs/servers/openafs/1.6/module.nix
index f1acdfcce5a4..3354d8508efa 100644
--- a/nixpkgs/pkgs/servers/openafs/1.6/module.nix
+++ b/nixpkgs/pkgs/servers/openafs/1.6/module.nix
@@ -70,8 +70,8 @@ in stdenv.mkDerivation {
     license = licenses.ipl10;
     platforms = platforms.linux;
     maintainers = [ maintainers.maggesi maintainers.spacefrogg ];
-    broken = versionOlder kernel.version "3.18" || builtins.compareVersions kernel.version "5.0" >= 0
-             || stdenv.targetPlatform.isAarch64;
+    # Package will be removed in 21.03
+    broken = true;
   };
 
 }
diff --git a/nixpkgs/pkgs/servers/openafs/1.6/srcs.nix b/nixpkgs/pkgs/servers/openafs/1.6/srcs.nix
index 17048b68024e..888cef2f1eaa 100644
--- a/nixpkgs/pkgs/servers/openafs/1.6/srcs.nix
+++ b/nixpkgs/pkgs/servers/openafs/1.6/srcs.nix
@@ -1,14 +1,14 @@
 { fetchurl }:
 rec {
-  version = "1.6.23";
+  version = "1.6.24";
   src = fetchurl {
     url = "http://www.openafs.org/dl/openafs/${version}/openafs-${version}-src.tar.bz2";
-    sha256 = "1gy7a0jhagxif8av540xb1aa6cl7id08nsgjbgady54bnmb0viga";
+    sha256 = "1dxzc1y5mmx3ap0m94sx80vfs3qxkckid3wc1xm0wr5i6fh7zn1h";
   };
 
   srcs = [ src
     (fetchurl {
       url = "http://www.openafs.org/dl/openafs/${version}/openafs-${version}-doc.tar.bz2";
-      sha256 = "18my71s9mddy0k835852ksjzkza7xs73kyxavmdqflh5vkywb6y0";
+      sha256 = "0aq9ipqpr2ksmk30h2dc4mlrkrqs16xnmspwfb6xj3rgr1pwszlx";
     })];
 }
diff --git a/nixpkgs/pkgs/servers/openafs/1.8/module.nix b/nixpkgs/pkgs/servers/openafs/1.8/module.nix
index d998784b3faa..db44dbe2200d 100644
--- a/nixpkgs/pkgs/servers/openafs/1.8/module.nix
+++ b/nixpkgs/pkgs/servers/openafs/1.8/module.nix
@@ -18,22 +18,6 @@ in stdenv.mkDerivation {
 
   buildInputs = [ kerberos ];
 
-  patches = [
-    # openafs 5.6 patches, included in the next release
-    (fetchpatch {
-      url = "https://github.com/openafs/openafs/commit/34f1689b7288688550119638ee9959e453fde414.patch";
-      sha256 = "0rxjqzr8c5ajlk8wrhgjc1qp1934qiriqdi0qxsnk4gj5ibbk4d5";
-    })
-    (fetchpatch {
-      url = "https://github.com/openafs/openafs/commit/355ea43f0d1b7feae1b3af58bc33af12838db7c3.patch";
-      sha256 = "1f9xn8ql6vnxglpj3dvi30sj8vkncazjab2rc13hbw48nvsvcnhm";
-    })
-    (fetchpatch {
-      url = "https://github.com/openafs/openafs/commit/17d38e31e6f2e237a7fb4dfb46841060296310b6.patch";
-      sha256 = "14dydxfm0f5fvnj0kmvgm3bgh0ajhh04i3l7l0hr9cpmwl7vrlcg";
-    })
-  ];
-
   hardeningDisable = [ "pic" ];
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/servers/openafs/1.8/srcs.nix b/nixpkgs/pkgs/servers/openafs/1.8/srcs.nix
index 4a5591ef4646..4df5bdfc3888 100644
--- a/nixpkgs/pkgs/servers/openafs/1.8/srcs.nix
+++ b/nixpkgs/pkgs/servers/openafs/1.8/srcs.nix
@@ -1,14 +1,14 @@
 { fetchurl }:
 rec {
-  version = "1.8.5";
+  version = "1.8.6";
   src = fetchurl {
-    url = "http://www.openafs.org/dl/openafs/${version}/openafs-${version}-src.tar.bz2";
-    sha256 = "08w5n803xm75j7daa3mr2ncfmcg0wpm7yasj6zyddqlb4f7xdppf";
+    url = "https://www.openafs.org/dl/openafs/${version}/openafs-${version}-src.tar.bz2";
+    sha256 = "0i99klrw00v4bwd942n90xqfn16z6337m89xfm9dgv7ih0qrsklb";
   };
 
   srcs = [ src
     (fetchurl {
-      url = "http://www.openafs.org/dl/openafs/${version}/openafs-${version}-doc.tar.bz2";
-      sha256 = "08mg3n0q2igfas1khj18r9apyrkpbp1jick0ix5nfaal90jbifis";
+      url = "https://www.openafs.org/dl/openafs/${version}/openafs-${version}-doc.tar.bz2";
+      sha256 = "1s91kmxfimhdqrz7l6jgjz72j9pyalghrvg4h384fsz0ks6s4kz3";
     })];
 }
diff --git a/nixpkgs/pkgs/servers/openbgpd/default.nix b/nixpkgs/pkgs/servers/openbgpd/default.nix
new file mode 100644
index 000000000000..2e0c787d0b21
--- /dev/null
+++ b/nixpkgs/pkgs/servers/openbgpd/default.nix
@@ -0,0 +1,45 @@
+{ stdenv, fetchFromGitHub, autoconf, automake
+, libtool, m4, yacc }:
+
+let
+  openbsd_version = "OPENBSD_6_7"; # This has to be equal to ${src}/OPENBSD_BRANCH
+  openbsd = fetchFromGitHub {
+    owner = "openbgpd-portable";
+    repo = "openbgpd-openbsd";
+    rev = openbsd_version;
+    sha256 = "sha256-YJTHUsn6s4xLcLQuxCLmEkIE8ozxzooj71cJ5Wl+0lI=";
+  };
+in stdenv.mkDerivation rec {
+  pname = "opengpd";
+  version = "6.7p0";
+
+  src = fetchFromGitHub {
+    owner = "openbgpd-portable";
+    repo = "openbgpd-portable";
+    rev = version;
+    sha256 = "sha256-10DfK45BsSHeyANB0OJLKog1mEj0mydXSDAT9G6u1gM";
+  };
+
+  nativeBuildInputs =
+    [  autoconf automake libtool m4 yacc ];
+
+  preConfigure = ''
+    mkdir ./openbsd
+    cp -r ${openbsd}/* ./openbsd/
+    chmod -R +w ./openbsd
+    openbsd_version=$(cat ./OPENBSD_BRANCH)
+    if [ "$openbsd_version" != "${openbsd_version}" ]; then
+      echo "OPENBSD VERSION does not match"
+      exit 1
+    fi
+    ./autogen.sh
+  '';
+
+  meta = with stdenv.lib; {
+    description = "OpenBGPD is a FREE implementation of the Border Gateway Protocol, Version 4. It allows ordinary machines to be used as routers exchanging routes with other systems speaking the BGP protocol.";
+    license = licenses.isc;
+    homepage = "http://www.openbgpd.org/";
+    maintainers = with maintainers; [ kloenk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/pinnwand/default.nix b/nixpkgs/pkgs/servers/pinnwand/default.nix
index 563c539c825e..a2f417d88fae 100644
--- a/nixpkgs/pkgs/servers/pinnwand/default.nix
+++ b/nixpkgs/pkgs/servers/pinnwand/default.nix
@@ -1,4 +1,4 @@
-{ lib, python3, fetchFromGitHub }:
+{ lib, python3, fetchFromGitHub, poetry, nixosTests }:
 
 let
   python = python3.override {
@@ -14,13 +14,20 @@ let
   };
 in with python.pkgs; buildPythonApplication rec {
   pname = "pinnwand";
-  version = "1.1.2";
+  version = "1.2.2";
+  format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0iincxkfyyx85ggx9ilms2f8aq4lcbg3rkqgrr4wlsflzhljqd0p";
+  src = fetchFromGitHub {
+    owner = "supakeen";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0cxdpc3lxgzakzgvdyyrn234380dm05svnwr8av5nrjp4nm9s8z4";
   };
 
+  nativeBuildInputs = [
+    poetry
+  ];
+
   propagatedBuildInputs = [
     click
     docutils
@@ -30,11 +37,14 @@ in with python.pkgs; buildPythonApplication rec {
     sqlalchemy
   ];
 
-  # tests are only available when fetching from GitHub, where they in turn don't have a setup.py :(
+  checkInputs = [ pytest ];
+
   checkPhase = ''
-    $out/bin/pinnwand --help > /dev/null
+    pytest
   '';
 
+  passthru.tests = nixosTests.pinnwand;
+
   meta = with lib; {
     homepage = "https://supakeen.com/project/pinnwand/";
     license = licenses.mit;
diff --git a/nixpkgs/pkgs/servers/pinnwand/steck.nix b/nixpkgs/pkgs/servers/pinnwand/steck.nix
new file mode 100644
index 000000000000..09b20efc36ee
--- /dev/null
+++ b/nixpkgs/pkgs/servers/pinnwand/steck.nix
@@ -0,0 +1,31 @@
+{ lib, pkgs, python3Packages, nixosTests }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "steck";
+  version = "0.6.0";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "07gc5iwbyprb8nihnjjl2zd06z8p4nl3a3drzh9a8ny35ig1khq0";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    pkgs.git
+    appdirs
+    click
+    python_magic
+    requests
+    termcolor
+    toml
+  ];
+
+  passthru.tests = nixosTests.pinnwand;
+
+  meta = with lib; {
+    homepage = "https://github.com/supakeen/steck";
+    license = licenses.mit;
+    description = "Client for pinnwand pastebin.";
+    maintainers = with maintainers; [ hexa ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/servers/plex/raw.nix b/nixpkgs/pkgs/servers/plex/raw.nix
index aa8bac28bbdc..48f786c13729 100644
--- a/nixpkgs/pkgs/servers/plex/raw.nix
+++ b/nixpkgs/pkgs/servers/plex/raw.nix
@@ -8,13 +8,13 @@
 # server, and the FHS userenv and corresponding NixOS module should
 # automatically pick up the changes.
 stdenv.mkDerivation rec {
-  version = "1.19.3.2852-219a9974e";
+  version = "1.20.1.3252-a78fef9a9";
   pname = "plexmediaserver";
 
   # Fetch the source
   src = fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/redhat/plexmediaserver-${version}.x86_64.rpm";
-    sha256 = "0sp7lnzf3zrwdmcg54mpvml89q1cbaq6s1cl9gj2z31xfiz07a26";
+    sha256 = "0z50c6kgsxz1pj8d65ibliqd4xbkwjlmim76j8rjid3amhj50jmx";
   };
 
   outputs = [ "out" "basedb" ];
diff --git a/nixpkgs/pkgs/servers/pounce/default.nix b/nixpkgs/pkgs/servers/pounce/default.nix
index 8609648378a7..a418417ce2fe 100644
--- a/nixpkgs/pkgs/servers/pounce/default.nix
+++ b/nixpkgs/pkgs/servers/pounce/default.nix
@@ -1,23 +1,22 @@
-{ stdenv, libressl, fetchzip, fetchpatch }:
+{ stdenv, libressl, fetchzip, fetchpatch, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "pounce";
-  version = "1.1";
+  version = "1.4p2";
 
   src = fetchzip {
     url = "https://git.causal.agency/pounce/snapshot/pounce-${version}.tar.gz";
-    sha256 = "07iyh6ikrlf7y57k462jcr00db6aijk9b2s7n7l7i49hk7kmm6wq";
+    sha256 = "0fpnj9yvmj4gbbfpya4i0lyin56r782pz19z3pgd8xgs22gd48cc";
   };
 
   buildInputs = [ libressl ];
 
-  configurePhase = "ln -s Linux.mk config.mk";
+  nativeBuildInputs = [ pkg-config ];
 
   buildFlags = [ "all" ];
 
   makeFlags = [
     "PREFIX=$(out)"
-    "LIBRESSL_BIN_PREFIX=${libressl}/bin"
   ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/servers/pulseaudio/default.nix b/nixpkgs/pkgs/servers/pulseaudio/default.nix
index e15efd4b47d1..513249cb7ad5 100644
--- a/nixpkgs/pkgs/servers/pulseaudio/default.nix
+++ b/nixpkgs/pkgs/servers/pulseaudio/default.nix
@@ -61,6 +61,11 @@ stdenv.mkDerivation rec {
       ++ lib.optional zeroconfSupport  avahi
   );
 
+  prePatch = ''
+    substituteInPlace bootstrap.sh \
+      --replace pkg-config $PKG_CONFIG
+  '';
+
   autoreconfPhase = ''
     # Performs an autoreconf
     patchShebangs bootstrap.sh
diff --git a/nixpkgs/pkgs/servers/radarr/default.nix b/nixpkgs/pkgs/servers/radarr/default.nix
index b0871a99f671..e39e0bf76470 100644
--- a/nixpkgs/pkgs/servers/radarr/default.nix
+++ b/nixpkgs/pkgs/servers/radarr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "radarr";
-  version = "0.2.0.1480";
+  version = "0.2.0.1504";
 
   src = fetchurl {
     url = "https://github.com/Radarr/Radarr/releases/download/v${version}/Radarr.develop.${version}.linux.tar.gz";
-    sha256 = "066kr9fk2ipid11aq057rqzy3b2kgd5qf9msq1fsmxixqg82m64h";
+    sha256 = "1h7pqn39vxd0vr1fwrnvfpxv5vhh4zcr0s8h0zvgplay2z6b6bvb";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     description = "A Usenet/BitTorrent movie downloader";
     homepage = "https://radarr.video/";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ edwtjo ];
+    maintainers = with maintainers; [ edwtjo purcell ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/servers/radicale/default.nix b/nixpkgs/pkgs/servers/radicale/2.x.nix
index fc98795bbc79..8d36717ec69b 100644
--- a/nixpkgs/pkgs/servers/radicale/default.nix
+++ b/nixpkgs/pkgs/servers/radicale/2.x.nix
@@ -2,14 +2,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "Radicale";
-  version = "2.1.11";
+  version = "2.1.12";
 
   # No tests in PyPI tarball
   src = fetchFromGitHub {
     owner = "Kozea";
     repo = "Radicale";
     rev = version;
-    sha256 = "1k32iy55lnyyp1r75clarhwdqvw6w8mxb5v0l5aysga07fg2mix4";
+    sha256 = "14f9ql0fiwapaa4xaslwgk1ah9fzxxan2p1p2rxb4a5iqph1z0cl";
   };
 
   # We only want functional tests
@@ -31,7 +31,7 @@ python3.pkgs.buildPythonApplication rec {
   ];
 
   meta = with stdenv.lib; {
-    homepage = "https://www.radicale.org/";
+    homepage = "https://www.radicale.org/2.x.nix";
     description = "CalDAV CardDAV server";
     longDescription = ''
       The Radicale Project is a complete CalDAV (calendar) and CardDAV
diff --git a/nixpkgs/pkgs/servers/radicale/3.x.nix b/nixpkgs/pkgs/servers/radicale/3.x.nix
new file mode 100644
index 000000000000..4b49b1e40c82
--- /dev/null
+++ b/nixpkgs/pkgs/servers/radicale/3.x.nix
@@ -0,0 +1,38 @@
+{ lib, python3, fetchFromGitHub }:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "radicale";
+  version = "3.0.5";
+
+  # No tests in PyPI tarball
+  src = fetchFromGitHub {
+    owner = "Kozea";
+    repo = "Radicale";
+    rev = version;
+    sha256 = "0w8qkjm7b62cr49dbis41kvv3179sfmvvzlhlc0rbqss6vmwbq4p";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    defusedxml
+    passlib
+    vobject
+    python-dateutil
+    setuptools
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytestrunner
+    pytest
+    pytestcov
+    pytest-flake8
+    pytest-isort
+    waitress
+  ];
+
+  meta = with lib; {
+    homepage = "https://www.radicale.org/3.0.html";
+    description = "CalDAV and CardDAV server";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ dotlambda ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/rippled/default.nix b/nixpkgs/pkgs/servers/rippled/default.nix
index 69a54a1202d2..c9095339cc34 100644
--- a/nixpkgs/pkgs/servers/rippled/default.nix
+++ b/nixpkgs/pkgs/servers/rippled/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, fetchgit, fetchurl, runCommand, git, cmake, pkgconfig
-, openssl, boost, zlib }:
+, openssl,  zlib, boost, grpc, c-ares, abseil-cpp, protobuf3_8 }:
 
 let
   sqlite3 = fetchurl rec {
@@ -8,27 +8,49 @@ let
     passthru.url = url;
   };
 
+  boostSharedStatic = boost.override {
+    enableShared = true; 
+    enabledStatic = true;
+  };
+
+  beast = fetchgit {
+    url = "https://github.com/boostorg/beast.git";
+    rev = "2f9a8440c2432d8a196571d6300404cb76314125";
+    sha256 = "1n9ms5cn67b0p0mhldz5psgylds22sm5x22q7knrsf20856vlk5a";
+    fetchSubmodules = false;
+    leaveDotGit = true;
+  };
+
   docca = fetchgit {
     url = "https://github.com/vinniefalco/docca.git";
     rev = "335dbf9c3613e997ed56d540cc8c5ff2e28cab2d";
-    sha256 = "1yisdg7q2p9q9gz0c446796p3ggx9s4d6g8w4j1pjff55655805h";
-    leaveDotGit = true;
+    sha256 = "09cb90k0ygmnlpidybv6nzf6is51i80lnwlvad6ijc3gf1z6i1yh";
     fetchSubmodules = false;
+    leaveDotGit = true;
+  };
+
+  nudb = fetchgit rec {
+    url = "https://github.com/CPPAlliance/NuDB.git";
+    rev = "2.0.3";
+    sha256 = "0imd9sh6knydwa3pxa5bbvjs3bmb8650dnsvj04qgns6bynwlqh1";
+    leaveDotGit = true;
+    fetchSubmodules = true;
+    postFetch = "cd $out && git tag ${rev}";
   };
 
   rocksdb = fetchgit rec {
     url = "https://github.com/facebook/rocksdb.git";
-    rev = "v5.17.2";
-    sha256 = "0d9ssggjls1hc4zhng65yg8slqlcw0lr23qr6f39shg42lzr227p";
-    leaveDotGit = true;
+    rev = "v6.5.3";
+    sha256 = "11kbwqph1i3w6rbhr0kl2aq4jidhai24gw420y9qi9ab7zl0zcqg";
+    deepClone = true;
     fetchSubmodules = false;
-    postFetch = "cd $out && git tag ${rev}";
+    leaveDotGit = true;
   };
 
   lz4 = fetchgit rec {
     url = "https://github.com/lz4/lz4.git";
-    rev = "v1.8.2";
-    sha256 = "1niv553q60hwn95yflzmrqkp1046hrid13h0yr36lm4fjza21h9w";
+    rev = "v1.9.2";
+    sha256 = "0322xy2vfhxkb8akas7vwajjgcigq1q8l9f5fnfmavcsd6kmxmgg";
     leaveDotGit = true;
     fetchSubmodules = false;
     postFetch = "cd $out && git tag ${rev}";
@@ -36,8 +58,8 @@ let
 
   libarchive = fetchgit rec {
     url = "https://github.com/libarchive/libarchive.git";
-    rev = "v3.3.3";
-    sha256 = "165imgfmizpi4ffpiwfs8gxysn6lw3y1fxj5rga98filkl7hxs31";
+    rev = "v3.4.3";
+    sha256 = "00yrzy2129vr4nfhigd91651984sl447dyfjfz26dmzvna5hwzp1";
     leaveDotGit = true;
     fetchSubmodules = false;
     postFetch = "cd $out && git tag ${rev}";
@@ -60,19 +82,10 @@ let
     postFetch = "cd $out && git tag ${rev}";
   };
 
-  nudb = fetchgit rec {
-    url = "https://github.com/CPPAlliance/NuDB.git";
-    rev = "2.0.1";
-    sha256 = "0h7hmwavrxzj1v547h3z0031ckwphjayfpv1mgcr6q86wm9p5468";
-    leaveDotGit = true;
-    fetchSubmodules = true; # submodules are needed, rocksdb is dependency
-    postFetch = "cd $out && git tag ${rev}";
-  };
-
-  protobuf = fetchgit rec {
-    url = "https://github.com/protocolbuffers/protobuf.git";
-    rev = "v3.6.1";
-    sha256 = "0zl09q25ggfw95lakcs3mkq5pvsj17mx29b4nqr09g0mnbw9709c";
+  cares = fetchgit rec {
+    url = "https://github.com/c-ares/c-ares.git";
+    rev = "cares-1_15_0";
+    sha256 = "1fkzsyhfk5p5hr4dx4r36pg9xzs0md6cyj1q2dni3cjgqj3s518v";
     leaveDotGit = true;
     fetchSubmodules = false;
     postFetch = "cd $out && git tag ${rev}";
@@ -80,65 +93,62 @@ let
 
   google-test = fetchgit {
     url = "https://github.com/google/googletest.git";
-    rev = "c3bb0ee2a63279a803aaad956b9b26d74bf9e6e2";
-    sha256 = "0pj5b6jnrj5lrccz2disr8hklbnzd8hwmrwbfqmvhiwb9q9p0k2k";
-    fetchSubmodules = false;
+    rev = "5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081";
+    sha256 = "1ch7hq16z20ddhpc08slp9bny29j88x9vr6bi9r4yf5m77xbplja";
     leaveDotGit = true;
+    fetchSubmodules = false;
   };
 
   google-benchmark = fetchgit {
     url = "https://github.com/google/benchmark.git";
     rev = "5b7683f49e1e9223cf9927b24f6fd3d6bd82e3f8";
-    sha256 = "0qg70j47zqnrbszlgrzmxpr4g88kq0gyq6v16bhaggfm83c6mg6i";
-    fetchSubmodules = false;
+    sha256 = "0kcmb83framkncc50h0lyyz7v8nys6g19ja0h2p8x4sfafnnm6ig";
     leaveDotGit = true;
+    fetchSubmodules = false;
   };
 
-  # hack to merge rocksdb revisions from rocksdb and nudb, so build process
-  # will find both
-  rocksdb-merged = runCommand "rocksdb-merged" {
-    buildInputs = [ git ];
-  } ''
-    commit=$(cd ${nudb} && git ls-tree HEAD extras/rocksdb | awk '{ print $3  }')
-    git clone ${rocksdb} $out && cd $out
-    git fetch ${nudb}/extras/rocksdb $commit
-    git checkout $commit
-  '';
+  date = fetchgit {
+    url = "https://github.com/HowardHinnant/date.git";
+    rev = "fc4cf092f9674f2670fb9177edcdee870399b829";
+    sha256 = "0w618p64mx2l074b6wd0xfc4h6312mabhvzabxxwsnzj4afpajcm";
+    leaveDotGit = true;
+    fetchSubmodules = false;
+  };
 in stdenv.mkDerivation rec {
   pname = "rippled";
-  version = "1.4.0";
+  version = "1.6.0";
 
-  src = fetchFromGitHub {
-    owner = "ripple";
-    repo = "rippled";
+  src = fetchgit {
+    url = "https://github.com/ripple/rippled.git";
     rev = version;
-    sha256 = "1z04378bg8lcyrnn7sl3j2zfxbwwy2biasg1d4fbaq4snxg5d1pq";
+    sha256 = "176i3dm98zp5jllslpzfhh52bd2lapq9i8r7m45v8sg9icvsmyz7";
+    leaveDotGit = true;
+    fetchSubmodules = true;
   };
 
   hardeningDisable = ["format"];
-  cmakeFlags = [
-    "-Dstatic=OFF"
-    "-DBOOST_LIBRARYDIR=${boost.out}/lib"
-    "-DBOOST_INCLUDEDIR=${boost.dev}/include"
-  ];
+  cmakeFlags = ["-Dstatic=OFF" "-DBoost_NO_BOOST_CMAKE=ON"];
 
   nativeBuildInputs = [ pkgconfig cmake git ];
-  buildInputs = [ openssl openssl.dev zlib ];
+  buildInputs = [ openssl openssl.dev boostSharedStatic zlib grpc c-ares c-ares.cmake-config abseil-cpp protobuf3_8 ];
 
   preConfigure = ''
     export HOME=$PWD
 
+    git config --global url."file://${rocksdb}".insteadOf "${rocksdb.url}"
     git config --global url."file://${docca}".insteadOf "${docca.url}"
-    git config --global url."file://${rocksdb-merged}".insteadOf "${rocksdb.url}"
     git config --global url."file://${lz4}".insteadOf "${lz4.url}"
     git config --global url."file://${libarchive}".insteadOf "${libarchive.url}"
     git config --global url."file://${soci}".insteadOf "${soci.url}"
     git config --global url."file://${snappy}".insteadOf "${snappy.url}"
     git config --global url."file://${nudb}".insteadOf "${nudb.url}"
-    git config --global url."file://${protobuf}".insteadOf "${protobuf.url}"
     git config --global url."file://${google-benchmark}".insteadOf "${google-benchmark.url}"
     git config --global url."file://${google-test}".insteadOf "${google-test.url}"
+    git config --global url."file://${date}".insteadOf "${date.url}"
 
+    substituteInPlace Builds/CMake/deps/Sqlite.cmake --replace "http://www.sqlite.org/2018/sqlite-amalgamation-3260000.zip" "" 
+    substituteInPlace Builds/CMake/deps/Sqlite.cmake --replace "https://www2.sqlite.org/2018/sqlite-amalgamation-3260000.zip" "" 
+    substituteInPlace Builds/CMake/deps/Sqlite.cmake --replace "http://www2.sqlite.org/2018/sqlite-amalgamation-3260000.zip" "" 
     substituteInPlace Builds/CMake/deps/Sqlite.cmake --replace "URL ${sqlite3.url}" "URL ${sqlite3}"
   '';
 
@@ -150,7 +160,7 @@ in stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Ripple P2P payment network reference server";
     homepage = "https://github.com/ripple/rippled";
-    maintainers = with maintainers; [ ehmry offline ];
+    maintainers = with maintainers; [ ehmry offline RaghavSood ];
     license = licenses.isc;
     platforms = [ "x86_64-linux" ];
   };
diff --git a/nixpkgs/pkgs/servers/roon-server/default.nix b/nixpkgs/pkgs/servers/roon-server/default.nix
index a5924e37331d..9c08f392042d 100644
--- a/nixpkgs/pkgs/servers/roon-server/default.nix
+++ b/nixpkgs/pkgs/servers/roon-server/default.nix
@@ -1,65 +1,68 @@
-{ alsaLib, alsaUtils, cifs-utils, fetchurl, ffmpeg_3, libav, mono, stdenv }:
-
-with stdenv.lib;
-stdenv.mkDerivation rec {
+{ alsaLib
+, alsaUtils
+, autoPatchelfHook
+, cifs-utils
+, fetchurl
+, ffmpeg
+, freetype
+, lib
+, makeWrapper
+, stdenv
+, zlib
+}: stdenv.mkDerivation rec {
   name = "roon-server";
-  version = "100600401";
+  version = "100700571";
 
   src = fetchurl {
     url = "http://download.roonlabs.com/updates/stable/RoonServer_linuxx64_${version}.tar.bz2";
-    sha256 = "121mmdh35q4bpgsqhcps6a6q1f4ld9v4hq9gp181bf2n779pk8sh";
+    sha256 = "191vlzf10ypkk1prp6x2rszlmsihdwpd3wvgf2jg6ckwyxy2hc6k";
   };
 
-  installPhase = ''
-    runHook preInstall
-
-    # Check script
-    sed -i '3i PATH=$PATH:${makeBinPath [ cifs-utils ffmpeg_3 libav ]}' check.sh
-    sed -i '/check_ulimit$/d' check.sh
-
-    # Start script
-    sed -i '3i PATH=$PATH:${makeBinPath [ alsaUtils cifs-utils ffmpeg_3 libav ]}' start.sh
+  buildInputs = [
+    alsaLib
+    alsaUtils
+    cifs-utils
+    ffmpeg
+    freetype
+    zlib
+  ];
 
-    # Debug logging
-    sed -i '/--debug--gc=sgen --server/exec "$HARDLINK" --debug --gc=sgen --server "$SCRIPT.exe" "$@" -storagetrace -watchertrace' Appliance/RoonAppliance
-
-    # Binaries
-    sed -i '/# boost ulimit/,+2 d' Appliance/RAATServer
-    sed -i '/# boost ulimit/,+2 d' Appliance/RoonAppliance
-    sed -i '/# boost ulimit/,+2 d' Server/RoonServer
-    sed -i '/ln -sf/ d' Appliance/RAATServer
-    sed -i '/ln -sf/ d' Appliance/RoonAppliance
-    sed -i '/ln -sf/ d' Server/RoonServer
-    mkdir -p $out/opt
-    mv * $out/opt
-    ln -sf $out/opt/RoonMono/bin/mono-sgen $out/opt/RoonMono/bin/RoonServer
-    ln -sf $out/opt/RoonMono/bin/mono-sgen $out/opt/RoonMono/bin/RoonAppliance
-    ln -sf $out/opt/RoonMono/bin/mono-sgen $out/opt/RoonMono/bin/RAATServer
+  nativeBuildInputs = [ autoPatchelfHook makeWrapper ];
 
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out
+    mv * $out
     runHook postInstall
   '';
 
-  preFixup = ''
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${alsaLib}/lib" \
-      $out/opt/RoonMono/bin/mono-sgen
+  postFixup =
+    let
+      linkFix = bin: ''
+        sed -i '/ulimit/d' ${bin}
+        sed -i '/ln -sf/d' ${bin}
+        ln -sf $out/RoonMono/bin/mono-sgen $out/RoonMono/bin/${builtins.baseNameOf bin}
+      '';
+      wrapFix = bin: ''
+        wrapProgram ${bin} --prefix PATH : ${lib.makeBinPath [ alsaUtils cifs-utils ffmpeg ]}
+      '';
+    in
+    ''
+      ${linkFix "$out/Appliance/RAATServer"}
+      ${linkFix "$out/Appliance/RoonAppliance"}
+      ${linkFix "$out/Server/RoonServer"}
 
-    # Checkers
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${alsaLib}/lib" \
-      $out/opt/Appliance/check_alsa
-    patchelf \
-      --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      $out/opt/Appliance/check_bincompat
-  '';
+      sed -i '/which avconv/c\    WHICH_AVCONV=1' $out/check.sh
+      sed -i '/^check_ulimit/d' $out/check.sh
+      ${wrapFix "$out/check.sh"}
+      ${wrapFix "$out/start.sh"}
+    '';
 
-  meta = {
+  meta = with lib; {
     description = "The music player for music lovers.";
-    homepage    = "https://roonlabs.com";
-    license     = licenses.unfree;
-    maintainers = with maintainers; [ steell ];
-    platforms   = platforms.linux;
+    homepage = "https://roonlabs.com";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ lovesegfault steell ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/servers/roundcube/default.nix b/nixpkgs/pkgs/servers/roundcube/default.nix
index 03c1a6cf770b..d46972eae21f 100644
--- a/nixpkgs/pkgs/servers/roundcube/default.nix
+++ b/nixpkgs/pkgs/servers/roundcube/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "roundcube";
-  version = "1.4.6";
+  version = "1.4.8";
 
   src = fetchurl {
     url = "https://github.com/roundcube/roundcubemail/releases/download/${version}/roundcubemail-${version}-complete.tar.gz";
-    sha256 = "06xxzvjd06r90fxpq9zh9fwylg6sbd26c08rxfd553jikyp5znsm";
+    sha256 = "0jkas28k7px95sm3zix86ggraxc9vyy66271sgpr2wrmbg2r056r";
   };
 
   patches = [ ./0001-Don-t-resolve-symlinks-when-trying-to-find-INSTALL_P.patch ];
diff --git a/nixpkgs/pkgs/servers/roundcube/plugins/carddav/default.nix b/nixpkgs/pkgs/servers/roundcube/plugins/carddav/default.nix
new file mode 100644
index 000000000000..c3745c9bcc5e
--- /dev/null
+++ b/nixpkgs/pkgs/servers/roundcube/plugins/carddav/default.nix
@@ -0,0 +1,11 @@
+{ roundcubePlugin, fetchzip }:
+
+roundcubePlugin rec {
+  pname = "carddav";
+  version = "3.0.3";
+
+  src = fetchzip {
+    url = "https://github.com/blind-coder/rcmcarddav/releases/download/v${version}/carddav-${version}.tar.bz2";
+    sha256 = "0scqxqfwv9r4ggaammmjp51mj50qc5p4jmjliwjvcwyjr36wjq3z";
+  };
+}
diff --git a/nixpkgs/pkgs/servers/roundcube/plugins/plugins.nix b/nixpkgs/pkgs/servers/roundcube/plugins/plugins.nix
index 4eed1227be68..a9c73874b69e 100644
--- a/nixpkgs/pkgs/servers/roundcube/plugins/plugins.nix
+++ b/nixpkgs/pkgs/servers/roundcube/plugins/plugins.nix
@@ -5,5 +5,6 @@
 
   roundcubePlugin = callPackage ./roundcube-plugin.nix { };
 
+  carddav = callPackage ./carddav { };
   persistent_login = callPackage ./persistent_login { };
 }
diff --git a/nixpkgs/pkgs/servers/routinator/default.nix b/nixpkgs/pkgs/servers/routinator/default.nix
index 46416c982760..6e57ebd42da5 100644
--- a/nixpkgs/pkgs/servers/routinator/default.nix
+++ b/nixpkgs/pkgs/servers/routinator/default.nix
@@ -2,22 +2,22 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "routinator";
-  version = "0.7.0";
+  version = "0.7.1";
 
   src = fetchFromGitHub {
     owner = "NLnetLabs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qbaibmbiw3pffi0cm6d06k1gra4acgxr97gj7f1ckvql5rni4h0";
+    sha256 = "12fgvalv12v8690pxmsdg179r170d4mc1kynsb25fm0zggy838jn";
   };
 
-  cargoSha256 = "138h99l3vv34higbqj59fa88w7c63c80g3rw07n9j2f834cvr901";
+  cargoSha256 = "01118mnb5gm0xqi2c8jj3fk8y55jnnyg9zgn2g4xn7f3i8dcczka";
 
   meta = with stdenv.lib; {
     description = "An RPKI Validator written in Rust";
     homepage = "https://github.com/NLnetLabs/routinator";
     license = licenses.bsd3;
-    maintainers = [ maintainers."0x4A6F" ];
+    maintainers = with maintainers; [ _0x4A6F ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/servers/sabnzbd/default.nix b/nixpkgs/pkgs/servers/sabnzbd/default.nix
index 54d327d5fc42..f6b0574fa5cd 100644
--- a/nixpkgs/pkgs/servers/sabnzbd/default.nix
+++ b/nixpkgs/pkgs/servers/sabnzbd/default.nix
@@ -1,17 +1,33 @@
-{stdenv, fetchFromGitHub, python2, par2cmdline, unzip, unrar, p7zip, makeWrapper}:
+{ stdenv
+, fetchFromGitHub
+, python3
+, par2cmdline
+, unzip
+, unrar
+, p7zip
+, makeWrapper
+}:
 
 let
-  pythonEnv = python2.withPackages(ps: with ps; [ cryptography cheetah yenc sabyenc ]);
+  pythonEnv = python3.withPackages(ps: with ps; [
+    chardet
+    cheetah3
+    cherrypy
+    cryptography
+    configobj
+    feedparser
+    sabyenc3
+  ]);
   path = stdenv.lib.makeBinPath [ par2cmdline unrar unzip p7zip ];
 in stdenv.mkDerivation rec {
-  version = "2.3.9";
+  version = "3.0.1";
   pname = "sabnzbd";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "06ln00rqz4xpsqhq0f495893xq1w5dfjawb8dgfyjjfds8627p16";
+    sha256 = "1zp8cxz56qmai1z6xcscnq85gxhv64dv1s5zqsqdn0zpbxyqqdlr";
   };
 
   buildInputs = [ pythonEnv makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/samba/4.x.nix b/nixpkgs/pkgs/servers/samba/4.x.nix
index 0aae779106a5..bfc8566f363f 100644
--- a/nixpkgs/pkgs/servers/samba/4.x.nix
+++ b/nixpkgs/pkgs/servers/samba/4.x.nix
@@ -31,7 +31,6 @@
 , enableProfiling ? true
 , enableMDNS ? false, avahi
 , enableDomainController ? false, gpgme, lmdb
-, enableKerberos ? true, krb5Full
 , enableRegedit ? true, ncurses
 , enableCephFS ? false, libceph
 , enableGlusterFS ? false, glusterfs, libuuid
@@ -43,11 +42,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "samba";
-  version = "4.12.3";
+  version = "4.12.6";
 
   src = fetchurl {
     url = "mirror://samba/pub/samba/stable/${pname}-${version}.tar.gz";
-    sha256 = "09w7aap1cjc41ayhaksm1igc7p7gl40fad4a1l6q4ds9a2jbrb9z";
+    sha256 = "1v3cmw40csmi3jd8mhlx4bm7bk4m0426zkyin7kq11skwnsrna02";
   };
 
   outputs = [ "out" "dev" "man" ];
@@ -92,7 +91,6 @@ stdenv.mkDerivation rec {
     ++ optional (enablePrinting && stdenv.isLinux) cups
     ++ optional enableMDNS avahi
     ++ optionals enableDomainController [ gpgme lmdb ]
-    ++ optional enableKerberos krb5Full
     ++ optional enableRegedit ncurses
     ++ optional (enableCephFS && stdenv.isLinux) libceph
     ++ optionals (enableGlusterFS && stdenv.isLinux) [ glusterfs libuuid ]
@@ -116,13 +114,9 @@ stdenv.mkDerivation rec {
     "--sysconfdir=/etc"
     "--localstatedir=/var"
     "--disable-rpath"
-  ] ++ singleton (if enableDomainController
-         then "--with-experimental-mit-ad-dc"
-         else "--without-ad-dc")
-    ++ optionals enableKerberos [
-    "--with-system-mitkrb5"
-    "--with-system-mitkdc=${krb5Full}"
-  ] ++ optionals (!enableLDAP) [
+  ] ++ optional (!enableDomainController)
+    "--without-ad-dc"
+  ++ optionals (!enableLDAP) [
     "--without-ldap"
     "--without-ads"
   ] ++ optional enableProfiling "--with-profiling-data"
diff --git a/nixpkgs/pkgs/servers/search/elasticsearch/plugins.nix b/nixpkgs/pkgs/servers/search/elasticsearch/plugins.nix
index 8e086ac5e66b..846fb33000bb 100644
--- a/nixpkgs/pkgs/servers/search/elasticsearch/plugins.nix
+++ b/nixpkgs/pkgs/servers/search/elasticsearch/plugins.nix
@@ -64,6 +64,23 @@ in {
     };
   };
 
+  analysis-phonetic = esPlugin rec {
+    pluginName = "analysis-phonetic";
+    version = esVersion;
+    src = fetchurl {
+      url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
+      sha256 =
+        if version == "7.5.1" then "0znmbdf99bli4kvyb3vxr5x48yb6n64nl38gpa63iqsv3nlbi0hp"
+        else if version == "6.8.3" then "0ggdhf7w50bxsffmcznrjy14b578fps0f8arg3v54qvj94v9jc37"
+        else throw "unsupported version ${version} for plugin ${pluginName}";
+    };
+    meta = with lib; {
+      homepage = "https://github.com/elastic/elasticsearch/tree/master/plugins/analysis-phonetic";
+      description = "The Phonetic Analysis plugin integrates phonetic token filter analysis with elasticsearch";
+      license = licenses.asl20;
+    };
+  };
+
   discovery-ec2 = esPlugin rec {
     pluginName = "discovery-ec2";
     version = esVersion;
diff --git a/nixpkgs/pkgs/servers/search/groonga/default.nix b/nixpkgs/pkgs/servers/search/groonga/default.nix
index b622cf3447d1..a1fd39152075 100644
--- a/nixpkgs/pkgs/servers/search/groonga/default.nix
+++ b/nixpkgs/pkgs/servers/search/groonga/default.nix
@@ -7,11 +7,11 @@
 stdenv.mkDerivation rec {
 
   pname = "groonga";
-  version = "10.0.3";
+  version = "10.0.6";
 
   src = fetchurl {
     url    = "https://packages.groonga.org/source/groonga/${pname}-${version}.tar.gz";
-    sha256 = "0vnrpzd7gkjh4bc0lgvh5l11ym6pls4lp1pl5jjlkyx505635k8d";
+    sha256 = "1q3xx6jc967nj7h8gvnrqxn8657dn3qy9j802rjzcg6iwlpjack9";
   };
 
   buildInputs = with stdenv.lib;
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.ericsagnes ];
     platforms   = platforms.unix;
     longDescription = ''
-      Groonga is an open-source fulltext search engine and column store. 
+      Groonga is an open-source fulltext search engine and column store.
       It lets you write high-performance applications that requires fulltext search.
     '';
   };
diff --git a/nixpkgs/pkgs/servers/search/solr/default.nix b/nixpkgs/pkgs/servers/search/solr/default.nix
index 73aa349a517b..b5390d1537d2 100644
--- a/nixpkgs/pkgs/servers/search/solr/default.nix
+++ b/nixpkgs/pkgs/servers/search/solr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "solr";
-  version = "8.5.1";
+  version = "8.6.1";
 
   src = fetchurl {
     url = "mirror://apache/lucene/${pname}/${version}/${pname}-${version}.tgz";
-    sha256 = "02sa0sldsfajryyfndv587qw69q8y8igfpimg98w1g3vndrq1dj7";
+    sha256 = "0ds6zjsnwgpcmivzi7d6yqdmyn2mhf3k8g7xp26yfpm7f12gpq4g";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/servers/ser2net/default.nix b/nixpkgs/pkgs/servers/ser2net/default.nix
index bbfb0315d9ef..ef592420b118 100644
--- a/nixpkgs/pkgs/servers/ser2net/default.nix
+++ b/nixpkgs/pkgs/servers/ser2net/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ser2net";
-  version = "4.1.8";
+  version = "4.2.1";
 
   src = fetchFromGitHub {
     owner = "cminyard";
     repo = "${pname}";
     rev = "v${version}";
-    sha256 = "0xxxxlfi4wln2l86ybdsc42qcj37mnac2s2baj6s7mqri8alaa14";
+    sha256 = "01w82nrgffsfz2c80p4cyppg3bz56d90jm6i6356j0nva3784haw";
   };
 
   buildInputs = [ pkgconfig autoreconfHook gensio libyaml ];
diff --git a/nixpkgs/pkgs/servers/sickbeard/sickgear.nix b/nixpkgs/pkgs/servers/sickbeard/sickgear.nix
index e67b7244a322..a382c969da86 100644
--- a/nixpkgs/pkgs/servers/sickbeard/sickgear.nix
+++ b/nixpkgs/pkgs/servers/sickbeard/sickgear.nix
@@ -4,13 +4,13 @@ let
   pythonEnv = python2.withPackages(ps: with ps; [ cheetah ]);
 in stdenv.mkDerivation rec {
   pname = "sickgear";
-  version = "0.21.33";
+  version = "0.21.42";
 
   src = fetchFromGitHub {
     owner = "SickGear";
     repo = "SickGear";
     rev = "release_${version}";
-    sha256 = "0ilgjm21psfb0ix32qm560976wn84qg0y5cg7506ybwsynlmway2";
+    sha256 = "0a18vn1vy4zdp40iizgg3yji6k74r54rb7d7gn5byz1zj28g5c5c";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/servers/skydns/default.nix b/nixpkgs/pkgs/servers/skydns/default.nix
index 2fc67008b892..176b41a1fe29 100644
--- a/nixpkgs/pkgs/servers/skydns/default.nix
+++ b/nixpkgs/pkgs/servers/skydns/default.nix
@@ -4,7 +4,7 @@ buildGoPackage rec {
   pname = "skydns";
   version = "2.5.3a";
   rev = version;
-  
+
   goPackagePath = "github.com/skynetservices/skydns";
 
   src = fetchFromGitHub {
diff --git a/nixpkgs/pkgs/servers/sonarr/default.nix b/nixpkgs/pkgs/servers/sonarr/default.nix
index d18e9fb7f586..a1c854b77235 100644
--- a/nixpkgs/pkgs/servers/sonarr/default.nix
+++ b/nixpkgs/pkgs/servers/sonarr/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
     description = "Smart PVR for newsgroup and bittorrent users";
     homepage = "https://sonarr.tv/";
     license = stdenv.lib.licenses.gpl3;
-    maintainers = [ stdenv.lib.maintainers.fadenb ];
+    maintainers = with stdenv.lib.maintainers; [ fadenb purcell ];
     platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/servers/sozu/default.nix b/nixpkgs/pkgs/servers/sozu/default.nix
index f7feda5e916c..1e8083587055 100644
--- a/nixpkgs/pkgs/servers/sozu/default.nix
+++ b/nixpkgs/pkgs/servers/sozu/default.nix
@@ -19,4 +19,4 @@ rustPlatform.buildRustPackage rec {
         license = licenses.agpl3;
         maintainers = with maintainers; [ filalex77 ];
     };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/sql/cockroachdb/default.nix b/nixpkgs/pkgs/servers/sql/cockroachdb/default.nix
index 2ce8e901e867..a5071efb486f 100644
--- a/nixpkgs/pkgs/servers/sql/cockroachdb/default.nix
+++ b/nixpkgs/pkgs/servers/sql/cockroachdb/default.nix
@@ -14,13 +14,13 @@ let
 in
 buildGoPackage rec {
   pname = "cockroach";
-  version = "19.1.5";
+  version = "20.1.4";
 
   goPackagePath = "github.com/cockroachdb/cockroach";
 
   src = fetchurl {
     url = "https://binaries.cockroachdb.com/cockroach-v${version}.src.tgz";
-    sha256 = "1pnzzmxxb7qxiiy8qpl2sifk4qrijjbhmzy47bnjj5ssdsjjjcqy";
+    sha256 = "1m82m776axyf7b5f1lzlv5y7zslyhikfxjgagqy7ci5zwn8j4i0n";
   };
 
   NIX_CFLAGS_COMPILE = stdenv.lib.optionals stdenv.cc.isGNU [ "-Wno-error=deprecated-copy" "-Wno-error=redundant-move" "-Wno-error=pessimizing-move" ];
diff --git a/nixpkgs/pkgs/servers/sql/dolt/default.nix b/nixpkgs/pkgs/servers/sql/dolt/default.nix
index 2af0f149e7d8..9e4eadf72da7 100644
--- a/nixpkgs/pkgs/servers/sql/dolt/default.nix
+++ b/nixpkgs/pkgs/servers/sql/dolt/default.nix
@@ -2,18 +2,20 @@
 
 buildGoModule rec {
     pname = "dolt";
-    version = "0.16.3";
+    version = "0.19.0";
 
     src = fetchFromGitHub {
         owner = "liquidata-inc";
         repo = "dolt";
         rev = "v${version}";
-        sha256 = "141wv5av7hms4wa3s4md7mnb77bbyn3854d7gj7fy6f6jvzghdny";
+        sha256 = "1rfwhh62phz75kariqgpkxi4wzll1crzc34x0ybihxllpjf998zx";
     };
 
     modRoot = "./go";
     subPackages = [ "cmd/dolt" "cmd/git-dolt" "cmd/git-dolt-smudge" ];
-  vendorSha256 = "1kjh252p91yxq5mi0igamkwlsr50lij24wsp2ilgz6ksv3ijzfr1";
+  vendorSha256 = "1bq8z31yxff0nybzjs7jz7rg61hgqz6l2scbab7062j8whg8wybb";
+
+  doCheck = false;
 
     meta = with lib; {
         description = "Relational database with version control and CLI a-la Git.";
@@ -22,4 +24,4 @@ buildGoModule rec {
         maintainers = with maintainers; [ danbst ];
         platforms = platforms.linux ++ platforms.darwin;
     };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/sql/mariadb/cmake-without-plugin-auth-pam.patch b/nixpkgs/pkgs/servers/sql/mariadb/cmake-without-plugin-auth-pam.patch
deleted file mode 100644
index 173fa1e0c631..000000000000
--- a/nixpkgs/pkgs/servers/sql/mariadb/cmake-without-plugin-auth-pam.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/cmake/build_configurations/mysql_release.cmake b/cmake/build_configurations/mysql_release.cmake
-index f7790748..995621e0 100644
---- a/cmake/build_configurations/mysql_release.cmake
-+++ b/cmake/build_configurations/mysql_release.cmake
-@@ -121,7 +121,6 @@ ENDIF()
- 
- IF(UNIX)
-   SET(WITH_EXTRA_CHARSETS all CACHE STRING "")
--  SET(PLUGIN_AUTH_PAM YES)
- 
-   IF(CMAKE_SYSTEM_NAME STREQUAL "Linux")
-     IF(NOT IGNORE_AIO_CHECK)
diff --git a/nixpkgs/pkgs/servers/sql/mariadb/default.nix b/nixpkgs/pkgs/servers/sql/mariadb/default.nix
index d6e521343019..3ba4e367312c 100644
--- a/nixpkgs/pkgs/servers/sql/mariadb/default.nix
+++ b/nixpkgs/pkgs/servers/sql/mariadb/default.nix
@@ -23,14 +23,14 @@ mariadb = server // {
 };
 
 common = rec { # attributes common to both builds
-  version = "10.4.13";
+  version = "10.4.14";
 
   src = fetchurl {
     urls = [
       "https://downloads.mariadb.org/f/mariadb-${version}/source/mariadb-${version}.tar.gz"
       "https://downloads.mariadb.com/MariaDB/mariadb-${version}/source/mariadb-${version}.tar.gz"
     ];
-    sha256 = "1pwibmm52sc04qxp832pc3ylxw9wq90fjc7nxpcyp3yys49bpfs5";
+    sha256 = "1z469j39chq7d3dp39cljjbzcz0wl1g7rii85x46290jw1cwsbzr";
     name   = "mariadb-${version}.tar.gz";
   };
 
@@ -128,10 +128,10 @@ client = stdenv.mkDerivation (common // {
 
   patches = common.patches ++ [
     ./cmake-plugin-includedir.patch
-    ./cmake-without-plugin-auth-pam.patch
   ];
 
   cmakeFlags = common.cmakeFlags ++ [
+    "-DPLUGIN_AUTH_PAM=OFF"
     "-DWITHOUT_SERVER=ON"
     "-DWITH_WSREP=OFF"
     "-DINSTALL_MYSQLSHAREDIR=share/mysql-client"
@@ -139,7 +139,7 @@ client = stdenv.mkDerivation (common // {
 
   postInstall = common.postInstall + ''
     rm -r "$out"/share/doc
-    rm "$out"/bin/{mysqltest,mytop,wsrep_sst_rsync_wan}
+    rm "$out"/bin/{mysqltest,mytop}
     libmysqlclient_path=$(readlink -f $out/lib/libmysqlclient${libExt})
     rm "$out"/lib/{libmariadb${libExt},libmysqlclient${libExt},libmysqlclient_r${libExt}}
     mv "$libmysqlclient_path" "$out"/lib/libmysqlclient${libExt}
@@ -162,9 +162,7 @@ server = stdenv.mkDerivation (common // {
     ++ optional stdenv.hostPlatform.isLinux linux-pam
     ++ optional (!stdenv.hostPlatform.isDarwin) mytopEnv;
 
-  patches = common.patches ++ optionals stdenv.hostPlatform.isDarwin [
-    ./cmake-without-plugin-auth-pam.patch
-  ];
+  patches = common.patches;
 
   cmakeFlags = common.cmakeFlags ++ [
     "-DMYSQL_DATADIR=/var/lib/mysql"
@@ -190,6 +188,7 @@ server = stdenv.mkDerivation (common // {
   ] ++ optional (!stdenv.hostPlatform.isDarwin && withStorageToku) [
     "-DWITH_JEMALLOC=static"
   ] ++ optional stdenv.hostPlatform.isDarwin [
+    "-DPLUGIN_AUTH_PAM=OFF"
     "-DWITHOUT_OQGRAPH=1"
   ];
 
diff --git a/nixpkgs/pkgs/servers/sql/monetdb/default.nix b/nixpkgs/pkgs/servers/sql/monetdb/default.nix
index ec232b864637..9aec724ba62e 100644
--- a/nixpkgs/pkgs/servers/sql/monetdb/default.nix
+++ b/nixpkgs/pkgs/servers/sql/monetdb/default.nix
@@ -3,7 +3,7 @@
 }:
 
 let
-  version = "11.37.7";
+  version = "11.37.11";
 in stdenv.mkDerivation {
 
   pname = "monetdb";
@@ -11,7 +11,7 @@ in stdenv.mkDerivation {
 
   src = fetchurl {
     url = "https://dev.monetdb.org/downloads/sources/archive/MonetDB-${version}.tar.bz2";
-    sha256 = "00z6c7z4f9ww43574nz32b06rw5ln5fy3hlml32h2wrwsg0cj5jh";
+    sha256 = "0ch4vka64m5fbyah2730rcv7xpgy4hq26vbi8wd8mkadwna7azr5";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/servers/sql/percona/5.6.x.nix b/nixpkgs/pkgs/servers/sql/percona/5.6.x.nix
index 43c1de7ea849..46913525336f 100644
--- a/nixpkgs/pkgs/servers/sql/percona/5.6.x.nix
+++ b/nixpkgs/pkgs/servers/sql/percona/5.6.x.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "percona-server";
-  version = "5.6.43-84.3";
+  version = "5.6.49-89.0";
 
   src = fetchurl {
     url = "https://www.percona.com/downloads/Percona-Server-5.6/Percona-Server-${version}/source/tarball/percona-server-${version}.tar.gz";
-    sha256 = "1cc0lfmpq4pw90bcsszsygw06vd4j4bh3ph5x0yn3z7wddvmjlpw";
+    sha256 = "09qqk02iny7jvngyk6k2j0kk2sspc6gw8sm3i6nn97njbkihi697";
   };
 
   buildInputs = [ cmake bison ncurses openssl zlib libaio perl ];
diff --git a/nixpkgs/pkgs/servers/sql/pgbouncer/default.nix b/nixpkgs/pkgs/servers/sql/pgbouncer/default.nix
index 0a6d1a8cf613..e824298c4886 100644
--- a/nixpkgs/pkgs/servers/sql/pgbouncer/default.nix
+++ b/nixpkgs/pkgs/servers/sql/pgbouncer/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pgbouncer";
-  version = "1.13.0";
+  version = "1.14.0";
 
   src = fetchurl {
     url = "https://pgbouncer.github.io/downloads/files/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0ccxr0hbj9h5pwsj2712mxif197j770qkfjv6na5aqh5bz4j3f2c";
+    sha256 = "1rzy06hqzhnijm32vah9icgrx95pmf9iglvyzwv7wmcg2h83vhd0";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/default.nix b/nixpkgs/pkgs/servers/sql/postgresql/default.nix
index 2b440f78e99d..bc1108ad3339 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/default.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/default.nix
@@ -64,7 +64,7 @@ let
         (if atLeast "9.6" then ./patches/hardcode-pgxs-path-96.patch       else ./patches/hardcode-pgxs-path.patch)
         ./patches/specify_pkglibdir_at_runtime.patch
         ./patches/findstring.patch
-      ] ++ lib.optional stdenv.isLinux ./patches/socketdir-in-run.patch;
+      ] ++ lib.optional stdenv.isLinux (if atLeast "13" then ./patches/socketdir-in-run-13.patch else ./patches/socketdir-in-run.patch);
 
     installTargets = [ "install-world" ];
 
@@ -144,7 +144,7 @@ let
       homepage    = "https://www.postgresql.org";
       description = "A powerful, open source object-relational database system";
       license     = licenses.postgresql;
-      maintainers = with maintainers; [ ocharles thoughtpolice danbst globin ];
+      maintainers = with maintainers; [ ocharles thoughtpolice danbst globin marsam ];
       platforms   = platforms.unix;
       knownVulnerabilities = optional (!atLeast "9.4")
         "PostgreSQL versions older than 9.4 are not maintained anymore!";
@@ -182,43 +182,51 @@ let
 in self: {
 
   postgresql_9_5 = self.callPackage generic {
-    version = "9.5.22";
+    version = "9.5.23";
     psqlSchema = "9.5";
-    sha256 = "03v4d4nr9f86y0i1j5jmvfan5w8y4ga1mar59lhcnj3jl5q58ma8";
+    sha256 = "0rl31jc3kg2wq6hazyd297gnmx3cibjvivllbsivii2m6dzgl573";
     this = self.postgresql_9_5;
     inherit self;
   };
 
   postgresql_9_6 = self.callPackage generic {
-    version = "9.6.18";
+    version = "9.6.19";
     psqlSchema = "9.6";
-    sha256 = "16crr2a1sl97aiacqzd0bk56yl1abq6blc0c6qpx5rl5ny1c4zji";
+    sha256 = "1c2wnl5bbpjs1s1rpzvlnzsqlpb0p823zw7s38nhpgnxrja3myb1";
     this = self.postgresql_9_6;
     inherit self;
   };
 
   postgresql_10 = self.callPackage generic {
-    version = "10.13";
+    version = "10.14";
     psqlSchema = "10.0"; # should be 10, but changing it is invasive
-    sha256 = "1qal0yp7a90yzya7hl56gsmw5fvacplrdhpn7h9gnbyr1i2iyw2d";
+    sha256 = "0fxj30jvwq5pqpbj97vhlxgmn2ah59a78s9jyjr7vxyqj7sdh71q";
     this = self.postgresql_10;
     inherit self;
   };
 
   postgresql_11 = self.callPackage generic {
-    version = "11.8";
+    version = "11.9";
     psqlSchema = "11.1"; # should be 11, but changing it is invasive
-    sha256 = "1qksqyayxmnccmbapg3ajsw9pjgqva0inxjhx64rqd6ckhrg9wpa";
+    sha256 = "0db6pfphc5rp12abnkvv2l9pbl7bdyf3hhiwj8ghjwh35skqlq9m";
     this = self.postgresql_11;
     inherit self;
   };
 
   postgresql_12 = self.callPackage generic {
-    version = "12.3";
+    version = "12.4";
     psqlSchema = "12";
-    sha256 = "0hfg3n7rlz96579cj3z1dh2idl15rh3wfvn8jl31jj4h2yk69vcl";
+    sha256 = "1k06wryy8p4s1fim9qafcjlak3f58l0wqaqnrccr9x9j5jz3zsdy";
     this = self.postgresql_12;
     inherit self;
   };
 
+  postgresql_13 = self.callPackage generic {
+    version = "13.0";
+    psqlSchema = "13";
+    sha256 = "15i2b7m9a9430idqdgvrcyx66cpxz0v2d81nfqcm8ss3inz51rw0";
+    this = self.postgresql_13;
+    inherit self;
+  };
+
 }
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/age.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/age.nix
new file mode 100644
index 000000000000..09021317cd13
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/age.nix
@@ -0,0 +1,65 @@
+{ stdenv, fetchFromGitHub, bison, flex, postgresql }:
+
+stdenv.mkDerivation rec {
+  pname = "age";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "bitnine-oss";
+    repo = "AgensGraph-Extension";
+    rev = "v${version}";
+    sha256 = "0way59lj30727jlz2qz6rnw4fsxcd5028xcwgrwk7jxcaqi5fa17";
+  };
+
+  buildInputs = [ postgresql ];
+
+  makeFlags = [
+    "BISON=${bison}/bin/bison"
+    "FLEX=${flex}/bin/flex"
+  ];
+
+  installPhase = ''
+    install -D -t $out/lib *.so
+    install -D -t $out/share/postgresql/extension *.sql
+    install -D -t $out/share/postgresql/extension *.control
+  '';
+
+  passthru.tests = stdenv.mkDerivation {
+    inherit version src;
+
+    pname = "age-regression";
+
+    dontConfigure = true;
+
+    buildPhase = let
+      postgresqlAge = postgresql.withPackages (ps: [ ps.age ]);
+    in ''
+      # The regression tests need to be run in the order specified in the Makefile.
+      echo -e "include Makefile\nfiles:\n\t@echo \$(REGRESS)" > Makefile.regress
+      REGRESS_TESTS=$(make -f Makefile.regress files)
+
+      ${postgresql}/lib/pgxs/src/test/regress/pg_regress \
+        --inputdir=./ \
+        --bindir='${postgresqlAge}/bin' \
+        --encoding=UTF-8 \
+        --load-extension=age \
+        --inputdir=./regress --outputdir=./regress --temp-instance=./regress/instance \
+        --port=61958 --dbname=contrib_regression \
+        $REGRESS_TESTS
+    '';
+
+    installPhase = ''
+      touch $out
+    '';
+  };
+
+  meta = with stdenv.lib; {
+    description = "A graph database extension for PostgreSQL";
+    homepage = "https://github.com/bitnine-oss/AgensGraph-Extension";
+    changelog = "https://github.com/bitnine-oss/AgensGraph-Extension/releases/tag/v${version}";
+    maintainers = with maintainers; [ danieldk ];
+    platforms = postgresql.meta.platforms;
+    license = licenses.asl20;
+    broken = versionOlder postgresql.version "11.0";
+  };
+}
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix
index 168cee9711bc..9625c240c5d9 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pg_auto_failover.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pg_auto_failover";
-  version = "1.3";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "citusdata";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1si4k37azigp7hqibnkzr1p6zknadxm7pb33lygrxarqkifx67j4";
+    sha256 = "1q5gy1jaklk885xjda9dhf6jd5q3sc7jd8p1zdlwv4srxf6sgf10";
   };
 
   buildInputs = [ postgresql openssl zlib readline ];
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgroonga.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgroonga.nix
index f57a6e8fa508..2e69444ccdd5 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgroonga.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgroonga.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pgroonga";
-  version = "2.2.5";
+  version = "2.2.6";
 
   src = fetchurl {
     url = "https://packages.groonga.org/source/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "0lwj99kdx9kfp4vfd7lfapj183mz235kj1vjfscfnkg5ypj656gz";
+    sha256 = "0anlxw4j6c3rd7q34j9mgph6i0zb1nff3warcxrkwvnnd1jbb6vr";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgrouting.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgrouting.nix
index 76aa4c4ffec6..674aa29daec7 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/pgrouting.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/pgrouting.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "pgrouting";
-  version = "3.0.0";
+  version = "3.1.0";
 
   nativeBuildInputs = [ cmake perl ];
   buildInputs = [ postgresql boost ];
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     owner  = "pgRouting";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "101lyhhfcv3chrp2h5q04l155hr6wvx427cv1kgd4ryzk88wxx5i";
+    sha256 = "0sdyq0a98snmcq6g6mgmadlz6cgvacivv34943azhnzspa3iy409";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
new file mode 100644
index 000000000000..b95ef73308db
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/plpgsql_check.nix
@@ -0,0 +1,29 @@
+{ stdenv, fetchFromGitHub, postgresql }:
+
+stdenv.mkDerivation rec {
+  pname = "plpgsql_check";
+  version = "1.13.1";
+
+  src = fetchFromGitHub {
+    owner = "okbob";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "19vcvfhxh0922qgibahmkyf7czniycqbzccxdw65j1ia7fd8yyc3";
+  };
+
+  buildInputs = [ postgresql ];
+
+  installPhase = ''
+    install -D -t $out/lib *.so
+    install -D -t $out/share/postgresql/extension *.sql
+    install -D -t $out/share/postgresql/extension *.control
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Linter tool for language PL/pgSQL";
+    homepage = "https://github.com/okbob/plpgsql_check";
+    platforms = postgresql.meta.platforms;
+    license = licenses.mit;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/plv8.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/plv8.nix
index ffba1bd8e3b9..8186e9128d9b 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/plv8.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/plv8.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "plv8";
-  version = "2.3.14";
+  version = "2.3.15";
 
   nativeBuildInputs = [ perl ];
   buildInputs = [ v8 postgresql ];
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     owner = "plv8";
     repo = "plv8";
     rev = "v${version}";
-    sha256 = "12g7z0xkb6zg2qd0hppk2izq238v1k52vb13jlvaij1rbhh10mbp";
+    sha256 = "1cv94n49gq2b377gqyq7pjjzw98czv4mwl3sx97y18c20zwp6rk3";
   };
 
   makefile = "Makefile.shared";
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/postgis.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/postgis.nix
index c8e26b5a82b8..9feb45d311a0 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/postgis.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/postgis.nix
@@ -14,13 +14,13 @@
 }:
 stdenv.mkDerivation rec {
   pname = "postgis";
-  version = "3.0.1";
+  version = "3.0.2";
 
   outputs = [ "out" "doc" ];
 
   src = fetchurl {
     url = "https://download.osgeo.org/postgis/source/postgis-${version}.tar.gz";
-    sha256 = "0lv37v8f3143kfm9sdvw59461q2lndxiqvaw47lvmnaha7wk4m2s";
+    sha256 = "1jmji8i2wjabkrzqil683lypnmimigdmn64a10j3kj3kzlfn98d3";
   };
 
   buildInputs = [ libxml2 postgresql geos proj gdal json_c protobufc ]
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix
index 4ac74b2620bc..a2e319170bd4 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/repmgr.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "repmgr";
-  version = "5.0.0";
+  version = "5.1.0";
 
   src = fetchFromGitHub {
     owner = "2ndQuadrant";
     repo = "repmgr";
     rev = "v${version}";
-    sha256 = "0zrpv17zrgl8hynbzaaqj17qrchc8r9qwpqh8y10b0v3xdr22ayl";
+    sha256 = "1igcy98ggwyx8zg4g4kz7xb32b7vc3h668r5wbfk4w49x9v97f4m";
   };
 
   nativeBuildInputs = [ flex ];
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/smlar.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/smlar.nix
new file mode 100644
index 000000000000..adefe085a0bb
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/smlar.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchgit, postgresql }:
+
+stdenv.mkDerivation rec {
+  pname = "smlar-unstable";
+  version = "2020-04-08";
+
+  src = fetchgit {
+    url = "git://sigaev.ru/smlar.git";
+    rev = "0c345af71969d9863bb76efa833391d00705669e";
+    sha256 = "1pr3pbnjc9n209l52sgsn4xqzp92qk6wci55hcqjjrwf2gdxy0yr";
+  };
+
+  buildInputs = [ postgresql ];
+
+  makeFlags = [ "USE_PGXS=1" ];
+
+  installPhase = ''
+    install -D -t $out/lib *.so
+    install -D -t $out/share/postgresql/extension *.sql
+    install -D -t $out/share/postgresql/extension *.control
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Compute similary of any one-dimensional arrays";
+    homepage = "http://sigaev.ru/git/gitweb.cgi?p=smlar.git";
+    platforms = postgresql.meta.platforms;
+    license = licenses.bsd2;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix b/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix
index 419bec6823d7..76619b83c142 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/ext/timescaledb.nix
@@ -8,7 +8,7 @@
 
 stdenv.mkDerivation rec {
   pname = "timescaledb";
-  version = "1.7.1";
+  version = "1.7.4";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ postgresql openssl ];
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     owner  = "timescale";
     repo   = "timescaledb";
     rev    = "refs/tags/${version}";
-    sha256 = "11h1vvchnipcxvvbjb5y4bgkdzdsik5cq8k8yzkrqz8q33zmjvgg";
+    sha256 = "0w0sl5izwic3j1k94xhky2y4wkd8l18m5hcknj5vqxq3ryhxaszc";
   };
 
   cmakeFlags = [ "-DSEND_TELEMETRY_DEFAULT=OFF" "-DREGRESS_CHECKS=OFF" ];
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/packages.nix b/nixpkgs/pkgs/servers/sql/postgresql/packages.nix
index d4dafe7ddb14..d45c2d37c8db 100644
--- a/nixpkgs/pkgs/servers/sql/postgresql/packages.nix
+++ b/nixpkgs/pkgs/servers/sql/postgresql/packages.nix
@@ -1,5 +1,9 @@
 self: super: {
 
+    age = super.callPackage ./ext/age.nix {
+      bison = self.bison_3_5;
+    };
+
     periods = super.callPackage ./ext/periods.nix { };
 
     postgis = super.callPackage ./ext/postgis.nix {
@@ -21,6 +25,8 @@ self: super: {
 
     pgroonga = super.callPackage ./ext/pgroonga.nix { };
 
+    plpgsql_check = super.callPackage ./ext/plpgsql_check.nix { };
+
     plv8 = super.callPackage ./ext/plv8.nix {
         v8 = super.callPackage ../../../development/libraries/v8/plv8_6_x.nix {
             python = self.python2;
@@ -41,6 +47,8 @@ self: super: {
 
     pipelinedb = super.callPackage ./ext/pipelinedb.nix { };
 
+    smlar = super.callPackage ./ext/smlar.nix { };
+
     temporal_tables = super.callPackage ./ext/temporal_tables.nix { };
 
     timescaledb = super.callPackage ./ext/timescaledb.nix { };
diff --git a/nixpkgs/pkgs/servers/sql/postgresql/patches/socketdir-in-run-13.patch b/nixpkgs/pkgs/servers/sql/postgresql/patches/socketdir-in-run-13.patch
new file mode 100644
index 000000000000..72c778b0758e
--- /dev/null
+++ b/nixpkgs/pkgs/servers/sql/postgresql/patches/socketdir-in-run-13.patch
@@ -0,0 +1,13 @@
+diff --git i/src/include/pg_config_manual.h w/src/include/pg_config_manual.h
+index 8f3ec6bde1..4fc01e4a0a 100644
+--- i/src/include/pg_config_manual.h
++++ w/src/include/pg_config_manual.h
+@@ -201,7 +201,7 @@
+  * support them yet.
+  */
+ #ifndef WIN32
+-#define DEFAULT_PGSOCKET_DIR  "/tmp"
++#define DEFAULT_PGSOCKET_DIR  "/run/postgresql"
+ #else
+ #define DEFAULT_PGSOCKET_DIR ""
+ #endif
diff --git a/nixpkgs/pkgs/servers/squid/default.nix b/nixpkgs/pkgs/servers/squid/default.nix
index 3e292d8740cf..ad7d534103cf 100644
--- a/nixpkgs/pkgs/servers/squid/default.nix
+++ b/nixpkgs/pkgs/servers/squid/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "squid";
-  version = "4.11";
+  version = "4.13";
 
   src = fetchurl {
     url = "http://www.squid-cache.org/Versions/v4/${pname}-${version}.tar.xz";
-    sha256 = "0z986kykx539wjqd7mr8y0abf3z6hz8byf8fmmbky9hh4ihlgnaf";
+    sha256 = "1q1ywpic6s7dfjj3cwzcfgscc4zq0aih462gyas7j1z683ss14b8";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/servers/sslh/default.nix b/nixpkgs/pkgs/servers/sslh/default.nix
index cbeacece3e1e..578d280afd9a 100644
--- a/nixpkgs/pkgs/servers/sslh/default.nix
+++ b/nixpkgs/pkgs/servers/sslh/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, libcap, libconfig, perl, tcp_wrappers, pcre }:
+{ stdenv, fetchurl, libcap, libconfig, perl, tcp_wrappers, pcre, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "sslh";
-  version = "1.20";
+  version = "1.21c";
 
   src = fetchurl {
     url = "https://www.rutschle.net/tech/sslh/sslh-v${version}.tar.gz";
-    sha256 = "05jihpjxx094h7hqzgd9v5jmy77ipwrakzzmjyfvpdzw3h59px57";
+    sha256 = "01p7w74ppszxgz6n41lqd6xqvc7bjk2dsc769dd1yb7q4qvpiziv";
   };
 
   postPatch = "patchShebangs *.sh";
@@ -19,6 +19,10 @@ stdenv.mkDerivation rec {
 
   hardeningDisable = [ "format" ];
 
+  passthru.tests = {
+    inherit (nixosTests) sslh;
+  };
+
   meta = with stdenv.lib; {
     description = "Applicative Protocol Multiplexer (e.g. share SSH and HTTPS on the same port)";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/servers/tacacsplus/default.nix b/nixpkgs/pkgs/servers/tacacsplus/default.nix
index 400298d15d58..5010838cbe0d 100644
--- a/nixpkgs/pkgs/servers/tacacsplus/default.nix
+++ b/nixpkgs/pkgs/servers/tacacsplus/default.nix
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     description = "A protocol for authentication, authorization and accounting (AAA) services for routers and network devices";
     homepage = "http://www.shrubbery.net/tac_plus/";
     license = licenses.free;
-    maintainers = [ maintainers."0x4A6F" ];
+    maintainers = with maintainers; [ _0x4A6F ];
     platforms = with platforms; linux;
   };
 }
diff --git a/nixpkgs/pkgs/servers/tailscale/default.nix b/nixpkgs/pkgs/servers/tailscale/default.nix
index e61437c46ff6..32c0c84dd087 100644
--- a/nixpkgs/pkgs/servers/tailscale/default.nix
+++ b/nixpkgs/pkgs/servers/tailscale/default.nix
@@ -2,24 +2,23 @@
 
 buildGoModule rec {
   pname = "tailscale";
-  # Tailscale uses "git describe" as version numbers. 0.99.1-0 means
-  # "tag v0.99.1 plus 0 commits", which corresponds to rev="v0.99.1"
-  # below.
-  version = "0.99.1-0";
+  version = "1.0.5";
 
   src = fetchFromGitHub {
     owner = "tailscale";
     repo = "tailscale";
-    rev = "v0.99.1";
-    sha256 = "1kq4x5xknv0qq6n78xj5wjbf6svbdyw4nzs7z5gjb3ylj2vl97pb";
+    rev = "v${version}";
+    sha256 = "0ib2s694kf5iz5hvrlzfs80z0931dhva7yir80crq0pji9y4rp7b";
   };
 
   nativeBuildInputs = [ makeWrapper ];
 
   CGO_ENABLED = 0;
 
-  goPackagePath = "tailscale.com";
-  vendorSha256 = "0yf2zdpd12w4qf4sbv7bkr40hw5faqynr6lb84v7w6v0az0nfzds";
+  vendorSha256 = "0l9lzwwvshg9a2kmmq1cvvlaxncbas78a9hjhvjjar89rjr2k2sv";
+
+  doCheck = false;
+
   subPackages = [ "cmd/tailscale" "cmd/tailscaled" ];
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/servers/tegola/default.nix b/nixpkgs/pkgs/servers/tegola/default.nix
index 24e25f0c1377..ecb7fdd48887 100644
--- a/nixpkgs/pkgs/servers/tegola/default.nix
+++ b/nixpkgs/pkgs/servers/tegola/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "tegola";
-  version = "0.11.2";
+  version = "0.12.0";
 
   goPackagePath = "github.com/go-spatial/tegola";
 
@@ -10,9 +10,11 @@ buildGoPackage rec {
     owner = "go-spatial";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0xrjs0py08q9i31rl0cxi6idncrrgqwcspqks3c5vd9i65yqc6fv";
+    sha256 = "1bm791cis6bqgvhkk6n03kdxh0y9fdkhsx4rgmv7pm3zzdd7b17r";
   };
 
+  buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/cmd/tegola/cmd.Version=${version}" ];
+
   meta = with stdenv.lib; {
     homepage = "https://www.tegola.io/";
     description = "Mapbox Vector Tile server";
diff --git a/nixpkgs/pkgs/servers/teleport/default.nix b/nixpkgs/pkgs/servers/teleport/default.nix
index 1e1c0f938dbe..b307f7861fa4 100644
--- a/nixpkgs/pkgs/servers/teleport/default.nix
+++ b/nixpkgs/pkgs/servers/teleport/default.nix
@@ -3,14 +3,14 @@
 
 buildGoPackage rec {
   pname = "teleport";
-  version = "4.1.0";
+  version = "4.2.11";
 
   # This repo has a private submodule "e" which fetchgit cannot handle without failing.
   src = fetchFromGitHub {
     owner = "gravitational";
     repo = "teleport";
     rev = "v${version}";
-    sha256 = "1yj4z9lzvwvv566d8c4351xj23vmw8zh9scx87dlf0qzqxri91wk";
+    sha256 = "00mkh6rmdgwwhbk3jmxgwl0aisnnqw6q6i5zl1hn69hvdny9liii";
   };
 
   goPackagePath = "github.com/gravitational/teleport";
diff --git a/nixpkgs/pkgs/servers/traefik/default.nix b/nixpkgs/pkgs/servers/traefik/default.nix
index db3100619274..b18530f8c09e 100644
--- a/nixpkgs/pkgs/servers/traefik/default.nix
+++ b/nixpkgs/pkgs/servers/traefik/default.nix
@@ -2,16 +2,19 @@
 
 buildGoModule rec {
   pname = "traefik";
-  version = "2.2.1";
+  version = "2.2.11";
 
   src = fetchFromGitHub {
     owner = "containous";
     repo = "traefik";
     rev = "v${version}";
-    sha256 = "0byi2h1lma95l77sdj8jkidmwb12ryjqwxa0zz6vwjg07p5ps3k4";
+    sha256 = "0l93qb0kjbm5gjba0bxfyb5a0n1p54n5crhcsyzgrki4x586lan0";
   };
 
-  vendorSha256 = "0rbwp0cxqfv4v5sii6kavdj73a0q0l4fnvxincvyy698qzx716kf";
+  vendorSha256 = "06x2mcyp6c1jdf5wz51prhcn071d0580322lcv3x2bxk2grx08i2";
+
+  doCheck = false;
+
   subPackages = [ "cmd/traefik" ];
 
   nativeBuildInputs = [ go-bindata ];
@@ -23,9 +26,9 @@ buildGoModule rec {
 
     CODENAME=$(awk -F "=" '/CODENAME=/ { print $2}' script/binary)
 
-    makeFlagsArray+=("-ldflags=\
-      -X github.com/containous/traefik/version.Version=${version} \
-      -X github.com/containous/traefik/version.Codename=$CODENAME")
+    buildFlagsArray+=("-ldflags=\
+      -X github.com/containous/traefik/v2/pkg/version.Version=${version} \
+      -X github.com/containous/traefik/v2/pkg/version.Codename=$CODENAME")
   '';
 
   meta = with stdenv.lib; {
@@ -34,4 +37,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ vdemeester ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/trezord/default.nix b/nixpkgs/pkgs/servers/trezord/default.nix
index 7bdee09fca30..a59f74873dc5 100644
--- a/nixpkgs/pkgs/servers/trezord/default.nix
+++ b/nixpkgs/pkgs/servers/trezord/default.nix
@@ -19,7 +19,7 @@ buildGoPackage rec {
     description = "TREZOR Communication Daemon aka TREZOR Bridge";
     homepage = "https://trezor.io";
     license = licenses.lgpl3;
-    maintainers = with maintainers; [ canndrew jb55 prusnak mmahut maintainers."1000101" ];
+    maintainers = with maintainers; [ canndrew jb55 prusnak mmahut _1000101 ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/servers/trickster/trickster.nix b/nixpkgs/pkgs/servers/trickster/trickster.nix
index 3c03193e7708..cb8c87aa611a 100644
--- a/nixpkgs/pkgs/servers/trickster/trickster.nix
+++ b/nixpkgs/pkgs/servers/trickster/trickster.nix
@@ -21,7 +21,6 @@ buildGoPackage rec {
     description = "Reverse proxy cache for the Prometheus HTTP APIv1";
     homepage = "https://github.com/Comcast/trickster";
     license = licenses.asl20;
-    maintainers = with maintainers; [ maintainers."1000101" ];
-    platforms = platforms.all;
+    maintainers = with maintainers; [ _1000101 ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/tt-rss/theme-feedly/default.nix b/nixpkgs/pkgs/servers/tt-rss/theme-feedly/default.nix
index 8ad511e5b5b8..1f47f5b2226b 100644
--- a/nixpkgs/pkgs/servers/tt-rss/theme-feedly/default.nix
+++ b/nixpkgs/pkgs/servers/tt-rss/theme-feedly/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchFromGitHub }: stdenv.mkDerivation rec {
   pname = "tt-rss-theme-feedly";
-  version = "2.3.1";
+  version = "2.5.0";
 
   src = fetchFromGitHub {
     owner = "levito";
     repo = "tt-rss-feedly-theme";
     rev = "v${version}";
-    sha256 = "0rl5g664grx3m7yxa14rgnbvnlc3xnn44kzjji5layxww6jd8h2s";
+    sha256 = "sha256-wZ6Q4cxvJKot1TWE8tOVZeaaeBSXghmkYkOK9GjAnEM=";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/servers/ttyd/default.nix b/nixpkgs/pkgs/servers/ttyd/default.nix
index b7fac5fc477c..ef830710c1cf 100644
--- a/nixpkgs/pkgs/servers/ttyd/default.nix
+++ b/nixpkgs/pkgs/servers/ttyd/default.nix
@@ -7,12 +7,12 @@ with builtins;
 
 stdenv.mkDerivation rec {
   pname = "ttyd";
-  version = "1.6.0";
+  version = "1.6.1";
   src = fetchFromGitHub {
     owner = "tsl0922";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "08skw3h897jb71sbnglj571h35pcb1mikzlh71sx5imjgi4hfczr";
+    sha256 = "1ifgw93g8jaaa6fgfqjnn83n5ccr6l72ynwwwa97hfwjk90r14fg";
   };
 
   nativeBuildInputs = [ pkgconfig cmake xxd ];
diff --git a/nixpkgs/pkgs/servers/tvheadend/default.nix b/nixpkgs/pkgs/servers/tvheadend/default.nix
index f97935a4ce39..f4c3270bf3df 100644
--- a/nixpkgs/pkgs/servers/tvheadend/default.nix
+++ b/nixpkgs/pkgs/servers/tvheadend/default.nix
@@ -1,10 +1,22 @@
 { stdenv, fetchFromGitHub, cmake, makeWrapper, pkgconfig
 , avahi, dbus, gettext, git, gnutar, gzip, bzip2, ffmpeg_3, libiconv, openssl, python
-, which, zlib }:
+, v4l-utils, which, zlib }:
 
 let
   version = "4.2.8";
 
+  dtv-scan-tables = stdenv.mkDerivation {
+    pname = "dtv-scan-tables";
+    version = "2020-05-18";
+    src = fetchFromGitHub {
+      owner = "tvheadend";
+      repo = "dtv-scan-tables";
+      rev = "e3138a506a064f6dfd0639d69f383e8e576609da";
+      sha256 = "19ac9ds3rfc2xrqcywsbd1iwcpv7vmql7gp01iikxkzcgm2g2b6w";
+    };
+    nativeBuildInputs = [ v4l-utils ];
+    installFlags = [ "DATADIR=$(out)" ];
+  };
 in stdenv.mkDerivation {
   pname = "tvheadend";
   inherit version;
@@ -28,7 +40,7 @@ in stdenv.mkDerivation {
   NIX_CFLAGS_COMPILE = [ "-Wno-error=format-truncation" "-Wno-error=stringop-truncation" ];
 
   # disable dvbscan, as having it enabled causes a network download which
-  # cannot happen during build.
+  # cannot happen during build.  We now include the dtv-scan-tables ourselves
   configureFlags = [
     "--disable-dvbscan"
     "--disable-bintray_cache"
@@ -45,6 +57,9 @@ in stdenv.mkDerivation {
     substituteInPlace src/config.c \
       --replace /usr/bin/tar ${gnutar}/bin/tar
 
+    substituteInPlace src/input/mpegts/scanfile.c \
+      --replace /usr/share/dvb ${dtv-scan-tables}/dvbv5
+
     # the version detection script `support/version` reads this file if it
     # exists, so let's just use that
     echo ${version} > rpm/version
diff --git a/nixpkgs/pkgs/servers/udpt/default.nix b/nixpkgs/pkgs/servers/udpt/default.nix
index 2849f8c7e743..acf885ed0121 100644
--- a/nixpkgs/pkgs/servers/udpt/default.nix
+++ b/nixpkgs/pkgs/servers/udpt/default.nix
@@ -1,45 +1,20 @@
-{ stdenv, fetchFromGitHub, boost, sqlite, cmake, gtest }:
+{ stdenv, rustPlatform, fetchFromGitHub }:
 
-stdenv.mkDerivation {
+rustPlatform.buildRustPackage rec {
   pname = "udpt";
-  version = "2017-09-27";
-
-  enableParallelBuilding = true;
-
-  # Suitable for a network facing daemon.
-  hardeningEnable = [ "pie" ];
+  version = "3.1.0";
 
   src = fetchFromGitHub {
     owner = "naim94a";
     repo = "udpt";
-    rev = "e0dffc83c8ce76b08a41a4abbd5f8065535d534f";
-    sha256 = "187dw96mzgcmh4k9pvfpb7ckbb8d4vlikamr2x8vkpwzgjs3xd6g";
+    rev = "${pname}-${version}";
+    sha256 = "1g6l0y5x9pdra3i1npkm474glysicm4hf2m01700ack2rp43vldr";
   };
 
-  doCheck = true;
-
-  checkPhase = ''
-    runHook preCheck
-
-    make test
-
-    runHook postCheck
-  '';
-
-  buildInputs = [ boost sqlite cmake gtest ];
-
-  postPatch = ''
-    # Enabling optimization (implied by fortify hardening) causes htons
-    # to be re-defined as a macro, turning this use of :: into a syntax error.
-    sed -i '104a#undef htons' src/udpTracker.cpp
-  '';
+  cargoSha256 = "1cmd80ndjxdmyfjpm1f04rwf64501nyi6wdsj7lxidgd1v92wy2c";
 
-  installPhase = ''
-    mkdir -p $out/bin $out/etc/
-    cp udpt $out/bin
-    cp ../udpt.conf $out/etc/
-    # without this, the resulting binary is unstripped.
-    runHook postInstall
+  postInstall = ''
+    install -D udpt.toml $out/share/udpt/udpt.toml
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/servers/unifi/default.nix b/nixpkgs/pkgs/servers/unifi/default.nix
index a6e055dd0630..a43f00973eda 100644
--- a/nixpkgs/pkgs/servers/unifi/default.nix
+++ b/nixpkgs/pkgs/servers/unifi/default.nix
@@ -49,7 +49,7 @@ in {
   };
 
   unifiStable = generic {
-    version = "5.13.29";
-    sha256 = "0j1spid9q41l57gyphg8smn92iy52z4x4wy236a2a15p731gllh8";
+    version = "5.14.23";
+    sha256 = "1aar05yjm3z5a30x505w4kakbyz35i7mk7xyg0wm4ml6h94d84pv";
   };
 }
diff --git a/nixpkgs/pkgs/servers/urserver/default.nix b/nixpkgs/pkgs/servers/urserver/default.nix
new file mode 100644
index 000000000000..3f665a32ebda
--- /dev/null
+++ b/nixpkgs/pkgs/servers/urserver/default.nix
@@ -0,0 +1,45 @@
+{ stdenv
+, fetchurl
+, autoPatchelfHook
+, bluez
+, libX11
+, libXtst
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+  pname = "urserver";
+  version = "3.6.0.745";
+
+  src = fetchurl {
+    url = "https://www.unifiedremote.com/static/builds/server/linux-x64/745/urserver-${version}.tar.gz";
+    sha256 = "1ib9317bg9n4knwnlbrn1wfkyrjalj8js3a6h7zlcl8h8xc0szc8";
+  };
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+  ];
+
+  buildInputs = [
+    stdenv.cc.cc.lib
+    bluez
+    libX11
+    libXtst
+    makeWrapper
+  ];
+
+  installPhase = ''
+    install -m755 -D urserver $out/bin/urserver
+    wrapProgram $out/bin/urserver --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath buildInputs}"
+    cp -r remotes $out/bin/remotes
+    cp -r manager $out/bin/manager
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://www.unifiedremote.com/";
+    description = "The one-and-only remote for your computer";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ sfrijters ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/servers/uwsgi/default.nix b/nixpkgs/pkgs/servers/uwsgi/default.nix
index 0f0d2c23e4c4..39a3113eb410 100644
--- a/nixpkgs/pkgs/servers/uwsgi/default.nix
+++ b/nixpkgs/pkgs/servers/uwsgi/default.nix
@@ -54,11 +54,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "uwsgi";
-  version = "2.0.18";
+  version = "2.0.19.1";
 
   src = fetchurl {
     url = "https://projects.unbit.it/downloads/${pname}-${version}.tar.gz";
-    sha256 = "10zmk4npknigmbqcq1wmhd461dk93159px172112vyq0i19sqwj9";
+    sha256 = "0256v72b7zr6ds4srpaawk1px3bp0djdwm239w3wrxpw7dzk1gjn";
   };
 
   nativeBuildInputs = [ python3 pkgconfig ];
diff --git a/nixpkgs/pkgs/servers/web-apps/codimd/default.nix b/nixpkgs/pkgs/servers/web-apps/codimd/default.nix
index 6771f459b68b..7de539bb0913 100644
--- a/nixpkgs/pkgs/servers/web-apps/codimd/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/codimd/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, fetchpatch, makeWrapper
-, which, nodejs, mkYarnPackage, python2 }:
+, which, nodejs, mkYarnPackage, python2, nixosTests }:
 
 mkYarnPackage rec {
   name = "codimd";
@@ -63,6 +63,8 @@ mkYarnPackage rec {
     runHook postDist
   '';
 
+  passthru.tests = { inherit (nixosTests) codimd; };
+
   meta = with stdenv.lib; {
     description = "Realtime collaborative markdown notes on all platforms";
     license = licenses.agpl3;
diff --git a/nixpkgs/pkgs/servers/web-apps/cryptpad/bower-packages.nix b/nixpkgs/pkgs/servers/web-apps/cryptpad/bower-packages.nix
index 76dc26c4e08f..be0c3ab72c75 100644
--- a/nixpkgs/pkgs/servers/web-apps/cryptpad/bower-packages.nix
+++ b/nixpkgs/pkgs/servers/web-apps/cryptpad/bower-packages.nix
@@ -5,36 +5,38 @@ buildEnv { name = "bower-env"; ignoreCollisions = true; paths = [
   (fetchbower "jquery" "2.2.4" "2.2.4" "0kaln93pzjlr4vqf2zvsm9dwgjkrii9xlsqg48hc1vs16cl109rn")
   (fetchbower "tweetnacl" "0.12.2" "0.12.2" "1lfzbfrdaly3zyzbcp1p53yhxlrx56k8x04q924kg7l52gblm65g")
   (fetchbower "components-font-awesome" "4.7.0" "^4.6.3" "1w27im6ayjrbgjqa0i49ml5d3wy4ld40h9b29hz9myv77bpx4lg1")
-  (fetchbower "ckeditor" "4.7.3" "4.7.3" "02bism1gc0pccdxsp361hsrn9p4jh24dnxh40rv3xikr3g91b414")
-  (fetchbower "codemirror" "5.52.0" "^5.19.0" "0yc9qyfp7g800mgbaxc5zyy6bp5q257rj7l8i1bp0667h1wvfchp")
+  (fetchbower "ckeditor" "4.14.0" "4.14.0" "0lw9q0k8c0jlxvf35vrccab9c3c8rgpc6x66czj9si8yy2lyliyp")
+  (fetchbower "codemirror" "5.56.0+components1" "^5.19.0" "0fv8rxw6dspyv4bl6p2aka57544f45527rallnhnm5scv77qnakm")
   (fetchbower "requirejs" "2.3.5" "2.3.5" "05lyvgz914h2w08r24rk0vkk3yxmqrvlg7j3i5av9ffkg9lpzsli")
-  (fetchbower "marked" "0.5.0" "0.5.0" "00lclh9xfbhbjzzbbfjnfpr949hmqmr04jx2hq7mdc9f74xinj1r")
+  (fetchbower "marked" "1.1.0" "1.1.0" "1sdgqw9iki9c1pfm4c5h6c956mchbip2jywjrcmrlb75k53flsjz")
   (fetchbower "rangy" "rangy-release#1.3.0" "rangy-release#~1.3.0" "13x3wci003p8jyv2ncir0k23bxckx99b3555r0zvgmlwycg7w0zv")
   (fetchbower "json.sortify" "2.1.0" "~2.1.0" "1rz9xz0gnm4ak31n10vhslqsw8fw493gjylwj8xsy3bxqq1ygpnh")
   (fetchbower "secure-fabric.js" "secure-v1.7.9" "secure-v1.7.9" "1l56mk7hbnsm9cdg5zdcmg95p7a9w96dq0bbl8fp11vs0awjil7a")
   (fetchbower "hyperjson" "1.4.0" "~1.4.0" "1n68ls3x4lyhg1yy8i4q3xkgh5xqpyakf45sny4x91mkr68x4bd9")
   (fetchbower "chainpad-crypto" "0.2.4" "^0.2.0" "0sqqc2j0pc34ig6319n18i85j03hibqkhz3cbr70vbd8x43vfzby")
-  (fetchbower "chainpad-listmap" "0.8.1" "^0.8.1" "04q1mb9cr510y0xzybd51j8x16vmjb8v7jv3vik0cx7kzqf4rh0f")
-  (fetchbower "chainpad" "5.1.3" "^5.1.0" "1la0zrh0i1h264jacn436w85hzq3l0d4whwxd2sslja9xbwgfaa0")
+  (fetchbower "chainpad-listmap" "0.9.0" "^0.9.0" "173yr5a6zxq7nb3fha6f1ajv2vy0mvqwmm949ww7ihvrhh7cd0f5")
+  (fetchbower "chainpad" "5.2.2" "^5.2.0" "1rmh039bqk11xnnh99sqrqksr4idly75y5q4f5wyl9cg4slsqrdp")
   (fetchbower "file-saver" "1.3.1" "1.3.1" "065nzkvdiicxnw06z1sjz1sbp9nyis8z839hv6ng1fk25dc5kvkg")
   (fetchbower "alertifyjs" "1.0.11" "1.0.11" "0v7323bzq90k35shm3h6azj4wd9la3kbi1va1pw4qyvndkwma69l")
   (fetchbower "scrypt-async" "1.2.0" "1.2.0" "0d076ax708p9b8hcmk4f82j925nlnm0hmp0ni45ql37g7iirfpyv")
   (fetchbower "require-css" "0.1.10" "0.1.10" "106gz9i76v71q9zx2pnqkkj342m630lvssnw54023a0ljc0gqcwq")
   (fetchbower "less" "3.7.1" "3.7.1" "1n7ps4xlbrc9m63b3q62mg3p6i7d5hwchhpjshb0drzj5crvz556")
   (fetchbower "bootstrap" "3.1.1" "~3.1.1" "06bhjwa8p7mzbpr3jkgydd804z1nwrkdql66h7jkfml99psv9811")
-  (fetchbower "bootstrap" "4.4.1" "^v4.0.0" "0a3y5s6236jjw0ppzwdysf5mn87308ndadw1rgwgwswr9cgkz2ak")
+  (fetchbower "bootstrap" "4.5.0" "^v4.0.0" "0cfdn6z8jwx6y8lbbq6xpkfhq2vra0i84nkj9ji2bil1fzgzi40f")
   (fetchbower "diff-dom" "2.1.1" "2.1.1" "0nrn6xqlhp0p5ixjxdk8qg3939crkggh1l8swd20d7bsz186l5f1")
   (fetchbower "nthen" "0.1.7" "0.1.7" "03yap5ildigaw4rwxmxs37pcwhq415iham8w39zd56ka98gpfxa5")
   (fetchbower "open-sans-fontface" "1.4.2" "^1.4.2" "0ksav1fcq640fmdz49ra4prwsrrfj35y2p4shx1jh1j7zxd044nf")
   (fetchbower "bootstrap-tokenfield" "0.12.1" "^0.12.1" "0ib1v5k8h360sp19yiy7q92rfaz2554fvwwg2ixmxn01ydqlprw6")
-  (fetchbower "localforage" "1.7.3" "^1.5.2" "0q1a996j4dn246xp55zldfh07s9m9skhnf9i0g1w4ngwsnqx23rw")
+  (fetchbower "localforage" "1.8.1" "^1.5.2" "0ci265385racnxvn4g1n672yaxi47msw6k042nxdb5vlpf5g327j")
   (fetchbower "html2canvas" "0.4.1" "^0.4.1" "0yg7y90nav068q0i5afc2c221zkddpf28hi0hwc46cawx4180c69")
-  (fetchbower "croppie" "2.6.4" "^2.5.0" "1lcdsjdc4xz7a3sii836g40wx15223sxng53mnf3g7h7s5y84h1x")
+  (fetchbower "croppie" "2.6.5" "^2.5.0" "1j1v5620zi13ad42r358i4ay891abwn6nz357484kgq2bgjj6ccx")
   (fetchbower "sortablejs" "1.10.2" "^1.6.0" "10q4gyblhjy7w51clr0k9j7h722l4ybzn5535givwpmp6xagv11v")
   (fetchbower "saferphore" "0.0.1" "^0.0.1" "1wfr9wpbm3lswmvy2p0247ydb108h4qh5s286py89k871qh6jwdi")
-  (fetchbower "jszip" "Stuk/jszip#3.2.2" "Stuk/jszip#^3.1.5" "1k0va2ps2x29d1virg51n5s5rdjk21zfh7h14nnljcfnvxvk3rpp")
+  (fetchbower "jszip" "Stuk/jszip#3.5.0" "Stuk/jszip#^3.1.5" "1ra19d82cq1hrnbw88l8c61bs12kpgxvbfiiwpfi8fhy0l8hcsvk")
   (fetchbower "requirejs-plugins" "1.0.3" "^1.0.3" "00s3sdz1ykygx5shldwhhhybwgw7c99vkqd94i5i5x0gl97ifxf5")
-  (fetchbower "chainpad-netflux" "0.10.3" "^0.10.0" "0k8nf34bxwr070jjn4hc7ikiysnv22mix1mdg633j67b5ca0bm30")
+  (fetchbower "dragula.js" "3.7.2" "3.7.2" "0dbkmrl8bcxiplprmmp9fj96ri5nahb2ql8cc7zwawncv0drvlh0")
+  (fetchbower "MathJax" "3.0.5" "3.0.5" "087a9av15qj43m8pr3b9g59ncmydhmg40m6dfzsac62ykianh2a0")
+  (fetchbower "chainpad-netflux" "0.11.2" "^0.11.0" "1dqfricbm6s8iv7w1bsx1700m5cpk5rk1f4spqv0fqyf6mdz366v")
   (fetchbower "netflux-websocket" "0.1.20" "^0.1.20" "1xwqq7nw7fmhglndbplarkdzxfmkq831aqs8nm6qj0hz2ggbibhz")
   (fetchbower "es6-promise" "3.3.1" "^3.2.2" "0ai6z5admfs84fdx6663ips49kqgz4x68ays78cic0xfb7pp6vcz")
 ]; }
diff --git a/nixpkgs/pkgs/servers/web-apps/cryptpad/default.nix b/nixpkgs/pkgs/servers/web-apps/cryptpad/default.nix
index 77e529f26abf..abd20d644990 100644
--- a/nixpkgs/pkgs/servers/web-apps/cryptpad/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/cryptpad/default.nix
@@ -15,6 +15,7 @@ let
   bowerPackages = buildBowerComponents {
     name = "${cryptpad.name}-bower-packages";
     # this list had to be tweaked by hand:
+    # * add the second jquery ~2.1.0 entry
     # * add the second bootstrap ~3.1.1 entry
     generated = ./bower-packages.nix;
     src = cryptpad.src;
@@ -48,6 +49,8 @@ let
     postInstall = ''
       out_cryptpad=$out/lib/node_modules/cryptpad
 
+      substituteInPlace $out_cryptpad/lib/workers/index.js --replace "lib/workers/db-worker" "$out_cryptpad/lib/workers/db-worker"
+
       # add the bower components
       ln -sv \
         ${bowerPackages}/bower_components \
diff --git a/nixpkgs/pkgs/servers/web-apps/cryptpad/generate.sh b/nixpkgs/pkgs/servers/web-apps/cryptpad/generate.sh
index 2fe4099efa4f..697b5a74a08a 100755
--- a/nixpkgs/pkgs/servers/web-apps/cryptpad/generate.sh
+++ b/nixpkgs/pkgs/servers/web-apps/cryptpad/generate.sh
@@ -2,7 +2,7 @@
 #! nix-shell -i bash  -I nixpkgs=../../../.. -p nodePackages.node2nix nodePackages.bower2nix
 set -euo pipefail
 
-node2nix --nodejs-10 \
+node2nix --nodejs-12 \
      --input node-packages.json \
      --output node-packages-generated.nix \
      --composition node-packages.nix \
diff --git a/nixpkgs/pkgs/servers/web-apps/cryptpad/node-packages-generated.nix b/nixpkgs/pkgs/servers/web-apps/cryptpad/node-packages-generated.nix
index 1fde7673fe81..349ad59c60ab 100644
--- a/nixpkgs/pkgs/servers/web-apps/cryptpad/node-packages-generated.nix
+++ b/nixpkgs/pkgs/servers/web-apps/cryptpad/node-packages-generated.nix
@@ -10,7 +10,7 @@ let
       version = "1.3.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz";
-        sha512 = "2j51dxzbgz22q0k7dhivimfsqx9a0f0h9slfd7n20gz3y1944gx3y7xai54za0x3zhbar6vqiaab2i9p913cwqk414qk3cnrm138pr2";
+        sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
       };
     };
     "array-flatten-1.1.1" = {
@@ -28,7 +28,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz";
-        sha512 = "0sy81yyf4na58ic2m0ib0prkb9njb1qzl7wf3vlq4hhm4xnwgxaph0lr43gs1sd0rai2xp1h6phlwvni9jiggm94dd54i0wc1cabhvj";
+        sha512 = "csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==";
       };
     };
     "body-parser-1.18.3" = {
@@ -55,16 +55,16 @@ let
       version = "0.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/chainpad-crypto/-/chainpad-crypto-0.2.4.tgz";
-        sha512 = "1b9mfdy7p405fgwsjhv5dmy1p5mz6nzb3ss4qkj664xnq4bpz5nn42cpxzvdk3d4g8zf4p98xq4ja81kykl296rzpgrpprgw34xarkx";
+        sha512 = "fWbVyeAv35vf/dkkQaefASlJcEfpEvfRI23Mtn+/TBBry7+LYNuJMXJiovVY35pfyw2+trKh1Py5Asg9vrmaVg==";
       };
     };
-    "chainpad-server-4.0.5" = {
+    "chainpad-server-4.0.9" = {
       name = "chainpad-server";
       packageName = "chainpad-server";
-      version = "4.0.5";
+      version = "4.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chainpad-server/-/chainpad-server-4.0.5.tgz";
-        sha512 = "11j36n90grxq83vpzjzff2nfcf4qkqwk6ply90sijkdcw575ql2ja9pww48inapqa3rqh3js0s4pccswyfyllnafvvrrv4xii08lwxw";
+        url = "https://registry.npmjs.org/chainpad-server/-/chainpad-server-4.0.9.tgz";
+        sha512 = "8h1W41ktE05TM6LuXrklpW2TUxWeNyIDiRaQygKsXaA/7pyJxF7+AmPVS+xW0c31VkHjQDPiaMzPoxhcxXnIyA==";
       };
     };
     "content-disposition-0.5.2" = {
@@ -82,7 +82,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz";
-        sha512 = "1f4y61wc913jrnga7nny83gzf9l2488q6sl1ry9lbwgh5x5d3va0xcc0xrmjk6gdxl6d4r6rsk800xp5bazhjrx05yx1wpc8c8gg0w4";
+        sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
       };
     };
     "cookie-0.3.1" = {
@@ -109,7 +109,7 @@ let
       version = "2.6.9";
       src = fetchurl {
         url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
-        sha512 = "0q0fsr8bk1m83z0am0h2xn09vyfcf18adscxms8hclznwks1aihsisd96h8npx0idq5wwnypnqrkyk25m5d9zh3dk7rjs29nybc8bkc";
+        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
       };
     };
     "depd-1.1.2" = {
@@ -172,7 +172,7 @@ let
       version = "4.16.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/express/-/express-4.16.4.tgz";
-        sha512 = "0x2wjwybkq0ridr18abnsh5hymkh9fjma63ik8za1fl7jgmmhnrxg9qi8yy9p8hci4k8385xys0y28whamrn054zvfwl57q4sxr8pcg";
+        sha512 = "j12Uuyb4FMrd/qQAm6uCHAkPtO8FDTRJZBDd5D2KOL2eLaz1yUNdUB/NOIyq0iU4q4cFarsUCrnFDPBcnksuOg==";
       };
     };
     "finalhandler-1.1.1" = {
@@ -181,7 +181,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz";
-        sha512 = "2v4ymv7dvpxpnrid4cn8qni5k5l024zc2qzg8ipkbxwmqjbaiygbx0hvbnr0ywfy0is4ngyhp6ljgjh4wmk6fqc3hd3wyzxil798lb3";
+        sha512 = "Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==";
       };
     };
     "forwarded-0.1.2" = {
@@ -208,7 +208,7 @@ let
       version = "7.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz";
-        sha512 = "05qcmykw9czycnn3r2rrlspzd4dznr4796abdqzw150j7rafnlq8n4wp4dai34swb23lfvhw8s31l1k83vpwxqddyf1k724jq4dm430";
+        sha512 = "YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==";
       };
     };
     "gar-1.0.4" = {
@@ -217,7 +217,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/gar/-/gar-1.0.4.tgz";
-        sha512 = "3ikh31ywgrpmrh33kn82v8r5vjx0w4i1kva4gnc8rbd8dkbrps4gkgjdfab609fzhbzcbrch1cgn23s1ia1qn5cqj3vcgxjymqgv2f3";
+        sha512 = "w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w==";
       };
     };
     "get-folder-size-2.0.1" = {
@@ -226,16 +226,16 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/get-folder-size/-/get-folder-size-2.0.1.tgz";
-        sha512 = "3679cn6gprs8s2zfs0y73r0mv6pg9295y3r70pj75wcvilm4ds2yaim9b9918ap1vp48a9773nd9nwzjg179c1d75jbncy2c3w1n8gq";
+        sha512 = "+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA==";
       };
     };
-    "graceful-fs-4.2.3" = {
+    "graceful-fs-4.2.4" = {
       name = "graceful-fs";
       packageName = "graceful-fs";
-      version = "4.2.3";
+      version = "4.2.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz";
-        sha512 = "12xdl6ai5jdxcpcavw2hk4zpiknz7g7f2cvgawzwlzv7cy7qf7riq8ymkgqdqxjkpl1mg627dxa65zc9b0yqhflsmqlfg5q3481azbb";
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz";
+        sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==";
       };
     };
     "http-errors-1.6.3" = {
@@ -253,7 +253,7 @@ let
       version = "0.4.23";
       src = fetchurl {
         url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz";
-        sha512 = "062yxlrx4glr90bxn6jdv83qf03c9appkxdjjz5bhbphsx2yrn0y1i6yn9pfr3hfv2xiwq18hxvrvzfzfa7axv0sbgihskda58r7v4x";
+        sha512 = "neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==";
       };
     };
     "inherits-2.0.3" = {
@@ -271,7 +271,7 @@ let
       version = "1.9.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
-        sha512 = "3gcwhv1wa2hb1vljlcmzhvzliks9rj7nzsw165vgy69jakw8g55ky474mj4j41vfbid8viy9nhwn9kx8pfqrikyl29i98zi9vmkz8nh";
+        sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
       };
     };
     "jsonfile-4.0.0" = {
@@ -334,25 +334,25 @@ let
       version = "1.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz";
-        sha512 = "2sz22r1xrnyvq6jg0h6b6cab3s3xdsfqa0n6vl9xv9gq3ppcxrcpg2hqfc41xjwnfwfkr6240l5gys7nds61ch6xcb3gr3fwsl7x398";
+        sha512 = "KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==";
       };
     };
-    "mime-db-1.43.0" = {
+    "mime-db-1.44.0" = {
       name = "mime-db";
       packageName = "mime-db";
-      version = "1.43.0";
+      version = "1.44.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz";
-        sha512 = "36x3p6lll5v1g7na92kbba0bpcl36i1argsqn8iy4mgz3zh3llnqhzhfw0l26jqcb0mh9rhhmrx718kvqzchga6y79qdg9884c6r5zv";
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz";
+        sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
       };
     };
-    "mime-types-2.1.26" = {
+    "mime-types-2.1.27" = {
       name = "mime-types";
       packageName = "mime-types";
-      version = "2.1.26";
+      version = "2.1.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz";
-        sha512 = "1cxsgrndjg6jyfqzm74hv6cmy9lil52f1kzkq2niknaiqz20p3yiw0fpgsyld2zrbxr9abpdabz1q6nqa50xr9a0cmbjbi0cqymlnnk";
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz";
+        sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
       };
     };
     "ms-2.0.0" = {
@@ -370,7 +370,7 @@ let
       version = "0.6.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz";
-        sha512 = "0xi79rad0khwah5v2k6pvh8ajjgi7hp3zlkg6gk11pv70ydcq7li0kzcv1gnaf13gmblzhvx7hxs2nhypphb0sp4cggiy4ympndr5c5";
+        sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
       };
     };
     "netflux-websocket-0.1.20" = {
@@ -379,7 +379,7 @@ let
       version = "0.1.20";
       src = fetchurl {
         url = "https://registry.npmjs.org/netflux-websocket/-/netflux-websocket-0.1.20.tgz";
-        sha512 = "1rdvzykqbvgkxk52k0f16vn1mzgrnxawyfnizlzqah3jv554pi7znbhlmjf5wjjabrj0k5dd7v53jzz0ncwg9vjf6j0kqi5ib1n9wdj";
+        sha512 = "svFkw4ol4gmkcXKnx5kF/8tR9mmtTCDzUlLy4mSlcNl/4iWlbDmgwp/+aJ3nqtv8fg12m+DAFGX2+fbC0//dcg==";
       };
     };
     "nthen-0.1.8" = {
@@ -388,7 +388,7 @@ let
       version = "0.1.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/nthen/-/nthen-0.1.8.tgz";
-        sha512 = "1rn74v8zsxvg9pywjqz4gg3947flyhzz66m5vgb0rw6mffg7l3pf0xmkfgamj42yafn200qfp1s0s9ardg429fy9wafr3z1hv08479s";
+        sha512 = "Oh2CwIbhj+wUT94lQV7LKmmgw3UYAGGd8oLIqp6btQN3Bz3PuWp4BuvtUo35H3rqDknjPfKx5P6mt7v+aJNjcw==";
       };
     };
     "on-finished-2.3.0" = {
@@ -406,7 +406,7 @@ let
       version = "1.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz";
-        sha512 = "2lzxqjq4zp60k9gbskpqz7pr1yvb0c6nygd42sia7n6km2gc0cc844nlc5d6r9sshrjhjvs284143jzvz9wzd4r6xr9dz2k24xrwb0a";
+        sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
       };
     };
     "path-to-regexp-0.1.7" = {
@@ -424,7 +424,7 @@ let
       version = "2.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz";
-        sha512 = "0xy6dm0910h3nsa0ik45yccdfm6f84nl3h9dpkb22crqhdr3mmiczcbrq9z53gq7l2ijxhxi3pzsfzafrzymw4c1nn68ml1y2pdy7vn";
+        sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
       };
     };
     "pull-stream-3.6.14" = {
@@ -433,7 +433,7 @@ let
       version = "3.6.14";
       src = fetchurl {
         url = "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.14.tgz";
-        sha512 = "1xjf24kjiqjzdx29ss7cqgr32vgd84b8xyd7d8n3yvwkay1jf84z2s9cpzwlmn0cq4sl26bxxpc89nnqv1630k90gaa87c7kaz9v2i8";
+        sha512 = "KIqdvpqHHaTUA2mCYcLG1ibEbu/LCKoJZsBWyv9lSYtPkJPBq8m3Hxa103xHi6D2thj5YXa0TqK3L3GUkwgnew==";
       };
     };
     "qs-6.5.2" = {
@@ -442,7 +442,7 @@ let
       version = "6.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
-        sha512 = "0c46ws0x9g3mmkgfmvd78bzvnmv2b8ryg4ah6jvyyqgjv9v994z7xdyvsc4vg9sf98gg7phvy3q1ahgaj5fy3dwzf2rki6bixgl15ip";
+        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
       };
     };
     "range-parser-1.2.1" = {
@@ -451,7 +451,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz";
-        sha512 = "15b00vag4wijzsp0lwi9jznpz16n858vq5p1p3dgjrqqil9c6d4x55s1nl1fi4cbq8307bylbvkd9qkhyk6qib8ksh8raibxb3jrf0y";
+        sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
       };
     };
     "raw-body-2.3.3" = {
@@ -460,7 +460,7 @@ let
       version = "2.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz";
-        sha512 = "27ygzjzpajjmz2bl1f7y1bla7wdw65w912r4i29x9p1r0pa5jivip658vwlkqq77n1nc619w1p52818mvihxhks4dlbc1pmbc925szm";
+        sha512 = "9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==";
       };
     };
     "safe-buffer-5.1.2" = {
@@ -469,7 +469,7 @@ let
       version = "5.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
-        sha512 = "3xbm0dkya4bc3zwfwpdzbl8ngq0aai5ihlp2v3s39y7162c7wyvv9izj3g8hv6dy6vm2lq48lmfzygk0kxwbjb6xic7k4a329j99p8r";
+        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
       };
     };
     "safer-buffer-2.1.2" = {
@@ -478,7 +478,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
-        sha512 = "2v99f22kh56y72d3s8wrgdvf5n10ry40dh3fwnsxr4d5rfvxdfxfmc3qyqkscnj4f8799jy9bpg6cm21x2d811dr9ib83wjrlmkg6k1";
+        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
       };
     };
     "saferphore-0.0.1" = {
@@ -496,7 +496,7 @@ let
       version = "0.16.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/send/-/send-0.16.2.tgz";
-        sha512 = "1kh8iy2h9x6mqbb0kssb4d966irri0z8g2151jwx47q32dbmds01j9fs2c8hln68dqqh0ims8p450z3xfw6vs8v2k253c1cyla1ibhk";
+        sha512 = "E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==";
       };
     };
     "serve-static-1.13.2" = {
@@ -505,7 +505,7 @@ let
       version = "1.13.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz";
-        sha512 = "2gkkd7jlmrn2a8d736x3fcij9jj16aglbq6pcivb897g01k1dlrpvb565d3hq9zwafyr60zlcqr5flgd2yqs36s8wxpylxqnck5vyx7";
+        sha512 = "p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==";
       };
     };
     "setprototypeof-1.1.0" = {
@@ -514,7 +514,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz";
-        sha512 = "2jlhhawfqdiga1m6if01ks1q3yx56k5vj6wf372589vkswvdflw7224viivxali56b0jjsckpmjy10rj6fcakhw2dbq2psr197kzw86";
+        sha512 = "BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==";
       };
     };
     "sortify-1.0.4" = {
@@ -532,7 +532,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz";
-        sha512 = "1xxwqpj713rq1idbmp7mj7cj9dl52lazgpd5x8a9g88jawbkn9xpwbgljl7cvnd0jqkll2zpdj5xy63dlis9l2k8vmx1n1gvyv8456f";
+        sha512 = "zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==";
       };
     };
     "stream-to-pull-stream-1.7.3" = {
@@ -541,7 +541,7 @@ let
       version = "1.7.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz";
-        sha512 = "0dcrjpdn2j9k2zhnw5v2kp3k9vqsng8x822nchipwh4rgzb3y7y9cj3q01r9mishxrha0rc62xh6v0dbkycn3fq847d5rbbkal75hza";
+        sha512 = "6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg==";
       };
     };
     "tiny-each-async-2.0.3" = {
@@ -578,7 +578,16 @@ let
       version = "1.6.18";
       src = fetchurl {
         url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz";
-        sha512 = "3r7402x79nilhdgk4z21yjh5y9vix8lwlll1kzcn8jd2m89vzksdb6wddia77cxv3iwhd6i5hkv6n7diwjbhpy7y03i2kqlvfplli2f";
+        sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
+      };
+    };
+    "ulimit-0.0.2" = {
+      name = "ulimit";
+      packageName = "ulimit";
+      version = "0.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ulimit/-/ulimit-0.0.2.tgz";
+        sha1 = "2b51f9dc8381ae4102636cec5eb338c2630588a0";
       };
     };
     "ultron-1.1.1" = {
@@ -587,7 +596,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz";
-        sha512 = "0x78hsv3jykmjl6qdqlqiz7v5nf06li8b5yvzpj6grnzwbcjch8ngyg55lm8g8mg4znvk7qbryvrr2dxacz3cvyb1nsm64qsw21g0ah";
+        sha512 = "UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==";
       };
     };
     "universalify-0.1.2" = {
@@ -596,7 +605,7 @@ let
       version = "0.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz";
-        sha512 = "29d9b6i7rf460m0c5761z6xzzjdl2q81ri19x5qcnvi9l85jp71f7lbr7bdk7sx3k3sqwcp9vfpmlh7srgfnzlmssr5j0lpj0imw4mc";
+        sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==";
       };
     };
     "unpipe-1.0.0" = {
@@ -632,20 +641,20 @@ let
       version = "3.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz";
-        sha512 = "2887c18dlvnvc62pqgwhihzxnnj9mzbnjqa0gqg3n94k5b6fx6nm1wggisy2bg3mi7dl81vk11i49wl319yfvh255w2nrbhydmqnxcy";
+        sha512 = "nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==";
       };
     };
   };
 in
 {
-  "cryptpad-git+https://github.com/xwiki-labs/cryptpad.git#3.13.0" = nodeEnv.buildNodePackage {
+  "cryptpad-git+https://github.com/xwiki-labs/cryptpad.git#3.20.1" = nodeEnv.buildNodePackage {
     name = "cryptpad";
     packageName = "cryptpad";
-    version = "3.13.0";
+    version = "3.20.1";
     src = fetchgit {
       url = "https://github.com/xwiki-labs/cryptpad.git";
-      rev = "6b657c47ceba50c85275981f45895341370d3d66";
-      sha256 = "d7b56930962fe5217d2051fb718954fd7aef96c9503e27d32148ea9b4a8dc098";
+      rev = "9bc27d7d0d50d17c345bd545a45341a05293c558";
+      sha256 = "4a1fc833b38b2097741500cef38c6b04f5b752c21736e95eb492c33012016332";
     };
     dependencies = [
       sources."accepts-1.3.7"
@@ -658,7 +667,7 @@ in
           sources."tweetnacl-git://github.com/dchest/tweetnacl-js.git#v0.12.2"
         ];
       })
-      sources."chainpad-server-4.0.5"
+      sources."chainpad-server-4.0.9"
       sources."content-disposition-0.5.2"
       sources."content-type-1.0.4"
       sources."cookie-0.3.1"
@@ -677,7 +686,7 @@ in
       sources."fs-extra-7.0.1"
       sources."gar-1.0.4"
       sources."get-folder-size-2.0.1"
-      sources."graceful-fs-4.2.3"
+      sources."graceful-fs-4.2.4"
       sources."http-errors-1.6.3"
       sources."iconv-lite-0.4.23"
       sources."inherits-2.0.3"
@@ -689,8 +698,8 @@ in
       sources."merge-descriptors-1.0.1"
       sources."methods-1.1.2"
       sources."mime-1.4.1"
-      sources."mime-db-1.43.0"
-      sources."mime-types-2.1.26"
+      sources."mime-db-1.44.0"
+      sources."mime-types-2.1.27"
       sources."ms-2.0.0"
       sources."negotiator-0.6.2"
       sources."netflux-websocket-0.1.20"
@@ -715,6 +724,7 @@ in
       sources."tiny-each-async-2.0.3"
       sources."tweetnacl-0.12.2"
       sources."type-is-1.6.18"
+      sources."ulimit-0.0.2"
       sources."ultron-1.1.1"
       sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
diff --git a/nixpkgs/pkgs/servers/web-apps/cryptpad/node-packages.json b/nixpkgs/pkgs/servers/web-apps/cryptpad/node-packages.json
index 3d068f6a4496..07e02a1a0a2e 100644
--- a/nixpkgs/pkgs/servers/web-apps/cryptpad/node-packages.json
+++ b/nixpkgs/pkgs/servers/web-apps/cryptpad/node-packages.json
@@ -1,3 +1,3 @@
 [
-  { "cryptpad": "git+https://github.com/xwiki-labs/cryptpad.git#3.13.0" }
+  { "cryptpad": "git+https://github.com/xwiki-labs/cryptpad.git#3.20.1" }
 ]
diff --git a/nixpkgs/pkgs/servers/web-apps/cryptpad/node-packages.nix b/nixpkgs/pkgs/servers/web-apps/cryptpad/node-packages.nix
index 3eecf3c90999..19c034aa78b3 100644
--- a/nixpkgs/pkgs/servers/web-apps/cryptpad/node-packages.nix
+++ b/nixpkgs/pkgs/servers/web-apps/cryptpad/node-packages.nix
@@ -2,7 +2,7 @@
 
 {pkgs ? import <nixpkgs> {
     inherit system;
-  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-10_x"}:
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
 
 let
   nodeEnv = import ../../../development/node-packages/node-env.nix {
diff --git a/nixpkgs/pkgs/servers/web-apps/dokuwiki/default.nix b/nixpkgs/pkgs/servers/web-apps/dokuwiki/default.nix
index f12a75c8e18b..8177e1d22262 100644
--- a/nixpkgs/pkgs/servers/web-apps/dokuwiki/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/dokuwiki/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "dokuwiki";
-  version = "2018-04-22b";
+  version = "2020-07-29";
 
   src = fetchFromGitHub {
     owner = "splitbrain";
     repo = "${pname}";
     rev = "release_stable_${version}";
-    sha256 = "1na5pn4j4mi2la80ywzg1krwqdxz57mjkw0id6ga9rws809gkdjp";
+    sha256 = "09swcqyd06l3481k190gmlr3b33dlv1lw1kk9nyh5b4sa5p3k7kk";
   };
 
   preload = writeText "preload.php" ''
@@ -50,6 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     homepage = "https://www.dokuwiki.org";
     platforms = platforms.all;
-    maintainers = [ maintainers."1000101" ];
+    maintainers = with maintainers; [ _1000101 ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/web-apps/jitsi-meet/default.nix b/nixpkgs/pkgs/servers/web-apps/jitsi-meet/default.nix
new file mode 100644
index 000000000000..4c85f949aec2
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/jitsi-meet/default.nix
@@ -0,0 +1,34 @@
+{ pkgs, stdenv, fetchurl, nixosTests }:
+
+stdenv.mkDerivation rec {
+  pname = "jitsi-meet";
+  version = "1.0.4289";
+
+  src = fetchurl {
+    url = "https://download.jitsi.org/jitsi-meet/src/jitsi-meet-${version}.tar.bz2";
+    sha256 = "0hs6hjcb0cxmakx2na3xkz9bld0xcil5slp4wjl5xql3s00mk10v";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir $out
+    mv * $out/
+  '';
+
+  passthru.tests = {
+    single-host-smoke-test = nixosTests.jitsi-meet;
+  };
+
+  meta = with stdenv.lib; {
+    description = "Secure, Simple and Scalable Video Conferences";
+    longDescription = ''
+      Jitsi Meet is an open-source (Apache) WebRTC JavaScript application that uses Jitsi Videobridge
+      to provide high quality, secure and scalable video conferences.
+    '';
+    homepage = "https://github.com/jitsi/jitsi-meet";
+    license = licenses.asl20;
+    maintainers = teams.jitsi.members;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/web-apps/matomo/default.nix b/nixpkgs/pkgs/servers/web-apps/matomo/default.nix
index 76d1a5f0b755..eca43dc6f13f 100644
--- a/nixpkgs/pkgs/servers/web-apps/matomo/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/matomo/default.nix
@@ -3,16 +3,16 @@
 let
   versions = {
     matomo = {
-      version = "3.13.5";
-      sha256 = "1b9a9jj86bb3f0093k6sz235iivvvqbcvkjqxwn7c9z7qsmpvbxr";
+      version = "3.14.1";
+      sha256 = "0gp6v797118z703nh0p77zvsizvdg0c2jkn26996d4sqw5pa78v3";
     };
 
     matomo-beta = {
-      version = "3.13.5";
+      version = "3.14.1";
       # `beta` examples: "b1", "rc1", null
       # TOOD when updating: use null if stable version is >= latest beta or release candidate
       beta = null;
-      sha256 = "1b9a9jj86bb3f0093k6sz235iivvvqbcvkjqxwn7c9z7qsmpvbxr";
+      sha256 = "0gp6v797118z703nh0p77zvsizvdg0c2jkn26996d4sqw5pa78v3";
     };
   };
   common = pname: { version, sha256, beta ? null }:
diff --git a/nixpkgs/pkgs/servers/web-apps/mediawiki/default.nix b/nixpkgs/pkgs/servers/web-apps/mediawiki/default.nix
index c23fb685c605..b9e0acfedb8f 100644
--- a/nixpkgs/pkgs/servers/web-apps/mediawiki/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/mediawiki/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mediawiki";
-  version = "1.34.1";
+  version = "1.34.2";
 
   src = with stdenv.lib; fetchurl {
     url = "https://releases.wikimedia.org/mediawiki/${versions.majorMinor version}/${pname}-${version}.tar.gz";
-    sha256 = "0jg1ls5xy2bmvvd63lpvnkj53rfmik6sy2px14mphxba3gbcpf5c";
+    sha256 = "1mi46a14b2080x6mh61mb49xq0ky27g0lbm3gqgvkgckc1zmbp0f";
   };
 
   prePatch = ''
diff --git a/nixpkgs/pkgs/servers/web-apps/moodle/default.nix b/nixpkgs/pkgs/servers/web-apps/moodle/default.nix
index 62de7620c5e4..b9f11b5c1798 100644
--- a/nixpkgs/pkgs/servers/web-apps/moodle/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/moodle/default.nix
@@ -1,23 +1,23 @@
-{ stdenv, fetchurl, writeText }:
+{ lib, stdenv, fetchurl, writeText, plugins ? [ ] }:
 
 let
-  version = "3.8.3";
+  version = "3.9.2";
   stableVersion = builtins.substring 0 2 (builtins.replaceStrings ["."] [""] version);
-in
 
-stdenv.mkDerivation rec {
+in stdenv.mkDerivation rec {
   pname = "moodle";
   inherit version;
 
   src = fetchurl {
-    url = "https://download.moodle.org/stable${stableVersion}/${pname}-${version}.tgz";
-    sha256 = "1anjv4gvbb6833j04a1b4aaysnl4h0x96sr1hhm4nm5kq2fimjd1";
+    url =
+      "https://download.moodle.org/stable${stableVersion}/${pname}-${version}.tgz";
+    sha256 = "ygy9xlYs49Ga3u2Q/vqxhnDnqXsrh6YYTAtcsXF8kNo=";
   };
 
   phpConfig = writeText "config.php" ''
-  <?php
-    return require(getenv('MOODLE_CONFIG'));
-  ?>
+    <?php
+      return require(getenv('MOODLE_CONFIG'));
+    ?>
   '';
 
   installPhase = ''
@@ -27,14 +27,37 @@ stdenv.mkDerivation rec {
     cp -r . $out/share/moodle
     cp ${phpConfig} $out/share/moodle/config.php
 
+    ${lib.concatStringsSep "\n" (map (p:
+      let
+        dir = if p.pluginType == "mod" then
+          "mod"
+        else if p.pluginType == "theme" then
+          "theme"
+        else if p.pluginType == "block" then
+          "blocks"
+        else if p.pluginType == "question" then
+          "question/type"
+        else if p.pluginType == "course" then
+          "course/format"
+        else if p.pluginType == "report" then
+          "admin/report"
+        else
+          throw "unknown moodle plugin type";
+        # we have to copy it, because the plugins have refrences to .. inside
+      in ''
+        mkdir -p $out/share/moodle/${dir}/${p.name}
+        cp -r ${p}/* $out/share/moodle/${dir}/${p.name}/
+      '') plugins)}
+
     runHook postInstall
   '';
 
   meta = with stdenv.lib; {
-    description = "Free and open-source learning management system (LMS) written in PHP";
+    description =
+      "Free and open-source learning management system (LMS) written in PHP";
     license = licenses.gpl3Plus;
     homepage = "https://moodle.org/";
-    maintainers = with maintainers; [ aanderse ];
+    maintainers = with maintainers; [ freezeboy ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/servers/web-apps/moodle/moodle-utils.nix b/nixpkgs/pkgs/servers/web-apps/moodle/moodle-utils.nix
new file mode 100644
index 000000000000..168482bffe65
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/moodle/moodle-utils.nix
@@ -0,0 +1,32 @@
+{ stdenv, unzip, ... }:
+
+let
+  buildMoodlePlugin = a@{
+    name,
+    src,
+    pluginType,
+    configurePhase ? ":",
+    buildPhase ? ":",
+    buildInputs ? [ ],
+    ...
+  }:
+  stdenv.mkDerivation (a // {
+    name = name;
+
+    inherit pluginType;
+    inherit configurePhase buildPhase;
+
+    buildInputs = [ unzip ] ++ buildInputs;
+
+    installPhase = ''
+      runHook preInstall
+
+      mkdir -p "$out"
+      mv * $out/
+
+      runHook postInstall
+    '';
+  });
+in {
+  inherit buildMoodlePlugin;
+}
diff --git a/nixpkgs/pkgs/servers/web-apps/rss-bridge/default.nix b/nixpkgs/pkgs/servers/web-apps/rss-bridge/default.nix
new file mode 100644
index 000000000000..432f59564060
--- /dev/null
+++ b/nixpkgs/pkgs/servers/web-apps/rss-bridge/default.nix
@@ -0,0 +1,33 @@
+{ config, lib, pkgs, fetchFromGitHub, stdenv, ... }:
+
+stdenv.mkDerivation rec {
+  pname = "rss-bridge";
+  version = "2020-02-26";
+
+  src = fetchFromGitHub {
+    owner = "RSS-Bridge";
+    repo = "rss-bridge";
+    rev = "${version}";
+    sha256 = "075k4bylx9308d083ry5a9q4629ccnrnndqqdqp1g42rzlqrw79q";
+  };
+
+  patchPhase = ''
+    substituteInPlace lib/rssbridge.php \
+      --replace "define('PATH_CACHE', PATH_ROOT . 'cache/');" "define('PATH_CACHE', getenv('RSSBRIDGE_DATA') . '/cache/');" \
+      --replace "define('FILE_CONFIG', PATH_ROOT . 'config.ini.php');" "define('FILE_CONFIG', getenv('RSSBRIDGE_DATA') . '/config.ini.php');" \
+      --replace "define('WHITELIST', PATH_ROOT . 'whitelist.txt');" "define('WHITELIST', getenv('RSSBRIDGE_DATA') . '/whitelist.txt');"
+  '';
+
+  installPhase = ''
+    mkdir $out/
+    cp -R ./* $out
+  '';
+
+  meta = with lib; {
+    description = "The RSS feed for websites missing it";
+    homepage = "https://github.com/RSS-Bridge/rss-bridge";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ dawidsowa ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/web-apps/searx/default.nix b/nixpkgs/pkgs/servers/web-apps/searx/default.nix
index bcfa8a410219..dc87acddd881 100644
--- a/nixpkgs/pkgs/servers/web-apps/searx/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/searx/default.nix
@@ -1,37 +1,21 @@
-{ lib, python3Packages, fetchFromGitHub }:
+{ lib, python3Packages, fetchFromGitHub, fetchpatch }:
 
 with python3Packages;
 
 buildPythonApplication rec {
   pname = "searx";
-  version = "0.16.0";
+  version = "0.17.0";
 
   # Can not use PyPI because certain test files are missing.
   src = fetchFromGitHub {
     owner = "asciimoo";
     repo = "searx";
     rev = "v${version}";
-    sha256 = "0hfa4nmis98yvghxw866rzjpmhb2ln8l6l8g9yx4m79b2lk76xcs";
+    sha256 = "0pznz3wsaikl8khmzqvj05kzh5y07hjw8gqhy6x0lz1b00cn5af4";
   };
 
   postPatch = ''
-    substituteInPlace requirements.txt \
-      --replace 'certifi==2019.3.9' 'certifi' \
-      --replace 'flask==1.0.2' 'flask' \
-      --replace 'flask-babel==0.12.2' 'flask-babel' \
-      --replace 'jinja2==2.10.1' 'jinja2' \
-      --replace 'lxml==4.3.3' 'lxml' \
-      --replace 'idna==2.8' 'idna' \
-      --replace 'pygments==2.1.3' 'pygments>=2.1,<3.0' \
-      --replace 'pyopenssl==19.0.0' 'pyopenssl' \
-      --replace 'python-dateutil==2.8.0' 'python-dateutil==2.8.*' \
-      --replace 'pyyaml==5.1' 'pyyaml' \
-      --replace 'requests[socks]==2.22.0' 'requests[socks]'
-    substituteInPlace requirements-dev.txt \
-      --replace 'plone.testing==5.0.0' 'plone.testing' \
-      --replace 'pep8==1.7.0' 'pep8==1.7.*' \
-      --replace 'splinter==0.11.0' 'splinter' \
-      --replace 'selenium==3.141.0' 'selenium'
+    sed -i 's/==.*$//' requirements.txt
   '';
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/servers/web-apps/shiori/default.nix b/nixpkgs/pkgs/servers/web-apps/shiori/default.nix
index dbea567b7e1e..45b93bf1ad5f 100644
--- a/nixpkgs/pkgs/servers/web-apps/shiori/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/shiori/default.nix
@@ -6,6 +6,8 @@ buildGoModule rec {
 
   vendorSha256 = "1ik5faysc880kz7nymvbmjj006l1fsqfy76036szwzg314v78643";
 
+  doCheck = false;
+
   src = fetchFromGitHub {
     owner = "go-shiori";
     repo = pname;
@@ -19,4 +21,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ minijackson ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/servers/web-apps/sogo/default.nix b/nixpkgs/pkgs/servers/web-apps/sogo/default.nix
index 3e78b5d9d436..1ec512ba0ca5 100644
--- a/nixpkgs/pkgs/servers/web-apps/sogo/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/sogo/default.nix
@@ -1,24 +1,25 @@
 { gnustep, lib, fetchFromGitHub, fetchpatch, makeWrapper, python2, lndir
-, openssl_1_1, openldap, sope, libmemcached, curl }: with lib; gnustep.stdenv.mkDerivation rec {
+, openssl_1_1, openldap, sope, libmemcached, curl, libsodium, libzip, pkgconfig }:
+with lib; gnustep.stdenv.mkDerivation rec {
   pname = "SOGo";
-  version = "4.3.2";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "inverse-inc";
     repo = pname;
     rev = "SOGo-${version}";
-    sha256 = "1xxad23a8zy6w850x5nrrf54db0x73lc9drmc5kpfk870fk2lmr0";
+    sha256 = "sha256-SEyyHekUCSkb5rOh7Ty8AhtT4S9KicTRbo9iWhijdGE=";
   };
 
   nativeBuildInputs = [ gnustep.make makeWrapper python2 ];
-  buildInputs = [ gnustep.base sope openssl_1_1 libmemcached (curl.override { openssl = openssl_1_1; }) ]
+  buildInputs = [ gnustep.base sope openssl_1_1 libmemcached (curl.override { openssl = openssl_1_1; }) libsodium libzip pkgconfig ]
     ++ optional (openldap != null) openldap;
 
   patches = [
     # TODO: take a closer look at other patches in https://sources.debian.org/patches/sogo/ and https://github.com/Skrupellos/sogo-patches
     (fetchpatch {
-      url = "https://sources.debian.org/data/main/s/sogo/4.3.0-1/debian/patches/0005-Remove-build-date.patch";
-      sha256 = "0lrh3bkfj3r0brahfkyb0g7zx7r2jjd5cxzjl43nqla0fs09wsh8";
+      url = "https://salsa.debian.org/debian/sogo/-/raw/120ac6390602c811908c7fcb212a79acbc7f7f28/debian/patches/0005-Remove-build-date.patch";
+      sha256 = "151i8504kwdlcirgd0pbif7cxnb1q6jsp5j7dbh9p6zw2xgwkp25";
     })
   ];
 
diff --git a/nixpkgs/pkgs/servers/web-apps/wallabag/default.nix b/nixpkgs/pkgs/servers/web-apps/wallabag/default.nix
index e4f1a3009ee1..48afdc5c01da 100644
--- a/nixpkgs/pkgs/servers/web-apps/wallabag/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/wallabag/default.nix
@@ -13,7 +13,15 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" ];
 
-  patches = [ ./wallabag-data.patch ]; # exposes $WALLABAG_DATA
+  patches = [
+    ./wallabag-data.patch # exposes $WALLABAG_DATA
+    (fetchurl {
+      # Fixes "Uncaught RuntimeException: Setting "piwik_enabled" couldn't be found."; https://github.com/wallabag/wallabag/issues/3662
+      # Remove >= 2.4.0
+      url = "https://github.com/wallabag/wallabag/pull/3868.patch";
+      sha256 = "0pfxsv8ncaxkjkybim3v3iswmfv1vbjlzmvj50nn9blvjwc9gxjg";
+    })
+  ];
 
   dontBuild = true;
 
diff --git a/nixpkgs/pkgs/servers/web-apps/wordpress/default.nix b/nixpkgs/pkgs/servers/web-apps/wordpress/default.nix
index ca4b5d832a62..e1a14ca59d4a 100644
--- a/nixpkgs/pkgs/servers/web-apps/wordpress/default.nix
+++ b/nixpkgs/pkgs/servers/web-apps/wordpress/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "wordpress";
-  version = "5.4.1";
+  version = "5.4.2";
 
   src = fetchurl {
     url = "https://wordpress.org/${pname}-${version}.tar.gz";
-    sha256 = "0i9ndfhm9iwilqwbqs3dngmzzjmazw4vwbyccjabs3zmzliis6vv";
+    sha256 = "1pnl11yws2r2d5dfq0z85zcy5ilvm298bfs7h9z1sjakkwkh5sph";
   };
 
   installPhase = ''
@@ -14,6 +14,10 @@ stdenv.mkDerivation rec {
     cp -r . $out/share/wordpress
   '';
 
+  passthru.tests = {
+    inherit (nixosTests) wordpress;
+  };
+
   meta = with stdenv.lib; {
     homepage = "https://wordpress.org";
     description = "WordPress is open source software you can use to create a beautiful website, blog, or app";
diff --git a/nixpkgs/pkgs/servers/webmetro/default.nix b/nixpkgs/pkgs/servers/webmetro/default.nix
index 7d0079fca203..4be6ef682747 100644
--- a/nixpkgs/pkgs/servers/webmetro/default.nix
+++ b/nixpkgs/pkgs/servers/webmetro/default.nix
@@ -25,6 +25,5 @@ rustPlatform.buildRustPackage rec {
     '';
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ leenaars ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl b/nixpkgs/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
index 21e61bc54d0e..8bed3fc6d09c 100755
--- a/nixpkgs/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
+++ b/nixpkgs/pkgs/servers/x11/xorg/generate-expr-from-tarballs.pl
@@ -307,7 +307,7 @@ foreach my $pkg (sort (keys %pkgURLs)) {
     name = "$pkgNames{$pkg}";
     builder = ./builder.sh;
     src = fetchurl {
-      url = $pkgURLs{$pkg};
+      url = "$pkgURLs{$pkg}";
       sha256 = "$pkgHashes{$pkg}";
     };
     hardeningDisable = [ "bindnow" "relro" ];
diff --git a/nixpkgs/pkgs/servers/x11/xorg/overrides.nix b/nixpkgs/pkgs/servers/x11/xorg/overrides.nix
index c6fe55ad9f75..092764a3d9d8 100644
--- a/nixpkgs/pkgs/servers/x11/xorg/overrides.nix
+++ b/nixpkgs/pkgs/servers/x11/xorg/overrides.nix
@@ -105,7 +105,7 @@ self: super:
         rm -rf $out/share/doc
       '';
     CPP = stdenv.lib.optionalString stdenv.isDarwin "clang -E -";
-    propagatedBuildInputs = [ self.xorgproto ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.xorgproto ];
   });
 
   libAppleWM = super.libAppleWM.overrideAttrs (attrs: {
@@ -117,7 +117,7 @@ self: super:
 
   libXau = super.libXau.overrideAttrs (attrs: {
     outputs = [ "out" "dev" ];
-    propagatedBuildInputs = [ self.xorgproto ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.xorgproto ];
   });
 
   libXdmcp = super.libXdmcp.overrideAttrs (attrs: {
@@ -126,7 +126,7 @@ self: super:
 
   libXfont = super.libXfont.overrideAttrs (attrs: {
     outputs = [ "out" "dev" ];
-    propagatedBuildInputs = [ freetype ]; # propagate link reqs. like bzip2
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ freetype ]; # propagate link reqs. like bzip2
     # prevents "misaligned_stack_error_entering_dyld_stub_binder"
     configureFlags = lib.optional isDarwin "CFLAGS=-O0";
   });
@@ -136,6 +136,22 @@ self: super:
     configureFlags = attrs.configureFlags or []
       ++ malloc0ReturnsNullCrossFlag;
   });
+  libXxf86dga = super.libXxf86dga.overrideAttrs (attrs: {
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+  });
+  libXxf86misc = super.libXxf86misc.overrideAttrs (attrs: {
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+  });
+  libdmx = super.libdmx.overrideAttrs (attrs: {
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+  });
+  xdpyinfo = super.xdpyinfo.overrideAttrs (attrs: {
+    configureFlags = attrs.configureFlags or []
+      ++ malloc0ReturnsNullCrossFlag;
+  });
 
   # Propagate some build inputs because of header file dependencies.
   # Note: most of these are in Requires.private, so maybe builder.sh
@@ -146,7 +162,7 @@ self: super:
     '';
     configureFlags = attrs.configureFlags or []
       ++ malloc0ReturnsNullCrossFlag;
-    propagatedBuildInputs = [ self.libSM ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libSM ];
     depsBuildBuild = [ buildPackages.stdenv.cc ];
     CPP = if stdenv.isDarwin then "clang -E -" else "${stdenv.cc.targetPrefix}cc -E -";
     outputs = [ "out" "dev" "devdoc" ];
@@ -166,12 +182,12 @@ self: super:
 
   libXcomposite = super.libXcomposite.overrideAttrs (attrs: {
     outputs = [ "out" "dev" ];
-    propagatedBuildInputs = [ self.libXfixes ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libXfixes ];
   });
 
   libXaw = super.libXaw.overrideAttrs (attrs: {
     outputs = [ "out" "dev" "devdoc" ];
-    propagatedBuildInputs = [ self.libXmu ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libXmu ];
   });
 
   libXcursor = super.libXcursor.overrideAttrs (attrs: {
@@ -184,7 +200,7 @@ self: super:
 
   libXft = super.libXft.overrideAttrs (attrs: {
     outputs = [ "out" "dev" ];
-    propagatedBuildInputs = [ self.libXrender freetype fontconfig ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libXrender freetype fontconfig ];
     configureFlags = attrs.configureFlags or []
       ++ malloc0ReturnsNullCrossFlag;
 
@@ -208,7 +224,7 @@ self: super:
 
   libXext = super.libXext.overrideAttrs (attrs: {
     outputs = [ "out" "dev" "man" "doc" ];
-    propagatedBuildInputs = [ self.xorgproto self.libXau ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.xorgproto self.libXau ];
     configureFlags = attrs.configureFlags or []
       ++ malloc0ReturnsNullCrossFlag;
   });
@@ -219,7 +235,7 @@ self: super:
 
   libXi = super.libXi.overrideAttrs (attrs: {
     outputs = [ "out" "dev" "man" "doc" ];
-    propagatedBuildInputs = [ self.libXfixes ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libXfixes ];
     configureFlags = stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform)
       "xorg_cv_malloc0_returns_null=no";
   });
@@ -239,19 +255,19 @@ self: super:
     outputs = [ "out" "dev" ];
     configureFlags = attrs.configureFlags or []
       ++ malloc0ReturnsNullCrossFlag;
-    propagatedBuildInputs = [self.libXrender];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libXrender ];
   });
 
   libSM = super.libSM.overrideAttrs (attrs: {
     outputs = [ "out" "dev" "doc" ];
-    propagatedBuildInputs = [ self.libICE ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.libICE ];
   });
 
   libXrender = super.libXrender.overrideAttrs (attrs: {
     outputs = [ "out" "dev" "doc" ];
     configureFlags = attrs.configureFlags or []
       ++ malloc0ReturnsNullCrossFlag;
-    propagatedBuildInputs = [ self.xorgproto ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.xorgproto ];
   });
 
   libXres = super.libXres.overrideAttrs (attrs: {
@@ -319,7 +335,7 @@ self: super:
   });
 
   utilmacros = super.utilmacros.overrideAttrs (attrs: { # not needed for releases, we propagate the needed tools
-    propagatedBuildInputs = [ automake autoconf libtool ];
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ automake autoconf libtool ];
   });
 
   x11perf = super.x11perf.overrideAttrs (attrs: {
@@ -558,6 +574,7 @@ self: super:
 
   xorgproto = super.xorgproto.overrideAttrs (attrs: {
     buildInputs = [];
+    propagatedBuildInputs = [];
     nativeBuildInputs = attrs.nativeBuildInputs ++ [ meson ninja ];
     # adds support for printproto needed for libXp
     mesonFlags = [ "-Dlegacy=true" ];
@@ -626,7 +643,7 @@ self: super:
       then {
         outputs = [ "out" "dev" ];
         buildInputs = commonBuildInputs ++ [ libdrm mesa ];
-        propagatedBuildInputs = [ libpciaccess epoxy ] ++ commonPropagatedBuildInputs ++ lib.optionals stdenv.isLinux [
+        propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ libpciaccess epoxy ] ++ commonPropagatedBuildInputs ++ lib.optionals stdenv.isLinux [
           udev
         ];
         prePatch = stdenv.lib.optionalString stdenv.hostPlatform.isMusl ''
@@ -755,7 +772,7 @@ self: super:
       "--with-launchdaemons-dir=\${out}/LaunchDaemons"
       "--with-launchagents-dir=\${out}/LaunchAgents"
     ];
-    propagatedBuildInputs = [ self.xauth ]
+    propagatedBuildInputs = attrs.propagatedBuildInputs or [] ++ [ self.xauth ]
                          ++ lib.optionals isDarwin [ self.libX11 self.xorgproto ];
     prePatch = ''
       sed -i 's|^defaultserverargs="|&-logfile \"$HOME/.xorg.log\"|p' startx.cpp
diff --git a/nixpkgs/pkgs/servers/xandikos/default.nix b/nixpkgs/pkgs/servers/xandikos/default.nix
index 27fb93a88035..6bd3ebc4232c 100644
--- a/nixpkgs/pkgs/servers/xandikos/default.nix
+++ b/nixpkgs/pkgs/servers/xandikos/default.nix
@@ -5,27 +5,29 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "xandikos";
-  version = "0.1.0";
+  version = "0.2.3";
 
   src = fetchFromGitHub {
     owner = "jelmer";
     repo = "xandikos";
     rev = "v${version}";
-    sha256 = "12r8fciid2qpqf054584ywwh49yddyhhpkpcm6jihzyr5y2r4kn1";
+    sha256 = "1x0bylmdizirvlcn6ryd43lffpmlq0cklj3jz956scmxgq4p6wby";
   };
 
   propagatedBuildInputs = with python3Packages; [
+    aiohttp
     dulwich
     defusedxml
     icalendar
     jinja2
+    multidict
+    prometheus_client
   ];
 
   meta = with stdenv.lib; {
     description = "Lightweight CalDAV/CardDAV server";
     homepage = "https://github.com/jelmer/xandikos";
     license = licenses.gpl3Plus;
-    maintainers = [ maintainers."0x4A6F" ];
+    maintainers = with maintainers; [ _0x4A6F ];
   };
 }
-
diff --git a/nixpkgs/pkgs/servers/xmpp/biboumi/default.nix b/nixpkgs/pkgs/servers/xmpp/biboumi/default.nix
index e1cec51e4ab0..257d94f4a733 100644
--- a/nixpkgs/pkgs/servers/xmpp/biboumi/default.nix
+++ b/nixpkgs/pkgs/servers/xmpp/biboumi/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "biboumi";
-  version = "8.3";
+  version = "8.5";
 
   src = fetchurl {
     url = "https://git.louiz.org/biboumi/snapshot/biboumi-${version}.tar.xz";
-    sha256 = "0896f52nh8vd0idkdznv3gj6wqh1nqhjbwv0m560f0h62f01vm7k";
+    sha256 = "0rn9p99iqdyvxjzjq9w0ra7pkk0mngjy65nlg3hqfdw8kq9mv5qf";
   };
 
   louiz_catch = fetchgit {
@@ -24,10 +24,7 @@ stdenv.mkDerivation rec {
 
   preConfigure = ''
     substituteInPlace CMakeLists.txt --replace /etc/biboumi $out/etc/biboumi
-    substituteInPlace unit/biboumi.service.cmake --replace /bin/kill ${coreutils}/bin/kill
     cp $louiz_catch/single_include/catch.hpp tests/
-    # echo "policy_directory=$out/etc/biboumi" >> conf/biboumi.cfg
-    # TODO include conf/biboumi.cfg as example somewhere
   '';
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/servers/xmpp/prosody/default.nix b/nixpkgs/pkgs/servers/xmpp/prosody/default.nix
index 05e276f0b989..54c4a4c52161 100644
--- a/nixpkgs/pkgs/servers/xmpp/prosody/default.nix
+++ b/nixpkgs/pkgs/servers/xmpp/prosody/default.nix
@@ -15,7 +15,7 @@ with stdenv.lib;
 
 
 stdenv.mkDerivation rec {
-  version = "0.11.5"; # also update communityModules
+  version = "0.11.6"; # also update communityModules
   pname = "prosody";
   # The following community modules are necessary for the nixos module
   # prosody module to comply with XEP-0423 and provide a working
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   ];
   src = fetchurl {
     url = "https://prosody.im/downloads/source/${pname}-${version}.tar.gz";
-    sha256 = "12s0hn6hvjbi61cdw3165l6iw0878971dmlvfg663byjsmjvvy2m";
+    sha256 = "0m8p2kwiy4l87ifpygricpyixi1vpx6j1jb6ki1zi4az3iixp8fd";
   };
 
   # A note to all those merging automated updates: Please also update this
@@ -37,8 +37,8 @@ stdenv.mkDerivation rec {
   # version.
   communityModules = fetchhg {
     url = "https://hg.prosody.im/prosody-modules";
-    rev = "acd231e2b46f";
-    sha256 = "1b33lsxrrrvarknqz9xs7j7f19bzxxymmfdhch7k70x3yyiwmfsy";
+    rev = "e77122025080";
+    sha256 = "1pjax8lzgcwcn3mq5q4kbwfyyzaifqcc3a0s4rl9gib5rhwddybh";
   };
 
   buildInputs = [
@@ -85,6 +85,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     homepage = "https://prosody.im";
     platforms = platforms.linux;
-    maintainers = with maintainers; [ fpletz globin ];
+    maintainers = with maintainers; [ fpletz globin ninjatrappeur ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/zigbee2mqtt/default.nix b/nixpkgs/pkgs/servers/zigbee2mqtt/default.nix
new file mode 100644
index 000000000000..235f0209674c
--- /dev/null
+++ b/nixpkgs/pkgs/servers/zigbee2mqtt/default.nix
@@ -0,0 +1,35 @@
+{ pkgs, stdenv, system, dataDir ? "/opt/zigbee2mqtt/data", nixosTests }:
+let
+  package = (import ./node.nix { inherit pkgs system; }).package;
+in
+package.override rec {
+  version = "1.14.4";
+  reconstructLock = true;
+
+  postInstall = ''
+    sed -i '1s;^;#!/usr/bin/env node\n;' $out/lib/node_modules/zigbee2mqtt/index.js
+    chmod +x $out/lib/node_modules/zigbee2mqtt/index.js
+    mkdir $out/bin
+    ln -s $out/lib/node_modules/zigbee2mqtt/index.js $out/bin/zigbee2mqtt
+
+    rm -rf $out/lib/node_modules/zigbee2mqtt/data
+    ln -s ${dataDir} $out/lib/node_modules/zigbee2mqtt/data
+  '';
+
+  src = pkgs.fetchFromGitHub {
+    owner = "Koenkk";
+    repo = "zigbee2mqtt";
+    rev = version;
+    sha256 = "1gyl4f7wh7796w4789pi0ix5y30677784miwylr8wrfqgb1hmddq";
+  };
+
+  passthru.tests.zigbee2mqtt = nixosTests.zigbee2mqtt;
+
+  meta = with pkgs.stdenv.lib; {
+    description = "Zigbee to MQTT bridge using zigbee-shepherd";
+    license = licenses.gpl3;
+    homepage = https://github.com/Koenkk/zigbee2mqtt;
+    maintainers = with maintainers; [ sweber ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/zigbee2mqtt/node-packages.nix b/nixpkgs/pkgs/servers/zigbee2mqtt/node-packages.nix
new file mode 100644
index 000000000000..1605e25da652
--- /dev/null
+++ b/nixpkgs/pkgs/servers/zigbee2mqtt/node-packages.nix
@@ -0,0 +1,9625 @@
+# This file has been generated by node2nix 1.8.0. Do not edit!
+
+{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}:
+
+let
+  sources = {
+    "@babel/cli-7.10.5" = {
+      name = "_at_babel_slash_cli";
+      packageName = "@babel/cli";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/cli/-/cli-7.10.5.tgz";
+        sha512 = "j9H9qSf3kLdM0Ao3aGPbGZ73mEA9XazuupcS6cDGWuiyAcANoguhP0r2Lx32H5JGw4sSSoHG3x/mxVnHgvOoyA==";
+      };
+    };
+    "@babel/code-frame-7.10.4" = {
+      name = "_at_babel_slash_code-frame";
+      packageName = "@babel/code-frame";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz";
+        sha512 = "vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==";
+      };
+    };
+    "@babel/compat-data-7.11.0" = {
+      name = "_at_babel_slash_compat-data";
+      packageName = "@babel/compat-data";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.11.0.tgz";
+        sha512 = "TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ==";
+      };
+    };
+    "@babel/core-7.11.4" = {
+      name = "_at_babel_slash_core";
+      packageName = "@babel/core";
+      version = "7.11.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.11.4.tgz";
+        sha512 = "5deljj5HlqRXN+5oJTY7Zs37iH3z3b++KjiKtIsJy1NrjOOVSEaJHEetLBhyu0aQOSNNZ/0IuEAan9GzRuDXHg==";
+      };
+    };
+    "@babel/generator-7.11.4" = {
+      name = "_at_babel_slash_generator";
+      packageName = "@babel/generator";
+      version = "7.11.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/generator/-/generator-7.11.4.tgz";
+        sha512 = "Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g==";
+      };
+    };
+    "@babel/helper-annotate-as-pure-7.10.4" = {
+      name = "_at_babel_slash_helper-annotate-as-pure";
+      packageName = "@babel/helper-annotate-as-pure";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz";
+        sha512 = "XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==";
+      };
+    };
+    "@babel/helper-builder-binary-assignment-operator-visitor-7.10.4" = {
+      name = "_at_babel_slash_helper-builder-binary-assignment-operator-visitor";
+      packageName = "@babel/helper-builder-binary-assignment-operator-visitor";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz";
+        sha512 = "L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==";
+      };
+    };
+    "@babel/helper-compilation-targets-7.10.4" = {
+      name = "_at_babel_slash_helper-compilation-targets";
+      packageName = "@babel/helper-compilation-targets";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz";
+        sha512 = "a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ==";
+      };
+    };
+    "@babel/helper-create-class-features-plugin-7.10.5" = {
+      name = "_at_babel_slash_helper-create-class-features-plugin";
+      packageName = "@babel/helper-create-class-features-plugin";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.5.tgz";
+        sha512 = "0nkdeijB7VlZoLT3r/mY3bUkw3T8WG/hNw+FATs/6+pG2039IJWjTYL0VTISqsNHMUTEnwbVnc89WIJX9Qed0A==";
+      };
+    };
+    "@babel/helper-create-regexp-features-plugin-7.10.4" = {
+      name = "_at_babel_slash_helper-create-regexp-features-plugin";
+      packageName = "@babel/helper-create-regexp-features-plugin";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz";
+        sha512 = "2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g==";
+      };
+    };
+    "@babel/helper-define-map-7.10.5" = {
+      name = "_at_babel_slash_helper-define-map";
+      packageName = "@babel/helper-define-map";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz";
+        sha512 = "fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==";
+      };
+    };
+    "@babel/helper-explode-assignable-expression-7.11.4" = {
+      name = "_at_babel_slash_helper-explode-assignable-expression";
+      packageName = "@babel/helper-explode-assignable-expression";
+      version = "7.11.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.11.4.tgz";
+        sha512 = "ux9hm3zR4WV1Y3xXxXkdG/0gxF9nvI0YVmKVhvK9AfMoaQkemL3sJpXw+Xbz65azo8qJiEz2XVDUpK3KYhH3ZQ==";
+      };
+    };
+    "@babel/helper-function-name-7.10.4" = {
+      name = "_at_babel_slash_helper-function-name";
+      packageName = "@babel/helper-function-name";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
+        sha512 = "YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ==";
+      };
+    };
+    "@babel/helper-get-function-arity-7.10.4" = {
+      name = "_at_babel_slash_helper-get-function-arity";
+      packageName = "@babel/helper-get-function-arity";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
+        sha512 = "EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A==";
+      };
+    };
+    "@babel/helper-hoist-variables-7.10.4" = {
+      name = "_at_babel_slash_helper-hoist-variables";
+      packageName = "@babel/helper-hoist-variables";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz";
+        sha512 = "wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==";
+      };
+    };
+    "@babel/helper-member-expression-to-functions-7.11.0" = {
+      name = "_at_babel_slash_helper-member-expression-to-functions";
+      packageName = "@babel/helper-member-expression-to-functions";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.11.0.tgz";
+        sha512 = "JbFlKHFntRV5qKw3YC0CvQnDZ4XMwgzzBbld7Ly4Mj4cbFy3KywcR8NtNctRToMWJOVvLINJv525Gd6wwVEx/Q==";
+      };
+    };
+    "@babel/helper-module-imports-7.10.4" = {
+      name = "_at_babel_slash_helper-module-imports";
+      packageName = "@babel/helper-module-imports";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz";
+        sha512 = "nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw==";
+      };
+    };
+    "@babel/helper-module-transforms-7.11.0" = {
+      name = "_at_babel_slash_helper-module-transforms";
+      packageName = "@babel/helper-module-transforms";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz";
+        sha512 = "02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg==";
+      };
+    };
+    "@babel/helper-optimise-call-expression-7.10.4" = {
+      name = "_at_babel_slash_helper-optimise-call-expression";
+      packageName = "@babel/helper-optimise-call-expression";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz";
+        sha512 = "n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg==";
+      };
+    };
+    "@babel/helper-plugin-utils-7.10.4" = {
+      name = "_at_babel_slash_helper-plugin-utils";
+      packageName = "@babel/helper-plugin-utils";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz";
+        sha512 = "O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==";
+      };
+    };
+    "@babel/helper-regex-7.10.5" = {
+      name = "_at_babel_slash_helper-regex";
+      packageName = "@babel/helper-regex";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz";
+        sha512 = "68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==";
+      };
+    };
+    "@babel/helper-remap-async-to-generator-7.11.4" = {
+      name = "_at_babel_slash_helper-remap-async-to-generator";
+      packageName = "@babel/helper-remap-async-to-generator";
+      version = "7.11.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.11.4.tgz";
+        sha512 = "tR5vJ/vBa9wFy3m5LLv2faapJLnDFxNWff2SAYkSE4rLUdbp7CdObYFgI7wK4T/Mj4UzpjPwzR8Pzmr5m7MHGA==";
+      };
+    };
+    "@babel/helper-replace-supers-7.10.4" = {
+      name = "_at_babel_slash_helper-replace-supers";
+      packageName = "@babel/helper-replace-supers";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz";
+        sha512 = "sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A==";
+      };
+    };
+    "@babel/helper-simple-access-7.10.4" = {
+      name = "_at_babel_slash_helper-simple-access";
+      packageName = "@babel/helper-simple-access";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz";
+        sha512 = "0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw==";
+      };
+    };
+    "@babel/helper-skip-transparent-expression-wrappers-7.11.0" = {
+      name = "_at_babel_slash_helper-skip-transparent-expression-wrappers";
+      packageName = "@babel/helper-skip-transparent-expression-wrappers";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz";
+        sha512 = "0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q==";
+      };
+    };
+    "@babel/helper-split-export-declaration-7.11.0" = {
+      name = "_at_babel_slash_helper-split-export-declaration";
+      packageName = "@babel/helper-split-export-declaration";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz";
+        sha512 = "74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg==";
+      };
+    };
+    "@babel/helper-validator-identifier-7.10.4" = {
+      name = "_at_babel_slash_helper-validator-identifier";
+      packageName = "@babel/helper-validator-identifier";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
+        sha512 = "3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==";
+      };
+    };
+    "@babel/helper-wrap-function-7.10.4" = {
+      name = "_at_babel_slash_helper-wrap-function";
+      packageName = "@babel/helper-wrap-function";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz";
+        sha512 = "6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug==";
+      };
+    };
+    "@babel/helpers-7.10.4" = {
+      name = "_at_babel_slash_helpers";
+      packageName = "@babel/helpers";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/helpers/-/helpers-7.10.4.tgz";
+        sha512 = "L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA==";
+      };
+    };
+    "@babel/highlight-7.10.4" = {
+      name = "_at_babel_slash_highlight";
+      packageName = "@babel/highlight";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz";
+        sha512 = "i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==";
+      };
+    };
+    "@babel/parser-7.11.4" = {
+      name = "_at_babel_slash_parser";
+      packageName = "@babel/parser";
+      version = "7.11.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.11.4.tgz";
+        sha512 = "MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA==";
+      };
+    };
+    "@babel/plugin-proposal-async-generator-functions-7.10.5" = {
+      name = "_at_babel_slash_plugin-proposal-async-generator-functions";
+      packageName = "@babel/plugin-proposal-async-generator-functions";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz";
+        sha512 = "cNMCVezQbrRGvXJwm9fu/1sJj9bHdGAgKodZdLqOQIpfoH3raqmRPBM17+lh7CzhiKRRBrGtZL9WcjxSoGYUSg==";
+      };
+    };
+    "@babel/plugin-proposal-class-properties-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-class-properties";
+      packageName = "@babel/plugin-proposal-class-properties";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz";
+        sha512 = "vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg==";
+      };
+    };
+    "@babel/plugin-proposal-dynamic-import-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-dynamic-import";
+      packageName = "@babel/plugin-proposal-dynamic-import";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz";
+        sha512 = "up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ==";
+      };
+    };
+    "@babel/plugin-proposal-export-namespace-from-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-export-namespace-from";
+      packageName = "@babel/plugin-proposal-export-namespace-from";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz";
+        sha512 = "aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg==";
+      };
+    };
+    "@babel/plugin-proposal-json-strings-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-json-strings";
+      packageName = "@babel/plugin-proposal-json-strings";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz";
+        sha512 = "fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw==";
+      };
+    };
+    "@babel/plugin-proposal-logical-assignment-operators-7.11.0" = {
+      name = "_at_babel_slash_plugin-proposal-logical-assignment-operators";
+      packageName = "@babel/plugin-proposal-logical-assignment-operators";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz";
+        sha512 = "/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q==";
+      };
+    };
+    "@babel/plugin-proposal-nullish-coalescing-operator-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-nullish-coalescing-operator";
+      packageName = "@babel/plugin-proposal-nullish-coalescing-operator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz";
+        sha512 = "wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw==";
+      };
+    };
+    "@babel/plugin-proposal-numeric-separator-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-numeric-separator";
+      packageName = "@babel/plugin-proposal-numeric-separator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz";
+        sha512 = "73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA==";
+      };
+    };
+    "@babel/plugin-proposal-object-rest-spread-7.11.0" = {
+      name = "_at_babel_slash_plugin-proposal-object-rest-spread";
+      packageName = "@babel/plugin-proposal-object-rest-spread";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz";
+        sha512 = "wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA==";
+      };
+    };
+    "@babel/plugin-proposal-optional-catch-binding-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-optional-catch-binding";
+      packageName = "@babel/plugin-proposal-optional-catch-binding";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz";
+        sha512 = "LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g==";
+      };
+    };
+    "@babel/plugin-proposal-optional-chaining-7.11.0" = {
+      name = "_at_babel_slash_plugin-proposal-optional-chaining";
+      packageName = "@babel/plugin-proposal-optional-chaining";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz";
+        sha512 = "v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA==";
+      };
+    };
+    "@babel/plugin-proposal-private-methods-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-private-methods";
+      packageName = "@babel/plugin-proposal-private-methods";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz";
+        sha512 = "wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw==";
+      };
+    };
+    "@babel/plugin-proposal-unicode-property-regex-7.10.4" = {
+      name = "_at_babel_slash_plugin-proposal-unicode-property-regex";
+      packageName = "@babel/plugin-proposal-unicode-property-regex";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz";
+        sha512 = "H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA==";
+      };
+    };
+    "@babel/plugin-syntax-async-generators-7.8.4" = {
+      name = "_at_babel_slash_plugin-syntax-async-generators";
+      packageName = "@babel/plugin-syntax-async-generators";
+      version = "7.8.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz";
+        sha512 = "tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==";
+      };
+    };
+    "@babel/plugin-syntax-bigint-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-bigint";
+      packageName = "@babel/plugin-syntax-bigint";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz";
+        sha512 = "wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==";
+      };
+    };
+    "@babel/plugin-syntax-class-properties-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-class-properties";
+      packageName = "@babel/plugin-syntax-class-properties";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz";
+        sha512 = "GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA==";
+      };
+    };
+    "@babel/plugin-syntax-dynamic-import-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-dynamic-import";
+      packageName = "@babel/plugin-syntax-dynamic-import";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz";
+        sha512 = "5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==";
+      };
+    };
+    "@babel/plugin-syntax-export-namespace-from-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-export-namespace-from";
+      packageName = "@babel/plugin-syntax-export-namespace-from";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz";
+        sha512 = "MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==";
+      };
+    };
+    "@babel/plugin-syntax-import-meta-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-import-meta";
+      packageName = "@babel/plugin-syntax-import-meta";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz";
+        sha512 = "Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==";
+      };
+    };
+    "@babel/plugin-syntax-json-strings-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-json-strings";
+      packageName = "@babel/plugin-syntax-json-strings";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz";
+        sha512 = "lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==";
+      };
+    };
+    "@babel/plugin-syntax-logical-assignment-operators-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-logical-assignment-operators";
+      packageName = "@babel/plugin-syntax-logical-assignment-operators";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz";
+        sha512 = "d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==";
+      };
+    };
+    "@babel/plugin-syntax-nullish-coalescing-operator-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-nullish-coalescing-operator";
+      packageName = "@babel/plugin-syntax-nullish-coalescing-operator";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz";
+        sha512 = "aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==";
+      };
+    };
+    "@babel/plugin-syntax-numeric-separator-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-numeric-separator";
+      packageName = "@babel/plugin-syntax-numeric-separator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz";
+        sha512 = "9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==";
+      };
+    };
+    "@babel/plugin-syntax-object-rest-spread-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-object-rest-spread";
+      packageName = "@babel/plugin-syntax-object-rest-spread";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz";
+        sha512 = "XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==";
+      };
+    };
+    "@babel/plugin-syntax-optional-catch-binding-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-optional-catch-binding";
+      packageName = "@babel/plugin-syntax-optional-catch-binding";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz";
+        sha512 = "6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==";
+      };
+    };
+    "@babel/plugin-syntax-optional-chaining-7.8.3" = {
+      name = "_at_babel_slash_plugin-syntax-optional-chaining";
+      packageName = "@babel/plugin-syntax-optional-chaining";
+      version = "7.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz";
+        sha512 = "KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==";
+      };
+    };
+    "@babel/plugin-syntax-top-level-await-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-top-level-await";
+      packageName = "@babel/plugin-syntax-top-level-await";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz";
+        sha512 = "ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ==";
+      };
+    };
+    "@babel/plugin-syntax-typescript-7.10.4" = {
+      name = "_at_babel_slash_plugin-syntax-typescript";
+      packageName = "@babel/plugin-syntax-typescript";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.10.4.tgz";
+        sha512 = "oSAEz1YkBCAKr5Yiq8/BNtvSAPwkp/IyUnwZogd8p+F0RuYQQrLeRUzIQhueQTTBy/F+a40uS7OFKxnkRvmvFQ==";
+      };
+    };
+    "@babel/plugin-transform-arrow-functions-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-arrow-functions";
+      packageName = "@babel/plugin-transform-arrow-functions";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz";
+        sha512 = "9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA==";
+      };
+    };
+    "@babel/plugin-transform-async-to-generator-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-async-to-generator";
+      packageName = "@babel/plugin-transform-async-to-generator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz";
+        sha512 = "F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ==";
+      };
+    };
+    "@babel/plugin-transform-block-scoped-functions-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-block-scoped-functions";
+      packageName = "@babel/plugin-transform-block-scoped-functions";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz";
+        sha512 = "WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA==";
+      };
+    };
+    "@babel/plugin-transform-block-scoping-7.11.1" = {
+      name = "_at_babel_slash_plugin-transform-block-scoping";
+      packageName = "@babel/plugin-transform-block-scoping";
+      version = "7.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.11.1.tgz";
+        sha512 = "00dYeDE0EVEHuuM+26+0w/SCL0BH2Qy7LwHuI4Hi4MH5gkC8/AqMN5uWFJIsoXZrAphiMm1iXzBw6L2T+eA0ew==";
+      };
+    };
+    "@babel/plugin-transform-classes-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-classes";
+      packageName = "@babel/plugin-transform-classes";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz";
+        sha512 = "2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA==";
+      };
+    };
+    "@babel/plugin-transform-computed-properties-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-computed-properties";
+      packageName = "@babel/plugin-transform-computed-properties";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz";
+        sha512 = "JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw==";
+      };
+    };
+    "@babel/plugin-transform-destructuring-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-destructuring";
+      packageName = "@babel/plugin-transform-destructuring";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz";
+        sha512 = "+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA==";
+      };
+    };
+    "@babel/plugin-transform-dotall-regex-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-dotall-regex";
+      packageName = "@babel/plugin-transform-dotall-regex";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz";
+        sha512 = "ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA==";
+      };
+    };
+    "@babel/plugin-transform-duplicate-keys-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-duplicate-keys";
+      packageName = "@babel/plugin-transform-duplicate-keys";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz";
+        sha512 = "GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA==";
+      };
+    };
+    "@babel/plugin-transform-exponentiation-operator-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-exponentiation-operator";
+      packageName = "@babel/plugin-transform-exponentiation-operator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz";
+        sha512 = "S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw==";
+      };
+    };
+    "@babel/plugin-transform-for-of-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-for-of";
+      packageName = "@babel/plugin-transform-for-of";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz";
+        sha512 = "ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ==";
+      };
+    };
+    "@babel/plugin-transform-function-name-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-function-name";
+      packageName = "@babel/plugin-transform-function-name";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz";
+        sha512 = "OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg==";
+      };
+    };
+    "@babel/plugin-transform-literals-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-literals";
+      packageName = "@babel/plugin-transform-literals";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz";
+        sha512 = "Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ==";
+      };
+    };
+    "@babel/plugin-transform-member-expression-literals-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-member-expression-literals";
+      packageName = "@babel/plugin-transform-member-expression-literals";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz";
+        sha512 = "0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw==";
+      };
+    };
+    "@babel/plugin-transform-modules-amd-7.10.5" = {
+      name = "_at_babel_slash_plugin-transform-modules-amd";
+      packageName = "@babel/plugin-transform-modules-amd";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.5.tgz";
+        sha512 = "elm5uruNio7CTLFItVC/rIzKLfQ17+fX7EVz5W0TMgIHFo1zY0Ozzx+lgwhL4plzl8OzVn6Qasx5DeEFyoNiRw==";
+      };
+    };
+    "@babel/plugin-transform-modules-commonjs-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-modules-commonjs";
+      packageName = "@babel/plugin-transform-modules-commonjs";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz";
+        sha512 = "Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w==";
+      };
+    };
+    "@babel/plugin-transform-modules-systemjs-7.10.5" = {
+      name = "_at_babel_slash_plugin-transform-modules-systemjs";
+      packageName = "@babel/plugin-transform-modules-systemjs";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.5.tgz";
+        sha512 = "f4RLO/OL14/FP1AEbcsWMzpbUz6tssRaeQg11RH1BP/XnPpRoVwgeYViMFacnkaw4k4wjRSjn3ip1Uw9TaXuMw==";
+      };
+    };
+    "@babel/plugin-transform-modules-umd-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-modules-umd";
+      packageName = "@babel/plugin-transform-modules-umd";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz";
+        sha512 = "mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA==";
+      };
+    };
+    "@babel/plugin-transform-named-capturing-groups-regex-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-named-capturing-groups-regex";
+      packageName = "@babel/plugin-transform-named-capturing-groups-regex";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz";
+        sha512 = "V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA==";
+      };
+    };
+    "@babel/plugin-transform-new-target-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-new-target";
+      packageName = "@babel/plugin-transform-new-target";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz";
+        sha512 = "YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw==";
+      };
+    };
+    "@babel/plugin-transform-object-super-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-object-super";
+      packageName = "@babel/plugin-transform-object-super";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz";
+        sha512 = "5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ==";
+      };
+    };
+    "@babel/plugin-transform-parameters-7.10.5" = {
+      name = "_at_babel_slash_plugin-transform-parameters";
+      packageName = "@babel/plugin-transform-parameters";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.5.tgz";
+        sha512 = "xPHwUj5RdFV8l1wuYiu5S9fqWGM2DrYc24TMvUiRrPVm+SM3XeqU9BcokQX/kEUe+p2RBwy+yoiR1w/Blq6ubw==";
+      };
+    };
+    "@babel/plugin-transform-property-literals-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-property-literals";
+      packageName = "@babel/plugin-transform-property-literals";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz";
+        sha512 = "ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g==";
+      };
+    };
+    "@babel/plugin-transform-regenerator-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-regenerator";
+      packageName = "@babel/plugin-transform-regenerator";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz";
+        sha512 = "3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw==";
+      };
+    };
+    "@babel/plugin-transform-reserved-words-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-reserved-words";
+      packageName = "@babel/plugin-transform-reserved-words";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz";
+        sha512 = "hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ==";
+      };
+    };
+    "@babel/plugin-transform-shorthand-properties-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-shorthand-properties";
+      packageName = "@babel/plugin-transform-shorthand-properties";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz";
+        sha512 = "AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q==";
+      };
+    };
+    "@babel/plugin-transform-spread-7.11.0" = {
+      name = "_at_babel_slash_plugin-transform-spread";
+      packageName = "@babel/plugin-transform-spread";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz";
+        sha512 = "UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw==";
+      };
+    };
+    "@babel/plugin-transform-sticky-regex-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-sticky-regex";
+      packageName = "@babel/plugin-transform-sticky-regex";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz";
+        sha512 = "Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ==";
+      };
+    };
+    "@babel/plugin-transform-template-literals-7.10.5" = {
+      name = "_at_babel_slash_plugin-transform-template-literals";
+      packageName = "@babel/plugin-transform-template-literals";
+      version = "7.10.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.5.tgz";
+        sha512 = "V/lnPGIb+KT12OQikDvgSuesRX14ck5FfJXt6+tXhdkJ+Vsd0lDCVtF6jcB4rNClYFzaB2jusZ+lNISDk2mMMw==";
+      };
+    };
+    "@babel/plugin-transform-typeof-symbol-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-typeof-symbol";
+      packageName = "@babel/plugin-transform-typeof-symbol";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz";
+        sha512 = "QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA==";
+      };
+    };
+    "@babel/plugin-transform-typescript-7.11.0" = {
+      name = "_at_babel_slash_plugin-transform-typescript";
+      packageName = "@babel/plugin-transform-typescript";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.11.0.tgz";
+        sha512 = "edJsNzTtvb3MaXQwj8403B7mZoGu9ElDJQZOKjGUnvilquxBA3IQoEIOvkX/1O8xfAsnHS/oQhe2w/IXrr+w0w==";
+      };
+    };
+    "@babel/plugin-transform-unicode-escapes-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-unicode-escapes";
+      packageName = "@babel/plugin-transform-unicode-escapes";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz";
+        sha512 = "y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg==";
+      };
+    };
+    "@babel/plugin-transform-unicode-regex-7.10.4" = {
+      name = "_at_babel_slash_plugin-transform-unicode-regex";
+      packageName = "@babel/plugin-transform-unicode-regex";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz";
+        sha512 = "wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A==";
+      };
+    };
+    "@babel/preset-env-7.11.0" = {
+      name = "_at_babel_slash_preset-env";
+      packageName = "@babel/preset-env";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.11.0.tgz";
+        sha512 = "2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg==";
+      };
+    };
+    "@babel/preset-modules-0.1.4" = {
+      name = "_at_babel_slash_preset-modules";
+      packageName = "@babel/preset-modules";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.4.tgz";
+        sha512 = "J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg==";
+      };
+    };
+    "@babel/preset-typescript-7.10.4" = {
+      name = "_at_babel_slash_preset-typescript";
+      packageName = "@babel/preset-typescript";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.10.4.tgz";
+        sha512 = "SdYnvGPv+bLlwkF2VkJnaX/ni1sMNetcGI1+nThF1gyv6Ph8Qucc4ZZAjM5yZcE/AKRXIOTZz7eSRDWOEjPyRQ==";
+      };
+    };
+    "@babel/runtime-7.11.2" = {
+      name = "_at_babel_slash_runtime";
+      packageName = "@babel/runtime";
+      version = "7.11.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.11.2.tgz";
+        sha512 = "TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==";
+      };
+    };
+    "@babel/template-7.10.4" = {
+      name = "_at_babel_slash_template";
+      packageName = "@babel/template";
+      version = "7.10.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/template/-/template-7.10.4.tgz";
+        sha512 = "ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA==";
+      };
+    };
+    "@babel/traverse-7.11.0" = {
+      name = "_at_babel_slash_traverse";
+      packageName = "@babel/traverse";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.11.0.tgz";
+        sha512 = "ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg==";
+      };
+    };
+    "@babel/types-7.11.0" = {
+      name = "_at_babel_slash_types";
+      packageName = "@babel/types";
+      version = "7.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz";
+        sha512 = "O53yME4ZZI0jO1EVGtF1ePGl0LHirG4P1ibcD80XyzZcKhcMFeCXmh4Xb1ifGBIV233Qg12x4rBfQgA+tmOukA==";
+      };
+    };
+    "@bcoe/v8-coverage-0.2.3" = {
+      name = "_at_bcoe_slash_v8-coverage";
+      packageName = "@bcoe/v8-coverage";
+      version = "0.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz";
+        sha512 = "0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==";
+      };
+    };
+    "@cnakazawa/watch-1.0.4" = {
+      name = "_at_cnakazawa_slash_watch";
+      packageName = "@cnakazawa/watch";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz";
+        sha512 = "v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==";
+      };
+    };
+    "@dabh/diagnostics-2.0.2" = {
+      name = "_at_dabh_slash_diagnostics";
+      packageName = "@dabh/diagnostics";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz";
+        sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==";
+      };
+    };
+    "@istanbuljs/load-nyc-config-1.1.0" = {
+      name = "_at_istanbuljs_slash_load-nyc-config";
+      packageName = "@istanbuljs/load-nyc-config";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz";
+        sha512 = "VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==";
+      };
+    };
+    "@istanbuljs/schema-0.1.2" = {
+      name = "_at_istanbuljs_slash_schema";
+      packageName = "@istanbuljs/schema";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz";
+        sha512 = "tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==";
+      };
+    };
+    "@jest/console-26.3.0" = {
+      name = "_at_jest_slash_console";
+      packageName = "@jest/console";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/console/-/console-26.3.0.tgz";
+        sha512 = "/5Pn6sJev0nPUcAdpJHMVIsA8sKizL2ZkcKPE5+dJrCccks7tcM7c9wbgHudBJbxXLoTbqsHkG1Dofoem4F09w==";
+      };
+    };
+    "@jest/core-26.4.2" = {
+      name = "_at_jest_slash_core";
+      packageName = "@jest/core";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/core/-/core-26.4.2.tgz";
+        sha512 = "sDva7YkeNprxJfepOctzS8cAk9TOekldh+5FhVuXS40+94SHbiicRO1VV2tSoRtgIo+POs/Cdyf8p76vPTd6dg==";
+      };
+    };
+    "@jest/environment-26.3.0" = {
+      name = "_at_jest_slash_environment";
+      packageName = "@jest/environment";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/environment/-/environment-26.3.0.tgz";
+        sha512 = "EW+MFEo0DGHahf83RAaiqQx688qpXgl99wdb8Fy67ybyzHwR1a58LHcO376xQJHfmoXTu89M09dH3J509cx2AA==";
+      };
+    };
+    "@jest/fake-timers-26.3.0" = {
+      name = "_at_jest_slash_fake-timers";
+      packageName = "@jest/fake-timers";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.3.0.tgz";
+        sha512 = "ZL9ytUiRwVP8ujfRepffokBvD2KbxbqMhrXSBhSdAhISCw3gOkuntisiSFv+A6HN0n0fF4cxzICEKZENLmW+1A==";
+      };
+    };
+    "@jest/globals-26.4.2" = {
+      name = "_at_jest_slash_globals";
+      packageName = "@jest/globals";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/globals/-/globals-26.4.2.tgz";
+        sha512 = "Ot5ouAlehhHLRhc+sDz2/9bmNv9p5ZWZ9LE1pXGGTCXBasmi5jnYjlgYcYt03FBwLmZXCZ7GrL29c33/XRQiow==";
+      };
+    };
+    "@jest/reporters-26.4.1" = {
+      name = "_at_jest_slash_reporters";
+      packageName = "@jest/reporters";
+      version = "26.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/reporters/-/reporters-26.4.1.tgz";
+        sha512 = "aROTkCLU8++yiRGVxLsuDmZsQEKO6LprlrxtAuzvtpbIFl3eIjgIf3EUxDKgomkS25R9ZzwGEdB5weCcBZlrpQ==";
+      };
+    };
+    "@jest/source-map-26.3.0" = {
+      name = "_at_jest_slash_source-map";
+      packageName = "@jest/source-map";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/source-map/-/source-map-26.3.0.tgz";
+        sha512 = "hWX5IHmMDWe1kyrKl7IhFwqOuAreIwHhbe44+XH2ZRHjrKIh0LO5eLQ/vxHFeAfRwJapmxuqlGAEYLadDq6ZGQ==";
+      };
+    };
+    "@jest/test-result-26.3.0" = {
+      name = "_at_jest_slash_test-result";
+      packageName = "@jest/test-result";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/test-result/-/test-result-26.3.0.tgz";
+        sha512 = "a8rbLqzW/q7HWheFVMtghXV79Xk+GWwOK1FrtimpI5n1la2SY0qHri3/b0/1F0Ve0/yJmV8pEhxDfVwiUBGtgg==";
+      };
+    };
+    "@jest/test-sequencer-26.4.2" = {
+      name = "_at_jest_slash_test-sequencer";
+      packageName = "@jest/test-sequencer";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.4.2.tgz";
+        sha512 = "83DRD8N3M0tOhz9h0bn6Kl6dSp+US6DazuVF8J9m21WAp5x7CqSMaNycMP0aemC/SH/pDQQddbsfHRTBXVUgog==";
+      };
+    };
+    "@jest/transform-26.3.0" = {
+      name = "_at_jest_slash_transform";
+      packageName = "@jest/transform";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/transform/-/transform-26.3.0.tgz";
+        sha512 = "Isj6NB68QorGoFWvcOjlUhpkT56PqNIsXKR7XfvoDlCANn/IANlh8DrKAA2l2JKC3yWSMH5wS0GwuQM20w3b2A==";
+      };
+    };
+    "@jest/types-25.5.0" = {
+      name = "_at_jest_slash_types";
+      packageName = "@jest/types";
+      version = "25.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/types/-/types-25.5.0.tgz";
+        sha512 = "OXD0RgQ86Tu3MazKo8bnrkDRaDXXMGUqd+kTtLtK1Zb7CRzQcaSRPPPV37SvYTdevXEBVxe0HXylEjs8ibkmCw==";
+      };
+    };
+    "@jest/types-26.3.0" = {
+      name = "_at_jest_slash_types";
+      packageName = "@jest/types";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@jest/types/-/types-26.3.0.tgz";
+        sha512 = "BDPG23U0qDeAvU4f99haztXwdAg3hz4El95LkAM+tHAqqhiVzRpEGHHU8EDxT/AnxOrA65YjLBwDahdJ9pTLJQ==";
+      };
+    };
+    "@serialport/binding-abstract-9.0.1" = {
+      name = "_at_serialport_slash_binding-abstract";
+      packageName = "@serialport/binding-abstract";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/binding-abstract/-/binding-abstract-9.0.1.tgz";
+        sha512 = "ncUFSRyVdpyCRuah2dzrs99UfEWWMAhV31ae2FT6j4f8TypQ8OgAF8KkcHiD4M3wORDh3UKCCTS7n8aJWge1RA==";
+      };
+    };
+    "@serialport/binding-mock-9.0.1" = {
+      name = "_at_serialport_slash_binding-mock";
+      packageName = "@serialport/binding-mock";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/binding-mock/-/binding-mock-9.0.1.tgz";
+        sha512 = "C01T6iX+nNKB7S6BhQEy5nfk4lUk/CkdFEfen9DDPYhtFtIsm5GCGvRB3Fjnp+8oDrGWJOrZfxFf3kWOOx665A==";
+      };
+    };
+    "@serialport/bindings-9.0.1" = {
+      name = "_at_serialport_slash_bindings";
+      packageName = "@serialport/bindings";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/bindings/-/bindings-9.0.1.tgz";
+        sha512 = "O5QuwCdnHuZygBKw7tVq2wHysfOnCbOyKtR/k9T9zHqptd89Tzy6xJQNtnrcbV/2D22noKX6yWj+1wqvNe6NRA==";
+      };
+    };
+    "@serialport/parser-byte-length-9.0.1" = {
+      name = "_at_serialport_slash_parser-byte-length";
+      packageName = "@serialport/parser-byte-length";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-byte-length/-/parser-byte-length-9.0.1.tgz";
+        sha512 = "1Ikv4lgCNw8OMf35yCpgzjHwkpgBEkhBuXFXIdWZk+ixaHFLlAtp03QxGPZBmzHMK58WDmEQoBHC1V5BkkAKSQ==";
+      };
+    };
+    "@serialport/parser-cctalk-9.0.1" = {
+      name = "_at_serialport_slash_parser-cctalk";
+      packageName = "@serialport/parser-cctalk";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-cctalk/-/parser-cctalk-9.0.1.tgz";
+        sha512 = "GtMda2DeJ+23bNqOc79JYV06dax2n3FLLFM3zA7nfReCOi98QbuDj4TUbFESMOnp4DB0oMO0GYHCR9gHOedTkg==";
+      };
+    };
+    "@serialport/parser-delimiter-9.0.1" = {
+      name = "_at_serialport_slash_parser-delimiter";
+      packageName = "@serialport/parser-delimiter";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-delimiter/-/parser-delimiter-9.0.1.tgz";
+        sha512 = "+oaSl5zEu47OlrRiF5p5tn2qgGqYuhVcE+NI+Pv4E1xsNB/A0fFxxMv/8XUw466CRLEJ5IESIB9qbFvKE6ltaQ==";
+      };
+    };
+    "@serialport/parser-readline-9.0.1" = {
+      name = "_at_serialport_slash_parser-readline";
+      packageName = "@serialport/parser-readline";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-readline/-/parser-readline-9.0.1.tgz";
+        sha512 = "38058gxvyfgdeLpg3aUyD98NuWkVB9yyTLpcSdeQ3GYiupivwH6Tdy/SKPmxlHIw3Ml2qil5MR2mtW2fLPB5CQ==";
+      };
+    };
+    "@serialport/parser-ready-9.0.1" = {
+      name = "_at_serialport_slash_parser-ready";
+      packageName = "@serialport/parser-ready";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-ready/-/parser-ready-9.0.1.tgz";
+        sha512 = "lgzGkVJaaV1rJVx26WwI2UKyPxc0vu1rsOeldzA3VVbF+ABrblUQA06+cRPpT6k96GY+X4+1fB1rWuPpt8HbgQ==";
+      };
+    };
+    "@serialport/parser-regex-9.0.1" = {
+      name = "_at_serialport_slash_parser-regex";
+      packageName = "@serialport/parser-regex";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/parser-regex/-/parser-regex-9.0.1.tgz";
+        sha512 = "BHTV+Lkl+J8hSecFtDRENaR4fgA6tw44J+dmA1vEKEyum0iDN4bihbu8yvztYyo4PhBGUKDfm/PnD5EkJm0dPA==";
+      };
+    };
+    "@serialport/stream-9.0.1" = {
+      name = "_at_serialport_slash_stream";
+      packageName = "@serialport/stream";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@serialport/stream/-/stream-9.0.1.tgz";
+        sha512 = "S1xaf99vygbrMDNS/9GHYZYskWJHXJy6dCksW+ME2dzNXEXpz64vF0iug1tC1EIAhME9oD/s3ky2C9CUAd/GUg==";
+      };
+    };
+    "@sinonjs/commons-1.8.1" = {
+      name = "_at_sinonjs_slash_commons";
+      packageName = "@sinonjs/commons";
+      version = "1.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.1.tgz";
+        sha512 = "892K+kWUUi3cl+LlqEWIDrhvLgdL79tECi8JZUyq6IviKy/DNhuzCRlbHUjxK89f4ypPMMaFnFuR9Ie6DoIMsw==";
+      };
+    };
+    "@sinonjs/fake-timers-6.0.1" = {
+      name = "_at_sinonjs_slash_fake-timers";
+      packageName = "@sinonjs/fake-timers";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz";
+        sha512 = "MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==";
+      };
+    };
+    "@types/babel__core-7.1.9" = {
+      name = "_at_types_slash_babel__core";
+      packageName = "@types/babel__core";
+      version = "7.1.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.9.tgz";
+        sha512 = "sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw==";
+      };
+    };
+    "@types/babel__generator-7.6.1" = {
+      name = "_at_types_slash_babel__generator";
+      packageName = "@types/babel__generator";
+      version = "7.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz";
+        sha512 = "bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==";
+      };
+    };
+    "@types/babel__template-7.0.2" = {
+      name = "_at_types_slash_babel__template";
+      packageName = "@types/babel__template";
+      version = "7.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz";
+        sha512 = "/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==";
+      };
+    };
+    "@types/babel__traverse-7.0.13" = {
+      name = "_at_types_slash_babel__traverse";
+      packageName = "@types/babel__traverse";
+      version = "7.0.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.13.tgz";
+        sha512 = "i+zS7t6/s9cdQvbqKDARrcbrPvtJGlbYsMkazo03nTAK3RX9FNrLllXys22uiTGJapPOTZTQ35nHh4ISph4SLQ==";
+      };
+    };
+    "@types/color-name-1.1.1" = {
+      name = "_at_types_slash_color-name";
+      packageName = "@types/color-name";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz";
+        sha512 = "rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==";
+      };
+    };
+    "@types/debug-4.1.5" = {
+      name = "_at_types_slash_debug";
+      packageName = "@types/debug";
+      version = "4.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz";
+        sha512 = "Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==";
+      };
+    };
+    "@types/eslint-visitor-keys-1.0.0" = {
+      name = "_at_types_slash_eslint-visitor-keys";
+      packageName = "@types/eslint-visitor-keys";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz";
+        sha512 = "OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==";
+      };
+    };
+    "@types/graceful-fs-4.1.3" = {
+      name = "_at_types_slash_graceful-fs";
+      packageName = "@types/graceful-fs";
+      version = "4.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.3.tgz";
+        sha512 = "AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ==";
+      };
+    };
+    "@types/istanbul-lib-coverage-2.0.3" = {
+      name = "_at_types_slash_istanbul-lib-coverage";
+      packageName = "@types/istanbul-lib-coverage";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz";
+        sha512 = "sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==";
+      };
+    };
+    "@types/istanbul-lib-report-3.0.0" = {
+      name = "_at_types_slash_istanbul-lib-report";
+      packageName = "@types/istanbul-lib-report";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz";
+        sha512 = "plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==";
+      };
+    };
+    "@types/istanbul-reports-1.1.2" = {
+      name = "_at_types_slash_istanbul-reports";
+      packageName = "@types/istanbul-reports";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.2.tgz";
+        sha512 = "P/W9yOX/3oPZSpaYOCQzGqgCQRXn0FFO/V8bWrCQs+wLmvVVxk6CRBXALEvNs9OHIatlnlFokfhuDo2ug01ciw==";
+      };
+    };
+    "@types/istanbul-reports-3.0.0" = {
+      name = "_at_types_slash_istanbul-reports";
+      packageName = "@types/istanbul-reports";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz";
+        sha512 = "nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==";
+      };
+    };
+    "@types/jest-26.0.10" = {
+      name = "_at_types_slash_jest";
+      packageName = "@types/jest";
+      version = "26.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/jest/-/jest-26.0.10.tgz";
+        sha512 = "i2m0oyh8w/Lum7wWK/YOZJakYF8Mx08UaKA1CtbmFeDquVhAEdA7znacsVSf2hJ1OQ/OfVMGN90pw/AtzF8s/Q==";
+      };
+    };
+    "@types/json-schema-7.0.5" = {
+      name = "_at_types_slash_json-schema";
+      packageName = "@types/json-schema";
+      version = "7.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz";
+        sha512 = "7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==";
+      };
+    };
+    "@types/nedb-1.8.10" = {
+      name = "_at_types_slash_nedb";
+      packageName = "@types/nedb";
+      version = "1.8.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/nedb/-/nedb-1.8.10.tgz";
+        sha512 = "M0ISm1qsNvkdXNZml1r/1bEVqt5SJHF/LFcCtH5dHfsSIG0LEj5FhwK0f4fZy9WPCsXjmrKfpzgEW/bdQuKqmQ==";
+      };
+    };
+    "@types/node-14.6.2" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "14.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-14.6.2.tgz";
+        sha512 = "onlIwbaeqvZyniGPfdw/TEhKIh79pz66L1q06WUQqJLnAb6wbjvOtepLYTGHTqzdXgBYIE3ZdmqHDGsRsbBz7A==";
+      };
+    };
+    "@types/normalize-package-data-2.4.0" = {
+      name = "_at_types_slash_normalize-package-data";
+      packageName = "@types/normalize-package-data";
+      version = "2.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz";
+        sha512 = "f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==";
+      };
+    };
+    "@types/prettier-2.1.0" = {
+      name = "_at_types_slash_prettier";
+      packageName = "@types/prettier";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.0.tgz";
+        sha512 = "hiYA88aHiEIgDmeKlsyVsuQdcFn3Z2VuFd/Xm/HCnGnPD8UFU5BM128uzzRVVGEzKDKYUrRsRH9S2o+NUy/3IA==";
+      };
+    };
+    "@types/serialport-8.0.1" = {
+      name = "_at_types_slash_serialport";
+      packageName = "@types/serialport";
+      version = "8.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/serialport/-/serialport-8.0.1.tgz";
+        sha512 = "IcKHq6b/ynKSF/x4al/Ce8+a0hpbYIEaIcK9Z3l4koLvQqAPSODZ37/hgemQx8dTu7fPZDMHN4bKmu89B3UaGA==";
+      };
+    };
+    "@types/stack-utils-1.0.1" = {
+      name = "_at_types_slash_stack-utils";
+      packageName = "@types/stack-utils";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz";
+        sha512 = "l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==";
+      };
+    };
+    "@types/yargs-15.0.5" = {
+      name = "_at_types_slash_yargs";
+      packageName = "@types/yargs";
+      version = "15.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz";
+        sha512 = "Dk/IDOPtOgubt/IaevIUbTgV7doaKkoorvOyYM2CMwuDyP89bekI7H4xLIwunNYiK9jhCkmc6pUrJk3cj2AB9w==";
+      };
+    };
+    "@types/yargs-parser-15.0.0" = {
+      name = "_at_types_slash_yargs-parser";
+      packageName = "@types/yargs-parser";
+      version = "15.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz";
+        sha512 = "FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw==";
+      };
+    };
+    "@typescript-eslint/eslint-plugin-3.10.1" = {
+      name = "_at_typescript-eslint_slash_eslint-plugin";
+      packageName = "@typescript-eslint/eslint-plugin";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.10.1.tgz";
+        sha512 = "PQg0emRtzZFWq6PxBcdxRH3QIQiyFO3WCVpRL3fgj5oQS3CDs3AeAKfv4DxNhzn8ITdNJGJ4D3Qw8eAJf3lXeQ==";
+      };
+    };
+    "@typescript-eslint/experimental-utils-2.34.0" = {
+      name = "_at_typescript-eslint_slash_experimental-utils";
+      packageName = "@typescript-eslint/experimental-utils";
+      version = "2.34.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.34.0.tgz";
+        sha512 = "eS6FTkq+wuMJ+sgtuNTtcqavWXqsflWcfBnlYhg/nS4aZ1leewkXGbvBhaapn1q6qf4M71bsR1tez5JTRMuqwA==";
+      };
+    };
+    "@typescript-eslint/experimental-utils-3.10.1" = {
+      name = "_at_typescript-eslint_slash_experimental-utils";
+      packageName = "@typescript-eslint/experimental-utils";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-3.10.1.tgz";
+        sha512 = "DewqIgscDzmAfd5nOGe4zm6Bl7PKtMG2Ad0KG8CUZAHlXfAKTF9Ol5PXhiMh39yRL2ChRH1cuuUGOcVyyrhQIw==";
+      };
+    };
+    "@typescript-eslint/parser-3.10.1" = {
+      name = "_at_typescript-eslint_slash_parser";
+      packageName = "@typescript-eslint/parser";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-3.10.1.tgz";
+        sha512 = "Ug1RcWcrJP02hmtaXVS3axPPTTPnZjupqhgj+NnZ6BCkwSImWk/283347+x9wN+lqOdK9Eo3vsyiyDHgsmiEJw==";
+      };
+    };
+    "@typescript-eslint/types-3.10.1" = {
+      name = "_at_typescript-eslint_slash_types";
+      packageName = "@typescript-eslint/types";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.10.1.tgz";
+        sha512 = "+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==";
+      };
+    };
+    "@typescript-eslint/typescript-estree-2.34.0" = {
+      name = "_at_typescript-eslint_slash_typescript-estree";
+      packageName = "@typescript-eslint/typescript-estree";
+      version = "2.34.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.34.0.tgz";
+        sha512 = "OMAr+nJWKdlVM9LOqCqh3pQQPwxHAN7Du8DR6dmwCrAmxtiXQnhHJ6tBNtf+cggqfo51SG/FCwnKhXCIM7hnVg==";
+      };
+    };
+    "@typescript-eslint/typescript-estree-3.10.1" = {
+      name = "_at_typescript-eslint_slash_typescript-estree";
+      packageName = "@typescript-eslint/typescript-estree";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz";
+        sha512 = "QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==";
+      };
+    };
+    "@typescript-eslint/visitor-keys-3.10.1" = {
+      name = "_at_typescript-eslint_slash_visitor-keys";
+      packageName = "@typescript-eslint/visitor-keys";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz";
+        sha512 = "9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==";
+      };
+    };
+    "abab-2.0.4" = {
+      name = "abab";
+      packageName = "abab";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/abab/-/abab-2.0.4.tgz";
+        sha512 = "Eu9ELJWCz/c1e9gTiCY+FceWxcqzjYEbqMgtndnuSqZSUCOL73TWNK2mHfIj4Cw2E/ongOp+JISVNCmovt2KYQ==";
+      };
+    };
+    "acorn-7.4.0" = {
+      name = "acorn";
+      packageName = "acorn";
+      version = "7.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn/-/acorn-7.4.0.tgz";
+        sha512 = "+G7P8jJmCHr+S+cLfQxygbWhXy+8YTVGzAkpEbcLo2mLoL7tij/VG41QSHACSf5QgYRhMZYHuNc6drJaO0Da+w==";
+      };
+    };
+    "acorn-globals-6.0.0" = {
+      name = "acorn-globals";
+      packageName = "acorn-globals";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz";
+        sha512 = "ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==";
+      };
+    };
+    "acorn-jsx-5.2.0" = {
+      name = "acorn-jsx";
+      packageName = "acorn-jsx";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz";
+        sha512 = "HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==";
+      };
+    };
+    "acorn-walk-7.2.0" = {
+      name = "acorn-walk";
+      packageName = "acorn-walk";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz";
+        sha512 = "OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==";
+      };
+    };
+    "agent-base-6.0.1" = {
+      name = "agent-base";
+      packageName = "agent-base";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/agent-base/-/agent-base-6.0.1.tgz";
+        sha512 = "01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg==";
+      };
+    };
+    "ajv-6.12.4" = {
+      name = "ajv";
+      packageName = "ajv";
+      version = "6.12.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ajv/-/ajv-6.12.4.tgz";
+        sha512 = "eienB2c9qVQs2KWexhkrdMLVDoIQCz5KSeLxwg9Lzk4DOfBtIK9PQwwufcsn1jjGuf9WZmqPMbGxOzfcuphJCQ==";
+      };
+    };
+    "ansi-colors-4.1.1" = {
+      name = "ansi-colors";
+      packageName = "ansi-colors";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz";
+        sha512 = "JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==";
+      };
+    };
+    "ansi-escapes-4.3.1" = {
+      name = "ansi-escapes";
+      packageName = "ansi-escapes";
+      version = "4.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz";
+        sha512 = "JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==";
+      };
+    };
+    "ansi-regex-2.1.1" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz";
+        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+      };
+    };
+    "ansi-regex-4.1.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz";
+        sha512 = "1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==";
+      };
+    };
+    "ansi-regex-5.0.0" = {
+      name = "ansi-regex";
+      packageName = "ansi-regex";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz";
+        sha512 = "bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==";
+      };
+    };
+    "ansi-styles-3.2.1" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz";
+        sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
+      };
+    };
+    "ansi-styles-4.2.1" = {
+      name = "ansi-styles";
+      packageName = "ansi-styles";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz";
+        sha512 = "9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==";
+      };
+    };
+    "anymatch-2.0.0" = {
+      name = "anymatch";
+      packageName = "anymatch";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz";
+        sha512 = "5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==";
+      };
+    };
+    "anymatch-3.1.1" = {
+      name = "anymatch";
+      packageName = "anymatch";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz";
+        sha512 = "mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==";
+      };
+    };
+    "aproba-1.2.0" = {
+      name = "aproba";
+      packageName = "aproba";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz";
+        sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==";
+      };
+    };
+    "are-we-there-yet-1.1.5" = {
+      name = "are-we-there-yet";
+      packageName = "are-we-there-yet";
+      version = "1.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
+        sha512 = "5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==";
+      };
+    };
+    "argparse-1.0.10" = {
+      name = "argparse";
+      packageName = "argparse";
+      version = "1.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz";
+        sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
+      };
+    };
+    "arr-diff-4.0.0" = {
+      name = "arr-diff";
+      packageName = "arr-diff";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz";
+        sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
+      };
+    };
+    "arr-flatten-1.1.0" = {
+      name = "arr-flatten";
+      packageName = "arr-flatten";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz";
+        sha512 = "L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==";
+      };
+    };
+    "arr-union-3.1.0" = {
+      name = "arr-union";
+      packageName = "arr-union";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz";
+        sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+      };
+    };
+    "array-unique-0.3.2" = {
+      name = "array-unique";
+      packageName = "array-unique";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz";
+        sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+      };
+    };
+    "asn1-0.2.4" = {
+      name = "asn1";
+      packageName = "asn1";
+      version = "0.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz";
+        sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
+      };
+    };
+    "assert-plus-1.0.0" = {
+      name = "assert-plus";
+      packageName = "assert-plus";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz";
+        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+      };
+    };
+    "assign-symbols-1.0.0" = {
+      name = "assign-symbols";
+      packageName = "assign-symbols";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz";
+        sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+      };
+    };
+    "astral-regex-1.0.0" = {
+      name = "astral-regex";
+      packageName = "astral-regex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz";
+        sha512 = "+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==";
+      };
+    };
+    "async-3.2.0" = {
+      name = "async";
+      packageName = "async";
+      version = "3.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz";
+        sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==";
+      };
+    };
+    "async-each-1.0.3" = {
+      name = "async-each";
+      packageName = "async-each";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz";
+        sha512 = "z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==";
+      };
+    };
+    "asynckit-0.4.0" = {
+      name = "asynckit";
+      packageName = "asynckit";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz";
+        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+      };
+    };
+    "at-least-node-1.0.0" = {
+      name = "at-least-node";
+      packageName = "at-least-node";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz";
+        sha512 = "+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==";
+      };
+    };
+    "atob-2.1.2" = {
+      name = "atob";
+      packageName = "atob";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz";
+        sha512 = "Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==";
+      };
+    };
+    "aws-sign2-0.7.0" = {
+      name = "aws-sign2";
+      packageName = "aws-sign2";
+      version = "0.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz";
+        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+      };
+    };
+    "aws4-1.10.1" = {
+      name = "aws4";
+      packageName = "aws4";
+      version = "1.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz";
+        sha512 = "zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA==";
+      };
+    };
+    "axios-0.20.0" = {
+      name = "axios";
+      packageName = "axios";
+      version = "0.20.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/axios/-/axios-0.20.0.tgz";
+        sha512 = "ANA4rr2BDcmmAQLOKft2fufrtuvlqR+cXNNinUmvfeSNCOF98PZL+7M/v1zIdGo7OLjEA9J2gXJL+j4zGsl0bA==";
+      };
+    };
+    "babel-jest-26.3.0" = {
+      name = "babel-jest";
+      packageName = "babel-jest";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-jest/-/babel-jest-26.3.0.tgz";
+        sha512 = "sxPnQGEyHAOPF8NcUsD0g7hDCnvLL2XyblRBcgrzTWBB/mAIpWow3n1bEL+VghnnZfreLhFSBsFluRoK2tRK4g==";
+      };
+    };
+    "babel-plugin-dynamic-import-node-2.3.3" = {
+      name = "babel-plugin-dynamic-import-node";
+      packageName = "babel-plugin-dynamic-import-node";
+      version = "2.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz";
+        sha512 = "jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==";
+      };
+    };
+    "babel-plugin-istanbul-6.0.0" = {
+      name = "babel-plugin-istanbul";
+      packageName = "babel-plugin-istanbul";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz";
+        sha512 = "AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==";
+      };
+    };
+    "babel-plugin-jest-hoist-26.2.0" = {
+      name = "babel-plugin-jest-hoist";
+      packageName = "babel-plugin-jest-hoist";
+      version = "26.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.2.0.tgz";
+        sha512 = "B/hVMRv8Nh1sQ1a3EY8I0n4Y1Wty3NrR5ebOyVT302op+DOAau+xNEImGMsUWOC3++ZlMooCytKz+NgN8aKGbA==";
+      };
+    };
+    "babel-preset-current-node-syntax-0.1.3" = {
+      name = "babel-preset-current-node-syntax";
+      packageName = "babel-preset-current-node-syntax";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.3.tgz";
+        sha512 = "uyexu1sVwcdFnyq9o8UQYsXwXflIh8LvrF5+cKrYam93ned1CStffB3+BEcsxGSgagoA3GEyjDqO4a/58hyPYQ==";
+      };
+    };
+    "babel-preset-jest-26.3.0" = {
+      name = "babel-preset-jest";
+      packageName = "babel-preset-jest";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.3.0.tgz";
+        sha512 = "5WPdf7nyYi2/eRxCbVrE1kKCWxgWY4RsPEbdJWFm7QsesFGqjdkyLeu1zRkwM1cxK6EPIlNd6d2AxLk7J+t4pw==";
+      };
+    };
+    "balanced-match-1.0.0" = {
+      name = "balanced-match";
+      packageName = "balanced-match";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz";
+        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+      };
+    };
+    "base-0.11.2" = {
+      name = "base";
+      packageName = "base";
+      version = "0.11.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/base/-/base-0.11.2.tgz";
+        sha512 = "5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==";
+      };
+    };
+    "base64-js-1.3.1" = {
+      name = "base64-js";
+      packageName = "base64-js";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz";
+        sha512 = "mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==";
+      };
+    };
+    "bcrypt-pbkdf-1.0.2" = {
+      name = "bcrypt-pbkdf";
+      packageName = "bcrypt-pbkdf";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
+        sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+      };
+    };
+    "binary-extensions-1.13.1" = {
+      name = "binary-extensions";
+      packageName = "binary-extensions";
+      version = "1.13.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz";
+        sha512 = "Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==";
+      };
+    };
+    "bindings-1.5.0" = {
+      name = "bindings";
+      packageName = "bindings";
+      version = "1.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz";
+        sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==";
+      };
+    };
+    "bl-4.0.3" = {
+      name = "bl";
+      packageName = "bl";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz";
+        sha512 = "fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==";
+      };
+    };
+    "brace-expansion-1.1.11" = {
+      name = "brace-expansion";
+      packageName = "brace-expansion";
+      version = "1.1.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz";
+        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+      };
+    };
+    "braces-2.3.2" = {
+      name = "braces";
+      packageName = "braces";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz";
+        sha512 = "aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==";
+      };
+    };
+    "braces-3.0.2" = {
+      name = "braces";
+      packageName = "braces";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz";
+        sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
+      };
+    };
+    "browser-process-hrtime-1.0.0" = {
+      name = "browser-process-hrtime";
+      packageName = "browser-process-hrtime";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz";
+        sha512 = "9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==";
+      };
+    };
+    "browserslist-4.14.0" = {
+      name = "browserslist";
+      packageName = "browserslist";
+      version = "4.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/browserslist/-/browserslist-4.14.0.tgz";
+        sha512 = "pUsXKAF2lVwhmtpeA3LJrZ76jXuusrNyhduuQs7CDFf9foT4Y38aQOserd2lMe5DSSrjf3fx34oHwryuvxAUgQ==";
+      };
+    };
+    "bser-2.1.1" = {
+      name = "bser";
+      packageName = "bser";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz";
+        sha512 = "gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==";
+      };
+    };
+    "buffer-5.6.0" = {
+      name = "buffer";
+      packageName = "buffer";
+      version = "5.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz";
+        sha512 = "/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==";
+      };
+    };
+    "buffer-from-1.1.1" = {
+      name = "buffer-from";
+      packageName = "buffer-from";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz";
+        sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==";
+      };
+    };
+    "cache-base-1.0.1" = {
+      name = "cache-base";
+      packageName = "cache-base";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz";
+        sha512 = "AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==";
+      };
+    };
+    "callback-stream-1.1.0" = {
+      name = "callback-stream";
+      packageName = "callback-stream";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/callback-stream/-/callback-stream-1.1.0.tgz";
+        sha1 = "4701a51266f06e06eaa71fc17233822d875f4908";
+      };
+    };
+    "callsites-3.1.0" = {
+      name = "callsites";
+      packageName = "callsites";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz";
+        sha512 = "P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==";
+      };
+    };
+    "camelcase-5.3.1" = {
+      name = "camelcase";
+      packageName = "camelcase";
+      version = "5.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz";
+        sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
+      };
+    };
+    "camelcase-6.0.0" = {
+      name = "camelcase";
+      packageName = "camelcase";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-6.0.0.tgz";
+        sha512 = "8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w==";
+      };
+    };
+    "caniuse-lite-1.0.30001119" = {
+      name = "caniuse-lite";
+      packageName = "caniuse-lite";
+      version = "1.0.30001119";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001119.tgz";
+        sha512 = "Hpwa4obv7EGP+TjkCh/wVvbtNJewxmtg4yVJBLFnxo35vbPapBr138bUWENkb5j5L9JZJ9RXLn4OrXRG/cecPQ==";
+      };
+    };
+    "capture-exit-2.0.0" = {
+      name = "capture-exit";
+      packageName = "capture-exit";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz";
+        sha512 = "PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==";
+      };
+    };
+    "caseless-0.12.0" = {
+      name = "caseless";
+      packageName = "caseless";
+      version = "0.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz";
+        sha1 = "1b681c21ff84033c826543090689420d187151dc";
+      };
+    };
+    "chalk-2.4.2" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz";
+        sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
+      };
+    };
+    "chalk-3.0.0" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz";
+        sha512 = "4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==";
+      };
+    };
+    "chalk-4.1.0" = {
+      name = "chalk";
+      packageName = "chalk";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz";
+        sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==";
+      };
+    };
+    "char-regex-1.0.2" = {
+      name = "char-regex";
+      packageName = "char-regex";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz";
+        sha512 = "kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==";
+      };
+    };
+    "chokidar-2.1.8" = {
+      name = "chokidar";
+      packageName = "chokidar";
+      version = "2.1.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz";
+        sha512 = "ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==";
+      };
+    };
+    "chownr-1.1.4" = {
+      name = "chownr";
+      packageName = "chownr";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz";
+        sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==";
+      };
+    };
+    "ci-info-2.0.0" = {
+      name = "ci-info";
+      packageName = "ci-info";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz";
+        sha512 = "5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==";
+      };
+    };
+    "class-utils-0.3.6" = {
+      name = "class-utils";
+      packageName = "class-utils";
+      version = "0.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz";
+        sha512 = "qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==";
+      };
+    };
+    "cliui-6.0.0" = {
+      name = "cliui";
+      packageName = "cliui";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz";
+        sha512 = "t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==";
+      };
+    };
+    "co-4.6.0" = {
+      name = "co";
+      packageName = "co";
+      version = "4.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/co/-/co-4.6.0.tgz";
+        sha1 = "6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184";
+      };
+    };
+    "code-point-at-1.1.0" = {
+      name = "code-point-at";
+      packageName = "code-point-at";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz";
+        sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+      };
+    };
+    "collect-v8-coverage-1.0.1" = {
+      name = "collect-v8-coverage";
+      packageName = "collect-v8-coverage";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz";
+        sha512 = "iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==";
+      };
+    };
+    "collection-visit-1.0.0" = {
+      name = "collection-visit";
+      packageName = "collection-visit";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz";
+        sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
+      };
+    };
+    "color-3.0.0" = {
+      name = "color";
+      packageName = "color";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color/-/color-3.0.0.tgz";
+        sha512 = "jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==";
+      };
+    };
+    "color-convert-1.9.3" = {
+      name = "color-convert";
+      packageName = "color-convert";
+      version = "1.9.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz";
+        sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==";
+      };
+    };
+    "color-convert-2.0.1" = {
+      name = "color-convert";
+      packageName = "color-convert";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz";
+        sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
+      };
+    };
+    "color-name-1.1.3" = {
+      name = "color-name";
+      packageName = "color-name";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz";
+        sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+      };
+    };
+    "color-name-1.1.4" = {
+      name = "color-name";
+      packageName = "color-name";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz";
+        sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
+      };
+    };
+    "color-string-1.5.3" = {
+      name = "color-string";
+      packageName = "color-string";
+      version = "1.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz";
+        sha512 = "dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==";
+      };
+    };
+    "colors-1.4.0" = {
+      name = "colors";
+      packageName = "colors";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz";
+        sha512 = "a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==";
+      };
+    };
+    "colorspace-1.1.2" = {
+      name = "colorspace";
+      packageName = "colorspace";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz";
+        sha512 = "vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==";
+      };
+    };
+    "combined-stream-1.0.8" = {
+      name = "combined-stream";
+      packageName = "combined-stream";
+      version = "1.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz";
+        sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
+      };
+    };
+    "commander-4.1.1" = {
+      name = "commander";
+      packageName = "commander";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz";
+        sha512 = "NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==";
+      };
+    };
+    "commist-1.1.0" = {
+      name = "commist";
+      packageName = "commist";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/commist/-/commist-1.1.0.tgz";
+        sha512 = "rraC8NXWOEjhADbZe9QBNzLAN5Q3fsTPQtBV+fEVj6xKIgDgNiEVE6ZNfHpZOqfQ21YUzfVNUXLOEZquYvQPPg==";
+      };
+    };
+    "component-emitter-1.3.0" = {
+      name = "component-emitter";
+      packageName = "component-emitter";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz";
+        sha512 = "Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==";
+      };
+    };
+    "concat-map-0.0.1" = {
+      name = "concat-map";
+      packageName = "concat-map";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz";
+        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+      };
+    };
+    "concat-stream-1.6.2" = {
+      name = "concat-stream";
+      packageName = "concat-stream";
+      version = "1.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz";
+        sha512 = "27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==";
+      };
+    };
+    "console-control-strings-1.1.0" = {
+      name = "console-control-strings";
+      packageName = "console-control-strings";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz";
+        sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
+      };
+    };
+    "convert-source-map-1.7.0" = {
+      name = "convert-source-map";
+      packageName = "convert-source-map";
+      version = "1.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz";
+        sha512 = "4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==";
+      };
+    };
+    "copy-descriptor-0.1.1" = {
+      name = "copy-descriptor";
+      packageName = "copy-descriptor";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
+        sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+      };
+    };
+    "core-js-compat-3.6.5" = {
+      name = "core-js-compat";
+      packageName = "core-js-compat";
+      version = "3.6.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz";
+        sha512 = "7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==";
+      };
+    };
+    "core-util-is-1.0.2" = {
+      name = "core-util-is";
+      packageName = "core-util-is";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+      };
+    };
+    "cross-spawn-6.0.5" = {
+      name = "cross-spawn";
+      packageName = "cross-spawn";
+      version = "6.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz";
+        sha512 = "eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==";
+      };
+    };
+    "cross-spawn-7.0.3" = {
+      name = "cross-spawn";
+      packageName = "cross-spawn";
+      version = "7.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz";
+        sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==";
+      };
+    };
+    "cssom-0.3.8" = {
+      name = "cssom";
+      packageName = "cssom";
+      version = "0.3.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz";
+        sha512 = "b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==";
+      };
+    };
+    "cssom-0.4.4" = {
+      name = "cssom";
+      packageName = "cssom";
+      version = "0.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz";
+        sha512 = "p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==";
+      };
+    };
+    "cssstyle-2.3.0" = {
+      name = "cssstyle";
+      packageName = "cssstyle";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz";
+        sha512 = "AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==";
+      };
+    };
+    "d-1.0.1" = {
+      name = "d";
+      packageName = "d";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/d/-/d-1.0.1.tgz";
+        sha512 = "m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==";
+      };
+    };
+    "dashdash-1.14.1" = {
+      name = "dashdash";
+      packageName = "dashdash";
+      version = "1.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz";
+        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+      };
+    };
+    "data-urls-2.0.0" = {
+      name = "data-urls";
+      packageName = "data-urls";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz";
+        sha512 = "X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==";
+      };
+    };
+    "debounce-1.2.0" = {
+      name = "debounce";
+      packageName = "debounce";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz";
+        sha512 = "mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==";
+      };
+    };
+    "debug-2.6.9" = {
+      name = "debug";
+      packageName = "debug";
+      version = "2.6.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz";
+        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
+      };
+    };
+    "debug-4.1.1" = {
+      name = "debug";
+      packageName = "debug";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz";
+        sha512 = "pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==";
+      };
+    };
+    "decamelize-1.2.0" = {
+      name = "decamelize";
+      packageName = "decamelize";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz";
+        sha1 = "f6534d15148269b20352e7bee26f501f9a191290";
+      };
+    };
+    "decimal.js-10.2.0" = {
+      name = "decimal.js";
+      packageName = "decimal.js";
+      version = "10.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.0.tgz";
+        sha512 = "vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw==";
+      };
+    };
+    "decode-uri-component-0.2.0" = {
+      name = "decode-uri-component";
+      packageName = "decode-uri-component";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
+        sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+      };
+    };
+    "decompress-response-4.2.1" = {
+      name = "decompress-response";
+      packageName = "decompress-response";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz";
+        sha512 = "jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==";
+      };
+    };
+    "deep-extend-0.6.0" = {
+      name = "deep-extend";
+      packageName = "deep-extend";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz";
+        sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==";
+      };
+    };
+    "deep-is-0.1.3" = {
+      name = "deep-is";
+      packageName = "deep-is";
+      version = "0.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz";
+        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+      };
+    };
+    "deepmerge-4.2.2" = {
+      name = "deepmerge";
+      packageName = "deepmerge";
+      version = "4.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz";
+        sha512 = "FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==";
+      };
+    };
+    "define-properties-1.1.3" = {
+      name = "define-properties";
+      packageName = "define-properties";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz";
+        sha512 = "3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==";
+      };
+    };
+    "define-property-0.2.5" = {
+      name = "define-property";
+      packageName = "define-property";
+      version = "0.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz";
+        sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
+      };
+    };
+    "define-property-1.0.0" = {
+      name = "define-property";
+      packageName = "define-property";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz";
+        sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
+      };
+    };
+    "define-property-2.0.2" = {
+      name = "define-property";
+      packageName = "define-property";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz";
+        sha512 = "jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==";
+      };
+    };
+    "delayed-stream-1.0.0" = {
+      name = "delayed-stream";
+      packageName = "delayed-stream";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz";
+        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+      };
+    };
+    "delegates-1.0.0" = {
+      name = "delegates";
+      packageName = "delegates";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz";
+        sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+      };
+    };
+    "detect-libc-1.0.3" = {
+      name = "detect-libc";
+      packageName = "detect-libc";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz";
+        sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b";
+      };
+    };
+    "detect-newline-3.1.0" = {
+      name = "detect-newline";
+      packageName = "detect-newline";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz";
+        sha512 = "TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==";
+      };
+    };
+    "diff-sequences-25.2.6" = {
+      name = "diff-sequences";
+      packageName = "diff-sequences";
+      version = "25.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz";
+        sha512 = "Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==";
+      };
+    };
+    "diff-sequences-26.3.0" = {
+      name = "diff-sequences";
+      packageName = "diff-sequences";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.3.0.tgz";
+        sha512 = "5j5vdRcw3CNctePNYN0Wy2e/JbWT6cAYnXv5OuqPhDpyCGc0uLu2TK0zOCJWNB9kOIfYMSpIulRaDgIi4HJ6Ig==";
+      };
+    };
+    "doctrine-3.0.0" = {
+      name = "doctrine";
+      packageName = "doctrine";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz";
+        sha512 = "yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==";
+      };
+    };
+    "domexception-2.0.1" = {
+      name = "domexception";
+      packageName = "domexception";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz";
+        sha512 = "yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==";
+      };
+    };
+    "duplexify-3.7.1" = {
+      name = "duplexify";
+      packageName = "duplexify";
+      version = "3.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz";
+        sha512 = "07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==";
+      };
+    };
+    "ecc-jsbn-0.1.2" = {
+      name = "ecc-jsbn";
+      packageName = "ecc-jsbn";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
+        sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+      };
+    };
+    "electron-to-chromium-1.3.555" = {
+      name = "electron-to-chromium";
+      packageName = "electron-to-chromium";
+      version = "1.3.555";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.555.tgz";
+        sha512 = "/55x3nF2feXFZ5tdGUOr00TxnUjUgdxhrn+eCJ1FAcoAt+cKQTjQkUC5XF4frMWE1R5sjHk+JueuBalimfe5Pg==";
+      };
+    };
+    "emittery-0.7.1" = {
+      name = "emittery";
+      packageName = "emittery";
+      version = "0.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emittery/-/emittery-0.7.1.tgz";
+        sha512 = "d34LN4L6h18Bzz9xpoku2nPwKxCPlPMr3EEKTkoEBi+1/+b0lcRkRJ1UVyyZaKNeqGR3swcGl6s390DNO4YVgQ==";
+      };
+    };
+    "emoji-regex-7.0.3" = {
+      name = "emoji-regex";
+      packageName = "emoji-regex";
+      version = "7.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz";
+        sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==";
+      };
+    };
+    "emoji-regex-8.0.0" = {
+      name = "emoji-regex";
+      packageName = "emoji-regex";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz";
+        sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==";
+      };
+    };
+    "enabled-2.0.0" = {
+      name = "enabled";
+      packageName = "enabled";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz";
+        sha512 = "AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==";
+      };
+    };
+    "end-of-stream-1.4.4" = {
+      name = "end-of-stream";
+      packageName = "end-of-stream";
+      version = "1.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz";
+        sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==";
+      };
+    };
+    "enquirer-2.3.6" = {
+      name = "enquirer";
+      packageName = "enquirer";
+      version = "2.3.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz";
+        sha512 = "yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==";
+      };
+    };
+    "error-ex-1.3.2" = {
+      name = "error-ex";
+      packageName = "error-ex";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz";
+        sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
+      };
+    };
+    "es5-ext-0.10.53" = {
+      name = "es5-ext";
+      packageName = "es5-ext";
+      version = "0.10.53";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz";
+        sha512 = "Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==";
+      };
+    };
+    "es6-iterator-2.0.3" = {
+      name = "es6-iterator";
+      packageName = "es6-iterator";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz";
+        sha1 = "a7de889141a05a94b0854403b2d0a0fbfa98f3b7";
+      };
+    };
+    "es6-map-0.1.5" = {
+      name = "es6-map";
+      packageName = "es6-map";
+      version = "0.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz";
+        sha1 = "9136e0503dcc06a301690f0bb14ff4e364e949f0";
+      };
+    };
+    "es6-set-0.1.5" = {
+      name = "es6-set";
+      packageName = "es6-set";
+      version = "0.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz";
+        sha1 = "d2b3ec5d4d800ced818db538d28974db0a73ccb1";
+      };
+    };
+    "es6-symbol-3.1.1" = {
+      name = "es6-symbol";
+      packageName = "es6-symbol";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz";
+        sha1 = "bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77";
+      };
+    };
+    "es6-symbol-3.1.3" = {
+      name = "es6-symbol";
+      packageName = "es6-symbol";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz";
+        sha512 = "NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==";
+      };
+    };
+    "escalade-3.0.2" = {
+      name = "escalade";
+      packageName = "escalade";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escalade/-/escalade-3.0.2.tgz";
+        sha512 = "gPYAU37hYCUhW5euPeR+Y74F7BL+IBsV93j5cvGriSaD1aG6MGsqsV1yamRdrWrb2j3aiZvb0X+UBOWpx3JWtQ==";
+      };
+    };
+    "escape-string-regexp-1.0.5" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
+        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+      };
+    };
+    "escape-string-regexp-2.0.0" = {
+      name = "escape-string-regexp";
+      packageName = "escape-string-regexp";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz";
+        sha512 = "UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==";
+      };
+    };
+    "escodegen-1.14.3" = {
+      name = "escodegen";
+      packageName = "escodegen";
+      version = "1.14.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz";
+        sha512 = "qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==";
+      };
+    };
+    "eslint-7.7.0" = {
+      name = "eslint";
+      packageName = "eslint";
+      version = "7.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint/-/eslint-7.7.0.tgz";
+        sha512 = "1KUxLzos0ZVsyL81PnRN335nDtQ8/vZUD6uMtWbF+5zDtjKcsklIi78XoE0MVL93QvWTu+E5y44VyyCsOMBrIg==";
+      };
+    };
+    "eslint-config-google-0.14.0" = {
+      name = "eslint-config-google";
+      packageName = "eslint-config-google";
+      version = "0.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-config-google/-/eslint-config-google-0.14.0.tgz";
+        sha512 = "WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==";
+      };
+    };
+    "eslint-plugin-jest-23.20.0" = {
+      name = "eslint-plugin-jest";
+      packageName = "eslint-plugin-jest";
+      version = "23.20.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.20.0.tgz";
+        sha512 = "+6BGQt85OREevBDWCvhqj1yYA4+BFK4XnRZSGJionuEYmcglMZYLNNBBemwzbqUAckURaHdJSBcjHPyrtypZOw==";
+      };
+    };
+    "eslint-scope-5.1.0" = {
+      name = "eslint-scope";
+      packageName = "eslint-scope";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz";
+        sha512 = "iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==";
+      };
+    };
+    "eslint-utils-2.1.0" = {
+      name = "eslint-utils";
+      packageName = "eslint-utils";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz";
+        sha512 = "w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==";
+      };
+    };
+    "eslint-visitor-keys-1.3.0" = {
+      name = "eslint-visitor-keys";
+      packageName = "eslint-visitor-keys";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
+        sha512 = "6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==";
+      };
+    };
+    "espree-7.3.0" = {
+      name = "espree";
+      packageName = "espree";
+      version = "7.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/espree/-/espree-7.3.0.tgz";
+        sha512 = "dksIWsvKCixn1yrEXO8UosNSxaDoSYpq9reEjZSbHLpT5hpaCAKTLBwq0RHtLrIr+c0ByiYzWT8KTMRzoRCNlw==";
+      };
+    };
+    "esprima-4.0.1" = {
+      name = "esprima";
+      packageName = "esprima";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz";
+        sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
+      };
+    };
+    "esquery-1.3.1" = {
+      name = "esquery";
+      packageName = "esquery";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz";
+        sha512 = "olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==";
+      };
+    };
+    "esrecurse-4.2.1" = {
+      name = "esrecurse";
+      packageName = "esrecurse";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz";
+        sha512 = "64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==";
+      };
+    };
+    "estraverse-4.3.0" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "4.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz";
+        sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==";
+      };
+    };
+    "estraverse-5.2.0" = {
+      name = "estraverse";
+      packageName = "estraverse";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz";
+        sha512 = "BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==";
+      };
+    };
+    "esutils-2.0.3" = {
+      name = "esutils";
+      packageName = "esutils";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz";
+        sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
+      };
+    };
+    "event-emitter-0.3.5" = {
+      name = "event-emitter";
+      packageName = "event-emitter";
+      version = "0.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz";
+        sha1 = "df8c69eef1647923c7157b9ce83840610b02cc39";
+      };
+    };
+    "exec-sh-0.3.4" = {
+      name = "exec-sh";
+      packageName = "exec-sh";
+      version = "0.3.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.4.tgz";
+        sha512 = "sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A==";
+      };
+    };
+    "execa-1.0.0" = {
+      name = "execa";
+      packageName = "execa";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz";
+        sha512 = "adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==";
+      };
+    };
+    "execa-4.0.3" = {
+      name = "execa";
+      packageName = "execa";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/execa/-/execa-4.0.3.tgz";
+        sha512 = "WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A==";
+      };
+    };
+    "exit-0.1.2" = {
+      name = "exit";
+      packageName = "exit";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz";
+        sha1 = "0632638f8d877cc82107d30a0fff1a17cba1cd0c";
+      };
+    };
+    "expand-brackets-2.1.4" = {
+      name = "expand-brackets";
+      packageName = "expand-brackets";
+      version = "2.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz";
+        sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
+      };
+    };
+    "expand-template-2.0.3" = {
+      name = "expand-template";
+      packageName = "expand-template";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz";
+        sha512 = "XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==";
+      };
+    };
+    "expect-26.4.2" = {
+      name = "expect";
+      packageName = "expect";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/expect/-/expect-26.4.2.tgz";
+        sha512 = "IlJ3X52Z0lDHm7gjEp+m76uX46ldH5VpqmU0006vqDju/285twh7zaWMRhs67VpQhBwjjMchk+p5aA0VkERCAA==";
+      };
+    };
+    "ext-1.4.0" = {
+      name = "ext";
+      packageName = "ext";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz";
+        sha512 = "Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==";
+      };
+    };
+    "extend-3.0.2" = {
+      name = "extend";
+      packageName = "extend";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz";
+        sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
+      };
+    };
+    "extend-shallow-2.0.1" = {
+      name = "extend-shallow";
+      packageName = "extend-shallow";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz";
+        sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+      };
+    };
+    "extend-shallow-3.0.2" = {
+      name = "extend-shallow";
+      packageName = "extend-shallow";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz";
+        sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+      };
+    };
+    "extglob-2.0.4" = {
+      name = "extglob";
+      packageName = "extglob";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz";
+        sha512 = "Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==";
+      };
+    };
+    "extsprintf-1.3.0" = {
+      name = "extsprintf";
+      packageName = "extsprintf";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz";
+        sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+      };
+    };
+    "fast-deep-equal-3.1.3" = {
+      name = "fast-deep-equal";
+      packageName = "fast-deep-equal";
+      version = "3.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+        sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
+      };
+    };
+    "fast-json-stable-stringify-2.1.0" = {
+      name = "fast-json-stable-stringify";
+      packageName = "fast-json-stable-stringify";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
+        sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
+      };
+    };
+    "fast-levenshtein-2.0.6" = {
+      name = "fast-levenshtein";
+      packageName = "fast-levenshtein";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+        sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+      };
+    };
+    "fast-safe-stringify-2.0.7" = {
+      name = "fast-safe-stringify";
+      packageName = "fast-safe-stringify";
+      version = "2.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz";
+        sha512 = "Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==";
+      };
+    };
+    "fb-watchman-2.0.1" = {
+      name = "fb-watchman";
+      packageName = "fb-watchman";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz";
+        sha512 = "DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==";
+      };
+    };
+    "fecha-4.2.0" = {
+      name = "fecha";
+      packageName = "fecha";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz";
+        sha512 = "aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==";
+      };
+    };
+    "file-entry-cache-5.0.1" = {
+      name = "file-entry-cache";
+      packageName = "file-entry-cache";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz";
+        sha512 = "bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==";
+      };
+    };
+    "file-uri-to-path-1.0.0" = {
+      name = "file-uri-to-path";
+      packageName = "file-uri-to-path";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
+        sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==";
+      };
+    };
+    "fill-range-4.0.0" = {
+      name = "fill-range";
+      packageName = "fill-range";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz";
+        sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
+      };
+    };
+    "fill-range-7.0.1" = {
+      name = "fill-range";
+      packageName = "fill-range";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz";
+        sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
+      };
+    };
+    "find-up-4.1.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz";
+        sha512 = "PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==";
+      };
+    };
+    "flat-cache-2.0.1" = {
+      name = "flat-cache";
+      packageName = "flat-cache";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz";
+        sha512 = "LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==";
+      };
+    };
+    "flatted-2.0.2" = {
+      name = "flatted";
+      packageName = "flatted";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz";
+        sha512 = "r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==";
+      };
+    };
+    "fn.name-1.1.0" = {
+      name = "fn.name";
+      packageName = "fn.name";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz";
+        sha512 = "GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==";
+      };
+    };
+    "follow-redirects-1.13.0" = {
+      name = "follow-redirects";
+      packageName = "follow-redirects";
+      version = "1.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.0.tgz";
+        sha512 = "aq6gF1BEKje4a9i9+5jimNFIpq4Q1WiwBToeRK5NvZBd/TRsmW8BsJfOEGkr76TbOyPVD3OVDN910EcUNtRYEA==";
+      };
+    };
+    "for-in-1.0.2" = {
+      name = "for-in";
+      packageName = "for-in";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz";
+        sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
+      };
+    };
+    "forever-agent-0.6.1" = {
+      name = "forever-agent";
+      packageName = "forever-agent";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz";
+        sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+      };
+    };
+    "form-data-2.3.3" = {
+      name = "form-data";
+      packageName = "form-data";
+      version = "2.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz";
+        sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==";
+      };
+    };
+    "fragment-cache-0.2.1" = {
+      name = "fragment-cache";
+      packageName = "fragment-cache";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz";
+        sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+      };
+    };
+    "fs-constants-1.0.0" = {
+      name = "fs-constants";
+      packageName = "fs-constants";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz";
+        sha512 = "y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==";
+      };
+    };
+    "fs-extra-9.0.1" = {
+      name = "fs-extra";
+      packageName = "fs-extra";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz";
+        sha512 = "h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==";
+      };
+    };
+    "fs-readdir-recursive-1.1.0" = {
+      name = "fs-readdir-recursive";
+      packageName = "fs-readdir-recursive";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs-readdir-recursive/-/fs-readdir-recursive-1.1.0.tgz";
+        sha512 = "GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==";
+      };
+    };
+    "fs.realpath-1.0.0" = {
+      name = "fs.realpath";
+      packageName = "fs.realpath";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz";
+        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+      };
+    };
+    "fsevents-1.2.13" = {
+      name = "fsevents";
+      packageName = "fsevents";
+      version = "1.2.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz";
+        sha512 = "oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==";
+      };
+    };
+    "fsevents-2.1.3" = {
+      name = "fsevents";
+      packageName = "fsevents";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz";
+        sha512 = "Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==";
+      };
+    };
+    "function-bind-1.1.1" = {
+      name = "function-bind";
+      packageName = "function-bind";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz";
+        sha512 = "yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==";
+      };
+    };
+    "functional-red-black-tree-1.0.1" = {
+      name = "functional-red-black-tree";
+      packageName = "functional-red-black-tree";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
+        sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
+      };
+    };
+    "gauge-2.7.4" = {
+      name = "gauge";
+      packageName = "gauge";
+      version = "2.7.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz";
+        sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7";
+      };
+    };
+    "gensync-1.0.0-beta.1" = {
+      name = "gensync";
+      packageName = "gensync";
+      version = "1.0.0-beta.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz";
+        sha512 = "r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg==";
+      };
+    };
+    "get-caller-file-2.0.5" = {
+      name = "get-caller-file";
+      packageName = "get-caller-file";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz";
+        sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
+      };
+    };
+    "get-package-type-0.1.0" = {
+      name = "get-package-type";
+      packageName = "get-package-type";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz";
+        sha512 = "pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==";
+      };
+    };
+    "get-stream-4.1.0" = {
+      name = "get-stream";
+      packageName = "get-stream";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz";
+        sha512 = "GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==";
+      };
+    };
+    "get-stream-5.2.0" = {
+      name = "get-stream";
+      packageName = "get-stream";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz";
+        sha512 = "nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==";
+      };
+    };
+    "get-value-2.0.6" = {
+      name = "get-value";
+      packageName = "get-value";
+      version = "2.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz";
+        sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+      };
+    };
+    "getpass-0.1.7" = {
+      name = "getpass";
+      packageName = "getpass";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz";
+        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+      };
+    };
+    "git-last-commit-1.0.0" = {
+      name = "git-last-commit";
+      packageName = "git-last-commit";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/git-last-commit/-/git-last-commit-1.0.0.tgz";
+        sha512 = "wpnmsd2dW1MnoencljcWO/06VUealfMaY40ZjK5t3v9ljL+bKCMbNaTn/YzwIh4pDo2hk5QcN+pLzUJ8aWB17A==";
+      };
+    };
+    "github-from-package-0.0.0" = {
+      name = "github-from-package";
+      packageName = "github-from-package";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz";
+        sha1 = "97fb5d96bfde8973313f20e8288ef9a167fa64ce";
+      };
+    };
+    "glob-7.1.6" = {
+      name = "glob";
+      packageName = "glob";
+      version = "7.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz";
+        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
+      };
+    };
+    "glob-parent-3.1.0" = {
+      name = "glob-parent";
+      packageName = "glob-parent";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz";
+        sha1 = "9e6af6299d8d3bd2bd40430832bd113df906c5ae";
+      };
+    };
+    "glob-parent-5.1.1" = {
+      name = "glob-parent";
+      packageName = "glob-parent";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz";
+        sha512 = "FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==";
+      };
+    };
+    "glob-stream-6.1.0" = {
+      name = "glob-stream";
+      packageName = "glob-stream";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz";
+        sha1 = "7045c99413b3eb94888d83ab46d0b404cc7bdde4";
+      };
+    };
+    "globals-11.12.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "11.12.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz";
+        sha512 = "WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==";
+      };
+    };
+    "globals-12.4.0" = {
+      name = "globals";
+      packageName = "globals";
+      version = "12.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz";
+        sha512 = "BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==";
+      };
+    };
+    "glossy-0.1.7" = {
+      name = "glossy";
+      packageName = "glossy";
+      version = "0.1.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/glossy/-/glossy-0.1.7.tgz";
+        sha1 = "769b5984a96f6066ab9ea758224825ee6c210f0b";
+      };
+    };
+    "graceful-fs-4.2.4" = {
+      name = "graceful-fs";
+      packageName = "graceful-fs";
+      version = "4.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz";
+        sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==";
+      };
+    };
+    "growly-1.3.0" = {
+      name = "growly";
+      packageName = "growly";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz";
+        sha1 = "f10748cbe76af964b7c96c93c6bcc28af120c081";
+      };
+    };
+    "handlebars-4.7.6" = {
+      name = "handlebars";
+      packageName = "handlebars";
+      version = "4.7.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz";
+        sha512 = "1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==";
+      };
+    };
+    "har-schema-2.0.0" = {
+      name = "har-schema";
+      packageName = "har-schema";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz";
+        sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+      };
+    };
+    "har-validator-5.1.5" = {
+      name = "har-validator";
+      packageName = "har-validator";
+      version = "5.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz";
+        sha512 = "nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==";
+      };
+    };
+    "has-flag-3.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz";
+        sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+      };
+    };
+    "has-flag-4.0.0" = {
+      name = "has-flag";
+      packageName = "has-flag";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz";
+        sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
+      };
+    };
+    "has-symbols-1.0.1" = {
+      name = "has-symbols";
+      packageName = "has-symbols";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz";
+        sha512 = "PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==";
+      };
+    };
+    "has-unicode-2.0.1" = {
+      name = "has-unicode";
+      packageName = "has-unicode";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz";
+        sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+      };
+    };
+    "has-value-0.3.1" = {
+      name = "has-value";
+      packageName = "has-value";
+      version = "0.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz";
+        sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
+      };
+    };
+    "has-value-1.0.0" = {
+      name = "has-value";
+      packageName = "has-value";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz";
+        sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
+      };
+    };
+    "has-values-0.1.4" = {
+      name = "has-values";
+      packageName = "has-values";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz";
+        sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
+      };
+    };
+    "has-values-1.0.0" = {
+      name = "has-values";
+      packageName = "has-values";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz";
+        sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
+      };
+    };
+    "help-me-1.1.0" = {
+      name = "help-me";
+      packageName = "help-me";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/help-me/-/help-me-1.1.0.tgz";
+        sha1 = "8f2d508d0600b4a456da2f086556e7e5c056a3c6";
+      };
+    };
+    "highlight.js-10.1.2" = {
+      name = "highlight.js";
+      packageName = "highlight.js";
+      version = "10.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/highlight.js/-/highlight.js-10.1.2.tgz";
+        sha512 = "Q39v/Mn5mfBlMff9r+zzA+gWxRsCRKwEMvYTiisLr/XUiFI/4puWt0Ojdko3R3JCNWGdOWaA5g/Yxqa23kC5AA==";
+      };
+    };
+    "hosted-git-info-2.8.8" = {
+      name = "hosted-git-info";
+      packageName = "hosted-git-info";
+      version = "2.8.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz";
+        sha512 = "f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==";
+      };
+    };
+    "html-encoding-sniffer-2.0.1" = {
+      name = "html-encoding-sniffer";
+      packageName = "html-encoding-sniffer";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz";
+        sha512 = "D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==";
+      };
+    };
+    "html-escaper-2.0.2" = {
+      name = "html-escaper";
+      packageName = "html-escaper";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz";
+        sha512 = "H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==";
+      };
+    };
+    "http-signature-1.2.0" = {
+      name = "http-signature";
+      packageName = "http-signature";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz";
+        sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+      };
+    };
+    "https-proxy-agent-5.0.0" = {
+      name = "https-proxy-agent";
+      packageName = "https-proxy-agent";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz";
+        sha512 = "EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==";
+      };
+    };
+    "human-signals-1.1.1" = {
+      name = "human-signals";
+      packageName = "human-signals";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz";
+        sha512 = "SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==";
+      };
+    };
+    "humanize-duration-3.23.1" = {
+      name = "humanize-duration";
+      packageName = "humanize-duration";
+      version = "3.23.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/humanize-duration/-/humanize-duration-3.23.1.tgz";
+        sha512 = "aoOEkomAETmVuQyBx4E7/LfPlC9s8pAA/USl7vFRQpDjepo3aiyvFfOhtXSDqPowdBVPFUZ7onG/KyuolX0qPg==";
+      };
+    };
+    "iconv-lite-0.4.24" = {
+      name = "iconv-lite";
+      packageName = "iconv-lite";
+      version = "0.4.24";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz";
+        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
+      };
+    };
+    "ieee754-1.1.13" = {
+      name = "ieee754";
+      packageName = "ieee754";
+      version = "1.1.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz";
+        sha512 = "4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==";
+      };
+    };
+    "ignore-4.0.6" = {
+      name = "ignore";
+      packageName = "ignore";
+      version = "4.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz";
+        sha512 = "cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==";
+      };
+    };
+    "import-fresh-3.2.1" = {
+      name = "import-fresh";
+      packageName = "import-fresh";
+      version = "3.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz";
+        sha512 = "6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==";
+      };
+    };
+    "import-local-3.0.2" = {
+      name = "import-local";
+      packageName = "import-local";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz";
+        sha512 = "vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==";
+      };
+    };
+    "imurmurhash-0.1.4" = {
+      name = "imurmurhash";
+      packageName = "imurmurhash";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz";
+        sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+      };
+    };
+    "inflight-1.0.6" = {
+      name = "inflight";
+      packageName = "inflight";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz";
+        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+      };
+    };
+    "inherits-2.0.4" = {
+      name = "inherits";
+      packageName = "inherits";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz";
+        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
+      };
+    };
+    "ini-1.3.5" = {
+      name = "ini";
+      packageName = "ini";
+      version = "1.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz";
+        sha512 = "RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==";
+      };
+    };
+    "interpret-1.4.0" = {
+      name = "interpret";
+      packageName = "interpret";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz";
+        sha512 = "agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==";
+      };
+    };
+    "invariant-2.2.4" = {
+      name = "invariant";
+      packageName = "invariant";
+      version = "2.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz";
+        sha512 = "phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==";
+      };
+    };
+    "ip-regex-2.1.0" = {
+      name = "ip-regex";
+      packageName = "ip-regex";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz";
+        sha1 = "fa78bf5d2e6913c911ce9f819ee5146bb6d844e9";
+      };
+    };
+    "is-absolute-1.0.0" = {
+      name = "is-absolute";
+      packageName = "is-absolute";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz";
+        sha512 = "dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==";
+      };
+    };
+    "is-accessor-descriptor-0.1.6" = {
+      name = "is-accessor-descriptor";
+      packageName = "is-accessor-descriptor";
+      version = "0.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
+        sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
+      };
+    };
+    "is-accessor-descriptor-1.0.0" = {
+      name = "is-accessor-descriptor";
+      packageName = "is-accessor-descriptor";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
+        sha512 = "m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==";
+      };
+    };
+    "is-arrayish-0.2.1" = {
+      name = "is-arrayish";
+      packageName = "is-arrayish";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz";
+        sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+      };
+    };
+    "is-arrayish-0.3.2" = {
+      name = "is-arrayish";
+      packageName = "is-arrayish";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz";
+        sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==";
+      };
+    };
+    "is-binary-path-1.0.1" = {
+      name = "is-binary-path";
+      packageName = "is-binary-path";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz";
+        sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
+      };
+    };
+    "is-buffer-1.1.6" = {
+      name = "is-buffer";
+      packageName = "is-buffer";
+      version = "1.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz";
+        sha512 = "NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==";
+      };
+    };
+    "is-ci-2.0.0" = {
+      name = "is-ci";
+      packageName = "is-ci";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz";
+        sha512 = "YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==";
+      };
+    };
+    "is-data-descriptor-0.1.4" = {
+      name = "is-data-descriptor";
+      packageName = "is-data-descriptor";
+      version = "0.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
+        sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
+      };
+    };
+    "is-data-descriptor-1.0.0" = {
+      name = "is-data-descriptor";
+      packageName = "is-data-descriptor";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
+        sha512 = "jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==";
+      };
+    };
+    "is-descriptor-0.1.6" = {
+      name = "is-descriptor";
+      packageName = "is-descriptor";
+      version = "0.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz";
+        sha512 = "avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==";
+      };
+    };
+    "is-descriptor-1.0.2" = {
+      name = "is-descriptor";
+      packageName = "is-descriptor";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz";
+        sha512 = "2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==";
+      };
+    };
+    "is-docker-2.1.1" = {
+      name = "is-docker";
+      packageName = "is-docker";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz";
+        sha512 = "ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==";
+      };
+    };
+    "is-extendable-0.1.1" = {
+      name = "is-extendable";
+      packageName = "is-extendable";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz";
+        sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+      };
+    };
+    "is-extendable-1.0.1" = {
+      name = "is-extendable";
+      packageName = "is-extendable";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz";
+        sha512 = "arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==";
+      };
+    };
+    "is-extglob-2.1.1" = {
+      name = "is-extglob";
+      packageName = "is-extglob";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz";
+        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+      };
+    };
+    "is-fullwidth-code-point-1.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+        sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+      };
+    };
+    "is-fullwidth-code-point-2.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
+        sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+      };
+    };
+    "is-fullwidth-code-point-3.0.0" = {
+      name = "is-fullwidth-code-point";
+      packageName = "is-fullwidth-code-point";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
+        sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
+      };
+    };
+    "is-generator-fn-2.1.0" = {
+      name = "is-generator-fn";
+      packageName = "is-generator-fn";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz";
+        sha512 = "cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==";
+      };
+    };
+    "is-glob-3.1.0" = {
+      name = "is-glob";
+      packageName = "is-glob";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz";
+        sha1 = "7ba5ae24217804ac70707b96922567486cc3e84a";
+      };
+    };
+    "is-glob-4.0.1" = {
+      name = "is-glob";
+      packageName = "is-glob";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz";
+        sha512 = "5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==";
+      };
+    };
+    "is-negated-glob-1.0.0" = {
+      name = "is-negated-glob";
+      packageName = "is-negated-glob";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz";
+        sha1 = "6910bca5da8c95e784b5751b976cf5a10fee36d2";
+      };
+    };
+    "is-number-3.0.0" = {
+      name = "is-number";
+      packageName = "is-number";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz";
+        sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+      };
+    };
+    "is-number-7.0.0" = {
+      name = "is-number";
+      packageName = "is-number";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz";
+        sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
+      };
+    };
+    "is-plain-object-2.0.4" = {
+      name = "is-plain-object";
+      packageName = "is-plain-object";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz";
+        sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==";
+      };
+    };
+    "is-potential-custom-element-name-1.0.0" = {
+      name = "is-potential-custom-element-name";
+      packageName = "is-potential-custom-element-name";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz";
+        sha1 = "0c52e54bcca391bb2c494b21e8626d7336c6e397";
+      };
+    };
+    "is-relative-1.0.0" = {
+      name = "is-relative";
+      packageName = "is-relative";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz";
+        sha512 = "Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==";
+      };
+    };
+    "is-stream-1.1.0" = {
+      name = "is-stream";
+      packageName = "is-stream";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz";
+        sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
+      };
+    };
+    "is-stream-2.0.0" = {
+      name = "is-stream";
+      packageName = "is-stream";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz";
+        sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==";
+      };
+    };
+    "is-typedarray-1.0.0" = {
+      name = "is-typedarray";
+      packageName = "is-typedarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz";
+        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+      };
+    };
+    "is-unc-path-1.0.0" = {
+      name = "is-unc-path";
+      packageName = "is-unc-path";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz";
+        sha512 = "mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==";
+      };
+    };
+    "is-windows-1.0.2" = {
+      name = "is-windows";
+      packageName = "is-windows";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz";
+        sha512 = "eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==";
+      };
+    };
+    "is-wsl-2.2.0" = {
+      name = "is-wsl";
+      packageName = "is-wsl";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz";
+        sha512 = "fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==";
+      };
+    };
+    "isarray-1.0.0" = {
+      name = "isarray";
+      packageName = "isarray";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz";
+        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+      };
+    };
+    "isexe-2.0.0" = {
+      name = "isexe";
+      packageName = "isexe";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz";
+        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+      };
+    };
+    "isobject-2.1.0" = {
+      name = "isobject";
+      packageName = "isobject";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz";
+        sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
+      };
+    };
+    "isobject-3.0.1" = {
+      name = "isobject";
+      packageName = "isobject";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz";
+        sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
+      };
+    };
+    "isstream-0.1.2" = {
+      name = "isstream";
+      packageName = "isstream";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz";
+        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+      };
+    };
+    "istanbul-lib-coverage-3.0.0" = {
+      name = "istanbul-lib-coverage";
+      packageName = "istanbul-lib-coverage";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz";
+        sha512 = "UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==";
+      };
+    };
+    "istanbul-lib-instrument-4.0.3" = {
+      name = "istanbul-lib-instrument";
+      packageName = "istanbul-lib-instrument";
+      version = "4.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz";
+        sha512 = "BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==";
+      };
+    };
+    "istanbul-lib-report-3.0.0" = {
+      name = "istanbul-lib-report";
+      packageName = "istanbul-lib-report";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz";
+        sha512 = "wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==";
+      };
+    };
+    "istanbul-lib-source-maps-4.0.0" = {
+      name = "istanbul-lib-source-maps";
+      packageName = "istanbul-lib-source-maps";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz";
+        sha512 = "c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==";
+      };
+    };
+    "istanbul-reports-3.0.2" = {
+      name = "istanbul-reports";
+      packageName = "istanbul-reports";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz";
+        sha512 = "9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==";
+      };
+    };
+    "jest-26.4.2" = {
+      name = "jest";
+      packageName = "jest";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest/-/jest-26.4.2.tgz";
+        sha512 = "LLCjPrUh98Ik8CzW8LLVnSCfLaiY+wbK53U7VxnFSX7Q+kWC4noVeDvGWIFw0Amfq1lq2VfGm7YHWSLBV62MJw==";
+      };
+    };
+    "jest-changed-files-26.3.0" = {
+      name = "jest-changed-files";
+      packageName = "jest-changed-files";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.3.0.tgz";
+        sha512 = "1C4R4nijgPltX6fugKxM4oQ18zimS7LqQ+zTTY8lMCMFPrxqBFb7KJH0Z2fRQJvw2Slbaipsqq7s1mgX5Iot+g==";
+      };
+    };
+    "jest-cli-26.4.2" = {
+      name = "jest-cli";
+      packageName = "jest-cli";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-cli/-/jest-cli-26.4.2.tgz";
+        sha512 = "zb+lGd/SfrPvoRSC/0LWdaWCnscXc1mGYW//NP4/tmBvRPT3VntZ2jtKUONsRi59zc5JqmsSajA9ewJKFYp8Cw==";
+      };
+    };
+    "jest-config-26.4.2" = {
+      name = "jest-config";
+      packageName = "jest-config";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-config/-/jest-config-26.4.2.tgz";
+        sha512 = "QBf7YGLuToiM8PmTnJEdRxyYy3mHWLh24LJZKVdXZ2PNdizSe1B/E8bVm+HYcjbEzGuVXDv/di+EzdO/6Gq80A==";
+      };
+    };
+    "jest-diff-25.5.0" = {
+      name = "jest-diff";
+      packageName = "jest-diff";
+      version = "25.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-diff/-/jest-diff-25.5.0.tgz";
+        sha512 = "z1kygetuPiREYdNIumRpAHY6RXiGmp70YHptjdaxTWGmA085W3iCnXNx0DhflK3vwrKmrRWyY1wUpkPMVxMK7A==";
+      };
+    };
+    "jest-diff-26.4.2" = {
+      name = "jest-diff";
+      packageName = "jest-diff";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-diff/-/jest-diff-26.4.2.tgz";
+        sha512 = "6T1XQY8U28WH0Z5rGpQ+VqZSZz8EN8rZcBtfvXaOkbwxIEeRre6qnuZQlbY1AJ4MKDxQF8EkrCvK+hL/VkyYLQ==";
+      };
+    };
+    "jest-docblock-26.0.0" = {
+      name = "jest-docblock";
+      packageName = "jest-docblock";
+      version = "26.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz";
+        sha512 = "RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==";
+      };
+    };
+    "jest-each-26.4.2" = {
+      name = "jest-each";
+      packageName = "jest-each";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-each/-/jest-each-26.4.2.tgz";
+        sha512 = "p15rt8r8cUcRY0Mvo1fpkOGYm7iI8S6ySxgIdfh3oOIv+gHwrHTy5VWCGOecWUhDsit4Nz8avJWdT07WLpbwDA==";
+      };
+    };
+    "jest-environment-jsdom-26.3.0" = {
+      name = "jest-environment-jsdom";
+      packageName = "jest-environment-jsdom";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.3.0.tgz";
+        sha512 = "zra8He2btIMJkAzvLaiZ9QwEPGEetbxqmjEBQwhH3CA+Hhhu0jSiEJxnJMbX28TGUvPLxBt/zyaTLrOPF4yMJA==";
+      };
+    };
+    "jest-environment-node-26.3.0" = {
+      name = "jest-environment-node";
+      packageName = "jest-environment-node";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.3.0.tgz";
+        sha512 = "c9BvYoo+FGcMj5FunbBgtBnbR5qk3uky8PKyRVpSfe2/8+LrNQMiXX53z6q2kY+j15SkjQCOSL/6LHnCPLVHNw==";
+      };
+    };
+    "jest-get-type-25.2.6" = {
+      name = "jest-get-type";
+      packageName = "jest-get-type";
+      version = "25.2.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-get-type/-/jest-get-type-25.2.6.tgz";
+        sha512 = "DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==";
+      };
+    };
+    "jest-get-type-26.3.0" = {
+      name = "jest-get-type";
+      packageName = "jest-get-type";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz";
+        sha512 = "TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==";
+      };
+    };
+    "jest-haste-map-26.3.0" = {
+      name = "jest-haste-map";
+      packageName = "jest-haste-map";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.3.0.tgz";
+        sha512 = "DHWBpTJgJhLLGwE5Z1ZaqLTYqeODQIZpby0zMBsCU9iRFHYyhklYqP4EiG73j5dkbaAdSZhgB938mL51Q5LeZA==";
+      };
+    };
+    "jest-jasmine2-26.4.2" = {
+      name = "jest-jasmine2";
+      packageName = "jest-jasmine2";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.4.2.tgz";
+        sha512 = "z7H4EpCldHN1J8fNgsja58QftxBSL+JcwZmaXIvV9WKIM+x49F4GLHu/+BQh2kzRKHAgaN/E82od+8rTOBPyPA==";
+      };
+    };
+    "jest-leak-detector-26.4.2" = {
+      name = "jest-leak-detector";
+      packageName = "jest-leak-detector";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.4.2.tgz";
+        sha512 = "akzGcxwxtE+9ZJZRW+M2o+nTNnmQZxrHJxX/HjgDaU5+PLmY1qnQPnMjgADPGCRPhB+Yawe1iij0REe+k/aHoA==";
+      };
+    };
+    "jest-matcher-utils-26.4.2" = {
+      name = "jest-matcher-utils";
+      packageName = "jest-matcher-utils";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.4.2.tgz";
+        sha512 = "KcbNqWfWUG24R7tu9WcAOKKdiXiXCbMvQYT6iodZ9k1f7065k0keUOW6XpJMMvah+hTfqkhJhRXmA3r3zMAg0Q==";
+      };
+    };
+    "jest-message-util-26.3.0" = {
+      name = "jest-message-util";
+      packageName = "jest-message-util";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.3.0.tgz";
+        sha512 = "xIavRYqr4/otGOiLxLZGj3ieMmjcNE73Ui+LdSW/Y790j5acqCsAdDiLIbzHCZMpN07JOENRWX5DcU+OQ+TjTA==";
+      };
+    };
+    "jest-mock-26.3.0" = {
+      name = "jest-mock";
+      packageName = "jest-mock";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-mock/-/jest-mock-26.3.0.tgz";
+        sha512 = "PeaRrg8Dc6mnS35gOo/CbZovoDPKAeB1FICZiuagAgGvbWdNNyjQjkOaGUa/3N3JtpQ/Mh9P4A2D4Fv51NnP8Q==";
+      };
+    };
+    "jest-pnp-resolver-1.2.2" = {
+      name = "jest-pnp-resolver";
+      packageName = "jest-pnp-resolver";
+      version = "1.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz";
+        sha512 = "olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==";
+      };
+    };
+    "jest-regex-util-26.0.0" = {
+      name = "jest-regex-util";
+      packageName = "jest-regex-util";
+      version = "26.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz";
+        sha512 = "Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==";
+      };
+    };
+    "jest-resolve-26.4.0" = {
+      name = "jest-resolve";
+      packageName = "jest-resolve";
+      version = "26.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.4.0.tgz";
+        sha512 = "bn/JoZTEXRSlEx3+SfgZcJAVuTMOksYq9xe9O6s4Ekg84aKBObEaVXKOEilULRqviSLAYJldnoWV9c07kwtiCg==";
+      };
+    };
+    "jest-resolve-dependencies-26.4.2" = {
+      name = "jest-resolve-dependencies";
+      packageName = "jest-resolve-dependencies";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.4.2.tgz";
+        sha512 = "ADHaOwqEcVc71uTfySzSowA/RdxUpCxhxa2FNLiin9vWLB1uLPad3we+JSSROq5+SrL9iYPdZZF8bdKM7XABTQ==";
+      };
+    };
+    "jest-runner-26.4.2" = {
+      name = "jest-runner";
+      packageName = "jest-runner";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-runner/-/jest-runner-26.4.2.tgz";
+        sha512 = "FgjDHeVknDjw1gRAYaoUoShe1K3XUuFMkIaXbdhEys+1O4bEJS8Avmn4lBwoMfL8O5oFTdWYKcf3tEJyyYyk8g==";
+      };
+    };
+    "jest-runtime-26.4.2" = {
+      name = "jest-runtime";
+      packageName = "jest-runtime";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.4.2.tgz";
+        sha512 = "4Pe7Uk5a80FnbHwSOk7ojNCJvz3Ks2CNQWT5Z7MJo4tX0jb3V/LThKvD9tKPNVNyeMH98J/nzGlcwc00R2dSHQ==";
+      };
+    };
+    "jest-serializer-26.3.0" = {
+      name = "jest-serializer";
+      packageName = "jest-serializer";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.3.0.tgz";
+        sha512 = "IDRBQBLPlKa4flg77fqg0n/pH87tcRKwe8zxOVTWISxGpPHYkRZ1dXKyh04JOja7gppc60+soKVZ791mruVdow==";
+      };
+    };
+    "jest-snapshot-26.4.2" = {
+      name = "jest-snapshot";
+      packageName = "jest-snapshot";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.4.2.tgz";
+        sha512 = "N6Uub8FccKlf5SBFnL2Ri/xofbaA68Cc3MGjP/NuwgnsvWh+9hLIR/DhrxbSiKXMY9vUW5dI6EW1eHaDHqe9sg==";
+      };
+    };
+    "jest-util-26.3.0" = {
+      name = "jest-util";
+      packageName = "jest-util";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-util/-/jest-util-26.3.0.tgz";
+        sha512 = "4zpn6bwV0+AMFN0IYhH/wnzIQzRaYVrz1A8sYnRnj4UXDXbOVtWmlaZkO9mipFqZ13okIfN87aDoJWB7VH6hcw==";
+      };
+    };
+    "jest-validate-26.4.2" = {
+      name = "jest-validate";
+      packageName = "jest-validate";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-validate/-/jest-validate-26.4.2.tgz";
+        sha512 = "blft+xDX7XXghfhY0mrsBCYhX365n8K5wNDC4XAcNKqqjEzsRUSXP44m6PL0QJEW2crxQFLLztVnJ4j7oPlQrQ==";
+      };
+    };
+    "jest-watcher-26.3.0" = {
+      name = "jest-watcher";
+      packageName = "jest-watcher";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.3.0.tgz";
+        sha512 = "XnLdKmyCGJ3VoF6G/p5ohbJ04q/vv5aH9ENI+i6BL0uu9WWB6Z7Z2lhQQk0d2AVZcRGp1yW+/TsoToMhBFPRdQ==";
+      };
+    };
+    "jest-worker-26.3.0" = {
+      name = "jest-worker";
+      packageName = "jest-worker";
+      version = "26.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jest-worker/-/jest-worker-26.3.0.tgz";
+        sha512 = "Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw==";
+      };
+    };
+    "js-tokens-4.0.0" = {
+      name = "js-tokens";
+      packageName = "js-tokens";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz";
+        sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
+      };
+    };
+    "js-yaml-3.14.0" = {
+      name = "js-yaml";
+      packageName = "js-yaml";
+      version = "3.14.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz";
+        sha512 = "/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==";
+      };
+    };
+    "jsbn-0.1.1" = {
+      name = "jsbn";
+      packageName = "jsbn";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz";
+        sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+      };
+    };
+    "jsdom-16.4.0" = {
+      name = "jsdom";
+      packageName = "jsdom";
+      version = "16.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz";
+        sha512 = "lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==";
+      };
+    };
+    "jsesc-0.5.0" = {
+      name = "jsesc";
+      packageName = "jsesc";
+      version = "0.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz";
+        sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
+      };
+    };
+    "jsesc-2.5.2" = {
+      name = "jsesc";
+      packageName = "jsesc";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz";
+        sha512 = "OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==";
+      };
+    };
+    "json-parse-even-better-errors-2.3.0" = {
+      name = "json-parse-even-better-errors";
+      packageName = "json-parse-even-better-errors";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.0.tgz";
+        sha512 = "o3aP+RsWDJZayj1SbHNQAI8x0v3T3SKiGoZlNYfbUP1S3omJQ6i9CnqADqkSPaOAxwua4/1YWx5CM7oiChJt2Q==";
+      };
+    };
+    "json-schema-0.2.3" = {
+      name = "json-schema";
+      packageName = "json-schema";
+      version = "0.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz";
+        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+      };
+    };
+    "json-schema-traverse-0.4.1" = {
+      name = "json-schema-traverse";
+      packageName = "json-schema-traverse";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
+        sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
+      };
+    };
+    "json-stable-stringify-1.0.1" = {
+      name = "json-stable-stringify";
+      packageName = "json-stable-stringify";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz";
+        sha1 = "9a759d39c5f2ff503fd5300646ed445f88c4f9af";
+      };
+    };
+    "json-stable-stringify-without-jsonify-1.0.1" = {
+      name = "json-stable-stringify-without-jsonify";
+      packageName = "json-stable-stringify-without-jsonify";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
+        sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
+      };
+    };
+    "json-stringify-safe-5.0.1" = {
+      name = "json-stringify-safe";
+      packageName = "json-stringify-safe";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
+        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+      };
+    };
+    "json5-2.1.3" = {
+      name = "json5";
+      packageName = "json5";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz";
+        sha512 = "KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==";
+      };
+    };
+    "jsonfile-6.0.1" = {
+      name = "jsonfile";
+      packageName = "jsonfile";
+      version = "6.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz";
+        sha512 = "jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==";
+      };
+    };
+    "jsonify-0.0.0" = {
+      name = "jsonify";
+      packageName = "jsonify";
+      version = "0.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz";
+        sha1 = "2c74b6ee41d93ca51b7b5aaee8f503631d252a73";
+      };
+    };
+    "jsprim-1.4.1" = {
+      name = "jsprim";
+      packageName = "jsprim";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz";
+        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+      };
+    };
+    "kind-of-3.2.2" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "3.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz";
+        sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+      };
+    };
+    "kind-of-4.0.0" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz";
+        sha1 = "20813df3d712928b207378691a45066fae72dd57";
+      };
+    };
+    "kind-of-5.1.0" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz";
+        sha512 = "NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==";
+      };
+    };
+    "kind-of-6.0.3" = {
+      name = "kind-of";
+      packageName = "kind-of";
+      version = "6.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz";
+        sha512 = "dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==";
+      };
+    };
+    "kleur-3.0.3" = {
+      name = "kleur";
+      packageName = "kleur";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz";
+        sha512 = "eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==";
+      };
+    };
+    "kuler-2.0.0" = {
+      name = "kuler";
+      packageName = "kuler";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz";
+        sha512 = "Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==";
+      };
+    };
+    "leven-2.1.0" = {
+      name = "leven";
+      packageName = "leven";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz";
+        sha1 = "c2e7a9f772094dee9d34202ae8acce4687875580";
+      };
+    };
+    "leven-3.1.0" = {
+      name = "leven";
+      packageName = "leven";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz";
+        sha512 = "qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==";
+      };
+    };
+    "levenary-1.1.1" = {
+      name = "levenary";
+      packageName = "levenary";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz";
+        sha512 = "mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==";
+      };
+    };
+    "levn-0.3.0" = {
+      name = "levn";
+      packageName = "levn";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz";
+        sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
+      };
+    };
+    "levn-0.4.1" = {
+      name = "levn";
+      packageName = "levn";
+      version = "0.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz";
+        sha512 = "+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==";
+      };
+    };
+    "lines-and-columns-1.1.6" = {
+      name = "lines-and-columns";
+      packageName = "lines-and-columns";
+      version = "1.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz";
+        sha1 = "1c00c743b433cd0a4e80758f7b64a57440d9ff00";
+      };
+    };
+    "locate-path-5.0.0" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz";
+        sha512 = "t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==";
+      };
+    };
+    "lodash-4.17.20" = {
+      name = "lodash";
+      packageName = "lodash";
+      version = "4.17.20";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz";
+        sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==";
+      };
+    };
+    "lodash.sortby-4.7.0" = {
+      name = "lodash.sortby";
+      packageName = "lodash.sortby";
+      version = "4.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz";
+        sha1 = "edd14c824e2cc9c1e0b0a1b42bb5210516a42438";
+      };
+    };
+    "logform-2.2.0" = {
+      name = "logform";
+      packageName = "logform";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz";
+        sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==";
+      };
+    };
+    "loose-envify-1.4.0" = {
+      name = "loose-envify";
+      packageName = "loose-envify";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz";
+        sha512 = "lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==";
+      };
+    };
+    "lunr-2.3.9" = {
+      name = "lunr";
+      packageName = "lunr";
+      version = "2.3.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz";
+        sha512 = "zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==";
+      };
+    };
+    "make-dir-2.1.0" = {
+      name = "make-dir";
+      packageName = "make-dir";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz";
+        sha512 = "LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==";
+      };
+    };
+    "make-dir-3.1.0" = {
+      name = "make-dir";
+      packageName = "make-dir";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz";
+        sha512 = "g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==";
+      };
+    };
+    "makeerror-1.0.11" = {
+      name = "makeerror";
+      packageName = "makeerror";
+      version = "1.0.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz";
+        sha1 = "e01a5c9109f2af79660e4e8b9587790184f5a96c";
+      };
+    };
+    "map-cache-0.2.2" = {
+      name = "map-cache";
+      packageName = "map-cache";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz";
+        sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
+      };
+    };
+    "map-visit-1.0.0" = {
+      name = "map-visit";
+      packageName = "map-visit";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz";
+        sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+      };
+    };
+    "marked-1.1.1" = {
+      name = "marked";
+      packageName = "marked";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/marked/-/marked-1.1.1.tgz";
+        sha512 = "mJzT8D2yPxoPh7h0UXkB+dBj4FykPJ2OIfxAWeIHrvoHDkFxukV/29QxoFQoPM6RLEwhIFdJpmKBlqVM3s2ZIw==";
+      };
+    };
+    "merge-stream-2.0.0" = {
+      name = "merge-stream";
+      packageName = "merge-stream";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz";
+        sha512 = "abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==";
+      };
+    };
+    "micromatch-3.1.10" = {
+      name = "micromatch";
+      packageName = "micromatch";
+      version = "3.1.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz";
+        sha512 = "MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==";
+      };
+    };
+    "micromatch-4.0.2" = {
+      name = "micromatch";
+      packageName = "micromatch";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/micromatch/-/micromatch-4.0.2.tgz";
+        sha512 = "y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q==";
+      };
+    };
+    "mime-db-1.44.0" = {
+      name = "mime-db";
+      packageName = "mime-db";
+      version = "1.44.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz";
+        sha512 = "/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==";
+      };
+    };
+    "mime-types-2.1.27" = {
+      name = "mime-types";
+      packageName = "mime-types";
+      version = "2.1.27";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz";
+        sha512 = "JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==";
+      };
+    };
+    "mimic-fn-2.1.0" = {
+      name = "mimic-fn";
+      packageName = "mimic-fn";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz";
+        sha512 = "OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==";
+      };
+    };
+    "mimic-response-2.1.0" = {
+      name = "mimic-response";
+      packageName = "mimic-response";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz";
+        sha512 = "wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==";
+      };
+    };
+    "minimatch-3.0.4" = {
+      name = "minimatch";
+      packageName = "minimatch";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz";
+        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
+      };
+    };
+    "minimist-1.2.5" = {
+      name = "minimist";
+      packageName = "minimist";
+      version = "1.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz";
+        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+      };
+    };
+    "mixin-deep-1.3.2" = {
+      name = "mixin-deep";
+      packageName = "mixin-deep";
+      version = "1.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz";
+        sha512 = "WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==";
+      };
+    };
+    "mixin-deep-2.0.1" = {
+      name = "mixin-deep";
+      packageName = "mixin-deep";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mixin-deep/-/mixin-deep-2.0.1.tgz";
+        sha512 = "imbHQNRglyaplMmjBLL3V5R6Bfq5oM+ivds3SKgc6oRtzErEnBUUc5No11Z2pilkUvl42gJvi285xTNswcKCMA==";
+      };
+    };
+    "mkdir-recursive-0.4.0" = {
+      name = "mkdir-recursive";
+      packageName = "mkdir-recursive";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdir-recursive/-/mkdir-recursive-0.4.0.tgz";
+        sha512 = "gbTtiEu8P/GSMh1lAa0YYNr8XIfDzFgnWtetw3Hfz9nw6YXySHNYOZF/uUTgyp8GHvFnNw/EG7VhOkD6zfVb6A==";
+      };
+    };
+    "mkdirp-0.5.5" = {
+      name = "mkdirp";
+      packageName = "mkdirp";
+      version = "0.5.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz";
+        sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
+      };
+    };
+    "mkdirp-classic-0.5.3" = {
+      name = "mkdirp-classic";
+      packageName = "mkdirp-classic";
+      version = "0.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz";
+        sha512 = "gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==";
+      };
+    };
+    "moment-2.27.0" = {
+      name = "moment";
+      packageName = "moment";
+      version = "2.27.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz";
+        sha512 = "al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==";
+      };
+    };
+    "mqtt-4.2.1" = {
+      name = "mqtt";
+      packageName = "mqtt";
+      version = "4.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mqtt/-/mqtt-4.2.1.tgz";
+        sha512 = "Iv893r+jWlo5GkNcPOfCGwW8M49IixwHiKLFFYTociEymSibUVCORVEjPXWPGzSxhn7BdlUeHicbRmWiv0Crkg==";
+      };
+    };
+    "mqtt-packet-6.4.0" = {
+      name = "mqtt-packet";
+      packageName = "mqtt-packet";
+      version = "6.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/mqtt-packet/-/mqtt-packet-6.4.0.tgz";
+        sha512 = "dNd1RPyBolklOR27hgHhy3TxkDk31ZaDu4ljAgJoHlnVsdACH8guwEZhpk3ZMn6GAdH6ENDLgtE285FHIiXzxA==";
+      };
+    };
+    "ms-2.0.0" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz";
+        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+      };
+    };
+    "ms-2.1.2" = {
+      name = "ms";
+      packageName = "ms";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz";
+        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
+      };
+    };
+    "nan-2.14.1" = {
+      name = "nan";
+      packageName = "nan";
+      version = "2.14.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz";
+        sha512 = "isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==";
+      };
+    };
+    "nanomatch-1.2.13" = {
+      name = "nanomatch";
+      packageName = "nanomatch";
+      version = "1.2.13";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz";
+        sha512 = "fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==";
+      };
+    };
+    "napi-build-utils-1.0.2" = {
+      name = "napi-build-utils";
+      packageName = "napi-build-utils";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz";
+        sha512 = "ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg==";
+      };
+    };
+    "natural-compare-1.4.0" = {
+      name = "natural-compare";
+      packageName = "natural-compare";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz";
+        sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
+      };
+    };
+    "neo-async-2.6.2" = {
+      name = "neo-async";
+      packageName = "neo-async";
+      version = "2.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz";
+        sha512 = "Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==";
+      };
+    };
+    "next-tick-1.0.0" = {
+      name = "next-tick";
+      packageName = "next-tick";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz";
+        sha1 = "ca86d1fe8828169b0120208e3dc8424b9db8342c";
+      };
+    };
+    "nice-try-1.0.5" = {
+      name = "nice-try";
+      packageName = "nice-try";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz";
+        sha512 = "1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==";
+      };
+    };
+    "node-abi-2.19.1" = {
+      name = "node-abi";
+      packageName = "node-abi";
+      version = "2.19.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-abi/-/node-abi-2.19.1.tgz";
+        sha512 = "HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A==";
+      };
+    };
+    "node-int64-0.4.0" = {
+      name = "node-int64";
+      packageName = "node-int64";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz";
+        sha1 = "87a9065cdb355d3182d8f94ce11188b825c68a3b";
+      };
+    };
+    "node-modules-regexp-1.0.0" = {
+      name = "node-modules-regexp";
+      packageName = "node-modules-regexp";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz";
+        sha1 = "8d9dbe28964a4ac5712e9131642107c71e90ec40";
+      };
+    };
+    "node-notifier-8.0.0" = {
+      name = "node-notifier";
+      packageName = "node-notifier";
+      version = "8.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.0.tgz";
+        sha512 = "46z7DUmcjoYdaWyXouuFNNfUo6eFa94t23c53c+lG/9Cvauk4a98rAUp9672X5dxGdQmLpPzTxzu8f/OeEPaFA==";
+      };
+    };
+    "node-releases-1.1.60" = {
+      name = "node-releases";
+      packageName = "node-releases";
+      version = "1.1.60";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-releases/-/node-releases-1.1.60.tgz";
+        sha512 = "gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==";
+      };
+    };
+    "noop-logger-0.1.1" = {
+      name = "noop-logger";
+      packageName = "noop-logger";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz";
+        sha1 = "94a2b1633c4f1317553007d8966fd0e841b6a4c2";
+      };
+    };
+    "normalize-package-data-2.5.0" = {
+      name = "normalize-package-data";
+      packageName = "normalize-package-data";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz";
+        sha512 = "/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==";
+      };
+    };
+    "normalize-path-2.1.1" = {
+      name = "normalize-path";
+      packageName = "normalize-path";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz";
+        sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+      };
+    };
+    "normalize-path-3.0.0" = {
+      name = "normalize-path";
+      packageName = "normalize-path";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz";
+        sha512 = "6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==";
+      };
+    };
+    "npm-run-path-2.0.2" = {
+      name = "npm-run-path";
+      packageName = "npm-run-path";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz";
+        sha1 = "35a9232dfa35d7067b4cb2ddf2357b1871536c5f";
+      };
+    };
+    "npm-run-path-4.0.1" = {
+      name = "npm-run-path";
+      packageName = "npm-run-path";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz";
+        sha512 = "S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==";
+      };
+    };
+    "npmlog-4.1.2" = {
+      name = "npmlog";
+      packageName = "npmlog";
+      version = "4.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz";
+        sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==";
+      };
+    };
+    "number-is-nan-1.0.1" = {
+      name = "number-is-nan";
+      packageName = "number-is-nan";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz";
+        sha1 = "097b602b53422a522c1afb8790318336941a011d";
+      };
+    };
+    "nwsapi-2.2.0" = {
+      name = "nwsapi";
+      packageName = "nwsapi";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz";
+        sha512 = "h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==";
+      };
+    };
+    "oauth-sign-0.9.0" = {
+      name = "oauth-sign";
+      packageName = "oauth-sign";
+      version = "0.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz";
+        sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
+      };
+    };
+    "object-assign-4.1.1" = {
+      name = "object-assign";
+      packageName = "object-assign";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz";
+        sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+      };
+    };
+    "object-assign-deep-0.4.0" = {
+      name = "object-assign-deep";
+      packageName = "object-assign-deep";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-assign-deep/-/object-assign-deep-0.4.0.tgz";
+        sha512 = "54Uvn3s+4A/cMWx9tlRez1qtc7pN7pbQ+Yi7mjLjcBpWLlP+XbSHiHbQW6CElDiV4OvuzqnMrBdkgxI1mT8V/Q==";
+      };
+    };
+    "object-copy-0.1.0" = {
+      name = "object-copy";
+      packageName = "object-copy";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz";
+        sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
+      };
+    };
+    "object-keys-1.1.1" = {
+      name = "object-keys";
+      packageName = "object-keys";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz";
+        sha512 = "NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==";
+      };
+    };
+    "object-visit-1.0.1" = {
+      name = "object-visit";
+      packageName = "object-visit";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz";
+        sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
+      };
+    };
+    "object.assign-4.1.0" = {
+      name = "object.assign";
+      packageName = "object.assign";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz";
+        sha512 = "exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==";
+      };
+    };
+    "object.pick-1.3.0" = {
+      name = "object.pick";
+      packageName = "object.pick";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz";
+        sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
+      };
+    };
+    "once-1.4.0" = {
+      name = "once";
+      packageName = "once";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz";
+        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+      };
+    };
+    "one-time-1.0.0" = {
+      name = "one-time";
+      packageName = "one-time";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz";
+        sha512 = "5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==";
+      };
+    };
+    "onetime-5.1.2" = {
+      name = "onetime";
+      packageName = "onetime";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz";
+        sha512 = "kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==";
+      };
+    };
+    "optionator-0.8.3" = {
+      name = "optionator";
+      packageName = "optionator";
+      version = "0.8.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz";
+        sha512 = "+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==";
+      };
+    };
+    "optionator-0.9.1" = {
+      name = "optionator";
+      packageName = "optionator";
+      version = "0.9.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz";
+        sha512 = "74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==";
+      };
+    };
+    "ordered-read-streams-1.0.1" = {
+      name = "ordered-read-streams";
+      packageName = "ordered-read-streams";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz";
+        sha1 = "77c0cb37c41525d64166d990ffad7ec6a0e1363e";
+      };
+    };
+    "p-each-series-2.1.0" = {
+      name = "p-each-series";
+      packageName = "p-each-series";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-each-series/-/p-each-series-2.1.0.tgz";
+        sha512 = "ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ==";
+      };
+    };
+    "p-finally-1.0.0" = {
+      name = "p-finally";
+      packageName = "p-finally";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz";
+        sha1 = "3fbcfb15b899a44123b34b6dcc18b724336a2cae";
+      };
+    };
+    "p-limit-2.3.0" = {
+      name = "p-limit";
+      packageName = "p-limit";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz";
+        sha512 = "//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==";
+      };
+    };
+    "p-locate-4.1.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz";
+        sha512 = "R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==";
+      };
+    };
+    "p-try-2.2.0" = {
+      name = "p-try";
+      packageName = "p-try";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz";
+        sha512 = "R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==";
+      };
+    };
+    "parent-module-1.0.1" = {
+      name = "parent-module";
+      packageName = "parent-module";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz";
+        sha512 = "GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==";
+      };
+    };
+    "parse-json-5.1.0" = {
+      name = "parse-json";
+      packageName = "parse-json";
+      version = "5.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz";
+        sha512 = "+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==";
+      };
+    };
+    "parse5-5.1.1" = {
+      name = "parse5";
+      packageName = "parse5";
+      version = "5.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz";
+        sha512 = "ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==";
+      };
+    };
+    "pascalcase-0.1.1" = {
+      name = "pascalcase";
+      packageName = "pascalcase";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz";
+        sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+      };
+    };
+    "path-dirname-1.0.2" = {
+      name = "path-dirname";
+      packageName = "path-dirname";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz";
+        sha1 = "cc33d24d525e099a5388c0336c6e32b9160609e0";
+      };
+    };
+    "path-exists-4.0.0" = {
+      name = "path-exists";
+      packageName = "path-exists";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz";
+        sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==";
+      };
+    };
+    "path-is-absolute-1.0.1" = {
+      name = "path-is-absolute";
+      packageName = "path-is-absolute";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
+        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+      };
+    };
+    "path-key-2.0.1" = {
+      name = "path-key";
+      packageName = "path-key";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz";
+        sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
+      };
+    };
+    "path-key-3.1.1" = {
+      name = "path-key";
+      packageName = "path-key";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz";
+        sha512 = "ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==";
+      };
+    };
+    "path-parse-1.0.6" = {
+      name = "path-parse";
+      packageName = "path-parse";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz";
+        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
+      };
+    };
+    "performance-now-2.1.0" = {
+      name = "performance-now";
+      packageName = "performance-now";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz";
+        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+      };
+    };
+    "picomatch-2.2.2" = {
+      name = "picomatch";
+      packageName = "picomatch";
+      version = "2.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz";
+        sha512 = "q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==";
+      };
+    };
+    "pify-4.0.1" = {
+      name = "pify";
+      packageName = "pify";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz";
+        sha512 = "uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==";
+      };
+    };
+    "pirates-4.0.1" = {
+      name = "pirates";
+      packageName = "pirates";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz";
+        sha512 = "WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==";
+      };
+    };
+    "pkg-dir-4.2.0" = {
+      name = "pkg-dir";
+      packageName = "pkg-dir";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz";
+        sha512 = "HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==";
+      };
+    };
+    "posix-character-classes-0.1.1" = {
+      name = "posix-character-classes";
+      packageName = "posix-character-classes";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
+        sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+      };
+    };
+    "prebuild-install-5.3.5" = {
+      name = "prebuild-install";
+      packageName = "prebuild-install";
+      version = "5.3.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.5.tgz";
+        sha512 = "YmMO7dph9CYKi5IR/BzjOJlRzpxGGVo1EsLSUZ0mt/Mq0HWZIHOKHHcHdT69yG54C9m6i45GpItwRHpk0Py7Uw==";
+      };
+    };
+    "prelude-ls-1.1.2" = {
+      name = "prelude-ls";
+      packageName = "prelude-ls";
+      version = "1.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz";
+        sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
+      };
+    };
+    "prelude-ls-1.2.1" = {
+      name = "prelude-ls";
+      packageName = "prelude-ls";
+      version = "1.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz";
+        sha512 = "vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==";
+      };
+    };
+    "pretty-format-25.5.0" = {
+      name = "pretty-format";
+      packageName = "pretty-format";
+      version = "25.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pretty-format/-/pretty-format-25.5.0.tgz";
+        sha512 = "kbo/kq2LQ/A/is0PQwsEHM7Ca6//bGPPvU6UnsdDRSKTWxT/ru/xb88v4BJf6a69H+uTytOEsTusT9ksd/1iWQ==";
+      };
+    };
+    "pretty-format-26.4.2" = {
+      name = "pretty-format";
+      packageName = "pretty-format";
+      version = "26.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pretty-format/-/pretty-format-26.4.2.tgz";
+        sha512 = "zK6Gd8zDsEiVydOCGLkoBoZuqv8VTiHyAbKznXe/gaph/DAeZOmit9yMfgIz5adIgAMMs5XfoYSwAX3jcCO1tA==";
+      };
+    };
+    "process-nextick-args-2.0.1" = {
+      name = "process-nextick-args";
+      packageName = "process-nextick-args";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
+        sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
+      };
+    };
+    "progress-2.0.3" = {
+      name = "progress";
+      packageName = "progress";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz";
+        sha512 = "7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==";
+      };
+    };
+    "prompts-2.3.2" = {
+      name = "prompts";
+      packageName = "prompts";
+      version = "2.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz";
+        sha512 = "Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==";
+      };
+    };
+    "psl-1.8.0" = {
+      name = "psl";
+      packageName = "psl";
+      version = "1.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz";
+        sha512 = "RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==";
+      };
+    };
+    "pump-2.0.1" = {
+      name = "pump";
+      packageName = "pump";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz";
+        sha512 = "ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==";
+      };
+    };
+    "pump-3.0.0" = {
+      name = "pump";
+      packageName = "pump";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz";
+        sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==";
+      };
+    };
+    "pumpify-1.5.1" = {
+      name = "pumpify";
+      packageName = "pumpify";
+      version = "1.5.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz";
+        sha512 = "oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==";
+      };
+    };
+    "punycode-2.1.1" = {
+      name = "punycode";
+      packageName = "punycode";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz";
+        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
+      };
+    };
+    "qs-6.5.2" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz";
+        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
+      };
+    };
+    "rc-1.2.8" = {
+      name = "rc";
+      packageName = "rc";
+      version = "1.2.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz";
+        sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==";
+      };
+    };
+    "react-is-16.13.1" = {
+      name = "react-is";
+      packageName = "react-is";
+      version = "16.13.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz";
+        sha512 = "24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==";
+      };
+    };
+    "read-pkg-5.2.0" = {
+      name = "read-pkg";
+      packageName = "read-pkg";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz";
+        sha512 = "Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==";
+      };
+    };
+    "read-pkg-up-7.0.1" = {
+      name = "read-pkg-up";
+      packageName = "read-pkg-up";
+      version = "7.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz";
+        sha512 = "zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==";
+      };
+    };
+    "readable-stream-2.3.7" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "2.3.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz";
+        sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
+      };
+    };
+    "readable-stream-3.6.0" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "3.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz";
+        sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
+      };
+    };
+    "readdirp-2.2.1" = {
+      name = "readdirp";
+      packageName = "readdirp";
+      version = "2.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz";
+        sha512 = "1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==";
+      };
+    };
+    "rechoir-0.6.2" = {
+      name = "rechoir";
+      packageName = "rechoir";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz";
+        sha1 = "85204b54dba82d5742e28c96756ef43af50e3384";
+      };
+    };
+    "regenerate-1.4.1" = {
+      name = "regenerate";
+      packageName = "regenerate";
+      version = "1.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz";
+        sha512 = "j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==";
+      };
+    };
+    "regenerate-unicode-properties-8.2.0" = {
+      name = "regenerate-unicode-properties";
+      packageName = "regenerate-unicode-properties";
+      version = "8.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz";
+        sha512 = "F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==";
+      };
+    };
+    "regenerator-runtime-0.13.7" = {
+      name = "regenerator-runtime";
+      packageName = "regenerator-runtime";
+      version = "0.13.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz";
+        sha512 = "a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==";
+      };
+    };
+    "regenerator-transform-0.14.5" = {
+      name = "regenerator-transform";
+      packageName = "regenerator-transform";
+      version = "0.14.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz";
+        sha512 = "eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==";
+      };
+    };
+    "regex-not-1.0.2" = {
+      name = "regex-not";
+      packageName = "regex-not";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz";
+        sha512 = "J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==";
+      };
+    };
+    "regexpp-3.1.0" = {
+      name = "regexpp";
+      packageName = "regexpp";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regexpp/-/regexpp-3.1.0.tgz";
+        sha512 = "ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==";
+      };
+    };
+    "regexpu-core-4.7.0" = {
+      name = "regexpu-core";
+      packageName = "regexpu-core";
+      version = "4.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz";
+        sha512 = "TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==";
+      };
+    };
+    "regjsgen-0.5.2" = {
+      name = "regjsgen";
+      packageName = "regjsgen";
+      version = "0.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz";
+        sha512 = "OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==";
+      };
+    };
+    "regjsparser-0.6.4" = {
+      name = "regjsparser";
+      packageName = "regjsparser";
+      version = "0.6.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz";
+        sha512 = "64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==";
+      };
+    };
+    "reinterval-1.1.0" = {
+      name = "reinterval";
+      packageName = "reinterval";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/reinterval/-/reinterval-1.1.0.tgz";
+        sha1 = "3361ecfa3ca6c18283380dd0bb9546f390f5ece7";
+      };
+    };
+    "remove-trailing-separator-1.1.0" = {
+      name = "remove-trailing-separator";
+      packageName = "remove-trailing-separator";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
+        sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+      };
+    };
+    "repeat-element-1.1.3" = {
+      name = "repeat-element";
+      packageName = "repeat-element";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz";
+        sha512 = "ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==";
+      };
+    };
+    "repeat-string-1.6.1" = {
+      name = "repeat-string";
+      packageName = "repeat-string";
+      version = "1.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz";
+        sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+      };
+    };
+    "request-2.88.2" = {
+      name = "request";
+      packageName = "request";
+      version = "2.88.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request/-/request-2.88.2.tgz";
+        sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==";
+      };
+    };
+    "request-promise-core-1.1.4" = {
+      name = "request-promise-core";
+      packageName = "request-promise-core";
+      version = "1.1.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz";
+        sha512 = "TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==";
+      };
+    };
+    "request-promise-native-1.0.9" = {
+      name = "request-promise-native";
+      packageName = "request-promise-native";
+      version = "1.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz";
+        sha512 = "wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==";
+      };
+    };
+    "require-directory-2.1.1" = {
+      name = "require-directory";
+      packageName = "require-directory";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz";
+        sha1 = "8c64ad5fd30dab1c976e2344ffe7f792a6a6df42";
+      };
+    };
+    "require-main-filename-2.0.0" = {
+      name = "require-main-filename";
+      packageName = "require-main-filename";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz";
+        sha512 = "NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==";
+      };
+    };
+    "resolve-1.17.0" = {
+      name = "resolve";
+      packageName = "resolve";
+      version = "1.17.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz";
+        sha512 = "ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==";
+      };
+    };
+    "resolve-cwd-3.0.0" = {
+      name = "resolve-cwd";
+      packageName = "resolve-cwd";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz";
+        sha512 = "OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==";
+      };
+    };
+    "resolve-from-4.0.0" = {
+      name = "resolve-from";
+      packageName = "resolve-from";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz";
+        sha512 = "pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==";
+      };
+    };
+    "resolve-from-5.0.0" = {
+      name = "resolve-from";
+      packageName = "resolve-from";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz";
+        sha512 = "qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==";
+      };
+    };
+    "resolve-url-0.2.1" = {
+      name = "resolve-url";
+      packageName = "resolve-url";
+      version = "0.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz";
+        sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+      };
+    };
+    "ret-0.1.15" = {
+      name = "ret";
+      packageName = "ret";
+      version = "0.1.15";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz";
+        sha512 = "TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==";
+      };
+    };
+    "rimraf-2.6.3" = {
+      name = "rimraf";
+      packageName = "rimraf";
+      version = "2.6.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz";
+        sha512 = "mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==";
+      };
+    };
+    "rimraf-3.0.2" = {
+      name = "rimraf";
+      packageName = "rimraf";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz";
+        sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
+      };
+    };
+    "rsvp-4.8.5" = {
+      name = "rsvp";
+      packageName = "rsvp";
+      version = "4.8.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz";
+        sha512 = "nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==";
+      };
+    };
+    "safe-buffer-5.1.2" = {
+      name = "safe-buffer";
+      packageName = "safe-buffer";
+      version = "5.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz";
+        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+      };
+    };
+    "safe-buffer-5.2.1" = {
+      name = "safe-buffer";
+      packageName = "safe-buffer";
+      version = "5.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz";
+        sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
+      };
+    };
+    "safe-regex-1.1.0" = {
+      name = "safe-regex";
+      packageName = "safe-regex";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz";
+        sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+      };
+    };
+    "safer-buffer-2.1.2" = {
+      name = "safer-buffer";
+      packageName = "safer-buffer";
+      version = "2.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz";
+        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
+      };
+    };
+    "sane-4.1.0" = {
+      name = "sane";
+      packageName = "sane";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz";
+        sha512 = "hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==";
+      };
+    };
+    "saxes-5.0.1" = {
+      name = "saxes";
+      packageName = "saxes";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz";
+        sha512 = "5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==";
+      };
+    };
+    "semver-5.7.1" = {
+      name = "semver";
+      packageName = "semver";
+      version = "5.7.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz";
+        sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
+      };
+    };
+    "semver-6.3.0" = {
+      name = "semver";
+      packageName = "semver";
+      version = "6.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz";
+        sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
+      };
+    };
+    "semver-7.0.0" = {
+      name = "semver";
+      packageName = "semver";
+      version = "7.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz";
+        sha512 = "+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==";
+      };
+    };
+    "semver-7.3.2" = {
+      name = "semver";
+      packageName = "semver";
+      version = "7.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz";
+        sha512 = "OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==";
+      };
+    };
+    "serialport-9.0.1" = {
+      name = "serialport";
+      packageName = "serialport";
+      version = "9.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/serialport/-/serialport-9.0.1.tgz";
+        sha512 = "35Ms8dqjtAb73lptfEZG2l/nFZOxHt3hUjCHvl+g3Mu737gzFLDpSBrRywBJw4G4eS5ozZ3YcthwYnop1WO+ng==";
+      };
+    };
+    "set-blocking-2.0.0" = {
+      name = "set-blocking";
+      packageName = "set-blocking";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz";
+        sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7";
+      };
+    };
+    "set-value-2.0.1" = {
+      name = "set-value";
+      packageName = "set-value";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz";
+        sha512 = "JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==";
+      };
+    };
+    "shebang-command-1.2.0" = {
+      name = "shebang-command";
+      packageName = "shebang-command";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz";
+        sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
+      };
+    };
+    "shebang-command-2.0.0" = {
+      name = "shebang-command";
+      packageName = "shebang-command";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz";
+        sha512 = "kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==";
+      };
+    };
+    "shebang-regex-1.0.0" = {
+      name = "shebang-regex";
+      packageName = "shebang-regex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz";
+        sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
+      };
+    };
+    "shebang-regex-3.0.0" = {
+      name = "shebang-regex";
+      packageName = "shebang-regex";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz";
+        sha512 = "7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==";
+      };
+    };
+    "shelljs-0.8.4" = {
+      name = "shelljs";
+      packageName = "shelljs";
+      version = "0.8.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz";
+        sha512 = "7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==";
+      };
+    };
+    "shellwords-0.1.1" = {
+      name = "shellwords";
+      packageName = "shellwords";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz";
+        sha512 = "vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==";
+      };
+    };
+    "signal-exit-3.0.3" = {
+      name = "signal-exit";
+      packageName = "signal-exit";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz";
+        sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==";
+      };
+    };
+    "simple-concat-1.0.1" = {
+      name = "simple-concat";
+      packageName = "simple-concat";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz";
+        sha512 = "cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==";
+      };
+    };
+    "simple-get-3.1.0" = {
+      name = "simple-get";
+      packageName = "simple-get";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz";
+        sha512 = "bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==";
+      };
+    };
+    "simple-swizzle-0.2.2" = {
+      name = "simple-swizzle";
+      packageName = "simple-swizzle";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz";
+        sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a";
+      };
+    };
+    "sisteransi-1.0.5" = {
+      name = "sisteransi";
+      packageName = "sisteransi";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz";
+        sha512 = "bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==";
+      };
+    };
+    "slash-2.0.0" = {
+      name = "slash";
+      packageName = "slash";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz";
+        sha512 = "ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==";
+      };
+    };
+    "slash-3.0.0" = {
+      name = "slash";
+      packageName = "slash";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz";
+        sha512 = "g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==";
+      };
+    };
+    "slice-ansi-2.1.0" = {
+      name = "slice-ansi";
+      packageName = "slice-ansi";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz";
+        sha512 = "Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==";
+      };
+    };
+    "slip-1.0.2" = {
+      name = "slip";
+      packageName = "slip";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/slip/-/slip-1.0.2.tgz";
+        sha1 = "ba45a923034d6cf41b1a27aebe7128282c8d551f";
+      };
+    };
+    "snapdragon-0.8.2" = {
+      name = "snapdragon";
+      packageName = "snapdragon";
+      version = "0.8.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz";
+        sha512 = "FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==";
+      };
+    };
+    "snapdragon-node-2.1.1" = {
+      name = "snapdragon-node";
+      packageName = "snapdragon-node";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
+        sha512 = "O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==";
+      };
+    };
+    "snapdragon-util-3.0.1" = {
+      name = "snapdragon-util";
+      packageName = "snapdragon-util";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
+        sha512 = "mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==";
+      };
+    };
+    "source-map-0.5.7" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.5.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz";
+        sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+      };
+    };
+    "source-map-0.6.1" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.6.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz";
+        sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
+      };
+    };
+    "source-map-0.7.3" = {
+      name = "source-map";
+      packageName = "source-map";
+      version = "0.7.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz";
+        sha512 = "CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==";
+      };
+    };
+    "source-map-resolve-0.5.3" = {
+      name = "source-map-resolve";
+      packageName = "source-map-resolve";
+      version = "0.5.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
+        sha512 = "Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==";
+      };
+    };
+    "source-map-support-0.5.19" = {
+      name = "source-map-support";
+      packageName = "source-map-support";
+      version = "0.5.19";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz";
+        sha512 = "Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==";
+      };
+    };
+    "source-map-url-0.4.0" = {
+      name = "source-map-url";
+      packageName = "source-map-url";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz";
+        sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+      };
+    };
+    "spdx-correct-3.1.1" = {
+      name = "spdx-correct";
+      packageName = "spdx-correct";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz";
+        sha512 = "cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==";
+      };
+    };
+    "spdx-exceptions-2.3.0" = {
+      name = "spdx-exceptions";
+      packageName = "spdx-exceptions";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz";
+        sha512 = "/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==";
+      };
+    };
+    "spdx-expression-parse-3.0.1" = {
+      name = "spdx-expression-parse";
+      packageName = "spdx-expression-parse";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz";
+        sha512 = "cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==";
+      };
+    };
+    "spdx-license-ids-3.0.5" = {
+      name = "spdx-license-ids";
+      packageName = "spdx-license-ids";
+      version = "3.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz";
+        sha512 = "J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q==";
+      };
+    };
+    "split-string-3.1.0" = {
+      name = "split-string";
+      packageName = "split-string";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz";
+        sha512 = "NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==";
+      };
+    };
+    "split2-3.2.2" = {
+      name = "split2";
+      packageName = "split2";
+      version = "3.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz";
+        sha512 = "9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==";
+      };
+    };
+    "sprintf-js-1.0.3" = {
+      name = "sprintf-js";
+      packageName = "sprintf-js";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz";
+        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+      };
+    };
+    "sshpk-1.16.1" = {
+      name = "sshpk";
+      packageName = "sshpk";
+      version = "1.16.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz";
+        sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==";
+      };
+    };
+    "stack-trace-0.0.10" = {
+      name = "stack-trace";
+      packageName = "stack-trace";
+      version = "0.0.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz";
+        sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0";
+      };
+    };
+    "stack-utils-2.0.2" = {
+      name = "stack-utils";
+      packageName = "stack-utils";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.2.tgz";
+        sha512 = "0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg==";
+      };
+    };
+    "static-extend-0.1.2" = {
+      name = "static-extend";
+      packageName = "static-extend";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz";
+        sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+      };
+    };
+    "stealthy-require-1.1.1" = {
+      name = "stealthy-require";
+      packageName = "stealthy-require";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz";
+        sha1 = "35b09875b4ff49f26a777e509b3090a3226bf24b";
+      };
+    };
+    "stream-shift-1.0.1" = {
+      name = "stream-shift";
+      packageName = "stream-shift";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz";
+        sha512 = "AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==";
+      };
+    };
+    "string-length-4.0.1" = {
+      name = "string-length";
+      packageName = "string-length";
+      version = "4.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-length/-/string-length-4.0.1.tgz";
+        sha512 = "PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw==";
+      };
+    };
+    "string-width-1.0.2" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz";
+        sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+      };
+    };
+    "string-width-3.1.0" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "3.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz";
+        sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
+      };
+    };
+    "string-width-4.2.0" = {
+      name = "string-width";
+      packageName = "string-width";
+      version = "4.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz";
+        sha512 = "zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==";
+      };
+    };
+    "string_decoder-1.1.1" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "1.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz";
+        sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
+      };
+    };
+    "string_decoder-1.3.0" = {
+      name = "string_decoder";
+      packageName = "string_decoder";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz";
+        sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==";
+      };
+    };
+    "strip-ansi-3.0.1" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
+        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+      };
+    };
+    "strip-ansi-5.2.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "5.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz";
+        sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
+      };
+    };
+    "strip-ansi-6.0.0" = {
+      name = "strip-ansi";
+      packageName = "strip-ansi";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz";
+        sha512 = "AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==";
+      };
+    };
+    "strip-bom-4.0.0" = {
+      name = "strip-bom";
+      packageName = "strip-bom";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz";
+        sha512 = "3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==";
+      };
+    };
+    "strip-eof-1.0.0" = {
+      name = "strip-eof";
+      packageName = "strip-eof";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz";
+        sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
+      };
+    };
+    "strip-final-newline-2.0.0" = {
+      name = "strip-final-newline";
+      packageName = "strip-final-newline";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz";
+        sha512 = "BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==";
+      };
+    };
+    "strip-json-comments-2.0.1" = {
+      name = "strip-json-comments";
+      packageName = "strip-json-comments";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
+        sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+      };
+    };
+    "strip-json-comments-3.1.1" = {
+      name = "strip-json-comments";
+      packageName = "strip-json-comments";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+        sha512 = "6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==";
+      };
+    };
+    "supports-color-5.5.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "5.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz";
+        sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
+      };
+    };
+    "supports-color-7.2.0" = {
+      name = "supports-color";
+      packageName = "supports-color";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz";
+        sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
+      };
+    };
+    "supports-hyperlinks-2.1.0" = {
+      name = "supports-hyperlinks";
+      packageName = "supports-hyperlinks";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz";
+        sha512 = "zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==";
+      };
+    };
+    "symbol-tree-3.2.4" = {
+      name = "symbol-tree";
+      packageName = "symbol-tree";
+      version = "3.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz";
+        sha512 = "9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==";
+      };
+    };
+    "table-5.4.6" = {
+      name = "table";
+      packageName = "table";
+      version = "5.4.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/table/-/table-5.4.6.tgz";
+        sha512 = "wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==";
+      };
+    };
+    "tar-fs-2.1.0" = {
+      name = "tar-fs";
+      packageName = "tar-fs";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz";
+        sha512 = "9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==";
+      };
+    };
+    "tar-stream-2.1.3" = {
+      name = "tar-stream";
+      packageName = "tar-stream";
+      version = "2.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.3.tgz";
+        sha512 = "Z9yri56Dih8IaK8gncVPx4Wqt86NDmQTSh49XLZgjWpGZL9GK9HKParS2scqHCC4w6X9Gh2jwaU45V47XTKwVA==";
+      };
+    };
+    "terminal-link-2.1.1" = {
+      name = "terminal-link";
+      packageName = "terminal-link";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz";
+        sha512 = "un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==";
+      };
+    };
+    "test-exclude-6.0.0" = {
+      name = "test-exclude";
+      packageName = "test-exclude";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz";
+        sha512 = "cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==";
+      };
+    };
+    "text-hex-1.0.0" = {
+      name = "text-hex";
+      packageName = "text-hex";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz";
+        sha512 = "uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==";
+      };
+    };
+    "text-table-0.2.0" = {
+      name = "text-table";
+      packageName = "text-table";
+      version = "0.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz";
+        sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
+      };
+    };
+    "throat-5.0.0" = {
+      name = "throat";
+      packageName = "throat";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz";
+        sha512 = "fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==";
+      };
+    };
+    "through2-2.0.5" = {
+      name = "through2";
+      packageName = "through2";
+      version = "2.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz";
+        sha512 = "/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==";
+      };
+    };
+    "through2-filter-3.0.0" = {
+      name = "through2-filter";
+      packageName = "through2-filter";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz";
+        sha512 = "jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA==";
+      };
+    };
+    "tmpl-1.0.4" = {
+      name = "tmpl";
+      packageName = "tmpl";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz";
+        sha1 = "23640dd7b42d00433911140820e5cf440e521dd1";
+      };
+    };
+    "to-absolute-glob-2.0.2" = {
+      name = "to-absolute-glob";
+      packageName = "to-absolute-glob";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz";
+        sha1 = "1865f43d9e74b0822db9f145b78cff7d0f7c849b";
+      };
+    };
+    "to-fast-properties-2.0.0" = {
+      name = "to-fast-properties";
+      packageName = "to-fast-properties";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+        sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+      };
+    };
+    "to-object-path-0.3.0" = {
+      name = "to-object-path";
+      packageName = "to-object-path";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz";
+        sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+      };
+    };
+    "to-regex-3.0.2" = {
+      name = "to-regex";
+      packageName = "to-regex";
+      version = "3.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz";
+        sha512 = "FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==";
+      };
+    };
+    "to-regex-range-2.1.1" = {
+      name = "to-regex-range";
+      packageName = "to-regex-range";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz";
+        sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+      };
+    };
+    "to-regex-range-5.0.1" = {
+      name = "to-regex-range";
+      packageName = "to-regex-range";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz";
+        sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==";
+      };
+    };
+    "tough-cookie-2.5.0" = {
+      name = "tough-cookie";
+      packageName = "tough-cookie";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz";
+        sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==";
+      };
+    };
+    "tough-cookie-3.0.1" = {
+      name = "tough-cookie";
+      packageName = "tough-cookie";
+      version = "3.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz";
+        sha512 = "yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==";
+      };
+    };
+    "tr46-2.0.2" = {
+      name = "tr46";
+      packageName = "tr46";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz";
+        sha512 = "3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==";
+      };
+    };
+    "triple-beam-1.3.0" = {
+      name = "triple-beam";
+      packageName = "triple-beam";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz";
+        sha512 = "XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==";
+      };
+    };
+    "tslib-1.13.0" = {
+      name = "tslib";
+      packageName = "tslib";
+      version = "1.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz";
+        sha512 = "i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==";
+      };
+    };
+    "tsutils-3.17.1" = {
+      name = "tsutils";
+      packageName = "tsutils";
+      version = "3.17.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz";
+        sha512 = "kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==";
+      };
+    };
+    "tunnel-agent-0.6.0" = {
+      name = "tunnel-agent";
+      packageName = "tunnel-agent";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
+        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+      };
+    };
+    "tweetnacl-0.14.5" = {
+      name = "tweetnacl";
+      packageName = "tweetnacl";
+      version = "0.14.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz";
+        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+      };
+    };
+    "type-1.2.0" = {
+      name = "type";
+      packageName = "type";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type/-/type-1.2.0.tgz";
+        sha512 = "+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==";
+      };
+    };
+    "type-2.1.0" = {
+      name = "type";
+      packageName = "type";
+      version = "2.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type/-/type-2.1.0.tgz";
+        sha512 = "G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==";
+      };
+    };
+    "type-check-0.3.2" = {
+      name = "type-check";
+      packageName = "type-check";
+      version = "0.3.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz";
+        sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+      };
+    };
+    "type-check-0.4.0" = {
+      name = "type-check";
+      packageName = "type-check";
+      version = "0.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz";
+        sha512 = "XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==";
+      };
+    };
+    "type-detect-4.0.8" = {
+      name = "type-detect";
+      packageName = "type-detect";
+      version = "4.0.8";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz";
+        sha512 = "0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==";
+      };
+    };
+    "type-fest-0.11.0" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.11.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz";
+        sha512 = "OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==";
+      };
+    };
+    "type-fest-0.6.0" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz";
+        sha512 = "q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==";
+      };
+    };
+    "type-fest-0.8.1" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "0.8.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz";
+        sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==";
+      };
+    };
+    "typedarray-0.0.6" = {
+      name = "typedarray";
+      packageName = "typedarray";
+      version = "0.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz";
+        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+      };
+    };
+    "typedarray-to-buffer-3.1.5" = {
+      name = "typedarray-to-buffer";
+      packageName = "typedarray-to-buffer";
+      version = "3.1.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz";
+        sha512 = "zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==";
+      };
+    };
+    "typedoc-0.19.0" = {
+      name = "typedoc";
+      packageName = "typedoc";
+      version = "0.19.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedoc/-/typedoc-0.19.0.tgz";
+        sha512 = "Rn68JwgDDYyIWl3HXeSsLZcsvxd2anISjhKu64PvID7RETeS2Iwnc4cH60yqc8/N50Xo1d3MHPGYinCPhMMliQ==";
+      };
+    };
+    "typedoc-default-themes-0.11.1" = {
+      name = "typedoc-default-themes";
+      packageName = "typedoc-default-themes";
+      version = "0.11.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.11.1.tgz";
+        sha512 = "1yl8pbhjrLywqGJx9TfT+wzP+ntudPYjgJdpCj+s5ed2etBkqZPOCBMKwpaN9o6pdoFQF195PggqWTLVEkaRQQ==";
+      };
+    };
+    "typedoc-plugin-markdown-2.4.2" = {
+      name = "typedoc-plugin-markdown";
+      packageName = "typedoc-plugin-markdown";
+      version = "2.4.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-2.4.2.tgz";
+        sha512 = "BBH+9/Uq5XbsqfzCDl8Jq4iaLXRMXRuAHZRFarAZX7df8+F3vUjDx/WHWoWqbZ/XUFzduLC2Iuy2qwsJX8SQ7A==";
+      };
+    };
+    "typedoc-plugin-no-inherit-1.1.10" = {
+      name = "typedoc-plugin-no-inherit";
+      packageName = "typedoc-plugin-no-inherit";
+      version = "1.1.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedoc-plugin-no-inherit/-/typedoc-plugin-no-inherit-1.1.10.tgz";
+        sha512 = "BhSFAWlBTh9Bf6PSfruIqdQBM8gd/Gj8hVuRk5pVWkHu4I/SB24LzFr5gAo52ZlaQSeN72+VOkkRD6tNYl8Enw==";
+      };
+    };
+    "typedoc-plugin-sourcefile-url-1.0.6" = {
+      name = "typedoc-plugin-sourcefile-url";
+      packageName = "typedoc-plugin-sourcefile-url";
+      version = "1.0.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typedoc-plugin-sourcefile-url/-/typedoc-plugin-sourcefile-url-1.0.6.tgz";
+        sha512 = "xHq9DzkoQywS7FyPneMm2/Hr9GRoCpjSQXkVN0W6SCJKP7fguqg2tasgh+8l5/mW6YSYvqCqEbkSYLbuD4Y6gA==";
+      };
+    };
+    "typescript-4.0.2" = {
+      name = "typescript";
+      packageName = "typescript";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typescript/-/typescript-4.0.2.tgz";
+        sha512 = "e4ERvRV2wb+rRZ/IQeb3jm2VxBsirQLpQhdxplZ2MEzGvDkkMmPglecnNDfSUBivMjP93vRbngYYDQqQ/78bcQ==";
+      };
+    };
+    "uglify-js-3.10.2" = {
+      name = "uglify-js";
+      packageName = "uglify-js";
+      version = "3.10.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.2.tgz";
+        sha512 = "GXCYNwqoo0MbLARghYjxVBxDCnU0tLqN7IPLdHHbibCb1NI5zBkU2EPcy/GaVxc0BtTjqyGXJCINe6JMR2Dpow==";
+      };
+    };
+    "unc-path-regex-0.1.2" = {
+      name = "unc-path-regex";
+      packageName = "unc-path-regex";
+      version = "0.1.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz";
+        sha1 = "e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa";
+      };
+    };
+    "unicode-canonical-property-names-ecmascript-1.0.4" = {
+      name = "unicode-canonical-property-names-ecmascript";
+      packageName = "unicode-canonical-property-names-ecmascript";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz";
+        sha512 = "jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==";
+      };
+    };
+    "unicode-match-property-ecmascript-1.0.4" = {
+      name = "unicode-match-property-ecmascript";
+      packageName = "unicode-match-property-ecmascript";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz";
+        sha512 = "L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==";
+      };
+    };
+    "unicode-match-property-value-ecmascript-1.2.0" = {
+      name = "unicode-match-property-value-ecmascript";
+      packageName = "unicode-match-property-value-ecmascript";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz";
+        sha512 = "wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==";
+      };
+    };
+    "unicode-property-aliases-ecmascript-1.1.0" = {
+      name = "unicode-property-aliases-ecmascript";
+      packageName = "unicode-property-aliases-ecmascript";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz";
+        sha512 = "PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==";
+      };
+    };
+    "union-value-1.0.1" = {
+      name = "union-value";
+      packageName = "union-value";
+      version = "1.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz";
+        sha512 = "tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==";
+      };
+    };
+    "unique-stream-2.3.1" = {
+      name = "unique-stream";
+      packageName = "unique-stream";
+      version = "2.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz";
+        sha512 = "2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A==";
+      };
+    };
+    "universalify-1.0.0" = {
+      name = "universalify";
+      packageName = "universalify";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz";
+        sha512 = "rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==";
+      };
+    };
+    "unix-dgram-2.0.3" = {
+      name = "unix-dgram";
+      packageName = "unix-dgram";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unix-dgram/-/unix-dgram-2.0.3.tgz";
+        sha512 = "Bay5CkSLcdypcBCsxvHEvaG3mftzT5FlUnRToPWEAVxwYI8NI/8zSJ/Gknlp86MPhV6hBA8I8TBsETj2tssoHQ==";
+      };
+    };
+    "unset-value-1.0.0" = {
+      name = "unset-value";
+      packageName = "unset-value";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz";
+        sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+      };
+    };
+    "upath-1.2.0" = {
+      name = "upath";
+      packageName = "upath";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz";
+        sha512 = "aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==";
+      };
+    };
+    "uri-js-4.2.2" = {
+      name = "uri-js";
+      packageName = "uri-js";
+      version = "4.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz";
+        sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==";
+      };
+    };
+    "urix-0.1.0" = {
+      name = "urix";
+      packageName = "urix";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz";
+        sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+      };
+    };
+    "use-3.1.1" = {
+      name = "use";
+      packageName = "use";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/use/-/use-3.1.1.tgz";
+        sha512 = "cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==";
+      };
+    };
+    "util-deprecate-1.0.2" = {
+      name = "util-deprecate";
+      packageName = "util-deprecate";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
+        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+      };
+    };
+    "uuid-3.4.0" = {
+      name = "uuid";
+      packageName = "uuid";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz";
+        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
+      };
+    };
+    "uuid-8.3.0" = {
+      name = "uuid";
+      packageName = "uuid";
+      version = "8.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/uuid/-/uuid-8.3.0.tgz";
+        sha512 = "fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==";
+      };
+    };
+    "v8-compile-cache-2.1.1" = {
+      name = "v8-compile-cache";
+      packageName = "v8-compile-cache";
+      version = "2.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz";
+        sha512 = "8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==";
+      };
+    };
+    "v8-to-istanbul-5.0.1" = {
+      name = "v8-to-istanbul";
+      packageName = "v8-to-istanbul";
+      version = "5.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-5.0.1.tgz";
+        sha512 = "mbDNjuDajqYe3TXFk5qxcQy8L1msXNE37WTlLoqqpBfRsimbNcrlhQlDPntmECEcUvdC+AQ8CyMMf6EUx1r74Q==";
+      };
+    };
+    "validate-npm-package-license-3.0.4" = {
+      name = "validate-npm-package-license";
+      packageName = "validate-npm-package-license";
+      version = "3.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz";
+        sha512 = "DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==";
+      };
+    };
+    "verror-1.10.0" = {
+      name = "verror";
+      packageName = "verror";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz";
+        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+      };
+    };
+    "w3c-hr-time-1.0.2" = {
+      name = "w3c-hr-time";
+      packageName = "w3c-hr-time";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz";
+        sha512 = "z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==";
+      };
+    };
+    "w3c-xmlserializer-2.0.0" = {
+      name = "w3c-xmlserializer";
+      packageName = "w3c-xmlserializer";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz";
+        sha512 = "4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==";
+      };
+    };
+    "walker-1.0.7" = {
+      name = "walker";
+      packageName = "walker";
+      version = "1.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz";
+        sha1 = "2f7f9b8fd10d677262b18a884e28d19618e028fb";
+      };
+    };
+    "webidl-conversions-5.0.0" = {
+      name = "webidl-conversions";
+      packageName = "webidl-conversions";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz";
+        sha512 = "VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==";
+      };
+    };
+    "webidl-conversions-6.1.0" = {
+      name = "webidl-conversions";
+      packageName = "webidl-conversions";
+      version = "6.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz";
+        sha512 = "qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==";
+      };
+    };
+    "whatwg-encoding-1.0.5" = {
+      name = "whatwg-encoding";
+      packageName = "whatwg-encoding";
+      version = "1.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz";
+        sha512 = "b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==";
+      };
+    };
+    "whatwg-mimetype-2.3.0" = {
+      name = "whatwg-mimetype";
+      packageName = "whatwg-mimetype";
+      version = "2.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz";
+        sha512 = "M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==";
+      };
+    };
+    "whatwg-url-8.2.1" = {
+      name = "whatwg-url";
+      packageName = "whatwg-url";
+      version = "8.2.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.2.1.tgz";
+        sha512 = "ZmVCr6nfBeaMxEHALLEGy0LszYjpJqf6PVNQUQ1qd9Et+q7Jpygd4rGGDXgHjD8e99yLFseD69msHDM4YwPZ4A==";
+      };
+    };
+    "which-1.3.1" = {
+      name = "which";
+      packageName = "which";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which/-/which-1.3.1.tgz";
+        sha512 = "HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==";
+      };
+    };
+    "which-2.0.2" = {
+      name = "which";
+      packageName = "which";
+      version = "2.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which/-/which-2.0.2.tgz";
+        sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==";
+      };
+    };
+    "which-module-2.0.0" = {
+      name = "which-module";
+      packageName = "which-module";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz";
+        sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+      };
+    };
+    "which-pm-runs-1.0.0" = {
+      name = "which-pm-runs";
+      packageName = "which-pm-runs";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz";
+        sha1 = "670b3afbc552e0b55df6b7780ca74615f23ad1cb";
+      };
+    };
+    "wide-align-1.1.3" = {
+      name = "wide-align";
+      packageName = "wide-align";
+      version = "1.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz";
+        sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
+      };
+    };
+    "winston-3.3.3" = {
+      name = "winston";
+      packageName = "winston";
+      version = "3.3.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz";
+        sha512 = "oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==";
+      };
+    };
+    "winston-syslog-2.4.4" = {
+      name = "winston-syslog";
+      packageName = "winston-syslog";
+      version = "2.4.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston-syslog/-/winston-syslog-2.4.4.tgz";
+        sha512 = "zDjoKO932Yszvzq8WtbIFMXHwAT2MOxpWC9s6djw2tvjdRESWw3au6l+0xDMatMhNWVoVaVNkDXF+r/eyoBUVA==";
+      };
+    };
+    "winston-transport-4.4.0" = {
+      name = "winston-transport";
+      packageName = "winston-transport";
+      version = "4.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz";
+        sha512 = "Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==";
+      };
+    };
+    "word-wrap-1.2.3" = {
+      name = "word-wrap";
+      packageName = "word-wrap";
+      version = "1.2.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz";
+        sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==";
+      };
+    };
+    "wordwrap-1.0.0" = {
+      name = "wordwrap";
+      packageName = "wordwrap";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz";
+        sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
+      };
+    };
+    "wrap-ansi-6.2.0" = {
+      name = "wrap-ansi";
+      packageName = "wrap-ansi";
+      version = "6.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz";
+        sha512 = "r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==";
+      };
+    };
+    "wrappy-1.0.2" = {
+      name = "wrappy";
+      packageName = "wrappy";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
+        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+      };
+    };
+    "write-1.0.3" = {
+      name = "write";
+      packageName = "write";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/write/-/write-1.0.3.tgz";
+        sha512 = "/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==";
+      };
+    };
+    "write-file-atomic-3.0.3" = {
+      name = "write-file-atomic";
+      packageName = "write-file-atomic";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz";
+        sha512 = "AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==";
+      };
+    };
+    "ws-7.3.1" = {
+      name = "ws";
+      packageName = "ws";
+      version = "7.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ws/-/ws-7.3.1.tgz";
+        sha512 = "D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA==";
+      };
+    };
+    "xml-name-validator-3.0.0" = {
+      name = "xml-name-validator";
+      packageName = "xml-name-validator";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz";
+        sha512 = "A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==";
+      };
+    };
+    "xmlchars-2.2.0" = {
+      name = "xmlchars";
+      packageName = "xmlchars";
+      version = "2.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz";
+        sha512 = "JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==";
+      };
+    };
+    "xtend-4.0.2" = {
+      name = "xtend";
+      packageName = "xtend";
+      version = "4.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz";
+        sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==";
+      };
+    };
+    "y18n-4.0.0" = {
+      name = "y18n";
+      packageName = "y18n";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz";
+        sha512 = "r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==";
+      };
+    };
+    "yargs-15.4.1" = {
+      name = "yargs";
+      packageName = "yargs";
+      version = "15.4.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz";
+        sha512 = "aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==";
+      };
+    };
+    "yargs-parser-18.1.3" = {
+      name = "yargs-parser";
+      packageName = "yargs-parser";
+      version = "18.1.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz";
+        sha512 = "o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==";
+      };
+    };
+    "zigbee-herdsman-0.12.127" = {
+      name = "zigbee-herdsman";
+      packageName = "zigbee-herdsman";
+      version = "0.12.127";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/zigbee-herdsman/-/zigbee-herdsman-0.12.127.tgz";
+        sha512 = "NbNwX+83byss1tQpZXydpo9iYuHa3RV88X2vHpmoNnv4WuHBjnSbmL/1sdiUB1URBIGeFgC9MxLiTtqxMyCehQ==";
+      };
+    };
+    "zigbee-herdsman-converters-12.0.178" = {
+      name = "zigbee-herdsman-converters";
+      packageName = "zigbee-herdsman-converters";
+      version = "12.0.178";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/zigbee-herdsman-converters/-/zigbee-herdsman-converters-12.0.178.tgz";
+        sha512 = "SOATRwJU8NCWay194BCzDr0+HkgF4ANv8Qw8Xmqbz60YZWsNh9y8tYrVbIbcTdiZKLGzambrmY66DgOntiTxNA==";
+      };
+    };
+  };
+  args = {
+    name = "zigbee2mqtt";
+    packageName = "zigbee2mqtt";
+    version = "1.14.4";
+    src = ./.;
+    dependencies = [
+      sources."@dabh/diagnostics-2.0.2"
+      sources."ajv-6.12.4"
+      sources."argparse-1.0.10"
+      sources."async-3.2.0"
+      sources."balanced-match-1.0.0"
+      sources."base64-js-1.3.1"
+      sources."bindings-1.5.0"
+      (sources."bl-4.0.3" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."brace-expansion-1.1.11"
+      sources."buffer-5.6.0"
+      sources."buffer-from-1.1.1"
+      sources."callback-stream-1.1.0"
+      sources."color-3.0.0"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."color-string-1.5.3"
+      sources."colors-1.4.0"
+      sources."colorspace-1.1.2"
+      sources."commist-1.1.0"
+      sources."concat-map-0.0.1"
+      sources."concat-stream-1.6.2"
+      sources."core-util-is-1.0.2"
+      sources."d-1.0.1"
+      sources."debounce-1.2.0"
+      sources."debug-4.1.1"
+      sources."duplexify-3.7.1"
+      sources."enabled-2.0.0"
+      sources."end-of-stream-1.4.4"
+      sources."es5-ext-0.10.53"
+      sources."es6-iterator-2.0.3"
+      sources."es6-map-0.1.5"
+      (sources."es6-set-0.1.5" // {
+        dependencies = [
+          sources."es6-symbol-3.1.1"
+        ];
+      })
+      sources."es6-symbol-3.1.3"
+      sources."esprima-4.0.1"
+      sources."event-emitter-0.3.5"
+      (sources."ext-1.4.0" // {
+        dependencies = [
+          sources."type-2.1.0"
+        ];
+      })
+      sources."extend-3.0.2"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-safe-stringify-2.0.7"
+      sources."fecha-4.2.0"
+      sources."file-uri-to-path-1.0.0"
+      sources."fn.name-1.1.0"
+      sources."fs.realpath-1.0.0"
+      sources."git-last-commit-1.0.0"
+      sources."glob-7.1.6"
+      sources."glob-parent-3.1.0"
+      sources."glob-stream-6.1.0"
+      sources."glossy-0.1.7"
+      sources."help-me-1.1.0"
+      sources."humanize-duration-3.23.1"
+      sources."ieee754-1.1.13"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."is-absolute-1.0.0"
+      sources."is-arrayish-0.3.2"
+      sources."is-extglob-2.1.1"
+      sources."is-glob-3.1.0"
+      sources."is-negated-glob-1.0.0"
+      sources."is-relative-1.0.0"
+      sources."is-stream-2.0.0"
+      sources."is-unc-path-1.0.0"
+      sources."is-windows-1.0.2"
+      sources."isarray-1.0.0"
+      sources."js-yaml-3.14.0"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stable-stringify-1.0.1"
+      sources."json-stable-stringify-without-jsonify-1.0.1"
+      sources."jsonify-0.0.0"
+      sources."kuler-2.0.0"
+      sources."leven-2.1.0"
+      sources."logform-2.2.0"
+      sources."minimatch-3.0.4"
+      sources."minimist-1.2.5"
+      sources."mkdir-recursive-0.4.0"
+      sources."moment-2.27.0"
+      sources."mqtt-4.2.1"
+      (sources."mqtt-packet-6.4.0" // {
+        dependencies = [
+          sources."safe-buffer-5.2.1"
+        ];
+      })
+      sources."ms-2.1.2"
+      sources."nan-2.14.1"
+      sources."next-tick-1.0.0"
+      sources."object-assign-deep-0.4.0"
+      sources."once-1.4.0"
+      sources."one-time-1.0.0"
+      sources."ordered-read-streams-1.0.1"
+      sources."path-dirname-1.0.2"
+      sources."path-is-absolute-1.0.1"
+      sources."process-nextick-args-2.0.1"
+      sources."pump-3.0.0"
+      (sources."pumpify-1.5.1" // {
+        dependencies = [
+          sources."pump-2.0.1"
+        ];
+      })
+      sources."punycode-2.1.1"
+      sources."readable-stream-2.3.7"
+      sources."reinterval-1.1.0"
+      sources."remove-trailing-separator-1.1.0"
+      sources."rimraf-3.0.2"
+      sources."safe-buffer-5.1.2"
+      sources."semver-7.3.2"
+      sources."simple-swizzle-0.2.2"
+      (sources."split2-3.2.2" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."sprintf-js-1.0.3"
+      sources."stack-trace-0.0.10"
+      sources."stream-shift-1.0.1"
+      sources."string_decoder-1.1.1"
+      sources."text-hex-1.0.0"
+      sources."through2-2.0.5"
+      sources."through2-filter-3.0.0"
+      sources."to-absolute-glob-2.0.2"
+      sources."triple-beam-1.3.0"
+      sources."type-1.2.0"
+      sources."typedarray-0.0.6"
+      sources."unc-path-regex-0.1.2"
+      sources."unique-stream-2.3.1"
+      sources."unix-dgram-2.0.3"
+      sources."uri-js-4.2.2"
+      sources."util-deprecate-1.0.2"
+      (sources."winston-3.3.3" // {
+        dependencies = [
+          sources."readable-stream-3.6.0"
+        ];
+      })
+      sources."winston-syslog-2.4.4"
+      sources."winston-transport-4.4.0"
+      sources."wrappy-1.0.2"
+      sources."ws-7.3.1"
+      sources."xtend-4.0.2"
+      (sources."zigbee-herdsman-0.12.127" // {
+        dependencies = [
+          sources."@babel/cli-7.10.5"
+          sources."@babel/code-frame-7.10.4"
+          sources."@babel/compat-data-7.11.0"
+          sources."@babel/core-7.11.4"
+          sources."@babel/generator-7.11.4"
+          sources."@babel/helper-annotate-as-pure-7.10.4"
+          sources."@babel/helper-builder-binary-assignment-operator-visitor-7.10.4"
+          sources."@babel/helper-compilation-targets-7.10.4"
+          sources."@babel/helper-create-class-features-plugin-7.10.5"
+          sources."@babel/helper-create-regexp-features-plugin-7.10.4"
+          sources."@babel/helper-define-map-7.10.5"
+          sources."@babel/helper-explode-assignable-expression-7.11.4"
+          sources."@babel/helper-function-name-7.10.4"
+          sources."@babel/helper-get-function-arity-7.10.4"
+          sources."@babel/helper-hoist-variables-7.10.4"
+          sources."@babel/helper-member-expression-to-functions-7.11.0"
+          sources."@babel/helper-module-imports-7.10.4"
+          sources."@babel/helper-module-transforms-7.11.0"
+          sources."@babel/helper-optimise-call-expression-7.10.4"
+          sources."@babel/helper-plugin-utils-7.10.4"
+          sources."@babel/helper-regex-7.10.5"
+          sources."@babel/helper-remap-async-to-generator-7.11.4"
+          sources."@babel/helper-replace-supers-7.10.4"
+          sources."@babel/helper-simple-access-7.10.4"
+          sources."@babel/helper-skip-transparent-expression-wrappers-7.11.0"
+          sources."@babel/helper-split-export-declaration-7.11.0"
+          sources."@babel/helper-validator-identifier-7.10.4"
+          sources."@babel/helper-wrap-function-7.10.4"
+          sources."@babel/helpers-7.10.4"
+          sources."@babel/highlight-7.10.4"
+          sources."@babel/parser-7.11.4"
+          sources."@babel/plugin-proposal-async-generator-functions-7.10.5"
+          sources."@babel/plugin-proposal-class-properties-7.10.4"
+          sources."@babel/plugin-proposal-dynamic-import-7.10.4"
+          sources."@babel/plugin-proposal-export-namespace-from-7.10.4"
+          sources."@babel/plugin-proposal-json-strings-7.10.4"
+          sources."@babel/plugin-proposal-logical-assignment-operators-7.11.0"
+          sources."@babel/plugin-proposal-nullish-coalescing-operator-7.10.4"
+          sources."@babel/plugin-proposal-numeric-separator-7.10.4"
+          sources."@babel/plugin-proposal-object-rest-spread-7.11.0"
+          sources."@babel/plugin-proposal-optional-catch-binding-7.10.4"
+          sources."@babel/plugin-proposal-optional-chaining-7.11.0"
+          sources."@babel/plugin-proposal-private-methods-7.10.4"
+          sources."@babel/plugin-proposal-unicode-property-regex-7.10.4"
+          sources."@babel/plugin-syntax-async-generators-7.8.4"
+          sources."@babel/plugin-syntax-bigint-7.8.3"
+          sources."@babel/plugin-syntax-class-properties-7.10.4"
+          sources."@babel/plugin-syntax-dynamic-import-7.8.3"
+          sources."@babel/plugin-syntax-export-namespace-from-7.8.3"
+          sources."@babel/plugin-syntax-import-meta-7.10.4"
+          sources."@babel/plugin-syntax-json-strings-7.8.3"
+          sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
+          sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
+          sources."@babel/plugin-syntax-numeric-separator-7.10.4"
+          sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
+          sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
+          sources."@babel/plugin-syntax-optional-chaining-7.8.3"
+          sources."@babel/plugin-syntax-top-level-await-7.10.4"
+          sources."@babel/plugin-syntax-typescript-7.10.4"
+          sources."@babel/plugin-transform-arrow-functions-7.10.4"
+          sources."@babel/plugin-transform-async-to-generator-7.10.4"
+          sources."@babel/plugin-transform-block-scoped-functions-7.10.4"
+          sources."@babel/plugin-transform-block-scoping-7.11.1"
+          sources."@babel/plugin-transform-classes-7.10.4"
+          sources."@babel/plugin-transform-computed-properties-7.10.4"
+          sources."@babel/plugin-transform-destructuring-7.10.4"
+          sources."@babel/plugin-transform-dotall-regex-7.10.4"
+          sources."@babel/plugin-transform-duplicate-keys-7.10.4"
+          sources."@babel/plugin-transform-exponentiation-operator-7.10.4"
+          sources."@babel/plugin-transform-for-of-7.10.4"
+          sources."@babel/plugin-transform-function-name-7.10.4"
+          sources."@babel/plugin-transform-literals-7.10.4"
+          sources."@babel/plugin-transform-member-expression-literals-7.10.4"
+          sources."@babel/plugin-transform-modules-amd-7.10.5"
+          sources."@babel/plugin-transform-modules-commonjs-7.10.4"
+          sources."@babel/plugin-transform-modules-systemjs-7.10.5"
+          sources."@babel/plugin-transform-modules-umd-7.10.4"
+          sources."@babel/plugin-transform-named-capturing-groups-regex-7.10.4"
+          sources."@babel/plugin-transform-new-target-7.10.4"
+          sources."@babel/plugin-transform-object-super-7.10.4"
+          sources."@babel/plugin-transform-parameters-7.10.5"
+          sources."@babel/plugin-transform-property-literals-7.10.4"
+          sources."@babel/plugin-transform-regenerator-7.10.4"
+          sources."@babel/plugin-transform-reserved-words-7.10.4"
+          sources."@babel/plugin-transform-shorthand-properties-7.10.4"
+          sources."@babel/plugin-transform-spread-7.11.0"
+          sources."@babel/plugin-transform-sticky-regex-7.10.4"
+          sources."@babel/plugin-transform-template-literals-7.10.5"
+          sources."@babel/plugin-transform-typeof-symbol-7.10.4"
+          sources."@babel/plugin-transform-typescript-7.11.0"
+          sources."@babel/plugin-transform-unicode-escapes-7.10.4"
+          sources."@babel/plugin-transform-unicode-regex-7.10.4"
+          sources."@babel/preset-env-7.11.0"
+          sources."@babel/preset-modules-0.1.4"
+          sources."@babel/preset-typescript-7.10.4"
+          sources."@babel/runtime-7.11.2"
+          sources."@babel/template-7.10.4"
+          sources."@babel/traverse-7.11.0"
+          sources."@babel/types-7.11.0"
+          sources."@bcoe/v8-coverage-0.2.3"
+          sources."@cnakazawa/watch-1.0.4"
+          sources."@istanbuljs/load-nyc-config-1.1.0"
+          sources."@istanbuljs/schema-0.1.2"
+          (sources."@jest/console-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."slash-3.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."@jest/core-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."braces-3.0.2"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."fill-range-7.0.1"
+              sources."has-flag-4.0.0"
+              sources."is-number-7.0.0"
+              sources."micromatch-4.0.2"
+              sources."rimraf-3.0.2"
+              sources."slash-3.0.0"
+              sources."strip-ansi-6.0.0"
+              sources."supports-color-7.2.0"
+              sources."to-regex-range-5.0.1"
+            ];
+          })
+          (sources."@jest/environment-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."@jest/fake-timers-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."@jest/globals-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."@jest/reporters-26.4.1" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."slash-3.0.0"
+              sources."source-map-0.6.1"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."@jest/source-map-26.3.0" // {
+            dependencies = [
+              sources."source-map-0.6.1"
+            ];
+          })
+          (sources."@jest/test-result-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."@jest/test-sequencer-26.4.2"
+          (sources."@jest/transform-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."braces-3.0.2"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."fill-range-7.0.1"
+              sources."has-flag-4.0.0"
+              sources."is-number-7.0.0"
+              sources."micromatch-4.0.2"
+              sources."slash-3.0.0"
+              sources."source-map-0.6.1"
+              sources."supports-color-7.2.0"
+              sources."to-regex-range-5.0.1"
+            ];
+          })
+          (sources."@jest/types-25.5.0" // {
+            dependencies = [
+              sources."ansi-styles-4.2.1"
+              sources."chalk-3.0.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."@serialport/binding-abstract-9.0.1"
+          sources."@serialport/binding-mock-9.0.1"
+          sources."@serialport/bindings-9.0.1"
+          sources."@serialport/parser-byte-length-9.0.1"
+          sources."@serialport/parser-cctalk-9.0.1"
+          sources."@serialport/parser-delimiter-9.0.1"
+          sources."@serialport/parser-readline-9.0.1"
+          sources."@serialport/parser-ready-9.0.1"
+          sources."@serialport/parser-regex-9.0.1"
+          sources."@serialport/stream-9.0.1"
+          sources."@sinonjs/commons-1.8.1"
+          sources."@sinonjs/fake-timers-6.0.1"
+          sources."@types/babel__core-7.1.9"
+          sources."@types/babel__generator-7.6.1"
+          sources."@types/babel__template-7.0.2"
+          sources."@types/babel__traverse-7.0.13"
+          sources."@types/color-name-1.1.1"
+          sources."@types/debug-4.1.5"
+          sources."@types/eslint-visitor-keys-1.0.0"
+          sources."@types/graceful-fs-4.1.3"
+          sources."@types/istanbul-lib-coverage-2.0.3"
+          sources."@types/istanbul-lib-report-3.0.0"
+          sources."@types/istanbul-reports-1.1.2"
+          sources."@types/jest-26.0.10"
+          sources."@types/json-schema-7.0.5"
+          sources."@types/nedb-1.8.10"
+          sources."@types/node-14.6.2"
+          sources."@types/normalize-package-data-2.4.0"
+          sources."@types/prettier-2.1.0"
+          sources."@types/serialport-8.0.1"
+          sources."@types/stack-utils-1.0.1"
+          sources."@types/yargs-15.0.5"
+          sources."@types/yargs-parser-15.0.0"
+          (sources."@typescript-eslint/eslint-plugin-3.10.1" // {
+            dependencies = [
+              sources."semver-7.3.2"
+            ];
+          })
+          sources."@typescript-eslint/experimental-utils-3.10.1"
+          sources."@typescript-eslint/parser-3.10.1"
+          sources."@typescript-eslint/types-3.10.1"
+          (sources."@typescript-eslint/typescript-estree-3.10.1" // {
+            dependencies = [
+              sources."semver-7.3.2"
+            ];
+          })
+          sources."@typescript-eslint/visitor-keys-3.10.1"
+          sources."abab-2.0.4"
+          sources."acorn-7.4.0"
+          sources."acorn-globals-6.0.0"
+          sources."acorn-jsx-5.2.0"
+          sources."acorn-walk-7.2.0"
+          sources."ajv-6.12.4"
+          sources."ansi-colors-4.1.1"
+          (sources."ansi-escapes-4.3.1" // {
+            dependencies = [
+              sources."type-fest-0.11.0"
+            ];
+          })
+          sources."ansi-regex-2.1.1"
+          sources."ansi-styles-3.2.1"
+          (sources."anymatch-2.0.0" // {
+            dependencies = [
+              sources."normalize-path-2.1.1"
+            ];
+          })
+          sources."aproba-1.2.0"
+          sources."are-we-there-yet-1.1.5"
+          sources."argparse-1.0.10"
+          sources."arr-diff-4.0.0"
+          sources."arr-flatten-1.1.0"
+          sources."arr-union-3.1.0"
+          sources."array-unique-0.3.2"
+          sources."asn1-0.2.4"
+          sources."assert-plus-1.0.0"
+          sources."assign-symbols-1.0.0"
+          sources."astral-regex-1.0.0"
+          sources."async-each-1.0.3"
+          sources."asynckit-0.4.0"
+          sources."at-least-node-1.0.0"
+          sources."atob-2.1.2"
+          sources."aws-sign2-0.7.0"
+          sources."aws4-1.10.1"
+          (sources."babel-jest-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."slash-3.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."babel-plugin-dynamic-import-node-2.3.3"
+          sources."babel-plugin-istanbul-6.0.0"
+          sources."babel-plugin-jest-hoist-26.2.0"
+          sources."babel-preset-current-node-syntax-0.1.3"
+          sources."babel-preset-jest-26.3.0"
+          sources."balanced-match-1.0.0"
+          (sources."base-0.11.2" // {
+            dependencies = [
+              sources."define-property-1.0.0"
+              sources."is-accessor-descriptor-1.0.0"
+              sources."is-data-descriptor-1.0.0"
+              sources."is-descriptor-1.0.2"
+              sources."is-extendable-1.0.1"
+              sources."mixin-deep-1.3.2"
+            ];
+          })
+          sources."base64-js-1.3.1"
+          sources."bcrypt-pbkdf-1.0.2"
+          sources."binary-extensions-1.13.1"
+          sources."bindings-1.5.0"
+          (sources."bl-4.0.3" // {
+            dependencies = [
+              sources."readable-stream-3.6.0"
+            ];
+          })
+          sources."brace-expansion-1.1.11"
+          (sources."braces-2.3.2" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          sources."browser-process-hrtime-1.0.0"
+          sources."browserslist-4.14.0"
+          sources."bser-2.1.1"
+          sources."buffer-5.6.0"
+          sources."buffer-from-1.1.1"
+          sources."cache-base-1.0.1"
+          sources."callsites-3.1.0"
+          sources."camelcase-5.3.1"
+          sources."caniuse-lite-1.0.30001119"
+          sources."capture-exit-2.0.0"
+          sources."caseless-0.12.0"
+          sources."chalk-2.4.2"
+          sources."char-regex-1.0.2"
+          sources."chokidar-2.1.8"
+          sources."chownr-1.1.4"
+          sources."ci-info-2.0.0"
+          (sources."class-utils-0.3.6" // {
+            dependencies = [
+              sources."define-property-0.2.5"
+            ];
+          })
+          (sources."cliui-6.0.0" // {
+            dependencies = [
+              sources."ansi-regex-5.0.0"
+              sources."emoji-regex-8.0.0"
+              sources."is-fullwidth-code-point-3.0.0"
+              sources."string-width-4.2.0"
+              sources."strip-ansi-6.0.0"
+            ];
+          })
+          sources."co-4.6.0"
+          sources."code-point-at-1.1.0"
+          sources."collect-v8-coverage-1.0.1"
+          sources."collection-visit-1.0.0"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."combined-stream-1.0.8"
+          sources."commander-4.1.1"
+          sources."component-emitter-1.3.0"
+          sources."concat-map-0.0.1"
+          sources."console-control-strings-1.1.0"
+          sources."convert-source-map-1.7.0"
+          sources."copy-descriptor-0.1.1"
+          (sources."core-js-compat-3.6.5" // {
+            dependencies = [
+              sources."semver-7.0.0"
+            ];
+          })
+          sources."core-util-is-1.0.2"
+          sources."cross-spawn-6.0.5"
+          sources."cssom-0.4.4"
+          (sources."cssstyle-2.3.0" // {
+            dependencies = [
+              sources."cssom-0.3.8"
+            ];
+          })
+          sources."dashdash-1.14.1"
+          sources."data-urls-2.0.0"
+          sources."debug-4.1.1"
+          sources."decamelize-1.2.0"
+          sources."decimal.js-10.2.0"
+          sources."decode-uri-component-0.2.0"
+          sources."decompress-response-4.2.1"
+          sources."deep-extend-0.6.0"
+          sources."deep-is-0.1.3"
+          sources."deepmerge-4.2.2"
+          sources."define-properties-1.1.3"
+          (sources."define-property-2.0.2" // {
+            dependencies = [
+              sources."is-accessor-descriptor-1.0.0"
+              sources."is-data-descriptor-1.0.0"
+              sources."is-descriptor-1.0.2"
+            ];
+          })
+          sources."delayed-stream-1.0.0"
+          sources."delegates-1.0.0"
+          sources."detect-libc-1.0.3"
+          sources."detect-newline-3.1.0"
+          sources."diff-sequences-25.2.6"
+          sources."doctrine-3.0.0"
+          (sources."domexception-2.0.1" // {
+            dependencies = [
+              sources."webidl-conversions-5.0.0"
+            ];
+          })
+          sources."ecc-jsbn-0.1.2"
+          sources."electron-to-chromium-1.3.555"
+          sources."emittery-0.7.1"
+          sources."emoji-regex-7.0.3"
+          sources."end-of-stream-1.4.4"
+          sources."enquirer-2.3.6"
+          sources."error-ex-1.3.2"
+          sources."escalade-3.0.2"
+          sources."escape-string-regexp-1.0.5"
+          (sources."escodegen-1.14.3" // {
+            dependencies = [
+              sources."levn-0.3.0"
+              sources."optionator-0.8.3"
+              sources."prelude-ls-1.1.2"
+              sources."source-map-0.6.1"
+              sources."type-check-0.3.2"
+            ];
+          })
+          (sources."eslint-7.7.0" // {
+            dependencies = [
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."cross-spawn-7.0.3"
+              sources."glob-parent-5.1.1"
+              sources."globals-12.4.0"
+              sources."has-flag-4.0.0"
+              sources."path-key-3.1.1"
+              sources."semver-7.3.2"
+              sources."shebang-command-2.0.0"
+              sources."shebang-regex-3.0.0"
+              sources."strip-ansi-6.0.0"
+              sources."strip-json-comments-3.1.1"
+              sources."supports-color-7.2.0"
+              sources."which-2.0.2"
+            ];
+          })
+          sources."eslint-scope-5.1.0"
+          sources."eslint-utils-2.1.0"
+          sources."eslint-visitor-keys-1.3.0"
+          sources."espree-7.3.0"
+          sources."esprima-4.0.1"
+          (sources."esquery-1.3.1" // {
+            dependencies = [
+              sources."estraverse-5.2.0"
+            ];
+          })
+          sources."esrecurse-4.2.1"
+          sources."estraverse-4.3.0"
+          sources."esutils-2.0.3"
+          sources."exec-sh-0.3.4"
+          sources."execa-1.0.0"
+          sources."exit-0.1.2"
+          (sources."expand-brackets-2.1.4" // {
+            dependencies = [
+              sources."debug-2.6.9"
+              sources."define-property-0.2.5"
+              sources."extend-shallow-2.0.1"
+              sources."ms-2.0.0"
+            ];
+          })
+          sources."expand-template-2.0.3"
+          (sources."expect-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."jest-get-type-26.3.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."extend-3.0.2"
+          (sources."extend-shallow-3.0.2" // {
+            dependencies = [
+              sources."is-extendable-1.0.1"
+            ];
+          })
+          (sources."extglob-2.0.4" // {
+            dependencies = [
+              sources."define-property-1.0.0"
+              sources."extend-shallow-2.0.1"
+              sources."is-accessor-descriptor-1.0.0"
+              sources."is-data-descriptor-1.0.0"
+              sources."is-descriptor-1.0.2"
+            ];
+          })
+          sources."extsprintf-1.3.0"
+          sources."fast-deep-equal-3.1.3"
+          sources."fast-json-stable-stringify-2.1.0"
+          sources."fast-levenshtein-2.0.6"
+          sources."fb-watchman-2.0.1"
+          sources."file-entry-cache-5.0.1"
+          sources."file-uri-to-path-1.0.0"
+          (sources."fill-range-4.0.0" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          sources."find-up-4.1.0"
+          sources."flat-cache-2.0.1"
+          sources."flatted-2.0.2"
+          sources."for-in-1.0.2"
+          sources."forever-agent-0.6.1"
+          sources."form-data-2.3.3"
+          sources."fragment-cache-0.2.1"
+          sources."fs-constants-1.0.0"
+          sources."fs-extra-9.0.1"
+          sources."fs-readdir-recursive-1.1.0"
+          sources."fs.realpath-1.0.0"
+          sources."fsevents-1.2.13"
+          sources."function-bind-1.1.1"
+          sources."functional-red-black-tree-1.0.1"
+          sources."gauge-2.7.4"
+          sources."gensync-1.0.0-beta.1"
+          sources."get-caller-file-2.0.5"
+          sources."get-package-type-0.1.0"
+          sources."get-stream-4.1.0"
+          sources."get-value-2.0.6"
+          sources."getpass-0.1.7"
+          sources."github-from-package-0.0.0"
+          sources."glob-7.1.6"
+          (sources."glob-parent-3.1.0" // {
+            dependencies = [
+              sources."is-glob-3.1.0"
+            ];
+          })
+          sources."globals-11.12.0"
+          sources."graceful-fs-4.2.4"
+          sources."growly-1.3.0"
+          (sources."handlebars-4.7.6" // {
+            dependencies = [
+              sources."source-map-0.6.1"
+            ];
+          })
+          sources."har-schema-2.0.0"
+          sources."har-validator-5.1.5"
+          sources."has-flag-3.0.0"
+          sources."has-symbols-1.0.1"
+          sources."has-unicode-2.0.1"
+          sources."has-value-1.0.0"
+          (sources."has-values-1.0.0" // {
+            dependencies = [
+              sources."kind-of-4.0.0"
+            ];
+          })
+          sources."highlight.js-10.1.2"
+          sources."hosted-git-info-2.8.8"
+          sources."html-encoding-sniffer-2.0.1"
+          sources."html-escaper-2.0.2"
+          sources."http-signature-1.2.0"
+          sources."human-signals-1.1.1"
+          sources."iconv-lite-0.4.24"
+          sources."ieee754-1.1.13"
+          sources."ignore-4.0.6"
+          (sources."import-fresh-3.2.1" // {
+            dependencies = [
+              sources."resolve-from-4.0.0"
+            ];
+          })
+          sources."import-local-3.0.2"
+          sources."imurmurhash-0.1.4"
+          sources."inflight-1.0.6"
+          sources."inherits-2.0.4"
+          sources."ini-1.3.5"
+          sources."interpret-1.4.0"
+          sources."invariant-2.2.4"
+          sources."ip-regex-2.1.0"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-arrayish-0.2.1"
+          sources."is-binary-path-1.0.1"
+          sources."is-buffer-1.1.6"
+          sources."is-ci-2.0.0"
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-5.1.0"
+            ];
+          })
+          sources."is-docker-2.1.1"
+          sources."is-extendable-0.1.1"
+          sources."is-extglob-2.1.1"
+          sources."is-fullwidth-code-point-1.0.0"
+          sources."is-generator-fn-2.1.0"
+          sources."is-glob-4.0.1"
+          (sources."is-number-3.0.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-plain-object-2.0.4"
+          sources."is-potential-custom-element-name-1.0.0"
+          sources."is-stream-1.1.0"
+          sources."is-typedarray-1.0.0"
+          sources."is-windows-1.0.2"
+          sources."is-wsl-2.2.0"
+          sources."isarray-1.0.0"
+          sources."isexe-2.0.0"
+          sources."isobject-3.0.1"
+          sources."isstream-0.1.2"
+          sources."istanbul-lib-coverage-3.0.0"
+          (sources."istanbul-lib-instrument-4.0.3" // {
+            dependencies = [
+              sources."semver-6.3.0"
+            ];
+          })
+          (sources."istanbul-lib-report-3.0.0" // {
+            dependencies = [
+              sources."has-flag-4.0.0"
+              sources."make-dir-3.1.0"
+              sources."semver-6.3.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."istanbul-lib-source-maps-4.0.0" // {
+            dependencies = [
+              sources."source-map-0.6.1"
+            ];
+          })
+          sources."istanbul-reports-3.0.2"
+          (sources."jest-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."jest-cli-26.4.2"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-changed-files-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."cross-spawn-7.0.3"
+              sources."execa-4.0.3"
+              sources."get-stream-5.2.0"
+              sources."has-flag-4.0.0"
+              sources."is-stream-2.0.0"
+              sources."npm-run-path-4.0.1"
+              sources."path-key-3.1.1"
+              sources."shebang-command-2.0.0"
+              sources."shebang-regex-3.0.0"
+              sources."supports-color-7.2.0"
+              sources."which-2.0.2"
+            ];
+          })
+          (sources."jest-config-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."braces-3.0.2"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."fill-range-7.0.1"
+              sources."has-flag-4.0.0"
+              sources."is-number-7.0.0"
+              sources."jest-get-type-26.3.0"
+              sources."micromatch-4.0.2"
+              sources."pretty-format-26.4.2"
+              sources."supports-color-7.2.0"
+              sources."to-regex-range-5.0.1"
+            ];
+          })
+          (sources."jest-diff-25.5.0" // {
+            dependencies = [
+              sources."ansi-styles-4.2.1"
+              sources."chalk-3.0.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."jest-docblock-26.0.0"
+          (sources."jest-each-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."jest-get-type-26.3.0"
+              sources."pretty-format-26.4.2"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-environment-jsdom-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-environment-node-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."jest-get-type-25.2.6"
+          (sources."jest-haste-map-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."anymatch-3.1.1"
+              sources."braces-3.0.2"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."fill-range-7.0.1"
+              sources."fsevents-2.1.3"
+              sources."has-flag-4.0.0"
+              sources."is-number-7.0.0"
+              sources."micromatch-4.0.2"
+              sources."supports-color-7.2.0"
+              sources."to-regex-range-5.0.1"
+            ];
+          })
+          (sources."jest-jasmine2-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."pretty-format-26.4.2"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-leak-detector-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."jest-get-type-26.3.0"
+              sources."pretty-format-26.4.2"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-matcher-utils-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."diff-sequences-26.3.0"
+              sources."has-flag-4.0.0"
+              sources."jest-diff-26.4.2"
+              sources."jest-get-type-26.3.0"
+              sources."pretty-format-26.4.2"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-message-util-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."braces-3.0.2"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."fill-range-7.0.1"
+              sources."has-flag-4.0.0"
+              sources."is-number-7.0.0"
+              sources."micromatch-4.0.2"
+              sources."slash-3.0.0"
+              sources."supports-color-7.2.0"
+              sources."to-regex-range-5.0.1"
+            ];
+          })
+          (sources."jest-mock-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."jest-pnp-resolver-1.2.2"
+          sources."jest-regex-util-26.0.0"
+          (sources."jest-resolve-26.4.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."slash-3.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-resolve-dependencies-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-runner-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-runtime-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."slash-3.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."jest-serializer-26.3.0"
+          (sources."jest-snapshot-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."diff-sequences-26.3.0"
+              sources."has-flag-4.0.0"
+              sources."jest-diff-26.4.2"
+              sources."jest-get-type-26.3.0"
+              sources."pretty-format-26.4.2"
+              sources."semver-7.3.2"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-util-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."braces-3.0.2"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."fill-range-7.0.1"
+              sources."has-flag-4.0.0"
+              sources."is-number-7.0.0"
+              sources."micromatch-4.0.2"
+              sources."supports-color-7.2.0"
+              sources."to-regex-range-5.0.1"
+            ];
+          })
+          (sources."jest-validate-26.4.2" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."camelcase-6.0.0"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."jest-get-type-26.3.0"
+              sources."pretty-format-26.4.2"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-watcher-26.3.0" // {
+            dependencies = [
+              sources."@jest/types-26.3.0"
+              sources."@types/istanbul-reports-3.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."chalk-4.1.0"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          (sources."jest-worker-26.3.0" // {
+            dependencies = [
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."js-tokens-4.0.0"
+          sources."js-yaml-3.14.0"
+          sources."jsbn-0.1.1"
+          sources."jsdom-16.4.0"
+          sources."jsesc-2.5.2"
+          sources."json-parse-even-better-errors-2.3.0"
+          sources."json-schema-0.2.3"
+          sources."json-schema-traverse-0.4.1"
+          sources."json-stable-stringify-without-jsonify-1.0.1"
+          sources."json-stringify-safe-5.0.1"
+          sources."json5-2.1.3"
+          sources."jsonfile-6.0.1"
+          sources."jsprim-1.4.1"
+          sources."kind-of-6.0.3"
+          sources."kleur-3.0.3"
+          sources."leven-3.1.0"
+          sources."levenary-1.1.1"
+          sources."levn-0.4.1"
+          sources."lines-and-columns-1.1.6"
+          sources."locate-path-5.0.0"
+          sources."lodash-4.17.20"
+          sources."lodash.sortby-4.7.0"
+          sources."loose-envify-1.4.0"
+          sources."lunr-2.3.9"
+          sources."make-dir-2.1.0"
+          sources."makeerror-1.0.11"
+          sources."map-cache-0.2.2"
+          sources."map-visit-1.0.0"
+          sources."marked-1.1.1"
+          sources."merge-stream-2.0.0"
+          sources."micromatch-3.1.10"
+          sources."mime-db-1.44.0"
+          sources."mime-types-2.1.27"
+          sources."mimic-fn-2.1.0"
+          sources."mimic-response-2.1.0"
+          sources."minimatch-3.0.4"
+          sources."minimist-1.2.5"
+          sources."mixin-deep-2.0.1"
+          sources."mkdirp-0.5.5"
+          sources."mkdirp-classic-0.5.3"
+          sources."ms-2.1.2"
+          sources."nan-2.14.1"
+          sources."nanomatch-1.2.13"
+          sources."napi-build-utils-1.0.2"
+          sources."natural-compare-1.4.0"
+          sources."neo-async-2.6.2"
+          sources."nice-try-1.0.5"
+          sources."node-abi-2.19.1"
+          sources."node-int64-0.4.0"
+          sources."node-modules-regexp-1.0.0"
+          (sources."node-notifier-8.0.0" // {
+            dependencies = [
+              sources."semver-7.3.2"
+              sources."which-2.0.2"
+            ];
+          })
+          sources."node-releases-1.1.60"
+          sources."noop-logger-0.1.1"
+          sources."normalize-package-data-2.5.0"
+          sources."normalize-path-3.0.0"
+          sources."npm-run-path-2.0.2"
+          sources."npmlog-4.1.2"
+          sources."number-is-nan-1.0.1"
+          sources."nwsapi-2.2.0"
+          sources."oauth-sign-0.9.0"
+          sources."object-assign-4.1.1"
+          (sources."object-copy-0.1.0" // {
+            dependencies = [
+              sources."define-property-0.2.5"
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."object-keys-1.1.1"
+          sources."object-visit-1.0.1"
+          sources."object.assign-4.1.0"
+          sources."object.pick-1.3.0"
+          sources."once-1.4.0"
+          sources."onetime-5.1.2"
+          sources."optionator-0.9.1"
+          sources."p-each-series-2.1.0"
+          sources."p-finally-1.0.0"
+          sources."p-limit-2.3.0"
+          sources."p-locate-4.1.0"
+          sources."p-try-2.2.0"
+          sources."parent-module-1.0.1"
+          sources."parse-json-5.1.0"
+          sources."parse5-5.1.1"
+          sources."pascalcase-0.1.1"
+          sources."path-dirname-1.0.2"
+          sources."path-exists-4.0.0"
+          sources."path-is-absolute-1.0.1"
+          sources."path-key-2.0.1"
+          sources."path-parse-1.0.6"
+          sources."performance-now-2.1.0"
+          sources."picomatch-2.2.2"
+          sources."pify-4.0.1"
+          sources."pirates-4.0.1"
+          sources."pkg-dir-4.2.0"
+          sources."posix-character-classes-0.1.1"
+          sources."prebuild-install-5.3.5"
+          sources."prelude-ls-1.2.1"
+          (sources."pretty-format-25.5.0" // {
+            dependencies = [
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+            ];
+          })
+          sources."process-nextick-args-2.0.1"
+          sources."progress-2.0.3"
+          sources."prompts-2.3.2"
+          sources."psl-1.8.0"
+          sources."pump-3.0.0"
+          sources."punycode-2.1.1"
+          sources."qs-6.5.2"
+          sources."rc-1.2.8"
+          sources."react-is-16.13.1"
+          (sources."read-pkg-5.2.0" // {
+            dependencies = [
+              sources."type-fest-0.6.0"
+            ];
+          })
+          sources."read-pkg-up-7.0.1"
+          sources."readable-stream-2.3.7"
+          sources."readdirp-2.2.1"
+          sources."rechoir-0.6.2"
+          sources."regenerate-1.4.1"
+          sources."regenerate-unicode-properties-8.2.0"
+          sources."regenerator-runtime-0.13.7"
+          sources."regenerator-transform-0.14.5"
+          sources."regex-not-1.0.2"
+          sources."regexpp-3.1.0"
+          sources."regexpu-core-4.7.0"
+          sources."regjsgen-0.5.2"
+          (sources."regjsparser-0.6.4" // {
+            dependencies = [
+              sources."jsesc-0.5.0"
+            ];
+          })
+          sources."remove-trailing-separator-1.1.0"
+          sources."repeat-element-1.1.3"
+          sources."repeat-string-1.6.1"
+          (sources."request-2.88.2" // {
+            dependencies = [
+              sources."tough-cookie-2.5.0"
+              sources."uuid-3.4.0"
+            ];
+          })
+          sources."request-promise-core-1.1.4"
+          (sources."request-promise-native-1.0.9" // {
+            dependencies = [
+              sources."tough-cookie-2.5.0"
+            ];
+          })
+          sources."require-directory-2.1.1"
+          sources."require-main-filename-2.0.0"
+          sources."resolve-1.17.0"
+          sources."resolve-cwd-3.0.0"
+          sources."resolve-from-5.0.0"
+          sources."resolve-url-0.2.1"
+          sources."ret-0.1.15"
+          sources."rimraf-2.6.3"
+          sources."rsvp-4.8.5"
+          sources."safe-buffer-5.1.2"
+          sources."safe-regex-1.1.0"
+          sources."safer-buffer-2.1.2"
+          sources."sane-4.1.0"
+          sources."saxes-5.0.1"
+          sources."semver-5.7.1"
+          sources."serialport-9.0.1"
+          sources."set-blocking-2.0.0"
+          (sources."set-value-2.0.1" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          sources."shebang-command-1.2.0"
+          sources."shebang-regex-1.0.0"
+          sources."shelljs-0.8.4"
+          sources."shellwords-0.1.1"
+          sources."signal-exit-3.0.3"
+          sources."simple-concat-1.0.1"
+          sources."simple-get-3.1.0"
+          sources."sisteransi-1.0.5"
+          sources."slash-2.0.0"
+          (sources."slice-ansi-2.1.0" // {
+            dependencies = [
+              sources."is-fullwidth-code-point-2.0.0"
+            ];
+          })
+          sources."slip-1.0.2"
+          (sources."snapdragon-0.8.2" // {
+            dependencies = [
+              sources."debug-2.6.9"
+              sources."define-property-0.2.5"
+              sources."extend-shallow-2.0.1"
+              sources."ms-2.0.0"
+            ];
+          })
+          (sources."snapdragon-node-2.1.1" // {
+            dependencies = [
+              sources."define-property-1.0.0"
+              sources."is-accessor-descriptor-1.0.0"
+              sources."is-data-descriptor-1.0.0"
+              sources."is-descriptor-1.0.2"
+            ];
+          })
+          (sources."snapdragon-util-3.0.1" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."source-map-0.5.7"
+          sources."source-map-resolve-0.5.3"
+          (sources."source-map-support-0.5.19" // {
+            dependencies = [
+              sources."source-map-0.6.1"
+            ];
+          })
+          sources."source-map-url-0.4.0"
+          sources."spdx-correct-3.1.1"
+          sources."spdx-exceptions-2.3.0"
+          sources."spdx-expression-parse-3.0.1"
+          sources."spdx-license-ids-3.0.5"
+          sources."split-string-3.1.0"
+          sources."sprintf-js-1.0.3"
+          sources."sshpk-1.16.1"
+          (sources."stack-utils-2.0.2" // {
+            dependencies = [
+              sources."escape-string-regexp-2.0.0"
+            ];
+          })
+          (sources."static-extend-0.1.2" // {
+            dependencies = [
+              sources."define-property-0.2.5"
+            ];
+          })
+          sources."stealthy-require-1.1.1"
+          (sources."string-length-4.0.1" // {
+            dependencies = [
+              sources."ansi-regex-5.0.0"
+              sources."strip-ansi-6.0.0"
+            ];
+          })
+          sources."string-width-1.0.2"
+          sources."string_decoder-1.1.1"
+          sources."strip-ansi-3.0.1"
+          sources."strip-bom-4.0.0"
+          sources."strip-eof-1.0.0"
+          sources."strip-final-newline-2.0.0"
+          sources."strip-json-comments-2.0.1"
+          sources."supports-color-5.5.0"
+          (sources."supports-hyperlinks-2.1.0" // {
+            dependencies = [
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."symbol-tree-3.2.4"
+          (sources."table-5.4.6" // {
+            dependencies = [
+              sources."ansi-regex-4.1.0"
+              sources."is-fullwidth-code-point-2.0.0"
+              sources."string-width-3.1.0"
+              sources."strip-ansi-5.2.0"
+            ];
+          })
+          sources."tar-fs-2.1.0"
+          (sources."tar-stream-2.1.3" // {
+            dependencies = [
+              sources."readable-stream-3.6.0"
+            ];
+          })
+          sources."terminal-link-2.1.1"
+          sources."test-exclude-6.0.0"
+          sources."text-table-0.2.0"
+          sources."throat-5.0.0"
+          sources."tmpl-1.0.4"
+          sources."to-fast-properties-2.0.0"
+          (sources."to-object-path-0.3.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."to-regex-3.0.2"
+          sources."to-regex-range-2.1.1"
+          sources."tough-cookie-3.0.1"
+          sources."tr46-2.0.2"
+          sources."tslib-1.13.0"
+          sources."tsutils-3.17.1"
+          sources."tunnel-agent-0.6.0"
+          sources."tweetnacl-0.14.5"
+          sources."type-check-0.4.0"
+          sources."type-detect-4.0.8"
+          sources."type-fest-0.8.1"
+          sources."typedarray-to-buffer-3.1.5"
+          sources."typedoc-0.19.0"
+          sources."typedoc-default-themes-0.11.1"
+          sources."typedoc-plugin-markdown-2.4.2"
+          sources."typedoc-plugin-no-inherit-1.1.10"
+          sources."typedoc-plugin-sourcefile-url-1.0.6"
+          sources."typescript-4.0.2"
+          sources."uglify-js-3.10.2"
+          sources."unicode-canonical-property-names-ecmascript-1.0.4"
+          sources."unicode-match-property-ecmascript-1.0.4"
+          sources."unicode-match-property-value-ecmascript-1.2.0"
+          sources."unicode-property-aliases-ecmascript-1.1.0"
+          sources."union-value-1.0.1"
+          sources."universalify-1.0.0"
+          (sources."unset-value-1.0.0" // {
+            dependencies = [
+              (sources."has-value-0.3.1" // {
+                dependencies = [
+                  sources."isobject-2.1.0"
+                ];
+              })
+              sources."has-values-0.1.4"
+            ];
+          })
+          sources."upath-1.2.0"
+          sources."uri-js-4.2.2"
+          sources."urix-0.1.0"
+          sources."use-3.1.1"
+          sources."util-deprecate-1.0.2"
+          sources."uuid-8.3.0"
+          sources."v8-compile-cache-2.1.1"
+          (sources."v8-to-istanbul-5.0.1" // {
+            dependencies = [
+              sources."source-map-0.7.3"
+            ];
+          })
+          sources."validate-npm-package-license-3.0.4"
+          sources."verror-1.10.0"
+          sources."w3c-hr-time-1.0.2"
+          sources."w3c-xmlserializer-2.0.0"
+          sources."walker-1.0.7"
+          sources."webidl-conversions-6.1.0"
+          sources."whatwg-encoding-1.0.5"
+          sources."whatwg-mimetype-2.3.0"
+          sources."whatwg-url-8.2.1"
+          sources."which-1.3.1"
+          sources."which-module-2.0.0"
+          sources."which-pm-runs-1.0.0"
+          sources."wide-align-1.1.3"
+          sources."word-wrap-1.2.3"
+          sources."wordwrap-1.0.0"
+          (sources."wrap-ansi-6.2.0" // {
+            dependencies = [
+              sources."ansi-regex-5.0.0"
+              sources."ansi-styles-4.2.1"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."emoji-regex-8.0.0"
+              sources."is-fullwidth-code-point-3.0.0"
+              sources."string-width-4.2.0"
+              sources."strip-ansi-6.0.0"
+            ];
+          })
+          sources."wrappy-1.0.2"
+          sources."write-1.0.3"
+          sources."write-file-atomic-3.0.3"
+          sources."ws-7.3.1"
+          sources."xml-name-validator-3.0.0"
+          sources."xmlchars-2.2.0"
+          sources."y18n-4.0.0"
+          (sources."yargs-15.4.1" // {
+            dependencies = [
+              sources."ansi-regex-5.0.0"
+              sources."emoji-regex-8.0.0"
+              sources."is-fullwidth-code-point-3.0.0"
+              sources."string-width-4.2.0"
+              sources."strip-ansi-6.0.0"
+            ];
+          })
+          sources."yargs-parser-18.1.3"
+        ];
+      })
+      (sources."zigbee-herdsman-converters-12.0.178" // {
+        dependencies = [
+          sources."@babel/code-frame-7.10.4"
+          (sources."@babel/core-7.11.4" // {
+            dependencies = [
+              sources."semver-5.7.1"
+              sources."source-map-0.5.7"
+            ];
+          })
+          (sources."@babel/generator-7.11.4" // {
+            dependencies = [
+              sources."source-map-0.5.7"
+            ];
+          })
+          sources."@babel/helper-function-name-7.10.4"
+          sources."@babel/helper-get-function-arity-7.10.4"
+          sources."@babel/helper-member-expression-to-functions-7.11.0"
+          sources."@babel/helper-module-imports-7.10.4"
+          sources."@babel/helper-module-transforms-7.11.0"
+          sources."@babel/helper-optimise-call-expression-7.10.4"
+          sources."@babel/helper-plugin-utils-7.10.4"
+          sources."@babel/helper-replace-supers-7.10.4"
+          sources."@babel/helper-simple-access-7.10.4"
+          sources."@babel/helper-split-export-declaration-7.11.0"
+          sources."@babel/helper-validator-identifier-7.10.4"
+          sources."@babel/helpers-7.10.4"
+          (sources."@babel/highlight-7.10.4" // {
+            dependencies = [
+              sources."chalk-2.4.2"
+            ];
+          })
+          sources."@babel/parser-7.11.4"
+          sources."@babel/plugin-syntax-async-generators-7.8.4"
+          sources."@babel/plugin-syntax-bigint-7.8.3"
+          sources."@babel/plugin-syntax-class-properties-7.10.4"
+          sources."@babel/plugin-syntax-import-meta-7.10.4"
+          sources."@babel/plugin-syntax-json-strings-7.8.3"
+          sources."@babel/plugin-syntax-logical-assignment-operators-7.10.4"
+          sources."@babel/plugin-syntax-nullish-coalescing-operator-7.8.3"
+          sources."@babel/plugin-syntax-numeric-separator-7.10.4"
+          sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
+          sources."@babel/plugin-syntax-optional-catch-binding-7.8.3"
+          sources."@babel/plugin-syntax-optional-chaining-7.8.3"
+          sources."@babel/template-7.10.4"
+          (sources."@babel/traverse-7.11.0" // {
+            dependencies = [
+              sources."globals-11.12.0"
+            ];
+          })
+          sources."@babel/types-7.11.0"
+          sources."@bcoe/v8-coverage-0.2.3"
+          sources."@cnakazawa/watch-1.0.4"
+          (sources."@istanbuljs/load-nyc-config-1.1.0" // {
+            dependencies = [
+              sources."resolve-from-5.0.0"
+            ];
+          })
+          sources."@istanbuljs/schema-0.1.2"
+          sources."@jest/console-26.3.0"
+          (sources."@jest/core-26.4.2" // {
+            dependencies = [
+              sources."rimraf-3.0.2"
+            ];
+          })
+          sources."@jest/environment-26.3.0"
+          sources."@jest/fake-timers-26.3.0"
+          sources."@jest/globals-26.4.2"
+          sources."@jest/reporters-26.4.1"
+          sources."@jest/source-map-26.3.0"
+          sources."@jest/test-result-26.3.0"
+          sources."@jest/test-sequencer-26.4.2"
+          sources."@jest/transform-26.3.0"
+          sources."@jest/types-26.3.0"
+          sources."@sinonjs/commons-1.8.1"
+          sources."@sinonjs/fake-timers-6.0.1"
+          sources."@types/babel__core-7.1.9"
+          sources."@types/babel__generator-7.6.1"
+          sources."@types/babel__template-7.0.2"
+          sources."@types/babel__traverse-7.0.13"
+          sources."@types/color-name-1.1.1"
+          sources."@types/graceful-fs-4.1.3"
+          sources."@types/istanbul-lib-coverage-2.0.3"
+          sources."@types/istanbul-lib-report-3.0.0"
+          sources."@types/istanbul-reports-3.0.0"
+          sources."@types/json-schema-7.0.5"
+          sources."@types/node-14.6.2"
+          sources."@types/normalize-package-data-2.4.0"
+          sources."@types/prettier-2.1.0"
+          sources."@types/stack-utils-1.0.1"
+          sources."@types/yargs-15.0.5"
+          sources."@types/yargs-parser-15.0.0"
+          sources."@typescript-eslint/experimental-utils-2.34.0"
+          sources."@typescript-eslint/typescript-estree-2.34.0"
+          sources."abab-2.0.4"
+          sources."acorn-7.4.0"
+          sources."acorn-globals-6.0.0"
+          sources."acorn-jsx-5.2.0"
+          sources."acorn-walk-7.2.0"
+          sources."agent-base-6.0.1"
+          sources."ajv-6.12.4"
+          sources."ansi-colors-4.1.1"
+          (sources."ansi-escapes-4.3.1" // {
+            dependencies = [
+              sources."type-fest-0.11.0"
+            ];
+          })
+          sources."ansi-regex-5.0.0"
+          sources."ansi-styles-3.2.1"
+          sources."anymatch-3.1.1"
+          sources."argparse-1.0.10"
+          sources."arr-diff-4.0.0"
+          sources."arr-flatten-1.1.0"
+          sources."arr-union-3.1.0"
+          sources."array-unique-0.3.2"
+          sources."asn1-0.2.4"
+          sources."assert-plus-1.0.0"
+          sources."assign-symbols-1.0.0"
+          sources."astral-regex-1.0.0"
+          sources."asynckit-0.4.0"
+          sources."atob-2.1.2"
+          sources."aws-sign2-0.7.0"
+          sources."aws4-1.10.1"
+          sources."axios-0.20.0"
+          sources."babel-jest-26.3.0"
+          sources."babel-plugin-istanbul-6.0.0"
+          sources."babel-plugin-jest-hoist-26.2.0"
+          sources."babel-preset-current-node-syntax-0.1.3"
+          sources."babel-preset-jest-26.3.0"
+          sources."balanced-match-1.0.0"
+          (sources."base-0.11.2" // {
+            dependencies = [
+              sources."define-property-1.0.0"
+              sources."is-accessor-descriptor-1.0.0"
+              sources."is-data-descriptor-1.0.0"
+              sources."is-descriptor-1.0.2"
+            ];
+          })
+          sources."base64-js-1.3.1"
+          sources."bcrypt-pbkdf-1.0.2"
+          sources."bl-4.0.3"
+          sources."brace-expansion-1.1.11"
+          sources."braces-3.0.2"
+          sources."browser-process-hrtime-1.0.0"
+          sources."bser-2.1.1"
+          sources."buffer-5.6.0"
+          sources."buffer-from-1.1.1"
+          sources."cache-base-1.0.1"
+          sources."callsites-3.1.0"
+          sources."camelcase-5.3.1"
+          sources."capture-exit-2.0.0"
+          sources."caseless-0.12.0"
+          (sources."chalk-4.1.0" // {
+            dependencies = [
+              sources."ansi-styles-4.2.1"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."char-regex-1.0.2"
+          sources."ci-info-2.0.0"
+          (sources."class-utils-0.3.6" // {
+            dependencies = [
+              sources."define-property-0.2.5"
+            ];
+          })
+          (sources."cliui-6.0.0" // {
+            dependencies = [
+              sources."emoji-regex-8.0.0"
+              sources."is-fullwidth-code-point-3.0.0"
+              sources."string-width-4.2.0"
+            ];
+          })
+          sources."co-4.6.0"
+          sources."collect-v8-coverage-1.0.1"
+          sources."collection-visit-1.0.0"
+          sources."color-convert-1.9.3"
+          sources."color-name-1.1.3"
+          sources."combined-stream-1.0.8"
+          sources."component-emitter-1.3.0"
+          sources."concat-map-0.0.1"
+          (sources."convert-source-map-1.7.0" // {
+            dependencies = [
+              sources."safe-buffer-5.1.2"
+            ];
+          })
+          sources."copy-descriptor-0.1.1"
+          sources."core-util-is-1.0.2"
+          sources."cross-spawn-7.0.3"
+          sources."cssom-0.4.4"
+          (sources."cssstyle-2.3.0" // {
+            dependencies = [
+              sources."cssom-0.3.8"
+            ];
+          })
+          sources."dashdash-1.14.1"
+          sources."data-urls-2.0.0"
+          sources."debug-4.1.1"
+          sources."decamelize-1.2.0"
+          sources."decimal.js-10.2.0"
+          sources."decode-uri-component-0.2.0"
+          sources."deep-is-0.1.3"
+          sources."deepmerge-4.2.2"
+          (sources."define-property-2.0.2" // {
+            dependencies = [
+              sources."is-accessor-descriptor-1.0.0"
+              sources."is-data-descriptor-1.0.0"
+              sources."is-descriptor-1.0.2"
+            ];
+          })
+          sources."delayed-stream-1.0.0"
+          sources."detect-newline-3.1.0"
+          sources."diff-sequences-26.3.0"
+          sources."doctrine-3.0.0"
+          (sources."domexception-2.0.1" // {
+            dependencies = [
+              sources."webidl-conversions-5.0.0"
+            ];
+          })
+          sources."ecc-jsbn-0.1.2"
+          sources."emittery-0.7.1"
+          sources."emoji-regex-7.0.3"
+          sources."end-of-stream-1.4.4"
+          sources."enquirer-2.3.6"
+          sources."error-ex-1.3.2"
+          sources."escape-string-regexp-1.0.5"
+          (sources."escodegen-1.14.3" // {
+            dependencies = [
+              sources."levn-0.3.0"
+              sources."optionator-0.8.3"
+              sources."prelude-ls-1.1.2"
+              sources."type-check-0.3.2"
+            ];
+          })
+          sources."eslint-7.7.0"
+          sources."eslint-config-google-0.14.0"
+          sources."eslint-plugin-jest-23.20.0"
+          sources."eslint-scope-5.1.0"
+          sources."eslint-utils-2.1.0"
+          sources."eslint-visitor-keys-1.3.0"
+          sources."espree-7.3.0"
+          sources."esprima-4.0.1"
+          (sources."esquery-1.3.1" // {
+            dependencies = [
+              sources."estraverse-5.2.0"
+            ];
+          })
+          sources."esrecurse-4.2.1"
+          sources."estraverse-4.3.0"
+          sources."esutils-2.0.3"
+          sources."exec-sh-0.3.4"
+          (sources."execa-1.0.0" // {
+            dependencies = [
+              sources."cross-spawn-6.0.5"
+              sources."path-key-2.0.1"
+              sources."semver-5.7.1"
+              sources."shebang-command-1.2.0"
+              sources."shebang-regex-1.0.0"
+              sources."which-1.3.1"
+            ];
+          })
+          sources."exit-0.1.2"
+          (sources."expand-brackets-2.1.4" // {
+            dependencies = [
+              sources."debug-2.6.9"
+              sources."define-property-0.2.5"
+              sources."extend-shallow-2.0.1"
+              sources."ms-2.0.0"
+            ];
+          })
+          (sources."expect-26.4.2" // {
+            dependencies = [
+              sources."ansi-styles-4.2.1"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+            ];
+          })
+          sources."extend-3.0.2"
+          (sources."extend-shallow-3.0.2" // {
+            dependencies = [
+              sources."is-extendable-1.0.1"
+            ];
+          })
+          (sources."extglob-2.0.4" // {
+            dependencies = [
+              sources."define-property-1.0.0"
+              sources."extend-shallow-2.0.1"
+              sources."is-accessor-descriptor-1.0.0"
+              sources."is-data-descriptor-1.0.0"
+              sources."is-descriptor-1.0.2"
+            ];
+          })
+          sources."extsprintf-1.3.0"
+          sources."fast-deep-equal-3.1.3"
+          sources."fast-json-stable-stringify-2.1.0"
+          sources."fast-levenshtein-2.0.6"
+          sources."fb-watchman-2.0.1"
+          sources."file-entry-cache-5.0.1"
+          sources."fill-range-7.0.1"
+          sources."find-up-4.1.0"
+          sources."flat-cache-2.0.1"
+          sources."flatted-2.0.2"
+          sources."follow-redirects-1.13.0"
+          sources."for-in-1.0.2"
+          sources."forever-agent-0.6.1"
+          sources."form-data-2.3.3"
+          sources."fragment-cache-0.2.1"
+          sources."fs-constants-1.0.0"
+          sources."fs.realpath-1.0.0"
+          sources."fsevents-2.1.3"
+          sources."functional-red-black-tree-1.0.1"
+          sources."gensync-1.0.0-beta.1"
+          sources."get-caller-file-2.0.5"
+          sources."get-package-type-0.1.0"
+          sources."get-stream-4.1.0"
+          sources."get-value-2.0.6"
+          sources."getpass-0.1.7"
+          sources."glob-7.1.6"
+          sources."glob-parent-5.1.1"
+          sources."globals-12.4.0"
+          sources."graceful-fs-4.2.4"
+          sources."growly-1.3.0"
+          sources."har-schema-2.0.0"
+          sources."har-validator-5.1.5"
+          sources."has-flag-3.0.0"
+          sources."has-value-1.0.0"
+          (sources."has-values-1.0.0" // {
+            dependencies = [
+              (sources."is-number-3.0.0" // {
+                dependencies = [
+                  sources."kind-of-3.2.2"
+                ];
+              })
+              sources."kind-of-4.0.0"
+            ];
+          })
+          sources."hosted-git-info-2.8.8"
+          sources."html-encoding-sniffer-2.0.1"
+          sources."html-escaper-2.0.2"
+          sources."http-signature-1.2.0"
+          sources."https-proxy-agent-5.0.0"
+          sources."human-signals-1.1.1"
+          sources."iconv-lite-0.4.24"
+          sources."ieee754-1.1.13"
+          sources."ignore-4.0.6"
+          sources."import-fresh-3.2.1"
+          sources."import-local-3.0.2"
+          sources."imurmurhash-0.1.4"
+          sources."inflight-1.0.6"
+          sources."inherits-2.0.4"
+          sources."ip-regex-2.1.0"
+          (sources."is-accessor-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."is-arrayish-0.2.1"
+          sources."is-buffer-1.1.6"
+          sources."is-ci-2.0.0"
+          (sources."is-data-descriptor-0.1.4" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          (sources."is-descriptor-0.1.6" // {
+            dependencies = [
+              sources."kind-of-5.1.0"
+            ];
+          })
+          sources."is-docker-2.1.1"
+          sources."is-extendable-0.1.1"
+          sources."is-extglob-2.1.1"
+          sources."is-fullwidth-code-point-2.0.0"
+          sources."is-generator-fn-2.1.0"
+          sources."is-glob-4.0.1"
+          sources."is-number-7.0.0"
+          sources."is-plain-object-2.0.4"
+          sources."is-potential-custom-element-name-1.0.0"
+          sources."is-stream-1.1.0"
+          sources."is-typedarray-1.0.0"
+          sources."is-windows-1.0.2"
+          sources."is-wsl-2.2.0"
+          sources."isarray-1.0.0"
+          sources."isexe-2.0.0"
+          sources."isobject-3.0.1"
+          sources."isstream-0.1.2"
+          sources."istanbul-lib-coverage-3.0.0"
+          (sources."istanbul-lib-instrument-4.0.3" // {
+            dependencies = [
+              sources."semver-6.3.0"
+            ];
+          })
+          (sources."istanbul-lib-report-3.0.0" // {
+            dependencies = [
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."istanbul-lib-source-maps-4.0.0"
+          sources."istanbul-reports-3.0.2"
+          (sources."jest-26.4.2" // {
+            dependencies = [
+              sources."jest-cli-26.4.2"
+            ];
+          })
+          (sources."jest-changed-files-26.3.0" // {
+            dependencies = [
+              sources."execa-4.0.3"
+              sources."get-stream-5.2.0"
+              sources."is-stream-2.0.0"
+              sources."npm-run-path-4.0.1"
+            ];
+          })
+          sources."jest-config-26.4.2"
+          sources."jest-diff-26.4.2"
+          sources."jest-docblock-26.0.0"
+          sources."jest-each-26.4.2"
+          sources."jest-environment-jsdom-26.3.0"
+          sources."jest-environment-node-26.3.0"
+          sources."jest-get-type-26.3.0"
+          sources."jest-haste-map-26.3.0"
+          sources."jest-jasmine2-26.4.2"
+          sources."jest-leak-detector-26.4.2"
+          sources."jest-matcher-utils-26.4.2"
+          sources."jest-message-util-26.3.0"
+          sources."jest-mock-26.3.0"
+          sources."jest-pnp-resolver-1.2.2"
+          sources."jest-regex-util-26.0.0"
+          sources."jest-resolve-26.4.0"
+          sources."jest-resolve-dependencies-26.4.2"
+          sources."jest-runner-26.4.2"
+          sources."jest-runtime-26.4.2"
+          sources."jest-serializer-26.3.0"
+          sources."jest-snapshot-26.4.2"
+          sources."jest-util-26.3.0"
+          (sources."jest-validate-26.4.2" // {
+            dependencies = [
+              sources."camelcase-6.0.0"
+            ];
+          })
+          sources."jest-watcher-26.3.0"
+          (sources."jest-worker-26.3.0" // {
+            dependencies = [
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."js-tokens-4.0.0"
+          sources."js-yaml-3.14.0"
+          sources."jsbn-0.1.1"
+          sources."jsdom-16.4.0"
+          sources."jsesc-2.5.2"
+          sources."json-parse-even-better-errors-2.3.0"
+          sources."json-schema-0.2.3"
+          sources."json-schema-traverse-0.4.1"
+          sources."json-stable-stringify-without-jsonify-1.0.1"
+          sources."json-stringify-safe-5.0.1"
+          sources."json5-2.1.3"
+          sources."jsprim-1.4.1"
+          sources."kind-of-6.0.3"
+          sources."kleur-3.0.3"
+          sources."leven-3.1.0"
+          sources."levn-0.4.1"
+          sources."lines-and-columns-1.1.6"
+          sources."locate-path-5.0.0"
+          sources."lodash-4.17.20"
+          sources."lodash.sortby-4.7.0"
+          (sources."make-dir-3.1.0" // {
+            dependencies = [
+              sources."semver-6.3.0"
+            ];
+          })
+          sources."makeerror-1.0.11"
+          sources."map-cache-0.2.2"
+          sources."map-visit-1.0.0"
+          sources."merge-stream-2.0.0"
+          sources."micromatch-4.0.2"
+          sources."mime-db-1.44.0"
+          sources."mime-types-2.1.27"
+          sources."mimic-fn-2.1.0"
+          sources."minimatch-3.0.4"
+          sources."minimist-1.2.5"
+          (sources."mixin-deep-1.3.2" // {
+            dependencies = [
+              sources."is-extendable-1.0.1"
+            ];
+          })
+          sources."mkdirp-0.5.5"
+          sources."ms-2.1.2"
+          sources."nanomatch-1.2.13"
+          sources."natural-compare-1.4.0"
+          sources."nice-try-1.0.5"
+          sources."node-int64-0.4.0"
+          sources."node-modules-regexp-1.0.0"
+          sources."node-notifier-8.0.0"
+          (sources."normalize-package-data-2.5.0" // {
+            dependencies = [
+              sources."semver-5.7.1"
+            ];
+          })
+          sources."normalize-path-3.0.0"
+          (sources."npm-run-path-2.0.2" // {
+            dependencies = [
+              sources."path-key-2.0.1"
+            ];
+          })
+          sources."nwsapi-2.2.0"
+          sources."oauth-sign-0.9.0"
+          (sources."object-copy-0.1.0" // {
+            dependencies = [
+              sources."define-property-0.2.5"
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."object-visit-1.0.1"
+          sources."object.pick-1.3.0"
+          sources."once-1.4.0"
+          sources."onetime-5.1.2"
+          sources."optionator-0.9.1"
+          sources."p-each-series-2.1.0"
+          sources."p-finally-1.0.0"
+          sources."p-limit-2.3.0"
+          sources."p-locate-4.1.0"
+          sources."p-try-2.2.0"
+          sources."parent-module-1.0.1"
+          sources."parse-json-5.1.0"
+          sources."parse5-5.1.1"
+          sources."pascalcase-0.1.1"
+          sources."path-exists-4.0.0"
+          sources."path-is-absolute-1.0.1"
+          sources."path-key-3.1.1"
+          sources."path-parse-1.0.6"
+          sources."performance-now-2.1.0"
+          sources."picomatch-2.2.2"
+          sources."pirates-4.0.1"
+          sources."pkg-dir-4.2.0"
+          sources."posix-character-classes-0.1.1"
+          sources."prelude-ls-1.2.1"
+          (sources."pretty-format-26.4.2" // {
+            dependencies = [
+              sources."ansi-styles-4.2.1"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+            ];
+          })
+          sources."progress-2.0.3"
+          sources."prompts-2.3.2"
+          sources."psl-1.8.0"
+          sources."pump-3.0.0"
+          sources."punycode-2.1.1"
+          sources."qs-6.5.2"
+          sources."react-is-16.13.1"
+          (sources."read-pkg-5.2.0" // {
+            dependencies = [
+              sources."type-fest-0.6.0"
+            ];
+          })
+          sources."read-pkg-up-7.0.1"
+          sources."readable-stream-3.6.0"
+          sources."regex-not-1.0.2"
+          sources."regexpp-3.1.0"
+          sources."remove-trailing-separator-1.1.0"
+          sources."repeat-element-1.1.3"
+          sources."repeat-string-1.6.1"
+          (sources."request-2.88.2" // {
+            dependencies = [
+              sources."tough-cookie-2.5.0"
+              sources."uuid-3.4.0"
+            ];
+          })
+          sources."request-promise-core-1.1.4"
+          (sources."request-promise-native-1.0.9" // {
+            dependencies = [
+              sources."tough-cookie-2.5.0"
+            ];
+          })
+          sources."require-directory-2.1.1"
+          sources."require-main-filename-2.0.0"
+          sources."resolve-1.17.0"
+          (sources."resolve-cwd-3.0.0" // {
+            dependencies = [
+              sources."resolve-from-5.0.0"
+            ];
+          })
+          sources."resolve-from-4.0.0"
+          sources."resolve-url-0.2.1"
+          sources."ret-0.1.15"
+          sources."rimraf-2.6.3"
+          sources."rsvp-4.8.5"
+          sources."safe-buffer-5.2.1"
+          sources."safe-regex-1.1.0"
+          sources."safer-buffer-2.1.2"
+          (sources."sane-4.1.0" // {
+            dependencies = [
+              sources."anymatch-2.0.0"
+              (sources."braces-2.3.2" // {
+                dependencies = [
+                  sources."extend-shallow-2.0.1"
+                ];
+              })
+              (sources."fill-range-4.0.0" // {
+                dependencies = [
+                  sources."extend-shallow-2.0.1"
+                ];
+              })
+              (sources."is-number-3.0.0" // {
+                dependencies = [
+                  sources."kind-of-3.2.2"
+                ];
+              })
+              sources."micromatch-3.1.10"
+              sources."normalize-path-2.1.1"
+              sources."to-regex-range-2.1.1"
+            ];
+          })
+          sources."saxes-5.0.1"
+          sources."semver-7.3.2"
+          sources."set-blocking-2.0.0"
+          (sources."set-value-2.0.1" // {
+            dependencies = [
+              sources."extend-shallow-2.0.1"
+            ];
+          })
+          sources."shebang-command-2.0.0"
+          sources."shebang-regex-3.0.0"
+          sources."shellwords-0.1.1"
+          sources."signal-exit-3.0.3"
+          sources."sisteransi-1.0.5"
+          sources."slash-3.0.0"
+          sources."slice-ansi-2.1.0"
+          (sources."snapdragon-0.8.2" // {
+            dependencies = [
+              sources."debug-2.6.9"
+              sources."define-property-0.2.5"
+              sources."extend-shallow-2.0.1"
+              sources."ms-2.0.0"
+              sources."source-map-0.5.7"
+            ];
+          })
+          (sources."snapdragon-node-2.1.1" // {
+            dependencies = [
+              sources."define-property-1.0.0"
+              sources."is-accessor-descriptor-1.0.0"
+              sources."is-data-descriptor-1.0.0"
+              sources."is-descriptor-1.0.2"
+            ];
+          })
+          (sources."snapdragon-util-3.0.1" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."source-map-0.6.1"
+          sources."source-map-resolve-0.5.3"
+          sources."source-map-support-0.5.19"
+          sources."source-map-url-0.4.0"
+          sources."spdx-correct-3.1.1"
+          sources."spdx-exceptions-2.3.0"
+          sources."spdx-expression-parse-3.0.1"
+          sources."spdx-license-ids-3.0.5"
+          sources."split-string-3.1.0"
+          sources."sprintf-js-1.0.3"
+          sources."sshpk-1.16.1"
+          (sources."stack-utils-2.0.2" // {
+            dependencies = [
+              sources."escape-string-regexp-2.0.0"
+            ];
+          })
+          (sources."static-extend-0.1.2" // {
+            dependencies = [
+              sources."define-property-0.2.5"
+            ];
+          })
+          sources."stealthy-require-1.1.1"
+          sources."string-length-4.0.1"
+          (sources."string-width-3.1.0" // {
+            dependencies = [
+              sources."ansi-regex-4.1.0"
+              sources."strip-ansi-5.2.0"
+            ];
+          })
+          sources."string_decoder-1.3.0"
+          sources."strip-ansi-6.0.0"
+          sources."strip-bom-4.0.0"
+          sources."strip-eof-1.0.0"
+          sources."strip-final-newline-2.0.0"
+          sources."strip-json-comments-3.1.1"
+          sources."supports-color-5.5.0"
+          (sources."supports-hyperlinks-2.1.0" // {
+            dependencies = [
+              sources."has-flag-4.0.0"
+              sources."supports-color-7.2.0"
+            ];
+          })
+          sources."symbol-tree-3.2.4"
+          sources."table-5.4.6"
+          sources."tar-stream-2.1.3"
+          sources."terminal-link-2.1.1"
+          sources."test-exclude-6.0.0"
+          sources."text-table-0.2.0"
+          sources."throat-5.0.0"
+          sources."tmpl-1.0.4"
+          sources."to-fast-properties-2.0.0"
+          (sources."to-object-path-0.3.0" // {
+            dependencies = [
+              sources."kind-of-3.2.2"
+            ];
+          })
+          sources."to-regex-3.0.2"
+          sources."to-regex-range-5.0.1"
+          sources."tough-cookie-3.0.1"
+          sources."tr46-2.0.2"
+          sources."tslib-1.13.0"
+          sources."tsutils-3.17.1"
+          sources."tunnel-agent-0.6.0"
+          sources."tweetnacl-0.14.5"
+          sources."type-check-0.4.0"
+          sources."type-detect-4.0.8"
+          sources."type-fest-0.8.1"
+          sources."typedarray-to-buffer-3.1.5"
+          sources."union-value-1.0.1"
+          (sources."unset-value-1.0.0" // {
+            dependencies = [
+              (sources."has-value-0.3.1" // {
+                dependencies = [
+                  sources."isobject-2.1.0"
+                ];
+              })
+              sources."has-values-0.1.4"
+            ];
+          })
+          sources."uri-js-4.2.2"
+          sources."urix-0.1.0"
+          sources."use-3.1.1"
+          sources."util-deprecate-1.0.2"
+          sources."uuid-8.3.0"
+          sources."v8-compile-cache-2.1.1"
+          (sources."v8-to-istanbul-5.0.1" // {
+            dependencies = [
+              sources."source-map-0.7.3"
+            ];
+          })
+          sources."validate-npm-package-license-3.0.4"
+          sources."verror-1.10.0"
+          sources."w3c-hr-time-1.0.2"
+          sources."w3c-xmlserializer-2.0.0"
+          sources."walker-1.0.7"
+          sources."webidl-conversions-6.1.0"
+          sources."whatwg-encoding-1.0.5"
+          sources."whatwg-mimetype-2.3.0"
+          sources."whatwg-url-8.2.1"
+          sources."which-2.0.2"
+          sources."which-module-2.0.0"
+          sources."word-wrap-1.2.3"
+          (sources."wrap-ansi-6.2.0" // {
+            dependencies = [
+              sources."ansi-styles-4.2.1"
+              sources."color-convert-2.0.1"
+              sources."color-name-1.1.4"
+              sources."emoji-regex-8.0.0"
+              sources."is-fullwidth-code-point-3.0.0"
+              sources."string-width-4.2.0"
+            ];
+          })
+          sources."wrappy-1.0.2"
+          sources."write-1.0.3"
+          sources."write-file-atomic-3.0.3"
+          sources."ws-7.3.1"
+          sources."xml-name-validator-3.0.0"
+          sources."xmlchars-2.2.0"
+          sources."y18n-4.0.0"
+          (sources."yargs-15.4.1" // {
+            dependencies = [
+              sources."emoji-regex-8.0.0"
+              sources."is-fullwidth-code-point-3.0.0"
+              sources."string-width-4.2.0"
+            ];
+          })
+          sources."yargs-parser-18.1.3"
+        ];
+      })
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Zigbee to MQTT bridge using Zigbee-herdsman";
+      homepage = https://koenkk.github.io/zigbee2mqtt;
+      license = "GPL-3.0";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = false;
+  };
+in
+{
+  args = args;
+  sources = sources;
+  tarball = nodeEnv.buildNodeSourceDist args;
+  package = nodeEnv.buildNodePackage args;
+  shell = nodeEnv.buildNodeShell args;
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/servers/zigbee2mqtt/node.nix b/nixpkgs/pkgs/servers/zigbee2mqtt/node.nix
new file mode 100644
index 000000000000..42b6358224cf
--- /dev/null
+++ b/nixpkgs/pkgs/servers/zigbee2mqtt/node.nix
@@ -0,0 +1,17 @@
+# This file has been generated by node2nix 1.8.0. Do not edit!
+
+{pkgs ? import <nixpkgs> {
+    inherit system;
+  }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}:
+
+let
+  nodeEnv = import ../../development/node-packages/node-env.nix {
+    inherit (pkgs) stdenv python2 utillinux runCommand writeTextFile;
+    inherit nodejs;
+    libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null;
+  };
+in
+import ./node-packages.nix {
+  inherit (pkgs) fetchurl fetchgit;
+  inherit nodeEnv;
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/servers/zigbee2mqtt/update.sh b/nixpkgs/pkgs/servers/zigbee2mqtt/update.sh
new file mode 100755
index 000000000000..7fd32dff4634
--- /dev/null
+++ b/nixpkgs/pkgs/servers/zigbee2mqtt/update.sh
@@ -0,0 +1,30 @@
+#!/usr/bin/env nix-shell
+#! nix-shell -i bash -p nodePackages.node2nix nodejs-12_x curl jq nix-update
+
+CURRENT_VERSION=$(nix eval --raw '(with import ../../.. {}; zigbee2mqtt.version)')
+TARGET_VERSION=$(curl https://api.github.com/repos/Koenkk/zigbee2mqtt/releases/latest | jq -r ".tag_name")
+ZIGBEE2MQTT=https://github.com/Koenkk/zigbee2mqtt/raw/$TARGET_VERSION
+
+if [[ "$CURRENT_VERSION" == "$TARGET_VERSION" ]]; then
+    echo "zigbee2mqtt is up-to-date: ${CURRENT_VERSION}"
+    exit 0
+fi
+
+wget $ZIGBEE2MQTT/package.json
+wget $ZIGBEE2MQTT/npm-shrinkwrap.json
+
+node2nix --nodejs-12 \
+  -l npm-shrinkwrap.json \
+  -c node.nix \
+  --bypass-cache \
+  --no-copy-node-env \
+  --node-env ../../development/node-packages/node-env.nix
+rm package.json npm-shrinkwrap.json
+
+{
+    cd ../../..
+    nix-update --version "$TARGET_VERSION" --build zigbee2mqtt
+}
+
+git add ./default.nix ./node-packages.nix ./node.nix
+git commit -m "zigbee2mqtt: ${CURRENT_VERSION} -> ${TARGET_VERSION}"
diff --git a/nixpkgs/pkgs/servers/zoneminder/default.nix b/nixpkgs/pkgs/servers/zoneminder/default.nix
index 146705fb3d92..935993b781ff 100644
--- a/nixpkgs/pkgs/servers/zoneminder/default.nix
+++ b/nixpkgs/pkgs/servers/zoneminder/default.nix
@@ -78,13 +78,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "zoneminder";
-  version = "1.34.9";
+  version = "1.34.16";
 
   src = fetchFromGitHub {
     owner  = "ZoneMinder";
     repo   = "zoneminder";
     rev    = version;
-    sha256 = "1xvgfsm260a3v0vqgbk7m9jzayhcs4ysyadnnxajyrndjhn802ic";
+    sha256 = "azQbm8EkbypBf2NjplDVCb6duEC476hhKDA0EGqxxWE=";
   };
 
   patches = [
@@ -200,7 +200,7 @@ in stdenv.mkDerivation rec {
     description = "Video surveillance software system";
     homepage = "https://zoneminder.com";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ peterhoeg ];
+    maintainers = [ ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/shells/bash/bash-5.0-patches.nix b/nixpkgs/pkgs/shells/bash/bash-5.0-patches.nix
index e6481aa4da10..ca7361b8a1f5 100644
--- a/nixpkgs/pkgs/shells/bash/bash-5.0-patches.nix
+++ b/nixpkgs/pkgs/shells/bash/bash-5.0-patches.nix
@@ -17,4 +17,5 @@ patch: [
 (patch "014" "12gm5bvv2pd3m72z2ilj26pa08c61az253dsgfl24vpf2ijywvjx")
 (patch "015" "0pm0px758w4i23s55wajcv6lqfiym7zgxvq0pxf6vclkv8nxy5x5")
 (patch "016" "0vdha332km2iwx8g2ld15jy7d24cbplzgr1531dpzylr9ajxglgz")
+(patch "017" "0cfw5lz3fcvq9h1fxihxvw940fjk68015jazvl8x8rlazgxbkwsc")
 ]
diff --git a/nixpkgs/pkgs/shells/bash/bash-completion/default.nix b/nixpkgs/pkgs/shells/bash/bash-completion/default.nix
index 549ef4041428..eeb175a5e789 100644
--- a/nixpkgs/pkgs/shells/bash/bash-completion/default.nix
+++ b/nixpkgs/pkgs/shells/bash/bash-completion/default.nix
@@ -32,10 +32,6 @@ stdenv.mkDerivation rec {
     python3Packages.pexpect
     python3Packages.pytest
     bashInteractive
-
-    # use xdist to speed up the test run, just like upstream:
-    # https://github.com/scop/bash-completion/blob/009bf2228c68894629eb6fd17b3dc0f1f6d67615/test/requirements.txt#L4
-    python3Packages.pytest_xdist
   ];
 
   # - ignore test_gcc on ARM because it assumes -march=native
@@ -46,7 +42,7 @@ stdenv.mkDerivation rec {
   # - ignore test_ls because impure logic
   # - ignore test_screen because it assumes vt terminals exist
   checkPhase = ''
-    pytest -n $NIX_BUILD_CORES . \
+    pytest . \
       ${stdenv.lib.optionalString (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isAarch32) "--ignore=test/t/test_gcc.py"} \
       --ignore=test/t/test_chsh.py \
       --ignore=test/t/test_ether_wake.py \
diff --git a/nixpkgs/pkgs/shells/dash/0001-fix-dirent64-et-al-on-darwin.patch b/nixpkgs/pkgs/shells/dash/0001-fix-dirent64-et-al-on-darwin.patch
new file mode 100644
index 000000000000..f2e0802f7981
--- /dev/null
+++ b/nixpkgs/pkgs/shells/dash/0001-fix-dirent64-et-al-on-darwin.patch
@@ -0,0 +1,41 @@
+From 7e75779eaeacdbb46a387a59d9aaf1481a1da3e5 Mon Sep 17 00:00:00 2001
+From: Adrian Gierakowski <agierakowski@gmail.com>
+Date: Sun, 19 Jul 2020 08:38:05 +0100
+Subject: [PATCH] fix dirent64 et al on darwin
+
+---
+ configure.ac | 11 +++++++++++
+ 1 file changed, 11 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index b8faca9..cee1e4d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -139,6 +139,7 @@ if test "$ac_cv_func_signal" != yes; then
+ 				 [klibc has bsd_signal instead of signal])])
+ fi
+ 
++dnl TODO: stat64 is deprecated since macOS 10.6
+ dnl Check for stat64 (dietlibc/klibc).
+ AC_CHECK_FUNC(stat64,, [
+ 	AC_DEFINE(fstat64, fstat, [64-bit operations are the same as 32-bit])
+@@ -155,6 +156,16 @@ AC_CHECK_FUNC(open64,, [
+ 	AC_DEFINE(open64, open, [64-bit operations are the same as 32-bit])
+ ])
+ 
++dnl OS X apparently has stat64 but not readdir64.
++AC_CHECK_FUNC(readdir64,, [
++	AC_DEFINE(readdir64, readdir, [64-bit operations are the same as 32-bit])
++])
++
++dnl OS X apparently has stat64 but not dirent64.
++AC_CHECK_TYPE(struct dirent64,, [
++	AC_DEFINE(dirent64, dirent, [64-bit operations are the same as 32-bit])
++],[#include <dirent.h>])
++
+ dnl Check if struct stat has st_mtim.
+ AC_MSG_CHECKING(for stat::st_mtim)
+ AC_COMPILE_IFELSE(
+-- 
+2.15.1
+
diff --git a/nixpkgs/pkgs/shells/dash/default.nix b/nixpkgs/pkgs/shells/dash/default.nix
index f4ee68f7444b..030e5695b225 100644
--- a/nixpkgs/pkgs/shells/dash/default.nix
+++ b/nixpkgs/pkgs/shells/dash/default.nix
@@ -1,15 +1,20 @@
-{ stdenv, fetchurl }:
+{ stdenv, buildPackages, autoreconfHook, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "dash-0.5.11";
+  name = "dash-0.5.11.2";
 
   src = fetchurl {
     url = "http://gondor.apana.org.au/~herbert/dash/files/${name}.tar.gz";
-    sha256 = "1jwilfsy249d3q7fagg1ga4bgc2bg1fzw63r2nan0m77bznsdnad";
+    sha256 = "0pvdpm1cgfbc25ramn4305a0158yq031q1ain4dc972rnxl7vyq0";
   };
 
   hardeningDisable = [ "format" ];
 
+  # Temporary fix until a proper one is accepted upstream
+  patches = stdenv.lib.optional stdenv.isDarwin ./0001-fix-dirent64-et-al-on-darwin.patch;
+  depsBuildBuild = [ buildPackages.stdenv.cc ];
+  nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin autoreconfHook;
+
   meta = with stdenv.lib; {
     homepage = "http://gondor.apana.org.au/~herbert/dash/";
     description = "A POSIX-compliant implementation of /bin/sh that aims to be as small as possible";
diff --git a/nixpkgs/pkgs/shells/elvish/default.nix b/nixpkgs/pkgs/shells/elvish/default.nix
index 2aa23cd063e8..2cb45f33f7bc 100644
--- a/nixpkgs/pkgs/shells/elvish/default.nix
+++ b/nixpkgs/pkgs/shells/elvish/default.nix
@@ -2,23 +2,22 @@
 
 buildGoModule rec {
   pname = "elvish";
-  version = "0.13.1";
+  version = "0.14.1";
 
-  goPackagePath = "github.com/elves/elvish";
   excludedPackages = [ "website" ];
-  buildFlagsArray = ''
-    -ldflags=
-      -X ${goPackagePath}/buildinfo.Version=${version}
-  '';
+
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/elves/elvish/pkg/buildinfo.Version==${version} -X github.com/elves/elvish/pkg/buildinfo.Reproducible=true" ];
 
   src = fetchFromGitHub {
     owner = "elves";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0lz9lf1swrn67kymcp2wh67lh3c0ifqm9035gpkd3zynlq3wzqfm";
+    sha256 = "05wp3cx4s2cjf60yncdpmycs5h4z1dlin56dmljmfwz4z099079b";
   };
 
-  vendorSha256 = null;
+  vendorSha256 = "1f971n17h9bc0qcgs9ipiaw0x9807mz761fqm605br4ch1kp0897";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     description = "A friendly and expressive command shell";
@@ -36,4 +35,4 @@ buildGoModule rec {
   passthru = {
     shellPath = "/bin/elvish";
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/shells/fish/default.nix b/nixpkgs/pkgs/shells/fish/default.nix
index 7cd31f14abdb..3faa7f996575 100644
--- a/nixpkgs/pkgs/shells/fish/default.nix
+++ b/nixpkgs/pkgs/shells/fish/default.nix
@@ -7,6 +7,7 @@
 , gnused
 , gnugrep
 , groff
+, gawk
 , man-db
 , getent
 , libiconv
@@ -165,6 +166,9 @@ let
           -i $out/share/fish/functions/{__fish_config_interactive.fish,fish_config.fish,fish_update_completions.fish}
       sed -i "s|/usr/local/sbin /sbin /usr/sbin||"         \
              $out/share/fish/completions/{sudo.fish,doas.fish}
+      sed -e "s| awk | ${gawk}/bin/awk |"                  \
+          -i $out/share/fish/functions/{__fish_print_packages.fish,__fish_print_addresses.fish,__fish_describe_command.fish,__fish_complete_man.fish,__fish_complete_convert_options.fish} \
+             $out/share/fish/completions/{cwebp,adb,ezjail-admin,grunt,helm,heroku,lsusb,make,p4,psql,rmmod,vim-addons}.fish
 
       cat > $out/share/fish/functions/__fish_anypython.fish <<EOF
       function __fish_anypython
diff --git a/nixpkgs/pkgs/shells/ion/default.nix b/nixpkgs/pkgs/shells/ion/default.nix
index ca2f7a6d515a..f84f150bc559 100644
--- a/nixpkgs/pkgs/shells/ion/default.nix
+++ b/nixpkgs/pkgs/shells/ion/default.nix
@@ -18,7 +18,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://gitlab.redox-os.org/redox-os/ion";
     license = licenses.mit;
     maintainers = with maintainers; [ dywedir ];
-    platforms = platforms.all;
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/shells/liquidprompt/default.nix b/nixpkgs/pkgs/shells/liquidprompt/default.nix
index d6d655d1f17a..783c07d16009 100644
--- a/nixpkgs/pkgs/shells/liquidprompt/default.nix
+++ b/nixpkgs/pkgs/shells/liquidprompt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "liquidprompt";
-  version = "unstable-2018-05-21";
+  version = "1.12.0";
 
   src = fetchFromGitHub {
     owner = "nojhan";
     repo = pname;
-    rev = "eda83efe4e0044f880370ed5e92aa7e3fdbef971";
-    sha256 = "1p7ah3x850ajpq07xvxxd7fx2i67cf0n71ww085g32k9fwij4rd4";
+    rev = "v${version}";
+    sha256 = "0ibp1bz9s4bp3y5anivg5gp31q78024w39v7hbfw05qy25ax5h60";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/shells/nushell/default.nix b/nixpkgs/pkgs/shells/nushell/default.nix
index 5994e2829ed6..09d2f6aac1a5 100644
--- a/nixpkgs/pkgs/shells/nushell/default.nix
+++ b/nixpkgs/pkgs/shells/nushell/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nushell";
-  version = "0.15.0";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "1s08shhg826hbpcjzlhwj0r5qqckz8rv2xjg22rz1qvsjyhkmv7r";
+    sha256 = "08r6f71cy4j22k0mllm134x4dfixaircpaz5arrj93xsbp38nk92";
   };
 
-  cargoSha256 = "0lz7119znpxyaj9ac1skfbx0s0dkh3hwk00g0zjn3r6k8fh9gj4d";
+  cargoSha256 = "15kvl490abxdv6706zs7pv0q5fhghmdvlfbn19037sldkcsfl86b";
 
   nativeBuildInputs = [ pkg-config ]
     ++ lib.optionals (withStableFeatures && stdenv.isLinux) [ python3 ];
@@ -39,12 +39,19 @@ rustPlatform.buildRustPackage rec {
     export HOME=$TMPDIR
   '';
 
+  checkPhase = ''
+    runHook preCheck
+    echo "Running cargo test"
+    cargo test
+    runHook postCheck
+  '';
+
   meta = with lib; {
     description = "A modern shell written in Rust";
     homepage = "https://www.nushell.sh/";
     license = licenses.mit;
-    maintainers = with maintainers; [ filalex77 marsam ];
-    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
+    maintainers = with maintainers; [ filalex77 johntitor marsam ];
+    platforms = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" ];
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/shells/oil/default.nix b/nixpkgs/pkgs/shells/oil/default.nix
index 019a66c77eb7..bce76b4cc825 100644
--- a/nixpkgs/pkgs/shells/oil/default.nix
+++ b/nixpkgs/pkgs/shells/oil/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "oil";
-  version = "0.8.pre4";
+  version = "0.8.pre6";
 
   src = fetchurl {
     url = "https://www.oilshell.org/download/oil-${version}.tar.xz";
-    sha256 = "07kj86hrvlz9f1gh3qv4hdaz3qnb4a2qf0dnxhd2r0qilrkjanxh";
+    sha256 = "1gbc74in78lbkciz7wzjplrm185wn6fz57n66xmazayivqmpvgfm";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/shells/rssh/default.nix b/nixpkgs/pkgs/shells/rssh/default.nix
deleted file mode 100644
index b2bec51a95ed..000000000000
--- a/nixpkgs/pkgs/shells/rssh/default.nix
+++ /dev/null
@@ -1,97 +0,0 @@
-# CAVEATS:
-# - Have only tested this with rsync, scp, and sftp. cvs support should work, but chroot integration is unlikely to function without further work
-# - It is compiled without rdist support because rdist is ludicrously ancient (and not already in nixpkgs)
-
-{ stdenv, fetchurl, openssh, rsync, cvs }:
-
-stdenv.mkDerivation rec {
-  pname = "rssh";
-  version = "2.3.4";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/rssh/rssh/${version}/${pname}-${version}.tar.gz";
-    sha256 = "f30c6a760918a0ed39cf9e49a49a76cb309d7ef1c25a66e77a41e2b1d0b40cd9";
-  };
-
-  patches = [
-    ./fix-config-path.patch
-
-    # Patches from AUR
-    (fetchurl {
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0001-fail-logging.patch?h=rssh";
-      name = "0001-fail-logging.patch";
-      sha256 = "d30f2f4fdb1b57f94773f5b0968a4da3356b14a040efe69ec1e976c615035c65";
-    })
-    (fetchurl {
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0002-info-to-debug.patch?h=rssh";
-      name = "0002-info-to-debug.patch";
-      sha256 = "86f6ecf34f62415b0d6204d4cbebc47322dc2ec71732d06aa27758e35d688fcd";
-    })
-    (fetchurl {
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0003-man-page-spelling.patch?h=rssh";
-      name = "0003-man-page-spelling.patch";
-      sha256 = "455b3bbccddf1493999d00c2cd46e62930ef4fd8211e0b7d3a89d8010d6a5431";
-    })
-    (fetchurl {
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0004-mkchroot.patch?h=rssh";
-      name = "0004-mkchroot.patch";
-      sha256 = "f7fd8723d2aa94e64e037c13c2f263a52104af680ab52bfcaea73dfa836457c2";
-    })
-    (fetchurl {
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0005-mkchroot-arch.patch?h=rssh";
-      name = "0005-mkchroot-arch.patch";
-      sha256 = "ac8894c4087a063ae8267d2fdfcde69c2fe6b67a8ff5917e4518b8f73f08ba3f";
-    })
-    (fetchurl {
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0006-mkchroot-symlink.patch?h=rssh";
-      name = "0006-mkchroot-symlink.patch";
-      sha256 = "bce98728cb9b55c92182d4901c5f9adf49376a07c5603514b0004e3d1c85e9c7";
-    })
-    (fetchurl {
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0007-destdir.patch?h=rssh";
-      name = "0007-destdir.patch";
-      sha256 = "7fa03644f81dc37d77cc7e2cad994f17f91b2b8a49b1a74e41030a4ac764385e";
-    })
-    (fetchurl {
-      url = "https://aur.archlinux.org/cgit/aur.git/plain/0008-rsync-protocol.patch?h=rssh";
-      name = "0008-rsync-protocol.patch";
-      sha256 = "0c772afe9088eeded129ead86775ef18e58c318bbc58fc3e2585e7ff09cc5e91";
-    })
-  ];
-
-  # Run this after to avoid conflict with patches above
-  postPatch = ''
-    sed -i '/chmod u+s/d' Makefile.in
-  '';
-
-
-  buildInputs = [ openssh rsync cvs ];
-
-  configureFlags = [
-    "--with-sftp-server=${openssh}/libexec/sftp-server"
-    "--with-scp=${openssh}/bin/scp"
-    "--with-rsync=${rsync}/bin/rsync"
-    "--with-cvs=${cvs}/bin/cvs"
-  ];
-
-
-  meta = with stdenv.lib; {
-    description = "A restricted shell for use with OpenSSH, allowing only scp and/or sftp";
-    longDescription = ''
-      rssh also includes support for rsync and cvs. For example, if you have a server which you only want to allow users to copy files off of via scp, without providing shell access, you can use rssh to do that.
-    '';
-    homepage = "http://www.pizzashack.org/rssh/";
-    license = licenses.bsd2;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ arobyn ];
-    knownVulnerabilities = [
-      "CVE-2019-1000018"
-      "CVE-2019-3463"
-      "CVE-2019-3464"
-    ];
-  };
-
-  passthru = {
-    shellPath = "/bin/rssh";
-  };
-}
diff --git a/nixpkgs/pkgs/shells/rssh/fix-config-path.patch b/nixpkgs/pkgs/shells/rssh/fix-config-path.patch
deleted file mode 100644
index eecffb376ab3..000000000000
--- a/nixpkgs/pkgs/shells/rssh/fix-config-path.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naur rssh-2.3.4/Makefile.in rssh-2.3.4-fixed/Makefile.in
---- rssh-2.3.4/Makefile.in	2012-11-27 11:19:34.000000000 +1100
-+++ rssh-2.3.4-fixed/Makefile.in	2015-11-11 21:13:58.516651742 +1100
-@@ -186,7 +186,7 @@
- sysconfdir = @sysconfdir@
- target_alias = @target_alias@
- AUTOMAKE_OPTIONS = nostdinc
--ourdefs = -DPATH_RSSH_CONFIG=\"@sysconfdir@/rssh.conf\" -DPATH_CHROOT_HELPER=\"@libexecdir@/rssh_chroot_helper\"
-+ourdefs = -DPATH_RSSH_CONFIG=\"/etc/rssh.conf\" -DPATH_CHROOT_HELPER=\"@libexecdir@/rssh_chroot_helper\"
- ourflags = @defcflags@ @static@ 
- AM_CFLAGS = $(ourflags)
- nodist_rssh_SOURCES = main.c pathnames.h config.h
diff --git a/nixpkgs/pkgs/shells/xonsh/default.nix b/nixpkgs/pkgs/shells/xonsh/default.nix
index 192e38b963d3..e775ab04dc1e 100644
--- a/nixpkgs/pkgs/shells/xonsh/default.nix
+++ b/nixpkgs/pkgs/shells/xonsh/default.nix
@@ -8,17 +8,18 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "xonsh";
-  version = "0.9.18";
+  version = "0.9.22";
 
   # fetch from github because the pypi package ships incomplete tests
   src = fetchFromGitHub {
     owner  = "xonsh";
     repo   = "xonsh";
     rev    = version;
-    sha256 = "1zg5dl9qdysbaw2djy9f7f1ydp7vzjv840cjwqxlmg9615lgg7xa";
+    sha256 = "04yd8y4lksmxbgl6v6bw1k32r8v5mia3sm8y9v39cgfzjbkvys1p";
   };
 
   LC_ALL = "en_US.UTF-8";
+
   postPatch = ''
     sed -ie "s|/bin/ls|${coreutils}/bin/ls|" tests/test_execer.py
     sed -ie "s|SHELL=xonsh|SHELL=$out/bin/xonsh|" tests/test_integrations.py
diff --git a/nixpkgs/pkgs/shells/zsh/antibody/default.nix b/nixpkgs/pkgs/shells/zsh/antibody/default.nix
index c0e87cd6021b..325bae4f9cce 100644
--- a/nixpkgs/pkgs/shells/zsh/antibody/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/antibody/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "antibody";
-  version = "6.0.1";
+  version = "6.1.1";
 
   src = fetchFromGitHub {
     owner = "getantibody";
     repo = "antibody";
     rev = "v${version}";
-    sha256 = "0ix2liy8h48s3n7ykr85ik03kwj45iqwhwn79ap8y21bar00gybs";
+    sha256 = "0icag53svzdm7yvzp855fp0f7q0g0jkfmjaa1sj6mmb01c1xgzi1";
   };
 
-  vendorSha256 = "072kxr68p9f58w2q98fjcn4wzd5szy5l5sz8sh4ssapljvic2lam";
+  vendorSha256 = "0z8fma3v2dph8nv3q4lmv43s6p5sc338xb7kcmnpwcc0iw7b4vyj";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
@@ -21,4 +23,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ filalex77 worldofpeace ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/shells/zsh/grml-zsh-config/default.nix b/nixpkgs/pkgs/shells/zsh/grml-zsh-config/default.nix
index 11a75090c904..9b1d09471e1c 100644
--- a/nixpkgs/pkgs/shells/zsh/grml-zsh-config/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/grml-zsh-config/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "grml-zsh-config";
-  version = "0.17.2";
+  version = "0.17.4";
 
   src = fetchFromGitHub {
     owner = "grml";
     repo = "grml-etc-core";
     rev = "v${version}";
-    sha256 = "1h17xdlxhnjqirqwksi8qhx2lyajz7b0hmvb80i7313splhjp6hn";
+    sha256 = "09c3f7s2r0cb8g9kgh3xhc8dhr1656g1q9s9i3s5imvknwqii6as";
   };
 
   nativeBuildInputs = [ txt2tags ];
diff --git a/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix b/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
index 37374900a4ec..cc4c7903360f 100644
--- a/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -1,59 +1,68 @@
 # This script was inspired by the ArchLinux User Repository package:
 #
 #   https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=oh-my-zsh-git
-{ stdenv, fetchgit }:
+{ stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  version = "2020-06-18";
+  version = "2020-09-20";
   pname = "oh-my-zsh";
-  rev = "5ffc0d036c587741fd25092e7809dad2b00b3677";
+  rev = "93c837fec8e9fe61509b9dff9e909e84f7ebe32d";
 
-  src = fetchgit { inherit rev;
-    url = "https://github.com/ohmyzsh/ohmyzsh";
-    sha256 = "04a9zg3l824wywk0qcm0pc4n4522cqljyix7kh3frc4psqnhh8qr";
+  src = fetchFromGitHub {
+    inherit rev;
+    owner = "ohmyzsh";
+    repo = "ohmyzsh";
+    sha256 = "1ww50c1xf64z1m0sy30xaf2adr87cqr5yyv9jrqr227j97vrwj04";
   };
 
-  pathsToLink = [ "/share/oh-my-zsh" ];
+  installPhase = ''
+    outdir=$out/share/oh-my-zsh
+    template=templates/zshrc.zsh-template
 
-  phases = "installPhase";
+    mkdir -p $outdir
+    cp -r * $outdir
+    cd $outdir
 
-  installPhase = ''
-  outdir=$out/share/oh-my-zsh
-  template=templates/zshrc.zsh-template
-
-  mkdir -p $outdir
-  cp -r $src/* $outdir
-  cd $outdir
-
-  rm LICENSE.txt
-  rm -rf .git*
-
-  chmod -R +w templates
-
-  # Change the path to oh-my-zsh dir and disable auto-updating.
-  sed -i -e "s#ZSH=\$HOME/.oh-my-zsh#ZSH=$outdir#" \
-         -e 's/\# \(DISABLE_AUTO_UPDATE="true"\)/\1/' \
-   $template
-
-  # Look for .zsh_variables, .zsh_aliases, and .zsh_funcs, and source
-  # them, if found.
-  cat >> $template <<- EOF
-
-  # Load the variables.
-  if [ -f ~/.zsh_variables ]; then
-      . ~/.zsh_variables
-  fi
-
-  # Load the functions.
-  if [ -f ~/.zsh_funcs ]; then
-    . ~/.zsh_funcs
-  fi
-
-  # Load the aliases.
-  if [ -f ~/.zsh_aliases ]; then
-      . ~/.zsh_aliases
-  fi
-  EOF
+    rm LICENSE.txt
+    rm -rf .git*
+
+    chmod -R +w templates
+
+    # Change the path to oh-my-zsh dir and disable auto-updating.
+    sed -i -e "s#ZSH=\$HOME/.oh-my-zsh#ZSH=$outdir#" \
+           -e 's/\# \(DISABLE_AUTO_UPDATE="true"\)/\1/' \
+     $template
+
+    chmod +w oh-my-zsh.sh
+
+    # Both functions expect oh-my-zsh to be in ~/.oh-my-zsh and try to
+    # modify the directory.
+    cat >> oh-my-zsh.sh <<- EOF
+
+    # Undefine functions that don't work on Nix.
+    unfunction uninstall_oh_my_zsh
+    unfunction upgrade_oh_my_zsh
+    EOF
+
+    # Look for .zsh_variables, .zsh_aliases, and .zsh_funcs, and source
+    # them, if found.
+    cat >> $template <<- EOF
+
+    # Load the variables.
+    if [ -f ~/.zsh_variables ]; then
+        . ~/.zsh_variables
+    fi
+
+    # Load the functions.
+    if [ -f ~/.zsh_funcs ]; then
+      . ~/.zsh_funcs
+    fi
+
+    # Load the aliases.
+    if [ -f ~/.zsh_aliases ]; then
+        . ~/.zsh_aliases
+    fi
+    EOF
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/shells/zsh/oh-my-zsh/update.sh b/nixpkgs/pkgs/shells/zsh/oh-my-zsh/update.sh
index 0146cac8496c..738c0810737a 100755
--- a/nixpkgs/pkgs/shells/zsh/oh-my-zsh/update.sh
+++ b/nixpkgs/pkgs/shells/zsh/oh-my-zsh/update.sh
@@ -5,7 +5,6 @@ set -eu -o pipefail
 
 oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion oh-my-zsh" | tr -d '"')"
 latestSha="$(curl -L -s https://api.github.com/repos/ohmyzsh/ohmyzsh/commits\?sha\=master\&since\=${oldVersion} | jq -r '.[0].sha')"
-url="$(nix-instantiate --eval -E "with import ./. {}; oh-my-zsh.src.url" | tr -d '"')"
 
 if [ ! "null" = "${latestSha}" ]; then
   latestDate="$(curl -L -s https://api.github.com/repos/ohmyzsh/ohmyzsh/commits/${latestSha} | jq '.commit.author.date' | sed 's|"\(.*\)T.*|\1|g')"
diff --git a/nixpkgs/pkgs/shells/zsh/pure-prompt/default.nix b/nixpkgs/pkgs/shells/zsh/pure-prompt/default.nix
index 5696ed61b975..bfcd3be5e9cf 100644
--- a/nixpkgs/pkgs/shells/zsh/pure-prompt/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/pure-prompt/default.nix
@@ -4,13 +4,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "pure-prompt";
-  version = "1.12.0";
+  version = "1.13.0";
 
   src = fetchFromGitHub {
     owner = "sindresorhus";
     repo = "pure";
     rev = "v${version}";
-    sha256 = "1h04z7rxmca75sxdfjgmiyf1b5z2byfn6k4srls211l0wnva2r5y";
+    sha256 = "16q9v4c8lagp4vxm7qhagilqnwf1g4pbds56x5wfj4cwc0x2gclw";
   };
 
   installPhase = ''
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "Pretty, minimal and fast ZSH prompt";
-    homepage = https://github.com/sindresorhus/pure;
+    homepage = "https://github.com/sindresorhus/pure";
     license = licenses.mit;
     platforms = platforms.all;
     maintainers = with maintainers; [ pacien pablovsky ];
diff --git a/nixpkgs/pkgs/shells/zsh/spaceship-prompt/default.nix b/nixpkgs/pkgs/shells/zsh/spaceship-prompt/default.nix
index e1839d5dd07f..7db8cdb33492 100644
--- a/nixpkgs/pkgs/shells/zsh/spaceship-prompt/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/spaceship-prompt/default.nix
@@ -21,13 +21,15 @@ stdenv.mkDerivation rec {
     install -D -m644 spaceship.zsh "$out/lib/spaceship-prompt/spaceship.zsh"
     install -d "$out/share/zsh/themes/"
     ln -s "$out/lib/spaceship-prompt/spaceship.zsh" "$out/share/zsh/themes/spaceship.zsh-theme"
+    install -d "$out/share/zsh/site-functions/"
+    ln -s "$out/lib/spaceship-prompt/spaceship.zsh" "$out/share/zsh/site-functions/prompt_spaceship_setup"
   '';
 
   meta = with stdenv.lib; {
     description = "Zsh prompt for Astronauts";
     homepage = "https://github.com/denysdovhan/spaceship-prompt/";
     license = licenses.mit;
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ nyanloutre ];
   };
 }
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-completions/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-completions/default.nix
index 03f6146df7c6..89a91ad0508e 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-completions/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-completions/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zsh-completions";
-  version = "0.31.0";
+  version = "0.32.0";
 
   src = fetchFromGitHub {
     owner = "zsh-users";
     repo = pname;
     rev = version;
-    sha256 = "0rw23m8cqxhcb4yjhbzb9lir60zn1xjy7hn3zv1fzz700f0i6fyk";
+    sha256 = "12l9wrx0aysyj62kgp5limglz0nq73w8c415wcshxnxmhyk6sw6d";
   };
 
   installPhase= ''
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-history/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-history/default.nix
index 47f590a78f28..3d48467a2465 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-history/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-history/default.nix
@@ -14,7 +14,8 @@ buildGoModule rec {
   nativeBuildInputs = [ installShellFiles ];
 
   vendorSha256 = "13rc1afds5xg30faqz35haha4kxg73b5nvjirbrkc6kna0vhb54z";
-  goPackagePath = "github.com/b4b4r07/history";
+
+  doCheck = false;
 
   postInstall = ''
     install -d $out/share
@@ -33,4 +34,4 @@ buildGoModule rec {
   passthru.tests = {
     zsh-history-shell-integration = nixosTests.zsh-history;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-nix-shell/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-nix-shell/default.nix
index c424cc334836..6db78f1c0f56 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-nix-shell/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-nix-shell/default.nix
@@ -4,14 +4,14 @@
 # `programs.zsh.interactiveShellInit = "source ${pkgs.zsh-nix-shell}/share/zsh-nix-shell/nix-shell.plugin.zsh";`
 
 stdenv.mkDerivation rec {
-  pname = "zsh-nix-shell-unstable";
-  version = "2019-12-20";
+  pname = "zsh-nix-shell";
+  version = "0.1.0";
 
   src = fetchFromGitHub {
     owner = "chisui";
     repo = "zsh-nix-shell";
-    rev = "a65382a353eaee5a98f068c330947c032a1263bb";
-    sha256 = "0l41ac5b7p8yyjvpfp438kw7zl9dblrpd7icjg1v3ig3xy87zv0n";
+    rev = "v${version}";
+    sha256 = "0snhch9hfy83d4amkyxx33izvkhbwmindy0zjjk28hih1a9l2jmx";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
index 7b6684092bae..5d81ceaba1b2 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-powerlevel10k/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "powerlevel10k";
-  version = "1.11.0";
+  version = "1.12.0";
 
   src = fetchFromGitHub {
     owner = "romkatv";
     repo = "powerlevel10k";
     rev = "v${version}";
-    sha256 = "1z6abvp642n40biya88n86ff1wiry00dlwawqwxp7q5ds55jhbv1";
+    sha256 = "08zg4in70h3kray6lazszzy26gvil9w2cr6xmkbgjsv3k6w3k0jg";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/shells/zsh/zsh-you-should-use/default.nix b/nixpkgs/pkgs/shells/zsh/zsh-you-should-use/default.nix
index 13e3bbdc0383..603757c3332b 100644
--- a/nixpkgs/pkgs/shells/zsh/zsh-you-should-use/default.nix
+++ b/nixpkgs/pkgs/shells/zsh/zsh-you-should-use/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "zsh-you-should-use";
-  version = "1.7.0";
+  version = "1.7.3";
 
   src = fetchFromGitHub {
     owner = "MichaelAquilina";
     repo = pname;
     rev = version;
-    sha256 = "1gcxm08ragwrh242ahlq3bpfg5yma2cshwdlj8nrwnd4qwrsflgq";
+    sha256 = "1dz48rd66priqhxx7byndqhbmlwxi1nfw8ik25k0z5k7k754brgy";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/stdenv/cross/default.nix b/nixpkgs/pkgs/stdenv/cross/default.nix
index 0f575289889f..6ac03b7908fe 100644
--- a/nixpkgs/pkgs/stdenv/cross/default.nix
+++ b/nixpkgs/pkgs/stdenv/cross/default.nix
@@ -72,7 +72,8 @@ in lib.init bootStages ++ [
              (hostPlatform.isLinux && !buildPlatform.isLinux)
              [ buildPackages.patchelf ]
         ++ lib.optional
-             (let f = p: !p.isx86 || builtins.elem p.libc [ "musl" "wasilibc" "relibc" ] || p.isiOS; in f hostPlatform && !(f buildPlatform))
+             (let f = p: !p.isx86 || builtins.elem p.libc [ "musl" "wasilibc" "relibc" ] || p.isiOS || p.isGenode;
+               in f hostPlatform && !(f buildPlatform) )
              buildPackages.updateAutotoolsGnuConfigScriptsHook
            # without proper `file` command, libtool sometimes fails
            # to recognize 64-bit DLLs
diff --git a/nixpkgs/pkgs/stdenv/generic/default.nix b/nixpkgs/pkgs/stdenv/generic/default.nix
index e17b41eab320..b57989786904 100644
--- a/nixpkgs/pkgs/stdenv/generic/default.nix
+++ b/nixpkgs/pkgs/stdenv/generic/default.nix
@@ -138,8 +138,11 @@ let
         is32bit is64bit
         isAarch32 isAarch64 isMips isBigEndian;
 
-      # The derivation's `system` is `buildPlatform.system`.
-      inherit (buildPlatform) system;
+      # Override `system` so that packages can get the system of the host
+      # platform through `stdenv.system`. `system` is originally set to the
+      # build platform within the derivation above so that Nix directs the build
+      # to correct type of machine.
+      inherit (hostPlatform) system;
 
       inherit (import ./make-derivation.nix {
         inherit lib config stdenv;
diff --git a/nixpkgs/pkgs/stdenv/generic/make-derivation.nix b/nixpkgs/pkgs/stdenv/generic/make-derivation.nix
index 993ae68e9e81..491951e6121f 100644
--- a/nixpkgs/pkgs/stdenv/generic/make-derivation.nix
+++ b/nixpkgs/pkgs/stdenv/generic/make-derivation.nix
@@ -247,7 +247,8 @@ in rec {
             (/**/ if lib.isString cmakeFlags then [cmakeFlags]
              else if cmakeFlags == null      then []
              else                                     cmakeFlags)
-          ++ [ "-DCMAKE_SYSTEM_NAME=${lib.findFirst lib.isString "Generic" [ stdenv.hostPlatform.uname.system ]}" ]
+          ++ [ "-DCMAKE_SYSTEM_NAME=${lib.findFirst lib.isString "Generic" (
+               lib.optional (!stdenv.hostPlatform.isRedox) stdenv.hostPlatform.uname.system)}"]
           ++ lib.optional (stdenv.hostPlatform.uname.processor != null) "-DCMAKE_SYSTEM_PROCESSOR=${stdenv.hostPlatform.uname.processor}"
           ++ lib.optional (stdenv.hostPlatform.uname.release != null) "-DCMAKE_SYSTEM_VERSION=${stdenv.hostPlatform.release}"
           ++ lib.optional (stdenv.buildPlatform.uname.system != null) "-DCMAKE_HOST_SYSTEM_NAME=${stdenv.buildPlatform.uname.system}"
@@ -308,8 +309,12 @@ in rec {
           name = attrs.name or "${attrs.pname}-${attrs.version}";
 
           # If the packager hasn't specified `outputsToInstall`, choose a default,
-          # which is the name of `p.bin or p.out or p`;
-          # if he has specified it, it will be overridden below in `// meta`.
+          # which is the name of `p.bin or p.out or p` along with `p.man` when
+          # present.
+          #
+          # If the packager has specified it, it will be overridden below in
+          # `// meta`.
+          #
           #   Note: This default probably shouldn't be globally configurable.
           #   Services and users should specify outputs explicitly,
           #   unless they are comfortable with this default.
@@ -337,6 +342,32 @@ in rec {
         validity.handled
         ({
            overrideAttrs = f: mkDerivation (attrs // (f attrs));
+
+           # A derivation that always builds successfully and whose runtime
+           # dependencies are the original derivations build time dependencies
+           # This allows easy building and distributing of all derivations
+           # needed to enter a nix-shell with
+           #   nix-build shell.nix -A inputDerivation
+           inputDerivation = derivation (derivationArg // {
+             # Add a name in case the original drv didn't have one
+             name = derivationArg.name or "inputDerivation";
+             # This always only has one output
+             outputs = [ "out" ];
+
+             # Propagate the original builder and arguments, since we override
+             # them and they might contain references to build inputs
+             _derivation_original_builder = derivationArg.builder;
+             _derivation_original_args = derivationArg.args;
+
+             builder = stdenv.shell;
+             # The bash builtin `export` dumps all current environment variables,
+             # which is where all build input references end up (e.g. $PATH for
+             # binaries). By writing this to $out, Nix can find and register
+             # them as runtime dependencies (since Nix greps for store paths
+             # through $out to find them)
+             args = [ "-c" "export > $out" ];
+           });
+
            inherit meta passthru;
          } //
          # Pass through extra attributes that are not inputs, but
diff --git a/nixpkgs/pkgs/stdenv/generic/setup.sh b/nixpkgs/pkgs/stdenv/generic/setup.sh
index 839757945a2b..d19ed342aab0 100644
--- a/nixpkgs/pkgs/stdenv/generic/setup.sh
+++ b/nixpkgs/pkgs/stdenv/generic/setup.sh
@@ -219,12 +219,13 @@ printWords() {
 # Initialisation.
 
 
-# Set a fallback default value for SOURCE_DATE_EPOCH, used by some
-# build tools to provide a deterministic substitute for the "current"
-# time. Note that 1 = 1970-01-01 00:00:01. We don't use 0 because it
-# confuses some applications.
+# Set a fallback default value for SOURCE_DATE_EPOCH, used by some build tools
+# to provide a deterministic substitute for the "current" time. Note that
+# 315532800 = 1980-01-01 12:00:00. We use this date because python's wheel
+# implementation uses zip archive and zip does not support dates going back to
+# 1970.
 export SOURCE_DATE_EPOCH
-: ${SOURCE_DATE_EPOCH:=1}
+: ${SOURCE_DATE_EPOCH:=315532800}
 
 
 # Wildcard expansions that don't match should expand to an empty list.
diff --git a/nixpkgs/pkgs/test/haskell-shellFor/default.nix b/nixpkgs/pkgs/test/haskell-shellFor/default.nix
index 1b3de999d228..05d09d6f39cf 100644
--- a/nixpkgs/pkgs/test/haskell-shellFor/default.nix
+++ b/nixpkgs/pkgs/test/haskell-shellFor/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, haskellPackages, cabal-install }:
+{ lib, stdenv, haskellPackages, cabal-install }:
 
-haskellPackages.shellFor {
-  packages = p: [ p.database-id-class p.constraints-extras ];
+(haskellPackages.shellFor {
+  packages = p: [ p.database-id-class p.constraints ];
   nativeBuildInputs = [ cabal-install ];
   phases = [ "unpackPhase" "buildPhase" "installPhase" ];
   unpackPhase = ''
@@ -9,16 +9,25 @@ haskellPackages.shellFor {
     mkdir -p "$sourceRoot"
     cd "$sourceRoot"
     tar -xf ${haskellPackages.database-id-class.src}
-    tar -xf ${haskellPackages.constraints-extras.src}
-    cp ${builtins.toFile "cabal.project" "packages: database-id-class* constraints-extras*"} cabal.project
+    tar -xf ${haskellPackages.constraints.src}
+    cp ${builtins.toFile "cabal.project" "packages: database-id-class* constraints*"} cabal.project
   '';
   buildPhase = ''
     export HOME=$(mktemp -d)
     mkdir -p $HOME/.cabal
     touch $HOME/.cabal/config
-    cabal v2-build --offline --verbose database-id-class constraints-extras --ghc-options="-O0 -j$NIX_BUILD_CORES"
+    cabal v2-build --offline --verbose database-id-class constraints --ghc-options="-O0 -j$NIX_BUILD_CORES"
   '';
   installPhase = ''
     touch $out
   '';
-}
+}).overrideAttrs (oldAttrs: {
+  meta =
+    let
+      oldMeta = oldAttrs.meta or {};
+      oldMaintainers = oldMeta.maintainers or [];
+      additionalMaintainers = with lib.maintainers; [ cdepillabout ];
+      allMaintainers = oldMaintainers ++ additionalMaintainers;
+    in
+    oldMeta // { maintainers = allMaintainers; };
+})
diff --git a/nixpkgs/pkgs/tools/X11/alttab/default.nix b/nixpkgs/pkgs/tools/X11/alttab/default.nix
index d77f2f1c71b9..7917ad5215eb 100644
--- a/nixpkgs/pkgs/tools/X11/alttab/default.nix
+++ b/nixpkgs/pkgs/tools/X11/alttab/default.nix
@@ -2,7 +2,7 @@
 , xorg }:
 
 stdenv.mkDerivation rec {
-  version = "1.4.0";
+  version = "1.5.0";
 
   pname = "alttab";
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "sagb";
     repo = pname;
     rev = "v${version}";
-    sha256 = "028ifp54yl3xq5mj2ww9baga8p56nmrx4ypvj8k35akcaxdpyga9";
+    sha256 = "026xd1bkg10fj2q1n6xx797xk1grpby25qj1pnw2lp4f3vc19qn6";
   };
 
   nativeBuildInputs = [ 
diff --git a/nixpkgs/pkgs/tools/X11/ckbcomp/default.nix b/nixpkgs/pkgs/tools/X11/ckbcomp/default.nix
index 74a6777d9491..91e067e7be71 100644
--- a/nixpkgs/pkgs/tools/X11/ckbcomp/default.nix
+++ b/nixpkgs/pkgs/tools/X11/ckbcomp/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "ckbcomp";
-  version = "1.195";
+  version = "1.196";
 
   src = fetchFromGitLab {
     domain = "salsa.debian.org";
     owner = "installer-team";
     repo = "console-setup";
     rev = version;
-    sha256 = "0d0xagigs5k3appzz5lzxdjncvnkgz4amz6ks7imiq8kkjixvmfy";
+    sha256 = "0c79rycgpna8910as6blw3z3sajzzakz4qlvr6js2yr8zq2d0ylg";
   };
 
   buildInputs = [ perl ];
diff --git a/nixpkgs/pkgs/tools/X11/dex/default.nix b/nixpkgs/pkgs/tools/X11/dex/default.nix
index af8188883d9b..22d6c1bfdeca 100644
--- a/nixpkgs/pkgs/tools/X11/dex/default.nix
+++ b/nixpkgs/pkgs/tools/X11/dex/default.nix
@@ -1,28 +1,21 @@
-{ stdenv, fetchFromGitHub, python3, fetchpatch }:
+{ stdenv, fetchFromGitHub, python3 }:
 
 stdenv.mkDerivation rec {
   program = "dex";
   name = "${program}-${version}";
-  version = "0.8.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "jceb";
     repo = program;
     rev = "v${version}";
-    sha256 = "13dkjd1373mbvskrdrp0865llr3zvdr90sc6a6jqswh3crmgmz4k";
+    sha256 = "03aapcywnz4kl548cygpi25m8adwbmqlmwgxa66v4156ax9dqs86";
   };
 
   propagatedBuildInputs = [ python3 ];
   nativeBuildInputs = [ python3.pkgs.sphinx ];
   makeFlags = [ "PREFIX=$(out)" "VERSION=$(version)" ];
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/jceb/dex/commit/107358ddf5e1ca4fa56ef1a7ab161dc3b6adc45a.patch";
-      sha256 = "06dfkfzxp8199by0jc5wim8g8qw38j09dq9p6n9w4zaasla60pjq";
-    })
-  ];
-
   meta = with stdenv.lib; {
     description = "A program to generate and execute DesktopEntry files of the Application type";
     homepage = "https://github.com/jceb/dex";
diff --git a/nixpkgs/pkgs/tools/X11/grobi/default.nix b/nixpkgs/pkgs/tools/X11/grobi/default.nix
index a2cca87edc08..111d064ad887 100644
--- a/nixpkgs/pkgs/tools/X11/grobi/default.nix
+++ b/nixpkgs/pkgs/tools/X11/grobi/default.nix
@@ -1,19 +1,19 @@
-{ stdenv, fetchFromGitHub, buildGoPackage }:
+{ stdenv, fetchFromGitHub, buildGoModule }:
 
-buildGoPackage {
-  version = "0.5.1";
+buildGoModule rec {
+  version = "0.6.0";
   pname = "grobi";
 
-  goPackagePath = "github.com/fd0/grobi";
-
   src = fetchFromGitHub {
-    rev = "5ddc167b9e4f84755a515828360abda15c54b7de";
+    rev = "v${version}";
     owner = "fd0";
     repo = "grobi";
-    sha256 = "0iyxidq60pf6ki52f8fffplf10nl8w9jx1b7igg98csnc6iqxh89";
+    sha256 = "032lvnl2qq9258y6q1p60lfi7qir68zgq8zyh4khszd3wdih7y3s";
   };
 
-   meta = with stdenv.lib; {
+  vendorSha256 = "1ibwx5rbxkygfx78j3g364dmbwwa5b34qmzq3sqcbrsnv8rzrwvj";
+
+  meta = with stdenv.lib; {
     homepage = "https://github.com/fd0/grobi";
     description = "Automatically configure monitors/outputs for Xorg via RANDR";
     license = with licenses; [ bsd2 ];
diff --git a/nixpkgs/pkgs/tools/X11/nx-libs/default.nix b/nixpkgs/pkgs/tools/X11/nx-libs/default.nix
index 42444e5fca1b..ceb2534e07aa 100644
--- a/nixpkgs/pkgs/tools/X11/nx-libs/default.nix
+++ b/nixpkgs/pkgs/tools/X11/nx-libs/default.nix
@@ -2,12 +2,12 @@
   libpng, libtool, libxml2, pkgconfig, which, xorg }:
 stdenv.mkDerivation rec {
   pname = "nx-libs";
-  version = "3.5.99.23";
+  version = "3.5.99.24";
   src = fetchFromGitHub {
     owner = "ArcticaProject";
     repo = "nx-libs";
     rev = version;
-    sha256 = "0hcsic9bf8w4ja3xy2nka8hcjvidqzjafn1bwr34l5l47h0kbyqz";
+    sha256 = "0knx4phya90ahjxaflkvnnb7w22vdwjf7r78dhzmbmlccnlvwi7q";
   };
 
   nativeBuildInputs = [ autoconf automake libtool pkgconfig which
diff --git a/nixpkgs/pkgs/tools/X11/wmutils-libwm/default.nix b/nixpkgs/pkgs/tools/X11/wmutils-libwm/default.nix
new file mode 100644
index 000000000000..72022621afed
--- /dev/null
+++ b/nixpkgs/pkgs/tools/X11/wmutils-libwm/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, libxcb }:
+
+stdenv.mkDerivation rec {
+  pname = "wmutils-libwm";
+  version = "1.0";
+
+  src = fetchFromGitHub {
+    owner = "wmutils";
+    repo = "libwm";
+    rev = "v${version}";
+    sha256 = "1lpbqrilhffpzc0b7vnp08jr1wr96lndwc7y0ck8hlbzlvm662l0";
+  };
+
+  buildInputs = [ libxcb ];
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    description = "A small library for X window manipulation";
+    homepage = "https://github.com/wmutils/libwm";
+    license = licenses.isc;
+    maintainers = with maintainers; [ bhougland ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/X11/xidlehook/default.nix b/nixpkgs/pkgs/tools/X11/xidlehook/default.nix
index e15bee331a8b..35f0d73ea0b7 100644
--- a/nixpkgs/pkgs/tools/X11/xidlehook/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xidlehook/default.nix
@@ -3,7 +3,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "xidlehook";
-  version = "0.8.2";
+  version = "0.9.1";
 
   doCheck = false;
 
@@ -12,11 +12,11 @@ rustPlatform.buildRustPackage rec {
     repo = "xidlehook";
     rev = version;
 
-    sha256 = "1zvr3vk76x0gsq6z5rrnliv2bvshsm8bhkspc41bbj4kniz4h5bw";
+    sha256 = "00j2iwp25hz9jlr45qszyipljqdnh7h3ni9bkd2lmk58kkvmhf1s";
   };
 
   cargoBuildFlags = lib.optionals (!stdenv.isLinux) ["--no-default-features" "--features" "pulse"];
-  cargoSha256 = "0dxz5mbdc93xb02vnmd29i2kdh05c7vx9h28x5qgs3jvddyb3xmn";
+  cargoSha256 = "050ihjhg33223x6pgvhqrjprx1clkj2x3jr6acf716vbwm3m0bmz";
 
   buildInputs = [ xlibsWrapper xorg.libXScrnSaver libpulseaudio ] ++ lib.optional stdenv.isDarwin Security;
   nativeBuildInputs = [ pkgconfig patchelf python3 ];
diff --git a/nixpkgs/pkgs/tools/X11/xpra/default.nix b/nixpkgs/pkgs/tools/X11/xpra/default.nix
index 6fe433daf8b9..7f46e017c367 100644
--- a/nixpkgs/pkgs/tools/X11/xpra/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xpra/default.nix
@@ -90,9 +90,12 @@ in buildPythonApplication rec {
     "--with-vsock"
   ];
 
+  dontWrapGApps = true;
   preFixup = ''
-    gappsWrapperArgs+=(
+    makeWrapperArgs+=(
+      "''${gappsWrapperArgs[@]}"
       --set XPRA_INSTALL_PREFIX "$out"
+      --set XPRA_COMMAND "$out/bin/xpra"
       --prefix LD_LIBRARY_PATH : ${libfakeXinerama}/lib
       --prefix PATH : ${stdenv.lib.makeBinPath [ getopt xorgserver xauth which utillinux pulseaudio ]}
     )
diff --git a/nixpkgs/pkgs/tools/X11/xpra/libfakeXinerama.nix b/nixpkgs/pkgs/tools/X11/xpra/libfakeXinerama.nix
index 712f47fb2c81..e43043d78f2e 100644
--- a/nixpkgs/pkgs/tools/X11/xpra/libfakeXinerama.nix
+++ b/nixpkgs/pkgs/tools/X11/xpra/libfakeXinerama.nix
@@ -11,8 +11,6 @@ stdenv.mkDerivation  rec {
 
   buildInputs = [ libX11 libXinerama ];
 
-  phases = [ "unpackPhase" "buildPhase" "installPhase" ];
-
   buildPhase = ''
     gcc -O2 -Wall fakeXinerama.c -fPIC -o libfakeXinerama.so.1.0 -shared
   '';
@@ -20,6 +18,7 @@ stdenv.mkDerivation  rec {
   installPhase = ''
     mkdir -p $out/lib
     cp libfakeXinerama.so.1.0 $out/lib
+    ln -s libfakeXinerama.so.1.0 $out/lib/libXinerama.so.1.0
     ln -s libXinerama.so.1.0 $out/lib/libXinerama.so.1
     ln -s libXinerama.so.1 $out/lib/libXinerama.so
   '';
diff --git a/nixpkgs/pkgs/tools/X11/xsecurelock/default.nix b/nixpkgs/pkgs/tools/X11/xsecurelock/default.nix
index effdd76ce9db..99d695df2674 100644
--- a/nixpkgs/pkgs/tools/X11/xsecurelock/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xsecurelock/default.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook, pkgconfig
 , libX11, libXcomposite, libXft, libXmu, libXrandr, libXext, libXScrnSaver
-, pam, apacheHttpd, imagemagick, pamtester, xscreensaver, xset }:
+, pam, apacheHttpd, pamtester, xscreensaver }:
 
 stdenv.mkDerivation rec {
   pname = "xsecurelock";
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
   ];
   buildInputs = [
     libX11 libXcomposite libXft libXmu libXrandr libXext libXScrnSaver
-    pam apacheHttpd imagemagick pamtester
+    pam apacheHttpd pamtester
   ];
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/X11/xwallpaper/default.nix b/nixpkgs/pkgs/tools/X11/xwallpaper/default.nix
index ad2995b4ca60..759613553fe0 100644
--- a/nixpkgs/pkgs/tools/X11/xwallpaper/default.nix
+++ b/nixpkgs/pkgs/tools/X11/xwallpaper/default.nix
@@ -1,5 +1,14 @@
-{ stdenv, fetchFromGitHub, pkg-config, autoreconfHook, pixman, xcbutil, xcbutilimage
-, libseccomp, libjpeg, libpng, libXpm }:
+{ stdenv
+, fetchFromGitHub
+, pkg-config
+, autoreconfHook
+, pixman
+, xcbutil
+, xcbutilimage
+, libjpeg
+, libpng
+, libXpm
+}:
 
 stdenv.mkDerivation rec {
   pname = "xwallpaper";
@@ -15,7 +24,7 @@ stdenv.mkDerivation rec {
   preConfigure = "./autogen.sh";
 
   nativeBuildInputs = [ pkg-config autoreconfHook ];
-  buildInputs = [ pixman xcbutilimage xcbutil libseccomp libjpeg libpng libXpm ];
+  buildInputs = [ pixman xcbutilimage xcbutil libjpeg libpng libXpm ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/stoeckmann/xwallpaper";
diff --git a/nixpkgs/pkgs/tools/admin/acme.sh/default.nix b/nixpkgs/pkgs/tools/admin/acme.sh/default.nix
index 2254f2e22d9d..30badb175a96 100644
--- a/nixpkgs/pkgs/tools/admin/acme.sh/default.nix
+++ b/nixpkgs/pkgs/tools/admin/acme.sh/default.nix
@@ -1,13 +1,13 @@
 { stdenv, lib, fetchFromGitHub, makeWrapper, curl, openssl, socat, iproute, unixtools, dnsutils }:
 stdenv.mkDerivation rec {
   pname = "acme.sh";
-  version = "2.8.6";
+  version = "2.8.7";
 
   src = fetchFromGitHub {
     owner = "Neilpang";
     repo = "acme.sh";
     rev = version;
-    sha256 = "0zbs8vzbh89wxf36h9mvhin2p85n3jrsq6l5i40q1zkzgwi3648n";
+    sha256 = "0bwzrrm07v2lpsja0r0z7nj3jrf814w57mmk8lbdk9dsb3i07x4w";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix b/nixpkgs/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
index b36daefa16b6..30d74c14ce5e 100644
--- a/nixpkgs/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
+++ b/nixpkgs/pkgs/tools/admin/amazon-ecr-credential-helper/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "amazon-ecr-credential-helper";
-  version = "0.3.0";
+  version = "0.4.0";
 
   goPackagePath = "github.com/awslabs/amazon-ecr-credential-helper";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "awslabs";
     repo = "amazon-ecr-credential-helper";
     rev = "v${version}";
-    sha256 = "06pcwgahcbi13ca5rs6giwdw3w364lbvmzcs4ka82igvcffxjvnd";
+    sha256 = "1whwxjzlyzyvrf2mzbd7my2kdz5fdbr79g18g9h4xrg8xyzk1k5q";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/admin/ansible/default.nix b/nixpkgs/pkgs/tools/admin/ansible/default.nix
index 174aef7c4bab..58b2852baca3 100644
--- a/nixpkgs/pkgs/tools/admin/ansible/default.nix
+++ b/nixpkgs/pkgs/tools/admin/ansible/default.nix
@@ -1,27 +1,32 @@
-{ python3Packages, fetchurl }:
+{ python3Packages, fetchurl, fetchFromGitHub }:
 
 rec {
-  ansible = ansible_2_9;
+  ansible = ansible_2_10;
 
-  ansible_2_9 = python3Packages.toPythonApplication python3Packages.ansible;
-
-  ansible_2_8 = python3Packages.toPythonApplication (python3Packages.ansible.overridePythonAttrs (old: rec {
+  # The python module stays at v2.9.x until the related package set has caught up. Therefore v2.10 gets an override
+  # for now.
+  ansible_2_10 = python3Packages.toPythonApplication (python3Packages.ansible.overridePythonAttrs (old: rec {
     pname = "ansible";
-    version = "2.8.12";
+    version = "2.10.0";
 
-    src = fetchurl {
-      url = "https://releases.ansible.com/ansible/${pname}-${version}.tar.gz";
-      sha256 = "091id1da3hlnmf0hwvrhv2r0mnyna3mc6s7rwdg5kll7yfiy4k1a";
+    # TODO: migrate to fetchurl, when release becomes available on releases.ansible.com
+    src = fetchFromGitHub {
+      owner = pname;
+      repo = pname;
+      rev = "v${version}";
+      sha256 = "0k9rs5ajx0chaq0xr1cj4x7fr5n8kd4y856miss6k01iv2m7yx42";
     };
   }));
 
-  ansible_2_7 = python3Packages.toPythonApplication (python3Packages.ansible.overridePythonAttrs (old: rec {
+  ansible_2_9 = python3Packages.toPythonApplication python3Packages.ansible;
+
+  ansible_2_8 = python3Packages.toPythonApplication (python3Packages.ansible.overridePythonAttrs (old: rec {
     pname = "ansible";
-    version = "2.7.18";
+    version = "2.8.14";
 
     src = fetchurl {
       url = "https://releases.ansible.com/ansible/${pname}-${version}.tar.gz";
-      sha256 = "0sgshaaqyjq3i035yi5hivmrrwrq05hxrbjrv1w3hfzmvljn41d1";
+      sha256 = "19ga0c9qs2b216qjg5k2yknz8ksjn8qskicqspg2d4b8x2nr1294";
     };
   }));
 }
diff --git a/nixpkgs/pkgs/tools/admin/aws-vault/default.nix b/nixpkgs/pkgs/tools/admin/aws-vault/default.nix
index 0216660e1ecc..d55b90f3b84d 100644
--- a/nixpkgs/pkgs/tools/admin/aws-vault/default.nix
+++ b/nixpkgs/pkgs/tools/admin/aws-vault/default.nix
@@ -1,16 +1,19 @@
 { buildGoModule, lib, fetchFromGitHub }:
 buildGoModule rec {
   pname = "aws-vault";
-  version = "5.4.4";
+  version = "6.2.0";
 
   src = fetchFromGitHub {
     owner = "99designs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0qmxq2jd7dg5fp9giw6xd96q2l2df3sxksc0rwmrgx2rjx6iyivn";
+    sha256 = "0892fhjmxnms09bfbjnngnnnli2d4nkwq44fw98yb3d5lbpa1j1j";
   };
 
-  vendorSha256 = "0jlraq480llamns6yw8yjkzxsndyqiyzy120djni8sw5h0bz65j7";
+  vendorSha256 = "18lmxx784377x1v0gr6fkdx5flhcajsqlzyjx508z0kih6ammc0z";
+
+  doCheck = false;
+
   subPackages = [ "." ];
 
   # set the version. see: aws-vault's Makefile
@@ -26,4 +29,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ zimbatm ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/admin/aws_shell/default.nix b/nixpkgs/pkgs/tools/admin/aws_shell/default.nix
deleted file mode 100644
index 104c2f1e44a9..000000000000
--- a/nixpkgs/pkgs/tools/admin/aws_shell/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv
-, awscli
-}:
-
-with awscli.python.pkgs;
-
-buildPythonPackage rec {
-  pname = "aws-shell";
-  version = "0.2.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "2044b0ef78c7542c392f2cee4b74a4439545c63dda0a3e28b712fff53e8e5823";
-  };
-
-  # Why does it propagate packages that are used for testing?
-  propagatedBuildInputs = [
-    awscli
-    prompt_toolkit
-    boto3
-    configobj
-    pygments
-    pyyaml
-  ];
-
-  postPatch = ''
-    substituteInPlace setup.py \
-     --replace "prompt-toolkit>=1.0.0,<1.1.0" "prompt-toolkit"
-  '';
-
-  #Checks are failing due to missing TTY, which won't exist.
-  doCheck = false;
-  preCheck = ''
-    mkdir -p check-phase
-    export HOME=$(pwd)/check-phase
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = "https://github.com/awslabs/aws-shell";
-    description = "An integrated shell for working with the AWS CLI";
-    license = licenses.asl20;
-    maintainers = [ ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/admin/awscli/default.nix b/nixpkgs/pkgs/tools/admin/awscli/default.nix
index 7acfd7c710e9..6bc329628916 100644
--- a/nixpkgs/pkgs/tools/admin/awscli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/awscli/default.nix
@@ -19,15 +19,15 @@ let
 
 in with py.pkgs; buildPythonApplication rec {
   pname = "awscli";
-  version = "1.18.56"; # N.B: if you change this, change botocore to a matching version too
+  version = "1.18.137"; # N.B: if you change this, change botocore to a matching version too
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3a442ea0d18d8a60228f1115850b5b8bdc739cd436d34a279bdf711fb918aaa0";
+    sha256 = "0g745lvmi30di3bbpbca2bkqqzk7g6l3ssmbpi8pvgy0wrfhij69";
   };
 
   postPatch = ''
-    substituteInPlace setup.py --replace ",<0.16" ""
+    substituteInPlace setup.py --replace "docutils>=0.10,<0.16" "docutils>=0.10"
   '';
 
   # No tests included
diff --git a/nixpkgs/pkgs/tools/admin/awscli2/default.nix b/nixpkgs/pkgs/tools/admin/awscli2/default.nix
new file mode 100644
index 000000000000..471034fa51a8
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/awscli2/default.nix
@@ -0,0 +1,86 @@
+{ lib
+, python3
+, groff
+, less
+, fetchFromGitHub
+}:
+let
+  py = python3.override {
+    packageOverrides = self: super: {
+      botocore = super.botocore.overridePythonAttrs (oldAttrs: rec {
+        version = "2.0.0dev52";
+        src = fetchFromGitHub {
+          owner = "boto";
+          repo = "botocore";
+          rev = "f115f16d8130957776f232bbb7505ff6c4f18e8c";
+          hash = "sha256-wi9ezv6uIvCNFYJX6z0zQO7/VREhe1Sn/CakIgDRp1c=";
+        };
+      });
+      prompt_toolkit = super.prompt_toolkit.overridePythonAttrs (oldAttrs: rec {
+        version = "2.0.10";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "1nr990i4b04rnlw1ghd0xmgvvvhih698mb6lb6jylr76cs7zcnpi";
+        };
+      });
+    };
+  };
+
+in
+with py.pkgs; buildPythonApplication rec {
+  pname = "awscli2";
+  version = "2.0.48"; # N.B: if you change this, change botocore to a matching version too
+
+  src = fetchFromGitHub {
+    owner = "aws";
+    repo = "aws-cli";
+    rev = version;
+    hash = "sha256-83EKaKv3ZKOD2hzdsJO7/djbzr4V8LpHxqBl9HFhk1U=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py --replace "cryptography>=2.8.0,<=2.9.0" "cryptography>=2.8.0"
+    substituteInPlace setup.py --replace "docutils>=0.10,<0.16" "docutils>=0.10"
+    substituteInPlace setup.py --replace "ruamel.yaml>=0.15.0,<0.16.0" "ruamel.yaml>=0.15.0"
+    substituteInPlace setup.py --replace "wcwidth<0.2.0" "wcwidth"
+  '';
+
+  # No tests included
+  doCheck = false;
+
+  propagatedBuildInputs = [
+    bcdoc
+    botocore
+    colorama
+    cryptography
+    distro
+    docutils
+    groff
+    less
+    prompt_toolkit
+    pyyaml
+    rsa
+    ruamel_yaml
+    s3transfer
+    six
+    wcwidth
+  ];
+
+  postInstall = ''
+    mkdir -p $out/etc/bash_completion.d
+    echo "complete -C $out/bin/aws_completer aws" > $out/etc/bash_completion.d/awscli
+    mkdir -p $out/share/zsh/site-functions
+    mv $out/bin/aws_zsh_completer.sh $out/share/zsh/site-functions
+    rm $out/bin/aws.cmd
+  '';
+
+  passthru.python = py; # for aws_shell
+
+  meta = with lib; {
+    homepage = "https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html";
+    changelog = "https://github.com/aws/aws-cli/blob/${version}/CHANGELOG.rst";
+    description = "Unified tool to manage your AWS services";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ bhipple davegallant ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/admin/awsweeper/default.nix b/nixpkgs/pkgs/tools/admin/awsweeper/default.nix
index 372d287cbd2f..2417854fcad9 100644
--- a/nixpkgs/pkgs/tools/admin/awsweeper/default.nix
+++ b/nixpkgs/pkgs/tools/admin/awsweeper/default.nix
@@ -19,6 +19,8 @@ buildGoModule rec {
 
   vendorSha256 = "0hnpb1xp135z2qpn1b6xad59739hffhs8dfpr3n5drmrvajpn4xp";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "A tool to clean out your AWS account";
     homepage = "https://github.com/cloudetc/awsweeper/";
diff --git a/nixpkgs/pkgs/tools/admin/azure-cli/default.nix b/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
index 4cfe1beb2cdc..3743cad11a30 100644
--- a/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/azure-cli/default.nix
@@ -1,12 +1,12 @@
 { stdenv, lib, python, fetchFromGitHub, installShellFiles }:
 
 let
-  version = "2.7.0";
+  version = "2.11.1";
   src = fetchFromGitHub {
     owner = "Azure";
     repo = "azure-cli";
     rev = "azure-cli-${version}";
-    sha256 = "0g0ddg04pwcsmyyzrqllx4ladw4x5zxc5yw29q8f6q59j6jaf1zb";
+    sha256 = "11jmgc73b0w725rq89j6hk6gh67nfdbzp3rmywmrnah683d6xbpx";
   };
 
   # put packages that needs to be overriden in the py package scope
@@ -105,10 +105,13 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     azure-mgmt-sql
     azure-mgmt-sqlvirtualmachine
     azure-mgmt-storage
+    azure-mgmt-synapse
     azure-mgmt-trafficmanager
     azure-mgmt-web
     azure-multiapi-storage
     azure-storage-blob
+    azure-synapse-accesscontrol
+    azure-synapse-spark
     colorama
     cryptography
     Fabric
diff --git a/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix b/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
index 157da72a73b5..8d17c9ff2017 100644
--- a/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/nixpkgs/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -21,7 +21,10 @@ let
   });
 
   overrideAzureMgmtPackage = package: version: extension: sha256:
-    package.overrideAttrs(oldAttrs: rec {
+    # check to make sure overriding is even necessary
+    if version == package.version then
+      package
+    else package.overrideAttrs(oldAttrs: rec {
       inherit version;
 
       src = py.pkgs.fetchPypi {
@@ -121,11 +124,11 @@ let
       azure-mgmt-apimanagement = overrideAzureMgmtPackage super.azure-mgmt-apimanagement "0.1.0" "zip"
         "06bqqkn5mx127x1z7ycm6rl8ajxlrmrm2kcdpgkbl4baii1x6iax";
 
-      azure-mgmt-batch = overrideAzureMgmtPackage super.azure-mgmt-batch "7.0.0" "zip"
-        "18dwgbwk1kc0pdqa85hbsm9312l50rf8ymb60fia1c9rni9bdi8n";
+      azure-mgmt-batch = overrideAzureMgmtPackage super.azure-mgmt-batch "9.0.0" "zip"
+        "1zn3yqwvm2f3sy8v0xvj4yb7m8kxxm1wpcaccxp91b0zzbn7wh83";
 
-      azure-mgmt-policyinsights = overrideAzureMgmtPackage super.azure-mgmt-policyinsights "0.4.0" "zip"
-        "1b69rz9wm0jvc54vx3b7h633x8gags51xwxrkp6myar40jggxw6g";
+      azure-mgmt-policyinsights = overrideAzureMgmtPackage super.azure-mgmt-policyinsights "0.5.0" "zip"
+        "1wxh7mgrknnhqyafdd7sbwx8plx0zga2af21vs6yhxy48lw9w8pd";
 
       azure-mgmt-rdbms = overrideAzureMgmtPackage super.azure-mgmt-rdbms "2.2.0" "zip"
         "1iz1pf28ajrzbq8nab1jbjbgfbv0g6ni036xayy6xylvga4l8czr";
@@ -136,35 +139,41 @@ let
       azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "0.6.0" "zip"
         "13s2k4jl8570bj6jkqzm0w29z29rl7h5i7czd3kr6vqar5wj9xjd";
 
-      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "9.0.0" "zip"
-        "00bmdbr7hdwb3ibr9sfbgbmmr6626qlz19cdi84d87rcisczf4nw";
+      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "10.2.0" "zip"
+        "ddfe4c0c55f0e3fd1f66dd82c1d4a3d872ce124639b9a77fcd172daf464438a5";
 
-      azure-mgmt-appconfiguration = overrideAzureMgmtPackage super.azure-mgmt-appconfiguration "0.4.0" "zip"
-        "1dn5585nsizszjivx6lp677ka0mrg0ayqgag4yzfdz9ml8mj1xl5";
+      azure-mgmt-appconfiguration = overrideAzureMgmtPackage super.azure-mgmt-appconfiguration "0.5.0" "zip"
+        "1nh626jg459p9f96glv74dph3vmpybm5cs8rrj1s65kn3m8jf591";
 
-      azure-mgmt-cognitiveservices = overrideAzureMgmtPackage super.azure-mgmt-cognitiveservices "5.0.0" "zip"
-        "1m7v3rfkvmdgghrpz15fm8pvmmhi40lcwfxdm2kxh7mx01r5l906";
+      azure-mgmt-cognitiveservices = overrideAzureMgmtPackage super.azure-mgmt-cognitiveservices "6.2.0" "zip"
+        "1khk9jdfx7706xsqpwrnfsplv6p6wracvpyk9ki8zhc7p83kal4k";
 
-      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "12.0.0" "zip"
-        "0vzq93g2fpnij4rykkk3391xq2knhlbz87vhim4zvj8s45sx6z8q";
+      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "13.0.0" "zip"
+        "17ik8lfd74ki57rml2piswcanzbladsqy0s2m9jmvwpdrfpincvz";
 
       azure-mgmt-consumption = overrideAzureMgmtPackage super.azure-mgmt-consumption "2.0.0" "zip"
         "12ai4qps73ivawh0yzvgb148ksx02r30pqlvfihx497j62gsi1cs";
 
+      azure-mgmt-containerinstance = overrideAzureMgmtPackage super.azure-mgmt-containerinstance "1.4.0" "zip"
+        "1qw6228bia5pimcijr755npli2l33jyfka1s2bzgl1w4h3prsji7";
+
       azure-mgmt-containerservice = overrideAzureMgmtPackage super.azure-mgmt-containerservice "9.0.1" "zip"
         "11nqjpi9qypb0xvfy63l98q5m5jfv5iqx15mliksm96vkdkmji3y";
 
-      azure-mgmt-core = overrideAzureMgmtPackage super.azure-mgmt-core "1.0.0" "zip"
-        "0pm565v05480f672l0n8z2sg6zk6iqyi91n0dhscibhdl54sy3si";
+      azure-mgmt-core = overrideAzureMgmtPackage super.azure-mgmt-core "1.2.0" "zip"
+        "8fe3b59446438f27e34f7b24ea692a982034d9e734617ca1320eedeee1939998";
 
-      azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "0.14.0" "zip"
-        "1af2vigpmcg2mp36dqi9g2dx4589bqm4w2af9dx6l9x65zfl89b9";
+      azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "0.15.0" "zip"
+        "03ysr8kx0gavjrxsi9wqrgxpg3g17nvii7z68qfm0k2mv6ryj3z7";
 
       azure-mgmt-deploymentmanager = overrideAzureMgmtPackage super.azure-mgmt-deploymentmanager "0.2.0" "zip"
         "0c6pyr36n9snx879vas5r6l25db6nlp2z96xn759mz4kg4i45qs6";
 
-      azure-mgmt-imagebuilder = overrideAzureMgmtPackage super.azure-mgmt-imagebuilder "0.2.1" "zip"
-        "0mwlvy4x5nr3hsz7wdpdhpzwarzzwz4225bfpd68hr0pcjgzspky";
+      azure-mgmt-eventgrid = overrideAzureMgmtPackage super.azure-mgmt-eventgrid "3.0.0rc7" "zip"
+        "1m5905mn362pn03sf89zsnylkrbgs4p1lkafrw3nxa2gnwcfpyb8";
+
+      azure-mgmt-imagebuilder = overrideAzureMgmtPackage super.azure-mgmt-imagebuilder "0.4.0" "zip"
+        "0cqpjnkpid6a34ifd4vk4fn1h57pa1bg3r756wv082xl2szr34jc";
 
       azure-mgmt-iothub = overrideAzureMgmtPackage super.azure-mgmt-iothub "0.12.0" "zip"
         "187z0w5by7d9a2zsz3kidmzjw591akpc6dwhps4jyb4skcmyw86s";
@@ -178,17 +187,17 @@ let
       azure-mgmt-devtestlabs = overrideAzureMgmtPackage super.azure-mgmt-devtestlabs "4.0.0" "zip"
         "1397ksrd61jv7400mgn8sqngp6ahir55fyq9n5k69wk88169qm2r";
 
-      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "0.8.0" "zip"
-        "0vbg5mpahrnnnbj80flgzxxiffic94wsc9srm4ir85y2j5rprpv7";
+      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "0.12.0" "zip"
+        "7d773119bc02e3d6f9d7cffb7effc17e85676d5c5b1f656d05abc4489e472c76";
 
       azure-mgmt-dns = overrideAzureMgmtPackage super.azure-mgmt-dns "2.1.0" "zip"
         "1l55py4fzzwhxlmnwa41gpmqk9v2ncc79w7zq11sm9a5ynrv2c1p";
 
-      azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "0.6.0" "zip"
-        "0ffhlbd9fwx05njawhii46wqyvbhhz2xcfx0pxc7b978n7l7ylm1";
+      azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "0.7.0" "zip"
+        "18n2lqvrhq40gdqhlzzg8mc03571i02c7qq7jv771lc58rqpzysh";
 
-      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "10.2.0" "zip"
-        "1nd2rcwl83x3xq4h5brb16jwbbq57gyxz6pgvmhnign9q76p836m";
+      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "11.0.0" "zip"
+        "1g39rl4p88bzhqbn1gi2nn8jyx77idxvpaw8xqz1gjv0qqqwdpvz";
 
       azure-mgmt-media = overrideAzureMgmtPackage super.azure-mgmt-media "2.1.0" "zip"
         "1py0hch0wghzfxazdrrs7p0kln2zn9jh3fmkzwd2z8qggj38q6gm";
@@ -196,8 +205,8 @@ let
       azure-mgmt-msi = overrideAzureMgmtPackage super.azure-mgmt-msi "0.2.0" "zip"
         "0rvik03njz940x2hvqg6iiq8k0d88gyygsr86w8s0sa12sdbq8l6";
 
-      azure-mgmt-web = overrideAzureMgmtPackage super.azure-mgmt-web "0.46.0" "zip"
-        "19n4cr8a2fwjks3485rkv31bsib9akah5b289sl5lsqyp6i8m671";
+      azure-mgmt-web = overrideAzureMgmtPackage super.azure-mgmt-web "0.47.0" "zip"
+        "1s6c477q2kpyiqkisw6l70ydyjkv3ay6zjjj4jl4ipv05a7356kq";
 
       azure-mgmt-redhatopenshift = overrideAzureMgmtPackage super.azure-mgmt-redhatopenshift "0.1.0" "zip"
         "1g65lbia1i1jw6qkyjz2ldyl3p90rbr78l8kfryg70sj7z3gnnjn";
@@ -208,38 +217,41 @@ let
       azure-mgmt-reservations = overrideAzureMgmtPackage super.azure-mgmt-reservations "0.6.0" "zip"
         "16ycni3cjl9c0mv419gy5rgbrlg8zp0vnr6aj8z8p2ypdw6sgac3";
 
-      azure-mgmt-security = overrideAzureMgmtPackage super.azure-mgmt-security "0.1.0" "zip"
-        "1cb466722bs0ribrirb32kc299716pl0pwivz3jyn40dd78cwhhx";
+      azure-mgmt-security = overrideAzureMgmtPackage super.azure-mgmt-security "0.4.1" "zip"
+        "08gf401d40bd1kn9wmpxcjxqdh84cd9hxm8rdjd0918483sqs71r";
 
-      azure-mgmt-signalr = overrideAzureMgmtPackage super.azure-mgmt-signalr "0.3.0" "zip"
-        "08b2i6wz9n13h77ahay1hvmg8abk2vvs7kn4y7xip9gi6ij8fv0a";
+      azure-mgmt-signalr = overrideAzureMgmtPackage super.azure-mgmt-signalr "0.4.0" "zip"
+        "09n12ligh301z4xwixl50n8f1rgd2k6lpsxqzr6n6jvgkpdds0v5";
 
-      azure-mgmt-sql = overrideAzureMgmtPackage super.azure-mgmt-sql "0.18.0" "zip"
-        "0i9lnhcx85xccddvz1wdz5j0idm6sw2cn3066dww5993nmg0ijlr";
+      azure-mgmt-sql = overrideAzureMgmtPackage super.azure-mgmt-sql "0.19.0" "zip"
+        "1iiqc0kh5hygcvr3x1653cpjnf5na3j11v137xa9xy65r7a4jik9";
 
       azure-mgmt-sqlvirtualmachine = overrideAzureMgmtPackage super.azure-mgmt-sqlvirtualmachine "0.5.0" "zip"
         "1b9am8raa17hxnz7d5pk2ix0309wsnhnchq1mi22icd728sl5adm";
 
+      azure-mgmt-synapse = overrideAzureMgmtPackage super.azure-mgmt-synapse "0.3.0" "zip"
+        "0sa12s5af9xl1wnblilswxc6ydr2anm9an000iz3ks54pydby2vy";
+
       azure-mgmt-datamigration = overrideAzureMgmtPackage super.azure-mgmt-datamigration "0.1.0" "zip"
         "1pq5rn32yvrf5kqjafnj0kc92gpfg435w2l0k7cm8gvlja4r4m77";
 
       azure-mgmt-relay = overrideAzureMgmtPackage super.azure-mgmt-relay "0.1.0" "zip"
         "1jss6qhvif8l5s0lblqw3qzijjf0h88agciiydaa7f4q577qgyfr";
 
-      azure-mgmt-eventhub = overrideAzureMgmtPackage super.azure-mgmt-eventhub "3.0.0" "zip"
-        "05c6isg13dslds94kv28v6navxj4bp4c5lsd9df0g3ndsxvpdrxp";
+      azure-mgmt-eventhub = overrideAzureMgmtPackage super.azure-mgmt-eventhub "4.0.0" "zip"
+        "1qisnwn0gqfsa3h5x0fdbsgdjwn92hdbg71gdijrja0kryb328k5";
 
-      azure-mgmt-keyvault = overrideAzureMgmtPackage super.azure-mgmt-keyvault "2.2.0" "zip"
-        "1r5ww9ndya6sifafrbp4cr5iyyaww2ns7wrbqm6hc6aqxcpf30qq";
+      azure-mgmt-keyvault = overrideAzureMgmtPackage super.azure-mgmt-keyvault "7.0.0b2" "zip"
+        "10kpfzgsyh648a9z194vysgfl5887qwwamyd1r32zfqi9fr4js5l";
 
-      azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "4.1.0rc1" "zip"
-        "00q5723gvc57kg2w1iyhfchp018skwd89ibrw23p7ngm2bb76g45";
+      azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "5.0.0" "zip"
+        "0y1bq6lirwx4n8zydi49jx72xfc7dppzhy82x22sx98id8lxgcwm";
 
-      azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "3.0.0rc12" "zip"
-        "0q7w26n53x0lvr1a944jjl9d0yn0l029brx5nzfrz7ydf3jpb2i2";
+      azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "3.0.0rc14" "zip"
+        "0w9hnxvk5pcsa21g3xrr089rfwgldghrbj8akzvh0gchqlzfjg6j";
 
-      azure-mgmt-monitor = overrideAzureMgmtPackage super.azure-mgmt-monitor "0.9.0" "zip"
-        "170jyr1qzwhv5ihyrsg5d8qzjylqmg31dscd31jzi4i7bwqf3sb8";
+      azure-mgmt-monitor = overrideAzureMgmtPackage super.azure-mgmt-monitor "0.11.0" "zip"
+        "05jhn66d4sl1qi6w34rqd8wl500jndismiwhdmzzmprdvn1zxqf6";
 
       azure-mgmt-advisor =  overrideAzureMgmtPackage super.azure-mgmt-advisor "2.0.1" "zip"
         "1wsfkprdrn22mwm24y2zlcms8ppp7jwq3s86r3ymbl29pbaxca8r";
@@ -250,14 +262,17 @@ let
       azure-mgmt-authorization = overrideAzureMgmtPackage super.azure-mgmt-authorization "0.52.0" "zip"
         "0357laxgldb7lvvws81r8xb6mrq9dwwnr1bnwdnyj4bw6p21i9hn";
 
-      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "9.0.0" "zip"
-        "198r51av2rd1mr3q9j8jibhd14w0v8k59ipc3czsm4g1n44adgkl";
+      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "11.1.0" "zip"
+        "073zybsxk70vg02bflbrx97pwzsxl0xyi48fpxp8dh3d3dy5h8zg";
 
       azure-mgmt-servicefabric = overrideAzureMgmtPackage super.azure-mgmt-servicefabric "0.4.0" "zip"
         "1x18grkjf2p2r1ihlwv607sna9yjvsr2jwnkjc55askrgrwx5jx2";
 
-      azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "1.4.0" "zip"
-        "0zmmfj7z1zrayjqwqybcn3bwm47d2ngyxm1g6fh2iw5c2f9czycv";
+      azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "1.7.0" "zip"
+        "004q3d2kj1i1cx3sad1544n3pkindfm255sw19gdlhbw61wn5l5a";
+
+      azure-multiapi-storage = overrideAzureMgmtPackage super.azure-multiapi-storage "0.4.1" "zip"
+        "0h7bzaqwyl3j9xqzjbnwxp59kmg6shxk76pml9kvvqbwsq9w6fx3";
 
       azure-graphrbac = super.azure-graphrbac.overrideAttrs(oldAttrs: rec {
         version = "0.60.0";
@@ -288,6 +303,26 @@ let
         };
       });
 
+      azure-synapse-accesscontrol = super.azure-synapse-accesscontrol.overrideAttrs(oldAttrs: rec {
+        version = "0.2.0";
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "1rsdqrhrgy09kbw6c7krb4hlaxs1ldb6lilwrbxgp3zqybxxnh5b";
+          extension = "zip";
+        };
+      });
+
+      azure-synapse-spark = super.azure-synapse-spark.overrideAttrs(oldAttrs: rec {
+        version = "0.2.0";
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "1qijqp6llshqas422lnqvpv45iv99n7f13v86znql40y3jp5n3ir";
+          extension = "zip";
+        };
+      });
+
       azure-keyvault = super.azure-keyvault.overrideAttrs(oldAttrs: rec {
         version = "1.1.0";
         src = super.fetchPypi {
@@ -322,13 +357,26 @@ let
         '';
       });
 
+      cryptography = super.cryptography.overridePythonAttrs(oldAttrs: rec {
+        version = "2.9.2";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "0af25w5mkd6vwns3r6ai1w5ip9xp0ms9s261zzssbpadzdr05hx0";
+        };
+
+        # prevent cycle with cryptography-vectors
+        doCheck = false;
+      });
+
       knack = super.knack.overridePythonAttrs(oldAttrs: rec {
-        version = "0.7.1";
+        version = "0.7.2";
 
         src = super.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
-          sha256 = "1z50vf0q7kzg3cq9cr24j43ri6wc76dhhklyc9lpvgjf2r061vzw";
+          sha256 = "1jh81xyri7wb7vqa049imf6dfy3nc501bq3p0miaka8ffvvaxinz";
         };
       });
 
@@ -342,6 +390,26 @@ let
         };
       });
 
+      msal-extensions = super.msal-extensions.overridePythonAttrs(oldAttrs: rec {
+        version = "0.1.3";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "1p05cbfksnhijx1il7s24js2ydzgxbpiasf607qdpb5sljlp3qar";
+        };
+      });
+
+      websocket_client = super.websocket_client.overridePythonAttrs(oldAttrs: rec {
+        version = "0.56.0";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "0fpxjyr74klnyis3yf6m54askl0h5dchxcwbfjsq92xng0455m8z";
+        };
+      });
+
     };
   };
 in
diff --git a/nixpkgs/pkgs/tools/admin/berglas/default.nix b/nixpkgs/pkgs/tools/admin/berglas/default.nix
index ecafb1397823..050ad9db75db 100644
--- a/nixpkgs/pkgs/tools/admin/berglas/default.nix
+++ b/nixpkgs/pkgs/tools/admin/berglas/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "A tool for managing secrets on Google Cloud";
     homepage = "https://github.com/GoogleCloudPlatform/berglas";
     license = licenses.asl20;
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/admin/certbot/0001-Don-t-use-distutils.StrictVersion-that-cannot-handle.patch b/nixpkgs/pkgs/tools/admin/certbot/0001-Don-t-use-distutils.StrictVersion-that-cannot-handle.patch
deleted file mode 100644
index 789efd185cae..000000000000
--- a/nixpkgs/pkgs/tools/admin/certbot/0001-Don-t-use-distutils.StrictVersion-that-cannot-handle.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 0de195de31dc311976af52a7c2b547bc23af2691 Mon Sep 17 00:00:00 2001
-From: Frederik Rietdijk <fridh@fridh.nl>
-Date: Sat, 14 Dec 2019 19:27:14 +0100
-Subject: [PATCH] Don't use distutils.StrictVersion that cannot handle certain
- versions
-
-```
-  File "setup.py", line 63, in <module>
-    if StrictVersion(setuptools_version) >= StrictVersion('36.2'):
-File
-"/nix/store/zdh16dcvjw99ybam59zd2ijb6bx138j0-python3-3.7.5/lib/python3.7/distutils/version.py",
-line 40, in __init__
-    self.parse(vstring)
-File
-"/nix/store/zdh16dcvjw99ybam59zd2ijb6bx138j0-python3-3.7.5/lib/python3.7/distutils/version.py",
-line 137, in parse
-    raise ValueError("invalid version number '%s'" % vstring)
-ValueError: invalid version number '41.4.0.post20191022'
-```
----
- certbot/setup.py | 15 +--------------
- 1 file changed, 1 insertion(+), 14 deletions(-)
-
-diff --git a/certbot/setup.py b/certbot/setup.py
-index d19327e5e..ac1524793 100644
---- a/certbot/setup.py
-+++ b/certbot/setup.py
-@@ -1,5 +1,4 @@
- import codecs
--from distutils.version import StrictVersion
- import os
- import re
- import sys
-@@ -58,20 +57,8 @@ install_requires = [
- 
- # Add pywin32 on Windows platforms to handle low-level system calls.
- # This dependency needs to be added using environment markers to avoid its installation on Linux.
--# However environment markers are supported only with setuptools >= 36.2.
--# So this dependency is not added for old Linux distributions with old setuptools,
--# in order to allow these systems to build certbot from sources.
- pywin32_req = 'pywin32>=227'  # do not forget to edit pywin32 dependency accordingly in windows-installer/construct.py
--if StrictVersion(setuptools_version) >= StrictVersion('36.2'):
--    install_requires.append(pywin32_req + " ; sys_platform == 'win32'")
--elif 'bdist_wheel' in sys.argv[1:]:
--    raise RuntimeError('Error, you are trying to build certbot wheels using an old version '
--                       'of setuptools. Version 36.2+ of setuptools is required.')
--elif os.name == 'nt':
--    # This branch exists to improve this package's behavior on Windows. Without
--    # it, if the sdist is installed on Windows with an old version of
--    # setuptools, pywin32 will not be specified as a dependency.
--    install_requires.append(pywin32_req)
-+install_requires.append(pywin32_req + " ; sys_platform == 'win32'")
- 
- dev_extras = [
-     'coverage',
--- 
-2.24.1
-
diff --git a/nixpkgs/pkgs/tools/admin/certigo/default.nix b/nixpkgs/pkgs/tools/admin/certigo/default.nix
index 86873d905149..e363df04556e 100644
--- a/nixpkgs/pkgs/tools/admin/certigo/default.nix
+++ b/nixpkgs/pkgs/tools/admin/certigo/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "1l6ajfl04rfbssvijgd5jrppmqc5svfrswdx01x007lr8rvdfd94";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "A utility to examine and validate certificates in a variety of formats";
     homepage = "https://github.com/square/certigo";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/admin/chamber/default.nix b/nixpkgs/pkgs/tools/admin/chamber/default.nix
new file mode 100644
index 000000000000..fb21bda41505
--- /dev/null
+++ b/nixpkgs/pkgs/tools/admin/chamber/default.nix
@@ -0,0 +1,28 @@
+{ buildGoModule, lib, fetchFromGitHub }:
+buildGoModule rec {
+  pname = "chamber";
+  version = "2.8.2";
+
+  src = fetchFromGitHub {
+    owner = "segmentio";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-7L9RaE4LvHRR6MUimze5QpbnfasWJdY4arfS/Usy2q0=";
+  };
+
+  vendorSha256 = null;
+
+  # set the version. see: chamber's Makefile
+  buildFlagsArray = ''
+    -ldflags=
+    -X main.Version=v${version}
+  '';
+
+  meta = with lib; {
+    description =
+      "Chamber is a tool for managing secrets by storing them in AWS SSM Parameter Store.";
+    homepage = "https://github.com/segmentio/chamber";
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalekseev ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/admin/clair/default.nix b/nixpkgs/pkgs/tools/admin/clair/default.nix
index 77e0638d0d3e..565196280ce0 100644
--- a/nixpkgs/pkgs/tools/admin/clair/default.nix
+++ b/nixpkgs/pkgs/tools/admin/clair/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0x31n50vd8660z816as6kms5dkv87b0mhblccpkvd9cbvcv2n37a";
 
+  doCheck = false;
+
   nativeBuildInputs = [ makeWrapper ];
 
   postInstall = ''
@@ -26,4 +28,4 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ marsam ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/admin/cli53/default.nix b/nixpkgs/pkgs/tools/admin/cli53/default.nix
index 0ba4593f6a56..4978603c1922 100644
--- a/nixpkgs/pkgs/tools/admin/cli53/default.nix
+++ b/nixpkgs/pkgs/tools/admin/cli53/default.nix
@@ -14,8 +14,6 @@ buildGoPackage {
     sha256 = "0bhczmzrgf7ypnhhzdrgnvg8cw8ch1x1d0cgajc5kklq9ixv9ygi";
   };
 
-  goDeps = ./deps.nix;
-
   meta = with lib; {
     description = "CLI tool for the Amazon Route 53 DNS service";
     homepage = "https://github.com/barnybug/cli53";
diff --git a/nixpkgs/pkgs/tools/admin/cli53/deps.nix b/nixpkgs/pkgs/tools/admin/cli53/deps.nix
deleted file mode 100644
index 4742bc00851b..000000000000
--- a/nixpkgs/pkgs/tools/admin/cli53/deps.nix
+++ /dev/null
@@ -1,93 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v2.0-dev
-[
-  {
-    goPackagePath = "github.com/aws/aws-sdk-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/aws/aws-sdk-go";
-      rev = "3e7014382cdc91695381614d0110a3cff997ba72";
-      sha256 = "1xnjhmb31k63k13aiiiispc7vkgnlxkbihslwwfsjc7b86vrllm5";
-    };
-  }
-  {
-    goPackagePath = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev = "346938d642f2ec3594ed81d874461961cd0faa76";
-      sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-ini/ini";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-ini/ini";
-      rev = "20b96f641a5ea98f2f8619ff4f3e061cff4833bd";
-      sha256 = "0mp18hlhnazg3sd02fhv88kbbipmhcrkb6n8imq8gk2dvmxk64ch";
-    };
-  }
-  {
-    goPackagePath = "github.com/gucumber/gucumber";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gucumber/gucumber";
-      rev = "71608e2f6e76fd4da5b09a376aeec7a5c0b5edbc";
-      sha256 = "1h1d9j515v1nyqsyb73v4ahlvm9n6z7hgl2ld8dryr4sw8q7ybw3";
-    };
-  }
-  {
-    goPackagePath = "github.com/jmespath/go-jmespath";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jmespath/go-jmespath";
-      rev = "0b12d6b5";
-      sha256 = "1vv6hph8j6xgv7gwl9vvhlsaaqsm22sxxqmgmldi4v11783pc1ld";
-    };
-  }
-  {
-    goPackagePath = "github.com/miekg/dns";
-    fetch = {
-      type = "git";
-      url = "https://github.com/miekg/dns";
-      rev = "e4205768578dc90c2669e75a2f8a8bf77e3083a4";
-      sha256 = "0247qcc9i41wrm73ivqs2wvy3vi3nb44m3nh27lnhd4a0ilir6wv";
-    };
-  }
-  {
-    goPackagePath = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev = "792786c7400a136282c1664665ae0a8db921c6c2";
-      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-    };
-  }
-  {
-    goPackagePath = "github.com/shiena/ansicolor";
-    fetch = {
-      type = "git";
-      url = "https://github.com/shiena/ansicolor";
-      rev = "a422bbe96644373c5753384a59d678f7d261ff10";
-      sha256 = "1dcn8a9z6a5dxa2m3fkppnajcls8lanbl38qggkf646yi5qsk1hc";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev = "12b6f73e6084dad08a7c6e575284b177ecafbc71";
-      sha256 = "01f80s0q64pw5drfgqwwk1wfwwkvd2lhbs56lhhkff4ni83k73fd";
-    };
-  }
-  {
-    goPackagePath = "github.com/urfave/cli";
-    fetch = {
-      type = "git";
-      url = "https://github.com/urfave/cli";
-      rev = "cfb38830724cc34fedffe9a2a29fb54fa9169cd1";
-      sha256 = "0y6f4sbzkiiwrxbl15biivj8c7qwxnvm3zl2dd3mw4wzg4x10ygj";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/tools/admin/docker-credential-gcr/default.nix b/nixpkgs/pkgs/tools/admin/docker-credential-gcr/default.nix
index 741d65259694..d45a57c32211 100644
--- a/nixpkgs/pkgs/tools/admin/docker-credential-gcr/default.nix
+++ b/nixpkgs/pkgs/tools/admin/docker-credential-gcr/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "docker-credential-gcr";
-  version = "2.0.1";
+  version = "2.0.2";
 
   goPackagePath = "github.com/GoogleCloudPlatform/docker-credential-gcr";
 
@@ -10,7 +10,7 @@ buildGoPackage rec {
     owner = "GoogleCloudPlatform";
     repo = "docker-credential-gcr";
     rev = "v${version}";
-    sha256 = "0zazbfjbwclkz848vsyb6zhn95gngwrdhivaiw0m9f8a9xm4bp9r";
+    sha256 = "0m7jx669yf27z2g9gw9vwncpwldrcb3ldlf1xhvbwbijnc2jk866";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/tools/admin/eksctl/default.nix b/nixpkgs/pkgs/tools/admin/eksctl/default.nix
index 4fce86557372..74cc3f3f1711 100644
--- a/nixpkgs/pkgs/tools/admin/eksctl/default.nix
+++ b/nixpkgs/pkgs/tools/admin/eksctl/default.nix
@@ -1,34 +1,41 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.21.0";
+  version = "0.27.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    sha256 = "0pfjv5m1fly7n9hmxy8bnpblfh5rzbjkiav3dczy4hkmq226gjsa";
+    sha256 = "1yclffhr76jd5rzqi37bpdj524lmywmgcfr9r0ahacfkp1hxdn3v";
   };
 
-  vendorSha256 = "09c3a5g27aqmy4ml42c6zwzrv8yas7i04w3j9jbvp90npwvc62cz";
+  vendorSha256 = "133g2d7l1szmpxjdg28yjm3pw6galwq8948rvalnh932kxngkxys";
+
+  doCheck = false;
 
   subPackages = [ "cmd/eksctl" ];
 
   buildFlags = [ "-tags netgo" "-tags release" ];
 
-  postInstall = ''
-    mkdir -p "$out/share/"{bash-completion/completions,zsh/site-functions}
+  buildFlagsArray = [
+    "-ldflags=-s -w -X github.com/weaveworks/eksctl/pkg/version.gitCommit=${src.rev} -X github.com/weaveworks/eksctl/pkg/version.buildDate=19700101-00:00:00"
+  ];
 
-    $out/bin/eksctl completion bash > "$out/share/bash-completion/completions/eksctl"
-    $out/bin/eksctl completion zsh > "$out/share/zsh/site-functions/_eksctl"
+  nativeBuildInputs = [ installShellFiles ];
+
+  postInstall = ''
+    for shell in bash fish zsh; do
+      $out/bin/eksctl completion $shell > eksctl.$shell
+      installShellCompletion eksctl.$shell
+    done
   '';
 
   meta = with lib; {
     description = "A CLI for Amazon EKS";
     homepage = "https://github.com/weaveworks/eksctl";
     license = licenses.asl20;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ xrelkd ];
+    maintainers = with maintainers; [ xrelkd Chili-Man ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix b/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
index a408746c7fd0..41fc026092db 100644
--- a/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/exoscale-cli/default.nix
@@ -1,18 +1,19 @@
-{ stdenv, buildGo114Package, fetchFromGitHub }:
+{ stdenv, buildGoPackage, fetchFromGitHub }:
 
-buildGo114Package rec {
+buildGoPackage rec {
   pname = "exoscale-cli";
-  version = "1.12.0";
+  version = "1.17.0";
 
   src = fetchFromGitHub {
     owner  = "exoscale";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "04ym7mfv565icj3lmd2nrvq9asawwmmzg09681pj9py61ws56bxr";
+    sha256 = "01bll978dis8pqvgrbigzgszkx3kjm6acrw44z6j7algw3an352r";
   };
 
   goPackagePath = "github.com/exoscale/cli";
-  goDeps = ./deps.nix;
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev}" ];
 
   # ensures only the cli binary is built and we don't clutter bin/ with submodules
   subPackages = [ "." ];
diff --git a/nixpkgs/pkgs/tools/admin/exoscale-cli/deps.nix b/nixpkgs/pkgs/tools/admin/exoscale-cli/deps.nix
deleted file mode 100644
index a67ee93a8514..000000000000
--- a/nixpkgs/pkgs/tools/admin/exoscale-cli/deps.nix
+++ /dev/null
@@ -1,876 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "v0.3.1";
-      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
-    };
-  }
-  {
-    goPackagePath = "github.com/VividCortex/ewma";
-    fetch = {
-      type = "git";
-      url = "https://github.com/VividCortex/ewma";
-      rev = "v1.1.1";
-      sha256 = "14v2dy5gqchjn7k0sd6cx59ms42v681r6xz7cb1kspp4b28a74rw";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/assert";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/assert";
-      rev = "405dbfeb8e38";
-      sha256 = "1l567pi17k593nrd1qlbmiq8z9jy3qs60px2a16fdpzjsizwqx8l";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/chroma";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/chroma";
-      rev = "v0.6.2";
-      sha256 = "1bcppy1s148iikr78qjm0akahn01ywh83a8pw544prr9yc16jvmz";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/colour";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/colour";
-      rev = "60882d9e2721";
-      sha256 = "0iq566534gbzkd16ixg7fk298wd766821vvs80838yifx9yml5vs";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/gometalinter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/gometalinter";
-      rev = "v2.0.11";
-      sha256 = "08p7bwvhpgizif8qi59m8mm3mcny70x9msbk8m8vjpphsq55wha4";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/kong";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/kong";
-      rev = "v0.1.15";
-      sha256 = "1llxabcdzlb2hard0h931knqkdnyjyz8dp3k0nli0m0mags7l31b";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/repr";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/repr";
-      rev = "117648cd9897";
-      sha256 = "05v1rgzdqc8razf702laagrvhvx68xd9yxxmzd3dyz0d6425pdrp";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev = "2efee857e7cf";
-      sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
-    };
-  }
-  {
-    goPackagePath = "github.com/armon/consul-api";
-    fetch = {
-      type = "git";
-      url = "https://github.com/armon/consul-api";
-      rev = "eb2c6b5be1b6";
-      sha256 = "1j6fdr1sg36qy4n4xjl7brq739fpm5npq98cmvklzjc9qrx98nk9";
-    };
-  }
-  {
-    goPackagePath = "github.com/blang/semver";
-    fetch = {
-      type = "git";
-      url = "https://github.com/blang/semver";
-      rev = "v3.5.1";
-      sha256 = "13ws259bwcibkclbr82ilhk6zadm63kxklxhk12wayklj8ghhsmy";
-    };
-  }
-  {
-    goPackagePath = "github.com/cenkalti/backoff";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cenkalti/backoff";
-      rev = "v2.0.0";
-      sha256 = "0k4899ifpir6kmfxli8a2xfj5zdh0xb2jd0fq2r38wzd4pk25ipr";
-    };
-  }
-  {
-    goPackagePath = "github.com/chzyer/logex";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/logex";
-      rev = "v1.1.10";
-      sha256 = "08pbjj3wx9acavlwyr055isa8a5hnmllgdv5k6ra60l5y1brmlq4";
-    };
-  }
-  {
-    goPackagePath = "github.com/chzyer/readline";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/readline";
-      rev = "2972be24d48e";
-      sha256 = "104q8dazj8yf6b089jjr82fy9h1g80zyyzvp3g8b44a7d8ngjj6r";
-    };
-  }
-  {
-    goPackagePath = "github.com/chzyer/test";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/test";
-      rev = "a1ea475d72b1";
-      sha256 = "0rns2aqk22i9xsgyap0pq8wi4cfaxsri4d9q6xxhhyma8jjsnj2k";
-    };
-  }
-  {
-    goPackagePath = "github.com/client9/misspell";
-    fetch = {
-      type = "git";
-      url = "https://github.com/client9/misspell";
-      rev = "v0.3.4";
-      sha256 = "1vwf33wsc4la25zk9nylpbp9px3svlmldkm0bha4hp56jws4q9cs";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/etcd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/etcd";
-      rev = "v3.3.10";
-      sha256 = "1x2ii1hj8jraba8rbxz6dmc03y3sjxdnzipdvg6fywnlq1f3l3wl";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/go-etcd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/go-etcd";
-      rev = "v2.0.0";
-      sha256 = "1xb34hzaa1lkbq5vkzy9vcz6gqwj7hp6cdbvyack2bf28dwn33jj";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/go-semver";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/go-semver";
-      rev = "v0.2.0";
-      sha256 = "1gghi5bnqj50hfxhqc1cxmynqmh2yk9ii7ab9gsm75y5cp94ymk0";
-    };
-  }
-  {
-    goPackagePath = "github.com/cpuguy83/go-md2man";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cpuguy83/go-md2man";
-      rev = "v1.0.8";
-      sha256 = "1w22dfdamsq63b5rvalh9k2y7rbwfkkjs7vm9vd4a13h2ql70lg2";
-    };
-  }
-  {
-    goPackagePath = "github.com/cyberdelia/templates";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cyberdelia/templates";
-      rev = "ca7fffd4298c";
-      sha256 = "1miakwci9pz95p0jps4i3pyv5ws713ks1wwir5bzrl0yg8klrgw1";
-    };
-  }
-  {
-    goPackagePath = "github.com/danwakefield/fnmatch";
-    fetch = {
-      type = "git";
-      url = "https://github.com/danwakefield/fnmatch";
-      rev = "cbb64ac3d964";
-      sha256 = "0cbf511ppsa6hf59mdl7nbyn2b2n71y0bpkzbmfkdqjhanqh1lqz";
-    };
-  }
-  {
-    goPackagePath = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev = "v1.1.1";
-      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
-    };
-  }
-  {
-    goPackagePath = "github.com/deepmap/oapi-codegen";
-    fetch = {
-      type = "git";
-      url = "https://github.com/deepmap/oapi-codegen";
-      rev = "ee90a3f9f1ae";
-      sha256 = "199nb6aqhllkk891x24h1jffin1x9fx8jdsav9pbc2ki0z8mlji3";
-    };
-  }
-  {
-    goPackagePath = "github.com/dgrijalva/jwt-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgrijalva/jwt-go";
-      rev = "v3.2.0";
-      sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp";
-    };
-  }
-  {
-    goPackagePath = "github.com/dlclark/regexp2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dlclark/regexp2";
-      rev = "v1.1.6";
-      sha256 = "144s81ndviwhyy20ipxvvfvap8phv5p762glxrz6aqxprkxfarj5";
-    };
-  }
-  {
-    goPackagePath = "github.com/dustin/go-humanize";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dustin/go-humanize";
-      rev = "v1.0.0";
-      sha256 = "1kqf1kavdyvjk7f8kx62pnm7fbypn9z1vbf8v2qdh3y7z7a0cbl3";
-    };
-  }
-  {
-    goPackagePath = "github.com/exoscale/egoscale";
-    fetch = {
-      type = "git";
-      url = "https://github.com/exoscale/egoscale";
-      rev = "v0.24.0";
-      sha256 = "1ls7blpmhwqxz9cfjc5799q4047pawfda1v1mhyicjdlp3b1z1zi";
-    };
-  }
-  {
-    goPackagePath = "github.com/fatih/camelcase";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fatih/camelcase";
-      rev = "v1.0.0";
-      sha256 = "0z7rw6f5j97dkzqya257dqlxf3cm8zl508081gmnr4bsjhkwpz2l";
-    };
-  }
-  {
-    goPackagePath = "github.com/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath = "github.com/getkin/kin-openapi";
-    fetch = {
-      type = "git";
-      url = "https://github.com/getkin/kin-openapi";
-      rev = "v0.2.0";
-      sha256 = "0slv4k55yiqgv5cv51mvfdcckl95wsbvhvrrpmh4wf7q9rk0jkf6";
-    };
-  }
-  {
-    goPackagePath = "github.com/ghodss/yaml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ghodss/yaml";
-      rev = "v1.0.0";
-      sha256 = "0skwmimpy7hlh7pva2slpcplnm912rp3igs98xnqmn859kwa5v8g";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-chi/chi";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-chi/chi";
-      rev = "v4.0.2";
-      sha256 = "1ay9yxzj60l21h4wayrq9sv5ajaqaryy5yyf27z7v2k4a83b5qr6";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-ini/ini";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-ini/ini";
-      rev = "v1.42.0";
-      sha256 = "18ywm8zyv091j1pp5mvx8szl7928chk8lw02br6jy568d7rk4xal";
-    };
-  }
-  {
-    goPackagePath = "github.com/gofrs/uuid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gofrs/uuid";
-      rev = "v3.2.0";
-      sha256 = "1q63mp7bznhfgyw133c0wc0hpcj1cq9bcf7w1f8r6inkcrils1fz";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/lint";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/lint";
-      rev = "c67002cb31c3";
-      sha256 = "0gymbggskjmphqxqcx4s0vnlcz7mygbix0vhwcwv5r67c0bf6765";
-    };
-  }
-  {
-    goPackagePath = "github.com/golangci/lint-1";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golangci/lint-1";
-      rev = "d2cdd8c08219";
-      sha256 = "0viib12a61338411ng4nnd4na4fscsknghk397jdfn00sigyy4ls";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/shlex";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/shlex";
-      rev = "c34317bd91bf";
-      sha256 = "00qivza4hkllfkar2vpqmyxybi0fwqipgijv61dgapq4xddxdq0r";
-    };
-  }
-  {
-    goPackagePath = "github.com/gopherjs/gopherjs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gopherjs/gopherjs";
-      rev = "d547d1d9531e";
-      sha256 = "0rhgxfh8b3qq4imkw6dmv0hxsmflm9pkax8i7a9z8q464z1ixrz7";
-    };
-  }
-  {
-    goPackagePath = "github.com/gordonklaus/ineffassign";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gordonklaus/ineffassign";
-      rev = "1003c8bd00dc";
-      sha256 = "1rkzqvd3z03vq8q8qi9cghvgggsf02ammj9wq8jvpnx6b2sd16nd";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/hcl";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/hcl";
-      rev = "v1.0.0";
-      sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66";
-    };
-  }
-  {
-    goPackagePath = "github.com/inconshreveable/mousetrap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/inconshreveable/mousetrap";
-      rev = "v1.0.0";
-      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
-    };
-  }
-  {
-    goPackagePath = "github.com/jtolds/gls";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jtolds/gls";
-      rev = "v4.20.0";
-      sha256 = "1k7xd2q2ysv2xsh373qs801v6f359240kx0vrl0ydh7731lngvk6";
-    };
-  }
-  {
-    goPackagePath = "github.com/juju/ansiterm";
-    fetch = {
-      type = "git";
-      url = "https://github.com/juju/ansiterm";
-      rev = "720a0952cc2a";
-      sha256 = "0n6j0y7xhashp8gdkdl0r7vlbkdrkymrzxn9hxrx522k2isggs7h";
-    };
-  }
-  {
-    goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
-    fetch = {
-      type = "git";
-      url = "https://github.com/konsorten/go-windows-terminal-sequences";
-      rev = "v1.0.1";
-      sha256 = "1lchgf27n276vma6iyxa0v1xds68n2g8lih5lavqnx5x6q5pw2ip";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pretty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pretty";
-      rev = "v0.1.0";
-      sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pty";
-      rev = "v1.1.1";
-      sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/text";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/text";
-      rev = "v0.1.0";
-      sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1";
-    };
-  }
-  {
-    goPackagePath = "github.com/labstack/echo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/labstack/echo";
-      rev = "v4.1.11";
-      sha256 = "0b14vgwzznn7wzyjb98xdmq4wjg16l3y62njiwfz4qsm4pwzk405";
-    };
-  }
-  {
-    goPackagePath = "github.com/labstack/gommon";
-    fetch = {
-      type = "git";
-      url = "https://github.com/labstack/gommon";
-      rev = "v0.3.0";
-      sha256 = "18z7akyzm75p6anm4b8qkqgm4iivx50z07hi5wf50w1pbsvbcdi0";
-    };
-  }
-  {
-    goPackagePath = "github.com/lunixbochs/vtclean";
-    fetch = {
-      type = "git";
-      url = "https://github.com/lunixbochs/vtclean";
-      rev = "2d01aacdc34a";
-      sha256 = "1ss88dyx5hr4imvpg5lixvp0cf7c2qm4x9m8mdgshjpm92g5rqmf";
-    };
-  }
-  {
-    goPackagePath = "github.com/magiconair/properties";
-    fetch = {
-      type = "git";
-      url = "https://github.com/magiconair/properties";
-      rev = "v1.8.0";
-      sha256 = "1a10362wv8a8qwb818wygn2z48lgzch940hvpv81hv8gc747ajxn";
-    };
-  }
-  {
-    goPackagePath = "github.com/manifoldco/promptui";
-    fetch = {
-      type = "git";
-      url = "https://github.com/manifoldco/promptui";
-      rev = "v0.3.2";
-      sha256 = "185h0lqm14l9j0yvdsn9njq7jw3j6x3l21jvvczzbcbbrj44q0pl";
-    };
-  }
-  {
-    goPackagePath = "github.com/matryer/moq";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matryer/moq";
-      rev = "6cfb0558e1bd";
-      sha256 = "0x7ss68cvq2aljyw4765iy7divmp8rghpyzlas3nb95qzsfmmpzl";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-colorable";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-colorable";
-      rev = "v0.1.4";
-      sha256 = "1yxcz08kminqr1221zxpibnbzfcgs3fafin0z9zqb3gqvf74jywz";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-isatty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-isatty";
-      rev = "v0.0.10";
-      sha256 = "0jf4hwfwd2cpxrlyv0jzcia809q2bjw7y1m3ciaj2s8lj2jqyf6r";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-runewidth";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-runewidth";
-      rev = "v0.0.3";
-      sha256 = "0lc39b6xrxv7h3v3y1kgz49cgi5qxwlygs715aam6ba35m48yi7g";
-    };
-  }
-  {
-    goPackagePath = "github.com/minio/minio-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/minio/minio-go";
-      rev = "v6.0.44";
-      sha256 = "0sfmd2lf24f7ds16imk63mas6izhjnmprbxad0sil9abvk8r23mk";
-    };
-  }
-  {
-    goPackagePath = "github.com/minio/sha256-simd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/minio/sha256-simd";
-      rev = "v0.1.1";
-      sha256 = "1j0iqsckm97g4l79vd4mc7apbmkdar23jpzqpnpdhwpfd834j8lp";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/go-homedir";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/go-homedir";
-      rev = "v1.1.0";
-      sha256 = "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/mapstructure";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/mapstructure";
-      rev = "v1.1.2";
-      sha256 = "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr";
-    };
-  }
-  {
-    goPackagePath = "github.com/nicksnyder/go-i18n";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nicksnyder/go-i18n";
-      rev = "v1.10.0";
-      sha256 = "1nlvq85c232z5yjs86pxpmkv7hk6gb5pa6j4hhzgdz85adk2ma04";
-    };
-  }
-  {
-    goPackagePath = "github.com/olekukonko/tablewriter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/olekukonko/tablewriter";
-      rev = "be2c049b30cc";
-      sha256 = "1fr996vpmh6v5q13kfgf0fbi0hksxqg0fnbvj2nqhlsyfp5s8f4w";
-    };
-  }
-  {
-    goPackagePath = "github.com/pelletier/go-toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pelletier/go-toml";
-      rev = "v1.2.0";
-      sha256 = "1fjzpcjng60mc3a4b2ql5a00d5gah84wj740dabv9kq67mpg8fxy";
-    };
-  }
-  {
-    goPackagePath = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev = "v0.9.1";
-      sha256 = "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq";
-    };
-  }
-  {
-    goPackagePath = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev = "v1.0.0";
-      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-    };
-  }
-  {
-    goPackagePath = "github.com/russross/blackfriday";
-    fetch = {
-      type = "git";
-      url = "https://github.com/russross/blackfriday";
-      rev = "v1.5.2";
-      sha256 = "0jzbfzcywqcrnym4gxlz6nphmm1grg6wsl4f0r9x384rn83wkj7c";
-    };
-  }
-  {
-    goPackagePath = "github.com/sergi/go-diff";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sergi/go-diff";
-      rev = "v1.0.0";
-      sha256 = "0swiazj8wphs2zmk1qgq75xza6m19snif94h2m6fi8dqkwqdl7c7";
-    };
-  }
-  {
-    goPackagePath = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev = "v1.4.2";
-      sha256 = "087k2lxrr9p9dh68yw71d05h5g9p5v26zbwd6j7lghinjfaw334x";
-    };
-  }
-  {
-    goPackagePath = "github.com/smartystreets/assertions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smartystreets/assertions";
-      rev = "b2de0cb4f26d";
-      sha256 = "1i7ldgavgl35c7gk25p7bvdr282ckng090zr4ch9mk1705akx09y";
-    };
-  }
-  {
-    goPackagePath = "github.com/smartystreets/goconvey";
-    fetch = {
-      type = "git";
-      url = "https://github.com/smartystreets/goconvey";
-      rev = "68dc04aab96a";
-      sha256 = "1kas5v95fzhr88hg4rjy0vp03y4pzvy3pwwgkfz2yhn5nlj29nk6";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/afero";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/afero";
-      rev = "v1.1.2";
-      sha256 = "0miv4faf5ihjfifb1zv6aia6f6ik7h1s4954kcb8n6ixzhx9ck6k";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/cast";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cast";
-      rev = "v1.3.0";
-      sha256 = "0xq1ffqj8y8h7dcnm0m9lfrh0ga7pssnn2c1dnr09chqbpn4bdc5";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/cobra";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cobra";
-      rev = "v0.0.3";
-      sha256 = "1q1nsx05svyv9fv3fy6xv6gs9ffimkyzsfm49flvl3wnvf1ncrkd";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/jwalterweatherman";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/jwalterweatherman";
-      rev = "v1.0.0";
-      sha256 = "093fmmvavv84pv4q84hav7ph3fmrq87bvspjj899q0qsx37yvdr8";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/pflag";
-      rev = "v1.0.3";
-      sha256 = "1cj3cjm7d3zk0mf1xdybh0jywkbbw7a6yr3y22x9sis31scprswd";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/viper";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/viper";
-      rev = "v1.3.1";
-      sha256 = "1190mg04718r03qriav99sf4kx2n7wdgr8vdni15f74bpbzrdjrl";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/objx";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/objx";
-      rev = "v0.1.1";
-      sha256 = "0iph0qmpyqg4kwv8jsx6a56a7hhqq8swrazv40ycxk9rzr0s8yls";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev = "v1.4.0";
-      sha256 = "187i5g88sxfy4vxpm7dw1gwv29pa2qaq475lxrdh5livh69wqfjb";
-    };
-  }
-  {
-    goPackagePath = "github.com/tsenart/deadcode";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tsenart/deadcode";
-      rev = "210d2dc333e9";
-      sha256 = "05kif593f4wygnrq2fdjhn7kkcpdmgjnykcila85d0gqlb1f36g0";
-    };
-  }
-  {
-    goPackagePath = "github.com/ugorji/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ugorji/go";
-      rev = "d75b2dcb6bc8";
-      sha256 = "0di1k35gpq9bp958ywranpbskx2vdwlb38s22vl9rybm3wa5g3ps";
-    };
-  }
-  {
-    goPackagePath = "github.com/valyala/bytebufferpool";
-    fetch = {
-      type = "git";
-      url = "https://github.com/valyala/bytebufferpool";
-      rev = "v1.0.0";
-      sha256 = "01lqzjddq6kz9v41nkky7wbgk7f1cw036sa7ldz10d82g5klzl93";
-    };
-  }
-  {
-    goPackagePath = "github.com/valyala/fasttemplate";
-    fetch = {
-      type = "git";
-      url = "https://github.com/valyala/fasttemplate";
-      rev = "v1.1.0";
-      sha256 = "089wm839lqmw9knr3ifbi82iykaybk0zxzp3c02lsh31wax4f8a2";
-    };
-  }
-  {
-    goPackagePath = "github.com/vbauerster/mpb";
-    fetch = {
-      type = "git";
-      url = "https://github.com/vbauerster/mpb";
-      rev = "v4.8.4";
-      sha256 = "0ifz1hp1a5xjxx7x9km5pb0x6p60lcpzwmhnxlg5x4ls6hrs8wd9";
-    };
-  }
-  {
-    goPackagePath = "github.com/xordataexchange/crypt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/xordataexchange/crypt";
-      rev = "b2862e3d0a77";
-      sha256 = "04q3856anpzl4gdfgmg7pbp9cx231nkz3ymq2xp27rnmmwhfxr8y";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "e1110fd1c708";
-      sha256 = "0n5n7dzlr87mvk3mbcx400al4pa1i85jbbdhbx4s1rhr0rs3kh9a";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/lint";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/lint";
-      rev = "c67002cb31c3";
-      sha256 = "0gymbggskjmphqxqcx4s0vnlcz7mygbix0vhwcwv5r67c0bf6765";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "2180aed22343";
-      sha256 = "0hl3pgi8rzij5m6alq4xqfvyvidy7jnf5y85031jv4y1bj85r6pl";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "112230192c58";
-      sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "52ab43148777";
-      sha256 = "1kakxbqrb1w2vwg7r1896z68qcx2lfvimsl8cs2niiipbgpi6imx";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "v0.3.2";
-      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "a911d9008d1f";
-      sha256 = "118vsliq2a9xfp6rckc310mf9lydfgah6hgiggd88cm3zch4626m";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/xerrors";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/xerrors";
-      rev = "a985d3407aa7";
-      sha256 = "00wzr5w8aadipgc3rkk8f11i41znskfj9ix5nhhaxyg7isrslgcj";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v3-unstable";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v3-unstable";
-      rev = "df19058c872c";
-      sha256 = "0nb6925fixs6brdwpmwi32b38acn1s8dv4g0syjy3kpq0wasljy9";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "788fd7840127";
-      sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/ini.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/ini.v1";
-      rev = "v1.42.0";
-      sha256 = "18ywm8zyv091j1pp5mvx8szl7928chk8lw02br6jy568d7rk4xal";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.5";
-      sha256 = "08smz8dfyxp02ha74my9iszqa5qzgl3ksi28ilyp8lqipssiq6fg";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix
index fb7870eac956..5a51ace3b986 100644
--- a/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/nixpkgs/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -21,20 +21,18 @@ let
   sources = name: system: {
     x86_64-darwin = {
       url = "${baseUrl}/${name}-darwin-x86_64.tar.gz";
-      sha256 = "0v83faz0jwnx603acmkc3bsl7vg2xxsm1jfw88fmnj6zcsa5b9ql";
+      sha256 = "1l2r9pgyzih7xgrr2ygm0mcl97kyp1wfvybwhbn1i0kbb72nagk1";
     };
 
     x86_64-linux = {
       url = "${baseUrl}/${name}-linux-x86_64.tar.gz";
-      sha256 = "1z9liqzgwfavh3m3q1s871gxnwnsxdbny2vqzh9sjlwdk26f76gi";
+      sha256 = "1qbkdfa7dzysp7crv9ph476hbabl3qiszs067f20dadqssqs1v4r";
     };
   }.${system};
 
-  strip = if stdenv.isDarwin then "strip -x" else "strip";
-
 in stdenv.mkDerivation rec {
   pname = "google-cloud-sdk";
-  version = "286.0.0";
+  version = "306.0.0";
 
   src = fetchurl (sources "${pname}-${version}" stdenv.hostPlatform.system);
 
@@ -93,9 +91,6 @@ in stdenv.mkDerivation rec {
       jq -c . $path > $path.min
       mv $path.min $path
     done
-
-    # strip the Cython gRPC library
-    ${strip} $out/google-cloud-sdk/lib/third_party/grpc/_cython/cygrpc.so
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/tools/admin/iamy/default.nix b/nixpkgs/pkgs/tools/admin/iamy/default.nix
index 8e79959ba373..1a668777e2e6 100644
--- a/nixpkgs/pkgs/tools/admin/iamy/default.nix
+++ b/nixpkgs/pkgs/tools/admin/iamy/default.nix
@@ -4,8 +4,6 @@ buildGoModule rec {
   pname = "iamy";
   version = "2.3.2";
 
-  goPackagePath = "github.com/99designs/iamy";
-
   src = fetchFromGitHub {
     owner = "99designs";
     repo = "iamy";
@@ -15,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "0c4g1zr0wl118g41hqri0vwvfin39yvgs214w3spw8ggjcj6bzph";
 
+  doCheck = false;
+
   buildFlagsArray = [''-ldflags=
     -X main.Version=v${version} -s -w
   ''];
@@ -25,4 +25,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ suvash ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/admin/lego/default.nix b/nixpkgs/pkgs/tools/admin/lego/default.nix
index fff8e39aa114..18ec4ba4636e 100644
--- a/nixpkgs/pkgs/tools/admin/lego/default.nix
+++ b/nixpkgs/pkgs/tools/admin/lego/default.nix
@@ -1,17 +1,20 @@
-{ lib, fetchFromGitHub, buildGoModule }:
+{ lib, fetchFromGitHub, buildGoModule, nixosTests }:
 
 buildGoModule rec {
   pname = "lego";
-  version = "3.7.0";
+  version = "4.0.1";
 
   src = fetchFromGitHub {
     owner = "go-acme";
     repo = pname;
     rev = "v${version}";
-    sha256 = "03824c5nfii7cc6mr1hdkyd4jjy8vpn08lnj4c6pc61s3i6gacc6";
+    sha256 = "1s3sh4n12g7ylkpmxqjcpdw3gqhdjbh9r09h2rsrm30xr4qaqpng";
   };
 
-  vendorSha256 = "14453iiya6algkympyvwm03qgjcwk79z8bbrij7qhnp52qfrbmrp";
+  vendorSha256 = "0p2pibid2d761whfk7zgq230lyqi2f0wmfvxqkjzrd1sba40r9bp";
+
+  doCheck = false;
+
   subPackages = [ "cmd/lego" ];
 
   buildFlagsArray = [
@@ -24,4 +27,6 @@ buildGoModule rec {
     homepage = "https://go-acme.github.io/lego/";
     maintainers = teams.acme.members;
   };
+
+  passthru.tests.lego = nixosTests.acme;
 }
diff --git a/nixpkgs/pkgs/tools/admin/lexicon/default.nix b/nixpkgs/pkgs/tools/admin/lexicon/default.nix
index de967578d5c9..3af266c81753 100644
--- a/nixpkgs/pkgs/tools/admin/lexicon/default.nix
+++ b/nixpkgs/pkgs/tools/admin/lexicon/default.nix
@@ -5,7 +5,7 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "lexicon";
-  version = "3.3.22";
+  version = "3.3.27";
 
   propagatedBuildInputs = with python3Packages; [ requests tldextract future cryptography pyyaml boto3 zeep xmltodict beautifulsoup4 dnspython pynamecheap softlayer transip localzone ];
 
@@ -19,7 +19,7 @@ python3Packages.buildPythonApplication rec {
     owner = "AnalogJ";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1adwqglh3lrx04y0f6slp1l97xzbsqgw0v5i4jll3a54aqyzfz0a";
+    sha256 = "0i6grrpdwh7axhnsabb0pfjhpd3prc9ji1afivi7q3c0krgvncmc";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/admin/lxd/default.nix b/nixpkgs/pkgs/tools/admin/lxd/default.nix
index 562149414b3d..3d62e39c6ed3 100644
--- a/nixpkgs/pkgs/tools/admin/lxd/default.nix
+++ b/nixpkgs/pkgs/tools/admin/lxd/default.nix
@@ -18,13 +18,13 @@ let
 in
 buildGoPackage rec {
   pname = "lxd";
-  version = "4.2";
+  version = "4.6";
 
   goPackagePath = "github.com/lxc/lxd";
 
   src = fetchurl {
     url = "https://github.com/lxc/lxd/releases/download/${pname}-${version}/${pname}-${version}.tar.gz";
-    sha256 = "0pv84ywnigrp94kh54fz689i15yv01lhrnkxpk8dg9wypxara9m4";
+    sha256 = "011fsyafmpis6j0aq7vwd56m2mcb9v3rn4f246ms5nx6zgmga0ip";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/admin/mycli/default.nix b/nixpkgs/pkgs/tools/admin/mycli/default.nix
index 42c790d1adaa..4745d065be93 100644
--- a/nixpkgs/pkgs/tools/admin/mycli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/mycli/default.nix
@@ -7,11 +7,11 @@ with python3.pkgs;
 
 buildPythonApplication rec {
   pname = "mycli";
-  version = "1.20.1";
+  version = "1.22.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0vhwaqkx4njarm0wy8zg2hvzr2yl92y8gnwipcn7p59sazw4whfl";
+    sha256 = "1lq2x95553vdmhw13cxcgsd2g2i32izhsb7hxd4m1iwf9b3msbpv";
   };
 
   propagatedBuildInputs = [
@@ -24,7 +24,8 @@ buildPythonApplication rec {
     export HOME=.
     export LC_ALL="en_US.UTF-8"
 
-    py.test
+    py.test \
+      --ignore=mycli/packages/paramiko_stub/__init__.py
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix b/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix
index a4d201fd4c4c..4657c64d3307 100644
--- a/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix
+++ b/nixpkgs/pkgs/tools/admin/nomachine-client/default.nix
@@ -1,8 +1,8 @@
 { stdenv, file, fetchurl, makeWrapper,
   autoPatchelfHook, jsoncpp, libpulseaudio }:
 let
-  versionMajor = "6.10";
-  versionMinor = "12";
+  versionMajor = "6.11";
+  versionMinor = "2";
   versionBuild_x86_64 = "1";
   versionBuild_i686 = "1";
 in
@@ -17,7 +17,7 @@ in
             "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_x86_64}_x86_64.tar.gz"
             "https://web.archive.org/web/https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_x86_64}_x86_64.tar.gz"
           ];
-          sha256 = "17yb377ry7i7cmkb72xmhyqkfggv1ygqlz55ymvmrs7psbh7ql01";
+          sha256 = "1b6r9bwkr8mhaljma19ikxpkmlx8iy5r1vf5hlv27bja2zz1r8xr";
         }
       else if stdenv.hostPlatform.system == "i686-linux" then
         fetchurl {
@@ -25,7 +25,7 @@ in
             "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_i686}_i686.tar.gz"
             "https://web.archive.org/web/https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_i686}_i686.tar.gz"
           ];
-          sha256 = "0k6dspmwdkm0zf0c2zqlqy0jya8qgsg90wwv9wa12fn4chp66gqg";
+          sha256 = "0dl138ry9n1qh651zh0zvp88qhgxrs2kvvnq329jw0py5v70b9pm";
         }
       else
         throw "NoMachine client is not supported on ${stdenv.hostPlatform.system}";
diff --git a/nixpkgs/pkgs/tools/admin/procs/default.nix b/nixpkgs/pkgs/tools/admin/procs/default.nix
index 5bfbb6d8c64d..54bdf238e3f2 100644
--- a/nixpkgs/pkgs/tools/admin/procs/default.nix
+++ b/nixpkgs/pkgs/tools/admin/procs/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "procs";
-  version = "0.10.3";
+  version = "0.10.4";
 
   src = fetchFromGitHub {
     owner = "dalance";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0lg4v32jx0fxcjz6cj6cxxlg7rhj75k4p75izpkk4l11xpxqhgjm";
+    sha256 = "1a28kkxcrdfmrq2mmsfkdxfp3msklwga5nbfhjb7a7s64xh8jmjv";
   };
 
-  cargoSha256 = "05qqy6l28ihn7hykkkh1x7z3q58cdrwv76fc22xjcg20985ac2nx";
+  cargoSha256 = "1xlxjr0pkwlzm7f5xlrsf76in28r9jj41n6gn44vxqbh4x161gs1";
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
diff --git a/nixpkgs/pkgs/tools/admin/pulumi/data.nix b/nixpkgs/pkgs/tools/admin/pulumi/data.nix
index cad7b97fd37d..7d2523b4073d 100644
--- a/nixpkgs/pkgs/tools/admin/pulumi/data.nix
+++ b/nixpkgs/pkgs/tools/admin/pulumi/data.nix
@@ -1,50 +1,178 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "2.1.0";
+  version = "2.10.2";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v2.1.0-linux-x64.tar.gz";
-        sha256 = "0d9bmljgf62dhj1z8h71c2pj2cbvf4ghhlbbbh2jcg55i33ks8ih";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v2.10.2-linux-x64.tar.gz";
+        sha256 = "0pxm90vmha265zc4b1ip2f3iryslkwxznn4kb8l3ma6gibz1zav3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v2.1.0-linux-amd64.tar.gz";
-        sha256 = "1kf43j1b4wp39sny92dnsy1myn6wb2msli1ydds3yza81srgcfnh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v1.1.0-linux-amd64.tar.gz";
+        sha256 = "1l4kszzw1w862sfd4jnz66lwnp02p4kl1fwvj5ab81qfwzwg0cfx";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v3.3.0-linux-amd64.tar.gz";
-        sha256 = "17anj9pc90hhiknyf2yab7dzvcfbjn1803bl6ld26r701w3h1jqx";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v3.4.0-linux-amd64.tar.gz";
+        sha256 = "1gzjdafx5zsqrb5r3amskak51ajcpqbbfw45939jdsdll8vclw7g";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v2.0.0-linux-amd64.tar.gz";
-        sha256 = "0526a4ll1q9v566i313223pnx2pa3qkcjp01l49h5jmgn8qpw1fn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v2.6.0-linux-amd64.tar.gz";
+        sha256 = "0myvx2glqnx29l4wd5vx4gm773zrcmwcjvs2b1yv63fl10md9sv7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v2.2.0-linux-amd64.tar.gz";
-        sha256 = "14ya2sax2yyza3zbxp5a638y81pcbi26hv8k9y8agnjn82bgx8dy";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v2.5.0-linux-amd64.tar.gz";
+        sha256 = "12cajd8jiqy11s880vsv20gqfm44g160x7fxm93agjl7wng32ad6";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v2.8.0-linux-amd64.tar.gz";
+        sha256 = "0k429fh477f84kmnhyl5s9p0yym7d6sdq7hy7wqx6psxp4rf5h9x";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v2.8.0-linux-amd64.tar.gz";
+        sha256 = "045z7qj23bq71nxfjk1vvnfbjcnqfkcbxbpjz72q0hw4xn7dq6jz";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v2.3.0-linux-amd64.tar.gz";
+        sha256 = "16d0jd3429pr4vlrzrv32w2fa53j7gyqq5lc78gw9j4v3mc3scvz";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v3.25.0-linux-amd64.tar.gz";
+        sha256 = "0gz4kpddaf9p25lfnp70p6197wrfgsiys7s4vdy75z8dyd4sbiv0";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v2.0.0-linux-amd64.tar.gz";
+        sha256 = "0n2532gfb5i53raya07rn8wcp15rc07jfg8wsm2lfzj7a4mp2p6c";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v2.6.0-linux-amd64.tar.gz";
+        sha256 = "16l1a30rkg9l6yh68qv61dgm3h3gdgpsdacvnfg1ra0fvvfs9477";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v0.2.0-linux-amd64.tar.gz";
+        sha256 = "1m2w8gsksr36pprxr6v3v4y3n7x5ycbcdfywv67yxmbi4lxyy3ar";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v2.6.1-linux-amd64.tar.gz";
+        sha256 = "01vnbgck1ffj4jg8ghmkjp63xq3r9q3459vy03xpzm14l1i6agwv";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v2.2.0-linux-amd64.tar.gz";
+        sha256 = "1g05kqymbkrxf48iskn9w12kxy880allhqm9a7p4g7mx0174yfhm";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v2.2.1-linux-amd64.tar.gz";
+        sha256 = "1fa5i283nisa6cq02fcrsgwkw7bwnh2j3agjbqyvv2xiss34i7hw";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v2.6.0-linux-amd64.tar.gz";
+        sha256 = "0ihiag248c30dz4z2b559689zqwp52p0m7pv7jqpk86xwvimbsn1";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-packet-v3.1.0-linux-amd64.tar.gz";
+        sha256 = "0jwvdsb26bhsqcbrsw9ss54xgpccl830hhbwnbz8ql8yndd35srg";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v2.4.0-linux-amd64.tar.gz";
+        sha256 = "1wr4p312xwqi0icn153iv2j88rp37wkf8hc5y4pmdr61vd0kpw7w";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v2.3.1-linux-amd64.tar.gz";
+        sha256 = "0xq3as94i9ah9dv1cabgdqjg68yg7laksfzpf81s6kcv742cnnqi";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v2.4.0-linux-amd64.tar.gz";
+        sha256 = "1av7fj1jlhhqplqq60d6hzzidlhsvr41z9p1x3mvz5frwijxr1ab";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v2.10.0-linux-amd64.tar.gz";
+        sha256 = "1bgw5xw6f01whxlm5358xn6v9wqz9mxg3dvb5vi7rfs9wwxykr4g";
       }
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v2.1.0-darwin-x64.tar.gz";
-        sha256 = "1d7w32wac2sc0z5i893h66fgyivf4x3mqki649vxkxc3081kpzi9";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v2.10.2-darwin-x64.tar.gz";
+        sha256 = "1fzqylx7pmrpvsxrmhlx56v9i9zkid96zrj9hsc26qhx5w7k600w";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v1.1.0-darwin-amd64.tar.gz";
+        sha256 = "05dxpdwdg8cd1a6d3xh8dkns5wkvpr0v11bb4zdzv38x6wxnqx0z";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v3.4.0-darwin-amd64.tar.gz";
+        sha256 = "1jbnx1wpzh2k127ixh9j0ghlqhj3sc1s17cp3ax3q9gq3cadcl5i";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v2.6.0-darwin-amd64.tar.gz";
+        sha256 = "0lpf3cqi3kss7hmr8a3y6gmwjl854vmva4f9p9q7147rxr8aw5f9";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v2.5.0-darwin-amd64.tar.gz";
+        sha256 = "0qwjrhmspibjr17kgswfcgbdhmkicqrjd1md6azingdr5wp7cwwm";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v2.8.0-darwin-amd64.tar.gz";
+        sha256 = "0rwgbpif7l3ayh363cz0k2dir36a87x0bszspq3nm3xbwmd190f0";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v2.8.0-darwin-amd64.tar.gz";
+        sha256 = "0943r8x70gxxkfn0rhcx2b9zya44k28j5s8z2m8jn2i1fvqvahq5";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v2.3.0-darwin-amd64.tar.gz";
+        sha256 = "1nvqjc1zrxfn2r1wdh2sdr2vimar5836bhscqsiaw4i6mjdsggfy";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v3.25.0-darwin-amd64.tar.gz";
+        sha256 = "05x0qlv3xkkvs71ixzmc21ck85w9f4a4dxrwmgkq6c0nhy3npbnj";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v2.0.0-darwin-amd64.tar.gz";
+        sha256 = "1m80l75r2w46m7191igjan4ipfkhc9ld1xlybncd628qlcf2jpqz";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v2.6.0-darwin-amd64.tar.gz";
+        sha256 = "0dan0qqvaxfh90db14s7adjjy670lz15bbm6a8fjfyj4fdhsbwyn";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v0.2.0-darwin-amd64.tar.gz";
+        sha256 = "1gznv5d10pxbkyl4hbd4c9skkgkypfs1xg0jjmszkwxcjzvhc4l3";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v2.6.1-darwin-amd64.tar.gz";
+        sha256 = "08w8by7h9nlgvyap2in6yy21dk46fxvl93h4ghaw7xxjjs2l3dfi";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v2.2.0-darwin-amd64.tar.gz";
+        sha256 = "0qjszd30r3094p5m7v5gynx2kxh9xf9878mxdc2wnswpkpw3v5pb";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v2.2.1-darwin-amd64.tar.gz";
+        sha256 = "1a19lmxi8r8h4yfll0k97kvq0lgkzwvrwf52ny4zl67bc9g4jr5p";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-openstack-v2.6.0-darwin-amd64.tar.gz";
+        sha256 = "11vfjkmhrq7q4j6h5d2sdzan3ziyhl5qhc0fhfnsz2pxss549zab";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-packet-v3.1.0-darwin-amd64.tar.gz";
+        sha256 = "1ny1m6pb44k77gqf97km3gkb7dwhilkmqi2zy4hdl20js1ijsh7p";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v2.1.0-darwin-amd64.tar.gz";
-        sha256 = "1smy1y2pnxnvw8zcs31q9xs80hyqhzawfzcwkkfnyamdrgasxqsi";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v2.4.0-darwin-amd64.tar.gz";
+        sha256 = "1vm2pfj93wi6q7kcrqwy9190mx0jn2p96algcd5gms48a4m8bgpb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v3.3.0-darwin-amd64.tar.gz";
-        sha256 = "03idn1livy9w3izi7qrdgnigx3ayrp8qp2q3m5ik9ffvv2g11962";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v2.3.1-darwin-amd64.tar.gz";
+        sha256 = "0mnmlvyppfndq1rwy4k40j0syy590v2lg75kg0rnf16qlpffskn9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v2.0.0-darwin-amd64.tar.gz";
-        sha256 = "06m6ldqa82w82kjz7pxi0pbk9x02pzsy4x0in8fcq9gsh1p0gka9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v2.4.0-darwin-amd64.tar.gz";
+        sha256 = "0q9qbqalask628cbi3347pjbnm3304c8qhx7h8icqxxh59mjnhr7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v2.2.0-darwin-amd64.tar.gz";
-        sha256 = "0mymvn2355bq9ykvnww0si0imikzxp7mp1yh2scn8kjn2gs4nhgk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vsphere-v2.10.0-darwin-amd64.tar.gz";
+        sha256 = "1gxiqq6hk77s1n3q3p92p0yykpihw2k8lv01dra015fjha6pyl19";
       }
     ];
   };
diff --git a/nixpkgs/pkgs/tools/admin/pulumi/default.nix b/nixpkgs/pkgs/tools/admin/pulumi/default.nix
index c0547f0c0c89..231bdc099653 100644
--- a/nixpkgs/pkgs/tools/admin/pulumi/default.nix
+++ b/nixpkgs/pkgs/tools/admin/pulumi/default.nix
@@ -29,6 +29,7 @@ in stdenv.mkDerivation {
     license = with licenses; [ asl20 ];
     platforms = builtins.attrNames data.pulumiPkgs;
     maintainers = with maintainers; [
+      ghuntley
       peterromfeldhk
       jlesquembre
     ];
diff --git a/nixpkgs/pkgs/tools/admin/pulumi/update.sh b/nixpkgs/pkgs/tools/admin/pulumi/update.sh
index 26a48469841c..5e0c721959c3 100644..100755
--- a/nixpkgs/pkgs/tools/admin/pulumi/update.sh
+++ b/nixpkgs/pkgs/tools/admin/pulumi/update.sh
@@ -1,14 +1,34 @@
 #!/usr/bin/env bash
+# Bash 3 compatible for Darwin
 
-VERSION="2.1.0"
+# Version of Pulumi from
+# https://www.pulumi.com/docs/get-started/install/versions/
+VERSION="2.10.2"
 
-declare -A plugins
+# Grab latest release ${VERSION} from
+# https://github.com/pulumi/pulumi-${NAME}/releases
 plugins=(
-    ["aws"]="2.2.0"
-    ["gcp"]="3.3.0"
-    ["random"]="2.1.0"
-    ["kubernetes"]="2.0.0"
-)
+    "auth0=1.1.0"
+    "aws=3.4.0"
+    "cloudflare=2.6.0"
+    "consul=2.5.0"
+    "datadog=2.8.0"
+    "digitalocean=2.8.0"
+    "docker=2.3.0"
+    "gcp=3.25.0"
+    "github=2.0.0"
+    "gitlab=2.6.0"
+    "hcloud=0.2.0"
+    "kubernetes=2.6.1"
+    "mailgun=2.2.0"
+    "mysql=2.2.1"
+    "openstack=2.6.0"
+    "packet=3.1.0"
+    "postgresql=2.4.0"
+    "random=2.3.1"
+    "vault=2.4.0"
+    "vsphere=2.10.0"
+    );
 
 function genMainSrc() {
     local url="https://get.pulumi.com/releases/sdk/pulumi-v${VERSION}-$1-x64.tar.gz"
@@ -21,8 +41,9 @@ function genMainSrc() {
 }
 
 function genSrcs() {
-    for plug in "${!plugins[@]}"; do
-        local version=${plugins[$plug]}
+    for plugVers in "${plugins[@]}"; do
+        local plug=${plugVers%=*}
+        local version=${plugVers#*=}
         # url as defined here
         # https://github.com/pulumi/pulumi/blob/06d4dde8898b2a0de2c3c7ff8e45f97495b89d82/pkg/workspace/plugins.go#L197
         local url="https://api.pulumi.com/releases/plugins/pulumi-resource-${plug}-v${version}-$1-amd64.tar.gz"
@@ -35,7 +56,7 @@ function genSrcs() {
     done
 }
 
-cat <<EOF
+cat <<EOF                     > data.nix
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
@@ -43,13 +64,14 @@ cat <<EOF
   pulumiPkgs = {
     x86_64-linux = [
 EOF
-genMainSrc "linux"
-genSrcs "linux"
-echo "    ];"
+genMainSrc "linux"           >> data.nix
+genSrcs "linux"              >> data.nix
+echo "    ];"                >> data.nix
+
+echo "    x86_64-darwin = [" >> data.nix
+genMainSrc "darwin"          >> data.nix
+genSrcs "darwin"             >> data.nix
+echo "    ];"                >> data.nix
+echo "  };"                  >> data.nix
+echo "}"                     >> data.nix
 
-echo "    x86_64-darwin = ["
-genMainSrc "darwin"
-genSrcs "darwin"
-echo "    ];"
-echo "  };"
-echo "}"
diff --git a/nixpkgs/pkgs/tools/admin/salt/default.nix b/nixpkgs/pkgs/tools/admin/salt/default.nix
index f3c375a99660..83b69b12fea1 100644
--- a/nixpkgs/pkgs/tools/admin/salt/default.nix
+++ b/nixpkgs/pkgs/tools/admin/salt/default.nix
@@ -5,42 +5,25 @@
   # passing them in this array enables Salt to find them.
 , extraInputs ? []
 }:
-let
-
-  py = python3.override {
-    packageOverrides = self: super: {
-      # Can be unpinned once https://github.com/saltstack/salt/issues/56007 is resolved
-      msgpack = super.msgpack.overridePythonAttrs (
-        oldAttrs: rec {
-          version = "0.6.2";
-          src = oldAttrs.src.override {
-            inherit version;
-            sha256 = "0c0q3vx0x137567msgs5dnizghnr059qi5kfqigxbz26jf2jyg7a";
-          };
-        }
-      );
-    };
-  };
-
-in
-py.pkgs.buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "salt";
-  version = "3000.3";
+  version = "3001.1";
 
-  src = py.pkgs.fetchPypi {
+  src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "19yfjhidx93rl9s03lvrfz7kp0xxigyv4d3zb9792zb9bsc4kjpw";
+    sha256 = "1g2sdcibir0zhldmngv1iyzlhh2adq9dqjc73grap3df5zcv9sz9";
   };
 
-  propagatedBuildInputs = with py.pkgs; [
+  propagatedBuildInputs = with python3.pkgs; [
+    distro
     jinja2
     markupsafe
     msgpack
-    pycrypto
+    pycryptodomex
     pyyaml
     pyzmq
     requests
-    tornado_4
+    tornado
   ] ++ extraInputs;
 
   patches = [ ./fix-libcrypto-loading.patch ];
diff --git a/nixpkgs/pkgs/tools/admin/salt/fix-libcrypto-loading.patch b/nixpkgs/pkgs/tools/admin/salt/fix-libcrypto-loading.patch
index f7560b1fc56d..e011a15b43f9 100644
--- a/nixpkgs/pkgs/tools/admin/salt/fix-libcrypto-loading.patch
+++ b/nixpkgs/pkgs/tools/admin/salt/fix-libcrypto-loading.patch
@@ -2,13 +2,12 @@ diff --git a/salt/utils/rsax931.py b/salt/utils/rsax931.py
 index f827cc6db8..b728595186 100644
 --- a/salt/utils/rsax931.py
 +++ b/salt/utils/rsax931.py
-@@ -47,6 +47,9 @@ def _load_libcrypto():
-             lib = lib[0] if len(lib) > 0 else None
-         if lib:
-             return cdll.LoadLibrary(lib)
-+        else:
-+            return cdll.LoadLibrary('@libcrypto@')
-+
-         raise OSError('Cannot locate OpenSSL libcrypto')
+@@ -74,7 +74,7 @@
+     """
+     Attempt to load libcrypto.
+     """
+-    return cdll.LoadLibrary(_find_libcrypto())
++    return cdll.LoadLibrary('@libcrypto@')
  
  
+ def _init_libcrypto():
diff --git a/nixpkgs/pkgs/tools/admin/salt/pepper/default.nix b/nixpkgs/pkgs/tools/admin/salt/pepper/default.nix
index e2cfa806f95b..0c6e9dc0ab23 100644
--- a/nixpkgs/pkgs/tools/admin/salt/pepper/default.nix
+++ b/nixpkgs/pkgs/tools/admin/salt/pepper/default.nix
@@ -1,19 +1,19 @@
 { lib
-, pythonPackages
+, python3Packages
 , salt
 }:
 
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "salt-pepper";
   version = "0.7.5";
-  src = pythonPackages.fetchPypi {
+  src = python3Packages.fetchPypi {
     inherit pname version;
     sha256 = "1wh6yidwdk8jvjpr5g3azhqgsk24c5rlzmw6l86dmi0mpvmxm94w";
   };
 
-  buildInputs = with pythonPackages; [ setuptools setuptools_scm salt ];
-  checkInputs = with pythonPackages; [
-    pytest mock pyzmq pytest-rerunfailures pytestcov cherrypy tornado_4
+  buildInputs = with python3Packages; [ setuptools setuptools_scm salt ];
+  checkInputs = with python3Packages; [
+    pytest mock pyzmq pytest-rerunfailures pytestcov cherrypy tornado
   ];
 
   meta = with lib; {
@@ -21,5 +21,6 @@ pythonPackages.buildPythonApplication rec {
     homepage = "https://github.com/saltstack/pepper";
     maintainers = [ maintainers.pierrer ];
     license = licenses.asl20;
+    broken = true; # ModuleNotFoundError: No module named 'pytestsalt'
   };
 }
diff --git a/nixpkgs/pkgs/tools/admin/scaleway-cli/default.nix b/nixpkgs/pkgs/tools/admin/scaleway-cli/default.nix
index eeae7fbe1bf0..a174937e5a12 100644
--- a/nixpkgs/pkgs/tools/admin/scaleway-cli/default.nix
+++ b/nixpkgs/pkgs/tools/admin/scaleway-cli/default.nix
@@ -18,6 +18,5 @@ buildGoPackage rec {
     homepage = "https://github.com/scaleway/scaleway-cli";
     license = licenses.mit;
     maintainers = with maintainers; [ nickhu ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/archivers/bomutils/default.nix b/nixpkgs/pkgs/tools/archivers/bomutils/default.nix
new file mode 100644
index 000000000000..fc68184be319
--- /dev/null
+++ b/nixpkgs/pkgs/tools/archivers/bomutils/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, fetchFromGitHub
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bomutils";
+  version = "0.2";
+
+  src = fetchFromGitHub {
+    owner = "hogliux";
+    repo = pname;
+    rev = version;
+    sha256 = "1i7nhbq1fcbrjwfg64znz8p4l7662f7qz2l6xcvwd5z93dnmgmdr";
+  };
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/hogliux/bomutils";
+    description = "Open source tools to create bill-of-materials files used in macOS installers";
+    platforms = platforms.all;
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ prusnak ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/archivers/innoextract/default.nix b/nixpkgs/pkgs/tools/archivers/innoextract/default.nix
index 5dab19501456..da26639fcb5f 100644
--- a/nixpkgs/pkgs/tools/archivers/innoextract/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/innoextract/default.nix
@@ -3,11 +3,11 @@
 , withGog ? false, unar ? null }:
 
 stdenv.mkDerivation rec {
-  name = "innoextract-1.8";
+  name = "innoextract-1.9";
 
   src = fetchurl {
     url = "https://constexpr.org/innoextract/files/${name}.tar.gz";
-    sha256 = "0saj50n8ds85shygy4mq1h6s99510r9wgjjdll4dmvhra4lzcy2y";
+    sha256 = "09l1z1nbl6ijqqwszdwch9mqr54qb7df0wp2sd77v17dq6gsci33";
   };
 
   buildInputs = [ python lzma boost ];
diff --git a/nixpkgs/pkgs/tools/archivers/maxcso/default.nix b/nixpkgs/pkgs/tools/archivers/maxcso/default.nix
new file mode 100644
index 000000000000..333b0dcabc3d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/archivers/maxcso/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, libuv, lz4, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "maxcso";
+  version = "1.12.0";
+
+  src = fetchFromGitHub {
+    owner = "unknownbrackets";
+    repo = "maxcso";
+    rev = "v${version}";
+    sha256 = "10r0vb3ndpq1pw5224d48nim5xz8jj94zhlfy29br6h6jblq8zap";
+  };
+
+  buildInputs = [ libuv lz4 zlib ];
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/unknownbrackets/maxcso";
+    description =
+      "A fast ISO to CSO compression program for use with PSP and PS2 emulators, which uses multiple algorithms for best compression ratio";
+    maintainers = with maintainers; [ david-sawatzke ];
+    platforms = platforms.linux ++ platforms.darwin;
+    license = licenses.isc;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/archivers/p7zip/default.nix b/nixpkgs/pkgs/tools/archivers/p7zip/default.nix
index 773d37f0b758..a155c1717eb4 100644
--- a/nixpkgs/pkgs/tools/archivers/p7zip/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/p7zip/default.nix
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
   # Default makefile is full of impurities on Darwin. The patch doesn't hurt Linux so I'm leaving it unconditional
   postPatch = ''
     sed -i '/CC=\/usr/d' makefile.macosx_llvm_64bits
+    chmod +x install.sh
 
     # I think this is a typo and should be CXX? Either way let's kill it
     sed -i '/XX=\/usr/d' makefile.macosx_llvm_64bits
@@ -28,7 +29,6 @@ stdenv.mkDerivation rec {
     # (see DOC/License.txt, https://fedoraproject.org/wiki/Licensing:Unrar)
     rm -r CPP/7zip/Compress/Rar*
     find . -name makefile'*' -exec sed -i '/Rar/d' {} +
-    chmod +x install.sh
   '';
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/tools/archivers/undmg/default.nix b/nixpkgs/pkgs/tools/archivers/undmg/default.nix
index 79b861de485e..0eaabdb627da 100644
--- a/nixpkgs/pkgs/tools/archivers/undmg/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/undmg/default.nix
@@ -1,18 +1,19 @@
-{ stdenv, fetchFromGitHub, zlib, bzip2 }:
+{ stdenv, fetchFromGitHub, zlib, bzip2, lzfse, pkg-config }:
 
 stdenv.mkDerivation rec {
-  version = "1.0.3";
+  version = "1.1.0";
   pname = "undmg";
 
   src = fetchFromGitHub {
     owner = "matthewbauer";
     repo = "undmg";
     rev = "v${version}";
-    sha256 = "1pxqw92h2w75d4jwiihwnkhnsfk09cddh3flgrqwh9r3ry14fgbb";
-    
+    sha256 = "0rb4h89jrl04vwf6p679ipa4mp95hzmc1ca11wqbanv3xd1kcpxm";
   };
 
-  buildInputs = [ zlib bzip2 ];
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ zlib bzip2 lzfse ];
 
   setupHook = ./setup-hook.sh;
 
diff --git a/nixpkgs/pkgs/tools/archivers/undmg/setup-hook.sh b/nixpkgs/pkgs/tools/archivers/undmg/setup-hook.sh
index e5c8dda23b6a..bc7ed76107ef 100644
--- a/nixpkgs/pkgs/tools/archivers/undmg/setup-hook.sh
+++ b/nixpkgs/pkgs/tools/archivers/undmg/setup-hook.sh
@@ -1,5 +1,5 @@
 unpackCmdHooks+=(_tryUnpackDmg)
 _tryUnpackDmg() {
     if ! [[ "$curSrc" =~ \.dmg$ ]]; then return 1; fi
-    undmg < "$curSrc"
+    undmg "$curSrc"
 }
diff --git a/nixpkgs/pkgs/tools/archivers/wimlib/default.nix b/nixpkgs/pkgs/tools/archivers/wimlib/default.nix
index da01602cca43..51f75ee923d3 100644
--- a/nixpkgs/pkgs/tools/archivers/wimlib/default.nix
+++ b/nixpkgs/pkgs/tools/archivers/wimlib/default.nix
@@ -8,7 +8,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.13.1";
+  version = "1.13.2";
   pname = "wimlib";
 
   nativeBuildInputs = [ pkgconfig makeWrapper ];
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://wimlib.net/downloads/${pname}-${version}.tar.gz";
-    sha256 = "0pxgrpr3dr81rcf2jh71aiiq3v4anc5sj1nld18f2vhvbijbrx27";
+    sha256 = "0id9ym3hzij4kpdrk0sz3ijxp5r0z1md5jch83pml9hdy1zbx5bj";
   };
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/tools/audio/abcm2ps/default.nix b/nixpkgs/pkgs/tools/audio/abcm2ps/default.nix
index 302654f77154..099ccc6f4cb8 100644
--- a/nixpkgs/pkgs/tools/audio/abcm2ps/default.nix
+++ b/nixpkgs/pkgs/tools/audio/abcm2ps/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "abcm2ps";
-  version = "8.14.7";
+  version = "8.14.9";
 
   src = fetchFromGitHub {
     owner = "leesavide";
     repo = "abcm2ps";
     rev = "v${version}";
-    sha256 = "0k12wf37vl31w2qpj3dsmv8c4ifrsg3qa30gqsx553jw7n0f3ma2";
+    sha256 = "0h4qzj9k5ng09nbkfipvr82piq68c576akjwmhsqn05rvgirmhx7";
   };
 
   configureFlags = [
diff --git a/nixpkgs/pkgs/tools/audio/abcmidi/default.nix b/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
index 1987b0a87c28..4ab394516a84 100644
--- a/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
+++ b/nixpkgs/pkgs/tools/audio/abcmidi/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "abcMIDI";
-  version = "2020.06.07";
+  version = "2020.08.09";
 
   src = fetchzip {
     url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
-    sha256 = "06jpawwm4zcss9mi2bjdbdkkfr8cw1q9cpzplq5r83z8pljqb12l";
+    sha256 = "1j7jkv2fdrhyyjavffb5nrs8p9mfp8zqqravcad1ayv1z2wxr8vl";
   };
 
   # There is also a file called "makefile" which seems to be preferred by the standard build phase
diff --git a/nixpkgs/pkgs/tools/audio/beets/compatibility-with-breaking-changes-to-the-ast-module.patch b/nixpkgs/pkgs/tools/audio/beets/compatibility-with-breaking-changes-to-the-ast-module.patch
new file mode 100644
index 000000000000..4865b6f62341
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/beets/compatibility-with-breaking-changes-to-the-ast-module.patch
@@ -0,0 +1,55 @@
+From 771ce704ebeac4cd9bd74b3ddde9fb01f3dc7eb4 Mon Sep 17 00:00:00 2001
+From: wisp3rwind <17089248+wisp3rwind@users.noreply.github.com>
+Date: Tue, 9 Jun 2020 19:34:31 +0200
+Subject: [PATCH] compatibility with breaking changes to the ast module
+
+new in 3.10, also backported to 3.8 and 3.9: https://github.com/python/cpython/pull/20649
+In fact, our generation of some Literals has been invalid since Python
+3.4, fix that too.
+---
+ beets/util/functemplate.py | 29 ++++++++++++++++++++---------
+ 1 file changed, 20 insertions(+), 9 deletions(-)
+
+diff --git a/beets/util/functemplate.py b/beets/util/functemplate.py
+index af22b790..266534a9 100644
+--- a/beets/util/functemplate.py
++++ b/beets/util/functemplate.py
+@@ -73,15 +73,26 @@ def ex_literal(val):
+     """An int, float, long, bool, string, or None literal with the given
+     value.
+     """
+-    if val is None:
+-        return ast.Name('None', ast.Load())
+-    elif isinstance(val, six.integer_types):
+-        return ast.Num(val)
+-    elif isinstance(val, bool):
+-        return ast.Name(bytes(val), ast.Load())
+-    elif isinstance(val, six.string_types):
+-        return ast.Str(val)
+-    raise TypeError(u'no literal for {0}'.format(type(val)))
++    if sys.version_info[:2] < (3, 4):
++        if val is None:
++            return ast.Name('None', ast.Load())
++        elif isinstance(val, six.integer_types):
++            return ast.Num(val)
++        elif isinstance(val, bool):
++            return ast.Name(bytes(val), ast.Load())
++        elif isinstance(val, six.string_types):
++            return ast.Str(val)
++        raise TypeError(u'no literal for {0}'.format(type(val)))
++    elif sys.version_info[:2] < (3, 6):
++        if val in [None, True, False]:
++            return ast.NameConstant(val)
++        elif isinstance(val, six.integer_types):
++            return ast.Num(val)
++        elif isinstance(val, six.string_types):
++            return ast.Str(val)
++        raise TypeError(u'no literal for {0}'.format(type(val)))
++    else:
++        return ast.Constant(val)
+ 
+ 
+ def ex_varassign(name, expr):
+-- 
+2.27.0
+
diff --git a/nixpkgs/pkgs/tools/audio/beets/default.nix b/nixpkgs/pkgs/tools/audio/beets/default.nix
index 662dba65be42..56551891a4a5 100644
--- a/nixpkgs/pkgs/tools/audio/beets/default.nix
+++ b/nixpkgs/pkgs/tools/audio/beets/default.nix
@@ -31,6 +31,7 @@
 , enableAlternatives   ? false
 , enableCheck          ? false, liboggz ? null
 , enableCopyArtifacts  ? false
+, enableExtraFiles     ? false
 
 , bashInteractive, bash-completion
 }:
@@ -100,6 +101,7 @@ let
   externalTestArgs.beets = (beets.override {
     enableAlternatives = false;
     enableCopyArtifacts = false;
+    enableExtraFiles = false;
   }).overrideAttrs (stdenv.lib.const {
     doInstallCheck = false;
   });
@@ -110,6 +112,7 @@ let
     alternatives = callPackage ./alternatives-plugin.nix pluginArgs;
     check = callPackage ./check-plugin.nix pluginArgs;
     copyartifacts = callPackage ./copyartifacts-plugin.nix pluginArgs;
+    extrafiles = callPackage ./extrafiles-plugin.nix pluginArgs;
   };
 
 in pythonPackages.buildPythonApplication rec {
@@ -156,7 +159,9 @@ in pythonPackages.buildPythonApplication rec {
     ++ optional enableThumbnails    pythonPackages.pyxdg
     ++ optional enableWeb           pythonPackages.flask
     ++ optional enableAlternatives  plugins.alternatives
-    ++ optional enableCopyArtifacts plugins.copyartifacts;
+    ++ optional enableCopyArtifacts plugins.copyartifacts
+    ++ optional enableExtraFiles    plugins.extrafiles
+  ;
 
   buildInputs = [
     imagemagick
@@ -185,6 +190,16 @@ in pythonPackages.buildPythonApplication rec {
     ./replaygain-default-bs1770gain.patch
     ./keyfinder-default-bin.patch
     ./mutagen-1.43.patch
+    (fetchpatch {
+      # Fixes failing testcases around the werkzeug component; can dropped after 1.4.9
+      url = "https://github.com/beetbox/beets/commit/d43d54e21cde97f57f19486925ab56b419254cc8.patch";
+      sha256 = "13n2gzmcgfi0m2ycl2r1hpczgksplnkc3y6b66vg57rx5y8nnv5c";
+    })
+
+    # Fixes 548 tests due to breaking changes to the ast module
+    # https://github.com/beetbox/beets/pull/3621
+    # Can be dropped after 1.4.9
+    ./compatibility-with-breaking-changes-to-the-ast-module.patch
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/audio/beets/extrafiles-plugin.nix b/nixpkgs/pkgs/tools/audio/beets/extrafiles-plugin.nix
new file mode 100644
index 000000000000..7d0e446ce605
--- /dev/null
+++ b/nixpkgs/pkgs/tools/audio/beets/extrafiles-plugin.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, beets, pythonPackages }:
+
+pythonPackages.buildPythonApplication rec {
+  pname = "beets-extrafiles";
+  version = "0.0.7";
+
+  src = fetchFromGitHub {
+    repo = "beets-extrafiles";
+    owner = "Holzhaus";
+    rev = "v${version}";
+    sha256 = "0ah7mgax9zrhvvd5scf2z0v0bhd6xmmv5sdb6av840ixpl6vlvm6";
+  };
+
+  postPatch = ''
+    sed -i -e '/install_requires/,/\]/{/beets/d}' setup.py
+    sed -i -e '/namespace_packages/d' setup.py
+  '';
+
+  nativeBuildInputs = [ beets ];
+
+  preCheck = ''
+    HOME=$TEMPDIR
+  '';
+
+  meta = {
+    homepage = "https://github.com/Holzhaus/beets-extrafiles";
+    description = "A plugin for beets that copies additional files and directories during the import process";
+    license = stdenv.lib.licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/audio/beets/mutagen-1.43.patch b/nixpkgs/pkgs/tools/audio/beets/mutagen-1.43.patch
index 84cf1bab03ec..d0d448c15e9a 100644
--- a/nixpkgs/pkgs/tools/audio/beets/mutagen-1.43.patch
+++ b/nixpkgs/pkgs/tools/audio/beets/mutagen-1.43.patch
@@ -1,8 +1,10 @@
-Backport https://github.com/beetbox/mediafile/commit/b3343c4ee08d1251ae5e2344401a2f5892b4e868
+Backport
+https://github.com/beetbox/mediafile/commit/b3343c4ee08d1251ae5e2344401a2f5892b4e868
+https://github.com/beetbox/mediafile/commit/d2fc3b59f77c515b02dfe7ad936f89264375d2b4
 to Beets 1.4.9.
 
 diff --git i/setup.py w/setup.py
-index 79278f8..b8d6068 100755
+index 79278f8b..b8d60687 100755
 --- i/setup.py
 +++ w/setup.py
 @@ -87,7 +87,7 @@ setup(
@@ -15,9 +17,18 @@ index 79278f8..b8d6068 100755
          'musicbrainzngs>=0.4',
          'pyyaml',
 diff --git i/test/test_mediafile.py w/test/test_mediafile.py
-index 36a2c53..54ef9dd 100644
+index 36a2c53a..0ddde44e 100644
 --- i/test/test_mediafile.py
 +++ w/test/test_mediafile.py
+@@ -888,7 +888,7 @@ class WavpackTest(ReadWriteTestBase, unittest.TestCase):
+         'bitrate': 109312,
+         'format': u'WavPack',
+         'samplerate': 44100,
+-        'bitdepth': 0,
++        'bitdepth': 16,
+         'channels': 1,
+     }
+ 
 @@ -912,7 +912,7 @@ class AIFFTest(ReadWriteTestBase, unittest.TestCase):
          'bitrate': 705600,
          'format': u'AIFF',
diff --git a/nixpkgs/pkgs/tools/audio/bpm-tools/default.nix b/nixpkgs/pkgs/tools/audio/bpm-tools/default.nix
index 035fbf095338..6207cbeb9fe6 100644
--- a/nixpkgs/pkgs/tools/audio/bpm-tools/default.nix
+++ b/nixpkgs/pkgs/tools/audio/bpm-tools/default.nix
@@ -1,8 +1,17 @@
 {
   stdenv,
   fetchurl,
+  gnuplot,
+  sox,
+  flac,
+  id3v2,
+  vorbis-tools,
+  makeWrapper
 }:
 
+let
+  path = stdenv.lib.makeBinPath [ gnuplot sox flac id3v2 vorbis-tools ];
+in
 stdenv.mkDerivation rec {
   pname = "bpm-tools";
   version = "0.3";
@@ -12,15 +21,17 @@ stdenv.mkDerivation rec {
     sha256 = "151vfbs8h3cibs7kbdps5pqrsxhpjv16y2iyfqbxzsclylgfivrp";
   };
 
-  patchPhase = ''
-    patchShebangs bpm-tag
-    patchShebangs bpm-graph
-  '';
+  nativeBuildInputs = [ makeWrapper ];
 
   installFlags = [
     "PREFIX=${placeholder "out"}"
   ];
 
+  postFixup = ''
+    wrapProgram $out/bin/bpm-tag --prefix PATH : "${path}"
+    wrapProgram $out/bin/bpm-graph --prefix PATH : "${path}"
+  '';
+
   meta = with stdenv.lib; {
     homepage = "http://www.pogo.org.uk/~mark/bpm-tools/";
     description = "Automatically calculate BPM (tempo) of music files";
diff --git a/nixpkgs/pkgs/tools/audio/google-music-scripts/default.nix b/nixpkgs/pkgs/tools/audio/google-music-scripts/default.nix
index f95dcc8bb6dd..272cf9025392 100644
--- a/nixpkgs/pkgs/tools/audio/google-music-scripts/default.nix
+++ b/nixpkgs/pkgs/tools/audio/google-music-scripts/default.nix
@@ -1,19 +1,36 @@
 { lib, python3 }:
 
-with python3.pkgs;
+let
+  py = python3.override {
+    packageOverrides = self: super: {
+      loguru = super.loguru.overridePythonAttrs (oldAttrs: rec {
+        version = "0.4.0";
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "0j47cg3gi8in4z6z4w3by6x02mpkkfl78gr85xjn5rg0nxiz7pfm";
+        };
+      });
+    };
+  };
+
+in
+
+with py.pkgs;
 
 buildPythonApplication rec {
   pname = "google-music-scripts";
-  version = "4.3.0";
+  version = "4.5.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0dykjhqklbpqr1lvls0bgf6xkwvslj37lx4q8522hjbs150pwjmq";
+    sha256 = "0apwgj86whrc077dfymvyb4qwj19bawyrx49g4kg364895v0rbbq";
   };
 
+  # pendulum pinning was to prevent PEP517 from trying to build from source
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "audio-metadata>=0.8,<0.9" "audio-metadata"
+      --replace "tomlkit>=0.5,<0.6" "tomlkit" \
+      --replace "pendulum>=2.0,<=3.0,!=2.0.5,!=2.1.0" "pendulum"
   '';
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/audio/liquidsoap/full.nix b/nixpkgs/pkgs/tools/audio/liquidsoap/full.nix
index 2aa01dfe073f..a228c23651db 100644
--- a/nixpkgs/pkgs/tools/audio/liquidsoap/full.nix
+++ b/nixpkgs/pkgs/tools/audio/liquidsoap/full.nix
@@ -2,13 +2,18 @@
 , ocamlPackages
 , libao, portaudio, alsaLib, libpulseaudio, libjack2
 , libsamplerate, libmad, taglib, lame, libogg
-, libvorbis, speex, libtheora, libopus, fdk_aac
+, libvorbis, speex, libtheora, libopus
 , faad2, flac, ladspaH, ffmpeg, frei0r, dssi
 }:
 
 let
   pname = "liquidsoap";
-  version = "1.3.4";
+  version = "1.4.2";
+
+  ocaml-ffmpeg = fetchurl {
+    url = "https://github.com/savonet/ocaml-ffmpeg/releases/download/v0.4.2/ocaml-ffmpeg-0.4.2.tar.gz";
+    sha256 = "1lx5s1avds9fsh77828ifn71r2g89rxakhs8pp995a675phm9viw";
+  };
 
   packageFilters = map (p: "-e '/ocaml-${p}/d'" )
     [ "gstreamer" "shine" "aacplus" "schroedinger"
@@ -19,10 +24,17 @@ stdenv.mkDerivation {
   name = "${pname}-full-${version}";
 
   src = fetchurl {
-    url = "https://github.com/savonet/${pname}/releases/download/${version}/${pname}-${version}-full.tar.bz2";
-    sha256 = "11l1h42sljfxcdhddc8klya4bk99j7a1pndwnzvscb04pvmfmlk0";
+    url = "https://github.com/savonet/${pname}/releases/download/v${version}/${pname}-${version}-full.tar.gz";
+    sha256 = "0wkwnzj1a0vizv7sr1blwk5gzm2qi0n02ndijnq1i50cwrgxs1a4";
   };
 
+  # Use ocaml-srt and ocaml-fdkaac from nixpkgs
+  # Use ocaml-ffmpeg at 0.4.2 for compatibility with ffmpeg 4.3
+  prePatch = ''
+    rm -rf ocaml-srt*/ ocaml-fdkaac*/ ocaml-ffmpeg*/
+    tar xzf ${ocaml-ffmpeg}
+  '';
+
   preConfigure = /* we prefer system-wide libs */ ''
     sed -i "s|gsed|sed|" Makefile
     make bootstrap
@@ -42,10 +54,12 @@ stdenv.mkDerivation {
     [ which ocamlPackages.ocaml ocamlPackages.findlib
       libao portaudio alsaLib libpulseaudio libjack2
       libsamplerate libmad taglib lame libogg
-      libvorbis speex libtheora libopus fdk_aac
+      libvorbis speex libtheora libopus
       faad2 flac ladspaH ffmpeg frei0r dssi
       ocamlPackages.xmlm ocamlPackages.ocaml_pcre
       ocamlPackages.camomile
+      ocamlPackages.fdkaac
+      ocamlPackages.srt ocamlPackages.sedlex_2 ocamlPackages.menhir
     ];
 
   hardeningDisable = [ "format" "fortify" ];
diff --git a/nixpkgs/pkgs/tools/audio/mpd-mpris/default.nix b/nixpkgs/pkgs/tools/audio/mpd-mpris/default.nix
index 3c736258cbb6..79387d9ad1f9 100644
--- a/nixpkgs/pkgs/tools/audio/mpd-mpris/default.nix
+++ b/nixpkgs/pkgs/tools/audio/mpd-mpris/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "108yjymp64iqx1b2wqjbkmbm2w199wq46g7hrmqhcziv6f4aqljp";
 
+  doCheck = false;
+
   subPackages = [ "cmd/${pname}" ];
 
   postInstall = ''
@@ -29,4 +31,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ doronbehar ];
     platforms = platforms.linux;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/audio/opl3bankeditor/default.nix b/nixpkgs/pkgs/tools/audio/opl3bankeditor/default.nix
index 0503f9bad694..381591edb021 100644
--- a/nixpkgs/pkgs/tools/audio/opl3bankeditor/default.nix
+++ b/nixpkgs/pkgs/tools/audio/opl3bankeditor/default.nix
@@ -1,14 +1,14 @@
 { stdenv, mkDerivation, fetchFromGitHub, cmake, qttools, alsaLib }:
 
 mkDerivation rec {
-  version = "1.5";
+  version = "1.5.1";
   pname = "OPL3BankEditor";
 
   src = fetchFromGitHub {
     owner = "Wohlstand";
     repo = pname;
     rev = "v${version}";
-    sha256 = "16va5xfbyn2m63722ab5yph0l7kmghkbk6dkia93041mfhdyg9rc";
+    sha256 = "1g59qrkcm4xnyxx0s2x28brqbf2ix6vriyx12pcdvfhhcdi55hxh";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/tools/audio/opl3bankeditor/opn2bankeditor.nix b/nixpkgs/pkgs/tools/audio/opl3bankeditor/opn2bankeditor.nix
index d8f15a65b45b..1d10452470ed 100644
--- a/nixpkgs/pkgs/tools/audio/opl3bankeditor/opn2bankeditor.nix
+++ b/nixpkgs/pkgs/tools/audio/opl3bankeditor/opn2bankeditor.nix
@@ -1,19 +1,14 @@
 { opl3bankeditor, fetchFromGitHub }:
 
 opl3bankeditor.overrideAttrs (oldAttrs: rec {
-  version = "1.3-beta";
+  version = "1.3";
   pname = "OPN2BankEditor";
 
   src = fetchFromGitHub {
     owner = "Wohlstand";
     repo = pname;
-    rev = version;
-    sha256 = "0blcvqfj1yj6cmm079aw4jdzv3066jxqy9krp268i6cl2b3bmwvw";
+    rev = "v${version}";
+    sha256 = "0xsvv0gxqh1lx22f1jm384f7mq1jp57fmpsx1jjaxz435w5hf8s0";
     fetchSubmodules = true;
   };
-
-  # to be removed with next release
-  postInstall = ''
-    install -Dm755 opn2_bank_editor $out/bin/opn2_bank_editor
-  '';
 })
diff --git a/nixpkgs/pkgs/tools/audio/playerctl/default.nix b/nixpkgs/pkgs/tools/audio/playerctl/default.nix
index 6d7d92808c1f..c1cddf12b650 100644
--- a/nixpkgs/pkgs/tools/audio/playerctl/default.nix
+++ b/nixpkgs/pkgs/tools/audio/playerctl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "playerctl";
-  version = "2.1.1";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = "acrisci";
     repo = "playerctl";
     rev = "v${version}";
-    sha256 = "03f3645ssqf8dpkyzj9rlglrzh0840sflalskx9s4i03bgq3v4r9";
+    sha256 = "17hi33sw3663qz5v54bqqil31sgkrlxkb2l5bgqk87pac6x2wnbz";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig gtk-doc docbook_xsl gobject-introspection ];
diff --git a/nixpkgs/pkgs/tools/audio/qastools/default.nix b/nixpkgs/pkgs/tools/audio/qastools/default.nix
index 86ef7f050b23..55dbba007f87 100644
--- a/nixpkgs/pkgs/tools/audio/qastools/default.nix
+++ b/nixpkgs/pkgs/tools/audio/qastools/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "qastools";
-  version = "0.22.0";
+  version = "0.23.0";
 
   src = fetchFromGitLab {
     owner = "sebholt";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0px4fcn8dagivq5fyi5gy84yj86f6x0lk805mc4ry58d0wsbn68v";
+    sha256 = "19hn64hnvryfmrkdg6rqyzahdbqf1s5y3dcca389jj6sdx93b3ip";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/tools/backup/bup/default.nix b/nixpkgs/pkgs/tools/backup/bup/default.nix
index 57ab854a33cb..ee6ae0a29342 100644
--- a/nixpkgs/pkgs/tools/backup/bup/default.nix
+++ b/nixpkgs/pkgs/tools/backup/bup/default.nix
@@ -5,7 +5,7 @@
 
 assert par2Support -> par2cmdline != null;
 
-let version = "0.30.1"; in
+let version = "0.31"; in
 
 with stdenv.lib;
 
@@ -17,7 +17,7 @@ stdenv.mkDerivation {
     repo = "bup";
     owner = "bup";
     rev = version;
-    sha256 = "0z9rpmmi6mbm48ynd6izr0f8l3cklfyar6gjy0c8z9zal1ac9r55";
+    sha256 = "03kmmdlgg0p5z39bhckkf91mmq55wghb93ghqvv9f9gaby1diw4z";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/tools/backup/dar/default.nix b/nixpkgs/pkgs/tools/backup/dar/default.nix
index a439bbf41b13..1f379feece49 100644
--- a/nixpkgs/pkgs/tools/backup/dar/default.nix
+++ b/nixpkgs/pkgs/tools/backup/dar/default.nix
@@ -1,18 +1,28 @@
-{ stdenv, fetchurl, zlib, bzip2, openssl, attr, lzo, libgcrypt, e2fsprogs, gpgme, xz }:
+{ stdenv, fetchurl
+, attr, e2fsprogs
+, curl, librsync, libthreadar
+, gpgme, libgcrypt, openssl
+, bzip2, lzo, xz, zlib
+}:
 
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "2.6.9";
+  version = "2.6.10";
   pname = "dar";
 
   src = fetchurl {
     url = "mirror://sourceforge/dar/${pname}-${version}.tar.gz";
-    sha256 = "1jzqq54w1dix2qdlj4hr9dpq9fnp23h102bk8d2gq6k7n2zgaj6v";
+    sha256 = "1ryj4xxar18hshg38j1ljhplypgmfprwqn72k1jwxi28qravg80n";
   };
 
-  buildInputs = [ zlib bzip2 openssl lzo libgcrypt gpgme xz ]
-    ++ optionals stdenv.isLinux [ attr e2fsprogs ];
+  outputs = [ "out" "dev" ];
+
+  buildInputs = [
+    curl librsync libthreadar
+    gpgme libgcrypt openssl
+    bzip2 lzo xz zlib
+  ] ++ optionals stdenv.isLinux [ attr e2fsprogs ];
 
   configureFlags = [
     "--disable-birthtime"
@@ -23,7 +33,8 @@ stdenv.mkDerivation rec {
   ];
 
   postInstall = ''
-    rm -r "$out"/share/dar # Disable html help
+    # Disable html help
+    rm -r "$out"/share/dar
   '';
 
   enableParallelBuilding = true;
@@ -33,6 +44,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://dar.linux.free.fr";
     description = "Disk ARchiver, allows backing up files into indexed archives";
+    maintainers = with maintainers; [ izorkin ];
     license = licenses.gpl2;
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/tools/backup/diskrsync/default.nix b/nixpkgs/pkgs/tools/backup/diskrsync/default.nix
index b96d6d75725a..1057eb71dd60 100644
--- a/nixpkgs/pkgs/tools/backup/diskrsync/default.nix
+++ b/nixpkgs/pkgs/tools/backup/diskrsync/default.nix
@@ -24,7 +24,6 @@ buildGoPackage rec {
     description = "Rsync for block devices and disk images";
     homepage = "https://github.com/dop251/diskrsync";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ jluttine ];
   };
 
diff --git a/nixpkgs/pkgs/tools/backup/dump/default.nix b/nixpkgs/pkgs/tools/backup/dump/default.nix
new file mode 100644
index 000000000000..38564e109d1c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/dump/default.nix
@@ -0,0 +1,24 @@
+# Tested with simple dump and restore -i, but complains that
+# /nix/store/.../etc/dumpdates doesn't exist.
+
+{ stdenv, fetchurl, pkgconfig,
+  e2fsprogs, ncurses, readline }:
+
+stdenv.mkDerivation rec {
+  pname = "dump";
+  version = "0.4b46";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/dump/dump-${version}.tar.gz";
+    sha256 = "15rg5y15ak0ppqlhcih78layvg7cwp6hc16p3c58xs8svlkxjqc0";
+  };
+
+  buildInputs = [ e2fsprogs pkgconfig ncurses readline ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://dump.sourceforge.io/";
+    description = "Linux Ext2 filesystem dump/restore utilities";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ falsifian ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/backup/duplicity/default.nix b/nixpkgs/pkgs/tools/backup/duplicity/default.nix
index 6d6da3c98749..c12cc1198c9c 100644
--- a/nixpkgs/pkgs/tools/backup/duplicity/default.nix
+++ b/nixpkgs/pkgs/tools/backup/duplicity/default.nix
@@ -46,9 +46,8 @@ pythonPackages.buildPythonApplication rec {
     librsync
   ];
 
-  propagatedBuildInputs = [
-    backblaze-b2
-  ] ++ (with pythonPackages; [
+  propagatedBuildInputs = with pythonPackages; [
+    b2sdk
     boto
     cffi
     cryptography
@@ -65,7 +64,7 @@ pythonPackages.buildPythonApplication rec {
     future
   ] ++ stdenv.lib.optionals (!isPy3k) [
     enum
-  ]);
+  ];
 
   checkInputs = [
     gnupg # Add 'gpg' to PATH.
diff --git a/nixpkgs/pkgs/tools/backup/grab-site/default.nix b/nixpkgs/pkgs/tools/backup/grab-site/default.nix
index 64a711606f85..e69823ab45d6 100644
--- a/nixpkgs/pkgs/tools/backup/grab-site/default.nix
+++ b/nixpkgs/pkgs/tools/backup/grab-site/default.nix
@@ -1,17 +1,25 @@
-{ stdenv, python3Packages, fetchFromGitHub }:
+{ stdenv, python37, fetchFromGitHub }:
 
-python3Packages.buildPythonApplication rec {
-  version = "2.1.16";
+let
+  python = python37.override {
+    self = python;
+    packageOverrides = self: super: {
+      tornado = super.tornado_4;
+    };
+  };
+
+in with python.pkgs; buildPythonApplication rec {
+  version = "2.1.19";
   name = "grab-site-${version}";
 
   src = fetchFromGitHub {
     rev = version;
     owner = "ArchiveTeam";
     repo = "grab-site";
-    sha256 = "01n3mi9q593sd2bbmbbp5pn2c3pkwj7iqmy02zbh8ciqskraja4z";
+    sha256 = "1v1hnhv5knzdl0kj3574ccwlh171vcb7faddp095ycdmiiybalk4";
   };
 
-  propagatedBuildInputs = with python3Packages; [
+  propagatedBuildInputs = [
     click ludios_wpull manhole lmdb autobahn fb-re2 websockets cchardet
   ];
 
diff --git a/nixpkgs/pkgs/tools/backup/kopia/default.nix b/nixpkgs/pkgs/tools/backup/kopia/default.nix
new file mode 100644
index 000000000000..bfeafd0875fd
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/kopia/default.nix
@@ -0,0 +1,43 @@
+{ lib, buildGoModule, fetchFromGitHub, coreutils }:
+
+buildGoModule rec {
+  pname = "kopia";
+  version = "0.7.1";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1ngm0vbx6ryks68bp0zarvncc36gbpkkqavxb3sfph9p959b9hif";
+  };
+
+  vendorSha256 = "07p2ka5rbasrgjfd4k2jn0ffshjp39kilz9b714ykyi1qflczr9b";
+
+  doCheck = false;
+
+  subPackages = [ "." ];
+
+  buildFlagsArray = ''
+    -ldflags=
+       -X github.com/kopia/kopia/repo.BuildVersion=${version}
+       -X github.com/kopia/kopia/repo.BuildInfo=${src.rev}
+  '';
+
+  postConfigure = ''
+    # make 'vendor' writable
+    cp -L -r vendor tmp-vendor
+    rm -rf vendor
+    mv tmp-vendor vendor
+
+    # speakeasy hardcodes /bin/stty https://github.com/bgentry/speakeasy/issues/22
+    substituteInPlace vendor/github.com/bgentry/speakeasy/speakeasy_unix.go \
+      --replace "/bin/stty" "${coreutils}/bin/stty"
+  '';
+
+  meta = with lib; {
+    homepage = "https://kopia.io";
+    description = "Cross-platform backup tool with fast, incremental backups, client-side end-to-end encryption, compression and data deduplication";
+    license = licenses.asl20;
+    maintainers = [ maintainers.bbigras ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/backup/monolith/default.nix b/nixpkgs/pkgs/tools/backup/monolith/default.nix
index 36d90fb8066c..9d33ce1f3f85 100644
--- a/nixpkgs/pkgs/tools/backup/monolith/default.nix
+++ b/nixpkgs/pkgs/tools/backup/monolith/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "monolith";
-  version = "2.2.7";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "Y2Z";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ww5q7pk269l2s7d2svkkyd7hb7g4hqmwjn09b287pmjcirnmqn9";
+    sha256 = "16k5mp64a5l063rdj65hbpx414xv0bqdvhvz49k8018f2a2jj5xl";
   };
 
-  cargoSha256 = "0jdbxshvm9hdxdjr3sy1kgszhfs9v4r6gp0nwvv2n92m3z8zri9y";
+  cargoSha256 = "0s5mv8mymycz4ga4zh9kbrhwmhgl4j01pw1sdzxy49l9waryk9p3";
 
   nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
   buildInputs = stdenv.lib.optionals stdenv.isLinux [ openssl ]
diff --git a/nixpkgs/pkgs/tools/backup/percona-xtrabackup/2_4.nix b/nixpkgs/pkgs/tools/backup/percona-xtrabackup/2_4.nix
new file mode 100644
index 000000000000..5c9ce70e5b95
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/percona-xtrabackup/2_4.nix
@@ -0,0 +1,6 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // {
+  version = "2.4.20";
+  sha256 = "0awdpkcgvx2aq7pwxy8jyzkin6cyrrh3d576x9ldm851kis9n5ii";
+})
diff --git a/nixpkgs/pkgs/tools/backup/percona-xtrabackup/8_0.nix b/nixpkgs/pkgs/tools/backup/percona-xtrabackup/8_0.nix
new file mode 100644
index 000000000000..2878e93fe70c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/percona-xtrabackup/8_0.nix
@@ -0,0 +1,14 @@
+{ callPackage, ... } @ args:
+
+callPackage ./generic.nix (args // {
+  version = "8.0.13";
+  sha256 = "0cj0fnjimv22ykfl0yk6w29wcjvqp8y8j2g1c6gcml65qazrswyr";
+
+  extraPatches = [
+    ./../../../servers/sql/mysql/abi-check.patch
+  ];
+
+  extraPostInstall = ''
+    rm -r "$out"/docs
+  '';
+})
diff --git a/nixpkgs/pkgs/tools/backup/percona-xtrabackup/default.nix b/nixpkgs/pkgs/tools/backup/percona-xtrabackup/default.nix
deleted file mode 100644
index a610bb8e13a4..000000000000
--- a/nixpkgs/pkgs/tools/backup/percona-xtrabackup/default.nix
+++ /dev/null
@@ -1,45 +0,0 @@
-{ stdenv, fetchFromGitHub, cmake, pkgconfig
-, boost, bison, curl, ncurses, openssl, xxd
-, libaio, libev, libgcrypt, libgpgerror, libtool, zlib
-}:
-
-stdenv.mkDerivation rec {
-  pname = "percona-xtrabackup";
-  version = "2.4.12";
-
-  src = fetchFromGitHub {
-    owner = "percona";
-    repo = "percona-xtrabackup";
-    rev = "${pname}-${version}";
-    sha256 = "1w17v2c677b3vfnm81bs63kjbfiin7f12wl9fbgp83hfpyx5msan";
-  };
-
-  nativeBuildInputs = [ cmake pkgconfig ];
-
-  buildInputs = [
-    boost bison curl ncurses openssl xxd
-    libaio libev libgcrypt libgpgerror libtool zlib
-  ];
-
-  cmakeFlags = [
-    "-DBUILD_CONFIG=xtrabackup_release"
-    "-DINSTALL_MYSQLTESTDIR=OFF"
-    "-DWITH_BOOST=system"
-    "-DWITH_SSL=system"
-    "-DWITH_ZLIB=system"
-    "-DWITH_MAN_PAGES=OFF"
-    "-DCMAKE_CXX_FLAGS=-std=gnu++03"
-  ];
-
-  postInstall = ''
-    rm -r "$out"/lib/plugin/debug
-  '';
-
-  meta = with stdenv.lib; {
-    description = "Non-blocking backup tool for MySQL";
-    homepage = "http://www.percona.com/software/percona-xtrabackup";
-    license = licenses.lgpl2;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ izorkin ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/backup/percona-xtrabackup/generic.nix b/nixpkgs/pkgs/tools/backup/percona-xtrabackup/generic.nix
new file mode 100644
index 000000000000..9339e8155eab
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/percona-xtrabackup/generic.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchFromGitHub, bison, boost, cmake, makeWrapper, pkgconfig
+, curl, cyrus_sasl, libaio, libedit, libev, libevent, libgcrypt, libgpgerror, lz4
+, ncurses, numactl, openssl, protobuf, valgrind, xxd, zlib
+, perlPackages
+, version, sha256, extraPatches ? [], extraPostInstall ? "", ...
+}:
+
+stdenv.mkDerivation rec {
+  pname = "percona-xtrabackup";
+  inherit version;
+
+  src = fetchFromGitHub {
+    owner = "percona";
+    repo = "percona-xtrabackup";
+    rev = "${pname}-${version}";
+    inherit sha256;
+  };
+
+  nativeBuildInputs = [ bison boost cmake makeWrapper pkgconfig ];
+
+  buildInputs = [
+    curl cyrus_sasl libaio libedit libev libevent libgcrypt libgpgerror lz4
+    ncurses numactl openssl protobuf valgrind xxd zlib
+  ] ++ (with perlPackages; [ perl DBI DBDmysql ]);
+
+  patches = extraPatches;
+
+  cmakeFlags = [
+    "-DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock"
+    "-DBUILD_CONFIG=xtrabackup_release"
+    "-DINSTALL_MYSQLTESTDIR=OFF"
+    "-DWITH_BOOST=system"
+    "-DWITH_CURL=system"
+    "-DWITH_EDITLINE=system"
+    "-DWITH_LIBEVENT=system"
+    "-DWITH_LZ4=system"
+    "-DWITH_PROTOBUF=system"
+    "-DWITH_SASL=system"
+    "-DWITH_SSL=system"
+    "-DWITH_ZLIB=system"
+    "-DWITH_VALGRIND=ON"
+    "-DWITH_MAN_PAGES=OFF"
+    "-DCMAKE_SKIP_BUILD_RPATH=OFF" # To run libmysql/libmysql_api_test during build.
+  ];
+
+  postInstall = ''
+    wrapProgram "$out"/bin/xtrabackup --prefix PERL5LIB : $PERL5LIB
+    rm -r "$out"/lib/plugin/debug
+  '' + extraPostInstall;
+
+  meta = with stdenv.lib; {
+    description = "Non-blocking backup tool for MySQL";
+    homepage = "http://www.percona.com/software/percona-xtrabackup";
+    license = licenses.lgpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ izorkin ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/backup/rdedup/default.nix b/nixpkgs/pkgs/tools/backup/rdedup/default.nix
index e2d415d92f6a..83b14d87db7b 100644
--- a/nixpkgs/pkgs/tools/backup/rdedup/default.nix
+++ b/nixpkgs/pkgs/tools/backup/rdedup/default.nix
@@ -32,7 +32,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dpc/rdedup";
     license = licenses.mpl20;
     maintainers = with maintainers; [ dywedir ];
-    platforms = platforms.all;
     broken = stdenv.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/tools/backup/restic/default.nix b/nixpkgs/pkgs/tools/backup/restic/default.nix
index f366533f9bfa..33cac4ad229b 100644
--- a/nixpkgs/pkgs/tools/backup/restic/default.nix
+++ b/nixpkgs/pkgs/tools/backup/restic/default.nix
@@ -1,4 +1,5 @@
-{ stdenv, lib, buildGoPackage, fetchFromGitHub, installShellFiles, nixosTests}:
+{ stdenv, lib, buildGoPackage, fetchFromGitHub, installShellFiles, makeWrapper
+, nixosTests, rclone }:
 
 buildGoPackage rec {
   pname = "restic";
@@ -15,11 +16,13 @@ buildGoPackage rec {
 
   subPackages = [ "cmd/restic" ];
 
-  nativeBuildInputs = [ installShellFiles ];
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
 
   passthru.tests.restic = nixosTests.restic;
 
-  postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
+  postInstall = ''
+    wrapProgram $out/bin/restic --prefix PATH : '${rclone}/bin'
+  '' + lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
     $out/bin/restic generate \
       --bash-completion restic.bash \
       --zsh-completion restic.zsh \
diff --git a/nixpkgs/pkgs/tools/backup/wal-g/default.nix b/nixpkgs/pkgs/tools/backup/wal-g/default.nix
index 2f2541c41cbd..85a6b169f745 100644
--- a/nixpkgs/pkgs/tools/backup/wal-g/default.nix
+++ b/nixpkgs/pkgs/tools/backup/wal-g/default.nix
@@ -1,22 +1,20 @@
-{ stdenv, buildGoModule, fetchFromGitHub, brotli }:
+{ lib, buildGoModule, fetchFromGitHub, brotli }:
 
 buildGoModule rec {
   pname = "wal-g";
-  version = "0.2.15";
+  version = "0.2.17";
 
   src = fetchFromGitHub {
     owner = "wal-g";
     repo = "wal-g";
     rev = "v${version}";
-    sha256 = "1hslhs9i4wib6c74gdq9yail958ff1y11pymjww2xr84wkwd9v7i";
+    sha256 = "0r6vy2b3xqwa22286srwngk63sq4aza6aj7brwc130vypcps7svp";
   };
 
-  vendorSha256 = "0jjr33k27k6h27sa01ipz0aydch3i9klknqb3yq8f048zkb54gv8";
+  vendorSha256 = "0r73l4kxzldca1vg5mshq6iqsxcrndcbmbp3d7i9pxyb2kig8gv5";
 
   buildInputs = [ brotli ];
 
-  doCheck = true;
-
   subPackages = [ "main/pg" ];
 
   buildFlagsArray = [ "-ldflags=-s -w -X github.com/wal-g/wal-g/cmd/pg.WalgVersion=${version} -X github.com/wal-g/wal-g/cmd/pg.GitRevision=${src.rev}" ];
@@ -25,10 +23,10 @@ buildGoModule rec {
     mv $out/bin/pg $out/bin/wal-g
   '';
 
-  meta = {
+  meta = with lib; {
     homepage = "https://github.com/wal-g/wal-g";
-    license = stdenv.lib.licenses.asl20;
+    license = licenses.asl20;
     description = "An archival restoration tool for PostgreSQL";
-    maintainers = [ stdenv.lib.maintainers.ocharles ];
+    maintainers = with maintainers; [ ocharles marsam ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/backup/zfs-prune-snapshots/default.nix b/nixpkgs/pkgs/tools/backup/zfs-prune-snapshots/default.nix
new file mode 100644
index 000000000000..434c86b343a8
--- /dev/null
+++ b/nixpkgs/pkgs/tools/backup/zfs-prune-snapshots/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchFromGitHub, go-md2man }:
+
+stdenv.mkDerivation rec {
+  version = "1.1.0";
+  pname = "zfs-prune-snapshots";
+
+  src = fetchFromGitHub {
+    owner = "bahamas10";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "09dz9v6m47dxfvfncz0k926dqfhagm87kd33dcw66cbw15ac3spx";
+  };
+
+  nativeBuildInputs = [ go-md2man ];
+
+  makeTargets = [ "man" ];
+
+  installPhase = ''
+    install -m 755 -D zfs-prune-snapshots $out/bin/zfs-prune-snapshots
+    install -m 644 -D man/zfs-prune-snapshots.1 $out/share/man/man1/zfs-prune-snapshots.1
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Remove snapshots from one or more zpools that match given criteria";
+    homepage = "https://github.com/bahamas10/zfs-prune-snapshots";
+    license = licenses.mit;
+    maintainers = [ maintainers.ymarkus ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix b/nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix
new file mode 100644
index 000000000000..16563c380998
--- /dev/null
+++ b/nixpkgs/pkgs/tools/bluetooth/blueberry/default.nix
@@ -0,0 +1,96 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, bluez-tools
+, cinnamon
+, gnome3
+, gobject-introspection
+, intltool
+, pavucontrol
+, python3Packages
+, utillinux
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "blueberry";
+  version = "1.3.9";
+
+  src = fetchFromGitHub {
+    owner = "linuxmint";
+    repo = pname;
+    rev = version;
+    sha256 = "0llvz1h2dmvhvwkkvl0q4ggi1nmdbllw34ppnravs5lybqkicyw9";
+  };
+
+  nativeBuildInputs = [
+    gobject-introspection
+    python3Packages.wrapPython
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    bluez-tools
+    cinnamon.xapps
+    gnome3.gnome-bluetooth
+    python3Packages.python
+    utillinux
+  ];
+
+  pythonPath = with python3Packages; [
+    dbus-python
+    pygobject3
+    setproctitle
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out
+    cp -a etc usr/* $out
+
+    # Fix paths
+    substituteInPlace $out/bin/blueberry \
+      --replace /usr/lib/blueberry $out/lib/blueberry
+    substituteInPlace $out/bin/blueberry-tray \
+      --replace /usr/lib/blueberry $out/lib/blueberry
+    substituteInPlace $out/etc/xdg/autostart/blueberry-obex-agent.desktop \
+      --replace /usr/lib/blueberry $out/lib/blueberry
+    substituteInPlace $out/etc/xdg/autostart/blueberry-tray.desktop \
+      --replace Exec=blueberry-tray Exec=$out/bin/blueberry-tray
+    substituteInPlace $out/lib/blueberry/blueberry-obex-agent.py \
+      --replace /usr/share $out/share
+    substituteInPlace $out/lib/blueberry/blueberry-tray.py \
+      --replace /usr/share $out/share
+    substituteInPlace $out/lib/blueberry/blueberry.py \
+      --replace '"bt-adapter"' '"${bluez-tools}/bin/bt-adapter"' \
+      --replace /usr/bin/pavucontrol ${pavucontrol}/bin/pavucontrol \
+      --replace /usr/lib/blueberry $out/lib/blueberry \
+      --replace /usr/share $out/share
+    substituteInPlace $out/lib/blueberry/rfkillMagic.py \
+      --replace /usr/bin/rfkill ${utillinux}/bin/rfkill \
+      --replace /usr/sbin/rfkill ${utillinux}/bin/rfkill \
+      --replace /usr/lib/blueberry $out/lib/blueberry
+    substituteInPlace $out/share/applications/blueberry.desktop \
+      --replace Exec=blueberry Exec=$out/bin/blueberry
+
+    glib-compile-schemas --strict $out/share/glib-2.0/schemas
+
+    runHook postInstall
+  '';
+
+  dontWrapGApps = true;
+
+  postFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+    wrapPythonProgramsIn $out/lib "$out $pythonPath"
+  '';
+
+  meta = with lib; {
+    description = "Bluetooth configuration tool";
+    homepage = "https://github.com/linuxmint/blueberry";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/cd-dvd/isolyzer/default.nix b/nixpkgs/pkgs/tools/cd-dvd/isolyzer/default.nix
new file mode 100644
index 000000000000..1fd704d90f19
--- /dev/null
+++ b/nixpkgs/pkgs/tools/cd-dvd/isolyzer/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, python3
+, fetchFromGitHub
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "isolyzer";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "KBNLresearch";
+    repo = pname;
+    rev = version;
+    sha256 = "1fysm05cz0z54apn1p889xhbgjnfwax6fngi05yij5qp2zxqghf9";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [ setuptools six ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/KBNLresearch/isolyzer";
+    description = "Verify size of ISO 9660 image against Volume Descriptor fields";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ mkg20001 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/compression/brotli/default.nix b/nixpkgs/pkgs/tools/compression/brotli/default.nix
index 229c6c8b8e4e..bf20e0119ec6 100644
--- a/nixpkgs/pkgs/tools/compression/brotli/default.nix
+++ b/nixpkgs/pkgs/tools/compression/brotli/default.nix
@@ -16,7 +16,8 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ cmake ];
 
   patches = stdenv.lib.optional staticOnly (fetchpatch {
-    url = "https://github.com/google/brotli/pull/655/commits/7289e5a378ba13801996a84d89d8fe95c3fc4c11.patch";
+    # from https://github.com/google/brotli/pull/655
+    url = "https://github.com/google/brotli/commit/7289e5a378ba13801996a84d89d8fe95c3fc4c11.patch";
     sha256 = "1bghbdvj24jrvb0sqfdif9vwg7wx6pn8dvl6flkrcjkhpj0gi0jg";
   });
 
diff --git a/nixpkgs/pkgs/tools/compression/bzip2/1_1.nix b/nixpkgs/pkgs/tools/compression/bzip2/1_1.nix
new file mode 100644
index 000000000000..3f6105ca507b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/compression/bzip2/1_1.nix
@@ -0,0 +1,45 @@
+{ stdenv
+, fetchFromGitLab
+, meson
+, python3
+, ninja
+}:
+
+stdenv.mkDerivation rec {
+  pname = "bzip2-unstable";
+  version = "2020-08-11";
+
+  src = fetchFromGitLab {
+    owner = "federicomenaquintero";
+    repo = "bzip2";
+    rev = "15255b553e7c095fb7a26d4dc5819a11352ebba1";
+    sha256 = "sha256-BAyz35D62LWi47B/gNcCSKpdaECHBGSpt21vtnk3fKs=";
+  };
+
+  postPatch = ''
+    patchShebangs install_links.py
+  '';
+
+  nativeBuildInputs = [
+    meson
+    python3
+    ninja
+  ];
+
+  outputs = [ "bin" "dev" "out" "man" ];
+
+  mesonFlags = [
+    "-Ddocs=disabled"
+  ];
+
+  strictDeps = true;
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "High-quality data compression program";
+    license = licenses.bsdOriginal;
+    platforms = platforms.all;
+    maintainers = [];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/compression/lzfse/default.nix b/nixpkgs/pkgs/tools/compression/lzfse/default.nix
index 72560c1d9ae2..bd97620dba66 100644
--- a/nixpkgs/pkgs/tools/compression/lzfse/default.nix
+++ b/nixpkgs/pkgs/tools/compression/lzfse/default.nix
@@ -1,19 +1,17 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchFromGitHub, cmake }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "lzfse";
-  version = "2017-03-08";
+  version = "1.0";
 
   src = fetchFromGitHub {
     owner = "lzfse";
     repo = "lzfse";
-    rev = "88e2d27";
+    rev = "lzfse-${version}";
     sha256 = "1mfh6y6vpvxsdwmqmfbkqkwvxc0pz2dqqc72c6fk9sbsrxxaghd5";
   };
 
-  makeFlags = [ "INSTALL_PREFIX=$(out)" ];
-
-  enableParallelBuilding = false; #bug
+  nativeBuildInputs = [ cmake ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/lzfse/lzfse";
@@ -23,7 +21,7 @@ stdenv.mkDerivation {
       LZFSE is a Lempel-Ziv style data compression algorithm using Finite State Entropy coding.
       It targets similar compression rates at higher compression and decompression speed compared to deflate using zlib.
     '';
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/nixpkgs/pkgs/tools/compression/pixz/default.nix b/nixpkgs/pkgs/tools/compression/pixz/default.nix
index 7eca80f8400c..c7b4b46328d7 100644
--- a/nixpkgs/pkgs/tools/compression/pixz/default.nix
+++ b/nixpkgs/pkgs/tools/compression/pixz/default.nix
@@ -5,7 +5,7 @@
 }:
 stdenv.mkDerivation rec {
   baseName = "pixz";
-  version = "1.0.6";
+  version = "1.0.7";
   name = "${baseName}-${version}";
 
   nativeBuildInputs = [ pkgconfig ];
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
     owner = "vasi";
     repo = baseName;
     rev = "v${version}";
-    sha256 = "0q61wqg2yxrgd4nc7256mf7izp92is29ll3rax1cxr6fj9jrd8b7";
+    sha256 = "163axxs22w7pghr786hda22mnlpvmi50hzhfr9axwyyjl9n41qs2";
   };
   preConfigure = ''
     ./autogen.sh
diff --git a/nixpkgs/pkgs/tools/compression/zstd/default.nix b/nixpkgs/pkgs/tools/compression/zstd/default.nix
index f919fb92ed1d..8ce434741a55 100644
--- a/nixpkgs/pkgs/tools/compression/zstd/default.nix
+++ b/nixpkgs/pkgs/tools/compression/zstd/default.nix
@@ -1,8 +1,9 @@
-{ stdenv, fetchFromGitHub, fetchpatch, cmake, gnugrep
+{ stdenv, fetchFromGitHub, fetchpatch, cmake, bash, gnugrep
 , fixDarwinDylibNames
 , file
 , legacySupport ? false
-, enableShared ? true }:
+, static ? false
+}:
 
 stdenv.mkDerivation rec {
   pname = "zstd";
@@ -17,6 +18,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake ]
    ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
+  buildInputs = [ bash ];
 
   patches = [
     ./playtests-darwin.patch
@@ -28,9 +30,20 @@ stdenv.mkDerivation rec {
     # work fine, and I'm not sure how to write the condition.
     ++ stdenv.lib.optional stdenv.hostPlatform.isWindows ./mcfgthreads-no-pthread.patch;
 
+  postPatch = stdenv.lib.optionalString (!static) ''
+    substituteInPlace build/cmake/CMakeLists.txt \
+      --replace 'message(SEND_ERROR "You need to build static library to build tests")' ""
+    substituteInPlace build/cmake/tests/CMakeLists.txt \
+      --replace 'libzstd_static' 'libzstd_shared'
+    sed -i \
+      "1aexport ${stdenv.lib.optionalString stdenv.isDarwin "DY"}LD_LIBRARY_PATH=$PWD/build_/lib" \
+      tests/playTests.sh
+  '';
+
   cmakeFlags = [
-    "-DZSTD_BUILD_SHARED:BOOL=${if enableShared then "ON" else "OFF"}"
-    # They require STATIC for bin/zstd and tests.
+    "-DZSTD_BUILD_SHARED:BOOL=${if (!static) then "ON" else "OFF"}"
+    "-DZSTD_BUILD_STATIC:BOOL=${if static then "ON" else "OFF"}"
+    "-DZSTD_PROGRAMS_LINK_SHARED:BOOL=${if (!static) then "ON" else "OFF"}"
     "-DZSTD_LEGACY_SUPPORT:BOOL=${if legacySupport then "ON" else "OFF"}"
     "-DZSTD_BUILD_TESTS:BOOL=ON"
   ];
@@ -44,6 +57,8 @@ stdenv.mkDerivation rec {
   doCheck = true;
   checkPhase = ''
     runHook preCheck
+    # Patch shebangs for playTests
+    patchShebangs ../programs/zstdgrep
     ctest -R playTests # The only relatively fast test.
     runHook postCheck
   '';
@@ -56,8 +71,6 @@ stdenv.mkDerivation rec {
     substituteInPlace ../programs/zstdless \
       --replace "zstdcat" "$bin/bin/zstdcat"
   '';
-  # Don't duplicate the library code in runtime closures.
-  postInstall = stdenv.lib.optionalString enableShared ''rm "$out"/lib/libzstd.a'';
 
   outputs = [ "bin" "dev" "man" "out" ];
 
diff --git a/nixpkgs/pkgs/tools/filesystems/avfs/default.nix b/nixpkgs/pkgs/tools/filesystems/avfs/default.nix
index eaf9ac634a17..edfcaa0d8f81 100644
--- a/nixpkgs/pkgs/tools/filesystems/avfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/avfs/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "avfs";
-  version = "1.1.2";
+  version = "1.1.3";
   src = fetchurl {
     url = "mirror://sourceforge/avf/${version}/${pname}-${version}.tar.bz2";
-    sha256 = "035b6y49nzgswf5n70aph8pm48sbv9nqwlnp3wwbq892c39kk4xn";
+    sha256 = "1psh8k7g7rb0gn7aygbjv86kxyi9xq07barxksa99nnmq3lc2kjg";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/tools/filesystems/bashmount/default.nix b/nixpkgs/pkgs/tools/filesystems/bashmount/default.nix
index 5aeff6baaa9a..bab8df1280dd 100644
--- a/nixpkgs/pkgs/tools/filesystems/bashmount/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/bashmount/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bashmount";
-  version = "3.2.0";
+  version = "4.3.2";
 
   src = fetchFromGitHub {
     owner = "jamielinux";
     repo = "bashmount";
     rev = version;
-    sha256 = "0rki4s0jgz6vkywc6hcx9qa551r5bnjs7sw0rdh93k64l32kh644";
+    sha256 = "1irw47s6i1qwxd20cymzlfw5sv579cw877l27j3p66qfhgadwxrl";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/filesystems/bcache-tools/default.nix b/nixpkgs/pkgs/tools/filesystems/bcache-tools/default.nix
index 749aa04ebc70..c3b1759bcdd5 100644
--- a/nixpkgs/pkgs/tools/filesystems/bcache-tools/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/bcache-tools/default.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
     sed -e "/INSTALL.*initramfs\/hook/d" \
         -e "/INSTALL.*initcpio\/install/d" \
         -e "/INSTALL.*dracut\/module-setup.sh/d" \
+        -e "s/pkg-config/$PKG_CONFIG/" \
         -i Makefile
   '';
 
@@ -28,8 +29,12 @@ stdenv.mkDerivation rec {
     ./fix-static.patch
   ];
 
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "UDEVLIBDIR=${placeholder "out"}/lib/udev/"
+  ];
+
   preBuild = ''
-    export makeFlags="$makeFlags PREFIX=\"$out\" UDEVLIBDIR=\"$out/lib/udev/\"";
     sed -e "s|/bin/sh|${bash}/bin/sh|" -i *.rules
   '';
 
diff --git a/nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix b/nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix
index 26158b0361d5..ee2af363a566 100644
--- a/nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/bcachefs-tools/default.nix
@@ -1,17 +1,18 @@
-{ stdenv, fetchgit, pkgconfig, attr, libuuid, libscrypt, libsodium, keyutils
-, liburcu, zlib, libaio, zstd, lz4, valgrind, python3Packages
+{ stdenv, fetchFromGitHub, pkgconfig, attr, libuuid, libscrypt, libsodium, keyutils
+, liburcu, zlib, libaio, udev, zstd, lz4, valgrind, python3Packages
 , fuseSupport ? false, fuse3 ? null }:
 
 assert fuseSupport -> fuse3 != null;
 
 stdenv.mkDerivation {
   pname = "bcachefs-tools";
-  version = "2020-04-04";
+  version = "2020-08-25";
 
-  src = fetchgit {
-    url = "https://evilpiepirate.org/git/bcachefs-tools.git";
-    rev = "5d6e237b728cfb7c3bf2cb1a613e64bdecbd740d";
-    sha256 = "1syym9k3njb0bk2mg6832cbf6r42z6y8b6hjv7dg4gmv2h7v7l7g";
+  src = fetchFromGitHub {
+    owner = "koverstreet";
+    repo = "bcachefs-tools";
+    rev = "487ddeb03c574e902c5b749b4307e87e2150976a";
+    sha256 = "1pcid7apxmbl9dyvxcqby3k489wi69k8pl596ddzmkw5gmhgvgid";
   };
 
   postPatch = ''
@@ -29,10 +30,10 @@ stdenv.mkDerivation {
 
   buildInputs = [
     libuuid libscrypt libsodium keyutils liburcu zlib libaio
-    zstd lz4 python3Packages.pytest
+    zstd lz4 python3Packages.pytest udev valgrind
   ] ++ stdenv.lib.optional fuseSupport fuse3;
 
-  doCheck = true;
+  doCheck = false; # needs bcachefs module loaded on builder
 
   checkFlags = [
     "BCACHEFS_TEST_USE_VALGRIND=no"
diff --git a/nixpkgs/pkgs/tools/filesystems/btrfs-heatmap/default.nix b/nixpkgs/pkgs/tools/filesystems/btrfs-heatmap/default.nix
new file mode 100644
index 000000000000..04d74d78cfde
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/btrfs-heatmap/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, lib
+, fetchFromGitHub
+, python3
+, installShellFiles
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "btrfs-heatmap";
+  version = "8";
+
+  src = fetchFromGitHub {
+    owner = "knorrie";
+    repo = "btrfs-heatmap";
+    rev = "v${version}";
+    sha256 = "035frvk3s7g18y81srssvm550nfq7jylr7w60nvixidxvrc0yrnh";
+  };
+
+  # man page is currently only in the debian branch
+  # https://github.com/knorrie/btrfs-heatmap/issues/11
+  msrc = fetchurl {
+    url = "https://raw.githubusercontent.com/knorrie/btrfs-heatmap/45d844e12d7f5842ebb99e65d7b968a5e1a89066/debian/man/btrfs-heatmap.8";
+    sha256 = "1md7xc426sc8lq4w29gjd6gv7vjqhcwrqqcr6z39kihvi04d5f6q";
+  };
+
+  buildInputs = [ python3 ];
+  nativeBuildInputs = [ python3.pkgs.wrapPython installShellFiles ];
+
+  outputs = [ "out" "man" ];
+
+  installPhase = ''
+    install -Dm 0755 heatmap.py $out/sbin/btrfs-heatmap
+    installManPage ${msrc}
+
+    buildPythonPath ${python3.pkgs.btrfs}
+    patchPythonScript $out/sbin/btrfs-heatmap
+  '';
+
+  meta = with lib; {
+    description = "Visualize the layout of a mounted btrfs";
+    homepage = "https://github.com/knorrie/btrfs-heatmap";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = [ maintainers.evils ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix b/nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix
index 5a6dafae2980..8ff72421a598 100644
--- a/nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/btrfs-progs/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "btrfs-progs";
-  version = "5.6.1";
+  version = "5.7";
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v${version}.tar.xz";
-    sha256 = "1nwnvjdnr9fjj2q2p2vpjabfdhcrwykgj9knjcsqy0c7p1bgbk2h";
+    sha256 = "0p6ycbr8sw5bq3mj84gh9rvh5sk8sjr2l9hb9dhm4j41ij5h8bsw";
   };
 
   nativeBuildInputs = [
@@ -20,10 +20,6 @@ stdenv.mkDerivation rec {
 
   # for python cross-compiling
   _PYTHON_HOST_PLATFORM = stdenv.hostPlatform.config;
-  # The i686 case is a quick hack; I don't know what's wrong.
-  postConfigure = stdenv.lib.optionalString (!stdenv.isi686) ''
-    export LDSHARED="$LD -shared"
-  '';
 
   # gcc bug with -O1 on ARM with gcc 4.8
   # This should be fine on all platforms so apply universally
diff --git a/nixpkgs/pkgs/tools/filesystems/ceph/0000-fix-SPDK-build-env.patch b/nixpkgs/pkgs/tools/filesystems/ceph/0000-fix-SPDK-build-env.patch
index b04082537b53..a117408b000f 100644
--- a/nixpkgs/pkgs/tools/filesystems/ceph/0000-fix-SPDK-build-env.patch
+++ b/nixpkgs/pkgs/tools/filesystems/ceph/0000-fix-SPDK-build-env.patch
@@ -1,11 +1,11 @@
---- a/cmake/modules/BuildSPDK.cmake	2018-08-09 09:22:34.950684960 +0200
-+++ b/cmake/modules/BuildSPDK.cmake	2018-08-09 09:21:59.986964224 +0200
-@@ -16,7 +16,7 @@
+--- a/cmake/modules/BuildSPDK.cmake
++++ b/cmake/modules/BuildSPDK.cmake
+@@ -35,7 +35,7 @@ macro(build_spdk)
      # unset $CFLAGS, otherwise it will interfere with how SPDK sets
      # its include directory.
      # unset $LDFLAGS, otherwise SPDK will fail to mock some functions.
--    BUILD_COMMAND env -i PATH=$ENV{PATH} CC=${CMAKE_C_COMPILER} $(MAKE) EXTRA_CFLAGS="-fPIC"
-+    BUILD_COMMAND env PATH=$ENV{PATH} CC=${CMAKE_C_COMPILER} $(MAKE) EXTRA_CFLAGS="-fPIC" C_OPT="-mssse3"
+-    BUILD_COMMAND env -i PATH=$ENV{PATH} CC=${CMAKE_C_COMPILER} ${make_cmd} EXTRA_CFLAGS="${spdk_CFLAGS}"
++    BUILD_COMMAND env -i PATH=$ENV{PATH} CC=${CMAKE_C_COMPILER} ${make_cmd} EXTRA_CFLAGS="${spdk_CFLAGS}" C_OPT="-mssse3"
      BUILD_IN_SOURCE 1
      INSTALL_COMMAND "true")
-   ExternalProject_Get_Property(spdk-ext source_dir)
+   unset(make_cmd)
diff --git a/nixpkgs/pkgs/tools/filesystems/ceph/default.nix b/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
index c2234404d34a..9b9fe9a5aaf0 100644
--- a/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/ceph/default.nix
@@ -11,6 +11,7 @@
 , rocksdb, makeWrapper
 , leveldb, oathToolkit
 , libnl, libcap_ng
+, rdkafka
 
 # Optional Dependencies
 , yasm ? null, fcgi ? null, expat ? null
@@ -74,6 +75,26 @@ let
     none = [ ];
   };
 
+  getMeta = description: {
+     homepage = "https://ceph.com/";
+     inherit description;
+     license = with licenses; [ lgpl21 gpl2 bsd3 mit publicDomain ];
+     maintainers = with maintainers; [ adev ak johanot krav ];
+     platforms = [ "x86_64-linux" ];
+   };
+
+  ceph-common = python3Packages.buildPythonPackage rec{
+    pname = "ceph-common";
+    inherit src version;
+
+    sourceRoot = "ceph-${version}/src/python-common";
+
+    checkInputs = [ python3Packages.pytest ];
+    propagatedBuildInputs = with python3Packages; [ pyyaml six ];
+
+    meta = getMeta "Ceph common module for code shared by manager modules";
+  };
+
   ceph-python-env = python3Packages.python.withPackages (ps: [
     ps.sphinx
     ps.flask
@@ -82,27 +103,33 @@ let
     ps.virtualenv
     # Libraries needed by the python tools
     ps.Mako
+    ceph-common
     ps.cherrypy
+    ps.dateutil
+    ps.jsonpatch
     ps.pecan
     ps.prettytable
     ps.pyjwt
     ps.webob
     ps.bcrypt
+    # scipy > 1.3 breaks diskprediction_local, leading to mgr hang on startup
+    # Bump (and get rid of scipy_1_3) once these issues are resolved:
+    # https://tracker.ceph.com/issues/42764 https://tracker.ceph.com/issues/45147
+    ps.scipy_1_3
     ps.six
     ps.pyyaml
   ]);
   sitePackages = ceph-python-env.python.sitePackages;
 
-  version = "14.2.9";
+  version = "15.2.5";
+  src = fetchurl {
+    url = "http://download.ceph.com/tarballs/ceph-${version}.tar.gz";
+    sha256 = "05p7ssbfypf5x8bry361rrnyaihf89xzbqzhygdyrg7w1rxpna8d";
+  };
 in rec {
   ceph = stdenv.mkDerivation {
     pname = "ceph";
-    inherit version;
-
-    src = fetchurl {
-      url = "http://download.ceph.com/tarballs/ceph-${version}.tar.gz";
-      sha256 = "0zkh1a23v8g1fa5flqa2d53lv08ancab3li57gybpqpnja90k7il";
-    };
+    inherit src version;
 
     patches = [
       ./0000-fix-SPDK-build-env.patch
@@ -118,7 +145,7 @@ in rec {
     buildInputs = cryptoLibsMap.${cryptoStr} ++ [
       boost ceph-python-env libxml2 optYasm optLibatomic_ops optLibs3
       malloc zlib openldap lttng-ust babeltrace gperf gtest cunit
-      snappy rocksdb lz4 oathToolkit leveldb libnl libcap_ng
+      snappy rocksdb lz4 oathToolkit leveldb libnl libcap_ng rdkafka
     ] ++ optionals stdenv.isLinux [
       linuxHeaders utillinux libuuid udev keyutils optLibaio optLibxfs optZfs
       # ceph 14
@@ -172,25 +199,13 @@ in rec {
 
     doCheck = false; # uses pip to install things from the internet
 
-    meta = {
-      homepage = "https://ceph.com/";
-      description = "Distributed storage system";
-      license = with licenses; [ lgpl21 gpl2 bsd3 mit publicDomain ];
-      maintainers = with maintainers; [ adev ak krav johanot ];
-      platforms = [ "x86_64-linux" ];
-    };
+    meta = getMeta "Distributed storage system";
 
     passthru.version = version;
   };
 
   ceph-client = runCommand "ceph-client-${version}" {
-     meta = {
-        homepage = "https://ceph.com/";
-        description = "Tools needed to mount Ceph's RADOS Block Devices";
-        license = with licenses; [ lgpl21 gpl2 bsd3 mit publicDomain ];
-        maintainers = with maintainers; [ adev ak johanot krav ];
-        platforms = [ "x86_64-linux" ];
-      };
+      meta = getMeta "Tools needed to mount Ceph's RADOS Block Devices";
     } ''
       mkdir -p $out/{bin,etc,${sitePackages}}
       cp -r ${ceph}/bin/{ceph,.ceph-wrapped,rados,rbd,rbdmap} $out/bin
diff --git a/nixpkgs/pkgs/tools/filesystems/f2fs-tools/default.nix b/nixpkgs/pkgs/tools/filesystems/f2fs-tools/default.nix
index 2ab168a19a5a..af30751b885b 100644
--- a/nixpkgs/pkgs/tools/filesystems/f2fs-tools/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/f2fs-tools/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "f2fs-tools";
-  version = "1.13.0";
+  version = "1.14.0";
 
   src = fetchgit {
     url = "https://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git";
     rev = "refs/tags/v${version}";
-    sha256 = "0h6wincsvg6s232ajxblg66r5nx87v00a4w7xkbxgbl1qyny477j";
+    sha256 = "06ss05n87i1c3149qb3n7j1qp2scv3g2adx0v6ljkl59ab9b5saj";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/nixpkgs/pkgs/tools/filesystems/f3/default.nix b/nixpkgs/pkgs/tools/filesystems/f3/default.nix
index 3559579fe80f..e8d60f835bf0 100644
--- a/nixpkgs/pkgs/tools/filesystems/f3/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/f3/default.nix
@@ -1,13 +1,11 @@
-{ stdenv, fetchFromGitHub
-, parted, udev
+{ stdenv, lib, fetchFromGitHub
+, parted, systemd ? null
 }:
 
 stdenv.mkDerivation rec {
   pname = "f3";
   version = "7.2";
 
-  enableParallelBuilding = true;
-
   src = fetchFromGitHub {
     owner = "AltraMayor";
     repo = pname;
@@ -15,24 +13,45 @@ stdenv.mkDerivation rec {
     sha256 = "1iwdg0r4wkgc8rynmw1qcqz62l0ldgc8lrazq33msxnk5a818jgy";
   };
 
-  buildInputs = [ parted udev ];
+  postPatch = ''
+     sed -i 's/-oroot -groot//' Makefile
+
+     for f in f3write.h2w log-f3wr; do
+      substituteInPlace $f \
+        --replace '$(dirname $0)' $out/bin
+     done
+  '';
+
+  buildInputs = [
+    parted
+  ]
+  ++ lib.optional stdenv.isLinux systemd;
+
+  enableParallelBuilding = true;
+
+  buildFlags   = [
+    "all" # f3read, f3write
+  ]
+  ++ lib.optional stdenv.isLinux "extra"; # f3brew, f3fix, f3probe
 
-  patchPhase = "sed -i 's/-oroot -groot//' Makefile";
+  installFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
 
-  buildFlags   = [ "all"                    # f3read, f3write
-                   "extra"                  # f3brew, f3fix, f3probe
-                 ];
+  installTargets = [
+    "install"
+  ]
+  ++ lib.optional stdenv.isLinux "install-extra";
 
-  installFlags = [ "PREFIX=$(out)"
-                   "install"
-                   "install-extra"
-                 ];
+  postInstall = ''
+    install -Dm555 -t $out/bin f3write.h2w log-f3wr
+    install -Dm444 -t $out/share/doc/${pname} LICENSE README.rst
+  '';
 
-  meta = {
+  meta = with lib; {
     description = "Fight Flash Fraud";
     homepage = "http://oss.digirati.com.br/f3/";
-    license = stdenv.lib.licenses.gpl2;
-    platforms = stdenv.lib.platforms.linux;
-    maintainers = with stdenv.lib.maintainers; [ makefu ];
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ makefu ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/fatsort/default.nix b/nixpkgs/pkgs/tools/filesystems/fatsort/default.nix
index b8f63a379b1b..90ab3a6df415 100644
--- a/nixpkgs/pkgs/tools/filesystems/fatsort/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/fatsort/default.nix
@@ -1,12 +1,12 @@
 {stdenv, fetchurl, help2man}:
 
 stdenv.mkDerivation rec {
-  version = "1.6.2.605";
+  version = "1.6.3.622";
   pname = "fatsort";
 
   src = fetchurl {
     url = "mirror://sourceforge/fatsort/${pname}-${version}.tar.xz";
-    sha256 = "1dzzsl3a1ampari424vxkma0i87qkbgkgm2169x9xf3az0vgmjh8";
+    sha256 = "1z2nabm38lg56h05yx3jjsndbqxk1zbjcisrczzamypn13m98728";
   };
 
   patches = [ ./fatsort-Makefiles.patch ];
diff --git a/nixpkgs/pkgs/tools/filesystems/file-rename/default.nix b/nixpkgs/pkgs/tools/filesystems/file-rename/default.nix
index f9b6a941f68f..588295f77912 100644
--- a/nixpkgs/pkgs/tools/filesystems/file-rename/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/file-rename/default.nix
@@ -11,6 +11,12 @@ perlPackages.buildPerlPackage {
 
   nativeBuildInputs = [ makeWrapper ];
 
+  # Fix an incorrect platform test that misidentifies Darwin as Windows
+  postPatch = ''
+    substituteInPlace Makefile.PL \
+      --replace '/win/i' '/MSWin32/'
+  '';
+
   postInstall = ''
     wrapProgram $out/bin/rename \
       --prefix PERL5LIB : $out/${perlPackages.perl.libPrefix}
diff --git a/nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix b/nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix
index 46f6bb404ae9..11a3615a84c8 100644
--- a/nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/fuse-overlayfs/default.nix
@@ -2,20 +2,20 @@
 
 stdenv.mkDerivation rec {
   pname = "fuse-overlayfs";
-  version = "1.1.0";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0dv62kyc8hvwb4gkhyxzwagp87nv0mr1612dz6q835is1vqav134";
+    sha256 = "1ivz65nnyisha3lkk6ywx175f2sdacjz3q5vy9xddr7dixwd2b18";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   buildInputs = [ fuse3 ];
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) podman; };
 
   meta = with stdenv.lib; {
     description = "FUSE implementation for overlayfs";
diff --git a/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix b/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix
index 3f0e261b18d6..89fa3ebe33b6 100644
--- a/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/gcsfuse/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "gcsfuse";
-  version = "0.29.0";
+  version = "0.30.0";
 
   src = fetchFromGitHub {
     owner = "googlecloudplatform";
     repo = "gcsfuse";
     rev = "v${version}";
-    sha256 = "11an7cxgg3x830mwlhyx50xkcv7zpa9aziz6gz1crwp8shr4hdik";
+    sha256 = "1ai1dgf07g2c08rp87kygrl67hyj7x793093wmnwaxfpylx5flv0";
   };
 
   goPackagePath = "github.com/googlecloudplatform/gcsfuse";
@@ -20,6 +20,8 @@ buildGoPackage rec {
     ln -s $out/bin/mount_gcsfuse $out/bin/mount.fuse.gcsfuse
   '';
 
+  buildFlagsArray = [ "-ldflags=-s -w -X main.gcsfuseVersion=${version}" ];
+
   meta = with lib;{
     description = "A user-space file system for interacting with Google Cloud Storage";
     homepage = "https://cloud.google.com/storage/docs/gcs-fuse";
diff --git a/nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix b/nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix
index 70a0aff118db..bed971229cd6 100644
--- a/nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/gocryptfs/default.nix
@@ -1,42 +1,43 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
-{ stdenv, buildGoPackage, fetchFromGitHub, openssl, pandoc, pkgconfig }:
-
-let
-  goFuseVersion = with stdenv.lib; substring 0 7 (head (filter (
-    d: d.goPackagePath == "github.com/hanwen/go-fuse"
-  ) (import ./deps.nix))).fetch.rev;
-in
-buildGoPackage rec {
+{ stdenv
+, buildGoModule
+, fetchFromGitHub
+, openssl
+, pandoc
+, pkg-config
+}:
+
+buildGoModule rec {
   pname = "gocryptfs";
-  version = "1.7.1";
-
-  goPackagePath = "github.com/rfjakob/gocryptfs";
-
-  nativeBuildInputs = [ pandoc pkgconfig ];
-  buildInputs = [ openssl ];
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "rfjakob";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zhzhvjhvi6xzib985bsnj9yzp4zsnm91m1679nbab6vm3kanq06";
+    sha256 = "1acalwrr5xqhpqca3gypj0s68w6vpckxmg5z5gfgh8wx6nqx4aw9";
   };
 
-  postPatch = "rm -r tests";
+  runVend = true;
+  vendorSha256 = "0z3y51sgr1rmr23jpc5h5d5lw14p3qzv48rc7zj7qa4rd5cfhsgi";
+
+  nativeBuildInputs = [ pandoc pkg-config ];
+  buildInputs = [ openssl ];
 
   buildFlagsArray = ''
     -ldflags=
       -X main.GitVersion=${version}
-      -X main.GitVersionFuse=${goFuseVersion}
+      -X main.GitVersionFuse=[vendored]
+      -X main.BuildDate=unknown
   '';
 
-  goDeps = ./deps.nix;
+  subPackages = [ "." "gocryptfs-xray" "contrib/statfs" ];
 
   postBuild = ''
-    pushd go/src/github.com/rfjakob/gocryptfs/Documentation/
+    pushd Documentation/
     mkdir -p $out/share/man/man1
     pandoc MANPAGE.md -s -t man -o $out/share/man/man1/gocryptfs.1
     pandoc MANPAGE-XRAY.md -s -t man -o $out/share/man/man1/gocryptfs-xray.1
+    pandoc MANPAGE-STATFS.md -s -t man -o $out/share/man/man1/statfs.1
     popd
   '';
 
@@ -44,7 +45,7 @@ buildGoPackage rec {
     description = "Encrypted overlay filesystem written in Go";
     license = licenses.mit;
     homepage = "https://nuetzlich.net/gocryptfs/";
-    maintainers = with maintainers; [ flokli offline ];
+    maintainers = with maintainers; [ flokli offline prusnak ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/filesystems/gocryptfs/deps.nix b/nixpkgs/pkgs/tools/filesystems/gocryptfs/deps.nix
deleted file mode 100644
index cebad12327e0..000000000000
--- a/nixpkgs/pkgs/tools/filesystems/gocryptfs/deps.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
-  {
-    goPackagePath  = "github.com/hanwen/go-fuse";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hanwen/go-fuse";
-      rev =  "161a164844568ebf4bfaa68c90ba3a9f2914dda4";
-      sha256 = "1r0rs76k9zg60i02jlcqxi7m4ivla1xwv3ijwav7pfbyyr1yqhsx";
-    };
-  }
-  {
-    goPackagePath  = "github.com/jacobsa/crypto";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jacobsa/crypto";
-      rev =  "9f44e2d11115452dad8f404f029574422855f46a";
-      sha256 = "18c3cx8izxdajq22zdq0n19j9d2l6iickd3mz39j5h96kw7l5qmy";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pkg/xattr";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/xattr";
-      rev =  "7782c2d6871d6e659e1563dc19c86b845264a6fc";
-      sha256 = "1j3z5b9nwgkxia925rkiq8n5avhf4zhmsdbpn2s3xb16a2w66prd";
-    };
-  }
-  {
-    goPackagePath  = "github.com/rfjakob/eme";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rfjakob/eme";
-      rev =  "2222dbd4ba467ab3fc7e8af41562fcfe69c0d770";
-      sha256 = "0c227ly3z8pqaqg22lpd8nzgqrfsbjx5gi9rp9ks1cmd11dv2gl9";
-    };
-  }
-  {
-    goPackagePath  = "github.com/sabhiram/go-gitignore";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sabhiram/go-gitignore";
-      rev =  "d3107576ba9425fc1c85f4b3569c4631b805a02e";
-      sha256 = "1rdwyxgcsiwgmlqnc3k6h300mzlvjc3j21np4yh1h476wc8dvl0l";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev =  "a1f597ede03a7bef967a422b5b3a5bd08805a01e";
-      sha256 = "0yiczljll72ip2vkxgd6052rhpaba37a68vf6si3v8s8s3g870lc";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev =  "e225da77a7e68af35c70ccbf71af2b83e6acac3c";
-      sha256 = "0bh3583smcfw6jw3w6lp0za93rz7hpxfdz8vhxng75b7a6vdlw4p";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev =  "61b9204099cb1bebc803c9ffb9b2d3acd9d457d9";
-      sha256 = "110carnw1rxk9awbcdbg5is0zl28vynm649y7rza36pg1vlv8rrh";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/tools/filesystems/idsk/default.nix b/nixpkgs/pkgs/tools/filesystems/idsk/default.nix
index 72ed4f0ee1b4..6de0d586ad94 100644
--- a/nixpkgs/pkgs/tools/filesystems/idsk/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/idsk/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
 
   pname = "idsk";
-  version = "0.19";
+  version = "0.20";
 
   src = fetchFromGitHub {
     repo = "idsk";
     owner = "cpcsdk";
     rev = "v${version}";
-    sha256 = "0b4my5cz5kbzh4n65jr721piha6zixaxmfiss2zidip978k9rb6f";
+    sha256 = "05zbdkb9s6sfkni6k927795w2fqdhnf3i7kgl27715sdmmdab05d";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/tools/filesystems/lizardfs/default.nix b/nixpkgs/pkgs/tools/filesystems/lizardfs/default.nix
index 3ae898d4ba8a..e2cb603ca3d5 100644
--- a/nixpkgs/pkgs/tools/filesystems/lizardfs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/lizardfs/default.nix
@@ -47,6 +47,12 @@ stdenv.mkDerivation rec {
       url = "https://salsa.debian.org/debian/lizardfs/raw/bfcd5bcf/debian/patches/spdlog.patch";
       sha256 = "0j44rb816i6kfh3y2qdha59c4ja6wmcnlrlq29il4ybxn42914md";
     })
+    # Fix https://github.com/lizardfs/lizardfs/issues/655
+    # (Remove upon update to 3.13)
+    (fetchpatch {
+      url = "https://github.com/lizardfs/lizardfs/commit/5d20c95179be09241b039050bceda3c46980c004.patch";
+      sha256 = "185bfcz2rjr4cnxld2yc2nxwzz0rk4x1fl1sd25g8gr5advllmdv";
+    })
   ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/tools/filesystems/moosefs/default.nix b/nixpkgs/pkgs/tools/filesystems/moosefs/default.nix
index 8ceb3d7c0aac..df3dd661d75e 100644
--- a/nixpkgs/pkgs/tools/filesystems/moosefs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/moosefs/default.nix
@@ -10,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "moosefs";
-  version = "3.0.113";
+  version = "3.0.114";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0h3dhj6lznbkvmkr21w58avl9fa4pgj73fv0lkzcagksyyh5l0n9";
+    sha256 = "0bilrzzlg599xy21cm7r0xb2sanngr74j3z03xgybcm10kl97i7j";
   };
 
   nativeBuildInputs = [ pkgconfig makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/blivet.nix b/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
index b05abd72bac7..6ba29cb98d40 100644
--- a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
+++ b/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/blivet.nix
@@ -30,7 +30,7 @@ buildPythonApplication rec {
     sed -i -e 's|"lsof"|"${lsof}/bin/lsof"|' blivet/formats/fs.py
     sed -i -r -e 's|"(u?mount)"|"${utillinux.bin}/bin/\1"|' blivet/util.py
     sed -i -e '/find_library/,/find_library/ {
-      c libudev = "${systemd.lib}/lib/libudev.so.1"
+      c libudev = "${stdenv.lib.getLib systemd}/lib/libudev.so.1"
     }' blivet/pyudev.py
   '';
 
diff --git a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix b/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
index ffed57e6345e..36525e6fa3cd 100644
--- a/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
+++ b/nixpkgs/pkgs/tools/filesystems/nixpart/0.4/multipath-tools.nix
@@ -36,8 +36,8 @@ stdenv.mkDerivation rec {
       substituteInPlace kpartx/kpartx.rules --replace /sbin/kpartx $out/sbin/kpartx
       substituteInPlace kpartx/kpartx_id --replace /sbin/dmsetup ${lvm2}/sbin/dmsetup
 
-      substituteInPlace libmultipath/defaults.h --replace /lib/udev/scsi_id ${systemd.lib}/lib/udev/scsi_id
-      substituteInPlace libmultipath/hwtable.c --replace /lib/udev/scsi_id ${systemd.lib}/lib/udev/scsi_id
+      substituteInPlace libmultipath/defaults.h --replace /lib/udev/scsi_id ${stdenv.lib.getLib systemd}/lib/udev/scsi_id
+      substituteInPlace libmultipath/hwtable.c --replace /lib/udev/scsi_id ${stdenv.lib.getLib systemd}/lib/udev/scsi_id
 
       sed -i -re '
          s,^( *#define +DEFAULT_MULTIPATHDIR\>).*,\1 "'"$out/lib/multipath"'",
diff --git a/nixpkgs/pkgs/tools/filesystems/orangefs/default.nix b/nixpkgs/pkgs/tools/filesystems/orangefs/default.nix
index 37f4026799b6..8c1378d97bc4 100644
--- a/nixpkgs/pkgs/tools/filesystems/orangefs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/orangefs/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "orangefs";
-  version = "2.9.7";
+  version = "2.9.8";
 
   src = fetchurl {
     url = "http://download.orangefs.org/current/source/orangefs-${version}.tar.gz";
-    sha256 = "15669f5rcvn44wkas0mld0qmyclrmhbrw4bbbp66sw3a12vgn4sm";
+    sha256 = "0c2yla615j04ygclfavh8g5miqhbml2r0zs2c5mvkacf9in7p7sq";
   };
 
   nativeBuildInputs = [ bison flex perl autoreconfHook ];
diff --git a/nixpkgs/pkgs/tools/filesystems/rar2fs/default.nix b/nixpkgs/pkgs/tools/filesystems/rar2fs/default.nix
index 81cd1191b0bf..816aa1498cc6 100644
--- a/nixpkgs/pkgs/tools/filesystems/rar2fs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/rar2fs/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rar2fs";
-  version = "1.29.0";
+  version = "1.29.1";
 
   src = fetchFromGitHub {
     owner = "hasse69";
     repo = pname;
     rev = "v${version}";
-    sha256 = "137hv2fhlbdca6qyf4vjv1sl87g02zn137ja0fdjbzcc9y1n96d3";
+    sha256 = "03m20bnlm70xamrxnswxs4fzc2lr2wr6f7jq6b3a8sdwq3pqbzzx";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/filesystems/reiser4progs/default.nix b/nixpkgs/pkgs/tools/filesystems/reiser4progs/default.nix
index 896d472b8329..158097d38129 100644
--- a/nixpkgs/pkgs/tools/filesystems/reiser4progs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/reiser4progs/default.nix
@@ -1,13 +1,13 @@
 {stdenv, fetchurl, libaal}:
 
-let version = "2.0.0"; in
+let version = "2.0.1"; in
 stdenv.mkDerivation rec {
   pname = "reiser4progs";
   inherit version;
 
   src = fetchurl {
     url = "mirror://sourceforge/reiser4/reiser4-utils/${pname}-${version}.tar.gz";
-    sha256 = "00kx9prz3d5plp1hn4xdkkd99cw42sanlsjnjhj0fsrlmi9yfs8n";
+    sha256 = "1r7m95mnp6xmp1j5k99jhmz6g9y2qq7cghlmdxsfbr3xviqfs45d";
   };
 
   buildInputs = [libaal];
diff --git a/nixpkgs/pkgs/tools/filesystems/s3fs/default.nix b/nixpkgs/pkgs/tools/filesystems/s3fs/default.nix
index 282252b4b13a..3e91a1b0c475 100644
--- a/nixpkgs/pkgs/tools/filesystems/s3fs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/s3fs/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "s3fs-fuse";
-  version = "1.86";
+  version = "1.87";
 
   src = fetchFromGitHub {
     owner  = "s3fs-fuse";
     repo   = "s3fs-fuse";
     rev    = "v${version}";
-    sha256 = "115zqbspr17xmidhizjmsqv9c7ql2jhmxws8wh59bpz2335kn0q7";
+    sha256 = "09ib3sh6vg3z7cpccj3ysgpdyf84a98lf6nz15a61r4l27h111f2";
   };
 
   buildInputs = [ curl openssl libxml2 ]
diff --git a/nixpkgs/pkgs/tools/filesystems/securefs/default.nix b/nixpkgs/pkgs/tools/filesystems/securefs/default.nix
index c5a5af212d90..c8efa4d61abd 100644
--- a/nixpkgs/pkgs/tools/filesystems/securefs/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/securefs/default.nix
@@ -4,13 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "securefs";
-  version = "0.8.3";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
-    sha256 = "0nf0bd163gz844mikqab2mh7xjlj31ixa6hi85qxdifyjpfjv7y4";
+    sha256 = "1sxfgqgy63ml7vg7zj3glvra4wj2qmfv9jzmpm1jqy8hq7qlqlsx";
     rev = version;
     repo = "securefs";
     owner = "netheril96";
+    fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/tools/filesystems/squashfs-tools-ng/default.nix b/nixpkgs/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
index 72b95641d00f..0c977799db84 100644
--- a/nixpkgs/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
+++ b/nixpkgs/pkgs/tools/filesystems/squashfs-tools-ng/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "squashfs-tools-ng";
-  version = "0.9.1";
+  version = "1.0.1";
 
   src = fetchurl {
     url = "https://infraroot.at/pub/squashfs/squashfs-tools-ng-${version}.tar.xz";
-    sha256 = "1ilxkrqbpb5whv7xfwfvph76jwyjzf988njjpyyr99h6jv2r77q1";
+    sha256 = "120x2hlbhpm90bzxz70z764552ffrjpidmp1y6gafx70zp0hrks4";
   };
 
   nativeBuildInputs = [ doxygen graphviz pkgconfig perl ];
diff --git a/nixpkgs/pkgs/tools/filesystems/ubidump/default.nix b/nixpkgs/pkgs/tools/filesystems/ubidump/default.nix
new file mode 100644
index 000000000000..4feca6a040b4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/ubidump/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, fetchFromGitHub, python3, makeWrapper }:
+
+python3.pkgs.buildPythonApplication rec {
+
+  pname = "ubidump";
+  version = "unstable-2019-09-11";
+
+  src = fetchFromGitHub {
+    owner = "nlitsme";
+    repo = pname;
+    rev = "0691f1a9a38604c2baf8c9af6b826eb2632af74a";
+    sha256 = "1hiivlgni4r3nd5n2rzl5qzw6y2wpjpmyls5lybrc8imd6rmj3w2";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [ crcmod python-lzo ];
+
+  phases = [ "unpackPhase" "patchPhase" "installPhase" "installCheckPhase" ];
+
+  patchPhase = ''
+    sed -i '1s;^;#!${python3.interpreter}\n;' ubidump.py
+    patchShebangs ubidump.py
+  '';
+
+  installPhase = ''
+    install -D -m755 ubidump.py $out/bin/ubidump
+    wrapProgram $out/bin/ubidump --set PYTHONPATH $PYTHONPATH
+  '';
+
+  installCheckPhase = ''
+    $out/bin/ubidump -h  > /dev/null
+  '';
+
+  meta = with stdenv.lib; {
+    description = "View or extract the contents of UBIFS images";
+    homepage = "https://github.com/nlitsme/ubidump";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sgo ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/tools/filesystems/wiimms-iso-tools/default.nix b/nixpkgs/pkgs/tools/filesystems/wiimms-iso-tools/default.nix
new file mode 100644
index 000000000000..cb09fdcf131a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/wiimms-iso-tools/default.nix
@@ -0,0 +1,37 @@
+{stdenv, fetchurl, zlib, ncurses, fuse}:
+
+stdenv.mkDerivation rec {
+  name = "wiimms-iso-tools";
+  version = "3.02a";
+
+  src = fetchurl {
+    url = "https://download.wiimm.de/source/wiimms-iso-tools/wiimms-iso-tools.source-${version}.tar.bz2";
+    sha256 = "074cvcaqz23xyihslc6n64wwxwcnl6xp7l0750yb9pc0wrqxmj69";
+  };
+
+  buildInputs = [ zlib ncurses fuse ];
+
+  patches = [ ./fix-paths.diff ];
+  postPatch = ''
+    patchShebangs setup.sh
+    patchShebangs gen-template.sh
+    patchShebangs gen-text-file.sh
+  '';
+
+  NIX_CFLAGS_COMPILE = "-Wno-error=format-security";
+  INSTALL_PATH = "$out";
+
+  installPhase = ''
+    mkdir "$out"
+    patchShebangs install.sh
+    ./install.sh --no-sudo
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://wit.wiimm.de";
+    description = "A set of command line tools to manipulate Wii and GameCube ISO images and WBFS containers";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ nilp0inter ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/filesystems/wiimms-iso-tools/fix-paths.diff b/nixpkgs/pkgs/tools/filesystems/wiimms-iso-tools/fix-paths.diff
new file mode 100644
index 000000000000..4a545e92a185
--- /dev/null
+++ b/nixpkgs/pkgs/tools/filesystems/wiimms-iso-tools/fix-paths.diff
@@ -0,0 +1,12 @@
+diff -r -u wiimms-iso-tools.source-3.02a.patched/setup.sh wiimms-iso-tools.source-3.02a/setup.sh
+--- wiimms-iso-tools.source-3.02a.patched/setup.sh	2020-06-02 23:48:18.651495869 +0200
++++ wiimms-iso-tools.source-3.02a/setup.sh	2020-06-02 23:48:29.758162513 +0200
+@@ -57,7 +57,7 @@
+ 
+ #--------------------------------------------------
+ 
+-INSTALL_PATH=/usr/local
++ INSTALL_PATH="$out"
+ 
+ if [[ -d $INSTALL_PATH/bin ]]
+ then
diff --git a/nixpkgs/pkgs/tools/graphics/amber/default.nix b/nixpkgs/pkgs/tools/graphics/amber/default.nix
new file mode 100644
index 000000000000..1b8c90c8fb70
--- /dev/null
+++ b/nixpkgs/pkgs/tools/graphics/amber/default.nix
@@ -0,0 +1,95 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, pkg-config
+, python3
+, vulkan-headers
+, vulkan-loader
+}:
+let
+  glslang = fetchFromGitHub {
+    owner = "KhronosGroup";
+    repo = "glslang";
+    rev = "3ee5f2f1d3316e228916788b300d786bb574d337";
+    sha256 = "1l5h9d92mzd35pgs0wibqfg7vbl771lwnvdlcsyhf6999khn5dzv";
+  };
+
+  lodepng = fetchFromGitHub {
+    owner = "lvandeve";
+    repo = "lodepng";
+    rev = "34628e89e80cd007179b25b0b2695e6af0f57fac";
+    sha256 = "10yaf218xnmhv7rsq6dysqrps43r30cgrs1z63h47z40x43ikia0";
+  };
+
+  shaderc = fetchFromGitHub {
+    owner = "google";
+    repo = "shaderc";
+    rev = "ba92b11e1fcaf4c38a64f84d643d6429175bf650";
+    sha256 = "041hip43siy2sr7h6habk9sxdmd45ag4kqgi8jk0vm1b8pqzkhqn";
+  };
+
+  spirv-headers = fetchFromGitHub {
+    owner = "KhronosGroup";
+    repo = "SPIRV-Headers";
+    rev = "3fdabd0da2932c276b25b9b4a988ba134eba1aa6";
+    sha256 = "17h5cn4dyw8ixp1cpw8vf1z90m0fn1hhlvh0iycmknccbb1z34q7";
+  };
+
+  spirv-tools = fetchFromGitHub {
+    owner = "KhronosGroup";
+    repo = "SPIRV-Tools";
+    rev = "fd3cabd8b5fc43ce83884ac06486c283b9902b4f";
+    sha256 = "1h3smicw5gzpa17syb30085zccydzs4f41fl30bcmiipdn2xfpjr";
+  };
+
+in
+stdenv.mkDerivation rec {
+  pname = "amber";
+  version = "unstable-2020-09-23";
+
+  src = fetchFromGitHub {
+    owner = "google";
+    repo = pname;
+    rev = "0eee2d45d053dfc566baa58442a9b1b708e4f2a7";
+    sha256 = "1rrbvmn9hvhj7xj89yqvy9mx0vg1qapdm5fkca8mkd3516d9f5pw";
+  };
+
+  buildInputs = [
+    vulkan-headers
+    vulkan-loader
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    python3
+  ];
+
+  # Tests are disabled so we do not have to pull in googletest and more dependencies
+  cmakeFlags = [ "-DAMBER_SKIP_TESTS=ON" ];
+
+  prePatch = ''
+    cp -r ${glslang}/ third_party/glslang
+    cp -r ${lodepng}/ third_party/lodepng
+    cp -r ${shaderc}/ third_party/shaderc
+    cp -r ${spirv-tools}/ third_party/spirv-tools
+    cp -r ${spirv-headers}/ third_party/spirv-headers
+    chmod u+w -R third_party
+
+    substituteInPlace CMakeLists.txt \
+      --replace "-Werror" ""
+    substituteInPlace tools/update_build_version.py \
+      --replace "not os.path.exists(directory)" "True"
+  '';
+
+  installPhase = ''
+    install -Dm755 -t $out/bin amber image_diff
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Multi-API shader test framework";
+    homepage = "https://github.com/google/amber";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ Flakebi ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/graphics/asymptote/default.nix b/nixpkgs/pkgs/tools/graphics/asymptote/default.nix
index 285dd9e7d4e6..67afac2cdccd 100644
--- a/nixpkgs/pkgs/tools/graphics/asymptote/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/asymptote/default.nix
@@ -9,14 +9,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "2.65";
+  version = "2.66";
   pname = "asymptote";
 
   src = fetchFromGitHub {
     owner = "vectorgraphics";
     repo = pname;
     rev = version;
-    sha256 = "1b40khffrvwm3nd5nx1iybhkc25zs6whrb3wynw7y3i87p3palyz";
+    sha256 = "0c445j950n6nxgr1zxj7a26daa5d9f3i91506b7r7627s943b1kd";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/graphics/dcraw/default.nix b/nixpkgs/pkgs/tools/graphics/dcraw/default.nix
index f8e78d017120..a43c7a16d97e 100644
--- a/nixpkgs/pkgs/tools/graphics/dcraw/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/dcraw/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, libjpeg, lcms2, gettext, jasper, libiconv }:
+{stdenv, fetchurl, libjpeg, lcms2, gettext, libiconv }:
 
 stdenv.mkDerivation rec {
   name = "dcraw-9.28.0";
@@ -9,12 +9,15 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin libiconv;
-  buildInputs = [ libjpeg lcms2 gettext jasper ];
+  buildInputs = [ libjpeg lcms2 gettext ];
 
+  # Jasper is disabled because the library is abandoned and has many
+  # CVEs.
   patchPhase = ''
     substituteInPlace install \
       --replace 'prefix=/usr/local' 'prefix=$out' \
-      --replace gcc '$CC'
+      --replace gcc '$CC' \
+      --replace '-ljasper' '-DNO_JASPER=1'
   '';
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/tools/graphics/dpic/default.nix b/nixpkgs/pkgs/tools/graphics/dpic/default.nix
index 0621d885694d..7b7eea3d5095 100644
--- a/nixpkgs/pkgs/tools/graphics/dpic/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/dpic/default.nix
@@ -2,28 +2,22 @@
 
 stdenv.mkDerivation rec {
   pname = "dpic";
-  version = "2020.03.01";
+  version = "2020.06.01";
 
   src = fetchurl {
     url = "https://ece.uwaterloo.ca/~aplevich/dpic/${pname}-${version}.tar.gz";
-    sha256 = "1wa1b8m98wdyryf0czn5g3g50znrjcdhsrzpqp6zgwr5w4a086mj";
+    sha256 = "1gbkpbjwjaaifxff8amm9b47dynq4l4698snjdgnn4flndw62q88";
   };
 
-  phases = [ "unpackPhase" "buildPhase" "installPhase" ];
+  # The prefix passed to configure is not used.
+  makeFlags = [ "DESTDIR=$(out)" ];
 
-  makeFlags = [ "CC=${stdenv.cc.outPath}/bin/cc" ];
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp -fv dpic $out/bin
-  '';
-
-  meta = {
-    homepage = "https://ece.uwaterloo.ca/~aplevich/dpic/";
+  meta = with stdenv.lib; {
     description = "An implementation of the pic little language for creating drawings";
-    license = stdenv.lib.licenses.bsd2;
-    maintainers = [ stdenv.lib.maintainers.aespinosa ];
-    platforms = stdenv.lib.platforms.all;
+    homepage = "https://ece.uwaterloo.ca/~aplevich/dpic/";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ aespinosa ];
+    platforms = platforms.all;
   };
 }
 
diff --git a/nixpkgs/pkgs/tools/graphics/flam3/default.nix b/nixpkgs/pkgs/tools/graphics/flam3/default.nix
index 0f1bf8065514..29560cfe6e55 100644
--- a/nixpkgs/pkgs/tools/graphics/flam3/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/flam3/default.nix
@@ -19,6 +19,6 @@ stdenv.mkDerivation rec {
     homepage = "https://flam3.com/";
     maintainers = [ maintainers.nand0p ];
     platforms = platforms.linux;
-    license = licenses.cc-by-nc-sa-20;
+    license = licenses.gpl3Plus;
   };
 }
diff --git a/nixpkgs/pkgs/tools/graphics/gifski/default.nix b/nixpkgs/pkgs/tools/graphics/gifski/default.nix
index 8c808657f4c5..4758dece42f4 100644
--- a/nixpkgs/pkgs/tools/graphics/gifski/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/gifski/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gifski";
-  version = "0.10.4";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "ImageOptim";
     repo = "gifski";
     rev = version;
-    sha256 = "1ly465y435cha22rmnq632hgq2s7y0akrcna6m30f6l078br8mhn";
+    sha256 = "0yziqgvjjb5bblmm060li7dv1i23gpn0f75jb72z8cdf2wg1qmxb";
   };
 
-  cargoSha256 = "0khfkh1ylqv4v5dsb4hsha5fh3b62hcvkp3swplv64h626p3q54s";
+  cargoSha256 = "1y4q6p6hbmpwdpahmspgngm842qrq1srl7319wslq9ydl09m1x3x";
 
   nativeBuildInputs = [ pkgconfig ];
 
diff --git a/nixpkgs/pkgs/tools/graphics/glxinfo/default.nix b/nixpkgs/pkgs/tools/graphics/glxinfo/default.nix
index a1160fd73838..6518a74512ba 100644
--- a/nixpkgs/pkgs/tools/graphics/glxinfo/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/glxinfo/default.nix
@@ -18,10 +18,11 @@ stdenv.mkDerivation rec {
     $CC src/xdemos/glxgears.c -o glxgears -lGL -lX11 -lm
     $CC src/egl/opengles2/es2_info.c -o es2_info -lEGL -lGLESv2 -lX11
     $CC src/egl/opengles2/es2gears.c src/egl/eglut/{eglut.c,eglut_x11.c} -o es2gears -Isrc/egl/eglut -lEGL -lGLESv2 -lX11 -lm
+    $CC src/egl/opengl/eglinfo.c -o eglinfo -lEGL -lGLESv2 -lX11
   ";
 
   installPhase = "
-    install -Dm 555 -t $out/bin glx{info,gears} es2{_info,gears}
+    install -Dm 555 -t $out/bin glx{info,gears} es2{_info,gears} eglinfo
   ";
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/tools/graphics/gmic/default.nix b/nixpkgs/pkgs/tools/graphics/gmic/default.nix
index 610c1306ecfd..ccc4a23cb558 100644
--- a/nixpkgs/pkgs/tools/graphics/gmic/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/gmic/default.nix
@@ -15,13 +15,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gmic";
-  version = "2.9.0";
+  version = "2.9.2";
 
   outputs = [ "out" "lib" "dev" "man" ];
 
   src = fetchurl {
     url = "https://gmic.eu/files/source/gmic_${version}.tar.gz";
-    sha256 = "1df4x1dadf5llf8r0845vr2bv4pin2079an3gk69v697kdgnjcv2";
+    sha256 = "14acph914a8lp6qqfmp319ggqjg3i3hmalmnpk3mp07m7vpv2p9q";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/graphics/gnuplot/default.nix b/nixpkgs/pkgs/tools/graphics/gnuplot/default.nix
index fc1892317fa1..ce2a87981e72 100644
--- a/nixpkgs/pkgs/tools/graphics/gnuplot/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/gnuplot/default.nix
@@ -20,11 +20,11 @@ let
 in
 (if withQt then mkDerivation else stdenv.mkDerivation) rec {
   pname = "gnuplot";
-  version = "5.2.8";
+  version = "5.4.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/gnuplot/${pname}-${version}.tar.gz";
-    sha256 = "0dxc52d17mpyb2xm24da1nvhlacryv0irwa0q5l1cjj0rx67d9k0";
+    sha256 = "0iwwliq5a6qcawbpxk4d7l17fpkq9xxcz05kwblx37rr7bq84h7b";
   };
 
   nativeBuildInputs = [ makeWrapper pkgconfig texinfo ] ++ lib.optional withQt qttools;
diff --git a/nixpkgs/pkgs/tools/graphics/grim/default.nix b/nixpkgs/pkgs/tools/graphics/grim/default.nix
index ab0418bd0dc6..a357277ed12e 100644
--- a/nixpkgs/pkgs/tools/graphics/grim/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/grim/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "grim";
-  version = "1.3.0";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "14gqilgd27c4j2wn7fla72yj8syx0542rsanh61syikrv0hxgkvy";
+    sha256 = "0fjmjq0ws9rlblkcqxxw2lv7zvvyi618jqzlnz5z9zb477jwdfib";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/graphics/gromit-mpx/default.nix b/nixpkgs/pkgs/tools/graphics/gromit-mpx/default.nix
index ebb50cfad2ee..c7f0beba8fb8 100644
--- a/nixpkgs/pkgs/tools/graphics/gromit-mpx/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/gromit-mpx/default.nix
@@ -1,20 +1,21 @@
 { stdenv, fetchFromGitHub, cmake, pkgconfig
 , gtk, glib, pcre, libappindicator, libpthreadstubs, libXdmcp
 , libxkbcommon, epoxy, at-spi2-core, dbus, libdbusmenu
+, wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "gromit-mpx";
-  version = "1.3";
+  version = "1.3.1";
 
   src = fetchFromGitHub {
     owner = "bk138";
     repo = "gromit-mpx";
     rev = version;
-    sha256 = "1dkmp5rhzp56sz9cfxill2pkdz2anwb8kkxkypvk2xhqi64cvkrs";
+    sha256 = "1dvn7vwg4fg1a3lfj5f7nij1vcxm27gyf2wr817f3qb4sx5xmjwy";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
   buildInputs = [
     cmake
     gtk glib pcre libappindicator libpthreadstubs
diff --git a/nixpkgs/pkgs/tools/graphics/jhead/default.nix b/nixpkgs/pkgs/tools/graphics/jhead/default.nix
index 9f5ffcad8fd6..19a0e26d9ccf 100644
--- a/nixpkgs/pkgs/tools/graphics/jhead/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/jhead/default.nix
@@ -2,34 +2,27 @@
 
 stdenv.mkDerivation rec {
   pname = "jhead";
-  version = "3.03";
+  version = "3.04";
 
   src = fetchurl {
     url = "http://www.sentex.net/~mwandel/jhead/${pname}-${version}.tar.gz";
-    sha256 = "1hn0yqcicq3qa20h1g313l1a671r8mccpb9gz0w1056r500lw6c2";
+    sha256 = "1j831bqw1qpkbchdriwcy3sgzvbagaj45wlc124fs9bc9z7vp2gg";
   };
 
   patches = [
     (fetchpatch {
-      name = "CVE-2019-1010301.patch";
-      url = "https://sources.debian.org/data/main/j/jhead/1:3.03-3/debian/patches/36_CVE-2019-1010301";
-      sha256 = "1vvrg50z5y7sjhfi973wh1q1v79sqp7hk5d4z0dlnx3fqgkjrx7q";
-    })
-    (fetchpatch {
-      name = "CVE-2019-1010302.patch";
-      url = "https://sources.debian.org/data/main/j/jhead/1:3.03-3/debian/patches/37_CVE-2019-1010302";
-      sha256 = "1h11mpsi7hpwbi8kpnkjwn6zpqf88f132h0rsg8sggcs3vva2x8y";
+      url = "https://sources.debian.org/data/main/j/jhead/1:3.04-2/debian/patches/01_gpsinfo.c";
+      sha256 = "0r8hdbfrdxip4dwz5wqsv47a29j33cx7w5zx4jdhp5l1ihg003lz";
     })
   ];
 
   buildInputs = [ libjpeg ];
 
-  patchPhase = ''
-    substituteInPlace makefile \
-      --replace /usr/local/bin $out/bin
+  makeFlags = [ "CPPFLAGS=" "CFLAGS=-O3" "LDFLAGS=" ];
 
+  patchPhase = ''
+    sed -i '/dpkg-buildflags/d' makefile
     substituteInPlace jhead.c \
-      --replace "\"   Compiled: \"__DATE__" "" \
       --replace "jpegtran -trim" "${libjpeg.bin}/bin/jpegtran -trim"
   '';
 
diff --git a/nixpkgs/pkgs/tools/graphics/lepton/default.nix b/nixpkgs/pkgs/tools/graphics/lepton/default.nix
index 0088422c6a4a..cbb48fe37280 100644
--- a/nixpkgs/pkgs/tools/graphics/lepton/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/lepton/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, cmake, git, glibc }:
 
 stdenv.mkDerivation rec {
-  version = "1.2.1";
-  pname = "lepton";
+  version = "2019-08-20";
+  pname = "lepton-unstable";
 
   src = fetchFromGitHub {
     repo = "lepton";
     owner = "dropbox";
-    rev = version;
-    sha256 = "1f2vyp0crj4yw27bs53vykf2fqk4w57gv3lh9dp89dh3y7wwh1ba";
+    rev = "3d1bc19da9f13a6e817938afd0f61a81110be4da";
+    sha256 = "0aqs6nvcbq8cbfv8699fa634bsz7csmk0169n069yvv17d1c07fd";
   };
 
   nativeBuildInputs = [ cmake git ];
diff --git a/nixpkgs/pkgs/tools/graphics/lprof/keep-environment.patch b/nixpkgs/pkgs/tools/graphics/lprof/keep-environment.patch
index 4dcb5b0448dd..7d0beaed587a 100644
--- a/nixpkgs/pkgs/tools/graphics/lprof/keep-environment.patch
+++ b/nixpkgs/pkgs/tools/graphics/lprof/keep-environment.patch
@@ -3,7 +3,7 @@
 @@ -22,12 +22,7 @@
  # opts.Add(BoolOption('qt-mt-lib', 'Flag used to set QT library to either qt-mt or qt. Value of 1 = qt-mt, 0 = qt.', 'yes'))
  
- # setup base environemnt 
+ # setup base environment 
 -env = Environment(
 -    ENV = {
 -      'PATH' : os.environ[ 'PATH' ],
diff --git a/nixpkgs/pkgs/tools/graphics/netpbm/default.nix b/nixpkgs/pkgs/tools/graphics/netpbm/default.nix
index bfb50c45f40b..4507c4fed853 100644
--- a/nixpkgs/pkgs/tools/graphics/netpbm/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/netpbm/default.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
 , fetchsvn
-, pkgconfig
+, pkg-config
 , libjpeg
 , libpng
 , flex
@@ -27,14 +27,8 @@ stdenv.mkDerivation {
     sha256 = "1m7ks6k53gsjsdazgf22g16dfgj3pqvqy9mhxzlwszv5808sj5w5";
   };
 
-  postPatch = ''
-    # Install libnetpbm.so symlink to correct destination
-    substituteInPlace lib/Makefile \
-      --replace '/sharedlink' '/lib'
-  '';
-
   nativeBuildInputs = [
-    pkgconfig
+    pkg-config
     flex
     makeWrapper
   ];
@@ -48,6 +42,14 @@ stdenv.mkDerivation {
     libtiff
   ] ++ lib.optional enableX11 libX11;
 
+  enableParallelBuilding = true;
+
+  postPatch = ''
+    # Install libnetpbm.so symlink to correct destination
+    substituteInPlace lib/Makefile \
+      --replace '/sharedlink' '/lib'
+  '';
+
   configurePhase = ''
     runHook preConfigure
 
@@ -72,8 +74,6 @@ stdenv.mkDerivation {
     runHook postConfigure
   '';
 
-  enableParallelBuilding = true;
-
   installPhase = ''
     runHook preInstall
 
diff --git a/nixpkgs/pkgs/tools/graphics/oxipng/default.nix b/nixpkgs/pkgs/tools/graphics/oxipng/default.nix
index 4135eb966a34..965c799a217f 100644
--- a/nixpkgs/pkgs/tools/graphics/oxipng/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/oxipng/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchFromGitHub, rustPlatform }:
 
 rustPlatform.buildRustPackage rec {
-  version = "3.0.0";
+  version = "3.0.1";
   pname = "oxipng";
 
   src = fetchFromGitHub {
     owner = "shssoichiro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1k6q5xdfbw4vv4mvms32fhih7k1gpjj98nzrd171ig1vv3gpwwpg";
+    sha256 = "11lncwxksm7aqczy9ay1qnba2wmgfsirhgrl6vv1jlgj41b7mzi5";
   };
 
-  cargoSha256 = "19h3fwc5s2yblah5lnsm0f4m618p2bkdz2qz47kfi6jdvk89j8z7";
+  cargoSha256 = "0lalb981qzlnmqfg170mh6lnc0qlzb94wc39mf859g2jvxk3pkrl";
 
   # https://crates.io/crates/cloudflare-zlib#arm-vs-nightly-rust
   cargoBuildFlags = [ "--features=cloudflare-zlib/arm-always" ];
@@ -23,6 +23,5 @@ rustPlatform.buildRustPackage rec {
     description = "A multithreaded lossless PNG compression optimizer";
     license = licenses.mit;
     maintainers = with maintainers; [ dywedir ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/graphics/scrot/default.nix b/nixpkgs/pkgs/tools/graphics/scrot/default.nix
index f9042645be0b..df6fb7bcda89 100644
--- a/nixpkgs/pkgs/tools/graphics/scrot/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/scrot/default.nix
@@ -1,19 +1,19 @@
 { stdenv, fetchFromGitHub, giblib, xlibsWrapper, autoreconfHook
-, autoconf-archive, libXfixes, libXcursor }:
+, autoconf-archive, libXfixes, libXcursor, libXcomposite }:
 
 stdenv.mkDerivation rec {
   pname = "scrot";
-  version = "1.3";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "resurrecting-open-source-projects";
     repo = pname;
     rev = version;
-    sha256 = "0x70hd59ik37kqd8xqpwrz46np01jv324iz28x2s0kk36d7sblsj";
+    sha256 = "12xq6glg70icwsvbnfw9gm4dahlbnrc7b6adpd0mpf89h4sj2gds";
   };
 
   nativeBuildInputs = [ autoreconfHook autoconf-archive ];
-  buildInputs = [ giblib xlibsWrapper libXfixes libXcursor ];
+  buildInputs = [ giblib xlibsWrapper libXfixes libXcursor libXcomposite ];
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/resurrecting-open-source-projects/scrot";
diff --git a/nixpkgs/pkgs/tools/graphics/spirv-cross/default.nix b/nixpkgs/pkgs/tools/graphics/spirv-cross/default.nix
index 3ca698f1c54a..76d554457d91 100644
--- a/nixpkgs/pkgs/tools/graphics/spirv-cross/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/spirv-cross/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "spirv-cross";
-  version = "2020-05-19";
+  version = "2020-06-29";
 
   src = fetchFromGitHub {
     owner = "KhronosGroup";
     repo = "SPIRV-Cross";
     rev = version;
-    sha256 = "0zyijp9zx9wbd4i5lwjap7n793iz6yjkf27la60dsffxl75yy9pd";
+    sha256 = "0mnccmhlqmpdx92v495z39i07hbvjwdr5n4zbarlrr1d7rm99lx4";
   };
 
   nativeBuildInputs = [ cmake python3 ];
diff --git a/nixpkgs/pkgs/tools/graphics/svgbob/default.nix b/nixpkgs/pkgs/tools/graphics/svgbob/default.nix
index d11f715464d7..a88506099448 100644
--- a/nixpkgs/pkgs/tools/graphics/svgbob/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/svgbob/default.nix
@@ -10,8 +10,11 @@ rustPlatform.buildRustPackage rec {
     rev = "0febc4377134a2ea3b3cd43ebdf5ea688a0e7432";
     sha256 = "1n0w5b3fjgbczy1iw52172x1p3y1bvw1qpz77fkaxkhrkgfd7vwr";
   };
-
   sourceRoot = "source/svgbob_cli";
+  postPatch = ''
+    substituteInPlace ../svgbob/src/lib.rs \
+      --replace '#![deny(warnings)]' ""
+  '';
 
   cargoSha256 = "1y9jsnxmz51zychmmzp6mi29pb5ks2qww7lk5bshkhp56v51sm8d";
 
@@ -23,6 +26,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ivanceras/svgbob";
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/graphics/svgcleaner/default.nix b/nixpkgs/pkgs/tools/graphics/svgcleaner/default.nix
index 350fdefba5c3..201b43f4f448 100644
--- a/nixpkgs/pkgs/tools/graphics/svgcleaner/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/svgcleaner/default.nix
@@ -17,7 +17,6 @@ rustPlatform.buildRustPackage rec {
     description = "A tool for tidying and optimizing SVGs";
     homepage = "https://github.com/RazrFalcon/svgcleaner";
     license = licenses.gpl2;
-    platforms = platforms.all;
     maintainers = [ maintainers.mehandes ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/graphics/swfdec/default.nix b/nixpkgs/pkgs/tools/graphics/swfdec/default.nix
deleted file mode 100644
index d721d06ad584..000000000000
--- a/nixpkgs/pkgs/tools/graphics/swfdec/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{stdenv, fetchurl
-, cairo, pango, glib, liboil, zlib, gstreamer, gst-plugins-base
-, gst-plugins-good , gtk2, libsoup, alsaLib, pkgconfig
-}:
-
-stdenv.mkDerivation rec {
-  pname = "swfdec";
-  version = "0.8.4";
-
-  src = fetchurl {
-    url = "http://swfdec.freedesktop.org/download/swfdec/0.8/swfdec-${version}.tar.gz";
-    sha256 = "00nqrd0fzf0g76rn80d7h56n6hxv7x1x6k89zj45bj564lzwc3vs";
-  };
-
-  buildInputs = [
-    cairo glib liboil pango zlib gstreamer gst-plugins-base gst-plugins-good
-    gtk2 libsoup alsaLib pkgconfig
-  ];
-  
-  postInstall = ''
-    mkdir "$out/bin"
-    cp tools/.libs/swfdec-extract "$out/bin"
-    cp tools/.libs/dump "$out/bin/swfdec-dump"
-    cp player/.libs/swfplay "$out/bin/swfplay"
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = {
-    inherit version;
-    description = "Decoder/renderer for Macromedia Flash animations";
-    license = stdenv.lib.licenses.lgpl21 ;
-    maintainers = [stdenv.lib.maintainers.raskin];
-    platforms = stdenv.lib.platforms.linux;
-    homepage = "https://swfdec.freedesktop.org/wiki/";
-  };
-}
diff --git a/nixpkgs/pkgs/tools/graphics/vips/default.nix b/nixpkgs/pkgs/tools/graphics/vips/default.nix
index 1bfb2f880204..334cb00f3c17 100644
--- a/nixpkgs/pkgs/tools/graphics/vips/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/vips/default.nix
@@ -26,7 +26,7 @@
 
 stdenv.mkDerivation rec {
   pname = "vips";
-  version = "8.9.2";
+  version = "8.10.0";
 
   outputs = [ "bin" "out" "man" "dev" ];
 
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     owner = "libvips";
     repo = "libvips";
     rev = "v${version}";
-    sha256 = "0pgvcp5yjk96izh7kjfprjd9kddx7zqrwwhm8dyalhrwbmj6c2q5";
+    sha256 = "1v5kfmv1vmzyvz1198jm1kl763s2i3mgnsn69vh6dslasbh769di";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     extraPostFetch = ''
diff --git a/nixpkgs/pkgs/tools/graphics/viu/default.nix b/nixpkgs/pkgs/tools/graphics/viu/default.nix
index ba35711a6ee2..a434b38453eb 100644
--- a/nixpkgs/pkgs/tools/graphics/viu/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/viu/default.nix
@@ -2,24 +2,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "viu";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "atanunq";
     repo = "viu";
     rev = "v${version}";
-    sha256 = "1ivhm6js0ylnxwp84jmm2vmnl4iy1cwr3m9imx7lmcl0i3c8b9if";
+    sha256 = "1algvndpl63g3yzp3hhbgm7839njpbmw954nsiwf0j591spz4lph";
   };
   # tests are failing, reported at upstream: https://github.com/atanunq/viu/issues/40
   doCheck = false;
 
-  cargoSha256 = "15zdnr95a363w4rddv1fbz796m01430gzly5p953m23g2mbxdmp0";
+  cargoSha256 = "1jccaln72aqa9975nbs95gimndqx5kgfkjmh40z6chx1hvn4m2ga";
 
   meta = with lib; {
     description = "A command-line application to view images from the terminal written in Rust";
     homepage = "https://github.com/atanunq/viu";
     license = licenses.mit;
     maintainers = with maintainers; [ petabyteboy ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/graphics/wdisplays/default.nix b/nixpkgs/pkgs/tools/graphics/wdisplays/default.nix
index 0993a39983ed..eb7598dce206 100644
--- a/nixpkgs/pkgs/tools/graphics/wdisplays/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/wdisplays/default.nix
@@ -1,10 +1,12 @@
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, gtk3, epoxy, wayland }:
+{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, gtk3, epoxy, wayland, wrapGAppsHook
+, fetchpatch
+}:
 
 stdenv.mkDerivation rec {
   pname = "wdisplays";
   version = "1.0";
 
-  nativeBuildInputs = [ meson ninja pkgconfig ];
+  nativeBuildInputs = [ meson ninja pkgconfig wrapGAppsHook ];
 
   buildInputs = [ gtk3 epoxy wayland ];
 
@@ -15,6 +17,15 @@ stdenv.mkDerivation rec {
     sha256 = "1xhgrcihja2i7yg54ghbwr1v6kf8jnsfcp364yb97vkxskc4y21y";
   };
 
+  patches = [
+    # Fixes `Gdk-Message: 10:26:38.752: Error reading events from display: Success`
+    # https://github.com/cyclopsian/wdisplays/pull/20
+    (fetchpatch {
+      url = "https://github.com/cyclopsian/wdisplays/commit/5198a9c94b40ff157c284df413be5402f1b75118.patch";
+      sha256 = "1xwphyn0ksf8isy9dz3mfdhmsz4jv02870qz5615zs7aqqfcwn85";
+    })
+  ];
+
   meta = let inherit (stdenv) lib; in {
     description = "A graphical application for configuring displays in Wayland compositors";
     homepage = "https://github.com/cyclopsian/wdisplays";
diff --git a/nixpkgs/pkgs/tools/graphics/yafaray-core/default.nix b/nixpkgs/pkgs/tools/graphics/yafaray-core/default.nix
index a02a97739bad..3ca9a7b5e8d6 100644
--- a/nixpkgs/pkgs/tools/graphics/yafaray-core/default.nix
+++ b/nixpkgs/pkgs/tools/graphics/yafaray-core/default.nix
@@ -7,13 +7,13 @@
 stdenv.mkDerivation rec {
 
     pname = "yafaray-core";
-    version = "3.4.4";
+    version = "3.5.0";
 
     src = fetchFromGitHub {
       owner  = "YafaRay";
       repo   = "Core";
       rev    = "v${version}";
-      sha256 = "140vnaihz09rdvp0mqgrs26b3a2fv5wm49ar6817p4qklfx71l0g";
+      sha256 = "05r08ynm6p9jq9l3v1v3lqkrfx3bm6zlqcxm1yk7mdv1zv2yxikd";
     };
 
     preConfigure = ''
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
       homepage = "http://www.yafaray.org";
       maintainers = with maintainers; [ hodapp ];
       license = licenses.lgpl21;
-      platforms = platforms.linux;
+      platforms = [ "x86_64-linux" ];
     };
   }
 
diff --git a/nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix b/nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix
index f04acb72b472..69ff9c1fe53d 100644
--- a/nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/fcitx-engines/fcitx-mozc/default.nix
@@ -1,5 +1,5 @@
 { clangStdenv, fetchFromGitHub, fetchurl, fetchpatch, gyp, which, ninja,
-  python, pkgconfig, protobuf, gtk2, zinnia, qt5, libxcb,
+  python, pkgconfig, protobuf, gtk2, zinnia, qt5, libxcb, tegaki-zinnia-japanese,
   fcitx, gettext }:
 let
   japanese_usage_dictionary = fetchFromGitHub {
@@ -14,16 +14,16 @@ let
   };
 in clangStdenv.mkDerivation rec {
   name    = "fcitx-mozc-${version}";
-  version = "2.20.2673.102";
+  version = "2.23.2815.102";
 
   src = fetchFromGitHub {
     owner  = "google";
     repo   = "mozc";
-    rev    = "280e38fe3d9db4df52f0713acf2ca65898cd697a";
-    sha256 = "0s599f817gjgqynm4n1yll1ipd25ai2c55y8k6wvhg9s7qaxnyhs";
+    rev    = "afb03ddfe72dde4cf2409863a3bfea160f7a66d8";
+    sha256 = "0w2dy2j9x5nc7x3g95j17r3m60vbfyn5j617h7js9xryv33yzpgx";
   };
 
-  nativeBuildInputs = [ gyp which ninja python pkgconfig ];
+  nativeBuildInputs = [ gyp which ninja python pkgconfig qt5.wrapQtAppsHook ];
   buildInputs = [ protobuf gtk2 zinnia qt5.qtbase libxcb fcitx gettext ];
 
   postUnpack = ''
@@ -32,18 +32,23 @@ in clangStdenv.mkDerivation rec {
     tar -xzf ${icons} -C $sourceRoot/src
   '';
 
-  patch_version = "2.18.2612.102.1";
+  patch_version = "${version}.1";
   patches = [
     (fetchpatch rec {
       name   = "fcitx-mozc-${patch_version}.patch";
       url    = "https://download.fcitx-im.org/fcitx-mozc/${name}";
-      sha256 = "1f9m4310kz09v5qvnv75ka2vq63m7by023qrkpddgq4dv7gxx3ca";
+      sha256 = "0a8q3vzcbai1ccdrl6qdb81gvbw8aby4lqkl6qs9hg68p6zg42hg";
      })
     # https://github.com/google/mozc/pull/444 - fix for gcc8 STL
     (fetchpatch {
       url = "https://github.com/google/mozc/commit/82d38f929882a9c62289b179c6fe41efed249987.patch";
       sha256 = "07cja1b7qfsd3i76nscf1zwiav74h7d6h2g9g2w4bs3h1mc9jwla";
     })
+    # Support dates after 2019
+    (fetchpatch {
+      url = "https://salsa.debian.org/debian/mozc/-/raw/master/debian/patches/add_support_new_japanese_era.patch";
+      sha256 = "1dsiiglrmm8i8shn2hv0j2b8pv6miysjrimj4569h606j4lwmcw2";
+    })
   ];
 
   postPatch = ''
@@ -52,7 +57,7 @@ in clangStdenv.mkDerivation rec {
   '';
 
   configurePhase = ''
-    export GYP_DEFINES="document_dir=$out/share/doc/mozc use_libzinnia=1 use_libprotobuf=1"
+    export GYP_DEFINES="document_dir=$out/share/doc/mozc use_libzinnia=1 use_libprotobuf=1 use_fcitx5=0 zinnia_model_file=${tegaki-zinnia-japanese}/share/tegaki/models/zinnia/handwriting-ja.model"
     cd src && python build_mozc.py gyp --gypdir=${gyp}/bin --server_dir=$out/lib/mozc
   '';
 
@@ -74,6 +79,8 @@ in clangStdenv.mkDerivation rec {
     install -D -m 755 out_linux/Release/mozc_server     $out/lib/mozc/mozc_server
     install    -m 755 out_linux/Release/mozc_tool       $out/lib/mozc/mozc_tool
 
+    wrapQtApp $out/lib/mozc/mozc_tool
+
     install -D -m 755 out_linux/Release/fcitx-mozc.so   $out/lib/fcitx/fcitx-mozc.so
     install -D -m 644 unix/fcitx/fcitx-mozc.conf        $out/share/fcitx/addon/fcitx-mozc.conf
     install -D -m 644 unix/fcitx/mozc.conf              $out/share/fcitx/inputmethod/mozc.conf
@@ -100,7 +107,7 @@ in clangStdenv.mkDerivation rec {
     downloadPage  = "http://download.fcitx-im.org/fcitx-mozc/";
     license       = licenses.free;
     platforms     = platforms.linux;
-    maintainers   = [ maintainers.ericsagnes ];
+    maintainers   = with maintainers; [ gebner ericsagnes ];
   };
 
 }
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix
new file mode 100644
index 000000000000..b34206e6cf6d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-bamboo/default.nix
@@ -0,0 +1,55 @@
+{ stdenv
+, fetchFromGitHub
+, gettext
+, xorg
+, pkgconfig
+, wrapGAppsHook
+, ibus
+, gtk3
+, go
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ibus-bamboo";
+  version = "0.6.6";
+
+  src = fetchFromGitHub {
+    owner = "BambooEngine";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0bjcc2dm6c6s0v271nyslmwf5z0xxpcbvmk4lyirs48hc1bzv3n6";
+  };
+
+  nativeBuildInputs = [
+    gettext
+    pkgconfig
+    wrapGAppsHook
+    go
+  ];
+
+  buildInputs = [
+    xorg.libX11
+    xorg.xorgproto
+    xorg.libXtst
+    xorg.libXi
+  ];
+
+  preConfigure = ''
+    export GOCACHE="$TMPDIR/go-cache"
+    sed -i "s,/usr,$out," bamboo.xml
+  '';
+
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+  ];
+
+
+  meta = with stdenv.lib; {
+    isIbusEngine = true;
+    description = "A Vietnamese IME for IBus";
+    homepage = "https://github.com/BambooEngine/ibus-bamboo";
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ superbo ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix
index 48d082564b76..35e02d52b486 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-m17n/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ibus-m17n";
-  version = "1.4.2";
+  version = "1.4.3";
 
   src = fetchFromGitHub {
     owner = "ibus";
     repo = "ibus-m17n";
     rev = version;
-    sha256 = "16davz397svhjb234kx7mnq2m3wdxi2fh1ryniphbczjpbwn23g6";
+    sha256 = "0lb2vcnkzy64474j7306ydyw1ali0qbx07sxfms2fqv1nmh161i2";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
index 9b73345d5e8e..41a04d018355 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus-engines/ibus-mozc/default.nix
@@ -1,5 +1,5 @@
 { clangStdenv, fetchFromGitHub, fetchpatch, which, ninja, python, gyp, pkgconfig
-, protobuf, ibus, gtk2, zinnia, qt5, libxcb }:
+, protobuf, ibus, gtk2, zinnia, qt5, libxcb, tegaki-zinnia-japanese }:
 
 let
   japanese_usage_dictionary = fetchFromGitHub {
@@ -21,7 +21,7 @@ in clangStdenv.mkDerivation rec {
     maintainers  = with maintainers; [ gebner ericsagnes ];
   };
 
-  nativeBuildInputs = [ which ninja python gyp pkgconfig ];
+  nativeBuildInputs = [ which ninja python gyp pkgconfig qt5.wrapQtAppsHook ];
   buildInputs = [ protobuf ibus gtk2 zinnia qt5.qtbase libxcb ];
 
   src = fetchFromGitHub {
@@ -37,6 +37,11 @@ in clangStdenv.mkDerivation rec {
       url = "https://github.com/google/mozc/commit/82d38f929882a9c62289b179c6fe41efed249987.patch";
       sha256 = "07cja1b7qfsd3i76nscf1zwiav74h7d6h2g9g2w4bs3h1mc9jwla";
     })
+    # Support dates after 2019
+    (fetchpatch {
+      url = "https://salsa.debian.org/debian/mozc/-/raw/master/debian/patches/add_support_new_japanese_era.patch";
+      sha256 = "1dsiiglrmm8i8shn2hv0j2b8pv6miysjrimj4569h606j4lwmcw2";
+    })
   ];
 
   postUnpack = ''
@@ -45,7 +50,7 @@ in clangStdenv.mkDerivation rec {
   '';
 
   configurePhase = ''
-    export GYP_DEFINES="document_dir=$out/share/doc/mozc use_libzinnia=1 use_libprotobuf=1 ibus_mozc_path=$out/lib/ibus-mozc/ibus-engine-mozc"
+    export GYP_DEFINES="document_dir=$out/share/doc/mozc use_libzinnia=1 use_libprotobuf=1 ibus_mozc_path=$out/lib/ibus-mozc/ibus-engine-mozc zinnia_model_file=${tegaki-zinnia-japanese}/share/tegaki/models/zinnia/handwriting-ja.model"
     cd src && python build_mozc.py gyp --gypdir=${gyp}/bin --server_dir=$out/lib/mozc
   '';
 
@@ -65,6 +70,7 @@ in clangStdenv.mkDerivation rec {
 
     install -D -m 755 out_linux/Release/mozc_server $out/lib/mozc/mozc_server
     install    -m 755 out_linux/Release/mozc_tool   $out/lib/mozc/mozc_tool
+    wrapQtApp $out/lib/mozc/mozc_tool
 
     install -d        $out/share/doc/mozc
     install -m 644    data/installer/*.html         $out/share/doc/mozc/
diff --git a/nixpkgs/pkgs/tools/inputmethods/ibus/default.nix b/nixpkgs/pkgs/tools/inputmethods/ibus/default.nix
index 644fd5eef3b2..238e133495c9 100644
--- a/nixpkgs/pkgs/tools/inputmethods/ibus/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/ibus/default.nix
@@ -16,6 +16,7 @@
 , gtk2
 , gtk3
 , gtk-doc
+, runCommand
 , isocodes
 , cldr-emoji-annotation
 , unicode-character-database
@@ -47,6 +48,14 @@ let
       makeWrapper ${glib.dev}/bin/glib-mkenums $out/bin/glib-mkenums --unset PYTHONPATH
     '';
   };
+  # make-dconf-override-db.sh needs to execute dbus-launch in the sandbox,
+  # it will fail to read /etc/dbus-1/session.conf unless we add this flag
+  dbus-launch = runCommand "sandbox-dbus-launch" {
+    nativeBuildInputs = [ makeWrapper ];
+  } ''
+      makeWrapper ${dbus}/bin/dbus-launch $out/bin/dbus-launch \
+        --add-flags --config-file=${dbus.daemon}/share/dbus-1/session.conf
+  '';
 in
 
 stdenv.mkDerivation rec {
@@ -71,7 +80,7 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "installedTests" ];
 
   postPatch = ''
-    echo \#!${runtimeShell} > data/dconf/make-dconf-override-db.sh
+    patchShebangs --build data/dconf/make-dconf-override-db.sh
     cp ${buildPackages.gtk-doc}/share/gtk-doc/data/gtk-doc.make .
   '';
 
@@ -105,6 +114,7 @@ stdenv.mkDerivation rec {
     python3BuildEnv
     vala
     wrapGAppsHook
+    dbus-launch
   ];
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/inputmethods/interception-tools/caps2esc.nix b/nixpkgs/pkgs/tools/inputmethods/interception-tools/caps2esc.nix
index 994e9da3e430..7e6206eb1f37 100644
--- a/nixpkgs/pkgs/tools/inputmethods/interception-tools/caps2esc.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/interception-tools/caps2esc.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchurl, cmake }:
+{ stdenv, fetchFromGitLab, cmake }:
 
-let
-  version = "0.1.0";
-  pname = "interception-tools-caps2esc";
-in stdenv.mkDerivation {
-  name = "${pname}-${version}";
+stdenv.mkDerivation rec {
+  pname = "caps2esc";
+  version = "0.1.3";
 
-  src = fetchurl {
-    url = "https://gitlab.com/interception/linux/plugins/caps2esc/repository/v${version}/archive.tar.gz";
-    sha256 = "1fdxqp54gwsrm2c63168l256nfwdk4mvgr7nlwdv62wd3l7zzrg8";
+  src = fetchFromGitLab {
+    owner = "interception/linux/plugins";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "10xv56vh5h3lxyii3ni166ddv1sz2pylrjmdwxhb4gd2p5zgl1ji";
   };
 
-  buildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake ];
 
   meta = with stdenv.lib; {
     homepage = "https://gitlab.com/interception/linux/plugins/caps2esc";
diff --git a/nixpkgs/pkgs/tools/inputmethods/skk/skk-dicts/default.nix b/nixpkgs/pkgs/tools/inputmethods/skk/skk-dicts/default.nix
index d760e9d320a6..4d2f37b865db 100644
--- a/nixpkgs/pkgs/tools/inputmethods/skk/skk-dicts/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/skk/skk-dicts/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, skktools }:
+{ stdenv, fetchurl, libiconv, skktools }:
 
 let
   # kana to kanji
@@ -31,7 +31,7 @@ stdenv.mkDerivation {
   pname = "skk-dicts-unstable";
   version = "2017-10-26";
   srcs = [ small medium large edict assoc ];
-  nativeBuildInputs = [ skktools ];
+  nativeBuildInputs = [ skktools ] ++ stdenv.lib.optional stdenv.isDarwin libiconv;
 
   phases = [ "installPhase" ];
   installPhase = ''
@@ -68,6 +68,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/skk-dev/dict";
     license = stdenv.lib.licenses.gpl2Plus;
     maintainers = with stdenv.lib.maintainers; [ yuriaisaka ];
-    platforms = with stdenv.lib.platforms; linux;
+    platforms = with stdenv.lib.platforms; linux ++ darwin;
   };
 }
diff --git a/nixpkgs/pkgs/tools/inputmethods/skk/skktools/default.nix b/nixpkgs/pkgs/tools/inputmethods/skk/skktools/default.nix
index 8a7423eea1f4..b150521396c3 100644
--- a/nixpkgs/pkgs/tools/inputmethods/skk/skktools/default.nix
+++ b/nixpkgs/pkgs/tools/inputmethods/skk/skktools/default.nix
@@ -8,14 +8,14 @@
 #   dependencies on a Ruby interpreter etc.
 # - We for the moment do not package them to keep the dependencies slim.
 #   Probably, shall package the newer tools as skktools-extra in the future.
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "skktools";
-  version = "1.3.3";
+  version = "1.3.4";
   src = fetchFromGitHub {
     owner = "skk-dev";
     repo = "skktools";
-    rev = "c8816fe720604d4fd79f3552e99e0430ca6f2769";
-    sha256 = "11v1i5gkxvfsipigc1w1m16ijzh85drpl694kg6ih4jfam1q4vdh";
+    rev = "skktools-${stdenv.lib.replaceStrings ["."] ["_"] version}";
+    sha256 = "1zway8jsm18279xq8zlpr84iqiw373x3v0ysay74n9bjqxbl234a";
   };
   # # See "12.2. Package naming"
   # name = "skktools-unstable-${version}";
diff --git a/nixpkgs/pkgs/tools/misc/3mux/default.nix b/nixpkgs/pkgs/tools/misc/3mux/default.nix
index 81ca4d946285..45c0209e917e 100644
--- a/nixpkgs/pkgs/tools/misc/3mux/default.nix
+++ b/nixpkgs/pkgs/tools/misc/3mux/default.nix
@@ -2,23 +2,21 @@
 
 buildGoModule rec {
   pname = "3mux";
-  version = "0.2.0";
+  version = "0.3.0";
 
   src = fetchFromGitHub {
     owner = "aaronjanse";
     repo = pname;
     rev = "v${version}";
-    sha256 = "02ry066psvlqdyhimci7nskw4sfb70dw5z7ag7s7rz36gmx1vnmr";
+    sha256 = "164jylifkdfsi3r6vmlp5afgly73fqfbad7lbr58wmy21l9x5rcj";
   };
 
-  vendorSha256 = "1hjzpg3q4znvgzk0wbl8rq6cq877xxdsf950bcsks92cs8386847";
+  vendorSha256 = "0dc1c0z3xkfpwmwb3hafsv7qa6lc7bzz78by5w20rxrrk4r87gic";
 
   meta = with stdenv.lib; {
     description = "Terminal multiplexer inspired by i3";
     homepage = "https://github.com/aaronjanse/3mux";
     license = licenses.mit;
     maintainers = with maintainers; [ aaronjanse filalex77 ];
-    # TODO: fix modules build on darwin
-    broken = stdenv.isDarwin;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/misc/antimicro/default.nix b/nixpkgs/pkgs/tools/misc/antimicro/default.nix
deleted file mode 100644
index ad86bdef80af..000000000000
--- a/nixpkgs/pkgs/tools/misc/antimicro/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ mkDerivation, lib, cmake, pkgconfig, SDL2, qtbase, qttools, xorg, fetchFromGitHub }:
-
-mkDerivation rec {
-  pname = "antimicro";
-  version = "2.23";
-
-  src = fetchFromGitHub {
-    owner = "AntiMicro";
-    repo = "antimicro";
-    rev = version;
-    sha256 = "1q40ayxwwyq85lc89cnj1cm2nar625h4vhh8dvmb2qcxczaggf4v";
-  };
-
-  nativeBuildInputs = [ cmake pkgconfig ];
-  buildInputs = [
-    SDL2 qtbase qttools xorg.libXtst
-  ];
-
-  meta = with lib; {
-    description = "GUI for mapping keyboard and mouse controls to a gamepad";
-    inherit (src.meta) homepage;
-    maintainers = with maintainers; [ jb55 ];
-    license = licenses.gpl3;
-    platforms = with platforms; linux;
-    broken = true; # 2018-04-10
-  };
-}
diff --git a/nixpkgs/pkgs/tools/misc/antimicroX/default.nix b/nixpkgs/pkgs/tools/misc/antimicroX/default.nix
new file mode 100644
index 000000000000..cb5496d450c4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/antimicroX/default.nix
@@ -0,0 +1,44 @@
+{ mkDerivation
+, lib
+, cmake
+, extra-cmake-modules
+, pkgconfig
+, SDL2
+, qtbase
+, qttools
+, qtx11extras
+, xorg
+, fetchFromGitHub
+, itstool
+}:
+
+mkDerivation rec {
+  pname = "antimicroX";
+  version = "3.0.1";
+
+  src = fetchFromGitHub {
+    owner = "juliagoda";
+    repo = "antimicroX";
+    rev = version;
+    sha256 = "05asxlkgb4cgvpcyksw1cx8cz8nzi8hmw8b91lw92892j7a2r7wj";
+  };
+
+  nativeBuildInputs = [ cmake extra-cmake-modules pkgconfig itstool ];
+  buildInputs = [
+    SDL2
+    qtbase
+    qttools
+    qtx11extras
+    xorg.libX11
+    xorg.libXtst
+    xorg.libXi
+  ];
+
+  meta = with lib; {
+    description = "GUI for mapping keyboard and mouse controls to a gamepad";
+    inherit (src.meta) homepage;
+    maintainers = with maintainers; [ jb55 ];
+    license = licenses.gpl3Plus;
+    platforms = with platforms; linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/asciinema-scenario/default.nix b/nixpkgs/pkgs/tools/misc/asciinema-scenario/default.nix
new file mode 100644
index 000000000000..29538f940178
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/asciinema-scenario/default.nix
@@ -0,0 +1,23 @@
+{ stdenv
+, rustPlatform
+, fetchCrate
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "asciinema-scenario";
+  version = "0.1.0";
+
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "sha256-ubiVpKFU81Ot9V9oMexWSiUXHepoJ6nXtrWVAFhgcYw=";
+  };
+
+  cargoSha256 = "109ij5h31bhn44l0wywgpnnlfjgyairxr5l19s6bz47sbka0xyxk";
+
+  meta = with stdenv.lib; {
+    description = "Create asciinema videos from a text file.";
+    homepage = "https://github.com/garbas/asciinema-scenario/";
+    maintainers = with maintainers; [ garbas ];
+    license = with licenses; [ mit ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/barman/default.nix b/nixpkgs/pkgs/tools/misc/barman/default.nix
new file mode 100644
index 000000000000..2105ad0ae017
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/barman/default.nix
@@ -0,0 +1,29 @@
+{ buildPythonApplication, fetchurl, lib
+, dateutil, argcomplete, argh, psycopg2, boto3
+}:
+
+buildPythonApplication rec {
+  pname = "barman";
+  version = "2.11";
+
+  outputs = [ "out" "man" ];
+  src = fetchurl {
+    url = "mirror://sourceforge/pgbarman/${version}/barman-${version}.tar.gz";
+    sha256 = "0w5lh4aavab9ynfy2mq09ga6j4vss4k0vlc3g6f5a9i4175g9pmr";
+  };
+
+  propagatedBuildInputs = [ dateutil argh psycopg2 boto3 argcomplete ];
+
+  # Tests are not present in tarball
+  checkPhase = ''
+    $out/bin/barman --help > /dev/null
+  '';
+
+  meta = with lib; {
+    homepage = "https://www.2ndquadrant.com/en/resources/barman/";
+    description = "Backup and Disaster Recovery Manager for PostgreSQL";
+    maintainers = with maintainers; [ freezeboy ];
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/bashcards/default.nix b/nixpkgs/pkgs/tools/misc/bashcards/default.nix
index ecaabb43c143..3e91b9741c63 100644
--- a/nixpkgs/pkgs/tools/misc/bashcards/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bashcards/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bashcards";
-  version = "0.1.2";
+  version = "0.1.3";
 
   src = fetchFromGitHub {
     owner = "rpearce";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1zbijbcm9lrqwiax37li0jjqcaxf469wh5d423frain56z1qknxl";
+    sha256 = "1rpqrh0022sbrjvd55a0jvpdqhhka5msf8dsz6adbbmxy3xzgdid";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/tools/misc/bat/default.nix b/nixpkgs/pkgs/tools/misc/bat/default.nix
index 9902142df352..b4e5501fb739 100644
--- a/nixpkgs/pkgs/tools/misc/bat/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bat/default.nix
@@ -36,6 +36,5 @@ rustPlatform.buildRustPackage rec {
     homepage    = "https://github.com/sharkdp/bat";
     license     = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ dywedir lilyball zowoq ];
-    platforms   = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix b/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix
index a29098268f98..966e71bb6d3b 100644
--- a/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bdf2psf/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bdf2psf";
-  version = "1.195";
+  version = "1.196";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/c/console-setup/bdf2psf_${version}_all.deb";
-    sha256 = "04dsxp6vcy9z9gh41bq970wvdnhkmbdlizsy0dyhsl5axm5i84xz";
+    sha256 = "042ly91525q2qj7985qih4njhjk5ndz8jiz01v860jc38bvw595p";
   };
 
   nativeBuildInputs = [ dpkg ];
diff --git a/nixpkgs/pkgs/tools/misc/bdf2sfd/default.nix b/nixpkgs/pkgs/tools/misc/bdf2sfd/default.nix
index ca67525bb8c4..e7a9d98aaf23 100644
--- a/nixpkgs/pkgs/tools/misc/bdf2sfd/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bdf2sfd/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bdf2sfd";
-  version = "1.1.2";
+  version = "1.1.3";
 
   src = fetchFromGitHub {
     owner = "fcambus";
     repo = pname;
     rev = version;
-    sha256 = "1fhdl739a4v8296wpn2390fhlb6vlg9m1zik7mql4l9008ncd5mv";
+    sha256 = "0v1kkds35qfyv1h5kxc2m7f2gsprg9c7jzpsm3p4f71qn982wry6";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
     description = "BDF to SFD converter";
     homepage = "https://github.com/fcambus/bdf2sfd";
     license = licenses.bsd2;
+    platforms = platforms.all;
     maintainers = with maintainers; [ dtzWill ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/birdfont/default.nix b/nixpkgs/pkgs/tools/misc/birdfont/default.nix
index bdf68d708a5d..7cec0cab996e 100644
--- a/nixpkgs/pkgs/tools/misc/birdfont/default.nix
+++ b/nixpkgs/pkgs/tools/misc/birdfont/default.nix
@@ -14,7 +14,12 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ python3 pkgconfig vala_0_44 gobject-introspection wrapGAppsHook ];
   buildInputs = [ xmlbird libgee cairo gdk-pixbuf glib gtk3 webkitgtk libnotify sqlite gsettings-desktop-schemas ];
 
-  postPatch = "patchShebangs .";
+  postPatch = ''
+    substituteInPlace install.py \
+      --replace 'platform.version()' '"Nix"'
+
+    patchShebangs .
+  '';
 
   buildPhase = "./build.py";
 
diff --git a/nixpkgs/pkgs/tools/misc/birdfont/xmlbird.nix b/nixpkgs/pkgs/tools/misc/birdfont/xmlbird.nix
index e5ad56376cac..eddcba1c9c89 100644
--- a/nixpkgs/pkgs/tools/misc/birdfont/xmlbird.nix
+++ b/nixpkgs/pkgs/tools/misc/birdfont/xmlbird.nix
@@ -13,7 +13,11 @@ stdenv.mkDerivation rec {
 
   buildInputs = [ glib ];
 
-  postPatch = "patchShebangs .";
+  postPatch = ''
+    substituteInPlace configure \
+      --replace 'platform.dist()[0]' '"nix"'
+    patchShebangs .
+  '';
 
   buildPhase = "./build.py";
 
diff --git a/nixpkgs/pkgs/tools/misc/bmap-tools/default.nix b/nixpkgs/pkgs/tools/misc/bmap-tools/default.nix
index 8273d60bd596..afb41d8b6ea9 100644
--- a/nixpkgs/pkgs/tools/misc/bmap-tools/default.nix
+++ b/nixpkgs/pkgs/tools/misc/bmap-tools/default.nix
@@ -11,6 +11,9 @@ python2Packages.buildPythonApplication rec {
     sha256 = "0p0pdwvyf9b4czi1pnhclm1ih8kw78nk2sj4if5hwi7s5423wk5q";
   };
 
+  # tests fail only on hydra.
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "bmap-related tools";
     homepage = "https://github.com/intel/bmap-tools";
diff --git a/nixpkgs/pkgs/tools/misc/broot/default.nix b/nixpkgs/pkgs/tools/misc/broot/default.nix
index 554d7f9e1dd3..62ca179cfdec 100644
--- a/nixpkgs/pkgs/tools/misc/broot/default.nix
+++ b/nixpkgs/pkgs/tools/misc/broot/default.nix
@@ -1,40 +1,79 @@
-{ stdenv, rustPlatform, fetchFromGitHub, coreutils, libiconv, Security, installShellFiles }:
+{ stdenv
+, rustPlatform
+, fetchCrate
+, installShellFiles
+, makeWrapper
+, coreutils
+, libiconv
+, xcbuild
+, zlib
+, Security
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "0.15.1";
+  version = "1.0.0";
 
-  src = fetchFromGitHub {
-    owner = "Canop";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1ggzx4w69fmvaxm5gfqhh8ncr2mdx528zm6vwrrwz165lga2fvw6";
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "1dc6lb6ihj4s0mcp1say16j9yr61jdbzhmayxxsm4ansngbzmw45";
   };
 
-  cargoSha256 = "0gcq0fww9hl3avh3qcnpnwmpwda4cymr7x3kd3frdizrs8i643mr";
+  cargoSha256 = "0nqmincayjv1snxz94i14fypc9dv69fxfqqdz3qbcvc2cs62zayg";
 
-  nativeBuildInputs = [ installShellFiles ];
+  nativeBuildInputs = [
+    makeWrapper
+    installShellFiles
+    xcbuild # The cc crate attempts to run xcbuild.
+  ];
 
-  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [
+    libiconv
+    Security
+    zlib
+  ];
 
   postPatch = ''
     substituteInPlace src/verb/builtin.rs --replace '"/bin/' '"${coreutils}/bin/'
+
+    # Fill the version stub in the man page. We can't fill the date
+    # stub reproducibly.
+    substitute man/page man/broot.1 \
+      --replace "#version" "${version}"
   '';
 
   postInstall = ''
+    # Do not nag users about installing shell integration, since
+    # it is impure.
+    wrapProgram $out/bin/broot \
+      --set BR_INSTALL no
+
+    # Install shell function for bash.
+    $out/bin/broot --print-shell-function bash > br.bash
+    install -Dm0444 -t $out/etc/profile.d br.bash
+
+    # Install shell function for zsh.
+    $out/bin/broot --print-shell-function zsh > br.zsh
+    install -Dm0444 br.zsh $out/share/zsh/site-functions/br
+
+    # Install shell function for fish
+    $out/bin/broot --print-shell-function fish > br.fish
+    install -Dm0444 -t $out/share/fish/vendor_functions.d br.fish
+
     # install shell completion files
     OUT_DIR=$releaseDir/build/broot-*/out
 
     installShellCompletion --bash $OUT_DIR/{br,broot}.bash
     installShellCompletion --fish $OUT_DIR/{br,broot}.fish
     installShellCompletion --zsh $OUT_DIR/{_br,_broot}
+
+    installManPage man/broot.1
   '';
 
   meta = with stdenv.lib; {
     description = "An interactive tree view, a fuzzy search, a balanced BFS descent and customizable commands";
     homepage = "https://dystroy.org/broot/";
-    maintainers = with maintainers; [ magnetophon ];
+    maintainers = with maintainers; [ danieldk ];
     license = with licenses; [ mit ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/catimg/default.nix b/nixpkgs/pkgs/tools/misc/catimg/default.nix
index ac2f3f3411a2..30845759a28e 100644
--- a/nixpkgs/pkgs/tools/misc/catimg/default.nix
+++ b/nixpkgs/pkgs/tools/misc/catimg/default.nix
@@ -4,13 +4,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "catimg";
-  version = "2.6.0";
+  version = "2.7.0";
 
   src = fetchFromGitHub {
     owner = "posva";
     repo = pname;
     rev = version;
-    sha256 = "0g9ywbgy162wiam9hc3yqpq5q4gyxa8fj4jskr3fdz8z8jjaabzz";
+    sha256 = "0a2dswbv4xddb2l2d55hc43lzvjwrjs5z9am7v6i0p0mi2fmc89s";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/tools/misc/chezmoi/default.nix b/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
index eb372b6b5671..d7b7646afec3 100644
--- a/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
+++ b/nixpkgs/pkgs/tools/misc/chezmoi/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "chezmoi";
-  version = "1.8.2";
+  version = "1.8.5";
 
   src = fetchFromGitHub {
     owner = "twpayne";
     repo = "chezmoi";
     rev = "v${version}";
-    sha256 = "0s2a0q3lgrdz7w69sacn23k4dybw6wrk63xxnylj88wss7mqnpj8";
+    sha256 = "16sv1kbd66rllnnl851y3x54wkl0p7g0qsblprvfr9715svk1835";
   };
 
-  vendorSha256 = "0hpjvpai2i9jn8hlxhx4pvvawjh6lfmlz7ffi320pp7vanzqhch1";
+  vendorSha256 = "1i9d672mzmb97s26n0v01m70g4viyl9pdk25haxr6ny4rab2wbi7";
+
+  doCheck = false;
 
   buildFlagsArray = [
     "-ldflags=-s -w -X main.version=${version} -X main.builtBy=nixpkgs"
@@ -32,6 +34,5 @@ buildGoModule rec {
     description = "Manage your dotfiles across multiple machines, securely";
     license = licenses.mit;
     maintainers = with maintainers; [ jhillyerd ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/misc/cht.sh/default.nix b/nixpkgs/pkgs/tools/misc/cht.sh/default.nix
index 084d51d2a3ab..1c38e7c3b8f5 100644
--- a/nixpkgs/pkgs/tools/misc/cht.sh/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cht.sh/default.nix
@@ -9,15 +9,15 @@
 
 stdenv.mkDerivation {
   pname = "cht.sh";
-  version = "unstable-2019-08-06";
+  version = "unstable-2020-08-06";
 
   nativeBuildInputs = [ makeWrapper ];
 
   src = fetchFromGitHub {
     owner = "chubin";
     repo = "cheat.sh";
-    rev = "f507ba51d6bc1ae6c7df808cadbe4f8603951b6b";
-    sha256 = "0r7x9a3qzzkbd1m5zdlkpmhx0p7b7ja42190s7fidls3dsm710g0";
+    rev = "9f99bec1f0293e84d6d8a990a1940c1422e3b0ce";
+    sha256 = "1n4lgzsgg4502zh113d7pb1hw6bykqx6vpfp8j08z7y5clmdiwa6";
   };
 
   # Fix ".cht.sh-wrapped" in the help message
diff --git a/nixpkgs/pkgs/tools/misc/clipman/default.nix b/nixpkgs/pkgs/tools/misc/clipman/default.nix
index 5146e25da501..80a0afe68d36 100644
--- a/nixpkgs/pkgs/tools/misc/clipman/default.nix
+++ b/nixpkgs/pkgs/tools/misc/clipman/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "18jw4z0lcrh00yjr3qdkgvlrpfwqbsm0ncz7fp1h72pzkh41byv7";
 
+  doCheck = false;
+
   nativeBuildInputs = [ makeWrapper ];
 
   postInstall = ''
@@ -27,4 +29,4 @@ buildGoModule rec {
     description = "A simple clipboard manager for Wayland";
     platforms = platforms.linux;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/misc/cloc/default.nix b/nixpkgs/pkgs/tools/misc/cloc/default.nix
index e35d5283256e..2b9cbfe10305 100644
--- a/nixpkgs/pkgs/tools/misc/cloc/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cloc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cloc";
-  version = "1.86";
+  version = "1.88";
 
   src = fetchFromGitHub {
     owner = "AlDanial";
     repo = "cloc";
     rev = version;
-    sha256 = "082gj2b3x11bilz8c572dd60vn6n0fhld5zhi7wk7g1wy9wlgm9w";
+    sha256 = "1ixgswzbzv63bl50gb2kgaqr0jcicjz6w610hi9fal1i7744zraw";
   };
 
   setSourceRoot = ''
diff --git a/nixpkgs/pkgs/tools/misc/cloud-sql-proxy/default.nix b/nixpkgs/pkgs/tools/misc/cloud-sql-proxy/default.nix
index bc23958b5815..16263e2b6c35 100644
--- a/nixpkgs/pkgs/tools/misc/cloud-sql-proxy/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cloud-sql-proxy/default.nix
@@ -23,6 +23,5 @@ buildGoPackage rec {
     homepage = "https://${goPackagePath}";
     license = licenses.asl20;
     maintainers = [ maintainers.nicknovitski ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/cloud-utils/default.nix b/nixpkgs/pkgs/tools/misc/cloud-utils/default.nix
index cdd1891fb405..d5c5b0ee783d 100644
--- a/nixpkgs/pkgs/tools/misc/cloud-utils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cloud-utils/default.nix
@@ -8,10 +8,10 @@ stdenv.mkDerivation rec {
   # $ nix-build nixos/release-combined.nix -A nixos.tests.ec2-nixops
   # growpart is needed in initrd in nixos/system/boot/grow-partition.nix
   pname = "cloud-utils";
-  version = "0.30";
+  version = "0.31";
   src = fetchurl {
-    url = "https://launchpad.net/cloud-utils/trunk/0.3/+download/cloud-utils-${version}.tar.gz";
-    sha256 = "19ca9ckwwsvlqrjz19bc93rq4gv3y4ak7551li2qk95caqyxsq3k";
+    url = "https://launchpad.net/cloud-utils/trunk/${version}/+download/cloud-utils-${version}.tar.gz";
+    sha256 = "07fl3dlqwdzw4xx7mcxhpkks6dnmaxha80zgs9f6wmibgzni8z0r";
   };
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ python3 ];
diff --git a/nixpkgs/pkgs/tools/misc/clpeak/clpeak-clhpp2.diff b/nixpkgs/pkgs/tools/misc/clpeak/clpeak-clhpp2.diff
new file mode 100644
index 000000000000..aed9112682b8
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/clpeak/clpeak-clhpp2.diff
@@ -0,0 +1,72 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 86fec9e..b9d0341 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -22,7 +22,7 @@ elseif(WIN32 AND ${OpenCL_LIBRARIES} MATCHES "OpenCL.lib")
+   set(OpenCL_LIBRARIES ${OpenCL_LIBRARIES} cfgmgr32.lib)
+ endif()
+ 
+-FIND_PATH(HPP_FOUND CL/cl.hpp PATHS ${OpenCL_INCLUDE_DIRS})
++FIND_PATH(HPP_FOUND CL/cl2.hpp PATHS ${OpenCL_INCLUDE_DIRS})
+ if(NOT HPP_FOUND)
+   list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
+   include(BuildCLHpp)
+diff --git a/include/clpeak.h b/include/clpeak.h
+index c090d31..0d9d5e2 100644
+--- a/include/clpeak.h
++++ b/include/clpeak.h
+@@ -1,14 +1,10 @@
+ #ifndef CLPEAK_HPP
+ #define CLPEAK_HPP
+ 
+-#define __CL_ENABLE_EXCEPTIONS
+-
+-#include <CL/cl.hpp>
+-
+ #include <iostream>
+ #include <stdio.h>
+ #include <iomanip>
+-#include <string.h>
++#include <string>
+ #include <sstream>
+ #include <common.h>
+ #include <logger.h>
+diff --git a/include/common.h b/include/common.h
+index 91318cb..6aaca04 100644
+--- a/include/common.h
++++ b/include/common.h
+@@ -1,7 +1,11 @@
+ #ifndef COMMON_H
+ #define COMMON_H
+ 
+-#include <CL/cl.hpp>
++#define CL_HPP_ENABLE_EXCEPTIONS
++#define CL_HPP_MINIMUM_OPENCL_VERSION 120
++#define CL_HPP_TARGET_OPENCL_VERSION 120
++#include <CL/cl2.hpp>
++
+ #if defined(__APPLE__) || defined(__MACOSX) || defined(__FreeBSD__)
+ #include <sys/types.h>
+ #endif
+diff --git a/src/clpeak.cpp b/src/clpeak.cpp
+index 8708463..4a47842 100644
+--- a/src/clpeak.cpp
++++ b/src/clpeak.cpp
+@@ -3,7 +3,7 @@
+ 
+ #define MSTRINGIFY(...) #__VA_ARGS__
+ 
+-static const char *stringifiedKernels =
++static const std::string stringifiedKernels =
+ #include "global_bandwidth_kernels.cl"
+ #include "compute_sp_kernels.cl"
+ #include "compute_hp_kernels.cl"
+@@ -65,7 +65,7 @@ int clPeak::runAll()
+ 
+       cl::Context ctx(CL_DEVICE_TYPE_ALL, cps);
+       vector<cl::Device> devices = ctx.getInfo<CL_CONTEXT_DEVICES>();
+-      cl::Program::Sources source(1, make_pair(stringifiedKernels, (strlen(stringifiedKernels) + 1)));
++      cl::Program::Sources source(1, stringifiedKernels);
+       cl::Program prog = cl::Program(ctx, source);
+ 
+       for (size_t d = 0; d < devices.size(); d++)
diff --git a/nixpkgs/pkgs/tools/misc/clpeak/default.nix b/nixpkgs/pkgs/tools/misc/clpeak/default.nix
new file mode 100644
index 000000000000..b021703b804a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/clpeak/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, cmake, ocl-icd, opencl-clhpp }:
+
+stdenv.mkDerivation rec {
+  pname = "clpeak";
+  version = "1.1.0";
+
+  src = fetchFromGitHub {
+    owner = "krrishnarraj";
+    repo = "clpeak";
+    rev = version;
+    fetchSubmodules = true;
+    sha256 = "1wkjpvn4r89c3y06rv7gfpwpqw6ljmqwz0w0mljl9y5hn1r4pkx2";
+  };
+
+  patches = [
+    # The cl.hpp header was removed from opencl-clhpp. This patch
+    # updates clpeak to use the new cp2.hpp header. The patch comes
+    # from the following PR and was updated to apply against more
+    # recent versions: https://github.com/krrishnarraj/clpeak/pull/46
+    ./clpeak-clhpp2.diff
+  ];
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ ocl-icd opencl-clhpp ];
+
+  meta = with stdenv.lib; {
+    description = "A tool which profiles OpenCL devices to find their peak capacities";
+    homepage = "https://github.com/krrishnarraj/clpeak/";
+    license = licenses.unlicense;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/cod/default.nix b/nixpkgs/pkgs/tools/misc/cod/default.nix
new file mode 100644
index 000000000000..945f4c61f1d2
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/cod/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+  pname = "cod";
+  version = "unstable-2020-09-10";
+
+  goPackagePath = "cod";
+
+  src = fetchFromGitHub {
+    owner = "dim-an";
+    repo = pname;
+    rev = "ae68da08339471dd278d6df79abbfd6fe89a10fe";
+    sha256 = "1l3gn9v8dcy72f5xq9hwbkvkis0vp4dp8qyinsrii3acmhksg9v6";
+  };
+
+  vendorSha256 = "1arllkiz1hk12hq5b2zpg3f8i9lxl66mil5sdv8gnhflmb37vbv3";
+
+  buildFlagsArray = [ "-ldflags=-X main.GitSha=${src.rev}" ];
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Tool for generating Bash/Zsh autocompletions based on `--help` output";
+    homepage = src.meta.homepage;
+    license = licenses.asl20;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/codebraid/default.nix b/nixpkgs/pkgs/tools/misc/codebraid/default.nix
index bc4a7084cdda..eea5260a989c 100644
--- a/nixpkgs/pkgs/tools/misc/codebraid/default.nix
+++ b/nixpkgs/pkgs/tools/misc/codebraid/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "codebraid";
-  version = "0.5.0-unstable-2019-12-11";
+  version = "0.5.0-unstable-2020-07-01";
 
   src = fetchFromGitHub {
     owner = "gpoore";
     repo = pname;
-    rev = "fac1b29";
-    sha256 = "0ldfrkkip7i1fdyz1iydyik3mhm0xv0jvxnl37r7g707dl38vf3h";
+    rev = "c7962587e7f1e619b5dcf9a5e901eb7042520b00";
+    sha256 = "1f31yaiwc33ivjbipym7sggsqwqxn70kgf9dixi8392pk70jzq6p";
   };
 
   propagatedBuildInputs = with python3Packages; [ bespon ];
diff --git a/nixpkgs/pkgs/tools/misc/colorpicker/default.nix b/nixpkgs/pkgs/tools/misc/colorpicker/default.nix
new file mode 100644
index 000000000000..3de5d33617c7
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/colorpicker/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, fetchFromGitHub, pkg-config, gtk2 }:
+
+stdenv.mkDerivation rec {
+  pname = "colorpicker";
+  version = "git-2018-01-14";
+
+  src = fetchFromGitHub {
+    owner = "Ancurio";
+    repo  = "colorpicker";
+    rev   = "287676947e6e3b5b0cee784aeb1638cf22f0ce17";
+    sha256 = "1kj1dpb79llrfpszraaz6r7ci114zqi5rmqxwsvq2dnnpjxyi29r";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ gtk2 ];
+
+  installPhase = ''
+    install -Dt $out/bin colorpicker
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Click on a pixel on your screen and print its color value in RGB";
+    homepage = "https://github.com/Ancurio/colorpicker";
+    maintainers = with maintainers; [ jb55 ];
+    license = licenses.mit;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix b/nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix
index e769cb25a731..39e2e041e326 100644
--- a/nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/coreboot-utils/default.nix
@@ -1,9 +1,9 @@
 { stdenv, fetchurl, zlib, pciutils, coreutils, acpica-tools, iasl, makeWrapper, gnugrep, gnused, file, buildEnv }:
 
 let
-  version = "4.11";
+  version = "4.12";
 
-  meta = with stdenv.lib; {
+  commonMeta = with stdenv.lib; {
     description = "Various coreboot-related tools";
     homepage = "https://www.coreboot.org";
     license = licenses.gpl2;
@@ -12,11 +12,11 @@ let
   };
 
   generic = { pname, path ? "util/${pname}", ... }@args: stdenv.mkDerivation (rec {
-    inherit pname version meta;
+    inherit pname version;
 
     src = fetchurl {
       url = "https://coreboot.org/releases/coreboot-${version}.tar.xz";
-      sha256 = "11xdm2c1blaqb32j98085sak78jldsw0xhrkzqs5b8ir9jdqbzcp";
+      sha256 = "1qibds9lsk22wf1sxwg0jg32fgcvc9an39vf74y1hwwvxq0d1jpd";
     };
 
     enableParallelBuilding = true;
@@ -29,7 +29,9 @@ let
       "INSTALL=install"
       "PREFIX=${placeholder "out"}"
     ];
-  } // args);
+
+    meta = commonMeta // args.meta;
+  } // (removeAttrs args ["meta"]));
 
   utils = {
     msrtool = generic {
@@ -99,6 +101,7 @@ in utils // {
     paths = stdenv.lib.attrValues utils;
     postBuild = "rm -rf $out/sbin";
   }) // {
-    inherit meta version;
+    inherit version;
+    meta = commonMeta;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/cpuminer/default.nix b/nixpkgs/pkgs/tools/misc/cpuminer/default.nix
index 99eb6a52ca0b..d48dc5ec1c9f 100644
--- a/nixpkgs/pkgs/tools/misc/cpuminer/default.nix
+++ b/nixpkgs/pkgs/tools/misc/cpuminer/default.nix
@@ -1,17 +1,25 @@
-{ stdenv, fetchurl, curl, jansson, perl }:
+{ stdenv
+, fetchFromGitHub
+, curl
+, jansson
+, perl
+, autoreconfHook
+}:
 
 stdenv.mkDerivation rec {
   pname = "cpuminer";
-  version = "2.5.0";
+  version = "2.5.1";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/cpuminer/pooler-${pname}-${version}.tar.gz";
-    sha256 = "1xalrfrk5hvh1jh9kbqhib2an82ypd46vl9glaxhz3rbjld7c5pa";
+  src = fetchFromGitHub {
+    owner = "pooler";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0f44i0z8rid20c2hiyp92xq0q0mjj537r05sa6vdbc0nl0a5q40i";
   };
 
   patchPhase = if stdenv.cc.isClang then "${perl}/bin/perl ./nomacro.pl" else null;
 
-  buildInputs = [ curl jansson ];
+  buildInputs = [ curl jansson autoreconfHook ];
 
   configureFlags = [ "CFLAGS=-O3" ];
 
diff --git a/nixpkgs/pkgs/tools/misc/dashing/default.nix b/nixpkgs/pkgs/tools/misc/dashing/default.nix
index 8d7f16b5beca..11523ae3758d 100644
--- a/nixpkgs/pkgs/tools/misc/dashing/default.nix
+++ b/nixpkgs/pkgs/tools/misc/dashing/default.nix
@@ -1,26 +1,26 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
-{ stdenv, buildGoPackage, fetchgit }:
+{ stdenv, buildGoPackage, fetchFromGitHub }:
 
 buildGoPackage rec {
-  pname = "dashing-unstable";
-  version = "2018-02-15";
-  rev = "0e0519d76ed6bbbe02b00ee1d1ac24697d349f49";
+  pname = "dashing";
+  version = "0.4.0";
 
   goPackagePath = "github.com/technosophos/dashing";
 
-  src = fetchgit {
-    inherit rev;
-    url = "https://github.com/technosophos/dashing";
-    sha256 = "066njyk3c1fqqr0v6aa6knp3dnksmh6hnl9d84fgd4wzyw3ma2an";
+  src = fetchFromGitHub {
+    owner = "technosophos";
+    repo = pname;
+    rev = version;
+    sha256 = "0mhv0w5q5vpynbfi21n5i3yw2165bppdlg0amvbv86n9z4c21h89";
   };
 
   goDeps = ./deps.nix;
 
+  buildFlagsArray = [ "-ldflags=-X main.version=${version}" ];
+
   meta = with stdenv.lib; {
     description = "A Dash Generator Script for Any HTML";
     homepage    = "https://github.com/technosophos/dashing";
     license     = licenses.mit;
     maintainers = [ ];
-    platforms   = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/dashing/deps.nix b/nixpkgs/pkgs/tools/misc/dashing/deps.nix
index 4ad5a10149ec..a87de8674ff1 100644
--- a/nixpkgs/pkgs/tools/misc/dashing/deps.nix
+++ b/nixpkgs/pkgs/tools/misc/dashing/deps.nix
@@ -1,21 +1,30 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.2.1
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
 [
   {
+    goPackagePath = "github.com/BurntSushi/toml";
+    fetch = {
+      type = "git";
+      url = "https://github.com/BurntSushi/toml";
+      rev = "v0.3.1";
+      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
+    };
+  }
+  {
     goPackagePath = "github.com/andybalholm/cascadia";
     fetch = {
       type = "git";
       url = "https://github.com/andybalholm/cascadia";
-      rev = "901648c87902174f774fac311d7f176f8647bdaa";
-      sha256 = "09j8cavbhqqdxjqrkwbc40g8p0i49zf3184rpjm5p2rjbprcghcc";
+      rev = "903109d295d5";
+      sha256 = "1zprh6wfyf4f5c6nw1bgyyfx3niydsnbdyvpi18fc378wmh4hlq4";
     };
   }
   {
-    goPackagePath = "github.com/codegangsta/cli";
+    goPackagePath = "github.com/cpuguy83/go-md2man";
     fetch = {
       type = "git";
-      url = "https://github.com/codegangsta/cli";
-      rev = "8e01ec4cd3e2d84ab2fe90d8210528ffbb06d8ff";
-      sha256 = "0cpr10n4ps3gcdbcink71ry9hzhdb5rrcysmylybs8h2lzxqgc1i";
+      url = "https://github.com/cpuguy83/go-md2man";
+      rev = "f79a8a8ca69d";
+      sha256 = "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv";
     };
   }
   {
@@ -23,8 +32,53 @@
     fetch = {
       type = "git";
       url = "https://github.com/mattn/go-sqlite3";
-      rev = "d896508f87298565da02ed92730e7065c3de10b8";
-      sha256 = "19q0rv171wx73rwdp81rkj9ys3r5jaav94b3j06gprg59phb98bs";
+      rev = "v2.0.1";
+      sha256 = "1i3v0j5144iir1n31nahbq9rs2picraphyh5qx9n9rz1d5w1v8zy";
+    };
+  }
+  {
+    goPackagePath = "github.com/pmezard/go-difflib";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pmezard/go-difflib";
+      rev = "v1.0.0";
+      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+    };
+  }
+  {
+    goPackagePath = "github.com/russross/blackfriday";
+    fetch = {
+      type = "git";
+      url = "https://github.com/russross/blackfriday";
+      rev = "v2.0.1";
+      sha256 = "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j";
+    };
+  }
+  {
+    goPackagePath = "github.com/shurcooL/sanitized_anchor_name";
+    fetch = {
+      type = "git";
+      url = "https://github.com/shurcooL/sanitized_anchor_name";
+      rev = "v1.0.0";
+      sha256 = "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f";
+    };
+  }
+  {
+    goPackagePath = "github.com/urfave/cli";
+    fetch = {
+      type = "git";
+      url = "https://github.com/urfave/cli";
+      rev = "v2.0.0";
+      sha256 = "0ybpg48s08sm46xsbb42yk14zrsm7pr9808khh6f9fca7s3c7fns";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/crypto";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/crypto";
+      rev = "c2843e01d9a2";
+      sha256 = "01xgxbj5r79nmisdvpq48zfy8pzaaj90bn6ngd4nf33j9ar1dp8r";
     };
   }
   {
@@ -32,8 +86,44 @@
     fetch = {
       type = "git";
       url = "https://go.googlesource.com/net";
-      rev = "61147c48b25b599e5b561d2e9c4f3e1ef489ca41";
-      sha256 = "1520pdlw9a9s41ad1cf1z6y2ff4j96zbn82qffrxqk02bqlr9f5w";
+      rev = "e7e4b65ae663";
+      sha256 = "0phil62b9cqvllhfjqqm1jpyk2dxg1dvd88pq2044nc3sxni7w8b";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "d0b11bdaac8a";
+      sha256 = "18yfsmw622l7gc5sqriv5qmck6903vvhivpzp8i3xfy3z33dybdl";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev = "v0.3.0";
+      sha256 = "0r6x6zjzhr8ksqlpiwm5gdd7s209kwk5p4lw54xjvz10cs3qlq19";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/check.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/check.v1";
+      rev = "20d25e280405";
+      sha256 = "0k1m83ji9l1a7ng8a7v40psbymxasmssbrrhpdv2wl4rhs0nc3np";
+    };
+  }
+  {
+    goPackagePath = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/yaml.v2";
+      rev = "v2.2.2";
+      sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
     };
   }
 ]
diff --git a/nixpkgs/pkgs/tools/misc/ddcutil/default.nix b/nixpkgs/pkgs/tools/misc/ddcutil/default.nix
index c2eed30a70d1..0a2664d6a775 100644
--- a/nixpkgs/pkgs/tools/misc/ddcutil/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ddcutil/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ddcutil";
-  version = "0.9.8";
+  version = "0.9.9";
 
   src = fetchFromGitHub {
     owner  = "rockowitz";
     repo   = "ddcutil";
     rev    = "v${version}";
-    sha256 = "1r89cfw3ycqwvpfwwiqg8ykc1vyr1gf3ah30mvrmmalgmi6bnx5w";
+    sha256 = "1ppiddnrvkbb9iir28kl9hzpww0hpgb05jfxzf07xsqkdfb4qv71";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/nixpkgs/pkgs/tools/misc/debianutils/default.nix b/nixpkgs/pkgs/tools/misc/debianutils/default.nix
index 445dfd6f0857..141df3332227 100644
--- a/nixpkgs/pkgs/tools/misc/debianutils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/debianutils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "debianutils";
-  version = "4.10";
+  version = "4.11.1";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/d/${pname}/${pname}_${version}.tar.xz";
-    sha256 = "1mj2hrwm8zr3814yig1f78hzflgih93hmy3dsyx6k0fdcfjkjvmx";
+    sha256 = "0g4qmzb2ff0rqszzpsal465hcslnpdl4nhghv59qvhamkkqnks4b";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/tools/misc/diffoscope/default.nix b/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
index 5e5550e0b41d..011c5432089d 100644
--- a/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
+++ b/nixpkgs/pkgs/tools/misc/diffoscope/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, fetchpatch, runCommand, makeWrapper, python3Packages, docutils, help2man
+{ lib, stdenv, fetchurl, runCommand, makeWrapper, python3Packages, docutils, help2man
 , abootimg, acl, apktool, binutils-unwrapped, build-tools, bzip2, cbfstool, cdrkit, colord, colordiff, coreutils, cpio, db, diffutils, dtc
 , e2fsprogs, file, findutils, fontforge-fonttools, ffmpeg, fpc, gettext, ghc, ghostscriptX, giflib, gnumeric, gnupg, gnutar
 , gzip, hdf5, imagemagick, jdk, libarchive, libcaca, llvm, lz4, mono, openssh, openssl, pdftk, pgpdump, poppler_utils, qemu, R
@@ -16,11 +16,11 @@ let
 in
 python3Packages.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "147";
+  version = "160";
 
   src = fetchurl {
     url    = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    sha256 = "1pichn3l10401cqk08zrys2ya9b6cjznk7ra28awnmvlg6l1cypj";
+    sha256 = "1nshcgq31nrbh4r70i5azs7s0wfc4llb60ka1w8rncy22rg8rabc";
   };
 
   outputs = [ "out" "man" ];
@@ -28,12 +28,6 @@ python3Packages.buildPythonApplication rec {
   patches = [
     ./ignore_links.patch
     ./skip-failing-test.patch
-
-    # Fix for CBFS comparator
-    (fetchpatch {
-      url = "https://salsa.debian.org/reproducible-builds/diffoscope/-/commit/39ec527371c469d61e4afc04b3ee6ae3563f7b4c.patch";
-      sha256 = "1mzdcbxg3ad5ynpf79phvif5hzckmhf7vzd82l1sffhlqxh0v4h3";
-    })
   ];
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/misc/dijo/default.nix b/nixpkgs/pkgs/tools/misc/dijo/default.nix
new file mode 100644
index 000000000000..da504ad3ba38
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/dijo/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, lib, rustPlatform, fetchFromGitHub, ncurses, CoreServices }:
+let version = "0.2.3"; in
+rustPlatform.buildRustPackage {
+  pname = "dijo";
+  inherit version;
+  buildInputs = [ ncurses ] ++ lib.optional stdenv.isDarwin CoreServices;
+  src = fetchFromGitHub {
+    owner = "NerdyPepper";
+    repo = "dijo";
+    rev = "v${version}";
+    sha256 = "1lcvj0pri5v64zygkf2p24vr72y39agrq1r3kb8dfgz8yy3vcz0a";
+  };
+  cargoSha256 = "0pm048xf8hkva8q8fjmhrdnk7h2im28ix7xy784xwkkdnilm4j7f";
+
+  meta = with lib; {
+    description = "Scriptable, curses-based, digital habit tracker.";
+    homepage = "https://github.com/NerdyPepper/dijo";
+    license = licenses.mit;
+    maintainers = with maintainers; [ infinisil ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/direnv/default.nix b/nixpkgs/pkgs/tools/misc/direnv/default.nix
index 47668986a460..3fb2a5d76a06 100644
--- a/nixpkgs/pkgs/tools/misc/direnv/default.nix
+++ b/nixpkgs/pkgs/tools/misc/direnv/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchFromGitHub, buildGoModule, bash }:
+{ stdenv, fetchFromGitHub, buildGoModule, bash, fish, zsh }:
 
 buildGoModule rec {
   pname = "direnv";
-  version = "2.21.3";
+  version = "2.22.0";
 
   vendorSha256 = null;
 
@@ -10,7 +10,7 @@ buildGoModule rec {
     owner = "direnv";
     repo = "direnv";
     rev = "v${version}";
-    sha256 = "1adi6ld9g4zgz0f6q0kkzrywclqrmikyp7yh22zm9lfdvd5hs8wp";
+    sha256 = "06z85r99w0nr093fawva6sysdlrdsfjjf7asx96k1sjv56sb306m";
   };
 
   # we have no bash at the moment for windows
@@ -29,6 +29,13 @@ buildGoModule rec {
     echo "eval ($out/bin/direnv hook fish)" > $out/share/fish/vendor_conf.d/direnv.fish
   '';
 
+  checkInputs = [ fish zsh ];
+
+  checkPhase = ''
+    export HOME=$(mktemp -d)
+    make test-go test-bash test-fish test-zsh
+  '';
+
   meta = with stdenv.lib; {
     description = "A shell extension that manages your environment";
     longDescription = ''
diff --git a/nixpkgs/pkgs/tools/misc/discocss/default.nix b/nixpkgs/pkgs/tools/misc/discocss/default.nix
new file mode 100644
index 000000000000..43214c866302
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/discocss/default.nix
@@ -0,0 +1,27 @@
+{ stdenvNoCC, lib, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "discocss";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "mlvzk";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1818jca3sw2ngw1n488q82w5rakx4cxgknnkmsaa0sz4h8gldfy8";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    install -m755 -D ./discocss $out/bin/discocss
+  '';
+
+  meta = with lib; {
+    description = "A tiny Discord css-injector";
+    homepage = "https://github.com/mlvzk/discocss";
+    license = licenses.mpl20;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ mlvzk ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/diskonaut/default.nix b/nixpkgs/pkgs/tools/misc/diskonaut/default.nix
new file mode 100644
index 000000000000..20b955f877e6
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/diskonaut/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "diskonaut";
+  version = "0.11.0";
+
+  src = fetchFromGitHub {
+    owner = "imsnif";
+    repo = "diskonaut";
+    rev = version;
+    sha256 = "1pmbag3r2ka30zmy2rs9jps2qxj2zh0gy4a774v9yhf0b6qjid54";
+  };
+
+  cargoSha256 = "0y86ikf235lp5j85fgzawgp4vx66rmzqd6p5n8iy3mqwn3c1ggb8";
+
+  meta = with stdenv.lib; {
+    description = "Terminal disk space navigator";
+    homepage = "https://github.com/imsnif/diskonaut";
+    license = licenses.mit;
+    maintainers = with maintainers; [ evanjs ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/docui/default.nix b/nixpkgs/pkgs/tools/misc/docui/default.nix
index f3f89d0a667a..73aa8984a49b 100644
--- a/nixpkgs/pkgs/tools/misc/docui/default.nix
+++ b/nixpkgs/pkgs/tools/misc/docui/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1ggdczvv03lj0g6cq26vrk1rba6pk0805n85w9hkbjx9c4r3j577";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "TUI Client for Docker";
     homepage = "https://github.com/skanehira/docui";
@@ -20,4 +22,4 @@ buildGoModule rec {
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ aethelz ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/misc/dua/default.nix b/nixpkgs/pkgs/tools/misc/dua/default.nix
index a79059dff071..b4cdde95b800 100644
--- a/nixpkgs/pkgs/tools/misc/dua/default.nix
+++ b/nixpkgs/pkgs/tools/misc/dua/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dua";
-  version = "2.6.1";
+  version = "2.10.2";
 
   src = fetchFromGitHub {
     owner = "Byron";
     repo = "dua-cli";
     rev = "v${version}";
-    sha256 = "0wq6cqznbpkiy9vz3slpcnxlsxff6gx5x7fsbd67q6jv5zhkn881";
+    sha256 = "0qsk4pa7xywd6fdwd5v4qwj334hyp3xjlayjzgyhks7a87hdwjgs";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     extraPostFetch = ''
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
     '';
   };
 
-  cargoSha256 = "096c6i1hqyygaifnm2kg53x22a8hhfxfz22qlssh1rw79bj82q0x";
+  cargoSha256 = "02wd4cw9hd8d96szwx8yxz6bll60f7w1z0xiz7k1h8h12mriaz4w";
 
   doCheck = false;
 
@@ -25,6 +25,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Byron/dua-cli";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ killercup ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/duf/default.nix b/nixpkgs/pkgs/tools/misc/duf/default.nix
new file mode 100644
index 000000000000..2ed6f0ef7cbb
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/duf/default.nix
@@ -0,0 +1,23 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+  pname = "duf";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner = "muesli";
+    repo = "duf";
+    rev = "v${version}";
+    sha256 = "08vmhcvqn9g86iqwk42bj0i09lmchhdgha1xaj1jw1ci4k7s9vrf";
+  };
+
+  vendorSha256 = "1jmj46yami37r2wmiprpwyljcmj7dir9mcccx5is1jbiai6sx79i";
+
+  meta = with lib; {
+    homepage = "https://github.com/muesli/duf/";
+    description = "Disk Usage/Free Utility";
+    license = licenses.mit;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ petabyteboy ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/dust/default.nix b/nixpkgs/pkgs/tools/misc/dust/default.nix
index 53594494a83f..238ff73ba387 100644
--- a/nixpkgs/pkgs/tools/misc/dust/default.nix
+++ b/nixpkgs/pkgs/tools/misc/dust/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "du-dust";
-  version = "0.5.1";
+  version = "0.5.3";
 
   src = fetchFromGitHub {
     owner = "bootandy";
     repo = "dust";
     rev = "v${version}";
-    sha256 = "1l5fh7yl8mbgahvzfa251cyp8j5awqdl66jblz565b1wb536kig7";
+    sha256 = "1rcbxqcxr8v5faa52psjsjjlnkia5cwc3b1cwka9f5cxwhdwg7hr";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     extraPostFetch = ''
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
     '';
   };
 
-  cargoSha256 = "0s8z8cg9q0gfqm0ann8rkxwp5y25si97kgginh6b6lbnaai7y4fj";
+  cargoSha256 = "1q15xy15hk6r3sai9wry2jm57dhinx6r84yxg9fwvq354613k645";
 
   doCheck = false;
 
@@ -25,6 +25,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/bootandy/dust";
     license = licenses.asl20;
     maintainers = [ maintainers.infinisil ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/entr/default.nix b/nixpkgs/pkgs/tools/misc/entr/default.nix
index be8134a92a33..9bd9c2104f38 100644
--- a/nixpkgs/pkgs/tools/misc/entr/default.nix
+++ b/nixpkgs/pkgs/tools/misc/entr/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "entr";
-  version = "4.5";
+  version = "4.6";
 
   src = fetchurl {
     url = "http://entrproject.org/code/${pname}-${version}.tar.gz";
-    sha256 = "08gsd99w20fdi0apppmzsh06z29ga8y89nfcizidil2hkl8b7jyn";
+    sha256 = "0vcflgagna2gdlpjsd6748c73j2829xlhm276mi838zl1n121phn";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/misc/envsubst/default.nix b/nixpkgs/pkgs/tools/misc/envsubst/default.nix
index af0fa6a76ba9..be563345b2c2 100644
--- a/nixpkgs/pkgs/tools/misc/envsubst/default.nix
+++ b/nixpkgs/pkgs/tools/misc/envsubst/default.nix
@@ -2,21 +2,20 @@
 
 buildGoPackage rec {
   pname = "envsubst";
-  version = "1.1.0";
+  version = "1.2.0";
 
   goPackagePath = "github.com/a8m/envsubst";
   src = fetchFromGitHub {
     owner = "a8m";
     repo = "envsubst";
     rev = "v${version}";
-    sha256 = "1d6nipagjn40n6iw1p3r489l2km5xjd5db9gbh1vc5sxc617l7yk";
+    sha256 = "0zkgjdlw3d5xh7g45bzxqspxr61ljdli8ng4a1k1gk0dls4sva8n";
   };
 
   meta = with lib; {
     description = "Environment variables substitution for Go";
     homepage = "https://github.com/a8m/envsubst";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ nicknovitski ];
   };
 }
diff --git a/nixpkgs/pkgs/servers/home-assistant/esphome.nix b/nixpkgs/pkgs/tools/misc/esphome/default.nix
index 2dc023df5a27..1160f4158b6d 100644
--- a/nixpkgs/pkgs/servers/home-assistant/esphome.nix
+++ b/nixpkgs/pkgs/tools/misc/esphome/default.nix
@@ -1,28 +1,21 @@
-{ lib, python3, platformio, esptool, git, protobuf3_10, fetchpatch }:
+{ lib, python3, platformio, esptool, git, protobuf3_11, fetchpatch }:
 
 let
   python = python3.override {
     packageOverrides = self: super: {
       protobuf = super.protobuf.override {
-        protobuf = protobuf3_10;
+        protobuf = protobuf3_11;
       };
-      pyyaml = super.pyyaml.overridePythonAttrs (oldAttrs: rec {
-        version = "5.1.2";
-        src = oldAttrs.src.override {
-          inherit version;
-          sha256 = "1r5faspz73477hlbjgilw05xsms0glmsa371yqdd26znqsvg1b81";
-        };
-      });
     };
   };
 
 in python.pkgs.buildPythonApplication rec {
   pname = "esphome";
-  version = "1.14.3";
+  version = "1.14.5";
 
   src = python.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "0xnsl000c5a2li9qw9anrzzq437qn1n4hcfc24i4rfq37awzmig7";
+    sha256 = "176mi361677d5cqbi0hn52kky845byjs6gdad8pdhihyjgv7a9y9";
   };
 
   ESPHOME_USE_SUBPROCESS = "";
@@ -30,7 +23,7 @@ in python.pkgs.buildPythonApplication rec {
   propagatedBuildInputs = with python.pkgs; [
     voluptuous pyyaml paho-mqtt colorlog
     tornado protobuf tzlocal pyserial ifaddr
-    protobuf
+    protobuf click
   ];
 
   # remove all version pinning (E.g tornado==5.1.1 -> tornado)
diff --git a/nixpkgs/pkgs/tools/misc/etcher/default.nix b/nixpkgs/pkgs/tools/misc/etcher/default.nix
index 0d2029fa3145..fec78db979c0 100644
--- a/nixpkgs/pkgs/tools/misc/etcher/default.nix
+++ b/nixpkgs/pkgs/tools/misc/etcher/default.nix
@@ -21,6 +21,8 @@ let
     "i686-linux" = "i386";
   }."${stdenv.system}";
 
+  electron = electron_7;
+
 in
 
 stdenv.mkDerivation rec {
@@ -69,7 +71,7 @@ stdenv.mkDerivation rec {
   '';
 
   postFixup = ''
-    makeWrapper ${electron_7}/bin/electron $out/bin/${pname} \
+    makeWrapper ${electron}/bin/electron $out/bin/${pname} \
       --add-flags $out/share/${pname}/resources/app.asar \
       --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ gcc-unwrapped.lib ]}"
   '';
diff --git a/nixpkgs/pkgs/tools/misc/eva/default.nix b/nixpkgs/pkgs/tools/misc/eva/default.nix
index 06b7b0a5200f..e59c2387a3ce 100644
--- a/nixpkgs/pkgs/tools/misc/eva/default.nix
+++ b/nixpkgs/pkgs/tools/misc/eva/default.nix
@@ -21,6 +21,12 @@ rustPlatform.buildRustPackage rec {
       url = "https://github.com/NerdyPepper/eva/commit/cacf51dbb9748b1dbe97b35f3c593a0a272bd4db.patch";
       sha256 = "11q7dkz2x1888f3awnlr1nbbxzzfjrr46kd0kk6sgjdkyfh50cvv";
     })
+
+    # to fix `cargo test -- --test-threads $NIX_BUILD_CORES`
+    (fetchpatch {
+      url = "https://github.com/NerdyPepper/eva/commit/ccfb3d327567dbaf03b2283c7e684477e2e84590.patch";
+      sha256 = "003yxqlyi8jna0rf05q2a006r2pkz6pcwwfl3dv8zb6p83kk1kgj";
+    })
   ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/tools/misc/exa/default.nix b/nixpkgs/pkgs/tools/misc/exa/default.nix
index 13c8b3f1d4f5..fd6baadb685c 100644
--- a/nixpkgs/pkgs/tools/misc/exa/default.nix
+++ b/nixpkgs/pkgs/tools/misc/exa/default.nix
@@ -57,6 +57,6 @@ buildRustPackage rec {
     '';
     homepage = "https://the.exa.website";
     license = licenses.mit;
-    maintainers = with maintainers; [ ehegnes lilyball globin zowoq ];
+    maintainers = with maintainers; [ ehegnes lilyball globin ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/fd/default.nix b/nixpkgs/pkgs/tools/misc/fd/default.nix
index 1f56eda0a422..31b47a31ca8f 100644
--- a/nixpkgs/pkgs/tools/misc/fd/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fd/default.nix
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
   nativeBuildInputs = [ installShellFiles ];
 
   preFixup = ''
-    installManPage "$src/doc/fd.1"
+    installManPage doc/fd.1
 
     installShellCompletion $releaseDir/build/fd-find-*/out/fd.{bash,fish}
     installShellCompletion --zsh $releaseDir/build/fd-find-*/out/_fd
@@ -33,6 +33,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/sharkdp/fd";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ dywedir globin ma27 zowoq ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/fdupes/default.nix b/nixpkgs/pkgs/tools/misc/fdupes/default.nix
index 731ad86e622a..7203d6b57fcd 100644
--- a/nixpkgs/pkgs/tools/misc/fdupes/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fdupes/default.nix
@@ -1,17 +1,18 @@
-{ stdenv, fetchFromGitHub }:
+{ stdenv, fetchFromGitHub, autoreconfHook, ncurses, pcre2 }:
 
 stdenv.mkDerivation rec {
   pname = "fdupes";
-  version = "1.6.1";
+  version = "2.1.1";
 
   src = fetchFromGitHub {
     owner = "adrianlopezroche";
     repo  = "fdupes";
     rev   = "v${version}";
-    sha256 = "19b6vqblddaw8ccw4sn0qsqzbswlhrz8ia6n4m3hymvcxn8skpz9";
+    sha256 = "1c5hv7vkfxsii1qafhsynzp9zkwim47xkpk27sy64qdsjnhysdak";
   };
 
-  makeFlags = [ "PREFIX=$(out)" ];
+  nativeBuildInputs = [ autoreconfHook ];
+  buildInputs = [ ncurses pcre2 ];
 
   meta = with stdenv.lib; {
     description = "Identifies duplicate files residing within specified directories";
diff --git a/nixpkgs/pkgs/tools/misc/fet-sh/default.nix b/nixpkgs/pkgs/tools/misc/fet-sh/default.nix
new file mode 100644
index 000000000000..4041a9abdbad
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/fet-sh/default.nix
@@ -0,0 +1,28 @@
+{ stdenvNoCC, lib, fetchFromGitHub }:
+
+stdenvNoCC.mkDerivation rec {
+  pname = "fet-sh";
+  version = "1.7";
+
+  src = fetchFromGitHub {
+    owner = "6gk";
+    repo = "fet.sh";
+    rev = "v${version}";
+    sha256 = "02izkwfph4i62adwns4q4w1pfcmdsczm8ghagx5yb9315ww3adzn";
+  };
+
+  dontBuild = true;
+
+  installPhase = ''
+    install -m755 -D ./fet.sh $out/bin/fet.sh
+  '';
+
+  meta = with lib; {
+    description = "A fetch written in posix shell without any external commands (linux only)";
+    homepage = "https://github.com/6gk/fet.sh";
+    license = licenses.isc;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ elkowar ];
+  };
+
+}
diff --git a/nixpkgs/pkgs/tools/misc/file/default.nix b/nixpkgs/pkgs/tools/misc/file/default.nix
index 71e547d84331..8e284b25c08d 100644
--- a/nixpkgs/pkgs/tools/misc/file/default.nix
+++ b/nixpkgs/pkgs/tools/misc/file/default.nix
@@ -2,16 +2,22 @@
 
 stdenv.mkDerivation rec {
   pname = "file";
-  version = "5.38";
+  version = "5.39";
 
   src = fetchurl {
     urls = [
       "ftp://ftp.astron.com/pub/file/${pname}-${version}.tar.gz"
       "https://distfiles.macports.org/file/${pname}-${version}.tar.gz"
     ];
-    sha256 = "0d7s376b4xqymnrsjxi3nsv3f5v89pzfspzml2pcajdk5by2yg2r";
+    sha256 = "1lgs2w2sgamzf27kz5h7pajz7v62554q21fbs11n4mfrfrm2hpgh";
   };
 
+  patches = [
+    # https://github.com/file/file/commit/85b7ab83257b3191a1a7ca044589a092bcef2bb3
+    # Without the RCS id change to avoid conflicts. Remove on next bump.
+    ./webassembly-format-fix.patch
+  ];
+
   nativeBuildInputs = stdenv.lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) file;
   buildInputs = [ zlib ]
               ++ stdenv.lib.optional stdenv.hostPlatform.isWindows libgnurx;
diff --git a/nixpkgs/pkgs/tools/misc/file/webassembly-format-fix.patch b/nixpkgs/pkgs/tools/misc/file/webassembly-format-fix.patch
new file mode 100644
index 000000000000..5eca833e4d71
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/file/webassembly-format-fix.patch
@@ -0,0 +1,13 @@
+diff --git a/src/funcs.c b/src/funcs.c
+index 299b8f022..ecbfa28c5 100644
+--- a/src/funcs.c
++++ b/src/funcs.c
+@@ -93,7 +93,7 @@ file_checkfmt(char *msg, size_t mlen, const char *fmt)
+ 		if (*++p == '%')
+ 			continue;
+ 		// Skip uninteresting.
+-		while (strchr("0.'+- ", *p) != NULL)
++		while (strchr("#0.'+- ", *p) != NULL)
+ 			p++;
+ 		if (*p == '*') {
+ 			if (msg)
diff --git a/nixpkgs/pkgs/tools/misc/findutils/default.nix b/nixpkgs/pkgs/tools/misc/findutils/default.nix
index 651b04c3bb54..84dd187e1fc7 100644
--- a/nixpkgs/pkgs/tools/misc/findutils/default.nix
+++ b/nixpkgs/pkgs/tools/misc/findutils/default.nix
@@ -16,6 +16,10 @@ stdenv.mkDerivation rec {
     sha256 = "16kqz9yz98dasmj70jwf5py7jk558w96w0vgp3zf9xsqk3gzpzn5";
   };
 
+  postPatch = ''
+    substituteInPlace xargs/xargs.c --replace 'char default_cmd[] = "echo";' 'char default_cmd[] = "${coreutils}/bin/echo";'
+  '';
+
   patches = [
     ./no-install-statedir.patch
   ];
diff --git a/nixpkgs/pkgs/tools/misc/flashrom/default.nix b/nixpkgs/pkgs/tools/misc/flashrom/default.nix
index 6b190fcf842e..2f92dc6d9bf2 100644
--- a/nixpkgs/pkgs/tools/misc/flashrom/default.nix
+++ b/nixpkgs/pkgs/tools/misc/flashrom/default.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
     sha256 = "0ax4kqnh7kd3z120ypgp73qy1knz47l6qxsqzrfkd97mh5cdky71";
   };
 
+  mesonFlags = lib.optionals stdenv.isAarch64 [ "-Dpciutils=false" ];
   nativeBuildInputs = [ meson pkgconfig ninja ];
   buildInputs = [ libftdi1 libusb1 pciutils ];
 
@@ -27,7 +28,5 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ funfunctor fpletz ];
     platforms = platforms.all;
-    # https://github.com/flashrom/flashrom/issues/125
-    badPlatforms = [ "aarch64-linux" ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix b/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
index d882c6efb5e8..cb8549c9c994 100644
--- a/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fluent-bit/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fluent-bit";
-  version = "1.4.6";
+  version = "1.5.7";
 
   src = fetchFromGitHub {
     owner = "fluent";
     repo = "fluent-bit";
     rev = "v${version}";
-    sha256 = "0qxyjmgl85q7xk629l548bpzizma5n4j1r6nqbwh9j15ajvq7mq8";
+    sha256 = "1kpa2wgpm747w7bnk33m7bip5shlbkavs7rwnlj6yr600dcp8zp5";
   };
 
   nativeBuildInputs = [ cmake flex bison ];
diff --git a/nixpkgs/pkgs/tools/misc/fontforge/default.nix b/nixpkgs/pkgs/tools/misc/fontforge/default.nix
index 82fd5c8210dd..8da5c8716524 100644
--- a/nixpkgs/pkgs/tools/misc/fontforge/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fontforge/default.nix
@@ -1,4 +1,5 @@
 { stdenv, fetchurl, lib
+, fetchpatch
 , cmake, perl, uthash, pkgconfig, gettext
 , python, freetype, zlib, glib, libungif, libpng, libjpeg, libtiff, libxml2, cairo, pango
 , readline, woff2, zeromq, libuninameslist
@@ -21,6 +22,18 @@ stdenv.mkDerivation rec {
     sha256 = "0qf88wd6riycq56d24brybyc93ns74s0nyyavm43zp2kfcihn6fd";
   };
 
+  patches = [
+    # Unreleased fix for https://github.com/fontforge/fontforge/issues/4229
+    # which is required to fix an uninterposated `${CMAKE_INSTALL_PREFIX}/lib`, see
+    # see https://github.com/nh2/static-haskell-nix/pull/98#issuecomment-665395399
+    # TODO: Remove https://github.com/fontforge/fontforge/pull/4232 is in a release.
+    (fetchpatch {
+      name = "fontforge-cmake-set-rpath-to-the-configure-time-CMAKE_INSTALL_PREFIX";
+      url = "https://github.com/fontforge/fontforge/commit/297ee9b5d6db5970ca17ebe5305189e79a1520a1.patch";
+      sha256 = "14qfp8pwh0vzzib4hq2nc6xhn8lc1cal1sb0lqwb2q5dijqx5kqk";
+    })
+  ];
+
   # use $SOURCE_DATE_EPOCH instead of non-deterministic timestamps
   postPatch = ''
     find . -type f -name '*.c' -exec sed -r -i 's#\btime\(&(.+)\)#if (getenv("SOURCE_DATE_EPOCH")) \1=atol(getenv("SOURCE_DATE_EPOCH")); else &#g' {} \;
diff --git a/nixpkgs/pkgs/tools/misc/fpp/default.nix b/nixpkgs/pkgs/tools/misc/fpp/default.nix
index 7f68a14c5aa2..b00f2198dbc1 100644
--- a/nixpkgs/pkgs/tools/misc/fpp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fpp/default.nix
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
   };
 
   postPatch = ''
-    substituteInPlace fpp --replace 'PYTHONCMD="python"' 'PYTHONCMD="${python3.interpreter}"'
+    substituteInPlace fpp --replace 'PYTHONCMD="python3"' 'PYTHONCMD="${python3.interpreter}"'
   '';
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/misc/fselect/default.nix b/nixpkgs/pkgs/tools/misc/fselect/default.nix
index d979e1e1a00b..312c7bbe3e97 100644
--- a/nixpkgs/pkgs/tools/misc/fselect/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fselect/default.nix
@@ -24,6 +24,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/jhspetersson/fselect";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/fsmon/default.nix b/nixpkgs/pkgs/tools/misc/fsmon/default.nix
index 5e59d34fe4a2..668fa463adb3 100644
--- a/nixpkgs/pkgs/tools/misc/fsmon/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fsmon/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fsmon";
-  version = "1.7.0";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "nowsecure";
     repo = "fsmon";
     rev = version;
-    sha256 = "18p80nmax8lniza324kvwq06r4w2yxcq90ypk2kqym3bnv0jm938";
+    sha256 = "0i7irqs4100j0g19jh64p2plbwipl6p3ld6w4sscc7n8lwkxmj03";
   };
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/misc/fx_cast/default.nix b/nixpkgs/pkgs/tools/misc/fx_cast/default.nix
index ec977d48572d..d24ff0e05161 100644
--- a/nixpkgs/pkgs/tools/misc/fx_cast/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fx_cast/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fx_cast_bridge";
-  version = "0.0.6";
+  version = "0.0.7";
 
   src = fetchurl {
      url = "https://github.com/hensm/fx_cast/releases/download/v${version}/${pname}-${version}-x64.deb";
-     sha256 = "1mjpwd27b0cpigz4cc2mdl97d78rj5ikn2bqfdic50lqjciaqi1b";
+     sha256 = "0kd58vzsq1qzl7qsh1qv25ylxvr5y37li03gjb48x4vhd85slzz5";
   };
 
   nativeBuildInputs = [ dpkg ];
diff --git a/nixpkgs/pkgs/tools/misc/fzf/default.nix b/nixpkgs/pkgs/tools/misc/fzf/default.nix
index 2fe4bac88f0c..d9fe6ac819b1 100644
--- a/nixpkgs/pkgs/tools/misc/fzf/default.nix
+++ b/nixpkgs/pkgs/tools/misc/fzf/default.nix
@@ -1,14 +1,14 @@
-{ lib, buildGoModule, fetchFromGitHub, writeText, runtimeShell, ncurses }:
+{ lib, buildGoModule, fetchFromGitHub, writeText, runtimeShell, ncurses, perl }:
 
 buildGoModule rec {
   pname = "fzf";
-  version = "0.21.1";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "junegunn";
     repo = pname;
     rev = version;
-    sha256 = "0piz1dzczcw1nsff775zicvpm6iy0iw0v0ba7rj7i0xqv9ni1prw";
+    sha256 = "0n0cy5q2r3dm1a3ivlzrv9c5d11awxlqim5b9x8zc85dlr73n35l";
   };
 
   vendorSha256 = "1c2iz28hjrw9rig9a6r27wd8clycdhi8fgs3da91c63w4qi140zm";
@@ -27,9 +27,14 @@ buildGoModule rec {
         echo "Failed to replace vim base_dir path with $out"
         exit 1
     fi
-  '';
 
-  doCheck = true;
+    # Has a sneaky dependency on perl
+    # Include first args to make sure we're patching the right thing
+    substituteInPlace shell/key-bindings.zsh \
+      --replace " perl -ne " " ${perl}/bin/perl -ne "
+    substituteInPlace shell/key-bindings.bash \
+      --replace " perl -n " " ${perl}/bin/perl -n "
+  '';
 
   preInstall = ''
     mkdir -p $out/share/fish/{vendor_functions.d,vendor_conf.d}
diff --git a/nixpkgs/pkgs/tools/misc/g933-utils/default.nix b/nixpkgs/pkgs/tools/misc/g933-utils/default.nix
new file mode 100644
index 000000000000..3da98301346f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/g933-utils/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub, rustPlatform, udev, pkgconfig }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "g933-utils";
+  version = "unstable-2019-08-04";
+
+  src = fetchFromGitHub {
+    owner = "ashkitten";
+    repo = "g933-utils";
+    rev = "b80cfd59fc41ae5d577c147311376dd7f7882493";
+    sha256 = "06napzpk3nayzixb4l4fzdiwpgmcrsbc5j9m4qip1yn6dfkin3p0";
+  };
+
+  cargoSha256 = "16xgk4rc36d6lylh2dzv63ryq9s7fli3h2qva1m1p6f0gpasnk7w";
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ udev ];
+
+  meta = with stdenv.lib; {
+    description = "An application to configure Logitech wireless G933/G533 headsets";
+    homepage = "https://github.com/ashkitten/g933-utils";
+    license = licenses.mit;
+    maintainers = with maintainers; [ seqizz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/gammy/default.nix b/nixpkgs/pkgs/tools/misc/gammy/default.nix
new file mode 100644
index 000000000000..61430c3e41ed
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/gammy/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchFromGitHub, qmake, libXxf86vm, wrapQtAppsHook }:
+
+let
+  pname = "gammy";
+  version = "0.9.58";
+in
+
+stdenv.mkDerivation {
+  inherit pname version;
+
+  src = fetchFromGitHub {
+    owner = "Fushko";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "02f19b7acrzip4kbfjgqk06xv1c257rq77khpdg5gz0ai6ayvwm8";
+  };
+
+  nativeBuildInputs = [ qmake wrapQtAppsHook ];
+
+  buildInputs = [ libXxf86vm ];
+
+  # FIXME remove when https://github.com/Fushko/gammy/issues/45 is fixed
+  installPhase = ''
+    runHook preInstall
+
+    install gammy -Dt $out/bin/
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "GUI tool for manual- of auto-adjusting of brightness/temperature";
+    homepage = "https://github.com/Fushko/gammy";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ atemu ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/gawp/default.nix b/nixpkgs/pkgs/tools/misc/gawp/default.nix
index 865ce3c440d1..2856dd485595 100644
--- a/nixpkgs/pkgs/tools/misc/gawp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/gawp/default.nix
@@ -6,7 +6,7 @@ buildGoPackage rec {
   pname = "gawp";
   version = "20160121-${stdenv.lib.strings.substring 0 7 rev}";
   rev = "5db2d8faa220e8d6eaf8677354bd197bf621ff7f";
-  
+
   goPackagePath = "github.com/martingallagher/gawp";
 
   src = fetchgit {
diff --git a/nixpkgs/pkgs/tools/misc/geekbench/default.nix b/nixpkgs/pkgs/tools/misc/geekbench/default.nix
index 9c250390e11c..4d9434e9fb50 100644
--- a/nixpkgs/pkgs/tools/misc/geekbench/default.nix
+++ b/nixpkgs/pkgs/tools/misc/geekbench/default.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl, makeWrapper }:
+{ stdenv, fetchurl, makeWrapper, ocl-icd, vulkan-loader, linuxPackages }:
 
 stdenv.mkDerivation rec {
   pname = "geekbench";
-  version = "5.2.0";
+  version = "5.2.3";
 
   src = fetchurl {
     url = "https://cdn.geekbench.com/Geekbench-${version}-Linux.tar.gz";
-    sha256 = "1rvzll57igivhlxp058mhmcbq07q2zr52xbi1wyn85qr9ihrhx08";
+    sha256 = "03hasbibw79vbcrpdf2fnm42i2mxc0ia7k96xv012wn6d4dfvr4w";
   };
 
   dontConfigure = true;
@@ -15,12 +15,19 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper ];
 
   installPhase = ''
-    mkdir -p $out/bin
+    mkdir -p $out/bin $out/lib
     cp -r geekbench.plar geekbench5 geekbench_x86_64 $out/bin
 
+    # needed for compute benchmark
+    ln -s ${linuxPackages.nvidia_x11}/lib/libcuda.so $out/lib/
+    ln -s ${ocl-icd}/lib/libOpenCL.so $out/lib/
+    ln -s ${ocl-icd}/lib/libOpenCL.so.1 $out/lib/
+    ln -s ${vulkan-loader}/lib/libvulkan.so $out/lib/
+    ln -s ${vulkan-loader}/lib/libvulkan.so.1 $out/lib/
+
     for f in geekbench5 geekbench_x86_64 ; do
       patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) $out/bin/$f
-      wrapProgram $out/bin/$f --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib ]}"
+      wrapProgram $out/bin/$f --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath [ stdenv.cc.cc.lib ]}:$out/lib/"
     done
   '';
 
diff --git a/nixpkgs/pkgs/tools/misc/git-town/default.nix b/nixpkgs/pkgs/tools/misc/git-town/default.nix
index 7a8b16c55e0d..34548abd818b 100644
--- a/nixpkgs/pkgs/tools/misc/git-town/default.nix
+++ b/nixpkgs/pkgs/tools/misc/git-town/default.nix
@@ -2,23 +2,22 @@
 
 buildGoPackage rec {
   pname = "git-town";
-  version = "7.3.0";
-
-  goPackagePath = "github.com/Originate/git-town";
+  version = "7.4.0";
 
+  goPackagePath = "github.com/git-town/git-town";
   src = fetchFromGitHub {
-    owner = "Originate";
+    owner = "git-town";
     repo = "git-town";
     rev = "v${version}";
-    sha256 = "166g9i79hqga8k5wvs0b84q6rqniizzsd39v37s9w16axgdrm6nb";
+    sha256 = "05s2hp4xn0bs3y6rgqkpgz0k8q8yfpwkw5m8vwim95hk6n41ps18";
   };
 
-  buildFlagsArray = [ "-ldflags=-X github.com/Originate/git-town/src/cmd.version=v${version} -X github.com/Originate/git-town/src/cmd.buildDate=nix" ];
+  buildFlagsArray = [ "-ldflags=-X github.com/git-town/git-town/src/cmd.version=v${version} -X github.com/git-town/git-town/src/cmd.buildDate=nix" ];
 
   meta = with stdenv.lib; {
     description = "Generic, high-level git support for git-flow workflows";
     homepage = "http://www.git-town.com/";
-    maintainers = [ maintainers.allonsy ];
+    maintainers = [ maintainers.allonsy maintainers.blaggacao ];
     license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/go.rice/default.nix b/nixpkgs/pkgs/tools/misc/go.rice/default.nix
new file mode 100644
index 000000000000..340b2d41c668
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/go.rice/default.nix
@@ -0,0 +1,27 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "go.rice";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "GeertJohan";
+    repo = "go.rice";
+    rev = "v${version}";
+    sha256 = "0m1pkqnx9glf3mlx5jdaby9yxccbl02jpjgpi4m7x1hb4s2gn6vx";
+  };
+
+  vendorSha256 = "0cb5phyl2zm1xnkhvisv0lzgknsi93yzmpayg30w7jc6z4icwnw7";
+
+  doCheck = false;
+
+  subPackages = [ "." "rice" ];
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/GeertJohan/go.rice";
+    description = "A Go package that makes working with resources such as html, js, css, images, templates very easy.";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ blaggacao ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/tools/misc/godu/default.nix b/nixpkgs/pkgs/tools/misc/godu/default.nix
new file mode 100644
index 000000000000..37511d2e847c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/godu/default.nix
@@ -0,0 +1,24 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "godu";
+  version = "1.3.0";
+
+  src = fetchFromGitHub {
+    owner = "viktomas";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1fp8iq4x0qiswksznnd6qh7c6g5pwglzz6ga11a7vgic0201wsvb";
+  };
+
+  patches = [ ./go-mod.patch ];
+
+  vendorSha256 = "1zq7b0zn24cbrjssk4g03i90szp1ms7ila4khwcm7hp9n1py245s";
+
+  meta = with lib; {
+    description = "Utility helping to discover large files/folders";
+    homepage = "https://github.com/viktomas/godu";
+    license = licenses.mit;
+    maintainers = with maintainers; [ rople380 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/godu/go-mod.patch b/nixpkgs/pkgs/tools/misc/godu/go-mod.patch
new file mode 100644
index 000000000000..2b3efe6be604
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/godu/go-mod.patch
@@ -0,0 +1,33 @@
+diff --git a/go.mod b/go.mod
+index cf8f2fb..e405e03 100644
+--- a/go.mod
++++ b/go.mod
+@@ -5,5 +5,6 @@ go 1.14
+ require (
+ 	github.com/gdamore/tcell v1.1.1
+ 	github.com/gosuri/uilive v0.0.0-20170323041506-ac356e6e42cd
++	github.com/mattn/go-isatty v0.0.12 // indirect
+ 	github.com/stretchr/testify v1.3.0
+ )
+diff --git a/go.sum b/go.sum
+index 23c1232..e25c87e 100644
+--- a/go.sum
++++ b/go.sum
+@@ -8,6 +8,8 @@ github.com/gosuri/uilive v0.0.0-20170323041506-ac356e6e42cd h1:1e+0Z+T4t1mKL5xxv
+ github.com/gosuri/uilive v0.0.0-20170323041506-ac356e6e42cd/go.mod h1:qkLSc0A5EXSP6B04TrN4oQoxqFI7A8XvoXSlJi8cwk8=
+ github.com/lucasb-eyer/go-colorful v0.0.0-20181028223441-12d3b2882a08 h1:5MnxBC15uMxFv5FY/J/8vzyaBiArCOkMdFT9Jsw78iY=
+ github.com/lucasb-eyer/go-colorful v0.0.0-20181028223441-12d3b2882a08/go.mod h1:NXg0ArsFk0Y01623LgUqoqcouGDB+PwCCQlrwrG6xJ4=
++github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY=
++github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU=
+ github.com/mattn/go-runewidth v0.0.4 h1:2BvfKmzob6Bmd4YsL0zygOqfdFnK7GR4QL06Do4/p7Y=
+ github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
+ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
+@@ -16,6 +18,8 @@ github.com/stretchr/objx v0.1.0 h1:4G4v2dO3VZwixGIRoQ5Lfboy6nUhCyYzaqnIAPPhYs4=
+ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+ github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q=
+ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
++golang.org/x/sys v0.0.0-20200116001909-b77594299b42 h1:vEOn+mP2zCOVzKckCZy6YsCtDblrpj/w7B9nxGNELpg=
++golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+ golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=
+ golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+ gopkg.in/DATA-DOG/go-sqlmock.v1 v1.3.0 h1:FVCohIoYO7IJoDDVpV2pdq7SgrMH6wHnuTyrdrxJNoY=
\ No newline at end of file
diff --git a/nixpkgs/pkgs/tools/misc/gotify-cli/default.nix b/nixpkgs/pkgs/tools/misc/gotify-cli/default.nix
index cd50271a2e60..cd60f0e98fae 100644
--- a/nixpkgs/pkgs/tools/misc/gotify-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/gotify-cli/default.nix
@@ -2,25 +2,31 @@
 
 buildGoModule rec {
   pname = "gotify-cli";
-  version = "2.1.1";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "gotify";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "131gs6xzfggnrzq5jgyky23zvcmhx3q3hd17xvqxd02s2i9x1mg4";
+    sha256 = "0hgh1i8rdmf12qmk66cgksv8hz5qzkfbfb6cfmrkhbq765xkm4ir";
   };
 
-  vendorSha256 = "1lhhsf944gm1p6qxn05g2s3hdnra5dggj7pdrdq6qr6r2xg7f5qh";
+  vendorSha256 = "1l47s0h0v4cgqcsm5008cknvfa4vnv6f7n43d8ga0xq5ikqqzmja";
+
+  doCheck = false;
 
   postInstall = ''
     mv $out/bin/cli $out/bin/gotify
   '';
 
+  buildFlagsArray = [
+    "-ldflags=-X main.Version=${version} -X main.Commit=${version} -X main.BuildDate=1970-01-01"
+  ];
+
   meta = with lib; {
     license = licenses.mit;
     homepage = "https://github.com/gotify/cli";
     description = "A command line interface for pushing messages to gotify/server.";
     maintainers = with maintainers; [ ma27 ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/misc/graylog/default.nix b/nixpkgs/pkgs/tools/misc/graylog/default.nix
index 8530d04b49a3..cb7adf795d34 100644
--- a/nixpkgs/pkgs/tools/misc/graylog/default.nix
+++ b/nixpkgs/pkgs/tools/misc/graylog/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "graylog";
-  version = "3.3.1";
+  version = "3.3.4";
 
   src = fetchurl {
     url = "https://packages.graylog2.org/releases/graylog/graylog-${version}.tgz";
-    sha256 = "1jcv2dqm49vbz810ypv024r3lqgz804l06yhhwshrih61xzj7dvh";
+    sha256 = "0wynnb56plch61pzjl46jx5q94c5hclzyrr8567fc1jhnqycfngs";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/tools/misc/graylog/plugins.nix b/nixpkgs/pkgs/tools/misc/graylog/plugins.nix
index ec6c16f53131..b1abc8a50657 100644
--- a/nixpkgs/pkgs/tools/misc/graylog/plugins.nix
+++ b/nixpkgs/pkgs/tools/misc/graylog/plugins.nix
@@ -64,10 +64,10 @@ in {
   enterprise-integrations = glPlugin rec {
     name = "graylog-enterprise-integrations-${version}";
     pluginName = "graylog-plugin-enterprise-integrations";
-    version = "3.3.1";
+    version = "3.3.4";
     src = fetchurl {
       url = "https://downloads.graylog.org/releases/graylog-enterprise-integrations/graylog-enterprise-integrations-plugins-${version}.tgz";
-      sha256 = "0la91f5hfakrp5d37q3r1z15zzya9vmwgp8gf5ifkh6fasa811ll";
+      sha256 = "0ln0vmnfgxg6hdq7sh58xdqn14bl86qrgy3923f3q3hx209v6vn9";
     };
     installPhase = ''
       mkdir -p $out/bin
@@ -96,10 +96,10 @@ in {
   integrations = glPlugin rec {
     name = "graylog-integrations-${version}";
     pluginName = "graylog-plugin-integrations";
-    version = "3.3.1";
+    version = "3.3.4";
     src = fetchurl {
       url = "https://downloads.graylog.org/releases/graylog-integrations/graylog-integrations-plugins-${version}.tgz";
-      sha256 = "1k90q50p4ly9d8fj0riyb1xw0bd6f8wm2xmkr71908j2v0jaskpq";
+      sha256 = "14g6vdyibp3rva8bwss7vjbi9fpxvgp2gbk1r8divbhhpiwsjyxc";
     };
     installPhase = ''
       mkdir -p $out/bin
diff --git a/nixpkgs/pkgs/tools/misc/gringo/default.nix b/nixpkgs/pkgs/tools/misc/gringo/default.nix
index 92f1eb895855..05e5e9b64cf0 100644
--- a/nixpkgs/pkgs/tools/misc/gringo/default.nix
+++ b/nixpkgs/pkgs/tools/misc/gringo/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl,
-  bison, re2c, scons,
+  bison, re2c, sconsPackages,
   libcxx
 }:
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation {
     sha256 = "16k4pkwyr2mh5w8j91vhxh9aff7f4y31npwf09w6f8q63fxvpy41";
   };
 
-  buildInputs = [ bison re2c scons.py2 ];
+  buildInputs = [ bison re2c sconsPackages.scons_3_1_2 ];
 
   patches = [
     ./gringo-4.5.4-cmath.patch
diff --git a/nixpkgs/pkgs/tools/misc/grub/2.0x.nix b/nixpkgs/pkgs/tools/misc/grub/2.0x.nix
index 4e00a4ddd49c..63cdb61dd336 100644
--- a/nixpkgs/pkgs/tools/misc/grub/2.0x.nix
+++ b/nixpkgs/pkgs/tools/misc/grub/2.0x.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, flex, bison, python, autoconf, automake, gnulib, libtool
+{ stdenv, fetchgit, flex, bison, python3, autoconf, automake, gnulib, libtool
 , gettext, ncurses, libusb-compat-0_1, freetype, qemu, lvm2, unifont, pkgconfig
 , fuse # only needed for grub-mount
 , zfs ? null
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     ./fix-bash-completion.patch
   ];
 
-  nativeBuildInputs = [ bison flex python pkgconfig autoconf automake ];
+  nativeBuildInputs = [ bison flex python3 pkgconfig autoconf automake ];
   buildInputs = [ ncurses libusb-compat-0_1 freetype gettext lvm2 fuse libtool ]
     ++ optional doCheck qemu
     ++ optional zfsSupport zfs;
diff --git a/nixpkgs/pkgs/tools/misc/hacksaw/default.nix b/nixpkgs/pkgs/tools/misc/hacksaw/default.nix
new file mode 100644
index 000000000000..bf0daa38ab3a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/hacksaw/default.nix
@@ -0,0 +1,25 @@
+{ lib, stdenv, fetchCrate, rustPlatform, pkg-config, libXrandr, libX11, python3 }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "hacksaw";
+  version = "1.0.4";
+
+  nativeBuildInputs = [ pkg-config python3 ];
+
+  buildInputs = [ libXrandr libX11 ];
+
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "1l6i91xb81p1li1j2jm0r2rx8dbzl2yh468cl3dw0lqpqy4i65hx";
+  };
+
+  cargoSha256 = "01draql3x71h7xl2xcc69dv7vpi3smnajhrvaihs5vij81pyfrzk";
+
+  meta = with lib; {
+    description = "Lightweight selection tool for usage in screenshot scripts etc.";
+    homepage = "https://github.com/neXromancers/hacksaw";
+    license = with licenses; [ mpl20 ];
+    maintainers = with maintainers; [ TethysSvensson ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/hakuneko/default.nix b/nixpkgs/pkgs/tools/misc/hakuneko/default.nix
index 34405ccc7bea..6389d41cdfed 100644
--- a/nixpkgs/pkgs/tools/misc/hakuneko/default.nix
+++ b/nixpkgs/pkgs/tools/misc/hakuneko/default.nix
@@ -6,6 +6,7 @@
 , makeWrapper
 , udev
 , stdenv
+, lib
 , wrapGAppsHook
 }:
 let
@@ -61,7 +62,7 @@ stdenv.mkDerivation rec {
   '';
 
   runtimeDependencies = [
-    udev.lib
+    (lib.getLib udev)
   ];
 
   postFixup = ''
diff --git a/nixpkgs/pkgs/tools/misc/hashit/default.nix b/nixpkgs/pkgs/tools/misc/hashit/default.nix
index 5793382838b9..e33201c706ba 100644
--- a/nixpkgs/pkgs/tools/misc/hashit/default.nix
+++ b/nixpkgs/pkgs/tools/misc/hashit/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, vala, pantheon, python3, libgee, gtk3, desktop-file-utils, wrapGAppsHook }:
+{ stdenv, fetchFromGitHub, nix-update-script, meson, ninja, pkgconfig, vala, pantheon, python3, libgee, gtk3, desktop-file-utils, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "hashit";
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
diff --git a/nixpkgs/pkgs/tools/misc/heatseeker/default.nix b/nixpkgs/pkgs/tools/misc/heatseeker/default.nix
index e0b8c02a08ea..207788ed61d6 100644
--- a/nixpkgs/pkgs/tools/misc/heatseeker/default.nix
+++ b/nixpkgs/pkgs/tools/misc/heatseeker/default.nix
@@ -17,7 +17,7 @@ rustPlatform.buildRustPackage rec {
   # I've suggested using `/usr/bin/env stty`, but doing that isn't quite as simple
   # as a substitution, and this works since we have the path to coreutils stty.
   patchPhase = ''
-    substituteInPlace src/screen/unix.rs --replace "/bin/stty" "${coreutils}/bin/stty" 
+    substituteInPlace src/screen/unix.rs --replace "/bin/stty" "${coreutils}/bin/stty"
   '';
 
   # some tests require a tty, this variable turns them off for Travis CI,
diff --git a/nixpkgs/pkgs/tools/misc/hebcal/default.nix b/nixpkgs/pkgs/tools/misc/hebcal/default.nix
index 12d3e7ecc775..96c958484403 100644
--- a/nixpkgs/pkgs/tools/misc/hebcal/default.nix
+++ b/nixpkgs/pkgs/tools/misc/hebcal/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  version = "4.20";
+  version = "4.21";
   pname = "hebcal";
 
   src = fetchFromGitHub {
     owner = "hebcal";
     repo = "hebcal";
     rev = "v${version}";
-    sha256 = "19siipj1svcj7rxgxmm3aaj4d43jx13fr7bghab8wak2dk1x0igb";
+    sha256 = "0gqjhl5i0hvnpvsg6cfc2z5ckrs66h3jlrdgim62azn3hh5bday2";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile.lock b/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile.lock
index 0ba32818d21b..489fa555c5de 100644
--- a/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/misc/html-proofer/Gemfile.lock
@@ -5,8 +5,8 @@ GEM
       public_suffix (>= 2.0.2, < 5.0)
     ethon (0.12.0)
       ffi (>= 1.3.0)
-    ffi (1.12.2)
-    html-proofer (3.15.3)
+    ffi (1.13.1)
+    html-proofer (3.16.0)
       addressable (~> 2.3)
       mercenary (~> 0.3)
       nokogumbo (~> 2.0)
@@ -16,14 +16,14 @@ GEM
       yell (~> 2.0)
     mercenary (0.4.0)
     mini_portile2 (2.4.0)
-    nokogiri (1.10.9)
+    nokogiri (1.10.10)
       mini_portile2 (~> 2.4.0)
     nokogumbo (2.0.2)
       nokogiri (~> 1.8, >= 1.8.4)
-    parallel (1.19.1)
-    public_suffix (4.0.4)
+    parallel (1.19.2)
+    public_suffix (4.0.6)
     rainbow (3.0.0)
-    typhoeus (1.3.1)
+    typhoeus (1.4.0)
       ethon (>= 0.9.0)
     yell (2.2.2)
 
diff --git a/nixpkgs/pkgs/tools/misc/html-proofer/gemset.nix b/nixpkgs/pkgs/tools/misc/html-proofer/gemset.nix
index c5836bc74ba0..bdd0bbc20c9f 100644
--- a/nixpkgs/pkgs/tools/misc/html-proofer/gemset.nix
+++ b/nixpkgs/pkgs/tools/misc/html-proofer/gemset.nix
@@ -26,10 +26,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10lfhahnnc91v63xpvk65apn61pib086zha3z5sp1xk9acfx12h4";
+      sha256 = "12lpwaw82bb0rm9f52v1498bpba8aj2l2q359mkwbxsswhpga5af";
       type = "gem";
     };
-    version = "1.12.2";
+    version = "1.13.1";
   };
   html-proofer = {
     dependencies = ["addressable" "mercenary" "nokogumbo" "parallel" "rainbow" "typhoeus" "yell"];
@@ -37,10 +37,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18afz6rz72j8hnfgzhyr21wh1rfy1x41iyhbcgaq0r1bd7ng1vni";
+      sha256 = "18s8l3nys0lvdkqpfg3c1rd84c5j4dmlx503wnksw9skbzn7l93m";
       type = "gem";
     };
-    version = "3.15.3";
+    version = "3.16.0";
   };
   mercenary = {
     groups = ["default"];
@@ -68,10 +68,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12j76d0bp608932xkzmfi638c7aqah57l437q8494znzbj610qnm";
+      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
       type = "gem";
     };
-    version = "1.10.9";
+    version = "1.10.10";
   };
   nokogumbo = {
     dependencies = ["nokogiri"];
@@ -89,20 +89,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "12jijkap4akzdv11lm08dglsc8jmc87xcgq6947i1s3qb69f4zn2";
+      sha256 = "17b127xxmm2yqdz146qwbs57046kn0js1h8synv01dwqz2z1kp2l";
       type = "gem";
     };
-    version = "1.19.1";
+    version = "1.19.2";
   };
   public_suffix = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1l1kqw75asziwmzrig8rywxswxz8l91sc3pvns02ffsqac1a3wiz";
+      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
       type = "gem";
     };
-    version = "4.0.4";
+    version = "4.0.6";
   };
   rainbow = {
     groups = ["default"];
@@ -120,10 +120,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cni8b1idcp0dk8kybmxydadhfpaj3lbs99w5kjibv8bsmip2zi5";
+      sha256 = "1m22yrkmbj81rzhlny81j427qdvz57yk5wbcf3km0nf3bl6qiygz";
       type = "gem";
     };
-    version = "1.3.1";
+    version = "1.4.0";
   };
   yell = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/tools/misc/hyperfine/default.nix b/nixpkgs/pkgs/tools/misc/hyperfine/default.nix
index b51ca76b12c9..ff9250a2bf66 100644
--- a/nixpkgs/pkgs/tools/misc/hyperfine/default.nix
+++ b/nixpkgs/pkgs/tools/misc/hyperfine/default.nix
@@ -31,6 +31,5 @@ rustPlatform.buildRustPackage rec {
     homepage    = "https://github.com/sharkdp/hyperfine";
     license     = with licenses; [ asl20 /* or */ mit ];
     maintainers = [ maintainers.thoughtpolice ];
-    platforms   = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/ical2org/default.nix b/nixpkgs/pkgs/tools/misc/ical2org/default.nix
index 095336b7df54..ffdb4e93f582 100644
--- a/nixpkgs/pkgs/tools/misc/ical2org/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ical2org/default.nix
@@ -23,5 +23,5 @@ buildGoPackage rec {
     maintainers = with maintainers; [ swflint ];
     platforms = platforms.unix;
   };
-  
+
 }
diff --git a/nixpkgs/pkgs/tools/misc/ili2c/default.nix b/nixpkgs/pkgs/tools/misc/ili2c/default.nix
index 43eed8367c47..2bda116e66ce 100644
--- a/nixpkgs/pkgs/tools/misc/ili2c/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ili2c/default.nix
@@ -1,5 +1,6 @@
-{ stdenv, fetchFromGitHub, jdk, ant, makeWrapper, jre }:
+{ stdenv, fetchFromGitHub, jdk8, ant, makeWrapper, jre8 }:
 
+let jdk = jdk8; jre = jre8; in
 stdenv.mkDerivation rec {
   pname = "ili2c";
   version = "5.0.8";
diff --git a/nixpkgs/pkgs/tools/misc/intermodal/default.nix b/nixpkgs/pkgs/tools/misc/intermodal/default.nix
index 2ebaf7cf2586..fe5d724e696b 100644
--- a/nixpkgs/pkgs/tools/misc/intermodal/default.nix
+++ b/nixpkgs/pkgs/tools/misc/intermodal/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "intermodal";
-  version = "0.1.8";
+  version = "0.1.11";
 
   src = fetchFromGitHub {
     owner = "casey";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1farcijm5s1836vi7h36yh0i9v48q4l98s4wprmr28z37c3l3n0b";
+    sha256 = "1wqf227ljfys16jfbxi6mlkgdczgqrh15ixl9vi6higlxfi2wsj2";
   };
 
-  cargoSha256 = "1kvrra5i1g1inxpmn4shd8kgkljrk3ymfnpnhwrsnfxrqidi0h2z";
+  cargoSha256 = "0lx8y1y5mf8ga7iz74dnfyf2b9jx15wishw0khfxknmh96h2y99h";
 
   # include_hidden test tries to use `chflags` on darwin
   checkFlagsArray = stdenv.lib.optionals stdenv.isDarwin [ "--skip=subcommand::torrent::create::tests::include_hidden" ];
diff --git a/nixpkgs/pkgs/tools/misc/jdiskreport/default.nix b/nixpkgs/pkgs/tools/misc/jdiskreport/default.nix
index 094c42b59dd2..5e6c0bdd5968 100644
--- a/nixpkgs/pkgs/tools/misc/jdiskreport/default.nix
+++ b/nixpkgs/pkgs/tools/misc/jdiskreport/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation {
     homepage = "http://www.jgoodies.com/freeware/jdiskreport/";
     description = "A graphical utility to visualize disk usage";
     license = licenses.unfreeRedistributable; #TODO freedist, libs under BSD-3
-    platforms = [ "x86_64-linux" ];
+    platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ kylesferrazza ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/jdupes/default.nix b/nixpkgs/pkgs/tools/misc/jdupes/default.nix
index ba509d945e16..7d559a1468e3 100644
--- a/nixpkgs/pkgs/tools/misc/jdupes/default.nix
+++ b/nixpkgs/pkgs/tools/misc/jdupes/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "jdupes";
-  version = "1.16.0";
+  version = "1.18.2";
 
   src = fetchFromGitHub {
     owner = "jbruchon";
     repo  = "jdupes";
     rev   = "v${version}";
-    sha256 = "0z8banifsp6325j572grpghf69j92zz9cxdnvb6pqjsknc96mrf6";
+    sha256 = "1gaqdcz0s31qncar9dzlr8izv50zlk4y6dgdm9xjk6as2g8b0fkk";
     # Unicode file names lead to different checksums on HFS+ vs. other
     # filesystems because of unicode normalisation. The testdir
     # directories have such files and will be removed.
@@ -19,10 +19,11 @@ stdenv.mkDerivation rec {
 
   makeFlags = [
     "PREFIX=${placeholder "out"}"
-    "HARDEN=1"
   ] ++ stdenv.lib.optionals stdenv.isLinux [
     "ENABLE_DEDUPE=1"
     "STATIC_DEDUPE_H=1"
+  ] ++ stdenv.lib.optionals stdenv.cc.isGNU [
+    "HARDEN=1"
   ];
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix b/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
index 2f63eaf43806..1c2d7ab6717b 100644
--- a/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/kak-lsp/default.nix
@@ -20,6 +20,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/ul/kak-lsp";
     license = with licenses; [ unlicense /* or */ mit ];
     maintainers = [ maintainers.spacekookie ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/kargo/default.nix b/nixpkgs/pkgs/tools/misc/kargo/default.nix
index bcc19770155d..eb9805b22d80 100644
--- a/nixpkgs/pkgs/tools/misc/kargo/default.nix
+++ b/nixpkgs/pkgs/tools/misc/kargo/default.nix
@@ -1,6 +1,8 @@
-{ stdenv, fetchurl, python2Packages }:
+{ stdenv, fetchurl, python3Packages }:
 
-python2Packages.buildPythonApplication rec {
+with python3Packages;
+
+buildPythonApplication rec {
   version = "0.4.8";
   pname = "kargo";
 
@@ -9,9 +11,7 @@ python2Packages.buildPythonApplication rec {
     sha256 = "1iq3vrmglag9gpsir03yz7556m0bz99nwb2mf594378cqzbr6db3";
   };
 
-  doCheck = false;
-
-  propagatedBuildInputs = with python2Packages; [
+  propagatedBuildInputs = [
     ansible
     boto
     cffi
@@ -24,12 +24,15 @@ python2Packages.buildPythonApplication rec {
     setuptools
   ];
 
+  checkPhase = ''
+    HOME=$TMPDIR $out/bin/kargo -v
+  '';
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/kubespray/kargo-cli";
     description = "A tool helps to deploy a kubernetes cluster with Ansible.";
     platforms = platforms.linux;
     license = licenses.gpl3;
-    maintainers = with maintainers; [
-    ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/kdecoration-viewer/default.nix b/nixpkgs/pkgs/tools/misc/kdecoration-viewer/default.nix
deleted file mode 100644
index 53b1763ad6a1..000000000000
--- a/nixpkgs/pkgs/tools/misc/kdecoration-viewer/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ stdenv, fetchFromGitHub, mkDerivation
-, cmake, extra-cmake-modules, qtquickcontrols, kconfigwidgets, kdeclarative, kdecoration }:
-
-mkDerivation {
-  name = "kdecoration-viewer-2018-07-24";
-
-  src = fetchFromGitHub {
-    owner = "KDE";
-    repo = "kdecoration-viewer";
-    rev = "6e50b39c651bbf92fd7e7116d43bf57288254288";
-    sha256 = "01v6i081vx0mydqvnj05xli86m52v6bxxc3z1zlyyap9cfhag7lj";
-  };
-
-  nativeBuildInputs = [ cmake extra-cmake-modules ];
-  buildInputs = [ qtquickcontrols kconfigwidgets kdeclarative kdecoration ];
-
-  meta = with stdenv.lib; {
-    description = "Allows to preview a KDecoration plugin";
-    longDescription = ''
-      kdecoration-viewer allows to preview a KDecoration plugin. Put your plugins under
-      $QT_PLUGIN_PATH/org.kde.kdecoration2 to preview.
-    '';
-    homepage = "https://blog.martin-graesslin.com/blog/2014/07/kdecoration2-the-road-ahead/";
-    license = licenses.gpl2;
-    maintainers = [ maintainers.gnidorah ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/misc/kepubify/default.nix b/nixpkgs/pkgs/tools/misc/kepubify/default.nix
index 46d75e5086e8..6f8dbb21e1c2 100644
--- a/nixpkgs/pkgs/tools/misc/kepubify/default.nix
+++ b/nixpkgs/pkgs/tools/misc/kepubify/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "kepubify";
-  version = "3.1.2";
+  version = "3.1.4";
 
   src = fetchFromGitHub {
-    owner = "geek1011";
+    owner = "pgaskin";
     repo = pname;
     rev = "v${version}";
-    sha256 = "13d3fl53v9pqlm555ly1dm9vc58xwkyik0qmsg173q78ysy2p4q5";
+    sha256 = "0d71d1ra7lk4ayypq3fcigd9lpb2dafa8ci14h0g7rivm4lz8l1j";
   };
 
-  vendorSha256 = "04qpxl4j6v6w25i7r6wghd9xi7jzpy7dynhs9ni35wflq0rlczax";
+  vendorSha256 = "0jzx5midawvzims9ghh8fbslvwcdczvlpf0k6a9q0bdf4wlp2z5n";
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
@@ -23,4 +23,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ zowoq ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/misc/latex2html/default.nix b/nixpkgs/pkgs/tools/misc/latex2html/default.nix
index 1d78210d298b..33ecdb8cd8e5 100644
--- a/nixpkgs/pkgs/tools/misc/latex2html/default.nix
+++ b/nixpkgs/pkgs/tools/misc/latex2html/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "latex2html";
-  version = "2020";
+  version = "2020.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0z53pdf8pvarlqb3kbdz0w2r6922mv7mcdna5qp5z24wspfmv3zn";
+    sha256 = "1icyl6kl60wh7cavprgbd8q6lpjwr7wn24m34kpiif7ahknhcbcm";
   };
 
   buildInputs = [ ghostscript netpbm perl ];
diff --git a/nixpkgs/pkgs/tools/misc/lesspipe/default.nix b/nixpkgs/pkgs/tools/misc/lesspipe/default.nix
index 231e660f5826..8a13ef5dfd8a 100644
--- a/nixpkgs/pkgs/tools/misc/lesspipe/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lesspipe/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "lesspipe";
-  version = "1.84";
+  version = "1.85";
 
   buildInputs = [ perl ];
   preConfigure = "patchShebangs .";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     owner = "wofr06";
     repo = "lesspipe";
     rev = version;
-    sha256 = "124ffhzrikr88ab14rk6753n8adxijpmg7q3zx7nmqc52wpkfd8q";
+    sha256 = "1v1jdkdq1phc93gdr6mjlk98gipxrkkq4bj8kks0kfdvjgdwkdaa";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/tools/misc/lf/default.nix b/nixpkgs/pkgs/tools/misc/lf/default.nix
index 8627003db5f9..a00fd7494d8b 100644
--- a/nixpkgs/pkgs/tools/misc/lf/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lf/default.nix
@@ -2,30 +2,22 @@
 
 buildGoModule rec {
   pname = "lf";
-  version = "14";
+  version = "16";
 
   src = fetchFromGitHub {
     owner = "gokcehan";
     repo = "lf";
     rev = "r${version}";
-    sha256 = "0kl9yrgph1i0jbxhlg3k0411436w80xw1s8dzd7v7h2raygkb4is";
+    sha256 = "174h6xnm3amayf0wfiai16m8qnkx54h5zy4rs7j3yzycd7sirs5b";
   };
 
-  vendorSha256 = "1zb2z3c2w4gnq9cjczg1y7r7jg4mlrm2hsb12dqd9w8mh44rvr37";
+  vendorSha256 = "10na3jzvln353ygcvbhj4243yr83skw5zf3r2n8p6d7i83i86c8w";
+
+  doCheck = false;
 
   nativeBuildInputs = [ installShellFiles ];
 
-  # TODO: Setting buildFlags probably isn't working properly. I've tried a few
-  # variants, e.g.:
-  # - buildFlags = [ "-ldflags" "\"-s" "-w"" ""-X 'main.gVersion=${version}'\"" ];
-  # - buildFlags = [ "-ldflags" "\\\"-X" "${goPackagePath}/main.gVersion=${version}\\\"" ];
-  # Override the build phase (to set buildFlags):
-  buildPhase = ''
-    runHook preBuild
-    runHook renameImports
-    go install -ldflags="-s -w -X main.gVersion=r${version}"
-    runHook postBuild
-  '';
+  buildFlagsArray = [ "-ldflags=-s -w -X main.gVersion=r${version}" ];
 
   postInstall = ''
     install -D --mode=444 lf.desktop $out/share/applications/lf.desktop
@@ -47,4 +39,4 @@ buildGoModule rec {
     platforms = platforms.unix;
     maintainers = with maintainers; [ primeos ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/misc/libgen-cli/default.nix b/nixpkgs/pkgs/tools/misc/libgen-cli/default.nix
index 7d66941c99a3..26627500e8b0 100644
--- a/nixpkgs/pkgs/tools/misc/libgen-cli/default.nix
+++ b/nixpkgs/pkgs/tools/misc/libgen-cli/default.nix
@@ -1,16 +1,18 @@
 { lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 buildGoModule rec {
   pname = "libgen-cli";
-  version = "1.0.6";
+  version = "1.0.7";
 
   src = fetchFromGitHub {
     owner = "ciehanski";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ahqwrlsvgiig73dwlbjgkarf3a0z3xaihj8psd2ci5i0i07nm5v";
+    sha256 = "15nzdwhmgpm36dqx7an5rjl5sw2r4p66qn2y3jzl6fc0y7224ns1";
   };
 
-  vendorSha256 = "15ch0zfl4a7qvwszsfkfgw5v9492wjk4l4i324iq9b50g70lgyhd";
+  vendorSha256 = "0smb83mq711b2pby57ijcllccn7y2l10zb4fbf779xibb2g09608";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
@@ -33,7 +35,6 @@ buildGoModule rec {
       contents.
     '';
     license = licenses.asl20;
-    platforms = platforms.all;
     maintainers = with maintainers; [ zaninime ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/misc/licensor/default.nix b/nixpkgs/pkgs/tools/misc/licensor/default.nix
index a6570adf1207..3a87e0a1bb89 100644
--- a/nixpkgs/pkgs/tools/misc/licensor/default.nix
+++ b/nixpkgs/pkgs/tools/misc/licensor/default.nix
@@ -23,6 +23,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/raftario/licensor";
     license = licenses.mit;
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/lnav/default.nix b/nixpkgs/pkgs/tools/misc/lnav/default.nix
index aab980d76e7e..9e5fad269886 100644
--- a/nixpkgs/pkgs/tools/misc/lnav/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lnav/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     owner = "tstack";
     repo = "lnav";
     rev = "v${meta.version}";
-    sha256 = "0z8bsr0falxlkmd1b5gy871vyafyih0sw7lgg858lqnbsy0q2m4i";
+    sha256 = "1frdrr3yjlk2fns3ny0qbr30rpswhwlvv3kyhdl3l6a0q5cqaqsg";
     inherit name;
   };
 
@@ -25,6 +25,10 @@ stdenv.mkDerivation rec {
     curl
   ];
 
+  postPatch = ''
+    sed -ie '/DUMP_INTERNALS/d' src/Makefile.am
+  '';
+
   preConfigure = ''
     ./autogen.sh
   '';
@@ -43,7 +47,7 @@ stdenv.mkDerivation rec {
     '';
     downloadPage = "https://github.com/tstack/lnav/releases";
     license = licenses.bsd2;
-    version = "0.8.5";
+    version = "0.9.0";
     maintainers = with maintainers; [ dochang ma27 ];
     platforms = platforms.unix;
   };
diff --git a/nixpkgs/pkgs/tools/misc/lnch/default.nix b/nixpkgs/pkgs/tools/misc/lnch/default.nix
index 4d9324af1807..51b9b94ef70d 100644
--- a/nixpkgs/pkgs/tools/misc/lnch/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lnch/default.nix
@@ -16,7 +16,6 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     homepage = "https://github.com/oem/lnch";
     description = "A small go app that launches a process and moves it out of the process group";
-    platforms = platforms.all;
     license = licenses.publicDomain; # really I don't know
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/lokalise2-cli/default.nix b/nixpkgs/pkgs/tools/misc/lokalise2-cli/default.nix
new file mode 100644
index 000000000000..3705d7df6f08
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/lokalise2-cli/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "lokalise2-cli";
+  version = "2.6.0";
+
+  src = fetchFromGitHub {
+    owner = "lokalise";
+    repo = "lokalise-cli-2-go";
+    rev = "v${version}";
+    sha256 = "15lwy2rrb5d5r0asa51bgjr42pcknk6znx6qirw9s924i8dbzp6s";
+  };
+
+  vendorSha256 = "06y1v0v1kkbd5vxa8h0qvasm9ibwwhz0v4x03k3nb5xlwn0x9jx8";
+
+  doCheck = false;
+
+  postInstall = ''
+    mv $out/bin/lokalise-cli-2-go $out/bin/lokalise2
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Translation platform for developers. Upload language files, translate, integrate via API.";
+    homepage = "https://lokalise.com";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ timstott ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/lolcat/Gemfile.lock b/nixpkgs/pkgs/tools/misc/lolcat/Gemfile.lock
index e01cf81c61e8..d98402b0a599 100644
--- a/nixpkgs/pkgs/tools/misc/lolcat/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/misc/lolcat/Gemfile.lock
@@ -1,13 +1,13 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    lolcat (100.0.0)
+    lolcat (100.0.1)
       manpages (~> 0.6.1)
-      optimist (~> 3.0.0)
-      paint (~> 2.1.0)
+      optimist (~> 3.0.1)
+      paint (~> 2.2.0)
     manpages (0.6.1)
-    optimist (3.0.0)
-    paint (2.1.1)
+    optimist (3.0.1)
+    paint (2.2.0)
 
 PLATFORMS
   ruby
diff --git a/nixpkgs/pkgs/tools/misc/lolcat/gemset.nix b/nixpkgs/pkgs/tools/misc/lolcat/gemset.nix
index 2c2bc9cead10..421e1874db7d 100644
--- a/nixpkgs/pkgs/tools/misc/lolcat/gemset.nix
+++ b/nixpkgs/pkgs/tools/misc/lolcat/gemset.nix
@@ -5,10 +5,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0k1m2ihcprjq9jdmq2v3xlf27hqbpr2vjnnyfwp3z2zspzbl0nys";
+      sha256 = "13p8i08vdqfg2bqyjkl8jsp7gw8cf6r68i8plp9zqavlqadqlg4q";
       type = "gem";
     };
-    version = "100.0.0";
+    version = "100.0.1";
   };
   manpages = {
     groups = ["default"];
@@ -25,19 +25,19 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "05jxrp3nbn5iilc1k7ir90mfnwc5abc9h78s5rpm3qafwqxvcj4j";
+      sha256 = "1vg2chy1cfmdj6c1gryl8zvjhhmb3plwgyh1jfnpq4fnfqv7asrk";
       type = "gem";
     };
-    version = "3.0.0";
+    version = "3.0.1";
   };
   paint = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rrb2p2yk6ffhm0gz8ba431mf63kq7w27gwavxl7n8qd2splj4mh";
+      sha256 = "014b5rkbg6qri0cwkq972bfi93zvqdgswgvphjrgjl0pr6hywlkl";
       type = "gem";
     };
-    version = "2.1.1";
+    version = "2.2.0";
   };
 }
\ No newline at end of file
diff --git a/nixpkgs/pkgs/tools/misc/loop/default.nix b/nixpkgs/pkgs/tools/misc/loop/default.nix
index 73907e233ab0..3cc0466d80ad 100644
--- a/nixpkgs/pkgs/tools/misc/loop/default.nix
+++ b/nixpkgs/pkgs/tools/misc/loop/default.nix
@@ -1,16 +1,17 @@
 { stdenv, fetchFromGitHub, rustPlatform }:
 
 rustPlatform.buildRustPackage {
-  name = "loop-unstable-2018-12-04";
+  pname = "loop";
+  version = "unstable-2020-07-08";
 
   src = fetchFromGitHub {
     owner = "Miserlou";
     repo  = "Loop";
-    rev   = "598ccc8e52bb13b8aff78b61cfe5b10ff576cecf";
-    sha256 = "0f33sc1slg97q1aisdrb465c3p7fgdh2swv8k3yphpnja37f5nl4";
+    rev   = "944df766ddecd7a0d67d91cc2dfda8c197179fb0";
+    sha256 = "0v61kahwk1kdy8pb40rjnzcxby42nh02nyg9jqqpx3vgdrpxlnix";
   };
 
-  cargoSha256 = "1ydd0sd4lvl6fdl4b13ncqcs03sbxb6v9dwfyqi64zihqzpblshv";
+  cargoSha256 = "0a3l580ca23vx8isd1qff870ci3p7wf4qrm53jl7nhfjh7rg5a4w";
 
   meta = with stdenv.lib; {
     description = "UNIX's missing `loop` command";
diff --git a/nixpkgs/pkgs/tools/misc/lorri/default.nix b/nixpkgs/pkgs/tools/misc/lorri/default.nix
index 7829a677b431..99ac31f6a0b9 100644
--- a/nixpkgs/pkgs/tools/misc/lorri/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lorri/default.nix
@@ -4,7 +4,7 @@
 , rustPlatform
   # Updater script
 , runtimeShell
-, writeScript
+, writers
   # Tests
 , nixosTests
   # Apple dependencies
@@ -12,9 +12,16 @@
 , Security
 }:
 
-rustPlatform.buildRustPackage rec {
+let
+  # Run `eval $(nix-build -A lorri.updater)` after updating the revision!
+  version = "1.2";
+  gitRev = "43a260c221d5dac4a44fd82271736c8444474eec";
+  sha256 = "0g6zq27dpr8bdan5xrqchybpbqwnhhc7x8sxbfygigbqd3xv9i6n";
+  cargoSha256 = "1zmlp14v7av0znmjyy2aq83lc74503p6r0l11l9iw7s3xad8rda4";
+
+in (rustPlatform.buildRustPackage rec {
   pname = "lorri";
-  version = "1.0";
+  inherit version;
 
   meta = with stdenv.lib; {
     description = "Your project's nix-env";
@@ -26,12 +33,13 @@ rustPlatform.buildRustPackage rec {
   src = fetchFromGitHub {
     owner = "target";
     repo = pname;
-    # Run `eval $(nix-build -A lorri.updater)` after updating the revision!
-    rev = "88c680c9abf0f04f2e294436d20073ccf26f0781";
-    sha256 = "1415mhdr0pwvshs04clfz1ys76r5qf9jz8jchm63l6llaj6m7mrv";
+    rev = gitRev;
+    inherit sha256;
   };
 
-  cargoSha256 = "1iwd0cad8dp8q5xz2mm7zn1wphr5brkw937dfygc88afj6bv3d68";
+  outputs = [ "out" "man" "doc" ];
+
+  inherit cargoSha256;
   doCheck = false;
 
   BUILD_REV_COUNT = src.revCount or 1;
@@ -41,9 +49,19 @@ rustPlatform.buildRustPackage rec {
   buildInputs =
     stdenv.lib.optionals stdenv.isDarwin [ CoreServices Security ];
 
+  # copy the docs to the $man and $doc outputs
+  postInstall = ''
+    install -Dm644 lorri.1 $man/share/man/man1/lorri.1
+    install -Dm644 -t $doc/share/doc/lorri/ \
+      README.md \
+      CONTRIBUTING.md \
+      LICENSE \
+      MAINTAINERS.md
+    cp -r contrib/ $doc/share/doc/lorri/contrib
+  '';
+
   passthru = {
-    updater = with builtins; writeScript "copy-runtime-nix.sh" ''
-      #!${runtimeShell}
+    updater = writers.writeBash "copy-runtime-nix.sh" ''
       set -euo pipefail
       cp ${src}/nix/runtime.nix ${toString ./runtime.nix}
       cp ${src}/nix/runtime-closure.nix.template ${toString ./runtime-closure.nix.template}
@@ -52,4 +70,4 @@ rustPlatform.buildRustPackage rec {
       nixos = nixosTests.lorri;
     };
   };
-}
+})
diff --git a/nixpkgs/pkgs/tools/misc/lottieconverter/default.nix b/nixpkgs/pkgs/tools/misc/lottieconverter/default.nix
new file mode 100644
index 000000000000..bf2a68df702a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/lottieconverter/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub, libpng, rlottie, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "LottieConverter";
+  version = "0.1.1";
+
+  src = fetchFromGitHub {
+    owner = "sot-tech";
+    repo = pname;
+    rev = "r${version}";
+    hash = "sha256-lAGzh6B2js2zDuN+1U8CZnse09RJGZRXbtmsheGKuYU=";
+  };
+
+  buildInputs = [ libpng rlottie zlib ];
+  makeFlags = [ "CONF=Release" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    cp -v dist/Release/GNU-Linux/lottieconverter $out/bin/
+
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/sot-tech/LottieConverter/";
+    description = "Lottie converter utility";
+    license = licenses.lgpl21Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ CRTified ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/lsd/default.nix b/nixpkgs/pkgs/tools/misc/lsd/default.nix
index 73dcbd3bc3cb..415c55fb611c 100644
--- a/nixpkgs/pkgs/tools/misc/lsd/default.nix
+++ b/nixpkgs/pkgs/tools/misc/lsd/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "lsd";
-  version = "0.17.0";
+  version = "0.18.0";
 
   src = fetchFromGitHub {
     owner = "Peltoche";
     repo = pname;
     rev = version;
-    sha256 = "1vyww54fl4yfvszr0dh8ym2jd9gilrccmwkvl7rbx70sfqzsgaai";
+    sha256 = "006fy87jrb77cpa6bywchcvq1p74vlpy151q1j4nsj8npbr02krj";
   };
 
-  cargoSha256 = "13g0p6zh2b1z005lszll098d4lv62dzsxwhl76bianzrydif61lr";
+  cargoSha256 = "0mrvcca9y0vylcrbfxxba45v05qxd8z91vb4in88px60xah0dy3q";
 
   nativeBuildInputs = [ installShellFiles ];
   postInstall = ''
diff --git a/nixpkgs/pkgs/tools/misc/man-db/default.nix b/nixpkgs/pkgs/tools/misc/man-db/default.nix
index f19e5fd5b9df..68e1aaa4d613 100644
--- a/nixpkgs/pkgs/tools/misc/man-db/default.nix
+++ b/nixpkgs/pkgs/tools/misc/man-db/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, pkgconfig, libpipeline, db, groff, libiconv, makeWrapper, buildPackages }:
 
 stdenv.mkDerivation rec {
-  name = "man-db-2.9.0";
+  name = "man-db-2.9.3";
 
   src = fetchurl {
     url = "mirror://savannah/man-db/${name}.tar.xz";
-    sha256 = "0qg2sdn8mayya0ril484iz1r7hi46l68d2d80cr6lvc7x3csqjjx";
+    sha256 = "1f4palf5bdyf3f8sa0981cqxn9cjcr2pz53ngrrsybb9n0da2nps";
   };
 
   outputs = [ "out" "doc" ];
@@ -15,18 +15,17 @@ stdenv.mkDerivation rec {
   buildInputs = [ libpipeline db groff ]; # (Yes, 'groff' is both native and build input)
   checkInputs = [ libiconv /* for 'iconv' binary */ ];
 
+  patches = [ ./systemwide-man-db-conf.patch ];
+
   postPatch = ''
     # Remove all mandatory manpaths. Nixpkgs makes no requirements on
     # these directories existing.
     sed -i 's/^MANDATORY_MANPATH/# &/' src/man_db.conf.in
 
-    # Add Nixpkgs and NixOS-related manpaths
-    echo "MANPATH_MAP	/run/current-system/sw/bin		/run/current-system/sw/share/man" >> src/man_db.conf.in
-    echo "MANPATH_MAP	/run/wrappers/bin			/run/current-system/sw/share/man" >> src/man_db.conf.in
+    # Add Nix-related manpaths
     echo "MANPATH_MAP	/nix/var/nix/profiles/default/bin	/nix/var/nix/profiles/default/share/man" >> src/man_db.conf.in
 
     # Add mandb locations for the above
-    echo "MANDB_MAP	/run/current-system/sw/share/man	/var/cache/man/nixos" >> src/man_db.conf.in
     echo "MANDB_MAP	/nix/var/nix/profiles/default/share/man	/var/cache/man/nixpkgs" >> src/man_db.conf.in
   '';
 
@@ -34,7 +33,6 @@ stdenv.mkDerivation rec {
     "--disable-setuid"
     "--disable-cache-owner"
     "--localstatedir=/var"
-    # Don't try /etc/man_db.conf by default, so we avoid error messages.
     "--with-config-file=${placeholder "out"}/etc/man_db.conf"
     "--with-systemdtmpfilesdir=${placeholder "out"}/lib/tmpfiles.d"
     "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
diff --git a/nixpkgs/pkgs/tools/misc/man-db/systemwide-man-db-conf.patch b/nixpkgs/pkgs/tools/misc/man-db/systemwide-man-db-conf.patch
new file mode 100644
index 000000000000..2d4477776bb1
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/man-db/systemwide-man-db-conf.patch
@@ -0,0 +1,39 @@
+commit 9089291006a4258c39c75a920ad536b61504251a
+Author: rnhmjoj <rnhmjoj@inventati.org>
+Date:   Fri May 1 19:32:15 2020 +0200
+
+    check for systemwide man_db.conf before the bundled one
+
+diff --git a/src/manp.c b/src/manp.c
+index 5441339..0bbf566 100644
+--- a/src/manp.c
++++ b/src/manp.c
+@@ -841,18 +841,24 @@ void read_config_file (bool optional)
+ 	}
+ 
+ 	if (getenv ("MAN_TEST_DISABLE_SYSTEM_CONFIG") == NULL) {
+-		config_file = fopen (CONFIG_FILE, "r");
++		const char *config_filepath;
++		if (access ("/etc/man_db.conf", F_OK) != -1) {
++			config_filepath = "/etc/man_db.conf";
++		} else {
++			config_filepath = CONFIG_FILE;
++		}
++		config_file = fopen (config_filepath, "r");
+ 		if (config_file == NULL) {
+ 			if (optional)
+ 				debug ("can't open %s; continuing anyway\n",
+-				       CONFIG_FILE);
++				       config_filepath);
+ 			else
+ 				error (FAIL, 0,
+ 				       _("can't open the manpath "
+ 					 "configuration file %s"),
+-				       CONFIG_FILE);
++				       config_filepath);
+ 		} else {
+-			debug ("From the config file %s:\n", CONFIG_FILE);
++			debug ("From the config file %s:\n", config_filepath);
+ 
+ 			add_to_dirlist (config_file, 0);
+ 			fclose (config_file);
diff --git a/nixpkgs/pkgs/tools/misc/mbuffer/default.nix b/nixpkgs/pkgs/tools/misc/mbuffer/default.nix
index 8b1cb938fb74..d86f824b87fa 100644
--- a/nixpkgs/pkgs/tools/misc/mbuffer/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mbuffer/default.nix
@@ -12,6 +12,14 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [ openssl ];
+
+  # The mbuffer configure scripts fails to recognize the correct
+  # objdump binary during cross-building for foreign platforms.
+  # The correct objdump is exposed via the environment variable
+  # $OBJDUMP, which should be used in such cases.
+  preConfigure = stdenv.lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) ''
+    substituteInPlace configure --replace "OBJDUMP=$ac_cv_path_OBJDUMP" 'OBJDUMP=''${OBJDUMP}'
+  '';
   doCheck = true;
 
   meta = {
diff --git a/nixpkgs/pkgs/tools/misc/mc/default.nix b/nixpkgs/pkgs/tools/misc/mc/default.nix
index 07c5f9b35174..fb279f313b4d 100644
--- a/nixpkgs/pkgs/tools/misc/mc/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mc/default.nix
@@ -20,11 +20,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mc";
-  version = "4.8.24";
+  version = "4.8.25";
 
   src = fetchurl {
     url = "https://www.midnight-commander.org/downloads/${pname}-${version}.tar.xz";
-    sha256 = "0ikd2yql44p7nagmb08dmjqdwadclnvgr7ri9pmzc2s5f301r7w5";
+    sha256 = "12jlnabnc91xsm35g99g2wnh96jmznvrhffd18rj7fqfy8brdhgz";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
diff --git a/nixpkgs/pkgs/tools/misc/mcfly/default.nix b/nixpkgs/pkgs/tools/misc/mcfly/default.nix
index f206c54a0037..39f9b47f4653 100644
--- a/nixpkgs/pkgs/tools/misc/mcfly/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mcfly/default.nix
@@ -1,27 +1,30 @@
-{ stdenv, rustPlatform, fetchFromGitHub, Security }:
+{ stdenv, rustPlatform, fetchFromGitHub }:
 
 rustPlatform.buildRustPackage rec {
   pname = "mcfly";
-  version = "0.3.6";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "cantino";
     repo = "mcfly";
     rev = "v${version}";
-    sha256 = "1g3n7ll0yg7w7hb3jgp25mlnqwsdzv0608f41z7q5gmsskdm3v1j";
+    sha256 = "155x745jakfcpr6kmp24cy8xwdhv81jdfjjhd149bnw5ilg0z037";
   };
 
-  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
-
-  preInstall = ''
+  postInstall = ''
+    substituteInPlace mcfly.bash --replace '$(which mcfly)' $out/bin/mcfly
+    substituteInPlace mcfly.zsh  --replace '$(which mcfly)' $out/bin/mcfly
+    substituteInPlace mcfly.fish --replace '(which mcfly)' $out/bin/mcfly
     install -Dm644 -t $out/share/mcfly mcfly.bash
+    install -Dm644 -t $out/share/mcfly mcfly.zsh
+    install -Dm644 -t $out/share/mcfly mcfly.fish
   '';
 
-  cargoSha256 = "0r2zb59rpja9z7q0gsylqaq4vqm5rp57fy56ajjrm6k6z06nq7bv";
+  cargoSha256 = "0y6sjbzg5qqqip9sc9ajyd5ra3n2wwvarj6nhpzjhh05kqz3qja4";
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/cantino/mcfly";
-    description = "An upgraded ctrl-r for Bash whose history results make sense for what you're working on right now.";
+    description = "An upgraded ctrl-r for Bash whose history results make sense for what you're working on right now";
     license = licenses.mit;
     maintainers = [ maintainers.melkor333 ];
   };
diff --git a/nixpkgs/pkgs/tools/misc/mdbtools/default.nix b/nixpkgs/pkgs/tools/misc/mdbtools/default.nix
index 0a887531fb86..aedaa3648887 100644
--- a/nixpkgs/pkgs/tools/misc/mdbtools/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mdbtools/default.nix
@@ -1,30 +1,40 @@
-{ stdenv, fetchFromGitHub, glib, readline
-, bison, flex, pkgconfig, autoreconfHook
-, txt2man, which }:
+{ stdenv, lib, fetchFromGitHub, glib, readline
+, bison, flex, pkgconfig, autoreconfHook, libxslt, makeWrapper
+, txt2man, which
+# withUi currently doesn't work. It compiles but fails to run.
+, withUi ? false, gtk2, gnome2
+}:
 
-let version = "0.7.1";
-in stdenv.mkDerivation {
+let
+  uiDeps = [ gtk2 ] ++ (with gnome2; [ GConf libglade libgnomeui gnome-doc-utils ]);
+
+in
+stdenv.mkDerivation rec {
   pname = "mdbtools";
-  inherit version;
+  version = "0.8.2";
 
   src = fetchFromGitHub {
-    owner = "brianb";
+    owner = "cyberemissary";
     repo = "mdbtools";
     rev = version;
-    sha256 = "0gwcpp9y09xhs21g7my2fs8ncb8i6ahlyixcx8jd3q97jbzj441l";
+    sha256 = "12rhf6rgnws6br5dn1l2j7i77q9p4l6ryga10jpax01vvzhr26qc";
   };
 
-  nativeBuildInputs = [ pkgconfig bison flex autoreconfHook txt2man which ];
-  buildInputs = [ glib readline ];
+  configureFlags = [ "--disable-scrollkeeper" ];
+
+  nativeBuildInputs = [
+    pkgconfig bison flex autoreconfHook txt2man which
+  ] ++ lib.optional withUi libxslt;
+
+  buildInputs = [ glib readline ] ++ lib.optionals withUi uiDeps;
 
-  preConfigure = ''
-    sed -e 's@static \(GHashTable [*]mdb_backends;\)@\1@' -i src/libmdb/backend.c
-  '';
+  enableParallelBuilding = true;
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = ".mdb (MS Access) format tools";
-    homepage = "http://mdbtools.sourceforge.net";
-    platforms = platforms.unix;
     license = with licenses; [ gpl2 lgpl2 ];
+    maintainers = with maintainers; [ ];
+    platforms = platforms.unix;
+    inherit (src.meta) homepage;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/miniserve/default.nix b/nixpkgs/pkgs/tools/misc/miniserve/default.nix
index 503131898c8f..8e2503d06d42 100644
--- a/nixpkgs/pkgs/tools/misc/miniserve/default.nix
+++ b/nixpkgs/pkgs/tools/misc/miniserve/default.nix
@@ -3,27 +3,26 @@
 , fetchFromGitHub
 , pkg-config
 , zlib
-, openssl
 , Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "miniserve";
-  version = "0.7.0";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "svenstaro";
     repo = "miniserve";
     rev = "v${version}";
-    sha256 = "06nrb84xfvx02yc4bjn1szfq3bjy8mqgxwwrjghl7vpcw51qhlk5";
+    sha256 = "1abmg2zk1qipqdl1yfj8ibm1w8n7fazxqccsg1gq4xzlhhfp3m2l";
   };
 
-  cargoSha256 = "0mk8hvhjqggfr410yka9ygb41l1bnsizs8py3100xf685yxy5mhl";
+  cargoSha256 = "0l750067x8k92ngg32bb8mnbq09aj65sdnpzdhij9n1mh90rkck9";
 
   RUSTC_BOOTSTRAP = 1;
 
   nativeBuildInputs = [ pkg-config zlib ];
-  buildInputs = if stdenv.isDarwin then [ Security ] else [ openssl ];
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
 
   meta = with stdenv.lib; {
     description = "For when you really just want to serve some files over HTTP right now!";
@@ -31,5 +30,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ nequissimus zowoq ];
     platforms = platforms.unix;
+    broken = stdenv.isDarwin; # https://github.com/NixOS/nixpkgs/pull/98181
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/mmake/default.nix b/nixpkgs/pkgs/tools/misc/mmake/default.nix
index e272c56e0acd..a761530a0a00 100644
--- a/nixpkgs/pkgs/tools/misc/mmake/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mmake/default.nix
@@ -25,7 +25,6 @@ buildGoPackage rec {
       pass-through to standard make.
       '';
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = [ maintainers.gabesoft ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix b/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix
index bdc3ac4ddebd..ec6be6eba28b 100644
--- a/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mongodb-compass/default.nix
@@ -1,13 +1,14 @@
 { stdenv, fetchurl, dpkg
-, alsaLib, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, glib
-, gnome2, gnome3, libnotify, libxcb, nspr, nss, systemd, xorg, wrapGAppsHook }:
+, alsaLib, at-spi2-atk, at-spi2-core, atk, cairo, cups, curl, dbus, expat, fontconfig, freetype, glib
+, gnome2, gnome3, libnotify, libsecret, libuuid, libxcb, nspr, nss, systemd, xorg, wrapGAppsHook }:
 
 let
-
-  version = "1.17.0";
+  version = "1.22.1";
 
   rpath = stdenv.lib.makeLibraryPath [
     alsaLib
+    at-spi2-atk
+    at-spi2-core
     atk
     cairo
     cups
@@ -22,6 +23,8 @@ let
     gnome3.gtk
     gnome2.pango
     libnotify
+    libsecret
+    libuuid
     libxcb
     nspr
     nss
@@ -46,7 +49,7 @@ let
     if stdenv.hostPlatform.system == "x86_64-linux" then
       fetchurl {
         url = "https://downloads.mongodb.com/compass/mongodb-compass_${version}_amd64.deb";
-        sha256 = "085xq1ik8kyza1kq9kn0pf98zk6g2qa21clxhn48rgnqk20aninv";
+        sha256 = "1wbjj2w4dii644lprvmwnlval53yqh4y0f58cad657jjw8101rd9";
       }
     else
       throw "MongoDB compass is not supported on ${stdenv.hostPlatform.system}";
@@ -62,20 +65,30 @@ in stdenv.mkDerivation {
 
   buildCommand = ''
     IFS=$'\n'
-    dpkg -x $src $out
-    cp -av $out/usr/* $out
+
+    # The deb file contains a setuid binary, so 'dpkg -x' doesn't work here
+    dpkg --fsys-tarfile $src | tar --extract
+
+    mkdir -p $out
+    mv usr/* $out
+
+    # cp -av $out/usr/* $out
     rm -rf $out/share/lintian
-    #The node_modules are bringing in non-linux files/dependencies
+
+    # The node_modules are bringing in non-linux files/dependencies
     find $out -name "*.app" -exec rm -rf {} \; || true
     find $out -name "*.dll" -delete
     find $out -name "*.exe" -delete
+
     # Otherwise it looks "suspicious"
     chmod -R g-w $out
+
     for file in `find $out -type f -perm /0111 -o -name \*.so\*`; do
       echo "Manipulating file: $file"
       patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true
-      patchelf --set-rpath ${rpath}:$out/share/mongodb-compass "$file" || true
+      patchelf --set-rpath ${rpath}:$out/lib/mongodb-compass "$file" || true
     done
+
     wrapGAppsHook $out/bin/mongodb-compass
   '';
 
diff --git a/nixpkgs/pkgs/tools/misc/mpdscribble/default.nix b/nixpkgs/pkgs/tools/misc/mpdscribble/default.nix
index 49f9c6bc0313..b3665bb6dcf1 100644
--- a/nixpkgs/pkgs/tools/misc/mpdscribble/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mpdscribble/default.nix
@@ -1,23 +1,23 @@
-{ stdenv, fetchurl, mpd_clientlib, curl, glib, pkgconfig }:
+{ stdenv, fetchurl, meson, ninja, pkgconfig, boost, libgcrypt, systemd, mpd_clientlib, curl }:
 
 stdenv.mkDerivation rec {
   pname = "mpdscribble";
-  version = "0.22";
+  version = "0.23";
 
   src = fetchurl {
     url =
-    "https://www.musicpd.org/download/mpdscribble/${version}/mpdscribble-${version}.tar.bz2";
-    sha256 = "0hgb7xh3w455m00lpldwkyrc5spjn3q1pl2ry3kf7w3hiigjpphw";
+    "https://www.musicpd.org/download/mpdscribble/${version}/mpdscribble-${version}.tar.xz";
+    sha256 = "0s66zqscb44p88cl3kcv5jkjcqsskcnrv7xgrjhzrchf2kcpwf53";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ mpd_clientlib curl glib ];
+  nativeBuildInputs = [ meson ninja pkgconfig ];
+  buildInputs = [ mpd_clientlib curl boost libgcrypt systemd ];
 
   meta = with stdenv.lib; {
-    description = "A Music Player Daemon (MPD) client which submits information about tracks beeing played to a scrobbler (e.g. last.fm)";
+    description = "A Music Player Daemon (MPD) client which submits information about tracks being played to a scrobbler (e.g. last.fm)";
     homepage = "https://www.musicpd.org/clients/mpdscribble/";
     license = licenses.gpl2;
-    maintainers = [ maintainers.matthiasbeyer ];
+    maintainers = [ maintainers.sohalt ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/mprime/default.nix b/nixpkgs/pkgs/tools/misc/mprime/default.nix
index 363e90ab5f23..3189e41de8d4 100644
--- a/nixpkgs/pkgs/tools/misc/mprime/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mprime/default.nix
@@ -1,34 +1,45 @@
 { stdenv, lib, fetchurl, unzip, curl, hwloc, gmp }:
 
 let
-  srcDir =
-    if stdenv.hostPlatform.system == "x86_64-linux" then "linux64"
-    else if stdenv.hostPlatform.system == "i686-linux" then "linux"
-    else if stdenv.hostPlatform.system == "x86_64-darwin" then "macosx64"
-    else throwSystem;
   throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
-  gwnum =
-    if stdenv.hostPlatform.system == "x86_64-linux" then "make64"
-    else if stdenv.hostPlatform.system == "i686-linux" then "makefile"
-    else if stdenv.hostPlatform.system == "x86_64-darwin" then "makemac"
-    else throwSystem;
+
+  srcDir = {
+    x86_64-linux = "linux64";
+    i686-linux = "linux";
+    x86_64-darwin = "macosx64";
+  }."${stdenv.hostPlatform.system}" or throwSystem;
+
+  gwnum = {
+    x86_64-linux = "make64";
+    i686-linux = "makefile";
+    x86_64-darwin = "makemac";
+  }."${stdenv.hostPlatform.system}" or throwSystem;
 in
 
 stdenv.mkDerivation rec {
   pname = "mprime";
-  version = "29.4b7";
+  version = "29.8b7";
 
   src = fetchurl {
     url = "https://www.mersenne.org/ftp_root/gimps/p95v${lib.replaceStrings ["."] [""] version}.source.zip";
-    sha256 = "0idaqm46m4yis7vl014scx57lpccvjbnyy79gmj8caxghyajws0m";
+    sha256 = "0x5dk2dcppfnq17n79297lmn6p56rd66cbwrh1ds4l8r4hmwsjaj";
   };
 
-  unpackCmd = "unzip -d src -q $curSrc || true";
+  postPatch = ''
+    sed -i ${srcDir}/makefile \
+      -e 's/^LFLAGS =.*//'
+    substituteInPlace ${srcDir}/makefile \
+      --replace '-Wl,-Bstatic'  "" \
+      --replace '-Wl,-Bdynamic' ""
+  '';
+
+  sourceRoot = ".";
 
   nativeBuildInputs = [ unzip ];
+
   buildInputs = [ curl hwloc gmp ];
 
-  patches = [ ./makefile.patch ];
+  enableParallelBuilding = true;
 
   buildPhase = ''
     make -C gwnum -f ${gwnum}
@@ -36,10 +47,10 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
-    install -D ${srcDir}/mprime $out/bin/mprime
+    install -Dm555 -t $out/bin ${srcDir}/mprime
   '';
-  
-  meta = {
+
+  meta = with lib; {
     description = "Mersenne prime search / System stability tester";
     longDescription = ''
       MPrime is the Linux command-line interface version of Prime95, to be run
@@ -50,7 +61,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.mersenne.org/";
     # Unfree, because of a license requirement to share prize money if you find
     # a suitable prime. http://www.mersenne.org/legal/#EULA
-    license = stdenv.lib.licenses.unfree;
+    license = licenses.unfree;
     # Untested on linux-32 and osx. Works in theory.
     platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin"];
   };
diff --git a/nixpkgs/pkgs/tools/misc/mprime/makefile.patch b/nixpkgs/pkgs/tools/misc/mprime/makefile.patch
deleted file mode 100644
index 6ed9cf69384d..000000000000
--- a/nixpkgs/pkgs/tools/misc/mprime/makefile.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff -dur src.old/linux/makefile src.new/linux/makefile
---- src.old/linux/makefile	2018-01-04 20:49:00.000000000 +0300
-+++ src.new/linux/makefile	2018-02-15 12:32:02.913011604 +0300
-@@ -28,8 +28,8 @@
- CPP = g++
- CPPFLAGS = -I.. -I../gwnum -O2 -march=i486 -malign-double
- 
--LFLAGS = -Wl,-M -Wl,-L/usr/local/lib
--LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic -lhwloc -Wl,-Bstatic -lcurl -Wl,-Bdynamic -lrt -lstdc++ -ldl -lgmp
-+LFLAGS =
-+LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -lhwloc -lcurl -lrt -lstdc++ -ldl -lgmp
- 
- FACTOROBJ = factor32.o
- LINUXOBJS = prime.o menu.o
-diff -dur src.old/linux64/makefile src.new/linux64/makefile
---- src.old/linux64/makefile	2018-01-04 20:49:00.000000000 +0300
-+++ src.new/linux64/makefile	2018-02-15 12:32:28.836286995 +0300
-@@ -26,9 +26,9 @@
- CPP = g++
- CPPFLAGS = -I.. -I../gwnum -DX86_64 -O2
- 
--LFLAGS = -Wl,-M -Wl,-L/usr/local/lib
-+LFLAGS =
- #LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic -lhwloc -Wl,-Bstatic -lcurl -Wl,-Bdynamic -lrt -lstdc++ -lz -lxml2 -ldl -lgmp
--LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -Wl,-Bstatic -lhwloc -Wl,-Bstatic -lcurl -Wl,-Bdynamic -lrt -lstdc++ -ldl -lgmp
-+LIBS = ../gwnum/gwnum.a ../gwnum/gwnum.ld -lm -lpthread -lhwloc -lcurl -lrt -lstdc++ -ldl -lgmp
- 
- FACTOROBJ = factor64.o
- LINUXOBJS = prime.o menu.o
-diff -dur src.old/macosx64/makefile src.new/macosx64/makefile
---- src.old/macosx64/makefile	2018-01-04 20:49:02.000000000 +0300
-+++ src.new/macosx64/makefile	2018-02-15 12:33:32.401902535 +0300
-@@ -12,7 +12,7 @@
- CPP = g++
- CPPFLAGS = -I.. -I../gwnum -I../linux -O2 -DX86_64 -DCOMMAND_LINE_MPRIME -m64
- 
--LFLAGS = -m64 -Wl,-no_pie -L/usr/local/lib
-+LFLAGS = -m64 -Wl,-no_pie
- LIBS   = ../gwnum/amd64/release/gwnum.a -lm -lpthread -lhwloc -lcurl -framework IOKit -framework CoreFoundation -lstdc++ -lgmp
- 
- FACTOROBJ = ../prime95/macosx64/factor64.o
diff --git a/nixpkgs/pkgs/tools/misc/mstflint/default.nix b/nixpkgs/pkgs/tools/misc/mstflint/default.nix
index cf90e93929de..20d7110944d8 100644
--- a/nixpkgs/pkgs/tools/misc/mstflint/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mstflint/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mstflint";
-  version = "4.14.0-1";
+  version = "4.14.0-3";
 
   src = fetchFromGitHub {
     owner = "Mellanox";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0xrwx623vl17cqzpacil74m2fi4xrshgvvzxiplz1wq47gq7wp1i";
+    sha256 = "0zy9npyzf7dkxlfl9mx6997aa61mk23ixpjb01ckb1wvav5k6z82";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/tools/misc/multitail/default.nix b/nixpkgs/pkgs/tools/misc/multitail/default.nix
index e0ac18a76b2d..eef53769f06d 100644
--- a/nixpkgs/pkgs/tools/misc/multitail/default.nix
+++ b/nixpkgs/pkgs/tools/misc/multitail/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, ncurses }:
+{ stdenv, fetchurl, ncurses, pkg-config }:
 
 stdenv.mkDerivation rec {
   version = "6.5.0";
@@ -9,6 +9,8 @@ stdenv.mkDerivation rec {
     sha256 = "1vd9vdxyxsccl64ilx542ya5vlw2bpg6gnkq1x8cfqy6vxvmx7dj";
   };
 
+  nativeBuildInputs = [ pkg-config ];
+
   buildInputs = [ ncurses ];
 
   makeFlags = stdenv.lib.optionals stdenv.isDarwin [ "-f" "makefile.macosx" ];
diff --git a/nixpkgs/pkgs/tools/misc/mutagen/default.nix b/nixpkgs/pkgs/tools/misc/mutagen/default.nix
index 1271c4948515..ca75bf34dd13 100644
--- a/nixpkgs/pkgs/tools/misc/mutagen/default.nix
+++ b/nixpkgs/pkgs/tools/misc/mutagen/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "mutagen";
-  version = "0.11.5";
+  version = "0.11.7";
 
   src = fetchFromGitHub {
     owner = "mutagen-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0z2bf412zfap91ygp7v06vif87d1cxj2jlc0jvfv7fm61801piij";
+    sha256 = "11wp94khj9bzmadij0nq6i6q0x9z6h0zy4a6fhf322y5nxsmvcgy";
   };
 
   vendorSha256 = "0szs9yc49fyh55ra1wf8zj76kdah0x49d45cgivk3gqh2hl17j6l";
 
+  doCheck = false;
+
   subPackages = [ "cmd/mutagen" "cmd/mutagen-agent" ];
 
   meta = with lib; {
@@ -22,4 +24,4 @@ buildGoModule rec {
     maintainers = [ maintainers.marsam ];
     license = licenses.mit;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix b/nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix
index e50960d063cf..4473f869a380 100644
--- a/nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix
+++ b/nixpkgs/pkgs/tools/misc/neo-cowsay/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1clar59x2dvn7yj4fbylby9nrzy8kdixi48hkbmrv8g5l8n0wdl2";
 
+  doCheck = false;
+
   subPackages = [ "cmd/cowsay" "cmd/cowthink" ];
 
   meta = with lib; {
@@ -21,4 +23,4 @@ buildGoModule rec {
     license = with licenses; [artistic1 /* or */ gpl3];
     maintainers = with maintainers; [ filalex77 ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/misc/neofetch/default.nix b/nixpkgs/pkgs/tools/misc/neofetch/default.nix
index a1a0c159bb41..f08e3828325a 100644
--- a/nixpkgs/pkgs/tools/misc/neofetch/default.nix
+++ b/nixpkgs/pkgs/tools/misc/neofetch/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "neofetch";
-  version = "7.0.0";
+  version = "7.1.0";
 
   src = fetchFromGitHub {
     owner = "dylanaraps";
     repo = "neofetch";
     rev = version;
-    sha256 = "0xc0fdc7n5bhqirh83agqiy8r14l14zwca07czvj8vgnsnfybslr";
+    sha256 = "0i7wpisipwzk0j62pzaigbiq42y1mn4sbraz4my2jlz6ahwf00kv";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix b/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix
index cff7df1801f7..d92f2346563c 100644
--- a/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix
+++ b/nixpkgs/pkgs/tools/misc/nix-direnv/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nix-direnv";
-  version = "1.0.0";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "nix-direnv";
     rev = "${version}";
-    sha256 = "1lwmg6mn3lf7s0345v53zadxn9v0x8z6pcbj90v5dx3pgrq41gs8";
+    sha256 = "sha256-xMz6e0OLeB3eltGrLV3Hew0lMjH5LSgqJ1l7JT2Ho/M=";
   };
 
   # Substitute instead of wrapping because the resulting file is
diff --git a/nixpkgs/pkgs/tools/misc/nncp/default.nix b/nixpkgs/pkgs/tools/misc/nncp/default.nix
new file mode 100644
index 000000000000..3322ed0c8a46
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/nncp/default.nix
@@ -0,0 +1,61 @@
+{ stdenv
+, go
+, fetchurl
+, curl
+, perl
+, genericUpdater
+, writeShellScript
+}:
+
+stdenv.mkDerivation rec {
+  pname = "nncp";
+  version = "5.3.3";
+
+  src = fetchurl {
+    url = "http://www.nncpgo.org/download/${pname}-${version}.tar.xz";
+    sha256 = "1l35ndzrvpfim29jn1p0bwmc8w892z44nsrdnay28k229r9dhz3h";
+  };
+
+  nativeBuildInputs = [ go ];
+
+  preConfigure = ''
+    export GOCACHE=$PWD/.cache
+  '';
+
+  makeFlags = [
+    "PREFIX=${placeholder "out"}"
+    "CFGPATH=/etc/nncp.hjson"
+    "SENDMAIL=/run/wrappers/bin/sendmail"
+  ];
+
+  passthru.updateScript = genericUpdater {
+    inherit pname version;
+    versionLister = writeShellScript "nncp-versionLister" ''
+      echo "# Versions for $1:" >> "$2"
+      ${curl}/bin/curl -s http://www.nncpgo.org/Tarballs.html | ${perl}/bin/perl -lne 'print $1 if /Release.*>([0-9.]+)</'
+    '';
+  };
+
+  meta = with stdenv.lib; {
+    description = "Secure UUCP-like store-and-forward exchanging";
+    longDescription = ''
+      This utilities are intended to help build up small size (dozens of
+      nodes) ad-hoc friend-to-friend (F2F) statically routed darknet
+      delay-tolerant networks for fire-and-forget secure reliable files,
+      file requests, Internet mail and commands transmission. All
+      packets are integrity checked, end-to-end encrypted, explicitly
+      authenticated by known participants public keys. Onion encryption
+      is applied to relayed packets. Each node acts both as a client and
+      server, can use push and poll behaviour model.
+
+      Out-of-box offline sneakernet/floppynet, dead drops, sequential
+      and append-only CD-ROM/tape storages, air-gapped computers
+      support. But online TCP daemon with full-duplex resumable data
+      transmission exists.
+    '';
+    homepage = "http://www.nncpgo.org/";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = [ maintainers.woffs ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/noti/default.nix b/nixpkgs/pkgs/tools/misc/noti/default.nix
index ac06b44055c1..883e353b0b0b 100644
--- a/nixpkgs/pkgs/tools/misc/noti/default.nix
+++ b/nixpkgs/pkgs/tools/misc/noti/default.nix
@@ -3,13 +3,13 @@
 
 buildGoPackage rec {
   pname = "noti";
-  version = "3.4.0";
+  version = "3.5.0";
 
   src = fetchFromGitHub {
     owner = "variadico";
     repo = "noti";
     rev = version;
-    sha256 = "0bcwfyd93fx0rzjc9jgg4pvvqbpxwizr044yqqa5rx70gaasz7qa";
+    sha256 = "12r9wawwl6x0rfv1kahwkamfa0pjq24z60az9pn9nsi2z1rrlwkd";
   };
 
   buildInputs = lib.optional stdenv.isDarwin Cocoa;
@@ -35,6 +35,5 @@ buildGoPackage rec {
     homepage = "https://github.com/variadico/noti";
     license = licenses.mit;
     maintainers = with maintainers; [ stites marsam ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/ntfy/default.nix b/nixpkgs/pkgs/tools/misc/ntfy/default.nix
index a3cf6ad07d5b..593a8cfc637d 100644
--- a/nixpkgs/pkgs/tools/misc/ntfy/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ntfy/default.nix
@@ -1,6 +1,6 @@
-{ stdenv, pythonPackages, fetchFromGitHub }:
+{ stdenv, python3Packages, fetchFromGitHub }:
 
-pythonPackages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   pname = "ntfy";
   version = "2.7.0";
 
@@ -11,11 +11,11 @@ pythonPackages.buildPythonApplication rec {
     sha256 = "09f02cn4i1l2aksb3azwfb70axqhn7d0d0vl2r6640hqr74nc1cv";
   };
 
-  checkInputs = with pythonPackages; [
+  checkInputs = with python3Packages; [
     mock
   ];
 
-  propagatedBuildInputs = with pythonPackages; [
+  propagatedBuildInputs = with python3Packages; [
     requests ruamel_yaml appdirs
     sleekxmpp dns
     emoji
@@ -25,7 +25,7 @@ pythonPackages.buildPythonApplication rec {
   ];
 
   checkPhase = ''
-    HOME=$(mktemp -d) ${pythonPackages.python.interpreter} setup.py test
+    HOME=$(mktemp -d) ${python3Packages.python.interpreter} setup.py test
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/tools/misc/opentsdb/default.nix b/nixpkgs/pkgs/tools/misc/opentsdb/default.nix
index 3b9623d5ad0a..5429ecea2c65 100644
--- a/nixpkgs/pkgs/tools/misc/opentsdb/default.nix
+++ b/nixpkgs/pkgs/tools/misc/opentsdb/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, autoconf, automake, curl, fetchurl, jdk, jre, makeWrapper, nettools
+{ stdenv, autoconf, automake, curl, fetchurl, jdk8, makeWrapper, nettools
 , python, git
 }:
 
-with stdenv.lib;
+let jdk = jdk8; jre = jdk8.jre; in
 
 stdenv.mkDerivation rec {
   pname = "opentsdb";
diff --git a/nixpkgs/pkgs/tools/misc/oppai-ng/default.nix b/nixpkgs/pkgs/tools/misc/oppai-ng/default.nix
index 46b2fd444ec4..e44999d1c348 100644
--- a/nixpkgs/pkgs/tools/misc/oppai-ng/default.nix
+++ b/nixpkgs/pkgs/tools/misc/oppai-ng/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "oppai-ng";
-  version = "3.2.3";
+  version = "3.3.0";
 
   src = fetchFromGitHub {
     owner = "Francesco149";
     repo = pname;
     rev = version;
-    sha256 = "1wrnpnx1yl0pdzmla4knlpcwy7baamy2wpdypnbdqxrn0zkw7kzk";
+    sha256 = "0ymprwyv92pr58851wzryymhfznnpwcbg4m1yri0c9cyzvabwmfk";
   };
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/tools/misc/osm2pgsql/default.nix b/nixpkgs/pkgs/tools/misc/osm2pgsql/default.nix
index 6137abd92939..ebe99eca8cf9 100644
--- a/nixpkgs/pkgs/tools/misc/osm2pgsql/default.nix
+++ b/nixpkgs/pkgs/tools/misc/osm2pgsql/default.nix
@@ -1,24 +1,38 @@
-{ stdenv, fetchFromGitHub, cmake, expat, proj, bzip2, zlib, boost, postgresql
-, withLuaJIT ? false, lua, luajit }:
+{ stdenv
+, fetchFromGitHub
+, cmake
+, expat
+, proj
+, bzip2
+, zlib
+, boost
+, postgresql
+, withLuaJIT ? false
+, lua
+, luajit
+, libosmium
+, protozero
+}:
 
 stdenv.mkDerivation rec {
   pname = "osm2pgsql";
-  version = "1.2.1";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "openstreetmap";
     repo = pname;
     rev = version;
-    sha256 = "1ysan01lpqzjxlq3y2kdminfjs5d9zksicpf9vvzpdk3fzq51fc9";
+    sha256 = "1dsyhcifixmcw05qxjald02pml0zfdij81pgy9yh8p00v0rqq57x";
   };
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [ expat proj bzip2 zlib boost postgresql ]
+  buildInputs = [ expat proj bzip2 zlib boost postgresql libosmium protozero ]
     ++ stdenv.lib.optional withLuaJIT luajit
     ++ stdenv.lib.optional (!withLuaJIT) lua;
 
-  cmakeFlags = stdenv.lib.optional withLuaJIT "-DWITH_LUAJIT:BOOL=ON";
+  cmakeFlags = [ "-DEXTERNAL_LIBOSMIUM=ON" "-DEXTERNAL_PROTOZERO=ON" ]
+    ++ stdenv.lib.optional withLuaJIT "-DWITH_LUAJIT:BOOL=ON";
 
   NIX_CFLAGS_COMPILE = "-DACCEPT_USE_OF_DEPRECATED_PROJ_API_H";
 
@@ -27,6 +41,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/openstreetmap/osm2pgsql";
     license = licenses.gpl2;
     platforms = with platforms; linux ++ darwin;
-    maintainers = with maintainers; [ jglukasik ];
+    maintainers = with maintainers; [ jglukasik das-g ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/ostree/default.nix b/nixpkgs/pkgs/tools/misc/ostree/default.nix
index 24a104dc9743..fd1bfc7f8c79 100644
--- a/nixpkgs/pkgs/tools/misc/ostree/default.nix
+++ b/nixpkgs/pkgs/tools/misc/ostree/default.nix
@@ -2,7 +2,7 @@
 , fetchurl
 , fetchpatch
 , substituteAll
-, pkgconfig
+, pkg-config
 , gtk-doc
 , gobject-introspection
 , gjs
@@ -21,13 +21,15 @@
 , fuse
 , utillinuxMinimal
 , libselinux
+, libsodium
 , libarchive
 , libcap
 , bzip2
 , yacc
 , libxslt
-, docbook_xsl
+, docbook-xsl-nons
 , docbook_xml_dtd_42
+, openssl
 , python3
 }:
 
@@ -37,13 +39,13 @@ let
   ]));
 in stdenv.mkDerivation rec {
   pname = "ostree";
-  version = "2020.3";
+  version = "2020.5";
 
   outputs = [ "out" "dev" "man" "installedTests" ];
 
   src = fetchurl {
     url = "https://github.com/ostreedev/ostree/releases/download/v${version}/libostree-${version}.tar.xz";
-    sha256 = "01cch4as23xspq6pck59al7x5jj60wl21g8p3iqbdxcjl1p3jxsq";
+    sha256 = "1k92177hjalbdpmg45ymwwrni68vh9rs5x9zvy5fzl9lng12fgpb";
   };
 
   patches = [
@@ -59,6 +61,7 @@ in stdenv.mkDerivation rec {
     (substituteAll {
       src = ./fix-test-paths.patch;
       python3 = testPython.interpreter;
+      openssl = "${openssl}/bin/openssl";
     })
   ];
 
@@ -66,14 +69,14 @@ in stdenv.mkDerivation rec {
     autoconf
     automake
     libtool
-    pkgconfig
+    pkg-config
     gtk-doc
     gobject-introspection
     which
     makeWrapper
     yacc
     libxslt
-    docbook_xsl
+    docbook-xsl-nons
     docbook_xml_dtd_42
   ];
 
@@ -85,6 +88,7 @@ in stdenv.mkDerivation rec {
     gpgme
     fuse
     libselinux
+    libsodium
     libcap
     libarchive
     bzip2
@@ -96,16 +100,13 @@ in stdenv.mkDerivation rec {
     gjs
   ];
 
-  preConfigure = ''
-    env NOCONFIGURE=1 ./autogen.sh
-  '';
-
   enableParallelBuilding = true;
 
   configureFlags = [
     "--with-systemdsystemunitdir=${placeholder "out"}/lib/systemd/system"
     "--with-systemdsystemgeneratordir=${placeholder "out"}/lib/systemd/system-generators"
     "--enable-installed-tests"
+    "--with-ed25519-libsodium"
   ];
 
   makeFlags = [
@@ -113,6 +114,10 @@ in stdenv.mkDerivation rec {
     "installed_test_metadir=${placeholder "installedTests"}/share/installed-tests/libostree"
   ];
 
+  preConfigure = ''
+    env NOCONFIGURE=1 ./autogen.sh
+  '';
+
   postFixup = let
     typelibPath = stdenv.lib.makeSearchPath "/lib/girepository-1.0" [
       (placeholder "out")
diff --git a/nixpkgs/pkgs/tools/misc/ostree/fix-test-paths.patch b/nixpkgs/pkgs/tools/misc/ostree/fix-test-paths.patch
index cf94b33f31c9..3e5b7e06999e 100644
--- a/nixpkgs/pkgs/tools/misc/ostree/fix-test-paths.patch
+++ b/nixpkgs/pkgs/tools/misc/ostree/fix-test-paths.patch
@@ -1,3 +1,32 @@
+diff --git a/tests/libtest.sh b/tests/libtest.sh
+index ca457fa2..c0a529ff 100755
+--- a/tests/libtest.sh
++++ b/tests/libtest.sh
+@@ -709,12 +709,12 @@ gen_ed25519_keys ()
+ {
+   # Generate private key in PEM format
+   pemfile="$(mktemp -p ${test_tmpdir} ed25519_XXXXXX.pem)"
+-  openssl genpkey -algorithm ed25519 -outform PEM -out "${pemfile}"
++  @openssl@ genpkey -algorithm ed25519 -outform PEM -out "${pemfile}"
+ 
+   # Based on: http://openssl.6102.n7.nabble.com/ed25519-key-generation-td73907.html
+   # Extract the private and public parts from generated key.
+-  ED25519PUBLIC="$(openssl pkey -outform DER -pubout -in ${pemfile} | tail -c 32 | base64)"
+-  ED25519SEED="$(openssl pkey -outform DER -in ${pemfile} | tail -c 32 | base64)"
++  ED25519PUBLIC="$(@openssl@ pkey -outform DER -pubout -in ${pemfile} | tail -c 32 | base64)"
++  ED25519SEED="$(@openssl@ pkey -outform DER -in ${pemfile} | tail -c 32 | base64)"
+   # Secret key is concantination of SEED and PUBLIC
+   ED25519SECRET="$(echo ${ED25519SEED}${ED25519PUBLIC} | base64 -d | base64 -w 0)"
+ 
+@@ -725,7 +725,7 @@ gen_ed25519_keys ()
+ 
+ gen_ed25519_random_public()
+ {
+-  openssl genpkey -algorithm ED25519 | openssl pkey -outform DER | tail -c 32 | base64
++  @openssl@ genpkey -algorithm ED25519 | @openssl@ pkey -outform DER | tail -c 32 | base64
+ }
+ 
+ is_bare_user_only_repo () {
 diff --git a/tests/test-basic-user-only.sh b/tests/test-basic-user-only.sh
 index f65094fd..105be893 100755
 --- a/tests/test-basic-user-only.sh
diff --git a/nixpkgs/pkgs/tools/misc/otfcc/default.nix b/nixpkgs/pkgs/tools/misc/otfcc/default.nix
index c3ca53616f78..dc7e3effe0a1 100644
--- a/nixpkgs/pkgs/tools/misc/otfcc/default.nix
+++ b/nixpkgs/pkgs/tools/misc/otfcc/default.nix
@@ -13,16 +13,16 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ premake5 ];
 
-  # Don’t guess where our makefiles will end up. Just use current
-  # directory.
-  patchPhase = ''
-    substituteInPlace premake5.lua \
-      --replace 'location "build/gmake"' 'location "."'
-  '';
+  patches = [
+    ./fix-aarch64.patch
+    ./move-makefiles.patch
+  ];
+
+  buildFlags = stdenv.lib.optional stdenv.isAarch64 [ "config=release_arm" ];
 
   installPhase = ''
     mkdir -p $out/bin
-    cp bin/release-x*/otfcc* $out/bin/
+    cp bin/release-*/otfcc* $out/bin/
   '';
 
   enableParallelBuilding = true;
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
     description = "Optimized OpenType builder and inspector";
     homepage = "https://github.com/caryll/otfcc";
     license = licenses.asl20;
-    platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
+    platforms = [ "aarch64-linux" "i686-linux" "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ jfrankenau ttuegel ];
   };
 
diff --git a/nixpkgs/pkgs/tools/misc/otfcc/fix-aarch64.patch b/nixpkgs/pkgs/tools/misc/otfcc/fix-aarch64.patch
new file mode 100644
index 000000000000..80fcb625658f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/otfcc/fix-aarch64.patch
@@ -0,0 +1,22 @@
+diff --git a/premake5.lua b/premake5.lua
+index 997fd79..54a20a0 100644
+--- a/premake5.lua
++++ b/premake5.lua
+@@ -49,7 +49,7 @@ end
+ workspace "otfcc"
+ 	configurations { "release", "debug" }
+ 	
+-	platforms { "x64", "x86" }
++	platforms { "x64", "x86", "arm" }
+ 	filter "action:xcode4"
+ 		platforms { "x64" }
+ 	filter {}
+@@ -67,6 +67,8 @@ workspace "otfcc"
+ 		architecture "x86"
+ 	filter "platforms:x64"
+ 		architecture "x64"
++	filter "platforms:arm"
++		architecture "arm"
+ 	filter {}
+ 	
+ 	filter "action:vs2017"
diff --git a/nixpkgs/pkgs/tools/misc/otfcc/move-makefiles.patch b/nixpkgs/pkgs/tools/misc/otfcc/move-makefiles.patch
new file mode 100644
index 000000000000..961c47b3b45a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/otfcc/move-makefiles.patch
@@ -0,0 +1,13 @@
+diff --git a/premake5.lua b/premake5.lua
+index 997fd79..54a20a0 100644
+--- a/premake5.lua
++++ b/premake5.lua
+@@ -88,7 +90,7 @@ workspace "otfcc"
+ 		flags { "StaticRuntime" }
+ 		includedirs { "dep/polyfill-msvc" }
+ 	filter "action:gmake"
+-		location "build/gmake"
++		location "."
+ 	filter "action:xcode4"
+ 		location "build/xcode"
+ 	filter {}
diff --git a/nixpkgs/pkgs/tools/misc/page/default.nix b/nixpkgs/pkgs/tools/misc/page/default.nix
index 07109515c5c3..c93084a16d7e 100644
--- a/nixpkgs/pkgs/tools/misc/page/default.nix
+++ b/nixpkgs/pkgs/tools/misc/page/default.nix
@@ -26,7 +26,6 @@ rustPlatform.buildRustPackage rec {
     description = "Use neovim as pager";
     homepage = "https://github.com/I60R/page";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = [ maintainers.s1341 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/pandoc-plantuml-filter/default.nix b/nixpkgs/pkgs/tools/misc/pandoc-plantuml-filter/default.nix
new file mode 100644
index 000000000000..61a0f14d5971
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/pandoc-plantuml-filter/default.nix
@@ -0,0 +1,26 @@
+{ buildPythonApplication
+, fetchPypi
+, pandocfilters
+, lib
+}:
+
+buildPythonApplication rec {
+  pname = "pandoc-plantuml-filter";
+  version = "0.1.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "08673mfwxsw6s52mgglbdz7ybb68svqyr3s9w97d7rifbwvvc9ia";
+  };
+
+  propagatedBuildInputs = [
+    pandocfilters
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/timofurrer/pandoc-plantuml-filter";
+    description = "Pandoc filter which converts PlantUML code blocks to PlantUML images.";
+    license = licenses.mit;
+    maintainers = with maintainers; [ cmcdragonkai ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/parallel/default.nix b/nixpkgs/pkgs/tools/misc/parallel/default.nix
index 059b43baec39..e99f2aa12d5f 100644
--- a/nixpkgs/pkgs/tools/misc/parallel/default.nix
+++ b/nixpkgs/pkgs/tools/misc/parallel/default.nix
@@ -1,11 +1,11 @@
 { fetchurl, stdenv, perl, makeWrapper, procps }:
 
 stdenv.mkDerivation rec {
-  name = "parallel-20200522";
+  name = "parallel-20200822";
 
   src = fetchurl {
     url = "mirror://gnu/parallel/${name}.tar.bz2";
-    sha256 = "10is46v5dpccxibby0zikg1q68mdwpmgdpxk796zka93idd6id29";
+    sha256 = "02dy46g6f05p7s2qs8h6yg20p1zl3flxxf77n5jw74l3h1m24m4n";
   };
 
   outputs = [ "out" "man" ];
diff --git a/nixpkgs/pkgs/tools/misc/pg_flame/default.nix b/nixpkgs/pkgs/tools/misc/pg_flame/default.nix
index 6fe2e814fa4d..b8345210e599 100644
--- a/nixpkgs/pkgs/tools/misc/pg_flame/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pg_flame/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "1rkx20winh66y2m7i7q13jpr83044i2d1pfd5p5l5kkpsix5mra5";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Flamegraph generator for Postgres EXPLAIN ANALYZE output";
     homepage = "https://github.com/mgartner/pg_flame";
     license = licenses.asl20;
     maintainers = with maintainers; [ filalex77 ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/misc/pgcenter/default.nix b/nixpkgs/pkgs/tools/misc/pgcenter/default.nix
index 89f1e606e63f..a84ad1fadb08 100644
--- a/nixpkgs/pkgs/tools/misc/pgcenter/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pgcenter/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "1mzvpr12qh9668iz97p62zl4zhlrcyfgwr4a9zg9irj585pkb5x2";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage = "https://pgcenter.org/";
     description = "Command-line admin tool for observing and troubleshooting PostgreSQL";
     license = licenses.bsd3;
     maintainers = [ maintainers.marsam ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/misc/pgmetrics/default.nix b/nixpkgs/pkgs/tools/misc/pgmetrics/default.nix
index da2e1a9cbe31..726c9526224f 100644
--- a/nixpkgs/pkgs/tools/misc/pgmetrics/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pgmetrics/default.nix
@@ -2,17 +2,19 @@
 
 buildGoModule rec {
   pname = "pgmetrics";
-  version = "1.9.1";
+  version = "1.9.3";
 
   src = fetchFromGitHub {
     owner  = "rapidloop";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "03c4v24ql9p38m0hmgq5ya9cnvhmdhv2zjxxrxpb2338cxajs4mh";
+    sha256 = "1g0kdvc93ij155r3g7cd9f5p1x33vdi9p40403waanq5wiavjnzq";
   };
 
   vendorSha256 = "16x33fmh4q993rw0jr65337yimska4fwgyyw3kmq84q0x28a3zg5";
 
+  doCheck = false;
+
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
   meta = with stdenv.lib; {
@@ -21,4 +23,4 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = [ maintainers.marsam ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix b/nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix
index 83e96d8f9e65..bea73610ddad 100644
--- a/nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix
+++ b/nixpkgs/pkgs/tools/misc/phoronix-test-suite/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "phoronix-test-suite";
-  version = "9.6.1";
+  version = "9.8.0";
 
   src = fetchurl {
     url = "https://phoronix-test-suite.com/releases/${pname}-${version}.tar.gz";
-    sha256 = "1qnci0bipzq68mwfgmm7kcxjxcpfdrqf705am2jsj1mfd82y7yla";
+    sha256 = "05q01cr4a2mmyski50pqna9sgw2jy93fgfpjwkhbkc09na6400sq";
   };
 
   buildInputs = [ php ];
diff --git a/nixpkgs/pkgs/tools/misc/phraseapp-client/default.nix b/nixpkgs/pkgs/tools/misc/phraseapp-client/default.nix
index 35bd84005b5f..8e1787f29a89 100644
--- a/nixpkgs/pkgs/tools/misc/phraseapp-client/default.nix
+++ b/nixpkgs/pkgs/tools/misc/phraseapp-client/default.nix
@@ -21,7 +21,6 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     homepage = "http://docs.phraseapp.com";
     description = "PhraseApp API v2 Command Line Client";
-    platforms = platforms.all;
     license = licenses.mit;
     maintainers = with maintainers; [ manveru ];
   };
diff --git a/nixpkgs/pkgs/tools/misc/pistol/default.nix b/nixpkgs/pkgs/tools/misc/pistol/default.nix
index 5c92b70c0983..dfbe5536bccc 100644
--- a/nixpkgs/pkgs/tools/misc/pistol/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pistol/default.nix
@@ -6,16 +6,18 @@
 
 buildGoModule rec {
   pname = "pistol";
-  version = "0.1.2";
+  version = "0.1.4";
 
   src = fetchFromGitHub {
     owner = "doronbehar";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1ar8c7s8ihcwrwfspmqw7cb5560wkbdc5qyvddkx8lj03cjhcslj";
+    sha256 = "1x9wb0gj5l71xz15ia0i2hrnhcpf457i21w41jzw2ink2fbdxp3b";
   };
 
-  vendorSha256 = "1mhxb72fzpa2n88i9h154aci346dgcs2njznkjxchivz28crbqr8";
+  vendorSha256 = "0dg4f9g6895nv3c6d74ijl6hzsyn620ndspbcq7ynvb1z0hsg6iz";
+
+  doCheck = false;
 
   subPackages = [ "cmd/pistol" ];
 
@@ -23,10 +25,12 @@ buildGoModule rec {
     file
   ];
 
+  buildFlagsArray = [ "-ldflags=-s -w -X main.Version=${version}" ];
+
   meta = with stdenv.lib; {
     description = "General purpose file previewer designed for Ranger, Lf to make scope.sh redundant";
     homepage = "https://github.com/doronbehar/pistol";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/misc/plantuml/default.nix b/nixpkgs/pkgs/tools/misc/plantuml/default.nix
index cb8cf1ec0a8e..8689e6467fb4 100644
--- a/nixpkgs/pkgs/tools/misc/plantuml/default.nix
+++ b/nixpkgs/pkgs/tools/misc/plantuml/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, makeWrapper, jre, graphviz }:
 
 stdenv.mkDerivation rec {
-  version = "1.2020.12";
+  version = "1.2020.16";
   pname = "plantuml";
 
   src = fetchurl {
     url = "mirror://sourceforge/project/plantuml/${version}/plantuml.${version}.jar";
-    sha256 = "0c0270kjw8vg8nphharap2p66yl72j5k4k3s5r9klafgp3sg4sjj";
+    sha256 = "0k9dligb0b2kc8rl9k5wp9sh8z1kb8g97v5pfiiwa321lp8y6wpp";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/misc/powerline-go/default.nix b/nixpkgs/pkgs/tools/misc/powerline-go/default.nix
index 33ab2bbc7297..9ec7c0a32bf1 100644
--- a/nixpkgs/pkgs/tools/misc/powerline-go/default.nix
+++ b/nixpkgs/pkgs/tools/misc/powerline-go/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = "0dkgp9vlb76la0j439w0rb548qg5v8648zryk3rqgfhd4qywlk11";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "A Powerline like prompt for Bash, ZSH and Fish";
     license = licenses.gpl3;
     platforms = platforms.unix;
     maintainers = with maintainers; [ sifmelcara ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/misc/progress/default.nix b/nixpkgs/pkgs/tools/misc/progress/default.nix
index bbde732aadf5..a43101f607d5 100644
--- a/nixpkgs/pkgs/tools/misc/progress/default.nix
+++ b/nixpkgs/pkgs/tools/misc/progress/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "progress";
-  version = "0.14";
+  version = "0.15";
 
   src = fetchFromGitHub {
     owner = "Xfennec";
     repo = "progress";
     rev = "v${version}";
-    sha256 = "1lk2v4b767klib93an4g3f7z5qrv9kdk9jf7545vw1immc4kamrl";
+    sha256 = "1cnb4ixlhshn139mj5sr42k5m6gjjbyqvkn1324c47niwrgp7dqm";
   };
 
   nativeBuildInputs = [ pkgconfig which ];
diff --git a/nixpkgs/pkgs/tools/misc/pspg/default.nix b/nixpkgs/pkgs/tools/misc/pspg/default.nix
index 63acdbfc13b2..4af7a0009af5 100644
--- a/nixpkgs/pkgs/tools/misc/pspg/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pspg/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pspg";
-  version = "3.1.2";
+  version = "3.1.3";
 
   src = fetchFromGitHub {
     owner = "okbob";
     repo = pname;
     rev = version;
-    sha256 = "1x4x93c8qqalrhaah1rmrspr4gjcgf1sg6kplf9rg1c42mk672f8";
+    sha256 = "16pajhzr4aahyhdzkp9g3ld2insnlk2z2w2pfab8bghw4f69j5xf";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/tools/misc/psrecord/default.nix b/nixpkgs/pkgs/tools/misc/psrecord/default.nix
index 7df2b47497f0..728314e6e769 100644
--- a/nixpkgs/pkgs/tools/misc/psrecord/default.nix
+++ b/nixpkgs/pkgs/tools/misc/psrecord/default.nix
@@ -1,11 +1,11 @@
 { lib, buildPythonApplication, fetchPypi, psutil, matplotlib, pytest }:
 buildPythonApplication rec {
   pname = "psrecord";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "151rynca97v5wq1drl2yfrqmqil1km72cizn3159c2ip14626mp6";
+    sha256 = "5d48410e543b71e5dc4677705acc2a753db65814d3ccbdfbca8d5d3a09b053b1";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/misc/pubs/default.nix b/nixpkgs/pkgs/tools/misc/pubs/default.nix
index 96d1a5fc6a06..158b56e2a5d9 100644
--- a/nixpkgs/pkgs/tools/misc/pubs/default.nix
+++ b/nixpkgs/pkgs/tools/misc/pubs/default.nix
@@ -2,34 +2,29 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "pubs";
-  version = "0.8.2";
+  version = "0.8.3";
 
   src = fetchFromGitHub {
     owner = "pubs";
     repo = "pubs";
     rev = "v${version}";
-    sha256 = "16zwdqfbmlla6906g3a57a4nj8wnl11fq78r20qms717bzv211j0";
+    sha256 = "0npgsyxj7kby5laznk5ilkrychs3i68y57gphwk48w8k9fvnl3zc";
   };
 
-  patches = [
-    # Fix for bibtexparser 1.1.0
-    (fetchpatch {
-      url = "https://github.com/pubs/pubs/pull/185/commits/e58ae98b93b8364a07fd5f5f452ba88ad332c948.patch";
-      sha256 = "1n7zrk119v395jj8wqg8wlymc9l9pq3v752yy3kam9kflc0aashp";
-    })
-    # Fix test broken by PyYAML 5.1
-    (fetchpatch {
-      url = "https://github.com/pubs/pubs/pull/194/commits/c3cb713ae76528eeeaaeb948fe319a76ab3934d8.patch";
-      sha256 = "05as418m7wzs65839bb91b2jrs8l68z8ldcjcd9cn4b9fcgsf3rk";
-    })
-  ];
-
   propagatedBuildInputs = with python3Packages; [
-    argcomplete dateutil configobj feedparser bibtexparser pyyaml requests six beautifulsoup4
+    argcomplete dateutil configobj feedparser bibtexparser pyyaml requests six 
+    beautifulsoup4
   ];
 
   checkInputs = with python3Packages; [ pyfakefs mock ddt ];
 
+  # Disabling git tests because they expect git to be preconfigured
+  # with the user's details. See 
+  # https://github.com/NixOS/nixpkgs/issues/94663
+  preCheck = ''
+    rm tests/test_git.py
+    '';
+
   meta = with stdenv.lib; {
     description = "Command-line bibliography manager";
     homepage = "https://github.com/pubs/pubs";
diff --git a/nixpkgs/pkgs/tools/misc/qt5ct/default.nix b/nixpkgs/pkgs/tools/misc/qt5ct/default.nix
index 97793b025577..5b88030849d5 100644
--- a/nixpkgs/pkgs/tools/misc/qt5ct/default.nix
+++ b/nixpkgs/pkgs/tools/misc/qt5ct/default.nix
@@ -4,11 +4,11 @@ let inherit (lib) getDev; in
 
 mkDerivation rec {
   pname = "qt5ct";
-  version = "0.41";
+  version = "1.1";
 
   src = fetchurl {
     url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
-    sha256 = "1p2p6116wg5bc0hcbi2sygwlgk0g9idxpci0qdh3p4lb1plk0h7j";
+    sha256 = "1lnx4wqk87lbr6lqc64w5g5ppjjv75kq2r0q0bz9gfpryzdw8xxg";
   };
 
   nativeBuildInputs = [ qmake qttools ];
diff --git a/nixpkgs/pkgs/tools/misc/rargs/default.nix b/nixpkgs/pkgs/tools/misc/rargs/default.nix
new file mode 100644
index 000000000000..6ebbeb39c6e0
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/rargs/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname   = "rargs";
+  version = "0.3.0";
+
+  src = fetchFromGitHub {
+    owner  = "lotabout";
+    repo   = pname;
+    rev    = "v${version}";
+    sha256 = "188gj05rbivci1z4z29vwdwxlj2w01v5i4avwrxjnj1dd6mmlbxd";
+  };
+
+  cargoSha256 = "0qzkhx0n28f5wy4fral3adn499q3f10q71cd544s4ghqwqn4khc9";
+
+  doCheck=false;  # `rargs`'s test depends on the deprecated `assert_cli` crate, which in turn is not in Nixpkgs
+
+  meta = with stdenv.lib; {
+    description = "xargs + awk with pattern matching support";
+    homepage    = "https://github.com/lolabout/rargs";
+    license     = with licenses; [ mit ];
+    maintainers = with maintainers; [ pblkt ]; 
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/remind/default.nix b/nixpkgs/pkgs/tools/misc/remind/default.nix
index 46f78ddb093f..5c7fa9d4c249 100644
--- a/nixpkgs/pkgs/tools/misc/remind/default.nix
+++ b/nixpkgs/pkgs/tools/misc/remind/default.nix
@@ -14,11 +14,13 @@ let
   tkremindPatch = optionalString tkremind ''
     substituteInPlace scripts/tkremind --replace "exec wish" "exec ${tk}/bin/wish"
   '';
-in stdenv.mkDerivation {
-  name = "remind-3.1.16";
+in stdenv.mkDerivation rec {
+  pname = "remind";
+  version = "03.03.01";
+
   src = fetchurl {
-    url = "https://dianne.skoll.ca/projects/remind/download/remind-03.01.16.tar.gz";
-    sha256 = "14yavwqmimba8rdpwx3wlav9sfb0v5rcd1iyzqrs08wx07a9pdzf";
+    url = "https://dianne.skoll.ca/projects/remind/download/remind-${version}.tar.gz";
+    sha256 = "0y4l960529sl3sn4r4g36qpy3jk5h1x4algjy7an7sfiqb8n98fi";
   };
 
   nativeBuildInputs = optional tkremind makeWrapper;
diff --git a/nixpkgs/pkgs/tools/misc/rmlint/default.nix b/nixpkgs/pkgs/tools/misc/rmlint/default.nix
index 2ea1668409a5..936c78b695d1 100644
--- a/nixpkgs/pkgs/tools/misc/rmlint/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rmlint/default.nix
@@ -1,6 +1,22 @@
-{ stdenv, fetchFromGitHub
-, gettext, pkgconfig, scons
-, glib, json-glib, libelf, sphinx, utillinux }:
+{ stdenv
+, cairo
+, fetchFromGitHub
+, gettext
+, glib
+, gobject-introspection
+, gtksourceview3
+, json-glib
+, libelf
+, makeWrapper
+, pango
+, pkgconfig
+, polkit
+, python3
+, scons
+, sphinx
+, utillinux
+, wrapGAppsHook
+, withGui ? false }:
 
 with stdenv.lib;
 stdenv.mkDerivation rec {
@@ -17,14 +33,39 @@ stdenv.mkDerivation rec {
   CFLAGS="-I${stdenv.lib.getDev utillinux}/include";
 
   nativeBuildInputs = [
-    pkgconfig sphinx gettext scons
+    pkgconfig
+    sphinx
+    gettext
+    scons
+  ] ++ stdenv.lib.optionals withGui [
+    makeWrapper
+    wrapGAppsHook
   ];
 
   buildInputs = [
-    glib json-glib libelf utillinux
+    glib
+    json-glib
+    libelf
+    utillinux
+  ] ++ stdenv.lib.optionals withGui [
+    cairo
+    gobject-introspection
+    gtksourceview3
+    pango
+    polkit
+    python3
+    python3.pkgs.pygobject3
   ];
 
-  prefixKey = "--prefix=";
+  # this doesn't seem to support configureFlags, and appends $out afterwards,
+  # so add the --without-gui in front of it
+  prefixKey = stdenv.lib.optionalString (!withGui) " --without-gui " + "--prefix=";
+
+  # in GUI mode, this shells out to itself, and tries to import python modules
+  postInstall = stdenv.lib.optionalString withGui ''
+    gappsWrapperArgs+=(--prefix PATH : "$out/bin")
+    gappsWrapperArgs+=(--prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${python3.pkgs.pygobject3}):$(toPythonPath ${python3.pkgs.pycairo})")
+  '';
 
   meta = {
     description = "Extremely fast tool to remove duplicates and other lint from your filesystem";
diff --git a/nixpkgs/pkgs/tools/misc/rockbox-utility/default.nix b/nixpkgs/pkgs/tools/misc/rockbox-utility/default.nix
index 995a8b5eb156..6be32e214784 100644
--- a/nixpkgs/pkgs/tools/misc/rockbox-utility/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rockbox-utility/default.nix
@@ -1,19 +1,20 @@
-{ stdenv, fetchurl, pkgconfig, libusb1
-, qtbase, qttools, makeWrapper, qmake
-, withEspeak ? false, espeak ? null, qt5 }:
+{ stdenv, fetchurl, pkgconfig, cryptopp
+, libusb1, qtbase, qttools, makeWrapper
+, qmake, withEspeak ? false, espeak ? null
+, qt5 }:
 
 let inherit (stdenv.lib) getDev; in
 
 stdenv.mkDerivation  rec {
   pname = "rockbox-utility";
-  version = "1.4.0";
+  version = "1.4.1";
 
   src = fetchurl {
     url = "https://download.rockbox.org/rbutil/source/RockboxUtility-v${version}-src.tar.bz2";
-    sha256 = "0k3ycga3b0jnj13whwiip2l0gx32l50pnbh7kfima87nq65aaa5w";
+    sha256 = "0zm9f01a810y7aq0nravbsl0vs9vargwvxnfl4iz9qsqygwlj69y";
   };
 
-  buildInputs = [ libusb1 qtbase qttools ]
+  buildInputs = [ cryptopp libusb1 qtbase qttools ]
     ++ stdenv.lib.optional withEspeak espeak;
   nativeBuildInputs = [ makeWrapper pkgconfig qmake qt5.wrapQtAppsHook ];
 
@@ -24,6 +25,7 @@ stdenv.mkDerivation  rec {
 
   preConfigure = ''
     cd rbutil/rbutilqt
+    lrelease rbutilqt.pro
   '';
 
   installPhase = ''
diff --git a/nixpkgs/pkgs/tools/misc/routino/default.nix b/nixpkgs/pkgs/tools/misc/routino/default.nix
index aad63b66ec47..8d9487344608 100644
--- a/nixpkgs/pkgs/tools/misc/routino/default.nix
+++ b/nixpkgs/pkgs/tools/misc/routino/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl, zlib, bzip2 }:
+{ stdenv, fetchurl, fetchpatch, perl, zlib, bzip2 }:
 
 stdenv.mkDerivation rec {
   pname = "routino";
@@ -9,12 +9,26 @@ stdenv.mkDerivation rec {
     sha256 = "1ccx3s99j8syxc1gqkzsaqkmyf44l7h3adildnc5iq2md7bp8wab";
   };
 
+  patchFlags = [ "-p0" ];
+  patches = stdenv.lib.optionals stdenv.isDarwin [
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/macports/macports-ports/18fd229516a46e7272003acbe555735b2a902db7/gis/routino/files/patch-Makefile_conf.diff";
+      sha256 = "1b7hpa4sizansnwwxq1c031nxwdwh71pg08jl9z9apiab8pjsn53";
+    })
+    (fetchpatch {
+      url = "https://raw.githubusercontent.com/macports/macports-ports/18fd229516a46e7272003acbe555735b2a902db7/gis/routino/files/patch-src_Makefile_dylib_extension.diff";
+      sha256 = "1kigxcfr7977baxdsfvrw6q453cpqlzqakhj7av2agxkcvwyilpv";
+    })
+  ];
+
   nativeBuildInputs = [ perl ];
 
   buildInputs = [ zlib bzip2 ];
 
   outputs = [ "out" "doc" ];
 
+  CLANG = stdenv.lib.optionalString stdenv.cc.isClang "1";
+
   makeFlags = [ "prefix=$(out)" ];
 
   meta = with stdenv.lib; {
@@ -22,6 +36,6 @@ stdenv.mkDerivation rec {
     description = "OpenStreetMap Routing Software";
     license = licenses.agpl3;
     maintainers = with maintainers; [ dotlambda ];
-    platforms = with platforms; linux;
+    platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix b/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix
index 41e59162905a..456798d816f1 100644
--- a/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix
+++ b/nixpkgs/pkgs/tools/misc/rpm-ostree/default.nix
@@ -32,7 +32,7 @@
 , python
 , json_c
 , zchunk
-, libmodulemd_1
+, libmodulemd
 , utillinux
 , sqlite
 , cppunit
@@ -40,13 +40,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rpm-ostree";
-  version = "2020.1";
+  version = "2020.5";
 
   outputs = [ "out" "dev" "man" "devdoc" ];
 
   src = fetchurl {
     url = "https://github.com/coreos/${pname}/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "1xgfppq4fqqvg3cs327bckjpiz6rrn3bbbhg3q5p4j2bzsq89xiz";
+    sha256 = "MLLCmnStvGuSbVBdfOm2Sdzzz7LvPQkgDt9G0CDqCkA=";
   };
 
   nativeBuildInputs = [
@@ -88,7 +88,7 @@ stdenv.mkDerivation rec {
     # required by vendored libdnf
     json_c
     zchunk
-    libmodulemd_1
+    libmodulemd
     utillinux # for smartcols.pc
     sqlite
     cppunit
diff --git a/nixpkgs/pkgs/tools/misc/sd-mux-ctrl/default.nix b/nixpkgs/pkgs/tools/misc/sd-mux-ctrl/default.nix
new file mode 100644
index 000000000000..b87a83fcdf94
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/sd-mux-ctrl/default.nix
@@ -0,0 +1,28 @@
+{ stdenv, fetchgit, cmake, pkgconfig, libftdi1, popt}:
+
+stdenv.mkDerivation rec {
+  pname = "sd-mux-ctrl-unstable";
+  version = "2020-02-17";
+
+  src = fetchgit {
+    url = "https://git.tizen.org/cgit/tools/testlab/sd-mux";
+    rev = "9dd189d973da64e033a0c5c2adb3d94b23153d94";
+    sha256 = "0fxl8m1zkkyxkc2zi8930m0njfgnd04a22acny6vljnzag2shjvg";
+  };
+
+  nativeBuildInputs = [ cmake pkgconfig ];
+
+  buildInputs = [ libftdi1 popt ];
+
+  postInstall = ''
+    install -D -m 644 ../doc/man/sd-mux-ctrl.1 $out/share/man/man1/sd-mux-ctrl.1
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Tool for controlling multiple sd-mux devices";
+    homepage = "https://wiki.tizen.org/SD_MUX";
+    license = licenses.asl20;
+    maintainers =  with maintainers; [ sarcasticadmin ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/shell-hist/default.nix b/nixpkgs/pkgs/tools/misc/shell-hist/default.nix
index fd30d0370d80..c4c496b978f4 100644
--- a/nixpkgs/pkgs/tools/misc/shell-hist/default.nix
+++ b/nixpkgs/pkgs/tools/misc/shell-hist/default.nix
@@ -18,6 +18,5 @@ rustPlatform.buildRustPackage {
     homepage = "https://github.com/jamesmunns/shell-hist";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = [ maintainers.spacekookie ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/silicon/default.nix b/nixpkgs/pkgs/tools/misc/silicon/default.nix
index 3fa6551534f0..99de1c3d1756 100644
--- a/nixpkgs/pkgs/tools/misc/silicon/default.nix
+++ b/nixpkgs/pkgs/tools/misc/silicon/default.nix
@@ -41,6 +41,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Aloxaf/silicon";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ evanjs ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/skim/default.nix b/nixpkgs/pkgs/tools/misc/skim/default.nix
index fca2d35e37cc..e89cf366136a 100644
--- a/nixpkgs/pkgs/tools/misc/skim/default.nix
+++ b/nixpkgs/pkgs/tools/misc/skim/default.nix
@@ -1,27 +1,19 @@
-{ stdenv, fetchFromGitHub, rustPlatform, fetchpatch }:
+{ stdenv, fetchFromGitHub, rustPlatform }:
 
 rustPlatform.buildRustPackage rec {
   pname = "skim";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "lotabout";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0xjb8slrlkrzdqvzmf63lq6rgggrjw3hf9an6h8xf6vizz1vfni0";
+    sha256 = "0paxrf03rqzahbpr4gnsj62vl09vcxvw248n9wzhjq14dqlwcr9w";
   };
 
   outputs = [ "out" "vim" ];
 
-  cargoSha256 = "14p4ppbl2mak21jvxpbd1b28jaw2629bc8kv7875cdzy3ksxyji3";
-
-  patches = [
-    # Fix bash completion. Remove with the next release
-    (fetchpatch {
-      url = "https://github.com/lotabout/skim/commit/60ca3484090c2e73a1de396500c73a6ad6e0bde9.patch";
-      sha256 = "07nibr13vmxscbwavrckhcbsvxwkpan4a6ml0qfr1ny36xbc6y3p";
-    })
-  ];
+  cargoSha256 = "0rxxdad60fpwkb4wx5407ihd89wqpf2ldcnp7nsx17xh4brp1l9r";
 
   postPatch = ''
     sed -i -e "s|expand('<sfile>:h:h')|'$out'|" plugin/skim.vim
@@ -47,6 +39,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/lotabout/skim";
     license = licenses.mit;
     maintainers = with maintainers; [ dywedir ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/snapper/default.nix b/nixpkgs/pkgs/tools/misc/snapper/default.nix
index eed9516d0960..ab4aad485567 100644
--- a/nixpkgs/pkgs/tools/misc/snapper/default.nix
+++ b/nixpkgs/pkgs/tools/misc/snapper/default.nix
@@ -1,17 +1,17 @@
 { stdenv, fetchFromGitHub
 , autoreconfHook, pkgconfig, docbook_xsl, libxslt, docbook_xml_dtd_45
 , acl, attr, boost, btrfs-progs, dbus, diffutils, e2fsprogs, libxml2
-, lvm2, pam, python, utillinux, fetchpatch, json_c }:
+, lvm2, pam, python, utillinux, fetchpatch, json_c, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "snapper";
-  version = "0.8.9";
+  version = "0.8.12";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "snapper";
     rev = "v${version}";
-    sha256 = "1flqhfpx9dipim22wq7wh1590ra4gydwii1jjp99pi03mdhavlbn";
+    sha256 = "0vkzncgyf1l2wcr5qd615qbd0hmclfrblg38mx52m707z3wyv88v";
   };
 
   nativeBuildInputs = [
@@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
     lvm2 pam python utillinux json_c
   ];
 
+  passthru.tests.snapper = nixosTests.snapper;
+
   patches = [
     # Don't use etc/dbus-1/system.d
     (fetchpatch {
diff --git a/nixpkgs/pkgs/tools/misc/somafm-cli/default.nix b/nixpkgs/pkgs/tools/misc/somafm-cli/default.nix
new file mode 100644
index 000000000000..312b402ae66d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/somafm-cli/default.nix
@@ -0,0 +1,33 @@
+{ stdenv
+, fetchFromGitHub
+, makeWrapper
+, curl
+, jq
+, mpv
+}:
+
+stdenv.mkDerivation rec {
+  pname = "somafm-cli";
+  version = "0.3.1";
+
+  src = fetchFromGitHub {
+    owner = "rockymadden";
+    repo = "somafm-cli";
+    rev = "v${version}";
+    sha256 = "1h5p9qsczgfr450sklh2vkllcpzb7nicbs8ciyvkavh3d7hds0yy";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    install -m0755 -D src/somafm $out/bin/somafm
+    wrapProgram $out/bin/somafm --prefix PATH ":" "${stdenv.lib.makeBinPath [ curl jq mpv ]}";
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Listen to SomaFM in your terminal via pure bash";
+    homepage = "https://github.com/rockymadden/somafm-cli";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/spigot/default.nix b/nixpkgs/pkgs/tools/misc/spigot/default.nix
new file mode 100644
index 000000000000..fbed27a24478
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/spigot/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, stdenv
+, buildPackages
+, fetchgit
+, autoreconfHook
+, gmp
+, ncurses
+, halibut
+, perl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "spigot";
+  version = "20200101";
+  src = fetchgit {
+    url = "https://git.tartarus.org/simon/spigot.git";
+    rev = "b1b0b202b3523b72f0638fb31fd49c47f4abb39c";
+    sha256 = "0lh5v42aia1hvhsqzs515q0anrjc6c2s9bjklfaap5gz0cg59wbv";
+  };
+
+  nativeBuildInputs = [ autoreconfHook halibut perl ];
+
+  configureFlags = [ "--with-gmp" ];
+
+  buildInputs = [ gmp ncurses ];
+
+  strictDeps = true;
+
+  meta = with lib; {
+    description = "A command-line exact real calculator";
+    homepage = "https://www.chiark.greenend.org.uk/~sgtatham/spigot/";
+    license = stdenv.lib.licenses.mit;
+    platforms = stdenv.lib.platforms.all;
+    maintainers = with maintainers; [ mcbeth ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/misc/starship/default.nix b/nixpkgs/pkgs/tools/misc/starship/default.nix
index 3fec20f95bb6..a170eef35fb2 100644
--- a/nixpkgs/pkgs/tools/misc/starship/default.nix
+++ b/nixpkgs/pkgs/tools/misc/starship/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl
+{ stdenv, fetchFromGitHub, rustPlatform, pkg-config, openssl, installShellFiles
 , libiconv, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "0.42.0";
+  version = "0.44.0";
 
   src = fetchFromGitHub {
     owner = "starship";
     repo = pname;
     rev = "v${version}";
-    sha256 = "17wc9f07308a97dsmrkq74w2r639sqms0hwh8gavwxycj7wq7xz2";
+    sha256 = "1pxrg5sfqqkvqww3fabq64j1fg03v5fj5yvm2xg2qa5n2f2qwnhi";
   };
 
-  nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
+  nativeBuildInputs = [ installShellFiles ] ++ stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
 
   buildInputs = stdenv.lib.optionals stdenv.isLinux [ openssl ]
     ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
@@ -22,14 +22,28 @@ rustPlatform.buildRustPackage rec {
       --replace "/bin/echo" "echo"
   '';
 
-  cargoSha256 = "1nvs68qxygi2l43vxw890r40px35dvzbcg6qmrm09g60ykd8pjv2";
-  checkPhase = "cargo test -- --skip directory::home_directory --skip directory::directory_in_root";
+  postInstall = ''
+    for shell in bash fish zsh; do
+      $out/bin/starship completions $shell > starship.$shell
+      installShellCompletion starship.$shell
+    done
+  '';
+
+  cargoSha256 = "1b5gsw7jpiqjc7kbwf2kp6h6ks7jcgygrwzvn2akz86z40sskyg3";
+
+  preCheck = ''
+    substituteInPlace tests/testsuite/common.rs \
+      --replace "./target/debug/starship" "./$releaseDir/starship"
+    substituteInPlace tests/testsuite/python.rs \
+      --replace "#[test]" "#[test] #[ignore]"
+  '';
+
+  checkFlagsArray = [ "--skip=directory::home_directory" "--skip=directory::directory_in_root" ];
 
   meta = with stdenv.lib; {
     description = "A minimal, blazing fast, and extremely customizable prompt for any shell";
     homepage = "https://starship.rs";
     license = licenses.isc;
-    maintainers = with maintainers; [ bbigras davidtwco filalex77 Frostman ];
-    platforms = platforms.all;
+    maintainers = with maintainers; [ bbigras davidtwco filalex77 Frostman marsam ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/staruml/default.nix b/nixpkgs/pkgs/tools/misc/staruml/default.nix
index a1e6f57ce3d8..90c3c696526d 100644
--- a/nixpkgs/pkgs/tools/misc/staruml/default.nix
+++ b/nixpkgs/pkgs/tools/misc/staruml/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, makeWrapper
+{ stdenv, lib, fetchurl, makeWrapper
 , dpkg, patchelf
 , gtk2, glib, gdk-pixbuf, alsaLib, nss, nspr, GConf, cups, libgcrypt, dbus, systemd
 , libXdamage, expat }:
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
 
     mkdir -p $out/lib
     ln -s ${stdenv.cc.cc.lib}/lib/libstdc++.so.6 $out/lib/
-    ln -s ${systemd.lib}/lib/libudev.so.1 $out/lib/libudev.so.0
+    ln -s ${lib.getLib systemd}/lib/libudev.so.1 $out/lib/libudev.so.0
 
     for binary in StarUML Brackets-node; do
       ${patchelf}/bin/patchelf \
diff --git a/nixpkgs/pkgs/tools/misc/systrayhelper/default.nix b/nixpkgs/pkgs/tools/misc/systrayhelper/default.nix
index dd48156d4564..8433866928a0 100644
--- a/nixpkgs/pkgs/tools/misc/systrayhelper/default.nix
+++ b/nixpkgs/pkgs/tools/misc/systrayhelper/default.nix
@@ -14,8 +14,6 @@ buildGoPackage rec {
     sha256 = "1iq643brha5q6w2v1hz5l3d1z0pqzqr43gpwih4cnx3m5br0wg2k";
   };
 
-  goDeps = ./deps.nix;
-
   # re date: https://github.com/NixOS/nixpkgs/pull/45997#issuecomment-418186178
   # > .. keep the derivation deterministic. Otherwise, we would have to rebuild it every time.
   buildFlagsArray = [ ''-ldflags=
@@ -36,6 +34,5 @@ buildGoPackage rec {
     license     = licenses.mit;
     # It depends on the inputs, i guess? not sure about solaris, for instance. go supports it though
     # I hope nix can figure this out?! ¯\\_(ツ)_/¯
-    platforms   = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/systrayhelper/deps.nix b/nixpkgs/pkgs/tools/misc/systrayhelper/deps.nix
deleted file mode 100644
index 93c984337e6b..000000000000
--- a/nixpkgs/pkgs/tools/misc/systrayhelper/deps.nix
+++ /dev/null
@@ -1,102 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
-  {
-    goPackagePath  = "github.com/getlantern/context";
-    fetch = {
-      type = "git";
-      url = "https://github.com/getlantern/context";
-      rev =  "624d99b1798d7c5375ea1d3ca4c5b04d58f7c775";
-      sha256 = "09yf9x6478a5z01hybr98zwa8ax3fx7l6wwsvdkxp3fdg9dqm13b";
-    };
-  }
-  {
-    goPackagePath  = "github.com/getlantern/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/getlantern/errors";
-      rev =  "e24b7f4ff7c70be59bbefca6b7695d68cda8b399";
-      sha256 = "1wshagslgl3r07gniq0g55cqgi1j1gk0yrri5ywjz7wm8da42qcr";
-    };
-  }
-  {
-    goPackagePath  = "github.com/getlantern/golog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/getlantern/golog";
-      rev =  "cca714f7feb5df8e455f409b549d384441ac4578";
-      sha256 = "0gnf30n38zkx356cqc6jdv1kbzy59ddqhqndwrxsm2n2zc3b5p7q";
-    };
-  }
-  {
-    goPackagePath  = "github.com/getlantern/hex";
-    fetch = {
-      type = "git";
-      url = "https://github.com/getlantern/hex";
-      rev =  "083fba3033ad473db3dd31c9bb368473d37581a7";
-      sha256 = "18q6rypmcqmcwlfzrrdcz08nff0a289saplvd9y3ifnfcqdw3j77";
-    };
-  }
-  {
-    goPackagePath  = "github.com/getlantern/hidden";
-    fetch = {
-      type = "git";
-      url = "https://github.com/getlantern/hidden";
-      rev =  "d52a649ab33af200943bb599898dbdcfdbc94cb7";
-      sha256 = "0133qmp4sjq8da5di3459vc5g5nqbpqra0f558zd95js3fdmkmsi";
-    };
-  }
-  {
-    goPackagePath  = "github.com/getlantern/ops";
-    fetch = {
-      type = "git";
-      url = "https://github.com/getlantern/ops";
-      rev =  "37353306c90844c8e0591956f56611f46299d202";
-      sha256 = "0q8j2963jqf3p7fcnsfinkvz71mfylrkk2xjar775zjx5a23sa5i";
-    };
-  }
-  {
-    goPackagePath  = "github.com/getlantern/systray";
-    fetch = {
-      type = "git";
-      url = "https://github.com/getlantern/systray";
-      rev =  "e31397f8c6928d98a8a9a7e80087aebcf0090beb";
-      sha256 = "0ahb6qjd2c43nbbg0ssm76ilbzs9dq43a89f7fj6c029nympjmqn";
-    };
-  }
-  {
-    goPackagePath  = "github.com/go-stack/stack";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-stack/stack";
-      rev =  "2fee6af1a9795aafbe0253a0cfbdf668e1fb8a9a";
-      sha256 = "0wk25751ryyvxclyp8jdk5c3ar0cmfr8lrjb66qbg4808x66b96v";
-    };
-  }
-  {
-    goPackagePath  = "github.com/oxtoacart/bpool";
-    fetch = {
-      type = "git";
-      url = "https://github.com/oxtoacart/bpool";
-      rev =  "4e1c5567d7c2dd59fa4c7c83d34c2f3528b025d6";
-      sha256 = "01kk6dhkz96yhp3p5v2rjwq8mbrwrdsn6glqw7jp4h7g5za7yi95";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev =  "645ef00459ed84a119197bfb8d8205042c6df63d";
-      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev =  "8e24a49d80f82323e1c4db1b5da3e0f31171a151";
-      sha256 = "0zsdnyb8dy98jw6f9yn6g5gdhaqwk39hqridr0mh4dhwvwvlj724";
-    };
-  }
-]
\ No newline at end of file
diff --git a/nixpkgs/pkgs/tools/misc/tealdeer/default.nix b/nixpkgs/pkgs/tools/misc/tealdeer/default.nix
index aa8f9be38b6d..4f0677846eaf 100644
--- a/nixpkgs/pkgs/tools/misc/tealdeer/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tealdeer/default.nix
@@ -4,25 +4,23 @@
 , pkg-config
 , installShellFiles
 , openssl
-, cacert
 , Security
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "tealdeer";
-  version = "1.3.0";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "dbrgn";
     repo = "tealdeer";
     rev = "v${version}";
-    sha256 = "0l16qqkrya22nnm4j3dxyq4gb85i3c07p10s00bpqcvki6n6v6r8";
+    sha256 = "1f37qlw4nxdhlqlqzzb4j11gsv26abk2nk2qhbzj77kp4v2b125x";
   };
 
-  cargoSha256 = "0jvgcf493rmkrh85j0fkf8ffanva80syyxclzkvkrzvvwwj78b5l";
+  cargoSha256 = "0g5fjj677qzhw3nw7f3n5gghsj2y811bdclxpy8aq2n58gbwvhvc";
 
-  buildInputs = [ openssl cacert ]
-    ++ (stdenv.lib.optional stdenv.isDarwin Security);
+  buildInputs = if stdenv.isDarwin then [ Security ] else [ openssl ];
 
   nativeBuildInputs = [ installShellFiles pkg-config ];
 
@@ -32,8 +30,6 @@ rustPlatform.buildRustPackage rec {
     installShellCompletion --zsh --name _tealdeer zsh_tealdeer
   '';
 
-  NIX_SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
-
   # disable tests for now since one needs network
   # what is unavailable in sandbox build
   # and i can't disable just this one
@@ -44,6 +40,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dbrgn/tealdeer";
     maintainers = with maintainers; [ davidak ];
     license = with licenses; [ asl20 mit ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/teleconsole/default.nix b/nixpkgs/pkgs/tools/misc/teleconsole/default.nix
index b8e984e90c43..47a792a3f92b 100644
--- a/nixpkgs/pkgs/tools/misc/teleconsole/default.nix
+++ b/nixpkgs/pkgs/tools/misc/teleconsole/default.nix
@@ -13,7 +13,16 @@ buildGoPackage rec {
     sha256 = "01552422n0bj1iaaw6pvg9l1qr66r69sdsngxbcdjn1xh3mj74sm";
   };
 
-  goDeps = ./deps.nix;
+  srcTeleport = fetchFromGitHub {
+    owner = "gravitational";
+    repo = "teleport";
+    rev = "2cb40abd8ea8fb2915304ea4888b5b9f3e5bc223";
+    sha256 = "1xw3bfnjbj88x465snwwzn4bmpmzmsrq9r0pkj388qwvfrclgnfk";
+  };
+
+  preBuild = ''
+    cp -r ${srcTeleport} ./go/src/github.com/gravitational/teleport
+  '';
 
   CGO_ENABLED = 1;
   buildFlags = [ "-ldflags" ];
@@ -22,7 +31,6 @@ buildGoPackage rec {
     homepage = "https://www.teleconsole.com/";
     description = "Share your terminal session with people you trust";
     license = licenses.asl20;
-    platforms = platforms.all;
     # Builds for Aarch64 not possible in the current release due to
     # incompatibilities further up the dependency chain.
     # See:
diff --git a/nixpkgs/pkgs/tools/misc/teleconsole/deps.nix b/nixpkgs/pkgs/tools/misc/teleconsole/deps.nix
deleted file mode 100644
index f13529d4b25a..000000000000
--- a/nixpkgs/pkgs/tools/misc/teleconsole/deps.nix
+++ /dev/null
@@ -1,13 +0,0 @@
-[
-    # Teleport v2.0.0-alpha.4 required for build.
-    # See https://github.com/gravitational/teleconsole/blob/09591f227c2a8df4c68af8bc4adfadfc596f4ed2/Makefile#L8
-    {
-      goPackagePath = "github.com/gravitational/teleport";
-      fetch = {
-        type = "git";
-        url = "https://github.com/gravitational/teleport";
-        rev = "2cb40abd8ea8fb2915304ea4888b5b9f3e5bc223";
-        sha256 = "1xw3bfnjbj88x465snwwzn4bmpmzmsrq9r0pkj388qwvfrclgnfk";
-      };
-    }
-]
diff --git a/nixpkgs/pkgs/tools/misc/tewisay/default.nix b/nixpkgs/pkgs/tools/misc/tewisay/default.nix
index b4f834bdd1af..b63ffb1cd107 100644
--- a/nixpkgs/pkgs/tools/misc/tewisay/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tewisay/default.nix
@@ -31,6 +31,5 @@ buildGoPackage rec {
     description = "Cowsay replacement with unicode and partial ansi escape support";
     license = stdenv.lib.licenses.cc0;
     maintainers = [ stdenv.lib.maintainers.chiiruno ];
-    platforms = stdenv.lib.platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/thin-provisioning-tools/default.nix b/nixpkgs/pkgs/tools/misc/thin-provisioning-tools/default.nix
index 0aba67647e0b..8df030eafadb 100644
--- a/nixpkgs/pkgs/tools/misc/thin-provisioning-tools/default.nix
+++ b/nixpkgs/pkgs/tools/misc/thin-provisioning-tools/default.nix
@@ -1,33 +1,19 @@
-{ stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, expat, libaio, boost }:
+{ stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, expat, libaio, boost, binutils }:
 
 stdenv.mkDerivation rec {
   pname = "thin-provisioning-tools";
-  version = "0.7.6";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "jthornber";
     repo = "thin-provisioning-tools";
     rev = "v${version}";
-    sha256 = "175mk3krfdmn43cjw378s32hs62gq8fmq549rjmyc651sz6jnj0g";
+    sha256 = "1iwg04rhmdhijmlk5hfl8wvv83115lzb65if6cc1glkkfva8jfjp";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
 
-  buildInputs = [ expat libaio boost ];
-
-  patches = [
-    (fetchpatch {
-      # a) Fix build if limits.h provides definition for PAGE_SIZE, as musl does w/musl per XSI[1] although it's apparently optional [2].
-      #    This value is only provided when it's known to be a constant, to avoid the need to discover the value dynamically.
-      # b) If not using system-provided (kernel headers, or libc headers, or something) use the POSIX approach of querying the value
-      #    dynamically using sysconf(_SC_PAGE_SIZE) instead of hardcoded value that hopefully is correct.
-      # [1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html
-      # [2] http://www.openwall.com/lists/musl/2015/09/11/8
-      url = "https://raw.githubusercontent.com/void-linux/void-packages/a0ece13ad7ab2aae760e09e41e0459bd999a3695/srcpkgs/thin-provisioning-tools/patches/musl.patch";
-      sha256 = "1m8r3vhrnsy8drgs0svs3fgpi3mmxzdcqsv6bmvc0j52cvfqvhvy";
-      extraPrefix = ""; # empty means add 'a/' and 'b/'
-    })
-  ];
+  buildInputs = [ expat libaio boost binutils ];
 
   enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/tools/misc/tmuxp/default.nix b/nixpkgs/pkgs/tools/misc/tmuxp/default.nix
index 94cdcf568936..5a14981ef265 100644
--- a/nixpkgs/pkgs/tools/misc/tmuxp/default.nix
+++ b/nixpkgs/pkgs/tools/misc/tmuxp/default.nix
@@ -4,11 +4,11 @@ with python.pkgs;
 
 buildPythonApplication rec {
   pname = "tmuxp";
-  version = "1.5.4";
+  version = "1.5.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13qnacqlcih731wfrsalbff1g81inkh6sypvabg5gi7gd7mha49p";
+    sha256 = "1jbziyqggbfd5m884lg00h0zi99c6cvjxkl4jzr34c4affr295yd";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/misc/topgrade/default.nix b/nixpkgs/pkgs/tools/misc/topgrade/default.nix
index 21e464c6d29e..b7b38766db38 100644
--- a/nixpkgs/pkgs/tools/misc/topgrade/default.nix
+++ b/nixpkgs/pkgs/tools/misc/topgrade/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "topgrade";
-  version = "4.7.0";
+  version = "5.7.0";
 
   src = fetchFromGitHub {
     owner = "r-darwish";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1hg03mj3rd778hq1856139nwz7y5gykwvg7xhxlsiabv7gr06m2m";
+    sha256 = "0nxqi2rykfxhvn8jzprklsc47iilxp1pmm2f17ikfyf5dgi69whb";
   };
 
-  cargoSha256 = "14qv2157jhj7hilvqi3c00p11rzv0vvimr4d34nyspgzxz2si6sm";
+  cargoSha256 = "05afmz2n006331hc8yi2mq9kj574xi1iq6gr983jj75ix7n40rgg";
 
   buildInputs = lib.optional stdenv.isDarwin Foundation;
 
@@ -21,7 +21,6 @@ rustPlatform.buildRustPackage rec {
     description = "Upgrade all the things";
     homepage = "https://github.com/r-darwish/topgrade";
     license = licenses.gpl3;
-    platforms = platforms.all;
     maintainers = with maintainers; [ filalex77 hugoreeves ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/txt2man/default.nix b/nixpkgs/pkgs/tools/misc/txt2man/default.nix
index 6013dc1c26b9..ded409754bcb 100644
--- a/nixpkgs/pkgs/tools/misc/txt2man/default.nix
+++ b/nixpkgs/pkgs/tools/misc/txt2man/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "txt2man";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchurl {
     url = "https://github.com/mvertes/txt2man/archive/${pname}-${version}.tar.gz";
-    sha256 = "06jf8hqav095db1v3njavx0rphmpmi3mgki4va6qkxjnvmdx4742";
+    sha256 = "0ka3krmblsprv0v6h6wnm8lv08w30z0ynfnbwns6alks5gx1p6sd";
   };
 
   preConfigure = ''
diff --git a/nixpkgs/pkgs/tools/misc/umlet/default.nix b/nixpkgs/pkgs/tools/misc/umlet/default.nix
index 25d92905bd85..b0edf3e7de0a 100644
--- a/nixpkgs/pkgs/tools/misc/umlet/default.nix
+++ b/nixpkgs/pkgs/tools/misc/umlet/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://www.umlet.com";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
     platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/unicode/default.nix b/nixpkgs/pkgs/tools/misc/unicode/default.nix
index c4ae9cc5e36d..b83dd17d0bc1 100644
--- a/nixpkgs/pkgs/tools/misc/unicode/default.nix
+++ b/nixpkgs/pkgs/tools/misc/unicode/default.nix
@@ -1,26 +1,32 @@
-{ stdenv, fetchFromGitHub, fetchurl, python3Packages }:
+{ stdenv, fetchFromGitHub, fetchurl, python3Packages, installShellFiles }:
 
 python3Packages.buildPythonApplication rec {
   pname = "unicode";
-  version = "2.6";
+  version = "2.7";
 
   src = fetchFromGitHub {
     owner = "garabik";
     repo = "unicode";
     rev = "v${version}";
-    sha256 = "17hh4nwl5njsh7lnff583j2axn6rfvfbiqwp72n7vcsgkiszw4kg";
+    sha256 = "15d9yvarxsiy0whx1mxzsjnnkrjdm3ga4qv2yy398mk0jh763q9v";
   };
 
   ucdtxt = fetchurl {
-    url = "http://www.unicode.org/Public/11.0.0/ucd/UnicodeData.txt";
-    sha256 = "16b0jzvvzarnlxdvs2izd5ia0ipbd87md143dc6lv6xpdqcs75s9";
+    url = "https://www.unicode.org/Public/13.0.0/ucd/UnicodeData.txt";
+    sha256 = "1fz8fcd23lxyl97ay8h42zvkcgcg8l81b2dm05nklkddr2zzpgxx";
   };
 
+  nativeBuildInputs = [ installShellFiles ];
+
   postFixup = ''
     substituteInPlace "$out/bin/.unicode-wrapped" \
       --replace "/usr/share/unicode/UnicodeData.txt" "$ucdtxt"
   '';
 
+  postInstall = ''
+    installManPage paracode.1 unicode.1
+  '';
+
   meta = with stdenv.lib; {
     description = "Display unicode character properties";
     homepage = "https://github.com/garabik/unicode";
diff --git a/nixpkgs/pkgs/tools/misc/up/default.nix b/nixpkgs/pkgs/tools/misc/up/default.nix
index f0f9cf4cee85..b3d275d3081d 100644
--- a/nixpkgs/pkgs/tools/misc/up/default.nix
+++ b/nixpkgs/pkgs/tools/misc/up/default.nix
@@ -15,10 +15,12 @@ buildGoModule rec {
 
   vendorSha256 = "1h3w4i7dyh6yagqmdclvflfq6fx0z880jdnpf28assv7fxd9rjsx";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Ultimate Plumber is a tool for writing Linux pipes with instant live preview";
     homepage = "https://github.com/akavel/up";
     maintainers = with maintainers; [ ma27 ];
     license = licenses.asl20;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/misc/upower-notify/default.nix b/nixpkgs/pkgs/tools/misc/upower-notify/default.nix
index 607cb47ed4e8..2258f31fd311 100644
--- a/nixpkgs/pkgs/tools/misc/upower-notify/default.nix
+++ b/nixpkgs/pkgs/tools/misc/upower-notify/default.nix
@@ -10,7 +10,7 @@ buildGoPackage rec {
   pname = "upower-notify";
   version = "20160310-${stdenv.lib.strings.substring 0 7 rev}";
   rev = "14c581e683a7e90ec9fa6d409413c16599a5323c";
-  
+
   goPackagePath = "github.com/omeid/upower-notify";
 
   src = fetchgit {
diff --git a/nixpkgs/pkgs/tools/misc/vector/default.nix b/nixpkgs/pkgs/tools/misc/vector/default.nix
index c441242885e6..ddbd78c699c9 100644
--- a/nixpkgs/pkgs/tools/misc/vector/default.nix
+++ b/nixpkgs/pkgs/tools/misc/vector/default.nix
@@ -37,6 +37,5 @@ rustPlatform.buildRustPackage rec {
     homepage    = "https://github.com/timberio/vector";
     license     = with licenses; [ asl20 ];
     maintainers = with maintainers; [ thoughtpolice ];
-    platforms   = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/void/default.nix b/nixpkgs/pkgs/tools/misc/void/default.nix
index f9805531f86c..21df532f9489 100644
--- a/nixpkgs/pkgs/tools/misc/void/default.nix
+++ b/nixpkgs/pkgs/tools/misc/void/default.nix
@@ -21,6 +21,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/spacejam/void";
     license = licenses.gpl3;
     maintainers = with maintainers; [ spacekookie ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/vttest/default.nix b/nixpkgs/pkgs/tools/misc/vttest/default.nix
index 6a9a12b2a07a..6be05cf53a21 100644
--- a/nixpkgs/pkgs/tools/misc/vttest/default.nix
+++ b/nixpkgs/pkgs/tools/misc/vttest/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "vttest";
-  version = "20200420";
+  version = "20200610";
 
   src = fetchurl {
     urls = [
       "https://invisible-mirror.net/archives/${pname}/${pname}-${version}.tgz"
       "ftp://ftp.invisible-island.net/${pname}/${pname}-${version}.tgz"
     ];
-    sha256 = "03li63v9mbsqn4cw6d769r1a6iaixi80m2c32y32vc9i5k3ik43c";
+    sha256 = "0181lk999gfqk8pkd4yx0qrz9r3k9a0z0i50wcayp7z1n1ivqllb";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/tools/misc/watchexec/default.nix b/nixpkgs/pkgs/tools/misc/watchexec/default.nix
index 01993ebed6d2..8e3db232feb0 100644
--- a/nixpkgs/pkgs/tools/misc/watchexec/default.nix
+++ b/nixpkgs/pkgs/tools/misc/watchexec/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "watchexec";
-  version = "1.13.1";
+  version = "1.14.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "1idyr3h9dhb67xlhd5bsa7866i75w4jzjbbchq6fd9lqd488bsj7";
+    sha256 = "0nvd8x60nkk8izqy8m8m1fi0x48s9sjh4zfl8d2ig46lqc8n5cpm";
   };
 
-  cargoSha256 = "14lkvfr1yz8g15ffc8j1vvy7q1nwqbkhz2y0fnskwqfzpd17f9gl";
+  cargoSha256 = "08pv7nr471apzy77da1pffdmx2dgf5mbj09302cfmf8sj49saal6";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/nixpkgs/pkgs/tools/misc/websocat/default.nix b/nixpkgs/pkgs/tools/misc/websocat/default.nix
index 7870974531ee..c936b1599638 100644
--- a/nixpkgs/pkgs/tools/misc/websocat/default.nix
+++ b/nixpkgs/pkgs/tools/misc/websocat/default.nix
@@ -2,17 +2,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "websocat";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "vi";
     repo = "websocat";
     rev = "v${version}";
-    sha256 = "1lmra91ahpk4gamhnbdr066hl4vzwfh5i09fbabzdnxcvylbx8zf";
+    sha256 = "0iilq96bxcb2fsljvlgy47pg514w0jf72ckz39yy3k0gwc1yfcja";
   };
 
   cargoBuildFlags = [ "--features=ssl" ];
-  cargoSha256 = "09chj0bgf4r8v5cjq0hvb84zvh98nrzrh1m0wdqjy5gi7zc30cis";
+  cargoSha256 = "1hsms8rlnds8npr8m0dm21h04ci5ljda09pqb598v7ny3j2dldiq";
 
   nativeBuildInputs = [ pkgconfig makeWrapper ];
   buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isDarwin Security;
@@ -30,6 +30,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/vi/websocat";
     license = licenses.mit;
     maintainers = with maintainers; [ thoughtpolice filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/wlr-randr/default.nix b/nixpkgs/pkgs/tools/misc/wlr-randr/default.nix
index c9f439646961..7bdffb6f7221 100644
--- a/nixpkgs/pkgs/tools/misc/wlr-randr/default.nix
+++ b/nixpkgs/pkgs/tools/misc/wlr-randr/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wlr-randr";
-  version = "unstable-2019-03-21";
+  version = "0.1.0";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
-    rev = "c4066aa3249963dc7877119cffce10f3fa8b6304";
-    sha256 = "1ahw4sv07xg5rh9vr7j28636iaxs06vnybm3li6y8dz2sky7hk88";
+    rev = "v${version}";
+    sha256 = "10c8zzp78s5bw34vvjhilipa28bsdx3jbyhnxgp8f8kawh3cvgsc";
   };
 
   nativeBuildInputs = [ meson ninja cmake pkgconfig ];
diff --git a/nixpkgs/pkgs/tools/misc/wob/default.nix b/nixpkgs/pkgs/tools/misc/wob/default.nix
index d9ea0648ebe4..a619a43c9f14 100644
--- a/nixpkgs/pkgs/tools/misc/wob/default.nix
+++ b/nixpkgs/pkgs/tools/misc/wob/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wob";
-  version = "0.8";
+  version = "0.10";
 
   src = fetchFromGitHub {
     owner = "francma";
     repo = pname;
     rev = version;
-    sha256 = "0gzqc75wjm3yj81rm03zkp5lvsmlhhp79qlz85yyan1gcz5spdb6";
+    sha256 = "0v7xm8zd9237v5j5h79pd0x6dkal5fgg1ly9knssjpv3hswwyv40";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config scdoc wayland ];
diff --git a/nixpkgs/pkgs/tools/misc/wootility/default.nix b/nixpkgs/pkgs/tools/misc/wootility/default.nix
index 00cfd27d2e89..91203e5f7be5 100644
--- a/nixpkgs/pkgs/tools/misc/wootility/default.nix
+++ b/nixpkgs/pkgs/tools/misc/wootility/default.nix
@@ -1,15 +1,22 @@
-{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3, udev, wooting-udev-rules }:
-
+{ appimageTools
+, fetchurl
+, lib
+, gsettings-desktop-schemas
+, gtk3
+, libxkbfile
+, udev
+, wooting-udev-rules
+}:
 let
   pname = "wootility";
-  version = "3.4.6";
+  version = "3.5.12";
 in
 appimageTools.wrapType2 rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://s3.eu-west-2.amazonaws.com/wooting-update/wootility-linux-latest/wootility-${version}.AppImage";
-    sha256 = "02ivbgnzr657iqb9hviaylmsym2kki2c84xmqfix3b0awsphn05q";
+    sha256 = "13bhckk25fzq9r9cdsg3yqjd4kn47asqdx8kw0in8iky4ri41vnc";
   };
 
   profile = ''
@@ -19,7 +26,11 @@ appimageTools.wrapType2 rec {
 
   multiPkgs = extraPkgs;
   extraPkgs =
-    pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ ([ udev wooting-udev-rules ]);
+    pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ ([
+      udev
+      wooting-udev-rules
+      libxkbfile
+    ]);
   extraInstallCommands = "mv $out/bin/{${name},${pname}}";
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/misc/xvfb-run/default.nix b/nixpkgs/pkgs/tools/misc/xvfb-run/default.nix
index 889ab823a9c0..04c1902f3a0b 100644
--- a/nixpkgs/pkgs/tools/misc/xvfb-run/default.nix
+++ b/nixpkgs/pkgs/tools/misc/xvfb-run/default.nix
@@ -23,7 +23,7 @@ stdenv.mkDerivation {
   '';
 
   meta = with stdenv.lib; {
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     license = licenses.gpl2;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/xxv/default.nix b/nixpkgs/pkgs/tools/misc/xxv/default.nix
index 6b20c39b1858..b22dfc7e4cd1 100644
--- a/nixpkgs/pkgs/tools/misc/xxv/default.nix
+++ b/nixpkgs/pkgs/tools/misc/xxv/default.nix
@@ -35,6 +35,5 @@ rustPlatform.buildRustPackage rec {
     homepage    = "https://chrisvest.github.io/xxv/";
     license     = with licenses; [ gpl3 ];
     maintainers = with maintainers; [ lilyball ];
-    platforms   = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/you-get/default.nix b/nixpkgs/pkgs/tools/misc/you-get/default.nix
index 74599dc7d1e5..8314dc2c9a35 100644
--- a/nixpkgs/pkgs/tools/misc/you-get/default.nix
+++ b/nixpkgs/pkgs/tools/misc/you-get/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonApplication rec {
   pname = "you-get";
-  version = "0.4.1432";
+  version = "0.4.1456";
 
   # Tests aren't packaged, but they all hit the real network so
   # probably aren't suitable for a build environment anyway.
@@ -10,7 +10,7 @@ buildPythonApplication rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0i3gsl7wk1cn8jw79gnyv58mrrn0hmkvymrd3ic67z2ackp726s2";
+    sha256 = "14miw5gmj571584rmdzjxf88icmb1psrsfbwpabn8blz8l5aq6bv";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/tools/misc/ytree/default.nix b/nixpkgs/pkgs/tools/misc/ytree/default.nix
new file mode 100644
index 000000000000..b8818ba6e5e3
--- /dev/null
+++ b/nixpkgs/pkgs/tools/misc/ytree/default.nix
@@ -0,0 +1,39 @@
+{ stdenv
+, fetchurl
+, ncurses
+, readline
+}:
+
+stdenv.mkDerivation rec {
+  pname = "ytree";
+  version = "2.02";
+
+  src = fetchurl {
+    url = "https://han.de/~werner/${pname}-${version}.tar.gz";
+    sha256 = "1v70l244rc22f20gac1zha1smrhqkag45jn0iwgcyngfdfml3gz5";
+  };
+
+  buildInputs = [
+    ncurses readline
+  ];
+
+  # don't save timestamp, in order to improve reproducibility
+  postPatch = ''
+    substituteInPlace Makefile --replace 'gzip' 'gzip -n'
+  '';
+
+  installFlags = [ "DESTDIR=${placeholder "out"}" ];
+
+  preInstall = ''
+    mkdir -p $out/bin $out/share/man/man1
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A curses-based file manager similar to DOS Xtree(TM)";
+    homepage = "https://www.han.de/~werner/ytree.html";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; unix;
+  };
+}
+# TODO: X11 support
diff --git a/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix b/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix
index 8ebbe75d686a..01454b48254c 100644
--- a/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix
+++ b/nixpkgs/pkgs/tools/misc/yubikey-manager-qt/default.nix
@@ -20,11 +20,11 @@ let inherit (stdenv) lib; in
 
 stdenv.mkDerivation rec {
   pname = "yubikey-manager-qt";
-  version = "1.1.4";
+  version = "1.1.5";
 
   src = fetchurl {
     url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
-    sha256 = "0rbr72741q7fqkr9qmvgj2mi6192ayz7bl935q2bsnqils4wsa3f";
+    sha256 = "1yimlaqvhq34gw6wkqgil0qq8x9zbfzh4psqihjr2d9jaa2wygwy";
   };
 
   nativeBuildInputs = [ wrapQtAppsHook python3.pkgs.wrapPython qmake ];
diff --git a/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix b/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix
index 4740b3ac55f5..a6b0a93324f1 100644
--- a/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix
+++ b/nixpkgs/pkgs/tools/misc/yubikey-manager/default.nix
@@ -3,11 +3,11 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "yubikey-manager";
-  version = "3.1.0";
+  version = "3.1.1";
 
   srcs = fetchurl {
     url = "https://developers.yubico.com/${pname}/Releases/${pname}-${version}.tar.gz";
-    sha256 = "0nb3qzpggyp61lchvprnklby5mf5n0xpn9z8vlhh99pz1k9sqdq1";
+    sha256 = "1yhc8j67phrj5xgx09b5h7c67pgc4wj4jnkmkq0r3s6j7jn43vv8";
   };
 
   propagatedBuildInputs =
diff --git a/nixpkgs/pkgs/tools/misc/yubikey-personalization/default.nix b/nixpkgs/pkgs/tools/misc/yubikey-personalization/default.nix
index 5ef828762f64..69e3d5886537 100644
--- a/nixpkgs/pkgs/tools/misc/yubikey-personalization/default.nix
+++ b/nixpkgs/pkgs/tools/misc/yubikey-personalization/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, libusb1, libyubikey, json_c }:
+{ stdenv, fetchurl, fetchpatch, pkgconfig, libusb1, libyubikey, json_c }:
 
 stdenv.mkDerivation rec {
   pname = "yubikey-personalization";
@@ -9,6 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "14wvlwqnwj0gllkpvfqiy8ns938bwvjsz8x1hmymmx32m074vj0f";
   };
 
+  patches = [
+    # remove after updating to next release
+    (fetchpatch {
+      name = "json-c-0.14-support.patch";
+      url = "https://github.com/Yubico/yubikey-personalization/commit/0aa2e2cae2e1777863993a10c809bb50f4cde7f8.patch";
+      sha256 = "1wnigf3hbq59i15kgxpq3pwrl1drpbj134x81mmv9xm1r44cjva8";
+    })
+  ];
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libusb1 libyubikey json_c ];
 
diff --git a/nixpkgs/pkgs/tools/misc/z-lua/default.nix b/nixpkgs/pkgs/tools/misc/z-lua/default.nix
index 7d8e760a8d93..59149506e6c0 100644
--- a/nixpkgs/pkgs/tools/misc/z-lua/default.nix
+++ b/nixpkgs/pkgs/tools/misc/z-lua/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "z-lua";
-  version = "1.8.4";
+  version = "1.8.7";
 
   src = fetchFromGitHub {
     owner = "skywind3000";
     repo = "z.lua";
     rev = version;
-    sha256 = "1whh2gzxhx4c24mwh5yifnpah56bzb6v7barp727pjw4whpflg1s";
+    sha256 = "14n1abv7gh4zajq471bgzpcv8l1159g00h9x83h719i9kxxsa2ba";
   };
 
   dontBuild = true;
diff --git a/nixpkgs/pkgs/tools/misc/zabbixctl/default.nix b/nixpkgs/pkgs/tools/misc/zabbixctl/default.nix
index b74ab51680d1..c54456ede3d4 100644
--- a/nixpkgs/pkgs/tools/misc/zabbixctl/default.nix
+++ b/nixpkgs/pkgs/tools/misc/zabbixctl/default.nix
@@ -19,7 +19,6 @@ buildGoPackage rec {
     description = "Most effective way for operating in Zabbix Server";
     homepage = "https://github.com/kovetskiy/zabbixctl";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ mmahut ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/misc/zoxide/default.nix b/nixpkgs/pkgs/tools/misc/zoxide/default.nix
index ee15786d40cc..3e4cbfd84334 100644
--- a/nixpkgs/pkgs/tools/misc/zoxide/default.nix
+++ b/nixpkgs/pkgs/tools/misc/zoxide/default.nix
@@ -1,32 +1,34 @@
-{ stdenv
+{ lib
 , fetchFromGitHub
 , rustPlatform
-, withFzf ? true, fzf
+, withFzf ? true
+, fzf
 }:
-
-rustPlatform.buildRustPackage rec {
+let
+  version = "0.4.3";
+in
+rustPlatform.buildRustPackage {
   pname = "zoxide";
-  version = "0.4.1";
+  inherit version;
 
   src = fetchFromGitHub {
     owner = "ajeetdsouza";
     repo = "zoxide";
     rev = "v${version}";
-    sha256 = "1zfk9y5f12h2d5zwf2z8c95xwhbhc6ayv971875fbxgz1nd8vqb6";
+    sha256 = "1ghdal6pqkp56rqawhj26ch1x4cvnjj032xz3626aiddqgn134zj";
   };
 
-  postPatch = stdenv.lib.optionalString withFzf ''
+  postPatch = lib.optionalString withFzf ''
     substituteInPlace src/fzf.rs \
       --replace '"fzf"' '"${fzf}/bin/fzf"'
   '';
 
-  cargoSha256 = "0z0p3cxxazw19bmk3zw7z2q93p00ywsa2cz1jhy78mn5pq1v95rd";
+  cargoSha256 = "0klnjmda77bq9i9f0rz48jzaw4rcf7hafcjjpb0i570d7hlxnwsr";
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     description = "A fast cd command that learns your habits";
     homepage = "https://github.com/ajeetdsouza/zoxide";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ysndr cole-h ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/amass/default.nix b/nixpkgs/pkgs/tools/networking/amass/default.nix
index e2bc592f7a8f..61746ebfcc5f 100644
--- a/nixpkgs/pkgs/tools/networking/amass/default.nix
+++ b/nixpkgs/pkgs/tools/networking/amass/default.nix
@@ -5,22 +5,22 @@
 
 buildGoModule rec {
   pname = "amass";
-  version = "3.7.2";
+  version = "3.10.3";
 
   src = fetchFromGitHub {
     owner = "OWASP";
     repo = "Amass";
     rev = "v${version}";
-    sha256 = "1acjqpa9xg9ji2mzxag57yq589cdq3rh78a8vz8wnkkkp7b8why8";
+    sha256 = "1vjplwjv0vwwxdpbky7i6dz3phl7yfcbr8fwrbsb47bmj0ldkapc";
   };
 
-  vendorSha256 = "1s8g0qqg3m6hdvc5v3s86l3ba5grmyhx0lf2ymi39k5dpcg8l19s";
+  vendorSha256 = "0c3hyvy8s470zvrv49fx0iil59z0xq10dw4vnr55qgbm2k2pay6w";
 
   outputs = [ "out" "wordlists" ];
 
   postInstall = ''
     mkdir -p $wordlists
-    cp -R $src/examples/wordlists/*.txt $wordlists
+    cp -R examples/wordlists/*.txt $wordlists
     gzip $wordlists/*.txt
   '';
 
diff --git a/nixpkgs/pkgs/tools/networking/assh/default.nix b/nixpkgs/pkgs/tools/networking/assh/default.nix
index 7b796a52e3aa..caebcb6fe8c0 100644
--- a/nixpkgs/pkgs/tools/networking/assh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/assh/default.nix
@@ -1,11 +1,19 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, openssh, makeWrapper }:
+{ stdenv, buildGoModule, fetchFromGitHub, openssh, makeWrapper }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "assh";
-  version = "2.7.0";
+  version = "2.10.0";
 
-  goPackagePath = "github.com/moul/advanced-ssh-config";
-  subPackages = [ "cmd/assh" ];
+  src = fetchFromGitHub {
+    repo = "advanced-ssh-config";
+    owner = "moul";
+    rev = "v${version}";
+    sha256 = "0qsb5p52v961akshgs1yla2d7lhcbwixv2skqaappdmhj18a23q2";
+  };
+
+  vendorSha256 = "03ycjhal4g7bs9fhzrq01ijj48czvs272qcqkd9farsha5gf0q0b";
+
+  doCheck = false;
 
   nativeBuildInputs = [ makeWrapper ];
 
@@ -14,16 +22,15 @@ buildGoPackage rec {
       --prefix PATH : ${openssh}/bin
   '';
 
-  src = fetchFromGitHub {
-    repo = "advanced-ssh-config";
-    owner = "moul";
-    rev = "v${version}";
-    sha256 = "0jfpcr8990lb7kacadbishdkz5l8spw24ksdlb79x34sdbbp3fm6";
-  };
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/assh --help > /dev/null
+  '';
 
   meta = with stdenv.lib; {
     description = "Advanced SSH config - Regex, aliases, gateways, includes and dynamic hosts";
-    homepage = "https://github.com/moul/advanced-ssh-config";
+    homepage = "https://github.com/moul/assh";
+    changelog = "https://github.com/moul/assh/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ zzamboni ];
     platforms = with platforms; linux ++ darwin;
diff --git a/nixpkgs/pkgs/tools/networking/asynk/default.nix b/nixpkgs/pkgs/tools/networking/asynk/default.nix
deleted file mode 100644
index b37f21335016..000000000000
--- a/nixpkgs/pkgs/tools/networking/asynk/default.nix
+++ /dev/null
@@ -1,47 +0,0 @@
-{ stdenv, fetchurl, python2, python2Packages, makeWrapper }:
-
-stdenv.mkDerivation rec {
-  version = "2.0.0";
-  pname = "ASynK";
-
-  src = fetchurl {
-    name = "${pname}-${version}.tar.gz";
-    url = "https://github.com/skarra/ASynK/archive/v${version}.tar.gz";
-    sha256 = "1bp30437mnls0kzm0525p3bg5nw9alpqrqhw186f6zp9i4y5znp1";
-  };
-
-  propagatedBuildInputs = with python2Packages;
-    [ python2 makeWrapper tornado requests dateutil
-      vobject gdata caldavclientlibrary-asynk ];
-
-  installPhase = ''
-    mkdir -p $out/bin $out/lib
-    cp asynk.py $out/bin/
-    cp state.init.json $out/
-    cp -R config $out/
-    cp lib/*.py $out/lib # */
-    cp -R lib/s $out/lib/
-    cp -R asynk $out/
-
-    substituteInPlace $out/bin/asynk.py \
-      --replace "ASYNK_BASE_DIR    = os.path.dirname(os.path.abspath(__file__))" "ASYNK_BASE_DIR    = \"$out\""
-
-    for file in `find $out/asynk -type f`; do
-      # Oh yeah, tab characters!
-      substituteInPlace $file \
-        --replace 'from   vobject        import vobject' 'from vobject import *' \
-        --replace 'from   vobject    import vobject' 'from vobject import *'
-    done
-
-    wrapProgram "$out/bin/asynk.py" \
-      --prefix PYTHONPATH : "$PYTHONPATH"
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = "http://asynk.io/";
-    description = "Flexible contacts synchronization program";
-    license = licenses.agpl3;
-    maintainers = [ ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/networking/bandwhich/default.nix b/nixpkgs/pkgs/tools/networking/bandwhich/default.nix
index 5f7c86237126..1048b3e49834 100644
--- a/nixpkgs/pkgs/tools/networking/bandwhich/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bandwhich/default.nix
@@ -1,17 +1,29 @@
-{ stdenv, fetchFromGitHub, rustPlatform, Security }:
+{ stdenv, fetchFromGitHub, rustPlatform, Security, fetchpatch }:
 
 rustPlatform.buildRustPackage rec {
   pname = "bandwhich";
-  version = "0.15.0";
+  version = "0.18.1";
 
   src = fetchFromGitHub {
     owner = "imsnif";
     repo = pname;
     rev = version;
-    sha256 = "09qr8s136ilqa9r5yjys2mnyyprhancn5n4maqmlfbjrz590g6nb";
+    sha256 = "0qzmkhrg7pqgblmva7xcww6zc4rryba6kkfkhj05mvd31z3c1rz8";
   };
 
-  cargoSha256 = "0awm79gbip3p2k3qr08n0p9lmmbnibnhvz06qzcj27gvmdxs8xvz";
+  cargoSha256 = "0iakw42nip0vxq50jjk73r0xl7xp426szb091ap4isad3zxq6saj";
+  cargoPatches = [
+    # Fixes rDNS support for systems using `systemd-networkd` from v246.
+    # See https://github.com/imsnif/bandwhich/pull/184 for context
+    (fetchpatch {
+      url = "https://github.com/imsnif/bandwhich/commit/19e485a1ce9f749c121d235147e3117cc847379e.patch";
+      sha256 = "03hg73gwlfq0l36k3aq7cfak3js7j05ssfpdbfiiwqq7lynm83jr";
+    })
+    (fetchpatch {
+      url = "https://github.com/imsnif/bandwhich/commit/35f03b716832fba9a735628d1c728d3e305f75c8.patch";
+      sha256 = "1bv837wc1dgg26s640f3lfya28ypnjs0675dykzxxxv5y9ns58l3";
+    })
+  ];
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
diff --git a/nixpkgs/pkgs/tools/networking/bgpq4/default.nix b/nixpkgs/pkgs/tools/networking/bgpq4/default.nix
new file mode 100644
index 000000000000..2caeb437f7a2
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/bgpq4/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  pname = "bgpq4";
+  version = "0.0.6";
+
+  src = fetchFromGitHub {
+    owner = "bgp";
+    repo = pname;
+    rev = version;
+    sha256 = "1n6d6xq7vafx1la0fckqv0yjr245ka9dgbcqaz9m6dcdk0fdlkks";
+  };
+
+  nativeBuildInputs = [
+    autoreconfHook
+  ];
+
+  meta = with stdenv.lib; {
+    description = "BGP filtering automation tool";
+    homepage = "https://github.com/bgp/bgpq4";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ vincentbernat ];
+    platforms = with platforms; unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/bukubrow/default.nix b/nixpkgs/pkgs/tools/networking/bukubrow/default.nix
index 944fccb0ec52..b8f2d70848d5 100644
--- a/nixpkgs/pkgs/tools/networking/bukubrow/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bukubrow/default.nix
@@ -42,7 +42,6 @@ in rustPlatform.buildRustPackage rec {
     description = "Bukubrow is a WebExtension for Buku, a command-line bookmark manager";
     homepage = "https://github.com/SamHH/bukubrow-host";
     license = licenses.gpl3;
-    platforms = platforms.all;
     maintainers = with maintainers; [ infinisil ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/bully/default.nix b/nixpkgs/pkgs/tools/networking/bully/default.nix
index c9512392347e..4117932550f4 100644
--- a/nixpkgs/pkgs/tools/networking/bully/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bully/default.nix
@@ -1,33 +1,32 @@
-{ stdenv, fetchFromGitHub, openssl, libpcap }:
+{ stdenv, fetchFromGitHub, libpcap }:
 
 stdenv.mkDerivation rec {
-
   pname = "bully";
-  version = "1.1";
+  version = "1.4-00";
 
   src = fetchFromGitHub {
-    sha256 = "1qvbbf72ryd85bp4v62fk93ag2sn25rj7kipgagbv22hnq8yl3zd";
-    rev = version;
+    owner = "kimocoder";
     repo = "bully";
-    owner = "aanarchyy";
+    rev = version;
+    sha256 = "1n2754a5z44g414a0hj3cmi9q5lwnzyvmvzskrj2nci8c8m2kgnf";
   };
-  buildInputs = [ openssl libpcap ];
 
-  buildPhase = ''
-    cd src
-    make
-  '';
+  buildInputs = [ libpcap ];
+
+  enableParallelBuilding = true;
+
+  sourceRoot = "./source/src";
 
   installPhase = ''
-    mkdir -p $out/bin
-    mv bully $out/bin
+    install -Dm555 -t $out/bin bully
+    install -Dm444 -t $out/share/doc/${pname} ../*.md
   '';
 
   meta = with stdenv.lib; {
     description = "Retrieve WPA/WPA2 passphrase from a WPS enabled access point";
-    homepage = "https://github.com/aanarchyy/bully";
-    maintainers = with maintainers; [ edwtjo ];
+    homepage = "https://github.com/kimocoder/bully";
     license = licenses.gpl3;
+    maintainers = with maintainers; [ edwtjo ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/cassowary/default.nix b/nixpkgs/pkgs/tools/networking/cassowary/default.nix
index e76a505fe9d7..962a46cb27ff 100644
--- a/nixpkgs/pkgs/tools/networking/cassowary/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cassowary/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1qgilmkai9isbbg4pzqic6i8v5z8cay0ilw1gb69z4a6f2q4zhkp";
 
+  doCheck = false;
+
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
   meta = with lib; {
@@ -22,4 +24,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ hugoreeves ];
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/networking/chrony/default.nix b/nixpkgs/pkgs/tools/networking/chrony/default.nix
index 0a8ae10eb134..6c8254c797b7 100644
--- a/nixpkgs/pkgs/tools/networking/chrony/default.nix
+++ b/nixpkgs/pkgs/tools/networking/chrony/default.nix
@@ -5,11 +5,11 @@ assert stdenv.isLinux -> libcap != null;
 
 stdenv.mkDerivation rec {
   pname = "chrony";
-  version = "3.5";
+  version = "3.5.1";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/chrony/${pname}-${version}.tar.gz";
-    sha256 = "1d9r2dhslll4kzdmxrj0qfgwq1b30d4l3s5cwr8yr93029dpj0jf";
+    sha256 = "19ywl8a3lb2id7lcna5hp2g4pjnfwdc9ihr0fk6i9m45vdq2za0v";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/tools/networking/circus/default.nix b/nixpkgs/pkgs/tools/networking/circus/default.nix
index 82c9db90432e..ea03f8878b20 100644
--- a/nixpkgs/pkgs/tools/networking/circus/default.nix
+++ b/nixpkgs/pkgs/tools/networking/circus/default.nix
@@ -1,7 +1,14 @@
-{ stdenv, python3Packages }:
+{ stdenv, python3 }:
 
 let
-  inherit (python3Packages) buildPythonApplication fetchPypi iowait psutil pyzmq tornado_4 mock;
+  python = python3.override {
+    self = python;
+    packageOverrides = self: super: {
+      tornado = super.tornado_4;
+    };
+  };
+
+  inherit (python.pkgs) buildPythonApplication fetchPypi iowait psutil pyzmq tornado mock six;
 in
 
 buildPythonApplication rec {
@@ -23,7 +30,7 @@ buildPythonApplication rec {
 
   doCheck = false; # weird error
 
-  propagatedBuildInputs = [ iowait psutil pyzmq tornado_4 ];
+  propagatedBuildInputs = [ iowait psutil pyzmq tornado six ];
 
   meta = with stdenv.lib; {
     description = "A process and socket manager";
diff --git a/nixpkgs/pkgs/tools/networking/cjdns/default.nix b/nixpkgs/pkgs/tools/networking/cjdns/default.nix
index 9a74344d2936..13388d337791 100644
--- a/nixpkgs/pkgs/tools/networking/cjdns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cjdns/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, nodejs, which, python27, utillinux, nixosTests }:
 
-let version = "20.6"; in
-stdenv.mkDerivation {
-  name = "cjdns-"+version;
+stdenv.mkDerivation rec {
+  pname = "cjdns";
+  version = "20.7";
 
   src = fetchFromGitHub {
     owner = "cjdelisle";
     repo = "cjdns";
     rev = "cjdns-v${version}";
-    sha256 = "1d5rrnqb5dcmm5cg2ky1cgxz6ncb23n1j797j9zzw6xxdvkf3kgi";
+    sha256 = "09gpqpzc00pp3cj7lyq9876p7is4bcndpdi5knqbv824vk4bj3k0";
   };
 
   buildInputs = [ which python27 nodejs ] ++
diff --git a/nixpkgs/pkgs/tools/networking/clash/default.nix b/nixpkgs/pkgs/tools/networking/clash/default.nix
index af21e9d4fef5..4447ab0f048e 100644
--- a/nixpkgs/pkgs/tools/networking/clash/default.nix
+++ b/nixpkgs/pkgs/tools/networking/clash/default.nix
@@ -2,21 +2,22 @@
 
 buildGoModule rec {
   pname = "clash";
-  version = "0.20.0";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "Dreamacro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1nb4hl9x2lj0hy8byz14c2xn6yhrb6pqmhzl002k83qd3zrc6s3p";
+    sha256 = "0cbbih035h40hhl7ykmyh9q9nzdqq1p8hmvzd4358cigz1gjc3j2";
   };
 
-  goPackagePath = "github.com/Dreamacro/clash";
-  vendorSha256 = "0nh3cn31p7yhnhjzqp84dnhzy3hag253bjp70w8q03lw7mkhdgz3";
+  vendorSha256 = "0s7mhbjfpfmzqf48d7k0d416m39x6fh5ds4q3xnvhcfx5kmdymq6";
+
+  doCheck = false;
 
   buildFlagsArray = [
     "-ldflags="
-    "-X ${goPackagePath}/constant.Version=${version}"
+    "-X github.com/Dreamacro/clash/constant.Version=${version}"
   ];
 
   meta = with stdenv.lib; {
@@ -24,6 +25,5 @@ buildGoModule rec {
     homepage = "https://github.com/Dreamacro/clash";
     license = licenses.gpl3;
     maintainers = with maintainers; [ contrun filalex77 ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/networking/connman/connman-ncurses/default.nix b/nixpkgs/pkgs/tools/networking/connman/connman-ncurses/default.nix
index 7bfb4571e107..1e7f54f9ddbe 100644
--- a/nixpkgs/pkgs/tools/networking/connman/connman-ncurses/default.nix
+++ b/nixpkgs/pkgs/tools/networking/connman/connman-ncurses/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, pkgconfig, dbus, json_c, ncurses, connman }:
+{ stdenv, fetchpatch, fetchFromGitHub, autoreconfHook, pkgconfig, dbus, json_c, ncurses, connman }:
 
 stdenv.mkDerivation {
   pname = "connman-ncurses";
@@ -11,12 +11,21 @@ stdenv.mkDerivation {
     sha256 = "1831r0776fv481g8kgy1dkl750pzv47835dw11sslq2k6mm6i9p1";
   };
 
+  patches = [
+    # Fix build with json-c 0.14
+    (fetchpatch {
+      url = "https://github.com/void-linux/void-packages/raw/5830ce60e922b7dced8157ededda8c995adb3bb9/srcpkgs/connman-ncurses/patches/lowercase-boolean.patch";
+      extraPrefix = "";
+      sha256 = "uK83DeRyXS2Y0ZZpTYvYNh/1ZM2QQ7QpajiBztaEuSM=";
+    })
+  ];
+
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
 
   buildInputs = [ dbus ncurses json_c connman ];
 
   NIX_CFLAGS_COMPILE = "-Wno-error";
-  
+
   installPhase = ''
     mkdir -p "$out/bin"
     cp -va connman_ncurses "$out/bin/"
diff --git a/nixpkgs/pkgs/tools/networking/connman/connmanui/default.nix b/nixpkgs/pkgs/tools/networking/connman/connmanui/default.nix
deleted file mode 100644
index 51c97e6cb7ec..000000000000
--- a/nixpkgs/pkgs/tools/networking/connman/connmanui/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ stdenv, fetchgit, autoconf, automake, libtool, glib, gtk3, dbus, pkgconfig, file, intltool, connman }:
-
-stdenv.mkDerivation rec {
-  pname = "connmanui";
-  rev = "fce0af94e121bde77c7fa2ebd6a319f0180c5516";
-  version = "22062015-${rev}";
-
-  src = fetchgit {
-    inherit rev;
-    url = "git://github.com/tbursztyka/connman-ui.git";
-    sha256 = "0ixx8c9cfdp480z21xfjb7n1x27sf1g8gmgbmcfhr0k888dmziyy";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ autoconf automake libtool glib gtk3 dbus file intltool connman ];
-
-  preConfigure = ''
-    rm m4/intltool.m4
-    ln -s ${intltool}/share/aclocal/intltool.m4 m4/
-    set -e
-    ./autogen.sh
-    sed -i "s/\/usr\/bin\/file/file/g" ./configure
-  '';
-
-  configureScript = "./configure";
-
-  meta = {
-    description = "A full-featured GTK based trayicon UI for ConnMan";
-    homepage = "https://github.com/tbursztyka/connman-ui";
-    maintainers = [ stdenv.lib.maintainers.matejc ];
-    platforms = stdenv.lib.platforms.linux;
-    license = stdenv.lib.licenses.gpl2;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/networking/corerad/default.nix b/nixpkgs/pkgs/tools/networking/corerad/default.nix
index bbdb98ae4950..4ab266e54959 100644
--- a/nixpkgs/pkgs/tools/networking/corerad/default.nix
+++ b/nixpkgs/pkgs/tools/networking/corerad/default.nix
@@ -1,24 +1,36 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, nixosTests }:
 
 buildGoModule rec {
   pname = "corerad";
-  version = "0.2.6";
+  version = "0.2.8";
 
   src = fetchFromGitHub {
     owner = "mdlayher";
     repo = "corerad";
     rev = "v${version}";
-    sha256 = "16rwydvqkzi0jlgwpl3d4f8zd35y4lv4h5xa30ybqmwwp1k5ymf0";
+    sha256 = "053rihi8lqai3z837ddi441yl41lsg1zj9gl62s9vbjmq5l11fjh";
   };
 
-  vendorSha256 = "1431fvi9b0id3zhgkxhiampc5avvp998lncyd5l2gn5py3qz6sdl";
+  vendorSha256 = "1ra4yfplmgzxzs1nlbm0izg339fjnkfrw071y8w4m6q6wnzdhljb";
 
-  buildFlagsArray = ''
-    -ldflags=
-    -X github.com/mdlayher/corerad/internal/build.linkTimestamp=1591474872
-    -X github.com/mdlayher/corerad/internal/build.linkVersion=v${version}
+  doCheck = false;
+
+  # Since the tarball pulled from GitHub doesn't contain git tag information,
+  # we fetch the expected tag's timestamp from a file in the root of the
+  # repository.
+  preBuild = ''
+    buildFlagsArray=(
+      -ldflags="
+        -X github.com/mdlayher/corerad/internal/build.linkTimestamp=$(<.gittagtime)
+        -X github.com/mdlayher/corerad/internal/build.linkVersion=v${version}
+      "
+    )
   '';
 
+  passthru.tests = {
+    inherit (nixosTests) corerad;
+  };
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/mdlayher/corerad";
     description = "CoreRAD extensible and observable IPv6 NDP RA daemon";
diff --git a/nixpkgs/pkgs/tools/networking/croc/default.nix b/nixpkgs/pkgs/tools/networking/croc/default.nix
index 8fe208c98bca..29bc6140b516 100644
--- a/nixpkgs/pkgs/tools/networking/croc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/croc/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "croc";
-  version = "8.0.11";
+  version = "8.3.1";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "09yx7xjhvpyvzwsf859b9yfrxzg01ak3dfavfhmx3h97lrdxprgi";
+    sha256 = "118lx0phq68rxv71s5gy00qzzrp00qwh6kr85dx83nn1sbp54xx9";
   };
 
-  vendorSha256 = "1lqlrsd90475b1wp1krfppi635q5gw1ka8x4d8haanmnlnxkniqf";
+  vendorSha256 = "0qfrc3c4fsg3w2zcpdr93ilknxhshcysvin029va154sq3zmggbn";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
diff --git a/nixpkgs/pkgs/tools/networking/curl/default.nix b/nixpkgs/pkgs/tools/networking/curl/default.nix
index 67ab5af6916f..8e151bc2ead0 100644
--- a/nixpkgs/pkgs/tools/networking/curl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/curl/default.nix
@@ -34,14 +34,14 @@ assert gssSupport -> libkrb5 != null;
 
 stdenv.mkDerivation rec {
   pname = "curl";
-  version = "7.70.0";
+  version = "7.72.0";
 
   src = fetchurl {
     urls = [
       "https://curl.haxx.se/download/${pname}-${version}.tar.bz2"
       "https://github.com/curl/curl/releases/download/${lib.replaceStrings ["."] ["_"] pname}-${version}/${pname}-${version}.tar.bz2"
     ];
-    sha256 = "1l19b2xmzwjl2fqlbv46kwlz1823miaxczyx2a5lz8k7mmigw2x5";
+    sha256 = "1vq3ay87vayfrv67l7s7h79nm7gwdqhidki0brv5jahhch49g4dd";
   };
 
   outputs = [ "bin" "dev" "out" "man" "devdoc" ];
diff --git a/nixpkgs/pkgs/tools/networking/curlie/default.nix b/nixpkgs/pkgs/tools/networking/curlie/default.nix
index cb1cf8d97faf..f8147cb16115 100644
--- a/nixpkgs/pkgs/tools/networking/curlie/default.nix
+++ b/nixpkgs/pkgs/tools/networking/curlie/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "curlie";
-  version = "1.3.1";
+  version = "1.5.4";
 
   src= fetchFromGitHub {
     owner = "rs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "09v8alrbw6qva3q3bcqxnyjm7svagfxqvhdff7cqf5pbmkxnhln9";
+    sha256 = "0z92gz39m0gk8j7l2nwa5vrfr3mq160vr1b15sy13jwi1zspc7hx";
   };
 
-  vendorSha256 = "1mxgf004czf65a2mv99gfp27g98xhllmfcz4ynfv66nfkbfz6a8n";
+  vendorSha256 = "1qnl15b9cs6xi8z368a9n34v3wr2adwp376cjzhyllni7sf6v1mm";
+
+  doCheck = false;
 
   meta = with lib; {
     description = "Curlie is a frontend to curl that adds the ease of use of httpie, without compromising on features and performance";
@@ -19,4 +21,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ ma27 ];
     license = licenses.mit;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/networking/dd-agent/datadog-agent.nix b/nixpkgs/pkgs/tools/networking/dd-agent/datadog-agent.nix
index dc29a95d92b0..c81192096927 100644
--- a/nixpkgs/pkgs/tools/networking/dd-agent/datadog-agent.nix
+++ b/nixpkgs/pkgs/tools/networking/dd-agent/datadog-agent.nix
@@ -65,7 +65,7 @@ in buildGoPackage rec {
 
     wrapProgram "$out/bin/agent" \
       --set PYTHONPATH "$out/${python.sitePackages}" \
-      --prefix LD_LIBRARY_PATH : ${systemd.lib}/lib
+      --prefix LD_LIBRARY_PATH : ${lib.getLib systemd}/lib
   '';
 
   meta = with stdenv.lib; {
@@ -75,7 +75,6 @@ in buildGoPackage rec {
     '';
     homepage    = "https://www.datadoghq.com";
     license     = licenses.bsd3;
-    platforms   = platforms.all;
     maintainers = with maintainers; [ thoughtpolice domenkozar rvl ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/dd-agent/datadog-process-agent.nix b/nixpkgs/pkgs/tools/networking/dd-agent/datadog-process-agent.nix
index 8f1294eb751a..a59f70f633b1 100644
--- a/nixpkgs/pkgs/tools/networking/dd-agent/datadog-process-agent.nix
+++ b/nixpkgs/pkgs/tools/networking/dd-agent/datadog-process-agent.nix
@@ -19,7 +19,6 @@ buildGoPackage rec {
     description = "Live process collector for the DataDog Agent v6";
     homepage    = "https://www.datadoghq.com";
     license     = licenses.bsd3;
-    platforms   = platforms.all;
     maintainers = with maintainers; [ domenkozar rvl ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/dnscrypt-proxy2/default.nix b/nixpkgs/pkgs/tools/networking/dnscrypt-proxy2/default.nix
index d5b92c17a65a..64a58bc15a96 100644
--- a/nixpkgs/pkgs/tools/networking/dnscrypt-proxy2/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnscrypt-proxy2/default.nix
@@ -6,6 +6,8 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   src = fetchFromGitHub {
     owner = "DNSCrypt";
     repo = "dnscrypt-proxy";
diff --git a/nixpkgs/pkgs/tools/networking/dnsmasq/default.nix b/nixpkgs/pkgs/tools/networking/dnsmasq/default.nix
index 055f92141b29..19dbd00c1ee9 100644
--- a/nixpkgs/pkgs/tools/networking/dnsmasq/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnsmasq/default.nix
@@ -12,11 +12,11 @@ let
   ]);
 in
 stdenv.mkDerivation rec {
-  name = "dnsmasq-2.81";
+  name = "dnsmasq-2.82";
 
   src = fetchurl {
     url = "http://www.thekelleys.org.uk/dnsmasq/${name}.tar.xz";
-    sha256 = "1yzq6anwgr5rlnwydpszb51cyhp2vjq29b24ck19flbwac1sk73l";
+    sha256 = "0cn1xd1s6xs78jmrmwjnh9m6w3q38pk6dyqy2phvasqiyd33cll4";
   };
 
   postPatch = stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
diff --git a/nixpkgs/pkgs/tools/networking/dnsperf/default.nix b/nixpkgs/pkgs/tools/networking/dnsperf/default.nix
index 63e19e924fca..a3d819e8dcfe 100644
--- a/nixpkgs/pkgs/tools/networking/dnsperf/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnsperf/default.nix
@@ -4,14 +4,14 @@
 
 stdenv.mkDerivation rec {
   pname = "dnsperf";
-  version = "2.3.1";
+  version = "2.3.4";
 
   # The same as the initial commit of the new GitHub repo (only readme changed).
   src = fetchFromGitHub {
     owner = "DNS-OARC";
     repo = "dnsperf";
     rev = "v${version}";
-    sha256 = "0yxwm5xi9ry154ayzn2h27bnwwc202bsna8h6i4a65pn76nrn81w";
+    sha256 = "1lyci2vdl6g0s5pqs7dkq7pxdahcpkzh614wmy5fwi2f3334y0d1";
   };
 
   outputs = [ "out" "man" "doc" ];
diff --git a/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix b/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix
index 8c98f316aae1..8f279ff688af 100644
--- a/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix
@@ -2,22 +2,23 @@
 
 buildGoModule rec {
   pname = "dnsproxy";
-  version = "0.29.0";
+  version = "0.32.0";
 
   src = fetchFromGitHub {
     owner = "AdguardTeam";
     repo = pname;
     rev = "v${version}";
-    sha256 = "164l97x1g20a61jkb2dwwmf63md3np9x2m59dri3qf22k4rl4l0d";
+    sha256 = "14iwwg1iqfxjhpw9p3ddq53l901v9l9n2r60q9q6jls8hfqcgsnj";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     description = "Simple DNS proxy with DoH, DoT, and DNSCrypt support";
     homepage = "https://github.com/AdguardTeam/dnsproxy";
     license = licenses.gpl3;
     maintainers = with maintainers; [ contrun ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/networking/dropbear/default.nix b/nixpkgs/pkgs/tools/networking/dropbear/default.nix
index 20d2545e5082..dcb05eb84842 100644
--- a/nixpkgs/pkgs/tools/networking/dropbear/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dropbear/default.nix
@@ -4,11 +4,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "dropbear-2019.78";
+  name = "dropbear-2020.80";
 
   src = fetchurl {
     url = "https://matt.ucc.asn.au/dropbear/releases/${name}.tar.bz2";
-    sha256 = "19242qlr40pbqfqd0gg6h8qpj38q6lgv03ja6sahj9vj2abnanaj";
+    sha256 = "0jbrbpdzyv11x5rkljdimzq9p6a7da5siw9k405ibnpjj4dr89yr";
   };
 
   dontDisableStatic = enableStatic;
diff --git a/nixpkgs/pkgs/tools/networking/dsniff/default.nix b/nixpkgs/pkgs/tools/networking/dsniff/default.nix
index 4fe381cdd7a7..50de41b921c0 100644
--- a/nixpkgs/pkgs/tools/networking/dsniff/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dsniff/default.nix
@@ -14,7 +14,7 @@ let
   };
   pcap = symlinkJoin {
     inherit (libpcap) name;
-    paths = [ libpcap ];
+    paths = [ (libpcap.overrideAttrs(old: { dontDisableStatic = true; })) ];
     postBuild = ''
       cp -rs $out/include/pcap $out/include/net
       # prevent references to libpcap
diff --git a/nixpkgs/pkgs/tools/networking/eternal-terminal/default.nix b/nixpkgs/pkgs/tools/networking/eternal-terminal/default.nix
index bd39cfba8aeb..452a9873bece 100644
--- a/nixpkgs/pkgs/tools/networking/eternal-terminal/default.nix
+++ b/nixpkgs/pkgs/tools/networking/eternal-terminal/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "eternal-terminal";
-  version = "6.0.7";
+  version = "6.0.11";
 
   src = fetchFromGitHub {
     owner = "MisterTea";
     repo = "EternalTerminal";
     rev = "et-v${version}";
-    sha256 = "03pdspggqxkmz95qb96pig5x0xw18hy9a7ivszydr32ry6kxxx1h";
+    sha256 = "0yjf639ldfaxrw4pbg9avdkhhmcpnx58j3x70zskvgkajny8yqqr";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/nixpkgs/pkgs/tools/networking/findomain/default.nix b/nixpkgs/pkgs/tools/networking/findomain/default.nix
index 69e09b60d02a..2caf18d9a4b0 100644
--- a/nixpkgs/pkgs/tools/networking/findomain/default.nix
+++ b/nixpkgs/pkgs/tools/networking/findomain/default.nix
@@ -9,16 +9,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "findomain";
-  version = "1.7.0";
+  version = "2.1.3";
 
   src = fetchFromGitHub {
     owner = "Edu4rdSHL";
     repo = pname;
     rev = version;
-    sha256 = "1q8yxl4y8f787a0q87gxgj1p9lgzhhfk3fgysq9xj8yfvwm8abji";
+    sha256 = "112w4x79zywy6i5vfr04057p9vschflhdhs7b2mhkcba5gigkrxx";
   };
 
-  cargoSha256 = "02d538j13v3f1dc99vpzhby42ps7lig000idwdsxa1mwkjxrf2z2";
+  cargoSha256 = "1bfbg5fzwp8drm0vp16503qd5mgjfw7z9p292xgdx0i20s4wfrkk";
 
   nativeBuildInputs = [ installShellFiles perl ];
   buildInputs = lib.optional stdenv.isDarwin Security;
@@ -32,6 +32,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/Edu4rdSHL/findomain";
     license = licenses.gpl3;
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/fping/default.nix b/nixpkgs/pkgs/tools/networking/fping/default.nix
index 6a63a2047b23..d170ee4cd0e3 100644
--- a/nixpkgs/pkgs/tools/networking/fping/default.nix
+++ b/nixpkgs/pkgs/tools/networking/fping/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "fping-4.2";
+  name = "fping-5.0";
 
   src = fetchurl {
     url = "https://www.fping.org/dist/${name}.tar.gz";
-    sha256 = "0jmnf4vmr43aiwk3h2b5qdsb95gxar8gz1yli8fswnm9nrs9ccvx";
+    sha256 = "1f2prmii4fyl44cfykp40hp4jjhicrhddh9v3dfs11j6nsww0f7d";
   };
 
   configureFlags = [ "--enable-ipv6" "--enable-ipv4" ];
diff --git a/nixpkgs/pkgs/tools/networking/frp/default.nix b/nixpkgs/pkgs/tools/networking/frp/default.nix
index 588f8a8c1cbf..6bc05139f8b2 100644
--- a/nixpkgs/pkgs/tools/networking/frp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/frp/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "frp";
-  version = "0.33.0";
+  version = "0.34.0";
 
   src = fetchFromGitHub {
     owner = "fatedier";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1z914p20n3i1bf4hx5iq2fylx1s49knb70cbg53ji2n7nrm1q33r";
+    sha256 = "1f0cr7211wkam1204x6gsflhw7gc995lia3jq4v6n3ijfwy5vyvm";
   };
 
-  vendorSha256 = "0pi661mb5vwj16wwxnyx9b0ic7gzby6qfs3y4w00agn6sn5nahx2";
+  vendorSha256 = "1ym4qcqgbbj6pa4cgmxmny7krxwjfl8l02hb3r5jh9qj886fwhdr";
+
+  doCheck = false;
 
   subPackages = [ "cmd/frpc" "cmd/frps" ];
 
@@ -26,6 +28,5 @@ buildGoModule rec {
     homepage = "https://github.com/fatedier/frp";
     license = licenses.asl20;
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/networking/go-shadowsocks2/default.nix b/nixpkgs/pkgs/tools/networking/go-shadowsocks2/default.nix
index 1591b6acf5be..6b55c21b5b04 100644
--- a/nixpkgs/pkgs/tools/networking/go-shadowsocks2/default.nix
+++ b/nixpkgs/pkgs/tools/networking/go-shadowsocks2/default.nix
@@ -19,6 +19,6 @@ buildGoPackage rec {
     description = "Fresh implementation of Shadowsocks in Go";
     homepage = "https://github.com/shadowsocks/go-shadowsocks2/";
     license = licenses.asl20;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/goreplay/default.nix b/nixpkgs/pkgs/tools/networking/goreplay/default.nix
new file mode 100644
index 000000000000..3daa6a983b24
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/goreplay/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, buildGoPackage, fetchFromGitHub, libpcap }:
+
+buildGoPackage rec {
+  pname = "goreplay";
+  version = "1.1.0";
+  rev = "v${version}";
+
+  goPackagePath = "github.com/buger/goreplay";
+
+  src = fetchFromGitHub {
+    inherit rev;
+    owner  = "buger";
+    repo   = "goreplay";
+    sha256 = "07nsrx5hwmk6l8bqp48gqk40i9bxf0g4fbmpqbngx6j5f7lpbk2n";
+  };
+
+  buildInputs = [ libpcap ];
+
+  meta = {
+    homepage = "https://github.com/buger/goreplay";
+    license = stdenv.lib.licenses.lgpl3Only;
+    description = "GoReplay is an open-source tool for capturing and replaying live HTTP traffic.";
+    platforms = stdenv.lib.platforms.unix;
+    maintainers = with stdenv.lib.maintainers; [ lovek323 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/grpcui/default.nix b/nixpkgs/pkgs/tools/networking/grpcui/default.nix
index 6bae95298fe2..be3ed2ea2c65 100644
--- a/nixpkgs/pkgs/tools/networking/grpcui/default.nix
+++ b/nixpkgs/pkgs/tools/networking/grpcui/default.nix
@@ -2,16 +2,22 @@
 
 buildGoModule rec {
   pname = "grpcui";
-  version = "0.2.1";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "fullstorydev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0dcah6bamjqyp9354qrd1cykdr5k5l93hh7qcy5b4nkag9531gl0";
+    sha256 = "0b6rc294v8jagk79hcjbaldfi7y7idx8bknsbdi3djym5rspdg6s";
   };
 
-  vendorSha256 = "0m9nn8x0ji0n9v3d5w5z3grwv0zh8ijvh92jqjpcfv4bcjr5vsjr";
+  vendorSha256 = "0wih9xvpgqqd82v1pxy5rslrsd6wsl0ys1bi1mf373dnfq5vh5a9";
+
+  doCheck = false;
+
+  subPackages = [ "cmd/grpcui" ];
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
   meta = with lib; {
     description = "An interactive web UI for gRPC, along the lines of postman";
@@ -20,4 +26,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ pradyuman ];
     platforms = platforms.linux ++ platforms.darwin;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/networking/guardian-agent/default.nix b/nixpkgs/pkgs/tools/networking/guardian-agent/default.nix
index 262234ca67b5..a736aa4df187 100644
--- a/nixpkgs/pkgs/tools/networking/guardian-agent/default.nix
+++ b/nixpkgs/pkgs/tools/networking/guardian-agent/default.nix
@@ -20,6 +20,7 @@ buildGoPackage rec {
 
   goPackagePath = "github.com/StanfordSNR/guardian-agent";
 
+  deleteVendor = true;
   goDeps = ./deps.nix;
 
   postInstall = ''
diff --git a/nixpkgs/pkgs/tools/networking/haproxy/default.nix b/nixpkgs/pkgs/tools/networking/haproxy/default.nix
index c43edd040e7b..91112a2628e2 100644
--- a/nixpkgs/pkgs/tools/networking/haproxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/haproxy/default.nix
@@ -11,11 +11,11 @@ assert usePcre -> pcre != null;
 
 stdenv.mkDerivation rec {
   pname = "haproxy";
-  version = "2.1.6";
+  version = "2.2.2";
 
   src = fetchurl {
     url = "https://www.haproxy.org/download/${stdenv.lib.versions.majorMinor version}/src/${pname}-${version}.tar.gz";
-    sha256 = "1pyz4gckdn8982vpb1iiw9agwp2s5p8wc0nn1qh1ic0wq3lrnpg6";
+    sha256 = "1mjld865p4f7i465fcc5c4jclih1c3345a3ylriql8668rd7071r";
   };
 
   buildInputs = [ openssl zlib ]
diff --git a/nixpkgs/pkgs/tools/networking/hey/default.nix b/nixpkgs/pkgs/tools/networking/hey/default.nix
index 8ed6ecbbf26d..22f933a4b654 100644
--- a/nixpkgs/pkgs/tools/networking/hey/default.nix
+++ b/nixpkgs/pkgs/tools/networking/hey/default.nix
@@ -13,10 +13,12 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   meta = with lib; {
     description = "HTTP load generator, ApacheBench (ab) replacement";
     homepage = "https://github.com/rakyll/hey";
     license = licenses.asl20;
     maintainers = with maintainers; [ filalex77 ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/networking/hping/default.nix b/nixpkgs/pkgs/tools/networking/hping/default.nix
index 1ef02b599e83..daa0ba38e9ee 100644
--- a/nixpkgs/pkgs/tools/networking/hping/default.nix
+++ b/nixpkgs/pkgs/tools/networking/hping/default.nix
@@ -1,50 +1,41 @@
-{ stdenv, fetchurl, libpcap, tcl }:
+{ stdenv, fetchFromGitHub, libpcap, withTcl ? true, tcl }:
 
 stdenv.mkDerivation rec {
   pname = "hping";
-  version = "20051105";
+  version = "2014-12-26";
 
-  src = fetchurl {
-    url = "http://www.hping.org/hping3-${version}.tar.gz";
-    sha256 = "1s5f9xd1msx05ibhwaw37jmc7l9fahcxxslqz8a83p0i5ak739pm";
+  src = fetchFromGitHub {
+    owner = "antirez";
+    repo = pname;
+    rev = "3547c7691742c6eaa31f8402e0ccbb81387c1b99"; # there are no tags/releases
+    sha256 = "0y0n1ybij3yg9lfgzcwfmjz1sjg913zcqrv391xx83dm0j80sdpb";
   };
 
-  buildInputs = [ libpcap tcl ];
+  buildInputs = [ libpcap ] ++ stdenv.lib.optional withTcl tcl;
 
-  configurePhase = ''
-    MANPATH="$out/share/man" ./configure
-    sed -i -r -e 's|/usr(/s?bin)|'"$out"'\1|g' Makefile
-  '';
-
-  TCLSH = "${tcl}/bin/tclsh";
-
-  prePatch = ''
-    sed -i -e '/#if.*defined(__i386__)/a \
-      || defined(__x86_64__) \\
-    ' bytesex.h
-
-    sed -i -e 's|#include.*net/bpf.h|#include <pcap/bpf.h>|' \
+  postPatch = ''
+    substituteInPlace Makefile.in --replace "gcc" "$CC"
+    substituteInPlace version.c --replace "RELEASE_DATE" "\"$version\""
+  '' + stdenv.lib.optionalString stdenv.isLinux ''
+    sed -i -e 's|#include <net/bpf.h>|#include <pcap/bpf.h>|' \
       libpcap_stuff.c script.c
-
-    sed -i -r -e 's|"(/usr/(local/)?)?bin/"|"${tcl}/bin"|g' \
-              -e 's!/usr/(local/)?(lib|include)!${tcl}/\2!g' \
-              configure
   '';
 
-  preInstall = ''
-    mkdir -vp "$out/sbin" "$out/share/man/man8"
-  '';
+  configureFlags = [ (if withTcl then "TCLSH=${tcl}/bin/tclsh" else "--no-tcl") ];
 
-  postInstall = ''
-    ln -vs hping3.8.gz "$out/share/man/man8/hping.8.gz"
-    ln -vs hping3.8.gz "$out/share/man/man8/hping2.8.gz"
+  installPhase = ''
+    install -Dm755 hping3 -t $out/sbin
+    ln -s $out/sbin/hping3 $out/sbin/hping
+    ln -s $out/sbin/hping3 $out/sbin/hping2
+    install -Dm644 docs/hping3.8 -t $out/share/man/man8
+    ln -s hping3.8.gz $out/share/man/man8/hping.8.gz
+    ln -s hping3.8.gz $out/share/man/man8/hping2.8.gz
   '';
 
   meta = with stdenv.lib; {
     description = "A command-line oriented TCP/IP packet assembler/analyzer";
     homepage = "http://www.hping.org/";
-    license = licenses.gpl2;
-    platforms = platforms.all;
-    broken = stdenv.isDarwin;
+    license = licenses.gpl2Only;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/httpie/default.nix b/nixpkgs/pkgs/tools/networking/httpie/default.nix
index 01986bf93219..bf80cd48ffa2 100644
--- a/nixpkgs/pkgs/tools/networking/httpie/default.nix
+++ b/nixpkgs/pkgs/tools/networking/httpie/default.nix
@@ -1,21 +1,30 @@
-{ stdenv, fetchFromGitHub, python3Packages, docutils, }:
+{ stdenv, fetchFromGitHub, python3Packages, docutils, fetchpatch }:
 
 python3Packages.buildPythonApplication rec {
   pname = "httpie";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "jakubroztocil";
     repo = "httpie";
     rev = version;
-    sha256 = "1vwjlzx830q4dcm3r7j9cl8yzka37dw42rl1r05m5ysb1081cbj2";
+    sha256 = "0caazv24jr0844c4mdx77vzwwi5m869n10wa42cydb08ppx1xxj6";
   };
 
   outputs = [ "out" "doc" "man" ];
 
   propagatedBuildInputs = with python3Packages; [ pygments requests setuptools ];
   dontUseSetuptoolsCheck = true;
-  patches = [ ./strip-venv.patch ];
+  patches = [
+    ./strip-venv.patch
+
+    # Fix `test_ciphers_none_can_be_selected`
+    # TODO: remove on next release
+    (fetchpatch {
+      url = "https://github.com/jakubroztocil/httpie/commit/49e71d252f54871a6bc49cb1cba103d385a543b8.patch";
+      sha256 = "13b2faf50gimj7f17dlx4gmd8ph8ipgihpzfqbvmfjlbf1v95fsj";
+    })
+  ];
 
   checkInputs = with python3Packages; [
     mock
diff --git a/nixpkgs/pkgs/tools/networking/httplab/default.nix b/nixpkgs/pkgs/tools/networking/httplab/default.nix
index f39b061c34db..f4fb4fe96076 100644
--- a/nixpkgs/pkgs/tools/networking/httplab/default.nix
+++ b/nixpkgs/pkgs/tools/networking/httplab/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "httplab";
-  version = "0.3.0";
+  version = "0.4.0";
   rev = "v${version}";
 
   goPackagePath = "github.com/gchaincl/httplab";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "gchaincl";
     repo = "httplab";
     inherit rev;
-    sha256 = "1q9rp43z59nryfm79gci5a1gmqw552rqd4cki81rymbj3f6xvrf9";
+    sha256 = "0442nnpxyfl2gi9pilv7q6cxs2cd98wblg8d4nw6dx98yh4h99zs";
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/tools/networking/i2p/default.nix b/nixpkgs/pkgs/tools/networking/i2p/default.nix
index 681d5d0e7a97..4371d37391be 100644
--- a/nixpkgs/pkgs/tools/networking/i2p/default.nix
+++ b/nixpkgs/pkgs/tools/networking/i2p/default.nix
@@ -2,11 +2,11 @@
 
 let wrapper = stdenv.mkDerivation rec {
   pname = "wrapper";
-  version = "3.5.35";
+  version = "3.5.43";
 
   src = fetchurl {
     url = "https://wrapper.tanukisoftware.com/download/${version}/wrapper_${version}_src.tar.gz";
-    sha256 = "0mjyw9ays9v6lnj21pmfd3qdvd9b6rwxfmw3pg6z0kyf2jadixw2";
+    sha256 = "19cx3854rk7b2056z8pvxnf4simsg5js7czsy2bys7jl6vh2x02b";
   };
 
   buildInputs = [ jdk ];
@@ -32,11 +32,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "i2p";
-  version = "0.9.42";
+  version = "0.9.47";
 
   src = fetchurl {
     url = "https://download.i2p2.de/releases/${version}/i2psource_${version}.tar.bz2";
-    sha256 = "04y71hzkdpjzbac569rhyg1zfx37j0alggbl9gnkaqfbprb2nj1h";
+    sha256 = "0krcdm73qing7z918wpml9sk6dn0284wps2ghkmlrdaklfkavk6v";
   };
 
   buildInputs = [ jdk ant gettext which ];
@@ -77,6 +77,6 @@ stdenv.mkDerivation rec {
     homepage = "https://geti2p.net";
     license = licenses.gpl2;
     platforms = [ "x86_64-linux" "i686-linux" ];
-    maintainers = [ maintainers.joelmo ];
+    maintainers = with maintainers; [ joelmo ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/i2p/i2p.patch b/nixpkgs/pkgs/tools/networking/i2p/i2p.patch
index 74031eb7aef7..3bb4da729173 100644
--- a/nixpkgs/pkgs/tools/networking/i2p/i2p.patch
+++ b/nixpkgs/pkgs/tools/networking/i2p/i2p.patch
@@ -19,7 +19,7 @@ index eb4995dfe..0186cede3 100644
  
  # Try using the Java binary that I2P was installed with.
  # If it's not found, try looking in the system PATH.
--JAVA=$(which %JAVA_HOME/bin/java || which java)
+-JAVA=$(which "%JAVA_HOME"/bin/java || which java)
 +JAVA=%JAVA%
  
  if [ -z $JAVA ] || [ ! -x $JAVA ]; then
diff --git a/nixpkgs/pkgs/tools/networking/i2pd/default.nix b/nixpkgs/pkgs/tools/networking/i2pd/default.nix
index 5f9f3ceef07b..08c40a4ac827 100644
--- a/nixpkgs/pkgs/tools/networking/i2pd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/i2pd/default.nix
@@ -9,13 +9,13 @@ assert upnpSupport -> miniupnpc != null;
 
 stdenv.mkDerivation rec {
   pname = "i2pd";
-  version = "2.32.1";
+  version = "2.33.0";
 
   src = fetchFromGitHub {
     owner = "PurpleI2P";
     repo = pname;
     rev = version;
-    sha256 = "15ng2c7i3jxmhpc2q0dl8arc72qbsq9y9paz5hgln907yy7dqx7c";
+    sha256 = "1zsp4pml5pq8p1ipvarnlcfwcscch13iz1gzza5qm0yl01dl9qpk";
   };
 
   buildInputs = with stdenv.lib; [ boost zlib openssl ]
diff --git a/nixpkgs/pkgs/tools/networking/ipgrep/default.nix b/nixpkgs/pkgs/tools/networking/ipgrep/default.nix
index 6ea930fccaab..d9fc41e94b6f 100644
--- a/nixpkgs/pkgs/tools/networking/ipgrep/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ipgrep/default.nix
@@ -1,23 +1,25 @@
-{ stdenv, fetchFromGitHub, pythonPackages }:
+{ stdenv, fetchFromGitHub, python3Packages }:
 
-pythonPackages.buildPythonApplication rec {
-  version = "1.0";
+python3Packages.buildPythonApplication rec {
+  version = "1.0.1";
   pname = "ipgrep";
 
+  disabled = python3Packages.isPy27;
+
   src = fetchFromGitHub {
     owner = "jedisct1";
     repo = pname;
     rev = version;
-    sha256 = "1qaxvbqdalvz05aplhhrg7s4h7yx4clbfd50k46bgavhgcqqv8n3";
+    hash = "sha256-NrhcUFQM+L66KaDRRpAoC+z5s54a+1fqEepTRXVZ5Qs=";
   };
 
   patchPhase = ''
-    mkdir -p ${pname} 
+    mkdir -p ${pname}
     substituteInPlace setup.py \
       --replace "'scripts': []" "'scripts': { '${pname}.py' }"
   '';
 
-  propagatedBuildInputs = with pythonPackages; [
+  propagatedBuildInputs = with python3Packages; [
     pycares
     urllib3
     requests
diff --git a/nixpkgs/pkgs/tools/networking/isync/default.nix b/nixpkgs/pkgs/tools/networking/isync/default.nix
index 9ce1183d060c..44eb5c50ba80 100644
--- a/nixpkgs/pkgs/tools/networking/isync/default.nix
+++ b/nixpkgs/pkgs/tools/networking/isync/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "isync";
-  version = "1.3.1";
+  version = "1.3.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/isync/${pname}-${version}.tar.gz";
-    sha256 = "1sphd30jplii58y2zmw365bckm6pszmapcy905zhjll1sm1ldjv8";
+    sha256 = "10n8ykag0q3ws6fc15xqyg3v980v5nq3kzpablly2rh2z7vkn8gj";
   };
 
   nativeBuildInputs = [ pkg-config perl ];
diff --git a/nixpkgs/pkgs/tools/networking/kail/default.nix b/nixpkgs/pkgs/tools/networking/kail/default.nix
index e7c9b499675a..497afb459ef0 100644
--- a/nixpkgs/pkgs/tools/networking/kail/default.nix
+++ b/nixpkgs/pkgs/tools/networking/kail/default.nix
@@ -20,6 +20,7 @@ buildGoPackage rec {
   # git checkout <version>
   # dep init
   # dep2nix
+  deleteVendor = true;
   goDeps = ./deps.nix;
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/tools/networking/keepalived/default.nix b/nixpkgs/pkgs/tools/networking/keepalived/default.nix
index 076953161a33..11ebe228be88 100644
--- a/nixpkgs/pkgs/tools/networking/keepalived/default.nix
+++ b/nixpkgs/pkgs/tools/networking/keepalived/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "keepalived";
-  version = "2.0.20";
+  version = "2.1.3";
 
   src = fetchFromGitHub {
     owner = "acassen";
     repo = "keepalived";
     rev = "v${version}";
-    sha256 = "0ijzw56hbac24dhrgjd0hjgf45072imyzq3mcgsirdl3xqjc6x12";
+    sha256 = "1zdfvicpll7a5iw6p12pmdcg8y30mr0j5miycn0nhjp8yzi9hdc5";
   };
 
   buildInputs = [
diff --git a/nixpkgs/pkgs/tools/networking/lftp/default.nix b/nixpkgs/pkgs/tools/networking/lftp/default.nix
index 3bd61a0bd498..53568615a624 100644
--- a/nixpkgs/pkgs/tools/networking/lftp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/lftp/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "lftp";
-  version = "4.9.1";
+  version = "4.9.2";
 
   src = fetchurl {
     urls = [
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
       "https://ftp.st.ryukoku.ac.jp/pub/network/ftp/lftp/${pname}-${version}.tar.xz"
       "https://lftp.yar.ru/ftp/${pname}-${version}.tar.xz"
       ];
-    sha256 = "0jq2g8h1bx06ya9fsja748vwb2qrca4wsfrgi3fmaa8hznpgqsar";
+    sha256 = "03b7y0h3mf4jfq5y8zw6hv9v44z3n6i8hc1iswax96y3z7sc85y5";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/nixpkgs/pkgs/tools/networking/libreswan/default.nix b/nixpkgs/pkgs/tools/networking/libreswan/default.nix
index 71fdcc947d3a..3e7719c40d41 100644
--- a/nixpkgs/pkgs/tools/networking/libreswan/default.nix
+++ b/nixpkgs/pkgs/tools/networking/libreswan/default.nix
@@ -5,9 +5,6 @@
   }:
 
 let
-  optional = stdenv.lib.optional;
-  version = "3.31";
-  name = "libreswan-${version}";
   binPath = stdenv.lib.makeBinPath [
     bash iproute iptables procps coreutils gnused gawk nss.tools which python
   ];
@@ -16,13 +13,13 @@ in
 assert docs -> xmlto != null;
 assert stdenv.isLinux -> libselinux != null;
 
-stdenv.mkDerivation {
-  inherit name;
-  inherit version;
+stdenv.mkDerivation rec {
+  pname = "libreswan";
+  version = "3.32";
 
   src = fetchurl {
-    url = "https://download.libreswan.org/${name}.tar.gz";
-    sha256 = "1wxqsv11nqgfj5and5xzfgh6ayqvl47midcghd5ryynh60mp7naa";
+    url = "https://download.libreswan.org/${pname}-${version}.tar.gz";
+    sha256 = "0bj3g6qwd3ir3gk6hdl9npy3k44shf56vcgjahn30qpmx3z5fsr3";
   };
 
   # These flags were added to compile v3.18. Try to lift them when updating.
@@ -37,8 +34,8 @@ stdenv.mkDerivation {
   nativeBuildInputs = [ makeWrapper pkgconfig ];
   buildInputs = [ bash iproute iptables systemd coreutils gnused gawk gmp unbound bison flex pam libevent
                   libcap_ng curl nspr nss python ldns ]
-                ++ optional docs xmlto
-                ++ optional stdenv.isLinux libselinux;
+                ++ stdenv.lib.optional docs xmlto
+                ++ stdenv.lib.optional stdenv.isLinux libselinux;
 
   prePatch = ''
     # Correct bash path
diff --git a/nixpkgs/pkgs/tools/networking/linkchecker/default.nix b/nixpkgs/pkgs/tools/networking/linkchecker/default.nix
index 6f94e0c63c50..e4f2f1685763 100644
--- a/nixpkgs/pkgs/tools/networking/linkchecker/default.nix
+++ b/nixpkgs/pkgs/tools/networking/linkchecker/default.nix
@@ -1,27 +1,30 @@
-{ stdenv, lib, fetchFromGitHub, python2Packages, gettext }:
+{ stdenv, lib, fetchFromGitHub, python3Packages, gettext }:
 
-python2Packages.buildPythonApplication rec {
+with python3Packages;
+
+buildPythonApplication rec {
   pname = "linkchecker";
-  version = "9.4.0";
+  version = "unstable-2020-08-15";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
-    rev = "v${version}";
-    sha256 = "1vbwl2vb8dyzki27z3sl5yf9dhdd2cpkg10vbgaz868dhpqlshgs";
+    rev = "0086c28b3a419faa60562f2713346996062c03c2";
+    sha256 = "0am5id8vqlqn1gb9jri0vjgiq5ffgrjq8yzdk1zc98gn2n0397wl";
   };
 
   nativeBuildInputs = [ gettext ];
 
-  propagatedBuildInputs = with python2Packages; [
+  propagatedBuildInputs = [
     ConfigArgParse
     argcomplete
+    beautifulsoup4
     dnspython
     pyxdg
     requests
   ];
 
-  checkInputs = with python2Packages; [
+  checkInputs = [
     parameterized
     pytest
   ];
@@ -29,21 +32,14 @@ python2Packages.buildPythonApplication rec {
   postPatch = ''
     sed -i 's/^requests.*$/requests>=2.2/' requirements.txt
     sed -i "s/'request.*'/'requests >= 2.2'/" setup.py
-    sed -i 's~/usr/lib/python2.7/argparse.py~~g' po/Makefile
   '';
 
   checkPhase = ''
-    runHook preCheck
-
-    # the mime test fails for me...
-    rm tests/test_mimeutil.py
     ${lib.optionalString stdenv.isDarwin ''
       # network tests fails on darwin
       rm tests/test_network.py
     ''}
-    make test PYTESTOPTS="--tb=short" TESTS="tests/test_*.py tests/logger/test_*.py"
-
-    runHook postCheck
+      pytest --ignore=tests/checker/{test_telnet,telnetserver}.py -k 'not TestLoginUrl'
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/tools/networking/mailutils/default.nix b/nixpkgs/pkgs/tools/networking/mailutils/default.nix
index 935cadbd7b87..9cf5f91cd6d9 100644
--- a/nixpkgs/pkgs/tools/networking/mailutils/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mailutils/default.nix
@@ -115,6 +115,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.gnu.org/software/mailutils/";
 
     # Some of the dependencies fail to build on {cyg,dar}win.
-    platforms = platforms.gnu ++ platforms.linux;
+    platforms = platforms.gnu ++ platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/minio-client/default.nix b/nixpkgs/pkgs/tools/networking/minio-client/default.nix
index 4e81321dc627..505ecc4c2224 100644
--- a/nixpkgs/pkgs/tools/networking/minio-client/default.nix
+++ b/nixpkgs/pkgs/tools/networking/minio-client/default.nix
@@ -2,20 +2,26 @@
 
 buildGoModule rec {
   pname = "minio-client";
-  version = "2020-04-25T00-43-23Z";
+  version = "2020-08-08T02-33-58Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "mc";
     rev = "RELEASE.${version}";
-    sha256 = "0ff2fyr3787zp0lpgbph064am33py2wzjikzmxd3zwp3y0dic770";
+    sha256 = "15bkl3q0jidrwy04l0cdmha43r9wlxmlqkhmwz98b57rjrq6grql";
   };
 
-  vendorSha256 = "0nfcxz47v5gl0wih59xarhz82nd8wy61c3ijvg2v08ipk29zivcc";
+  vendorSha256 = "1fsx8zl2qkyf1gx3s6giccd86xawx9d1h4jdnyn1m36clsq9jkpc";
+
+  doCheck = false;
 
   subPackages = [ "." ];
 
-  buildFlagsArray = [ "-ldflags=-s -w -X github.com/minio/mc/cmd.Version=${version}" ];
+  patchPhase = ''
+    sed -i "s/Version.*/Version = \"${version}\"/g" cmd/build-constants.go
+    sed -i "s/ReleaseTag.*/ReleaseTag = \"RELEASE.${version}\"/g" cmd/build-constants.go
+    sed -i "s/CommitID.*/CommitID = \"${src.rev}\"/g" cmd/build-constants.go
+  '';
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/minio/mc";
@@ -24,4 +30,4 @@ buildGoModule rec {
     platforms = platforms.unix;
     license = licenses.asl20;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/networking/mitmproxy/default.nix b/nixpkgs/pkgs/tools/networking/mitmproxy/default.nix
deleted file mode 100644
index b9d873fad6af..000000000000
--- a/nixpkgs/pkgs/tools/networking/mitmproxy/default.nix
+++ /dev/null
@@ -1,55 +0,0 @@
-{ stdenv, fetchFromGitHub, python3Packages, glibcLocales, fetchpatch }:
-
-with python3Packages;
-
-buildPythonPackage rec {
-  pname = "mitmproxy";
-  version = "5.1.1";
-
-  src = fetchFromGitHub {
-    owner  = pname;
-    repo   = pname;
-    rev    = "v${version}";
-    sha256 = "1lirlckpvd3c6s6q3p32w4k4yfna5mlgr1x9g39lhzzq0sdiz3lk";
-  };
-
-  postPatch = ''
-    # remove dependency constraints
-    sed 's/>=\([0-9]\.\?\)\+\( \?, \?<\([0-9]\.\?\)\+\)\?//' -i setup.py
-  '';
-
-  doCheck = (!stdenv.isDarwin);
-
-  # examples.complex.xss_scanner doesn't import correctly with pytest5
-  checkPhase = ''
-    export HOME=$(mktemp -d)
-    export LC_CTYPE=en_US.UTF-8
-    pytest --ignore test/examples \
-      -k 'not test_find_unclaimed_URLs and not test_tcp'
-  '';
-
-  propagatedBuildInputs = [
-    blinker brotli certifi cffi
-    click cryptography flask h11
-    h2 hpack hyperframe itsdangerous
-    jinja2 kaitaistruct ldap3 markupsafe
-    passlib protobuf publicsuffix2 pyasn1
-    pycparser pyopenssl pyparsing pyperclip
-    ruamel_yaml setuptools six sortedcontainers
-    tornado urwid werkzeug wsproto zstandard
-  ];
-
-  checkInputs = [
-    beautifulsoup4 flask pytest
-    requests glibcLocales
-    asynctest parver pytest-asyncio
-    hypothesis
-  ];
-
-  meta = with stdenv.lib; {
-    description = "Man-in-the-middle proxy";
-    homepage    = "https://mitmproxy.org/";
-    license     = licenses.mit;
-    maintainers = with maintainers; [ fpletz kamilchm ];
-  };
-}
diff --git a/nixpkgs/pkgs/tools/networking/mozwire/default.nix b/nixpkgs/pkgs/tools/networking/mozwire/default.nix
new file mode 100644
index 000000000000..6264672cfaa1
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/mozwire/default.nix
@@ -0,0 +1,24 @@
+{ rustPlatform, stdenv, fetchFromGitHub, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "MozWire";
+  version = "0.5.1";
+
+  src = fetchFromGitHub {
+    owner = "NilsIrl";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "07icgswmfvrvlm3mkm78pbbk6m2hb73j7ffj7r77whzb11v027v1";
+  };
+
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
+  
+  cargoSha256 = "10lhz7bdlfqj7wgsqnsxdfskms33pvj176fhf4kwci7nb8vgai4b";
+
+  meta = with stdenv.lib; {
+    description = "MozillaVPN configuration manager giving Linux, macOS users (among others), access to MozillaVPN";
+    homepage = "https://github.com/NilsIrl/MozWire";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ siraben nilsirl ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/mtr/default.nix b/nixpkgs/pkgs/tools/networking/mtr/default.nix
index ae5695537af4..6b8b2f923745 100644
--- a/nixpkgs/pkgs/tools/networking/mtr/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mtr/default.nix
@@ -1,27 +1,19 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, autoreconfHook, pkgconfig
+{ stdenv, lib, fetchFromGitHub, autoreconfHook, pkg-config
 , libcap, ncurses
-, withGtk ? false, gtk2 ? null }:
+, withGtk ? false, gtk3 ? null }:
 
-assert withGtk -> gtk2 != null;
+assert withGtk -> gtk3 != null;
 
 stdenv.mkDerivation rec {
   pname = "mtr${lib.optionalString withGtk "-gui"}";
-  version = "0.93";
+  version = "0.94";
 
   src = fetchFromGitHub {
     owner  = "traviscross";
     repo   = "mtr";
     rev    = "v${version}";
-    sha256 = "0n0zr9k61w7a9psnzgp7xnc7ll1ic2xzcvqsbbbyndg3v9rff6bw";
+    sha256 = "0wnz87cr2lcl74bj8qxq9xgai40az3pk9k0z893scyc8svd61xz6";
   };
-  
-  patches = [
-    # https://github.com/traviscross/mtr/pull/315
-    (fetchpatch {
-      url = "https://github.com/traviscross/mtr/pull/315.patch?full_index=1";
-      sha256 = "18qcsj9058snc2qhq6v6gdbqhz021gi5fgw9h7vfczv45gf0qasa";
-    })
-  ];
 
   # we need this before autoreconfHook does its thing
   postPatch = ''
@@ -36,10 +28,10 @@ stdenv.mkDerivation rec {
 
   configureFlags = stdenv.lib.optional (!withGtk) "--without-gtk";
 
-  nativeBuildInputs = [ autoreconfHook pkgconfig ];
+  nativeBuildInputs = [ autoreconfHook pkg-config ];
 
   buildInputs = [ ncurses ]
-    ++ stdenv.lib.optional withGtk gtk2
+    ++ stdenv.lib.optional withGtk gtk3
     ++ stdenv.lib.optional stdenv.isLinux libcap;
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/tools/networking/mu/default.nix b/nixpkgs/pkgs/tools/networking/mu/default.nix
index fc693bae212d..82a22dd947d7 100644
--- a/nixpkgs/pkgs/tools/networking/mu/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mu/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mu";
-  version = "1.4.10";
+  version = "1.4.13";
 
   src = fetchFromGitHub {
     owner  = "djcb";
     repo   = "mu";
     rev    = version;
-    sha256 = "10vnqlpphjkkiji42sfs954l1zfgwnic7mmpr4nx6yx44z619v0y";
+    sha256 = "03cp2ppj07xpb0c43d3cr8m9jps07mfm8clmlk03sjbxg1widsh0";
   };
 
   postPatch = stdenv.lib.optionalString (batchSize != null) ''
diff --git a/nixpkgs/pkgs/tools/networking/ncftp/default.nix b/nixpkgs/pkgs/tools/networking/ncftp/default.nix
index 98fa6cc29f1a..d8c37ff58707 100644
--- a/nixpkgs/pkgs/tools/networking/ncftp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ncftp/default.nix
@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   preConfigure = ''
+    find -name Makefile.in | xargs sed -i '/^TMPDIR=/d'
+
     find . -name '*.sh' -or -name '*.in' -or -name '*.c' -or -name configure | xargs sed -i \
       -e 's@/bin/ls@${coreutils}/bin/ls@g' \
       -e 's@/bin/rm@${coreutils}/bin/rm@g'
diff --git a/nixpkgs/pkgs/tools/networking/nebula/default.nix b/nixpkgs/pkgs/tools/networking/nebula/default.nix
index 69fc3e7a8b00..b3cd0d830245 100644
--- a/nixpkgs/pkgs/tools/networking/nebula/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nebula/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "nebula";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "slackhq";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0xrki9w83b4b3l5adq1rxz374f124wf388sdyvy7ngc3b04k7qlb";
+    sha256 = "08pjzlqck9524phsmqjwg6237vj1mmwsynkxivnahv1vhwyy9awz";
   };
 
-  vendorSha256 = "094mn1r69c40w7k3lsggjh0dpws9l0j7mgiyjy1lpblkvkyk2azm";
+  vendorSha256 = "1g6wk5sydxbzpx62k4bdq4qnyk98mn1pljgi5hbffj01ipd82kq8";
+
+  doCheck = false;
 
   subPackages = [ "cmd/nebula" "cmd/nebula-cert" ];
 
@@ -37,7 +39,6 @@ buildGoModule rec {
     homepage = "https://github.com/slackhq/nebula";
     license = licenses.mit;
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
 
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/networking/netifd/default.nix b/nixpkgs/pkgs/tools/networking/netifd/default.nix
index 38591f38fcf8..36d1ec7a423a 100644
--- a/nixpkgs/pkgs/tools/networking/netifd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/netifd/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation {
   pname = "netifd";
-  version = "unstable-2020-01-18";
+  version = "unstable-2020-07-11";
 
   src = fetchgit {
     url = "https://git.openwrt.org/project/netifd.git";
-    rev = "1321c1bd8fe921986c4eb39c3783ddd827b79543";
-    sha256 = "178pckyf1cydi6zzr4bmhksv8vyaks91zv9lqqd2z5nkmccl6vf3";
+    rev = "3d9bd73e8c2d8a1f78effbe92dd2495bbd2552c4";
+    sha256 = "085sx1gsigbi1jr19l387rc5p6ja1np6q2gb84khjd4pyiqwk840";
   };
 
   buildInputs = [ libnl libubox uci ubus json_c ];
diff --git a/nixpkgs/pkgs/tools/networking/network-manager/applet/default.nix b/nixpkgs/pkgs/tools/networking/network-manager/applet/default.nix
index 109c4c8cce15..9f92fcfa1ab3 100644
--- a/nixpkgs/pkgs/tools/networking/network-manager/applet/default.nix
+++ b/nixpkgs/pkgs/tools/networking/network-manager/applet/default.nix
@@ -26,11 +26,11 @@
 
 stdenv.mkDerivation rec {
   pname = "network-manager-applet";
-  version = "1.16.0";
+  version = "1.18.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "1rf3nm0hjcy9f8ajb4vmvwy503w8yj8d4daxkcb7w7i7b92qmyfn";
+    sha256 = "12xiy8g8qk18jvxvn78mvq03zvzp06bww49na765jjw0rq541fyx";
   };
 
   mesonFlags = [
diff --git a/nixpkgs/pkgs/tools/networking/network-manager/default.nix b/nixpkgs/pkgs/tools/networking/network-manager/default.nix
index baf2128153aa..f5b12a6cf373 100644
--- a/nixpkgs/pkgs/tools/networking/network-manager/default.nix
+++ b/nixpkgs/pkgs/tools/networking/network-manager/default.nix
@@ -10,11 +10,11 @@ let
   pythonForDocs = python3.withPackages (pkgs: with pkgs; [ pygobject3 ]);
 in stdenv.mkDerivation rec {
   pname = "network-manager";
-  version = "1.22.10";
+  version = "1.26.0";
 
   src = fetchurl {
     url = "mirror://gnome/sources/NetworkManager/${stdenv.lib.versions.majorMinor version}/NetworkManager-${version}.tar.xz";
-    sha256 = "0xyaizyp3yz6x3pladw3nvl3hf4n5g140zx9jnxfp9qvag0wqa9b";
+    sha256 = "0isdqwp58d7r92sqsk7l2vlqwy518n8b7c7z94jk9gc1bdmjf8sj";
   };
 
   outputs = [ "out" "dev" "devdoc" "man" "doc" ];
@@ -41,7 +41,6 @@ in stdenv.mkDerivation rec {
     "-Dcrypto=gnutls"
     "-Dsession_tracking=systemd"
     "-Dmodem_manager=true"
-    "-Dpolkit_agent=true"
     "-Dnmtui=true"
     "-Ddocs=true"
     "-Dtests=no"
@@ -49,12 +48,14 @@ in stdenv.mkDerivation rec {
     # Allow using iwd when configured to do so
     "-Diwd=true"
     "-Dlibaudit=yes-disabled-by-default"
+    # We don't use firewalld in NixOS
+    "-Dfirewalld_zone=false"
   ];
 
   patches = [
     (substituteAll {
       src = ./fix-paths.patch;
-      inherit iputils kmod openconnect ethtool gnused systemd;
+      inherit iputils kmod openconnect ethtool gnused systemd polkit;
       inherit runtimeShell;
     })
 
diff --git a/nixpkgs/pkgs/tools/networking/network-manager/dmenu/default.nix b/nixpkgs/pkgs/tools/networking/network-manager/dmenu/default.nix
index f84ef027f762..4204ba1fcdba 100644
--- a/nixpkgs/pkgs/tools/networking/network-manager/dmenu/default.nix
+++ b/nixpkgs/pkgs/tools/networking/network-manager/dmenu/default.nix
@@ -4,13 +4,13 @@
 let inherit (python3Packages) python pygobject3;
 in stdenv.mkDerivation rec {
   pname = "networkmanager_dmenu";
-  version = "1.1";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "firecat53";
     repo = "networkmanager-dmenu";
-    rev = "v${version}";
-    sha256 = "1z6151z7c4jv5k2i50zr7ld4k3m07dgpmss9f3hsav95cv55dcnb";
+    rev = "${version}";
+    sha256 = "1msk4zkm4042av61rgbwc62i62vnv9py93fm1bczmw0b1f54qpmk";
   };
 
   buildInputs = [ glib python pygobject3 gobject-introspection networkmanager python3Packages.wrapPython ];
diff --git a/nixpkgs/pkgs/tools/networking/network-manager/fix-install-paths.patch b/nixpkgs/pkgs/tools/networking/network-manager/fix-install-paths.patch
index 02a006c1c3db..4e80247cf144 100644
--- a/nixpkgs/pkgs/tools/networking/network-manager/fix-install-paths.patch
+++ b/nixpkgs/pkgs/tools/networking/network-manager/fix-install-paths.patch
@@ -1,8 +1,8 @@
 diff --git a/meson.build b/meson.build
-index 0af69f35d..9ab239c8a 100644
+index a2d925a7e..5a65cd2fe 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -912,9 +912,9 @@ meson.add_install_script(
+@@ -959,9 +959,9 @@ meson.add_install_script(
    join_paths('tools', 'meson-post-install.sh'),
    nm_datadir,
    nm_bindir,
diff --git a/nixpkgs/pkgs/tools/networking/network-manager/fix-paths.patch b/nixpkgs/pkgs/tools/networking/network-manager/fix-paths.patch
index af35fc0a36bf..60ee437f6f4a 100644
--- a/nixpkgs/pkgs/tools/networking/network-manager/fix-paths.patch
+++ b/nixpkgs/pkgs/tools/networking/network-manager/fix-paths.patch
@@ -1,8 +1,21 @@
+diff --git a/clients/common/nm-polkit-listener.c b/clients/common/nm-polkit-listener.c
+index ace205e80..f19c1dea0 100644
+--- a/clients/common/nm-polkit-listener.c
++++ b/clients/common/nm-polkit-listener.c
+@@ -552,7 +552,7 @@ begin_authentication (AuthRequest *request)
+ {
+ 	int fd_flags;
+ 	const char *helper_argv[] = {
+-		POLKIT_PACKAGE_PREFIX "/lib/polkit-1/polkit-agent-helper-1",
++		"/run/wrappers/bin/polkit-agent-helper-1",
+ 		request->username,
+ 		NULL,
+ 	};
 diff --git a/clients/common/nm-vpn-helpers.c b/clients/common/nm-vpn-helpers.c
-index ffae5f553..ba1093e4d 100644
+index 74ff52bb2..638857df4 100644
 --- a/clients/common/nm-vpn-helpers.c
 +++ b/clients/common/nm-vpn-helpers.c
-@@ -203,10 +203,7 @@ nm_vpn_openconnect_authenticate_helper (const char *host,
+@@ -213,10 +213,7 @@ nm_vpn_openconnect_authenticate_helper (const char *host,
  		NULL,
  	};
  
@@ -40,35 +53,25 @@ index 91ebd9a36..5201a56c3 100644
  ExecStart=@sbindir@/NetworkManager --no-daemon
  Restart=on-failure
 diff --git a/libnm/meson.build b/libnm/meson.build
-index 51ca46d2b..0c04cc216 100644
+index d3991ab19..58f01c666 100644
 --- a/libnm/meson.build
 +++ b/libnm/meson.build
-@@ -261,7 +261,7 @@ if enable_introspection
-     name,
-     input: libnm_gir[0],
-     output: name,
--    command: [generate_setting_docs_env, python.path(), generate_setting_docs, '--lib-path', meson.current_build_dir(), '--gir', '@INPUT@', '--output', '@OUTPUT@'],
-+    command: [generate_setting_docs_env, generate_setting_docs, '--lib-path', meson.current_build_dir(), '--gir', '@INPUT@', '--output', '@OUTPUT@'],
-     depends: libnm_gir,
-   )
- 
-@@ -270,7 +270,7 @@ if enable_introspection
-     name,
-     input: [libnm_gir[0], nm_settings_docs_overrides],
-     output: name,
--    command: [generate_setting_docs_env, python.path(), generate_setting_docs, '--lib-path', meson.current_build_dir(), '--gir', '@INPUT0@', '--overrides', '@INPUT1@', '--output', '@OUTPUT@'],
-+    command: [generate_setting_docs_env, generate_setting_docs, '--lib-path', meson.current_build_dir(), '--gir', '@INPUT0@', '--overrides', '@INPUT1@', '--output', '@OUTPUT@'],
-     depends: libnm_gir,
-   )
- endif
+@@ -283,7 +283,6 @@ if enable_introspection
+     output: 'nm-settings-docs-gir.xml',
+     command: [
+       generate_setting_docs_env,
+-      python.path(),
+       join_paths(meson.source_root(), 'tools', 'generate-docs-nm-settings-docs-gir.py'),
+       '--lib-path', meson.current_build_dir(),
+       '--gir', '@INPUT@',
 diff --git a/src/devices/nm-device.c b/src/devices/nm-device.c
-index e7a4a059a..0a8f8b7c6 100644
+index de09e4807..2755db165 100644
 --- a/src/devices/nm-device.c
 +++ b/src/devices/nm-device.c
-@@ -13179,14 +13179,14 @@ nm_device_start_ip_check (NMDevice *self)
+@@ -13705,14 +13705,14 @@ nm_device_start_ip_check (NMDevice *self)
  			gw = nm_ip4_config_best_default_route_get (priv->ip_config_4);
  			if (gw) {
- 				nm_utils_inet4_ntop (NMP_OBJECT_CAST_IP4_ROUTE (gw)->gateway, buf);
+ 				_nm_utils_inet4_ntop (NMP_OBJECT_CAST_IP4_ROUTE (gw)->gateway, buf);
 -				ping_binary = nm_utils_find_helper ("ping", "/usr/bin/ping", NULL);
 +				ping_binary = "@iputils@/bin/ping";
  				log_domain = LOGD_IP4;
@@ -76,14 +79,14 @@ index e7a4a059a..0a8f8b7c6 100644
  		} else if (priv->ip_config_6 && priv->ip_state_6 == NM_DEVICE_IP_STATE_DONE) {
  			gw = nm_ip6_config_best_default_route_get (priv->ip_config_6);
  			if (gw) {
- 				nm_utils_inet6_ntop (&NMP_OBJECT_CAST_IP6_ROUTE (gw)->gateway, buf);
+ 				_nm_utils_inet6_ntop (&NMP_OBJECT_CAST_IP6_ROUTE (gw)->gateway, buf);
 -				ping_binary = nm_utils_find_helper ("ping6", "/usr/bin/ping6", NULL);
 +				ping_binary = "@iputils@/bin/ping";
  				log_domain = LOGD_IP6;
  			}
  		}
 diff --git a/src/nm-core-utils.c b/src/nm-core-utils.c
-index fb92289f0..c91b27b09 100644
+index 3950c3c3a..a9436d75a 100644
 --- a/src/nm-core-utils.c
 +++ b/src/nm-core-utils.c
 @@ -336,7 +336,7 @@ nm_utils_modprobe (GError **error, gboolean suppress_error_logging, const char *
diff --git a/nixpkgs/pkgs/tools/networking/network-manager/iodine/default.nix b/nixpkgs/pkgs/tools/networking/network-manager/iodine/default.nix
index 47e5a2f41813..95d015f6964f 100644
--- a/nixpkgs/pkgs/tools/networking/network-manager/iodine/default.nix
+++ b/nixpkgs/pkgs/tools/networking/network-manager/iodine/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitLab, substituteAll, autoreconfHook, iodine, intltool, pkgconfig, networkmanager, libsecret, gtk3
-, withGnome ? true, gnome3, fetchpatch, libnma }:
+, withGnome ? true, gnome3, fetchpatch, libnma, glib }:
 
 let
   pname = "NetworkManager-iodine";
@@ -27,7 +27,7 @@ in stdenv.mkDerivation {
     })
   ];
 
-  buildInputs = [ iodine networkmanager ]
+  buildInputs = [ iodine networkmanager glib ]
     ++ stdenv.lib.optionals withGnome [ gtk3 libsecret libnma ];
 
   nativeBuildInputs = [ intltool autoreconfHook pkgconfig ];
diff --git a/nixpkgs/pkgs/tools/networking/network-manager/libnma/default.nix b/nixpkgs/pkgs/tools/networking/network-manager/libnma/default.nix
index 727c18e92c10..7d7889f9a5bc 100644
--- a/nixpkgs/pkgs/tools/networking/network-manager/libnma/default.nix
+++ b/nixpkgs/pkgs/tools/networking/network-manager/libnma/default.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libnma";
-  version = "1.8.28";
+  version = "1.8.30";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "09mp6k0hfam1vyyv9kcd8j4gb2r58i05ipx2nswb58ris599bxja";
+    sha256 = "1d5gzn7ss5vi0bhc8s4i5gsrck1ajslajam5jxfqazg094mffcys";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/tools/networking/network-manager/vpnc/default.nix b/nixpkgs/pkgs/tools/networking/network-manager/vpnc/default.nix
index 9c1d046e4fb6..6cd0d2e75f57 100644
--- a/nixpkgs/pkgs/tools/networking/network-manager/vpnc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/network-manager/vpnc/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, substituteAll, vpnc, intltool, pkgconfig, networkmanager, libsecret
-, gtk3, withGnome ? true, gnome3, kmod, file, fetchpatch, libnma }:
+, gtk3, withGnome ? true, gnome3, glib, kmod, file, fetchpatch, libnma }:
 let
   pname = "NetworkManager-vpnc";
   version = "1.2.6";
@@ -23,7 +23,7 @@ in stdenv.mkDerivation {
     })
   ];
 
-  buildInputs = [ vpnc networkmanager ]
+  buildInputs = [ vpnc networkmanager glib ]
     ++ stdenv.lib.optionals withGnome [ gtk3 libsecret libnma ];
 
   nativeBuildInputs = [ intltool pkgconfig file ];
diff --git a/nixpkgs/pkgs/tools/networking/nfdump/default.nix b/nixpkgs/pkgs/tools/networking/nfdump/default.nix
index 22d84a7f6999..11ba442393dd 100644
--- a/nixpkgs/pkgs/tools/networking/nfdump/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nfdump/default.nix
@@ -2,7 +2,7 @@
 , autoconf, automake, libtool, pkg-config
 , bzip2, libpcap, flex, yacc }:
 
-let version = "1.6.20"; in
+let version = "1.6.21"; in
 
 stdenv.mkDerivation {
   pname = "nfdump";
@@ -12,7 +12,7 @@ stdenv.mkDerivation {
     owner = "phaag";
     repo = "nfdump";
     rev = "v${version}";
-    sha256 = "06pywhymb92l0kac9djjpvlwrn1c7bxs3wm5yzrlaf815175ar3c";
+    sha256 = "1ifxnpyzyn8nd6n44pjcw0rwck392nzj1gwa4zzqvvgzj477m6ha";
   };
 
   nativeBuildInputs = [ autoconf automake flex libtool pkg-config yacc ];
diff --git a/nixpkgs/pkgs/tools/networking/ngrok-2/default.nix b/nixpkgs/pkgs/tools/networking/ngrok-2/default.nix
index f17849ef757c..d9c1acc374c0 100644
--- a/nixpkgs/pkgs/tools/networking/ngrok-2/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ngrok-2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, patchelfUnstable }:
+{ stdenv, fetchurl }:
 
 with stdenv.lib;
 
@@ -24,8 +24,6 @@ stdenv.mkDerivation {
 
   sourceRoot = ".";
 
-  nativeBuildInputs = optionals stdenv.isLinux [ patchelfUnstable ];
-
   unpackPhase = "cp $src ngrok";
 
   buildPhase = "chmod a+x ngrok";
diff --git a/nixpkgs/pkgs/tools/networking/ntp/default.nix b/nixpkgs/pkgs/tools/networking/ntp/default.nix
index d118227c3268..a7deaf7b6948 100644
--- a/nixpkgs/pkgs/tools/networking/ntp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ntp/default.nix
@@ -8,11 +8,11 @@ let
 in
 
 stdenv.mkDerivation rec {
-  name = "ntp-4.2.8p14";
+  name = "ntp-4.2.8p15";
 
   src = fetchurl {
     url = "https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/${name}.tar.gz";
-    sha256 = "1dsfbrad5adwjnm3k0y0ip8dzs7r2nmw66vjil8gvapnh7qf8q0r";
+    sha256 = "06cwhimm71safmwvp6nhxp6hvxsg62whnbgbgiflsqb8mgg40n7n";
   };
 
   # The hardcoded list of allowed system calls for seccomp is
diff --git a/nixpkgs/pkgs/tools/networking/obfs4/default.nix b/nixpkgs/pkgs/tools/networking/obfs4/default.nix
index 784c6d5c638e..0a74deea17d5 100644
--- a/nixpkgs/pkgs/tools/networking/obfs4/default.nix
+++ b/nixpkgs/pkgs/tools/networking/obfs4/default.nix
@@ -12,10 +12,12 @@ buildGoModule rec {
 
   vendorSha256 = "0h3gjxv26pc6cysvy1hny2f4abw6i847dk8fx0m113ixx9qghk87";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "A pluggable transport proxy";
     homepage = "https://www.torproject.org/projects/obfsproxy";
     repositories.git = "https://git.torproject.org/pluggable-transports/obfs4.git";
     maintainers = with maintainers; [ phreedom thoughtpolice ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/networking/oneshot/default.nix b/nixpkgs/pkgs/tools/networking/oneshot/default.nix
new file mode 100644
index 000000000000..f02370ab69d5
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/oneshot/default.nix
@@ -0,0 +1,26 @@
+{ lib, fetchFromGitHub, buildGoModule }:
+
+buildGoModule rec {
+  pname = "oneshot";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "raphaelreyna";
+    repo = "oneshot";
+    rev = "v${version}";
+    sha256 = "11xmvqj7md970rjhkg1zj2w6yqpw6cj83aw37a82sfdn90kyhg9d";
+  };
+
+  vendorSha256 = "1cxr96yrrmz37r542mc5376jll9lqjqm18k8761h9jqfbzmh9rkp";
+
+  doCheck = false;
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "A first-come-first-serve single-fire HTTP server";
+    homepage = "https://github.com/raphaelreyna/oneshot";
+    license = licenses.mit;
+    maintainers = with maintainers; [ edibopp ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/openfortivpn/default.nix b/nixpkgs/pkgs/tools/networking/openfortivpn/default.nix
index a5e46c6bc575..40fc9e906625 100644
--- a/nixpkgs/pkgs/tools/networking/openfortivpn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openfortivpn/default.nix
@@ -29,6 +29,6 @@ in stdenv.mkDerivation {
     homepage = "https://github.com/adrienverge/openfortivpn";
     license = stdenv.lib.licenses.gpl3;
     maintainers = [ stdenv.lib.maintainers.madjar ];
-    platforms = stdenv.lib.platforms.linux;
+    platforms = with stdenv.lib.platforms; linux ++ darwin;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/openresolv/default.nix b/nixpkgs/pkgs/tools/networking/openresolv/default.nix
index a80f94d2e9f2..58985f73f30a 100644
--- a/nixpkgs/pkgs/tools/networking/openresolv/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openresolv/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "openresolv";
-  version = "3.10.0";
+  version = "3.11.0";
 
   src = fetchurl {
     url = "mirror://roy/openresolv/${pname}-${version}.tar.xz";
-    sha256 = "01ms6c087la4hk0f0w6n2vpsb7dg4kklah2rqyhz88p0vr9bqy20";
+    sha256 = "0g7wb2880hbr0x99n73m7fgjm7lcdbpxfy2i620zxcq73qfrvspa";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/networking/openssh/default.nix b/nixpkgs/pkgs/tools/networking/openssh/default.nix
index 1703e8c75594..64e6757891e3 100644
--- a/nixpkgs/pkgs/tools/networking/openssh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openssh/default.nix
@@ -1,4 +1,12 @@
-{ stdenv, fetchurl, fetchpatch, zlib, openssl, libedit, pkgconfig, pam, autoreconfHook
+{ stdenv
+, fetchurl
+, fetchpatch
+, zlib
+, openssl
+, libedit
+, pkgconfig
+, pam
+, autoreconfHook
 , etcDir ? null
 , hpnSupport ? false
 , withKerberos ? true
@@ -6,33 +14,35 @@
 , kerberos
 , libfido2
 , withFIDO ? stdenv.hostPlatform.isUnix && !stdenv.hostPlatform.isMusl
-, linkOpenssl? true
+, linkOpenssl ? true
 }:
 
 let
 
+  version = "8.3p1";
+
   # **please** update this patch when you update to a new openssh release.
   gssapiPatch = fetchpatch {
     name = "openssh-gssapi.patch";
-    url = "https://salsa.debian.org/ssh-team/openssh/raw/debian/1%258.2p1-1/debian/patches/gssapi.patch";
-    sha256 = "081gryqkfr5zr4f5m4v0piq1sxz06sb38z5lqxccgpivql7pa8d8";
+    url = "https://salsa.debian.org/ssh-team/openssh/raw/debian/1%25${version}-1/debian/patches/gssapi.patch";
+    sha256 = "0j22ccg6msyi88mpsb6x0il5cg8v2b7qdah57ninbwx5isyld80l";
   };
 
 in
 with stdenv.lib;
 stdenv.mkDerivation rec {
   pname = "openssh";
-  version = if hpnSupport then "8.1p1" else "8.2p1";
+  inherit version;
 
   src = if hpnSupport then
       fetchurl {
-        url = "https://github.com/rapier1/openssh-portable/archive/hpn-KitchenSink-8_1_P1.tar.gz";
-        sha256 = "1xiv28df9c15h44fv1i93fq8rvkyapjj9vj985ndnw3xk1nvqjyd";
+        url = "https://github.com/rapier1/openssh-portable/archive/hpn-KitchenSink-${replaceStrings [ "." "p" ] [ "_" "_P" ] version}.tar.gz";
+        sha256 = "1ssdwgdxnvjwigisqi8c053znps5a4jf7bzsi99y0xyfzbw0x55k";
       }
     else
       fetchurl {
         url = "mirror://openbsd/OpenSSH/portable/${pname}-${version}.tar.gz";
-        sha256 = "0wg6ckzvvklbzznijxkk28fb8dnwyjd0w30ra0afwv6gwr8m34j3";
+        sha256 = "1cl74ghi9y21dc3f4xa0qamb7dhwacbynh1ks9syprrg8zhgpgpj";
       };
 
   patches =
@@ -99,8 +109,9 @@ stdenv.mkDerivation rec {
   ];
 
   meta = {
-    homepage = "http://www.openssh.com/";
     description = "An implementation of the SSH protocol";
+    homepage = "https://www.openssh.com/";
+    changelog = "https://www.openssh.com/releasenotes.html";
     license = stdenv.lib.licenses.bsd2;
     platforms = platforms.unix ++ platforms.windows;
     maintainers = with maintainers; [ eelco aneeshusa ];
diff --git a/nixpkgs/pkgs/tools/networking/p2p/gtk-gnutella/default.nix b/nixpkgs/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
index 08163bd8a9e2..710f7dedb997 100644
--- a/nixpkgs/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
+++ b/nixpkgs/pkgs/tools/networking/p2p/gtk-gnutella/default.nix
@@ -19,13 +19,13 @@ stdenv.mkDerivation rec {
   pname = "gtk-gnutella";
   # NOTE: Please remove hardeningDisable on the next release, see:
   # https://sourceforge.net/p/gtk-gnutella/bugs/555/#5c19
-  version = "1.1.15";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "gtk-gnutella";
     repo = "gtk-gnutella";
     rev = "v${version}";
-    sha256 = "1g7w6ywwp2g4qdgmfqkrl1rldk1b4rx50yb7h75hh15mh6nr159r";
+    sha256 = "0j596dpajk68bkry0gmpqawsi61rphfciy4vji1dh890jyhkhdgy";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/networking/p2p/seeks/default.nix b/nixpkgs/pkgs/tools/networking/p2p/seeks/default.nix
deleted file mode 100644
index eccf38f39fdc..000000000000
--- a/nixpkgs/pkgs/tools/networking/p2p/seeks/default.nix
+++ /dev/null
@@ -1,69 +0,0 @@
-{ fetchgit, stdenv, zlib, bzip2, docbook2x, pcre, curl, libxml2, libevent, perl
-, pkgconfig, protobuf, tokyocabinet, tokyotyrant, opencv, autoconf, automake
-, libtool, seeks_confDir ? ""
-}:
-
-stdenv.mkDerivation {
-  name = "seeks-0.4.1";
-
-  src = fetchgit {
-    url = "git://github.com/beniz/seeks.git";
-    rev = "1168b3a2f3111c3fca31dd961135194c3e8df5fd";
-    sha256 = "18s2pxal9a2aayv63hc19vnkx5a5y9rhbipdpvkinbni5283iiar";
-  };
-
-  buildInputs =
-    [ zlib bzip2 docbook2x pcre curl libxml2 libevent perl pkgconfig
-      protobuf tokyocabinet tokyotyrant opencv autoconf automake libtool
-    ];
-
-  configureFlags =
-    [ # Enable the built-in web server providing a web search interface.
-      "--enable-httpserv-plugin=yes"
-      "--with-libevent=${libevent.dev}"
-    ];
-
-  preConfigure = ''
-    ./autogen.sh
-  '';
-
-  postInstall = stdenv.lib.optionalString (seeks_confDir != "") ''
-    ln -svf ${seeks_confDir}/config $out/etc/seeks/config
-    ln -svf ${seeks_confDir}/cf-config $out/etc/seeks/cf-config
-    ln -svf ${seeks_confDir}/httpserv-config $out/etc/seeks/httpserv-config
-    ln -svf ${seeks_confDir}/img-websearch-config $out/etc/seeks/img-websearch-config
-    ln -svf ${seeks_confDir}/lsh-config $out/etc/seeks/lsh-config
-    ln -svf ${seeks_confDir}/query-capture-config $out/etc/seeks/query-capture-config
-    ln -svf ${seeks_confDir}/udb-service-config $out/etc/seeks/udb-service-config
-    ln -svf ${seeks_confDir}/uri-capture-config $out/etc/seeks/uri-capture-config
-    ln -svf ${seeks_confDir}/websearch-config $out/etc/seeks/websearch-config
-  '';
-
-  # FIXME: Test suite needs <https://code.google.com/p/googletest/>.
-  doCheck = false;
-
-  meta = {
-    description = "Seeks, a social web search engine";
-
-    longDescription =
-      '' Seeks is a free and open technical design and application for
-         enabling social websearch.  Its specific purpose is to regroup users
-         whose queries are similar so they can share both the query results
-         and their experience on these results.  On this basis, Seeks allows
-         for true real-time, decentralized, websearch to emerge.
-
-         In the long term, there is no need for web crawlers and third-party
-         web indexes as users can push content directly to search groups.
-      '';
-
-    license = stdenv.lib.licenses.agpl3Plus;
-
-    homepage = "http://www.seeks-project.info/";
-
-    maintainers = [
-      stdenv.lib.maintainers.matejc
-    ];
-    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;  # arbitrary choice
-    broken = true; # 2018-04-11
-  };
-}
diff --git a/nixpkgs/pkgs/tools/networking/persepolis/default.nix b/nixpkgs/pkgs/tools/networking/persepolis/default.nix
index 63e2af48c1ea..ecceed216607 100644
--- a/nixpkgs/pkgs/tools/networking/persepolis/default.nix
+++ b/nixpkgs/pkgs/tools/networking/persepolis/default.nix
@@ -6,22 +6,24 @@
 , pyqt5
 , requests
 , setproctitle
+, setuptools
 , sound-theme-freedesktop
+, wrapQtAppsHook
 , youtube-dl
 }:
 
 buildPythonApplication rec {
   pname = "persepolis";
-  version = "3.1.0";
+  version = "3.2.0";
 
   src = fetchFromGitHub {
     owner = "persepolisdm";
     repo = "persepolis";
     rev = version;
-    sha256 = "0xngk8wgj5k27mh3bcrf2wwzqr8a3g0d4pc5i5vcavnnaj03j44m";
+    sha256 = "1rh7q432ynbysapsd075nif975ync71icpb71x2mb4j8jx1vzs45";
   };
 
-  # see: https://github.com/persepolisdm/persepolis/blob/3.1.0/setup.py#L130
+  # see: https://github.com/persepolisdm/persepolis/blob/3.2.0/setup.py#L130
   doCheck = false;
 
   preBuild=''
@@ -36,10 +38,17 @@ buildPythonApplication rec {
   postInstall = ''
      mkdir -p $out/share/applications
      cp $src/xdg/com.github.persepolisdm.persepolis.desktop $out/share/applications
-     wrapProgram $out/bin/persepolis --prefix PATH : "${lib.makeBinPath [aria libnotify ]}"
   '';
 
-  buildInputs = [ makeWrapper ];
+  # prevent double wrapping
+  dontWrapQtApps = true;
+  nativeBuildInputs = [ wrapQtAppsHook ];
+
+  # feed args to wrapPythonApp
+  makeWrapperArgs = [
+    "--prefix PATH : ${lib.makeBinPath [aria libnotify ]}"
+    ''''${qtWrapperArgs[@]}''
+  ];
 
   propagatedBuildInputs = [
     pulseaudio
@@ -47,6 +56,7 @@ buildPythonApplication rec {
     pyqt5
     requests
     setproctitle
+    setuptools
     sound-theme-freedesktop
     youtube-dl
   ];
diff --git a/nixpkgs/pkgs/tools/networking/phodav/default.nix b/nixpkgs/pkgs/tools/networking/phodav/default.nix
index c6b479dd2507..4939e75661ec 100644
--- a/nixpkgs/pkgs/tools/networking/phodav/default.nix
+++ b/nixpkgs/pkgs/tools/networking/phodav/default.nix
@@ -2,14 +2,14 @@
 , pkgconfig, libsoup, meson, ninja }:
 
 let
-  version = "2.4";
+  version = "2.5";
 in stdenv.mkDerivation rec {
   pname = "phodav";
   inherit version;
 
   src = fetchurl {
     url = "http://ftp.gnome.org/pub/GNOME/sources/phodav/${version}/${pname}-${version}.tar.xz";
-    sha256 = "1hxq8c5qfah3w7mxcyy3yhzdgswplll31a69p5mqdl04bsvw5pbx";
+    sha256 = "045rdzf8isqmzix12lkz6z073b5qvcqq6ad028advm5gf36skw3i";
   };
 
   mesonFlags = [
diff --git a/nixpkgs/pkgs/tools/networking/pixiecore/default.nix b/nixpkgs/pkgs/tools/networking/pixiecore/default.nix
index 60d2a0986b16..d0e76832ea90 100644
--- a/nixpkgs/pkgs/tools/networking/pixiecore/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pixiecore/default.nix
@@ -13,6 +13,9 @@ buildGoModule rec {
   };
 
   vendorSha256 = "08n3m6fkwh8jmmzky3ygij4gxlcqidqk5ywi8ki8bkyzzs2lqaw7";
+
+  doCheck = false;
+
   subPackages = [ "cmd/pixiecore" ];
 
   meta = {
@@ -22,4 +25,4 @@ buildGoModule rec {
     maintainers = with stdenv.lib.maintainers; [ bbigras danderson ];
     platforms = stdenv.lib.platforms.linux;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/networking/pmacct/default.nix b/nixpkgs/pkgs/tools/networking/pmacct/default.nix
index 861c44ef70fe..ffecbfcaf425 100644
--- a/nixpkgs/pkgs/tools/networking/pmacct/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pmacct/default.nix
@@ -22,14 +22,14 @@ assert withMysql -> libmysqlclient != null;
 let inherit (stdenv.lib) optional; in
 
 stdenv.mkDerivation rec {
-  version = "1.7.3";
+  version = "1.7.5";
   pname = "pmacct";
 
   src = fetchFromGitHub {
     owner = "pmacct";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0j5qmkya67q7jvaddcj00blmaac37bkir1zb3m1xmm95gm5lf2p5";
+    sha256 = "17p5isrq5w58hvmzhc6akbd37ins3c95g0rvhhdm0v33khzxmran";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig libtool ];
@@ -56,7 +56,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://www.pmacct.net/";
     license = licenses.gpl2;
-    maintainers = [ maintainers."0x4A6F" ];
+    maintainers = with maintainers; [ _0x4A6F ];
     platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/radsecproxy/default.nix b/nixpkgs/pkgs/tools/networking/radsecproxy/default.nix
index ab5ff481ec7a..e2a0c900c52a 100644
--- a/nixpkgs/pkgs/tools/networking/radsecproxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/radsecproxy/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "radsecproxy";
-  version = "1.8.1";
+  version = "1.8.2";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "12pvwd7v3iswki3riycxaiiqxingg4bqnkwc5ay3j4n2kzynr1qg";
+    sha256 = "1g7q128cip1dac9jad58rd96afx4xz7x7vsiv0af8iyq2ivqvs2m";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/nixpkgs/pkgs/tools/networking/s3gof3r/default.nix b/nixpkgs/pkgs/tools/networking/s3gof3r/default.nix
index d53d60333baf..0930be914cfe 100644
--- a/nixpkgs/pkgs/tools/networking/s3gof3r/default.nix
+++ b/nixpkgs/pkgs/tools/networking/s3gof3r/default.nix
@@ -4,7 +4,7 @@ buildGoPackage rec {
   pname = "s3gof3r";
   version = "20151109-${stdenv.lib.strings.substring 0 7 rev}";
   rev = "31603a0dc94aefb822bfe2ceea75a6be6013b445";
-  
+
   goPackagePath = "github.com/rlmcpherson/s3gof3r";
 
   src = fetchgit {
diff --git a/nixpkgs/pkgs/tools/networking/shadowfox/default.nix b/nixpkgs/pkgs/tools/networking/shadowfox/default.nix
index f4cc57c9c8b2..d1cc33457737 100644
--- a/nixpkgs/pkgs/tools/networking/shadowfox/default.nix
+++ b/nixpkgs/pkgs/tools/networking/shadowfox/default.nix
@@ -11,11 +11,13 @@ buildGoModule rec {
     sha256 = "125mw70jidbp436arhv77201jdp6mpgqa2dzmrpmk55f9bf29sg6";
   };
 
-  goPackagePath = "github.com/SrKomodo/shadowfox-updater";
-
   vendorSha256 = "06ar9ivry9b01609izjbl6hqgg0cy7aqd8n2cqpyq0g7my0l0lbj";
 
-  buildFlags = [ "--tags" "release" ];
+  doCheck = false;
+
+  buildFlagsArray = [
+    "-ldflags=-X main.tag=v${version}"
+  ];
 
   meta = with stdenv.lib; {
     description = ''
@@ -24,7 +26,6 @@ buildGoModule rec {
     '';
     homepage = "https://overdodactyl.github.io/ShadowFox/";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ infinisil ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/networking/shadowsocks-libev/default.nix b/nixpkgs/pkgs/tools/networking/shadowsocks-libev/default.nix
index 7ad0f1e862d6..22b291ec44e9 100644
--- a/nixpkgs/pkgs/tools/networking/shadowsocks-libev/default.nix
+++ b/nixpkgs/pkgs/tools/networking/shadowsocks-libev/default.nix
@@ -5,14 +5,14 @@
 
 stdenv.mkDerivation rec {
   pname = "shadowsocks-libev";
-  version = "3.3.4";
+  version = "3.3.5";
 
   # Git tag includes CMake build files which are much more convenient.
   src = fetchFromGitHub {
     owner = "shadowsocks";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "05f1vvd0r0wanbb61rf4p6y991jp7625l0i223v23r2ji43y3i5a";
+    sha256 = "1iqpmhxk354db1x08axg6wrdy9p9a4mz0h9351i3mf3pqd1v6fdw";
     fetchSubmodules = true;
   };
 
diff --git a/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix b/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
index 875ba7c988a6..9726cde61e54 100644
--- a/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
+++ b/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shadowsocks-rust";
-  version = "1.8.12";
+  version = "1.8.18";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shadowsocks";
     repo = pname;
-    sha256 = "0c9mdy22pjnjq5l2ji2whrfz64azx6yi6m76j17pbhnjf6f4jx9b";
+    sha256 = "1kxf0qcyg5mhddrzwv0hd1fy901wl0ydmxi6b1k2217xmgiyi2s6";
   };
 
-  cargoSha256 = "03gf26d7rz4v2v5fypcp5icsqqnb4m5dwil9ad5a98q3ssx80iwq";
+  cargoSha256 = "0vmd4sjagyhrc7q7fszwcjh4nhhmhckmx48i1h2xhr68bwncmyif";
 
   SODIUM_USE_PKG_CONFIG = 1;
 
diff --git a/nixpkgs/pkgs/tools/networking/shadowsocks-v2ray-plugin/default.nix b/nixpkgs/pkgs/tools/networking/shadowsocks-v2ray-plugin/default.nix
new file mode 100644
index 000000000000..be3a2f77d5c4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/shadowsocks-v2ray-plugin/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "shadowsocks-v2ray-plugin";
+  version = "1.3.1";
+
+  src = fetchFromGitHub {
+    owner = "shadowsocks";
+    repo = "v2ray-plugin";
+    rev = "v${version}";
+    sha256 = "0aq445gnqk9dxs1hkw7rvk86wg0iyiy0h740lvyh6d9zsqhf61wb";
+  };
+
+  vendorSha256 = "0vzd9v33p4a32f5ic9ir4g5ckis06wpdf07a649h9qalimxnvzfz";
+
+  meta = with lib; {
+    description = "Yet another SIP003 plugin for shadowsocks, based on v2ray";
+    homepage = "https://github.com/shadowsocks/v2ray-plugin/";
+    license = licenses.mit;
+    maintainers = [ maintainers.ahrzb ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/tools/networking/siege/default.nix b/nixpkgs/pkgs/tools/networking/siege/default.nix
index ff01fc89f09b..7e85973cbdb6 100644
--- a/nixpkgs/pkgs/tools/networking/siege/default.nix
+++ b/nixpkgs/pkgs/tools/networking/siege/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, openssl, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "siege-4.0.5";
+  name = "siege-4.0.7";
 
   src = fetchurl {
     url = "http://download.joedog.org/siege/${name}.tar.gz";
-    sha256 = "0c82h0idkvfbzspy7h6w97wyk671694nl1ir94zhzn54mw0p0jrv";
+    sha256 = "1y3dnl1ziw0c0d4nw30aj0sdmjvarn4xfxgfkswffwnkm8z5p9xz";
   };
 
   NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lgcc_s";
diff --git a/nixpkgs/pkgs/tools/networking/slack-cli/default.nix b/nixpkgs/pkgs/tools/networking/slack-cli/default.nix
index bdd650494b15..25e426dc43e3 100644
--- a/nixpkgs/pkgs/tools/networking/slack-cli/default.nix
+++ b/nixpkgs/pkgs/tools/networking/slack-cli/default.nix
@@ -5,7 +5,8 @@
 # for token storage, except that it would make the Nix package inconsistent with
 # upstream and other distributions.
 
-{ stdenv, lib, fetchFromGitHub, curl, jq, runtimeShell }:
+{ stdenv, lib, fetchFromGitHub, curl, jq, coreutils, gnugrep, gnused
+, runtimeShell }:
 
 stdenv.mkDerivation rec {
   pname = "slack-cli";
@@ -33,7 +34,7 @@ stdenv.mkDerivation rec {
 
     MESSAGE
 
-    export PATH=${lib.makeBinPath [ curl jq ]}:"\$PATH"
+    export PATH=${lib.makeBinPath [ curl jq coreutils gnugrep gnused ]}:"\$PATH"
     exec "$out/bin/.slack-wrapped" "\$@"
     WRAPPER
 
diff --git a/nixpkgs/pkgs/tools/networking/slirp4netns/default.nix b/nixpkgs/pkgs/tools/networking/slirp4netns/default.nix
index 6f8446d2243b..60cb34132537 100644
--- a/nixpkgs/pkgs/tools/networking/slirp4netns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/slirp4netns/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "slirp4netns";
-  version = "1.1.1";
+  version = "1.1.4";
 
   src = fetchFromGitHub {
     owner = "rootless-containers";
     repo = "slirp4netns";
     rev = "v${version}";
-    sha256 = "0zwaa7lqf8vh4c9mx0ganyz15a6qkisyxyxggmshfsxw77k6djxy";
+    sha256 = "13hlljkqss9abjpwaa5gcn6qnax0ws03zzh45c4rv1if7rwk6nbl";
   };
 
   nativeBuildInputs = [ autoreconfHook pkg-config ];
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  passthru.tests.podman = nixosTests.podman;
+  passthru.tests = { inherit (nixosTests) podman; };
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/rootless-containers/slirp4netns";
diff --git a/nixpkgs/pkgs/tools/networking/sniffglue/default.nix b/nixpkgs/pkgs/tools/networking/sniffglue/default.nix
index 83f1e372aa58..ec57e851f4be 100644
--- a/nixpkgs/pkgs/tools/networking/sniffglue/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sniffglue/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sniffglue";
-  version = "0.10.1";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
     owner = "kpcyrd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0vyxlqwh90shihp80fk0plnkjix9i37n2dnypzyz6nx44xd5737s";
+    sha256 = "0lkz25z0qy1giss4rnhkx9fvsdd8ckf4z1gqw46zl664x96bb705";
   };
 
-  cargoSha256 = "162p3a696k281cygqpl6gg4makwk2v0g2jnf1gd108dnz4jya11l";
+  cargoSha256 = "01ya9535whi2kviw57f25n8h05ckpb4bq1h7qav6srai97rm937s";
 
   nativeBuildInputs = [ pkgconfig ];
 
diff --git a/nixpkgs/pkgs/tools/networking/ssh-ident/default.nix b/nixpkgs/pkgs/tools/networking/ssh-ident/default.nix
index d46d6ea1ac28..33211fb0723b 100644
--- a/nixpkgs/pkgs/tools/networking/ssh-ident/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ssh-ident/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, makeWrapper, python }:
+{ stdenv, lib, fetchFromGitHub, python3, makeWrapper, openssh }:
 
 stdenv.mkDerivation {
   pname = "ssh-ident";
@@ -10,12 +10,12 @@ stdenv.mkDerivation {
     sha256 = "1jf19lz1gwn7cyp57j8d4zs5bq13iw3kw31m8nvr8h6sib2pf815";
   };
 
-  buildInputs = [ makeWrapper ];
+  buildInputs = [ python3 makeWrapper ];
   installPhase = ''
     mkdir -p $out/bin
     install -m 755 ssh-ident $out/bin/ssh-ident
     wrapProgram $out/bin/ssh-ident \
-      --prefix PATH : "${python}/bin/python"
+      --prefix PATH : ${lib.makeBinPath [ openssh  ]}
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/tools/networking/tayga/default.nix b/nixpkgs/pkgs/tools/networking/tayga/default.nix
index 866d680a02d1..1cecf2d634df 100644
--- a/nixpkgs/pkgs/tools/networking/tayga/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tayga/default.nix
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "http://www.litech.org/tayga";
     license = licenses.gpl2;
-    maintainers = [ maintainers."0x4A6F" ];
+    maintainers = with maintainers; [ _0x4A6F ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/tcpreplay/default.nix b/nixpkgs/pkgs/tools/networking/tcpreplay/default.nix
index d6d7b45364a3..b40df721c83e 100644
--- a/nixpkgs/pkgs/tools/networking/tcpreplay/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tcpreplay/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tcpreplay";
-  version = "4.3.2";
+  version = "4.3.3";
 
   src = fetchurl {
     url = "https://github.com/appneta/tcpreplay/releases/download/v${version}/tcpreplay-${version}.tar.gz";
-    sha256 = "0ld9v88g5xs2rykimksmhlkwbv2r97575c4aqmqdxbvc37crnisg";
+    sha256 = "1plgjm3dr9rr5q71s7paqk2wgrvkihbk2yrf9g3zaks3m750497d";
   };
 
   buildInputs = [ libpcap ];
diff --git a/nixpkgs/pkgs/tools/networking/tdns-cli/default.nix b/nixpkgs/pkgs/tools/networking/tdns-cli/default.nix
index 20bc456eea80..681109712ab1 100644
--- a/nixpkgs/pkgs/tools/networking/tdns-cli/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tdns-cli/default.nix
@@ -3,7 +3,7 @@
 rustPlatform.buildRustPackage rec {
   name = "tdns-cli";
   version = "0.0.5";
-  
+
   src = fetchFromGitHub {
     owner = "rotty";
     repo = name;
diff --git a/nixpkgs/pkgs/tools/networking/telepresence/default.nix b/nixpkgs/pkgs/tools/networking/telepresence/default.nix
index 216a2863f849..285a3764e038 100644
--- a/nixpkgs/pkgs/tools/networking/telepresence/default.nix
+++ b/nixpkgs/pkgs/tools/networking/telepresence/default.nix
@@ -1,26 +1,31 @@
-{ lib, pythonPackages, fetchgit, fetchFromGitHub, makeWrapper, git
+{ lib, pythonPackages, fetchFromGitHub, makeWrapper, git
 , sshfs-fuse, torsocks, sshuttle, conntrack-tools , openssh, coreutils
 , iptables, bash }:
 
 let
-  sshuttle-telepresence = lib.overrideDerivation sshuttle (p: {
-    src = fetchgit {
-      url = "https://github.com/datawire/sshuttle.git";
-      rev = "32226ff14d98d58ccad2a699e10cdfa5d86d6269";
-      sha256 = "1q20lnljndwcpgqv2qrf1k0lbvxppxf98a4g5r9zd566znhcdhx3";
-    };
-
-    nativeBuildInputs = p.nativeBuildInputs ++ [ git ];
-
-    postPatch = "rm sshuttle/tests/client/test_methods_nat.py";
-    postInstall = "mv $out/bin/sshuttle $out/bin/sshuttle-telepresence";
-  });
+  sshuttle-telepresence = 
+    let
+      sshuttleTelepresenceRev = "32226ff14d98d58ccad2a699e10cdfa5d86d6269";
+    in
+      lib.overrideDerivation sshuttle (p: {
+        src = fetchFromGitHub {
+          owner = "datawire";
+          repo = "sshuttle";
+          rev = sshuttleTelepresenceRev;
+          sha256 = "1lp5b0h9v59igf8wybjn42w6ajw08blhiqmjwp4r7qnvmvmyaxhh";
+        };
+
+        SETUPTOOLS_SCM_PRETEND_VERSION="${sshuttleTelepresenceRev}";
+
+        postPatch = "rm sshuttle/tests/client/test_methods_nat.py";
+        postInstall = "mv $out/bin/sshuttle $out/bin/sshuttle-telepresence";
+      });
 in pythonPackages.buildPythonPackage rec {
   pname = "telepresence";
-  version = "0.104";
+  version = "0.105";
 
   src = fetchFromGitHub {
-    owner = "datawire";
+    owner = "telepresenceio";
     repo = "telepresence";
     rev = version;
     sha256 = "0fccbd54ryd9rcbhfh5lx8qcc3kx3k9jads918rwnzwllqzjf7sg";
diff --git a/nixpkgs/pkgs/tools/networking/tendermint/default.nix b/nixpkgs/pkgs/tools/networking/tendermint/default.nix
index 4c0f87efbc4e..081819458f07 100644
--- a/nixpkgs/pkgs/tools/networking/tendermint/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tendermint/default.nix
@@ -2,17 +2,23 @@
 
 buildGoModule rec {
   pname = "tendermint";
-  version = "0.33.5";
+  version = "0.33.8";
 
   src = fetchFromGitHub {
     owner = "tendermint";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0a6wm1gnr75mdfhzb9cgg4an655vln525slgp10r5abg9j3l8202";
+    sha256 = "1dcr60gmbkb6833n49mjmlr082ahlv7alaqycl8g3d4f93kdm5c3";
   };
 
   vendorSha256 = "0i0n89lal99fqnzva51kp9f7wzqsfmncpshwxhq26kvykp7ji7sw";
 
+  doCheck = false;
+
+  subPackages = [ "cmd/tendermint" ];
+
+  buildFlagsArray = [ "-ldflags=-s -w -X github.com/tendermint/tendermint/version.GitCommit=${src.rev}" ];
+
   meta = with stdenv.lib; {
     description = "Byzantine-Fault Tolerant State Machines. Or Blockchain, for short.";
     homepage = "https://tendermint.com/";
@@ -20,4 +26,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ alexfmpe ];
     platforms = platforms.linux ++ platforms.darwin;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/networking/termshark/default.nix b/nixpkgs/pkgs/tools/networking/termshark/default.nix
index 7933cad687a2..51168f01f448 100644
--- a/nixpkgs/pkgs/tools/networking/termshark/default.nix
+++ b/nixpkgs/pkgs/tools/networking/termshark/default.nix
@@ -16,6 +16,8 @@ buildGoModule rec {
 
   vendorSha256 = "14apff3vcbndr30765lzi4qswakavb4396bjixxvpxv6i5c04dq7";
 
+  doCheck = false;
+
   postFixup = ''
     wrapProgram $out/bin/termshark --prefix PATH : ${stdenv.lib.makeBinPath [ wireshark-cli ]}
   '';
@@ -31,4 +33,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ winpat elseym ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/networking/toss/default.nix b/nixpkgs/pkgs/tools/networking/toss/default.nix
new file mode 100644
index 000000000000..9752dcc4f64b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/toss/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "toss";
+  version = "1.1";
+  src = fetchFromGitHub {
+    owner = "zerotier";
+    repo = pname;
+    rev = version;
+    sha256 = "05ql0d8wbdhnmh3dw8ch5bi6clfb9h8v21lq2a74iy02slya2y0r";
+  };
+  preInstall = "export DESTDIR=$out/bin";
+  meta = with stdenv.lib;
+    src.meta // {
+      description = "Dead simple LAN file transfers from the command line";
+      license = with licenses; [ mit ];
+      maintainers = with maintainers; [ ehmry ];
+      platforms = platforms.unix;
+    };
+}
diff --git a/nixpkgs/pkgs/tools/networking/tridactyl-native/default.nix b/nixpkgs/pkgs/tools/networking/tridactyl-native/default.nix
index 7072fb96edab..f0d2cd9a0df6 100644
--- a/nixpkgs/pkgs/tools/networking/tridactyl-native/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tridactyl-native/default.nix
@@ -7,13 +7,13 @@ stdenv.mkDerivation rec {
   pname = "tridactyl-native";
   # this is actually the version of tridactyl itself; the native messenger will
   # probably not change with every tridactyl version
-  version = "1.19.1";
+  version = "1.20.1";
 
   src = fetchFromGitHub {
     owner = "tridactyl";
     repo = "tridactyl";
     rev = version;
-    sha256 = "19hldr6ii1z7gghc80h7qsnlz9na586gldm5y33i6lrs93193l82";
+    sha256 = "108zx2x5q23cq0fzxmix31xcw62k3r1wlb55612c15ilz9c5xm32";
   };
   sourceRoot = "source/native";
 
diff --git a/nixpkgs/pkgs/tools/networking/tunnelto/default.nix b/nixpkgs/pkgs/tools/networking/tunnelto/default.nix
index c61da53c6ad5..c0dce98c4447 100644
--- a/nixpkgs/pkgs/tools/networking/tunnelto/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tunnelto/default.nix
@@ -8,16 +8,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tunnelto";
-  version = "0.1.6";
+  version = "0.1.12";
 
   src = fetchFromGitHub {
     owner = "agrinman";
     repo = pname;
     rev = version;
-    sha256 = "0yigjg8kjl8v0636hjr3sg33p4v963vzq7wbfi986ymxfx47jqp7";
+    sha256 = "1vvb619cq3n88y2s8lncwcyrhb5s4gpjfiyia91pilcpnfdb04y2";
   };
 
-  cargoSha256 = "0603b0hn84shl9wdg7zg7kf9050gh33d8ghscwsby1vqanakms9j";
+  cargoSha256 = "0k0ig3dynj46kh8g7d6bljcaalmp40pvdbhbjmlxrmwnjq6bhzcq";
 
   nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkg-config ];
   buildInputs = [ ]
diff --git a/nixpkgs/pkgs/tools/networking/unbound/default.nix b/nixpkgs/pkgs/tools/networking/unbound/default.nix
index 6390ab35f956..9b33d53e54f1 100644
--- a/nixpkgs/pkgs/tools/networking/unbound/default.nix
+++ b/nixpkgs/pkgs/tools/networking/unbound/default.nix
@@ -2,20 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "unbound";
-  version = "1.10.1";
+  version = "1.11.0";
 
   src = fetchurl {
     url = "https://unbound.net/downloads/${pname}-${version}.tar.gz";
-    sha256 = "0dnmh9jjh2v274f0hl31bgv40pl77mmfgky8bkqr5kvi3b17fdmp";
+    sha256 = "1xqywn2qdmjjq0csrqxh9p2rnizdrr1f99zdx87z7f3fyyc0fbwz";
   };
 
-  # https://github.com/NLnetLabs/unbound/pull/90
-  postPatch = ''
-    substituteInPlace validator/val_secalgo.c \
-      --replace '&nettle_secp_256r1' 'nettle_get_secp_256r1()' \
-      --replace '&nettle_secp_384r1' 'nettle_get_secp_384r1()'
-  '';
-
   outputs = [ "out" "lib" "man" ]; # "dev" would only split ~20 kB
 
   buildInputs = [ openssl nettle expat libevent ];
@@ -30,6 +23,8 @@ stdenv.mkDerivation rec {
     "--with-rootkey-file=${dns-root-data}/root.key"
     "--enable-pie"
     "--enable-relro-now"
+  ] ++ stdenv.lib.optional stdenv.hostPlatform.isStatic [
+    "--disable-flto"
   ];
 
   installFlags = [ "configfile=\${out}/etc/unbound/unbound.conf" ];
diff --git a/nixpkgs/pkgs/tools/networking/urlwatch/default.nix b/nixpkgs/pkgs/tools/networking/urlwatch/default.nix
index 639bea38f0ac..f23aed3707be 100644
--- a/nixpkgs/pkgs/tools/networking/urlwatch/default.nix
+++ b/nixpkgs/pkgs/tools/networking/urlwatch/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   name = "urlwatch-${version}";
-  version = "2.18";
+  version = "2.19";
 
   src = fetchFromGitHub {
     owner  = "thp";
     repo   = "urlwatch";
     rev    = version;
-    sha256 = "14dmyk95v3kajhn1w2lpil3rjs78y0wxylsxclv6zjxgjcc1xsi3";
+    sha256 = "05vxs0x8gnsv2r9cy0brqny1y5jnj2mw11lqc8lqahx84xcs2m00";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/nixpkgs/pkgs/tools/networking/v2ray/default.nix b/nixpkgs/pkgs/tools/networking/v2ray/default.nix
index 0f0c5961c009..fac43cabab86 100644
--- a/nixpkgs/pkgs/tools/networking/v2ray/default.nix
+++ b/nixpkgs/pkgs/tools/networking/v2ray/default.nix
@@ -1,22 +1,24 @@
-{ callPackage, fetchFromGitHub, fetchurl
+{ lib, fetchFromGitHub, fetchurl, linkFarm, buildGoModule, runCommand, makeWrapper, nixosTests
 , assetOverrides ? {}
-, ... } @ args:
+}:
 
-callPackage ./generic.nix (rec {
-  version = "4.23.3";
+let
+  version = "4.28.2";
 
   src = fetchFromGitHub {
     owner = "v2ray";
     repo = "v2ray-core";
     rev = "v${version}";
-    sha256 = "1b0cxrpgkmgas7pwxglsvgcig8rnhffkf990b42z7awji5lw055v";
+    sha256 = "0q2gpnx7nrnrdkc8fq1ghbki8yyh11hs5bw8rb48jsrnigrg73b8";
   };
 
+  vendorSha256 = "1ghpb5ijpmmq1qysjifj6ss1zk1h2l55r6w7l4a01bp8sxncxarc";
+
   assets = {
     # MIT licensed
     "geoip.dat" = let
-      geoipRev = "202005270003";
-      geoipSha256 = "10gf69hr32p4bpl5j8r46v8xzhpcgm70xbcdxm1a8l0jwyj0infs";
+      geoipRev = "202009160005";
+      geoipSha256 = "00hilqqnpfyvxxaiamwmkdpzid763xgig1vk4rxv76npwyixsmj4";
     in fetchurl {
       url = "https://github.com/v2ray/geoip/releases/download/${geoipRev}/geoip.dat";
       sha256 = geoipSha256;
@@ -24,8 +26,8 @@ callPackage ./generic.nix (rec {
 
     # MIT licensed
     "geosite.dat" = let
-      geositeRev = "202005292154";
-      geositeSha256 = "0w6l0q8y14in5f4a406blpprqq6p438gpclnlfz7y2hkh5zf36cr";
+      geositeRev = "20200918144814";
+      geositeSha256 = "08zdw20wdksp96436j3my145qvyvr9a15lj8j4wdagr64iap5nx7";
     in fetchurl {
       url = "https://github.com/v2ray/domain-list-community/releases/download/${geositeRev}/dlc.dat";
       sha256 = geositeSha256;
@@ -33,4 +35,55 @@ callPackage ./generic.nix (rec {
 
   } // assetOverrides;
 
-} // args)
+  assetsDrv = linkFarm "v2ray-assets" (lib.mapAttrsToList (name: path: {
+    inherit name path;
+  }) assets);
+
+  core = buildGoModule rec {
+    pname = "v2ray-core";
+    inherit version src;
+
+    inherit vendorSha256;
+
+    doCheck = false;
+
+    buildPhase = ''
+      runHook preBuild
+
+      go build -o v2ray v2ray.com/core/main
+      go build -o v2ctl v2ray.com/core/infra/control/main
+
+      runHook postBuild
+    '';
+
+    installPhase = ''
+      install -Dm755 v2ray v2ctl -t $out/bin
+    '';
+  };
+
+in runCommand "v2ray-${version}" {
+  inherit version;
+
+  buildInputs = [ assetsDrv core ];
+  nativeBuildInputs = [ makeWrapper ];
+
+  meta = {
+    homepage = "https://www.v2ray.com/en/index.html";
+    description = "A platform for building proxies to bypass network restrictions";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ servalcatty ];
+  };
+
+  passthru = {
+    updateScript = ./update.sh;
+    tests = {
+      simple-vmess-proxy-test = nixosTests.v2ray;
+    };
+  };
+
+} ''
+  for file in ${core}/bin/*; do
+    makeWrapper "$file" "$out/bin/$(basename "$file")" \
+      --set-default V2RAY_LOCATION_ASSET ${assetsDrv}
+  done
+''
diff --git a/nixpkgs/pkgs/tools/networking/v2ray/generic.nix b/nixpkgs/pkgs/tools/networking/v2ray/generic.nix
deleted file mode 100644
index e8f4d278c322..000000000000
--- a/nixpkgs/pkgs/tools/networking/v2ray/generic.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ lib, linkFarm, buildGoModule, runCommand, makeWrapper
-
-# Version specific args
-, version, src, assets
-, ... }:
-
-let
-  assetsDrv = linkFarm "v2ray-assets" (lib.mapAttrsToList (name: path: {
-    inherit name path;
-  }) assets);
-
-  core = buildGoModule rec {
-    pname = "v2ray-core";
-    inherit version src;
-
-    vendorSha256 = "0d2qmnmlkl884ccg0qcd2yhfj0dwxnb9dz3cih7rcipz85w2f2rs";
-
-    buildPhase = ''
-      runHook preBuild
-
-      go build -o v2ray v2ray.com/core/main
-      go build -o v2ctl v2ray.com/core/infra/control/main
-
-      runHook postBuild
-    '';
-
-    installPhase = ''
-      install -Dm755 v2ray v2ctl -t $out/bin
-    '';
-  };
-
-in runCommand "v2ray-${version}" {
-  inherit version;
-
-  buildInputs = [ assetsDrv core ];
-  nativeBuildInputs = [ makeWrapper ];
-
-  meta = {
-    homepage = "https://www.v2ray.com/en/index.html";
-    description = "A platform for building proxies to bypass network restrictions";
-    license = with lib.licenses; [ mit ];
-    maintainers = with lib.maintainers; [ servalcatty ];
-  };
-
-} ''
-  for file in ${core}/bin/*; do
-    makeWrapper "$file" "$out/bin/$(basename "$file")" \
-      --set-default V2RAY_LOCATION_ASSET ${assetsDrv}
-  done
-''
\ No newline at end of file
diff --git a/nixpkgs/pkgs/tools/networking/v2ray/update.sh b/nixpkgs/pkgs/tools/networking/v2ray/update.sh
index 38ad77e98f86..56a148444c71 100755
--- a/nixpkgs/pkgs/tools/networking/v2ray/update.sh
+++ b/nixpkgs/pkgs/tools/networking/v2ray/update.sh
@@ -1,11 +1,13 @@
 #!/usr/bin/env nix-shell
 #!nix-shell -i bash -p curl jq
 set -eo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")"
 
-version_nix=$(dirname "$0")/default.nix
-deps_nix=$(dirname "$0")/deps.nix
+version_nix=./default.nix
+deps_nix=./deps.nix
+nixpkgs=../../../..
 
-old_core_rev="v$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$version_nix")"
+old_core_rev=$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$version_nix")
 old_geoip_rev=$(sed -En 's/.*\bgeoipRev = "(.*?)".*/\1/p' "$version_nix")
 old_geosite_rev=$(sed -En 's/.*\bgeositeRev = "(.*?)".*/\1/p' "$version_nix")
 echo "Current version:" >&2
@@ -17,6 +19,7 @@ function fetch_latest_rev {
 }
 
 core_rev=$(fetch_latest_rev 'v2ray-core')
+core_rev=${core_rev:1}
 geoip_rev=$(fetch_latest_rev 'geoip')
 geosite_rev=$(fetch_latest_rev 'domain-list-community')
 echo "Latest version:" >&2
@@ -25,12 +28,13 @@ echo "core: $core_rev, geoip: $geoip_rev, geosite: $geosite_rev" >&2
 if [[ $core_rev != $old_core_rev ]]; then
     echo "Prefetching core..." >&2
     { read hash; read store_path; } < <(
-        nix-prefetch-url --unpack --print-path "https://github.com/v2ray/v2ray-core/archive/$core_rev.zip"
+        nix-prefetch-url --unpack --print-path "https://github.com/v2ray/v2ray-core/archive/v$core_rev.zip"
     )
 
     sed --in-place \
-        -e "s/\bversion = \".*\"/version = \"$(echo "$core_rev" | tail -c+2)\"/" \
+        -e "s/\bversion = \".*\"/version = \"$core_rev\"/" \
         -e "s/\bsha256 = \".*\"/sha256 = \"$hash\"/" \
+        -e "s/\bvendorSha256 = \".*\"/vendorSha256 = \"0000000000000000000000000000000000000000000000000000\"/" \
         "$version_nix"
 fi
 
@@ -51,3 +55,17 @@ if [[ $geosite_rev != $old_geosite_rev ]]; then
         -e "s/\bgeositeSha256 = \".*\"/geositeSha256 = \"$hash\"/" \
         "$version_nix"
 fi
+
+echo "Prebuilding..." >&2
+set +o pipefail
+vendorSha256=$(
+    nix-build "$nixpkgs" -A v2ray --no-out-link 2>&1 |
+    tee /dev/stderr |
+    sed -nE 's/.*got:\s*sha256:(\w+)$/\1/p'
+)
+[[ "$vendorSha256" ]]
+sed --in-place \
+    -e "s/vendorSha256 = \".*\"/vendorSha256 = \"$vendorSha256\"/" \
+    "$version_nix"
+
+echo "vendorSha256 updated" >&2
diff --git a/nixpkgs/pkgs/tools/networking/vpn-slice/default.nix b/nixpkgs/pkgs/tools/networking/vpn-slice/default.nix
new file mode 100644
index 000000000000..9511c214c08c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/vpn-slice/default.nix
@@ -0,0 +1,25 @@
+{ lib, buildPythonApplication, python3Packages, fetchFromGitHub }:
+
+buildPythonApplication rec {
+  pname = "vpn-slice";
+  version = "0.14";
+
+  src = fetchFromGitHub {
+    owner = "dlenski";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1z2mdl3arzl95zrj4ir57f762gcimmmq5nk91j679cshxz4snxyr";
+  };
+
+  propagatedBuildInputs = with python3Packages; [ setproctitle dnspython ];
+
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://github.com/dlenski/vpn-slice";
+    description =
+      "vpnc-script replacement for easy and secure split-tunnel VPN setup";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ jdbaldry ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix b/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix
index 6cd3682c3f27..a9f0d7e77d62 100644
--- a/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wireguard-tools/default.nix
@@ -13,11 +13,11 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   pname = "wireguard-tools";
-  version = "1.0.20200513";
+  version = "1.0.20200827";
 
   src = fetchzip {
     url = "https://git.zx2c4.com/wireguard-tools/snapshot/wireguard-tools-${version}.tar.xz";
-    sha256 = "1rvnr4hk17xa2sp48icbhdnd3l69fiwwlxnn3587p1slrlms808l";
+    sha256 = "1d8rs1g6zy3kz327cc3hzkk5a44278x9p32gxasz6i94bq0b2bs3";
   };
 
   outputs = [ "out" "man" ];
diff --git a/nixpkgs/pkgs/tools/networking/wormhole-william/default.nix b/nixpkgs/pkgs/tools/networking/wormhole-william/default.nix
new file mode 100644
index 000000000000..261db4590c1d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/networking/wormhole-william/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "wormhole-william";
+  version = "1.0.4";
+
+  src = fetchFromGitHub {
+    owner = "psanford";
+    repo = "wormhole-william";
+    rev = "v${version}";
+    sha256 = "1v6kw10gqhyd1adj0wwrr5bmpjqbshdnywsrjpqgg9bl61m5j3wr";
+  };
+
+  vendorSha256 = "1niky252gcxai6vz0cx7pvflg530bc1lmcd2wm2hqg6446r1yxsq";
+
+  doCheck = false;
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/psanford/wormhole-william";
+    description = "End-to-end encrypted file transfers";
+    changelog = "https://github.com/psanford/wormhole-william/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ psanford ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/networking/wstunnel/default.nix b/nixpkgs/pkgs/tools/networking/wstunnel/default.nix
index 2488d874e6db..161b08a7d39e 100644
--- a/nixpkgs/pkgs/tools/networking/wstunnel/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wstunnel/default.nix
@@ -2,28 +2,21 @@
 , classy-prelude, cmdargs, connection, hslogger, mtl, network
 , network-conduit-tls, stdenv, streaming-commons, text
 , unordered-containers, websockets
+, hspec, iproute
 , lib, fetchFromGitHub, fetchpatch
 }:
 
 mkDerivation rec {
   pname = "wstunnel";
-  version = "unstable-2019-01-28";
+  version = "unstable-2020-07-12";
 
   src = fetchFromGitHub {
     owner = "erebe";
     repo = pname;
-    rev = "78cc5a5f1aa4dbcb25fa9b0efc9cfef3640672e4";
-    sha256 = "17y3yn7qg1h7jx9xs041sw63g51vyns236f60d2m2mghi49lm9i2";
+    rev = "093a01fa3a34eee5efd8f827900e64eab9d16c05";
+    sha256 = "17p9kq0ssz05qzl6fyi5a5fjbpn4bxkkwibb9si3fhzrxc508b59";
   };
 
-  patches = [
-    # Support GHC 8.6   https://github.com/erebe/wstunnel/pull/18
-    (fetchpatch {
-      url = "https://github.com/erebe/wstunnel/commit/8f348fea4dbf75874d5d930334377843763335ab.patch";
-      sha256 = "0a66jx7k97j3iyr7j5npbyq1lkhzz74r81mkas4nig7z3hny1gn9";
-    })
-  ];
-
   isLibrary = false;
   isExecutable = true;
 
@@ -31,13 +24,14 @@ mkDerivation rec {
     async base base64-bytestring binary bytestring classy-prelude
     connection hslogger mtl network network-conduit-tls
     streaming-commons text unordered-containers websockets
+    iproute
   ];
 
   executableHaskellDepends = [
     base bytestring classy-prelude cmdargs hslogger text
   ];
 
-  testHaskellDepends = [ base text ];
+  testHaskellDepends = [ base text hspec ];
 
   homepage = "https://github.com/erebe/wstunnel";
   description = "UDP and TCP tunnelling over WebSocket";
diff --git a/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix b/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix
index 438d620d2b58..90cd64b83adb 100644
--- a/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix
+++ b/nixpkgs/pkgs/tools/networking/yggdrasil/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "09xv2p9rydnsb185x61fxhyjqx41wz285c1gdd47ad3s08ay1qc7";
 
+  doCheck = false;
+
   # Change the default location of the management socket on Linux
   # systems so that the yggdrasil system service unit does not have to
   # be granted write permission to /run.
@@ -34,7 +36,6 @@ buildGoModule rec {
       "An experiment in scalable routing as an encrypted IPv6 overlay network";
     homepage = "https://yggdrasil-network.github.io/";
     license = licenses.lgpl3;
-    platforms = platforms.all;
     maintainers = with maintainers; [ ehmry gazally lassulus ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/networking/ytcc/default.nix b/nixpkgs/pkgs/tools/networking/ytcc/default.nix
index f5086e15436e..dc38648c369c 100644
--- a/nixpkgs/pkgs/tools/networking/ytcc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ytcc/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "ytcc";
-  version = "1.8.3";
+  version = "1.8.4";
 
   src = fetchFromGitHub {
     owner = "woefe";
     repo = "ytcc";
     rev = "v${version}";
-    sha256 = "0993vqbsqcnxgv5l3il432i4sqzp8ns69rnsgww872vpb4bp3cg8";
+    sha256 = "11gwpqmq611j07pjscch28jsrfgyzy69ph2w1miz3arqmxz7dqjp";
   };
 
   nativeBuildInputs = [ gettext ];
diff --git a/nixpkgs/pkgs/tools/networking/zap/default.nix b/nixpkgs/pkgs/tools/networking/zap/default.nix
index 2d8902f69097..f12578b27338 100644
--- a/nixpkgs/pkgs/tools/networking/zap/default.nix
+++ b/nixpkgs/pkgs/tools/networking/zap/default.nix
@@ -1,5 +1,6 @@
-{ stdenv, fetchFromGitHub, jdk, ant, runtimeShell }:
+{ stdenv, fetchFromGitHub, jdk8, ant, runtimeShell }:
 
+let jdk = jdk8; in
 stdenv.mkDerivation rec {
   pname = "zap";
   version = "2.7.0";
diff --git a/nixpkgs/pkgs/tools/networking/zssh/default.nix b/nixpkgs/pkgs/tools/networking/zssh/default.nix
index 720c43ccc2d7..945c96ae8511 100644
--- a/nixpkgs/pkgs/tools/networking/zssh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/zssh/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, readline, deepin }:
+{ stdenv, fetchurl, readline }:
 
 let
   version = "1.5c";
@@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
     description = "SSH and Telnet client with ZMODEM file transfer capability";
     homepage = "http://zssh.sourceforge.net/";
     license = stdenv.lib.licenses.gpl2;
-    maintainers = deepin.deepin-terminal.meta.maintainers; # required by deepin-terminal
+    maintainers = [ ]; # required by deepin-terminal
     platforms = stdenv.lib.platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/nix/manix/default.nix b/nixpkgs/pkgs/tools/nix/manix/default.nix
new file mode 100644
index 000000000000..c4d1930a0fb5
--- /dev/null
+++ b/nixpkgs/pkgs/tools/nix/manix/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchFromGitHub, rustPlatform, darwin }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "manix";
+  version = "0.6.2";
+
+  src = fetchFromGitHub {
+    owner = "mlvzk";
+    repo  = pname;
+    rev = "v${version}";
+    sha256 = "0fv3sgzwjsgq2h1177r8r1cl5zrfja4ll801sd0bzj3nzmkyww7p";
+  };
+
+  buildInputs = stdenv.lib.optional stdenv.isDarwin [ darwin.Security ];
+
+  cargoSha256 = "0f2q3bj1cmpbma0fjhc2lc92j4al78fhrx3yc37kmbgzaza0yan5";
+
+  meta = with stdenv.lib; {
+    description = "A Fast Documentation Searcher for Nix";
+    homepage    = "https://github.com/mlvzk/manix";
+    license     = [ licenses.mpl20 ];
+    maintainers = [ maintainers.mlvzk ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/nix/nixpkgs-fmt/default.nix b/nixpkgs/pkgs/tools/nix/nixpkgs-fmt/default.nix
index 53e70ad7bd7d..40e74fba8a86 100644
--- a/nixpkgs/pkgs/tools/nix/nixpkgs-fmt/default.nix
+++ b/nixpkgs/pkgs/tools/nix/nixpkgs-fmt/default.nix
@@ -1,16 +1,16 @@
 { lib, rustPlatform, fetchFromGitHub, fetchpatch }:
 rustPlatform.buildRustPackage rec {
   pname = "nixpkgs-fmt";
-  version = "0.9.0";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1kkw87c63nx5pqsxcwn6iw27k02j9ls21zyhb5dvf0zaqd9sz7ad";
+    sha256 = "0w1himwix7iv40rixj9afknwmqg2qmkif23z217gc7x63zyg9vdc";
   };
-  
-  cargoSha256 = "1wybvm9qckx9cd656gx9zrbszmaj66ihh2kk6qqdb6maixcq5k0x";
+
+  cargoSha256 = "1qzhii72hjdxmgfncvyk80ybvk6zywd6v73bb1ibhnry734grzvw";
 
   meta = with lib; {
     description = "Nix code formatter for nixpkgs";
diff --git a/nixpkgs/pkgs/tools/nix/rnix-hashes/default.nix b/nixpkgs/pkgs/tools/nix/rnix-hashes/default.nix
new file mode 100644
index 000000000000..607884b8ac90
--- /dev/null
+++ b/nixpkgs/pkgs/tools/nix/rnix-hashes/default.nix
@@ -0,0 +1,21 @@
+{ lib, rustPlatform, fetchFromGitHub, fetchpatch }:
+rustPlatform.buildRustPackage rec {
+  pname = "rnix-hashes";
+  version = "0.2.0";
+
+  src = fetchFromGitHub {
+    owner = "numtide";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "SzHyG5cEjaaPjTkn8puht6snjHMl8DtorOGDjxakJfA=";
+  };
+
+  cargoSha256 = "vaG+0t+XAckV9F4iIgcTkbIUurxdQsTCfOnRnrOKoRc=";
+
+  meta = with lib; {
+    description = "Nix Hash Converter";
+    homepage = "https://github.com/numtide/rnix-hashes";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ rizary ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/package-management/apk-tools/default.nix b/nixpkgs/pkgs/tools/package-management/apk-tools/default.nix
new file mode 100644
index 000000000000..33c08636e44d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/apk-tools/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, fetchurl, lua, openssl, pkg-config, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "apk-tools";
+  version = "2.10.5";
+
+  src = fetchurl {
+    url = "https://dev.alpinelinux.org/archive/apk-tools/apk-tools-${version}.tar.xz";
+    sha256 = "00z3fqnv8vk2czdm4p2q4sldq0n8sxyf2qfwppyk7wj59d2sq8dp";
+  };
+
+  nativeBuildInputs = [ pkg-config ];
+  buildInputs = [ lua openssl zlib ];
+
+  makeFlags = [
+    "SBINDIR=$(out)/bin"
+    "LIBDIR=$(out)/lib"
+    "LUA_LIBDIR=$(out)/lib/lua/${lib.versions.majorMinor lua.version}"
+    "MANDIR=$(out)/share/man"
+    "DOCDIR=$(out)/share/doc/apk"
+    "INCLUDEDIR=$(out)/include"
+    "PKGCONFIGDIR=$(out)/lib/pkgconfig"
+  ];
+
+  NIX_CFLAGS_COMPILE = [ "-Wno-error=unused-result" ];
+
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    homepage = "https://gitlab.alpinelinux.org/alpine/apk-tools";
+    description = "Alpine Package Keeper";
+    maintainers = with maintainers; [ qyliss ];
+    license = licenses.gpl2;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-about/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-about/default.nix
index 84bea234c20f..c4d9aae267e7 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-about/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-about/default.nix
@@ -17,6 +17,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/EmbarkStudios/cargo-about";
     license = with licenses; [ mit /* or */ asl20 ];
     maintainers = with maintainers; [ evanjs ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix
index 01acc2ed6ed8..acd088177803 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-audit/default.nix
@@ -23,6 +23,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://rustsec.org";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ basvandijk ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-deb/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-deb/default.nix
index 96ef0eef8c5a..43a2fccd8789 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-deb/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-deb/default.nix
@@ -33,6 +33,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mmstick/cargo-deb";
     license = licenses.mit;
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-deps/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-deps/default.nix
index d90d0fe79796..682cfde78fab 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-deps/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-deps/default.nix
@@ -18,6 +18,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/m-cat/cargo-deps";
     license = licenses.mit;
     maintainers = with maintainers; [ arcnmx ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-edit/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-edit/default.nix
index 7bcc6c12ee9d..b3449566d458 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-edit/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-edit/default.nix
@@ -25,6 +25,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/killercup/cargo-edit";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ gerschtli jb55 filalex77 killercup ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-graph/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-graph/default.nix
index 4d35e284040b..5bca56d993d9 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-graph/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-graph/default.nix
@@ -18,6 +18,5 @@ rustPlatform.buildRustPackage rec {
     description = "A cargo subcommand for creating GraphViz DOT files and dependency graphs";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ basvandijk ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-kcov/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-kcov/default.nix
new file mode 100644
index 000000000000..6b825919b60f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/cargo-kcov/default.nix
@@ -0,0 +1,27 @@
+{ stdenv
+, lib
+, rustPlatform
+, fetchFromGitHub
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "cargo-kcov";
+  version = "0.5.2";
+
+  src = fetchFromGitHub {
+    owner = "kennytm";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0hqplgj3i8js42v2kj44khk543a93sk3n6wlfpv3c84pdqlm29br";
+  };
+
+  cargoSha256 = "1dzm33cfriwgq4zvg6l6y76d5lp9hpcywdkwpl92qyjqg1hx8a1w";
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Cargo subcommand to run kcov to get coverage report on Linux";
+    homepage = "https://github.com/kennytm/cargo-kcov";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ saschagrunert ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-license/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-license/default.nix
index b3c404f476fc..ba461398e66f 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-license/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-license/default.nix
@@ -20,6 +20,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/onur/cargo-license";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ basvandijk ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix
index 1a20c6b9ab64..5d4eef2fbe5a 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-outdated/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-outdated";
-  version = "0.9.10";
+  version = "0.9.11";
 
   src = fetchFromGitHub {
     owner = "kbknapp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1aj76wwpnvniv5xdygfv17kj74rxxkvngkvw2019qinm2nv81c3p";
+    sha256 = "11fdh24366czb3vv2szf5bl0mhsilwvpfc1h4qxq18z2dpb0y18m";
   };
 
-  cargoSha256 = "0nzxx31nlmrcrcs67z1wci0d4n6kdq83z2ld4bq8xgp6p916f4sl";
+  cargoSha256 = "0sr3ijq6vh2269xav03d117kzmg68xiwqsq48xjdrsnn4dx5lizy";
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ]
@@ -25,7 +25,6 @@ rustPlatform.buildRustPackage rec {
     description = "A cargo subcommand for displaying when Rust dependencies are out of date";
     homepage = "https://github.com/kbknapp/cargo-outdated";
     license = with licenses; [ asl20 /* or */ mit ];
-    platforms = platforms.all;
     maintainers = with maintainers; [ sondr3 ivan ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-release/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-release/default.nix
index 69a55bcda91c..b68a8208de1c 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-release/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-release/default.nix
@@ -1,26 +1,26 @@
-{ stdenv, rustPlatform, fetchFromGitHub, Security, openssl, pkg-config }:
+{ stdenv, rustPlatform, fetchFromGitHub, libiconv, Security, openssl, pkg-config }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-release";
-  version = "0.13.3";
+  version = "0.13.5";
 
   src = fetchFromGitHub {
     owner = "sunng87";
     repo = "cargo-release";
     rev = "v${version}";
-    sha256 = "0d9fgmy87xjl9kcmx9crmmg83iyybisg0gfwmnlxz5529slqng5r";
+    sha256 = "098p6yfq8nlfckr61j3pkimwzrg5xb2i34nxvk2hiv1njl1vrqng";
   };
 
-  cargoSha256 = "1a6ac4x51i1rg0bgrxbbdd54gmwldsiv7nn8vi81y20llnshgjk7";
+  cargoSha256 = "07rmp4j4jpzd1rz59wsjmzmj2qkc2x4wrs9pafqrym58ypm8i4gx";
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isDarwin Security;
+  buildInputs = [ openssl ]
+  ++ stdenv.lib.optionals stdenv.isDarwin [ libiconv Security ];
 
   meta = with stdenv.lib; {
     description = ''Cargo subcommand "release": everything about releasing a rust crate'';
     homepage = "https://github.com/sunng87/cargo-release";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ gerschtli ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-tree/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-tree/default.nix
deleted file mode 100644
index 2e0207e01ed3..000000000000
--- a/nixpkgs/pkgs/tools/package-management/cargo-tree/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ stdenv, lib, rustPlatform, fetchFromGitHub, pkgconfig, cmake, curl, libiconv, darwin }:
-
-rustPlatform.buildRustPackage rec {
-  pname = "cargo-tree";
-  version = "0.29.0";
-
-  src = fetchFromGitHub {
-    owner = "sfackler";
-    repo = "cargo-tree";
-    rev = "v${version}";
-    sha256 = "16k41pj66m2221n1v2szir7x7qwx4i0g3svck2c8cj76h0bqyy15";
-  };
-
-  cargoSha256 = "0762gdj4n5mlflhzynnny1h8z792zyxmb4kcn54jj7qzdask4qdy";
-
-  nativeBuildInputs = [ pkgconfig cmake ];
-  buildInputs = [ curl ] ++ lib.optionals stdenv.isDarwin [ libiconv darwin.apple_sdk.frameworks.Security ];
-
-  meta = with lib; {
-    description = "A cargo subcommand that visualizes a crate's dependency graph in a tree-like format";
-    license = with licenses; [ asl20 mit ];
-    maintainers = with maintainers; [ jD91mZM2 ma27 ];
-    homepage = "https://crates.io/crates/cargo-tree";
-  };
-}
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-update/0001-Generate-lockfile-for-cargo-update-v3.0.0.patch b/nixpkgs/pkgs/tools/package-management/cargo-update/0001-Generate-lockfile-for-cargo-update-v4.1.1.patch
index 40cd310b643d..9aa7d8b1cc94 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-update/0001-Generate-lockfile-for-cargo-update-v3.0.0.patch
+++ b/nixpkgs/pkgs/tools/package-management/cargo-update/0001-Generate-lockfile-for-cargo-update-v4.1.1.patch
@@ -1,26 +1,16 @@
-From 893ee8e76cc8b4096c84fe3a537e312304ce214b Mon Sep 17 00:00:00 2001
-From: Maximilian Bosch <maximilian@mbosch.me>
-Date: Wed, 11 Mar 2020 22:32:47 +0100
-Subject: [PATCH] Generate lockfile for cargo-update v3.0.0
-
----
- Cargo.lock | 632 +++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 632 insertions(+)
- create mode 100644 Cargo.lock
-
 diff --git a/Cargo.lock b/Cargo.lock
 new file mode 100644
-index 000000000..0b3a75632
+index 000000000..8d77f4824
 --- /dev/null
 +++ b/Cargo.lock
-@@ -0,0 +1,632 @@
+@@ -0,0 +1,641 @@
 +# This file is automatically @generated by Cargo.
 +# It is not intended for manual editing.
 +[[package]]
 +name = "aho-corasick"
-+version = "0.7.10"
++version = "0.7.13"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8716408b8bc624ed7f65d223ddb9ac2d044c0547b6fa4b0d554f3a9540496ada"
++checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
 +dependencies = [
 + "memchr",
 +]
@@ -94,7 +84,7 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "cargo-update"
-+version = "3.0.0"
++version = "4.1.1"
 +dependencies = [
 + "array_tool",
 + "clap",
@@ -117,9 +107,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "cc"
-+version = "1.0.50"
++version = "1.0.59"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
++checksum = "66120af515773fb005778dc07c261bd201ec8ce50bd6e7144c927753fe013381"
 +dependencies = [
 + "jobserver",
 +]
@@ -132,9 +122,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "clap"
-+version = "2.33.0"
++version = "2.33.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
++checksum = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
 +dependencies = [
 + "ansi_term",
 + "atty",
@@ -174,11 +164,10 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "dirs-sys"
-+version = "0.3.4"
++version = "0.3.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "afa0b23de8fd801745c471deffa6e12d248f962c9fd4b4c33787b055599bde7b"
++checksum = "8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a"
 +dependencies = [
-+ "cfg-if",
 + "libc",
 + "redox_users",
 + "winapi",
@@ -186,9 +175,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "embed-resource"
-+version = "1.3.2"
++version = "1.3.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8398b939acbb266ade6939090e9f634147e7b426a33054a833d9ec935d814882"
++checksum = "1f6b0b4403da80c2fd32333937dd468292c001d778c587ae759b75432772715d"
 +dependencies = [
 + "vswhom",
 + "winreg",
@@ -222,9 +211,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "hermit-abi"
-+version = "0.1.8"
++version = "0.1.15"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1010591b26bbfe835e9faeabeb11866061cc7dcebffd56ad7d0942d0e61aefd8"
++checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
 +dependencies = [
 + "libc",
 +]
@@ -275,9 +264,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "libc"
-+version = "0.2.67"
++version = "0.2.75"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "eb147597cdf94ed43ab7a9038716637d2d1bf2bc571da995d0028dec06bd3018"
++checksum = "55821a41348652c211bf26f6453cb9397af531fc358a33752c864a4f5bccc20e"
 +
 +[[package]]
 +name = "libgit2-sys"
@@ -295,9 +284,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "libssh2-sys"
-+version = "0.2.16"
++version = "0.2.19"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7bb70f29dc7c31d32c97577f13f41221af981b31248083e347b7f2c39225a6bc"
++checksum = "ca46220853ba1c512fc82826d0834d87b06bcd3c2a42241b7de72f3d2fe17056"
 +dependencies = [
 + "cc",
 + "libc",
@@ -309,9 +298,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "libz-sys"
-+version = "1.0.25"
++version = "1.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2eb5e43362e38e2bca2fd5f5134c4d4564a23a5c28e9b95411652021a8675ebe"
++checksum = "af67924b8dd885cccea261866c8ce5b74d239d272e154053ff927dae839f5ae9"
 +dependencies = [
 + "cc",
 + "libc",
@@ -321,9 +310,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "log"
-+version = "0.4.8"
++version = "0.4.11"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
++checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
 +dependencies = [
 + "cfg-if",
 +]
@@ -353,14 +342,24 @@ index 000000000..0b3a75632
 +checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
 +
 +[[package]]
++name = "openssl-src"
++version = "111.10.2+1.1.1g"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a287fdb22e32b5b60624d4a5a7a02dbe82777f730ec0dbc42a0554326fef5a70"
++dependencies = [
++ "cc",
++]
++
++[[package]]
 +name = "openssl-sys"
-+version = "0.9.54"
++version = "0.9.58"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1024c0a59774200a555087a6da3f253a9095a5f344e353b212ac4c8b8e450986"
++checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de"
 +dependencies = [
 + "autocfg",
 + "cc",
 + "libc",
++ "openssl-src",
 + "pkg-config",
 + "vcpkg",
 +]
@@ -373,33 +372,33 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "pkg-config"
-+version = "0.3.17"
++version = "0.3.18"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05da548ad6865900e60eaba7f589cc0783590a92e940c26953ff81ddbab2d677"
++checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
 +
 +[[package]]
 +name = "proc-macro2"
-+version = "1.0.9"
++version = "1.0.19"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6c09721c6781493a2a492a96b5a5bf19b65917fe6728884e7c44dd0c60ca3435"
++checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12"
 +dependencies = [
 + "unicode-xid",
 +]
 +
 +[[package]]
 +name = "quote"
-+version = "1.0.3"
++version = "1.0.7"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2bdc6c187c65bca4260c9011c9e3132efe4909da44726bad24cf7572ae338d7f"
++checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
 +dependencies = [
 + "proc-macro2",
 +]
 +
 +[[package]]
 +name = "redox_syscall"
-+version = "0.1.56"
++version = "0.1.57"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
++checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
 +
 +[[package]]
 +name = "redox_users"
@@ -414,9 +413,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "regex"
-+version = "1.3.4"
++version = "1.3.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "322cf97724bea3ee221b78fe25ac9c46114ebb51747ad5babd51a2fc6a8235a8"
++checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
 +dependencies = [
 + "aho-corasick",
 + "memchr",
@@ -426,9 +425,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "regex-syntax"
-+version = "0.6.16"
++version = "0.6.18"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1132f845907680735a84409c3bebc64d1364a5683ffbce899550cd09d5eaefc1"
++checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
 +
 +[[package]]
 +name = "rust-argon2"
@@ -460,15 +459,15 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "serde"
-+version = "1.0.104"
++version = "1.0.115"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449"
++checksum = "e54c9a88f2da7238af84b5101443f0c0d0a3bbdc455e34a5c9497b1903ed55d5"
 +
 +[[package]]
 +name = "serde_derive"
-+version = "1.0.104"
++version = "1.0.115"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "128f9e303a5a29922045a830221b8f78ec74a5f544944f3d5984f8ec3895ef64"
++checksum = "609feed1d0a73cc36a0182a840a9b37b4a82f0b1150369f0536a9e3f2a31dc48"
 +dependencies = [
 + "proc-macro2",
 + "quote",
@@ -492,9 +491,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "syn"
-+version = "1.0.16"
++version = "1.0.38"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "123bd9499cfb380418d509322d7a6d52e5315f064fe4b3ad18a53d6b92c07859"
++checksum = "e69abc24912995b3038597a7a593be5053eb0fb44f3cc5beec0deb421790c1f4"
 +dependencies = [
 + "proc-macro2",
 + "quote",
@@ -557,15 +556,15 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "unicode-width"
-+version = "0.1.7"
++version = "0.1.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
++checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
 +
 +[[package]]
 +name = "unicode-xid"
-+version = "0.2.0"
++version = "0.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
 +
 +[[package]]
 +name = "url"
@@ -580,15 +579,15 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "vcpkg"
-+version = "0.2.8"
++version = "0.2.10"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3fc439f2794e98976c88a2a2dafce96b930fe8010b0a256b3c2199a773933168"
++checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
 +
 +[[package]]
 +name = "vec_map"
-+version = "0.8.1"
++version = "0.8.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05c78687fb1a80548ae3250346c3db86a80a7cdd77bda190189f2d0a0987c81a"
++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
 +
 +[[package]]
 +name = "vswhom"
@@ -618,9 +617,9 @@ index 000000000..0b3a75632
 +
 +[[package]]
 +name = "winapi"
-+version = "0.3.8"
++version = "0.3.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
 +dependencies = [
 + "winapi-i686-pc-windows-gnu",
 + "winapi-x86_64-pc-windows-gnu",
@@ -646,6 +645,3 @@ index 000000000..0b3a75632
 +dependencies = [
 + "winapi",
 +]
--- 
-2.25.0
-
diff --git a/nixpkgs/pkgs/tools/package-management/cargo-update/default.nix b/nixpkgs/pkgs/tools/package-management/cargo-update/default.nix
index 8dc07d287d2d..62f73565b94e 100644
--- a/nixpkgs/pkgs/tools/package-management/cargo-update/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/cargo-update/default.nix
@@ -2,36 +2,51 @@
 , rustPlatform
 , fetchFromGitHub
 , cmake
+, pkg-config
+, installShellFiles
+, ronn
 , curl
 , libgit2
 , libssh2
 , openssl
-, pkg-config
-, zlib }:
+, Security
+, zlib
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-update";
-  version = "3.0.0";
+  version = "4.1.1";
 
   src = fetchFromGitHub {
     owner = "nabijaczleweli";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1jyfv8aa0gp67pvv8l2vkqq4j9rgjl4rq1wn4nqxb44gmvkg15l3";
+    sha256 = "03yfn6jq33mykk2cicx54cpddilp62pb5ah75n96k1mwy7c46r6g";
   };
 
-  cargoPatches = [ ./0001-Generate-lockfile-for-cargo-update-v3.0.0.patch ];
-  cargoSha256 = "034v1ql5k3n3rgi3aqszkybvv3vc80v263c9nlwxcwbswsh9jpp1";
+  cargoPatches = [ ./0001-Generate-lockfile-for-cargo-update-v4.1.1.patch ];
+  cargoSha256 = "1yaawp015gdnlfqkdmqsf95gszz0h5j1vpfjh763y7kk0bp7zswl";
+
+  nativeBuildInputs = [ cmake installShellFiles pkg-config ronn ];
 
-  nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ libgit2 libssh2 openssl zlib ]
-    ++ stdenv.lib.optional stdenv.isDarwin curl;
+    ++ stdenv.lib.optionals stdenv.isDarwin [ curl Security ];
+
+  postBuild = ''
+    # Man pages contain non-ASCII, so explicitly set encoding to UTF-8.
+    HOME=$TMPDIR \
+    RUBYOPT="-E utf-8:utf-8" \
+      ronn -r --organization="cargo-update developers" man/*.md
+  '';
+
+  postInstall = ''
+    installManPage man/*.1
+  '';
 
   meta = with stdenv.lib; {
     description = "A cargo subcommand for checking and applying updates to installed executables";
     homepage = "https://github.com/nabijaczleweli/cargo-update";
     license = licenses.mit;
-    maintainers = with maintainers; [ gerschtli filalex77 ];
-    platforms = platforms.all;
+    maintainers = with maintainers; [ gerschtli filalex77 johntitor ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/clib/default.nix b/nixpkgs/pkgs/tools/package-management/clib/default.nix
index c7e3c0fb6653..315589120271 100644
--- a/nixpkgs/pkgs/tools/package-management/clib/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/clib/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, curl  }:
 
 stdenv.mkDerivation rec {
-  version = "1.11.3";
+  version = "1.11.4";
   pname = "clib";
 
   src = fetchFromGitHub {
     rev    = version;
     owner  = "clibs";
     repo   = "clib";
-    sha256 = "0qwds9w9y2dy39bwh2523wra5dj820cjl11ynkshh7k94fk7qgpm";
+    sha256 = "0cxldyx5bsld8gdasqpqlnzyap294hlkgcjyw3vlzlxcb0izjy8i";
   };
 
   hardeningDisable = [ "fortify" ];
diff --git a/nixpkgs/pkgs/tools/package-management/dpkg/default.nix b/nixpkgs/pkgs/tools/package-management/dpkg/default.nix
index 8d012c90f928..8b9d812ee363 100644
--- a/nixpkgs/pkgs/tools/package-management/dpkg/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/dpkg/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dpkg";
-  version = "1.20.0";
+  version = "1.20.5";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/d/dpkg/dpkg_${version}.tar.xz";
-    sha256 = "0009dp4p3d2j5vd956achqczf8qizfixha8hw5hzn3h31qmwqcxn";
+    sha256 = "1pg0yd1q9l5cx7pr0853yds1n3mh5b28zkw79gjqjzcmjwqkzwpj";
   };
 
   configureFlags = [
@@ -69,6 +69,6 @@ stdenv.mkDerivation rec {
     homepage = "https://wiki.debian.org/Teams/Dpkg";
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ siriobalmelli ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/emplace/default.nix b/nixpkgs/pkgs/tools/package-management/emplace/default.nix
index 0ccad3013100..c794566e19f1 100644
--- a/nixpkgs/pkgs/tools/package-management/emplace/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/emplace/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "emplace";
-  version = "0.3.3";
+  version = "0.3.7";
 
   src = fetchFromGitHub {
     owner = "tversteeg";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0zw7lbm6ly2c607ha9gbriknzqbgh3hkqb83507hah1hanzp7zq9";
+    sha256 = "0ihx6hrzs7wkdz9wzgarmm73dz1fb2bhssmxrgv5nzmkhygn4xfy";
   };
 
-  cargoSha256 = "166nsk3v3w5ji7k8hflvjylz8hkgbxqrdwb03m7l8ak8wgkycxzx";
+  cargoSha256 = "0yqg2hagsjaxvrj96qg6k1llkmqdqp792c2844h7fhnhlx6v2wd2";
 
   meta = with lib; {
     description = "Mirror installed software on multiple machines";
diff --git a/nixpkgs/pkgs/tools/package-management/home-manager/default.nix b/nixpkgs/pkgs/tools/package-management/home-manager/default.nix
index e569d5a3de9b..cff6122fe6d4 100644
--- a/nixpkgs/pkgs/tools/package-management/home-manager/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/home-manager/default.nix
@@ -6,13 +6,13 @@
 stdenv.mkDerivation rec {
 
   pname = "home-manager";
-  version = "2020-03-17";
+  version = "2020-09-06";
 
   src = fetchFromGitHub {
-    owner = "rycee";
+    owner = "nix-community";
     repo = "home-manager";
-    rev = "5969551a5cc52f9470b5ff5ca01327bf4bda82c1";
-    sha256 = "0f4kz83a1kp3ci8zi5hvp8fp34wi73arpykl4d9vlywdk6w36bnd";
+    rev = "249650a07ee2d949fa599f3177a8c234adbd1bee";
+    sha256 = "0x858b7i15kx74aqwgi2n5ls7zjhcky95z9vbxfdlawmaz371dma";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/package-management/librepo/default.nix b/nixpkgs/pkgs/tools/package-management/librepo/default.nix
index 6914f1af5f14..0e2cec685206 100644
--- a/nixpkgs/pkgs/tools/package-management/librepo/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/librepo/default.nix
@@ -13,7 +13,7 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.11.3";
+  version = "1.12.1";
   pname = "librepo";
 
   outputs = [ "out" "dev" "py" ];
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "rpm-software-management";
     repo = "librepo";
     rev = version;
-    sha256 = "1kdv0xyrbd942if82yvm9ykcskziq2xhw5cpb3xv4wx32a9kc8yz";
+    sha256 = "0793j35fcv6bbz2pkd5rcsmx37hb1f0y48r4758cbfnl9rbp9y4z";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/package-management/licensee/Gemfile b/nixpkgs/pkgs/tools/package-management/licensee/Gemfile
new file mode 100644
index 000000000000..a5d0dacfcfae
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/licensee/Gemfile
@@ -0,0 +1,2 @@
+source 'https://rubygems.org'
+gem 'licensee'
diff --git a/nixpkgs/pkgs/tools/package-management/licensee/Gemfile.lock b/nixpkgs/pkgs/tools/package-management/licensee/Gemfile.lock
new file mode 100644
index 000000000000..00d62361e697
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/licensee/Gemfile.lock
@@ -0,0 +1,38 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    addressable (2.7.0)
+      public_suffix (>= 2.0.2, < 5.0)
+    dotenv (2.7.6)
+    faraday (1.0.1)
+      multipart-post (>= 1.2, < 3)
+    licensee (9.14.0)
+      dotenv (~> 2.0)
+      octokit (~> 4.17)
+      reverse_markdown (~> 1.0)
+      rugged (~> 0.24)
+      thor (>= 0.19, < 2.0)
+    mini_portile2 (2.4.0)
+    multipart-post (2.1.1)
+    nokogiri (1.10.10)
+      mini_portile2 (~> 2.4.0)
+    octokit (4.18.0)
+      faraday (>= 0.9)
+      sawyer (~> 0.8.0, >= 0.5.3)
+    public_suffix (4.0.5)
+    reverse_markdown (1.4.0)
+      nokogiri
+    rugged (0.99.0)
+    sawyer (0.8.2)
+      addressable (>= 2.3.5)
+      faraday (> 0.8, < 2.0)
+    thor (1.0.1)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  licensee
+
+BUNDLED WITH
+   2.1.4
diff --git a/nixpkgs/pkgs/tools/package-management/licensee/default.nix b/nixpkgs/pkgs/tools/package-management/licensee/default.nix
new file mode 100644
index 000000000000..fb33f498bbc3
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/licensee/default.nix
@@ -0,0 +1,17 @@
+{ lib, bundlerApp, bundlerUpdateScript }:
+
+bundlerApp {
+  pname = "licensee";
+  gemdir = ./.;
+  exes = [ "licensee" ];
+
+  passthru.updateScript = bundlerUpdateScript "licensee";
+
+  meta = with lib; {
+    description = "A Ruby Gem to detect under what license a project is distributed";
+    homepage    = "https://licensee.github.io/licensee/";
+    license     = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+    platforms   = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/package-management/licensee/gemset.nix b/nixpkgs/pkgs/tools/package-management/licensee/gemset.nix
new file mode 100644
index 000000000000..b3b326f6b317
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/licensee/gemset.nix
@@ -0,0 +1,139 @@
+{
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1fvchp2rhp2rmigx7qglf69xvjqvzq7x0g49naliw29r2bz656sy";
+      type = "gem";
+    };
+    version = "2.7.0";
+  };
+  dotenv = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0iym172c5337sm1x2ykc2i3f961vj3wdclbyg1x6sxs3irgfsl94";
+      type = "gem";
+    };
+    version = "2.7.6";
+  };
+  faraday = {
+    dependencies = ["multipart-post"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wwks9652xwgjm7yszcq5xr960pjypc07ivwzbjzpvy9zh2fw6iq";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+  licensee = {
+    dependencies = ["dotenv" "octokit" "reverse_markdown" "rugged" "thor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1mv7khv080p81x6indb5akr2a1x84l2xy96a6bziw207291lxx7p";
+      type = "gem";
+    };
+    version = "9.14.0";
+  };
+  mini_portile2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15zplpfw3knqifj9bpf604rb3wc1vhq6363pd6lvhayng8wql5vy";
+      type = "gem";
+    };
+    version = "2.4.0";
+  };
+  multipart-post = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1zgw9zlwh2a6i1yvhhc4a84ry1hv824d6g2iw2chs3k5aylpmpfj";
+      type = "gem";
+    };
+    version = "2.1.1";
+  };
+  nokogiri = {
+    dependencies = ["mini_portile2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xmf60nj5kg9vaj5bysy308687sgmkasgx06vbbnf94p52ih7si2";
+      type = "gem";
+    };
+    version = "1.10.10";
+  };
+  octokit = {
+    dependencies = ["faraday" "sawyer"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zvfr9njmj5svi39fcsi2b0g7pcxb0vamw9dlyas8bg814jlzhi6";
+      type = "gem";
+    };
+    version = "4.18.0";
+  };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vywld400fzi17cszwrchrzcqys4qm6sshbv73wy5mwcixmrgg7g";
+      type = "gem";
+    };
+    version = "4.0.5";
+  };
+  reverse_markdown = {
+    dependencies = ["nokogiri"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0w786j869fjhjf72waj0hc9i4ghi45b78a2am27kij4sa2hmsc53";
+      type = "gem";
+    };
+    version = "1.4.0";
+  };
+  rugged = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "04rkxwzaa6897da3mnm70g720gpxwyh71krfn6ag1dkk80x8a8yz";
+      type = "gem";
+    };
+    version = "0.99.0";
+  };
+  sawyer = {
+    dependencies = ["addressable" "faraday"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0yrdchs3psh583rjapkv33mljdivggqn99wkydkjdckcjn43j3cz";
+      type = "gem";
+    };
+    version = "0.8.2";
+  };
+  thor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xbhkmyhlxwzshaqa7swy2bx6vd64mm0wrr8g3jywvxy7hg0cwkm";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
+}
\ No newline at end of file
diff --git a/nixpkgs/pkgs/tools/package-management/mynewt-newt/default.nix b/nixpkgs/pkgs/tools/package-management/mynewt-newt/default.nix
index ce155b72fc39..d559ca8921c2 100644
--- a/nixpkgs/pkgs/tools/package-management/mynewt-newt/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/mynewt-newt/default.nix
@@ -24,6 +24,8 @@ buildGoModule rec {
 
   vendorSha256 = "1sh9mx3lc28fzvc1yrhz58rlbaac7aq1dqyvxwj98vld3kigpv1z";
 
+  doCheck = false;
+
   meta = with stdenv.lib; {
     homepage = "https://mynewt.apache.org/";
     description = "Build and package management tool for embedded development.";
@@ -36,4 +38,4 @@ buildGoModule rec {
     maintainers = with maintainers; [ pjones ];
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/package-management/nfpm/default.nix b/nixpkgs/pkgs/tools/package-management/nfpm/default.nix
index 4c04f24b26c3..2ecc64a09b13 100644
--- a/nixpkgs/pkgs/tools/package-management/nfpm/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nfpm/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "nfpm";
-  version = "1.3.1";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "goreleaser";
     repo = pname;
     rev = "v${version}";
-    sha256 = "14083sxim17nwmq7w7wvq9sq9pai860v8a2q14vz16hd2i427aqp";
+    sha256 = "0hg15k9bz5iw7mv4m31rg4f5anfiirr3vjvy16z532vwfh05ixw3";
   };
 
-  vendorSha256 = "0v86fwi1i6b8ngf60ag31mrbah45f0ncqhrjdk5494f139c26067";
+  vendorSha256 = "032l0xrf4ny4ildinxlfjy8sslhcl2krmgnm07dnx999jxlswxym";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
@@ -21,4 +23,4 @@ buildGoModule rec {
     maintainers = [ maintainers.marsam ];
     license = licenses.mit;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix b/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix
new file mode 100644
index 000000000000..630ac6e94a9b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/nix-doc/default.nix
@@ -0,0 +1,29 @@
+{ stdenv, rustPlatform, fetchFromGitHub, boost, nix, pkg-config }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nix-doc";
+  version = "0.3.3";
+
+  src = fetchFromGitHub {
+    rev = "v${version}";
+    owner = "lf-";
+    repo = "nix-doc";
+    sha256 = "0vd7159y5w8jjgaw51kfr3z3r50299gvw7vjchpqx3nwmdink8bh";
+  };
+
+  doCheck = true;
+  buildInputs = [ boost nix ];
+
+  nativeBuildInputs = [ pkg-config ];
+
+  cargoSha256 = "1xz3qngs8p0s62dq4d46c01z3k1vvgg856767g56b13c38pzfh28";
+
+  meta = with stdenv.lib; {
+    description = "An interactive Nix documentation tool";
+    longDescription = "An interactive Nix documentation tool providing a CLI for function search and a Nix plugin for docs in the REPL";
+    homepage = "https://github.com/lf-/nix-doc";
+    license = licenses.lgpl3;
+    maintainers = [ maintainers.lf- ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/package-management/nix-du/default.nix b/nixpkgs/pkgs/tools/package-management/nix-du/default.nix
index 417962733af6..8356e43e2e65 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-du/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-du/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nix-du";
-  version = "0.3.1";
+  version = "0.3.3";
 
   src = fetchFromGitHub {
     owner = "symphorien";
     repo = "nix-du";
     rev = "v${version}";
-    sha256 = "149d60mid29s5alv5m3d7jrhyzc6cj7b6hpiq399gsdwzgxr00wq";
+    sha256 = "0h8ya0nn65hbyi3ssmrjarfxadx2sa61sspjlrln8knk7ppxk3mq";
   };
 
-  cargoSha256 = "1a6svl89dcdb5fpvs2i32i6agyhl0sx7kkkw70rqr17fyzl5psai";
+  cargoSha256 = "0d86bn6myr29bwrzw3ihnzg1yij673s80bm1l8srk2k2szyfwwh5";
 
   doCheck = true;
   checkInputs = [ nix graphviz ];
diff --git a/nixpkgs/pkgs/tools/package-management/nix-index/default.nix b/nixpkgs/pkgs/tools/package-management/nix-index/default.nix
index db26f9e0b087..37a638c5670d 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-index/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-index/default.nix
@@ -35,6 +35,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/bennofs/nix-index";
     license = with licenses; [ bsd3 ];
     maintainers = [ maintainers.bennofs ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/nix-prefetch/default.nix b/nixpkgs/pkgs/tools/package-management/nix-prefetch/default.nix
index 1a750da69301..f1f575a81b94 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-prefetch/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-prefetch/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, installShellFiles, makeWrapper, asciidoc
 , docbook_xml_dtd_45, git, docbook_xsl, libxml2, libxslt, coreutils, gawk
-, gnugrep, gnused, jq, nix }:
+, gnugrep, gnused, jq, nix, fetchpatch }:
 
 let
   binPath = stdenv.lib.makeBinPath [ coreutils gawk git gnugrep gnused jq nix ];
@@ -20,6 +20,20 @@ in stdenv.mkDerivation rec {
     '';
   };
 
+  patches = [
+    # Fix compatibility with nixUnstable
+    # https://github.com/msteen/nix-prefetch/pull/9
+    (fetchpatch {
+      url = "https://github.com/msteen/nix-prefetch/commit/2722cda48ab3f4795105578599b29fc99518eff4.patch";
+      sha256 = "037m388sbl72kyqnk86mw7lhjhj9gzfglw3ri398ncfmmkq8b7r4";
+    })
+    # https://github.com/msteen/nix-prefetch/pull/12
+    (fetchpatch {
+      url = "https://github.com/msteen/nix-prefetch/commit/de96564e9f28df82bccd0584953094e7dbe87e20.patch";
+      sha256 = "0mxai6w8cfs7k8wfbsrpg5hwkyb0fj143nm0v142am0ky8ahn0d9";
+    })
+  ];
+
   postPatch = ''
     lib=$out/lib/${pname}
 
diff --git a/nixpkgs/pkgs/tools/package-management/nix-simple-deploy/default.nix b/nixpkgs/pkgs/tools/package-management/nix-simple-deploy/default.nix
index 3bc0b35c0f17..5782aa9dc35d 100644
--- a/nixpkgs/pkgs/tools/package-management/nix-simple-deploy/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix-simple-deploy/default.nix
@@ -17,7 +17,6 @@ rustPlatform.buildRustPackage rec {
     description = "Deploy software or an entire NixOS system configuration to another NixOS system";
     homepage = "https://github.com/misuzu/nix-simple-deploy";
     license = with licenses; [ asl20 /* OR */ mit ];
-    platforms = platforms.all;
     maintainers = with maintainers; [ misuzu ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/nix-template/default.nix b/nixpkgs/pkgs/tools/package-management/nix-template/default.nix
new file mode 100644
index 000000000000..0ef3602c5975
--- /dev/null
+++ b/nixpkgs/pkgs/tools/package-management/nix-template/default.nix
@@ -0,0 +1,23 @@
+{ lib, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nix-template";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner = "jonringer";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1h6xdvhzg7nb0s82b3r5bsh8bfdb1l5sm7fa24lfwd396xp9yyig";
+  };
+
+  cargoSha256 = "13y3b60xnry71999kygvkr29gkyjss3ga3rzb43ajah4qp90rsqs";
+
+  meta = with lib; {
+    description = "Make creating nix expressions easy";
+    homepage = "https://github.com/jonringer/nix-template/";
+    changelog = "https://github.com/jonringer/nix-template/releases/tag/v${version}";
+    license = licenses.cc0;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/package-management/nix/default.nix b/nixpkgs/pkgs/tools/package-management/nix/default.nix
index 363a7cb04988..2acf5d194e09 100644
--- a/nixpkgs/pkgs/tools/package-management/nix/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nix/default.nix
@@ -13,7 +13,7 @@ common =
   , bash, coreutils, gzip, gnutar
   , pkgconfig, boehmgc, perlPackages, libsodium, brotli, boost, editline, nlohmann_json
   , autoreconfHook, autoconf-archive, bison, flex, libxml2, libxslt, docbook5, docbook_xsl_ns
-  , jq, libarchive, rustc, cargo
+  , jq, libarchive
   # Used by tests
   , gmock
   , busybox-sandbox-shell
@@ -23,7 +23,7 @@ common =
   , withLibseccomp ? lib.any (lib.meta.platformMatch stdenv.hostPlatform) libseccomp.meta.platforms, libseccomp
   , withAWS ? !enableStatic && (stdenv.isLinux || stdenv.isDarwin), aws-sdk-cpp
   , enableStatic ? false
-  , name, suffix ? "", src, crates ? null
+  , name, suffix ? "", src
 
   }:
   let
@@ -42,14 +42,14 @@ common =
       nativeBuildInputs =
         [ pkgconfig ]
         ++ lib.optionals is24 [ autoreconfHook autoconf-archive bison flex libxml2 libxslt
-                                docbook5 docbook_xsl_ns jq gmock ];
+                                docbook5 docbook_xsl_ns jq ];
 
       buildInputs =
         [ curl openssl sqlite xz bzip2 nlohmann_json
           brotli boost editline
         ]
         ++ lib.optional (stdenv.isLinux || stdenv.isDarwin) libsodium
-        ++ lib.optionals is24 [ libarchive rustc cargo ]
+        ++ lib.optionals is24 [ libarchive gmock ]
         ++ lib.optional withLibseccomp libseccomp
         ++ lib.optional withAWS
             ((aws-sdk-cpp.override {
@@ -88,11 +88,6 @@ common =
             patchelf --set-rpath $out/lib:${stdenv.cc.cc.lib}/lib $out/lib/libboost_thread.so.*
           ''}
         '' +
-        # Unpack the Rust crates.
-        lib.optionalString is24 ''
-          tar xvf ${crates} -C nix-rust/
-          mv nix-rust/nix-vendored-crates* nix-rust/vendor
-        '' +
         # For Nix-2.3, patch around an issue where the Nix configure step pulls in the
         # build system's bash and other utilities when cross-compiling
         lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform && isExactly23) ''
@@ -124,7 +119,8 @@ common =
            # RISC-V support in progress https://github.com/seccomp/libseccomp/pull/50
         ++ lib.optional (!withLibseccomp) "--disable-seccomp-sandboxing";
 
-      makeFlags = [ "profiledir=$(out)/etc/profile.d" ];
+      makeFlags = [ "profiledir=$(out)/etc/profile.d" ]
+        ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "PRECOMPILE_HEADERS=0";
 
       installFlags = [ "sysconfdir=$(out)/etc" ];
 
@@ -187,10 +183,10 @@ in rec {
   nix = nixStable;
 
   nixStable = callPackage common (rec {
-    name = "nix-2.3.6";
+    name = "nix-2.3.7";
     src = fetchurl {
       url = "https://nixos.org/releases/nix/${name}/${name}.tar.xz";
-      sha256 = "05e90529c9dc9f4bf656cbceae61cafdca49935bb79cd291c8f078a095701d89";
+      sha256 = "dd8f52849414e5a878afe7e797aa4e22bab77c875d9da5a38d5f1bada704e596";
     };
 
     inherit storeDir stateDir confDir boehmgc;
@@ -199,41 +195,19 @@ in rec {
   });
 
   nixUnstable = lib.lowPrio (callPackage common rec {
-    name = "nix-2.4${suffix}";
-    suffix = "pre7534_b92f58f6";
+    name = "nix-3.0${suffix}";
+    suffix = "pre20200829_f156513";
 
     src = fetchFromGitHub {
       owner = "NixOS";
       repo = "nix";
-      rev = "b92f58f6d9e44f97002d1722bd77bad939824c1c";
-      sha256 = "1p791961y5v04kpz37g6hm98f1ig7i34inxl9dcj3pbqhf5kicxg";
-    };
-
-    crates = fetchurl {
-      url = "https://hydra.nixos.org/build/118797694/download/1/nix-vendored-crates-2.4pre7534_b92f58f6.tar.xz";
-      sha256 = "a4c2612bbd81732bbb899bc0c230e07b16f6b6150ffbb19c4907dedbbc2bf9fc";
+      rev = "f15651303f8596bf34c67fc8d536b1e9e7843a87";
+      hash = "sha256-HqM3Z4DLdMrf+0PPZL9ysctGg+K+i3S/IHA1GsJj0Ro=";
     };
 
     inherit storeDir stateDir confDir boehmgc;
   });
 
-  nixFlakes = lib.lowPrio (callPackage common rec {
-    name = "nix-2.4${suffix}";
-    suffix = "pre20200521_00b562c";
-
-    src = fetchFromGitHub {
-      owner = "NixOS";
-      repo = "nix";
-      rev = "00b562c87ec4c3bbe514f5dc1f4d1c41f66f66bf";
-      sha256 = "0s8is2czpkcj1x1kcjqgbnsbbl03w3fwjjiclsd44zh1ij3wb90s";
-    };
-
-    crates = fetchurl {
-      url = "https://hydra.nixos.org/build/118093786/download/1/nix-vendored-crates-2.4pre20200501_941f952.tar.xz";
-      sha256 = "060f4n5srdbb8vsj0m14aqch7im79a4h5g3nrs41p1xc602vhcdl";
-    };
-
-    inherit storeDir stateDir confDir boehmgc;
-  });
+  nixFlakes = nixUnstable;
 
 }
diff --git a/nixpkgs/pkgs/tools/package-management/nixpkgs-review/default.nix b/nixpkgs/pkgs/tools/package-management/nixpkgs-review/default.nix
index 922546009fca..935f6553f9cd 100644
--- a/nixpkgs/pkgs/tools/package-management/nixpkgs-review/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/nixpkgs-review/default.nix
@@ -8,13 +8,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "nixpkgs-review";
-  version = "2.3.1";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "nixpkgs-review";
     rev = version;
-    sha256 = "1v988jsxx2r82q6mf3503130cny088hin2as00yi26jzxjkrjcli";
+    sha256 = "0kca4442mla8j9980gi8kgp0vgm0f15hcjd0w0wdj8rlmkx9yf2l";
   };
 
   makeWrapperArgs = [
diff --git a/nixpkgs/pkgs/tools/package-management/opkg/default.nix b/nixpkgs/pkgs/tools/package-management/opkg/default.nix
index c097674135c7..9195804a43dc 100644
--- a/nixpkgs/pkgs/tools/package-management/opkg/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/opkg/default.nix
@@ -2,11 +2,11 @@
 , autoreconfHook }:
 
 stdenv.mkDerivation rec {
-  version = "0.4.2";
+  version = "0.4.3";
   pname = "opkg";
   src = fetchurl {
     url = "https://downloads.yoctoproject.org/releases/opkg/opkg-${version}.tar.gz";
-    sha256 = "01p1a7hw9q9ixfk01djyy9axs71z1x9dkdnqz7zysmrlqi97i246";
+    sha256 = "06278gmb26b9nl8l328cc2c2mhfi0dhac65syws17kf09f2m596x";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
diff --git a/nixpkgs/pkgs/tools/package-management/pacman/default.nix b/nixpkgs/pkgs/tools/package-management/pacman/default.nix
index 3ca55ddbbf29..980f0d1e0c91 100644
--- a/nixpkgs/pkgs/tools/package-management/pacman/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/pacman/default.nix
@@ -3,11 +3,11 @@ lzma, curl, runtimeShell }:
 
 stdenv.mkDerivation rec {
   pname = "pacman";
-  version = "5.2.1";
+  version = "5.2.2";
 
   src = fetchurl {
     url = "https://sources.archlinux.org/other/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "04pkb8qvkldrayfns8cx4fljl4lyys1dqvlf7b5kkl2z4q3w8c0r";
+    sha256 = "1829jcc300fxidr3cahx5kpnxkpg500daqgn2782hg5m5ygil85v";
   };
 
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/tools/package-management/protontricks/default.nix b/nixpkgs/pkgs/tools/package-management/protontricks/default.nix
index fe7f41c4d08a..02bc599f47dc 100644
--- a/nixpkgs/pkgs/tools/package-management/protontricks/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/protontricks/default.nix
@@ -1,18 +1,24 @@
-{ stdenv, lib, buildPythonApplication, fetchFromGitHub
-, setuptools_scm, vdf
-, wine, winetricks, zenity
+{ stdenv
+, lib
+, buildPythonApplication
+, fetchFromGitHub
+, setuptools_scm
+, vdf
+, wine
+, winetricks
+, zenity
 , pytest
 }:
 
 buildPythonApplication rec {
   pname = "protontricks";
-  version = "1.4.1";
+  version = "1.4.2";
 
   src = fetchFromGitHub {
     owner = "Matoking";
     repo = pname;
     rev = version;
-    sha256 = "083ncg6yjd7s3dx91zd52w166x709mnxknwwr78ggka8d8vlyi0b";
+    sha256 = "0ri4phi1rna9snrxa6gl23walyack09mgax7zpjqfpxivwls3ach";
   };
 
   # Fix interpreter in mock run.sh for tests
@@ -47,7 +53,7 @@ buildPythonApplication rec {
     description = "A simple wrapper for running Winetricks commands for Proton-enabled games";
     homepage = "https://github.com/Matoking/protontricks";
     license = licenses.gpl3;
-    platforms = with platforms; linux;
     maintainers = with maintainers; [ metadark ];
+    platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/package-management/reuse/default.nix b/nixpkgs/pkgs/tools/package-management/reuse/default.nix
index b51f0d061a9f..01a1bf4a9336 100644
--- a/nixpkgs/pkgs/tools/package-management/reuse/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/reuse/default.nix
@@ -4,13 +4,13 @@ with python3Packages;
 
 buildPythonApplication rec {
   pname = "reuse";
-  version = "0.11.0";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
     owner = "fsfe";
     repo = "reuse-tool";
     rev = "v${version}";
-    sha256 = "08dzvrv28ylbq1bm16lakwzyqq530fcbrl71k33zyb84mvgszy97";
+    sha256 = "0wkk107s0bpvbknapns0qdzf8csrzc2j6gliy6pa8z208fcfzyy3";
   };
 
   propagatedBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/package-management/rpm/default.nix b/nixpkgs/pkgs/tools/package-management/rpm/default.nix
index fee282de52fc..8acf57570d7c 100644
--- a/nixpkgs/pkgs/tools/package-management/rpm/default.nix
+++ b/nixpkgs/pkgs/tools/package-management/rpm/default.nix
@@ -1,6 +1,6 @@
 { stdenv, lib
 , pkgconfig, autoreconfHook
-, fetchurl, cpio, zlib, bzip2, file, elfutils, libbfd, libarchive, nspr, nss, popt, db, xz, python, lua
+, fetchurl, cpio, zlib, bzip2, file, elfutils, libbfd, libarchive, nspr, nss, popt, db, xz, python, lua, llvmPackages
 }:
 
 stdenv.mkDerivation rec {
@@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" "man" ];
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
-  buildInputs = [ cpio zlib bzip2 file libarchive nspr nss db xz python lua ];
+  buildInputs = [ cpio zlib bzip2 file libarchive nspr nss db xz python lua ]
+                ++ lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ];
 
   # rpm/rpmlib.h includes popt.h, and then the pkg-config file mentions these as linkage requirements
   propagatedBuildInputs = [ popt nss db bzip2 libarchive libbfd ]
diff --git a/nixpkgs/pkgs/tools/security/1password-gui/default.nix b/nixpkgs/pkgs/tools/security/1password-gui/default.nix
new file mode 100644
index 000000000000..ad3bb6eeb1b0
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/1password-gui/default.nix
@@ -0,0 +1,75 @@
+{ stdenv
+, fetchurl
+, appimageTools
+, makeWrapper
+, electron_9
+, openssl
+}:
+
+let
+  electron = electron_9;
+
+in
+
+stdenv.mkDerivation rec {
+  pname = "1password";
+  version = "0.8.7";
+
+  src = fetchurl {
+    url = "https://onepassword.s3.amazonaws.com/linux/appimage/${pname}-${version}.AppImage";
+    sha256 = "1101q5yavzl8imf8gqa3h929gcyy6lh7dy2dw0zs52qdcrb4z49j";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  appimageContents = appimageTools.extractType2 {
+    name = "${pname}-${version}";
+    inherit src;
+  };
+
+  dontUnpack = true;
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = let
+    runtimeLibs = [
+      openssl.out
+      stdenv.cc.cc
+    ];
+  in ''
+    mkdir -p $out/bin $out/share/1password
+
+    # Applications files.
+    cp -a ${appimageContents}/{locales,resources} $out/share/${pname}
+
+    # Desktop file.
+    install -Dt $out/share/applications ${appimageContents}/${pname}.desktop
+    substituteInPlace $out/share/applications/${pname}.desktop \
+      --replace 'Exec=AppRun' 'Exec=${pname}'
+
+    # Icons.
+    cp -a ${appimageContents}/usr/share/icons $out/share
+
+    # Wrap the application with Electron.
+    makeWrapper "${electron}/bin/electron" "$out/bin/${pname}" \
+      --add-flags "$out/share/${pname}/resources/app.asar" \
+      --prefix LD_LIBRARY_PATH : "${stdenv.lib.makeLibraryPath runtimeLibs}"
+  '';
+
+  passthru.updateScript = ./update.sh;
+
+  meta = with stdenv.lib; {
+    description = "Multi-platform password manager";
+    longDescription = ''
+      1Password is a multi-platform package manager.
+
+      The Linux version is currently a development preview and can
+      only be used to search, view, and copy items. However items
+      cannot be created or edited.
+    '';
+    homepage = "https://1password.com/";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ danieldk ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/1password-gui/update.sh b/nixpkgs/pkgs/tools/security/1password-gui/update.sh
new file mode 100755
index 000000000000..7703aba99847
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/1password-gui/update.sh
@@ -0,0 +1,5 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl gnused common-updater-scripts
+
+version="$(curl -sL https://onepassword.s3.amazonaws.com/linux/debian/dists/edge/main/binary-amd64/Packages | sed -r -n 's/^Version: (.*)-[0-9]+/\1/p' | head -n1)"
+update-source-version _1password-gui "$version"
diff --git a/nixpkgs/pkgs/tools/security/2fa/default.nix b/nixpkgs/pkgs/tools/security/2fa/default.nix
index cf14ec124024..7b6048660c45 100644
--- a/nixpkgs/pkgs/tools/security/2fa/default.nix
+++ b/nixpkgs/pkgs/tools/security/2fa/default.nix
@@ -16,7 +16,6 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     homepage = "https://rsc.io/2fa";
     description = "Two-factor authentication on the command line";
-    platforms = platforms.all;
     maintainers = with maintainers; [ rvolosatovs ];
     license = licenses.bsd3;
   };
diff --git a/nixpkgs/pkgs/tools/security/afl/default.nix b/nixpkgs/pkgs/tools/security/afl/default.nix
index e32aa0348747..091b52bfcf04 100644
--- a/nixpkgs/pkgs/tools/security/afl/default.nix
+++ b/nixpkgs/pkgs/tools/security/afl/default.nix
@@ -9,13 +9,13 @@ let
     else throw "afl: no support for ${stdenv.hostPlatform.system}!";
   afl = stdenv.mkDerivation rec {
     pname = "afl";
-    version = "2.56b";
+    version = "2.57b";
 
     src = fetchFromGitHub {
       owner = "google";
       repo = pname;
       rev = "v${version}";
-      sha256 = "1q1g59gkm48aa4cg9h70jx4i2gapmypgp5rzs156b2avd95vwkn1";
+      sha256 = "0fqj3g6ds1f21kxz7m9mc1fspi9r4jg9jcmi60inwxijrc5ncvr6";
     };
     enableParallelBuilding = true;
 
diff --git a/nixpkgs/pkgs/tools/security/age/default.nix b/nixpkgs/pkgs/tools/security/age/default.nix
index c3756b545e3e..4eb88211d6d0 100644
--- a/nixpkgs/pkgs/tools/security/age/default.nix
+++ b/nixpkgs/pkgs/tools/security/age/default.nix
@@ -2,20 +2,14 @@
 
 buildGoModule rec {
   pname = "age";
-  version = "unstable-2020-03-25";
-  goPackagePath = "github.com/FiloSottile/age";
+  version = "1.0.0-beta5";
   vendorSha256 = "0km7a2826j3fk2nrkmgc990chrkcfz006wfw14yilsa4p2hmfl7m";
 
-  subPackages = [
-    "cmd/age"
-    "cmd/age-keygen"
-  ];
-
   src = fetchFromGitHub {
     owner = "FiloSottile";
     repo = "age";
-    rev = "f0f8092d60bb96737fa096c29ec6d8adb5810390";
-    sha256 = "079kfc8d1pr39hr4qnx48kviyzwg4p8m4pz0bdkypns4aq8ppbfk";
+    rev = "v${version}";
+    sha256 = "1hdbxd359z8zvnz7h8c4pa16nc7r8db36lx3gpks38lpi0r8hzqk";
   };
 
   meta = with lib; {
@@ -24,4 +18,4 @@ buildGoModule rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ tazjin ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/security/aws-okta/default.nix b/nixpkgs/pkgs/tools/security/aws-okta/default.nix
index fe7d5e69f4d5..b540be3928a8 100644
--- a/nixpkgs/pkgs/tools/security/aws-okta/default.nix
+++ b/nixpkgs/pkgs/tools/security/aws-okta/default.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "aws-okta";
-  version = "0.26.3";
+  version = "1.0.4";
 
   goPackagePath = "github.com/segmentio/aws-okta";
 
@@ -10,13 +10,13 @@ buildGoPackage rec {
     owner = "segmentio";
     repo = "aws-okta";
     rev = "v${version}";
-    sha256 = "0n6xm3yv0lxfapchzfrqi05hk918n4lh1hcp7gq7hybam93rld96";
+    sha256 = "0a7xccnv0x0a6sydif0rvkdbw4jy9gjijajip1ac6m70l20dhl1v";
   };
 
-  goDeps = ./deps.nix;
-
   buildFlags = [ "--tags" "release" ];
 
+  buildFlagsArray = [ "-ldflags=-X main.Version=${version}" ];
+
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ libusb1  libiconv ];
 
@@ -25,7 +25,6 @@ buildGoPackage rec {
     description = "aws-vault like tool for Okta authentication";
     license = licenses.mit;
     maintainers = [maintainers.imalsogreg];
-    platforms = platforms.all;
     homepage = "https://github.com/segmentio/aws-okta";
     downloadPage = "https://github.com/segmentio/aws-okta";
   };
diff --git a/nixpkgs/pkgs/tools/security/aws-okta/deps.nix b/nixpkgs/pkgs/tools/security/aws-okta/deps.nix
deleted file mode 100644
index 180aa69d56c5..000000000000
--- a/nixpkgs/pkgs/tools/security/aws-okta/deps.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus.git";
-      rev = "a437dfd2463eaedbec3dfe443e477d3b0a810b3f";
-      sha256 = "1904s2bbc7p88anzjp6fyj3jrbm5p6wbb8j4490674dq10kkcfbj";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys/unix";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/sys.git";
-      rev = "b699b7032584f0953262cb2788a0ca19bb494703";
-      sha256 = "172sw1bm581qwal9pbf9qj1sgivr74nabbj8qq4q4fhgpzams9ix";
-    };
-  }
-  {
-    goPackagePath = "github.com/marshallbrekka/go-u2fhost";
-    fetch = {
-      type = "git";
-      url = "https://github.com/marshallbrekka/go-u2fhost";
-      rev = "72b0e7a3f583583996b3b382d2dfaa81fdc4b82c";
-      sha256 = "0apzmf0bjpr58ynw55agyjsl74zyg5qjk19nyyy4zhip3s9b1d0h";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/tools/security/b3sum/add-cargo-lock.patch b/nixpkgs/pkgs/tools/security/b3sum/add-cargo-lock.patch
index 309e0f147e71..ecbb2b0bab9c 100644
--- a/nixpkgs/pkgs/tools/security/b3sum/add-cargo-lock.patch
+++ b/nixpkgs/pkgs/tools/security/b3sum/add-cargo-lock.patch
@@ -1,585 +1,501 @@
---- /dev/null	2020-01-18 15:11:39.204798767 +0100
-+++ b3sum/Cargo.lock	2020-01-24 14:27:29.593356345 +0100
-@@ -0,0 +1,582 @@
+diff --git a/b3sum/Cargo.lock b/b3sum/Cargo.lock
+new file mode 100644
+index 0000000..1ce7abc
+--- /dev/null
++++ b/Cargo.lock
+@@ -0,0 +1,495 @@
 +# This file is automatically @generated by Cargo.
 +# It is not intended for manual editing.
 +[[package]]
++name = "ansi_term"
++version = "0.11.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
++dependencies = [
++ "winapi",
++]
++
++[[package]]
 +name = "anyhow"
-+version = "1.0.26"
++version = "1.0.31"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "85bb70cc08ec97ca5450e6eba421deeea5f172c0fc61f78b5357b2a8e8be195f"
 +
 +[[package]]
 +name = "arrayref"
-+version = "0.3.5"
++version = "0.3.6"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
 +
 +[[package]]
 +name = "arrayvec"
 +version = "0.5.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
 +
 +[[package]]
-+name = "assert_cmd"
-+version = "0.12.0"
++name = "atty"
++version = "0.2.14"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
 +dependencies = [
-+ "doc-comment 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "escargot 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "predicates 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "predicates-core 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "predicates-tree 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hermit-abi",
++ "libc",
++ "winapi",
 +]
 +
 +[[package]]
 +name = "autocfg"
-+version = "0.1.7"
++version = "1.0.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d"
 +
 +[[package]]
 +name = "b3sum"
-+version = "0.1.3"
++version = "0.3.4"
 +dependencies = [
-+ "anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "assert_cmd 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "blake3 0.1.3",
-+ "clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "duct 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "hex 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "anyhow",
++ "blake3",
++ "clap",
++ "duct",
++ "hex",
++ "memmap",
++ "rayon",
++ "tempfile",
++ "wild",
 +]
 +
 +[[package]]
 +name = "bitflags"
 +version = "1.2.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
 +
 +[[package]]
 +name = "blake3"
-+version = "0.1.3"
-+dependencies = [
-+ "arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rayon 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "c2-chacha"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
++version = "0.3.4"
 +dependencies = [
-+ "ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)",
++ "arrayref",
++ "arrayvec",
++ "cc",
++ "cfg-if",
++ "constant_time_eq",
++ "crypto-mac",
++ "digest",
++ "rayon",
 +]
 +
 +[[package]]
 +name = "cc"
-+version = "1.0.50"
++version = "1.0.57"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0fde55d2a2bfaa4c9668bbc63f531fbdeee3ffe188f4662511ce2c22b3eedebe"
 +
 +[[package]]
 +name = "cfg-if"
 +version = "0.1.10"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
 +
 +[[package]]
 +name = "clap"
-+version = "2.33.0"
++version = "2.33.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bdfa80d47f954d53a35a64987ca1422f495b8d6483c0fe9f7117b36c2a792129"
 +dependencies = [
-+ "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ansi_term",
++ "atty",
++ "bitflags",
++ "strsim",
++ "textwrap",
++ "unicode-width",
++ "vec_map",
 +]
 +
 +[[package]]
 +name = "constant_time_eq"
 +version = "0.1.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
 +
 +[[package]]
 +name = "crossbeam-deque"
-+version = "0.7.2"
++version = "0.7.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
 +dependencies = [
-+ "crossbeam-epoch 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-epoch",
++ "crossbeam-utils",
++ "maybe-uninit",
 +]
 +
 +[[package]]
 +name = "crossbeam-epoch"
-+version = "0.8.0"
++version = "0.8.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
 +dependencies = [
-+ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg",
++ "cfg-if",
++ "crossbeam-utils",
++ "lazy_static",
++ "maybe-uninit",
++ "memoffset",
++ "scopeguard",
 +]
 +
 +[[package]]
 +name = "crossbeam-queue"
-+version = "0.2.1"
++version = "0.2.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
 +dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
++ "crossbeam-utils",
++ "maybe-uninit",
 +]
 +
 +[[package]]
 +name = "crossbeam-utils"
-+version = "0.7.0"
++version = "0.7.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
 +dependencies = [
-+ "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg",
++ "cfg-if",
++ "lazy_static",
 +]
 +
 +[[package]]
-+name = "difference"
-+version = "2.0.0"
++name = "crypto-mac"
++version = "0.7.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5"
++dependencies = [
++ "generic-array",
++ "subtle",
++]
 +
 +[[package]]
-+name = "doc-comment"
-+version = "0.3.1"
++name = "digest"
++version = "0.8.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5"
++dependencies = [
++ "generic-array",
++]
 +
 +[[package]]
 +name = "duct"
-+version = "0.13.3"
++version = "0.13.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f90a9c3a25aafbd538c7d40a53f83c4487ee8216c12d1c8ef2c01eb2f6ea1553"
 +dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "once_cell 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "os_pipe 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "shared_child 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "once_cell",
++ "os_pipe",
++ "shared_child",
 +]
 +
 +[[package]]
 +name = "either"
 +version = "1.5.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
 +
 +[[package]]
-+name = "escargot"
-+version = "0.5.0"
++name = "generic-array"
++version = "0.12.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec"
 +dependencies = [
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde_json 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)",
++ "typenum",
 +]
 +
 +[[package]]
 +name = "getrandom"
 +version = "0.1.14"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
 +dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
++ "libc",
++ "wasi",
 +]
 +
 +[[package]]
++name = "glob"
++version = "0.3.0"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
++
++[[package]]
 +name = "hermit-abi"
-+version = "0.1.6"
++version = "0.1.15"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
 +dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
 +]
 +
 +[[package]]
 +name = "hex"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "itoa"
-+version = "0.4.4"
++version = "0.4.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35"
 +
 +[[package]]
 +name = "lazy_static"
 +version = "1.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 +
 +[[package]]
 +name = "libc"
-+version = "0.2.66"
++version = "0.2.71"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9457b06509d27052635f90d6466700c65095fdf75409b3fbdd903e988b886f49"
 +
 +[[package]]
-+name = "log"
-+version = "0.4.8"
++name = "maybe-uninit"
++version = "2.0.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
++checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
 +
 +[[package]]
 +name = "memmap"
 +version = "0.7.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
 +dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "winapi",
 +]
 +
 +[[package]]
 +name = "memoffset"
-+version = "0.5.3"
++version = "0.5.5"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f"
 +dependencies = [
-+ "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg",
 +]
 +
 +[[package]]
 +name = "num_cpus"
-+version = "1.12.0"
++version = "1.13.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
 +dependencies = [
-+ "hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
++ "hermit-abi",
++ "libc",
 +]
 +
 +[[package]]
 +name = "once_cell"
-+version = "1.3.1"
++version = "1.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
 +
 +[[package]]
 +name = "os_pipe"
-+version = "0.9.1"
++version = "0.9.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "fb233f06c2307e1f5ce2ecad9f8121cffbbee2c95428f44ea85222e460d0d213"
 +dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "winapi",
 +]
 +
 +[[package]]
 +name = "ppv-lite86"
-+version = "0.2.6"
++version = "0.2.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "predicates"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "predicates-core 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "predicates-core"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "predicates-tree"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "predicates-core 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "treeline 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "proc-macro2"
-+version = "1.0.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "quote"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
++checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
 +
 +[[package]]
 +name = "rand"
 +version = "0.7.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
 +dependencies = [
-+ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getrandom",
++ "libc",
++ "rand_chacha",
++ "rand_core",
++ "rand_hc",
 +]
 +
 +[[package]]
 +name = "rand_chacha"
-+version = "0.2.1"
++version = "0.2.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
 +dependencies = [
-+ "c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "ppv-lite86",
++ "rand_core",
 +]
 +
 +[[package]]
 +name = "rand_core"
 +version = "0.5.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
 +dependencies = [
-+ "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)",
++ "getrandom",
 +]
 +
 +[[package]]
 +name = "rand_hc"
 +version = "0.2.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
 +dependencies = [
-+ "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
++ "rand_core",
 +]
 +
 +[[package]]
 +name = "rayon"
-+version = "1.3.0"
++version = "1.3.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080"
 +dependencies = [
-+ "crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rayon-core 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "autocfg",
++ "crossbeam-deque",
++ "either",
++ "rayon-core",
 +]
 +
 +[[package]]
 +name = "rayon-core"
-+version = "1.7.0"
++version = "1.7.1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280"
 +dependencies = [
-+ "crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-queue 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "crossbeam-deque",
++ "crossbeam-queue",
++ "crossbeam-utils",
++ "lazy_static",
++ "num_cpus",
 +]
 +
 +[[package]]
 +name = "redox_syscall"
 +version = "0.1.56"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
 +
 +[[package]]
 +name = "remove_dir_all"
-+version = "0.5.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "rustc_version"
-+version = "0.2.3"
++version = "0.5.3"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
 +dependencies = [
-+ "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi",
 +]
 +
 +[[package]]
-+name = "ryu"
-+version = "1.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
 +name = "scopeguard"
-+version = "1.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[[package]]
-+name = "semver"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "semver-parser"
-+version = "0.7.0"
++version = "1.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
 +
 +[[package]]
-+name = "serde"
-+version = "1.0.104"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "serde_derive"
-+version = "1.0.104"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
-+
-+[[package]]
-+name = "serde_json"
-+version = "1.0.45"
++name = "shared_child"
++version = "0.3.4"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "8cebcf3a403e4deafaf34dc882c4a1b6a648b43e5670aa2e4bb985914eaeb2d2"
 +dependencies = [
-+ "itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)",
++ "libc",
++ "winapi",
 +]
 +
 +[[package]]
-+name = "shared_child"
-+version = "0.3.4"
++name = "strsim"
++version = "0.8.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
++checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
 +
 +[[package]]
-+name = "syn"
-+version = "1.0.14"
++name = "subtle"
++version = "1.0.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+dependencies = [
-+ "proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+]
++checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee"
 +
 +[[package]]
 +name = "tempfile"
 +version = "3.1.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
 +dependencies = [
-+ "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)",
++ "cfg-if",
++ "libc",
++ "rand",
++ "redox_syscall",
++ "remove_dir_all",
++ "winapi",
 +]
 +
 +[[package]]
 +name = "textwrap"
 +version = "0.11.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
 +dependencies = [
-+ "unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)",
++ "unicode-width",
 +]
 +
 +[[package]]
-+name = "treeline"
-+version = "0.1.0"
++name = "typenum"
++version = "1.12.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
 +
 +[[package]]
 +name = "unicode-width"
-+version = "0.1.7"
++version = "0.1.8"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
 +
 +[[package]]
-+name = "unicode-xid"
-+version = "0.2.0"
++name = "vec_map"
++version = "0.8.2"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
 +
 +[[package]]
 +name = "wasi"
 +version = "0.9.0+wasi-snapshot-preview1"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
++
++[[package]]
++name = "wild"
++version = "2.0.4"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "035793abb854745033f01a07647a79831eba29ec0be377205f2a25b0aa830020"
++dependencies = [
++ "glob",
++]
 +
 +[[package]]
 +name = "winapi"
-+version = "0.3.8"
++version = "0.3.9"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
 +dependencies = [
-+ "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
-+ "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "winapi-i686-pc-windows-gnu",
++ "winapi-x86_64-pc-windows-gnu",
 +]
 +
 +[[package]]
 +name = "winapi-i686-pc-windows-gnu"
 +version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
 +
 +[[package]]
 +name = "winapi-x86_64-pc-windows-gnu"
 +version = "0.4.0"
 +source = "registry+https://github.com/rust-lang/crates.io-index"
-+
-+[metadata]
-+"checksum anyhow 1.0.26 (registry+https://github.com/rust-lang/crates.io-index)" = "7825f6833612eb2414095684fcf6c635becf3ce97fe48cf6421321e93bfbd53c"
-+"checksum arrayref 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "0d382e583f07208808f6b1249e60848879ba3543f57c32277bf52d69c2f0f0ee"
-+"checksum arrayvec 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
-+"checksum assert_cmd 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6283bac8dd7226470d491bc4737816fea4ca1fba7a2847f2e9097fd6bfb4624c"
-+"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2"
-+"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-+"checksum c2-chacha 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "214238caa1bf3a496ec3392968969cab8549f96ff30652c9e56885329315f6bb"
-+"checksum cc 1.0.50 (registry+https://github.com/rust-lang/crates.io-index)" = "95e28fa049fda1c330bcf9d723be7663a899c4679724b34c81e9f5a326aab8cd"
-+"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-+"checksum clap 2.33.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5067f5bb2d80ef5d68b4c87db81601f0b75bca627bc2ef76b141d7b846a3c6d9"
-+"checksum constant_time_eq 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
-+"checksum crossbeam-deque 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3aa945d63861bfe624b55d153a39684da1e8c0bc8fba932f7ee3a3c16cea3ca"
-+"checksum crossbeam-epoch 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5064ebdbf05ce3cb95e45c8b086f72263f4166b29b97f6baff7ef7fe047b55ac"
-+"checksum crossbeam-queue 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c695eeca1e7173472a32221542ae469b3e9aac3a4fc81f7696bcad82029493db"
-+"checksum crossbeam-utils 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ce446db02cdc3165b94ae73111e570793400d0794e46125cc4056c81cbb039f4"
-+"checksum difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
-+"checksum doc-comment 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "923dea538cea0aa3025e8685b20d6ee21ef99c4f77e954a30febbaac5ec73a97"
-+"checksum duct 0.13.3 (registry+https://github.com/rust-lang/crates.io-index)" = "1607fa68d55be208e83bcfbcfffbc1ec65c9fbcf9eb1a5d548dc3ac0100743b0"
-+"checksum either 1.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
-+"checksum escargot 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "74cf96bec282dcdb07099f7e31d9fed323bca9435a09aba7b6d99b7617bca96d"
-+"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
-+"checksum hermit-abi 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eff2656d88f158ce120947499e971d743c05dbcbed62e5bd2f38f1698bbc3772"
-+"checksum hex 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "023b39be39e3a2da62a94feb433e91e8bcd37676fbc8bea371daf52b7a769a3e"
-+"checksum itoa 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "501266b7edd0174f8530248f87f99c88fbe60ca4ef3dd486835b8d8d53136f7f"
-+"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-+"checksum libc 0.2.66 (registry+https://github.com/rust-lang/crates.io-index)" = "d515b1f41455adea1313a4a2ac8a8a477634fbae63cc6100e3aebb207ce61558"
-+"checksum log 0.4.8 (registry+https://github.com/rust-lang/crates.io-index)" = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7"
-+"checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
-+"checksum memoffset 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "75189eb85871ea5c2e2c15abbdd541185f63b408415e5051f5cac122d8c774b9"
-+"checksum num_cpus 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "46203554f085ff89c235cd12f7075f3233af9b11ed7c9e16dfe2560d03313ce6"
-+"checksum once_cell 1.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b1c601810575c99596d4afc46f78a678c80105117c379eb3650cf99b8a21ce5b"
-+"checksum os_pipe 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "db4d06355a7090ce852965b2d08e11426c315438462638c6d721448d0b47aa22"
-+"checksum ppv-lite86 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "74490b50b9fbe561ac330df47c08f3f33073d2d00c150f719147d7c54522fa1b"
-+"checksum predicates 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a9bfe52247e5cc9b2f943682a85a5549fb9662245caf094504e69a2f03fe64d4"
-+"checksum predicates-core 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "06075c3a3e92559ff8929e7a280684489ea27fe44805174c3ebd9328dcb37178"
-+"checksum predicates-tree 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8e63c4859013b38a76eca2414c64911fba30def9e3202ac461a2d22831220124"
-+"checksum proc-macro2 1.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "3acb317c6ff86a4e579dfa00fc5e6cca91ecbb4e7eb2df0468805b674eb88548"
-+"checksum quote 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "053a8c8bcc71fcce321828dc897a98ab9760bef03a4fc36693c231e5b3216cfe"
-+"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
-+"checksum rand_chacha 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "03a2a90da8c7523f554344f921aa97283eadf6ac484a6d2a7d0212fa7f8d6853"
-+"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
-+"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
-+"checksum rayon 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "db6ce3297f9c85e16621bb8cca38a06779ffc31bb8184e1be4bed2be4678a098"
-+"checksum rayon-core 1.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08a89b46efaf957e52b18062fb2f4660f8b8a4dde1807ca002690868ef2c85a9"
-+"checksum redox_syscall 0.1.56 (registry+https://github.com/rust-lang/crates.io-index)" = "2439c63f3f6139d1b57529d16bc3b8bb855230c8efcc5d3a896c8bea7c3b1e84"
-+"checksum remove_dir_all 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "4a83fa3702a688b9359eccba92d153ac33fd2e8462f9e0e3fdf155239ea7792e"
-+"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a"
-+"checksum ryu 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "bfa8506c1de11c9c4e4c38863ccbe02a305c8188e85a05a784c9e11e1c3910c8"
-+"checksum scopeguard 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b42e15e59b18a828bbf5c58ea01debb36b9b096346de35d941dcb89009f24a0d"
-+"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403"
-+"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3"
-+"checksum serde 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "414115f25f818d7dfccec8ee535d76949ae78584fc4f79a6f45a904bf8ab4449"
-+"checksum serde_derive 1.0.104 (registry+https://github.com/rust-lang/crates.io-index)" = "128f9e303a5a29922045a830221b8f78ec74a5f544944f3d5984f8ec3895ef64"
-+"checksum serde_json 1.0.45 (registry+https://github.com/rust-lang/crates.io-index)" = "eab8f15f15d6c41a154c1b128a22f2dfabe350ef53c40953d84e36155c91192b"
-+"checksum shared_child 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8cebcf3a403e4deafaf34dc882c4a1b6a648b43e5670aa2e4bb985914eaeb2d2"
-+"checksum syn 1.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "af6f3550d8dff9ef7dc34d384ac6f107e5d31c8f57d9f28e0081503f547ac8f5"
-+"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
-+"checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
-+"checksum treeline 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a7f741b240f1a48843f9b8e0444fb55fb2a4ff67293b50a9179dfd5ea67f8d41"
-+"checksum unicode-width 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "caaa9d531767d1ff2150b9332433f32a24622147e5ebb1f26409d5da67afd479"
-+"checksum unicode-xid 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "826e7639553986605ec5979c7dd957c7895e93eabed50ab2ffa7f6128a75097c"
-+"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
-+"checksum winapi 0.3.8 (registry+https://github.com/rust-lang/crates.io-index)" = "8093091eeb260906a183e6ae1abdba2ef5ef2257a21801128899c3fc699229c6"
-+"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-+"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
diff --git a/nixpkgs/pkgs/tools/security/b3sum/default.nix b/nixpkgs/pkgs/tools/security/b3sum/default.nix
index 6f783d07ced8..dd6a538d11d0 100644
--- a/nixpkgs/pkgs/tools/security/b3sum/default.nix
+++ b/nixpkgs/pkgs/tools/security/b3sum/default.nix
@@ -2,18 +2,18 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "b3sum";
-  version = "0.1.3";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "BLAKE3-team";
     repo = "BLAKE3";
     rev = version;
-    sha256 = "1aigwwv576ybb3x3fppq46kbvd3k4fc4w1hh2hkzyyic6fibwbpy";
+    sha256 = "02yyv91wvy5w7i05z6f3kzxm5x34a4xgkgmcqxnb0ivsxnnld73h";
   };
 
   sourceRoot = "source/b3sum";
 
-  cargoSha256 = "1rqhz2r60603mylazn37mkm783qb7qhjcg8cqss0iy1g752f3f2i";
+  cargoSha256 = "0ycn5788dc925wx28sgfs121w4x7yggm4mnmwij829ka8859bymk";
 
   cargoPatches = [ ./add-cargo-lock.patch ];
 
diff --git a/nixpkgs/pkgs/tools/security/bettercap/default.nix b/nixpkgs/pkgs/tools/security/bettercap/default.nix
index d3cc3c7cadbb..17cb0308a168 100644
--- a/nixpkgs/pkgs/tools/security/bettercap/default.nix
+++ b/nixpkgs/pkgs/tools/security/bettercap/default.nix
@@ -1,4 +1,4 @@
-{ lib
+{ stdenv
 , buildGoModule
 , fetchFromGitHub
 , pkg-config
@@ -10,21 +10,24 @@
 
 buildGoModule rec {
   pname = "bettercap";
-  version = "2.27.1";
+  version = "2.28";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "0jb78c3s6p210mj28qg4aacd8ly6d6k5h9c48y88vmcyllzjvbhl";
+    sha256 = "0aihinn3i3jj350l2rqph7nv3wy4nh4f8syidf77zybjcp9nmcys";
   };
 
-  vendorSha256 = "1j272w0zdndcz4fmh9fzbk2q8wmyfi70vn0p6d8cg0r0l231sbyx";
+  vendorSha256 = "0yfs1f18d8frbkrshsajzzbj4wh2azd89g2h35wm6wqknvlipwr0";
+
+  doCheck = false;
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libpcap libnfnetlink libnetfilter_queue libusb1 ];
+  buildInputs = [ libpcap libusb1 ]
+    ++ stdenv.lib.optionals stdenv.isLinux [ libnfnetlink libnetfilter_queue ];
 
-  meta = with lib; {
+  meta = with stdenv.lib; {
     description = "A man in the middle tool";
     longDescription = ''
       BetterCAP is a powerful, flexible and portable tool created to perform various types of MITM attacks against a network, manipulate HTTP, HTTPS and TCP traffic in realtime, sniff for credentials and much more.
@@ -32,6 +35,5 @@ buildGoModule rec {
     homepage = "https://www.bettercap.org/";
     license = with licenses; gpl3;
     maintainers = with maintainers; [ y0no ];
-    platforms = platforms.all;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/security/bitwarden/default.nix b/nixpkgs/pkgs/tools/security/bitwarden/default.nix
index 2da8840eee1c..d10a938ea023 100644
--- a/nixpkgs/pkgs/tools/security/bitwarden/default.nix
+++ b/nixpkgs/pkgs/tools/security/bitwarden/default.nix
@@ -6,6 +6,7 @@
 , makeDesktopItem
 , makeWrapper
 , stdenv
+, lib
 , udev
 , wrapGAppsHook
 }:
@@ -16,11 +17,11 @@ let
   pname = "bitwarden";
 
   version = {
-    x86_64-linux = "1.18.0";
+    x86_64-linux = "1.22.1";
   }.${system} or "";
 
   sha256 = {
-    x86_64-linux = "04rry33jccf65smzpjp1dhcirffdb7y36yn8whqaikhsavsawx3j";
+    x86_64-linux = "1pbcrkafyjjcsd27s99g511llkz05d9qkny7g15wp6piyyv89k3n";
   }.${system} or "";
 
   meta = with stdenv.lib; {
@@ -72,7 +73,7 @@ let
     '';
 
     runtimeDependencies = [
-      udev.lib
+      (lib.getLib udev)
     ];
 
     postFixup = ''
diff --git a/nixpkgs/pkgs/tools/security/bitwarden_rs/default.nix b/nixpkgs/pkgs/tools/security/bitwarden_rs/default.nix
index f2d0eb9b7d3a..c2bb83241861 100644
--- a/nixpkgs/pkgs/tools/security/bitwarden_rs/default.nix
+++ b/nixpkgs/pkgs/tools/security/bitwarden_rs/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, rustPlatform, fetchFromGitHub
+{ stdenv, rustPlatform, fetchFromGitHub, nixosTests
 , pkgconfig, openssl
 , Security, CoreServices
 , dbBackend ? "sqlite", libmysqlclient, postgresql }:
@@ -8,13 +8,13 @@ let
 
 in rustPlatform.buildRustPackage rec {
   pname = "bitwarden_rs";
-  version = "1.15.1";
+  version = "1.16.3";
 
   src = fetchFromGitHub {
     owner = "dani-garcia";
     repo = pname;
     rev = version;
-    sha256 = "1982bfprixdp8mx2hwidfvsi0zy7wmzf40m9m3cl5r7i2qydznwb";
+    sha256 = "1scy8abzy6j1jsms84cg2nqkn1zsxr5mjikp2xh0yl0ckkk13ffn";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -25,7 +25,7 @@ in rustPlatform.buildRustPackage rec {
 
   RUSTC_BOOTSTRAP = 1;
 
-  cargoSha256 = "08cygzgv82i10cj8lkjdah0arrdmlfcbdjwc8piwa629rr0584zf";
+  cargoSha256 = "112mvgq581cms0war5dbni7f7yryjr5agryzn5qx835qkznzar8s";
   cargoBuildFlags = [ featuresFlag ];
 
   checkPhase = ''
@@ -35,11 +35,12 @@ in rustPlatform.buildRustPackage rec {
     runHook postCheck
   '';
 
+  passthru.tests = nixosTests.bitwarden;
+
   meta = with stdenv.lib; {
     description = "Unofficial Bitwarden compatible server written in Rust";
     homepage = "https://github.com/dani-garcia/bitwarden_rs";
     license = licenses.gpl3;
     maintainers = with maintainers; [ msteen ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/bitwarden_rs/vault.nix b/nixpkgs/pkgs/tools/security/bitwarden_rs/vault.nix
index 256bf458b3bb..8efa1e4bfd3b 100644
--- a/nixpkgs/pkgs/tools/security/bitwarden_rs/vault.nix
+++ b/nixpkgs/pkgs/tools/security/bitwarden_rs/vault.nix
@@ -1,12 +1,12 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "bitwarden_rs-vault";
-  version = "2.14.0";
+  version = "2.16.0b";
 
   src = fetchurl {
     url = "https://github.com/dani-garcia/bw_web_builds/releases/download/v${version}/bw_web_v${version}.tar.gz";
-    sha256 = "16620md9lsxw6s0qzv5vj9kfkgxnlaxfrax6s2h3h39skza80x2c";
+    sha256 = "1p10a5rp2ymx675sbigwrkkfjvpk1lz3d43l2p2i1vbw153py3p1";
   };
 
   buildCommand = ''
@@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
     mv web-vault vault
   '';
 
+  passthru.tests = nixosTests.bitwarden;
+
   meta = with stdenv.lib; {
     description = "Integrates the web vault into bitwarden_rs";
     homepage = "https://github.com/dani-garcia/bw_web_builds";
diff --git a/nixpkgs/pkgs/tools/security/browserpass/default.nix b/nixpkgs/pkgs/tools/security/browserpass/default.nix
index 2dd03bc465d9..9aec14e0a418 100644
--- a/nixpkgs/pkgs/tools/security/browserpass/default.nix
+++ b/nixpkgs/pkgs/tools/security/browserpass/default.nix
@@ -14,6 +14,8 @@ buildGoModule rec {
 
   vendorSha256 = "1wcbn0ip596f2dp68y6jmxgv20l0dgrcxg5cwclkawigj05416zj";
 
+  doCheck = false;
+
   postPatch = ''
     # Because this Makefile will be installed to be used by the user, patch
     # variables to be valid by default
@@ -48,7 +50,6 @@ buildGoModule rec {
     description = "Browserpass native client app";
     homepage = "https://github.com/browserpass/browserpass-native";
     license = licenses.isc;
-    platforms = platforms.all;
     maintainers = with maintainers; [ rvolosatovs infinisil ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/security/ccid/default.nix b/nixpkgs/pkgs/tools/security/ccid/default.nix
index e74e1b61438a..b7f408e748fd 100644
--- a/nixpkgs/pkgs/tools/security/ccid/default.nix
+++ b/nixpkgs/pkgs/tools/security/ccid/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ccid";
-  version = "1.4.32";
+  version = "1.4.33";
 
   src = fetchurl {
     url = "https://ccid.apdu.fr/files/${pname}-${version}.tar.bz2";
-    sha256 = "0f8nzk7379ip4x2ii5vn6h67jyx733pq0ywnnsj2llbxi2vllpsl";
+    sha256 = "0974h2v9wq0j0ajw3c7yckaw8wqcppb2npfhfhmv9phijy9xlmjj";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/security/certstrap/default.nix b/nixpkgs/pkgs/tools/security/certstrap/default.nix
index 4d2e2fe7e950..99ba5c9e29b7 100644
--- a/nixpkgs/pkgs/tools/security/certstrap/default.nix
+++ b/nixpkgs/pkgs/tools/security/certstrap/default.nix
@@ -16,7 +16,6 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     inherit (src.meta) homepage;
     description = "Tools to bootstrap CAs, certificate requests, and signed certificates";
-    platforms = platforms.all;
     license = licenses.asl20;
     maintainers = with maintainers; [ volth ];
   };
diff --git a/nixpkgs/pkgs/tools/security/cfssl/default.nix b/nixpkgs/pkgs/tools/security/cfssl/default.nix
index 6d4238de7001..1aef7b5bd567 100644
--- a/nixpkgs/pkgs/tools/security/cfssl/default.nix
+++ b/nixpkgs/pkgs/tools/security/cfssl/default.nix
@@ -1,34 +1,49 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, fetchpatch }:
+{ stdenv, buildGoModule, fetchFromGitHub, go-rice }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "cfssl";
-  version = "1.3.2";
-
-  goPackagePath = "github.com/cloudflare/cfssl";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "cloudflare";
     repo = "cfssl";
-    rev = version;
-    sha256 = "0j2gz2vl2pf7ir7sc7jrwmjnr67hk4qhxw09cjx132jbk337jc9x";
+    rev = "v${version}";
+    sha256 = "07qacg95mbh94fv64y577zyr4vk986syf8h5l8lbcmpr0zcfk0pd";
   };
 
-  # The following patch ensures that the auth-key decoder doesn't break,
-  # if the auth-key file contains leading or trailing whitespaces.
-  # https://github.com/cloudflare/cfssl/pull/923 is merged
-  # remove patch when it becomes part of a release.
-  patches = [
-    (fetchpatch {
-      url    = "https://github.com/cloudflare/cfssl/commit/7e13f60773c96644db9dd8d342d42fe3a4d26f36.patch";
-      sha256 = "1z2v2i8yj7qpj8zj5f2q739nhrr9s59jwzfzk52wfgssl4vv5mn5";
-    })
+  subPackages = [
+    "cmd/cfssl"
+    "cmd/cfssljson"
+    "cmd/cfssl-bundle"
+    "cmd/cfssl-certinfo"
+    "cmd/cfssl-newkey"
+    "cmd/cfssl-scan"
+    "cmd/multirootca"
+    "cmd/mkbundle"
   ];
 
+  vendorSha256 = null;
+
+  doCheck = false;
+
+  nativeBuildInputs = [ go-rice ];
+
+  preBuild = ''
+    pushd cli/serve
+    rice embed-go
+    popd
+  '';
+
+  buildFlagsArray = ''
+    -ldflags=
+      -s -w
+      -X github.com/cloudflare/cfssl/cli/version.version=v${version}
+  '';
+
   meta = with stdenv.lib; {
     homepage = "https://cfssl.org/";
     description = "Cloudflare's PKI and TLS toolkit";
     license = licenses.bsd2;
     maintainers = with maintainers; [ mbrgm ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/clamav/default.nix b/nixpkgs/pkgs/tools/security/clamav/default.nix
index 9b58aa97dd5b..fb523c5299ce 100644
--- a/nixpkgs/pkgs/tools/security/clamav/default.nix
+++ b/nixpkgs/pkgs/tools/security/clamav/default.nix
@@ -1,15 +1,15 @@
 { stdenv, fetchurl, pkgconfig
 , zlib, bzip2, libiconv, libxml2, openssl, ncurses, curl, libmilter, pcre2
-, libmspack, systemd
+, libmspack, systemd, Foundation
 }:
 
 stdenv.mkDerivation rec {
   pname = "clamav";
-  version = "0.102.3";
+  version = "0.102.4";
 
   src = fetchurl {
     url = "https://www.clamav.net/downloads/production/${pname}-${version}.tar.gz";
-    sha256 = "14q6vi178ih60yz4ja33b6181va1dcj8fyscnmxfx2crav250c7d";
+    sha256 = "06rrzyrhnr0rswryijpbbzywr6387rv8qjq8sb8cl3h2d1m45ggf";
   };
 
   # don't install sample config files into the absolute sysconfdir folder
@@ -20,13 +20,12 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [
     zlib bzip2 libxml2 openssl ncurses curl libiconv libmilter pcre2 libmspack
-    systemd
-  ];
+  ] ++ stdenv.lib.optional stdenv.isLinux systemd
+    ++ stdenv.lib.optional stdenv.isDarwin Foundation;
 
   configureFlags = [
     "--libdir=$(out)/lib"
     "--sysconfdir=/etc/clamav"
-    "--with-systemdsystemunitdir=$(out)/lib/systemd"
     "--disable-llvm" # enabling breaks the build at the moment
     "--with-zlib=${zlib.dev}"
     "--with-xml=${libxml2.dev}"
@@ -34,7 +33,8 @@ stdenv.mkDerivation rec {
     "--with-libcurl=${curl.dev}"
     "--with-system-libmspack"
     "--enable-milter"
-  ];
+  ] ++ stdenv.lib.optional stdenv.isLinux
+    "--with-systemdsystemunitdir=$(out)/lib/systemd";
 
   postInstall = ''
     mkdir $out/etc
@@ -46,6 +46,6 @@ stdenv.mkDerivation rec {
     description = "Antivirus engine designed for detecting Trojans, viruses, malware and other malicious threats";
     license = licenses.gpl2;
     maintainers = with maintainers; [ phreedom robberer qknight fpletz globin ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/clevis/default.nix b/nixpkgs/pkgs/tools/security/clevis/default.nix
index daeb5e0d39c1..878e4fc9febf 100644
--- a/nixpkgs/pkgs/tools/security/clevis/default.nix
+++ b/nixpkgs/pkgs/tools/security/clevis/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "clevis";
-  version = "13";
+  version = "14";
 
   src = fetchFromGitHub {
     owner = "latchset";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1p522jjksxmdwjjxa32z2ij1g81ygpkmcx998d07g8pb6rfnknjy";
+    sha256 = "1j8id67jk3ikim2xh7vjg7j2ayrpm1a4n8v3n8r8pnr4rhqy76fd";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig asciidoc ];
diff --git a/nixpkgs/pkgs/tools/security/creddump/default.nix b/nixpkgs/pkgs/tools/security/creddump/default.nix
new file mode 100644
index 000000000000..d37c58a51591
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/creddump/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitLab, python2, python2Packages }:
+
+python2Packages.buildPythonApplication rec {
+  pname = "creddump";
+  version = "0.3";
+
+  src = fetchFromGitLab {
+    owner = "kalilinux";
+    repo = "packages/creddump";
+    # url-encoding workaround: https://github.com/NixOS/nixpkgs/issues/65796#issuecomment-517829019
+    rev = "debian%2F${version}-1kali2"; # %2F = urlquote("/")
+    sha256 = "0r3rs2hggsvv619l3fh3c0jli6d3ryyj30ni3hz0nz670z5smzcf";
+  };
+
+  # No setup.py is available
+  dontBuild = true;
+  doCheck = false;
+  propagatedBuildInputs = [ python2Packages.pycrypto ];
+
+  installPhase = ''
+    mkdir -p ${placeholder "out"}/bin
+    cp -r framework ${placeholder "out"}/bin/framework
+    cp pwdump.py ${placeholder "out"}/bin/pwdump
+    cp cachedump.py ${placeholder "out"}/bin/cachedump
+    cp lsadump.py ${placeholder "out"}/bin/lsadump
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Python tool to extract various credentials and secrets from Windows registry hives";
+    homepage = "https://gitlab.com/kalilinux/packages/creddump";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = [ maintainers.fishi0x01 ];
+  };
+}
+
diff --git a/nixpkgs/pkgs/tools/security/doona/default.nix b/nixpkgs/pkgs/tools/security/doona/default.nix
new file mode 100644
index 000000000000..5e1233f308c3
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/doona/default.nix
@@ -0,0 +1,36 @@
+{ fetchFromGitHub
+, stdenv
+, perl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "doona";
+  version = "unstable-2019-03-08";
+
+  src = fetchFromGitHub {
+    owner = "wireghoul";
+    repo = pname;
+    rev = "master";
+    sha256 = "0x9irwrw5x2ia6ch6gshadrlqrgdi1ivkadmr7j4m75k04a7nvz1";
+  };
+
+  buildInputs = [ perl ];
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp -r ${src}/bedmod $out/bin/bedmod
+    cp ${src}/doona.pl $out/bin/doona
+    chmod +x $out/bin/doona
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://github.com/wireghoul/doona";
+    description = "A fork of the Bruteforce Exploit Detector Tool (BED)";
+    longDescription = ''
+      A fork of the Bruteforce Exploit Detector Tool (BED).
+      BED is a program which is designed to check daemons for potential buffer overflows, format string bugs etc.
+    '';
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ pamplemousse ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/doppler/default.nix b/nixpkgs/pkgs/tools/security/doppler/default.nix
new file mode 100644
index 000000000000..847d5d0cafb3
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/doppler/default.nix
@@ -0,0 +1,28 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "doppler";
+  version = "3.10.3";
+
+  src = fetchFromGitHub {
+    owner = "dopplerhq";
+    repo = "cli";
+    rev = version;
+    sha256 = "15wmg67wwwgrs8q45r1z98k9v7mf2bfgsa40gcf8dr18ilnfpbn4";
+  };
+
+  vendorSha256 = "0wqbwk72k4r30a3vnf0gnx3k97y8xgnr2iavk5bc8f8vkjv0bsv6";
+
+  buildFlagsArray = "-ldflags=-X github.com/DopplerHQ/cli/pkg/version.ProgramVersion=v${version}";
+
+  postInstall = ''
+    mv $out/bin/cli $out/bin/doppler
+  '';
+
+  meta = with lib; {
+    homepage = "https://doppler.com";
+    description = "The official CLI for interacting with your Doppler Enclave secrets and configuation";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ lucperkins ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/eid-mw/default.nix b/nixpkgs/pkgs/tools/security/eid-mw/default.nix
index cad5bb244f99..1fdd5b9a7228 100644
--- a/nixpkgs/pkgs/tools/security/eid-mw/default.nix
+++ b/nixpkgs/pkgs/tools/security/eid-mw/default.nix
@@ -8,11 +8,11 @@
 
 stdenv.mkDerivation rec {
   pname = "eid-mw";
-  version = "4.4.16";
+  version = "4.4.27";
 
   src = fetchFromGitHub {
-    sha256 = "1q82fw63xzrnrgh1wyh457hal6vfdl6swqfq7l6kviywiwlzx7kd"; 
     rev = "v${version}";
+    sha256 = "17lw8iwp7h5cs3db80sysr84ffi333cf2vrhncs9l6hy6glfl2v1";
     repo = "eid-mw";
     owner = "Fedict";
   };
@@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
     ln -s ${openssl.bin}/bin openssl
     ln -s ${openssl.dev}/include openssl
     export SSL_PREFIX=$(realpath openssl)
+    substituteInPlace plugins_tools/eid-viewer/Makefile.in \
+      --replace "c_rehash" "openssl rehash"
     '';
 
   postPatch = ''
@@ -64,13 +66,6 @@ stdenv.mkDerivation rec {
 
       eid-viewer is also installed.
 
-      **TO FIX:** 
-      The procedure below did not work for me, I had to install the .so directly in firefox as instructed at
-      https://eid.belgium.be/en/log-eid#7507
-      and specify
-      /run/current-system/sw/lib/libbeidpkcs11.so
-      as the path to the module.
-
       This package only installs the libraries. To use eIDs in Firefox or
       Chromium, the eID Belgium add-on must be installed.
       This package only installs the libraries. To use eIDs in NSS-compatible
@@ -81,6 +76,11 @@ stdenv.mkDerivation rec {
       Before uninstalling this package, it is a very good idea to run
         ~$ eid-nssdb [--system] remove
       and remove all ~/.pki and/or /etc/pki directories no longer needed.
+
+      The above procedure doesn't seem to work in Firefox. You can override the
+      firefox wrapper to add this derivation to the PKCS#11 modules, like so:
+
+          firefox.override { pkcs11Modules = [ pkgs.eid-mw ]; }
     '';
     platforms = platforms.linux;
     maintainers = with maintainers; [ bfortz ];
diff --git a/nixpkgs/pkgs/tools/security/encryptr/default.nix b/nixpkgs/pkgs/tools/security/encryptr/default.nix
index b4c2bef2cf40..62311a41da37 100644
--- a/nixpkgs/pkgs/tools/security/encryptr/default.nix
+++ b/nixpkgs/pkgs/tools/security/encryptr/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, glib, nss, nspr, gconf, fontconfig, freetype
+{ stdenv, lib, fetchurl, glib, nss, nspr, gconf, fontconfig, freetype
 , pango , cairo, libX11 , libXi, libXcursor, libXext, libXfixes
 , libXrender, libXcomposite , alsaLib, libXdamage, libXtst, libXrandr
 , expat, libcap, systemd , dbus, gtk2 , gdk-pixbuf, libnotify
@@ -36,7 +36,7 @@ in stdenv.mkDerivation rec {
     cp -v {encryptr-bin,icudtl.dat,nw.pak} $out/bin
     mv -v $out/bin/encryptr{-bin,}
     cp -v lib* $out/lib
-    ln -sv ${systemd.lib}/lib/libudev.so.1 $out/lib/libudev.so.0
+    ln -sv ${lib.getLib systemd}/lib/libudev.so.1 $out/lib/libudev.so.0
 
     patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
              --set-rpath $out/lib:${rpath} \
diff --git a/nixpkgs/pkgs/tools/security/fail2ban/default.nix b/nixpkgs/pkgs/tools/security/fail2ban/default.nix
index 6377e829aa65..c27f82d70536 100644
--- a/nixpkgs/pkgs/tools/security/fail2ban/default.nix
+++ b/nixpkgs/pkgs/tools/security/fail2ban/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, python3, gamin }:
+{ stdenv, fetchFromGitHub, python3 }:
 
 let version = "0.11.1"; in
 
diff --git a/nixpkgs/pkgs/tools/security/fierce/default.nix b/nixpkgs/pkgs/tools/security/fierce/default.nix
index 5d12a0008158..13146c3373e7 100644
--- a/nixpkgs/pkgs/tools/security/fierce/default.nix
+++ b/nixpkgs/pkgs/tools/security/fierce/default.nix
@@ -11,8 +11,16 @@ python3.pkgs.buildPythonApplication rec {
     sha256 = "11yaz8ap9swx95j3wpqh0b6jhw6spqgfnsyn1liw9zqi4jwgiax7";
   };
 
+  postPatch = ''
+    substituteInPlace requirements.txt --replace 'dnspython==1.16.0' 'dnspython'
+  '';
+
   propagatedBuildInputs = [ python3.pkgs.dns ];
 
+  # tests require network access
+  doCheck = false;
+  pythonImportsCheck = [ "fierce" ];
+
   meta = with stdenv.lib; {
     homepage = "https://github.com/mschwager/fierce";
     description = "DNS reconnaissance tool for locating non-contiguous IP space";
diff --git a/nixpkgs/pkgs/tools/security/gen-oath-safe/default.nix b/nixpkgs/pkgs/tools/security/gen-oath-safe/default.nix
index 15b8820bfd55..68536a519aa3 100644
--- a/nixpkgs/pkgs/tools/security/gen-oath-safe/default.nix
+++ b/nixpkgs/pkgs/tools/security/gen-oath-safe/default.nix
@@ -1,4 +1,4 @@
-{ coreutils, fetchFromGitHub, libcaca, makeWrapper, python, openssl, qrencode, stdenv, yubikey-manager }:
+{ coreutils, fetchFromGitHub, file, libcaca, makeWrapper, python, openssl, qrencode, stdenv, yubikey-manager }:
 
 stdenv.mkDerivation rec {
   pname = "gen-oath-safe";
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
     let
       path = stdenv.lib.makeBinPath [
         coreutils
+        file
         libcaca.bin
         openssl.bin
         python
diff --git a/nixpkgs/pkgs/tools/security/genpass/default.nix b/nixpkgs/pkgs/tools/security/genpass/default.nix
index ee3eebac991b..39a84112d63d 100644
--- a/nixpkgs/pkgs/tools/security/genpass/default.nix
+++ b/nixpkgs/pkgs/tools/security/genpass/default.nix
@@ -1,6 +1,9 @@
 { stdenv
 , fetchFromGitHub
 , rustPlatform
+, CoreFoundation
+, libiconv
+, Security
 }:
 rustPlatform.buildRustPackage rec {
   pname = "genpass";
@@ -15,11 +18,12 @@ rustPlatform.buildRustPackage rec {
 
   cargoSha256 = "1p6l64s9smhwka8bh3pamqimamxziad859i62nrmxzqc49nq5s7m";
 
+  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ CoreFoundation libiconv Security ];
+
   meta = with stdenv.lib; {
     description = "A simple yet robust commandline random password generator.";
     homepage = "https://github.com/cyplo/genpass";
     license = licenses.agpl3;
-    platforms = platforms.all;
     maintainers = with maintainers; [ cyplo ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/gnupg/20.nix b/nixpkgs/pkgs/tools/security/gnupg/20.nix
deleted file mode 100644
index f5b693fed35a..000000000000
--- a/nixpkgs/pkgs/tools/security/gnupg/20.nix
+++ /dev/null
@@ -1,66 +0,0 @@
-{ fetchurl, stdenv, readline, zlib, libgpgerror, pth, libgcrypt, libassuan
-, libksba, coreutils, libiconv, pcsclite
-
-# Each of the dependencies below are optional.
-# Gnupg can be built without them at the cost of reduced functionality.
-, pinentry ? null, guiSupport ? false
-, openldap ? null, bzip2 ? null, libusb-compat-0_1 ? null, curl ? null
-}:
-
-with stdenv.lib;
-
-assert guiSupport -> pinentry != null;
-
-stdenv.mkDerivation rec {
-  pname = "gnupg";
-  version = "2.0.30";
-
-  src = fetchurl {
-    url = "mirror://gnupg/gnupg/${pname}-${version}.tar.bz2";
-    sha256 = "0wax4cy14hh0h7kg9hj0hjn9424b71z8lrrc5kbsasrn9xd7hag3";
-  };
-
-  buildInputs
-    = [ readline zlib libgpgerror libgcrypt libassuan libksba pth
-        openldap bzip2 libusb-compat-0_1 curl libiconv ];
-
-  patches = [ ./gpgkey2ssh-20.patch ];
-
-  prePatch = ''
-    find tests -type f | xargs sed -e 's@/bin/pwd@${coreutils}&@g' -i
-  '' + stdenv.lib.optionalString stdenv.isLinux ''
-    sed -i 's,"libpcsclite\.so[^"]*","${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so",g' scd/scdaemon.c
-  '' + stdenv.lib.optionalString stdenv.isDarwin ''
-    find . -name pcsc-wrapper.c | xargs sed -i 's/typedef unsinged int pcsc_dword_t/typedef unsigned int pcsc_dword_t/'
-  '' + ''
-    patch gl/stdint_.h < ${./clang.patch}
-  '';
-
-  pinentryBinaryPath = pinentry.binaryPath or "bin/pinentry";
-  configureFlags = optional guiSupport "--with-pinentry-pgm=${pinentry}/${pinentryBinaryPath}";
-
-  postConfigure = "substituteAllInPlace tools/gpgkey2ssh.c";
-
-  checkPhase="GNUPGHOME=`pwd` ./agent/gpg-agent --daemon make check";
-
-  doCheck = true;
-
-  meta = with stdenv.lib; {
-    homepage = "https://gnupg.org";
-    description = "Stable (2.0) release of the GNU Privacy Guard, a GPL OpenPGP implementation";
-    license = licenses.gpl3Plus;
-    longDescription = ''
-      The GNU Privacy Guard is the GNU project's complete and free
-      implementation of the OpenPGP standard as defined by RFC4880.  GnuPG
-      "stable" (2.0) is the current stable version for general use.  This is
-      what most users are still using.  GnuPG allows to encrypt and sign your
-      data and communication, features a versatile key management system as well
-      as access modules for all kind of public key directories.  GnuPG, also
-      known as GPG, is a command line tool with features for easy integration
-      with other applications.  A wealth of frontend applications and libraries
-      are available.  Version 2 of GnuPG also provides support for S/MIME.
-    '';
-    maintainers = with maintainers; [ roconnor ];
-    platforms = platforms.all;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/security/gnupg/22.nix b/nixpkgs/pkgs/tools/security/gnupg/22.nix
index 24b3b34c3a7a..4e4a392a8878 100644
--- a/nixpkgs/pkgs/tools/security/gnupg/22.nix
+++ b/nixpkgs/pkgs/tools/security/gnupg/22.nix
@@ -16,11 +16,11 @@ assert guiSupport -> pinentry != null && enableMinimal == false;
 stdenv.mkDerivation rec {
   pname = "gnupg";
 
-  version = "2.2.20";
+  version = "2.2.23";
 
   src = fetchurl {
     url = "mirror://gnupg/gnupg/${pname}-${version}.tar.bz2";
-    sha256 = "0c6a4v9p6qzhsw1pfcwc459bxpc8hma0w9z8iqb9khvligack9q4";
+    sha256 = "0p6ss4f3vlkf91pmp27bmvfr5bdxxi0pb3dmxpqljglbsx4mxd8h";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
@@ -38,8 +38,10 @@ stdenv.mkDerivation rec {
     ./accept-subkeys-with-a-good-revocation-but-no-self-sig.patch
   ];
   postPatch = ''
-    sed -i 's,hkps://hkps.pool.sks-keyservers.net,hkps://keys.openpgp.org,g' \
-        configure doc/dirmngr.texi doc/gnupg.info-1
+    sed -i 's,hkps://hkps.pool.sks-keyservers.net,hkps://keys.openpgp.org,g' configure doc/dirmngr.texi doc/gnupg.info-1
+    # Fix broken SOURCE_DATE_EPOCH usage - remove on the next upstream update
+    sed -i 's/$SOURCE_DATE_EPOCH/''${SOURCE_DATE_EPOCH}/' doc/Makefile.am
+    sed -i 's/$SOURCE_DATE_EPOCH/''${SOURCE_DATE_EPOCH}/' doc/Makefile.in
   '' + stdenv.lib.optionalString ( stdenv.isLinux && pcsclite != null) ''
     sed -i 's,"libpcsclite\.so[^"]*","${stdenv.lib.getLib pcsclite}/lib/libpcsclite.so",g' scd/scdaemon.c
   '';
diff --git a/nixpkgs/pkgs/tools/security/gobuster/default.nix b/nixpkgs/pkgs/tools/security/gobuster/default.nix
index 8b8085511495..6e049917de2c 100644
--- a/nixpkgs/pkgs/tools/security/gobuster/default.nix
+++ b/nixpkgs/pkgs/tools/security/gobuster/default.nix
@@ -16,10 +16,12 @@ buildGoModule rec {
 
   vendorSha256 = "0kr9i2nm5csf3070hwaiss137pfa3088xbw2zigp7aqb2naky036";
 
+  doCheck = false;
+
   meta = with lib; {
     description = "Tool used to brute-force URIs, DNS subdomains, Virtual Host names on target web servers";
     homepage = "https://github.com/OJ/gobuster";
     license = licenses.asl20;
     maintainers = with maintainers; [ pamplemousse ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/security/gopass/default.nix b/nixpkgs/pkgs/tools/security/gopass/default.nix
index 6b9042e56914..15ad1c70a8da 100644
--- a/nixpkgs/pkgs/tools/security/gopass/default.nix
+++ b/nixpkgs/pkgs/tools/security/gopass/default.nix
@@ -1,5 +1,8 @@
-{ stdenv, makeWrapper
-, buildGoModule, fetchFromGitHub, installShellFiles
+{ stdenv
+, makeWrapper
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
 , git
 , gnupg
 , xclip
@@ -9,7 +12,7 @@
 
 buildGoModule rec {
   pname = "gopass";
-  version = "1.9.2";
+  version = "1.10.1";
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
 
@@ -17,18 +20,22 @@ buildGoModule rec {
     owner = "gopasspw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "066dphw8xq0g72kj64sdai2yyllnr6ca27bfy5sxhk8x69j97rvz";
+    sha256 = "0dhh64mxfhk610wr7bpakzgmc4a4iyhfkkl3qhjp6a46g9iygana";
   };
 
-  vendorSha256 = "1wn20bh7ma4pblsf6qnlbz5bx4p9apig3d1yz7cpsqv4z3w07baw";
+  vendorSha256 = "07wv6yahx4yzr3h1x93x4r5rvw8wbfk836f04b4r9xjbnpq7lb2a";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.commit=${src.rev}" ];
 
-  wrapperPath = stdenv.lib.makeBinPath ([
-    git
-    gnupg
-    xclip
-  ] ++ stdenv.lib.optional stdenv.isLinux wl-clipboard);
+  wrapperPath = stdenv.lib.makeBinPath (
+    [
+      git
+      gnupg
+      xclip
+    ] ++ stdenv.lib.optional stdenv.isLinux wl-clipboard
+  );
 
   postInstall = ''
     for shell in bash fish zsh; do
@@ -40,16 +47,18 @@ buildGoModule rec {
   '';
 
   postFixup = ''
-    wrapProgram $out/bin/gopass \
-      --prefix PATH : "${wrapperPath}"
+    for bin in $out/bin/*; do
+      wrapProgram $bin \
+        --prefix PATH : "${wrapperPath}"
+    done
   '';
 
   meta = with stdenv.lib; {
-    description     = "The slightly more awesome Standard Unix Password Manager for Teams. Written in Go.";
-    homepage        = "https://www.gopass.pw/";
-    license         = licenses.mit;
-    maintainers     = with maintainers; [ andir rvolosatovs ];
-    platforms       = platforms.unix;
+    description = "The slightly more awesome Standard Unix Password Manager for Teams. Written in Go.";
+    homepage = "https://www.gopass.pw/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ andir rvolosatovs ];
+    platforms = platforms.unix;
 
     longDescription = ''
       gopass is a rewrite of the pass password manager in Go with the aim of
@@ -61,4 +70,4 @@ buildGoModule rec {
       well, providing a stellar user experience and a sane, simple interface.
     '';
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/security/hash_extender/default.nix b/nixpkgs/pkgs/tools/security/hash_extender/default.nix
index 5bda599f0f0c..dc8ea8b2c9b4 100644
--- a/nixpkgs/pkgs/tools/security/hash_extender/default.nix
+++ b/nixpkgs/pkgs/tools/security/hash_extender/default.nix
@@ -25,6 +25,6 @@ stdenv.mkDerivation {
     description = "Tool to automate hash length extension attacks";
     homepage = "https://github.com/iagox86/hash_extender";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/hashcat/default.nix b/nixpkgs/pkgs/tools/security/hashcat/default.nix
index c1fd84b64527..b156cda99ac7 100644
--- a/nixpkgs/pkgs/tools/security/hashcat/default.nix
+++ b/nixpkgs/pkgs/tools/security/hashcat/default.nix
@@ -1,12 +1,18 @@
-{ stdenv, fetchurl, makeWrapper, opencl-headers, ocl-icd, xxHash }:
+{ stdenv
+, fetchurl
+, makeWrapper
+, opencl-headers
+, ocl-icd
+, xxHash
+}:
 
 stdenv.mkDerivation rec {
   pname   = "hashcat";
-  version = "5.1.0";
+  version = "6.1.1";
 
   src = fetchurl {
     url = "https://hashcat.net/files/hashcat-${version}.tar.gz";
-    sha256 = "0f73y4cg8c7a6q7x34qvpfi4g3lw6j9bnn0a13g43aqyiskflfr8";
+    sha256 = "104z63m7lqbb0sdrxhf9yi15l4a9zwf9m6zs9dbb3gf0nfxl1h9r";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/security/hcxdumptool/default.nix b/nixpkgs/pkgs/tools/security/hcxdumptool/default.nix
index c7a5a9985552..63752b5f1235 100644
--- a/nixpkgs/pkgs/tools/security/hcxdumptool/default.nix
+++ b/nixpkgs/pkgs/tools/security/hcxdumptool/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hcxdumptool";
-  version = "6.0.6";
+  version = "6.1.2";
 
   src = fetchFromGitHub {
     owner = "ZerBea";
     repo = "hcxdumptool";
     rev = version;
-    sha256 = "1b4d543y64ib92w9gcmiyjn5hz2vyjqmxk3f3yr1zk04fhw16gmf";
+    sha256 = "0y73a5p23rg4zx6vkgpq1p3j2dzqcvzwn1ymswfkqm5zihbi17d7";
   };
 
   buildInputs = [ openssl ];
diff --git a/nixpkgs/pkgs/tools/security/hcxtools/default.nix b/nixpkgs/pkgs/tools/security/hcxtools/default.nix
index 5634ee6cff06..a81c1ef75cf0 100644
--- a/nixpkgs/pkgs/tools/security/hcxtools/default.nix
+++ b/nixpkgs/pkgs/tools/security/hcxtools/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hcxtools";
-  version = "6.0.2";
+  version = "6.0.3";
 
   src = fetchFromGitHub {
     owner = "ZerBea";
     repo = pname;
     rev = version;
-    sha256 = "0a36184igdgs2h83zr4zihc5acps91ipmgph37jakvzwrsn64ma6";
+    sha256 = "0s9l5mvzcv6hnj7h28piabnm66b09hk2l57vb85ny35w99hzpkc0";
   };
 
   buildInputs = [ curl openssl zlib ];
diff --git a/nixpkgs/pkgs/tools/security/hologram/default.nix b/nixpkgs/pkgs/tools/security/hologram/default.nix
index 910bcc522e7f..7c5a2d5a4c11 100644
--- a/nixpkgs/pkgs/tools/security/hologram/default.nix
+++ b/nixpkgs/pkgs/tools/security/hologram/default.nix
@@ -13,8 +13,6 @@ buildGoPackage rec {
 
   goPackagePath = "github.com/AdRoll/hologram";
 
-  goDeps = ./deps.nix;
-
   preConfigure = ''
     sed -i 's|cacheTimeout != 3600|cacheTimeout != 0|' cmd/hologram-server/main.go
   '';
@@ -23,7 +21,6 @@ buildGoPackage rec {
     homepage = "https://github.com/AdRoll/hologram/";
     description = "Easy, painless AWS credentials on developer laptops.";
     maintainers = with maintainers; [ nand0p ];
-    platforms = platforms.all;
     license = licenses.asl20;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/hologram/deps.nix b/nixpkgs/pkgs/tools/security/hologram/deps.nix
deleted file mode 100644
index a9b66da2a9c0..000000000000
--- a/nixpkgs/pkgs/tools/security/hologram/deps.nix
+++ /dev/null
@@ -1,110 +0,0 @@
-[
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "575fdbe86e5dd89229707ebec0575ce7d088a4a6";
-      sha256 = "1kgv1mkw9y404pk3lcwbs0vgl133mwyp294i18jg9hp10s5d56xa";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "59b73b37c1e45995477aae817e4a653c89a858db";
-      sha256 = "1dx22jvhvj34ivpr7gw01fncg9yyx35mbpal4mpgnqka7ajmgjsa";
-    };
-  }
-  {
-    goPackagePath = "github.com/howeyc/gopass";
-    fetch = {
-      type = "git";
-      url = "https://github.com/howeyc/gopass";
-      rev = "2c70fa70727c953c51695f800f25d6b44abb368e";
-      sha256 = "152lrkfxk205rlxiign0w5wb0fmfh910yz4jhlv4f4l1qr1h2lx8";
-    };
-  }
-  {
-    goPackagePath = "github.com/aybabtme/rgbterm";
-    fetch = {
-      type = "git";
-      url = "https://github.com/aybabtme/rgbterm";
-      rev = "c07e2f009ed2311e9c35bca12ec00b38ccd48283";
-      sha256 = "1qph7drds44jzx1whqlrh1hs58k0wv0v58zyq2a81hmm72gsgzam";
-    };
-  }
-  {
-    goPackagePath = "github.com/vaughan0/go-ini";
-    fetch = {
-      type = "git";
-      url = "https://github.com/vaughan0/go-ini";
-      rev = "a98ad7ee00ec53921f08832bc06ecf7fd600e6a1";
-      sha256 = "1l1isi3czis009d9k5awsj4xdxgbxn4n9yqjc1ac7f724x6jacfa";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/go-homedir";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/go-homedir";
-      rev = "1f6da4a72e57d4e7edd4a7295a585e0a3999a2d4";
-      sha256 = "1l5lrsjrnwxn299mhvyxvz8hd0spkx0d31gszm4cyx21bg1xsiy9";
-    };
-  }
-  {
-    goPackagePath = "github.com/goamz/goamz";
-    fetch = {
-      type = "git";
-      url = "https://github.com/goamz/goamz";
-      rev = "2a8fed5e89ab9e16210fc337d1aac780e8c7bbb7";
-      sha256 = "0rlinp0cvgw66qjndg4padr5s0wd3n7kjfggkx6czqj9bqaxcz4b";
-    };
-  }
-  {
-    goPackagePath = "github.com/nmcclain/asn1-ber";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-asn1-ber/asn1-ber";
-      rev = "f4b6f4a84f5cde443d1925b5ec185ee93c2bdc72";
-      sha256 = "0qdyax6yw3hvplzqc2ykpihi3m5y4nii581ay0mxy9c54bzs2nk9";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/asn1-ber.v1";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-asn1-ber/asn1-ber";
-      rev = "f4b6f4a84f5cde443d1925b5ec185ee93c2bdc72";
-      sha256 = "0qdyax6yw3hvplzqc2ykpihi3m5y4nii581ay0mxy9c54bzs2nk9";
-    };
-  }
-  {
-    goPackagePath = "github.com/peterbourgon/g2s";
-    fetch = {
-      type = "git";
-      url = "https://github.com/peterbourgon/g2s";
-      rev = "ec76db4c1ac16400ac0e17ca9c4840e1d23da5dc";
-      sha256 = "1p4p8755v2nrn54rik7yifpg9szyg44y5rpp0kryx4ycl72307rj";
-    };
-  }
-  {
-    goPackagePath = "github.com/nmcclain/ldap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-ldap/ldap";
-      rev = "83e65426fd1c06626e88aa8a085e5bfed0208e29";
-      sha256 = "179lwaf0hvczl8g4xzkpcpzq25p1b23f7399bx5zl55iin62d8yz";
-    };
-  }
-  {
-    goPackagePath = "github.com/aws/aws-sdk-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/aws/aws-sdk-go";
-      rev = "3f8f870ec9939e32b3372abf74d24e468bcd285d";
-      sha256 = "0a4hycs3d87s50z4prf5h6918r0fa2rvrrwlbffs430ilc4y8ghv";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/tools/security/honggfuzz/default.nix b/nixpkgs/pkgs/tools/security/honggfuzz/default.nix
new file mode 100644
index 000000000000..71146b15ea3d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/honggfuzz/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchFromGitHub, callPackage, makeWrapper
+, clang, llvm, libbfd, libopcodes, libunwind, libblocksruntime
+}:
+
+let
+  honggfuzz = stdenv.mkDerivation rec {
+    pname = "honggfuzz";
+    version = "2.3.1";
+
+    src = fetchFromGitHub {
+      owner = "google";
+      repo = pname;
+      rev = "${version}";
+      sha256 = "0dcl5a5jykgfmnfj42vl7kah9k26wg38l2g6yfh5pssmlf0nax33";
+    };
+
+    postPatch = ''
+      substituteInPlace hfuzz_cc/hfuzz-cc.c \
+        --replace '"clang' '"${clang}/bin/clang'
+    '';
+
+    enableParallelBuilding = true;
+
+    nativeBuildInputs = [ makeWrapper ];
+    buildInputs = [ llvm ];
+    propagatedBuildInputs = [ libbfd libopcodes libunwind libblocksruntime ];
+
+    makeFlags = [ "PREFIX=$(out)" ];
+
+    meta = {
+      description = "A security oriented, feedback-driven, evolutionary, easy-to-use fuzzer";
+      longDescription = ''
+        Honggfuzz is a security oriented, feedback-driven, evolutionary,
+        easy-to-use fuzzer with interesting analysis options. It is
+        multi-process and multi-threaded, blazingly fast when the persistent
+        fuzzing mode is used and has a solid track record of uncovered security
+        bugs.
+
+        Honggfuzz uses low-level interfaces to monitor processes and it will
+        discover and report hijacked/ignored signals from crashes. Feed it
+        a simple corpus directory (can even be empty for the feedback-driven
+        fuzzing), and it will work its way up, expanding it by utilizing
+        feedback-based coverage metrics.
+      '';
+      homepage    = "https://honggfuzz.dev/";
+      license     = stdenv.lib.licenses.asl20;
+      platforms   = ["x86_64-linux"];
+      maintainers = with stdenv.lib.maintainers; [ cpu ];
+    };
+  };
+in honggfuzz
diff --git a/nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix b/nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix
index d6e8a521a2fa..c177726bbb16 100644
--- a/nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix
+++ b/nixpkgs/pkgs/tools/security/ibm-sw-tpm2/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ibm-sw-tpm2";
-  version = "1628";
+  version = "1637";
 
   src = fetchurl {
     url = "mirror://sourceforge/ibmswtpm2/ibmtpm${version}.tar.gz";
-    sha256 = "18wywbsdp5sjrapznk2ydbmx0whz513dhybn1lls24xfl7kp9s58";
+    sha256 = "09z3wbv38dc8wnw1q961s6bcd0kvz2xkjp6dxg4kn914fwzlqfnx";
   };
 
   buildInputs = [ openssl ];
diff --git a/nixpkgs/pkgs/tools/security/jd-gui/default.nix b/nixpkgs/pkgs/tools/security/jd-gui/default.nix
index af88fd6270f4..c4b7706c266b 100644
--- a/nixpkgs/pkgs/tools/security/jd-gui/default.nix
+++ b/nixpkgs/pkgs/tools/security/jd-gui/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, jre, jdk, gradle, makeDesktopItem, perl, writeText, runtimeShell }:
+{ stdenv, fetchFromGitHub, jre, jdk, gradle_5, makeDesktopItem, perl, writeText, runtimeShell }:
 
 let
   pname = "jd-gui";
@@ -15,7 +15,7 @@ let
     name = "${pname}-deps";
     inherit src;
 
-    nativeBuildInputs = [ jdk perl gradle ];
+    nativeBuildInputs = [ jdk perl gradle_5 ];
 
     buildPhase = ''
       export GRADLE_USER_HOME=$(mktemp -d);
@@ -71,7 +71,7 @@ in stdenv.mkDerivation rec {
   inherit pname version src;
   name = "${pname}-${version}";
 
-  nativeBuildInputs = [ jdk gradle ];
+  nativeBuildInputs = [ jdk gradle_5 ];
 
   buildPhase = ''
     export GRADLE_USER_HOME=$(mktemp -d)
diff --git a/nixpkgs/pkgs/tools/security/john/default.nix b/nixpkgs/pkgs/tools/security/john/default.nix
index f47728b8ba2a..2fedec48c700 100644
--- a/nixpkgs/pkgs/tools/security/john/default.nix
+++ b/nixpkgs/pkgs/tools/security/john/default.nix
@@ -48,20 +48,21 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = false;
 
   postInstall = ''
-    mkdir -p "$out/bin" "$out/etc/john" "$out/share/john" "$out/share/doc/john" "$out/share/john/rules"
+    mkdir -p "$out/bin" "$out/etc/john" "$out/share/john" "$out/share/doc/john" "$out/share/john/rules" "$out/${perlPackages.perl.libPrefix}"
     find -L ../run -mindepth 1 -maxdepth 1 -type f -executable \
       -exec cp -d {} "$out/bin" \;
     cp -vt "$out/etc/john" ../run/*.conf
     cp -vt "$out/share/john" ../run/*.chr ../run/password.lst
     cp -vt "$out/share/john/rules" ../run/rules/*.rule
     cp -vrt "$out/share/doc/john" ../doc/*
+    cp -vt "$out/${perlPackages.perl.libPrefix}" ../run/lib/*
   '';
 
   postFixup = ''
     wrapPythonPrograms
 
     for i in $out/bin/*.pl; do
-      wrapProgram "$i" --prefix PERL5LIB : $PERL5LIB
+      wrapProgram "$i" --prefix PERL5LIB : "$PERL5LIB:$out/${perlPackages.perl.libPrefix}"
     done
   '';
 
diff --git a/nixpkgs/pkgs/tools/security/jwt-cli/default.nix b/nixpkgs/pkgs/tools/security/jwt-cli/default.nix
index 2161aa5f1cd8..728ea0a92da5 100644
--- a/nixpkgs/pkgs/tools/security/jwt-cli/default.nix
+++ b/nixpkgs/pkgs/tools/security/jwt-cli/default.nix
@@ -1,25 +1,27 @@
-{ stdenv, fetchFromGitHub, rustPlatform, Security }:
+{ stdenv, fetchFromGitHub, rustPlatform, Security, fetchpatch }:
 
 rustPlatform.buildRustPackage rec {
   pname = "jwt-cli";
-  version = "3.1.0";
+  version = "3.2.1";
 
   src = fetchFromGitHub {
     owner = "mike-engel";
     repo = pname;
     rev = version;
-    sha256 = "0pmxis3m3madwnmswz9hn0i8fz6a9bg11slgrrwql7mx23ijqf6y";
+    sha256 = "07mnkr7hi29fyyyn7llb30p4ndiqz4gf1lnhm44qm09alaxmfvws";
   };
 
-  cargoSha256 = "165g1v0c8jxs8ddm8ld0hh7k8mvk3566ig43pf99hnw009fg1yc2";
+  cargoSha256 = "0jkzy7ssg9v9phhlldq6s4rfs3sn17y2r1k0jr10g9j15lzixa04";
 
   buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
 
+  doInstallCheck = true;
+  installCheckPhase = "$out/bin/jwt --version";
+
   meta = with stdenv.lib; {
     description = "Super fast CLI tool to decode and encode JWTs";
     homepage = "https://github.com/mike-engel/jwt-cli";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ rycee ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/kbs2/default.nix b/nixpkgs/pkgs/tools/security/kbs2/default.nix
new file mode 100644
index 000000000000..191b4f351509
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/kbs2/default.nix
@@ -0,0 +1,44 @@
+{ stdenv, rustPlatform, fetchFromGitHub, installShellFiles, python3, libxcb, AppKit }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "kbs2";
+  version = "0.1.4";
+
+  src = fetchFromGitHub {
+    owner = "woodruffw";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1hjcx651nqj1plxw4i2nv72zc0igd8pl31dy2zwm5yyky6dl7qla";
+  };
+
+  cargoSha256 = "11fw097r4mim3rgb0db7naqlf3ws0bavqdd4z84mpdg6714dga0n";
+
+  nativeBuildInputs = [ installShellFiles ]
+    ++ stdenv.lib.optionals stdenv.isLinux [ python3 ];
+
+  buildInputs = [ ]
+    ++ stdenv.lib.optionals stdenv.isLinux [ libxcb ]
+    ++ stdenv.lib.optionals stdenv.isDarwin [ AppKit ];
+
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
+
+  checkFlagsArray = [ "--skip=kbs2::config::tests::test_find_config_dir" ];
+
+  postInstall = ''
+    mkdir -p $out/share/kbs2
+    cp -r contrib/ $out/share/kbs2
+    for shell in bash fish zsh; do
+      $out/bin/kbs2 --completions $shell > kbs2.$shell
+      installShellCompletion kbs2.$shell
+    done
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A secret manager backed by age";
+    homepage = "https://github.com/woodruffw/kbs2";
+    license = licenses.mit;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/keybase/gui.nix b/nixpkgs/pkgs/tools/security/keybase/gui.nix
index b745b63ca9d1..20c1bb8f7f16 100644
--- a/nixpkgs/pkgs/tools/security/keybase/gui.nix
+++ b/nixpkgs/pkgs/tools/security/keybase/gui.nix
@@ -1,19 +1,20 @@
-{ stdenv, fetchurl, alsaLib, atk, cairo, cups, udev
+{ stdenv, lib, fetchurl, alsaLib, atk, cairo, cups, udev
 , dbus, expat, fontconfig, freetype, gdk-pixbuf, glib, gtk3, libappindicator-gtk3
 , libnotify, nspr, nss, pango, systemd, xorg, autoPatchelfHook, wrapGAppsHook
 , runtimeShell, gsettings-desktop-schemas }:
 
 let
-  versionSuffix = "20200424214931.7b0bbf1e3c";
+  versionSuffix = "20200527202541.39ca0071e5";
 in
 
 stdenv.mkDerivation rec {
   pname = "keybase-gui";
-  version = "5.4.2"; # Find latest version from https://prerelease.keybase.io/deb/dists/stable/main/binary-amd64/Packages
+  version = "5.5.1"; # Find latest version from https://prerelease.keybase.io/deb/dists/stable/main/binary-amd64/Packages
 
   src = fetchurl {
+
     url = "https://s3.amazonaws.com/prerelease.keybase.io/linux_binaries/deb/keybase_${version + "-" + versionSuffix}_amd64.deb";
-    sha256 = "06iksmrr959mlzxc3nwd70apmvhij1xarxvvflys5qa31vravizs";
+    sha256 = "1n54a86491aqazqa4rgljbji638nj83ciibqxq46sa2m1php9dfd";
   };
 
   nativeBuildInputs = [
@@ -55,7 +56,7 @@ stdenv.mkDerivation rec {
   ];
 
   runtimeDependencies = [
-    udev.lib
+    (lib.getLib udev)
     libappindicator-gtk3
   ];
 
diff --git a/nixpkgs/pkgs/tools/security/lesspass-cli/default.nix b/nixpkgs/pkgs/tools/security/lesspass-cli/default.nix
index 0d59c34ee9a3..5bf7358fa76a 100644
--- a/nixpkgs/pkgs/tools/security/lesspass-cli/default.nix
+++ b/nixpkgs/pkgs/tools/security/lesspass-cli/default.nix
@@ -6,13 +6,13 @@ let
 in
 buildPythonApplication rec {
   pname = "lesspass-cli";
-  version = "9.0.0";
+  version = "9.1.9";
 
   src = fetchFromGitHub {
     owner = repo;
     repo = repo;
     rev = version;
-    sha256 = "1mdv0c0fn4d72iigy8hz4s7kf7q3pg4gjjadxwxyjwsalapnsapk";
+    sha256 = "126zk248s9r72qk9b8j27yvb8gglw49kazwz0sd69b5kkxvhz2dh";
   };
   sourceRoot = "source/cli";
 
diff --git a/nixpkgs/pkgs/tools/security/lynis/default.nix b/nixpkgs/pkgs/tools/security/lynis/default.nix
index bbed166d7598..d7f42479d0b4 100644
--- a/nixpkgs/pkgs/tools/security/lynis/default.nix
+++ b/nixpkgs/pkgs/tools/security/lynis/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, makeWrapper, fetchFromGitHub, gawk }:
+{ stdenv, makeWrapper, fetchFromGitHub, gawk, installShellFiles }:
 
 stdenv.mkDerivation rec {
   pname = "lynis";
-  version = "2.7.5";
+  version = "3.0.0";
 
   src = fetchFromGitHub {
     owner = "CISOfy";
     repo = pname;
     rev = version;
-    sha256 = "1lkkbvxm0rgrrlx0szaxmf8ghc3d26wal96sgqk84m37mvs1f7p0";
+    sha256 = "05p8h2ww4jcc6lgxrm796cbvlfmw26rxq5fmw0xxavbpadiw752j";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
+  nativeBuildInputs = [ installShellFiles makeWrapper ];
 
   postPatch = ''
     grep -rl '/usr/local/lynis' ./ | xargs sed -i "s@/usr/local/lynis@$out/share/lynis@g"
@@ -22,6 +22,10 @@ stdenv.mkDerivation rec {
     cp -r include db default.prf $out/share/lynis/
     cp -a lynis $out/bin
     wrapProgram "$out/bin/lynis" --prefix PATH : ${stdenv.lib.makeBinPath [ gawk ]}
+
+    installManPage lynis.8
+    installShellCompletion --bash --name lynis.bash \
+      extras/bash_completion.d/lynis
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/tools/security/minica/default.nix b/nixpkgs/pkgs/tools/security/minica/default.nix
new file mode 100644
index 000000000000..20ae3878a71f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/minica/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildGoPackage, fetchFromGitHub }:
+
+buildGoPackage rec {
+  pname = "minica";
+  version = "1.0.2";
+
+  goPackagePath = "github.com/jsha/minica";
+
+  src = fetchFromGitHub {
+    owner = "jsha";
+    repo = "minica";
+    rev = "v${version}";
+    sha256 = "18518wp3dcjhf3mdkg5iwxqr3326n6jwcnqhyibphnb2a58ap7ny";
+  };
+
+  buildFlagsArray = ''
+    -ldflags=
+      -X main.BuildVersion=${version}
+  '';
+
+  meta = with lib; {
+    description = "A simple tool for generating self signed certificates.";
+    longDescription = ''
+      Minica is a simple CA intended for use in situations where the CA
+      operator also operates each host where a certificate will be used. It
+      automatically generates both a key and a certificate when asked to
+      produce a certificate.
+    '';
+    homepage = "https://github.com/jsha/minica/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ m1cr0man ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/minisign/default.nix b/nixpkgs/pkgs/tools/security/minisign/default.nix
index ed226994a31e..b67b65b0cf8b 100644
--- a/nixpkgs/pkgs/tools/security/minisign/default.nix
+++ b/nixpkgs/pkgs/tools/security/minisign/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchFromGitHub, cmake, libsodium }:
+{ stdenv, fetchFromGitHub, cmake, pkg-config, libsodium }:
 
 stdenv.mkDerivation rec {
   pname = "minisign";
-  version = "0.8";
+  version = "0.9";
 
   src = fetchFromGitHub {
     repo = "minisign";
     owner = "jedisct1";
     rev = version;
-    sha256 = "0rgg9jb5108hd5psivlrfd8cxnjylawm0glcry8ba6zlmkv949r8";
+    sha256 = "0qx3hnkwx6ij0hgp5vc74x36qfc4h5wgzr70fqqhmv3zb8q9f2vn";
   };
 
-  nativeBuildInputs = [ cmake ];
+  nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ libsodium ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/tools/security/nsjail/default.nix b/nixpkgs/pkgs/tools/security/nsjail/default.nix
index 27712e4d42f5..4522d0e897af 100644
--- a/nixpkgs/pkgs/tools/security/nsjail/default.nix
+++ b/nixpkgs/pkgs/tools/security/nsjail/default.nix
@@ -4,26 +4,24 @@
 
 stdenv.mkDerivation rec {
   pname = "nsjail";
-  version = "2.9";
+  version = "3.0";
 
   src = fetchFromGitHub {
     owner           = "google";
     repo            = "nsjail";
     rev             = version;
     fetchSubmodules = true;
-    sha256          = "0218n0qjb45fawqqfj3gdxgd0fw5k0vxn9iggi0ciljmr9zywkgh";
+    sha256          = "1w6x8xcrs0i1y3q41gyq8z3cq9x24qablklc4jiydf855lhqn4dh";
   };
 
-  postPatch = ''
-    substituteInPlace user.cc \
-      --replace "/usr/bin/newgidmap" "${shadow}/bin/newgidmap" \
-      --replace "/usr/bin/newuidmap" "${shadow}/bin/newuidmap"
-  '';
-
   nativeBuildInputs = [ autoconf bison flex libtool pkgconfig which ];
   buildInputs = [ libnl protobuf protobufc ];
   enableParallelBuilding = true;
 
+  preBuild = ''
+    makeFlagsArray+=(USER_DEFINES='-DNEWUIDMAP_PATH=${shadow}/bin/newuidmap -DNEWGIDMAP_PATH=${shadow}/bin/newgidmap')
+  '';
+
   installPhase = ''
     mkdir -p $out/bin $out/share/man/man1
     install nsjail $out/bin/
@@ -34,7 +32,7 @@ stdenv.mkDerivation rec {
     description = "A light-weight process isolation tool, making use of Linux namespaces and seccomp-bpf syscall filters";
     homepage    = "http://nsjail.com/";
     license     = licenses.asl20;
-    maintainers = with maintainers; [ bosu c0bw3b ];
+    maintainers = with maintainers; [ arturcygan bosu c0bw3b ];
     platforms   = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/pcsclite/default.nix b/nixpkgs/pkgs/tools/security/pcsclite/default.nix
index 4e01a5792dcc..98a3e8797fbf 100644
--- a/nixpkgs/pkgs/tools/security/pcsclite/default.nix
+++ b/nixpkgs/pkgs/tools/security/pcsclite/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "pcsclite";
-  version = "1.8.26";
+  version = "1.9.0";
 
   outputs = [ "bin" "out" "dev" "doc" "man" ];
 
   src = fetchurl {
     url = "https://pcsclite.apdu.fr/files/pcsc-lite-${version}.tar.bz2";
-    sha256 = "1ndvvz0fgqwz70pijymsxmx25mzryb0zav1i8jjc067ndryvxdry";
+    sha256 = "1y9f9zipnrmgiw0mxrvcgky8vfrcmg6zh40gbln5a93i2c1x8j01";
   };
 
   patches = [ ./no-dropdir-literals.patch ];
@@ -18,7 +18,6 @@ stdenv.mkDerivation rec {
     # The OS should care on preparing the drivers into this location
     "--enable-usbdropdir=/var/lib/pcsc/drivers"
     "--enable-confdir=/etc"
-    "--enable-ipcdir=/run/pcscd"
   ] ++ stdenv.lib.optional stdenv.isLinux
          "--with-systemdsystemunitdir=\${out}/etc/systemd/system"
     ++ stdenv.lib.optional (!stdenv.isLinux)
diff --git a/nixpkgs/pkgs/tools/security/pcsctools/default.nix b/nixpkgs/pkgs/tools/security/pcsctools/default.nix
index c9c677e64c02..b2ef4e7e0302 100644
--- a/nixpkgs/pkgs/tools/security/pcsctools/default.nix
+++ b/nixpkgs/pkgs/tools/security/pcsctools/default.nix
@@ -5,11 +5,11 @@
 let deps = lib.makeBinPath [ wget coreutils ];
 
 in stdenv.mkDerivation rec {
-  name = "pcsc-tools-1.5.6";
+  name = "pcsc-tools-1.5.7";
 
   src = fetchurl {
     url = "http://ludovic.rousseau.free.fr/softwares/pcsc-tools/${name}.tar.bz2";
-    sha256 = "1a2zd06c6s4sqlpm5801gj41gh5g62jb8srd7vhlcm70hg3l3nsy";
+    sha256 = "17b9jxvcxmn007lavan20l25v4jvm6dqc4x9dlqzbg6mjs28zsp0";
   };
 
   buildInputs = [ udev dbus perlPackages.perl pcsclite ];
@@ -20,7 +20,7 @@ in stdenv.mkDerivation rec {
     wrapProgram $out/bin/scriptor \
       --set PERL5LIB "${with perlPackages; makePerlPath [ pcscperl ]}"
     wrapProgram $out/bin/gscriptor \
-      --set PERL5LIB "${with perlPackages; makePerlPath [ pcscperl Glib Gtk2 Pango Cairo ]}"
+      --set PERL5LIB "${with perlPackages; makePerlPath [ pcscperl GlibObjectIntrospection Glib Gtk3 Pango Cairo CairoGObject ]}"
     wrapProgram $out/bin/ATR_analysis \
       --set PERL5LIB "${with perlPackages; makePerlPath [ pcscperl ]}"
     wrapProgram $out/bin/pcsc_scan \
diff --git a/nixpkgs/pkgs/tools/security/rbw/default.nix b/nixpkgs/pkgs/tools/security/rbw/default.nix
new file mode 100644
index 000000000000..9eb670102fb8
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/rbw/default.nix
@@ -0,0 +1,76 @@
+{ lib
+, rustPlatform
+, fetchCrate
+, pinentry
+, openssl
+, pkgconfig
+, makeWrapper
+, cargo
+
+# rbw-fzf
+, withFzf ? false, fzf, perl
+
+# rbw-rofi
+, withRofi ? false, rofi, xclip
+
+# pass-import
+, withPass ? false, pass
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rbw";
+  version = "0.4.6";
+
+  src = fetchCrate {
+    inherit version;
+    crateName = "${pname}";
+    sha256 = "0vq7cwk3i57fvn54q2rgln74j4p9vqm5zyhap94s73swjywicwk0";
+  };
+
+  cargoSha256 = "1h253ncick2v9aki5rf1bdrg5rj3h4nrvx5q01gw03cgwnqvyiiy";
+
+  nativeBuildInputs = [
+    pkgconfig
+    makeWrapper
+  ];
+
+  postPatch = ''
+    substituteInPlace src/pinentry.rs \
+        --replace "Command::new(\"pinentry\")" "Command::new(\"${pinentry}/bin/pinentry\")"
+  '' + lib.optionalString withFzf ''
+    patchShebangs bin/rbw-fzf
+    substituteInPlace bin/rbw-fzf \
+        --replace fzf ${fzf}/bin/fzf \
+        --replace perl ${perl}/bin/perl
+  '' + lib.optionalString withRofi ''
+    patchShebangs bin/rbw-rofi
+    substituteInPlace bin/rbw-rofi \
+        --replace rofi ${rofi}/bin/rofi \
+        --replace xclip ${xclip}/bin/xclip
+  '' + lib.optionalString withRofi ''
+    patchShebangs bin/pass-import
+    substituteInPlace bin/pass-import \
+        --replace pass ${pass}/bin/pass
+  '';
+
+  preConfigure = ''
+    export OPENSSL_INCLUDE_DIR="${openssl.dev}/include"
+    export OPENSSL_LIB_DIR="${openssl.out}/lib"
+  '';
+
+  postInstall = lib.optionalString withFzf ''
+    cp bin/rbw-fzf $out/bin
+  '' + lib.optionalString withRofi ''
+    cp bin/rbw-rofi $out/bin
+  '' + lib.optionalString withPass ''
+    cp bin/pass-import $out/bin
+  '';
+
+  meta = with lib; {
+    description = "Unofficial command line client for Bitwarden";
+    homepage = "https://crates.io/crates/rbw";
+    license = licenses.mit;
+    maintainers = with maintainers; [ albakham luc65r ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/rhash/default.nix b/nixpkgs/pkgs/tools/security/rhash/default.nix
index 863b03a117c5..394dd89484fe 100644
--- a/nixpkgs/pkgs/tools/security/rhash/default.nix
+++ b/nixpkgs/pkgs/tools/security/rhash/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, which }:
 
 stdenv.mkDerivation rec {
-  version = "1.3.9";
+  version = "1.4.0";
   pname = "rhash";
 
   src = fetchFromGitHub {
     owner = "rhash";
     repo = "RHash";
     rev = "v${version}";
-    sha256 = "06i49x1l21h2q7pfnf4crbmjyg8b9ad0qs10ywyyn5sjpi0c21wq";
+    sha256 = "18zgr1bjzz8v6rckz2q2hx9f2ssbv8qfwclzpbyjaz0c1c9lqqar";
   };
 
   nativeBuildInputs = [ which ];
diff --git a/nixpkgs/pkgs/tools/security/rustscan/default.nix b/nixpkgs/pkgs/tools/security/rustscan/default.nix
new file mode 100644
index 000000000000..2a2e8c7ec6c5
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/rustscan/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, fetchFromGitHub
+, rustPlatform
+, nmap
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "rustscan";
+  version = "1.8.0";
+
+  src = fetchFromGitHub {
+    owner = "RustScan";
+    repo = pname;
+    rev = "${version}";
+    sha256 = "0rkqsh4i58cf18ad97yr4f68s5jg6z0ybz4bw8607lz7cjkfvjay";
+  };
+
+  cargoSha256 = "0mj214f2md7kjknmcayc5dcfmlk2b8mqkn7kxzdis8qv9a5xcbk8";
+
+  postPatch = ''
+    substituteInPlace src/main.rs \
+      --replace 'Command::new("nmap")' 'Command::new("${nmap}/bin/nmap")'
+  '';
+
+  checkFlags = [
+    "--skip=infer_ulimit_lowering_no_panic"
+    "--skip=google_dns_runs"
+    "--skip=parse_correct_ips_or_hosts"
+  ];
+
+  meta = with lib; {
+    description = "Faster Nmap Scanning with Rust";
+    homepage = "https://github.com/RustScan/RustScan";
+    license = licenses.gpl3Only;
+    maintainers = [ maintainers.SuperSandro2000 ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/saml2aws/default.nix b/nixpkgs/pkgs/tools/security/saml2aws/default.nix
index d3157529215b..fc52662e536f 100644
--- a/nixpkgs/pkgs/tools/security/saml2aws/default.nix
+++ b/nixpkgs/pkgs/tools/security/saml2aws/default.nix
@@ -2,29 +2,19 @@
 
 buildGoModule rec {
   pname = "saml2aws";
-  version = "2.26.1";
+  version = "2.27.0";
 
   src = fetchFromGitHub {
     owner = "Versent";
     repo = "saml2aws";
     rev = "v${version}";
-    sha256 = "09b217x10mn3y244rwym0fcqr4ly6n83wnykb77488kn960b0pqb";
+    sha256 = "15ddzab93iqwbvxnaw5wp4dzwlxjqxvyy1c4w37jm69zkczylrmc";
   };
 
-  hid = fetchFromGitHub {
-    owner = "karalabe";
-    repo = "hid";
-    rev = "9c14560f9ee858c43f40b5cd01392b167aacf4e8";
-    sha256 = "0xc7b8mwha64j7l2fr2g5zy8pz7cqi0vrxx60gii52b6ii31xncx";
-  };
+  runVend = true;
+  vendorSha256 = "1w7vnpv36lhxpaljdhslbckkr7p81nzc91a0503wk8nrrc4ljsyy";
 
-  vendorSha256 = "0mns5clykvj33krf29yjh8lkf05nih42ka5ji7miq0iaikqyyc78";
-  overrideModAttrs = (_: {
-      postBuild = ''
-      cp -r --reflink=auto ${hid}/libusb vendor/github.com/karalabe/hid
-      cp -r --reflink=auto ${hid}/hidapi vendor/github.com/karalabe/hid
-      '';
-    });
+  doCheck = false;
 
   subPackages = [ "." "cmd/saml2aws" ];
 
@@ -39,4 +29,4 @@ buildGoModule rec {
     platforms   = stdenv.lib.platforms.unix;
     maintainers = [ stdenv.lib.maintainers.pmyjavec ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/security/sequoia/default.nix b/nixpkgs/pkgs/tools/security/sequoia/default.nix
index e6081fbf472d..a54433b92c93 100644
--- a/nixpkgs/pkgs/tools/security/sequoia/default.nix
+++ b/nixpkgs/pkgs/tools/security/sequoia/default.nix
@@ -1,32 +1,46 @@
-{ stdenv, fetchFromGitLab, lib, darwin
-, git, nettle, llvmPackages, cargo, rustc
-, rustPlatform, pkgconfig, glib
-, openssl, sqlite, capnproto
-, ensureNewerSourcesForZipFilesHook, pythonSupport ? true, pythonPackages ? null
+{ stdenv
+, fetchFromGitLab
+, lib
+, darwin
+, git
+, nettle
+# Use the same llvmPackages version as Rust
+, llvmPackages_10
+, cargo
+, rustc
+, rustPlatform
+, pkg-config
+, glib
+, openssl
+, sqlite
+, capnproto
+, ensureNewerSourcesForZipFilesHook
+, pythonSupport ? true
+, pythonPackages ? null
 }:
 
 assert pythonSupport -> pythonPackages != null;
 
 rustPlatform.buildRustPackage rec {
   pname = "sequoia";
-  version = "0.16.0";
+  version = "0.19.0";
 
   src = fetchFromGitLab {
     owner = "sequoia-pgp";
-    repo = pname;
+    repo = "sequoia";
     rev = "v${version}";
-    sha256 = "0iwzi2ylrwz56s77cd4vcf89ig6ipy4w6kp2pfwqvd2d00x54dhk";
+    sha256 = "1870wd03c3x0da9p3jmkvfx8am87ak0dcsvp2qkjvglbl396kd8y";
   };
 
-  cargoSha256 = "0jsmvs6hr9mhapz3a74wpfgkjkq3w10014j3z30bm659mxqrknha";
+  cargoSha256 = "0bb51vdppdjhsxbfy3lyqvw5r5j58r3wi0qb68m2a45k3za7liss";
 
   nativeBuildInputs = [
-    pkgconfig
+    pkg-config
     cargo
     rustc
     git
-    llvmPackages.libclang
-    llvmPackages.clang
+    llvmPackages_10.libclang
+    llvmPackages_10.clang
     ensureNewerSourcesForZipFilesHook
     capnproto
   ] ++
@@ -54,23 +68,24 @@ rustPlatform.buildRustPackage rec {
     "build-release"
   ];
 
-  LIBCLANG_PATH = "${llvmPackages.libclang}/lib";
+  LIBCLANG_PATH = "${llvmPackages_10.libclang}/lib";
 
+  # Sometimes, tests fail on CI (ofborg) & hydra without this
+  CARGO_TEST_ARGS = "--workspace --exclude sequoia-store";
+
+  # Without this, the examples won't build
   postPatch = ''
-    # otherwise, the check fails because we delete the `.git` in the unpack phase
-    substituteInPlace openpgp-ffi/Makefile \
-      --replace 'git grep' 'grep -R'
-    # Without this, the check fails
     substituteInPlace openpgp-ffi/examples/Makefile \
       --replace '-O0 -g -Wall -Werror' '-g'
     substituteInPlace ffi/examples/Makefile \
       --replace '-O0 -g -Wall -Werror' '-g'
   '';
 
+
   preInstall = lib.optionalString pythonSupport ''
     export installFlags="PYTHONPATH=$PYTHONPATH:$out/${pythonPackages.python.sitePackages}"
   '' + lib.optionalString (!pythonSupport) ''
-    export installFlags="PYTHON=disable"
+    export makeFlags="PYTHON=disable"
   '';
 
   # Don't use buildRustPackage phases, only use it for rust deps setup
@@ -85,7 +100,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://sequoia-pgp.org/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ minijackson doronbehar ];
-    platforms = platforms.all;
     broken = stdenv.targetPlatform.isDarwin;
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/signing-party/default.nix b/nixpkgs/pkgs/tools/security/signing-party/default.nix
index 91d3ea356df3..17c65d28884e 100644
--- a/nixpkgs/pkgs/tools/security/signing-party/default.nix
+++ b/nixpkgs/pkgs/tools/security/signing-party/default.nix
@@ -13,14 +13,14 @@ let
   ];
 in stdenv.mkDerivation rec {
   pname = "signing-party";
-  version = "2.10";
+  version = "2.11";
 
   src = fetchFromGitLab {
     domain = "salsa.debian.org";
     owner = "signing-party-team";
     repo = "signing-party";
     rev = "v${version}";
-    sha256 = "0lq8nmwjmysry0n4jg6vb7bh0lagbyb9pa11ii3s41p1mhzchf2r";
+    sha256 = "1aig5ssabzbk4mih7xd04vgr931bw0flbi8dz902wlr610gyv5s5";
   };
 
   # TODO: Get this patch upstream...
@@ -87,6 +87,8 @@ in stdenv.mkDerivation rec {
     install -D -m444 gpgparticipants/gpgparticipants.1 $out/share/man/man1/gpgparticipants.1;
     install -D -m555 gpgparticipants/gpgparticipants-prefill $out/bin/gpgparticipants-prefill;
     install -D -m444 gpgparticipants/gpgparticipants-prefill.1 $out/share/man/man1/gpgparticipants-prefill.1;
+    install -D -m555 gpgparticipants/gpgparticipants-filter $out/bin/gpgparticipants-filter;
+    install -D -m444 gpgparticipants/gpgparticipants-filter.1 $out/share/man/man1/gpgparticipants-filter.1;
 
     # gpgwrap: a passphrase wrapper
     install -D -m555 gpgwrap/bin/gpgwrap $out/bin/gpgwrap;
@@ -153,6 +155,9 @@ in stdenv.mkDerivation rec {
 
 #    wrapProgram $out/bin/gpgparticipants-prefill
 
+    wrapProgram $out/bin/gpgparticipants-filter --prefix PATH ":" \
+      "${stdenv.lib.makeBinPath [ gnupg ]}"
+
     wrapProgram $out/bin/gpgsigs --set PERL5LIB \
       ${perlPackages.makePerlPath GnuPGInterfaceRuntimeDependencies} \
       --prefix PATH ":" \
diff --git a/nixpkgs/pkgs/tools/security/sn0int/default.nix b/nixpkgs/pkgs/tools/security/sn0int/default.nix
index 9e9cbe2bb3a5..8b99649e0c9f 100644
--- a/nixpkgs/pkgs/tools/security/sn0int/default.nix
+++ b/nixpkgs/pkgs/tools/security/sn0int/default.nix
@@ -1,18 +1,18 @@
-{ lib, fetchFromGitHub, rustPlatform,
-  libsodium, libseccomp, sqlite, pkgconfig }:
+{ lib, fetchFromGitHub, rustPlatform, libsodium, libseccomp, sqlite, pkgconfig
+}:
 
 rustPlatform.buildRustPackage rec {
   pname = "sn0int";
-  version = "0.18.2";
+  version = "0.19.1";
 
   src = fetchFromGitHub {
     owner = "kpcyrd";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0b21b0ryq03zrhqailg2iajirn30l358aj3k44lfnravr4h9zwkj";
+    sha256 = "10f1wblczxlww09f4dl8i9zzgpr14jj7s329wkvm7lafmwx3qrn5";
   };
 
-  cargoSha256 = "1pvn0sc325b5fh29m2l6cack4qfssa4lp3zhyb1qzkb3fmw3lgcy";
+  cargoSha256 = "1v0q751ylsfpdjwsbl20pvn7g75w503jwjl5kn5kc8xq3g0lnp65";
 
   nativeBuildInputs = [ pkgconfig ];
 
diff --git a/nixpkgs/pkgs/tools/security/softhsm/default.nix b/nixpkgs/pkgs/tools/security/softhsm/default.nix
index 5cc7dbac5da5..61afb9082d0f 100644
--- a/nixpkgs/pkgs/tools/security/softhsm/default.nix
+++ b/nixpkgs/pkgs/tools/security/softhsm/default.nix
@@ -1,18 +1,18 @@
-{ stdenv, fetchurl, botan, libobjc, Security }:
+{ stdenv, fetchurl, botan2, libobjc, Security }:
 
 stdenv.mkDerivation rec {
 
   pname = "softhsm";
-  version = "2.5.0";
+  version = "2.6.1";
 
   src = fetchurl {
     url = "https://dist.opendnssec.org/source/${pname}-${version}.tar.gz";
-    sha256 = "1cijq78jr3mzg7jj11r0krawijp99p253f4qdqr94n728p7mdalj";
+    hash = "sha256:1wkmyi6n3z2pak1cj5yk6v6bv9w0m24skycya48iikab0mrr8931";
   };
 
   configureFlags = [
     "--with-crypto-backend=botan"
-    "--with-botan=${botan}"
+    "--with-botan=${botan2}"
     "--sysconfdir=$out/etc"
     "--localstatedir=$out/var"
     ];
@@ -20,13 +20,24 @@ stdenv.mkDerivation rec {
   propagatedBuildInputs =
     stdenv.lib.optionals stdenv.isDarwin [ libobjc Security ];
 
-  buildInputs = [ botan ];
+  buildInputs = [ botan2 ];
 
   postInstall = "rm -rf $out/var";
 
   meta = with stdenv.lib; {
     homepage = "https://www.opendnssec.org/softhsm";
     description = "Cryptographic store accessible through a PKCS #11 interface";
+    longDescription = "
+      SoftHSM provides a software implementation of a generic
+      cryptographic device with a PKCS#11 interface, which is of
+      course especially useful in environments where a dedicated hardware
+      implementation of such a device - for instance a Hardware
+      Security Module (HSM) or smartcard - is not available.
+
+      SoftHSM follows the OASIS PKCS#11 standard, meaning it should be
+      able to work with many cryptographic products. SoftHSM is a
+      programme of The Commons Conservancy.
+    ";
     license = licenses.bsd2;
     maintainers = [ maintainers.leenaars ];
     platforms = platforms.unix;
diff --git a/nixpkgs/pkgs/tools/security/sops/default.nix b/nixpkgs/pkgs/tools/security/sops/default.nix
index 55dde8438c8a..7557fa6a6d38 100644
--- a/nixpkgs/pkgs/tools/security/sops/default.nix
+++ b/nixpkgs/pkgs/tools/security/sops/default.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "sops";
-  version = "3.5.0";
+  version = "3.6.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "mozilla";
     repo = pname;
-    sha256 = "1515bk0fl0pvdkp402l51gdg63bmqlh89sglss6prc1qqvv5v2xy";
+    sha256 = "0xl53rs8jzq5yz4wi0vzsr6ajsaf2x2n1h3x7krk02a9839y6f18";
   };
 
-  vendorSha256 = "0yryc799k4563wy53z7amraj89cyprklj0lfv207530hwv5i5gm6";
+  vendorSha256 = "1cpm06dyc6lb3a9apfggyi16alb2yijvyan1gbrl8r9fwlqvdpjk";
+
+  doCheck = false;
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/mozilla/sops";
@@ -19,4 +21,4 @@ buildGoModule rec {
     maintainers = [ maintainers.marsam ];
     license = licenses.mpl20;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/security/ssh-audit/default.nix b/nixpkgs/pkgs/tools/security/ssh-audit/default.nix
index e615cec945dd..884a3d90c4f6 100644
--- a/nixpkgs/pkgs/tools/security/ssh-audit/default.nix
+++ b/nixpkgs/pkgs/tools/security/ssh-audit/default.nix
@@ -1,53 +1,44 @@
-{ fetchFromGitHub, python3Packages, stdenv }:
+{ lib, fetchFromGitHub, python3Packages }:
 
-python3Packages.buildPythonPackage rec {
+python3Packages.buildPythonApplication rec {
   pname = "ssh-audit";
-  version = "1.7.0";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
-    owner = "arthepsy";
+    owner = "jtesta";
     repo = pname;
-    rev = "refs/tags/v${version}";
-    sha256 = "0akrychkdym9f6830ysq787c9nc0bkyqvy4h72498lyghwvwc2ms";
+    rev = "v${version}";
+    sha256 = "1z1h9nsgfaxdnkr9dvc0yzc23b3wz436rg2fycg2glwjhhal8az7";
   };
 
-  checkInputs = [
-    python3Packages.pytest
-    python3Packages.pytestcov
-  ];
-
-  checkPhase = ''
-    py.test --cov-report= --cov=ssh-audit -v test
-  '';
-
   postPatch = ''
-    printf %s "$setupPy" > setup.py
-    mkdir scripts
-    cp ssh-audit.py scripts/ssh-audit
-    mkdir ssh_audit
-    cp ssh-audit.py ssh_audit/__init__.py
+    cp ./README.md pypi/sshaudit/
+    cp ./ssh-audit.py pypi/sshaudit/sshaudit.py
+    mv pypi/* .
+    ls -lah
   '';
 
-  setupPy = /* py */ ''
-    from distutils.core import setup
-    setup(
-      author='arthepsy',
-      description='${meta.description}',
-      license='${meta.license.spdxId}',
-      name='${pname}',
-      packages=['ssh_audit'],
-      scripts=['scripts/ssh-audit'],
-      url='${meta.homepage}',
-      version='${version}',
-    )
-  '';
+  checkInputs = with python3Packages; [
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    "test_resolve_error"
+    "test_resolve_hostname_without_records"
+    "test_resolve_ipv4"
+    "test_resolve_ipv6"
+    "test_resolve_ipv46_both"
+    "test_resolve_ipv46_order"
+    "test_invalid_host"
+    "test_invalid_port"
+    "test_not_connected_socket"
+    "test_ssh2_server_simple"
+  ];
 
-  meta = {
+  meta = with lib; {
     description = "Tool for ssh server auditing";
-    homepage = "https://github.com/arthepsy/ssh-audit";
-    license = stdenv.lib.licenses.mit;
-    maintainers = [
-      stdenv.lib.maintainers.tv
-    ];
+    homepage = "https://github.com/jtesta/ssh-audit";
+    license = licenses.mit;
+    maintainers = with maintainers; [ tv ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/security/sshguard/default.nix b/nixpkgs/pkgs/tools/security/sshguard/default.nix
index bad1c9fd16d5..6c2298f6729f 100644
--- a/nixpkgs/pkgs/tools/security/sshguard/default.nix
+++ b/nixpkgs/pkgs/tools/security/sshguard/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, autoreconfHook, yacc, flex}:
 
 stdenv.mkDerivation rec {
-  version = "2.4.0";
+  version = "2.4.1";
   pname = "sshguard";
 
   src = fetchurl {
     url = "mirror://sourceforge/sshguard/${pname}-${version}.tar.gz";
-    sha256 = "1h6n2xyh58bshplbdqlr9rbnf3lz7nydnq5m2hkq15is3c4s8p06";
+    sha256 = "0rrwmx91ifvc61wkld8gjkmfsq0ixxmf7m8fg4addkkxwvk04pc7";
   };
 
   doCheck = true;
diff --git a/nixpkgs/pkgs/tools/security/sshuttle/default.nix b/nixpkgs/pkgs/tools/security/sshuttle/default.nix
index 4d0ae5e051d0..6f620904872d 100644
--- a/nixpkgs/pkgs/tools/security/sshuttle/default.nix
+++ b/nixpkgs/pkgs/tools/security/sshuttle/default.nix
@@ -1,29 +1,33 @@
-{ stdenv, python3Packages, fetchurl, makeWrapper
-, coreutils, iptables, nettools, openssh, procps }:
+{ stdenv
+, python3Packages
+, makeWrapper
+, coreutils
+, iptables
+, nettools
+, openssh
+, procps
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "sshuttle";
-  version = "0.78.5";
+  version = "1.0.3";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0vp13xwrhx4m6zgsyzvai84lkq9mzkaw47j58dk0ll95kaymk2x8";
+    sha256 = "0fff1c88669a20bb6a4e7331960673a3a02a2e04ff163e4c9299496646edcf61";
   };
 
   patches = [ ./sudo.patch ];
 
   nativeBuildInputs = [ makeWrapper python3Packages.setuptools_scm ];
-  buildInputs =
-    [ coreutils openssh procps nettools ]
-    ++ stdenv.lib.optionals stdenv.isLinux [ iptables ];
 
   checkInputs = with python3Packages; [ mock pytest pytestcov pytestrunner flake8 ];
 
-  postInstall = let
-    mapPath = f: x: stdenv.lib.concatStringsSep ":" (map f x);
-  in ''
-  wrapProgram $out/bin/sshuttle \
-    --prefix PATH : "${mapPath (x: "${x}/bin") buildInputs}" \
+  runtimeDeps = [ coreutils openssh procps ] ++ stdenv.lib.optionals stdenv.isLinux [ iptables nettools ];
+
+  postInstall = ''
+    wrapProgram $out/bin/sshuttle \
+      --prefix PATH : "${stdenv.lib.makeBinPath runtimeDeps}" \
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/tools/security/thc-hydra/default.nix b/nixpkgs/pkgs/tools/security/thc-hydra/default.nix
index aa36901e46b9..f83d2675c6ac 100644
--- a/nixpkgs/pkgs/tools/security/thc-hydra/default.nix
+++ b/nixpkgs/pkgs/tools/security/thc-hydra/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "thc-hydra";
-  version = "9.0";
+  version = "9.1";
 
   src = fetchFromGitHub {
     owner = "vanhauser-thc";
     repo = "thc-hydra";
     rev = "v${version}";
-    sha256 = "09d2f55wky1iabnl871d4r6dyyvr8zhp47d9j1p6d0pvdv93kl4z";
+    sha256 = "1533h9z5jdlazwy0z7ll2753i507wq55by7rm9lh6y59889p0hps";
   };
 
   postPatch = let
diff --git a/nixpkgs/pkgs/tools/security/tor/default.nix b/nixpkgs/pkgs/tools/security/tor/default.nix
index 1e033fa31cee..c535bf706708 100644
--- a/nixpkgs/pkgs/tools/security/tor/default.nix
+++ b/nixpkgs/pkgs/tools/security/tor/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchurl, pkgconfig, libevent, openssl, zlib, torsocks
-, libseccomp, systemd, libcap, lzma, zstd, scrypt
+, libseccomp, systemd, libcap, lzma, zstd, scrypt, nixosTests
 
 # for update.nix
 , writeScript
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "tor";
-  version = "0.4.3.5";
+  version = "0.4.3.6";
 
   src = fetchurl {
     url = "https://dist.torproject.org/${pname}-${version}.tar.gz";
-    sha256 = "0s6qspi102drn1nk3gfxs51x992xarc44gkfsi8y3l48wr50wsk1";
+    sha256 = "0qmcrkjip0ywq77232m73pjwqiaj0q2klwklqlpbw575shvhcbba";
   };
 
   outputs = [ "out" "geoip" ];
@@ -54,19 +54,22 @@ stdenv.mkDerivation rec {
     rm -rf $out/share/tor
   '';
 
-  passthru.updateScript = import ./update.nix {
-    inherit (stdenv) lib;
-    inherit
-      writeScript
-      common-updater-scripts
-      bash
-      coreutils
-      curl
-      gnupg
-      gnugrep
-      gnused
-      nix
-    ;
+  passthru = {
+    tests.tor = nixosTests.tor;
+    updateScript = import ./update.nix {
+      inherit (stdenv) lib;
+      inherit
+        writeScript
+        common-updater-scripts
+        bash
+        coreutils
+        curl
+        gnupg
+        gnugrep
+        gnused
+        nix
+      ;
+    };
   };
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/tools/security/tor/torsocks.nix b/nixpkgs/pkgs/tools/security/tor/torsocks.nix
index 2ce4c9806eb3..381377032d6e 100644
--- a/nixpkgs/pkgs/tools/security/tor/torsocks.nix
+++ b/nixpkgs/pkgs/tools/security/tor/torsocks.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchgit, autoreconfHook, libcap }:
+{ stdenv, fetchgit, fetchurl, autoreconfHook, libcap }:
 
 stdenv.mkDerivation rec {
   pname = "torsocks";
@@ -12,10 +12,19 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ autoreconfHook ];
 
+  patches = stdenv.lib.optional stdenv.isDarwin
+    (fetchurl {
+       url = "https://trac.torproject.org/projects/tor/raw-attachment/ticket/28538/0001-Fix-macros-for-accept4-2.patch";
+       sha256 = "97881f0b59b3512acc4acb58a0d6dfc840d7633ead2f400fad70dda9b2ba30b0";
+     });
+
   postPatch = ''
     # Patch torify_app()
     sed -i \
       -e 's,\(local app_path\)=`which $1`,\1=`type -P $1`,' \
+      src/bin/torsocks.in
+  '' + stdenv.lib.optionalString stdenv.isLinux ''
+    sed -i \
       -e 's,\(local getcap\)=.*,\1=${libcap}/bin/getcap,' \
       src/bin/torsocks.in
   '';
diff --git a/nixpkgs/pkgs/tools/security/vault/default.nix b/nixpkgs/pkgs/tools/security/vault/default.nix
index e1b6ef808605..eb999b5cedcb 100644
--- a/nixpkgs/pkgs/tools/security/vault/default.nix
+++ b/nixpkgs/pkgs/tools/security/vault/default.nix
@@ -2,13 +2,13 @@
 
 buildGoPackage rec {
   pname = "vault";
-  version = "1.4.2";
+  version = "1.5.3";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "vault";
     rev = "v${version}";
-    sha256 = "0aschysngs6f50plqkqbnhgl6zryd0bpypr50zd45cgww7jvvqd4";
+    sha256 = "149if5s4rdpxgzakh8s79j1fcfcqk1w7gvgchc044xlicl1r49ic";
   };
 
   goPackagePath = "github.com/hashicorp/vault";
@@ -17,10 +17,7 @@ buildGoPackage rec {
 
   nativeBuildInputs = [ installShellFiles ];
 
-  buildFlagsArray = [
-    "-tags='vault'"
-    "-ldflags=\"-X github.com/hashicorp/vault/sdk/version.GitCommit='v${version}'\""
-  ];
+  buildFlagsArray = [ "-tags=vault" "-ldflags=-s -w -X ${goPackagePath}/sdk/version.GitCommit=${src.rev}" ];
 
   postInstall = ''
     echo "complete -C $out/bin/vault vault" > vault.bash
diff --git a/nixpkgs/pkgs/tools/security/vault/vault-bin.nix b/nixpkgs/pkgs/tools/security/vault/vault-bin.nix
index 6b14a834330d..b8a70eb82f94 100644
--- a/nixpkgs/pkgs/tools/security/vault/vault-bin.nix
+++ b/nixpkgs/pkgs/tools/security/vault/vault-bin.nix
@@ -1,30 +1,30 @@
 { stdenv, fetchurl, unzip }:
 
 let
-  version = "1.3.0";
+  version = "1.5.3";
 
   sources = let
     base = "https://releases.hashicorp.com/vault/${version}";
   in {
     x86_64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_amd64.zip";
-      sha256 = "1crfj4gd1qwwa2xidd0pjffv0n6hf5hbhv6568m6zc1ig0qqm6yq";
+      sha256 = "1chhi7piq04j8rgk15rcszqqp37xd9cjj67plr5pgvdps3s1zihy";
     };
     i686-linux = fetchurl {
       url = "${base}/vault_${version}_linux_386.zip";
-      sha256 = "0pyf0kyvxpmx3fwfvin1r0x30r9byx9lyi81894q06xrhiwbqc0l";
+      sha256 = "0jbnvypapang025wfyj6i70jdz3g29ggg7rzmg8xh6gfyhwk3vmb";
     };
     x86_64-darwin = fetchurl {
       url = "${base}/vault_${version}_darwin_amd64.zip";
-      sha256 = "113vnpz9n6y7z2k9jqpfpxqxqbrmd9bhny79yaxqzkfdqw8vyv3g";
+      sha256 = "1m54258lfdr79p2j8janbkhp0a8bs8xbrcr51lqx2s620n7sfbya";
     };
     i686-darwin = fetchurl {
       url = "${base}/vault_${version}_darwin_386.zip";
-      sha256 = "0d191qai0bpl7cyivca26wqgycsj2dz08809z147d1vnrz321v6w";
+      sha256 = "038qkkhlwj86fz9vpcycvv5nb41y8mqypqvhfp0ia11birp8xlsr";
     };
     aarch64-linux = fetchurl {
       url = "${base}/vault_${version}_linux_arm64.zip";
-      sha256 = "1bk5y3knc42mh07gnnn6p109qz908014620h1s0348wp4qfdy49w";
+      sha256 = "1vivkwcy9j9zs7w65k7y8chix8jnii5pz8zck6rlpwgz5vs0h04k";
     };
   };
 
diff --git a/nixpkgs/pkgs/tools/security/verifpal/default.nix b/nixpkgs/pkgs/tools/security/verifpal/default.nix
index e1e5e100bd11..930b44cb4c68 100644
--- a/nixpkgs/pkgs/tools/security/verifpal/default.nix
+++ b/nixpkgs/pkgs/tools/security/verifpal/default.nix
@@ -1,35 +1,31 @@
 { lib
 , fetchgit
-, buildGoPackage
+, buildGoModule
 , pigeon
 }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "verifpal";
-  version = "0.7.5";
-
-  goPackagePath = "github.com/SymbolicSoft/verifpal";
-  goDeps = ./deps.nix;
+  version = "0.13.7";
 
   src = fetchgit {
     url = "https://source.symbolic.software/verifpal/verifpal.git";
-    rev = version;
-    sha256 = "0njgn6j5qg5kgid6ddv23axhw5gwjbayhdjkj4ya08mnxndr284m";
+    rev = "v${version}";
+    sha256 = "1ia3mxwcvcxghga2vvhf6mia59cm3jl7vh8laywh421bfj42sh9d";
   };
 
-  nativeBuildInputs = [ pigeon ];
+  vendorSha256 = "0cmj6h103igg5pcs9c9wrcmrsf0mwp9vbgzf5amsnj1206ryb1p2";
 
-  postPatch = ''
-    sed -e 's|/bin/echo |echo |g' -i Makefile
-  '';
+  doCheck = false;
 
-  buildPhase = ''
-    make -C go/src/$goPackagePath parser linux
-  '';
+  nativeBuildInputs = [ pigeon ];
+
+  subPackages = [ "cmd/verifpal" ];
 
-  installPhase = ''
-    mkdir -p $out/bin
-    cp go/src/$goPackagePath/build/bin/linux/verifpal $out/bin/
+  # goversioninfo is for Windows only and can be skipped during go generate
+  preBuild = ''
+    substituteInPlace cmd/verifpal/main.go --replace "go:generate goversioninfo" "(disabled goversioninfo)"
+    go generate verifpal.com/cmd/verifpal
   '';
 
   meta = {
diff --git a/nixpkgs/pkgs/tools/security/verifpal/deps.nix b/nixpkgs/pkgs/tools/security/verifpal/deps.nix
deleted file mode 100644
index aaa4269416a6..000000000000
--- a/nixpkgs/pkgs/tools/security/verifpal/deps.nix
+++ /dev/null
@@ -1,12 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "github.com/logrusorgru/aurora";
-    fetch = {
-      type = "git";
-      url = "https://github.com/logrusorgru/aurora";
-      rev = "94edacc10f9b";
-      sha256 = "0bhwy3rrd8mwb8xjwf44nj6vmxaj5hdvayvszr1rskkmz08l5v01";
-    };
-  }
-]
diff --git a/nixpkgs/pkgs/tools/security/vulnix/default.nix b/nixpkgs/pkgs/tools/security/vulnix/default.nix
index 59d8b8c08754..d4a3a0c621a1 100644
--- a/nixpkgs/pkgs/tools/security/vulnix/default.nix
+++ b/nixpkgs/pkgs/tools/security/vulnix/default.nix
@@ -1,12 +1,16 @@
-{ stdenv, python3Packages, nix, ronn }:
+{ stdenv
+, python3Packages
+, nix
+, ronn
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "vulnix";
-  version = "1.9.4";
+  version = "1.9.6";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "06dpdsnz1ih0syas3x25s557qpw0f4kmypvxwaffm734djg8klmi";
+    sha256 = "0anyxmqgn4kx102l3qjhh1f2b0cg7mnlapfhriyjw0zyy5gyqvng";
   };
 
   outputs = [ "out" "doc" "man" ];
diff --git a/nixpkgs/pkgs/tools/security/yubikey-agent/default.nix b/nixpkgs/pkgs/tools/security/yubikey-agent/default.nix
new file mode 100644
index 000000000000..5860fb3a03e4
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/yubikey-agent/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, lib, fetchFromGitHub, buildGoModule, libnotify, makeWrapper, pcsclite, pinentry_mac, pkgconfig, darwin }:
+
+buildGoModule rec {
+  pname = "yubikey-agent";
+  version = "0.1.3";
+
+  src = fetchFromGitHub {
+    owner = "FiloSottile";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "07gix5wrakn4z846zhvl66lzwx58djrfnn6m8v7vc69l9jr3kihr";
+  };
+
+  buildInputs =
+    lib.optional stdenv.isLinux (lib.getDev pcsclite)
+    ++ lib.optional stdenv.isDarwin (darwin.apple_sdk.frameworks.PCSC);
+
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
+
+  # pull in go-piv/piv-go#75
+  # once go-piv/piv-go#75 is merged and released, we should
+  # use the released version (and push upstream to do the same)
+  patches = [ ./use-piv-go-75.patch ];
+  postPatch = lib.optionalString stdenv.isLinux ''
+    substituteInPlace main.go --replace 'notify-send' ${libnotify}/bin/notify-send
+  '';
+
+  vendorSha256 = "128mlsagj3im6h0p0ndhzk29ya47g19im9dldx3nmddf2jlccj2h";
+
+  doCheck = false;
+
+  subPackages = [ "." ];
+
+  # On macOS, there isn't a choice of pinentry program, so let's
+  # ensure the nixpkgs-provided one is available
+  postInstall = lib.optionalString stdenv.isDarwin ''
+    wrapProgram $out/bin/yubikey-agent --suffix PATH : $(dirname ${pinentry_mac}/${pinentry_mac.binaryPath})
+  ''
+  # Note: in the next release, upstream provides
+  # contrib/systemd/user/yubikey-agent.service, which we should use
+  # instead
+  # See https://github.com/FiloSottile/yubikey-agent/pull/43
+  + lib.optionalString stdenv.isLinux ''
+    mkdir -p $out/lib/systemd/user
+    substitute ${./yubikey-agent.service} $out/lib/systemd/user/yubikey-agent.service \
+      --replace 'ExecStart=yubikey-agent' "ExecStart=$out/bin/yubikey-agent"
+  '';
+
+  meta = with lib; {
+    description = "A seamless ssh-agent for YubiKeys";
+    license = licenses.bsd3;
+    homepage = "https://filippo.io/yubikey-agent";
+    maintainers = with lib.maintainers; [ philandstuff rawkode ];
+    platforms = platforms.darwin ++ platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/security/yubikey-agent/use-piv-go-75.patch b/nixpkgs/pkgs/tools/security/yubikey-agent/use-piv-go-75.patch
new file mode 100644
index 000000000000..73967d817d96
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/yubikey-agent/use-piv-go-75.patch
@@ -0,0 +1,22 @@
+From 547695fff9cbfc4037168cdeb07cfe16bd89b6db Mon Sep 17 00:00:00 2001
+From: Philip Potter <philip.g.potter@gmail.com>
+Date: Sat, 25 Jul 2020 21:59:50 +0100
+Subject: [PATCH] Pull in piv-go#75
+
+---
+ go.mod | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/go.mod b/go.mod
+index d4d13c8..f75be2d 100644
+--- a/go.mod
++++ b/go.mod
+@@ -7,3 +7,5 @@ require (
+ 	github.com/gopasspw/gopass v1.9.1
+ 	golang.org/x/crypto v0.0.0-20200429183012-4b2356b1ed79
+ )
++
++replace github.com/go-piv/piv-go => github.com/rawkode/piv-go v1.5.1-0.20200725154545-1c3200c75a28
+-- 
+2.27.0
+
diff --git a/nixpkgs/pkgs/tools/security/yubikey-agent/yubikey-agent.service b/nixpkgs/pkgs/tools/security/yubikey-agent/yubikey-agent.service
new file mode 100644
index 000000000000..7a91f902544e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/yubikey-agent/yubikey-agent.service
@@ -0,0 +1,35 @@
+[Unit]
+Description=Seamless ssh-agent for YubiKeys
+Documentation=https://filippo.io/yubikey-agent
+
+[Service]
+ExecStart=yubikey-agent -l %t/yubikey-agent/yubikey-agent.sock
+ExecReload=/bin/kill -HUP $MAINPID
+ProtectSystem=strict
+ProtectKernelLogs=yes
+ProtectKernelModules=yes
+ProtectKernelTunables=yes
+ProtectControlGroups=yes
+ProtectClock=yes
+ProtectHostname=yes
+PrivateTmp=yes
+PrivateDevices=yes
+PrivateUsers=yes
+IPAddressDeny=any
+RestrictAddressFamilies=AF_UNIX
+RestrictNamespaces=yes
+RestrictRealtime=yes
+RestrictSUIDSGID=yes
+LockPersonality=yes
+CapabilityBoundingSet=
+SystemCallFilter=@system-service
+SystemCallFilter=~@privileged @resources
+SystemCallErrorNumber=EPERM
+SystemCallArchitectures=native
+NoNewPrivileges=yes
+KeyringMode=private
+UMask=0177
+RuntimeDirectory=yubikey-agent
+
+[Install]
+WantedBy=default.target
diff --git a/nixpkgs/pkgs/tools/security/zmap/cmake-json-0.14-fix.patch b/nixpkgs/pkgs/tools/security/zmap/cmake-json-0.14-fix.patch
new file mode 100644
index 000000000000..1c132948af6a
--- /dev/null
+++ b/nixpkgs/pkgs/tools/security/zmap/cmake-json-0.14-fix.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8bd825f..694d9b2 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -72,6 +72,8 @@ if(WITH_JSON)
+     endif()
+ 
+     add_definitions("-DJSON")
++    # JSON_CFLAGS is a list, i.e. semicolon-separated, convert it to space-separated
++    string(REPLACE ";" " " JSON_CFLAGS "${JSON_CFLAGS}")
+     set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${JSON_CFLAGS}")
+ endif()
+ 
diff --git a/nixpkgs/pkgs/tools/security/zmap/default.nix b/nixpkgs/pkgs/tools/security/zmap/default.nix
index ef36b21641bc..e2350b67c7d7 100644
--- a/nixpkgs/pkgs/tools/security/zmap/default.nix
+++ b/nixpkgs/pkgs/tools/security/zmap/default.nix
@@ -13,6 +13,11 @@ stdenv.mkDerivation rec {
     sha256 = "0yaahaiawkjk020hvsb8pndbrk8k10wxkfba1irp12a4sj6rywcs";
   };
 
+  patches = [
+    # fix build with json-c 0.14 https://github.com/zmap/zmap/pull/609
+    ./cmake-json-0.14-fix.patch
+  ];
+
   cmakeFlags = [ "-DRESPECT_INSTALL_PREFIX_CONFIG=ON" ];
   dontUseCmakeBuildDir = true;
 
diff --git a/nixpkgs/pkgs/tools/system/bpytop/default.nix b/nixpkgs/pkgs/tools/system/bpytop/default.nix
new file mode 100644
index 000000000000..a4505360b5b1
--- /dev/null
+++ b/nixpkgs/pkgs/tools/system/bpytop/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, python3Packages, fetchFromGitHub, makeWrapper, substituteAll }:
+
+stdenv.mkDerivation rec {
+  pname = "bpytop";
+  version = "1.0.25";
+
+  src = fetchFromGitHub {
+    owner = "aristocratos";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0sxwrckv2j1283h888pyyxply2g93x6jn6cghqh207igmcg4iaj3";
+  };
+
+  buildInputs = [ makeWrapper ];
+  propagatedBuildInputs = with python3Packages; [ python psutil ];
+
+  dontBuild = true;
+
+  postPatch = ''
+    sed -i -e "s#/usr/\[local/\]#$out/#g" \
+           -e "s#/usr/{td}#$out/#g" \
+           -e "s#THEME_DIR: str = \"\"#THEME_DIR: str = \"$out/share/bpytop/themes\"#" \
+      ./bpytop.py
+  '';
+
+  installPhase = ''
+    mkdir -p $out/{bin,libexec,share/bpytop}/
+    cp -r ./themes $out/share/bpytop/
+    cp ./bpytop.py $out/libexec/
+
+    makeWrapper ${python3Packages.python.interpreter} $out/bin/bpytop \
+      --add-flags "$out/libexec/bpytop.py" \
+      --prefix PYTHONPATH : "$PYTHONPATH"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "A resource monitor; python port of bashtop";
+    homepage = src.meta.homepage;
+    license = licenses.apsl20;
+    maintainers = with maintainers; [ aw ];
+    platforms = with platforms; linux ++ freebsd ++ darwin;
+
+    # https://github.com/NixOS/nixpkgs/pull/94625#issuecomment-668509399
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/system/cm-rgb/default.nix b/nixpkgs/pkgs/tools/system/cm-rgb/default.nix
new file mode 100644
index 000000000000..acfe440b5d5c
--- /dev/null
+++ b/nixpkgs/pkgs/tools/system/cm-rgb/default.nix
@@ -0,0 +1,63 @@
+{ stdenv
+, buildPythonApplication
+, fetchFromGitHub
+, atk
+, gobject-introspection
+, wrapGAppsHook
+, click
+, hidapi
+, psutil
+, pygobject3
+}:
+
+buildPythonApplication rec {
+  pname = "cm-rgb";
+  version = "0.3.4";
+
+  src = fetchFromGitHub {
+    owner = "gfduszynski";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "04brldaa2zpvzkcg43i5hpbj03d1nqrgiplm5nh4shn12cif19ag";
+  };
+
+  nativeBuildInputs = [
+    atk
+
+    # Populate GI_TYPELIB_PATH
+    gobject-introspection
+    wrapGAppsHook
+  ];
+
+  propagatedBuildInputs = [
+    click
+    hidapi
+    psutil
+    pygobject3
+  ];
+
+  postInstall = ''
+    # Remove this line when/if this PR gets merged:
+    # https://github.com/gfduszynski/cm-rgb/pull/43 
+    install -m0755 scripts/cm-rgb-gui $out/bin/cm-rgb-gui
+
+    mkdir -p $out/etc/udev/rules.d
+    echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="2516", ATTR{idProduct}=="0051", TAG+="uaccess"' \
+      > $out/etc/udev/rules.d/60-cm-rgb.rules
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Control AMD Wraith Prism RGB LEDs";
+    longDescription = ''
+      cm-rgb controls AMD Wraith Prism RGB LEDS.
+
+      To permit non-root accounts to change use this utility on
+      NixOS, add this package to <literal>services.udev.packages</literal>
+      in <filename>configuration.nix</filename>.
+    '';
+    homepage = "https://github.com/gfduszynski/cm-rgb";
+    license = licenses.mit;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ danieldk ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/system/collectd/default.nix b/nixpkgs/pkgs/tools/system/collectd/default.nix
index f625a441ba3f..278ab9056ad9 100644
--- a/nixpkgs/pkgs/tools/system/collectd/default.nix
+++ b/nixpkgs/pkgs/tools/system/collectd/default.nix
@@ -8,12 +8,12 @@ let
   plugins = callPackage ./plugins.nix args;
 in
 stdenv.mkDerivation rec {
-  version = "5.11.0";
+  version = "5.12.0";
   pname = "collectd";
 
   src = fetchurl {
     url = "https://collectd.org/files/${pname}-${version}.tar.bz2";
-    sha256 = "1cjxksxdqcqdccz1nbnc2fp6yy84qq361ynaq5q8bailds00mc9p";
+    sha256 = "1mh97afgq6qgmpvpr84zngh58m0sl1b4wimqgvvk376188q09bjv";
   };
 
   nativeBuildInputs = [ pkgconfig autoreconfHook ];
diff --git a/nixpkgs/pkgs/tools/system/colorls/Gemfile.lock b/nixpkgs/pkgs/tools/system/colorls/Gemfile.lock
index 1b84a550e482..d138a167ce74 100644
--- a/nixpkgs/pkgs/tools/system/colorls/Gemfile.lock
+++ b/nixpkgs/pkgs/tools/system/colorls/Gemfile.lock
@@ -2,7 +2,7 @@ GEM
   remote: https://rubygems.org/
   specs:
     clocale (0.0.4)
-    colorls (1.3.3)
+    colorls (1.4.2)
       clocale (~> 0)
       filesize (~> 0)
       manpages (~> 0)
diff --git a/nixpkgs/pkgs/tools/system/colorls/gemset.nix b/nixpkgs/pkgs/tools/system/colorls/gemset.nix
index c16f87f457ff..2e4a26ff9182 100644
--- a/nixpkgs/pkgs/tools/system/colorls/gemset.nix
+++ b/nixpkgs/pkgs/tools/system/colorls/gemset.nix
@@ -15,10 +15,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07rvm3g65slnqzal718qwfmgsjnkysx00jn8dnv96317yx0mxfx6";
+      sha256 = "0sw377wklld5zn1la0smxc2bg4rph2xf9d0h3zmxhmds06lb92db";
       type = "gem";
     };
-    version = "1.3.3";
+    version = "1.4.2";
   };
   filesize = {
     groups = ["default"];
diff --git a/nixpkgs/pkgs/tools/system/ctop/default.nix b/nixpkgs/pkgs/tools/system/ctop/default.nix
index 1c46caaf9324..6cb8e4821608 100644
--- a/nixpkgs/pkgs/tools/system/ctop/default.nix
+++ b/nixpkgs/pkgs/tools/system/ctop/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1x4li44vg0l1x205v9a971cgphplxhsrn59q97gmj9cfy4m7jdfw";
 
+  doCheck = false;
+
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version} -X main.build=v${version}" ];
 
   meta = with lib; {
@@ -21,4 +23,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ apeyroux marsam ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/system/datefudge/default.nix b/nixpkgs/pkgs/tools/system/datefudge/default.nix
index 839e14a20d8a..819071f3f068 100644
--- a/nixpkgs/pkgs/tools/system/datefudge/default.nix
+++ b/nixpkgs/pkgs/tools/system/datefudge/default.nix
@@ -1,24 +1,22 @@
-{ stdenv, fetchgit }:
+{ stdenv, fetchgit, fetchpatch }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "datefudge";
-  version = "1.23";
+  version = "1.24";
 
   src = fetchgit {
-    url = "https://salsa.debian.org/debian/datefudge.git";
-    rev = "090d3aace17640478f7f5119518b2f4196f62617";
-    sha256 = "0r9g8v9xnv60hq3j20wqy34kyig3sc2pisjxl4irn7jjx85f1spv";
+    url = "https://salsa.debian.org/debian/${pname}.git";
+    rev = "debian/${version}";
+    sha256 = "1nh433yx4y4djp0bs6aawqbwk7miq7fsbs9wpjlyh2k9dvil2lrm";
   };
 
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace Makefile \
      --replace "/usr" "/" \
      --replace "-o root -g root" ""
     substituteInPlace datefudge.sh \
      --replace "@LIBDIR@" "$out/lib/"
-    '';
-
-  preInstallPhase = "mkdir -P $out/lib/datefudge";
+  '';
 
   installFlags = [ "DESTDIR=$(out)" ];
 
diff --git a/nixpkgs/pkgs/tools/system/ddrescueview/default.nix b/nixpkgs/pkgs/tools/system/ddrescueview/default.nix
index 838873b7557f..6c8e9c56cdc9 100644
--- a/nixpkgs/pkgs/tools/system/ddrescueview/default.nix
+++ b/nixpkgs/pkgs/tools/system/ddrescueview/default.nix
@@ -1,20 +1,24 @@
 { stdenv, lib, fetchurl, fpc, lazarus, atk, cairo, gdk-pixbuf, glib, gtk2, libX11, pango }:
 
-stdenv.mkDerivation rec {
-  name = "ddrescueview-0.4alpha3";
+let
+  versionBase = "0.4";
+  versionSuffix = "alpha4";
+in stdenv.mkDerivation rec {
+  pname = "ddrescueview";
+  version = "${versionBase}${versionSuffix}";
+  name = "ddrescueview-0.4alpha4";
 
   src = fetchurl {
-    name = "${name}.tar.xz";
-    url = "mirror://sourceforge/ddrescueview/ddrescueview-source-0.4%7Ealpha3.tar.xz";
-    sha256 = "0603jisxkswfyh93s3i20f8ns4yf83dmgmy0lg5001rvaw9mkw9j";
+    name = "ddrescueview-${versionBase}${versionSuffix}.tar.xz";
+    url = "mirror://sourceforge/ddrescueview/ddrescueview-source-${versionBase}~${versionSuffix}.tar.xz";
+    sha256 = "0v159nlc0lrqznbbwi7zda619is5h2rjk55gz6cl807j0kd19ycc";
   };
+  sourceRoot = "ddrescueview-source-${versionBase}~${versionSuffix}/source";
 
   nativeBuildInputs = [ fpc lazarus ];
 
   buildInputs = [ atk cairo gdk-pixbuf glib gtk2 libX11 pango ];
 
-  sourceRoot = "source";
-
   NIX_LDFLAGS = "--as-needed -rpath ${lib.makeLibraryPath buildInputs}";
 
   buildPhase = ''
@@ -24,9 +28,8 @@ stdenv.mkDerivation rec {
   installPhase = ''
     install -Dt $out/bin ddrescueview
     cd ../resources/linux
-    install -Dt $out/share/applications ddrescueview.desktop
-    install -Dt $out/share/icons/hicolor/32x32/apps ddrescueview.xpm
-    install -Dt $out/share/man/man1 ddrescueview.1
+    mkdir -p "$out/share"
+    cp -ar applications icons man $out/share
   '';
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/system/disk-filltest/default.nix b/nixpkgs/pkgs/tools/system/disk-filltest/default.nix
index 074b06aa4e66..7bcf592012a4 100644
--- a/nixpkgs/pkgs/tools/system/disk-filltest/default.nix
+++ b/nixpkgs/pkgs/tools/system/disk-filltest/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "disk-filltest";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "bingmann";
     repo = "disk-filltest";
     rev = "v${version}";
-    sha256 = "1vcb43hdln7xlklz1n0fsfp5x1j9pn829wbad4b110hrc7nwrnvm";
+    sha256 = "0qmcf5k5j7946wsbxrw4rqfj48mwl3r6kb4l3gppl97k7iyni6kj";
   };
 
   preBuild = ''
diff --git a/nixpkgs/pkgs/tools/system/efibootmgr/default.nix b/nixpkgs/pkgs/tools/system/efibootmgr/default.nix
index 3323ac248974..dd898de0fc26 100644
--- a/nixpkgs/pkgs/tools/system/efibootmgr/default.nix
+++ b/nixpkgs/pkgs/tools/system/efibootmgr/default.nix
@@ -25,7 +25,7 @@ stdenv.mkDerivation rec {
   # We have no LTO here since commit 22284b07.
   postPatch = if stdenv.isi686 then "sed '/^CFLAGS/s/-flto//' -i Make.defaults" else null;
 
-  makeFlags = [ "EFIDIR=nixos" ];
+  makeFlags = [ "EFIDIR=nixos" "PKG_CONFIG=${stdenv.cc.targetPrefix}pkg-config" ];
 
   installFlags = [ "prefix=$(out)" ];
 
diff --git a/nixpkgs/pkgs/tools/system/facter/default.nix b/nixpkgs/pkgs/tools/system/facter/default.nix
index b6a04f808a4c..170f3109a0a6 100644
--- a/nixpkgs/pkgs/tools/system/facter/default.nix
+++ b/nixpkgs/pkgs/tools/system/facter/default.nix
@@ -2,24 +2,24 @@
 
 stdenv.mkDerivation rec {
   pname = "facter";
-  version = "3.14.11";
+  version = "3.14.13";
 
   src = fetchFromGitHub {
-    sha256 = "1x7m11bda86xkr8mncy50nga9q3gnvnklcvwwpa7frka99kgai26";
+    sha256 = "1rink4xxh7f2ckqfl4pc3ljm9rfb5c4npsqzlys4f2snmq4d0h39";
     rev = version;
     repo = pname;
     owner = "puppetlabs";
   };
 
-  CXXFLAGS = "-fpermissive -Wno-error=catch-value";
-  NIX_LDFLAGS = "-lblkid";
+  CXXFLAGS = stdenv.lib.optionalString stdenv.cc.isGNU "-fpermissive -Wno-error=catch-value";
+  NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isLinux "-lblkid";
 
   cmakeFlags = [
-    "-DFACTER_RUBY=${ruby}/lib/libruby.so"
+    "-DFACTER_RUBY=${ruby}/lib/libruby${stdenv.hostPlatform.extensions.sharedLibrary}"
     "-DRUBY_LIB_INSTALL=${placeholder "out"}/lib/ruby"
   ];
 
-  NIX_CFLAGS_COMPILE = "-Wno-error=deprecated-copy";
+  NIX_CFLAGS_COMPILE = "-Wno-error";
 
   nativeBuildInputs = [ cmake ];
   buildInputs = [ boost cpp-hocon curl leatherman libwhereami libyamlcpp openssl ruby utillinux ];
@@ -31,6 +31,6 @@ stdenv.mkDerivation rec {
     description = "A system inventory tool";
     license = licenses.asl20;
     maintainers = [ maintainers.womfoo ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/fio/default.nix b/nixpkgs/pkgs/tools/system/fio/default.nix
index 8b9f1085a9e0..77a85e014734 100644
--- a/nixpkgs/pkgs/tools/system/fio/default.nix
+++ b/nixpkgs/pkgs/tools/system/fio/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fio";
-  version = "3.20";
+  version = "3.22";
 
   src = fetchFromGitHub {
     owner  = "axboe";
     repo   = "fio";
     rev    = "fio-${version}";
-    sha256 = "1ahdcyrj7jgm4qx5s0q7gvbpqr2w57psazsf0wswp1v3mb9w4zg4";
+    sha256 = "16p17l1xbqqkgppvwmfaywknhk4ybafnx8hm56ffd8bls9vaqw5m";
   };
 
   buildInputs = [ python zlib ]
diff --git a/nixpkgs/pkgs/tools/system/freeipmi/default.nix b/nixpkgs/pkgs/tools/system/freeipmi/default.nix
index 35fb630d2380..76654d145399 100644
--- a/nixpkgs/pkgs/tools/system/freeipmi/default.nix
+++ b/nixpkgs/pkgs/tools/system/freeipmi/default.nix
@@ -1,12 +1,12 @@
 { fetchurl, stdenv, libgcrypt, readline, libgpgerror }:
 
 stdenv.mkDerivation rec {
-  version = "1.6.5";
+  version = "1.6.6";
   pname = "freeipmi";
 
   src = fetchurl {
     url = "mirror://gnu/freeipmi/${pname}-${version}.tar.gz";
-    sha256 = "1ncf1s84752xaq07h36wrxa5ww1167s2bizkww0igxv8djyddwk1";
+    sha256 = "1ava5s0babfwx6dqi87phzyzjjgyah7avhljrxrjwn2cniwh38yg";
   };
 
   buildInputs = [ libgcrypt readline libgpgerror ];
diff --git a/nixpkgs/pkgs/tools/system/gotop/default.nix b/nixpkgs/pkgs/tools/system/gotop/default.nix
index 0d8deb11b9e1..f5d7ff4759e7 100644
--- a/nixpkgs/pkgs/tools/system/gotop/default.nix
+++ b/nixpkgs/pkgs/tools/system/gotop/default.nix
@@ -11,7 +11,12 @@ buildGoModule rec {
     sha256 = "10qfzmq1wdgpvv319khzicalix1x4fqava0wry3bzz84k5c9dabs";
   };
 
-  vendorSha256 = "1crphp41bfivfmfp3cl7pjca3ypds6mr3847msd4wvfq4g6imk55";
+  runVend = true;
+  vendorSha256 = "09vdhdgj74ifdhl6rmxddkvk7ls26jn8gswzcxf9389zkjzi7822";
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
 
   meta = with stdenv.lib; {
     description = "A terminal based graphical activity monitor inspired by gtop and vtop";
@@ -20,4 +25,4 @@ buildGoModule rec {
     maintainers = [ maintainers.magnetophon ];
     platforms = platforms.unix;
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/system/htop/default.nix b/nixpkgs/pkgs/tools/system/htop/default.nix
index c9adf5377e23..fe4622f3381e 100644
--- a/nixpkgs/pkgs/tools/system/htop/default.nix
+++ b/nixpkgs/pkgs/tools/system/htop/default.nix
@@ -1,23 +1,22 @@
-{ lib, fetchurl, stdenv, ncurses,
-IOKit, python3 }:
+{ lib, fetchFromGitHub, stdenv, autoreconfHook
+, ncurses, IOKit, python3
+}:
 
 stdenv.mkDerivation rec {
   pname = "htop";
-  version = "2.2.0";
+  version = "3.0.1";
 
-  src = fetchurl {
-    url = "https://hisham.hm/htop/releases/${version}/${pname}-${version}.tar.gz";
-    sha256 = "0mrwpb3cpn3ai7ar33m31yklj64c3pp576vh1naqff6f21pq5mnr";
+  src = fetchFromGitHub {
+    owner = "htop-dev";
+    repo = pname;
+    rev = version;
+    sha256 = "0kjlphdvwwbj91kk91s4ksc954d3c2bznddzx2223jmb1bn9rcsa";
   };
 
-  nativeBuildInputs = [ python3 ];
-  buildInputs =
-    [ ncurses ] ++
-    lib.optionals stdenv.isDarwin [ IOKit ];
+  nativeBuildInputs = [ autoreconfHook python3 ];
 
-  prePatch = ''
-    patchShebangs scripts/MakeHeader.py
-  '';
+  buildInputs = [ ncurses
+  ] ++ lib.optionals stdenv.isDarwin [ IOKit ];
 
   meta = with stdenv.lib; {
     description = "An interactive process viewer for Linux";
diff --git a/nixpkgs/pkgs/tools/system/inxi/default.nix b/nixpkgs/pkgs/tools/system/inxi/default.nix
index bb3ba6ec3713..4a59facb27b2 100644
--- a/nixpkgs/pkgs/tools/system/inxi/default.nix
+++ b/nixpkgs/pkgs/tools/system/inxi/default.nix
@@ -22,13 +22,13 @@ let
     ++ recommendedDisplayInformationPrograms;
 in stdenv.mkDerivation rec {
   pname = "inxi";
-  version = "3.1.03-1";
+  version = "3.1.06-1";
 
   src = fetchFromGitHub {
     owner = "smxi";
     repo = "inxi";
     rev = version;
-    sha256 = "0539hvlq021wxhbwzdp7qliiq1jgw60mxlwrwx0z2x8qi1zqdzg6";
+    sha256 = "11z90x7rwzm7krkcnmcs9f41i1d284vrj0aqk2xnvl3p79vx25f7";
   };
 
   buildInputs = [ perl makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/system/jump/default.nix b/nixpkgs/pkgs/tools/system/jump/default.nix
index fe0138783d3b..9966ace14f4f 100644
--- a/nixpkgs/pkgs/tools/system/jump/default.nix
+++ b/nixpkgs/pkgs/tools/system/jump/default.nix
@@ -13,6 +13,8 @@ buildGoModule rec {
 
   vendorSha256 = "1500vim2lmkkls758pwhlx3piqbw6ap0nnhdwz9pcxih4s4as2nk";
 
+  doCheck = false;
+
   outputs = [ "out" "man"];
   postInstall = ''
     install -D --mode=444 man/j.1 man/jump.1 -t $man/man/man1/
@@ -34,7 +36,6 @@ buildGoModule rec {
     '';
     homepage = "https://github.com/gsamokovarov/jump";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ sondr3 ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/system/kmon/default.nix b/nixpkgs/pkgs/tools/system/kmon/default.nix
index afb59b25059e..a2610327f618 100644
--- a/nixpkgs/pkgs/tools/system/kmon/default.nix
+++ b/nixpkgs/pkgs/tools/system/kmon/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "kmon";
-  version = "1.2.0";
+  version = "1.4.0";
 
   src = fetchFromGitHub {
     owner = "orhun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1l2zdp5f9spkfx1dhxyj32791kgvc8hqjr1kk75vds4c1wgwq8gk";
+    sha256 = "1f9q4bc1kr1hgwf8byj13d6vsfs97wz7x10zwa82iv9b0wb1lr5w";
   };
 
-  cargoSha256 = "08a7gr70a3rh7a52gglck16qlwngb6ap723lg3b3mxmkyigdf6i6";
+  cargoSha256 = "1xy8rkba9idd0w4bnczmv4ll9awvar99vb7s0jd25fjbzqqlz820";
 
   nativeBuildInputs = [ python3 ];
 
diff --git a/nixpkgs/pkgs/tools/system/logrotate/default.nix b/nixpkgs/pkgs/tools/system/logrotate/default.nix
index 3e357d37d837..4c891e3e5b33 100644
--- a/nixpkgs/pkgs/tools/system/logrotate/default.nix
+++ b/nixpkgs/pkgs/tools/system/logrotate/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "logrotate";
-  version = "3.16.0";
+  version = "3.17.0";
 
   src = fetchFromGitHub {
     owner = "logrotate";
     repo = "logrotate";
     rev = version;
-    sha256 = "0dsz9cfh9glicrnh1rc3jrc176mimnasslihqnj0aknkv8ajq1jh";
+    sha256 = "133k4y24p918v4dva6dh70bdfv13jvwl2vlhq0mybrs3ripvnh4h";
   };
 
   # Logrotate wants to access the 'mail' program; to be done.
diff --git a/nixpkgs/pkgs/tools/system/monit/default.nix b/nixpkgs/pkgs/tools/system/monit/default.nix
index 7cec79ff25ea..8be921b385e0 100644
--- a/nixpkgs/pkgs/tools/system/monit/default.nix
+++ b/nixpkgs/pkgs/tools/system/monit/default.nix
@@ -6,11 +6,11 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "monit-5.26.0";
+  name = "monit-5.27.0";
 
   src = fetchurl {
     url = "${meta.homepage}dist/${name}.tar.gz";
-    sha256 = "1hpk0agxi7g9vmfqvrwr5wk7pr52wdlv3vs0j3l2p6mgldl4bz47";
+    sha256 = "197w59wkg6izlj6p7xbx0n6ksvm6pym9pzh24nakl6agcbpxxh6q";
   };
 
   nativeBuildInputs = [ bison flex ];
diff --git a/nixpkgs/pkgs/tools/system/netdata/default.nix b/nixpkgs/pkgs/tools/system/netdata/default.nix
index 5d856e795300..f1bb1f9d62d0 100644
--- a/nixpkgs/pkgs/tools/system/netdata/default.nix
+++ b/nixpkgs/pkgs/tools/system/netdata/default.nix
@@ -1,6 +1,7 @@
 { stdenv, callPackage, fetchFromGitHub, autoreconfHook, pkgconfig
 , CoreFoundation, IOKit, libossp_uuid
 , curl, libcap,  libuuid, lm_sensors, zlib, fetchpatch
+, nixosTests
 , withCups ? false, cups
 , withDBengine ? true, libuv, lz4, judy
 , withIpmi ? (!stdenv.isDarwin), freeipmi
@@ -14,14 +15,14 @@ with stdenv.lib;
 let
   go-d-plugin = callPackage ./go.d.plugin.nix {};
 in stdenv.mkDerivation rec {
-  version = "1.22.1";
+  version = "1.25.0";
   pname = "netdata";
 
   src = fetchFromGitHub {
     owner = "netdata";
     repo = "netdata";
     rev = "v${version}";
-    sha256 = "1hliv4d3pa8c3inz0bcl6nngfmp8vwnvh7smbwqiq7isfjijbpr6";
+    sha256 = "0wsgs0slqmj9q5prwlx7d4692lc4c42g0sv35r33vlxnfdwimfh5";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
@@ -71,12 +72,13 @@ in stdenv.mkDerivation rec {
     rm -r $out/sbin
   '';
 
+  passthru.tests.netdata = nixosTests.netdata;
+
   meta = {
     description = "Real-time performance monitoring tool";
-    homepage = "https://my-netdata.io/";
+    homepage = "https://www.netdata.cloud/";
     license = licenses.gpl3;
     platforms = platforms.unix;
     maintainers = [ maintainers.lethalman ];
   };
-
 }
diff --git a/nixpkgs/pkgs/tools/system/netdata/go.d.plugin.nix b/nixpkgs/pkgs/tools/system/netdata/go.d.plugin.nix
index 2e397da8a817..e2392df495f0 100644
--- a/nixpkgs/pkgs/tools/system/netdata/go.d.plugin.nix
+++ b/nixpkgs/pkgs/tools/system/netdata/go.d.plugin.nix
@@ -2,16 +2,18 @@
 
 buildGoModule rec {
   pname = "netdata-go.d.plugin";
-  version = "0.18.0";
+  version = "0.20.0";
 
   src = fetchFromGitHub {
     owner = "netdata";
     repo = "go.d.plugin";
     rev = "v${version}";
-    sha256 = "15h4075lwqh58ssdgyq34jj8r4dga0sz7h18dzy4nir75p8a0s7b";
+    sha256 = "0wd1wg56q955jm5ksq2zqzlms1nlxx7n7vv43l096k1578fv93jv";
   };
 
-  vendorSha256 = "1pw9pb3rdjzf2dx1p1jiqxs7qhlpjki7fy74nyxza5wzrv4317sj";
+  vendorSha256 = "1k84l97fw4s9jdwbka4p168m7l7wil0c4cpijis8ypj3g1xfrw90";
+
+  doCheck = false;
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
@@ -26,4 +28,4 @@ buildGoModule rec {
     license = licenses.gpl3;
     maintainers = [ maintainers.lethalman ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/system/nvtop/default.nix b/nixpkgs/pkgs/tools/system/nvtop/default.nix
index cd9ec7c7082d..59636fb5dc80 100644
--- a/nixpkgs/pkgs/tools/system/nvtop/default.nix
+++ b/nixpkgs/pkgs/tools/system/nvtop/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, cmake, nvidia_x11, cudatoolkit, ncurses }:
+{ stdenv, fetchFromGitHub, cmake, cudatoolkit, ncurses, addOpenGLRunpath }:
 
 stdenv.mkDerivation rec {
   pname = "nvtop";
@@ -6,22 +6,26 @@ stdenv.mkDerivation rec {
 
   src = fetchFromGitHub {
     owner = "Syllo";
-    repo  = "nvtop";
+    repo = "nvtop";
     rev = version;
     sha256 = "1b6yz54xddip1r0k8cbqg41dpyhds18fj29bj3yf40xvysklb0f4";
   };
 
   cmakeFlags = [
     "-DNVML_INCLUDE_DIRS=${cudatoolkit}/include"
-    "-DNVML_LIBRARIES=${nvidia_x11}/lib/libnvidia-ml.so"
+    "-DNVML_LIBRARIES=${cudatoolkit}/targets/x86_64-linux/lib/stubs/libnvidia-ml.so"
     "-DCMAKE_BUILD_TYPE=Release"
   ];
 
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ ncurses nvidia_x11 cudatoolkit ];
+  nativeBuildInputs = [ cmake addOpenGLRunpath ];
+  buildInputs = [ ncurses cudatoolkit ];
+
+  postFixup = ''
+    addOpenGLRunpath $out/bin/nvtop
+  '';
 
   meta = with stdenv.lib; {
-    description = "A (h)top like like task monitor for NVIDIA GPUs";
+    description = "A (h)top like task monitor for NVIDIA GPUs";
     homepage = "https://github.com/Syllo/nvtop";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/nixpkgs/pkgs/tools/system/pciutils/default.nix b/nixpkgs/pkgs/tools/system/pciutils/default.nix
index e76ab496ef98..cf6616417ed0 100644
--- a/nixpkgs/pkgs/tools/system/pciutils/default.nix
+++ b/nixpkgs/pkgs/tools/system/pciutils/default.nix
@@ -1,18 +1,26 @@
-{ stdenv, fetchurl, pkgconfig, zlib, kmod, which }:
+{ stdenv, fetchurl, pkgconfig, zlib, kmod, which
+, static ? stdenv.targetPlatform.isStatic
+, darwin ? null
+}:
 
 stdenv.mkDerivation rec {
-  name = "pciutils-3.6.4"; # with release-date database
+  name = "pciutils-3.7.0"; # with release-date database
 
   src = fetchurl {
     url = "mirror://kernel/software/utils/pciutils/${name}.tar.xz";
-    sha256 = "0mb0f2phdcmp4kfiqsszn2k6nlln0w160ffzrjjv4bbfjwrgfzzn";
+    sha256 = "1ss0rnfsx8gvqjxaji4mvbhf9xyih4cadmgadbwwv8mnx1xvjh4x";
   };
 
   nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ zlib kmod which ];
+  buildInputs = [ zlib kmod which ] ++
+    stdenv.lib.optional stdenv.hostPlatform.isDarwin darwin.apple_sdk.frameworks.IOKit;
+
+  preConfigure = if stdenv.cc.isGNU then null else ''
+    substituteInPlace Makefile --replace 'CC=$(CROSS_COMPILE)gcc' ""
+  '';
 
   makeFlags = [
-    "SHARED=yes"
+    "SHARED=${if static then "no" else "yes"}"
     "PREFIX=\${out}"
     "STRIP="
     "HOST=${stdenv.hostPlatform.system}"
diff --git a/nixpkgs/pkgs/tools/system/plan9port/builder.sh b/nixpkgs/pkgs/tools/system/plan9port/builder.sh
index 7750de700617..b5196e512f41 100644
--- a/nixpkgs/pkgs/tools/system/plan9port/builder.sh
+++ b/nixpkgs/pkgs/tools/system/plan9port/builder.sh
@@ -24,7 +24,6 @@ configurePhase()
           i?86-*)   echo OBJTYPE=386;;
           *power*)  echo OBJTYPE=power;;
           *sparc*)  echo OBJTYPE=sparc;;
-          *) exit 12
         esac
         if [[ $system =~ .*linux.* ]]; then
           echo SYSVERSION=2.6.x
diff --git a/nixpkgs/pkgs/tools/system/plan9port/default.nix b/nixpkgs/pkgs/tools/system/plan9port/default.nix
index 54e88f5d0699..8164dfa9136d 100644
--- a/nixpkgs/pkgs/tools/system/plan9port/default.nix
+++ b/nixpkgs/pkgs/tools/system/plan9port/default.nix
@@ -89,7 +89,7 @@ stdenv.mkDerivation {
     license = licenses.lpl-102;
     maintainers = with maintainers; [ AndersonTorres bbarker
                                       ftrvxmtrx kovirobi ];
-    platforms = remove "aarch64-linux" platforms.unix;
+    platforms = platforms.unix;
   };
 }
 # TODO: investigate the mouse chording support patch
diff --git a/nixpkgs/pkgs/tools/system/psensor/default.nix b/nixpkgs/pkgs/tools/system/psensor/default.nix
index 49d2747a33e1..afbab3634438 100644
--- a/nixpkgs/pkgs/tools/system/psensor/default.nix
+++ b/nixpkgs/pkgs/tools/system/psensor/default.nix
@@ -5,11 +5,11 @@
 stdenv.mkDerivation rec {
   pname = "psensor";
 
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchurl {
     url = "https://wpitchoune.net/psensor/files/psensor-${version}.tar.gz";
-    sha256 = "1smbidbby4rh14jnh9kn7y64qf486aqnmyxcgacjvkz27cqqnw4r";
+    sha256 = "1ark901va79gfq5p8h8dqypjgm3f8crmj37520q3slwz2rfphkq8";
   };
 
   nativeBuildInputs = [ pkgconfig wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/tools/system/rocm-smi/default.nix b/nixpkgs/pkgs/tools/system/rocm-smi/default.nix
new file mode 100644
index 000000000000..69f523773107
--- /dev/null
+++ b/nixpkgs/pkgs/tools/system/rocm-smi/default.nix
@@ -0,0 +1,30 @@
+{ lib, buildPythonApplication, fetchFromGitHub }:
+
+buildPythonApplication rec {
+  pname = "rocm-smi";
+  version = "3.8.0";
+
+  src = fetchFromGitHub {
+    owner = "RadeonOpenCompute";
+    repo = "ROC-smi";
+    rev = "rocm-${version}";
+    sha256 = "00g9cbni73x9da05lx7hiffp303mdkj1wpxiavfylr4q4z84yhrz";
+  };
+
+  format = "other";
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    install -Dm0755 rocm_smi.py $out/bin/rocm-smi
+  '';
+
+  meta = with lib; {
+    description = "System management interface for AMD GPUs supported by ROCm";
+    homepage = "https://github.com/RadeonOpenCompute/ROC-smi";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ danieldk ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/system/rsyslog/default.nix b/nixpkgs/pkgs/tools/system/rsyslog/default.nix
index 1739e0ad784f..7be7e5b3d379 100644
--- a/nixpkgs/pkgs/tools/system/rsyslog/default.nix
+++ b/nixpkgs/pkgs/tools/system/rsyslog/default.nix
@@ -14,11 +14,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "rsyslog";
-  version = "8.2004.0";
+  version = "8.2006.0";
 
   src = fetchurl {
     url = "https://www.rsyslog.com/files/download/rsyslog/${pname}-${version}.tar.gz";
-    sha256 = "1n97kx6cyyzd4zh6q01fyqi2wq1ah68h95kdc109m1zhfnvxghsz";
+    sha256 = "15wfhw2nmpiyjpp82jxqgcjy7wgbc2fswk5g6rbdqbvghrj9wn6r";
   };
 
   #patches = [ ./fix-gnutls-detection.patch ];
diff --git a/nixpkgs/pkgs/tools/system/s-tui/default.nix b/nixpkgs/pkgs/tools/system/s-tui/default.nix
index 2875bca4a2ac..1192a1762632 100644
--- a/nixpkgs/pkgs/tools/system/s-tui/default.nix
+++ b/nixpkgs/pkgs/tools/system/s-tui/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "s-tui";
-  version = "1.0.0";
+  version = "1.0.1";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "0r5yhlsi5xiy7ii1w4kqkaxz9069v5bbfwi3x3xnxhk51yjfgr8n";
+    sha256 = "1gqrb2xxii43j7kszy7kvv4f6hr8ac4p0m9q8i1xs5fhsqcx186i";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/nixpkgs/pkgs/tools/system/smartmontools/default.nix b/nixpkgs/pkgs/tools/system/smartmontools/default.nix
index f4941df8ebd3..5d9196fcc163 100644
--- a/nixpkgs/pkgs/tools/system/smartmontools/default.nix
+++ b/nixpkgs/pkgs/tools/system/smartmontools/default.nix
@@ -1,4 +1,5 @@
 { stdenv, fetchurl, autoreconfHook
+, mailutils, inetutils
 , IOKit ? null , ApplicationServices ? null }:
 
 let
@@ -24,6 +25,10 @@ in stdenv.mkDerivation rec {
   patches = [ ./smartmontools.patch ];
   postPatch = "cp -v ${driverdb} drivedb.h";
 
+  configureFlags = [
+    "--with-scriptpath=${stdenv.lib.makeBinPath [ mailutils inetutils ]}"
+  ];
+
   nativeBuildInputs = [ autoreconfHook ];
   buildInputs = [] ++ stdenv.lib.optionals stdenv.isDarwin [IOKit ApplicationServices];
   enableParallelBuilding = true;
diff --git a/nixpkgs/pkgs/tools/system/storebrowse/default.nix b/nixpkgs/pkgs/tools/system/storebrowse/default.nix
deleted file mode 100644
index 4324fba87e77..000000000000
--- a/nixpkgs/pkgs/tools/system/storebrowse/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ stdenv, fetchurl, fetchhg, go, sqlite}:
-
-stdenv.mkDerivation rec {
-  name = "storebrowse-20130318212204";
-
-  src = fetchurl {
-    url = "http://viric.name/cgi-bin/storebrowse/tarball/storebrowse-775928f68e53.tar.gz?uuid=775928f68e53";
-    name = "${name}.tar.gz";
-    sha256 = "1yb8qbw95d9561s10k12a6lwv3my8h52arsbfcpizx74dwfsv7in";
-  };
-
-  # This source has license BSD
-  srcGoSqlite = fetchhg {
-    url = "https://code.google.com/p/gosqlite/";
-    rev = "5baefb109e18";
-    sha256 = "0mqfnx06jj15cs8pq9msny2z18x99hgk6mchnaxpg343nzdiz4zk";
-  };
-
-  buildPhase = ''
-    PATH=${go}/bin:$PATH
-    mkdir $TMPDIR/go
-    export GOPATH=$TMPDIR/go
-
-    ${stdenv.lib.optionalString (stdenv.hostPlatform.system == "armv5tel-linux") "export GOARM=5"}
-
-    GOSQLITE=$GOPATH/src/code.google.com/p/gosqlite
-    mkdir -p $GOSQLITE
-    cp -R $srcGoSqlite/* $GOSQLITE/
-    export CGO_CFLAGS=-I${sqlite.dev}/include
-    export CGO_LDFLAGS=-L${sqlite.out}/lib
-    go build -ldflags "-r ${sqlite.out}/lib" -o storebrowse
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp storebrowse $out/bin
-  '';
-
-  meta = {
-    homepage = "http://viric.name/cgi-bin/storebrowse";
-    license = stdenv.lib.licenses.agpl3Plus;
-    broken = true;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/system/stress-ng/default.nix b/nixpkgs/pkgs/tools/system/stress-ng/default.nix
index 5e50c3c87531..9939f9ea1542 100644
--- a/nixpkgs/pkgs/tools/system/stress-ng/default.nix
+++ b/nixpkgs/pkgs/tools/system/stress-ng/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "stress-ng";
-  version = "0.11.10";
+  version = "0.11.19";
 
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0x46shnwllv5knpbxj1vj2aqmxgnfhz582crlacwsinc22n1j18i";
+    sha256 = "0s08qahjc68h5qhnahmb9z19l51p5sw2pmzrlknq1j5900zpa2x5";
   };
 
   postPatch = ''
diff --git a/nixpkgs/pkgs/tools/system/syslog-ng/default.nix b/nixpkgs/pkgs/tools/system/syslog-ng/default.nix
index 238c9ac1f689..eeb2a99740ee 100644
--- a/nixpkgs/pkgs/tools/system/syslog-ng/default.nix
+++ b/nixpkgs/pkgs/tools/system/syslog-ng/default.nix
@@ -7,11 +7,11 @@
 
 stdenv.mkDerivation rec {
   pname = "syslog-ng";
-  version = "3.27.1";
+  version = "3.28.1";
 
   src = fetchurl {
     url = "https://github.com/${pname}/${pname}/releases/download/${pname}-${version}/${pname}-${version}.tar.gz";
-    sha256 = "1cv1kn4jpqyhlhx8w5v557jyc4b2ly2dgkv1hbb8vzgpjwy66k65";
+    sha256 = "1s56q8k69sdrqsh3y9lr4di01fqw7xb49wr0dz75jmz084yg8kmg";
   };
 
   nativeBuildInputs = [ pkgconfig which ];
diff --git a/nixpkgs/pkgs/tools/system/thermald/default.nix b/nixpkgs/pkgs/tools/system/thermald/default.nix
index 51a443b9bde7..ae9e29b6f1dc 100644
--- a/nixpkgs/pkgs/tools/system/thermald/default.nix
+++ b/nixpkgs/pkgs/tools/system/thermald/default.nix
@@ -1,34 +1,64 @@
-{ stdenv, fetchFromGitHub, autoconf, automake, libtool
-, pkgconfig, dbus, dbus-glib, libxml2, autoconf-archive }:
+{ autoconf
+, autoconf-archive
+, automake
+, dbus
+, dbus-glib
+, docbook_xml_dtd_412
+, docbook-xsl-nons
+, fetchFromGitHub
+, gtk-doc
+, libevdev
+, libtool
+, libxml2
+, lzma
+, pkgconfig
+, stdenv
+, upower
+}:
 
 stdenv.mkDerivation rec {
   pname = "thermald";
-  version = "2.1";
+  version = "2.3";
+
+  outputs = [ "out" "devdoc" ];
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "thermal_daemon";
     rev = "v${version}";
-    sha256 = "1k8svy03k57ld6p5d29i0ccrd1gics6kbyx1bkfmw9fh1bbljyf7";
+    sha256 = "0cisaca2c2z1x9xvxc4lr6nl6yqx5bww6brh73m0p1n643jgq1dl";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ autoconf automake libtool dbus dbus-glib libxml2 autoconf-archive ];
-
-  patchPhase = ''sed -e 's/upstartconfdir = \/etc\/init/upstartconfdir = $(out)\/etc\/init/' -i data/Makefile.am'';
+  nativeBuildInputs = [
+    autoconf
+    autoconf-archive
+    automake
+    docbook-xsl-nons
+    docbook_xml_dtd_412
+    gtk-doc
+    libtool
+    pkgconfig
+  ];
 
-  preConfigure = ''
-    export PKG_CONFIG_PATH="${dbus.dev}/lib/pkgconfig:$PKG_CONFIG_PATH"
-    ./autogen.sh
-  '';
+  buildInputs = [
+    dbus
+    dbus-glib
+    libevdev
+    libxml2
+    lzma
+    upower
+  ];
 
   configureFlags = [
     "--sysconfdir=${placeholder "out"}/etc"
     "--localstatedir=/var"
+    "--enable-gtk-doc"
     "--with-dbus-sys-dir=${placeholder "out"}/share/dbus-1/system.d"
     "--with-systemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
   ];
 
+  preConfigure = "NO_CONFIGURE=1 ./autogen.sh";
+
   postInstall = ''
     cp ./data/thermal-conf.xml $out/etc/thermald/
   '';
@@ -36,7 +66,8 @@ stdenv.mkDerivation rec {
   meta = with stdenv.lib; {
     description = "Thermal Daemon";
     homepage = "https://01.org/linux-thermal-daemon";
-    license = licenses.gpl2;
+    changelog = "https://github.com/intel/thermal_daemon/blob/master/README.txt";
+    license = licenses.gpl2Plus;
     platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = with maintainers; [ abbradar ];
   };
diff --git a/nixpkgs/pkgs/tools/system/tre-command/default.nix b/nixpkgs/pkgs/tools/system/tre-command/default.nix
index bc0fa7ea988d..d0f814147414 100644
--- a/nixpkgs/pkgs/tools/system/tre-command/default.nix
+++ b/nixpkgs/pkgs/tools/system/tre-command/default.nix
@@ -1,23 +1,28 @@
-{ rustPlatform, fetchFromGitHub, stdenv }:
+{ rustPlatform, fetchFromGitHub, stdenv, installShellFiles }:
 
 rustPlatform.buildRustPackage rec {
-  pname = "tre";
-  version = "0.2.3";
+  pname = "tre-command";
+  version = "0.3.2";
 
   src = fetchFromGitHub {
     owner = "dduan";
     repo = "tre";
     rev = "v${version}";
-    sha256 = "1fazw2wn738iknbv54gv7qll7d4q2gy9bq1s3f3cv21cdv6bqral";
+    sha256 = "1kb8jwmjhlp9bk08rb6gq3j810cv9bidm28sa417vyykp9a8p2ky";
   };
 
-  cargoSha256 = "16bvnwgjf3kj99d77j1pkldbasxfwy55sj9sv9vf2z6llfmzfabd";
+  cargoSha256 = "0cqkpvq8b2vnqpkd819cdgh4fqr9yns337fgzah4m40ygs25n9iv";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  preFixup = ''
+    installManPage manual/tre.1
+  '';
 
   meta = with stdenv.lib; {
     description = "Tree command, improved";
     homepage = "https://github.com/dduan/tre";
     license = licenses.mit;
     maintainers = [ maintainers.dduan ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/system/tuptime/default.nix b/nixpkgs/pkgs/tools/system/tuptime/default.nix
index acc96998952d..abfc8ae5ac87 100644
--- a/nixpkgs/pkgs/tools/system/tuptime/default.nix
+++ b/nixpkgs/pkgs/tools/system/tuptime/default.nix
@@ -1,28 +1,37 @@
-{ stdenv, fetchFromGitHub, python3 }:
+{ stdenv, fetchFromGitHub
+, makeWrapper, installShellFiles
+, python3, sqlite }:
 
 stdenv.mkDerivation rec {
   pname = "tuptime";
-  version = "4.1.0";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "rfrail3";
     repo = "tuptime";
     rev = version;
-    sha256 = "0p5v1jp6bl0hjv04q3gh11q6dx9z0x61h6svcbvwp5ni0h1bkz1a";
+    sha256 = "0izps85p8pxidfrzp7l4hp221fx3dcgapapsix1zavq6jrsl2qyh";
   };
 
+  nativeBuildInputs = [ makeWrapper installShellFiles ];
+
   buildInputs = [ python3 ];
 
+  outputs = [ "out" "man" ];
+
   installPhase = ''
     mkdir -p $out/bin
-    install -m 755 src/tuptime $out/bin/
+    install -m 755 $src/src/tuptime $out/bin/
 
-    mkdir -p $out/share/man/man1
-    cp src/man/tuptime.1 $out/share/man/man1/
+    installManPage $src/src/man/tuptime.1
+
+    install -Dm 0755 $src/misc/scripts/db-tuptime-migrate-4.0-to-5.0.sh \
+      $out/share/tuptime/db-tuptime-migrate-4.0-to-5.0.sh
+  '';
 
-    # upstream only ships this, there are more scripts there...
-    mkdir -p $out/usr/share/doc/tuptime/contrib
-    cp misc/scripts/uptimed-to-tuptime.py $out/usr/share/doc/tuptime/contrib/
+  preFixup = ''
+    wrapProgram $out/share/tuptime/db-tuptime-migrate-4.0-to-5.0.sh \
+      --prefix PATH : "${stdenv.lib.makeBinPath [ sqlite ]}"
   '';
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/tools/system/zenith/default.nix b/nixpkgs/pkgs/tools/system/zenith/default.nix
index b7912f44cdd6..084dd044feba 100644
--- a/nixpkgs/pkgs/tools/system/zenith/default.nix
+++ b/nixpkgs/pkgs/tools/system/zenith/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "zenith";
-  version = "0.9.0";
+  version = "0.10.1";
 
   src = fetchFromGitHub {
     owner = "bvaisvil";
     repo = pname;
     rev = version;
-    sha256 = "1yfbr8zmcy7zp9s9cqv7qypj2vvhpq09r0398gr7ckjk6v70hhfg";
+    sha256 = "0jz0pjibjiyg0rjmpihxxjhg9cbccvqfr5si5rji585l0zrpdwsg";
   };
 
-  cargoSha256 = "1l4cjcpfghis983y31s54fzjppdnh3wa4anwi7bdsbyvqz3n3ywj";
+  cargoSha256 = "1zkx6sr5xlj7pb91bxvqjib5awscy1rmv4g89xb76dahac8fan6z";
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ IOKit ];
 
@@ -21,6 +21,7 @@ rustPlatform.buildRustPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ bbigras ];
     # doesn't build on aarch64 https://github.com/bvaisvil/zenith/issues/19
+    # see https://github.com/NixOS/nixpkgs/pull/88616
     platforms = platforms.x86;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/aha/default.nix b/nixpkgs/pkgs/tools/text/aha/default.nix
index a823f37d8d2c..1a6d65c52cd8 100644
--- a/nixpkgs/pkgs/tools/text/aha/default.nix
+++ b/nixpkgs/pkgs/tools/text/aha/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "aha";
-  version = "0.5";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
-    sha256 = "0byml4rmpiaalwx69jcixl3yvpvwmwiss1jzgsqwshilb2p4qnmz";
+    sha256 = "1gywad0rvvz3c5balz8cxsnx0562hj2ngzqyr8zsy2mb4pn0lpgv";
     rev = version;
     repo = "aha";
     owner = "theZiz";
@@ -23,6 +23,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/theZiz/aha";
     license = with licenses; [ lgpl2Plus mpl11 ];
     maintainers = with maintainers; [ pSub ];
-    platforms = platforms.linux;
+    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/amber/default.nix b/nixpkgs/pkgs/tools/text/amber/default.nix
index 4afab278370c..22a18b1cffb2 100644
--- a/nixpkgs/pkgs/tools/text/amber/default.nix
+++ b/nixpkgs/pkgs/tools/text/amber/default.nix
@@ -22,6 +22,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/dalance/amber";
     license = with licenses; [ mit ];
     maintainers = [ maintainers.bdesham ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/ansifilter/default.nix b/nixpkgs/pkgs/tools/text/ansifilter/default.nix
index 8ebb5cfd059b..00c8c075ed67 100644
--- a/nixpkgs/pkgs/tools/text/ansifilter/default.nix
+++ b/nixpkgs/pkgs/tools/text/ansifilter/default.nix
@@ -12,6 +12,10 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ boost lua ];
 
+  postPatch = ''
+    substituteInPlace src/makefile --replace "CC=g++" "CC=c++"
+  '';
+
   makeFlags = [
     "PREFIX=${placeholder "out"}"
     "conf_dir=/etc/ansifilter"
@@ -26,6 +30,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.andre-simon.de/doku/ansifilter/en/ansifilter.php";
     license = licenses.gpl3;
     maintainers = [ maintainers.Adjective-Object ];
-    platforms = platforms.linux;
+    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/choose/default.nix b/nixpkgs/pkgs/tools/text/choose/default.nix
new file mode 100644
index 000000000000..26192732511f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/choose/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "choose";
+  version = "1.3.1";
+
+  src = fetchFromGitHub {
+    owner = "theryangeary";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0j3861pxqw0lnamb201c7h5w7npzyiwwb6c1xzxjv72m2ccvz76j";
+  };
+
+  cargoSha256 = "1p18926pfff1yayb2i28v0nz37j52hqqv7244yfrzgidi29kyvbc";
+
+  meta = with stdenv.lib; {
+    description = "A human-friendly and fast alternative to cut and (sometimes) awk";
+    homepage = "https://github.com/theryangeary/choose";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ sohalt ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/chroma/default.nix b/nixpkgs/pkgs/tools/text/chroma/default.nix
new file mode 100644
index 000000000000..438681e1728f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/chroma/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "chroma";
+  version = "0.8.1";
+
+  src = fetchFromGitHub {
+    owner  = "alecthomas";
+    repo   = "chroma";
+    rev    = "v${version}";
+    sha256 = "1gwwfn26aipzzvyy466gi6r54ypfy3ylnbi8c4xwch9pkgw16w98";
+  };
+
+  vendorSha256 = "16cnc4scgkx8jan81ymha2q1kidm6hzsnip5mmgbxpqcc2h7hv9m";
+
+  subPackages = [ "cmd/chroma" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/alecthomas/chroma";
+    description = "A general purpose syntax highlighter in pure Go";
+    license = licenses.mit;
+    maintainers = [ maintainers.sternenseemann ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/cmigemo/default.nix b/nixpkgs/pkgs/tools/text/cmigemo/default.nix
new file mode 100644
index 000000000000..c84299c68436
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/cmigemo/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, fetchurl, gzip, libiconv, nkf, perl, skk-dicts, which }:
+
+stdenv.mkDerivation {
+  pname = "cmigemo";
+  version = "1.3e";
+
+  src = fetchFromGitHub {
+    owner = "koron";
+    repo = "cmigemo";
+    rev = "5c014a885972c77e67d0d17d367d05017c5873f7";
+    sha256 = "0xrblwhaf70m0knkd5584iahaq84rlk0926bhdsrzmakpw77hils";
+  };
+
+  nativeBuildInputs = [ gzip libiconv nkf perl which ];
+
+  postUnpack = ''
+    cp ${skk-dicts}/share/SKK-JISYO.L source/dict/
+  '';
+
+  patches = [ ./no-http-tool-check.patch ];
+
+  makeFlags = [ "INSTALL=install" ];
+
+  buildPhase = if stdenv.isDarwin then "make osx-all" else "make gcc-all";
+
+  installTargets = [ (if stdenv.isDarwin then "osx-install" else "gcc-install") ];
+
+  meta = with stdenv.lib; {
+    description = "A tool that supports Japanese incremental search with Romaji";
+    homepage = "https://www.kaoriya.net/software/cmigemo";
+    license = licenses.mit;
+    maintainers = [ maintainers.cohei ];
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/cmigemo/no-http-tool-check.patch b/nixpkgs/pkgs/tools/text/cmigemo/no-http-tool-check.patch
new file mode 100644
index 000000000000..518bfa0e6171
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/cmigemo/no-http-tool-check.patch
@@ -0,0 +1,23 @@
+diff --git a/configure b/configure
+index 4480261..2fb9b34 100755
+--- a/configure
++++ b/configure
+@@ -28,18 +28,6 @@ do
+   esac
+ done
+ 
+-# Check HTTP access tool
+-if CHECK_COMMAND curl ; then
+-  PROGRAM_HTTP="curl -O"
+-elif CHECK_COMMAND wget ; then
+-  PROGRAM_HTTP="wget"
+-elif CHECK_COMMAND fetch ; then
+-  PROGRAM_HTTP="fetch"
+-else
+-  echo "ERROR: Require one of HTTP access tools (curl, wget or fetch)."
+-  exit 1
+-fi
+-
+ # Check encoding filter
+ if CHECK_COMMAND qkc ; then
+   PROGRAM_ENCODEFILTER="qkc -q -u"
diff --git a/nixpkgs/pkgs/tools/text/codesearch/default.nix b/nixpkgs/pkgs/tools/text/codesearch/default.nix
index 7f706cf13765..37336e63efe6 100644
--- a/nixpkgs/pkgs/tools/text/codesearch/default.nix
+++ b/nixpkgs/pkgs/tools/text/codesearch/default.nix
@@ -14,8 +14,6 @@ buildGoPackage rec {
     sha256 = "12bv3yz0l3bmsxbasfgv7scm9j719ch6pmlspv4bd4ix7wjpyhny";
   };
 
-  goDeps = ./deps.nix;
-
   meta = {
     description = "Fast, indexed regexp search over large file trees";
     homepage = "https://github.com/google/codesearch";
diff --git a/nixpkgs/pkgs/tools/text/codesearch/deps.nix b/nixpkgs/pkgs/tools/text/codesearch/deps.nix
deleted file mode 100644
index 2d1dad706340..000000000000
--- a/nixpkgs/pkgs/tools/text/codesearch/deps.nix
+++ /dev/null
@@ -1,3 +0,0 @@
-# This file was generated by go2nix.
-[
-]
diff --git a/nixpkgs/pkgs/tools/text/coloursum/default.nix b/nixpkgs/pkgs/tools/text/coloursum/default.nix
index f38ada46c119..38f544496d5e 100644
--- a/nixpkgs/pkgs/tools/text/coloursum/default.nix
+++ b/nixpkgs/pkgs/tools/text/coloursum/default.nix
@@ -19,7 +19,6 @@ rustPlatform.buildRustPackage rec {
     description = "Colourise your checksum output";
     homepage = "https://github.com/ticky/coloursum";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ fgaz ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/csvkit/default.nix b/nixpkgs/pkgs/tools/text/csvkit/default.nix
index 7a0240fc7301..9e02265e2dc0 100644
--- a/nixpkgs/pkgs/tools/text/csvkit/default.nix
+++ b/nixpkgs/pkgs/tools/text/csvkit/default.nix
@@ -1,37 +1,34 @@
-{ lib, python3, glibcLocales }:
+{ lib, fetchpatch, python3 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "csvkit";
-  version = "1.0.4";
+  version = "1.0.5";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "1830lb95rh1iyi3drlwxzb6y3pqkii0qiyzd40c1kvhvaf1s6lqk";
+    sha256 = "1ffmbzk4rxnl1yhqfl58v7kvl5m9cbvjm8v7xp4mvr00sgs91lvv";
   };
 
+  patches = [
+    # Fixes a failing dbf related test. Won't be needed on 1.0.6 or later.
+    (fetchpatch{
+      url = "https://github.com/wireservice/csvkit/commit/5f22e664121b13d9ff005a9206873a8f97431dca.patch";
+      sha256 = "1kg00z65x7l6dnm5nfsr5krs8m7mv23hhb1inkaqf5m5fpkpnvv7";
+    })
+  ];
+
   propagatedBuildInputs = with python3.pkgs; [
     agate
     agate-excel
     agate-dbf
-    # sql test fail with agate-sql-0.5.4
-    (agate-sql.overridePythonAttrs(old: rec {
-      version = "0.5.3";
-      src = python3.pkgs.fetchPypi {
-        inherit (old) pname;
-        inherit version;
-        sha256 = "1d6rbahmdix7xi7ma2v86fpk5yi32q5dba5vama35w5mmn2pnyw7";
-      };}))
+    agate-sql
     six
   ];
 
   checkInputs = with python3.pkgs; [
-    glibcLocales nose
+    nose pytestCheckHook
   ];
 
-  checkPhase = ''
-    LC_ALL="en_US.UTF-8" nosetests -e test_csvsql
-  '';
-
   meta = with lib; {
     description = "A suite of command-line tools for converting to and working with CSV";
     maintainers = with maintainers; [ vrthra ];
diff --git a/nixpkgs/pkgs/tools/text/diffr/default.nix b/nixpkgs/pkgs/tools/text/diffr/default.nix
index 016cc40977b2..4fa7814ad000 100644
--- a/nixpkgs/pkgs/tools/text/diffr/default.nix
+++ b/nixpkgs/pkgs/tools/text/diffr/default.nix
@@ -24,6 +24,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/mookid/diffr";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ davidtwco ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/discount/default.nix b/nixpkgs/pkgs/tools/text/discount/default.nix
index 5a4dfd5de854..a2c6ec8a9e08 100644
--- a/nixpkgs/pkgs/tools/text/discount/default.nix
+++ b/nixpkgs/pkgs/tools/text/discount/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  version = "2.2.6";
+  version = "2.2.7";
   pname = "discount";
 
   src = fetchFromGitHub {
     owner = "Orc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1y066jkxfas0vdixbqq66j9p00a102sbfgq5gbrblfczqjrmc38w";
+    sha256 = "0p2gznrsvv82zxbajqir8y2ap1ribbgagqg1bzhv3i81p2byhjh7";
   };
 
   patches = ./fix-configure-path.patch;
diff --git a/nixpkgs/pkgs/tools/text/epubcheck/default.nix b/nixpkgs/pkgs/tools/text/epubcheck/default.nix
index 914fe0067355..b40769e55222 100644
--- a/nixpkgs/pkgs/tools/text/epubcheck/default.nix
+++ b/nixpkgs/pkgs/tools/text/epubcheck/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "epubcheck";
-  version = "4.2.2";
+  version = "4.2.4";
 
   src = fetchzip {
     url = "https://github.com/w3c/epubcheck/releases/download/v${version}/epubcheck-${version}.zip";
-    sha256 = "0vz7k6i6y60ml20pbw2p9iqy6kxw4ziqszg6hbgz102x1jk8788d";
+    sha256 = "02iy62b9wa5shxggflx99kv2q9xkilcsq94s0gbfq4m2aqjgzfwx";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/text/fanficfare/default.nix b/nixpkgs/pkgs/tools/text/fanficfare/default.nix
index 6fc27bdf00cb..1dbe45143631 100644
--- a/nixpkgs/pkgs/tools/text/fanficfare/default.nix
+++ b/nixpkgs/pkgs/tools/text/fanficfare/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "FanFicFare";
-  version = "3.19.0";
+  version = "3.21.0";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "01cr4941sg6is6k6sajlbr6hs5s47aq9xhp7gadhq4h3x6dilj40";
+    sha256 = "16hklfbww6ibmjr32gg98nlnzl4dwanz6lm3fzg2x3vd7d54m92c";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/nixpkgs/pkgs/tools/text/fastmod/default.nix b/nixpkgs/pkgs/tools/text/fastmod/default.nix
new file mode 100644
index 000000000000..d15683894a2f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/fastmod/default.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, fetchFromGitHub
+, rustPlatform
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "fastmod";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "facebookincubator";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0089a17h0wgan3fs6x1la35lzjs1pib7p81wqkh3zcwvx8ffa8z8";
+  };
+
+  cargoSha256 = "02nkxjwfiljndmi0pv98chfsw9vmjzgmp5r14mchpayp4943qk9m";
+
+  buildInputs = stdenv.lib.optional stdenv.isDarwin Security;
+
+  meta = with stdenv.lib; {
+    description = "A utility that makes sweeping changes to large, shared code bases";
+    homepage = "https://github.com/facebookincubator/fastmod";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jduan ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/gist/default.nix b/nixpkgs/pkgs/tools/text/gist/default.nix
index a4a26e139fb2..d2676b379970 100644
--- a/nixpkgs/pkgs/tools/text/gist/default.nix
+++ b/nixpkgs/pkgs/tools/text/gist/default.nix
@@ -4,8 +4,8 @@ buildRubyGem rec {
   inherit ruby;
   name = "${gemName}-${version}";
   gemName = "gist";
-  version = "5.1.0";
-  source.sha256 = "0s69y6hi5iq5k6317j1kjmhi3mk586j1543q8wa608grwcmbq3fw";
+  version = "6.0.0";
+  source.sha256 = "0qnd1jqd7b04871v4l73grcmi7c0pivm8nsfrqvwivm4n4b3c2hd";
 
   meta = with lib; {
     description = "Upload code to https://gist.github.com (or github enterprise)";
diff --git a/nixpkgs/pkgs/tools/text/gjo/default.nix b/nixpkgs/pkgs/tools/text/gjo/default.nix
index 74a5c87a760e..28af709c30e0 100644
--- a/nixpkgs/pkgs/tools/text/gjo/default.nix
+++ b/nixpkgs/pkgs/tools/text/gjo/default.nix
@@ -14,8 +14,6 @@ buildGoModule rec {
     sha256 = "07halr0jzds4rya6hlvp45bjf7vg4yf49w5q60mch05hk8qkjjdw";
   };
 
-  doCheck = true;
-
   vendorSha256 = "0sjjj9z1dhilhpc8pq4154czrb79z9cm044jvn75kxcjv6v5l2m5";
 
   meta = with stdenv.lib; {
@@ -24,4 +22,4 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
   };
-}
\ No newline at end of file
+}
diff --git a/nixpkgs/pkgs/tools/text/glogg/default.nix b/nixpkgs/pkgs/tools/text/glogg/default.nix
index 90c1419ef30e..dff7262bed2b 100644
--- a/nixpkgs/pkgs/tools/text/glogg/default.nix
+++ b/nixpkgs/pkgs/tools/text/glogg/default.nix
@@ -1,21 +1,34 @@
-{ mkDerivation, stdenv, fetchurl, qmake, boost }:
+{ mkDerivation, stdenv, fetchFromGitHub, qmake, boost }:
 
 mkDerivation rec {
-
   pname = "glogg";
   version = "1.1.4";
 
-  src = fetchurl {
-    url = "https://glogg.bonnefon.org/files/${pname}-${version}.tar.gz";
-    sha256 = "0nwnfk9bcz2k7rf08w2cb6qipzdhwmxznik44jxmn9gwxdrdq78c";
+  src = fetchFromGitHub {
+    owner = "nickbnf";
+    repo = "glogg";
+    rev = "v${version}";
+    sha256 = "0hf1c2m8n88frmxmyn0ndr8129p7iky49nq565sw1asaydm5z6pb";
   };
 
+  postPatch = stdenv.lib.optionalString stdenv.isDarwin ''
+    substituteInPlace glogg.pro \
+      --replace "boost_program_options-mt" "boost_program_options"
+  '';
+
   nativeBuildInputs = [ qmake ];
   buildInputs = [ boost ];
 
-  qmakeFlags = [ "glogg.pro" ];
+  qmakeFlags = [ "VERSION=${version}" ];
   enableParallelBuilding = true;
 
+  postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+    mkdir -p $out/Applications
+    mv $out/bin/glogg.app $out/Applications/glogg.app
+    rm -fr $out/{bin,share}
+    wrapQtApp $out/Applications/glogg.app/Contents/MacOS/glogg
+  '';
+
   meta = with stdenv.lib; {
     description = "The fast, smart log explorer";
     longDescription = ''
@@ -23,7 +36,7 @@ mkDerivation rec {
     '';
     homepage = "https://glogg.bonnefon.org/";
     license = licenses.gpl3Plus;
-    platforms = platforms.linux;
+    platforms = platforms.unix;
     maintainers = with maintainers; [ c0bw3b ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/hyx/default.nix b/nixpkgs/pkgs/tools/text/hyx/default.nix
index 83fdabb8f46f..c2b055be7df9 100644
--- a/nixpkgs/pkgs/tools/text/hyx/default.nix
+++ b/nixpkgs/pkgs/tools/text/hyx/default.nix
@@ -1,14 +1,25 @@
 { lib, stdenv, fetchurl }:
-
+let
+  # memstream — POSIX memory streams for BSD
+  memstream = fetchurl {
+    url = "https://piumarta.com/software/memstream/memstream-0.1.tar.gz";
+    sha256 = "0kvdb897g7nyviaz72arbqijk2g2wa61cmi3l5yh48rzr49r3a3a";
+  };
+in
 stdenv.mkDerivation rec {
-  name = "hyx-0.1.5";
+  pname = "hyx";
+  version = "2020-06-09";
 
   src = fetchurl {
-    url = "https://yx7.cc/code/hyx/${name}.tar.xz";
-    sha256 = "0gd8fbdyw12jwffa5dgcql4ry22xbdhqdds1qwzk1rkcrkgnc1mg";
+    url = "https://yx7.cc/code/hyx/hyx-${lib.replaceStrings [ "-" ] [ "." ] version}.tar.xz";
+    sha256 = "1x8dmll93hrnj24kn5knpwj36y6r1v2ygwynpjwrg2hwd4c1a8hi";
   };
 
-  patches = [ ./no-wall-by-default.patch ];
+  postUnpack = lib.optionalString stdenv.isDarwin ''
+    tar --strip=1 -C $sourceRoot -xf ${memstream} --wildcards "memstream-0.1/memstream.[hc]"
+  '';
+
+  patches = lib.optional stdenv.isDarwin ./memstream.patch;
 
   installPhase = ''
     install -vD hyx $out/bin/hyx
@@ -19,6 +30,6 @@ stdenv.mkDerivation rec {
     homepage = "https://yx7.cc/code/";
     license = licenses.mit;
     maintainers = with maintainers; [ fpletz ];
-    platforms = platforms.linux;
+    platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/hyx/memstream.patch b/nixpkgs/pkgs/tools/text/hyx/memstream.patch
new file mode 100644
index 000000000000..a02509ced762
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/hyx/memstream.patch
@@ -0,0 +1,31 @@
+diff -Naur hyx-2020.06.09.org/Makefile hyx-2020.06.09/Makefile
+--- hyx-2020.06.09.org/Makefile	2020-06-09 15:19:50.000000000 +0300
++++ hyx-2020.06.09/Makefile	2020-07-22 11:46:40.000000000 +0300
+@@ -1,6 +1,6 @@
+ 
+ all: CFLAGS ?= -O2 -Wl,-s \
+-               -Wl,-z,relro,-z,now -fpic -pie -D_FORTIFY_SOURCE=2 -fstack-protector-all
++               -D_FORTIFY_SOURCE=2 -fstack-protector-all
+ all: CFLAGS += -std=c99 -pedantic -Wall -Wextra -DNDEBUG
+ all: hyx
+ 
+@@ -13,7 +13,7 @@
+ hyx: *.h *.c
+ 	$(CC) \
+ 		$(CFLAGS) \
+-		hyx.c common.c blob.c history.c view.c input.c \
++		hyx.c common.c blob.c history.c view.c input.c memstream.c \
+ 		-o hyx
+ 
+ clean:
+diff -Naur hyx-2020.06.09.org/view.c hyx-2020.06.09/view.c
+--- hyx-2020.06.09.org/view.c	2020-06-09 15:19:50.000000000 +0300
++++ hyx-2020.06.09/view.c	2020-07-22 11:49:09.000000000 +0300
+@@ -4,6 +4,7 @@
+ #include "view.h"
+ #include "input.h"
+ #include "ansi.h"
++#include "memstream.h"
+ 
+ #include <stdlib.h>
+ #include <stdio.h>
diff --git a/nixpkgs/pkgs/tools/text/hyx/no-wall-by-default.patch b/nixpkgs/pkgs/tools/text/hyx/no-wall-by-default.patch
deleted file mode 100644
index 48ee20eff179..000000000000
--- a/nixpkgs/pkgs/tools/text/hyx/no-wall-by-default.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- hyx-0.1.5.org/Makefile	2018-06-02 17:14:37.000000000 +0100
-+++ hyx-0.1.5/Makefile	2018-11-10 09:25:49.569961762 +0000
-@@ -1,7 +1,7 @@
- 
- all: CFLAGS ?= -O2 -Wl,-s \
-                -Wl,-z,relro,-z,now -fpic -pie -D_FORTIFY_SOURCE=2 -fstack-protector-all
--all: CFLAGS += -std=c99 -pedantic -Wall -Wextra -DNDEBUG
-+all: CFLAGS += -std=c99 -DNDEBUG
- all: hyx
- 
- debug: CFLAGS ?= -O0 -g \
diff --git a/nixpkgs/pkgs/tools/text/kdiff3/default.nix b/nixpkgs/pkgs/tools/text/kdiff3/default.nix
index f41de9baffc0..9921862b798e 100644
--- a/nixpkgs/pkgs/tools/text/kdiff3/default.nix
+++ b/nixpkgs/pkgs/tools/text/kdiff3/default.nix
@@ -6,11 +6,11 @@
 
 mkDerivation rec {
   pname = "kdiff3";
-  version = "1.8.2";
+  version = "1.8.4";
 
   src = fetchurl {
     url = "https://download.kde.org/stable/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0s5vsm1avzv88b6mf2pp20c2sz0srrj52iiqpnwi3p4ihivm8wgv";
+    sha256 = "1f1vyhvc31yfxspv5lzw8qjd2w8x74s2fmij1921m307g84qxqbn";
   };
 
   nativeBuildInputs = [ extra-cmake-modules kdoctools wrapGAppsHook ];
diff --git a/nixpkgs/pkgs/tools/text/languagetool/default.nix b/nixpkgs/pkgs/tools/text/languagetool/default.nix
index fccd2174a6d6..0dd01d382ed0 100644
--- a/nixpkgs/pkgs/tools/text/languagetool/default.nix
+++ b/nixpkgs/pkgs/tools/text/languagetool/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "LanguageTool";
-  version = "4.9.1";
+  version = "5.0";
 
   src = fetchzip {
     url = "https://www.languagetool.org/download/${pname}-${version}.zip";
-    sha256 = "0hvzckb92yijzmp2vphjp1wgql3xqq0xd83v5x6pbhziq9yxc5yh";
+    sha256 = "1jyd4z62ldwhqx9r7v4b9k4pl300wr4b7ggj4f0yjf0gpwg7l9p7";
   };
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ jre ];
diff --git a/nixpkgs/pkgs/tools/text/mdbook/default.nix b/nixpkgs/pkgs/tools/text/mdbook/default.nix
index 9ca92a21db1c..9cfdc9c9b7e7 100644
--- a/nixpkgs/pkgs/tools/text/mdbook/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdbook/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook";
-  version = "0.3.7";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "rust-lang-nursery";
     repo = "mdBook";
     rev = "v${version}";
-    sha256 = "0a5i842aqa5xaii5lfrnks0ldavbhbd3bl4f2d442i1ahbin5b32";
+    sha256 = "0rkl5k7a9a0vx06jqvbgki2bwag0ar2pcbg3qi88xnjnnmphzpzj";
   };
 
-  cargoSha256 = "1qx3447y684b7y18lgk9cc37if2ld42jnmy1kak191q6rjh5ssh7";
+  cargoSha256 = "1zhlb6wnjnayq833h62nm3ndlhiz1qajw8w5ccc88b8q8m4ipd7c";
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ CoreServices ];
 
@@ -20,6 +20,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rust-lang-nursery/mdbook";
     license = [ licenses.mpl20 ];
     maintainers = [ maintainers.havvy ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/mdcat/default.nix b/nixpkgs/pkgs/tools/text/mdcat/default.nix
index 314a2acf5757..277c7417ce96 100644
--- a/nixpkgs/pkgs/tools/text/mdcat/default.nix
+++ b/nixpkgs/pkgs/tools/text/mdcat/default.nix
@@ -2,30 +2,31 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdcat";
-  version = "0.18.2";
+  version = "0.21.1";
 
   src = fetchFromGitHub {
     owner = "lunaryorn";
     repo = pname;
     rev = "mdcat-${version}";
-    sha256 = "0rbfx7951ascgd16jx0d9vcr46ca1v040dc0kfcdfisr6s9ifygw";
+    hash = "sha256-O7LlbSkxcyHQiTHYB/QBJVlShzTSzud3VJDIQ1ScvM4=";
   };
 
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isDarwin Security;
 
-  cargoSha256 = "1j70l8g49qm4dbcb15ww1prasqhyf9ygprf65fg9p39jcs6j5gcv";
+  cargoSha256 = "sha256-pvhYKyFraMI4w5nq6L8qs/ONSNDTHElhZnZmD5mmAZs=";
 
   checkInputs = [ ansi2html ];
   checkPhase = ''
     # Skip tests that use the network and that include files.
-    cargo test -- --skip terminal::iterm2 \
-      --skip magic::tests::detect_mimetype_of_svg_image \
-      --skip magic::tests::detect_mimetype_of_png_image \
+    cargo test -- \
       --skip magic::tests::detect_mimetype_of_larger_than_magic_param_bytes_max_length \
       --skip magic::tests::detect_mimetype_of_magic_param_bytes_max_length \
+      --skip magic::tests::detect_mimetype_of_png_image \
+      --skip magic::tests::detect_mimetype_of_svg_image \
       --skip resources::tests::read_url_with_http_url_fails_when_status_404 \
-      --skip resources::tests::read_url_with_http_url_returns_content_when_status_200
+      --skip resources::tests::read_url_with_http_url_returns_content_when_status_200 \
+      --skip iterm2_tests_render_md_samples_images_md
   '';
 
   meta = with stdenv.lib; {
@@ -33,6 +34,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/lunaryorn/mdcat";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ davidtwco ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/miller/default.nix b/nixpkgs/pkgs/tools/text/miller/default.nix
index 3b8fbdb64298..28f2c54729b8 100644
--- a/nixpkgs/pkgs/tools/text/miller/default.nix
+++ b/nixpkgs/pkgs/tools/text/miller/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   pname = "miller";
 
-  version = "5.7.0";
+  version = "5.9.1";
 
   src = fetchFromGitHub {
     owner = "johnkerl";
     repo = "miller";
     rev = "v${version}";
-    sha256 = "1lmin69rf9lp3b64ga7li4sz7mm0gqapsbk1nb29l4fqjxk16ddh";
+    sha256 = "1i9bcpfjnl2yjnfmf0ar1l62zwq01ph0yylz0dby8k2l7cvq5ci6";
   };
 
   nativeBuildInputs = [ autoreconfHook flex libtool ];
diff --git a/nixpkgs/pkgs/tools/text/ocrmypdf/0001-Make-compatible-with-pdfminer.six-version-20200720.patch b/nixpkgs/pkgs/tools/text/ocrmypdf/0001-Make-compatible-with-pdfminer.six-version-20200720.patch
new file mode 100644
index 000000000000..967bcd3948c2
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/ocrmypdf/0001-Make-compatible-with-pdfminer.six-version-20200720.patch
@@ -0,0 +1,52 @@
+From 4315b58e0bffedd145cec61f96062292cd98278e Mon Sep 17 00:00:00 2001
+From: Pascal Bach <pascal.bach@nextrem.ch>
+Date: Thu, 23 Jul 2020 21:37:33 +0200
+Subject: [PATCH] Make compatible with pdfminer.six version 20200720
+
+---
+ setup.py                       | 2 +-
+ src/ocrmypdf/pdfinfo/layout.py | 8 ++++++--
+ 2 files changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index bd95ed9..d1f4ab1 100644
+--- a/setup.py
++++ b/setup.py
+@@ -83,7 +83,7 @@ setup(
+         'cffi >= 1.9.1',  # must be a setup and install requirement
+         'coloredlogs >= 14.0',  # strictly optional
+         'img2pdf >= 0.3.0, < 0.4',  # pure Python, so track HEAD closely
+-        'pdfminer.six >= 20191110, <= 20200517',
++        'pdfminer.six >= 20191110, <= 20200720',
+         'pikepdf >= 1.14.0, < 2',
+         'Pillow >= 7.0.0',
+         'pluggy >= 0.13.0',
+diff --git a/src/ocrmypdf/pdfinfo/layout.py b/src/ocrmypdf/pdfinfo/layout.py
+index 98bd82e..8b41e14 100644
+--- a/src/ocrmypdf/pdfinfo/layout.py
++++ b/src/ocrmypdf/pdfinfo/layout.py
+@@ -26,7 +26,11 @@ import pdfminer.pdfdevice
+ import pdfminer.pdfinterp
+ from pdfminer.converter import PDFLayoutAnalyzer
+ from pdfminer.layout import LAParams, LTChar, LTPage, LTTextBox
+-from pdfminer.pdfdocument import PDFTextExtractionNotAllowed
++try:
++    from pdfminer.pdfdocument import PDFTextExtractionNotAllowedError
++except ImportError:
++    # Fallback for pdfminer < 20200720
++    from pdfminer.pdfdocument import PDFTextExtractionNotAllowed as PDFTextExtractionNotAllowedError
+ from pdfminer.pdffont import PDFSimpleFont, PDFUnicodeNotDefined
+ from pdfminer.pdfpage import PDFPage
+ from pdfminer.utils import bbox2str, matrix2str
+@@ -239,7 +243,7 @@ def get_page_analysis(infile, pageno, pscript5_mode):
+         with Path(infile).open('rb') as f:
+             page = PDFPage.get_pages(f, pagenos=[pageno], maxpages=0)
+             interp.process_page(next(page))
+-    except PDFTextExtractionNotAllowed:
++    except PDFTextExtractionNotAllowedError:
+         raise EncryptedPdfError()
+     finally:
+         if pscript5_mode:
+-- 
+2.27.0
+
diff --git a/nixpkgs/pkgs/tools/text/ocrmypdf/default.nix b/nixpkgs/pkgs/tools/text/ocrmypdf/default.nix
index 874dc59c7fd7..bfa22a4fd182 100644
--- a/nixpkgs/pkgs/tools/text/ocrmypdf/default.nix
+++ b/nixpkgs/pkgs/tools/text/ocrmypdf/default.nix
@@ -29,14 +29,14 @@ let
 in
 buildPythonApplication rec {
   pname = "ocrmypdf";
-  version = "9.8.2";
+  version = "11.0.1";
   disabled = ! python3Packages.isPy3k;
 
   src = fetchFromGitHub {
     owner = "jbarlow83";
     repo = "OCRmyPDF";
     rev = "v${version}";
-    sha256 = "0zff9gsbfaf72p8zbjamn6513czpr7papyh1jy0fz1z2a9h7ya0g";
+    sha256 = "194ds9i1zd80ynzwgv7kprax0crh7bbchayawdcvg2lyr64a82xn";
   };
 
   nativeBuildInputs = with python3Packages; [
@@ -49,8 +49,10 @@ buildPythonApplication rec {
   propagatedBuildInputs = with python3Packages; [
     cffi
     chardet
+    coloredlogs
     img2pdf
     pdfminer
+    pluggy
     pikepdf
     pillow
     reportlab
@@ -66,7 +68,7 @@ buildPythonApplication rec {
     pytestcov
     pytestrunner
     python-xmp-toolkit
-    setuptools
+    pytestCheckHook
   ] ++ runtimeDeps;
 
   patches = [
@@ -76,25 +78,6 @@ buildPythonApplication rec {
     })
   ];
 
-  # The tests take potentially 20+ minutes, depending on machine
-  doCheck = false;
-
-  # These tests fail and it might be upstream problem... or packaging. :)
-  # development is happening on macos and the pinned test versions are
-  # significantly newer than nixpkgs has. Program still works...
-  # (to the extent I've used it) -- Kiwi
-  checkPhase = ''
-    export HOME=$TMPDIR
-    pytest -k 'not test_force_ocr_on_pdf_with_no_images \
-    and not test_tesseract_crash \
-    and not test_tesseract_crash_autorotate \
-    and not test_ghostscript_pdfa_failure \
-    and not test_gs_render_failure \
-    and not test_gs_raster_failure \
-    and not test_bad_utf8 \
-    and not test_old_unpaper'
-  '';
-
   makeWrapperArgs = [ "--prefix PATH : ${stdenv.lib.makeBinPath [ ghostscript jbig2enc pngquant qpdf tesseract4 unpaper ]}" ];
 
   meta = with stdenv.lib; {
diff --git a/nixpkgs/pkgs/tools/text/platinum-searcher/default.nix b/nixpkgs/pkgs/tools/text/platinum-searcher/default.nix
index 53aa9ac7b76d..b53c5646e70f 100644
--- a/nixpkgs/pkgs/tools/text/platinum-searcher/default.nix
+++ b/nixpkgs/pkgs/tools/text/platinum-searcher/default.nix
@@ -19,7 +19,6 @@ buildGoPackage rec {
   meta = with stdenv.lib; {
     homepage = "https://github.com/monochromegane/the_platinum_searcher";
     description = "A code search tool similar to ack and the_silver_searcher(ag).";
-    platforms = platforms.all;
     license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/podiff/default.nix b/nixpkgs/pkgs/tools/text/podiff/default.nix
index bee2c7a1a8f8..b76dfd2256a0 100644
--- a/nixpkgs/pkgs/tools/text/podiff/default.nix
+++ b/nixpkgs/pkgs/tools/text/podiff/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation {
   pname = "podiff";
-  version = "1.1";
+  version = "1.2";
 
   src = fetchurl {
-    url = "ftp://download.gnu.org.ua/pub/release/podiff/podiff-1.1.tar.gz";
-    sha256 = "1zz6bcmka5zvk2rq775qv122lqh54aijkxlghvx7z0r6kh880x59";
+    url = "ftp://download.gnu.org.ua/pub/release/podiff/podiff-1.2.tar.gz";
+    sha256 = "1l2b4hh53xlx28riigwarzkhxpv1pcz059xj1ka33ccvxc6c20k9";
   };
 
   patchPhase = ''
diff --git a/nixpkgs/pkgs/tools/text/poedit/default.nix b/nixpkgs/pkgs/tools/text/poedit/default.nix
index ccd99a272b59..05241033c6af 100644
--- a/nixpkgs/pkgs/tools/text/poedit/default.nix
+++ b/nixpkgs/pkgs/tools/text/poedit/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "poedit";
-  version = "2.3.1";
+  version = "2.4.1";
 
   src = fetchurl {
     url = "https://github.com/vslavik/poedit/archive/v${version}-oss.tar.gz";
-    sha256 = "04f9za35rwyr7mabk8f8izc0fgvc3sfx45v8dml1xmi634n174ds";
+    sha256 = "0pvd903j2x3h9wh38fhlcn23d0jkjlqnfbdpbvnbhy6al1ngx72w";
   };
 
   nativeBuildInputs = [ autoconf automake asciidoc wrapGAppsHook 
diff --git a/nixpkgs/pkgs/tools/text/recode/default.nix b/nixpkgs/pkgs/tools/text/recode/default.nix
index b562c92679b2..b6503f888483 100644
--- a/nixpkgs/pkgs/tools/text/recode/default.nix
+++ b/nixpkgs/pkgs/tools/text/recode/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "recode";
-  version = "3.7.6";
+  version = "3.7.7";
 
   # Use official tarball, avoid need to bootstrap/generate build system
   src = fetchurl {
     url = "https://github.com/rrthomas/${pname}/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "0m59sd1ca0zw1aydpc3m8sw03nc885knmccqryg7byzmqs585ia6";
+    sha256 = "1yrqgw74qrdmy82lxd1cxlfclrf2fqi0qp7afjmfc6b7f0xzcih9";
   };
 
   nativeBuildInputs = [ python3 python3.pkgs.cython perl intltool flex texinfo libiconv ];
diff --git a/nixpkgs/pkgs/tools/text/ripgrep-all/default.nix b/nixpkgs/pkgs/tools/text/ripgrep-all/default.nix
index 97d3f8960d93..8da7a54ebb24 100644
--- a/nixpkgs/pkgs/tools/text/ripgrep-all/default.nix
+++ b/nixpkgs/pkgs/tools/text/ripgrep-all/default.nix
@@ -58,6 +58,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/phiresky/ripgrep-all";
     license = with licenses; [ agpl3Plus ];
     maintainers = with maintainers; [ zaninime ma27 ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/ripgrep/default.nix b/nixpkgs/pkgs/tools/text/ripgrep/default.nix
index 548b6fd22de5..7bd8a74f4587 100644
--- a/nixpkgs/pkgs/tools/text/ripgrep/default.nix
+++ b/nixpkgs/pkgs/tools/text/ripgrep/default.nix
@@ -31,7 +31,7 @@ rustPlatform.buildRustPackage rec {
     installManPage $releaseDir/build/ripgrep-*/out/rg.1
 
     installShellCompletion $releaseDir/build/ripgrep-*/out/rg.{bash,fish}
-    installShellCompletion --zsh "$src/complete/_rg"
+    installShellCompletion --zsh complete/_rg
   '';
 
   meta = with stdenv.lib; {
@@ -39,6 +39,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/BurntSushi/ripgrep";
     license = with licenses; [ unlicense /* or */ mit ];
     maintainers = with maintainers; [ tailhook globin ma27 zowoq ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/ruplacer/default.nix b/nixpkgs/pkgs/tools/text/ruplacer/default.nix
index 535a00b7b4d0..7ebf739414a2 100644
--- a/nixpkgs/pkgs/tools/text/ruplacer/default.nix
+++ b/nixpkgs/pkgs/tools/text/ruplacer/default.nix
@@ -20,6 +20,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/TankerHQ/ruplacer";
     license = [ licenses.bsd3 ];
     maintainers = with maintainers; [ filalex77 ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/sd/default.nix b/nixpkgs/pkgs/tools/text/sd/default.nix
index a540918e56d2..1fa508b1ef60 100644
--- a/nixpkgs/pkgs/tools/text/sd/default.nix
+++ b/nixpkgs/pkgs/tools/text/sd/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sd";
-  version = "0.7.5";
+  version = "0.7.6";
 
   src = fetchFromGitHub {
     owner = "chmln";
     repo = pname;
     rev = "v${version}";
-    sha256 = "04jsni80jzhbb106283df34cdyp5p362l6m29kp30hnc6x49853q";
+    sha256 = "0c5bsqs6c55x4j640vhzlmbiylhp5agr7lx0jrwcjazfyvxihc01";
   };
 
-  cargoSha256 = "1gwb76zys7gky42clzjs5g4hhgpfvzcw63chw9mnj703c7h0cgfh";
+  cargoSha256 = "1mksmdp1wnsjd8gw1g3l16a24fk05xa9mxygc0qklr41bqf8kw8b";
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
 
@@ -20,7 +20,6 @@ rustPlatform.buildRustPackage rec {
     description = "Intuitive find & replace CLI (sed alternative)";
     homepage = "https://github.com/chmln/sd";
     license = licenses.mit;
-    platforms = platforms.all;
     maintainers = with maintainers; [ amar1729 filalex77 ];
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/shfmt/default.nix b/nixpkgs/pkgs/tools/text/shfmt/default.nix
index 251f6224b403..ec58cbdd1a94 100644
--- a/nixpkgs/pkgs/tools/text/shfmt/default.nix
+++ b/nixpkgs/pkgs/tools/text/shfmt/default.nix
@@ -1,21 +1,30 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, fetchpatch }:
 
 buildGoModule rec {
   pname = "shfmt";
-  version = "3.1.1";
+  version = "3.1.2";
 
   src = fetchFromGitHub {
     owner = "mvdan";
     repo = "sh";
     rev = "v${version}";
-    sha256 = "0zlk1jjk65jwd9cx0xarz4yg2r2h86kd5g00gcnsav6dp6rx3aw8";
+    sha256 = "03zgi0rlra3gz8cbqwmhpjxsg5048anfc6ccd2w50fjhx6farsnv";
   };
 
   vendorSha256 = "1jq2x4yxshsy4ahp7nrry8dc9cyjj46mljs447rq57sgix4ndpq8";
-  subPackages = ["cmd/shfmt"];
+
+  subPackages = [ "cmd/shfmt" ];
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
+  patches = [
+    # fix failing test on go 1.15, remove with > 3.1.2
+    (fetchpatch {
+      url = "https://github.com/mvdan/sh/commit/88956f97dae1f268af6c030bf2ba60762ebb488a.patch";
+      sha256 = "1zg8i7kklr12zjkaxh8djd2bzkdx8klgfj271r2wivkc2x61shgv";
+    })
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/mvdan/sh";
     description = "A shell parser and formatter";
diff --git a/nixpkgs/pkgs/tools/text/sift/default.nix b/nixpkgs/pkgs/tools/text/sift/default.nix
index 830810a84c43..5a36de5f7202 100644
--- a/nixpkgs/pkgs/tools/text/sift/default.nix
+++ b/nixpkgs/pkgs/tools/text/sift/default.nix
@@ -21,6 +21,5 @@ buildGoPackage rec {
     homepage = "https://sift-tool.org";
     maintainers = [ maintainers.carlsverre ];
     license = licenses.gpl3;
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/smu/default.nix b/nixpkgs/pkgs/tools/text/smu/default.nix
index 50bceb4fcb34..854e70c7622b 100644
--- a/nixpkgs/pkgs/tools/text/smu/default.nix
+++ b/nixpkgs/pkgs/tools/text/smu/default.nix
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     description = "simple markup - markdown like syntax";
     homepage = "https://github.com/Gottox/smu";
     license = licenses.mit;
-    maintainers = with maintainers; [ geistesk ];
+    maintainers = with maintainers; [ oxzi ];
   };
 }
 
diff --git a/nixpkgs/pkgs/tools/text/snippetpixie/default.nix b/nixpkgs/pkgs/tools/text/snippetpixie/default.nix
index 991b496777c2..5c6025b245e0 100644
--- a/nixpkgs/pkgs/tools/text/snippetpixie/default.nix
+++ b/nixpkgs/pkgs/tools/text/snippetpixie/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , vala
@@ -18,19 +19,18 @@
 , ibus
 , json-glib
 , pantheon
-, libwnck3
 , xorg
 }:
 
 stdenv.mkDerivation rec {
   pname = "snippetpixie";
-  version = "1.3.3";
+  version = "1.4.1";
 
   src = fetchFromGitHub {
     owner = "bytepixie";
     repo = pname;
     rev = version;
-    sha256 = "0ml57j6jagqvjlpgn1bcyx08h71kcxalh69y03y2lj84x5ib8qz3";
+    sha256 = "1db3fbawh4qwdqby5ji4g26pksi4q253r5zvd3kv1m2ljmwrrwj0";
   };
 
   nativeBuildInputs = [
@@ -54,7 +54,6 @@ stdenv.mkDerivation rec {
     dbus
     ibus
     json-glib
-    libwnck3
     xorg.libXtst
     pantheon.granite
     pantheon.elementary-gtk-theme
@@ -69,7 +68,7 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = pantheon.updateScript {
+    updateScript = nix-update-script {
       attrPath = pname;
     };
   };
@@ -82,6 +81,8 @@ stdenv.mkDerivation rec {
       Save your often used text snippets and then expand them whenever you type their abbreviation.
 
       For example:- "spr`" expands to "Snippet Pixie rules!"
+
+      For non-accessible applications such as browsers and Electron apps, there's a shortcut (default is Ctrl+`) for opening a search window that pastes the selected snippet.
     '';
     homepage = "https://www.snippetpixie.com";
     license = licenses.gpl2Plus;
diff --git a/nixpkgs/pkgs/tools/text/tab/default.nix b/nixpkgs/pkgs/tools/text/tab/default.nix
index f7796c8a3291..8a80c7ad10e9 100644
--- a/nixpkgs/pkgs/tools/text/tab/default.nix
+++ b/nixpkgs/pkgs/tools/text/tab/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromBitbucket, python2 }:
+{ stdenv, fetchFromBitbucket, python3 }:
 
 stdenv.mkDerivation rec {
   version = "7.2";
@@ -11,9 +11,13 @@ stdenv.mkDerivation rec {
     sha256 = "1bm15lw0vp901dj2vsqx6yixmn7ls3brrzh1w6zgd1ksjzlm5aax";
   };
 
-  nativeBuildInputs = [ python2 ];
+  checkInputs = [ python3 ];
 
-  doCheck = true;
+  doCheck = !stdenv.isDarwin;
+
+  preCheck = ''
+    substituteInPlace Makefile --replace "python2 go2.py" "python go.py"
+  '';
 
   checkTarget = "test";
 
@@ -31,6 +35,6 @@ stdenv.mkDerivation rec {
     homepage    = "https://tkatchev.bitbucket.io/tab/";
     license     = licenses.boost;
     maintainers = with maintainers; [ mstarzyk ];
-    platforms   = with platforms; linux;
+    platforms   = with platforms; unix;
   };
 }
diff --git a/nixpkgs/pkgs/tools/text/ugrep/default.nix b/nixpkgs/pkgs/tools/text/ugrep/default.nix
new file mode 100644
index 000000000000..6f44c360267f
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/ugrep/default.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, boost, bzip2, lz4, pcre2, xz, zlib }:
+
+stdenv.mkDerivation rec {
+  pname = "ugrep";
+  version = "2.5.5";
+
+  src = fetchFromGitHub {
+    owner = "Genivia";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0ba9h0m9c28rllym1djij3b97k4rj06nsgajmbxg5mpxfzplgxy2";
+  };
+
+  buildInputs = [ boost bzip2 lz4 pcre2 xz zlib ];
+
+  meta = with stdenv.lib; {
+    description = "Ultra fast grep with interactive query UI";
+    homepage = "https://github.com/Genivia/ugrep";
+    maintainers = with maintainers; [ numkem ];
+    license = licenses.bsd3;
+    platforms = platforms.all;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/vale/default.nix b/nixpkgs/pkgs/tools/text/vale/default.nix
index 6035c2950a96..8a63d82eacb2 100644
--- a/nixpkgs/pkgs/tools/text/vale/default.nix
+++ b/nixpkgs/pkgs/tools/text/vale/default.nix
@@ -1,19 +1,27 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "vale";
-  version = "2.0.0";
+  version = "2.3.4";
 
   subPackages = [ "." ];
+  outputs = [ "out" "data" ];
 
   src = fetchFromGitHub {
     owner  = "errata-ai";
     repo   = "vale";
     rev    = "v${version}";
-    sha256 = "068973ayd883kzkxl60lpammf3icjz090nw07kfccvhcf24x07bh";
+    sha256 = "0vk7kk2a2891vm46lss8q2893n2zdirlicac2f3xfkrbb5lhkicd";
   };
 
-  goPackagePath = "github.com/errata-ai/vale";
+  vendorSha256 = null;
+
+  doCheck = false;
+
+  postInstall = ''
+    mkdir -p $data/share/vale
+    cp -r styles $data/share/vale
+  '';
 
   buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
 
diff --git a/nixpkgs/pkgs/tools/text/vgrep/default.nix b/nixpkgs/pkgs/tools/text/vgrep/default.nix
new file mode 100644
index 000000000000..12880b2e4eca
--- /dev/null
+++ b/nixpkgs/pkgs/tools/text/vgrep/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "vgrep";
+  version = "2.4.0";
+
+  src = fetchFromGitHub {
+    owner = "vrothberg";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "109j04my2xib8m52a0337996a27nvfgzackpg20zs3nzn66dmvb7";
+  };
+
+  vendorSha256 = null;
+
+  buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ];
+
+  meta = with lib; {
+    description = "User-friendly pager for grep/git-grep/ripgrep";
+    homepage = "https://github.com/vrothberg/vgrep";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ zowoq ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/text/wgetpaste/default.nix b/nixpkgs/pkgs/tools/text/wgetpaste/default.nix
index 9180573541d2..852175c4f216 100644
--- a/nixpkgs/pkgs/tools/text/wgetpaste/default.nix
+++ b/nixpkgs/pkgs/tools/text/wgetpaste/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, wget, bash }:
 
 stdenv.mkDerivation rec {
-  version = "2.29";
+  version = "2.30";
   pname = "wgetpaste";
 
   src = fetchurl {
     url = "http://wgetpaste.zlin.dk/${pname}-${version}.tar.bz2";
-    sha256 = "1rp0wxr3zy7y2xp3azaadfghrx7g0m138f9qg6icjxkkz4vj9r22";
+    sha256 = "14k5i6j6f34hcf9gdb9cnvfwscn0ys2dgd73ci421wj9zzqkbv73";
   };
   # currently zsh-autocompletion support is not installed
 
diff --git a/nixpkgs/pkgs/tools/text/xml/html-xml-utils/default.nix b/nixpkgs/pkgs/tools/text/xml/html-xml-utils/default.nix
index c42ecfc24410..d4bd40a11993 100644
--- a/nixpkgs/pkgs/tools/text/xml/html-xml-utils/default.nix
+++ b/nixpkgs/pkgs/tools/text/xml/html-xml-utils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "html-xml-utils";
-  version = "7.8";
+  version = "7.9";
 
   src = fetchurl {
     url = "https://www.w3.org/Tools/HTML-XML-utils/${pname}-${version}.tar.gz";
-    sha256 = "0p8df3c6mw879vdi8l63kbdqylkf1is10b067mh9kipgfy91rd4s";
+    sha256 = "0gs3xvdbzhk5k12i95p5d4fgkkaldnlv45sch7pnncb0lrpcjsnq";
   };
 
   buildInputs = [curl libiconv];
diff --git a/nixpkgs/pkgs/tools/text/xsv/default.nix b/nixpkgs/pkgs/tools/text/xsv/default.nix
index 927d0d14be68..b17dba7a127f 100644
--- a/nixpkgs/pkgs/tools/text/xsv/default.nix
+++ b/nixpkgs/pkgs/tools/text/xsv/default.nix
@@ -20,6 +20,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/BurntSushi/xsv";
     license = with licenses; [ unlicense /* or */ mit ];
     maintainers = [ maintainers.jgertm ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix b/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix
index f875cc26311b..7a01dc2ff0ad 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctor/default.nix
@@ -12,7 +12,6 @@ let
     exes = [
       "asciidoctor"
       "asciidoctor-pdf"
-      "asciidoctor-safe"
       "asciidoctor-epub3"
     ];
 
diff --git a/nixpkgs/pkgs/tools/typesetting/asciidoctorj/default.nix b/nixpkgs/pkgs/tools/typesetting/asciidoctorj/default.nix
index ba46d36814ac..c518ddeaf39d 100644
--- a/nixpkgs/pkgs/tools/typesetting/asciidoctorj/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/asciidoctorj/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "asciidoctorj";
-  version = "2.3.0";
+  version = "2.4.0";
 
   src = fetchzip {
     url = "http://dl.bintray.com/asciidoctor/maven/org/asciidoctor/${pname}/${version}/${pname}-${version}-bin.zip";
-    sha256 = "1hmra1pg79hj9kqbj6702y5b03vyvfzqf6hq65jg1vxjqlq7h3xx";
+    sha256 = "1bp26x5mhbl25s9djlq6yani1vaqrgbi5mjljhwhj97iapwsd0yb";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix b/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix
new file mode 100644
index 000000000000..017066a2c22b
--- /dev/null
+++ b/nixpkgs/pkgs/tools/typesetting/lowdown/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl, which }:
+
+stdenv.mkDerivation rec {
+  pname = "lowdown";
+  version = "0.7.4";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchurl {
+    url = "https://kristaps.bsd.lv/lowdown/snapshots/lowdown-${version}.tar.gz";
+    sha512 = "2iw5x3lf5knnscp0ifgk50yj48p54cbd34h94qrxa9vdybg2nnipklrqmmqblf6l7qph98h7jvlyr99m5qlrki9lvjr1jcgbgp31pn0";
+  };
+
+  nativeBuildInputs = [ which ];
+
+  configurePhase = ''
+    ./configure PREFIX=''${!outputDev} \
+                BINDIR=''${!outputBin}/bin \
+                MANDIR=''${!outputBin}/share/man
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = "https://kristaps.bsd.lv/lowdown/";
+    description = "Simple markdown translator";
+    license = licenses.isc;
+    maintainers = [ maintainers.sternenseemann ];
+    platforms = platforms.unix;
+  };
+}
+
diff --git a/nixpkgs/pkgs/tools/typesetting/pdf2djvu/default.nix b/nixpkgs/pkgs/tools/typesetting/pdf2djvu/default.nix
index cbd4fa569d19..c3ddb219ab8c 100644
--- a/nixpkgs/pkgs/tools/typesetting/pdf2djvu/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/pdf2djvu/default.nix
@@ -15,14 +15,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "0.9.17";
+  version = "0.9.17.1";
   pname = "pdf2djvu";
 
   src = fetchFromGitHub {
     owner = "jwilk";
     repo = "pdf2djvu";
     rev = version;
-    sha256 = "1iff5ha5ls9hni9ivj05r1vzbnjrb326ivjb8d05q2sfng3gfp3z";
+    sha256 = "1igabfy3fd7qndihmkfk9incc15pjxpxh2cn5pfw5fxfwrpjrarn";
   };
 
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/nixpkgs/pkgs/tools/typesetting/satysfi/default.nix b/nixpkgs/pkgs/tools/typesetting/satysfi/default.nix
index 7a4b8010f04c..b97652bb4a69 100644
--- a/nixpkgs/pkgs/tools/typesetting/satysfi/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/satysfi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip, fetchFromGitHub, ruby, dune, ocamlPackages
+{ stdenv, fetchzip, fetchFromGitHub, ruby, dune_2, ocamlPackages
 , ipaexfont, junicode, lmodern, lmmath
 }:
 let
@@ -6,8 +6,8 @@ let
     src = fetchFromGitHub {
       owner = "gfngfn";
       repo = "camlpdf";
-      rev = "v2.2.2+satysfi";
-      sha256 = "1dkyibjd8qb9fzljlzdsfdhb798vc9m8xqkd7295fm6bcfpr5r5k";
+      rev = "v2.3.1+satysfi";
+      sha256 = "1s8wcqdkl1alvfcj67lhn3qdz8ikvd1v64f4q6bi4c0qj9lmp30k";
     };
   });
   otfm = ocamlPackages.otfm.overrideAttrs (o: {
@@ -18,23 +18,29 @@ let
       sha256 = "0y8s0ij1vp1s4h5y1hn3ns76fzki2ba5ysqdib33akdav9krbj8p";
     };
   });
-  yojson = ocamlPackages.yojson.overrideAttrs (o: {
+  yojson-with-position = ocamlPackages.buildDunePackage {
+    pname = "yojson-with-position";
+    version = "1.4.2";
     src = fetchFromGitHub {
       owner = "gfngfn";
-      repo = "yojson";
-      rev = "v1.4.1+satysfi";
-      sha256 = "06lajzycwmvc6s26cf40s9xn001cjxrpxijgfha3s4f4rpybb1mp";
+      repo = "yojson-with-position";
+      rev = "v1.4.2+satysfi";
+      sha256 = "17s5xrnpim54d1apy972b5l08bph4c0m5kzbndk600fl0vnlirnl";
     };
-  });
+    useDune2 = true;
+    nativeBuildInputs = [ ocamlPackages.cppo ];
+    propagatedBuildInputs = [ ocamlPackages.biniou ];
+    inherit (ocamlPackages.yojson) meta;
+  };
 in
   stdenv.mkDerivation rec {
     pname = "satysfi";
-    version = "0.0.4";
+    version = "0.0.5";
     src = fetchFromGitHub {
       owner = "gfngfn";
       repo = "SATySFi";
       rev = "v${version}";
-      sha256 = "0ilvgixglklqwavf8p9mcbrjq6cjfm9pk4kqx163c0irh0lh0adv";
+      sha256 = "1y72by6d15bc6qb1lv1ch6cm1i74gyr0w127nnvs2s657snm0y1n";
       fetchSubmodules = true;
     };
 
@@ -44,11 +50,11 @@ in
       $out/share/satysfi
     '';
 
-    nativeBuildInputs = [ ruby dune ];
+    nativeBuildInputs = [ ruby dune_2 ];
 
-    buildInputs = [ camlpdf otfm ] ++ (with ocamlPackages; [
+    buildInputs = [ camlpdf otfm yojson-with-position ] ++ (with ocamlPackages; [
       ocaml findlib menhir
-      batteries camlimages core_kernel ppx_deriving uutf yojson omd cppo re
+      batteries camlimages core_kernel ppx_deriving uutf omd cppo re
     ]);
 
     installPhase = ''
diff --git a/nixpkgs/pkgs/tools/typesetting/sile/default.nix b/nixpkgs/pkgs/tools/typesetting/sile/default.nix
index a8969fd45985..1084ee37ea72 100644
--- a/nixpkgs/pkgs/tools/typesetting/sile/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/sile/default.nix
@@ -1,37 +1,79 @@
-{ stdenv, darwin, fetchurl, makeWrapper, pkgconfig, autoconf, automake
-, harfbuzz, icu
-, fontconfig, lua, libiconv
-, makeFontsConf, gentium
+{ stdenv
+, darwin
+, fetchurl
+, makeWrapper
+, pkg-config
+, autoconf
+, automake
+, poppler_utils
+, harfbuzz
+, icu
+, fontconfig
+, lua
+, libiconv
+, makeFontsConf
+, gentium
 }:
 
-with stdenv.lib;
-
 let
-  luaEnv = lua.withPackages(ps: with ps;[cassowary cosmo compat53 linenoise lpeg lua-zlib lua_cliargs luaepnf luaexpat luafilesystem luarepl luasec luasocket stdlib vstruct]);
-
+  luaEnv = lua.withPackages(ps: with ps; [
+    cassowary
+    cosmo
+    compat53
+    linenoise
+    lpeg
+    lua-zlib
+    lua_cliargs
+    luaepnf
+    luaexpat
+    luafilesystem
+    luarepl
+    luasec
+    luasocket
+    penlight
+    stdlib
+    vstruct
+  ]);
 in
 
 stdenv.mkDerivation rec {
   pname = "sile";
-  version = "0.10.4";
+  version = "0.10.11";
 
   src = fetchurl {
-    url = "https://github.com/sile-typesetter/sile/releases/download/v${version}/${pname}-${version}.tar.bz2";
-    sha256 = "08j2vv6spnzz8bsh62wbdv1pjiziiba71cadscsy5hw6pklzndni";
+    url = "https://github.com/sile-typesetter/sile/releases/download/v${version}/${pname}-${version}.tar.xz";
+    sha256 = "0c4azy2iqcj5qg09caqzzjzvig5h0sjilkprphdxvg2bi7dr9g5c";
   };
 
-  configureFlags = [ "--with-system-luarocks" ];
-
-  nativeBuildInputs = [ autoconf automake pkgconfig makeWrapper ];
-  buildInputs = [ harfbuzz icu fontconfig libiconv luaEnv ]
-  ++ optional stdenv.isDarwin darwin.apple_sdk.frameworks.AppKit
+  configureFlags = [
+    "--with-system-luarocks"
+    "--with-manual"
+  ];
+
+  nativeBuildInputs = [
+    autoconf
+    automake
+    pkg-config
+    makeWrapper
+  ];
+  buildInputs = [
+    harfbuzz
+    icu
+    fontconfig
+    libiconv
+    luaEnv
+  ]
+  ++ stdenv.lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.AppKit
   ;
+  checkInputs = [
+    poppler_utils
+  ];
 
-  preConfigure = optionalString stdenv.isDarwin ''
+  preConfigure = stdenv.lib.optionalString stdenv.isDarwin ''
     sed -i -e 's|@import AppKit;|#import <AppKit/AppKit.h>|' src/macfonts.m
   '';
 
-  NIX_LDFLAGS = optionalString stdenv.isDarwin "-framework AppKit";
+  NIX_LDFLAGS = stdenv.lib.optionalString stdenv.isDarwin "-framework AppKit";
 
   FONTCONFIG_FILE = makeFontsConf {
     fontDirectories = [
@@ -39,11 +81,7 @@ stdenv.mkDerivation rec {
     ];
   };
 
-  # TODO: needs to tweak Makefile-fonts to avoid download fonts
-  doCheck = false; /*stdenv.targetPlatform == stdenv.hostPlatform
-  && ! stdenv.isAarch64 # random seg. faults
-  && ! stdenv.isDarwin; # dy lib not found
- */
+  doCheck = true;
 
   enableParallelBuilding = true;
 
@@ -52,18 +90,12 @@ stdenv.mkDerivation rec {
       --replace "ASSERT(ht && ht->table && iter);" "ASSERT(ht && iter);"
   '';
 
-  checkTarget = "examples";
-
-  postInstall = ''
-    install -D -t $out/share/doc/sile documentation/sile.pdf
-  '';
-
   # Hack to avoid TMPDIR in RPATHs.
   preFixup = ''rm -rf "$(pwd)" && mkdir "$(pwd)" '';
 
-  outputs = [ "out" "doc" ];
+  outputs = [ "out" "doc" "man" "dev" ];
 
-  meta = {
+  meta = with stdenv.lib; {
     description = "A typesetting system";
     longDescription = ''
       SILE is a typesetting system; its job is to produce beautiful
@@ -77,6 +109,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://sile-typesetter.org/";
     platforms = platforms.unix;
+    maintainers = with maintainers; [ doronbehar alerque ];
     license = licenses.mit;
   };
 }
diff --git a/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix b/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix
index f5ac36690fd7..23432e1d460a 100644
--- a/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tectonic/default.nix
@@ -3,16 +3,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tectonic";
-  version = "0.1.12";
+  version = "0.1.15";
 
   src = fetchFromGitHub {
     owner = "tectonic-typesetting";
     repo = "tectonic";
-    rev = "v${version}";
-    sha256 = "0dycv135bkpf71iwlwh8rwwvn287d605nl7v8mjxlrsayiivdmn9";
+    rev = "tectonic@${version}";
+    sha256 = "0pzhdfsi4jsj9p5cv8ia4kc4inl7q7jsw694dfyxkcpka6ywyzsh";
   };
 
-  cargoSha256 = "1axrf7d01gmhvrap13rydfvwcsg0lk1zw7z1i7zzm898bc7c02qn";
+  cargoSha256 = "017f1f49svx4inyv6xjx31lnb7dbl6gzwrrzpfz1gimqvdj2gm6j";
 
   nativeBuildInputs = [ pkgconfig ];
 
@@ -27,6 +27,5 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://tectonic-typesetting.github.io/";
     license = with licenses; [ mit ];
     maintainers = [ maintainers.lluchs ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix
index c0ae6b8e187b..1a71ae04d49a 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/bin.nix
@@ -46,7 +46,7 @@ let
         };
       in fetchurl {
         name = "pdftoepdf-poppler${popplerVersion}.cc";
-        url = "https://www.tug.org/svn/texlive/trunk/Build/source/texk/web2c/pdftexdir/pdftoepdf-poppler${popplerVersion}.cc?revision=52959&view=co";
+        url = "https://www.tug.org/svn/texlive/trunk/Build/source/texk/web2c/pdftexdir/pdftoepdf-poppler${popplerVersion}.cc?revision=52959&view=co&pathrev=52959";
         sha256 = "0pngvw1jgnm4cqskrzf5a3z8rj4ssl10007n3wbblj50hvvzjph3";
         postFetch = ''
           # The trunk added some extra arguments to certain functions so we need to revert that
@@ -56,7 +56,7 @@ let
       };
       pdftosrc = fetchurl {
         name = "pdftosrc-poppler${popplerVersion}.cc";
-        url = "https://www.tug.org/svn/texlive/trunk/Build/source/texk/web2c/pdftexdir/pdftosrc-poppler${popplerVersion}.cc?revision=52959&view=co";
+        url = "https://www.tug.org/svn/texlive/trunk/Build/source/texk/web2c/pdftexdir/pdftosrc-poppler${popplerVersion}.cc?revision=52959&view=co&pathrev=52959";
         sha256 = "0iq2cmwvf2lxy32sygrafwqgcwvvbdnvxm5l3mrg9cb2a1g06380";
       };
     in ''
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix
index ee4d0dfe588a..fb3e6668a47c 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/combine.nix
@@ -49,6 +49,10 @@ in buildEnv {
 
   ignoreCollisions = false;
   paths = pkgList.nonbin;
+  pathsToLink = [
+    "/"
+    "/tex/generic/config" # make it a real directory for scheme-infraonly
+  ];
 
   buildInputs = [ makeWrapper ] ++ pkgList.extraInputs;
 
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix
index 29c07408e7e1..cc6763e9ee91 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/default.nix
@@ -2,7 +2,7 @@
   - source: ../../../../../doc/languages-frameworks/texlive.xml
   - current html: https://nixos.org/nixpkgs/manual/#sec-language-texlive
 */
-{ stdenv, lib, fetchurl, runCommand, writeText, buildEnv
+{ stdenv, lib, fetchurl, fetchpatch, runCommand, writeText, buildEnv
 , callPackage, ghostscriptX, harfbuzz, poppler_min
 , makeWrapper, python, ruby, perl
 , useFixedHashes ? true
@@ -57,6 +57,21 @@ let
       collection-plaingeneric = orig.collection-plaingeneric // {
         deps = orig.collection-plaingeneric.deps // { inherit (tl) xdvi; };
       };
+
+      # TODO revert for texlive 2020
+      arara = lib.recursiveUpdate orig.arara {
+        postUnpack = let
+          arara_jar_fix = fetchpatch {
+            url = "https://github.com/TeX-Live/texlive-source/commit/dbaf12f4a47dcd62bcc96346f65493fda3fec2c8.diff";
+            sha256 = "148knr8k6sm6fpyj31kdq85yxvzvwp1prjha3f07q24kbar2l830";
+          };
+        in ''
+          if [ -f "$out"/scripts/arara/arara.sh ]; then
+            cd "$out"/scripts/
+            patch -p4 <${arara_jar_fix}
+          fi
+        '';
+      };
     }); # overrides
 
     # tl =
@@ -99,8 +114,11 @@ let
       urls = args.urls or (if args ? url then [ args.url ] else
         lib.concatMap
           (up: [
-            "${up}/${urlName}.r${toString revision}.tar.xz"
-            "${up}/${urlName}.tar.xz" # TODO To be removed for telive 2020
+            # Only ~11% of packages in texlive 2019 have revisions, so
+            # the number of requests is nearly doubled if we lookup
+            # the name with revision
+            # "${up}/${urlName}.r${toString revision}.tar.xz"
+            "${up}/${urlName}.tar.xz" # TODO To be removed for texlive 2020?
           ])
           urlPrefixes);
 
diff --git a/nixpkgs/pkgs/tools/typesetting/tex/texlive/fixedHashes.nix b/nixpkgs/pkgs/tools/typesetting/tex/texlive/fixedHashes.nix
index e7ea017ac162..758b24f98e07 100644
--- a/nixpkgs/pkgs/tools/typesetting/tex/texlive/fixedHashes.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tex/texlive/fixedHashes.nix
@@ -553,7 +553,7 @@
 "adhocfilelist-2019"="l8ayz7mqaa5lma2bvqb2brc879y0viij";
 "adhocfilelist.doc-2019"="gm20nhwq88s1cmch3pcgkqnyahb5gnri";
 "adhocfilelist.source-2019"="3qx23im0z07cnk2bd5vrskl153zxy6ff";
-"arara-4.0.6"="qk5dq5f0il52m1gp8ckd7ilqbmpkvfmj";
+"arara-4.0.6"="6jhbdl9kh0d7iaq9qrl71kqzrmvvx9ya";
 "arara.doc-4.0.6"="rvkrcair91scrk763igaj9mmi23n5j7x";
 "arara.source-4.0.6"="s7rlspqx9dqsbixbnmnaz9hh7gwkmkfi";
 "asymptote-2.49"="ka921kxzvyq3hi5frln4hh7qg1kfgch7";
diff --git a/nixpkgs/pkgs/tools/typesetting/tikzit/default.nix b/nixpkgs/pkgs/tools/typesetting/tikzit/default.nix
index 31baa431bfc9..76b9b285d153 100644
--- a/nixpkgs/pkgs/tools/typesetting/tikzit/default.nix
+++ b/nixpkgs/pkgs/tools/typesetting/tikzit/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation {
   pname = "tikzit";
-  version = "2.1.5";
+  version = "2.1.6";
 
   src = fetchFromGitHub {
     owner = "tikzit";
     repo = "tikzit";
-    rev = "v2.1.5";
-    sha256 = "1xrx7r8b6nb912k91pkdwaz2gijfq6lzssyqxard0591h2mycbcg";
+    rev = "v2.1.6";
+    sha256 = "0ba99pgv54pj1xvhrwn9db2w0v4h07vsjajcnhpa2smy88ypg32h";
   };
 
   nativeBuildInputs = [ qmake qttools flex bison ];
diff --git a/nixpkgs/pkgs/tools/video/rav1e/default.nix b/nixpkgs/pkgs/tools/video/rav1e/default.nix
index b8e43fe4f10f..ae7a45b562d9 100644
--- a/nixpkgs/pkgs/tools/video/rav1e/default.nix
+++ b/nixpkgs/pkgs/tools/video/rav1e/default.nix
@@ -1,19 +1,27 @@
-{ rustPlatform, fetchFromGitHub, lib, nasm }:
+{ rustPlatform, fetchFromGitHub, lib, nasm, cargo-c }:
 
 rustPlatform.buildRustPackage rec {
   pname = "rav1e";
-  version = "0.3.3";
+  version = "0.3.4";
 
   src = fetchFromGitHub {
     owner = "xiph";
     repo = "rav1e";
     rev = "v${version}";
-    sha256 = "0a9dryag4x35a2c45qiq1j5xk9ydcpw1g6kici85d2yrc2z3hwrx";
+    sha256 = "0zwjg0sv504i1ahzfy2jgng6qwmyvcrvdrp4n3s90r4kvwjkv8xs";
   };
 
-  cargoSha256 = "1xaincrmpicp0skf9788w5631x1hxvifvq06hh5ribdz79zclzx3";
+  cargoSha256 = "1mfzshcbxky27nskxhcyrj99wd3v5f597ymgv7nb67lzp5lsyb24";
 
-  nativeBuildInputs = [ nasm ];
+  nativeBuildInputs = [ nasm cargo-c ];
+
+  postBuild = ''
+    cargo cbuild --release --frozen --prefix=${placeholder "out"}
+  '';
+
+  postInstall = ''
+    cargo cinstall --release --frozen --prefix=${placeholder "out"}
+  '';
 
   meta = with lib; {
     description = "The fastest and safest AV1 encoder";
@@ -27,6 +35,5 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/xiph/rav1e/releases/tag/v${version}";
     license = licenses.bsd2;
     maintainers = [ maintainers.primeos ];
-    platforms = platforms.all;
   };
 }
diff --git a/nixpkgs/pkgs/tools/video/untrunc-anthwlock/default.nix b/nixpkgs/pkgs/tools/video/untrunc-anthwlock/default.nix
new file mode 100644
index 000000000000..126952850936
--- /dev/null
+++ b/nixpkgs/pkgs/tools/video/untrunc-anthwlock/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, fetchFromGitHub, ffmpeg, libui }:
+
+stdenv.mkDerivation {
+  pname = "untrunc-anthwlock";
+  version = "2020.07.18";
+
+  src = fetchFromGitHub {
+    owner = "anthwlock";
+    repo = "untrunc";
+    rev = "a0bf2e8642ecdb7af5897ed9b0dd30a7d03520ae";
+    sha256 = "14i2lq68q990hnm2kkfamlsi67bcml85zl8yjsyxc5h8ncc2f3dp";
+  };
+
+  
+  buildInputs = [ ffmpeg libui ];
+
+  postBuild = ''
+    make untrunc-gui
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -D -t $out/bin untrunc untrunc-gui
+    runHook postInstall
+  '';
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Restore a truncated mp4/mov (improved version of ponchio/untrunc)";
+    homepage = "https://github.com/anthwlock/untrunc";
+    license = licenses.gpl2;
+    platforms = platforms.all;
+    maintainers = [ maintainers.romildo ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/video/untrunc/default.nix b/nixpkgs/pkgs/tools/video/untrunc/default.nix
index 728b4ff01188..1918f4e59745 100644
--- a/nixpkgs/pkgs/tools/video/untrunc/default.nix
+++ b/nixpkgs/pkgs/tools/video/untrunc/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation {
   pname = "untrunc";
-  version = "2018.01.13";
+  version = "2020.02.09";
 
   src = fetchFromGitHub {
     owner = "ponchio";
     repo = "untrunc";
-    rev = "3a2e6d0718faf06589f7b9d95c8f966348e537f7";
-    sha256 = "03ka4lr69k7mikfpcpd95smzdj62v851ididnjyps5a0j06f8087";
+    rev = "4eed44283168c727ace839ff7590092fda2e0848";
+    sha256 = "0nfj67drc6bxqlkf8a1iazqhi0w38a7rjrb2bpa74gwq6xzygvbr";
   };
 
   buildInputs = [ gcc libav_12 ];
diff --git a/nixpkgs/pkgs/tools/video/vcsi/default.nix b/nixpkgs/pkgs/tools/video/vcsi/default.nix
new file mode 100644
index 000000000000..84e6c2e6d41d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/video/vcsi/default.nix
@@ -0,0 +1,28 @@
+{ lib, python3Packages, ffmpeg }:
+
+python3Packages.buildPythonApplication rec {
+  pname = "vcsi";
+  version = "7.0.12";
+
+  src = python3Packages.fetchPypi {
+    inherit pname version;
+    sha256 = "0dks0yr2a0cpr32vrwhdrhsb4qyj7rz1yv44fjbr8z8j8p84yjx5";
+  };
+
+  propagatedBuildInputs = with python3Packages; [
+    numpy
+    pillow
+    jinja2
+    texttable
+    parsedatetime
+  ];
+
+  makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ ffmpeg ]}" ];
+
+  meta = with lib; {
+    description = "Create video contact sheets";
+    homepage = "https://github.com/amietn/vcsi";
+    license = licenses.mit;
+    maintainers = with maintainers; [ dandellion ];
+  };
+}
diff --git a/nixpkgs/pkgs/tools/virtualization/alpine-make-vm-image/default.nix b/nixpkgs/pkgs/tools/virtualization/alpine-make-vm-image/default.nix
new file mode 100644
index 000000000000..08d37a1d53bc
--- /dev/null
+++ b/nixpkgs/pkgs/tools/virtualization/alpine-make-vm-image/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper
+, apk-tools, coreutils, e2fsprogs, findutils, gnugrep, gnused, kmod, qemu-utils
+, utillinux
+}:
+
+stdenv.mkDerivation rec {
+  pname = "alpine-make-vm-image";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "alpinelinux";
+    repo = "alpine-make-vm-image";
+    rev = "v${version}";
+    sha256 = "0955kd2ddqfynjwk2xfzys96l7abxp30hhrs2968hl78rhmkvpnq";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  dontBuild = true;
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  postInstall = ''
+    wrapProgram $out/bin/alpine-make-vm-image --set PATH ${lib.makeBinPath [
+      apk-tools coreutils e2fsprogs findutils gnugrep gnused kmod qemu-utils
+      utillinux
+    ]}
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/alpinelinux/alpine-make-vm-image";
+    description = "Make customized Alpine Linux disk image for virtual machines";
+    maintainers = with maintainers; [ qyliss ];
+    license = licenses.mit;
+    platforms = platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/virtualization/cri-tools/default.nix b/nixpkgs/pkgs/tools/virtualization/cri-tools/default.nix
index ef622f055ee6..cdb156f3121a 100644
--- a/nixpkgs/pkgs/tools/virtualization/cri-tools/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/cri-tools/default.nix
@@ -6,17 +6,19 @@
 
 buildGoModule rec {
   pname = "cri-tools";
-  version = "1.18.0";
+  version = "1.19.0";
 
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = pname;
     rev = "v${version}";
-    sha256 = "06sxjhjpd893fn945c1s4adri2bf7s50ddvcw5pnwb6qndzfljw6";
+    sha256 = "0dx21ws4nzzizzjb0g172fzvjgwck88ikr5c2av08ii06rys1567";
   };
 
   vendorSha256 = null;
 
+  doCheck = false;
+
   nativeBuildInputs = [ installShellFiles ];
 
   buildPhase = ''
diff --git a/nixpkgs/pkgs/tools/virtualization/govc/default.nix b/nixpkgs/pkgs/tools/virtualization/govc/default.nix
index 433da1b07f27..30cf09d2942a 100644
--- a/nixpkgs/pkgs/tools/virtualization/govc/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/govc/default.nix
@@ -1,8 +1,8 @@
 { lib, fetchFromGitHub, buildGoPackage }:
-  
+
 buildGoPackage rec {
   pname = "govc";
-  version = "0.23.0";
+  version = "0.23.1";
 
   goPackagePath = "github.com/vmware/govmomi";
 
@@ -12,7 +12,7 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "vmware";
     repo = "govmomi";
-    sha256 = "05nb5xd90kbazdx4l9bw72729dh5hrcaqdi9wpf5ma7bz7mw9wzi";
+    sha256 = "05f6i7v8v9g3w3cmz8c952djl652mj6qcwjx9iyl23h6knd1d9b1";
   };
 
   meta = {
diff --git a/nixpkgs/pkgs/tools/virtualization/linode-cli/default.nix b/nixpkgs/pkgs/tools/virtualization/linode-cli/default.nix
index c16eb003d8d4..47953d21dfe0 100644
--- a/nixpkgs/pkgs/tools/virtualization/linode-cli/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/linode-cli/default.nix
@@ -13,21 +13,21 @@
 let
 
   spec = fetchurl {
-    url = "https://raw.githubusercontent.com/linode/linode-api-docs/v4.63.1/openapi.yaml";
-    sha256 = "03ngzbq24zazfqmfd7xjmxixkcb9vv1jgamplsj633j7sjj708s0";
+    url = "https://raw.githubusercontent.com/linode/linode-api-docs/v4.67.0/openapi.yaml";
+    sha256 = "0vsblprkqlr9508x5rkm0wj6lc3w72xiwiqxia9asgr5k45hhfnr";
   };
 
 in
 
 buildPythonApplication rec {
   pname = "linode-cli";
-  version = "2.14.1";
+  version = "2.15.0";
 
   src = fetchFromGitHub {
     owner = "linode";
     repo = pname;
     rev = version;
-    sha256 = "1hpdmbzs182iag471yvq3kwd1san04a58sczzbmw6vjv2kswn1c2";
+    sha256 = "06iz9xjj6h1ry176558488fl9j18a5vf724zh4cxlcksdy72dnna";
   };
 
   patches = [
diff --git a/nixpkgs/pkgs/tools/virtualization/marathonctl/default.nix b/nixpkgs/pkgs/tools/virtualization/marathonctl/default.nix
index c557361f122f..20b461fa3465 100644
--- a/nixpkgs/pkgs/tools/virtualization/marathonctl/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/marathonctl/default.nix
@@ -18,7 +18,6 @@ buildGoPackage {
   meta = with stdenv.lib; {
     homepage = "https://github.com/shoenig/marathonctl";
     description = "CLI tool for Marathon";
-    platforms = platforms.all;
     license = licenses.mit;
     maintainers = with maintainers; [ manveru ];
   };
diff --git a/nixpkgs/pkgs/tools/virtualization/nixos-container/nixos-container.pl b/nixpkgs/pkgs/tools/virtualization/nixos-container/nixos-container.pl
index dc05c974bd03..02ad6af90daa 100755
--- a/nixpkgs/pkgs/tools/virtualization/nixos-container/nixos-container.pl
+++ b/nixpkgs/pkgs/tools/virtualization/nixos-container/nixos-container.pl
@@ -5,7 +5,7 @@ use POSIX;
 use File::Path;
 use File::Slurp;
 use Fcntl ':flock';
-use Getopt::Long qw(:config gnu_getopt);
+use Getopt::Long qw(:config gnu_getopt no_bundling);
 use Cwd 'abs_path';
 use Time::HiRes;
 
@@ -68,6 +68,22 @@ my $localAddress;
 my $flake;
 my $flakeAttr = "container";
 
+# Nix passthru flags.
+my @nixFlags;
+my @nixFlags2;
+
+sub copyNixFlags0 { push @nixFlags, "--$_[0]"; }
+sub copyNixFlags1 { push @nixFlags, "--$_[0]", $_[1]; }
+
+# Ugly hack to handle flags that take two arguments, like --option.
+sub copyNixFlags2 {
+    if (scalar(@nixFlags2) % 3 == 0) {
+        push @nixFlags2, "--$_[0]", $_[1];
+    } else {
+        push @nixFlags2, $_[1];
+    }
+}
+
 GetOptions(
     "help" => sub { showHelp() },
     "ensure-unique-name" => \$ensureUniqueName,
@@ -82,8 +98,22 @@ GetOptions(
     "host-address=s" => \$hostAddress,
     "local-address=s" => \$localAddress,
     "flake=s" => \$flake,
+    # Nix passthru options.
+    "log-format=s" => \&copyNixFlags1,
+    "option=s{2}" => \&copyNixFlags2,
+    "impure" => \&copyNixFlags0,
+    "update-input=s" => \&copyNixFlags1,
+    "override-input=s{2}" => \&copyNixFlags2,
+    "commit-lock-file" => \&copyNixFlags0,
+    "no-registries" => \&copyNixFlags0,
+    "no-update-lock-file" => \&copyNixFlags0,
+    "no-write-lock-file" => \&copyNixFlags0,
+    "no-allow-dirty" => \&copyNixFlags0,
+    "recreate-lock-file" => \&copyNixFlags0,
     ) or exit 1;
 
+push @nixFlags, @nixFlags2;
+
 if (defined $hostAddress and !defined $localAddress or defined $localAddress and !defined $hostAddress) {
     die "With --host-address set, --local-address is required as well!";
 }
@@ -144,7 +174,7 @@ EOF
 }
 
 sub buildFlake {
-    system("nix", "build", "-o", "$systemPath.tmp", "--",
+    system("nix", "build", "-o", "$systemPath.tmp", @nixFlags, "--",
            "$flake#nixosConfigurations.\"$flakeAttr\".config.system.build.toplevel") == 0
         or die "$0: failed to build container from flake '$flake'\n";
     $systemPath = readlink("$systemPath.tmp") or die;
@@ -251,7 +281,7 @@ if ($action eq "create") {
 
         system("nix-env", "-p", "$profileDir/system",
                "-I", "nixos-config=$nixosConfigFile", "-f", "$nixenvF",
-               "--set", "-A", "system") == 0
+               "--set", "-A", "system", @nixFlags) == 0
             or do {
                 clearContainerState($profileDir, "$profileDir/$containerName", $root, $confFile);
                 die "$0: failed to build initial container configuration\n"
@@ -400,7 +430,7 @@ elsif ($action eq "update") {
         my $nixenvF = $nixosPath // "<nixpkgs/nixos>";
         system("nix-env", "-p", "$profileDir/system",
                "-I", "nixos-config=$nixosConfigFile", "-f", $nixenvF,
-               "--set", "-A", "system") == 0
+               "--set", "-A", "system", @nixFlags) == 0
             or die "$0: failed to build container configuration\n";
     }
 
diff --git a/nixpkgs/pkgs/tools/virtualization/rootlesskit/default.nix b/nixpkgs/pkgs/tools/virtualization/rootlesskit/default.nix
index 224e7b33081a..d57a054a8b72 100644
--- a/nixpkgs/pkgs/tools/virtualization/rootlesskit/default.nix
+++ b/nixpkgs/pkgs/tools/virtualization/rootlesskit/default.nix
@@ -2,14 +2,14 @@
 
 buildGoPackage rec {
   pname = "rootlesskit";
-  version = "0.3.0-alpha.2";
+  version = "0.10.0";
   goPackagePath = "github.com/rootless-containers/rootlesskit";
 
   src = fetchFromGitHub {
     owner = "rootless-containers";
     repo = "rootlesskit";
     rev = "v${version}";
-    sha256 = "11y4hcrpayyyi9j3b80ilccxs5bbwnqfpi5nsjgmjb9v01z35fw6";
+    sha256 = "0jrzqaczd5zxlbvh0hjym8pc1d7y8c66gslq3d3l5vv4z7hz7yfr";
   };
 
   meta = with lib; {
diff --git a/nixpkgs/pkgs/tools/virtualization/xva-img/default.nix b/nixpkgs/pkgs/tools/virtualization/xva-img/default.nix
new file mode 100644
index 000000000000..b4992947657d
--- /dev/null
+++ b/nixpkgs/pkgs/tools/virtualization/xva-img/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, lib, cmake, fetchFromGitHub, openssl }:
+
+stdenv.mkDerivation rec {
+  pname = "xva-img";
+  version = "1.4.1";
+
+  src = fetchFromGitHub {
+    owner = "eriklax";
+    repo = "xva-img";
+    rev = version;
+    sha256 = "1w3wrbrlgv7h2gdix2rmrmpjyla365kam5621a1aqjzwjqhjkwyq";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ openssl ];
+
+  meta = {
+    maintainers = with lib.maintainers; [ lheckemann willibutz globin ];
+    description = "Tool for converting Xen images to raw and back";
+    license = lib.licenses.gpl2;
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/nixpkgs/pkgs/tools/wayland/wayland-utils/default.nix b/nixpkgs/pkgs/tools/wayland/wayland-utils/default.nix
new file mode 100644
index 000000000000..23629309e52e
--- /dev/null
+++ b/nixpkgs/pkgs/tools/wayland/wayland-utils/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl
+, meson, pkg-config, ninja
+, wayland, wayland-protocols
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wayland-utils";
+  version = "1.0.0";
+
+  src = fetchurl {
+    url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz";
+    sha256 = "1h38l850ww6hxjb1l8iwa33nkbz8q88bw6lh0aryjyp8b16crzk4";
+  };
+
+  nativeBuildInputs = [ meson pkg-config ninja wayland ];
+  buildInputs = [ wayland wayland-protocols ];
+
+  meta = with stdenv.lib; {
+    description = "Wayland utilities (wayland-info)";
+    longDescription = ''
+      A collection of Wayland related utilities:
+      - wayland-info: A utility for displaying information about the Wayland
+        protocols supported by a Wayland compositor.
+    '';
+    homepage = "https://gitlab.freedesktop.org/wayland/wayland-utils";
+    license = licenses.mit; # Expat version
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ primeos ];
+  };
+}
diff --git a/nixpkgs/pkgs/top-level/agda-packages.nix b/nixpkgs/pkgs/top-level/agda-packages.nix
index 5b5b2d19181c..3209aff94968 100644
--- a/nixpkgs/pkgs/top-level/agda-packages.nix
+++ b/nixpkgs/pkgs/top-level/agda-packages.nix
@@ -24,5 +24,7 @@ let
     agda-categories = callPackage ../development/libraries/agda/agda-categories { };
 
     cubical = callPackage ../development/libraries/agda/cubical { };
+
+    generic = callPackage ../development/libraries/agda/generic { };
   };
 in mkAgdaPackages Agda
diff --git a/nixpkgs/pkgs/top-level/aliases.nix b/nixpkgs/pkgs/top-level/aliases.nix
index 38bead5ba9a5..8b3a58e7301e 100644
--- a/nixpkgs/pkgs/top-level/aliases.nix
+++ b/nixpkgs/pkgs/top-level/aliases.nix
@@ -42,7 +42,9 @@ mapAliases ({
   aircrackng = aircrack-ng; # added 2016-01-14
   alienfx = throw "alienfx has been removed."; # added 2019-12-08
   ammonite-repl = ammonite; # added 2017-05-02
+  antimicro = throw "antimicro has been removed as it was broken, see antimicroX instead."; # added 2020-08-06
   arduino_core = arduino-core;  # added 2015-02-04
+  arora = throw "arora has been removed."; # added 2020-09-09
   asciidocFull = asciidoc-full;  # added 2014-06-22
   at_spi2_atk = at-spi2-atk; # added 2018-02-25
   at_spi2_core = at-spi2-core; # added 2018-02-25
@@ -66,10 +68,12 @@ mapAliases ({
   buildGo112Module = throw "buildGo112Module has been removed"; # added 2020-04-26
   bundler_HEAD = bundler; # added 2015-11-15
   cantarell_fonts = cantarell-fonts; # added 2018-03-03
+  cargo-tree = throw "cargo-tree has been removed, use the builtin `cargo tree` command instead."; # added 2020-08-20
   casperjs = throw "casperjs has been removed, it was abandoned by upstream and broken.";
   catfish = xfce.catfish; # added 2019-12-22
   cgmanager = throw "cgmanager was deprecated by lxc and therefore removed from nixpkgs."; # added 2020-06-05
   checkbashism = checkbashisms; # added 2016-08-16
+  chronos = throw "chronos has been removed from nixpkgs, as it was unmaintained"; # added 2020-08-15
   cide = throw "deprecated in 2019-09-11: abandoned by upstream";
   cinepaint = throw "cinepaint has been removed from nixpkgs, as it was unmaintained"; # added 2019-12-10
   cifs_utils = cifs-utils; # added 2016-08
@@ -84,6 +88,7 @@ mapAliases ({
   coprthr = throw "coprthr has been removed."; # added 2019-12-08
   corebird = throw "deprecated 2019-10-02: See https://www.patreon.com/posts/corebirds-future-18921328. Please use Cawbird as replacement.";
   coredumper = throw "coredumper has been removed: Abandoned by upstream."; # added 2019-11-16
+  cryptol = throw "cryptol was remove for prolonged broken build"; # added 2020-08-21
   cpp-gsl = microsoft_gsl; # added 2019-05-24
   cupsBjnp = cups-bjnp; # added 2016-01-02
   cups_filters = cups-filters; # added 2016-08
@@ -100,6 +105,7 @@ mapAliases ({
   deadbeef-mpris2-plugin = deadbeefPlugins.mpris2; # added 2018-02-23
   deadpixi-sam = deadpixi-sam-unstable;
   debian_devscripts = debian-devscripts; # added 2016-03-23
+  deepin = throw "deepin was a work in progress and it has been canceled and removed https://github.com/NixOS/nixpkgs/issues/94870"; # added 2020-08-31
   desktop_file_utils = desktop-file-utils; # added 2018-02-25
   devicemapper = lvm2; # added 2018-04-25
   digikam5 = digikam; # added 2017-02-18
@@ -109,6 +115,7 @@ mapAliases ({
   docbook_xml_xslt = docbook_xsl; # added 2018-04-25
   double_conversion = double-conversion; # 2017-11-22
   docker_compose = docker-compose; # 2018-11-10
+  draftsight = throw "draftsight has been removed, no longer available as freeware"; # added 2020-08-14
   dwarf_fortress = dwarf-fortress; # added 2016-01-23
   emacsPackagesGen = emacsPackagesFor; # added 2018-08-18
   emacsPackagesNgGen = emacsPackagesFor; # added 2018-08-18
@@ -137,6 +144,15 @@ mapAliases ({
     fontconfig-ultimate has been removed. The repository has been archived upstream and activity has ceased for several years.
     https://github.com/bohoomil/fontconfig-ultimate/issues/171.
   '';
+  fontconfig-penultimate = throw ''
+    fontconfig-penultimate has been removed.
+    It was a fork of the abandoned fontconfig-ultimate.
+  '';
+  # 2020-07-21
+  fontconfig_210 = throw ''
+    fontconfig 2.10.x hasn't had a release in years, is vulnerable to CVE-2016-5384
+    and has only been used for old fontconfig caches.
+  '';
   font-droid = throw "font-droid has been deprecated by noto-fonts"; # 2019-04-12
   foomatic_filters = foomatic-filters;  # 2016-08
   fuse_exfat = exfat;                   # 2015-09-11
@@ -157,6 +173,7 @@ mapAliases ({
   gnome-themes-standard = gnome-themes-extra; # added 2018-03-14
   gnome_doc_utils = gnome-doc-utils; # added 2018-02-25
   gnome_themes_standard = gnome-themes-standard; # added 2018-02-25
+  gnunet_git = throw "gnunet_git was removed due to gnunet becoming stable"; # added 2019-05-27
   gnuradio-nacl = gr-nacl; # added 2019-05-27
   gnuradio-gsm = gr-gsm; # added 2019-05-27
   gnuradio-ais = gr-ais; # added 2019-05-27
@@ -164,6 +181,7 @@ mapAliases ({
   gnuradio-rds = gr-rds; # added 2019-05-27
   gnuradio-osmosdr = gr-osmosdr; # added 2019-05-27
   gnustep-make = gnustep.make; # added 2016-7-6
+  gnupg20 = throw "gnupg20 has been removed from nixpkgs as upstream dropped support on 2017-12-31";# added 2020-07-12
   go_1_12 = throw "go_1_12 has been removed"; # added 2020-04-26
   go-pup = pup; # added 2017-12-19
   gobjectIntrospection = gobject-introspection; # added 2018-12-02
@@ -173,11 +191,6 @@ mapAliases ({
   googleAuthenticator = google-authenticator; # added 2016-10-16
   grantlee5 = libsForQt5.grantlee;  # added 2015-12-19
   gsettings_desktop_schemas = gsettings-desktop-schemas; # added 2018-02-25
-  gst_plugins_bad = gst-plugins-bad;  # added 2017-02
-  gst_plugins_base = gst-plugins-base;  # added 2017-02
-  gst_plugins_good = gst-plugins-good;  # added 2017-02
-  gst_plugins_ugly = gst-plugins-ugly;  # added 2017-02
-  gst_python = gst-python;  # added 2017-02
   gtk_doc = gtk-doc; # added 2018-02-25
   guileCairo = guile-cairo; # added 2017-09-24
   guileGnome = guile-gnome; # added 2017-09-24
@@ -200,10 +213,12 @@ mapAliases ({
   idea = jetbrains; # added 2017-04-03
   infiniband-diags = rdma-core; # added 2019-08-09
   inotifyTools = inotify-tools;
+  jasper = throw "jasper has been removed: abandoned upstream with many vulnerabilities";
   jbuilder = dune; # added 2018-09-09
   jikes = throw "deprecated in 2019-10-07: jikes was abandoned by upstream";
   joseki = apache-jena-fuseki; # added 2016-02-28
   json_glib = json-glib; # added 2018-02-25
+  kdecoration-viewer = throw "kdecoration-viewer has been removed from nixpkgs, as there is no upstream activity"; # 2020-06-16
   kdiff3-qt5 = kdiff3; # added 2017-02-18
   keepass-keefox = keepass-keepassrpc; # backwards compatibility alias, added 2018-02
   keepassx-community = keepassxc; # added 2017-11
@@ -273,8 +288,10 @@ mapAliases ({
   m3d-linux = m33-linux; # added 2016-08-13
   man_db = man-db; # added 2016-05
   manpages = man-pages; # added 2015-12-06
+  marathon = throw "marathon has been removed from nixpkgs, as it's unmaintained"; # added 2020-08-15
   mariadb-client = hiPrio mariadb.client; #added 2019.07.28
   matcha = throw "matcha was renamed to matcha-gtk-theme"; # added 2020-05-09
+  mathics = throw "mathics has been removed from nixpkgs, as it's unmaintained"; # added 2020-08-15
   matrique = spectral; # added 2020-01-27
   mbedtls_1_3 = throw "mbedtls_1_3 is end of life, see https://tls.mbed.org/kb/how-to/upgrade-2.0"; # added 2019-12-08
   mess = mame; # added 2019-10-30
@@ -289,7 +306,9 @@ mapAliases ({
   # floating point textures patents are expired,
   # so package reduced to alias
   mesa_drivers = mesa.drivers;
+  mesos = throw "mesos has been removed from nixpkgs, as it's unmaintained"; # added 2020-08-15
   midoriWrapper = midori; # added 2015-01
+  mist = throw "mist has been removed as the upstream project has been abandoned, see https://github.com/ethereum/mist#mist-browser-deprecated"; # added 2020-08-15
   mlt-qt5 = libsForQt5.mlt;  # added 2015-12-19
   mobile_broadband_provider_info = mobile-broadband-provider-info; # added 2018-02-25
   moby = throw "moby has been removed, merged into linuxkit in 2018.  Use linuxkit instead.";
@@ -308,6 +327,7 @@ mapAliases ({
   nagiosPluginsOfficial = monitoring-plugins;
   ncat = nmap;  # added 2016-01-26
   netcat-openbsd = libressl.nc; # added 2018-04-25
+  netease-cloud-music = throw "netease-cloud-music has been removed together with deepin"; # added 2020-08-31
   networkmanager_fortisslvpn = networkmanager-fortisslvpn; # added 2018-02-25
   networkmanager_iodine = networkmanager-iodine; # added 2018-02-25
   networkmanager_l2tp = networkmanager-l2tp; # added 2018-02-25
@@ -334,6 +354,7 @@ mapAliases ({
   otter-browser = throw "otter-browser has been removed from nixpkgs, as it was unmaintained"; # added 2020-02-02
   owncloudclient = owncloud-client;  # added 2016-08
   p11_kit = p11-kit; # added 2018-02-25
+  parity = openethereum; # added 2020-08-01
   parquet-cpp = arrow-cpp; # added 2018-09-08
   pass-otp = pass.withExtensions (ext: [ext.pass-otp]); # added 2018-05-04
   perlXMLParser = perlPackages.XMLParser; # added 2018-10-12
@@ -346,7 +367,6 @@ mapAliases ({
     with the following snippet:
     php74.override { embedSupport = true; apxs2Support = false; }
   ''; # added 2020-04-01
-  php72-embed = php-embed; # added 2020-04-01
   php73-embed = php-embed; # added 2020-04-01
   php74-embed = php-embed; # added 2020-04-01
 
@@ -357,7 +377,6 @@ mapAliases ({
   ''; # added 2020-04-01
   php74Packages-embed = phpPackages-embed;
   php73Packages-embed = phpPackages-embed;
-  php72Packages-embed = phpPackages-embed;
 
   php-unit = throw ''
     php*-unit has been dropped, you can build something similar with
@@ -371,7 +390,6 @@ mapAliases ({
       fpmSupport = false;
     }
   ''; # added 2020-04-01
-  php72-unit = php-unit; # added 2020-04-01
   php73-unit = php-unit; # added 2020-04-01
   php74-unit = php-unit; # added 2020-04-01
 
@@ -389,7 +407,6 @@ mapAliases ({
   ''; # added 2020-04-01
   php74Packages-unit = phpPackages-unit;
   php73Packages-unit = phpPackages-unit;
-  php72Packages-unit = phpPackages-unit;
 
   pidgin-with-plugins = pidgin; # added 2016-06
   pidginlatex = pidgin-latex; # added 2018-01-08
@@ -441,6 +458,7 @@ mapAliases ({
   phonon = throw "Please use libsForQt5.phonon, as Qt4 support in this package has been removed."; # added 2019-11-22
   qca-qt5 = libsForQt5.qca-qt5;  # added 2015-12-19
   quake3game = ioquake3; # added 2016-01-14
+  qvim = throw "qvim has been removed."; # added 2020-08-31
   qwt6 = libsForQt5.qwt;  # added 2015-12-19
   qtpfsgui = throw "Is now luminanceHDR"; # added 2019-06-26
   quaternion-git = throw "quaternion-git has been removed in favor of the stable version 'quaternion'"; # added 2020-04-09
@@ -450,10 +468,13 @@ mapAliases ({
   rhc = throw "deprecated in 2019-04-09: abandoned by upstream.";
   rng_tools = rng-tools; # added 2018-10-24
   robomongo = robo3t; #added 2017-09-28
+  rocm-runtime-ext = throw "rocm-runtime-ext has been removed, since its functionality was added to rocm-runtime"; #added 2020-08-21
   rssglx = rss-glx; #added 2015-03-25
+  rssh = throw "rssh has been removed from nixpkgs: no upstream releases since 2012, several known CVEs"; # added 2020-08-25
   recordmydesktop = throw "recordmydesktop has been removed from nixpkgs, as it's unmaintained and uses deprecated libraries"; # added 2019-12-10
   gtk-recordmydesktop = throw "gtk-recordmydesktop has been removed from nixpkgs, as it's unmaintained and uses deprecated libraries"; # added 2019-12-10
   qt-recordmydesktop = throw "qt-recordmydesktop has been removed from nixpkgs, as it's abandoned and uses deprecated libraries"; # added 2019-12-10
+  rfkill = throw "rfkill has been removed, as it's included in util-linux"; # added 2020-08-23
   rkt = throw "rkt was archived by upstream"; # added 2020-05-16
   ruby_2_0_0 = throw "deprecated 2018-0213: use a newer version of ruby";
   ruby_2_1_0 = throw "deprecated 2018-0213: use a newer version of ruby";
@@ -490,9 +511,11 @@ mapAliases ({
   scim = sc-im; # added 2016-01-22
   scollector = bosun; # added 2018-04-25
   sdlmame = mame; # added 2019-10-30
+  seeks = throw "seeks has been removed from nixpkgs, as it was unmaintained"; # added 2020-06-21
   seg3d = throw "seg3d has been removed from nixpkgs (2019-11-10)";
   shared_mime_info = shared-mime-info; # added 2018-02-25
   skrooge2 = skrooge; # added 2017-02-18
+  sky = throw "sky has been removed from nixpkgs (2020-09-16)";
   skype = skypeforlinux; # added 2017-07-27
   skydive = throw "skydive has been removed from nixpkgs (2019-09-10)";
   slack-dark = slack; # added 2020-03-27
@@ -542,7 +565,10 @@ mapAliases ({
   suil-qt5 = suil; # added 2018-05-01
   surf-webkit2 = surf; # added 2017-04-02
   sup = throw "deprecated in 2019-09-10: abandoned by upstream";
+  swfdec = throw "swfdec has been removed as broken and unmaintained."; # added 2020-08-23
   system_config_printer = system-config-printer;  # added 2016-01-03
+  systemd-cryptsetup-generator = throw "systemd-cryptsetup-generator is now included in the systemd package"; # added 2020-07-12
+  systemd_with_lvm2 = throw "obsolete, enabled by default via the lvm module"; # added 2020-07-12
   systool = sysfsutils; # added 2018-04-25
   tahoelafs = tahoe-lafs; # added 2018-03-26
   tangogps = foxtrotgps; # added 2020-01-26
@@ -553,6 +579,7 @@ mapAliases ({
   telepathy_idle = telepathy-idle; # added 2018-02-25
   telepathy_logger = telepathy-logger; # added 2018-02-25
   telepathy_mission_control = telepathy-mission-control; # added 2018-02-25
+  telepathy-qt = throw "telepathy-qt no longer supports Qt 4. Please use libsForQt5.telepathy instead."; # added 2020-07-02
   telepathy_qt = telepathy-qt; # added 2018-02-25
   telepathy_qt5 = libsForQt5.telepathy;  # added 2015-12-19
   telepathy_salut = telepathy-salut; # added 2018-02-25
@@ -575,6 +602,7 @@ mapAliases ({
   torch-repl = throw "torch-repl has been removed, as the upstream project has been abandoned"; # added 2020-03-28
   torchPackages = throw "torchPackages has been removed, as the upstream project has been abandoned"; # added 2020-03-28
   trang = jing-trang; # added 2018-04-25
+  transcribe = throw "transcribe has been removed after being marked a broken for over a year"; # added 2020-09-16
   transmission_gtk = transmission-gtk; # added 2018-01-06
   transmission_remote_gtk = transmission-remote-gtk; # added 2018-01-06
   transporter = throw "transporter has been removed. It was archived upstream, so it's considered abandoned.";
@@ -613,6 +641,7 @@ mapAliases ({
   xfce4-14 = xfce;
   xfce4-12 = throw "xfce4-12 has been replaced by xfce4-14"; # added 2020-03-14
   x11 = xlibsWrapper; # added 2015-09
+  xara = throw "xara has been removed from nixpkgs. Unmaintained since 2006"; # added 2020-06-24
   xbmc = kodi; # added 2018-04-25
   xbmcPlain = kodiPlain; # added 2018-04-25
   xbmcPlugins = kodiPlugins; # added 2018-04-25
@@ -652,24 +681,19 @@ mapAliases ({
     ocamlPackages_4_03
     ocamlPackages_latest;
 
-  gst_all = { # added 2018-04-25
-    inherit (pkgs) gstreamer gnonlin gst-python;
-    gstPluginsBase = pkgs.gst-plugins-base;
-    gstPluginsBad = pkgs.gst-plugins-bad;
-    gstPluginsGood = pkgs.gst-plugins-good;
-    gstPluginsUgly = pkgs.gst-plugins-ugly;
-    gst-plugins-base = pkgs.gst-plugins-base;
-    gst-plugins-bad = pkgs.gst-plugins-bad;
-    gst-plugins-good = pkgs.gst-plugins-good;
-    gst-plugins-ugly = pkgs.gst-plugins-ugly;
-  };
-
   # added 2019-08-01
   mumble_git = pkgs.mumble;
   murmur_git = pkgs.murmur;
 
+  # added 2020-08-17
+  zabbix44 = throw "Zabbix 4.4 is end of life, see https://www.zabbix.com/documentation/current/manual/installation/upgrade_notes_500 for details on upgrading to Zabbix 5.0.";
+
   # added 2019-09-06
   zeroc_ice = pkgs.zeroc-ice;
+
+  # added 2020-06-22
+  zeromq3 = throw "zeromq3 has been deprecated by zeromq4.";
+  jzmq = throw "jzmq has been removed from nixpkgs, as it was unmaintained";
 } // (with ocaml-ng; { # added 2016-09-14
   ocaml_4_00_1 = ocamlPackages_4_00_1.ocaml;
   ocaml_4_01_0 = ocamlPackages_4_01_0.ocaml;
@@ -688,23 +712,6 @@ mapAliases ({
   # added 2020-02-09
   dina-font-pcf = dina-font;
 
-    /* Cleanup before 20.09 */
-  llvm_4 = throw ''
-    The LLVM versions 3.5, 3.9 and 4.0 have been removed in NixOS 20.03
-    due to a lack of compatibility with glibc 2.30!
-  '';
-  llvm_39 = llvm_4;
-  llvm_35 = llvm_4;
-  lld_4 = llvm_4;
-
-  llvmPackages_4 = llvm_4;
-  llvmPackages_39 = llvm_4;
-  llvmPackages_35 = llvm_4;
-
-  clang_39 = llvm_4;
-  clang_35 = llvm_4;
-  clang_4 = llvm_4;
-
   # added 2019-04-13
   # *-polly pointed to llvmPackages_latest
   llvm-polly = throw "clang is now built with polly-plugin by default";
@@ -721,4 +728,8 @@ mapAliases ({
   sqldeveloper_18 = throw "sqldeveloper_18 is not maintained anymore!"; # added 2020-02-04
 
   gcc-snapshot = throw "Marked as broken for >2 years, additionally this 'snapshot' pointed to a fairly old one from gcc7.";
+
+  /* Cleanup before 21.03 */
+  riot-desktop = throw "riot-desktop is now element-desktop!";
+  riot-web = throw "riot-web is now element-web";
 })
diff --git a/nixpkgs/pkgs/top-level/all-packages.nix b/nixpkgs/pkgs/top-level/all-packages.nix
index 9252fb110ba9..65d5934ecf3b 100644
--- a/nixpkgs/pkgs/top-level/all-packages.nix
+++ b/nixpkgs/pkgs/top-level/all-packages.nix
@@ -94,6 +94,8 @@ in
 
   genericUpdater = callPackage ../common-updater/generic-updater.nix { };
 
+  nix-update-script = callPackage ../common-updater/nix-update.nix { };
+
   ### Push NixOS tests inside the fixed point
 
   nixosTests = import ../../nixos/tests/all-tests.nix {
@@ -119,7 +121,11 @@ in
   autoPatchelfHook = makeSetupHook { name = "auto-patchelf-hook"; }
     ../build-support/setup-hooks/auto-patchelf.sh;
 
-  appimageTools = callPackage ../build-support/appimage { };
+  appimageTools = callPackage ../build-support/appimage {
+    buildFHSUserEnv = buildFHSUserEnvBubblewrap;
+  };
+
+  appindicator-sharp = callPackage ../development/libraries/appindicator-sharp { };
 
   ensureNewerSourcesHook = { year }: makeSetupHook {}
     (writeScript "ensure-newer-sources-hook.sh" ''
@@ -132,6 +138,8 @@ in
 
   addOpenGLRunpath = callPackage ../build-support/add-opengl-runpath { };
 
+  alda = callPackage ../development/interpreters/alda { };
+
   ankisyncd = callPackage ../servers/ankisyncd { };
 
   avro-tools = callPackage ../development/tools/avro-tools { };
@@ -151,7 +159,10 @@ in
 
   buildEnv = callPackage ../build-support/buildenv { }; # not actually a package
 
-  buildFHSUserEnv = callPackage ../build-support/build-fhs-userenv { };
+  # TODO: eventually migrate everything to buildFHSUserEnvBubblewrap
+  buildFHSUserEnv = buildFHSUserEnvChroot;
+  buildFHSUserEnvChroot = callPackage ../build-support/build-fhs-userenv { };
+  buildFHSUserEnvBubblewrap = callPackage ../build-support/build-fhs-userenv-bubblewrap { };
 
   buildMaven = callPackage ../build-support/build-maven.nix {};
 
@@ -173,6 +184,8 @@ in
 
   colorz = callPackage ../tools/misc/colorz { };
 
+  colorpicker = callPackage ../tools/misc/colorpicker { };
+
   comedilib = callPackage ../development/libraries/comedilib {  };
 
   cpu-x = callPackage ../applications/misc/cpu-x { };
@@ -183,10 +196,14 @@ in
 
   deadcode = callPackage ../development/tools/deadcode { };
 
+  eclipse-mat = callPackage ../development/tools/eclipse-mat { };
+
   glade = callPackage ../development/tools/glade { };
 
   hobbes = callPackage ../development/tools/hobbes { };
 
+  html5validator = python36Packages.callPackage ../applications/misc/html5validator { };
+
   proto-contrib = callPackage ../development/tools/proto-contrib {};
 
   protoc-gen-doc = callPackage ../development/tools/protoc-gen-doc {};
@@ -201,6 +218,8 @@ in
 
   onesixtyone = callPackage ../tools/security/onesixtyone {};
 
+  creddump = callPackage ../tools/security/creddump {};
+
   device-tree_rpi = callPackage ../os-specific/linux/device-tree/raspberrypi.nix {};
 
   diffPlugins = (callPackage ../build-support/plugins.nix {}).diffPlugins;
@@ -209,11 +228,13 @@ in
 
   archiver = callPackage ../applications/misc/archiver { };
 
-  digitalbitbox = libsForQt5.callPackage ../applications/misc/digitalbitbox { };
+  digitalbitbox = libsForQt514.callPackage ../applications/misc/digitalbitbox { };
 
   grsync = callPackage ../applications/misc/grsync { };
 
-  dockerTools = callPackage ../build-support/docker { };
+  dockerTools = callPackage ../build-support/docker {
+    writePython3 = writers.writePython3;
+  };
 
   snapTools = callPackage ../build-support/snap { };
 
@@ -245,6 +266,8 @@ in
 
   dotnet-sdk_3 = dotnetCorePackages.sdk_3_1;
 
+  dotnet-sdk_5 = dotnetCorePackages.sdk_5_0;
+
   dotnet-netcore = dotnetCorePackages.netcore_2_1;
 
   dotnet-aspnetcore = dotnetCorePackages.aspnetcore_2_1;
@@ -255,7 +278,7 @@ in
 
   dispad = callPackage ../tools/X11/dispad { };
 
-  dupeguru = callPackage ../applications/misc/dupeguru { };
+  dupeguru = callPackage ../applications/misc/dupeguru { qt5 = qt514; };
 
   dump1090 = callPackage ../applications/radio/dump1090 { };
 
@@ -263,6 +286,8 @@ in
 
   etBook = callPackage ../data/fonts/et-book { };
 
+  fet-sh = callPackage ../tools/misc/fet-sh { };
+
   fetchbower = callPackage ../build-support/fetchbower {
     inherit (nodePackages) bower2nix;
   };
@@ -331,6 +356,7 @@ in
    then buildPackages.fetchurl # No need to do special overrides twice,
    else makeOverridable (import ../build-support/fetchurl) {
     inherit lib stdenvNoCC buildPackages;
+    inherit cacert;
     curl = buildPackages.curl.override (old: rec {
       # break dependency cycles
       fetchurl = stdenv.fetchurlBoot;
@@ -497,9 +523,7 @@ in
 
   findXMLCatalogs = makeSetupHook { } ../build-support/setup-hooks/find-xml-catalogs.sh;
 
-  wrapGAppsHook = makeSetupHook {
-    deps = lib.optional (!stdenv.isDarwin) dconf.lib ++ [ gtk3 librsvg makeWrapper ];
-  } ../build-support/setup-hooks/wrap-gapps-hook.sh;
+  wrapGAppsHook = callPackage ../build-support/setup-hooks/wrap-gapps-hook { };
 
   separateDebugInfo = makeSetupHook { } ../build-support/setup-hooks/separate-debug-info.sh;
 
@@ -518,6 +542,9 @@ in
   #package writers
   writers = callPackage ../build-support/writers {};
 
+  # lib functions depending on pkgs
+  inherit (import ../pkgs-lib { inherit lib pkgs; }) formats;
+
   ### TOOLS
 
   _0x0 = callPackage ../tools/misc/0x0 { };
@@ -528,6 +555,8 @@ in
 
   _1password = callPackage ../applications/misc/1password { };
 
+  _1password-gui = callPackage ../tools/security/1password-gui { };
+
   _6tunnel = callPackage ../tools/networking/6tunnel { };
 
   _9pfs = callPackage ../tools/filesystems/9pfs { };
@@ -554,7 +583,10 @@ in
 
   acpica-tools = callPackage ../tools/system/acpica-tools { };
 
-  act = callPackage ../development/tools/misc/act {};
+  act = callPackage ../development/tools/misc/act {
+    # go 1.15 cannot connect to docker-for-mac https://github.com/docker/for-mac/issues/4855
+    buildGoModule = if stdenv.isDarwin then buildGo114Module else buildGoModule;
+  };
 
   actdiag = with python3.pkgs; toPythonApplication actdiag;
 
@@ -564,6 +596,8 @@ in
 
   adlplug = callPackage ../applications/audio/adlplug { };
 
+  tuijam = callPackage ../applications/audio/tuijam { inherit (python3Packages) buildPythonApplication; };
+
   opnplug = callPackage ../applications/audio/adlplug {
     adlplugChip = "-DADLplug_CHIP=OPN2";
     pname = "OPNplug";
@@ -587,7 +621,7 @@ in
 
   aescrypt = callPackage ../tools/misc/aescrypt { };
 
-  acme-client = callPackage ../tools/networking/acme-client { inherit (darwin) apple_sdk; };
+  acme-client = callPackage ../tools/networking/acme-client { inherit (darwin) apple_sdk; stdenv = gccStdenv; };
 
   amass = callPackage ../tools/networking/amass { };
 
@@ -599,6 +633,8 @@ in
     stdenv = clangStdenv;
   };
 
+  honggfuzz = callPackage ../tools/security/honggfuzz { };
+
   aflplusplus = callPackage ../tools/security/aflplusplus {
     clang = clang_9;
     llvm = llvm_9;
@@ -645,6 +681,8 @@ in
 
   almanah = callPackage ../applications/misc/almanah { };
 
+  alpine-make-vm-image = callPackage ../tools/virtualization/alpine-make-vm-image { };
+
   amazon-ecs-cli = callPackage ../tools/virtualization/amazon-ecs-cli { };
 
   amazon-glacier-cmd-interface = callPackage ../tools/backup/amazon-glacier-cmd-interface { };
@@ -672,6 +710,10 @@ in
 
   apfs-fuse = callPackage ../tools/filesystems/apfs-fuse { };
 
+  apk-tools = callPackage ../tools/package-management/apk-tools {
+    lua = lua5_3;
+  };
+
   apktool = callPackage ../development/tools/apktool {
     inherit (androidenv.androidPkgs_9_0) build-tools;
   };
@@ -701,11 +743,13 @@ in
 
   arduino = arduino-core.override { withGui = true; };
 
+  arduino-cli = callPackage ../development/arduino/arduino-cli { };
+
   arduino-core = callPackage ../development/arduino/arduino-core { };
 
   arduino-mk = callPackage ../development/arduino/arduino-mk {};
 
-  apitrace = libsForQt5.callPackage ../applications/graphics/apitrace {};
+  apitrace = libsForQt514.callPackage ../applications/graphics/apitrace {};
 
   arguments = callPackage ../development/libraries/arguments { };
 
@@ -730,8 +774,14 @@ in
 
   asciinema = callPackage ../tools/misc/asciinema {};
 
+  asciinema-scenario = callPackage ../tools/misc/asciinema-scenario {};
+
   asciiquarium = callPackage ../applications/misc/asciiquarium {};
 
+  ashuffle = callPackage ../applications/audio/ashuffle {};
+
+  asls = callPackage ../development/tools/misc/asls { };
+
   asymptote = callPackage ../tools/graphics/asymptote {
     texLive = texlive.combine { inherit (texlive) scheme-small epsf cm-super texinfo; };
     gsl = gsl_1;
@@ -757,6 +807,8 @@ in
 
   awscli = callPackage ../tools/admin/awscli { };
 
+  awscli2 = callPackage ../tools/admin/awscli2 { };
+
   awsebcli = callPackage ../tools/virtualization/awsebcli {};
 
   awslogs = callPackage ../tools/admin/awslogs { };
@@ -769,8 +821,6 @@ in
 
   aws-rotate-key = callPackage ../tools/admin/aws-rotate-key { };
 
-  aws_shell = callPackage ../tools/admin/aws_shell { };
-
   aws-sam-cli = callPackage ../development/tools/aws-sam-cli { python = python3; };
 
   aws-vault = callPackage ../tools/admin/aws-vault { };
@@ -789,10 +839,12 @@ in
 
   brakeman = callPackage ../development/tools/analysis/brakeman { };
 
-  brewtarget = libsForQt5.callPackage ../applications/misc/brewtarget { } ;
+  brewtarget = libsForQt514.callPackage ../applications/misc/brewtarget { } ;
 
   boxes = callPackage ../tools/text/boxes { };
 
+  chamber = callPackage ../tools/admin/chamber {  };
+
   ec2_api_tools = callPackage ../tools/virtualization/ec2-api-tools { };
 
   ec2_ami_tools = callPackage ../tools/virtualization/ec2-ami-tools { };
@@ -825,6 +877,8 @@ in
 
   automirror = callPackage ../tools/misc/automirror { };
 
+  barman = python3Packages.callPackage ../tools/misc/barman { };
+
   bash-my-aws = callPackage ../tools/admin/bash-my-aws { };
 
   bashcards = callPackage ../tools/misc/bashcards { };
@@ -854,6 +908,8 @@ in
 
   boulder = callPackage ../tools/admin/boulder { };
 
+  btrfs-heatmap = callPackage ../tools/filesystems/btrfs-heatmap { };
+
   buildbot = with python3Packages; toPythonApplication buildbot;
   buildbot-ui = with python3Packages; toPythonApplication buildbot-ui;
   buildbot-full = with python3Packages; toPythonApplication buildbot-full;
@@ -876,6 +932,8 @@ in
     withDriver = false;
   };
 
+  chroma = callPackage ../tools/text/chroma { };
+
   clair = callPackage ../tools/admin/clair { };
 
   cloud-sql-proxy = callPackage ../tools/misc/cloud-sql-proxy { };
@@ -884,6 +942,8 @@ in
 
   container-linux-config-transpiler = callPackage ../development/tools/container-linux-config-transpiler { };
 
+  fedora-coreos-config-transpiler = callPackage ../development/tools/fedora-coreos-config-transpiler { };
+
   ccextractor = callPackage ../applications/video/ccextractor { };
 
   cconv = callPackage ../tools/text/cconv { };
@@ -896,10 +956,16 @@ in
 
   cloud-custodian = python3Packages.callPackage ../tools/networking/cloud-custodian  { };
 
+  cod = callPackage ../tools/misc/cod { };
+
   codespell = with python3Packages; toPythonApplication codespell;
 
+  coolreader = libsForQt5.callPackage ../applications/misc/coolreader {};
+
   cozy = callPackage ../applications/audio/cozy-audiobooks { };
 
+  cpuid = callPackage ../os-specific/linux/cpuid { };
+
   ctrtool = callPackage ../tools/archivers/ctrtool { };
 
   crowbar = callPackage ../tools/security/crowbar { };
@@ -908,6 +974,8 @@ in
 
   crc32c = callPackage ../development/libraries/crc32c { };
 
+  crcpp = callPackage ../development/libraries/crcpp { };
+
   cudd = callPackage ../development/libraries/cudd { };
 
   cue = callPackage ../development/tools/cue { };
@@ -919,6 +987,8 @@ in
 
   detect-secrets = python3Packages.callPackage ../development/tools/detect-secrets { };
 
+  diskonaut = callPackage ../tools/misc/diskonaut { };
+
   diskus = callPackage ../tools/misc/diskus {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -931,6 +1001,12 @@ in
 
   dpt-rp1-py = callPackage ../tools/misc/dpt-rp1-py { };
 
+  dot-http = callPackage ../development/tools/dot-http {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  doona = callPackage ../tools/security/doona { };
+
   ecdsautils = callPackage ../tools/security/ecdsautils { };
 
   sedutil = callPackage ../tools/security/sedutil { };
@@ -955,20 +1031,32 @@ in
 
   libfx2 = with python3Packages; toPythonApplication fx2;
 
+  fastmod = callPackage ../tools/text/fastmod {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   fitnesstrax = callPackage ../applications/misc/fitnesstrax/default.nix { };
 
   fxlinuxprintutil = callPackage ../tools/misc/fxlinuxprintutil { };
 
-  genpass = callPackage ../tools/security/genpass { };
+  genpass = callPackage ../tools/security/genpass {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
 
   genymotion = callPackage ../development/mobile/genymotion { };
 
   gaia = callPackage ../development/libraries/gaia { };
 
+  gama = callPackage ../applications/science/geometry/gama { };
+
   gamecube-tools = callPackage ../development/tools/gamecube-tools { };
 
+  gammy = qt5.callPackage ../tools/misc/gammy { };
+
   gams = callPackage ../tools/misc/gams (config.gams or {});
 
+  gem = callPackage ../applications/audio/pd-plugins/gem { };
+
   git-fire = callPackage ../tools/misc/git-fire { };
 
   git-repo-updater = python3Packages.callPackage ../development/tools/git-repo-updater { };
@@ -1013,12 +1101,16 @@ in
 
   glyr = callPackage ../tools/audio/glyr { };
 
+  google-amber = callPackage ../tools/graphics/amber { };
+
   hpe-ltfs = callPackage ../tools/backup/hpe-ltfs { };
 
   http2tcp = callPackage ../tools/networking/http2tcp { };
 
   httperf = callPackage ../tools/networking/httperf { };
 
+  hwi = with python3Packages; toPythonApplication hwi;
+
   ili2c = callPackage ../tools/misc/ili2c { };
 
   imageworsener = callPackage ../tools/graphics/imageworsener { };
@@ -1037,6 +1129,7 @@ in
 
   pass-wayland = callPackage ../tools/security/pass {
     waylandSupport = true;
+    pass = pass-wayland;
   };
 
   passExtensions = recurseIntoAttrs pass.extensions;
@@ -1085,6 +1178,8 @@ in
 
   wiiload = callPackage ../development/tools/wiiload { };
 
+  wiimms-iso-tools = callPackage ../tools/filesystems/wiimms-iso-tools { };
+
   xcodeenv = callPackage ../development/mobile/xcodeenv { };
 
   ssh-agents = callPackage ../tools/networking/ssh-agents { };
@@ -1111,6 +1206,7 @@ in
 
   androidndkPkgs = androidndkPkgs_18b;
   androidndkPkgs_18b = (callPackage ../development/androidndk-pkgs {})."18b";
+  androidndkPkgs_21 = (callPackage ../development/androidndk-pkgs {})."21";
 
   androidsdk_9_0 = androidenv.androidPkgs_9_0.androidsdk;
 
@@ -1168,6 +1264,7 @@ in
   axoloti = callPackage ../applications/audio/axoloti {
     gcc-arm-embedded = pkgsCross.arm-embedded.buildPackages.gcc;
     binutils-arm-embedded = pkgsCross.arm-embedded.buildPackages.binutils;
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
   dfu-util-axoloti = callPackage ../applications/audio/axoloti/dfu-util.nix { };
   libusb1-axoloti = callPackage ../applications/audio/axoloti/libusb1.nix {
@@ -1175,7 +1272,10 @@ in
     inherit (darwin.apple_sdk.frameworks) IOKit;
   };
 
-  azureus = callPackage ../tools/networking/p2p/azureus { };
+  azureus = callPackage ../tools/networking/p2p/azureus {
+    jdk = jdk8;
+    swt = swt_jdk8;
+  };
 
   b3sum = callPackage ../tools/security/b3sum {};
 
@@ -1255,7 +1355,7 @@ in
 
   bindfs = callPackage ../tools/filesystems/bindfs { };
 
-  birdtray = libsForQt5.callPackage ../applications/misc/birdtray { };
+  birdtray = libsForQt514.callPackage ../applications/misc/birdtray { };
 
   bitbucket-cli = python2Packages.bitbucket-cli;
 
@@ -1279,6 +1379,8 @@ in
 
   quaternion = libsForQt5.callPackage ../applications/networking/instant-messengers/quaternion { };
 
+  mirage-im = libsForQt5.callPackage ../applications/networking/instant-messengers/mirage {};
+
   tensor = libsForQt5.callPackage ../applications/networking/instant-messengers/tensor { };
 
   libtensorflow-bin = callPackage ../development/libraries/science/math/tensorflow/bin.nix {
@@ -1293,12 +1395,19 @@ in
     then python.pkgs.tensorflow.libtensorflow
     else libtensorflow-bin;
 
+  libtorch-bin = callPackage ../development/libraries/science/math/libtorch/bin.nix {
+    inherit (linuxPackages) nvidia_x11;
+    cudaSupport = pkgs.config.cudaSupport or false;
+  };
+
   behdad-fonts = callPackage ../data/fonts/behdad-fonts { };
 
   bless = callPackage ../applications/editors/bless { };
 
   blink1-tool = callPackage ../tools/misc/blink1-tool { };
 
+  blis = callPackage ../development/libraries/science/math/blis { };
+
   bliss = callPackage ../applications/science/math/bliss { };
 
   blobfuse = callPackage ../tools/filesystems/blobfuse { };
@@ -1321,7 +1430,7 @@ in
 
   boringtun = callPackage ../tools/networking/boringtun { };
 
-  boomerang = libsForQt5.callPackage ../development/tools/boomerang { };
+  boomerang = libsForQt512.callPackage ../development/tools/boomerang { };
 
   boost-build = callPackage ../development/tools/boost-build { };
 
@@ -1331,6 +1440,8 @@ in
 
   boxfs = callPackage ../tools/filesystems/boxfs { };
 
+  bpytop = callPackage ../tools/system/bpytop { };
+
   brasero-original = lowPrio (callPackage ../tools/cd-dvd/brasero { });
 
   brasero = callPackage ../tools/cd-dvd/brasero/wrapper.nix { };
@@ -1394,7 +1505,6 @@ in
   bs-platform = callPackage ../development/compilers/bs-platform {};
 
   c3d = callPackage ../applications/graphics/c3d {
-    stdenv = gcc8Stdenv;
     inherit (darwin.apple_sdk.frameworks) Cocoa;
   };
 
@@ -1421,10 +1531,16 @@ in
   });
 
   caddy = callPackage ../servers/caddy { };
-  caddy2 = callPackage ../servers/caddy/v2.nix { };
-  traefik = callPackage ../servers/traefik { };
+  caddy1 = callPackage ../servers/caddy/v1.nix {
+    # https://github.com/lucas-clemente/quic-go/issues/2614
+    buildGoModule = buildGo114Module;
+  };
 
-  calamares = libsForQt5.callPackage ../tools/misc/calamares {
+  # Traefik 2.2 uses go1.14, pinning can be removed with 2.3
+  # https://github.com/containous/traefik/issues/7234#issuecomment-684950612
+  traefik = callPackage ../servers/traefik { buildGoModule = buildGo114Module; };
+
+  calamares = libsForQt514.callPackage ../tools/misc/calamares {
     python = python3;
     boost = pkgs.boost.override { python = python3; };
   };
@@ -1529,6 +1645,8 @@ in
 
   colpack = callPackage ../applications/science/math/colpack { };
 
+  commitizen = callPackage ../applications/version-management/commitizen {};
+
   compactor = callPackage ../applications/networking/compactor { };
 
   consul = callPackage ../servers/consul { };
@@ -1588,6 +1706,8 @@ in
 
   compsize = callPackage ../os-specific/linux/compsize { };
 
+  cot = with python3Packages; toPythonApplication cot;
+
   coturn = callPackage ../servers/coturn { };
 
   coursier = callPackage ../development/tools/coursier {};
@@ -1624,6 +1744,8 @@ in
 
   dante = callPackage ../servers/dante { };
 
+  dapr-cli = callPackage ../development/tools/dapr/cli {};
+
   dasher = callPackage ../applications/accessibility/dasher { };
 
   datamash = callPackage ../tools/misc/datamash { };
@@ -1640,6 +1762,8 @@ in
 
   dconf = callPackage ../development/libraries/dconf { };
 
+  dcw-gmt = callPackage ../applications/gis/gmt/dcw.nix { };
+
   ddar = callPackage ../tools/backup/ddar { };
 
   ddate = callPackage ../tools/misc/ddate { };
@@ -1678,6 +1802,10 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  dijo = callPackage ../tools/misc/dijo {
+    inherit (darwin.apple_sdk.frameworks) CoreServices;
+  };
+
   ding = callPackage ../applications/misc/ding {
     aspellDicts_de = aspellDicts.de;
     aspellDicts_en = aspellDicts.en;
@@ -1691,6 +1819,8 @@ in
 
   discount = callPackage ../tools/text/discount { };
 
+  discocss = callPackage ../tools/misc/discocss { };
+
   disk-filltest = callPackage ../tools/system/disk-filltest { };
 
   diskscan = callPackage ../tools/misc/diskscan { };
@@ -1715,8 +1845,12 @@ in
 
   dokuwiki = callPackage ../servers/web-apps/dokuwiki { };
 
+  doppler = callPackage ../tools/security/doppler {};
+
   dosage = callPackage ../applications/graphics/dosage { };
 
+  dot-merlin-reader = callPackage ../development/tools/ocaml/merlin/dot-merlin-reader.nix { };
+
   dozenal = callPackage ../applications/misc/dozenal { };
 
   dpic = callPackage ../tools/graphics/dpic { };
@@ -1733,7 +1867,9 @@ in
 
   dua = callPackage ../tools/misc/dua { };
 
-  inherit (ocamlPackages) dune dune_2;
+  duf = callPackage ../tools/misc/duf { };
+
+  inherit (ocamlPackages) dune dune_2 dune-release;
 
   duperemove = callPackage ../tools/filesystems/duperemove { };
 
@@ -1764,6 +1900,14 @@ in
 
   eksctl = callPackage ../tools/admin/eksctl { };
 
+  electronplayer = callPackage ../applications/video/electronplayer/electronplayer.nix { };
+
+  element-desktop = callPackage ../applications/networking/instant-messengers/element/element-desktop.nix { };
+
+  element-web = callPackage ../applications/networking/instant-messengers/element/element-web.nix {
+    conf = config.element-web.conf or {};
+  };
+
   elementary-xfce-icon-theme = callPackage ../data/icons/elementary-xfce-icon-theme { };
 
   ell = callPackage ../os-specific/linux/ell { };
@@ -1784,7 +1928,9 @@ in
 
   eschalot = callPackage ../tools/security/eschalot { };
 
-  esphome = callPackage ../servers/home-assistant/esphome.nix { };
+  espanso = callPackage ../applications/office/espanso { };
+
+  esphome = callPackage ../tools/misc/esphome { };
 
   esptool = callPackage ../tools/misc/esptool { };
 
@@ -1820,6 +1966,8 @@ in
 
   filebench = callPackage ../tools/misc/filebench { };
 
+  filebot = callPackage ../applications/video/filebot { };
+
   fileshare = callPackage ../servers/fileshare {};
 
   fileshelter = callPackage ../servers/web-apps/fileshelter { };
@@ -1836,7 +1984,9 @@ in
 
   fsql = callPackage ../tools/misc/fsql { };
 
-  fop = callPackage ../tools/typesetting/fop { };
+  fop = callPackage ../tools/typesetting/fop {
+    jdk = openjdk8;
+  };
 
   fondu = callPackage ../tools/misc/fondu { };
 
@@ -1846,6 +1996,16 @@ in
 
   futhark = haskell.lib.justStaticExecutables haskellPackages.futhark;
 
+  tllist = callPackage ../development/libraries/tllist { };
+
+  fcft = callPackage ../development/libraries/fcft { };
+
+  fuzzel = callPackage ../applications/misc/fuzzel { };
+
+  flashfocus = python3Packages.callPackage ../misc/flashfocus { };
+
+  qt-video-wlr = libsForQt5.callPackage ../applications/misc/qt-video-wlr { };
+
   fwup = callPackage ../tools/misc/fwup { };
 
   fx_cast_bridge = callPackage ../tools/misc/fx_cast { };
@@ -1864,6 +2024,8 @@ in
 
   gdrive = callPackage ../applications/networking/gdrive { };
 
+  go-rice = callPackage ../tools/misc/go.rice {};
+
   go-2fa = callPackage ../tools/security/2fa {};
 
   go-dependency-manager = callPackage ../development/tools/gdm { };
@@ -1906,18 +2068,25 @@ in
 
   gmic = callPackage ../tools/graphics/gmic { };
 
-  gmic-qt = libsForQt5.callPackage ../tools/graphics/gmic-qt { };
+  gmic-qt = libsForQt514.callPackage ../tools/graphics/gmic-qt { };
 
   gmic-qt-krita = gmic-qt.override {
     variant = "krita";
   };
 
+  gmt = callPackage ../applications/gis/gmt {
+    inherit (darwin.apple_sdk.frameworks)
+      Accelerate CoreGraphics CoreVideo;
+  };
+
   goa = callPackage ../development/tools/goa { };
 
   gohai = callPackage ../tools/system/gohai { };
 
   gorilla-bin = callPackage ../tools/security/gorilla-bin { };
 
+  godu = callPackage ../tools/misc/godu { };
+
   gosu = callPackage ../tools/misc/gosu { };
 
   gotify-cli = callPackage ../tools/misc/gotify-cli { };
@@ -1932,7 +2101,9 @@ in
 
   gringo = callPackage ../tools/misc/gringo { };
 
-  grobi = callPackage ../tools/X11/grobi { };
+  grobi = callPackage ../tools/X11/grobi {
+    buildGoModule = buildGo114Module;
+  };
 
   gscan2pdf = callPackage ../applications/graphics/gscan2pdf { };
 
@@ -1940,6 +2111,8 @@ in
 
   gthree = callPackage ../development/libraries/gthree { };
 
+  gtg = callPackage ../applications/office/gtg { };
+
   gti = callPackage ../tools/misc/gti { };
 
   hdate = callPackage ../applications/misc/hdate { };
@@ -1964,6 +2137,8 @@ in
 
   hr = callPackage ../applications/misc/hr { };
 
+  humioctl = callPackage ../applications/logging/humioctl {};
+
   hyx = callPackage ../tools/text/hyx { };
 
   icdiff = callPackage ../tools/text/icdiff {};
@@ -1974,6 +2149,8 @@ in
 
   jellyfin = callPackage ../servers/jellyfin { };
 
+  jellyfin_10_5 = callPackage ../servers/jellyfin/10.5.x.nix { };
+
   jellyfin-mpv-shim = python3Packages.callPackage ../applications/video/jellyfin-mpv-shim { };
 
   jotta-cli = callPackage ../applications/misc/jotta-cli { };
@@ -2016,31 +2193,37 @@ in
 
   long-shebang = callPackage ../misc/long-shebang {};
 
+  lowdown = callPackage ../tools/typesetting/lowdown { };
+
   numatop = callPackage ../os-specific/linux/numatop { };
 
+  numworks-udev-rules = callPackage ../os-specific/linux/numworks-udev-rules { };
+
   iio-sensor-proxy = callPackage ../os-specific/linux/iio-sensor-proxy { };
 
   ipvsadm = callPackage ../os-specific/linux/ipvsadm { };
 
   ir-standard-fonts = callPackage ../data/fonts/ir-standard-fonts { };
 
+  kaggle = with python3Packages; toPythonApplication kaggle;
+
   lynis = callPackage ../tools/security/lynis { };
 
   mapproxy = callPackage ../applications/misc/mapproxy { };
 
   marlin-calc = callPackage ../tools/misc/marlin-calc {};
 
-  mathics = with python2Packages; toPythonApplication mathics;
-
   masscan = callPackage ../tools/security/masscan {
     stdenv = gccStdenv;
   };
 
   massren = callPackage ../tools/misc/massren { };
 
+  maxcso = callPackage ../tools/archivers/maxcso {};
+
   medusa = callPackage ../tools/security/medusa { };
 
-  megasync = libsForQt5.callPackage ../applications/misc/megasync { };
+  megasync = libsForQt514.callPackage ../applications/misc/megasync { };
 
   megacmd = callPackage ../applications/misc/megacmd { };
 
@@ -2072,6 +2255,8 @@ in
 
   mlarchive2maildir = callPackage ../applications/networking/mailreaders/mlarchive2maildir { };
 
+  molly-brown = callPackage ../servers/gemini/molly-brown { };
+
   monetdb = callPackage ../servers/sql/monetdb { };
 
   mons = callPackage ../tools/misc/mons {};
@@ -2096,12 +2281,16 @@ in
 
   mq-cli = callPackage ../tools/system/mq-cli { };
 
+  nextdns = callPackage ../applications/networking/nextdns { };
+
   nfdump = callPackage ../tools/networking/nfdump { };
 
   nfstrace = callPackage ../tools/networking/nfstrace { };
 
   nix-direnv = callPackage ../tools/misc/nix-direnv { };
 
+  nix-template = callPackage ../tools/package-management/nix-template { };
+
   nixpkgs-pytools = with python3.pkgs; toPythonApplication nixpkgs-pytools;
 
   noteshrink = callPackage ../tools/misc/noteshrink { };
@@ -2122,6 +2311,8 @@ in
 
   onboard = callPackage ../applications/misc/onboard { };
 
+  oneshot = callPackage ../tools/networking/oneshot { };
+
   onnxruntime = callPackage ../development/libraries/onnxruntime { };
 
   xkbd = callPackage ../applications/misc/xkbd { };
@@ -2132,6 +2323,8 @@ in
 
   obinskit = callPackage ../applications/misc/obinskit {};
 
+  odafileconverter = libsForQt5.callPackage ../applications/graphics/odafileconverter {};
+
   pastel = callPackage ../applications/misc/pastel {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -2142,7 +2335,9 @@ in
 
   pbzx = callPackage ../tools/compression/pbzx { };
 
-  persepolis = python3Packages.callPackage ../tools/networking/persepolis { };
+  persepolis = python3Packages.callPackage ../tools/networking/persepolis {
+    wrapQtAppsHook = qt5.wrapQtAppsHook;
+  };
 
   pev = callPackage ../development/tools/analysis/pev { };
 
@@ -2178,6 +2373,8 @@ in
 
   remarkable-mouse = python3Packages.callPackage ../applications/misc/remarkable/remarkable-mouse { };
 
+  ryujinx = callPackage ../misc/emulators/ryujinx { };
+
   scour = with python3Packages; toPythonApplication scour;
 
   s2png = callPackage ../tools/graphics/s2png { };
@@ -2188,6 +2385,8 @@ in
 
   simg2img = callPackage ../tools/filesystems/simg2img { };
 
+  simplenes = callPackage ../misc/emulators/simplenes { };
+
   snipes = callPackage ../games/snipes { };
 
   snippetpixie = callPackage ../tools/text/snippetpixie { };
@@ -2224,12 +2423,6 @@ in
 
   ring-daemon = callPackage ../applications/networking/instant-messengers/ring-daemon { };
 
-  riot-desktop = callPackage ../applications/networking/instant-messengers/riot/riot-desktop.nix { };
-
-  riot-web = callPackage ../applications/networking/instant-messengers/riot/riot-web.nix {
-    conf = config.riot-web.conf or {};
-  };
-
   ripasso-cursive = callPackage ../tools/security/ripasso/cursive.nix {
     inherit (darwin.apple_sdk.frameworks) AppKit Security;
   };
@@ -2343,8 +2536,6 @@ in
 
   assh = callPackage ../tools/networking/assh { };
 
-  asynk = callPackage ../tools/networking/asynk { };
-
   b2sum = callPackage ../tools/security/b2sum {
     inherit (llvmPackages) openmp;
   };
@@ -2359,6 +2550,8 @@ in
 
   bdsync = callPackage ../tools/backup/bdsync { };
 
+  beamerpresenter = libsForQt5.callPackage ../applications/office/beamerpresenter { };
+
   beanstalkd = callPackage ../servers/beanstalkd { };
 
   beets = callPackage ../tools/audio/beets {
@@ -2384,18 +2577,22 @@ in
   biblatex-check = callPackage ../tools/typesetting/biblatex-check { };
 
   birdfont = callPackage ../tools/misc/birdfont { };
-  xmlbird = callPackage ../tools/misc/birdfont/xmlbird.nix { };
+  xmlbird = callPackage ../tools/misc/birdfont/xmlbird.nix { stdenv = gccStdenv; };
 
   blastem = callPackage ../misc/emulators/blastem {
     inherit (python27Packages) pillow;
   };
 
+  blueberry = callPackage ../tools/bluetooth/blueberry { };
+
   blueman = callPackage ../tools/bluetooth/blueman { };
 
   bmrsa = callPackage ../tools/security/bmrsa/11.nix { };
 
   bogofilter = callPackage ../tools/misc/bogofilter { };
 
+  bomutils = callPackage ../tools/archivers/bomutils { };
+
   bsdbuild = callPackage ../development/tools/misc/bsdbuild { };
 
   bsdiff = callPackage ../tools/compression/bsdiff { };
@@ -2430,6 +2627,8 @@ in
 
   bzip2 = callPackage ../tools/compression/bzip2 { };
 
+  bzip2_1_1 = callPackage ../tools/compression/bzip2/1_1.nix { };
+
   cabextract = callPackage ../tools/archivers/cabextract { };
 
   cadaver = callPackage ../tools/networking/cadaver {
@@ -2438,9 +2637,7 @@ in
 
   davix = callPackage ../tools/networking/davix { };
 
-  cantata = libsForQt5.callPackage ../applications/audio/cantata {
-    inherit vlc;
-  };
+  cantata = libsForQt5.callPackage ../applications/audio/cantata { };
 
   can-utils = callPackage ../os-specific/linux/can-utils { };
 
@@ -2470,6 +2667,8 @@ in
 
   cemu = qt5.callPackage ../applications/science/math/cemu { };
 
+  isolyzer = callPackage ../tools/cd-dvd/isolyzer { };
+
   isomd5sum = callPackage ../tools/cd-dvd/isomd5sum { };
 
   mdf2iso = callPackage ../tools/cd-dvd/mdf2iso { };
@@ -2478,7 +2677,7 @@ in
 
   libceph = ceph.lib;
   inherit (callPackages ../tools/filesystems/ceph {
-    boost = boost167.override { enablePython = true; python = python37; };
+    boost = boost16x.override { enablePython = true; python = python38; };
   })
     ceph
     ceph-client;
@@ -2511,54 +2710,43 @@ in
 
   cksfv = callPackage ../tools/networking/cksfv { };
 
-  clementine = libsForQt5.callPackage ../applications/audio/clementine {
+  clementine = libsForQt514.callPackage ../applications/audio/clementine {
     gst_plugins =
       with gst_all_1; [ gst-plugins-base gst-plugins-good gst-plugins-ugly gst-libav ];
   };
 
   clementineUnfree = clementine.unfree;
 
+  mellowplayer = libsForQt514.callPackage ../applications/audio/mellowplayer { };
+
   ciopfs = callPackage ../tools/filesystems/ciopfs { };
 
   circleci-cli = callPackage ../development/tools/misc/circleci-cli { };
 
   circus = callPackage ../tools/networking/circus { };
 
-  citrix_workspace_unwrapped = callPackage ../applications/networking/remote/citrix-workspace { };
-  citrix_workspace_unwrapped_20_04_0 = citrix_workspace_unwrapped.override { version = "20.04.0"; };
-  citrix_workspace_unwrapped_19_12_0 = citrix_workspace_unwrapped.override { version = "19.12.0"; };
-  citrix_workspace_unwrapped_19_10_0 = citrix_workspace_unwrapped.override { version = "19.10.0"; };
-  citrix_workspace_unwrapped_19_8_0 = citrix_workspace_unwrapped.override { version = "19.8.0"; };
-  citrix_workspace_unwrapped_19_6_0 = citrix_workspace_unwrapped.override { version = "19.6.0"; };
-  citrix_workspace_unwrapped_19_3_0 = citrix_workspace_unwrapped.override { version = "19.3.0"; };
+  citrix_workspace = citrix_workspace_20_09_0;
 
-  citrix_workspace = callPackage ../applications/networking/remote/citrix-workspace/wrapper.nix {
-    citrix_workspace = citrix_workspace_unwrapped;
-  };
-  citrix_workspace_19_12_0 = callPackage ../applications/networking/remote/citrix-workspace/wrapper.nix {
-    citrix_workspace = citrix_workspace_unwrapped_19_12_0;
-  };
-  citrix_workspace_19_10_0 = callPackage ../applications/networking/remote/citrix-workspace/wrapper.nix {
-    citrix_workspace = citrix_workspace_unwrapped_19_10_0;
-  };
-  citrix_workspace_19_8_0 = callPackage ../applications/networking/remote/citrix-workspace/wrapper.nix {
-    citrix_workspace = citrix_workspace_unwrapped_19_8_0;
-  };
-  citrix_workspace_19_6_0 = callPackage ../applications/networking/remote/citrix-workspace/wrapper.nix {
-    citrix_workspace = citrix_workspace_unwrapped_19_6_0;
-  };
-  citrix_workspace_19_3_0 = callPackage ../applications/networking/remote/citrix-workspace/wrapper.nix {
-    citrix_workspace = citrix_workspace_unwrapped_19_3_0;
-  };
+  inherit (callPackage ../applications/networking/remote/citrix-workspace { })
+    citrix_workspace_19_6_0
+    citrix_workspace_19_8_0
+    citrix_workspace_19_10_0
+    citrix_workspace_19_12_0
+    citrix_workspace_20_04_0
+    citrix_workspace_20_06_0
+    citrix_workspace_20_09_0
+  ;
 
   citra = libsForQt5.callPackage ../misc/emulators/citra { };
 
+  cmigemo = callPackage ../tools/text/cmigemo { };
+
   cmst = libsForQt5.callPackage ../tools/networking/cmst { };
 
   cmt = callPackage ../applications/audio/cmt {};
 
   codimd = callPackage ../servers/web-apps/codimd {
-    nodejs = nodejs-10_x;
+    nodejs = nodejs-12_x;
   };
 
   colord = callPackage ../tools/misc/colord { };
@@ -2585,14 +2773,13 @@ in
 
   connman-notify = callPackage ../tools/networking/connman/connman-notify { };
 
-  connmanui = callPackage ../tools/networking/connman/connmanui { };
-
   connman_dmenu = callPackage ../tools/networking/connman/connman_dmenu  { };
 
   convertlit = callPackage ../tools/text/convertlit { };
 
   collectd = callPackage ../tools/system/collectd {
     libsigrok = libsigrok-0-3-0; # not compatible with >= 0.4.0 yet
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
 
   collectd-data = callPackage ../tools/system/collectd/data.nix { };
@@ -2656,6 +2843,8 @@ in
   ibus-engines = recurseIntoAttrs {
     anthy = callPackage ../tools/inputmethods/ibus-engines/ibus-anthy { };
 
+    bamboo = callPackage ../tools/inputmethods/ibus-engines/ibus-bamboo { };
+
     hangul = callPackage ../tools/inputmethods/ibus-engines/ibus-hangul { };
 
     kkc = callPackage ../tools/inputmethods/ibus-engines/ibus-kkc { };
@@ -2667,7 +2856,7 @@ in
     mozc = callPackage ../tools/inputmethods/ibus-engines/ibus-mozc {
       python = python2;
       inherit (python2Packages) gyp;
-      protobuf = pkgs.protobuf.overrideDerivation (oldAttrs: { stdenv = clangStdenv; });
+      protobuf = pkgs.protobuf3_8.overrideDerivation (oldAttrs: { stdenv = clangStdenv; });
     };
 
     table = callPackage ../tools/inputmethods/ibus-engines/ibus-table { };
@@ -2702,6 +2891,12 @@ in
 
   biosdevname = callPackage ../tools/networking/biosdevname { };
 
+  code-browser-qt = libsForQt5.callPackage ../applications/editors/code-browser { withQt = true;
+                                                                                };
+  code-browser-gtk = callPackage ../applications/editors/code-browser { withGtk = true;
+                                                                        qtbase = qt5.qtbase;
+                                                                      };
+
   c14 = callPackage ../applications/networking/c14 { };
 
   certstrap = callPackage ../tools/security/certstrap { };
@@ -2716,7 +2911,9 @@ in
 
   ckb-next = libsForQt5.callPackage ../tools/misc/ckb-next { };
 
-  clamav = callPackage ../tools/security/clamav { };
+  clamav = callPackage ../tools/security/clamav {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
 
   clex = callPackage ../tools/misc/clex { };
 
@@ -2746,6 +2943,8 @@ in
 
   conda = callPackage ../tools/package-management/conda { };
 
+  console-bridge = callPackage ../development/libraries/console-bridge { };
+
   convmv = callPackage ../tools/misc/convmv { };
 
   convoy = callPackage ../tools/filesystems/convoy { };
@@ -2788,7 +2987,9 @@ in
     cudatoolkit_10
     cudatoolkit_10_0
     cudatoolkit_10_1
-    cudatoolkit_10_2;
+    cudatoolkit_10_2
+    cudatoolkit_11
+    cudatoolkit_11_0;
 
   cudatoolkit = cudatoolkit_10;
 
@@ -2805,7 +3006,9 @@ in
     cudnn_cudatoolkit_10
     cudnn_cudatoolkit_10_0
     cudnn_cudatoolkit_10_1
-    cudnn_cudatoolkit_10_2;
+    cudnn_cudatoolkit_10_2
+    cudnn_cudatoolkit_11
+    cudnn_cudatoolkit_11_0;
 
   cudnn = cudnn_cudatoolkit_10;
 
@@ -2851,14 +3054,14 @@ in
 
   davfs2 = callPackage ../tools/filesystems/davfs2 { };
 
-  dbeaver = callPackage ../applications/misc/dbeaver {
-    jdk = jdk11;
-  };
+  dbeaver = callPackage ../applications/misc/dbeaver { };
 
   dbench = callPackage ../development/tools/misc/dbench { };
 
   dclxvi = callPackage ../development/libraries/dclxvi { };
 
+  dconf2nix = callPackage ../development/tools/haskell/dconf2nix { };
+
   dcraw = callPackage ../tools/graphics/dcraw { };
 
   dcfldd = callPackage ../tools/system/dcfldd { };
@@ -2887,6 +3090,8 @@ in
 
   ddccontrol-db = callPackage ../data/misc/ddccontrol-db { };
 
+  ddcui = libsForQt5.callPackage ../applications/misc/ddcui { };
+
   ddcutil = callPackage ../tools/misc/ddcutil { };
 
   ddclient = callPackage ../tools/networking/ddclient { };
@@ -3019,6 +3224,8 @@ in
 
   doom-bcc = callPackage ../games/zdoom/bcc-git.nix { };
 
+  sl1-to-photon = python3Packages.callPackage ../applications/misc/sl1-to-photon { };
+
   slade = callPackage ../applications/misc/slade {
     wxGTK = wxGTK30;
   };
@@ -3041,12 +3248,14 @@ in
 
   dropbear = callPackage ../tools/networking/dropbear { };
 
-  dsview = libsForQt5.callPackage ../applications/science/electronics/dsview { };
+  dsview = libsForQt514.callPackage ../applications/science/electronics/dsview { };
 
   dtach = callPackage ../tools/misc/dtach { };
 
   dtc = callPackage ../development/compilers/dtc { };
 
+  dt-schema = python3Packages.callPackage ../development/tools/dt-schema { };
+
   dub = callPackage ../development/tools/build-managers/dub { };
 
   duc = callPackage ../tools/misc/duc { };
@@ -3129,6 +3338,10 @@ in
 
   mcrcon = callPackage ../tools/networking/mcrcon {};
 
+  mozwire = callPackage ../tools/networking/mozwire {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   rage = callPackage ../tools/security/rage {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -3141,7 +3354,7 @@ in
 
   sonobuoy = callPackage ../applications/networking/cluster/sonobuoy { };
 
-  strawberry = libsForQt5.callPackage ../applications/audio/strawberry { };
+  strawberry = libsForQt514.callPackage ../applications/audio/strawberry { };
 
   tealdeer = callPackage ../tools/misc/tealdeer {
     inherit (darwin.apple_sdk.frameworks) Security;
@@ -3149,6 +3362,10 @@ in
 
   teamocil = callPackage ../tools/misc/teamocil { };
 
+  the-way = callPackage ../development/tools/the-way {
+    inherit (darwin.apple_sdk.frameworks) AppKit Security;
+  };
+
   tsm-client = callPackage ../tools/backup/tsm-client { jdk8 = null; };
   tsm-client-withGui = callPackage ../tools/backup/tsm-client { };
 
@@ -3177,8 +3394,12 @@ in
 
   vorta = python3Packages.callPackage ../applications/backup/vorta { };
 
+  utahfs = callPackage ../applications/networking/utahfs { };
+
   wallutils = callPackage ../tools/graphics/wallutils { };
 
+  wayland-utils = callPackage ../tools/wayland/wayland-utils { };
+
   wev = callPackage ../tools/misc/wev { };
 
   wl-clipboard = callPackage ../tools/misc/wl-clipboard { };
@@ -3211,6 +3432,8 @@ in
 
   cholmod-extra = callPackage ../development/libraries/science/math/cholmod-extra { };
 
+  choose = callPackage ../tools/text/choose { };
+
   emscripten = callPackage ../development/compilers/emscripten { };
 
   emscriptenPackages = recurseIntoAttrs (callPackage ./emscripten-packages.nix { });
@@ -3230,17 +3453,21 @@ in
 
   elasticsearch6 = callPackage ../servers/search/elasticsearch/6.x.nix {
     utillinux = utillinuxMinimal;
+    jre_headless = jre8_headless; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
   elasticsearch6-oss = callPackage ../servers/search/elasticsearch/6.x.nix {
     enableUnfree = false;
     utillinux = utillinuxMinimal;
+    jre_headless = jre8_headless; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
   elasticsearch7 = callPackage ../servers/search/elasticsearch/7.x.nix {
     utillinux = utillinuxMinimal;
+    jre_headless = jre8_headless; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
   elasticsearch7-oss = callPackage ../servers/search/elasticsearch/7.x.nix {
     enableUnfree = false;
     utillinux = utillinuxMinimal;
+    jre_headless = jre8_headless; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
   elasticsearch = elasticsearch6;
   elasticsearch-oss = elasticsearch6-oss;
@@ -3261,6 +3488,7 @@ in
     python = python3;
   };
 
+  embree = callPackage ../development/libraries/embree { };
   embree2 = callPackage ../development/libraries/embree/2.x.nix { };
 
   emem = callPackage ../applications/misc/emem { };
@@ -3339,7 +3567,7 @@ in
 
   f2fs-tools = callPackage ../tools/filesystems/f2fs-tools { };
 
-  Fabric = python2Packages.Fabric;
+  Fabric = with python3Packages; toPythonApplication Fabric;
 
   fail2ban = callPackage ../tools/security/fail2ban { };
 
@@ -3378,7 +3606,7 @@ in
     mozc = callPackage ../tools/inputmethods/fcitx-engines/fcitx-mozc {
       python = python2;
       inherit (python2Packages) gyp;
-      protobuf = pkgs.protobuf.overrideDerivation (oldAttrs: { stdenv = clangStdenv; });
+      protobuf = pkgs.protobuf3_8.overrideDerivation (oldAttrs: { stdenv = clangStdenv; });
     };
 
     table-extra = callPackage ../tools/inputmethods/fcitx-engines/fcitx-table-extra { };
@@ -3394,6 +3622,8 @@ in
 
   fcitx-configtool = callPackage ../tools/inputmethods/fcitx/fcitx-configtool.nix { };
 
+  chewing-editor = libsForQt5.callPackage ../applications/misc/chewing-editor { };
+
   fcppt = callPackage ../development/libraries/fcppt { };
 
   fcrackzip = callPackage ../tools/security/fcrackzip { };
@@ -3404,7 +3634,7 @@ in
 
   fdtools = callPackage ../tools/misc/fdtools { };
 
-  featherpad = callPackage ../applications/editors/featherpad {};
+  featherpad = qt5.callPackage ../applications/editors/featherpad {};
 
   feedreader = callPackage ../applications/networking/feedreaders/feedreader {};
 
@@ -3476,7 +3706,7 @@ in
 
   flashrom = callPackage ../tools/misc/flashrom { };
 
-  flent = python3Packages.callPackage ../applications/networking/flent { };
+  flent = python3Packages.callPackage ../applications/networking/flent { qt5 = qt514; };
 
   flpsed = callPackage ../applications/editors/flpsed { };
 
@@ -3535,7 +3765,7 @@ in
 
   fontforge-fonttools = callPackage ../tools/misc/fontforge/fontforge-fonttools.nix {};
 
-  fontmatrix = callPackage ../applications/graphics/fontmatrix {};
+  fontmatrix = libsForQt514.callPackage ../applications/graphics/fontmatrix {};
 
   foremost = callPackage ../tools/system/foremost { };
 
@@ -3562,7 +3792,13 @@ in
 
   fprintd = callPackage ../tools/security/fprintd { };
 
-  franz = callPackage ../applications/networking/instant-messengers/franz { };
+  ferdi = callPackage ../applications/networking/instant-messengers/ferdi {
+    mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { };
+  };
+
+  franz = callPackage ../applications/networking/instant-messengers/franz {
+    mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { };
+  };
 
   freedroidrpg = callPackage ../games/freedroidrpg { };
 
@@ -3576,6 +3812,10 @@ in
 
   freetds = callPackage ../development/libraries/freetds { };
 
+  freqtweak = callPackage ../applications/audio/freqtweak {
+    wxGTK = wxGTK31-gtk2;
+  };
+
   frescobaldi = python3Packages.callPackage ../misc/frescobaldi {};
 
   frostwire = callPackage ../applications/networking/p2p/frostwire { };
@@ -3599,7 +3839,9 @@ in
 
   fusuma = callPackage ../tools/inputmethods/fusuma {};
 
-  fdbPackages = dontRecurseIntoAttrs (callPackage ../servers/foundationdb { });
+  fdbPackages = dontRecurseIntoAttrs (callPackage ../servers/foundationdb {
+    openjdk = openjdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  });
 
   inherit (fdbPackages)
     foundationdb51
@@ -3618,6 +3860,8 @@ in
 
   fusee-launcher = callPackage ../development/tools/fusee-launcher { };
 
+  fverb = callPackage ../applications/audio/fverb { };
+
   fwknop = callPackage ../tools/security/fwknop { };
 
   exfat = callPackage ../tools/filesystems/exfat { };
@@ -3674,6 +3918,8 @@ in
 
   genimage = callPackage ../tools/filesystems/genimage { };
 
+  geonkick = callPackage ../applications/audio/geonkick {};
+
   gerrit = callPackage ../applications/version-management/gerrit { };
 
   geteltorito = callPackage ../tools/misc/geteltorito { };
@@ -3794,10 +4040,6 @@ in
   gnupg1orig = callPackage ../tools/security/gnupg/1.nix { };
   gnupg1compat = callPackage ../tools/security/gnupg/1compat.nix { };
   gnupg1 = gnupg1compat;    # use config.packageOverrides if you prefer original gnupg1
-  gnupg20 = callPackage ../tools/security/gnupg/20.nix {
-    guiSupport = stdenv.isDarwin;
-    pinentry = if stdenv.isDarwin then pinentry_mac else pinentry-gtk2;
-  };
   gnupg22 = callPackage ../tools/security/gnupg/22.nix {
     guiSupport = stdenv.isDarwin;
     pinentry = if stdenv.isDarwin then pinentry_mac else pinentry-gtk2;
@@ -3832,6 +4074,10 @@ in
 
   godot = callPackage ../development/tools/godot {};
 
+  godot-headless = callPackage ../development/tools/godot/headless.nix { };
+
+  godot-server = callPackage ../development/tools/godot/server.nix { };
+
   goklp = callPackage ../tools/networking/goklp {};
 
   go-mtpfs = callPackage ../tools/filesystems/go-mtpfs { };
@@ -3866,8 +4112,12 @@ in
 
   google-cloud-cpp = callPackage ../development/libraries/google-cloud-cpp { };
 
+  gdown = with python3Packages; toPythonApplication gdown;
+
   gopro = callPackage ../tools/video/gopro { };
 
+  goreplay = callPackage ../tools/networking/goreplay { };
+
   gource = callPackage ../applications/version-management/gource { };
 
   govc = callPackage ../tools/virtualization/govc { };
@@ -4093,6 +4343,8 @@ in
 
   hal-flash = callPackage ../os-specific/linux/hal-flash { };
 
+  hal-hardware-analyzer = libsForQt514.callPackage ../applications/science/electronics/hal-hardware-analyzer { };
+
   half = callPackage ../development/libraries/half { };
 
   halibut = callPackage ../tools/typesetting/halibut { };
@@ -4150,16 +4402,16 @@ in
   }));
 
   hdfview = callPackage ../tools/misc/hdfview {
-    javac = jdk;
+    javac = jdk8; # TODO: https://github.com/NixOS/nixpkgs/pull/89731
   };
 
   hdf_java = callPackage ../tools/misc/hdfjava {
-    javac = jdk;
+    javac = jdk8; # TODO: https://github.com/NixOS/nixpkgs/pull/89731
   };
 
   hecate = callPackage ../applications/editors/hecate { };
 
-  heaptrack = libsForQt5.callPackage ../development/tools/profiling/heaptrack {};
+  heaptrack = libsForQt514.callPackage ../development/tools/profiling/heaptrack {};
 
   heimdall = libsForQt5.callPackage ../tools/misc/heimdall { };
 
@@ -4238,15 +4490,18 @@ in
 
   i2c-tools = callPackage ../os-specific/linux/i2c-tools { };
 
-  i2p = callPackage ../tools/networking/i2p {};
+  i2p = callPackage ../tools/networking/i2p {
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   i2pd = callPackage ../tools/networking/i2pd { };
 
-  i-score = libsForQt5.callPackage ../applications/audio/i-score { };
+  i-score = libsForQt514.callPackage ../applications/audio/i-score { };
 
   iasl = callPackage ../development/compilers/iasl { };
 
-  iannix = libsForQt5.callPackage ../applications/audio/iannix { };
+  iannix = libsForQt514.callPackage ../applications/audio/iannix { };
 
   jamulus = libsForQt5.callPackage ../applications/audio/jamulus { };
 
@@ -4293,6 +4548,8 @@ in
     packages = config.ihaskell.packages or (self: []);
   };
 
+  iruby = callPackage ../applications/editors/jupyter-kernels/iruby { };
+
   imapproxy = callPackage ../tools/networking/imapproxy {
     openssl = openssl_1_0_2;
   };
@@ -4309,8 +4566,12 @@ in
 
   incron = callPackage ../tools/system/incron { };
 
+  industrializer = callPackage ../applications/audio/industrializer { };
+
   inetutils = callPackage ../tools/networking/inetutils { };
 
+  inform6 = callPackage ../development/compilers/inform6 { };
+
   inform7 = callPackage ../development/compilers/inform7 { };
 
   infamousPlugins = callPackage ../applications/audio/infamousPlugins { };
@@ -4357,7 +4618,9 @@ in
 
   ipfs = callPackage ../applications/networking/ipfs { };
   ipfs-migrator = callPackage ../applications/networking/ipfs-migrator { };
-  ipfs-cluster = callPackage ../applications/networking/ipfs-cluster { };
+  ipfs-cluster = callPackage ../applications/networking/ipfs-cluster {
+    buildGoModule = buildGo114Module;
+  };
 
   ipget = callPackage ../applications/networking/ipget { };
 
@@ -4395,6 +4658,8 @@ in
 
   isync = callPackage ../tools/networking/isync { };
 
+  itm-tools = callPackage ../development/tools/misc/itm-tools { };
+
   ix = callPackage ../tools/misc/ix { };
 
   jaaa = callPackage ../applications/audio/jaaa { };
@@ -4424,7 +4689,9 @@ in
   jid = callPackage ../development/tools/jid { };
 
   jing = res.jing-trang;
-  jing-trang = callPackage ../tools/text/xml/jing-trang { };
+  jing-trang = callPackage ../tools/text/xml/jing-trang {
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   jira-cli = callPackage ../development/tools/jira_cli { };
 
@@ -4517,6 +4784,10 @@ in
 
   kbdd = callPackage ../applications/window-managers/kbdd { };
 
+  kbs2 = callPackage ../tools/security/kbs2 {
+    inherit (darwin.apple_sdk.frameworks) AppKit;
+  };
+
   kdbplus = pkgsi686Linux.callPackage ../applications/misc/kdbplus { };
 
   keepalived = callPackage ../tools/networking/keepalived { };
@@ -4557,6 +4828,8 @@ in
   kibana = kibana6;
   kibana-oss = kibana6-oss;
 
+  kibi = callPackage ../applications/editors/kibi { };
+
   kismet = callPackage ../applications/networking/sniffers/kismet { };
 
   klick = callPackage ../applications/audio/klick { };
@@ -4569,31 +4842,31 @@ in
 
   krakenx = callPackage ../tools/system/krakenx { };
 
-  partition-manager = libsForQt5.callPackage ../tools/misc/partition-manager { };
+  partition-manager = libsForQt514.callPackage ../tools/misc/partition-manager { };
 
   kpcli = callPackage ../tools/security/kpcli { };
 
-  krename = libsForQt5.callPackage ../applications/misc/krename { };
+  krename = libsForQt514.callPackage ../applications/misc/krename { };
 
   krunner-pass = libsForQt5.callPackage ../tools/security/krunner-pass { };
 
-  kronometer = libsForQt5.callPackage ../tools/misc/kronometer { };
+  kronometer = libsForQt514.callPackage ../tools/misc/kronometer { };
 
   krop = callPackage ../applications/graphics/krop { };
 
-  kdiff3 = libsForQt5.callPackage ../tools/text/kdiff3 { };
+  kdiff3 = libsForQt514.callPackage ../tools/text/kdiff3 { };
 
   kube-router = callPackage ../applications/networking/cluster/kube-router { };
 
   kwalletcli = libsForQt5.callPackage ../tools/security/kwalletcli { };
 
-  peruse = libsForQt5.callPackage ../tools/misc/peruse { };
+  peruse = libsForQt514.callPackage ../tools/misc/peruse { };
 
-  ksmoothdock = libsForQt5.callPackage ../applications/misc/ksmoothdock { };
+  ksmoothdock = libsForQt514.callPackage ../applications/misc/ksmoothdock { };
 
-  kst = libsForQt5.callPackage ../tools/graphics/kst { gsl = gsl_1; };
+  kst = libsForQt514.callPackage ../tools/graphics/kst { gsl = gsl_1; };
 
-  kstars = libsForQt5.callPackage ../applications/science/astronomy/kstars { };
+  kstars = libsForQt514.callPackage ../applications/science/astronomy/kstars { };
 
   kytea = callPackage ../tools/text/kytea { };
 
@@ -4639,7 +4912,6 @@ in
 
   liquidsoap = callPackage ../tools/audio/liquidsoap/full.nix {
     ffmpeg = ffmpeg-full;
-    ocamlPackages = ocaml-ng.ocamlPackages_4_07;
   };
 
   lksctp-tools = callPackage ../os-specific/linux/lksctp-tools { };
@@ -4670,6 +4942,8 @@ in
 
   lolcat = callPackage ../tools/misc/lolcat { };
 
+  lottieconverter = callPackage ../tools/misc/lottieconverter { };
+
   lsd = callPackage ../tools/misc/lsd { };
 
   lsdvd = callPackage ../tools/cd-dvd/lsdvd {};
@@ -4696,6 +4970,10 @@ in
 
   makebootfat = callPackage ../tools/misc/makebootfat { };
 
+  martin = callPackage ../servers/martin {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   /* Python 3.8 is currently broken with matrix-synapse since `python38Packages.bleach` fails
     (https://github.com/NixOS/nixpkgs/issues/76093) */
   matrix-synapse = callPackage ../servers/matrix-synapse { /*python3 = python38;*/ };
@@ -4710,9 +4988,7 @@ in
 
   mautrix-whatsapp = callPackage ../servers/mautrix-whatsapp { };
 
-  mcfly = callPackage ../tools/misc/mcfly {
-    inherit (darwin.apple_sdk.frameworks) Security;
-  };
+  mcfly = callPackage ../tools/misc/mcfly { };
 
   mdbook = callPackage ../tools/text/mdbook {
     inherit (darwin.apple_sdk.frameworks) CoreServices;
@@ -4739,6 +5015,8 @@ in
 
   minergate-cli = callPackage ../applications/misc/minergate-cli { };
 
+  minica = callPackage ../tools/security/minica { };
+
   minidlna = callPackage ../tools/networking/minidlna { };
 
   minisign = callPackage ../tools/security/minisign { };
@@ -4825,7 +5103,7 @@ in
 
   ninka = callPackage ../development/tools/misc/ninka { };
 
-  nixnote2 = libsForQt5.callPackage ../applications/misc/nixnote2 { };
+  nixnote2 = libsForQt514.callPackage ../applications/misc/nixnote2 { };
 
   nodejs = hiPrio nodejs-12_x;
 
@@ -4840,10 +5118,6 @@ in
   nodejs-slim-12_x = callPackage ../development/web/nodejs/v12.nix {
     enableNpm = false;
   };
-  nodejs-13_x = callPackage ../development/web/nodejs/v13.nix { };
-  nodejs-slim-13_x = callPackage ../development/web/nodejs/v13.nix {
-    enableNpm = false;
-  };
   nodejs-14_x = callPackage ../development/web/nodejs/v14.nix { };
   nodejs-slim-14_x = callPackage ../development/web/nodejs/v14.nix {
     enableNpm = false;
@@ -5017,6 +5291,8 @@ in
     libwebsockets_4_0;
   libwebsockets = libwebsockets_3_2;
 
+  licensee = callPackage ../tools/package-management/licensee { };
+
   lidarr = callPackage ../servers/lidarr { };
 
   limesuite = callPackage ../applications/radio/limesuite { };
@@ -5037,6 +5313,8 @@ in
 
   logstalgia = callPackage ../tools/graphics/logstalgia {};
 
+  lokalise2-cli = callPackage ../tools/misc/lokalise2-cli { };
+
   loki = callPackage ../development/libraries/loki { };
 
   longview = callPackage ../servers/monitoring/longview { };
@@ -5069,7 +5347,7 @@ in
 
   lzip = callPackage ../tools/compression/lzip { };
 
-  luxcorerender = callPackage ../tools/graphics/luxcorerender { };
+  luxcorerender = callPackage ../tools/graphics/luxcorerender { qt5 = qt514; };
 
   xz = callPackage ../tools/compression/xz { };
   lzma = xz; # TODO: move to aliases.nix
@@ -5091,8 +5369,15 @@ in
   mailhog = callPackage ../servers/mail/mailhog {};
 
   mailnag = callPackage ../applications/networking/mailreaders/mailnag {
-    pythonPackages = python2Packages;
+    availablePlugins = {
+      # More are listed here: https://github.com/pulb/mailnag/#desktop-integration
+      # Use the attributes here as arguments to `plugins` list
+      goa = callPackage ../applications/networking/mailreaders/mailnag/goa-plugin.nix { };
+    };
   };
+  mailnagWithPlugins = mailnag.withPlugins(
+    builtins.attrValues mailnag.availablePlugins
+  );
 
   mailsend = callPackage ../tools/networking/mailsend { };
 
@@ -5121,6 +5406,8 @@ in
 
   mandoc = callPackage ../tools/misc/mandoc { };
 
+  manix = callPackage ../tools/nix/manix {};
+
   marktext = callPackage ../applications/misc/marktext { };
 
   mawk = callPackage ../tools/text/mawk { };
@@ -5199,6 +5486,8 @@ in
 
   microcom = callPackage ../applications/misc/microcom { };
 
+  microserver = callPackage ../servers/microserver { };
+
   midisheetmusic = callPackage ../applications/audio/midisheetmusic { };
 
   mikutter = callPackage ../applications/networking/instant-messengers/mikutter { };
@@ -5232,13 +5521,13 @@ in
     pythonPackages = python3Packages;
   };
 
+  mirakurun = nodePackages.mirakurun;
+
   miredo = callPackage ../tools/networking/miredo { };
 
   mirrorbits = callPackage ../servers/mirrorbits { };
 
-  mitmproxy = callPackage ../tools/networking/mitmproxy {
-    python3Packages = python37Packages;
-  };
+  mitmproxy = with python3Packages; toPythonApplication mitmproxy;
 
   mjpegtools = callPackage ../tools/video/mjpegtools { };
 
@@ -5270,6 +5559,8 @@ in
 
   molly-guard = callPackage ../os-specific/linux/molly-guard { };
 
+  molotov = callPackage ../applications/video/molotov {};
+
   moneyplex = callPackage ../applications/office/moneyplex { };
 
   monit = callPackage ../tools/system/monit { };
@@ -5340,6 +5631,8 @@ in
 
   mycli = callPackage ../tools/admin/mycli { };
 
+  mycrypto = callPackage ../applications/blockchains/mycrypto { };
+
   mydumper = callPackage ../tools/backup/mydumper { };
 
   mysql2pgsql = callPackage ../tools/misc/mysql2pgsql { };
@@ -5358,6 +5651,8 @@ in
 
   nat-traverse = callPackage ../tools/networking/nat-traverse { };
 
+  navi = callPackage ../applications/misc/navi { };
+
   navilu-font = callPackage ../data/fonts/navilu { stdenv = stdenvNoCC; };
 
   nawk = callPackage ../tools/text/nawk { };
@@ -5366,9 +5661,8 @@ in
   xnbd = callPackage ../tools/networking/xnbd { };
 
   nccl = callPackage ../development/libraries/science/math/nccl { };
-  nccl_cudatoolkit_9_0 = nccl.override { cudatoolkit = cudatoolkit_9_0; };
-  nccl_cudatoolkit_9 = nccl.override { cudatoolkit = cudatoolkit_9; };
   nccl_cudatoolkit_10 = nccl.override { cudatoolkit = cudatoolkit_10; };
+  nccl_cudatoolkit_11 = nccl.override { cudatoolkit = cudatoolkit_11; };
 
   ndjbdns = callPackage ../tools/networking/ndjbdns { };
 
@@ -5402,6 +5696,8 @@ in
 
   ncftp = callPackage ../tools/networking/ncftp { };
 
+  ncgopher = callPackage ../applications/networking/ncgopher { };
+
   ncompress = callPackage ../tools/compression/ncompress { };
 
   ndisc6 = callPackage ../tools/networking/ndisc6 { };
@@ -5418,6 +5714,8 @@ in
 
   netkittftp = callPackage ../tools/networking/netkit/tftp { };
 
+  netlify-cli = nodePackages.netlify-cli;
+
   netpbm = callPackage ../tools/graphics/netpbm { };
 
   netrw = callPackage ../tools/networking/netrw { };
@@ -5462,16 +5760,20 @@ in
   grocy = callPackage ../servers/grocy { };
 
   inherit (callPackage ../servers/nextcloud {})
-    nextcloud17 nextcloud18;
+    nextcloud17 nextcloud18 nextcloud19;
 
-  nextcloud-client = libsForQt5.callPackage ../applications/networking/nextcloud-client { };
+  nextcloud-client = libsForQt514.callPackage ../applications/networking/nextcloud-client { };
 
   nextcloud-news-updater = callPackage ../servers/nextcloud/news-updater.nix { };
 
   ndstool = callPackage ../tools/archivers/ndstool { };
 
+  nfs-ganesha = callPackage ../servers/nfs-ganesha { };
+
   ngrep = callPackage ../tools/networking/ngrep { };
 
+  neuron-notes = haskell.lib.justStaticExecutables (haskell.lib.generateOptparseApplicativeCompletion "neuron" haskellPackages.neuron);
+
   ngrok = ngrok-2;
 
   ngrok-2 = callPackage ../tools/networking/ngrok-2 { };
@@ -5482,10 +5784,21 @@ in
 
   noip = callPackage ../tools/networking/noip { };
 
-  nomad = callPackage ../applications/networking/cluster/nomad { };
+  nomad = nomad_0_11;
+  # Nomad never updates major go versions within a release series and is unsupported
+  # on Go versions that it did not ship with. Due to historic bugs when compiled
+  # with different versions we pin Go for all versions.
+  nomad_0_11 = callPackage ../applications/networking/cluster/nomad/0.11.nix {
+    buildGoPackage = buildGo114Package;
+  };
+  nomad_0_12 = callPackage ../applications/networking/cluster/nomad/0.12.nix {
+    buildGoPackage = buildGo114Package;
+  };
 
   notable = callPackage ../applications/misc/notable { };
 
+  nvchecker = with python3Packages; toPythonApplication nvchecker;
+
   miller = callPackage ../tools/text/miller { };
 
   milu = callPackage ../applications/misc/milu { };
@@ -5500,6 +5813,8 @@ in
 
   pandoc-imagine = python3Packages.callPackage ../tools/misc/pandoc-imagine { };
 
+  pandoc-plantuml-filter = python3Packages.callPackage ../tools/misc/pandoc-plantuml-filter { };
+
   pasystray = callPackage ../tools/audio/pasystray { };
 
   phash = callPackage ../development/libraries/phash { };
@@ -5518,6 +5833,8 @@ in
 
   nilfs-utils = callPackage ../tools/filesystems/nilfs-utils {};
 
+  nimmm = callPackage ../applications/misc/nimmm { };
+
   nitrogen = callPackage ../tools/X11/nitrogen {};
 
   nms = callPackage ../tools/misc/nms { };
@@ -5540,13 +5857,15 @@ in
     graphicalSupport = true;
   };
 
-  nmapsi4 = libsForQt5.callPackage ../tools/security/nmap/qt.nix { };
+  nmapsi4 = libsForQt514.callPackage ../tools/security/nmap/qt.nix { };
 
   nnn = callPackage ../applications/misc/nnn { };
 
 
   noise-repellent = callPackage ../applications/audio/noise-repellent { };
 
+  noisetorch = callPackage ../applications/audio/noisetorch { };
+
   notary = callPackage ../tools/security/notary { };
 
   notify-osd = callPackage ../applications/misc/notify-osd { };
@@ -5570,6 +5889,8 @@ in
 
   ntfy = callPackage ../tools/misc/ntfy {};
 
+  ntirpc = callPackage ../development/libraries/ntirpc { };
+
   ntopng = callPackage ../tools/networking/ntopng { };
 
   ntp = callPackage ../tools/networking/ntp {
@@ -5586,6 +5907,8 @@ in
 
   nwdiag = with python3Packages; toPythonApplication nwdiag;
 
+  nxpmicro-mfgtools = callPackage ../development/tools/misc/nxpmicro-mfgtools { };
+
   nyancat = callPackage ../tools/misc/nyancat { };
 
   nylon = callPackage ../tools/networking/nylon { };
@@ -5636,7 +5959,7 @@ in
 
   ola = callPackage ../applications/misc/ola { };
 
-  olive-editor = libsForQt5.callPackage ../applications/video/olive-editor {
+  olive-editor = libsForQt514.callPackage ../applications/video/olive-editor {
     inherit (darwin.apple_sdk.frameworks) CoreFoundation;
   };
 
@@ -5677,6 +6000,8 @@ in
 
   openjade = callPackage ../tools/text/sgml/openjade { };
 
+  openhantek6022 = libsForQt5.callPackage ../applications/science/electronics/openhantek6022 { };
+
   openimagedenoise = callPackage ../development/libraries/openimagedenoise { };
 
   openmvg = callPackage ../applications/science/misc/openmvg { };
@@ -5694,6 +6019,8 @@ in
 
   openresolv = callPackage ../tools/networking/openresolv { };
 
+  openrgb = libsForQt5.callPackage ../applications/misc/openrgb { };
+
   opensc = callPackage ../tools/security/opensc {
     inherit (darwin.apple_sdk.frameworks) Carbon PCSC;
   };
@@ -5709,9 +6036,6 @@ in
 
   openssh_hpn = pkgs.appendToName "with-hpn" (openssh.override {
     hpnSupport = true;
-    # the hpn patchset does not yet support openssl>1.0.2
-    # https://github.com/rapier1/openssh-portable/issues/14
-    openssl = openssl_1_0_2;
   });
 
   openssh_gssapi = pkgs.appendToName "with-gssapi" (openssh.override {
@@ -5738,6 +6062,8 @@ in
 
   oppai-ng = callPackage ../tools/misc/oppai-ng { };
 
+  operator-sdk = callPackage ../development/tools/operator-sdk { };
+
   update-dotdee = with python3Packages; toPythonApplication update-dotdee;
 
   update-resolv-conf = callPackage ../tools/networking/openvpn/update-resolv-conf.nix { };
@@ -5768,6 +6094,8 @@ in
 
   osl = callPackage ../development/compilers/osl { };
 
+  osqp = callPackage ../development/libraries/science/math/osqp { };
+
   ossec = callPackage ../tools/security/ossec {};
 
   osslsigncode = callPackage ../development/tools/osslsigncode {};
@@ -5782,7 +6110,7 @@ in
 
   overmind = callPackage ../applications/misc/overmind { };
 
-  owncloud-client = libsForQt5.callPackage ../applications/networking/owncloud-client { };
+  owncloud-client = libsForQt514.callPackage ../applications/networking/owncloud-client { };
 
   oxidized = callPackage ../tools/admin/oxidized { };
 
@@ -5790,6 +6118,8 @@ in
 
   p2pvc = callPackage ../applications/video/p2pvc {};
 
+  p3x-onenote = callPackage ../applications/office/p3x-onenote { };
+
   p7zip = callPackage ../tools/archivers/p7zip { };
 
   packagekit = callPackage ../tools/package-management/packagekit { };
@@ -5850,9 +6180,13 @@ in
 
   perceptualdiff = callPackage ../tools/graphics/perceptualdiff { };
 
-  percona-xtrabackup = callPackage ../tools/backup/percona-xtrabackup {
+  percona-xtrabackup = percona-xtrabackup_8_0;
+  percona-xtrabackup_2_4 = callPackage ../tools/backup/percona-xtrabackup/2_4.nix {
     boost = boost159;
   };
+  percona-xtrabackup_8_0 = callPackage ../tools/backup/percona-xtrabackup/8_0.nix {
+    boost = boost170;
+  };
 
   pick = callPackage ../tools/misc/pick { };
 
@@ -5928,9 +6262,7 @@ in
 
   brickd = callPackage ../servers/brickd { };
 
-  bully = callPackage ../tools/networking/bully {
-    openssl = openssl_1_0_2;
-  };
+  bully = callPackage ../tools/networking/bully { };
 
   pcapc = callPackage ../tools/networking/pcapc { };
 
@@ -5982,6 +6314,8 @@ in
 
   pirate-get = callPackage ../tools/networking/pirate-get { };
 
+  pipr = callPackage ../applications/misc/pipr { };
+
   pipreqs = callPackage ../tools/misc/pipreqs { };
 
   pius = callPackage ../tools/security/pius { };
@@ -6042,7 +6376,10 @@ in
 
   podiff = callPackage ../tools/text/podiff { };
 
-  podman = callPackage ../applications/virtualization/podman/wrapper.nix { };
+  podman = if stdenv.isDarwin then
+    callPackage ../applications/virtualization/podman { }
+  else
+    callPackage ../applications/virtualization/podman/wrapper.nix { };
   podman-unwrapped = callPackage ../applications/virtualization/podman { };
 
   podman-compose = python3Packages.callPackage ../applications/virtualization/podman-compose {};
@@ -6089,7 +6426,10 @@ in
 
   profile-sync-daemon = callPackage ../tools/misc/profile-sync-daemon { };
 
-  projectlibre = callPackage ../applications/misc/projectlibre { };
+  projectlibre = callPackage ../applications/misc/projectlibre {
+    jre = jre8;
+    jdk = jdk8;
+  };
 
   projectm = libsForQt5.callPackage ../applications/audio/projectm { };
 
@@ -6114,6 +6454,8 @@ in
 
   pmacct = callPackage ../tools/networking/pmacct { };
 
+  pmix = callPackage ../development/libraries/pmix { };
+
   polygraph = callPackage ../tools/networking/polygraph { };
 
   progress = callPackage ../tools/misc/progress { };
@@ -6168,6 +6510,8 @@ in
 
   pywal = with python3Packages; toPythonApplication pywal;
 
+  rbw = callPackage ../tools/security/rbw { };
+
   remarshal = callPackage ../development/tools/remarshal { };
 
   rig = callPackage ../tools/misc/rig {
@@ -6184,11 +6528,13 @@ in
 
   ucx = callPackage ../development/libraries/ucx {};
 
-  openmodelica = callPackage ../applications/science/misc/openmodelica { };
+  openmodelica = callPackage ../applications/science/misc/openmodelica {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
-  qarte = libsForQt5.callPackage ../applications/video/qarte { };
+  qarte = libsForQt514.callPackage ../applications/video/qarte { };
 
-  qlcplus = libsForQt5.callPackage ../applications/misc/qlcplus { };
+  qlcplus = libsForQt512.callPackage ../applications/misc/qlcplus { };
 
   qnial = callPackage ../development/interpreters/qnial { };
 
@@ -6210,7 +6556,9 @@ in
 
   qjoypad = callPackage ../tools/misc/qjoypad { };
 
-  qownnotes = libsForQt5.callPackage ../applications/office/qownnotes { };
+  qosmic = libsForQt5.callPackage ../applications/graphics/qosmic { };
+
+  qownnotes = libsForQt514.callPackage ../applications/office/qownnotes { };
 
   qpdf = callPackage ../development/libraries/qpdf { };
 
@@ -6222,7 +6570,7 @@ in
 
   qr-filetransfer = callPackage ../tools/networking/qr-filetransfer { };
 
-  qtikz = libsForQt5.callPackage ../applications/graphics/ktikz { };
+  qtikz = libsForQt514.callPackage ../applications/graphics/ktikz { };
 
   quickjs = callPackage ../development/interpreters/quickjs { };
 
@@ -6272,6 +6620,9 @@ in
 
   rdma-core = callPackage ../os-specific/linux/rdma-core { };
 
+
+  real_time_config_quick_scan = callPackage ../applications/audio/real_time_config_quick_scan { };
+
   react-native-debugger = callPackage ../development/tools/react-native-debugger { };
 
   read-edid = callPackage ../os-specific/linux/read-edid { };
@@ -6285,7 +6636,7 @@ in
 
   reredirect = callPackage ../tools/misc/reredirect { };
 
-  retext = libsForQt5.callPackage ../applications/editors/retext { };
+  retext = libsForQt514.callPackage ../applications/editors/retext { };
 
   richgo = callPackage ../development/tools/richgo {  };
 
@@ -6310,7 +6661,9 @@ in
 
   recutils = callPackage ../tools/misc/recutils { };
 
-  recoll = callPackage ../applications/search/recoll { };
+  recoll = libsForQt5.callPackage ../applications/search/recoll { };
+
+  redoc-cli = nodePackages.redoc-cli;
 
   reflex = callPackage ../development/tools/reflex { };
 
@@ -6373,6 +6726,8 @@ in
 
   rnnoise = callPackage ../development/libraries/rnnoise { };
 
+  rnnoise-plugin = callPackage ../development/libraries/rnnoise-plugin {};
+
   rnv = callPackage ../tools/text/xml/rnv { };
 
   rosie = callPackage ../tools/text/rosie { };
@@ -6395,7 +6750,7 @@ in
 
   rockbox_utility = libsForQt5.callPackage ../tools/misc/rockbox-utility { };
 
-  rosegarden = libsForQt5.callPackage ../applications/audio/rosegarden { };
+  rosegarden = libsForQt514.callPackage ../applications/audio/rosegarden { };
 
   rowhammer-test = callPackage ../tools/system/rowhammer-test { };
 
@@ -6417,7 +6772,7 @@ in
 
   rshijack = callPackage ../tools/networking/rshijack { };
 
-  rsibreak = libsForQt5.callPackage ../applications/misc/rsibreak { };
+  rsibreak = libsForQt514.callPackage ../applications/misc/rsibreak { };
 
   rss2email = callPackage ../applications/networking/feedreaders/rss2email {
     pythonPackages = python3Packages;
@@ -6431,9 +6786,7 @@ in
 
   rubocop = callPackage ../development/tools/rubocop { };
 
-  runelite = callPackage ../games/runelite {
-    jre = openjdk11;
-  };
+  runelite = callPackage ../games/runelite { };
 
   runningx = callPackage ../tools/X11/runningx { };
 
@@ -6445,6 +6798,8 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  rustscan = callPackage ../tools/security/rustscan { };
+
   rw = callPackage ../tools/misc/rw { };
 
   rxp = callPackage ../tools/text/xml/rxp { };
@@ -6527,7 +6882,7 @@ in
     quazip = quazip_qt4;
   };
 
-  screenkey = python2Packages.callPackage ../applications/video/screenkey { };
+  screenkey = callPackage ../applications/video/screenkey { };
 
   quazip_qt4 = libsForQt5.quazip.override {
     qtbase = qt4;
@@ -6545,6 +6900,10 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  sd-mux-ctrl = callPackage ../tools/misc/sd-mux-ctrl { };
+
+  sd-switch = callPackage ../os-specific/linux/sd-switch { };
+
   sdate = callPackage ../tools/misc/sdate { };
 
   sdcv = callPackage ../applications/misc/sdcv { };
@@ -6595,12 +6954,18 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  shadowsocks-v2ray-plugin = callPackage ../tools/networking/shadowsocks-v2ray-plugin { };
+
   sharutils = callPackage ../tools/archivers/sharutils { };
 
   shelldap = callPackage ../tools/misc/shelldap { };
 
   schema2ldif = callPackage ../tools/text/schema2ldif { };
 
+  shen-sbcl = callPackage ../development/interpreters/shen-sbcl { };
+
+  shen-sources = callPackage ../development/interpreters/shen-sources { };
+
   shocco = callPackage ../tools/text/shocco { };
 
   shopify-themekit = callPackage ../development/web/shopify-themekit { };
@@ -6627,7 +6992,7 @@ in
 
   sigal = callPackage ../applications/misc/sigal { };
 
-  sigil = libsForQt5.callPackage ../applications/editors/sigil { };
+  sigil = libsForQt514.callPackage ../applications/editors/sigil { };
 
   signal-cli = callPackage ../applications/networking/instant-messengers/signal-cli { };
 
@@ -6676,7 +7041,7 @@ in
 
   sleuthkit = callPackage ../tools/system/sleuthkit {};
 
-  sleepyhead = libsForQt5.callPackage ../applications/misc/sleepyhead {};
+  sleepyhead = libsForQt514.callPackage ../applications/misc/sleepyhead {};
 
   slirp4netns = callPackage ../tools/networking/slirp4netns/default.nix { };
 
@@ -6686,6 +7051,8 @@ in
     conf = config.slstatus.conf or null;
   };
 
+  sm64ex = callPackage ../games/sm64ex { };
+
   smartdns = callPackage ../tools/networking/smartdns { };
 
   smartmontools = callPackage ../tools/system/smartmontools {
@@ -6719,12 +7086,18 @@ in
 
   snort = callPackage ../applications/networking/ids/snort { };
 
+  so = callPackage ../development/tools/so {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   soapui = callPackage ../applications/networking/soapui { };
 
   sshguard = callPackage ../tools/security/sshguard {};
 
   sshping = callPackage ../tools/networking/sshping {};
 
+  ssh-chat = callPackage ../applications/networking/instant-messengers/ssh-chat { };
+
   suricata = callPackage ../applications/networking/ids/suricata {
     python = python3;
   };
@@ -6754,18 +7127,20 @@ in
 
   spectre-meltdown-checker = callPackage ../tools/security/spectre-meltdown-checker { };
 
+  spigot = callPackage ../tools/misc/spigot { };
+
   spiped = callPackage ../tools/networking/spiped { };
 
   sqliteman = callPackage ../applications/misc/sqliteman { };
 
   stdman = callPackage ../data/documentation/stdman { };
 
+  steck = callPackage ../servers/pinnwand/steck.nix { };
+
   stenc = callPackage ../tools/backup/stenc { };
 
   stm32loader = with python3Packages; toPythonApplication stm32loader;
 
-  storebrowse = callPackage ../tools/system/storebrowse { };
-
   stubby = callPackage ../tools/networking/stubby { };
 
   syntex = callPackage ../tools/graphics/syntex {};
@@ -6789,6 +7164,8 @@ in
 
   speech-denoiser = callPackage ../applications/audio/speech-denoiser {};
 
+  splot = haskell.lib.justStaticExecutables haskellPackages.splot;
+
   squashfsTools = callPackage ../tools/filesystems/squashfs { };
 
   squashfs-tools-ng = callPackage ../tools/filesystems/squashfs-tools-ng { };
@@ -6822,7 +7199,7 @@ in
 
   subberthehut = callPackage ../tools/misc/subberthehut { };
 
-  subsurface = libsForQt5.callPackage ../applications/misc/subsurface { };
+  subsurface = libsForQt514.callPackage ../applications/misc/subsurface { };
 
   sudo = callPackage ../tools/security/sudo { };
 
@@ -6838,8 +7215,6 @@ in
 
   supertux-editor = callPackage ../applications/editors/supertux-editor { };
 
-  super-user-spark = haskellPackages.callPackage ../applications/misc/super_user_spark { };
-
   svgbob = callPackage ../tools/graphics/svgbob { };
 
   svgcleaner = callPackage ../tools/graphics/svgcleaner { };
@@ -6907,8 +7282,6 @@ in
 
   swec = callPackage ../tools/networking/swec { };
 
-  swfdec = callPackage ../tools/graphics/swfdec {};
-
   svnfs = callPackage ../tools/filesystems/svnfs { };
 
   svtplay-dl = callPackage ../tools/misc/svtplay-dl { };
@@ -6979,7 +7352,7 @@ in
 
   ted = callPackage ../tools/typesetting/ted { };
 
-  teamviewer = libsForQt5.callPackage ../applications/networking/remote/teamviewer { };
+  teamviewer = libsForQt514.callPackage ../applications/networking/remote/teamviewer { };
 
   teleconsole = callPackage ../tools/misc/teleconsole { };
 
@@ -7013,7 +7386,7 @@ in
 
   textadept = callPackage ../applications/editors/textadept { };
 
-  texworks = libsForQt5.callPackage ../applications/editors/texworks { };
+  texworks = libsForQt514.callPackage ../applications/editors/texworks { };
 
   thc-hydra = callPackage ../tools/security/thc-hydra { };
 
@@ -7039,6 +7412,8 @@ in
 
   timetable = callPackage ../applications/office/timetable { };
 
+  timezonemap = callPackage ../development/libraries/timezonemap { };
+
   tzupdate = callPackage ../applications/misc/tzupdate { };
 
   tinc = callPackage ../tools/networking/tinc { };
@@ -7051,6 +7426,8 @@ in
 
   tinc_pre = callPackage ../tools/networking/tinc/pre.nix {};
 
+  tinycbor = callPackage ../development/libraries/tinycbor { };
+
   tiny8086 = callPackage ../applications/virtualization/8086tiny { };
 
   tinyemu = callPackage ../applications/virtualization/tinyemu { };
@@ -7099,12 +7476,7 @@ in
     inherit (darwin.apple_sdk.frameworks) Foundation;
   };
 
-  tor = callPackage ../tools/security/tor {
-    # remove this, when libevent's openssl is upgraded to 1_1_0 or newer.
-    libevent = libevent.override {
-      sslSupport = false;
-    };
-  };
+  tor = callPackage ../tools/security/tor { };
 
   tor-arm = callPackage ../tools/security/tor/tor-arm.nix { };
 
@@ -7114,6 +7486,8 @@ in
 
   torsocks = callPackage ../tools/security/tor/torsocks.nix { };
 
+  toss = callPackage ../tools/networking/toss { };
+
   tox-node = callPackage ../tools/networking/tox-node { };
 
   toxvpn = callPackage ../tools/networking/toxvpn { };
@@ -7181,7 +7555,7 @@ in
 
   tryton = callPackage ../applications/office/tryton { };
 
-  trytond = callPackage ../applications/office/trytond { };
+  trytond = with python3Packages; toPythonApplication trytond;
 
   omapd = callPackage ../tools/security/omapd { };
 
@@ -7234,6 +7608,8 @@ in
 
   ua = callPackage ../tools/networking/ua { };
 
+  ubidump = python3Packages.callPackage ../tools/filesystems/ubidump { };
+
   ubridge = callPackage ../tools/networking/ubridge { };
 
   ucl = callPackage ../development/libraries/ucl { };
@@ -7256,6 +7632,8 @@ in
 
   uget-integrator = callPackage ../tools/networking/uget-integrator { };
 
+  ugrep = callPackage ../tools/text/ugrep { };
+
   uif2iso = callPackage ../tools/cd-dvd/uif2iso { };
 
   umlet = callPackage ../tools/misc/umlet { };
@@ -7274,6 +7652,8 @@ in
 
   untrunc = callPackage ../tools/video/untrunc { };
 
+  untrunc-anthwlock = callPackage ../tools/video/untrunc-anthwlock { };
+
   up = callPackage ../tools/misc/up { };
 
   upx = callPackage ../tools/compression/upx { };
@@ -7282,6 +7662,10 @@ in
 
   uqmi = callPackage ../tools/networking/uqmi { };
 
+  urdfdom = callPackage ../development/libraries/urdfdom {};
+
+  urdfdom-headers = callPackage ../development/libraries/urdfdom-headers {};
+
   uriparser = callPackage ../development/libraries/uriparser {};
 
   urlscan = callPackage ../applications/misc/urlscan { };
@@ -7312,6 +7696,8 @@ in
 
   vbetool = callPackage ../tools/system/vbetool { };
 
+  vcsi = callPackage ../tools/video/vcsi { };
+
   vde2 = callPackage ../tools/networking/vde2 { };
 
   vboot_reference = callPackage ../tools/system/vboot_reference {};
@@ -7324,10 +7710,16 @@ in
 
   vcstool = callPackage ../development/tools/vcstool { };
 
+  vend = callPackage ../development/tools/vend { };
+
   verilator = callPackage ../applications/science/electronics/verilator {};
 
   verilog = callPackage ../applications/science/electronics/verilog {};
 
+  vgrep = callPackage ../tools/text/vgrep { };
+
+  vhd2vl = callPackage ../applications/science/electronics/vhd2vl { };
+
   video2midi = callPackage ../tools/audio/video2midi {
     pythonPackages = python3Packages;
   };
@@ -7377,6 +7769,8 @@ in
 
   vpnc = callPackage ../tools/networking/vpnc { };
 
+  vpn-slice = python3Packages.callPackage ../tools/networking/vpn-slice { };
+
   vp = callPackage ../applications/misc/vp {
     # Enable next line for console graphics. Note that
     # it requires `sixel` enabled terminals such as mlterm
@@ -7459,7 +7853,11 @@ in
 
   woof = callPackage ../tools/misc/woof { };
 
-  wootility = callPackage ../tools/misc/wootility { };
+  wootility = callPackage ../tools/misc/wootility {
+    inherit (xorg) libxkbfile;
+  };
+
+  wormhole-william = callPackage ../tools/networking/wormhole-william { };
 
   wpscan = callPackage ../tools/security/wpscan { };
 
@@ -7677,10 +8075,14 @@ in
     libpsl = null;
   };
 
+  wg-bond = callPackage ../applications/networking/wg-bond { };
+
   which = callPackage ../tools/system/which { };
 
   whsniff = callPackage ../applications/networking/sniffers/whsniff { };
 
+  wiiuse = callPackage ../development/libraries/wiiuse { };
+
   woeusb = callPackage ../tools/misc/woeusb { };
 
   chase = callPackage ../tools/system/chase { };
@@ -7693,7 +8095,7 @@ in
 
   wireguard-go = callPackage ../tools/networking/wireguard-go { };
 
-  wkhtmltopdf = libsForQt5.callPackage ../tools/graphics/wkhtmltopdf { };
+  wkhtmltopdf = libsForQt514.callPackage ../tools/graphics/wkhtmltopdf { };
 
   wml = callPackage ../development/web/wml { };
 
@@ -7733,6 +8135,8 @@ in
 
   clipnotify = callPackage ../tools/misc/clipnotify { };
 
+  x3270 = callPackage ../applications/misc/x3270 { };
+
   xclip = callPackage ../tools/misc/xclip { };
 
   xcur2png = callPackage ../tools/graphics/xcur2png { };
@@ -7790,9 +8194,7 @@ in
     libxml2 = libxml2Python;
   };
 
-  xsecurelock = callPackage ../tools/X11/xsecurelock {
-    xset = xorg.xset;
-  };
+  xsecurelock = callPackage ../tools/X11/xsecurelock { };
 
   xsel = callPackage ../tools/misc/xsel { };
 
@@ -7802,6 +8204,7 @@ in
 
   xtreemfs = callPackage ../tools/filesystems/xtreemfs {
     boost = boost165;
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
 
   xurls = callPackage ../tools/text/xurls {};
@@ -7834,6 +8237,8 @@ in
 
   yank = callPackage ../tools/misc/yank { };
 
+  yamllint = with python3Packages; toPythonApplication yamllint;
+
   yaml-merge = callPackage ../tools/text/yaml-merge { };
 
   yeshup = callPackage ../tools/system/yeshup { };
@@ -7842,6 +8247,8 @@ in
     inherit (darwin.apple_sdk.frameworks) IOKit;
   };
 
+  ytree = callPackage ../tools/misc/ytree { };
+
   yggdrasil = callPackage ../tools/networking/yggdrasil { };
 
   # To expose more packages for Yi, override the extraPackages arg.
@@ -7926,8 +8333,8 @@ in
   zssh = callPackage ../tools/networking/zssh { };
 
   zstd = callPackage ../tools/compression/zstd {
-    cmake = cmake.override {
-      libarchive = libarchive.override { zstd = null; };
+    cmake = buildPackages.cmake.override {
+      libarchive = buildPackages.libarchive.override { zstd = null; };
     };
   };
 
@@ -7994,8 +8401,6 @@ in
 
   tcsh = callPackage ../shells/tcsh { };
 
-  rssh = callPackage ../shells/rssh { };
-
   rush = callPackage ../shells/rush { };
 
   xonsh = callPackage ../shells/xonsh { };
@@ -8010,10 +8415,14 @@ in
 
   grml-zsh-config = callPackage ../shells/zsh/grml-zsh-config { };
 
+  powerline = with python3Packages; toPythonApplication powerline;
 
   ### DEVELOPMENT / COMPILERS
 
-  abcl = callPackage ../development/compilers/abcl {};
+  abcl = callPackage ../development/compilers/abcl {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   adoptopenjdk-bin-13-packages-linux = import ../development/compilers/adoptopenjdk-bin/jdk13-linux.nix;
   adoptopenjdk-bin-13-packages-darwin = import ../development/compilers/adoptopenjdk-bin/jdk13-darwin.nix;
@@ -8093,6 +8502,7 @@ in
 
   avian = callPackage ../development/compilers/avian {
     inherit (darwin.apple_sdk.frameworks) CoreServices Foundation;
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
 
   bigloo = callPackage ../development/compilers/bigloo { };
@@ -8105,7 +8515,7 @@ in
 
   colm = callPackage ../development/compilers/colm { };
 
-  colmap = libsForQt5.callPackage ../applications/science/misc/colmap { };
+  colmap = libsForQt514.callPackage ../applications/science/misc/colmap { };
   colmapWithCuda = colmap.override { cudaSupport = true; };
 
   chickenPackages_4 = callPackage ../development/compilers/chicken/4 { };
@@ -8180,7 +8590,9 @@ in
 
   cmucl_binary = pkgsi686Linux.callPackage ../development/compilers/cmucl/binary.nix { };
 
-  compcert = callPackage ../development/compilers/compcert { };
+  compcert = callPackage ../development/compilers/compcert {
+    inherit (coqPackages_8_10) coq;
+  };
 
   computecpp-unwrapped = callPackage ../development/compilers/computecpp {};
   computecpp = wrapCCWith rec {
@@ -8203,7 +8615,7 @@ in
     '';
   };
 
-  cryptol = haskell.lib.justStaticExecutables haskellPackages.cryptol;
+  copper = callPackage ../development/compilers/copper {};
 
   inherit (callPackages ../development/compilers/crystal {
     inherit (llvmPackages_10) stdenv clang llvm;
@@ -8270,7 +8682,7 @@ in
     else ../development/compilers/gcc/9);
   gcc = if (with stdenv.targetPlatform; isVc4 || libc == "relibc")
     then gcc6 else gcc9;
-  
+
   gcc-unwrapped = gcc.cc;
 
   gccStdenv = if stdenv.cc.isGNU then stdenv else stdenv.override {
@@ -8464,6 +8876,8 @@ in
     isl = if !stdenv.isDarwin then isl_0_17 else null;
   }));
 
+  gcc_latest = gcc10;
+
   gfortran = gfortran9;
 
   gfortran48 = wrapCC (gcc48.cc.override {
@@ -8631,7 +9045,7 @@ in
 
   # Please update doc/languages-frameworks/haskell.section.md, “Our
   # current default compiler is”, if you bump this:
-  haskellPackages = dontRecurseIntoAttrs haskell.packages.ghc883;
+  haskellPackages = dontRecurseIntoAttrs haskell.packages.ghc884;
 
   inherit (haskellPackages) ghc;
 
@@ -8723,21 +9137,21 @@ in
       inherit (darwin.apple_sdk.frameworks) Security;
     };
 
-  go_1_13 = callPackage ../development/compilers/go/1.13.nix ({
+  go_1_14 = callPackage ../development/compilers/go/1.14.nix ({
     inherit (darwin.apple_sdk.frameworks) Security Foundation;
   } // lib.optionalAttrs stdenv.isAarch64 {
     stdenv = gcc8Stdenv;
     buildPackages = buildPackages // { stdenv = gcc8Stdenv; };
   });
 
-  go_1_14 = callPackage ../development/compilers/go/1.14.nix ({
+  go_1_15 = callPackage ../development/compilers/go/1.15.nix ({
     inherit (darwin.apple_sdk.frameworks) Security Foundation;
   } // lib.optionalAttrs stdenv.isAarch64 {
     stdenv = gcc8Stdenv;
     buildPackages = buildPackages // { stdenv = gcc8Stdenv; };
   });
 
-  go = go_1_14;
+  go = go_1_15;
 
   go-repo-root = callPackage ../development/tools/go-repo-root { };
 
@@ -8798,6 +9212,11 @@ in
     else
       openjdk8.override { headless = true; };
 
+  jdk8 = openjdk8;
+  jdk8_headless = openjdk8_headless;
+  jre8 = openjdk8.jre;
+  jre8_headless = openjdk8_headless.jre;
+
   openjdk11-bootstrap =
     if adoptopenjdk-hotspot-bin-11.meta.available then
       adoptopenjdk-hotspot-bin-11
@@ -8838,7 +9257,10 @@ in
         };
       };
 
-  /* current JDK */
+  jdk11 = openjdk11;
+  jdk11_headless = openjdk11_headless;
+
+  /* Latest JDK */
   openjdk14 =
     if stdenv.isDarwin then
       callPackage ../development/compilers/openjdk/darwin { }
@@ -8854,22 +9276,18 @@ in
     else
       openjdk14.override { headless = true; };
 
-  openjdk = openjdk8;
-  openjdk_headless = openjdk8_headless;
-
-  jdk8 = openjdk8;
-  jre8 = openjdk8.jre;
-  jre8_headless = openjdk8_headless.jre;
-
-  jdk11 = openjdk11;
-  jdk11_headless = openjdk11_headless;
-
   jdk14 = openjdk14;
   jdk14_headless = openjdk14_headless;
 
-  jdk = jdk8;
-  jre = jre8;
-  jre_headless = jre8_headless;
+  /* default JDK */
+
+  jdk = jdk14;
+  # jdk14 lacks a jre output. See https://github.com/NixOS/nixpkgs/issues/79490
+  jre = jdk14;
+  jre_headless = jdk14_headless;
+
+  openjdk = openjdk14;
+  openjdk_headless = openjdk14_headless;
 
   inherit (callPackages ../development/compilers/graalvm {
     gcc = if stdenv.targetPlatform.isDarwin then gcc8 else gcc;
@@ -8883,7 +9301,7 @@ in
     graalvm8-ee
     graalvm11-ee;
 
-  openshot-qt = libsForQt5.callPackage ../applications/video/openshot-qt { };
+  openshot-qt = libsForQt514.callPackage ../applications/video/openshot-qt { };
 
   openspin = callPackage ../development/compilers/openspin { };
 
@@ -8907,9 +9325,15 @@ in
         inherit installjdk pluginSupport;
       });
 
+  oraclejdk11 = callPackage ../development/compilers/oraclejdk/jdk11-linux.nix { };
+
+  oraclejdk14 = callPackage ../development/compilers/oraclejdk/jdk14-linux.nix { };
+
   jasmin = callPackage ../development/compilers/jasmin { };
 
-  java-service-wrapper = callPackage ../tools/system/java-service-wrapper { };
+  java-service-wrapper = callPackage ../tools/system/java-service-wrapper {
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   javacard-devkit = pkgsi686Linux.callPackage ../development/compilers/javacard-devkit { };
 
@@ -8938,6 +9362,21 @@ in
 
   jwasm =  callPackage ../development/compilers/jwasm { };
 
+  knightos-kcc = callPackage ../development/tools/knightos/kcc { };
+
+  knightos-kimg = callPackage ../development/tools/knightos/kimg {
+    asciidoc = asciidoc-full;
+    imagemagick = imagemagick7Big;
+  };
+
+  knightos-kpack = callPackage ../development/tools/knightos/kpack { };
+
+  knightos-mkrom = callPackage ../development/tools/knightos/mkrom {
+    asciidoc = asciidoc-full;
+  };
+
+  knightos-scas = callPackage ../development/tools/knightos/scas { };
+
   kotlin = callPackage ../development/compilers/kotlin { };
 
   lazarus = callPackage ../development/compilers/fpc/lazarus.nix {
@@ -8950,6 +9389,12 @@ in
 
   lizardfs = callPackage ../tools/filesystems/lizardfs { };
 
+  lobster = callPackage ../development/compilers/lobster {
+    inherit (darwin) cf-private;
+    inherit (darwin.apple_sdk.frameworks)
+      Cocoa AudioToolbox OpenGL Foundation ForceFeedback;
+  };
+
   lld = llvmPackages.lld;
   lld_5 = llvmPackages_5.lld;
   lld_6 = llvmPackages_6.lld;
@@ -9035,7 +9480,9 @@ in
 
   manticore = callPackage ../development/compilers/manticore { };
 
-  mercury = callPackage ../development/compilers/mercury { };
+  mercury = callPackage ../development/compilers/mercury {
+    jdk = openjdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   microscheme = callPackage ../development/compilers/microscheme { };
 
@@ -9055,6 +9502,8 @@ in
 
   mkcl = callPackage ../development/compilers/mkcl {};
 
+  mlkit = callPackage ../development/compilers/mlkit {};
+
   inherit (callPackage ../development/compilers/mlton {})
     mlton20130715
     mlton20180207Binary
@@ -9088,16 +9537,19 @@ in
 
   mozart2 = callPackage ../development/compilers/mozart {
     emacs = emacs-nox;
+    jre_headless = jre8_headless; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
 
   mozart2-binary = callPackage ../development/compilers/mozart/binary.nix { };
 
   nim = callPackage ../development/compilers/nim { };
+  nim-unwrapped = nim.unwrapped;
+
   nrpl = callPackage ../development/tools/nrpl { };
 
   neko = callPackage ../development/compilers/neko { };
 
-  nextpnr = libsForQt5.callPackage ../development/compilers/nextpnr {
+  nextpnr = libsForQt514.callPackage ../development/compilers/nextpnr {
     inherit (darwin.apple_sdk.frameworks) OpenGL;
   };
 
@@ -9118,10 +9570,15 @@ in
 
   ocaml-crunch = ocamlPackages.crunch.bin;
 
-  ocamlformat = callPackage ../development/tools/ocaml/ocamlformat { };
+  inherit (callPackage ../development/tools/ocaml/ocamlformat { })
+    ocamlformat # latest version
+    ocamlformat_0_11_0 ocamlformat_0_12 ocamlformat_0_13_0 ocamlformat_0_14_0
+    ocamlformat_0_14_1 ocamlformat_0_14_2 ocamlformat_0_15_0;
 
   orc = callPackage ../development/compilers/orc { };
 
+  orocos-kdl = callPackage ../development/libraries/orocos-kdl { };
+
   metaocaml_3_09 = callPackage ../development/compilers/ocaml/metaocaml-3.09.nix { };
 
   ber_metaocaml = callPackage ../development/compilers/ocaml/ber-metaocaml.nix { };
@@ -9161,6 +9618,36 @@ in
 
   rgbds = callPackage ../development/compilers/rgbds { };
 
+  rocclr = callPackage ../development/libraries/rocclr {
+    inherit (llvmPackages_rocm) clang;
+  };
+
+  rocm-cmake = callPackage ../development/tools/build-managers/rocm-cmake { };
+
+  rocm-comgr = callPackage ../development/libraries/rocm-comgr {
+    inherit (llvmPackages_rocm) clang lld llvm;
+    device-libs = rocm-device-libs;
+  };
+
+  rocm-device-libs = callPackage ../development/libraries/rocm-device-libs {
+    inherit (llvmPackages_rocm) clang clang-unwrapped lld llvm;
+  };
+
+  rocm-opencl-icd = callPackage ../development/libraries/rocm-opencl-icd { };
+
+  rocm-opencl-runtime = callPackage ../development/libraries/rocm-opencl-runtime {
+    inherit (llvmPackages_rocm) clang clang-unwrapped lld llvm;
+  };
+
+  rocm-runtime = callPackage ../development/libraries/rocm-runtime {
+    inherit (llvmPackages_rocm) clang-unwrapped llvm;
+  };
+
+  # Python >= 3.8 still gives a bunch of warnings.
+  rocm-smi = python37.pkgs.callPackage ../tools/system/rocm-smi { };
+
+  rocm-thunk = callPackage ../development/libraries/rocm-thunk { };
+
   rtags = callPackage ../development/tools/rtags {
     inherit (darwin) apple_sdk;
   };
@@ -9216,12 +9703,16 @@ in
   cargo-audit = callPackage ../tools/package-management/cargo-audit {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
+  cargo-c = callPackage ../development/tools/rust/cargo-c {
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
   cargo-deb = callPackage ../tools/package-management/cargo-deb {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
   cargo-deps = callPackage ../tools/package-management/cargo-deps { };
   cargo-download = callPackage ../tools/package-management/cargo-download { };
   cargo-edit = callPackage ../tools/package-management/cargo-edit { };
+  cargo-kcov = callPackage ../tools/package-management/cargo-kcov { };
   cargo-graph = callPackage ../tools/package-management/cargo-graph { };
   cargo-license = callPackage ../tools/package-management/cargo-license { };
   cargo-outdated = callPackage ../tools/package-management/cargo-outdated {};
@@ -9229,20 +9720,29 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
   cargo-tarpaulin = callPackage ../development/tools/analysis/cargo-tarpaulin { };
-  cargo-tree = callPackage ../tools/package-management/cargo-tree { };
-  cargo-update = callPackage ../tools/package-management/cargo-update { };
+  cargo-update = callPackage ../tools/package-management/cargo-update {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   cargo-asm = callPackage ../development/tools/rust/cargo-asm {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
   cargo-bloat = callPackage ../development/tools/rust/cargo-bloat { };
+  cargo-cache = callPackage ../development/tools/rust/cargo-cache {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
   cargo-crev = callPackage ../development/tools/rust/cargo-crev {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
   cargo-deny = callPackage ../development/tools/rust/cargo-deny {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
+  cargo-embed = callPackage ../development/tools/rust/cargo-embed { };
   cargo-expand = callPackage ../development/tools/rust/cargo-expand { };
+  cargo-flash = callPackage ../development/tools/rust/cargo-flash { };
+  cargo-fund = callPackage ../development/tools/rust/cargo-fund {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
   cargo-fuzz = callPackage ../development/tools/rust/cargo-fuzz { };
   cargo-geiger = callPackage ../development/tools/rust/cargo-geiger {
     inherit (darwin) libiconv;
@@ -9253,12 +9753,13 @@ in
   };
   cargo-insta = callPackage ../development/tools/rust/cargo-insta { };
   cargo-make = callPackage ../development/tools/rust/cargo-make {
-    inherit (darwin.apple_sdk.frameworks) Security;
+    inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
   };
   cargo-raze = callPackage ../development/tools/rust/cargo-raze {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
   cargo-sweep = callPackage ../development/tools/rust/cargo-sweep { };
+  cargo-sync-readme = callPackage ../development/tools/rust/cargo-sync-readme {};
   cargo-udeps = callPackage ../development/tools/rust/cargo-udeps {
     inherit (darwin.apple_sdk.frameworks) CoreServices Security;
   };
@@ -9303,7 +9804,10 @@ in
 
   metal = callPackage ../development/libraries/metal { };
   metals = callPackage ../development/tools/metals { };
-  scalafix = callPackage ../development/tools/scalafix { };
+  scalafix = callPackage ../development/tools/scalafix {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
   scalafmt = callPackage ../development/tools/scalafmt { };
 
   sdcc = callPackage ../development/compilers/sdcc {
@@ -9345,6 +9849,7 @@ in
 
   swiProlog = callPackage ../development/compilers/swi-prolog {
     inherit (darwin.apple_sdk.frameworks) Security;
+    jdk = openjdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
   swiPrologWithGui = swiProlog.override { withGui = true; };
 
@@ -9457,12 +9962,15 @@ in
 
   zulip = callPackage ../applications/networking/instant-messengers/zulip { };
 
+  zulip-term = callPackage ../applications/networking/instant-messengers/zulip-term { };
+
   zulu8 = callPackage ../development/compilers/zulu/8.nix { };
   zulu = callPackage ../development/compilers/zulu { };
 
   ### DEVELOPMENT / INTERPRETERS
 
   acl2 = callPackage ../development/interpreters/acl2 { };
+  acl2-minimal = callPackage ../development/interpreters/acl2 { certifyBooks = false; };
 
   angelscript = callPackage ../development/interpreters/angelscript {};
 
@@ -9493,6 +10001,8 @@ in
 
   dhall-json = haskell.lib.justStaticExecutables haskellPackages.dhall-json;
 
+  dhall-lsp-server = haskell.lib.justStaticExecutables haskellPackages.dhall-lsp-server;
+
   dhall-text = haskell.lib.justStaticExecutables haskellPackages.dhall-text;
 
   dhallPackages = callPackages ./dhall-packages.nix { };
@@ -9506,9 +10016,9 @@ in
   beam = callPackage ./beam-packages.nix { };
 
   inherit (beam.interpreters)
-    erlang erlangR18 erlangR19 erlangR20 erlangR21 erlangR22
+    erlang erlangR23 erlangR22 erlangR21 erlangR20 erlangR19 erlangR18
     erlang_odbc erlang_javac erlang_odbc_javac erlang_nox erlang_basho_R16B02
-    elixir elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7 elixir_1_6;
+    elixir elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7;
 
   inherit (beam.packages.erlang)
     rebar rebar3
@@ -9530,7 +10040,9 @@ in
 
   guile = guile_2_2;
 
-  inherit (callPackages ../applications/networking/cluster/hadoop { })
+  inherit (callPackages ../applications/networking/cluster/hadoop {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  })
     hadoop_2_7
     hadoop_2_8
     hadoop_2_9
@@ -9557,7 +10069,7 @@ in
   kanif = callPackage ../applications/networking/cluster/kanif { };
 
   lumo = callPackage ../development/interpreters/clojurescript/lumo {
-    nodejs = nodejs-13_x;
+    nodejs = nodejs_latest;
   };
 
   lxappearance = callPackage ../desktops/lxde/core/lxappearance { };
@@ -9623,13 +10135,6 @@ in
 
   me_cleaner = pythonPackages.callPackage ../tools/misc/me_cleaner { };
 
-  mesos = callPackage ../applications/networking/cluster/mesos {
-    sasl = cyrus_sasl;
-    inherit (pythonPackages) python boto setuptools wrapPython;
-    pythonProtobuf = pythonPackages.protobuf.override { protobuf = protobuf3_6; };
-    perf = linuxPackages.perf;
-  };
-
   mesos-dns = callPackage ../servers/mesos-dns { };
 
   metamath = callPackage ../development/interpreters/metamath { };
@@ -9644,16 +10149,21 @@ in
 
   octave = callPackage ../development/interpreters/octave {
     python = python3;
+    mkDerivation = stdenv.mkDerivation;
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
   octave-jit = callPackage ../development/interpreters/octave {
     python = python3;
     enableJIT = true;
+    mkDerivation = stdenv.mkDerivation;
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
-  octaveFull = (lowPrio (libsForQt512.callPackage ../development/interpreters/octave {
+  octaveFull = libsForQt5.callPackage ../development/interpreters/octave {
     python = python3;
     enableQt = true;
     overridePlatforms = ["x86_64-linux" "x86_64-darwin"];
-  }));
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   ocropus = callPackage ../applications/misc/ocropus { };
 
@@ -9662,18 +10172,16 @@ in
   php = php74;
 
   phpPackages = php74Packages;
-  php72Packages = recurseIntoAttrs php72.packages;
   php73Packages = recurseIntoAttrs php73.packages;
   php74Packages = recurseIntoAttrs php74.packages;
 
   phpExtensions = php74Extensions;
-  php72Extensions = recurseIntoAttrs php72.extensions;
   php73Extensions = recurseIntoAttrs php73.extensions;
   php74Extensions = recurseIntoAttrs php74.extensions;
 
   inherit (callPackage ../development/interpreters/php {
     stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
-  }) php74 php73 php72;
+  }) php74 php73;
 
   picoc = callPackage ../development/interpreters/picoc {};
 
@@ -9700,27 +10208,60 @@ in
 
   # Python interpreter that is build with all modules, including tkinter.
   # These are for compatibility and should not be used inside Nixpkgs.
-  pythonFull = python.override{x11Support=true;};
-  python2Full = python2.override{x11Support=true;};
-  python27Full = python27.override{x11Support=true;};
-  python3Full = python3.override{x11Support=true;};
-  python35Full = python35.override{x11Support=true;};
-  python36Full = python36.override{x11Support=true;};
-  python37Full = python37.override{x11Support=true;};
-  python38Full = python38.override{x11Support=true;};
-  python39Full = python39.override{x11Support=true;};
+  pythonFull = python.override {
+    self = pythonFull;
+    x11Support = true;
+  };
+  python2Full = python2.override {
+    self = python2Full;
+    x11Support = true;
+  };
+  python27Full = python27.override {
+    self = python27Full;
+    x11Support = true;
+  };
+  python3Full = python3.override {
+    self = python3Full;
+    bluezSupport = true;
+    x11Support = true;
+  };
+  python36Full = python36.override {
+    self = python36Full;
+    bluezSupport = true;
+    x11Support = true;
+  };
+  python37Full = python37.override {
+    self = python37Full;
+    bluezSupport = true;
+    x11Support = true;
+  };
+  python38Full = python38.override {
+    self = python38Full;
+    bluezSupport = true;
+    x11Support = true;
+  };
+  python39Full = python39.override {
+    self = python39Full;
+    bluezSupport = true;
+    x11Support = true;
+  };
 
   # pythonPackages further below, but assigned here because they need to be in sync
   pythonPackages = python.pkgs;
   python2Packages = python2.pkgs;
   python3Packages = python3.pkgs;
 
-  pythonInterpreters = callPackage ./../development/interpreters/python {};
-  inherit (pythonInterpreters) python27 python35 python36 python37 python38 python39 python3Minimal pypy27 pypy36;
+  pythonInterpreters = callPackage ./../development/interpreters/python {
+    # Overrides that apply to all Python interpreters
+    pkgs = pkgs.extend (final: _: {
+      qt5 = final.qt514;
+      libsForQt5 = final.libsForQt514;
+    });
+  };
+  inherit (pythonInterpreters) python27 python36 python37 python38 python39 python3Minimal pypy27 pypy36;
 
   # Python package sets.
   python27Packages = lib.hiPrioSet (recurseIntoAttrs python27.pkgs);
-  python35Packages = python35.pkgs;
   python36Packages = python36.pkgs;
   python37Packages = recurseIntoAttrs python37.pkgs;
   python38Packages = recurseIntoAttrs python38.pkgs;
@@ -9820,7 +10361,7 @@ in
   inherit (callPackage ../development/interpreters/ruby {
     inherit (darwin) libiconv libobjc libunwind;
     inherit (darwin.apple_sdk.frameworks) Foundation;
-    bison = bison_3_5;
+    bison = buildPackages.bison_3_5;
   })
     ruby_1_9
     ruby_2_0
@@ -9877,6 +10418,8 @@ in
 
   spark = callPackage ../applications/networking/cluster/spark { };
 
+  sparkleshare = callPackage ../applications/version-management/sparkleshare { };
+
   spidermonkey_1_8_5 = callPackage ../development/interpreters/spidermonkey/1.8.5.nix { };
   spidermonkey_38 = callPackage ../development/interpreters/spidermonkey/38.nix ({
     inherit (darwin) libobjc;
@@ -9890,7 +10433,7 @@ in
   ssm-agent = callPackage ../applications/networking/cluster/ssm-agent { };
   ssm-session-manager-plugin = callPackage ../applications/networking/cluster/ssm-session-manager-plugin { };
 
-  supercollider = libsForQt5.callPackage ../development/interpreters/supercollider {
+  supercollider = libsForQt514.callPackage ../development/interpreters/supercollider {
     fftw = fftwSinglePrec;
   };
 
@@ -10003,7 +10546,9 @@ in
 
   adtool = callPackage ../tools/admin/adtool { };
 
-  inherit (callPackage ../development/tools/alloy { })
+  inherit (callPackage ../development/tools/alloy {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  })
     alloy4
     alloy5
     alloy;
@@ -10014,26 +10559,34 @@ in
 
   inherit (callPackage ../tools/admin/ansible { })
     ansible
-    ansible_2_7
     ansible_2_8
-    ansible_2_9;
+    ansible_2_9
+    ansible_2_10;
 
   ansible-lint = with python3.pkgs; toPythonApplication ansible-lint;
 
-  antlr = callPackage ../development/tools/parsing/antlr/2.7.7.nix { };
+  antlr = callPackage ../development/tools/parsing/antlr/2.7.7.nix {
+    jdk = jdk8; # todo: remove override https://github.com/nixos/nixpkgs/pull/89731
+  };
 
-  antlr3_4 = callPackage ../development/tools/parsing/antlr/3.4.nix { };
-  antlr3_5 = callPackage ../development/tools/parsing/antlr/3.5.nix { };
+  antlr3_4 = callPackage ../development/tools/parsing/antlr/3.4.nix {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+  antlr3_5 = callPackage ../development/tools/parsing/antlr/3.5.nix {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
   antlr3 = antlr3_5;
 
-  antlr4_7 = callPackage ../development/tools/parsing/antlr/4.7.nix { };
+  antlr4_7 = callPackage ../development/tools/parsing/antlr/4.7.nix {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
   antlr4 = antlr4_7;
 
   apacheAnt = callPackage ../development/tools/build-managers/apache-ant { };
   apacheAnt_1_9 = callPackage ../development/tools/build-managers/apache-ant/1.9.nix { };
   ant = apacheAnt;
 
-  apacheKafka = apacheKafka_2_4;
+  apacheKafka = apacheKafka_2_5;
   apacheKafka_0_9 = callPackage ../servers/apache-kafka { majorVersion = "0.9"; };
   apacheKafka_0_10 = callPackage ../servers/apache-kafka { majorVersion = "0.10"; };
   apacheKafka_0_11 = callPackage ../servers/apache-kafka { majorVersion = "0.11"; };
@@ -10044,6 +10597,7 @@ in
   apacheKafka_2_2 = callPackage ../servers/apache-kafka { majorVersion = "2.2"; };
   apacheKafka_2_3 = callPackage ../servers/apache-kafka { majorVersion = "2.3"; };
   apacheKafka_2_4 = callPackage ../servers/apache-kafka { majorVersion = "2.4"; };
+  apacheKafka_2_5 = callPackage ../servers/apache-kafka { majorVersion = "2.5"; };
 
   kt = callPackage ../tools/misc/kt {};
 
@@ -10060,8 +10614,7 @@ in
   aws-adfs = with python3Packages; toPythonApplication aws-adfs;
 
   inherit (callPackages ../development/tools/electron { })
-    electron_3 electron_4 electron_5 electron_6 electron_7 electron_8 electron_9;
-  electron = electron_4;
+    electron electron_3 electron_4 electron_5 electron_6 electron_7 electron_8 electron_9 electron_10;
 
   autobuild = callPackage ../development/tools/misc/autobuild { };
 
@@ -10097,7 +10650,7 @@ in
   bazel_0_26 = callPackage ../development/tools/build-managers/bazel/bazel_0_26 {
     inherit (darwin) cctools;
     inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
-    buildJdk = jdk8;
+    buildJdk = jdk8_headless;
     buildJdkName = "jdk8";
     runJdk = jdk11_headless;
     stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
@@ -10106,7 +10659,7 @@ in
   bazel_0_29 = callPackage ../development/tools/build-managers/bazel/bazel_0_29 {
     inherit (darwin) cctools;
     inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
-    buildJdk = jdk8;
+    buildJdk = jdk8_headless;
     buildJdkName = "jdk8";
     runJdk = jdk11_headless;
     stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
@@ -10116,7 +10669,7 @@ in
   bazel_1 = callPackage ../development/tools/build-managers/bazel/bazel_1 {
     inherit (darwin) cctools;
     inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
-    buildJdk = jdk8;
+    buildJdk = jdk8_headless;
     buildJdkName = "jdk8";
     runJdk = jdk11_headless;
     stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
@@ -10126,7 +10679,7 @@ in
   bazel_3 = callPackage ../development/tools/build-managers/bazel/bazel_3 {
     inherit (darwin) cctools;
     inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Foundation;
-    buildJdk = jdk8;
+    buildJdk = jdk8_headless;
     buildJdkName = "jdk8";
     runJdk = jdk11_headless;
     stdenv = if stdenv.cc.isClang then llvmPackages_6.stdenv else stdenv;
@@ -10144,8 +10697,12 @@ in
 
   bazel-gazelle = callPackage ../development/tools/bazel-gazelle { };
 
+  bazel-kazel = callPackage ../development/tools/bazel-kazel { };
+
   bazelisk = callPackage ../development/tools/bazelisk { };
 
+  rebazel = callPackage ../development/tools/rebazel { };
+
   buildBazelPackage = callPackage ../build-support/build-bazel-package { };
 
   bear = callPackage ../development/tools/build-managers/bear { };
@@ -10181,6 +10738,8 @@ in
 
   black = with python3Packages; toPythonApplication black;
 
+  black-macchiato = with python3Packages; toPythonApplication black-macchiato;
+
   blackmagic = callPackage ../development/tools/misc/blackmagic { };
 
   bloaty = callPackage ../development/tools/bloaty { };
@@ -10191,7 +10750,9 @@ in
     wxGTK = wxGTK30;
   };
 
-  buck = callPackage ../development/tools/build-managers/buck { };
+  buck = callPackage ../development/tools/build-managers/buck {
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   buildkite-agent = buildkite-agent3;
   buildkite-agent2 = throw "pkgs.buildkite-agent2 has been discontinued. Please use pkgs.buildkite-agent (v3.x)";
@@ -10213,6 +10774,8 @@ in
 
   cbrowser = callPackage ../development/tools/misc/cbrowser { };
 
+  cc-tool = callPackage ../development/tools/misc/cc-tool { };
+
   ccache = callPackage ../development/tools/misc/ccache { };
 
   # Wrapper that works as gcc or g++
@@ -10268,6 +10831,8 @@ in
 
   cloud-nuke = callPackage ../development/tools/cloud-nuke { };
 
+  cloudcompare = libsForQt5.callPackage ../applications/graphics/cloudcompare {};
+
   cloudfoundry-cli = callPackage ../development/tools/cloudfoundry-cli { };
 
   coan = callPackage ../development/tools/analysis/coan { };
@@ -10303,7 +10868,9 @@ in
 
   cmake-format = python3Packages.callPackage ../development/tools/cmake-format { };
 
-  cmake-language-server = python3Packages.callPackage ../development/tools/cmake-language-server { };
+  cmake-language-server = python3Packages.callPackage ../development/tools/cmake-language-server {
+    inherit (pkgs) cmake;
+  };
 
   # Does not actually depend on Qt 5
   inherit (kdeFrameworks) extra-cmake-modules kapidox kdoctools;
@@ -10358,8 +10925,8 @@ in
     if stdenv.targetPlatform.isi686
       then gcc6.cc
     else if stdenv.targetPlatform == stdenv.hostPlatform && targetPackages.stdenv.cc.isGNU
-	  # Can only do this is in the native case, otherwise we might get infinite
-	  # recursion if `targetPackages.stdenv.cc.cc` itself uses `gccForLibs`.
+    # Can only do this is in the native case, otherwise we might get infinite
+    # recursion if `targetPackages.stdenv.cc.cc` itself uses `gccForLibs`.
       then targetPackages.stdenv.cc.cc
     else gcc.cc;
 
@@ -10457,12 +11024,16 @@ in
 
   drush = callPackage ../development/tools/misc/drush { };
 
+  easypdkprog = callPackage ../development/tools/misc/easypdkprog { };
+
   editorconfig-checker = callPackage ../development/tools/misc/editorconfig-checker { };
 
   editorconfig-core-c = callPackage ../development/tools/misc/editorconfig-core-c { };
 
   eggdbus = callPackage ../development/tools/misc/eggdbus { };
 
+  effitask = callPackage ../applications/misc/effitask { };
+
   egypt = callPackage ../development/tools/analysis/egypt { };
 
   elfinfo = callPackage ../development/tools/misc/elfinfo { };
@@ -10471,6 +11042,8 @@ in
 
   elfutils = callPackage ../development/tools/misc/elfutils { };
 
+  eliot-tree = callPackage ../development/tools/eliot-tree { };
+
   emma = callPackage ../development/tools/analysis/emma { };
 
   epm = callPackage ../development/tools/misc/epm { };
@@ -10515,17 +11088,23 @@ in
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   };
 
+  fujprog = callPackage ../development/tools/misc/fujprog { };
+
   funnelweb = callPackage ../development/tools/literate-programming/funnelweb { };
 
   gede = libsForQt5.callPackage ../development/tools/misc/gede { };
 
   gdbgui = python3Packages.callPackage ../development/tools/misc/gdbgui { };
 
-  pmd = callPackage ../development/tools/analysis/pmd { };
+  pmd = callPackage ../development/tools/analysis/pmd {
+    openjdk = openjdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   pmdk = callPackage ../development/libraries/pmdk { };
 
-  jdepend = callPackage ../development/tools/analysis/jdepend { };
+  jdepend = callPackage ../development/tools/analysis/jdepend {
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   fedpkg = pythonPackages.callPackage ../development/tools/fedpkg { };
 
@@ -10556,6 +11135,8 @@ in
 
   gnome-latex = callPackage ../applications/editors/gnome-latex/default.nix { };
 
+  gnome-network-displays = callPackage ../applications/networking/gnome-network-displays { };
+
   gnome-multi-writer = callPackage ../applications/misc/gnome-multi-writer {};
 
   gnome-online-accounts = callPackage ../development/libraries/gnome-online-accounts { };
@@ -10565,8 +11146,8 @@ in
   gnum4 = callPackage ../development/tools/misc/gnum4 { };
   m4 = gnum4;
 
+  gnumake = callPackage ../development/tools/build-managers/gnumake { };
   gnumake42 = callPackage ../development/tools/build-managers/gnumake/4.2 { };
-  gnumake = gnumake42;
 
   gnustep = recurseIntoAttrs (callPackage ../desktops/gnustep {});
 
@@ -10583,12 +11164,13 @@ in
   gputils = callPackage ../development/tools/misc/gputils { };
 
   gradleGen = callPackage ../development/tools/build-managers/gradle {
-    java = jdk;
+    java = jdk8; # TODO: upgrade https://github.com/NixOS/nixpkgs/pull/89731
   };
   gradle = res.gradleGen.gradle_latest;
   gradle_4_10 = res.gradleGen.gradle_4_10;
   gradle_4 = gradle_4_10;
   gradle_5 = res.gradleGen.gradle_5_6;
+  gradle_6 = res.gradleGen.gradle_6_6;
 
   gperf = callPackage ../development/tools/misc/gperf { };
   # 3.1 changed some parameters from int to size_t, leading to mismatches.
@@ -10647,7 +11229,7 @@ in
   };
 
   include-what-you-use = callPackage ../development/tools/analysis/include-what-you-use {
-    llvmPackages = llvmPackages_8;
+    llvmPackages = llvmPackages_10;
   };
 
   indent = callPackage ../development/tools/misc/indent { };
@@ -10684,7 +11266,7 @@ in
 
   kati = callPackage ../development/tools/build-managers/kati { };
 
-  kcc = libsForQt5.callPackage ../applications/graphics/kcc { };
+  kcc = libsForQt514.callPackage ../applications/graphics/kcc { };
 
   kconfig-frontends = callPackage ../development/tools/misc/kconfig-frontends {
     gperf = gperf_3_0;
@@ -10706,6 +11288,8 @@ in
 
   kubeprompt = callPackage ../development/tools/kubeprompt { };
 
+  kubespy = callPackage ../applications/networking/cluster/kubespy { };
+
   kubicorn = callPackage ../development/tools/kubicorn {  };
 
   kubie = callPackage ../development/tools/kubie {
@@ -10720,6 +11304,8 @@ in
 
   lazygit = callPackage ../development/tools/lazygit { };
 
+  laminar = callPackage ../development/tools/continuous-integration/laminar { };
+
   Literate = callPackage ../development/tools/literate-programming/Literate {};
 
   lcov = callPackage ../development/tools/analysis/lcov { };
@@ -10754,10 +11340,12 @@ in
 
   lttv = callPackage ../development/tools/misc/lttv { };
 
-  massif-visualizer = libsForQt5.callPackage ../development/tools/analysis/massif-visualizer { };
+  massif-visualizer = libsForQt514.callPackage ../development/tools/analysis/massif-visualizer { };
 
   maven = maven3;
-  maven3 = callPackage ../development/tools/build-managers/apache-maven { };
+  maven3 = callPackage ../development/tools/build-managers/apache-maven {
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   mavproxy = python3Packages.callPackage ../applications/science/robotics/mavproxy { };
 
@@ -10776,7 +11364,7 @@ in
   minify = callPackage ../development/web/minify { };
 
   minizinc = callPackage ../development/tools/minizinc { };
-  minizincide = qt5.callPackage ../development/tools/minizinc/ide.nix { };
+  minizincide = qt514.callPackage ../development/tools/minizinc/ide.nix { };
 
   mk = callPackage ../development/tools/build-managers/mk { };
 
@@ -10784,6 +11372,8 @@ in
 
   mkdocs = callPackage ../development/tools/documentation/mkdocs { };
 
+  mockgen = callPackage ../development/tools/mockgen { };
+
   modd = callPackage ../development/tools/modd { };
 
   msgpack-tools = callPackage ../development/tools/msgpack-tools { };
@@ -10865,6 +11455,7 @@ in
   parse-cli-bin = callPackage ../development/tools/parse-cli-bin { };
 
   patchelf = callPackage ../development/tools/misc/patchelf { };
+  patchelf_0_9 = callPackage ../development/tools/misc/patchelf/0.9.nix { };
 
   patchelfUnstable = lowPrio (callPackage ../development/tools/misc/patchelf/unstable.nix { });
 
@@ -10876,7 +11467,7 @@ in
 
   phantomjs = callPackage ../development/tools/phantomjs { };
 
-  phantomjs2 = libsForQt5.callPackage ../development/tools/phantomjs2 { };
+  phantomjs2 = libsForQt514.callPackage ../development/tools/phantomjs2 { };
 
   pmccabe = callPackage ../development/tools/misc/pmccabe { };
 
@@ -10931,7 +11522,7 @@ in
 
   pyrseas = callPackage ../development/tools/database/pyrseas { };
 
-  qtcreator = libsForQt5.callPackage ../development/tools/qtcreator { };
+  qtcreator = libsForQt514.callPackage ../development/tools/qtcreator { };
 
   qxmledit = libsForQt5.callPackage ../applications/editors/qxmledit {} ;
 
@@ -10942,7 +11533,7 @@ in
     lua = lua5;
   } // (config.radare or {}))) radare2 r2-for-cutter;
 
-  radare2-cutter = libsForQt5.callPackage ../development/tools/analysis/radare2/cutter.nix { };
+  radare2-cutter = libsForQt514.callPackage ../development/tools/analysis/radare2/cutter.nix { };
 
   ragel = ragelStable;
 
@@ -10962,6 +11553,8 @@ in
 
   redo-apenwarr = callPackage ../development/tools/build-managers/redo-apenwarr { };
 
+  redo-c = callPackage ../development/tools/build-managers/redo-c { };
+
   redo-sh = callPackage ../development/tools/build-managers/redo-sh { };
 
   reno = callPackage ../development/tools/reno { };
@@ -10970,6 +11563,8 @@ in
 
   remake = callPackage ../development/tools/build-managers/remake { };
 
+  replacement = callPackage ../development/tools/misc/replacement { };
+
   retdec = callPackage ../development/tools/analysis/retdec {
     stdenv = gcc8Stdenv;
   };
@@ -11096,10 +11691,18 @@ in
 
   strace = callPackage ../development/tools/misc/strace { };
 
+  summon = callPackage ../development/tools/summon { };
+
+  svlint = callPackage ../development/tools/analysis/svlint { };
+
+  svls = callPackage ../development/tools/misc/svls { };
+
   swarm = callPackage ../development/tools/analysis/swarm { };
 
   swiftformat = callPackage ../development/tools/swiftformat { };
 
+  swiftshader = callPackage ../development/libraries/swiftshader { };
+
   systemfd = callPackage ../development/tools/systemfd { };
 
   swig1 = callPackage ../development/tools/misc/swig { };
@@ -11126,11 +11729,15 @@ in
   terraform-lsp = callPackage ../development/tools/misc/terraform-lsp { };
   terraform-ls = callPackage ../development/tools/misc/terraform-ls { };
 
+  terraformer = callPackage ../development/tools/misc/terraformer { };
+
   texinfo413 = callPackage ../development/tools/misc/texinfo/4.13a.nix { };
   texinfo4 = texinfo413;
   texinfo5 = callPackage ../development/tools/misc/texinfo/5.2.nix { };
-  texinfo6 = callPackage ../development/tools/misc/texinfo/6.5.nix { };
-  texinfo = texinfo6;
+  texinfo6_5 = callPackage ../development/tools/misc/texinfo/6.5.nix { };
+  texinfo6 = callPackage ../development/tools/misc/texinfo/6.7.nix { };
+  # Temporarily use older version on Darwin until it works.
+  texinfo = if stdenv.isDarwin then texinfo6_5 else texinfo6;
   texinfoInteractive = appendToName "interactive" (
     texinfo.override { interactive = true; }
   );
@@ -11243,6 +11850,8 @@ in
 
   xxdiff = libsForQt5.callPackage ../development/tools/misc/xxdiff { };
 
+  xxe-pe = callPackage ../applications/editors/xxe-pe { };
+
   xxdiff-tip = xxdiff;
 
   yaml2json = callPackage ../development/tools/yaml2json { };
@@ -11250,13 +11859,13 @@ in
   ycmd = callPackage ../development/tools/misc/ycmd {
     inherit (darwin.apple_sdk.frameworks) Cocoa;
     python = python3;
+    # currently broken
+    rustracerd = null;
   };
 
   yodl = callPackage ../development/tools/misc/yodl { };
 
-  yq = callPackage ../development/tools/yq {
-    inherit (python3Packages) buildPythonApplication fetchPypi pyyaml xmltodict;
-  };
+  yq = python3.pkgs.toPythonApplication python3.pkgs.yq;
 
   yq-go = callPackage ../development/tools/yq-go { };
 
@@ -11300,6 +11909,10 @@ in
   allegro4 = callPackage ../development/libraries/allegro {};
   allegro5 = callPackage ../development/libraries/allegro/5.nix {};
 
+  amdvlk = callPackage ../development/libraries/amdvlk {};
+
+  aml = callPackage ../development/libraries/aml { };
+
   amrnb = callPackage ../development/libraries/amrnb { };
 
   amrwb = callPackage ../development/libraries/amrwb { };
@@ -11310,8 +11923,6 @@ in
 
   appstream-glib = callPackage ../development/libraries/appstream-glib { };
 
-  appstream-qt = libsForQt5.callPackage ../development/libraries/appstream/qt.nix { };
-
   apr = callPackage ../development/libraries/apr { };
 
   aprutil = callPackage ../development/libraries/apr-util {
@@ -11339,9 +11950,8 @@ in
 
   assimp = callPackage ../development/libraries/assimp { };
 
-  asio = asio_1_12;
   asio_1_10 = callPackage ../development/libraries/asio/1.10.nix { };
-  asio_1_12 = callPackage ../development/libraries/asio/1.12.nix { };
+  asio = callPackage ../development/libraries/asio/default.nix { };
 
   aspell = callPackage ../development/libraries/aspell { };
 
@@ -11363,6 +11973,8 @@ in
 
   aubio = callPackage ../development/libraries/aubio { };
 
+  audiality2 = callPackage ../development/libraries/audiality2 { };
+
   audiofile = callPackage ../development/libraries/audiofile {
     inherit (darwin.apple_sdk.frameworks) AudioUnit CoreServices;
   };
@@ -11377,6 +11989,8 @@ in
     inherit (darwin.apple_sdk.frameworks) CoreAudio AudioToolbox;
   };
 
+  ayatana-ido = callPackage ../development/libraries/ayatana-ido { };
+
   babl = callPackage ../development/libraries/babl { };
 
   backward-cpp = callPackage ../development/libraries/backward-cpp { };
@@ -11399,6 +12013,7 @@ in
 
   belle-sip = callPackage ../development/libraries/belle-sip {
     stdenv = gcc8Stdenv;
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
 
   libbfd = callPackage ../development/libraries/libbfd { };
@@ -11460,6 +12075,8 @@ in
   # justStaticExecutables is needed due to https://github.com/NixOS/nix/issues/2990
   cachix = haskell.lib.justStaticExecutables haskellPackages.cachix;
 
+  hercules-ci-agent = callPackage ../development/tools/continuous-integration/hercules-ci-agent { };
+
   niv = haskellPackages.niv.bin;
 
   ormolu = haskellPackages.ormolu.bin;
@@ -11492,7 +12109,13 @@ in
     ogre = ogre1_10;
   };
 
-  certbot = python3Packages.callPackage ../tools/admin/certbot { };
+  certbot = python3.pkgs.toPythonApplication python3.pkgs.certbot;
+
+  certbot-full = certbot.withPlugins (cp: with cp; [
+    certbot-dns-cloudflare
+    certbot-dns-rfc2136
+    certbot-dns-route53
+  ]);
 
   caf = callPackage ../development/libraries/caf {};
 
@@ -11679,9 +12302,12 @@ in
 
   dotconf = callPackage ../development/libraries/dotconf { };
 
+  draco = callPackage ../development/libraries/draco { };
+
   # Multi-arch "drivers" which we want to build for i686.
   driversi686Linux = recurseIntoAttrs {
     inherit (pkgsi686Linux)
+      amdvlk
       mesa
       vaapiIntel
       libvdpau-va-gl
@@ -11695,8 +12321,6 @@ in
 
   duckdb = callPackage ../development/libraries/duckdb {};
 
-  dxflib = callPackage ../development/libraries/dxflib {};
-
   easyloggingpp = callPackage ../development/libraries/easyloggingpp {};
 
   eccodes = callPackage ../development/libraries/eccodes {
@@ -11792,6 +12416,7 @@ in
     openal = if stdenv.isDarwin then null else openal;
     libmfx = if stdenv.isDarwin then null else intel-media-sdk;
     libpulseaudio = if stdenv.isDarwin then null else libpulseaudio;
+    rav1e = if stdenv.isDarwin then null else rav1e;
     samba = if stdenv.isDarwin then null else samba;
     vid-stab = if stdenv.isDarwin then null else vid-stab;
     x265 = if stdenv.isDarwin then null else x265;
@@ -11841,7 +12466,9 @@ in
 
   freeimage = callPackage ../development/libraries/freeimage { };
 
-  freetts = callPackage ../development/libraries/freetts { };
+  freetts = callPackage ../development/libraries/freetts {
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   frog = res.languageMachines.frog;
 
@@ -11851,12 +12478,8 @@ in
 
   cfitsio = callPackage ../development/libraries/cfitsio { };
 
-  fontconfig_210 = callPackage ../development/libraries/fontconfig/2.10.nix { };
-
   fontconfig = callPackage ../development/libraries/fontconfig { };
 
-  fontconfig-penultimate = callPackage ../data/fonts/fontconfig-penultimate {};
-
   folly = callPackage ../development/libraries/folly { };
 
   folks = callPackage ../development/libraries/folks { };
@@ -11908,7 +12531,9 @@ in
   gecode_6 = qt5.callPackage ../development/libraries/gecode { };
   gecode = gecode_6;
 
-  gephi = callPackage ../applications/science/misc/gephi { };
+  gephi = callPackage ../applications/science/misc/gephi {
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   gegl = callPackage ../development/libraries/gegl {
     inherit (darwin.apple_sdk.frameworks) OpenGL;
@@ -12148,24 +12773,6 @@ in
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   });
 
-  gstreamer = callPackage ../development/libraries/gstreamer/legacy/gstreamer { };
-
-  gst-plugins-base = callPackage ../development/libraries/gstreamer/legacy/gst-plugins-base {
-    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
-  };
-
-  gst-plugins-good = callPackage ../development/libraries/gstreamer/legacy/gst-plugins-good {};
-
-  gst-plugins-bad = callPackage ../development/libraries/gstreamer/legacy/gst-plugins-bad {};
-
-  gst-plugins-ugly = callPackage ../development/libraries/gstreamer/legacy/gst-plugins-ugly {};
-
-  gst-python = callPackage ../development/libraries/gstreamer/legacy/gst-python {};
-
-  gstreamermm = callPackage ../development/libraries/gstreamer/legacy/gstreamermm { };
-
-  gnonlin = callPackage ../development/libraries/gstreamer/legacy/gnonlin {};
-
   gusb = callPackage ../development/libraries/gusb { };
 
   qt-mobility = callPackage ../development/libraries/qt-mobility {};
@@ -12381,9 +12988,9 @@ in
 
   haxor-news = callPackage ../applications/misc/haxor-news { };
 
-  herqq = libsForQt5.callPackage ../development/libraries/herqq { };
+  hdt = callPackage ../misc/hdt {};
 
-  heyefi = haskellPackages.heyefi;
+  herqq = libsForQt514.callPackage ../development/libraries/herqq { };
 
   hidapi = callPackage ../development/libraries/hidapi { };
 
@@ -12483,7 +13090,7 @@ in
       stdenv = gcc6Stdenv; # with gcc-7: undefined reference to `__divmoddi4'
     }));
 
-  icu = icu64;
+  icu = icu67;
 
   id3lib = callPackage ../development/libraries/id3lib { };
 
@@ -12508,6 +13115,8 @@ in
 
   imlibsetroot = callPackage ../applications/graphics/imlibsetroot { libXinerama = xorg.libXinerama; } ;
 
+  impy = callPackage ../development/libraries/impy { };
+
   ineffassign = callPackage ../development/tools/ineffassign { };
 
   ijs = callPackage ../development/libraries/ijs { };
@@ -12540,6 +13149,8 @@ in
 
   isocodes = callPackage ../development/libraries/iso-codes { };
 
+  iso-flags = callPackage ../data/icons/iso-flags { };
+
   ispc = callPackage ../development/compilers/ispc {
     stdenv = llvmPackages_10.stdenv;
     llvmPackages = llvmPackages_10;
@@ -12547,14 +13158,14 @@ in
 
   isso = callPackage ../servers/isso { };
 
-  itk4 = callPackage ../development/libraries/itk/4.x.nix { stdenv = gcc8Stdenv; };
+  itk4 = callPackage ../development/libraries/itk/4.x.nix {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
 
   itk = callPackage ../development/libraries/itk {
     inherit (darwin.apple_sdk.frameworks) Cocoa;
   };
 
-  jasper = callPackage ../development/libraries/jasper { };
-
   jama = callPackage ../development/libraries/jama { };
 
   jansson = callPackage ../development/libraries/jansson { };
@@ -12599,7 +13210,7 @@ in
     let
       mkFrameworks = import ../development/libraries/kde-frameworks;
       attrs = {
-        inherit libsForQt5;
+        libsForQt5 = libsForQt514;
         inherit lib fetchurl;
       };
     in
@@ -12636,6 +13247,7 @@ in
   lasso = callPackage ../development/libraries/lasso { };
 
   LASzip = callPackage ../development/libraries/LASzip { };
+  LASzip2 = callPackage ../development/libraries/LASzip/LASzip2.nix { };
 
   lcms = lcms1;
 
@@ -12699,6 +13311,10 @@ in
   libappindicator-gtk3 = libappindicator.override { gtkVersion = "3"; };
   libappindicator = callPackage ../development/libraries/libappindicator { };
 
+  libayatana-appindicator-gtk2 = libayatana-appindicator.override { gtkVersion = "2"; };
+  libayatana-appindicator-gtk3 = libayatana-appindicator.override { gtkVersion = "3"; };
+  libayatana-appindicator = callPackage ../development/libraries/libayatana-appindicator { };
+
   libarchive = callPackage ../development/libraries/libarchive { };
 
   libasr = callPackage ../development/libraries/libasr { };
@@ -12716,13 +13332,15 @@ in
   libaudclient = callPackage ../development/libraries/libaudclient { };
 
   libav = libav_11; # branch 11 is API-compatible with branch 10
-  libav_all = callPackage ../development/libraries/libav { };
+  libav_all = callPackages ../development/libraries/libav { };
   inherit (libav_all) libav_0_8 libav_11 libav_12;
 
   libavc1394 = callPackage ../development/libraries/libavc1394 { };
 
   libb2 = callPackage ../development/libraries/libb2 { };
 
+  libbacktrace = callPackage ../development/libraries/libbacktrace { };
+
   libbap = callPackage ../development/libraries/libbap {
     inherit (ocaml-ng.ocamlPackages_4_06) bap ocaml findlib ctypes;
   };
@@ -12884,7 +13502,9 @@ in
     libGL = null;
   };
 
-  libdigidoc = callPackage ../development/libraries/libdigidoc { };
+  libdigidoc = callPackage ../development/libraries/libdigidoc {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   libdigidocpp = callPackage ../development/libraries/libdigidocpp { };
 
@@ -12921,6 +13541,8 @@ in
   inherit (callPackage ../development/libraries/libdwarf { })
     libdwarf dwarfdump;
 
+  libe57format = callPackage ../development/libraries/libe57format { };
+
   libeatmydata = callPackage ../development/libraries/libeatmydata { };
 
   libeb = callPackage ../development/libraries/libeb { };
@@ -12947,7 +13569,9 @@ in
 
   libfido2 = callPackage ../development/libraries/libfido2 { };
 
-  libfilezilla = callPackage ../development/libraries/libfilezilla { };
+  libfilezilla = callPackage ../development/libraries/libfilezilla {
+    inherit (darwin.apple_sdk.frameworks) ApplicationServices;
+  };
 
   libfishsound = callPackage ../development/libraries/libfishsound { };
 
@@ -13135,6 +13759,10 @@ in
   libindicator-gtk3 = libindicator.override { gtkVersion = "3"; };
   libindicator = callPackage ../development/libraries/libindicator { };
 
+  libayatana-indicator-gtk2 = libayatana-indicator.override { gtkVersion = "2"; };
+  libayatana-indicator-gtk3 = libayatana-indicator.override { gtkVersion = "3"; };
+  libayatana-indicator = callPackage ../development/libraries/libayatana-indicator { };
+
   libinotify-kqueue = callPackage ../development/libraries/libinotify-kqueue { };
 
   libiodbc = callPackage ../development/libraries/libiodbc {
@@ -13198,6 +13826,9 @@ in
   libplist = callPackage ../development/libraries/libplist { };
 
   libre = callPackage ../development/libraries/libre {};
+
+  libredwg = callPackage ../development/libraries/libredwg {};
+
   librem = callPackage ../development/libraries/librem {};
 
   librelp = callPackage ../development/libraries/librelp { };
@@ -13323,7 +13954,9 @@ in
     guile = guile_2_0;
   };
 
-  libmatthew_java = callPackage ../development/libraries/java/libmatthew-java { };
+  libmatthew_java = callPackage ../development/libraries/java/libmatthew-java {
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   libmatroska = callPackage ../development/libraries/libmatroska { };
 
@@ -13469,6 +14102,10 @@ in
 
   libpqxx = callPackage ../development/libraries/libpqxx { };
 
+  inherit (callPackages ../development/libraries/prometheus-client-c {
+    stdenv = gccStdenv; # Required for darwin
+  }) libprom libpromhttp;
+
   libproxy = callPackage ../development/libraries/libproxy {
     inherit (darwin.apple_sdk.frameworks) SystemConfiguration CoreFoundation JavaScriptCore;
   };
@@ -13483,6 +14120,8 @@ in
 
   libqalculate = callPackage ../development/libraries/libqalculate { };
 
+  libqt5pas = callPackage ../development/compilers/fpc/libqt5pas.nix { };
+
   libroxml = callPackage ../development/libraries/libroxml { };
 
   librsvg = callPackage ../development/libraries/librsvg { };
@@ -13547,6 +14186,8 @@ in
 
   libtheora = callPackage ../development/libraries/libtheora { };
 
+  libthreadar = callPackage ../development/libraries/libthreadar { };
+
   libtiff = callPackage ../development/libraries/libtiff { };
 
   libtiger = callPackage ../development/libraries/libtiger { };
@@ -13637,7 +14278,7 @@ in
 
   libva = callPackage ../development/libraries/libva { };
   libva-minimal = libva.override { minimal = true; };
-  libva-utils = callPackage ../development/libraries/libva-utils { };
+  libva-utils = callPackage ../development/libraries/libva/utils.nix { };
 
   libva1 = callPackage ../development/libraries/libva/1.0.0.nix { };
   libva1-minimal = libva1.override { minimal = true; };
@@ -13645,7 +14286,6 @@ in
   libvdpau = callPackage ../development/libraries/libvdpau { };
 
   libmodulemd = callPackage ../development/libraries/libmodulemd { };
-  libmodulemd_1 = callPackage ../development/libraries/libmodulemd/1.nix { };
 
   libvdpau-va-gl = callPackage ../development/libraries/libvdpau-va-gl { };
 
@@ -13742,6 +14382,8 @@ in
 
   libyamlcpp = callPackage ../development/libraries/libyaml-cpp { };
 
+  rang = callPackage ../development/libraries/rang { };
+
   libyamlcpp_0_3 = pkgs.libyamlcpp.overrideAttrs (oldAttrs: {
     src = pkgs.fetchurl {
       url = "https://github.com/jbeder/yaml-cpp/archive/release-0.3.0.tar.gz";
@@ -13870,6 +14512,8 @@ in
 
   micropython = callPackage ../development/interpreters/micropython { };
 
+  MIDIVisualizer = callPackage ../applications/audio/midi-visualizer { };
+
   mimalloc = callPackage ../development/libraries/mimalloc { };
 
   minizip = callPackage ../development/libraries/minizip { };
@@ -13928,6 +14572,8 @@ in
     inherit (darwin.stubs) setfile;
   };
 
+  muparserx = callPackage ../development/libraries/muparserx { };
+
   mutest = callPackage ../development/libraries/mutest { };
 
   mygpoclient = pythonPackages.mygpoclient;
@@ -13977,6 +14623,8 @@ in
 
   nettle = callPackage ../development/libraries/nettle { };
 
+  newman = callPackage ../development/web/newman {};
+
   newt = callPackage ../development/libraries/newt { };
 
   nghttp2 = callPackage ../development/libraries/nghttp2 { };
@@ -14026,9 +14674,7 @@ in
 
   nvidia-optical-flow-sdk = callPackage ../development/libraries/nvidia-optical-flow-sdk { };
 
-  nvtop = callPackage ../tools/system/nvtop {
-    nvidia_x11 = linuxPackages.nvidia_x11.override { libsOnly = true; };
-  };
+  nvtop = callPackage ../tools/system/nvtop { };
 
   ocl-icd = callPackage ../development/libraries/ocl-icd { };
 
@@ -14061,8 +14707,11 @@ in
 
   openbabel = callPackage ../development/libraries/openbabel { };
 
-  opencascade = callPackage ../development/libraries/opencascade { };
+  opencascade = callPackage ../development/libraries/opencascade {
+    inherit (darwin.apple_sdk.frameworks) OpenCL Cocoa;
+  };
   opencascade-occt = callPackage ../development/libraries/opencascade-occt { };
+  opencascade-occt730 = callPackage ../development/libraries/opencascade-occt/7.3.nix { };
 
   opencl-headers = callPackage ../development/libraries/opencl-headers { };
 
@@ -14092,7 +14741,7 @@ in
   };
 
   opencv4 = callPackage ../development/libraries/opencv/4.x.nix {
-    inherit (darwin.apple_sdk.frameworks) AVFoundation Cocoa VideoDecodeAcceleration;
+    inherit (darwin.apple_sdk.frameworks) AVFoundation Cocoa VideoDecodeAcceleration CoreMedia MediaToolbox;
   };
 
   opencv = opencv4;
@@ -14105,6 +14754,8 @@ in
 
   opencolorio = callPackage ../development/libraries/opencolorio { };
 
+  opendmarc = callPackage ../development/libraries/opendmarc { };
+
   ois = callPackage ../development/libraries/ois {};
 
   openh264 = callPackage ../development/libraries/openh264 { };
@@ -14124,10 +14775,12 @@ in
   openvdb = callPackage ../development/libraries/openvdb {};
 
   inherit (callPackages ../development/libraries/libressl { })
-    libressl_2_9
-    libressl_3_0;
+    libressl_3_0
+    libressl_3_1;
 
-  libressl = libressl_3_0;
+  # Please keep this pointed to the latest version. See also
+  # https://discourse.nixos.org/t/nixpkgs-policy-regarding-libraries-available-in-multiple-versions/7026/2
+  libressl = libressl_3_1;
 
   boringssl = callPackage ../development/libraries/boringssl { };
 
@@ -14186,6 +14839,8 @@ in
 
   pcre2 = callPackage ../development/libraries/pcre2 { };
 
+  pdal = callPackage ../development/libraries/pdal { } ;
+
   pdf2xml = callPackage ../development/libraries/pdf2xml {} ;
 
   inherit (callPackage ../development/libraries/physfs { })
@@ -14262,8 +14917,9 @@ in
     python = python37;
   };
 
-  protobuf = protobuf3_8;
+  protobuf = protobuf3_13;
 
+  protobuf3_13 = callPackage ../development/libraries/protobuf/3.13.nix { };
   protobuf3_12 = callPackage ../development/libraries/protobuf/3.12.nix { };
   protobuf3_11 = callPackage ../development/libraries/protobuf/3.11.nix { };
   protobuf3_10 = callPackage ../development/libraries/protobuf/3.10.nix { };
@@ -14295,7 +14951,7 @@ in
 
   python-qt = callPackage ../development/libraries/python-qt {
     python = python27;
-    inherit (qt5) qmake qttools qtwebengine qtxmlpatterns;
+    inherit (qt514) qmake qttools qtwebengine qtxmlpatterns;
   };
 
   pyotherside = libsForQt5.callPackage ../development/libraries/pyotherside {};
@@ -14305,15 +14961,12 @@ in
   qbs = libsForQt5.callPackage ../development/tools/build-managers/qbs { };
 
   qca2 = callPackage ../development/libraries/qca2 { qt = qt4; };
-  qca2-qt5 = qca2.override { qt = qt5.qtbase; };
 
   qimageblitz = callPackage ../development/libraries/qimageblitz {};
 
   qjson = callPackage ../development/libraries/qjson { };
 
-  qoauth = callPackage ../development/libraries/qoauth { };
-
-  qolibri = libsForQt5.callPackage ../applications/misc/qolibri { };
+  qolibri = libsForQt514.callPackage ../applications/misc/qolibri { };
 
   qt3 = callPackage ../development/libraries/qt-3 {
     libpng = libpng12;
@@ -14363,9 +15016,43 @@ in
 
   libsForQt512 = recurseIntoAttrs (lib.makeScope qt512.newScope mkLibsForQt5);
 
-  # TODO bump to 5.12 on darwin once it's not broken
-  qt5 = qt512;
-  libsForQt5 = libsForQt512;
+  qt514 = recurseIntoAttrs (makeOverridable
+    (import ../development/libraries/qt-5/5.14) {
+      inherit newScope;
+      inherit stdenv fetchurl fetchpatch fetchFromGitHub makeSetupHook makeWrapper;
+      inherit bison;
+      inherit cups;
+      inherit dconf;
+      inherit harfbuzz;
+      inherit libGL;
+      inherit perl;
+      inherit gtk3;
+      inherit (gst_all_1) gstreamer gst-plugins-base;
+      inherit llvmPackages_5;
+    });
+
+  qt515 = recurseIntoAttrs (makeOverridable
+    (import ../development/libraries/qt-5/5.15) {
+      inherit newScope;
+      inherit stdenv fetchurl fetchpatch fetchFromGitHub makeSetupHook makeWrapper;
+      inherit bison;
+      inherit cups;
+      inherit dconf;
+      inherit harfbuzz;
+      inherit libGL;
+      inherit perl;
+      inherit gtk3;
+      inherit (gst_all_1) gstreamer gst-plugins-base;
+      inherit llvmPackages_5;
+    });
+
+  libsForQt514 = recurseIntoAttrs (lib.makeScope qt514.newScope mkLibsForQt5);
+
+  libsForQt515 = recurseIntoAttrs (lib.makeScope qt515.newScope mkLibsForQt5);
+
+  # TODO bump to 5.14 on darwin once it's not broken; see #95199
+  qt5 =        if stdenv.hostPlatform.isDarwin then qt512 else qt515;
+  libsForQt5 = if stdenv.hostPlatform.isDarwin then libsForQt512 else libsForQt515;
 
   qt5ct = libsForQt5.callPackage ../tools/misc/qt5ct { };
 
@@ -14376,15 +15063,16 @@ in
     inherit (kdeFrameworks.override { libsForQt5 = self; })
       attica baloo bluez-qt kactivities kactivities-stats
       karchive kauth kbookmarks kcmutils kcalendarcore kcodecs kcompletion kconfig
-      kconfigwidgets kcoreaddons kcrash kdbusaddons kdeclarative kdelibs4support
+      kconfigwidgets kcoreaddons kcrash kdav kdbusaddons kdeclarative kdelibs4support
       kdesignerplugin kdnssd kemoticons kfilemetadata kglobalaccel kguiaddons
       khtml ki18n kiconthemes kidletime kimageformats kio kitemmodels kitemviews
       kjobwidgets kjs kjsembed kmediaplayer knewstuff knotifications
       knotifyconfig kpackage kparts kpeople kplotting kpty kross krunner
       kservice ktexteditor ktextwidgets kunitconversion kwallet kwayland
       kwidgetsaddons kwindowsystem kxmlgui kxmlrpcclient modemmanager-qt
-      networkmanager-qt plasma-framework prison qqc2-desktop-style solid sonnet syntax-highlighting
-      syndication threadweaver kirigami2 kholidays kpurpose kcontacts;
+      networkmanager-qt plasma-framework prison qqc2-desktop-style solid sonnet
+      syntax-highlighting syndication threadweaver kirigami2 kholidays kpurpose
+      kcontacts kquickcharts;
 
     ### KDE PLASMA 5
 
@@ -14402,6 +15090,10 @@ in
 
     alkimia = callPackage ../development/libraries/alkimia { };
 
+    appstream-qt = callPackage ../development/libraries/appstream/qt.nix { };
+
+    dxflib = callPackage ../development/libraries/dxflib {};
+
     fcitx-qt5 = callPackage ../tools/inputmethods/fcitx/fcitx-qt5.nix { };
 
     qgpgme = callPackage ../development/libraries/gpgme { };
@@ -14412,6 +15104,8 @@ in
 
     kdiagram = callPackage ../development/libraries/kdiagram { };
 
+    kdsoap = callPackage ../development/libraries/kdsoap { };
+
     kproperty = callPackage ../development/libraries/kproperty { };
 
     kreport = callPackage ../development/libraries/kreport { };
@@ -14448,6 +15142,8 @@ in
 
     phonon-backend-vlc = callPackage ../development/libraries/phonon/backends/vlc.nix { };
 
+    plasma-wayland-protocols = callPackage ../development/libraries/plasma-wayland-protocols { };
+
     polkit-qt = callPackage ../development/libraries/polkit-qt-1/qt-5.nix { };
 
     poppler = callPackage ../development/libraries/poppler {
@@ -14461,7 +15157,10 @@ in
     qmltermwidget = callPackage ../development/libraries/qmltermwidget {
       inherit (darwin.apple_sdk.libs) utmp;
     };
-    qmlbox2d = libsForQt5.callPackage ../development/libraries/qmlbox2d { };
+
+    qmlbox2d = callPackage ../development/libraries/qmlbox2d { };
+
+    qoauth = callPackage ../development/libraries/qoauth { };
 
     qscintilla = callPackage ../development/libraries/qscintilla {
       withQt5 = true;
@@ -14475,17 +15174,19 @@ in
       withQt5 = true;
     };
 
+    qtpbfimageplugin = callPackage ../development/libraries/qtpbfimageplugin { };
+
     qtstyleplugins = callPackage ../development/libraries/qtstyleplugins { };
 
-    qtstyleplugin-kvantum = libsForQt5.callPackage ../development/libraries/qtstyleplugin-kvantum { };
+    qtstyleplugin-kvantum = callPackage ../development/libraries/qtstyleplugin-kvantum { };
 
     quazip = callPackage ../development/libraries/quazip { };
 
     qwt = callPackage ../development/libraries/qwt/6.nix { };
 
-    telepathy = callPackage ../development/libraries/telepathy/qt { };
+    soqt = callPackage ../development/libraries/soqt { };
 
-    vlc = callPackage ../applications/video/vlc {};
+    telepathy = callPackage ../development/libraries/telepathy/qt { };
 
     qtwebkit-plugins = callPackage ../development/libraries/qtwebkit-plugins { };
 
@@ -14496,8 +15197,6 @@ in
 
   qtkeychain = callPackage ../development/libraries/qtkeychain { };
 
-  qtpbfimageplugin = libsForQt5.callPackage ../development/libraries/qtpbfimageplugin { };
-
   qtscriptgenerator = callPackage ../development/libraries/qtscriptgenerator { };
 
   quesoglc = callPackage ../development/libraries/quesoglc { };
@@ -14520,7 +15219,10 @@ in
 
   range-v3 = callPackage ../development/libraries/range-v3 {};
 
-  rabbitmq-java-client = callPackage ../development/libraries/rabbitmq-java-client {};
+  rabbitmq-java-client = callPackage ../development/libraries/rabbitmq-java-client {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   rapidcheck = callPackage ../development/libraries/rapidcheck {};
 
@@ -14581,19 +15283,23 @@ in
 
   qrupdate = callPackage ../development/libraries/qrupdate { };
 
-  qgnomeplatform =  libsForQt5.callPackage ../development/libraries/qgnomeplatform { };
+  qgnomeplatform =  libsForQt514.callPackage ../development/libraries/qgnomeplatform { };
 
   randomx = callPackage ../development/libraries/randomx { };
 
+  redkite = callPackage ../development/libraries/redkite { };
+
   resolv_wrapper = callPackage ../development/libraries/resolv_wrapper { };
 
   rhino = callPackage ../development/libraries/java/rhino {
-    javac = jdk;
-    jvm = jre;
+    javac = jdk8;
+    jvm = jre8;
   };
 
   rlog = callPackage ../development/libraries/rlog { };
 
+  rlottie = callPackage ../development/libraries/rlottie { };
+
   rocksdb = callPackage ../development/libraries/rocksdb { };
 
   rocksdb_lite = rocksdb.override { enableLite = true; };
@@ -14610,7 +15316,13 @@ in
 
   rubberband = callPackage ../development/libraries/rubberband { };
 
+  /* This package references ghc844, which we no longer have. Unfortunately, I
+     have been unable to mark it as "broken" in a way that the ofBorg bot
+     recognizes. Since I don't want to merge code into master that generates
+     evaluation errors, I have no other idea but to comment it out entirely.
+
   sad = callPackage ../applications/science/logic/sad { };
+   */
 
   safefile = callPackage ../development/libraries/safefile {};
 
@@ -14695,7 +15407,6 @@ in
 
   simpleitk = callPackage ../development/libraries/simpleitk {
     lua = lua51Packages.lua;
-    stdenv = gcc8Stdenv;
   };
 
   sfml = callPackage ../development/libraries/sfml {
@@ -14787,8 +15498,6 @@ in
 
   soprano = callPackage ../development/libraries/soprano { };
 
-  soqt = callPackage ../development/libraries/soqt { };
-
   sord = callPackage ../development/libraries/sord {};
 
   soundtouch = callPackage ../development/libraries/soundtouch {};
@@ -14843,7 +15552,9 @@ in
 
   sqlite = lowPrio (callPackage ../development/libraries/sqlite { });
 
-  sqlite-analyzer = lowPrio (callPackage ../development/libraries/sqlite/analyzer.nix { });
+  inherit (callPackage ../development/libraries/sqlite/tools.nix {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  }) sqlite-analyzer sqldiff;
 
   sqlar = callPackage ../development/libraries/sqlite/sqlar.nix { };
 
@@ -14890,8 +15601,7 @@ in
   stlport = callPackage ../development/libraries/stlport { };
 
   streamlink = callPackage ../applications/video/streamlink { pythonPackages = python3Packages; };
-
-  strigi = callPackage ../development/libraries/strigi { clucene_core = clucene_core_2; };
+  streamlink-twitch-gui-bin = callPackage ../applications/video/streamlink-twitch-gui/bin.nix {};
 
   subdl = callPackage ../applications/video/subdl { };
 
@@ -14974,8 +15684,6 @@ in
 
   telepathy-farstream = callPackage ../development/libraries/telepathy/farstream {};
 
-  telepathy-qt = callPackage ../development/libraries/telepathy/qt { qtbase = qt4; };
-
   termbox = callPackage ../development/libraries/termbox { };
 
   tevent = callPackage ../development/libraries/tevent { };
@@ -15110,7 +15818,9 @@ in
 
   vcg = callPackage ../development/libraries/vcg { };
 
-  vid-stab = callPackage ../development/libraries/vid-stab { };
+  vid-stab = callPackage ../development/libraries/vid-stab {
+    inherit (llvmPackages) openmp;
+  };
 
   vigra = callPackage ../development/libraries/vigra { };
 
@@ -15145,6 +15855,14 @@ in
                                           CoreText IOSurface ImageIO OpenGL GLUT;
   };
 
+  vtk_9 = libsForQt514.callPackage ../development/libraries/vtk/9.x.nix {
+    inherit (darwin) libobjc;
+    inherit (darwin.apple_sdk.libs) xpc;
+    inherit (darwin.apple_sdk.frameworks) Cocoa CoreServices DiskArbitration
+                                          IOKit CFNetwork Security ApplicationServices
+                                          CoreText IOSurface ImageIO OpenGL GLUT;
+  };
+
   vulkan-headers = callPackage ../development/libraries/vulkan-headers { };
   vulkan-loader = callPackage ../development/libraries/vulkan-loader { };
   vulkan-tools = callPackage ../tools/graphics/vulkan-tools { };
@@ -15176,7 +15894,7 @@ in
     });
   };
 
-  vtkWithQt5 = vtk.override { qtLib = qt5; };
+  vtkWithQt5 = vtk.override { qtLib = qt514; };
 
   vxl = callPackage ../development/libraries/vxl {
     libpng = libpng12;
@@ -15198,7 +15916,6 @@ in
   webkitgtk = callPackage ../development/libraries/webkitgtk {
     harfbuzz = harfbuzzFull;
     inherit (gst_all_1) gst-plugins-base gst-plugins-bad;
-    stdenv = clangStdenv; # TODO: https://github.com/NixOS/nixpkgs/issues/36947
   };
 
   websocketpp = callPackage ../development/libraries/websocket++ { };
@@ -15214,24 +15931,22 @@ in
     wt3
     wt4;
 
+  wxformbuilder = callPackage ../development/tools/wxformbuilder { };
+
   wxGTK = wxGTK28;
 
   wxGTK30 = wxGTK30-gtk2;
   wxGTK31 = wxGTK31-gtk2;
 
-  wxGTK28 = callPackage ../development/libraries/wxwidgets/2.8 {
-    inherit (gnome2) GConf;
-  };
+  wxGTK28 = callPackage ../development/libraries/wxwidgets/2.8 { };
 
   wxGTK29 = callPackage ../development/libraries/wxwidgets/2.9 {
-    inherit (gnome2) GConf;
     inherit (darwin.stubs) setfile;
     inherit (darwin.apple_sdk.frameworks) AGL Carbon Cocoa Kernel QuickTime;
   };
 
   wxGTK30-gtk2 = callPackage ../development/libraries/wxwidgets/3.0 {
     withGtk2 = true;
-    inherit (gnome2) GConf;
     inherit (darwin.stubs) setfile;
     inherit (darwin.apple_sdk.frameworks) AGL Carbon Cocoa Kernel QTKit;
   };
@@ -15244,7 +15959,6 @@ in
 
   wxGTK31-gtk2 = callPackage ../development/libraries/wxwidgets/3.1 {
     withGtk2 = true;
-    inherit (gnome2) GConf;
     inherit (darwin.stubs) setfile;
     inherit (darwin.apple_sdk.frameworks) AGL Carbon Cocoa Kernel QTKit;
   };
@@ -15357,6 +16071,8 @@ in
 
   yubikey-personalization-gui = libsForQt5.callPackage ../tools/misc/yubikey-personalization-gui { };
 
+  yubikey-agent = callPackage ../tools/security/yubikey-agent { };
+
   zchunk = callPackage ../development/libraries/zchunk { };
 
   zeitgeist = callPackage ../development/libraries/zeitgeist { };
@@ -15367,7 +16083,6 @@ in
 
   zlog = callPackage ../development/libraries/zlog { };
 
-  zeromq3 = callPackage ../development/libraries/zeromq/3.x.nix {};
   zeromq4 = callPackage ../development/libraries/zeromq/4.x.nix {};
   zeromq = zeromq4;
 
@@ -15437,7 +16152,9 @@ in
 
   gwtwidgets = callPackage ../development/libraries/java/gwt-widgets { };
 
-  javaCup = callPackage ../development/libraries/java/cup { };
+  javaCup = callPackage ../development/libraries/java/cup {
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   jdom = callPackage ../development/libraries/java/jdom { };
 
@@ -15447,8 +16164,6 @@ in
 
   junixsocket = callPackage ../development/libraries/java/junixsocket { };
 
-  jzmq = callPackage ../development/libraries/java/jzmq { };
-
   lombok = callPackage ../development/libraries/java/lombok { };
 
   lucene = callPackage ../development/libraries/java/lucene { };
@@ -15470,6 +16185,9 @@ in
   smack = callPackage ../development/libraries/java/smack { };
 
   swt = callPackage ../development/libraries/java/swt { };
+  swt_jdk8 = callPackage ../development/libraries/java/swt {
+    jdk = jdk8;
+  };
 
 
   ### DEVELOPMENT / LIBRARIES / JAVASCRIPT
@@ -15482,23 +16200,23 @@ in
 
   ### DEVELOPMENT / GO MODULES
 
-  buildGo113Package = callPackage ../development/go-packages/generic {
-    go = buildPackages.go_1_13;
-  };
   buildGo114Package = callPackage ../development/go-packages/generic {
     go = buildPackages.go_1_14;
   };
+  buildGo115Package = callPackage ../development/go-packages/generic {
+    go = buildPackages.go_1_15;
+  };
 
-  buildGoPackage = buildGo114Package;
+  buildGoPackage = buildGo115Package;
 
-  buildGo113Module = callPackage ../development/go-modules/generic {
-    go = buildPackages.go_1_13;
-  };
   buildGo114Module = callPackage ../development/go-modules/generic {
     go = buildPackages.go_1_14;
   };
+  buildGo115Module = callPackage ../development/go-modules/generic {
+    go = buildPackages.go_1_15;
+  };
 
-  buildGoModule = buildGo114Module;
+  buildGoModule = buildGo115Module;
 
   go2nix = callPackage ../development/tools/go2nix { };
 
@@ -15550,14 +16268,14 @@ in
   ### DEVELOPMENT / PERL MODULES
 
   perlInterpreters = callPackages ../development/interpreters/perl {};
-  inherit (perlInterpreters) perl528 perl530 perldevel;
+  inherit (perlInterpreters) perl530 perl532 perldevel;
 
-  perl528Packages = recurseIntoAttrs perl528.pkgs;
   perl530Packages = recurseIntoAttrs perl530.pkgs;
+  perl532Packages = recurseIntoAttrs perl532.pkgs;
   perldevelPackages = perldevel.pkgs;
 
-  perl = perl530;
-  perlPackages = perl530Packages;
+  perl = perl532;
+  perlPackages = perl532Packages;
 
   ack = perlPackages.ack;
 
@@ -15579,6 +16297,7 @@ in
     withRecommendedPackages = false;
     inherit (darwin.apple_sdk.frameworks) Cocoa Foundation;
     inherit (darwin) libobjc;
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
 
   rWrapper = callPackage ../development/r-modules/wrapper.nix {
@@ -15663,18 +16382,26 @@ in
 
   cadvisor = callPackage ../servers/monitoring/cadvisor { };
 
-  cassandra_2_1 = callPackage ../servers/nosql/cassandra/2.1.nix { };
-  cassandra_2_2 = callPackage ../servers/nosql/cassandra/2.2.nix { };
-  cassandra_3_0 = callPackage ../servers/nosql/cassandra/3.0.nix { };
-  cassandra_3_11 = callPackage ../servers/nosql/cassandra/3.11.nix { };
+  cassandra_2_1 = callPackage ../servers/nosql/cassandra/2.1.nix {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+  cassandra_2_2 = callPackage ../servers/nosql/cassandra/2.2.nix {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+  cassandra_3_0 = callPackage ../servers/nosql/cassandra/3.0.nix {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
+  cassandra_3_11 = callPackage ../servers/nosql/cassandra/3.11.nix {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
   cassandra = cassandra_3_11;
 
   apache-jena = callPackage ../servers/nosql/apache-jena/binary.nix {
-    java = jdk;
+    java = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
 
   apache-jena-fuseki = callPackage ../servers/nosql/apache-jena/fuseki-binary.nix {
-    java = jdk;
+    java = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
 
   apcupsd = callPackage ../servers/apcupsd { };
@@ -15703,7 +16430,7 @@ in
 
   clickhouse = callPackage ../servers/clickhouse {
     # clickhouse doesn't build on llvm8.
-    inherit (llvmPackages_7) clang-unwrapped lld lldClang llvm;
+    inherit (llvmPackages_9) clang-unwrapped lld lldClang llvm;
   };
 
   couchdb = callPackage ../servers/http/couchdb {
@@ -15717,6 +16444,11 @@ in
     erlang = erlangR21;
   };
 
+  couchdb3 = callPackage ../servers/http/couchdb/3.nix {
+    spidermonkey = spidermonkey_68;
+    erlang = erlangR22;
+  };
+
   couchpotato = callPackage ../servers/couchpotato {};
 
   dex-oidc = callPackage ../servers/dex { };
@@ -15773,9 +16505,14 @@ in
 
   biboumi = callPackage ../servers/xmpp/biboumi { };
 
-  elasticmq = callPackage ../servers/elasticmq { };
+  elasticmq = callPackage ../servers/elasticmq {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
-  elasticmq-server-bin = callPackage ../servers/elasticmq-server-bin { };
+  elasticmq-server-bin = callPackage ../servers/elasticmq-server-bin {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   eventstore = callPackage ../servers/nosql/eventstore {
     Nuget = dotnetPackages.Nuget;
@@ -15814,9 +16551,13 @@ in
 
   gofish = callPackage ../servers/gopher/gofish { };
 
-  grafana = callPackage ../servers/monitoring/grafana { };
+  grafana = callPackage ../servers/monitoring/grafana {
+    buildGoModule = buildGo114Module;
+  };
 
-  grafana-loki = callPackage ../servers/monitoring/loki { };
+  grafana-loki = callPackage ../servers/monitoring/loki {
+    buildGoPackage = buildGo114Package;
+  };
 
   grafana_reporter = callPackage ../servers/monitoring/grafana-reporter { };
 
@@ -15828,9 +16569,9 @@ in
 
   hashi-ui = callPackage ../servers/hashi-ui {};
 
-  inherit (callPackage ../servers/hasura { })
-    hasura-cli
-    hasura-graphql-engine;
+  hasura-graphql-engine = haskell.lib.justStaticExecutables haskellPackages.graphql-engine;
+
+  hasura-cli = callPackage ../servers/hasura/cli.nix { };
 
   heapster = callPackage ../servers/monitoring/heapster { };
 
@@ -15840,9 +16581,7 @@ in
 
   hiawatha = callPackage ../servers/http/hiawatha {};
 
-  home-assistant = callPackage ../servers/home-assistant {
-    python3 = python37;
-  };
+  home-assistant = callPackage ../servers/home-assistant { };
 
   home-assistant-cli = callPackage ../servers/home-assistant/cli.nix { };
 
@@ -15869,6 +16608,12 @@ in
 
   jetty = callPackage ../servers/http/jetty { };
 
+  jicofo = callPackage ../servers/jicofo { };
+
+  jitsi-meet = callPackage ../servers/web-apps/jitsi-meet { };
+
+  jitsi-videobridge = callPackage ../servers/jitsi-videobridge { };
+
   kapow = callPackage ../servers/kapow { };
 
   keycloak = callPackage ../servers/keycloak { };
@@ -15900,9 +16645,9 @@ in
 
   mattermost-desktop = callPackage ../applications/networking/instant-messengers/mattermost-desktop { };
 
-  mediatomb = callPackage ../servers/mediatomb { };
+  mbtileserver = callPackage ../servers/mbtileserver { };
 
-  meguca = callPackage ../servers/meguca { };
+  mediatomb = callPackage ../servers/mediatomb { };
 
   memcached = callPackage ../servers/memcached {};
 
@@ -15945,6 +16690,8 @@ in
 
   moodle = callPackage ../servers/web-apps/moodle { };
 
+  moodle-utils = callPackage ../servers/web-apps/moodle/moodle-utils.nix { };
+
   morty = callPackage ../servers/web-apps/morty { };
 
   mullvad-vpn = callPackage ../applications/networking/mullvad-vpn { };
@@ -15961,17 +16708,21 @@ in
 
   unit = callPackage ../servers/http/unit { };
 
+  ncdns = callPackage ../servers/dns/ncdns {
+    buildGoPackage = buildGo114Package;
+  };
+
   nginx = nginxStable;
 
   nginxStable = callPackage ../servers/http/nginx/stable.nix {
-    perl = null;
+    withPerl = false;
     # We don't use `with` statement here on purpose!
     # See https://github.com/NixOS/nixpkgs/pull/10474/files#r42369334
     modules = [ nginxModules.rtmp nginxModules.dav nginxModules.moreheaders ];
   };
 
   nginxMainline = callPackage ../servers/http/nginx/mainline.nix {
-    perl = null;
+    withPerl = false;
     # We don't use `with` statement here on purpose!
     # See https://github.com/NixOS/nixpkgs/pull/10474/files#r42369334
     modules = [ nginxModules.dav nginxModules.moreheaders ];
@@ -15998,10 +16749,14 @@ in
 
   oauth2_proxy = callPackage ../servers/oauth2_proxy { };
 
+  openbgpd = callPackage ../servers/openbgpd { };
+
   openafs = callPackage ../servers/openafs/1.6 { tsmbac = null; ncurses = null; };
   openafs_1_8 = callPackage ../servers/openafs/1.8 { tsmbac = null; ncurses = null; };
 
-  openresty = callPackage ../servers/http/openresty { };
+  openresty = callPackage ../servers/http/openresty {
+    withPerl = false;
+  };
 
   opensmtpd = callPackage ../servers/mail/opensmtpd { };
   opensmtpd-extras = callPackage ../servers/mail/opensmtpd/extras.nix { };
@@ -16012,6 +16767,8 @@ in
 
   osrm-backend = callPackage ../servers/osrm-backend { };
 
+  oven-media-engine = callPackage ../servers/misc/oven-media-engine { };
+
   p910nd = callPackage ../servers/p910nd { };
 
   petidomo = callPackage ../servers/mail/petidomo { };
@@ -16043,7 +16800,7 @@ in
     inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
   };
 
-  qpaeq = qt5.callPackage ../servers/pulseaudio/qpaeq.nix { };
+  qpaeq = libsForQt514.callPackage ../servers/pulseaudio/qpaeq.nix { };
 
   pulseaudioFull = pulseaudio.override {
     x11Support = true;
@@ -16124,6 +16881,13 @@ in
     inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
   };
 
+  mongodb-4_2 = callPackage ../servers/nosql/mongodb/v4_2.nix {
+    sasl = cyrus_sasl;
+    boost = boost169;
+    inherit (darwin) cctools;
+    inherit (darwin.apple_sdk.frameworks) CoreFoundation Security;
+  };
+
   nginx-sso = callPackage ../servers/nginx-sso { };
 
   percona-server56 = callPackage ../servers/sql/percona/5.6.x.nix { };
@@ -16237,6 +17001,8 @@ in
     asciidoc = asciidoc-full;
   };
 
+  timescale-prometheus = callPackage ../servers/monitoring/timescale-prometheus { };
+
   timescaledb-parallel-copy = callPackage ../development/tools/database/timescaledb-parallel-copy { };
 
   timescaledb-tune = callPackage ../development/tools/database/timescaledb-tune { };
@@ -16247,6 +17013,7 @@ in
     postgresql_10
     postgresql_11
     postgresql_12
+    postgresql_13
   ;
   postgresql = postgresql_11.override { this = postgresql; };
   postgresqlPackages = recurseIntoAttrs postgresql.pkgs;
@@ -16255,7 +17022,10 @@ in
   postgresql_jdbc = callPackage ../development/java-modules/postgresql_jdbc { };
 
   prom2json = callPackage ../servers/monitoring/prometheus/prom2json.nix { };
-  prometheus = callPackage ../servers/monitoring/prometheus { };
+  prometheus = callPackage ../servers/monitoring/prometheus {
+    buildGoPackage = buildGo114Package;
+    go = go_1_14;
+  };
   prometheus-alertmanager = callPackage ../servers/monitoring/prometheus/alertmanager.nix { };
   prometheus-apcupsd-exporter = callPackage ../servers/monitoring/prometheus/apcupsd-exporter.nix { };
   prometheus-aws-s3-exporter = callPackage ../servers/monitoring/prometheus/aws-s3-exporter.nix { };
@@ -16276,6 +17046,7 @@ in
   prometheus-mesos-exporter = callPackage ../servers/monitoring/prometheus/mesos-exporter.nix { };
   prometheus-mikrotik-exporter = callPackage ../servers/monitoring/prometheus/mikrotik-exporter.nix { };
   prometheus-minio-exporter = callPackage ../servers/monitoring/prometheus/minio-exporter { };
+  prometheus-modemmanager-exporter = callPackage ../servers/monitoring/prometheus/modemmanager-exporter.nix { };
   prometheus-mysqld-exporter = callPackage ../servers/monitoring/prometheus/mysqld-exporter.nix { };
   prometheus-nextcloud-exporter = callPackage ../servers/monitoring/prometheus/nextcloud-exporter.nix { };
   prometheus-nginx-exporter = callPackage ../servers/monitoring/prometheus/nginx-exporter.nix { };
@@ -16332,9 +17103,10 @@ in
   };
 
   radicale1 = callPackage ../servers/radicale/1.x.nix { };
-  radicale2 = callPackage ../servers/radicale { };
+  radicale2 = callPackage ../servers/radicale/2.x.nix { };
+  radicale3 = callPackage ../servers/radicale/3.x.nix { };
 
-  radicale = radicale2;
+  radicale = radicale3;
 
   rake = callPackage ../development/tools/build-managers/rake { };
 
@@ -16349,6 +17121,7 @@ in
   restya-board = callPackage ../servers/web-apps/restya-board { };
 
   rethinkdb = callPackage ../servers/nosql/rethinkdb {
+    stdenv = clangStdenv;
     libtool = darwin.cctools;
   };
 
@@ -16388,7 +17161,7 @@ in
     enableMDNS = true;
     enableDomainController = true;
     enableRegedit = true;
-    enableCephFS = true;
+    enableCephFS = !pkgs.stdenv.hostPlatform.isAarch64;
     enableGlusterFS = true;
   });
 
@@ -16477,6 +17250,8 @@ in
   tt-rss-plugin-auth-ldap = callPackage ../servers/tt-rss/plugin-auth-ldap { };
   tt-rss-theme-feedly = callPackage ../servers/tt-rss/theme-feedly { };
 
+  rss-bridge = callPackage ../servers/web-apps/rss-bridge { };
+
   searx = callPackage ../servers/web-apps/searx { };
 
   selfoss = callPackage ../servers/web-apps/selfoss { };
@@ -16498,6 +17273,8 @@ in
     unifiStable;
   unifi = unifiStable;
 
+  urserver = callPackage ../servers/urserver { };
+
   victoriametrics = callPackage ../servers/nosql/victoriametrics { };
 
   virtlyst = libsForQt5.callPackage ../servers/web-apps/virtlyst { };
@@ -16524,7 +17301,9 @@ in
 
   xinetd = callPackage ../servers/xinetd { };
 
-  zookeeper = callPackage ../servers/zookeeper { };
+  zookeeper = callPackage ../servers/zookeeper {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   zookeeper_mt = callPackage ../development/libraries/zookeeper_mt { };
 
@@ -16573,11 +17352,11 @@ in
     server = server-pgsql;
   };
 
-  zabbix44 = recurseIntoAttrs (zabbixFor "v44");
+  zabbix50 = recurseIntoAttrs (zabbixFor "v50");
   zabbix40 = dontRecurseIntoAttrs (zabbixFor "v40");
   zabbix30 = dontRecurseIntoAttrs (zabbixFor "v30");
 
-  zabbix = zabbix44;
+  zabbix = zabbix50;
 
   zipkin = callPackage ../servers/monitoring/zipkin { };
 
@@ -16688,6 +17467,8 @@ in
 
   cifs-utils = callPackage ../os-specific/linux/cifs-utils { };
 
+  cm-rgb = python3Packages.callPackage ../tools/system/cm-rgb { };
+
   cpustat = callPackage ../os-specific/linux/cpustat { };
 
   cockroachdb = callPackage ../servers/sql/cockroachdb { };
@@ -16711,6 +17492,8 @@ in
 
   cryptsetup = callPackage ../os-specific/linux/cryptsetup { };
 
+  cramfsprogs = callPackage ../os-specific/linux/cramfsprogs { };
+
   cramfsswap = callPackage ../os-specific/linux/cramfsswap { };
 
   crda = callPackage ../os-specific/linux/crda { };
@@ -16734,14 +17517,14 @@ in
 
   directvnc = callPackage ../os-specific/linux/directvnc { };
 
-  dmraid = callPackage ../os-specific/linux/dmraid {
-    lvm2 = lvm2.override {enable_dmeventd = true;};
-  };
+  dmraid = callPackage ../os-specific/linux/dmraid { lvm2 = lvm2_dmeventd; };
 
   drbd = callPackage ../os-specific/linux/drbd { };
 
   dropwatch = callPackage ../os-specific/linux/dropwatch { };
 
+  dsd = callPackage ../applications/radio/dsd { };
+
   dstat = callPackage ../os-specific/linux/dstat { };
 
   # unstable until the first 1.x release
@@ -16750,8 +17533,12 @@ in
 
   fwupd = callPackage ../os-specific/linux/firmware/fwupd { };
 
+  firmware-manager = callPackage ../os-specific/linux/firmware/firmware-manager { };
+
   fwts = callPackage ../os-specific/linux/fwts { };
 
+  gobi_loader = callPackage ../os-specific/linux/gobi_loader { };
+
   libossp_uuid = callPackage ../development/libraries/libossp-uuid { };
 
   libuuid = if stdenv.isLinux
@@ -16770,7 +17557,7 @@ in
 
   fatrace = callPackage ../os-specific/linux/fatrace { };
 
-  ffado = libsForQt5.callPackage ../os-specific/linux/ffado {
+  ffado = libsForQt514.callPackage ../os-specific/linux/ffado {
     inherit (pkgs.linuxPackages) kernel;
   };
   libffado = ffado;
@@ -16800,6 +17587,8 @@ in
 
   gmailctl = callPackage ../applications/networking/gmailctl {};
 
+  gomp = callPackage ../applications/version-management/gomp { };
+
   gpm = callPackage ../servers/gpm {
     ncurses = null;  # Keep curses disabled for lack of value
   };
@@ -16834,6 +17623,8 @@ in
 
   pcm = callPackage ../os-specific/linux/pcm { };
 
+  ifmetric = callPackage ../os-specific/linux/ifmetric {};
+
   ima-evm-utils = callPackage ../os-specific/linux/ima-evm-utils {
     openssl = openssl_1_0_2;
   };
@@ -16865,6 +17656,8 @@ in
 
   irqbalance = callPackage ../os-specific/linux/irqbalance { };
 
+  itpp = callPackage ../development/libraries/science/math/itpp { };
+
   iw = callPackage ../os-specific/linux/iw { };
 
   iwd = callPackage ../os-specific/linux/iwd { };
@@ -17038,7 +17831,15 @@ in
     ];
   };
 
-  linux_5_7 = callPackage ../os-specific/linux/kernel/linux-5.7.nix {
+  linux-rt_5_4 = callPackage ../os-specific/linux/kernel/linux-rt-5.4.nix {
+    kernelPatches = [
+      kernelPatches.bridge_stp_helper
+      kernelPatches.request_key_helper
+      kernelPatches.export_kernel_fpu_functions."5.3"
+    ];
+  };
+
+  linux-rt_5_6 = callPackage ../os-specific/linux/kernel/linux-rt-5.6.nix {
     kernelPatches = [
       kernelPatches.bridge_stp_helper
       kernelPatches.request_key_helper
@@ -17076,6 +17877,14 @@ in
     ];
   };
 
+  linux_zen = callPackage ../os-specific/linux/kernel/linux-zen.nix {
+    kernelPatches = [
+      kernelPatches.bridge_stp_helper
+      kernelPatches.request_key_helper
+      kernelPatches.export_kernel_fpu_functions."5.3"
+    ];
+  };
+
   /* Linux kernel modules are inherently tied to a specific kernel.  So
      rather than provide specific instances of those packages for a
      specific kernel, we have a function that builds those packages
@@ -17120,8 +17929,6 @@ in
 
     ddcci-driver = callPackage ../os-specific/linux/ddcci { };
 
-    deepin-anything = callPackage ../os-specific/linux/deepin-anything { };
-
     digimend = callPackage ../os-specific/linux/digimend { };
 
     dpdk = callPackage ../os-specific/linux/dpdk { };
@@ -17158,11 +17965,12 @@ in
 
     nvidiaPackages = dontRecurseIntoAttrs (callPackage ../os-specific/linux/nvidia-x11 { });
 
-    nvidia_x11_legacy304 = nvidiaPackages.legacy_304;
-    nvidia_x11_legacy340 = nvidiaPackages.legacy_340;
-    nvidia_x11_legacy390 = nvidiaPackages.legacy_390;
-    nvidia_x11_beta      = nvidiaPackages.beta;
-    nvidia_x11           = nvidiaPackages.stable;
+    nvidia_x11_legacy304   = nvidiaPackages.legacy_304;
+    nvidia_x11_legacy340   = nvidiaPackages.legacy_340;
+    nvidia_x11_legacy390   = nvidiaPackages.legacy_390;
+    nvidia_x11_beta        = nvidiaPackages.beta;
+    nvidia_x11_vulkan_beta = nvidiaPackages.vulkan_beta;
+    nvidia_x11             = nvidiaPackages.stable;
 
     openrazer = callPackage ../os-specific/linux/openrazer/driver.nix { };
 
@@ -17188,6 +17996,8 @@ in
 
     rtl88x2bu = callPackage ../os-specific/linux/rtl88x2bu { };
 
+    rtl8821cu = callPackage ../os-specific/linux/rtl8821cu { };
+
     rtlwifi_new = callPackage ../os-specific/linux/rtlwifi_new { };
 
     openafs = callPackage ../servers/openafs/1.6/module.nix { };
@@ -17212,6 +18022,8 @@ in
 
     netatop = callPackage ../os-specific/linux/netatop { };
 
+    oci-seccomp-bpf-hook = if stdenv.lib.versionAtLeast kernel.version "5.4" then callPackage ../os-specific/linux/oci-seccomp-bpf-hook { } else null;
+
     perf = callPackage ../os-specific/linux/kernel/perf.nix { };
 
     phc-intel = if stdenv.lib.versionAtLeast kernel.version "4.10" then callPackage ../os-specific/linux/phc-intel { } else null;
@@ -17225,6 +18037,12 @@ in
 
     systemtap = callPackage ../development/tools/profiling/systemtap { };
 
+    system76 = callPackage ../os-specific/linux/system76 { };
+
+    system76-acpi = callPackage ../os-specific/linux/system76-acpi { };
+
+    system76-io = callPackage ../os-specific/linux/system76-io { };
+
     tmon = callPackage ../os-specific/linux/tmon { };
 
     tp_smapi = callPackage ../os-specific/linux/tp_smapi { };
@@ -17249,6 +18067,8 @@ in
 
     x86_energy_perf_policy = callPackage ../os-specific/linux/x86_energy_perf_policy { };
 
+    xpadneo = callPackage ../os-specific/linux/xpadneo { };
+
     zenpower = callPackage ../os-specific/linux/zenpower { };
 
     inherit (callPackages ../os-specific/linux/zfs {
@@ -17270,12 +18090,20 @@ in
   linuxPackages_latest = linuxPackages_5_8;
   linux_latest = linuxPackages_latest.kernel;
 
-  # Build the kernel modules for the some of the kernels.
+  # Realtime kernel packages.
+  linuxPackages-rt_5_4 = linuxPackagesFor pkgs.linux-rt_5_4;
+  linuxPackages-rt = linuxPackages-rt_5_4;
+  linux-rt = linuxPackages-rt.kernel;
+  linuxPackages-rt_5_6 = linuxPackagesFor pkgs.linux-rt_5_6;
+  linuxPackages-rt_latest = linuxPackages-rt_5_6;
+  linux-rt_latest = linuxPackages-rt_latest.kernel;
+
   linuxPackages_mptcp = linuxPackagesFor pkgs.linux_mptcp;
   linuxPackages_rpi1 = linuxPackagesFor pkgs.linux_rpi1;
   linuxPackages_rpi2 = linuxPackagesFor pkgs.linux_rpi2;
   linuxPackages_rpi3 = linuxPackagesFor pkgs.linux_rpi3;
   linuxPackages_rpi4 = linuxPackagesFor pkgs.linux_rpi4;
+  # Build kernel modules for some of the kernels.
   linuxPackages_4_4 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_4);
   linuxPackages_4_9 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_9);
   linuxPackages_4_14 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_4_14);
@@ -17284,7 +18112,7 @@ in
   linuxPackages_5_7 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_5_7);
   linuxPackages_5_8 = recurseIntoAttrs (linuxPackagesFor pkgs.linux_5_8);
 
-  # When adding to this list:
+  # When adding to the list above:
   # - Update linuxPackages_latest to the latest version
   # - Update the rev in ../os-specific/linux/kernel/linux-libre.nix to the latest one.
 
@@ -17355,6 +18183,9 @@ in
   linuxPackages_latest-libre = recurseIntoAttrs (linuxPackagesFor linux_latest-libre);
   linux_latest-libre = linux-libre.override { linux = linux_latest; };
 
+  # zen-kernel
+  linuxPackages_zen = recurseIntoAttrs (linuxPackagesFor pkgs.linux_zen);
+
   # A function to build a manually-configured kernel
   linuxManualConfig = makeOverridable (callPackage ../os-specific/linux/kernel/manual-config.nix {});
 
@@ -17404,6 +18235,14 @@ in
 
   librealsense = callPackage ../development/libraries/librealsense { };
 
+  librealsenseWithCuda = callPackage ../development/libraries/librealsense {
+    cudaSupport = true;
+  };
+
+  librealsenseWithoutCuda = callPackage ../development/libraries/librealsense {
+    cudaSupport = false;
+  };
+
   libsass = callPackage ../development/libraries/libsass { };
 
   libsepol = callPackage ../os-specific/linux/libsepol { };
@@ -17436,7 +18275,18 @@ in
 
   lsscsi = callPackage ../os-specific/linux/lsscsi { };
 
-  lvm2 = callPackage ../os-specific/linux/lvm2 { };
+  lvm2 = callPackage ../os-specific/linux/lvm2 {
+    # udev is the same package as systemd which depends on cryptsetup
+    # which depends on lvm2 again.  But we only need the libudev part
+    # which does not depend on cryptsetup.
+    udev = udev.override { cryptsetup = null; };
+  };
+  lvm2_dmeventd = callPackage ../os-specific/linux/lvm2 {
+    enableDmeventd = true;
+    enableCmdlib = true;
+  };
+
+  mbelib = callPackage ../development/libraries/audio/mbelib { };
 
   mbpfan = callPackage ../os-specific/linux/mbpfan { };
 
@@ -17486,6 +18336,8 @@ in
 
   nvme-cli = callPackage ../os-specific/linux/nvme-cli { };
 
+  system76-firmware = callPackage ../os-specific/linux/firmware/system76-firmware { };
+
   open-vm-tools = callPackage ../applications/virtualization/open-vm-tools { };
   open-vm-tools-headless = open-vm-tools.override { withX = false; };
 
@@ -17499,6 +18351,8 @@ in
 
   iferr = callPackage ../development/tools/iferr { };
 
+  ginkgo = callPackage ../development/tools/ginkgo { };
+
   go-bindata = callPackage ../development/tools/go-bindata { };
 
   go-bindata-assetfs = callPackage ../development/tools/go-bindata-assetfs { };
@@ -17523,6 +18377,8 @@ in
 
   gotags = callPackage ../development/tools/gotags { };
 
+  go-task = callPackage ../development/tools/go-task { };
+
   golint = callPackage ../development/tools/golint { };
 
   golangci-lint = callPackage ../development/tools/golangci-lint { };
@@ -17545,6 +18401,8 @@ in
 
   gotop = callPackage ../tools/system/gotop { };
 
+  go-migrate = callPackage ../development/tools/go-migrate { };
+
   gomodifytags = callPackage ../development/tools/gomodifytags { };
 
   go-langserver = callPackage ../development/tools/go-langserver { };
@@ -17589,12 +18447,16 @@ in
 
   pam_ccreds = callPackage ../os-specific/linux/pam_ccreds { };
 
+  pam_gnupg = callPackage ../os-specific/linux/pam_gnupg { };
+
   pam_krb5 = callPackage ../os-specific/linux/pam_krb5 { };
 
   pam_ldap = callPackage ../os-specific/linux/pam_ldap { };
 
   pam_mount = callPackage ../os-specific/linux/pam_mount { };
 
+  pam_p11 = callPackage ../os-specific/linux/pam_p11 { };
+
   pam_pgsql = callPackage ../os-specific/linux/pam_pgsql { };
 
   pam_ssh_agent_auth = callPackage ../os-specific/linux/pam_ssh_agent_auth { };
@@ -17676,8 +18538,6 @@ in
 
   regionset = callPackage ../os-specific/linux/regionset { };
 
-  rfkill = callPackage ../os-specific/linux/rfkill { };
-
   rfkill_udev = callPackage ../os-specific/linux/rfkill/udev.nix { };
 
   riscv-pk = callPackage ../misc/riscv-pk { };
@@ -17706,7 +18566,7 @@ in
 
   sdparm = callPackage ../os-specific/linux/sdparm { };
 
-  sdrangel = libsForQt5.callPackage ../applications/radio/sdrangel {  };
+  sdrangel = libsForQt512.callPackage ../applications/radio/sdrangel {  };
 
   sepolgen = callPackage ../os-specific/linux/sepolgen { };
 
@@ -17748,20 +18608,26 @@ in
   sysstat = callPackage ../os-specific/linux/sysstat { };
 
   systemd = callPackage ../os-specific/linux/systemd {
-    utillinux = utillinuxMinimal; # break the cyclic dependency
+    # break some cyclic dependencies
+    utillinux = utillinuxMinimal;
+    # provide a super minimal gnupg used for systemd-machined
+    gnupg = callPackage ../tools/security/gnupg/22.nix {
+      enableMinimal = true;
+      guiSupport = false;
+      pcsclite = null;
+      sqlite = null;
+      pinentry = null;
+      adns = null;
+      gnutls = null;
+      libusb1 = null;
+      openldap = null;
+      readline = null;
+      zlib = null;
+      bzip2 = null;
+    };
   };
-  udev = systemd; # TODO: move to aliases.nix
-
-  # standalone cryptsetup generator for systemd
-  systemd-cryptsetup-generator = callPackage ../os-specific/linux/systemd/cryptsetup-generator.nix { };
 
-  # In nixos, you can set systemd.package = pkgs.systemd_with_lvm2 to get
-  # LVM2 working in systemd.
-  systemd_with_lvm2 = pkgs.appendToName "with-lvm2" (pkgs.lib.overrideDerivation pkgs.systemd (p: {
-      postInstall = p.postInstall + ''
-        cp "${pkgs.lvm2}/lib/systemd/system-generators/"* $out/lib/systemd/system-generators
-      '';
-  }));
+  udev = systemd; # TODO: move to aliases.nix
 
   systemd-wait = callPackage ../os-specific/linux/systemd-wait { };
 
@@ -17807,6 +18673,7 @@ in
     ubootPine64
     ubootPine64LTS
     ubootPinebook
+    ubootPinebookPro
     ubootQemuAarch64
     ubootQemuArm
     ubootRaspberryPi
@@ -17904,6 +18771,8 @@ in
 
   ### DATA
 
+  _3270font = callPackage ../data/fonts/3270font { };
+
   adapta-backgrounds = callPackage ../data/misc/adapta-backgrounds { };
 
   adapta-gtk-theme = callPackage ../data/themes/adapta { };
@@ -17920,10 +18789,16 @@ in
 
   albatross = callPackage ../data/themes/albatross { };
 
+  alegreya = callPackage ../data/fonts/alegreya { };
+
+  alegreya-sans = callPackage ../data/fonts/alegreya-sans { };
+
   amber-theme = callPackage ../data/themes/amber { };
 
   amiri = callPackage ../data/fonts/amiri { };
 
+  anarchism = callPackage ../data/documentation/anarchism { };
+
   andagii = callPackage ../data/fonts/andagii { };
 
   andika = callPackage ../data/fonts/andika { };
@@ -17961,6 +18836,8 @@ in
 
   bakoma_ttf = callPackage ../data/fonts/bakoma-ttf { };
 
+  barlow = callPackage ../data/fonts/barlow { };
+
   bgnet = callPackage ../data/documentation/bgnet { };
 
   bibata-cursors = callPackage ../data/icons/bibata-cursors { };
@@ -17987,7 +18864,7 @@ in
 
   cascadia-code = callPackage ../data/fonts/cascadia-code { };
 
-  cde-gtk-theme = callPackage ../data/themes/cde-motif-theme { };
+  cde-gtk-theme = callPackage ../data/themes/cdetheme { };
 
   charis-sil = callPackage ../data/fonts/charis-sil { };
 
@@ -18090,6 +18967,14 @@ in
 
   eb-garamond = callPackage ../data/fonts/eb-garamond { };
 
+  edukai = callPackage ../data/fonts/edukai { };
+
+  eduli = callPackage ../data/fonts/eduli { };
+
+  moeli = eduli;
+
+  edusong = callPackage ../data/fonts/edusong { };
+
   elliptic_curves = callPackage ../data/misc/elliptic_curves { };
 
   equilux-theme = callPackage ../data/themes/equilux-theme { };
@@ -18203,10 +19088,7 @@ in
 
   inriafonts = callPackage ../data/fonts/inriafonts { };
 
-
-  iosevka = callPackage ../data/fonts/iosevka {
-    nodejs = nodejs-10_x;
-  };
+  iosevka = callPackage ../data/fonts/iosevka {};
   iosevka-bin = callPackage ../data/fonts/iosevka/bin.nix {};
 
   ipafont = callPackage ../data/fonts/ipafont {};
@@ -18226,12 +19108,14 @@ in
 
   kawkab-mono-font = callPackage ../data/fonts/kawkab-mono {};
 
-  kde2-decoration = libsForQt5.callPackage ../data/themes/kde2 { };
+  kde2-decoration = libsForQt514.callPackage ../data/themes/kde2 { };
 
   kochi-substitute = callPackage ../data/fonts/kochi-substitute {};
 
   kochi-substitute-naga10 = callPackage ../data/fonts/kochi-substitute-naga10 {};
 
+  kopia = callPackage ../tools/backup/kopia { };
+
   lato = callPackage ../data/fonts/lato {};
 
   league-of-moveable-type = callPackage ../data/fonts/league-of-moveable-type {};
@@ -18286,6 +19170,8 @@ in
 
   luculent = callPackage ../data/fonts/luculent { };
 
+  luna-icons = callPackage ../data/icons/luna-icons { };
+
   maia-icon-theme = callPackage ../data/icons/maia-icon-theme { };
 
   mailcap = callPackage ../data/misc/mailcap { };
@@ -18296,6 +19182,12 @@ in
 
   manrope = callPackage ../data/fonts/manrope { };
 
+  marwaita = callPackage ../data/themes/marwaita { };
+
+  marwaita-manjaro = callPackage ../data/themes/marwaita-manjaro { };
+
+  marwaita-peppermint = callPackage ../data/themes/marwaita-peppermint { };
+
   matcha-gtk-theme = callPackage ../data/themes/matcha { };
 
   materia-theme = callPackage ../data/themes/materia-theme { };
@@ -18316,8 +19208,6 @@ in
 
   medio = callPackage ../data/fonts/medio { };
 
-  mint-x-icons = callPackage ../data/icons/mint-x-icons { };
-
   mno16 = callPackage ../data/fonts/mno16 { };
 
   mnist = callPackage ../data/machine-learning/mnist { };
@@ -18460,7 +19350,7 @@ in
 
   qogir-theme = callPackage ../data/themes/qogir { };
 
-  qtcurve = libsForQt5.callPackage ../data/themes/qtcurve {};
+  qtcurve = libsForQt514.callPackage ../data/themes/qtcurve {};
 
   redhat-official-fonts = callPackage ../data/fonts/redhat-official { };
 
@@ -18494,6 +19384,8 @@ in
 
   sierra-gtk-theme = callPackage ../data/themes/sierra { };
 
+  snap7 = callPackage ../development/libraries/snap7 {};
+
   snowblind = callPackage ../data/themes/snowblind { };
 
   solarc-gtk-theme = callPackage ../data/themes/solarc { };
@@ -18523,7 +19415,7 @@ in
 
   qgo = libsForQt5.callPackage ../games/qgo { };
 
-  qmc2 = libsForQt5.callPackage ../misc/emulators/qmc2 { };
+  qmc2 = libsForQt514.callPackage ../misc/emulators/qmc2 { };
 
   quattrocento = callPackage ../data/fonts/quattrocento {};
 
@@ -18675,6 +19567,8 @@ in
 
   vegeta = callPackage ../tools/networking/vegeta { };
 
+  venta = callPackage ../data/themes/venta { };
+
   victor-mono = callPackage ../data/fonts/victor-mono { };
 
   vimix-gtk-themes = callPackage ../data/themes/vimix {};
@@ -18711,7 +19605,7 @@ in
 
   zafiro-icons = callPackage ../data/icons/zafiro-icons { };
 
-  zeal = libsForQt5.callPackage ../data/documentation/zeal { };
+  zeal = libsForQt514.callPackage ../data/documentation/zeal { };
 
   zilla-slab = callPackage ../data/fonts/zilla-slab { };
 
@@ -18761,7 +19655,7 @@ in
 
   ahoviewer = callPackage ../applications/graphics/ahoviewer { };
 
-  airwave = callPackage ../applications/audio/airwave { };
+  airwave = callPackage ../applications/audio/airwave { qt5 = qt514; };
 
   akira-unstable = callPackage ../applications/graphics/akira { };
 
@@ -18779,9 +19673,11 @@ in
 
   msgviewer = callPackage ../applications/networking/mailreaders/msgviewer { };
 
-  amarok = libsForQt5.callPackage ../applications/audio/amarok { };
+  amarok = libsForQt514.callPackage ../applications/audio/amarok { };
   amarok-kf5 = amarok; # for compatibility
 
+  amfora = callPackage ../applications/networking/browsers/amfora { };
+
   AMB-plugins = callPackage ../applications/audio/AMB-plugins { };
 
   ams-lv2 = callPackage ../applications/audio/ams-lv2 { };
@@ -18789,14 +19685,16 @@ in
   amsn = callPackage ../applications/networking/instant-messengers/amsn { };
 
   androidStudioPackages = recurseIntoAttrs
-    (callPackage ../applications/editors/android-studio { });
+    (callPackage ../applications/editors/android-studio {
+      buildFHSUserEnv = buildFHSUserEnvBubblewrap;
+    });
   android-studio = androidStudioPackages.stable;
 
   animbar = callPackage ../applications/graphics/animbar { };
 
   antfs-cli = callPackage ../applications/misc/antfs-cli {};
 
-  antimony = libsForQt5.callPackage ../applications/graphics/antimony {};
+  antimony = libsForQt514.callPackage ../applications/graphics/antimony {};
 
   antiword = callPackage ../applications/office/antiword {};
 
@@ -18829,7 +19727,9 @@ in
 
   arion = callPackage ../applications/virtualization/arion { };
 
-  arora = callPackage ../applications/networking/browsers/arora { };
+  asuka = callPackage ../applications/networking/browsers/asuka {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
 
   artha = callPackage ../applications/misc/artha { };
 
@@ -18850,8 +19750,8 @@ in
 
   aucatctl = callPackage ../applications/audio/aucatctl { };
 
-  audacious = callPackage ../applications/audio/audacious { };
-  audaciousQt5 = libsForQt5.callPackage ../applications/audio/audacious/qt-5.nix { };
+  audacious = libsForQt5.callPackage ../applications/audio/audacious { };
+  audaciousQt5 = audacious;
 
   audacity = callPackage ../applications/audio/audacity { };
 
@@ -18863,11 +19763,15 @@ in
 
   autotrace = callPackage ../applications/graphics/autotrace {};
 
+  av-98 = callPackage ../applications/networking/browsers/av-98 { };
+
   avocode = callPackage ../applications/graphics/avocode {};
 
   azpainter = callPackage ../applications/graphics/azpainter { };
 
-  cadence =  qt5.callPackage ../applications/audio/cadence { };
+  bambootracker = libsForQt5.callPackage ../applications/audio/bambootracker { };
+
+  cadence = libsForQt514.callPackage ../applications/audio/cadence { };
 
   cheesecutter = callPackage ../applications/audio/cheesecutter { };
 
@@ -18933,15 +19837,19 @@ in
 
   batik = callPackage ../applications/graphics/batik { };
 
+  batsignal = callPackage ../applications/misc/batsignal { };
+
   baudline = callPackage ../applications/audio/baudline { };
 
   bb =  callPackage ../applications/misc/bb { };
 
+  bchoppr = callPackage ../applications/audio/bchoppr { };
+
   berry = callPackage ../applications/window-managers/berry { };
 
   bevelbar = callPackage ../applications/window-managers/bevelbar { };
 
-  bibletime = libsForQt5.callPackage ../applications/misc/bibletime { };
+  bibletime = libsForQt514.callPackage ../applications/misc/bibletime { };
 
   bino3d = libsForQt5.callPackage ../applications/video/bino3d {
     glew = glew110;
@@ -18983,6 +19891,8 @@ in
 
   bgpq3 = callPackage ../tools/networking/bgpq3 { };
 
+  bgpq4 = callPackage ../tools/networking/bgpq4 { };
+
   blackbox = callPackage ../applications/version-management/blackbox { };
 
   bleachbit = callPackage ../applications/misc/bleachbit { };
@@ -18995,6 +19905,10 @@ in
     gtk = gtk3;
   };
 
+  bluej = callPackage ../applications/editors/bluej/default.nix {
+    jdk = jetbrains.jdk;
+  };
+
   bluejeans-gui = callPackage ../applications/networking/instant-messengers/bluejeans { };
 
   blugon = callPackage ../applications/misc/blugon { };
@@ -19011,6 +19925,8 @@ in
 
   brave = callPackage ../applications/networking/browsers/brave { };
 
+  break-time = callPackage ../applications/misc/break-time { };
+
   breezy = with python3Packages; toPythonApplication breezy;
 
   notmuch-bower = callPackage ../applications/networking/mailreaders/notmuch-bower { };
@@ -19023,6 +19939,8 @@ in
 
   bjumblr = callPackage ../applications/audio/bjumblr { };
 
+  bschaffl = callPackage ../applications/audio/bschaffl { };
+
   bsequencer = callPackage ../applications/audio/bsequencer { };
 
   bslizr = callPackage ../applications/audio/bslizr { };
@@ -19047,9 +19965,13 @@ in
 
   calculix = callPackage ../applications/science/math/calculix {};
 
-  calibre = libsForQt5.callPackage ../applications/misc/calibre { };
+  calibre-py2 = libsForQt514.callPackage ../applications/misc/calibre { pythonPackages = python2Packages; };
+
+  calibre-py3 = libsForQt514.callPackage ../applications/misc/calibre { pythonPackages = python3Packages; };
 
-  calligra = libsForQt5.callPackage ../applications/office/calligra {
+  calibre = calibre-py3;
+
+  calligra = libsForQt514.callPackage ../applications/office/calligra {
     inherit (kdeApplications) akonadi-calendar akonadi-contacts;
     openjpeg = openjpeg_1;
     poppler = poppler_0_61;
@@ -19063,17 +19985,17 @@ in
 
   carddav-util = callPackage ../tools/networking/carddav-util { };
 
-  carla = qt5.callPackage ../applications/audio/carla { };
+  carla = libsForQt514.callPackage ../applications/audio/carla { };
 
   castor = callPackage ../applications/networking/browsers/castor { };
 
   catimg = callPackage ../tools/misc/catimg { };
 
-  catt = python3Packages.callPackage ../applications/video/catt { };
+  catt = callPackage ../applications/video/catt { };
 
   cava = callPackage ../applications/audio/cava { };
 
-  cb2bib = libsForQt5.callPackage ../applications/office/cb2bib { };
+  cb2bib = libsForQt514.callPackage ../applications/office/cb2bib { };
 
   cbatticon = callPackage ../applications/misc/cbatticon { };
 
@@ -19096,8 +20018,6 @@ in
     inherit (python3Packages) python wrapPython pygments markdown;
   };
 
-  cgminer = callPackage ../applications/misc/cgminer { };
-
   chirp = callPackage ../applications/radio/chirp { };
 
   browsh = callPackage ../applications/networking/browsers/browsh { };
@@ -19110,8 +20030,6 @@ in
 
   chromium = callPackage ../applications/networking/browsers/chromium (config.chromium or {});
 
-  chronos = callPackage ../applications/networking/cluster/chronos { };
-
   chromiumBeta = lowPrio (chromium.override { channel = "beta"; });
 
   chromiumDev = lowPrio (chromium.override { channel = "dev"; });
@@ -19141,7 +20059,7 @@ in
 
   clightd = callPackage ../applications/misc/clight/clightd.nix { };
 
-  clipgrab = qt5.callPackage ../applications/video/clipgrab { };
+  clipgrab = libsForQt514.callPackage ../applications/video/clipgrab { };
 
   clipmenu = callPackage ../applications/misc/clipmenu { };
 
@@ -19149,6 +20067,8 @@ in
 
   cloud-print-connector = callPackage ../servers/cloud-print-connector { };
 
+  cloud-hypervisor = callPackage ../applications/virtualization/cloud-hypervisor { };
+
   clp = callPackage ../applications/science/math/clp { };
 
   cmatrix = callPackage ../applications/misc/cmatrix { };
@@ -19166,11 +20086,11 @@ in
 
   cntr = callPackage ../applications/virtualization/cntr { };
 
-  communi = libsForQt5.callPackage ../applications/networking/irc/communi { };
+  communi = libsForQt514.callPackage ../applications/networking/irc/communi { };
 
   confclerk = callPackage ../applications/misc/confclerk { };
 
-  copyq = libsForQt5.callPackage ../applications/misc/copyq { };
+  copyq = libsForQt514.callPackage ../applications/misc/copyq { };
 
   coriander = callPackage ../applications/video/coriander {
     inherit (gnome2) libgnomeui GConf;
@@ -19187,24 +20107,34 @@ in
     pygments = python27Packages.pygments;
   };
 
-  csound-qt = libsForQt5.callPackage ../applications/audio/csound/csound-qt {
+  csound-qt = libsForQt514.callPackage ../applications/audio/csound/csound-qt {
     python = python27;
   };
 
   codeblocks = callPackage ../applications/editors/codeblocks { };
   codeblocksFull = codeblocks.override { contribPlugins = true; };
 
+  cudatext-qt = callPackage ../applications/editors/cudatext { widgetset = "qt5"; };
+  cudatext-gtk = callPackage ../applications/editors/cudatext { widgetset = "gtk2"; };
+  cudatext = cudatext-qt;
+
+  convos = callPackage ../applications/networking/irc/convos { };
+
   comical = callPackage ../applications/graphics/comical { };
 
   containerd = callPackage ../applications/virtualization/containerd { };
 
   convchain = callPackage ../tools/graphics/convchain {};
 
+  cordless = callPackage ../applications/networking/instant-messengers/cordless { };
+
   coursera-dl = callPackage ../applications/misc/coursera-dl {};
 
   coyim = callPackage ../applications/networking/instant-messengers/coyim {};
 
-  cq-editor = libsForQt5.callPackage ../applications/graphics/cq-editor { };
+  cq-editor = libsForQt514.callPackage ../applications/graphics/cq-editor {
+    python3Packages = python37Packages;
+  };
 
   cpp_ethereum = callPackage ../applications/misc/cpp-ethereum { };
 
@@ -19222,7 +20152,7 @@ in
 
   curseradio = callPackage ../applications/audio/curseradio { };
 
-  cutecom = libsForQt5.callPackage ../tools/misc/cutecom { };
+  cutecom = libsForQt514.callPackage ../tools/misc/cutecom { };
 
   cvs = callPackage ../applications/version-management/cvs { };
 
@@ -19278,13 +20208,13 @@ in
 
   dfasma = libsForQt5.callPackage ../applications/audio/dfasma { };
 
-  dfilemanager = libsForQt5.callPackage ../applications/misc/dfilemanager { };
+  dfilemanager = libsForQt514.callPackage ../applications/misc/dfilemanager { };
 
   dia = callPackage ../applications/graphics/dia {
     inherit (pkgs.gnome2) libart_lgpl libgnomeui;
   };
 
-  direwolf = callPackage ../applications/misc/direwolf { };
+  direwolf = callPackage ../applications/radio/direwolf { };
 
   dirt = callPackage ../applications/audio/dirt {};
 
@@ -19343,23 +20273,19 @@ in
 
   dr14_tmeter = callPackage ../applications/audio/dr14_tmeter { };
 
-  draftsight = callPackage ../applications/graphics/draftsight { };
-
   dragonfly-reverb = callPackage ../applications/audio/dragonfly-reverb { };
 
   drawing = callPackage ../applications/graphics/drawing { };
 
   drawio = callPackage ../applications/graphics/drawio {};
 
-  drawpile = libsForQt5.callPackage ../applications/graphics/drawpile { };
-  drawpile-server-headless = libsForQt5.callPackage ../applications/graphics/drawpile {
+  drawpile = libsForQt514.callPackage ../applications/graphics/drawpile { };
+  drawpile-server-headless = libsForQt514.callPackage ../applications/graphics/drawpile {
     buildClient = false;
     buildServerGui = false;
   };
 
-  droopy = callPackage ../applications/networking/droopy {
-    inherit (python3Packages) wrapPython;
-  };
+  droopy = python37Packages.callPackage ../applications/networking/droopy { };
 
   drumgizmo = callPackage ../applications/audio/drumgizmo { };
 
@@ -19418,13 +20344,13 @@ in
 
   ekho = callPackage ../applications/audio/ekho { };
 
-  electron-cash = libsForQt5.callPackage ../applications/misc/electron-cash { };
+  electron-cash = libsForQt514.callPackage ../applications/misc/electron-cash { };
 
   electrum = libsForQt5.callPackage ../applications/misc/electrum { };
 
   electrum-dash = callPackage ../applications/misc/electrum/dash.nix { };
 
-  electrum-ltc = callPackage ../applications/misc/electrum/ltc.nix { };
+  electrum-ltc = libsForQt514.callPackage ../applications/misc/electrum/ltc.nix { };
 
   elementary-planner = callPackage ../applications/office/elementary-planner { };
 
@@ -19435,8 +20361,9 @@ in
   emacs = emacs27;
   emacsPackages = emacs27Packages;
   emacs-nox = emacs27-nox;
+  emacsWithPackages = emacsPackages.emacsWithPackages;
 
-  emacs27 = callPackage ../applications/editors/emacs {
+  emacs27 = callPackage ../applications/editors/emacs/27.nix {
     # use override to enable additional features
     libXaw = xorg.libXaw;
     Xaw3d = null;
@@ -19455,6 +20382,25 @@ in
     withGTK3 = false;
   }));
 
+  emacs26 = callPackage ../applications/editors/emacs/26.nix {
+    # use override to enable additional features
+    libXaw = xorg.libXaw;
+    Xaw3d = null;
+    gconf = null;
+    alsaLib = null;
+    imagemagick = null;
+    acl = null;
+    gpm = null;
+    inherit (darwin.apple_sdk.frameworks) AppKit GSS ImageIO;
+  };
+
+  emacs26-nox = lowPrio (appendToName "nox" (emacs26.override {
+    withX = false;
+    withNS = false;
+    withGTK2 = false;
+    withGTK3 = false;
+  }));
+
   emacsMacport = callPackage ../applications/editors/emacs/macport.nix {
     inherit (darwin.apple_sdk.frameworks)
       AppKit Carbon Cocoa IOKit OSAKit Quartz QuartzCore WebKit
@@ -19486,10 +20432,10 @@ in
     };
   };
 
+  emacs26Packages = dontRecurseIntoAttrs (emacsPackagesFor emacs26);
   emacs27Packages = dontRecurseIntoAttrs (emacsPackagesFor emacs27);
-
+  emacs26WithPackages = emacs26Packages.emacsWithPackages;
   emacs27WithPackages = emacs27Packages.emacsWithPackages;
-  emacsWithPackages = emacsPackages.emacsWithPackages;
 
   inherit (gnome3) empathy;
 
@@ -19503,6 +20449,8 @@ in
 
   epeg = callPackage ../applications/graphics/epeg { };
 
+  epgstation = callPackage ../applications/video/epgstation { };
+
   inherit (gnome3) epiphany;
 
   ephemeral = callPackage ../applications/networking/browsers/ephemeral { };
@@ -19536,6 +20484,8 @@ in
 
   evilvte = callPackage ../applications/misc/evilvte (config.evilvte or {});
 
+  evilpixie = libsForQt514.callPackage ../applications/graphics/evilpixie { };
+
   exercism = callPackage ../applications/misc/exercism { };
 
   go-motion = callPackage ../development/tools/go-motion { };
@@ -19552,6 +20502,7 @@ in
 
   inherit (gnome3) evince;
   evolution-data-server = gnome3.evolution-data-server;
+  evolution-ews = callPackage ../applications/networking/mailreaders/evolution/evolution-ews { };
 
   keepass = callPackage ../applications/misc/keepass { };
 
@@ -19589,6 +20540,14 @@ in
 
   FIL-plugins = callPackage ../applications/audio/FIL-plugins { };
 
+  finalfrontier = callPackage ../applications/science/machine-learning/finalfrontier {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  finalfusion-utils = callPackage ../applications/science/machine-learning/finalfusion-utils {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   flacon = libsForQt5.callPackage ../applications/audio/flacon { };
 
   flexget = callPackage ../applications/networking/flexget { };
@@ -19623,15 +20582,19 @@ in
 
   font-manager = callPackage ../applications/misc/font-manager { };
 
+  fontpreview = callPackage ../applications/misc/fontpreview { };
+
   foo-yc20 = callPackage ../applications/audio/foo-yc20 { };
 
+  foot = callPackage ../applications/misc/foot { };
+
   fossil = callPackage ../applications/version-management/fossil { };
 
   freebayes = callPackage ../applications/science/biology/freebayes { };
 
   freewheeling = callPackage ../applications/audio/freewheeling { };
 
-  fritzing = libsForQt5.callPackage ../applications/science/electronics/fritzing { };
+  fritzing = libsForQt514.callPackage ../applications/science/electronics/fritzing { };
 
   fsv = callPackage ../applications/misc/fsv { };
 
@@ -19645,6 +20608,8 @@ in
 
   gcal = callPackage ../applications/misc/gcal { };
 
+  gcstar = callPackage ../applications/misc/gcstar { };
+
   geany = callPackage ../applications/editors/geany { };
   geany-with-vte = callPackage ../applications/editors/geany/with-vte.nix { };
 
@@ -19652,7 +20617,7 @@ in
 
   geoipupdate = callPackage ../applications/misc/geoipupdate/default.nix { };
 
-  ghostwriter = libsForQt5.callPackage ../applications/editors/ghostwriter { };
+  ghostwriter = libsForQt514.callPackage ../applications/editors/ghostwriter { };
 
   gitweb = callPackage ../applications/version-management/git-and-tools/gitweb { };
 
@@ -19687,7 +20652,7 @@ in
 
   gr-osmosdr = callPackage ../applications/radio/gnuradio/osmosdr.nix { };
 
-  goldendict = libsForQt5.callPackage ../applications/misc/goldendict {
+  goldendict = libsForQt514.callPackage ../applications/misc/goldendict {
     inherit (darwin) libiconv;
   };
 
@@ -19696,7 +20661,7 @@ in
   inherit (ocamlPackages) google-drive-ocamlfuse;
 
   google-musicmanager = callPackage ../applications/audio/google-musicmanager {
-    inherit (qt5) qtbase qtwebkit;
+    inherit (qt514) qtbase qtwebkit;
     # Downgrade to 1.34 to get libidn.so.11
     libidn = (libidn.overrideAttrs (oldAttrs: {
       src = fetchurl {
@@ -19712,6 +20677,8 @@ in
 
   gopher = callPackage ../applications/networking/gopher/gopher { };
 
+  gophernotes = callPackage ../applications/editors/gophernotes { };
+
   goxel = callPackage ../applications/graphics/goxel { };
 
   gpa = callPackage ../applications/misc/gpa { };
@@ -19722,7 +20689,7 @@ in
 
   gpx = callPackage ../applications/misc/gpx { };
 
-  gqrx = qt5.callPackage ../applications/radio/gqrx { };
+  gqrx = libsForQt514.callPackage ../applications/radio/gqrx { };
 
   gpx-viewer = callPackage ../applications/misc/gpx-viewer { };
 
@@ -19818,8 +20785,6 @@ in
   firefox-bin-unwrapped = callPackage ../applications/networking/browsers/firefox-bin {
     channel = "release";
     generated = import ../applications/networking/browsers/firefox-bin/release_sources.nix;
-    gconf = pkgs.gnome2.GConf;
-    inherit (pkgs.gnome2) libgnome libgnomeui;
   };
 
   firefox-bin = wrapFirefox firefox-bin-unwrapped {
@@ -19831,8 +20796,6 @@ in
   firefox-beta-bin-unwrapped = firefox-bin-unwrapped.override {
     channel = "beta";
     generated = import ../applications/networking/browsers/firefox-bin/beta_sources.nix;
-    gconf = pkgs.gnome2.GConf;
-    inherit (pkgs.gnome2) libgnome libgnomeui;
   };
 
   firefox-beta-bin = res.wrapFirefox firefox-beta-bin-unwrapped {
@@ -19844,8 +20807,6 @@ in
   firefox-devedition-bin-unwrapped = callPackage ../applications/networking/browsers/firefox-bin {
     channel = "devedition";
     generated = import ../applications/networking/browsers/firefox-bin/devedition_sources.nix;
-    gconf = pkgs.gnome2.GConf;
-    inherit (pkgs.gnome2) libgnome libgnomeui;
   };
 
   firefox-devedition-bin = res.wrapFirefox firefox-devedition-bin-unwrapped {
@@ -19859,7 +20820,7 @@ in
 
   redoflacs = callPackage ../applications/audio/redoflacs { };
 
-  flameshot = libsForQt5.callPackage ../tools/misc/flameshot { };
+  flameshot = libsForQt514.callPackage ../tools/misc/flameshot { };
 
   flashplayer = callPackage ../applications/networking/browsers/mozilla-plugins/flashplayer (config.flashplayer or {});
 
@@ -19883,11 +20844,23 @@ in
 
   fractal = callPackage ../applications/networking/instant-messengers/fractal { };
 
-  freecad = qt5.callPackage ../applications/graphics/freecad { mpi = openmpi; };
+  freecad = libsForQt514.callPackage ../applications/graphics/freecad {
+    mpi = openmpi;
+  };
+  freecadStable = libsForQt514.callPackage ../applications/graphics/freecad/stable.nix {
+    mpi = openmpi;
+    opencascade-occt = opencascade-occt730;
+    python3Packages = python37Packages;
+  };
 
-  freemind = callPackage ../applications/misc/freemind { };
+  freemind = callPackage ../applications/misc/freemind {
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
-  freenet = callPackage ../applications/networking/p2p/freenet { };
+  freenet = callPackage ../applications/networking/p2p/freenet {
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   freeoffice = callPackage ../applications/office/softmaker/freeoffice.nix {};
 
@@ -19905,10 +20878,12 @@ in
 
   freerdpUnstable = freerdp;
 
-  friture = libsForQt5.callPackage ../applications/audio/friture { };
+  friture = libsForQt514.callPackage ../applications/audio/friture { };
 
   fte = callPackage ../applications/editors/fte { };
 
+  g933-utils = callPackage ../tools/misc/g933-utils { };
+
   game-music-emu = callPackage ../applications/audio/game-music-emu { };
 
   gavrasm = callPackage ../development/compilers/gavrasm { };
@@ -19963,6 +20938,8 @@ in
 
   gitolite = callPackage ../applications/version-management/gitolite { };
 
+  gitoxide = callPackage ../applications/version-management/gitoxide { };
+
   inherit (gnome3) gitg;
 
   gmrun = callPackage ../applications/misc/gmrun {};
@@ -19979,6 +20956,12 @@ in
 
   libquvi = callPackage ../applications/video/quvi/library.nix { };
 
+  librespot = callPackage ../applications/audio/librespot {
+    withALSA = stdenv.isLinux;
+    withPulseAudio = config.pulseaudio or stdenv.isLinux;
+    withPortAudio = stdenv.isDarwin;
+  };
+
   linssid = libsForQt5.callPackage ../applications/networking/linssid { };
 
   lollypop = callPackage ../applications/audio/lollypop { };
@@ -19989,17 +20972,17 @@ in
     opencv = python37Packages.opencv3;
   };
 
-  manuskript = libsForQt5.callPackage ../applications/editors/manuskript { };
+  manuskript = libsForQt514.callPackage ../applications/editors/manuskript { };
 
   manul = callPackage ../development/tools/manul { };
 
-  mindforger = libsForQt5.callPackage ../applications/editors/mindforger { };
+  mindforger = libsForQt514.callPackage ../applications/editors/mindforger { };
 
   mi2ly = callPackage ../applications/audio/mi2ly {};
 
   moe =  callPackage ../applications/editors/moe { };
 
-  multibootusb = qt5.callPackage ../applications/misc/multibootusb {};
+  multibootusb = libsForQt514.callPackage ../applications/misc/multibootusb { qt5 = qt514; };
 
   praat = callPackage ../applications/audio/praat { };
 
@@ -20036,7 +21019,7 @@ in
 
   gnunet = callPackage ../applications/networking/p2p/gnunet { };
 
-  gnunet_git = lowPrio (callPackage ../applications/networking/p2p/gnunet/git.nix { });
+  gnunet-gtk = callPackage ../applications/networking/p2p/gnunet/gtk.nix { };
 
   gocr = callPackage ../applications/graphics/gocr { };
 
@@ -20085,6 +21068,8 @@ in
 
   gollum = callPackage ../applications/misc/gollum { };
 
+  gonic = callPackage ../servers/gonic { };
+
   googleearth = callPackage ../applications/misc/googleearth { };
 
   google-chrome = callPackage ../applications/networking/browsers/google-chrome { gconf = gnome2.GConf; };
@@ -20099,11 +21084,11 @@ in
 
   gosmore = callPackage ../applications/misc/gosmore { };
 
-  gpsbabel = libsForQt5.callPackage ../applications/misc/gpsbabel {
+  gpsbabel = libsForQt514.callPackage ../applications/misc/gpsbabel {
     inherit (darwin) IOKit;
   };
 
-  gpsbabel-gui = libsForQt5.callPackage ../applications/misc/gpsbabel/gui.nix { };
+  gpsbabel-gui = libsForQt514.callPackage ../applications/misc/gpsbabel/gui.nix { };
 
   gpscorrelate = callPackage ../applications/misc/gpscorrelate { };
 
@@ -20129,12 +21114,16 @@ in
 
   gv = callPackage ../applications/misc/gv { };
 
-  gvisor = callPackage ../applications/virtualization/gvisor { };
+  gvisor = callPackage ../applications/virtualization/gvisor {
+    go = go_1_14;
+  };
 
   gvisor-containerd-shim = callPackage ../applications/virtualization/gvisor/containerd-shim.nix { };
 
   guvcview = libsForQt5.callPackage ../os-specific/linux/guvcview { };
 
+  gwc = callPackage ../applications/audio/gwc { };
+
   gxmessage = callPackage ../applications/misc/gxmessage { };
 
   gxmatcheq-lv2 = callPackage ../applications/audio/gxmatcheq-lv2 { };
@@ -20143,6 +21132,8 @@ in
 
   hackrf = callPackage ../applications/radio/hackrf { };
 
+  hacksaw = callPackage ../tools/misc/hacksaw {};
+
   hakuneko = callPackage ../tools/misc/hakuneko { };
 
   hamster = callPackage ../applications/misc/hamster { };
@@ -20151,6 +21142,8 @@ in
 
   hactool = callPackage ../tools/compression/hactool { };
 
+  hdhomerun-config-gui = callPackage ../applications/video/hdhomerun-config-gui { };
+
   heimer = libsForQt5.callPackage ../applications/misc/heimer { };
 
   hello = callPackage ../applications/misc/hello { };
@@ -20210,8 +21203,8 @@ in
 
   hugo = callPackage ../applications/misc/hugo { };
 
-  hydrogen = callPackage ../applications/audio/hydrogen { };
-  hydrogen-unstable = qt5.callPackage ../applications/audio/hydrogen/unstable.nix { };
+  hydrogen = qt5.callPackage ../applications/audio/hydrogen { };
+  hydrogen_0 = callPackage ../applications/audio/hydrogen/0.nix { }; # Old stable, has GMKit.
 
   hydroxide = callPackage ../applications/networking/hydroxide { };
 
@@ -20323,6 +21316,8 @@ in
 
   i3lock-fancy = callPackage ../applications/window-managers/i3/lock-fancy.nix { };
 
+  i3lock-fancy-rapid = callPackage ../applications/window-managers/i3/lock-fancy-rapid.nix { };
+
   i3lock-pixeled = callPackage ../misc/screensavers/i3lock-pixeled { };
 
   betterlockscreen = callPackage ../misc/screensavers/betterlockscreen {
@@ -20339,6 +21334,8 @@ in
 
   i3-wk-switch = callPackage ../applications/window-managers/i3/wk-switch.nix { };
 
+  windowchef = callPackage ../applications/window-managers/windowchef/default.nix { };
+
   wmfocus = callPackage ../applications/window-managers/i3/wmfocus.nix { };
 
   wmfs = callPackage ../applications/window-managers/wmfs/default.nix { };
@@ -20363,6 +21360,10 @@ in
 
   iksemel = callPackage ../development/libraries/iksemel { };
 
+  imag = callPackage ../applications/misc/imag {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   imagej = callPackage ../applications/graphics/imagej { };
 
   imagemagick_light = imagemagick.override {
@@ -20427,7 +21428,7 @@ in
 
   inherit (nodePackages) imapnotify;
 
-  img2pdf = callPackage ../applications/misc/img2pdf { };
+  img2pdf = with python3Packages; toPythonApplication img2pdf;
 
   imgcat = callPackage ../applications/graphics/imgcat { };
 
@@ -20436,17 +21437,23 @@ in
   # Impressive, formerly known as "KeyJNote".
   impressive = callPackage ../applications/office/impressive { };
 
+  inkcut = libsForQt514.callPackage ../applications/misc/inkcut { };
+
   inkscape = callPackage ../applications/graphics/inkscape {
     lcms = lcms2;
   };
 
-  inspectrum = libsForQt5.callPackage ../applications/radio/inspectrum { };
+  inkscape-with-extensions = callPackage ../applications/graphics/inkscape/with-extensions.nix { };
+
+  inkscape-extensions = recurseIntoAttrs (callPackages ../applications/graphics/inkscape/extensions.nix {});
+
+  inspectrum = libsForQt514.callPackage ../applications/radio/inspectrum { };
 
   ion3 = callPackage ../applications/window-managers/ion-3 {
     lua = lua5_1;
   };
 
-  ipe = libsForQt5.callPackage ../applications/graphics/ipe {
+  ipe = libsForQt514.callPackage ../applications/graphics/ipe {
     ghostscript = ghostscriptX;
     texlive = texlive.combine { inherit (texlive) scheme-small; };
     lua5 = lua5_3;
@@ -20464,10 +21471,22 @@ in
 
   ir.lv2 = callPackage ../applications/audio/ir.lv2 { };
 
+  istioctl = callPackage ../applications/networking/cluster/istioctl { };
+
   bip = callPackage ../applications/networking/irc/bip { };
 
   j4-dmenu-desktop = callPackage ../applications/misc/j4-dmenu-desktop { };
 
+  jabcode = callPackage ../development/libraries/jabcode { };
+
+  jabcode-writer = callPackage ../development/libraries/jabcode {
+    subproject = "writer";
+  };
+
+  jabcode-reader = callPackage ../development/libraries/jabcode {
+    subproject = "reader";
+  };
+
   jabref = callPackage ../applications/office/jabref { };
 
   jack_capture = callPackage ../applications/audio/jack-capture { };
@@ -20505,7 +21524,7 @@ in
 
   joe = callPackage ../applications/editors/joe { };
 
-  josm = callPackage ../applications/misc/josm { jre = jdk11; };
+  josm = callPackage ../applications/misc/josm { };
 
   jwm = callPackage ../applications/window-managers/jwm { };
 
@@ -20525,7 +21544,7 @@ in
 
   k3s = callPackage ../applications/networking/cluster/k3s {};
 
-  k9copy = libsForQt5.callPackage ../applications/video/k9copy {};
+  k9copy = libsForQt514.callPackage ../applications/video/k9copy {};
 
   kail = callPackage ../tools/networking/kail {  };
 
@@ -20533,38 +21552,67 @@ in
 
   kanshi = callPackage ../tools/misc/kanshi { };
 
+  kapitonov-plugins-pack = callPackage ../applications/audio/kapitonov-plugins-pack { };
+
   kdeApplications =
     let
       mkApplications = import ../applications/kde;
       attrs = {
-        inherit lib libsForQt5 fetchurl;
+        libsForQt5 = libsForQt514;
+        inherit lib fetchurl;
         inherit okteta;
       };
     in
       recurseIntoAttrs (makeOverridable mkApplications attrs);
 
   inherit (kdeApplications)
-    akonadi akregator ark dolphin dragon elisa ffmpegthumbs filelight gwenview k3b
-    kaddressbook kate kcachegrind kcalc kcharselect kcolorchooser kdenlive kdf kdialog
-    keditbookmarks kfind kget kgpg khelpcenter kig kleopatra kmail kmix kmplot kolourpaint kompare konsole yakuake
-    kpkpass kitinerary kontact korganizer krdc krfb ksystemlog ktouch kwalletmanager marble minuet okular spectacle;
+    akonadi akregator ark
+    bomber bovo
+    dolphin dragon
+    elisa
+    ffmpegthumbs filelight
+    granatier gwenview
+    k3b
+    kaddressbook kalzium kapptemplate kapman kate katomic
+    kblackbox kblocks kbounce
+    kcachegrind kcalc kcharselect kcolorchooser
+    kdenlive kdf kdialog kdiamond
+    keditbookmarks
+    kfind kfloppy
+    kget kgpg
+    khelpcenter
+    kig kigo killbots kitinerary
+    kleopatra klettres klines
+    kmag kmail kmines kmix kmplot
+    knavalbattle knetwalk knights
+    kollision kolourpaint kompare konsole kontact korganizer
+    kpkpass
+    krdc kreversi krfb
+    kshisen ksquares ksystemlog
+    kteatime ktimer ktouch kturtle
+    kwalletmanager kwave
+    marble minuet
+    okular
+    picmi
+    spectacle
+    yakuake;
 
   okteta = libsForQt5.callPackage ../applications/editors/okteta { };
 
-  kdeconnect = libsForQt5.callPackage ../applications/misc/kdeconnect { };
+  k4dirstat = libsForQt5.callPackage ../applications/misc/k4dirstat { };
 
-  kdecoration-viewer = libsForQt5.callPackage ../tools/misc/kdecoration-viewer { };
+  kdeconnect = libsForQt514.callPackage ../applications/misc/kdeconnect { };
 
   inherit (kdeFrameworks) kdesu;
 
-  kdevelop-pg-qt = libsForQt5.callPackage ../applications/editors/kdevelop5/kdevelop-pg-qt.nix { };
+  kdevelop-pg-qt = libsForQt514.callPackage ../applications/editors/kdevelop5/kdevelop-pg-qt.nix { };
 
-  kdevelop-unwrapped = libsForQt5.callPackage ../applications/editors/kdevelop5/kdevelop.nix {
+  kdevelop-unwrapped = libsForQt514.callPackage ../applications/editors/kdevelop5/kdevelop.nix {
     llvmPackages = llvmPackages_10;
   };
 
-  kdev-php = libsForQt5.callPackage ../applications/editors/kdevelop5/kdev-php.nix { };
-  kdev-python = libsForQt5.callPackage ../applications/editors/kdevelop5/kdev-python.nix {
+  kdev-php = libsForQt514.callPackage ../applications/editors/kdevelop5/kdev-php.nix { };
+  kdev-python = libsForQt514.callPackage ../applications/editors/kdevelop5/kdev-python.nix {
     python = python3;
   };
 
@@ -20578,7 +21626,7 @@ in
 
   kermit = callPackage ../tools/misc/kermit { };
 
-  kexi = libsForQt5.callPackage ../applications/office/kexi { };
+  kexi = libsForQt514.callPackage ../applications/office/kexi { };
 
   khronos = callPackage ../applications/office/khronos { };
 
@@ -20586,7 +21634,7 @@ in
 
   keyfinder-cli = libsForQt5.callPackage ../applications/audio/keyfinder-cli { };
 
-  kgraphviewer = libsForQt5.callPackage ../applications/graphics/kgraphviewer { };
+  kgraphviewer = libsForQt514.callPackage ../applications/graphics/kgraphviewer { };
 
   khal = callPackage ../applications/misc/khal { };
 
@@ -20610,9 +21658,11 @@ in
 
   klayout = libsForQt5.callPackage ../applications/misc/klayout { };
 
+  kmetronome = libsForQt5.callPackage ../applications/audio/kmetronome { };
+
   kmplayer = libsForQt5.callPackage ../applications/video/kmplayer { };
 
-  kmymoney = libsForQt5.callPackage ../applications/office/kmymoney {
+  kmymoney = libsForQt514.callPackage ../applications/office/kmymoney {
     inherit (kdeApplications) kidentitymanagement;
     inherit (kdeFrameworks) kdewebkit;
   };
@@ -20621,21 +21671,23 @@ in
 
   kondo = callPackage ../applications/misc/kondo { };
 
-  konversation = libsForQt5.callPackage ../applications/networking/irc/konversation { };
+  konversation = libsForQt514.callPackage ../applications/networking/irc/konversation { };
+
+  kotatogram-desktop = libsForQt514.callPackage ../applications/networking/instant-messengers/telegram/kotatogram-desktop { };
 
-  kotatogram-desktop = qt5.callPackage ../applications/networking/instant-messengers/telegram/kotatogram-desktop { };
+  kpt = callPackage ../applications/networking/cluster/kpt { };
 
-  krita = libsForQt5.callPackage ../applications/graphics/krita {
+  krita = libsForQt514.callPackage ../applications/graphics/krita {
     openjpeg = openjpeg_1;
   };
 
-  krusader = libsForQt5.callPackage ../applications/misc/krusader { };
+  krusader = libsForQt514.callPackage ../applications/misc/krusader { };
 
   ksuperkey = callPackage ../tools/X11/ksuperkey { };
 
   ktimetracker = libsForQt5.callPackage ../applications/office/ktimetracker { };
 
-  ktorrent = libsForQt5.callPackage ../applications/networking/p2p/ktorrent { };
+  ktorrent = libsForQt514.callPackage ../applications/networking/p2p/ktorrent { };
 
   kubecfg = callPackage ../applications/networking/cluster/kubecfg { };
 
@@ -20655,6 +21707,8 @@ in
 
   k9s = callPackage ../applications/networking/cluster/k9s { };
 
+  popeye = callPackage ../applications/networking/cluster/popeye { };
+
   fluxctl = callPackage ../applications/networking/cluster/fluxctl { };
 
   linkerd = callPackage ../applications/networking/cluster/linkerd { };
@@ -20669,7 +21723,7 @@ in
     python3Packages = python36Packages;
   };
 
-  kvirc = libsForQt5.callPackage ../applications/networking/irc/kvirc { };
+  kvirc = libsForQt514.callPackage ../applications/networking/irc/kvirc { };
 
   lame = callPackage ../development/libraries/lame { };
 
@@ -20685,6 +21739,8 @@ in
 
   ladspa-sdk = callPackage ../applications/audio/ladspa-sdk { };
 
+  lazpaint = callPackage ../applications/graphics/lazpaint { };
+
   caps = callPackage ../applications/audio/caps { };
 
   lastfmsubmitd = callPackage ../applications/audio/lastfmsubmitd { };
@@ -20701,11 +21757,11 @@ in
 
   legit = gitAndTools.legit;
 
-  leo-editor = libsForQt5.callPackage ../applications/editors/leo-editor { };
+  leo-editor = libsForQt514.callPackage ../applications/editors/leo-editor { };
 
   libowfat = callPackage ../development/libraries/libowfat { };
 
-  librecad = libsForQt5.callPackage ../applications/misc/librecad { };
+  librecad = libsForQt514.callPackage ../applications/misc/librecad { };
 
   libreoffice = hiPrio libreoffice-still;
   libreoffice-unwrapped = libreoffice.libreoffice;
@@ -20729,10 +21785,11 @@ in
   };
 
   libreoffice-qt = lowPrio (callPackage ../applications/office/libreoffice/wrapper.nix {
-    libreoffice = libsForQt5.callPackage ../applications/office/libreoffice
+    libreoffice = libsForQt514.callPackage ../applications/office/libreoffice
       (libreoffice-args // {
         kdeIntegration = true;
         variant = "fresh";
+        jdk = jdk11;
       });
   });
 
@@ -20740,6 +21797,7 @@ in
     libreoffice = callPackage ../applications/office/libreoffice
       (libreoffice-args // {
         variant = "fresh";
+        jdk = jdk11;
       });
   });
   libreoffice-fresh-unwrapped = libreoffice-fresh.libreoffice;
@@ -20747,7 +21805,9 @@ in
   libreoffice-still = lowPrio (callPackage ../applications/office/libreoffice/wrapper.nix {
     libreoffice = callPackage ../applications/office/libreoffice
       (libreoffice-args // {
+        icu = icu64;
         variant = "still";
+        jdk = jdk8;
       });
   });
   libreoffice-still-unwrapped = libreoffice-still.libreoffice;
@@ -20766,17 +21826,18 @@ in
 
   linuxband = callPackage ../applications/audio/linuxband { };
 
-  ledger = callPackage ../applications/office/ledger {
-    # Boost >= 1.67 changed the name of boost python; ledger's cmake build needs
-    # an update to find it:
-    # https://www.boost.org/doc/libs/1_68_0/libs/python/doc/html/rn.html
-    boost = boost15x;
+  littlegptracker = callPackage ../applications/audio/littlegptracker {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
   };
 
+  ledger = callPackage ../applications/office/ledger { };
+
   ledger-autosync = callPackage  ../applications/office/ledger-autosync { };
 
   ledger-web = callPackage ../applications/office/ledger-web { };
 
+  lightburn = libsForQt5.callPackage ../applications/graphics/lightburn { };
+
   lighthouse = callPackage ../applications/misc/lighthouse { };
 
   lighttable = callPackage ../applications/editors/lighttable {};
@@ -20803,13 +21864,13 @@ in
 
   loxodo = callPackage ../applications/misc/loxodo { };
 
-  lsd2dsl = libsForQt5.callPackage ../applications/misc/lsd2dsl { };
+  lsd2dsl = libsForQt514.callPackage ../applications/misc/lsd2dsl { };
 
   lrzsz = callPackage ../tools/misc/lrzsz { };
 
   lsp-plugins = callPackage ../applications/audio/lsp-plugins { };
 
-  luminanceHDR = libsForQt5.callPackage ../applications/graphics/luminance-hdr { };
+  luminanceHDR = libsForQt514.callPackage ../applications/graphics/luminance-hdr { };
 
   lxdvdrip = callPackage ../applications/video/lxdvdrip { };
 
@@ -20847,16 +21908,20 @@ in
   luppp = callPackage ../applications/audio/luppp { };
 
   lutris-unwrapped = python3.pkgs.callPackage ../applications/misc/lutris {
-    inherit (gnome3) gnome-desktop libgnome-keyring;
+    inherit (gnome3) gnome-desktop;
     wine = wineWowPackages.staging;
   };
-  lutris = callPackage ../applications/misc/lutris/chrootenv.nix { };
+  lutris = callPackage ../applications/misc/lutris/fhsenv.nix {
+    buildFHSUserEnv = buildFHSUserEnvBubblewrap;
+  };
   lutris-free = lutris.override {
     steamSupport = false;
   };
 
   lv2bm = callPackage ../applications/audio/lv2bm { };
 
+  lv2-cpp-tools = callPackage ../applications/audio/lv2-cpp-tools { };
+
   lynx = callPackage ../applications/networking/browsers/lynx { };
 
   lyx = libsForQt5.callPackage ../applications/misc/lyx { };
@@ -20888,9 +21953,8 @@ in
 
   mandelbulber = libsForQt5.callPackage ../applications/graphics/mandelbulber { };
 
-  mapmap = libsForQt5.callPackage ../applications/video/mapmap { };
+  mapmap = libsForQt514.callPackage ../applications/video/mapmap { };
 
-  marathon = callPackage ../applications/networking/cluster/marathon { };
   marathonctl = callPackage ../tools/virtualization/marathonctl { } ;
 
   markdown-pp = callPackage ../tools/text/markdown-pp { };
@@ -20899,6 +21963,8 @@ in
 
   magnetico = callPackage ../applications/networking/p2p/magnetico { };
 
+  mastodon-bot = nodePackages.mastodon-bot;
+
   matchbox = callPackage ../applications/window-managers/matchbox { };
 
   matrixcli = callPackage ../applications/networking/instant-messengers/matrixcli {
@@ -20921,7 +21987,7 @@ in
 
   mediainfo-gui = callPackage ../applications/misc/mediainfo-gui { };
 
-  mediathekview = callPackage ../applications/video/mediathekview { jre = openjdk11; };
+  mediathekview = callPackage ../applications/video/mediathekview { };
 
   meteo = callPackage ../applications/networking/weather/meteo { };
 
@@ -20933,7 +21999,7 @@ in
 
   meme = callPackage ../applications/graphics/meme { };
 
-  mendeley = libsForQt5.callPackage ../applications/office/mendeley {
+  mendeley = libsForQt514.callPackage ../applications/office/mendeley {
     gconf = pkgs.gnome2.GConf;
   };
 
@@ -20948,7 +22014,7 @@ in
 
   mercurialFull = appendToName "full" (pkgs.mercurial.override { guiSupport = true; });
 
-  merkaartor = libsForQt5.callPackage ../applications/misc/merkaartor { };
+  merkaartor = libsForQt514.callPackage ../applications/misc/merkaartor { };
 
   meshlab = libsForQt5.callPackage ../applications/graphics/meshlab { };
 
@@ -20977,7 +22043,7 @@ in
 
   minishift = callPackage ../applications/networking/cluster/minishift { };
 
-  minitube = libsForQt5.callPackage ../applications/video/minitube { };
+  minitube = libsForQt514.callPackage ../applications/video/minitube { };
 
   mimic = callPackage ../applications/audio/mimic { };
 
@@ -21016,6 +22082,8 @@ in
 
   xmrig-proxy = callPackage ../applications/misc/xmrig/proxy.nix { };
 
+  molot-lite = callPackage ../applications/audio/molot-lite { };
+
   monkeysAudio = callPackage ../applications/audio/monkeys-audio { };
 
   monkeysphere = callPackage ../tools/security/monkeysphere { };
@@ -21037,6 +22105,8 @@ in
 
   moonlight-embedded = callPackage ../applications/misc/moonlight-embedded { };
 
+  mooSpace = callPackage ../applications/audio/mooSpace { };
+
   mop = callPackage ../applications/misc/mop { };
 
   mopidyPackages = callPackages ../applications/audio/mopidy/default.nix {
@@ -21058,6 +22128,7 @@ in
     mopidy-soundcloud
     mopidy-spotify
     mopidy-spotify-tunigo
+    mopidy-tunein
     mopidy-youtube;
 
   motif = callPackage ../development/libraries/motif { };
@@ -21106,6 +22177,8 @@ in
 
   normalize = callPackage ../applications/audio/normalize { };
 
+  mailspring = callPackage ../applications/networking/mailreaders/mailspring {};
+
   mm = callPackage ../applications/networking/instant-messengers/mm { };
 
   mm-common = callPackage ../development/libraries/mm-common { };
@@ -21128,9 +22201,11 @@ in
   mpv = wrapMpv mpv-unwrapped {};
 
   mpvScripts = recurseIntoAttrs {
+    autoload = callPackage ../applications/video/mpv/scripts/autoload.nix {};
     convert = callPackage ../applications/video/mpv/scripts/convert.nix {};
     mpris = callPackage ../applications/video/mpv/scripts/mpris.nix {};
     simple-mpv-webui = callPackage ../applications/video/mpv/scripts/simple-mpv-webui.nix {};
+    sponsorblock = callPackage ../applications/video/mpv/scripts/sponsorblock.nix {};
   };
 
   mrpeach = callPackage ../applications/audio/pd-plugins/mrpeach { };
@@ -21151,6 +22226,7 @@ in
       avahi = avahi-compat;
       pulseSupport = config.pulseaudio or false;
       iceSupport = config.murmur.iceSupport or true;
+      grpcSupport = config.murmur.grpcSupport or true;
     }).murmur;
 
   mumble = (callPackages ../applications/networking/mumble {
@@ -21158,6 +22234,7 @@ in
       jackSupport = config.mumble.jackSupport or false;
       speechdSupport = config.mumble.speechdSupport or false;
       pulseSupport = config.pulseaudio or stdenv.isLinux;
+      qt5 = qt514;
     }).mumble;
 
   mumble_overlay = callPackage ../applications/networking/mumble/overlay.nix {
@@ -21173,7 +22250,7 @@ in
     if stdenv.isDarwin then
       callPackage ../applications/audio/musescore/darwin.nix { }
     else
-      libsForQt5.callPackage ../applications/audio/musescore { };
+      libsForQt514.callPackage ../applications/audio/musescore { };
 
   mmh = callPackage ../applications/networking/mailreaders/mmh { };
   mutt = callPackage ../applications/networking/mailreaders/mutt { };
@@ -21193,7 +22270,7 @@ in
 
   neocomp  = callPackage ../applications/window-managers/neocomp { };
 
-  netease-cloud-music = callPackage ../applications/audio/netease-cloud-music {};
+  newsflash = callPackage ../applications/networking/feedreaders/newsflash { };
 
   nicotine-plus = callPackage ../applications/networking/soulseek/nicotine-plus {
     geoip = geoipWithDatabase;
@@ -21201,15 +22278,21 @@ in
 
   nixos-shell = callPackage ../tools/virtualization/nixos-shell {};
 
+  noaa-apt = callPackage ../applications/radio/noaa-apt { };
+
   node-problem-detector = callPackage ../applications/networking/cluster/node-problem-detector { };
 
   ninjas2 = callPackage ../applications/audio/ninjas2 {};
 
+  nncp = callPackage ../tools/misc/nncp { };
+
   notion = callPackage ../applications/window-managers/notion { };
 
   nootka = qt5.callPackage ../applications/audio/nootka { };
   nootka-unstable = qt5.callPackage ../applications/audio/nootka/unstable.nix { };
 
+  nwg-launchers = callPackage ../applications/misc/nwg-launchers { };
+
   open-policy-agent = callPackage ../development/tools/open-policy-agent { };
 
   openshift = callPackage ../applications/networking/cluster/openshift { };
@@ -21218,12 +22301,19 @@ in
 
   osm2pgsql = callPackage ../tools/misc/osm2pgsql { };
 
-  ostinato = callPackage ../applications/networking/ostinato { };
+  ostinato = callPackage ../applications/networking/ostinato {
+    wireshark = wireshark.override { qt5 = qt514; };
+  };
 
-  p4v = libsForQt5.callPackage ../applications/version-management/p4v { };
+  p4 = callPackage ../applications/version-management/p4 { };
+  p4v = libsForQt514.callPackage ../applications/version-management/p4v { };
 
   partio = callPackage ../development/libraries/partio {};
 
+  pc-ble-driver = callPackage ../development/libraries/pc-ble-driver {
+    inherit (darwin.apple_sdk.frameworks) IOKit;
+  };
+
   pbis-open = callPackage ../tools/security/pbis { };
 
   pcmanfm = callPackage ../applications/misc/pcmanfm { };
@@ -21263,7 +22353,7 @@ in
     i3GapsSupport = false;
   };
 
-  polyphone = libsForQt5.callPackage ../applications/audio/polyphone { };
+  polyphone = libsForQt514.callPackage ../applications/audio/polyphone { };
 
   portfolio = callPackage ../applications/office/portfolio {
     jre = openjdk11;
@@ -21273,11 +22363,11 @@ in
 
   qbec = callPackage ../applications/networking/cluster/qbec { };
 
-  rssguard = libsForQt5.callPackage ../applications/networking/feedreaders/rssguard { };
+  rssguard = libsForQt514.callPackage ../applications/networking/feedreaders/rssguard { };
 
   scudcloud = callPackage ../applications/networking/instant-messengers/scudcloud { };
 
-  shotcut = libsForQt5.callPackage ../applications/video/shotcut {
+  shotcut = libsForQt514.callPackage ../applications/video/shotcut {
     libmlt = mlt;
   };
 
@@ -21294,11 +22384,9 @@ in
     };
   };
 
-  sky = callPackage ../applications/networking/instant-messengers/sky {};
-
   smplayer = libsForQt5.callPackage ../applications/video/smplayer { };
 
-  smtube = libsForQt5.callPackage ../applications/video/smtube {};
+  smtube = libsForQt514.callPackage ../applications/video/smtube {};
 
   softmaker-office = callPackage ../applications/office/softmaker/softmaker_office.nix {};
 
@@ -21319,7 +22407,7 @@ in
   };
 
   synfigstudio = callPackage ../applications/graphics/synfigstudio {
-    mlt-qt5 = libsForQt5.mlt;
+    mlt-qt5 = libsForQt514.mlt;
   };
 
   typora = callPackage ../applications/editors/typora { };
@@ -21348,7 +22436,7 @@ in
 
   imapfilter = callPackage ../applications/networking/mailreaders/imapfilter.nix {
     lua = lua5;
- };
+  };
 
   maxlib = callPackage ../applications/audio/pd-plugins/maxlib { };
 
@@ -21376,9 +22464,7 @@ in
 
   mypaint-brushes = callPackage ../development/libraries/mypaint-brushes { };
 
-  mythtv = libsForQt5.callPackage ../applications/video/mythtv {
-    libXNVCtrl = linuxPackages.nvidia_x11.settings.libXNVCtrl;
-  };
+  mythtv = libsForQt514.callPackage ../applications/video/mythtv { };
 
   micro = callPackage ../applications/editors/micro { };
 
@@ -21421,7 +22507,7 @@ in
 
   nomacs = libsForQt5.callPackage ../applications/graphics/nomacs { };
 
-  notepadqq = libsForQt5.callPackage ../applications/editors/notepadqq { };
+  notepadqq = libsForQt514.callPackage ../applications/editors/notepadqq { };
 
   notbit = callPackage ../applications/networking/mailreaders/notbit { };
 
@@ -21450,13 +22536,15 @@ in
 
   obs-linuxbrowser = callPackage ../applications/video/obs-studio/linuxbrowser.nix { };
 
-  obs-studio = libsForQt5.callPackage ../applications/video/obs-studio { };
+  obs-studio = libsForQt514.callPackage ../applications/video/obs-studio { };
 
   obs-wlrobs = callPackage ../applications/video/obs-studio/wlrobs.nix { };
 
-  obs-v4l2sink = libsForQt5.callPackage ../applications/video/obs-studio/v4l2sink.nix { };
+  obs-v4l2sink = libsForQt514.callPackage ../applications/video/obs-studio/v4l2sink.nix { };
 
-  obs-ndi = callPackage ../applications/video/obs-studio/obs-ndi.nix { };
+  obs-ndi = libsForQt514.callPackage ../applications/video/obs-studio/obs-ndi.nix { };
+
+  obsidian = callPackage ../applications/misc/obsidian { };
 
   octoprint = callPackage ../applications/misc/octoprint { };
 
@@ -21474,6 +22562,8 @@ in
 
   inherit (python3Packages.callPackage ../applications/networking/onionshare { }) onionshare onionshare-gui;
 
+  openambit = qt5.callPackage ../applications/misc/openambit { };
+
   openbox = callPackage ../applications/window-managers/openbox { };
 
   openbox-menu = callPackage ../applications/misc/openbox-menu {
@@ -21492,12 +22582,16 @@ in
 
   openjump = callPackage ../applications/misc/openjump { };
 
-  openorienteering-mapper = libsForQt5.callPackage ../applications/gis/openorienteering-mapper { };
+  openorienteering-mapper = libsForQt514.callPackage ../applications/gis/openorienteering-mapper { };
 
   openscad = libsForQt5.callPackage ../applications/graphics/openscad {};
 
   opentimestamps-client = python3Packages.callPackage ../tools/misc/opentimestamps-client {};
 
+  opentoonz = (qt514.overrideScope' (_: _: {
+    libtiff = callPackage ../applications/graphics/opentoonz/libtiff.nix { };
+  })).callPackage ../applications/graphics/opentoonz { };
+
   opentx = libsForQt5.callPackage ../applications/misc/opentx { };
 
   opera = callPackage ../applications/networking/browsers/opera {};
@@ -21516,6 +22610,11 @@ in
 
   osmium-tool = callPackage ../applications/misc/osmium-tool { };
 
+  osu-lazer = callPackage ../games/osu-lazer {
+    dotnet-sdk = dotnetCorePackages.sdk_3_1;
+    dotnet-netcore = dotnetCorePackages.netcore_3_1;
+  };
+
   owamp = callPackage ../applications/networking/owamp { };
 
   vivaldi = callPackage ../applications/networking/browsers/vivaldi {};
@@ -21546,6 +22645,8 @@ in
     stdenv = gcc7Stdenv;
   };
 
+  webbrowser = callPackage ../applications/networking/browsers/webbrowser {};
+
   pamix = callPackage ../applications/audio/pamix { };
 
   pamixer = callPackage ../applications/audio/pamixer { };
@@ -21596,7 +22697,9 @@ in
   };
 
   pdfcpu = callPackage ../applications/graphics/pdfcpu { };
-  pdftk = callPackage ../tools/typesetting/pdftk { };
+  pdftk = callPackage ../tools/typesetting/pdftk {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
   pdftk-legacy = lowPrio (callPackage ../tools/typesetting/pdftk/legacy.nix { });
   pdfgrep  = callPackage ../tools/typesetting/pdfgrep { };
 
@@ -21630,6 +22733,8 @@ in
     inherit (darwin.apple_sdk.frameworks) IOKit;
   };
 
+  picoloop = callPackage ../applications/audio/picoloop { };
+
   pidgin = callPackage ../applications/networking/instant-messengers/pidgin {
     openssl = if config.pidgin.openssl or true then openssl else null;
     gnutls = if config.pidgin.gnutls or false then gnutls else null;
@@ -21700,11 +22805,13 @@ in
 
   pistol = callPackage ../tools/misc/pistol { };
 
+  plexamp = callPackage ../applications/audio/plexamp { };
+
   plex-media-player = libsForQt512.callPackage ../applications/video/plex-media-player { };
 
   plex-mpv-shim = python3Packages.callPackage ../applications/video/plex-mpv-shim { };
 
-  plover = recurseIntoAttrs (libsForQt5.callPackage ../applications/misc/plover { });
+  plover = recurseIntoAttrs (libsForQt514.callPackage ../applications/misc/plover { });
 
   plugin-torture = callPackage ../applications/audio/plugin-torture { };
 
@@ -21714,7 +22821,9 @@ in
 
   pommed_light = callPackage ../os-specific/linux/pommed-light {};
 
-  polymake = callPackage ../applications/science/math/polymake { };
+  polymake = callPackage ../applications/science/math/polymake {
+    openjdk = openjdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   pond = callPackage ../applications/networking/instant-messengers/pond { };
 
@@ -21746,13 +22855,13 @@ in
 
   protonvpn-cli = callPackage ../applications/networking/protonvpn-cli { };
 
-  protonvpn-cli-ng = callPackage ../applications/networking/protonvpn-cli-ng { };
+  protonvpn-gui = callPackage ../applications/networking/protonvpn-gui { };
 
   ps2client = callPackage ../applications/networking/ps2client { };
 
-  psi = libsForQt5.callPackage ../applications/networking/instant-messengers/psi { };
+  psi = libsForQt514.callPackage ../applications/networking/instant-messengers/psi { };
 
-  psi-plus = libsForQt5.callPackage ../applications/networking/instant-messengers/psi-plus { };
+  psi-plus = libsForQt514.callPackage ../applications/networking/instant-messengers/psi-plus { };
 
   psol = callPackage ../development/libraries/psol { };
 
@@ -21766,7 +22875,7 @@ in
 
   pulseaudio-dlna = callPackage ../applications/audio/pulseaudio-dlna { };
 
-  pulseview = libsForQt5.callPackage ../applications/science/electronics/pulseview { };
+  pulseview = libsForQt514.callPackage ../applications/science/electronics/pulseview { };
 
   puredata = callPackage ../applications/audio/puredata { };
   puredata-with-plugins = plugins: callPackage ../applications/audio/puredata/wrapper.nix { inherit plugins; };
@@ -21799,7 +22908,7 @@ in
 
   qemu-utils = callPackage ../applications/virtualization/qemu/utils.nix {};
 
-  qgis-unwrapped = libsForQt5.callPackage ../applications/gis/qgis/unwrapped.nix {
+  qgis-unwrapped = libsForQt514.callPackage ../applications/gis/qgis/unwrapped.nix {
       withGrass = false;
   };
 
@@ -21811,11 +22920,11 @@ in
 
   qimgv = libsForQt5.callPackage ../applications/graphics/qimgv { };
 
-  qlandkartegt = libsForQt5.callPackage ../applications/misc/qlandkartegt {};
+  qlandkartegt = libsForQt514.callPackage ../applications/misc/qlandkartegt {};
 
   garmindev = callPackage ../applications/misc/qlandkartegt/garmindev.nix {};
 
-  qmapshack = libsForQt5.callPackage ../applications/misc/qmapshack { };
+  qmapshack = libsForQt514.callPackage ../applications/misc/qmapshack { };
 
   qmediathekview = libsForQt5.callPackage ../applications/video/qmediathekview {
     boost = boost17x;
@@ -21831,7 +22940,7 @@ in
 
   qmmp = libsForQt5.callPackage ../applications/audio/qmmp { };
 
-  qnotero = libsForQt5.callPackage ../applications/office/qnotero { };
+  qnotero = libsForQt514.callPackage ../applications/office/qnotero { };
 
   qrcode = callPackage ../tools/graphics/qrcode {};
 
@@ -21844,7 +22953,7 @@ in
 
   qsstv = qt5.callPackage ../applications/radio/qsstv { };
 
-  qsyncthingtray = libsForQt5.callPackage ../applications/misc/qsyncthingtray { };
+  qsyncthingtray = libsForQt514.callPackage ../applications/misc/qsyncthingtray { };
 
   qstopmotion = libsForQt5.callPackage ../applications/video/qstopmotion {
     guvcview = guvcview.override {
@@ -21892,9 +23001,9 @@ in
 
   quilter = callPackage ../applications/editors/quilter { };
 
-  quiterss = libsForQt5.callPackage ../applications/networking/newsreaders/quiterss {};
+  quiterss = libsForQt514.callPackage ../applications/networking/newsreaders/quiterss {};
 
-  falkon = libsForQt5.callPackage ../applications/networking/browsers/falkon { };
+  falkon = libsForQt514.callPackage ../applications/networking/browsers/falkon { };
 
   quodlibet = callPackage ../applications/audio/quodlibet {
     keybinder3 = null;
@@ -21925,7 +23034,15 @@ in
 
   quodlibet-xine-full = quodlibet-full.override { xineBackend = true; tag = "-xine-full"; };
 
-  qutebrowser = libsForQt5.callPackage ../applications/networking/browsers/qutebrowser { };
+  qutebrowser = let
+    pkgs_ = pkgs.extend(_: prev: {
+      pythonInterpreters = prev.pythonInterpreters.override(oldAttrs: {
+        pkgs = oldAttrs.pkgs.extend(_: _: {
+          inherit (pkgs) qt5 libsForQt5;
+        });
+      });
+    });
+  in pkgs_.libsForQt5.callPackage ../applications/networking/browsers/qutebrowser { };
 
   rabbitvcs = callPackage ../applications/version-management/rabbitvcs {};
 
@@ -21943,9 +23060,9 @@ in
 
   raiseorlaunch = callPackage ../applications/misc/raiseorlaunch {};
 
-  rapcad = libsForQt5.callPackage ../applications/graphics/rapcad { boost = boost159; };
+  rapcad = libsForQt514.callPackage ../applications/graphics/rapcad { boost = boost159; };
 
-  rapid-photo-downloader = libsForQt5.callPackage ../applications/graphics/rapid-photo-downloader { };
+  rapid-photo-downloader = libsForQt514.callPackage ../applications/graphics/rapid-photo-downloader { };
 
   rapidsvn = callPackage ../applications/version-management/rapidsvn { };
 
@@ -21961,7 +23078,7 @@ in
 
   rclone = callPackage ../applications/networking/sync/rclone { };
 
-  rclone-browser = libsForQt5.callPackage ../applications/networking/sync/rclone/browser.nix { };
+  rclone-browser = libsForQt514.callPackage ../applications/networking/sync/rclone/browser.nix { };
 
   rcs = callPackage ../applications/version-management/rcs { };
 
@@ -21981,7 +23098,7 @@ in
 
   remotebox = callPackage ../applications/virtualization/remotebox { };
 
-  retroshare = libsForQt5.callPackage ../applications/networking/p2p/retroshare { };
+  retroshare = libsForQt514.callPackage ../applications/networking/p2p/retroshare { };
   retroshare06 = retroshare;
 
   rgp = libsForQt5.callPackage ../development/tools/rgp { };
@@ -22007,13 +23124,14 @@ in
 
   rootlesskit = callPackage ../tools/virtualization/rootlesskit {};
 
-  rpcs3 = libsForQt5.callPackage ../misc/emulators/rpcs3 { };
+  rpcs3 = libsForQt514.callPackage ../misc/emulators/rpcs3 { };
 
   rsclock = callPackage ../applications/misc/rsclock { };
 
-  rstudio = libsForQt5.callPackage ../applications/editors/rstudio {
+  rstudio = libsForQt514.callPackage ../applications/editors/rstudio {
     boost = boost166;
     llvmPackages = llvmPackages_7;
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
 
   rsync = callPackage ../applications/networking/sync/rsync (config.rsync or {});
@@ -22045,15 +23163,19 @@ in
 
   udiskie = callPackage ../applications/misc/udiskie { };
 
+  sacc = callPackage ../applications/networking/gopher/sacc { };
+
   sakura = callPackage ../applications/misc/sakura { };
 
-  sayonara = libsForQt5.callPackage ../applications/audio/sayonara { };
+  sameboy = callPackage ../misc/emulators/sameboy { };
+
+  sayonara = libsForQt514.callPackage ../applications/audio/sayonara { };
 
   sbagen = callPackage ../applications/misc/sbagen { };
 
   scantailor = callPackage ../applications/graphics/scantailor { };
 
-  scantailor-advanced = qt5.callPackage ../applications/graphics/scantailor/advanced.nix { };
+  scantailor-advanced = libsForQt514.callPackage ../applications/graphics/scantailor/advanced.nix { };
 
   sc-im = callPackage ../applications/misc/sc-im { };
 
@@ -22063,18 +23185,16 @@ in
     inherit (gnome2) libart_lgpl;
   };
 
-  scribusUnstable = libsForQt5.callPackage ../applications/office/scribus/unstable.nix { };
+  scribusUnstable = libsForQt514.callPackage ../applications/office/scribus/unstable.nix { };
 
-  seafile-client = libsForQt5.callPackage ../applications/networking/seafile-client { };
-
-  seeks = callPackage ../tools/networking/p2p/seeks {
-    protobuf = protobuf3_1;
-  };
+  seafile-client = libsForQt514.callPackage ../applications/networking/seafile-client { };
 
   sent = callPackage ../applications/misc/sent { };
 
   seq24 = callPackage ../applications/audio/seq24 { };
 
+  seq66 = qt5.callPackage ../applications/audio/seq66 { };
+
   setbfree = callPackage ../applications/audio/setbfree { };
 
   sfizz = callPackage ../applications/audio/sfizz { };
@@ -22173,8 +23293,13 @@ in
 
   linuxstopmotion = callPackage ../applications/video/linuxstopmotion { };
 
-  sweethome3d = recurseIntoAttrs (  (callPackage ../applications/misc/sweethome3d { })
+  sweethome3d = recurseIntoAttrs (  (callPackage ../applications/misc/sweethome3d {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  })
                                  // (callPackage ../applications/misc/sweethome3d/editors.nix {
+                                      jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+                                      jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
                                       sweethome3dApp = sweethome3d.application;
                                     })
                                  );
@@ -22189,9 +23314,9 @@ in
 
   dropbox-cli = callPackage ../applications/networking/dropbox/cli.nix { };
 
-  maestral = callPackage ../applications/networking/maestral { };
+  maestral = with python3Packages; toPythonApplication maestral;
 
-  maestral-gui = libsForQt5.callPackage ../applications/networking/maestral { withGui = true; };
+  maestral-gui = libsForQt5.callPackage ../applications/networking/maestral-qt { };
 
   insync = callPackage ../applications/networking/insync { };
 
@@ -22228,11 +23353,11 @@ in
 
   curaengine = callPackage ../applications/misc/curaengine { inherit (python3.pkgs) libarcus; };
 
-  cura = qt5.callPackage ../applications/misc/cura { };
+  cura = libsForQt514.callPackage ../applications/misc/cura { };
 
   curaPlugins = callPackage ../applications/misc/cura/plugins.nix { };
 
-  curaLulzbot = qt5.callPackage ../applications/misc/cura/lulzbot/default.nix { };
+  curaLulzbot = libsForQt514.callPackage ../applications/misc/cura/lulzbot/default.nix { };
 
   curaByDagoma = callPackage ../applications/misc/curabydagoma { };
 
@@ -22246,9 +23371,13 @@ in
 
   prusa-slicer = callPackage ../applications/misc/prusa-slicer { };
 
-  sddm = libsForQt5.callPackage ../applications/display-managers/sddm { };
+  super-slicer = callPackage ../applications/misc/prusa-slicer/super-slicer.nix { };
+
+  robustirc-bridge = callPackage ../servers/irc/robustirc-bridge { };
 
-  skrooge = libsForQt5.callPackage ../applications/office/skrooge {};
+  sddm = libsForQt514.callPackage ../applications/display-managers/sddm { };
+
+  skrooge = libsForQt514.callPackage ../applications/office/skrooge {};
 
   smartgithg = callPackage ../applications/version-management/smartgithg {
     jre = openjdk11;
@@ -22264,11 +23393,11 @@ in
 
   sipp = callPackage ../development/tools/misc/sipp { };
 
-  skanlite = libsForQt5.callPackage ../applications/office/skanlite { };
+  skanlite = libsForQt514.callPackage ../applications/office/skanlite { };
 
   soci = callPackage ../development/libraries/soci { };
 
-  sonic-lineup = libsForQt5.callPackage ../applications/audio/sonic-lineup { };
+  sonic-lineup = libsForQt514.callPackage ../applications/audio/sonic-lineup { };
 
   sonic-visualiser = libsForQt5.callPackage ../applications/audio/sonic-visualiser { };
 
@@ -22282,7 +23411,7 @@ in
 
   spek = callPackage ../applications/audio/spek { };
 
-  spotify = callPackage ../applications/audio/spotify {
+  spotify-unwrapped = callPackage ../applications/audio/spotify {
     libgcrypt = libgcrypt_1_5;
     libpng = libpng12;
     curl = curl.override {
@@ -22290,6 +23419,8 @@ in
     };
   };
 
+  spotify = callPackage ../applications/audio/spotify/wrapper.nix { };
+
   libspotify = callPackage ../development/libraries/libspotify (config.libspotify or {});
 
   sourcetrail = callPackage ../development/tools/sourcetrail { };
@@ -22304,6 +23435,8 @@ in
     git = gitMinimal;
   };
 
+  sslyze = with python3Packages; toPythonApplication sslyze;
+
   ssr = callPackage ../applications/audio/soundscape-renderer {};
 
   ssrc = callPackage ../applications/audio/ssrc { };
@@ -22314,10 +23447,7 @@ in
 
   stp = callPackage ../applications/science/logic/stp { };
 
-  stretchly = callPackage ../applications/misc/stretchly {
-    # Error on launch w/electron_8
-    electron = electron_7;
-  };
+  stretchly = callPackage ../applications/misc/stretchly { };
 
   stumpish = callPackage ../applications/window-managers/stumpish {};
 
@@ -22351,17 +23481,24 @@ in
     pythonBindings = true;
   });
 
+  sublime-music = callPackage ../applications/audio/sublime-music { };
+
   subunit = callPackage ../development/libraries/subunit { };
 
   surf = callPackage ../applications/networking/browsers/surf { gtk = gtk2; };
 
   surf-display = callPackage ../desktops/surf-display { };
 
+  surge = callPackage ../applications/audio/surge {
+    inherit (gnome3) zenity;
+    git = gitMinimal;
+  };
+
   sunvox = callPackage ../applications/audio/sunvox { };
 
   swh_lv2 = callPackage ../applications/audio/swh-lv2 { };
 
-  swift-im = libsForQt5.callPackage ../applications/networking/instant-messengers/swift-im {
+  swift-im = libsForQt514.callPackage ../applications/networking/instant-messengers/swift-im {
     inherit (gnome2) GConf;
     boost = boost168;
   };
@@ -22370,7 +23507,8 @@ in
 
   symlinks = callPackage ../tools/system/symlinks { };
 
-  syncplay = python3.pkgs.callPackage ../applications/networking/syncplay { };
+  # this can be changed to python3 once pyside2 is updated to support the latest python version
+  syncplay = python37.pkgs.callPackage ../applications/networking/syncplay { };
 
   inherit (callPackages ../applications/networking/syncthing { })
     syncthing
@@ -22418,14 +23556,20 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  talentedhack = callPackage ../applications/audio/talentedhack { };
+
   tambura = callPackage ../applications/audio/tambura { };
 
+  tamgamp.lv2 = callPackage ../applications/audio/tamgamp.lv2 { };
+
+  tanka = callPackage ../applications/networking/cluster/tanka { };
+
   teams = callPackage ../applications/networking/instant-messengers/teams { };
 
   teamspeak_client = libsForQt512.callPackage ../applications/networking/instant-messengers/teamspeak/client.nix { };
   teamspeak_server = callPackage ../applications/networking/instant-messengers/teamspeak/server.nix { };
 
-  taskell = callPackage ../applications/misc/taskell { };
+  taskell = haskell.lib.justStaticExecutables haskellPackages.taskell;
 
   taskjuggler = callPackage ../applications/misc/taskjuggler { };
 
@@ -22469,6 +23613,8 @@ in
 
   terminus = callPackage ../applications/misc/terminus { };
 
+  tty-solitaire = callPackage ../applications/misc/tty-solitaire { };
+
   lxterminal = callPackage ../applications/misc/lxterminal { };
 
   aminal = callPackage ../applications/misc/aminal {
@@ -22512,10 +23658,9 @@ in
 
   thunderbolt = callPackage ../os-specific/linux/thunderbolt {};
 
-  thunderbird-bin = callPackage ../applications/networking/mailreaders/thunderbird-bin {
-    gconf = pkgs.gnome2.GConf;
-    inherit (pkgs.gnome2) libgnome libgnomeui;
-  };
+  thunderbird-bin-78 = callPackage ../applications/networking/mailreaders/thunderbird-bin { };
+
+  thunderbird-bin = callPackage ../applications/networking/mailreaders/thunderbird-bin/68.nix { };
 
   ticpp = callPackage ../development/libraries/ticpp { };
 
@@ -22535,7 +23680,9 @@ in
 
   tint2 = callPackage ../applications/misc/tint2 { };
 
-  tiny = callPackage ../applications/networking/irc/tiny { };
+  tiny = callPackage ../applications/networking/irc/tiny {
+    inherit (darwin.apple_sdk.frameworks) Foundation;
+  };
 
   tipp10 = qt5.callPackage ../applications/misc/tipp10 { };
 
@@ -22563,7 +23710,7 @@ in
 
   todoman = callPackage ../applications/office/todoman { };
 
-  toggldesktop = libsForQt5.callPackage ../applications/misc/toggldesktop { };
+  toggldesktop = libsForQt514.callPackage ../applications/misc/toggldesktop { };
 
   topydo = callPackage ../applications/misc/topydo {};
 
@@ -22575,7 +23722,7 @@ in
 
   tortoisehg = callPackage ../applications/version-management/tortoisehg { };
 
-  tony = libsForQt5.callPackage ../applications/audio/tony { };
+  tony = libsForQt514.callPackage ../applications/audio/tony { };
 
   toot = callPackage ../applications/misc/toot { };
 
@@ -22590,8 +23737,6 @@ in
 
   transcode = callPackage ../applications/audio/transcode { };
 
-  transcribe = callPackage ../applications/audio/transcribe { };
-
   transmission = callPackage ../applications/networking/p2p/transmission { };
   transmission-gtk = transmission.override { enableGTK3 = true; };
   transmission-qt = transmission.override { enableQt = true; };
@@ -22617,14 +23762,20 @@ in
 
   treesheets = callPackage ../applications/office/treesheets { wxGTK = wxGTK31; };
 
+  tremc = callPackage ../applications/networking/p2p/tremc { };
+
   tribler = callPackage ../applications/networking/p2p/tribler { };
 
-  trojita = libsForQt5.callPackage ../applications/networking/mailreaders/trojita {
+  trojita = libsForQt514.callPackage ../applications/networking/mailreaders/trojita {
     inherit (kdeApplications) akonadi-contacts;
   };
 
   tudu = callPackage ../applications/office/tudu { };
 
+  tunefish = callPackage ../applications/audio/tunefish {
+    stdenv = clangStdenv; # https://github.com/jpcima/tunefish/issues/4
+  };
+
   tut = callPackage ../applications/misc/tut { };
 
   tuxguitar = callPackage ../applications/editors/music/tuxguitar { };
@@ -22641,6 +23792,8 @@ in
 
   ueberzug = with python3Packages; toPythonApplication ueberzug;
 
+  uhhyou.lv2 = callPackage ../applications/audio/uhhyou.lv2 { };
+
   umurmur = callPackage ../applications/networking/umurmur { };
 
   udocker = pythonPackages.callPackage ../tools/virtualization/udocker { };
@@ -22673,12 +23826,14 @@ in
 
   utox = callPackage ../applications/networking/instant-messengers/utox { };
 
-  valentina = libsForQt5.callPackage ../applications/misc/valentina { };
+  valentina = libsForQt514.callPackage ../applications/misc/valentina { };
 
   vbindiff = callPackage ../applications/editors/vbindiff { };
 
   vcprompt = callPackage ../applications/version-management/vcprompt { };
 
+  vcs = callPackage ../applications/video/vcs { };
+
   vcv-rack = callPackage ../applications/audio/vcv-rack { };
 
   vdirsyncer = with python3Packages; toPythonApplication vdirsyncer;
@@ -22710,18 +23865,12 @@ in
 
   vimacs = callPackage ../applications/editors/vim/vimacs.nix { };
 
-  qpdfview = libsForQt5.callPackage ../applications/misc/qpdfview {};
+  qpdfview = libsForQt514.callPackage ../applications/misc/qpdfview {};
 
   qtile = callPackage ../applications/window-managers/qtile {
     inherit (xorg) libxcb;
   };
 
-  qvim = lowPrio (callPackage ../applications/editors/vim/qvim.nix {
-    features = "huge"; # one of  tiny, small, normal, big or huge
-    lua = pkgs.lua5;
-    flags = [ "python" "X11" ]; # only flag "X11" by now
-  });
-
   vimpc = callPackage ../applications/audio/vimpc { };
 
   wrapNeovim = callPackage ../applications/editors/neovim/wrapper.nix { };
@@ -22735,7 +23884,9 @@ in
 
   neovim = wrapNeovim neovim-unwrapped { };
 
-  neovim-qt = libsForQt5.callPackage ../applications/editors/neovim/qt.nix { };
+  neovim-qt = libsForQt514.callPackage ../applications/editors/neovim/qt.nix { };
+
+  olifant = callPackage ../applications/misc/olifant { };
 
   gnvim-unwrapped = callPackage ../applications/editors/neovim/gnvim {
     gtk = pkgs.gtk3;
@@ -22749,6 +23900,8 @@ in
     inherit (lua52Packages) lpeg;
   };
 
+  viw = callPackage ../applications/editors/viw { };
+
   virt-viewer = callPackage ../applications/virtualization/virt-viewer { };
 
   virt-top = callPackage ../applications/virtualization/virt-top { };
@@ -22759,7 +23912,7 @@ in
     system-libvirt = libvirt;
   };
 
-  virt-manager-qt = libsForQt5.callPackage ../applications/virtualization/virt-manager/qt.nix {
+  virt-manager-qt = libsForQt514.callPackage ../applications/virtualization/virt-manager/qt.nix {
     qtermwidget = lxqt.qtermwidget;
   };
 
@@ -22767,9 +23920,12 @@ in
 
   virtscreen = callPackage ../tools/admin/virtscreen {};
 
-  virtualbox = libsForQt5.callPackage ../applications/virtualization/virtualbox {
+  virtual-ans = callPackage ../applications/audio/virtual-ans {};
+
+  virtualbox = libsForQt514.callPackage ../applications/virtualization/virtualbox {
     stdenv = stdenv_32bit;
     inherit (gnome2) libIDL;
+    jdk = openjdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
 
   virtualboxHardened = lowPrio (virtualbox.override {
@@ -22824,12 +23980,23 @@ in
 
   vkeybd = callPackage ../applications/audio/vkeybd {};
 
-  vlc = libsForQt5.vlc;
+  vlc = libsForQt514.callPackage ../applications/video/vlc {};
 
   vlc_qt5 = vlc;
 
+  libvlc = vlc.override {
+    withQt5 = false;
+    qtbase = null;
+    qtsvg = null;
+    qtx11extras = null;
+    wrapQtAppsHook = null;
+    onlyLibVLC = true;
+  };
+
   vmpk = callPackage ../applications/audio/vmpk { };
 
+  vocproc = callPackage ../applications/audio/vocproc { };
+
   vnstat = callPackage ../applications/networking/vnstat { };
 
   vocal = callPackage ../applications/audio/vocal { };
@@ -22850,9 +24017,14 @@ in
 
   vscodium = callPackage ../applications/editors/vscode/vscodium.nix { };
 
+  code-server = callPackage ../servers/code-server { };
+
   vue = callPackage ../applications/misc/vue { };
 
-  vuze = callPackage ../applications/networking/p2p/vuze { };
+  vuze = callPackage ../applications/networking/p2p/vuze {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   vwm = callPackage ../applications/window-managers/vwm { };
 
@@ -22900,9 +24072,9 @@ in
 
   wayvnc = callPackage ../applications/networking/remote/wayvnc { };
 
-  webcamoid = libsForQt5.callPackage ../applications/video/webcamoid { };
+  webcamoid = libsForQt514.callPackage ../applications/video/webcamoid { };
 
-  webmacs = libsForQt5.callPackage ../applications/networking/browsers/webmacs {};
+  webmacs = libsForQt514.callPackage ../applications/networking/browsers/webmacs {};
 
   webtorrent_desktop = callPackage ../applications/video/webtorrent_desktop {};
 
@@ -22980,7 +24152,7 @@ in
 
   worldengine-cli = python3Packages.worldengine;
 
-  wpsoffice = libsForQt5.callPackage ../applications/office/wpsoffice {};
+  wpsoffice = libsForQt514.callPackage ../applications/office/wpsoffice {};
 
   wrapFirefox = callPackage ../applications/networking/browsers/firefox/wrapper.nix { };
 
@@ -23138,8 +24310,6 @@ in
     libpng = libpng12;
   };
 
-  xara = callPackage ../applications/graphics/xara { };
-
   xastir = callPackage ../applications/misc/xastir {
     rastermagick = imagemagick;
     inherit (xorg) libXt;
@@ -23149,17 +24319,27 @@ in
 
   xawtv = callPackage ../applications/video/xawtv { };
 
+  xbattbar = callPackage ../applications/misc/xbattbar { };
+
   xbindkeys = callPackage ../tools/X11/xbindkeys { };
 
   xbindkeys-config = callPackage ../tools/X11/xbindkeys-config {
     gtk = gtk2;
   };
 
-  kodiPlain = callPackage ../applications/video/kodi { };
+  kodiPlain = callPackage ../applications/video/kodi {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
-  kodiPlainWayland = callPackage ../applications/video/kodi { useWayland = true; };
+  kodiPlainWayland = callPackage ../applications/video/kodi {
+    useWayland = true;
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
-  kodiGBM = callPackage ../applications/video/kodi { useGbm = true; };
+  kodiGBM = callPackage ../applications/video/kodi {
+    useGbm = true;
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   kodiPlugins = recurseIntoAttrs (callPackage ../applications/video/kodi/plugins.nix {});
 
@@ -23355,6 +24535,8 @@ in
 
   xmacro = callPackage ../tools/X11/xmacro { };
 
+  xmenu = callPackage ../applications/misc/xmenu { };
+
   xmlcopyeditor = callPackage ../applications/editors/xmlcopyeditor { };
 
   xmp = callPackage ../applications/audio/xmp { };
@@ -23365,7 +24547,7 @@ in
     inherit (gnome2) scrollkeeper libglade;
   };
 
-  xygrib = libsForQt5.callPackage ../applications/misc/xygrib/default.nix {};
+  xygrib = libsForQt514.callPackage ../applications/misc/xygrib/default.nix {};
 
   xzgv = callPackage ../applications/graphics/xzgv { };
 
@@ -23399,11 +24581,13 @@ in
 
   youtube-viewer = perlPackages.WWWYoutubeViewer;
 
+  ytalk = callPackage ../applications/networking/instant-messengers/ytalk { };
+
   ytcc = callPackage ../tools/networking/ytcc { };
 
   zam-plugins = callPackage ../applications/audio/zam-plugins { };
 
-  zanshin = libsForQt5.callPackage ../applications/office/zanshin {
+  zanshin = libsForQt514.callPackage ../applications/office/zanshin {
     inherit (kdeApplications) akonadi-calendar akonadi-notes akonadi-search kidentitymanagement kontactinterface kldap;
     inherit (kdeFrameworks) krunner kwallet kcalendarcore;
     boost = boost160;
@@ -23446,7 +24630,7 @@ in
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   };
 
-  zoom-us = libsForQt5.callPackage ../applications/networking/instant-messengers/zoom-us { };
+  zoom-us = libsForQt514.callPackage ../applications/networking/instant-messengers/zoom-us { };
 
   zotero = callPackage ../applications/office/zotero { };
 
@@ -23460,6 +24644,11 @@ in
 
   bitcoin  = libsForQt5.callPackage ../applications/blockchains/bitcoin.nix { miniupnpc = miniupnpc_2; withGui = true; };
   bitcoind = callPackage ../applications/blockchains/bitcoin.nix { miniupnpc = miniupnpc_2; withGui = false; };
+
+  bitcoind-knots = callPackage ../applications/blockchains/bitcoin-knots.nix { miniupnpc = miniupnpc_2; };
+
+  cgminer = callPackage ../applications/blockchains/cgminer { };
+
   clightning = callPackage ../applications/blockchains/clightning.nix { };
 
   bitcoin-abc  = libsForQt5.callPackage ../applications/blockchains/bitcoin-abc.nix { boost = boost165; withGui = true; };
@@ -23469,7 +24658,7 @@ in
     withGui = false;
   };
 
-  bitcoin-unlimited  = libsForQt5.callPackage ../applications/blockchains/bitcoin-unlimited.nix {
+  bitcoin-unlimited  = libsForQt514.callPackage ../applications/blockchains/bitcoin-unlimited.nix {
     inherit (darwin.apple_sdk.frameworks) Foundation ApplicationServices AppKit;
     withGui = true;
   };
@@ -23478,10 +24667,10 @@ in
     withGui = false;
   };
 
-  bitcoin-classic  = libsForQt5.callPackage ../applications/blockchains/bitcoin-classic.nix { boost = boost165; withGui = true; };
+  bitcoin-classic  = libsForQt514.callPackage ../applications/blockchains/bitcoin-classic.nix { boost = boost165; withGui = true; };
   bitcoind-classic = callPackage ../applications/blockchains/bitcoin-classic.nix { boost = boost165; withGui = false; };
 
-  bitcoin-gold = libsForQt5.callPackage ../applications/blockchains/bitcoin-gold.nix { boost = boost165; withGui = true; };
+  bitcoin-gold = libsForQt514.callPackage ../applications/blockchains/bitcoin-gold.nix { boost = boost165; withGui = true; };
   bitcoind-gold = callPackage ../applications/blockchains/bitcoin-gold.nix { boost = boost165; withGui = false; };
 
   btc1 = callPackage ../applications/blockchains/btc1.nix {
@@ -23490,6 +24679,8 @@ in
   };
   btc1d = btc1.override { withGui = false; };
 
+  btcpayserver = callPackage ../applications/blockchains/btcpayserver { };
+
   cryptop = python3.pkgs.callPackage ../applications/blockchains/cryptop { };
 
   dashpay = callPackage ../applications/blockchains/dashpay.nix { };
@@ -23499,7 +24690,7 @@ in
 
   dero = callPackage ../applications/blockchains/dero.nix { boost = boost165; };
 
-  digibyte = libsForQt5.callPackage ../applications/blockchains/digibyte.nix { withGui = true; };
+  digibyte = libsForQt514.callPackage ../applications/blockchains/digibyte.nix { withGui = true; };
   digibyted = callPackage ../applications/blockchains/digibyte.nix { withGui = false; };
 
   dogecoin  = callPackage ../applications/blockchains/dogecoin.nix { boost = boost165; withGui = true; };
@@ -23519,7 +24710,7 @@ in
 
   ledger-live-desktop = callPackage ../applications/blockchains/ledger-live-desktop { };
 
-  litecoin  = libsForQt5.callPackage ../applications/blockchains/litecoin.nix {
+  litecoin  = libsForQt514.callPackage ../applications/blockchains/litecoin.nix {
     inherit (darwin.apple_sdk.frameworks) AppKit;
   };
   litecoind = litecoin.override { withGui = false; };
@@ -23528,23 +24719,22 @@ in
 
   monero = callPackage ../applications/blockchains/monero {
     inherit (darwin.apple_sdk.frameworks) CoreData IOKit PCSC;
-    pythonProtobuf = python3Packages.protobuf.override { protobuf = protobuf3_10; };
+    boost = boost17x;
   };
 
   monero-gui = libsForQt5.callPackage ../applications/blockchains/monero-gui {
-    boost = boost16x;
-    protobuf = protobuf3_10;
+    boost = boost17x;
   };
 
   masari = callPackage ../applications/blockchains/masari.nix { boost = boost165; };
 
-  mist = callPackage ../applications/blockchains/mist.nix { };
-
   nano-wallet = libsForQt5.callPackage ../applications/blockchains/nano-wallet { };
 
   namecoin  = callPackage ../applications/blockchains/namecoin.nix  { withGui = true; };
   namecoind = callPackage ../applications/blockchains/namecoin.nix { withGui = false; };
 
+  nbxplorer = callPackage ../applications/blockchains/nbxplorer { };
+
   pivx = libsForQt5.callPackage ../applications/blockchains/pivx.nix { withGui = true; };
   pivxd = callPackage ../applications/blockchains/pivx.nix { withGui = false; };
 
@@ -23556,16 +24746,18 @@ in
 
   tessera = callPackage ../applications/blockchains/tessera.nix { };
 
-  vertcoin  = libsForQt5.callPackage ../applications/blockchains/vertcoin.nix { boost = boost165; withGui = true; };
+  vertcoin  = libsForQt514.callPackage ../applications/blockchains/vertcoin.nix { boost = boost165; withGui = true; };
   vertcoind = callPackage ../applications/blockchains/vertcoin.nix { boost = boost165; withGui = false; };
 
   wasabiwallet = callPackage ../applications/blockchains/wasabiwallet { };
 
+  wasabibackend = callPackage ../applications/blockchains/wasabibackend { Nuget = dotnetPackages.Nuget;  };
+
   wownero = callPackage ../applications/blockchains/wownero.nix {};
 
   zcash = callPackage ../applications/blockchains/zcash { };
 
-  parity = callPackage ../applications/blockchains/parity { };
+  openethereum = callPackage ../applications/blockchains/openethereum { };
 
   parity-ui = callPackage ../applications/blockchains/parity-ui { };
 
@@ -23575,6 +24767,8 @@ in
 
   quorum = callPackage ../applications/blockchains/quorum.nix { };
 
+  whirlpool-gui = callPackage ../applications/blockchains/whirlpool-gui { };
+
   ### GAMES
 
   _2048-in-terminal = callPackage ../games/2048-in-terminal { };
@@ -23674,19 +24868,17 @@ in
     inherit (darwin.apple_sdk.frameworks) Carbon CoreServices;
   };
 
-  cataclysm-dda = callPackage ../games/cataclysm-dda {
-    inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa;
-  };
+  cataclysmDDA = callPackage ../games/cataclysm-dda { };
 
-  cataclysm-dda-git = callPackage ../games/cataclysm-dda/git.nix {
-    inherit (darwin.apple_sdk.frameworks) CoreFoundation Cocoa;
-  };
+  cataclysm-dda = cataclysmDDA.stable.tiles;
+
+  cataclysm-dda-git = cataclysmDDA.git.tiles;
 
   chessdb = callPackage ../games/chessdb { };
 
   chessx = libsForQt5.callPackage ../games/chessx { };
 
-  chiaki = libsForQt5.callPackage ../games/chiaki { };
+  chiaki = libsForQt514.callPackage ../games/chiaki { };
 
   chocolateDoom = callPackage ../games/chocolate-doom { };
 
@@ -23738,7 +24930,7 @@ in
 
   dhewm3 = callPackage ../games/dhewm3 {};
 
-  digikam = libsForQt5.callPackage ../applications/graphics/digikam {
+  digikam = libsForQt514.callPackage ../applications/graphics/digikam {
     inherit (plasma5) oxygen;
     inherit (kdeApplications) akonadi-contacts;
     inherit (kdeFrameworks) kcalendarcore;
@@ -23825,7 +25017,7 @@ in
 
   freecell-solver = callPackage ../games/freecell-solver { };
 
-  freeciv = callPackage ../games/freeciv { };
+  freeciv = callPackage ../games/freeciv { qt5 = qt514; };
 
   freeciv_gtk = freeciv.override {
     gtkClient = true;
@@ -23850,9 +25042,13 @@ in
   frozen-bubble = callPackage ../games/frozen-bubble { };
 
   fsg = callPackage ../games/fsg {
-    wxGTK = wxGTK28.override { unicode = false; };
+    wxGTK = wxGTK28.override {
+      unicode = false;
+    };
   };
 
+  fslint = callPackage ../applications/misc/fslint {};
+
   galaxis = callPackage ../games/galaxis { };
 
   gambatte = callPackage ../games/gambatte { };
@@ -23897,6 +25093,8 @@ in
 
   gshogi = python3Packages.callPackage ../games/gshogi {};
 
+  gshhg-gmt = callPackage ../applications/gis/gmt/gshhg.nix { };
+
   qtads = qt5.callPackage ../games/qtads { };
 
   gtetrinet = callPackage ../games/gtetrinet {
@@ -23913,7 +25111,7 @@ in
 
   hawkthorne = callPackage ../games/hawkthorne { love = love_0_9; };
 
-  hedgewars = libsForQt5.callPackage ../games/hedgewars {
+  hedgewars = libsForQt514.callPackage ../games/hedgewars {
     inherit (haskellPackages) ghcWithPackages;
   };
 
@@ -23940,17 +25138,31 @@ in
   katago = callPackage ../games/katago { };
 
   katagoWithCuda = katago.override {
-    cudaSupport = true;
+    enableCuda = true;
     cudnn = cudnn_cudatoolkit_10_2;
     cudatoolkit = cudatoolkit_10_2;
   };
 
+  katagoCPU = katago.override {
+    enableGPU = false;
+  };
+
   klavaro = callPackage ../games/klavaro {};
 
   kobodeluxe = callPackage ../games/kobodeluxe { };
 
+  koboredux = callPackage ../games/koboredux { };
+
+  koboredux-free = callPackage ../games/koboredux {
+    useProprietaryAssets = false;
+  };
+
   leela-zero = libsForQt5.callPackage ../games/leela-zero { };
 
+  legendary-gl = python38Packages.callPackage ../games/legendary-gl { };
+
+  left4gore-bin = callPackage ../games/left4gore { };
+
   lgogdownloader = callPackage ../games/lgogdownloader { };
 
   liberal-crime-squad = callPackage ../games/liberal-crime-squad { };
@@ -24085,6 +25297,11 @@ in
       static = true;
     };
   };
+  openttd-jgrpp = callPackage ../games/openttd/jgrpp.nix {
+    zlib = zlib.override {
+      static = true;
+    };
+  };
 
   opentyrian = callPackage ../games/opentyrian { };
 
@@ -24098,7 +25315,7 @@ in
 
   papermc = callPackage ../games/papermc { };
 
-  pentobi = libsForQt5.callPackage ../games/pentobi { };
+  pentobi = libsForQt514.callPackage ../games/pentobi { };
 
   performous = callPackage ../games/performous {
     boost = boost166;
@@ -24183,11 +25400,11 @@ in
 
   rrootage = callPackage ../games/rrootage { };
 
-  saga = callPackage ../applications/gis/saga {
+  saga = libsForQt514.callPackage ../applications/gis/saga {
     inherit (darwin.apple_sdk.frameworks) Cocoa;
   };
 
-  samplv1 = callPackage ../applications/audio/samplv1 { };
+  samplv1 = callPackage ../applications/audio/samplv1 { qt5 = qt514; };
 
   sauerbraten = callPackage ../games/sauerbraten {};
 
@@ -24221,6 +25438,8 @@ in
 
   service-wrapper = callPackage ../os-specific/linux/service-wrapper { };
 
+  sfrotz = callPackage ../games/sfrotz { };
+
   sgtpuzzles = callPackage (callPackage ../games/sgt-puzzles) { };
 
   shattered-pixel-dungeon = callPackage ../games/shattered-pixel-dungeon { };
@@ -24239,9 +25458,9 @@ in
     lua = lua5_1;
   };
 
-  solarus = libsForQt5.callPackage ../games/solarus { };
-
-  solarus-quest-editor = libsForQt5.callPackage ../development/tools/solarus-quest-editor { };
+  # solarus and solarus-quest-editor must use the same version of Qt.
+  solarus = libsForQt514.callPackage ../games/solarus { };
+  solarus-quest-editor = libsForQt514.callPackage ../development/tools/solarus-quest-editor { };
 
   # You still can override by passing more arguments.
   space-orbit = callPackage ../games/space-orbit { };
@@ -24258,9 +25477,11 @@ in
 
   stockfish = callPackage ../games/stockfish { };
 
-  steamPackages = dontRecurseIntoAttrs (callPackage ../games/steam { });
+  steamPackages = dontRecurseIntoAttrs (callPackage ../games/steam {
+    buildFHSUserEnv = buildFHSUserEnvBubblewrap;
+  });
 
-  steam = steamPackages.steam-chrootenv;
+  steam = steamPackages.steam-fhsenv;
 
   steam-run = steam.run;
   steam-run-native = (steam.override {
@@ -24441,6 +25662,8 @@ in
     tk = tk-8_5;
   };
 
+  xcowsay = callPackage ../games/xcowsay { };
+
   xjump = callPackage ../games/xjump { };
   # TODO: the corresponding nix file is missing
   # xracer = callPackage ../games/xracer { };
@@ -24523,10 +25746,7 @@ in
 
   cinnamon = recurseIntoAttrs (callPackage ../desktops/cinnamon { });
 
-  deepin = recurseIntoAttrs (import ../desktops/deepin {
-    inherit pkgs libsForQt5;
-    inherit (lib) makeScope;
-  });
+  inherit (cinnamon) mint-x-icons mint-y-icons;
 
   enlightenment = recurseIntoAttrs (callPackage ../desktops/enlightenment {
     callPackage = newScope pkgs.enlightenment;
@@ -24546,6 +25766,7 @@ in
     dash-to-panel = callPackage ../desktops/gnome-3/extensions/dash-to-panel { };
     draw-on-your-screen = callPackage ../desktops/gnome-3/extensions/draw-on-your-screen { };
     drop-down-terminal = callPackage ../desktops/gnome-3/extensions/drop-down-terminal { };
+    emoji-selector = callPackage ../desktops/gnome-3/extensions/emoji-selector { };
     gsconnect = callPackage ../desktops/gnome-3/extensions/gsconnect { };
     icon-hider = callPackage ../desktops/gnome-3/extensions/icon-hider { };
     impatience = callPackage ../desktops/gnome-3/extensions/impatience { };
@@ -24580,7 +25801,9 @@ in
   lumina = recurseIntoAttrs (callPackage ../desktops/lumina { });
 
   lxqt = recurseIntoAttrs (import ../desktops/lxqt {
-    inherit pkgs libsForQt5;
+    qt5 = qt514;
+    libsForQt5 = libsForQt514;
+    inherit pkgs;
     inherit (lib) makeScope;
   });
 
@@ -24594,7 +25817,7 @@ in
     inherit (python3Packages) python pygobject3 pyxdg wrapPython;
     inherit (darwin.apple_sdk.frameworks) CoreLocation ApplicationServices Foundation Cocoa;
     geoclue = geoclue2;
-  }) redshift redshift-wlr;
+  }) redshift redshift-wlr gammastep;
 
   redshift-plasma-applet = libsForQt5.callPackage ../applications/misc/redshift-plasma-applet { };
 
@@ -24616,7 +25839,8 @@ in
     let
       mkPlasma5 = import ../desktops/plasma-5;
       attrs = {
-        inherit libsForQt5 lib fetchurl;
+        libsForQt5 = libsForQt514;
+        inherit lib fetchurl;
         gconf = gnome2.GConf;
         inherit gsettings-desktop-schemas;
       };
@@ -24634,9 +25858,11 @@ in
     plasma-workspace-wallpapers polkit-kde-agent powerdevil sddm-kcm
     systemsettings user-manager xdg-desktop-portal-kde;
 
-  kwin-tiling = libsForQt5.callPackage ../desktops/plasma-5/kwin/scripts/tiling.nix { };
-
-  krohnkite = libsForQt5.callPackage ../desktops/plasma-5/kwin/scripts/krohnkite.nix { };
+  inherit (plasma5.thirdParty)
+    plasma-applet-caffeine-plus
+    kwin-dynamic-workspaces
+    kwin-tiling
+    krohnkite;
 
   ### SCIENCE
 
@@ -24646,9 +25872,13 @@ in
     eigen = eigen2;
   };
 
+  d-seams = callPackage ../applications/science/chemistry/d-seams {};
+
   gwyddion = callPackage ../applications/science/chemistry/gwyddion {};
 
-  jmol = callPackage ../applications/science/chemistry/jmol { };
+  jmol = callPackage ../applications/science/chemistry/jmol {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
 
   marvin = callPackage ../applications/science/chemistry/marvin { };
 
@@ -24690,9 +25920,7 @@ in
 
   alliance = callPackage ../applications/science/electronics/alliance { };
 
-  ants = callPackage ../applications/science/biology/ants {
-    stdenv = gcc8Stdenv;
-  };
+  ants = callPackage ../applications/science/biology/ants { };
 
   aragorn = callPackage ../applications/science/biology/aragorn { };
 
@@ -24746,7 +25974,7 @@ in
 
   est-sfs = callPackage ../applications/science/biology/est-sfs { };
 
-  ezminc = callPackage ../applications/science/biology/EZminc { stdenv = gcc8Stdenv; };
+  ezminc = callPackage ../applications/science/biology/EZminc { };
 
   exonerate = callPackage ../applications/science/biology/exonerate { };
 
@@ -24822,6 +26050,8 @@ in
 
   manta = callPackage ../applications/science/biology/manta { };
 
+  obitools3 = callPackage ../applications/science/biology/obitools/obitools3.nix { };
+
   octopus-caller = callPackage ../applications/science/biology/octopus { };
 
   paml = callPackage ../applications/science/biology/paml { };
@@ -24851,6 +26081,8 @@ in
 
   snpeff = callPackage ../applications/science/biology/snpeff { };
 
+  somafm-cli = callPackage ../tools/misc/somafm-cli/default.nix { };
+
   somatic-sniper = callPackage ../applications/science/biology/somatic-sniper { };
 
   sortmerna = callPackage ../applications/science/biology/sortmerna { };
@@ -24880,6 +26112,8 @@ in
 
   varscan = callPackage ../applications/science/biology/varscan { };
 
+  whisper = callPackage ../applications/science/biology/whisper { };
+
   hmmer = callPackage ../applications/science/biology/hmmer { };
 
   bwa = callPackage ../applications/science/biology/bwa { };
@@ -24892,6 +26126,10 @@ in
 
   almonds = callPackage ../applications/science/math/almonds { };
 
+  amd-blis = callPackage ../development/libraries/science/math/amd-blis { };
+
+  amd-libflame = callPackage ../development/libraries/science/math/amd-libflame { };
+
   arpack = callPackage ../development/libraries/science/math/arpack { };
 
   blas = callPackage ../build-support/alternatives/blas { };
@@ -25071,7 +26309,7 @@ in
 
   xfitter = callPackage ../applications/science/physics/xfitter {};
 
-  xflr5 = libsForQt5.callPackage ../applications/science/physics/xflr5 { };
+  xflr5 = libsForQt514.callPackage ../applications/science/physics/xflr5 { };
 
   ### SCIENCE/PROGRAMMING
 
@@ -25115,6 +26353,7 @@ in
     coqPackages_8_9  coq_8_9
     coqPackages_8_10 coq_8_10
     coqPackages_8_11 coq_8_11
+    coqPackages_8_12 coq_8_12
     coqPackages      coq
   ;
 
@@ -25130,8 +26369,11 @@ in
 
   cvc3 = callPackage ../applications/science/logic/cvc3 {
     gmp = lib.overrideDerivation gmp (a: { dontDisableStatic = true; });
+    stdenv = gccStdenv;
+  };
+  cvc4 = callPackage ../applications/science/logic/cvc4 {
+    jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
-  cvc4 = callPackage ../applications/science/logic/cvc4 {};
 
   drat-trim = callPackage ../applications/science/logic/drat-trim {};
 
@@ -25166,11 +26408,11 @@ in
   ifstat-legacy = callPackage ../tools/networking/ifstat-legacy { };
 
   isabelle = callPackage ../applications/science/logic/isabelle {
-    polyml = stdenv.lib.overrideDerivation polyml57 (attrs: {
+    polyml = stdenv.lib.overrideDerivation polyml (attrs: {
       configureFlags = [ "--enable-intinf-as-int" "--with-gmp" "--disable-shared" ];
     });
 
-    java = if stdenv.isLinux then jre else jdk;
+    java = openjdk11;
   };
 
   iprover = callPackage ../applications/science/logic/iprover { };
@@ -25185,6 +26427,7 @@ in
   lean2 = callPackage ../applications/science/logic/lean2 {};
   lean3 = lean;
   elan = callPackage ../applications/science/logic/elan {};
+  mathlibtools = with python3Packages; toPythonApplication mathlibtools;
 
   leo2 = callPackage ../applications/science/logic/leo2 {
      ocaml = ocaml-ng.ocamlPackages_4_01_0.ocaml;};
@@ -25264,7 +26507,9 @@ in
   z3 = callPackage ../applications/science/logic/z3 { python = python2; };
   z3-tptp = callPackage ../applications/science/logic/z3/tptp.nix {};
 
-  tlaplus = callPackage ../applications/science/logic/tlaplus {};
+  tlaplus = callPackage ../applications/science/logic/tlaplus {
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
+  };
   tlaps = callPackage ../applications/science/logic/tlaplus/tlaps.nix {
     inherit (ocaml-ng.ocamlPackages_4_05) ocaml;
   };
@@ -25288,6 +26533,8 @@ in
 
   adms = callPackage ../applications/science/electronics/adms { };
 
+  appcsxcad = libsForQt514.callPackage ../applications/science/electronics/appcsxcad { };
+
   # Since version 8 Eagle requires an Autodesk account and a subscription
   # in contrast to single payment for the charged editions.
   # This is the last version with the old model.
@@ -25295,10 +26542,14 @@ in
     openssl = openssl_1_0_2;
   };
 
-  eagle = libsForQt5.callPackage ../applications/science/electronics/eagle/eagle.nix { };
+  eagle = libsForQt514.callPackage ../applications/science/electronics/eagle/eagle.nix { };
 
   caneda = libsForQt5.callPackage ../applications/science/electronics/caneda { };
 
+  csxcad = callPackage ../applications/science/electronics/csxcad { };
+
+  flatcam = callPackage ../applications/science/electronics/flatcam { };
+
   fparser = callPackage ../applications/science/electronics/fparser { };
 
   geda = callPackage ../applications/science/electronics/geda {
@@ -25309,6 +26560,8 @@ in
 
   gtkwave = callPackage ../applications/science/electronics/gtkwave { };
 
+  hyp2mat = callPackage ../applications/science/electronics/hyp2mat { };
+
   fped = callPackage ../applications/science/electronics/fped { };
 
   # this is a wrapper for kicad.base and kicad.libraries
@@ -25328,6 +26581,8 @@ in
 
   pcb = callPackage ../applications/science/electronics/pcb { };
 
+  qcsxcad = libsForQt514.callPackage ../applications/science/electronics/qcsxcad { };
+
   qucs = callPackage ../applications/science/electronics/qucs { };
 
   xcircuit = callPackage ../applications/science/electronics/xcircuit { };
@@ -25339,6 +26594,7 @@ in
 
   caffe = callPackage ../applications/science/math/caffe ({
     opencv3 = opencv3WithoutCuda; # Used only for image loading.
+    blas = openblas;
     inherit (darwin.apple_sdk.frameworks) Accelerate CoreGraphics CoreVideo;
   } // (config.caffe or {}));
 
@@ -25376,6 +26632,7 @@ in
   gap-full = lowPrio (gap.override { packageSet = "full"; });
 
   geogebra = callPackage ../applications/science/math/geogebra { };
+  geogebra6 = callPackage ../applications/science/math/geogebra/geogebra6.nix { };
 
   maxima = callPackage ../applications/science/math/maxima {
     ecl = null;
@@ -25553,7 +26810,7 @@ in
 
   ### SCIENCE/ROBOTICS
 
-  apmplanner2 = libsForQt5.callPackage ../applications/science/robotics/apmplanner2 { };
+  apmplanner2 = libsForQt514.callPackage ../applications/science/robotics/apmplanner2 { };
 
   betaflight-configurator = callPackage ../applications/science/robotics/betaflight-configurator { };
 
@@ -25563,7 +26820,7 @@ in
 
   android-file-transfer = libsForQt5.callPackage ../tools/filesystems/android-file-transfer { };
 
-  antimicro = libsForQt5.callPackage ../tools/misc/antimicro { };
+  antimicroX = libsForQt5.callPackage ../tools/misc/antimicroX { };
 
   atari800 = callPackage ../misc/emulators/atari800 { };
 
@@ -25573,10 +26830,16 @@ in
 
   auctex = callPackage ../tools/typesetting/tex/auctex { };
 
-  areca = callPackage ../applications/backup/areca { };
+  areca = callPackage ../applications/backup/areca {
+    jdk = jdk8;
+    jre = jre8;
+    swt = swt_jdk8;
+  };
 
   attract-mode = callPackage ../misc/emulators/attract-mode { };
 
+  autotiling = python3Packages.callPackage ../misc/autotiling { };
+
   beep = callPackage ../misc/beep { };
 
   bees = callPackage ../tools/filesystems/bees { };
@@ -25591,7 +26854,7 @@ in
 
   cached-nix-shell = callPackage ../tools/nix/cached-nix-shell {};
 
-  calaos_installer = libsForQt5.callPackage ../misc/calaos/installer {};
+  calaos_installer = libsForQt514.callPackage ../misc/calaos/installer {};
 
   ccemux = callPackage ../misc/emulators/ccemux { };
 
@@ -25599,6 +26862,8 @@ in
 
   clinfo = callPackage ../tools/system/clinfo { };
 
+  clpeak = callPackage ../tools/misc/clpeak { };
+
   cups = callPackage ../misc/cups { };
 
   cups-filters = callPackage ../misc/cups/filters.nix { };
@@ -25638,6 +26903,8 @@ in
 
   cups-brother-hl1110 = pkgsi686Linux.callPackage ../misc/cups/drivers/hl1110 { };
 
+  cups-brother-hl1210w = pkgsi686Linux.callPackage ../misc/cups/drivers/hl1210w { };
+
   cups-brother-hl3140cw = pkgsi686Linux.callPackage ../misc/cups/drivers/hl3140cw { };
 
   cups-brother-hll2340dw = pkgsi686Linux.callPackage  ../misc/cups/drivers/hll2340dw { };
@@ -25673,10 +26940,14 @@ in
 
   dosbox = callPackage ../misc/emulators/dosbox { };
 
+  emu2 = callPackage ../misc/emulators/emu2 { };
+
   dpkg = callPackage ../tools/package-management/dpkg { };
 
   dumb = callPackage ../misc/dumb { };
 
+  dump = callPackage ../tools/backup/dump { };
+
   ecdsatool = callPackage ../tools/security/ecdsatool { };
 
   emulationstation = callPackage ../misc/emulators/emulationstation { };
@@ -25732,7 +27003,8 @@ in
   fuse-emulator = callPackage ../misc/emulators/fuse-emulator {};
 
   gajim = callPackage ../applications/networking/instant-messengers/gajim {
-    inherit (gst_all_1) gstreamer gst-plugins-base gst-libav gst-plugins-ugly;
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-libav;
+    gst-plugins-good = gst_all_1.gst-plugins-good.override { gtkSupport = true; };
   };
 
   gammu = callPackage ../applications/misc/gammu { };
@@ -25763,15 +27035,13 @@ in
 
   hatari = callPackage ../misc/emulators/hatari { };
 
-  helm = callPackage ../applications/audio/helm {
-    stdenv = gcc8Stdenv;
-  };
+  helm = callPackage ../applications/audio/helm { };
 
   helmfile = callPackage ../applications/networking/cluster/helmfile { };
 
   helmsman = callPackage ../applications/networking/cluster/helmsman { };
 
-  heptio-ark = callPackage ../applications/networking/cluster/heptio-ark { };
+  velero = callPackage ../applications/networking/cluster/velero { };
 
   hplip = callPackage ../misc/drivers/hplip { };
 
@@ -25836,11 +27106,11 @@ in
   # Exceptions are versions that we need to keep to allow upgrades from older NixOS releases
   inherit (callPackage ../applications/networking/cluster/kops {})
     mkKops
-    kops_1_15
     kops_1_16
     kops_1_17
+    kops_1_18
     ;
-  kops = kops_1_17;
+  kops = kops_1_18;
 
   lguf-brightness = callPackage ../misc/lguf-brightness { };
 
@@ -25858,7 +27128,9 @@ in
     icu = icu58;
   };
 
-  mame = libsForQt5.callPackage ../misc/emulators/mame {
+  mamba = callPackage ../applications/audio/mamba { };
+
+  mame = libsForQt514.callPackage ../misc/emulators/mame {
     inherit (darwin.apple_sdk.frameworks) CoreAudioKit ForceFeedback;
   };
 
@@ -26034,6 +27306,8 @@ in
 
   nixdoc = callPackage ../tools/nix/nixdoc {};
 
+  nix-doc = callPackage ../tools/package-management/nix-doc { };
+
   nix-bundle = callPackage ../tools/package-management/nix-bundle { };
 
   nix-delegate = haskell.lib.justStaticExecutables haskellPackages.nix-delegate;
@@ -26049,7 +27323,7 @@ in
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
-  nix-linter = haskellPackages.callPackage ../development/tools/analysis/nix-linter { };
+  nix-linter = haskell.lib.justStaticExecutables (haskellPackages.callPackage ../development/tools/analysis/nix-linter { });
 
   nix-pin = callPackage ../tools/package-management/nix-pin { };
 
@@ -26078,6 +27352,8 @@ in
 
   nix-top = callPackage ../tools/package-management/nix-top { };
 
+  nix-tree = haskell.lib.justStaticExecutables (haskellPackages.nix-tree);
+
   nix-universal-prefetch = callPackage ../tools/package-management/nix-universal-prefetch { };
 
   nix-repl = throw (
@@ -26098,6 +27374,8 @@ in
 
   nixpkgs-fmt = callPackage ../tools/nix/nixpkgs-fmt { };
 
+  rnix-hashes = callPackage ../tools/nix/rnix-hashes { };
+
   nixos-artwork = callPackage ../data/misc/nixos-artwork { };
   nixos-icons = callPackage ../data/misc/nixos-artwork/icons.nix { };
   nixos-grub2-theme = callPackage ../data/misc/nixos-artwork/grub2-theme.nix { };
@@ -26132,6 +27410,7 @@ in
     gdal = gdal.override {libmysqlclient = mysql // {lib = {dev = mysql;};};};
     mysql = mysql;
     pcre = pcre-cpp;
+    jre = jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   });
 
   r128gain = callPackage ../applications/audio/r128gain { };
@@ -26192,6 +27471,8 @@ in
 
   pyload = callPackage ../applications/networking/pyload {};
 
+  pwntools = with python3Packages; toPythonApplication pwntools;
+
   uae = callPackage ../misc/emulators/uae { };
 
   fsuae = callPackage ../misc/emulators/fs-uae { };
@@ -26204,6 +27485,8 @@ in
 
   py-wmi-client = callPackage ../tools/networking/py-wmi-client { };
 
+  rargs = callPackage ../tools/misc/rargs { };
+
   redprl = callPackage ../applications/science/logic/redprl { };
 
   renderizer = pkgs.callPackage ../development/tools/renderizer {};
@@ -26249,6 +27532,8 @@ in
 
   sift = callPackage ../tools/text/sift { };
 
+  xdragon = lowPrio (callPackage ../applications/misc/xdragon { });
+
   xlockmore = callPackage ../misc/screensavers/xlockmore { };
 
   xtrlock-pam = callPackage ../misc/screensavers/xtrlock-pam { };
@@ -26309,9 +27594,7 @@ in
 
   sanoid = callPackage ../tools/backup/sanoid { };
 
-  satysfi = callPackage ../tools/typesetting/satysfi {
-    ocamlPackages = ocaml-ng.ocamlPackages_4_07;
-  };
+  satysfi = callPackage ../tools/typesetting/satysfi { };
 
   sc-controller = pythonPackages.callPackage ../misc/drivers/sc-controller {
     inherit libusb1; # Shadow python.pkgs.libusb1.
@@ -26356,18 +27639,23 @@ in
 
   sqsh = callPackage ../development/tools/sqsh { };
 
+  go-swag = callPackage ../development/tools/go-swag { };
+
   go-swagger = callPackage ../development/tools/go-swagger { };
 
   jx = callPackage ../applications/networking/cluster/jx {};
 
   prow = callPackage ../applications/networking/cluster/prow { };
 
+  tellico = libsForQt514.callPackage ../applications/misc/tellico { };
+
   termpdfpy = python3Packages.callPackage ../applications/misc/termpdf.py {};
 
   inherit (callPackage ../applications/networking/cluster/terraform { })
     terraform_0_11
     terraform_0_11-full
     terraform_0_12
+    terraform_0_13
     terraform_plugins_test
     ;
 
@@ -26379,6 +27667,8 @@ in
     callPackage ../applications/networking/cluster/terraform-providers {}
   );
 
+  terraform-compliance = python3Packages.callPackage ../applications/networking/cluster/terraform-compliance {};
+
   terraform-docs = callPackage ../applications/networking/cluster/terraform-docs {};
 
   terraform-inventory = callPackage ../applications/networking/cluster/terraform-inventory {};
@@ -26389,6 +27679,8 @@ in
 
   tilt = callPackage ../applications/networking/cluster/tilt {};
 
+  timeular = callPackage ../applications/office/timeular {};
+
   tetex = callPackage ../tools/typesetting/tex/tetex { libpng = libpng12; };
 
   tewi-font = callPackage ../data/fonts/tewi
@@ -26404,7 +27696,7 @@ in
 
   ib-controller = callPackage ../applications/office/ib/controller { jdk=oraclejdk8; };
 
-  vnote = libsForQt5.callPackage ../applications/office/vnote { };
+  vnote = libsForQt514.callPackage ../applications/office/vnote { };
 
   ssh-audit = callPackage ../tools/security/ssh-audit { };
 
@@ -26436,6 +27728,8 @@ in
 
   urbit = callPackage ../misc/urbit { };
 
+  utf8cpp = callPackage ../development/libraries/utf8cpp { };
+
   utf8proc = callPackage ../development/libraries/utf8proc { };
 
   unicode-paracode = callPackage ../tools/misc/unicode { };
@@ -26478,13 +27772,20 @@ in
 
   vokoscreen = libsForQt5.callPackage ../applications/video/vokoscreen { };
 
+  vokoscreen-ng = libsForQt5.callPackage ../applications/video/vokoscreen-ng {
+    inherit (gst_all_1) gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly;
+  };
+
   vttest = callPackage ../tools/misc/vttest { };
 
-  wacomtablet = libsForQt5.callPackage ../tools/misc/wacomtablet { };
+  wacomtablet = libsForQt514.callPackage ../tools/misc/wacomtablet { };
 
   wasmer = callPackage ../development/interpreters/wasmer { };
 
   wasm-pack = callPackage ../development/tools/wasm-pack {
+    # Wasm-pack depends on a version of rust-openssl which is incompatible with
+    # LibreSSL 3.1, so we explicitly opt for the older version.
+    libressl = libressl_3_0;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
@@ -26494,6 +27795,8 @@ in
 
   webfs = callPackage ../servers/http/webfs { };
 
+  webkit2-sharp = callPackage ../development/libraries/webkit2-sharp {  };
+
   websocketd = callPackage ../applications/networking/websocketd { };
 
   wikicurses = callPackage ../applications/misc/wikicurses {
@@ -26528,6 +27831,8 @@ in
 
   wmutils-core = callPackage ../tools/X11/wmutils-core { };
 
+  wmutils-libwm = callPackage ../tools/X11/wmutils-libwm { };
+
   wmutils-opt = callPackage ../tools/X11/wmutils-opt { };
 
   wordpress = callPackage ../servers/web-apps/wordpress { };
@@ -26546,6 +27851,8 @@ in
     wxGTK = wxGTK30;
   };
 
+  wyvern = callPackage ../games/wyvern { };
+
   x11idle = callPackage ../tools/misc/x11idle {};
 
   x11docker = callPackage ../applications/virtualization/x11docker { };
@@ -26594,6 +27901,8 @@ in
 
   xteddy = callPackage ../applications/misc/xteddy { };
 
+  xva-img = callPackage ../tools/virtualization/xva-img { };
+
   xwiimote = callPackage ../misc/drivers/xwiimote { };
 
   xzoom = callPackage ../tools/X11/xzoom {};
@@ -26622,6 +27931,8 @@ in
 
   zap = callPackage ../tools/networking/zap { };
 
+  zigbee2mqtt = callPackage ../servers/zigbee2mqtt { };
+
   zopfli = callPackage ../tools/compression/zopfli { };
 
   myEnvFun = callPackage ../misc/my-env {
@@ -26645,7 +27956,7 @@ in
   snes9x-gtk = callPackage ../misc/emulators/snes9x-gtk { };
 
   openmsx = callPackage ../misc/emulators/openmsx {
-    python = python27;
+    python = python3;
   };
 
   higan = callPackage ../misc/emulators/higan {
@@ -26698,7 +28009,7 @@ in
     inherit pkgs;
   };
 
-  golden-cheetah = libsForQt5.callPackage ../applications/misc/golden-cheetah {};
+  golden-cheetah = libsForQt512.callPackage ../applications/misc/golden-cheetah {};
 
   linkchecker = callPackage ../tools/networking/linkchecker { };
 
@@ -26716,6 +28027,8 @@ in
 
   sequelpro = callPackage ../applications/misc/sequelpro {};
 
+  snowsql = callPackage ../applications/misc/snowsql {};
+
   sidequest = callPackage ../applications/misc/sidequest {};
 
   maphosts = callPackage ../tools/networking/maphosts {};
@@ -26775,6 +28088,10 @@ in
 
   openfst = callPackage ../development/libraries/openfst {};
 
+  opengrm-ngram = callPackage ../development/libraries/opengrm-ngram {};
+
+  phonetisaurus = callPackage ../development/libraries/phonetisaurus {};
+
   duti = callPackage ../os-specific/darwin/duti {};
 
   dnstracer = callPackage ../tools/networking/dnstracer {
@@ -26791,7 +28108,7 @@ in
 
   simplehttp2server = callPackage ../servers/simplehttp2server { };
 
-  diceware = callPackage ../tools/security/diceware { };
+  diceware = with python3Packages; toPythonApplication diceware;
 
   xml2rfc = with python3Packages; toPythonApplication xml2rfc;
 
@@ -26862,6 +28179,8 @@ in
 
   kube3d =  callPackage ../applications/networking/cluster/kube3d {};
 
+  zfs-prune-snapshots = callPackage ../tools/backup/zfs-prune-snapshots {};
+
   zfs-replicate = python3Packages.callPackage ../tools/backup/zfs-replicate { };
 
   runwayml = callPackage ../applications/graphics/runwayml {};
@@ -26919,4 +28238,13 @@ in
   vpsfree-client = callPackage ../tools/virtualization/vpsfree-client {};
 
   gpio-utils = callPackage ../os-specific/linux/kernel/gpio-utils.nix { };
+
+  navidrome = callPackage ../servers/misc/navidrome {};
+
+  zettlr = callPackage ../applications/misc/zettlr { };
+
+  unifi-poller = callPackage ../servers/monitoring/unifi-poller {};
+
+  fac-build = callPackage ../development/tools/build-managers/fac {};
+
 }
diff --git a/nixpkgs/pkgs/top-level/beam-packages.nix b/nixpkgs/pkgs/top-level/beam-packages.nix
index f6fe58a83d03..139749e7d39b 100644
--- a/nixpkgs/pkgs/top-level/beam-packages.nix
+++ b/nixpkgs/pkgs/top-level/beam-packages.nix
@@ -13,27 +13,46 @@ rec {
     erlang_odbc_javac = erlangR22_odbc_javac;
     erlang_nox = erlangR22_nox;
 
-    # These are standard Erlang versions, using the generic builder.
-    erlangR18 = lib.callErlang ../development/interpreters/erlang/R18.nix {
+    # Standard Erlang versions, using the generic builder.
+
+    # R23
+    erlangR23 = lib.callErlang ../development/interpreters/erlang/R23.nix {
       wxGTK = wxGTK30;
-      openssl = openssl_1_0_2;
+      # Can be enabled since the bug has been fixed in https://github.com/erlang/otp/pull/2508
+      parallelBuild = true;
     };
-    erlangR18_odbc = erlangR18.override { odbcSupport = true; };
-    erlangR18_javac = erlangR18.override { javacSupport = true; };
-    erlangR18_odbc_javac = erlangR18.override {
+    erlangR23_odbc = erlangR23.override { odbcSupport = true; };
+    erlangR23_javac = erlangR23.override { javacSupport = true; };
+    erlangR23_odbc_javac = erlangR23.override {
       javacSupport = true; odbcSupport = true;
     };
-    erlangR18_nox = erlangR18.override { wxSupport = false; };
-    erlangR19 = lib.callErlang ../development/interpreters/erlang/R19.nix {
+    erlangR23_nox = erlangR23.override { wxSupport = false; };
+
+    # R22
+    erlangR22 = lib.callErlang ../development/interpreters/erlang/R22.nix {
       wxGTK = wxGTK30;
-      openssl = openssl_1_0_2;
+      # Can be enabled since the bug has been fixed in https://github.com/erlang/otp/pull/2508
+      parallelBuild = true;
     };
-    erlangR19_odbc = erlangR19.override { odbcSupport = true; };
-    erlangR19_javac = erlangR19.override { javacSupport = true; };
-    erlangR19_odbc_javac = erlangR19.override {
+    erlangR22_odbc = erlangR22.override { odbcSupport = true; };
+    erlangR22_javac = erlangR22.override { javacSupport = true; };
+    erlangR22_odbc_javac = erlangR22.override {
       javacSupport = true; odbcSupport = true;
     };
-    erlangR19_nox = erlangR19.override { wxSupport = false; };
+    erlangR22_nox = erlangR22.override { wxSupport = false; };
+
+    # R21
+    erlangR21 = lib.callErlang ../development/interpreters/erlang/R21.nix {
+      wxGTK = wxGTK30;
+    };
+    erlangR21_odbc = erlangR21.override { odbcSupport = true; };
+    erlangR21_javac = erlangR21.override { javacSupport = true; };
+    erlangR21_odbc_javac = erlangR21.override {
+      javacSupport = true; odbcSupport = true;
+    };
+    erlangR21_nox = erlangR21.override { wxSupport = false; };
+
+    # R20
     erlangR20 = lib.callErlang ../development/interpreters/erlang/R20.nix {
       wxGTK = wxGTK30;
     };
@@ -43,24 +62,30 @@ rec {
       javacSupport = true; odbcSupport = true;
     };
     erlangR20_nox = erlangR20.override { wxSupport = false; };
-    erlangR21 = lib.callErlang ../development/interpreters/erlang/R21.nix {
+
+    # R19
+    erlangR19 = lib.callErlang ../development/interpreters/erlang/R19.nix {
       wxGTK = wxGTK30;
+      openssl = openssl_1_0_2;
     };
-    erlangR21_odbc = erlangR21.override { odbcSupport = true; };
-    erlangR21_javac = erlangR21.override { javacSupport = true; };
-    erlangR21_odbc_javac = erlangR21.override {
+    erlangR19_odbc = erlangR19.override { odbcSupport = true; };
+    erlangR19_javac = erlangR19.override { javacSupport = true; };
+    erlangR19_odbc_javac = erlangR19.override {
       javacSupport = true; odbcSupport = true;
     };
-    erlangR21_nox = erlangR21.override { wxSupport = false; };
-    erlangR22 = lib.callErlang ../development/interpreters/erlang/R22.nix {
+    erlangR19_nox = erlangR19.override { wxSupport = false; };
+
+    # R18
+    erlangR18 = lib.callErlang ../development/interpreters/erlang/R18.nix {
       wxGTK = wxGTK30;
+      openssl = openssl_1_0_2;
     };
-    erlangR22_odbc = erlangR22.override { odbcSupport = true; };
-    erlangR22_javac = erlangR22.override { javacSupport = true; };
-    erlangR22_odbc_javac = erlangR22.override {
+    erlangR18_odbc = erlangR18.override { odbcSupport = true; };
+    erlangR18_javac = erlangR18.override { javacSupport = true; };
+    erlangR18_odbc_javac = erlangR18.override {
       javacSupport = true; odbcSupport = true;
     };
-    erlangR22_nox = erlangR22.override { wxSupport = false; };
+    erlangR18_nox = erlangR18.override { wxSupport = false; };
 
     # Basho fork, using custom builder.
     erlang_basho_R16B02 = lib.callErlang ../development/interpreters/erlang/R16B02-basho.nix {
@@ -72,7 +97,7 @@ rec {
     # Other Beam languages. These are built with `beam.interpreters.erlang`. To
     # access for example elixir built with different version of Erlang, use
     # `beam.packages.erlangR22.elixir`.
-    inherit (packages.erlang) elixir elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7 elixir_1_6;
+    inherit (packages.erlang) elixir elixir_1_10 elixir_1_9 elixir_1_8 elixir_1_7;
 
     inherit (packages.erlang) lfe lfe_1_2 lfe_1_3;
   };
@@ -85,10 +110,12 @@ rec {
   packages = {
     # Packages built with default Erlang version.
     erlang = packagesWith interpreters.erlang;
-    erlangR18 = packagesWith interpreters.erlangR18;
-    erlangR19 = packagesWith interpreters.erlangR19;
-    erlangR20 = packagesWith interpreters.erlangR20;
-    erlangR21 = packagesWith interpreters.erlangR21;
+
+    erlangR23 = packagesWith interpreters.erlangR23;
     erlangR22 = packagesWith interpreters.erlangR22;
+    erlangR21 = packagesWith interpreters.erlangR21;
+    erlangR20 = packagesWith interpreters.erlangR20;
+    erlangR19 = packagesWith interpreters.erlangR19;
+    erlangR18 = packagesWith interpreters.erlangR18;
   };
 }
diff --git a/nixpkgs/pkgs/top-level/coq-packages.nix b/nixpkgs/pkgs/top-level/coq-packages.nix
index dedef12e38ba..c6c75cd7ffd1 100644
--- a/nixpkgs/pkgs/top-level/coq-packages.nix
+++ b/nixpkgs/pkgs/top-level/coq-packages.nix
@@ -19,7 +19,6 @@ let
       coq-bits = callPackage ../development/coq-modules/coq-bits {};
       coq-elpi = callPackage ../development/coq-modules/coq-elpi {};
       coq-ext-lib = callPackage ../development/coq-modules/coq-ext-lib {};
-      coq-extensible-records = callPackage ../development/coq-modules/coq-extensible-records {};
       coq-haskell = callPackage ../development/coq-modules/coq-haskell { };
       coqhammer = callPackage ../development/coq-modules/coqhammer {};
       coqprime = callPackage ../development/coq-modules/coqprime {};
@@ -118,6 +117,9 @@ in rec {
   coq_8_11 = callPackage ../applications/science/logic/coq {
     version = "8.11.2";
   };
+  coq_8_12 = callPackage ../applications/science/logic/coq {
+    version = "8.12.0";
+  };
 
   coqPackages_8_5 = mkCoqPackages coq_8_5;
   coqPackages_8_6 = mkCoqPackages coq_8_6;
@@ -126,8 +128,9 @@ in rec {
   coqPackages_8_9 = mkCoqPackages coq_8_9;
   coqPackages_8_10 = mkCoqPackages coq_8_10;
   coqPackages_8_11 = mkCoqPackages coq_8_11;
+  coqPackages_8_12 = mkCoqPackages coq_8_12;
   coqPackages = recurseIntoAttrs (lib.mapDerivationAttrset lib.dontDistribute
-    coqPackages_8_9
+    coqPackages_8_11
   );
   coq = coqPackages.coq;
 
diff --git a/nixpkgs/pkgs/top-level/darwin-packages.nix b/nixpkgs/pkgs/top-level/darwin-packages.nix
index 9423aa307253..affb4ae92c19 100644
--- a/nixpkgs/pkgs/top-level/darwin-packages.nix
+++ b/nixpkgs/pkgs/top-level/darwin-packages.nix
@@ -86,4 +86,10 @@ in
 
   libtapi = callPackage ../os-specific/darwin/libtapi {};
 
+  ios-deploy = callPackage ../os-specific/darwin/ios-deploy {};
+
+  discrete-scroll = callPackage ../os-specific/darwin/discrete-scroll {
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+  };
+
 })
diff --git a/nixpkgs/pkgs/top-level/haskell-packages.nix b/nixpkgs/pkgs/top-level/haskell-packages.nix
index 13c5b7213013..b21a3040c042 100644
--- a/nixpkgs/pkgs/top-level/haskell-packages.nix
+++ b/nixpkgs/pkgs/top-level/haskell-packages.nix
@@ -5,10 +5,16 @@ let
   integerSimpleExcludes = [
     "ghc822Binary"
     "ghc865Binary"
-    "ghc844"
+    "ghc8102Binary"
     "ghcjs"
     "ghcjs86"
     "integer-simple"
+    "native-bignum"
+    "ghcHEAD"
+  ];
+
+  nativeBignumIncludes = [
+    "ghcHEAD"
   ];
 
   haskellLib = import ../development/haskell-modules/lib.nix {
@@ -44,12 +50,10 @@ in {
 
     ghc865Binary = callPackage ../development/compilers/ghc/8.6.5-binary.nix { };
 
-    ghc844 = callPackage ../development/compilers/ghc/8.4.4.nix {
-      bootPkgs = packages.ghc822Binary;
-      sphinx = buildPackages.python3Packages.sphinx_1_7_9;
-      buildLlvmPackages = buildPackages.llvmPackages_5;
-      llvmPackages = pkgs.llvmPackages_5;
+    ghc8102Binary = callPackage ../development/compilers/ghc/8.10.2-binary.nix {
+      llvmPackages = pkgs.llvmPackages_9;
     };
+
     ghc865 = callPackage ../development/compilers/ghc/8.6.5.nix {
       bootPkgs = packages.ghc822Binary;
       inherit (buildPackages.python3Packages) sphinx;
@@ -68,12 +72,24 @@ in {
       buildLlvmPackages = buildPackages.llvmPackages_7;
       llvmPackages = pkgs.llvmPackages_7;
     };
+    ghc884 = callPackage ../development/compilers/ghc/8.8.4.nix {
+      bootPkgs = packages.ghc865Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      buildLlvmPackages = buildPackages.llvmPackages_7;
+      llvmPackages = pkgs.llvmPackages_7;
+    };
     ghc8101 = callPackage ../development/compilers/ghc/8.10.1.nix {
       bootPkgs = packages.ghc865Binary;
       inherit (buildPackages.python3Packages) sphinx;
       buildLlvmPackages = buildPackages.llvmPackages_9;
       llvmPackages = pkgs.llvmPackages_9;
     };
+    ghc8102 = callPackage ../development/compilers/ghc/8.10.2.nix {
+      bootPkgs = packages.ghc865Binary;
+      inherit (buildPackages.python3Packages) sphinx;
+      buildLlvmPackages = buildPackages.llvmPackages_9;
+      llvmPackages = pkgs.llvmPackages_9;
+    };
     ghcHEAD = callPackage ../development/compilers/ghc/head.nix {
       bootPkgs = packages.ghc883; # no binary yet
       inherit (buildPackages.python3Packages) sphinx;
@@ -98,6 +114,16 @@ in {
     in pkgs.recurseIntoAttrs (pkgs.lib.genAttrs
       integerSimpleGhcNames
       (name: compiler.${name}.override { enableIntegerSimple = true; }));
+
+    # Starting from GHC 9, integer-{simple,gmp} is replaced by ghc-bignum
+    # with "native" and "gmp" backends.
+    native-bignum = let
+      nativeBignumGhcNames = pkgs.lib.filter
+        (name: builtins.elem name nativeBignumIncludes)
+        (pkgs.lib.attrNames compiler);
+    in pkgs.recurseIntoAttrs (pkgs.lib.genAttrs
+      nativeBignumGhcNames
+      (name: compiler.${name}.override { enableNativeBignum = true; }));
   };
 
   # Default overrides that are applied to all package sets.
@@ -118,10 +144,11 @@ in {
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.6.x.nix { };
       packageSetConfig = bootstrapPackageSet;
     };
-    ghc844 = callPackage ../development/haskell-modules {
-      buildHaskellPackages = bh.packages.ghc844;
-      ghc = bh.compiler.ghc844;
-      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.4.x.nix { };
+    ghc8102Binary = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc8102Binary;
+      ghc = bh.compiler.ghc8102Binary;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
+      packageSetConfig = bootstrapPackageSet;
     };
     ghc865 = callPackage ../development/haskell-modules {
       buildHaskellPackages = bh.packages.ghc865;
@@ -138,11 +165,21 @@ in {
       ghc = bh.compiler.ghc883;
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.8.x.nix { };
     };
+    ghc884 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc884;
+      ghc = bh.compiler.ghc884;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.8.x.nix { };
+    };
     ghc8101 = callPackage ../development/haskell-modules {
       buildHaskellPackages = bh.packages.ghc8101;
       ghc = bh.compiler.ghc8101;
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
     };
+    ghc8102 = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc8102;
+      ghc = bh.compiler.ghc8102;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
+    };
     ghcHEAD = callPackage ../development/haskell-modules {
       buildHaskellPackages = bh.packages.ghcHEAD;
       ghc = bh.compiler.ghcHEAD;
@@ -171,5 +208,16 @@ in {
       };
     });
 
+    native-bignum = let
+      nativeBignumGhcNames = pkgs.lib.filter
+        (name: builtins.elem name nativeBignumIncludes)
+        (pkgs.lib.attrNames compiler);
+    in pkgs.lib.genAttrs nativeBignumGhcNames (name: packages.${name}.override {
+      ghc = bh.compiler.native-bignum.${name};
+      buildHaskellPackages = bh.packages.native-bignum.${name};
+      overrides = _self : _super : {
+        integer-gmp = null;
+      };
+    });
   };
 }
diff --git a/nixpkgs/pkgs/top-level/impure.nix b/nixpkgs/pkgs/top-level/impure.nix
index d390bd9025fa..bd7aa715f018 100644
--- a/nixpkgs/pkgs/top-level/impure.nix
+++ b/nixpkgs/pkgs/top-level/impure.nix
@@ -81,7 +81,7 @@ in
 # not be passed.
 assert args ? localSystem -> !(args ? system || args ? platform);
 
-import ./. (builtins.removeAttrs args [ "system" "platform" ] // {
+import ./. (builtins.removeAttrs args [ "system" "platform" "inNixShell" ] // {
   inherit config overlays crossSystem crossOverlays;
   # Fallback: Assume we are building packages on the current (build, in GNU
   # Autotools parlance) system.
diff --git a/nixpkgs/pkgs/top-level/make-tarball.nix b/nixpkgs/pkgs/top-level/make-tarball.nix
index 6bb243879e9a..f65829e29cab 100644
--- a/nixpkgs/pkgs/top-level/make-tarball.nix
+++ b/nixpkgs/pkgs/top-level/make-tarball.nix
@@ -40,7 +40,6 @@ releaseTools.sourceTarball {
   checkPhase = ''
     set -o pipefail
 
-    export NIX_DB_DIR=$TMPDIR
     export NIX_STATE_DIR=$TMPDIR
     export NIX_PATH=nixpkgs=$TMPDIR/barf.nix
     opts=(--option build-users-group "")
@@ -108,6 +107,7 @@ releaseTools.sourceTarball {
     echo -n '}' >> tmp
     packages=$out/packages.json.br
     < tmp sed "s|$(pwd)/||g" | jq -c | brotli -9 > $packages
+    rm tmp
 
     echo "file json-br $packages" >> $out/nix-support/hydra-build-products
   '';
diff --git a/nixpkgs/pkgs/top-level/metrics.nix b/nixpkgs/pkgs/top-level/metrics.nix
index 244b0ce7a664..2bfcb9d5d80a 100644
--- a/nixpkgs/pkgs/top-level/metrics.nix
+++ b/nixpkgs/pkgs/top-level/metrics.nix
@@ -7,7 +7,6 @@ runCommand "nixpkgs-metrics"
     requiredSystemFeatures = [ "benchmark" ];
   }
   ''
-    export NIX_DB_DIR=$TMPDIR
     export NIX_STATE_DIR=$TMPDIR
     nix-store --init
 
diff --git a/nixpkgs/pkgs/top-level/ocaml-packages.nix b/nixpkgs/pkgs/top-level/ocaml-packages.nix
index 4be489c76ebb..ae1fe050b8ef 100644
--- a/nixpkgs/pkgs/top-level/ocaml-packages.nix
+++ b/nixpkgs/pkgs/top-level/ocaml-packages.nix
@@ -42,8 +42,6 @@ let
 
     atdgen = callPackage ../development/ocaml-modules/atdgen { };
 
-    base64_2 = callPackage ../development/ocaml-modules/base64/2.0.nix { };
-
     base64 = callPackage ../development/ocaml-modules/base64 { };
 
     bap = callPackage ../development/ocaml-modules/bap {
@@ -54,6 +52,8 @@ let
 
     bigarray-compat = callPackage ../development/ocaml-modules/bigarray-compat { };
 
+    bigarray-overlap = callPackage ../development/ocaml-modules/bigarray-overlap { };
+
     bigstringaf = callPackage ../development/ocaml-modules/bigstringaf { };
 
     bigstring = callPackage ../development/ocaml-modules/bigstring { };
@@ -137,12 +137,16 @@ let
 
     cohttp = callPackage ../development/ocaml-modules/cohttp { };
 
+    cohttp-async = callPackage ../development/ocaml-modules/cohttp/async.nix { };
+
     cohttp-lwt = callPackage ../development/ocaml-modules/cohttp/lwt.nix { };
 
     cohttp-lwt-unix = callPackage ../development/ocaml-modules/cohttp/lwt-unix.nix { };
 
     conduit = callPackage ../development/ocaml-modules/conduit { };
 
+    conduit-async = callPackage ../development/ocaml-modules/conduit/async.nix { };
+
     conduit-lwt = callPackage ../development/ocaml-modules/conduit/lwt.nix { };
 
     conduit-lwt-unix = callPackage ../development/ocaml-modules/conduit/lwt-unix.nix { };
@@ -151,6 +155,8 @@ let
 
     containers = callPackage ../development/ocaml-modules/containers { };
 
+    containers-data = callPackage ../development/ocaml-modules/containers/data.nix { };
+
     cow = callPackage ../development/ocaml-modules/cow { };
 
     cpdf = callPackage ../development/ocaml-modules/cpdf { };
@@ -167,14 +173,14 @@ let
 
     cryptokit = callPackage ../development/ocaml-modules/cryptokit { };
 
+    csexp = callPackage ../development/ocaml-modules/csexp { };
+
     cstruct =
       if lib.versionAtLeast ocaml.version "4.2"
       then callPackage ../development/ocaml-modules/cstruct {}
-      else callPackage ../development/ocaml-modules/cstruct/1.9.0.nix { lwt = ocaml_lwt; };
+      else callPackage ../development/ocaml-modules/cstruct/1.9.0.nix { };
 
-    cstruct-lwt = callPackage ../development/ocaml-modules/cstruct/lwt.nix {
-      lwt = ocaml_lwt;
-    };
+    cstruct-lwt = callPackage ../development/ocaml-modules/cstruct/lwt.nix { };
 
     cstruct-sexp = callPackage ../development/ocaml-modules/cstruct/sexp.nix {};
 
@@ -220,18 +226,26 @@ let
     dune = callPackage ../development/tools/ocaml/dune { };
 
     dune_2 =
-      if lib.versionAtLeast ocaml.version "4.07"
+      if lib.versionAtLeast ocaml.version "4.08"
       then callPackage ../development/tools/ocaml/dune/2.nix { }
       else if lib.versionAtLeast ocaml.version "4.02"
       then pkgs.dune_2
       else throw "dune_2 is not available for OCaml ${ocaml.version}";
 
+    dune-action-plugin = callPackage ../development/ocaml-modules/dune-action-plugin { };
+
     dune-build-info = callPackage ../development/ocaml-modules/dune-build-info { };
 
     dune-configurator = callPackage ../development/ocaml-modules/dune-configurator { };
 
+    dune-glob = callPackage ../development/ocaml-modules/dune-glob { };
+
     dune-private-libs = callPackage ../development/ocaml-modules/dune-private-libs { };
 
+    dune-release = callPackage ../development/tools/ocaml/dune-release {
+      inherit (pkgs) opam git mercurial coreutils gnutar bzip2;
+    };
+
     duration =  callPackage ../development/ocaml-modules/duration { };
 
     earley = callPackage ../development/ocaml-modules/earley { };
@@ -272,6 +286,8 @@ let
 
     farfadet = callPackage ../development/ocaml-modules/farfadet { };
 
+    fdkaac = callPackage ../development/ocaml-modules/fdkaac { };
+
     fiat-p256 = callPackage ../development/ocaml-modules/fiat-p256 { };
 
     fieldslib_p4 = callPackage ../development/ocaml-modules/fieldslib { };
@@ -298,6 +314,8 @@ let
 
     gen = callPackage ../development/ocaml-modules/gen { };
 
+    genspio = callPackage ../development/ocaml-modules/genspio { };
+
     gmap = callPackage ../development/ocaml-modules/gmap { };
 
     gnuplot = callPackage ../development/ocaml-modules/gnuplot {
@@ -308,6 +326,8 @@ let
 
     herelib = callPackage ../development/ocaml-modules/herelib { };
 
+    hidapi = callPackage ../development/ocaml-modules/hidapi { };
+
     higlo = callPackage ../development/ocaml-modules/higlo { };
 
     hkdf = callPackage ../development/ocaml-modules/hkdf { };
@@ -328,7 +348,9 @@ let
 
     ipaddr = callPackage ../development/ocaml-modules/ipaddr { };
 
-    irmin_1 = callPackage ../development/ocaml-modules/irmin/1.4.nix { };
+    ipaddr-cstruct = callPackage ../development/ocaml-modules/ipaddr/cstruct.nix { };
+
+    ipaddr-sexp = callPackage ../development/ocaml-modules/ipaddr/sexp.nix { };
 
     iso8601 = callPackage ../development/ocaml-modules/iso8601 { };
 
@@ -344,11 +366,15 @@ let
 
     gg = callPackage ../development/ocaml-modules/gg { };
 
-    git = callPackage ../development/ocaml-modules/git { inherit (pkgs) git; };
+    git = callPackage ../development/ocaml-modules/git {
+      git-binary = pkgs.git;
+    };
 
     git-http = callPackage ../development/ocaml-modules/git-http { };
 
-    git-unix = callPackage ../development/ocaml-modules/git-unix { };
+    git-unix = callPackage ../development/ocaml-modules/git-unix {
+      git-binary = pkgs.git;
+    };
 
     gmetadom = callPackage ../development/ocaml-modules/gmetadom { };
 
@@ -419,6 +445,8 @@ let
 
     jsonm = callPackage ../development/ocaml-modules/jsonm { };
 
+    jwto = callPackage ../development/ocaml-modules/jwto { };
+
     kafka = callPackage ../development/ocaml-modules/kafka { };
 
     ke = callPackage ../development/ocaml-modules/ke { };
@@ -459,47 +487,39 @@ let
       llvm = pkgs.llvm_8;
     };
 
-    logs = callPackage ../development/ocaml-modules/logs {
-      lwt = ocaml_lwt;
-    };
+    logs = callPackage ../development/ocaml-modules/logs { };
 
     lru = callPackage ../development/ocaml-modules/lru { };
 
     lua-ml = callPackage ../development/ocaml-modules/lua-ml { };
 
-    lwt2 = callPackage ../development/ocaml-modules/lwt/legacy.nix { };
-
-    lwt4 = callPackage ../development/ocaml-modules/lwt/4.x.nix { };
+    lwt = callPackage ../development/ocaml-modules/lwt { };
 
-    ocaml_lwt = if lib.versionOlder "4.02" ocaml.version then lwt4 else lwt2;
+    ocaml_lwt = lwt;
 
     lwt_camlp4 = callPackage ../development/ocaml-modules/lwt/camlp4.nix { };
 
-    lwt_log = callPackage ../development/ocaml-modules/lwt_log {
-      lwt = lwt4;
-    };
+    lwt_log = callPackage ../development/ocaml-modules/lwt_log { };
 
-    lwt_ppx = callPackage ../development/ocaml-modules/lwt/ppx.nix {
-      lwt = ocaml_lwt;
-    };
+    lwt_ppx = callPackage ../development/ocaml-modules/lwt/ppx.nix { };
 
-    lwt_react = callPackage ../development/ocaml-modules/lwt_react {
-      lwt = ocaml_lwt;
-    };
+    lwt_react = callPackage ../development/ocaml-modules/lwt_react { };
 
-    lwt_ssl = callPackage ../development/ocaml-modules/lwt_ssl {
-      lwt = ocaml_lwt;
-    };
+    lwt_ssl = callPackage ../development/ocaml-modules/lwt_ssl { };
 
     macaddr = callPackage ../development/ocaml-modules/macaddr { };
 
+    macaddr-cstruct = callPackage ../development/ocaml-modules/macaddr/cstruct.nix { };
+
+    macaddr-sexp = callPackage ../development/ocaml-modules/macaddr/sexp.nix { };
+
     macaque = callPackage ../development/ocaml-modules/macaque { };
 
     magic-mime = callPackage ../development/ocaml-modules/magic-mime { };
 
     magick = callPackage ../development/ocaml-modules/magick { };
 
-    markup = callPackage ../development/ocaml-modules/markup { lwt = ocaml_lwt; };
+    markup = callPackage ../development/ocaml-modules/markup { };
 
     mdx = callPackage ../development/ocaml-modules/mdx { };
 
@@ -531,6 +551,8 @@ let
 
     mirage-crypto-rng = callPackage ../development/ocaml-modules/mirage-crypto/rng.nix { };
 
+    mirage-crypto-rng-mirage = callPackage ../development/ocaml-modules/mirage-crypto/rng-mirage.nix { };
+
     mirage-device = callPackage ../development/ocaml-modules/mirage-device { };
 
     mirage-flow = callPackage ../development/ocaml-modules/mirage-flow { };
@@ -565,11 +587,13 @@ let
 
     mtime =  callPackage ../development/ocaml-modules/mtime { };
 
+    mustache =  callPackage ../development/ocaml-modules/mustache { };
+
     nocrypto =  callPackage ../development/ocaml-modules/nocrypto { };
 
-    notty = callPackage ../development/ocaml-modules/notty {
-      lwt = ocaml_lwt;
-    };
+    nonstd =  callPackage ../development/ocaml-modules/nonstd { };
+
+    notty = callPackage ../development/ocaml-modules/notty { };
 
     npy = callPackage ../development/ocaml-modules/npy {
       inherit (pkgs.python3Packages) numpy;
@@ -684,8 +708,24 @@ let
 
     omd = callPackage ../development/ocaml-modules/omd { };
 
+    opam-core = callPackage ../development/ocaml-modules/opam-core {
+      inherit (pkgs) opam unzip;
+    };
+
     opam-file-format = callPackage ../development/ocaml-modules/opam-file-format { };
 
+    opam-format = callPackage ../development/ocaml-modules/opam-format {
+      inherit (pkgs) unzip;
+    };
+
+    opam-repository = callPackage ../development/ocaml-modules/opam-repository {
+      inherit (pkgs) unzip;
+    };
+
+    opam-state = callPackage ../development/ocaml-modules/opam-state {
+      inherit (pkgs) unzip;
+    };
+
     opium = callPackage ../development/ocaml-modules/opium { };
 
     opium_kernel = callPackage ../development/ocaml-modules/opium_kernel { };
@@ -712,12 +752,16 @@ let
 
     phylogenetics = callPackage ../development/ocaml-modules/phylogenetics { };
 
-    piqi = callPackage ../development/ocaml-modules/piqi {
-      base64 = base64_2;
-    };
+    piqi = callPackage ../development/ocaml-modules/piqi { };
 
     piqi-ocaml = callPackage ../development/ocaml-modules/piqi-ocaml { };
 
+    posix-base = callPackage ../development/ocaml-modules/posix/base.nix { };
+
+    posix-socket = callPackage ../development/ocaml-modules/posix/socket.nix { };
+
+    posix-types = callPackage ../development/ocaml-modules/posix/types.nix { };
+
     ppxfind = callPackage ../development/ocaml-modules/ppxfind { };
 
     ppxlib = callPackage ../development/ocaml-modules/ppxlib { };
@@ -738,10 +782,14 @@ let
 
     seq = callPackage ../development/ocaml-modules/seq { };
 
+    sosa = callPackage ../development/ocaml-modules/sosa { };
+
     spacetime_lib = callPackage ../development/ocaml-modules/spacetime_lib { };
 
     sqlexpr = callPackage ../development/ocaml-modules/sqlexpr { };
 
+    tsort = callPackage ../development/ocaml-modules/tsort { };
+
     tuntap = callPackage ../development/ocaml-modules/tuntap { };
 
     tyxml = callPackage ../development/ocaml-modules/tyxml { };
@@ -822,14 +870,26 @@ let
 
     ppx_tools_versioned = callPackage ../development/ocaml-modules/ppx_tools_versioned { };
 
+    ppx_yojson_conv_lib = callPackage ../development/ocaml-modules/ppx_yojson_conv_lib {};
+
     printbox = callPackage ../development/ocaml-modules/printbox { };
 
     process = callPackage ../development/ocaml-modules/process { };
 
+    prof_spacetime = callPackage ../development/ocaml-modules/prof_spacetime { };
+
     ptmap = callPackage ../development/ocaml-modules/ptmap { };
 
+    ptset = callPackage ../development/ocaml-modules/ptset { };
+
     pycaml = callPackage ../development/ocaml-modules/pycaml { };
 
+    qcheck-alcotest = callPackage ../development/ocaml-modules/qcheck/alcotest.nix { };
+
+    qcheck-core = callPackage ../development/ocaml-modules/qcheck/core.nix { };
+
+    qcheck-ounit = callPackage ../development/ocaml-modules/qcheck/ounit.nix { };
+
     qcheck = callPackage ../development/ocaml-modules/qcheck { };
 
     qtest = callPackage ../development/ocaml-modules/qtest { };
@@ -862,6 +922,10 @@ let
 
     sqlite3EZ = callPackage ../development/ocaml-modules/sqlite3EZ { };
 
+    srt = callPackage ../development/ocaml-modules/srt {
+      inherit (pkgs) srt;
+    };
+
     ssl = callPackage ../development/ocaml-modules/ssl { };
 
     stdlib-shims = callPackage ../development/ocaml-modules/stdlib-shims { };
@@ -911,6 +975,8 @@ let
 
     wasm = callPackage ../development/ocaml-modules/wasm { };
 
+    webbrowser = callPackage ../development/ocaml-modules/webbrowser { };
+
     webmachine = callPackage ../development/ocaml-modules/webmachine { };
 
     wtf8 = callPackage ../development/ocaml-modules/wtf8 { };
@@ -951,7 +1017,7 @@ let
     janeStreet =
     if lib.versionOlder "4.08" ocaml.version
     then import ../development/ocaml-modules/janestreet/0.13.nix {
-      inherit ctypes janePackage num octavius ppxlib re;
+      inherit ctypes dune-configurator janePackage num octavius ppxlib re;
       inherit (pkgs) openssl;
     }
     else if lib.versionOlder "4.07" ocaml.version
@@ -1181,7 +1247,7 @@ in let inherit (pkgs) callPackage; in rec
 
   ocamlPackages_4_11 = mkOcamlPackages (callPackage ../development/compilers/ocaml/4.11.nix { });
 
-  ocamlPackages_latest = ocamlPackages_4_10;
+  ocamlPackages_latest = ocamlPackages_4_11;
 
   ocamlPackages = ocamlPackages_4_10;
 }
diff --git a/nixpkgs/pkgs/top-level/perl-packages.nix b/nixpkgs/pkgs/top-level/perl-packages.nix
index a592287dd8d2..608f84070c3c 100644
--- a/nixpkgs/pkgs/top-level/perl-packages.nix
+++ b/nixpkgs/pkgs/top-level/perl-packages.nix
@@ -11,8 +11,8 @@
 , perl, overrides, buildPerl, shortenPerlShebang
 }:
 
-# cpan2nix assumes that perl-packages.nix will be used only with perl 5.28.2 or above
-assert stdenv.lib.versionAtLeast perl.version "5.28.2";
+# cpan2nix assumes that perl-packages.nix will be used only with perl 5.30.3 or above
+assert stdenv.lib.versionAtLeast perl.version "5.30.3";
 let
   inherit (stdenv.lib) maintainers;
   self = _self // (overrides pkgs);
@@ -162,10 +162,10 @@ let
 
   AlienBuild = buildPerlPackage {
     pname = "Alien-Build";
-    version = "1.98";
+    version = "2.26";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Build-1.98.tar.gz";
-      sha256 = "12w9da57616gmcj69yv7cjv423cj957dm0f84cn2q093g64kjmif";
+      url = mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Build-2.26.tar.gz;
+      sha256 = "0wfgfj6rvscqs3ixpybgrdmmnpxvf194iwbnl89jkqc25ipmc15i";
     };
     propagatedBuildInputs = [ CaptureTiny FFICheckLib FileWhich Filechdir PathTiny PkgConfig ];
     buildInputs = [ DevelHide Test2Suite ];
@@ -177,13 +177,13 @@ let
 
   AlienGMP = buildPerlPackage {
     pname = "Alien-GMP";
-    version = "1.14";
+    version = "1.16";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-GMP-1.14.tar.gz";
-      sha256 = "116vvh1b0d1ykkklqgfxfn89g3bw90a4cj3qrvsnkw1kk5cmn60a";
+      url = mirror://cpan/authors/id/P/PL/PLICEASE/Alien-GMP-1.16.tar.gz;
+      sha256 = "199x24pl6jnqshgnl066lhdf2fkqa6l1fml9g3qn5grmwn7d8309";
     };
     propagatedBuildInputs = [ AlienBuild ];
-    buildInputs = [ pkgs.gmp DevelChecklib HTMLParser SortVersions Test2Suite URI ];
+    buildInputs = [ pkgs.gmp Alienm4 DevelChecklib IOSocketSSL MojoDOM58 NetSSLeay SortVersions Test2Suite URI ];
     meta = {
       description = "Alien package for the GNU Multiple Precision library.";
       license = with stdenv.lib.licenses; [ lgpl3Plus ];
@@ -192,10 +192,10 @@ let
 
   AlienLibxml2 = buildPerlPackage {
     pname = "Alien-Libxml2";
-    version = "0.12";
+    version = "0.16";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Libxml2-0.12.tar.gz";
-      sha256 = "0b3dj1510fxldhicijvw390gnh5j1k6rjzcc2jzs9f8nwfkqh6r2";
+      url = mirror://cpan/authors/id/P/PL/PLICEASE/Alien-Libxml2-0.16.tar.gz;
+      sha256 = "15rvllspikyr8412v8dpl2f2w5vxnjgnddnkz378sy2g0mc6mw2n";
     };
     propagatedBuildInputs = [ AlienBuild ];
     buildInputs = [ pkgs.libxml2 MojoDOM58 SortVersions Test2Suite URI ];
@@ -273,6 +273,52 @@ let
     buildInputs = [ LWPProtocolHttps ];
   };
 
+  Alienm4 = buildPerlPackage {
+    pname = "Alien-m4";
+    version = "0.19";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PL/PLICEASE/Alien-m4-0.19.tar.gz;
+      sha256 = "1xnh8qa99dcvqcqzbpy0s5jrxvn7wa5ydz3lfd56n358l5jfzns9";
+    };
+    propagatedBuildInputs = [ AlienBuild ];
+    buildInputs = [ Alienpatch IOSocketSSL MojoDOM58 NetSSLeay SortVersions Test2Suite URI pkgs.gnum4 ];
+    meta = {
+      description = "Find or build GNU m4";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  Alienpatch = buildPerlPackage {
+    pname = "Alien-patch";
+    version = "0.15";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PL/PLICEASE/Alien-patch-0.15.tar.gz;
+      sha256 = "1l00mq56596wn09nn7fv552j2aa7sgh46bvx5xlncsnrn8jp5mpy";
+    };
+    propagatedBuildInputs = [ AlienBuild ];
+    buildInputs = [ IOSocketSSL MojoDOM58 NetSSLeay SortVersions Test2Suite URI ];
+    meta = {
+      description = "Find or build patch";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AltCryptRSABigInt = buildPerlPackage {
+    pname = "Alt-Crypt-RSA-BigInt";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANAJ/Alt-Crypt-RSA-BigInt-0.06.tar.gz";
+      sha256 = "76f434cab36999cdf09811345bb39d6b7cbed7e085b02338328c7f46e08b38f3";
+    };
+    propagatedBuildInputs = [ ClassLoader ConvertASCIIArmour CryptBlowfish CryptCBC DataBuffer DigestMD2 MathBigIntGMP MathPrimeUtil MathPrimeUtilGMP SortVersions TieEncryptedHash ];
+    meta = {
+      homepage = "https://github.com/danaj/Alt-Crypt-RSA-BigInt";
+      description = "RSA public-key cryptosystem, using Math::BigInt";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   AnyEvent = buildPerlPackage {
     pname = "AnyEvent";
     version = "7.17";
@@ -316,10 +362,10 @@ let
 
   AnyEventHTTP = buildPerlPackage {
     pname = "AnyEvent-HTTP";
-    version = "2.24";
+    version = "2.25";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/AnyEvent-HTTP-2.24.tar.gz";
-      sha256 = "0358a542baa45403d81c0a70e43e79c044ddfa1371161d043f002acef63121dd";
+      url = mirror://cpan/authors/id/M/ML/MLEHMANN/AnyEvent-HTTP-2.25.tar.gz;
+      sha256 = "5cfa53416124176f6f4cd32b00ea8ca79a2d5df51258683989cd04fe86e25013";
     };
     propagatedBuildInputs = [ AnyEvent commonsense ];
   };
@@ -340,12 +386,12 @@ let
 
   AnyEventRabbitMQ = buildPerlPackage {
     pname = "AnyEvent-RabbitMQ";
-    version = "1.19";
+    version = "1.22";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DL/DLAMBLEY/AnyEvent-RabbitMQ-1.19.tar.gz";
-      sha256 = "a440ec2fa5a4018ad44739baaa9601cc460ad497282e89110ba8e3cf23312f0a";
+      url = mirror://cpan/authors/id/D/DL/DLAMBLEY/AnyEvent-RabbitMQ-1.22.tar.gz;
+      sha256 = "98c52a1fe700710f3e5bc55a38b25de625e9b2e8341d278dcf9e1b3f3d19acee";
     };
-    buildInputs = [ TestException ];
+    buildInputs = [ FileShareDirInstall TestException ];
     propagatedBuildInputs = [ AnyEvent DevelGlobalDestruction FileShareDir ListMoreUtils NetAMQP Readonly namespaceclean ];
     meta = {
       description = "An asynchronous and multi channel Perl AMQP client";
@@ -378,10 +424,10 @@ let
 
   ApacheAuthCookie = buildPerlPackage {
     pname = "Apache-AuthCookie";
-    version = "3.28";
+    version = "3.30";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MS/MSCHOUT/Apache-AuthCookie-3.28.tar.gz";
-      sha256 = "bcd795a7f654a94ae0a6bd734ba4d8ba1085371fca486229dba49f1c2d62142b";
+      url = mirror://cpan/authors/id/M/MS/MSCHOUT/Apache-AuthCookie-3.30.tar.gz;
+      sha256 = "1f71b94d3d55a950a4b32dae4e90f6e76c8157508a7e2aee50621b179aadb1fb";
     };
     buildInputs = [ ApacheTest ];
     propagatedBuildInputs = [ ClassLoad HTTPBody HashMultiValue WWWFormUrlEncoded ];
@@ -456,10 +502,10 @@ let
 
   AppClusterSSH = buildPerlModule {
     pname = "App-ClusterSSH";
-    version = "4.14";
+    version = "4.15";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DU/DUNCS/App-ClusterSSH-4.14.tar.gz";
-      sha256 = "020p28xl9507blvr8lr7hdxk1cl8jjkz5rkrkh7g538g52sa2cmi";
+      url = mirror://cpan/authors/id/D/DU/DUNCS/App-ClusterSSH-4.15.tar.gz;
+      sha256 = "1apk4yi9wfxrvspsfxr74jl1zr5z56ghknnmx8k5648zga1mn9z1";
     };
     propagatedBuildInputs = [ ExceptionClass Tk X11ProtocolOther XMLSimple ];
     buildInputs = [ DataDump FileWhich Readonly TestDifferences TestTrap ];
@@ -585,13 +631,13 @@ let
   };
 
   AppSqitch = buildPerlModule {
-    version = "1.0.0";
+    version = "1.1.0";
     pname = "App-Sqitch";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-v1.0.0.tar.gz";
-      sha256 = "f46466c1e9ad8bbabf6844fed4f6e534ea475731de61b775ad7c331db1ca9c5c";
+      url = mirror://cpan/authors/id/D/DW/DWHEELER/App-Sqitch-v1.1.0.tar.gz;
+      sha256 = "ee146cd75d6300837e6ca559bb0bde247d42123c96b2c5d4b2800f38d3e3d1ab";
     };
-    buildInputs = [ CaptureTiny TestDeep TestDir TestException TestFile TestFileContents TestMockModule TestNoWarnings TestWarn ];
+    buildInputs = [ CaptureTiny TestDeep TestDir TestException TestFile TestFileContents TestMockModule TestMockObject TestNoWarnings TestWarn ];
     propagatedBuildInputs = [ Clone ConfigGitLike DBI DateTime EncodeLocale HashMerge IOPager IPCRun3 IPCSystemSimple ListMoreUtils PathClass PerlIOutf8_strict StringFormatter StringShellQuote TemplateTiny Throwable TypeTiny URIdb libintl_perl ];
     doCheck = false;  # Can't find home directory.
     meta = {
@@ -720,10 +766,10 @@ let
 
   ArchiveTar = buildPerlPackage {
     pname = "Archive-Tar";
-    version = "2.32";
+    version = "2.36";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BI/BINGOS/Archive-Tar-2.32.tar.gz";
-      sha256 = "92783780731ab0c9247adf43e70f4801e8317e3915ea87e38b85c8f734e8fca2";
+      url = mirror://cpan/authors/id/B/BI/BINGOS/Archive-Tar-2.36.tar.gz;
+      sha256 = "16ba52e0babe54f8c4deb11b103a46186763173607d59649130d0fffdd36968e";
     };
     meta = {
       description = "Manipulates TAR archives";
@@ -746,10 +792,10 @@ let
 
   ArchiveZip = buildPerlPackage {
     pname = "Archive-Zip";
-    version = "1.67";
+    version = "1.68";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PH/PHRED/Archive-Zip-1.67.tar.gz";
-      sha256 = "0x17b7s5c3bqy9gx7psdqxbzkilylnwwd3c3i68vynbn9hs788my";
+      url = mirror://cpan/authors/id/P/PH/PHRED/Archive-Zip-1.68.tar.gz;
+      sha256 = "0l663s3a68p8r2qjy4pn1g05lx0i8js8wpz7qqln3bsvg1fihklq";
     };
     buildInputs = [ TestMockModule ];
     meta = {
@@ -758,6 +804,20 @@ let
     };
   };
 
+  AstroFITSHeader = buildPerlModule rec {
+    pname = "Astro-FITS-Header";
+    version = "3.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TJ/TJENNESS/${pname}-${version}.tar.gz";
+      sha256 = "530d59ef0c0935f9862d187187a2d7583b12c639bb67db14f983322b161892d9";
+    };
+    meta = {
+      homepage = "http://github.com/timj/perl-Astro-FITS-Header/tree/master";
+      description = "Object-oriented interface to FITS HDUs";
+      license = stdenv.lib.licenses.free;
+    };
+  };
+
   AudioScan = buildPerlPackage {
     pname = "Audio-Scan";
     version = "1.01";
@@ -803,6 +863,49 @@ let
     };
   };
 
+  AuthenKrb5 = buildPerlModule {
+    pname = "Authen-Krb5";
+    version = "1.905";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IO/IOANR/Authen-Krb5-1.905.tar.gz";
+      sha256 = "0kgpl0x1qxq1p2ccxy8qqkrvqba2gq6aq6p931qnz9812nxh0yyp";
+    };
+    perlPreHook = "export LD=$CC";
+    propagatedBuildInputs = [ pkgs.libkrb5 DevelChecklib FileWhich PkgConfig ];
+    meta = {
+      description = "XS bindings for Kerberos 5";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  AuthenKrb5Admin = buildPerlPackage rec {
+    pname = "Authen-Krb5-Admin";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SJ/SJQUINNEY/${pname}-${version}.tar.gz";
+      sha256 = "5dd49cacd983efd61a8c3f1a56571bb73785eb155908b5d7bec97eed78df0c54";
+    };
+    propagatedBuildInputs = [ pkgs.krb5Full.dev AuthenKrb5 ];
+    # The following ENV variables are required by Makefile.PL to find
+    # programs in krb5Full.dev. It is not enough to just specify the
+    # path to krb5-config as this tool returns the prefix of krb5Full,
+    # which implies a working value for KRB5_LIBDIR, but not the others.
+    perlPreHook = ''
+      export KRB5_CONFTOOL=${pkgs.krb5Full.dev}/bin/krb5-config
+      export KRB5_BINDIR=${pkgs.krb5Full.dev}/bin
+      export KRB5_INCDIR=${pkgs.krb5Full.dev}/include
+    '';
+    # Tests require working Kerberos infrastructure so replace with a
+    # simple attempt to exercise the module.
+    checkPhase = ''
+      perl -I blib/lib -I blib/arch -MAuthen::Krb5::Admin -e 'print "1..1\nok 1\n"'
+    '';
+    meta = {
+      description = "Perl extension for MIT Kerberos 5 admin interface";
+      license = stdenv.lib.licenses.bsd3;
+    };
+  };
+
   AuthenModAuthPubTkt = buildPerlPackage {
     pname = "Authen-ModAuthPubTkt";
     version = "0.1.1";
@@ -906,7 +1009,7 @@ let
       sha256 = "45108c239a7373d00941dcf0d171acd03e7c16a63ce6f7d9568ff052b17cf5a8";
     };
     buildInputs = [ TestFailWarnings TestFatal ];
-    propagatedBuildInputs = [ AuthenSASLSASLprep CryptURandom Moo PBKDF2Tiny TryTiny TypeTiny namespaceclean ];
+    propagatedBuildInputs = [ AuthenSASLSASLprep CryptURandom Moo PBKDF2Tiny TypeTiny namespaceclean ];
     meta = {
       homepage = "https://github.com/dagolden/Authen-SCRAM";
       description = "Salted Challenge Response Authentication Mechanism (RFC 5802)";
@@ -1019,10 +1122,10 @@ let
 
   BCOW = buildPerlPackage {
     pname = "B-COW";
-    version = "0.002";
+    version = "0.004";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AT/ATOOMIC/B-COW-0.002.tar.gz";
-      sha256 = "0z2px2x15vr1y5rxsv7d80kh186ld7a45nbm4lsbs07g8y0p7rzw";
+      url = mirror://cpan/authors/id/A/AT/ATOOMIC/B-COW-0.004.tar.gz;
+      sha256 = "0lazb25jzhdha4dmrkdxn1pw1crc6iqzspvcq315p944xmsvgbzw";
     };
     meta = {
       description = "B::COW additional B helpers to check COW status";
@@ -1042,6 +1145,20 @@ let
     };
   };
 
+  BeanstalkClient = buildPerlPackage {
+    pname = "Beanstalk-Client";
+    version = "1.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GB/GBARR/Beanstalk-Client-1.07.tar.gz";
+      sha256 = "3188ab1127f2caba97df65c84f69db0ec70c64e5d70f296f9a2674fa79c112cc";
+    };
+    propagatedBuildInputs = [ ClassAccessor YAMLSyck ];
+    meta = {
+      description = "Client to communicate with beanstalkd server";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   BerkeleyDB = buildPerlPackage {
     pname = "BerkeleyDB";
     version = "0.63";
@@ -1236,10 +1353,10 @@ let
 
   BusinessISSN = buildPerlPackage {
     pname = "Business-ISSN";
-    version = "1.003";
+    version = "1.004";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BD/BDFOY/Business-ISSN-1.003.tar.gz";
-      sha256 = "1272456c19937a24bc5f9a0db9dc447043591137719ee4dc955a63be544b99d1";
+      url = mirror://cpan/authors/id/B/BD/BDFOY/Business-ISSN-1.004.tar.gz;
+      sha256 = "97ecab15d24d11e2852bf0b28f84c8798bd38402a0a69e17be0e6689b272715e";
     };
     meta = {
       description = "Work with International Standard Serial Numbers";
@@ -1275,10 +1392,10 @@ let
 
   CacheFastMmap = buildPerlPackage {
     pname = "Cache-FastMmap";
-    version = "1.48";
+    version = "1.49";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RO/ROBM/Cache-FastMmap-1.48.tar.gz";
-      sha256 = "118y5lxwa092zrii7mcwnqypff7424w1dpgfkg8zlnz7h2mmnd9c";
+      url = mirror://cpan/authors/id/R/RO/ROBM/Cache-FastMmap-1.49.tar.gz;
+      sha256 = "1azz66d4syk6b6gc95drkglajvf8igiy3449hpsm444inis9mscm";
     };
   };
 
@@ -1310,10 +1427,10 @@ let
 
   CacheMemcachedFast = buildPerlPackage {
     pname = "Cache-Memcached-Fast";
-    version = "0.25";
+    version = "0.26";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RA/RAZ/Cache-Memcached-Fast-0.25.tar.gz";
-      sha256 = "0ijw5hlzas1aprp3s6wzabch426m1d8cvp1wn9qphrn4jj82aakq";
+      url = mirror://cpan/authors/id/R/RA/RAZ/Cache-Memcached-Fast-0.26.tar.gz;
+      sha256 = "16m0xafidycrlcvbv3zmbr5pzvqyqyr2qb0khpry99nc4bcld3jy";
     };
     meta = {
       description = "Perl client for B<memcached>, in C language";
@@ -1618,10 +1735,10 @@ let
 
   CatalystDevel = buildPerlPackage {
     pname = "Catalyst-Devel";
-    version = "1.39";
+    version = "1.40";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IL/ILMARI/Catalyst-Devel-1.39.tar.gz";
-      sha256 = "bce371ba801c7d79eff3257e0af907cf62f140de968f0d63bf55be37d702a58a";
+      url = mirror://cpan/authors/id/J/JJ/JJNAPIORK/Catalyst-Devel-1.40.tar.gz;
+      sha256 = "8c5f064b01fa58dce395ae46f33a0d37c4cb03472dde7c5076b6df1f99e116bb";
     };
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ CatalystActionRenderView CatalystPluginConfigLoader CatalystPluginStaticSimple ConfigGeneral FileChangeNotify FileCopyRecursive ModuleInstall TemplateToolkit ];
@@ -2063,7 +2180,7 @@ let
       ../development/perl-modules/CatalystXScriptServerStarman-fork-arg.patch
     ];
     buildInputs = [ TestWWWMechanizeCatalyst ];
-    propagatedBuildInputs = [ CatalystRuntime Starman ];
+    propagatedBuildInputs = [ CatalystRuntime Starman PodParser ];
     meta = {
       description = "Replace the development server with Starman";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -2087,10 +2204,10 @@ let
 
   Catmandu = buildPerlModule {
     pname = "Catmandu";
-    version = "1.2011";
+    version = "1.2012";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/N/NI/NICS/Catmandu-1.2011.tar.gz";
-      sha256 = "0awl5qhciphnr1ihq66ssd2hzxvh1ddbr016sxb0qhxbzqv77sb9";
+      url = mirror://cpan/authors/id/N/NI/NICS/Catmandu-1.2012.tar.gz;
+      sha256 = "1dn5bqfg9vswwmvpgfziirqbjlm3gzswhknnmvg07igv1jcrk3d0";
     };
     propagatedBuildInputs = [ AnyURIEscape AppCmd CGIExpand ConfigOnion CpanelJSONXS DataCompare DataUtil IOHandleUtil LWP ListMoreUtils LogAny MIMETypes ModuleInfo MooXAliases ParserMGC PathIteratorRule PathTiny StringCamelCase TextCSV TextHogan Throwable TryTinyByClass URITemplate UUIDTiny YAMLLibYAML namespaceclean ];
     buildInputs = [ LogAnyAdapterLog4perl LogLog4perl TestDeep TestException TestLWPUserAgent TestPod ];
@@ -2115,12 +2232,26 @@ let
     };
   };
 
+  CDDBFile = buildPerlPackage {
+    pname = "CDDB-File";
+    version = "1.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TM/TMTM/CDDB-File-1.05.tar.gz;
+      sha256 = "1jf7xhd4w9iwabhz2wajh6fid3nyvkid9q5gdhyff52w86f45rpb";
+    };
+    meta = {
+      description = "Parse a CDDB/freedb data file";
+      license = stdenv.lib.licenses.artistic1;
+    };
+  };
+
+
   CGI = buildPerlPackage {
     pname = "CGI";
-    version = "4.45";
+    version = "4.49";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/L/LE/LEEJO/CGI-4.45.tar.gz";
-      sha256 = "f6c1513740ee502e947d30131da18a5595dbcd19962d3dd0ff5dedf3cd1ed407";
+      url = mirror://cpan/authors/id/L/LE/LEEJO/CGI-4.49.tar.gz;
+      sha256 = "dd5e9ce69c6e6ed9b42f0a0daeaead1c6caad3fbba2b2a4977b076bc29556b5e";
     };
     buildInputs = [ TestDeep TestNoWarnings TestWarn ];
     propagatedBuildInputs = [ HTMLParser ];
@@ -2211,10 +2342,10 @@ let
 
   CGIMinimal = buildPerlModule {
     pname = "CGI-Minimal";
-    version = "1.29";
+    version = "1.30";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SN/SNOWHARE/CGI-Minimal-1.29.tar.gz";
-      sha256 = "36c785ffacf5cdee4f1a7219ca1848b7e1700bdd71cd9116e1f00545ec88475d";
+      url = mirror://cpan/authors/id/S/SN/SNOWHARE/CGI-Minimal-1.30.tar.gz;
+      sha256 = "b94d50821b02611da6ee5423193145078c4dbb282f2b162a4b0d58094997bc47";
     };
     meta = {
       description = "A lightweight CGI form processing package";
@@ -2248,10 +2379,10 @@ let
 
   CGISimple = buildPerlModule {
     pname = "CGI-Simple";
-    version = "1.22";
+    version = "1.25";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MA/MANWAR/CGI-Simple-1.22.tar.gz";
-      sha256 = "13c7iwnnavky10ab87pi8jc1kqph03s0rhvj7myn7szhbfisc4gn";
+      url = mirror://cpan/authors/id/M/MA/MANWAR/CGI-Simple-1.25.tar.gz;
+      sha256 = "0zpl7sa8jvv3zba2vcxf3qsrjk7kk2vcznfdpmxydw06x8vczrp5";
     };
     propagatedBuildInputs = [ IOStringy ];
     meta = {
@@ -2308,6 +2439,19 @@ let
     };
   };
 
+  CiscoIPPhone = buildPerlPackage {
+    pname = "Cisco-IPPhone";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MR/MRPALMER/Cisco-IPPhone-0.05.tar.gz";
+      sha256 = "b03ca263f8f41a6ec545c5393213a3146d36bd45335ade99af51dd42ab6ee16d";
+    };
+    meta = {
+      description = "Package for creating Cisco IPPhone XML objects";
+      license = with stdenv.lib.licenses; [ artistic1 ];
+    };
+  };
+
   CLASS = buildPerlPackage {
     pname = "CLASS";
     version = "1.00";
@@ -2562,6 +2706,19 @@ let
     };
   };
 
+  ClassLoader = buildPerlPackage rec {
+    pname = "Class-Loader";
+    version = "2.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VI/VIPUL/${pname}-${version}.tar.gz";
+      sha256 = "4fef2076ead60423454ff1f4e82859a9a9b9942b5fb8eee0c98b9c63c9f2b8e7";
+    };
+    meta = {
+      description = "Load modules and create objects on demand";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   ClassMakeMethods = buildPerlPackage {
     pname = "Class-MakeMethods";
     version = "1.01";
@@ -2773,12 +2930,28 @@ let
     };
   };
 
+  CLIHelpers = buildPerlPackage {
+    pname = "CLI-Helpers";
+    version = "1.8";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BL/BLHOTSKY/CLI-Helpers-1.8.tar.gz";
+      sha256 = "1hgiynpy7q4gbx1d9pwnzdzil36k13vjxhscalj710ikcddvjz92";
+    };
+    buildInputs = [ PodCoverageTrustPod TestPerlCritic ];
+    propagatedBuildInputs = [ CaptureTiny RefUtil SubExporter TermReadKey YAML ];
+    meta = {
+      homepage = "https://github.com/reyjrar/CLI-Helpers";
+      description = "Subroutines for making simple command line scripts";
+      license = stdenv.lib.licenses.bsd3;
+    };
+  };
+
   Clipboard = buildPerlModule {
     pname = "Clipboard";
-    version = "0.22";
+    version = "0.26";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Clipboard-0.22.tar.gz";
-      sha256 = "9fdb4dfc2e9bc2f3990b5b71649094dfe83aa12172c5a1809cf7e8b3be295ca7";
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/Clipboard-0.26.tar.gz;
+      sha256 = "886ae43dc8538f9bfc4e07fdbcf09b7fbd6ee59c31f364618c859de14953c58a";
     };
     meta = {
       description = "Clipboard - Copy and Paste with any OS";
@@ -2795,10 +2968,10 @@ let
 
   Clone = buildPerlPackage {
     pname = "Clone";
-    version = "0.43";
+    version = "0.45";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AT/ATOOMIC/Clone-0.43.tar.gz";
-      sha256 = "1npf5s4b90ds6lv8gn76b2w4bdh0z5ni5zk4skgc2db5d12560lr";
+      url = mirror://cpan/authors/id/A/AT/ATOOMIC/Clone-0.45.tar.gz;
+      sha256 = "1rm9g68fklni63jdkrlgqq6yfj95fm33p2bq90p475gsi8sfxdnb";
     };
     meta = {
       description = "Recursively copy Perl datatypes";
@@ -2835,10 +3008,10 @@ let
 
   CodeTidyAll = buildPerlPackage {
      pname = "Code-TidyAll";
-     version = "0.75";
+     version = "0.78";
      src = fetchurl {
-       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Code-TidyAll-0.75.tar.gz";
-       sha256 = "0gplkyds3zmiqpvw8x8kg3g81jcm58kcxvwg5yk4dm2fdkl77xqf";
+       url = mirror://cpan/authors/id/D/DR/DROLSKY/Code-TidyAll-0.78.tar.gz;
+       sha256 = "1dmr6zkgcnc6cam204f00g5yly46cplbn9k45ginw02rv10vnpij";
      };
      propagatedBuildInputs = [ CaptureTiny ConfigINI FileWhich Filepushd IPCRun3 IPCSystemSimple ListCompare ListSomeUtils LogAny Moo ScopeGuard SpecioLibraryPathTiny TextDiff TimeDate TimeDurationParse ];
      buildInputs = [ TestClass TestClassMost TestDeep TestDifferences TestException TestFatal TestMost TestWarn TestWarnings librelative ];
@@ -2864,10 +3037,10 @@ let
 
   commonsense = buildPerlPackage {
     pname = "common-sense";
-    version = "3.74";
+    version = "3.75";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/common-sense-3.74.tar.gz";
-      sha256 = "1wxv2s0hbjkrnssvxvsds0k213awg5pgdlrpkr6xkpnimc17s7vp";
+      url = mirror://cpan/authors/id/M/ML/MLEHMANN/common-sense-3.75.tar.gz;
+      sha256 = "0zhfp8f0czg69ycwn7r6ayg6idm5kyh2ai06g5s6s07kli61qsm8";
     };
     meta = {
       description = "Implements some sane defaults for Perl programs";
@@ -2877,10 +3050,10 @@ let
 
   CompressBzip2 = buildPerlPackage {
     pname = "Compress-Bzip2";
-    version = "2.26";
+    version = "2.27";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RU/RURBAN/Compress-Bzip2-2.26.tar.gz";
-      sha256 = "5132f0c5f377a54d77ee36d332aa0ece585c22a40f2c31f2619e40262f5c4f0c";
+      url = mirror://cpan/authors/id/R/RU/RURBAN/Compress-Bzip2-2.27.tar.gz;
+      sha256 = "a284c506ac8ef5b02136a15814271dcba10400b5ce818359cf3325ccde7bb3d3";
     };
     meta = {
       description = "Interface to Bzip2 compression library";
@@ -2984,10 +3157,10 @@ let
 
   ConfigGitLike = buildPerlPackage {
     pname = "Config-GitLike";
-    version = "1.17";
+    version = "1.18";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AL/ALEXMV/Config-GitLike-1.17.tar.gz";
-      sha256 = "674a07b814fdcf9d323088d093245bcd066aaee24ec0914cb4decc9a943de54e";
+      url = mirror://cpan/authors/id/A/AL/ALEXMV/Config-GitLike-1.18.tar.gz;
+      sha256 = "f7ae7440f3adab5b9ff9aa57216d84fd4a681009b9584e32da42f8bb71e332c5";
     };
     buildInputs = [ TestException ];
     propagatedBuildInputs = [ Moo MooXTypesMooseLike ];
@@ -3044,10 +3217,10 @@ let
 
   ConfigIniFiles = buildPerlModule {
     pname = "Config-IniFiles";
-    version = "3.000002";
+    version = "3.000003";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Config-IniFiles-3.000002.tar.gz";
-      sha256 = "d92ed6ed2db98d5addf732c96d2a9c15d9f878c7e8b355bb7a5c1668e3f8ba09";
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/Config-IniFiles-3.000003.tar.gz;
+      sha256 = "3c457b65d98e5ff40bdb9cf814b0d5983eb0c53fb8696bda3ba035ad2acd6802";
     };
     propagatedBuildInputs = [ IOStringy ];
     meta = {
@@ -3216,6 +3389,20 @@ let
      };
   };
 
+  ConvertASCIIArmour = buildPerlPackage {
+    pname = "Convert-ASCII-Armour";
+    version = "1.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VI/VIPUL/Convert-ASCII-Armour-1.4.tar.gz";
+      sha256 = "97e8acb6eb2a2a91af7d6cf0d2dff6fa42aaf939fc7d6d1c6057a4f0df52c904";
+    };
+    meta = {
+      description = "Convert binary octets into ASCII armoured messages";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   ConvertASN1 = buildPerlPackage {
     pname = "Convert-ASN1";
     version = "0.27";
@@ -3380,18 +3567,11 @@ let
 
   CPAN = buildPerlPackage {
     pname = "CPAN";
-    version = "2.27";
+    version = "2.28";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AN/ANDK/CPAN-2.27.tar.gz";
-      sha256 = "b4b1471a2881e2d616f59e723879b4110ae485b79d5962f115119c28cf69e07f";
+      url = "mirror://cpan/authors/id/A/AN/ANDK/CPAN-2.28.tar.gz";
+      sha256 = "39d357489283d479695027640d7fc25b42ec3c52003071d1ec94496e34af5974";
     };
-    patches = [
-      (fetchpatch {
-        url = "https://github.com/andk/cpanpm/commit/10da44f1757aff6971e3bc4ed38ab115e738c740.diff";
-        name = "patch-YAML-modules-default-for-LoadBlessed-was-changed-to-false";
-        sha256 = "0sr2nxkr1cwavpvpxsqcsryfd5fjv4fkxfihd03jzavv5awj79hp";
-      })
-    ];
     propagatedBuildInputs = [ ArchiveZip CPANChecksums CPANPerlReleases Expect FileHomeDir LWP LogLog4perl ModuleBuild TermReadKey YAML YAMLLibYAML YAMLSyck ];
     meta = {
       description = "Query, download and build perl modules from CPAN sites";
@@ -3399,6 +3579,27 @@ let
     };
   };
 
+  CPANMini = buildPerlPackage {
+    pname = "CPAN-Mini";
+    version = "1.111016";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/CPAN-Mini-1.111016.tar.gz";
+      sha256 = "5a297afc3e367ad80811464d4eb7e4dd3caff8ba499cdd2b558f6279443a7657";
+    };
+    nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin shortenPerlShebang;
+    propagatedBuildInputs = [ FileHomeDir LWP LWPProtocolHttps URI ];
+    postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/minicpan
+    '';
+
+    meta = {
+      homepage = "https://github.com/rjbs/CPAN-Mini";
+      description = "Create a minimal mirror of CPAN";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   CpanelJSONXS = buildPerlPackage {
     pname = "Cpanel-JSON-XS";
     version = "4.17";
@@ -3483,10 +3684,10 @@ let
 
   CPANPerlReleases = buildPerlPackage {
     pname = "CPAN-Perl-Releases";
-    version = "5.20200120";
+    version = "5.20200607";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BI/BINGOS/CPAN-Perl-Releases-5.20200120.tar.gz";
-      sha256 = "0xhn05aiyrdcxhmps0qg9ivr9p7278mjix7719rv2k5kd2nf1jg8";
+      url = mirror://cpan/authors/id/B/BI/BINGOS/CPAN-Perl-Releases-5.20200607.tar.gz;
+      sha256 = "0x09ghg5s69kajpw19qs8bhdzma900ipry4zizi37qcdby3kadf1";
     };
     meta = {
       homepage = "https://github.com/bingos/cpan-perl-releases";
@@ -3497,10 +3698,10 @@ let
 
   CPANPLUS = buildPerlPackage {
     pname = "CPANPLUS";
-    version = "0.9906";
+    version = "0.9908";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BI/BINGOS/CPANPLUS-0.9906.tar.gz";
-      sha256 = "0w1gi4w7xriqhh44ssgg2abk5dfxchshqfab4cs3j4ab6p8vf9j5";
+      url = mirror://cpan/authors/id/B/BI/BINGOS/CPANPLUS-0.9908.tar.gz;
+      sha256 = "1m4xas67fax947kahvg4jsnsr2r1i58c5g3f1bixh7krgnsarxjq";
     };
     propagatedBuildInputs = [ ArchiveExtract ModulePluggable ObjectAccessor PackageConstants TermUI ];
     meta = {
@@ -3512,10 +3713,10 @@ let
 
   CPANUploader = buildPerlPackage {
     pname = "CPAN-Uploader";
-    version = "0.103013";
+    version = "0.103014";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/CPAN-Uploader-0.103013.tar.gz";
-      sha256 = "07k8ia8gvj9mrz7a2lckgd3vxjsahfr43lgrb85474dkhz94f5pq";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/CPAN-Uploader-0.103014.tar.gz;
+      sha256 = "1pi15yj06yyzx6xzhhclfhnbssrrpj27ncya2bh21mxnjmy52kqy";
     };
     propagatedBuildInputs = [ FileHomeDir GetoptLongDescriptive LWPProtocolHttps TermReadKey ];
     meta = {
@@ -3534,6 +3735,20 @@ let
     };
   };
 
+  CryptCAST5_PP = buildPerlPackage {
+    pname = "Crypt-CAST5_PP";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOBMATH/Crypt-CAST5_PP-1.04.tar.gz";
+      sha256 = "cba98a80403fb898a14c928f237f44816b4848641840ce2517363c2c071b5327";
+    };
+    meta = {
+      description = "CAST5 block cipher in pure Perl";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   CryptCBC = buildPerlPackage {
     pname = "Crypt-CBC";
     version = "2.33";
@@ -3571,6 +3786,21 @@ let
     };
   };
 
+  CryptDES_EDE3 = buildPerlPackage {
+    pname = "Crypt-DES_EDE3";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BT/BTROTT/Crypt-DES_EDE3-0.01.tar.gz";
+      sha256 = "9cb2e04b625e9cc0833cd499f76fd12556583ececa782a9758a55e3f969748d6";
+    };
+    propagatedBuildInputs = [ CryptDES ];
+    meta = {
+      description = "Triple-DES EDE encryption/decryption";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   CryptDH = buildPerlPackage {
     pname = "Crypt-DH";
     version = "0.07";
@@ -3593,12 +3823,27 @@ let
     NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
   };
 
+  CryptDSA = buildPerlPackage {
+    pname = "Crypt-DSA";
+    version = "1.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AD/ADAMK/Crypt-DSA-1.17.tar.gz";
+      sha256 = "d1b8585f6bf746f76e5dc5da3641d325ed656bc2e5f344b54514b55c31009a03";
+    };
+    propagatedBuildInputs = [ DataBuffer DigestSHA1 FileWhich ];
+    meta = {
+      description = "DSA Signatures and Key Generation";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   CryptECB = buildPerlPackage {
     pname = "Crypt-ECB";
-    version = "2.21";
+    version = "2.22";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AP/APPEL/Crypt-ECB-2.21.tar.gz";
-      sha256 = "890f8b3040220ea705ee5ca4f9bd23435a1779bc3ffa75533736e6c9c21d1015";
+      url = mirror://cpan/authors/id/A/AP/APPEL/Crypt-ECB-2.22.tar.gz;
+      sha256 = "f5af62e908cd31a34b2b813135a0718016fd003ffa0021ffbdd84c50158267aa";
     };
     meta = with stdenv.lib; {
       description = "Use block ciphers using ECB mode";
@@ -3628,12 +3873,12 @@ let
 
   CryptJWT = buildPerlPackage {
     pname = "Crypt-JWT";
-    version = "0.025";
+    version = "0.028";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MI/MIK/Crypt-JWT-0.025.tar.gz";
-      sha256 = "2def87936645723de70fcc11cb380b1faddf9c5678832e4fc6116f267987087d";
+      url = mirror://cpan/authors/id/M/MI/MIK/Crypt-JWT-0.028.tar.gz;
+      sha256 = "af819a620fa9b2d0432f718fecc3e4d8458d04b932f27fcb6217e0f39027e633";
     };
-    propagatedBuildInputs = [ CryptX JSONMaybeXS ];
+    propagatedBuildInputs = [ CryptX JSON ];
     meta = {
       description = "JSON Web Token";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -3679,6 +3924,20 @@ let
     };
   };
 
+  CryptRandom = buildPerlPackage rec {
+    pname = "Crypt-Random";
+    version = "1.52";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VI/VIPUL/${pname}-${version}.tar.gz";
+      sha256 = "a93c06de409e6f2eb2e9868ea6d4e653d99f2f7900b2c1831e1f65ace0c4ef84";
+    };
+    propagatedBuildInputs = [ ClassLoader MathPari StatisticsChiSquare ];
+    meta = {
+      description = "Interface to /dev/random and /dev/urandom";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   CryptRandomSource = buildPerlModule {
     pname = "Crypt-Random-Source";
     version = "0.14";
@@ -3726,6 +3985,21 @@ let
     };
   };
 
+  CryptRIPEMD160 = buildPerlPackage {
+    pname = "Crypt-RIPEMD160";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TODDR/Crypt-RIPEMD160-0.06.tar.gz";
+      sha256 = "ea64a1e9eb42f3d79855a392e7cca6b86e8e0bcc9aabcc5efa5fa32415b67dba";
+    };
+    meta = {
+      homepage = "http://wiki.github.com/toddr/Crypt-RIPEMD160";
+      description = "Perl extension for the RIPEMD-160 Hash function";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   CryptMySQL = buildPerlModule {
     pname = "Crypt-MySQL";
     version = "0.04";
@@ -3795,6 +4069,64 @@ let
     };
   };
 
+  CryptSodium = buildPerlPackage {
+    pname = "Crypt-Sodium";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MG/MGREGORO/Crypt-Sodium-0.11.tar.gz";
+      sha256 = "0y3c24zv4iwnvlf9zwxambk8ddram54fm6l1m5yhbskc0nhp6z4h";
+    };
+    NIX_CFLAGS_COMPILE = "-I${pkgs.libsodium.dev}/include";
+    NIX_CFLAGS_LINK = "-L${pkgs.libsodium.out}/lib -lsodium";
+    meta = {
+      homepage = "https://metacpan.org/release/Crypt-Sodium";
+      description = "Perl bindings for libsodium (NaCL)";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  CryptTwofish = buildPerlPackage {
+    pname = "Crypt-Twofish";
+    version = "2.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AM/AMS/Crypt-Twofish-2.17.tar.gz";
+      sha256 = "eed502012f0c63927a1a32e3154071cc81175d1992a893ec41f183b6e3e5d758";
+    };
+    meta = {
+      description = "The Twofish Encryption Algorithm";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  CryptOpenPGP = buildPerlPackage {
+    pname = "Crypt-OpenPGP";
+    version = "1.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SR/SROMANOV/Crypt-OpenPGP-1.12.tar.gz";
+      sha256 = "e8a7ff2a993b76a69ad6dffdbe55755be5678b84e6ec494dcd9ab966f766f50e";
+    };
+    patches = [
+      # See https://github.com/NixOS/nixpkgs/pull/93599
+      ../development/perl-modules/crypt-openpgp-remove-impure-keygen-tests.patch
+    ];
+    buildInputs = [ TestException ];
+    propagatedBuildInputs = [ AltCryptRSABigInt CryptBlowfish CryptCAST5_PP CryptDES_EDE3 CryptDSA CryptIDEA CryptRIPEMD160 CryptRijndael CryptTwofish DataBuffer FileHomeDir LWP TermReadKey URI BytesRandomSecure ];
+
+    nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/pgplet
+    '';
+
+    meta = {
+      homepage = "https://github.com/btrott/Crypt-OpenPGP";
+      description = "Pure-Perl OpenPGP implementation";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   CryptOpenSSLAES = buildPerlPackage {
     pname = "Crypt-OpenSSL-AES";
     version = "0.02";
@@ -3942,7 +4274,7 @@ let
       url = "mirror://cpan/authors/id/G/GT/GTERMARS/CSS-Minifier-XS-0.09.tar.gz";
       sha256 = "1myswrmh0sqp5xjpp03x45z8arfmgkjx0srl3r6kjsyzl1zrk9l8";
     };
-    perlPreHook = stdenv.lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
+    perlPreHook = stdenv.lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC";
     meta = {
       description = "XS based CSS minifier";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -3994,10 +4326,10 @@ let
 
   CryptX = buildPerlPackage {
     pname = "CryptX";
-    version = "0.066";
+    version = "0.068";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MI/MIK/CryptX-0.066.tar.gz";
-      sha256 = "e7e823ac4db0b452e885b0e0d5adfc8a9c5f688938f1adf3f1d91432b3238335";
+      url = mirror://cpan/authors/id/M/MI/MIK/CryptX-0.068.tar.gz;
+      sha256 = "b1806a1fa4d4b8c9265f44ac706eb0b05107d644edb24ffea1b507168e88fd59";
     };
     meta = {
       description = "Crypto toolkit";
@@ -4205,14 +4537,14 @@ let
     };
   };
 
-  DataMessagePack = buildPerlPackage {
+  DataMessagePack = buildPerlModule {
     pname = "Data-MessagePack";
-    version = "1.00";
+    version = "1.01";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SY/SYOHEX/Data-MessagePack-1.00.tar.gz";
-      sha256 = "c9f0eeaf56ee4dfd509eccba2dd838921aebdf186ba60de166443ffc4b0ba1a2";
+      url = mirror://cpan/authors/id/S/SY/SYOHEX/Data-MessagePack-1.01.tar.gz;
+      sha256 = "8fa0ed0101d04e661821a7b78e8d62ce3e19b299275bbfed178e2ba8912663ea";
     };
-    buildInputs = [ FileCopyRecursive TestRequires ];
+    buildInputs = [ DevelPPPort ModuleBuildXSUtil TestRequires ];
     meta = {
       homepage = "https://github.com/msgpack/msgpack-perl";
       description = "MessagePack serializing/deserializing";
@@ -4318,10 +4650,10 @@ let
 
   DataSerializer = buildPerlModule {
     pname = "Data-Serializer";
-    version = "0.60";
+    version = "0.65";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/N/NE/NEELY/Data-Serializer-0.60.tar.gz";
-      sha256 = "0ca4s811l7f2bqkx7vnyxbpp4f0qska89g2pvsfb3k0bhhbk0jdk";
+      url = mirror://cpan/authors/id/N/NE/NEELY/Data-Serializer-0.65.tar.gz;
+      sha256 = "048zjy8valnil8yawa3vrxr005rz95gpfwvmy2jq0g830195l58j";
     };
     meta = {
       description = "Modules that serialize data structures";
@@ -4402,7 +4734,7 @@ let
       url = "mirror://cpan/authors/id/B/BA/BALDUR/Data-ULID-1.0.0.tar.gz";
       sha256 = "4d757475893dbad5165f0a65c446d38b47f39019d36f77da9d29c98cbf27206f";
     };
-    propagatedBuildInputs = [ DateTime EncodeBase32GMP MathRandomSecure MathBigIntGMP ];
+    propagatedBuildInputs = [ DateTime EncodeBase32GMP MathRandomSecure ];
     meta = {
       homepage = "https://metacpan.org/release/Data-ULID";
       description = "Universally Unique Lexicographically Sortable Identifier";
@@ -4450,10 +4782,10 @@ let
 
   DataUUID = buildPerlPackage {
     pname = "Data-UUID";
-    version = "1.224";
+    version = "1.226";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/Data-UUID-1.224.tar.gz";
-      sha256 = "0z7l3fc710v830n1krgrp7wzfispi5s0h10cyk65xvxv09sw2n69";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Data-UUID-1.226.tar.gz;
+      sha256 = "0lv4k4ibxwkw7zz9hw97s34za9nvjxb4kbmgmx5sj4fll3zmfg89";
     };
   };
 
@@ -4551,10 +4883,10 @@ let
 
   DateManip = buildPerlPackage {
     pname = "Date-Manip";
-    version = "6.79";
+    version = "6.82";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SB/SBECK/Date-Manip-6.79.tar.gz";
-      sha256 = "0fllcvsd08wz71wyppyhgb6mingfihhsf5raraildggdwhnc9a3i";
+      url = mirror://cpan/authors/id/S/SB/SBECK/Date-Manip-6.82.tar.gz;
+      sha256 = "0ak72kpydwhq2z03mhdfwm3ganddzb8gawzh6crpsjvb9kwvr5ps";
     };
     # for some reason, parsing /etc/localtime does not work anymore - make sure that the fallback "/bin/date +%Z" will work
     patchPhase = ''
@@ -4581,10 +4913,10 @@ let
 
   DateTime = buildPerlPackage {
     pname = "DateTime";
-    version = "1.51";
+    version = "1.52";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-1.51.tar.gz";
-      sha256 = "1ibfq6acz1ih28vl613yygbb3r2d8ykx6di669vajhvswl6xl8ny";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-1.52.tar.gz;
+      sha256 = "1z1xpifh2kpyw7rlc8ivg9rl0qmabjq979gjp0s9agdjf9hqp0k7";
     };
     buildInputs = [ CPANMetaCheck TestFatal TestWarnings ];
     propagatedBuildInputs = [ DateTimeLocale DateTimeTimeZone ];
@@ -4733,10 +5065,10 @@ let
 
   DateTimeFormatNatural = buildPerlModule {
     pname = "DateTime-Format-Natural";
-    version = "1.08";
+    version = "1.09";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SC/SCHUBIGER/DateTime-Format-Natural-1.08.tar.gz";
-      sha256 = "0hfk9cqfy0j49vqllhxfikbkqjhf7jrm6zb9i2bxq2ywm8qnz1rj";
+      url = mirror://cpan/authors/id/S/SC/SCHUBIGER/DateTime-Format-Natural-1.09.tar.gz;
+      sha256 = "0mxhzib3wq408mqa8wgdlvxxjrmv2fn07ydbpyx6qny1867kczbc";
     };
     buildInputs = [ ModuleUtil TestMockTime ];
     propagatedBuildInputs = [ Clone DateTime ListMoreUtils ParamsValidate boolean ];
@@ -4777,10 +5109,10 @@ let
 
   DateTimeFormatStrptime = buildPerlPackage {
     pname = "DateTime-Format-Strptime";
-    version = "1.76";
+    version = "1.77";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-Strptime-1.76.tar.gz";
-      sha256 = "593c26466ed7a3d2cefe9215f1619666c5116bd3a551e0aa74b64a6353fcb50d";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-Format-Strptime-1.77.tar.gz;
+      sha256 = "2fa43c838ecf5356f221a91a41c81dba22e7860c5474b4a61723259898173e4a";
     };
     buildInputs = [ TestFatal TestWarnings ];
     propagatedBuildInputs = [ DateTime ];
@@ -4849,10 +5181,10 @@ let
 
   DateTimeTimeZone = buildPerlPackage {
     pname = "DateTime-TimeZone";
-    version = "2.38";
+    version = "2.39";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-TimeZone-2.38.tar.gz";
-      sha256 = "0e5c99ef22471f4d262ac590ce5ce8177094d7a92f380d8eea6219f5a12dc0cd";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/DateTime-TimeZone-2.39.tar.gz;
+      sha256 = "65a49083bf465b42c6a65df575efaceb87b5ba5a997d4e91e6ddba57190c8fca";
     };
     buildInputs = [ TestFatal TestRequires ];
     propagatedBuildInputs = [ ClassSingleton ParamsValidationCompiler Specio namespaceautoclean ];
@@ -4947,12 +5279,12 @@ let
 
   DevelCheckOS = buildPerlPackage {
     pname = "Devel-CheckOS";
-    version = "1.81";
+    version = "1.83";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-CheckOS-1.81.tar.gz";
-      sha256 = "f3c17b56b79283b62616f938d36c57adc9df06bfaa295ff98be21e9014a23b10";
+      url = mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-CheckOS-1.83.tar.gz;
+      sha256 = "b20fb5ab55d2cf8539fdc7268d77cdbf944408e620c4969023e687ddd28c9972";
     };
-    propagatedBuildInputs = [ DataCompare ];
+    propagatedBuildInputs = [ FileFindRule ];
   };
 
   DevelLeak = buildPerlPackage {
@@ -4970,10 +5302,10 @@ let
 
   DevelPatchPerl = buildPerlPackage {
     pname = "Devel-PatchPerl";
-    version = "1.84";
+    version = "2.00";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BI/BINGOS/Devel-PatchPerl-1.84.tar.gz";
-      sha256 = "1nlil7mq8vc3lbsr5p3zr7jqaclkr0blhmb8sgkyc7mbvhml9jzp";
+      url = mirror://cpan/authors/id/B/BI/BINGOS/Devel-PatchPerl-2.00.tar.gz;
+      sha256 = "07yy02v86ia7j8qbn46jqan8c8d6xdqigvv5a4wmkqwln7jxmhrr";
     };
     propagatedBuildInputs = [ Filepushd ModulePluggable ];
     meta = {
@@ -4999,10 +5331,10 @@ let
 
   DevelPPPort = buildPerlPackage {
     pname = "Devel-PPPort";
-    version = "3.56";
+    version = "3.58";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AT/ATOOMIC/Devel-PPPort-3.56.tar.gz";
-      sha256 = "628476dbfeb7be92471e48f75fe0d36659b92493669ebd02cf04e3a13429521b";
+      url = mirror://cpan/authors/id/A/AT/ATOOMIC/Devel-PPPort-3.58.tar.gz;
+      sha256 = "531ff79f9e74962df2dba7b2e526b8a5208cfb6bcdc01d85732fda8c1fde0c00";
     };
     meta = {
       description = "Perl/Pollution/Portability";
@@ -5063,7 +5395,7 @@ let
       url = "mirror://cpan/authors/id/H/HM/HMBRAND/DBD-CSV-0.54.tgz";
       sha256 = "bc597cd7195e5a023e2b3413d8dc614602b9b3f279f436027881796464d4f0be";
     };
-    propagatedBuildInputs = [ DBI TextCSV_XS SQLStatement ModuleRuntime ParamsUtil ];
+    propagatedBuildInputs = [ DBI SQLStatement TextCSV_XS ];
   };
 
   DBDMock = buildPerlModule {
@@ -5110,6 +5442,23 @@ let
     };
   };
 
+  DBDMariaDB = buildPerlPackage {
+    pname = "DBD-MariaDB";
+    version = "1.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PA/PALI/DBD-MariaDB-1.21.tar.gz";
+      sha256 = "068l4ybja5mmy89lwgzl9c1xs37f4fgvf7j7n8k4f78dg8rjp5zm";
+    };
+    buildInputs = [ pkgs.mariadb-connector-c DevelChecklib TestDeep ];
+    propagatedBuildInputs = [ DBI ];
+    meta = {
+      homepage = "https://github.com/gooddata/DBD-MariaDB";
+      description = "MariaDB and MySQL driver for the Perl5 Database Interface (DBI)";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   DBDmysql = buildPerlPackage {
     pname = "DBD-mysql";
     version = "4.050";
@@ -5148,11 +5497,11 @@ let
 
   DBDPg = buildPerlPackage {
     pname = "DBD-Pg";
-    version = "3.10.3";
+    version = "3.12.3";
 
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TU/TURNSTEP/DBD-Pg-3.10.3.tar.gz";
-      sha256 = "0swj2pkga92z15rnq9f0j9s84j5ancgas0ncd4k230bd8advlgn6";
+      url = mirror://cpan/authors/id/T/TU/TURNSTEP/DBD-Pg-3.12.3.tar.gz;
+      sha256 = "0rrlg2rwgkpcx67qf7081g7mj2shpqhj2iyxrq5fixf32nb0ad4v";
     };
 
     buildInputs = [ pkgs.postgresql ];
@@ -5208,10 +5557,10 @@ let
 
   DBI = buildPerlPackage {
     pname = "DBI";
-    version = "1.642";
+    version = "1.643";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TI/TIMB/DBI-1.642.tar.gz";
-      sha256 = "3f2025023a56286cebd15cb495e36ccd9b456c3cc229bf2ce1f69e9ebfc27f5d";
+      url = mirror://cpan/authors/id/T/TI/TIMB/DBI-1.643.tar.gz;
+      sha256 = "8a2b993db560a2c373c174ee976a51027dd780ec766ae17620c20393d2e836fa";
     };
     postInstall = stdenv.lib.optionalString (perl ? crossVersion) ''
       mkdir -p $out/${perl.libPrefix}/cross_perl/${perl.version}/DBI
@@ -5351,10 +5700,10 @@ let
 
   DBIxClassHelpers = buildPerlPackage {
     pname = "DBIx-Class-Helpers";
-    version = "2.034002";
+    version = "2.036000";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/F/FR/FREW/DBIx-Class-Helpers-2.034002.tar.gz";
-      sha256 = "08ab0eae514653b7f59444a0a19188ef65351889e9aefb19a2ea5a159fe2574b";
+      url = mirror://cpan/authors/id/F/FR/FREW/DBIx-Class-Helpers-2.036000.tar.gz;
+      sha256 = "b7b8b4891a983c034ef0b45f4112404a0a40550c4e217daeb7a22ca16861efdb";
     };
     buildInputs = [ DBDSQLite DateTimeFormatSQLite TestDeep TestFatal TestRoo aliased ];
     propagatedBuildInputs = [ CarpClan DBIxClassCandy DBIxIntrospector SafeIsa TextBrew ];
@@ -5477,6 +5826,20 @@ let
     };
   };
 
+  DataBuffer = buildPerlPackage {
+    pname = "Data-Buffer";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BT/BTROTT/Data-Buffer-0.04.tar.gz";
+      sha256 = "2b3d09b7bcf389fc116207b283bee250e348d44c9c63460bee67efab4dd21bb4";
+    };
+    meta = {
+      description = "Read/write buffer class";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   DBIxIntrospector = buildPerlPackage {
     pname = "DBIx-Introspector";
     version = "0.001005";
@@ -5503,10 +5866,10 @@ let
 
   DevelDeclare = buildPerlPackage {
     pname = "Devel-Declare";
-    version = "0.006019";
+    version = "0.006022";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/ET/ETHER/Devel-Declare-0.006019.tar.gz";
-      sha256 = "ac719dc289cbf53fbb3b090ccd3a55a9d207f24e09480423c96f7185af131808";
+      url = mirror://cpan/authors/id/E/ET/ETHER/Devel-Declare-0.006022.tar.gz;
+      sha256 = "72f29ca35646a593be98311ffddb72033ae1e8a9d8254c62aa248bd6260e596e";
     };
     buildInputs = [ ExtUtilsDepends TestRequires ];
     propagatedBuildInputs = [ BHooksEndOfScope BHooksOPCheck SubName ];
@@ -5557,10 +5920,10 @@ let
 
   DevelHide = buildPerlPackage {
     pname = "Devel-Hide";
-    version = "0.0010";
+    version = "0.0013";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/F/FE/FERREIRA/Devel-Hide-0.0010.tar.gz";
-      sha256 = "10jyv9nmv513hs75rls5yx2xn82513xnnhjir3dxiwgb1ykfyvvm";
+      url = mirror://cpan/authors/id/D/DC/DCANTRELL/Devel-Hide-0.0013.tar.gz;
+      sha256 = "1jvyy3yasiwyjsn9ay9sja3ch4wcjc4wk5l22vjsclq29z7vphvg";
     };
   };
 
@@ -5685,6 +6048,20 @@ let
     };
   };
 
+  DigestMD2 = buildPerlPackage {
+    pname = "Digest-MD2";
+    version = "2.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GAAS/Digest-MD2-2.04.tar.gz";
+      sha256 = "d0aabf4834c20ac411bea427c4a308b59a5fcaa327679ef5294c1d68ab71eed3";
+    };
+    meta = {
+      description = "Perl interface to the MD2 Algorithm";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   DigestMD4 = buildPerlPackage {
     pname = "Digest-MD4";
     version = "1.9";
@@ -5793,13 +6170,13 @@ let
 
   DistZilla = buildPerlPackage {
     pname = "Dist-Zilla";
-    version = "6.012";
+    version = "6.015";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/Dist-Zilla-6.012.tar.gz";
-      sha256 = "0w1hhvxcdf52ln940f8i37adv2gp7l8ryf2nm6m7haynyrsk0n37";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Dist-Zilla-6.015.tar.gz;
+      sha256 = "06w9mdk46y4n2dshkx6laphkqk08wfw6bqpsa5q2yb4lky0yb212";
     };
     buildInputs = [ CPANMetaCheck TestDeep TestFailWarnings TestFatal TestFileShareDir ];
-    propagatedBuildInputs = [ AppCmd CPANUploader ConfigMVPReaderINI DateTime FileCopyRecursive FileFindRule FileShareDirInstall Filepushd LogDispatchouli MooseXLazyRequire MooseXSetOnce MooseXTypesPerl PathTiny PerlPrereqScanner PodEventual SoftwareLicense TermEncoding TermUI YAMLTiny ];
+    propagatedBuildInputs = [ AppCmd CPANUploader ConfigMVPReaderINI DateTime FileCopyRecursive FileFindRule FileShareDirInstall Filepushd LogDispatchouli MooseXLazyRequire MooseXSetOnce MooseXTypesPerl PathTiny PerlPrereqScanner SoftwareLicense TermEncoding TermUI YAMLTiny ];
     meta = {
       homepage = "http://dzil.org/";
       description = "Distribution builder; installer not included!";
@@ -6132,6 +6509,21 @@ let
      };
   };
 
+  Dotenv = buildPerlPackage {
+    pname = "Dotenv";
+    version = "0.002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BO/BOOK/Dotenv-0.002.tar.gz";
+      sha256 = "04c7a7cc4511617d7a70c4ca410d10707dc496248cdad20240ae242223212454";
+    };
+    buildInputs = [ TestCPANMeta TestPod TestPodCoverage ];
+    propagatedBuildInputs = [ PathTiny PodParser ];
+    meta = {
+      description = "Support for C<dotenv> in Perl";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   Dumbbench = buildPerlPackage {
     pname = "Dumbbench";
     version = "0.111";
@@ -6246,10 +6638,10 @@ let
 
   EmailMIME = buildPerlPackage {
     pname = "Email-MIME";
-    version = "1.946";
+    version = "1.949";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-1.946.tar.gz";
-      sha256 = "68ee79023165d77bec99a2e12ef89ad4e12501e6c321f6822053dc4f411c337c";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-1.949.tar.gz;
+      sha256 = "3b0adf6bb413cfe51d75f8ba79aca80deafc98dc1179aa7b2d7a79aff5a6ab9c";
     };
     propagatedBuildInputs = [ EmailAddressXS EmailMIMEContentType EmailMIMEEncodings EmailMessageID EmailSimple MIMETypes ModuleRuntime ];
     meta = {
@@ -6277,16 +6669,17 @@ let
 
   EmailMIMEContentType = buildPerlPackage {
     pname = "Email-MIME-ContentType";
-    version = "1.022";
+    version = "1.024";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-ContentType-1.022.tar.gz";
-      sha256 = "9abb7280b0da62a855ae5528b14deb94341a84e721af0a7e5a2adc3534ec5310";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Email-MIME-ContentType-1.024.tar.gz;
+      sha256 = "42d164ac7ff4dc2ea848e710fe21fa85509a3bcbb91ed2d356e4aba951ed8835";
     };
     meta = {
       homepage = "https://github.com/rjbs/Email-MIME-ContentType";
       description = "Parse a MIME Content-Type Header";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
+    propagatedBuildInputs = [ TextUnidecode ];
   };
 
   EmailMIMEEncodings = buildPerlPackage {
@@ -6328,6 +6721,7 @@ let
       sha256 = "0fb1gymqa8nlj540dmbb1rhs2b0ln3y9ippbgj0miswcw92iaayb";
     };
     propagatedBuildInputs = [ EmailMIME EmailSender IOAll IOString OLEStorage_Lite ];
+    preCheck = "rm t/internals.t t/plain_jpeg_attached.t"; # these tests expect EmailMIME version 1.946 and fail with 1.949 (the output difference in benign)
     meta = with stdenv.lib; {
       homepage = "https://www.matijs.net/software/msgconv/";
       description = "A .MSG to mbox converter";
@@ -6400,10 +6794,10 @@ let
 
   Encode = buildPerlPackage {
     pname = "Encode";
-    version = "3.02";
+    version = "3.06";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-3.02.tar.gz";
-      sha256 = "5865be4951870f62f43722818d076d7724306c75c8f268346b282351cbc820a8";
+      url = mirror://cpan/authors/id/D/DA/DANKOGAI/Encode-3.06.tar.gz;
+      sha256 = "5b2dcd6861287880584e63b2e518840d483aa38da70194cf64d9957282851eea";
     };
     meta = {
       description = "Character encodings in Perl";
@@ -6573,10 +6967,10 @@ let
 
   EV = buildPerlPackage {
     pname = "EV";
-    version = "4.32";
+    version = "4.33";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/EV-4.32.tar.gz";
-      sha256 = "b82a8b89bb9cca475f6242c8621dc2c48f24851ca61558e1bd592b8506752936";
+      url = mirror://cpan/authors/id/M/ML/MLEHMANN/EV-4.33.tar.gz;
+      sha256 = "4aee8391b88113b42187f91fd49245fdc8e9b193a15ac202f519caae2aa8ea35";
     };
     buildInputs = [ CanaryStability ];
     propagatedBuildInputs = [ commonsense ];
@@ -6675,10 +7069,10 @@ let
 
   ExporterTiny = buildPerlPackage {
     pname = "Exporter-Tiny";
-    version = "1.002001";
+    version = "1.002002";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.002001.tar.gz";
-      sha256 = "a82c334c02ce4b0f9ea77c67bf77738f76a9b8aa4bae5c7209d1c76453d3c48d";
+      url = mirror://cpan/authors/id/T/TO/TOBYINK/Exporter-Tiny-1.002002.tar.gz;
+      sha256 = "00f0b95716b18157132c6c118ded8ba31392563d19e490433e9a65382e707101";
     };
     meta = {
       description = "An exporter with the features of Sub::Exporter but only core dependencies";
@@ -6995,10 +7389,10 @@ let
 
   FFICheckLib = buildPerlPackage {
     pname = "FFI-CheckLib";
-    version = "0.26";
+    version = "0.27";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PL/PLICEASE/FFI-CheckLib-0.26.tar.gz";
-      sha256 = "0rbzm4cisn4vdj1kc0sa6v8m1b3mjkryi5w14hk1d13zh3q3pqq6";
+      url = mirror://cpan/authors/id/P/PL/PLICEASE/FFI-CheckLib-0.27.tar.gz;
+      sha256 = "0x1dk4hlhvcbgwivf345phbqz0v5hawxxnby21h8bkagq93jfi4d";
     };
     buildInputs = [ Test2Suite ];
     meta = {
@@ -7062,10 +7456,10 @@ let
 
   FileBOM = buildPerlModule {
     pname = "File-BOM";
-    version = "0.16";
+    version = "0.18";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MA/MATTLAW/File-BOM-0.16.tar.gz";
-      sha256 = "97091a72bb1d3a7b5cac1dfb5372962b6f8055729189d0f3fd2c959c8ff374cf";
+      url = mirror://cpan/authors/id/M/MA/MATTLAW/File-BOM-0.18.tar.gz;
+      sha256 = "28edc43fcb118e11bc458c9ae889d56d388c1d9bc29997b00b1dffd8573823a3";
     };
     buildInputs = [ TestException ];
     propagatedBuildInputs = [ Readonly ];
@@ -7219,6 +7613,19 @@ let
     };
   };
 
+  FileGrep = buildPerlPackage {
+    pname = "File-Grep";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MN/MNEYLON/File-Grep-0.02.tar.gz";
+      sha256 = "462e15274eb6278521407ea302d9eea7252cd44cab2382871f7de833d5f85632";
+    };
+    meta = {
+      description = "Find matches to a pattern in a series of files and related functions";
+      maintainers = [ maintainers.limeytexan ];
+    };
+  };
+
   FileHandleUnget = buildPerlPackage {
     pname = "FileHandle-Unget";
     version = "0.1634";
@@ -7278,12 +7685,12 @@ let
 
   FileLibMagic = buildPerlPackage {
     pname = "File-LibMagic";
-    version = "1.16";
+    version = "1.22";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/File-LibMagic-1.16.tar.gz";
-      sha256 = "c8a695fac1454f52e18e2e1b624c0647cf117326014023dda69fa3e1a5f33d60";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/File-LibMagic-1.22.tar.gz;
+      sha256 = "93639bd076849e93a020fea1507f0a2b3467b8792eb5c306f2aacbbfb4d080d6";
     };
-    buildInputs = [ pkgs.file TestFatal ];
+    buildInputs = [ pkgs.file ConfigAutoConf TestFatal ];
     makeMakerFlags = "--lib=${pkgs.file}/lib";
     preCheck = ''
       substituteInPlace t/oo-api.t \
@@ -7329,6 +7736,21 @@ let
     };
   };
 
+  FileMap = buildPerlModule {
+    pname = "File-Map";
+    version = "0.66";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/L/LE/LEONT/File-Map-0.66.tar.gz;
+      sha256 = "12d540v47jscjizcry2ir5vpp5q797vmd3gn9p91brqdbk5swfz7";
+    };
+    propagatedBuildInputs = [ PerlIOLayers SubExporterProgressive ];
+    buildInputs = [ TestFatal TestWarnings ];
+    meta = {
+      description = "Memory mapping made simple and safe.";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   FileModified = buildPerlPackage {
     pname = "File-Modified";
     version = "0.10";
@@ -7381,6 +7803,11 @@ let
       url = "mirror://cpan/authors/id/C/CW/CWEST/File-Pid-1.01.tar.gz";
       sha256 = "bafeee8fdc96eb06306a0c58bbdb7209b6de45f850e75fdc6b16db576e05e422";
     };
+    patches = [(fetchpatch {
+      name = "missing-pidfile.patch";
+      url = "https://sources.debian.org/data/main/libf/libfile-pid-perl/1.01-2/debian/patches/missing-pidfile.patch";
+      sha256 = "1wvax2qdpfs9mgksnc12dhby9b9w19isp50dc55wd3d741ihh6sl";
+    })];
     propagatedBuildInputs = [ ClassAccessor ];
     meta = {
       license = stdenv.lib.licenses.free; # Same as Perl
@@ -7510,10 +7937,10 @@ let
 
   FileSlurp = buildPerlPackage {
     pname = "File-Slurp";
-    version = "9999.29";
+    version = "9999.30";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/C/CA/CAPOEIRAB/File-Slurp-9999.29.tar.gz";
-      sha256 = "1iqr7qi6rg45f4xa3fp48b30mnbw30xs9izxa5zf6fd6pgh4fvhf";
+      url = mirror://cpan/authors/id/C/CA/CAPOEIRAB/File-Slurp-9999.30.tar.gz;
+      sha256 = "0irpx72dk27d7c4cjr08dq4bwwbmq8gsr39hxd44widrn0yicdra";
     };
     meta = {
       description = "Simple and Efficient Reading/Writing/Modifying of Complete Files";
@@ -7768,10 +8195,10 @@ let
 
   Future = buildPerlModule {
     pname = "Future";
-    version = "0.43";
+    version = "0.45";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PEVANS/Future-0.43.tar.gz";
-      sha256 = "191qvn3jz5pk5zxykwsg1i17s45kc82rfd6kgzsv9nki1c04dzaf";
+      url = mirror://cpan/authors/id/P/PE/PEVANS/Future-0.45.tar.gz;
+      sha256 = "1h5609wd1m774h8brgm5vinz6pfmdszp2ms6ybxlyhs0p5msp36f";
     };
     buildInputs = [ TestFatal TestIdentity TestRefcount ];
     meta = {
@@ -7782,13 +8209,13 @@ let
 
   GamesSolitaireVerify = buildPerlModule {
     pname = "Games-Solitaire-Verify";
-    version = "0.2202";
+    version = "0.2403";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Games-Solitaire-Verify-0.2202.tar.gz";
-      sha256 = "14fe240613b41c9d3e7cc560eaabd78bd13ded66d2838b738b74f7d1811d9263";
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/Games-Solitaire-Verify-0.2403.tar.gz;
+      sha256 = "e5ab475c82ba1cb088ad28f423ca514d46944d6ae3c3eb55e9636e9e7f1dc893";
     };
     buildInputs = [ DirManifest TestDifferences ];
-    propagatedBuildInputs = [ ClassXSAccessor ExceptionClass ListMoreUtils PathTiny ];
+    propagatedBuildInputs = [ ClassXSAccessor ExceptionClass PathTiny ];
     meta = {
       description = "Verify solutions for solitaire games";
       license = stdenv.lib.licenses.mit;
@@ -7903,10 +8330,10 @@ let
 
   GetoptLongDescriptive = buildPerlPackage {
     pname = "Getopt-Long-Descriptive";
-    version = "0.104";
+    version = "0.105";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/Getopt-Long-Descriptive-0.104.tar.gz";
-      sha256 = "878bc1782c5e196a08a52fa252bbfce1aeb0546d073eac164fc6b80b4cea1e28";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Getopt-Long-Descriptive-0.105.tar.gz;
+      sha256 = "a71cdbcf4043588b26a42a13d151c243f6eccf38e8fc0b18ffb5b53651ab8c15";
     };
     buildInputs = [ CPANMetaCheck TestFatal TestWarnings ];
     propagatedBuildInputs = [ ParamsValidate SubExporter ];
@@ -7942,7 +8369,7 @@ let
   };
 
   GitAutofixup = buildPerlPackage rec {
-    pname = "GitAutofixup";
+    pname = "App-Git-Autofixup";
     version = "0.002007";
     src = fetchurl {
       url = "mirror://cpan/authors/id/T/TO/TORBIAK/App-Git-Autofixup-${version}.tar.gz";
@@ -8002,10 +8429,10 @@ let
 
   Glib = buildPerlPackage {
     pname = "Glib";
-    version = "1.3291";
+    version = "1.3293";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/X/XA/XAOC/Glib-1.3291.tar.gz";
-      sha256 = "0whz5f87wvzq8zsva85h06mkfqim2ciq845ixlvmafwxggccv0xr";
+      url = mirror://cpan/authors/id/X/XA/XAOC/Glib-1.3293.tar.gz;
+      sha256 = "005m3inz12xcsd5sr056cm1kbhmxsx2ly88ifbdv6p6cwz0s05kk";
     };
     buildInputs = [ pkgs.glib ];
     doCheck = false; # tests failing with glib 2.60 https://rt.cpan.org/Public/Bug/Display.html?id=128165
@@ -8103,10 +8530,10 @@ let
 
   GnuPGInterface = buildPerlPackage {
     pname = "GnuPG-Interface";
-    version = "0.52";
+    version = "1.00";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AL/ALEXMV/GnuPG-Interface-0.52.tar.gz";
-      sha256 = "247a9f5a88bb6745281c00d0f7d5d94e8599a92396849fd9571356dda047fd35";
+      url = mirror://cpan/authors/id/J/JE/JESSE/GnuPG-Interface-1.00.tar.gz;
+      sha256 = "97e9c809491a061b2e99fb4e50c7bf74eb42e1deb11c64b081b21b4dbe6aec2f";
     };
     buildInputs = [ pkgs.which pkgs.gnupg1compat ];
     propagatedBuildInputs = [ MooXHandlesVia MooXlate ];
@@ -8346,10 +8773,10 @@ let
 
   Gtk3 = buildPerlPackage {
     pname = "Gtk3";
-    version = "0.036";
+    version = "0.037";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/X/XA/XAOC/Gtk3-0.036.tar.gz";
-      sha256 = "1rxzhahrncv58z0n93bzlagxd8swqxiafq4qn4zv9i9jbfql8mwq";
+      url = mirror://cpan/authors/id/X/XA/XAOC/Gtk3-0.037.tar.gz;
+      sha256 = "0l9zis8l9jall1m48mgd5g4f85lsz4hcp22spal8r9wlf9af2nmz";
     };
     propagatedBuildInputs = [ pkgs.gtk3 CairoGObject GlibObjectIntrospection ];
     meta = {
@@ -8360,10 +8787,10 @@ let
 
   Gtk3SimpleList = buildPerlPackage {
     pname = "Gtk3-SimpleList";
-    version = "0.18";
+    version = "0.21";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TV/TVIGNAUD/Gtk3-SimpleList-0.18.tar.gz";
-      sha256 = "09azmc7miyvw7q21rz8cxw16zbd5i1j5hpakxy376f5vmhqqjyhp";
+      url = mirror://cpan/authors/id/T/TV/TVIGNAUD/Gtk3-SimpleList-0.21.tar.gz;
+      sha256 = "1158mnr2ldq02098hqbkwfv64d83zl3a8scll9s09g7k1c86ai0x";
     };
     meta = {
       description = "A simple interface to Gtk3's complex MVC list widget";
@@ -8381,6 +8808,21 @@ let
     };
   };
 
+  HamAPRSFAP = buildPerlPackage {
+    pname = "Ham-APRS-FAP";
+    version = "1.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HE/HESSU/Ham-APRS-FAP-1.21.tar.gz";
+      sha256 = "e01b455d46f44710dbcf21b6fa843f09358ce60eee1c4141bc74e0a204d3a020";
+    };
+    propagatedBuildInputs = [ DateCalc ];
+    meta = with stdenv.lib; {
+      description = "Finnish APRS Parser (Fabulous APRS Parser)";
+      maintainers = with maintainers; [ andrew-d ];
+      license = with licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   HashDiff = buildPerlPackage {
     pname = "Hash-Diff";
     version = "0.010";
@@ -8551,10 +8993,10 @@ let
 
   HTMLForm = buildPerlPackage {
     pname = "HTML-Form";
-    version = "6.05";
+    version = "6.07";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/O/OA/OALDERS/HTML-Form-6.05.tar.gz";
-      sha256 = "14i4ldyvdvhdhvfhh9kiq6z853q2f84biq8vcpv1k5w2r80wdiin";
+      url = mirror://cpan/authors/id/O/OA/OALDERS/HTML-Form-6.07.tar.gz;
+      sha256 = "09v29cdzwjm139c67y1np3kvx2ymg3s8n723qc0ma07lmxz8rakx";
     };
     propagatedBuildInputs = [ HTMLParser HTTPMessage ];
     meta = {
@@ -8655,10 +9097,10 @@ let
 
   HTMLMason = buildPerlPackage {
     pname = "HTML-Mason";
-    version = "1.58";
+    version = "1.59";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/HTML-Mason-1.58.tar.gz";
-      sha256 = "81dc9b199f0f3b3473c97ba0ebee4b9535cd633d4e9c1ca3818615dc03dff948";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/HTML-Mason-1.59.tar.gz;
+      sha256 = "95bed2a6c488370046aa314be4b592bd65a6522f8845da8b36a6aff9a8b439d0";
     };
     buildInputs = [ TestDeep ];
     propagatedBuildInputs = [ CGI CacheCache ClassContainer ExceptionClass LogAny ];
@@ -9037,13 +9479,13 @@ let
 
   HTTPMessage = buildPerlPackage {
     pname = "HTTP-Message";
-    version = "6.18";
+    version = "6.24";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Message-6.18.tar.gz";
-      sha256 = "d060d170d388b694c58c14f4d13ed908a2807f0e581146cef45726641d809112";
+      url = mirror://cpan/authors/id/O/OA/OALDERS/HTTP-Message-6.24.tar.gz;
+      sha256 = "554a1acf2daa401091f7012f5cb82d04d281db43fbd8f39a1fcbb7ed56dde16d";
     };
     buildInputs = [ TryTiny ];
-    propagatedBuildInputs = [ EncodeLocale HTTPDate IOHTML LWPMediaTypes URI ];
+    propagatedBuildInputs = [ Clone Encode EncodeLocale HTTPDate IOHTML LWPMediaTypes URI ];
     meta = {
       homepage = "https://github.com/libwww-perl/HTTP-Message";
       description = "HTTP style message (base class)";
@@ -9186,10 +9628,10 @@ let
 
   HTTPTinyish = buildPerlPackage {
     pname = "HTTP-Tinyish";
-    version = "0.15";
+    version = "0.16";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Tinyish-0.15.tar.gz";
-      sha256 = "5d65f0ee20a9e4744acdb3ef12edae78c121f53dcbc9cf00867c5725c4513aa5";
+      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Tinyish-0.16.tar.gz;
+      sha256 = "1a3318b89987c2aa5dd18990a109e8af63049f87e4e1a9357583beed1c3bfbda";
     };
     propagatedBuildInputs = [ FileWhich IPCRun3 ];
     meta = {
@@ -9214,10 +9656,10 @@ let
 
   Imager = buildPerlPackage {
     pname = "Imager";
-    version = "1.011";
+    version = "1.012";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TO/TONYC/Imager-1.011.tar.gz";
-      sha256 = "a3aea2f0c172c2c094baeced4a3bdaa9f54e3e85c97eea2e5f8f994ba2beedfc";
+      url = mirror://cpan/authors/id/T/TO/TONYC/Imager-1.012.tar.gz;
+      sha256 = "a321c728e3277fd15de842351e69bbef0e2a5a608a31d089e5029b8381e23f21";
     };
     buildInputs = [ pkgs.freetype pkgs.fontconfig pkgs.libjpeg pkgs.libpng ];
     makeMakerFlags = "--incpath ${pkgs.libjpeg.dev}/include --libpath ${pkgs.libjpeg.out}/lib --incpath ${pkgs.libpng.dev}/include --libpath ${pkgs.libpng.out}/lib";
@@ -9354,13 +9796,14 @@ let
 
   IOAsync = buildPerlModule {
     pname = "IO-Async";
-    version = "0.75";
+    version = "0.77";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PEVANS/IO-Async-0.75.tar.gz";
-      sha256 = "1mi6gfbl11rimvzgzyj8kiqf131cg1w9nwxi47fwm9sbs0x6rkjb";
+      url = mirror://cpan/authors/id/P/PE/PEVANS/IO-Async-0.77.tar.gz;
+      sha256 = "153rfnbs2xwvx559h0ilfr0g9pg30avjad3cad659is9bdmfipri";
     };
+    preCheck = "rm t/50resolver.t"; # this test fails with "Temporary failure in name resolution" in sandbox
     propagatedBuildInputs = [ Future StructDumb ];
-    buildInputs = [ TestFatal TestIdentity TestRefcount ];
+    buildInputs = [ TestFatal TestIdentity TestMetricsAny TestRefcount ];
     meta = {
       description = "Asynchronous event-driven programming";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -9477,11 +9920,11 @@ let
   };
 
   IOPager = buildPerlPackage {
-    version = "1.01";
+    version = "1.03";
     pname = "IO-Pager";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JP/JPIERCE/IO-Pager-1.01.tgz";
-      sha256 = "19fslzb11wn8s9hwnwpnwymnw040nmychza2dpbbcqpgnk4k5zpa";
+      url = mirror://cpan/authors/id/J/JP/JPIERCE/IO-Pager-1.03.tgz;
+      sha256 = "13mmykrb391584wkw907zrmy4hg1fa9hj3zw58whdq5bjc66r1mc";
     };
     propagatedBuildInputs = [ pkgs.more FileWhich TermReadKey ]; # `more` used in tests
   };
@@ -9526,10 +9969,10 @@ let
 
   IOSocketSSL = buildPerlPackage {
     pname = "IO-Socket-SSL";
-    version = "2.066";
+    version = "2.068";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SU/SULLR/IO-Socket-SSL-2.066.tar.gz";
-      sha256 = "0d47064781a545304d5dcea5dfcee3acc2e95a32e1b4884d80505cde8ee6ebcd";
+      url = mirror://cpan/authors/id/S/SU/SULLR/IO-Socket-SSL-2.068.tar.gz;
+      sha256 = "4420fc0056f1827b4dd1245eacca0da56e2182b4ef6fc078f107dc43c3fb8ff9";
     };
     propagatedBuildInputs = [ MozillaCA NetSSLeay ];
     # Fix path to default certificate store.
@@ -9641,10 +10084,10 @@ let
 
   IPCRun = buildPerlPackage {
     pname = "IPC-Run";
-    version = "20180523.0";
+    version = "20200505.0";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TO/TODDR/IPC-Run-20180523.0.tar.gz";
-      sha256 = "0bvckcs1629ifqfb68xkapd4a74fd5qbg6z9qs8i6rx4z3nxfl1q";
+      url = mirror://cpan/authors/id/T/TO/TODDR/IPC-Run-20200505.0.tar.gz;
+      sha256 = "00f9wjvhn55zbk3n9il76xvsqy7ddk60lg6phg2rkpx0gwhvyvl1";
     };
     doCheck = false; /* attempts a network connection to localhost */
     meta = {
@@ -9675,10 +10118,10 @@ let
 
   IPCSystemSimple = buildPerlPackage {
     pname = "IPC-System-Simple";
-    version = "1.26";
+    version = "1.30";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JK/JKEENAN/IPC-System-Simple-1.26.tar.gz";
-      sha256 = "57177f21d8e8625bba32ea454f10a1fda16f93c1baf1aa80d106ab1951b465fd";
+      url = mirror://cpan/authors/id/J/JK/JKEENAN/IPC-System-Simple-1.30.tar.gz;
+      sha256 = "22e6f5222b505ee513058fdca35ab7a1eab80539b98e5ca4a923a70a8ae9ba9e";
     };
     meta = {
       description = "Run commands simply, with detailed diagnostics";
@@ -9699,14 +10142,28 @@ let
     };
   };
 
-  # TODO: use CPAN version
+  IRCUtils = buildPerlPackage {
+    pname = "IRC-Utils";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HI/HINRIK/IRC-Utils-0.12.tar.gz";
+      sha256 = "c7d6311eb6c79e983833c9e6b4e8d426d07a9874d20f4bc641b313b99c9bc8a0";
+    };
+    meta = {
+      homepage = "http://metacpan.org/release/IRC-Utils";
+      description = "Common utilities for IRC-related tasks";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   ImageExifTool = buildPerlPackage {
     pname = "Image-ExifTool";
-    version = "11.85";
+    version = "12.00";
 
     src = fetchurl {
-      url = "https://exiftool.org/Image-ExifTool-11.85.tar.gz";
-      sha256 = "15zqm0ly2b3paqg0ym44ib2mvh6k18a9q5rvdirwipqa127al2lb";
+      url = "mirror://cpan/authors/id/E/EX/EXIFTOOL/Image-ExifTool-12.00.tar.gz";
+      sha256 = "0nl5djf6hs6brnp7qnqvj3xwhj1qnjwcv35ih4yqp2mm9b4jqyfh";
     };
 
     nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin shortenPerlShebang;
@@ -9789,7 +10246,8 @@ let
 
     propagatedBuildInputs = [ Inline ];
 
-    makeMakerFlags = "J2SDK=${pkgs.jdk}";
+    # TODO: upgrade https://github.com/NixOS/nixpkgs/pull/89731
+    makeMakerFlags = "J2SDK=${pkgs.jdk8}";
 
     # FIXME: Apparently tests want to access the network.
     doCheck = false;
@@ -9825,7 +10283,7 @@ let
       url = "mirror://cpan/authors/id/G/GT/GTERMARS/JavaScript-Minifier-XS-0.11.tar.gz";
       sha256 = "1vlyhckpjbrg2v4dy9szsxxl0q44n0y1xl763mg2y2ym9g5144hm";
     };
-    perlPreHook = stdenv.lib.optionalString stdenv.isi686 "export LD=$CC"; # fix undefined reference to `__stack_chk_fail_local'
+    perlPreHook = stdenv.lib.optionalString (stdenv.isi686 || stdenv.isDarwin) "export LD=$CC";
     meta = {
       description = "XS based JavaScript minifier";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -9880,15 +10338,16 @@ let
 
   JSONMaybeXS = buildPerlPackage {
     pname = "JSON-MaybeXS";
-    version = "1.004000";
+    version = "1.004002";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/H/HA/HAARG/JSON-MaybeXS-1.004000.tar.gz";
-      sha256 = "09m1w03as6n0a00pzvaldkhm494yaf5n0g3j2cwwfx24iwpa1gar";
+      url = mirror://cpan/authors/id/E/ET/ETHER/JSON-MaybeXS-1.004002.tar.gz;
+      sha256 = "1dbpdlrk4pjwbn3wzawwsj57jqzdvi01h4kqpknwbl1n7gf2z3iv";
     };
     meta = {
       description = "Use L<Cpanel::JSON::XS> with a fallback to L<JSON::XS> and L<JSON::PP>";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
+    buildInputs = [ TestNeeds ];
   };
 
   JSONPP = buildPerlPackage {
@@ -9919,10 +10378,10 @@ let
 
   JSONParse = buildPerlPackage {
     pname = "JSON-Parse";
-    version = "0.55";
+    version = "0.56";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BK/BKB/JSON-Parse-0.55.tar.gz";
-      sha256 = "0mnjypkiga8zdxr5kbd7sf49pcbn55ivndn01p5ln4amqgdmd66w";
+      url = mirror://cpan/authors/id/B/BK/BKB/JSON-Parse-0.56.tar.gz;
+      sha256 = "1d8ir74sgf8kw1a7459ghdhh92kzrzaysapjbw1sb859sfsirkqw";
     };
     meta = {
       description = "Read JSON into a Perl variable";
@@ -9932,10 +10391,10 @@ let
 
   JSONValidator = buildPerlPackage {
     pname = "JSON-Validator";
-    version = "3.23";
+    version = "4.00";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/JSON-Validator-3.23.tar.gz";
-      sha256 = "1fzy2z7mkg5vgcjvykh5ay8yg6q496wi14x9wp5hc9agplsq7f0s";
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/JSON-Validator-4.00.tar.gz";
+      sha256 = "09p6n5ahsa13fmxb01siz9hcmyswgb05ac2njbhzim6cnx9d6cwj";
     };
     buildInputs = [ TestDeep ];
     propagatedBuildInputs = [ DataValidateDomain DataValidateIP Mojolicious NetIDNEncode YAMLLibYAML ];
@@ -10303,6 +10762,23 @@ let
     doCheck = false;
   };
 
+  LinkEmbedder = buildPerlPackage {
+    pname = "LinkEmbedder";
+    version = "1.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/LinkEmbedder-1.14.tar.gz";
+      sha256 = "1dzbh40g773ivawn1smii6jz3kisz07pcn9sbqarc857q5zaf8dq";
+    };
+    buildInputs = [ TestDeep ];
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      homepage = "https://github.com/jhthorsen/linkembedder";
+      description = "Embed / expand oEmbed resources and other URL / links";
+      license = stdenv.lib.licenses.artistic2;
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   LinuxACL = buildPerlPackage {
     pname = "Linux-ACL";
     version = "0.05";
@@ -10377,10 +10853,10 @@ let
 
   ListAllUtils = buildPerlPackage {
     pname = "List-AllUtils";
-    version = "0.15";
+    version = "0.16";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DR/DROLSKY/List-AllUtils-0.15.tar.gz";
-      sha256 = "3711fac729321d3aad8356a756fd9272094f227aa048866a3751f9d8ea6cc95d";
+      url = mirror://cpan/authors/id/D/DR/DROLSKY/List-AllUtils-0.16.tar.gz;
+      sha256 = "559b3aa911c73003a3a1ebd860d3b16e171137de8203d86be63a2390364c63dd";
     };
     propagatedBuildInputs = [ ListSomeUtils ListUtilsBy ];
     meta = {
@@ -10470,10 +10946,10 @@ let
 
   LocaleCodes = buildPerlPackage {
     pname = "Locale-Codes";
-    version = "3.62";
+    version = "3.64";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SB/SBECK/Locale-Codes-3.62.tar.gz";
-      sha256 = "11a6d343e9c321d8ee9eee4479954a4e9c1ff2145187e74fd64952092f9dfab7";
+      url = mirror://cpan/authors/id/S/SB/SBECK/Locale-Codes-3.64.tar.gz;
+      sha256 = "4ed9ef810b68cbb3417e28b34606c1b73c205ce2128535e53b4c9bf612c3e861";
     };
     meta = {
       description = "A distribution of modules to handle locale codes";
@@ -10737,10 +11213,10 @@ let
 
   LogHandler = buildPerlModule {
     pname = "Log-Handler";
-    version = "0.88";
+    version = "0.90";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BL/BLOONIX/Log-Handler-0.88.tar.gz";
-      sha256 = "45bf540ab2138ed3ff93afc205b0516dc75755b86acdcc5e75c41347833c293d";
+      url = "mirror://cpan/authors/id/B/BL/BLOONIX/Log-Handler-0.90.tar.gz";
+      sha256 = "0kgp3frz0y51j8kw67d6b4yyrrbh7syqraxchc7pfm442bkq0p1s";
     };
     propagatedBuildInputs = [ ParamsValidate ];
     meta = {
@@ -10787,10 +11263,10 @@ let
 
   MCE = buildPerlPackage {
      pname = "MCE";
-     version = "1.865";
+     version = "1.872";
      src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MA/MARIOROY/MCE-1.865.tar.gz";
-       sha256 = "1fhrc0mig5rzywz3lki0gkpvm9l9693cwaljzwxkprdkxnvk709c";
+       url = mirror://cpan/authors/id/M/MA/MARIOROY/MCE-1.872.tar.gz;
+       sha256 = "0ydih6w1di5fppcr2s9lxbyf8av7ksgqg0mirrw5mfcr92924p90";
      };
      meta = {
        description = "Many-Core Engine for Perl providing parallel processing capabilities";
@@ -10879,10 +11355,10 @@ let
 
   LWP = buildPerlPackage {
     pname = "libwww-perl";
-    version = "6.43";
+    version = "6.45";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.43.tar.gz";
-      sha256 = "e9849d7ee6fd0e89cc999e63d7612c951afd6aeea6bc721b767870d9df4ac40d";
+      url = mirror://cpan/authors/id/O/OA/OALDERS/libwww-perl-6.45.tar.gz;
+      sha256 = "4391cec148d83c32482350c8ee1bc88f1b42d33921584b83017eba1591a42954";
     };
     propagatedBuildInputs = [ FileListing HTMLParser HTTPCookies HTTPDaemon HTTPNegotiate NetHTTP TryTiny WWWRobotRules ];
     # support cross-compilation by avoiding using `has_module` which does not work in miniperl (it requires B native module)
@@ -11045,10 +11521,10 @@ let
 
   MailAuthenticationResults = buildPerlPackage {
     pname = "Mail-AuthenticationResults";
-    version = "1.20200108";
+    version = "1.20200331.1";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-AuthenticationResults-1.20200108.tar.gz";
-      sha256 = "1j003bzqh7nax604f93k1s70b1im97986p6g58a6ynv92fbnhjq5";
+      url = mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-AuthenticationResults-1.20200331.1.tar.gz;
+      sha256 = "0qpairi9gmwinws4ay46pjnckib6217k0ig604ppkmjzilwjvf2c";
     };
     buildInputs = [ TestException ];
     meta = {
@@ -11099,10 +11575,10 @@ let
 
   MailMessage = buildPerlPackage {
      pname = "Mail-Message";
-     version = "3.008";
+     version = "3.009";
      src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Message-3.008.tar.gz";
-       sha256 = "1k3d996r2aqqzbv0xx5y88blpy9rp14lhd9vzjc1hjnrl7gij63f";
+       url = mirror://cpan/authors/id/M/MA/MARKOV/Mail-Message-3.009.tar.gz;
+       sha256 = "06ngjxnw0r5s6fnwc6qd2710p5v28ssgjkghkw8nqy2glacczlir";
      };
      propagatedBuildInputs = [ IOStringy MIMETypes MailTools URI UserIdentity ];
      meta = {
@@ -11113,14 +11589,14 @@ let
 
   MailDKIM = buildPerlPackage rec {
     pname = "Mail-DKIM";
-    version = "0.58";
+    version = "1.20200513.1";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-DKIM-0.58.tar.gz";
-      sha256 = "0cgkal65qqcy57b21lgij90ba36wl66byw9i76g5yhwaa8ms8hqa";
+      url = mirror://cpan/authors/id/M/MB/MBRADSHAW/Mail-DKIM-1.20200513.1.tar.gz;
+      sha256 = "1gbnzxns4gy02lrgfmzdvr7bc0kxgxiq850mdj2y7k75nnv28iak";
     };
-    propagatedBuildInputs = [ CryptOpenSSLRSA MailAuthenticationResults MailTools NetDNSResolverMock YAMLLibYAML ];
+    propagatedBuildInputs = [ CryptOpenSSLRSA MailAuthenticationResults MailTools NetDNS ];
     doCheck = false; # tries to access the domain name system
-    buildInputs = [ TestRequiresInternet ];
+    buildInputs = [ NetDNSResolverMock TestRequiresInternet YAMLLibYAML ];
   };
 
   MailIMAPClient = buildPerlPackage {
@@ -11271,6 +11747,22 @@ let
     };
   };
 
+  MathCalcParser = buildPerlPackage {
+    pname = "Math-Calc-Parser";
+    version = "1.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DB/DBOOK/Math-Calc-Parser-1.005.tar.gz";
+      sha256 = "afc3eb496ab3a3a301b3437af07e197eb743c06090f0101dacf820302f2b7f75";
+    };
+    buildInputs = [ TestNeeds ];
+    meta = {
+      homepage = "https://github.com/Grinnz/Math-Calc-Parser";
+      description = "Parse and evaluate mathematical expressions";
+      license = stdenv.lib.licenses.artistic2;
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   MathCalcUnits = buildPerlPackage {
     pname = "Math-Calc-Units";
     version = "1.07";
@@ -11428,6 +11920,27 @@ let
     };
   };
 
+  MathPari = buildPerlPackage rec {
+    pname = "Math-Pari";
+    version = "2.030518";
+    nativeBuildInputs = [ pkgs.unzip ];
+    pariversion = "2.1.7";
+    pari_tgz = fetchurl {
+      url = "https://pari.math.u-bordeaux.fr/pub/pari/OLD/2.1/pari-${pariversion}.tgz";
+      sha256 = "1yjml5z1qdn258qh6329v7vib2gyx6q2np0s5ybci0rhmz6z4hli";
+    };
+    preConfigure = "cp ${pari_tgz} pari-${pariversion}.tgz";
+    makeMakerFlags = "pari_tgz=pari-${pariversion}.tgz";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IL/ILYAZ/modules/${pname}-${version}.zip";
+      sha256 = "dc38955a9690be6bafa8de2526212377c3ec9fe8da5ec02263a9caf94b58bb91";
+    };
+    meta = {
+      description = "Perl interface to PARI";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   MathPlanePath = buildPerlPackage {
     pname = "Math-PlanePath";
     version = "127";
@@ -11439,6 +11952,40 @@ let
     buildInputs = [ DataFloat MathBigIntLite NumberFraction ];
   };
 
+  MathPrimeUtil = buildPerlPackage {
+    pname = "Math-Prime-Util";
+    version = "0.73";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANAJ/Math-Prime-Util-0.73.tar.gz";
+      sha256 = "4afa6dd8cdb97499bd4eca6925861812c29d9f5a0f1ac27ad9d2d9c9b5602894";
+    };
+    propagatedBuildInputs = [ MathPrimeUtilGMP ];
+    meta = {
+      homepage = "https://github.com/danaj/Math-Prime-Util";
+      description = "Utilities related to prime numbers, including fast sieves and factoring";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MathPrimeUtilGMP = buildPerlPackage {
+    pname = "Math-Prime-Util-GMP";
+    version = "0.52";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DANAJ/Math-Prime-Util-GMP-0.52.tar.gz";
+      sha256 = "2697c7fd5c7e35fdec7f50ed56a67be807a2f22657589e637dad3592744003be";
+    };
+    buildInputs = [ pkgs.gmp ];
+    NIX_CFLAGS_COMPILE = "-I${pkgs.gmp.dev}/include";
+    NIX_CFLAGS_LINK = "-L${pkgs.gmp.out}/lib -lgmp";
+    meta = {
+      homepage = "https://github.com/danaj/Math-Prime-Util-GMP";
+      description = "Utilities related to prime numbers, using GMP";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   MathRandom = buildPerlPackage {
     pname = "Math-Random";
     version = "0.72";
@@ -11638,6 +12185,31 @@ let
     };
   };
 
+  MetaCPANClient = buildPerlPackage {
+    pname = "MetaCPAN-Client";
+    version = "2.026000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MICKEY/MetaCPAN-Client-2.026000.tar.gz";
+      sha256 = "ee711619d59655dac1bd2e4b894ffeb3171bd73b1ed38ba4b7b07d3690f94465";
+    };
+
+    # Most tests are online, so we only include offline tests
+    postPatch = ''
+      substituteInPlace Makefile.PL \
+         --replace '"t/*.t t/api/*.t"' \
+        '"t/00-report-prereqs.t t/api/_get.t t/api/_get_or_search.t t/api/_search.t t/entity.t t/request.t t/resultset.t"'
+    '';
+
+    buildInputs = [ LWPProtocolhttps TestFatal TestNeeds ];
+    propagatedBuildInputs = [ IOSocketSSL JSONMaybeXS Moo NetSSLeay RefUtil SafeIsa TypeTiny URI ];
+    meta = {
+      homepage = "https://github.com/metacpan/metacpan-client";
+      description = "A comprehensive, DWIM-featured client to the MetaCPAN API";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   MethodSignaturesSimple = buildPerlPackage {
     pname = "Method-Signatures-Simple";
     version = "1.07";
@@ -11652,6 +12224,20 @@ let
     };
   };
 
+  MetricsAny = buildPerlModule {
+    pname = "Metrics-Any";
+    version = "0.05";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PE/PEVANS/Metrics-Any-0.05.tar.gz;
+      sha256 = "1xg7y8szbfwmh72y8l1w0rz4jrd66hisl6hh3hyq31f52cs6hwvr";
+    };
+    buildInputs = [ TestFatal ];
+    meta = {
+      description = "abstract collection of monitoring metrics";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   # TODO: use CPAN version
   MHonArc = buildPerlPackage rec {
     pname = "MHonArc";
@@ -11738,7 +12324,7 @@ let
       sha256 = "db603ccbf6653bcd28cfa824d72e511ead019fc8afb9f1854ec872db2d3cd8da";
     };
     doCheck = false;
-    propagatedBuildInputs = [ HTMLParser LWP MIMELite URI ];
+    propagatedBuildInputs = [ LWP MIMELite ];
     meta = {
       description = "Provide routine to transform a HTML page in a MIME-Lite mail";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -11773,6 +12359,56 @@ let
     };
   };
 
+  Minion = buildPerlPackage {
+    pname = "Minion";
+    version = "10.13";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SR/SRI/Minion-10.13.tar.gz";
+      sha256 = "0nxk147v22lvc461923yv8fypqpbsajamvcvnlidk8bb54r33afj";
+    };
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      homepage = "https://github.com/mojolicious/minion";
+      description = "A high performance job queue for Perl";
+      license = stdenv.lib.licenses.artistic2;
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MinionBackendSQLite = buildPerlModule {
+    pname = "Minion-Backend-SQLite";
+    version = "5.0.3";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DB/DBOOK/Minion-Backend-SQLite-v5.0.3.tar.gz";
+      sha256 = "1ch92846cgr1s1y6nlicjxlq9r4qh1a3fig0jlr7ligzw05mxib4";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    propagatedBuildInputs = [ Minion MojoSQLite ];
+    meta = {
+      homepage = "https://github.com/Grinnz/Minion-Backend-SQLite";
+      description = "SQLite backend for Minion job queue";
+      license = stdenv.lib.licenses.artistic2;
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
+  MinionBackendmysql = buildPerlPackage {
+    pname = "Minion-Backend-mysql";
+    version = "0.21";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PR/PREACTION/Minion-Backend-mysql-0.21.tar.gz";
+      sha256 = "0dbq0pmyjcrmdjpsrkr1pxvzvdphn6mb6lk5yyyhm380prwrjahn";
+    };
+    buildInputs = [ Testmysqld ];
+    propagatedBuildInputs = [ Minion Mojomysql ];
+    meta = {
+      homepage = "https://github.com/preaction/Minion-Backend-mysql";
+      description = "MySQL backend for Minion job queue";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   MixinLinewise = buildPerlPackage {
     pname = "Mixin-Linewise";
     version = "0.108";
@@ -11832,11 +12468,11 @@ let
 
   ModernPerl = buildPerlPackage {
     pname = "Modern-Perl";
-    version = "1.20190727";
+    version = "1.20200211";
 
     src = fetchurl {
-      url = "mirror://cpan/authors/id/C/CH/CHROMATIC/Modern-Perl-1.20190727.tar.gz";
-      sha256 = "2e69d7ab7e4a53153e686c25547ad914e7464d4e5604b8851931a6e63fc51b21";
+      url = mirror://cpan/authors/id/C/CH/CHROMATIC/Modern-Perl-1.20200211.tar.gz;
+      sha256 = "da1c83cee84fab9edb9e31d7f7abac43e1337b2e66015191ec4b6da59298c480";
     };
     meta = {
       homepage = "https://github.com/chromatic/Modern-Perl";
@@ -12286,16 +12922,32 @@ let
 
   Mojolicious = buildPerlPackage {
     pname = "Mojolicious";
-    version = "8.32";
+    version = "8.58";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-8.32.tar.gz";
-      sha256 = "11fyz534syihisl8498655bqq4y8c73a6xhvl1wlq4axdgkm0d2h";
+      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-8.58.tar.gz";
+      sha256 = "0543m2g1pjm06b0yr4cffw70ki76762ria65zvrjccc2zk69pwvy";
     };
     meta = {
       homepage = "https://mojolicious.org";
       description = "Real-time web framework";
       license = stdenv.lib.licenses.artistic2;
-      maintainers = [ maintainers.thoughtpolice ];
+      maintainers = with maintainers; [ thoughtpolice sgo ];
+    };
+  };
+
+  MojoliciousPluginAssetPack = buildPerlPackage {
+    pname = "Mojolicious-Plugin-AssetPack";
+    version = "2.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-AssetPack-2.08.tar.gz";
+      sha256 = "585d9e056258b00590da109b4d5ee573fa3eb2248425247aebbfedac5a157152";
+    };
+    propagatedBuildInputs = [ FileWhich IPCRun3 Mojolicious JavaScriptMinifierXS CSSMinifierXS ];
+    meta = {
+      homepage = "https://github.com/jhthorsen/mojolicious-plugin-assetpack";
+      description = "Compress and convert css, less, sass, javascript and coffeescript files";
+      license = stdenv.lib.licenses.artistic2;
+      maintainers = with maintainers; [ sgo ];
     };
   };
 
@@ -12317,10 +12969,10 @@ let
 
   MojoliciousPluginOpenAPI = buildPerlPackage {
     pname = "Mojolicious-Plugin-OpenAPI";
-    version = "2.21";
+    version = "3.33";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-OpenAPI-2.21.tar.gz";
-      sha256 = "34b1f42d846c26d8be3a3556dc5a02dd7ab47c5612b41d3caf1ce6bc16101dc2";
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-OpenAPI-3.33.tar.gz";
+      sha256 = "0lccvanc3cici83j6fx7gg3wdcsvgv8d7hzd06r0q1mp8329sbv4";
     };
     propagatedBuildInputs = [ JSONValidator ];
     meta = {
@@ -12333,12 +12985,12 @@ let
 
   MojoliciousPluginStatus = buildPerlPackage {
     pname = "Mojolicious-Plugin-Status";
-    version = "1.01";
+    version = "1.12";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SR/SRI/Mojolicious-Plugin-Status-1.01.tar.gz";
-      sha256 = "08hvwg395sibjjkwc9fg31ngpmzf7z0467p6b0il355xqbwjpdf6";
+      url = mirror://cpan/authors/id/S/SR/SRI/Mojolicious-Plugin-Status-1.12.tar.gz;
+      sha256 = "1hn333220ba3hxl9aks0ywx933zv6klyi3a0iw571q76z5a8r2jn";
     };
-    propagatedBuildInputs = [ BSDResource IPCShareLite Mojolicious Sereal ];
+    propagatedBuildInputs = [ BSDResource CpanelJSONXS FileMap FileTemp Mojolicious ];
     meta = {
       homepage = "https://github.com/mojolicious/mojo-status";
       description = "Mojolicious server status plugin";
@@ -12363,6 +13015,22 @@ let
     };
   };
 
+  MojoliciousPluginWebpack = buildPerlPackage {
+    pname = "Mojolicious-Plugin-Webpack";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojolicious-Plugin-Webpack-0.12.tar.gz";
+      sha256 = "2a0856e68446fc22b46692d9a6737f78467654f31e58ad1935e708bddf806d2c";
+    };
+    propagatedBuildInputs = [ Mojolicious ];
+    meta = {
+      homepage = "https://github.com/jhthorsen/mojolicious-plugin-webpack";
+      description = "Mojolicious <3 Webpack";
+      license = stdenv.lib.licenses.artistic2;
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   MojoRedis = buildPerlPackage {
     pname = "Mojo-Redis";
     version = "3.24";
@@ -12398,12 +13066,13 @@ let
 
   Mojomysql = buildPerlPackage rec {
     pname = "Mojo-mysql";
-    version = "1.18";
+    version = "1.19";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TE/TEKKI/Mojo-mysql-1.18.tar.gz";
-      sha256 = "cc023f068f1ed158b5788758ea175aabe646b06d2f86049552bd7307457396bd";
+      url = mirror://cpan/authors/id/J/JH/JHTHORSEN/Mojo-mysql-1.19.tar.gz;
+      sha256 = "8695494db239e6bbec67cc686e15a60a3424b9f71af5e9936729dfd2be8a3530";
     };
     propagatedBuildInputs = [ DBDmysql Mojolicious SQLAbstract ];
+    buildInputs = [ TestDeep ];
     meta = {
       homepage = "https://github.com/jhthorsen/mojo-mysql";
       description = "Mojolicious and Async MySQL/MariaDB";
@@ -12445,13 +13114,13 @@ let
 
   MojoPg = buildPerlPackage {
     pname = "Mojo-Pg";
-    version = "4.18";
+    version = "4.19";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SR/SRI/Mojo-Pg-4.18.tar.gz";
-      sha256 = "31baacc0d6693886b3580e4b3ec6f2d053be8578809c9c1750753576bd1bda3c";
+      url = mirror://cpan/authors/id/S/SR/SRI/Mojo-Pg-4.19.tar.gz;
+      sha256 = "5061eaddddb52c9daf2cbc34bb21e9aeea6ae58a22775fdf1ffa747905ebc992";
     };
-    buildInputs = [ TestDeep ];
     propagatedBuildInputs = [ DBDPg Mojolicious SQLAbstract ];
+    buildInputs = [ TestDeep ];
     meta = {
       homepage = "https://github.com/mojolicious/mojo-pg";
       description = "Mojolicious <3 PostgreSQL";
@@ -12492,10 +13161,10 @@ let
 
   Moo = buildPerlPackage {
     pname = "Moo";
-    version = "2.003006";
+    version = "2.004000";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/H/HA/HAARG/Moo-2.003006.tar.gz";
-      sha256 = "bcb2092ab18a45005b5e2e84465ebf3a4999d8e82a43a09f5a94d859ae7f2472";
+      url = mirror://cpan/authors/id/H/HA/HAARG/Moo-2.004000.tar.gz;
+      sha256 = "323240d000394cf38ec42e865b05cb8928f625c82c9391cd2cdc72b33c51b834";
     };
     buildInputs = [ TestFatal ];
     propagatedBuildInputs = [ ClassMethodModifiers ModuleRuntime RoleTiny SubQuote ];
@@ -12601,10 +13270,10 @@ let
 
   MooXStrictConstructor = buildPerlPackage {
      pname = "MooX-StrictConstructor";
-     version = "0.010";
+     version = "0.011";
      src = fetchurl {
-       url = "mirror://cpan/authors/id/H/HA/HARTZELL/MooX-StrictConstructor-0.010.tar.gz";
-       sha256 = "0vvjgz7xbfmf69yav7sxsxmvklqv835xvh7h47w0apxmlkm9fjgr";
+       url = mirror://cpan/authors/id/H/HA/HARTZELL/MooX-StrictConstructor-0.011.tar.gz;
+       sha256 = "1qjkqrmzgz7lxhv14klsv0v9v6blf8js86d47ah24kpw5y12yf6s";
      };
      propagatedBuildInputs = [ Moo strictures ];
      buildInputs = [ TestFatal ];
@@ -12744,13 +13413,13 @@ let
 
   MooXlate = buildPerlPackage {
     pname = "MooX-late";
-    version = "0.016";
+    version = "0.100";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TO/TOBYINK/MooX-late-0.016.tar.gz";
-      sha256 = "1fb6393e8b77c0ec1e99229bc6f5b9db362eedc172fa940b37defd9bb3415e4e";
+      url = mirror://cpan/authors/id/T/TO/TOBYINK/MooX-late-0.100.tar.gz;
+      sha256 = "2ae5b1e3da5abc0e4006278ecbcfa8fa7c224ea5529a6a688acbb229c09e6a5f";
     };
     buildInputs = [ TestFatal TestRequires ];
-    propagatedBuildInputs = [ Moo TypeTiny ];
+    propagatedBuildInputs = [ Moo SubHandlesVia ];
     meta = {
       description = "Easily translate Moose code to Moo";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -13383,12 +14052,47 @@ let
     };
   };
 
+  MP3Info = buildPerlPackage {
+    pname = "MP3-Info";
+    version = "1.26";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/J/JM/JMERELO/MP3-Info-1.26.tar.gz;
+      sha256 = "1rwbrsdw6y6jgcjvrlji6fbcvwl4wlka3mkhlw12a7s2683k8qjp";
+    };
+    meta = {
+      description = "Manipulate / fetch info from MP3 audio files";
+      license = with stdenv.lib.licenses; [ artistic1 ];
+    };
+  };
+
+  MP3Tag = buildPerlPackage {
+    pname = "MP3-Tag";
+    version = "1.15";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/I/IL/ILYAZ/modules/MP3-Tag-1.15.zip;
+      sha256 = "1lanbwv97sfsb7h4vsg1v0dv3yghpz01nf3rzl4a9p3ycgs4ib5a";
+    };
+    buildInputs = [ pkgs.unzip ];
+    propagatedBuildInputs = [ CompressZlib ExtUtilsMakeMaker ];
+    postPatch = ''
+      substituteInPlace Makefile.PL --replace "'PL_FILES'" "#'PL_FILES'"
+    '';
+    postFixup = ''
+      perl data_pod.PL PERL5LIB:$PERL5LIB
+    '';
+    outputs = [ "out" ];
+    meta = {
+      description = "Module for reading tags of MP3 audio files";
+      license = with stdenv.lib.licenses; [ artistic1 ];
+    };
+  };
+
   Mouse = buildPerlModule {
     pname = "Mouse";
-    version = "2.5.9";
+    version = "2.5.10";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SK/SKAJI/Mouse-v2.5.9.tar.gz";
-      sha256 = "0wqcnm6xl7fv9r8izc9c43kr83qsr60i7y53hkickcqhxx38vmxr";
+      url = mirror://cpan/authors/id/S/SK/SKAJI/Mouse-v2.5.10.tar.gz;
+      sha256 = "1vijm8wkyws1jhnqmx104585q3srw9z1crcpy1zlcfhm8qww53ff";
     };
     buildInputs = [ DevelPPPort ModuleBuildXSUtil TestException TestFatal TestLeakTrace TestOutput TestRequires TryTiny ];
     perlPreHook = "export LD=$CC";
@@ -13413,10 +14117,10 @@ let
 
   MozillaCA = buildPerlPackage {
     pname = "Mozilla-CA";
-    version = "20180117";
+    version = "20200520";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AB/ABH/Mozilla-CA-20180117.tar.gz";
-      sha256 = "f2cc9fbe119f756313f321e0d9f1fac0859f8f154ac9d75b1a264c1afdf4e406";
+      url = mirror://cpan/authors/id/A/AB/ABH/Mozilla-CA-20200520.tar.gz;
+      sha256 = "b3ca0002310bf24a16c0d5920bdea97a2f46e77e7be3e7377e850d033387c726";
     };
 
     postPatch = ''
@@ -13600,10 +14304,10 @@ let
 
   NetAmazonS3 = buildPerlPackage {
     pname = "Net-Amazon-S3";
-    version = "0.87";
+    version = "0.89";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/L/LL/LLAP/Net-Amazon-S3-0.87.tar.gz";
-      sha256 = "77d803477a0c635f311f538e163c5f10e471882c5153398012c93f4284376b8f";
+      url = mirror://cpan/authors/id/L/LL/LLAP/Net-Amazon-S3-0.89.tar.gz;
+      sha256 = "466b4d02b5b17790f1df22df92b22a3879423b3b33317388f0975a13e74b4eea";
     };
     buildInputs = [ TestDeep TestException TestLoadAllModules TestMockTime TestWarnings ];
     propagatedBuildInputs = [ DataStreamBulk DateTimeFormatHTTP DigestHMAC DigestMD5File FileFindRule LWPUserAgentDetermined MIMETypes MooseXRoleParameterized MooseXStrictConstructor MooseXTypesDateTimeMoreCoercions RefUtil RegexpCommon SubOverride TermEncoding TermProgressBarSimple XMLLibXML ];
@@ -13708,9 +14412,20 @@ let
       url = "mirror://cpan/authors/id/D/DA/DANBERR/Net-DBus-1.2.0.tar.gz";
       sha256 = "e7a1ac9ef4a1235b3fdbd5888f86c347182306467bd79abc9b0756a64b441cbc";
     };
-    nativeBuildInputs = [ pkgs.buildPackages.pkgconfig ];
+    nativeBuildInputs = [ buildPackages.pkgconfig ];
     buildInputs = [ pkgs.dbus TestPod TestPodCoverage ];
     propagatedBuildInputs = [ XMLTwig ];
+
+    # https://gitlab.com/berrange/perl-net-dbus/-/merge_requests/19
+    patches = (fetchpatch {
+      url = "https://gitlab.com/berrange/perl-net-dbus/-/commit/6bac8f188fb06e5e5edd27aee672d66b7c28caa4.patch";
+      sha256 = "19nf4xn9xhyd0sd2az9iliqldjj0k6ah2dmkyqyvq4rp2d9k5jgb";
+    });
+
+    postPatch = ''
+      substituteInPlace Makefile.PL --replace pkg-config $PKG_CONFIG
+    '';
+
     meta = {
       homepage = "http://www.freedesktop.org/wiki/Software/dbus";
       description = "Extension for the DBus bindings";
@@ -13720,10 +14435,10 @@ let
 
   NetDNS = buildPerlPackage rec {
     pname = "Net-DNS";
-    version = "1.21";
+    version = "1.24";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-1.21.tar.gz";
-      sha256 = "ddefe13b28084ffcc8f10a96b3c13c59449dbf6fc371c006d129630ea0ce767a";
+      url = mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-1.24.tar.gz;
+      sha256 = "11a6c2ba6cb1c6640f01c9bbf2036bcbe3974232e9b939ab94985230c92cde63";
     };
     propagatedBuildInputs = [ DigestHMAC ];
     makeMakerFlags = "--noonline-tests";
@@ -13735,16 +14450,17 @@ let
 
   NetDNSResolverMock = buildPerlPackage {
      pname = "Net-DNS-Resolver-Mock";
-     version = "1.20171219";
+     version = "1.20200215";
      src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Net-DNS-Resolver-Mock-1.20171219.tar.gz";
-       sha256 = "0m3rxpkv1b9121srvbqkrgzg4m8mnydiydqv34in1i1ixwrl6jn9";
+       url = mirror://cpan/authors/id/M/MB/MBRADSHAW/Net-DNS-Resolver-Mock-1.20200215.tar.gz;
+       sha256 = "1rv745c16l3m3w6xx2hjmmgzkdklmzm9imdfiddmdr9hwm8g3xxy";
      };
      propagatedBuildInputs = [ NetDNS ];
      meta = {
        description = "Mock a DNS Resolver object for testing";
        license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
      };
+    buildInputs = [ TestException ];
   };
 
   NetDomainTLD = buildPerlPackage {
@@ -13803,6 +14519,21 @@ let
     };
   };
 
+  NetFreeDB = buildPerlPackage {
+    pname = "Net-FreeDB";
+    version = "0.10";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DS/DSHULTZ/Net-FreeDB-0.10.tar.gz;
+      sha256 = "11dfi14qnzsnmr71cygir85zfj15n08b7d5g0i4cj5pb70if2hzp";
+    };
+    buildInputs = [ TestMost TestDeep TestWarn TestException TestDifferences ];
+    propagatedBuildInputs = [ CDDBFile Moo libnet ];
+    meta = {
+      description = "Perl interface to freedb server(s)";
+      license = with stdenv.lib.licenses; [ artistic1 ];
+    };
+  };
+
   NetHTTP = buildPerlPackage {
     pname = "Net-HTTP";
     version = "6.19";
@@ -13940,10 +14671,10 @@ let
 
   NetPing = buildPerlPackage {
     pname = "Net-Ping";
-    version = "2.72";
+    version = "2.73";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RU/RURBAN/Net-Ping-2.72.tar.gz";
-      sha256 = "555af602f54229cd81fef7da1a81516800f3155c6dc4d07dc71be1de3253dd6a";
+      url = mirror://cpan/authors/id/R/RU/RURBAN/Net-Ping-2.73.tar.gz;
+      sha256 = "a5fbeafd3e65778364bead8800ae6a06d468ed68208619b5d4c1debd4d197cf2";
     };
     meta = {
       description = "Check a remote host for reachability";
@@ -13966,13 +14697,13 @@ let
 
   NetPrometheus = buildPerlModule {
     pname = "Net-Prometheus";
-    version = "0.07";
+    version = "0.11";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PEVANS/Net-Prometheus-0.07.tar.gz";
-      sha256 = "1dh498b26wdaip053hw52317jjmb2n2r5209a1zv5yfrlxpblqm7";
+      url = mirror://cpan/authors/id/P/PE/PEVANS/Net-Prometheus-0.11.tar.gz;
+      sha256 = "0skjkz6q68y8g9blm7i03k4wprac3djq15akmlv1kmgag3i0ky12";
     };
-    propagatedBuildInputs = [ RefUtil StructDumb ];
-    buildInputs = [ TestFatal ];
+    propagatedBuildInputs = [ RefUtil StructDumb URI ];
+    buildInputs = [ HTTPMessage TestFatal ];
     meta = {
       description = "export monitoring metrics for F<prometheus>";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -14351,6 +15082,22 @@ let
     };
   };
 
+  OggVorbisHeaderPurePerl = buildPerlPackage {
+    pname = "Ogg-Vorbis-Header-PurePerl";
+    version = "1.0";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/D/DA/DANIEL/Ogg-Vorbis-Header-PurePerl-1.0.tar.gz;
+      sha256 = "0kjqswnwhp7yf7czvhggdyp2pgg5wa58b4jwpn8j3km7h2ll8pmy";
+    };
+    buildInputs = [ TestMore ];
+    # The testing mechanism is erorrneous upstream. See http://matrix.cpantesters.org/?dist=Ogg-Vorbis-Header-PurePerl+1.0
+    doCheck = false;
+    meta = {
+      description = "An object-oriented interface to Ogg Vorbis information and comment fields";
+      license = with stdenv.lib.licenses; [ artistic1 ];
+    };
+  };
+
   OLEStorage_Lite = buildPerlPackage {
     pname = "OLE-Storage_Lite";
     version = "0.20";
@@ -14384,7 +15131,7 @@ let
       url = "mirror://cpan/authors/id/J/JH/JHTHORSEN/OpenAPI-Client-0.24.tar.gz";
       sha256 = "2420a2d1a9bc24a644c9ba12d77f1252ac2209ef0ac5a432153fe49c840faf28";
     };
-    propagatedBuildInputs = [ JSONValidator MojoliciousPluginOpenAPI ];
+    propagatedBuildInputs = [ MojoliciousPluginOpenAPI ];
     meta = {
       homepage = "https://github.com/jhthorsen/openapi-client";
       description = "A client for talking to an Open API powered server";
@@ -14441,10 +15188,10 @@ let
 
   NetOpenSSH = buildPerlPackage {
     pname = "Net-OpenSSH";
-    version = "0.78";
+    version = "0.79";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SA/SALVA/Net-OpenSSH-0.78.tar.gz";
-      sha256 = "8f10844542a2824389decdb8edec7561d8199dc5f0250e849a0bb56f7aee880c";
+      url = mirror://cpan/authors/id/S/SA/SALVA/Net-OpenSSH-0.79.tar.gz;
+      sha256 = "4210fa64b50820f91ab4b6c0e02a579543fc071e73fbdec0f476447ca11172cc";
     };
     meta = {
       description = "Perl SSH client package implemented on top of OpenSSH";
@@ -14692,10 +15439,10 @@ let
 
   Parent = buildPerlPackage {
     pname = "parent";
-    version = "0.237";
+    version = "0.238";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/C/CO/CORION/parent-0.237.tar.gz";
-      sha256 = "1bnaadzf51g6zrpq6pvvgds2cc9d4w1vck7sapkd3hb5hmjdk28h";
+      url = mirror://cpan/authors/id/C/CO/CORION/parent-0.238.tar.gz;
+      sha256 = "1lfjqjxsvgpsn6ycah4z0qygkykj4v8ca3cdki61k2p2ygg8zx9q";
     };
   };
 
@@ -14712,6 +15459,21 @@ let
     };
   };
 
+  ParseIRC = buildPerlPackage {
+    pname = "Parse-IRC";
+    version = "1.22";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/Parse-IRC-1.22.tar.gz";
+      sha256 = "457b09897f37d38a7054f9563247365427fe24101622ed4c7f054723a45b58d5";
+    };
+    meta = {
+      homepage = "https://github.com/bingos/parse-irc";
+      description = "A parser for the IRC protocol";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   ParseLocalDistribution = buildPerlPackage {
      pname = "Parse-LocalDistribution";
      version = "0.19";
@@ -14793,7 +15555,7 @@ let
   };
 
   ParseYapp = buildPerlPackage {
-    pname = "Parser-Yapp";
+    pname = "Parse-Yapp";
     version = "1.21";
     src = fetchurl {
       url = "mirror://cpan/authors/id/W/WB/WBRASWELL/Parse-Yapp-1.21.tar.gz";
@@ -14836,10 +15598,10 @@ let
 
   PathTiny = buildPerlPackage {
     pname = "Path-Tiny";
-    version = "0.112";
+    version = "0.114";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Path-Tiny-0.112.tar.gz";
-      sha256 = "813df2d140c65f795daefd8eca18e61194ecac7050c5406a069db86dea31cc3a";
+      url = mirror://cpan/authors/id/D/DA/DAGOLDEN/Path-Tiny-0.114.tar.gz;
+      sha256 = "cd0f88f37a58fc3667ec065767fe01e73ee6efa18a112bfd3508cf6579ca00e1";
     };
     meta = {
       description = "File path utility";
@@ -14904,10 +15666,10 @@ let
 
   PDFAPI2 = buildPerlPackage {
     pname = "PDF-API2";
-    version = "2.036";
+    version = "2.037";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SS/SSIMMS/PDF-API2-2.036.tar.gz";
-      sha256 = "070444e9fef8beb6f115994a6ac89533fe8ba02d5e240a35bb07adcbcb511774";
+      url = mirror://cpan/authors/id/S/SS/SSIMMS/PDF-API2-2.037.tar.gz;
+      sha256 = "142803d1886d2a2919d374fb6c25681630aa26740e3f8023337f996fa6c6297e";
     };
     buildInputs = [ TestException TestMemoryCycle ];
     propagatedBuildInputs = [ FontTTF ];
@@ -14917,12 +15679,57 @@ let
     };
   };
 
+  PDL = buildPerlPackage rec {
+    pname = "PDL";
+    version = "2.022";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETJ/${pname}-${version}.tar.gz";
+      sha256 = "12isj05ni44bgf76lc0fs5v88ai8gn5dqrppsbj7vsxblcya7113";
+    };
+    patchPhase = ''
+      substituteInPlace perldl.conf \
+        --replace 'POSIX_THREADS_LIBS => undef' 'POSIX_THREADS_LIBS => "-L${pkgs.glibc.dev}/lib"' \
+        --replace 'POSIX_THREADS_INC  => undef' 'POSIX_THREADS_INC  => "-I${pkgs.glibc.dev}/include"' \
+        --replace 'WITH_MINUIT => undef' 'WITH_MINUIT => 0' \
+        --replace 'WITH_SLATEC => undef' 'WITH_SLATEC => 0' \
+        --replace 'WITH_HDF => undef' 'WITH_HDF => 0' \
+        --replace 'WITH_GD => undef' 'WITH_GD => 0' \
+        --replace 'WITH_PROJ => undef' 'WITH_PROJ => 0'
+    '';
+
+    nativeBuildInputs = with pkgs; [ autoPatchelfHook libGL.dev glibc.dev mesa_glu.dev ];
+
+    buildInputs = [ DevelChecklib TestDeep TestException TestWarn ] ++
+                  (with pkgs; [ gsl freeglut xorg.libXmu xorg.libXi ]);
+
+    propagatedBuildInputs = [
+      AstroFITSHeader
+      ConvertUU
+      ExtUtilsF77
+      FileMap
+      Inline
+      InlineC
+      ListMoreUtils
+      ModuleCompile
+      OpenGL
+      PodParser
+      TermReadKey
+    ];
+
+    meta = {
+      homepage = "http://pdl.perl.org/";
+      description = "Perl Data Language";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      platforms = stdenv.lib.platforms.linux;
+    };
+  };
+
   Pegex = buildPerlPackage {
     pname = "Pegex";
-    version = "0.74";
+    version = "0.75";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IN/INGY/Pegex-0.74.tar.gz";
-      sha256 = "31f0889695d79a3ab79a6315a8a08baeb1268592bc6596c3feffb424d982dfdf";
+      url = mirror://cpan/authors/id/I/IN/INGY/Pegex-0.75.tar.gz;
+      sha256 = "4dc8d335de80b25247cdb3f946f0d10d9ba0b3c34b0ed7d00316fd068fd05edc";
     };
     buildInputs = [ TestPod TieIxHash ];
     meta = {
@@ -14946,10 +15753,10 @@ let
 
   Perlosnames = buildPerlPackage {
     pname = "Perl-osnames";
-    version = "0.11";
+    version = "0.122";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PERLANCAR/Perl-osnames-0.11.tar.gz";
-      sha256 = "fb22a1ed59dc2311f7f1ffca5685d90c0600020467f624f57b4dd3dba5bc659b";
+      url = mirror://cpan/authors/id/P/PE/PERLANCAR/Perl-osnames-0.122.tar.gz;
+      sha256 = "7075939d747e375178d00348d00c52ff9db2cebb18bae7473dcb09df825118a0";
     };
     meta = {
       description = "List possible $^O ($OSNAME) values, with description";
@@ -14965,7 +15772,7 @@ let
       sha256 = "2ad194f91ef24df4698369c2562d4164e9bf74f2d5565c681841abf79789ed82";
     };
     buildInputs = [ TestDeep ];
-    propagatedBuildInputs = [ BKeywords ConfigTiny FileWhich ModulePluggable PPIxQuoteLike PPIxRegexp PPIxUtilities PerlTidy PodSpell StringFormat ];
+    propagatedBuildInputs = [ BKeywords ConfigTiny FileWhich ListMoreUtils ModulePluggable PPIxQuoteLike PPIxRegexp PPIxUtilities PerlTidy PodSpell StringFormat ];
     meta = {
       homepage = "http://perlcritic.com";
       description = "Critique Perl source code for best-practices";
@@ -14984,6 +15791,19 @@ let
     };
   };
 
+  PerlIOLayers = buildPerlModule {
+    pname = "PerlIO-Layers";
+    version = "0.012";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/L/LE/LEONT/PerlIO-Layers-0.012.tar.gz;
+      sha256 = "1psaq3kwlk7g9rxvgsacfjk2mh6cscqf4xl7ggfkzfrnz91aabal";
+    };
+    meta = {
+      description = "Querying your filehandle's capabilities";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   PerlIOeol = buildPerlPackage {
     pname = "PerlIO-eol";
     version = "0.17";
@@ -15198,10 +16018,10 @@ let
 
   PlackMiddlewareDebug = buildPerlModule {
     pname = "Plack-Middleware-Debug";
-    version = "0.17";
+    version = "0.18";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Debug-0.17.tar.gz";
-      sha256 = "a30b62f1bb94e641f7b60b5ea5335e140c553b4131ec4003b56db37f47617a26";
+      url = mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Debug-0.18.tar.gz;
+      sha256 = "192ef79e521c90c6eff6f4149ad2e4bfc911d2c95df78935855e90d659e9ac9a";
     };
     buildInputs = [ ModuleBuildTiny TestRequires ];
     propagatedBuildInputs = [ ClassMethodModifiers DataDump DataDumperConcise Plack TextMicroTemplate ];
@@ -15335,14 +16155,10 @@ let
 
   POE = buildPerlPackage {
     pname = "POE";
-    version = "1.367";
-    patches = [
-      ../development/perl-modules/perl-POE-1.367-pod_linkcheck.patch
-      ../development/perl-modules/perl-POE-1.367-pod_no404s.patch
-    ];
+    version = "1.368";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RC/RCAPUTO/POE-1.367.tar.gz";
-      sha256 = "0b9s7yxaa2lgzyi56brgygycfjk7lz33d1ddvc1wvwwvm45p4wmp";
+      url = mirror://cpan/authors/id/B/BI/BINGOS/POE-1.368.tar.gz;
+      sha256 = "08g1vzxamqg0gmkirdcx7fycq3pwv9vbajc30qwqpm1n3rvdrcdp";
     };
     # N.B. removing TestPodLinkCheck from buildInputs because tests requiring
     # this module don't disable themselves when "run_network_tests" is
@@ -15408,12 +16224,12 @@ let
 
   PPIxQuoteLike = buildPerlModule {
     pname = "PPIx-QuoteLike";
-    version = "0.008";
+    version = "0.011";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/W/WY/WYANT/PPIx-QuoteLike-0.008.tar.gz";
-      sha256 = "0dzlcddvfzn7s8z1jj12ghsbzf9wm5dq84361v4vx5p6j8zhsaz4";
+      url = mirror://cpan/authors/id/W/WY/WYANT/PPIx-QuoteLike-0.011.tar.gz;
+      sha256 = "0yi0rx8nf3pz1g5d9z7mi6pzbd4y2kqj61vsgmyllk6rfyjcgmsf";
     };
-    propagatedBuildInputs = [ PPI ];
+    propagatedBuildInputs = [ PPI Readonly ];
     meta = {
       description = "Parse Perl string literals and string-literal-like things.";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -15422,12 +16238,12 @@ let
 
   PPIxRegexp = buildPerlModule {
     pname = "PPIx-Regexp";
-    version = "0.068";
+    version = "0.072";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/W/WY/WYANT/PPIx-Regexp-0.068.tar.gz";
-      sha256 = "b5444b699a3c7ad79506c796559449c6f858dc62deb60e08249f96782636e5f4";
+      url = mirror://cpan/authors/id/W/WY/WYANT/PPIx-Regexp-0.072.tar.gz;
+      sha256 = "84a050b3b65c98a4b95f9df94fa0d8db9a931b000bb6e2946f0f8874cc2bac5c";
     };
-    propagatedBuildInputs = [ ListMoreUtils PPI ];
+    propagatedBuildInputs = [ PPI ];
     meta = {
       description = "Parse regular expressions";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -15643,10 +16459,10 @@ let
 
   PerlPrereqScannerNotQuiteLite = buildPerlPackage {
     pname = "Perl-PrereqScanner-NotQuiteLite";
-    version = "0.9909";
+    version = "0.9911";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Perl-PrereqScanner-NotQuiteLite-0.9909.tar.gz";
-      sha256 = "09sa86maxrqnxf84wa0cgkcs8p6xvpsv0x5dny3hz0300zgrqmq5";
+      url = mirror://cpan/authors/id/I/IS/ISHIGAKI/Perl-PrereqScanner-NotQuiteLite-0.9911.tar.gz;
+      sha256 = "1h8sv5df7736sr7vasl6hkcvqlsqz9y61wiky6bvqa7fnlfhcyp0";
     };
     propagatedBuildInputs = [ DataDump ModuleCPANfile ModuleFind RegexpTrie ];
     buildInputs = [ ExtUtilsMakeMakerCPANfile TestFailWarnings TestUseAllModules ];
@@ -15686,7 +16502,7 @@ let
       url = "mirror://cpan/authors/id/R/RC/RCLAMP/Pod-Coverage-0.23.tar.gz";
       sha256 = "01xifj83dv492lxixijmg6va02rf3ydlxly0a9slmx22r6qa1drh";
     };
-    propagatedBuildInputs = [ DevelSymdump ];
+    propagatedBuildInputs = [ DevelSymdump PodParser ];
   };
 
   PodCoverageTrustPod = buildPerlPackage {
@@ -15800,6 +16616,7 @@ let
       url = "mirror://cpan/authors/id/T/TJ/TJENNESS/Pod-LaTeX-0.61.tar.gz";
       sha256 = "15a840ea1c8a76cd3c865fbbf2fec33b03615c0daa50f9c800c54e0cf0659d46";
     };
+    propagatedBuildInputs = [ PodParser ];
     meta = {
       homepage = "https://github.com/timj/perl-Pod-LaTeX/tree/master";
       description = "Convert Pod data to formatted Latex";
@@ -15868,6 +16685,7 @@ let
       url = "mirror://cpan/authors/id/R/RM/RMBARKER/Pod-Plainer-1.04.tar.gz";
       sha256 = "1bbfbf7d1d4871e5a83bab2137e22d089078206815190eb1d5c1260a3499456f";
     };
+    propagatedBuildInputs = [ PodParser ];
     meta = {
       description = "Perl extension for converting Pod to old-style Pod";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -15921,7 +16739,7 @@ let
       url = "mirror://cpan/authors/id/D/DO/DOLMEN/Pod-Spell-1.20.tar.gz";
       sha256 = "6383f7bfe22bc0d839a08057a0ce780698b046184aea935be4833d94986dd03c";
     };
-    propagatedBuildInputs = [ ClassTiny FileShareDir LinguaENInflect PathTiny ];
+    propagatedBuildInputs = [ ClassTiny FileShareDir LinguaENInflect PathTiny PodParser ];
     buildInputs = [ FileShareDirInstall TestDeep ];
   };
 
@@ -15976,6 +16794,7 @@ let
        url = "mirror://cpan/authors/id/N/NU/NUFFIN/Pod-Wrap-0.01.tar.gz";
        sha256 = "0qwb5hp26f85xnb3zivf8ccfdplabiyl5sd53c6wgdgvzzicpjjh";
      };
+     propagatedBuildInputs = [ PodParser ];
      meta = {
        license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
      };
@@ -16006,6 +16825,24 @@ let
     };
   };
 
+  Apprainbarf = buildPerlModule {
+    pname = "Apprainbarf";
+    version = "1.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SY/SYP/App-rainbarf-1.4.tar.gz";
+      sha256 = "4f139ad35faaf2de0623dc0bb1dd89fa5a431e548bfec87dee194cf0e25cc97d";
+    };
+    nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin shortenPerlShebang;
+    postInstall = stdenv.lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/rainbarf
+    '';
+    meta = {
+      homepage = "https://github.com/creaktive/rainbarf";
+      description = "CPU/RAM/battery stats chart bar for tmux (and GNU screen)";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus  ];
+    };
+  };
+
   Razor2ClientAgent = buildPerlPackage {
     pname = "Razor2-Client-Agent";
     version = "2.86";
@@ -16049,10 +16886,10 @@ let
 
   Redis = buildPerlModule {
     pname = "Redis";
-    version = "1.995";
+    version = "1.996";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DA/DAMS/Redis-1.995.tar.gz";
-      sha256 = "a0b07b284ff12bb852a3120723f1e63ab279df575d6c52a78f914565a9f0b906";
+      url = mirror://cpan/authors/id/D/DA/DAMS/Redis-1.996.tar.gz;
+      sha256 = "5c196d56a4d771abb2042fd52f252096497fc86f35910581e0956b5710ea74b6";
     };
     buildInputs = [ IOString ModuleBuildTiny TestDeep TestFatal TestSharedFork TestTCP ];
     propagatedBuildInputs = [ IOSocketTimeout TryTiny ];
@@ -16113,10 +16950,10 @@ let
 
   RegexpGrammars = buildPerlModule {
     pname = "Regexp-Grammars";
-    version = "1.052";
+    version = "1.057";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DC/DCONWAY/Regexp-Grammars-1.052.tar.gz";
-      sha256 = "d552e7aaec956fc9ff0c56602fc95bc5c97ef815a0a8df7f42d1128f39534a62";
+      url = mirror://cpan/authors/id/D/DC/DCONWAY/Regexp-Grammars-1.057.tar.gz;
+      sha256 = "af53c19818461cd701aeb57c49dffdb463edc4bf8f658d9ea4e6d534ac177041";
     };
     meta = {
       description = "Add grammatical parsing features to Perl 5.10 regexes";
@@ -16275,6 +17112,22 @@ let
     };
   };
 
+    RPM2 = buildPerlModule {
+    pname = "RPM2";
+    version = "1.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LK/LKUNDRAK/RPM2-1.4.tar.gz";
+      sha256 = "5ecb42aa69324e6f4088abfae07313906e5aabf2f46f1204f3f1de59155bb636";
+    };
+    buildInputs = [ pkgs.pkg-config pkgs.rpm ];
+    doCheck = false; # Tries to open /var/lib/rpm
+    meta = {
+      description = "Perl bindings for the RPM Package Manager API";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      platforms = stdenv.lib.platforms.linux;
+    };
+  };
+
   RSSParserLite = buildPerlPackage {
     pname = "RSS-Parser-Lite";
     version = "0.12";
@@ -16288,10 +17141,10 @@ let
 
   RTClientREST = buildPerlModule {
     pname = "RT-Client-REST";
-    version = "0.56";
+    version = "0.60";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/D/DJ/DJZORT/RT-Client-REST-0.56.tar.gz";
-      sha256 = "798baccf11eaecbb7d2d27be0b5e4fa9cb80b34cc51cab12eb7b88facf39fd4b";
+      url = mirror://cpan/authors/id/D/DJ/DJZORT/RT-Client-REST-0.60.tar.gz;
+      sha256 = "0e6f2da3d96903491b43b19c61221cbeea88414264f907312f277daaf144248b";
     };
     buildInputs = [ CGI HTTPServerSimple TestException ];
     meta = {
@@ -16316,10 +17169,10 @@ let
 
   ScalarListUtils = buildPerlPackage {
     pname = "Scalar-List-Utils";
-    version = "1.53";
+    version = "1.55";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PEVANS/Scalar-List-Utils-1.53.tar.gz";
-      sha256 = "bd4086b066fb3b18a0be2e7d9bc100a99aa0f233ad659492340415c7b2bdae99";
+      url = mirror://cpan/authors/id/P/PE/PEVANS/Scalar-List-Utils-1.55.tar.gz;
+      sha256 = "4d2bdc1c72a7bc4d69d6a5cc85bc7566497c3b183c6175b832784329d58feb4b";
     };
     meta = {
       description = "Common Scalar and List utility subroutines";
@@ -16414,12 +17267,12 @@ let
 
   SerealDecoder = buildPerlPackage {
     pname = "Sereal-Decoder";
-    version = "4.008";
+    version = "4.014";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Decoder-4.008.tar.gz";
-      sha256 = "1vxgwlya7sj9mb6y278qblrjl2708d0agy7cryyqj7qf08d056rv";
+      url = mirror://cpan/authors/id/Y/YV/YVES/Sereal-Decoder-4.014.tar.gz;
+      sha256 = "0ph5k99ssm5anwsdjal7sw96pjs65lirfanfsw8gh6k40w0w6f44";
     };
-    buildInputs = [ TestDeep TestDifferences TestLongString TestWarn ];
+    buildInputs = [ TestDeep TestDifferences TestLongString TestMemoryGrowth TestWarn ];
     preBuild = ''ls'';
     meta = {
       homepage = "https://github.com/Sereal/Sereal";
@@ -16431,10 +17284,10 @@ let
 
   SerealEncoder = buildPerlPackage {
     pname = "Sereal-Encoder";
-    version = "4.008";
+    version = "4.014";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-Encoder-4.008.tar.gz";
-      sha256 = "0vzk6d2h034qks4lby53xrfljsrx4cvkaqi7gz9frba17lvl01rq";
+      url = mirror://cpan/authors/id/Y/YV/YVES/Sereal-Encoder-4.014.tar.gz;
+      sha256 = "0044pkjkdg8y0ljmfj0bx68wf7jpfyy98kxi4z36kxarz2hcf462";
     };
     buildInputs = [ SerealDecoder TestDeep TestDifferences TestLongString TestWarn ];
     meta = {
@@ -16447,12 +17300,12 @@ let
 
   Sereal = buildPerlPackage {
     pname = "Sereal";
-    version = "4.008";
+    version = "4.014";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/Y/YV/YVES/Sereal-4.008.tar.gz";
-      sha256 = "1ima428v8mi509crr3b1rnh67ki8vbcd7iignw68mf2iaw5wmb58";
+      url = mirror://cpan/authors/id/Y/YV/YVES/Sereal-4.014.tar.gz;
+      sha256 = "02qpl3x6sh0xfby38gr80dndkah9m5r0xhk7d4a24i9hqljjaing";
     };
-    buildInputs = [ TestLongString TestWarn ];
+    buildInputs = [ TestDeep TestLongString TestMemoryGrowth TestWarn ];
     propagatedBuildInputs = [ SerealDecoder SerealEncoder ];
     meta = {
       homepage = "https://github.com/Sereal/Sereal";
@@ -16706,10 +17559,10 @@ let
 
   Specio = buildPerlPackage {
      pname = "Specio";
-     version = "0.45";
+     version = "0.46";
      src = fetchurl {
-       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Specio-0.45.tar.gz";
-       sha256 = "1xk1skzvmqjgk7dqfkcmp6g7fc493cyk2hp94fzpdc43cg78ifg4";
+       url = mirror://cpan/authors/id/D/DR/DROLSKY/Specio-0.46.tar.gz;
+       sha256 = "15lmxffbzj1gq7n9m80a3ka8nqxmmk3p4azp33y6wv872shjmx0b";
      };
      propagatedBuildInputs = [ DevelStackTrace EvalClosure MROCompat ModuleRuntime RoleTiny SubQuote TryTiny ];
      buildInputs = [ TestFatal TestNeeds ];
@@ -16774,10 +17627,10 @@ let
 
   SQLAbstract = buildPerlPackage {
     pname = "SQL-Abstract";
-    version = "1.86";
+    version = "1.87";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IL/ILMARI/SQL-Abstract-1.86.tar.gz";
-      sha256 = "e7a7f7da5e6fa42f495860e92e9138b8a0964ca7674c95bd6ff1b1ce21aa8cdf";
+      url = mirror://cpan/authors/id/I/IL/ILMARI/SQL-Abstract-1.87.tar.gz;
+      sha256 = "e926a0a83da7efa18e57e5b2952a2ab3b7563a51733fc6dd5c89f12156481c4a";
     };
     buildInputs = [ TestDeep TestException TestWarn ];
     propagatedBuildInputs = [ HashMerge MROCompat Moo ];
@@ -16816,8 +17669,8 @@ let
       url = "mirror://cpan/authors/id/R/RE/REHSACK/SQL-Statement-1.412.tar.gz";
       sha256 = "65c870883379c11b53f19ead10aaac241ccc86a90bbab77f6376fe750720e5c8";
     };
-    buildInputs = [ TestDeep ];
-    propagatedBuildInputs = [ Clone ModuleRuntime ParamsUtil TextSoundex MathBaseConvert ];
+    buildInputs = [ MathBaseConvert TestDeep TextSoundex ];
+    propagatedBuildInputs = [ Clone ModuleRuntime ParamsUtil ];
   };
 
   SQLTokenizer = buildPerlPackage {
@@ -16831,10 +17684,10 @@ let
 
   SQLTranslator = buildPerlPackage {
     pname = "SQL-Translator";
-    version = "1.60";
+    version = "1.61";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/I/IL/ILMARI/SQL-Translator-1.60.tar.gz";
-      sha256 = "6bb0cb32ca25da69df65e5de71f679f3ca90044064526fa336cabd342f220e87";
+      url = mirror://cpan/authors/id/M/MS/MSTROUT/SQL-Translator-1.61.tar.gz;
+      sha256 = "840e3c77cd48b47e1343c79ae8ef4fca46d036356d143d33528900740416dfe8";
     };
     buildInputs = [ FileShareDirInstall JSONMaybeXS TestDifferences TestException XMLWriter YAML ];
     propagatedBuildInputs = [ CarpClan DBI FileShareDir Moo PackageVariant ParseRecDescent TryTiny ];
@@ -16931,6 +17784,19 @@ let
     };
   };
 
+  StatisticsChiSquare = buildPerlPackage rec {
+    pname = "Statistics-ChiSquare";
+    version = "1.0000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DC/DCANTRELL/${pname}-${version}.tar.gz";
+      sha256 = "255a5a38336d048ddb9077222691e000984e907aae09a4ea695a9cfd49a1ddd0";
+    };
+    meta = {
+      description = "Implements the Chi Squared test, using pre-computed tables";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   StatisticsDescriptive = buildPerlModule {
     pname = "Statistics-Descriptive";
     version = "3.0702";
@@ -17106,6 +17972,7 @@ let
       description = "String::Interpolate - Wrapper for builtin the Perl interpolation engine.";
       license = licenses.gpl1Plus;
     };
+    propagatedBuildInputs = [ PadWalker SafeHole ];
   };
 
   StringMkPasswd = buildPerlPackage {
@@ -17235,10 +18102,10 @@ let
 
   StructDumb = buildPerlModule {
     pname = "Struct-Dumb";
-    version = "0.09";
+    version = "0.12";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/P/PE/PEVANS/Struct-Dumb-0.09.tar.gz";
-      sha256 = "0g9rziaqxkm00vh30g1yfwzq3b1xl23p8fbm4rszqsp641wr2z9k";
+      url = mirror://cpan/authors/id/P/PE/PEVANS/Struct-Dumb-0.12.tar.gz;
+      sha256 = "0wvzcpil9xc2wkibq3sj8i5bgq4iadx2k7hfqb8jm5p66g271kjj";
     };
     buildInputs = [ TestFatal ];
     meta = {
@@ -17306,6 +18173,21 @@ let
     };
   };
 
+  SubHandlesVia = buildPerlPackage {
+    pname = "Sub-HandlesVia";
+    version = "0.013";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TO/TOBYINK/Sub-HandlesVia-0.013.tar.gz;
+      sha256 = "1q5lqjnqw29ywkiv0iqidc88ydqp1cywrgfd8mi7yarksc296a3l";
+    };
+    propagatedBuildInputs = [ ClassMethodModifiers ClassTiny RoleTiny ScalarListUtils TypeTiny ];
+    buildInputs = [ TestFatal TestRequires ];
+    meta = {
+      description = "alternative handles_via implementation";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   SubIdentify = buildPerlPackage {
     pname = "Sub-Identify";
     version = "0.14";
@@ -17409,6 +18291,20 @@ let
     propagatedBuildInputs = [ (pkgs.subversionClient.override { inherit perl; }) ];
   };
 
+  SafeHole = buildPerlModule {
+    pname = "Safe-Hole";
+    version = "0.14";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/T/TO/TODDR/Safe-Hole-0.14.tar.gz;
+      sha256 = "01gc2lfli282dj6a2pkpxb0vmpyavs323cbdw15gxi06pn5nxxgl";
+    };
+    meta = {
+      description = "lib/Safe/Hole.pm";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "http://github.com/toddr/Safe-Hole";
+    };
+  };
+
   Swim = buildPerlPackage {
     pname = "Swim";
     version = "0.1.48";
@@ -17489,10 +18385,10 @@ let
 
   SysMmap = buildPerlPackage {
     pname = "Sys-Mmap";
-    version = "0.19";
+    version = "0.20";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SW/SWALTERS/Sys-Mmap-0.19.tar.gz";
-      sha256 = "1yh0170xfw3z7n3lynffcb6axv7wi6zb46cx03crj1cvrhjmwa89";
+      url = mirror://cpan/authors/id/T/TO/TODDR/Sys-Mmap-0.20.tar.gz;
+      sha256 = "1kz22l7sh2mibliixyshc9958bqlkzsb13agcibp7azii4ncw80q";
     };
     meta = with stdenv.lib; {
       description = "Use mmap to map in a file as a Perl variable";
@@ -17577,25 +18473,26 @@ let
 
   SystemCommand = buildPerlPackage {
     pname = "System-Command";
-    version = "1.119";
+    version = "1.121";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/B/BO/BOOK/System-Command-1.119.tar.gz";
-      sha256 = "c8c9fb1e527c52463cab1476500efea70396a0b62bea625d2d6faea994dc46e7";
+      url = mirror://cpan/authors/id/B/BO/BOOK/System-Command-1.121.tar.gz;
+      sha256 = "43de5ecd20c1da46e8a6f4fceab29e04697a2890a99bf6a91b3ca004a468a241";
     };
     propagatedBuildInputs = [ IPCRun ];
     meta = {
       description = "Object for running system commands";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
+    buildInputs = [ PodCoverageTrustPod TestCPANMeta TestPod TestPodCoverage ];
   };
 
   SysVirt = buildPerlModule rec {
     pname = "Sys-Virt";
-    version = "6.2.0";
+    version = "6.3.0";
     src = assert version == pkgs.libvirt.version; pkgs.fetchgit {
       url = "git://libvirt.org/libvirt-perl.git";
-      rev = "799b243230163ff4f8dde6293da8a0e31e7c900e";
-      sha256 = "1k38d1ycx3ibgfzcr1iym7cvpwvygh6a2i5548m4qjb47vfi12rz";
+      rev = "v${version}";
+      sha256 = "0m75g0kf2dmllx5c1wxzszm1zakiqjighcsjbgq66674pvqf5mk7";
     };
     nativeBuildInputs = [ pkgs.pkgconfig ];
     buildInputs = [ pkgs.libvirt CPANChanges TestPod TestPodCoverage XMLXPath ];
@@ -17639,7 +18536,7 @@ let
       sha256 = "a2f73c65d0e5676cf4aae213ba4c3f88bf85f084a2165f1e71e3ce5b19023206";
     };
     buildInputs = [ CodeTidyAll TestDataSplit TestDifferences TestPerlTidy TestRunPluginTrimDisplayedFilenames TestRunValgrind TestTrailingSpace TestTrap ];
-    propagatedBuildInputs = [ EnvPath FileWhich GamesSolitaireVerify InlineC MooX StringShellQuote TaskTestRunAllPlugins TemplateToolkit YAMLLibYAML ];
+    propagatedBuildInputs = [ EnvPath FileWhich GamesSolitaireVerify InlineC ListMoreUtils MooX StringShellQuote TaskTestRunAllPlugins TemplateToolkit YAMLLibYAML ];
     meta = {
       description = "Install the CPAN dependencies of the Freecell Solver test suite";
       license = stdenv.lib.licenses.mit;
@@ -17774,16 +18671,18 @@ let
 
   TemplateToolkit = buildPerlPackage {
     pname = "Template-Toolkit";
-    version = "3.007";
+    version = "3.008";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AT/ATOOMIC/Template-Toolkit-3.007.tar.gz";
-      sha256 = "1jh953f1v4r494mdvzfqs1ay1bh453dmp10z4qmv0makwarjsnfp";
+      url = mirror://cpan/authors/id/A/AT/ATOOMIC/Template-Toolkit-3.008.tar.gz;
+      sha256 = "14m6kl9zrs6ycr440an7zswrmcimv2747qq0r87inwznprl0yh2j";
     };
     doCheck = !stdenv.isDarwin;
     meta = {
       description = "Comprehensive template processing system";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
+    propagatedBuildInputs = [ AppConfig ];
+    buildInputs = [ CGI TestLeakTrace ];
   };
 
    TemplateGD = buildPerlPackage {
@@ -18057,10 +18956,10 @@ let
 
   Test2Suite = buildPerlPackage {
     pname = "Test2-Suite";
-    version = "0.000128";
+    version = "0.000130";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/EX/EXODIST/Test2-Suite-0.000128.tar.gz";
-      sha256 = "f8e4e76900f5fb748d085aa5d18b916e07273e9ca50fb671ab8be1301cfae08c";
+      url = mirror://cpan/authors/id/E/EX/EXODIST/Test2-Suite-0.000130.tar.gz;
+      sha256 = "d462cb95024c0735fc0fdb22f92fda4f852bf85d92d89bd95e4fa212730d534a";
     };
     propagatedBuildInputs = [ ModulePluggable ScopeGuard SubInfo TermTable TestSimple13 ];
     meta = {
@@ -18238,10 +19137,10 @@ let
 
   TestCompile = buildPerlModule {
     pname = "Test-Compile";
-    version = "2.3.1";
+    version = "2.4.0";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/EG/EGILES/Test-Compile-v2.3.1.tar.gz";
-      sha256 = "1174cff010011ae43e6462755ccd8a6cf0372ca506705c60586f7b1748ff4ddf";
+      url = mirror://cpan/authors/id/E/EG/EGILES/Test-Compile-v2.4.0.tar.gz;
+      sha256 = "eff7e320527d7a33d9b27443871c1e9d5dbeb11408fb9843c56496f67b99ad78";
     };
     propagatedBuildInputs = [ UNIVERSALrequire ];
     meta = {
@@ -18294,10 +19193,10 @@ let
 
   TestDeep = buildPerlPackage {
     pname = "Test-Deep";
-    version = "1.128";
+    version = "1.130";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Deep-1.128.tar.gz";
-      sha256 = "0bq9c0vrxbwhhy1pd2ss06fk06jal98j022mnyq6k0msdy1pwbc5";
+      url = mirror://cpan/authors/id/R/RJ/RJBS/Test-Deep-1.130.tar.gz;
+      sha256 = "0mkw18q5agr30djxr1y68rcfw8aq20ws872hmv88f9gnynag8r20";
     };
     meta = {
     };
@@ -18578,10 +19477,10 @@ let
 
   TestLWPUserAgent = buildPerlPackage {
     pname = "Test-LWP-UserAgent";
-    version = "0.033";
+    version = "0.034";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/ET/ETHER/Test-LWP-UserAgent-0.033.tar.gz";
-      sha256 = "03fjjj65fpjr4pv1532kwci1llfbsv4g9an0h7k723yqfx1wgdsb";
+      url = mirror://cpan/authors/id/E/ET/ETHER/Test-LWP-UserAgent-0.034.tar.gz;
+      sha256 = "1ybhl9zpxkz77d25h96kbgh16zy9f27n95p6j9jg52kvdg0r2lbp";
     };
     propagatedBuildInputs = [ LWP SafeIsa namespaceclean ];
     buildInputs = [ PathTiny Plack TestDeep TestFatal TestNeeds TestRequiresInternet TestWarnings ];
@@ -18654,6 +19553,33 @@ let
     };
   };
 
+  TestMemoryGrowth = buildPerlModule {
+    pname = "Test-MemoryGrowth";
+    version = "0.03";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PE/PEVANS/Test-MemoryGrowth-0.03.tar.gz;
+      sha256 = "0z6lmalhq3k3p303qahs0ijp6sarf3ij88m39yhzizzf9abapvsz";
+    };
+    meta = {
+      description = "assert that code does not cause growth in memory usage";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
+  TestMetricsAny = buildPerlModule {
+    pname = "Test-Metrics-Any";
+    version = "0.01";
+    src = fetchurl {
+      url = mirror://cpan/authors/id/P/PE/PEVANS/Test-Metrics-Any-0.01.tar.gz;
+      sha256 = "0s744lv997g1wr4i4vg1d7zpzjfw334hdy45215jf6xj9s6wh1i5";
+    };
+    propagatedBuildInputs = [ MetricsAny ];
+    meta = {
+      description = "assert that code produces metrics via L<Metrics::Any>";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+    };
+  };
+
   TestMockClass = buildPerlModule {
     pname = "Test-Mock-Class";
     version = "0.0303";
@@ -18686,10 +19612,10 @@ let
 
   TestMockModule = buildPerlModule {
     pname = "Test-MockModule";
-    version = "0.171.0";
+    version = "0.173.0";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/G/GF/GFRANKS/Test-MockModule-v0.171.0.tar.gz";
-      sha256 = "1arqgb1773zym5dqlwm6kz48bfrccjhb5bjfsif0vkalwq2gvm7b";
+      url = mirror://cpan/authors/id/G/GF/GFRANKS/Test-MockModule-v0.173.0.tar.gz;
+      sha256 = "0hnv2ziyasrri58ys93j5qyyzgxw3jx5hvjhd72nsp4vqq6lhg6s";
     };
     propagatedBuildInputs = [ SUPER ];
     buildInputs = [ TestWarnings ];
@@ -18778,10 +19704,10 @@ let
 
   TestMost = buildPerlPackage {
     pname = "Test-Most";
-    version = "0.35";
+    version = "0.37";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/O/OV/OVID/Test-Most-0.35.tar.gz";
-      sha256 = "0zv5dyzq55r28plffibcr7wd00abap0h2zh4s4p8snaiszsad5wq";
+      url = mirror://cpan/authors/id/O/OV/OVID/Test-Most-0.37.tar.gz;
+      sha256 = "1isg8z6by113zn08l044w6k04y5m5bnns3rqmks8rwdr3qa70csk";
     };
     propagatedBuildInputs = [ ExceptionClass ];
     meta = {
@@ -18791,6 +19717,23 @@ let
     buildInputs = [ TestDeep TestDifferences TestException TestWarn ];
   };
 
+  Testmysqld = buildPerlModule {
+    pname = "Test-mysqld";
+    version = "1.0013";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SO/SONGMU/Test-mysqld-1.0013.tar.gz";
+      sha256 = "1vrybrh3is3xfwqdhxr1mvmmdyjhz9p0f6n8hasn7japj2h43bap";
+    };
+    buildInputs = [ pkgs.which ModuleBuildTiny TestSharedFork ];
+    propagatedBuildInputs = [ ClassAccessorLite DBDmysql FileCopyRecursive ];
+    meta = {
+      homepage = "https://github.com/kazuho/p5-test-mysqld";
+      description = "Mysqld runner for tests";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   TestNeeds = buildPerlPackage {
     pname = "Test-Needs";
     version = "0.002006";
@@ -18876,10 +19819,10 @@ let
 
   TestPerlTidy = buildPerlModule {
     pname = "Test-PerlTidy";
-    version = "20190402";
+    version = "20200412";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-PerlTidy-20190402.tar.gz";
-      sha256 = "e9cb9b23ed62e8c6a47a1e18b55328aa3bfa467e05cd93e7e12b2738dd1e025f";
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/Test-PerlTidy-20200412.tar.gz;
+      sha256 = "905240447edb1930192000db659556cbf5ad5710f4376bb0a5abcd8716a4592c";
     };
     propagatedBuildInputs = [ PathTiny PerlTidy TextDiff ];
     meta = {
@@ -18919,7 +19862,7 @@ let
       sha256 = "2bfe771173c38b69eeb089504e3f76511b8e45e6a9e6dac3e616e400ea67bcf0";
     };
     buildInputs = [ ModuleBuildTiny TestPod ];
-    propagatedBuildInputs = [ CaptureTiny Moose podlinkcheck ];
+    propagatedBuildInputs = [ CaptureTiny Moose podlinkcheck PodParser ];
     meta = {
       description = "Tests POD for invalid links";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -18969,10 +19912,10 @@ let
 
   TestRequires = buildPerlPackage {
     pname = "Test-Requires";
-    version = "0.10";
+    version = "0.11";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Test-Requires-0.10.tar.gz";
-      sha256 = "1d9f481lj12cw1ciil46xq9nq16p6a90nm7yrsalpf8asn8s6s17";
+      url = mirror://cpan/authors/id/T/TO/TOKUHIROM/Test-Requires-0.11.tar.gz;
+      sha256 = "03q49vi09b4n31kpnmq4v2dga5ja438a8f1wgkgwvvlpjmadx22b";
     };
     meta = {
       description = "Checks to see if the module can be loaded";
@@ -19196,10 +20139,10 @@ let
 
   TestSimple13 = buildPerlPackage {
     pname = "Test-Simple";
-    version = "1.302171";
+    version = "1.302175";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/EX/EXODIST/Test-Simple-1.302171.tar.gz";
-      sha256 = "e27f90d2b2a6bc6ffa7675a072c2f41d5caffd99858dc69b2030940cc138368a";
+      url = mirror://cpan/authors/id/E/EX/EXODIST/Test-Simple-1.302175.tar.gz;
+      sha256 = "c8c8f5c51ad6d7a858c3b61b8b658d8e789d3da5d300065df0633875b0075e49";
     };
     meta = {
       description = "Basic utilities for writing tests";
@@ -19315,10 +20258,10 @@ let
 
   TestTrailingSpace = buildPerlModule {
     pname = "Test-TrailingSpace";
-    version = "0.0302";
+    version = "0.0600";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Test-TrailingSpace-0.0302.tar.gz";
-      sha256 = "c48a6377d84576512b47652798d9d4bb4467adacf0e6afc3df1f880f2c03b612";
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/Test-TrailingSpace-0.0600.tar.gz;
+      sha256 = "f09d263adec06700a43a24e29f5484cf6d2939914c607dec51590f4bb8fa5a11";
     };
     propagatedBuildInputs = [ FileFindObjectRule ];
     meta = {
@@ -19356,10 +20299,10 @@ let
 
   TestWarnings = buildPerlPackage {
     pname = "Test-Warnings";
-    version = "0.028";
+    version = "0.030";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Warnings-0.028.tar.gz";
-      sha256 = "26fda9f8d279e943d27e43a4a3a5cea8a6592cd36e7308695f8dc6602262c0e0";
+      url = mirror://cpan/authors/id/E/ET/ETHER/Test-Warnings-0.030.tar.gz;
+      sha256 = "89a4947ddf1564ae01122275584433d7f6c4370370bcf3768922d796956ae24f";
     };
     buildInputs = [ CPANMetaCheck PadWalker ];
     meta = {
@@ -19462,10 +20405,10 @@ let
 
   TextAligner = buildPerlModule {
     pname = "Text-Aligner";
-    version = "0.13";
+    version = "0.16";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Aligner-0.13.tar.gz";
-      sha256 = "1vry21jrh91l2pkajnrps83bnr1fn6zshbzi80mcrnggrn9iq776";
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Aligner-0.16.tar.gz;
+      sha256 = "09ap457vrlqvw2544j907fbb5crs08hd7sy4syipzxc6wny7v1aw";
     };
     meta = {
       description = "Align text in columns";
@@ -19585,10 +20528,10 @@ let
 
   TextCSV_XS = buildPerlPackage {
     pname = "Text-CSV_XS";
-    version = "1.40";
+    version = "1.43";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/H/HM/HMBRAND/Text-CSV_XS-1.40.tgz";
-      sha256 = "6a448ae1f66768fa5dec1cd2fb246bcaaa3f3ea22d555d1fee8d091833073675";
+      url = mirror://cpan/authors/id/H/HM/HMBRAND/Text-CSV_XS-1.43.tgz;
+      sha256 = "cd94538e8ae9388d9e9e5527630f38f4d2b766e30310d283f0f9c692b94230bb";
     };
     meta = {
       description = "Comma-Separated Values manipulation routines";
@@ -19892,10 +20835,10 @@ let
 
   TextTable = buildPerlModule {
     pname = "Text-Table";
-    version = "1.133";
+    version = "1.134";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Table-1.133.tar.gz";
-      sha256 = "04kh5x5inq183rdg221wlqaaqi1ipyj588mxsslik6nhc14f17nd";
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/Text-Table-1.134.tar.gz;
+      sha256 = "02yigisvgshpgfyqwj0xad4jg473cd80a6c210nb5h5p32dl5kxs";
     };
     propagatedBuildInputs = [ TextAligner ];
     meta = {
@@ -20005,10 +20948,10 @@ let
 
   Testutf8 = buildPerlPackage {
     pname = "Test-utf8";
-    version = "1.01";
+    version = "1.02";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MA/MARKF/Test-utf8-1.01.tar.gz";
-      sha256 = "ef371b1769cd8d36d2d657e8321723d94c8f8d89e7fd7437c6648c5dc6711b7a";
+      url = mirror://cpan/authors/id/M/MA/MARKF/Test-utf8-1.02.tar.gz;
+      sha256 = "df82f09c5940830b25a49f1c8162fa24d371e602880edef8d9a4d4bfd66b8bd7";
     };
     meta = {
       homepage = "https://github.com/2shortplanks/Test-utf8";
@@ -20169,6 +21112,21 @@ let
     };
   };
 
+  TieEncryptedHash = buildPerlPackage {
+    pname = "Tie-EncryptedHash";
+    version = "1.24";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/V/VI/VIPUL/Tie-EncryptedHash-1.24.tar.gz";
+      sha256 = "aa9a083a231e4046170a5894644e3c59679c7dbd0aa2d1217dc85150df2c1e21";
+    };
+    propagatedBuildInputs = [ CryptBlowfish CryptCBC CryptDES ];
+    meta = {
+      description = "Hashes (and objects based on hashes) with encrypting fields";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = [ maintainers.sgo ];
+    };
+  };
+
   TieFile = buildPerlPackage {
     pname = "Tie-File";
     version = "1.05";
@@ -20282,10 +21240,10 @@ let
 
   TimeDate = buildPerlPackage {
     pname = "TimeDate";
-    version = "2.31";
+    version = "2.33";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/A/AT/ATOOMIC/TimeDate-2.31.tar.gz";
-      sha256 = "10ad6l4ii2iahdpw8h0xqwasc1jblan31h597q3js4j5nbnhywjw";
+      url = mirror://cpan/authors/id/A/AT/ATOOMIC/TimeDate-2.33.tar.gz;
+      sha256 = "1cjyc0yi873597r7xcp9yz0l1c46ik2kxwfrn00zbrlx0d5rrdn0";
     };
   };
 
@@ -20368,6 +21326,21 @@ let
     };
   };
 
+  TimePiece = buildPerlPackage {
+    pname = "Time-Piece";
+    version = "1.3401";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ES/ESAYM/Time-Piece-1.3401.tar.gz";
+      sha256 = "4b55b7bb0eab45cf239a54dfead277dfa06121a43e63b3fce0853aecfdb04c27";
+    };
+    meta = {
+      description = "Object Oriented time objects";
+      homepage = "https://metacpan.org/release/Time-Piece";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   Tirex = buildPerlPackage rec {
     pname = "Tirex";
     version = "0.6.1";
@@ -20405,10 +21378,10 @@ let
 
   Tk = buildPerlPackage {
     pname = "Tk";
-    version = "804.034";
+    version = "804.035";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SR/SREZIC/Tk-804.034.tar.gz";
-      sha256 = "fea6b144c723528a2206c8cd9175844032ee9c14ee37791f0f151e5e5b293fe2";
+      url = mirror://cpan/authors/id/S/SR/SREZIC/Tk-804.035.tar.gz;
+      sha256 = "4d2b80291ba6de34d8ec886a085a6dbd2b790b926035a087e99025614c5ffdd4";
     };
     makeMakerFlags = "X11INC=${pkgs.xorg.libX11.dev}/include X11LIB=${pkgs.xorg.libX11.out}/lib";
     buildInputs = [ pkgs.xorg.libX11 pkgs.libpng ];
@@ -20502,10 +21475,10 @@ let
 
   TypeTiny = buildPerlPackage {
     pname = "Type-Tiny";
-    version = "1.008005";
+    version = "1.010002";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-1.008005.tar.gz";
-      sha256 = "cc25eb6bd204b586b71e1f6408922b88be3c8183a1e4f99282d885904c776226";
+      url = mirror://cpan/authors/id/T/TO/TOBYINK/Type-Tiny-1.010002.tar.gz;
+      sha256 = "2ea6ea2d8b2b3bb1b94f0309fa5064d57e7734c8bb14e99218e655dc1647073a";
     };
     propagatedBuildInputs = [ ExporterTiny ];
     meta = {
@@ -20629,6 +21602,22 @@ let
     };
   };
 
+  UnicodeUTF8 = buildPerlPackage {
+    pname = "Unicode-UTF8";
+    version = "0.62";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHANSEN/Unicode-UTF8-0.62.tar.gz";
+      sha256 = "fa8722d0b74696e332fddd442994436ea93d3bfc7982d4babdcedfddd657d0f6";
+    };
+    buildInputs = [ TestFatal ];
+    meta = {
+      homepage = "https://github.com/chansen/p5-unicode-utf8";
+      description = "Encoding and decoding of UTF-8 encoding form";
+      license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+      maintainers = with maintainers; [ sgo ];
+    };
+  };
+
   UnixGetrusage = buildPerlPackage {
     pname = "Unix-Getrusage";
     version = "0.03";
@@ -20892,16 +21881,16 @@ let
       url = "mirror://cpan/authors/id/S/SZ/SZBALINT/WWW-Curl-4.17.tar.gz";
       sha256 = "1fmp9aib1kaps9vhs4dwxn7b15kgnlz9f714bxvqsd1j1q8spzsj";
     };
-    patches = [ ../development/perl-modules/WWW-Curl-4.17-Skip-preprocessor-symbol-only-CURL_STRICTER.patch ];
+    patches = [
+      (fetchpatch {
+        url = "https://aur.archlinux.org/cgit/aur.git/plain/curl-7.71.0.patch?h=perl-www-curl&id=261d84887d736cc097abef61164339216fb79180";
+        sha256 = "1hiw5lkflfa93z5d6k8fnnml0r08c653bbvvb8zx6gcrlbrdalfs";
+        name = "WWWCurl-curl-7.71.0.patch";
+      })
+    ];
+    NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang "-Wno-return-type";
     buildInputs = [ pkgs.curl ];
-    preConfigure =
-      ''
-        substituteInPlace Makefile.PL --replace '"cpp"' '"gcc -E"'
-        substituteInPlace Makefile.PL --replace '_LASTENTRY\z' '_LASTENTRY\z|CURL_DID_MEMORY_FUNC_TYPEDEFS\z'
-      '';
-    NIX_CFLAGS_COMPILE = "-DCURL_STRICTER";
     doCheck = false; # performs network access
-    meta.broken = stdenv.lib.versionAtLeast (stdenv.lib.getVersion pkgs.curl) "7.66"; # broken since "curl: 7.65.3 -> 7.66.0"
   };
 
   WWWFormUrlEncoded = buildPerlModule {
@@ -20920,10 +21909,10 @@ let
 
   WWWMechanize = buildPerlPackage {
     pname = "WWW-Mechanize";
-    version = "1.95";
+    version = "2.00";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/O/OA/OALDERS/WWW-Mechanize-1.95.tar.gz";
-      sha256 = "1w121x0xsn1bm699ncanyxqv3njqam3zzjkq8p54bqmzpikn5crs";
+      url = mirror://cpan/authors/id/O/OA/OALDERS/WWW-Mechanize-2.00.tar.gz;
+      sha256 = "0j5bzn9jwb8rclif776gax57jxxn108swmajiqi2cpjbmlwng0ki";
     };
     propagatedBuildInputs = [ HTMLForm HTMLTree LWP ];
     doCheck = false;
@@ -20932,7 +21921,7 @@ let
       description = "Handy web browsing in a Perl object";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
     };
-    buildInputs = [ CGI HTTPServerSimple TestDeep TestFatal TestOutput TestWarnings ];
+    buildInputs = [ CGI HTTPServerSimple PathTiny TestDeep TestFatal TestOutput TestWarnings ];
   };
 
   WWWMechanizeCGI = buildPerlPackage {
@@ -21192,13 +22181,13 @@ let
 
   XMLLibXML = buildPerlPackage {
     pname = "XML-LibXML";
-    version = "2.0202";
+    version = "2.0205";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0202.tar.gz";
-      sha256 = "1bp2d5jpfmp35f2giwqx60q2rmzq469szkxzfcqkd742x72h4ayc";
+      url = mirror://cpan/authors/id/S/SH/SHLOMIF/XML-LibXML-2.0205.tar.gz;
+      sha256 = "0y12bcpnxzn8vs9zglaaxkw0kgrgmljxrxdf1cnijgxi2hkh099s";
     };
     SKIP_SAX_INSTALL = 1;
-    buildInputs = [ AlienLibxml2 ];
+    buildInputs = [ AlienBuild AlienLibxml2 ];
     propagatedBuildInputs = [ XMLSAX ];
   };
 
@@ -21250,10 +22239,10 @@ let
 
   XMLParser = buildPerlPackage {
     pname = "XML-Parser";
-    version = "2.46";
+    version = "2.44";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-2.46.tar.gz";
-      sha256 = "0pai3ik47q7rgnix9644c673fwydz52gqkxr9kxwq765j4j36cfk";
+      url = mirror://cpan/authors/id/T/TO/TODDR/XML-Parser-2.44.tar.gz;
+      sha256 = "05ij0g6bfn27iaggxf8nl5rhlwx6f6p6xmdav6rjcly3x5zd1s8s";
     };
     patches = [ ../development/perl-modules/xml-parser-0001-HACK-Assumes-Expat-paths-are-good.patch ];
     postPatch = stdenv.lib.optionalString (stdenv.buildPlatform != stdenv.hostPlatform) ''
@@ -21491,12 +22480,12 @@ let
 
   XSObjectMagic = buildPerlPackage {
     pname = "XS-Object-Magic";
-    version = "0.04";
+    version = "0.05";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/F/FL/FLORA/XS-Object-Magic-0.04.tar.gz";
-      sha256 = "03fghj7hq0fiicmfdxhmzfm4mzv7s097pgkd32ji7jnljvhm9six";
+      url = mirror://cpan/authors/id/E/ET/ETHER/XS-Object-Magic-0.05.tar.gz;
+      sha256 = "0njyy4y0zax4zz55y82dlm9cly1pld1lcxb281s12bp9rrhf9j9x";
     };
-    buildInputs = [ ExtUtilsDepends TestFatal ];
+    buildInputs = [ ExtUtilsDepends TestFatal TestSimple13 ];
     meta = {
       description = "XS pointer backed objects using sv_magic";
       license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
@@ -21542,6 +22531,7 @@ let
       url = "mirror://cpan/authors/id/T/TO/TODDR/YAML-Syck-1.32.tar.gz";
       sha256 = "1fz9r9vvsmjkzvcbznxw65b319vkmwzd0ck09q9nwip00gn907fv";
     };
+    perlPreHook = stdenv.lib.optionalString stdenv.isDarwin "export LD=$CC";
     meta = {
       description = "Fast, lightweight YAML loader and dumper";
       license = stdenv.lib.licenses.mit;
@@ -21559,19 +22549,19 @@ let
 
   YAMLLibYAML = buildPerlPackage {
     pname = "YAML-LibYAML";
-    version = "0.81";
+    version = "0.82";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-LibYAML-0.81.tar.gz";
-      sha256 = "1rwmy4kywaa0hypy329gb8wbqdk01bv4179bbnjbg66kzl5ndpvh";
+      url = mirror://cpan/authors/id/T/TI/TINITA/YAML-LibYAML-0.82.tar.gz;
+      sha256 = "0j7yhxkaasccynl5iq1cqpf4x253p4bi5wsq6qbwwv2wjsiwgd02";
     };
   };
 
   YAMLPP = buildPerlPackage {
     pname = "YAML-PP";
-    version = "0.018";
+    version = "0.022";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/T/TI/TINITA/YAML-PP-0.018.tar.gz";
-      sha256 = "1s957svv1z4sz62s53n5ym3c0liafs2gl8r0m7xq9qgcb9dyvblx";
+      url = mirror://cpan/authors/id/T/TI/TINITA/YAML-PP-0.022.tar.gz;
+      sha256 = "1hf7kpnzais4inhvh3azr0r9886lsqr8xjb81nik0idlgpl8rzh2";
     };
     buildInputs = [ TestDeep TestWarn ];
     meta = {
diff --git a/nixpkgs/pkgs/top-level/php-packages.nix b/nixpkgs/pkgs/top-level/php-packages.nix
index 6394add94831..578dcaf761bf 100644
--- a/nixpkgs/pkgs/top-level/php-packages.nix
+++ b/nixpkgs/pkgs/top-level/php-packages.nix
@@ -1,9 +1,9 @@
 { stdenv, lib, pkgs, fetchgit, php, autoconf, pkgconfig, re2c
-, gettext, bzip2, curl, libxml2, openssl, gmp, icu, oniguruma, libsodium
+, gettext, bzip2, curl, libxml2, openssl, gmp, icu64, oniguruma, libsodium
 , html-tidy, libzip, zlib, pcre, pcre2, libxslt, aspell, openldap, cyrus_sasl
 , uwimap, pam, libiconv, enchant1, libXpm, gd, libwebp, libjpeg, libpng
 , freetype, libffi, freetds, postgresql, sqlite, net-snmp, unixODBC, libedit
-, readline, rsync
+, readline, rsync, fetchpatch
 }:
 
 let
@@ -57,12 +57,12 @@ in
     };
 
     composer = mkDerivation rec {
-      version = "1.10.6";
+      version = "1.10.8";
       pname = "composer";
 
       src = pkgs.fetchurl {
         url = "https://getcomposer.org/download/${version}/composer.phar";
-        sha256 = "0yzfzgg9qlc388g91bdg7y7rp1q8vqb5hkwykwmr1n1lv8dsrg99";
+        sha256 = "1rbqa56bsc3wrhk8djxdzh755zx1qrqp3wrdid7x0djzbmzp6h2c";
       };
 
       dontUnpack = true;
@@ -232,12 +232,12 @@ in
     };
 
     phpstan = mkDerivation rec {
-      version = "0.12.25";
+      version = "0.12.32";
       pname = "phpstan";
 
       src = pkgs.fetchurl {
         url = "https://github.com/phpstan/phpstan/releases/download/${version}/phpstan.phar";
-        sha256 = "1a864v7fxpv5kp24nkvczrir3ldl6wxvaq85rd391ppa8ahdhvdd";
+        sha256 = "0sb7yhjjh4wj8wbv4cdf0n1lvhx1ciz7ch8lr73maajj2xbvy1zk";
       };
 
       phases = [ "installPhase" ];
@@ -547,7 +547,7 @@ in
       nativeBuildInputs = [ pkgs.pkgconfig ];
       buildInputs = with pkgs; [
         cyrus_sasl
-        icu
+        icu64
         openssl
         snappy
         zlib
@@ -947,6 +947,12 @@ in
         enable = lib.versionOlder php.version "7.4"; }
       { name = "gettext";
         buildInputs = [ gettext ];
+        patches = lib.optionals (lib.versionOlder php.version "7.4") [
+          (fetchpatch {
+            url = "https://github.com/php/php-src/commit/632b6e7aac207194adc3d0b41615bfb610757f41.patch";
+            sha256 = "0xn3ivhc4p070vbk5yx0mzj2n7p04drz3f98i77amr51w0vzv046";
+          })
+        ];
         postPhpize = ''substituteInPlace configure --replace 'as_fn_error $? "Cannot locate header file libintl.h" "$LINENO" 5' ':' '';
         configureFlags = "--with-gettext=${gettext}"; }
       { name = "gmp";
@@ -965,7 +971,13 @@ in
         # uwimap doesn't build on darwin.
         enable = (!stdenv.isDarwin); }
       # interbase (7.3, 7.2)
-      { name = "intl"; buildInputs = [ icu ]; }
+      { name = "intl";
+        buildInputs = [ icu64 ];
+        patches = lib.optional (lib.versionOlder php.version "7.4") (fetchpatch {
+          url = "https://github.com/php/php-src/commit/93a9b56c90c334896e977721bfb3f38b1721cec6.patch";
+          sha256 = "055l40lpyhb0rbjn6y23qkzdhvpp7inbnn6x13cpn4inmhjqfpg4";
+        });
+      }
       { name = "json"; }
       { name = "ldap";
         buildInputs = [ openldap cyrus_sasl ];
@@ -1002,6 +1014,7 @@ in
                +----------------------------------------------------------------------+
                | Copyright (c) The PHP Group                                          |
           '')
+        ] ++ lib.optional (lib.versionOlder php.version "7.4.8") [
           (pkgs.writeText "mysqlnd_fix_compression.patch" ''
             --- a/ext/mysqlnd/mysqlnd.h
             +++ b/ext/mysqlnd/mysqlnd.h
@@ -1157,6 +1170,10 @@ in
         doCheck = false; }
       { name = "zlib";
         buildInputs = [ zlib ];
+        patches = lib.optionals (lib.versionOlder php.version "7.4") [
+          # Derived from https://github.com/php/php-src/commit/f16b012116d6c015632741a3caada5b30ef8a699
+          ../development/interpreters/php/zlib-darwin-tests.patch
+        ];
         configureFlags = [ "--with-zlib" ]
           ++ lib.optional (lib.versionOlder php.version "7.4") [ "--with-zlib-dir=${zlib.dev}" ]; }
     ];
diff --git a/nixpkgs/pkgs/top-level/python-packages.nix b/nixpkgs/pkgs/top-level/python-packages.nix
index c44f2cf38320..7c7af6cbed52 100644
--- a/nixpkgs/pkgs/top-level/python-packages.nix
+++ b/nixpkgs/pkgs/top-level/python-packages.nix
@@ -122,6 +122,7 @@ in {
     pythonCatchConflictsHook
     pythonImportsCheckHook
     pythonNamespacesHook
+    pythonRecompileBytecodeHook
     pythonRemoveBinBytecodeHook
     pythonRemoveTestsDirHook
     setuptoolsBuildHook
@@ -145,157 +146,368 @@ in {
   else
     callPackage ../development/python-modules/setuptools { };
 
-  vowpalwabbit = callPackage ../development/python-modules/vowpalwabbit { };
+  aadict = callPackage ../development/python-modules/aadict { };
 
-  acoustics = callPackage ../development/python-modules/acoustics { };
+  aafigure = callPackage ../development/python-modules/aafigure { };
 
-  py3to2 = callPackage ../development/python-modules/3to2 { };
+  absl-py = callPackage ../development/python-modules/absl-py { };
 
-  pynamodb = callPackage ../development/python-modules/pynamodb { };
+  accupy = callPackage ../development/python-modules/accupy { };
 
-  absl-py = callPackage ../development/python-modules/absl-py { };
+  acebinf = callPackage ../development/python-modules/acebinf { };
+
+  acme = callPackage ../development/python-modules/acme { };
+
+  acme-tiny = callPackage ../development/python-modules/acme-tiny { };
+
+  acoustics = callPackage ../development/python-modules/acoustics { };
+
+  actdiag = callPackage ../development/python-modules/actdiag { };
+
+  adal = callPackage ../development/python-modules/adal { };
 
   adb-homeassistant = callPackage ../development/python-modules/adb-homeassistant { };
 
+  addic7ed-cli = callPackage ../development/python-modules/addic7ed-cli { };
+
   aenum = callPackage ../development/python-modules/aenum { };
 
+  afdko = callPackage ../development/python-modules/afdko { };
+
+  affine = callPackage ../development/python-modules/affine { };
+
   affinity = callPackage ../development/python-modules/affinity { };
 
   agate = callPackage ../development/python-modules/agate { };
 
   agate-dbf = callPackage ../development/python-modules/agate-dbf { };
 
-  alerta = callPackage ../development/python-modules/alerta { };
+  agate-excel = callPackage ../development/python-modules/agate-excel { };
 
-  alerta-server = callPackage ../development/python-modules/alerta-server { };
+  agate-sql = callPackage ../development/python-modules/agate-sql { };
 
-  androguard = callPackage ../development/python-modules/androguard { };
+  aioamqp = callPackage ../development/python-modules/aioamqp { };
 
-  phonenumbers = callPackage ../development/python-modules/phonenumbers { };
+  aioconsole = callPackage ../development/python-modules/aioconsole { };
 
-  agate-excel = callPackage ../development/python-modules/agate-excel { };
+  aiocontextvars = callPackage ../development/python-modules/aiocontextvars { };
 
-  agate-sql = callPackage ../development/python-modules/agate-sql { };
+  aiodns = callPackage ../development/python-modules/aiodns { };
+
+  aioesphomeapi = callPackage ../development/python-modules/aioesphomeapi { };
+
+  aioeventlet = callPackage ../development/python-modules/aioeventlet { };
+
+  aiofiles = callPackage ../development/python-modules/aiofiles { };
+
+  aioftp = callPackage ../development/python-modules/aioftp { };
+
+  aioh2 = callPackage ../development/python-modules/aioh2 { };
+
+  aioharmony = callPackage ../development/python-modules/aioharmony { };
+
+  aiohttp = callPackage ../development/python-modules/aiohttp { };
+
+  aiohttp-cors = callPackage ../development/python-modules/aiohttp-cors { };
+
+  aiohttp-jinja2 = callPackage ../development/python-modules/aiohttp-jinja2 { };
+
+  aiohttp-remotes = callPackage ../development/python-modules/aiohttp-remotes { };
+
+  aiohttp-socks = callPackage ../development/python-modules/aiohttp-socks { };
+
+  aiohttp-swagger = callPackage ../development/python-modules/aiohttp-swagger { };
+
+  aiohue = callPackage ../development/python-modules/aiohue { };
 
   aioimaplib = callPackage ../development/python-modules/aioimaplib { };
 
+  aiojobs = callPackage ../development/python-modules/aiojobs { };
+
+  aiokafka = callPackage ../development/python-modules/aiokafka { };
+
   aiolifx = callPackage ../development/python-modules/aiolifx { };
 
   aiolifx-effects = callPackage ../development/python-modules/aiolifx-effects { };
 
-  aioamqp = callPackage ../development/python-modules/aioamqp { };
+  aiomysql = callPackage ../development/python-modules/aiomysql { };
+
+  aioprocessing = callPackage ../development/python-modules/aioprocessing { };
 
   aioredis = callPackage ../development/python-modules/aioredis { };
 
+  aioresponses = callPackage ../development/python-modules/aioresponses { };
+
+  aiorpcx = callPackage ../development/python-modules/aiorpcx { };
+
   aiorun = callPackage ../development/python-modules/aiorun { };
 
-  ansicolor = callPackage ../development/python-modules/ansicolor { };
+  aiosmtpd = callPackage ../development/python-modules/aiosmtpd { };
+
+  aiosqlite = callPackage ../development/python-modules/aiosqlite { };
+
+  aiounifi = callPackage ../development/python-modules/aiounifi { };
+
+  aiounittest = callPackage ../development/python-modules/aiounittest { };
+
+  aiozeroconf = callPackage ../development/python-modules/aiozeroconf { };
+
+  ajpy = callPackage ../development/python-modules/ajpy { };
+
+  alabaster = callPackage ../development/python-modules/alabaster { };
+
+  alarmdecoder = callPackage ../development/python-modules/alarmdecoder { };
+
+  alembic = callPackage ../development/python-modules/alembic { };
+
+  alerta = callPackage ../development/python-modules/alerta { };
+
+  alerta-server = callPackage ../development/python-modules/alerta-server { };
+
+  algebraic-data-types = callPackage ../development/python-modules/algebraic-data-types { };
+
+  allpairspy = callPackage ../development/python-modules/allpairspy { };
+
+  alot = callPackage ../development/python-modules/alot { };
+
+  altair = callPackage ../development/python-modules/altair { };
+
+  amazon_kclpy = callPackage ../development/python-modules/amazon_kclpy { };
+
+  amply = callPackage ../development/python-modules/amply { };
 
-  ansiwrap =  callPackage ../development/python-modules/ansiwrap { };
+  amqp = callPackage ../development/python-modules/amqp { };
+
+  amqplib = callPackage ../development/python-modules/amqplib { };
+
+  androguard = callPackage ../development/python-modules/androguard { };
+
+  aniso8601 = callPackage ../development/python-modules/aniso8601 { };
+
+  annexremote = callPackage ../development/python-modules/annexremote { };
+
+  annoy = callPackage ../development/python-modules/annoy { };
+
+  anonip = callPackage ../development/python-modules/anonip { };
 
   ansi2html = callPackage ../development/python-modules/ansi2html { };
 
-  anytree = callPackage ../development/python-modules/anytree {
-    inherit (pkgs) graphviz;
-  };
+  ansible = callPackage ../development/python-modules/ansible { };
+
+  ansible-kernel = callPackage ../development/python-modules/ansible-kernel { };
+
+  ansible-lint = callPackage ../development/python-modules/ansible-lint { };
+
+  ansible-runner = callPackage ../development/python-modules/ansible-runner { };
+
+  ansi = callPackage ../development/python-modules/ansi { };
+
+  ansicolor = callPackage ../development/python-modules/ansicolor { };
+
+  ansicolors = callPackage ../development/python-modules/ansicolors { };
+
+  ansiconv = callPackage ../development/python-modules/ansiconv { };
+
+  ansiwrap = callPackage ../development/python-modules/ansiwrap { };
+
+  antlr4-python2-runtime = callPackage ../development/python-modules/antlr4-python2-runtime { antlr4 = pkgs.antlr4; };
+
+  antlr4-python3-runtime = callPackage ../development/python-modules/antlr4-python3-runtime { antlr4 = pkgs.antlr4; };
+
+  anyjson = callPackage ../development/python-modules/anyjson { };
+
+  anytree = callPackage ../development/python-modules/anytree { inherit (pkgs) graphviz; };
+
+  apache-airflow = callPackage ../development/python-modules/apache-airflow { };
+
+  apipkg = callPackage ../development/python-modules/apipkg { };
+
+  apispec = callPackage ../development/python-modules/apispec { };
 
   aplpy = callPackage ../development/python-modules/aplpy { };
 
+  appdirs = callPackage ../development/python-modules/appdirs { };
+
+  appleseed = disabledIf isPy3k (toPythonModule (pkgs.appleseed.override { inherit (self) python; }));
+
+  application = callPackage ../development/python-modules/application { };
+
+  applicationinsights = callPackage ../development/python-modules/applicationinsights { };
+
+  appnope = callPackage ../development/python-modules/appnope { };
+
   apprise = callPackage ../development/python-modules/apprise { };
 
-  arrayqueues = callPackage ../development/python-modules/arrayqueues { };
+  approvaltests = callPackage ../development/python-modules/approvaltests { };
+
+  apptools = callPackage ../development/python-modules/apptools { };
+
+  APScheduler = callPackage ../development/python-modules/APScheduler { };
+
+  apsw = callPackage ../development/python-modules/apsw { };
+
+  area = callPackage ../development/python-modules/area { };
+
+  arelle = callPackage ../development/python-modules/arelle { gui = true; };
+
+  arelle-headless = callPackage ../development/python-modules/arelle { gui = false; };
 
   aresponses = callPackage ../development/python-modules/aresponses { };
 
+  argcomplete = callPackage ../development/python-modules/argcomplete { };
+
+  argh = callPackage ../development/python-modules/argh { };
+
   argon2_cffi = callPackage ../development/python-modules/argon2_cffi { };
 
+  args = callPackage ../development/python-modules/args { };
+
   aria2p = callPackage ../development/python-modules/aria2p { inherit (pkgs) aria2; };
 
+  arrayqueues = callPackage ../development/python-modules/arrayqueues { };
+
+  arrow = callPackage ../development/python-modules/arrow { };
+
   arviz = callPackage ../development/python-modules/arviz { };
 
-  asana = callPackage ../development/python-modules/asana { };
+  arxiv2bib = callPackage ../development/python-modules/arxiv2bib { };
 
-  asdf = callPackage ../development/python-modules/asdf { };
+  asana = callPackage ../development/python-modules/asana { };
 
   asciimatics = callPackage ../development/python-modules/asciimatics { };
 
   asciitree = callPackage ../development/python-modules/asciitree { };
 
+  asdf = callPackage ../development/python-modules/asdf { };
+
   ase = if isPy27 then
-          callPackage ../development/python-modules/ase/3.17.nix { }
-        else
-          callPackage ../development/python-modules/ase { };
+    callPackage ../development/python-modules/ase/3.17.nix { }
+  else
+    callPackage ../development/python-modules/ase { };
+
+  asgi-csrf = callPackage ../development/python-modules/asgi-csrf { };
+
+  asgiref = callPackage ../development/python-modules/asgiref { };
+
+  asn1ate = callPackage ../development/python-modules/asn1ate { };
 
   asn1crypto = callPackage ../development/python-modules/asn1crypto { };
 
   aspy-yaml = callPackage ../development/python-modules/aspy.yaml { };
 
+  astor = callPackage ../development/python-modules/astor { };
+
   astral = callPackage ../development/python-modules/astral { };
 
-  astropy = callPackage ../development/python-modules/astropy { };
+  astroid = if isPy3k then
+    callPackage ../development/python-modules/astroid { }
+  else
+    callPackage ../development/python-modules/astroid/1.6.nix { };
 
-  astropy-helpers = callPackage ../development/python-modules/astropy-helpers { };
+  astropy = callPackage ../development/python-modules/astropy { };
 
   astropy-healpix = callPackage ../development/python-modules/astropy-healpix { };
 
+  astropy-helpers = callPackage ../development/python-modules/astropy-helpers { };
+
   astroquery = callPackage ../development/python-modules/astroquery { };
 
   asttokens = callPackage ../development/python-modules/asttokens { };
 
+  astunparse = callPackage ../development/python-modules/astunparse { };
+
+  async_generator = callPackage ../development/python-modules/async_generator { };
+
+  asyncpg = callPackage ../development/python-modules/asyncpg { };
+
+  asyncssh = callPackage ../development/python-modules/asyncssh { };
+
+  asynctest = callPackage ../development/python-modules/asynctest { };
+
+  async-timeout = callPackage ../development/python-modules/async_timeout { };
+
+  async-upnp-client = callPackage ../development/python-modules/async-upnp-client { };
+
+  atlassian-python-api = callPackage ../development/python-modules/atlassian-python-api { };
+
   atom = callPackage ../development/python-modules/atom { };
 
-  augeas = callPackage ../development/python-modules/augeas {
-    inherit (pkgs) augeas;
-  };
+  atomiclong = callPackage ../development/python-modules/atomiclong { };
 
-  authheaders = callPackage ../development/python-modules/authheaders { };
+  atomicwrites = callPackage ../development/python-modules/atomicwrites { };
 
-  authres = callPackage ../development/python-modules/authres { };
+  atomman = callPackage ../development/python-modules/atomman { };
 
-  auth0-python = callPackage ../development/python-modules/auth0-python { };
+  atpublic = callPackage ../development/python-modules/atpublic { };
 
-  autograd = callPackage ../development/python-modules/autograd { };
+  atsim_potentials = callPackage ../development/python-modules/atsim_potentials { };
 
-  autologging = callPackage ../development/python-modules/autologging { };
+  attrdict = callPackage ../development/python-modules/attrdict { };
 
-  automat = callPackage ../development/python-modules/automat { };
+  attrs = callPackage ../development/python-modules/attrs { };
 
-  awkward = callPackage ../development/python-modules/awkward { };
-  awkward1 = callPackage ../development/python-modules/awkward1 { };
+  audio-metadata = callPackage ../development/python-modules/audio-metadata { };
 
-  aws-sam-translator = callPackage ../development/python-modules/aws-sam-translator { };
+  audioread = callPackage ../development/python-modules/audioread { };
 
-  aws-xray-sdk = callPackage ../development/python-modules/aws-xray-sdk { };
+  audiotools = callPackage ../development/python-modules/audiotools { };
 
-  aws-adfs = callPackage ../development/python-modules/aws-adfs { };
+  augeas = callPackage ../development/python-modules/augeas { inherit (pkgs) augeas; };
 
-  atomman = callPackage ../development/python-modules/atomman { };
+  auth0-python = callPackage ../development/python-modules/auth0-python { };
+
+  authheaders = callPackage ../development/python-modules/authheaders { };
 
   authlib = callPackage ../development/python-modules/authlib { };
 
-  # packages defined elsewhere
+  authres = callPackage ../development/python-modules/authres { };
 
-  amazon_kclpy = callPackage ../development/python-modules/amazon_kclpy { };
+  autobahn = callPackage ../development/python-modules/autobahn { };
 
-  ansiconv = callPackage ../development/python-modules/ansiconv { };
+  autograd = callPackage ../development/python-modules/autograd { };
+
+  autologging = callPackage ../development/python-modules/autologging { };
+
+  automat = callPackage ../development/python-modules/automat { };
+
+  autopep8 = callPackage ../development/python-modules/autopep8 { };
 
   avahi = toPythonModule (pkgs.avahi.override {
     inherit python;
     withPython = true;
   });
 
-  azure-nspkg = callPackage ../development/python-modules/azure-nspkg { };
+  av = callPackage ../development/python-modules/av { inherit (pkgs) pkgconfig; };
 
-  azure-common = callPackage ../development/python-modules/azure-common { };
+  avro3k = callPackage ../development/python-modules/avro3k { };
 
-  azure-cosmos = callPackage ../development/python-modules/azure-cosmos { };
+  avro = callPackage ../development/python-modules/avro { };
+
+  avro-python3 = callPackage ../development/python-modules/avro-python3 { };
+
+  awesome-slugify = callPackage ../development/python-modules/awesome-slugify { };
+
+  awkward = callPackage ../development/python-modules/awkward { };
+  awkward1 = callPackage ../development/python-modules/awkward1 { };
+
+  aws-adfs = callPackage ../development/python-modules/aws-adfs { };
+
+  aws-lambda-builders = callPackage ../development/python-modules/aws-lambda-builders { };
+
+  aws-sam-translator = callPackage ../development/python-modules/aws-sam-translator { };
+
+  aws-xray-sdk = callPackage ../development/python-modules/aws-xray-sdk { };
 
   azure-applicationinsights = callPackage ../development/python-modules/azure-applicationinsights { };
 
   azure-batch = callPackage ../development/python-modules/azure-batch { };
 
+  azure-common = callPackage ../development/python-modules/azure-common { };
+
   azure-core = callPackage ../development/python-modules/azure-core { };
 
+  azure-cosmos = callPackage ../development/python-modules/azure-cosmos { };
+
   azure-cosmosdb-nspkg = callPackage ../development/python-modules/azure-cosmosdb-nspkg { };
 
   azure-cosmosdb-table = callPackage ../development/python-modules/azure-cosmosdb-table { };
@@ -322,30 +534,6 @@ in {
 
   azure-loganalytics = callPackage ../development/python-modules/azure-loganalytics { };
 
-  azure-servicebus = callPackage ../development/python-modules/azure-servicebus { };
-
-  azure-servicefabric = callPackage ../development/python-modules/azure-servicefabric { };
-
-  azure-servicemanagement-legacy = callPackage ../development/python-modules/azure-servicemanagement-legacy { };
-
-  azure-storage-nspkg = callPackage ../development/python-modules/azure-storage-nspkg { };
-
-  azure-storage-common = callPackage ../development/python-modules/azure-storage-common { };
-
-  azure-storage = callPackage ../development/python-modules/azure-storage { };
-
-  azure-storage-blob = callPackage ../development/python-modules/azure-storage-blob { };
-
-  azure-storage-file = callPackage ../development/python-modules/azure-storage-file { };
-
-  azure-storage-file-share = callPackage ../development/python-modules/azure-storage-file-share { };
-
-  azure-storage-queue = callPackage ../development/python-modules/azure-storage-queue { };
-
-  azure-mgmt-nspkg = callPackage ../development/python-modules/azure-mgmt-nspkg { };
-
-  azure-mgmt-common = callPackage ../development/python-modules/azure-mgmt-common { };
-
   azure-mgmt-advisor = callPackage ../development/python-modules/azure-mgmt-advisor { };
 
   azure-mgmt-apimanagement = callPackage ../development/python-modules/azure-mgmt-apimanagement { };
@@ -356,10 +544,10 @@ in {
 
   azure-mgmt-authorization = callPackage ../development/python-modules/azure-mgmt-authorization { };
 
-  azure-mgmt-batch = callPackage ../development/python-modules/azure-mgmt-batch { };
-
   azure-mgmt-batchai = callPackage ../development/python-modules/azure-mgmt-batchai { };
 
+  azure-mgmt-batch = callPackage ../development/python-modules/azure-mgmt-batch { };
+
   azure-mgmt-billing = callPackage ../development/python-modules/azure-mgmt-billing { };
 
   azure-mgmt-botservice = callPackage ../development/python-modules/azure-mgmt-botservice { };
@@ -370,6 +558,8 @@ in {
 
   azure-mgmt-commerce = callPackage ../development/python-modules/azure-mgmt-commerce { };
 
+  azure-mgmt-common = callPackage ../development/python-modules/azure-mgmt-common { };
+
   azure-mgmt-compute = callPackage ../development/python-modules/azure-mgmt-compute { };
 
   azure-mgmt-consumption = callPackage ../development/python-modules/azure-mgmt-consumption { };
@@ -394,12 +584,12 @@ in {
 
   azure-mgmt-datamigration = callPackage ../development/python-modules/azure-mgmt-datamigration { };
 
+  azure-mgmt-deploymentmanager = callPackage ../development/python-modules/azure-mgmt-deploymentmanager { };
+
   azure-mgmt-devspaces = callPackage ../development/python-modules/azure-mgmt-devspaces { };
 
   azure-mgmt-devtestlabs = callPackage ../development/python-modules/azure-mgmt-devtestlabs { };
 
-  azure-mgmt-deploymentmanager = callPackage ../development/python-modules/azure-mgmt-deploymentmanager { };
-
   azure-mgmt-dns = callPackage ../development/python-modules/azure-mgmt-dns { };
 
   azure-mgmt-eventgrid = callPackage ../development/python-modules/azure-mgmt-eventgrid { };
@@ -416,7 +606,8 @@ in {
 
   azure-mgmt-iothub = callPackage ../development/python-modules/azure-mgmt-iothub { };
 
-  azure-mgmt-iothubprovisioningservices = callPackage ../development/python-modules/azure-mgmt-iothubprovisioningservices { };
+  azure-mgmt-iothubprovisioningservices =
+    callPackage ../development/python-modules/azure-mgmt-iothubprovisioningservices { };
 
   azure-mgmt-keyvault = callPackage ../development/python-modules/azure-mgmt-keyvault { };
 
@@ -450,6 +641,8 @@ in {
 
   azure-mgmt-notificationhubs = callPackage ../development/python-modules/azure-mgmt-notificationhubs { };
 
+  azure-mgmt-nspkg = callPackage ../development/python-modules/azure-mgmt-nspkg { };
+
   azure-mgmt-policyinsights = callPackage ../development/python-modules/azure-mgmt-policyinsights { };
 
   azure-mgmt-powerbiembedded = callPackage ../development/python-modules/azure-mgmt-powerbiembedded { };
@@ -458,10 +651,10 @@ in {
 
   azure-mgmt-rdbms = callPackage ../development/python-modules/azure-mgmt-rdbms { };
 
-  azure-mgmt-recoveryservices = callPackage ../development/python-modules/azure-mgmt-recoveryservices { };
-
   azure-mgmt-recoveryservicesbackup = callPackage ../development/python-modules/azure-mgmt-recoveryservicesbackup { };
 
+  azure-mgmt-recoveryservices = callPackage ../development/python-modules/azure-mgmt-recoveryservices { };
+
   azure-mgmt-redhatopenshift = callPackage ../development/python-modules/azure-mgmt-redhatopenshift { };
 
   azure-mgmt-redis = callPackage ../development/python-modules/azure-mgmt-redis { };
@@ -492,2623 +685,2696 @@ in {
 
   azure-mgmt-subscription = callPackage ../development/python-modules/azure-mgmt-subscription { };
 
+  azure-mgmt-synapse = callPackage ../development/python-modules/azure-mgmt-synapse { };
+
   azure-mgmt-trafficmanager = callPackage ../development/python-modules/azure-mgmt-trafficmanager { };
 
   azure-mgmt-web = callPackage ../development/python-modules/azure-mgmt-web { };
 
   azure-multiapi-storage = callPackage ../development/python-modules/azure-multiapi-storage { };
 
-  backports_csv = callPackage ../development/python-modules/backports_csv {};
+  azure-nspkg = callPackage ../development/python-modules/azure-nspkg { };
 
-  backports-shutil-which = callPackage ../development/python-modules/backports-shutil-which {};
+  azure-servicebus = callPackage ../development/python-modules/azure-servicebus { };
 
-  bacpypes = callPackage ../development/python-modules/bacpypes {};
+  azure-servicefabric = callPackage ../development/python-modules/azure-servicefabric { };
 
-  bap = callPackage ../development/python-modules/bap {
-    bap = pkgs.ocaml-ng.ocamlPackages_4_06.bap;
-  };
+  azure-servicemanagement-legacy = callPackage ../development/python-modules/azure-servicemanagement-legacy { };
 
-  baselines = callPackage ../development/python-modules/baselines { };
+  azure-storage-blob = callPackage ../development/python-modules/azure-storage-blob { };
 
-  bash_kernel = callPackage ../development/python-modules/bash_kernel { };
+  azure-storage = callPackage ../development/python-modules/azure-storage { };
 
-  bashlex = callPackage ../development/python-modules/bashlex { };
+  azure-storage-common = callPackage ../development/python-modules/azure-storage-common { };
 
-  bayesian-optimization = callPackage ../development/python-modules/bayesian-optimization { };
+  azure-storage-file = callPackage ../development/python-modules/azure-storage-file { };
 
-  bayespy = callPackage ../development/python-modules/bayespy { };
+  azure-storage-file-share = callPackage ../development/python-modules/azure-storage-file-share { };
 
-  beanstalkc = callPackage ../development/python-modules/beanstalkc { };
+  azure-storage-nspkg = callPackage ../development/python-modules/azure-storage-nspkg { };
 
-  bitarray = callPackage ../development/python-modules/bitarray { };
+  azure-storage-queue = callPackage ../development/python-modules/azure-storage-queue { };
 
-  bitcoinlib = callPackage ../development/python-modules/bitcoinlib { };
+  azure-synapse-accesscontrol = callPackage ../development/python-modules/azure-synapse-accesscontrol { };
 
-  bitcoin-price-api = callPackage ../development/python-modules/bitcoin-price-api { };
+  azure-synapse-spark = callPackage ../development/python-modules/azure-synapse-spark { };
 
-  blivet = callPackage ../development/python-modules/blivet { };
+  b2sdk = callPackage ../development/python-modules/b2sdk { };
 
-  bluepy = callPackage ../development/python-modules/bluepy { };
+  Babel = callPackage ../development/python-modules/Babel { };
 
-  boltons = callPackage ../development/python-modules/boltons { };
+  babelfish = callPackage ../development/python-modules/babelfish { };
 
-  bravia-tv = callPackage ../development/python-modules/bravia-tv { };
+  babelgladeextractor = callPackage ../development/python-modules/babelgladeextractor { };
 
-  braintree = callPackage ../development/python-modules/braintree { };
+  backcall = callPackage ../development/python-modules/backcall { };
 
-  breezy = callPackage ../development/python-modules/breezy { };
+  backoff = callPackage ../development/python-modules/backoff { };
 
-  ciso8601 = callPackage ../development/python-modules/ciso8601 { };
+  backports_abc = callPackage ../development/python-modules/backports_abc { };
 
-  deepdiff = callPackage ../development/python-modules/deepdiff { };
+  backports_csv = callPackage ../development/python-modules/backports_csv { };
 
-  django-sesame = callPackage ../development/python-modules/django-sesame { };
+  backports_functools_lru_cache = callPackage ../development/python-modules/backports_functools_lru_cache { };
 
-  bravado-core = callPackage ../development/python-modules/bravado-core { };
+  backports_lzma = callPackage ../development/python-modules/backports_lzma { };
 
-  breathe = callPackage ../development/python-modules/breathe { };
+  backports_os = callPackage ../development/python-modules/backports_os { };
 
-  brotli = callPackage ../development/python-modules/brotli { };
+  backports_shutil_get_terminal_size = callPackage ../development/python-modules/backports_shutil_get_terminal_size { };
 
-  broadlink = callPackage ../development/python-modules/broadlink { };
+  backports-shutil-which = callPackage ../development/python-modules/backports-shutil-which { };
 
-  browser-cookie3 = callPackage ../development/python-modules/browser-cookie3 { };
+  backports_ssl_match_hostname =
+    if !(pythonOlder "3.5") then null else callPackage ../development/python-modules/backports_ssl_match_hostname { };
 
-  browsermob-proxy = disabledIf isPy3k (callPackage ../development/python-modules/browsermob-proxy {});
+  backports_tempfile = callPackage ../development/python-modules/backports_tempfile { };
 
-  bt_proximity = callPackage ../development/python-modules/bt-proximity { };
+  backports_unittest-mock = callPackage ../development/python-modules/backports_unittest-mock { };
 
-  bugseverywhere = throw "bugseverywhere has been removed: Abandoned by upstream."; # Added 2019-11-27
+  backports_weakref = callPackage ../development/python-modules/backports_weakref { };
 
-  bugsnag = callPackage ../development/python-modules/bugsnag { };
+  bacpypes = callPackage ../development/python-modules/bacpypes { };
 
-  cachecontrol = callPackage ../development/python-modules/cachecontrol { };
+  bandit = callPackage ../development/python-modules/bandit { };
 
-  cachelib = callPackage ../development/python-modules/cachelib { };
+  bap = callPackage ../development/python-modules/bap { bap = pkgs.ocaml-ng.ocamlPackages_4_06.bap; };
 
-  cachy = callPackage ../development/python-modules/cachy { };
+  base58 = callPackage ../development/python-modules/base58 { };
 
-  cadquery = callPackage ../development/python-modules/cadquery { };
+  baselines = callPackage ../development/python-modules/baselines { };
 
-  catalogue = callPackage ../development/python-modules/catalogue { };
+  basemap = callPackage ../development/python-modules/basemap { };
 
-  cbeams = callPackage ../misc/cbeams { };
+  bash_kernel = callPackage ../development/python-modules/bash_kernel { inherit (pkgs) bash; };
 
-  cdecimal = callPackage ../development/python-modules/cdecimal { };
+  bashlex = callPackage ../development/python-modules/bashlex { };
 
-  cfn-flip = callPackage ../development/python-modules/cfn-flip { };
+  basiciw = callPackage ../development/python-modules/basiciw { inherit (pkgs) gcc wirelesstools; };
 
-  chalice = callPackage ../development/python-modules/chalice { };
+  batchgenerators = callPackage ../development/python-modules/batchgenerators { };
 
-  channels-redis = callPackage ../development/python-modules/channels-redis { };
+  batchspawner = callPackage ../development/python-modules/batchspawner { };
 
-  cleo = callPackage ../development/python-modules/cleo { };
+  batinfo = callPackage ../development/python-modules/batinfo { };
 
-  clikit = callPackage ../development/python-modules/clikit { };
+  bayesian-optimization = callPackage ../development/python-modules/bayesian-optimization { };
 
-  cliff = callPackage ../development/python-modules/cliff { };
+  bayespy = callPackage ../development/python-modules/bayespy { };
 
-  clifford = callPackage ../development/python-modules/clifford { };
+  bcdoc = callPackage ../development/python-modules/bcdoc { };
 
-  clickclick = callPackage ../development/python-modules/clickclick { };
+  bcrypt = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/bcrypt/3_1.nix { }
+  else
+    callPackage ../development/python-modules/bcrypt { };
 
-  clustershell = callPackage ../development/python-modules/clustershell { };
+  beaker = callPackage ../development/python-modules/beaker { };
 
-  cnvkit = callPackage ../development/python-modules/cnvkit { };
+  beancount = callPackage ../development/python-modules/beancount { };
 
-  cocotb = callPackage ../development/python-modules/cocotb { };
+  beancount_docverif = callPackage ../development/python-modules/beancount_docverif { };
 
-  compiledb = callPackage ../development/python-modules/compiledb { };
+  beanstalkc = callPackage ../development/python-modules/beanstalkc { };
 
-  connexion = callPackage ../development/python-modules/connexion { };
+  beautifulsoup4 = callPackage ../development/python-modules/beautifulsoup4 { };
 
-  coordinates = callPackage ../development/python-modules/coordinates { };
+  bedup = callPackage ../development/python-modules/bedup { };
 
-  cozy = callPackage ../development/python-modules/cozy { };
+  behave = callPackage ../development/python-modules/behave { };
 
-  codespell = callPackage ../development/python-modules/codespell { };
+  bellows = callPackage ../development/python-modules/bellows { };
 
-  convertdate = callPackage ../development/python-modules/convertdate { };
+  bespon = callPackage ../development/python-modules/bespon { };
 
-  crc32c = callPackage ../development/python-modules/crc32c { };
+  betamax = callPackage ../development/python-modules/betamax { };
 
-  curio = callPackage ../development/python-modules/curio { };
+  betamax-matchers = callPackage ../development/python-modules/betamax-matchers { };
 
-  dendropy = callPackage ../development/python-modules/dendropy { };
+  betamax-serializers = callPackage ../development/python-modules/betamax-serializers { };
 
-  denonavr = callPackage ../development/python-modules/denonavr { };
+  bibtexparser = callPackage ../development/python-modules/bibtexparser { };
 
-  dependency-injector = callPackage ../development/python-modules/dependency-injector { };
+  bidict = callPackage ../development/python-modules/bidict { };
 
-  btchip = callPackage ../development/python-modules/btchip { };
+  bids-validator = callPackage ../development/python-modules/bids-validator { };
 
-  databricks-cli = callPackage ../development/python-modules/databricks-cli { };
+  billiard = callPackage ../development/python-modules/billiard { };
+
+  binaryornot = callPackage ../development/python-modules/binaryornot { };
 
-  datatable = callPackage ../development/python-modules/datatable {
-    inherit (pkgs.llvmPackages) openmp libcxx libcxxabi;
+  binwalk = callPackage ../development/python-modules/binwalk {
+    pyqtgraph = null;
+    matplotlib = null;
   };
 
-  databases = callPackage ../development/python-modules/databases { };
+  binwalk-full = appendToName "full" (self.binwalk.override {
+    pyqtgraph = self.pyqtgraph;
+    matplotlib = self.matplotlib;
+  });
 
-  datamodeldict = callPackage ../development/python-modules/datamodeldict { };
+  biopython = callPackage ../development/python-modules/biopython { };
 
-  datasette = callPackage ../development/python-modules/datasette { };
+  biplist = callPackage ../development/python-modules/biplist { };
 
-  datashader = callPackage ../development/python-modules/datashader { };
+  bip_utils = callPackage ../development/python-modules/bip_utils { };
 
-  dbf = callPackage ../development/python-modules/dbf { };
+  bitarray = callPackage ../development/python-modules/bitarray { };
 
-  dbfread = callPackage ../development/python-modules/dbfread { };
+  bitbucket_api = callPackage ../development/python-modules/bitbucket-api { };
 
-  deap = callPackage ../development/python-modules/deap { };
+  bitbucket-cli = callPackage ../development/python-modules/bitbucket-cli { };
 
-  deeptoolsintervals = callPackage ../development/python-modules/deeptoolsintervals { };
+  bitcoinlib = callPackage ../development/python-modules/bitcoinlib { };
 
-  dkimpy = callPackage ../development/python-modules/dkimpy { };
+  bitcoin-price-api = callPackage ../development/python-modules/bitcoin-price-api { };
 
-  dictionaries = callPackage ../development/python-modules/dictionaries { };
+  bitmath = callPackage ../development/python-modules/bitmath { };
 
-  diff_cover = callPackage ../development/python-modules/diff_cover { };
+  bitstring = callPackage ../development/python-modules/bitstring { };
 
-  diofant = callPackage ../development/python-modules/diofant { };
+  bitstruct = callPackage ../development/python-modules/bitstruct { };
 
-  dipy = callPackage ../development/python-modules/dipy { };
+  bjoern = callPackage ../development/python-modules/bjoern { };
 
-  docrep = callPackage ../development/python-modules/docrep { };
+  bkcharts = callPackage ../development/python-modules/bkcharts { };
 
-  dominate = callPackage ../development/python-modules/dominate { };
+  black = callPackage ../development/python-modules/black { };
 
-  dotnetcore2 = callPackage ../development/python-modules/dotnetcore2 {
-    inherit (pkgs) substituteAll dotnet-sdk;
-  };
+  black-macchiato = callPackage ../development/python-modules/black-macchiato { };
 
-  emcee = callPackage ../development/python-modules/emcee { };
+  bleach = callPackage ../development/python-modules/bleach { };
 
-  emailthreads = callPackage ../development/python-modules/emailthreads { };
+  bleak = callPackage ../development/python-modules/bleak { };
 
-  email_validator = callPackage ../development/python-modules/email-validator { };
+  blessed = callPackage ../development/python-modules/blessed { };
 
-  ewmh = callPackage ../development/python-modules/ewmh { };
+  blessings = callPackage ../development/python-modules/blessings { };
 
-  exchangelib = callPackage ../development/python-modules/exchangelib { };
+  blinker = callPackage ../development/python-modules/blinker { };
 
-  dcmstack = callPackage ../development/python-modules/dcmstack { };
+  BlinkStick = callPackage ../development/python-modules/blinkstick { };
 
-  dbus-python = callPackage ../development/python-modules/dbus {
-    inherit (pkgs) dbus pkgconfig;
-  };
+  blis = callPackage ../development/python-modules/blis { };
 
-  dftfit = callPackage ../development/python-modules/dftfit { };
+  blist = callPackage ../development/python-modules/blist { };
 
-  dicom2nifti = callPackage ../development/python-modules/dicom2nifti { };
+  blivet = callPackage ../development/python-modules/blivet { };
 
-  discid = callPackage ../development/python-modules/discid { };
+  blockdiag = callPackage ../development/python-modules/blockdiag { };
 
-  discordpy = callPackage ../development/python-modules/discordpy { };
+  blockdiagcontrib-cisco = callPackage ../development/python-modules/blockdiagcontrib-cisco { };
 
-  parver = callPackage ../development/python-modules/parver { };
-  arpeggio = callPackage ../development/python-modules/arpeggio { };
-  invoke = callPackage ../development/python-modules/invoke { };
+  block-io = callPackage ../development/python-modules/block-io { };
 
-  distorm3 = callPackage ../development/python-modules/distorm3 { };
+  bluepy = callPackage ../development/python-modules/bluepy { };
 
-  distlib = callPackage ../development/python-modules/distlib { };
+  bokeh = callPackage ../development/python-modules/bokeh { };
 
-  distributed = callPackage ../development/python-modules/distributed { };
+  boltons = callPackage ../development/python-modules/boltons { };
 
-  docutils = callPackage ../development/python-modules/docutils { };
+  boltztrap2 = callPackage ../development/python-modules/boltztrap2 { };
 
-  dogtail = callPackage ../development/python-modules/dogtail { };
+  booleanoperations = callPackage ../development/python-modules/booleanoperations { };
 
-  diff-match-patch = callPackage ../development/python-modules/diff-match-patch { };
+  boolean-py = callPackage ../development/python-modules/boolean-py { };
 
-  entrance = callPackage ../development/python-modules/entrance { routerFeatures = false; };
+  # Build boost for this specific Python version
+  # TODO: use separate output for libboost_python.so
+  boost = toPythonModule (pkgs.boost.override {
+    inherit (self) python numpy;
+    enablePython = true;
+  });
 
-  entrance-with-router-features = callPackage ../development/python-modules/entrance { routerFeatures = true; };
+  boto3 = callPackage ../development/python-modules/boto3 { };
 
-  eradicate = callPackage ../development/python-modules/eradicate {  };
+  boto = callPackage ../development/python-modules/boto { };
 
-  face = callPackage ../development/python-modules/face { };
+  botocore = callPackage ../development/python-modules/botocore { };
 
-  fastparquet = callPackage ../development/python-modules/fastparquet { };
+  bottle = callPackage ../development/python-modules/bottle { };
 
-  fastpbkdf2 = callPackage ../development/python-modules/fastpbkdf2 {  };
+  bottleneck = callPackage ../development/python-modules/bottleneck { };
 
-  fasttext = callPackage ../development/python-modules/fasttext {  };
+  box2d = callPackage ../development/python-modules/box2d { };
 
-  facedancer = callPackage ../development/python-modules/facedancer {  };
+  bpython = callPackage ../development/python-modules/bpython { };
 
-  favicon = callPackage ../development/python-modules/favicon {  };
+  braintree = callPackage ../development/python-modules/braintree { };
 
-  fdint = callPackage ../development/python-modules/fdint { };
+  branca = callPackage ../development/python-modules/branca { };
 
-  fido2 = callPackage ../development/python-modules/fido2 {  };
+  bravado-core = callPackage ../development/python-modules/bravado-core { };
 
-  filterpy = callPackage ../development/python-modules/filterpy { };
+  bravia-tv = callPackage ../development/python-modules/bravia-tv { };
 
-  filemagic = callPackage ../development/python-modules/filemagic { };
+  breathe = callPackage ../development/python-modules/breathe { };
 
-  fints = callPackage ../development/python-modules/fints { };
+  breezy = callPackage ../development/python-modules/breezy { };
 
-  fire = callPackage ../development/python-modules/fire { };
+  broadlink = callPackage ../development/python-modules/broadlink { };
 
-  firetv = callPackage ../development/python-modules/firetv { };
+  brother = callPackage ../development/python-modules/brother { };
 
-  flower = callPackage ../development/python-modules/flower { };
+  brotli = callPackage ../development/python-modules/brotli { };
 
-  flufl_bounce = callPackage ../development/python-modules/flufl/bounce.nix { };
+  brotlipy = callPackage ../development/python-modules/brotlipy { };
 
-  flufl_i18n = callPackage ../development/python-modules/flufl/i18n.nix { };
+  browser-cookie3 = callPackage ../development/python-modules/browser-cookie3 { };
 
-  flufl_lock = callPackage ../development/python-modules/flufl/lock.nix { };
+  browsermob-proxy = disabledIf isPy3k (callPackage ../development/python-modules/browsermob-proxy { });
 
-  foxdot = callPackage ../development/python-modules/foxdot { };
+  bsddb3 = callPackage ../development/python-modules/bsddb3 { };
 
-  fsspec = callPackage ../development/python-modules/fsspec { };
+  bsdiff4 = callPackage ../development/python-modules/bsdiff4 { };
 
-  furl = callPackage ../development/python-modules/furl { };
+  btchip = callPackage ../development/python-modules/btchip { };
 
-  fuse = callPackage ../development/python-modules/fuse-python {
-    inherit (pkgs) fuse pkgconfig;
-  };
+  bt_proximity = callPackage ../development/python-modules/bt-proximity { };
 
-  fuzzywuzzy = callPackage ../development/python-modules/fuzzywuzzy { };
+  BTrees = callPackage ../development/python-modules/btrees { };
 
-  genanki = callPackage ../development/python-modules/genanki { };
+  btrfs = callPackage ../development/python-modules/btrfs { };
 
-  geoip2 = callPackage ../development/python-modules/geoip2 { };
+  bugseverywhere = throw "bugseverywhere has been removed: Abandoned by upstream."; # Added 2019-11-27
 
-  getmac = callPackage ../development/python-modules/getmac { };
+  bugsnag = callPackage ../development/python-modules/bugsnag { };
 
-  gidgethub = callPackage ../development/python-modules/gidgethub { };
+  bugwarrior = callPackage ../development/python-modules/bugwarrior { };
 
-  gin-config = callPackage ../development/python-modules/gin-config { };
+  bugz = callPackage ../development/python-modules/bugz { };
 
-  globus-sdk = callPackage ../development/python-modules/globus-sdk { };
+  bugzilla = callPackage ../development/python-modules/bugzilla { };
 
-  glymur = callPackage ../development/python-modules/glymur { };
+  buildbot = callPackage ../development/python-modules/buildbot { };
 
-  glob2 = callPackage ../development/python-modules/glob2 { };
+  buildbot-ui = self.buildbot.withPlugins (with self.buildbot-plugins; [ www ]);
 
-  glom = callPackage ../development/python-modules/glom { };
+  buildbot-full = self.buildbot.withPlugins
+    (with self.buildbot-plugins; [ www console-view waterfall-view grid-view wsgi-dashboards ]);
 
-  goocalendar = callPackage ../development/python-modules/goocalendar { };
+  buildbot-pkg = callPackage ../development/python-modules/buildbot/pkg.nix { };
 
-  grandalf = callPackage ../development/python-modules/grandalf { };
+  buildbot-plugins = pkgs.recurseIntoAttrs (callPackage ../development/python-modules/buildbot/plugins.nix { });
 
-  gprof2dot = callPackage ../development/python-modules/gprof2dot {
-    inherit (pkgs) graphviz;
-  };
+  buildbot-worker = callPackage ../development/python-modules/buildbot/worker.nix { };
 
-  gsd = if isPy27 then
-      callPackage ../development/python-modules/gsd/1.7.nix { }
-    else
-      callPackage ../development/python-modules/gsd { };
+  build = callPackage ../development/python-modules/build { };
 
-  gssapi = callPackage ../development/python-modules/gssapi {
-    inherit (pkgs) darwin krb5Full;
-  };
+  bumps = callPackage ../development/python-modules/bumps { };
 
-  guestfs = callPackage ../development/python-modules/guestfs { };
+  bunch = callPackage ../development/python-modules/bunch { };
 
-  gumath = callPackage ../development/python-modules/gumath { };
+  bx-python = callPackage ../development/python-modules/bx-python { inherit (pkgs) zlib; };
 
-  h3 = callPackage ../development/python-modules/h3 { inherit (pkgs) h3; };
+  bwapy = callPackage ../development/python-modules/bwapy { };
 
-  h5py = callPackage ../development/python-modules/h5py {
-    hdf5 = pkgs.hdf5;
-  };
+  bytecode = callPackage ../development/python-modules/bytecode { };
 
-  h5py-mpi = self.h5py.override {
-    hdf5 = pkgs.hdf5-mpi;
-  };
+  bz2file = callPackage ../development/python-modules/bz2file { };
 
-  h5netcdf = callPackage ../development/python-modules/h5netcdf { };
+  cachecontrol = callPackage ../development/python-modules/cachecontrol { };
 
-  ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { };
+  cached-property = callPackage ../development/python-modules/cached-property { };
 
-  habanero = callPackage ../development/python-modules/habanero { };
+  cachelib = callPackage ../development/python-modules/cachelib { };
 
-  handout = callPackage ../development/python-modules/handout { };
+  cachetools = let
+    cachetools' = callPackage ../development/python-modules/cachetools { };
+    cachetools_2 = cachetools'.overridePythonAttrs (oldAttrs: rec {
+      version = "3.1.1";
+      src = oldAttrs.src.override {
+        inherit version;
+        sha256 = "16m69l6n6y1r1y7cklm92rr7v69ldig2n3lbl3j323w5jz7d78lf";
+      };
+    });
+  in if isPy3k then cachetools' else cachetools_2;
 
-  HAP-python = callPackage ../development/python-modules/HAP-python { };
+  cachy = callPackage ../development/python-modules/cachy { };
 
-  helper = callPackage ../development/python-modules/helper { };
+  cadquery = callPackage ../development/python-modules/cadquery { };
 
-  hdmedians = callPackage ../development/python-modules/hdmedians { };
+  caffe = toPythonModule (pkgs.caffe.override {
+    pythonSupport = true;
+    inherit (self) python numpy boost;
+  });
 
-  hiyapyco = callPackage ../development/python-modules/hiyapyco { };
+  cairocffi = if isPy3k then
+    callPackage ../development/python-modules/cairocffi { }
+  else
+    callPackage ../development/python-modules/cairocffi/0_9.nix { };
 
-  hocr-tools = callPackage ../development/python-modules/hocr-tools { };
+  cairosvg = if isPy3k then
+    callPackage ../development/python-modules/cairosvg { }
+  else
+    callPackage ../development/python-modules/cairosvg/1_x.nix { };
 
-  holidays = callPackage ../development/python-modules/holidays { };
+  caldav = callPackage ../development/python-modules/caldav { };
 
-  holoviews = callPackage ../development/python-modules/holoviews { };
+  can = callPackage ../development/python-modules/can { };
 
-  hoomd-blue = toPythonModule (callPackage ../development/python-modules/hoomd-blue {
-    inherit python;
-  });
+  canmatrix = callPackage ../development/python-modules/canmatrix { };
 
-  hopcroftkarp = callPackage ../development/python-modules/hopcroftkarp { };
+  canonicaljson = callPackage ../development/python-modules/canonicaljson { };
 
-  http-ece = callPackage ../development/python-modules/http-ece { };
+  canopen = callPackage ../development/python-modules/canopen { };
 
-  httpsig = callPackage ../development/python-modules/httpsig { };
+  capstone = callPackage ../development/python-modules/capstone { inherit (pkgs) capstone; };
 
-  httptools = callPackage ../development/python-modules/httptools { };
+  capturer = callPackage ../development/python-modules/capturer { };
 
-  i3ipc = callPackage ../development/python-modules/i3ipc { };
+  carbon = callPackage ../development/python-modules/carbon { };
 
-  ignite = callPackage ../development/python-modules/ignite { };
+  carrot = callPackage ../development/python-modules/carrot { };
 
-  ihatemoney = callPackage ../development/python-modules/ihatemoney { };
+  cartopy = callPackage ../development/python-modules/cartopy { };
 
-  imutils = callPackage ../development/python-modules/imutils { };
+  casbin = callPackage ../development/python-modules/casbin { };
 
-  inotify-simple = callPackage ../development/python-modules/inotify-simple { };
+  case = callPackage ../development/python-modules/case { };
 
-  intake = callPackage ../development/python-modules/intake { };
+  cassandra-driver = callPackage ../development/python-modules/cassandra-driver { };
 
-  intelhex = callPackage ../development/python-modules/intelhex { };
+  casttube = callPackage ../development/python-modules/casttube { };
 
-  inquirer = callPackage ../development/python-modules/inquirer { };
+  catalogue = callPackage ../development/python-modules/catalogue { };
 
-  ipympl = callPackage ../development/python-modules/ipympl { };
+  cbeams = callPackage ../misc/cbeams { };
 
-  itanium_demangler = callPackage ../development/python-modules/itanium_demangler { };
+  cbor2 = callPackage ../development/python-modules/cbor2 { };
 
-  iterm2 = callPackage ../development/python-modules/iterm2 { };
+  cbor = callPackage ../development/python-modules/cbor { };
 
-  janus = callPackage ../development/python-modules/janus { };
+  cccolutils = callPackage ../development/python-modules/cccolutils { };
 
-  jc = callPackage ../development/python-modules/jc { };
+  cchardet = callPackage ../development/python-modules/cchardet { };
 
-  jellyfin-apiclient-python = callPackage ../development/python-modules/jellyfin-apiclient-python { };
+  CDDB = callPackage ../development/python-modules/cddb { };
 
-  jira = callPackage ../development/python-modules/jira { };
+  cdecimal = callPackage ../development/python-modules/cdecimal { };
 
-  jsonpath = callPackage ../development/python-modules/jsonpath { };
+  celery = callPackage ../development/python-modules/celery { };
 
-  junit-xml = callPackage ../development/python-modules/junit-xml { };
+  cement = callPackage ../development/python-modules/cement { };
 
-  junitparser = callPackage ../development/python-modules/junitparser { };
+  cerberus = callPackage ../development/python-modules/cerberus { };
 
-  jwcrypto = callPackage ../development/python-modules/jwcrypto { };
+  certbot = callPackage ../development/python-modules/certbot { };
 
-  kconfiglib = callPackage ../development/python-modules/kconfiglib { };
+  certbot-dns-cloudflare = callPackage ../development/python-modules/certbot-dns-cloudflare { };
 
-  labelbox = callPackage ../development/python-modules/labelbox { };
+  certbot-dns-rfc2136 = callPackage ../development/python-modules/certbot-dns-rfc2136 { };
 
-  lammps-cython = callPackage ../development/python-modules/lammps-cython {
-    mpi = pkgs.openmpi;
-  };
+  certbot-dns-route53 = callPackage ../development/python-modules/certbot-dns-route53 { };
 
-  langdetect = callPackage ../development/python-modules/langdetect { };
+  certifi = callPackage ../development/python-modules/certifi { };
 
-  launchpadlib = callPackage ../development/python-modules/launchpadlib { };
+  certipy = callPackage ../development/python-modules/certipy { };
 
-  lazr_config = callPackage ../development/python-modules/lazr/config.nix { };
+  cffi = callPackage ../development/python-modules/cffi { };
 
-  lazr_delegates = callPackage ../development/python-modules/lazr/delegates.nix { };
+  cfgv = callPackage ../development/python-modules/cfgv { };
 
-  lazr-restfulclient = callPackage ../development/python-modules/lazr-restfulclient { };
+  cfn-flip = callPackage ../development/python-modules/cfn-flip { };
 
-  lazr-uri = callPackage ../development/python-modules/lazr-uri { };
+  cfn-lint = callPackage ../development/python-modules/cfn-lint { };
 
-  libmr = callPackage ../development/python-modules/libmr { };
+  cftime = callPackage ../development/python-modules/cftime { };
 
-  limitlessled = callPackage ../development/python-modules/limitlessled { };
+  cgen = callPackage ../development/python-modules/cgen { };
 
-  livelossplot = callPackage ../development/python-modules/livelossplot { };
+  cgroup-utils = callPackage ../development/python-modules/cgroup-utils { };
 
-  lmtpd = callPackage ../development/python-modules/lmtpd { };
+  chai = callPackage ../development/python-modules/chai { };
 
-  logster = callPackage ../development/python-modules/logster { };
+  chainer = callPackage ../development/python-modules/chainer { cudaSupport = pkgs.config.cudaSupport or false; };
 
-  loguru = callPackage ../development/python-modules/loguru { };
+  chainmap = callPackage ../development/python-modules/chainmap { };
 
-  logzero = callPackage ../development/python-modules/logzero { };
+  chalice = callPackage ../development/python-modules/chalice { };
 
-  macropy = callPackage ../development/python-modules/macropy { };
+  chameleon = callPackage ../development/python-modules/chameleon { };
 
-  mail-parser = callPackage ../development/python-modules/mail-parser { };
+  channels = callPackage ../development/python-modules/channels { };
 
-  mailman = callPackage ../servers/mail/mailman { };
+  channels-redis = callPackage ../development/python-modules/channels-redis { };
 
-  mailman-web = callPackage ../servers/mail/mailman/web.nix { };
+  characteristic = callPackage ../development/python-modules/characteristic { };
 
-  mailmanclient = callPackage ../development/python-modules/mailmanclient { };
+  chardet = callPackage ../development/python-modules/chardet { };
 
-  mailman-hyperkitty = callPackage ../development/python-modules/mailman-hyperkitty { };
+  chart-studio = callPackage ../development/python-modules/chart-studio { };
 
-  manhole = callPackage ../development/python-modules/manhole { };
+  check-manifest = callPackage ../development/python-modules/check-manifest { };
 
-  mapbox = callPackage ../development/python-modules/mapbox { };
+  cheetah3 = callPackage ../development/python-modules/cheetah3 { };
 
-  markerlib = callPackage ../development/python-modules/markerlib { };
+  cheetah = callPackage ../development/python-modules/cheetah { };
 
-  mask-rcnn = callPackage ../development/python-modules/mask-rcnn { };
+  cheroot = callPackage ../development/python-modules/cheroot { };
 
-  matchpy = callPackage ../development/python-modules/matchpy { };
+  cherrypy = if isPy3k then
+    callPackage ../development/python-modules/cherrypy { }
+  else
+    callPackage ../development/python-modules/cherrypy/17.nix { };
 
-  maxminddb = callPackage ../development/python-modules/maxminddb { };
+  chevron = callPackage ../development/python-modules/chevron { };
 
-  mininet-python = (toPythonModule (pkgs.mininet.override{ inherit python; })).py;
+  ci-info = callPackage ../development/python-modules/ci-info { };
 
-  mkl-service = callPackage ../development/python-modules/mkl-service { };
+  ci-py = callPackage ../development/python-modules/ci-py { };
 
-  mnist = callPackage ../development/python-modules/mnist { };
+  cirq = callPackage ../development/python-modules/cirq { };
 
-  monkeyhex = callPackage ../development/python-modules/monkeyhex { };
+  ciso8601 = callPackage ../development/python-modules/ciso8601 { };
 
-  monty = callPackage ../development/python-modules/monty { };
+  citeproc-py = callPackage ../development/python-modules/citeproc-py { };
 
-  mpi4py = callPackage ../development/python-modules/mpi4py {
-    mpi = pkgs.openmpi;
-  };
+  cjson = callPackage ../development/python-modules/cjson { };
 
-  python-baseconv = callPackage ../development/python-modules/python-baseconv { };
+  ckcc-protocol = callPackage ../development/python-modules/ckcc-protocol { };
 
-  pycognito = callPackage ../development/python-modules/pycognito { };
+  cld2-cffi = callPackage ../development/python-modules/cld2-cffi { };
 
-  python-mpv-jsonipc = callPackage ../development/python-modules/python-mpv-jsonipc { };
+  cleo = callPackage ../development/python-modules/cleo { };
 
-  mortgage = callPackage ../development/python-modules/mortgage { };
+  clf = callPackage ../development/python-modules/clf { };
 
-  msal = callPackage ../development/python-modules/msal { };
+  cliapp = callPackage ../development/python-modules/cliapp { };
 
-  msal-extensions = callPackage ../development/python-modules/msal-extensions { };
+  click = callPackage ../development/python-modules/click { };
 
-  msrest = callPackage ../development/python-modules/msrest { };
+  clickclick = callPackage ../development/python-modules/clickclick { };
 
-  msrestazure = callPackage ../development/python-modules/msrestazure { };
+  click-completion = callPackage ../development/python-modules/click-completion { };
 
-  multiset = callPackage ../development/python-modules/multiset { };
+  click-datetime = callPackage ../development/python-modules/click-datetime { };
 
-  mwclient = callPackage ../development/python-modules/mwclient { };
+  click-default-group = callPackage ../development/python-modules/click-default-group { };
 
-  mwoauth = callPackage ../development/python-modules/mwoauth { };
+  click-didyoumean = callPackage ../development/python-modules/click-didyoumean { };
 
-  nagiosplugin = callPackage ../development/python-modules/nagiosplugin { };
+  click-log = callPackage ../development/python-modules/click-log { };
 
-  nanomsg-python = callPackage ../development/python-modules/nanomsg-python { inherit (pkgs) nanomsg; };
+  click-plugins = callPackage ../development/python-modules/click-plugins { };
 
-  nbsmoke = callPackage ../development/python-modules/nbsmoke { };
+  click-repl = callPackage ../development/python-modules/click-repl { };
 
-  nbsphinx = callPackage ../development/python-modules/nbsphinx { };
+  click-threading = callPackage ../development/python-modules/click-threading { };
 
-  nbval = callPackage ../development/python-modules/nbval { };
+  cliff = callPackage ../development/python-modules/cliff { };
 
-  ndtypes = callPackage ../development/python-modules/ndtypes { };
+  clifford = callPackage ../development/python-modules/clifford { };
 
-  neo = callPackage ../development/python-modules/neo { };
+  cligj = callPackage ../development/python-modules/cligj { };
 
-  nest-asyncio = callPackage ../development/python-modules/nest-asyncio { };
+  cli-helpers = callPackage ../development/python-modules/cli-helpers { };
 
-  neuron = pkgs.neuron.override {
-    inherit python;
-  };
+  clikit = callPackage ../development/python-modules/clikit { };
 
-  neuron-mpi = pkgs.neuron-mpi.override {
-    inherit python;
-  };
+  clint = callPackage ../development/python-modules/clint { };
 
-  nix-prefetch-github = callPackage ../development/python-modules/nix-prefetch-github { };
+  clize = callPackage ../development/python-modules/clize { };
 
-  nixpart = callPackage ../tools/filesystems/nixpart { };
+  clldutils = callPackage ../development/python-modules/clldutils { };
 
-  # This is used for NixOps to make sure we won't break it with the next major
-  # version of nixpart.
-  nixpart0 = callPackage ../tools/filesystems/nixpart/0.4 { };
+  closure-linter = callPackage ../development/python-modules/closure-linter { };
 
-  nltk = callPackage ../development/python-modules/nltk { };
+  cloudflare = callPackage ../development/python-modules/cloudflare { };
 
-  ntlm-auth = callPackage ../development/python-modules/ntlm-auth { };
+  cloudpickle = callPackage ../development/python-modules/cloudpickle { };
 
-  nvchecker = callPackage ../development/python-modules/nvchecker { };
+  clustershell = callPackage ../development/python-modules/clustershell { };
 
-  numericalunits = callPackage ../development/python-modules/numericalunits { };
+  cma = callPackage ../development/python-modules/cma { };
 
-  oath = callPackage ../development/python-modules/oath { };
+  cmarkgfm = callPackage ../development/python-modules/cmarkgfm { };
 
-  oauthenticator = callPackage ../development/python-modules/oauthenticator { };
+  cmd2 = callPackage ../development/python-modules/cmd2 { };
 
-  onnx = callPackage ../development/python-modules/onnx { };
+  cmdline = callPackage ../development/python-modules/cmdline { };
 
-  ordered-set = callPackage ../development/python-modules/ordered-set { };
+  cmdtest = callPackage ../development/python-modules/cmdtest { };
 
-  orderedmultidict = callPackage ../development/python-modules/orderedmultidict { };
+  cntk = callPackage ../development/python-modules/cntk { };
 
-  ortools = (toPythonModule (pkgs.or-tools.override {
-    inherit (self) python;
-  })).python;
+  cnvkit = callPackage ../development/python-modules/cnvkit { };
 
-  osmnx = callPackage ../development/python-modules/osmnx { };
+  cocotb = callPackage ../development/python-modules/cocotb { };
 
-  osmpythontools = callPackage ../development/python-modules/osmpythontools { };
+  codecov = callPackage ../development/python-modules/codecov { };
 
-  outcome = callPackage ../development/python-modules/outcome {};
+  codespell = callPackage ../development/python-modules/codespell { };
 
-  ovito = toPythonModule (pkgs.libsForQt5.callPackage ../development/python-modules/ovito {
-      pythonPackages = self;
-    });
+  cogapp = callPackage ../development/python-modules/cogapp { };
 
-  palettable = callPackage ../development/python-modules/palettable { };
+  coilmq = callPackage ../development/python-modules/coilmq { };
 
-  papermill = callPackage ../development/python-modules/papermill { };
+  coinmarketcap = callPackage ../development/python-modules/coinmarketcap { };
 
-  parsley = callPackage ../development/python-modules/parsley { };
+  ColanderAlchemy = callPackage ../development/python-modules/colanderalchemy { };
 
-  pastel = callPackage ../development/python-modules/pastel { };
+  colander = callPackage ../development/python-modules/colander { };
 
-  pathlib = callPackage ../development/python-modules/pathlib { };
+  colorama = callPackage ../development/python-modules/colorama { };
 
-  pc-ble-driver-py = toPythonModule (callPackage ../development/python-modules/pc-ble-driver-py { });
+  colorcet = callPackage ../development/python-modules/colorcet { };
 
-  pcpp = callPackage ../development/python-modules/pcpp { };
+  colorclass = callPackage ../development/python-modules/colorclass { };
 
-  pdf2image = callPackage ../development/python-modules/pdf2image { };
+  colored = callPackage ../development/python-modules/colored { };
 
-  pdfminer = callPackage ../development/python-modules/pdfminer_six { };
+  coloredlogs = callPackage ../development/python-modules/coloredlogs { };
 
-  pdfposter = callPackage ../development/python-modules/pdfposter { };
+  colorful = callPackage ../development/python-modules/colorful { };
 
-  pdftotext = callPackage ../development/python-modules/pdftotext { };
+  colorlog = callPackage ../development/python-modules/colorlog { };
 
-  pdfx = callPackage ../development/python-modules/pdfx { };
+  colorlover = callPackage ../development/python-modules/colorlover { };
 
-  pushover-complete = callPackage ../development/python-modules/pushover-complete { };
+  colormath = callPackage ../development/python-modules/colormath { };
 
-  pyicloud = callPackage ../development/python-modules/pyicloud { };
+  colorspacious = callPackage ../development/python-modules/colorspacious { };
 
-  pyperf = callPackage ../development/python-modules/pyperf { };
+  colour = callPackage ../development/python-modules/colour { };
 
-  pefile = callPackage ../development/python-modules/pefile { };
+  CommonMark = callPackage ../development/python-modules/commonmark { };
 
-  perfplot = callPackage ../development/python-modules/perfplot { };
+  compiledb = callPackage ../development/python-modules/compiledb { };
 
-  phonopy = callPackage ../development/python-modules/phonopy { };
+  conda = callPackage ../development/python-modules/conda { };
 
-  phik = callPackage ../development/python-modules/phik {};
+  ConfigArgParse = callPackage ../development/python-modules/configargparse { };
 
-  piccata = callPackage ../development/python-modules/piccata {};
+  configobj = callPackage ../development/python-modules/configobj { };
 
-  pims = callPackage ../development/python-modules/pims { };
+  configparser = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/configparser/4.nix { }
+  else
+    callPackage ../development/python-modules/configparser { };
 
-  poetry = callPackage ../development/python-modules/poetry { };
+  configshell = callPackage ../development/python-modules/configshell { };
 
-  polyline = callPackage ../development/python-modules/polyline { };
+  confluent-kafka = callPackage ../development/python-modules/confluent-kafka { };
 
-  postorius = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman/postorius.nix { });
+  connexion = callPackage ../development/python-modules/connexion { };
 
-  pplpy = callPackage ../development/python-modules/pplpy { };
+  consonance = callPackage ../development/python-modules/consonance { };
 
-  pprintpp = callPackage ../development/python-modules/pprintpp { };
+  constantly = callPackage ../development/python-modules/constantly { };
 
-  progress = callPackage ../development/python-modules/progress { };
+  construct = callPackage ../development/python-modules/construct { };
 
-  proglog = callPackage ../development/python-modules/proglog { };
+  consul = callPackage ../development/python-modules/consul { };
 
-  pulsectl = callPackage ../development/python-modules/pulsectl { };
+  contexter = callPackage ../development/python-modules/contexter { };
 
-  pure-python-adb-homeassistant = callPackage ../development/python-modules/pure-python-adb-homeassistant { };
+  contextlib2 = callPackage ../development/python-modules/contextlib2 { };
 
-  purl = callPackage ../development/python-modules/purl { };
+  contextvars = callPackage ../development/python-modules/contextvars { };
 
-  pyclipper = callPackage ../development/python-modules/pyclipper { };
+  convertdate = callPackage ../development/python-modules/convertdate { };
 
-  pymystem3 = callPackage ../development/python-modules/pymystem3 { };
+  cookiecutter = callPackage ../development/python-modules/cookiecutter { };
 
-  pymysql = callPackage ../development/python-modules/pymysql { };
+  cookies = callPackage ../development/python-modules/cookies { };
 
-  pymupdf = callPackage ../development/python-modules/pymupdf { };
+  coordinates = callPackage ../development/python-modules/coordinates { };
 
-  pynamecheap = callPackage ../development/python-modules/pynamecheap { };
+  coreapi = callPackage ../development/python-modules/coreapi { };
 
-  Pmw = callPackage ../development/python-modules/Pmw { };
+  coreschema = callPackage ../development/python-modules/coreschema { };
 
-  py_stringmatching = callPackage ../development/python-modules/py_stringmatching { };
+  cornice = callPackage ../development/python-modules/cornice { };
 
-  pyaes = callPackage ../development/python-modules/pyaes { };
+  cot = callPackage ../development/python-modules/cot { };
 
-  pyairvisual = callPackage ../development/python-modules/pyairvisual { };
+  covCore = callPackage ../development/python-modules/cov-core { };
 
-  pyamf = callPackage ../development/python-modules/pyamf { };
+  coverage = callPackage ../development/python-modules/coverage { };
 
-  pyarrow = callPackage ../development/python-modules/pyarrow {
-    inherit (pkgs) arrow-cpp cmake pkgconfig;
-  };
+  coveralls = callPackage ../development/python-modules/coveralls { };
 
-  pyannotate = callPackage ../development/python-modules/pyannotate { };
+  cozy = callPackage ../development/python-modules/cozy { };
 
-  pyatspi = callPackage ../development/python-modules/pyatspi {
-    inherit (pkgs) pkgconfig;
-  };
+  cppy = callPackage ../development/python-modules/cppy { };
 
-  pyaxmlparser = callPackage ../development/python-modules/pyaxmlparser { };
+  cram = callPackage ../development/python-modules/cram { };
 
-  pybids = callPackage ../development/python-modules/pybids { };
+  crashtest = callPackage ../development/python-modules/crashtest { };
 
-  pybind11 = callPackage ../development/python-modules/pybind11 { };
+  crate = callPackage ../development/python-modules/crate { };
 
-  py3buddy = toPythonModule (callPackage ../development/python-modules/py3buddy { });
+  crayons = callPackage ../development/python-modules/crayons { };
 
-  pybullet = callPackage ../development/python-modules/pybullet { };
+  crc16 = callPackage ../development/python-modules/crc16 { };
 
-  pycairo = callPackage ../development/python-modules/pycairo {
-    inherit (pkgs) meson pkgconfig;
-  };
+  crc32c = callPackage ../development/python-modules/crc32c { };
 
-  pycategories = callPackage ../development/python-modules/pycategories { };
+  crccheck = callPackage ../development/python-modules/crccheck { };
 
-  pycangjie = disabledIf (!isPy3k) (callPackage ../development/python-modules/pycangjie {
-    inherit (pkgs) pkgconfig;
-  });
+  crcmod = callPackage ../development/python-modules/crcmod { };
 
-  pycrc = callPackage ../development/python-modules/pycrc { };
+  credstash = callPackage ../development/python-modules/credstash { };
 
-  pycrypto = callPackage ../development/python-modules/pycrypto { };
+  croniter = callPackage ../development/python-modules/croniter { };
 
-  pycryptodome = callPackage ../development/python-modules/pycryptodome { };
+  cryptacular = callPackage ../development/python-modules/cryptacular { };
 
-  pycryptodomex = callPackage ../development/python-modules/pycryptodomex { };
+  cryptography = if isPy27 then
+    callPackage ../development/python-modules/cryptography/2.9.nix { }
+  else
+    callPackage ../development/python-modules/cryptography { };
 
-  PyChromecast = callPackage ../development/python-modules/pychromecast { };
+  cryptography_vectors = if isPy27 then
+    callPackage ../development/python-modules/cryptography/vectors-2.9.nix { }
+  else
+    callPackage ../development/python-modules/cryptography/vectors.nix { };
 
-  pycm = callPackage ../development/python-modules/pycm { };
+  csscompressor = callPackage ../development/python-modules/csscompressor { };
 
-  py-cpuinfo = callPackage ../development/python-modules/py-cpuinfo { };
+  cssmin = callPackage ../development/python-modules/cssmin { };
 
-  py-lru-cache = callPackage ../development/python-modules/py-lru-cache { };
+  css-parser = callPackage ../development/python-modules/css-parser { };
 
-  py-multibase = callPackage ../development/python-modules/py-multibase { };
+  cssselect2 = callPackage ../development/python-modules/cssselect2 { };
 
-  py-multihash = callPackage ../development/python-modules/py-multihash { };
+  cssselect = callPackage ../development/python-modules/cssselect { };
 
-  py-radix = callPackage ../development/python-modules/py-radix { };
+  cssutils = callPackage ../development/python-modules/cssutils { };
 
-  pydbus = callPackage ../development/python-modules/pydbus { };
+  csvs-to-sqlite = callPackage ../development/python-modules/csvs-to-sqlite { };
 
-  pydicom = callPackage ../development/python-modules/pydicom { };
+  csvw = callPackage ../development/python-modules/csvw { };
 
-  pydocstyle =
-    if isPy27 then
-      callPackage ../development/python-modules/pydocstyle/2.nix { }
-    else
-      callPackage ../development/python-modules/pydocstyle { };
+  cucumber-tag-expressions = callPackage ../development/python-modules/cucumber-tag-expressions { };
 
-  pydocumentdb = callPackage ../development/python-modules/pydocumentdb { };
+  cufflinks = callPackage ../development/python-modules/cufflinks { };
 
-  pydrive = callPackage ../development/python-modules/pydrive { };
+  cupy = callPackage ../development/python-modules/cupy {
+    cudatoolkit = pkgs.cudatoolkit_10_0;
+    cudnn = pkgs.cudnn_cudatoolkit_10_0;
+    nccl = pkgs.nccl_cudatoolkit_10;
+  };
 
-  pydy = callPackage ../development/python-modules/pydy { };
+  curio = callPackage ../development/python-modules/curio { };
 
-  pyexiv2 = disabledIf isPy3k (toPythonModule (callPackage ../development/python-modules/pyexiv2 {}));
+  curtsies = callPackage ../development/python-modules/curtsies { };
 
-  py3exiv2 = callPackage ../development/python-modules/py3exiv2 { };
+  curve25519-donna = callPackage ../development/python-modules/curve25519-donna { };
 
-  pyfakefs = callPackage ../development/python-modules/pyfakefs {};
+  cvxopt = callPackage ../development/python-modules/cvxopt { };
 
-  pyfaidx = callPackage ../development/python-modules/pyfaidx { };
+  cvxpy = callPackage ../development/python-modules/cvxpy { };
 
-  pyfcm = callPackage ../development/python-modules/pyfcm { };
+  cx_Freeze = callPackage ../development/python-modules/cx_freeze { };
 
-  pyfttt = callPackage ../development/python-modules/pyfttt { };
+  cx_oracle = callPackage ../development/python-modules/cx_oracle { };
 
-  pyftdi = callPackage ../development/python-modules/pyftdi { };
+  cycler = callPackage ../development/python-modules/cycler { };
 
-  pygame = callPackage ../development/python-modules/pygame { };
+  cymem = callPackage ../development/python-modules/cymem { };
 
-  pygbm = callPackage ../development/python-modules/pygbm { };
+  cypari2 = callPackage ../development/python-modules/cypari2 { };
 
-  pygame_sdl2 = callPackage ../development/python-modules/pygame_sdl2 { };
+  cysignals = callPackage ../development/python-modules/cysignals { };
 
-  pygdbmi = callPackage ../development/python-modules/pygdbmi { };
+  cython = callPackage ../development/python-modules/Cython { };
 
-  pygmo = callPackage ../development/python-modules/pygmo { };
+  cytoolz = callPackage ../development/python-modules/cytoolz { };
 
-  pygobject2 = callPackage ../development/python-modules/pygobject {
-    inherit (pkgs) pkgconfig;
-  };
+  d2to1 = callPackage ../development/python-modules/d2to1 { };
 
-  pygobject3 = callPackage ../development/python-modules/pygobject/3.nix {
-    inherit (pkgs) meson pkgconfig;
-  };
+  daemonize = callPackage ../development/python-modules/daemonize { };
 
-  pygtail = callPackage ../development/python-modules/pygtail { };
+  daphne = callPackage ../development/python-modules/daphne { };
 
-  pygtk = callPackage ../development/python-modules/pygtk {
-    inherit (pkgs) pkgconfig;
-    libglade = null;
-  };
+  darcsver = callPackage ../development/python-modules/darcsver { };
 
-  pygtksourceview = callPackage ../development/python-modules/pygtksourceview {
-    inherit (pkgs) pkgconfig;
-  };
+  dash = callPackage ../development/python-modules/dash { };
 
-  pyGtkGlade = self.pygtk.override {
-    libglade = pkgs.gnome2.libglade;
-  };
+  dash-core-components = callPackage ../development/python-modules/dash-core-components { };
 
-  pyjwkest = callPackage ../development/python-modules/pyjwkest { };
+  dash-html-components = callPackage ../development/python-modules/dash-html-components { };
 
-  pykdtree = callPackage ../development/python-modules/pykdtree {
-    inherit (pkgs.llvmPackages) openmp;
-  };
+  dash-renderer = callPackage ../development/python-modules/dash-renderer { };
 
-  pykerberos = callPackage ../development/python-modules/pykerberos { };
+  dash-table = callPackage ../development/python-modules/dash-table { };
 
-  pykeepass = callPackage ../development/python-modules/pykeepass { };
+  dask = callPackage ../development/python-modules/dask { };
 
-  pylev = callPackage ../development/python-modules/pylev { };
+  dask-gateway = callPackage ../development/python-modules/dask-gateway { };
 
-  pylibftdi = callPackage ../development/python-modules/pylibftdi {
-    inherit (pkgs) libusb1;
-  };
+  dask-gateway-server = callPackage ../development/python-modules/dask-gateway-server { inherit (pkgs) go; };
 
-  pymatgen = callPackage ../development/python-modules/pymatgen { };
+  dask-glm = callPackage ../development/python-modules/dask-glm { };
 
-  pymatgen-lammps = callPackage ../development/python-modules/pymatgen-lammps { };
+  dask-image = callPackage ../development/python-modules/dask-image { };
 
-  pymavlink = callPackage ../development/python-modules/pymavlink { };
+  dask-jobqueue = callPackage ../development/python-modules/dask-jobqueue { };
 
-  pymeeus = callPackage ../development/python-modules/pymeeus { };
+  dask-ml = callPackage ../development/python-modules/dask-ml { };
 
-  pymsgbox = callPackage ../development/python-modules/pymsgbox { };
+  dask-mpi = callPackage ../development/python-modules/dask-mpi { };
 
-  pynanoleaf = callPackage ../development/python-modules/pynanoleaf { };
+  dask-xgboost = callPackage ../development/python-modules/dask-xgboost { };
 
-  pynisher = callPackage ../development/python-modules/pynisher { };
+  databases = callPackage ../development/python-modules/databases { };
 
-  pynput = callPackage ../development/python-modules/pynput { };
+  databricks-cli = callPackage ../development/python-modules/databricks-cli { };
 
-  pyparser = callPackage ../development/python-modules/pyparser { };
+  databricks-connect = callPackage ../development/python-modules/databricks-connect { inherit (pkgs) jdk; };
 
-  pyres = callPackage ../development/python-modules/pyres { };
+  dataclasses = callPackage ../development/python-modules/dataclasses { };
 
-  pyqt4 = callPackage ../development/python-modules/pyqt/4.x.nix {
-    inherit (pkgs) pkgconfig;
-  };
+  dataclasses-json = callPackage ../development/python-modules/dataclasses-json { };
 
-  pyqt5 = pkgs.libsForQt5.callPackage ../development/python-modules/pyqt/5.x.nix {
-    pythonPackages = self;
-  };
+  datadiff = callPackage ../development/python-modules/datadiff { };
 
-  /*
-    `pyqt5_with_qtwebkit` should not be used by python libraries in
-    pkgs/development/python-modules/*. Putting this attribute in
-    `propagatedBuildInputs` may cause collisions.
-  */
-  pyqt5_with_qtwebkit = self.pyqt5.override { withWebKit = true; };
+  datadog = callPackage ../development/python-modules/datadog { };
 
-  pyqt5_with_qtmultimedia = self.pyqt5.override { withMultimedia = true; };
+  datamodeldict = callPackage ../development/python-modules/datamodeldict { };
 
-  pyqtwebengine = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtwebengine {
-    pythonPackages = self;
-  };
+  datasets = callPackage ../development/python-modules/datasets { };
 
-  pysc2 = callPackage ../development/python-modules/pysc2 { };
+  datasette = callPackage ../development/python-modules/datasette { };
 
-  pyscard = callPackage ../development/python-modules/pyscard { inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; };
+  datashader = callPackage ../development/python-modules/datashader { };
 
-  pyschedule = callPackage ../development/python-modules/pyschedule { };
+  datashape = callPackage ../development/python-modules/datashape { };
 
-  pyscreenshot = callPackage ../development/python-modules/pyscreenshot { };
+  datatable =
+    callPackage ../development/python-modules/datatable { inherit (pkgs.llvmPackages) openmp libcxx libcxxabi; };
 
-  pyside = callPackage ../development/python-modules/pyside {
-    inherit (pkgs) mesa;
-  };
+  dateparser = callPackage ../development/python-modules/dateparser { };
 
-  pysideShiboken = callPackage ../development/python-modules/pyside/shiboken.nix {
-    inherit (pkgs) libxml2 libxslt; # Do not need the Python bindings.
-  };
+  datrie = callPackage ../development/python-modules/datrie { };
 
-  pysideTools = callPackage ../development/python-modules/pyside/tools.nix { };
+  dbf = callPackage ../development/python-modules/dbf { };
 
-  pyside2 = toPythonModule (callPackage ../development/python-modules/pyside2 {
-    inherit (pkgs) cmake qt5 ninja;
-  });
+  dbfread = callPackage ../development/python-modules/dbfread { };
 
-  shiboken2 = toPythonModule (callPackage ../development/python-modules/shiboken2 {
-    inherit (pkgs) cmake qt5 llvmPackages;
-  });
+  dbus-next = callPackage ../development/python-modules/dbus-next { };
 
-  simplefix = callPackage ../development/python-modules/simplefix { };
+  dbus-python = callPackage ../development/python-modules/dbus { inherit (pkgs) dbus pkgconfig; };
 
-  pyscrypt = callPackage ../development/python-modules/pyscrypt { };
+  dcmstack = callPackage ../development/python-modules/dcmstack { };
 
-  pyside2-tools = toPythonModule (callPackage ../development/python-modules/pyside2-tools {
-    inherit (pkgs) cmake qt5;
-  });
+  ddt = callPackage ../development/python-modules/ddt { };
 
-  pyslurm = callPackage ../development/python-modules/pyslurm {
-    slurm = pkgs.slurm;
-  };
+  deap = callPackage ../development/python-modules/deap { };
 
-  pysmb = callPackage ../development/python-modules/pysmb { };
+  debian = callPackage ../development/python-modules/debian { };
 
-  pysmf = callPackage ../development/python-modules/pysmf { };
+  debts = callPackage ../development/python-modules/debts { };
 
-  pyspinel = callPackage ../development/python-modules/pyspinel {};
+  debugpy = callPackage ../development/python-modules/debugpy { };
 
-  pyssim = callPackage ../development/python-modules/pyssim { };
+  decorator = callPackage ../development/python-modules/decorator { };
 
-  pystache = callPackage ../development/python-modules/pystache { };
+  deepdiff = callPackage ../development/python-modules/deepdiff { };
 
-  pystray = callPackage ../development/python-modules/pystray { };
+  deepmerge = callPackage ../development/python-modules/deepmerge { };
 
-  pytelegrambotapi = callPackage ../development/python-modules/pyTelegramBotAPI { };
+  deeptoolsintervals = callPackage ../development/python-modules/deeptoolsintervals { };
 
-  pytesseract = callPackage ../development/python-modules/pytesseract { };
+  defcon = callPackage ../development/python-modules/defcon { };
 
-  pytest-bdd = callPackage ../development/python-modules/pytest-bdd { };
+  deform = callPackage ../development/python-modules/deform { };
 
-  pytest-black = callPackage ../development/python-modules/pytest-black { };
+  defusedxml = callPackage ../development/python-modules/defusedxml { };
 
-  pytest-click = callPackage ../development/python-modules/pytest-click { };
+  delegator-py = callPackage ../development/python-modules/delegator-py { };
 
-  pytest-check = callPackage ../development/python-modules/pytest-check { };
+  deluge-client = callPackage ../development/python-modules/deluge-client { };
 
-  pytest-env = callPackage ../development/python-modules/pytest-env { };
+  demjson = callPackage ../development/python-modules/demjson { };
 
-  pytest-factoryboy = callPackage ../development/python-modules/pytest-factoryboy { };
+  dendropy = callPackage ../development/python-modules/dendropy { };
 
-  pytest-flask = callPackage ../development/python-modules/pytest-flask { };
+  denonavr = callPackage ../development/python-modules/denonavr { };
 
-  pytest-mypy = callPackage ../development/python-modules/pytest-mypy { };
+  dependency-injector = callPackage ../development/python-modules/dependency-injector { };
 
-  pytest-ordering = callPackage ../development/python-modules/pytest-ordering { };
+  deprecated = callPackage ../development/python-modules/deprecated { };
 
-  pytest-pylint = callPackage ../development/python-modules/pytest-pylint { };
+  deprecation = callPackage ../development/python-modules/deprecation { };
 
-  pytest-qt = callPackage ../development/python-modules/pytest-qt { };
+  derpconf = callPackage ../development/python-modules/derpconf { };
 
-  pytest-testmon = callPackage ../development/python-modules/pytest-testmon { };
+  descartes = callPackage ../development/python-modules/descartes { };
 
-  pytest-tornado = callPackage ../development/python-modules/pytest-tornado { };
+  deskcon = callPackage ../development/python-modules/deskcon { };
 
-  pytest-twisted = callPackage ../development/python-modules/pytest-twisted { };
+  detox = throw "detox is no longer maintained, and was broken since may 2019"; # added 2020-07-04
 
-  pytest-xprocess = callPackage ../development/python-modules/pytest-xprocess { };
+  devpi-common = callPackage ../development/python-modules/devpi-common { };
 
-  pytest-xvfb = callPackage ../development/python-modules/pytest-xvfb { };
+  dftfit = callPackage ../development/python-modules/dftfit { };
 
-  pytmx = callPackage ../development/python-modules/pytmx { };
+  diceware = callPackage ../development/python-modules/diceware { };
 
-  pythonmagick = callPackage ../development/python-modules/pythonmagick { };
+  dicom2nifti = callPackage ../development/python-modules/dicom2nifti { };
 
-  python-binance = callPackage ../development/python-modules/python-binance { };
+  dict2xml = callPackage ../development/python-modules/dict2xml { };
 
-  python-dbusmock = callPackage ../development/python-modules/python-dbusmock { };
+  dictionaries = callPackage ../development/python-modules/dictionaries { };
 
-  python-dotenv = callPackage ../development/python-modules/python-dotenv { };
+  dicttoxml = callPackage ../development/python-modules/dicttoxml { };
 
-  python-engineio = callPackage ../development/python-modules/python-engineio { };
+  diff_cover = callPackage ../development/python-modules/diff_cover { };
 
-  python-hosts = callPackage ../development/python-modules/python-hosts { };
+  diff-match-patch = callPackage ../development/python-modules/diff-match-patch { };
 
-  python-lz4 = callPackage ../development/python-modules/python-lz4 { };
-  lz4 = self.python-lz4; # alias 2018-12-05
+  digital-ocean = callPackage ../development/python-modules/digitalocean { };
 
-  python-ldap-test = callPackage ../development/python-modules/python-ldap-test { };
+  digi-xbee = callPackage ../development/python-modules/digi-xbee { };
 
-  python-mnist = callPackage ../development/python-modules/python-mnist { };
+  dill = callPackage ../development/python-modules/dill { };
 
-  pythonocc-core = toPythonModule (callPackage ../development/python-modules/pythonocc-core {
-    inherit (pkgs.xorg) libX11;
-  });
+  diofant = callPackage ../development/python-modules/diofant { };
 
-  python-igraph = callPackage ../development/python-modules/python-igraph {
-    pkgconfig = pkgs.pkgconfig;
-    igraph = pkgs.igraph;
-  };
+  dipy = callPackage ../development/python-modules/dipy { };
 
-  python-olm = callPackage ../development/python-modules/python-olm { };
+  discid = callPackage ../development/python-modules/discid { };
 
-  python3-openid = callPackage ../development/python-modules/python3-openid { };
+  discogs_client = callPackage ../development/python-modules/discogs_client { };
 
-  python-packer = callPackage ../development/python-modules/python-packer { };
+  discordpy = callPackage ../development/python-modules/discordpy { };
 
-  python-periphery = callPackage ../development/python-modules/python-periphery { };
+  diskcache = callPackage ../development/python-modules/diskcache { };
 
-  python-prctl = callPackage ../development/python-modules/python-prctl { };
+  dissononce = callPackage ../development/python-modules/dissononce { };
 
-  python-rapidjson = callPackage ../development/python-modules/python-rapidjson { };
+  distlib = callPackage ../development/python-modules/distlib { };
 
-  python-redis-lock = callPackage ../development/python-modules/python-redis-lock { };
+  distorm3 = callPackage ../development/python-modules/distorm3 { };
 
-  python-sql = callPackage ../development/python-modules/python-sql { };
+  distributed = callPackage ../development/python-modules/distributed { };
 
-  python-snappy = callPackage ../development/python-modules/python-snappy {
-    inherit (pkgs) snappy;
-  };
+  distro = callPackage ../development/python-modules/distro { };
 
-  python-stdnum = callPackage ../development/python-modules/python-stdnum { };
+  distutils_extra = callPackage ../development/python-modules/distutils_extra { };
 
-  python-socketio = callPackage ../development/python-modules/python-socketio { };
+  django_2_2 = callPackage ../development/python-modules/django/2_2.nix { };
 
-  python-utils = callPackage ../development/python-modules/python-utils { };
+  django-allauth = callPackage ../development/python-modules/django-allauth { };
 
-  python-vipaccess = callPackage ../development/python-modules/python-vipaccess { };
+  django-anymail = callPackage ../development/python-modules/django-anymail { };
 
-  pytimeparse =  callPackage ../development/python-modules/pytimeparse { };
+  django_appconf = callPackage ../development/python-modules/django_appconf { };
 
-  pytricia =  callPackage ../development/python-modules/pytricia { };
+  django-auth-ldap = callPackage ../development/python-modules/django-auth-ldap { };
 
-  pytrends = callPackage ../development/python-modules/pytrends { };
+  django-cache-url = callPackage ../development/python-modules/django-cache-url { };
 
-  py-vapid = callPackage ../development/python-modules/py-vapid { };
+  django_classytags = callPackage ../development/python-modules/django_classytags { };
 
-  PyWebDAV = callPackage ../development/python-modules/pywebdav { };
+  django-cleanup = callPackage ../development/python-modules/django-cleanup { };
 
-  pywebpush = callPackage ../development/python-modules/pywebpush { };
+  django_colorful = callPackage ../development/python-modules/django_colorful { };
 
-  pywebview = callPackage ../development/python-modules/pywebview { };
+  django_compat = callPackage ../development/python-modules/django-compat { };
 
-  pywick = callPackage ../development/python-modules/pywick { };
+  django_compressor = callPackage ../development/python-modules/django_compressor { };
 
-  pyxml = disabledIf isPy3k (callPackage ../development/python-modules/pyxml{ });
+  django-configurations = callPackage ../development/python-modules/django-configurations { };
 
-  pyvcd = callPackage ../development/python-modules/pyvcd { };
+  django_contrib_comments = callPackage ../development/python-modules/django_contrib_comments { };
 
-  pyvcf = callPackage ../development/python-modules/pyvcf { };
+  django-cors-headers = callPackage ../development/python-modules/django-cors-headers { };
 
-  pyvoro = callPackage ../development/python-modules/pyvoro { };
+  django-csp = callPackage ../development/python-modules/django-csp { };
 
-  relatorio = callPackage ../development/python-modules/relatorio { };
+  django-discover-runner = callPackage ../development/python-modules/django-discover-runner { };
 
-  reproject = callPackage ../development/python-modules/reproject { };
+  django-dynamic-preferences = callPackage ../development/python-modules/django-dynamic-preferences { };
 
-  remotecv = callPackage ../development/python-modules/remotecv { };
+  django_environ = callPackage ../development/python-modules/django_environ { };
 
-  pyzufall = callPackage ../development/python-modules/pyzufall { };
+  django_evolution = callPackage ../development/python-modules/django_evolution { };
 
-  rig = callPackage ../development/python-modules/rig { };
+  django_extensions = callPackage ../development/python-modules/django-extensions { };
 
-  rhpl = disabledIf isPy3k (callPackage ../development/python-modules/rhpl {});
+  django-filter = callPackage ../development/python-modules/django-filter { };
 
-  rlp = callPackage ../development/python-modules/rlp { };
+  django-gravatar2 = callPackage ../development/python-modules/django-gravatar2 { };
 
-  rq = callPackage ../development/python-modules/rq { };
+  django_guardian = callPackage ../development/python-modules/django_guardian { };
 
-  rx = callPackage ../development/python-modules/rx { };
+  django-haystack = callPackage ../development/python-modules/django-haystack { };
 
-  sabyenc = callPackage ../development/python-modules/sabyenc { };
+  django_hijack_admin = callPackage ../development/python-modules/django-hijack-admin { };
 
-  salmon-mail = callPackage ../development/python-modules/salmon-mail { };
+  django_hijack = callPackage ../development/python-modules/django-hijack
+    { }; # This package may need an older version of Django. Override the package set and set e.g. `django = super.django_1_9`. See the Nixpkgs manual for examples on how to override the package set.
 
-  sanic-auth = callPackage ../development/python-modules/sanic-auth { };
+  django-ipware = callPackage ../development/python-modules/django-ipware { };
 
-  sapi-python-client = callPackage ../development/python-modules/sapi-python-client { };
+  django-jinja = callPackage ../development/python-modules/django-jinja2 { };
 
-  seekpath = callPackage ../development/python-modules/seekpath { };
+  django-logentry-admin = callPackage ../development/python-modules/django-logentry-admin { };
 
-  selectors2 = callPackage ../development/python-modules/selectors2 { };
+  django_lts = self.django_2_2;
 
-  sacremoses = callPackage ../development/python-modules/sacremoses { };
+  django-mailman3 = callPackage ../development/python-modules/django-mailman3 { };
 
-  sentencepiece = callPackage ../development/python-modules/sentencepiece {
-    inherit (pkgs) sentencepiece pkgconfig;
-  };
+  django_modelcluster = callPackage ../development/python-modules/django_modelcluster { };
 
-  transformers = callPackage ../development/python-modules/transformers { };
+  django-multiselectfield = callPackage ../development/python-modules/django-multiselectfield { };
 
-  transforms3d = callPackage ../development/python-modules/transforms3d { };
+  django-maintenance-mode = callPackage ../development/python-modules/django-maintenance-mode { };
 
-  trimesh = callPackage ../development/python-modules/trimesh {};
+  django_nose = callPackage ../development/python-modules/django_nose { };
 
-  sentinel = callPackage ../development/python-modules/sentinel { };
+  django-oauth-toolkit = callPackage ../development/python-modules/django-oauth-toolkit { };
 
-  sentry-sdk = callPackage ../development/python-modules/sentry-sdk {};
+  django-paintstore = callPackage ../development/python-modules/django-paintstore { };
 
-  sepaxml = callPackage ../development/python-modules/sepaxml { };
+  django-pglocks = callPackage ../development/python-modules/django-pglocks { };
 
-  serversyncstorage = callPackage ../development/python-modules/serversyncstorage {};
+  django-picklefield = callPackage ../development/python-modules/django-picklefield { };
 
-  shellingham = callPackage ../development/python-modules/shellingham {};
+  django_pipeline = callPackage ../development/python-modules/django-pipeline { };
 
-  simpleaudio = callPackage ../development/python-modules/simpleaudio { };
+  django_polymorphic = callPackage ../development/python-modules/django-polymorphic { };
 
-  simpleeval = callPackage ../development/python-modules/simpleeval { };
+  django-postgresql-netfields = callPackage ../development/python-modules/django-postgresql-netfields { };
 
-  simple-salesforce = callPackage ../development/python-modules/simple-salesforce { };
+  django-q = callPackage ../development/python-modules/django-q { };
 
-  singledispatch = callPackage ../development/python-modules/singledispatch { };
+  djangoql = callPackage ../development/python-modules/djangoql { };
 
-  sip = callPackage ../development/python-modules/sip { };
+  django-ranged-response = callPackage ../development/python-modules/django-ranged-response { };
 
-  sortedcontainers = callPackage ../development/python-modules/sortedcontainers { };
+  django-raster = callPackage ../development/python-modules/django-raster { };
 
-  sklearn-deap = callPackage ../development/python-modules/sklearn-deap { };
+  django_redis = callPackage ../development/python-modules/django_redis { };
 
-  skorch = callPackage ../development/python-modules/skorch { };
+  django-rest-auth = callPackage ../development/python-modules/django-rest-auth { };
 
-  slackclient = callPackage ../development/python-modules/slackclient { };
+  djangorestframework = callPackage ../development/python-modules/djangorestframework { };
 
-  slicedimage = callPackage ../development/python-modules/slicedimage { };
+  djangorestframework-jwt = callPackage ../development/python-modules/djangorestframework-jwt { };
 
-  slicerator = callPackage ../development/python-modules/slicerator { };
+  djangorestframework-simplejwt = callPackage ../development/python-modules/djangorestframework-simplejwt { };
 
-  slither-analyzer = callPackage ../development/python-modules/slither-analyzer { };
+  django_reversion = callPackage ../development/python-modules/django_reversion { };
 
-  sly = callPackage ../development/python-modules/sly { };
+  django-sampledatahelper = callPackage ../development/python-modules/django-sampledatahelper { };
 
-  snapcast = callPackage ../development/python-modules/snapcast { };
+  django = self.django_lts;
 
-  soapysdr = toPythonModule (pkgs.soapysdr.override {
-    python = self.python;
-    usePython = true;
-  });
+  django-sesame = callPackage ../development/python-modules/django-sesame { };
 
-  soapysdr-with-plugins = toPythonModule (pkgs.soapysdr-with-plugins.override {
-    python = self.python;
-    usePython = true;
-  });
+  django_silk = callPackage ../development/python-modules/django_silk { };
 
-  softlayer = callPackage ../development/python-modules/softlayer { };
+  django-simple-captcha = callPackage ../development/python-modules/django-simple-captcha { };
 
-  sparse = callPackage ../development/python-modules/sparse { };
+  django-sites = callPackage ../development/python-modules/django-sites { };
 
-  spglib = callPackage ../development/python-modules/spglib { };
+  django-sr = callPackage ../development/python-modules/django-sr { };
 
-  sshpubkeys = callPackage ../development/python-modules/sshpubkeys { };
+  django-storages = callPackage ../development/python-modules/django-storages { };
 
-  sshtunnel = callPackage ../development/python-modules/sshtunnel { };
+  django_tagging = callPackage ../development/python-modules/django_tagging { };
 
-  sslib = callPackage ../development/python-modules/sslib { };
+  django_taggit = callPackage ../development/python-modules/django_taggit { };
 
-  statistics = callPackage ../development/python-modules/statistics { };
+  django_treebeard = callPackage ../development/python-modules/django_treebeard { };
 
-  stm32loader = callPackage ../development/python-modules/stm32loader { };
+  django-versatileimagefield = callPackage ../development/python-modules/django-versatileimagefield { };
 
-  stumpy = callPackage ../development/python-modules/stumpy { };
+  django-webpack-loader = callPackage ../development/python-modules/django-webpack-loader { };
 
-  stups-cli-support = callPackage ../development/python-modules/stups-cli-support { };
+  django-widget-tweaks = callPackage ../development/python-modules/django-widget-tweaks { };
 
-  stups-fullstop = callPackage ../development/python-modules/stups-fullstop { };
+  dj-database-url = callPackage ../development/python-modules/dj-database-url { };
 
-  stups-pierone = callPackage ../development/python-modules/stups-pierone { };
+  dj-email-url = callPackage ../development/python-modules/dj-email-url { };
 
-  stups-tokens = callPackage ../development/python-modules/stups-tokens { };
+  djmail = callPackage ../development/python-modules/djmail { };
 
-  stups-zign = callPackage ../development/python-modules/stups-zign { };
+  dj-search-url = callPackage ../development/python-modules/dj-search-url { };
 
-  sumo = callPackage ../development/python-modules/sumo { };
+  dkimpy = callPackage ../development/python-modules/dkimpy { };
 
-  supervise_api = callPackage ../development/python-modules/supervise_api { };
+  dlib = callPackage ../development/python-modules/dlib { inherit (pkgs) dlib; };
 
-  tables = if isPy3k then callPackage ../development/python-modules/tables {
-    hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; };
-  } else callPackage ../development/python-modules/tables/3.5.nix {
-    hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; };
-  };
+  dlx = callPackage ../development/python-modules/dlx { };
 
-  tableaudocumentapi = callPackage ../development/python-modules/tableaudocumentapi { };
+  dmenu-python = callPackage ../development/python-modules/dmenu { };
 
-  tesserocr = callPackage ../development/python-modules/tesserocr { };
+  dm-sonnet = callPackage ../development/python-modules/dm-sonnet { };
 
-  trueskill = callPackage ../development/python-modules/trueskill { };
+  dnslib = callPackage ../development/python-modules/dnslib { };
 
-  trustme = callPackage ../development/python-modules/trustme {};
+  dnspython = if isPy3k then
+    callPackage ../development/python-modules/dnspython { }
+  else
+    self.dnspython_1;
 
-  trio = callPackage ../development/python-modules/trio {};
+  dnspython_1 = callPackage ../development/python-modules/dnspython/1.nix { };
 
-  sniffio = callPackage ../development/python-modules/sniffio { };
+  dns = self.dnspython; # Alias for compatibility, 2017-12-10
 
-  spyder-kernels = callPackage ../development/python-modules/spyder-kernels {};
-  spyder-kernels_0_5 = callPackage ../development/python-modules/spyder-kernels/0.x.nix {};
+  doc8 = callPackage ../development/python-modules/doc8 { };
 
-  spyder = callPackage ../development/python-modules/spyder {};
-  spyder_3 = callPackage ../development/python-modules/spyder/3.nix { };
+  docker = callPackage ../development/python-modules/docker { };
 
-  tenacity = callPackage ../development/python-modules/tenacity { };
+  dockerfile-parse = callPackage ../development/python-modules/dockerfile-parse { };
 
-  tokenserver = callPackage ../development/python-modules/tokenserver {};
+  dockerpty = callPackage ../development/python-modules/dockerpty { };
 
-  toml = callPackage ../development/python-modules/toml { };
+  docker_pycreds = callPackage ../development/python-modules/docker-pycreds { };
 
-  tomlkit = callPackage ../development/python-modules/tomlkit { };
+  docker-py = disabledIf isPy27 (callPackage ../development/python-modules/docker-py { });
 
-  toggl-cli = callPackage ../development/python-modules/toggl-cli { };
+  dockerspawner = callPackage ../development/python-modules/dockerspawner { };
 
-  uamqp = callPackage ../development/python-modules/uamqp {
-    inherit (pkgs.darwin.apple_sdk.frameworks) CFNetwork Security;
-  };
+  docloud = callPackage ../development/python-modules/docloud { };
 
-  unifi = callPackage ../development/python-modules/unifi { };
+  docopt = callPackage ../development/python-modules/docopt { };
 
-  uvloop = callPackage ../development/python-modules/uvloop {
-    inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices CoreServices;
-  };
+  docplex = callPackage ../development/python-modules/docplex { };
 
-  pyunifi = callPackage ../development/python-modules/pyunifi { };
+  docrep = callPackage ../development/python-modules/docrep { };
 
-  vdf = callPackage ../development/python-modules/vdf { };
+  doctest-ignore-unicode = callPackage ../development/python-modules/doctest-ignore-unicode { };
 
-  vdirsyncer = callPackage ../development/python-modules/vdirsyncer {
-    inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices Security;
-    inherit (pkgs) pkg-config openssl rustPlatform;
-  };
+  docutils = callPackage ../development/python-modules/docutils { };
 
-  vdirsyncerStable = callPackage ../development/python-modules/vdirsyncer/stable.nix { };
+  dodgy = callPackage ../development/python-modules/dodgy { };
 
-  vidstab = callPackage ../development/python-modules/vidstab { };
+  dogpile_cache = callPackage ../development/python-modules/dogpile.cache { };
 
-  webapp2 = callPackage ../development/python-modules/webapp2 { };
+  dogpile_core = callPackage ../development/python-modules/dogpile.core { };
 
-  wordcloud = callPackage ../development/python-modules/wordcloud { };
+  dogtail = callPackage ../development/python-modules/dogtail { };
 
-  wrf-python = callPackage ../development/python-modules/wrf-python { };
+  dominate = callPackage ../development/python-modules/dominate { };
 
-  pyunbound = callPackage ../tools/networking/unbound/python.nix { };
+  dopy = callPackage ../development/python-modules/dopy { };
 
-  WazeRouteCalculator = callPackage ../development/python-modules/WazeRouteCalculator { };
+  dot2tex = callPackage ../development/python-modules/dot2tex { inherit (pkgs) graphviz; };
 
-  yarg = callPackage ../development/python-modules/yarg { };
+  dotnetcore2 = callPackage ../development/python-modules/dotnetcore2 { inherit (pkgs) substituteAll dotnet-sdk; };
 
-  yt = callPackage ../development/python-modules/yt { };
+  dparse = callPackage ../development/python-modules/dparse { };
 
-  # packages defined here
+  dpath = callPackage ../development/python-modules/dpath { };
 
-  aafigure = callPackage ../development/python-modules/aafigure { };
+  dpkt = callPackage ../development/python-modules/dpkt { };
 
-  addic7ed-cli = callPackage ../development/python-modules/addic7ed-cli { };
+  drf-yasg = callPackage ../development/python-modules/drf-yasg { };
 
-  algebraic-data-types = callPackage ../development/python-modules/algebraic-data-types { };
+  drms = callPackage ../development/python-modules/drms { };
 
-  altair = callPackage ../development/python-modules/altair { };
+  dropbox = callPackage ../development/python-modules/dropbox { };
 
-  vega = callPackage ../development/python-modules/vega { };
+  ds4drv = callPackage ../development/python-modules/ds4drv { inherit (pkgs) fetchFromGitHub bluez; };
 
-  accupy = callPackage ../development/python-modules/accupy { };
+  dtopt = callPackage ../development/python-modules/dtopt { };
 
-  acme = callPackage ../development/python-modules/acme { };
+  duckdb = callPackage ../development/python-modules/duckdb { duckdb = pkgs.duckdb; };
 
-  acme-tiny = callPackage ../development/python-modules/acme-tiny { };
+  duecredit = callPackage ../development/python-modules/duecredit { };
 
-  actdiag = callPackage ../development/python-modules/actdiag { };
+  dugong = callPackage ../development/python-modules/dugong { };
 
-  adal = callPackage ../development/python-modules/adal { };
+  dulwich = if isPy3k then
+    callPackage ../development/python-modules/dulwich { }
+  else
+    callPackage ../development/python-modules/dulwich/0_19.nix { };
 
-  affine = callPackage ../development/python-modules/affine { };
+  dyn = callPackage ../development/python-modules/dyn { };
 
-  aioconsole = callPackage ../development/python-modules/aioconsole { };
+  dynd = callPackage ../development/python-modules/dynd { };
 
-  aiodns = callPackage ../development/python-modules/aiodns { };
+  easydict = callPackage ../development/python-modules/easydict { };
 
-  aiofiles = callPackage ../development/python-modules/aiofiles { };
+  easygui = callPackage ../development/python-modules/easygui { };
 
-  aioh2 = callPackage ../development/python-modules/aioh2 { };
+  EasyProcess = callPackage ../development/python-modules/easyprocess { };
 
-  aioftp = callPackage ../development/python-modules/aioftp { };
+  easysnmp = callPackage ../development/python-modules/easysnmp {
+    openssl = pkgs.openssl;
+    net-snmp = pkgs.net-snmp;
+  };
 
-  aioharmony = callPackage ../development/python-modules/aioharmony { };
+  easy-thumbnails = callPackage ../development/python-modules/easy-thumbnails { };
 
-  aiohttp = callPackage ../development/python-modules/aiohttp { };
+  easywatch = callPackage ../development/python-modules/easywatch { };
 
-  aiohttp-cors = callPackage ../development/python-modules/aiohttp-cors { };
+  eccodes = toPythonModule (pkgs.eccodes.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  aiohttp-jinja2 = callPackage ../development/python-modules/aiohttp-jinja2 { };
+  ecdsa = callPackage ../development/python-modules/ecdsa { };
 
-  aiohttp-remotes = callPackage ../development/python-modules/aiohttp-remotes { };
+  ecos = callPackage ../development/python-modules/ecos { };
 
-  aiohttp-socks = callPackage ../development/python-modules/aiohttp-socks { };
+  ecpy = callPackage ../development/python-modules/ecpy { };
 
-  aiohttp-swagger = callPackage ../development/python-modules/aiohttp-swagger { };
+  ed25519 = callPackage ../development/python-modules/ed25519 { };
 
-  aiomysql = callPackage ../development/python-modules/aiomysql { };
+  editorconfig = callPackage ../development/python-modules/editorconfig { };
 
-  aioprocessing = callPackage ../development/python-modules/aioprocessing { };
+  edward = callPackage ../development/python-modules/edward { };
 
-  aioresponses = callPackage ../development/python-modules/aioresponses { };
+  effect = callPackage ../development/python-modules/effect { };
 
-  aiosqlite = callPackage ../development/python-modules/aiosqlite { };
+  eggdeps = callPackage ../development/python-modules/eggdeps { };
 
-  aiorpcx = callPackage ../development/python-modules/aiorpcx { };
+  elasticsearch = callPackage ../development/python-modules/elasticsearch { };
 
-  aiosmtpd = callPackage ../development/python-modules/aiosmtpd { };
+  elasticsearch-dsl = callPackage ../development/python-modules/elasticsearch-dsl { };
 
-  aiounifi = callPackage ../development/python-modules/aiounifi { };
+  elasticsearchdsl = self.elasticsearch-dsl; # alias
 
-  aiounittest = callPackage ../development/python-modules/aiounittest { };
+  elementpath = callPackage ../development/python-modules/elementpath { };
 
-  aiozeroconf = callPackage ../development/python-modules/aiozeroconf { };
+  eliot = callPackage ../development/python-modules/eliot { };
 
-  ajpy = callPackage ../development/python-modules/ajpy { };
+  emailthreads = callPackage ../development/python-modules/emailthreads { };
 
-  alabaster = callPackage ../development/python-modules/alabaster {};
+  email_validator = callPackage ../development/python-modules/email-validator { };
 
-  alarmdecoder = callPackage ../development/python-modules/alarmdecoder {};
+  emcee = callPackage ../development/python-modules/emcee { };
 
-  alembic = callPackage ../development/python-modules/alembic {};
+  emoji = callPackage ../development/python-modules/emoji { };
 
-  allpairspy = callPackage ../development/python-modules/allpairspy { };
+  enaml = callPackage ../development/python-modules/enaml { };
 
-  annexremote = callPackage ../development/python-modules/annexremote { };
+  enamlx = callPackage ../development/python-modules/enamlx { };
 
-  ansible = callPackage ../development/python-modules/ansible { };
+  entrance = callPackage ../development/python-modules/entrance { routerFeatures = false; };
 
-  ansible-kernel = callPackage ../development/python-modules/ansible-kernel { };
+  entrance-with-router-features = callPackage ../development/python-modules/entrance { routerFeatures = true; };
 
-  ansible-lint = callPackage ../development/python-modules/ansible-lint { };
+  entrypoint2 = callPackage ../development/python-modules/entrypoint2 { };
 
-  ansible-runner = callPackage ../development/python-modules/ansible-runner { };
+  entrypoints = callPackage ../development/python-modules/entrypoints { };
 
-  ansicolors = callPackage ../development/python-modules/ansicolors {};
+  enum34 = callPackage ../development/python-modules/enum34 { };
 
-  aniso8601 = callPackage ../development/python-modules/aniso8601 {};
+  enum = callPackage ../development/python-modules/enum { };
 
-  anonip = callPackage ../development/python-modules/anonip { };
+  enum-compat = callPackage ../development/python-modules/enum-compat { };
 
-  asgiref = callPackage ../development/python-modules/asgiref { };
+  envisage = callPackage ../development/python-modules/envisage { };
 
-  python-editor = callPackage ../development/python-modules/python-editor { };
+  envs = callPackage ../development/python-modules/envs { };
 
-  python-gnupg = callPackage ../development/python-modules/python-gnupg {};
+  enzyme = callPackage ../development/python-modules/enzyme { };
 
-  python-uinput = callPackage ../development/python-modules/python-uinput {};
+  epc = callPackage ../development/python-modules/epc { };
 
-  python-sybase = callPackage ../development/python-modules/sybase {};
+  ephem = callPackage ../development/python-modules/ephem { };
 
-  alot = callPackage ../development/python-modules/alot {};
+  eradicate = callPackage ../development/python-modules/eradicate { };
 
-  anyjson = callPackage ../development/python-modules/anyjson {};
+  escapism = callPackage ../development/python-modules/escapism { };
 
-  amqp = callPackage ../development/python-modules/amqp {};
+  etcd = callPackage ../development/python-modules/etcd { };
 
-  amqplib = callPackage ../development/python-modules/amqplib {};
+  etelemetry = callPackage ../development/python-modules/etelemetry { };
 
-  antlr4-python2-runtime = callPackage ../development/python-modules/antlr4-python2-runtime { antlr4 = pkgs.antlr4; };
+  etesync = callPackage ../development/python-modules/etesync { };
 
-  antlr4-python3-runtime = callPackage ../development/python-modules/antlr4-python3-runtime { antlr4 = pkgs.antlr4; };
+  eth-hash = callPackage ../development/python-modules/eth-hash { };
 
-  apache-airflow = callPackage ../development/python-modules/apache-airflow { };
+  eth-typing = callPackage ../development/python-modules/eth-typing { };
 
-  apipkg = callPackage ../development/python-modules/apipkg {};
+  eth-utils = callPackage ../development/python-modules/eth-utils { };
 
-  apispec = callPackage ../development/python-modules/apispec {};
+  et_xmlfile = callPackage ../development/python-modules/et_xmlfile { };
 
-  appdirs = callPackage ../development/python-modules/appdirs { };
+  evdev = callPackage ../development/python-modules/evdev { };
 
-  appleseed = disabledIf isPy3k
-    (toPythonModule (pkgs.appleseed.override {
-      inherit (self) python;
-    }));
+  eve = callPackage ../development/python-modules/eve { };
 
-  application = callPackage ../development/python-modules/application { };
+  eventlet = callPackage ../development/python-modules/eventlet { };
 
-  applicationinsights = callPackage ../development/python-modules/applicationinsights { };
+  eventlib = callPackage ../development/python-modules/eventlib { };
 
-  appnope = callPackage ../development/python-modules/appnope { };
+  events = callPackage ../development/python-modules/events { };
 
-  approvaltests = callPackage ../development/python-modules/approvaltests { };
+  evernote = callPackage ../development/python-modules/evernote { };
 
-  apptools = callPackage ../development/python-modules/apptools {};
+  ewmh = callPackage ../development/python-modules/ewmh { };
 
-  apsw = callPackage ../development/python-modules/apsw {};
+  exchangelib = callPackage ../development/python-modules/exchangelib { };
 
-  astor = callPackage ../development/python-modules/astor {};
+  execnet = callPackage ../development/python-modules/execnet { };
 
-  asyncpg = callPackage ../development/python-modules/asyncpg { };
+  executing = callPackage ../development/python-modules/executing { };
 
-  asyncssh = callPackage ../development/python-modules/asyncssh { };
+  executor = callPackage ../development/python-modules/executor { };
 
-  atpublic = callPackage ../development/python-modules/atpublic { };
+  exifread = callPackage ../development/python-modules/exifread { };
 
-  python-fontconfig = callPackage ../development/python-modules/python-fontconfig { };
+  extension-helpers = callPackage ../development/python-modules/extension-helpers { };
 
-  funcsigs = callPackage ../development/python-modules/funcsigs { };
+  extras = callPackage ../development/python-modules/extras { };
 
-  APScheduler = callPackage ../development/python-modules/APScheduler { };
+  eyeD3 = callPackage ../development/python-modules/eyed3 { };
 
-  args = callPackage ../development/python-modules/args { };
+  ezdxf = callPackage ../development/python-modules/ezdxf { };
 
-  argcomplete = callPackage ../development/python-modules/argcomplete { };
+  Fabric = callPackage ../development/python-modules/Fabric { };
 
-  area = callPackage ../development/python-modules/area { };
+  facebook-sdk = callPackage ../development/python-modules/facebook-sdk { };
 
-  arxiv2bib = callPackage ../development/python-modules/arxiv2bib { };
+  face = callPackage ../development/python-modules/face { };
 
-  chai = callPackage ../development/python-modules/chai { };
+  facedancer = callPackage ../development/python-modules/facedancer { };
 
-  chainmap = callPackage ../development/python-modules/chainmap { };
+  face_recognition = callPackage ../development/python-modules/face_recognition { };
 
-  arelle = callPackage ../development/python-modules/arelle {
-    gui = true;
-  };
+  face_recognition_models = callPackage ../development/python-modules/face_recognition_models { };
 
-  arelle-headless = callPackage ../development/python-modules/arelle {
-    gui = false;
-  };
+  factory_boy = callPackage ../development/python-modules/factory_boy { };
 
-  delegator-py = callPackage ../development/python-modules/delegator-py { };
+  fake_factory = callPackage ../development/python-modules/fake_factory { };
 
-  deluge-client = callPackage ../development/python-modules/deluge-client { };
+  faker = callPackage ../development/python-modules/faker { };
 
-  arrow = callPackage ../development/python-modules/arrow { };
+  fake-useragent = callPackage ../development/python-modules/fake-useragent { };
 
-  asynctest = callPackage ../development/python-modules/asynctest { };
+  falcon = callPackage ../development/python-modules/falcon { };
 
-  async-timeout = callPackage ../development/python-modules/async_timeout { };
+  fastapi = callPackage ../development/python-modules/fastapi { };
 
-  async_generator = callPackage ../development/python-modules/async_generator { };
+  fastcache = callPackage ../development/python-modules/fastcache { };
 
-  asn1ate = callPackage ../development/python-modules/asn1ate { };
+  fastdtw = callPackage ../development/python-modules/fastdtw { };
 
-  atlassian-python-api = callPackage ../development/python-modules/atlassian-python-api { };
+  fasteners = callPackage ../development/python-modules/fasteners { };
 
-  atomiclong = callPackage ../development/python-modules/atomiclong { };
+  fastentrypoints = callPackage ../development/python-modules/fastentrypoints { };
 
-  atomicwrites = callPackage ../development/python-modules/atomicwrites { };
+  fastimport = callPackage ../development/python-modules/fastimport { };
 
-  astroid = if isPy3k then callPackage ../development/python-modules/astroid { }
-            else callPackage ../development/python-modules/astroid/1.6.nix { };
+  fastjsonschema = callPackage ../development/python-modules/fastjsonschema { };
 
-  attrdict = callPackage ../development/python-modules/attrdict { };
+  fastpair = callPackage ../development/python-modules/fastpair { };
 
-  attrs = callPackage ../development/python-modules/attrs { };
+  fastparquet = callPackage ../development/python-modules/fastparquet { };
 
-  atsim_potentials = callPackage ../development/python-modules/atsim_potentials { };
+  fastpbkdf2 = callPackage ../development/python-modules/fastpbkdf2 { };
 
-  audio-metadata = callPackage ../development/python-modules/audio-metadata { };
+  fastrlock = callPackage ../development/python-modules/fastrlock { };
 
-  audioread = callPackage ../development/python-modules/audioread { };
+  fasttext = callPackage ../development/python-modules/fasttext { };
 
-  audiotools = callPackage ../development/python-modules/audiotools { };
+  faulthandler = if !isPy3k then
+    callPackage ../development/python-modules/faulthandler { }
+  else
+    throw "faulthandler is built into ${python.executable}";
 
-  autopep8 = callPackage ../development/python-modules/autopep8 { };
+  favicon = callPackage ../development/python-modules/favicon { };
 
-  av = callPackage ../development/python-modules/av {
-    inherit (pkgs) pkgconfig;
-  };
+  fb-re2 = callPackage ../development/python-modules/fb-re2 { };
 
-  avro = callPackage ../development/python-modules/avro {};
+  fdint = callPackage ../development/python-modules/fdint { };
 
-  avro3k = callPackage ../development/python-modules/avro3k {};
+  feedgen = callPackage ../development/python-modules/feedgen { };
 
-  avro-python3 = callPackage ../development/python-modules/avro-python3 {};
+  feedgenerator = callPackage ../development/python-modules/feedgenerator { inherit (pkgs) glibcLocales; };
 
-  aws-lambda-builders = callPackage ../development/python-modules/aws-lambda-builders { };
+  feedparser = callPackage ../development/python-modules/feedparser { };
 
-  python-slugify = callPackage ../development/python-modules/python-slugify { };
+  fenics = callPackage ../development/libraries/science/math/fenics {
+    inherit (pkgs) pkg-config;
+    mpi = pkgs.openmpi;
+    pytest = self.pytest_4;
+  };
 
-  awesome-slugify = callPackage ../development/python-modules/awesome-slugify {};
+  ffmpeg-python = callPackage ../development/python-modules/ffmpeg-python { };
 
-  noise = callPackage ../development/python-modules/noise {};
+  fido2 = callPackage ../development/python-modules/fido2 { };
 
-  backcall = callPackage ../development/python-modules/backcall { };
+  filebrowser_safe = callPackage ../development/python-modules/filebrowser_safe { };
 
-  backports_abc = callPackage ../development/python-modules/backports_abc { };
+  filebytes = callPackage ../development/python-modules/filebytes { };
 
-  backports_functools_lru_cache = callPackage ../development/python-modules/backports_functools_lru_cache { };
+  filelock = callPackage ../development/python-modules/filelock { };
 
-  backports_os = callPackage ../development/python-modules/backports_os { };
+  filemagic = callPackage ../development/python-modules/filemagic { };
 
-  backports_shutil_get_terminal_size = callPackage ../development/python-modules/backports_shutil_get_terminal_size { };
+  filetype = callPackage ../development/python-modules/filetype { };
 
-  backports_ssl_match_hostname = if !(pythonOlder "3.5") then null else
-    callPackage ../development/python-modules/backports_ssl_match_hostname { };
+  filterpy = callPackage ../development/python-modules/filterpy { };
 
-  backports_lzma = callPackage ../development/python-modules/backports_lzma { };
+  finalfusion = callPackage ../development/python-modules/finalfusion { };
 
-  backports_tempfile = callPackage ../development/python-modules/backports_tempfile { };
+  fints = callPackage ../development/python-modules/fints { };
 
-  backports_unittest-mock = callPackage ../development/python-modules/backports_unittest-mock {};
+  fiona = callPackage ../development/python-modules/fiona { gdal_2 = pkgs.gdal_2; };
 
-  babelfish = callPackage ../development/python-modules/babelfish {};
+  fipy = callPackage ../development/python-modules/fipy { };
 
-  bandit = callPackage ../development/python-modules/bandit {};
+  fire = callPackage ../development/python-modules/fire { };
 
-  basiciw = callPackage ../development/python-modules/basiciw {
-    inherit (pkgs) gcc wirelesstools;
-  };
+  firetv = callPackage ../development/python-modules/firetv { };
 
-  base58 = callPackage ../development/python-modules/base58 {};
+  first = callPackage ../development/python-modules/first { };
 
-  batchgenerators = callPackage ../development/python-modules/batchgenerators { };
+  fitbit = callPackage ../development/python-modules/fitbit { };
 
-  batinfo = callPackage ../development/python-modules/batinfo {};
+  fixtures = callPackage ../development/python-modules/fixtures { };
 
-  bcdoc = callPackage ../development/python-modules/bcdoc {};
+  flake8-blind-except = callPackage ../development/python-modules/flake8-blind-except { };
 
-  beancount = callPackage ../development/python-modules/beancount { };
+  flake8 = callPackage ../development/python-modules/flake8 { };
 
-  beautifulsoup4 = callPackage ../development/python-modules/beautifulsoup4 { };
+  flake8-debugger = callPackage ../development/python-modules/flake8-debugger { };
 
-  beaker = callPackage ../development/python-modules/beaker { };
+  flake8-future-import = callPackage ../development/python-modules/flake8-future-import { };
 
-  bespon = callPackage ../development/python-modules/bespon { };
+  flake8-import-order = callPackage ../development/python-modules/flake8-import-order { };
 
-  betamax = callPackage ../development/python-modules/betamax {};
+  flake8-polyfill = callPackage ../development/python-modules/flake8-polyfill { };
 
-  betamax-matchers = callPackage ../development/python-modules/betamax-matchers { };
+  flaky = callPackage ../development/python-modules/flaky { };
 
-  betamax-serializers = callPackage ../development/python-modules/betamax-serializers { };
+  flammkuchen = callPackage ../development/python-modules/flammkuchen { };
 
-  bibtexparser = callPackage ../development/python-modules/bibtexparser { };
+  flask-admin = callPackage ../development/python-modules/flask-admin { };
 
-  bidict = callPackage ../development/python-modules/bidict { };
+  flask-api = callPackage ../development/python-modules/flask-api { };
 
-  bids-validator = callPackage ../development/python-modules/bids-validator { };
+  flask-appbuilder = callPackage ../development/python-modules/flask-appbuilder { };
 
-  binwalk = callPackage ../development/python-modules/binwalk {
-    pyqtgraph = null;
-  };
+  flask_assets = callPackage ../development/python-modules/flask-assets { };
 
-  binwalk-full = appendToName "full" (self.binwalk.override {
-    pyqtgraph = self.pyqtgraph;
-  });
+  flask-autoindex = callPackage ../development/python-modules/flask-autoindex { };
 
-  bitmath = callPackage ../development/python-modules/bitmath { };
+  flask-babel = callPackage ../development/python-modules/flask-babel { };
 
-  bitstruct = callPackage ../development/python-modules/bitstruct { };
+  flaskbabel = callPackage ../development/python-modules/flaskbabel { };
 
-  caldav = callPackage ../development/python-modules/caldav { };
+  flask-babelex = callPackage ../development/python-modules/flask-babelex { };
 
-  caldavclientlibrary-asynk = callPackage ../development/python-modules/caldavclientlibrary-asynk { };
+  flask-bcrypt = callPackage ../development/python-modules/flask-bcrypt { };
 
-  biopython = callPackage ../development/python-modules/biopython { };
+  flask-bootstrap = callPackage ../development/python-modules/flask-bootstrap { };
 
-  bedup = callPackage ../development/python-modules/bedup { };
+  flask-caching = callPackage ../development/python-modules/flask-caching { };
 
-  blessed = callPackage ../development/python-modules/blessed {};
+  flask = callPackage ../development/python-modules/flask { };
 
-  block-io = callPackage ../development/python-modules/block-io {};
+  flask-common = callPackage ../development/python-modules/flask-common { };
 
-  # Build boost for this specific Python version
-  # TODO: use separate output for libboost_python.so
-  boost = toPythonModule (pkgs.boost.override {
-    inherit (self) python numpy;
-    enablePython = true;
-  });
+  flask-compress = callPackage ../development/python-modules/flask-compress { };
 
-  boltztrap2 = callPackage ../development/python-modules/boltztrap2 { };
+  flask-cors = callPackage ../development/python-modules/flask-cors { };
 
-  boolean-py = callPackage ../development/python-modules/boolean-py { };
+  flask_elastic = callPackage ../development/python-modules/flask-elastic { };
 
-  bumps = callPackage ../development/python-modules/bumps {};
+  flask-httpauth = callPackage ../development/python-modules/flask-httpauth { };
 
-  bx-python = callPackage ../development/python-modules/bx-python {
-    inherit (pkgs) zlib;
-  };
+  flask-jwt-extended = callPackage ../development/python-modules/flask-jwt-extended { };
 
-  cached-property = callPackage ../development/python-modules/cached-property { };
+  flask_ldap_login = callPackage ../development/python-modules/flask-ldap-login { };
 
-  caffe = toPythonModule (pkgs.caffe.override {
-    pythonSupport = true;
-    inherit (self) python numpy boost;
-  });
+  flask-limiter = callPackage ../development/python-modules/flask-limiter { };
 
-  capstone = callPackage ../development/python-modules/capstone { inherit (pkgs) capstone; };
+  flask_login = callPackage ../development/python-modules/flask-login { };
 
-  capturer = callPackage ../development/python-modules/capturer { };
+  flask_mail = callPackage ../development/python-modules/flask-mail { };
 
-  cement = callPackage ../development/python-modules/cement {};
+  flask_marshmallow = callPackage ../development/python-modules/flask-marshmallow { };
 
-  cgen = callPackage ../development/python-modules/cgen { };
+  flask_migrate = callPackage ../development/python-modules/flask-migrate { };
 
-  cgroup-utils = callPackage ../development/python-modules/cgroup-utils {};
+  flask-mongoengine = callPackage ../development/python-modules/flask-mongoengine { };
 
-  chainer = callPackage ../development/python-modules/chainer {
-    cudaSupport = pkgs.config.cudaSupport or false;
-  };
+  flask-openid = callPackage ../development/python-modules/flask-openid { };
 
-  channels = callPackage ../development/python-modules/channels {};
+  flask-paginate = callPackage ../development/python-modules/flask-paginate { };
 
-  cheroot = callPackage ../development/python-modules/cheroot {};
+  flask_principal = callPackage ../development/python-modules/flask-principal { };
 
-  chevron = callPackage ../development/python-modules/chevron {};
+  flask-pymongo = callPackage ../development/python-modules/Flask-PyMongo { };
 
-  cli-helpers = callPackage ../development/python-modules/cli-helpers {};
+  flask-restful = callPackage ../development/python-modules/flask-restful { };
 
-  cmarkgfm = callPackage ../development/python-modules/cmarkgfm { };
+  flask-restplus = callPackage ../development/python-modules/flask-restplus { };
 
-  cirq = callPackage ../development/python-modules/cirq {
-    pythonProtobuf = self.protobuf;
-  };
+  flask-restx = callPackage ../development/python-modules/flask-restx { };
 
-  citeproc-py = callPackage ../development/python-modules/citeproc-py { };
+  flask-reverse-proxy-fix = callPackage ../development/python-modules/flask-reverse-proxy-fix { };
 
-  colorcet = callPackage ../development/python-modules/colorcet { };
+  flask_script = callPackage ../development/python-modules/flask-script { };
 
-  coloredlogs = callPackage ../development/python-modules/coloredlogs { };
+  flask-silk = callPackage ../development/python-modules/flask-silk { };
 
-  colorclass = callPackage ../development/python-modules/colorclass {};
+  flask-socketio = callPackage ../development/python-modules/flask-socketio { };
 
-  colorlog = callPackage ../development/python-modules/colorlog { };
+  flask-sockets = callPackage ../development/python-modules/flask-sockets { };
 
-  colorspacious = callPackage ../development/python-modules/colorspacious { };
+  flask_sqlalchemy = callPackage ../development/python-modules/flask-sqlalchemy { };
 
-  colour = callPackage ../development/python-modules/colour {};
+  flask-swagger = callPackage ../development/python-modules/flask-swagger { };
 
-  colormath = callPackage ../development/python-modules/colormath {};
+  flask-swagger-ui = callPackage ../development/python-modules/flask-swagger-ui { };
 
-  configshell = callPackage ../development/python-modules/configshell { };
+  flask_testing = callPackage ../development/python-modules/flask-testing { };
 
-  consonance = callPackage ../development/python-modules/consonance { };
+  flask-versioned = callPackage ../development/python-modules/flask-versioned { };
 
-  constantly = callPackage ../development/python-modules/constantly { };
+  flask_wtf = callPackage ../development/python-modules/flask-wtf { };
 
-  cornice = callPackage ../development/python-modules/cornice { };
+  flexmock = callPackage ../development/python-modules/flexmock { };
 
-  cram = callPackage ../development/python-modules/cram { };
+  flickrapi = callPackage ../development/python-modules/flickrapi { };
 
-  crc16 = callPackage ../development/python-modules/crc16 { };
+  flit = callPackage ../development/python-modules/flit { };
 
-  crccheck = callPackage ../development/python-modules/crccheck { };
+  flit-core = callPackage ../development/python-modules/flit-core { };
 
-  croniter = callPackage ../development/python-modules/croniter { };
+  flower = callPackage ../development/python-modules/flower { };
 
-  csscompressor = callPackage ../development/python-modules/csscompressor {};
+  flowlogs_reader = callPackage ../development/python-modules/flowlogs_reader { };
 
-  csvs-to-sqlite = callPackage ../development/python-modules/csvs-to-sqlite { };
+  fluent-logger = callPackage ../development/python-modules/fluent-logger { };
 
-  cufflinks = callPackage ../development/python-modules/cufflinks { };
+  flufl_bounce = callPackage ../development/python-modules/flufl/bounce.nix { };
 
-  cupy = callPackage ../development/python-modules/cupy {
-    cudatoolkit = pkgs.cudatoolkit_10_0;
-    cudnn = pkgs.cudnn_cudatoolkit_10_0;
-    nccl = pkgs.nccl_cudatoolkit_10;
-  };
+  flufl_i18n = callPackage ../development/python-modules/flufl/i18n.nix { };
 
-  cx_Freeze = callPackage ../development/python-modules/cx_freeze {};
+  flufl_lock = callPackage ../development/python-modules/flufl/lock.nix { };
 
-  cx_oracle = callPackage ../development/python-modules/cx_oracle {};
+  flup = callPackage ../development/python-modules/flup { };
 
-  cvxopt = callPackage ../development/python-modules/cvxopt { };
+  flux-led = callPackage ../development/python-modules/flux-led { };
 
-  cvxpy = callPackage ../development/python-modules/cvxpy { };
+  fn = callPackage ../development/python-modules/fn { };
 
-  cycler = callPackage ../development/python-modules/cycler { };
+  folium = callPackage ../development/python-modules/folium { };
 
-  cysignals = callPackage ../development/python-modules/cysignals { };
+  fontforge = disabledIf (!isPy3k) (toPythonModule (pkgs.fontforge.override {
+    withPython = true;
+    inherit python;
+  }));
 
-  cypari2 = callPackage ../development/python-modules/cypari2 { };
+  fontmath = callPackage ../development/python-modules/fontmath { };
 
-  dlib = callPackage ../development/python-modules/dlib {
-    inherit (pkgs) dlib;
-  };
+  fontparts = callPackage ../development/python-modules/fontparts { };
 
-  datadog = callPackage ../development/python-modules/datadog {};
+  fontpens = callPackage ../development/python-modules/fontpens { };
 
-  dataclasses = callPackage ../development/python-modules/dataclasses { };
+  fonttools = callPackage ../development/python-modules/fonttools { };
 
-  debian = callPackage ../development/python-modules/debian {};
+  foolscap = callPackage ../development/python-modules/foolscap { };
 
-  defusedxml = callPackage ../development/python-modules/defusedxml {};
+  forbiddenfruit = callPackage ../development/python-modules/forbiddenfruit { };
 
-  dodgy = callPackage ../development/python-modules/dodgy { };
+  FormEncode = callPackage ../development/python-modules/FormEncode { };
 
-  duecredit = callPackage ../development/python-modules/duecredit { };
+  foundationdb51 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb51; };
+  foundationdb52 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb52; };
+  foundationdb60 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb60; };
+  foundationdb61 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb61; };
 
-  dugong = callPackage ../development/python-modules/dugong {};
+  foxdot = callPackage ../development/python-modules/foxdot { };
 
-  easysnmp = callPackage ../development/python-modules/easysnmp {
-    openssl = pkgs.openssl;
-    net-snmp = pkgs.net-snmp;
-  };
+  fpdf = callPackage ../development/python-modules/fpdf { };
 
-  iowait = callPackage ../development/python-modules/iowait {};
+  fpylll = callPackage ../development/python-modules/fpylll { };
 
-  responses = callPackage ../development/python-modules/responses {};
+  freetype-py = callPackage ../development/python-modules/freetype-py { };
 
-  rarfile = callPackage ../development/python-modules/rarfile { inherit (pkgs) libarchive; };
+  freezegun = callPackage ../development/python-modules/freezegun { };
 
-  proboscis = callPackage ../development/python-modules/proboscis {};
+  fritzconnection = callPackage ../development/python-modules/fritzconnection { };
 
-  poster3 = callPackage ../development/python-modules/poster3 { };
+  frozendict = callPackage ../development/python-modules/frozendict { };
 
-  py4j = callPackage ../development/python-modules/py4j { };
+  fs = callPackage ../development/python-modules/fs { };
 
-  pyechonest = callPackage ../development/python-modules/pyechonest { };
+  fs-s3fs = callPackage ../development/python-modules/fs-s3fs { };
 
-  pyepsg = callPackage ../development/python-modules/pyepsg { };
+  fsspec = callPackage ../development/python-modules/fsspec { };
 
-  billiard = callPackage ../development/python-modules/billiard { };
+  ftfy = callPackage ../development/python-modules/ftfy { };
 
-  binaryornot = callPackage ../development/python-modules/binaryornot { };
+  ftputil = callPackage ../development/python-modules/ftputil { };
 
-  bitbucket_api = callPackage ../development/python-modules/bitbucket-api { };
+  fudge = callPackage ../development/python-modules/fudge { };
 
-  bitbucket-cli = callPackage ../development/python-modules/bitbucket-cli { };
+  funcparserlib = callPackage ../development/python-modules/funcparserlib { };
 
-  bitstring = callPackage ../development/python-modules/bitstring { };
+  funcsigs = callPackage ../development/python-modules/funcsigs { };
 
-  blaze = callPackage ../development/python-modules/blaze { };
+  functools32 = callPackage ../development/python-modules/functools32 { };
 
-  html5-parser = callPackage ../development/python-modules/html5-parser {
-    inherit (pkgs) pkgconfig;
-  };
+  funcy = callPackage ../development/python-modules/funcy { };
 
-  HTSeq = callPackage ../development/python-modules/HTSeq { };
+  furl = callPackage ../development/python-modules/furl { };
 
-  httpserver = callPackage ../development/python-modules/httpserver {};
+  fuse = callPackage ../development/python-modules/fuse-python { inherit (pkgs) fuse pkgconfig; };
 
-  bleach = callPackage ../development/python-modules/bleach { };
+  fusepy = callPackage ../development/python-modules/fusepy { };
 
-  bleak = callPackage ../development/python-modules/bleak { };
+  future = callPackage ../development/python-modules/future { };
 
-  blinker = callPackage ../development/python-modules/blinker { };
+  future-fstrings = callPackage ../development/python-modules/future-fstrings { };
 
-  blockdiag = callPackage ../development/python-modules/blockdiag { };
+  futures = callPackage ../development/python-modules/futures { };
 
-  blockdiagcontrib-cisco = callPackage ../development/python-modules/blockdiagcontrib-cisco { };
+  fuzzywuzzy = callPackage ../development/python-modules/fuzzywuzzy { };
 
-  bpython = callPackage ../development/python-modules/bpython {};
+  fx2 = callPackage ../development/python-modules/fx2 { };
 
-  bsddb3 = callPackage ../development/python-modules/bsddb3 { };
+  gaia = disabledIf (isPyPy || isPy3k) (toPythonModule (pkgs.gaia.override {
+    pythonPackages = self;
+    pythonSupport = true;
+  })); # gaia isn't supported with python3 and it's not available from pypi
 
-  bkcharts = callPackage ../development/python-modules/bkcharts { };
+  galario = toPythonModule (pkgs.galario.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  bokeh = callPackage ../development/python-modules/bokeh { };
+  gast = callPackage ../development/python-modules/gast { };
 
-  boto = callPackage ../development/python-modules/boto { };
+  gateone = callPackage ../development/python-modules/gateone { };
 
-  boto3 = callPackage ../development/python-modules/boto3 { };
+  gcovr = callPackage ../development/python-modules/gcovr { };
 
-  botocore = callPackage ../development/python-modules/botocore { };
+  gdal = toPythonModule (pkgs.gdal.override { pythonPackages = self; });
 
-  bottle = callPackage ../development/python-modules/bottle { };
+  gdata = callPackage ../development/python-modules/gdata { };
 
-  box2d = callPackage ../development/python-modules/box2d { };
+  gdcm = disabledIf isPy27 (toPythonModule (pkgs.gdcm.override {
+    inherit (self) python;
+    enablePython = true;
+  }));
 
-  branca = callPackage ../development/python-modules/branca { };
+  gdown = callPackage ../development/python-modules/gdown { };
 
-  bugwarrior = callPackage ../development/python-modules/bugwarrior { };
+  gdrivefs = callPackage ../development/python-modules/gdrivefs { };
 
-  bugz = callPackage ../development/python-modules/bugz { };
+  geant4 = disabledIf (!isPy3k) (toPythonModule (pkgs.geant4.override {
+    enablePython = true;
+    python3 = python;
+  }));
 
-  bugzilla = callPackage ../development/python-modules/bugzilla { };
+  geeknote = callPackage ../development/python-modules/geeknote { };
 
-  buildbot = callPackage ../development/python-modules/buildbot { };
-  buildbot-plugins = pkgs.recurseIntoAttrs (callPackage ../development/python-modules/buildbot/plugins.nix { });
-  buildbot-ui = self.buildbot.withPlugins (with self.buildbot-plugins; [ www ]);
-  buildbot-full = self.buildbot.withPlugins (with self.buildbot-plugins; [ www console-view waterfall-view grid-view wsgi-dashboards ]);
-  buildbot-worker = callPackage ../development/python-modules/buildbot/worker.nix { };
-  buildbot-pkg = callPackage ../development/python-modules/buildbot/pkg.nix { };
+  genanki = callPackage ../development/python-modules/genanki { };
 
-  check-manifest = callPackage ../development/python-modules/check-manifest { };
+  genpy = callPackage ../development/python-modules/genpy { };
 
-  devpi-common = callPackage ../development/python-modules/devpi-common { };
-  # A patched version of buildout, useful for buildout based development on Nix
-  zc_buildout_nix = callPackage ../development/python-modules/buildout-nix { };
+  genshi = callPackage ../development/python-modules/genshi { };
 
-  zc_buildout = self.zc_buildout221;
+  gensim = callPackage ../development/python-modules/gensim { };
 
-  zc_buildout221 = callPackage ../development/python-modules/buildout { };
+  gentools = callPackage ../development/python-modules/gentools { };
 
-  z3c-checkversions = callPackage ../development/python-modules/z3c-checkversions { };
+  genzshcomp = callPackage ../development/python-modules/genzshcomp { };
 
-  bunch = callPackage ../development/python-modules/bunch { };
+  geoalchemy2 = callPackage ../development/python-modules/geoalchemy2 { };
 
-  can = callPackage ../development/python-modules/can {};
+  geographiclib = callPackage ../development/python-modules/geographiclib { };
 
-  canopen = callPackage ../development/python-modules/canopen {};
+  geoip2 = callPackage ../development/python-modules/geoip2 { };
 
-  canmatrix = callPackage ../development/python-modules/canmatrix {};
+  GeoIP = callPackage ../development/python-modules/GeoIP { };
 
+  geojson = callPackage ../development/python-modules/geojson { };
 
-  cairocffi = if isPy3k then
-    callPackage ../development/python-modules/cairocffi {}
-  else
-    callPackage ../development/python-modules/cairocffi/0_9.nix {};
+  geopandas = callPackage ../development/python-modules/geopandas { };
 
-  cairosvg = if isPy3k then
-    callPackage ../development/python-modules/cairosvg {}
+  geopy = if isPy3k then
+    callPackage ../development/python-modules/geopy { }
   else
-    callPackage ../development/python-modules/cairosvg/1_x.nix {};
+    callPackage ../development/python-modules/geopy/2.nix { };
 
-  carrot = callPackage ../development/python-modules/carrot {};
+  getmac = callPackage ../development/python-modules/getmac { };
 
-  cartopy = callPackage ../development/python-modules/cartopy {};
+  gevent = callPackage ../development/python-modules/gevent { };
 
-  casbin = callPackage ../development/python-modules/casbin { };
+  geventhttpclient = callPackage ../development/python-modules/geventhttpclient { };
 
-  case = callPackage ../development/python-modules/case {};
+  gevent-socketio = callPackage ../development/python-modules/gevent-socketio { };
 
-  cbor = callPackage ../development/python-modules/cbor {};
+  gevent-websocket = callPackage ../development/python-modules/gevent-websocket { };
 
-  cbor2 = callPackage ../development/python-modules/cbor2 {};
+  gflags = callPackage ../development/python-modules/gflags { };
 
-  cassandra-driver = callPackage ../development/python-modules/cassandra-driver { };
+  ghdiff = callPackage ../development/python-modules/ghdiff { };
 
-  cccolutils = callPackage ../development/python-modules/cccolutils {};
+  gidgethub = callPackage ../development/python-modules/gidgethub { };
 
-  cchardet = callPackage ../development/python-modules/cchardet { };
+  gin-config = callPackage ../development/python-modules/gin-config { };
 
-  CDDB = callPackage ../development/python-modules/cddb { };
+  gipc = callPackage ../development/python-modules/gipc { };
 
-  cntk = callPackage ../development/python-modules/cntk { };
+  git-annex-adapter =
+    callPackage ../development/python-modules/git-annex-adapter { inherit (pkgs.gitAndTools) git-annex; };
 
-  celery = callPackage ../development/python-modules/celery { };
+  gitdb2 = throw "gitdb2 has been deprecated, use gitdb instead."; # added 2020-03-14
 
-  cerberus = callPackage ../development/python-modules/cerberus { };
+  gitdb = callPackage ../development/python-modules/gitdb { };
 
-  certifi = callPackage ../development/python-modules/certifi { };
+  github3_py = callPackage ../development/python-modules/github3_py { };
 
-  certipy = callPackage ../development/python-modules/certipy {};
+  github-webhook = callPackage ../development/python-modules/github-webhook { };
 
-  characteristic = callPackage ../development/python-modules/characteristic { };
+  GitPython = callPackage ../development/python-modules/GitPython { };
 
-  chart-studio = callPackage ../development/python-modules/chart-studio { };
+  git-revise = callPackage ../development/python-modules/git-revise { };
 
-  cheetah = callPackage ../development/python-modules/cheetah { };
+  git-sweep = callPackage ../development/python-modules/git-sweep { };
 
-  cherrypy = if isPy3k then
-    callPackage ../development/python-modules/cherrypy { }
-  else
-    callPackage ../development/python-modules/cherrypy/17.nix { };
+  glances = throw "glances has moved to pkgs.glances"; # added 2020-20-28
 
-  cfgv = callPackage ../development/python-modules/cfgv { };
+  glasgow = callPackage ../development/python-modules/glasgow { };
 
-  cfn-lint = callPackage ../development/python-modules/cfn-lint { };
+  glob2 = callPackage ../development/python-modules/glob2 { };
 
-  cftime = callPackage ../development/python-modules/cftime {};
+  globre = callPackage ../development/python-modules/globre { };
 
-  cjson = callPackage ../development/python-modules/cjson { };
+  globus-sdk = callPackage ../development/python-modules/globus-sdk { };
 
-  cld2-cffi = callPackage ../development/python-modules/cld2-cffi {};
+  glom = callPackage ../development/python-modules/glom { };
 
-  clf = callPackage ../development/python-modules/clf {};
+  glymur = callPackage ../development/python-modules/glymur { };
 
-  click = callPackage ../development/python-modules/click {};
+  gmpy2 = callPackage ../development/python-modules/gmpy2 { };
 
-  click-completion = callPackage ../development/python-modules/click-completion {};
+  gmpy = callPackage ../development/python-modules/gmpy { };
 
-  click-default-group = callPackage ../development/python-modules/click-default-group { };
+  gmusicapi = callPackage ../development/python-modules/gmusicapi { };
 
-  click-didyoumean = callPackage ../development/python-modules/click-didyoumean {};
+  gnureadline = callPackage ../development/python-modules/gnureadline { };
 
-  click-log = callPackage ../development/python-modules/click-log {};
+  gnutls = callPackage ../development/python-modules/gnutls { };
 
-  click-plugins = callPackage ../development/python-modules/click-plugins {};
+  goobook = callPackage ../development/python-modules/goobook { };
 
-  click-repl = callPackage ../development/python-modules/click-repl { };
+  goocalendar = callPackage ../development/python-modules/goocalendar { };
 
-  click-threading = callPackage ../development/python-modules/click-threading {};
+  google_api_core = callPackage ../development/python-modules/google_api_core { };
 
-  cligj = callPackage ../development/python-modules/cligj { };
+  google_api_python_client =
+    let google_api_python_client = callPackage ../development/python-modules/google-api-python-client { };
+    in if isPy3k then
+      google_api_python_client
+    else # Python 2.7 support was deprecated but is still needed by weboob and duplicity
+      google_api_python_client.overridePythonAttrs (old: rec {
+        version = "1.7.6";
+        src = old.src.override {
+          inherit version;
+          sha256 = "14w5sdrp0bk9n0r2lmpqmrbf2zclpfq6q7giyahnskkfzdkb165z";
+        };
+      });
 
-  closure-linter = callPackage ../development/python-modules/closure-linter { };
+  googleapis_common_protos = callPackage ../development/python-modules/googleapis_common_protos { };
 
-  cloudflare = callPackage ../development/python-modules/cloudflare { };
+  google_apputils = callPackage ../development/python-modules/google_apputils { };
 
-  cloudpickle = callPackage ../development/python-modules/cloudpickle { };
+  google_auth = callPackage ../development/python-modules/google_auth { };
 
-  cmdline = callPackage ../development/python-modules/cmdline { };
+  google-auth-httplib2 = callPackage ../development/python-modules/google-auth-httplib2 { };
 
-  codecov = callPackage ../development/python-modules/codecov {};
+  google-auth-oauthlib = callPackage ../development/python-modules/google-auth-oauthlib { };
 
-  cogapp = callPackage ../development/python-modules/cogapp {};
+  google_cloud_asset = callPackage ../development/python-modules/google_cloud_asset { };
 
-  colorama = callPackage ../development/python-modules/colorama { };
+  google_cloud_automl = callPackage ../development/python-modules/google_cloud_automl { };
 
-  colorlover = callPackage ../development/python-modules/colorlover { };
+  google_cloud_bigquery = callPackage ../development/python-modules/google_cloud_bigquery { };
 
-  CommonMark = callPackage ../development/python-modules/commonmark { };
+  google_cloud_bigquery_datatransfer = callPackage ../development/python-modules/google_cloud_bigquery_datatransfer { };
 
-  coilmq = callPackage ../development/python-modules/coilmq { };
+  google_cloud_bigtable = callPackage ../development/python-modules/google_cloud_bigtable { };
 
-  colander = callPackage ../development/python-modules/colander { };
+  google_cloud_container = callPackage ../development/python-modules/google_cloud_container { };
 
-  # Backported version of the ConfigParser library of Python 3.3
-  configparser = callPackage ../development/python-modules/configparser { };
+  google_cloud_core = callPackage ../development/python-modules/google_cloud_core { };
 
-  ColanderAlchemy = callPackage ../development/python-modules/colanderalchemy { };
+  google_cloud_dataproc = callPackage ../development/python-modules/google_cloud_dataproc { };
 
-  conda = callPackage ../development/python-modules/conda { };
+  google_cloud_datastore = callPackage ../development/python-modules/google_cloud_datastore { };
 
-  configobj = callPackage ../development/python-modules/configobj { };
+  google_cloud_dlp = callPackage ../development/python-modules/google_cloud_dlp { };
 
-  confluent-kafka = callPackage ../development/python-modules/confluent-kafka {};
+  google_cloud_dns = callPackage ../development/python-modules/google_cloud_dns { };
 
-  kafka-python = callPackage ../development/python-modules/kafka-python {};
+  google_cloud_error_reporting = callPackage ../development/python-modules/google_cloud_error_reporting { };
 
-  construct = callPackage ../development/python-modules/construct {};
+  google_cloud_firestore = callPackage ../development/python-modules/google_cloud_firestore { };
 
-  consul = callPackage ../development/python-modules/consul { };
+  google_cloud_iot = callPackage ../development/python-modules/google_cloud_iot { };
 
-  contexter = callPackage ../development/python-modules/contexter { };
+  google_cloud_kms = callPackage ../development/python-modules/google_cloud_kms { };
 
-  contextvars = callPackage ../development/python-modules/contextvars {};
+  google_cloud_language = callPackage ../development/python-modules/google_cloud_language { };
 
-  contextlib2 = callPackage ../development/python-modules/contextlib2 { };
+  google_cloud_logging = callPackage ../development/python-modules/google_cloud_logging { };
 
-  cookiecutter = callPackage ../development/python-modules/cookiecutter { };
+  google_cloud_monitoring = callPackage ../development/python-modules/google_cloud_monitoring { };
 
-  cookies = callPackage ../development/python-modules/cookies { };
+  google_cloud_pubsub = callPackage ../development/python-modules/google_cloud_pubsub { };
 
-  coreapi = callPackage ../development/python-modules/coreapi { };
+  google_cloud_redis = callPackage ../development/python-modules/google_cloud_redis { };
 
-  coreschema = callPackage ../development/python-modules/coreschema { };
+  google_cloud_resource_manager = callPackage ../development/python-modules/google_cloud_resource_manager { };
 
-  coveralls = callPackage ../development/python-modules/coveralls { };
+  google_cloud_runtimeconfig = callPackage ../development/python-modules/google_cloud_runtimeconfig { };
 
-  coverage = callPackage ../development/python-modules/coverage { };
+  google_cloud_secret_manager = callPackage ../development/python-modules/google_cloud_secret_manager { };
 
-  covCore = callPackage ../development/python-modules/cov-core { };
+  google_cloud_securitycenter = callPackage ../development/python-modules/google_cloud_securitycenter { };
 
-  crcmod = callPackage ../development/python-modules/crcmod { };
+  google_cloud_spanner = callPackage ../development/python-modules/google_cloud_spanner { };
 
-  credstash = callPackage ../development/python-modules/credstash { };
+  google_cloud_speech = callPackage ../development/python-modules/google_cloud_speech { };
 
-  cython = callPackage ../development/python-modules/Cython { };
+  google_cloud_storage = callPackage ../development/python-modules/google_cloud_storage { };
 
-  cytoolz = callPackage ../development/python-modules/cytoolz { };
+  google_cloud_tasks = callPackage ../development/python-modules/google_cloud_tasks { };
 
-  cryptacular = callPackage ../development/python-modules/cryptacular { };
+  google_cloud_testutils = callPackage ../development/python-modules/google_cloud_testutils { };
 
-  cryptography = callPackage ../development/python-modules/cryptography { };
+  google_cloud_texttospeech = callPackage ../development/python-modules/google_cloud_texttospeech { };
 
-  cryptography_vectors = callPackage ../development/python-modules/cryptography/vectors.nix { };
+  google_cloud_trace = callPackage ../development/python-modules/google_cloud_trace { };
 
-  curtsies = callPackage ../development/python-modules/curtsies { };
+  google_cloud_translate = callPackage ../development/python-modules/google_cloud_translate { };
 
-  envs = callPackage ../development/python-modules/envs { };
+  google_cloud_videointelligence = callPackage ../development/python-modules/google_cloud_videointelligence { };
 
-  etelemetry = callPackage ../development/python-modules/etelemetry { };
+  google_cloud_vision = callPackage ../development/python-modules/google_cloud_vision { };
 
-  eth-hash = callPackage ../development/python-modules/eth-hash { };
+  google_cloud_websecurityscanner = callPackage ../development/python-modules/google_cloud_websecurityscanner { };
 
-  eth-typing = callPackage ../development/python-modules/eth-typing { };
+  google-compute-engine = callPackage ../tools/virtualization/google-compute-engine { };
 
-  eth-utils = callPackage ../development/python-modules/eth-utils { };
+  google-crc32c = callPackage ../development/python-modules/google-crc32c {
+    inherit (pkgs) crc32c;
+  };
 
-  gwyddion = disabledIf isPy3k (toPythonModule (pkgs.gwyddion.override {
-    pythonSupport = true;
-    pythonPackages = self;
-  }));
+  google-i18n-address = callPackage ../development/python-modules/google-i18n-address { };
 
-  impacket = callPackage ../development/python-modules/impacket { };
+  google-music = callPackage ../development/python-modules/google-music { };
 
-  jsonlines = callPackage ../development/python-modules/jsonlines { };
+  google-music-proto = callPackage ../development/python-modules/google-music-proto { };
 
-  json-merge-patch = callPackage ../development/python-modules/json-merge-patch { };
+  google-music-utils = callPackage ../development/python-modules/google-music-utils { };
 
-  jsonrpc-async = callPackage ../development/python-modules/jsonrpc-async { };
+  google-pasta = callPackage ../development/python-modules/google-pasta { };
 
-  jsonrpc-base = callPackage ../development/python-modules/jsonrpc-base { };
+  google_resumable_media = callPackage ../development/python-modules/google_resumable_media { };
 
-  jsonrpc-websocket = callPackage ../development/python-modules/jsonrpc-websocket { };
+  googletrans = callPackage ../development/python-modules/googletrans { };
 
-  hepmc3 = toPythonModule (pkgs.hepmc3.override {
+  gorilla = callPackage ../development/python-modules/gorilla { };
+
+  gpapi = callPackage ../development/python-modules/gpapi { };
+  gplaycli = callPackage ../development/python-modules/gplaycli { };
+
+  gpgme = toPythonModule (pkgs.gpgme.override {
+    pythonSupport = true;
     inherit python;
   });
 
-  onkyo-eiscp = callPackage ../development/python-modules/onkyo-eiscp { };
+  gphoto2 = callPackage ../development/python-modules/gphoto2 { inherit (pkgs) pkgconfig; };
 
-  tablib = callPackage ../development/python-modules/tablib { };
+  gprof2dot = callPackage ../development/python-modules/gprof2dot { inherit (pkgs) graphviz; };
 
-  wakeonlan = callPackage ../development/python-modules/wakeonlan { };
+  gpsoauth = callPackage ../development/python-modules/gpsoauth { };
 
-  openant = callPackage ../development/python-modules/openant { };
+  gpxpy = callPackage ../development/python-modules/gpxpy { };
 
-  opencv = disabledIf isPy3k (toPythonModule (pkgs.opencv.override {
+  gpy = callPackage ../development/python-modules/gpy { };
+
+  gpyopt = callPackage ../development/python-modules/gpyopt { };
+
+  grammalecte = callPackage ../development/python-modules/grammalecte { };
+
+  grandalf = callPackage ../development/python-modules/grandalf { };
+
+  graphite_api = callPackage ../development/python-modules/graphite-api { };
+
+  graphite_beacon = callPackage ../development/python-modules/graphite_beacon { };
+
+  graphite-web = callPackage ../development/python-modules/graphite-web { };
+
+  graph_nets = callPackage ../development/python-modules/graph_nets { };
+
+  graphql-core = callPackage ../development/python-modules/graphql-core { };
+
+  graphql-server-core = callPackage ../development/python-modules/graphql-server-core { };
+
+  graph-tool = callPackage ../development/python-modules/graph-tool/2.x.x.nix { inherit (pkgs) pkg-config; };
+
+  graphviz = callPackage ../development/python-modules/graphviz { inherit (pkgs) graphviz; };
+
+  grappelli_safe = callPackage ../development/python-modules/grappelli_safe { };
+
+  graspy = callPackage ../development/python-modules/graspy { };
+
+  greatfet = callPackage ../development/python-modules/greatfet { };
+
+  green = callPackage ../development/python-modules/green { };
+
+  greenlet = callPackage ../development/python-modules/greenlet { };
+
+  grequests = callPackage ../development/python-modules/grequests { };
+
+  grib-api = disabledIf (!isPy27) (toPythonModule (pkgs.grib-api.override {
     enablePython = true;
     pythonPackages = self;
   }));
 
-  opencv3 = toPythonModule (pkgs.opencv3.override {
-    enablePython = true;
-    pythonPackages = self;
-  });
+  grip = callPackage ../development/python-modules/grip { };
 
-  opencv4 = toPythonModule (pkgs.opencv4.override {
-    enablePython = true;
+  grpc_google_iam_v1 = callPackage ../development/python-modules/grpc_google_iam_v1 { };
+
+  grpcio = callPackage ../development/python-modules/grpcio { };
+
+  grpcio-gcp = callPackage ../development/python-modules/grpcio-gcp { };
+
+  grpcio-tools = callPackage ../development/python-modules/grpcio-tools { };
+
+  gsd = if isPy27 then
+    callPackage ../development/python-modules/gsd/1.7.nix { }
+  else
+    callPackage ../development/python-modules/gsd { };
+
+  gspread = callPackage ../development/python-modules/gspread { };
+
+  gssapi = callPackage ../development/python-modules/gssapi { inherit (pkgs) darwin krb5Full; };
+
+  gst-python = callPackage ../development/python-modules/gst-python {
+    inherit (pkgs) meson pkgconfig;
+    gst-plugins-base = pkgs.gst_all_1.gst-plugins-base;
+  };
+
+  gtimelog = callPackage ../development/python-modules/gtimelog { };
+
+  gtts = callPackage ../development/python-modules/gtts { };
+
+  gtts-token = callPackage ../development/python-modules/gtts-token { };
+
+  guessit = callPackage ../development/python-modules/guessit { };
+
+  guestfs = callPackage ../development/python-modules/guestfs { };
+
+  gumath = callPackage ../development/python-modules/gumath { };
+
+  gunicorn = if isPy27 then
+    callPackage ../development/python-modules/gunicorn/19.nix { }
+  else
+    callPackage ../development/python-modules/gunicorn { };
+
+  gurobipy = if stdenv.hostPlatform.system == "x86_64-darwin" then
+    callPackage ../development/python-modules/gurobipy/darwin.nix { inherit (pkgs.darwin) cctools insert_dylib; }
+  else if stdenv.hostPlatform.system == "x86_64-linux" then
+    callPackage ../development/python-modules/gurobipy/linux.nix { }
+  else
+    throw "gurobipy not yet supported on ${stdenv.hostPlatform.system}";
+
+  guzzle_sphinx_theme = callPackage ../development/python-modules/guzzle_sphinx_theme { };
+
+  gwyddion = disabledIf isPy3k (toPythonModule (pkgs.gwyddion.override {
+    pythonSupport = true;
     pythonPackages = self;
-  });
+  }));
 
-  opentracing = callPackage ../development/python-modules/opentracing { };
+  gym = callPackage ../development/python-modules/gym { };
 
-  openidc-client = callPackage ../development/python-modules/openidc-client {};
+  gyp = callPackage ../development/python-modules/gyp { };
 
-  optuna = callPackage ../development/python-modules/optuna { };
+  h11 = callPackage ../development/python-modules/h11 { };
 
-  idna = callPackage ../development/python-modules/idna { };
+  h2 = callPackage ../development/python-modules/h2 { };
 
-  mahotas = callPackage ../development/python-modules/mahotas { };
+  h3 = callPackage ../development/python-modules/h3 { inherit (pkgs) h3; };
 
-  MDP = callPackage ../development/python-modules/mdp {};
+  h5netcdf = callPackage ../development/python-modules/h5netcdf { };
 
-  minidb = callPackage ../development/python-modules/minidb { };
+  h5py = callPackage ../development/python-modules/h5py { hdf5 = pkgs.hdf5; };
 
-  miniupnpc = callPackage ../development/python-modules/miniupnpc {};
+  h5py-mpi = self.h5py.override { hdf5 = pkgs.hdf5-mpi; };
 
-  mixpanel = callPackage ../development/python-modules/mixpanel { };
+  habanero = callPackage ../development/python-modules/habanero { };
 
-  mpyq = callPackage ../development/python-modules/mpyq { };
+  ha-ffmpeg = callPackage ../development/python-modules/ha-ffmpeg { };
 
-  mxnet = callPackage ../development/python-modules/mxnet { };
+  handout = callPackage ../development/python-modules/handout { };
 
-  parsy = callPackage ../development/python-modules/parsy { };
+  HAP-python = callPackage ../development/python-modules/HAP-python { };
 
-  portalocker = callPackage ../development/python-modules/portalocker { };
+  hass-nabucasa = callPackage ../development/python-modules/hass-nabucasa { };
 
-  portpicker = callPackage ../development/python-modules/portpicker { };
+  hawkauthlib = callPackage ../development/python-modules/hawkauthlib { };
 
-  pkginfo = callPackage ../development/python-modules/pkginfo { };
+  hbmqtt = callPackage ../development/python-modules/hbmqtt { };
 
-  pre-commit = callPackage ../development/python-modules/pre-commit { };
+  hcloud = callPackage ../development/python-modules/hcloud { };
 
-  pretend = callPackage ../development/python-modules/pretend { };
+  hcs_utils = callPackage ../development/python-modules/hcs_utils { };
 
-  detox = callPackage ../development/python-modules/detox { };
+  hdbscan = callPackage ../development/python-modules/hdbscan { };
 
-  pbkdf2 = callPackage ../development/python-modules/pbkdf2 { };
+  hdlparse = callPackage ../development/python-modules/hdlparse { };
 
-  bcrypt = callPackage ../development/python-modules/bcrypt { };
+  hdmedians = callPackage ../development/python-modules/hdmedians { };
 
-  cffi = callPackage ../development/python-modules/cffi { };
+  heapdict = callPackage ../development/python-modules/heapdict { };
 
-  pyavm = callPackage ../development/python-modules/pyavm { };
+  helpdev = callPackage ../development/python-modules/helpdev { };
 
-  pycollada = callPackage ../development/python-modules/pycollada { };
+  helper = callPackage ../development/python-modules/helper { };
 
-  pycontracts = callPackage ../development/python-modules/pycontracts { };
+  hepmc3 = toPythonModule (pkgs.hepmc3.override { inherit python; });
 
-  pycparser = callPackage ../development/python-modules/pycparser { };
+  hetzner = callPackage ../development/python-modules/hetzner { };
 
-  pydub = callPackage ../development/python-modules/pydub {};
+  heudiconv = callPackage ../development/python-modules/heudiconv { };
 
-  pyjade = callPackage ../development/python-modules/pyjade {};
+  hg-evolve = callPackage ../development/python-modules/hg-evolve { };
 
-  pyjet = callPackage ../development/python-modules/pyjet {};
+  hg-git = callPackage ../development/python-modules/hg-git { };
 
-  pyjks = callPackage ../development/python-modules/pyjks {};
+  hglib = callPackage ../development/python-modules/hglib { };
 
-  PyLD = callPackage ../development/python-modules/PyLD { };
+  hgsvn = callPackage ../development/python-modules/hgsvn { };
 
-  python-jose = callPackage ../development/python-modules/python-jose {};
+  hickle = callPackage ../development/python-modules/hickle { };
 
-  python-json-logger = callPackage ../development/python-modules/python-json-logger { };
+  hidapi = callPackage ../development/python-modules/hidapi { inherit (pkgs) udev libusb1; };
 
-  python-ly = callPackage ../development/python-modules/python-ly {};
+  hieroglyph = callPackage ../development/python-modules/hieroglyph { };
 
-  pyhcl = callPackage ../development/python-modules/pyhcl { };
+  hiredis = callPackage ../development/python-modules/hiredis { };
 
-  pytest = if isPy3k then self.pytest_5 else self.pytest_4;
+  hiro = callPackage ../development/python-modules/hiro { };
 
-  pytest_5 = callPackage ../development/python-modules/pytest {
-    # hypothesis tests require pytest that causes dependency cycle
-    hypothesis = self.hypothesis.override { doCheck = false; };
-  };
+  hiyapyco = callPackage ../development/python-modules/hiyapyco { };
 
-  pytest_4 = callPackage ../development/python-modules/pytest/4.nix {
-    # hypothesis tests require pytest that causes dependency cycle
-    hypothesis = self.hypothesis.override { doCheck = false; };
-  };
+  hkdf = callPackage ../development/python-modules/hkdf { };
 
-  pytest-helpers-namespace = callPackage ../development/python-modules/pytest-helpers-namespace { };
+  hmmlearn = callPackage ../development/python-modules/hmmlearn { };
 
-  pytest-httpbin = callPackage ../development/python-modules/pytest-httpbin { };
+  hocr-tools = callPackage ../development/python-modules/hocr-tools { };
 
-  pytest-asyncio = callPackage ../development/python-modules/pytest-asyncio { };
+  holidays = callPackage ../development/python-modules/holidays { };
 
-  pytest-annotate = callPackage ../development/python-modules/pytest-annotate { };
+  holoviews = callPackage ../development/python-modules/holoviews { };
 
-  pytest-ansible = callPackage ../development/python-modules/pytest-ansible { };
+  homeassistant-pyozw = callPackage ../development/python-modules/homeassistant-pyozw { };
 
-  pytest-aiohttp = callPackage ../development/python-modules/pytest-aiohttp { };
+  hoomd-blue = toPythonModule (callPackage ../development/python-modules/hoomd-blue { inherit python; });
 
-  pytest-arraydiff = callPackage ../development/python-modules/pytest-arraydiff { };
+  hopcroftkarp = callPackage ../development/python-modules/hopcroftkarp { };
 
-  pytest-astropy = callPackage ../development/python-modules/pytest-astropy { };
+  howdoi = callPackage ../development/python-modules/howdoi { };
 
-  pytest-benchmark = callPackage ../development/python-modules/pytest-benchmark { };
+  hpack = callPackage ../development/python-modules/hpack { };
 
-  pytestcache = callPackage ../development/python-modules/pytestcache { };
+  hsaudiotag3k = callPackage ../development/python-modules/hsaudiotag3k { };
 
-  pytest-catchlog = callPackage ../development/python-modules/pytest-catchlog { };
+  hsaudiotag = callPackage ../development/python-modules/hsaudiotag { };
 
-  pytest-cram = callPackage ../development/python-modules/pytest-cram { };
+  hstspreload = callPackage ../development/python-modules/hstspreload { };
 
-  pytest-datadir = callPackage ../development/python-modules/pytest-datadir { };
+  html2text = if isPy3k then
+    callPackage ../development/python-modules/html2text { }
+  else
+    callPackage ../development/python-modules/html2text/2018.nix { };
 
-  pytest-datafiles = callPackage ../development/python-modules/pytest-datafiles { };
+  html5lib = callPackage ../development/python-modules/html5lib { };
 
-  pytest-dependency = callPackage ../development/python-modules/pytest-dependency { };
+  html5-parser = callPackage ../development/python-modules/html5-parser { inherit (pkgs) pkgconfig; };
 
-  pytest-django = callPackage ../development/python-modules/pytest-django { };
+  htmllaundry = callPackage ../development/python-modules/htmllaundry { };
 
-  pytest-doctestplus = callPackage ../development/python-modules/pytest-doctestplus { };
+  htmlmin = callPackage ../development/python-modules/htmlmin { };
 
-  pytest-fixture-config = callPackage ../development/python-modules/pytest-fixture-config { };
+  html-sanitizer = callPackage ../development/python-modules/html-sanitizer { };
 
-  pytest-forked = callPackage ../development/python-modules/pytest-forked { };
+  htmltreediff = callPackage ../development/python-modules/htmltreediff { };
 
-  pytest-html = callPackage ../development/python-modules/pytest-html { };
+  HTSeq = callPackage ../development/python-modules/HTSeq { };
 
-  pytest-metadata = callPackage ../development/python-modules/pytest-metadata { };
+  httmock = callPackage ../development/python-modules/httmock { };
 
-  pytest-rerunfailures = callPackage ../development/python-modules/pytest-rerunfailures { };
+  httpauth = callPackage ../development/python-modules/httpauth { };
 
-  pytest-relaxed = callPackage ../development/python-modules/pytest-relaxed { };
+  httpbin = callPackage ../development/python-modules/httpbin { };
 
-  pytest-remotedata = callPackage ../development/python-modules/pytest-remotedata { };
+  httpcore = callPackage ../development/python-modules/httpcore { };
 
-  pytest-sanic = callPackage ../development/python-modules/pytest-sanic { };
+  http-ece = callPackage ../development/python-modules/http-ece { };
 
-  pytest-flake8 = callPackage ../development/python-modules/pytest-flake8 { };
+  httplib2 = callPackage ../development/python-modules/httplib2 { };
 
-  pytest-flakes = callPackage ../development/python-modules/pytest-flakes { };
+  http-parser = callPackage ../development/python-modules/http-parser { };
 
-  pytest-isort = callPackage ../development/python-modules/pytest-isort { };
+  httpretty = if isPy3k then
+    callPackage ../development/python-modules/httpretty { }
+  else
+    callPackage ../development/python-modules/httpretty/0.nix { };
 
-  pytest-lazy-fixture = callPackage ../development/python-modules/pytest-lazy-fixture { };
+  httpserver = callPackage ../development/python-modules/httpserver { };
 
-  pytest-mpl = callPackage ../development/python-modules/pytest-mpl { };
+  httpsig = callPackage ../development/python-modules/httpsig { };
 
-  pytest-mock = callPackage ../development/python-modules/pytest-mock { };
+  http_signature = callPackage ../development/python-modules/http_signature { };
 
-  pytest-openfiles = callPackage ../development/python-modules/pytest-openfiles { };
+  httptools = callPackage ../development/python-modules/httptools { };
 
-  pytest-timeout = callPackage ../development/python-modules/pytest-timeout { };
+  httpx = callPackage ../development/python-modules/httpx { };
 
-  pytest-warnings = callPackage ../development/python-modules/pytest-warnings { };
+  huey = callPackage ../development/python-modules/huey { };
 
-  pytest-watch = callPackage ../development/python-modules/pytest-watch { };
+  hug = callPackage ../development/python-modules/hug { };
 
-  pytestpep8 = callPackage ../development/python-modules/pytest-pep8 { };
+  humanfriendly = callPackage ../development/python-modules/humanfriendly { };
 
-  pytest-pep257 = callPackage ../development/python-modules/pytest-pep257 { };
+  humanize = callPackage ../development/python-modules/humanize { };
 
-  pytest-raisesregexp = callPackage ../development/python-modules/pytest-raisesregexp { };
+  hupper = callPackage ../development/python-modules/hupper { };
 
-  pytest-random-order = callPackage ../development/python-modules/pytest-random-order { };
+  hvac = callPackage ../development/python-modules/hvac { };
 
-  pytest-repeat = callPackage ../development/python-modules/pytest-repeat { };
+  hvplot = callPackage ../development/python-modules/hvplot { };
 
-  pytestrunner = callPackage ../development/python-modules/pytestrunner { };
+  hwi = callPackage ../development/python-modules/hwi { };
 
-  pytestquickcheck = callPackage ../development/python-modules/pytest-quickcheck { };
+  hydra = callPackage ../development/python-modules/hydra { };
 
-  pytest-server-fixtures = callPackage ../development/python-modules/pytest-server-fixtures { };
+  hydra-check = callPackage ../development/python-modules/hydra-check { };
 
-  pytest-services = callPackage ../development/python-modules/pytest-services { };
+  hypchat = callPackage ../development/python-modules/hypchat { };
 
-  pytest-shutil = callPackage ../development/python-modules/pytest-shutil { };
+  hyperframe = callPackage ../development/python-modules/hyperframe { };
 
-  pytest-socket = callPackage ../development/python-modules/pytest-socket { };
+  hyperkitty = callPackage ../servers/mail/mailman/hyperkitty.nix { };
 
-  pytestcov = callPackage ../development/python-modules/pytest-cov { };
+  hyperlink = callPackage ../development/python-modules/hyperlink { };
 
-  pytest-expect = callPackage ../development/python-modules/pytest-expect { };
+  hypothesis_4 = callPackage ../development/python-modules/hypothesis/2.nix
+    { }; # File name is called 2.nix because this one will need to remain for Python 2.
 
-  pytest-virtualenv = callPackage ../development/python-modules/pytest-virtualenv { };
+  hypothesis-auto = callPackage ../development/python-modules/hypothesis-auto { };
 
-  pytest_xdist = callPackage ../development/python-modules/pytest-xdist { };
+  hypothesis = if isPy3k then callPackage ../development/python-modules/hypothesis { } else self.hypothesis_4;
 
-  pytest-localserver = callPackage ../development/python-modules/pytest-localserver { };
+  hyppo = callPackage ../development/python-modules/hyppo { };
 
-  pytest-subtesthack = callPackage ../development/python-modules/pytest-subtesthack { };
+  i3ipc = callPackage ../development/python-modules/i3ipc { };
 
-  pytest-sugar = callPackage ../development/python-modules/pytest-sugar { };
+  i3-py = callPackage ../development/python-modules/i3-py { };
 
-  tinycss = callPackage ../development/python-modules/tinycss { };
+  iapws = callPackage ../development/python-modules/iapws { };
 
-  tinycss2 = callPackage ../development/python-modules/tinycss2 { };
+  ibis = callPackage ../development/python-modules/ibis { };
 
-  cssselect = callPackage ../development/python-modules/cssselect { };
+  ibis-framework = callPackage ../development/python-modules/ibis-framework { };
 
-  cssselect2 = callPackage ../development/python-modules/cssselect2 { };
+  icalendar = callPackage ../development/python-modules/icalendar { };
 
-  cssutils = callPackage ../development/python-modules/cssutils { };
+  icecream = callPackage ../development/python-modules/icecream { };
 
-  css-parser = callPackage ../development/python-modules/css-parser { };
+  ics = callPackage ../development/python-modules/ics { };
 
-  darcsver = callPackage ../development/python-modules/darcsver { };
+  identify = callPackage ../development/python-modules/identify { };
 
-  dask = callPackage ../development/python-modules/dask { };
+  idna = callPackage ../development/python-modules/idna { };
 
-  dask-glm = callPackage ../development/python-modules/dask-glm { };
+  idna-ssl = callPackage ../development/python-modules/idna-ssl { };
 
-  dask-image = callPackage ../development/python-modules/dask-image { };
+  ifaddr = callPackage ../development/python-modules/ifaddr { };
 
-  dask-jobqueue = callPackage ../development/python-modules/dask-jobqueue { };
+  ifconfig-parser = callPackage ../development/python-modules/ifconfig-parser { };
 
-  dask-ml = callPackage ../development/python-modules/dask-ml { };
+  ignite = callPackage ../development/python-modules/ignite { };
 
-  dask-mpi = callPackage ../development/python-modules/dask-mpi { };
+  ihatemoney = callPackage ../development/python-modules/ihatemoney { };
 
-  dask-xgboost = callPackage ../development/python-modules/dask-xgboost { };
+  ijson = callPackage ../development/python-modules/ijson { };
 
-  datrie = callPackage ../development/python-modules/datrie { };
+  imagecodecs-lite = disabledIf (!isPy3k) (callPackage ../development/python-modules/imagecodecs-lite { });
 
-  heapdict = callPackage ../development/python-modules/heapdict { };
+  imagecorruptions = callPackage ../development/python-modules/imagecorruptions { };
 
-  zict = callPackage ../development/python-modules/zict { };
+  imageio = callPackage ../development/python-modules/imageio { };
 
-  zigpy = callPackage ../development/python-modules/zigpy { };
+  imageio-ffmpeg = callPackage ../development/python-modules/imageio-ffmpeg { };
 
-  zigpy-deconz = callPackage ../development/python-modules/zigpy-deconz { };
+  image-match = callPackage ../development/python-modules/image-match { };
 
-  digital-ocean = callPackage ../development/python-modules/digitalocean { };
+  imagesize = callPackage ../development/python-modules/imagesize { };
 
-  digi-xbee = callPackage ../development/python-modules/digi-xbee { };
+  IMAPClient = callPackage ../development/python-modules/imapclient { };
 
-  leather = callPackage ../development/python-modules/leather { };
+  imaplib2 = callPackage ../development/python-modules/imaplib2 { };
 
-  libais = callPackage ../development/python-modules/libais { };
+  imbalanced-learn = if isPy27 then
+    callPackage ../development/python-modules/imbalanced-learn/0.4.nix { }
+  else
+    callPackage ../development/python-modules/imbalanced-learn { };
 
-  libevdev = callPackage ../development/python-modules/libevdev { };
+  img2pdf = callPackage ../development/python-modules/img2pdf { };
 
-  libfdt = toPythonModule (pkgs.dtc.override {
-    inherit python;
-    pythonSupport = true;
-  });
+  imgaug = callPackage ../development/python-modules/imgaug { };
 
-  libtmux = callPackage ../development/python-modules/libtmux { };
+  imgsize = callPackage ../development/python-modules/imgsize { };
 
-  libusb1 = callPackage ../development/python-modules/libusb1 { inherit (pkgs) libusb1; };
+  immutables = callPackage ../development/python-modules/immutables { };
 
-  linuxfd = callPackage ../development/python-modules/linuxfd { };
+  impacket = callPackage ../development/python-modules/impacket { };
 
-  locket = callPackage ../development/python-modules/locket { };
+  importlib-metadata = callPackage ../development/python-modules/importlib-metadata { };
 
-  loo-py = callPackage ../development/python-modules/loo-py { };
+  importlib-resources = callPackage ../development/python-modules/importlib-resources { };
 
-  tblib = callPackage ../development/python-modules/tblib { };
+  importmagic = callPackage ../development/python-modules/importmagic { };
 
-  s3fs = callPackage ../development/python-modules/s3fs { };
+  imread =
+    callPackage ../development/python-modules/imread { inherit (pkgs) pkgconfig libjpeg libpng libtiff libwebp; };
 
-  datashape = callPackage ../development/python-modules/datashape { };
+  imutils = callPackage ../development/python-modules/imutils { };
 
-  requests-cache = callPackage ../development/python-modules/requests-cache { };
+  incremental = callPackage ../development/python-modules/incremental { };
 
-  requests-file = callPackage ../development/python-modules/requests-file { };
+  inflect = callPackage ../development/python-modules/inflect { };
 
-  requests-kerberos = callPackage ../development/python-modules/requests-kerberos { };
+  inflection = callPackage ../development/python-modules/inflection { };
 
-  requests-unixsocket = callPackage ../development/python-modules/requests-unixsocket {};
+  influxdb = callPackage ../development/python-modules/influxdb { };
 
-  requests-aws4auth = callPackage ../development/python-modules/requests-aws4auth { };
+  influxdb-client = callPackage ../development/python-modules/influxdb-client { };
 
-  howdoi = callPackage ../development/python-modules/howdoi {};
+  influxgraph = callPackage ../development/python-modules/influxgraph { };
 
-  jdatetime = callPackage ../development/python-modules/jdatetime {};
+  infoqscraper = callPackage ../development/python-modules/infoqscraper { };
 
-  daphne = callPackage ../development/python-modules/daphne { };
+  iniconfig = callPackage ../development/python-modules/iniconfig { };
 
-  dash = callPackage ../development/python-modules/dash { };
+  inifile = callPackage ../development/python-modules/inifile { };
 
-  dash-core-components = callPackage ../development/python-modules/dash-core-components { };
+  iniparse = callPackage ../development/python-modules/iniparse { };
 
-  dash-html-components = callPackage ../development/python-modules/dash-html-components { };
+  inotify-simple = callPackage ../development/python-modules/inotify-simple { };
 
-  dash-renderer = callPackage ../development/python-modules/dash-renderer { };
+  inquirer = callPackage ../development/python-modules/inquirer { };
 
-  dash-table = callPackage ../development/python-modules/dash-table { };
+  intake = callPackage ../development/python-modules/intake { };
 
-  dateparser = callPackage ../development/python-modules/dateparser { };
+  intelhex = callPackage ../development/python-modules/intelhex { };
 
-  # Actual name of package
-  python-dateutil = callPackage ../development/python-modules/dateutil { };
-  # Alias that we should deprecate
-  dateutil = self.python-dateutil;
+  internetarchive = callPackage ../development/python-modules/internetarchive { };
 
-  decorator = callPackage ../development/python-modules/decorator { };
+  interruptingcow = callPackage ../development/python-modules/interruptingcow { };
 
-  deform = callPackage ../development/python-modules/deform { };
+  intervaltree = callPackage ../development/python-modules/intervaltree { };
 
-  demjson = callPackage ../development/python-modules/demjson { };
+  intreehooks = callPackage ../development/python-modules/intreehooks { };
 
-  deprecated = callPackage ../development/python-modules/deprecated { };
+  invoke = callPackage ../development/python-modules/invoke { };
 
-  deprecation = callPackage ../development/python-modules/deprecation { };
+  iocapture = callPackage ../development/python-modules/iocapture { };
 
-  derpconf = callPackage ../development/python-modules/derpconf { };
+  iowait = callPackage ../development/python-modules/iowait { };
 
-  deskcon = callPackage ../development/python-modules/deskcon { };
+  ipaddr = callPackage ../development/python-modules/ipaddr { };
 
-  dill = callPackage ../development/python-modules/dill { };
+  ipaddress = callPackage ../development/python-modules/ipaddress { };
 
-  discogs_client = callPackage ../development/python-modules/discogs_client { };
+  ipdb = callPackage ../development/python-modules/ipdb { };
 
-  dlx = callPackage ../development/python-modules/dlx { };
+  ipdbplugin = callPackage ../development/python-modules/ipdbplugin { };
 
-  dmenu-python = callPackage ../development/python-modules/dmenu { };
+  ipfsapi = callPackage ../development/python-modules/ipfsapi { };
 
-  dnslib = callPackage ../development/python-modules/dnslib { };
+  iptools = callPackage ../development/python-modules/iptools { };
 
-  dnspython = callPackage ../development/python-modules/dnspython { };
-  dns = self.dnspython; # Alias for compatibility, 2017-12-10
+  ipy = callPackage ../development/python-modules/IPy { };
 
-  docker = callPackage ../development/python-modules/docker {};
+  ipydatawidgets = callPackage ../development/python-modules/ipydatawidgets { };
 
-  dockerfile-parse = callPackage ../development/python-modules/dockerfile-parse {};
+  ipykernel = if pythonOlder "3.4" then
+    callPackage ../development/python-modules/ipykernel/4.nix { }
+  else
+    callPackage ../development/python-modules/ipykernel { };
 
-  docker-py = disabledIf isPy27 (callPackage ../development/python-modules/docker-py {});
+  ipympl = callPackage ../development/python-modules/ipympl { };
 
-  dockerpty = callPackage ../development/python-modules/dockerpty {};
+  ipyparallel = callPackage ../development/python-modules/ipyparallel { };
 
-  docker_pycreds = callPackage ../development/python-modules/docker-pycreds {};
+  ipython_genutils = callPackage ../development/python-modules/ipython_genutils { };
 
-  docloud = callPackage ../development/python-modules/docloud { };
+  ipython = if isPy27 then
+    callPackage ../development/python-modules/ipython/5.nix { }
+  else if isPy36 then
+    callPackage ../development/python-modules/ipython/7.16.nix { }
+  else
+    callPackage ../development/python-modules/ipython { };
 
-  docplex = callPackage ../development/python-modules/docplex { };
+  ipyvue = callPackage ../development/python-modules/ipyvue { };
 
-  docopt = callPackage ../development/python-modules/docopt { };
+  ipyvuetify = callPackage ../development/python-modules/ipyvuetify { };
 
-  doctest-ignore-unicode = callPackage ../development/python-modules/doctest-ignore-unicode { };
+  ipywidgets = callPackage ../development/python-modules/ipywidgets { };
 
-  dogpile_cache = callPackage ../development/python-modules/dogpile.cache { };
+  irc = callPackage ../development/python-modules/irc { };
 
-  dogpile_core = callPackage ../development/python-modules/dogpile.core { };
+  isbnlib = callPackage ../development/python-modules/isbnlib { };
 
-  dopy = callPackage ../development/python-modules/dopy { };
+  islpy = callPackage ../development/python-modules/islpy { };
 
-  dpath = callPackage ../development/python-modules/dpath { };
+  iso3166 = callPackage ../development/python-modules/iso3166 { };
 
-  dparse = callPackage ../development/python-modules/dparse { };
+  iso-639 = callPackage ../development/python-modules/iso-639 { };
 
-  dpkt = callPackage ../development/python-modules/dpkt {};
+  iso8601 = callPackage ../development/python-modules/iso8601 { };
 
-  urllib3 = callPackage ../development/python-modules/urllib3 {};
+  isodate = callPackage ../development/python-modules/isodate { };
 
-  varint =  callPackage ../development/python-modules/varint {};
+  isort = callPackage ../development/python-modules/isort { };
 
-  drf-yasg = callPackage ../development/python-modules/drf-yasg { };
+  isoweek = callPackage ../development/python-modules/isoweek { };
 
-  dropbox = callPackage ../development/python-modules/dropbox {};
+  itanium_demangler = callPackage ../development/python-modules/itanium_demangler { };
 
-  drms = callPackage ../development/python-modules/drms { };
+  itemadapter = callPackage ../development/python-modules/itemadapter { };
 
-  ds4drv = callPackage ../development/python-modules/ds4drv {
-    inherit (pkgs) fetchFromGitHub bluez;
-  };
+  itemloaders = callPackage ../development/python-modules/itemloaders { };
 
-  dyn = callPackage ../development/python-modules/dyn { };
+  iterm2 = callPackage ../development/python-modules/iterm2 { };
 
-  easydict = callPackage ../development/python-modules/easydict { };
+  itsdangerous = callPackage ../development/python-modules/itsdangerous { };
 
-  easygui = callPackage ../development/python-modules/easygui { };
+  itypes = callPackage ../development/python-modules/itypes { };
 
-  EasyProcess = callPackage ../development/python-modules/easyprocess { };
+  j2cli = callPackage ../development/python-modules/j2cli { };
 
-  easy-thumbnails = callPackage ../development/python-modules/easy-thumbnails { };
+  jabberbot = callPackage ../development/python-modules/jabberbot { };
 
-  eccodes = toPythonModule (pkgs.eccodes.override {
-    enablePython = true;
-    pythonPackages = self;
-  });
+  janus = callPackage ../development/python-modules/janus { };
 
-  edward = callPackage ../development/python-modules/edward { };
+  jaraco_classes = callPackage ../development/python-modules/jaraco_classes { };
 
-  elasticsearch = callPackage ../development/python-modules/elasticsearch { };
+  jaraco_collections = callPackage ../development/python-modules/jaraco_collections { };
 
-  elasticsearch-dsl = callPackage ../development/python-modules/elasticsearch-dsl { };
-  # alias
-  elasticsearchdsl = self.elasticsearch-dsl;
+  jaraco_functools = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/jaraco_functools/2.nix { }
+  else
+    callPackage ../development/python-modules/jaraco_functools { };
 
-  elementpath = callPackage ../development/python-modules/elementpath { };
+  jaraco_itertools = callPackage ../development/python-modules/jaraco_itertools { };
 
-  entrypoints = callPackage ../development/python-modules/entrypoints { };
+  jaraco_logging = callPackage ../development/python-modules/jaraco_logging { };
 
-  envisage = callPackage ../development/python-modules/envisage { };
+  jaraco_stream = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/jaraco_stream/2.nix { }
+  else
+    callPackage ../development/python-modules/jaraco_stream { };
 
-  enzyme = callPackage ../development/python-modules/enzyme {};
+  jaraco_text = callPackage ../development/python-modules/jaraco_text { };
 
-  escapism = callPackage ../development/python-modules/escapism { };
+  javaobj-py3 = callPackage ../development/python-modules/javaobj-py3 { };
 
-  etcd = callPackage ../development/python-modules/etcd { };
+  javaproperties = callPackage ../development/python-modules/javaproperties { };
 
-  evdev = callPackage ../development/python-modules/evdev {};
+  JayDeBeApi = callPackage ../development/python-modules/JayDeBeApi { };
 
-  eve = callPackage ../development/python-modules/eve {};
+  jc = callPackage ../development/python-modules/jc { };
 
-  eventlib = callPackage ../development/python-modules/eventlib { };
+  jdatetime = callPackage ../development/python-modules/jdatetime { };
 
-  events = callPackage ../development/python-modules/events { };
+  jdcal = callPackage ../development/python-modules/jdcal { };
 
-  eyeD3 = callPackage ../development/python-modules/eyed3 { };
+  jedi = callPackage ../development/python-modules/jedi { };
 
-  execnet = callPackage ../development/python-modules/execnet { };
+  jeepney = callPackage ../development/python-modules/jeepney { };
 
-  executor = callPackage ../development/python-modules/executor { };
+  jellyfin-apiclient-python = callPackage ../development/python-modules/jellyfin-apiclient-python { };
 
-  ezdxf = callPackage ../development/python-modules/ezdxf {};
+  jellyfish = callPackage ../development/python-modules/jellyfish { };
 
-  facebook-sdk = callPackage ../development/python-modules/facebook-sdk { };
+  jenkinsapi = callPackage ../development/python-modules/jenkinsapi { };
 
-  face_recognition = callPackage ../development/python-modules/face_recognition { };
+  jenkins-job-builder = callPackage ../development/python-modules/jenkins-job-builder { };
 
-  face_recognition_models = callPackage ../development/python-modules/face_recognition_models { };
+  jieba = callPackage ../development/python-modules/jieba { };
 
-  faker = callPackage ../development/python-modules/faker { };
+  jinja2 = callPackage ../development/python-modules/jinja2 { };
 
-  fake_factory = callPackage ../development/python-modules/fake_factory { };
+  jinja2_pluralize = callPackage ../development/python-modules/jinja2_pluralize { };
 
-  fake-useragent = callPackage ../development/python-modules/fake-useragent { };
+  jinja2_time = callPackage ../development/python-modules/jinja2_time { };
 
-  factory_boy = callPackage ../development/python-modules/factory_boy { };
+  jira = callPackage ../development/python-modules/jira { };
 
-  Fabric = callPackage ../development/python-modules/Fabric { };
+  jmespath = callPackage ../development/python-modules/jmespath { };
 
-  fastdtw = callPackage ../development/python-modules/fastdtw { };
+  joblib = callPackage ../development/python-modules/joblib { };
 
-  fastjsonschema = callPackage ../development/python-modules/fastjsonschema { };
+  josepy = callPackage ../development/python-modules/josepy { };
 
-  faulthandler = if ! isPy3k
-    then callPackage ../development/python-modules/faulthandler {}
-    else throw "faulthandler is built into ${python.executable}";
+  journalwatch = callPackage ../tools/system/journalwatch { inherit (self) systemd pytest; };
 
-  fb-re2 = callPackage ../development/python-modules/fb-re2 { };
+  jpylyzer = callPackage ../development/python-modules/jpylyzer { };
 
-  ffmpeg-python = callPackage ../development/python-modules/ffmpeg-python { };
+  JPype1 = callPackage ../development/python-modules/JPype1 { };
 
-  fenics = callPackage ../development/libraries/science/math/fenics {
-    inherit (pkgs) pkg-config;
-    mpi = pkgs.openmpi;
-    pytest = self.pytest_4;
-  };
+  jq = callPackage ../development/python-modules/jq { inherit (pkgs) jq; };
 
-  filetype = callPackage ../development/python-modules/filetype { };
+  jsbeautifier = callPackage ../development/python-modules/jsbeautifier { };
 
-  flammkuchen = callPackage ../development/python-modules/flammkuchen { };
+  jsmin = callPackage ../development/python-modules/jsmin { };
 
-  flexmock = callPackage ../development/python-modules/flexmock { };
+  jsondate = callPackage ../development/python-modules/jsondate { };
 
-  flit = callPackage ../development/python-modules/flit { };
+  jsondiff = callPackage ../development/python-modules/jsondiff { };
 
-  flit-core = callPackage ../development/python-modules/flit-core { };
+  jsonlines = callPackage ../development/python-modules/jsonlines { };
 
-  flowlogs_reader = callPackage ../development/python-modules/flowlogs_reader { };
+  jsonmerge = callPackage ../development/python-modules/jsonmerge { };
 
-  fluent-logger = callPackage ../development/python-modules/fluent-logger {};
+  json-merge-patch = callPackage ../development/python-modules/json-merge-patch { };
 
-  flux-led = callPackage ../development/python-modules/flux-led { };
+  jsonnet = buildPythonPackage { inherit (pkgs.jsonnet) name src; };
 
-  python-forecastio = callPackage ../development/python-modules/python-forecastio { };
+  jsonpatch = callPackage ../development/python-modules/jsonpatch { };
 
-  fpdf = callPackage ../development/python-modules/fpdf { };
+  jsonpath = callPackage ../development/python-modules/jsonpath { };
 
-  fpylll = callPackage ../development/python-modules/fpylll { };
+  jsonpath_rw = callPackage ../development/python-modules/jsonpath_rw { };
 
-  fritzconnection = callPackage ../development/python-modules/fritzconnection { };
+  jsonpickle = callPackage ../development/python-modules/jsonpickle { };
 
-  frozendict = callPackage ../development/python-modules/frozendict { };
+  jsonpointer = callPackage ../development/python-modules/jsonpointer { };
 
-  ftputil = callPackage ../development/python-modules/ftputil { };
+  jsonref = callPackage ../development/python-modules/jsonref { };
 
-  fudge = callPackage ../development/python-modules/fudge { };
+  jsonrpc-async = callPackage ../development/python-modules/jsonrpc-async { };
 
-  funcparserlib = callPackage ../development/python-modules/funcparserlib { };
+  jsonrpc-base = callPackage ../development/python-modules/jsonrpc-base { };
 
-  fastcache = callPackage ../development/python-modules/fastcache { };
+  jsonrpclib = callPackage ../development/python-modules/jsonrpclib { };
 
-  fastentrypoints = callPackage ../development/python-modules/fastentrypoints { };
+  jsonrpclib-pelix = callPackage ../development/python-modules/jsonrpclib-pelix { };
 
-  functools32 = callPackage ../development/python-modules/functools32 { };
+  jsonrpc-websocket = callPackage ../development/python-modules/jsonrpc-websocket { };
 
-  future-fstrings = callPackage ../development/python-modules/future-fstrings { };
+  jsonschema = callPackage ../development/python-modules/jsonschema { };
 
-  fx2 = callPackage ../development/python-modules/fx2 { };
+  jsonwatch = callPackage ../development/python-modules/jsonwatch { };
 
-  # gaia isn't supported with python3 and it's not available from pypi
-  gaia = disabledIf (isPyPy || isPy3k) (toPythonModule (pkgs.gaia.override {
-    pythonPackages = self;
-    pythonSupport = true;
-  }));
+  jug = callPackage ../development/python-modules/jug { };
 
-  gateone = callPackage ../development/python-modules/gateone { };
+  junitparser = callPackage ../development/python-modules/junitparser { };
 
-  GeoIP = callPackage ../development/python-modules/GeoIP { };
+  junit-xml = callPackage ../development/python-modules/junit-xml { };
 
-  glasgow = callPackage ../development/python-modules/glasgow { };
+  junos-eznc = callPackage ../development/python-modules/junos-eznc { };
 
-  gmpy = callPackage ../development/python-modules/gmpy { };
+  jupyter = callPackage ../development/python-modules/jupyter { };
 
-  gmpy2 = callPackage ../development/python-modules/gmpy2 { };
+  jupyter-c-kernel = callPackage ../development/python-modules/jupyter-c-kernel { };
 
-  gmusicapi = callPackage ../development/python-modules/gmusicapi { };
+  jupyter_client = if isPy3k then
+    callPackage ../development/python-modules/jupyter_client { }
+  else
+    callPackage ../development/python-modules/jupyter_client/5.nix { };
 
-  gnureadline = callPackage ../development/python-modules/gnureadline { };
+  jupyter_console = if pythonOlder "3.5" then
+    callPackage ../development/python-modules/jupyter_console/5.nix { }
+  else
+    callPackage ../development/python-modules/jupyter_console { };
 
-  gnutls = callPackage ../development/python-modules/gnutls { };
+  jupyter_core = callPackage ../development/python-modules/jupyter_core { };
 
-  gpy = callPackage ../development/python-modules/gpy { };
+  jupyterhub = callPackage ../development/python-modules/jupyterhub { };
 
-  gpyopt = callPackage ../development/python-modules/gpyopt { };
+  jupyterhub-ldapauthenticator = callPackage ../development/python-modules/jupyterhub-ldapauthenticator { };
 
-  gitdb = callPackage ../development/python-modules/gitdb { };
+  jupyterhub-systemdspawner =
+    callPackage ../development/python-modules/jupyterhub-systemdspawner { inherit (pkgs) bash; };
 
-  gitdb2 = throw "gitdb2 has been deprecated, use gitdb instead."; # added 2020-03-14
+  jupyterhub-tmpauthenticator = callPackage ../development/python-modules/jupyterhub-tmpauthenticator { };
 
-  GitPython = callPackage ../development/python-modules/GitPython { };
+  jupyterlab = callPackage ../development/python-modules/jupyterlab { };
 
-  git-annex-adapter = callPackage ../development/python-modules/git-annex-adapter {
-    inherit (pkgs.gitAndTools) git-annex;
-  };
+  jupyterlab-git = callPackage ../development/python-modules/jupyterlab-git { };
 
-  python-gitlab = callPackage ../development/python-modules/python-gitlab { };
+  jupyterlab_launcher = callPackage ../development/python-modules/jupyterlab_launcher { };
 
-  google-compute-engine = callPackage ../tools/virtualization/google-compute-engine { };
+  jupyterlab_server = callPackage ../development/python-modules/jupyterlab_server { };
 
-  google-music = callPackage ../development/python-modules/google-music { };
+  jupyter-repo2docker = callPackage ../development/python-modules/jupyter-repo2docker { pkgs-docker = pkgs.docker; };
 
-  google-music-proto = callPackage ../development/python-modules/google-music-proto { };
+  jupyter-sphinx = callPackage ../development/python-modules/jupyter-sphinx { };
 
-  google-music-utils = callPackage ../development/python-modules/google-music-utils { };
+  jupyter-telemetry = callPackage ../development/python-modules/jupyter-telemetry { };
 
-  google-pasta = callPackage ../development/python-modules/google-pasta { };
+  jupytext = callPackage ../development/python-modules/jupytext { };
 
-  googletrans = callPackage ../development/python-modules/googletrans { };
+  jwcrypto = callPackage ../development/python-modules/jwcrypto { };
 
-  gpapi = callPackage ../development/python-modules/gpapi { };
-  gplaycli = callPackage ../development/python-modules/gplaycli { };
+  k5test = callPackage ../development/python-modules/k5test { inherit (pkgs) krb5Full findutils which; };
 
-  gpsoauth = callPackage ../development/python-modules/gpsoauth { };
+  kaa-base = callPackage ../development/python-modules/kaa-base { };
 
-  gpxpy = callPackage ../development/python-modules/gpxpy { };
+  kaa-metadata = callPackage ../development/python-modules/kaa-metadata { };
 
-  grip = callPackage ../development/python-modules/grip { };
+  kafka-python = callPackage ../development/python-modules/kafka-python { };
 
-  gst-python = callPackage ../development/python-modules/gst-python {
-    inherit (pkgs) meson pkgconfig;
-    gst-plugins-base = pkgs.gst_all_1.gst-plugins-base;
-  };
+  kaggle = callPackage ../development/python-modules/kaggle { };
 
-  gtimelog = callPackage ../development/python-modules/gtimelog { };
+  kaitaistruct = callPackage ../development/python-modules/kaitaistruct { };
 
-  gtts = callPackage ../development/python-modules/gtts { };
+  Kajiki = callPackage ../development/python-modules/kajiki { };
 
-  gurobipy = if stdenv.hostPlatform.system == "x86_64-darwin"
-  then callPackage ../development/python-modules/gurobipy/darwin.nix {
-    inherit (pkgs.darwin) cctools insert_dylib;
-  }
-  else if stdenv.hostPlatform.system == "x86_64-linux"
-  then callPackage ../development/python-modules/gurobipy/linux.nix {}
-  else throw "gurobipy not yet supported on ${stdenv.hostPlatform.system}";
+  kaptan = callPackage ../development/python-modules/kaptan { };
 
-  hass-nabucasa = callPackage ../development/python-modules/hass-nabucasa { };
+  kazoo = callPackage ../development/python-modules/kazoo { };
 
-  hbmqtt = callPackage ../development/python-modules/hbmqtt { };
+  kconfiglib = callPackage ../development/python-modules/kconfiglib { };
 
-  helpdev = callPackage ../development/python-modules/helpdev { };
+  keep = callPackage ../development/python-modules/keep { };
 
-  heudiconv = callPackage ../development/python-modules/heudiconv { };
+  keepalive = callPackage ../development/python-modules/keepalive { };
 
-  hickle = callPackage ../development/python-modules/hickle { };
+  keepkey_agent = callPackage ../development/python-modules/keepkey_agent { };
 
-  hiro = callPackage ../development/python-modules/hiro {};
+  keepkey = callPackage ../development/python-modules/keepkey { };
 
-  hglib = callPackage ../development/python-modules/hglib {};
+  keras-applications = callPackage ../development/python-modules/keras-applications { };
 
-  huey = callPackage ../development/python-modules/huey { };
+  Keras = callPackage ../development/python-modules/keras { };
 
-  humanize = callPackage ../development/python-modules/humanize { };
+  keras-preprocessing = callPackage ../development/python-modules/keras-preprocessing { };
 
-  humanfriendly = callPackage ../development/python-modules/humanfriendly { };
+  kerberos = callPackage ../development/python-modules/kerberos { inherit (pkgs) kerberos; };
 
-  hupper = callPackage ../development/python-modules/hupper {};
+  keyring = if isPy3k then
+    callPackage ../development/python-modules/keyring { }
+  else
+    callPackage ../development/python-modules/keyring/2.nix { };
 
-  hsaudiotag = callPackage ../development/python-modules/hsaudiotag { };
+  keyrings-alt = callPackage ../development/python-modules/keyrings-alt { };
 
-  hsaudiotag3k = callPackage ../development/python-modules/hsaudiotag3k { };
+  keyutils = callPackage ../development/python-modules/keyutils { inherit (pkgs) keyutils; };
 
-  hstspreload = callPackage ../development/python-modules/hstspreload { };
+  kicad = disabledIf isPy27 (toPythonModule (pkgs.kicad.override { python3 = python; }).src);
 
-  htmlmin = callPackage ../development/python-modules/htmlmin {};
+  kinparse = callPackage ../development/python-modules/kinparse { };
 
-  httpauth = callPackage ../development/python-modules/httpauth { };
+  kitchen = callPackage ../development/python-modules/kitchen { };
 
-  httpx = callPackage ../development/python-modules/httpx { };
+  kiwisolver = if isPy3k then
+    callPackage ../development/python-modules/kiwisolver { }
+  else
+    callPackage ../development/python-modules/kiwisolver/1_1.nix { };
 
-  idna-ssl = callPackage ../development/python-modules/idna-ssl { };
+  klaus = callPackage ../development/python-modules/klaus { };
 
-  identify = callPackage ../development/python-modules/identify { };
+  klein = callPackage ../development/python-modules/klein { };
 
-  ijson = callPackage ../development/python-modules/ijson {};
+  kmapper = callPackage ../development/python-modules/kmapper { };
 
-  imagecodecs-lite = disabledIf (!isPy3k) (callPackage ../development/python-modules/imagecodecs-lite { });
+  kmsxx = toPythonModule ((callPackage ../development/libraries/kmsxx {
+    inherit (pkgs.kmsxx) stdenv;
+    inherit (pkgs) pkgconfig;
+    withPython = true;
+  }).overrideAttrs (oldAttrs: { name = "${python.libPrefix}-${pkgs.kmsxx.name}"; }));
 
-  imagesize = callPackage ../development/python-modules/imagesize { };
+  knack = callPackage ../development/python-modules/knack { };
 
-  image-match = callPackage ../development/python-modules/image-match { };
+  koji = callPackage ../development/python-modules/koji { };
 
-  imbalanced-learn =
-    if isPy27 then
-      callPackage ../development/python-modules/imbalanced-learn/0.4.nix { }
-    else
-      callPackage ../development/python-modules/imbalanced-learn { };
+  kombu = callPackage ../development/python-modules/kombu { };
 
-  immutables = callPackage ../development/python-modules/immutables {};
+  konfig = callPackage ../development/python-modules/konfig { };
 
-  imread = callPackage ../development/python-modules/imread {
-    inherit (pkgs) pkgconfig libjpeg libpng libtiff libwebp;
-  };
+  korean-lunar-calendar = callPackage ../development/python-modules/korean-lunar-calendar { };
 
-  imaplib2 = callPackage ../development/python-modules/imaplib2 { };
+  kubernetes = callPackage ../development/python-modules/kubernetes { };
 
-  ipfsapi = callPackage ../development/python-modules/ipfsapi { };
+  labelbox = callPackage ../development/python-modules/labelbox { };
 
-  isbnlib = callPackage ../development/python-modules/isbnlib { };
+  lammps-cython = callPackage ../development/python-modules/lammps-cython { mpi = pkgs.openmpi; };
 
-  islpy = callPackage ../development/python-modules/islpy { };
+  langcodes = callPackage ../development/python-modules/langcodes { };
 
-  itsdangerous = callPackage ../development/python-modules/itsdangerous { };
+  langdetect = callPackage ../development/python-modules/langdetect { };
 
-  itypes = callPackage ../development/python-modules/itypes { };
+  larch = callPackage ../development/python-modules/larch { };
 
-  iniparse = callPackage ../development/python-modules/iniparse { };
+  lark-parser = callPackage ../development/python-modules/lark-parser { };
 
-  intreehooks = callPackage ../development/python-modules/intreehooks { };
+  Lasagne = callPackage ../development/python-modules/lasagne { };
 
-  i3-py = callPackage ../development/python-modules/i3-py { };
+  latexcodec = callPackage ../development/python-modules/latexcodec { };
 
-  JayDeBeApi = callPackage ../development/python-modules/JayDeBeApi {};
+  launchpadlib = callPackage ../development/python-modules/launchpadlib { };
 
-  jdcal = callPackage ../development/python-modules/jdcal { };
+  lazr_config = callPackage ../development/python-modules/lazr/config.nix { };
 
-  jieba = callPackage ../development/python-modules/jieba { };
+  lazr_delegates = callPackage ../development/python-modules/lazr/delegates.nix { };
 
-  internetarchive = callPackage ../development/python-modules/internetarchive {};
+  lazr-restfulclient = callPackage ../development/python-modules/lazr-restfulclient { };
 
-  JPype1 = callPackage ../development/python-modules/JPype1 {};
+  lazr-uri = callPackage ../development/python-modules/lazr-uri { };
 
-  jpylyzer = callPackage ../development/python-modules/jpylyzer {};
+  lazy = callPackage ../development/python-modules/lazy { };
 
-  josepy = callPackage ../development/python-modules/josepy {};
+  lazy_import = callPackage ../development/python-modules/lazy_import { };
 
-  jsbeautifier = callPackage ../development/python-modules/jsbeautifier {};
+  lazy-object-proxy = callPackage ../development/python-modules/lazy-object-proxy { };
 
-  jug = callPackage ../development/python-modules/jug {};
+  ldap3 = callPackage ../development/python-modules/ldap3 { };
 
-  jsmin = callPackage ../development/python-modules/jsmin { };
+  ldap = callPackage ../development/python-modules/ldap { inherit (pkgs) openldap cyrus_sasl; };
 
-  jsonmerge = callPackage ../development/python-modules/jsonmerge { };
+  ldappool = callPackage ../development/python-modules/ldappool { };
 
-  jsonpatch = callPackage ../development/python-modules/jsonpatch { };
+  ldaptor = callPackage ../development/python-modules/ldaptor { };
 
-  jsonpickle = callPackage ../development/python-modules/jsonpickle { };
+  leather = callPackage ../development/python-modules/leather { };
 
-  jsonpointer = callPackage ../development/python-modules/jsonpointer { };
+  le = callPackage ../development/python-modules/le { };
 
-  jsonrpclib = callPackage ../development/python-modules/jsonrpclib { };
+  ledger_agent = callPackage ../development/python-modules/ledger_agent { };
+
+  ledgerblue = callPackage ../development/python-modules/ledgerblue { };
 
-  jsonrpclib-pelix = callPackage ../development/python-modules/jsonrpclib-pelix {};
+  lektor = callPackage ../development/python-modules/lektor { };
 
-  jsonwatch = callPackage ../development/python-modules/jsonwatch { };
+  leveldb = callPackage ../development/python-modules/leveldb { };
+
+  libagent = callPackage ../development/python-modules/libagent { };
+
+  pa-ringbuffer = callPackage ../development/python-modules/pa-ringbuffer { };
+
+  libais = callPackage ../development/python-modules/libais { };
 
-  kicad = disabledIf isPy27 (toPythonModule (pkgs.kicad.override {
+  libarchive-c = callPackage ../development/python-modules/libarchive-c { inherit (pkgs) libarchive; };
+
+  libarcus = callPackage ../development/python-modules/libarcus { inherit (pkgs) protobuf; };
+
+  libasyncns = callPackage ../development/python-modules/libasyncns { inherit (pkgs) libasyncns pkgconfig; };
+
+  libcloud = if isPy27 then
+    callPackage ../development/python-modules/libcloud/2.nix { }
+  else
+    callPackage ../development/python-modules/libcloud { };
+
+  libevdev = callPackage ../development/python-modules/libevdev { };
+
+  libfdt = toPythonModule (pkgs.dtc.override {
+    inherit python;
+    pythonSupport = true;
+  });
+
+  libgpiod = disabledIf (!isPy3k) (toPythonModule (pkgs.libgpiod.override {
+    enablePython = true;
     python3 = python;
-  }).src);
+  }));
 
-  latexcodec = callPackage ../development/python-modules/latexcodec {};
+  libgpuarray = callPackage ../development/python-modules/libgpuarray {
+    clblas = pkgs.clblas.override { boost = self.boost; };
+    cudaSupport = pkgs.config.cudaSupport or false;
+    inherit (pkgs.linuxPackages) nvidia_x11;
+  };
 
-  libmodulemd = pipe pkgs.libmodulemd [
-    toPythonModule
+  libiio = (toPythonModule (pkgs.libiio.override { inherit python; })).python;
 
-    (p: p.overrideAttrs (super: {
-      meta = super.meta // {
-        outputsToInstall = [ "py" ];
-        # The package always builds python3 bindings
-        broken = (super.meta.broken or false) || !isPy3k;
-      };
-    }))
+  libkeepass = callPackage ../development/python-modules/libkeepass { };
 
-    (p: p.override {
-      python3 = python;
-    })
+  liblarch = callPackage ../development/python-modules/liblarch { };
 
+  libmodulemd = pipe pkgs.libmodulemd [
+    toPythonModule
+    (p:
+      p.overrideAttrs (super: {
+        meta = super.meta // {
+          outputsToInstall = [ "py" ]; # The package always builds python3 bindings
+          broken = (super.meta.broken or false) || !isPy3k;
+        };
+      }))
+    (p: p.override { python3 = python; })
     (p: p.py)
   ];
 
-  libselinux = pipe pkgs.libselinux [
+  libmr = callPackage ../development/python-modules/libmr { };
+
+  libnacl = callPackage ../development/python-modules/libnacl { inherit (pkgs) libsodium; };
+
+  libnl-python = disabledIf isPy3k (toPythonModule (pkgs.libnl.override {
+    pythonSupport = true;
+    inherit python;
+  })).py;
+
+  libplist = disabledIf isPy3k (toPythonModule (pkgs.libplist.override {
+    enablePython = true;
+    inherit python;
+  })).py;
+
+  libredwg = toPythonModule (pkgs.libredwg.override {
+    enablePython = true;
+    inherit (self) python libxml2;
+  });
+
+  librepo = pipe pkgs.librepo [
     toPythonModule
+    (p: p.overrideAttrs (super: { meta = super.meta // { outputsToInstall = [ "py" ]; }; }))
+    (p: p.override { inherit python; })
+    (p: p.py)
+  ];
 
-    (p: p.overrideAttrs (super: {
-      meta = super.meta // {
-        outputsToInstall = [ "py" ];
-        broken = (super.meta.broken or false) || pythonAtLeast "3.8";
-      };
-    }))
+  librosa = callPackage ../development/python-modules/librosa { };
 
-    (p: p.override {
-      enablePython = true;
-      inherit python;
-    })
+  libsavitar = callPackage ../development/python-modules/libsavitar { };
 
+  libselinux = pipe pkgs.libselinux [
+    toPythonModule
+    (p:
+      p.overrideAttrs (super: {
+        meta = super.meta // {
+          outputsToInstall = [ "py" ];
+          broken = (super.meta.broken or false) || pythonAtLeast "3.8";
+        };
+      }))
+    (p:
+      p.override {
+        enablePython = true;
+        inherit python;
+      })
     (p: p.py)
   ];
 
@@ -3116,6 +3382,33 @@ in {
 
   libthumbor = callPackage ../development/python-modules/libthumbor { };
 
+  libtmux = callPackage ../development/python-modules/libtmux { };
+
+  libtorrentRasterbar = (toPythonModule (pkgs.libtorrentRasterbar.override { inherit python; })).python;
+
+  libusb1 = callPackage ../development/python-modules/libusb1 { inherit (pkgs) libusb1; };
+
+  libversion = callPackage ../development/python-modules/libversion { inherit (pkgs) libversion pkgconfig; };
+
+  libvirt = if isPy3k then
+    (callPackage ../development/python-modules/libvirt { inherit (pkgs) libvirt pkgconfig; })
+  else
+    (callPackage ../development/python-modules/libvirt/5.9.0.nix {
+      inherit (pkgs) pkgconfig;
+      libvirt = pkgs.libvirt_5_9_0;
+    });
+
+  libxml2 = (toPythonModule (pkgs.libxml2.override {
+    pythonSupport = true;
+    inherit python;
+  })).py;
+
+  libxslt = (toPythonModule (pkgs.libxslt.override {
+    pythonSupport = true;
+    inherit python;
+    inherit (self) libxml2;
+  })).py;
+
   license-expression = callPackage ../development/python-modules/license-expression { };
 
   lightblue = callPackage ../development/python-modules/lightblue { };
@@ -3126,2416 +3419,2513 @@ in {
 
   lightparam = callPackage ../development/python-modules/lightparam { };
 
-  jupyter = callPackage ../development/python-modules/jupyter { };
+  limitlessled = callPackage ../development/python-modules/limitlessled { };
 
-  jupyter_console = if pythonOlder "3.5" then
-       callPackage ../development/python-modules/jupyter_console/5.nix { }
-     else
-       callPackage ../development/python-modules/jupyter_console { };
+  limits = callPackage ../development/python-modules/limits { };
 
-  jupyterlab_launcher = callPackage ../development/python-modules/jupyterlab_launcher { };
+  limnoria = callPackage ../development/python-modules/limnoria { };
 
-  jupyterlab_server = callPackage ../development/python-modules/jupyterlab_server { };
+  linecache2 = callPackage ../development/python-modules/linecache2 { };
 
-  jupyterlab = callPackage ../development/python-modules/jupyterlab {};
+  line_profiler = callPackage ../development/python-modules/line_profiler { };
 
-  jupyter-sphinx = callPackage ../development/python-modules/jupyter-sphinx { };
+  linode-api = callPackage ../development/python-modules/linode-api { };
 
-  jupytext = callPackage ../development/python-modules/jupytext { };
+  linode = callPackage ../development/python-modules/linode { };
 
-  PyLTI = callPackage ../development/python-modules/pylti { };
+  linuxfd = callPackage ../development/python-modules/linuxfd { };
 
-  lmdb = callPackage ../development/python-modules/lmdb { };
+  lirc = disabledIf isPy27 (toPythonModule (pkgs.lirc.override { python3 = python; }));
 
-  logilab_astng = callPackage ../development/python-modules/logilab_astng { };
+  livelossplot = callPackage ../development/python-modules/livelossplot { };
 
-  lpod = callPackage ../development/python-modules/lpod { };
+  livereload = callPackage ../development/python-modules/livereload { };
 
-  ludios_wpull = callPackage ../development/python-modules/ludios_wpull { };
+  livestreamer = callPackage ../development/python-modules/livestreamer { };
 
-  luftdaten = callPackage ../development/python-modules/luftdaten { };
+  livestreamer-curses = callPackage ../development/python-modules/livestreamer-curses { };
 
-  m2r = callPackage ../development/python-modules/m2r { };
+  llfuse = callPackage ../development/python-modules/llfuse {
+    inherit (pkgs) fuse pkgconfig;
+  }; # use "real" fuse and pkgconfig, not the python modules
 
-  mailchimp = callPackage ../development/python-modules/mailchimp { };
+  llvmlite = callPackage ../development/python-modules/llvmlite {
+    llvm = pkgs.llvm_9;
+  }; # llvmlite always requires a specific version of llvm.
 
-  python-mapnik = callPackage ../development/python-modules/python-mapnik { };
+  lmdb = callPackage ../development/python-modules/lmdb { };
 
-  measurement = callPackage ../development/python-modules/measurement {};
+  lml = callPackage ../development/python-modules/lml { };
 
-  midiutil = callPackage ../development/python-modules/midiutil {};
+  lmtpd = callPackage ../development/python-modules/lmtpd { };
 
-  misaka = callPackage ../development/python-modules/misaka {};
+  localzone = callPackage ../development/python-modules/localzone { };
 
-  mlrose = callPackage ../development/python-modules/mlrose { };
+  locket = callPackage ../development/python-modules/locket { };
 
-  mlflow = callPackage ../development/python-modules/mlflow { };
+  lockfile = callPackage ../development/python-modules/lockfile { };
 
-  mt-940 = callPackage ../development/python-modules/mt-940 { };
+  locustio = callPackage ../development/python-modules/locustio { };
 
-  mwlib = callPackage ../development/python-modules/mwlib { };
+  Logbook = callPackage ../development/python-modules/Logbook { };
 
-  mwlib-ext = callPackage ../development/python-modules/mwlib-ext { };
+  logfury = callPackage ../development/python-modules/logfury { };
 
-  mwlib-rl = callPackage ../development/python-modules/mwlib-rl { };
+  logilab_astng = callPackage ../development/python-modules/logilab_astng { };
 
-  myfitnesspal = callPackage ../development/python-modules/myfitnesspal { };
+  logilab_common = callPackage ../development/python-modules/logilab/common.nix { };
 
-  natsort = callPackage ../development/python-modules/natsort { };
+  logilab-constraint = callPackage ../development/python-modules/logilab/constraint.nix { };
 
-  naturalsort = callPackage ../development/python-modules/naturalsort { };
+  logster = callPackage ../development/python-modules/logster { };
 
-  ncclient = callPackage ../development/python-modules/ncclient {};
+  loguru = callPackage ../development/python-modules/loguru { };
 
-  logfury = callPackage ../development/python-modules/logfury { };
+  logutils = callPackage ../development/python-modules/logutils { };
 
-  ndg-httpsclient = callPackage ../development/python-modules/ndg-httpsclient { };
+  logzero = callPackage ../development/python-modules/logzero { };
 
-  netcdf4 = callPackage ../development/python-modules/netcdf4 { };
+  loo-py = callPackage ../development/python-modules/loo-py { };
 
-  netdisco = callPackage ../development/python-modules/netdisco { };
+  lpod = callPackage ../development/python-modules/lpod { };
 
-  Nikola = callPackage ../development/python-modules/Nikola { };
+  lsi = callPackage ../development/python-modules/lsi { };
 
-  nmigen = callPackage ../development/python-modules/nmigen { };
+  ludios_wpull = callPackage ../development/python-modules/ludios_wpull { };
 
-  nmigen-boards = callPackage ../development/python-modules/nmigen-boards { };
+  luftdaten = callPackage ../development/python-modules/luftdaten { };
 
-  nmigen-soc = callPackage ../development/python-modules/nmigen-soc { };
+  lxc = callPackage ../development/python-modules/lxc { };
 
-  nxt-python = callPackage ../development/python-modules/nxt-python { };
+  lxml = callPackage ../development/python-modules/lxml { inherit (pkgs) libxml2 libxslt zlib; };
 
-  odfpy = callPackage ../development/python-modules/odfpy { };
+  lz4 = self.python-lz4; # alias 2018-12-05
 
-  openrazer = callPackage ../development/python-modules/openrazer/pylib.nix { };
-  openrazer-daemon = callPackage ../development/python-modules/openrazer/daemon.nix { };
+  lzstring = callPackage ../development/python-modules/lzstring { };
 
-  oset = callPackage ../development/python-modules/oset { };
+  m2crypto = callPackage ../development/python-modules/m2crypto { };
 
-  oscrypto = callPackage ../development/python-modules/oscrypto { };
+  m2r = callPackage ../development/python-modules/m2r { };
 
-  osqp = callPackage ../development/python-modules/osqp { };
+  m3u8 = callPackage ../development/python-modules/m3u8 { };
 
-  oyaml = callPackage ../development/python-modules/oyaml { };
+  mac_alias = callPackage ../development/python-modules/mac_alias { };
 
-  pam = callPackage ../development/python-modules/pam {
-    inherit (pkgs) pam;
+  macfsevents = callPackage ../development/python-modules/macfsevents {
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation CoreServices;
   };
 
-  pamela = callPackage ../development/python-modules/pamela { };
+  macropy = callPackage ../development/python-modules/macropy { };
 
-  paperspace = callPackage ../development/python-modules/paperspace { };
+  maestral = callPackage ../development/python-modules/maestral { };
 
-  paperwork-backend = callPackage ../applications/office/paperwork/backend.nix { };
+  magic = callPackage ../development/python-modules/magic { };
 
-  papis = callPackage ../development/python-modules/papis { };
+  magic-wormhole = callPackage ../development/python-modules/magic-wormhole { };
 
-  papis-python-rofi = callPackage ../development/python-modules/papis-python-rofi { };
+  magic-wormhole-mailbox-server = callPackage ../development/python-modules/magic-wormhole-mailbox-server { };
 
-  pathspec = callPackage ../development/python-modules/pathspec { };
+  magic-wormhole-transit-relay = callPackage ../development/python-modules/magic-wormhole-transit-relay { };
 
-  pathtools = callPackage ../development/python-modules/pathtools { };
+  mahotas = callPackage ../development/python-modules/mahotas { };
 
-  paver = callPackage ../development/python-modules/paver { };
+  mailcap-fix = callPackage ../development/python-modules/mailcap-fix { };
 
-  passlib = callPackage ../development/python-modules/passlib { };
+  mailchimp = callPackage ../development/python-modules/mailchimp { };
 
-  path-and-address = callPackage ../development/python-modules/path-and-address { };
+  mailman = callPackage ../servers/mail/mailman { };
 
-  peppercorn = callPackage ../development/python-modules/peppercorn { };
+  mailmanclient = callPackage ../development/python-modules/mailmanclient { };
 
-  pex = callPackage ../development/python-modules/pex { };
+  mailman-hyperkitty = callPackage ../development/python-modules/mailman-hyperkitty { };
 
-  phe = callPackage ../development/python-modules/phe { };
+  mailman-web = callPackage ../servers/mail/mailman/web.nix { };
 
-  phpserialize = callPackage ../development/python-modules/phpserialize { };
+  rtmixer = callPackage ../development/python-modules/rtmixer { };
 
-  plaid-python = callPackage ../development/python-modules/plaid-python { };
+  mail-parser = callPackage ../development/python-modules/mail-parser { };
 
-  plaster = callPackage ../development/python-modules/plaster {};
+  Mako = callPackage ../development/python-modules/Mako { };
 
-  plaster-pastedeploy = callPackage ../development/python-modules/plaster-pastedeploy {};
+  managesieve = callPackage ../development/python-modules/managesieve { };
 
-  playsound = callPackage ../development/python-modules/playsound { };
+  manhole = callPackage ../development/python-modules/manhole { };
 
-  plexapi = callPackage ../development/python-modules/plexapi { };
+  manifestparser = callPackage ../development/python-modules/marionette-harness/manifestparser.nix { };
 
-  plexauth = callPackage ../development/python-modules/plexauth { };
+  manuel = callPackage ../development/python-modules/manuel { };
 
-  plexwebsocket = callPackage ../development/python-modules/plexwebsocket { };
+  mapbox = callPackage ../development/python-modules/mapbox { };
 
-  plotly = callPackage ../development/python-modules/plotly { };
+  mapsplotlib = callPackage ../development/python-modules/mapsplotlib { };
 
-  plyfile = callPackage ../development/python-modules/plyfile { };
+  marionette_driver = callPackage ../development/python-modules/marionette-harness/marionette_driver.nix { };
 
-  podcastparser = callPackage ../development/python-modules/podcastparser { };
+  marionette-harness = callPackage ../development/python-modules/marionette-harness { };
 
-  podcats = callPackage ../development/python-modules/podcats { };
+  marisa = callPackage ../development/python-modules/marisa { marisa = pkgs.marisa; };
 
-  pomegranate = callPackage ../development/python-modules/pomegranate { };
+  marisa-trie = callPackage ../development/python-modules/marisa-trie { };
 
-  poppler-qt5 = callPackage ../development/python-modules/poppler-qt5 {
-    inherit (pkgs.qt5) qtbase;
-    inherit (pkgs.libsForQt5) poppler;
-    inherit (pkgs) pkgconfig;
-  };
+  markdown2 = callPackage ../development/python-modules/markdown2 { };
 
-  poyo = callPackage ../development/python-modules/poyo { };
+  markdown = if isPy3k then
+    callPackage ../development/python-modules/markdown { }
+  else
+    callPackage ../development/python-modules/markdown/3_1.nix { };
 
-  priority = callPackage ../development/python-modules/priority { };
+  markdown-macros = callPackage ../development/python-modules/markdown-macros { };
 
-  privacyidea = callPackage ../development/python-modules/privacyidea { };
-  privacyidea-ldap-proxy = callPackage ../development/python-modules/privacyidea/ldap-proxy.nix { };
+  markdownsuperscript = callPackage ../development/python-modules/markdownsuperscript { };
 
-  prov = callPackage ../development/python-modules/prov { };
+  markerlib = callPackage ../development/python-modules/markerlib { };
 
-  pudb = callPackage ../development/python-modules/pudb { };
+  markupsafe = callPackage ../development/python-modules/markupsafe { };
 
-  pybtex = callPackage ../development/python-modules/pybtex {};
+  Markups = callPackage ../development/python-modules/Markups { };
 
-  pybtex-docutils = callPackage ../development/python-modules/pybtex-docutils {};
+  marshmallow = callPackage ../development/python-modules/marshmallow { };
 
-  pycallgraph = callPackage ../development/python-modules/pycallgraph { };
+  marshmallow-enum = callPackage ../development/python-modules/marshmallow-enum { };
 
-  pycassa = callPackage ../development/python-modules/pycassa { };
+  marshmallow-polyfield = callPackage ../development/python-modules/marshmallow-polyfield { };
 
-  lirc = disabledIf isPy27 (toPythonModule (pkgs.lirc.override {
-    python3 = python;
-  }));
+  marshmallow-sqlalchemy = callPackage ../development/python-modules/marshmallow-sqlalchemy { };
 
-  pyblake2 = callPackage ../development/python-modules/pyblake2 { };
+  mask-rcnn = callPackage ../development/python-modules/mask-rcnn { };
 
-  pybluez = callPackage ../development/python-modules/pybluez { };
+  matchpy = callPackage ../development/python-modules/matchpy { };
 
-  pycares = callPackage ../development/python-modules/pycares { };
+  mathlibtools = callPackage ../development/python-modules/mathlibtools { };
 
-  pycuda = callPackage ../development/python-modules/pycuda {
-    cudatoolkit = pkgs.cudatoolkit;
-    inherit (pkgs.stdenv) mkDerivation;
+  matplotlib = let
+    path = if isPy3k then
+      ../development/python-modules/matplotlib/default.nix
+    else
+      ../development/python-modules/matplotlib/2.nix;
+  in callPackage path {
+    stdenv = if stdenv.isDarwin then pkgs.clangStdenv else pkgs.stdenv;
+    inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
+    inherit (pkgs) pkgconfig;
   };
 
-  pydotplus = callPackage ../development/python-modules/pydotplus { };
+  matrix-client = callPackage ../development/python-modules/matrix-client { };
 
-  pyfxa = callPackage ../development/python-modules/pyfxa { };
+  matrix-nio = callPackage ../development/python-modules/matrix-nio { };
 
-  pygls = callPackage ../development/python-modules/pygls {};
+  mautrix = callPackage ../development/python-modules/mautrix { };
 
-  pyhomematic = callPackage ../development/python-modules/pyhomematic { };
+  mautrix-appservice = self.mautrix; # alias 2019-12-28
 
-  pylama = callPackage ../development/python-modules/pylama { };
+  maxminddb = callPackage ../development/python-modules/maxminddb { };
 
-  pylatexenc = callPackage ../development/python-modules/pylatexenc { };
+  maya = callPackage ../development/python-modules/maya { };
 
-  pymbolic = callPackage ../development/python-modules/pymbolic { };
+  mayavi = pkgs.libsForQt5.callPackage ../development/python-modules/mayavi {
+    inherit buildPythonPackage isPy27 fetchPypi;
+    inherit (self) pyface pygments numpy vtk traitsui envisage apptools pyqt5;
+  };
 
-  pymediainfo = callPackage ../development/python-modules/pymediainfo { };
+  mccabe = callPackage ../development/python-modules/mccabe { };
 
-  pyphen = callPackage ../development/python-modules/pyphen {};
+  MDP = callPackage ../development/python-modules/mdp { };
 
-  pypoppler = callPackage ../development/python-modules/pypoppler { };
+  measurement = callPackage ../development/python-modules/measurement { };
 
-  pypillowfight = callPackage ../development/python-modules/pypillowfight { };
+  mecab-python3 = callPackage ../development/python-modules/mecab-python3 { };
 
-  pyprind = callPackage ../development/python-modules/pyprind { };
+  MechanicalSoup = callPackage ../development/python-modules/MechanicalSoup { };
 
-  python-axolotl = callPackage ../development/python-modules/python-axolotl { };
+  mechanize = callPackage ../development/python-modules/mechanize { };
 
-  python-axolotl-curve25519 = callPackage ../development/python-modules/python-axolotl-curve25519 { };
+  meinheld = callPackage ../development/python-modules/meinheld { };
 
-  python-pam = callPackage ../development/python-modules/python-pam { };
+  meld3 = callPackage ../development/python-modules/meld3 { };
 
-  pythonix = callPackage ../development/python-modules/pythonix {
-    inherit (pkgs) meson pkgconfig;
-  };
+  meliae = callPackage ../development/python-modules/meliae { };
 
-  python-lzf = callPackage ../development/python-modules/python-lzf { };
+  memcached = callPackage ../development/python-modules/memcached { };
 
-  pyramid = callPackage ../development/python-modules/pyramid { };
+  memory_profiler = callPackage ../development/python-modules/memory_profiler { };
 
-  pyramid_beaker = callPackage ../development/python-modules/pyramid_beaker { };
+  mercurial = disabledIf (!isPy3k) (toPythonModule (pkgs.mercurial.override { python3Packages = self; }));
 
-  pyramid_chameleon = callPackage ../development/python-modules/pyramid_chameleon { };
+  mergedeep = callPackage ../development/python-modules/mergedeep { };
 
-  pyramid_jinja2 = callPackage ../development/python-modules/pyramid_jinja2 { };
+  merkletools = callPackage ../development/python-modules/merkletools { };
 
-  pyramid_mako = callPackage ../development/python-modules/pyramid_mako { };
+  mesa = callPackage ../development/python-modules/mesa { };
 
-  peewee =  callPackage ../development/python-modules/peewee { };
+  meshlabxml = callPackage ../development/python-modules/meshlabxml { };
 
-  pyroma = callPackage ../development/python-modules/pyroma { };
+  meson = disabledIf (pythonOlder "3.5") (toPythonModule ((pkgs.meson.override { python3 = python; }).overrideAttrs
+    (oldAttrs: { # We do not want the setup hook in Python packages because the build is performed differently.
+      setupHook = null;
+    })));
 
-  pyroute2 = callPackage ../development/python-modules/pyroute2 { };
+  mesonpep517 = callPackage ../development/python-modules/mesonpep517 { };
 
-  pyspf = callPackage ../development/python-modules/pyspf { };
+  metaphone = callPackage ../development/python-modules/metaphone { };
 
-  pysptk = callPackage ../development/python-modules/pysptk { };
+  mezzanine = callPackage ../development/python-modules/mezzanine { };
 
-  pysrim = callPackage ../development/python-modules/pysrim { };
+  micawber = callPackage ../development/python-modules/micawber { };
 
-  pysrt = callPackage ../development/python-modules/pysrt { };
+  midiutil = callPackage ../development/python-modules/midiutil { };
 
-  pytools = callPackage ../development/python-modules/pytools { };
+  mido = callPackage ../development/python-modules/mido { };
 
-  python-constraint = callPackage ../development/python-modules/python-constraint { };
+  milksnake = callPackage ../development/python-modules/milksnake { };
 
-  python-ctags3 = callPackage ../development/python-modules/python-ctags3 { };
+  minidb = callPackage ../development/python-modules/minidb { };
 
-  python-lzo = callPackage ../development/python-modules/python-lzo {
-    inherit (pkgs) lzo;
-  };
+  minimock = callPackage ../development/python-modules/minimock { };
 
-  junos-eznc = callPackage ../development/python-modules/junos-eznc {};
+  mininet-python = (toPythonModule (pkgs.mininet.override { inherit python; })).py;
 
-  raven = callPackage ../development/python-modules/raven { };
+  minio = callPackage ../development/python-modules/minio { };
 
-  rawkit = callPackage ../development/python-modules/rawkit { };
+  miniupnpc = callPackage ../development/python-modules/miniupnpc { };
 
-  joblib = callPackage ../development/python-modules/joblib { };
+  misaka = callPackage ../development/python-modules/misaka { };
 
-  sarge = callPackage ../development/python-modules/sarge { };
+  mistletoe = callPackage ../development/python-modules/mistletoe { };
 
-  subliminal = callPackage ../development/python-modules/subliminal {};
+  mistune = callPackage ../development/python-modules/mistune { };
 
-  sunpy = callPackage ../development/python-modules/sunpy { };
+  mitmproxy = callPackage ../development/python-modules/mitmproxy { };
 
-  hyperkitty = callPackage ../servers/mail/mailman/hyperkitty.nix { };
+  mixpanel = callPackage ../development/python-modules/mixpanel { };
 
-  robot-detection = callPackage ../development/python-modules/robot-detection {};
+  mkl-service = callPackage ../development/python-modules/mkl-service { };
 
-  cssmin = callPackage ../development/python-modules/cssmin {};
+  mlflow = callPackage ../development/python-modules/mlflow { };
 
-  django-paintstore = callPackage ../development/python-modules/django-paintstore {};
+  mlrose = callPackage ../development/python-modules/mlrose { };
 
-  django-q = callPackage ../development/python-modules/django-q {};
+  mmh3 = callPackage ../development/python-modules/mmh3 { };
 
-  hyperlink = callPackage ../development/python-modules/hyperlink {};
+  mmpython = callPackage ../development/python-modules/mmpython { };
 
-  zope_copy = callPackage ../development/python-modules/zope_copy {};
+  mnemonic = callPackage ../development/python-modules/mnemonic { };
 
-  s2clientprotocol = callPackage ../development/python-modules/s2clientprotocol { };
+  mnist = callPackage ../development/python-modules/mnist { };
 
-  py3status = callPackage ../development/python-modules/py3status {};
+  mocket = callPackage ../development/python-modules/mocket { };
 
-  pyrtlsdr = callPackage ../development/python-modules/pyrtlsdr { };
+  mock = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/mock/2.nix { }
+  else
+    callPackage ../development/python-modules/mock { };
 
-  scandir = callPackage ../development/python-modules/scandir { };
+  mockito = callPackage ../development/python-modules/mockito { };
 
-  schema = callPackage ../development/python-modules/schema {};
+  mock-open = callPackage ../development/python-modules/mock-open { };
 
-  simple-websocket-server = callPackage ../development/python-modules/simple-websocket-server {};
+  modeled = callPackage ../development/python-modules/modeled { };
 
-  stem = callPackage ../development/python-modules/stem { };
+  moderngl = callPackage ../development/python-modules/moderngl { };
 
-  svg-path = callPackage ../development/python-modules/svg-path { };
+  moderngl-window = callPackage ../development/python-modules/moderngl_window { };
 
-  r2pipe = callPackage ../development/python-modules/r2pipe { };
+  modestmaps = callPackage ../development/python-modules/modestmaps { };
 
-  regex = callPackage ../development/python-modules/regex { };
+  mohawk = callPackage ../development/python-modules/mohawk { };
 
-  regional = callPackage ../development/python-modules/regional { };
+  moinmoin = callPackage ../development/python-modules/moinmoin
+    { }; # Needed here because moinmoin is loaded as a Python library.
 
-  ratelimiter = callPackage ../development/python-modules/ratelimiter { };
+  mongodict = callPackage ../development/python-modules/mongodict { };
 
-  pywatchman = callPackage ../development/python-modules/pywatchman { };
+  mongoengine = callPackage ../development/python-modules/mongoengine { };
 
-  pywavelets = callPackage ../development/python-modules/pywavelets { };
+  monkeyhex = callPackage ../development/python-modules/monkeyhex { };
 
-  vcrpy = callPackage ../development/python-modules/vcrpy { };
+  monosat = disabledIf (!isPy3k) (pkgs.monosat.python {
+    inherit buildPythonPackage;
+    inherit (self) cython;
+  });
 
-  descartes = callPackage ../development/python-modules/descartes { };
+  monotonic = callPackage ../development/python-modules/monotonic { };
 
-  chardet = callPackage ../development/python-modules/chardet { };
+  monty = callPackage ../development/python-modules/monty { };
 
-  pyramid_exclog = callPackage ../development/python-modules/pyramid_exclog { };
+  more-itertools = if isPy27 then
+    callPackage ../development/python-modules/more-itertools/2.7.nix { }
+  else
+    callPackage ../development/python-modules/more-itertools { };
 
-  pyramid_multiauth = callPackage ../development/python-modules/pyramid_multiauth { };
+  moretools = callPackage ../development/python-modules/moretools { };
 
-  pyramid_hawkauth = callPackage ../development/python-modules/pyramid_hawkauth { };
+  morphys = callPackage ../development/python-modules/morphys { };
 
-  pytun = callPackage ../development/python-modules/pytun { };
+  mortgage = callPackage ../development/python-modules/mortgage { };
 
-  rethinkdb = callPackage ../development/python-modules/rethinkdb { };
+  moto = callPackage ../development/python-modules/moto { };
 
-  roku = callPackage ../development/python-modules/roku { };
+  moviepy = callPackage ../development/python-modules/moviepy { };
 
-  roman = callPackage ../development/python-modules/roman { };
+  mox3 = callPackage ../development/python-modules/mox3 { };
 
-  rotate-backups = callPackage ../tools/backup/rotate-backups { };
+  mox = callPackage ../development/python-modules/mox { };
 
-  librosa = callPackage ../development/python-modules/librosa { };
+  mozcrash = callPackage ../development/python-modules/marionette-harness/mozcrash.nix { };
 
-  samplerate = callPackage ../development/python-modules/samplerate { };
+  mozdevice = callPackage ../development/python-modules/marionette-harness/mozdevice.nix { };
 
-  screeninfo = callPackage ../development/python-modules/screeninfo { };
+  mozfile = callPackage ../development/python-modules/marionette-harness/mozfile.nix { };
 
-  ssdeep = callPackage ../development/python-modules/ssdeep { };
+  mozhttpd = callPackage ../development/python-modules/marionette-harness/mozhttpd.nix { };
 
-  ssdp = callPackage ../development/python-modules/ssdp { };
+  mozinfo = callPackage ../development/python-modules/marionette-harness/mozinfo.nix { };
 
-  statsd = callPackage ../development/python-modules/statsd { };
+  mozlog = callPackage ../development/python-modules/marionette-harness/mozlog.nix { };
 
-  starfish = callPackage ../development/python-modules/starfish { };
+  moznetwork = callPackage ../development/python-modules/marionette-harness/moznetwork.nix { };
 
-  swagger-ui-bundle = callPackage ../development/python-modules/swagger-ui-bundle { };
+  mozprocess = callPackage ../development/python-modules/marionette-harness/mozprocess.nix { };
 
-  multi_key_dict = callPackage ../development/python-modules/multi_key_dict { };
+  mozprofile = callPackage ../development/python-modules/marionette-harness/mozprofile.nix { };
 
-  random2 = callPackage ../development/python-modules/random2 { };
+  mozrunner = callPackage ../development/python-modules/marionette-harness/mozrunner.nix { };
 
-  schedule = callPackage ../development/python-modules/schedule { };
+  mozsvc = callPackage ../development/python-modules/mozsvc { };
 
-  repoze_lru = callPackage ../development/python-modules/repoze_lru { };
+  mozterm = callPackage ../development/python-modules/mozterm { };
 
-  repoze_sphinx_autointerface =  callPackage ../development/python-modules/repoze_sphinx_autointerface { };
+  moztest = callPackage ../development/python-modules/marionette-harness/moztest.nix { };
 
-  setuptools-git = callPackage ../development/python-modules/setuptools-git { };
+  mozversion = callPackage ../development/python-modules/marionette-harness/mozversion.nix { };
 
-  setuptools-lint = callPackage ../development/python-modules/setuptools-lint { };
+  mpd2 = callPackage ../development/python-modules/mpd2 { };
 
-  sievelib = callPackage ../development/python-modules/sievelib { };
+  mpd = callPackage ../development/python-modules/mpd { };
 
-  watchdog = callPackage ../development/python-modules/watchdog { };
+  mpi4py = callPackage ../development/python-modules/mpi4py { mpi = pkgs.openmpi; };
 
-  zope_deprecation = callPackage ../development/python-modules/zope_deprecation { };
+  mplleaflet = callPackage ../development/python-modules/mplleaflet { };
 
-  validators = callPackage ../development/python-modules/validators { };
+  mpmath = callPackage ../development/python-modules/mpmath { };
 
-  validictory = callPackage ../development/python-modules/validictory { };
+  mpv = callPackage ../development/python-modules/mpv { mpv = pkgs.mpv; };
 
-  validate-email = callPackage ../development/python-modules/validate-email { };
+  mpyq = callPackage ../development/python-modules/mpyq { };
 
-  venusian = callPackage ../development/python-modules/venusian { };
+  mrbob = callPackage ../development/python-modules/mrbob { };
 
-  chameleon = callPackage ../development/python-modules/chameleon { };
+  msal = callPackage ../development/python-modules/msal { };
 
-  ddt = callPackage ../development/python-modules/ddt { };
+  msal-extensions = callPackage ../development/python-modules/msal-extensions { };
 
-  distutils_extra = callPackage ../development/python-modules/distutils_extra { };
+  msgpack = callPackage ../development/python-modules/msgpack { };
 
-  pyxdg = callPackage ../development/python-modules/pyxdg { };
+  msgpack-numpy = callPackage ../development/python-modules/msgpack-numpy { };
 
-  crayons = callPackage ../development/python-modules/crayons{ };
+  mss = callPackage ../development/python-modules/mss { };
 
-  django = self.django_lts;
+  msrestazure = callPackage ../development/python-modules/msrestazure { };
 
-  django_lts = self.django_2_2;
+  msrest = callPackage ../development/python-modules/msrest { };
 
-  django_1_11 = callPackage ../development/python-modules/django/1_11.nix {
-    gdal = self.gdal;
-  };
+  msrplib = callPackage ../development/python-modules/msrplib { };
 
-  django_2_2 = callPackage ../development/python-modules/django/2_2.nix { };
+  mt-940 = callPackage ../development/python-modules/mt-940 { };
 
-  django-allauth = callPackage ../development/python-modules/django-allauth { };
+  multidict = callPackage ../development/python-modules/multidict { };
 
-  django-anymail = callPackage ../development/python-modules/django-anymail {};
+  multi_key_dict = callPackage ../development/python-modules/multi_key_dict { };
 
-  django_appconf = callPackage ../development/python-modules/django_appconf { };
+  multipledispatch = callPackage ../development/python-modules/multipledispatch { };
 
-  django-auth-ldap = callPackage ../development/python-modules/django-auth-ldap { };
+  multiprocess = callPackage ../development/python-modules/multiprocess { };
 
-  django_colorful = callPackage ../development/python-modules/django_colorful { };
+  multiset = callPackage ../development/python-modules/multiset { };
 
-  django-cache-url = callPackage ../development/python-modules/django-cache-url { };
+  multitasking = callPackage ../development/python-modules/multitasking { };
 
-  django-cleanup = callPackage ../development/python-modules/django-cleanup { };
+  munch = callPackage ../development/python-modules/munch { };
 
-  django-configurations = callPackage ../development/python-modules/django-configurations { };
+  munkres = callPackage ../development/python-modules/munkres { };
 
-  django_compressor = callPackage ../development/python-modules/django_compressor { };
+  murmurhash = callPackage ../development/python-modules/murmurhash { };
 
-  django_compat = callPackage ../development/python-modules/django-compat { };
+  musicbrainzngs = callPackage ../development/python-modules/musicbrainzngs { };
 
-  django_contrib_comments = callPackage ../development/python-modules/django_contrib_comments { };
+  mutag = callPackage ../development/python-modules/mutag { };
 
-  django-cors-headers = callPackage ../development/python-modules/django-cors-headers { };
+  mutagen = if isPy27 then
+    callPackage ../development/python-modules/mutagen/1.43.nix { }
+  else
+    callPackage ../development/python-modules/mutagen { };
 
-  django-csp = callPackage ../development/python-modules/django-csp { };
+  mutatormath = callPackage ../development/python-modules/mutatormath { };
 
-  django-discover-runner = callPackage ../development/python-modules/django-discover-runner { };
+  muttils = callPackage ../development/python-modules/muttils { };
 
-  django-dynamic-preferences = callPackage ../development/python-modules/django-dynamic-preferences { };
+  mwclient = callPackage ../development/python-modules/mwclient { };
 
-  django_environ = callPackage ../development/python-modules/django_environ { };
+  mwlib = callPackage ../development/python-modules/mwlib { };
 
-  django_evolution = callPackage ../development/python-modules/django_evolution { };
+  mwlib-ext = callPackage ../development/python-modules/mwlib-ext { };
 
-  django_extensions = callPackage ../development/python-modules/django-extensions { };
+  mwlib-rl = callPackage ../development/python-modules/mwlib-rl { };
 
-  django-filter = callPackage ../development/python-modules/django-filter { };
+  mwoauth = callPackage ../development/python-modules/mwoauth { };
 
-  django-gravatar2 = callPackage ../development/python-modules/django-gravatar2 { };
+  mwparserfromhell = callPackage ../development/python-modules/mwparserfromhell { };
 
-  django_guardian = callPackage ../development/python-modules/django_guardian { };
+  mxnet = callPackage ../development/python-modules/mxnet { };
 
-  django-ipware = callPackage ../development/python-modules/django-ipware { };
+  myfitnesspal = callPackage ../development/python-modules/myfitnesspal { };
 
-  django-jinja = callPackage ../development/python-modules/django-jinja2 { };
+  mygpoclient = callPackage ../development/python-modules/mygpoclient { };
 
-  django-logentry-admin = callPackage ../development/python-modules/django-logentry-admin { };
+  mypy = callPackage ../development/python-modules/mypy { };
 
-  django-mailman3 = callPackage ../development/python-modules/django-mailman3 { };
+  mypy-extensions = callPackage ../development/python-modules/mypy/extensions.nix { };
 
-  django-oauth-toolkit = callPackage ../development/python-modules/django-oauth-toolkit { };
+  mypy-protobuf = callPackage ../development/python-modules/mypy-protobuf { };
 
-  django-pglocks = callPackage ../development/python-modules/django-pglocks { };
+  mysqlclient = callPackage ../development/python-modules/mysqlclient { };
 
-  django-picklefield = callPackage ../development/python-modules/django-picklefield { };
+  mysql-connector = callPackage ../development/python-modules/mysql-connector { };
 
-  django_polymorphic = callPackage ../development/python-modules/django-polymorphic { };
+  nagiosplugin = callPackage ../development/python-modules/nagiosplugin { };
 
-  django-postgresql-netfields = callPackage ../development/python-modules/django-postgresql-netfields { };
+  namebench = callPackage ../development/python-modules/namebench { };
 
-  django-ranged-response = callPackage ../development/python-modules/django-ranged-response { };
+  namedlist = callPackage ../development/python-modules/namedlist { };
 
-  django-rest-auth = callPackage ../development/python-modules/django-rest-auth { };
+  nameparser = callPackage ../development/python-modules/nameparser { };
 
-  django-sampledatahelper = callPackage ../development/python-modules/django-sampledatahelper { };
+  names = callPackage ../development/python-modules/names { };
 
-  django-simple-captcha = callPackage ../development/python-modules/django-simple-captcha { };
+  nanoleaf = callPackage ../development/python-modules/nanoleaf { };
 
-  django-sites = callPackage ../development/python-modules/django-sites { };
+  nanomsg-python = callPackage ../development/python-modules/nanomsg-python { inherit (pkgs) nanomsg; };
 
-  django-sr = callPackage ../development/python-modules/django-sr { };
+  nanotime = callPackage ../development/python-modules/nanotime { };
 
-  django-storages = callPackage ../development/python-modules/django-storages { };
+  nassl = callPackage ../development/python-modules/nassl { };
 
-  django-versatileimagefield = callPackage ../development/python-modules/django-versatileimagefield  { };
+  natsort = callPackage ../development/python-modules/natsort { };
 
-  django-webpack-loader = callPackage ../development/python-modules/django-webpack-loader { };
+  naturalsort = callPackage ../development/python-modules/naturalsort { };
 
-  django_tagging = callPackage ../development/python-modules/django_tagging { };
+  nbclient = callPackage ../development/python-modules/nbclient { };
 
-  django_classytags = callPackage ../development/python-modules/django_classytags { };
+  nbconflux = callPackage ../development/python-modules/nbconflux { };
 
-  # This package may need an older version of Django.
-  # Override the package set and set e.g. `django = super.django_1_9`.
-  # See the Nixpkgs manual for examples on how to override the package set.
-  django_hijack = callPackage ../development/python-modules/django-hijack { };
+  nbconvert = callPackage ../development/python-modules/nbconvert { };
 
-  django_hijack_admin = callPackage ../development/python-modules/django-hijack-admin { };
+  nbdime = callPackage ../development/python-modules/nbdime { };
 
-  django_nose = callPackage ../development/python-modules/django_nose { };
+  nbformat = if isPy3k then
+    callPackage ../development/python-modules/nbformat { }
+  else
+    callPackage ../development/python-modules/nbformat/2.nix { };
 
-  django_modelcluster = callPackage ../development/python-modules/django_modelcluster { };
+  nbmerge = callPackage ../development/python-modules/nbmerge { };
 
-  djangorestframework = callPackage ../development/python-modules/djangorestframework { };
+  nbsmoke = callPackage ../development/python-modules/nbsmoke { };
 
-  djangorestframework-jwt = callPackage ../development/python-modules/djangorestframework-jwt { };
+  nbsphinx = callPackage ../development/python-modules/nbsphinx { };
 
-  djangorestframework-simplejwt = callPackage ../development/python-modules/djangorestframework-simplejwt { };
+  nbval = callPackage ../development/python-modules/nbval { };
 
-  django-raster = callPackage ../development/python-modules/django-raster { };
+  nbxmpp = callPackage ../development/python-modules/nbxmpp { };
 
-  django_redis = callPackage ../development/python-modules/django_redis { };
+  ncclient = callPackage ../development/python-modules/ncclient { };
 
-  django_reversion = callPackage ../development/python-modules/django_reversion { };
+  ndg-httpsclient = callPackage ../development/python-modules/ndg-httpsclient { };
 
-  django_silk = callPackage ../development/python-modules/django_silk { };
+  ndtypes = callPackage ../development/python-modules/ndtypes { };
 
-  django_taggit = callPackage ../development/python-modules/django_taggit { };
+  neo = callPackage ../development/python-modules/neo { };
 
-  django_treebeard = callPackage ../development/python-modules/django_treebeard { };
+  nest-asyncio = callPackage ../development/python-modules/nest-asyncio { };
 
-  django_pipeline = callPackage ../development/python-modules/django-pipeline { };
+  netaddr = callPackage ../development/python-modules/netaddr { };
 
-  djangoql = callPackage ../development/python-modules/djangoql { };
+  netcdf4 = callPackage ../development/python-modules/netcdf4 { };
 
-  dj-database-url = callPackage ../development/python-modules/dj-database-url { };
+  netdisco = callPackage ../development/python-modules/netdisco { };
 
-  dj-email-url = callPackage ../development/python-modules/dj-email-url { };
+  netifaces = callPackage ../development/python-modules/netifaces { };
 
-  dj-search-url = callPackage ../development/python-modules/dj-search-url { };
+  networkx = if isPy3k then
+    callPackage ../development/python-modules/networkx { }
+  else
+    callPackage ../development/python-modules/networkx/2.2.nix { };
 
-  djmail = callPackage ../development/python-modules/djmail { };
+  neuron-mpi = pkgs.neuron-mpi.override { inherit python; };
 
-  pillowfight = callPackage ../development/python-modules/pillowfight { };
+  neuron = pkgs.neuron.override { inherit python; };
 
-  kaptan = callPackage ../development/python-modules/kaptan { };
+  neuronpy = callPackage ../development/python-modules/neuronpy { };
 
-  keepalive = callPackage ../development/python-modules/keepalive { };
+  nevow = callPackage ../development/python-modules/nevow { };
 
-  keyrings-alt = callPackage ../development/python-modules/keyrings-alt {};
+  nghttp2 = (toPythonModule (pkgs.nghttp2.override {
+    inherit (self) python cython setuptools;
+    inherit (pkgs) ncurses;
+    enablePython = true;
+  })).python;
 
-  SPARQLWrapper = callPackage ../development/python-modules/sparqlwrapper { };
+  nibabel = callPackage ../development/python-modules/nibabel { };
 
-  duckdb = callPackage ../development/python-modules/duckdb {
-    duckdb = pkgs.duckdb;
-  };
+  nidaqmx = callPackage ../development/python-modules/nidaqmx { };
 
-  dulwich = callPackage ../development/python-modules/dulwich {
-    inherit (pkgs) git glibcLocales;
-  };
+  Nikola = callPackage ../development/python-modules/Nikola { };
 
-  hg-git = callPackage ../development/python-modules/hg-git { };
+  nilearn = callPackage ../development/python-modules/nilearn { };
 
-  hg-evolve = callPackage ../development/python-modules/hg-evolve { };
+  nimfa = callPackage ../development/python-modules/nimfa { };
 
-  dtopt = callPackage ../development/python-modules/dtopt { };
+  nine = callPackage ../development/python-modules/nine { };
 
-  easywatch = callPackage ../development/python-modules/easywatch { };
+  nipy = callPackage ../development/python-modules/nipy { };
 
-  ecdsa = callPackage ../development/python-modules/ecdsa { };
+  nipype = callPackage ../development/python-modules/nipype { inherit (pkgs) which; };
 
-  ecos = callPackage ../development/python-modules/ecos { };
+  nitime = callPackage ../development/python-modules/nitime { };
 
-  effect = callPackage ../development/python-modules/effect {};
+  nitpick = callPackage ../applications/version-management/nitpick { };
 
-  enum = callPackage ../development/python-modules/enum { };
+  nix-kernel = callPackage ../development/python-modules/nix-kernel { inherit (pkgs) nix; };
 
-  enum-compat = callPackage ../development/python-modules/enum-compat { };
+  nixpart0 = callPackage ../tools/filesystems/nixpart/0.4
+    { }; # This is used for NixOps to make sure we won't break it with the next major version of nixpart.
 
-  enum34 = callPackage ../development/python-modules/enum34 { };
+  nixpart = callPackage ../tools/filesystems/nixpart { };
 
-  epc = callPackage ../development/python-modules/epc { };
+  nixpkgs = callPackage ../development/python-modules/nixpkgs { };
 
-  et_xmlfile = callPackage ../development/python-modules/et_xmlfile { };
+  nixpkgs-pytools = callPackage ../development/python-modules/nixpkgs-pytools { };
 
-  etesync = callPackage ../development/python-modules/etesync { };
+  nix-prefetch-github = callPackage ../development/python-modules/nix-prefetch-github { };
 
-  eventlet = callPackage ../development/python-modules/eventlet { };
+  nltk = callPackage ../development/python-modules/nltk { };
 
-  exifread = callPackage ../development/python-modules/exifread { };
+  nmigen-boards = callPackage ../development/python-modules/nmigen-boards { };
 
-  fastimport = callPackage ../development/python-modules/fastimport { };
+  nmigen = callPackage ../development/python-modules/nmigen { };
 
-  fastpair = callPackage ../development/python-modules/fastpair { };
+  nmigen-soc = callPackage ../development/python-modules/nmigen-soc { };
 
-  fastrlock = callPackage ../development/python-modules/fastrlock {};
+  nodeenv = callPackage ../development/python-modules/nodeenv { };
 
-  feedgen = callPackage ../development/python-modules/feedgen { };
+  node-semver = callPackage ../development/python-modules/node-semver { };
 
-  feedgenerator = callPackage ../development/python-modules/feedgenerator {
-    inherit (pkgs) glibcLocales;
-  };
+  noise = callPackage ../development/python-modules/noise { };
 
-  feedparser = callPackage ../development/python-modules/feedparser { };
+  nose2 = callPackage ../development/python-modules/nose2 { };
 
-  pyfribidi = callPackage ../development/python-modules/pyfribidi { };
+  nose = callPackage ../development/python-modules/nose { };
 
-  pyftpdlib = callPackage ../development/python-modules/pyftpdlib { };
+  nose-cov = callPackage ../development/python-modules/nose-cov { };
 
-  filebrowser_safe = callPackage ../development/python-modules/filebrowser_safe { };
+  nose-cover3 = callPackage ../development/python-modules/nose-cover3 { };
 
-  pycodestyle = callPackage ../development/python-modules/pycodestyle { };
+  nose-cprof = callPackage ../development/python-modules/nose-cprof { };
 
-  filebytes = callPackage ../development/python-modules/filebytes { };
+  nose-exclude = callPackage ../development/python-modules/nose-exclude { };
 
-  filelock = callPackage ../development/python-modules/filelock {};
+  nose-focus = callPackage ../development/python-modules/nose-focus { };
 
-  fiona = callPackage ../development/python-modules/fiona { gdal_2 = pkgs.gdal_2; };
+  nosejs = callPackage ../development/python-modules/nosejs { };
 
-  fitbit = callPackage ../development/python-modules/fitbit { };
+  nose-of-yeti = callPackage ../development/python-modules/nose-of-yeti { };
 
-  flake8 = callPackage ../development/python-modules/flake8 { };
+  nose-pattern-exclude = callPackage ../development/python-modules/nose-pattern-exclude { };
 
-  flake8-blind-except = callPackage ../development/python-modules/flake8-blind-except { };
+  nose_progressive = callPackage ../development/python-modules/nose_progressive { };
 
-  flake8-debugger = callPackage ../development/python-modules/flake8-debugger { };
+  nose-randomly = callPackage ../development/python-modules/nose-randomly { };
 
-  flake8-future-import = callPackage ../development/python-modules/flake8-future-import { };
+  nose_warnings_filters = callPackage ../development/python-modules/nose_warnings_filters { };
 
-  flake8-import-order = callPackage ../development/python-modules/flake8-import-order { };
+  nosexcover = callPackage ../development/python-modules/nosexcover { };
 
-  flake8-polyfill = callPackage ../development/python-modules/flake8-polyfill { };
+  notebook = if isPy3k then
+    callPackage ../development/python-modules/notebook { }
+  else
+    callPackage ../development/python-modules/notebook/2.nix { };
 
-  flaky = callPackage ../development/python-modules/flaky { };
+  notedown = callPackage ../development/python-modules/notedown { };
 
-  flask = callPackage ../development/python-modules/flask { };
+  notify2 = callPackage ../development/python-modules/notify2 { };
 
-  flask-admin = callPackage ../development/python-modules/flask-admin { };
+  notify = callPackage ../development/python-modules/notify { };
 
-  flask-appbuilder = callPackage ../development/python-modules/flask-appbuilder { };
+  notmuch = callPackage ../development/python-modules/notmuch { inherit (pkgs) notmuch; };
 
-  flask-api = callPackage ../development/python-modules/flask-api { };
+  nototools = callPackage ../data/fonts/noto-fonts/tools.nix { };
 
-  flask_assets = callPackage ../development/python-modules/flask-assets { };
+  nplusone = callPackage ../development/python-modules/nplusone { };
 
-  flask-autoindex = callPackage ../development/python-modules/flask-autoindex { };
+  ntc-templates = callPackage ../development/python-modules/ntc-templates { };
 
-  flask-babel = callPackage ../development/python-modules/flask-babel { };
+  ntlm-auth = callPackage ../development/python-modules/ntlm-auth { };
 
-  flask-babelex = callPackage ../development/python-modules/flask-babelex { };
+  ntplib = callPackage ../development/python-modules/ntplib { };
 
-  flask-bcrypt = callPackage ../development/python-modules/flask-bcrypt { };
+  Nuitka = callPackage ../development/python-modules/nuitka { };
 
-  flask-bootstrap = callPackage ../development/python-modules/flask-bootstrap { };
+  num2words = callPackage ../development/python-modules/num2words { };
 
-  flask-caching = callPackage ../development/python-modules/flask-caching { };
+  numba = callPackage ../development/python-modules/numba { };
 
-  flask-common = callPackage ../development/python-modules/flask-common { };
+  numcodecs = callPackage ../development/python-modules/numcodecs { inherit (pkgs) gcc8; };
 
-  flask-compress = callPackage ../development/python-modules/flask-compress { };
+  numericalunits = callPackage ../development/python-modules/numericalunits { };
 
-  flask-cors = callPackage ../development/python-modules/flask-cors { };
+  numexpr = callPackage ../development/python-modules/numexpr { };
 
-  flask_elastic = callPackage ../development/python-modules/flask-elastic { };
+  numpydoc = callPackage ../development/python-modules/numpydoc { };
 
-  flask-httpauth = callPackage ../development/python-modules/flask-httpauth { };
+  numpy = if pythonOlder "3.5" then
+    callPackage ../development/python-modules/numpy/1.16.nix { }
+  else
+    callPackage ../development/python-modules/numpy { };
 
-  flask-jwt-extended = callPackage ../development/python-modules/flask-jwt-extended { };
+  numpy-stl = callPackage ../development/python-modules/numpy-stl { };
 
-  flask-limiter = callPackage ../development/python-modules/flask-limiter { };
+  numtraits = callPackage ../development/python-modules/numtraits { };
 
-  flask_login = callPackage ../development/python-modules/flask-login { };
+  nunavut = callPackage ../development/python-modules/nunavut { };
 
-  flask_ldap_login = callPackage ../development/python-modules/flask-ldap-login { };
+  nvchecker = callPackage ../development/python-modules/nvchecker { };
 
-  flask_mail = callPackage ../development/python-modules/flask-mail { };
+  nwdiag = callPackage ../development/python-modules/nwdiag { };
 
-  flask_marshmallow = callPackage ../development/python-modules/flask-marshmallow { };
+  nxt-python = callPackage ../development/python-modules/nxt-python { };
 
-  flask_migrate = callPackage ../development/python-modules/flask-migrate { };
+  oath = callPackage ../development/python-modules/oath { };
 
-  flask-mongoengine = callPackage ../development/python-modules/flask-mongoengine { };
+  oauth2 = callPackage ../development/python-modules/oauth2 { };
 
-  flask-openid = callPackage ../development/python-modules/flask-openid { };
+  oauth2client = callPackage ../development/python-modules/oauth2client { };
 
-  flask-paginate = callPackage ../development/python-modules/flask-paginate { };
+  oauth = callPackage ../development/python-modules/oauth { };
 
-  flask_principal = callPackage ../development/python-modules/flask-principal { };
+  oauthenticator = callPackage ../development/python-modules/oauthenticator { };
 
-  flask-pymongo = callPackage ../development/python-modules/Flask-PyMongo { };
+  oauthlib = if isPy27 then
+    callPackage ../development/python-modules/oauthlib/3.1.nix { }
+  else
+    callPackage ../development/python-modules/oauthlib { };
 
-  flask-restful = callPackage ../development/python-modules/flask-restful { };
+  obfsproxy = callPackage ../development/python-modules/obfsproxy { };
 
-  flask-restplus = callPackage ../development/python-modules/flask-restplus { };
+  objgraph = callPackage ../development/python-modules/objgraph { graphvizPkg = pkgs.graphviz; };
 
-  flask-reverse-proxy-fix = callPackage ../development/python-modules/flask-reverse-proxy-fix { };
+  od = callPackage ../development/python-modules/od { };
 
-  flask_script = callPackage ../development/python-modules/flask-script { };
+  odfpy = callPackage ../development/python-modules/odfpy { };
 
-  flask-silk = callPackage ../development/python-modules/flask-silk { };
+  offtrac = callPackage ../development/python-modules/offtrac { };
 
-  flask-socketio = callPackage ../development/python-modules/flask-socketio { };
+  ofxclient = callPackage ../development/python-modules/ofxclient { };
 
-  flask-sockets = callPackage ../development/python-modules/flask-sockets { };
+  ofxhome = callPackage ../development/python-modules/ofxhome { };
 
-  flask_sqlalchemy = callPackage ../development/python-modules/flask-sqlalchemy { };
+  ofxparse = callPackage ../development/python-modules/ofxparse { };
 
-  flask-swagger = callPackage ../development/python-modules/flask-swagger { };
+  ofxtools = callPackage ../development/python-modules/ofxtools { };
 
-  flask-swagger-ui = callPackage ../development/python-modules/flask-swagger-ui { };
+  olefile = callPackage ../development/python-modules/olefile { };
 
-  flask_testing = callPackage ../development/python-modules/flask-testing { };
+  omegaconf = callPackage ../development/python-modules/omegaconf { };
 
-  flask-versioned = callPackage ../development/python-modules/flask-versioned { };
+  onkyo-eiscp = callPackage ../development/python-modules/onkyo-eiscp { };
 
-  flask_wtf = callPackage ../development/python-modules/flask-wtf { };
+  onnx = callPackage ../development/python-modules/onnx { };
 
-  wtforms = callPackage ../development/python-modules/wtforms { };
+  openant = callPackage ../development/python-modules/openant { };
 
-  wtf-peewee = callPackage ../development/python-modules/wtf-peewee { };
+  openapi-spec-validator = callPackage ../development/python-modules/openapi-spec-validator { };
 
-  graph-tool = callPackage ../development/python-modules/graph-tool/2.x.x.nix {
-    inherit (pkgs) pkg-config;
-  };
+  opencv3 = toPythonModule (pkgs.opencv3.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  grappelli_safe = callPackage ../development/python-modules/grappelli_safe { };
+  opencv4 = toPythonModule (pkgs.opencv4.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  greatfet = callPackage ../development/python-modules/greatfet { };
+  opencv = disabledIf isPy3k (toPythonModule (pkgs.opencv.override {
+    enablePython = true;
+    pythonPackages = self;
+  }));
 
-  pygreat = callPackage ../development/python-modules/pygreat { };
+  openidc-client = callPackage ../development/python-modules/openidc-client { };
 
-  pytorch = callPackage ../development/python-modules/pytorch {
-    cudaSupport = pkgs.config.cudaSupport or false;
-  };
+  openpyxl = if pythonAtLeast "3.6" then
+    callPackage ../development/python-modules/openpyxl { }
+  else
+    callPackage ../development/python-modules/openpyxl/2.nix { };
+
+  openrazer = callPackage ../development/python-modules/openrazer/pylib.nix { };
+
+  openrazer-daemon = callPackage ../development/python-modules/openrazer/daemon.nix { };
+
+  opentimestamps = callPackage ../development/python-modules/opentimestamps { };
+
+  opentracing = callPackage ../development/python-modules/opentracing { };
 
-  pyro-ppl = callPackage ../development/python-modules/pyro-ppl {};
+  openwebifpy = callPackage ../development/python-modules/openwebifpy { };
+
+  openwrt-luci-rpc = disabledIf (!isPy3k) (callPackage ../development/python-modules/openwrt-luci-rpc { });
 
   opt-einsum = if isPy27 then
-      callPackage ../development/python-modules/opt-einsum/2.nix {}
-    else
-      callPackage ../development/python-modules/opt-einsum {};
+    callPackage ../development/python-modules/opt-einsum/2.nix { }
+  else
+    callPackage ../development/python-modules/opt-einsum { };
 
-  pytorchWithCuda = self.pytorch.override {
-    cudaSupport = true;
-  };
+  optuna = callPackage ../development/python-modules/optuna { };
 
-  pytorchWithoutCuda = self.pytorch.override {
-    cudaSupport = false;
-  };
+  opuslib = callPackage ../development/python-modules/opuslib { };
 
-  pytorch-metric-learning = callPackage ../development/python-modules/pytorch-metric-learning { };
+  ordereddict = callPackage ../development/python-modules/ordereddict { };
 
-  pythondialog = callPackage ../development/python-modules/pythondialog { };
+  orderedmultidict = callPackage ../development/python-modules/orderedmultidict { };
 
-  python2-pythondialog = callPackage ../development/python-modules/python2-pythondialog { };
+  ordered-set = callPackage ../development/python-modules/ordered-set { };
 
-  pyRFC3339 = callPackage ../development/python-modules/pyrfc3339 { };
+  orderedset = callPackage ../development/python-modules/orderedset { };
 
-  rfc3987 = callPackage ../development/python-modules/rfc3987 { };
+  orm = callPackage ../development/python-modules/orm { };
 
-  ConfigArgParse = callPackage ../development/python-modules/configargparse { };
+  ortools = (toPythonModule (pkgs.or-tools.override { inherit (self) python; })).python;
 
-  jsonschema = callPackage ../development/python-modules/jsonschema { };
+  osc = callPackage ../development/python-modules/osc { };
 
-  vcversioner = callPackage ../development/python-modules/vcversioner { };
+  oscrypto = callPackage ../development/python-modules/oscrypto { };
 
-  falcon = callPackage ../development/python-modules/falcon { };
+  oset = callPackage ../development/python-modules/oset { };
 
-  hug = callPackage ../development/python-modules/hug { };
+  osmnx = callPackage ../development/python-modules/osmnx { };
 
-  flup = callPackage ../development/python-modules/flup { };
+  osmpythontools = callPackage ../development/python-modules/osmpythontools { };
 
-  fn = callPackage ../development/python-modules/fn { };
+  osqp = callPackage ../development/python-modules/osqp { };
 
-  folium = callPackage ../development/python-modules/folium { };
+  outcome = callPackage ../development/python-modules/outcome { };
 
-  fontforge = toPythonModule (pkgs.fontforge.override {
-    withPython = true;
-    inherit python;
-  });
+  ovh = callPackage ../development/python-modules/ovh { };
 
-  fonttools = callPackage ../development/python-modules/fonttools { };
+  ovito = toPythonModule (pkgs.libsForQt5.callPackage ../development/python-modules/ovito { pythonPackages = self; });
 
-  foolscap = callPackage ../development/python-modules/foolscap { };
+  owslib = callPackage ../development/python-modules/owslib { };
 
-  forbiddenfruit = callPackage ../development/python-modules/forbiddenfruit { };
+  oyaml = callPackage ../development/python-modules/oyaml { };
 
-  fusepy = callPackage ../development/python-modules/fusepy { };
+  packaging = callPackage ../development/python-modules/packaging { };
 
-  future = callPackage ../development/python-modules/future { };
+  packet-python = callPackage ../development/python-modules/packet-python { };
 
-  futures = callPackage ../development/python-modules/futures { };
+  pafy = callPackage ../development/python-modules/pafy { };
 
-  galario = toPythonModule (pkgs.galario.override {
-    enablePython = true;
-    pythonPackages = self;
-  });
+  pagelabels = callPackage ../development/python-modules/pagelabels { };
 
-  gcovr = callPackage ../development/python-modules/gcovr { };
+  pagerduty = callPackage ../development/python-modules/pagerduty { };
 
-  gdal = toPythonModule (pkgs.gdal.override {
-    pythonPackages = self;
-  });
+  paho-mqtt = callPackage ../development/python-modules/paho-mqtt { };
 
-  gdrivefs = callPackage ../development/python-modules/gdrivefs { };
+  palettable = callPackage ../development/python-modules/palettable { };
 
-  geant4 = disabledIf (!isPy3k) (toPythonModule (pkgs.geant4.override {
-    enablePython = true;
-    python3 = python;
-  }));
+  # Alias. Added 2020-09-07.
+  pam = self.python-pam;
 
-  genshi = callPackage ../development/python-modules/genshi { };
+  pamela = callPackage ../development/python-modules/pamela { };
 
-  gentools = callPackage ../development/python-modules/gentools { };
+  pamqp = callPackage ../development/python-modules/pamqp { };
 
-  gevent = callPackage ../development/python-modules/gevent { };
+  pandas = if isPy3k then
+    callPackage ../development/python-modules/pandas { }
+  else
+    callPackage ../development/python-modules/pandas/2.nix { };
 
-  geventhttpclient = callPackage ../development/python-modules/geventhttpclient { };
+  pandoc-attributes = callPackage ../development/python-modules/pandoc-attributes { };
 
-  gevent-socketio = callPackage ../development/python-modules/gevent-socketio { };
+  pandocfilters = callPackage ../development/python-modules/pandocfilters { };
 
-  geopandas = callPackage ../development/python-modules/geopandas { };
+  panel = callPackage ../development/python-modules/panel { };
 
-  geojson = callPackage ../development/python-modules/geojson { };
+  papermill = callPackage ../development/python-modules/papermill { };
 
-  gevent-websocket = callPackage ../development/python-modules/gevent-websocket { };
+  paperspace = callPackage ../development/python-modules/paperspace { };
 
-  genzshcomp = callPackage ../development/python-modules/genzshcomp { };
+  paperwork-backend = callPackage ../applications/office/paperwork/backend.nix { };
 
-  gflags = callPackage ../development/python-modules/gflags { };
+  papis = callPackage ../development/python-modules/papis { };
 
-  ghdiff = callPackage ../development/python-modules/ghdiff { };
+  papis-python-rofi = callPackage ../development/python-modules/papis-python-rofi { };
 
-  gipc = callPackage ../development/python-modules/gipc { };
+  param = callPackage ../development/python-modules/param { };
 
-  git-revise = callPackage ../development/python-modules/git-revise { };
+  parameterized = callPackage ../development/python-modules/parameterized { };
 
-  git-sweep = callPackage ../development/python-modules/git-sweep { };
+  paramiko = callPackage ../development/python-modules/paramiko { };
 
-  glances = throw "glances has moved to pkgs.glances"; # added 2020-20-28
+  paramz = callPackage ../development/python-modules/paramz { };
 
-  github3_py = callPackage ../development/python-modules/github3_py { };
+  parfive = callPackage ../development/python-modules/parfive { };
 
-  github-webhook = callPackage ../development/python-modules/github-webhook { };
+  parse = callPackage ../development/python-modules/parse { };
 
-  goobook = callPackage ../development/python-modules/goobook { };
+  parsedatetime = callPackage ../development/python-modules/parsedatetime { };
 
-  googleapis_common_protos = callPackage ../development/python-modules/googleapis_common_protos { };
+  parsel = callPackage ../development/python-modules/parsel { };
 
-  google-auth-httplib2 = callPackage ../development/python-modules/google-auth-httplib2 { };
+  parse-type = callPackage ../development/python-modules/parse-type { };
 
-  google-auth-oauthlib = callPackage ../development/python-modules/google-auth-oauthlib { };
+  parsimonious = callPackage ../development/python-modules/parsimonious { };
 
-  google_api_core = callPackage ../development/python-modules/google_api_core { };
+  parsley = callPackage ../development/python-modules/parsley { };
 
-  google_api_python_client = let
-    google_api_python_client = callPackage ../development/python-modules/google-api-python-client { };
-  in if isPy3k then google_api_python_client else
-    # Python 2.7 support was deprecated but is still needed by weboob and duplicity
-    google_api_python_client.overridePythonAttrs (old: rec {
-      version = "1.7.6";
-      src = old.src.override {
-        inherit version;
-        sha256 = "14w5sdrp0bk9n0r2lmpqmrbf2zclpfq6q7giyahnskkfzdkb165z";
-      };
-    });
+  parso = callPackage ../development/python-modules/parso { };
 
-  google_apputils = callPackage ../development/python-modules/google_apputils { };
+  parsy = callPackage ../development/python-modules/parsy { };
 
-  google_auth = callPackage ../development/python-modules/google_auth { };
+  partd = callPackage ../development/python-modules/partd { };
 
-  google_cloud_asset = callPackage ../development/python-modules/google_cloud_asset { };
+  parver = callPackage ../development/python-modules/parver { };
+  arpeggio = callPackage ../development/python-modules/arpeggio { };
 
-  google_cloud_automl = callPackage ../development/python-modules/google_cloud_automl { };
+  passlib = callPackage ../development/python-modules/passlib { };
 
-  google_cloud_core = callPackage ../development/python-modules/google_cloud_core { };
+  paste = callPackage ../development/python-modules/paste { };
 
-  google_cloud_bigquery = callPackage ../development/python-modules/google_cloud_bigquery { };
+  PasteDeploy = callPackage ../development/python-modules/pastedeploy { };
 
-  google_cloud_bigquery_datatransfer = callPackage ../development/python-modules/google_cloud_bigquery_datatransfer { };
+  pastel = callPackage ../development/python-modules/pastel { };
 
-  google_cloud_bigtable = callPackage ../development/python-modules/google_cloud_bigtable { };
+  pasteScript = callPackage ../development/python-modules/pastescript { };
 
-  google_cloud_container = callPackage ../development/python-modules/google_cloud_container { };
+  patator = callPackage ../development/python-modules/patator { };
 
-  google_cloud_dataproc = callPackage ../development/python-modules/google_cloud_dataproc { };
+  patch = callPackage ../development/python-modules/patch { };
 
-  google_cloud_datastore = callPackage ../development/python-modules/google_cloud_datastore { };
+  patch-ng = callPackage ../development/python-modules/patch-ng { };
 
-  google_cloud_dlp = callPackage ../development/python-modules/google_cloud_dlp { };
+  path-and-address = callPackage ../development/python-modules/path-and-address { };
 
-  google_cloud_dns = callPackage ../development/python-modules/google_cloud_dns { };
+  pathlib2 = callPackage ../development/python-modules/pathlib2 { };
 
-  google_cloud_error_reporting = callPackage ../development/python-modules/google_cloud_error_reporting { };
+  pathlib = callPackage ../development/python-modules/pathlib { };
 
-  google_cloud_firestore = callPackage ../development/python-modules/google_cloud_firestore { };
+  pathos = callPackage ../development/python-modules/pathos { };
 
-  google_cloud_iot = callPackage ../development/python-modules/google_cloud_iot { };
+  pathpy = if isPy3k then
+    callPackage ../development/python-modules/path.py { }
+  else
+    callPackage ../development/python-modules/path.py/2.nix { };
 
-  google_cloud_kms = callPackage ../development/python-modules/google_cloud_kms { };
+  pathspec = callPackage ../development/python-modules/pathspec { };
 
-  google_cloud_language = callPackage ../development/python-modules/google_cloud_language { };
+  pathtools = callPackage ../development/python-modules/pathtools { };
 
-  google_cloud_logging = callPackage ../development/python-modules/google_cloud_logging { };
+  patsy = callPackage ../development/python-modules/patsy { };
 
-  google_cloud_monitoring = callPackage ../development/python-modules/google_cloud_monitoring { };
+  paver = callPackage ../development/python-modules/paver { };
 
-  google_cloud_pubsub = callPackage ../development/python-modules/google_cloud_pubsub { };
+  paypalrestsdk = callPackage ../development/python-modules/paypalrestsdk { };
 
-  google_cloud_redis = callPackage ../development/python-modules/google_cloud_redis { };
+  pbkdf2 = callPackage ../development/python-modules/pbkdf2 { };
 
-  google_cloud_resource_manager = callPackage ../development/python-modules/google_cloud_resource_manager { };
+  pbr = callPackage ../development/python-modules/pbr { };
 
-  google_cloud_runtimeconfig = callPackage ../development/python-modules/google_cloud_runtimeconfig { };
+  pc-ble-driver-py = toPythonModule (callPackage ../development/python-modules/pc-ble-driver-py { });
 
-  google_cloud_securitycenter = callPackage ../development/python-modules/google_cloud_securitycenter { };
+  pcpp = callPackage ../development/python-modules/pcpp { };
 
-  google_cloud_spanner = callPackage ../development/python-modules/google_cloud_spanner { };
+  pdf2image = callPackage ../development/python-modules/pdf2image { };
 
-  google_cloud_storage = callPackage ../development/python-modules/google_cloud_storage { };
+  pdfkit = callPackage ../development/python-modules/pdfkit { };
 
-  google_cloud_speech = callPackage ../development/python-modules/google_cloud_speech { };
+  pdfminer = callPackage ../development/python-modules/pdfminer_six { };
 
-  google_cloud_tasks = callPackage ../development/python-modules/google_cloud_tasks { };
+  pdfposter = callPackage ../development/python-modules/pdfposter { };
 
-  google_cloud_testutils = callPackage ../development/python-modules/google_cloud_testutils { };
+  pdfrw = callPackage ../development/python-modules/pdfrw { };
 
-  google_cloud_texttospeech = callPackage ../development/python-modules/google_cloud_texttospeech { };
+  pdftotext = callPackage ../development/python-modules/pdftotext { };
 
-  google_cloud_trace = callPackage ../development/python-modules/google_cloud_trace { };
+  pdfx = callPackage ../development/python-modules/pdfx { };
 
-  google_cloud_translate = callPackage ../development/python-modules/google_cloud_translate { };
+  pecan = callPackage ../development/python-modules/pecan { };
 
-  google_cloud_videointelligence = callPackage ../development/python-modules/google_cloud_videointelligence { };
+  peewee = callPackage ../development/python-modules/peewee { };
 
-  google_cloud_vision = callPackage ../development/python-modules/google_cloud_vision { };
+  pefile = callPackage ../development/python-modules/pefile { };
 
-  google_cloud_websecurityscanner = callPackage ../development/python-modules/google_cloud_websecurityscanner { };
+  pelican = callPackage ../development/python-modules/pelican { inherit (pkgs) glibcLocales git; };
 
-  google-i18n-address = callPackage ../development/python-modules/google-i18n-address { };
+  pendulum = callPackage ../development/python-modules/pendulum { };
 
-  google_resumable_media = callPackage ../development/python-modules/google_resumable_media { };
+  pep257 = callPackage ../development/python-modules/pep257 { };
 
-  gorilla = callPackage ../development/python-modules/gorilla { };
+  pep517 = callPackage ../development/python-modules/pep517 { };
 
-  gpgme = toPythonModule (pkgs.gpgme.override {
-    pythonSupport = true;
-    inherit python;
-  });
+  pep8 = callPackage ../development/python-modules/pep8 { };
 
-  gphoto2 = callPackage ../development/python-modules/gphoto2 {
-    inherit (pkgs) pkgconfig;
-  };
+  pep8-naming = callPackage ../development/python-modules/pep8-naming { };
 
-  graphql-core = callPackage ../development/python-modules/graphql-core { };
+  peppercorn = callPackage ../development/python-modules/peppercorn { };
 
-  graphql-server-core = callPackage ../development/python-modules/graphql-server-core { };
+  percol = callPackage ../development/python-modules/percol { };
 
-  grammalecte = callPackage ../development/python-modules/grammalecte { };
+  perfplot = callPackage ../development/python-modules/perfplot { };
 
-  greenlet = callPackage ../development/python-modules/greenlet { };
+  periodictable = callPackage ../development/python-modules/periodictable { };
 
-  grib-api = disabledIf (!isPy27) (toPythonModule
-    (pkgs.grib-api.override {
-      enablePython = true;
-      pythonPackages = self;
-    }));
+  persim = callPackage ../development/python-modules/persim { };
 
-  grpcio = callPackage ../development/python-modules/grpcio { };
+  persistent = callPackage ../development/python-modules/persistent { };
 
-  grpcio-tools = callPackage ../development/python-modules/grpcio-tools { };
+  persisting-theory = callPackage ../development/python-modules/persisting-theory { };
 
-  grpcio-gcp = callPackage ../development/python-modules/grpcio-gcp { };
+  pex = callPackage ../development/python-modules/pex { };
 
-  grpc_google_iam_v1 = callPackage ../development/python-modules/grpc_google_iam_v1 { };
+  pexif = callPackage ../development/python-modules/pexif { };
 
-  gspread = callPackage ../development/python-modules/gspread { };
+  pexpect = callPackage ../development/python-modules/pexpect { };
 
-  gtts-token = callPackage ../development/python-modules/gtts-token { };
+  pg8000 = callPackage ../development/python-modules/pg8000 { };
+  pg8000_1_12 = callPackage ../development/python-modules/pg8000/1_12.nix { };
 
-  gym = callPackage ../development/python-modules/gym { };
+  pgcli = callPackage ../development/tools/database/pgcli { };
 
-  gyp = callPackage ../development/python-modules/gyp { };
+  pglast = callPackage ../development/python-modules/pglast { };
 
-  guessit = callPackage ../development/python-modules/guessit { };
+  pgpdump = callPackage ../development/python-modules/pgpdump { };
 
-  rebulk = callPackage ../development/python-modules/rebulk { };
+  pgpy = callPackage ../development/python-modules/pgpy { };
 
-  gunicorn = if isPy27 then
-          callPackage ../development/python-modules/gunicorn/19.nix { }
-        else
-          callPackage ../development/python-modules/gunicorn { };
+  pgsanity = callPackage ../development/python-modules/pgsanity { };
 
-  hawkauthlib = callPackage ../development/python-modules/hawkauthlib { };
+  pgspecial = callPackage ../development/python-modules/pgspecial { };
 
-  hdbscan = callPackage ../development/python-modules/hdbscan { };
+  phe = callPackage ../development/python-modules/phe { };
 
-  hmmlearn = callPackage ../development/python-modules/hmmlearn { };
+  phik = callPackage ../development/python-modules/phik { };
 
-  hcs_utils = callPackage ../development/python-modules/hcs_utils { };
+  phonenumbers = callPackage ../development/python-modules/phonenumbers { };
 
-  hetzner = callPackage ../development/python-modules/hetzner { };
+  phonopy = callPackage ../development/python-modules/phonopy { };
 
-  hiredis = callPackage ../development/python-modules/hiredis { };
+  phpserialize = callPackage ../development/python-modules/phpserialize { };
 
-  homeassistant-pyozw = callPackage ../development/python-modules/homeassistant-pyozw { };
+  piccata = callPackage ../development/python-modules/piccata { };
 
-  htmllaundry = callPackage ../development/python-modules/htmllaundry { };
+  pickleshare = callPackage ../development/python-modules/pickleshare { };
 
-  html5lib = callPackage ../development/python-modules/html5lib { };
+  picos = callPackage ../development/python-modules/picos { };
 
-  httmock = callPackage ../development/python-modules/httmock { };
+  pid = callPackage ../development/python-modules/pid { };
 
-  http_signature = callPackage ../development/python-modules/http_signature { };
+  piep = callPackage ../development/python-modules/piep { };
 
-  httpbin = callPackage ../development/python-modules/httpbin { };
+  piexif = callPackage ../development/python-modules/piexif { };
 
-  httplib2 = callPackage ../development/python-modules/httplib2 { };
+  pika = callPackage ../development/python-modules/pika { };
 
-  hvac = callPackage ../development/python-modules/hvac { };
+  pika-pool = callPackage ../development/python-modules/pika-pool { };
 
-  hydra = callPackage ../development/python-modules/hydra { };
+  pikepdf = callPackage ../development/python-modules/pikepdf { };
 
-  # File name is called 2.nix because this one will need to remain for Python 2.
-  hypothesis_4 = callPackage ../development/python-modules/hypothesis/2.nix { };
+  pilkit = callPackage ../development/python-modules/pilkit { };
+
+  pillowfight = callPackage ../development/python-modules/pillowfight { };
 
-  hypothesis = if isPy3k then
-    callPackage ../development/python-modules/hypothesis { }
+  pillow = if isPy27 then
+    callPackage ../development/python-modules/pillow/6.nix {
+      inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk;
+      inherit (pkgs.xorg) libX11;
+    }
   else
-    self.hypothesis_4;
+    callPackage ../development/python-modules/pillow {
+      inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk;
+      inherit (pkgs.xorg) libX11;
+    };
 
-  hydra-check = callPackage ../development/python-modules/hydra-check { };
+  pims = callPackage ../development/python-modules/pims { };
 
-  colored = callPackage ../development/python-modules/colored { };
+  pint = callPackage ../development/python-modules/pint { };
 
-  xdg = callPackage ../development/python-modules/xdg { };
+  pip = callPackage ../development/python-modules/pip { };
 
-  xdis = callPackage ../development/python-modules/xdis { };
+  pipdate = callPackage ../development/python-modules/pipdate { };
 
-  xnd = callPackage ../development/python-modules/xnd { };
+  pip-tools = callPackage ../development/python-modules/pip-tools {
+    git = pkgs.gitMinimal;
+    glibcLocales = pkgs.glibcLocales;
+  };
 
-  uncompyle6 = callPackage ../development/python-modules/uncompyle6 { };
+  pipx = callPackage ../development/python-modules/pipx { };
 
-  unrpa = callPackage ../development/python-modules/unrpa { };
+  pivy = callPackage ../development/python-modules/pivy {
+    inherit (pkgs.qt5) qtbase qmake;
+    inherit (pkgs.libsForQt5) soqt;
+  };
 
-  lsi = callPackage ../development/python-modules/lsi { };
+  pkgconfig = callPackage ../development/python-modules/pkgconfig { inherit (pkgs) pkgconfig; };
 
-  hkdf = callPackage ../development/python-modules/hkdf { };
+  pkginfo = callPackage ../development/python-modules/pkginfo { };
 
-  httpretty = callPackage ../development/python-modules/httpretty { };
+  pkuseg = callPackage ../development/python-modules/pkuseg { };
 
-  iapws = callPackage ../development/python-modules/iapws { };
+  pkutils = callPackage ../development/python-modules/pkutils { };
 
-  icalendar = callPackage ../development/python-modules/icalendar { };
+  plac = callPackage ../development/python-modules/plac { };
 
-  ics = callPackage ../development/python-modules/ics { };
+  plaid-python = callPackage ../development/python-modules/plaid-python { };
 
-  ifaddr = callPackage ../development/python-modules/ifaddr { };
+  plaster = callPackage ../development/python-modules/plaster { };
 
-  ifconfig-parser = callPackage ../development/python-modules/ifconfig-parser { };
+  plaster-pastedeploy = callPackage ../development/python-modules/plaster-pastedeploy { };
 
-  imagecorruptions = callPackage ../development/python-modules/imagecorruptions { };
+  playsound = callPackage ../development/python-modules/playsound { };
 
-  imageio = callPackage ../development/python-modules/imageio { };
+  plexapi = callPackage ../development/python-modules/plexapi { };
 
-  imageio-ffmpeg = callPackage ../development/python-modules/imageio-ffmpeg { };
+  plexauth = callPackage ../development/python-modules/plexauth { };
 
-  imgaug = callPackage ../development/python-modules/imgaug { };
+  plexwebsocket = callPackage ../development/python-modules/plexwebsocket { };
 
-  inflection = callPackage ../development/python-modules/inflection { };
+  plone-testing = callPackage ../development/python-modules/plone-testing { };
 
-  influxdb = callPackage ../development/python-modules/influxdb { };
+  plotly = callPackage ../development/python-modules/plotly { };
 
-  infoqscraper = callPackage ../development/python-modules/infoqscraper { };
+  pluggy = callPackage ../development/python-modules/pluggy { };
 
-  inifile = callPackage ../development/python-modules/inifile { };
+  pluginbase = callPackage ../development/python-modules/pluginbase { };
 
-  interruptingcow = callPackage ../development/python-modules/interruptingcow {};
+  plumbum = callPackage ../development/python-modules/plumbum { };
 
-  iocapture = callPackage ../development/python-modules/iocapture { };
+  ply = callPackage ../development/python-modules/ply { };
 
-  iptools = callPackage ../development/python-modules/iptools { };
+  plyfile = callPackage ../development/python-modules/plyfile { };
 
-  ipy = callPackage ../development/python-modules/IPy { };
+  plyplus = callPackage ../development/python-modules/plyplus { };
 
-  ipydatawidgets = callPackage ../development/python-modules/ipydatawidgets { };
+  plyvel = callPackage ../development/python-modules/plyvel { };
 
-  ipykernel = if pythonOlder "3.4" then
-      callPackage ../development/python-modules/ipykernel/4.nix { }
-    else
-      callPackage ../development/python-modules/ipykernel { };
+  Pmw = callPackage ../development/python-modules/Pmw { };
 
-  ipyparallel = callPackage ../development/python-modules/ipyparallel { };
+  pocket = callPackage ../development/python-modules/pocket { };
 
-  ipython = if isPy27 then
-      callPackage ../development/python-modules/ipython/5.nix { }
-    else if isPy35 then
-      callPackage ../development/python-modules/ipython/7.9.nix { }
-    else
-      callPackage ../development/python-modules/ipython { };
+  podcastparser = callPackage ../development/python-modules/podcastparser { };
 
-  ipython_genutils = callPackage ../development/python-modules/ipython_genutils { };
+  podcats = callPackage ../development/python-modules/podcats { };
 
-  ipyvue = callPackage ../development/python-modules/ipyvue { };
+  poetry = callPackage ../development/python-modules/poetry { };
 
-  ipyvuetify = callPackage ../development/python-modules/ipyvuetify { };
+  poetry-core = callPackage ../development/python-modules/poetry-core { };
 
-  ipywidgets = callPackage ../development/python-modules/ipywidgets { };
+  poezio = callPackage ../applications/networking/instant-messengers/poezio { inherit (pkgs) pkgconfig; };
 
-  ipaddr = callPackage ../development/python-modules/ipaddr { };
+  polib = callPackage ../development/python-modules/polib { };
 
-  ipaddress = callPackage ../development/python-modules/ipaddress { };
+  polyline = callPackage ../development/python-modules/polyline { };
 
-  ipdb = callPackage ../development/python-modules/ipdb { };
+  pomegranate = callPackage ../development/python-modules/pomegranate { };
 
-  ipdbplugin = callPackage ../development/python-modules/ipdbplugin { };
+  pony = callPackage ../development/python-modules/pony { };
 
-  pythonIRClib = callPackage ../development/python-modules/pythonirclib { };
+  ponywhoosh = callPackage ../development/python-modules/ponywhoosh { };
 
-  iso-639 = callPackage ../development/python-modules/iso-639 {};
+  pooch = callPackage ../development/python-modules/pooch { };
 
-  iso3166 = callPackage ../development/python-modules/iso3166 {};
+  poppler-qt5 = callPackage ../development/python-modules/poppler-qt5 {
+    inherit (pkgs.qt5) qtbase;
+    inherit (pkgs.libsForQt5) poppler;
+    inherit (pkgs) pkgconfig;
+  };
 
-  iso8601 = callPackage ../development/python-modules/iso8601 { };
+  portalocker = callPackage ../development/python-modules/portalocker { };
 
-  isort = callPackage ../development/python-modules/isort {};
+  portend = callPackage ../development/python-modules/portend { };
 
-  isoweek = callPackage ../development/python-modules/isoweek {};
+  portpicker = callPackage ../development/python-modules/portpicker { };
 
-  jabberbot = callPackage ../development/python-modules/jabberbot {};
+  posix_ipc = callPackage ../development/python-modules/posix_ipc { };
 
-  jedi = callPackage ../development/python-modules/jedi { };
+  poster3 = callPackage ../development/python-modules/poster3 { };
 
-  jellyfish = callPackage ../development/python-modules/jellyfish { };
+  postorius = disabledIf (!isPy3k) (callPackage ../servers/mail/mailman/postorius.nix { });
 
-  jeepney = callPackage ../development/python-modules/jeepney { };
+  potr = callPackage ../development/python-modules/potr { };
 
-  j2cli = callPackage ../development/python-modules/j2cli { };
+  power = callPackage ../development/python-modules/power { };
 
-  jinja2 = callPackage ../development/python-modules/jinja2 { };
+  powerline = callPackage ../development/python-modules/powerline { };
 
-  jinja2_time = callPackage ../development/python-modules/jinja2_time { };
+  pox = callPackage ../development/python-modules/pox { };
 
-  jinja2_pluralize = callPackage ../development/python-modules/jinja2_pluralize { };
+  poyo = callPackage ../development/python-modules/poyo { };
 
-  jmespath = callPackage ../development/python-modules/jmespath { };
+  ppft = callPackage ../development/python-modules/ppft { };
 
-  journalwatch = callPackage ../tools/system/journalwatch {
-    inherit (self) systemd pytest;
-  };
+  pplpy = callPackage ../development/python-modules/pplpy { };
 
-  jq = callPackage ../development/python-modules/jq {
-    inherit (pkgs) jq;
-  };
+  pprintpp = callPackage ../development/python-modules/pprintpp { };
 
-  jsondate = callPackage ../development/python-modules/jsondate { };
+  pproxy = callPackage ../development/python-modules/pproxy { };
 
-  jsondiff = callPackage ../development/python-modules/jsondiff { };
+  pq = callPackage ../development/python-modules/pq { };
 
-  jsonnet = buildPythonPackage {
-    inherit (pkgs.jsonnet) name src;
-  };
+  prance = callPackage ../development/python-modules/prance { };
 
-  jupyter_client = if isPy3k then
-    callPackage ../development/python-modules/jupyter_client { }
+  prawcore = callPackage ../development/python-modules/prawcore { };
+
+  praw = if isPy3k then
+    callPackage ../development/python-modules/praw { }
   else
-    callPackage ../development/python-modules/jupyter_client/5.nix { };
+    callPackage ../development/python-modules/praw/6.3.nix { };
 
-  jupyter_core = callPackage ../development/python-modules/jupyter_core { };
+  precis-i18n = callPackage ../development/python-modules/precis-i18n { };
 
-  jupyter-repo2docker = callPackage ../development/python-modules/jupyter-repo2docker {
-    pkgs-docker = pkgs.docker;
-  };
+  pre-commit = callPackage ../development/python-modules/pre-commit { };
 
-  jupyterhub = callPackage ../development/python-modules/jupyterhub { };
+  preggy = callPackage ../development/python-modules/preggy { };
 
-  jupyterhub-ldapauthenticator = callPackage ../development/python-modules/jupyterhub-ldapauthenticator { };
+  premailer = callPackage ../development/python-modules/premailer { };
 
-  keyring = if isPy3k then
-    callPackage ../development/python-modules/keyring { }
-  else
-    callPackage ../development/python-modules/keyring/2.nix { };
+  preshed = callPackage ../development/python-modules/preshed { };
 
-  keyutils = callPackage ../development/python-modules/keyutils { inherit (pkgs) keyutils; };
+  pretend = callPackage ../development/python-modules/pretend { };
 
-  kiwisolver = callPackage ../development/python-modules/kiwisolver { };
+  prettytable = callPackage ../development/python-modules/prettytable { };
 
-  klaus = callPackage ../development/python-modules/klaus {};
+  priority = callPackage ../development/python-modules/priority { };
 
-  klein = callPackage ../development/python-modules/klein { };
+  prison = callPackage ../development/python-modules/prison { };
 
-  koji = callPackage ../development/python-modules/koji { };
+  privacyidea = callPackage ../development/python-modules/privacyidea { };
+  privacyidea-ldap-proxy = callPackage ../development/python-modules/privacyidea/ldap-proxy.nix { };
 
-  kombu = callPackage ../development/python-modules/kombu { };
+  proboscis = callPackage ../development/python-modules/proboscis { };
 
-  konfig = callPackage ../development/python-modules/konfig { };
+  process-tests = callPackage ../development/python-modules/process-tests { };
 
-  kitchen = callPackage ../development/python-modules/kitchen { };
+  proglog = callPackage ../development/python-modules/proglog { };
 
-  knack = callPackage ../development/python-modules/knack { };
+  progressbar231 = callPackage ../development/python-modules/progressbar231 { };
 
-  kubernetes = callPackage ../development/python-modules/kubernetes { };
+  progressbar2 = callPackage ../development/python-modules/progressbar2 { };
 
-  k5test = callPackage ../development/python-modules/k5test {
-    inherit (pkgs) krb5Full findutils which;
-  };
+  progressbar33 = callPackage ../development/python-modules/progressbar33 { };
 
-  pylast = callPackage ../development/python-modules/pylast { };
+  progressbar = callPackage ../development/python-modules/progressbar { };
 
-  pylru = callPackage ../development/python-modules/pylru { };
+  progress = callPackage ../development/python-modules/progress { };
 
-  libnl-python = disabledIf isPy3k
-    (toPythonModule (pkgs.libnl.override{pythonSupport=true; inherit python; })).py;
+  prometheus_client = callPackage ../development/python-modules/prometheus_client { };
 
-  lark-parser = callPackage ../development/python-modules/lark-parser { };
+  promise = callPackage ../development/python-modules/promise { };
 
-  jsonpath_rw = callPackage ../development/python-modules/jsonpath_rw { };
+  prompt_toolkit = let
+    filename = if isPy3k then
+      ../development/python-modules/prompt_toolkit
+    else
+      ../development/python-modules/prompt_toolkit/1.nix;
+  in callPackage filename { };
+
+  property-manager = callPackage ../development/python-modules/property-manager { };
+
+  protego = callPackage ../development/python-modules/protego { };
 
-  kerberos = callPackage ../development/python-modules/kerberos {
-    inherit (pkgs) kerberos;
+  protobuf = callPackage ../development/python-modules/protobuf {
+    disabled = isPyPy;
+    doCheck =
+      !isPy3k; # If a protobuf upgrade causes many Python packages to fail, please pin it here to the previous version.
+    protobuf = pkgs.protobuf;
   };
 
-  lazy_import = callPackage ../development/python-modules/lazy_import { };
+  prov = callPackage ../development/python-modules/prov { };
 
-  lazy-object-proxy = callPackage ../development/python-modules/lazy-object-proxy { };
+  prox-tv = callPackage ../development/python-modules/prox-tv { };
 
-  ldaptor = callPackage ../development/python-modules/ldaptor { };
+  psautohint = callPackage ../development/python-modules/psautohint { };
 
-  le = callPackage ../development/python-modules/le { };
+  psd-tools = callPackage ../development/python-modules/psd-tools { };
 
-  lektor = callPackage ../development/python-modules/lektor { };
+  psutil = callPackage ../development/python-modules/psutil { };
 
-  leveldb = callPackage ../development/python-modules/leveldb { };
+  psycopg2 = callPackage ../development/python-modules/psycopg2 { };
 
-  python-oauth2 = callPackage ../development/python-modules/python-oauth2 { };
+  ptable = callPackage ../development/python-modules/ptable { };
 
-  python_openzwave = callPackage ../development/python-modules/python_openzwave {
-    inherit (pkgs) pkgconfig;
-  };
+  ptest = callPackage ../development/python-modules/ptest { };
 
-  python-Levenshtein = callPackage ../development/python-modules/python-levenshtein { };
+  ptpython = callPackage ../development/python-modules/ptpython { prompt_toolkit = self.prompt_toolkit; };
 
-  python-unshare = callPackage ../development/python-modules/python-unshare { };
+  ptyprocess = callPackage ../development/python-modules/ptyprocess { };
 
-  fs = callPackage ../development/python-modules/fs { };
+  publicsuffix2 = callPackage ../development/python-modules/publicsuffix2 { };
 
-  fs-s3fs = callPackage ../development/python-modules/fs-s3fs { };
+  publicsuffix = callPackage ../development/python-modules/publicsuffix { };
 
-  libarcus = callPackage ../development/python-modules/libarcus { inherit (pkgs) protobuf; };
+  pudb = callPackage ../development/python-modules/pudb { };
 
-  libcloud = callPackage ../development/python-modules/libcloud { };
+  pulp = callPackage ../development/python-modules/pulp { };
 
-  libgpuarray = callPackage ../development/python-modules/libgpuarray {
-    clblas = pkgs.clblas.override { boost = self.boost; };
-    cudaSupport = pkgs.config.cudaSupport or false;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-  };
+  pulsectl = callPackage ../development/python-modules/pulsectl { };
 
-  libgpiod = disabledIf (!isPy3k) (toPythonModule (pkgs.libgpiod.override {
-    enablePython = true;
-    python3 = python;
-  }));
+  pure-eval = callPackage ../development/python-modules/pure-eval { };
 
-  libkeepass = callPackage ../development/python-modules/libkeepass { };
+  pure-pcapy3 = callPackage ../development/python-modules/pure-pcapy3 { };
 
-  librepo = pipe pkgs.librepo [
-    toPythonModule
+  purepng = callPackage ../development/python-modules/purepng { };
 
-    (p: p.overrideAttrs (super: {
-      meta = super.meta // {
-        outputsToInstall = [ "py" ];
-      };
-    }))
+  pure-python-adb-homeassistant = callPackage ../development/python-modules/pure-python-adb-homeassistant { };
 
-    (p: p.override {
-      inherit python;
-    })
+  purl = callPackage ../development/python-modules/purl { };
 
-    (p: p.py)
-  ];
+  pushbullet = callPackage ../development/python-modules/pushbullet { };
 
-  libnacl = callPackage ../development/python-modules/libnacl {
-    inherit (pkgs) libsodium;
-  };
+  pushover-complete = callPackage ../development/python-modules/pushover-complete { };
 
-  libsavitar = callPackage ../development/python-modules/libsavitar { };
+  pvlib = callPackage ../development/python-modules/pvlib { };
 
-  libplist = disabledIf isPy3k
-    (toPythonModule (pkgs.libplist.override { enablePython = true; inherit python; })).py;
+  Pweave = callPackage ../development/python-modules/pweave { };
 
-  libxml2 = (toPythonModule (pkgs.libxml2.override{pythonSupport=true; inherit python;})).py;
+  pwntools = callPackage ../development/python-modules/pwntools { debugger = pkgs.gdb; };
 
-  libxslt = (toPythonModule (pkgs.libxslt.override{pythonSupport=true; inherit python; inherit (self) libxml2;})).py;
+  pxml = callPackage ../development/python-modules/pxml { };
 
-  limits = callPackage ../development/python-modules/limits { };
+  py2bit = callPackage ../development/python-modules/py2bit { };
 
-  limnoria = callPackage ../development/python-modules/limnoria { };
+  py3buddy = toPythonModule (callPackage ../development/python-modules/py3buddy { });
 
-  line_profiler = callPackage ../development/python-modules/line_profiler { };
+  py3exiv2 = callPackage ../development/python-modules/py3exiv2 { };
 
-  linode = callPackage ../development/python-modules/linode { };
+  py3status = callPackage ../development/python-modules/py3status { };
 
-  linode-api = callPackage ../development/python-modules/linode-api { };
+  py3to2 = callPackage ../development/python-modules/3to2 { };
 
-  livereload = callPackage ../development/python-modules/livereload { };
+  py4j = callPackage ../development/python-modules/py4j { };
 
-  llfuse = callPackage ../development/python-modules/llfuse {
-    inherit (pkgs) fuse pkgconfig; # use "real" fuse and pkgconfig, not the python modules
-  };
+  pyacoustid = callPackage ../development/python-modules/pyacoustid { };
 
-  locustio = callPackage ../development/python-modules/locustio { };
+  pyaes = callPackage ../development/python-modules/pyaes { };
 
-  llvmlite = callPackage ../development/python-modules/llvmlite { llvm = pkgs.llvm_8; };
+  pyairvisual = callPackage ../development/python-modules/pyairvisual { };
 
-  lockfile = callPackage ../development/python-modules/lockfile { };
+  pyalgotrade = callPackage ../development/python-modules/pyalgotrade { };
 
-  logilab_common = callPackage ../development/python-modules/logilab/common.nix {};
+  pyamf = callPackage ../development/python-modules/pyamf { };
 
-  logilab-constraint = callPackage ../development/python-modules/logilab/constraint.nix {};
+  pyamg = callPackage ../development/python-modules/pyamg { };
 
-  lxml = callPackage ../development/python-modules/lxml {inherit (pkgs) libxml2 libxslt zlib;};
+  pyaml = callPackage ../development/python-modules/pyaml { };
 
-  lxc = callPackage ../development/python-modules/lxc { };
+  pyannotate = callPackage ../development/python-modules/pyannotate { };
 
-  py_scrypt = callPackage ../development/python-modules/py_scrypt { };
+  pyarrow = callPackage ../development/python-modules/pyarrow { inherit (pkgs) arrow-cpp cmake pkgconfig; };
 
-  python_magic = callPackage ../development/python-modules/python-magic { };
+  pyasn1 = callPackage ../development/python-modules/pyasn1 { };
 
-  m3u8 = callPackage ../development/python-modules/m3u8 { };
+  pyasn1-modules = callPackage ../development/python-modules/pyasn1-modules { };
 
-  magic = callPackage ../development/python-modules/magic { };
+  pyatmo = callPackage ../development/python-modules/pyatmo { };
 
-  m2crypto = callPackage ../development/python-modules/m2crypto { };
+  pyatspi = callPackage ../development/python-modules/pyatspi { inherit (pkgs) pkgconfig; };
 
-  Mako = callPackage ../development/python-modules/Mako { };
+  pyatv = callPackage ../development/python-modules/pyatv { };
 
-  macfsevents = callPackage ../development/python-modules/macfsevents {
-    inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation CoreServices;
-  };
+  pyaudio = callPackage ../development/python-modules/pyaudio { };
 
-  manifestparser = callPackage ../development/python-modules/marionette-harness/manifestparser.nix {};
-  marionette_driver = callPackage ../development/python-modules/marionette-harness/marionette_driver.nix {};
-  mozcrash = callPackage ../development/python-modules/marionette-harness/mozcrash.nix {};
-  mozdevice = callPackage ../development/python-modules/marionette-harness/mozdevice.nix {};
-  mozfile = callPackage ../development/python-modules/marionette-harness/mozfile.nix {};
-  mozhttpd = callPackage ../development/python-modules/marionette-harness/mozhttpd.nix {};
-  mozinfo = callPackage ../development/python-modules/marionette-harness/mozinfo.nix {};
-  mozlog = callPackage ../development/python-modules/marionette-harness/mozlog.nix {};
-  moznetwork = callPackage ../development/python-modules/marionette-harness/moznetwork.nix {};
-  mozprocess = callPackage ../development/python-modules/marionette-harness/mozprocess.nix {};
-  mozprofile = callPackage ../development/python-modules/marionette-harness/mozprofile.nix {};
-  mozrunner = callPackage ../development/python-modules/marionette-harness/mozrunner.nix {};
-  moztest = callPackage ../development/python-modules/marionette-harness/moztest.nix {};
-  mozversion = callPackage ../development/python-modules/marionette-harness/mozversion.nix {};
-  marionette-harness = callPackage ../development/python-modules/marionette-harness {};
-
-  marisa = callPackage ../development/python-modules/marisa {
-    marisa = pkgs.marisa;
-  };
+  pyavm = callPackage ../development/python-modules/pyavm { };
 
-  marisa-trie = callPackage ../development/python-modules/marisa-trie { };
+  pyaxmlparser = callPackage ../development/python-modules/pyaxmlparser { };
 
-  Markups = callPackage ../development/python-modules/Markups { };
+  pybase64 = callPackage ../development/python-modules/pybase64 { };
 
-  markupsafe = callPackage ../development/python-modules/markupsafe { };
+  pybids = callPackage ../development/python-modules/pybids { };
 
-  marshmallow = callPackage ../development/python-modules/marshmallow { };
+  pybigwig = callPackage ../development/python-modules/pybigwig { };
 
-  marshmallow-enum = callPackage ../development/python-modules/marshmallow-enum { };
+  pybind11 = callPackage ../development/python-modules/pybind11 { };
 
-  marshmallow-polyfield = callPackage ../development/python-modules/marshmallow-polyfield { };
+  pybindgen = callPackage ../development/python-modules/pybindgen { };
 
-  marshmallow-sqlalchemy = callPackage ../development/python-modules/marshmallow-sqlalchemy { };
+  pyblake2 = callPackage ../development/python-modules/pyblake2 { };
 
-  manuel = callPackage ../development/python-modules/manuel { };
+  pyblock = callPackage ../development/python-modules/pyblock { };
 
-  mapsplotlib = callPackage ../development/python-modules/mapsplotlib { };
+  pyblosxom = callPackage ../development/python-modules/pyblosxom { };
 
-  markdown = callPackage ../development/python-modules/markdown { };
+  pybluez = callPackage ../development/python-modules/pybluez { };
 
-  markdownsuperscript = callPackage ../development/python-modules/markdownsuperscript {};
+  pybotvac = callPackage ../development/python-modules/pybotvac { };
 
-  markdown-macros = callPackage ../development/python-modules/markdown-macros { };
+  pybrowserid = callPackage ../development/python-modules/pybrowserid { };
 
-  mathics = callPackage ../development/python-modules/mathics { };
+  pybtex = callPackage ../development/python-modules/pybtex { };
 
-  matplotlib = let
-    path = if isPy3k then ../development/python-modules/matplotlib/default.nix else
-      ../development/python-modules/matplotlib/2.nix;
-  in callPackage path {
-    stdenv = if stdenv.isDarwin then pkgs.clangStdenv else pkgs.stdenv;
-    inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa;
-    inherit (pkgs) pkgconfig;
-  };
+  pybtex-docutils = callPackage ../development/python-modules/pybtex-docutils { };
 
-  matrix-client = callPackage ../development/python-modules/matrix-client { };
+  pybullet = callPackage ../development/python-modules/pybullet { };
 
-  matrix-nio = callPackage ../development/python-modules/matrix-nio { };
+  pycairo = callPackage ../development/python-modules/pycairo { inherit (pkgs) meson pkgconfig; };
 
-  mautrix = callPackage ../development/python-modules/mautrix { };
-  mautrix-appservice = self.mautrix; # alias 2019-12-28
+  pycallgraph = callPackage ../development/python-modules/pycallgraph { };
 
-  maya = callPackage ../development/python-modules/maya { };
+  py = callPackage ../development/python-modules/py { };
 
-  mayavi = pkgs.libsForQt5.callPackage ../development/python-modules/mayavi {
-    inherit buildPythonPackage isPy27 fetchPypi;
-    inherit (self) pyface pygments numpy vtk traitsui envisage apptools pyqt5;
-  };
+  pycangjie = disabledIf (!isPy3k) (callPackage ../development/python-modules/pycangjie { inherit (pkgs) pkgconfig; });
 
-  mccabe = callPackage ../development/python-modules/mccabe { };
+  pycapnp = callPackage ../development/python-modules/pycapnp { };
 
-  mechanize = callPackage ../development/python-modules/mechanize { };
+  pycaption = callPackage ../development/python-modules/pycaption { };
 
-  MechanicalSoup = callPackage ../development/python-modules/MechanicalSoup { };
+  pycarddav = callPackage ../development/python-modules/pycarddav { };
 
-  meld3 = callPackage ../development/python-modules/meld3 { };
+  pycares = callPackage ../development/python-modules/pycares { };
 
-  meliae = callPackage ../development/python-modules/meliae {};
+  pycassa = callPackage ../development/python-modules/pycassa { };
 
-  meinheld = callPackage ../development/python-modules/meinheld { };
+  pycategories = callPackage ../development/python-modules/pycategories { };
 
-  memcached = callPackage ../development/python-modules/memcached { };
+  pycdio = callPackage ../development/python-modules/pycdio { };
 
-  memory_profiler = callPackage ../development/python-modules/memory_profiler { };
+  pychart = callPackage ../development/python-modules/pychart { };
 
-  mesa = callPackage ../development/python-modules/mesa { };
+  pychef = callPackage ../development/python-modules/pychef { };
 
-  meson = disabledIf (pythonOlder "3.5") (toPythonModule ((pkgs.meson.override {
-    python3Packages = self;
-  }).overrideAttrs(oldAttrs: {
-     # We do not want the setup hook in Python packages
-     # because the build is performed differently.
-    setupHook = null;
-  })));
+  PyChromecast = callPackage ../development/python-modules/pychromecast { };
 
-  mesonpep517 = callPackage ../development/python-modules/mesonpep517 { };
+  pyclipper = callPackage ../development/python-modules/pyclipper { };
 
-  metaphone = callPackage ../development/python-modules/metaphone { };
+  pycm = callPackage ../development/python-modules/pycm { };
 
-  mezzanine = callPackage ../development/python-modules/mezzanine { };
+  pycodestyle = callPackage ../development/python-modules/pycodestyle { };
 
-  micawber = callPackage ../development/python-modules/micawber { };
+  pycognito = callPackage ../development/python-modules/pycognito { };
 
-  milksnake = callPackage ../development/python-modules/milksnake { };
+  pycoin = callPackage ../development/python-modules/pycoin { };
 
-  minimock = callPackage ../development/python-modules/minimock { };
+  pycollada = callPackage ../development/python-modules/pycollada { };
 
-  minio = callPackage ../development/python-modules/minio { };
+  pycontracts = callPackage ../development/python-modules/pycontracts { };
 
-  moviepy = callPackage ../development/python-modules/moviepy { };
+  pycosat = callPackage ../development/python-modules/pycosat { };
 
-  mozterm = callPackage ../development/python-modules/mozterm { };
+  pycountry = callPackage ../development/python-modules/pycountry { };
 
-  mplleaflet = callPackage ../development/python-modules/mplleaflet { };
+  pycparser = callPackage ../development/python-modules/pycparser { };
 
-  multidict = callPackage ../development/python-modules/multidict { };
+  py-cpuinfo = callPackage ../development/python-modules/py-cpuinfo { };
 
-  munch = callPackage ../development/python-modules/munch { };
+  pycrc = callPackage ../development/python-modules/pycrc { };
 
-  nototools = callPackage ../data/fonts/noto-fonts/tools.nix { };
+  pycrypto = callPackage ../development/python-modules/pycrypto { };
 
-  rainbowstream = callPackage ../development/python-modules/rainbowstream { };
+  pycryptodome = callPackage ../development/python-modules/pycryptodome { };
 
-  pendulum = callPackage ../development/python-modules/pendulum { };
+  pycryptodomex = callPackage ../development/python-modules/pycryptodomex { };
 
-  pocket = callPackage ../development/python-modules/pocket { };
+  pycryptopp = callPackage ../development/python-modules/pycryptopp { };
 
-  mistune = callPackage ../development/python-modules/mistune { };
+  pyct = callPackage ../development/python-modules/pyct { };
 
-  brotlipy = callPackage ../development/python-modules/brotlipy { };
+  pycuda = callPackage ../development/python-modules/pycuda {
+    cudatoolkit = pkgs.cudatoolkit;
+    inherit (pkgs.stdenv) mkDerivation;
+  };
 
-  sortedcollections = callPackage ../development/python-modules/sortedcollections { };
+  pycups = callPackage ../development/python-modules/pycups { };
 
-  hyperframe = callPackage ../development/python-modules/hyperframe { };
+  pycurl2 = callPackage ../development/python-modules/pycurl2 { };
 
-  h2 = callPackage ../development/python-modules/h2 { };
+  pycurl = callPackage ../development/python-modules/pycurl { };
 
-  editorconfig = callPackage ../development/python-modules/editorconfig { };
+  pydantic = callPackage ../development/python-modules/pydantic { };
 
-  mock = if pythonOlder "3.6" then
-    callPackage ../development/python-modules/mock/2.nix { }
+  pydbus = callPackage ../development/python-modules/pydbus { };
+
+  pydenticon = callPackage ../development/python-modules/pydenticon { };
+
+  pydicom = callPackage ../development/python-modules/pydicom { };
+
+  pydispatcher = callPackage ../development/python-modules/pydispatcher { };
+
+  pydns = let
+    py3 = callPackage ../development/python-modules/py3dns { };
+    py2 = callPackage ../development/python-modules/pydns { };
+  in if isPy3k then py3 else py2;
+
+  pydocstyle = if isPy27 then
+    callPackage ../development/python-modules/pydocstyle/2.nix { }
   else
-    callPackage ../development/python-modules/mock { };
+    callPackage ../development/python-modules/pydocstyle { };
 
-  mock-open = callPackage ../development/python-modules/mock-open { };
+  pydocumentdb = callPackage ../development/python-modules/pydocumentdb { };
 
-  mockito = callPackage ../development/python-modules/mockito { };
+  pydot = callPackage ../development/python-modules/pydot { inherit (pkgs) graphviz; };
 
-  modeled = callPackage ../development/python-modules/modeled { };
+  pydot_ng = callPackage ../development/python-modules/pydot_ng { graphviz = pkgs.graphviz; };
 
-  moderngl = callPackage ../development/python-modules/moderngl { };
+  pydotplus = callPackage ../development/python-modules/pydotplus { };
 
-  moderngl-window = callPackage ../development/python-modules/moderngl_window { };
+  pydrive = callPackage ../development/python-modules/pydrive { };
 
-  modestmaps = callPackage ../development/python-modules/modestmaps { };
+  pydsdl = callPackage ../development/python-modules/pydsdl { };
 
-  # Needed here because moinmoin is loaded as a Python library.
-  moinmoin = callPackage ../development/python-modules/moinmoin { };
+  pydub = callPackage ../development/python-modules/pydub { };
 
-  moretools = callPackage ../development/python-modules/moretools { };
+  pydy = callPackage ../development/python-modules/pydy { };
 
-  moto = callPackage ../development/python-modules/moto {};
+  pyechonest = callPackage ../development/python-modules/pyechonest { };
 
-  mox = callPackage ../development/python-modules/mox { };
+  pyelftools = callPackage ../development/python-modules/pyelftools { };
 
-  mozsvc = callPackage ../development/python-modules/mozsvc { };
+  pyemd = callPackage ../development/python-modules/pyemd { };
 
-  mpmath = callPackage ../development/python-modules/mpmath { };
+  pyenchant = callPackage ../development/python-modules/pyenchant { enchant2 = pkgs.enchant2; };
 
-  mpd = callPackage ../development/python-modules/mpd { };
+  pyepsg = callPackage ../development/python-modules/pyepsg { };
 
-  mpd2 = callPackage ../development/python-modules/mpd2 { };
+  pyexcel = callPackage ../development/python-modules/pyexcel { };
 
-  mpv = callPackage ../development/python-modules/mpv { mpv = pkgs.mpv; };
+  pyexcelerator = callPackage ../development/python-modules/pyexcelerator { };
 
-  mrbob = callPackage ../development/python-modules/mrbob {};
+  pyexcel-io = callPackage ../development/python-modules/pyexcel-io { };
 
-  msgpack = callPackage ../development/python-modules/msgpack {};
+  pyexcel-ods = callPackage ../development/python-modules/pyexcel-ods { };
 
-  msgpack-numpy = callPackage ../development/python-modules/msgpack-numpy {};
+  pyexcel-xls = callPackage ../development/python-modules/pyexcel-xls { };
 
-  msrplib = callPackage ../development/python-modules/msrplib { };
+  pyexiv2 = disabledIf isPy3k (toPythonModule (callPackage ../development/python-modules/pyexiv2 { }));
 
-  multipledispatch = callPackage ../development/python-modules/multipledispatch { };
+  pyext = callPackage ../development/python-modules/pyext { };
 
-  multiprocess = callPackage ../development/python-modules/multiprocess { };
+  pyface = callPackage ../development/python-modules/pyface { };
 
-  munkres = callPackage ../development/python-modules/munkres { };
+  pyfaidx = callPackage ../development/python-modules/pyfaidx { };
 
-  musicbrainzngs = callPackage ../development/python-modules/musicbrainzngs { };
+  pyfakefs = callPackage ../development/python-modules/pyfakefs { };
 
-  mutag = callPackage ../development/python-modules/mutag { };
+  pyfantom = callPackage ../development/python-modules/pyfantom { };
 
-  mutagen = callPackage ../development/python-modules/mutagen { };
+  pyfcm = callPackage ../development/python-modules/pyfcm { };
 
-  muttils = callPackage ../development/python-modules/muttils { };
+  pyfftw = callPackage ../development/python-modules/pyfftw { };
 
-  mygpoclient = callPackage ../development/python-modules/mygpoclient { };
+  pyfiglet = callPackage ../development/python-modules/pyfiglet { };
 
-  mysqlclient = callPackage ../development/python-modules/mysqlclient { };
+  pyflakes = callPackage ../development/python-modules/pyflakes { };
 
-  mypy = callPackage ../development/python-modules/mypy { };
+  pyfma = callPackage ../development/python-modules/pyfma { };
 
-  mypy-extensions = callPackage ../development/python-modules/mypy/extensions.nix { };
+  pyfribidi = callPackage ../development/python-modules/pyfribidi { };
 
-  mypy-protobuf = callPackage ../development/python-modules/mypy-protobuf { };
+  pyfritzhome = callPackage ../development/python-modules/pyfritzhome { };
 
-  neuronpy = callPackage ../development/python-modules/neuronpy { };
+  pyftdi = callPackage ../development/python-modules/pyftdi { };
 
-  persisting-theory = callPackage ../development/python-modules/persisting-theory { };
+  pyftgl = callPackage ../development/python-modules/pyftgl { };
 
-  pint = callPackage ../development/python-modules/pint { };
+  pyftpdlib = callPackage ../development/python-modules/pyftpdlib { };
+
+  pyfttt = callPackage ../development/python-modules/pyfttt { };
+
+  pyfxa = callPackage ../development/python-modules/pyfxa { };
 
   pygal = callPackage ../development/python-modules/pygal { };
 
-  pytaglib = callPackage ../development/python-modules/pytaglib { };
+  pygame = callPackage ../development/python-modules/pygame { };
 
-  pyte = callPackage ../development/python-modules/pyte { };
+  pygame_sdl2 = callPackage ../development/python-modules/pygame_sdl2 { };
 
-  graphviz = callPackage ../development/python-modules/graphviz {
-    inherit (pkgs) graphviz;
-  };
+  pygbm = callPackage ../development/python-modules/pygbm { };
 
-  pygraphviz = callPackage ../development/python-modules/pygraphviz {
-    inherit (pkgs) graphviz pkgconfig; # not the python package
-  };
+  pygccxml = callPackage ../development/python-modules/pygccxml { };
 
-  pymc3 = callPackage ../development/python-modules/pymc3 { };
+  pygdbmi = callPackage ../development/python-modules/pygdbmi { };
 
-  pympler = callPackage ../development/python-modules/pympler { };
+  pygeoip = callPackage ../development/python-modules/pygeoip { };
 
-  pymysqlsa = callPackage ../development/python-modules/pymysqlsa { };
+  pygit2 = callPackage ../development/python-modules/pygit2 { };
 
-  merkletools = callPackage ../development/python-modules/merkletools { };
+  PyGithub = callPackage ../development/python-modules/pyGithub { };
 
-  monosat = disabledIf (!isPy3k) (pkgs.monosat.python { inherit buildPythonPackage; inherit (self) cython; });
+  pyglet = callPackage ../development/python-modules/pyglet { };
 
-  monotonic = callPackage ../development/python-modules/monotonic { };
+  pygls = callPackage ../development/python-modules/pygls { };
 
-  mysql-connector = callPackage ../development/python-modules/mysql-connector { };
+  pygments-better-html = callPackage ../development/python-modules/pygments-better-html { };
 
-  namebench = callPackage ../development/python-modules/namebench { };
+  pygments = if isPy3k then
+    callPackage ../development/python-modules/Pygments { }
+  else
+    callPackage ../development/python-modules/Pygments/2_5.nix { };
 
-  namedlist = callPackage ../development/python-modules/namedlist { };
+  pygments-markdown-lexer = callPackage ../development/python-modules/pygments-markdown-lexer { };
 
-  nameparser = callPackage ../development/python-modules/nameparser { };
+  pygmo = callPackage ../development/python-modules/pygmo { };
 
-  names = callPackage ../development/python-modules/names { };
+  pygobject2 = callPackage ../development/python-modules/pygobject { inherit (pkgs) pkgconfig; };
 
-  nbconflux = callPackage ../development/python-modules/nbconflux { };
+  pygobject3 = callPackage ../development/python-modules/pygobject/3.nix { inherit (pkgs) meson pkgconfig; };
 
-  nbconvert = callPackage ../development/python-modules/nbconvert { };
+  pygogo = callPackage ../development/python-modules/pygogo { };
 
-  nbformat = if isPy3k then
-    callPackage ../development/python-modules/nbformat { }
-  else callPackage ../development/python-modules/nbformat/2.nix { };
+  pygpgme = callPackage ../development/python-modules/pygpgme { };
 
-  nbmerge = callPackage ../development/python-modules/nbmerge { };
+  pygraphviz = callPackage ../development/python-modules/pygraphviz {
+    inherit (pkgs) graphviz pkgconfig;
+  }; # not the python package
 
-  nbdime = callPackage ../development/python-modules/nbdime { };
+  pygreat = callPackage ../development/python-modules/pygreat { };
 
-  nbxmpp = callPackage ../development/python-modules/nbxmpp { };
+  pygrok = callPackage ../development/python-modules/pygrok { };
 
-  sleekxmpp = callPackage ../development/python-modules/sleekxmpp { };
+  pygtail = callPackage ../development/python-modules/pygtail { };
 
-  slixmpp = callPackage ../development/python-modules/slixmpp {
-    inherit (pkgs) gnupg;
+  pygtk = callPackage ../development/python-modules/pygtk {
+    inherit (pkgs) pkgconfig;
+    libglade = null;
   };
 
-  netaddr = callPackage ../development/python-modules/netaddr { };
+  pyGtkGlade = self.pygtk.override { libglade = pkgs.gnome2.libglade; };
 
-  netifaces = callPackage ../development/python-modules/netifaces { };
+  pygtksourceview = callPackage ../development/python-modules/pygtksourceview { inherit (pkgs) pkgconfig; };
 
-  hpack = callPackage ../development/python-modules/hpack { };
+  pyhamcrest = if isPy3k then
+    callPackage ../development/python-modules/pyhamcrest { }
+  else
+    callPackage ../development/python-modules/pyhamcrest/1.nix { };
 
-  nevow = callPackage ../development/python-modules/nevow { };
+  pyhaversion = callPackage ../development/python-modules/pyhaversion { };
 
-  nghttp2 = (toPythonModule (pkgs.nghttp2.override {
-    inherit (self) python cython setuptools;
-    inherit (pkgs) ncurses;
-    enablePython = true;
-  })).python;
+  pyhcl = callPackage ../development/python-modules/pyhcl { };
 
-  nibabel = callPackage ../development/python-modules/nibabel {};
+  pyhocon = callPackage ../development/python-modules/pyhocon { };
 
-  nidaqmx = callPackage ../development/python-modules/nidaqmx { };
+  pyhomematic = callPackage ../development/python-modules/pyhomematic { };
 
-  nilearn = callPackage ../development/python-modules/nilearn {};
+  pyhs100 = callPackage ../development/python-modules/pyhs100 { };
 
-  nimfa = callPackage ../development/python-modules/nimfa {};
+  pyicloud = callPackage ../development/python-modules/pyicloud { };
 
-  nipy = callPackage ../development/python-modules/nipy { };
+  PyICU = callPackage ../development/python-modules/pyicu { };
 
-  nipype = callPackage ../development/python-modules/nipype {
-    inherit (pkgs) which;
-  };
+  pyinotify = callPackage ../development/python-modules/pyinotify { };
 
-  nitime = callPackage ../development/python-modules/nitime { };
+  pyinputevent = callPackage ../development/python-modules/pyinputevent { };
 
-  nixpkgs = callPackage ../development/python-modules/nixpkgs { };
+  pyipp = callPackage ../development/python-modules/pyipp { };
 
-  nixpkgs-pytools = callPackage ../development/python-modules/nixpkgs-pytools { };
+  pyjade = callPackage ../development/python-modules/pyjade { };
 
-  nodeenv = callPackage ../development/python-modules/nodeenv { };
+  pyjet = callPackage ../development/python-modules/pyjet { };
 
-  nose = callPackage ../development/python-modules/nose { };
+  pyjks = callPackage ../development/python-modules/pyjks { };
 
-  nose-cov = callPackage ../development/python-modules/nose-cov { };
+  pyjson5 = callPackage ../development/python-modules/pyjson5 { };
 
-  nose-exclude = callPackage ../development/python-modules/nose-exclude { };
+  pyjwkest = callPackage ../development/python-modules/pyjwkest { };
 
-  nose-focus = callPackage ../development/python-modules/nose-focus { };
+  pyjwt = callPackage ../development/python-modules/pyjwt { };
 
-  nose-randomly = callPackage ../development/python-modules/nose-randomly { };
+  pykdl = callPackage ../development/python-modules/pykdl { };
 
-  nose2 = callPackage ../development/python-modules/nose2 { };
+  pykdtree = callPackage ../development/python-modules/pykdtree { inherit (pkgs.llvmPackages) openmp; };
 
-  nose-cover3 = callPackage ../development/python-modules/nose-cover3 { };
+  pykeepass = callPackage ../development/python-modules/pykeepass { };
 
-  nosexcover = callPackage ../development/python-modules/nosexcover { };
+  pykerberos = callPackage ../development/python-modules/pykerberos { };
 
-  nosejs = callPackage ../development/python-modules/nosejs { };
+  pykickstart = callPackage ../development/python-modules/pykickstart { };
 
-  nose-cprof = callPackage ../development/python-modules/nose-cprof { };
+  pykka = callPackage ../development/python-modules/pykka { };
 
-  nose-of-yeti = callPackage ../development/python-modules/nose-of-yeti { };
+  pykwalify = callPackage ../development/python-modules/pykwalify { };
 
-  nose-pattern-exclude = callPackage ../development/python-modules/nose-pattern-exclude { };
+  pylama = callPackage ../development/python-modules/pylama { };
 
-  nose_warnings_filters = callPackage ../development/python-modules/nose_warnings_filters { };
+  pylast = callPackage ../development/python-modules/pylast { };
 
-  notebook = if isPy3k then callPackage ../development/python-modules/notebook { }
-  else callPackage ../development/python-modules/notebook/2.nix { };
+  pylatexenc = callPackage ../development/python-modules/pylatexenc { };
 
-  notedown = callPackage ../development/python-modules/notedown { };
+  PyLD = callPackage ../development/python-modules/PyLD { };
 
-  notify = callPackage ../development/python-modules/notify { };
+  pylev = callPackage ../development/python-modules/pylev { };
 
-  notify2 = callPackage ../development/python-modules/notify2 {};
+  pylibacl = callPackage ../development/python-modules/pylibacl { };
 
-  notmuch = callPackage ../development/python-modules/notmuch {
-    inherit (pkgs) notmuch;
-  };
+  pylibconfig2 = callPackage ../development/python-modules/pylibconfig2 { };
 
-  emoji = callPackage ../development/python-modules/emoji { };
+  pylibftdi = callPackage ../development/python-modules/pylibftdi { inherit (pkgs) libusb1; };
 
-  ntplib = callPackage ../development/python-modules/ntplib { };
+  pylibgen = throw "pylibgen is unmaintained upstreamed, and removed from nixpkgs"; # added 2020-06-20
 
-  num2words = callPackage ../development/python-modules/num2words { };
+  pyliblo = callPackage ../development/python-modules/pyliblo { };
 
-  numba = callPackage ../development/python-modules/numba { };
+  pylibmc = callPackage ../development/python-modules/pylibmc { };
 
-  numcodecs = callPackage ../development/python-modules/numcodecs {
-    inherit (pkgs) gcc8;
-  };
+  pylint-celery = callPackage ../development/python-modules/pylint-celery { };
 
-  numexpr = callPackage ../development/python-modules/numexpr { };
+  pylint-django = callPackage ../development/python-modules/pylint-django { };
 
-  Nuitka = callPackage ../development/python-modules/nuitka { };
+  pylint-flask = callPackage ../development/python-modules/pylint-flask { };
 
-  numpy = let
-    numpy_ = callPackage ../development/python-modules/numpy { };
-    numpy_2 = numpy_.overridePythonAttrs(oldAttrs: rec {
-      version = "1.16.5";
-      src = oldAttrs.src.override {
-        inherit version;
-        sha256 = "8bb452d94e964b312205b0de1238dd7209da452343653ab214b5d681780e7a0c";
-      };
-    });
-  in if pythonOlder "3.5" then numpy_2 else numpy_;
+  pylint = if isPy3k then
+    callPackage ../development/python-modules/pylint { }
+  else
+    callPackage ../development/python-modules/pylint/1.9.nix { };
 
-  numpydoc = callPackage ../development/python-modules/numpydoc { };
+  pylint-plugin-utils = callPackage ../development/python-modules/pylint-plugin-utils { };
 
-  numpy-stl = callPackage ../development/python-modules/numpy-stl { };
+  py-lru-cache = callPackage ../development/python-modules/py-lru-cache { };
 
-  numtraits = callPackage ../development/python-modules/numtraits { };
+  pylru = callPackage ../development/python-modules/pylru { };
 
-  nwdiag = callPackage ../development/python-modules/nwdiag { };
+  pyls-black = callPackage ../development/python-modules/pyls-black { };
 
-  dynd = callPackage ../development/python-modules/dynd { };
+  pyls-isort = callPackage ../development/python-modules/pyls-isort { };
 
-  langcodes = callPackage ../development/python-modules/langcodes { };
+  pyls-mypy = callPackage ../development/python-modules/pyls-mypy { };
 
-  livestreamer = callPackage ../development/python-modules/livestreamer { };
+  PyLTI = callPackage ../development/python-modules/pylti { };
 
-  livestreamer-curses = callPackage ../development/python-modules/livestreamer-curses { };
+  pymacaroons = callPackage ../development/python-modules/pymacaroons { };
 
-  oauth = callPackage ../development/python-modules/oauth { };
+  pymaging = callPackage ../development/python-modules/pymaging { };
 
-  oauth2 = callPackage ../development/python-modules/oauth2 { };
+  pymaging_png = callPackage ../development/python-modules/pymaging_png { };
 
-  oauth2client = callPackage ../development/python-modules/oauth2client { };
+  pymatgen = callPackage ../development/python-modules/pymatgen { };
 
-  oauthlib = if isPy27 then
-      callPackage ../development/python-modules/oauthlib/3.1.nix { }
-    else
-      callPackage ../development/python-modules/oauthlib { };
+  pymatgen-lammps = callPackage ../development/python-modules/pymatgen-lammps { };
 
-  obfsproxy = callPackage ../development/python-modules/obfsproxy { };
+  pymavlink = callPackage ../development/python-modules/pymavlink { };
 
-  objgraph = callPackage ../development/python-modules/objgraph {
-    graphvizPkg = pkgs.graphviz;
-  };
+  pymbolic = callPackage ../development/python-modules/pymbolic { };
 
-  odo = callPackage ../development/python-modules/odo { };
+  pymc3 = callPackage ../development/python-modules/pymc3 { };
 
-  offtrac = callPackage ../development/python-modules/offtrac { };
+  pymediainfo = callPackage ../development/python-modules/pymediainfo { };
 
-  openpyxl = if pythonAtLeast "3.6" then
-    callPackage ../development/python-modules/openpyxl { }
-  else
-    callPackage ../development/python-modules/openpyxl/2.nix { };
+  pymeeus = callPackage ../development/python-modules/pymeeus { };
 
-  opentimestamps = callPackage ../development/python-modules/opentimestamps { };
+  pymemoize = callPackage ../development/python-modules/pymemoize { };
 
-  ordereddict = callPackage ../development/python-modules/ordereddict { };
+  pyment = callPackage ../development/python-modules/pyment { };
 
-  od = callPackage ../development/python-modules/od { };
+  pymetar = callPackage ../development/python-modules/pymetar { };
 
-  omegaconf = callPackage ../development/python-modules/omegaconf { };
+  pymetno = callPackage ../development/python-modules/pymetno { };
 
-  opuslib = callPackage ../development/python-modules/opuslib { };
+  pymongo = callPackage ../development/python-modules/pymongo { };
 
-  orderedset = callPackage ../development/python-modules/orderedset { };
+  pympler = callPackage ../development/python-modules/pympler { };
 
-  python-multipart = callPackage ../development/python-modules/python-multipart { };
+  pymsgbox = callPackage ../development/python-modules/pymsgbox { };
 
-  python-otr = callPackage ../development/python-modules/python-otr { };
+  pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04
 
-  plone-testing = callPackage ../development/python-modules/plone-testing { };
+  py-multibase = callPackage ../development/python-modules/py-multibase { };
 
-  ply = callPackage ../development/python-modules/ply { };
+  py-multihash = callPackage ../development/python-modules/py-multihash { };
 
-  plyplus = callPackage ../development/python-modules/plyplus { };
+  pymumble = callPackage ../development/python-modules/pymumble { };
 
-  plyvel = callPackage ../development/python-modules/plyvel { };
+  pymupdf = callPackage ../development/python-modules/pymupdf { };
 
-  osc = callPackage ../development/python-modules/osc { };
+  PyMVGLive = callPackage ../development/python-modules/pymvglive { };
 
-  rfc3986 = callPackage ../development/python-modules/rfc3986 { };
+  pymysql = callPackage ../development/python-modules/pymysql { };
 
-  cachetools = let
-    cachetools' = callPackage ../development/python-modules/cachetools {};
-    cachetools_2 = cachetools'.overridePythonAttrs(oldAttrs: rec {
-      version = "3.1.1";
-      src = oldAttrs.src.override {
-        inherit version;
-        sha256 = "16m69l6n6y1r1y7cklm92rr7v69ldig2n3lbl3j323w5jz7d78lf";
-      };
+  pymysqlsa = callPackage ../development/python-modules/pymysqlsa { };
 
-    });
-  in if isPy3k then cachetools' else cachetools_2;
+  pymystem3 = callPackage ../development/python-modules/pymystem3 { };
 
-  cma = callPackage ../development/python-modules/cma { };
+  pynac = callPackage ../development/python-modules/pynac { };
 
-  cmd2 = callPackage ../development/python-modules/cmd2 {};
+  pynacl = callPackage ../development/python-modules/pynacl { };
 
-  warlock = callPackage ../development/python-modules/warlock { };
+  pynamecheap = callPackage ../development/python-modules/pynamecheap { };
 
-  pecan = callPackage ../development/python-modules/pecan { };
+  pynamodb = callPackage ../development/python-modules/pynamodb { };
 
-  kaitaistruct = callPackage ../development/python-modules/kaitaistruct { };
+  pynanoleaf = callPackage ../development/python-modules/pynanoleaf { };
 
-  Kajiki = callPackage ../development/python-modules/kajiki { };
+  pync = callPackage ../development/python-modules/pync { };
 
-  WSME = callPackage ../development/python-modules/WSME { };
+  pynisher = callPackage ../development/python-modules/pynisher { };
 
-  zake = callPackage ../development/python-modules/zake { };
+  pynmea2 = callPackage ../development/python-modules/pynmea2 { };
 
-  zarr = callPackage ../development/python-modules/zarr { };
+  pynput = callPackage ../development/python-modules/pynput { };
 
-  kazoo = callPackage ../development/python-modules/kazoo { };
+  pynrrd = callPackage ../development/python-modules/pynrrd { };
 
-  FormEncode = callPackage ../development/python-modules/FormEncode { };
+  pynvim = callPackage ../development/python-modules/pynvim { };
 
-  pycountry = callPackage ../development/python-modules/pycountry { };
+  pynvml = callPackage ../development/python-modules/pynvml { };
 
-  nine = callPackage ../development/python-modules/nine { };
+  pynzb = callPackage ../development/python-modules/pynzb { };
 
-  logutils = callPackage ../development/python-modules/logutils { };
+  pyobjc = if stdenv.isDarwin then
+    callPackage ../development/python-modules/pyobjc { }
+  else
+    throw "pyobjc can only be built on Mac OS";
 
-  ldappool = callPackage ../development/python-modules/ldappool { };
+  pyocr = callPackage ../development/python-modules/pyocr {
+    tesseract = pkgs.tesseract_4;
+  };
 
-  retrying = callPackage ../development/python-modules/retrying { };
+  pyodbc = callPackage ../development/python-modules/pyodbc { };
 
-  fasteners = callPackage ../development/python-modules/fasteners { };
+  pyogg = callPackage ../development/python-modules/pyogg { };
 
-  aiocontextvars = callPackage ../development/python-modules/aiocontextvars { };
+  pyomo = callPackage ../development/python-modules/pyomo { };
 
-  aioeventlet = callPackage ../development/python-modules/aioeventlet { };
+  pyopencl = callPackage ../development/python-modules/pyopencl { };
 
-  aiokafka = callPackage ../development/python-modules/aiokafka { };
+  pyopengl = callPackage ../development/python-modules/pyopengl { };
 
-  olefile = callPackage ../development/python-modules/olefile { };
+  pyopenssl = callPackage ../development/python-modules/pyopenssl { };
 
-  requests-mock = callPackage ../development/python-modules/requests-mock { };
+  pyosmium = callPackage ../development/python-modules/pyosmium { };
 
-  mecab-python3 = callPackage ../development/python-modules/mecab-python3 { };
+  pyotp = callPackage ../development/python-modules/pyotp { };
 
-  mox3 = callPackage ../development/python-modules/mox3 { };
+  pyowm = callPackage ../development/python-modules/pyowm { };
 
-  doc8 = callPackage ../development/python-modules/doc8 { };
+  pypamtest = pkgs.libpam-wrapper.override {
+    enablePython = true;
+    inherit python;
+  };
 
-  wrapt = callPackage ../development/python-modules/wrapt { };
+  pypandoc = callPackage ../development/python-modules/pypandoc { };
 
-  pagerduty = callPackage ../development/python-modules/pagerduty { };
+  pyparser = callPackage ../development/python-modules/pyparser { };
 
-  pandas = if isPy3k then
-    callPackage ../development/python-modules/pandas { }
-  else
-    callPackage ../development/python-modules/pandas/2.nix { };
+  pyparsing = callPackage ../development/python-modules/pyparsing { };
 
-  panel = callPackage ../development/python-modules/panel { };
+  pyparted = callPackage ../development/python-modules/pyparted { };
 
-  xlrd = callPackage ../development/python-modules/xlrd { };
+  pypcap = callPackage ../development/python-modules/pypcap { };
 
-  bottleneck = callPackage ../development/python-modules/bottleneck { };
+  pypdf2 = callPackage ../development/python-modules/pypdf2 { };
 
-  paho-mqtt = callPackage ../development/python-modules/paho-mqtt { };
+  pyPdf = callPackage ../development/python-modules/pypdf { };
 
-  pagelabels = callPackage ../development/python-modules/pagelabels { };
+  pypeg2 = callPackage ../development/python-modules/pypeg2 { };
 
-  pamqp = callPackage ../development/python-modules/pamqp { };
+  pyperclip = callPackage ../development/python-modules/pyperclip { };
 
-  parsedatetime = callPackage ../development/python-modules/parsedatetime { };
+  pyperf = callPackage ../development/python-modules/pyperf { };
 
-  param = callPackage ../development/python-modules/param { };
+  pyphen = callPackage ../development/python-modules/pyphen { };
 
-  paramiko = callPackage ../development/python-modules/paramiko { };
+  pyphotonfile = callPackage ../development/python-modules/pyphotonfile { };
 
-  parameterized = callPackage ../development/python-modules/parameterized { };
+  pypillowfight = callPackage ../development/python-modules/pypillowfight { };
 
-  paramz = callPackage ../development/python-modules/paramz { };
+  pyplatec = callPackage ../development/python-modules/pyplatec { };
 
-  parfive = callPackage ../development/python-modules/parfive { };
+  pypoppler = callPackage ../development/python-modules/pypoppler { };
 
-  parsel = callPackage ../development/python-modules/parsel { };
+  pyprind = callPackage ../development/python-modules/pyprind { };
 
-  parso = callPackage ../development/python-modules/parso { };
+  pyprof2calltree = callPackage ../development/python-modules/pyprof2calltree { };
 
-  partd = callPackage ../development/python-modules/partd { };
+  pyproj = callPackage ../development/python-modules/pyproj { };
 
-  patch = callPackage ../development/python-modules/patch { };
+  pyptlib = callPackage ../development/python-modules/pyptlib { };
 
-  patch-ng = callPackage ../development/python-modules/patch-ng { };
+  pypubsub = callPackage ../development/python-modules/pypubsub { };
 
-  pathos = callPackage ../development/python-modules/pathos { };
+  pyqrcode = callPackage ../development/python-modules/pyqrcode { };
 
-  patsy = callPackage ../development/python-modules/patsy { };
+  pyqt4 = callPackage ../development/python-modules/pyqt/4.x.nix { inherit (pkgs) pkgconfig; };
 
-  paste = callPackage ../development/python-modules/paste { };
+  pyqt5 = pkgs.libsForQt5.callPackage ../development/python-modules/pyqt/5.x.nix { pythonPackages = self; };
 
-  PasteDeploy = callPackage ../development/python-modules/pastedeploy { };
+  pyqt5_with_qtmultimedia = self.pyqt5.override { withMultimedia = true; };
 
-  pasteScript = callPackage ../development/python-modules/pastescript { };
+  /*
+    `pyqt5_with_qtwebkit` should not be used by python libraries in
+    pkgs/development/python-modules/*. Putting this attribute in
+    `propagatedBuildInputs` may cause collisions.
+  */
+  pyqt5_with_qtwebkit = self.pyqt5.override { withWebKit = true; };
 
-  patator = callPackage ../development/python-modules/patator { };
+  pyqtgraph = callPackage ../development/python-modules/pyqtgraph { };
 
-  pathlib2 = callPackage ../development/python-modules/pathlib2 { };
+  pyqtwebengine = pkgs.libsForQt5.callPackage ../development/python-modules/pyqtwebengine { pythonPackages = self; };
 
-  pathpy = if isPy3k then
-    callPackage ../development/python-modules/path.py { }
-  else
-    callPackage ../development/python-modules/path.py/2.nix { };
+  pyquery = callPackage ../development/python-modules/pyquery { };
 
-  paypalrestsdk = callPackage ../development/python-modules/paypalrestsdk { };
+  pyrabbit2 = callPackage ../development/python-modules/pyrabbit2 { };
 
-  pbr = callPackage ../development/python-modules/pbr { };
+  pyrad = callPackage ../development/python-modules/pyrad { };
 
-  fixtures = callPackage ../development/python-modules/fixtures { };
+  py-radix = callPackage ../development/python-modules/py-radix { };
 
-  fipy = callPackage ../development/python-modules/fipy { };
+  pyramid_beaker = callPackage ../development/python-modules/pyramid_beaker { };
 
-  sfepy = callPackage ../development/python-modules/sfepy { };
+  pyramid = callPackage ../development/python-modules/pyramid { };
 
-  pelican = callPackage ../development/python-modules/pelican {
-    inherit (pkgs) glibcLocales git;
-  };
+  pyramid_chameleon = callPackage ../development/python-modules/pyramid_chameleon { };
 
-  pep8 = callPackage ../development/python-modules/pep8 { };
+  pyramid_exclog = callPackage ../development/python-modules/pyramid_exclog { };
 
-  pep8-naming = callPackage ../development/python-modules/pep8-naming { };
+  pyramid_hawkauth = callPackage ../development/python-modules/pyramid_hawkauth { };
 
-  pep257 = callPackage ../development/python-modules/pep257 { };
+  pyramid_jinja2 = callPackage ../development/python-modules/pyramid_jinja2 { };
 
-  percol = callPackage ../development/python-modules/percol { };
+  pyramid_mako = callPackage ../development/python-modules/pyramid_mako { };
 
-  pexif = callPackage ../development/python-modules/pexif { };
+  pyramid_multiauth = callPackage ../development/python-modules/pyramid_multiauth { };
 
-  pexpect = callPackage ../development/python-modules/pexpect { };
+  pyreadability = callPackage ../development/python-modules/pyreadability { };
 
-  pdfkit = callPackage ../development/python-modules/pdfkit { };
+  pyrealsense2 = toPythonModule (pkgs.librealsense.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  pdfrw = callPackage ../development/python-modules/pdfrw { };
+  pyrealsense2WithCuda = toPythonModule (pkgs.librealsenseWithCuda.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  periodictable = callPackage ../development/python-modules/periodictable { };
+  pyrealsense2WithoutCuda = toPythonModule (pkgs.librealsenseWithoutCuda.override {
+    enablePython = true;
+    pythonPackages = self;
+  });
 
-  pgcli = callPackage ../development/tools/database/pgcli {};
+  pyregion = callPackage ../development/python-modules/pyregion { };
 
-  pg8000 = callPackage ../development/python-modules/pg8000 { };
-  pg8000_1_12 = callPackage ../development/python-modules/pg8000/1_12.nix { };
+  pyreport = callPackage ../development/python-modules/pyreport { };
 
-  pglast = callPackage ../development/python-modules/pglast { };
+  pyres = callPackage ../development/python-modules/pyres { };
 
-  pgsanity = callPackage ../development/python-modules/pgsanity { };
+  pyRFC3339 = callPackage ../development/python-modules/pyrfc3339 { };
 
-  pgspecial = callPackage ../development/python-modules/pgspecial { };
+  PyRMVtransport = callPackage ../development/python-modules/PyRMVtransport { };
 
-  pgpy = callPackage ../development/python-modules/pgpy { };
+  Pyro4 = callPackage ../development/python-modules/pyro4 { };
 
-  pickleshare = callPackage ../development/python-modules/pickleshare { };
+  Pyro5 = callPackage ../development/python-modules/pyro5 { };
 
-  picos = callPackage ../development/python-modules/picos { };
+  pyroma = callPackage ../development/python-modules/pyroma { };
 
-  piep = callPackage ../development/python-modules/piep { };
+  pyro-ppl = callPackage ../development/python-modules/pyro-ppl { };
 
-  piexif = callPackage ../development/python-modules/piexif { };
+  pyroute2 = callPackage ../development/python-modules/pyroute2 { };
 
-  pip = callPackage ../development/python-modules/pip { };
+  pyrr = callPackage ../development/python-modules/pyrr { };
 
-  pip-tools = callPackage ../development/python-modules/pip-tools {
-    git = pkgs.gitMinimal;
-    glibcLocales = pkgs.glibcLocales;
-  };
+  pyrsistent = callPackage ../development/python-modules/pyrsistent { };
 
-  pipdate = callPackage ../development/python-modules/pipdate { };
+  PyRSS2Gen = callPackage ../development/python-modules/pyrss2gen { };
 
-  pika = callPackage ../development/python-modules/pika { };
+  pyrtlsdr = callPackage ../development/python-modules/pyrtlsdr { };
 
-  pika-pool = callPackage ../development/python-modules/pika-pool { };
+  pysam = callPackage ../development/python-modules/pysam { };
 
-  pikepdf = callPackage ../development/python-modules/pikepdf { };
+  pysaml2 = callPackage ../development/python-modules/pysaml2 { inherit (pkgs) xmlsec; };
 
-  kmapper = callPackage ../development/python-modules/kmapper { };
+  pysc2 = callPackage ../development/python-modules/pysc2 { };
 
-  kmsxx = toPythonModule ((callPackage ../development/libraries/kmsxx {
-    inherit (pkgs.kmsxx) stdenv;
-    inherit (pkgs) pkgconfig;
-    withPython = true;
-  }).overrideAttrs (oldAttrs: {
-    name = "${python.libPrefix}-${pkgs.kmsxx.name}";
-  }));
+  pyscard = callPackage ../development/python-modules/pyscard { inherit (pkgs.darwin.apple_sdk.frameworks) PCSC; };
 
-  precis-i18n = callPackage ../development/python-modules/precis-i18n { };
+  pyschedule = callPackage ../development/python-modules/pyschedule { };
 
-  promise = callPackage ../development/python-modules/promise { };
+  pyscreenshot = callPackage ../development/python-modules/pyscreenshot { };
 
-  prox-tv = callPackage ../development/python-modules/prox-tv { };
+  py_scrypt = callPackage ../development/python-modules/py_scrypt { };
 
-  pvlib = callPackage ../development/python-modules/pvlib { };
+  pyscrypt = callPackage ../development/python-modules/pyscrypt { };
 
-  pybase64 = callPackage ../development/python-modules/pybase64 { };
+  pyscss = callPackage ../development/python-modules/pyscss { };
 
-  pylibconfig2 = callPackage ../development/python-modules/pylibconfig2 { };
+  pysdl2 = callPackage ../development/python-modules/pysdl2 { };
 
-  pylibmc = callPackage ../development/python-modules/pylibmc {};
+  pysendfile = callPackage ../development/python-modules/pysendfile { };
 
-  pymetar = callPackage ../development/python-modules/pymetar { };
+  pysensors = callPackage ../development/python-modules/pysensors { };
+
+  pyserial-asyncio = callPackage ../development/python-modules/pyserial-asyncio { };
+
+  pyserial = callPackage ../development/python-modules/pyserial { };
 
   pysftp = callPackage ../development/python-modules/pysftp { };
 
-  soundfile = callPackage ../development/python-modules/soundfile { };
+  pysha3 = callPackage ../development/python-modules/pysha3 { };
 
-  pysoundfile = self.soundfile;  # Alias added 23-06-2019
+  pyshp = callPackage ../development/python-modules/pyshp { };
 
-  python-jenkins = callPackage ../development/python-modules/python-jenkins { };
+  pyside2-tools =
+    toPythonModule (callPackage ../development/python-modules/pyside2-tools { inherit (pkgs) cmake qt5; });
 
-  pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
+  pyside2 = toPythonModule (callPackage ../development/python-modules/pyside2 { inherit (pkgs) cmake ninja qt5; });
 
-  pyviz-comms = callPackage ../development/python-modules/pyviz-comms { };
+  pyside = callPackage ../development/python-modules/pyside { inherit (pkgs) mesa; };
 
-  pillow = if isPy27 then
-    callPackage ../development/python-modules/pillow/6.nix {
-      inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk;
-      inherit (pkgs.xorg) libX11;
-    } else
-    callPackage ../development/python-modules/pillow {
-      inherit (pkgs) freetype libjpeg zlib libtiff libwebp tcl lcms2 tk;
-      inherit (pkgs.xorg) libX11;
-  };
+  pysideShiboken = callPackage ../development/python-modules/pyside/shiboken.nix { inherit (pkgs) libxml2 libxslt; };
 
-  pkgconfig = callPackage ../development/python-modules/pkgconfig {
-    inherit (pkgs) pkgconfig;
-  };
+  pysideTools = callPackage ../development/python-modules/pyside/tools.nix { };
 
-  plumbum = callPackage ../development/python-modules/plumbum { };
+  pysigset = callPackage ../development/python-modules/pysigset { };
 
-  polib = callPackage ../development/python-modules/polib {};
+  pysingleton = callPackage ../development/python-modules/pysingleton { };
 
-  ponywhoosh = callPackage ../development/python-modules/ponywhoosh { };
+  pyslurm = callPackage ../development/python-modules/pyslurm { slurm = pkgs.slurm; };
 
-  posix_ipc = callPackage ../development/python-modules/posix_ipc { };
+  pysmb = callPackage ../development/python-modules/pysmb { };
 
-  portend = callPackage ../development/python-modules/portend { };
+  pysmbc = callPackage ../development/python-modules/pysmbc { inherit (pkgs) pkgconfig; };
 
-  powerline = callPackage ../development/python-modules/powerline { };
+  pysmf = callPackage ../development/python-modules/pysmf { };
 
-  pox = callPackage ../development/python-modules/pox { };
+  pysmi = callPackage ../development/python-modules/pysmi { };
 
-  ppft = callPackage ../development/python-modules/ppft { };
+  pysnmp = callPackage ../development/python-modules/pysnmp { };
 
-  pproxy = callPackage ../development/python-modules/pproxy { };
+  pysnooper = callPackage ../development/python-modules/pysnooper { };
 
-  praw = if isPy3k then callPackage ../development/python-modules/praw { }
-    else callPackage ../development/python-modules/praw/6.3.nix { };
+  pysnow = callPackage ../development/python-modules/pysnow { };
 
-  prance = callPackage ../development/python-modules/prance { };
+  pysocks = callPackage ../development/python-modules/pysocks { };
 
-  prawcore = callPackage ../development/python-modules/prawcore { };
+  pysolr = callPackage ../development/python-modules/pysolr { };
 
-  premailer = callPackage ../development/python-modules/premailer { };
+  pysonos = callPackage ../development/python-modules/pysonos { };
 
-  prettytable = callPackage ../development/python-modules/prettytable { };
+  pysoundfile = self.soundfile; # Alias added 23-06-2019
 
-  property-manager = callPackage ../development/python-modules/property-manager { };
+  pyspark = callPackage ../development/python-modules/pyspark { };
 
-  prompt_toolkit = let
-    filename = if isPy3k then ../development/python-modules/prompt_toolkit else ../development/python-modules/prompt_toolkit/1.nix;
-  in callPackage filename { };
+  pysparse = callPackage ../development/python-modules/pysparse { };
 
-  protobuf = callPackage ../development/python-modules/protobuf {
-    disabled = isPyPy;
-    doCheck = !isPy3k;
-    protobuf = pkgs.protobuf3_8;
-  };
+  pyspf = callPackage ../development/python-modules/pyspf { };
 
-  psd-tools = callPackage ../development/python-modules/psd-tools { };
+  pyspice = callPackage ../development/python-modules/pyspice { };
 
-  psutil = callPackage ../development/python-modules/psutil { };
+  pyspinel = callPackage ../development/python-modules/pyspinel { };
 
-  psycopg2 = callPackage ../development/python-modules/psycopg2 {};
+  pyspotify = callPackage ../development/python-modules/pyspotify { };
 
-  ptpython = callPackage ../development/python-modules/ptpython {
-    prompt_toolkit = self.prompt_toolkit;
-  };
+  pyspread = callPackage ../development/python-modules/pyspread { };
 
-  ptable = callPackage ../development/python-modules/ptable { };
+  pysptk = callPackage ../development/python-modules/pysptk { };
 
-  publicsuffix = callPackage ../development/python-modules/publicsuffix {};
+  pysqlite = callPackage ../development/python-modules/pysqlite { };
 
-  publicsuffix2 = callPackage ../development/python-modules/publicsuffix2 {};
+  pysqueezebox = callPackage ../development/python-modules/pysqueezebox { };
 
-  py = callPackage ../development/python-modules/py { };
+  pysrim = callPackage ../development/python-modules/pysrim { };
 
-  pyacoustid = callPackage ../development/python-modules/pyacoustid { };
+  pysrt = callPackage ../development/python-modules/pysrt { };
 
-  pyalgotrade = callPackage ../development/python-modules/pyalgotrade { };
+  pyssim = callPackage ../development/python-modules/pyssim { };
 
-  pyasn1 = callPackage ../development/python-modules/pyasn1 { };
+  pystache = callPackage ../development/python-modules/pystache { };
 
-  pyasn1-modules = callPackage ../development/python-modules/pyasn1-modules { };
+  pystemd = callPackage ../development/python-modules/pystemd { systemd = pkgs.systemd; };
 
-  pyatmo = callPackage ../development/python-modules/pyatmo { };
+  PyStemmer = callPackage ../development/python-modules/pystemmer { };
 
-  pyaudio = callPackage ../development/python-modules/pyaudio { };
+  pystray = callPackage ../development/python-modules/pystray { };
 
-  pysam = callPackage ../development/python-modules/pysam { };
+  py_stringmatching = callPackage ../development/python-modules/py_stringmatching { };
 
-  pysaml2 = callPackage ../development/python-modules/pysaml2 {
-    inherit (pkgs) xmlsec;
-  };
+  pystringtemplate = callPackage ../development/python-modules/stringtemplate { };
 
-  python-pushover = callPackage ../development/python-modules/pushover {};
+  pysvn = callPackage ../development/python-modules/pysvn { };
 
-  pystemd = callPackage ../development/python-modules/pystemd { systemd = pkgs.systemd; };
+  pytabix = callPackage ../development/python-modules/pytabix { };
 
-  mongodict = callPackage ../development/python-modules/mongodict { };
+  pytado = callPackage ../development/python-modules/pytado { };
 
-  mongoengine = callPackage ../development/python-modules/mongoengine { };
+  pytaglib = callPackage ../development/python-modules/pytaglib { };
 
-  repoze_who = callPackage ../development/python-modules/repoze_who { };
+  pyte = callPackage ../development/python-modules/pyte { };
 
-  vobject = callPackage ../development/python-modules/vobject { };
+  pytelegrambotapi = callPackage ../development/python-modules/pyTelegramBotAPI { };
 
-  pycarddav = callPackage ../development/python-modules/pycarddav { };
+  pytesseract = callPackage ../development/python-modules/pytesseract { };
 
-  pygit2 = callPackage ../development/python-modules/pygit2 { };
+  # pytest>=6 is too new for most packages
+  pytest = if isPy3k then self.pytest_5 else self.pytest_4;
 
-  Babel = callPackage ../development/python-modules/Babel { };
+  pytest_4 = callPackage
+    ../development/python-modules/pytest/4.nix { # hypothesis tests require pytest that causes dependency cycle
+      hypothesis = self.hypothesis.override { doCheck = false; };
+    };
 
-  babelgladeextractor = callPackage ../development/python-modules/babelgladeextractor { };
+  pytest_5 = callPackage
+    ../development/python-modules/pytest/5.nix { # hypothesis tests require pytest that causes dependency cycle
+      hypothesis = self.hypothesis.override { doCheck = false; };
+    };
 
-  pybfd = callPackage ../development/python-modules/pybfd { };
+  pytest_6 =
+    callPackage ../development/python-modules/pytest { # hypothesis tests require pytest that causes dependency cycle
+      hypothesis = self.hypothesis.override { doCheck = false; };
+    };
 
-  pybigwig = callPackage ../development/python-modules/pybigwig { };
+  pytest-aiohttp = callPackage ../development/python-modules/pytest-aiohttp { };
 
-  py2bit = callPackage ../development/python-modules/py2bit { };
+  pytest-annotate = callPackage ../development/python-modules/pytest-annotate { };
 
-  pyblock = callPackage ../development/python-modules/pyblock { };
+  pytest-ansible = callPackage ../development/python-modules/pytest-ansible { };
 
-  pyblosxom = callPackage ../development/python-modules/pyblosxom { };
+  pytest-arraydiff = callPackage ../development/python-modules/pytest-arraydiff { };
 
-  pycapnp = callPackage ../development/python-modules/pycapnp { };
+  pytest-astropy = callPackage ../development/python-modules/pytest-astropy { };
 
-  pycaption = callPackage ../development/python-modules/pycaption { };
+  pytest-astropy-header = callPackage ../development/python-modules/pytest-astropy-header { };
 
-  pycdio = callPackage ../development/python-modules/pycdio { };
+  pytest-asyncio = callPackage ../development/python-modules/pytest-asyncio { };
 
-  pycosat = callPackage ../development/python-modules/pycosat { };
+  pytest-bdd = callPackage ../development/python-modules/pytest-bdd { };
 
-  pycryptopp = callPackage ../development/python-modules/pycryptopp { };
+  pytest-benchmark = callPackage ../development/python-modules/pytest-benchmark { };
 
-  pyct = callPackage ../development/python-modules/pyct { };
+  pytest-black = callPackage ../development/python-modules/pytest-black { };
 
-  pycups = callPackage ../development/python-modules/pycups { };
+  pytestcache = callPackage ../development/python-modules/pytestcache { };
 
-  pycurl = callPackage ../development/python-modules/pycurl { };
+  pytest-catchlog = callPackage ../development/python-modules/pytest-catchlog { };
 
-  pycurl2 = callPackage ../development/python-modules/pycurl2 { };
+  pytest-check = callPackage ../development/python-modules/pytest-check { };
 
-  pydispatcher = callPackage ../development/python-modules/pydispatcher { };
+  pytest-click = callPackage ../development/python-modules/pytest-click { };
 
-  pydot = callPackage ../development/python-modules/pydot {
-    inherit (pkgs) graphviz;
-  };
+  pytestcov = callPackage ../development/python-modules/pytest-cov { };
 
-  pydot_ng = callPackage ../development/python-modules/pydot_ng { graphviz = pkgs.graphviz; };
+  pytest-cram = callPackage ../development/python-modules/pytest-cram { };
 
-  pyelftools = callPackage ../development/python-modules/pyelftools { };
+  pytest-datadir = callPackage ../development/python-modules/pytest-datadir { };
 
-  pyenchant = callPackage ../development/python-modules/pyenchant { enchant2 = pkgs.enchant2; };
+  pytest-datafiles = callPackage ../development/python-modules/pytest-datafiles { };
 
-  pyexcelerator = callPackage ../development/python-modules/pyexcelerator { };
+  pytest-dependency = callPackage ../development/python-modules/pytest-dependency { };
 
-  pyext = callPackage ../development/python-modules/pyext { };
+  pytest-django = callPackage ../development/python-modules/pytest-django { };
 
-  pyface = callPackage ../development/python-modules/pyface { };
+  pytest-doctestplus = callPackage ../development/python-modules/pytest-doctestplus { };
 
-  pyfantom = callPackage ../development/python-modules/pyfantom { };
+  pytest-env = callPackage ../development/python-modules/pytest-env { };
 
-  pyfma = callPackage ../development/python-modules/pyfma { };
+  pytest-expect = callPackage ../development/python-modules/pytest-expect { };
 
-  pyfftw = callPackage ../development/python-modules/pyfftw { };
+  pytest-factoryboy = callPackage ../development/python-modules/pytest-factoryboy { };
 
-  pyfiglet = callPackage ../development/python-modules/pyfiglet { };
+  pytest-filter-subpackage = callPackage ../development/python-modules/pytest-filter-subpackage { };
 
-  pyflakes = callPackage ../development/python-modules/pyflakes { };
+  pytest-fixture-config = callPackage ../development/python-modules/pytest-fixture-config { };
 
-  pyftgl = callPackage ../development/python-modules/pyftgl { };
+  pytest-flake8 = callPackage ../development/python-modules/pytest-flake8 { };
 
-  pygeoip = callPackage ../development/python-modules/pygeoip {};
+  pytest-flakes = callPackage ../development/python-modules/pytest-flakes { };
 
-  PyGithub = callPackage ../development/python-modules/pyGithub {};
+  pytest-flask = callPackage ../development/python-modules/pytest-flask { };
 
-  pyglet = callPackage ../development/python-modules/pyglet {};
+  pytest-forked = callPackage ../development/python-modules/pytest-forked { };
 
-  pygments = callPackage ../development/python-modules/Pygments { };
+  pytest-freezegun = callPackage ../development/python-modules/pytest-freezegun { };
 
-  pygpgme = callPackage ../development/python-modules/pygpgme { };
+  pytest-helpers-namespace = callPackage ../development/python-modules/pytest-helpers-namespace { };
 
-  pyment = callPackage ../development/python-modules/pyment { };
+  pyopengl-accelerate = callPackage ../development/python-modules/pyopengl-accelerate { };
 
-  pylint = if isPy3k then callPackage ../development/python-modules/pylint { }
-           else callPackage ../development/python-modules/pylint/1.9.nix { };
+  pytest-html = callPackage ../development/python-modules/pytest-html { };
 
-  pylint-celery = callPackage ../development/python-modules/pylint-celery { };
+  pytest-httpbin = callPackage ../development/python-modules/pytest-httpbin { };
 
-  pylint-django = callPackage ../development/python-modules/pylint-django { };
+  pytest-isort = callPackage ../development/python-modules/pytest-isort { };
 
-  pylint-flask = callPackage ../development/python-modules/pylint-flask { };
+  pytest-lazy-fixture = callPackage ../development/python-modules/pytest-lazy-fixture { };
 
-  pylint-plugin-utils = callPackage ../development/python-modules/pylint-plugin-utils { };
+  pytest-localserver = callPackage ../development/python-modules/pytest-localserver { };
 
-  pymumble = callPackage ../development/python-modules/pymumble { };
+  pytest-metadata = callPackage ../development/python-modules/pytest-metadata { };
 
-  pyomo = callPackage ../development/python-modules/pyomo { };
+  pytest-mock = if isPy3k then
+    callPackage ../development/python-modules/pytest-mock { }
+  else
+    callPackage ../development/python-modules/pytest-mock/2.nix { };
 
-  pyopencl = callPackage ../development/python-modules/pyopencl { };
+  pytest-mpl = callPackage ../development/python-modules/pytest-mpl { };
 
-  pyosmium = callPackage ../development/python-modules/pyosmium { };
+  pytest-mypy = callPackage ../development/python-modules/pytest-mypy { };
 
-  pyotp = callPackage ../development/python-modules/pyotp { };
+  pytest-openfiles = callPackage ../development/python-modules/pytest-openfiles { };
 
-  pyproj = callPackage ../development/python-modules/pyproj { };
+  pytest-ordering = callPackage ../development/python-modules/pytest-ordering { };
 
-  pyqrcode = callPackage ../development/python-modules/pyqrcode { };
+  pytest-pep257 = callPackage ../development/python-modules/pytest-pep257 { };
 
-  pyrabbit2 = callPackage ../development/python-modules/pyrabbit2 { };
+  pytestpep8 = callPackage ../development/python-modules/pytest-pep8 { };
 
-  pyrad = callPackage ../development/python-modules/pyrad { };
+  pytest-pylint = callPackage ../development/python-modules/pytest-pylint { };
 
-  pyrr = callPackage ../development/python-modules/pyrr { };
+  pytest-pythonpath = callPackage ../development/python-modules/pytest-pythonpath { };
 
-  pysha3 = callPackage ../development/python-modules/pysha3 { };
+  pytest-qt = callPackage ../development/python-modules/pytest-qt { };
 
-  pyshp = callPackage ../development/python-modules/pyshp { };
+  pytestquickcheck = callPackage ../development/python-modules/pytest-quickcheck { };
 
-  pysnow = callPackage ../development/python-modules/pysnow { };
+  pytest-raisesregexp = callPackage ../development/python-modules/pytest-raisesregexp { };
 
-  pysmbc = callPackage ../development/python-modules/pysmbc {
-    inherit (pkgs) pkgconfig;
-  };
+  pytest-randomly = callPackage ../development/python-modules/pytest-randomly { };
 
-  pyspread = callPackage ../development/python-modules/pyspread { };
+  pytest-random-order = callPackage ../development/python-modules/pytest-random-order { };
 
-  pysparse = callPackage ../development/python-modules/pysparse { };
+  pytest-relaxed = callPackage ../development/python-modules/pytest-relaxed { };
 
-  pyupdate = callPackage ../development/python-modules/pyupdate {};
+  pytest-remotedata = callPackage ../development/python-modules/pytest-remotedata { };
 
-  pyvmomi = callPackage ../development/python-modules/pyvmomi { };
+  pytest-repeat = callPackage ../development/python-modules/pytest-repeat { };
 
-  pyx = callPackage ../development/python-modules/pyx { };
+  pytest-rerunfailures = callPackage ../development/python-modules/pytest-rerunfailures { };
 
-  mmpython = callPackage ../development/python-modules/mmpython { };
+  pytestrunner = callPackage ../development/python-modules/pytestrunner { };
 
-  kaa-base = callPackage ../development/python-modules/kaa-base { };
+  pytest-sanic = callPackage ../development/python-modules/pytest-sanic { };
 
-  kaa-metadata = callPackage ../development/python-modules/kaa-metadata { };
+  pytest-server-fixtures = callPackage ../development/python-modules/pytest-server-fixtures { };
 
-  PyICU = callPackage ../development/python-modules/pyicu { };
+  pytest-services = callPackage ../development/python-modules/pytest-services { };
 
-  pyinputevent = callPackage ../development/python-modules/pyinputevent { };
+  pytest-shutil = callPackage ../development/python-modules/pytest-shutil { };
 
-  pyinotify = callPackage ../development/python-modules/pyinotify { };
+  pytest-socket = callPackage ../development/python-modules/pytest-socket { };
 
-  pyjwt = callPackage ../development/python-modules/pyjwt { };
+  pytest-subtesthack = callPackage ../development/python-modules/pytest-subtesthack { };
 
-  pykickstart = callPackage ../development/python-modules/pykickstart { };
+  pytest-sugar = callPackage ../development/python-modules/pytest-sugar { };
 
-  pymemoize = callPackage ../development/python-modules/pymemoize { };
+  pytest-testmon = callPackage ../development/python-modules/pytest-testmon { };
 
-  pyobjc = if stdenv.isDarwin
-    then callPackage ../development/python-modules/pyobjc {}
-    else throw "pyobjc can only be built on Mac OS";
+  pytest-timeout = callPackage ../development/python-modules/pytest-timeout { };
 
-  pyodbc = callPackage ../development/python-modules/pyodbc { };
+  pytest-tornado = callPackage ../development/python-modules/pytest-tornado { };
 
-  pyocr = callPackage ../development/python-modules/pyocr { };
+  pytest-tornasync = callPackage ../development/python-modules/pytest-tornasync { };
 
-  pyparsing = callPackage ../development/python-modules/pyparsing { };
+  pytest-trio = callPackage ../development/python-modules/pytest-trio { };
 
-  pyparted = callPackage ../development/python-modules/pyparted { };
+  pytest-twisted = callPackage ../development/python-modules/pytest-twisted { };
 
-  pyptlib = callPackage ../development/python-modules/pyptlib { };
+  pytest-virtualenv = callPackage ../development/python-modules/pytest-virtualenv { };
 
-  pyqtgraph = callPackage ../development/python-modules/pyqtgraph { };
+  pytest-warnings = callPackage ../development/python-modules/pytest-warnings { };
 
-  PyStemmer = callPackage ../development/python-modules/pystemmer {};
+  pytest-watch = callPackage ../development/python-modules/pytest-watch { };
 
-  # Missing expression?
-  # Pyro = callPackage ../development/python-modules/pyro { };
+  pytest_xdist_1 = callPackage ../development/python-modules/pytest-xdist { };
 
-  pyrsistent = callPackage ../development/python-modules/pyrsistent { };
+  pytest_xdist_2 = callPackage ../development/python-modules/pytest-xdist/2.nix { };
 
-  PyRSS2Gen = callPackage ../development/python-modules/pyrss2gen { };
+  pytest_xdist = self.pytest_xdist_1;
 
-  pysmi = callPackage ../development/python-modules/pysmi { };
+  pytest-xprocess = callPackage ../development/python-modules/pytest-xprocess { };
 
-  pysnmp = callPackage ../development/python-modules/pysnmp { };
+  pytest-xvfb = callPackage ../development/python-modules/pytest-xvfb { };
 
-  pysocks = callPackage ../development/python-modules/pysocks { };
+  python2-pythondialog = callPackage ../development/python-modules/python2-pythondialog { };
 
-  python_fedora = callPackage ../development/python-modules/python_fedora {};
+  python3-openid = callPackage ../development/python-modules/python3-openid { };
 
-  python-simple-hipchat = callPackage ../development/python-modules/python-simple-hipchat {};
-  python_simple_hipchat = self.python-simple-hipchat;
+  python-axolotl = callPackage ../development/python-modules/python-axolotl { };
 
-  scs = callPackage ../development/python-modules/scs { scs = pkgs.scs; };
+  python-axolotl-curve25519 = callPackage ../development/python-modules/python-axolotl-curve25519 { };
 
-  python_keyczar = callPackage ../development/python-modules/python_keyczar { };
+  python-baseconv = callPackage ../development/python-modules/python-baseconv { };
 
-  python-language-server = callPackage ../development/python-modules/python-language-server {};
+  python-binance = callPackage ../development/python-modules/python-binance { };
 
-  python-jsonrpc-server = callPackage ../development/python-modules/python-jsonrpc-server {};
+  python-constraint = callPackage ../development/python-modules/python-constraint { };
 
-  pyls-black = callPackage ../development/python-modules/pyls-black {};
+  python-ctags3 = callPackage ../development/python-modules/python-ctags3 { };
 
-  pyls-isort = callPackage ../development/python-modules/pyls-isort {};
+  python-daemon = callPackage ../development/python-modules/python-daemon { };
 
-  pyls-mypy = callPackage ../development/python-modules/pyls-mypy {};
+  python-dateutil = callPackage ../development/python-modules/dateutil { };
+  # Alias that we should deprecate
+  dateutil = self.python-dateutil;
 
-  pyu2f = callPackage ../development/python-modules/pyu2f { };
+  python-dbusmock = callPackage ../development/python-modules/python-dbusmock { };
 
-  pyudev = callPackage ../development/python-modules/pyudev {
-    inherit (pkgs) systemd;
-  };
+  pythondialog = callPackage ../development/python-modules/pythondialog { };
 
-  pynmea2 = callPackage ../development/python-modules/pynmea2 {};
+  python-didl-lite = callPackage ../development/python-modules/python-didl-lite { };
 
-  pynrrd = callPackage ../development/python-modules/pynrrd { };
+  python-docx = callPackage ../development/python-modules/python-docx { };
 
-  pynvml = callPackage ../development/python-modules/pynvml { };
+  python-doi = callPackage ../development/python-modules/python-doi { };
 
-  pynzb = callPackage ../development/python-modules/pynzb { };
+  python-dotenv = callPackage ../development/python-modules/python-dotenv { };
 
-  process-tests = callPackage ../development/python-modules/process-tests { };
+  python-editor = callPackage ../development/python-modules/python-editor { };
 
-  progressbar = callPackage ../development/python-modules/progressbar {};
+  pythonefl = callPackage ../development/python-modules/python-efl { inherit (pkgs) pkgconfig; };
 
-  progressbar2 = callPackage ../development/python-modules/progressbar2 { };
+  python-engineio = callPackage ../development/python-modules/python-engineio { };
 
-  progressbar231 = callPackage ../development/python-modules/progressbar231 { };
+  python-etcd = callPackage ../development/python-modules/python-etcd { };
 
-  progressbar33 = callPackage ../development/python-modules/progressbar33 { };
+  python_fedora = callPackage ../development/python-modules/python_fedora { };
+
+  python-fontconfig = callPackage ../development/python-modules/python-fontconfig { };
 
-  protego = callPackage ../development/python-modules/protego {};
+  python-forecastio = callPackage ../development/python-modules/python-forecastio { };
+
+  python-gitlab = callPackage ../development/python-modules/python-gitlab { };
 
-  ldap = callPackage ../development/python-modules/ldap {
-    inherit (pkgs) openldap cyrus_sasl;
+  python-gnupg = callPackage ../development/python-modules/python-gnupg { };
+
+  python-hosts = callPackage ../development/python-modules/python-hosts { };
+
+  python-igraph = callPackage ../development/python-modules/python-igraph {
+    pkgconfig = pkgs.pkgconfig;
+    igraph = pkgs.igraph;
   };
 
-  ldap3 = callPackage ../development/python-modules/ldap3 {};
+  pythonIRClib = callPackage ../development/python-modules/pythonirclib { };
 
-  ptest = callPackage ../development/python-modules/ptest { };
+  pythonix = callPackage ../development/python-modules/pythonix { inherit (pkgs) meson pkgconfig; };
 
-  ptyprocess = callPackage ../development/python-modules/ptyprocess { };
+  python-jenkins = callPackage ../development/python-modules/python-jenkins { };
 
-  pylibacl = callPackage ../development/python-modules/pylibacl { };
+  python-jose = callPackage ../development/python-modules/python-jose { };
 
-  pylibgen = callPackage ../development/python-modules/pylibgen { };
+  python-json-logger = callPackage ../development/python-modules/python-json-logger { };
 
-  pyliblo = callPackage ../development/python-modules/pyliblo { };
+  python-jsonrpc-server = callPackage ../development/python-modules/python-jsonrpc-server { };
 
-  pypcap = callPackage ../development/python-modules/pypcap {};
+  python_keyczar = callPackage ../development/python-modules/python_keyczar { };
 
-  pyplatec = callPackage ../development/python-modules/pyplatec { };
+  python-language-server = callPackage ../development/python-modules/python-language-server { };
 
-  purepng = callPackage ../development/python-modules/purepng { };
+  python-ldap-test = callPackage ../development/python-modules/python-ldap-test { };
 
-  pyhocon = callPackage ../development/python-modules/pyhocon { };
+  python-Levenshtein = callPackage ../development/python-modules/python-levenshtein { };
 
-  pyjson5 = callPackage ../development/python-modules/pyjson5 {};
+  python-logstash = callPackage ../development/python-modules/python-logstash { };
 
-  pymaging = callPackage ../development/python-modules/pymaging { };
+  python-ly = callPackage ../development/python-modules/python-ly { };
 
-  pymaging_png = callPackage ../development/python-modules/pymaging_png { };
+  python-lz4 = callPackage ../development/python-modules/python-lz4 { };
 
-  pyPdf = callPackage ../development/python-modules/pypdf { };
+  python-lzf = callPackage ../development/python-modules/python-lzf { };
 
-  pypdf2 = callPackage ../development/python-modules/pypdf2 { };
+  python-lzo = callPackage ../development/python-modules/python-lzo { inherit (pkgs) lzo; };
 
-  pyopengl = callPackage ../development/python-modules/pyopengl { };
+  python_magic = callPackage ../development/python-modules/python-magic { };
 
-  pyopenssl = callPackage ../development/python-modules/pyopenssl { };
+  pythonmagick = callPackage ../development/python-modules/pythonmagick { };
 
-  pyquery = callPackage ../development/python-modules/pyquery { };
+  python-mapnik = callPackage ../development/python-modules/python-mapnik { };
 
-  pyreport = callPackage ../development/python-modules/pyreport { };
+  python-markdown-math = callPackage ../development/python-modules/python-markdown-math { };
 
-  pyreadability = callPackage ../development/python-modules/pyreadability { };
+  python-miio = callPackage ../development/python-modules/python-miio { };
 
-  pyscss = callPackage ../development/python-modules/pyscss { };
+  python_mimeparse = callPackage ../development/python-modules/python_mimeparse { };
+
+  python-mnist = callPackage ../development/python-modules/python-mnist { };
 
-  pyserial = callPackage ../development/python-modules/pyserial {};
+  python-mpv-jsonipc = callPackage ../development/python-modules/python-mpv-jsonipc { };
 
-  pyserial-asyncio = callPackage ../development/python-modules/pyserial-asyncio { };
+  python-multipart = callPackage ../development/python-modules/python-multipart { };
 
-  pysonos = callPackage ../development/python-modules/pysonos {};
+  pythonnet = callPackage
+    ../development/python-modules/pythonnet { # `mono >= 4.6` required to prevent crashes encountered with earlier versions.
+      mono = pkgs.mono4;
+      inherit (pkgs) pkgconfig;
+    };
 
-  pymongo = callPackage ../development/python-modules/pymongo {};
+  python-nomad = callPackage ../development/python-modules/python-nomad { };
 
-  pyperclip = callPackage ../development/python-modules/pyperclip { };
+  python-oauth2 = callPackage ../development/python-modules/python-oauth2 { };
 
-  pysqlite = callPackage ../development/python-modules/pysqlite { };
+  pythonocc-core =
+    toPythonModule (callPackage ../development/python-modules/pythonocc-core { inherit (pkgs.xorg) libX11; });
 
-  pysvn = callPackage ../development/python-modules/pysvn { };
+  python-olm = callPackage ../development/python-modules/python-olm { };
 
-  python-markdown-math = callPackage ../development/python-modules/python-markdown-math { };
+  python_openzwave = callPackage ../development/python-modules/python_openzwave { inherit (pkgs) pkgconfig; };
 
-  python-miio = callPackage ../development/python-modules/python-miio { };
+  python-otr = callPackage ../development/python-modules/python-otr { };
+
+  python-packer = callPackage ../development/python-modules/python-packer { };
+
+  python-pam = callPackage ../development/python-modules/python-pam {
+    inherit (pkgs) pam;
+  };
+
+  python-periphery = callPackage ../development/python-modules/python-periphery { };
 
   python-pipedrive = callPackage ../development/python-modules/python-pipedrive { };
 
+  python-prctl = callPackage ../development/python-modules/python-prctl { };
+
   python-ptrace = callPackage ../development/python-modules/python-ptrace { };
 
+  python-pushover = callPackage ../development/python-modules/pushover { };
+
+  python-rapidjson = callPackage ../development/python-modules/python-rapidjson { };
+
+  python-redis-lock = callPackage ../development/python-modules/python-redis-lock { };
+
+  python-rtmidi = callPackage ../development/python-modules/python-rtmidi { };
+
+  python-simple-hipchat = callPackage ../development/python-modules/python-simple-hipchat { };
+  python_simple_hipchat = self.python-simple-hipchat;
+
+  python-slugify = callPackage ../development/python-modules/python-slugify { };
+
+  python-snap7 = callPackage ../development/python-modules/python-snap7 {
+    inherit (pkgs) snap7;
+  };
+
+  python-snappy = callPackage ../development/python-modules/python-snappy { inherit (pkgs) snappy; };
+
+  python-socketio = callPackage ../development/python-modules/python-socketio { };
+
+  python-sql = callPackage ../development/python-modules/python-sql { };
+
+  python_statsd = callPackage ../development/python-modules/python_statsd { };
+
+  python-stdnum = callPackage ../development/python-modules/python-stdnum { };
+
+  python-sybase = callPackage ../development/python-modules/sybase { };
+
+  python-telegram-bot = callPackage ../development/python-modules/python-telegram-bot { };
+
+  python-toolbox = callPackage ../development/python-modules/python-toolbox { };
+
+  python-twitter = callPackage ../development/python-modules/python-twitter { };
+
+  python-u2flib-host = callPackage ../development/python-modules/python-u2flib-host { };
+
+  python-uinput = callPackage ../development/python-modules/python-uinput { };
+
+  python-unshare = callPackage ../development/python-modules/python-unshare { };
+
+  python-utils = callPackage ../development/python-modules/python-utils { };
+
+  python-vagrant = callPackage ../development/python-modules/python-vagrant { };
+
+  python-vipaccess = callPackage ../development/python-modules/python-vipaccess { };
+
+  python-vlc = callPackage ../development/python-modules/python-vlc { };
+
   python-wifi = callPackage ../development/python-modules/python-wifi { };
 
-  python-etcd = callPackage ../development/python-modules/python-etcd { };
+  python-xmp-toolkit = callPackage ../development/python-modules/python-xmp-toolkit { };
 
-  pythonnet = callPackage ../development/python-modules/pythonnet {
-    # `mono >= 4.6` required to prevent crashes encountered with earlier versions.
-    mono = pkgs.mono4;
-    inherit (pkgs) pkgconfig;
+  pytimeparse = callPackage ../development/python-modules/pytimeparse { };
+
+  pytmx = callPackage ../development/python-modules/pytmx { };
+
+  pytoml = callPackage ../development/python-modules/pytoml { };
+
+  pytools = callPackage ../development/python-modules/pytools { };
+
+  pytorch = callPackage ../development/python-modules/pytorch { cudaSupport = pkgs.config.cudaSupport or false; };
+
+  pytorch-bin = callPackage ../development/python-modules/pytorch/bin.nix {
+    inherit (pkgs.linuxPackages) nvidia_x11;
   };
 
+  pytorch-lightning = callPackage ../development/python-modules/pytorch-lightning { };
+
+  pytorch-metric-learning = callPackage ../development/python-modules/pytorch-metric-learning { };
+
+  pytorchWithCuda = self.pytorch.override { cudaSupport = true; };
+
+  pytorchWithoutCuda = self.pytorch.override { cudaSupport = false; };
+
+  pytrends = callPackage ../development/python-modules/pytrends { };
+
+  pytricia = callPackage ../development/python-modules/pytricia { };
+
+  pytun = callPackage ../development/python-modules/pytun { };
+
   pytz = callPackage ../development/python-modules/pytz { };
 
   pytzdata = callPackage ../development/python-modules/pytzdata { };
 
+  pyu2f = callPackage ../development/python-modules/pyu2f { };
+
+  pyuavcan = callPackage
+    ../development/python-modules/pyuavcan { # this version pinpoint to anold version is necessary due to a regression
+      nunavut = self.nunavut.overridePythonAttrs (old: rec {
+        version = "0.2.3";
+        src = old.src.override {
+          inherit version;
+          sha256 = "0x8a9h4mc2r2yz49s9arsbs4bn3h25mvmg4zbgksm9hcyi9536x5";
+        };
+      });
+    };
+
+  pyudev = callPackage ../development/python-modules/pyudev { inherit (pkgs) systemd; };
+
+  pyunbound = callPackage ../tools/networking/unbound/python.nix { };
+
+  pyunifi = callPackage ../development/python-modules/pyunifi { };
+
+  pyupdate = callPackage ../development/python-modules/pyupdate { };
+
+  pyusb = callPackage ../development/python-modules/pyusb { libusb1 = pkgs.libusb1; };
+
   pyutil = callPackage ../development/python-modules/pyutil { };
 
   pyutilib = callPackage ../development/python-modules/pyutilib { };
 
+  pyuv = callPackage ../development/python-modules/pyuv { };
+
+  py-vapid = callPackage ../development/python-modules/py-vapid { };
+
+  pyvcd = callPackage ../development/python-modules/pyvcd { };
+
+  pyvcf = callPackage ../development/python-modules/pyvcf { };
+
+  pyviz-comms = callPackage ../development/python-modules/pyviz-comms { };
+
+  pyvmomi = callPackage ../development/python-modules/pyvmomi { };
+
+  pyvoro = callPackage ../development/python-modules/pyvoro { };
+
   pywal = callPackage ../development/python-modules/pywal { };
 
+  pywatchman = callPackage ../development/python-modules/pywatchman { };
+
+  pywavelets = callPackage ../development/python-modules/pywavelets { };
+
+  # We need "normal" libxml2 and not the python package by the same name.
+  pywbem = callPackage ../development/python-modules/pywbem { libxml2 = pkgs.libxml2; };
+
+  PyWebDAV = callPackage ../development/python-modules/pywebdav { };
+
+  pywebpush = callPackage ../development/python-modules/pywebpush { };
+
+  pywebview = callPackage ../development/python-modules/pywebview { };
+
+  pywick = callPackage ../development/python-modules/pywick { };
+
   pywinrm = callPackage ../development/python-modules/pywinrm { };
 
   pyxattr = let
     pyxattr' = callPackage ../development/python-modules/pyxattr { };
-    pyxattr_2 = pyxattr'.overridePythonAttrs(oldAttrs: rec {
+    pyxattr_2 = pyxattr'.overridePythonAttrs (oldAttrs: rec {
       version = "0.6.1";
       src = oldAttrs.src.override {
         inherit version;
@@ -5544,69 +5934,51 @@ in {
     });
   in if isPy3k then pyxattr' else pyxattr_2;
 
-  pyamg = callPackage ../development/python-modules/pyamg { };
-
-  pyaml = callPackage ../development/python-modules/pyaml { };
-
-  pyyaml = callPackage ../development/python-modules/pyyaml { };
-
-  rabbitpy = callPackage ../development/python-modules/rabbitpy { };
-
-  rasterio = callPackage ../development/python-modules/rasterio {
-    gdal = pkgs.gdal_2; # gdal 3.0 not supported yet
-  };
+  pyx = callPackage ../development/python-modules/pyx { };
 
-  radicale_infcloud = callPackage ../development/python-modules/radicale_infcloud {};
+  pyxdg = callPackage ../development/python-modules/pyxdg { };
 
-  recaptcha_client = callPackage ../development/python-modules/recaptcha_client { };
+  pyxl3 = callPackage ../development/python-modules/pyxl3 { };
 
-  rbtools = callPackage ../development/python-modules/rbtools { };
+  pyxml = disabledIf isPy3k (callPackage ../development/python-modules/pyxml { });
 
-  rencode = callPackage ../development/python-modules/rencode { };
+  pyxnat = callPackage ../development/python-modules/pyxnat { };
 
-  reportlab = callPackage ../development/python-modules/reportlab { };
+  pyyaml = callPackage ../development/python-modules/pyyaml { };
 
-  requests = callPackage ../development/python-modules/requests { };
+  pyzmq = callPackage ../development/python-modules/pyzmq { };
 
-  requests_download = callPackage ../development/python-modules/requests_download { };
+  pyzufall = callPackage ../development/python-modules/pyzufall { };
 
-  requestsexceptions = callPackage ../development/python-modules/requestsexceptions {};
+  qasm2image = callPackage ../development/python-modules/qasm2image { };
 
-  requests_ntlm = callPackage ../development/python-modules/requests_ntlm { };
+  qdarkstyle = callPackage ../development/python-modules/qdarkstyle { };
 
-  requests_oauthlib = callPackage ../development/python-modules/requests-oauthlib { };
+  qds_sdk = callPackage ../development/python-modules/qds_sdk { };
 
-  requests-toolbelt = callPackage ../development/python-modules/requests-toolbelt { };
-  requests_toolbelt = self.requests-toolbelt; # Old attr, 2017-09-26
+  qimage2ndarray = callPackage ../development/python-modules/qimage2ndarray { };
 
-  retry_decorator = callPackage ../development/python-modules/retry_decorator { };
+  qiskit-aer = callPackage ../development/python-modules/qiskit-aer { };
 
-  roboschool = callPackage ../development/python-modules/roboschool {
-    inherit (pkgs) pkgconfig; # use normal pkgconfig, not the python package
-  };
+  qiskit-aqua = callPackage ../development/python-modules/qiskit-aqua { };
 
-  rfc6555 = callPackage ../development/python-modules/rfc6555 { };
+  qiskit = callPackage ../development/python-modules/qiskit { };
 
-  qdarkstyle = callPackage ../development/python-modules/qdarkstyle { };
+  qiskit-ibmq-provider = callPackage ../development/python-modules/qiskit-ibmq-provider { };
 
-  qds_sdk = callPackage ../development/python-modules/qds_sdk { };
+  qiskit-ignis = callPackage ../development/python-modules/qiskit-ignis { };
 
-  qimage2ndarray = callPackage ../development/python-modules/qimage2ndarray { };
+  qiskit-terra = callPackage ../development/python-modules/qiskit-terra { };
 
-  quamash = callPackage ../development/python-modules/quamash { };
+  qpid-python = callPackage ../development/python-modules/qpid-python { };
 
-  quandl = callPackage ../development/python-modules/quandl { };
-  # alias for an older package which did not support Python 3
-  Quandl = callPackage ../development/python-modules/quandl { };
+  qrcode = callPackage ../development/python-modules/qrcode { };
 
-  querystring_parser = callPackage ../development/python-modules/querystring-parser { };
+  qreactor = callPackage ../development/python-modules/qreactor { };
 
   qscintilla-qt4 = callPackage ../development/python-modules/qscintilla { };
 
-  qscintilla-qt5 = pkgs.libsForQt5.callPackage ../development/python-modules/qscintilla-qt5 {
-    pythonPackages = self;
-    lndir = pkgs.xorg.lndir;
-  };
+  qscintilla-qt5 = pkgs.libsForQt5.callPackage ../development/python-modules/qscintilla-qt5 { pythonPackages = self; };
 
   qscintilla = self.qscintilla-qt4;
 
@@ -5618,1844 +5990,1798 @@ in {
 
   qtpy = callPackage ../development/python-modules/qtpy { };
 
-  quantities = callPackage ../development/python-modules/quantities { };
+  quamash = callPackage ../development/python-modules/quamash { };
 
-  qutip = callPackage ../development/python-modules/qutip { };
+  quandl = callPackage ../development/python-modules/quandl { };
 
-  rcssmin = callPackage ../development/python-modules/rcssmin { };
+  Quandl =
+    callPackage ../development/python-modules/quandl { }; # alias for an older package which did not support Python 3
 
-  recommonmark = callPackage ../development/python-modules/recommonmark { };
+  quantities = callPackage ../development/python-modules/quantities { };
 
-  redis = callPackage ../development/python-modules/redis { };
+  querystring_parser = callPackage ../development/python-modules/querystring-parser { };
 
-  rednose = callPackage ../development/python-modules/rednose { };
+  queuelib = callPackage ../development/python-modules/queuelib { };
 
-  reikna = callPackage ../development/python-modules/reikna { };
+  r2pipe = callPackage ../development/python-modules/r2pipe { };
 
-  repocheck = callPackage ../development/python-modules/repocheck { };
+  rabbitpy = callPackage ../development/python-modules/rabbitpy { };
 
-  restrictedpython = callPackage ../development/python-modules/restrictedpython { };
+  radicale_infcloud = callPackage ../development/python-modules/radicale_infcloud { };
 
-  restview = callPackage ../development/python-modules/restview { };
+  radio_beam = callPackage ../development/python-modules/radio_beam { };
 
-  readme = callPackage ../development/python-modules/readme { };
+  radish-bdd = callPackage ../development/python-modules/radish-bdd { };
 
-  readme_renderer = callPackage ../development/python-modules/readme_renderer { };
+  rainbowstream = callPackage ../development/python-modules/rainbowstream { };
 
-  readchar = callPackage ../development/python-modules/readchar { };
+  ramlfications = callPackage ../development/python-modules/ramlfications { };
 
-  retworkx = callPackage ../development/python-modules/retworkx { };
+  random2 = callPackage ../development/python-modules/random2 { };
 
-  rivet = disabledIf (!isPy3k) (toPythonModule (pkgs.rivet.override {
-    python3 = python;
-  }));
+  rarfile = callPackage ../development/python-modules/rarfile { inherit (pkgs) libarchive; };
 
-  ripser = callPackage ../development/python-modules/ripser { };
+  rasterio = callPackage ../development/python-modules/rasterio { gdal = pkgs.gdal_2; }; # gdal 3.0 not supported yet
 
-  rjsmin = callPackage ../development/python-modules/rjsmin { };
+  ratelimiter = callPackage ../development/python-modules/ratelimiter { };
 
-  pysolr = callPackage ../development/python-modules/pysolr { };
+  raven = callPackage ../development/python-modules/raven { };
 
-  geoalchemy2 = callPackage ../development/python-modules/geoalchemy2 { };
+  rawkit = callPackage ../development/python-modules/rawkit { };
 
-  geographiclib = callPackage ../development/python-modules/geographiclib { };
+  rbtools = callPackage ../development/python-modules/rbtools { };
 
-  geopy = if isPy3k
-    then callPackage ../development/python-modules/geopy { }
-    else callPackage ../development/python-modules/geopy/2.nix { };
+  rcssmin = callPackage ../development/python-modules/rcssmin { };
 
-  django-haystack = callPackage ../development/python-modules/django-haystack { };
+  rdflib = callPackage ../development/python-modules/rdflib { };
 
-  django-multiselectfield = callPackage ../development/python-modules/django-multiselectfield { };
+  rdflib-jsonld = callPackage ../development/python-modules/rdflib-jsonld { };
 
-  rdflib = callPackage ../development/python-modules/rdflib { };
+  readchar = callPackage ../development/python-modules/readchar { };
 
-  isodate = callPackage ../development/python-modules/isodate { };
+  readme = callPackage ../development/python-modules/readme { };
 
-  owslib = callPackage ../development/python-modules/owslib { };
+  readme_renderer = callPackage ../development/python-modules/readme_renderer { };
 
   readthedocs-sphinx-ext = callPackage ../development/python-modules/readthedocs-sphinx-ext { };
 
-  requests-http-signature = callPackage ../development/python-modules/requests-http-signature { };
+  rebulk = callPackage ../development/python-modules/rebulk { };
 
-  requirements-detector = callPackage ../development/python-modules/requirements-detector { };
+  recaptcha_client = callPackage ../development/python-modules/recaptcha_client { };
 
-  resampy = callPackage ../development/python-modules/resampy { };
+  recommonmark = callPackage ../development/python-modules/recommonmark { };
 
-  restructuredtext_lint = callPackage ../development/python-modules/restructuredtext_lint { };
+  redis = callPackage ../development/python-modules/redis { };
 
-  retry = callPackage ../development/python-modules/retry { };
+  rednose = callPackage ../development/python-modules/rednose { };
 
-  robomachine = callPackage ../development/python-modules/robomachine { };
+  regex = callPackage ../development/python-modules/regex { };
 
-  robotframework = callPackage ../development/python-modules/robotframework { };
+  regional = callPackage ../development/python-modules/regional { };
 
-  robotframework-databaselibrary = callPackage ../development/python-modules/robotframework-databaselibrary { };
+  reikna = callPackage ../development/python-modules/reikna { };
 
-  robotframework-requests = callPackage ../development/python-modules/robotframework-requests { };
+  relatorio = callPackage ../development/python-modules/relatorio { };
 
-  robotframework-ride = callPackage ../development/python-modules/robotframework-ride { };
+  remotecv = callPackage ../development/python-modules/remotecv { };
 
-  robotframework-seleniumlibrary = callPackage ../development/python-modules/robotframework-seleniumlibrary { };
+  rencode = callPackage ../development/python-modules/rencode { };
 
-  robotframework-selenium2library = callPackage ../development/python-modules/robotframework-selenium2library { };
+  repeated_test = callPackage ../development/python-modules/repeated_test { };
 
-  robotframework-sshlibrary = callPackage ../development/python-modules/robotframework-sshlibrary { };
+  repocheck = callPackage ../development/python-modules/repocheck { };
 
-  robotframework-tools = callPackage ../development/python-modules/robotframework-tools { };
+  reportlab = callPackage ../development/python-modules/reportlab { };
 
-  robotstatuschecker = callPackage ../development/python-modules/robotstatuschecker { };
+  repoze_lru = callPackage ../development/python-modules/repoze_lru { };
 
-  robotsuite = callPackage ../development/python-modules/robotsuite { };
+  repoze_sphinx_autointerface = callPackage ../development/python-modules/repoze_sphinx_autointerface { };
 
-  serpent = callPackage ../development/python-modules/serpent { };
+  repoze_who = callPackage ../development/python-modules/repoze_who { };
 
-  selectors34 = callPackage ../development/python-modules/selectors34 { };
+  reproject = callPackage ../development/python-modules/reproject { };
 
-  Pyro4 = callPackage ../development/python-modules/pyro4 { };
+  requests-aws4auth = callPackage ../development/python-modules/requests-aws4auth { };
 
-  Pyro5 = callPackage ../development/python-modules/pyro5 { };
+  requests-cache = callPackage ../development/python-modules/requests-cache { };
 
-  rnc2rng = callPackage ../development/python-modules/rnc2rng { };
+  requests-hawk = callPackage ../development/python-modules/requests-hawk { };
 
-  rope = callPackage ../development/python-modules/rope { };
+  requests = callPackage ../development/python-modules/requests { };
 
-  ropper = callPackage ../development/python-modules/ropper { };
+  requests_download = callPackage ../development/python-modules/requests_download { };
 
-  rpkg = callPackage ../development/python-modules/rpkg {};
+  requestsexceptions = callPackage ../development/python-modules/requestsexceptions { };
 
-  rply = callPackage ../development/python-modules/rply {};
+  requests-file = callPackage ../development/python-modules/requests-file { };
 
-  rpm = disabledIf (!isPy3k) (toPythonModule (pkgs.rpm.override{ inherit python; }));
+  requests-http-signature = callPackage ../development/python-modules/requests-http-signature { };
 
-  rpmfluff = callPackage ../development/python-modules/rpmfluff {};
+  requests-kerberos = callPackage ../development/python-modules/requests-kerberos { };
 
-  rpy2 = if isPy3k
-    then callPackage ../development/python-modules/rpy2 { }
-    else callPackage ../development/python-modules/rpy2/2.nix { };
+  requests-mock = callPackage ../development/python-modules/requests-mock { };
 
-  rtslib = callPackage ../development/python-modules/rtslib {};
+  requests_ntlm = callPackage ../development/python-modules/requests_ntlm { };
 
-  Rtree = callPackage ../development/python-modules/Rtree { inherit (pkgs) libspatialindex; };
+  requests_oauthlib = callPackage ../development/python-modules/requests-oauthlib { };
 
-  typing = callPackage ../development/python-modules/typing { };
+  requests-toolbelt = callPackage ../development/python-modules/requests-toolbelt { };
 
-  typing-extensions = callPackage ../development/python-modules/typing-extensions { };
+  requests_toolbelt = self.requests-toolbelt; # Old attr, 2017-09-26
 
-  typeguard = callPackage ../development/python-modules/typeguard { };
+  requests-unixsocket = callPackage ../development/python-modules/requests-unixsocket { };
 
-  typesentry = callPackage ../development/python-modules/typesentry { };
+  requirements-detector = callPackage ../development/python-modules/requirements-detector { };
 
-  typesystem = callPackage ../development/python-modules/typesystem { };
+  resampy = callPackage ../development/python-modules/resampy { };
 
-  s3transfer = callPackage ../development/python-modules/s3transfer { };
+  responses = callPackage ../development/python-modules/responses { };
 
-  seqdiag = callPackage ../development/python-modules/seqdiag { };
+  restrictedpython = callPackage ../development/python-modules/restrictedpython { };
 
-  sequoia = disabledIf (isPyPy || !isPy3k) (toPythonModule (pkgs.sequoia.override {
-    pythonPackages = self;
-    pythonSupport = true;
-  }));
+  restructuredtext_lint = callPackage ../development/python-modules/restructuredtext_lint { };
 
-  safe = callPackage ../development/python-modules/safe { };
+  restview = callPackage ../development/python-modules/restview { };
 
-  safety = callPackage ../development/python-modules/safety { };
+  rethinkdb = callPackage ../development/python-modules/rethinkdb { };
 
-  sampledata = callPackage ../development/python-modules/sampledata { };
+  retry = callPackage ../development/python-modules/retry { };
 
-  sasmodels = callPackage ../development/python-modules/sasmodels { };
+  retry_decorator = callPackage ../development/python-modules/retry_decorator { };
 
-  scapy = callPackage ../development/python-modules/scapy { };
+  retrying = callPackage ../development/python-modules/retrying { };
 
-  scipy = let
-    scipy_ = callPackage ../development/python-modules/scipy { };
-    scipy_1_2 = scipy_.overridePythonAttrs(oldAttrs: rec {
-      version = "1.2.2";
-      src = oldAttrs.src.override {
-        inherit version;
-        sha256 = "a4331e0b8dab1ff75d2c67b5158a8bb9a83c799d7140094dda936d876c7cfbb1";
-      };
-    });
-  in if pythonOlder "3.5" then scipy_1_2 else scipy_;
+  retworkx = disabledIf (pythonOlder "3.5") (toPythonModule (callPackage ../development/python-modules/retworkx { }));
 
-  scikitimage = callPackage ../development/python-modules/scikit-image { };
+  rfc3986 = callPackage ../development/python-modules/rfc3986 { };
 
-  scikitlearn = let
-    args = { inherit (pkgs) gfortran glibcLocales; };
-  in
-    if isPy3k then callPackage ../development/python-modules/scikitlearn args
-    else callPackage ../development/python-modules/scikitlearn/0.20.nix args;
+  rfc3987 = callPackage ../development/python-modules/rfc3987 { };
 
-  scikit-bio = callPackage ../development/python-modules/scikit-bio { };
+  rfc6555 = callPackage ../development/python-modules/rfc6555 { };
 
-  scikit-build = callPackage ../development/python-modules/scikit-build { };
+  rfc7464 = callPackage ../development/python-modules/rfc7464 { };
 
-  scikits-odes = callPackage ../development/python-modules/scikits-odes { };
+  rhpl = disabledIf isPy3k (callPackage ../development/python-modules/rhpl { });
 
-  scikit-optimize = callPackage ../development/python-modules/scikit-optimize { };
+  rig = callPackage ../development/python-modules/rig { };
 
-  scikit-tda = callPackage ../development/python-modules/scikit-tda { };
+  ripser = callPackage ../development/python-modules/ripser { };
 
-  scikit-fmm = callPackage ../development/python-modules/scikit-fmm { };
+  rising = callPackage ../development/python-modules/rising { };
 
-  scp = callPackage ../development/python-modules/scp {};
+  rivet = disabledIf (!isPy3k) (toPythonModule (pkgs.rivet.override { python3 = python; }));
 
-  seaborn = if isPy3k then
-    callPackage ../development/python-modules/seaborn { }
-  else
-    callPackage ../development/python-modules/seaborn/0.9.1.nix { };
+  rjsmin = callPackage ../development/python-modules/rjsmin { };
 
-  seabreeze = callPackage ../development/python-modules/seabreeze { };
+  rl-coach = callPackage ../development/python-modules/rl-coach { };
 
-  selenium = callPackage ../development/python-modules/selenium { };
+  rlp = callPackage ../development/python-modules/rlp { };
 
-  serpy = callPackage ../development/python-modules/serpy { };
+  rnc2rng = callPackage ../development/python-modules/rnc2rng { };
 
-  setuptools_scm = callPackage ../development/python-modules/setuptools_scm { };
+  robomachine = callPackage ../development/python-modules/robomachine { };
 
-  setuptools-scm-git-archive = callPackage ../development/python-modules/setuptools-scm-git-archive { };
+  roboschool = callPackage ../development/python-modules/roboschool {
+    inherit (pkgs) pkgconfig; # use normal pkgconfig, not the python package
+    inherit (pkgs.qt5) qtbase;
+  };
 
-  serverlessrepo = callPackage ../development/python-modules/serverlessrepo { };
+  robot-detection = callPackage ../development/python-modules/robot-detection { };
 
-  shippai = callPackage ../development/python-modules/shippai {};
+  robotframework = callPackage ../development/python-modules/robotframework { };
 
-  shutilwhich = callPackage ../development/python-modules/shutilwhich { };
+  robotframework-databaselibrary = callPackage ../development/python-modules/robotframework-databaselibrary { };
 
-  simanneal = callPackage ../development/python-modules/simanneal { };
+  robotframework-requests = callPackage ../development/python-modules/robotframework-requests { };
 
-  simplegeneric = callPackage ../development/python-modules/simplegeneric { };
+  robotframework-ride = callPackage ../development/python-modules/robotframework-ride { };
 
-  shamir-mnemonic = callPackage ../development/python-modules/shamir-mnemonic { };
+  robotframework-selenium2library = callPackage ../development/python-modules/robotframework-selenium2library { };
 
-  shodan = callPackage ../development/python-modules/shodan { };
+  robotframework-seleniumlibrary = callPackage ../development/python-modules/robotframework-seleniumlibrary { };
 
-  should-dsl = callPackage ../development/python-modules/should-dsl { };
+  robotframework-sshlibrary = callPackage ../development/python-modules/robotframework-sshlibrary { };
 
-  showit = callPackage ../development/python-modules/showit { };
+  robotframework-tools = callPackage ../development/python-modules/robotframework-tools { };
 
-  simplejson = callPackage ../development/python-modules/simplejson { };
+  robotstatuschecker = callPackage ../development/python-modules/robotstatuschecker { };
 
-  simplekml = callPackage ../development/python-modules/simplekml { };
+  robotsuite = callPackage ../development/python-modules/robotsuite { };
 
-  slimit = callPackage ../development/python-modules/slimit { };
+  rocket-errbot = callPackage ../development/python-modules/rocket-errbot { };
 
-  snowflake-connector-python = callPackage ../development/python-modules/snowflake-connector-python { };
+  roku = callPackage ../development/python-modules/roku { };
 
-  snowflake-sqlalchemy = callPackage ../development/python-modules/snowflake-sqlalchemy { };
+  roman = callPackage ../development/python-modules/roman { };
 
-  snowballstemmer = callPackage ../development/python-modules/snowballstemmer { };
+  rope = callPackage ../development/python-modules/rope { };
 
-  snitun = callPackage ../development/python-modules/snitun { };
+  ROPGadget = callPackage ../development/python-modules/ROPGadget { };
 
-  snscrape = callPackage ../development/python-modules/snscrape { };
+  ropper = callPackage ../development/python-modules/ropper { };
 
-  snug = callPackage ../development/python-modules/snug { };
+  rotate-backups = callPackage ../tools/backup/rotate-backups { };
 
-  snuggs = callPackage ../development/python-modules/snuggs { };
+  routes = callPackage ../development/python-modules/routes { };
 
-  spake2 = callPackage ../development/python-modules/spake2 { };
+  rpdb = callPackage ../development/python-modules/rpdb { };
 
-  sphfile = callPackage ../development/python-modules/sphfile { };
+  rpkg = callPackage ../development/python-modules/rpkg { };
 
-  supervisor = callPackage ../development/python-modules/supervisor {};
+  rply = callPackage ../development/python-modules/rply { };
 
-  subprocess32 = callPackage ../development/python-modules/subprocess32 { };
+  rpm = disabledIf (!isPy3k) (toPythonModule (pkgs.rpm.override { inherit python; }));
 
-  spark_parser = callPackage ../development/python-modules/spark_parser { };
+  rpmfluff = callPackage ../development/python-modules/rpmfluff { };
 
-  sphinx = if isPy3k then
-    callPackage ../development/python-modules/sphinx { }
+  rpy2 = if isPy3k then
+    callPackage ../development/python-modules/rpy2 { }
   else
-    callPackage ../development/python-modules/sphinx/2.nix { };
+    callPackage ../development/python-modules/rpy2/2.nix { };
 
-  # Only exists for a Haskell package.
-  sphinx_1_7_9 = (callPackage ../development/python-modules/sphinx/2.nix { })
-    .overridePythonAttrs (oldAttrs: rec {
-      version = "1.7.9";
-      src = oldAttrs.src.override {
-        inherit version;
-        sha256 = "217a7705adcb573da5bbe1e0f5cab4fa0bd89fd9342c9159121746f593c2d5a4";
-      };
-    });
+  rpyc = callPackage ../development/python-modules/rpyc { };
 
-  sphinx-argparse = callPackage ../development/python-modules/sphinx-argparse { };
+  rq = callPackage ../development/python-modules/rq { };
 
-  sphinxcontrib-websupport = callPackage ../development/python-modules/sphinxcontrib-websupport { };
+  rsa = if isPy3k then
+    callPackage ../development/python-modules/rsa { }
+  else
+    callPackage ../development/python-modules/rsa/4_0.nix { };
 
-  hieroglyph = callPackage ../development/python-modules/hieroglyph { };
+  rtmidi-python = callPackage ../development/python-modules/rtmidi-python { };
 
-  hvplot = callPackage ../development/python-modules/hvplot { };
+  Rtree = callPackage ../development/python-modules/Rtree { inherit (pkgs) libspatialindex; };
 
-  guzzle_sphinx_theme = callPackage ../development/python-modules/guzzle_sphinx_theme { };
+  rtslib = callPackage ../development/python-modules/rtslib { };
 
-  sphinx-testing = callPackage ../development/python-modules/sphinx-testing { };
+  ruamel_base = callPackage ../development/python-modules/ruamel_base { };
 
-  sphinxcontrib-applehelp = callPackage ../development/python-modules/sphinxcontrib-applehelp {};
+  ruamel_ordereddict = callPackage ../development/python-modules/ruamel_ordereddict { };
 
-  sphinxcontrib-devhelp = callPackage ../development/python-modules/sphinxcontrib-devhelp {};
+  ruamel_yaml = callPackage ../development/python-modules/ruamel_yaml { };
 
-  sphinxcontrib-fulltoc = callPackage ../development/python-modules/sphinxcontrib-fulltoc { };
+  ruamel_yaml_clib = callPackage ../development/python-modules/ruamel_yaml_clib { };
 
-  sphinxcontrib-htmlhelp = callPackage ../development/python-modules/sphinxcontrib-htmlhelp {};
+  rubymarshal = callPackage ../development/python-modules/rubymarshal { };
 
-  sphinxcontrib-jsmath = callPackage ../development/python-modules/sphinxcontrib-jsmath {};
+  ruffus = callPackage ../development/python-modules/ruffus { };
 
-  sphinxcontrib-katex = callPackage ../development/python-modules/sphinxcontrib-katex { };
+  runsnakerun = callPackage ../development/python-modules/runsnakerun { };
 
-  sphinxcontrib-qthelp = callPackage ../development/python-modules/sphinxcontrib-qthelp {};
+  runway-python = callPackage ../development/python-modules/runway-python { };
 
-  sphinxcontrib-serializinghtml = callPackage ../development/python-modules/sphinxcontrib-serializinghtml {};
+  rx = callPackage ../development/python-modules/rx { };
 
-  sphinxcontrib-bibtex = callPackage ../development/python-modules/sphinxcontrib-bibtex {};
+  rxv = callPackage ../development/python-modules/rxv { };
 
-  sphinx-navtree = callPackage ../development/python-modules/sphinx-navtree {};
+  s2clientprotocol = callPackage ../development/python-modules/s2clientprotocol { };
 
-  sphinx-jinja = callPackage ../development/python-modules/sphinx-jinja { };
+  s3fs = callPackage ../development/python-modules/s3fs { };
 
-  splinter = callPackage ../development/python-modules/splinter { };
+  s3transfer = callPackage ../development/python-modules/s3transfer { };
 
-  spotipy = callPackage ../development/python-modules/spotipy { };
+  sabyenc3 = callPackage ../development/python-modules/sabyenc3 { };
 
-  sqlalchemy = callPackage ../development/python-modules/sqlalchemy { };
+  sabyenc = callPackage ../development/python-modules/sabyenc { };
 
-  sqlalchemy-citext = callPackage ../development/python-modules/sqlalchemy-citext { };
+  sacremoses = callPackage ../development/python-modules/sacremoses { };
 
-  sqlalchemy_migrate = callPackage ../development/python-modules/sqlalchemy-migrate { };
+  safe = callPackage ../development/python-modules/safe { };
 
-  sqlalchemy-utils = callPackage ../development/python-modules/sqlalchemy-utils { };
+  safety = callPackage ../development/python-modules/safety { };
 
-  sqlsoup = callPackage ../development/python-modules/sqlsoup { };
+  salmon-mail = callPackage ../development/python-modules/salmon-mail { };
 
-  staticjinja = callPackage ../development/python-modules/staticjinja { };
+  sampledata = callPackage ../development/python-modules/sampledata { };
 
-  statsmodels = callPackage ../development/python-modules/statsmodels { };
+  samplerate = callPackage ../development/python-modules/samplerate { };
 
-  strategies = callPackage ../development/python-modules/strategies { };
+  samsungctl = callPackage ../development/python-modules/samsungctl { };
 
-  stravalib = callPackage ../development/python-modules/stravalib { };
+  samsungtvws = callPackage ../development/python-modules/samsungtvws { };
 
-  streamz = callPackage ../development/python-modules/streamz { };
+  sandboxlib = callPackage ../development/python-modules/sandboxlib { };
 
-  structlog = callPackage ../development/python-modules/structlog { };
+  sanic-auth = callPackage ../development/python-modules/sanic-auth { };
 
-  stytra = callPackage ../development/python-modules/stytra { };
+  sanic = callPackage ../development/python-modules/sanic { };
 
-  sybil = callPackage ../development/python-modules/sybil { };
+  sapi-python-client = callPackage ../development/python-modules/sapi-python-client { };
 
-  # legacy alias
-  syncthing-gtk = pkgs.syncthing-gtk;
+  sarge = callPackage ../development/python-modules/sarge { };
 
-  systemd = callPackage ../development/python-modules/systemd {
-    inherit (pkgs) pkgconfig systemd;
-  };
+  sasmodels = callPackage ../development/python-modules/sasmodels { };
 
-  sysv_ipc = callPackage ../development/python-modules/sysv_ipc { };
+  scales = callPackage ../development/python-modules/scales { };
 
-  tabulate = callPackage ../development/python-modules/tabulate { };
+  scandir = callPackage ../development/python-modules/scandir { };
 
-  tadasets = callPackage ../development/python-modules/tadasets { };
+  scapy = callPackage ../development/python-modules/scapy { };
 
-  tasklib = callPackage ../development/python-modules/tasklib { };
+  schedule = callPackage ../development/python-modules/schedule { };
 
-  tatsu = callPackage ../development/python-modules/tatsu { };
+  schema = callPackage ../development/python-modules/schema { };
 
-  tbm-utils = callPackage ../development/python-modules/tbm-utils { };
+  scikit-bio = callPackage ../development/python-modules/scikit-bio { };
 
-  tempita = callPackage ../development/python-modules/tempita { };
+  scikit-build = callPackage ../development/python-modules/scikit-build { };
 
-  terminado = callPackage ../development/python-modules/terminado { };
+  scikit-fmm = callPackage ../development/python-modules/scikit-fmm { };
 
-  tess = callPackage ../development/python-modules/tess { };
+  scikitimage = callPackage ../development/python-modules/scikit-image { };
 
-  testresources = callPackage ../development/python-modules/testresources { };
+  scikitlearn = let args = { inherit (pkgs) gfortran glibcLocales; };
+  in if isPy3k then
+    callPackage ../development/python-modules/scikitlearn args
+  else
+    callPackage ../development/python-modules/scikitlearn/0.20.nix args;
 
-  testtools = callPackage ../development/python-modules/testtools { };
+  scikit-optimize = callPackage ../development/python-modules/scikit-optimize { };
 
-  traitlets = callPackage ../development/python-modules/traitlets { };
+  scikits-odes = callPackage ../development/python-modules/scikits-odes { };
 
-  traittypes = callPackage ../development/python-modules/traittypes { };
+  scikit-tda = callPackage ../development/python-modules/scikit-tda { };
 
-  transitions = callPackage ../development/python-modules/transitions { };
+  scipy_1_3 = self.scipy.overridePythonAttrs (oldAttrs: rec {
+    version = "1.3.3";
+    src = oldAttrs.src.override {
+      inherit version;
+      sha256 = "02iqb7ws7fw5fd1a83hx705pzrw1imj7z0bphjsl4bfvw254xgv4";
+    };
+    doCheck = false;
+    disabled = !isPy3k;
+  });
 
-  extras = callPackage ../development/python-modules/extras { };
+  scipy = let
+    scipy_ = callPackage ../development/python-modules/scipy { };
+    scipy_1_2 = scipy_.overridePythonAttrs (oldAttrs: rec {
+      version = "1.2.2";
+      src = oldAttrs.src.override {
+        inherit version;
+        sha256 = "a4331e0b8dab1ff75d2c67b5158a8bb9a83c799d7140094dda936d876c7cfbb1";
+      };
+    });
+  in if pythonOlder "3.5" then scipy_1_2 else scipy_;
 
-  texttable = callPackage ../development/python-modules/texttable { };
+  scour = callPackage ../development/python-modules/scour { };
 
-  textwrap3 =  callPackage ../development/python-modules/textwrap3 { };
+  scp = callPackage ../development/python-modules/scp { };
 
-  tiledb = callPackage ../development/python-modules/tiledb {
-    inherit (pkgs) tiledb;
-  };
+  scrapy = callPackage ../development/python-modules/scrapy { };
 
-  timezonefinder = callPackage ../development/python-modules/timezonefinder { };
+  scrapy-deltafetch = callPackage ../development/python-modules/scrapy-deltafetch { };
 
-  tiros = callPackage ../development/python-modules/tiros { };
+  scrapy-fake-useragent = callPackage ../development/python-modules/scrapy-fake-useragent { };
 
-  tinydb = callPackage ../development/python-modules/tinydb { };
+  scrapy-splash = callPackage ../development/python-modules/scrapy-splash { };
 
-  tifffile = callPackage ../development/python-modules/tifffile { };
+  screeninfo = callPackage ../development/python-modules/screeninfo { };
 
-  tmdb3 = callPackage ../development/python-modules/tmdb3 { };
+  scripttest = callPackage ../development/python-modules/scripttest { };
 
-  toolz = callPackage ../development/python-modules/toolz { };
+  scs = callPackage ../development/python-modules/scs { scs = pkgs.scs; };
 
-  tox = callPackage ../development/python-modules/tox { };
+  sdnotify = callPackage ../development/python-modules/sdnotify { };
 
-  tqdm = callPackage ../development/python-modules/tqdm { };
+  seaborn = if isPy3k then
+    callPackage ../development/python-modules/seaborn { }
+  else
+    callPackage ../development/python-modules/seaborn/0.9.1.nix { };
 
-  smmap = callPackage ../development/python-modules/smmap { };
+  seabreeze = callPackage ../development/python-modules/seabreeze { };
 
-  smmap2 = throw "smmap2 has been deprecated, use smmap instead."; # added 2020-03-14
+  secp256k1 = callPackage ../development/python-modules/secp256k1 { inherit (pkgs) secp256k1 pkgconfig; };
 
-  transaction = callPackage ../development/python-modules/transaction { };
+  secretstorage = if isPy3k then
+    callPackage ../development/python-modules/secretstorage { }
+  else
+    callPackage ../development/python-modules/secretstorage/2.nix { };
 
-  TurboCheetah = callPackage ../development/python-modules/TurboCheetah { };
+  secure = callPackage ../development/python-modules/secure { };
 
-  tweepy = callPackage ../development/python-modules/tweepy { };
+  seekpath = callPackage ../development/python-modules/seekpath { };
 
-  twill = callPackage ../development/python-modules/twill { };
+  segments = callPackage ../development/python-modules/segments { };
 
-  twine = callPackage ../development/python-modules/twine { };
+  selectors2 = callPackage ../development/python-modules/selectors2 { };
 
-  twisted = callPackage ../development/python-modules/twisted { };
+  selectors34 = callPackage ../development/python-modules/selectors34 { };
 
-  txtorcon = callPackage ../development/python-modules/txtorcon { };
+  selenium = callPackage ../development/python-modules/selenium { };
 
-  txdbus = callPackage ../development/python-modules/txdbus { };
+  semantic = callPackage ../development/python-modules/semantic { };
 
-  tzlocal = callPackage ../development/python-modules/tzlocal { };
+  semantic-version = callPackage ../development/python-modules/semantic-version { };
 
-  u-msgpack-python = callPackage ../development/python-modules/u-msgpack-python { };
+  semver = callPackage ../development/python-modules/semver { };
 
-  ua-parser = callPackage ../development/python-modules/ua-parser { };
+  send2trash = callPackage ../development/python-modules/send2trash { };
 
-  uarray = callPackage ../development/python-modules/uarray { };
+  sentencepiece = callPackage ../development/python-modules/sentencepiece { inherit (pkgs) sentencepiece pkgconfig; };
 
-  ueberzug = callPackage ../development/python-modules/ueberzug {
-    inherit (pkgs.xorg) libX11 libXext;
-  };
+  sentinel = callPackage ../development/python-modules/sentinel { };
 
-  ukpostcodeparser = callPackage ../development/python-modules/ukpostcodeparser { };
+  sentry-sdk = callPackage ../development/python-modules/sentry-sdk { };
 
-  umap-learn = callPackage ../development/python-modules/umap-learn { };
+  sepaxml = callPackage ../development/python-modules/sepaxml { };
 
-  umemcache = callPackage ../development/python-modules/umemcache {};
+  seqdiag = callPackage ../development/python-modules/seqdiag { };
 
-  uritools = callPackage ../development/python-modules/uritools { };
+  sequoia = disabledIf (isPyPy || !isPy3k) (toPythonModule (pkgs.sequoia.override {
+    pythonPackages = self;
+    pythonSupport = true;
+  }));
 
-  update_checker = callPackage ../development/python-modules/update_checker {};
+  serpent = callPackage ../development/python-modules/serpent { };
 
-  update-copyright = callPackage ../development/python-modules/update-copyright {};
+  serpy = callPackage ../development/python-modules/serpy { };
 
-  update-dotdee = callPackage ../development/python-modules/update-dotdee { };
+  serverlessrepo = callPackage ../development/python-modules/serverlessrepo { };
 
-  uritemplate = callPackage ../development/python-modules/uritemplate { };
+  serversyncstorage = callPackage ../development/python-modules/serversyncstorage { };
 
-  uproot = callPackage ../development/python-modules/uproot {};
+  service-identity = callPackage ../development/python-modules/service_identity { };
 
-  uproot-methods = callPackage ../development/python-modules/uproot-methods { };
+  setproctitle = callPackage ../development/python-modules/setproctitle { };
 
-  urlgrabber = callPackage ../development/python-modules/urlgrabber {};
+  setuptoolsDarcs = callPackage ../development/python-modules/setuptoolsdarcs { };
 
-  urwid = callPackage ../development/python-modules/urwid {};
+  setuptools-git = callPackage ../development/python-modules/setuptools-git { };
 
-  user-agents = callPackage ../development/python-modules/user-agents { };
+  setuptools-lint = callPackage ../development/python-modules/setuptools-lint { };
 
-  variants = callPackage ../development/python-modules/variants { };
+  setuptools_scm = callPackage ../development/python-modules/setuptools_scm { };
 
-  verboselogs = callPackage ../development/python-modules/verboselogs { };
+  setuptools-scm-git-archive = callPackage ../development/python-modules/setuptools-scm-git-archive { };
 
-  vega_datasets = callPackage ../development/python-modules/vega_datasets { };
+  setuptoolsTrial = callPackage ../development/python-modules/setuptoolstrial { };
 
-  vertica-python = callPackage ../development/python-modules/vertica-python { };
+  sexpdata = callPackage ../development/python-modules/sexpdata { };
 
-  virtkey = callPackage ../development/python-modules/virtkey {
-    inherit (pkgs) pkgconfig;
-  };
+  sfepy = callPackage ../development/python-modules/sfepy { };
 
-  virtual-display = callPackage ../development/python-modules/virtual-display { };
+  shamir-mnemonic = callPackage ../development/python-modules/shamir-mnemonic { };
 
-  virtualenv = callPackage ../development/python-modules/virtualenv { };
+  shapely = callPackage ../development/python-modules/shapely { };
 
-  vsts = callPackage ../development/python-modules/vsts { };
+  sharedmem = callPackage ../development/python-modules/sharedmem { };
 
-  vsts-cd-manager = callPackage ../development/python-modules/vsts-cd-manager { };
+  sh = callPackage ../development/python-modules/sh { };
 
-  python-vlc = callPackage ../development/python-modules/python-vlc { };
+  shellingham = callPackage ../development/python-modules/shellingham { };
 
-  weasyprint = callPackage ../development/python-modules/weasyprint { };
+  shiboken2 =
+    toPythonModule (callPackage ../development/python-modules/shiboken2 { inherit (pkgs) cmake llvmPackages qt5; });
 
-  webassets = callPackage ../development/python-modules/webassets { };
+  shippai = callPackage ../development/python-modules/shippai { };
 
-  webcolors = callPackage ../development/python-modules/webcolors { };
+  shodan = callPackage ../development/python-modules/shodan { };
 
-  webencodings = callPackage ../development/python-modules/webencodings { };
+  shortuuid = callPackage ../development/python-modules/shortuuid { };
 
-  websockets = callPackage ../development/python-modules/websockets { };
+  shouldbe = callPackage ../development/python-modules/shouldbe { };
 
-  Wand = callPackage ../development/python-modules/Wand { };
+  should-dsl = callPackage ../development/python-modules/should-dsl { };
 
-  wcwidth = callPackage ../development/python-modules/wcwidth { };
+  showit = callPackage ../development/python-modules/showit { };
 
-  werkzeug = callPackage ../development/python-modules/werkzeug { };
+  shutilwhich = callPackage ../development/python-modules/shutilwhich { };
 
-  wheel = callPackage ../development/python-modules/wheel { };
+  sievelib = callPackage ../development/python-modules/sievelib { };
 
-  widgetsnbextension = callPackage ../development/python-modules/widgetsnbextension { };
+  signedjson = callPackage ../development/python-modules/signedjson { };
 
-  wordfreq = callPackage ../development/python-modules/wordfreq { };
+  sigtools = callPackage ../development/python-modules/sigtools { };
 
-  magic-wormhole = callPackage ../development/python-modules/magic-wormhole { };
+  simanneal = callPackage ../development/python-modules/simanneal { };
 
-  magic-wormhole-mailbox-server = callPackage ../development/python-modules/magic-wormhole-mailbox-server { };
+  simpleai = callPackage ../development/python-modules/simpleai { };
 
-  magic-wormhole-transit-relay = callPackage ../development/python-modules/magic-wormhole-transit-relay { };
+  simpleaudio = callPackage ../development/python-modules/simpleaudio { };
 
-  wxPython = self.wxPython30;
+  simplebayes = callPackage ../development/python-modules/simplebayes { };
 
-  wxPython30 = callPackage ../development/python-modules/wxPython/3.0.nix {
-    wxGTK = pkgs.wxGTK30;
-    inherit (pkgs) pkgconfig;
-  };
+  simpleeval = callPackage ../development/python-modules/simpleeval { };
 
-  wxPython_4_0 = callPackage ../development/python-modules/wxPython/4.0.nix {
-    inherit (pkgs) pkgconfig;
-    wxGTK = pkgs.wxGTK30.override { withGtk2 = false; withWebKit = true; };
-  };
+  simplefix = callPackage ../development/python-modules/simplefix { };
 
-  xml2rfc = callPackage ../development/python-modules/xml2rfc { };
+  simplegeneric = callPackage ../development/python-modules/simplegeneric { };
 
-  xmlschema = callPackage ../development/python-modules/xmlschema { };
+  simplejson = callPackage ../development/python-modules/simplejson { };
 
-  xmltodict = callPackage ../development/python-modules/xmltodict { };
+  simplekml = callPackage ../development/python-modules/simplekml { };
 
-  xarray = callPackage ../development/python-modules/xarray { };
+  simpleparse = callPackage ../development/python-modules/simpleparse { };
 
-  xapian = callPackage ../development/python-modules/xapian { xapian = pkgs.xapian; };
+  simple-salesforce = callPackage ../development/python-modules/simple-salesforce { };
 
-  xapp = callPackage ../development/python-modules/xapp {
-    inherit (pkgs) gtk3 gobject-introspection polkit;
-    inherit (pkgs.cinnamon) xapps;
-  };
+  simple-websocket-server = callPackage ../development/python-modules/simple-websocket-server { };
 
-  xlwt = callPackage ../development/python-modules/xlwt { };
+  simpy = callPackage ../development/python-modules/simpy { };
 
-  xxhash = callPackage ../development/python-modules/xxhash { };
+  singledispatch = callPackage ../development/python-modules/singledispatch { };
 
-  ydiff = callPackage ../development/python-modules/ydiff { };
+  sip = callPackage ../development/python-modules/sip { };
 
-  yoda = toPythonModule (pkgs.yoda.override {
-    inherit python;
-  });
+  sipsimple = callPackage ../development/python-modules/sipsimple { };
 
-  youtube-dl = callPackage ../tools/misc/youtube-dl {};
+  six = callPackage ../development/python-modules/six { };
 
-  youtube-dl-light = callPackage ../tools/misc/youtube-dl {
-    ffmpegSupport = false;
-    phantomjsSupport = false;
+  skein = callPackage ../development/python-modules/skein {
+    jre = pkgs.jre8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
   };
 
-  zconfig = callPackage ../development/python-modules/zconfig { };
-
-  zc_lockfile = callPackage ../development/python-modules/zc_lockfile { };
+  sklearn-deap = callPackage ../development/python-modules/sklearn-deap { };
 
-  zerorpc = callPackage ../development/python-modules/zerorpc { };
+  skorch = callPackage ../development/python-modules/skorch { };
 
-  zimports = callPackage ../development/python-modules/zimports { };
+  slackclient = callPackage ../development/python-modules/slackclient { };
 
-  zipstream = callPackage ../development/python-modules/zipstream { };
+  sleekxmpp = callPackage ../development/python-modules/sleekxmpp { };
 
-  zodb = callPackage ../development/python-modules/zodb {};
+  slicedimage = callPackage ../development/python-modules/slicedimage { };
 
-  zodbpickle = callPackage ../development/python-modules/zodbpickle {};
+  slicerator = callPackage ../development/python-modules/slicerator { };
 
-  BTrees = callPackage ../development/python-modules/btrees {};
+  slimit = callPackage ../development/python-modules/slimit { };
 
-  persistent = callPackage ../development/python-modules/persistent {};
+  slither-analyzer = callPackage ../development/python-modules/slither-analyzer { };
 
-  persim = callPackage ../development/python-modules/persim { };
+  slixmpp = callPackage ../development/python-modules/slixmpp { inherit (pkgs) gnupg; };
 
-  xdot = callPackage ../development/python-modules/xdot { };
+  slob = callPackage ../development/python-modules/slob { };
 
-  zetup = callPackage ../development/python-modules/zetup { };
+  slowaes = callPackage ../development/python-modules/slowaes { };
 
-  routes = callPackage ../development/python-modules/routes { };
+  sly = callPackage ../development/python-modules/sly { };
 
-  rpyc = callPackage ../development/python-modules/rpyc { };
+  smartdc = callPackage ../development/python-modules/smartdc { };
 
-  rsa = callPackage ../development/python-modules/rsa { };
+  smart_open = callPackage ../development/python-modules/smart_open { };
 
-  squaremap = callPackage ../development/python-modules/squaremap { };
+  smartypants = callPackage ../development/python-modules/smartypants { };
 
-  ruamel_base = callPackage ../development/python-modules/ruamel_base { };
+  smmap2 = throw "smmap2 has been deprecated, use smmap instead."; # added 2020-03-14
 
-  ruamel_ordereddict = callPackage ../development/python-modules/ruamel_ordereddict { };
+  smmap = callPackage ../development/python-modules/smmap { };
 
-  ruamel_yaml = callPackage ../development/python-modules/ruamel_yaml { };
+  smpplib = callPackage ../development/python-modules/smpplib { };
 
-  ruamel_yaml_clib = callPackage ../development/python-modules/ruamel_yaml_clib { };
+  smugline = callPackage ../development/python-modules/smugline { };
 
-  ruffus = callPackage ../development/python-modules/ruffus { };
+  smugpy = callPackage ../development/python-modules/smugpy { };
 
-  runsnakerun = callPackage ../development/python-modules/runsnakerun { };
+  snakebite = callPackage ../development/python-modules/snakebite { };
 
-  pysendfile = callPackage ../development/python-modules/pysendfile { };
+  snakeviz = callPackage ../development/python-modules/snakeviz { };
 
-  pyxl3 = callPackage ../development/python-modules/pyxl3 { };
+  snapcast = callPackage ../development/python-modules/snapcast { };
 
-  qpid-python = callPackage ../development/python-modules/qpid-python { };
+  snapperGUI = callPackage ../development/python-modules/snappergui { };
 
-  xattr = callPackage ../development/python-modules/xattr { };
+  sniffio = callPackage ../development/python-modules/sniffio { };
 
-  scripttest = callPackage ../development/python-modules/scripttest { };
+  snitun = callPackage ../development/python-modules/snitun { };
 
-  setuptoolsDarcs = callPackage ../development/python-modules/setuptoolsdarcs { };
+  snowballstemmer = callPackage ../development/python-modules/snowballstemmer { };
 
-  setuptoolsTrial = callPackage ../development/python-modules/setuptoolstrial { };
+  snowflake-connector-python = callPackage ../development/python-modules/snowflake-connector-python { };
 
-  simplebayes = callPackage ../development/python-modules/simplebayes { };
+  snowflake-sqlalchemy = callPackage ../development/python-modules/snowflake-sqlalchemy { };
 
-  shortuuid = callPackage ../development/python-modules/shortuuid { };
+  snscrape = callPackage ../development/python-modules/snscrape { };
 
-  shouldbe = callPackage ../development/python-modules/shouldbe { };
+  snug = callPackage ../development/python-modules/snug { };
 
-  simpleparse = callPackage ../development/python-modules/simpleparse { };
+  snuggs = callPackage ../development/python-modules/snuggs { };
 
-  slob = callPackage ../development/python-modules/slob { };
+  soapysdr = toPythonModule (pkgs.soapysdr.override {
+    python = self.python;
+    usePython = true;
+  });
 
-  slowaes = callPackage ../development/python-modules/slowaes { };
+  soapysdr-with-plugins = toPythonModule (pkgs.soapysdr-with-plugins.override {
+    python = self.python;
+    usePython = true;
+  });
 
-  sqlite3dbm = callPackage ../development/python-modules/sqlite3dbm { };
+  sockjs-tornado = callPackage ../development/python-modules/sockjs-tornado { };
 
-  sqlitedict = callPackage ../development/python-modules/sqlitedict { };
+  socksipy-branch = callPackage ../development/python-modules/socksipy-branch { };
 
-  sqlobject = callPackage ../development/python-modules/sqlobject { };
+  soco = callPackage ../development/python-modules/soco { };
 
-  sqlmap = callPackage ../development/python-modules/sqlmap { };
+  softlayer = callPackage ../development/python-modules/softlayer { };
 
-  pgpdump = callPackage ../development/python-modules/pgpdump { };
+  solo-python = disabledIf (!pythonAtLeast "3.6") (callPackage ../development/python-modules/solo-python { });
 
-  spambayes = callPackage ../development/python-modules/spambayes { };
+  somajo = callPackage ../development/python-modules/somajo { };
 
-  shapely = callPackage ../development/python-modules/shapely { };
+  sopel = callPackage ../development/python-modules/sopel { };
 
-  sharedmem = callPackage ../development/python-modules/sharedmem { };
+  sorl_thumbnail = callPackage ../development/python-modules/sorl_thumbnail { };
 
-  soco = callPackage ../development/python-modules/soco { };
+  sortedcollections = callPackage ../development/python-modules/sortedcollections { };
 
-  sopel = callPackage ../development/python-modules/sopel { };
+  sortedcontainers = callPackage ../development/python-modules/sortedcontainers { };
 
   sounddevice = callPackage ../development/python-modules/sounddevice { };
 
-  stevedore = callPackage ../development/python-modules/stevedore {};
-
-  text-unidecode = callPackage ../development/python-modules/text-unidecode { };
+  soundfile = callPackage ../development/python-modules/soundfile { };
 
-  Theano = callPackage ../development/python-modules/Theano rec {
-    cudaSupport = pkgs.config.cudaSupport or false;
-    cudnnSupport = cudaSupport;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-  };
+  soupsieve = if isPy3k then
+    callPackage ../development/python-modules/soupsieve { }
+  else
+    callPackage ../development/python-modules/soupsieve/1.nix { };
 
-  TheanoWithoutCuda = self.Theano.override {
-    cudaSupport = false;
-    cudnnSupport = false;
-  };
+  spacy = callPackage ../development/python-modules/spacy { };
 
-  TheanoWithCuda = self.Theano.override {
-    cudaSupport = true;
-    cudnnSupport = true;
-  };
+  spacy_models = callPackage ../development/python-modules/spacy/models.nix { };
 
-  thespian = callPackage ../development/python-modules/thespian { };
+  spake2 = callPackage ../development/python-modules/spake2 { };
 
-  tidylib = callPackage ../development/python-modules/pytidylib { };
+  spambayes = callPackage ../development/python-modules/spambayes { };
 
-  tilestache = callPackage ../development/python-modules/tilestache { };
+  spark_parser = callPackage ../development/python-modules/spark_parser { };
 
-  timelib = callPackage ../development/python-modules/timelib { };
+  SPARQLWrapper = callPackage ../development/python-modules/sparqlwrapper { };
 
-  timeout-decorator = callPackage ../development/python-modules/timeout-decorator { };
+  sparse = callPackage ../development/python-modules/sparse { };
 
-  pid = callPackage ../development/python-modules/pid { };
+  speaklater = callPackage ../development/python-modules/speaklater { };
 
-  pip2nix = callPackage ../development/python-modules/pip2nix { };
+  spectral-cube = callPackage ../development/python-modules/spectral-cube { };
 
-  pychef = callPackage ../development/python-modules/pychef { };
+  speedtest-cli = callPackage ../development/python-modules/speedtest-cli { };
 
-  pydns =
-    let
-      py3 = callPackage ../development/python-modules/py3dns { };
+  spglib = callPackage ../development/python-modules/spglib { };
 
-      py2 = callPackage ../development/python-modules/pydns { };
-    in if isPy3k then py3 else py2;
+  sphfile = callPackage ../development/python-modules/sphfile { };
 
-  python-daemon = callPackage ../development/python-modules/python-daemon { };
+  sphinxcontrib-applehelp = callPackage ../development/python-modules/sphinxcontrib-applehelp { };
 
-  python-vagrant = callPackage ../development/python-modules/python-vagrant { };
+  sphinxcontrib-bibtex = callPackage ../development/python-modules/sphinxcontrib-bibtex { };
 
-  symengine = callPackage ../development/python-modules/symengine {
-    symengine = pkgs.symengine;
-  };
+  sphinxcontrib-blockdiag = callPackage ../development/python-modules/sphinxcontrib-blockdiag { };
 
-  sympy = callPackage ../development/python-modules/sympy { };
+  sphinxcontrib-devhelp = callPackage ../development/python-modules/sphinxcontrib-devhelp { };
 
-  pilkit = callPackage ../development/python-modules/pilkit { };
+  sphinxcontrib-fulltoc = callPackage ../development/python-modules/sphinxcontrib-fulltoc { };
 
-  clint = callPackage ../development/python-modules/clint { };
+  sphinxcontrib-htmlhelp = callPackage ../development/python-modules/sphinxcontrib-htmlhelp { };
 
-  argh = callPackage ../development/python-modules/argh { };
+  sphinxcontrib_httpdomain = callPackage ../development/python-modules/sphinxcontrib_httpdomain { };
 
-  nose_progressive = callPackage ../development/python-modules/nose_progressive { };
+  sphinxcontrib-jsmath = callPackage ../development/python-modules/sphinxcontrib-jsmath { };
 
-  blessings = callPackage ../development/python-modules/blessings { };
+  sphinxcontrib-katex = callPackage ../development/python-modules/sphinxcontrib-katex { };
 
-  secretstorage = if isPy3k
-    then callPackage ../development/python-modules/secretstorage { }
-    else callPackage ../development/python-modules/secretstorage/2.nix { };
+  sphinxcontrib_newsfeed = callPackage ../development/python-modules/sphinxcontrib_newsfeed { };
 
-  secure = callPackage ../development/python-modules/secure { };
+  sphinxcontrib-openapi = callPackage ../development/python-modules/sphinxcontrib-openapi { };
 
-  semantic = callPackage ../development/python-modules/semantic { };
+  sphinxcontrib_plantuml =
+    callPackage ../development/python-modules/sphinxcontrib_plantuml { inherit (pkgs) plantuml; };
 
-  sandboxlib = callPackage ../development/python-modules/sandboxlib { };
+  sphinxcontrib-qthelp = callPackage ../development/python-modules/sphinxcontrib-qthelp { };
 
-  sanic = callPackage ../development/python-modules/sanic { };
+  sphinxcontrib-serializinghtml = callPackage ../development/python-modules/sphinxcontrib-serializinghtml { };
 
-  scales = callPackage ../development/python-modules/scales { };
+  sphinxcontrib-spelling = callPackage ../development/python-modules/sphinxcontrib-spelling { };
 
-  secp256k1 = callPackage ../development/python-modules/secp256k1 {
-    inherit (pkgs) secp256k1 pkgconfig;
+  sphinxcontrib-tikz = callPackage ../development/python-modules/sphinxcontrib-tikz {
+    texLive = pkgs.texlive.combine { inherit (pkgs.texlive) scheme-small standalone pgfplots; };
   };
 
-  semantic-version = callPackage ../development/python-modules/semantic-version { };
-
-  sexpdata = callPackage ../development/python-modules/sexpdata { };
-
-  sh = callPackage ../development/python-modules/sh { };
-
-  sipsimple = callPackage ../development/python-modules/sipsimple { };
-
-  six = callPackage ../development/python-modules/six { };
-
-  smartdc = callPackage ../development/python-modules/smartdc { };
-
-  smpplib = callPackage ../development/python-modules/smpplib { };
+  sphinxcontrib-websupport = if isPy3k then
+    callPackage ../development/python-modules/sphinxcontrib-websupport { }
+  else
+    callPackage ../development/python-modules/sphinxcontrib-websupport/1_1.nix { };
 
-  socksipy-branch = callPackage ../development/python-modules/socksipy-branch { };
+  sphinx = if isPy3k then
+    callPackage ../development/python-modules/sphinx { }
+  else
+    callPackage ../development/python-modules/sphinx/2.nix { };
 
-  sockjs-tornado = callPackage ../development/python-modules/sockjs-tornado { };
+  sphinx-jinja = callPackage ../development/python-modules/sphinx-jinja { };
 
-  sorl_thumbnail = callPackage ../development/python-modules/sorl_thumbnail { };
+  sphinx-navtree = callPackage ../development/python-modules/sphinx-navtree { };
 
-  soupsieve = callPackage ../development/python-modules/soupsieve { };
+  sphinx_pypi_upload = callPackage ../development/python-modules/sphinx_pypi_upload { };
 
   sphinx_rtd_theme = callPackage ../development/python-modules/sphinx_rtd_theme { };
 
-  sphinxcontrib-blockdiag = callPackage ../development/python-modules/sphinxcontrib-blockdiag { };
+  sphinx-testing = callPackage ../development/python-modules/sphinx-testing { };
 
-  sphinxcontrib-openapi = callPackage ../development/python-modules/sphinxcontrib-openapi { };
+  spidev = callPackage ../development/python-modules/spidev { };
 
-  sphinxcontrib_httpdomain = callPackage ../development/python-modules/sphinxcontrib_httpdomain { };
+  splinter = callPackage ../development/python-modules/splinter { };
 
-  sphinxcontrib_newsfeed = callPackage ../development/python-modules/sphinxcontrib_newsfeed { };
+  spotipy = callPackage ../development/python-modules/spotipy { };
 
-  sphinxcontrib_plantuml = callPackage ../development/python-modules/sphinxcontrib_plantuml {
-    inherit (pkgs) plantuml;
-  };
+  spyder = callPackage ../development/python-modules/spyder { };
+  spyder_3 = callPackage ../development/python-modules/spyder/3.nix { };
 
-  sphinxcontrib-spelling = callPackage ../development/python-modules/sphinxcontrib-spelling { };
+  spyder-kernels = callPackage ../development/python-modules/spyder-kernels { };
+  spyder-kernels_0_5 = callPackage ../development/python-modules/spyder-kernels/0.x.nix { };
 
-  sphinxcontrib-tikz = callPackage ../development/python-modules/sphinxcontrib-tikz {
-    texLive = pkgs.texlive.combine { inherit (pkgs.texlive) scheme-small standalone pgfplots; };
-  };
+  sqlalchemy = callPackage ../development/python-modules/sqlalchemy { };
 
-  sphinx_pypi_upload = callPackage ../development/python-modules/sphinx_pypi_upload { };
+  sqlalchemy-citext = callPackage ../development/python-modules/sqlalchemy-citext { };
 
-  Pweave = callPackage ../development/python-modules/pweave { };
+  sqlalchemy-continuum = callPackage ../development/python-modules/sqlalchemy-continuum { };
+
+  sqlalchemy-i18n = callPackage ../development/python-modules/sqlalchemy-i18n { };
 
   SQLAlchemy-ImageAttach = callPackage ../development/python-modules/sqlalchemy-imageattach { };
 
-  sqlparse = callPackage ../development/python-modules/sqlparse { };
+  sqlalchemy_migrate = callPackage ../development/python-modules/sqlalchemy-migrate { };
 
-  python_statsd = callPackage ../development/python-modules/python_statsd { };
+  sqlalchemy-utils = callPackage ../development/python-modules/sqlalchemy-utils { };
 
-  stompclient = callPackage ../development/python-modules/stompclient { };
+  sqlite3dbm = callPackage ../development/python-modules/sqlite3dbm { };
 
-  subdownloader = callPackage ../development/python-modules/subdownloader { };
+  sqlitedict = callPackage ../development/python-modules/sqlitedict { };
 
-  subunit = callPackage ../development/python-modules/subunit {
-    inherit (pkgs) subunit pkg-config cppunit check;
-  };
+  sqlmap = callPackage ../development/python-modules/sqlmap { };
 
-  sure = callPackage ../development/python-modules/sure { };
+  sqlobject = callPackage ../development/python-modules/sqlobject { };
 
-  svgwrite = callPackage ../development/python-modules/svgwrite { };
+  sqlparse = callPackage ../development/python-modules/sqlparse { };
 
-  swagger-spec-validator = callPackage ../development/python-modules/swagger-spec-validator { };
+  sqlsoup = callPackage ../development/python-modules/sqlsoup { };
 
-  openapi-spec-validator = callPackage ../development/python-modules/openapi-spec-validator { };
+  squaremap = callPackage ../development/python-modules/squaremap { };
 
-  freezegun = callPackage ../development/python-modules/freezegun { };
+  srp = callPackage ../development/python-modules/srp { };
 
-  taskw = callPackage ../development/python-modules/taskw { };
+  srptools = callPackage ../development/python-modules/srptools { };
 
-  telethon = callPackage ../development/python-modules/telethon { };
+  srsly = callPackage ../development/python-modules/srsly { };
 
-  telethon-session-sqlalchemy = callPackage ../development/python-modules/telethon-session-sqlalchemy { };
+  srvlookup = callPackage ../development/python-modules/srvlookup { };
 
-  terminaltables = callPackage ../development/python-modules/terminaltables { };
+  ssdeep = callPackage ../development/python-modules/ssdeep { };
 
-  testpath = callPackage ../development/python-modules/testpath { };
+  ssdp = callPackage ../development/python-modules/ssdp { };
 
-  testrepository = callPackage ../development/python-modules/testrepository { };
+  sseclient = callPackage ../development/python-modules/sseclient { };
 
-  testscenarios = callPackage ../development/python-modules/testscenarios { };
+  sshpubkeys = callPackage ../development/python-modules/sshpubkeys { };
 
-  python_mimeparse = callPackage ../development/python-modules/python_mimeparse { };
+  sshtunnel = callPackage ../development/python-modules/sshtunnel { };
 
-  # Tkinter/tkinter is part of the Python standard library.
-  # The Python interpreters in Nixpkgs come without tkinter by default.
-  # To make the module available, we make it available as any other
-  # Python package.
-  tkinter = let
-    py = python.override{x11Support=true;};
-  in callPackage ../development/python-modules/tkinter { py = py; };
+  sslib = callPackage ../development/python-modules/sslib { };
 
-  tlslite-ng = callPackage ../development/python-modules/tlslite-ng { };
+  sslyze = callPackage ../development/python-modules/sslyze { };
 
-  qrcode = callPackage ../development/python-modules/qrcode { };
+  starfish = callPackage ../development/python-modules/starfish { };
 
-  traits = callPackage ../development/python-modules/traits { };
+  starlette = callPackage ../development/python-modules/starlette { };
 
-  transmissionrpc = callPackage ../development/python-modules/transmissionrpc { };
+  staticjinja = callPackage ../development/python-modules/staticjinja { };
 
-  eggdeps = callPackage ../development/python-modules/eggdeps { };
+  statistics = callPackage ../development/python-modules/statistics { };
 
-  twiggy = callPackage ../development/python-modules/twiggy { };
+  statsd = callPackage ../development/python-modules/statsd { };
 
-  twitter = callPackage ../development/python-modules/twitter { };
+  statsmodels = callPackage ../development/python-modules/statsmodels { };
 
-  twitter-common-collections = callPackage ../development/python-modules/twitter-common-collections { };
+  stem = callPackage ../development/python-modules/stem { };
 
-  twitter-common-confluence = callPackage ../development/python-modules/twitter-common-confluence { };
+  stevedore = callPackage ../development/python-modules/stevedore { };
 
-  twitter-common-dirutil = callPackage ../development/python-modules/twitter-common-dirutil { };
+  stm32loader = callPackage ../development/python-modules/stm32loader { };
 
-  twitter-common-lang = callPackage ../development/python-modules/twitter-common-lang { };
+  stompclient = callPackage ../development/python-modules/stompclient { };
 
-  twitter-common-log = callPackage ../development/python-modules/twitter-common-log { };
+  strategies = callPackage ../development/python-modules/strategies { };
 
-  twitter-common-options = callPackage ../development/python-modules/twitter-common-options { };
+  stravalib = callPackage ../development/python-modules/stravalib { };
 
-  python-twitter = callPackage ../development/python-modules/python-twitter { };
+  streamz = callPackage ../development/python-modules/streamz { };
 
-  umalqurra = callPackage ../development/python-modules/umalqurra { };
+  strict-rfc3339 = callPackage ../development/python-modules/strict-rfc3339 { };
 
-  unicodecsv = callPackage ../development/python-modules/unicodecsv { };
+  strictyaml = callPackage ../development/python-modules/strictyaml { };
 
-  unicode-slugify = callPackage ../development/python-modules/unicode-slugify { };
+  stringcase = callPackage ../development/python-modules/stringcase { };
 
-  unidiff = callPackage ../development/python-modules/unidiff { };
+  stripe = callPackage ../development/python-modules/stripe { };
 
-  units = callPackage ../development/python-modules/units { };
+  structlog = callPackage ../development/python-modules/structlog { };
 
-  unittest-data-provider = callPackage ../development/python-modules/unittest-data-provider { };
+  stumpy = callPackage ../development/python-modules/stumpy { };
 
-  unittest2 = callPackage ../development/python-modules/unittest2 { };
+  stups-cli-support = callPackage ../development/python-modules/stups-cli-support { };
 
-  unittest-xml-reporting = callPackage ../development/python-modules/unittest-xml-reporting { };
+  stups-fullstop = callPackage ../development/python-modules/stups-fullstop { };
 
-  untangle = callPackage ../development/python-modules/untangle { };
+  stups-pierone = callPackage ../development/python-modules/stups-pierone { };
 
-  traceback2 = callPackage ../development/python-modules/traceback2 { };
+  stups-tokens = callPackage ../development/python-modules/stups-tokens { };
 
-  trackpy = callPackage ../development/python-modules/trackpy { };
+  stups-zign = callPackage ../development/python-modules/stups-zign { };
 
-  linecache2 = callPackage ../development/python-modules/linecache2 { };
+  stytra = callPackage ../development/python-modules/stytra { };
 
-  upass = callPackage ../development/python-modules/upass { };
+  subdownloader = callPackage ../development/python-modules/subdownloader { };
 
-  uptime = callPackage ../development/python-modules/uptime { };
+  subliminal = callPackage ../development/python-modules/subliminal { };
 
-  urwidtrees = callPackage ../development/python-modules/urwidtrees { };
+  subprocess32 = callPackage ../development/python-modules/subprocess32 { };
 
-  pyuv = callPackage ../development/python-modules/pyuv { };
+  subunit = callPackage ../development/python-modules/subunit { inherit (pkgs) subunit pkg-config cppunit check; };
 
-  virtualenv-clone = callPackage ../development/python-modules/virtualenv-clone { };
+  suds = callPackage ../development/python-modules/suds { };
 
-  virtualenvwrapper = callPackage ../development/python-modules/virtualenvwrapper { };
+  suds-jurko = callPackage ../development/python-modules/suds-jurko { };
 
-  vmprof = callPackage ../development/python-modules/vmprof { };
+  sumo = callPackage ../development/python-modules/sumo { };
 
-  vultr = callPackage ../development/python-modules/vultr { };
+  sunpy = callPackage ../development/python-modules/sunpy { };
 
-  wadllib = callPackage ../development/python-modules/wadllib { };
+  supervise_api = callPackage ../development/python-modules/supervise_api { };
 
-  waitress = callPackage ../development/python-modules/waitress { };
+  supervisor = callPackage ../development/python-modules/supervisor { };
 
-  waitress-django = callPackage ../development/python-modules/waitress-django { };
+  sure = callPackage ../development/python-modules/sure { };
 
-  web = callPackage ../development/python-modules/web { };
+  suseapi = callPackage ../development/python-modules/suseapi { };
 
-  webob = callPackage ../development/python-modules/webob { };
+  svg2tikz = callPackage ../development/python-modules/svg2tikz { };
 
-  websockify = callPackage ../development/python-modules/websockify { };
+  svglib = callPackage ../development/python-modules/svglib { };
 
-  webtest = callPackage ../development/python-modules/webtest { };
+  svg-path = callPackage ../development/python-modules/svg-path { };
 
-  wsgiproxy2 = callPackage ../development/python-modules/wsgiproxy2 { };
+  svgwrite = callPackage ../development/python-modules/svgwrite { };
 
-  wsgitools = callPackage ../development/python-modules/wsgitools { };
+  swagger-spec-validator = callPackage ../development/python-modules/swagger-spec-validator { };
 
-  wurlitzer = callPackage ../development/python-modules/wurlitzer { };
+  swagger-ui-bundle = callPackage ../development/python-modules/swagger-ui-bundle { };
 
-  xcaplib = callPackage ../development/python-modules/xcaplib { };
+  sybil = callPackage ../development/python-modules/sybil { };
 
-  xlib = callPackage ../development/python-modules/xlib { };
+  symengine = callPackage ../development/python-modules/symengine { symengine = pkgs.symengine; };
 
-  yappi = callPackage ../development/python-modules/yappi { };
+  sympy = if isPy3k then
+    callPackage ../development/python-modules/sympy { }
+  else
+    callPackage ../development/python-modules/sympy/1_5.nix { };
 
-  zbase32 = callPackage ../development/python-modules/zbase32 { };
+  systemd = callPackage ../development/python-modules/systemd { inherit (pkgs) pkgconfig systemd; };
 
-  zdaemon = callPackage ../development/python-modules/zdaemon { };
+  sysv_ipc = callPackage ../development/python-modules/sysv_ipc { };
 
-  zfec = callPackage ../development/python-modules/zfec { };
+  tableaudocumentapi = callPackage ../development/python-modules/tableaudocumentapi { };
 
-  zha-quirks = callPackage ../development/python-modules/zha-quirks { };
+  tables = if isPy3k then
+    callPackage ../development/python-modules/tables { hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; }; }
+  else
+    callPackage ../development/python-modules/tables/3.5.nix { hdf5 = pkgs.hdf5.override { zlib = pkgs.zlib; }; };
 
-  zipp = callPackage ../development/python-modules/zipp { };
+  tablib = callPackage ../development/python-modules/tablib { };
 
-  zope_broken = callPackage ../development/python-modules/zope_broken { };
+  tabulate = callPackage ../development/python-modules/tabulate { };
 
-  zope_component = callPackage ../development/python-modules/zope_component { };
+  tadasets = callPackage ../development/python-modules/tadasets { };
 
-  zope_configuration = callPackage ../development/python-modules/zope_configuration { };
+  tag-expressions = callPackage ../development/python-modules/tag-expressions { };
 
-  zope_contenttype = callPackage ../development/python-modules/zope_contenttype { };
+  tarman = callPackage ../development/python-modules/tarman { };
 
-  zope-deferredimport = callPackage ../development/python-modules/zope-deferredimport { };
+  tasklib = callPackage ../development/python-modules/tasklib { };
 
-  zope_dottedname = callPackage ../development/python-modules/zope_dottedname { };
+  taskw = callPackage ../development/python-modules/taskw { };
 
-  zope_event = callPackage ../development/python-modules/zope_event { };
+  tatsu = callPackage ../development/python-modules/tatsu { };
 
-  zope_exceptions = callPackage ../development/python-modules/zope_exceptions { };
+  tblib = callPackage ../development/python-modules/tblib { };
 
-  zope_filerepresentation = callPackage ../development/python-modules/zope_filerepresentation { };
+  tbm-utils = callPackage ../development/python-modules/tbm-utils { };
 
-  zope-hookable = callPackage ../development/python-modules/zope-hookable { };
+  telegram = callPackage ../development/python-modules/telegram { };
 
-  zope_i18n = callPackage ../development/python-modules/zope_i18n { };
+  telethon = callPackage ../development/python-modules/telethon { };
 
-  zope_i18nmessageid = callPackage ../development/python-modules/zope_i18nmessageid { };
+  telethon-session-sqlalchemy = callPackage ../development/python-modules/telethon-session-sqlalchemy { };
 
-  zope_lifecycleevent = callPackage ../development/python-modules/zope_lifecycleevent { };
+  tempita = callPackage ../development/python-modules/tempita { };
 
-  zope_location = callPackage ../development/python-modules/zope_location { };
+  tempora = callPackage ../development/python-modules/tempora { };
 
-  zope_proxy = callPackage ../development/python-modules/zope_proxy { };
+  tenacity = callPackage ../development/python-modules/tenacity { };
 
-  zope_schema = callPackage ../development/python-modules/zope_schema { };
+  tensorboardx = callPackage ../development/python-modules/tensorboardx { };
 
-  zope_size = callPackage ../development/python-modules/zope_size { };
+  tensorflow-bin_1 = callPackage ../development/python-modules/tensorflow/1/bin.nix {
+    cudaSupport = pkgs.config.cudaSupport or false;
+    inherit (pkgs.linuxPackages) nvidia_x11;
+    cudatoolkit = pkgs.cudatoolkit_10;
+    cudnn = pkgs.cudnn_cudatoolkit_10;
+  };
 
-  zope_testing = callPackage ../development/python-modules/zope_testing { };
+  tensorflow-bin_2 = callPackage ../development/python-modules/tensorflow/2/bin.nix {
+    cudaSupport = pkgs.config.cudaSupport or false;
+    inherit (pkgs.linuxPackages) nvidia_x11;
+    cudatoolkit = pkgs.cudatoolkit_10;
+    cudnn = pkgs.cudnn_cudatoolkit_10;
+  };
 
-  zope_testrunner = callPackage ../development/python-modules/zope_testrunner { };
+  tensorflow-bin = self.tensorflow-bin_1;
 
-  zope_interface = callPackage ../development/python-modules/zope_interface { };
+  tensorflow-build_1 = callPackage ../development/python-modules/tensorflow/1 {
+    cudaSupport = pkgs.config.cudaSupport or false;
+    inherit (pkgs.linuxPackages) nvidia_x11;
+    cudatoolkit = pkgs.cudatoolkit_10;
+    cudnn = pkgs.cudnn_cudatoolkit_10;
+    nccl = pkgs.nccl_cudatoolkit_10;
+    openssl = pkgs.openssl_1_1;
+    inherit (pkgs.darwin.apple_sdk.frameworks) Foundation Security;
+  };
 
-  hgsvn = callPackage ../development/python-modules/hgsvn { };
+  tensorflow-build_2 = callPackage ../development/python-modules/tensorflow/2 {
+    cudaSupport = pkgs.config.cudaSupport or false;
+    inherit (pkgs.linuxPackages) nvidia_x11;
+    cudatoolkit = pkgs.cudatoolkit_10;
+    cudnn = pkgs.cudnn_cudatoolkit_10;
+    nccl = pkgs.nccl_cudatoolkit_10;
+    openssl = pkgs.openssl_1_1;
+    inherit (pkgs.darwin.apple_sdk.frameworks) Foundation Security;
+  };
 
-  cliapp = callPackage ../development/python-modules/cliapp { };
+  tensorflow-build = self.tensorflow-build_1;
 
-  cmdtest = callPackage ../development/python-modules/cmdtest { };
+  tensorflow-estimator_1 = callPackage ../development/python-modules/tensorflow-estimator/1 { };
 
-  tornado = callPackage ../development/python-modules/tornado { };
-  tornado_4 = callPackage ../development/python-modules/tornado { version = "4.5.3"; };
+  tensorflow-estimator_2 = callPackage ../development/python-modules/tensorflow-estimator/2 { };
 
-  tokenlib = callPackage ../development/python-modules/tokenlib { };
+  tensorflow-estimator = self.tensorflow-estimator_1;
 
-  tunigo = callPackage ../development/python-modules/tunigo { };
+  tensorflow-probability = callPackage ../development/python-modules/tensorflow-probability { };
 
-  tarman = callPackage ../development/python-modules/tarman { };
+  tensorflow = self.tensorflow_1;
+  tensorflow_1 = self.tensorflow-build_1;
+  tensorflow_2 = self.tensorflow-build_2;
 
-  libarchive = self.python-libarchive; # The latter is the name upstream uses
+  tensorflow-tensorboard_1 = callPackage ../development/python-modules/tensorflow-tensorboard/1 { };
 
-  python-libarchive = callPackage ../development/python-modules/python-libarchive { };
+  tensorflow-tensorboard_2 = callPackage ../development/python-modules/tensorflow-tensorboard/2 { };
 
-  python-logstash = callPackage ../development/python-modules/python-logstash { };
+  tensorflow-tensorboard = self.tensorflow-tensorboard_1;
 
-  libarchive-c = callPackage ../development/python-modules/libarchive-c {
-    inherit (pkgs) libarchive;
-  };
+  tensorflowWithCuda = self.tensorflow.override { cudaSupport = true; };
 
-  libasyncns = callPackage ../development/python-modules/libasyncns {
-    inherit (pkgs) libasyncns pkgconfig;
-  };
+  tensorflowWithoutCuda = self.tensorflow.override { cudaSupport = false; };
 
-  pybrowserid = callPackage ../development/python-modules/pybrowserid { };
+  tensorly = callPackage ../development/python-modules/tensorly { };
 
-  pyzmq = callPackage ../development/python-modules/pyzmq { };
+  termcolor = callPackage ../development/python-modules/termcolor { };
 
-  testfixtures = callPackage ../development/python-modules/testfixtures {};
+  terminado = callPackage ../development/python-modules/terminado { };
 
-  tissue = callPackage ../development/python-modules/tissue { };
+  terminaltables = callPackage ../development/python-modules/terminaltables { };
 
-  titlecase = callPackage ../development/python-modules/titlecase { };
+  termstyle = callPackage ../development/python-modules/termstyle { };
 
-  tracing = callPackage ../development/python-modules/tracing { };
+  tess = callPackage ../development/python-modules/tess { };
 
-  traitsui = callPackage ../development/python-modules/traitsui { };
+  tesserocr = callPackage ../development/python-modules/tesserocr { };
 
-  translationstring = callPackage ../development/python-modules/translationstring { };
+  testfixtures = callPackage ../development/python-modules/testfixtures { };
 
-  ttystatus = callPackage ../development/python-modules/ttystatus { };
+  textfsm = callPackage ../development/python-modules/textfsm { };
 
-  larch = callPackage ../development/python-modules/larch { };
+  testpath = callPackage ../development/python-modules/testpath { };
 
-  websocket_client = callPackage ../development/python-modules/websocket_client { };
+  testrepository = callPackage ../development/python-modules/testrepository { };
 
-  webhelpers = callPackage ../development/python-modules/webhelpers { };
+  testresources = callPackage ../development/python-modules/testresources { };
 
-  whichcraft = callPackage ../development/python-modules/whichcraft { };
+  testscenarios = callPackage ../development/python-modules/testscenarios { };
 
-  whisper = callPackage ../development/python-modules/whisper { };
+  testtools = callPackage ../development/python-modules/testtools { };
 
-  worldengine = callPackage ../development/python-modules/worldengine { };
+  test-tube = callPackage ../development/python-modules/test-tube { };
 
-  carbon = callPackage ../development/python-modules/carbon { };
+  textacy = callPackage ../development/python-modules/textacy { };
 
-  ujson = callPackage ../development/python-modules/ujson { };
+  texttable = callPackage ../development/python-modules/texttable { };
 
-  unidecode = callPackage ../development/python-modules/unidecode {};
+  text-unidecode = callPackage ../development/python-modules/text-unidecode { };
 
-  pyusb = callPackage ../development/python-modules/pyusb { libusb1 = pkgs.libusb1; };
+  textwrap3 = callPackage ../development/python-modules/textwrap3 { };
 
-  BlinkStick = callPackage ../development/python-modules/blinkstick { };
+  tflearn = callPackage ../development/python-modules/tflearn { };
 
-  usbtmc = callPackage ../development/python-modules/usbtmc {};
+  Theano = callPackage ../development/python-modules/Theano rec {
+    cudaSupport = pkgs.config.cudaSupport or false;
+    cudnnSupport = cudaSupport;
+    inherit (pkgs.linuxPackages) nvidia_x11;
+  };
 
-  txgithub = callPackage ../development/python-modules/txgithub { };
+  TheanoWithCuda = self.Theano.override {
+    cudaSupport = true;
+    cudnnSupport = true;
+  };
 
-  txrequests = callPackage ../development/python-modules/txrequests { };
+  TheanoWithoutCuda = self.Theano.override {
+    cudaSupport = false;
+    cudnnSupport = false;
+  };
 
-  txamqp = callPackage ../development/python-modules/txamqp { };
+  thespian = callPackage ../development/python-modules/thespian { };
 
-  versiontools = callPackage ../development/python-modules/versiontools { };
+  thinc = callPackage ../development/python-modules/thinc { };
 
-  veryprettytable = callPackage ../development/python-modules/veryprettytable { };
+  threadpool = callPackage ../development/python-modules/threadpool { };
 
-  graphite-web = callPackage ../development/python-modules/graphite-web { };
+  threadpoolctl = callPackage ../development/python-modules/threadpoolctl { };
 
-  graphite_api = callPackage ../development/python-modules/graphite-api { };
+  thrift = callPackage ../development/python-modules/thrift { };
 
-  graphite_beacon = callPackage ../development/python-modules/graphite_beacon { };
+  thumbor = callPackage ../development/python-modules/thumbor { };
 
-  graph_nets = callPackage ../development/python-modules/graph_nets { };
+  thumborPexif = callPackage ../development/python-modules/thumborpexif { };
 
-  graspy = callPackage ../development/python-modules/graspy { };
+  tkinter = let
+    py = python.override{x11Support=true;};
+  in callPackage ../development/python-modules/tkinter { py = py; };
 
-  influxgraph = callPackage ../development/python-modules/influxgraph { };
+  tidylib = callPackage ../development/python-modules/pytidylib { };
 
-  pyspotify = callPackage ../development/python-modules/pyspotify { };
+  tifffile = callPackage ../development/python-modules/tifffile { };
 
-  pykka = callPackage ../development/python-modules/pykka { };
+  tiledb = callPackage ../development/python-modules/tiledb { inherit (pkgs) tiledb; };
 
-  ws4py = callPackage ../development/python-modules/ws4py {};
+  tilestache = callPackage ../development/python-modules/tilestache { };
 
-  gdata = callPackage ../development/python-modules/gdata { };
+  timelib = callPackage ../development/python-modules/timelib { };
 
-  IMAPClient = callPackage ../development/python-modules/imapclient { };
+  timeout-decorator = callPackage ../development/python-modules/timeout-decorator { };
 
-  Logbook = callPackage ../development/python-modules/Logbook { };
+  timezonefinder = callPackage ../development/python-modules/timezonefinder { };
 
-  libversion = callPackage ../development/python-modules/libversion {
-    inherit (pkgs) libversion pkgconfig;
-  };
+  tinycss2 = callPackage ../development/python-modules/tinycss2 { };
 
-  libvirt = if isPy3k then (callPackage ../development/python-modules/libvirt {
-    inherit (pkgs) libvirt pkgconfig;
-  }) else (callPackage ../development/python-modules/libvirt/5.9.0.nix {
-    inherit (pkgs) pkgconfig;
-    libvirt = pkgs.libvirt_5_9_0;
-  });
+  tinycss = callPackage ../development/python-modules/tinycss { };
 
-  rpdb = callPackage ../development/python-modules/rpdb { };
+  tinydb = callPackage ../development/python-modules/tinydb { };
 
-  grequests = callPackage ../development/python-modules/grequests { };
+  tiros = callPackage ../development/python-modules/tiros { };
 
-  first = callPackage ../development/python-modules/first {};
+  tissue = callPackage ../development/python-modules/tissue { };
 
-  flaskbabel = callPackage ../development/python-modules/flaskbabel { };
+  titlecase = callPackage ../development/python-modules/titlecase { };
 
-  speaklater = callPackage ../development/python-modules/speaklater { };
+  tld = callPackage ../development/python-modules/tld { };
 
-  speedtest-cli = callPackage ../development/python-modules/speedtest-cli { };
+  tldextract = callPackage ../development/python-modules/tldextract { };
 
-  pushbullet = callPackage ../development/python-modules/pushbullet { };
+  tlsh = callPackage ../development/python-modules/tlsh { };
 
-  power = callPackage ../development/python-modules/power { };
+  tlslite-ng = callPackage ../development/python-modules/tlslite-ng { };
 
-  pythonefl = callPackage ../development/python-modules/python-efl {
-    inherit (pkgs) pkgconfig;
-  };
+  tls-parser = callPackage ../development/python-modules/tls-parser { };
 
-  tlsh = callPackage ../development/python-modules/tlsh { };
+  tmdb3 = callPackage ../development/python-modules/tmdb3 { };
 
-  toposort = callPackage ../development/python-modules/toposort { };
+  todoist = callPackage ../development/python-modules/todoist { };
 
-  snakebite = callPackage ../development/python-modules/snakebite { };
+  toggl-cli = callPackage ../development/python-modules/toggl-cli { };
 
-  snapperGUI = callPackage ../development/python-modules/snappergui { };
+  tokenizers = disabledIf (!isPy3k) (toPythonModule (callPackage ../development/python-modules/tokenizers { }));
 
-  dm-sonnet = callPackage ../development/python-modules/dm-sonnet { };
+  tokenlib = callPackage ../development/python-modules/tokenlib { };
 
-  uncertainties = callPackage ../development/python-modules/uncertainties { };
+  tokenserver = callPackage ../development/python-modules/tokenserver { };
 
-  funcy = callPackage ../development/python-modules/funcy { };
+  toml = callPackage ../development/python-modules/toml { };
 
-  vxi11 = callPackage ../development/python-modules/vxi11 { };
+  tomlkit = callPackage ../development/python-modules/tomlkit { };
 
-  svg2tikz = callPackage ../development/python-modules/svg2tikz { };
+  toolz = callPackage ../development/python-modules/toolz { };
 
-  WSGIProxy = callPackage ../development/python-modules/wsgiproxy { };
+  toposort = callPackage ../development/python-modules/toposort { };
 
-  blist = callPackage ../development/python-modules/blist { };
+  topydo = throw "python3Packages.topydo was moved to topydo"; # 2017-09-22
 
-  canonicaljson = callPackage ../development/python-modules/canonicaljson { };
+  torchgpipe = callPackage ../development/python-modules/torchgpipe { };
 
-  daemonize = callPackage ../development/python-modules/daemonize { };
+  torchvision = callPackage ../development/python-modules/torchvision { };
 
-  pydenticon = callPackage ../development/python-modules/pydenticon { };
+  tornado = if isPy3k then
+    callPackage ../development/python-modules/tornado { }
+  else
+    callPackage ../development/python-modules/tornado/5.nix { };
 
-  pynac = callPackage ../development/python-modules/pynac { };
+  # Used by circus and grab-site, 2020-08-29
+  tornado_4 = callPackage ../development/python-modules/tornado/4.nix { };
 
-  pybindgen = callPackage ../development/python-modules/pybindgen {};
+  # Used by luigi, 2020-08-29
+  tornado_5 = callPackage ../development/python-modules/tornado/5.nix { };
 
-  pygccxml = callPackage ../development/python-modules/pygccxml {};
+  towncrier = callPackage ../development/python-modules/towncrier { inherit (pkgs) git; };
 
-  pymacaroons = callPackage ../development/python-modules/pymacaroons { };
+  tox = callPackage ../development/python-modules/tox { };
 
-  pynacl = callPackage ../development/python-modules/pynacl { };
+  tqdm = callPackage ../development/python-modules/tqdm { };
 
-  service-identity = callPackage ../development/python-modules/service_identity { };
+  traceback2 = callPackage ../development/python-modules/traceback2 { };
 
-  signedjson = callPackage ../development/python-modules/signedjson { };
+  tracing = callPackage ../development/python-modules/tracing { };
 
-  unpaddedbase64 = callPackage ../development/python-modules/unpaddedbase64 { };
+  trackpy = callPackage ../development/python-modules/trackpy { };
 
-  thumbor = callPackage ../development/python-modules/thumbor { };
+  traitlets = callPackage ../development/python-modules/traitlets { };
 
-  thumborPexif = callPackage ../development/python-modules/thumborpexif { };
+  traits = callPackage ../development/python-modules/traits { };
 
-  pync = callPackage ../development/python-modules/pync { };
+  traitsui = callPackage ../development/python-modules/traitsui { };
 
-  weboob = callPackage ../development/python-modules/weboob { };
+  traittypes = callPackage ../development/python-modules/traittypes { };
 
-  datadiff = callPackage ../development/python-modules/datadiff { };
+  transaction = callPackage ../development/python-modules/transaction { };
 
-  termcolor = callPackage ../development/python-modules/termcolor { };
+  transformers = callPackage ../development/python-modules/transformers { };
 
-  html2text = if isPy3k then callPackage ../development/python-modules/html2text { }
-                        else callPackage ../development/python-modules/html2text/2018.nix { };
+  transforms3d = callPackage ../development/python-modules/transforms3d { };
 
-  pychart = callPackage ../development/python-modules/pychart {};
+  transip = callPackage ../development/python-modules/transip { };
 
-  parsimonious = callPackage ../development/python-modules/parsimonious { };
+  transitions = callPackage ../development/python-modules/transitions { };
 
-  networkx = if isPy3k then callPackage ../development/python-modules/networkx { }
-    else
-      callPackage ../development/python-modules/networkx/2.2.nix { };
+  translationstring = callPackage ../development/python-modules/translationstring { };
 
-  ofxclient = callPackage ../development/python-modules/ofxclient {};
+  transmissionrpc = callPackage ../development/python-modules/transmissionrpc { };
 
-  ofxhome = callPackage ../development/python-modules/ofxhome { };
+  treq = callPackage ../development/python-modules/treq { };
 
-  ofxparse = callPackage ../development/python-modules/ofxparse { };
+  trezor_agent = callPackage ../development/python-modules/trezor_agent { };
 
-  ofxtools = callPackage ../development/python-modules/ofxtools { };
+  trezor = callPackage ../development/python-modules/trezor { };
 
-  orm = callPackage ../development/python-modules/orm { };
+  trimesh = callPackage ../development/python-modules/trimesh { };
 
-  basemap = callPackage ../development/python-modules/basemap { };
+  trio = callPackage ../development/python-modules/trio { };
 
-  dict2xml = callPackage ../development/python-modules/dict2xml { };
+  trollius = callPackage ../development/python-modules/trollius { };
 
-  dicttoxml = callPackage ../development/python-modules/dicttoxml { };
+  trueskill = callPackage ../development/python-modules/trueskill { };
 
-  markdown2 = callPackage ../development/python-modules/markdown2 { };
+  trustme = callPackage ../development/python-modules/trustme { };
 
-  evernote = callPackage ../development/python-modules/evernote { };
+  trytond = callPackage ../development/python-modules/trytond { };
 
-  setproctitle = callPackage ../development/python-modules/setproctitle { };
+  ttystatus = callPackage ../development/python-modules/ttystatus { };
 
-  thrift = callPackage ../development/python-modules/thrift { };
+  tunigo = callPackage ../development/python-modules/tunigo { };
 
-  geeknote = callPackage ../development/python-modules/geeknote { };
+  TurboCheetah = callPackage ../development/python-modules/TurboCheetah { };
 
-  trollius = callPackage ../development/python-modules/trollius {};
+  tvdb_api = callPackage ../development/python-modules/tvdb_api { };
 
-  pynvim = callPackage ../development/python-modules/pynvim {};
+  tvnamer = callPackage ../development/python-modules/tvnamer { };
 
-  typogrify = callPackage ../development/python-modules/typogrify { };
+  tweepy = callPackage ../development/python-modules/tweepy { };
 
-  smartypants = callPackage ../development/python-modules/smartypants { };
+  twiggy = callPackage ../development/python-modules/twiggy { };
 
-  pypeg2 = callPackage ../development/python-modules/pypeg2 { };
+  twilio = callPackage ../development/python-modules/twilio { };
 
-  torchvision = callPackage ../development/python-modules/torchvision { };
+  twill = callPackage ../development/python-modules/twill { };
 
-  jenkinsapi = callPackage ../development/python-modules/jenkinsapi { };
+  twine = callPackage ../development/python-modules/twine { };
 
-  jenkins-job-builder = callPackage ../development/python-modules/jenkins-job-builder { };
+  twisted = callPackage ../development/python-modules/twisted { };
 
-  dot2tex = callPackage ../development/python-modules/dot2tex {
-    inherit (pkgs) graphviz;
-  };
+  twitter = callPackage ../development/python-modules/twitter { };
 
-  poezio = callPackage ../applications/networking/instant-messengers/poezio {
-    inherit (pkgs) pkgconfig;
-  };
+  twitter-common-collections = callPackage ../development/python-modules/twitter-common-collections { };
 
-  potr = callPackage ../development/python-modules/potr {};
+  twitter-common-confluence = callPackage ../development/python-modules/twitter-common-confluence { };
 
-  pyregion = callPackage ../development/python-modules/pyregion {};
+  twitter-common-dirutil = callPackage ../development/python-modules/twitter-common-dirutil { };
 
-  python-nomad = callPackage ../development/python-modules/python-nomad { };
+  twitter-common-lang = callPackage ../development/python-modules/twitter-common-lang { };
 
-  python-u2flib-host = callPackage ../development/python-modules/python-u2flib-host { };
+  twitter-common-log = callPackage ../development/python-modules/twitter-common-log { };
 
-  python-xmp-toolkit = callPackage ../development/python-modules/python-xmp-toolkit { };
+  twitter-common-options = callPackage ../development/python-modules/twitter-common-options { };
 
-  pluggy = callPackage ../development/python-modules/pluggy {};
+  twofish = callPackage ../development/python-modules/twofish { };
 
-  xcffib = callPackage ../development/python-modules/xcffib {};
+  txaio = callPackage ../development/python-modules/txaio { };
 
-  pafy = callPackage ../development/python-modules/pafy { };
+  txamqp = callPackage ../development/python-modules/txamqp { };
 
-  suds = callPackage ../development/python-modules/suds { };
+  txdbus = callPackage ../development/python-modules/txdbus { };
 
-  suds-jurko = callPackage ../development/python-modules/suds-jurko { };
+  txgithub = callPackage ../development/python-modules/txgithub { };
 
-  mailcap-fix = callPackage ../development/python-modules/mailcap-fix { };
+  txrequests = callPackage ../development/python-modules/txrequests { };
 
-  maildir-deduplicate = callPackage ../development/python-modules/maildir-deduplicate { };
+  txtorcon = callPackage ../development/python-modules/txtorcon { };
 
-  d2to1 = callPackage ../development/python-modules/d2to1 { };
+  typed-ast = callPackage ../development/python-modules/typed-ast { };
 
-  ovh = callPackage ../development/python-modules/ovh { };
+  typeguard = callPackage ../development/python-modules/typeguard { };
 
-  willow = callPackage ../development/python-modules/willow { };
+  typesentry = callPackage ../development/python-modules/typesentry { };
 
-  importmagic = callPackage ../development/python-modules/importmagic { };
+  typesystem = callPackage ../development/python-modules/typesystem { };
 
-  xgboost = callPackage ../development/python-modules/xgboost {
-    xgboost = pkgs.xgboost;
-  };
+  typing = callPackage ../development/python-modules/typing { };
 
-  xhtml2pdf = callPackage ../development/python-modules/xhtml2pdf { };
+  typing-extensions = callPackage ../development/python-modules/typing-extensions { };
 
-  xkcdpass = callPackage ../development/python-modules/xkcdpass { };
+  typing-inspect = callPackage ../development/python-modules/typing-inspect { };
 
-  xlsx2csv = callPackage ../development/python-modules/xlsx2csv { };
+  typogrify = callPackage ../development/python-modules/typogrify { };
 
-  xmodem = callPackage ../development/python-modules/xmodem {};
+  tzlocal = callPackage ../development/python-modules/tzlocal { };
 
-  xmpppy = callPackage ../development/python-modules/xmpppy {};
+  uamqp =
+    callPackage ../development/python-modules/uamqp { inherit (pkgs.darwin.apple_sdk.frameworks) CFNetwork Security; };
 
-  xstatic = callPackage ../development/python-modules/xstatic {};
+  ua-parser = callPackage ../development/python-modules/ua-parser { };
 
-  xstatic-bootbox = callPackage ../development/python-modules/xstatic-bootbox {};
+  uarray = callPackage ../development/python-modules/uarray { };
 
-  xstatic-bootstrap = callPackage ../development/python-modules/xstatic-bootstrap {};
+  ueberzug = callPackage ../development/python-modules/ueberzug { inherit (pkgs.xorg) libX11 libXext; };
 
-  xstatic-jquery = callPackage ../development/python-modules/xstatic-jquery {};
+  ufonormalizer = callPackage ../development/python-modules/ufonormalizer { };
 
-  xstatic-jquery-file-upload = callPackage ../development/python-modules/xstatic-jquery-file-upload {};
+  ufoprocessor = callPackage ../development/python-modules/ufoprocessor { };
 
-  xstatic-jquery-ui = callPackage ../development/python-modules/xstatic-jquery-ui {};
+  ujson = if isPy27 then
+    callPackage ../development/python-modules/ujson/2.nix { }
+  else
+    callPackage ../development/python-modules/ujson { };
 
-  xstatic-pygments = callPackage ../development/python-modules/xstatic-pygments {};
+  ukpostcodeparser = callPackage ../development/python-modules/ukpostcodeparser { };
 
-  xvfbwrapper = callPackage ../development/python-modules/xvfbwrapper {
-    inherit (pkgs.xorg) xorgserver;
-  };
+  umalqurra = callPackage ../development/python-modules/umalqurra { };
 
-  hidapi = callPackage ../development/python-modules/hidapi {
-    inherit (pkgs) udev libusb1;
-  };
+  umap-learn = callPackage ../development/python-modules/umap-learn { };
 
-  ckcc-protocol = callPackage ../development/python-modules/ckcc-protocol { };
+  umemcache = callPackage ../development/python-modules/umemcache { };
 
-  mnemonic = callPackage ../development/python-modules/mnemonic { };
+  u-msgpack-python = callPackage ../development/python-modules/u-msgpack-python { };
 
-  keepkey = callPackage ../development/python-modules/keepkey { };
+  uncertainties = callPackage ../development/python-modules/uncertainties { };
 
-  keepkey_agent = callPackage ../development/python-modules/keepkey_agent { };
+  uncompyle6 = callPackage ../development/python-modules/uncompyle6 { };
 
-  libagent = callPackage ../development/python-modules/libagent { };
+  unicodecsv = callPackage ../development/python-modules/unicodecsv { };
 
-  ledger_agent = callPackage ../development/python-modules/ledger_agent { };
+  unicodedata2 = callPackage ../development/python-modules/unicodedata2 { };
 
-  ledgerblue = callPackage ../development/python-modules/ledgerblue { };
+  unicode-slugify = callPackage ../development/python-modules/unicode-slugify { };
 
-  ecpy = callPackage ../development/python-modules/ecpy { };
+  unicorn = callPackage ../development/python-modules/unicorn { };
 
-  semver = callPackage ../development/python-modules/semver { };
+  unidecode = callPackage ../development/python-modules/unidecode { };
 
-  ed25519 = callPackage ../development/python-modules/ed25519 { };
+  unidiff = callPackage ../development/python-modules/unidiff { };
 
-  trezor = callPackage ../development/python-modules/trezor { };
+  unifi = callPackage ../development/python-modules/unifi { };
 
-  trezor_agent = callPackage ../development/python-modules/trezor_agent { };
+  units = callPackage ../development/python-modules/units { };
 
-  x11_hash = callPackage ../development/python-modules/x11_hash { };
+  unittest2 = callPackage ../development/python-modules/unittest2 { };
 
-  termstyle = callPackage ../development/python-modules/termstyle { };
+  unittest-data-provider = callPackage ../development/python-modules/unittest-data-provider { };
 
-  green = callPackage ../development/python-modules/green { };
+  unittest-xml-reporting = callPackage ../development/python-modules/unittest-xml-reporting { };
 
-  topydo = throw "python3Packages.topydo was moved to topydo"; # 2017-09-22
+  unpaddedbase64 = callPackage ../development/python-modules/unpaddedbase64 { };
 
-  w3lib = callPackage ../development/python-modules/w3lib { };
+  unrpa = callPackage ../development/python-modules/unrpa { };
 
-  queuelib = callPackage ../development/python-modules/queuelib { };
+  untangle = callPackage ../development/python-modules/untangle { };
 
-  scrapy = callPackage ../development/python-modules/scrapy { };
+  upass = callPackage ../development/python-modules/upass { };
 
-  scrapy-fake-useragent = callPackage ../development/python-modules/scrapy-fake-useragent { };
+  update_checker = callPackage ../development/python-modules/update_checker { };
 
-  scrapy-deltafetch = callPackage ../development/python-modules/scrapy-deltafetch { };
+  update-copyright = callPackage ../development/python-modules/update-copyright { };
 
-  scrapy-splash = callPackage ../development/python-modules/scrapy-splash { };
+  update-dotdee = callPackage ../development/python-modules/update-dotdee { };
 
-  pandocfilters = callPackage ../development/python-modules/pandocfilters { };
+  uproot = callPackage ../development/python-modules/uproot { };
 
-  pandoc-attributes = callPackage ../development/python-modules/pandoc-attributes { };
+  uproot-methods = callPackage ../development/python-modules/uproot-methods { };
 
-  htmltreediff = callPackage ../development/python-modules/htmltreediff { };
+  uptime = callPackage ../development/python-modules/uptime { };
 
-  repeated_test = callPackage ../development/python-modules/repeated_test { };
+  uranium = callPackage ../development/python-modules/uranium { };
 
-  Keras = callPackage ../development/python-modules/keras { };
+  uritemplate = callPackage ../development/python-modules/uritemplate { };
 
-  keras-applications = callPackage ../development/python-modules/keras-applications { };
+  uritools = callPackage ../development/python-modules/uritools { };
 
-  keras-preprocessing = callPackage ../development/python-modules/keras-preprocessing { };
+  urlgrabber = callPackage ../development/python-modules/urlgrabber { };
 
-  Lasagne = callPackage ../development/python-modules/lasagne { };
+  urllib3 = callPackage ../development/python-modules/urllib3 { };
 
-  send2trash = callPackage ../development/python-modules/send2trash { };
+  urwid = callPackage ../development/python-modules/urwid { };
 
-  sigtools = callPackage ../development/python-modules/sigtools { };
+  urwidtrees = callPackage ../development/python-modules/urwidtrees { };
 
-  annoy = callPackage ../development/python-modules/annoy { };
+  urwid-readline = callPackage ../development/python-modules/urwid-readline { };
 
-  clize = callPackage ../development/python-modules/clize { };
+  usbtmc = callPackage ../development/python-modules/usbtmc { };
 
-  rl-coach = callPackage ../development/python-modules/rl-coach { };
+  us = callPackage ../development/python-modules/us { };
 
-  zerobin = callPackage ../development/python-modules/zerobin { };
+  user-agents = callPackage ../development/python-modules/user-agents { };
 
-  tensorflow-estimator = self.tensorflow-estimator_1;
+  userpath = callPackage ../development/python-modules/userpath { };
 
-  tensorflow-estimator_1 = callPackage ../development/python-modules/tensorflow-estimator/1 { };
+  uuid = callPackage ../development/python-modules/uuid { };
 
-  tensorflow-estimator_2 = callPackage ../development/python-modules/tensorflow-estimator/2 { };
+  uvcclient = callPackage ../development/python-modules/uvcclient { };
 
-  tensorflow-probability = callPackage ../development/python-modules/tensorflow-probability { };
+  uvicorn = callPackage ../development/python-modules/uvicorn { };
 
-  tensorflow-tensorboard = self.tensorflow-tensorboard_1;
+  uvloop = callPackage ../development/python-modules/uvloop {
+    inherit (pkgs.darwin.apple_sdk.frameworks) ApplicationServices CoreServices;
+  };
 
-  tensorflow-tensorboard_1 = callPackage ../development/python-modules/tensorflow-tensorboard/1 { };
+  validate-email = callPackage ../development/python-modules/validate-email { };
 
-  tensorflow-tensorboard_2 = callPackage ../development/python-modules/tensorflow-tensorboard/2 { };
+  validators = callPackage ../development/python-modules/validators { };
 
-  tensorflow-bin = self.tensorflow-bin_1;
+  validictory = callPackage ../development/python-modules/validictory { };
 
-  tensorflow-bin_1 = callPackage ../development/python-modules/tensorflow/1/bin.nix {
-    cudaSupport = pkgs.config.cudaSupport or false;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-    cudatoolkit = pkgs.cudatoolkit_10;
-    cudnn = pkgs.cudnn_cudatoolkit_10;
-  };
+  variants = callPackage ../development/python-modules/variants { };
 
-  tensorflow-bin_2 = callPackage ../development/python-modules/tensorflow/2/bin.nix {
-    cudaSupport = pkgs.config.cudaSupport or false;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-    cudatoolkit = pkgs.cudatoolkit_10;
-    cudnn = pkgs.cudnn_cudatoolkit_10;
-  };
+  varint = callPackage ../development/python-modules/varint { };
 
-  tensorflow-build = self.tensorflow-build_1;
+  vcrpy = callPackage ../development/python-modules/vcrpy { };
 
-  tensorflow-build_1 = callPackage ../development/python-modules/tensorflow/1 {
-    cudaSupport = pkgs.config.cudaSupport or false;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-    cudatoolkit = pkgs.cudatoolkit_10;
-    cudnn = pkgs.cudnn_cudatoolkit_10;
-    nccl = pkgs.nccl_cudatoolkit_10;
-    openssl = pkgs.openssl_1_1;
-    inherit (pkgs.darwin.apple_sdk.frameworks) Foundation Security;
-  };
+  vcver = callPackage ../development/python-modules/vcver { };
 
-  tensorflow-build_2 = callPackage ../development/python-modules/tensorflow/2 {
-    cudaSupport = pkgs.config.cudaSupport or false;
-    inherit (pkgs.linuxPackages) nvidia_x11;
-    cudatoolkit = pkgs.cudatoolkit_10;
-    cudnn = pkgs.cudnn_cudatoolkit_10;
-    nccl = pkgs.nccl_cudatoolkit_10;
-    openssl = pkgs.openssl_1_1;
-    inherit (pkgs.darwin.apple_sdk.frameworks) Foundation Security;
-  };
+  vcversioner = callPackage ../development/python-modules/vcversioner { };
 
-  tensorflow = self.tensorflow_1;
-  tensorflow_1 = self.tensorflow-build_1;
-  tensorflow_2 = self.tensorflow-build_2;
+  vdf = callPackage ../development/python-modules/vdf { };
 
-  tensorflowWithoutCuda = self.tensorflow.override {
-    cudaSupport = false;
+  vdirsyncer = callPackage ../development/python-modules/vdirsyncer {
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices Security;
+    inherit (pkgs) pkg-config openssl rustPlatform;
   };
 
-  tensorflowWithCuda = self.tensorflow.override {
-    cudaSupport = true;
-  };
+  vdirsyncerStable = callPackage ../development/python-modules/vdirsyncer/stable.nix { };
 
-  tensorly = callPackage ../development/python-modules/tensorly { };
+  vega = callPackage ../development/python-modules/vega { };
 
-  tflearn = callPackage ../development/python-modules/tflearn { };
+  vega_datasets = callPackage ../development/python-modules/vega_datasets { };
 
-  simpleai = callPackage ../development/python-modules/simpleai { };
+  venusian = callPackage ../development/python-modules/venusian { };
 
-  word2vec = callPackage ../development/python-modules/word2vec { };
+  verboselogs = callPackage ../development/python-modules/verboselogs { };
 
-  tvdb_api = callPackage ../development/python-modules/tvdb_api { };
+  versioneer = callPackage ../development/python-modules/versioneer { };
 
-  sdnotify = callPackage ../development/python-modules/sdnotify { };
+  versiontools = callPackage ../development/python-modules/versiontools { };
 
-  tvnamer = callPackage ../development/python-modules/tvnamer { };
+  vertica-python = callPackage ../development/python-modules/vertica-python { };
 
-  threadpool = callPackage ../development/python-modules/threadpool { };
+  veryprettytable = callPackage ../development/python-modules/veryprettytable { };
 
-  threadpoolctl = callPackage ../development/python-modules/threadpoolctl { };
+  vidstab = callPackage ../development/python-modules/vidstab { };
 
-  rocket-errbot = callPackage ../development/python-modules/rocket-errbot {  };
+  viewstate = callPackage ../development/python-modules/viewstate { };
 
-  Yapsy = callPackage ../development/python-modules/yapsy { };
+  vine = callPackage ../development/python-modules/vine { };
 
-  ansi = callPackage ../development/python-modules/ansi { };
+  virtkey = callPackage ../development/python-modules/virtkey { inherit (pkgs) pkgconfig; };
 
-  pygments-better-html = callPackage ../development/python-modules/pygments-better-html { };
+  virtual-display = callPackage ../development/python-modules/virtual-display { };
 
-  pygments-markdown-lexer = callPackage ../development/python-modules/pygments-markdown-lexer { };
+  virtualenv = callPackage ../development/python-modules/virtualenv { };
 
-  telegram = callPackage ../development/python-modules/telegram { };
+  virtualenv-clone = callPackage ../development/python-modules/virtualenv-clone { };
 
-  python-telegram-bot = callPackage ../development/python-modules/python-telegram-bot { };
+  virtualenvwrapper = callPackage ../development/python-modules/virtualenvwrapper { };
 
-  irc = callPackage ../development/python-modules/irc { };
+  visitor = callPackage ../development/python-modules/visitor { };
 
-  jaraco_logging = callPackage ../development/python-modules/jaraco_logging { };
+  vispy = callPackage ../development/python-modules/vispy { };
 
-  jaraco_text = callPackage ../development/python-modules/jaraco_text { };
+  vmprof = callPackage ../development/python-modules/vmprof { };
 
-  jaraco_collections = callPackage ../development/python-modules/jaraco_collections { };
+  vobject = callPackage ../development/python-modules/vobject { };
 
-  jaraco_itertools = callPackage ../development/python-modules/jaraco_itertools { };
+  voluptuous = callPackage ../development/python-modules/voluptuous { };
 
-  inflect = callPackage ../development/python-modules/inflect { };
+  voluptuous-serialize = callPackage ../development/python-modules/voluptuous-serialize { };
 
-  more-itertools = if isPy27 then
-    callPackage ../development/python-modules/more-itertools/2.7.nix { }
-  else callPackage ../development/python-modules/more-itertools { };
+  vowpalwabbit = callPackage ../development/python-modules/vowpalwabbit { };
 
-  morphys = callPackage ../development/python-modules/morphys { };
+  vsts = callPackage ../development/python-modules/vsts { };
 
-  jaraco_functools = callPackage ../development/python-modules/jaraco_functools { };
+  vsts-cd-manager = callPackage ../development/python-modules/vsts-cd-manager { };
 
-  jaraco_classes = callPackage ../development/python-modules/jaraco_classes { };
+  vtk = toPythonModule (pkgs.vtk_7.override {
+    inherit (self) python;
+    enablePython = true;
+  });
 
-  jaraco_stream = callPackage ../development/python-modules/jaraco_stream { };
+  vultr = callPackage ../development/python-modules/vultr { };
 
-  javaobj-py3 = callPackage ../development/python-modules/javaobj-py3 { };
+  vulture = callPackage ../development/python-modules/vulture { };
 
-  javaproperties = callPackage ../development/python-modules/javaproperties { };
+  vxi11 = callPackage ../development/python-modules/vxi11 { };
 
-  tempora= callPackage ../development/python-modules/tempora { };
+  w3lib = callPackage ../development/python-modules/w3lib { };
 
-  hypchat = callPackage ../development/python-modules/hypchat { };
+  wadllib = callPackage ../development/python-modules/wadllib { };
 
-  pivy = callPackage ../development/python-modules/pivy { };
+  waitress = callPackage ../development/python-modules/waitress { };
 
-  smugpy = callPackage ../development/python-modules/smugpy { };
+  waitress-django = callPackage ../development/python-modules/waitress-django { };
 
-  smugline = callPackage ../development/python-modules/smugline { };
+  wakeonlan = callPackage ../development/python-modules/wakeonlan { };
 
-  txaio = callPackage ../development/python-modules/txaio { };
+  Wand = callPackage ../development/python-modules/Wand { };
 
-  ramlfications = callPackage ../development/python-modules/ramlfications { };
+  warlock = callPackage ../development/python-modules/warlock { };
 
-  yapf = callPackage ../development/python-modules/yapf { };
+  warrant = callPackage ../development/python-modules/warrant { };
 
-  black = callPackage ../development/python-modules/black { };
+  wasabi = callPackage ../development/python-modules/wasabi { };
 
-  bjoern = callPackage ../development/python-modules/bjoern { };
+  watchdog = callPackage ../development/python-modules/watchdog { };
 
-  autobahn = callPackage ../development/python-modules/autobahn { };
+  WazeRouteCalculator = callPackage ../development/python-modules/WazeRouteCalculator { };
 
-  jsonref = callPackage ../development/python-modules/jsonref { };
+  wcwidth = callPackage ../development/python-modules/wcwidth { };
 
-  whoosh = callPackage ../development/python-modules/whoosh { };
+  weasyprint = callPackage ../development/python-modules/weasyprint { };
 
-  packet-python = callPackage ../development/python-modules/packet-python { };
+  webapp2 = callPackage ../development/python-modules/webapp2 { };
 
-  pwntools = callPackage ../development/python-modules/pwntools { };
+  webassets = callPackage ../development/python-modules/webassets { };
 
-  ROPGadget = callPackage ../development/python-modules/ROPGadget { };
+  web = callPackage ../development/python-modules/web { };
 
-  # We need "normal" libxml2 and not the python package by the same name.
-  pywbem = callPackage ../development/python-modules/pywbem { libxml2 = pkgs.libxml2; };
+  webcolors = callPackage ../development/python-modules/webcolors { };
 
-  unicorn = callPackage ../development/python-modules/unicorn { };
+  webdavclient3 = callPackage ../development/python-modules/webdavclient3 { };
 
-  intervaltree = callPackage ../development/python-modules/intervaltree { };
+  webencodings = callPackage ../development/python-modules/webencodings { };
 
-  packaging = callPackage ../development/python-modules/packaging { };
+  webhelpers = callPackage ../development/python-modules/webhelpers { };
 
-  preggy = callPackage ../development/python-modules/preggy { };
+  webob = callPackage ../development/python-modules/webob { };
 
-  prison = callPackage ../development/python-modules/prison { };
+  weboob = callPackage ../development/python-modules/weboob { };
 
-  pytoml = callPackage ../development/python-modules/pytoml { };
+  webrtcvad = callPackage ../development/python-modules/webrtcvad { };
 
-  pypamtest = pkgs.libpam-wrapper.override {
-    enablePython = true;
-    inherit python;
-  };
+  websocket_client = callPackage ../development/python-modules/websocket_client { };
 
-  pypandoc = callPackage ../development/python-modules/pypandoc { };
+  websockets = callPackage ../development/python-modules/websockets { };
 
-  yamllint = callPackage ../development/python-modules/yamllint { };
+  websockify = callPackage ../development/python-modules/websockify { };
 
-  yanc = callPackage ../development/python-modules/yanc { };
+  webtest = callPackage ../development/python-modules/webtest { };
 
-  yarl = callPackage ../development/python-modules/yarl { };
+  werkzeug = callPackage ../development/python-modules/werkzeug { };
 
-  solo-python = disabledIf (! pythonAtLeast "3.6") (callPackage ../development/python-modules/solo-python { });
+  west = callPackage ../development/python-modules/west { };
 
-  suseapi = callPackage ../development/python-modules/suseapi { };
+  wfuzz = callPackage ../development/python-modules/wfuzz { };
 
-  typed-ast = callPackage ../development/python-modules/typed-ast { };
+  wget = callPackage ../development/python-modules/wget { };
 
-  stripe = callPackage ../development/python-modules/stripe { };
+  wheel = callPackage ../development/python-modules/wheel { };
 
-  strict-rfc3339 = callPackage ../development/python-modules/strict-rfc3339 { };
+  whichcraft = callPackage ../development/python-modules/whichcraft { };
 
-  strictyaml = callPackage ../development/python-modules/strictyaml { };
+  whisper = callPackage ../development/python-modules/whisper { };
 
-  twilio = callPackage ../development/python-modules/twilio { };
+  whitenoise = callPackage ../development/python-modules/whitenoise { };
 
-  twofish = callPackage ../development/python-modules/twofish { };
+  whoosh = callPackage ../development/python-modules/whoosh { };
 
-  uranium = callPackage ../development/python-modules/uranium { };
+  widgetsnbextension = callPackage ../development/python-modules/widgetsnbextension { };
 
-  uuid = callPackage ../development/python-modules/uuid { };
+  willow = callPackage ../development/python-modules/willow { };
 
-  versioneer = callPackage ../development/python-modules/versioneer { };
+  word2vec = callPackage ../development/python-modules/word2vec { };
 
-  viewstate = callPackage ../development/python-modules/viewstate { };
+  wordcloud = callPackage ../development/python-modules/wordcloud { };
 
-  vine = callPackage ../development/python-modules/vine { };
+  wordfreq = callPackage ../development/python-modules/wordfreq { };
 
-  visitor = callPackage ../development/python-modules/visitor { };
+  worldengine = callPackage ../development/python-modules/worldengine { };
 
-  vtk = toPythonModule (pkgs.vtk_7.override {
-    inherit (self) python;
-    enablePython = true;
-  });
+  wptserve = callPackage ../development/python-modules/wptserve { };
 
-  whitenoise = callPackage ../development/python-modules/whitenoise { };
+  wrapt = callPackage ../development/python-modules/wrapt { };
 
-  XlsxWriter = callPackage ../development/python-modules/XlsxWriter { };
+  wrf-python = callPackage ../development/python-modules/wrf-python { };
 
-  yowsup = callPackage ../development/python-modules/yowsup { };
+  ws4py = callPackage ../development/python-modules/ws4py { };
 
-  yubico-client = callPackage ../development/python-modules/yubico-client { };
+  wsgiproxy2 = callPackage ../development/python-modules/wsgiproxy2 { };
 
-  wptserve = callPackage ../development/python-modules/wptserve { };
+  WSGIProxy = callPackage ../development/python-modules/wsgiproxy { };
 
-  yenc = callPackage ../development/python-modules/yenc { };
+  wsgitools = callPackage ../development/python-modules/wsgitools { };
 
-  zeep = callPackage ../development/python-modules/zeep { };
+  WSME = callPackage ../development/python-modules/WSME { };
 
-  zeitgeist = disabledIf isPy3k
-    (toPythonModule (pkgs.zeitgeist.override{python2Packages=self;})).py;
+  wsproto = if (pythonAtLeast "3.6") then
+    callPackage ../development/python-modules/wsproto { }
+  else
+    callPackage ../development/python-modules/wsproto/0.14.nix { };
 
-  zeroconf = callPackage ../development/python-modules/zeroconf { };
+  wtforms = callPackage ../development/python-modules/wtforms { };
 
-  zipfile36 = callPackage ../development/python-modules/zipfile36 { };
+  wtf-peewee = callPackage ../development/python-modules/wtf-peewee { };
 
-  todoist = callPackage ../development/python-modules/todoist { };
+  wurlitzer = callPackage ../development/python-modules/wurlitzer { };
 
-  zstd = callPackage ../development/python-modules/zstd {
-    inherit (pkgs) zstd pkgconfig;
+  wxPython30 = callPackage ../development/python-modules/wxPython/3.0.nix {
+    wxGTK = pkgs.wxGTK30;
+    inherit (pkgs) pkgconfig;
   };
 
-  zstandard = callPackage ../development/python-modules/zstandard { };
-
-  zxcvbn = callPackage ../development/python-modules/zxcvbn { };
-
-  incremental = callPackage ../development/python-modules/incremental { };
-
-  treq = callPackage ../development/python-modules/treq { };
+  wxPython_4_0 = callPackage ../development/python-modules/wxPython/4.0.nix {
+    inherit (pkgs) pkgconfig;
+    wxGTK = pkgs.wxGTK30.override {
+      withGtk2 = false;
+      withWebKit = true;
+    };
+  };
 
-  snakeviz = callPackage ../development/python-modules/snakeviz { };
+  wxPython = self.wxPython30;
 
-  nitpick = callPackage ../applications/version-management/nitpick { };
+  x11_hash = callPackage ../development/python-modules/x11_hash { };
 
-  pluginbase = callPackage ../development/python-modules/pluginbase { };
+  x256 = callPackage ../development/python-modules/x256 { };
 
-  node-semver = callPackage ../development/python-modules/node-semver { };
+  xapian = callPackage ../development/python-modules/xapian { xapian = pkgs.xapian; };
 
-  diskcache = callPackage ../development/python-modules/diskcache { };
+  xapp = callPackage ../development/python-modules/xapp {
+    inherit (pkgs) gtk3 gobject-introspection polkit;
+    inherit (pkgs.cinnamon) xapps;
+  };
 
-  dissononce = callPackage ../development/python-modules/dissononce { };
+  xarray = callPackage ../development/python-modules/xarray { };
 
-  distro = callPackage ../development/python-modules/distro { };
+  xattr = callPackage ../development/python-modules/xattr { };
 
-  bz2file =  callPackage ../development/python-modules/bz2file { };
+  xcaplib = callPackage ../development/python-modules/xcaplib { };
 
-  smart_open =  callPackage ../development/python-modules/smart_open { };
+  xcffib = callPackage ../development/python-modules/xcffib { };
 
-  gensim = callPackage  ../development/python-modules/gensim { };
+  xdg = callPackage ../development/python-modules/xdg { };
 
-  genpy = callPackage ../development/python-modules/genpy { };
+  xdis = callPackage ../development/python-modules/xdis { };
 
-  cymem = callPackage ../development/python-modules/cymem { };
+  xdot = callPackage ../development/python-modules/xdot { };
 
-  ftfy = callPackage ../development/python-modules/ftfy { };
+  xenomapper = disabledIf (!isPy3k) (callPackage ../applications/science/biology/xenomapper { });
 
-  murmurhash = callPackage ../development/python-modules/murmurhash { };
+  xgboost = callPackage ../development/python-modules/xgboost { xgboost = pkgs.xgboost; };
 
-  plac = callPackage ../development/python-modules/plac { };
+  xhtml2pdf = callPackage ../development/python-modules/xhtml2pdf { };
 
-  preshed = callPackage ../development/python-modules/preshed { };
+  xkcdpass = callPackage ../development/python-modules/xkcdpass { };
 
-  backports_weakref = callPackage ../development/python-modules/backports_weakref { };
+  xlib = callPackage ../development/python-modules/xlib { };
 
-  blis = callPackage ../development/python-modules/blis { };
+  xlrd = callPackage ../development/python-modules/xlrd { };
 
-  srsly = callPackage ../development/python-modules/srsly { };
+  xlsx2csv = callPackage ../development/python-modules/xlsx2csv { };
 
-  thinc = callPackage ../development/python-modules/thinc { };
+  XlsxWriter = callPackage ../development/python-modules/XlsxWriter { };
 
-  wasabi = callPackage ../development/python-modules/wasabi { };
+  xlwt = callPackage ../development/python-modules/xlwt { };
 
-  yahooweather = callPackage ../development/python-modules/yahooweather { };
+  xml2rfc = callPackage ../development/python-modules/xml2rfc { };
 
-  somajo = callPackage ../development/python-modules/somajo { };
+  xmlschema = callPackage ../development/python-modules/xmlschema { };
 
-  spacy = callPackage ../development/python-modules/spacy { };
+  xmltodict = callPackage ../development/python-modules/xmltodict { };
 
-  spacy_models = callPackage ../development/python-modules/spacy/models.nix { };
+  xmodem = callPackage ../development/python-modules/xmodem { };
 
-  pyspark = callPackage ../development/python-modules/pyspark { };
+  xmpppy = callPackage ../development/python-modules/xmpppy { };
 
-  pysensors = callPackage ../development/python-modules/pysensors { };
+  xnd = callPackage ../development/python-modules/xnd { };
 
-  python-toolbox = callPackage ../development/python-modules/python-toolbox { };
+  xpybutil = callPackage ../development/python-modules/xpybutil { };
 
-  pysnooper = callPackage ../development/python-modules/pysnooper { };
+  xstatic-bootbox = callPackage ../development/python-modules/xstatic-bootbox { };
 
-  sseclient = callPackage ../development/python-modules/sseclient { };
+  xstatic-bootstrap = callPackage ../development/python-modules/xstatic-bootstrap { };
 
-  warrant = callPackage ../development/python-modules/warrant { };
+  xstatic = callPackage ../development/python-modules/xstatic { };
 
-  textacy = callPackage ../development/python-modules/textacy { };
+  xstatic-jquery = callPackage ../development/python-modules/xstatic-jquery { };
 
-  tld = callPackage ../development/python-modules/tld { };
+  xstatic-jquery-file-upload = callPackage ../development/python-modules/xstatic-jquery-file-upload { };
 
-  tldextract = callPackage ../development/python-modules/tldextract { };
+  xstatic-jquery-ui = callPackage ../development/python-modules/xstatic-jquery-ui { };
 
-  transip = callPackage ../development/python-modules/transip { };
+  xstatic-pygments = callPackage ../development/python-modules/xstatic-pygments { };
 
-  pyemd  = callPackage ../development/python-modules/pyemd { };
+  xvfbwrapper = callPackage ../development/python-modules/xvfbwrapper { inherit (pkgs.xorg) xorgserver; };
 
-  openwrt-luci-rpc = disabledIf (!isPy3k) (callPackage ../development/python-modules/openwrt-luci-rpc { });
+  xxhash = callPackage ../development/python-modules/xxhash { };
 
-  pulp  = callPackage ../development/python-modules/pulp { };
+  yahooweather = callPackage ../development/python-modules/yahooweather { };
 
-  behave = callPackage ../development/python-modules/behave { };
+  yamllint = callPackage ../development/python-modules/yamllint { };
 
-  pyhamcrest = callPackage ../development/python-modules/pyhamcrest { };
+  yamlordereddictloader = callPackage ../development/python-modules/yamlordereddictloader { };
 
-  pyhaversion = callPackage ../development/python-modules/pyhaversion { };
+  yanc = callPackage ../development/python-modules/yanc { };
 
-  parse = callPackage ../development/python-modules/parse { };
+  yapf = callPackage ../development/python-modules/yapf { };
 
-  parse-type = callPackage ../development/python-modules/parse-type { };
+  yappi = callPackage ../development/python-modules/yappi { };
 
-  ephem = callPackage ../development/python-modules/ephem { };
+  Yapsy = callPackage ../development/python-modules/yapsy { };
 
-  voluptuous = callPackage ../development/python-modules/voluptuous { };
+  yarg = callPackage ../development/python-modules/yarg { };
 
-  voluptuous-serialize = callPackage ../development/python-modules/voluptuous-serialize { };
+  yarl = callPackage ../development/python-modules/yarl { };
 
-  pysigset = callPackage ../development/python-modules/pysigset { };
+  yattag = callPackage ../development/python-modules/yattag { };
 
-  us = callPackage ../development/python-modules/us { };
+  ydiff = callPackage ../development/python-modules/ydiff { };
 
-  wsproto = if (pythonAtLeast "3.6") then
-      callPackage ../development/python-modules/wsproto { }
-    else
-      callPackage ../development/python-modules/wsproto/0.14.nix { };
+  yeelight = callPackage ../development/python-modules/yeelight { };
 
-  h11 = callPackage ../development/python-modules/h11 { };
+  yenc = callPackage ../development/python-modules/yenc { };
 
-  python-docx = callPackage ../development/python-modules/python-docx { };
+  yfinance = callPackage ../development/python-modules/yfinance { };
 
-  python-doi = callPackage ../development/python-modules/python-doi { };
+  yoda = toPythonModule (pkgs.yoda.override { inherit python; });
 
-  aiohue = callPackage ../development/python-modules/aiohue { };
+  youtube-dl = callPackage ../tools/misc/youtube-dl { };
 
-  PyMVGLive = callPackage ../development/python-modules/pymvglive { };
+  youtube-dl-light = callPackage ../tools/misc/youtube-dl {
+    ffmpegSupport = false;
+    phantomjsSupport = false;
+  };
 
-  coinmarketcap = callPackage ../development/python-modules/coinmarketcap { };
+  yowsup = callPackage ../development/python-modules/yowsup { };
 
-  pyowm = callPackage ../development/python-modules/pyowm { };
+  yq = callPackage ../development/python-modules/yq { };
 
-  prometheus_client = callPackage ../development/python-modules/prometheus_client { };
+  yt = callPackage ../development/python-modules/yt { };
 
-  pysdl2 = callPackage ../development/python-modules/pysdl2 { };
+  yubico-client = callPackage ../development/python-modules/yubico-client { };
 
-  pyogg = callPackage ../development/python-modules/pyogg { };
+  z3c-checkversions = callPackage ../development/python-modules/z3c-checkversions { };
 
-  rubymarshal = callPackage ../development/python-modules/rubymarshal { };
+  z3 = (toPythonModule (pkgs.z3.override { inherit python; })).python;
 
-  radio_beam = callPackage ../development/python-modules/radio_beam { };
+  zake = callPackage ../development/python-modules/zake { };
 
-  spectral-cube = callPackage ../development/python-modules/spectral-cube { };
+  zarr = callPackage ../development/python-modules/zarr { };
 
-  astunparse = callPackage ../development/python-modules/astunparse { };
+  zbase32 = callPackage ../development/python-modules/zbase32 { };
 
-  gast = callPackage ../development/python-modules/gast { };
+  zc_buildout221 = callPackage ../development/python-modules/buildout { };
 
-  ibis = callPackage ../development/python-modules/ibis { };
+  zc_buildout = self.zc_buildout221; # A patched version of buildout, useful for buildout based development on Nix
 
-  ibis-framework = callPackage ../development/python-modules/ibis-framework { };
+  zc_buildout_nix = callPackage ../development/python-modules/buildout-nix { };
 
-  qiskit = callPackage ../development/python-modules/qiskit { };
+  zc_lockfile = callPackage ../development/python-modules/zc_lockfile { };
 
-  qiskit-aer = callPackage ../development/python-modules/qiskit-aer { };
+  zconfig = callPackage ../development/python-modules/zconfig { };
 
-  qiskit-aqua = callPackage ../development/python-modules/qiskit-aqua { };
+  zdaemon = callPackage ../development/python-modules/zdaemon { };
 
-  qiskit-ibmq-provider = callPackage ../development/python-modules/qiskit-ibmq-provider { };
+  zeep = callPackage ../development/python-modules/zeep { };
 
-  qiskit-ignis = callPackage ../development/python-modules/qiskit-ignis { };
+  zeitgeist = disabledIf isPy3k (toPythonModule (pkgs.zeitgeist.override { python2Packages = self; })).py;
 
-  qiskit-terra = callPackage ../development/python-modules/qiskit-terra { };
+  zerobin = callPackage ../development/python-modules/zerobin { };
 
-  qasm2image = callPackage ../development/python-modules/qasm2image { };
+  zeroc-ice = callPackage ../development/python-modules/zeroc-ice { };
 
-  simpy = callPackage ../development/python-modules/simpy { };
+  zeroconf = callPackage ../development/python-modules/zeroconf { };
 
-  x256 = callPackage ../development/python-modules/x256 { };
+  zerorpc = callPackage ../development/python-modules/zerorpc { };
 
-  yattag = callPackage ../development/python-modules/yattag { };
+  zetup = callPackage ../development/python-modules/zetup { };
 
-  xenomapper = disabledIf (!isPy3k) (callPackage ../applications/science/biology/xenomapper { });
+  zfec = callPackage ../development/python-modules/zfec { };
 
-  z3 = (toPythonModule (pkgs.z3.override {
-    inherit python;
-  })).python;
+  zha-quirks = callPackage ../development/python-modules/zha-quirks { };
 
-  zeroc-ice = callPackage ../development/python-modules/zeroc-ice { };
+  zict = callPackage ../development/python-modules/zict { };
 
-  zm-py = callPackage ../development/python-modules/zm-py { };
+  zigpy = callPackage ../development/python-modules/zigpy { };
 
-  rfc7464 = callPackage ../development/python-modules/rfc7464 { };
+  zigpy-cc = callPackage ../development/python-modules/zigpy-cc { };
 
-  foundationdb51 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb51; };
-  foundationdb52 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb52; };
-  foundationdb60 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb60; };
-  foundationdb61 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb61; };
+  zigpy-deconz = callPackage ../development/python-modules/zigpy-deconz { };
 
-  libtorrentRasterbar = (toPythonModule (pkgs.libtorrentRasterbar.override {
-    inherit python;
-  })).python;
+  zigpy-xbee = callPackage ../development/python-modules/zigpy-xbee { };
 
-  libiio = (toPythonModule (pkgs.libiio.override {
-    inherit python;
-  })).python;
+  zigpy-zigate = callPackage ../development/python-modules/zigpy-zigate { };
 
-  localzone = callPackage ../development/python-modules/localzone { };
+  zimports = callPackage ../development/python-modules/zimports { };
 
-  scour = callPackage ../development/python-modules/scour { };
+  zipfile36 = callPackage ../development/python-modules/zipfile36 { };
 
-  pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04
+  zipp = if pythonOlder "3.6" then
+    callPackage ../development/python-modules/zipp/1.nix { }
+  else
+    callPackage ../development/python-modules/zipp { };
 
-  nanoleaf = callPackage ../development/python-modules/nanoleaf { };
+  zipstream = callPackage ../development/python-modules/zipstream { };
 
-  nanotime = callPackage ../development/python-modules/nanotime { };
+  zm-py = callPackage ../development/python-modules/zm-py { };
 
-  importlib-metadata = callPackage ../development/python-modules/importlib-metadata {};
+  zodb = callPackage ../development/python-modules/zodb { };
 
-  importlib-resources = callPackage ../development/python-modules/importlib-resources {};
+  zodbpickle = callPackage ../development/python-modules/zodbpickle { };
 
-  srptools = callPackage ../development/python-modules/srptools { };
+  zope_broken = callPackage ../development/python-modules/zope_broken { };
 
-  srp = callPackage ../development/python-modules/srp { };
+  zope_component = callPackage ../development/python-modules/zope_component { };
 
-  curve25519-donna = callPackage ../development/python-modules/curve25519-donna { };
+  zope_configuration = callPackage ../development/python-modules/zope_configuration { };
 
-  pyatv = callPackage ../development/python-modules/pyatv { };
+  zope_contenttype = callPackage ../development/python-modules/zope_contenttype { };
 
-  pybotvac = callPackage ../development/python-modules/pybotvac { };
+  zope_copy = callPackage ../development/python-modules/zope_copy { };
 
-  pymetno = callPackage ../development/python-modules/pymetno { };
+  zope-deferredimport = callPackage ../development/python-modules/zope-deferredimport { };
 
-  pytado = callPackage ../development/python-modules/pytado { };
+  zope_deprecation = callPackage ../development/python-modules/zope_deprecation { };
 
-  casttube = callPackage ../development/python-modules/casttube { };
+  zope_dottedname = callPackage ../development/python-modules/zope_dottedname { };
 
-  lzstring = callPackage ../development/python-modules/lzstring { };
+  zope_event = callPackage ../development/python-modules/zope_event { };
 
-  flickrapi = callPackage ../development/python-modules/flickrapi { };
+  zope_exceptions = callPackage ../development/python-modules/zope_exceptions { };
 
-  aioesphomeapi = callPackage ../development/python-modules/aioesphomeapi { };
+  zope_filerepresentation = callPackage ../development/python-modules/zope_filerepresentation { };
 
-  mwparserfromhell = callPackage ../development/python-modules/mwparserfromhell { };
+  zope-hookable = callPackage ../development/python-modules/zope-hookable { };
 
-  starlette = callPackage ../development/python-modules/starlette { };
+  zope_i18nmessageid = callPackage ../development/python-modules/zope_i18nmessageid { };
 
-  uvicorn = callPackage ../development/python-modules/uvicorn { };
+  zope_interface = callPackage ../development/python-modules/zope_interface { };
 
-  pydantic = callPackage ../development/python-modules/pydantic { };
+  zope_lifecycleevent = callPackage ../development/python-modules/zope_lifecycleevent { };
 
-  fastapi = callPackage ../development/python-modules/fastapi { };
+  zope_location = callPackage ../development/python-modules/zope_location { };
 
-  stringcase = callPackage ../development/python-modules/stringcase { };
+  zope_proxy = callPackage ../development/python-modules/zope_proxy { };
 
-  webrtcvad = callPackage ../development/python-modules/webrtcvad { };
+  zope_schema = callPackage ../development/python-modules/zope_schema { };
 
-  wfuzz = callPackage ../development/python-modules/wfuzz { };
+  zope_size = callPackage ../development/python-modules/zope_size { };
 
-  wget = callPackage ../development/python-modules/wget { };
+  zope_testing = callPackage ../development/python-modules/zope_testing { };
 
-  runway-python = callPackage ../development/python-modules/runway-python { };
+  zope_testrunner = callPackage ../development/python-modules/zope_testrunner { };
 
-  pyprof2calltree = callPackage ../development/python-modules/pyprof2calltree { };
+  zopfli = callPackage ../development/python-modules/zopfli { };
 
-  hcloud = callPackage ../development/python-modules/hcloud { };
+  zstandard = callPackage ../development/python-modules/zstandard { };
 
-  managesieve = callPackage ../development/python-modules/managesieve { };
+  zstd = callPackage ../development/python-modules/zstd { inherit (pkgs) zstd pkgconfig; };
 
-  pony = callPackage ../development/python-modules/pony { };
+  zulip = callPackage ../development/python-modules/zulip { };
 
-  rxv     = callPackage ../development/python-modules/rxv     { };
+  zxcvbn = callPackage ../development/python-modules/zxcvbn { };
 
 });
 
diff --git a/nixpkgs/pkgs/top-level/release-cross.nix b/nixpkgs/pkgs/top-level/release-cross.nix
index 5e392ff1b88e..df476db0a7a0 100644
--- a/nixpkgs/pkgs/top-level/release-cross.nix
+++ b/nixpkgs/pkgs/top-level/release-cross.nix
@@ -5,9 +5,11 @@
   supportedSystems ? [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]
 , # Strip most of attributes when evaluating to spare memory usage
   scrubJobs ? true
+, # Attributes passed to nixpkgs. Don't build packages marked as unfree.
+  nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; }
 }:
 
-with import ./release-lib.nix { inherit supportedSystems scrubJobs; };
+with import ./release-lib.nix { inherit supportedSystems scrubJobs nixpkgsArgs; };
 
 let
   nativePlatforms = all;
@@ -161,6 +163,10 @@ in
   i686-embedded = mapTestOnCross lib.systems.examples.i686-embedded embedded;
   x86_64-embedded = mapTestOnCross lib.systems.examples.x86_64-embedded embedded;
 
+  # we test `embedded` instead of `linuxCommon` because very few packages
+  # successfully cross-compile to Redox so far
+  x86_64-redox = mapTestOnCross lib.systems.examples.x86_64-unknown-redox embedded;
+
   /* Cross-built bootstrap tools for every supported platform */
   bootstrapTools = let
     tools = import ../stdenv/linux/make-bootstrap-tools-cross.nix { system = "x86_64-linux"; };
diff --git a/nixpkgs/pkgs/top-level/release-python.nix b/nixpkgs/pkgs/top-level/release-python.nix
index 8b7240e21a33..485410356048 100644
--- a/nixpkgs/pkgs/top-level/release-python.nix
+++ b/nixpkgs/pkgs/top-level/release-python.nix
@@ -5,9 +5,11 @@
 
 { # The platforms for which we build Nixpkgs.
   supportedSystems ? [ "x86_64-linux" ]
+, # Attributes passed to nixpkgs. Don't build packages marked as unfree.
+  nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; }
 }:
 
-with import ./release-lib.nix {inherit supportedSystems; };
+with import ./release-lib.nix {inherit supportedSystems nixpkgsArgs; };
 with lib;
 
 let
diff --git a/nixpkgs/pkgs/top-level/release-small.nix b/nixpkgs/pkgs/top-level/release-small.nix
index 7f84f02f006a..41aa86a8c463 100644
--- a/nixpkgs/pkgs/top-level/release-small.nix
+++ b/nixpkgs/pkgs/top-level/release-small.nix
@@ -3,9 +3,11 @@
 
 { nixpkgs ? { outPath = (import ../../lib).cleanSource ../..; revCount = 1234; shortRev = "abcdef"; }
 , supportedSystems ? [ "x86_64-linux" "x86_64-darwin" ]
+, # Attributes passed to nixpkgs. Don't build packages marked as unfree.
+  nixpkgsArgs ? { config = { allowUnfree = false; inHydra = true; }; }
 }:
 
-with import ./release-lib.nix { inherit supportedSystems; };
+with import ./release-lib.nix { inherit supportedSystems nixpkgsArgs; };
 
 {
 
diff --git a/nixpkgs/pkgs/top-level/release.nix b/nixpkgs/pkgs/top-level/release.nix
index fc317f51ab5a..5fc6e91b3118 100644
--- a/nixpkgs/pkgs/top-level/release.nix
+++ b/nixpkgs/pkgs/top-level/release.nix
@@ -34,6 +34,7 @@ let
 
       manual = import ../../doc { inherit pkgs nixpkgs; };
       lib-tests = import ../../lib/tests/release.nix { inherit pkgs; };
+      pkgs-lib-tests = import ../pkgs-lib/tests { inherit pkgs; };
 
       darwin-tested = if supportDarwin then pkgs.releaseTools.aggregate
         { name = "nixpkgs-darwin-${jobs.tarball.version}";
@@ -89,9 +90,9 @@ let
           meta.description = "Release-critical builds for the Nixpkgs unstable channel";
           constituents =
             [ jobs.tarball
-              jobs.metrics
               jobs.manual
               jobs.lib-tests
+              jobs.pkgs-lib-tests
               jobs.stdenv.x86_64-linux
               jobs.linux.x86_64-linux
               jobs.pandoc.x86_64-linux
diff --git a/nixpkgs/pkgs/top-level/stage.nix b/nixpkgs/pkgs/top-level/stage.nix
index 9e07d2bf0614..58b0300cc79c 100644
--- a/nixpkgs/pkgs/top-level/stage.nix
+++ b/nixpkgs/pkgs/top-level/stage.nix
@@ -215,6 +215,7 @@ let
       crossOverlays = [ (import ./static.nix) ];
     } // lib.optionalAttrs stdenv.hostPlatform.isLinux {
       crossSystem = {
+        isStatic = true;
         parsed = stdenv.hostPlatform.parsed // {
           abi = {
             gnu = lib.systems.parse.abis.musl;
diff --git a/nixpkgs/pkgs/top-level/static.nix b/nixpkgs/pkgs/top-level/static.nix
index fcfe856398ef..4fa5b92e951d 100644
--- a/nixpkgs/pkgs/top-level/static.nix
+++ b/nixpkgs/pkgs/top-level/static.nix
@@ -191,6 +191,9 @@ in {
   gsm = super.gsm.override {
     staticSupport = true;
   };
+  crc32c = super.crc32c.override {
+    staticOnly = true;
+  };
   parted = super.parted.override {
     enableStatic = true;
   };
@@ -216,6 +219,10 @@ in {
   libressl = super.libressl.override {
     buildShared = false;
   };
+  libjpeg_turbo = super.libjpeg_turbo.override {
+    enableStatic = true;
+    enableShared = false;
+  };
 
   darwin = super.darwin // {
     libiconv = super.darwin.libiconv.override {
@@ -242,7 +249,7 @@ in {
   };
 
   zstd = super.zstd.override {
-    enableShared = false;
+    static = true;
   };
 
   llvmPackages_8 = super.llvmPackages_8 // {
@@ -265,7 +272,6 @@ in {
   ) super.ocaml-ng;
 
   python27 = super.python27.override { static = true; };
-  python35 = super.python35.override { static = true; };
   python36 = super.python36.override { static = true; };
   python37 = super.python37.override { static = true; };
   python38 = super.python38.override { static = true; };
@@ -276,4 +282,28 @@ in {
   libev = super.libev.override { static = true; };
 
   libexecinfo = super.libexecinfo.override { enableShared = false; };
+
+  xorg = super.xorg.overrideScope' (xorgself: xorgsuper: {
+    libX11 = xorgsuper.libX11.overrideAttrs (attrs: {
+      depsBuildBuild = attrs.depsBuildBuild ++ [ (self.buildPackages.stdenv.cc.libc.static or null) ];
+    });
+    xauth = xorgsuper.xauth.overrideAttrs (attrs: {
+      # missing transitive dependencies
+      preConfigure = attrs.preConfigure or "" + ''
+        export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -lxcb -lXau -lXdmcp"
+      '';
+    });
+    xdpyinfo = xorgsuper.xdpyinfo.overrideAttrs (attrs: {
+      # missing transitive dependencies
+      preConfigure = attrs.preConfigure or "" + ''
+        export NIX_CFLAGS_LINK="$NIX_CFLAGS_LINK -lXau -lXdmcp"
+      '';
+    });
+    libxcb = xorgsuper.libxcb.overrideAttrs (attrs: {
+      configureFlags = attrs.configureFlags ++ [ "--disable-shared" ];
+    });
+    libXi= xorgsuper.libXi.overrideAttrs (attrs: {
+      configureFlags = attrs.configureFlags ++ [ "--disable-shared" ];
+    });
+  });
 }